Repository: ccrisan/thingos Branch: main Commit: 92a66b325fc4 Files: 12085 Total size: 16.4 MB Directory structure: gitextract_t2pmi41l/ ├── .defconfig ├── .flake8 ├── .gitignore ├── CHANGES ├── COPYING ├── Config.in ├── Config.in.legacy ├── DEVELOPERS ├── Makefile ├── Makefile.legacy ├── README.md ├── arch/ │ ├── Config.in │ ├── Config.in.arc │ ├── Config.in.arm │ ├── Config.in.csky │ ├── Config.in.m68k │ ├── Config.in.microblaze │ ├── Config.in.mips │ ├── Config.in.nds32 │ ├── Config.in.nios2 │ ├── Config.in.or1k │ ├── Config.in.powerpc │ ├── Config.in.riscv │ ├── Config.in.s390x │ ├── Config.in.sh │ ├── Config.in.sparc │ ├── Config.in.x86 │ ├── Config.in.xtensa │ ├── arch.mk │ ├── arch.mk.arc │ ├── arch.mk.csky │ ├── arch.mk.riscv │ └── arch.mk.xtensa ├── board/ │ ├── common/ │ │ ├── busybox.config │ │ ├── busybox_initramfs.config │ │ ├── cleanup.sh │ │ ├── overlay/ │ │ │ ├── boot/ │ │ │ │ └── .empty │ │ │ ├── data/ │ │ │ │ └── .empty │ │ │ ├── etc/ │ │ │ │ ├── adminpasswd.d/ │ │ │ │ │ └── .empty │ │ │ │ ├── captive-portal.conf │ │ │ │ ├── crontabs/ │ │ │ │ │ └── root │ │ │ │ ├── date.conf │ │ │ │ ├── dbus-1/ │ │ │ │ │ └── system.conf │ │ │ │ ├── dehydrated/ │ │ │ │ │ └── config │ │ │ │ ├── docker/ │ │ │ │ │ └── daemon.json │ │ │ │ ├── fstab.disk │ │ │ │ ├── fstab.extra │ │ │ │ ├── fstab.overlay │ │ │ │ ├── fstab.sys │ │ │ │ ├── group │ │ │ │ ├── init.d/ │ │ │ │ │ ├── S00datapart │ │ │ │ │ ├── S01mountall │ │ │ │ │ ├── S01toemmc │ │ │ │ │ ├── S02defaultdata │ │ │ │ │ ├── S02restorebackups │ │ │ │ │ ├── S03modules │ │ │ │ │ ├── S04hostname │ │ │ │ │ ├── S05cpufreq │ │ │ │ │ ├── S05syslog │ │ │ │ │ ├── S10sysctl │ │ │ │ │ ├── S12udev │ │ │ │ │ ├── S13btuart │ │ │ │ │ ├── S13watchdog │ │ │ │ │ ├── S14postupgrade │ │ │ │ │ ├── S15rngd │ │ │ │ │ ├── S30dbus │ │ │ │ │ ├── S31ifalias │ │ │ │ │ ├── S35wifi │ │ │ │ │ ├── S36ppp │ │ │ │ │ ├── S37bluetooth │ │ │ │ │ ├── S39factoryreset │ │ │ │ │ ├── S40network │ │ │ │ │ ├── S41netwatch │ │ │ │ │ ├── S42connman │ │ │ │ │ ├── S43firewall │ │ │ │ │ ├── S44hostapd │ │ │ │ │ ├── S44shownetinfo │ │ │ │ │ ├── S45dnsmasq │ │ │ │ │ ├── S50date │ │ │ │ │ ├── S51crond │ │ │ │ │ ├── S52postupgradenet │ │ │ │ │ ├── S55openvpn │ │ │ │ │ ├── S60dockerd │ │ │ │ │ ├── S60sshd │ │ │ │ │ ├── S61proftpd │ │ │ │ │ ├── S62smb │ │ │ │ │ ├── S70mongod │ │ │ │ │ ├── S71redis │ │ │ │ │ ├── S72postgresql │ │ │ │ │ ├── S79postupgradeapp │ │ │ │ │ ├── S80dockercompose │ │ │ │ │ ├── S97dyndns │ │ │ │ │ ├── S98userinit │ │ │ │ │ ├── base │ │ │ │ │ ├── boardsn │ │ │ │ │ ├── bootdone │ │ │ │ │ ├── mountsys │ │ │ │ │ ├── os_conf │ │ │ │ │ ├── rcK │ │ │ │ │ └── rcS │ │ │ │ ├── inittab │ │ │ │ ├── inputrc │ │ │ │ ├── issue │ │ │ │ ├── logrotate.conf │ │ │ │ ├── mime.types │ │ │ │ ├── modprobe.d/ │ │ │ │ │ └── modprobe.conf │ │ │ │ ├── modules │ │ │ │ ├── netwatch.conf │ │ │ │ ├── nsswitch.conf │ │ │ │ ├── ntp.conf │ │ │ │ ├── os.conf │ │ │ │ ├── ppp/ │ │ │ │ │ ├── chatscripts/ │ │ │ │ │ │ └── mobile.chat │ │ │ │ │ ├── ip-up │ │ │ │ │ ├── options │ │ │ │ │ └── peers/ │ │ │ │ │ └── mobile │ │ │ │ ├── profile │ │ │ │ ├── protocols │ │ │ │ ├── random-seed │ │ │ │ ├── securetty │ │ │ │ ├── services │ │ │ │ ├── ssh/ │ │ │ │ │ └── sshd_config │ │ │ │ ├── syslog.conf │ │ │ │ ├── udev/ │ │ │ │ │ └── rules.d/ │ │ │ │ │ └── 61-usb-storage.rules │ │ │ │ ├── version │ │ │ │ └── wpa_supplicant.conf │ │ │ ├── sbin/ │ │ │ │ ├── dhclient-script │ │ │ │ ├── fwupdate │ │ │ │ ├── panic │ │ │ │ ├── poweroff │ │ │ │ ├── reboot │ │ │ │ ├── service │ │ │ │ └── toemmc │ │ │ └── usr/ │ │ │ ├── bin/ │ │ │ │ └── gpio.sh │ │ │ ├── libexec/ │ │ │ │ ├── dehydrated-dumb-httpd │ │ │ │ ├── dehydrated-hook │ │ │ │ └── fwupdate-auto │ │ │ ├── sbin/ │ │ │ │ ├── adminpasswd │ │ │ │ ├── dehydrated-wrapper │ │ │ │ ├── dyndns-update │ │ │ │ └── https-update │ │ │ └── share/ │ │ │ ├── dataoverlay/ │ │ │ │ └── .empty │ │ │ ├── dataskel/ │ │ │ │ ├── etc/ │ │ │ │ │ └── .empty │ │ │ │ ├── log/ │ │ │ │ │ └── .empty │ │ │ │ ├── media/ │ │ │ │ │ └── .empty │ │ │ │ ├── usr/ │ │ │ │ │ └── .empty │ │ │ │ └── varlib/ │ │ │ │ └── .empty │ │ │ ├── post-upgrade/ │ │ │ │ └── .empty │ │ │ └── pre-upgrade/ │ │ │ └── postgresql.sh │ │ ├── overlay-initramfs/ │ │ │ ├── boot/ │ │ │ │ └── .empty │ │ │ ├── data/ │ │ │ │ └── .empty │ │ │ └── init │ │ └── postscript.sh │ ├── nanopir1/ │ │ ├── board.conf │ │ ├── boot.cmd │ │ ├── cpinitramfs.sh │ │ ├── kernel-extra.config │ │ ├── overlay/ │ │ │ ├── etc/ │ │ │ │ ├── board │ │ │ │ ├── init.d/ │ │ │ │ │ ├── S00statusled │ │ │ │ │ ├── S41netled │ │ │ │ │ └── S99okled │ │ │ │ └── os-platform.conf │ │ │ ├── lib/ │ │ │ │ └── firmware/ │ │ │ │ └── ap6212/ │ │ │ │ ├── bcm43438a0.hcd │ │ │ │ ├── bcm43438a1.hcd │ │ │ │ ├── config.txt │ │ │ │ ├── nvram.txt │ │ │ │ └── nvram_ap6212.txt │ │ │ └── usr/ │ │ │ └── libexec/ │ │ │ ├── after-factory-reset │ │ │ ├── brcm_patchram_plus │ │ │ ├── btuart │ │ │ └── fw-prepare-boot │ │ ├── overlay-initramfs/ │ │ │ └── remove_initramfs │ │ ├── postscript.sh │ │ └── uEnv.txt │ ├── radxacm3/ │ │ ├── board.conf │ │ ├── boot.cmd │ │ ├── cpinitramfs.sh │ │ ├── overlay/ │ │ │ ├── etc/ │ │ │ │ └── board │ │ │ ├── lib/ │ │ │ │ └── firmware/ │ │ │ │ ├── brcm/ │ │ │ │ │ ├── BCM43430A1.hcd │ │ │ │ │ ├── BCM43455_003.001.025.0160.0303.hcd │ │ │ │ │ ├── BCM4345C0.hcd │ │ │ │ │ ├── BCM4345C0_003.001.025.0162.0000_Generic_UART_37_4MHz_wlbga_ref_iLNA_iTR_eLG.hcd │ │ │ │ │ ├── BCM4345C5.hcd │ │ │ │ │ ├── brcmfmac43430-sdio.txt │ │ │ │ │ ├── brcmfmac43455-sdio.clm_blob │ │ │ │ │ ├── brcmfmac43455-sdio.radxa,rockpi4b.txt │ │ │ │ │ ├── brcmfmac43455-sdio.txt │ │ │ │ │ └── brcmfmac43456-sdio.txt │ │ │ │ ├── nvram_ap6212a.txt │ │ │ │ ├── nvram_ap6236.txt │ │ │ │ ├── nvram_ap6255.txt │ │ │ │ ├── nvram_ap6256.txt │ │ │ │ ├── nvram_ap6275s.txt │ │ │ │ ├── nvram_ap6356.txt │ │ │ │ ├── nvram_ap6356s.txt │ │ │ │ ├── nvram_ap6398s.txt │ │ │ │ ├── nvram_ap6398sr3.txt │ │ │ │ └── nvram_azw256.txt │ │ │ └── usr/ │ │ │ └── libexec/ │ │ │ ├── brcm_patchram_plus1 │ │ │ ├── btuart │ │ │ └── fw-prepare-boot │ │ ├── overlay-initramfs/ │ │ │ └── remove_initramfs │ │ ├── postscript.sh │ │ ├── rk3568_bl31_v1.32.elf │ │ ├── uEnv.txt │ │ └── writeimage.sh │ ├── raspberrypi/ │ │ ├── cleanups.sh │ │ ├── cmdline.txt │ │ ├── config.txt │ │ ├── cpinitramfs.sh │ │ ├── overlay/ │ │ │ ├── etc/ │ │ │ │ ├── board │ │ │ │ ├── init.d/ │ │ │ │ │ ├── S07dtoverlays │ │ │ │ │ └── S11throttlewatch │ │ │ │ ├── ld.so.preload │ │ │ │ ├── modprobe.d/ │ │ │ │ │ └── blacklist-rtl8192cu.conf │ │ │ │ ├── modules │ │ │ │ └── udev/ │ │ │ │ └── rules.d/ │ │ │ │ └── 99-com.rules │ │ │ └── usr/ │ │ │ └── libexec/ │ │ │ ├── btuart │ │ │ └── fw-prepare-boot │ │ ├── overlay-initramfs/ │ │ │ └── remove_initramfs │ │ ├── postscript.sh │ │ ├── update-firmware-kernel.sh │ │ └── update-userland.sh │ ├── raspberrypi2/ │ │ ├── cmdline.txt │ │ ├── config.txt │ │ ├── overlay/ │ │ │ ├── etc/ │ │ │ │ ├── board │ │ │ │ ├── init.d/ │ │ │ │ │ ├── S07dtoverlays │ │ │ │ │ └── S11throttlewatch │ │ │ │ ├── ld.so.preload │ │ │ │ ├── modprobe.d/ │ │ │ │ │ └── blacklist-rtl8192cu.conf │ │ │ │ └── modules │ │ │ └── usr/ │ │ │ └── libexec/ │ │ │ └── fw-prepare-boot │ │ └── postscript.sh │ ├── raspberrypi3/ │ │ ├── cmdline.txt │ │ ├── config.txt │ │ ├── overlay/ │ │ │ ├── etc/ │ │ │ │ ├── board │ │ │ │ ├── init.d/ │ │ │ │ │ ├── S07dtoverlays │ │ │ │ │ └── S11throttlewatch │ │ │ │ ├── ld.so.preload │ │ │ │ ├── modprobe.d/ │ │ │ │ │ └── blacklist-rtl8192cu.conf │ │ │ │ ├── modules │ │ │ │ └── udev/ │ │ │ │ └── rules.d/ │ │ │ │ └── 99-com.rules │ │ │ └── usr/ │ │ │ └── libexec/ │ │ │ ├── btuart │ │ │ └── fw-prepare-boot │ │ └── postscript.sh │ ├── raspberrypi4/ │ │ ├── cmdline.txt │ │ ├── config.txt │ │ ├── overlay/ │ │ │ ├── etc/ │ │ │ │ ├── board │ │ │ │ ├── init.d/ │ │ │ │ │ ├── S07dtoverlays │ │ │ │ │ └── S11throttlewatch │ │ │ │ ├── ld.so.preload │ │ │ │ ├── modprobe.d/ │ │ │ │ │ └── blacklist-rtl8192cu.conf │ │ │ │ ├── modules │ │ │ │ └── udev/ │ │ │ │ └── rules.d/ │ │ │ │ └── 99-com.rules │ │ │ ├── lib/ │ │ │ │ └── firmware/ │ │ │ │ └── brcm/ │ │ │ │ ├── BCM43430A1.hcd │ │ │ │ ├── BCM4345C0.hcd │ │ │ │ ├── BCM4345C5.hcd │ │ │ │ ├── brcmfmac43430-sdio.clm_blob │ │ │ │ ├── brcmfmac43430-sdio.txt │ │ │ │ ├── brcmfmac43455-sdio.clm_blob │ │ │ │ ├── brcmfmac43455-sdio.txt │ │ │ │ ├── brcmfmac43456-sdio.clm_blob │ │ │ │ └── brcmfmac43456-sdio.txt │ │ │ └── usr/ │ │ │ └── libexec/ │ │ │ ├── btuart │ │ │ └── fw-prepare-boot │ │ └── postscript.sh │ ├── raspberrypi64/ │ │ ├── cmdline.txt │ │ ├── config.txt │ │ ├── overlay/ │ │ │ ├── etc/ │ │ │ │ ├── board │ │ │ │ ├── init.d/ │ │ │ │ │ ├── S07dtoverlays │ │ │ │ │ └── S11throttlewatch │ │ │ │ ├── modprobe.d/ │ │ │ │ │ └── blacklist-rtl8192cu.conf │ │ │ │ ├── modules │ │ │ │ └── udev/ │ │ │ │ └── rules.d/ │ │ │ │ └── 99-com.rules │ │ │ └── usr/ │ │ │ ├── bin/ │ │ │ │ ├── dtoverlay │ │ │ │ └── vcgencmd │ │ │ ├── lib/ │ │ │ │ ├── libdtovl.so.0 │ │ │ │ ├── libvchiq_arm.so.0 │ │ │ │ └── libvcos.so.0 │ │ │ └── libexec/ │ │ │ ├── btuart │ │ │ └── fw-prepare-boot │ │ └── postscript.sh │ └── rockpi4b/ │ ├── board.conf │ ├── boot.cmd │ ├── cpinitramfs.sh │ ├── extlinux.conf │ ├── hw_intfc.conf │ ├── linux.fragment │ ├── overlay/ │ │ ├── etc/ │ │ │ └── board │ │ ├── lib/ │ │ │ └── firmware/ │ │ │ ├── BCM4343B0.hcd │ │ │ └── nvram_azw372.txt │ │ └── usr/ │ │ └── libexec/ │ │ ├── brcm_patchram_plus1 │ │ ├── btuart │ │ └── fw-prepare-boot │ ├── overlay-initramfs/ │ │ └── remove_initramfs │ ├── postscript.sh │ ├── uEnv.txt │ ├── uboot/ │ │ └── 0001-fix-compiling-errors.patch │ └── writeimage.sh ├── boot/ │ ├── Config.in │ ├── afboot-stm32/ │ │ ├── 0001-Pass-fno-builtin-to-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── afboot-stm32.hash │ │ └── afboot-stm32.mk │ ├── arm-trusted-firmware/ │ │ ├── Config.in │ │ ├── arm-trusted-firmware.hash │ │ └── arm-trusted-firmware.mk │ ├── at91bootstrap/ │ │ ├── Config.in │ │ ├── at91bootstrap-1.16-eabi-fix.patch │ │ ├── at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patch │ │ ├── at91bootstrap-1.16-u-boot-relocation-fix.patch │ │ ├── at91bootstrap.hash │ │ └── at91bootstrap.mk │ ├── at91bootstrap3/ │ │ ├── Config.in │ │ ├── at91bootstrap3.hash │ │ └── at91bootstrap3.mk │ ├── at91dataflashboot/ │ │ ├── Config.in │ │ ├── at91dataflashboot-1.05-do-not-install.patch │ │ ├── at91dataflashboot-1.05-eabi-fixes.patch │ │ ├── at91dataflashboot.hash │ │ └── at91dataflashboot.mk │ ├── barebox/ │ │ ├── Config.in │ │ ├── barebox/ │ │ │ ├── Config.in │ │ │ └── barebox.mk │ │ ├── barebox-aux/ │ │ │ ├── Config.in │ │ │ └── barebox-aux.mk │ │ ├── barebox.hash │ │ └── barebox.mk │ ├── beaglev-ddrinit/ │ │ ├── Config.in │ │ ├── beaglev-ddrinit.hash │ │ └── beaglev-ddrinit.mk │ ├── beaglev-secondboot/ │ │ ├── Config.in │ │ ├── beaglev-secondboot.hash │ │ └── beaglev-secondboot.mk │ ├── binaries-marvell/ │ │ ├── Config.in │ │ ├── binaries-marvell.hash │ │ └── binaries-marvell.mk │ ├── boot-wrapper-aarch64/ │ │ ├── Config.in │ │ └── boot-wrapper-aarch64.mk │ ├── common.mk │ ├── edk2/ │ │ ├── Config.in │ │ ├── edk2.hash │ │ └── edk2.mk │ ├── grub2/ │ │ ├── 0001-build-Fix-GRUB-i386-pc-build-with-Ubuntu-gcc.patch │ │ ├── 0002-yylex-Make-lexer-fatal-errors-actually-be-fatal.patch │ │ ├── 0003-safemath-Add-some-arithmetic-primitives-that-check-f.patch │ │ ├── 0004-calloc-Make-sure-we-always-have-an-overflow-checking.patch │ │ ├── 0005-calloc-Use-calloc-at-most-places.patch │ │ ├── 0006-malloc-Use-overflow-checking-primitives-where-we-do-.patch │ │ ├── 0007-iso9660-Don-t-leak-memory-on-realloc-failures.patch │ │ ├── 0008-font-Do-not-load-more-than-one-NAME-section.patch │ │ ├── 0009-gfxmenu-Fix-double-free-in-load_image.patch │ │ ├── 0010-xnu-Fix-double-free-in-grub_xnu_devprop_add_property.patch │ │ ├── 0011-lzma-Make-sure-we-don-t-dereference-past-array.patch │ │ ├── 0012-term-Fix-overflow-on-user-inputs.patch │ │ ├── 0013-udf-Fix-memory-leak.patch │ │ ├── 0014-multiboot2-Fix-memory-leak-if-grub_create_loader_cmd.patch │ │ ├── 0015-tftp-Do-not-use-priority-queue.patch │ │ ├── 0016-relocator-Protect-grub_relocator_alloc_chunk_addr-in.patch │ │ ├── 0017-relocator-Protect-grub_relocator_alloc_chunk_align-m.patch │ │ ├── 0018-script-Remove-unused-fields-from-grub_script_functio.patch │ │ ├── 0019-script-Avoid-a-use-after-free-when-redefining-a-func.patch │ │ ├── 0020-relocator-Fix-grub_relocator_alloc_chunk_align-top-m.patch │ │ ├── 0021-hfsplus-Fix-two-more-overflows.patch │ │ ├── 0022-lvm-Fix-two-more-potential-data-dependent-alloc-over.patch │ │ ├── 0023-emu-Make-grub_free-NULL-safe.patch │ │ ├── 0024-efi-Fix-some-malformed-device-path-arithmetic-errors.patch │ │ ├── 0025-efi-chainloader-Propagate-errors-from-copy_file_path.patch │ │ ├── 0026-efi-Fix-use-after-free-in-halt-reboot-path.patch │ │ ├── 0027-loader-linux-Avoid-overflow-on-initrd-size-calculati.patch │ │ ├── 0028-linux-Fix-integer-overflows-in-initrd-size-handling.patch │ │ ├── 0029-efi-Make-shim_lock-GUID-and-protocol-type-public.patch │ │ ├── 0030-efi-Return-grub_efi_status_t-from-grub_efi_get_varia.patch │ │ ├── 0031-efi-Add-a-function-to-read-EFI-variables-with-attrib.patch │ │ ├── 0032-efi-Add-secure-boot-detection.patch │ │ ├── 0033-verifiers-Move-verifiers-API-to-kernel-image.patch │ │ ├── 0034-efi-Move-the-shim_lock-verifier-to-the-GRUB-core.patch │ │ ├── 0035-kern-Add-lockdown-support.patch │ │ ├── 0036-kern-lockdown-Set-a-variable-if-the-GRUB-is-locked-d.patch │ │ ├── 0037-efi-Lockdown-the-GRUB-when-the-UEFI-Secure-Boot-is-e.patch │ │ ├── 0038-efi-Use-grub_is_lockdown-instead-of-hardcoding-a-dis.patch │ │ ├── 0039-acpi-Don-t-register-the-acpi-command-when-locked-dow.patch │ │ ├── 0040-mmap-Don-t-register-cutmem-and-badram-commands-when-.patch │ │ ├── 0041-commands-Restrict-commands-that-can-load-BIOS-or-DT-.patch │ │ ├── 0042-commands-setpci-Restrict-setpci-command-when-locked-.patch │ │ ├── 0043-commands-hdparm-Restrict-hdparm-command-when-locked-.patch │ │ ├── 0044-gdb-Restrict-GDB-access-when-locked-down.patch │ │ ├── 0045-loader-xnu-Don-t-allow-loading-extension-and-package.patch │ │ ├── 0046-docs-Document-the-cutmem-command.patch │ │ ├── 0047-dl-Only-allow-unloading-modules-that-are-not-depende.patch │ │ ├── 0048-usb-Avoid-possible-out-of-bound-accesses-caused-by-m.patch │ │ ├── 0049-mmap-Fix-memory-leak-when-iterating-over-mapped-memo.patch │ │ ├── 0050-net-net-Fix-possible-dereference-to-of-a-NULL-pointe.patch │ │ ├── 0051-net-tftp-Fix-dangling-memory-pointer.patch │ │ ├── 0052-kern-parser-Fix-resource-leak-if-argc-0.patch │ │ ├── 0053-kern-efi-Fix-memory-leak-on-failure.patch │ │ ├── 0054-kern-efi-mm-Fix-possible-NULL-pointer-dereference.patch │ │ ├── 0055-gnulib-regexec-Resolve-unused-variable.patch │ │ ├── 0056-gnulib-regcomp-Fix-uninitialized-token-structure.patch │ │ ├── 0057-gnulib-argp-help-Fix-dereference-of-a-possibly-NULL-.patch │ │ ├── 0058-gnulib-regexec-Fix-possible-null-dereference.patch │ │ ├── 0059-gnulib-regcomp-Fix-uninitialized-re_token.patch │ │ ├── 0060-io-lzopio-Resolve-unnecessary-self-assignment-errors.patch │ │ ├── 0061-zstd-Initialize-seq_t-structure-fully.patch │ │ ├── 0062-kern-partition-Check-for-NULL-before-dereferencing-i.patch │ │ ├── 0063-disk-ldm-Make-sure-comp-data-is-freed-before-exiting.patch │ │ ├── 0064-disk-ldm-If-failed-then-free-vg-variable-too.patch │ │ ├── 0065-disk-ldm-Fix-memory-leak-on-uninserted-lv-references.patch │ │ ├── 0066-disk-cryptodisk-Fix-potential-integer-overflow.patch │ │ ├── 0067-hfsplus-Check-that-the-volume-name-length-is-valid.patch │ │ ├── 0068-zfs-Fix-possible-negative-shift-operation.patch │ │ ├── 0069-zfs-Fix-resource-leaks-while-constructing-path.patch │ │ ├── 0070-zfs-Fix-possible-integer-overflows.patch │ │ ├── 0071-zfsinfo-Correct-a-check-for-error-allocating-memory.patch │ │ ├── 0072-affs-Fix-memory-leaks.patch │ │ ├── 0073-libgcrypt-mpi-Fix-possible-unintended-sign-extension.patch │ │ ├── 0074-libgcrypt-mpi-Fix-possible-NULL-dereference.patch │ │ ├── 0075-syslinux-Fix-memory-leak-while-parsing.patch │ │ ├── 0076-normal-completion-Fix-leaking-of-memory-when-process.patch │ │ ├── 0077-commands-hashsum-Fix-a-memory-leak.patch │ │ ├── 0079-video-efi_gop-Remove-unnecessary-return-value-of-gru.patch │ │ ├── 0080-video-fb-fbfill-Fix-potential-integer-overflow.patch │ │ ├── 0081-video-fb-video_fb-Fix-multiple-integer-overflows.patch │ │ ├── 0082-video-fb-video_fb-Fix-possible-integer-overflow.patch │ │ ├── 0083-video-readers-jpeg-Test-for-an-invalid-next-marker-r.patch │ │ ├── 0084-gfxmenu-gui_list-Remove-code-that-coverity-is-flaggi.patch │ │ ├── 0085-loader-bsd-Check-for-NULL-arg-up-front.patch │ │ ├── 0086-loader-xnu-Fix-memory-leak.patch │ │ ├── 0087-loader-xnu-Free-driverkey-data-when-an-error-is-dete.patch │ │ ├── 0088-loader-xnu-Check-if-pointer-is-NULL-before-using-it.patch │ │ ├── 0089-util-grub-install-Fix-NULL-pointer-dereferences.patch │ │ ├── 0090-util-grub-editenv-Fix-incorrect-casting-of-a-signed-.patch │ │ ├── 0091-util-glue-efi-Fix-incorrect-use-of-a-possibly-negati.patch │ │ ├── 0092-script-execute-Fix-NULL-dereference-in-grub_script_e.patch │ │ ├── 0093-commands-ls-Require-device_name-is-not-NULL-before-p.patch │ │ ├── 0094-script-execute-Avoid-crash-when-using-outside-a-func.patch │ │ ├── 0095-lib-arg-Block-repeated-short-options-that-require-an.patch │ │ ├── 0096-script-execute-Don-t-crash-on-a-for-loop-with-no-ite.patch │ │ ├── 0097-commands-menuentry-Fix-quoting-in-setparams_prefix.patch │ │ ├── 0098-kern-misc-Always-set-end-in-grub_strtoull.patch │ │ ├── 0099-video-readers-jpeg-Catch-files-with-unsupported-quan.patch │ │ ├── 0100-video-readers-jpeg-Catch-OOB-reads-writes-in-grub_jp.patch │ │ ├── 0101-video-readers-jpeg-Don-t-decode-data-before-start-of.patch │ │ ├── 0102-term-gfxterm-Don-t-set-up-a-font-with-glyphs-that-ar.patch │ │ ├── 0103-fs-fshelp-Catch-impermissibly-large-block-sizes-in-r.patch │ │ ├── 0104-fs-hfsplus-Don-t-fetch-a-key-beyond-the-end-of-the-n.patch │ │ ├── 0105-fs-hfsplus-Don-t-use-uninitialized-data-on-corrupt-f.patch │ │ ├── 0106-fs-hfs-Disable-under-lockdown.patch │ │ ├── 0107-fs-sfs-Fix-over-read-of-root-object-name.patch │ │ ├── 0108-fs-jfs-Do-not-move-to-leaf-level-if-name-length-is-n.patch │ │ ├── 0109-fs-jfs-Limit-the-extents-that-getblk-can-consider.patch │ │ ├── 0110-fs-jfs-Catch-infinite-recursion.patch │ │ ├── 0111-fs-nilfs2-Reject-too-large-keys.patch │ │ ├── 0112-fs-nilfs2-Don-t-search-children-if-provided-number-i.patch │ │ ├── 0113-fs-nilfs2-Properly-bail-on-errors-in-grub_nilfs2_btr.patch │ │ ├── 0114-io-gzio-Bail-if-gzio-tl-td-is-NULL.patch │ │ ├── 0115-io-gzio-Add-init_dynamic_block-clean-up-if-unpacking.patch │ │ ├── 0116-io-gzio-Catch-missing-values-in-huft_build-and-bail.patch │ │ ├── 0117-io-gzio-Zero-gzio-tl-td-in-init_dynamic_block-if-huf.patch │ │ ├── 0118-disk-lvm-Don-t-go-beyond-the-end-of-the-data-we-read.patch │ │ ├── 0119-disk-lvm-Don-t-blast-past-the-end-of-the-circular-me.patch │ │ ├── 0120-disk-lvm-Bail-on-missing-PV-list.patch │ │ ├── 0121-disk-lvm-Do-not-crash-if-an-expected-string-is-not-f.patch │ │ ├── 0122-disk-lvm-Do-not-overread-metadata.patch │ │ ├── 0123-disk-lvm-Sanitize-rlocn-offset-to-prevent-wild-read.patch │ │ ├── 0124-disk-lvm-Do-not-allow-a-LV-to-be-it-s-own-segment-s-.patch │ │ ├── 0125-fs-btrfs-Validate-the-number-of-stripes-parities-in-.patch │ │ ├── 0126-fs-btrfs-Squash-some-uninitialized-reads.patch │ │ ├── 0127-kern-parser-Fix-a-memory-leak.patch │ │ ├── 0128-kern-parser-Introduce-process_char-helper.patch │ │ ├── 0129-kern-parser-Introduce-terminate_arg-helper.patch │ │ ├── 0130-kern-parser-Refactor-grub_parser_split_cmdline-clean.patch │ │ ├── 0131-kern-buffer-Add-variable-sized-heap-buffer.patch │ │ ├── 0132-kern-parser-Fix-a-stack-buffer-overflow.patch │ │ ├── 0133-kern-efi-Add-initial-stack-protector-implementation.patch │ │ ├── 0134-util-mkimage-Remove-unused-code-to-add-BSS-section.patch │ │ ├── 0135-util-mkimage-Use-grub_host_to_target32-instead-of-gr.patch │ │ ├── 0136-util-mkimage-Always-use-grub_host_to_target32-to-ini.patch │ │ ├── 0137-util-mkimage-Unify-more-of-the-PE32-and-PE32-header-.patch │ │ ├── 0138-util-mkimage-Reorder-PE-optional-header-fields-set-u.patch │ │ ├── 0139-util-mkimage-Improve-data_size-value-calculation.patch │ │ ├── 0140-util-mkimage-Refactor-section-setup-to-use-a-helper.patch │ │ ├── 0141-util-mkimage-Add-an-option-to-import-SBAT-metadata-i.patch │ │ ├── 0142-grub-install-common-Add-sbat-option.patch │ │ ├── 0143-shim_lock-Only-skip-loading-shim_lock-verifier-with-.patch │ │ ├── 0144-kern-misc-Split-parse_printf_args-into-format-parsin.patch │ │ ├── 0145-kern-misc-Add-STRING-type-for-internal-printf-format.patch │ │ ├── 0146-kern-misc-Add-function-to-check-printf-format-agains.patch │ │ ├── 0147-gfxmenu-gui-Check-printf-format-in-the-gui_progress_.patch │ │ ├── 0148-templates-Disable-the-os-prober-by-default.patch │ │ ├── 0149-kern-mm-Fix-grub_debug_calloc-compilation-error.patch │ │ ├── 0150-Makefile-Make-libgrub.pp-depend-on-config-util.h.patch │ │ ├── Config.in │ │ ├── grub.cfg │ │ ├── grub2.hash │ │ ├── grub2.mk │ │ └── readme.txt │ ├── gummiboot/ │ │ ├── 0001-Allow-building-with-newer-glibc-versions.patch │ │ ├── 0002-Fix-linking-for-non-host-compatible-targets.patch │ │ ├── Config.in │ │ ├── buildroot.conf │ │ ├── gummiboot.mk │ │ └── loader.conf │ ├── lpc32xxcdl/ │ │ ├── Config.in │ │ ├── lpc32xxcdl-2.11-compiler_name.patch │ │ ├── lpc32xxcdl-2.11-delete_redundant_files.patch │ │ ├── lpc32xxcdl-2.11-libnosys_gnu.patch │ │ ├── lpc32xxcdl-2.11-slashes.patch │ │ ├── lpc32xxcdl.hash │ │ └── lpc32xxcdl.mk │ ├── mv-ddr-marvell/ │ │ ├── Config.in │ │ ├── mv-ddr-marvell.hash │ │ └── mv-ddr-marvell.mk │ ├── mxs-bootlets/ │ │ ├── Config.in │ │ ├── barebox_ivt.bd │ │ ├── mxs-bootlets.hash │ │ └── mxs-bootlets.mk │ ├── opensbi/ │ │ ├── 0.9/ │ │ │ ├── 0001-Makefile-Don-t-specify-mabi-or-march.patch │ │ │ └── 0002-Makefile-unconditionally-disable-SSP.patch │ │ ├── Config.in │ │ ├── opensbi.hash │ │ └── opensbi.mk │ ├── optee-os/ │ │ ├── 3.13.0/ │ │ │ └── 0001-core-zlib-fix-build-warning-when-_LFS64_LARGEFILE-is.patch │ │ ├── Config.in │ │ ├── optee-os.hash │ │ └── optee-os.mk │ ├── s500-bootloader/ │ │ ├── Config.in │ │ ├── s500-bootloader.hash │ │ └── s500-bootloader.mk │ ├── shim/ │ │ ├── Config.in │ │ ├── shim.hash │ │ └── shim.mk │ ├── sun20i-d1-spl/ │ │ ├── Config.in │ │ ├── sun20i-d1-spl.hash │ │ └── sun20i-d1-spl.mk │ ├── syslinux/ │ │ ├── 0001-bios-Fix-alignment-change-with-gcc-5.patch │ │ ├── 0002-Disable-PIE-to-avoid-FTBFS-on-amd64.patch │ │ ├── 0003-memdisk-Force-ld-output-format-to-32-bits.patch │ │ ├── 0004-utils-Use-the-host-toolchain-to-build.patch │ │ ├── 0005-lzo-Use-the-host-toolchain-for-prepcore.patch │ │ ├── 0006-The-VPrint-definition-is-now-part-of-the-exports-of-.patch │ │ ├── 0007-Update-the-longjump-calls-to-fit-the-new-declaration.patch │ │ ├── 0008-efi-wrapper-build-it-with-the-host-toolchain.patch │ │ ├── 0009-bios-Don-t-try-to-guess-the-sections-alignment.patch │ │ ├── 0010-core-Clean-up-the-i386-bios-build.patch │ │ ├── 0011-extlinux-Use-the-host-toolchain-to-build.patch │ │ ├── 0012-pull-in-sys-sysmacros-h-for-major-minor-makedev.patch │ │ ├── 0013-Fix-build-with-gnu-efi-version-3.0.9.patch │ │ ├── 0014-Fix-build-with-binutils-note-gnu-property-section.patch │ │ ├── 0015-efi-main.c-include-efisetjmp.h.patch │ │ ├── 0016-Workaround-multiple-definition-of-symbol-errors.patch │ │ ├── 0017-Replace-builtin-strlen-that-appears-to-get-optimized.patch │ │ ├── Config.in │ │ ├── syslinux.hash │ │ └── syslinux.mk │ ├── uboot/ │ │ ├── 2015.07/ │ │ │ └── 0001-Revert-arch-Make-board-selection-choices-optional.patch │ │ ├── 2016.07/ │ │ │ └── 0001-arc-Use-mcpu-XXX-instead-of-obsolete-marcXXX.patch │ │ ├── 2016.09.01/ │ │ │ └── 0001-arc-Use-mcpu-XXX-instead-of-obsolete-marcXXX.patch │ │ ├── Config.in │ │ ├── uboot.hash │ │ └── uboot.mk │ └── vexpress-firmware/ │ ├── Config.in │ ├── vexpress-firmware.hash │ └── vexpress-firmware.mk ├── build-docker.sh ├── build.sh ├── configs/ │ ├── nanopir1_defconfig │ ├── nanopir1_initramfs_defconfig │ ├── radxacm3_defconfig │ ├── radxacm3_initramfs_defconfig │ ├── raspberrypi2_defconfig │ ├── raspberrypi2_initramfs_defconfig │ ├── raspberrypi3_defconfig │ ├── raspberrypi3_initramfs_defconfig │ ├── raspberrypi4_defconfig │ ├── raspberrypi4_initramfs_defconfig │ ├── raspberrypi64_defconfig │ ├── raspberrypi64_initramfs_defconfig │ ├── raspberrypi_defconfig │ ├── raspberrypi_initramfs_defconfig │ ├── rockpi4b_defconfig │ └── rockpi4b_initramfs_defconfig ├── docs/ │ ├── conf/ │ │ └── asciidoc-text.conf │ ├── manual/ │ │ ├── adding-board-support.txt │ │ ├── adding-packages-asciidoc.txt │ │ ├── adding-packages-autotools.txt │ │ ├── adding-packages-cargo.txt │ │ ├── adding-packages-cmake.txt │ │ ├── adding-packages-conclusion.txt │ │ ├── adding-packages-directory.txt │ │ ├── adding-packages-generic.txt │ │ ├── adding-packages-gettext.txt │ │ ├── adding-packages-golang.txt │ │ ├── adding-packages-hooks.txt │ │ ├── adding-packages-kconfig.txt │ │ ├── adding-packages-kernel-module.txt │ │ ├── adding-packages-linux-kernel-spec-infra.txt │ │ ├── adding-packages-luarocks.txt │ │ ├── adding-packages-meson.txt │ │ ├── adding-packages-perl.txt │ │ ├── adding-packages-python.txt │ │ ├── adding-packages-qmake.txt │ │ ├── adding-packages-rebar.txt │ │ ├── adding-packages-tips.txt │ │ ├── adding-packages-virtual.txt │ │ ├── adding-packages-waf.txt │ │ ├── adding-packages.txt │ │ ├── advanced.txt │ │ ├── appendix.txt │ │ ├── beyond-buildroot.txt │ │ ├── ccache-support.txt │ │ ├── common-usage.txt │ │ ├── configure-other-components.txt │ │ ├── configure.txt │ │ ├── contribute.txt │ │ ├── customize-configuration.txt │ │ ├── customize-device-permission-tables.txt │ │ ├── customize-directory-structure.txt │ │ ├── customize-outside-br.txt │ │ ├── customize-packages.txt │ │ ├── customize-patches.txt │ │ ├── customize-post-image.txt │ │ ├── customize-quick-guide.txt │ │ ├── customize-rootfs.txt │ │ ├── customize-users-tables.txt │ │ ├── customize.txt │ │ ├── debugging-buildroot.txt │ │ ├── developers.txt │ │ ├── download-infra.txt │ │ ├── download-location.txt │ │ ├── eclipse-integration.txt │ │ ├── faq-troubleshooting.txt │ │ ├── getting.txt │ │ ├── how-buildroot-works.txt │ │ ├── introduction.txt │ │ ├── known-issues.txt │ │ ├── legal-notice.txt │ │ ├── make-tips.txt │ │ ├── makedev-syntax.txt │ │ ├── makeusers-syntax.txt │ │ ├── manual.mk │ │ ├── manual.txt │ │ ├── migrating.txt │ │ ├── package-make-target.txt │ │ ├── patch-policy.txt │ │ ├── prerequisite.txt │ │ ├── quickstart.txt │ │ ├── rebuilding-packages.txt │ │ ├── release-engineering.txt │ │ ├── resources.txt │ │ ├── selinux-support.txt │ │ ├── using-buildroot-debugger.txt │ │ ├── using-buildroot-development.txt │ │ ├── using-buildroot-toolchain.txt │ │ └── writing-rules.txt │ └── website/ │ ├── .htaccess │ ├── association.html │ ├── contribute.html │ ├── copyright.txt │ ├── css/ │ │ ├── main.css │ │ └── timeline.css │ ├── docs.html │ ├── download.html │ ├── footer.html │ ├── header.html │ ├── images/ │ │ └── logo.xcf │ ├── index.html │ ├── js/ │ │ └── buildroot.js │ ├── news.html │ ├── robots.txt │ ├── sponsors.html │ └── support.html ├── fs/ │ ├── Config.in │ ├── axfs/ │ │ ├── Config.in │ │ └── axfs.mk │ ├── btrfs/ │ │ ├── Config.in │ │ └── btrfs.mk │ ├── cloop/ │ │ ├── Config.in │ │ └── cloop.mk │ ├── common.mk │ ├── cpio/ │ │ ├── Config.in │ │ ├── cpio.mk │ │ └── init │ ├── cramfs/ │ │ ├── Config.in │ │ └── cramfs.mk │ ├── erofs/ │ │ ├── Config.in │ │ └── erofs.mk │ ├── ext2/ │ │ ├── Config.in │ │ └── ext2.mk │ ├── f2fs/ │ │ ├── Config.in │ │ └── f2fs.mk │ ├── initramfs/ │ │ ├── Config.in │ │ └── initramfs.mk │ ├── iso9660/ │ │ ├── Config.in │ │ ├── grub.cfg │ │ ├── iso9660.mk │ │ └── isolinux.cfg │ ├── jffs2/ │ │ ├── Config.in │ │ └── jffs2.mk │ ├── oci/ │ │ ├── Config.in │ │ └── oci.mk │ ├── romfs/ │ │ ├── Config.in │ │ └── romfs.mk │ ├── squashfs/ │ │ ├── Config.in │ │ └── squashfs.mk │ ├── tar/ │ │ ├── Config.in │ │ └── tar.mk │ ├── ubi/ │ │ ├── Config.in │ │ ├── ubi.mk │ │ └── ubinize.cfg │ ├── ubifs/ │ │ ├── Config.in │ │ └── ubifs.mk │ └── yaffs2/ │ ├── Config.in │ └── yaffs2.mk ├── linux/ │ ├── 0001-timeconst.pl-Eliminate-Perl-warning.patch.conditional │ ├── Config.ext.in │ ├── Config.in │ ├── linux-ext-aufs.mk │ ├── linux-ext-ev3dev-linux-drivers.mk │ ├── linux-ext-fbtft.mk │ ├── linux-ext-rtai.mk │ ├── linux-ext-xenomai.mk │ ├── linux.hash │ └── linux.mk ├── package/ │ ├── 18xx-ti-utils/ │ │ ├── 0001-plt.h-fix-build-with-gcc-10.patch │ │ ├── 18xx-ti-utils.hash │ │ ├── 18xx-ti-utils.mk │ │ └── Config.in │ ├── 4th/ │ │ ├── 0001-avoid-regen-during-install.patch │ │ ├── 4th.hash │ │ ├── 4th.mk │ │ └── Config.in │ ├── Config.in │ ├── Config.in.host │ ├── Makefile.in │ ├── a10disp/ │ │ ├── Config.in │ │ ├── a10disp.hash │ │ └── a10disp.mk │ ├── abootimg/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── abootimg.hash │ │ └── abootimg.mk │ ├── acl/ │ │ ├── 0001-Build-with-old-GCC-versions.patch │ │ ├── Config.in │ │ ├── acl.hash │ │ └── acl.mk │ ├── acpica/ │ │ ├── 0001-build-do-not-use-Werror.patch │ │ ├── Config.in │ │ ├── acpica.hash │ │ └── acpica.mk │ ├── acpid/ │ │ ├── 0001-dont-use-isfdtype.patch │ │ ├── 0002-add-missing-defines.patch │ │ ├── Config.in │ │ ├── S02acpid │ │ ├── acpid.hash │ │ ├── acpid.mk │ │ └── acpid.service │ ├── acpitool/ │ │ ├── Config.in │ │ ├── acpitool.hash │ │ └── acpitool.mk │ ├── acsccid/ │ │ ├── Config.in │ │ ├── acsccid.hash │ │ └── acsccid.mk │ ├── adwaita-icon-theme/ │ │ ├── Config.in │ │ ├── adwaita-icon-theme.hash │ │ └── adwaita-icon-theme.mk │ ├── aer-inject/ │ │ ├── Config.in │ │ ├── aer-inject.hash │ │ └── aer-inject.mk │ ├── aespipe/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── aespipe.hash │ │ └── aespipe.mk │ ├── agentpp/ │ │ ├── 0001-Fix-build-when-SNMPv3-is-disabled.patch │ │ ├── Config.in │ │ ├── agentpp.hash │ │ └── agentpp.mk │ ├── aircrack-ng/ │ │ ├── 0001-Expand-packed-definition.patch │ │ ├── 0002-Fix-duplicated-symbols.patch │ │ ├── Config.in │ │ ├── aircrack-ng.hash │ │ └── aircrack-ng.mk │ ├── alsa-lib/ │ │ ├── 0001-Don-t-use-fork-on-noMMU-platforms.patch │ │ ├── 0002-fix-build-with-disable-ucm.patch │ │ ├── 0003-control-empty-fix-the-static-build.patch │ │ ├── Config.in │ │ ├── alsa-lib.hash │ │ └── alsa-lib.mk │ ├── alsa-plugins/ │ │ ├── Config.in │ │ ├── alsa-plugins.hash │ │ └── alsa-plugins.mk │ ├── alsa-utils/ │ │ ├── Config.in │ │ ├── alsa-utils.hash │ │ └── alsa-utils.mk │ ├── alsamixergui/ │ │ ├── 0001-misc-fixes.patch │ │ ├── 0002-configure-fix-detection-of-fltk-libs.patch │ │ ├── Config.in │ │ ├── alsamixergui.hash │ │ └── alsamixergui.mk │ ├── altera-stapl/ │ │ ├── Config.in │ │ ├── altera-stapl.hash │ │ └── altera-stapl.mk │ ├── alure/ │ │ ├── Config.in │ │ ├── alure.hash │ │ └── alure.mk │ ├── am335x-pru-package/ │ │ ├── 0001-install-does-not-build.patch │ │ ├── Config.in │ │ ├── am335x-pru-package.hash │ │ └── am335x-pru-package.mk │ ├── am33x-cm3/ │ │ ├── 0001-fix-makefile.patch │ │ ├── 0002-Makefile-unconditionally-disable-SSP.patch │ │ ├── 0003-Makefile-unconditionally-disable-PIE.patch │ │ ├── 0004-Makefile-add-fno-builtin.patch │ │ ├── Config.in │ │ ├── S93-am335x-pm-firmware-load │ │ ├── am33x-cm3.hash │ │ └── am33x-cm3.mk │ ├── android-tools/ │ │ ├── 0001-Fix-makefiles-for-out-of-tree-build.patch │ │ ├── 0002-Fix-adbd-for-non-Ubuntu-systems.patch │ │ ├── 0003-Fix-build-issue-with-uclibc.patch │ │ ├── 0004-Fix-build-issue-with-musl.patch │ │ ├── 0005-Use-pkgconf-to-get-libs-deps.patch │ │ ├── 0006-fix-big-endian-build.patch │ │ ├── 0007-include-cdefs-h-when-needed.patch │ │ ├── 0008-Include-sysmacros.h-to-compile-with-glibc-2.28.patch │ │ ├── 0009-Fix-makefiles-for-out-of-tree-ext4_utils-build.patch │ │ ├── 0010-adb-added-patch-for-openssl-1.1.0-compatibility.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── android-tools.hash │ │ └── android-tools.mk │ ├── angular-websocket/ │ │ ├── Config.in │ │ ├── angular-websocket.hash │ │ └── angular-websocket.mk │ ├── angularjs/ │ │ ├── Config.in │ │ ├── angularjs.hash │ │ └── angularjs.mk │ ├── aoetools/ │ │ ├── 0001-Change-shell-script-interpreter-from-bin-bash-to-bin.patch │ │ ├── Config.in │ │ ├── aoetools.hash │ │ └── aoetools.mk │ ├── apache/ │ │ ├── 0001-cross-compile.patch │ │ ├── 0002-nios2_is_not_os2.patch │ │ ├── 0003-server-Makefile.in-handle-separate-APR_INCLUDE_DIR-A.patch │ │ ├── Config.in │ │ ├── S50apache │ │ ├── apache.hash │ │ ├── apache.mk │ │ └── apache.service │ ├── apcupsd/ │ │ ├── Config.in │ │ ├── apcupsd.hash │ │ └── apcupsd.mk │ ├── apg/ │ │ ├── Config.in │ │ ├── apg.hash │ │ └── apg.mk │ ├── apitrace/ │ │ ├── 0001-thirdparty-libbacktrace-backtrace-h-include-config.h.patch │ │ ├── 0002-gltrace-Avoid-__libc_dlsym-and-__libc_dlopen_mode-on-GLIBC-2-34.patch │ │ ├── Config.in │ │ ├── apitrace.hash │ │ └── apitrace.mk │ ├── apparmor/ │ │ ├── Config.in │ │ ├── apparmor.hash │ │ └── apparmor.mk │ ├── apr/ │ │ ├── 0001-cross-compile.patch │ │ ├── 0002-sys-param-h.patch │ │ ├── 0003-Merge-r1887279-from-trunk.patch │ │ ├── Config.in │ │ ├── apr.hash │ │ └── apr.mk │ ├── apr-util/ │ │ ├── 0001-remove-checkapr.patch │ │ ├── Config.in │ │ ├── apr-util.hash │ │ └── apr-util.mk │ ├── argp-standalone/ │ │ ├── 0001-throw-in-funcdef.patch │ │ ├── 0002-isprint.patch │ │ ├── 0003-fix_build_with_c99_compilers.patch │ │ ├── Config.in │ │ ├── argp-standalone.hash │ │ └── argp-standalone.mk │ ├── argparse/ │ │ ├── Config.in │ │ ├── argparse.hash │ │ └── argparse.mk │ ├── argus/ │ │ ├── Config.in │ │ ├── argus.hash │ │ └── argus.mk │ ├── arm-gnu-a-toolchain/ │ │ ├── arm-gnu-a-toolchain.hash │ │ └── arm-gnu-a-toolchain.mk │ ├── armadillo/ │ │ ├── Config.in │ │ ├── armadillo.hash │ │ └── armadillo.mk │ ├── armbian-firmware/ │ │ ├── Config.in │ │ ├── armbian-firmware.hash │ │ └── armbian-firmware.mk │ ├── arp-scan/ │ │ ├── Config.in │ │ ├── arp-scan.hash │ │ └── arp-scan.mk │ ├── arptables/ │ │ ├── 0001-Fix-musl-build-issue.patch │ │ ├── Config.in │ │ ├── arptables.hash │ │ └── arptables.mk │ ├── ascii-invaders/ │ │ ├── Config.in │ │ ├── ascii-invaders.hash │ │ └── ascii-invaders.mk │ ├── asn1c/ │ │ ├── Config.in.host │ │ ├── asn1c.hash │ │ └── asn1c.mk │ ├── assimp/ │ │ ├── 0001-Fix-FBXConverter-use-proper-64-bit-constant.patch │ │ ├── 0002-closes-2733-update-of-zlip-to-fix-gcc-build-for-v9-2-0-32-bit.patch │ │ ├── 0003-closes-2954-upgrade-to-latest-greatest.patch │ │ ├── Config.in │ │ ├── assimp.hash │ │ └── assimp.mk │ ├── asterisk/ │ │ ├── 0001-sounds-do-not-download-and-check-sha1s.patch │ │ ├── 0002-configure-fix-detection-of-libcrypt.patch │ │ ├── 0003-build-ensure-target-directory-for-modules-exists.patch │ │ ├── 0004-install-samples-need-the-data-files.patch │ │ ├── 0005-configure-fix-detection-of-re-entrant-resolver-funct.patch │ │ ├── Config.in │ │ ├── asterisk.hash │ │ └── asterisk.mk │ ├── at/ │ │ ├── 0001-Makefile.in-replace-IROOT-by-DESTDIR.patch │ │ ├── 0002-Makefile.in-fix-make-install-for-non-root-don-t-stri.patch │ │ ├── 0003-getloadavg-fix-getloadavg.c-compilation-revert-to-3..patch │ │ ├── 0004-Makefile-fix-parallel-build-failure.patch │ │ ├── Config.in │ │ ├── S99at │ │ ├── at.hash │ │ └── at.mk │ ├── at-spi2-atk/ │ │ ├── 0001-meson-add-tests-option.patch │ │ ├── Config.in │ │ ├── at-spi2-atk.hash │ │ └── at-spi2-atk.mk │ ├── at-spi2-core/ │ │ ├── Config.in │ │ ├── at-spi2-core.hash │ │ └── at-spi2-core.mk │ ├── atest/ │ │ ├── 0001-seq.h-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── atest.hash │ │ └── atest.mk │ ├── atf/ │ │ ├── Config.in │ │ ├── atf.hash │ │ └── atf.mk │ ├── atftp/ │ │ ├── Config.in │ │ ├── atftp.hash │ │ └── atftp.mk │ ├── atk/ │ │ ├── Config.in │ │ ├── atk.hash │ │ └── atk.mk │ ├── atkmm/ │ │ ├── Config.in │ │ ├── atkmm.hash │ │ └── atkmm.mk │ ├── atop/ │ │ ├── 0001-ifprop.c-fix-build-with-kernel-4.6.patch │ │ ├── 0002-photosyst.c-fix-build-on-musl.patch │ │ ├── Config.in │ │ ├── atop.hash │ │ └── atop.mk │ ├── attr/ │ │ ├── 0001-build-with-older-GCCs.patch │ │ ├── Config.in │ │ ├── attr.hash │ │ └── attr.mk │ ├── aubio/ │ │ ├── Config.in │ │ ├── aubio.hash │ │ └── aubio.mk │ ├── audit/ │ │ ├── Config.in │ │ ├── S02auditd │ │ ├── audit.hash │ │ ├── audit.mk │ │ └── audit_tmpfiles.conf │ ├── aufs/ │ │ ├── Config.in │ │ └── aufs.mk │ ├── aufs-util/ │ │ ├── 0001-remove-user-settings.patch │ │ ├── 0002-no-check-ver.patch │ │ ├── 0003-no-strip-lib.patch │ │ ├── Config.in │ │ └── aufs-util.mk │ ├── augeas/ │ │ ├── Config.in │ │ ├── augeas.hash │ │ └── augeas.mk │ ├── aumix/ │ │ ├── 0001-fix-incorrect-makefile-am.patch │ │ ├── Config.in │ │ ├── aumix.hash │ │ └── aumix.mk │ ├── autoconf/ │ │ ├── 0001-dont-add-dirty-to-version.patch │ │ ├── autoconf.hash │ │ └── autoconf.mk │ ├── autoconf-archive/ │ │ ├── autoconf-archive.hash │ │ └── autoconf-archive.mk │ ├── autofs/ │ │ ├── 0001-autofs-5-1-7-use-default-stack-size-for-threads.patch │ │ ├── Config.in │ │ ├── autofs.hash │ │ └── autofs.mk │ ├── automake/ │ │ ├── 0001-noman.patch │ │ ├── automake.hash │ │ ├── automake.mk │ │ └── gtk-doc.m4 │ ├── autossh/ │ │ ├── Config.in │ │ ├── autossh.hash │ │ └── autossh.mk │ ├── avahi/ │ │ ├── 0001-Fix-NULL-pointer-crashes-from-175.patch │ │ ├── Config.in │ │ ├── S05avahi-setup.sh │ │ ├── S50avahi-daemon │ │ ├── avahi.hash │ │ ├── avahi.mk │ │ ├── avahi_sysusers.conf │ │ └── avahi_tmpfiles.conf │ ├── avrdude/ │ │ ├── Config.in │ │ ├── avrdude.hash │ │ └── avrdude.mk │ ├── avro-c/ │ │ ├── 0001-cmake-Build-failure-without-a-C-compiler-again.patch │ │ ├── Config.in │ │ ├── avro-c.hash │ │ └── avro-c.mk │ ├── axel/ │ │ ├── Config.in │ │ ├── axel.hash │ │ └── axel.mk │ ├── axfsutils/ │ │ ├── axfsutils.hash │ │ └── axfsutils.mk │ ├── azmq/ │ │ ├── 0001-Conditionally-disable-test-and-doc-builds.patch │ │ ├── Config.in │ │ ├── azmq.hash │ │ └── azmq.mk │ ├── azure-iot-sdk-c/ │ │ ├── 0001-hmac-c-fix-mismatching-function-prototype.patch │ │ ├── Config.in │ │ ├── azure-iot-sdk-c.hash │ │ └── azure-iot-sdk-c.mk │ ├── b43-firmware/ │ │ ├── Config.in │ │ ├── b43-firmware.hash │ │ └── b43-firmware.mk │ ├── b43-fwcutter/ │ │ ├── b43-fwcutter.hash │ │ └── b43-fwcutter.mk │ ├── babeld/ │ │ ├── Config.in │ │ ├── S50babeld │ │ ├── babeld.hash │ │ ├── babeld.mk │ │ └── babeld.service │ ├── babeltrace2/ │ │ ├── 0001-configure-simplify-warning-flags-detection.patch │ │ ├── 0002-tests-lib-test_trace_ir_ref.c-rename-user-structure.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── babeltrace2.hash │ │ └── babeltrace2.mk │ ├── balena-engine/ │ │ ├── Config.in │ │ ├── balena-engine.hash │ │ └── balena-engine.mk │ ├── bandwidthd/ │ │ ├── 0001-src-bandwidthd.h-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── bandwidthd.hash │ │ ├── bandwidthd.mk │ │ └── bandwidthd.service │ ├── bash/ │ │ ├── 0001-input.h-add-missing-include-on-stdio.h.patch │ │ ├── 0002-locale-fix-typo-local_shiftstates-vs.-locale_shiftst.patch │ │ ├── 0003-glob-fix-dequote_pathname-vs.-udequote_pathname.patch │ │ ├── Config.in │ │ ├── bash.hash │ │ └── bash.mk │ ├── bash-completion/ │ │ ├── Config.in │ │ ├── bash-completion.hash │ │ └── bash-completion.mk │ ├── batctl/ │ │ ├── Config.in │ │ ├── batctl.hash │ │ └── batctl.mk │ ├── batman-adv/ │ │ ├── Config.in │ │ ├── batman-adv.hash │ │ └── batman-adv.mk │ ├── bats-core/ │ │ ├── Config.in │ │ ├── bats-core.hash │ │ └── bats-core.mk │ ├── bayer2rgb-neon/ │ │ ├── Config.in │ │ ├── bayer2rgb-neon.hash │ │ └── bayer2rgb-neon.mk │ ├── bc/ │ │ ├── 0001-bc-use-MAKEINFO-variable-for-docs.patch │ │ ├── 0002-notice-read-and-write-errors-on-input-and-output.patch │ │ ├── 0003-dc-fix-exit-code-of-q-command.patch │ │ ├── 0004-no-gen-libmath.patch │ │ ├── Config.in │ │ ├── bc.hash │ │ └── bc.mk │ ├── bcache-tools/ │ │ ├── 0001-Don-t-inline-crc64-for-gcc-5-compatability.patch │ │ ├── Config.in │ │ ├── bcache-tools.hash │ │ └── bcache-tools.mk │ ├── bcg729/ │ │ ├── Config.in │ │ ├── bcg729.hash │ │ └── bcg729.mk │ ├── bcm2835/ │ │ ├── Config.in │ │ ├── bcm2835.hash │ │ └── bcm2835.mk │ ├── bctoolbox/ │ │ ├── 0001-Fix-Libs.private-flags-for-mbedtls.patch │ │ ├── Config.in │ │ ├── bctoolbox.hash │ │ └── bctoolbox.mk │ ├── bcusdk/ │ │ ├── 0001-fd_set-requires-inclusion-of-sys-select.h.patch │ │ ├── 0002-eibd-fix-endless-recursion-when-using-USB-backends.patch │ │ ├── Config.in │ │ ├── bcusdk.hash │ │ └── bcusdk.mk │ ├── bdwgc/ │ │ ├── 0001-Fix-undefined-reference-to-__data_start-linker-error.patch │ │ ├── Config.in │ │ ├── bdwgc.hash │ │ └── bdwgc.mk │ ├── bearssl/ │ │ ├── Config.in │ │ ├── bearssl.hash │ │ └── bearssl.mk │ ├── beecrypt/ │ │ ├── 0001-cppglue.cxx-cplusplus-only.patch │ │ ├── 0002-build-system.patch │ │ ├── 0003-don-t-check-for-cplusplus-compiler.patch │ │ ├── Config.in │ │ ├── beecrypt.hash │ │ └── beecrypt.mk │ ├── belle-sip/ │ │ ├── Config.in │ │ ├── belle-sip.hash │ │ └── belle-sip.mk │ ├── belr/ │ │ ├── Config.in │ │ ├── belr.hash │ │ └── belr.mk │ ├── benejson/ │ │ ├── 0001-c-std.patch │ │ ├── 0002-Use-print-as-a-function-for-Py3-compatibility.patch │ │ ├── Config.in │ │ ├── benejson.hash │ │ └── benejson.mk │ ├── berkeleydb/ │ │ ├── 0001-cwd-db_config.patch │ │ ├── 0002-atomic_compare_exchange.patch │ │ ├── Config.in │ │ ├── berkeleydb.hash │ │ └── berkeleydb.mk │ ├── bind/ │ │ ├── 0001-cross.patch │ │ ├── Config.in │ │ ├── S81named │ │ ├── bind.hash │ │ ├── bind.mk │ │ └── named.service │ ├── binutils/ │ │ ├── 2.32/ │ │ │ ├── 0001-sh-conf.patch │ │ │ ├── 0002-poison-system-directories.patch │ │ │ ├── 0003-bfd-xtensa-fix-shrink_dynamic_reloc_sections-for-exp.patch │ │ │ ├── 0004-gas-use-literals-const16-for-xtensa-loop-relaxation.patch │ │ │ ├── 0005-xtensa-gas-put-.literal_position-at-section-start.patch │ │ │ ├── 0006-or1k-Fix-incorrect-value-in-PLT-GOT-entries-causing-.patch │ │ │ ├── 0007-bfd-xtensa-fix-PR-ld-25630.patch │ │ │ ├── 0008-xtensa-fix-PR-ld-25861.patch │ │ │ ├── 0009-xtensa-fix-XTENSA_NDIFF-handling-for-PR-ld-25861.patch │ │ │ ├── 0010-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch │ │ │ ├── 0011-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch │ │ │ ├── 0012-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch │ │ │ ├── 0013-or1k-Support-large-plt_relocs-when-generating-plt-en.patch │ │ │ ├── 0014-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch │ │ │ └── 0015-or1k-fix-pc-relative-relocation-against-dynamic-on-P.patch │ │ ├── 2.35.2/ │ │ │ ├── 0001-sh-conf.patch │ │ │ ├── 0002-poison-system-directories.patch │ │ │ ├── 0003-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch │ │ │ ├── 0004-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch │ │ │ ├── 0005-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch │ │ │ ├── 0006-or1k-Support-large-plt_relocs-when-generating-plt-en.patch │ │ │ ├── 0007-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch │ │ │ └── 0008-or1k-fix-pc-relative-relocation-against-dynamic-on-P.patch │ │ ├── 2.36.1/ │ │ │ ├── 0001-sh-conf.patch │ │ │ ├── 0002-poison-system-directories.patch │ │ │ ├── 0003-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch │ │ │ ├── 0004-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch │ │ │ ├── 0005-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch │ │ │ ├── 0006-or1k-Support-large-plt_relocs-when-generating-plt-en.patch │ │ │ ├── 0007-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch │ │ │ └── 0008-or1k-fix-pc-relative-relocation-against-dynamic-on-P.patch │ │ ├── 2.37/ │ │ │ ├── 0001-sh-conf.patch │ │ │ ├── 0002-poison-system-directories.patch │ │ │ ├── 0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch │ │ │ └── 0004-or1k-fix-pc-relative-relocation-against-dynamic-on-P.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── arc-2020.09-release/ │ │ │ └── 0001-poison-system-directories.patch │ │ ├── binutils.hash │ │ └── binutils.mk │ ├── biosdevname/ │ │ ├── Config.in │ │ ├── biosdevname.hash │ │ └── biosdevname.mk │ ├── bird/ │ │ ├── Config.in │ │ ├── bird.hash │ │ └── bird.mk │ ├── bison/ │ │ ├── bison.hash │ │ └── bison.mk │ ├── bitcoin/ │ │ ├── 0001-src-randomenv.cpp-fix-build-on-uclibc.patch │ │ ├── Config.in │ │ ├── bitcoin.hash │ │ └── bitcoin.mk │ ├── bitstream/ │ │ ├── Config.in │ │ ├── bitstream.hash │ │ └── bitstream.mk │ ├── bitstream-vera/ │ │ ├── Config.in │ │ ├── bitstream-vera.hash │ │ └── bitstream-vera.mk │ ├── bitwise/ │ │ ├── Config.in │ │ ├── bitwise.hash │ │ └── bitwise.mk │ ├── blktrace/ │ │ ├── Config.in │ │ ├── blktrace.hash │ │ └── blktrace.mk │ ├── bluez-alsa/ │ │ ├── Config.in │ │ ├── bluez-alsa.hash │ │ └── bluez-alsa.mk │ ├── bluez-tools/ │ │ ├── Config.in │ │ ├── bluez-tools.hash │ │ └── bluez-tools.mk │ ├── bluez5_utils/ │ │ ├── 0001-tools-mesh-cfgtest-include-limits.h.patch │ │ ├── 0005-build-Fix-errors-with-glibc-2-25.patch │ │ ├── Config.in │ │ ├── S40bluetooth │ │ ├── bluez5_utils.hash │ │ └── bluez5_utils.mk │ ├── bluez5_utils-headers/ │ │ ├── Config.in │ │ └── bluez5_utils-headers.mk │ ├── bmap-tools/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── bmap-tools.hash │ │ └── bmap-tools.mk │ ├── bmon/ │ │ ├── Config.in │ │ ├── bmon.hash │ │ └── bmon.mk │ ├── boinc/ │ │ ├── Config.in │ │ ├── S99boinc-client │ │ ├── boinc.hash │ │ └── boinc.mk │ ├── bonnie/ │ │ ├── Config.in │ │ ├── bonnie.hash │ │ └── bonnie.mk │ ├── boost/ │ │ ├── 0001-added-missing-brackets.patch │ │ ├── 0002-math-allow-definition-of-boost_math_no_atomic_int-on-the-command-line.patch │ │ ├── 0003-math-make-no-atomics-a-soft-failure-in-bernoulli_details_hpp.patch │ │ ├── Config.in │ │ ├── boost.hash │ │ └── boost.mk │ ├── bootstrap/ │ │ ├── Config.in │ │ ├── bootstrap.hash │ │ └── bootstrap.mk │ ├── botan/ │ │ ├── 0001-Revert-workaround-a-miscompilation-issue-in-clang-12.patch │ │ ├── Config.in │ │ ├── botan.hash │ │ └── botan.mk │ ├── brcm-patchram-plus/ │ │ ├── Config.in │ │ ├── brcm-patchram-plus.hash │ │ └── brcm-patchram-plus.mk │ ├── brickd/ │ │ ├── Config.in │ │ ├── S70brickd │ │ ├── brickd.hash │ │ └── brickd.mk │ ├── bridge-utils/ │ │ ├── 0001-fix-build-on-musl.patch │ │ ├── Config.in │ │ ├── bridge-utils.hash │ │ └── bridge-utils.mk │ ├── brltty/ │ │ ├── 0001-Fix-linking-error-on-mips64el.patch │ │ ├── Config.in │ │ ├── S10brltty │ │ ├── brltty.hash │ │ ├── brltty.mk │ │ └── brltty.service │ ├── brotli/ │ │ ├── 0001-CMake-Allow-using-BUILD_SHARED_LIBS-to-choose-static.patch │ │ ├── 0002-Revert-Add-runtime-linker-path-to-pkg-config-files.patch │ │ ├── Config.in │ │ ├── brotli.hash │ │ └── brotli.mk │ ├── bsdiff/ │ │ ├── 0001-Add-missing-header-for-u_char.patch │ │ ├── Config.in │ │ ├── bsdiff.hash │ │ └── bsdiff.mk │ ├── btrfs-progs/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── btrfs-progs.hash │ │ └── btrfs-progs.mk │ ├── bubblewrap/ │ │ ├── Config.in │ │ ├── bubblewrap.hash │ │ └── bubblewrap.mk │ ├── bullet/ │ │ ├── 0001-Extras-VHACD-inc-vhacdMutex.h-fix-musl-build.patch │ │ ├── Config.in │ │ ├── bullet.hash │ │ └── bullet.mk │ ├── bustle/ │ │ ├── Config.in │ │ ├── bustle.hash │ │ └── bustle.mk │ ├── busybox/ │ │ ├── 0001-networking-libiproute-use-linux-if_packet.h-instead-.patch │ │ ├── 0002-Makefile.flags-strip-non-l-arguments-returned-by-pkg.patch │ │ ├── Config.in │ │ ├── S01syslogd │ │ ├── S02klogd │ │ ├── S10mdev │ │ ├── S15watchdog │ │ ├── S50telnet │ │ ├── busybox-minimal.config │ │ ├── busybox.config │ │ ├── busybox.hash │ │ ├── busybox.mk │ │ ├── inittab │ │ ├── mdev.conf │ │ ├── telnetd.service │ │ └── udhcpc.script │ ├── bwm-ng/ │ │ ├── Config.in │ │ ├── bwm-ng.hash │ │ └── bwm-ng.mk │ ├── bzip2/ │ │ ├── 0001-build-objects-twice.patch │ │ ├── 0002-improve-build-system.patch │ │ ├── Config.in │ │ ├── bzip2.hash │ │ └── bzip2.mk │ ├── c-ares/ │ │ ├── Config.in │ │ ├── c-ares.hash │ │ └── c-ares.mk │ ├── c-capnproto/ │ │ ├── Config.in │ │ ├── c-capnproto.hash │ │ └── c-capnproto.mk │ ├── c-icap/ │ │ ├── 0001-Required-fixes-to-compile-and-run-under-cygwin.patch │ │ ├── Config.in │ │ ├── S96cicap │ │ ├── c-icap.hash │ │ └── c-icap.mk │ ├── c-icap-modules/ │ │ ├── Config.in │ │ ├── c-icap-modules.hash │ │ └── c-icap-modules.mk │ ├── c-periphery/ │ │ ├── Config.in │ │ ├── c-periphery.hash │ │ └── c-periphery.mk │ ├── ca-certificates/ │ │ ├── 0001-mozilla-certdata2pem.py-make-cryptography-module-opt.patch │ │ ├── Config.in │ │ ├── ca-certificates.hash │ │ └── ca-certificates.mk │ ├── cache-calibrator/ │ │ ├── 0001-Fix-conflicting-round-function.patch │ │ ├── Config.in │ │ ├── cache-calibrator.hash │ │ └── cache-calibrator.mk │ ├── cage/ │ │ ├── Config.in │ │ ├── cage.hash │ │ └── cage.mk │ ├── cairo/ │ │ ├── 0001-fix-nofork-build.patch │ │ ├── 0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch │ │ ├── Config.in │ │ ├── cairo.hash │ │ └── cairo.mk │ ├── cairomm/ │ │ ├── Config.in │ │ ├── cairomm.hash │ │ └── cairomm.mk │ ├── can-utils/ │ │ ├── Config.in │ │ ├── can-utils.hash │ │ └── can-utils.mk │ ├── cannelloni/ │ │ ├── Config.in │ │ ├── cannelloni.hash │ │ └── cannelloni.mk │ ├── cantarell/ │ │ ├── Config.in │ │ ├── cantarell.hash │ │ └── cantarell.mk │ ├── capnproto/ │ │ ├── 0001-mutex-Fix-build-on-32-bit-architectures-using-64-bit-time_t.patch │ │ ├── Config.in │ │ ├── capnproto.hash │ │ └── capnproto.mk │ ├── caps/ │ │ ├── 0001-Fix-stdint-types-with-musl.patch │ │ ├── Config.in │ │ ├── caps.hash │ │ └── caps.mk │ ├── casync/ │ │ ├── 0001-castore-fix-build-without-lzma-or-xz.patch │ │ ├── 0002-build-don-t-install-udev-rules-without-udev-support.patch │ │ ├── Config.in │ │ ├── casync.hash │ │ └── casync.mk │ ├── cbootimage/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── cbootimage.hash │ │ └── cbootimage.mk │ ├── cc-tool/ │ │ ├── Config.in │ │ ├── cc-tool.hash │ │ └── cc-tool.mk │ ├── ccache/ │ │ ├── ccache.hash │ │ └── ccache.mk │ ├── ccid/ │ │ ├── Config.in │ │ ├── ccid.hash │ │ └── ccid.mk │ ├── ccrypt/ │ │ ├── Config.in │ │ ├── ccrypt.hash │ │ └── ccrypt.mk │ ├── cctz/ │ │ ├── Config.in │ │ ├── cctz.hash │ │ └── cctz.mk │ ├── cdrkit/ │ │ ├── 0001-no-rcmd.patch │ │ ├── 0002-define-__THROW-to-avoid-build-issue-with-musl.patch │ │ ├── 0003-Add-extern-to-char-outfile-declaration-to-fix-build-.patch │ │ ├── Config.in │ │ ├── cdrkit.hash │ │ └── cdrkit.mk │ ├── cegui/ │ │ ├── 0001-XMLParser.cpp-include-string.h.patch │ │ ├── Config.in │ │ ├── cegui.hash │ │ └── cegui.mk │ ├── cereal/ │ │ ├── 0001-Store-a-copy-of-each-serialized-shared_ptr-within-the-archive.patch │ │ ├── Config.in │ │ ├── cereal.hash │ │ └── cereal.mk │ ├── cgic/ │ │ ├── 0001-prepare_makefile.patch │ │ ├── 0002-file_enhancements.patch │ │ ├── 0003-restore-cgiFormFileGetTempfileName.patch │ │ ├── Config.in │ │ ├── cgic.hash │ │ └── cgic.mk │ ├── cgilua/ │ │ ├── Config.in │ │ ├── cgilua.hash │ │ └── cgilua.mk │ ├── cgroupfs-mount/ │ │ ├── Config.in │ │ ├── S30cgroupfs │ │ ├── cgroupfs-mount.hash │ │ └── cgroupfs-mount.mk │ ├── chartjs/ │ │ ├── Config.in │ │ ├── chartjs.hash │ │ └── chartjs.mk │ ├── check/ │ │ ├── Config.in │ │ ├── check.hash │ │ └── check.mk │ ├── checkpolicy/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── checkpolicy.hash │ │ └── checkpolicy.mk │ ├── checksec/ │ │ ├── Config.in.host │ │ ├── checksec.hash │ │ └── checksec.mk │ ├── chipmunk/ │ │ ├── 0001-Fix-build-failure-on-musl.patch │ │ ├── Config.in │ │ ├── chipmunk.hash │ │ └── chipmunk.mk │ ├── chirpstack-gateway-bridge/ │ │ ├── Config.in │ │ ├── chirpstack-gateway-bridge.hash │ │ └── chirpstack-gateway-bridge.mk │ ├── chocolate-doom/ │ │ ├── 0001-Remove-redundant-demoextend-definition.patch │ │ ├── Config.in │ │ ├── chocolate-doom.hash │ │ └── chocolate-doom.mk │ ├── chrony/ │ │ ├── 0001-sys_linux-fix-build-with-older-kernel-headers.patch │ │ ├── Config.in │ │ ├── S49chrony │ │ ├── chrony.hash │ │ ├── chrony.mk │ │ └── chrony.service │ ├── cifs-utils/ │ │ ├── Config.in │ │ ├── cifs-utils.hash │ │ └── cifs-utils.mk │ ├── circus/ │ │ ├── Config.in │ │ ├── circus.hash │ │ └── circus.mk │ ├── civetweb/ │ │ ├── Config.in │ │ ├── civetweb.hash │ │ └── civetweb.mk │ ├── cjson/ │ │ ├── Config.in │ │ ├── cjson.hash │ │ └── cjson.mk │ ├── clamav/ │ │ ├── 0001-clamdscan-proto.c-fix-build-error-due-to-missing-soc.patch │ │ ├── 0002-mbox-do-not-use-backtrace-if-using-uClibc-without-ba.patch │ │ ├── Config.in │ │ ├── clamav.hash │ │ └── clamav.mk │ ├── clang/ │ │ ├── Config.in │ │ ├── clang.hash │ │ └── clang.mk │ ├── clinfo/ │ │ ├── Config.in │ │ ├── clinfo.hash │ │ └── clinfo.mk │ ├── cloop/ │ │ ├── cloop.hash │ │ └── cloop.mk │ ├── cmake/ │ │ ├── 0001-rename-cmake-rootfile.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── cmake.hash │ │ └── cmake.mk │ ├── cmocka/ │ │ ├── 0001-Don-t-redefine-uintptr_t.patch │ │ ├── Config.in │ │ ├── cmocka.hash │ │ └── cmocka.mk │ ├── cog/ │ │ ├── Config.in │ │ ├── cog.hash │ │ └── cog.mk │ ├── collectd/ │ │ ├── 0001-src-netlink.c-remove-REG_NOERROR.patch │ │ ├── Config.in │ │ ├── S90collectd │ │ ├── collectd.hash │ │ ├── collectd.mk │ │ └── collectd.service │ ├── collectl/ │ │ ├── Config.in │ │ ├── collectl.hash │ │ └── collectl.mk │ ├── comix-cursors/ │ │ ├── Config.in │ │ ├── comix-cursors.hash │ │ └── comix-cursors.mk │ ├── connman/ │ │ ├── Config.in │ │ ├── S45connman │ │ ├── connman.hash │ │ └── connman.mk │ ├── connman-gtk/ │ │ ├── Config.in │ │ ├── connman-gtk.hash │ │ └── connman-gtk.mk │ ├── conntrack-tools/ │ │ ├── Config.in │ │ ├── conntrack-tools.hash │ │ └── conntrack-tools.mk │ ├── containerd/ │ │ ├── Config.in │ │ ├── containerd.hash │ │ └── containerd.mk │ ├── copas/ │ │ ├── 0001-Do-not-load-coxpcall-for-LuaJIT.patch │ │ ├── Config.in │ │ ├── copas.hash │ │ └── copas.mk │ ├── coremark/ │ │ ├── Config.in │ │ ├── coremark.hash │ │ └── coremark.mk │ ├── coremark-pro/ │ │ ├── Config.in │ │ ├── coremark-pro.hash │ │ ├── coremark-pro.mk │ │ └── coremark-pro.sh.in │ ├── coreutils/ │ │ ├── 0001-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch │ │ ├── Config.in │ │ ├── coreutils.hash │ │ └── coreutils.mk │ ├── corkscrew/ │ │ ├── Config.in │ │ ├── corkscrew.hash │ │ └── corkscrew.mk │ ├── coxpcall/ │ │ ├── Config.in │ │ ├── coxpcall.hash │ │ └── coxpcall.mk │ ├── cpio/ │ │ ├── 0001-Minor-fix.patch │ │ ├── 0002-Rewrite-dynamic-string-support.patch │ │ ├── 0003-Fix-previous-commit.patch │ │ ├── Config.in │ │ ├── cpio.hash │ │ └── cpio.mk │ ├── cppcms/ │ │ ├── Config.in │ │ ├── cppcms.hash │ │ └── cppcms.mk │ ├── cppdb/ │ │ ├── 0001-mysql-library-suffix.patch │ │ ├── Config.in │ │ ├── cppdb.hash │ │ └── cppdb.mk │ ├── cppunit/ │ │ ├── Config.in │ │ ├── cppunit.hash │ │ └── cppunit.mk │ ├── cppzmq/ │ │ ├── Config.in │ │ ├── cppzmq.hash │ │ └── cppzmq.mk │ ├── cpuburn-arm/ │ │ ├── Config.in │ │ ├── cpuburn-arm.hash │ │ └── cpuburn-arm.mk │ ├── cpuload/ │ │ ├── Config.in │ │ ├── cpuload.hash │ │ └── cpuload.mk │ ├── cracklib/ │ │ ├── 0001-Force-grep-to-treat-the-input-as-text-when-formattin.patch │ │ ├── Config.in │ │ ├── cracklib.hash │ │ └── cracklib.mk │ ├── cramfs/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── cramfs.hash │ │ └── cramfs.mk │ ├── crda/ │ │ ├── 0001-crda-support-python-3-in-utils-key2pub.py.patch │ │ ├── 0002-drop-ldconfig-call.patch │ │ ├── 0003-drop-werror.patch │ │ ├── Config.in │ │ ├── crda.hash │ │ └── crda.mk │ ├── crudini/ │ │ ├── Config.in │ │ ├── crudini.hash │ │ └── crudini.mk │ ├── cryptodev/ │ │ ├── Config.in │ │ └── cryptodev.mk │ ├── cryptodev-linux/ │ │ ├── cryptodev-linux.hash │ │ └── cryptodev-linux.mk │ ├── cryptopp/ │ │ ├── cryptopp.hash │ │ └── cryptopp.mk │ ├── cryptsetup/ │ │ ├── 0001-Remove-json_object-typedef.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── cryptsetup.hash │ │ └── cryptsetup.mk │ ├── ctorrent/ │ │ ├── 0001-fix-musl-build.patch │ │ ├── Config.in │ │ ├── ctorrent.hash │ │ └── ctorrent.mk │ ├── cukinia/ │ │ ├── Config.in │ │ ├── cukinia.conf │ │ ├── cukinia.hash │ │ └── cukinia.mk │ ├── cunit/ │ │ ├── Config.in │ │ ├── cunit.hash │ │ └── cunit.mk │ ├── cups/ │ │ ├── 0001-Remove-man-from-BUILDDIRS-in-configure.patch │ │ ├── 0002-Do-not-use-genstrings.patch │ │ ├── 0003-Sanitize-the-installation-process.patch │ │ ├── 0004-Remove-PIE-flags-from-the-build.patch │ │ ├── 70-usb-printers.rules │ │ ├── Config.in │ │ ├── S81cupsd │ │ ├── cups.hash │ │ └── cups.mk │ ├── cups-filters/ │ │ ├── Config.in │ │ ├── S82cups-browsed │ │ ├── cups-filters.hash │ │ └── cups-filters.mk │ ├── curlftpfs/ │ │ ├── 0001-fix-CURLOPT_INFILESIZE.patch │ │ ├── 0002-free_ftpfs_file-memleak-fix.patch │ │ ├── 0003-nocache-memleak-fix.patch │ │ ├── 0004-fix-musl-build-off-t.patch │ │ ├── Config.in │ │ ├── curlftpfs.hash │ │ └── curlftpfs.mk │ ├── curlpp/ │ │ ├── Config.in │ │ ├── curlpp.hash │ │ └── curlpp.mk │ ├── cutelyst/ │ │ ├── 0001-server-CMakeLists.txt-don-t-override-CMAKE_EXE_LINKE.patch │ │ ├── Config.in │ │ ├── cutelyst.hash │ │ └── cutelyst.mk │ ├── cvs/ │ │ ├── Config.in │ │ ├── cvs.hash │ │ └── cvs.mk │ ├── cwiid/ │ │ ├── 0001-wmdemo-fix-linking-by-adding-the-missing-lbluetooth-.patch │ │ ├── 0002-configure-make-wmgui-build-optional.patch │ │ ├── Config.in │ │ ├── cwiid.hash │ │ └── cwiid.mk │ ├── cxxtest/ │ │ ├── Config.in │ │ ├── cxxtest.hash │ │ └── cxxtest.mk │ ├── czmq/ │ │ ├── Config.in │ │ ├── czmq.hash │ │ └── czmq.mk │ ├── dacapo/ │ │ ├── Config.in │ │ ├── dacapo.hash │ │ └── dacapo.mk │ ├── dado/ │ │ ├── Config.in │ │ ├── dado.hash │ │ └── dado.mk │ ├── daemon/ │ │ ├── 0001-daemon-fix-build-with-musl-libc-again.patch │ │ ├── 0002-Fix-build-with-NDEBUG-defined.patch │ │ ├── Config.in │ │ ├── daemon.hash │ │ └── daemon.mk │ ├── dahdi-linux/ │ │ ├── 0001-drivers-dahdi-Kbuild-fix-HOTPLUG_FIRMWARE-definition.patch │ │ ├── 0002-fix-build-with-32-bits-kernel.patch │ │ ├── Config.in │ │ ├── dahdi-linux.hash │ │ └── dahdi-linux.mk │ ├── dahdi-tools/ │ │ ├── 0001-no-build-docs.patch │ │ ├── 0002-no-perl-manpages.patch │ │ ├── Config.in │ │ ├── dahdi-tools.hash │ │ └── dahdi-tools.mk │ ├── dante/ │ │ ├── 0001-fix-sparc-compile.patch │ │ ├── 0002-osdep-m4-Remove-getaddrinfo-too-low-checks.patch │ │ ├── Config.in │ │ ├── S50dante │ │ ├── dante.hash │ │ ├── dante.mk │ │ └── dante.service │ ├── daq/ │ │ ├── 0001-Fix-build-against-the-musl-C-library.patch │ │ ├── 0002-parallel-grammar.patch │ │ ├── Config.in │ │ ├── daq.hash │ │ └── daq.mk │ ├── daq3/ │ │ ├── Config.in │ │ ├── daq3.hash │ │ └── daq3.mk │ ├── darkhttpd/ │ │ ├── 0001-Declare-vars-outside-of-for-loop-for-std-c90.patch │ │ ├── Config.in │ │ ├── S50darkhttpd │ │ ├── darkhttpd.hash │ │ ├── darkhttpd.mk │ │ └── darkhttpd.service │ ├── dash/ │ │ ├── Config.in │ │ ├── dash.hash │ │ └── dash.mk │ ├── datatables/ │ │ ├── Config.in │ │ ├── datatables.hash │ │ └── datatables.mk │ ├── datatables-buttons/ │ │ ├── Config.in │ │ ├── datatables-buttons.hash │ │ └── datatables-buttons.mk │ ├── datatables-fixedcolumns/ │ │ ├── Config.in │ │ ├── datatables-fixedcolumns.hash │ │ └── datatables-fixedcolumns.mk │ ├── datatables-responsive/ │ │ ├── Config.in │ │ ├── datatables-responsive.hash │ │ └── datatables-responsive.mk │ ├── dav1d/ │ │ ├── Config.in │ │ ├── dav1d.hash │ │ └── dav1d.mk │ ├── davfs2/ │ │ ├── 0001-src-Makefile.am-do-not-hardcode-fstack-protector-str.patch │ │ ├── Config.in │ │ ├── davfs2.hash │ │ └── davfs2.mk │ ├── davici/ │ │ ├── Config.in │ │ ├── davici.hash │ │ └── davici.mk │ ├── dawgdic/ │ │ ├── Config.in │ │ ├── dawgdic.hash │ │ └── dawgdic.mk │ ├── dbus/ │ │ ├── Config.in │ │ ├── S30dbus │ │ ├── dbus.hash │ │ └── dbus.mk │ ├── dbus-cpp/ │ │ ├── 0001-gcc4.7.patch │ │ ├── 0002-cross-compile-tools.patch │ │ ├── 0003-src-pipe.c-fix-build-error-with-gcc-7.x.patch │ │ ├── Config.in │ │ ├── dbus-cpp.hash │ │ └── dbus-cpp.mk │ ├── dbus-glib/ │ │ ├── Config.in │ │ ├── dbus-glib.hash │ │ └── dbus-glib.mk │ ├── dbus-python/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── dbus-python.hash │ │ └── dbus-python.mk │ ├── dbus-triggerd/ │ │ ├── Config.in │ │ ├── dbus-triggerd.hash │ │ └── dbus-triggerd.mk │ ├── dc3dd/ │ │ ├── 0001-no_man.patch │ │ ├── 0002-fix-autoreconf.patch │ │ ├── 0003-fix-for-glibc-2.28.patch │ │ ├── Config.in │ │ ├── dc3dd.hash │ │ └── dc3dd.mk │ ├── dcron/ │ │ ├── 0001-main.c-add-newline-to-logfile-openning-error-message.patch │ │ ├── Config.in │ │ ├── S90dcron │ │ ├── dcron.hash │ │ ├── dcron.mk │ │ └── dcron.service │ ├── ddrescue/ │ │ ├── Config.in │ │ ├── ddrescue.hash │ │ └── ddrescue.mk │ ├── debianutils/ │ │ ├── Config.in │ │ ├── debianutils.hash │ │ └── debianutils.mk │ ├── dehydrated/ │ │ ├── Config.in │ │ ├── dehydrated.hash │ │ └── dehydrated.mk │ ├── dejavu/ │ │ ├── Config.in │ │ ├── dejavu.hash │ │ └── dejavu.mk │ ├── delve/ │ │ ├── Config.in │ │ ├── delve.hash │ │ └── delve.mk │ ├── desktop-file-utils/ │ │ ├── desktop-file-utils.hash │ │ └── desktop-file-utils.mk │ ├── dfu-util/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── dfu-util.hash │ │ └── dfu-util.mk │ ├── dhcp/ │ │ ├── 0001-WIP-Resolve-ISC-DHCP-does-not-build-with-gcc10.patch │ │ ├── Config.in │ │ ├── S80dhcp-relay │ │ ├── S80dhcp-server │ │ ├── dhclient-script │ │ ├── dhclient.conf │ │ ├── dhcp.hash │ │ ├── dhcp.mk │ │ ├── dhcpd.conf │ │ └── dhcpd.service │ ├── dhcpcd/ │ │ ├── Config.in │ │ ├── S41dhcpcd │ │ ├── dhcpcd.hash │ │ ├── dhcpcd.mk │ │ └── dhcpcd.service │ ├── dhcpdump/ │ │ ├── 0001-use-non-bsd-structures.patch │ │ ├── Config.in │ │ ├── dhcpdump.hash │ │ └── dhcpdump.mk │ ├── dhrystone/ │ │ ├── 0001-cmdline-nruns.patch │ │ ├── 0002-HZ.patch │ │ ├── 0003-exit.patch │ │ ├── 0004-headers.patch │ │ ├── 0005-prototypes.patch │ │ ├── Config.in │ │ ├── Makefile │ │ ├── dhrystone.hash │ │ └── dhrystone.mk │ ├── dialog/ │ │ ├── Config.in │ │ ├── dialog.hash │ │ └── dialog.mk │ ├── dieharder/ │ │ ├── 0001-Do-not-use-includedir-as-include-search-path-for-bui.patch │ │ ├── 0002-Fix-missing-type-intptr_t.patch │ │ ├── 0003-Add-_GNU_SOURCE-for-uint-and-M_PI-with-musl-libc.patch │ │ ├── 0004-Add-static-to-inline-functions.patch │ │ ├── Config.in │ │ ├── dieharder.hash │ │ └── dieharder.mk │ ├── diffutils/ │ │ ├── 0001-m4-stack-direction.m4-fix-build-on-microblazeel.patch │ │ ├── 0002-sigsegv-fix-build-on-or1k.patch │ │ ├── 0003-sys_random-port-better-to-uClibc-1-0-35.patch │ │ ├── Config.in │ │ ├── diffutils.hash │ │ └── diffutils.mk │ ├── dillo/ │ │ ├── 0001-usr-local-include.patch │ │ ├── 0002-Fix-openssl-detection.patch │ │ ├── 0003-Support-OpenSSL-1.1.0.patch │ │ ├── 0004-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── dillo.hash │ │ └── dillo.mk │ ├── ding-libs/ │ │ ├── Config.in │ │ ├── ding-libs.hash │ │ └── ding-libs.mk │ ├── directfb/ │ │ ├── 0001-fix-missing-davinci-voodoo-header.patch │ │ ├── 0002-imlib2-config.patch │ │ ├── 0003-setregion-lock.patch │ │ ├── 0004-use-gcc-link.patch │ │ ├── 0005-add-missing-idivine-header.patch │ │ ├── 0006-fix-client-gfx_state-initialisation.patch │ │ ├── Config.in │ │ ├── directfb.hash │ │ └── directfb.mk │ ├── directfb-examples/ │ │ ├── 0001-remove-bzero.patch │ │ ├── Config.in │ │ ├── directfb-examples.hash │ │ └── directfb-examples.mk │ ├── dmalloc/ │ │ ├── 0001-mips.patch │ │ ├── 0002-fix-parallel-build.patch │ │ ├── 0003-fix-shlibs.patch │ │ ├── 0004-fix-strdup.patch │ │ ├── 0005-fix-strndup.patch │ │ ├── Config.in │ │ ├── dmalloc.hash │ │ └── dmalloc.mk │ ├── dmidecode/ │ │ ├── Config.in │ │ ├── dmidecode.hash │ │ └── dmidecode.mk │ ├── dmraid/ │ │ ├── 0001-fix-compilation-under-musl.patch │ │ ├── Config.in │ │ ├── S20dmraid │ │ ├── dmraid.hash │ │ └── dmraid.mk │ ├── dnsmasq/ │ │ ├── Config.in │ │ ├── S80dnsmasq │ │ ├── dnsmasq.hash │ │ └── dnsmasq.mk │ ├── doc-asciidoc.mk │ ├── docker/ │ │ ├── Config.in │ │ ├── docker.hash │ │ └── docker.mk │ ├── docker-cli/ │ │ ├── Config.in │ │ ├── docker-cli.hash │ │ └── docker-cli.mk │ ├── docker-compose/ │ │ ├── Config.in │ │ ├── docker-compose.hash │ │ └── docker-compose.mk │ ├── docker-engine/ │ │ ├── Config.in │ │ ├── S60dockerd │ │ ├── docker-engine.hash │ │ └── docker-engine.mk │ ├── docker-proxy/ │ │ ├── Config.in │ │ ├── docker-proxy.hash │ │ └── docker-proxy.mk │ ├── domoticz/ │ │ ├── Config.in │ │ ├── S99domoticz │ │ ├── domoticz.hash │ │ ├── domoticz.mk │ │ └── domoticz.service │ ├── doom-wad/ │ │ ├── Config.in │ │ ├── doom-wad.hash │ │ └── doom-wad.mk │ ├── dos2unix/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── dos2unix.hash │ │ └── dos2unix.mk │ ├── dosfstools/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── dosfstools.hash │ │ └── dosfstools.mk │ ├── dovecot/ │ │ ├── Config.in │ │ ├── dovecot.hash │ │ └── dovecot.mk │ ├── dovecot-pigeonhole/ │ │ ├── Config.in │ │ ├── dovecot-pigeonhole.hash │ │ └── dovecot-pigeonhole.mk │ ├── doxygen/ │ │ ├── Config.in.host │ │ ├── doxygen.hash │ │ └── doxygen.mk │ ├── drbd-utils/ │ │ ├── Config.in │ │ ├── drbd-utils.hash │ │ └── drbd-utils.mk │ ├── dropbear/ │ │ ├── Config.in │ │ ├── S50dropbear │ │ ├── dropbear.hash │ │ ├── dropbear.mk │ │ ├── dropbear.service │ │ └── etc-pam.d-sshd │ ├── dropwatch/ │ │ ├── Config.in │ │ ├── dropwatch.hash │ │ └── dropwatch.mk │ ├── dstat/ │ │ ├── Config.in │ │ ├── dstat.hash │ │ └── dstat.mk │ ├── dt/ │ │ ├── 0001-adjust-os-symlink.patch │ │ ├── 0002-dt-default-source-define.patch │ │ ├── Config.in │ │ ├── dt.hash │ │ └── dt.mk │ ├── dt-utils/ │ │ ├── Config.in │ │ ├── dt-utils.hash │ │ └── dt-utils.mk │ ├── dtach/ │ │ ├── Config.in │ │ ├── dtach.hash │ │ └── dtach.mk │ ├── dtbocfg/ │ │ ├── Config.in │ │ ├── dtbocfg.hash │ │ └── dtbocfg.mk │ ├── dtc/ │ │ ├── 0001-Fix-include-guards-for-older-kernel-u-boot-sources.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── dtc.hash │ │ └── dtc.mk │ ├── dtv-scan-tables/ │ │ ├── Config.in │ │ ├── dtv-scan-tables.hash │ │ └── dtv-scan-tables.mk │ ├── duktape/ │ │ ├── Config.in │ │ ├── duktape.hash │ │ ├── duktape.mk │ │ └── duktape.pc.in │ ├── duma/ │ │ ├── 0001-fix-cross-compilation.patch │ │ ├── 0002-no-tests.patch │ │ ├── 0003-fix-C++14.patch │ │ ├── 0004-Fix-build-with-latest-glibc.patch │ │ ├── Config.in │ │ ├── duma.hash │ │ └── duma.mk │ ├── dump1090/ │ │ ├── 0001-dump1090.h-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── dump1090.hash │ │ └── dump1090.mk │ ├── dvb-apps/ │ │ ├── 0001-Fix-generate-keynames.patch │ │ ├── 0002-Fix-compiler-warning-flags.patch │ │ ├── 0003-handle-static-shared-only-build.patch │ │ ├── 0004-Makefile-remove-test.patch │ │ ├── 0005-utils-fix-build-with-kernel-headers-4.14.patch │ │ ├── 0006-fix-glibc-2.31.patch │ │ ├── Config.in │ │ ├── dvb-apps.hash │ │ └── dvb-apps.mk │ ├── dvblast/ │ │ ├── 0001-missing-lm.patch │ │ ├── 0002-fix-int-types.patch │ │ ├── Config.in │ │ ├── dvblast.hash │ │ └── dvblast.mk │ ├── dvbsnoop/ │ │ ├── 0001-musl-types-h.patch │ │ ├── Config.in │ │ ├── dvbsnoop.hash │ │ └── dvbsnoop.mk │ ├── dvdauthor/ │ │ ├── Config.in │ │ ├── dvdauthor.hash │ │ └── dvdauthor.mk │ ├── dvdrw-tools/ │ │ ├── 0001-limits.h.patch │ │ ├── 0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch │ │ ├── Config.in │ │ ├── dvdrw-tools.hash │ │ └── dvdrw-tools.mk │ ├── e2fsprogs/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── e2fsprogs.hash │ │ └── e2fsprogs.mk │ ├── e2tools/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── e2tools.hash │ │ └── e2tools.mk │ ├── earlyoom/ │ │ ├── Config.in │ │ ├── S02earlyoom │ │ ├── earlyoom.hash │ │ └── earlyoom.mk │ ├── easy-rsa/ │ │ ├── Config.in │ │ ├── easy-rsa.hash │ │ └── easy-rsa.mk │ ├── easydbus/ │ │ ├── Config.in │ │ ├── easydbus.hash │ │ └── easydbus.mk │ ├── easyframes/ │ │ ├── 0001-CMakesLists.txt-fix-static-build-with-pcap.patch │ │ ├── 0002-Fix-different-compiling-issues.patch │ │ ├── Config.in │ │ ├── easyframes.hash │ │ └── easyframes.mk │ ├── ebtables/ │ │ ├── 0001-replace-ebtables-save-perl-script-with-bash.patch │ │ ├── 0002-ebtables.h-restore-KERNEL_64_USERSPACE_32-checks.patch │ │ ├── 0003-configure.ac-add-option-enable-kernel-64-userland-32.patch │ │ ├── Config.in │ │ ├── ebtables.hash │ │ └── ebtables.mk │ ├── ecryptfs-utils/ │ │ ├── 0001-musl.patch │ │ ├── 0002-openssl110.patch │ │ ├── 0003-fix-parallel-build-issue.patch │ │ ├── Config.in │ │ ├── ecryptfs-utils.hash │ │ └── ecryptfs-utils.mk │ ├── ed/ │ │ ├── Config.in │ │ ├── ed.hash │ │ └── ed.mk │ ├── edid-decode/ │ │ ├── Config.in │ │ ├── edid-decode.hash │ │ └── edid-decode.mk │ ├── edk2-platforms/ │ │ ├── Config.in │ │ ├── edk2-platforms.hash │ │ └── edk2-platforms.mk │ ├── efibootmgr/ │ │ ├── 0001-Allow-build-with-uClibc.patch │ │ ├── 0002-remove-extra-decl.patch │ │ ├── Config.in │ │ ├── efibootmgr.hash │ │ └── efibootmgr.mk │ ├── efivar/ │ │ ├── 0001-Allow-build-with-uClibc.patch │ │ ├── 0002-dp.h-make-format_guid-handle-misaligned-guid-pointer.patch │ │ ├── 0003-Fix-all-the-places-Werror-address-of-packed-member-c.patch │ │ ├── 0004-Fix-another-error-of-Werror-address-of-packed-member.patch │ │ ├── 0005-ucs2.h-remove-unused-variable.patch │ │ ├── 0006-ucs2.h-fix-logic-that-checks-for-UCS-2-string-termin.patch │ │ ├── 0007-gcc.specs-drop-Werror.patch │ │ ├── Config.in │ │ ├── efivar.hash │ │ └── efivar.mk │ ├── efl/ │ │ ├── 0001-ecore_evas-engines-drm-meson.build-use-gl_deps-as-en.patch │ │ ├── 0002-ecore_evas-engines-drm-meson.build-fix-gl_drm-includ.patch │ │ ├── 0003-ecore_fb-fix-build-with-tslib.patch │ │ ├── Config.in │ │ ├── efl.hash │ │ └── efl.mk │ ├── eigen/ │ │ ├── Config.in │ │ ├── eigen.hash │ │ └── eigen.mk │ ├── ejabberd/ │ │ ├── 0001-Makefile.in-do-not-download-or-compile-dependencies.patch │ │ ├── 0002-fix-ejabberdctl.patch │ │ ├── Config.in │ │ ├── S50ejabberd │ │ ├── check-erlang-lib │ │ ├── ejabberd.hash │ │ └── ejabberd.mk │ ├── elf2flt/ │ │ ├── 0001-ld-elf2flt-behave-properly-when-called-with-a-name-d.patch │ │ ├── 0002-elf2flt.c-add-new-relocation-types-for-xtensa.patch │ │ ├── 0003-elf2flt-handle-binutils-2.34.patch │ │ ├── 0004-elf2flt-add-riscv-64-bits-support.patch │ │ ├── Config.in.host │ │ ├── elf2flt.hash │ │ └── elf2flt.mk │ ├── elftosb/ │ │ ├── 0001-fixes-includes.patch │ │ ├── 0002-force-cxx-compiler.patch │ │ ├── elftosb.hash │ │ └── elftosb.mk │ ├── elfutils/ │ │ ├── 0001-Add-a-enable-disable-progs-configure-option.patch │ │ ├── 0002-Really-make-Werror-conditional-to-BUILD_WERROR.patch │ │ ├── Config.in │ │ ├── elfutils.hash │ │ └── elfutils.mk │ ├── elixir/ │ │ ├── elixir.hash │ │ └── elixir.mk │ ├── ell/ │ │ ├── Config.in │ │ ├── ell.hash │ │ └── ell.mk │ ├── emlog/ │ │ ├── Config.in │ │ ├── emlog.hash │ │ └── emlog.mk │ ├── empty/ │ │ ├── 0001-respect-LDFLAGS.patch │ │ ├── Config.in │ │ ├── empty.hash │ │ └── empty.mk │ ├── enchant/ │ │ ├── Config.in │ │ ├── enchant.hash │ │ └── enchant.mk │ ├── enet/ │ │ ├── Config.in │ │ ├── enet.hash │ │ └── enet.mk │ ├── enlightenment/ │ │ ├── Config.in │ │ ├── enlightenment.hash │ │ └── enlightenment.mk │ ├── enscript/ │ │ ├── Config.in │ │ ├── enscript.hash │ │ └── enscript.mk │ ├── environment-setup/ │ │ ├── Config.in.host │ │ ├── environment-setup │ │ └── environment-setup.mk │ ├── erlang/ │ │ ├── 0001-erts-ethread-instruct-libatomic_ops-we-do-require-CA.patch │ │ ├── 0002-erts-emulator-reorder-inclued-headers-paths.patch │ │ ├── Config.in │ │ ├── erlang.hash │ │ └── erlang.mk │ ├── erlang-base64url/ │ │ ├── Config.in │ │ ├── erlang-base64url.hash │ │ └── erlang-base64url.mk │ ├── erlang-eimp/ │ │ ├── Config.in │ │ ├── erlang-eimp.hash │ │ └── erlang-eimp.mk │ ├── erlang-goldrush/ │ │ ├── Config.in │ │ ├── erlang-goldrush.hash │ │ └── erlang-goldrush.mk │ ├── erlang-idna/ │ │ ├── Config.in │ │ ├── erlang-idna.hash │ │ └── erlang-idna.mk │ ├── erlang-jiffy/ │ │ ├── Config.in │ │ ├── erlang-jiffy.hash │ │ └── erlang-jiffy.mk │ ├── erlang-jose/ │ │ ├── Config.in │ │ ├── erlang-jose.hash │ │ └── erlang-jose.mk │ ├── erlang-lager/ │ │ ├── Config.in │ │ ├── erlang-lager.hash │ │ └── erlang-lager.mk │ ├── erlang-p1-acme/ │ │ ├── 0001-rebar.config.script-remove-extra-dependency-to-base6.patch │ │ ├── Config.in │ │ ├── erlang-p1-acme.hash │ │ └── erlang-p1-acme.mk │ ├── erlang-p1-cache-tab/ │ │ ├── Config.in │ │ ├── erlang-p1-cache-tab.hash │ │ └── erlang-p1-cache-tab.mk │ ├── erlang-p1-mqtree/ │ │ ├── Config.in │ │ ├── erlang-p1-mqtree.hash │ │ └── erlang-p1-mqtree.mk │ ├── erlang-p1-oauth2/ │ │ ├── Config.in │ │ ├── erlang-p1-oauth2.hash │ │ └── erlang-p1-oauth2.mk │ ├── erlang-p1-pkix/ │ │ ├── Config.in │ │ ├── erlang-p1-pkix.hash │ │ └── erlang-p1-pkix.mk │ ├── erlang-p1-sip/ │ │ ├── 0001-correct-include.patch │ │ ├── Config.in │ │ ├── erlang-p1-sip.hash │ │ └── erlang-p1-sip.mk │ ├── erlang-p1-stringprep/ │ │ ├── Config.in │ │ ├── erlang-p1-stringprep.hash │ │ └── erlang-p1-stringprep.mk │ ├── erlang-p1-stun/ │ │ ├── Config.in │ │ ├── erlang-p1-stun.hash │ │ └── erlang-p1-stun.mk │ ├── erlang-p1-tls/ │ │ ├── Config.in │ │ ├── erlang-p1-tls.hash │ │ └── erlang-p1-tls.mk │ ├── erlang-p1-utils/ │ │ ├── Config.in │ │ ├── erlang-p1-utils.hash │ │ └── erlang-p1-utils.mk │ ├── erlang-p1-xml/ │ │ ├── Config.in │ │ ├── erlang-p1-xml.hash │ │ └── erlang-p1-xml.mk │ ├── erlang-p1-xmpp/ │ │ ├── 0001-fix-includes.patch │ │ ├── Config.in │ │ ├── erlang-p1-xmpp.hash │ │ └── erlang-p1-xmpp.mk │ ├── erlang-p1-yaml/ │ │ ├── Config.in │ │ ├── erlang-p1-yaml.hash │ │ └── erlang-p1-yaml.mk │ ├── erlang-p1-yconf/ │ │ ├── Config.in │ │ ├── erlang-p1-yconf.hash │ │ └── erlang-p1-yconf.mk │ ├── erlang-p1-zlib/ │ │ ├── Config.in │ │ ├── erlang-p1-zlib.hash │ │ └── erlang-p1-zlib.mk │ ├── erlang-rebar/ │ │ ├── erlang-rebar.hash │ │ └── erlang-rebar.mk │ ├── erofs-utils/ │ │ ├── 0001-erofs-utils-manpage-only-install-erofsfuse.1-with-th.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── erofs-utils.hash │ │ └── erofs-utils.mk │ ├── espeak/ │ │ ├── 0001-Fix-build-of-shared-library-on-architectures-needing.patch │ │ ├── 0002-tr_languages-cast-string_ordinal-init-values.patch │ │ ├── Config.in │ │ ├── espeak.hash │ │ └── espeak.mk │ ├── ethtool/ │ │ ├── Config.in │ │ ├── ethtool.hash │ │ └── ethtool.mk │ ├── eudev/ │ │ ├── 0001-Only-use-pragma-for-ignoring-diagnostics-if-.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── S10udev │ │ ├── eudev.hash │ │ └── eudev.mk │ ├── ev3dev-linux-drivers/ │ │ ├── Config.in │ │ ├── ev3dev-linux-drivers.mk │ │ └── lego-linux-drivers.hash │ ├── evemu/ │ │ ├── 0001-Include-limits.h-for-PATH_MAX.patch │ │ ├── 0002-evemu-Update-struct-input_event.patch │ │ ├── 0003-src-evemu.c-fix-build-with-kernels-4.16.patch │ │ ├── 0004-src-evemu.c-fix-build-with-kernels-4.16.patch │ │ ├── Config.in │ │ ├── evemu.hash │ │ └── evemu.mk │ ├── evtest/ │ │ ├── 0001-Add-missing-limits.h-include.patch │ │ ├── 0002-Fix-build-on-32bit-arches-with-64bit-time_t.patch │ │ ├── Config.in │ │ ├── evtest.hash │ │ └── evtest.mk │ ├── execline/ │ │ ├── Config.in │ │ ├── execline.hash │ │ └── execline.mk │ ├── exempi/ │ │ ├── Config.in │ │ ├── exempi.hash │ │ └── exempi.mk │ ├── exfat/ │ │ ├── Config.in │ │ ├── exfat.hash │ │ └── exfat.mk │ ├── exfat-utils/ │ │ ├── Config.in │ │ ├── exfat-utils.hash │ │ └── exfat-utils.mk │ ├── exfatprogs/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── exfatprogs.hash │ │ └── exfatprogs.mk │ ├── exim/ │ │ ├── 0001-Build-buildconfig-for-the-host.patch │ │ ├── 0002-Don-t-make-backup-copies-of-installed-files.patch │ │ ├── 0003-Skip-version-check-and-symlink-installation.patch │ │ ├── 0004-Fix-uClibc-build.patch │ │ ├── 0005-exim_lock-fix-lstat-related-build-errors.patch │ │ ├── 0006-sieve-fix-build-errors.patch │ │ ├── Config.in │ │ ├── S86exim │ │ ├── exim.hash │ │ ├── exim.mk │ │ └── exim.service │ ├── exiv2/ │ │ ├── 0001-add-BUILD_WITH_STACK_PROTECTOR-option.patch │ │ ├── Config.in │ │ ├── exiv2.hash │ │ └── exiv2.mk │ ├── expat/ │ │ ├── Config.in │ │ ├── expat.hash │ │ └── expat.mk │ ├── expect/ │ │ ├── 0001-enable-cross-compilation.patch │ │ ├── 0002-allow-tcl-build-directory.patch │ │ ├── Config.in │ │ ├── expect.hash │ │ └── expect.mk │ ├── explorercanvas/ │ │ ├── Config.in │ │ ├── explorercanvas.hash │ │ └── explorercanvas.mk │ ├── f2fs-tools/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── f2fs-tools.hash │ │ └── f2fs-tools.mk │ ├── faad2/ │ │ ├── Config.in │ │ ├── faad2.hash │ │ └── faad2.mk │ ├── faifa/ │ │ ├── 0001-sha2.c-explicitly-include-endian.h-for-BYTE_ORDER-ma.patch │ │ ├── 0002-hpav_cfg.c-do-not-include-linux-if_ether.h-for-musl-.patch │ │ ├── 0003-Makefile.in-fix-asbolute-symlink-of-libfaifa.so.patch │ │ ├── Config.in │ │ ├── faifa.hash │ │ └── faifa.mk │ ├── fail2ban/ │ │ ├── 0001-fixed-possible-RCE-vulnerability-unset-escape-variable.patch │ │ ├── Config.in │ │ ├── S60fail2ban │ │ ├── fail2ban.hash │ │ └── fail2ban.mk │ ├── fakedate/ │ │ ├── fakedate │ │ └── fakedate.mk │ ├── fakeroot/ │ │ ├── fakeroot.hash │ │ └── fakeroot.mk │ ├── faketime/ │ │ ├── Config.in.host │ │ ├── faketime.hash │ │ └── faketime.mk │ ├── fan-ctrl/ │ │ ├── Config.in │ │ ├── fan-ctrl.hash │ │ └── fan-ctrl.mk │ ├── fastd/ │ │ ├── Config.in │ │ ├── fastd.hash │ │ └── fastd.mk │ ├── fatcat/ │ │ ├── Config.in.host │ │ ├── fatcat.hash │ │ └── fatcat.mk │ ├── fb-test-app/ │ │ ├── Config.in │ │ ├── fb-test-app.hash │ │ └── fb-test-app.mk │ ├── fbdump/ │ │ ├── Config.in │ │ ├── fbdump.hash │ │ └── fbdump.mk │ ├── fbgrab/ │ │ ├── 0001-fix-static-build.patch │ │ ├── Config.in │ │ ├── fbgrab.hash │ │ └── fbgrab.mk │ ├── fbset/ │ │ ├── 0001-Fix-musl-compile.patch │ │ ├── Config.in │ │ ├── fbset.hash │ │ └── fbset.mk │ ├── fbterm/ │ │ ├── 0001-fbio.cpp-improxy.cpp-fbterm.cpp-fix-musl-compile.patch │ │ ├── 0002-mouse.cpp-fix-musl-compile.patch │ │ ├── 0003-C++11-compliance.patch │ │ ├── 0004-iconv.patch │ │ ├── Config.in │ │ ├── fbterm.hash │ │ └── fbterm.mk │ ├── fbtft/ │ │ ├── Config.in │ │ ├── fbtft.hash │ │ └── fbtft.mk │ ├── fbv/ │ │ ├── 0002-cross.patch │ │ ├── 0003-fix-24bpp-support-on-big-endian.patch │ │ ├── 0004-fix-bgr555.patch │ │ ├── 0005-giflib.patch │ │ ├── 0006-include.patch │ │ ├── 0007-libpng15.patch │ │ ├── Config.in │ │ ├── fbv.hash │ │ └── fbv.mk │ ├── fcgiwrap/ │ │ ├── 0001-use-LIBS-from-configure.patch │ │ ├── 0002-link-with-libsystemd-instead-of-libsystemd-daemon.patch │ │ ├── Config.in │ │ ├── fcgiwrap.hash │ │ └── fcgiwrap.mk │ ├── fconfig/ │ │ ├── Config.in │ │ ├── fconfig.hash │ │ └── fconfig.mk │ ├── fdk-aac/ │ │ ├── Config.in │ │ ├── fdk-aac.hash │ │ └── fdk-aac.mk │ ├── feh/ │ │ ├── Config.in │ │ ├── feh.hash │ │ └── feh.mk │ ├── fetchmail/ │ │ ├── Config.in │ │ ├── fetchmail.hash │ │ └── fetchmail.mk │ ├── ffmpeg/ │ │ ├── 0001-swscale-x86-yuv2rgb-Fix-build-without-SSSE3.patch │ │ ├── 0002-avcodec-vaapi_h264-skip-decode-if-pic-has-no-slices.patch │ │ ├── 0003-libavutil-Fix-mips-build.patch │ │ ├── 0004-configure-add-extralibs-to-extralibs_xxx.patch │ │ ├── Config.in │ │ ├── ffmpeg.hash │ │ └── ffmpeg.mk │ ├── fftw/ │ │ ├── Config.in │ │ ├── fftw-double/ │ │ │ ├── Config.in │ │ │ └── fftw-double.mk │ │ ├── fftw-long-double/ │ │ │ ├── Config.in │ │ │ └── fftw-long-double.mk │ │ ├── fftw-quad/ │ │ │ ├── Config.in │ │ │ └── fftw-quad.mk │ │ ├── fftw-single/ │ │ │ ├── Config.in │ │ │ └── fftw-single.mk │ │ ├── fftw.hash │ │ └── fftw.mk │ ├── ficl/ │ │ ├── 0001-fix-Makefile.patch │ │ ├── Config.in │ │ ├── ficl.hash │ │ └── ficl.mk │ ├── file/ │ │ ├── 0001-Add-libmagic.pc.patch │ │ ├── Config.in │ │ ├── file.hash │ │ └── file.mk │ ├── filemq/ │ │ ├── Config.in │ │ ├── filemq.hash │ │ └── filemq.mk │ ├── findutils/ │ │ ├── Config.in │ │ ├── findutils.hash │ │ └── findutils.mk │ ├── fio/ │ │ ├── Config.in │ │ ├── fio.hash │ │ └── fio.mk │ ├── firmware-utils/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── firmware-utils.hash │ │ └── firmware-utils.mk │ ├── flac/ │ │ ├── 0001-configure.ac-check-for-sys-auxv.h-before-defining-FL.patch │ │ ├── Config.in │ │ ├── flac.hash │ │ └── flac.mk │ ├── flann/ │ │ ├── 0001-src-cpp-fix-cmake-3.11-build.patch │ │ ├── Config.in │ │ ├── flann.hash │ │ └── flann.mk │ ├── flannel/ │ │ ├── Config.in │ │ ├── flannel.hash │ │ └── flannel.mk │ ├── flare-engine/ │ │ ├── Config.in │ │ ├── flare-engine.hash │ │ └── flare-engine.mk │ ├── flare-game/ │ │ ├── Config.in │ │ ├── flare-game.hash │ │ └── flare-game.mk │ ├── flashbench/ │ │ ├── Config.in │ │ ├── flashbench.hash │ │ └── flashbench.mk │ ├── flashrom/ │ │ ├── 0001-Makefile-Fix-building-on-AArch64-NixOS.patch │ │ ├── Config.in │ │ ├── flashrom.hash │ │ └── flashrom.mk │ ├── flatbuffers/ │ │ ├── 0001-include-flatbuffers-base.h-fix-build-on-musl.patch │ │ ├── Config.in │ │ ├── flatbuffers.hash │ │ └── flatbuffers.mk │ ├── flatcc/ │ │ ├── Config.in │ │ ├── flatcc.hash │ │ └── flatcc.mk │ ├── flex/ │ │ ├── 0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch │ │ ├── 0002-build-make-it-possible-to-disable-the-build-of-the-f.patch │ │ ├── 0003-build-make-it-possible-to-disable-the-build-of-the-d.patch │ │ ├── Config.in │ │ ├── flex.hash │ │ └── flex.mk │ ├── flickcurl/ │ │ ├── Config.in │ │ ├── flickcurl.hash │ │ └── flickcurl.mk │ ├── flite/ │ │ ├── 0001-fix-alsa-static.patch │ │ ├── Config.in │ │ ├── flite.hash │ │ └── flite.mk │ ├── flot/ │ │ ├── Config.in │ │ ├── flot.hash │ │ └── flot.mk │ ├── fltk/ │ │ ├── 0001-disable-tests.patch │ │ ├── Config.in │ │ ├── fltk.hash │ │ └── fltk.mk │ ├── fluid-soundfont/ │ │ ├── Config.in │ │ ├── fluid-soundfont.hash │ │ └── fluid-soundfont.mk │ ├── fluidsynth/ │ │ ├── Config.in │ │ ├── fluidsynth.hash │ │ └── fluidsynth.mk │ ├── fluxbox/ │ │ ├── 0001-fixes-bug-1138.patch │ │ ├── Config.in │ │ ├── fluxbox.hash │ │ ├── fluxbox.mk │ │ └── xsession │ ├── fmc/ │ │ ├── Config.in │ │ ├── fmc.hash │ │ └── fmc.mk │ ├── fmlib/ │ │ ├── Config.in │ │ ├── fmlib.hash │ │ └── fmlib.mk │ ├── fmt/ │ │ ├── Config.in │ │ ├── fmt.hash │ │ └── fmt.mk │ ├── fmtools/ │ │ ├── Config.in │ │ ├── fmtools.hash │ │ └── fmtools.mk │ ├── font-awesome/ │ │ ├── Config.in │ │ ├── font-awesome.hash │ │ └── font-awesome.mk │ ├── fontconfig/ │ │ ├── 0001-Fix-the-build-issue-with-enable-static.patch │ │ ├── 0002-add-pthread-as-a-dependency-of-a-static-lib.patch │ │ ├── Config.in │ │ ├── fontconfig.hash │ │ └── fontconfig.mk │ ├── fping/ │ │ ├── Config.in │ │ ├── fping.hash │ │ └── fping.mk │ ├── freeradius-client/ │ │ ├── 0001-fix-for-nettle.patch │ │ ├── Config.in │ │ ├── freeradius-client.hash │ │ └── freeradius-client.mk │ ├── freerdp/ │ │ ├── 0001-Fix-variable-declaration-in-loop.patch │ │ ├── 0002-Fixed-variable-declaration-in-loop.patch │ │ ├── 0003-winpr-include-winpr-file.h-fix-build-on-uclibc.patch │ │ ├── Config.in │ │ ├── freerdp.hash │ │ └── freerdp.mk │ ├── freescale-imx/ │ │ ├── Config.in │ │ ├── firmware-imx/ │ │ │ ├── Config.in │ │ │ ├── firmware-imx.hash │ │ │ └── firmware-imx.mk │ │ ├── freescale-imx.mk │ │ ├── gpu-amd-bin-mx51/ │ │ │ ├── Config.in │ │ │ ├── egl.pc │ │ │ ├── glesv2.pc │ │ │ ├── gpu-amd-bin-mx51.hash │ │ │ ├── gpu-amd-bin-mx51.mk │ │ │ └── vg.pc │ │ ├── imx-alsa-plugins/ │ │ │ ├── Config.in │ │ │ ├── imx-alsa-plugins.hash │ │ │ └── imx-alsa-plugins.mk │ │ ├── imx-codec/ │ │ │ ├── Config.in │ │ │ ├── imx-codec.hash │ │ │ └── imx-codec.mk │ │ ├── imx-gpu-g2d/ │ │ │ ├── Config.in │ │ │ ├── imx-gpu-g2d.hash │ │ │ └── imx-gpu-g2d.mk │ │ ├── imx-gpu-viv/ │ │ │ ├── Config.in │ │ │ ├── imx-gpu-viv.hash │ │ │ └── imx-gpu-viv.mk │ │ ├── imx-kobs/ │ │ │ ├── 0001-Fix-musl-build.patch │ │ │ ├── 0002-Fix-build-for-recent-toolchains.patch │ │ │ ├── Config.in │ │ │ ├── imx-kobs.hash │ │ │ └── imx-kobs.mk │ │ ├── imx-lib/ │ │ │ ├── Config.in │ │ │ ├── imx-lib.hash │ │ │ └── imx-lib.mk │ │ ├── imx-m4fwloader/ │ │ │ ├── Config.in │ │ │ ├── imx-m4fwloader.hash │ │ │ └── imx-m4fwloader.mk │ │ ├── imx-parser/ │ │ │ ├── Config.in │ │ │ ├── imx-parser.hash │ │ │ └── imx-parser.mk │ │ ├── imx-sc-firmware/ │ │ │ ├── Config.in │ │ │ ├── imx-sc-firmware.hash │ │ │ └── imx-sc-firmware.mk │ │ ├── imx-seco/ │ │ │ ├── Config.in │ │ │ ├── imx-seco.hash │ │ │ └── imx-seco.mk │ │ ├── imx-uuc/ │ │ │ ├── Config.in │ │ │ ├── S80imx-uuc │ │ │ ├── imx-uuc.hash │ │ │ ├── imx-uuc.mk │ │ │ └── imx-uuc.service │ │ ├── imx-vpu/ │ │ │ ├── Config.in │ │ │ ├── imx-vpu.hash │ │ │ └── imx-vpu.mk │ │ ├── imx-vpu-hantro/ │ │ │ ├── 0001-Fix-ion.h-header-inclusion-to-be-standard.patch │ │ │ ├── 0002-Fix-build-with-uclibc-toolchain.patch │ │ │ ├── Config.in │ │ │ ├── imx-vpu-hantro.hash │ │ │ └── imx-vpu-hantro.mk │ │ ├── imx-vpu-hantro-vc/ │ │ │ ├── Config.in │ │ │ ├── imx-vpu-hantro-vc.hash │ │ │ └── imx-vpu-hantro-vc.mk │ │ ├── imx-vpuwrap/ │ │ │ ├── Config.in │ │ │ ├── imx-vpuwrap.hash │ │ │ └── imx-vpuwrap.mk │ │ ├── kernel-module-imx-gpu-viv/ │ │ │ ├── Config.in │ │ │ ├── kernel-module-imx-gpu-viv.hash │ │ │ └── kernel-module-imx-gpu-viv.mk │ │ └── libz160/ │ │ ├── Config.in │ │ ├── libz160.hash │ │ └── libz160.mk │ ├── freeswitch/ │ │ ├── 0001-src-mod-applications-mod_cv-mod_cv.cpp-fix-build-wit.patch │ │ ├── Config.in │ │ ├── freeswitch.hash │ │ └── freeswitch.mk │ ├── freeswitch-mod-bcg729/ │ │ ├── Config.in │ │ ├── freeswitch-mod-bcg729.hash │ │ └── freeswitch-mod-bcg729.mk │ ├── freetype/ │ │ ├── Config.in │ │ ├── freetype.hash │ │ └── freetype.mk │ ├── frotz/ │ │ ├── Config.in │ │ ├── frotz.hash │ │ └── frotz.mk │ ├── frr/ │ │ ├── Config.in │ │ ├── S50frr │ │ ├── frr.hash │ │ └── frr.mk │ ├── fscryptctl/ │ │ ├── Config.in │ │ ├── fscryptctl.hash │ │ └── fscryptctl.mk │ ├── fstrcmp/ │ │ ├── 0001-disable-rpath.patch │ │ ├── Config.in │ │ ├── fstrcmp.hash │ │ └── fstrcmp.mk │ ├── fswebcam/ │ │ ├── Config.in │ │ ├── fswebcam.hash │ │ └── fswebcam.mk │ ├── ftop/ │ │ ├── 0001-overflow.patch │ │ ├── Config.in │ │ ├── ftop.hash │ │ └── ftop.mk │ ├── fuse-overlayfs/ │ │ ├── Config.in │ │ ├── fuse-overlayfs.hash │ │ └── fuse-overlayfs.mk │ ├── fwts/ │ │ ├── 0001-build-do-not-use-Werror.patch │ │ ├── Config.in │ │ ├── fwts.hash │ │ └── fwts.mk │ ├── fwup/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── fwup.hash │ │ └── fwup.mk │ ├── fxload/ │ │ ├── Config.in │ │ ├── fxload.hash │ │ └── fxload.mk │ ├── gamin/ │ │ ├── 0001-no-abstract-sockets.patch │ │ ├── 0002-no-const-return.patch │ │ ├── 0003-fix-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch │ │ ├── Config.in │ │ ├── gamin.hash │ │ └── gamin.mk │ ├── gauche/ │ │ ├── Config.in │ │ ├── gauche.hash │ │ └── gauche.mk │ ├── gawk/ │ │ ├── 0001-no-versioned.patch │ │ ├── Config.in │ │ ├── gawk.hash │ │ └── gawk.mk │ ├── gcc/ │ │ ├── 10.3.0/ │ │ │ ├── 0001-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch │ │ │ ├── 0002-or1k-Add-mcmodel-option-to-handle-large-GOTs.patch │ │ │ ├── 0003-or1k-Use-cmodel-large-when-building-crtstuff.patch │ │ │ └── 0004-Remove-cyclades-from-libsanitizer.patch │ │ ├── 11.2.0/ │ │ │ ├── 0001-or1k-Add-mcmodel-option-to-handle-large-GOTs.patch │ │ │ └── 0002-or1k-Use-cmodel-large-when-building-crtstuff.patch │ │ ├── 8.4.0/ │ │ │ ├── 0001-xtensa-fix-PR-target-91880.patch │ │ │ ├── 0002-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch │ │ │ └── 0003-libsanitizer-Remove-cyclades-from-libsanitizer.patch │ │ ├── 9.4.0/ │ │ │ ├── 0001-or1k-Fix-issue-with-set_got-clobbering-LR-r9.patch │ │ │ ├── 0002-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch │ │ │ ├── 0003-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch │ │ │ ├── 0004-or1k-Add-mcmodel-option-to-handle-large-GOTs.patch │ │ │ └── 0005-or1k-Use-cmodel-large-when-building-crtstuff.patch │ │ ├── Config.in.host │ │ ├── arc-2020.09-release/ │ │ │ ├── 0001-arc-Refurbish-adc-sbc-patterns.patch │ │ │ ├── 0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch │ │ │ └── 0100-uclibc-conf.patch │ │ ├── gcc-final/ │ │ │ └── gcc-final.mk │ │ ├── gcc-initial/ │ │ │ └── gcc-initial.mk │ │ ├── gcc.hash │ │ └── gcc.mk │ ├── gcnano-binaries/ │ │ ├── Config.in │ │ ├── gcnano-binaries.hash │ │ └── gcnano-binaries.mk │ ├── gconf/ │ │ ├── Config.in │ │ ├── gconf.hash │ │ └── gconf.mk │ ├── gcr/ │ │ ├── Config.in │ │ ├── gcr.hash │ │ └── gcr.mk │ ├── gd/ │ │ ├── Config.in │ │ ├── gd.hash │ │ └── gd.mk │ ├── gdb/ │ │ ├── 10.2/ │ │ │ ├── 0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch │ │ │ ├── 0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch │ │ │ ├── 0003-use-asm-sgidefs.h.patch │ │ │ ├── 0004-gdbserver-fix-build-for-m68k.patch │ │ │ ├── 0005-nat-fork-inferior-include-linux-ptrace.h.patch │ │ │ ├── 0006-Fix-getrandom-compile-for-uclibc-v1.0.35.patch │ │ │ ├── 0007-fix-musl-build-on-riscv.patch │ │ │ └── 0008-gdbserver-Makefile.in-fix-NLS-build.patch │ │ ├── 11.1/ │ │ │ ├── 0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch │ │ │ ├── 0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch │ │ │ ├── 0003-use-asm-sgidefs.h.patch │ │ │ ├── 0004-gdbserver-fix-build-for-m68k.patch │ │ │ ├── 0005-nat-fork-inferior-include-linux-ptrace.h.patch │ │ │ ├── 0006-sim-filter-out-SIGSTKSZ-PR-sim-28302.patch │ │ │ ├── 0007-Fix-getrandom-compile-for-uclibc-v1.0.35.patch │ │ │ ├── 0007-fix-musl-build-on-riscv.patch │ │ │ ├── 0008-Fix-build-on-rhES5.patch │ │ │ └── 0009-gdbserver-Makefile.in-fix-NLS-build.patch │ │ ├── 4ecb98fbc2f94dbe01b69384afbc515107de73df/ │ │ │ └── 0001-Fix-Python3.9-related-runtime-problems.patch │ │ ├── 9.2/ │ │ │ ├── 0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch │ │ │ ├── 0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch │ │ │ ├── 0003-use-asm-sgidefs.h.patch │ │ │ ├── 0004-gdbserver-fix-build-for-m68k.patch │ │ │ ├── 0005-nat-fork-inferior-include-linux-ptrace.h.patch │ │ │ ├── 0006-sim-ppc-Fix-linker-error-with-fno-common.patch │ │ │ ├── 0007-Fix-Python3.9-related-runtime-problems.patch │ │ │ └── 0007-gdb-configure.tgt-build-gdbserver-with-m68k-and-ucli.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── gdb-python-config │ │ ├── gdb.hash │ │ └── gdb.mk │ ├── gdbm/ │ │ ├── Config.in │ │ ├── gdbm.hash │ │ └── gdbm.mk │ ├── gdk-pixbuf/ │ │ ├── Config.in │ │ ├── gdk-pixbuf.hash │ │ └── gdk-pixbuf.mk │ ├── genext2fs/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── genext2fs.hash │ │ └── genext2fs.mk │ ├── gengetopt/ │ │ ├── 0001-configure.ac-add-disable-doc-option.patch │ │ ├── gengetopt.hash │ │ └── gengetopt.mk │ ├── genimage/ │ │ ├── Config.in.host │ │ ├── genimage.hash │ │ └── genimage.mk │ ├── genpart/ │ │ ├── 0001-fix-return-code.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── genpart.hash │ │ └── genpart.mk │ ├── genromfs/ │ │ ├── 0001-build-system.patch │ │ ├── Config.in │ │ ├── genromfs.hash │ │ └── genromfs.mk │ ├── gensio/ │ │ ├── Config.in │ │ ├── gensio.hash │ │ └── gensio.mk │ ├── geoip/ │ │ ├── Config.in │ │ ├── geoip.hash │ │ └── geoip.mk │ ├── gerbera/ │ │ ├── Config.in │ │ ├── S99gerbera │ │ ├── config.xml │ │ ├── gerbera.hash │ │ └── gerbera.mk │ ├── gesftpserver/ │ │ ├── 0001-Change-order-of-v3-attributes-according-to-draft-iet.patch │ │ ├── Config.in │ │ ├── gesftpserver.hash │ │ └── gesftpserver.mk │ ├── getent/ │ │ ├── Config.in │ │ ├── getent │ │ └── getent.mk │ ├── gettext/ │ │ ├── Config.in │ │ └── gettext.mk │ ├── gettext-gnu/ │ │ ├── 0001-error_print_progname.patch │ │ ├── 0002-restore-the-ability-to-buld-gettext-tools-seperately-part1.patch │ │ ├── Config.in │ │ ├── gettext-gnu.hash │ │ └── gettext-gnu.mk │ ├── gettext-tiny/ │ │ ├── Config.in │ │ ├── gettext-tiny.hash │ │ ├── gettext-tiny.mk │ │ └── gettext-wrapper │ ├── gflags/ │ │ ├── Config.in │ │ ├── gflags.hash │ │ └── gflags.mk │ ├── ghostscript/ │ │ ├── 0001-bug-702985-drop-use-of-FT_CALLBACK_DEF.patch │ │ ├── 0002-Bug-704342-Include-device-specifier-strings-in-acces.patch │ │ ├── Config.in │ │ ├── ghostscript.hash │ │ └── ghostscript.mk │ ├── ghostscript-fonts/ │ │ ├── Config.in │ │ ├── ghostscript-fonts.hash │ │ └── ghostscript-fonts.mk │ ├── giblib/ │ │ ├── 0001-fix-imlib2-detection.patch │ │ ├── Config.in │ │ ├── giblib.hash │ │ └── giblib.mk │ ├── giflib/ │ │ ├── 0001-Makefile-add-targets-to-manage-static-building.patch │ │ ├── Config.in │ │ ├── giflib.hash │ │ └── giflib.mk │ ├── git/ │ │ ├── 0001-Fix-build-without-threads.patch │ │ ├── Config.in │ │ ├── git.hash │ │ └── git.mk │ ├── git-crypt/ │ │ ├── Config.in │ │ ├── git-crypt.hash │ │ └── git-crypt.mk │ ├── gkrellm/ │ │ ├── Config.in │ │ ├── gkrellm.hash │ │ └── gkrellm.mk │ ├── gli/ │ │ ├── 0001-Optional-building-tests.patch │ │ ├── Config.in │ │ ├── gli.hash │ │ └── gli.mk │ ├── glib-networking/ │ │ ├── Config.in │ │ ├── glib-networking.hash │ │ └── glib-networking.mk │ ├── glibc/ │ │ ├── 2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/ │ │ │ └── glibc.hash │ │ ├── Config.in │ │ ├── glibc.hash │ │ ├── glibc.mk │ │ └── nsswitch.conf │ ├── glibmm/ │ │ ├── Config.in │ │ ├── glibmm.hash │ │ └── glibmm.mk │ ├── glm/ │ │ ├── Config.in │ │ ├── glm.hash │ │ └── glm.mk │ ├── glmark2/ │ │ ├── 0001-wscript-use-find_program-to-find-wayland-scanner.patch │ │ ├── Config.in │ │ ├── glmark2.hash │ │ └── glmark2.mk │ ├── glog/ │ │ ├── 0001-src-symbolize.cc-fix-build-without-dlfcn.h.patch │ │ ├── 0002-src-utilities-fix-build-without-pthread.patch │ │ ├── Config.in │ │ ├── glog.hash │ │ └── glog.mk │ ├── gloox/ │ │ ├── 0001-src-connectiontcpserver-cpp-fix-musl.patch │ │ ├── Config.in │ │ ├── gloox.hash │ │ └── gloox.mk │ ├── glorytun/ │ │ ├── Config.in │ │ ├── glorytun.hash │ │ └── glorytun.mk │ ├── glslsandbox-player/ │ │ ├── Config.in │ │ ├── glslsandbox-player.hash │ │ └── glslsandbox-player.mk │ ├── gmp/ │ │ ├── 0001-mpz-inp_raw.c-Avoid-bit-size-overflows.patch │ │ ├── Config.in │ │ ├── gmp.hash │ │ └── gmp.mk │ ├── gmpc/ │ │ ├── Config.in │ │ ├── gmpc.hash │ │ └── gmpc.mk │ ├── gmrender-resurrect/ │ │ ├── 0001-Drop-UpnpInit.patch │ │ ├── Config.in │ │ ├── gmrender-resurrect.hash │ │ └── gmrender-resurrect.mk │ ├── gnu-efi/ │ │ ├── 0001-Make.defaults-don-t-override-ARCH-when-cross-compili.patch │ │ ├── 0002-Revert-efilink-fix-build-with-gcc-4.8.patch │ │ ├── Config.in │ │ ├── gnu-efi.hash │ │ └── gnu-efi.mk │ ├── gnuchess/ │ │ ├── Config.in │ │ ├── gnuchess.hash │ │ └── gnuchess.mk │ ├── gnupg/ │ │ ├── 0001-build-Always-use-EXTERN_UNLESS_MAIN_MODULE-pattern.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── gnupg.hash │ │ └── gnupg.mk │ ├── gnupg2/ │ │ ├── Config.in │ │ ├── gnupg2.hash │ │ └── gnupg2.mk │ ├── gnuplot/ │ │ ├── 0001-configure-add-without-demo-option.patch │ │ ├── Config.in │ │ ├── gnuplot.hash │ │ └── gnuplot.mk │ ├── gnuradio/ │ │ ├── 0001-gr-digital-glfsr.h-drop-boost-cstdint.hpp-and-use-cs.patch │ │ ├── 0002-boost_qualify_placeholders_with_their_full_namespace.patch │ │ ├── 0003-gnuradio-runtime_pmt-dont-hardcode-INTERFACE_INCLUDE_DIRECTORIES.patch │ │ ├── 0004-gr-qtgui-dont-t-add-examples-c-subdirectory-when-gr-.patch │ │ ├── 0005-boost-remove-deprecated-math-common_factor.hpp.patch │ │ ├── Config.in │ │ ├── gnuradio.hash │ │ └── gnuradio.mk │ ├── gnutls/ │ │ ├── Config.in │ │ ├── gnutls.hash │ │ └── gnutls.mk │ ├── go/ │ │ ├── 0001-build.go-explicit-option-for-crosscompilation.patch │ │ ├── 0002-cmd-dist-set-buildvcs-false-when-building-go-bootstr.patch │ │ ├── Config.in.host │ │ ├── go.hash │ │ └── go.mk │ ├── go-bootstrap-stage1/ │ │ ├── Config.in.host │ │ ├── go-bootstrap-stage1.hash │ │ └── go-bootstrap-stage1.mk │ ├── go-bootstrap-stage2/ │ │ ├── Config.in.host │ │ ├── go-bootstrap-stage2.hash │ │ └── go-bootstrap-stage2.mk │ ├── gob2/ │ │ ├── 0001-dont-include-from-prefix.patch │ │ ├── gob2.hash │ │ └── gob2.mk │ ├── gobject-introspection/ │ │ ├── 0001-disable-tests.patch │ │ ├── 0002-Add-rpath-links-to-ccompiler.patch │ │ ├── 0003-ignore-error-return-codes-from-ldd-wrapper.patch │ │ ├── Config.in │ │ ├── g-ir-compiler.in │ │ ├── g-ir-scanner-lddwrapper.in │ │ ├── g-ir-scanner-qemuwrapper.in │ │ ├── g-ir-scanner.in │ │ ├── gobject-introspection.hash │ │ └── gobject-introspection.mk │ ├── google-breakpad/ │ │ ├── 0001-add-missing-asm-ptrace-include.patch │ │ ├── 0002-Replace-remaining-references-to-struct-ucontext-with.patch │ │ ├── 0003-src-client-linux-handler-exception_handler.cc-rename.patch │ │ ├── 0004-Fix-for-non-constant-SIGSTKSZ.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── gen-syms.sh │ │ ├── google-breakpad.hash │ │ └── google-breakpad.mk │ ├── google-material-design-icons/ │ │ ├── Config.in │ │ ├── google-material-design-icons.hash │ │ └── google-material-design-icons.mk │ ├── googlefontdirectory/ │ │ ├── Config.in │ │ ├── googlefontdirectory.hash │ │ └── googlefontdirectory.mk │ ├── gperf/ │ │ ├── Config.in │ │ ├── gperf.hash │ │ └── gperf.mk │ ├── gpm/ │ │ ├── 0001-Added-musl-support-to-libgpm-and-the-daemon.patch │ │ ├── 0002-Install-unversioned-solibrary.patch │ │ ├── 0003-src-Makefile.in-Really-install-unversioned-solibrary.patch │ │ ├── 0004-Use-sigemptyset-API-instead-of-__sigemptyset.patch │ │ ├── 0005-fix-building-w-newer-glibc.patch │ │ ├── 0006-src-headers-daemon.h-avoid-redefinition-of-last_sele.patch │ │ ├── Config.in │ │ ├── gpm.hash │ │ └── gpm.mk │ ├── gpsd/ │ │ ├── Config.in │ │ ├── S50gpsd │ │ ├── gpsd.hash │ │ └── gpsd.mk │ ├── gptfdisk/ │ │ ├── 0001-gptcurses-partially-revert-Tweaks-for-building-on-th.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── gptfdisk.hash │ │ └── gptfdisk.mk │ ├── gqrx/ │ │ ├── Config.in │ │ ├── gqrx.hash │ │ └── gqrx.mk │ ├── gr-osmosdr/ │ │ ├── Config.in │ │ ├── gr-osmosdr.hash │ │ └── gr-osmosdr.mk │ ├── granite/ │ │ ├── Config.in │ │ ├── granite.hash │ │ └── granite.mk │ ├── grantlee/ │ │ ├── Config.in │ │ ├── grantlee.hash │ │ └── grantlee.mk │ ├── graphicsmagick/ │ │ ├── Config.in │ │ ├── graphicsmagick.hash │ │ └── graphicsmagick.mk │ ├── graphite2/ │ │ ├── 0001-don-t-install-a-libtool-file-with-static-library.patch │ │ ├── Config.in │ │ ├── graphite2.hash │ │ └── graphite2.mk │ ├── grep/ │ │ ├── Config.in │ │ ├── grep.hash │ │ └── grep.mk │ ├── grpc/ │ │ ├── 0001-Properly-detect-the-availability-of-pthread_setname_.patch │ │ ├── 0002-wrap_memcpy.cc-add-GPR_DISABLE_WRAPPED_MEMCPY.patch │ │ ├── Config.in │ │ ├── grpc.hash │ │ └── grpc.mk │ ├── gsettings-desktop-schemas/ │ │ ├── Config.in │ │ ├── gsettings-desktop-schemas.hash │ │ └── gsettings-desktop-schemas.mk │ ├── gsl/ │ │ ├── Config.in │ │ ├── gsl.hash │ │ └── gsl.mk │ ├── gssdp/ │ │ ├── Config.in │ │ ├── gssdp.hash │ │ └── gssdp.mk │ ├── gstreamer1/ │ │ ├── Config.in │ │ ├── gst-omx/ │ │ │ ├── Config.in │ │ │ ├── gst-omx.hash │ │ │ └── gst-omx.mk │ │ ├── gst1-devtools/ │ │ │ ├── Config.in │ │ │ ├── gst1-devtools.hash │ │ │ └── gst1-devtools.mk │ │ ├── gst1-imx/ │ │ │ ├── Config.in │ │ │ ├── gst1-imx.hash │ │ │ └── gst1-imx.mk │ │ ├── gst1-interpipe/ │ │ │ ├── Config.in │ │ │ ├── gst1-interpipe.hash │ │ │ └── gst1-interpipe.mk │ │ ├── gst1-libav/ │ │ │ ├── Config.in │ │ │ ├── gst1-libav.hash │ │ │ └── gst1-libav.mk │ │ ├── gst1-plugins-bad/ │ │ │ ├── Config.in │ │ │ ├── gst1-plugins-bad.hash │ │ │ └── gst1-plugins-bad.mk │ │ ├── gst1-plugins-base/ │ │ │ ├── 0001-gst-libs-gst-video-gstvideoaggregator.c-fix-build-wi.patch │ │ │ ├── Config.in │ │ │ ├── gst1-plugins-base.hash │ │ │ └── gst1-plugins-base.mk │ │ ├── gst1-plugins-bayer2rgb-neon/ │ │ │ ├── Config.in │ │ │ ├── gst1-plugins-bayer2rgb-neon.hash │ │ │ └── gst1-plugins-bayer2rgb-neon.mk │ │ ├── gst1-plugins-good/ │ │ │ ├── Config.in │ │ │ ├── gst1-plugins-good.hash │ │ │ └── gst1-plugins-good.mk │ │ ├── gst1-plugins-ugly/ │ │ │ ├── Config.in │ │ │ ├── gst1-plugins-ugly.hash │ │ │ └── gst1-plugins-ugly.mk │ │ ├── gst1-python/ │ │ │ ├── Config.in │ │ │ ├── gst1-python.hash │ │ │ └── gst1-python.mk │ │ ├── gst1-rtsp-server/ │ │ │ ├── Config.in │ │ │ ├── gst1-rtsp-server.hash │ │ │ └── gst1-rtsp-server.mk │ │ ├── gst1-shark/ │ │ │ ├── Config.in │ │ │ ├── gst1-shark.hash │ │ │ └── gst1-shark.mk │ │ ├── gst1-vaapi/ │ │ │ ├── Config.in │ │ │ ├── gst1-vaapi.hash │ │ │ └── gst1-vaapi.mk │ │ ├── gstd/ │ │ │ ├── 0001-Fix-gstd_chmod.sh-DESTDIR-path.patch │ │ │ ├── 0002-Don-t-require-gstreamer-check-1.0-unless-tests-are-e.patch │ │ │ ├── 0003-Use-relative-symlink-for-gstd-gst-client-exe.patch │ │ │ ├── 0004-Don-t-require-gstd-check-user-xenv.sh-for-systemd-se.patch │ │ │ ├── 0005-Use-native-meson-python-module-for-python-install.patch │ │ │ ├── Config.in │ │ │ ├── gstd.hash │ │ │ └── gstd.mk │ │ ├── gstreamer1/ │ │ │ ├── Config.in │ │ │ ├── gstreamer1.hash │ │ │ └── gstreamer1.mk │ │ ├── gstreamer1-editing-services/ │ │ │ ├── Config.in │ │ │ ├── gstreamer1-editing-services.hash │ │ │ └── gstreamer1-editing-services.mk │ │ ├── gstreamer1-mm/ │ │ │ ├── 0001-Fix-build-against-glib-2-68.patch │ │ │ ├── Config.in │ │ │ ├── gstreamer1-mm.hash │ │ │ └── gstreamer1-mm.mk │ │ └── gstreamer1.mk │ ├── gtest/ │ │ ├── 0001-pkg-config-fix-gtest.pc-gmock.pc-library-names-for-t.patch │ │ ├── Config.in │ │ ├── gtest.hash │ │ └── gtest.mk │ ├── gtk2-engines/ │ │ ├── Config.in │ │ ├── gtk2-engines.hash │ │ └── gtk2-engines.mk │ ├── gtkmm3/ │ │ ├── Config.in │ │ ├── gtkmm3.hash │ │ └── gtkmm3.mk │ ├── gtkperf/ │ │ ├── Config.in │ │ ├── gtkperf.hash │ │ └── gtkperf.mk │ ├── gtksourceview/ │ │ ├── Config.in │ │ ├── gtksourceview.hash │ │ └── gtksourceview.mk │ ├── guile/ │ │ ├── 0001-fix_arm_endianness.patch │ │ ├── 0002-calculate-csqrt_manually.patch │ │ ├── 0003-Makefile.am-fix-build-without-makeinfo.patch │ │ ├── 0004-module-system-base-target.scm-support-riscv32.patch │ │ ├── Config.in │ │ ├── guile.hash │ │ └── guile.mk │ ├── gumbo-parser/ │ │ ├── 0001-configure.ac-fix-build-without-C.patch │ │ ├── Config.in │ │ ├── gumbo-parser.hash │ │ └── gumbo-parser.mk │ ├── gupnp/ │ │ ├── Config.in │ │ ├── gupnp.hash │ │ └── gupnp.mk │ ├── gupnp-av/ │ │ ├── Config.in │ │ ├── gupnp-av.hash │ │ └── gupnp-av.mk │ ├── gupnp-dlna/ │ │ ├── Config.in │ │ ├── gupnp-dlna.hash │ │ └── gupnp-dlna.mk │ ├── gupnp-tools/ │ │ ├── 0001-src-meson.build-upload-needs-gupnp-av.patch │ │ ├── Config.in │ │ ├── gupnp-tools.hash │ │ └── gupnp-tools.mk │ ├── gutenprint/ │ │ ├── 0001-use-pregen-xmli18n-header.patch │ │ ├── 0002-cups-support-replaces-static-with-static-libtool-lib.patch │ │ ├── Config.in │ │ ├── gutenprint.hash │ │ └── gutenprint.mk │ ├── gvfs/ │ │ ├── 0001-meson.build-fix-linking-with-libmetadata.patch │ │ ├── Config.in │ │ ├── gvfs.hash │ │ └── gvfs.mk │ ├── gzip/ │ │ ├── Config.in │ │ ├── gzip.hash │ │ └── gzip.mk │ ├── hackrf/ │ │ ├── 0001-Don-t-require-a-C-compiler.patch │ │ ├── Config.in │ │ ├── hackrf.hash │ │ └── hackrf.mk │ ├── hans/ │ │ ├── Config.in │ │ ├── hans.hash │ │ └── hans.mk │ ├── haproxy/ │ │ ├── Config.in │ │ ├── haproxy.hash │ │ └── haproxy.mk │ ├── harfbuzz/ │ │ ├── 0001-meson.build-check-for-pthread.h.patch │ │ ├── Config.in │ │ ├── harfbuzz.hash │ │ └── harfbuzz.mk │ ├── haserl/ │ │ ├── 0001-add-haserl_lualib.inc.patch │ │ ├── Config.in │ │ ├── haserl.hash │ │ └── haserl.mk │ ├── haveged/ │ │ ├── 0001-Check-for-sys-auxv.h-before-using-it.patch │ │ ├── Config.in │ │ ├── S21haveged │ │ ├── haveged.hash │ │ ├── haveged.mk │ │ └── haveged.service │ ├── hdparm/ │ │ ├── Config.in │ │ ├── hdparm.hash │ │ └── hdparm.mk │ ├── heimdal/ │ │ ├── heimdal.hash │ │ └── heimdal.mk │ ├── heirloom-mailx/ │ │ ├── 0001-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch │ │ ├── 0002-fix-libressl-support.patch │ │ ├── Config.in │ │ ├── heirloom-mailx.hash │ │ └── heirloom-mailx.mk │ ├── hiawatha/ │ │ ├── Config.in │ │ ├── hiawatha.hash │ │ └── hiawatha.mk │ ├── hicolor-icon-theme/ │ │ ├── Config.in │ │ ├── hicolor-icon-theme.hash │ │ └── hicolor-icon-theme.mk │ ├── hidapi/ │ │ ├── Config.in │ │ ├── hidapi.hash │ │ └── hidapi.mk │ ├── hiredis/ │ │ ├── 0001-CMakeLists.txt-do-not-force-SHARED.patch │ │ ├── 0002-CMakeLists.txt-allow-building-without-a-C-compiler.patch │ │ ├── 0003-Explicitly-set-c99-in-CMake.patch │ │ ├── Config.in │ │ ├── hiredis.hash │ │ └── hiredis.mk │ ├── hostapd/ │ │ ├── 0001-AP-Silently-ignore-management-frame-from-unexpected-.patch │ │ ├── 0002-ASN.1-Validate-DigestAlgorithmIdentifier-parameters.patch │ │ ├── 0003-Include-stdbool.h-to-allow-C99-bool-to-be-used.patch │ │ ├── 0004-ASN.1-Add-helper-functions-for-recognizing-tag-value.patch │ │ ├── Config.in │ │ ├── hostapd.hash │ │ └── hostapd.mk │ ├── hplip/ │ │ ├── 0001-build-use-pkg-config-to-discover-libusb.patch │ │ ├── 0002-configure.in-fix-AM_INIT_AUTOMAKE-call.patch │ │ ├── Config.in │ │ ├── hplip.hash │ │ └── hplip.mk │ ├── htop/ │ │ ├── Config.in │ │ ├── htop.hash │ │ └── htop.mk │ ├── htpdate/ │ │ ├── Config.in │ │ ├── S43htpdate │ │ ├── htpdate.hash │ │ ├── htpdate.mk │ │ └── htpdate.service │ ├── httping/ │ │ ├── 0001-fix-math-library-linking.patch │ │ ├── 0002-Makefile-allow-build-without-gettext.patch │ │ ├── Config.in │ │ ├── httping.hash │ │ └── httping.mk │ ├── hwdata/ │ │ ├── Config.in │ │ ├── hwdata.hash │ │ └── hwdata.mk │ ├── hwloc/ │ │ ├── Config.in │ │ ├── hwloc.hash │ │ └── hwloc.mk │ ├── i2c-tools/ │ │ ├── Config.in │ │ ├── i2c-tools.hash │ │ └── i2c-tools.mk │ ├── i2pd/ │ │ ├── Config.in │ │ ├── S99i2pd │ │ ├── i2pd.hash │ │ ├── i2pd.mk │ │ └── i2pd.service │ ├── i7z/ │ │ ├── 0001-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── i7z.hash │ │ └── i7z.mk │ ├── ibm-sw-tpm2/ │ │ ├── 0001-Use-LONG_BIT-to-define-RADIX_BITS.patch │ │ ├── Config.in │ │ ├── ibm-sw-tpm2.hash │ │ └── ibm-sw-tpm2.mk │ ├── ibrcommon/ │ │ ├── 0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch │ │ ├── 0002-ibrcommon-added-openssl-1.1-compatibility-264.patch │ │ ├── 0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch │ │ ├── Config.in │ │ ├── ibrcommon.hash │ │ └── ibrcommon.mk │ ├── ibrdtn/ │ │ ├── Config.in │ │ ├── ibrdtn.hash │ │ └── ibrdtn.mk │ ├── ibrdtn-tools/ │ │ ├── Config.in │ │ ├── ibrdtn-tools.hash │ │ └── ibrdtn-tools.mk │ ├── ibrdtnd/ │ │ ├── 0001-ibrdtnd-added-openssl-compatibility.patch │ │ ├── 0002-SecurityCertificateManager.cpp-include-cstring-267.patch │ │ ├── Config.in │ │ ├── ibrdtnd.hash │ │ └── ibrdtnd.mk │ ├── icu/ │ │ ├── 0001-dont-build-static-dynamic-twice.patch │ │ ├── 0002-workaround-toolchain-bugs.patch │ │ ├── 0003-link-icudata-as-data-only.patch │ │ ├── 0004-fix-static-linking-with-icu-uc.patch │ │ ├── 0005-ICU-21587-Fix-memory-bug-w-baseName.patch │ │ ├── Config.in │ │ ├── icu.hash │ │ └── icu.mk │ ├── ifenslave/ │ │ ├── Config.in │ │ ├── ifenslave.hash │ │ └── ifenslave.mk │ ├── ifmetric/ │ │ ├── 0001-Fix-issue-NETLINK-Packet-too-small-or-truncated-92-1.patch │ │ ├── Config.in │ │ ├── ifmetric.hash │ │ └── ifmetric.mk │ ├── ifplugd/ │ │ ├── 0001-cross.patch │ │ ├── 0002-fix-headers.patch │ │ ├── 0003-no-cxx.patch │ │ ├── 0004-musl-fix-types.patch │ │ ├── 0005-src-interface.h-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── ifplugd.hash │ │ └── ifplugd.mk │ ├── iftop/ │ │ ├── 0001-ui_common.h-fix-build-with-gcc-10.patch │ │ ├── 0002-Rename-pcap_filter-to-iftop_pcap_filter.patch │ │ ├── Config.in │ │ ├── iftop.hash │ │ └── iftop.mk │ ├── ifupdown/ │ │ ├── 0001-dont-use-dpkg-architecture.patch │ │ ├── Config.in │ │ ├── ifupdown.hash │ │ └── ifupdown.mk │ ├── ifupdown-scripts/ │ │ ├── Config.in │ │ ├── S40network │ │ ├── ifupdown-scripts.mk │ │ ├── network/ │ │ │ ├── if-down.d/ │ │ │ │ └── .empty │ │ │ ├── if-post-down.d/ │ │ │ │ └── .empty │ │ │ ├── if-pre-up.d/ │ │ │ │ └── wait_iface │ │ │ └── if-up.d/ │ │ │ └── .empty │ │ ├── network.service │ │ └── nfs_check │ ├── igd2-for-linux/ │ │ ├── Config.in │ │ ├── S99upnpd │ │ ├── igd2-for-linux.hash │ │ ├── igd2-for-linux.mk │ │ └── upnpd.service │ ├── igh-ethercat/ │ │ ├── Config.in │ │ ├── igh-ethercat.hash │ │ └── igh-ethercat.mk │ ├── igmpproxy/ │ │ ├── Config.in │ │ ├── igmpproxy.hash │ │ └── igmpproxy.mk │ ├── ijs/ │ │ ├── Config.in │ │ ├── ijs.hash │ │ └── ijs.mk │ ├── ima-evm-utils/ │ │ ├── Config.in │ │ ├── ima-evm-utils.hash │ │ └── ima-evm-utils.mk │ ├── imagemagick/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── imagemagick.hash │ │ └── imagemagick.mk │ ├── imlib2/ │ │ ├── Config.in │ │ ├── imlib2.hash │ │ └── imlib2.mk │ ├── imx-mkimage/ │ │ ├── 0001-Add-support-for-overriding-BL32-and-BL33-not-only-BL.patch │ │ ├── 0002-Add-LDFLAGS-to-link-step.patch │ │ ├── 0003-Add-unused-fake-version.patch │ │ ├── Config.in.host │ │ ├── imx-mkimage.hash │ │ └── imx-mkimage.mk │ ├── imx-usb-loader/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── imx-usb-loader.hash │ │ └── imx-usb-loader.mk │ ├── inadyn/ │ │ ├── Config.in │ │ ├── S70inadyn │ │ ├── inadyn.conf │ │ ├── inadyn.hash │ │ ├── inadyn.mk │ │ └── inadyn.service │ ├── inconsolata/ │ │ ├── Config.in │ │ ├── inconsolata.hash │ │ └── inconsolata.mk │ ├── inih/ │ │ ├── Config.in │ │ ├── inih.hash │ │ └── inih.mk │ ├── initscripts/ │ │ ├── Config.in │ │ ├── init.d/ │ │ │ ├── rcK │ │ │ └── rcS │ │ └── initscripts.mk │ ├── inotify-tools/ │ │ ├── Config.in │ │ ├── inotify-tools.hash │ │ └── inotify-tools.mk │ ├── input-event-daemon/ │ │ ├── Config.in │ │ ├── S99input-event-daemon │ │ ├── input-event-daemon.hash │ │ ├── input-event-daemon.mk │ │ └── input-event-daemon.service │ ├── intel-gmmlib/ │ │ ├── 0001-Drop-hardening-related-flags.patch │ │ ├── Config.in │ │ ├── intel-gmmlib.hash │ │ └── intel-gmmlib.mk │ ├── intel-mediadriver/ │ │ ├── 0001-Add-MEDIA-BUILD-HARDENING-option.patch │ │ ├── Config.in │ │ ├── intel-mediadriver.hash │ │ └── intel-mediadriver.mk │ ├── intel-mediasdk/ │ │ ├── 0001-Don-t-force-fstack-protector.patch │ │ ├── Config.in │ │ ├── intel-mediasdk.hash │ │ └── intel-mediasdk.mk │ ├── intel-microcode/ │ │ ├── Config.in │ │ ├── intel-microcode.hash │ │ └── intel-microcode.mk │ ├── intltool/ │ │ ├── 0001-perl-5.26-compatibility.patch │ │ ├── intltool.hash │ │ └── intltool.mk │ ├── iodine/ │ │ ├── 0001-disable-systemd-and-selinux.patch │ │ ├── Config.in │ │ ├── iodine.hash │ │ └── iodine.mk │ ├── iotop/ │ │ ├── 0001-Fix-build-error-with-Python-3.patch │ │ ├── Config.in │ │ ├── iotop.hash │ │ └── iotop.mk │ ├── iozone/ │ │ ├── 0001-Add-new-targets-for-iozone.patch │ │ ├── Config.in │ │ ├── iozone.hash │ │ └── iozone.mk │ ├── ipcalc/ │ │ ├── Config.in │ │ ├── ipcalc.hash │ │ └── ipcalc.mk │ ├── iperf/ │ │ ├── 0001-Fix-build-with-musl-libc.patch │ │ ├── Config.in │ │ ├── iperf.hash │ │ └── iperf.mk │ ├── iperf3/ │ │ ├── Config.in │ │ ├── iperf3.hash │ │ └── iperf3.mk │ ├── ipmitool/ │ │ ├── 0001-Fix-missing-stddef.h-include.patch │ │ ├── 0002-ID-461-OpenSSL-1.1-compatibility-error-storage-size-.patch │ │ ├── 0003-ID-461-Make-compiler-happier-about-changes-related-t.patch │ │ ├── 0004-ID-480-ipmitool-coredumps-in-EVP_CIPHER_CTX_init.patch │ │ ├── 0005-ID-480-Call-EVP_CIPHER_CTX_free-instead-of-EVP_CIPHE.patch │ │ ├── 0006-lanplus-Fix-compile-with-deprecated-APIs-disabled.patch │ │ ├── 0007-hpmfwupg-move-variable-definition-to-c-file.patch │ │ ├── 0008-fru-Fix-buffer-overflow-vulnerabilities.patch │ │ ├── 0009-fru-Fix-buffer-overflow-in-ipmi_spd_print_fru.patch │ │ ├── 0010-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch │ │ ├── 0011-channel-Fix-buffer-overflow.patch │ │ ├── 0012-lanp-Fix-buffer-overflows-in-get_lan_param_select.patch │ │ ├── 0013-fru-sdr-Fix-id_string-buffer-overflows.patch │ │ ├── Config.in │ │ ├── ipmitool.hash │ │ └── ipmitool.mk │ ├── ipmiutil/ │ │ ├── Config.in │ │ ├── ipmiutil.hash │ │ └── ipmiutil.mk │ ├── iproute2/ │ │ ├── Config.in │ │ ├── iproute2.hash │ │ └── iproute2.mk │ ├── iprutils/ │ │ ├── 0001-configure.ac-add-AC_USE_SYSTEM_EXTENSIONS.patch │ │ ├── Config.in │ │ ├── iprutils.hash │ │ └── iprutils.mk │ ├── ipset/ │ │ ├── Config.in │ │ ├── ipset.hash │ │ └── ipset.mk │ ├── iptables/ │ │ ├── Config.in │ │ ├── S35iptables │ │ ├── iptables.hash │ │ └── iptables.mk │ ├── iptraf-ng/ │ │ ├── Config.in │ │ ├── iptraf-ng.hash │ │ └── iptraf-ng.mk │ ├── iputils/ │ │ ├── 0001-meson-Make-tests-optional.patch │ │ ├── Config.in │ │ ├── iputils.hash │ │ └── iputils.mk │ ├── irda-utils/ │ │ ├── 0001-daemon.patch │ │ ├── 0002-nommu.patch │ │ ├── 0003-subdir.patch │ │ ├── 0004-musl.patch │ │ ├── Config.in │ │ ├── irda-utils.hash │ │ └── irda-utils.mk │ ├── irqbalance/ │ │ ├── 0001-configure.ac-use-pkg-config-to-find-numa.patch │ │ ├── Config.in │ │ ├── S13irqbalance │ │ ├── irqbalance.hash │ │ ├── irqbalance.mk │ │ └── irqbalance.service │ ├── irrlicht/ │ │ ├── 0001-override-CPPFLAGS-CXXFLAGS-and-CFLAGS-in-Makefile.patch │ │ ├── 0002-remove-sys-sysctl.h.patch │ │ ├── 0003-makefile-override-LDFLAGS-and-remove-obsolete-X11R6-.patch │ │ ├── Config.in │ │ ├── irrlicht.hash │ │ └── irrlicht.mk │ ├── irssi/ │ │ ├── Config.in │ │ ├── irssi.hash │ │ └── irssi.mk │ ├── isl/ │ │ ├── isl.hash │ │ └── isl.mk │ ├── iucode-tool/ │ │ ├── Config.in │ │ ├── S00iucode-tool │ │ ├── iucode-tool.hash │ │ ├── iucode-tool.mk │ │ └── iucode.service │ ├── iw/ │ │ ├── Config.in │ │ ├── iw.hash │ │ └── iw.mk │ ├── iwd/ │ │ ├── 0001-build-Add-reallocarray-to-missing-h.patch │ │ ├── 0002-netconfig-Remove-usage-of-in6_addr__in6_u.patch │ │ ├── Config.in │ │ ├── S40iwd │ │ ├── iwd.hash │ │ ├── iwd.mk │ │ └── main.conf │ ├── jack1/ │ │ ├── Config.in │ │ ├── jack1.hash │ │ └── jack1.mk │ ├── jack2/ │ │ ├── Config.in │ │ ├── jack2.hash │ │ └── jack2.mk │ ├── jailhouse/ │ │ ├── Config.in │ │ ├── jailhouse.hash │ │ └── jailhouse.mk │ ├── janet/ │ │ ├── Config.in │ │ ├── janet.hash │ │ └── janet.mk │ ├── jansson/ │ │ ├── Config.in │ │ ├── jansson.hash │ │ └── jansson.mk │ ├── janus-gateway/ │ │ ├── 0001-disable-ssp.patch │ │ ├── 0002-Add-test-for-Wunused-but-set-variable.patch │ │ ├── 0003-Fix-potential-Cross-site-Scripting-XSS-exploits-in-demos.patch │ │ ├── Config.in │ │ ├── janus-gateway.hash │ │ └── janus-gateway.mk │ ├── jasper/ │ │ ├── Config.in │ │ ├── jasper.hash │ │ └── jasper.mk │ ├── jbig2dec/ │ │ ├── Config.in │ │ ├── jbig2dec.hash │ │ └── jbig2dec.mk │ ├── jemalloc/ │ │ ├── Config.in │ │ ├── jemalloc.hash │ │ └── jemalloc.mk │ ├── jh71xx-tools/ │ │ ├── Config.in.host │ │ ├── jh71xx-tools.hash │ │ └── jh71xx-tools.mk │ ├── jhead/ │ │ ├── Config.in │ │ ├── jhead.hash │ │ └── jhead.mk │ ├── jimtcl/ │ │ ├── Config.in │ │ ├── jimtcl.hash │ │ └── jimtcl.mk │ ├── jitterentropy-library/ │ │ ├── 0001-Makefile-cleanup-install.patch │ │ ├── 0002-Makefile-add-additional-install-targets.patch │ │ ├── 0003-Makefile-allow-the-user-to-disable-stack-protector.patch │ │ ├── Config.in │ │ ├── jitterentropy-library.hash │ │ └── jitterentropy-library.mk │ ├── jo/ │ │ ├── Config.in │ │ ├── jo.hash │ │ └── jo.mk │ ├── joe/ │ │ ├── Config.in │ │ ├── joe.hash │ │ └── joe.mk │ ├── jose/ │ │ ├── 0001-lib-hsh.c-rename-hsh-local-variable.patch │ │ ├── 0002-configure-fix-build-with-old-compilers.patch │ │ ├── Config.in │ │ ├── jose.hash │ │ └── jose.mk │ ├── jpeg/ │ │ ├── Config.in │ │ └── jpeg.mk │ ├── jpeg-turbo/ │ │ ├── Config.in.options │ │ ├── jpeg-turbo.hash │ │ └── jpeg-turbo.mk │ ├── jq/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── jq.hash │ │ └── jq.mk │ ├── jquery/ │ │ ├── Config.in │ │ ├── jquery.hash │ │ └── jquery.mk │ ├── jquery-datetimepicker/ │ │ ├── Config.in │ │ ├── jquery-datetimepicker.hash │ │ └── jquery-datetimepicker.mk │ ├── jquery-keyboard/ │ │ ├── Config.in │ │ ├── jquery-keyboard.hash │ │ └── jquery-keyboard.mk │ ├── jquery-mobile/ │ │ ├── Config.in │ │ ├── jquery-mobile.hash │ │ └── jquery-mobile.mk │ ├── jquery-sidebar/ │ │ ├── Config.in │ │ ├── jquery-sidebar.hash │ │ └── jquery-sidebar.mk │ ├── jquery-sparkline/ │ │ ├── Config.in │ │ ├── jquery-sparkline.hash │ │ └── jquery-sparkline.mk │ ├── jquery-ui/ │ │ ├── Config.in │ │ ├── jquery-ui.hash │ │ └── jquery-ui.mk │ ├── jquery-ui-themes/ │ │ ├── Config.in │ │ ├── jquery-ui-themes.hash │ │ └── jquery-ui-themes.mk │ ├── jquery-validation/ │ │ ├── Config.in │ │ ├── jquery-validation.hash │ │ └── jquery-validation.mk │ ├── jsmin/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── jsmin.hash │ │ └── jsmin.mk │ ├── jsmn/ │ │ ├── Config.in │ │ ├── jsmn.hash │ │ └── jsmn.mk │ ├── json-c/ │ │ ├── Config.in │ │ ├── json-c.hash │ │ └── json-c.mk │ ├── json-for-modern-cpp/ │ │ ├── Config.in │ │ ├── json-for-modern-cpp.hash │ │ └── json-for-modern-cpp.mk │ ├── json-glib/ │ │ ├── Config.in │ │ ├── json-glib.hash │ │ └── json-glib.mk │ ├── json-javascript/ │ │ ├── Config.in │ │ ├── json-javascript.hash │ │ └── json-javascript.mk │ ├── jsoncpp/ │ │ ├── Config.in │ │ ├── jsoncpp.hash │ │ └── jsoncpp.mk │ ├── jszip/ │ │ ├── 0001-fix-Use-a-null-prototype-object-for-this-files.patch │ │ ├── Config.in │ │ ├── jszip.hash │ │ └── jszip.mk │ ├── kbd/ │ │ ├── Config.in │ │ ├── kbd.hash │ │ └── kbd.mk │ ├── keepalived/ │ │ ├── 0001-core-Fix-compiling-on-RHEL-9.patch │ │ ├── Config.in │ │ ├── keepalived.hash │ │ └── keepalived.mk │ ├── kexec/ │ │ ├── 0001-kexec-tools-Remove-duplicate-definition-of-ramdisk.patch │ │ ├── Config.in │ │ ├── kexec.hash │ │ └── kexec.mk │ ├── kexec-lite/ │ │ ├── 0001-clean-restart.patch │ │ ├── Config.in │ │ ├── kexec-lite.hash │ │ └── kexec-lite.mk │ ├── keyutils/ │ │ ├── 0001-fix-install-rule.patch │ │ ├── 0002-cifs.patch │ │ ├── Config.in │ │ ├── keyutils.hash │ │ └── keyutils.mk │ ├── kf5/ │ │ ├── Config.in │ │ ├── kf5-extra-cmake-modules/ │ │ │ ├── Config.in │ │ │ ├── kf5-extra-cmake-modules.hash │ │ │ └── kf5-extra-cmake-modules.mk │ │ ├── kf5-kcoreaddons/ │ │ │ ├── Config.in │ │ │ ├── kf5-kcoreaddons.hash │ │ │ └── kf5-kcoreaddons.mk │ │ ├── kf5-modemmanager-qt/ │ │ │ ├── Config.in │ │ │ ├── kf5-modemmanager-qt.hash │ │ │ └── kf5-modemmanager-qt.mk │ │ ├── kf5-networkmanager-qt/ │ │ │ ├── Config.in │ │ │ ├── kf5-networkmanager-qt.hash │ │ │ └── kf5-networkmanager-qt.mk │ │ └── kf5.mk │ ├── kismet/ │ │ ├── Config.in │ │ ├── kismet.hash │ │ └── kismet.mk │ ├── kmod/ │ │ ├── 0001-fix-O_CLOEXEC.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── kmod.hash │ │ └── kmod.mk │ ├── kmscube/ │ │ ├── Config.in │ │ ├── kmscube.hash │ │ └── kmscube.mk │ ├── kmsxx/ │ │ ├── Config.in │ │ ├── kmsxx.hash │ │ └── kmsxx.mk │ ├── knock/ │ │ ├── Config.in │ │ ├── knock.hash │ │ └── knock.mk │ ├── kodi/ │ │ ├── 0001-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch │ │ ├── Config.in │ │ ├── S50kodi │ │ ├── br-kodi │ │ ├── kodi.hash │ │ ├── kodi.mk │ │ └── kodi.service │ ├── kodi-audiodecoder-modplug/ │ │ ├── Config.in │ │ ├── kodi-audiodecoder-modplug.hash │ │ └── kodi-audiodecoder-modplug.mk │ ├── kodi-audiodecoder-nosefart/ │ │ ├── Config.in │ │ ├── kodi-audiodecoder-nosefart.hash │ │ └── kodi-audiodecoder-nosefart.mk │ ├── kodi-audiodecoder-sidplay/ │ │ ├── Config.in │ │ ├── kodi-audiodecoder-sidplay.hash │ │ └── kodi-audiodecoder-sidplay.mk │ ├── kodi-audiodecoder-snesapu/ │ │ ├── Config.in │ │ ├── kodi-audiodecoder-snesapu.hash │ │ └── kodi-audiodecoder-snesapu.mk │ ├── kodi-audiodecoder-stsound/ │ │ ├── Config.in │ │ ├── kodi-audiodecoder-stsound.hash │ │ └── kodi-audiodecoder-stsound.mk │ ├── kodi-audiodecoder-timidity/ │ │ ├── Config.in │ │ ├── kodi-audiodecoder-timidity.hash │ │ └── kodi-audiodecoder-timidity.mk │ ├── kodi-audiodecoder-vgmstream/ │ │ ├── Config.in │ │ ├── kodi-audiodecoder-vgmstream.hash │ │ └── kodi-audiodecoder-vgmstream.mk │ ├── kodi-audioencoder-flac/ │ │ ├── Config.in │ │ ├── kodi-audioencoder-flac.hash │ │ └── kodi-audioencoder-flac.mk │ ├── kodi-audioencoder-lame/ │ │ ├── Config.in │ │ ├── kodi-audioencoder-lame.hash │ │ └── kodi-audioencoder-lame.mk │ ├── kodi-audioencoder-vorbis/ │ │ ├── Config.in │ │ ├── kodi-audioencoder-vorbis.hash │ │ └── kodi-audioencoder-vorbis.mk │ ├── kodi-audioencoder-wav/ │ │ ├── Config.in │ │ ├── kodi-audioencoder-wav.hash │ │ └── kodi-audioencoder-wav.mk │ ├── kodi-inputstream-adaptive/ │ │ ├── Config.in │ │ ├── kodi-inputstream-adaptive.hash │ │ └── kodi-inputstream-adaptive.mk │ ├── kodi-inputstream-ffmpegdirect/ │ │ ├── Config.in │ │ ├── kodi-inputstream-ffmpegdirect.hash │ │ └── kodi-inputstream-ffmpegdirect.mk │ ├── kodi-inputstream-rtmp/ │ │ ├── Config.in │ │ ├── kodi-inputstream-rtmp.hash │ │ └── kodi-inputstream-rtmp.mk │ ├── kodi-jsonschemabuilder/ │ │ └── kodi-jsonschemabuilder.mk │ ├── kodi-peripheral-joystick/ │ │ ├── Config.in │ │ ├── kodi-peripheral-joystick.hash │ │ └── kodi-peripheral-joystick.mk │ ├── kodi-peripheral-xarcade/ │ │ ├── Config.in │ │ ├── kodi-peripheral-xarcade.hash │ │ └── kodi-peripheral-xarcade.mk │ ├── kodi-pvr-argustv/ │ │ ├── Config.in │ │ ├── kodi-pvr-argustv.hash │ │ └── kodi-pvr-argustv.mk │ ├── kodi-pvr-dvblink/ │ │ ├── Config.in │ │ ├── kodi-pvr-dvblink.hash │ │ └── kodi-pvr-dvblink.mk │ ├── kodi-pvr-dvbviewer/ │ │ ├── Config.in │ │ ├── kodi-pvr-dvbviewer.hash │ │ └── kodi-pvr-dvbviewer.mk │ ├── kodi-pvr-filmon/ │ │ ├── Config.in │ │ ├── kodi-pvr-filmon.hash │ │ └── kodi-pvr-filmon.mk │ ├── kodi-pvr-hdhomerun/ │ │ ├── Config.in │ │ ├── kodi-pvr-hdhomerun.hash │ │ └── kodi-pvr-hdhomerun.mk │ ├── kodi-pvr-hts/ │ │ ├── Config.in │ │ ├── kodi-pvr-hts.hash │ │ └── kodi-pvr-hts.mk │ ├── kodi-pvr-iptvsimple/ │ │ ├── Config.in │ │ ├── kodi-pvr-iptvsimple.hash │ │ └── kodi-pvr-iptvsimple.mk │ ├── kodi-pvr-mediaportal-tvserver/ │ │ ├── Config.in │ │ ├── kodi-pvr-mediaportal-tvserver.hash │ │ └── kodi-pvr-mediaportal-tvserver.mk │ ├── kodi-pvr-mythtv/ │ │ ├── Config.in │ │ ├── kodi-pvr-mythtv.hash │ │ └── kodi-pvr-mythtv.mk │ ├── kodi-pvr-nextpvr/ │ │ ├── Config.in │ │ ├── kodi-pvr-nextpvr.hash │ │ └── kodi-pvr-nextpvr.mk │ ├── kodi-pvr-njoy/ │ │ ├── Config.in │ │ ├── kodi-pvr-njoy.hash │ │ └── kodi-pvr-njoy.mk │ ├── kodi-pvr-octonet/ │ │ ├── Config.in │ │ ├── kodi-pvr-octonet.hash │ │ └── kodi-pvr-octonet.mk │ ├── kodi-pvr-pctv/ │ │ ├── Config.in │ │ ├── kodi-pvr-pctv.hash │ │ └── kodi-pvr-pctv.mk │ ├── kodi-pvr-stalker/ │ │ ├── Config.in │ │ ├── kodi-pvr-stalker.hash │ │ └── kodi-pvr-stalker.mk │ ├── kodi-pvr-vbox/ │ │ ├── Config.in │ │ ├── kodi-pvr-vbox.hash │ │ └── kodi-pvr-vbox.mk │ ├── kodi-pvr-vdr-vnsi/ │ │ ├── Config.in │ │ ├── kodi-pvr-vdr-vnsi.hash │ │ └── kodi-pvr-vdr-vnsi.mk │ ├── kodi-pvr-vuplus/ │ │ ├── Config.in │ │ ├── kodi-pvr-vuplus.hash │ │ └── kodi-pvr-vuplus.mk │ ├── kodi-pvr-wmc/ │ │ ├── Config.in │ │ ├── kodi-pvr-wmc.hash │ │ └── kodi-pvr-wmc.mk │ ├── kodi-pvr-zattoo/ │ │ ├── Config.in │ │ ├── kodi-pvr-zattoo.hash │ │ └── kodi-pvr-zattoo.mk │ ├── kodi-screensaver-asteroids/ │ │ ├── Config.in │ │ ├── kodi-screensaver-asteroids.hash │ │ └── kodi-screensaver-asteroids.mk │ ├── kodi-screensaver-asterwave/ │ │ ├── Config.in │ │ ├── kodi-screensaver-asterwave.hash │ │ └── kodi-screensaver-asterwave.mk │ ├── kodi-screensaver-biogenesis/ │ │ ├── Config.in │ │ ├── kodi-screensaver-biogenesis.hash │ │ └── kodi-screensaver-biogenesis.mk │ ├── kodi-screensaver-cpblobs/ │ │ ├── Config.in │ │ ├── kodi-screensaver-cpblobs.hash │ │ └── kodi-screensaver-cpblobs.mk │ ├── kodi-screensaver-greynetic/ │ │ ├── Config.in │ │ ├── kodi-screensaver-greynetic.hash │ │ └── kodi-screensaver-greynetic.mk │ ├── kodi-screensaver-matrixtrails/ │ │ ├── Config.in │ │ ├── kodi-screensaver-matrixtrails.hash │ │ └── kodi-screensaver-matrixtrails.mk │ ├── kodi-screensaver-pingpong/ │ │ ├── Config.in │ │ ├── kodi-screensaver-pingpong.hash │ │ └── kodi-screensaver-pingpong.mk │ ├── kodi-screensaver-pyro/ │ │ ├── Config.in │ │ ├── kodi-screensaver-pyro.hash │ │ └── kodi-screensaver-pyro.mk │ ├── kodi-screensaver-rsxs/ │ │ ├── 0001-impSurface.h-fix-build-with-gcc11.patch │ │ ├── Config.in │ │ ├── kodi-screensaver-rsxs.hash │ │ └── kodi-screensaver-rsxs.mk │ ├── kodi-screensaver-stars/ │ │ ├── Config.in │ │ ├── kodi-screensaver-stars.hash │ │ └── kodi-screensaver-stars.mk │ ├── kodi-skin-confluence/ │ │ ├── Config.in │ │ ├── kodi-skin-confluence.hash │ │ └── kodi-skin-confluence.mk │ ├── kodi-texturepacker/ │ │ ├── 0001-texturepacker.patch │ │ ├── 0002-fix-texture-packer-cmake-source-dir.patch │ │ └── kodi-texturepacker.mk │ ├── kodi-vfs-libarchive/ │ │ ├── Config.in │ │ ├── kodi-vfs-libarchive.hash │ │ └── kodi-vfs-libarchive.mk │ ├── kodi-vfs-rar/ │ │ ├── Config.in │ │ ├── kodi-vfs-rar.hash │ │ └── kodi-vfs-rar.mk │ ├── kodi-vfs-sftp/ │ │ ├── Config.in │ │ ├── kodi-vfs-sftp.hash │ │ └── kodi-vfs-sftp.mk │ ├── kodi-visualisation-fishbmc/ │ │ ├── Config.in │ │ ├── kodi-visualisation-fishbmc.hash │ │ └── kodi-visualisation-fishbmc.mk │ ├── kodi-visualisation-goom/ │ │ ├── Config.in │ │ ├── kodi-visualisation-goom.hash │ │ └── kodi-visualisation-goom.mk │ ├── kodi-visualisation-matrix/ │ │ ├── Config.in │ │ ├── kodi-visualisation-matrix.hash │ │ └── kodi-visualisation-matrix.mk │ ├── kodi-visualisation-shadertoy/ │ │ ├── Config.in │ │ ├── kodi-visualisation-shadertoy.hash │ │ └── kodi-visualisation-shadertoy.mk │ ├── kodi-visualisation-spectrum/ │ │ ├── Config.in │ │ ├── kodi-visualisation-spectrum.hash │ │ └── kodi-visualisation-spectrum.mk │ ├── kodi-visualisation-starburst/ │ │ ├── Config.in │ │ ├── kodi-visualisation-starburst.hash │ │ └── kodi-visualisation-starburst.mk │ ├── kodi-visualisation-waveform/ │ │ ├── Config.in │ │ ├── kodi-visualisation-waveform.hash │ │ └── kodi-visualisation-waveform.mk │ ├── kompexsqlite/ │ │ ├── 0001-Makefile-use-autoconf-CXX-for-proper-builds.patch │ │ ├── 0002-append-to-cflags-and-cxxflags.patch │ │ ├── Config.in │ │ ├── kompexsqlite.hash │ │ └── kompexsqlite.mk │ ├── ktap/ │ │ ├── Config.in │ │ ├── ktap.hash │ │ └── ktap.mk │ ├── kvazaar/ │ │ ├── Config.in │ │ ├── kvazaar.hash │ │ └── kvazaar.mk │ ├── kvm-unit-tests/ │ │ ├── 0001-Makefile-remove-Werror-to-avoid-build-failures.patch │ │ ├── 0002-kvm-unit-tests-test-for-rdseed-rdrand.patch │ │ ├── 0003-Makefile-fix-stack-protector-tests.patch │ │ ├── 0004-Fix-powerpc-issue-with-the-linker-from-Fedora-32.patch │ │ ├── Config.in │ │ ├── kvm-unit-tests.hash │ │ └── kvm-unit-tests.mk │ ├── kvmtool/ │ │ ├── Config.in │ │ ├── kvmtool.hash │ │ └── kvmtool.mk │ ├── kyua/ │ │ ├── Config.in │ │ ├── kyua.hash │ │ └── kyua.mk │ ├── lame/ │ │ ├── Config.in │ │ ├── lame.hash │ │ └── lame.mk │ ├── lan951x-led-ctl/ │ │ ├── 0001-fix-cross-compile.patch │ │ ├── Config.in │ │ └── lan951x-led-ctl.mk │ ├── lapack/ │ │ ├── Config.in │ │ ├── lapack.hash │ │ └── lapack.mk │ ├── latencytop/ │ │ ├── 0001-makefile.patch │ │ ├── Config.in │ │ ├── latencytop.hash │ │ └── latencytop.mk │ ├── lbase64/ │ │ ├── 0001-retro-compatible-with-Lua-5.1.patch │ │ ├── Config.in │ │ ├── lbase64.hash │ │ └── lbase64.mk │ ├── lbreakout2/ │ │ ├── Config.in │ │ ├── lbreakout2.hash │ │ └── lbreakout2.mk │ ├── lcdapi/ │ │ ├── Config.in │ │ ├── lcdapi.hash │ │ └── lcdapi.mk │ ├── lcdproc/ │ │ ├── 0001-LCDd.conf.patch │ │ ├── 0002-Add-missing-ioctl-header.patch │ │ ├── 0003-Fixcompilation-with-GCC-10-x.patch │ │ ├── Config.in │ │ ├── lcdproc.hash │ │ └── lcdproc.mk │ ├── lcms2/ │ │ ├── Config.in │ │ ├── lcms2.hash │ │ └── lcms2.mk │ ├── leafnode2/ │ │ ├── 0001-cross_makefile.patch │ │ ├── Config.in │ │ ├── leafnode2.hash │ │ └── leafnode2.mk │ ├── leafpad/ │ │ ├── Config.in │ │ ├── leafpad.hash │ │ └── leafpad.mk │ ├── lensfun/ │ │ ├── Config.in │ │ ├── lensfun.hash │ │ └── lensfun.mk │ ├── leptonica/ │ │ ├── Config.in │ │ ├── leptonica.hash │ │ └── leptonica.mk │ ├── less/ │ │ ├── Config.in │ │ ├── less.hash │ │ └── less.mk │ ├── lesstif/ │ │ ├── Config.in │ │ ├── lesstif.hash │ │ └── lesstif.mk │ ├── let-me-create/ │ │ ├── 0001-fix-build-with-musl-C-library.patch │ │ ├── Config.in │ │ ├── let-me-create.hash │ │ └── let-me-create.mk │ ├── leveldb/ │ │ ├── 0001-Fix-compilation-with-g-4.8.2.patch │ │ ├── 0002-CMake-install-libmemenv.a.patch │ │ ├── 0003-CMakeLists.txt-check-for-atomic-library.patch │ │ ├── 0004-cmake-Use-find_package-to-find-Snappy.patch │ │ ├── Config.in │ │ ├── leveldb.hash │ │ └── leveldb.mk │ ├── lft/ │ │ ├── Config.in │ │ ├── lft.hash │ │ └── lft.mk │ ├── lftp/ │ │ ├── 0001-Fix-build-with-LibreSSL-following-commit-537f37898.patch │ │ ├── Config.in │ │ ├── lftp.hash │ │ └── lftp.mk │ ├── libaacs/ │ │ ├── 0001-read_file.h-include-sys-types.h.patch │ │ ├── Config.in │ │ ├── libaacs.hash │ │ └── libaacs.mk │ ├── libabseil-cpp/ │ │ ├── 0001-force-position-independent-code.patch │ │ ├── Config.in │ │ ├── libabseil-cpp.hash │ │ └── libabseil-cpp.mk │ ├── libaio/ │ │ ├── Config.in │ │ ├── libaio.hash │ │ └── libaio.mk │ ├── libao/ │ │ ├── Config.in │ │ ├── libao.hash │ │ └── libao.mk │ ├── libapparmor/ │ │ ├── Config.in │ │ ├── libapparmor.hash │ │ └── libapparmor.mk │ ├── libarchive/ │ │ ├── Config.in │ │ ├── libarchive.hash │ │ └── libarchive.mk │ ├── libargon2/ │ │ ├── 0001-libargon2-dont-fail-on-existing-symlink.patch │ │ ├── Config.in │ │ ├── libargon2.hash │ │ └── libargon2.mk │ ├── libargtable2/ │ │ ├── Config.in │ │ ├── libargtable2.hash │ │ └── libargtable2.mk │ ├── libart/ │ │ ├── 0001-art-config-cross.patch │ │ ├── Config.in │ │ ├── libart.hash │ │ └── libart.mk │ ├── libasplib/ │ │ ├── 0001-asplib_CPUTimer.h-Fix-time.h-include.patch │ │ ├── Config.in │ │ ├── libasplib.hash │ │ └── libasplib.mk │ ├── libass/ │ │ ├── Config.in │ │ ├── libass.hash │ │ └── libass.mk │ ├── libassuan/ │ │ ├── Config.in │ │ ├── libassuan.hash │ │ └── libassuan.mk │ ├── libatasmart/ │ │ ├── 0001-strpool-cross-flags.patch │ │ ├── Config.in │ │ ├── libatasmart.hash │ │ └── libatasmart.mk │ ├── libatomic_ops/ │ │ ├── Config.in │ │ ├── libatomic_ops.hash │ │ └── libatomic_ops.mk │ ├── libavl/ │ │ ├── 0001-fix-makefile.patch │ │ ├── Config.in │ │ ├── libavl.hash │ │ └── libavl.mk │ ├── libb64/ │ │ ├── 0001-Integer-overflows.patch │ │ ├── 0002-Initialize-C++-objects.patch │ │ ├── Config.in │ │ ├── libb64.hash │ │ └── libb64.mk │ ├── libbacktrace/ │ │ ├── Config.in │ │ ├── libbacktrace.hash │ │ └── libbacktrace.mk │ ├── libbdplus/ │ │ ├── Config.in │ │ ├── libbdplus.hash │ │ └── libbdplus.mk │ ├── libblockdev/ │ │ ├── 0001-Provide-replacement-function-for-strerror_l.patch │ │ ├── Config.in │ │ ├── libblockdev.hash │ │ └── libblockdev.mk │ ├── libbluray/ │ │ ├── Config.in │ │ ├── libbluray.hash │ │ └── libbluray.mk │ ├── libbpf/ │ │ ├── Config.in │ │ ├── libbpf.hash │ │ └── libbpf.mk │ ├── libbroadvoice/ │ │ ├── Config.in │ │ ├── libbroadvoice.hash │ │ └── libbroadvoice.mk │ ├── libbsd/ │ │ ├── Config.in │ │ ├── libbsd.hash │ │ └── libbsd.mk │ ├── libbson/ │ │ ├── Config.in │ │ ├── libbson.hash │ │ └── libbson.mk │ ├── libbytesize/ │ │ ├── Config.in │ │ ├── libbytesize.hash │ │ └── libbytesize.mk │ ├── libcamera/ │ │ ├── Config.in │ │ ├── libcamera.hash │ │ └── libcamera.mk │ ├── libcap/ │ │ ├── 0001-libcap-Makefile-don-t-overwrite-empty-when-generatin.patch │ │ ├── Config.in │ │ ├── libcap.hash │ │ └── libcap.mk │ ├── libcap-ng/ │ │ ├── Config.in │ │ ├── libcap-ng.hash │ │ └── libcap-ng.mk │ ├── libcdaudio/ │ │ ├── 0001-libcdaudio-enable-autoreconf.patch │ │ ├── Config.in │ │ ├── libcdaudio.hash │ │ └── libcdaudio.mk │ ├── libcddb/ │ │ ├── Config.in │ │ ├── libcddb.hash │ │ └── libcddb.mk │ ├── libcdio/ │ │ ├── Config.in │ │ ├── libcdio.hash │ │ └── libcdio.mk │ ├── libcdio-paranoia/ │ │ ├── Config.in │ │ ├── libcdio-paranoia.hash │ │ └── libcdio-paranoia.mk │ ├── libcec/ │ │ ├── Config.in │ │ ├── libcec.hash │ │ └── libcec.mk │ ├── libcgi/ │ │ ├── Config.in │ │ ├── libcgi.hash │ │ └── libcgi.mk │ ├── libcgicc/ │ │ ├── 0001-disable-documentation-option.patch │ │ ├── Config.in │ │ ├── libcgicc.hash │ │ └── libcgicc.mk │ ├── libcgroup/ │ │ ├── Config.in │ │ ├── libcgroup.hash │ │ └── libcgroup.mk │ ├── libclc/ │ │ ├── Config.in │ │ ├── libclc.hash │ │ └── libclc.mk │ ├── libcli/ │ │ ├── Config.in │ │ ├── libcli.hash │ │ └── libcli.mk │ ├── libcoap/ │ │ ├── Config.in │ │ ├── libcoap.hash │ │ └── libcoap.mk │ ├── libcodec2/ │ │ ├── Config.in │ │ ├── libcodec2.hash │ │ └── libcodec2.mk │ ├── libcofi/ │ │ ├── Config.in │ │ ├── libcofi.hash │ │ └── libcofi.mk │ ├── libconfig/ │ │ ├── Config.in │ │ ├── libconfig.hash │ │ └── libconfig.mk │ ├── libconfuse/ │ │ ├── Config.in │ │ ├── libconfuse.hash │ │ └── libconfuse.mk │ ├── libcorrect/ │ │ ├── 0001-CMakeLists.txt-conditionally-use-Wpedantic.patch │ │ ├── 0002-CMakeLists.txt-conditionally-use-fsanitize-address.patch │ │ ├── Config.in │ │ ├── libcorrect.hash │ │ └── libcorrect.mk │ ├── libcpprestsdk/ │ │ ├── Config.in │ │ ├── libcpprestsdk.hash │ │ └── libcpprestsdk.mk │ ├── libcrossguid/ │ │ ├── Config.in │ │ ├── libcrossguid.hash │ │ └── libcrossguid.mk │ ├── libcsv/ │ │ ├── Config.in │ │ ├── libcsv.hash │ │ └── libcsv.mk │ ├── libcue/ │ │ ├── Config.in │ │ ├── libcue.hash │ │ └── libcue.mk │ ├── libcuefile/ │ │ ├── 0001-fix-static-link.patch │ │ ├── Config.in │ │ ├── libcuefile.hash │ │ └── libcuefile.mk │ ├── libcurl/ │ │ ├── Config.in │ │ ├── libcurl.hash │ │ └── libcurl.mk │ ├── libcutl/ │ │ ├── libcutl.hash │ │ └── libcutl.mk │ ├── libdaemon/ │ │ ├── 0001-testd-use-unistd-h-instead-of-sys-unistd-h.patch │ │ ├── Config.in │ │ ├── libdaemon.hash │ │ └── libdaemon.mk │ ├── libdbi/ │ │ ├── Config.in │ │ ├── libdbi.hash │ │ └── libdbi.mk │ ├── libdbi-drivers/ │ │ ├── Config.in │ │ ├── libdbi-drivers.hash │ │ └── libdbi-drivers.mk │ ├── libdcadec/ │ │ ├── Config.in │ │ ├── libdcadec.hash │ │ └── libdcadec.mk │ ├── libdmtx/ │ │ ├── Config.in │ │ ├── libdmtx.hash │ │ └── libdmtx.mk │ ├── libdnet/ │ │ ├── 0001-python-gcc.patch │ │ ├── 0002-python-makefile.patch │ │ ├── Config.in │ │ ├── libdnet.hash │ │ └── libdnet.mk │ ├── libdri2/ │ │ ├── Config.in │ │ ├── libdri2.hash │ │ └── libdri2.mk │ ├── libdrm/ │ │ ├── 0001-tests-meson.build-disable-nouveau-tests-for-static-b.patch │ │ ├── Config.in │ │ ├── libdrm.hash │ │ └── libdrm.mk │ ├── libdvbcsa/ │ │ ├── 0001-altivec-powerpc64.patch │ │ ├── Config.in │ │ ├── libdvbcsa.hash │ │ └── libdvbcsa.mk │ ├── libdvbpsi/ │ │ ├── Config.in │ │ ├── libdvbpsi.hash │ │ └── libdvbpsi.mk │ ├── libdvbsi/ │ │ ├── Config.in │ │ ├── libdvbsi.hash │ │ └── libdvbsi.mk │ ├── libdvdcss/ │ │ ├── Config.in │ │ ├── libdvdcss.hash │ │ └── libdvdcss.mk │ ├── libdvdnav/ │ │ ├── Config.in │ │ ├── libdvdnav.hash │ │ └── libdvdnav.mk │ ├── libdvdread/ │ │ ├── Config.in │ │ ├── libdvdread.hash │ │ └── libdvdread.mk │ ├── libeXosip2/ │ │ ├── Config.in │ │ ├── libeXosip2.hash │ │ └── libeXosip2.mk │ ├── libeastl/ │ │ ├── Config.in │ │ ├── libeastl.hash │ │ └── libeastl.mk │ ├── libebml/ │ │ ├── 0001-include-appropriate-header-files-for-std-numeric_limits.patch │ │ ├── Config.in │ │ ├── libebml.hash │ │ └── libebml.mk │ ├── libebur128/ │ │ ├── Config.in │ │ ├── libebur128.hash │ │ └── libebur128.mk │ ├── libedit/ │ │ ├── 0001-check-bsd-functions-in-libbsd.patch │ │ ├── Config.in │ │ ├── libedit.hash │ │ └── libedit.mk │ ├── libee/ │ │ ├── Config.in │ │ ├── libee.hash │ │ └── libee.mk │ ├── libenca/ │ │ ├── Config.in │ │ ├── libenca.hash │ │ └── libenca.mk │ ├── libepoxy/ │ │ ├── Config.in │ │ ├── libepoxy.hash │ │ └── libepoxy.mk │ ├── liberation/ │ │ ├── Config.in │ │ ├── liberation.hash │ │ └── liberation.mk │ ├── libesmtp/ │ │ ├── Config.in │ │ ├── libesmtp.hash │ │ └── libesmtp.mk │ ├── libestr/ │ │ ├── Config.in │ │ ├── libestr.hash │ │ └── libestr.mk │ ├── libev/ │ │ ├── Config.in │ │ ├── libev.hash │ │ └── libev.mk │ ├── libevdev/ │ │ ├── Config.in │ │ ├── libevdev.hash │ │ └── libevdev.mk │ ├── libevent/ │ │ ├── Config.in │ │ ├── libevent.hash │ │ └── libevent.mk │ ├── libexif/ │ │ ├── 0001-libexif-exif-gps-ifd.c-fix-build-with-gcc-4.8.patch │ │ ├── Config.in │ │ ├── libexif.hash │ │ └── libexif.mk │ ├── libfastjson/ │ │ ├── Config.in │ │ ├── libfastjson.hash │ │ └── libfastjson.mk │ ├── libfcgi/ │ │ ├── 0001-link-against-math.patch │ │ ├── 0002-disable-examples.patch │ │ ├── Config.in │ │ ├── libfcgi.hash │ │ └── libfcgi.mk │ ├── libffi/ │ │ ├── 0001-Fix-installation-location-of-libffi.patch │ │ ├── 0002-Fix-use-of-compact-eh-frames-on-MIPS.patch │ │ ├── 0003-libffi-enable-hardfloat-in-the-MIPS-assembly-code.patch │ │ ├── Config.in │ │ ├── libffi.hash │ │ └── libffi.mk │ ├── libfm/ │ │ ├── 0001-modules-fix-cross-compilation.patch │ │ ├── Config.in │ │ ├── libfm.hash │ │ └── libfm.mk │ ├── libfm-extra/ │ │ ├── Config.in │ │ ├── libfm-extra.hash │ │ └── libfm-extra.mk │ ├── libfreefare/ │ │ ├── Config.in │ │ ├── libfreefare.hash │ │ └── libfreefare.mk │ ├── libfreeglut/ │ │ ├── 0001-Work-around-for-an-issue-which-cropped-up-with-the-release-of-gcc-10.patch │ │ ├── Config.in │ │ ├── libfreeglut.hash │ │ └── libfreeglut.mk │ ├── libfreeimage/ │ │ ├── 0001-no-root-install.patch │ │ ├── 0002-fix-cpuid-x86.patch │ │ ├── 0003-fix-big-endian-os.patch │ │ ├── Config.in │ │ ├── libfreeimage.hash │ │ └── libfreeimage.mk │ ├── libfribidi/ │ │ ├── Config.in │ │ ├── libfribidi.hash │ │ └── libfribidi.mk │ ├── libftdi/ │ │ ├── 0001_pkgconfig_libusb.patch │ │ ├── 0002-libftdi.pc-requires-libusb-fix-static-build.patch │ │ ├── Config.in │ │ ├── libftdi.hash │ │ └── libftdi.mk │ ├── libftdi1/ │ │ ├── 0001-cmake-use-the-standard-CMake-flag-to-drive-the-share.patch │ │ ├── 0002-CMakeLists.txt-fix-paths-when-FTDIPP-is-set.patch │ │ ├── Config.in │ │ ├── libftdi1.hash │ │ └── libftdi1.mk │ ├── libfuse/ │ │ ├── 0001-fix-aarch64-build.patch │ │ ├── 0002-util-ulockmgr_server-c-conditionally-define-closefrom-fix-glibc-2-34.patch │ │ ├── Config.in │ │ ├── libfuse.hash │ │ └── libfuse.mk │ ├── libfuse3/ │ │ ├── Config.in │ │ ├── libfuse3.hash │ │ └── libfuse3.mk │ ├── libg7221/ │ │ ├── Config.in │ │ ├── libg7221.hash │ │ └── libg7221.mk │ ├── libgcrypt/ │ │ ├── 0001-configure.ac-add-an-option-to-disable-tests.patch │ │ ├── Config.in │ │ ├── libgcrypt.hash │ │ └── libgcrypt.mk │ ├── libgdiplus/ │ │ ├── 0001-Build-unit-tests-only-when-enable-unit-tests-is-pass.patch │ │ ├── Config.in │ │ ├── libgdiplus.hash │ │ └── libgdiplus.mk │ ├── libgee/ │ │ ├── 0001-gee-Makefile.am-include-Makefile.introspection.patch │ │ ├── Config.in │ │ ├── libgee.hash │ │ └── libgee.mk │ ├── libgeos/ │ │ ├── Config.in │ │ ├── libgeos.hash │ │ └── libgeos.mk │ ├── libgeotiff/ │ │ ├── Config.in │ │ ├── libgeotiff.hash │ │ └── libgeotiff.mk │ ├── libgit2/ │ │ ├── Config.in │ │ ├── libgit2.hash │ │ └── libgit2.mk │ ├── libglade/ │ │ ├── Config.in │ │ ├── libglade.hash │ │ └── libglade.mk │ ├── libglew/ │ │ ├── Config.in │ │ ├── libglew.hash │ │ └── libglew.mk │ ├── libglfw/ │ │ ├── Config.in │ │ ├── libglfw.hash │ │ └── libglfw.mk │ ├── libglib2/ │ │ ├── 0001-fix-compile-time-atomic-detection.patch │ │ ├── 0002-remove-cpp-requirement.patch │ │ ├── 0003-Add-Wno-format-nonliteral-to-compiler-arguments.patch │ │ ├── 0004-meson.build-add-girdir-to-gio-2.0.pc-and-glib-2.0.pc.patch │ │ ├── Config.in │ │ ├── libglib2.hash │ │ └── libglib2.mk │ ├── libglob/ │ │ ├── Config.in │ │ ├── libglob.hash │ │ └── libglob.mk │ ├── libglu/ │ │ ├── Config.in │ │ ├── libglu.hash │ │ └── libglu.mk │ ├── libgpg-error/ │ │ ├── 0001-build-Fix-generation-of-lock-obj-pub.native.h-for-cr.patch │ │ ├── 0002-build-Fix-disable-threads.patch │ │ ├── Config.in │ │ ├── libgpg-error.hash │ │ └── libgpg-error.mk │ ├── libgpgme/ │ │ ├── 0001-core-Support-closefrom-also-for-glibc.patch │ │ ├── Config.in │ │ ├── libgpgme.hash │ │ └── libgpgme.mk │ ├── libgphoto2/ │ │ ├── Config.in │ │ ├── libgphoto2.hash │ │ └── libgphoto2.mk │ ├── libgpiod/ │ │ ├── 0001-build-add-a-configure-switch-for-building-examples.patch │ │ ├── Config.in │ │ ├── libgpiod.hash │ │ └── libgpiod.mk │ ├── libgsasl/ │ │ ├── Config.in │ │ ├── libgsasl.hash │ │ └── libgsasl.mk │ ├── libgsm/ │ │ ├── 0001-misc-fixes-from-archlinux.patch │ │ ├── Config.in │ │ ├── libgsm.hash │ │ └── libgsm.mk │ ├── libgta/ │ │ ├── Config.in │ │ ├── libgta.hash │ │ └── libgta.mk │ ├── libgtk2/ │ │ ├── 0001-reduce-dependencies.patch │ │ ├── Config.in │ │ ├── libgtk2.hash │ │ └── libgtk2.mk │ ├── libgtk3/ │ │ ├── 0001-no-gtk-doc.patch │ │ ├── 0002-fix-introspection-check.patch │ │ ├── 0003-disable-atk-bridge.patch │ │ ├── 0004-Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch │ │ ├── Config.in │ │ ├── libgtk3.hash │ │ └── libgtk3.mk │ ├── libgudev/ │ │ ├── Config.in │ │ ├── libgudev.hash │ │ └── libgudev.mk │ ├── libhdhomerun/ │ │ ├── 0001-dont-strip.patch │ │ ├── Config.in │ │ ├── libhdhomerun.hash │ │ └── libhdhomerun.mk │ ├── libhid/ │ │ ├── 0001-dont-fiddle-with-debug-flags.patch │ │ ├── 0002-no-newline-in-ldflags.patch │ │ ├── 0003-uclinux.patch │ │ ├── Config.in │ │ ├── libhid.hash │ │ └── libhid.mk │ ├── libhtp/ │ │ ├── Config.in │ │ ├── libhtp.hash │ │ └── libhtp.mk │ ├── libhttpparser/ │ │ ├── Config.in │ │ ├── libhttpparser.hash │ │ └── libhttpparser.mk │ ├── libhttpserver/ │ │ ├── Config.in │ │ ├── libhttpserver.hash │ │ └── libhttpserver.mk │ ├── libiberty/ │ │ ├── libiberty.hash │ │ └── libiberty.mk │ ├── libical/ │ │ ├── 0001-no-tests.patch │ │ ├── 0002-icaltypes-c-icalreqstattype_from_string-copy-the-reqstattype.patch │ │ ├── Config.in │ │ ├── libical.hash │ │ └── libical.mk │ ├── libiconv/ │ │ ├── Config.in │ │ ├── libiconv.hash │ │ └── libiconv.mk │ ├── libid3tag/ │ │ ├── Config.in │ │ ├── id3tag.pc │ │ ├── libid3tag.hash │ │ └── libid3tag.mk │ ├── libidn/ │ │ ├── Config.in │ │ ├── libidn.hash │ │ └── libidn.mk │ ├── libidn2/ │ │ ├── Config.in │ │ ├── libidn2.hash │ │ └── libidn2.mk │ ├── libiec61850/ │ │ ├── Config.in │ │ ├── libiec61850.hash │ │ └── libiec61850.mk │ ├── libiio/ │ │ ├── 0001-C-public-fields-with-getters-setters-cannot-be-marked-readonly.patch │ │ ├── Config.in │ │ ├── S99iiod │ │ ├── libiio.hash │ │ └── libiio.mk │ ├── libilbc/ │ │ ├── Config.in │ │ ├── libilbc.hash │ │ └── libilbc.mk │ ├── libimxvpuapi/ │ │ ├── Config.in │ │ ├── libimxvpuapi.hash │ │ └── libimxvpuapi.mk │ ├── libinput/ │ │ ├── Config.in │ │ ├── libinput.hash │ │ └── libinput.mk │ ├── libiqrf/ │ │ ├── 0001-cmake-handle-static-library-and-find-required-thread.patch │ │ ├── 0002-use-only-c-language.patch │ │ ├── Config.in │ │ ├── libiqrf.hash │ │ └── libiqrf.mk │ ├── libiscsi/ │ │ ├── Config.in │ │ ├── libiscsi.hash │ │ └── libiscsi.mk │ ├── libite/ │ │ ├── Config.in │ │ ├── libite.hash │ │ └── libite.mk │ ├── libjpeg/ │ │ ├── libjpeg.hash │ │ ├── libjpeg.mk │ │ └── libjpeg.pc.in │ ├── libjson/ │ │ ├── 0001-fix-broken-makefile.patch │ │ ├── Config.in │ │ ├── libjson.hash │ │ └── libjson.mk │ ├── libkcapi/ │ │ ├── 0001-Disable-use-of-__NR_io_getevents-when-not-defined.patch │ │ ├── Config.in │ │ ├── libkcapi.hash │ │ └── libkcapi.mk │ ├── libkrb5/ │ │ ├── 0001-Fix-KDC-null-deref-on-TGS-inner-body-null-server.patch │ │ ├── Config.in │ │ ├── libkrb5.hash │ │ └── libkrb5.mk │ ├── libksba/ │ │ ├── Config.in │ │ ├── libksba.hash │ │ └── libksba.mk │ ├── libldns/ │ │ ├── Config.in │ │ ├── libldns.hash │ │ └── libldns.mk │ ├── liblinear/ │ │ ├── 0001-blas-don-t-overwrite-ar-options.patch │ │ ├── 0002-build-static-lib.patch │ │ ├── Config.in │ │ ├── liblinear.hash │ │ └── liblinear.mk │ ├── libllcp/ │ │ ├── Config.in │ │ ├── libllcp.hash │ │ └── libllcp.mk │ ├── liblo/ │ │ ├── Config.in │ │ ├── liblo.hash │ │ └── liblo.mk │ ├── liblockfile/ │ │ ├── 0001-Makefile.in-fix-cross-compilation.patch │ │ ├── Config.in │ │ ├── liblockfile.hash │ │ └── liblockfile.mk │ ├── liblog4c-localtime/ │ │ ├── 0001-log4c.m4-fix-underquoted-definition-of-AM_PATH_LOG4C.patch │ │ ├── 0002-Fix-linking-error-without-pthread.patch │ │ ├── 0003-Fix-debug-mode-build-with-uClibc.patch │ │ ├── 0004-Add-AC_CONFIG_MACRO_DIR-to-configure.in.patch │ │ ├── 0005-Fix-C-support.patch │ │ ├── Config.in │ │ ├── liblog4c-localtime.hash │ │ └── liblog4c-localtime.mk │ ├── liblogging/ │ │ ├── Config.in │ │ ├── liblogging.hash │ │ └── liblogging.mk │ ├── libloki/ │ │ ├── 0001-allow-to-install-to-a-specific-location-using-DESTDI.patch │ │ ├── 0002-use-ln-snf.patch │ │ ├── Config.in │ │ ├── libloki.hash │ │ └── libloki.mk │ ├── libmad/ │ │ ├── 0001-mips-h-constraint-removal.patch │ │ ├── 0002-configure-ac-automake-foreign.patch │ │ ├── Config.in │ │ ├── libmad.hash │ │ ├── libmad.mk │ │ └── mad.pc │ ├── libmatroska/ │ │ ├── Config.in │ │ ├── libmatroska.hash │ │ └── libmatroska.mk │ ├── libmaxminddb/ │ │ ├── Config.in │ │ ├── libmaxminddb.hash │ │ └── libmaxminddb.mk │ ├── libmbim/ │ │ ├── 0001-src-libmbim-glib-meson.build-fix-static-build.patch │ │ ├── Config.in │ │ ├── libmbim.hash │ │ └── libmbim.mk │ ├── libmbus/ │ │ ├── Config.in │ │ ├── libmbus.hash │ │ └── libmbus.mk │ ├── libmdbx/ │ │ ├── Config.in │ │ ├── libmdbx.hash │ │ └── libmdbx.mk │ ├── libmediaart/ │ │ ├── Config.in │ │ ├── libmediaart.hash │ │ └── libmediaart.mk │ ├── libmemcached/ │ │ ├── 0001-disable-tests.patch │ │ ├── 0002-disable-sanitizer.patch │ │ ├── 0003-move-ac_config_aux_dir.patch │ │ ├── 0004-disable-doc-and-man.patch │ │ ├── 0005-fix-pointer-comparaison.patch │ │ ├── Config.in │ │ ├── libmemcached.hash │ │ └── libmemcached.mk │ ├── libmhash/ │ │ ├── Config.in │ │ ├── libmhash.hash │ │ └── libmhash.mk │ ├── libmicrohttpd/ │ │ ├── Config.in │ │ ├── libmicrohttpd.hash │ │ └── libmicrohttpd.mk │ ├── libminiupnpc/ │ │ ├── Config.in │ │ ├── libminiupnpc.hash │ │ └── libminiupnpc.mk │ ├── libmms/ │ │ ├── Config.in │ │ ├── libmms.hash │ │ └── libmms.mk │ ├── libmng/ │ │ ├── 0001-jpeg-9a.patch │ │ ├── Config.in │ │ ├── libmng.hash │ │ └── libmng.mk │ ├── libmnl/ │ │ ├── Config.in │ │ ├── libmnl.hash │ │ └── libmnl.mk │ ├── libmodbus/ │ │ ├── Config.in │ │ ├── libmodbus.hash │ │ └── libmodbus.mk │ ├── libmodplug/ │ │ ├── Config.in │ │ ├── libmodplug.hash │ │ └── libmodplug.mk │ ├── libmodsecurity/ │ │ ├── 0001-configure.ac-drop-usage-of-git-at-configure-time.patch │ │ ├── 0002-modsecurity.pc.in-add-lstdc.patch │ │ ├── 0003-Revert-Fix-maxminddb-link-on-FreeBSD.patch │ │ ├── Config.in │ │ ├── libmodsecurity.hash │ │ └── libmodsecurity.mk │ ├── libmpd/ │ │ ├── 0001-Fix-build-on-archlinux-missing-include.patch │ │ ├── Config.in │ │ ├── libmpd.hash │ │ └── libmpd.mk │ ├── libmpdclient/ │ │ ├── Config.in │ │ ├── libmpdclient.hash │ │ └── libmpdclient.mk │ ├── libmpeg2/ │ │ ├── 0001-altivec.patch │ │ ├── 0002-armv4l.patch │ │ ├── 0003-fix-arm-detection.patch │ │ ├── 0004-fix-sparc.patch │ │ ├── Config.in │ │ ├── libmpeg2.hash │ │ └── libmpeg2.mk │ ├── libmspack/ │ │ ├── Config.in │ │ ├── libmspack.hash │ │ └── libmspack.mk │ ├── libnatpmp/ │ │ ├── Config.in │ │ ├── libnatpmp.hash │ │ └── libnatpmp.mk │ ├── libndp/ │ │ ├── Config.in │ │ ├── libndp.hash │ │ └── libndp.mk │ ├── libnet/ │ │ ├── 0001-Use-standard-int64_t-instead-of-__int64_t-for-mingw-cross-build.patch │ │ ├── Config.in │ │ ├── libnet.hash │ │ └── libnet.mk │ ├── libnetconf2/ │ │ ├── Config.in │ │ ├── libnetconf2.hash │ │ └── libnetconf2.mk │ ├── libnetfilter_acct/ │ │ ├── Config.in │ │ ├── libnetfilter_acct.hash │ │ └── libnetfilter_acct.mk │ ├── libnetfilter_conntrack/ │ │ ├── 0001-libnetfilter_conntrack.pc.in-add-LIBMNL_LIBS-to-Libs.patch │ │ ├── Config.in │ │ ├── libnetfilter_conntrack.hash │ │ └── libnetfilter_conntrack.mk │ ├── libnetfilter_cthelper/ │ │ ├── 0001-uclinux.patch │ │ ├── Config.in │ │ ├── libnetfilter_cthelper.hash │ │ └── libnetfilter_cthelper.mk │ ├── libnetfilter_cttimeout/ │ │ ├── 0001-uclinux.patch │ │ ├── Config.in │ │ ├── libnetfilter_cttimeout.hash │ │ └── libnetfilter_cttimeout.mk │ ├── libnetfilter_log/ │ │ ├── 0001-uclinux.patch │ │ ├── 0002-Add-include-needed-for-integer-type-definition.patch │ │ ├── 0003-src-Use-stdint-types-everywhere.patch │ │ ├── 0004-include-Sync-with-current-kernel-headers.patch │ │ ├── Config.in │ │ ├── libnetfilter_log.hash │ │ └── libnetfilter_log.mk │ ├── libnetfilter_queue/ │ │ ├── Config.in │ │ ├── libnetfilter_queue.hash │ │ └── libnetfilter_queue.mk │ ├── libnfc/ │ │ ├── 0001-autotools-make-example-build-optional.patch │ │ ├── Config.in │ │ ├── libnfc.hash │ │ └── libnfc.mk │ ├── libnfnetlink/ │ │ ├── 0001-uclinux.patch │ │ ├── 0002-include-Sync-with-kernel-headers.patch │ │ ├── 0002-musl.patch │ │ ├── Config.in │ │ ├── libnfnetlink.hash │ │ └── libnfnetlink.mk │ ├── libnfs/ │ │ ├── 0001-Fix-include-sys-time.h.patch │ │ ├── Config.in │ │ ├── libnfs.hash │ │ └── libnfs.mk │ ├── libnftnl/ │ │ ├── Config.in │ │ ├── libnftnl.hash │ │ └── libnftnl.mk │ ├── libnice/ │ │ ├── Config.in │ │ ├── libnice.hash │ │ └── libnice.mk │ ├── libnids/ │ │ ├── 0001-libpcap-use-pkg-config.patch │ │ ├── Config.in │ │ ├── libnids.hash │ │ └── libnids.mk │ ├── libnl/ │ │ ├── 0001-build-add-Libs.private-field-in-libnl-pkg-config-fil.patch │ │ ├── 0002-Add-musl-workaround-to-the-libc-compat.h-copy.patch │ │ ├── Config.in │ │ ├── libnl.hash │ │ └── libnl.mk │ ├── libnpth/ │ │ ├── Config.in │ │ ├── libnpth.hash │ │ └── libnpth.mk │ ├── libnpupnp/ │ │ ├── Config.in │ │ ├── libnpupnp.hash │ │ └── libnpupnp.mk │ ├── libnspr/ │ │ ├── Config.in │ │ ├── libnspr.hash │ │ └── libnspr.mk │ ├── libnss/ │ │ ├── Config.in │ │ ├── libnss.hash │ │ ├── libnss.mk │ │ └── nss.pc.in │ ├── liboauth/ │ │ ├── 0001-Fixes-build-issue-with-OpenSSL-1.1.0.patch │ │ ├── Config.in │ │ ├── liboauth.hash │ │ └── liboauth.mk │ ├── libodb/ │ │ ├── Config.in │ │ ├── libodb.hash │ │ └── libodb.mk │ ├── libodb-boost/ │ │ ├── Config.in │ │ ├── libodb-boost.hash │ │ └── libodb-boost.mk │ ├── libodb-mysql/ │ │ ├── 0001-fix-syntax-issue-while-checking-ldflags.patch │ │ ├── 0002-mariadb-FTBFS-fix.patch │ │ ├── Config.in │ │ ├── libodb-mysql.hash │ │ └── libodb-mysql.mk │ ├── libodb-pgsql/ │ │ ├── Config.in │ │ ├── libodb-pgsql.hash │ │ └── libodb-pgsql.mk │ ├── libogg/ │ │ ├── Config.in │ │ ├── libogg.hash │ │ └── libogg.mk │ ├── libolm/ │ │ ├── Config.in │ │ ├── libolm.hash │ │ └── libolm.mk │ ├── libopenh264/ │ │ ├── 0001-Add-USE_STACK_PROTECTOR-option.patch │ │ ├── 0002-fix-mips-build.patch │ │ ├── 0003-codec-common-inc-asmdefs_mmi.h-fix-mips32-build.patch │ │ ├── Config.in │ │ ├── libopenh264.hash │ │ └── libopenh264.mk │ ├── libopenssl/ │ │ ├── 0001-Dont-waste-time-building-manpages-if-we-re-not-going.patch │ │ ├── 0002-Reproducible-build-do-not-leak-compiler-path.patch │ │ ├── 0003-Introduce-the-OPENSSL_NO_MADVISE-to-disable-call-to-.patch │ │ ├── 0004-Configure-use-ELFv2-ABI-on-some-ppc64-big-endian-sys.patch │ │ ├── 0005-crypto-perlasm-ppc-xlate.pl-add-linux64v2-flavour.patch │ │ ├── 0006-Add-support-for-io_pgetevents_time64-syscall.patch │ │ ├── 0007-Fixup-support-for-io_pgetevents_time64-syscall.patch │ │ ├── Config.in │ │ ├── libopenssl.hash │ │ └── libopenssl.mk │ ├── liboping/ │ │ ├── 0001-ping_host_add-Decrease-buffer-size-to-make-GCC-s-truncation-check-happy.patch │ │ ├── Config.in │ │ ├── liboping.hash │ │ └── liboping.mk │ ├── libopusenc/ │ │ ├── Config.in │ │ ├── libopusenc.hash │ │ └── libopusenc.mk │ ├── libosip2/ │ │ ├── Config.in │ │ ├── libosip2.hash │ │ └── libosip2.mk │ ├── libosmium/ │ │ ├── Config.in │ │ ├── libosmium.hash │ │ └── libosmium.mk │ ├── libostree/ │ │ ├── Config.in │ │ ├── libostree.hash │ │ └── libostree.mk │ ├── libp11/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── libp11.hash │ │ └── libp11.mk │ ├── libpagekite/ │ │ ├── Config.in │ │ ├── libpagekite.hash │ │ └── libpagekite.mk │ ├── libpam-nfc/ │ │ ├── Config.in │ │ ├── libpam-nfc.hash │ │ └── libpam-nfc.mk │ ├── libpam-radius-auth/ │ │ ├── Config.in │ │ ├── libpam-radius-auth.hash │ │ └── libpam-radius-auth.mk │ ├── libpam-tacplus/ │ │ ├── 0001-Add-an-option-to-disable-Werror.patch │ │ ├── Config.in │ │ ├── libpam-tacplus.hash │ │ └── libpam-tacplus.mk │ ├── libpcap/ │ │ ├── Config.in │ │ ├── libpcap.hash │ │ └── libpcap.mk │ ├── libpciaccess/ │ │ ├── 0001-pciaccess.pc.in-add-Libs.Private.patch │ │ ├── Config.in │ │ ├── libpciaccess.hash │ │ └── libpciaccess.mk │ ├── libpfm4/ │ │ ├── Config.in │ │ ├── libpfm4.hash │ │ └── libpfm4.mk │ ├── libphidget/ │ │ ├── Config.in │ │ ├── libphidget.hash │ │ └── libphidget.mk │ ├── libpjsip/ │ │ ├── Config.in │ │ ├── libpjsip.hash │ │ └── libpjsip.mk │ ├── libplatform/ │ │ ├── 0001-cmake-require-c-11-as-the-minimum-standard.patch │ │ ├── Config.in │ │ ├── libplatform.hash │ │ └── libplatform.mk │ ├── libplist/ │ │ ├── Config.in │ │ ├── libplist.hash │ │ └── libplist.mk │ ├── libpng/ │ │ ├── 0001-Disable-pngfix-and-png-fix-itxt.patch │ │ ├── Config.in │ │ ├── libpng.hash │ │ └── libpng.mk │ ├── libpqxx/ │ │ ├── Config.in │ │ ├── libpqxx.hash │ │ └── libpqxx.mk │ ├── libpri/ │ │ ├── Config.in │ │ ├── libpri.hash │ │ └── libpri.mk │ ├── libpsl/ │ │ ├── Config.in │ │ ├── libpsl.hash │ │ └── libpsl.mk │ ├── libpthread-stubs/ │ │ ├── Config.in │ │ ├── libpthread-stubs.hash │ │ └── libpthread-stubs.mk │ ├── libpthsem/ │ │ ├── 0001-fix-build-on-linux-3.x-host.patch │ │ ├── Config.in │ │ ├── libpthsem.hash │ │ └── libpthsem.mk │ ├── libpwquality/ │ │ ├── Config.in │ │ ├── libpwquality.hash │ │ └── libpwquality.mk │ ├── libqb/ │ │ ├── Config.in │ │ ├── libqb.hash │ │ └── libqb.mk │ ├── libqmi/ │ │ ├── Config.in │ │ ├── libqmi.hash │ │ └── libqmi.mk │ ├── libqrencode/ │ │ ├── Config.in │ │ ├── libqrencode.hash │ │ └── libqrencode.mk │ ├── libqrtr-glib/ │ │ ├── Config.in │ │ ├── libqrtr-glib.hash │ │ └── libqrtr-glib.mk │ ├── libraw/ │ │ ├── 0001-Add-Libs.private-to-libraw.pc.patch │ │ ├── Config.in │ │ ├── libraw.hash │ │ └── libraw.mk │ ├── libraw1394/ │ │ ├── Config.in │ │ ├── libraw1394.hash │ │ └── libraw1394.mk │ ├── librelp/ │ │ ├── Config.in │ │ ├── librelp.hash │ │ └── librelp.mk │ ├── libreplaygain/ │ │ ├── Config.in │ │ ├── libreplaygain.hash │ │ └── libreplaygain.mk │ ├── libressl/ │ │ ├── 0001-always-expose-SSL_OP_NO_TLSv1_3.patch │ │ ├── Config.in │ │ ├── libressl.hash │ │ └── libressl.mk │ ├── libroxml/ │ │ ├── 0001-src-roxml_mem.h-add-missing-extern.patch │ │ ├── Config.in │ │ ├── libroxml.hash │ │ └── libroxml.mk │ ├── librsvg/ │ │ ├── Config.in │ │ ├── librsvg.hash │ │ └── librsvg.mk │ ├── librsync/ │ │ ├── Config.in │ │ ├── librsync.hash │ │ └── librsync.mk │ ├── librtas/ │ │ ├── Config.in │ │ ├── librtas.hash │ │ └── librtas.mk │ ├── librtlsdr/ │ │ ├── 0001-disable_shared_library_target_in_build.patch │ │ ├── 0002-cmake-Modules-Version.cmake-don-t-use-Git-version-if.patch │ │ ├── Config.in │ │ ├── librtlsdr.hash │ │ └── librtlsdr.mk │ ├── libsamplerate/ │ │ ├── Config.in │ │ ├── libsamplerate.hash │ │ └── libsamplerate.mk │ ├── libscrypt/ │ │ ├── 0001-Allow-adding-options-to-CFLAGS-and-LDFLAGS-variables.patch │ │ ├── Config.in │ │ ├── libscrypt.hash │ │ └── libscrypt.mk │ ├── libseccomp/ │ │ ├── Config.in │ │ ├── libseccomp.hash │ │ └── libseccomp.mk │ ├── libsecret/ │ │ ├── Config.in │ │ ├── libsecret.hash │ │ └── libsecret.mk │ ├── libselinux/ │ │ ├── 0001-fix-musl-build.patch │ │ ├── 0002-Do-not-use-PYCEXT-and-rely-on-the-installed-file-nam.patch │ │ ├── 0003-libselinux-utils-getseuser.c-fix-build-with-gcc-4.8.patch │ │ ├── Config.in │ │ ├── libselinux.hash │ │ └── libselinux.mk │ ├── libsemanage/ │ │ ├── Config.in │ │ ├── libsemanage.hash │ │ └── libsemanage.mk │ ├── libsepol/ │ │ ├── 0001-support-static-only.patch │ │ ├── Config.in │ │ ├── libsepol.hash │ │ └── libsepol.mk │ ├── libserial/ │ │ ├── 0001-SerialPort.cpp-fix-build-when-size_t-is-an-unsigned-.patch │ │ ├── 0002-SerialPort.cpp-don-t-use-high-baudrates-when-not-ava.patch │ │ ├── Config.in │ │ ├── libserial.hash │ │ └── libserial.mk │ ├── libserialport/ │ │ ├── 0001-uclinux-detection.patch │ │ ├── Config.in │ │ ├── libserialport.hash │ │ └── libserialport.mk │ ├── libsexy/ │ │ ├── Config.in │ │ ├── libsexy.hash │ │ └── libsexy.mk │ ├── libsha1/ │ │ ├── Config.in │ │ ├── libsha1.hash │ │ └── libsha1.mk │ ├── libshairplay/ │ │ ├── Config.in │ │ ├── libshairplay.hash │ │ └── libshairplay.mk │ ├── libshout/ │ │ ├── 0001-configure.ac-add-an-option-to-disable-tools.patch │ │ ├── Config.in │ │ ├── libshout.hash │ │ └── libshout.mk │ ├── libsidplay2/ │ │ ├── 0001-sidplay2-libs-2.1.1.patch │ │ ├── 0002-pkg-config.patch │ │ ├── 0003-gcc6.patch │ │ ├── Config.in │ │ ├── libsidplay2.hash │ │ └── libsidplay2.mk │ ├── libsigc/ │ │ ├── Config.in │ │ ├── libsigc.hash │ │ └── libsigc.mk │ ├── libsigrok/ │ │ ├── Config.in │ │ ├── libsigrok.hash │ │ └── libsigrok.mk │ ├── libsigrokdecode/ │ │ ├── 0001-configure-ac-Add-support-for-Python-3-9.patch │ │ ├── Config.in │ │ ├── libsigrokdecode.hash │ │ └── libsigrokdecode.mk │ ├── libsigsegv/ │ │ ├── Config.in │ │ ├── libsigsegv.hash │ │ └── libsigsegv.mk │ ├── libsilk/ │ │ ├── Config.in │ │ ├── libsilk.hash │ │ └── libsilk.mk │ ├── libsndfile/ │ │ ├── 0001-ms_adpcm-Fix-and-extend-size-checks.patch │ │ ├── Config.in │ │ ├── libsndfile.hash │ │ └── libsndfile.mk │ ├── libsoc/ │ │ ├── Config.in │ │ ├── libsoc.hash │ │ └── libsoc.mk │ ├── libsocketcan/ │ │ ├── Config.in │ │ ├── libsocketcan.hash │ │ └── libsocketcan.mk │ ├── libsodium/ │ │ ├── Config.in │ │ ├── libsodium.hash │ │ └── libsodium.mk │ ├── libsoundtouch/ │ │ ├── Config.in │ │ ├── libsoundtouch.hash │ │ └── libsoundtouch.mk │ ├── libsoup/ │ │ ├── 0001-meson.build-set-c_std-to-gnu99.patch │ │ ├── Config.in │ │ ├── libsoup.hash │ │ └── libsoup.mk │ ├── libsoxr/ │ │ ├── 0001-Add-Libs.private-for-static-linking.patch │ │ ├── Config.in │ │ ├── libsoxr.hash │ │ └── libsoxr.mk │ ├── libspatialindex/ │ │ ├── 0001-allow-building-static-libs.patch │ │ ├── 0002-CMakeLists.txt-fix-CMAKE_BUILD_TYPE.patch │ │ ├── Config.in │ │ ├── libspatialindex.hash │ │ └── libspatialindex.mk │ ├── libsquish/ │ │ ├── 0001-Makefile-add-f-option-for-ln-to-remove-existing-dest.patch │ │ ├── Config.in │ │ ├── libsquish.hash │ │ └── libsquish.mk │ ├── libsrtp/ │ │ ├── Config.in │ │ ├── libsrtp.hash │ │ └── libsrtp.mk │ ├── libss7/ │ │ ├── Config.in │ │ ├── libss7.hash │ │ └── libss7.mk │ ├── libssh/ │ │ ├── Config.in │ │ ├── libssh.hash │ │ └── libssh.mk │ ├── libssh2/ │ │ ├── Config.in │ │ ├── libssh2.hash │ │ └── libssh2.mk │ ├── libstrophe/ │ │ ├── Config.in │ │ ├── libstrophe.hash │ │ └── libstrophe.mk │ ├── libsvg/ │ │ ├── 0001-fix-expat-static-declaration.patch │ │ ├── 0002-Fix-undefined-symbol-png_set_gray_1_2_4_to_8.patch │ │ ├── Config.in │ │ ├── libsvg.hash │ │ └── libsvg.mk │ ├── libsvg-cairo/ │ │ ├── Config.in │ │ ├── libsvg-cairo.hash │ │ └── libsvg-cairo.mk │ ├── libsvgtiny/ │ │ ├── 0001-disable-debug-printfs.patch │ │ ├── 0002-Remove-Werror.patch │ │ ├── 0003-Hopefully-silence-warnings-about-inlines-and-non-inlines-calling-one.patch │ │ ├── 0004-Build-Include-gperf-generated-code-directly.patch │ │ ├── Config.in │ │ ├── libsvgtiny.hash │ │ └── libsvgtiny.mk │ ├── libsysfs/ │ │ ├── Config.in │ │ ├── libsysfs.hash │ │ └── libsysfs.mk │ ├── libtalloc/ │ │ ├── Config.in │ │ ├── libtalloc-cache.txt │ │ ├── libtalloc.hash │ │ └── libtalloc.mk │ ├── libtasn1/ │ │ ├── 0001-fuzz-Makefile.am-do-not-force-static.patch │ │ ├── Config.in │ │ ├── libtasn1.hash │ │ └── libtasn1.mk │ ├── libteam/ │ │ ├── 0001-revert-disregard-current-state.patch │ │ ├── 0002-fix-build-on-openwrt-musl-libc.patch │ │ ├── 0003-increase-wait-time-for-daemon-kill.patch │ │ ├── Config.in │ │ ├── libteam.hash │ │ └── libteam.mk │ ├── libtelnet/ │ │ ├── 0001-fix-compilation-without-zlib.patch │ │ ├── Config.in │ │ ├── libtelnet.hash │ │ └── libtelnet.mk │ ├── libtextstyle/ │ │ ├── libtextstyle.hash │ │ └── libtextstyle.mk │ ├── libtheora/ │ │ ├── 0001-link-libtheoradec.patch │ │ ├── 0002-fix-autoreconf.patch │ │ ├── Config.in │ │ ├── libtheora.hash │ │ └── libtheora.mk │ ├── libtirpc/ │ │ ├── Config.in │ │ ├── libtirpc.hash │ │ └── libtirpc.mk │ ├── libtomcrypt/ │ │ ├── 0001-fix-CVE-2019-17362.patch │ │ ├── Config.in │ │ ├── libtomcrypt.hash │ │ └── libtomcrypt.mk │ ├── libtommath/ │ │ ├── 0001-Build-test-bn_mp_set_double-c-on-more-platforms.patch │ │ ├── Config.in │ │ ├── libtommath.hash │ │ └── libtommath.mk │ ├── libtool/ │ │ ├── Config.in │ │ ├── libtool.hash │ │ └── libtool.mk │ ├── libtorrent/ │ │ ├── 0001-libtorrent.pc.in-add-Libs.Private.patch │ │ ├── Config.in │ │ ├── libtorrent.hash │ │ └── libtorrent.mk │ ├── libtorrent-rasterbar/ │ │ ├── Config.in │ │ ├── libtorrent-rasterbar.hash │ │ └── libtorrent-rasterbar.mk │ ├── libtpl/ │ │ ├── Config.in │ │ ├── libtpl.hash │ │ └── libtpl.mk │ ├── libubootenv/ │ │ ├── 0001-src-CMakeLists.txt-do-not-force-the-build-of-a-share.patch │ │ ├── Config.in │ │ ├── libubootenv.hash │ │ └── libubootenv.mk │ ├── libubox/ │ │ ├── Config.in │ │ ├── libubox.hash │ │ └── libubox.mk │ ├── libuci/ │ │ ├── Config.in │ │ ├── libuci.hash │ │ └── libuci.mk │ ├── libucl/ │ │ ├── Config.in │ │ ├── libucl.hash │ │ └── libucl.mk │ ├── libudfread/ │ │ ├── Config.in │ │ ├── libudfread.hash │ │ └── libudfread.mk │ ├── libuecc/ │ │ ├── Config.in │ │ ├── libuecc.hash │ │ └── libuecc.mk │ ├── libuev/ │ │ ├── Config.in │ │ ├── libuev.hash │ │ └── libuev.mk │ ├── libuhttpd/ │ │ ├── 0001-openssl.c-fix-build-with-wolfssl.patch │ │ ├── Config.in │ │ ├── libuhttpd.hash │ │ └── libuhttpd.mk │ ├── libuio/ │ │ ├── 0001-configure-remove-po-Makefile.in.patch │ │ ├── Config.in │ │ ├── libuio.hash │ │ └── libuio.mk │ ├── libunistring/ │ │ ├── Config.in │ │ ├── libunistring.hash │ │ └── libunistring.mk │ ├── libunwind/ │ │ ├── 0001-Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch │ │ ├── Config.in │ │ ├── libunwind.hash │ │ └── libunwind.mk │ ├── libupnp/ │ │ ├── Config.in │ │ ├── libupnp.hash │ │ └── libupnp.mk │ ├── libupnpp/ │ │ ├── Config.in │ │ ├── libupnpp.hash │ │ └── libupnpp.mk │ ├── liburcu/ │ │ ├── 0001-Only-blacklist-ARM-gcc-4.8.0-and-4.8.1.patch │ │ ├── 0002-fix-don-t-use-C-thread_local-on-MacOs.patch │ │ ├── 0003-Always-use-__thread-for-Thread-local-storage-except-on-MSVC.patch │ │ ├── Config.in │ │ ├── liburcu.hash │ │ └── liburcu.mk │ ├── liburiparser/ │ │ ├── Config.in │ │ ├── liburiparser.hash │ │ └── liburiparser.mk │ ├── libusb/ │ │ ├── 0001-linux_usbfs-Fix-parsing-of-descriptors-for-multi-con.patch │ │ ├── Config.in │ │ ├── libusb.hash │ │ └── libusb.mk │ ├── libusb-compat/ │ │ ├── 0001-fix-a-build-issue-on-linux.patch │ │ ├── Config.in │ │ ├── libusb-compat.hash │ │ └── libusb-compat.mk │ ├── libusbgx/ │ │ ├── 0001-Add-include-of-sys-sysmacro.h.patch │ │ ├── Config.in │ │ ├── libusbgx.hash │ │ └── libusbgx.mk │ ├── libuv/ │ │ ├── Config.in │ │ ├── libuv.hash │ │ └── libuv.mk │ ├── libuwsc/ │ │ ├── 0001-CMakeLists.txt-add-BUILD_EXAMPLE.patch │ │ ├── 0002-fix-bad-indentation.patch │ │ ├── Config.in │ │ ├── libuwsc.hash │ │ └── libuwsc.mk │ ├── libv4l/ │ │ ├── 0001-keymap.h-add-missing-includes-to-fix-musl-build.patch │ │ ├── Config.in │ │ ├── libv4l.hash │ │ └── libv4l.mk │ ├── libva/ │ │ ├── Config.in │ │ ├── libva.hash │ │ └── libva.mk │ ├── libva-intel-driver/ │ │ ├── Config.in │ │ ├── libva-intel-driver.hash │ │ └── libva-intel-driver.mk │ ├── libva-utils/ │ │ ├── Config.in │ │ ├── libva-utils.hash │ │ └── libva-utils.mk │ ├── libvdpau/ │ │ ├── Config.in │ │ ├── libvdpau.hash │ │ └── libvdpau.mk │ ├── libvips/ │ │ ├── Config.in │ │ ├── libvips.hash │ │ └── libvips.mk │ ├── libvirt/ │ │ ├── 90-kvm.rules │ │ ├── Config.in │ │ ├── S91virtlogd │ │ ├── S92libvirtd │ │ ├── libvirt.hash │ │ └── libvirt.mk │ ├── libvncserver/ │ │ ├── Config.in │ │ ├── libvncserver.hash │ │ └── libvncserver.mk │ ├── libvorbis/ │ │ ├── Config.in │ │ ├── libvorbis.hash │ │ └── libvorbis.mk │ ├── libvpx/ │ │ ├── 0001-vpx_mem-vpx_mem.h-Fix-compilation-with-uClibc.patch │ │ ├── Config.in │ │ ├── libvpx.hash │ │ └── libvpx.mk │ ├── libwebcam/ │ │ ├── Config.in │ │ └── libwebcam.mk │ ├── libwebsock/ │ │ ├── 0001-Switch-to-use-pkg-config-to-detect-libevent-and-open.patch │ │ ├── 0002-fix-ssl.patch │ │ ├── 0003-fix-incorrect-inline.patch │ │ ├── Config.in │ │ ├── libwebsock.hash │ │ └── libwebsock.mk │ ├── libwebsockets/ │ │ ├── Config.in │ │ ├── libwebsockets.hash │ │ └── libwebsockets.mk │ ├── libwpe/ │ │ ├── Config.in │ │ ├── libwpe.hash │ │ └── libwpe.mk │ ├── libxcrypt/ │ │ ├── Config.in │ │ ├── libxcrypt.hash │ │ └── libxcrypt.mk │ ├── libxkbcommon/ │ │ ├── Config.in │ │ ├── libxkbcommon.hash │ │ └── libxkbcommon.mk │ ├── libxml-parser-perl/ │ │ ├── libxml-parser-perl.hash │ │ └── libxml-parser-perl.mk │ ├── libxml2/ │ │ ├── Config.in │ │ ├── libxml2.hash │ │ └── libxml2.mk │ ├── libxmlpp/ │ │ ├── Config.in │ │ ├── libxmlpp.hash │ │ └── libxmlpp.mk │ ├── libxmlrpc/ │ │ ├── Config.in │ │ ├── libxmlrpc.hash │ │ └── libxmlrpc.mk │ ├── libxslt/ │ │ ├── 0001-Fix-xml2-config-check-in-configure-script.patch │ │ ├── Config.in │ │ ├── libxslt.hash │ │ └── libxslt.mk │ ├── libyaml/ │ │ ├── Config.in │ │ ├── libyaml.hash │ │ └── libyaml.mk │ ├── libyang/ │ │ ├── Config.in │ │ ├── libyang.hash │ │ └── libyang.mk │ ├── libyuv/ │ │ ├── 0001-i386-sse2.patch │ │ ├── Config.in │ │ ├── libyuv.hash │ │ └── libyuv.mk │ ├── libzip/ │ │ ├── 0001-Add-FindGnuTLS-cmake-from-3-17-3.patch │ │ ├── 0002-Include-limits.h-for-INT_MAX.patch │ │ ├── Config.in │ │ ├── libzip.hash │ │ └── libzip.mk │ ├── libzlib/ │ │ ├── libzlib.hash │ │ └── libzlib.mk │ ├── lightning/ │ │ ├── 0001-include-Makefile.am-don-t-install-lightning.h-twice.patch │ │ ├── Config.in │ │ ├── lightning.hash │ │ └── lightning.mk │ ├── lighttpd/ │ │ ├── 0001-Fix-default-config-file.patch │ │ ├── Config.in │ │ ├── S50lighttpd │ │ ├── lighttpd.hash │ │ ├── lighttpd.mk │ │ └── lighttpd_tmpfiles.conf │ ├── linenoise/ │ │ ├── Config.in │ │ ├── linenoise.hash │ │ └── linenoise.mk │ ├── linknx/ │ │ ├── 0001-configure-ac-tweak-CPPUNIT-conditional.patch │ │ ├── 0002-src-Makefile.am-fix-linking-with-log4cpp.patch │ │ ├── Config.in │ │ ├── linknx.hash │ │ └── linknx.mk │ ├── links/ │ │ ├── Config.in │ │ ├── links.hash │ │ └── links.mk │ ├── linphone/ │ │ ├── 0001-src-core-paths-paths.cpp-fix-powerpc-build.patch │ │ ├── Config.in │ │ ├── linphone.hash │ │ └── linphone.mk │ ├── linux-backports/ │ │ ├── Config.in │ │ ├── linux-backports.hash │ │ └── linux-backports.mk │ ├── linux-firmware/ │ │ ├── Config.in │ │ ├── linux-firmware.hash │ │ └── linux-firmware.mk │ ├── linux-fusion/ │ │ ├── 0001-fix-for-linux-4-and-above.patch │ │ ├── 0002-Fix-mismatched-conversion-spec-and-value-in-printk.patch │ │ ├── 0003-Fix-fusion-Unknown-symbol-tasklist_lock-err-0.patch │ │ ├── 0004-Port-one-one_udp.c-to-Linux-4.1.patch │ │ ├── 40-fusion.rules │ │ ├── Config.in │ │ ├── linux-fusion.hash │ │ └── linux-fusion.mk │ ├── linux-headers/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ └── linux-headers.mk │ ├── linux-pam/ │ │ ├── 0001-configure-test-a-o-is-not-POSIX.patch │ │ ├── 0002-Remove-support-for-legacy-xcrypt.patch │ │ ├── 0003-configure.ac-fix-build-with-libxcrypt-and-uclibc-ng.patch │ │ ├── 0004-configure.ac-also-search-libcrypt-through-pkg-config.patch │ │ ├── Config.in │ │ ├── linux-pam.hash │ │ ├── linux-pam.mk │ │ ├── login.pam │ │ └── other.pam │ ├── linux-serial-test/ │ │ ├── Config.in │ │ ├── linux-serial-test.hash │ │ └── linux-serial-test.mk │ ├── linux-syscall-support/ │ │ ├── Config.in │ │ ├── linux-syscall-support.hash │ │ └── linux-syscall-support.mk │ ├── linux-tools/ │ │ ├── Config.in │ │ ├── S10hyperv │ │ ├── hypervfcopyd.service │ │ ├── hypervkvpd.service │ │ ├── hypervvssd.service │ │ ├── linux-tool-bpftool.mk.in │ │ ├── linux-tool-cpupower.mk.in │ │ ├── linux-tool-gpio.mk.in │ │ ├── linux-tool-hv.mk.in │ │ ├── linux-tool-iio.mk.in │ │ ├── linux-tool-pci.mk.in │ │ ├── linux-tool-perf.mk.in │ │ ├── linux-tool-selftests.mk.in │ │ ├── linux-tool-tmon.mk.in │ │ └── linux-tools.mk │ ├── linux-zigbee/ │ │ ├── 0001-test-serial-Remove-test-serial.patch │ │ ├── 0002-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch │ │ ├── Config.in │ │ ├── linux-zigbee.hash │ │ └── linux-zigbee.mk │ ├── linuxconsoletools/ │ │ ├── 0001-conditional-build.patch │ │ ├── Config.in │ │ ├── linuxconsoletools.hash │ │ └── linuxconsoletools.mk │ ├── linuxptp/ │ │ ├── 0001-missing.h-drop-clock_nanosleep-replacement.patch │ │ ├── Config.in │ │ ├── S65ptp4l │ │ ├── S66phc2sys │ │ ├── linuxptp.cfg │ │ ├── linuxptp.hash │ │ ├── linuxptp.mk │ │ ├── phc2sys.service │ │ └── ptp4l.service │ ├── liquid-dsp/ │ │ ├── Config.in │ │ ├── liquid-dsp.hash │ │ └── liquid-dsp.mk │ ├── lirc-tools/ │ │ ├── 0001-Fix-build-without-Python.patch │ │ ├── 0002-Fix-python-client-cross-compile.patch │ │ ├── 0003-python-pkg-Fix-lirc-version-detection-when-cross-com.patch │ │ ├── 0004-plugins-devinput.c-fix-build-with-musl-1.2.0.patch │ │ ├── Config.in │ │ ├── S25lircd │ │ ├── lirc-tools.hash │ │ └── lirc-tools.mk │ ├── lite/ │ │ ├── 0001-dfbspy-stat.patch │ │ ├── 0002-no-tests.patch │ │ ├── 0003-pkg-config.patch │ │ ├── Config.in │ │ ├── lite.hash │ │ └── lite.mk │ ├── live555/ │ │ ├── 0001-Add-a-pkg-config-file-for-the-shared-libraries.patch │ │ ├── Config.in │ │ ├── live555.hash │ │ └── live555.mk │ ├── ljlinenoise/ │ │ ├── Config.in │ │ ├── ljlinenoise.hash │ │ └── ljlinenoise.mk │ ├── ljsyscall/ │ │ ├── Config.in │ │ ├── ljsyscall.hash │ │ └── ljsyscall.mk │ ├── lksctp-tools/ │ │ ├── Config.in │ │ ├── lksctp-tools.hash │ │ └── lksctp-tools.mk │ ├── lld/ │ │ ├── Config.in.host │ │ ├── lld.hash │ │ └── lld.mk │ ├── lldpd/ │ │ ├── Config.in │ │ ├── S60lldpd │ │ ├── lldpd.hash │ │ └── lldpd.mk │ ├── llvm/ │ │ ├── 0001-nfc-Fix-missing-include.patch │ │ ├── Config.in │ │ ├── llvm.hash │ │ └── llvm.mk │ ├── lm-sensors/ │ │ ├── 0001-static-build.patch │ │ ├── 0002-no-host-ldconfig.patch │ │ ├── Config.in │ │ ├── lm-sensors.hash │ │ └── lm-sensors.mk │ ├── lmbench/ │ │ ├── 0001-scripts-build-use-bin-bash-as-shell.patch │ │ ├── 0002-src-Makefile-add-lmbench-to-list-of-executables.patch │ │ ├── 0003-TOO_LONG-100-usec-to-prevent-memsize-from-timingout-.patch │ │ ├── 0004-Fix-garbage-pointer-for-lat_rpc-S-localhost.patch │ │ ├── Config.in │ │ ├── lmbench.hash │ │ └── lmbench.mk │ ├── localedef/ │ │ ├── 2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/ │ │ │ ├── 0001-HACK-only-build-and-install-localedef.patch │ │ │ ├── 0002-relax-dependency-on-GCC-to-4.8-and-binutils-to-2.24.patch │ │ │ └── localedef.hash │ │ ├── localedef.hash │ │ └── localedef.mk │ ├── lockdev/ │ │ ├── 0001-Makefile-install-static-library-and-headers-separate.patch │ │ ├── Config.in │ │ ├── lockdev.hash │ │ └── lockdev.mk │ ├── lockfile-progs/ │ │ ├── 0001-sus3v-legacy.patch │ │ ├── Config.in │ │ ├── lockfile-progs.hash │ │ └── lockfile-progs.mk │ ├── log4cplus/ │ │ ├── Config.in │ │ ├── log4cplus.hash │ │ └── log4cplus.mk │ ├── log4cpp/ │ │ ├── Config.in │ │ ├── log4cpp.hash │ │ └── log4cpp.mk │ ├── log4cxx/ │ │ ├── 0001-LOGCXX-528.patch │ │ ├── Config.in │ │ ├── log4cxx.hash │ │ └── log4cxx.mk │ ├── log4qt/ │ │ ├── Config.in │ │ ├── log4qt.hash │ │ └── log4qt.mk │ ├── logrotate/ │ │ ├── Config.in │ │ ├── logrotate.conf │ │ ├── logrotate.hash │ │ └── logrotate.mk │ ├── logsurfer/ │ │ ├── Config.in │ │ ├── logsurfer.hash │ │ └── logsurfer.mk │ ├── lpc3250loader/ │ │ ├── Config.in.host │ │ ├── lpc3250loader.hash │ │ └── lpc3250loader.mk │ ├── lpeg/ │ │ ├── Config.in │ │ ├── lpeg.hash │ │ └── lpeg.mk │ ├── lpty/ │ │ ├── Config.in │ │ ├── lpty.hash │ │ └── lpty.mk │ ├── lrandom/ │ │ ├── Config.in │ │ ├── lrandom.hash │ │ └── lrandom.mk │ ├── lrzip/ │ │ ├── Config.in │ │ ├── lrzip.hash │ │ └── lrzip.mk │ ├── lrzsz/ │ │ ├── Config.in │ │ ├── lrzsz.hash │ │ └── lrzsz.mk │ ├── lshw/ │ │ ├── 0001-Fix-musl-build-basename-is-in-libgen.h.patch │ │ ├── 0002-Fix-musl-build-wrong-usage-of-LONG_BIT.patch │ │ ├── Config.in │ │ ├── lshw.hash │ │ └── lshw.mk │ ├── lsof/ │ │ ├── 0001-makefile.patch │ │ ├── 0002-remove-susvlegacy-funcs.patch │ │ ├── 0003-override-cflags.patch │ │ ├── Config.in │ │ ├── lsof.hash │ │ └── lsof.mk │ ├── lsqlite3/ │ │ ├── Config.in │ │ ├── lsqlite3.hash │ │ └── lsqlite3.mk │ ├── lsscsi/ │ │ ├── Config.in │ │ ├── lsscsi.hash │ │ └── lsscsi.mk │ ├── lsuio/ │ │ ├── Config.in │ │ ├── lsuio.hash │ │ └── lsuio.mk │ ├── ltp-testsuite/ │ │ ├── 0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch │ │ ├── 0002-lib-fix-MemAvailable-parsing.patch │ │ ├── 0003-lapi-rtnetlink.h-Fix-include-guards.patch │ │ ├── 0004-lapi-Create-if_addr.h-and-reuse-it-in-rtnetlink.h.patch │ │ ├── 0005-lapi-if_addr.h-Define-IFA_FLAGS.patch │ │ ├── Config.in │ │ ├── ltp-testsuite.hash │ │ └── ltp-testsuite.mk │ ├── ltrace/ │ │ ├── 0001-arm-plt.patch │ │ ├── 0002-sparc-add-missing-library.h-include.patch │ │ ├── 0003-configure.ac-fix-autoreconf-with-autoconf-2.70.patch │ │ ├── Config.in │ │ ├── ltrace.hash │ │ └── ltrace.mk │ ├── ltris/ │ │ ├── 0001-fix-build-with-gcc-4.8.patch │ │ ├── Config.in │ │ ├── ltris.hash │ │ └── ltris.mk │ ├── lttng-babeltrace/ │ │ ├── 0001-tests-lib-Makefile.am-remove-unneeded-static-flag.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── lttng-babeltrace.hash │ │ └── lttng-babeltrace.mk │ ├── lttng-libust/ │ │ ├── Config.in │ │ ├── lttng-libust.hash │ │ └── lttng-libust.mk │ ├── lttng-modules/ │ │ ├── Config.in │ │ ├── lttng-modules.hash │ │ └── lttng-modules.mk │ ├── lttng-tools/ │ │ ├── 0001-configure.ac-add-disable-tests.patch │ │ ├── Config.in │ │ ├── lttng-tools.hash │ │ └── lttng-tools.mk │ ├── lua/ │ │ ├── 5.1.5/ │ │ │ ├── 0001-root-path.patch │ │ │ ├── 0002-shared-libs-for-lua.patch │ │ │ ├── 0011-linenoise.patch │ │ │ ├── 0012-fix-reader-at-eoz.patch │ │ │ └── lua.hash │ │ ├── 5.3.6/ │ │ │ ├── 0001-root-path.patch │ │ │ ├── 0002-shared-libs-for-lua.patch │ │ │ ├── 0003-linenoise.patch │ │ │ └── lua.hash │ │ ├── 5.4.3/ │ │ │ ├── 0001-root-path.patch │ │ │ ├── 0002-shared-libs-for-lua.patch │ │ │ ├── 0011-linenoise.patch │ │ │ └── lua.hash │ │ ├── Config.in │ │ ├── lua.mk │ │ └── lua.pc.in │ ├── lua-augeas/ │ │ ├── Config.in │ │ ├── lua-augeas.hash │ │ └── lua-augeas.mk │ ├── lua-basexx/ │ │ ├── Config.in │ │ ├── lua-basexx.hash │ │ └── lua-basexx.mk │ ├── lua-binaryheap/ │ │ ├── Config.in │ │ ├── lua-binaryheap.hash │ │ └── lua-binaryheap.mk │ ├── lua-bit32/ │ │ ├── Config.in │ │ ├── lua-bit32.hash │ │ └── lua-bit32.mk │ ├── lua-cjson/ │ │ ├── Config.in │ │ ├── lua-cjson.hash │ │ └── lua-cjson.mk │ ├── lua-coat/ │ │ ├── Config.in │ │ ├── lua-coat.hash │ │ └── lua-coat.mk │ ├── lua-coatpersistent/ │ │ ├── Config.in │ │ ├── lua-coatpersistent.hash │ │ └── lua-coatpersistent.mk │ ├── lua-codegen/ │ │ ├── Config.in │ │ ├── lua-codegen.hash │ │ └── lua-codegen.mk │ ├── lua-compat53/ │ │ ├── Config.in │ │ ├── lua-compat53.hash │ │ └── lua-compat53.mk │ ├── lua-cqueues/ │ │ ├── Config.in │ │ ├── lua-cqueues.hash │ │ └── lua-cqueues.mk │ ├── lua-csnappy/ │ │ ├── Config.in │ │ ├── lua-csnappy.hash │ │ └── lua-csnappy.mk │ ├── lua-curl/ │ │ ├── Config.in │ │ ├── lua-curl.hash │ │ └── lua-curl.mk │ ├── lua-datafile/ │ │ ├── Config.in │ │ ├── lua-datafile.hash │ │ └── lua-datafile.mk │ ├── lua-ev/ │ │ ├── Config.in │ │ ├── lua-ev.hash │ │ └── lua-ev.mk │ ├── lua-fifo/ │ │ ├── Config.in │ │ ├── lua-fifo.hash │ │ └── lua-fifo.mk │ ├── lua-flu/ │ │ ├── Config.in │ │ ├── lua-flu.hash │ │ └── lua-flu.mk │ ├── lua-gd/ │ │ ├── 0001-Protect-declaration-of-LgdImageCreateFromPng-with-GD.patch │ │ ├── Config.in │ │ ├── lua-gd.hash │ │ └── lua-gd.mk │ ├── lua-http/ │ │ ├── Config.in │ │ ├── lua-http.hash │ │ └── lua-http.mk │ ├── lua-iconv/ │ │ ├── Config.in │ │ ├── lua-iconv.hash │ │ └── lua-iconv.mk │ ├── lua-livr/ │ │ ├── Config.in │ │ ├── lua-livr.hash │ │ └── lua-livr.mk │ ├── lua-livr-extra/ │ │ ├── Config.in │ │ ├── lua-livr-extra.hash │ │ └── lua-livr-extra.mk │ ├── lua-lpeg-patterns/ │ │ ├── Config.in │ │ ├── lua-lpeg-patterns.hash │ │ └── lua-lpeg-patterns.mk │ ├── lua-lunitx/ │ │ ├── Config.in │ │ ├── lua-lunitx.hash │ │ └── lua-lunitx.mk │ ├── lua-lunix/ │ │ ├── 0001-fix-with-uClibc.patch │ │ ├── 0002-remove-link-with-librt.patch │ │ ├── 0003-fix-sysctl-detection.patch │ │ ├── Config.in │ │ ├── lua-lunix.hash │ │ └── lua-lunix.mk │ ├── lua-lyaml/ │ │ ├── Config.in │ │ ├── lua-lyaml.hash │ │ └── lua-lyaml.mk │ ├── lua-markdown/ │ │ ├── Config.in │ │ ├── lua-markdown.hash │ │ └── lua-markdown.mk │ ├── lua-messagepack/ │ │ ├── Config.in │ │ ├── lua-messagepack.hash │ │ └── lua-messagepack.mk │ ├── lua-msgpack-native/ │ │ ├── Config.in │ │ ├── lua-msgpack-native.hash │ │ └── lua-msgpack-native.mk │ ├── lua-periphery/ │ │ ├── Config.in │ │ ├── lua-periphery.hash │ │ └── lua-periphery.mk │ ├── lua-resty-http/ │ │ ├── Config.in │ │ ├── lua-resty-http.hash │ │ └── lua-resty-http.mk │ ├── lua-rotas/ │ │ ├── Config.in │ │ ├── lua-rotas.hash │ │ └── lua-rotas.mk │ ├── lua-sailor/ │ │ ├── Config.in │ │ ├── lua-sailor.hash │ │ └── lua-sailor.mk │ ├── lua-sdl2/ │ │ ├── 0001-Do-not-reference-host-directory-for-headers.patch │ │ ├── 0002-CMakeLists-do-not-require-C.patch │ │ ├── Config.in │ │ ├── lua-sdl2.hash │ │ └── lua-sdl2.mk │ ├── lua-silva/ │ │ ├── Config.in │ │ ├── lua-silva.hash │ │ └── lua-silva.mk │ ├── lua-std-debug/ │ │ ├── Config.in │ │ ├── lua-std-debug.hash │ │ └── lua-std-debug.mk │ ├── lua-std-normalize/ │ │ ├── Config.in │ │ ├── lua-std-normalize.hash │ │ └── lua-std-normalize.mk │ ├── lua-stdlib/ │ │ ├── Config.in │ │ ├── lua-stdlib.hash │ │ └── lua-stdlib.mk │ ├── lua-testmore/ │ │ ├── Config.in │ │ ├── lua-testmore.hash │ │ └── lua-testmore.mk │ ├── lua-utf8/ │ │ ├── Config.in │ │ ├── lua-utf8.hash │ │ └── lua-utf8.mk │ ├── lua-valua/ │ │ ├── Config.in │ │ ├── lua-valua.hash │ │ └── lua-valua.mk │ ├── lua-zlib/ │ │ ├── Config.in │ │ ├── lua-zlib.hash │ │ └── lua-zlib.mk │ ├── luabitop/ │ │ ├── Config.in │ │ ├── luabitop.hash │ │ └── luabitop.mk │ ├── luadbi/ │ │ ├── Config.in │ │ ├── luadbi.hash │ │ └── luadbi.mk │ ├── luadbi-sqlite3/ │ │ ├── Config.in │ │ ├── luadbi-sqlite3.hash │ │ └── luadbi-sqlite3.mk │ ├── luaexpat/ │ │ ├── 0001-restore-getcurrentbytecount.patch │ │ ├── Config.in │ │ ├── luaexpat.hash │ │ └── luaexpat.mk │ ├── luaexpatutils/ │ │ ├── Config.in │ │ ├── luaexpatutils.hash │ │ └── luaexpatutils.mk │ ├── luafilesystem/ │ │ ├── Config.in │ │ ├── luafilesystem.hash │ │ └── luafilesystem.mk │ ├── luainterpreter/ │ │ ├── Config.in │ │ └── luainterpreter.mk │ ├── luajit/ │ │ ├── 0001-no-bin-symlink.patch │ │ ├── 0002-install-inc.patch │ │ ├── Config.in │ │ ├── luajit.hash │ │ └── luajit.mk │ ├── luajson/ │ │ ├── Config.in │ │ ├── luajson.hash │ │ └── luajson.mk │ ├── lualdap/ │ │ ├── Config.in │ │ ├── lualdap.hash │ │ └── lualdap.mk │ ├── lualogging/ │ │ ├── Config.in │ │ ├── lualogging.hash │ │ └── lualogging.mk │ ├── luaossl/ │ │ ├── Config.in │ │ ├── luaossl.hash │ │ └── luaossl.mk │ ├── luaposix/ │ │ ├── Config.in │ │ ├── luaposix.hash │ │ └── luaposix.mk │ ├── luarocks/ │ │ ├── buildroot.lua │ │ ├── luarocks.hash │ │ └── luarocks.mk │ ├── luasec/ │ │ ├── Config.in │ │ ├── luasec.hash │ │ └── luasec.mk │ ├── luasocket/ │ │ ├── Config.in │ │ ├── luasocket.hash │ │ └── luasocket.mk │ ├── luasql-sqlite3/ │ │ ├── Config.in │ │ ├── luasql-sqlite3.hash │ │ └── luasql-sqlite3.mk │ ├── luasyslog/ │ │ ├── 0001-remove-AX_LUA_LIBS.patch │ │ ├── Config.in │ │ ├── luasyslog.hash │ │ └── luasyslog.mk │ ├── lugaru/ │ │ ├── 0001-ImageIO-fix-invalid-conversion.patch │ │ ├── 0002-Fix-mismatched-usage-length-build-fail-on-g.patch │ │ ├── Config.in │ │ ├── lugaru.hash │ │ └── lugaru.mk │ ├── luksmeta/ │ │ ├── Config.in │ │ ├── luksmeta.hash │ │ └── luksmeta.mk │ ├── lutok/ │ │ ├── Config.in │ │ ├── lutok.hash │ │ └── lutok.mk │ ├── luv/ │ │ ├── Config.in │ │ ├── luv.hash │ │ └── luv.mk │ ├── luvi/ │ │ ├── Config.in │ │ ├── luvi.hash │ │ └── luvi.mk │ ├── lvm2/ │ │ ├── Config.in │ │ ├── lvm2.hash │ │ └── lvm2.mk │ ├── lxc/ │ │ ├── Config.in │ │ ├── lxc.hash │ │ └── lxc.mk │ ├── lynx/ │ │ ├── Config.in │ │ ├── lynx.hash │ │ └── lynx.mk │ ├── lz4/ │ │ ├── 0001-Fix-potential-memory-corruption-with-negative-memmov.patch │ │ ├── Config.in │ │ ├── lz4.hash │ │ └── lz4.mk │ ├── lzip/ │ │ ├── Config.in │ │ ├── lzip.hash │ │ └── lzip.mk │ ├── lzlib/ │ │ ├── Config.in │ │ ├── lzlib.hash │ │ └── lzlib.mk │ ├── lzma/ │ │ ├── 0001-Remove-static-from-LDFLAGS.patch │ │ ├── lzma.hash │ │ └── lzma.mk │ ├── lzo/ │ │ ├── Config.in │ │ ├── lzo.hash │ │ └── lzo.mk │ ├── lzop/ │ │ ├── 0001-build-with-gcc6.patch │ │ ├── 0002-use-static-inlines-as-the-external-inline-definition.patch │ │ ├── Config.in │ │ ├── lzop.hash │ │ └── lzop.mk │ ├── m4/ │ │ ├── m4.hash │ │ └── m4.mk │ ├── macchanger/ │ │ ├── 0001-Fix-missing-include-for-caddr_t.patch │ │ ├── Config.in │ │ ├── macchanger.hash │ │ └── macchanger.mk │ ├── madplay/ │ │ ├── 0001-switch-to-new-alsa-api.patch │ │ ├── 0002-configure-ac-automake-foreign.patch │ │ ├── 0003-configure-ac-use-pkg-config-to-find-id3tag.patch │ │ ├── 0004-configure-ac-call-AM_MKINSTALLDIRS.patch │ │ ├── Config.in │ │ ├── madplay.hash │ │ └── madplay.mk │ ├── make/ │ │ ├── 0001-configure.ac-Support-GLIBC-glob-interface-version-2.patch │ │ ├── 0001-glob-Do-not-assume-glibc-glob-internals.patch │ │ ├── Config.in │ │ ├── make.hash │ │ └── make.mk │ ├── makedevs/ │ │ ├── README │ │ ├── makedevs.c │ │ └── makedevs.mk │ ├── makedumpfile/ │ │ ├── 0001-PATCH-Define-PN_XNUM-if-missing.patch │ │ ├── Config.in │ │ ├── makedumpfile.hash │ │ └── makedumpfile.mk │ ├── mali-t76x/ │ │ ├── Config.in │ │ ├── egl.pc │ │ ├── glesv2.pc │ │ ├── mali-t76x.hash │ │ └── mali-t76x.mk │ ├── mariadb/ │ │ ├── 0001-add-extra-check-for-librt.patch │ │ ├── S97mysqld │ │ ├── mariadb.hash │ │ ├── mariadb.mk │ │ └── mysqld.service │ ├── matchbox/ │ │ ├── 0001-defaulttheme.patch │ │ ├── 0002-src-Fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── matchbox.hash │ │ └── matchbox.mk │ ├── matchbox-common/ │ │ ├── Config.in │ │ ├── matchbox-common.hash │ │ └── matchbox-common.mk │ ├── matchbox-desktop/ │ │ ├── Config.in │ │ ├── matchbox-desktop.hash │ │ └── matchbox-desktop.mk │ ├── matchbox-fakekey/ │ │ ├── Config.in │ │ ├── matchbox-fakekey.hash │ │ └── matchbox-fakekey.mk │ ├── matchbox-keyboard/ │ │ ├── Config.in │ │ ├── matchbox-keyboard.hash │ │ ├── matchbox-keyboard.mk │ │ └── mb-applet-kbd-wrapper.sh │ ├── matchbox-lib/ │ │ ├── 0001-index-is-legacy.patch │ │ ├── 0002-libpng15.patch │ │ ├── 0003-include-setjmp-h.patch │ │ ├── Config.in │ │ ├── matchbox-lib.hash │ │ └── matchbox-lib.mk │ ├── matchbox-panel/ │ │ ├── 0001-index-is-legacy.patch │ │ ├── 0002-mb-applet-wireless.patch │ │ ├── 0003-mb-applet-battery.patch │ │ ├── Config.in │ │ ├── matchbox-panel.hash │ │ └── matchbox-panel.mk │ ├── matchbox-startup-monitor/ │ │ ├── 0001-true-false.patch │ │ ├── Config.in │ │ ├── matchbox-startup-monitor.hash │ │ └── matchbox-startup-monitor.mk │ ├── matio/ │ │ ├── Config.in │ │ ├── matio.hash │ │ └── matio.mk │ ├── mawk/ │ │ ├── Config.in │ │ ├── mawk.hash │ │ └── mawk.mk │ ├── mbedtls/ │ │ ├── 0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch │ │ ├── Config.in │ │ ├── mbedtls.hash │ │ └── mbedtls.mk │ ├── mbpfan/ │ │ ├── Config.in │ │ ├── mbpfan.hash │ │ └── mbpfan.mk │ ├── mbuffer/ │ │ ├── Config.in │ │ ├── mbuffer.hash │ │ └── mbuffer.mk │ ├── mc/ │ │ ├── Config.in │ │ ├── mc.hash │ │ └── mc.mk │ ├── mcelog/ │ │ ├── Config.in │ │ ├── mcelog.hash │ │ └── mcelog.mk │ ├── mdadm/ │ │ ├── 0001-add-install-targets-for-mdadm-and-mdmon.patch │ │ ├── 0002-mdadm.h-include-sysmacros.h-unconditionally.patch │ │ ├── Config.in │ │ ├── mdadm.hash │ │ └── mdadm.mk │ ├── mdevd/ │ │ ├── Config.in │ │ ├── mdevd.hash │ │ └── mdevd.mk │ ├── mediastreamer/ │ │ ├── 0001-src-videofilters-nowebcam.c-fix-build-without-ffmpeg.patch │ │ ├── 0002-Use-AV_INPUT_BUFFER_PADDING_SIZE-to-determine-paddin.patch │ │ ├── Config.in │ │ ├── mediastreamer.hash │ │ └── mediastreamer.mk │ ├── memcached/ │ │ ├── Config.in │ │ ├── memcached.hash │ │ └── memcached.mk │ ├── memstat/ │ │ ├── 0001-PATH_MAX.patch │ │ ├── Config.in │ │ ├── memstat.hash │ │ └── memstat.mk │ ├── memtest86/ │ │ ├── Config.in │ │ ├── memtest86.hash │ │ └── memtest86.mk │ ├── memtester/ │ │ ├── Config.in │ │ ├── memtester.hash │ │ └── memtester.mk │ ├── memtool/ │ │ ├── Config.in │ │ ├── memtool.hash │ │ └── memtool.mk │ ├── mender/ │ │ ├── Config.in │ │ ├── S42mender │ │ ├── artifact_info │ │ ├── device_type │ │ ├── mender-client.service │ │ ├── mender.conf │ │ ├── mender.hash │ │ ├── mender.mk │ │ ├── readme.txt │ │ └── server.crt │ ├── mender-artifact/ │ │ ├── Config.in.host │ │ ├── mender-artifact.hash │ │ └── mender-artifact.mk │ ├── mender-grubenv/ │ │ ├── Config.in │ │ ├── mender-grubenv.hash │ │ └── mender-grubenv.mk │ ├── menu-cache/ │ │ ├── 0001-Support-gcc10-compilation.patch │ │ ├── Config.in │ │ ├── menu-cache.hash │ │ └── menu-cache.mk │ ├── mesa3d/ │ │ ├── 0001-c99_math-import-isinf-for-uclibc-based-toolchains.patch │ │ ├── 0002-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.patch │ │ ├── 0003-vc4-add-meson-option-to-disable-optional-neon-suppor.patch │ │ ├── 0004-src-util-rand_xor-Include-stddef.h-to-fix-build-erro.patch │ │ ├── 0005-src-util-futex.h-fix-build-on-32-bit-architectures-u.patch │ │ ├── Config.in │ │ ├── mesa3d.hash │ │ └── mesa3d.mk │ ├── mesa3d-demos/ │ │ ├── 0001-demos-makes-opengl-an-optional-component.patch │ │ ├── Config.in │ │ ├── mesa3d-demos.hash │ │ └── mesa3d-demos.mk │ ├── mesa3d-headers/ │ │ ├── Config.in │ │ ├── dri.pc │ │ └── mesa3d-headers.mk │ ├── meson/ │ │ ├── 0001-Prefer-ext-static-libs-when-default-library-static.patch │ │ ├── 0002-mesonbuild-dependencies-base.py-add-pkg_config_stati.patch │ │ ├── cross-compilation.conf.in │ │ ├── meson.hash │ │ └── meson.mk │ ├── meson-tools/ │ │ ├── 0001-amlbootenc-gxl-remove-non-std-C-convention-in-for.patch │ │ ├── Config.in.host │ │ ├── meson-tools.hash │ │ └── meson-tools.mk │ ├── metacity/ │ │ ├── 0001-add-libm-reference.patch │ │ ├── 0002-gconf.patch │ │ ├── 0003-mag-add-libm-reference.patch │ │ ├── Config.in │ │ ├── Xsession │ │ ├── metacity.hash │ │ └── metacity.mk │ ├── mfgtools/ │ │ ├── 0001-lnx_def.h-fix-conflicting-declaration-of-__time64_t.patch │ │ ├── Config.in.host │ │ ├── mfgtools.hash │ │ ├── mfgtools.mk │ │ └── readme.txt │ ├── mfoc/ │ │ ├── Config.in │ │ ├── mfoc.hash │ │ └── mfoc.mk │ ├── mg/ │ │ ├── Config.in │ │ ├── mg.hash │ │ └── mg.mk │ ├── micropython/ │ │ ├── Config.in │ │ ├── micropython.hash │ │ └── micropython.mk │ ├── micropython-lib/ │ │ ├── Config.in │ │ ├── micropython-lib.hash │ │ └── micropython-lib.mk │ ├── midori/ │ │ ├── 0001-fix-bug-1492932.patch │ │ ├── 0002-gcr-for-x11-only.patch │ │ ├── Config.in │ │ ├── midori.hash │ │ └── midori.mk │ ├── mii-diag/ │ │ ├── 0001-strchr.patch │ │ ├── Config.in │ │ ├── mii-diag.hash │ │ └── mii-diag.mk │ ├── mimic/ │ │ ├── 0001-Fix-linking-on-gcc-10.2.0-or-newer.patch │ │ ├── Config.in │ │ ├── mimic.hash │ │ └── mimic.mk │ ├── minetest/ │ │ ├── Config.in │ │ ├── minetest.hash │ │ └── minetest.mk │ ├── minetest-game/ │ │ ├── Config.in │ │ ├── minetest-game.hash │ │ └── minetest-game.mk │ ├── mini-snmpd/ │ │ ├── 0001-linux.c-fix-musl-build.patch │ │ ├── Config.in │ │ ├── mini-snmpd │ │ ├── mini-snmpd.hash │ │ └── mini-snmpd.mk │ ├── minicom/ │ │ ├── Config.in │ │ ├── minicom.hash │ │ └── minicom.mk │ ├── minidlna/ │ │ ├── Config.in │ │ ├── S60minidlnad │ │ ├── minidlna.hash │ │ ├── minidlna.mk │ │ └── minidlnad.service │ ├── minimodem/ │ │ ├── Config.in │ │ ├── minimodem.hash │ │ └── minimodem.mk │ ├── minissdpd/ │ │ ├── Config.in │ │ ├── S50minissdpd │ │ ├── minissdpd.hash │ │ ├── minissdpd.mk │ │ └── minissdpd.service │ ├── minizip/ │ │ ├── Config.in │ │ ├── minizip.hash │ │ └── minizip.mk │ ├── miraclecast/ │ │ ├── Config.in │ │ ├── miraclecast.hash │ │ └── miraclecast.mk │ ├── mjpegtools/ │ │ ├── Config.in │ │ ├── mjpegtools.hash │ │ └── mjpegtools.mk │ ├── mjpg-streamer/ │ │ ├── Config.in │ │ ├── mjpg-streamer.hash │ │ └── mjpg-streamer.mk │ ├── mkpasswd/ │ │ ├── Config.in.host │ │ ├── config.h │ │ ├── mkpasswd.c │ │ ├── mkpasswd.mk │ │ ├── utils.c │ │ └── utils.h │ ├── mkpimage/ │ │ ├── mkpimage.c │ │ └── mkpimage.mk │ ├── mksh/ │ │ ├── Config.in │ │ ├── mksh.hash │ │ └── mksh.mk │ ├── mmc-utils/ │ │ ├── 0001-mmc_cmds.c-fix-build-with-gcc-4.9.patch │ │ ├── Config.in │ │ ├── mmc-utils.hash │ │ └── mmc-utils.mk │ ├── moarvm/ │ │ ├── Config.in │ │ ├── moarvm.hash │ │ └── moarvm.mk │ ├── mobile-broadband-provider-info/ │ │ ├── Config.in │ │ ├── mobile-broadband-provider-info.hash │ │ └── mobile-broadband-provider-info.mk │ ├── modem-manager/ │ │ ├── Config.in │ │ ├── S44modem-manager │ │ ├── modem-manager.hash │ │ └── modem-manager.mk │ ├── modplugtools/ │ │ ├── Config.in │ │ ├── modplugtools.hash │ │ └── modplugtools.mk │ ├── mongodb/ │ │ ├── 0001-ssl_manager.cpp-fix-build-with-gcc-7-and-fpermissive.patch │ │ ├── 0002-src-mongo-db-exec-plan_stats.h-fix-build-with-gcc-11.patch │ │ ├── 0003-SERVER-59459-With-glibc-2-34-MINSIGSTKSZ-is-no-longer-a-constant.patch │ │ ├── Config.in │ │ ├── mongodb.hash │ │ └── mongodb.mk │ ├── mongoose/ │ │ ├── Config.in │ │ ├── mongoose.hash │ │ └── mongoose.mk │ ├── mongrel2/ │ │ ├── 0001-Do-not-run-tests.patch │ │ ├── 0002-Fix-Makefiles-for-cross-compilation.patch │ │ ├── 0003-fix-multiple-definition-error-when-building-with-gcc10.patch │ │ ├── 0004-Support-urandom-inside-chroot.patch │ │ ├── Config.in │ │ ├── mongrel2.hash │ │ └── mongrel2.mk │ ├── monit/ │ │ ├── 0001-no-force-static.patch │ │ ├── Config.in │ │ ├── monit.hash │ │ └── monit.mk │ ├── mono/ │ │ ├── 0001-Fix-linkage-with-a-system-libatomic_ops-shared-library.patch │ │ ├── 0002-Ongoing-work-on-the-cmake-build.patch │ │ ├── Config.in │ │ ├── mono.hash │ │ └── mono.mk │ ├── mono-gtksharp3/ │ │ ├── 0001-Fixes-MONO_PROFILE_ENTER_LEAVE-undeclared.patch │ │ ├── 0002-Mono-compilation-error-branch.patch │ │ ├── Config.in │ │ ├── mono-gtksharp3.hash │ │ └── mono-gtksharp3.mk │ ├── monolite/ │ │ ├── monolite.hash │ │ └── monolite.mk │ ├── mosh/ │ │ ├── Config.in │ │ ├── mosh.hash │ │ └── mosh.mk │ ├── mosquitto/ │ │ ├── Config.in │ │ ├── S50mosquitto │ │ ├── mosquitto.hash │ │ └── mosquitto.mk │ ├── most/ │ │ ├── Config.in │ │ ├── most.hash │ │ └── most.mk │ ├── motion/ │ │ ├── 0001-Fix-build-with-GCC-10.patch │ │ ├── 0001-configure.ac-remove-po-Makefile.in.patch │ │ ├── 0001-without-nls.patch │ │ ├── 0002-enable-h264-omx-codec.patch │ │ ├── Config.in │ │ ├── S99motion │ │ ├── motion.hash │ │ ├── motion.mk │ │ └── motion.service │ ├── mp4v2/ │ │ ├── 0001-Fix-GCC7-build.patch │ │ ├── 0002-src-mp4track.cpp-replace-nullptr-by-NULL.patch │ │ ├── 0003-Static-cast-to-unsigned-int-for-cases.patch │ │ ├── Config.in │ │ ├── mp4v2.hash │ │ └── mp4v2.mk │ ├── mpc/ │ │ ├── Config.in │ │ ├── mpc.hash │ │ └── mpc.mk │ ├── mpd/ │ │ ├── 0001-src-event-meson.build-add-atomic-dependency-for-spar.patch │ │ ├── Config.in │ │ ├── S95mpd │ │ ├── mpd.conf │ │ ├── mpd.hash │ │ └── mpd.mk │ ├── mpd-mpc/ │ │ ├── Config.in │ │ ├── mpd-mpc.hash │ │ └── mpd-mpc.mk │ ├── mpdecimal/ │ │ ├── 0001-Add-minimal-support-for-enable-disable-shared-static.patch │ │ ├── Config.in │ │ ├── mpdecimal.hash │ │ └── mpdecimal.mk │ ├── mpfr/ │ │ ├── Config.in │ │ ├── mpfr.hash │ │ └── mpfr.mk │ ├── mpg123/ │ │ ├── Config.in │ │ ├── mpg123.hash │ │ └── mpg123.mk │ ├── mpir/ │ │ ├── 0001-mpn-arm-udiv.asm-workaround-binutils-bug-14887.patch │ │ ├── Config.in │ │ ├── mpir.hash │ │ └── mpir.mk │ ├── mpv/ │ │ ├── 0001-fix-powerpc64-altivec.patch │ │ ├── Config.in │ │ ├── mpv.hash │ │ └── mpv.mk │ ├── mraa/ │ │ ├── 0001-include-Declare-gVERSION-global-as-extern.patch │ │ ├── 0002-CMakeLists.txt-add-BUILDCPP-option.patch │ │ ├── Config.in │ │ ├── mraa.hash │ │ └── mraa.mk │ ├── mrouted/ │ │ ├── Config.in │ │ ├── S41mrouted │ │ ├── mrouted.hash │ │ └── mrouted.mk │ ├── mrp/ │ │ ├── Config.in │ │ ├── S65mrp │ │ ├── mrp.hash │ │ ├── mrp.mk │ │ └── mrp.service │ ├── msgpack/ │ │ ├── Config.in │ │ ├── msgpack.hash │ │ └── msgpack.mk │ ├── msmtp/ │ │ ├── Config.in │ │ ├── msmtp.hash │ │ └── msmtp.mk │ ├── msr-tools/ │ │ ├── Config.in │ │ ├── msr-tools.hash │ │ └── msr-tools.mk │ ├── mstpd/ │ │ ├── Config.in │ │ ├── mstpd.hash │ │ └── mstpd.mk │ ├── mtd/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── mtd.hash │ │ └── mtd.mk │ ├── mtdev/ │ │ ├── Config.in │ │ ├── mtdev.hash │ │ └── mtdev.mk │ ├── mtools/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── mtools.hash │ │ └── mtools.mk │ ├── mtr/ │ │ ├── Config.in │ │ ├── mtr.hash │ │ └── mtr.mk │ ├── multicat/ │ │ ├── Config.in │ │ ├── multicat.hash │ │ └── multicat.mk │ ├── multipath-tools/ │ │ ├── 0001-kpartx-libmultipath-use-pkg-config-to-get-path-to-he.patch │ │ ├── 0002-Makefile.inc-Enable-systemd-if-ENABLE_SYSTEMD-is-def.patch │ │ ├── Config.in │ │ ├── S60multipathd │ │ ├── multipath-tools.hash │ │ └── multipath-tools.mk │ ├── mupdf/ │ │ ├── 0001-Makefile-add-an-install_libs-target.patch │ │ ├── 0002-Bug-703366-Fix-double-free-of-object-during-linearization.patch │ │ ├── 0003-Bug-703791-Stay-within-hash-table-max-key-size-in-cached-color-converter.patch │ │ ├── 0004-Makefile-compile-hexdump.exe-with-HOSTCC.patch │ │ ├── Config.in │ │ ├── mupdf.hash │ │ └── mupdf.mk │ ├── murata-cyw-fw/ │ │ ├── Config.in │ │ ├── murata-cyw-fw.hash │ │ └── murata-cyw-fw.mk │ ├── musepack/ │ │ ├── 0001-shared.patch │ │ ├── 0002-cmake-use-the-standard-CMake-flag-to-drive-the-share.patch │ │ ├── 0003-include-fpu-control-with-glibc-only.patch │ │ ├── 0004-missing-sys-select.patch │ │ ├── 0005-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── musepack.hash │ │ └── musepack.mk │ ├── musl/ │ │ ├── 0001-avoid-kernel-if_ether.h.patch │ │ ├── 0002-package-musl-Make-scheduler-functions-Linux-compatib.patch │ │ ├── Config.in │ │ ├── musl.hash │ │ └── musl.mk │ ├── musl-compat-headers/ │ │ ├── Config.in │ │ ├── cdefs.h │ │ ├── musl-compat-headers.hash │ │ └── musl-compat-headers.mk │ ├── musl-fts/ │ │ ├── Config.in │ │ ├── musl-fts.hash │ │ └── musl-fts.mk │ ├── mutt/ │ │ ├── Config.in │ │ ├── mutt.hash │ │ └── mutt.mk │ ├── mxml/ │ │ ├── Config.in │ │ ├── mxml.hash │ │ └── mxml.mk │ ├── mxsldr/ │ │ ├── Config.in.host │ │ └── mxsldr.mk │ ├── mysql/ │ │ ├── Config.in │ │ └── mysql.mk │ ├── nano/ │ │ ├── 0001-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch │ │ ├── Config.in │ │ ├── nano.hash │ │ └── nano.mk │ ├── nanocom/ │ │ ├── 0001-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── nanocom.hash │ │ └── nanocom.mk │ ├── nanomsg/ │ │ ├── Config.in │ │ ├── nanomsg.hash │ │ └── nanomsg.mk │ ├── nasm/ │ │ ├── nasm.hash │ │ └── nasm.mk │ ├── nbd/ │ │ ├── Config.in │ │ ├── nbd.hash │ │ └── nbd.mk │ ├── ncdu/ │ │ ├── Config.in │ │ ├── ncdu.hash │ │ └── ncdu.mk │ ├── ncftp/ │ │ ├── 0001-fix-gcc-10.patch │ │ ├── Config.in │ │ ├── ncftp.hash │ │ └── ncftp.mk │ ├── ncmpc/ │ │ ├── 0001-meson.build-add-atomic-dependency-for-sparc.patch │ │ ├── 0002-meson.build-link-with-lintl-if-needed.patch │ │ ├── Config.in │ │ ├── ncmpc.hash │ │ └── ncmpc.mk │ ├── ncurses/ │ │ ├── 0001-gcc-5.x-MKlib_gen.patch │ │ ├── Config.in │ │ ├── ncurses.hash │ │ └── ncurses.mk │ ├── ndisc6/ │ │ ├── Config.in │ │ ├── ndisc6.hash │ │ └── ndisc6.mk │ ├── ne10/ │ │ ├── 0001-CMakeLists-don-t-hard-code-thumb-code-generation.patch │ │ ├── Config.in │ │ ├── ne10.hash │ │ └── ne10.mk │ ├── neard/ │ │ ├── Config.in │ │ ├── S53neard │ │ ├── neard.hash │ │ └── neard.mk │ ├── neardal/ │ │ ├── 0001-lib-neardal.h-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── neardal.hash │ │ └── neardal.mk │ ├── neofetch/ │ │ ├── Config.in │ │ ├── neofetch.hash │ │ └── neofetch.mk │ ├── neon/ │ │ ├── Config.in │ │ ├── neon.hash │ │ └── neon.mk │ ├── net-tools/ │ │ ├── Config.in │ │ ├── net-tools.hash │ │ └── net-tools.mk │ ├── netatalk/ │ │ ├── 0001-Fix-setting-of-LD_LIBRARY_FLAGS-shlibpath_var.patch │ │ ├── 0002-fix-ftbs-multiple-def-of-invalid_dircache_entries.patch │ │ ├── Config.in │ │ ├── S50netatalk │ │ ├── netatalk.hash │ │ └── netatalk.mk │ ├── netcalc/ │ │ ├── Config.in │ │ ├── netcalc.hash │ │ └── netcalc.mk │ ├── netcat/ │ │ ├── 0001-signed-bit-counting.patch │ │ ├── Config.in │ │ ├── netcat.hash │ │ └── netcat.mk │ ├── netcat-openbsd/ │ │ ├── Config.in │ │ ├── netcat-openbsd.hash │ │ └── netcat-openbsd.mk │ ├── netdata/ │ │ ├── Config.in │ │ ├── S60netdata │ │ ├── netdata.hash │ │ └── netdata.mk │ ├── netifrc/ │ │ ├── Config.in │ │ ├── netifrc.hash │ │ └── netifrc.mk │ ├── netopeer2/ │ │ ├── Config.in │ │ ├── S52netopeer2 │ │ ├── netopeer2.hash │ │ └── netopeer2.mk │ ├── netperf/ │ │ ├── 0001-src-nettest_omni.c-fix-compilation-with-GCC10.patch │ │ ├── Config.in │ │ ├── netperf.hash │ │ └── netperf.mk │ ├── netplug/ │ │ ├── 0001-makefile-flags.patch │ │ ├── 0002-add-missing-time-include.patch │ │ ├── 0003-remove-assert-fail.patch │ │ ├── Config.in │ │ ├── S29netplug │ │ ├── netplug-script │ │ ├── netplug.hash │ │ ├── netplug.mk │ │ └── netplug.service │ ├── netsniff-ng/ │ │ ├── 0001-Detect-libpcap-dependencies-using-pkg-config.patch │ │ ├── Config.in │ │ ├── netsniff-ng.hash │ │ └── netsniff-ng.mk │ ├── netsnmp/ │ │ ├── 0001-configure-static-linking-Fix-SSL-checks.patch │ │ ├── 0002-configure-Fix-lcrypto-lz-test.patch │ │ ├── 0003-configure-fix-AC_CHECK_FUNCS-EVP_sha224-EVP_sha384-..patch │ │ ├── 0004-configure-fix-AC_CHECK_FUNCS-TLS_method-TLSv1_method.patch │ │ ├── Config.in │ │ ├── S59snmpd │ │ ├── netsnmp.hash │ │ └── netsnmp.mk │ ├── netstat-nat/ │ │ ├── Config.in │ │ ├── netstat-nat.hash │ │ └── netstat-nat.mk │ ├── netsurf/ │ │ ├── 0001-avoid-system-perl-dependencies.patch │ │ ├── 0002-do-not-cross-compile-nsgenbind.patch │ │ ├── 0003-fix-compilation-without-curl.patch │ │ ├── 0004-framebuffer-Fix-internal-font-generated-source-for-GCC-10.patch │ │ ├── Config.in │ │ ├── netsurf.hash │ │ └── netsurf.mk │ ├── netsurf-buildsystem/ │ │ ├── netsurf-buildsystem.hash │ │ └── netsurf-buildsystem.mk │ ├── nettle/ │ │ ├── 0001-disable-testsuite-examples.patch │ │ ├── Config.in │ │ ├── nettle.hash │ │ └── nettle.mk │ ├── network-manager/ │ │ ├── Config.in │ │ ├── S45network-manager │ │ ├── network-manager.hash │ │ └── network-manager.mk │ ├── network-manager-openvpn/ │ │ ├── Config.in │ │ ├── network-manager-openvpn.hash │ │ └── network-manager-openvpn.mk │ ├── newt/ │ │ ├── Config.in │ │ ├── newt.hash │ │ └── newt.mk │ ├── nfacct/ │ │ ├── Config.in │ │ ├── nfacct.hash │ │ └── nfacct.mk │ ├── nfs-utils/ │ │ ├── 0001-nfsdcltrack-sqlite-Fix-printf-format.patch │ │ ├── 0002-nfsdcltrack-nfsdcltrack.c-Fix-printf-format.patch │ │ ├── 0003-nfsdcltrack-Use-uint64_t-instead-of-time_t.patch │ │ ├── Config.in │ │ ├── S60nfs │ │ ├── nfs-utils.hash │ │ ├── nfs-utils.mk │ │ ├── nfs-utils_env.sh │ │ └── nfs-utils_tmpfiles.conf │ ├── nftables/ │ │ ├── Config.in │ │ ├── nftables.hash │ │ └── nftables.mk │ ├── nghttp2/ │ │ ├── Config.in │ │ ├── nghttp2.hash │ │ └── nghttp2.mk │ ├── nginx/ │ │ ├── 0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch │ │ ├── 0002-auto-feature-add-mechanism-allowing-to-force-feature.patch │ │ ├── 0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch │ │ ├── 0004-auto-lib-libxslt-conf-use-pkg-config.patch │ │ ├── 0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch │ │ ├── 0006-auto-lib-openssl-conf-use-pkg-config.patch │ │ ├── 0007-auto-lib-libgd-conf-use-pkg-config.patch │ │ ├── 0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch │ │ ├── 0009-auto-os-linux-fix-build-with-libxcrypt.patch │ │ ├── 0010-Allow-forcing-of-endianness-for-cross-compilation.patch │ │ ├── Config.in │ │ ├── S50nginx │ │ ├── nginx.hash │ │ ├── nginx.logrotate │ │ ├── nginx.mk │ │ └── nginx.service │ ├── nginx-dav-ext/ │ │ ├── Config.in │ │ ├── nginx-dav-ext.hash │ │ └── nginx-dav-ext.mk │ ├── nginx-modsecurity/ │ │ ├── 0001-config-use-pkg-config.patch │ │ ├── Config.in │ │ ├── nginx-modsecurity.hash │ │ └── nginx-modsecurity.mk │ ├── nginx-naxsi/ │ │ ├── 0001-naxsi_src-naxsi_runtime.c-fix-build-without-x_forwar.patch │ │ ├── Config.in │ │ ├── nginx-naxsi.hash │ │ └── nginx-naxsi.mk │ ├── nginx-upload/ │ │ ├── Config.in │ │ ├── nginx-upload.hash │ │ └── nginx-upload.mk │ ├── ngircd/ │ │ ├── Config.in │ │ ├── ngircd.hash │ │ └── ngircd.mk │ ├── ngrep/ │ │ ├── 0001-Fix-typo-in-configure-in-when-testing-for-use_pcre.patch │ │ ├── 0002-Check-for-libnet_init-in-configure-in.patch │ │ ├── 0003-fix-disable-tcpkill.patch │ │ ├── Config.in │ │ ├── ngrep.hash │ │ └── ngrep.mk │ ├── nilfs-utils/ │ │ ├── 0001-nilfs_cleanerd-link-dynamically.patch │ │ ├── Config.in │ │ ├── nilfs-utils.hash │ │ └── nilfs-utils.mk │ ├── ninja/ │ │ ├── ninja.hash │ │ └── ninja.mk │ ├── nload/ │ │ ├── Config.in │ │ ├── nload.hash │ │ └── nload.mk │ ├── nmap/ │ │ ├── 0001-libdnet-wrapper-configure.patch │ │ ├── Config.in │ │ ├── nmap.hash │ │ └── nmap.mk │ ├── nmon/ │ │ ├── Config.in │ │ ├── nmon.hash │ │ └── nmon.mk │ ├── nodejs/ │ │ ├── 0001-add-qemu-wrapper-support.patch │ │ ├── 0001-check-if-uclibc-has-backtrace-support.patch │ │ ├── 0003-include-obj-name-in-shared-intermediate.patch │ │ ├── Config.in │ │ ├── nodejs.hash │ │ ├── nodejs.mk │ │ └── v8-qemu-wrapper.in │ ├── nodm/ │ │ ├── Config.in │ │ ├── S90nodm │ │ ├── nodm.hash │ │ ├── nodm.mk │ │ └── nodm.pam │ ├── noip/ │ │ ├── Config.in │ │ ├── noip.hash │ │ └── noip.mk │ ├── norm/ │ │ ├── 0001-protolib-drop-linux-version-check.patch │ │ ├── 0002-Use-print-as-function-call-for-Python3-compatibility.patch │ │ ├── 0003-Fix-mixed-tabs-spaces-in-protolib-wscript.patch │ │ ├── Config.in │ │ ├── norm.hash │ │ └── norm.mk │ ├── nss-mdns/ │ │ ├── Config.in │ │ ├── nss-mdns.hash │ │ └── nss-mdns.mk │ ├── nss-myhostname/ │ │ ├── Config.in │ │ ├── nss-myhostname.hash │ │ └── nss-myhostname.mk │ ├── nss-pam-ldapd/ │ │ ├── Config.in │ │ ├── S45nslcd │ │ ├── nslcd.service │ │ ├── nss-pam-ldapd.hash │ │ └── nss-pam-ldapd.mk │ ├── ntfs-3g/ │ │ ├── Config.in │ │ ├── ntfs-3g.hash │ │ └── ntfs-3g.mk │ ├── ntp/ │ │ ├── 0001-nano.patch │ │ ├── 0002-ntp-syscalls-fallback.patch │ │ ├── 0003-override-shell.patch │ │ ├── 0004-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch │ │ ├── Config.in │ │ ├── S48sntp │ │ ├── S49ntp │ │ ├── ntp.hash │ │ ├── ntp.mk │ │ ├── ntpd.etc.conf │ │ └── ntpd.service │ ├── numactl/ │ │ ├── 0001-Do-not-stringify-SYMVER-symbols.patch │ │ ├── 0002-link-with-latomic-if-needed.patch │ │ ├── Config.in │ │ ├── numactl.hash │ │ └── numactl.mk │ ├── nut/ │ │ ├── Config.in │ │ ├── nut.hash │ │ └── nut.mk │ ├── nuttcp/ │ │ ├── 0001-susv3-legacy.patch │ │ ├── Config.in │ │ ├── nuttcp.hash │ │ └── nuttcp.mk │ ├── nvidia-driver/ │ │ ├── 0001-use-LDFLAGS.patch │ │ ├── Config.in │ │ ├── egl.pc │ │ ├── gl.pc │ │ ├── nvidia-driver.hash │ │ └── nvidia-driver.mk │ ├── nvidia-modprobe/ │ │ ├── Config.in │ │ ├── nvidia-modprobe.hash │ │ └── nvidia-modprobe.mk │ ├── nvme/ │ │ ├── Config.in │ │ ├── nvme.hash │ │ └── nvme.mk │ ├── obsidian-cursors/ │ │ ├── Config.in │ │ ├── obsidian-cursors.hash │ │ └── obsidian-cursors.mk │ ├── ocf-linux/ │ │ ├── ocf-linux.hash │ │ └── ocf-linux.mk │ ├── ocrad/ │ │ ├── Config.in │ │ ├── ocrad.hash │ │ └── ocrad.mk │ ├── odb/ │ │ ├── 0001-tm.h-include-in-gcc.hxx-appears-to-be-no-longer-nece.patch │ │ ├── 0002-Remove-gratuitous-classes.patch │ │ ├── 0003-Initial-work-to-make-ODB-compatible-with-GCC-6.patch │ │ ├── 0004-Make-compilable-with-GCC-6-in-C-14-mode.patch │ │ ├── 0005-Fix-bug-in-GCC-6-input_location-translation.patch │ │ ├── 0006-Adapt-to-changes-in-GCC-8.patch │ │ ├── 0007-Switch-to-C-11-get-rid-of-auto_ptr-use.patch │ │ ├── 0008-Fix-GCC-8-adaptation-to-be-compatible-with-previous-.patch │ │ ├── 0009-Handle-namespace-aliases-when-parsing-GCC-tree.patch │ │ ├── 0010-Add-initial-support-for-GCC-9.patch │ │ ├── 0011-Adjust-to-changes-in-GCC-10.patch │ │ ├── Config.in.host │ │ ├── odb.hash │ │ └── odb.mk │ ├── odhcp6c/ │ │ ├── Config.in │ │ ├── odhcp6c.hash │ │ └── odhcp6c.mk │ ├── odhcploc/ │ │ ├── Config.in │ │ ├── odhcploc.hash │ │ └── odhcploc.mk │ ├── odroidc2-firmware/ │ │ ├── Config.in │ │ ├── odroidc2-firmware.hash │ │ └── odroidc2-firmware.mk │ ├── ofono/ │ │ ├── 0001-uclibc-backtrace.patch │ │ ├── 0002-fix-musl-compile.patch │ │ ├── Config.in │ │ ├── S46ofono │ │ ├── ofono.hash │ │ └── ofono.mk │ ├── ogre/ │ │ ├── 0001-CMake-Utils-PrecompiledHeader.cmake-Add-c-argument-t.patch │ │ ├── 0002-Checks-for-strtol_l-function.patch │ │ ├── Config.in │ │ ├── ogre.hash │ │ └── ogre.mk │ ├── olsr/ │ │ ├── 0001-olsrd-migrate-to-using-bison-3.7.1.patch │ │ ├── 0002-lib-pud-Makefile-fix-parallel-build.patch │ │ ├── 0003-pud-adapt-to-API-changes-in-gpsd-3-20.patch │ │ ├── 0004-pud-adapt-gpsdclient.c-to-new-gpsd-3.21.patch │ │ ├── 0005-lib-pud-src-gpsdclient.c-drop-handling-of-gpsdata-fi.patch │ │ ├── Config.in │ │ ├── S50olsr │ │ ├── olsr.hash │ │ ├── olsr.mk │ │ └── olsr.service │ ├── omap-u-boot-utils/ │ │ ├── Config.in.host │ │ ├── omap-u-boot-utils.hash │ │ └── omap-u-boot-utils.mk │ ├── omniorb/ │ │ ├── Config.in │ │ ├── omniorb.hash │ │ └── omniorb.mk │ ├── omxplayer/ │ │ ├── 0001-Update-Makefile-to-be-compatible-with-buildroot.patch │ │ ├── Config.in │ │ ├── omxplayer.hash │ │ └── omxplayer.mk │ ├── on2-8170-libs/ │ │ ├── Config.in │ │ ├── on2-8170-libs.hash │ │ └── on2-8170-libs.mk │ ├── on2-8170-modules/ │ │ ├── Config.in │ │ ├── on2-8170-modules.hash │ │ └── on2-8170-modules.mk │ ├── oniguruma/ │ │ ├── Config.in │ │ ├── oniguruma.hash │ │ └── oniguruma.mk │ ├── open-lldp/ │ │ ├── Config.in │ │ ├── open-lldp.hash │ │ └── open-lldp.mk │ ├── open-plc-utils/ │ │ ├── 0001-Remove-OWNER-and-GROUPS-parameters-to-install.patch │ │ ├── 0002-plc-plc.h-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── open-plc-utils.hash │ │ └── open-plc-utils.mk │ ├── open2300/ │ │ ├── 0001-fix-makefile.patch │ │ ├── Config.in │ │ ├── open2300.hash │ │ └── open2300.mk │ ├── open62541/ │ │ ├── 0001-CMakeLists.txt-project-only-contains-C-code.patch │ │ ├── 0002-arch-posix-CMakeLists.txt-fix-build-without-threads.patch │ │ ├── 0003-fix-core-Explicit-cast-to-avoid-compiler-warning.patch │ │ ├── 0004-CMakeLists.txt-add-UA_FORCE_WERROR.patch │ │ ├── Config.in │ │ ├── open62541.hash │ │ └── open62541.mk │ ├── openal/ │ │ ├── Config.in │ │ ├── openal.hash │ │ └── openal.mk │ ├── openblas/ │ │ ├── 0001-fix-gfortran-detection.patch │ │ ├── 0002-Makefile-fix-support-for-passing-FFLAGS-on-the-make-.patch │ │ ├── 0003-Makefile-also-consider-Os-when-determining-LAPACK_NO.patch │ │ ├── 0004-Makefile.system-don-t-specify-optimization-level-bui.patch │ │ ├── Config.in │ │ ├── openblas.hash │ │ └── openblas.mk │ ├── openbox/ │ │ ├── Config.in │ │ ├── openbox.hash │ │ └── openbox.mk │ ├── opencore-amr/ │ │ ├── Config.in │ │ ├── opencore-amr.hash │ │ └── opencore-amr.mk │ ├── opencv3/ │ │ ├── 0001-Use-the-one-argument-version-of-SetTotalBytesLimit.patch │ │ ├── Config.in │ │ ├── opencv3.hash │ │ └── opencv3.mk │ ├── opencv4/ │ │ ├── 0001-modules-videoio-src-cap_ffmpeg_impl.hpp-fix-build-wi.patch │ │ ├── Config.in │ │ ├── opencv4.hash │ │ └── opencv4.mk │ ├── openfpgaloader/ │ │ ├── Config.in │ │ ├── openfpgaloader.hash │ │ └── openfpgaloader.mk │ ├── opengl/ │ │ ├── Config.in │ │ ├── libegl/ │ │ │ ├── Config.in │ │ │ └── libegl.mk │ │ ├── libgbm/ │ │ │ ├── Config.in │ │ │ └── libgbm.mk │ │ ├── libgl/ │ │ │ ├── Config.in │ │ │ └── libgl.mk │ │ ├── libgles/ │ │ │ ├── Config.in │ │ │ └── libgles.mk │ │ ├── libopencl/ │ │ │ ├── Config.in │ │ │ └── libopencl.mk │ │ ├── libopenmax/ │ │ │ ├── Config.in │ │ │ └── libopenmax.mk │ │ ├── libopenvg/ │ │ │ ├── Config.in │ │ │ └── libopenvg.mk │ │ └── opengl.mk │ ├── openipmi/ │ │ ├── 0001-Avoid-searching-host-library-path.patch │ │ ├── Config.in │ │ ├── openipmi.hash │ │ └── openipmi.mk │ ├── openjdk/ │ │ ├── Config.in │ │ ├── openjdk.hash │ │ └── openjdk.mk │ ├── openjdk-bin/ │ │ ├── openjdk-bin.hash │ │ └── openjdk-bin.mk │ ├── openjpeg/ │ │ ├── 0001-thirdparty-tiff-append-flags-found-by-pkg-config-if-.patch │ │ ├── 0002-thirdparty-lcms2-append-flags-found-by-pkg-config-if.patch │ │ ├── 0003-CMakeLists.txt-Don-t-require-a-C-compiler.patch │ │ ├── 0004-Revert-Use-INC_DIR-for-OPENJPEG_INCLUDE_DIRS-fixes-u.patch │ │ ├── Config.in │ │ ├── openjpeg.hash │ │ └── openjpeg.mk │ ├── openlayers/ │ │ ├── Config.in │ │ ├── openlayers.hash │ │ └── openlayers.mk │ ├── openldap/ │ │ ├── 0001-fix_cross_strip.patch │ │ ├── 0002-fix-bignum.patch │ │ ├── 0003-disable-docs.patch │ │ ├── 0004-revert-ITS-3977-fix-libtool-static-behavior-to-match.patch │ │ ├── Config.in │ │ ├── openldap.hash │ │ └── openldap.mk │ ├── openmpi/ │ │ ├── Config.in │ │ ├── openmpi-mips32-fortran.cache │ │ ├── openmpi-mips64-fortran.cache │ │ ├── openmpi.hash │ │ └── openmpi.mk │ ├── openntpd/ │ │ ├── Config.in │ │ ├── S49ntp │ │ ├── ntpd.service │ │ ├── openntpd.hash │ │ └── openntpd.mk │ ├── openobex/ │ │ ├── Config.in │ │ ├── openobex.hash │ │ └── openobex.mk │ ├── openocd/ │ │ ├── 0001-configure-enable-build-on-uclinux.patch │ │ ├── 0002-configure.ac-fix-autoreconf-with-autoconf-2.70.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── openocd.hash │ │ └── openocd.mk │ ├── openpgm/ │ │ ├── 0001-Rename-openpgm-5.2.pc.in.patch │ │ ├── 0002-openpgm-pgm-checksum.c-fix-build-with-32-bits-MMX.patch │ │ ├── Config.in │ │ ├── openpgm.hash │ │ └── openpgm.mk │ ├── openpowerlink/ │ │ ├── 0001-install-the-stack-libraries-to-lib-subdirectory.patch │ │ ├── 0002-cmake-install-oplk-headers-files.patch │ │ ├── 0003-Add-top-level-CMakeLists.txt.patch │ │ ├── Config.in │ │ ├── openpowerlink.hash │ │ └── openpowerlink.mk │ ├── openrc/ │ │ ├── 0001-init.d-sysctl.in-add-support-for-busybox-sysctl.patch │ │ ├── 0002-sh-init.sh.Linux.in-change-run-lock-from-root-uucp-t.patch │ │ ├── 0003-init.d-agetty-replace-sbin-agetty-by-sbin-getty.patch │ │ ├── 0004-init.d-agetty-start-agetty-after-all-sevices.patch │ │ ├── 0005-runlevels-do-not-add-agetty.tty-1-6-if-MKSYSVINIT-ye.patch │ │ ├── Config.in │ │ ├── openrc.hash │ │ ├── openrc.mk │ │ └── sysv-rcs │ ├── openresolv/ │ │ ├── Config.in │ │ ├── openresolv.hash │ │ └── openresolv.mk │ ├── openssh/ │ │ ├── Config.in │ │ ├── S50sshd │ │ ├── openssh.hash │ │ ├── openssh.mk │ │ ├── sshd-sysusers.conf │ │ └── sshd.service │ ├── openssl/ │ │ ├── Config.in │ │ └── openssl.mk │ ├── openswan/ │ │ ├── Config.in │ │ ├── openswan.hash │ │ └── openswan.mk │ ├── opentracing-cpp/ │ │ ├── Config.in │ │ ├── opentracing-cpp.hash │ │ └── opentracing-cpp.mk │ ├── opentyrian/ │ │ ├── 0001-Move-definitions-that-don-t-need-to-be-exposed-from-opl-h-to-opl-c.patch │ │ ├── Config.in │ │ ├── opentyrian.hash │ │ └── opentyrian.mk │ ├── opentyrian-data/ │ │ ├── Config.in │ │ ├── opentyrian-data.hash │ │ └── opentyrian-data.mk │ ├── openvmtools/ │ │ ├── 0001-no_cflags_werror.patch │ │ ├── 0002-dont-force-cppflags.patch │ │ ├── 0003-Rename-poll-h-into-vm_poll-h-to-fix-build-failure-on-musl.patch │ │ ├── 0004-Remove-assumptions-about-glibc-being-only-libc-imple.patch │ │ ├── 0005-Use-configure-test-for-struct-timespec.patch │ │ ├── 0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch │ │ ├── 0007-Use-configure-to-test-for-feature-instead-of-platfor.patch │ │ ├── 0008-Use-configure-test-for-sys-stat.h-include.patch │ │ ├── 0009-Set-permissions-on-rules-file.patch │ │ ├── 0010-Change-DEVPATH-to-devpath.patch │ │ ├── 0011-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch │ │ ├── 0012-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch │ │ ├── Config.in │ │ ├── S10vmtoolsd │ │ ├── openvmtools.hash │ │ ├── openvmtools.mk │ │ ├── shutdown │ │ └── vmtoolsd.service │ ├── openvpn/ │ │ ├── Config.in │ │ ├── S60openvpn │ │ ├── openvpn.hash │ │ └── openvpn.mk │ ├── openzwave/ │ │ ├── Config.in │ │ ├── openzwave.hash │ │ └── openzwave.mk │ ├── opkg/ │ │ ├── Config.in │ │ ├── opkg.hash │ │ └── opkg.mk │ ├── opkg-utils/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── opkg-utils.hash │ │ └── opkg-utils.mk │ ├── oprofile/ │ │ ├── 0001-musl.patch │ │ ├── Config.in │ │ ├── oprofile.hash │ │ └── oprofile.mk │ ├── optee-benchmark/ │ │ ├── Config.in │ │ ├── optee-benchmark.hash │ │ └── optee-benchmark.mk │ ├── optee-client/ │ │ ├── Config.in │ │ ├── S30optee │ │ ├── optee-client.hash │ │ └── optee-client.mk │ ├── optee-examples/ │ │ ├── Config.in │ │ ├── optee-examples.hash │ │ └── optee-examples.mk │ ├── optee-test/ │ │ ├── Config.in │ │ ├── optee-test.hash │ │ └── optee-test.mk │ ├── opus/ │ │ ├── Config.in │ │ ├── opus.hash │ │ └── opus.mk │ ├── opus-tools/ │ │ ├── Config.in │ │ ├── opus-tools.hash │ │ └── opus-tools.mk │ ├── opusfile/ │ │ ├── Config.in │ │ ├── opusfile.hash │ │ └── opusfile.mk │ ├── oracle-mysql/ │ │ ├── 0000-ac_cache_check.patch │ │ ├── 0001-configure-ps-cache-check.patch │ │ ├── 0002-use-new-readline-iface.patch │ │ ├── 0003-ac_stack_direction-is-unset.patch │ │ ├── 0004-Fix-gen_lex_hash-execution.patch │ │ ├── 0005-bison_3_breaks_mysql_server_build.patch │ │ ├── 0006-no-force-static-build.patch │ │ ├── 0007-dont-install-in-mysql-directory.patch │ │ ├── 0008-fix-type-conversion.patch │ │ ├── 0009-gcc7.patch │ │ ├── 0010-fix-build-without-zlib.patch │ │ ├── 0011-config-ac-macros-alloca.m4-Remove-obsolete-Cray-supp.patch │ │ ├── S97mysqld │ │ ├── mysqld.service │ │ ├── oracle-mysql.hash │ │ └── oracle-mysql.mk │ ├── orbit/ │ │ ├── Config.in │ │ ├── orbit.hash │ │ └── orbit.mk │ ├── orc/ │ │ ├── 0001-orc-orccpu-powerpc.c-fix-build-with-kernel-4.11.patch │ │ ├── Config.in │ │ ├── orc.hash │ │ └── orc.mk │ ├── ortp/ │ │ ├── Config.in │ │ ├── ortp.hash │ │ └── ortp.mk │ ├── osm2pgsql/ │ │ ├── Config.in │ │ ├── osm2pgsql.hash │ │ └── osm2pgsql.mk │ ├── owfs/ │ │ ├── 0001-Fix-compilation-with-GCC10.patch │ │ ├── Config.in │ │ ├── S55owserver │ │ ├── S60owfs │ │ ├── owfs.hash │ │ └── owfs.mk │ ├── owl-linux/ │ │ ├── 0001-fix-for-linux-3.3.x.patch │ │ ├── Config.in │ │ ├── owl-linux.hash │ │ └── owl-linux.mk │ ├── p11-kit/ │ │ ├── 0001-p11-kit-lists-c-Add-stdint-h-to-fix-compilation.patch │ │ ├── Config.in │ │ ├── p11-kit.hash │ │ └── p11-kit.mk │ ├── p7zip/ │ │ ├── Config.in │ │ ├── p7zip.hash │ │ └── p7zip.mk │ ├── p910nd/ │ │ ├── Config.in │ │ ├── p910nd.hash │ │ └── p910nd.mk │ ├── paho-mqtt-c/ │ │ ├── Config.in │ │ ├── paho-mqtt-c.hash │ │ └── paho-mqtt-c.mk │ ├── paho-mqtt-cpp/ │ │ ├── Config.in │ │ ├── paho-mqtt-cpp.hash │ │ └── paho-mqtt-cpp.mk │ ├── pamtester/ │ │ ├── Config.in │ │ ├── pamtester.hash │ │ └── pamtester.mk │ ├── pango/ │ │ ├── Config.in │ │ ├── pango.hash │ │ └── pango.mk │ ├── pangomm/ │ │ ├── Config.in │ │ ├── pangomm.hash │ │ └── pangomm.mk │ ├── parprouted/ │ │ ├── Config.in │ │ ├── parprouted.hash │ │ └── parprouted.mk │ ├── parted/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── parted.hash │ │ └── parted.mk │ ├── patch/ │ │ ├── 0001-Fix-segfault-with-mangled-rename-patch.patch │ │ ├── 0002-Allow-input-files-to-be-missing-for-ed-style-patches.patch │ │ ├── 0003-Fix-arbitrary-command-execution-in-ed-style-patches-.patch │ │ ├── 0004-Invoke-ed-directly-instead-of-using-the-shell.patch │ │ ├── 0005-Don-t-follow-symlinks-unless--follow-symlinks-is-given.patch │ │ ├── Config.in │ │ ├── patch.hash │ │ └── patch.mk │ ├── patchelf/ │ │ ├── 0001-Remove-apparently-incorrect-usage-of-static.patch │ │ ├── 0002-Extract-a-function-for-splitting-a-colon-separated-s.patch │ │ ├── 0003-Add-option-to-make-the-rpath-relative-under-a-specif.patch │ │ ├── 0004-patchelf-Check-ELF-endianness-before-writing-new-run.patch │ │ ├── 0005-Avoid-inflating-file-sizes-needlessly-and-allow-bina.patch │ │ ├── 0006-Fix-shared-library-corruption-when-rerunning-patchel.patch │ │ ├── 0007-fix-adjusting-startPage.patch │ │ ├── 0008-Use-sh_offset-instead-of-sh_addr-when-checking-alrea.patch │ │ ├── 0009-Fix-issue-66-by-ignoring-the-first-section-header-wh.patch │ │ ├── 0010-Fix-endianness-issues-for-powerpc-PIE.patch │ │ ├── Config.in.host │ │ ├── patchelf.hash │ │ └── patchelf.mk │ ├── pax-utils/ │ │ ├── Config.in │ │ ├── pax-utils.hash │ │ └── pax-utils.mk │ ├── paxtest/ │ │ ├── 0001-genpaxtest-move-log-location.patch │ │ ├── 0002-paxtest-page-alignment-ARM-and-NIOS2-arch.patch │ │ ├── Config.in │ │ ├── paxtest.hash │ │ └── paxtest.mk │ ├── pciutils/ │ │ ├── Config.in │ │ ├── pciutils.hash │ │ └── pciutils.mk │ ├── pcm-tools/ │ │ ├── 0001-Look-for-pcm-core-at-the-default-path.patch │ │ ├── Config.in │ │ ├── pcm-tools.hash │ │ └── pcm-tools.mk │ ├── pcmanfm/ │ │ ├── 0001-po-de-po-fix-build-with-gettext-tiny.patch │ │ ├── Config.in │ │ ├── pcmanfm.hash │ │ └── pcmanfm.mk │ ├── pcre/ │ │ ├── 0001-Kill-compatibility-bits.patch │ │ ├── 0002-Disable-C-unit-tests.patch │ │ ├── Config.in │ │ ├── pcre.hash │ │ └── pcre.mk │ ├── pcre2/ │ │ ├── Config.in │ │ ├── pcre2.hash │ │ └── pcre2.mk │ ├── pcsc-lite/ │ │ ├── Config.in │ │ ├── pcsc-lite.hash │ │ └── pcsc-lite.mk │ ├── pdbg/ │ │ ├── 0001-template-Fix-alignment.patch │ │ ├── Config.in │ │ ├── pdbg.hash │ │ └── pdbg.mk │ ├── pdmenu/ │ │ ├── 0001-autoconf-makeinfo.in-link-with-INTLLIBS-if-needed.patch │ │ ├── 0002-Makefile-autoconf-makeinfo.in-support-build-install-.patch │ │ ├── Config.in │ │ ├── pdmenu.hash │ │ └── pdmenu.mk │ ├── perl/ │ │ ├── Config.in │ │ ├── perl.hash │ │ └── perl.mk │ ├── perl-apache-logformat-compiler/ │ │ ├── Config.in │ │ ├── perl-apache-logformat-compiler.hash │ │ └── perl-apache-logformat-compiler.mk │ ├── perl-appconfig/ │ │ ├── Config.in │ │ ├── perl-appconfig.hash │ │ └── perl-appconfig.mk │ ├── perl-astro-suntime/ │ │ ├── Config.in │ │ ├── perl-astro-suntime.hash │ │ └── perl-astro-suntime.mk │ ├── perl-class-inspector/ │ │ ├── Config.in │ │ ├── perl-class-inspector.hash │ │ └── perl-class-inspector.mk │ ├── perl-class-load/ │ │ ├── Config.in │ │ ├── perl-class-load.hash │ │ └── perl-class-load.mk │ ├── perl-class-method-modifiers/ │ │ ├── Config.in │ │ ├── perl-class-method-modifiers.hash │ │ └── perl-class-method-modifiers.mk │ ├── perl-class-std/ │ │ ├── Config.in │ │ ├── perl-class-std.hash │ │ └── perl-class-std.mk │ ├── perl-class-std-fast/ │ │ ├── Config.in │ │ ├── perl-class-std-fast.hash │ │ └── perl-class-std-fast.mk │ ├── perl-convert-asn1/ │ │ ├── Config.in │ │ ├── perl-convert-asn1.hash │ │ └── perl-convert-asn1.mk │ ├── perl-cookie-baker/ │ │ ├── Config.in │ │ ├── perl-cookie-baker.hash │ │ └── perl-cookie-baker.mk │ ├── perl-crypt-blowfish/ │ │ ├── Config.in │ │ ├── perl-crypt-blowfish.hash │ │ └── perl-crypt-blowfish.mk │ ├── perl-crypt-cbc/ │ │ ├── Config.in │ │ ├── perl-crypt-cbc.hash │ │ └── perl-crypt-cbc.mk │ ├── perl-crypt-openssl-aes/ │ │ ├── Config.in │ │ ├── perl-crypt-openssl-aes.hash │ │ └── perl-crypt-openssl-aes.mk │ ├── perl-crypt-openssl-guess/ │ │ ├── perl-crypt-openssl-guess.hash │ │ └── perl-crypt-openssl-guess.mk │ ├── perl-crypt-openssl-random/ │ │ ├── Config.in │ │ ├── perl-crypt-openssl-random.hash │ │ └── perl-crypt-openssl-random.mk │ ├── perl-crypt-openssl-rsa/ │ │ ├── Config.in │ │ ├── perl-crypt-openssl-rsa.hash │ │ └── perl-crypt-openssl-rsa.mk │ ├── perl-data-dump/ │ │ ├── Config.in │ │ ├── perl-data-dump.hash │ │ └── perl-data-dump.mk │ ├── perl-data-optlist/ │ │ ├── Config.in │ │ ├── perl-data-optlist.hash │ │ └── perl-data-optlist.mk │ ├── perl-data-uuid/ │ │ ├── Config.in │ │ ├── perl-data-uuid.hash │ │ └── perl-data-uuid.mk │ ├── perl-date-manip/ │ │ ├── Config.in │ │ ├── perl-date-manip.hash │ │ └── perl-date-manip.mk │ ├── perl-datetime-tiny/ │ │ ├── Config.in │ │ ├── perl-datetime-tiny.hash │ │ └── perl-datetime-tiny.mk │ ├── perl-dbd-mysql/ │ │ ├── Config.in │ │ ├── perl-dbd-mysql.hash │ │ └── perl-dbd-mysql.mk │ ├── perl-dbi/ │ │ ├── Config.in │ │ ├── perl-dbi.hash │ │ └── perl-dbi.mk │ ├── perl-devel-cycle/ │ │ ├── Config.in │ │ ├── perl-devel-cycle.hash │ │ └── perl-devel-cycle.mk │ ├── perl-devel-globaldestruction/ │ │ ├── Config.in │ │ ├── perl-devel-globaldestruction.hash │ │ └── perl-devel-globaldestruction.mk │ ├── perl-devel-size/ │ │ ├── Config.in │ │ ├── perl-devel-size.hash │ │ └── perl-devel-size.mk │ ├── perl-devel-stacktrace/ │ │ ├── Config.in │ │ ├── perl-devel-stacktrace.hash │ │ └── perl-devel-stacktrace.mk │ ├── perl-devel-stacktrace-ashtml/ │ │ ├── Config.in │ │ ├── perl-devel-stacktrace-ashtml.hash │ │ └── perl-devel-stacktrace-ashtml.mk │ ├── perl-device-serialport/ │ │ ├── Config.in │ │ ├── perl-device-serialport.hash │ │ └── perl-device-serialport.mk │ ├── perl-digest-hmac/ │ │ ├── Config.in │ │ ├── perl-digest-hmac.hash │ │ └── perl-digest-hmac.mk │ ├── perl-digest-sha1/ │ │ ├── Config.in │ │ ├── perl-digest-sha1.hash │ │ └── perl-digest-sha1.mk │ ├── perl-dist-checkconflicts/ │ │ ├── Config.in │ │ ├── perl-dist-checkconflicts.hash │ │ └── perl-dist-checkconflicts.mk │ ├── perl-encode-detect/ │ │ ├── Config.in │ │ ├── perl-encode-detect.hash │ │ └── perl-encode-detect.mk │ ├── perl-encode-locale/ │ │ ├── Config.in │ │ ├── perl-encode-locale.hash │ │ └── perl-encode-locale.mk │ ├── perl-exporter-tiny/ │ │ ├── Config.in │ │ ├── perl-exporter-tiny.hash │ │ └── perl-exporter-tiny.mk │ ├── perl-extutils-config/ │ │ ├── perl-extutils-config.hash │ │ └── perl-extutils-config.mk │ ├── perl-extutils-helpers/ │ │ ├── perl-extutils-helpers.hash │ │ └── perl-extutils-helpers.mk │ ├── perl-extutils-installpaths/ │ │ ├── perl-extutils-installpaths.hash │ │ └── perl-extutils-installpaths.mk │ ├── perl-extutils-pkgconfig/ │ │ ├── perl-extutils-pkgconfig.hash │ │ └── perl-extutils-pkgconfig.mk │ ├── perl-file-listing/ │ │ ├── Config.in │ │ ├── perl-file-listing.hash │ │ └── perl-file-listing.mk │ ├── perl-file-sharedir/ │ │ ├── Config.in │ │ ├── perl-file-sharedir.hash │ │ └── perl-file-sharedir.mk │ ├── perl-file-sharedir-install/ │ │ ├── perl-file-sharedir-install.hash │ │ └── perl-file-sharedir-install.mk │ ├── perl-file-slurp/ │ │ ├── Config.in │ │ ├── perl-file-slurp.hash │ │ └── perl-file-slurp.mk │ ├── perl-file-util/ │ │ ├── Config.in │ │ ├── perl-file-util.hash │ │ └── perl-file-util.mk │ ├── perl-filesys-notify-simple/ │ │ ├── Config.in │ │ ├── perl-filesys-notify-simple.hash │ │ └── perl-filesys-notify-simple.mk │ ├── perl-gd/ │ │ ├── 0001-Makefile.PL-fix-cross-compilation-with-gdlib.pc.patch │ │ ├── Config.in │ │ ├── perl-gd.hash │ │ └── perl-gd.mk │ ├── perl-gdgraph/ │ │ ├── Config.in │ │ ├── perl-gdgraph.hash │ │ └── perl-gdgraph.mk │ ├── perl-gdtextutil/ │ │ ├── Config.in │ │ ├── perl-gdtextutil.hash │ │ └── perl-gdtextutil.mk │ ├── perl-hash-multivalue/ │ │ ├── Config.in │ │ ├── perl-hash-multivalue.hash │ │ └── perl-hash-multivalue.mk │ ├── perl-html-parser/ │ │ ├── Config.in │ │ ├── perl-html-parser.hash │ │ └── perl-html-parser.mk │ ├── perl-html-tagset/ │ │ ├── Config.in │ │ ├── perl-html-tagset.hash │ │ └── perl-html-tagset.mk │ ├── perl-http-cookies/ │ │ ├── Config.in │ │ ├── perl-http-cookies.hash │ │ └── perl-http-cookies.mk │ ├── perl-http-daemon/ │ │ ├── Config.in │ │ ├── perl-http-daemon.hash │ │ └── perl-http-daemon.mk │ ├── perl-http-date/ │ │ ├── Config.in │ │ ├── perl-http-date.hash │ │ └── perl-http-date.mk │ ├── perl-http-entity-parser/ │ │ ├── Config.in │ │ ├── perl-http-entity-parser.hash │ │ └── perl-http-entity-parser.mk │ ├── perl-http-headers-fast/ │ │ ├── Config.in │ │ ├── perl-http-headers-fast.hash │ │ └── perl-http-headers-fast.mk │ ├── perl-http-message/ │ │ ├── Config.in │ │ ├── perl-http-message.hash │ │ └── perl-http-message.mk │ ├── perl-http-multipartparser/ │ │ ├── Config.in │ │ ├── perl-http-multipartparser.hash │ │ └── perl-http-multipartparser.mk │ ├── perl-http-negotiate/ │ │ ├── Config.in │ │ ├── perl-http-negotiate.hash │ │ └── perl-http-negotiate.mk │ ├── perl-i18n/ │ │ ├── Config.in │ │ ├── perl-i18n.hash │ │ └── perl-i18n.mk │ ├── perl-io-html/ │ │ ├── Config.in │ │ ├── perl-io-html.hash │ │ └── perl-io-html.mk │ ├── perl-io-interface/ │ │ ├── Config.in │ │ ├── perl-io-interface.hash │ │ └── perl-io-interface.mk │ ├── perl-io-socket-multicast/ │ │ ├── Config.in │ │ ├── perl-io-socket-multicast.hash │ │ └── perl-io-socket-multicast.mk │ ├── perl-io-socket-ssl/ │ │ ├── Config.in │ │ ├── perl-io-socket-ssl.hash │ │ └── perl-io-socket-ssl.mk │ ├── perl-json-maybexs/ │ │ ├── Config.in │ │ ├── perl-json-maybexs.hash │ │ └── perl-json-maybexs.mk │ ├── perl-json-tiny/ │ │ ├── Config.in │ │ ├── perl-json-tiny.hash │ │ └── perl-json-tiny.mk │ ├── perl-libwww-perl/ │ │ ├── Config.in │ │ ├── perl-libwww-perl.hash │ │ └── perl-libwww-perl.mk │ ├── perl-locale-maketext-lexicon/ │ │ ├── Config.in │ │ ├── perl-locale-maketext-lexicon.hash │ │ └── perl-locale-maketext-lexicon.mk │ ├── perl-lwp-mediatypes/ │ │ ├── Config.in │ │ ├── perl-lwp-mediatypes.hash │ │ └── perl-lwp-mediatypes.mk │ ├── perl-lwp-protocol-https/ │ │ ├── Config.in │ │ ├── perl-lwp-protocol-https.hash │ │ └── perl-lwp-protocol-https.mk │ ├── perl-mail-dkim/ │ │ ├── Config.in │ │ ├── perl-mail-dkim.hash │ │ └── perl-mail-dkim.mk │ ├── perl-mailtools/ │ │ ├── Config.in │ │ ├── perl-mailtools.hash │ │ └── perl-mailtools.mk │ ├── perl-math-int64/ │ │ ├── Config.in │ │ ├── perl-math-int64.hash │ │ └── perl-math-int64.mk │ ├── perl-math-prime-util/ │ │ ├── Config.in │ │ ├── perl-math-prime-util.hash │ │ └── perl-math-prime-util.mk │ ├── perl-mime-base64-urlsafe/ │ │ ├── Config.in │ │ ├── perl-mime-base64-urlsafe.hash │ │ └── perl-mime-base64-urlsafe.mk │ ├── perl-mime-tools/ │ │ ├── Config.in │ │ ├── perl-mime-tools.hash │ │ └── perl-mime-tools.mk │ ├── perl-module-build/ │ │ ├── perl-module-build.hash │ │ └── perl-module-build.mk │ ├── perl-module-build-tiny/ │ │ ├── perl-module-build-tiny.hash │ │ └── perl-module-build-tiny.mk │ ├── perl-module-implementation/ │ │ ├── Config.in │ │ ├── perl-module-implementation.hash │ │ └── perl-module-implementation.mk │ ├── perl-module-runtime/ │ │ ├── Config.in │ │ ├── perl-module-runtime.hash │ │ └── perl-module-runtime.mk │ ├── perl-mojolicious/ │ │ ├── Config.in │ │ ├── perl-mojolicious.hash │ │ └── perl-mojolicious.mk │ ├── perl-mojolicious-plugin-authentication/ │ │ ├── Config.in │ │ ├── perl-mojolicious-plugin-authentication.hash │ │ └── perl-mojolicious-plugin-authentication.mk │ ├── perl-mojolicious-plugin-authorization/ │ │ ├── Config.in │ │ ├── perl-mojolicious-plugin-authorization.hash │ │ └── perl-mojolicious-plugin-authorization.mk │ ├── perl-mojolicious-plugin-cspheader/ │ │ ├── Config.in │ │ ├── perl-mojolicious-plugin-cspheader.hash │ │ └── perl-mojolicious-plugin-cspheader.mk │ ├── perl-mojolicious-plugin-i18n/ │ │ ├── Config.in │ │ ├── perl-mojolicious-plugin-i18n.hash │ │ └── perl-mojolicious-plugin-i18n.mk │ ├── perl-mojolicious-plugin-securityheader/ │ │ ├── Config.in │ │ ├── perl-mojolicious-plugin-securityheader.hash │ │ └── perl-mojolicious-plugin-securityheader.mk │ ├── perl-moo/ │ │ ├── Config.in │ │ ├── perl-moo.hash │ │ └── perl-moo.mk │ ├── perl-mozilla-ca/ │ │ ├── Config.in │ │ ├── perl-mozilla-ca.hash │ │ └── perl-mozilla-ca.mk │ ├── perl-net-dns/ │ │ ├── Config.in │ │ ├── perl-net-dns.hash │ │ └── perl-net-dns.mk │ ├── perl-net-http/ │ │ ├── Config.in │ │ ├── perl-net-http.hash │ │ └── perl-net-http.mk │ ├── perl-net-snmp/ │ │ ├── Config.in │ │ ├── perl-net-snmp.hash │ │ └── perl-net-snmp.mk │ ├── perl-net-ssh2/ │ │ ├── Config.in │ │ ├── perl-net-ssh2.hash │ │ └── perl-net-ssh2.mk │ ├── perl-net-ssleay/ │ │ ├── 0001-fix-build-system.patch │ │ ├── Config.in │ │ ├── perl-net-ssleay.hash │ │ └── perl-net-ssleay.mk │ ├── perl-net-telnet/ │ │ ├── Config.in │ │ ├── perl-net-telnet.hash │ │ └── perl-net-telnet.mk │ ├── perl-netaddr-ip/ │ │ ├── Config.in │ │ ├── perl-netaddr-ip.hash │ │ └── perl-netaddr-ip.mk │ ├── perl-number-bytes-human/ │ │ ├── Config.in │ │ ├── perl-number-bytes-human.hash │ │ └── perl-number-bytes-human.mk │ ├── perl-package-stash/ │ │ ├── Config.in │ │ ├── perl-package-stash.hash │ │ └── perl-package-stash.mk │ ├── perl-params-util/ │ │ ├── Config.in │ │ ├── perl-params-util.hash │ │ └── perl-params-util.mk │ ├── perl-parse-yapp/ │ │ ├── Config.in │ │ ├── perl-parse-yapp.hash │ │ └── perl-parse-yapp.mk │ ├── perl-path-class/ │ │ ├── perl-path-class.hash │ │ └── perl-path-class.mk │ ├── perl-path-tiny/ │ │ ├── Config.in │ │ ├── perl-path-tiny.hash │ │ └── perl-path-tiny.mk │ ├── perl-plack/ │ │ ├── Config.in │ │ ├── perl-plack.hash │ │ └── perl-plack.mk │ ├── perl-posix-strftime-compiler/ │ │ ├── Config.in │ │ ├── perl-posix-strftime-compiler.hash │ │ └── perl-posix-strftime-compiler.mk │ ├── perl-role-tiny/ │ │ ├── Config.in │ │ ├── perl-role-tiny.hash │ │ └── perl-role-tiny.mk │ ├── perl-stream-buffered/ │ │ ├── Config.in │ │ ├── perl-stream-buffered.hash │ │ └── perl-stream-buffered.mk │ ├── perl-sub-exporter-progressive/ │ │ ├── Config.in │ │ ├── perl-sub-exporter-progressive.hash │ │ └── perl-sub-exporter-progressive.mk │ ├── perl-sub-install/ │ │ ├── Config.in │ │ ├── perl-sub-install.hash │ │ └── perl-sub-install.mk │ ├── perl-sub-quote/ │ │ ├── Config.in │ │ ├── perl-sub-quote.hash │ │ └── perl-sub-quote.mk │ ├── perl-sys-cpu/ │ │ ├── 0001-remove-extraneous-include.patch │ │ ├── Config.in │ │ ├── perl-sys-cpu.hash │ │ └── perl-sys-cpu.mk │ ├── perl-sys-meminfo/ │ │ ├── Config.in │ │ ├── perl-sys-meminfo.hash │ │ └── perl-sys-meminfo.mk │ ├── perl-sys-mmap/ │ │ ├── Config.in │ │ ├── perl-sys-mmap.hash │ │ └── perl-sys-mmap.mk │ ├── perl-time-parsedate/ │ │ ├── Config.in │ │ ├── perl-time-parsedate.hash │ │ └── perl-time-parsedate.mk │ ├── perl-timedate/ │ │ ├── Config.in │ │ ├── perl-timedate.hash │ │ └── perl-timedate.mk │ ├── perl-try-tiny/ │ │ ├── Config.in │ │ ├── perl-try-tiny.hash │ │ └── perl-try-tiny.mk │ ├── perl-type-tiny/ │ │ ├── Config.in │ │ ├── perl-type-tiny.hash │ │ └── perl-type-tiny.mk │ ├── perl-uri/ │ │ ├── Config.in │ │ ├── perl-uri.hash │ │ └── perl-uri.mk │ ├── perl-www-form-urlencoded/ │ │ ├── Config.in │ │ ├── perl-www-form-urlencoded.hash │ │ └── perl-www-form-urlencoded.mk │ ├── perl-www-robotrules/ │ │ ├── Config.in │ │ ├── perl-www-robotrules.hash │ │ └── perl-www-robotrules.mk │ ├── perl-x10/ │ │ ├── Config.in │ │ ├── perl-x10.hash │ │ └── perl-x10.mk │ ├── perl-xml-libxml/ │ │ ├── 0001-Makefile-PL.patch │ │ ├── Config.in │ │ ├── perl-xml-libxml.hash │ │ └── perl-xml-libxml.mk │ ├── perl-xml-namespacesupport/ │ │ ├── Config.in │ │ ├── perl-xml-namespacesupport.hash │ │ └── perl-xml-namespacesupport.mk │ ├── perl-xml-sax/ │ │ ├── Config.in │ │ ├── perl-xml-sax.hash │ │ └── perl-xml-sax.mk │ ├── perl-xml-sax-base/ │ │ ├── Config.in │ │ ├── perl-xml-sax-base.hash │ │ └── perl-xml-sax-base.mk │ ├── phidgetwebservice/ │ │ ├── Config.in │ │ ├── phidgetwebservice.hash │ │ └── phidgetwebservice.mk │ ├── php/ │ │ ├── 0001-acinclude.m4-don-t-unset-variables.patch │ │ ├── 0002-iconv-tweak-iconv-detection.patch │ │ ├── 0003-configure-disable-the-phar-tool.patch │ │ ├── 0004-Call-apxs-with-correct-prefix.patch │ │ ├── 0005-allow-opcache-cross-compiling.patch │ │ ├── Config.ext │ │ ├── Config.in │ │ ├── php-fpm.conf │ │ ├── php.hash │ │ └── php.mk │ ├── php-amqp/ │ │ ├── 0001-add-build-support-for-php-8.patch │ │ ├── 0002-more-work-for-php-8.patch │ │ ├── Config.in │ │ ├── php-amqp.hash │ │ └── php-amqp.mk │ ├── php-geoip/ │ │ ├── 0001-add-build-support-for-php8.patch │ │ ├── Config.in │ │ ├── php-geoip.hash │ │ └── php-geoip.mk │ ├── php-gnupg/ │ │ ├── 0001-Remove-inlining-_phpc_res_close.patch │ │ ├── Config.in │ │ ├── php-gnupg.hash │ │ └── php-gnupg.mk │ ├── php-imagick/ │ │ ├── Config.in │ │ ├── php-imagick.hash │ │ └── php-imagick.mk │ ├── php-memcached/ │ │ ├── Config.in │ │ ├── php-memcached.hash │ │ └── php-memcached.mk │ ├── php-pecl-dbus/ │ │ ├── 0001-php8-compat.patch │ │ ├── 0002-Fix-compatibility-with-php8-call_user_function_ex.patch │ │ ├── Config.in │ │ ├── php-pecl-dbus.hash │ │ └── php-pecl-dbus.mk │ ├── php-ssh2/ │ │ ├── Config.in │ │ ├── php-ssh2.hash │ │ └── php-ssh2.mk │ ├── php-xdebug/ │ │ ├── Config.in │ │ ├── php-xdebug.hash │ │ └── php-xdebug.mk │ ├── php-yaml/ │ │ ├── Config.in │ │ ├── php-yaml.hash │ │ └── php-yaml.mk │ ├── php-zmq/ │ │ ├── 0001-updates-for-php7.4-and-php8.0.patch │ │ ├── 0002-fix-for-php-7.3.patch │ │ ├── 0003-fix-for-php-8.0.0beta2.patch │ │ ├── Config.in │ │ ├── php-zmq.hash │ │ └── php-zmq.mk │ ├── physfs/ │ │ ├── Config.in │ │ ├── physfs.hash │ │ └── physfs.mk │ ├── phytool/ │ │ ├── Config.in │ │ ├── phytool.hash │ │ └── phytool.mk │ ├── picocom/ │ │ ├── 0001-Compile-with-libc-s-without-cispeed-cospeed.patch │ │ ├── Config.in │ │ ├── picocom.hash │ │ └── picocom.mk │ ├── pifmrds/ │ │ ├── 0001-Makefile-cross-compile-friendly.patch │ │ ├── 0002-Makefile-use-LDFLAGS.patch │ │ ├── 0003-Makefile-fix-static-link.patch │ │ ├── Config.in │ │ ├── pifmrds.hash │ │ └── pifmrds.mk │ ├── piglit/ │ │ ├── Config.in │ │ ├── piglit.hash │ │ └── piglit.mk │ ├── pigpio/ │ │ ├── Config.in │ │ ├── S50pigpio │ │ ├── pigpio.hash │ │ ├── pigpio.mk │ │ └── pigpio.service │ ├── pigz/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── pigz.hash │ │ └── pigz.mk │ ├── pimd/ │ │ ├── Config.in │ │ ├── pimd.hash │ │ └── pimd.mk │ ├── pinentry/ │ │ ├── Config.in │ │ ├── pinentry.hash │ │ └── pinentry.mk │ ├── pipewire/ │ │ ├── 0001-cpu-fix-compilation-on-some-architectures.patch │ │ ├── 0002-cpu-disable-VFP-asm-when-not-available.patch │ │ ├── Config.in │ │ ├── pipewire.hash │ │ └── pipewire.mk │ ├── pipewire-media-session/ │ │ ├── 0001-meson-remove-session-managers-option-check.patch │ │ ├── Config.in │ │ ├── pipewire-media-session.hash │ │ └── pipewire-media-session.mk │ ├── pistache/ │ │ ├── 0001-CMakeLists.txt-add-C-language-to-project-statement.patch │ │ ├── 0002-CMakeLists.txt-respect-BUILD_SHARED_LIBS.patch │ │ ├── 0003-include-pistache-typeid.h-include-cstddef.patch │ │ ├── Config.in │ │ ├── pistache.hash │ │ └── pistache.mk │ ├── pixiewps/ │ │ ├── Config.in │ │ ├── pixiewps.hash │ │ └── pixiewps.mk │ ├── pixman/ │ │ ├── 0001-Disable-tests.patch │ │ ├── Config.in │ │ ├── pixman.hash │ │ └── pixman.mk │ ├── pixz/ │ │ ├── Config.in │ │ ├── pixz.hash │ │ └── pixz.mk │ ├── pkcs11-helper/ │ │ ├── 0001-nss-use-nss-pkcs11-h.patch │ │ ├── Config.in │ │ ├── pkcs11-helper.hash │ │ └── pkcs11-helper.mk │ ├── pkg-autotools.mk │ ├── pkg-cmake.mk │ ├── pkg-download.mk │ ├── pkg-generic.mk │ ├── pkg-golang.mk │ ├── pkg-kconfig.mk │ ├── pkg-kernel-module.mk │ ├── pkg-luarocks.mk │ ├── pkg-meson.mk │ ├── pkg-perl.mk │ ├── pkg-python.mk │ ├── pkg-qmake.mk │ ├── pkg-rebar.mk │ ├── pkg-utils.mk │ ├── pkg-virtual.mk │ ├── pkg-waf.mk │ ├── pkgconf/ │ │ ├── 0001-Only-prefix-with-the-sysroot-a-subset-of-variables.patch │ │ ├── 0002-Revert-main-assume-modversion-insted-of-version-if-o.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── pkg-config.in │ │ ├── pkgconf.hash │ │ └── pkgconf.mk │ ├── ply/ │ │ ├── 0001-configure.ac-fix-error-with-version-string.patch │ │ ├── 0002-printxf.h-add-stdarg.h-in-include.patch │ │ ├── Config.in │ │ ├── ply.hash │ │ └── ply.mk │ ├── pngquant/ │ │ ├── Config.in │ │ ├── pngquant.hash │ │ └── pngquant.mk │ ├── poco/ │ │ ├── 0001-poco-add-the-staging-path-to-search-path.patch │ │ ├── 0002-Add-support-for-m68000-1856.patch │ │ ├── 0003-Foundation-src-utils.h-backport-double-conversion-ch.patch │ │ ├── Config.in │ │ ├── poco.hash │ │ └── poco.mk │ ├── poke/ │ │ ├── 0001-build-do-not-check-for-Tcl-Tk-if-disable-gui-is-spec.patch │ │ ├── 0002-tentatively-change-cppflags-to-omit-I-prefix-on-cros.patch │ │ ├── 0003-configure.ac-HELP2MAN-replace-by-true-when-cross-com.patch │ │ ├── 0004-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch │ │ ├── Config.in │ │ ├── poke.hash │ │ └── poke.mk │ ├── policycoreutils/ │ │ ├── 0001-Add-DESTDIR-to-all-paths-that-use-an-absolute-path.patch │ │ ├── 0002-Add-PREFIX-to-host-paths.patch │ │ ├── Config.in │ │ ├── policycoreutils.hash │ │ └── policycoreutils.mk │ ├── polkit/ │ │ ├── 0001-make-netgroup-support-optional.patch │ │ ├── 0002-Improve-meson_post_install-script.patch │ │ ├── 0003-build-Remove-redundant-computation-of-dbus-data-directory.patch │ │ ├── 0004-build-Don-t-require-dbus-development-files.patch │ │ ├── Config.in │ │ ├── S50polkit │ │ ├── polkit.hash │ │ ├── polkit.mk │ │ └── polkit.service │ ├── popperjs/ │ │ ├── Config.in │ │ ├── popperjs.hash │ │ └── popperjs.mk │ ├── poppler/ │ │ ├── 0001-glib-poppler-private.h-fix-build-with-gcc-11.patch │ │ ├── Config.in │ │ ├── poppler.hash │ │ └── poppler.mk │ ├── popt/ │ │ ├── 0001-add-libiconv-to-popt.pc.patch │ │ ├── 0002-Detect-glob_pattern_p.patch │ │ ├── 0003-configure-replace-deprecated-macros.patch │ │ ├── 0004-fix-build-without-wchar.patch │ │ ├── 0005-fix-build-without-mbstate_t.patch │ │ ├── Config.in │ │ ├── popt.hash │ │ └── popt.mk │ ├── portaudio/ │ │ ├── Config.in │ │ ├── portaudio.hash │ │ └── portaudio.mk │ ├── postgis/ │ │ ├── 0001-Add-HAVE_VASPRINTF-HAVE_ASPRINTF-templates.patch │ │ ├── 0002-Add-POSTGIS_DEBUG_LEVEL-define-to-configure.ac.patch │ │ ├── 0003-Disable-forced-static-linking-of-liblwgeom.patch │ │ ├── 0004-Use-pkg-config-to-get-PROJ-version-if-available.patch │ │ ├── 0005-configure.ac-fix-cross-compilation-with-protobuf-c.patch │ │ ├── Config.in │ │ ├── postgis.hash │ │ └── postgis.mk │ ├── postgresql/ │ │ ├── Config.in │ │ ├── S50postgresql │ │ ├── pg_config │ │ ├── postgresql.hash │ │ ├── postgresql.mk │ │ └── postgresql.service │ ├── pound/ │ │ ├── 0001-fix-openssl-1.0.2.patch │ │ ├── 0002-fix-openssl-1.1.0.patch │ │ ├── 0003-Support-for-libressl-coexisting-with-openssl-1.1.x.patch │ │ ├── Config.in │ │ ├── pound.hash │ │ └── pound.mk │ ├── powerpc-utils/ │ │ ├── Config.in │ │ ├── powerpc-utils.hash │ │ └── powerpc-utils.mk │ ├── powertop/ │ │ ├── 0001-dont-force-stack-smashing-protection.patch │ │ ├── Config.in │ │ ├── powertop.hash │ │ └── powertop.mk │ ├── powervr/ │ │ ├── Config.in │ │ └── powervr.mk │ ├── pppd/ │ │ ├── 0001-pppd-Fix-bounds-check.patch │ │ ├── Config.in │ │ ├── pppd.hash │ │ └── pppd.mk │ ├── pps-tools/ │ │ ├── Config.in │ │ ├── pps-tools.hash │ │ └── pps-tools.mk │ ├── pptp-linux/ │ │ ├── 0001-susv3-legacy.patch │ │ ├── 0002-fix-parallel-build.patch │ │ ├── Config.in │ │ ├── pptp-linux.hash │ │ └── pptp-linux.mk │ ├── prboom/ │ │ ├── 0001-libpng-1.4.patch │ │ ├── 0002-configure-remove-predefined-O2-optimization-flag.patch │ │ ├── Config.in │ │ ├── prboom.hash │ │ └── prboom.mk │ ├── prelink-cross/ │ │ ├── 0001-src-rtld-dl-tls.c-Fix-TLS-offsets-computation-for-s3.patch │ │ ├── prelink-cross.hash │ │ └── prelink-cross.mk │ ├── privoxy/ │ │ ├── Config.in │ │ ├── privoxy.hash │ │ └── privoxy.mk │ ├── procps-ng/ │ │ ├── Config.in │ │ ├── S02sysctl │ │ ├── procps-ng.hash │ │ └── procps-ng.mk │ ├── procrank_linux/ │ │ ├── Config.in │ │ ├── procrank_linux.hash │ │ └── procrank_linux.mk │ ├── proftpd/ │ │ ├── 0001-mod_quotatab-fix-build-failure-against-gcc-10.patch │ │ ├── Config.in │ │ ├── S50proftpd │ │ ├── proftpd.hash │ │ ├── proftpd.mk │ │ └── proftpd.service │ ├── proj/ │ │ ├── Config.in │ │ ├── proj.hash │ │ └── proj.mk │ ├── prosody/ │ │ ├── 0001-enable-syslog.patch │ │ ├── 0002-add-pidfile.patch │ │ ├── Config.in │ │ ├── S50prosody │ │ ├── prosody.hash │ │ └── prosody.mk │ ├── protobuf/ │ │ ├── Config.in │ │ ├── protobuf.hash │ │ └── protobuf.mk │ ├── protobuf-c/ │ │ ├── Config.in │ │ ├── protobuf-c.hash │ │ └── protobuf-c.mk │ ├── protozero/ │ │ ├── 0001-CMakeLists.txt-respect-BUILD_TESTING.patch │ │ ├── Config.in │ │ ├── protozero.hash │ │ └── protozero.mk │ ├── proxychains-ng/ │ │ ├── 0001-configure-fix-check_link_silent-test.patch │ │ ├── Config.in │ │ ├── proxychains-ng.hash │ │ └── proxychains-ng.mk │ ├── pru-software-support/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── pru-software-support.hash │ │ ├── pru-software-support.mk │ │ └── readme.txt │ ├── psmisc/ │ │ ├── Config.in │ │ ├── psmisc.hash │ │ └── psmisc.mk │ ├── psplash/ │ │ ├── Config.in │ │ ├── psplash-start.service │ │ ├── psplash-systemd.service │ │ ├── psplash.hash │ │ └── psplash.mk │ ├── ptm2human/ │ │ ├── Config.in │ │ ├── ptm2human.hash │ │ └── ptm2human.mk │ ├── ptpd/ │ │ ├── Config.in │ │ ├── S65ptpd │ │ ├── ptpd.hash │ │ ├── ptpd.mk │ │ └── ptpd.service │ ├── ptpd2/ │ │ ├── 0001-musl.patch │ │ ├── 0002-ntp_isc_md5-rename-EVP_MD_CTX-into-PTPD_EVP_MD_CTX.patch │ │ ├── 0003-Solve-issue-25-Removing-type-U64-from-net-snmp-relat.patch │ │ ├── Config.in │ │ ├── S65ptpd2 │ │ ├── ptpd2.hash │ │ ├── ptpd2.mk │ │ └── ptpd2.service │ ├── pugixml/ │ │ ├── Config.in │ │ ├── pugixml.hash │ │ └── pugixml.mk │ ├── pulseaudio/ │ │ ├── Config.in │ │ ├── S50pulseaudio │ │ ├── pulseaudio.hash │ │ ├── pulseaudio.mk │ │ └── pulseaudio.service │ ├── pulseview/ │ │ ├── 0001-Replace-obsolete-deprecated-Qt-methods.patch │ │ ├── 0002-Fix-broken-build-due-to-C-template-behind-C-linkage.patch │ │ ├── Config.in │ │ ├── pulseview.hash │ │ └── pulseview.mk │ ├── pure-ftpd/ │ │ ├── 0001-listdir-reuse-a-single-buffer-to-store-every-file-name-to-display.patch │ │ ├── 0002-pure_strcmp-len-s2-can-be-len-s1.patch │ │ ├── 0003-diraliases-always-set-the-tail-of-the-list-to-NULL.patch │ │ ├── 0004-Initialize-the-max-upload-file-size-when-quotas-are-enabled.patch │ │ ├── Config.in │ │ ├── pure-ftpd.hash │ │ └── pure-ftpd.mk │ ├── putty/ │ │ ├── 0001-unix-uxutils.h-fix-build-on-uclibc.patch │ │ ├── Config.in │ │ ├── putty.hash │ │ └── putty.mk │ ├── pv/ │ │ ├── Config.in │ │ ├── pv.hash │ │ └── pv.mk │ ├── pwgen/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── pwgen.hash │ │ └── pwgen.mk │ ├── python/ │ │ ├── 0001-setup.py-do-not-add-invalid-header-locations.patch │ │ ├── 0002-Fix-get_python_inc-for-cross-compilation.patch │ │ ├── 0003-Change-the-install-location-of-_sysconfigdata.py.patch │ │ ├── 0004-Make-the-compilation-of-.pyc-and-.pyo-conditional.patch │ │ ├── 0005-Adjust-getaddrinfo-test-for-cross-compilation.patch │ │ ├── 0006-Add-minimal-infrastructure-to-be-able-to-disable-ext.patch │ │ ├── 0007-Adjust-library-header-paths-for-cross-compilation.patch │ │ ├── 0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch │ │ ├── 0009-Fix-python-config-for-cross-builds.patch │ │ ├── 0010-Remove-the-python-symlink-install-rules.patch │ │ ├── 0011-Don-t-add-multiarch-paths.patch │ │ ├── 0012-Abort-on-failed-module-build.patch │ │ ├── 0013-sqlite3-fix-build-when-threads-are-not-used-availabl.patch │ │ ├── 0014-Serial-ioctl-workaround.patch │ │ ├── 0015-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch │ │ ├── 0016-Add-an-option-to-disable-installation-of-test-module.patch │ │ ├── 0017-Add-an-option-to-disable-pydoc.patch │ │ ├── 0018-Add-an-option-to-disable-lib2to3.patch │ │ ├── 0019-Add-option-to-disable-the-sqlite3-module.patch │ │ ├── 0020-Add-an-option-to-disable-the-tk-module.patch │ │ ├── 0021-Add-an-option-to-disable-the-curses-module.patch │ │ ├── 0022-Add-an-option-to-disable-expat.patch │ │ ├── 0023-Add-an-option-to-disable-CJK-codecs.patch │ │ ├── 0024-Add-an-option-to-disable-NIS.patch │ │ ├── 0025-Add-an-option-to-disable-unicodedata.patch │ │ ├── 0026-Add-an-option-to-disable-bsddb.patch │ │ ├── 0027-Add-an-option-to-disable-the-ssl-module.patch │ │ ├── 0028-Add-an-option-to-disable-the-bz2-module.patch │ │ ├── 0029-Add-an-option-to-disable-the-zlib-module.patch │ │ ├── 0030-Do-not-install-the-idle-editor.patch │ │ ├── 0031-Add-an-option-to-disable-the-ossaudiodev-module.patch │ │ ├── 0032-Add-option-to-disable-the-hashlib-module.patch │ │ ├── 0033-Add-an-option-to-disable-readline-module.patch │ │ ├── 0034-Override-system-locale-and-set-to-default-when-addin.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── python.hash │ │ └── python.mk │ ├── python-aenum/ │ │ ├── Config.in │ │ ├── python-aenum.hash │ │ └── python-aenum.mk │ ├── python-aioblescan/ │ │ ├── Config.in │ │ ├── python-aioblescan.hash │ │ └── python-aioblescan.mk │ ├── python-aiocoap/ │ │ ├── Config.in │ │ ├── python-aiocoap.hash │ │ └── python-aiocoap.mk │ ├── python-aioconsole/ │ │ ├── Config.in │ │ ├── python-aioconsole.hash │ │ └── python-aioconsole.mk │ ├── python-aiodns/ │ │ ├── Config.in │ │ ├── python-aiodns.hash │ │ └── python-aiodns.mk │ ├── python-aiofiles/ │ │ ├── Config.in │ │ ├── python-aiofiles.hash │ │ └── python-aiofiles.mk │ ├── python-aiohttp/ │ │ ├── Config.in │ │ ├── python-aiohttp.hash │ │ └── python-aiohttp.mk │ ├── python-aiohttp-apispec/ │ │ ├── Config.in │ │ ├── python-aiohttp-apispec.hash │ │ └── python-aiohttp-apispec.mk │ ├── python-aiohttp-cors/ │ │ ├── Config.in │ │ ├── python-aiohttp-cors.hash │ │ └── python-aiohttp-cors.mk │ ├── python-aiohttp-debugtoolbar/ │ │ ├── Config.in │ │ ├── python-aiohttp-debugtoolbar.hash │ │ └── python-aiohttp-debugtoolbar.mk │ ├── python-aiohttp-jinja2/ │ │ ├── Config.in │ │ ├── python-aiohttp-jinja2.hash │ │ └── python-aiohttp-jinja2.mk │ ├── python-aiohttp-mako/ │ │ ├── Config.in │ │ ├── python-aiohttp-mako.hash │ │ └── python-aiohttp-mako.mk │ ├── python-aiohttp-remotes/ │ │ ├── Config.in │ │ ├── python-aiohttp-remotes.hash │ │ └── python-aiohttp-remotes.mk │ ├── python-aiohttp-security/ │ │ ├── Config.in │ │ ├── python-aiohttp-security.hash │ │ └── python-aiohttp-security.mk │ ├── python-aiohttp-session/ │ │ ├── Config.in │ │ ├── python-aiohttp-session.hash │ │ └── python-aiohttp-session.mk │ ├── python-aiohttp-sse/ │ │ ├── Config.in │ │ ├── python-aiohttp-sse.hash │ │ └── python-aiohttp-sse.mk │ ├── python-aiohttp-swagger/ │ │ ├── Config.in │ │ └── python-aiohttp-swagger.mk │ ├── python-aiojobs/ │ │ ├── Config.in │ │ ├── python-aiojobs.hash │ │ └── python-aiojobs.mk │ ├── python-aiologstash/ │ │ ├── Config.in │ │ ├── python-aiologstash.hash │ │ └── python-aiologstash.mk │ ├── python-aiomonitor/ │ │ ├── Config.in │ │ ├── python-aiomonitor.hash │ │ └── python-aiomonitor.mk │ ├── python-aioprocessing/ │ │ ├── Config.in │ │ ├── python-aioprocessing.hash │ │ └── python-aioprocessing.mk │ ├── python-aioredis/ │ │ ├── Config.in │ │ ├── python-aioredis.hash │ │ └── python-aioredis.mk │ ├── python-aiorwlock/ │ │ ├── Config.in │ │ ├── python-aiorwlock.hash │ │ └── python-aiorwlock.mk │ ├── python-aiosignal/ │ │ ├── Config.in │ │ ├── python-aiosignal.hash │ │ └── python-aiosignal.mk │ ├── python-aiozipkin/ │ │ ├── Config.in │ │ ├── python-aiozipkin.hash │ │ └── python-aiozipkin.mk │ ├── python-alsaaudio/ │ │ ├── Config.in │ │ ├── python-alsaaudio.hash │ │ └── python-alsaaudio.mk │ ├── python-ansicolors/ │ │ ├── Config.in │ │ ├── python-ansicolors.hash │ │ └── python-ansicolors.mk │ ├── python-apispec/ │ │ ├── Config.in │ │ ├── python-apispec.hash │ │ └── python-apispec.mk │ ├── python-argh/ │ │ ├── Config.in │ │ ├── python-argh.hash │ │ └── python-argh.mk │ ├── python-argon2-cffi/ │ │ ├── Config.in │ │ ├── python-argon2-cffi.hash │ │ └── python-argon2-cffi.mk │ ├── python-arrow/ │ │ ├── Config.in │ │ ├── python-arrow.hash │ │ └── python-arrow.mk │ ├── python-asgiref/ │ │ ├── Config.in │ │ ├── python-asgiref.hash │ │ └── python-asgiref.mk │ ├── python-asn1crypto/ │ │ ├── Config.in │ │ ├── python-asn1crypto.hash │ │ └── python-asn1crypto.mk │ ├── python-async-lru/ │ │ ├── Config.in │ │ ├── python-async-lru.hash │ │ └── python-async-lru.mk │ ├── python-async-timeout/ │ │ ├── Config.in │ │ ├── python-async-timeout.hash │ │ └── python-async-timeout.mk │ ├── python-asyncpg/ │ │ ├── Config.in │ │ ├── python-asyncpg.hash │ │ └── python-asyncpg.mk │ ├── python-attrs/ │ │ ├── Config.in │ │ ├── python-attrs.hash │ │ └── python-attrs.mk │ ├── python-augeas/ │ │ ├── 0001-Use-CFFI-in-out-of-line-API-mode-49.patch │ │ ├── Config.in │ │ ├── python-augeas.hash │ │ └── python-augeas.mk │ ├── python-autobahn/ │ │ ├── 0001-Fix-duplicate-xbr-packages-and-xbr-templates-package.patch │ │ ├── 0002-Build-with-nvx-by-default-and-don-t-publish-universa.patch │ │ ├── Config.in │ │ ├── python-autobahn.hash │ │ └── python-autobahn.mk │ ├── python-automat/ │ │ ├── Config.in │ │ ├── python-automat.hash │ │ └── python-automat.mk │ ├── python-avro/ │ │ ├── 0002-drop-install-time-linting-and-imports-sorting.patch │ │ ├── Config.in │ │ ├── python-avro.hash │ │ └── python-avro.mk │ ├── python-babel/ │ │ ├── Config.in │ │ ├── python-babel.hash │ │ └── python-babel.mk │ ├── python-backcall/ │ │ ├── Config.in │ │ ├── python-backcall.hash │ │ └── python-backcall.mk │ ├── python-backports-abc/ │ │ ├── Config.in │ │ ├── python-backports-abc.hash │ │ └── python-backports-abc.mk │ ├── python-backports-functools-lru-cache/ │ │ ├── Config.in │ │ ├── python-backports-functools-lru-cache.hash │ │ └── python-backports-functools-lru-cache.mk │ ├── python-backports-shutil-get-terminal-size/ │ │ ├── Config.in │ │ ├── python-backports-shutil-get-terminal-size.hash │ │ └── python-backports-shutil-get-terminal-size.mk │ ├── python-backports-ssl-match-hostname/ │ │ ├── Config.in │ │ ├── python-backports-ssl-match-hostname.hash │ │ └── python-backports-ssl-match-hostname.mk │ ├── python-base58/ │ │ ├── Config.in │ │ ├── python-base58.hash │ │ └── python-base58.mk │ ├── python-bcrypt/ │ │ ├── Config.in │ │ ├── python-bcrypt.hash │ │ └── python-bcrypt.mk │ ├── python-beautifulsoup4/ │ │ ├── Config.in │ │ ├── python-beautifulsoup4.hash │ │ └── python-beautifulsoup4.mk │ ├── python-bidict/ │ │ ├── Config.in │ │ ├── python-bidict.hash │ │ └── python-bidict.mk │ ├── python-bitstring/ │ │ ├── Config.in │ │ ├── python-bitstring.hash │ │ └── python-bitstring.mk │ ├── python-bleak/ │ │ ├── Config.in │ │ ├── python-bleak.hash │ │ └── python-bleak.mk │ ├── python-bluepy/ │ │ ├── Config.in │ │ ├── python-bluepy.hash │ │ └── python-bluepy.mk │ ├── python-bluezero/ │ │ ├── Config.in │ │ ├── python-bluezero.hash │ │ └── python-bluezero.mk │ ├── python-boto3/ │ │ ├── Config.in │ │ ├── python-boto3.hash │ │ └── python-boto3.mk │ ├── python-botocore/ │ │ ├── Config.in │ │ ├── python-botocore.hash │ │ └── python-botocore.mk │ ├── python-bottle/ │ │ ├── Config.in │ │ ├── python-bottle.hash │ │ └── python-bottle.mk │ ├── python-brotli/ │ │ ├── Config.in │ │ ├── python-brotli.hash │ │ └── python-brotli.mk │ ├── python-bsdiff4/ │ │ ├── Config.in │ │ ├── python-bsdiff4.hash │ │ └── python-bsdiff4.mk │ ├── python-bunch/ │ │ ├── Config.in │ │ ├── python-bunch.hash │ │ └── python-bunch.mk │ ├── python-cached-property/ │ │ ├── Config.in │ │ ├── python-cached-property.hash │ │ └── python-cached-property.mk │ ├── python-can/ │ │ ├── Config.in │ │ ├── python-can.hash │ │ └── python-can.mk │ ├── python-canopen/ │ │ ├── Config.in │ │ ├── python-canopen.hash │ │ └── python-canopen.mk │ ├── python-cbor/ │ │ ├── Config.in │ │ ├── python-cbor.hash │ │ └── python-cbor.mk │ ├── python-cbor2/ │ │ ├── Config.in │ │ ├── python-cbor2.hash │ │ └── python-cbor2.mk │ ├── python-cchardet/ │ │ ├── Config.in │ │ ├── python-cchardet.hash │ │ └── python-cchardet.mk │ ├── python-certifi/ │ │ ├── Config.in │ │ ├── python-certifi.hash │ │ └── python-certifi.mk │ ├── python-cffi/ │ │ ├── Config.in │ │ ├── python-cffi.hash │ │ └── python-cffi.mk │ ├── python-channels/ │ │ ├── Config.in │ │ ├── python-channels.hash │ │ └── python-channels.mk │ ├── python-channels-redis/ │ │ ├── Config.in │ │ ├── python-channels-redis.hash │ │ └── python-channels-redis.mk │ ├── python-characteristic/ │ │ ├── Config.in │ │ ├── python-characteristic.hash │ │ └── python-characteristic.mk │ ├── python-chardet/ │ │ ├── Config.in │ │ ├── python-chardet.hash │ │ └── python-chardet.mk │ ├── python-charset-normalizer/ │ │ ├── Config.in │ │ ├── python-charset-normalizer.hash │ │ └── python-charset-normalizer.mk │ ├── python-cheetah/ │ │ ├── Config.in │ │ ├── python-cheetah.hash │ │ └── python-cheetah.mk │ ├── python-cheroot/ │ │ ├── Config.in │ │ ├── python-cheroot.hash │ │ └── python-cheroot.mk │ ├── python-cherrypy/ │ │ ├── Config.in │ │ ├── python-cherrypy.hash │ │ └── python-cherrypy.mk │ ├── python-click/ │ │ ├── Config.in │ │ ├── python-click.hash │ │ └── python-click.mk │ ├── python-colibris/ │ │ ├── Config.in │ │ ├── python-colibris.hash │ │ └── python-colibris.mk │ ├── python-colorama/ │ │ ├── Config.in │ │ ├── python-colorama.hash │ │ └── python-colorama.mk │ ├── python-colorlog/ │ │ ├── Config.in │ │ ├── python-colorlog.hash │ │ └── python-colorlog.mk │ ├── python-colorzero/ │ │ ├── Config.in │ │ ├── python-colorzero.hash │ │ └── python-colorzero.mk │ ├── python-configobj/ │ │ ├── Config.in │ │ ├── python-configobj.hash │ │ └── python-configobj.mk │ ├── python-configshell-fb/ │ │ ├── Config.in │ │ ├── python-configshell-fb.hash │ │ └── python-configshell-fb.mk │ ├── python-constantly/ │ │ ├── Config.in │ │ ├── python-constantly.hash │ │ └── python-constantly.mk │ ├── python-couchdb/ │ │ ├── Config.in │ │ ├── python-couchdb.hash │ │ └── python-couchdb.mk │ ├── python-crayons/ │ │ ├── Config.in │ │ ├── python-crayons.hash │ │ └── python-crayons.mk │ ├── python-crc16/ │ │ ├── Config.in │ │ ├── python-crc16.hash │ │ └── python-crc16.mk │ ├── python-crcmod/ │ │ ├── Config.in │ │ ├── python-crcmod.hash │ │ └── python-crcmod.mk │ ├── python-crontab/ │ │ ├── Config.in │ │ ├── python-crontab.hash │ │ └── python-crontab.mk │ ├── python-crossbar/ │ │ ├── 0001-Avoid-intentional-syntax-error.patch │ │ ├── 0002-Remove-idna-requirement.patch │ │ ├── Config.in │ │ ├── python-crossbar.hash │ │ └── python-crossbar.mk │ ├── python-cryptography/ │ │ ├── Config.in │ │ ├── python-cryptography.hash │ │ └── python-cryptography.mk │ ├── python-cssselect/ │ │ ├── Config.in │ │ ├── python-cssselect.hash │ │ └── python-cssselect.mk │ ├── python-cssutils/ │ │ ├── Config.in │ │ ├── python-cssutils.hash │ │ └── python-cssutils.mk │ ├── python-cycler/ │ │ ├── Config.in │ │ ├── python-cycler.hash │ │ └── python-cycler.mk │ ├── python-cython/ │ │ ├── Config.in.host │ │ ├── python-cython.hash │ │ └── python-cython.mk │ ├── python-daemon/ │ │ ├── Config.in │ │ ├── python-daemon.hash │ │ └── python-daemon.mk │ ├── python-daemonize/ │ │ ├── Config.in │ │ ├── python-daemonize.hash │ │ └── python-daemonize.mk │ ├── python-daphne/ │ │ ├── 0001-remove-pytest-runner-requirement.patch │ │ ├── Config.in │ │ ├── python-daphne.hash │ │ └── python-daphne.mk │ ├── python-dataproperty/ │ │ ├── Config.in │ │ ├── python-dataproperty.hash │ │ └── python-dataproperty.mk │ ├── python-dateutil/ │ │ ├── Config.in │ │ ├── python-dateutil.hash │ │ └── python-dateutil.mk │ ├── python-dbus-fast/ │ │ ├── Config.in │ │ ├── python-dbus-fast.hash │ │ └── python-dbus-fast.mk │ ├── python-dbus-next/ │ │ ├── Config.in │ │ ├── python-dbus-next.hash │ │ └── python-dbus-next.mk │ ├── python-decorator/ │ │ ├── Config.in │ │ ├── python-decorator.hash │ │ └── python-decorator.mk │ ├── python-defusedxml/ │ │ ├── Config.in │ │ ├── python-defusedxml.hash │ │ └── python-defusedxml.mk │ ├── python-dialog/ │ │ ├── Config.in │ │ ├── python-dialog.hash │ │ └── python-dialog.mk │ ├── python-dialog3/ │ │ ├── Config.in │ │ ├── python-dialog3.hash │ │ └── python-dialog3.mk │ ├── python-dicttoxml/ │ │ ├── Config.in │ │ ├── python-dicttoxml.hash │ │ └── python-dicttoxml.mk │ ├── python-django/ │ │ ├── Config.in │ │ ├── python-django.hash │ │ └── python-django.mk │ ├── python-django-enumfields/ │ │ ├── Config.in │ │ ├── python-django-enumfields.hash │ │ └── python-django-enumfields.mk │ ├── python-dnspython/ │ │ ├── Config.in │ │ ├── python-dnspython.hash │ │ └── python-dnspython.mk │ ├── python-docker/ │ │ ├── Config.in │ │ ├── python-docker.hash │ │ └── python-docker.mk │ ├── python-docker-pycreds/ │ │ ├── Config.in │ │ ├── python-docker-pycreds.hash │ │ └── python-docker-pycreds.mk │ ├── python-dockerpty/ │ │ ├── Config.in │ │ ├── python-dockerpty.hash │ │ └── python-dockerpty.mk │ ├── python-docopt/ │ │ ├── Config.in │ │ ├── python-docopt.hash │ │ └── python-docopt.mk │ ├── python-docutils/ │ │ ├── 0001-Update-setup.py.patch │ │ ├── Config.in │ │ ├── python-docutils.hash │ │ └── python-docutils.mk │ ├── python-dominate/ │ │ ├── Config.in │ │ ├── python-dominate.hash │ │ └── python-dominate.mk │ ├── python-dotenv/ │ │ ├── Config.in │ │ ├── python-dotenv.hash │ │ └── python-dotenv.mk │ ├── python-dpkt/ │ │ ├── Config.in │ │ ├── python-dpkt.hash │ │ └── python-dpkt.mk │ ├── python-ecdsa/ │ │ ├── Config.in │ │ ├── python-ecdsa.hash │ │ └── python-ecdsa.mk │ ├── python-engineio/ │ │ ├── Config.in │ │ ├── python-engineio.hash │ │ └── python-engineio.mk │ ├── python-entrypoints/ │ │ ├── Config.in │ │ ├── python-entrypoints.hash │ │ └── python-entrypoints.mk │ ├── python-enum/ │ │ ├── Config.in │ │ ├── python-enum.hash │ │ └── python-enum.mk │ ├── python-enum34/ │ │ ├── Config.in │ │ ├── python-enum34.hash │ │ └── python-enum34.mk │ ├── python-esptool/ │ │ ├── Config.in │ │ ├── python-esptool.hash │ │ └── python-esptool.mk │ ├── python-falcon/ │ │ ├── Config.in │ │ ├── python-falcon.hash │ │ └── python-falcon.mk │ ├── python-fastentrypoints/ │ │ ├── Config.in.host │ │ ├── python-fastentrypoints.hash │ │ └── python-fastentrypoints.mk │ ├── python-filelock/ │ │ ├── Config.in │ │ ├── python-filelock.hash │ │ └── python-filelock.mk │ ├── python-fire/ │ │ ├── Config.in │ │ ├── python-fire.hash │ │ └── python-fire.mk │ ├── python-flask/ │ │ ├── Config.in │ │ ├── python-flask.hash │ │ └── python-flask.mk │ ├── python-flask-babel/ │ │ ├── Config.in │ │ ├── python-flask-babel.hash │ │ └── python-flask-babel.mk │ ├── python-flask-cors/ │ │ ├── Config.in │ │ ├── python-flask-cors.hash │ │ └── python-flask-cors.mk │ ├── python-flask-expects-json/ │ │ ├── Config.in │ │ ├── python-flask-expects-json.hash │ │ └── python-flask-expects-json.mk │ ├── python-flask-jsonrpc/ │ │ ├── Config.in │ │ ├── python-flask-jsonrpc.hash │ │ └── python-flask-jsonrpc.mk │ ├── python-flask-login/ │ │ ├── Config.in │ │ ├── python-flask-login.hash │ │ └── python-flask-login.mk │ ├── python-flask-sqlalchemy/ │ │ ├── Config.in │ │ ├── python-flask-sqlalchemy.hash │ │ └── python-flask-sqlalchemy.mk │ ├── python-flask-wtf/ │ │ ├── Config.in │ │ ├── python-flask-wtf.hash │ │ └── python-flask-wtf.mk │ ├── python-flatbuffers/ │ │ ├── Config.in │ │ ├── python-flatbuffers.hash │ │ └── python-flatbuffers.mk │ ├── python-flup/ │ │ ├── Config.in │ │ ├── python-flup.hash │ │ └── python-flup.mk │ ├── python-frozenlist/ │ │ ├── Config.in │ │ ├── python-frozenlist.hash │ │ └── python-frozenlist.mk │ ├── python-functools32/ │ │ ├── Config.in │ │ ├── python-functools32.hash │ │ └── python-functools32.mk │ ├── python-future/ │ │ ├── Config.in │ │ ├── python-future.hash │ │ └── python-future.mk │ ├── python-futures/ │ │ ├── Config.in │ │ ├── python-futures.hash │ │ └── python-futures.mk │ ├── python-git/ │ │ ├── Config.in │ │ ├── python-git.hash │ │ └── python-git.mk │ ├── python-gitdb2/ │ │ ├── Config.in │ │ ├── python-gitdb2.hash │ │ └── python-gitdb2.mk │ ├── python-gobject/ │ │ ├── Config.in │ │ ├── python-gobject.hash │ │ └── python-gobject.mk │ ├── python-gpiozero/ │ │ ├── Config.in │ │ ├── python-gpiozero.hash │ │ └── python-gpiozero.mk │ ├── python-greenlet/ │ │ ├── Config.in │ │ ├── python-greenlet.hash │ │ └── python-greenlet.mk │ ├── python-gunicorn/ │ │ ├── Config.in │ │ ├── python-gunicorn.hash │ │ └── python-gunicorn.mk │ ├── python-h2/ │ │ ├── Config.in │ │ ├── python-h2.hash │ │ └── python-h2.mk │ ├── python-hiredis/ │ │ ├── 0001-setup.py-fix-build-with-gcc-4.8.patch │ │ ├── Config.in │ │ ├── python-hiredis.hash │ │ └── python-hiredis.mk │ ├── python-hpack/ │ │ ├── 0001-Convert-HISTORY.rst-from-UTF-8-format-to-ASCII.patch │ │ ├── Config.in │ │ ├── python-hpack.hash │ │ └── python-hpack.mk │ ├── python-html5lib/ │ │ ├── Config.in │ │ ├── python-html5lib.hash │ │ └── python-html5lib.mk │ ├── python-httplib2/ │ │ ├── Config.in │ │ ├── python-httplib2.hash │ │ └── python-httplib2.mk │ ├── python-huepy/ │ │ ├── 0001-fix-import-with-python3.patch │ │ ├── Config.in │ │ ├── python-huepy.hash │ │ └── python-huepy.mk │ ├── python-humanize/ │ │ ├── Config.in │ │ ├── python-humanize.hash │ │ └── python-humanize.mk │ ├── python-hyperframe/ │ │ ├── Config.in │ │ ├── python-hyperframe.hash │ │ └── python-hyperframe.mk │ ├── python-hyperlink/ │ │ ├── Config.in │ │ ├── python-hyperlink.hash │ │ └── python-hyperlink.mk │ ├── python-ibmiotf/ │ │ ├── Config.in │ │ ├── python-ibmiotf.hash │ │ └── python-ibmiotf.mk │ ├── python-id3/ │ │ ├── Config.in │ │ ├── python-id3.hash │ │ └── python-id3.mk │ ├── python-idna/ │ │ ├── Config.in │ │ ├── python-idna.hash │ │ └── python-idna.mk │ ├── python-idna-ssl/ │ │ ├── Config.in │ │ ├── python-idna-ssl.hash │ │ └── python-idna-ssl.mk │ ├── python-ifaddr/ │ │ ├── Config.in │ │ ├── python-ifaddr.hash │ │ └── python-ifaddr.mk │ ├── python-incremental/ │ │ ├── Config.in │ │ ├── python-incremental.hash │ │ └── python-incremental.mk │ ├── python-inflection/ │ │ ├── Config.in │ │ ├── python-inflection.hash │ │ └── python-inflection.mk │ ├── python-influxdb/ │ │ ├── Config.in │ │ ├── python-influxdb.hash │ │ └── python-influxdb.mk │ ├── python-iniconfig/ │ │ ├── Config.in │ │ ├── python-iniconfig.hash │ │ └── python-iniconfig.mk │ ├── python-iniparse/ │ │ ├── Config.in │ │ ├── python-iniparse.hash │ │ └── python-iniparse.mk │ ├── python-intelhex/ │ │ ├── Config.in │ │ ├── python-intelhex.hash │ │ └── python-intelhex.mk │ ├── python-iowait/ │ │ ├── Config.in │ │ ├── python-iowait.hash │ │ └── python-iowait.mk │ ├── python-ipaddr/ │ │ ├── Config.in │ │ ├── python-ipaddr.hash │ │ └── python-ipaddr.mk │ ├── python-ipaddress/ │ │ ├── Config.in │ │ ├── python-ipaddress.hash │ │ └── python-ipaddress.mk │ ├── python-ipdb/ │ │ ├── Config.in │ │ ├── python-ipdb.hash │ │ └── python-ipdb.mk │ ├── python-iptables/ │ │ ├── Config.in │ │ ├── python-iptables.hash │ │ └── python-iptables.mk │ ├── python-ipy/ │ │ ├── Config.in │ │ ├── python-ipy.hash │ │ └── python-ipy.mk │ ├── python-ipython/ │ │ ├── 0001-set-correct-python-executable-path.patch │ │ ├── Config.in │ │ ├── python-ipython.hash │ │ └── python-ipython.mk │ ├── python-ipython-genutils/ │ │ ├── Config.in │ │ ├── python-ipython-genutils.hash │ │ └── python-ipython-genutils.mk │ ├── python-iso8601/ │ │ ├── Config.in │ │ ├── python-iso8601.hash │ │ └── python-iso8601.mk │ ├── python-itsdangerous/ │ │ ├── Config.in │ │ ├── python-itsdangerous.hash │ │ └── python-itsdangerous.mk │ ├── python-iwlib/ │ │ ├── Config.in │ │ ├── python-iwlib.hash │ │ └── python-iwlib.mk │ ├── python-janus/ │ │ ├── Config.in │ │ ├── python-janus.hash │ │ └── python-janus.mk │ ├── python-jaraco-classes/ │ │ ├── Config.in │ │ ├── python-jaraco-classes.hash │ │ └── python-jaraco-classes.mk │ ├── python-jaraco-functools/ │ │ ├── Config.in │ │ ├── python-jaraco-functools.hash │ │ └── python-jaraco-functools.mk │ ├── python-jedi/ │ │ ├── Config.in │ │ ├── python-jedi.hash │ │ └── python-jedi.mk │ ├── python-jinja2/ │ │ ├── Config.in │ │ ├── python-jinja2.hash │ │ └── python-jinja2.mk │ ├── python-jmespath/ │ │ ├── Config.in │ │ ├── python-jmespath.hash │ │ └── python-jmespath.mk │ ├── python-json-schema-validator/ │ │ ├── Config.in │ │ ├── python-json-schema-validator.hash │ │ └── python-json-schema-validator.mk │ ├── python-jsonmodels/ │ │ ├── Config.in │ │ ├── python-jsonmodels.hash │ │ └── python-jsonmodels.mk │ ├── python-jsonpointer/ │ │ ├── Config.in │ │ ├── python-jsonpointer.hash │ │ └── python-jsonpointer.mk │ ├── python-jsonschema/ │ │ ├── Config.in │ │ ├── python-jsonschema.hash │ │ └── python-jsonschema.mk │ ├── python-keyring/ │ │ ├── Config.in │ │ ├── python-keyring.hash │ │ └── python-keyring.mk │ ├── python-kiwisolver/ │ │ ├── Config.in │ │ ├── python-kiwisolver.hash │ │ └── python-kiwisolver.mk │ ├── python-libconfig/ │ │ ├── Config.in │ │ ├── python-libconfig.hash │ │ └── python-libconfig.mk │ ├── python-libusb1/ │ │ ├── Config.in │ │ ├── python-libusb1.hash │ │ └── python-libusb1.mk │ ├── python-lmdb/ │ │ ├── Config.in │ │ ├── python-lmdb.hash │ │ └── python-lmdb.mk │ ├── python-lockfile/ │ │ ├── Config.in │ │ ├── python-lockfile.hash │ │ └── python-lockfile.mk │ ├── python-logbook/ │ │ ├── Config.in │ │ ├── python-logbook.hash │ │ └── python-logbook.mk │ ├── python-logstash/ │ │ ├── Config.in │ │ ├── python-logstash.hash │ │ └── python-logstash.mk │ ├── python-lxml/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── python-lxml.hash │ │ └── python-lxml.mk │ ├── python-m2crypto/ │ │ ├── Config.in │ │ ├── python-m2crypto.hash │ │ └── python-m2crypto.mk │ ├── python-m2r/ │ │ ├── Config.in │ │ ├── python-m2r.hash │ │ └── python-m2r.mk │ ├── python-mad/ │ │ ├── Config.in │ │ ├── python-mad.hash │ │ └── python-mad.mk │ ├── python-mako/ │ │ ├── Config.in │ │ ├── python-mako.hash │ │ └── python-mako.mk │ ├── python-markdown/ │ │ ├── Config.in │ │ ├── python-markdown.hash │ │ └── python-markdown.mk │ ├── python-markdown2/ │ │ ├── Config.in │ │ ├── python-markdown2.hash │ │ └── python-markdown2.mk │ ├── python-markupsafe/ │ │ ├── Config.in │ │ ├── python-markupsafe.hash │ │ └── python-markupsafe.mk │ ├── python-marshmallow/ │ │ ├── Config.in │ │ ├── python-marshmallow.hash │ │ └── python-marshmallow.mk │ ├── python-marshmallow-peewee/ │ │ ├── Config.in │ │ ├── python-marshmallow-peewee.hash │ │ └── python-marshmallow-peewee.mk │ ├── python-matplotlib/ │ │ ├── Config.in │ │ ├── python-matplotlib.hash │ │ ├── python-matplotlib.mk │ │ └── setup.cfg │ ├── python-mbstrdecoder/ │ │ ├── Config.in │ │ ├── python-mbstrdecoder.hash │ │ └── python-mbstrdecoder.mk │ ├── python-mimeparse/ │ │ ├── Config.in │ │ ├── python-mimeparse.hash │ │ └── python-mimeparse.mk │ ├── python-mistune/ │ │ ├── Config.in │ │ ├── python-mistune.hash │ │ └── python-mistune.mk │ ├── python-mock/ │ │ ├── Config.in │ │ ├── python-mock.hash │ │ └── python-mock.mk │ ├── python-modbus-tk/ │ │ ├── Config.in │ │ ├── python-modbus-tk.hash │ │ └── python-modbus-tk.mk │ ├── python-more-itertools/ │ │ ├── Config.in │ │ ├── python-more-itertools.hash │ │ └── python-more-itertools.mk │ ├── python-msgfy/ │ │ ├── Config.in │ │ ├── python-msgfy.hash │ │ └── python-msgfy.mk │ ├── python-msgpack/ │ │ ├── Config.in │ │ ├── python-msgpack.hash │ │ └── python-msgpack.mk │ ├── python-multidict/ │ │ ├── Config.in │ │ ├── python-multidict.hash │ │ └── python-multidict.mk │ ├── python-mutagen/ │ │ ├── Config.in │ │ ├── python-mutagen.hash │ │ └── python-mutagen.mk │ ├── python-mwclient/ │ │ ├── Config.in │ │ ├── python-mwclient.hash │ │ └── python-mwclient.mk │ ├── python-mwscrape/ │ │ ├── Config.in │ │ ├── python-mwscrape.hash │ │ └── python-mwscrape.mk │ ├── python-mwscrape2slob/ │ │ ├── Config.in │ │ ├── python-mwscrape2slob.hash │ │ └── python-mwscrape2slob.mk │ ├── python-nested-dict/ │ │ ├── Config.in │ │ ├── python-nested-dict.hash │ │ └── python-nested-dict.mk │ ├── python-netaddr/ │ │ ├── Config.in │ │ ├── python-netaddr.hash │ │ └── python-netaddr.mk │ ├── python-netifaces/ │ │ ├── Config.in │ │ ├── python-netifaces.hash │ │ └── python-netifaces.mk │ ├── python-networkmanager/ │ │ ├── Config.in │ │ ├── python-networkmanager.hash │ │ └── python-networkmanager.mk │ ├── python-networkx/ │ │ ├── Config.in │ │ ├── python-networkx.hash │ │ └── python-networkx.mk │ ├── python-nfc/ │ │ ├── Config.in │ │ ├── python-nfc.hash │ │ └── python-nfc.mk │ ├── python-numpy/ │ │ ├── Config.in │ │ ├── python-numpy.hash │ │ └── python-numpy.mk │ ├── python-oauthlib/ │ │ ├── Config.in │ │ ├── python-oauthlib.hash │ │ └── python-oauthlib.mk │ ├── python-opcua-asyncio/ │ │ ├── Config.in │ │ ├── python-opcua-asyncio.hash │ │ └── python-opcua-asyncio.mk │ ├── python-packaging/ │ │ ├── Config.in │ │ ├── python-packaging.hash │ │ └── python-packaging.mk │ ├── python-paho-mqtt/ │ │ ├── Config.in │ │ ├── python-paho-mqtt.hash │ │ └── python-paho-mqtt.mk │ ├── python-pam/ │ │ ├── 0001-dealloc.patch │ │ ├── 0002-nofree.patch │ │ ├── 0003-memory-errors-CVE2012-1502.patch │ │ ├── Config.in │ │ ├── python-pam.hash │ │ └── python-pam.mk │ ├── python-paramiko/ │ │ ├── Config.in │ │ ├── python-paramiko.hash │ │ └── python-paramiko.mk │ ├── python-parso/ │ │ ├── Config.in │ │ ├── python-parso.hash │ │ └── python-parso.mk │ ├── python-passlib/ │ │ ├── Config.in │ │ ├── python-passlib.hash │ │ └── python-passlib.mk │ ├── python-pathlib2/ │ │ ├── Config.in │ │ ├── python-pathlib2.hash │ │ └── python-pathlib2.mk │ ├── python-pathpy/ │ │ ├── Config.in │ │ ├── python-pathpy.hash │ │ └── python-pathpy.mk │ ├── python-pathtools/ │ │ ├── Config.in │ │ ├── python-pathtools.hash │ │ └── python-pathtools.mk │ ├── python-pathvalidate/ │ │ ├── Config.in │ │ ├── python-pathvalidate.hash │ │ └── python-pathvalidate.mk │ ├── python-pbr/ │ │ ├── python-pbr.hash │ │ └── python-pbr.mk │ ├── python-peewee/ │ │ ├── Config.in │ │ ├── python-peewee.hash │ │ └── python-peewee.mk │ ├── python-peewee-migrate/ │ │ ├── Config.in │ │ ├── python-peewee-migrate.hash │ │ └── python-peewee-migrate.mk │ ├── python-periphery/ │ │ ├── Config.in │ │ ├── python-periphery.hash │ │ └── python-periphery.mk │ ├── python-pexpect/ │ │ ├── Config.in │ │ ├── python-pexpect.hash │ │ └── python-pexpect.mk │ ├── python-picamera/ │ │ ├── 0001-enable-awb-greyworld-mode.patch │ │ ├── Config.in │ │ └── python-picamera.mk │ ├── python-pickleshare/ │ │ ├── Config.in │ │ ├── python-pickleshare.hash │ │ └── python-pickleshare.mk │ ├── python-piexif/ │ │ ├── Config.in │ │ ├── python-piexif.hash │ │ └── python-piexif.mk │ ├── python-pigpio/ │ │ ├── Config.in │ │ ├── python-pigpio.hash │ │ └── python-pigpio.mk │ ├── python-pillow/ │ │ ├── Config.in │ │ ├── python-pillow.hash │ │ └── python-pillow.mk │ ├── python-pip/ │ │ ├── Config.in │ │ ├── python-pip.hash │ │ └── python-pip.mk │ ├── python-pluggy/ │ │ ├── Config.in │ │ ├── python-pluggy.hash │ │ └── python-pluggy.mk │ ├── python-ply/ │ │ ├── Config.in │ │ ├── python-ply.hash │ │ └── python-ply.mk │ ├── python-portend/ │ │ ├── Config.in │ │ ├── python-portend.hash │ │ └── python-portend.mk │ ├── python-posix-ipc/ │ │ ├── Config.in │ │ ├── python-posix-ipc.hash │ │ └── python-posix-ipc.mk │ ├── python-priority/ │ │ ├── Config.in │ │ ├── python-priority.hash │ │ └── python-priority.mk │ ├── python-prompt-toolkit/ │ │ ├── Config.in │ │ ├── python-prompt-toolkit.hash │ │ └── python-prompt-toolkit.mk │ ├── python-protobuf/ │ │ ├── Config.in │ │ ├── python-protobuf.hash │ │ └── python-protobuf.mk │ ├── python-psutil/ │ │ ├── Config.in │ │ ├── python-psutil.hash │ │ └── python-psutil.mk │ ├── python-psycopg2/ │ │ ├── Config.in │ │ ├── python-psycopg2.hash │ │ └── python-psycopg2.mk │ ├── python-ptyprocess/ │ │ ├── Config.in │ │ ├── python-ptyprocess.hash │ │ └── python-ptyprocess.mk │ ├── python-pudb/ │ │ ├── Config.in │ │ ├── python-pudb.hash │ │ └── python-pudb.mk │ ├── python-py/ │ │ ├── Config.in │ │ ├── python-py.hash │ │ └── python-py.mk │ ├── python-pyaes/ │ │ ├── Config.in │ │ ├── python-pyaes.hash │ │ └── python-pyaes.mk │ ├── python-pyalsa/ │ │ ├── Config.in │ │ ├── python-pyalsa.hash │ │ └── python-pyalsa.mk │ ├── python-pyasn1/ │ │ ├── Config.in │ │ ├── python-pyasn1.hash │ │ └── python-pyasn1.mk │ ├── python-pyasn1-modules/ │ │ ├── Config.in │ │ ├── python-pyasn1-modules.hash │ │ └── python-pyasn1-modules.mk │ ├── python-pybind/ │ │ ├── Config.in │ │ ├── python-pybind.hash │ │ └── python-pybind.mk │ ├── python-pycairo/ │ │ ├── Config.in │ │ ├── python-pycairo.hash │ │ └── python-pycairo.mk │ ├── python-pycares/ │ │ ├── Config.in │ │ ├── python-pycares.hash │ │ └── python-pycares.mk │ ├── python-pycli/ │ │ ├── Config.in │ │ ├── python-pycli.hash │ │ └── python-pycli.mk │ ├── python-pycparser/ │ │ ├── Config.in │ │ ├── python-pycparser.hash │ │ └── python-pycparser.mk │ ├── python-pycryptodomex/ │ │ ├── Config.in │ │ ├── python-pycryptodomex.hash │ │ └── python-pycryptodomex.mk │ ├── python-pycups/ │ │ ├── Config.in │ │ ├── python-pycups.hash │ │ └── python-pycups.mk │ ├── python-pycurl/ │ │ ├── Config.in │ │ ├── python-pycurl.hash │ │ └── python-pycurl.mk │ ├── python-pydal/ │ │ ├── Config.in │ │ ├── python-pydal.hash │ │ └── python-pydal.mk │ ├── python-pydantic/ │ │ ├── Config.in │ │ ├── python-pydantic.hash │ │ └── python-pydantic.mk │ ├── python-pyelftools/ │ │ ├── Config.in │ │ ├── python-pyelftools.hash │ │ └── python-pyelftools.mk │ ├── python-pyftpdlib/ │ │ ├── Config.in │ │ ├── python-pyftpdlib.hash │ │ └── python-pyftpdlib.mk │ ├── python-pygame/ │ │ ├── Config.in │ │ ├── python-pygame.hash │ │ └── python-pygame.mk │ ├── python-pygments/ │ │ ├── Config.in │ │ ├── python-pygments.hash │ │ └── python-pygments.mk │ ├── python-pyhamcrest/ │ │ ├── Config.in │ │ ├── python-pyhamcrest.hash │ │ └── python-pyhamcrest.mk │ ├── python-pyhocon/ │ │ ├── Config.in │ │ ├── python-pyhocon.hash │ │ └── python-pyhocon.mk │ ├── python-pyicu/ │ │ ├── Config.in │ │ ├── python-pyicu.hash │ │ └── python-pyicu.mk │ ├── python-pyinotify/ │ │ ├── Config.in │ │ ├── python-pyinotify.hash │ │ └── python-pyinotify.mk │ ├── python-pyjwt/ │ │ ├── Config.in │ │ ├── python-pyjwt.hash │ │ └── python-pyjwt.mk │ ├── python-pylibftdi/ │ │ ├── 0001-do-not-use-find-library.patch │ │ ├── Config.in │ │ ├── python-pylibftdi.hash │ │ └── python-pylibftdi.mk │ ├── python-pylru/ │ │ ├── Config.in │ │ ├── python-pylru.hash │ │ └── python-pylru.mk │ ├── python-pymodbus/ │ │ ├── Config.in │ │ ├── python-pymodbus.hash │ │ └── python-pymodbus.mk │ ├── python-pymongo/ │ │ ├── Config.in │ │ ├── python-pymongo.hash │ │ └── python-pymongo.mk │ ├── python-pymupdf/ │ │ ├── Config.in │ │ ├── python-pymupdf.hash │ │ └── python-pymupdf.mk │ ├── python-pymysql/ │ │ ├── Config.in │ │ ├── python-pymysql.hash │ │ └── python-pymysql.mk │ ├── python-pynacl/ │ │ ├── 0001-Remove-spurious-requirement-for-wheel-596.patch │ │ ├── Config.in │ │ ├── python-pynacl.hash │ │ └── python-pynacl.mk │ ├── python-pyndiff/ │ │ ├── Config.in │ │ ├── python-pyndiff.hash │ │ └── python-pyndiff.mk │ ├── python-pyopenssl/ │ │ ├── Config.in │ │ ├── python-pyopenssl.hash │ │ └── python-pyopenssl.mk │ ├── python-pyparsing/ │ │ ├── Config.in │ │ ├── python-pyparsing.hash │ │ └── python-pyparsing.mk │ ├── python-pyparted/ │ │ ├── Config.in │ │ ├── python-pyparted.hash │ │ └── python-pyparted.mk │ ├── python-pypcap/ │ │ ├── Config.in │ │ ├── python-pypcap.hash │ │ └── python-pypcap.mk │ ├── python-pyqrcode/ │ │ ├── Config.in │ │ ├── python-pyqrcode.hash │ │ └── python-pyqrcode.mk │ ├── python-pyqt5/ │ │ ├── 0001-configure-skip-qtdetail.patch │ │ ├── 0002-fix-qt-5.6.2.patch │ │ ├── 0003-remove-WindowOkButtonHint-and-WindowCancelButtonHint.patch │ │ ├── 0004-drop-qttest-qtestmouse-waitforevents.patch │ │ ├── Config.in │ │ ├── python-pyqt5.hash │ │ └── python-pyqt5.mk │ ├── python-pyratemp/ │ │ ├── Config.in │ │ ├── python-pyratemp.hash │ │ └── python-pyratemp.mk │ ├── python-pyrex/ │ │ ├── python-pyrex.hash │ │ └── python-pyrex.mk │ ├── python-pyro/ │ │ ├── Config.in │ │ ├── python-pyro.hash │ │ └── python-pyro.mk │ ├── python-pyroute2/ │ │ ├── Config.in │ │ ├── python-pyroute2.hash │ │ └── python-pyroute2.mk │ ├── python-pysendfile/ │ │ ├── Config.in │ │ ├── python-pysendfile.hash │ │ └── python-pysendfile.mk │ ├── python-pysftp/ │ │ ├── Config.in │ │ ├── python-pysftp.hash │ │ └── python-pysftp.mk │ ├── python-pysmb/ │ │ ├── Config.in │ │ ├── python-pysmb.hash │ │ └── python-pysmb.mk │ ├── python-pysmi/ │ │ ├── Config.in │ │ ├── python-pysmi.hash │ │ └── python-pysmi.mk │ ├── python-pysnmp/ │ │ ├── Config.in │ │ ├── python-pysnmp.hash │ │ └── python-pysnmp.mk │ ├── python-pysnmp-mibs/ │ │ ├── Config.in │ │ ├── python-pysnmp-mibs.hash │ │ └── python-pysnmp-mibs.mk │ ├── python-pysocks/ │ │ ├── Config.in │ │ ├── python-pysocks.hash │ │ └── python-pysocks.mk │ ├── python-pytablereader/ │ │ ├── Config.in │ │ ├── python-pytablereader.hash │ │ └── python-pytablereader.mk │ ├── python-pytablewriter/ │ │ ├── Config.in │ │ ├── python-pytablewriter.hash │ │ └── python-pytablewriter.mk │ ├── python-pytest/ │ │ ├── Config.in │ │ ├── python-pytest.hash │ │ └── python-pytest.mk │ ├── python-pytest-asyncio/ │ │ ├── Config.in │ │ ├── python-pytest-asyncio.hash │ │ └── python-pytest-asyncio.mk │ ├── python-pytrie/ │ │ ├── Config.in │ │ ├── python-pytrie.hash │ │ └── python-pytrie.mk │ ├── python-pytz/ │ │ ├── Config.in │ │ ├── python-pytz.hash │ │ └── python-pytz.mk │ ├── python-pyudev/ │ │ ├── 0001-Workaround-finding-libudev-on-systems-without-ldconf.patch │ │ ├── Config.in │ │ ├── python-pyudev.hash │ │ └── python-pyudev.mk │ ├── python-pyusb/ │ │ ├── Config.in │ │ ├── python-pyusb.hash │ │ └── python-pyusb.mk │ ├── python-pyxb/ │ │ ├── Config.in │ │ ├── python-pyxb.hash │ │ └── python-pyxb.mk │ ├── python-pyyaml/ │ │ ├── Config.in │ │ ├── python-pyyaml.hash │ │ └── python-pyyaml.mk │ ├── python-pyzmq/ │ │ ├── 0001-use-buildroot-zmq-version-instead-of-detect.patch │ │ ├── Config.in │ │ ├── python-pyzmq.hash │ │ └── python-pyzmq.mk │ ├── python-raven/ │ │ ├── Config.in │ │ ├── python-raven.hash │ │ └── python-raven.mk │ ├── python-redis/ │ │ ├── Config.in │ │ ├── python-redis.hash │ │ └── python-redis.mk │ ├── python-reentry/ │ │ ├── Config.in │ │ ├── python-reentry.hash │ │ └── python-reentry.mk │ ├── python-regex/ │ │ ├── Config.in │ │ ├── python-regex.hash │ │ └── python-regex.mk │ ├── python-remi/ │ │ ├── Config.in │ │ ├── python-remi.hash │ │ └── python-remi.mk │ ├── python-request-id/ │ │ ├── Config.in │ │ ├── python-request-id.hash │ │ └── python-request-id.mk │ ├── python-requests/ │ │ ├── Config.in │ │ ├── python-requests.hash │ │ └── python-requests.mk │ ├── python-requests-oauthlib/ │ │ ├── Config.in │ │ ├── python-requests-oauthlib.hash │ │ └── python-requests-oauthlib.mk │ ├── python-requests-toolbelt/ │ │ ├── Config.in │ │ ├── python-requests-toolbelt.hash │ │ └── python-requests-toolbelt.mk │ ├── python-rpi-gpio/ │ │ ├── 0001-fix-build-with-gcc-10.x.patch │ │ ├── Config.in │ │ ├── python-rpi-gpio.hash │ │ └── python-rpi-gpio.mk │ ├── python-rpi-ws281x/ │ │ ├── Config.in │ │ ├── python-rpi-ws281x.hash │ │ └── python-rpi-ws281x.mk │ ├── python-rq/ │ │ ├── Config.in │ │ ├── python-rq.hash │ │ └── python-rq.mk │ ├── python-rsa/ │ │ ├── Config.in │ │ ├── python-rsa.hash │ │ └── python-rsa.mk │ ├── python-rtslib-fb/ │ │ ├── Config.in │ │ ├── python-rtslib-fb.hash │ │ └── python-rtslib-fb.mk │ ├── python-s3transfer/ │ │ ├── Config.in │ │ ├── python-s3transfer.hash │ │ └── python-s3transfer.mk │ ├── python-scandir/ │ │ ├── Config.in │ │ ├── python-scandir.hash │ │ └── python-scandir.mk │ ├── python-scapy/ │ │ ├── Config.in │ │ ├── python-scapy.hash │ │ └── python-scapy.mk │ ├── python-schedule/ │ │ ├── Config.in │ │ ├── python-schedule.hash │ │ └── python-schedule.mk │ ├── python-sdnotify/ │ │ ├── Config.in │ │ ├── python-sdnotify.hash │ │ └── python-sdnotify.mk │ ├── python-secretstorage/ │ │ ├── Config.in │ │ ├── python-secretstorage.hash │ │ └── python-secretstorage.mk │ ├── python-see/ │ │ ├── Config.in │ │ ├── python-see.hash │ │ └── python-see.mk │ ├── python-semantic-version/ │ │ ├── python-semantic-version.hash │ │ └── python-semantic-version.mk │ ├── python-semver/ │ │ ├── Config.in │ │ ├── python-semver.hash │ │ └── python-semver.mk │ ├── python-sentry-sdk/ │ │ ├── Config.in │ │ ├── python-sentry-sdk.hash │ │ └── python-sentry-sdk.mk │ ├── python-serial/ │ │ ├── Config.in │ │ ├── python-serial.hash │ │ └── python-serial.mk │ ├── python-serial-asyncio/ │ │ ├── Config.in │ │ ├── python-serial-asyncio.hash │ │ └── python-serial-asyncio.mk │ ├── python-service-identity/ │ │ ├── Config.in │ │ ├── python-service-identity.hash │ │ └── python-service-identity.mk │ ├── python-setproctitle/ │ │ ├── Config.in │ │ ├── python-setproctitle.hash │ │ └── python-setproctitle.mk │ ├── python-setupnovernormalize/ │ │ ├── Config.in.host │ │ ├── python-setupnovernormalize.hash │ │ └── python-setupnovernormalize.mk │ ├── python-setuptools/ │ │ ├── 0001-add-executable.patch │ │ ├── Config.in │ │ ├── python-setuptools.hash │ │ └── python-setuptools.mk │ ├── python-setuptools-rust/ │ │ ├── python-setuptools-rust.hash │ │ └── python-setuptools-rust.mk │ ├── python-setuptools-scm/ │ │ ├── python-setuptools-scm.hash │ │ └── python-setuptools-scm.mk │ ├── python-setuptools-scm-git-archive/ │ │ ├── python-setuptools-scm-git-archive.hash │ │ └── python-setuptools-scm-git-archive.mk │ ├── python-sh/ │ │ ├── Config.in │ │ ├── python-sh.hash │ │ └── python-sh.mk │ ├── python-shutilwhich/ │ │ ├── Config.in │ │ ├── python-shutilwhich.hash │ │ └── python-shutilwhich.mk │ ├── python-simpleaudio/ │ │ ├── Config.in │ │ ├── python-simpleaudio.hash │ │ └── python-simpleaudio.mk │ ├── python-simplegeneric/ │ │ ├── Config.in │ │ ├── python-simplegeneric.hash │ │ └── python-simplegeneric.mk │ ├── python-simplejson/ │ │ ├── Config.in │ │ ├── python-simplejson.hash │ │ └── python-simplejson.mk │ ├── python-simplelogging/ │ │ ├── Config.in │ │ ├── python-simplelogging.hash │ │ └── python-simplelogging.mk │ ├── python-simplesqlite/ │ │ ├── Config.in │ │ ├── python-simplesqlite.hash │ │ └── python-simplesqlite.mk │ ├── python-singledispatch/ │ │ ├── Config.in │ │ ├── python-singledispatch.hash │ │ └── python-singledispatch.mk │ ├── python-sip/ │ │ ├── Config.in │ │ ├── python-sip.hash │ │ └── python-sip.mk │ ├── python-six/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── python-six.hash │ │ └── python-six.mk │ ├── python-slob/ │ │ ├── Config.in │ │ ├── python-slob.hash │ │ └── python-slob.mk │ ├── python-smbus-cffi/ │ │ ├── Config.in │ │ ├── python-smbus-cffi.hash │ │ └── python-smbus-cffi.mk │ ├── python-smbus2/ │ │ ├── Config.in │ │ ├── python-smbus2.hash │ │ └── python-smbus2.mk │ ├── python-smmap2/ │ │ ├── Config.in │ │ ├── python-smmap2.hash │ │ └── python-smmap2.mk │ ├── python-snappy/ │ │ ├── Config.in │ │ ├── python-snappy.hash │ │ └── python-snappy.mk │ ├── python-socketio/ │ │ ├── Config.in │ │ ├── python-socketio.hash │ │ └── python-socketio.mk │ ├── python-sockjs/ │ │ ├── Config.in │ │ ├── python-sockjs.hash │ │ └── python-sockjs.mk │ ├── python-sortedcontainers/ │ │ ├── Config.in │ │ ├── python-sortedcontainers.hash │ │ └── python-sortedcontainers.mk │ ├── python-soupsieve/ │ │ ├── Config.in │ │ ├── python-soupsieve.hash │ │ └── python-soupsieve.mk │ ├── python-spidev/ │ │ ├── Config.in │ │ ├── python-spidev.hash │ │ └── python-spidev.mk │ ├── python-sqlalchemy/ │ │ ├── Config.in │ │ ├── python-sqlalchemy.hash │ │ └── python-sqlalchemy.mk │ ├── python-sqliteschema/ │ │ ├── Config.in │ │ ├── python-sqliteschema.hash │ │ └── python-sqliteschema.mk │ ├── python-sqlparse/ │ │ ├── Config.in │ │ ├── python-sqlparse.hash │ │ └── python-sqlparse.mk │ ├── python-subprocess32/ │ │ ├── Config.in │ │ ├── python-subprocess32.hash │ │ └── python-subprocess32.mk │ ├── python-systemd/ │ │ ├── Config.in │ │ ├── python-systemd.hash │ │ └── python-systemd.mk │ ├── python-tabledata/ │ │ ├── Config.in │ │ ├── python-tabledata.hash │ │ └── python-tabledata.mk │ ├── python-tempora/ │ │ ├── Config.in │ │ ├── python-tempora.hash │ │ └── python-tempora.mk │ ├── python-termcolor/ │ │ ├── Config.in │ │ ├── python-termcolor.hash │ │ └── python-termcolor.mk │ ├── python-terminaltables/ │ │ ├── Config.in │ │ ├── python-terminaltables.hash │ │ └── python-terminaltables.mk │ ├── python-texttable/ │ │ ├── Config.in │ │ ├── python-texttable.hash │ │ └── python-texttable.mk │ ├── python-thrift/ │ │ ├── Config.in │ │ ├── python-thrift.hash │ │ └── python-thrift.mk │ ├── python-tinyrpc/ │ │ ├── Config.in │ │ ├── python-tinyrpc.hash │ │ └── python-tinyrpc.mk │ ├── python-tomako/ │ │ ├── Config.in │ │ ├── python-tomako.hash │ │ └── python-tomako.mk │ ├── python-toml/ │ │ ├── Config.in │ │ ├── python-toml.hash │ │ └── python-toml.mk │ ├── python-tornado/ │ │ ├── Config.in │ │ ├── python-tornado.hash │ │ └── python-tornado.mk │ ├── python-tqdm/ │ │ ├── Config.in │ │ ├── python-tqdm.hash │ │ └── python-tqdm.mk │ ├── python-traitlets/ │ │ ├── Config.in │ │ ├── python-traitlets.hash │ │ └── python-traitlets.mk │ ├── python-treq/ │ │ ├── Config.in │ │ ├── python-treq.hash │ │ └── python-treq.mk │ ├── python-twisted/ │ │ ├── Config.in │ │ ├── python-twisted.hash │ │ └── python-twisted.mk │ ├── python-txaio/ │ │ ├── Config.in │ │ ├── python-txaio.hash │ │ └── python-txaio.mk │ ├── python-txdbus/ │ │ ├── Config.in │ │ ├── python-txdbus.hash │ │ └── python-txdbus.mk │ ├── python-txtorcon/ │ │ ├── Config.in │ │ ├── python-txtorcon.hash │ │ └── python-txtorcon.mk │ ├── python-typepy/ │ │ ├── Config.in │ │ ├── python-typepy.hash │ │ └── python-typepy.mk │ ├── python-typing/ │ │ ├── Config.in │ │ ├── python-typing.hash │ │ └── python-typing.mk │ ├── python-typing-extensions/ │ │ ├── Config.in │ │ ├── python-typing-extensions.hash │ │ └── python-typing-extensions.mk │ ├── python-u-msgpack/ │ │ ├── Config.in │ │ ├── python-u-msgpack.hash │ │ └── python-u-msgpack.mk │ ├── python-ubjson/ │ │ ├── Config.in │ │ ├── python-ubjson.hash │ │ └── python-ubjson.mk │ ├── python-ujson/ │ │ ├── 0001-Add-support-for-aarch64_be-or1k-and-microblazebe.patch │ │ ├── 0002-Add-support-of-ARC-architecture.patch │ │ ├── 0003-Add-support-for-microblaze.patch │ │ ├── 0004-Pseiderer-add-nios2-and-xtensa-001.patch │ │ ├── Config.in │ │ ├── python-ujson.hash │ │ └── python-ujson.mk │ ├── python-unittest-xml-reporting/ │ │ ├── Config.in │ │ ├── python-unittest-xml-reporting.hash │ │ └── python-unittest-xml-reporting.mk │ ├── python-unqlite/ │ │ ├── Config.in │ │ ├── python-unqlite.hash │ │ └── python-unqlite.mk │ ├── python-urllib3/ │ │ ├── Config.in │ │ ├── python-urllib3.hash │ │ └── python-urllib3.mk │ ├── python-urwid/ │ │ ├── Config.in │ │ ├── python-urwid.hash │ │ └── python-urwid.mk │ ├── python-uvloop/ │ │ ├── Config.in │ │ ├── python-uvloop.hash │ │ └── python-uvloop.mk │ ├── python-validators/ │ │ ├── Config.in │ │ ├── python-validators.hash │ │ └── python-validators.mk │ ├── python-vcversioner/ │ │ ├── python-vcversioner.hash │ │ └── python-vcversioner.mk │ ├── python-versiontools/ │ │ ├── Config.in │ │ ├── python-versiontools.hash │ │ └── python-versiontools.mk │ ├── python-visitor/ │ │ ├── Config.in │ │ ├── python-visitor.hash │ │ └── python-visitor.mk │ ├── python-watchdog/ │ │ ├── Config.in │ │ ├── python-watchdog.hash │ │ └── python-watchdog.mk │ ├── python-wcwidth/ │ │ ├── Config.in │ │ ├── python-wcwidth.hash │ │ └── python-wcwidth.mk │ ├── python-web2py/ │ │ ├── Config.in │ │ ├── S51web2py │ │ ├── python-web2py.hash │ │ ├── python-web2py.mk │ │ └── web2py.service │ ├── python-webargs/ │ │ ├── Config.in │ │ ├── python-webargs.hash │ │ └── python-webargs.mk │ ├── python-webencodings/ │ │ ├── Config.in │ │ ├── python-webencodings.hash │ │ └── python-webencodings.mk │ ├── python-webob/ │ │ ├── Config.in │ │ ├── python-webob.hash │ │ └── python-webob.mk │ ├── python-webpy/ │ │ ├── Config.in │ │ ├── python-webpy.hash │ │ └── python-webpy.mk │ ├── python-websocket-client/ │ │ ├── Config.in │ │ ├── python-websocket-client.hash │ │ └── python-websocket-client.mk │ ├── python-websockets/ │ │ ├── Config.in │ │ ├── python-websockets.hash │ │ └── python-websockets.mk │ ├── python-werkzeug/ │ │ ├── Config.in │ │ ├── python-werkzeug.hash │ │ └── python-werkzeug.mk │ ├── python-whoosh/ │ │ ├── Config.in │ │ ├── python-whoosh.hash │ │ └── python-whoosh.mk │ ├── python-wrapt/ │ │ ├── Config.in │ │ ├── python-wrapt.hash │ │ └── python-wrapt.mk │ ├── python-ws4py/ │ │ ├── 0001-Adjust-ws4py-for-Python-3.7-syntax.patch │ │ ├── Config.in │ │ ├── python-ws4py.hash │ │ └── python-ws4py.mk │ ├── python-wsaccel/ │ │ ├── Config.in │ │ ├── python-wsaccel.hash │ │ └── python-wsaccel.mk │ ├── python-wtforms/ │ │ ├── Config.in │ │ ├── python-wtforms.hash │ │ └── python-wtforms.mk │ ├── python-xlib/ │ │ ├── Config.in │ │ ├── python-xlib.hash │ │ └── python-xlib.mk │ ├── python-xlrd/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── python-xlrd.hash │ │ └── python-xlrd.mk │ ├── python-xlsxwriter/ │ │ ├── Config.in │ │ ├── python-xlsxwriter.hash │ │ └── python-xlsxwriter.mk │ ├── python-xlutils/ │ │ ├── Config.in │ │ ├── python-xlutils.hash │ │ └── python-xlutils.mk │ ├── python-xlwt/ │ │ ├── Config.in │ │ ├── python-xlwt.hash │ │ └── python-xlwt.mk │ ├── python-xmljson/ │ │ ├── Config.in │ │ ├── python-xmljson.hash │ │ └── python-xmljson.mk │ ├── python-xmltodict/ │ │ ├── Config.in │ │ ├── python-xmltodict.hash │ │ └── python-xmltodict.mk │ ├── python-xmodem/ │ │ ├── Config.in │ │ ├── python-xmodem.hash │ │ └── python-xmodem.mk │ ├── python-yarl/ │ │ ├── Config.in │ │ ├── python-yarl.hash │ │ └── python-yarl.mk │ ├── python-yatl/ │ │ ├── Config.in │ │ ├── python-yatl.hash │ │ └── python-yatl.mk │ ├── python-yieldfrom/ │ │ ├── Config.in │ │ ├── python-yieldfrom.hash │ │ └── python-yieldfrom.mk │ ├── python-zc-lockfile/ │ │ ├── Config.in │ │ ├── python-zc-lockfile.hash │ │ └── python-zc-lockfile.mk │ ├── python-zeroconf/ │ │ ├── Config.in │ │ ├── python-zeroconf.hash │ │ └── python-zeroconf.mk │ ├── python-zope-interface/ │ │ ├── Config.in │ │ ├── python-zope-interface.hash │ │ └── python-zope-interface.mk │ ├── python3/ │ │ ├── 0001-Make-the-build-of-pyc-files-conditional.patch │ │ ├── 0002-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch │ │ ├── 0003-Add-infrastructure-to-disable-the-build-of-certain-e.patch │ │ ├── 0004-Adjust-library-header-paths-for-cross-compilation.patch │ │ ├── 0005-Don-t-look-in-usr-lib-termcap-for-libraries.patch │ │ ├── 0006-Don-t-add-multiarch-paths.patch │ │ ├── 0007-Abort-on-failed-module-build.patch │ │ ├── 0008-Serial-ioctl-workaround.patch │ │ ├── 0009-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch │ │ ├── 0010-Misc-python-config.sh.in-ensure-sed-invocations-only.patch │ │ ├── 0011-Override-system-locale-and-set-to-default-when-addin.patch │ │ ├── 0012-Add-importlib-fix-for-PEP-3147-issue.patch │ │ ├── 0013-Add-an-option-to-disable-installation-of-test-module.patch │ │ ├── 0014-Add-an-option-to-disable-pydoc.patch │ │ ├── 0015-Add-an-option-to-disable-lib2to3.patch │ │ ├── 0016-Add-option-to-disable-the-sqlite3-module.patch │ │ ├── 0017-Add-an-option-to-disable-the-tk-module.patch │ │ ├── 0018-Add-an-option-to-disable-the-curses-module.patch │ │ ├── 0019-Add-an-option-to-disable-expat.patch │ │ ├── 0020-Add-an-option-to-disable-CJK-codecs.patch │ │ ├── 0021-Add-an-option-to-disable-NIS.patch │ │ ├── 0022-Add-an-option-to-disable-unicodedata.patch │ │ ├── 0023-Add-an-option-to-disable-IDLE.patch │ │ ├── 0024-Add-an-option-to-disable-decimal.patch │ │ ├── 0025-Add-an-option-to-disable-the-ossaudiodev-module.patch │ │ ├── 0026-Add-an-option-to-disable-openssl-support.patch │ │ ├── 0027-Add-an-option-to-disable-the-readline-module.patch │ │ ├── 0028-Add-options-to-disable-zlib-bzip2-and-xz-modules.patch │ │ ├── 0029-python-config.sh-don-t-reassign-prefix.patch │ │ ├── 0030-Fix-cross-compiling-the-uuid-module.patch │ │ ├── 0031-Add-an-option-to-disable-uuid-module.patch │ │ ├── 0032-fix-building-on-older-distributions.patch │ │ ├── 0033-configure.ac-fixup-CC-print-multiarch-output-for-mus.patch │ │ ├── 0034-Add-an-option-to-disable-the-berkeleydb-module.patch │ │ ├── 0035-lib-crypt-uClibc-ng-doesn-t-set-errno-when-encryptio.patch │ │ ├── 0036-Fix-dictionary-iteration-error-in-_ExecutorManagerTh.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── python3.hash │ │ └── python3.mk │ ├── python3-cffi/ │ │ └── python3-cffi.mk │ ├── python3-cheetah/ │ │ └── python3-cheetah.mk │ ├── python3-cython/ │ │ └── python3-cython.mk │ ├── python3-ply/ │ │ └── python3-ply.mk │ ├── python3-psutil/ │ │ └── python3-psutil.mk │ ├── python3-pycparser/ │ │ └── python3-pycparser.mk │ ├── python3-pycryptodomex/ │ │ └── python3-pycryptodomex.mk │ ├── python3-pyelftools/ │ │ └── python3-pyelftools.mk │ ├── python3-pyyaml/ │ │ └── python3-pyyaml.mk │ ├── python3-regex/ │ │ └── python3-regex.mk │ ├── python3-setuptools/ │ │ └── python3-setuptools.mk │ ├── python3-six/ │ │ └── python3-six.mk │ ├── qcom-db410c-firmware/ │ │ ├── Config.in │ │ ├── qcom-db410c-firmware.hash │ │ └── qcom-db410c-firmware.mk │ ├── qdecoder/ │ │ ├── Config.in │ │ ├── qdecoder.hash │ │ └── qdecoder.mk │ ├── qemu/ │ │ ├── 0002-softmmu-qemu-seccomp.c-add-missing-header-for-CLONE_.patch │ │ ├── 0002-tests-fp-disable-fp-bench-build-by-default.patch │ │ ├── 0003-target-sh4-Mask-restore-of-env-flags-from-tb-flags.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── qemu.hash │ │ └── qemu.mk │ ├── qextserialport/ │ │ ├── 0001-Create-a-main-include-file-QExtSerialPort.patch │ │ ├── 0002-Tell-qmake-to-add-a-pkgconfig-file-to-ease-usage-wit.patch │ │ ├── Config.in │ │ ├── qextserialport.hash │ │ └── qextserialport.mk │ ├── qhull/ │ │ ├── Config.in │ │ ├── qhull.hash │ │ └── qhull.mk │ ├── qjson/ │ │ ├── Config.in │ │ ├── qjson.hash │ │ └── qjson.mk │ ├── qlibc/ │ │ ├── Config.in │ │ ├── qlibc.hash │ │ └── qlibc.mk │ ├── qoriq-rcw/ │ │ ├── Config.in.host │ │ ├── qoriq-rcw.hash │ │ └── qoriq-rcw.mk │ ├── qpdf/ │ │ ├── 0001-libtests-cxx11.cc-fix-build-with-gcc-4.8.patch │ │ ├── 0002-Fix-some-pipelines-to-be-safe-if-downstream-write-fails.patch │ │ ├── Config.in │ │ ├── qpdf.hash │ │ └── qpdf.mk │ ├── qpid-proton/ │ │ ├── Config.in │ │ ├── qpid-proton.hash │ │ └── qpid-proton.mk │ ├── qprint/ │ │ ├── Config.in │ │ ├── qprint.hash │ │ └── qprint.mk │ ├── qt-webkit-kiosk/ │ │ ├── Config.in │ │ ├── qt-webkit-kiosk.hash │ │ └── qt-webkit-kiosk.mk │ ├── qt5/ │ │ ├── Config.in │ │ ├── qt5.mk │ │ ├── qt53d/ │ │ │ ├── Config.in │ │ │ ├── qt53d.hash │ │ │ └── qt53d.mk │ │ ├── qt5base/ │ │ │ ├── 0001-qtbase-Fix-build-error-when-using-EGL.patch │ │ │ ├── 0002-double-conversion-enable-for-microblaze.patch │ │ │ ├── 0003-double-conversion-enable-for-nios2.patch │ │ │ ├── 0004-double-conversion-enable-for-xtensa.patch │ │ │ ├── 0005-eglfs-avoid-breaking-compilation-for-obscure-EGLNativeDisplayType-types.patch │ │ │ ├── 0006-Fix-build-with-GCC-11-include-limits.patch │ │ │ ├── 0007-Build-fixes-for-GCC-11.patch │ │ │ ├── 0008-Add-missing-limits-include.patch │ │ │ ├── 0009-Fix-build-on-riscv32.patch │ │ │ ├── Config.in │ │ │ ├── qmake.conf.in │ │ │ ├── qplatformdefs.h │ │ │ ├── qt.conf.in │ │ │ ├── qt5base.hash │ │ │ └── qt5base.mk │ │ ├── qt5charts/ │ │ │ ├── Config.in │ │ │ ├── qt5charts.hash │ │ │ └── qt5charts.mk │ │ ├── qt5coap/ │ │ │ ├── Config.in │ │ │ ├── qt5coap.hash │ │ │ └── qt5coap.mk │ │ ├── qt5connectivity/ │ │ │ ├── Config.in │ │ │ ├── qt5connectivity.hash │ │ │ └── qt5connectivity.mk │ │ ├── qt5declarative/ │ │ │ ├── 0001-qsgtexture-fix-debug-build-with-uclibc.patch │ │ │ ├── 0002-qv4regexp_p-needs-c-limits-include-instead-of-plain-.patch │ │ │ ├── 0003-qqmlprofilerevent_p-needs-c-limits-inlcude-fixes-gcc.patch │ │ │ ├── Config.in │ │ │ ├── qt5declarative.hash │ │ │ └── qt5declarative.mk │ │ ├── qt5enginio/ │ │ │ ├── 0001-Do-not-use-deprecated-QLinkedList.patch │ │ │ ├── Config.in │ │ │ ├── qt5enginio.hash │ │ │ └── qt5enginio.mk │ │ ├── qt5graphicaleffects/ │ │ │ ├── Config.in │ │ │ ├── qt5graphicaleffects.hash │ │ │ └── qt5graphicaleffects.mk │ │ ├── qt5imageformats/ │ │ │ ├── Config.in │ │ │ ├── qt5imageformats.hash │ │ │ └── qt5imageformats.mk │ │ ├── qt5knx/ │ │ │ ├── Config.in │ │ │ ├── qt5knx.hash │ │ │ └── qt5knx.mk │ │ ├── qt5location/ │ │ │ ├── 0001-3rdparty-mapbox-gl-native-fix-musl-compile-pthread_g.patch │ │ │ ├── Config.in │ │ │ ├── qt5location.hash │ │ │ └── qt5location.mk │ │ ├── qt5lottie/ │ │ │ ├── Config.in │ │ │ ├── qt5lottie.hash │ │ │ └── qt5lottie.mk │ │ ├── qt5mqtt/ │ │ │ ├── Config.in │ │ │ ├── qt5mqtt.hash │ │ │ └── qt5mqtt.mk │ │ ├── qt5multimedia/ │ │ │ ├── Config.in │ │ │ ├── qt5multimedia.hash │ │ │ └── qt5multimedia.mk │ │ ├── qt5opcua/ │ │ │ ├── Config.in │ │ │ ├── qt5opcua.hash │ │ │ └── qt5opcua.mk │ │ ├── qt5quickcontrols/ │ │ │ ├── Config.in │ │ │ ├── qt5quickcontrols.hash │ │ │ └── qt5quickcontrols.mk │ │ ├── qt5quickcontrols2/ │ │ │ ├── Config.in │ │ │ ├── qt5quickcontrols2.hash │ │ │ └── qt5quickcontrols2.mk │ │ ├── qt5quicktimeline/ │ │ │ ├── Config.in │ │ │ ├── qt5quicktimeline.hash │ │ │ └── qt5quicktimeline.mk │ │ ├── qt5remoteobjects/ │ │ │ ├── Config.in │ │ │ ├── qt5remoteobjects.hash │ │ │ └── qt5remoteobjects.mk │ │ ├── qt5script/ │ │ │ ├── 0001-Detect-32-bits-armv8-a-architecture.patch │ │ │ ├── Config.in │ │ │ ├── qt5script.hash │ │ │ └── qt5script.mk │ │ ├── qt5scxml/ │ │ │ ├── Config.in │ │ │ ├── qt5scxml.hash │ │ │ └── qt5scxml.mk │ │ ├── qt5sensors/ │ │ │ ├── Config.in │ │ │ ├── qt5sensors.hash │ │ │ └── qt5sensors.mk │ │ ├── qt5serialbus/ │ │ │ ├── Config.in │ │ │ ├── qt5serialbus.hash │ │ │ └── qt5serialbus.mk │ │ ├── qt5serialport/ │ │ │ ├── Config.in │ │ │ ├── qt5serialport.hash │ │ │ └── qt5serialport.mk │ │ ├── qt5svg/ │ │ │ ├── Config.in │ │ │ ├── qt5svg.hash │ │ │ └── qt5svg.mk │ │ ├── qt5tools/ │ │ │ ├── 0001-Disable-designer-tool-fixes-configure-error.patch │ │ │ ├── Config.in │ │ │ ├── qt5tools.hash │ │ │ └── qt5tools.mk │ │ ├── qt5virtualkeyboard/ │ │ │ ├── Config.in │ │ │ ├── qt5virtualkeyboard.hash │ │ │ └── qt5virtualkeyboard.mk │ │ ├── qt5wayland/ │ │ │ ├── Config.in │ │ │ ├── qt5wayland.hash │ │ │ └── qt5wayland.mk │ │ ├── qt5webchannel/ │ │ │ ├── Config.in │ │ │ ├── qt5webchannel.hash │ │ │ └── qt5webchannel.mk │ │ ├── qt5webengine/ │ │ │ ├── 0001-gn.pro-don-t-link-statically-with-libstc.patch │ │ │ ├── Config.in │ │ │ ├── chromium-latest.inc │ │ │ ├── host-pkg-config.in │ │ │ ├── qt5webengine.hash │ │ │ └── qt5webengine.mk │ │ ├── qt5webkit/ │ │ │ ├── 0001-qtwebkit-fix-QA-issue-bad-RPATH.patch │ │ │ ├── 0002-Exclude-backtrace-API-for-non-glibc-libraries.patch │ │ │ ├── 0003-Detect-32-bits-armv8-a-architecture.patch │ │ │ ├── 0004-Fix-installation-of-class-headers.patch │ │ │ ├── 0005-Fix-ICU-related-compile-failures.patch │ │ │ ├── 0006-configure-remove-legacy-reference-to-qtConfig-mircli.patch │ │ │ ├── 0007-Let-Bison-generate-the-header-directly-to-fix-build-.patch │ │ │ ├── 0008-let-bison-generate-the-header-directly-to-fix-build-.patch │ │ │ ├── 0009-Fix-ICU-related-compile-failures-from-capital-bool-d.patch │ │ │ ├── Config.in │ │ │ ├── qt5webkit.hash │ │ │ └── qt5webkit.mk │ │ ├── qt5webkit-examples/ │ │ │ ├── 0001-Build-examples.patch │ │ │ ├── 0002-Fix-QWebView-path.patch │ │ │ ├── 0003-Fix-QPainterPath-include.patch │ │ │ ├── Config.in │ │ │ ├── qt5webkit-examples.hash │ │ │ └── qt5webkit-examples.mk │ │ ├── qt5websockets/ │ │ │ ├── Config.in │ │ │ ├── qt5websockets.hash │ │ │ └── qt5websockets.mk │ │ ├── qt5webview/ │ │ │ ├── Config.in │ │ │ ├── qt5webview.hash │ │ │ └── qt5webview.mk │ │ ├── qt5x11extras/ │ │ │ ├── Config.in │ │ │ ├── qt5x11extras.hash │ │ │ └── qt5x11extras.mk │ │ └── qt5xmlpatterns/ │ │ ├── Config.in │ │ ├── qt5xmlpatterns.hash │ │ └── qt5xmlpatterns.mk │ ├── qt5cinex/ │ │ ├── 0001-Fix-execution-problem-with-Qt5.3.patch │ │ ├── CinematicExperience-demo │ │ ├── Config.in │ │ ├── qt5cinex.hash │ │ └── qt5cinex.mk │ ├── quagga/ │ │ ├── 0001-fix-ipctl-forwarding.patch │ │ ├── 0002-lib-prefix.h-fix-build-with-gcc-10.patch │ │ ├── 0003-Fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── quagga.hash │ │ ├── quagga.mk │ │ ├── quagga@.service │ │ └── quagga_tmpfiles.conf │ ├── quazip/ │ │ ├── Config.in │ │ ├── quazip.hash │ │ └── quazip.mk │ ├── quickjs/ │ │ ├── Config.in │ │ ├── quickjs.hash │ │ └── quickjs.mk │ ├── quota/ │ │ ├── 0001-quota-Use-realloc-3-instead-of-reallocarray-3.patch │ │ ├── Config.in │ │ ├── quota.hash │ │ └── quota.mk │ ├── quotatool/ │ │ ├── 0001-fix-missing-__P-definition-for-musl-compile.patch │ │ ├── Config.in │ │ ├── quotatool.hash │ │ └── quotatool.mk │ ├── qwt/ │ │ ├── Config.in │ │ ├── qwt.hash │ │ └── qwt.mk │ ├── rabbitmq-c/ │ │ ├── Config.in │ │ ├── rabbitmq-c.hash │ │ └── rabbitmq-c.mk │ ├── rabbitmq-server/ │ │ ├── Config.in │ │ ├── S50rabbitmq-server │ │ ├── rabbitmq-server.hash │ │ ├── rabbitmq-server.mk │ │ └── rabbitmq-server.service │ ├── racehound/ │ │ ├── 0001-Fix-module-install-path-lib-instead-of-usr-lib-prefi.patch │ │ ├── Config.in │ │ ├── racehound.hash │ │ └── racehound.mk │ ├── radvd/ │ │ ├── 50-radvd.preset │ │ ├── Config.in │ │ ├── S50radvd │ │ ├── radvd.hash │ │ └── radvd.mk │ ├── ramsmp/ │ │ ├── Config.in │ │ ├── Makefile │ │ ├── ramsmp.hash │ │ └── ramsmp.mk │ ├── ramspeed/ │ │ ├── Config.in │ │ ├── Makefile │ │ ├── ramspeed.hash │ │ └── ramspeed.mk │ ├── ranger/ │ │ ├── 0001-colorscheme-check-for-compiled-python-files.patch │ │ ├── Config.in │ │ ├── ranger.hash │ │ └── ranger.mk │ ├── rapidjson/ │ │ ├── Config.in │ │ ├── rapidjson.hash │ │ └── rapidjson.mk │ ├── rapidxml/ │ │ ├── 0001-ensure-internal-print-operations-are-declared-before.patch │ │ ├── Config.in │ │ ├── rapidxml.hash │ │ └── rapidxml.mk │ ├── raptor/ │ │ ├── 0001-configure.ac-remove-conditional-lib-inclusion.patch │ │ ├── 0002-Calcualte-max-nspace-declarations-correctly-for-XML-.patch │ │ ├── Config.in │ │ ├── raptor.hash │ │ └── raptor.mk │ ├── raspberrypi-usbboot/ │ │ ├── 0001-Makefile-allow-passing-CFLAGS-LDFLAGS.patch │ │ ├── Config.in.host │ │ ├── raspberrypi-usbboot.hash │ │ └── raspberrypi-usbboot.mk │ ├── raspi-gpio/ │ │ ├── Config.in │ │ ├── raspi-gpio.hash │ │ └── raspi-gpio.mk │ ├── ratpoison/ │ │ ├── Config.in │ │ ├── ratpoison.hash │ │ └── ratpoison.mk │ ├── rauc/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── rauc.hash │ │ └── rauc.mk │ ├── rcw-smarc-sal28/ │ │ ├── Config.in │ │ ├── rcw-smarc-sal28.hash │ │ └── rcw-smarc-sal28.mk │ ├── rdesktop/ │ │ ├── 0001-8bit-colors.patch │ │ ├── Config.in │ │ ├── rdesktop.hash │ │ └── rdesktop.mk │ ├── re2/ │ │ ├── Config.in │ │ ├── re2.hash │ │ └── re2.mk │ ├── read-edid/ │ │ ├── 0001-Fix-install-file-list.patch │ │ ├── 0002-Fix-compiler-check.patch │ │ ├── 0003-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── read-edid.hash │ │ └── read-edid.mk │ ├── readline/ │ │ ├── 0001-curses-link.patch │ │ ├── Config.in │ │ ├── inputrc │ │ ├── readline.hash │ │ └── readline.mk │ ├── reaver/ │ │ ├── Config.in │ │ ├── reaver.hash │ │ └── reaver.mk │ ├── redir/ │ │ ├── Config.in │ │ ├── redir.hash │ │ └── redir.mk │ ├── redis/ │ │ ├── 0001-uclibc.patch │ │ ├── 0002-largefile-conditional-define.patch │ │ ├── 0003-redis.conf-adjust-defauts-for-buildroot.patch │ │ ├── Config.in │ │ ├── S50redis │ │ ├── redis.hash │ │ ├── redis.mk │ │ └── redis.service │ ├── refpolicy/ │ │ ├── 2.20210908/ │ │ │ ├── 0001-policy-modules-services-samba.te-make-crack-optional.patch │ │ │ └── 0002-policy-modules-services-wireguard.te-make-iptables-o.patch │ │ ├── Config.in │ │ ├── config │ │ ├── refpolicy.hash │ │ └── refpolicy.mk │ ├── resiprocate/ │ │ ├── Config.in │ │ ├── resiprocate.hash │ │ └── resiprocate.mk │ ├── restclient-cpp/ │ │ ├── Config.in │ │ ├── restclient-cpp.hash │ │ └── restclient-cpp.mk │ ├── restorecond/ │ │ ├── Config.in │ │ ├── S02restorecond │ │ ├── restorecond.hash │ │ └── restorecond.mk │ ├── rhash/ │ │ ├── Config.in │ │ ├── rhash.hash │ │ └── rhash.mk │ ├── riemann-c-client/ │ │ ├── Config.in │ │ ├── riemann-c-client.hash │ │ └── riemann-c-client.mk │ ├── rings/ │ │ ├── Config.in │ │ ├── rings.hash │ │ └── rings.mk │ ├── ripgrep/ │ │ ├── 0001-puts-jemalloc-allocator-behind-a-cargo-feature-flag.patch │ │ ├── Config.in │ │ ├── ripgrep.hash │ │ └── ripgrep.mk │ ├── riscv64-elf-toolchain/ │ │ └── riscv64-elf-toolchain.mk │ ├── rkbin/ │ │ ├── Config.in │ │ └── rkbin.mk │ ├── rng-tools/ │ │ ├── Config.in │ │ ├── S21rngd │ │ ├── rng-tools.hash │ │ ├── rng-tools.mk │ │ └── rngd.service │ ├── rocksdb/ │ │ ├── 0001-build_tools-build_detect_platform-fix-C-tests.patch │ │ ├── Config.in │ │ ├── rocksdb.hash │ │ └── rocksdb.mk │ ├── rp-pppoe/ │ │ ├── 0001-krn-plugin.patch │ │ ├── Config.in │ │ ├── rp-pppoe.hash │ │ └── rp-pppoe.mk │ ├── rpcbind/ │ │ ├── 0001-Remove-yellow-pages-support.patch │ │ ├── Config.in │ │ ├── S30rpcbind │ │ ├── rpcbind.hash │ │ └── rpcbind.mk │ ├── rpi-armmem/ │ │ ├── Config.in │ │ └── rpi-armmem.mk │ ├── rpi-bt-firmware/ │ │ ├── Config.in │ │ ├── rpi-bt-firmware.hash │ │ └── rpi-bt-firmware.mk │ ├── rpi-firmware/ │ │ ├── Config.in │ │ ├── cmdline.txt │ │ ├── rpi-firmware.hash │ │ └── rpi-firmware.mk │ ├── rpi-userland/ │ │ ├── 0001-Add-.pc-files-for-the-OpenGLESv2-EGL-and-bcm_host-li.patch │ │ ├── 0002-interface-remove-faulty-assert-to-make-weston-happy-.patch │ │ ├── 0003-Disable-Werror-everywhere.patch │ │ ├── 0004-host-applications-disable-missing-applications.patch │ │ ├── 0005-dtmerge-add-missing-include-for-va_list.patch │ │ ├── Config.in │ │ ├── rpi-userland.hash │ │ └── rpi-userland.mk │ ├── rpi-wifi-firmware/ │ │ ├── Config.in │ │ ├── rpi-wifi-firmware.hash │ │ └── rpi-wifi-firmware.mk │ ├── rpm/ │ │ ├── Config.in │ │ ├── rpm.hash │ │ └── rpm.mk │ ├── rrdtool/ │ │ ├── Config.in │ │ ├── rrdtool.hash │ │ └── rrdtool.mk │ ├── rs485conf/ │ │ ├── Config.in │ │ ├── rs485conf.hash │ │ └── rs485conf.mk │ ├── rsh-redone/ │ │ ├── Config.in │ │ ├── rsh-redone.hash │ │ └── rsh-redone.mk │ ├── rsync/ │ │ ├── 0001-rsync-ssl-Verify-the-hostname-in-the-certificate-when-using-openssl.patch │ │ ├── Config.in │ │ ├── rsync.hash │ │ └── rsync.mk │ ├── rsyslog/ │ │ ├── Config.in │ │ ├── S01rsyslogd │ │ ├── rsyslog.hash │ │ ├── rsyslog.mk │ │ └── rsyslog.service │ ├── rt-tests/ │ │ ├── 0001-Fix-a-build-issue-with-uClibc-ng.patch │ │ ├── 0002-Makefile-drop-explicit-undefine-PYLIB-for-compatibil.patch │ │ ├── Config.in │ │ ├── rt-tests.hash │ │ └── rt-tests.mk │ ├── rtai/ │ │ ├── Config.in │ │ ├── rtai.hash │ │ └── rtai.mk │ ├── rtc-tools/ │ │ ├── Config.in │ │ ├── rtc-tools.hash │ │ └── rtc-tools.mk │ ├── rtl8188eu/ │ │ ├── Config.in │ │ ├── rtl8188eu.hash │ │ └── rtl8188eu.mk │ ├── rtl8189fs/ │ │ ├── 0001-include-disable-debug-messages.patch │ │ ├── Config.in │ │ ├── rtl8189fs.hash │ │ └── rtl8189fs.mk │ ├── rtl8723bs/ │ │ ├── 0001-rtl8723bs-add-debug-level-modparam.patch │ │ ├── Config.in │ │ └── rtl8723bs.mk │ ├── rtl8723bu/ │ │ ├── Config.in │ │ ├── rtl8723bu.hash │ │ └── rtl8723bu.mk │ ├── rtl8812au-aircrack-ng/ │ │ ├── Config.in │ │ ├── rtl8812au-aircrack-ng.hash │ │ └── rtl8812au-aircrack-ng.mk │ ├── rtl8821au/ │ │ ├── 0001-Fix-implicit-fallthrough-comments-for-kernel-5.3.patch │ │ ├── 0002-Fix-kernel-5.3-driver-crashes-from-aircrack-ng-rtl88.patch │ │ ├── 0003-Fix-using-sprintf-for-extending-string-which-causes-.patch │ │ ├── 0004-rename-sha256_state-to-rtl_sha256_state-to-avoid-nam.patch │ │ ├── 0005-disable-rtw_mgmt_frame_register-on-kernel-5.8.0.patch │ │ ├── 0006-rtw_proc-convert-file_operations-to-proc_ops-for-5.6.patch │ │ ├── Config.in │ │ ├── rtl8821au.hash │ │ └── rtl8821au.mk │ ├── rtl_433/ │ │ ├── Config.in │ │ ├── rtl_433.hash │ │ └── rtl_433.mk │ ├── rtmpdump/ │ │ ├── 0001-include-limits.h.patch │ │ ├── Config.in │ │ ├── rtmpdump.hash │ │ └── rtmpdump.mk │ ├── rtorrent/ │ │ ├── Config.in │ │ ├── rtorrent.hash │ │ └── rtorrent.mk │ ├── rtptools/ │ │ ├── Config.in │ │ ├── rtptools.hash │ │ └── rtptools.mk │ ├── rtty/ │ │ ├── Config.in │ │ ├── rtty.hash │ │ └── rtty.mk │ ├── rubix/ │ │ ├── 0001-dont-use-legacy-functions.patch │ │ ├── 0002-misc-fixes.patch │ │ ├── Config.in │ │ ├── rubix.hash │ │ └── rubix.mk │ ├── ruby/ │ │ ├── 0001-fix-default-coroutine-selection.patch │ │ ├── 0002-Needs-AC_PROG_CC.patch │ │ ├── Config.in │ │ ├── ruby.hash │ │ └── ruby.mk │ ├── runc/ │ │ ├── Config.in │ │ ├── runc.hash │ │ └── runc.mk │ ├── rust/ │ │ ├── rust.hash │ │ └── rust.mk │ ├── rust-bin/ │ │ ├── rust-bin.hash │ │ └── rust-bin.mk │ ├── rustc/ │ │ ├── Config.in.host │ │ ├── cargo-config.in │ │ └── rustc.mk │ ├── rwmem/ │ │ ├── Config.in │ │ ├── rwmem.hash │ │ └── rwmem.mk │ ├── rygel/ │ │ ├── Config.in │ │ ├── S99rygel │ │ ├── rygel.hash │ │ ├── rygel.mk │ │ └── rygel.service │ ├── s390-tools/ │ │ ├── 0004-zipl-boot-Makefile-no-pie-is-not-a-valid-ld-flag.patch │ │ ├── Config.in │ │ ├── s390-tools.hash │ │ └── s390-tools.mk │ ├── s6/ │ │ ├── Config.in │ │ ├── s6.hash │ │ └── s6.mk │ ├── s6-dns/ │ │ ├── Config.in │ │ ├── s6-dns.hash │ │ └── s6-dns.mk │ ├── s6-linux-init/ │ │ ├── 0001-configure-add-D_GNU_SOURCE.patch │ │ ├── Config.in │ │ ├── s6-linux-init.hash │ │ └── s6-linux-init.mk │ ├── s6-linux-utils/ │ │ ├── Config.in │ │ ├── s6-linux-utils.hash │ │ └── s6-linux-utils.mk │ ├── s6-networking/ │ │ ├── Config.in │ │ ├── s6-networking.hash │ │ └── s6-networking.mk │ ├── s6-portable-utils/ │ │ ├── Config.in │ │ ├── s6-portable-utils.hash │ │ └── s6-portable-utils.mk │ ├── s6-rc/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── s6-rc.hash │ │ └── s6-rc.mk │ ├── safeclib/ │ │ ├── Config.in │ │ ├── safeclib.hash │ │ └── safeclib.mk │ ├── sam-ba/ │ │ ├── Config.in.host │ │ ├── sam-ba.hash │ │ └── sam-ba.mk │ ├── samba4/ │ │ ├── 0001-libreplace-disable-libbsd-support.patch │ │ ├── 0002-build-find-pre-built-heimdal-build-tools-in-case-of-.patch │ │ ├── 0003-ldap_message_test.c-include-stdint.h-before-cmoka.h.patch │ │ ├── 0004-dcesrv_core-fix-build.patch │ │ ├── Config.in │ │ ├── S91smb │ │ ├── samba4-cache.txt │ │ ├── samba4.hash │ │ └── samba4.mk │ ├── sane-backends/ │ │ ├── 0001-sane_backend-add-missing-config.h.patch │ │ ├── 0002-genesys-fix-gcc-4.8-compile.patch │ │ ├── 0003-genesys-use-usleep-instead-of-std-this_thread-sleep_.patch │ │ ├── 0004-backend-microtek-fix-uclibc-compile-include-stdarg.h.patch │ │ ├── 0005-backend-sm3600-scanutil-fix-uclibc-compile-include-s.patch │ │ ├── Config.in │ │ ├── sane-backends.hash │ │ ├── sane-backends.mk │ │ ├── saned.socket │ │ └── saned@.service │ ├── sbc/ │ │ ├── 0001-sbc_primitives-Fix-build-on-non-x86.patch │ │ ├── Config.in │ │ ├── sbc.hash │ │ └── sbc.mk │ ├── sconeserver/ │ │ ├── 0001-sconex-Descriptor.cpp-fix-build-with-gcc-11.patch │ │ ├── Config.in │ │ ├── sconeserver.hash │ │ └── sconeserver.mk │ ├── scons/ │ │ ├── scons.hash │ │ └── scons.mk │ ├── screen/ │ │ ├── 0001-no-memcpy-fallback.patch │ │ ├── 0002-install-no-backup-binary.patch │ │ ├── 0003-install-always-chmod.patch │ │ ├── 0004-install-nonversioned-binary.patch │ │ ├── 0005-rename-sched_h.patch │ │ ├── 0006-comm-h-now-depends-on-term-h.patch │ │ ├── 0007-comm.h-needed-for-list_-display-generic-.o.patch │ │ ├── 0008_CVE-2021-26937.patch │ │ ├── Config.in │ │ ├── screen.hash │ │ └── screen.mk │ ├── screenfetch/ │ │ ├── Config.in │ │ ├── screenfetch.hash │ │ └── screenfetch.mk │ ├── scrub/ │ │ ├── 0001-configure-ac-make-sure-m4-macros-are-included-in-the-build.patch │ │ ├── Config.in │ │ ├── scrub.hash │ │ └── scrub.mk │ ├── scrypt/ │ │ ├── Config.in │ │ ├── scrypt.hash │ │ └── scrypt.mk │ ├── sdbusplus/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── sdbusplus.hash │ │ └── sdbusplus.mk │ ├── sdl/ │ │ ├── 0001-use-correct-directfb-config.patch │ │ ├── 0002-fix-compilation-with-libx11.patch │ │ ├── Config.in │ │ ├── sdl.hash │ │ └── sdl.mk │ ├── sdl2/ │ │ ├── Config.in │ │ ├── sdl2.hash │ │ └── sdl2.mk │ ├── sdl2_gfx/ │ │ ├── Config.in │ │ ├── sdl2_gfx.hash │ │ └── sdl2_gfx.mk │ ├── sdl2_image/ │ │ ├── Config.in │ │ ├── sdl2_image.hash │ │ └── sdl2_image.mk │ ├── sdl2_mixer/ │ │ ├── Config.in │ │ ├── sdl2_mixer.hash │ │ └── sdl2_mixer.mk │ ├── sdl2_net/ │ │ ├── Config.in │ │ ├── sdl2_net.hash │ │ └── sdl2_net.mk │ ├── sdl2_ttf/ │ │ ├── Config.in │ │ ├── sdl2_ttf.hash │ │ └── sdl2_ttf.mk │ ├── sdl_gfx/ │ │ ├── Config.in │ │ ├── sdl_gfx.hash │ │ └── sdl_gfx.mk │ ├── sdl_image/ │ │ ├── Config.in │ │ ├── sdl_image.hash │ │ └── sdl_image.mk │ ├── sdl_mixer/ │ │ ├── 0001-Add-Libs.private-field-to-pkg-config-file.patch │ │ ├── 0002-configure__set_macro_directory.patch │ │ ├── 0003-configure.ac-fix-static-linking-with-tremor.patch │ │ ├── Config.in │ │ ├── sdl_mixer.hash │ │ └── sdl_mixer.mk │ ├── sdl_net/ │ │ ├── Config.in │ │ ├── sdl_net.hash │ │ └── sdl_net.mk │ ├── sdl_sound/ │ │ ├── 0001-fix-constness.patch │ │ ├── 0002-remove-werror.patch │ │ ├── 0003-renamed-physfs-export.patch │ │ ├── Config.in │ │ ├── sdl_sound.hash │ │ └── sdl_sound.mk │ ├── sdl_ttf/ │ │ ├── Config.in │ │ ├── sdl_ttf.hash │ │ └── sdl_ttf.mk │ ├── sdparm/ │ │ ├── Config.in │ │ ├── sdparm.hash │ │ └── sdparm.mk │ ├── seatd/ │ │ ├── Config.in │ │ ├── S70seatd │ │ ├── seatd.hash │ │ └── seatd.mk │ ├── sed/ │ │ ├── Config.in │ │ ├── sed.hash │ │ └── sed.mk │ ├── sedutil/ │ │ ├── 0001-Common-log.h-time-2-needs-time.h.patch │ │ ├── Config.in │ │ ├── sedutil.hash │ │ └── sedutil.mk │ ├── selinux-python/ │ │ ├── Config.in │ │ ├── selinux-python.hash │ │ └── selinux-python.mk │ ├── semodule-utils/ │ │ ├── Config.in │ │ ├── semodule-utils.hash │ │ └── semodule-utils.mk │ ├── semver-sort/ │ │ ├── Config.in │ │ └── semver-sort.mk │ ├── sentry-native/ │ │ ├── 0001-sentry.h-include-ucontext.h.patch │ │ ├── Config.in │ │ ├── sentry-native.hash │ │ └── sentry-native.mk │ ├── ser2net/ │ │ ├── Config.in │ │ ├── S50ser2net │ │ ├── ser2net.hash │ │ └── ser2net.mk │ ├── setools/ │ │ ├── 0001-Do-not-export-use-setools.InfoFlowAnalysis-and-setoo.patch │ │ ├── Config.in │ │ ├── setools.hash │ │ └── setools.mk │ ├── setserial/ │ │ ├── 0001-build-system-fix.patch │ │ ├── 0002-tiocghayesesp-build-fix.patch │ │ ├── Config.in │ │ ├── setserial.hash │ │ └── setserial.mk │ ├── sg3_utils/ │ │ ├── 0001-src-sg_dd.c-fix-musl-build.patch │ │ ├── 0002-configure.ac-fix-uclibc-ng-build.patch │ │ ├── Config.in │ │ ├── sg3_utils.hash │ │ └── sg3_utils.mk │ ├── shadowsocks-libev/ │ │ ├── 0001-configure.ac-use-pkg-config-to-find-netfilter_conntr.patch │ │ ├── Config.in │ │ ├── shadowsocks-libev.hash │ │ └── shadowsocks-libev.mk │ ├── shairport-sync/ │ │ ├── 0001-configure.ac-find-sndfile-through-pkg-config.patch │ │ ├── 0002-configure.ac-fix-build-with-automake-1.16.5.patch │ │ ├── Config.in │ │ ├── S99shairport-sync │ │ ├── shairport-sync.hash │ │ └── shairport-sync.mk │ ├── shapelib/ │ │ ├── Config.in │ │ ├── shapelib.hash │ │ └── shapelib.mk │ ├── shared-mime-info/ │ │ ├── 0001-Remove-incorrect-dependency-from-install-data-hook.patch │ │ ├── Config.in │ │ ├── shared-mime-info.hash │ │ └── shared-mime-info.mk │ ├── shellinabox/ │ │ ├── 0001-Makefile-disable-always-building-statically.patch │ │ ├── 0002-CVE-2018-16789-fix-for-broken-multipart-form-data.patch │ │ ├── Config.in │ │ ├── shellinabox.hash │ │ └── shellinabox.mk │ ├── sigrok-cli/ │ │ ├── Config.in │ │ ├── sigrok-cli.hash │ │ └── sigrok-cli.mk │ ├── siproxd/ │ │ ├── Config.in │ │ ├── siproxd.hash │ │ └── siproxd.mk │ ├── sispmctl/ │ │ ├── Config.in │ │ ├── sispmctl.hash │ │ └── sispmctl.mk │ ├── skalibs/ │ │ ├── Config.in │ │ ├── skalibs.hash │ │ └── skalibs.mk │ ├── skeleton/ │ │ ├── Config.in │ │ └── skeleton.mk │ ├── skeleton-custom/ │ │ ├── Config.in │ │ └── skeleton-custom.mk │ ├── skeleton-init-common/ │ │ ├── Config.in │ │ └── skeleton-init-common.mk │ ├── skeleton-init-none/ │ │ ├── Config.in │ │ └── skeleton-init-none.mk │ ├── skeleton-init-openrc/ │ │ ├── Config.in │ │ ├── skeleton/ │ │ │ └── etc/ │ │ │ ├── conf.d/ │ │ │ │ └── .empty │ │ │ ├── fstab │ │ │ └── runlevels/ │ │ │ └── default/ │ │ │ └── .empty │ │ └── skeleton-init-openrc.mk │ ├── skeleton-init-systemd/ │ │ ├── Config.in │ │ └── skeleton-init-systemd.mk │ ├── skeleton-init-sysv/ │ │ ├── Config.in │ │ ├── skeleton/ │ │ │ ├── dev/ │ │ │ │ ├── pts/ │ │ │ │ │ └── .empty │ │ │ │ └── shm/ │ │ │ │ └── .empty │ │ │ └── etc/ │ │ │ └── fstab │ │ └── skeleton-init-sysv.mk │ ├── sl/ │ │ ├── Config.in │ │ ├── sl.hash │ │ └── sl.mk │ ├── slang/ │ │ ├── 0001-slsh-libs.patch │ │ ├── Config.in │ │ ├── slang.hash │ │ └── slang.mk │ ├── slirp/ │ │ ├── Config.in │ │ ├── slirp.hash │ │ └── slirp.mk │ ├── sloci-image/ │ │ ├── Config.in.host │ │ ├── sloci-image.hash │ │ └── sloci-image.mk │ ├── smack/ │ │ ├── Config.in │ │ ├── smack.hash │ │ └── smack.mk │ ├── smartmontools/ │ │ ├── Config.in │ │ ├── smartmontools.hash │ │ └── smartmontools.mk │ ├── smcroute/ │ │ ├── 0001-Avoid-trying-to-delete-inactive-VIFs.patch │ │ ├── Config.in │ │ ├── S41smcroute │ │ ├── smcroute.hash │ │ └── smcroute.mk │ ├── smstools3/ │ │ ├── 0001-fix-Makefile.patch │ │ ├── 0002-fix-build-with-gcc-10.x.patch │ │ ├── Config.in │ │ ├── S50smsd │ │ ├── smstools3.hash │ │ └── smstools3.mk │ ├── snappy/ │ │ ├── Config.in │ │ ├── snappy.hash │ │ └── snappy.mk │ ├── sngrep/ │ │ ├── Config.in │ │ ├── sngrep.hash │ │ └── sngrep.mk │ ├── snmpclitools/ │ │ ├── Config.in │ │ ├── snmpclitools.hash │ │ └── snmpclitools.mk │ ├── snmppp/ │ │ ├── Config.in │ │ ├── snmppp.hash │ │ └── snmppp.mk │ ├── snort/ │ │ ├── 0001-configure.in-Avoid-path-poisoning-with-libpcap.patch │ │ ├── 0002-configure.in-Allow-to-override-the-INADDR_NONE-check.patch │ │ ├── 0003-configure.in-convert-AC_RUN_IFELSE-to-AC_CHECK_MEMBE.patch │ │ ├── 0004-configure.in-convert-AC_RUN_IFELSE-to-AC_COMPILE_IFE.patch │ │ ├── 0005-fix-sparc.patch │ │ ├── 0006-Fix-compile-error-when-building-against-uclibc-or-mu.patch │ │ ├── 0007-Fix-error-when-building-on-a-Fedora-host-machine.patch │ │ ├── Config.in │ │ ├── snort.hash │ │ └── snort.mk │ ├── snort3/ │ │ ├── Config.in │ │ ├── snort3.hash │ │ └── snort3.mk │ ├── socat/ │ │ ├── 0001-no-documentation.patch │ │ ├── 0002-compat-set-NETDB_INTERNAL.patch │ │ ├── Config.in │ │ ├── socat.hash │ │ └── socat.mk │ ├── socketcand/ │ │ ├── 0001-Fix-GCC10-build-failure.patch │ │ ├── Config.in │ │ ├── socketcand.hash │ │ └── socketcand.mk │ ├── sofia-sip/ │ │ ├── Config.in │ │ ├── sofia-sip.hash │ │ └── sofia-sip.mk │ ├── softether/ │ │ ├── 0001-Create-autotools-plumbing-for-SoftEther.patch │ │ ├── 0002-Create-libsoftether.so-and-dynamically-link.patch │ │ ├── 0003-use-fhs-install-directories.patch │ │ ├── 0004-create-non-forking-softetherd-for-upstart-and-systemd.patch │ │ ├── 0005-change-GetExeDir-to-GetStateDir-in-Cedar-and-Mayaqua.patch │ │ ├── 0006-cross-compile.patch │ │ ├── 0007-iconv.patch │ │ ├── 0008-librt.patch │ │ ├── 0009-uclibc-ai-addrconfig.patch │ │ ├── Config.in │ │ ├── softether.hash │ │ └── softether.mk │ ├── softhsm2/ │ │ ├── Config.in │ │ ├── softhsm2.hash │ │ └── softhsm2.mk │ ├── solarus/ │ │ ├── 0001-cmake-remove-Werror.patch │ │ ├── 0002-Add-a-basic-FindOpenGLES2.cmake.patch │ │ ├── Config.in │ │ ├── solarus.hash │ │ └── solarus.mk │ ├── sound-theme-borealis/ │ │ ├── Config.in │ │ ├── sound-theme-borealis.hash │ │ └── sound-theme-borealis.mk │ ├── sound-theme-freedesktop/ │ │ ├── Config.in │ │ ├── sound-theme-freedesktop.hash │ │ └── sound-theme-freedesktop.mk │ ├── sox/ │ │ ├── 0001-uclibc.patch │ │ ├── 0002-configure.ac-put-back-disable-stack-protector.patch │ │ ├── 0003-configure.ac-fix-static-linking-with-id3tag.patch │ │ ├── 0004-configure.ac-fix-static-linking-with-magic.patch │ │ ├── 0005-configure.ac-fix-static-linking-with-sndfile.patch │ │ ├── Config.in │ │ ├── sox.hash │ │ └── sox.mk │ ├── sp-oops-extract/ │ │ ├── 0001-Make-the-Makefile-more-cross-compiler-friendly.patch │ │ ├── 0002-stdint-cleanup.patch │ │ ├── Config.in │ │ ├── sp-oops-extract.hash │ │ └── sp-oops-extract.mk │ ├── spandsp/ │ │ ├── 0001-configure.ac-fix-AVX-SSE-and-MMX-options.patch │ │ ├── Config.in │ │ ├── spandsp.hash │ │ └── spandsp.mk │ ├── spawn-fcgi/ │ │ ├── Config.in │ │ ├── spawn-fcgi.hash │ │ └── spawn-fcgi.mk │ ├── spdlog/ │ │ ├── Config.in │ │ ├── spdlog.hash │ │ └── spdlog.mk │ ├── speex/ │ │ ├── 0001-thumb2-support.patch │ │ ├── Config.in │ │ ├── speex.hash │ │ └── speex.mk │ ├── speexdsp/ │ │ ├── Config.in │ │ ├── speexdsp.hash │ │ └── speexdsp.mk │ ├── sphinxbase/ │ │ ├── Config.in │ │ ├── sphinxbase.hash │ │ └── sphinxbase.mk │ ├── spi-tools/ │ │ ├── Config.in │ │ ├── spi-tools.hash │ │ └── spi-tools.mk │ ├── spice/ │ │ ├── Config.in │ │ ├── spice.hash │ │ └── spice.mk │ ├── spice-protocol/ │ │ ├── Config.in │ │ ├── spice-protocol.hash │ │ └── spice-protocol.mk │ ├── spidev_test/ │ │ ├── Config.in │ │ ├── spidev_test.hash │ │ └── spidev_test.mk │ ├── sqlcipher/ │ │ ├── Config.in │ │ ├── sqlcipher.hash │ │ └── sqlcipher.mk │ ├── sqlite/ │ │ ├── Config.in │ │ ├── sqlite.hash │ │ └── sqlite.mk │ ├── squashfs/ │ │ ├── 0001-squashfs-tools-fix-build-failure-against-gcc-10.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── squashfs.hash │ │ └── squashfs.mk │ ├── squeezelite/ │ │ ├── Config.in │ │ ├── squeezelite.hash │ │ └── squeezelite.mk │ ├── squid/ │ │ ├── Config.in │ │ ├── S97squid │ │ ├── squid.hash │ │ └── squid.mk │ ├── sredird/ │ │ ├── 0001-termio.patch │ │ ├── Config.in │ │ ├── sredird.hash │ │ └── sredird.mk │ ├── ssdp-responder/ │ │ ├── Config.in │ │ ├── S50ssdpd │ │ ├── ssdp-responder.hash │ │ └── ssdp-responder.mk │ ├── sshfs/ │ │ ├── Config.in │ │ ├── sshfs.hash │ │ └── sshfs.mk │ ├── sshguard/ │ │ ├── Config.in │ │ ├── S49sshguard │ │ ├── sshguard.hash │ │ └── sshguard.mk │ ├── sshpass/ │ │ ├── Config.in │ │ ├── sshpass.hash │ │ └── sshpass.mk │ ├── sslh/ │ │ ├── 0001-Makefile-fix-static-linking-with-pcre.patch │ │ ├── Config.in │ │ ├── S35sslh │ │ ├── sslh.hash │ │ └── sslh.mk │ ├── start-stop-daemon/ │ │ ├── 0001-add-uclibc-alias-and-musl.patch │ │ ├── 0002-just-warn-on-missing-arch.patch │ │ ├── Config.in │ │ ├── start-stop-daemon.hash │ │ └── start-stop-daemon.mk │ ├── startup-notification/ │ │ ├── Config.in │ │ ├── startup-notification.hash │ │ └── startup-notification.mk │ ├── statserial/ │ │ ├── 0001-ncurses-link.patch │ │ ├── Config.in │ │ ├── statserial.hash │ │ └── statserial.mk │ ├── stella/ │ │ ├── Config.in │ │ ├── stella.hash │ │ └── stella.mk │ ├── stellarium/ │ │ ├── Config.in │ │ ├── stellarium.hash │ │ └── stellarium.mk │ ├── stm32flash/ │ │ ├── Config.in │ │ ├── stm32flash.hash │ │ └── stm32flash.mk │ ├── strace/ │ │ ├── 0001-Avoid-relying-on-presence-of-ipx-h.patch │ │ ├── Config.in │ │ ├── strace.hash │ │ └── strace.mk │ ├── streameye/ │ │ ├── Config.in │ │ └── streameye.mk │ ├── stress/ │ │ ├── Config.in │ │ ├── stress.hash │ │ └── stress.mk │ ├── stress-ng/ │ │ ├── Config.in │ │ ├── stress-ng.hash │ │ └── stress-ng.mk │ ├── strongswan/ │ │ ├── Config.in │ │ ├── strongswan.hash │ │ └── strongswan.mk │ ├── stunnel/ │ │ ├── Config.in │ │ ├── S50stunnel │ │ ├── stunnel.hash │ │ └── stunnel.mk │ ├── subversion/ │ │ ├── 0001-workaround-ac-run-ifelse.patch │ │ ├── Config.in │ │ ├── subversion.hash │ │ └── subversion.mk │ ├── sudo/ │ │ ├── Config.in │ │ ├── sudo.hash │ │ ├── sudo.mk │ │ └── sudo.pam │ ├── sunwait/ │ │ ├── Config.in │ │ ├── sunwait.hash │ │ └── sunwait.mk │ ├── sunxi-boards/ │ │ ├── Config.in │ │ ├── sunxi-boards.hash │ │ └── sunxi-boards.mk │ ├── sunxi-cedarx/ │ │ ├── Config.in │ │ ├── sunxi-cedarx.hash │ │ └── sunxi-cedarx.mk │ ├── sunxi-mali-mainline/ │ │ ├── Config.in │ │ ├── egl.pc │ │ ├── glesv2.pc │ │ ├── sunxi-mali-mainline.hash │ │ └── sunxi-mali-mainline.mk │ ├── sunxi-mali-mainline-driver/ │ │ ├── Config.in │ │ ├── sunxi-mali-mainline-driver.hash │ │ └── sunxi-mali-mainline-driver.mk │ ├── sunxi-tools/ │ │ ├── 0001-meminfo-Access-to-io-memory-via-pointers.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── sunxi-tools.hash │ │ └── sunxi-tools.mk │ ├── supertux/ │ │ ├── 0001-CMakeLists.txt-compile-squirrel-with-fPIC.patch │ │ ├── Config.in │ │ ├── supertux.hash │ │ └── supertux.mk │ ├── supertuxkart/ │ │ ├── Config.in │ │ ├── supertuxkart.hash │ │ └── supertuxkart.mk │ ├── supervisor/ │ │ ├── Config.in │ │ ├── S99supervisord │ │ ├── supervisor.hash │ │ ├── supervisor.mk │ │ ├── supervisord.conf │ │ └── supervisord.service │ ├── suricata/ │ │ ├── 0001-python-ensure-proper-shabang-on-python-scripts.patch │ │ ├── 0002-configure.ac-allow-the-user-to-override-RUST_TARGET.patch │ │ ├── Config.in │ │ ├── S99suricata │ │ ├── suricata.hash │ │ ├── suricata.mk │ │ └── suricata.service │ ├── swig/ │ │ ├── Config.in.host │ │ ├── swig.hash │ │ └── swig.mk │ ├── swupdate/ │ │ ├── 10-mongoose-args │ │ ├── 90-start-progress │ │ ├── Config.in │ │ ├── S80swupdate │ │ ├── swupdate-progress.service │ │ ├── swupdate-usb.rules │ │ ├── swupdate-usb@.service │ │ ├── swupdate.config │ │ ├── swupdate.hash │ │ ├── swupdate.mk │ │ ├── swupdate.service │ │ ├── swupdate.sh │ │ ├── swupdate.socket │ │ └── tmpfiles-swupdate.conf │ ├── sylpheed/ │ │ ├── 0001-harden-link-checker-before-accepting-click.patch │ │ ├── Config.in │ │ ├── sylpheed.hash │ │ └── sylpheed.mk │ ├── synergy/ │ │ ├── Config.in │ │ ├── synergy.hash │ │ └── synergy.mk │ ├── sysdig/ │ │ ├── Config.in │ │ ├── sysdig.hash │ │ └── sysdig.mk │ ├── sysklogd/ │ │ ├── Config.in │ │ ├── S01syslogd │ │ ├── sysklogd.hash │ │ ├── sysklogd.mk │ │ └── syslogd.service │ ├── syslog-ng/ │ │ ├── 0001-fix-build-on-uclibc.patch │ │ ├── Config.in │ │ ├── S01syslog-ng │ │ ├── syslog-ng.conf │ │ ├── syslog-ng.hash │ │ └── syslog-ng.mk │ ├── sysprof/ │ │ ├── 0001-define-NT_GNU_BUILD_ID.patch │ │ ├── Config.in │ │ ├── sysprof.hash │ │ └── sysprof.mk │ ├── sysrepo/ │ │ ├── Config.in │ │ ├── S51sysrepo-plugind │ │ ├── sysrepo.hash │ │ └── sysrepo.mk │ ├── sysstat/ │ │ ├── Config.in │ │ ├── sysstat.hash │ │ └── sysstat.mk │ ├── system-config-printer/ │ │ ├── 0001-Add-option-to-disable-xmlto-manual-generation.patch │ │ ├── 0002-configure-accept-non-system-cups-config.patch │ │ ├── Config.in │ │ ├── system-config-printer.hash │ │ └── system-config-printer.mk │ ├── systemd/ │ │ ├── 0001-Add-meson-option-to-disable-urlify.patch │ │ ├── 80-buildroot.preset │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── boot-files/ │ │ │ ├── buildroot.conf │ │ │ └── loader.conf │ │ ├── dhcp.network │ │ ├── systemd.hash │ │ └── systemd.mk │ ├── systemd-bootchart/ │ │ ├── Config.in │ │ ├── systemd-bootchart.hash │ │ └── systemd-bootchart.mk │ ├── sysvinit/ │ │ ├── 0001-Makefile-disable-stack-protector-strong.patch │ │ ├── Config.in │ │ ├── inittab │ │ ├── sysvinit.hash │ │ └── sysvinit.mk │ ├── szip/ │ │ ├── Config.in │ │ ├── szip.hash │ │ └── szip.mk │ ├── taglib/ │ │ ├── 0001-fix-taglib-config-file-for-cross-compiling-906.patch │ │ ├── 0002-Don-t-assume-TDRC-is-an-instance-of-TextIdentificationFrame.patch │ │ ├── 0003-Fixed-OOB-read-when-loading-invalid-ogg-flac-file.patch │ │ ├── Config.in │ │ ├── taglib.hash │ │ └── taglib.mk │ ├── tar/ │ │ ├── 0001-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch │ │ ├── Config.in │ │ ├── tar.hash │ │ └── tar.mk │ ├── targetcli-fb/ │ │ ├── Config.in │ │ ├── S50target │ │ ├── target.service │ │ ├── targetcli-fb.hash │ │ └── targetcli-fb.mk │ ├── taskd/ │ │ ├── 0001-Fix-missing-cmakedefine-HAVE_GET_CURRENT_DIR_NAME.patch │ │ ├── 0002-Use-correct-variables-for-GnuTLS-detection.patch │ │ ├── 0003-CMakeLists-use-pkg-config-uuid-detection.patch │ │ ├── Config.in │ │ ├── taskd.hash │ │ └── taskd.mk │ ├── tcf-agent/ │ │ ├── Config.in │ │ ├── S55tcf-agent │ │ ├── tcf-agent.hash │ │ ├── tcf-agent.mk │ │ └── tcf-agent.service │ ├── tcl/ │ │ ├── 0001-dont-build-compat.patch │ │ ├── Config.in │ │ ├── tcl.hash │ │ └── tcl.mk │ ├── tclap/ │ │ ├── Config.in │ │ ├── tclap.hash │ │ └── tclap.mk │ ├── tcllib/ │ │ ├── Config.in │ │ ├── tcllib.hash │ │ └── tcllib.mk │ ├── tcpdump/ │ │ ├── Config.in │ │ ├── tcpdump.hash │ │ └── tcpdump.mk │ ├── tcping/ │ │ ├── Config.in │ │ ├── tcping.hash │ │ └── tcping.mk │ ├── tcpreplay/ │ │ ├── 0001-configure-ac-fix-without-libdnet.patch │ │ ├── Config.in │ │ ├── tcpreplay.hash │ │ └── tcpreplay.mk │ ├── tegrarcm/ │ │ ├── Config.in.host │ │ ├── tegrarcm.hash │ │ └── tegrarcm.mk │ ├── tekui/ │ │ ├── Config.in │ │ ├── tekui.hash │ │ └── tekui.mk │ ├── terminology/ │ │ ├── Config.in │ │ ├── terminology.hash │ │ └── terminology.mk │ ├── tesseract-ocr/ │ │ ├── 0001-Fix-timeval-structure-build-failure.patch │ │ ├── Config.in │ │ ├── tesseract-ocr.hash │ │ └── tesseract-ocr.mk │ ├── tftpd/ │ │ ├── 0001-Use-extern-qualifier-to-fix-gcc-10.x-build.patch │ │ ├── Config.in │ │ ├── S80tftpd-hpa │ │ ├── tftpd.hash │ │ └── tftpd.mk │ ├── thermald/ │ │ ├── 0001-thd_trip_point-fix-32-bit-build-error-with-musl-v1.2.patch │ │ ├── Config.in │ │ ├── thermald.hash │ │ └── thermald.mk │ ├── thrift/ │ │ ├── Config.in │ │ ├── thrift.hash │ │ └── thrift.mk │ ├── thttpd/ │ │ ├── Config.in │ │ ├── S90thttpd │ │ ├── thttpd.hash │ │ ├── thttpd.mk │ │ └── thttpd.service │ ├── ti-cgt-pru/ │ │ ├── Config.in.host │ │ ├── ti-cgt-pru.hash │ │ └── ti-cgt-pru.mk │ ├── ti-gfx/ │ │ ├── 0001-newclkapi.patch │ │ ├── 0002-fix-build-omaplfb-linux.patch │ │ ├── 0003-km_install_modules.patch │ │ ├── Config.in │ │ ├── S80ti-gfx │ │ ├── egl.pc │ │ ├── esrev.sh │ │ ├── glesv2.pc │ │ ├── powervr.ini │ │ ├── ti-gfx.hash │ │ ├── ti-gfx.mk │ │ └── ti-gfx.service │ ├── ti-sgx-demos/ │ │ ├── Config.in │ │ ├── ti-sgx-demos.hash │ │ └── ti-sgx-demos.mk │ ├── ti-sgx-km/ │ │ ├── Config.in │ │ ├── ti-sgx-km.hash │ │ └── ti-sgx-km.mk │ ├── ti-sgx-um/ │ │ ├── 0001-Makefile-do-not-install-init-script.patch │ │ ├── Config.in │ │ ├── S80ti-sgx │ │ ├── ti-sgx-um.hash │ │ └── ti-sgx-um.mk │ ├── ti-uim/ │ │ ├── Config.in │ │ ├── ti-uim.hash │ │ └── ti-uim.mk │ ├── ti-utils/ │ │ ├── 0001-plt.h-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── ti-utils.hash │ │ └── ti-utils.mk │ ├── tiff/ │ │ ├── Config.in │ │ ├── tiff.hash │ │ └── tiff.mk │ ├── time/ │ │ ├── Config.in │ │ ├── time.hash │ │ └── time.mk │ ├── timescaledb/ │ │ ├── Config.in │ │ ├── timescaledb.hash │ │ └── timescaledb.mk │ ├── tinc/ │ │ ├── Config.in │ │ ├── tinc.hash │ │ └── tinc.mk │ ├── tini/ │ │ ├── Config.in │ │ ├── tini.hash │ │ └── tini.mk │ ├── tinyalsa/ │ │ ├── 0001-disable-doxygen-usage.patch │ │ ├── 0002-interval.h-add-missing-header.patch │ │ ├── Config.in │ │ ├── tinyalsa.hash │ │ └── tinyalsa.mk │ ├── tinycbor/ │ │ ├── Config.in │ │ ├── tinycbor.hash │ │ └── tinycbor.mk │ ├── tinydtls/ │ │ ├── 0001-sha2-sha2.c-fix-build-on-big-endian.patch │ │ ├── Config.in │ │ ├── tinydtls.hash │ │ └── tinydtls.mk │ ├── tinymembench/ │ │ ├── 0001-arm-fix-build-on-Thumb-only-architectures.patch │ │ ├── Config.in │ │ ├── tinymembench.hash │ │ └── tinymembench.mk │ ├── tinyproxy/ │ │ ├── Config.in │ │ ├── tinyproxy.hash │ │ └── tinyproxy.mk │ ├── tinyssh/ │ │ ├── Config.in │ │ ├── tinyssh.hash │ │ └── tinyssh.mk │ ├── tinyxml/ │ │ ├── Config.in │ │ ├── tinyxml.hash │ │ └── tinyxml.mk │ ├── tinyxml2/ │ │ ├── Config.in │ │ ├── tinyxml2.hash │ │ └── tinyxml2.mk │ ├── tio/ │ │ ├── Config.in │ │ ├── tio.hash │ │ └── tio.mk │ ├── tk/ │ │ ├── Config.in │ │ ├── tk.hash │ │ └── tk.mk │ ├── tmux/ │ │ ├── Config.in │ │ ├── tmux.hash │ │ └── tmux.mk │ ├── tor/ │ │ ├── 0001-Fix-static-linking-with-OpenSSL.patch │ │ ├── Config.in │ │ ├── tor.hash │ │ └── tor.mk │ ├── tovid/ │ │ ├── 0001-manpage.patch │ │ ├── Config.in │ │ ├── tovid.hash │ │ └── tovid.mk │ ├── tpm-tools/ │ │ ├── Config.in │ │ ├── tpm-tools.hash │ │ └── tpm-tools.mk │ ├── tpm2-abrmd/ │ │ ├── Config.in │ │ ├── S80tpm2-abrmd │ │ ├── tpm2-abrmd.hash │ │ └── tpm2-abrmd.mk │ ├── tpm2-pkcs11/ │ │ ├── Config.in │ │ ├── tpm2-pkcs11.hash │ │ └── tpm2-pkcs11.mk │ ├── tpm2-tools/ │ │ ├── 0001-configure-make-build-gnu99.patch │ │ ├── Config.in │ │ ├── tpm2-tools.hash │ │ └── tpm2-tools.mk │ ├── tpm2-totp/ │ │ ├── Config.in │ │ ├── tpm2-totp.hash │ │ └── tpm2-totp.mk │ ├── tpm2-tss/ │ │ ├── 0001-Temporary-fix-for-build-without-C.patch │ │ ├── Config.in │ │ ├── tpm2-tss.hash │ │ └── tpm2-tss.mk │ ├── trace-cmd/ │ │ ├── Config.in │ │ ├── trace-cmd.hash │ │ └── trace-cmd.mk │ ├── traceroute/ │ │ ├── Config.in │ │ ├── traceroute.hash │ │ └── traceroute.mk │ ├── transmission/ │ │ ├── 0001-fix-utypes.patch │ │ ├── 0002-fix-utp-include.patch │ │ ├── 0003-configure.ac-fix-autoreconf-with-autoconf-2.70.patch │ │ ├── Config.in │ │ ├── S92transmission │ │ ├── transmission.hash │ │ └── transmission.mk │ ├── tree/ │ │ ├── Config.in │ │ ├── tree.hash │ │ └── tree.mk │ ├── tremor/ │ │ ├── Config.in │ │ ├── tremor.hash │ │ └── tremor.mk │ ├── triggerhappy/ │ │ ├── Config.in │ │ ├── S10triggerhappy │ │ ├── triggerhappy.hash │ │ ├── triggerhappy.mk │ │ └── triggerhappy.service │ ├── trinity/ │ │ ├── 0001-Fix-build-with-GCC-10.patch │ │ ├── 0002-net-proto-ip-raw.c-fix-build-with-kernel-5.13.patch │ │ ├── Config.in │ │ ├── trinity.hash │ │ └── trinity.mk │ ├── trousers/ │ │ ├── 0001-Check-if-the-compiler-understands-pie-and-relro-options.patch │ │ ├── 0002-Check-that-getpwent_r-is-available-before-using-it.patch │ │ ├── Config.in │ │ ├── trousers.hash │ │ └── trousers.mk │ ├── ts4900-fpga/ │ │ ├── Config.in │ │ ├── ts4900-fpga.hash │ │ └── ts4900-fpga.mk │ ├── tslib/ │ │ ├── Config.in │ │ ├── tslib.hash │ │ └── tslib.mk │ ├── tstools/ │ │ ├── 0001-build-get-along-with-buildroot.patch │ │ ├── Config.in │ │ ├── tstools.hash │ │ └── tstools.mk │ ├── ttyd/ │ │ ├── Config.in │ │ ├── ttyd.hash │ │ └── ttyd.mk │ ├── tunctl/ │ │ ├── Config.in │ │ ├── tunctl.hash │ │ └── tunctl.mk │ ├── turbolua/ │ │ ├── Config.in │ │ ├── turbolua.hash │ │ └── turbolua.mk │ ├── tvheadend/ │ │ ├── 0001-no-check_config.patch │ │ ├── Config.in │ │ ├── S99tvheadend │ │ ├── etc.default.tvheadend │ │ ├── tvheadend.hash │ │ └── tvheadend.mk │ ├── twolame/ │ │ ├── Config.in │ │ ├── twolame.hash │ │ └── twolame.mk │ ├── tz/ │ │ ├── Config.in │ │ └── tz.mk │ ├── tzdata/ │ │ ├── Config.in │ │ ├── tzdata.hash │ │ └── tzdata.mk │ ├── tzdump/ │ │ ├── tzdump.hash │ │ └── tzdump.mk │ ├── uacme/ │ │ ├── Config.in │ │ ├── uacme.hash │ │ └── uacme.mk │ ├── uboot-tools/ │ │ ├── 0001-drop-configh-from-tools.patch │ │ ├── 0002-tools-only-in-no-dot-config-targets.patch │ │ ├── 0003-tools-Makefile-fix-C-LD-FLAGS-with-CROSS_BUILD_TOOLS.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── uboot-tools.hash │ │ └── uboot-tools.mk │ ├── ubus/ │ │ ├── 0001-Install-server-and-client-examples.patch │ │ ├── Config.in │ │ ├── ubus.hash │ │ └── ubus.mk │ ├── uccp420wlan/ │ │ ├── Config.in │ │ ├── uccp420wlan.hash │ │ └── uccp420wlan.mk │ ├── ucl/ │ │ ├── ucl.hash │ │ └── ucl.mk │ ├── uclibc/ │ │ ├── Config.in │ │ ├── uClibc-ng.config │ │ ├── uclibc.hash │ │ └── uclibc.mk │ ├── uclibc-ng-test/ │ │ ├── Config.in │ │ ├── uclibc-ng-test.hash │ │ └── uclibc-ng-test.mk │ ├── udev/ │ │ ├── Config.in │ │ └── udev.mk │ ├── udev-gentoo-scripts/ │ │ ├── Config.in │ │ ├── udev-gentoo-scripts.hash │ │ └── udev-gentoo-scripts.mk │ ├── udftools/ │ │ ├── Config.in │ │ ├── udftools.hash │ │ └── udftools.mk │ ├── udisks/ │ │ ├── Config.in │ │ ├── udisks.hash │ │ └── udisks.mk │ ├── udpcast/ │ │ ├── Config.in │ │ ├── udpcast.hash │ │ └── udpcast.mk │ ├── udpxy/ │ │ ├── Config.in │ │ ├── udpxy.hash │ │ └── udpxy.mk │ ├── uemacs/ │ │ ├── 01-clear-ixon-termios-flag.patch │ │ ├── Config.in │ │ ├── uemacs.hash │ │ └── uemacs.mk │ ├── uftp/ │ │ ├── Config.in │ │ ├── uftp.hash │ │ └── uftp.mk │ ├── uftrace/ │ │ ├── 0001-cmds-records-replace-ADDR_NO_RANDOMIZE-by-its-value.patch │ │ ├── 0002-arch-arm-mcount-support.c-define-EF_ARM_VFP_FLOAT-wh.patch │ │ ├── Config.in │ │ ├── uftrace.hash │ │ └── uftrace.mk │ ├── uhd/ │ │ ├── 0001-host-CMakeLists-add-boost-unit_test_framework-requir.patch │ │ ├── 0002-host-fix-build-boost-173.patch │ │ ├── 0003-add-RISC-V-endian-detection.patch │ │ ├── 0004-lib-Fix-missing-includes-in-rpc-hpp.patch │ │ ├── 0005-core-remove-boost-math-in-favor-of-std-cmath.patch │ │ ├── 0006-usrp2-Replace-boost-math-iround-math-sign-with-std-l.patch │ │ ├── 0007-usrp2-Use-explicit-template-type-for-std-min-T.patch │ │ ├── Config.in │ │ ├── uhd.hash │ │ └── uhd.mk │ ├── uhttpd/ │ │ ├── 0001-Remove-Werror.patch │ │ ├── 0002-Fix-TCP_FASTOPEN-related-compile-error.patch │ │ ├── Config.in │ │ ├── uhttpd.hash │ │ └── uhttpd.mk │ ├── uhubctl/ │ │ ├── Config.in │ │ ├── uhubctl.hash │ │ └── uhubctl.mk │ ├── ulogd/ │ │ ├── 0001-ulogd-fix-build-with-musl-libc.patch │ │ ├── Config.in │ │ ├── ulogd.hash │ │ └── ulogd.mk │ ├── umtprd/ │ │ ├── Config.in │ │ ├── umtprd.hash │ │ └── umtprd.mk │ ├── unbound/ │ │ ├── Config.in │ │ ├── S70unbound │ │ ├── unbound.hash │ │ └── unbound.mk │ ├── unclutter-xfixes/ │ │ ├── Config.in │ │ ├── unclutter-xfixes.hash │ │ └── unclutter-xfixes.mk │ ├── unionfs/ │ │ ├── Config.in │ │ ├── unionfs.hash │ │ └── unionfs.mk │ ├── unixodbc/ │ │ ├── Config.in │ │ ├── unixodbc.hash │ │ └── unixodbc.mk │ ├── unrar/ │ │ ├── Config.in │ │ ├── unrar.hash │ │ └── unrar.mk │ ├── unscd/ │ │ ├── Config.in │ │ ├── S46unscd │ │ ├── nscd.conf │ │ ├── unscd.hash │ │ └── unscd.mk │ ├── unzip/ │ │ ├── 0001-Add-a-CMakeFile.txt-to-ease-cross-compilation.patch │ │ ├── Config.in │ │ ├── unzip.hash │ │ └── unzip.mk │ ├── upmpdcli/ │ │ ├── Config.in │ │ ├── S99upmpdcli │ │ ├── upmpdcli.hash │ │ └── upmpdcli.mk │ ├── upower/ │ │ ├── Config.in │ │ ├── upower.hash │ │ └── upower.mk │ ├── upx/ │ │ ├── 0001-Check-DT_REL-DT_RELA-DT_RELSZ-DT_RELASZ.patch │ │ ├── upx.hash │ │ └── upx.mk │ ├── uqmi/ │ │ ├── Config.in │ │ ├── uqmi.hash │ │ └── uqmi.mk │ ├── urandom-scripts/ │ │ ├── Config.in │ │ ├── S20urandom │ │ └── urandom-scripts.mk │ ├── uredir/ │ │ ├── Config.in │ │ ├── uredir.hash │ │ └── uredir.mk │ ├── urg/ │ │ ├── 0001-select-h.patch │ │ ├── 0002-urg-gcc6-fix-narrowing-conversion.patch │ │ ├── Config.in │ │ ├── urg.hash │ │ └── urg.mk │ ├── usb_modeswitch/ │ │ ├── Config.in │ │ ├── usb_modeswitch.hash │ │ └── usb_modeswitch.mk │ ├── usb_modeswitch_data/ │ │ ├── Config.in │ │ ├── usb_modeswitch_data.hash │ │ └── usb_modeswitch_data.mk │ ├── usbguard/ │ │ ├── Config.in │ │ ├── S20usbguard │ │ ├── usbguard.hash │ │ └── usbguard.mk │ ├── usbmount/ │ │ ├── 0001-rules-fix.patch │ │ ├── 0002-use-udev-environment-instead-of-blkid.patch │ │ ├── Config.in │ │ ├── usbmount.hash │ │ └── usbmount.mk │ ├── usbredir/ │ │ ├── 0001-meson-add-tests-option.patch │ │ ├── 0002-meson-add-stack_protector-option.patch │ │ ├── 0003-meson.build-make-C-optional.patch │ │ ├── Config.in │ │ ├── usbredir.hash │ │ └── usbredir.mk │ ├── usbutils/ │ │ ├── Config.in │ │ ├── usbutils.hash │ │ └── usbutils.mk │ ├── ushare/ │ │ ├── 0001-Don-t-build-po-files-if-NLS-is-disabled.patch │ │ ├── Config.in │ │ ├── ushare.hash │ │ └── ushare.mk │ ├── ussp-push/ │ │ ├── 0001-fix-build-against-bluez-4.patch │ │ ├── 0002-fix-build-again-obex-bluez.patch │ │ ├── 0003-add-OBEX_CharToUnicode.patch │ │ ├── Config.in │ │ ├── ussp-push.hash │ │ └── ussp-push.mk │ ├── ustream-ssl/ │ │ ├── Config.in │ │ ├── ustream-ssl.hash │ │ └── ustream-ssl.mk │ ├── utf8proc/ │ │ ├── Config.in │ │ ├── utf8proc.hash │ │ └── utf8proc.mk │ ├── util-linux/ │ │ ├── 0001-libuuid-include-c-h-to-cover-restrict-keyword.patch │ │ ├── 0002-libblkid-don-t-mark-cache-as-probed-if-sys-not-available.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── su.pam │ │ ├── util-linux-libs/ │ │ │ └── util-linux-libs.mk │ │ ├── util-linux.hash │ │ └── util-linux.mk │ ├── utp_com/ │ │ ├── Config.in.host │ │ ├── utp_com.hash │ │ └── utp_com.mk │ ├── uvw/ │ │ ├── Config.in │ │ ├── uvw.hash │ │ └── uvw.mk │ ├── ux500-firmware/ │ │ ├── Config.in │ │ ├── ux500-firmware.hash │ │ └── ux500-firmware.mk │ ├── v4l2cpp/ │ │ ├── 0001-no-log4cpp.patch.bak │ │ ├── 0001-shared-lib.patch │ │ ├── Config.in │ │ └── v4l2cpp.mk │ ├── v4l2grab/ │ │ ├── Config.in │ │ ├── v4l2grab.hash │ │ └── v4l2grab.mk │ ├── v4l2loopback/ │ │ ├── Config.in │ │ ├── v4l2loopback.hash │ │ └── v4l2loopback.mk │ ├── v4l2rtspserver/ │ │ ├── 0001-use-custom-makefile.patch │ │ ├── 0001-use-system-v4l2wrapper.patch.bak │ │ ├── Config.in │ │ └── v4l2rtspserver.mk │ ├── v4l2tools/ │ │ ├── 02-enable-cross-compile.patch │ │ ├── Config.in │ │ └── v4l2tools.mk │ ├── vala/ │ │ ├── 0001-dont-add-dirty-to-valac-version.patch │ │ ├── vala-wrapper │ │ ├── vala.hash │ │ └── vala.mk │ ├── valgrind/ │ │ ├── 0001-workaround-SIGSEGV-on-PPC.patch │ │ ├── 0002-Define-PTRACE_GETSIGINFO-on-PowerPC-when-not-availab.patch │ │ ├── Config.in │ │ ├── uclibc.supp │ │ ├── valgrind.hash │ │ └── valgrind.mk │ ├── valijson/ │ │ ├── Config.in │ │ ├── valijson.hash │ │ └── valijson.mk │ ├── vboot-utils/ │ │ ├── 0001-Add-missing-definition-of-MTD_CHAR_MAJOR.patch │ │ ├── 0002-Add-missing-header-include-for-ssize_t.patch │ │ ├── 0003-Avoid-RSA-type-redefinition.patch │ │ ├── 0004-Disable-static-futility.patch │ │ ├── 0005-include-sys-sysmacros.h-for-major.patch │ │ ├── 0006-Update-for-openssl-1.1.patch │ │ ├── 0007-Make-vboot_version-extern-in-header.patch │ │ ├── Config.in.host │ │ ├── vboot-utils.hash │ │ └── vboot-utils.mk │ ├── vde2/ │ │ ├── 0001-no-cxx.patch │ │ ├── 0002-fstp-Add-static-to-inline-functions.patch │ │ ├── Config.in │ │ ├── vde2.hash │ │ └── vde2.mk │ ├── vdr/ │ │ ├── Config.in │ │ ├── vdr.hash │ │ └── vdr.mk │ ├── vdr-plugin-vnsiserver/ │ │ ├── Config.in │ │ ├── vdr-plugin-vnsiserver.hash │ │ └── vdr-plugin-vnsiserver.mk │ ├── vim/ │ │ ├── Config.in │ │ ├── vim.hash │ │ └── vim.mk │ ├── vlc/ │ │ ├── 0001-Disable-building-of-statically-linked-vlc-binary.patch │ │ ├── 0002-automake-add-subdir-objects-option.patch │ │ ├── 0003-build-use-pkg-config-to-get-tremor-libs.patch │ │ ├── 0004-Fix-build-error-using-uClibc-by-adding-sys-types.h.patch │ │ ├── 0005-Don-t-assume-strerror_l-is-available.patch │ │ ├── 0006-posix-remove-ancient-run-time-fallback-to-real-time-.patch │ │ ├── 0007-Add-support-for-freerdp2.patch │ │ ├── 0008-configure.ac-also-use-AC_PATH_PROG-to-check-for-wayl.patch │ │ ├── 0009-modules-video_filter-opencv_example.cpp-fix-build-wi.patch │ │ ├── 0010-modules-access-live555.cpp-fix-build-with-live555-20.patch │ │ ├── Config.in │ │ ├── vlc.hash │ │ └── vlc.mk │ ├── vmtouch/ │ │ ├── Config.in │ │ ├── vmtouch.hash │ │ └── vmtouch.mk │ ├── vnstat/ │ │ ├── Config.in │ │ ├── vnstat.hash │ │ └── vnstat.mk │ ├── vo-aacenc/ │ │ ├── Config.in │ │ ├── vo-aacenc.hash │ │ └── vo-aacenc.mk │ ├── vorbis-tools/ │ │ ├── Config.in │ │ ├── vorbis-tools.hash │ │ └── vorbis-tools.mk │ ├── vpnc/ │ │ ├── 0001-Makefile-allow-to-override-the-PREFIX-variable.patch │ │ ├── 0002-Makefile-allow-to-override-the-version.patch │ │ ├── 0003-Makefile-allow-passing-custom-CFLAGS-CPPFLAGS.patch │ │ ├── 0004-Makefile-provide-an-option-to-not-build-manpages.patch │ │ ├── 0005-Makefile-allow-passing-a-custom-path-to-libgcrypt-co.patch │ │ ├── 0006-config.c-Replace-deprecated-SUSv3-functions-with-POS.patch │ │ ├── 0007-sysdep.h-don-t-assume-error.h-is-available-on-all-Li.patch │ │ ├── 0008-sysdep.c-don-t-include-linux-if_tun.h-on-Linux.patch │ │ ├── 0009-config.c-add-missing-sys-ttydefaults.h-include.patch │ │ ├── Config.in │ │ ├── vpnc.hash │ │ └── vpnc.mk │ ├── vsftpd/ │ │ ├── 0001-utmpx-builddef.patch │ │ ├── 0002-fix-CVE-2015-1419.patch │ │ ├── 0003-Prevent-hang-in-SIGCHLD-handler.patch │ │ ├── Config.in │ │ ├── S70vsftpd │ │ ├── vsftpd.hash │ │ ├── vsftpd.mk │ │ └── vsftpd.service │ ├── vte/ │ │ ├── Config.in │ │ ├── vte.hash │ │ └── vte.mk │ ├── vtun/ │ │ ├── 0001-fix-installation.patch │ │ ├── 0002-fix-ssl-headers-checks.patch │ │ ├── 0003-openssl11.patch │ │ ├── Config.in │ │ ├── vtun.hash │ │ └── vtun.mk │ ├── vuejs/ │ │ ├── Config.in │ │ ├── vuejs.hash │ │ └── vuejs.mk │ ├── vuejs-router/ │ │ ├── Config.in │ │ ├── vuejs-router.hash │ │ └── vuejs-router.mk │ ├── w_scan/ │ │ ├── 0001-musl.patch │ │ ├── 0002-si_types-h-fix-build-with-gcc-10.patch │ │ ├── Config.in │ │ ├── w_scan.hash │ │ └── w_scan.mk │ ├── waf/ │ │ ├── waf.hash │ │ └── waf.mk │ ├── waffle/ │ │ ├── 0001-cmake-forward-cflags-from-.pc-files-to-waffle-cflags.patch │ │ ├── Config.in │ │ ├── waffle.hash │ │ └── waffle.mk │ ├── wampcc/ │ │ ├── 0001-Add-RISC-V-endian-detection.patch │ │ ├── 0002-include-wampcc-platform.h-fix-build-with-musl-1.2.0.patch │ │ ├── 0003-Broken-build-on-Windows.patch │ │ ├── Config.in │ │ ├── wampcc.hash │ │ └── wampcc.mk │ ├── watchdog/ │ │ ├── Config.in │ │ ├── watchdog.hash │ │ └── watchdog.mk │ ├── watchdogd/ │ │ ├── Config.in │ │ ├── S01watchdogd │ │ ├── watchdogd.hash │ │ └── watchdogd.mk │ ├── wavemon/ │ │ ├── Config.in │ │ ├── wavemon.hash │ │ └── wavemon.mk │ ├── wavpack/ │ │ ├── Config.in │ │ ├── wavpack.hash │ │ └── wavpack.mk │ ├── wayland/ │ │ ├── 0001-build-add-option-to-disable-tests.patch │ │ ├── 0002-meson-only-require-cpp-for-tests.patch │ │ ├── Config.in │ │ ├── wayland.hash │ │ └── wayland.mk │ ├── wayland-protocols/ │ │ ├── 0001-meson.build-wayland-scanner-is-only-needed-for-tests.patch │ │ ├── Config.in │ │ ├── wayland-protocols.hash │ │ └── wayland-protocols.mk │ ├── wayland-utils/ │ │ ├── Config.in │ │ ├── wayland-utils.hash │ │ └── wayland-utils.mk │ ├── waylandpp/ │ │ ├── Config.in │ │ ├── waylandpp.hash │ │ └── waylandpp.mk │ ├── webkitgtk/ │ │ ├── Config.in │ │ ├── webkitgtk.hash │ │ └── webkitgtk.mk │ ├── webp/ │ │ ├── Config.in │ │ ├── webp.hash │ │ └── webp.mk │ ├── webrtc-audio-processing/ │ │ ├── 0001-Proper-detection-of-cxxabi.h-and-execinfo.h.patch │ │ ├── Config.in │ │ ├── webrtc-audio-processing.hash │ │ └── webrtc-audio-processing.mk │ ├── websocketpp/ │ │ ├── Config.in │ │ ├── websocketpp.hash │ │ └── websocketpp.mk │ ├── weston/ │ │ ├── 0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch │ │ ├── 0002-libweston-backend-drm-might-need-EGL.patch │ │ ├── 0003-pipewire-add-support-for-0.3-API.patch │ │ ├── 0004-pipewire-fix-null-deref-in-0-3-API.patch │ │ ├── Config.in │ │ ├── weston.hash │ │ └── weston.mk │ ├── wf111/ │ │ ├── Config.in │ │ ├── wf111.hash │ │ └── wf111.mk │ ├── wget/ │ │ ├── 0001-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch │ │ ├── Config.in │ │ ├── wget.hash │ │ └── wget.mk │ ├── whetstone/ │ │ ├── Config.in │ │ ├── whetstone.hash │ │ └── whetstone.mk │ ├── which/ │ │ ├── Config.in │ │ ├── which.hash │ │ └── which.mk │ ├── whois/ │ │ ├── Config.in │ │ ├── whois.hash │ │ └── whois.mk │ ├── wilc1000-firmware/ │ │ ├── Config.in │ │ ├── wilc1000-firmware.hash │ │ └── wilc1000-firmware.mk │ ├── wilink-bt-firmware/ │ │ ├── Config.in │ │ ├── wilink-bt-firmware.hash │ │ └── wilink-bt-firmware.mk │ ├── wine/ │ │ ├── Config.in │ │ ├── wine.hash │ │ └── wine.mk │ ├── wipe/ │ │ ├── 0001-musl.patch │ │ ├── Config.in │ │ ├── wipe.hash │ │ └── wipe.mk │ ├── wireguard-linux-compat/ │ │ ├── Config.in │ │ ├── wireguard-linux-compat.hash │ │ └── wireguard-linux-compat.mk │ ├── wireguard-tools/ │ │ ├── Config.in │ │ ├── wireguard-tools.hash │ │ └── wireguard-tools.mk │ ├── wireless-regdb/ │ │ ├── Config.in │ │ ├── wireless-regdb.hash │ │ └── wireless-regdb.mk │ ├── wireless_tools/ │ │ ├── 0001-remove-bzero.patch │ │ ├── Config.in │ │ ├── wireless_tools.hash │ │ └── wireless_tools.mk │ ├── wireplumber/ │ │ ├── Config.in │ │ ├── wireplumber.hash │ │ └── wireplumber.mk │ ├── wireshark/ │ │ ├── 0001-cmake-lemon-wipe-CMAKE_-EXE_LINKER_FLAGS-SYSROOT-if-.patch │ │ ├── Config.in │ │ ├── wireshark.hash │ │ └── wireshark.mk │ ├── wlroots/ │ │ ├── 0001-Add-feature-macros-to-more-C-files-.patch │ │ ├── Config.in │ │ ├── wlroots.hash │ │ └── wlroots.mk │ ├── wmctrl/ │ │ ├── Config.in │ │ ├── wmctrl.hash │ │ └── wmctrl.mk │ ├── woff2/ │ │ ├── 0001-CMake-Handle-multiple-libraries-being-returned-for-B.patch │ │ ├── Config.in │ │ ├── woff2.hash │ │ └── woff2.mk │ ├── wolfssl/ │ │ ├── Config.in │ │ ├── wolfssl.hash │ │ └── wolfssl.mk │ ├── wpa_supplicant/ │ │ ├── 0001-AP-Silently-ignore-management-frame-from-unexpected-.patch │ │ ├── 0002-ASN.1-Validate-DigestAlgorithmIdentifier-parameters.patch │ │ ├── 0003-Include-stdbool.h-to-allow-C99-bool-to-be-used.patch │ │ ├── 0004-ASN.1-Add-helper-functions-for-recognizing-tag-value.patch │ │ ├── 50-wpa_supplicant.preset │ │ ├── Config.in │ │ ├── wpa_supplicant.conf │ │ ├── wpa_supplicant.hash │ │ └── wpa_supplicant.mk │ ├── wpan-tools/ │ │ ├── Config.in │ │ ├── wpan-tools.hash │ │ └── wpan-tools.mk │ ├── wpebackend-fdo/ │ │ ├── Config.in │ │ ├── wpebackend-fdo.hash │ │ └── wpebackend-fdo.mk │ ├── wpewebkit/ │ │ ├── Config.in │ │ ├── wpewebkit.hash │ │ └── wpewebkit.mk │ ├── wqy-zenhei/ │ │ ├── Config.in │ │ ├── wqy-zenhei.hash │ │ └── wqy-zenhei.mk │ ├── wsapi/ │ │ ├── Config.in │ │ ├── wsapi.hash │ │ └── wsapi.mk │ ├── wsapi-fcgi/ │ │ ├── Config.in │ │ ├── wsapi-fcgi.hash │ │ └── wsapi-fcgi.mk │ ├── wsapi-xavante/ │ │ ├── Config.in │ │ ├── wsapi-xavante.hash │ │ └── wsapi-xavante.mk │ ├── x11r7/ │ │ ├── Config.in │ │ ├── libxcb/ │ │ │ ├── Config.in │ │ │ ├── libxcb.hash │ │ │ └── libxcb.mk │ │ ├── mcookie/ │ │ │ ├── Config.in │ │ │ ├── mcookie.c │ │ │ └── mcookie.mk │ │ ├── x11r7.mk │ │ ├── xapp_appres/ │ │ │ ├── Config.in │ │ │ ├── xapp_appres.hash │ │ │ └── xapp_appres.mk │ │ ├── xapp_bdftopcf/ │ │ │ ├── Config.in │ │ │ ├── xapp_bdftopcf.hash │ │ │ └── xapp_bdftopcf.mk │ │ ├── xapp_beforelight/ │ │ │ ├── Config.in │ │ │ ├── xapp_beforelight.hash │ │ │ └── xapp_beforelight.mk │ │ ├── xapp_bitmap/ │ │ │ ├── Config.in │ │ │ ├── xapp_bitmap.hash │ │ │ └── xapp_bitmap.mk │ │ ├── xapp_editres/ │ │ │ ├── Config.in │ │ │ ├── xapp_editres.hash │ │ │ └── xapp_editres.mk │ │ ├── xapp_fonttosfnt/ │ │ │ ├── Config.in │ │ │ ├── xapp_fonttosfnt.hash │ │ │ └── xapp_fonttosfnt.mk │ │ ├── xapp_fslsfonts/ │ │ │ ├── Config.in │ │ │ ├── xapp_fslsfonts.hash │ │ │ └── xapp_fslsfonts.mk │ │ ├── xapp_fstobdf/ │ │ │ ├── Config.in │ │ │ ├── xapp_fstobdf.hash │ │ │ └── xapp_fstobdf.mk │ │ ├── xapp_iceauth/ │ │ │ ├── Config.in │ │ │ ├── xapp_iceauth.hash │ │ │ └── xapp_iceauth.mk │ │ ├── xapp_ico/ │ │ │ ├── Config.in │ │ │ ├── xapp_ico.hash │ │ │ └── xapp_ico.mk │ │ ├── xapp_listres/ │ │ │ ├── Config.in │ │ │ ├── xapp_listres.hash │ │ │ └── xapp_listres.mk │ │ ├── xapp_luit/ │ │ │ ├── 0001-posix-openpt.patch │ │ │ ├── Config.in │ │ │ ├── xapp_luit.hash │ │ │ └── xapp_luit.mk │ │ ├── xapp_mkfontscale/ │ │ │ ├── Config.in │ │ │ ├── xapp_mkfontscale.hash │ │ │ └── xapp_mkfontscale.mk │ │ ├── xapp_oclock/ │ │ │ ├── Config.in │ │ │ ├── xapp_oclock.hash │ │ │ └── xapp_oclock.mk │ │ ├── xapp_rgb/ │ │ │ ├── Config.in │ │ │ ├── xapp_rgb.hash │ │ │ └── xapp_rgb.mk │ │ ├── xapp_rstart/ │ │ │ ├── Config.in │ │ │ ├── xapp_rstart.hash │ │ │ └── xapp_rstart.mk │ │ ├── xapp_scripts/ │ │ │ ├── Config.in │ │ │ ├── xapp_scripts.hash │ │ │ └── xapp_scripts.mk │ │ ├── xapp_sessreg/ │ │ │ ├── Config.in │ │ │ ├── xapp_sessreg.hash │ │ │ └── xapp_sessreg.mk │ │ ├── xapp_setxkbmap/ │ │ │ ├── Config.in │ │ │ ├── xapp_setxkbmap.hash │ │ │ └── xapp_setxkbmap.mk │ │ ├── xapp_showfont/ │ │ │ ├── Config.in │ │ │ ├── xapp_showfont.hash │ │ │ └── xapp_showfont.mk │ │ ├── xapp_smproxy/ │ │ │ ├── Config.in │ │ │ ├── xapp_smproxy.hash │ │ │ └── xapp_smproxy.mk │ │ ├── xapp_twm/ │ │ │ ├── Config.in │ │ │ ├── xapp_twm.hash │ │ │ └── xapp_twm.mk │ │ ├── xapp_viewres/ │ │ │ ├── Config.in │ │ │ ├── xapp_viewres.hash │ │ │ └── xapp_viewres.mk │ │ ├── xapp_x11perf/ │ │ │ ├── Config.in │ │ │ ├── xapp_x11perf.hash │ │ │ └── xapp_x11perf.mk │ │ ├── xapp_xauth/ │ │ │ ├── Config.in │ │ │ ├── xapp_xauth.hash │ │ │ └── xapp_xauth.mk │ │ ├── xapp_xbacklight/ │ │ │ ├── Config.in │ │ │ ├── xapp_xbacklight.hash │ │ │ └── xapp_xbacklight.mk │ │ ├── xapp_xbiff/ │ │ │ ├── Config.in │ │ │ ├── xapp_xbiff.hash │ │ │ └── xapp_xbiff.mk │ │ ├── xapp_xcalc/ │ │ │ ├── Config.in │ │ │ ├── xapp_xcalc.hash │ │ │ └── xapp_xcalc.mk │ │ ├── xapp_xclipboard/ │ │ │ ├── Config.in │ │ │ ├── xapp_xclipboard.hash │ │ │ └── xapp_xclipboard.mk │ │ ├── xapp_xclock/ │ │ │ ├── Config.in │ │ │ ├── xapp_xclock.hash │ │ │ └── xapp_xclock.mk │ │ ├── xapp_xcmsdb/ │ │ │ ├── Config.in │ │ │ ├── xapp_xcmsdb.hash │ │ │ └── xapp_xcmsdb.mk │ │ ├── xapp_xcompmgr/ │ │ │ ├── Config.in │ │ │ ├── xapp_xcompmgr.hash │ │ │ └── xapp_xcompmgr.mk │ │ ├── xapp_xconsole/ │ │ │ ├── Config.in │ │ │ ├── xapp_xconsole.hash │ │ │ └── xapp_xconsole.mk │ │ ├── xapp_xcursorgen/ │ │ │ ├── Config.in │ │ │ ├── xapp_xcursorgen.hash │ │ │ └── xapp_xcursorgen.mk │ │ ├── xapp_xdbedizzy/ │ │ │ ├── Config.in │ │ │ ├── xapp_xdbedizzy.hash │ │ │ └── xapp_xdbedizzy.mk │ │ ├── xapp_xditview/ │ │ │ ├── Config.in │ │ │ ├── xapp_xditview.hash │ │ │ └── xapp_xditview.mk │ │ ├── xapp_xdm/ │ │ │ ├── Config.in │ │ │ ├── S99xdm │ │ │ ├── xapp_xdm.hash │ │ │ └── xapp_xdm.mk │ │ ├── xapp_xdpyinfo/ │ │ │ ├── Config.in │ │ │ ├── xapp_xdpyinfo.hash │ │ │ └── xapp_xdpyinfo.mk │ │ ├── xapp_xdriinfo/ │ │ │ ├── Config.in │ │ │ ├── xapp_xdriinfo.hash │ │ │ └── xapp_xdriinfo.mk │ │ ├── xapp_xedit/ │ │ │ ├── Config.in │ │ │ ├── xapp_xedit.hash │ │ │ └── xapp_xedit.mk │ │ ├── xapp_xev/ │ │ │ ├── Config.in │ │ │ ├── xapp_xev.hash │ │ │ └── xapp_xev.mk │ │ ├── xapp_xeyes/ │ │ │ ├── Config.in │ │ │ ├── xapp_xeyes.hash │ │ │ └── xapp_xeyes.mk │ │ ├── xapp_xf86dga/ │ │ │ ├── Config.in │ │ │ ├── xapp_xf86dga.hash │ │ │ └── xapp_xf86dga.mk │ │ ├── xapp_xfd/ │ │ │ ├── Config.in │ │ │ ├── xapp_xfd.hash │ │ │ └── xapp_xfd.mk │ │ ├── xapp_xfindproxy/ │ │ │ ├── Config.in │ │ │ ├── xapp_xfindproxy.hash │ │ │ └── xapp_xfindproxy.mk │ │ ├── xapp_xfontsel/ │ │ │ ├── Config.in │ │ │ ├── xapp_xfontsel.hash │ │ │ └── xapp_xfontsel.mk │ │ ├── xapp_xfs/ │ │ │ ├── Config.in │ │ │ ├── xapp_xfs.hash │ │ │ └── xapp_xfs.mk │ │ ├── xapp_xfsinfo/ │ │ │ ├── Config.in │ │ │ ├── xapp_xfsinfo.hash │ │ │ └── xapp_xfsinfo.mk │ │ ├── xapp_xgamma/ │ │ │ ├── Config.in │ │ │ ├── xapp_xgamma.hash │ │ │ └── xapp_xgamma.mk │ │ ├── xapp_xgc/ │ │ │ ├── Config.in │ │ │ ├── xapp_xgc.hash │ │ │ └── xapp_xgc.mk │ │ ├── xapp_xhost/ │ │ │ ├── Config.in │ │ │ ├── xapp_xhost.hash │ │ │ └── xapp_xhost.mk │ │ ├── xapp_xinit/ │ │ │ ├── Config.in │ │ │ ├── xapp_xinit.hash │ │ │ └── xapp_xinit.mk │ │ ├── xapp_xinput/ │ │ │ ├── Config.in │ │ │ ├── xapp_xinput.hash │ │ │ └── xapp_xinput.mk │ │ ├── xapp_xinput-calibrator/ │ │ │ ├── Config.in │ │ │ ├── xapp_xinput-calibrator.hash │ │ │ └── xapp_xinput-calibrator.mk │ │ ├── xapp_xkbcomp/ │ │ │ ├── Config.in │ │ │ ├── xapp_xkbcomp.hash │ │ │ └── xapp_xkbcomp.mk │ │ ├── xapp_xkbevd/ │ │ │ ├── Config.in │ │ │ ├── xapp_xkbevd.hash │ │ │ └── xapp_xkbevd.mk │ │ ├── xapp_xkbprint/ │ │ │ ├── Config.in │ │ │ ├── xapp_xkbprint.hash │ │ │ └── xapp_xkbprint.mk │ │ ├── xapp_xkbutils/ │ │ │ ├── Config.in │ │ │ ├── xapp_xkbutils.hash │ │ │ └── xapp_xkbutils.mk │ │ ├── xapp_xkill/ │ │ │ ├── Config.in │ │ │ ├── xapp_xkill.hash │ │ │ └── xapp_xkill.mk │ │ ├── xapp_xload/ │ │ │ ├── Config.in │ │ │ ├── xapp_xload.hash │ │ │ └── xapp_xload.mk │ │ ├── xapp_xlogo/ │ │ │ ├── Config.in │ │ │ ├── xapp_xlogo.hash │ │ │ └── xapp_xlogo.mk │ │ ├── xapp_xlsatoms/ │ │ │ ├── Config.in │ │ │ ├── xapp_xlsatoms.hash │ │ │ └── xapp_xlsatoms.mk │ │ ├── xapp_xlsclients/ │ │ │ ├── Config.in │ │ │ ├── xapp_xlsclients.hash │ │ │ └── xapp_xlsclients.mk │ │ ├── xapp_xlsfonts/ │ │ │ ├── Config.in │ │ │ ├── xapp_xlsfonts.hash │ │ │ └── xapp_xlsfonts.mk │ │ ├── xapp_xmag/ │ │ │ ├── Config.in │ │ │ ├── xapp_xmag.hash │ │ │ └── xapp_xmag.mk │ │ ├── xapp_xman/ │ │ │ ├── Config.in │ │ │ ├── xapp_xman.hash │ │ │ └── xapp_xman.mk │ │ ├── xapp_xmessage/ │ │ │ ├── Config.in │ │ │ ├── xapp_xmessage.hash │ │ │ └── xapp_xmessage.mk │ │ ├── xapp_xmh/ │ │ │ ├── Config.in │ │ │ ├── xapp_xmh.hash │ │ │ └── xapp_xmh.mk │ │ ├── xapp_xmodmap/ │ │ │ ├── Config.in │ │ │ ├── xapp_xmodmap.hash │ │ │ └── xapp_xmodmap.mk │ │ ├── xapp_xmore/ │ │ │ ├── Config.in │ │ │ ├── xapp_xmore.hash │ │ │ └── xapp_xmore.mk │ │ ├── xapp_xpr/ │ │ │ ├── Config.in │ │ │ ├── xapp_xpr.hash │ │ │ └── xapp_xpr.mk │ │ ├── xapp_xprop/ │ │ │ ├── Config.in │ │ │ ├── xapp_xprop.hash │ │ │ └── xapp_xprop.mk │ │ ├── xapp_xrandr/ │ │ │ ├── Config.in │ │ │ ├── xapp_xrandr.hash │ │ │ └── xapp_xrandr.mk │ │ ├── xapp_xrdb/ │ │ │ ├── Config.in │ │ │ ├── xapp_xrdb.hash │ │ │ └── xapp_xrdb.mk │ │ ├── xapp_xrefresh/ │ │ │ ├── Config.in │ │ │ ├── xapp_xrefresh.hash │ │ │ └── xapp_xrefresh.mk │ │ ├── xapp_xset/ │ │ │ ├── Config.in │ │ │ ├── xapp_xset.hash │ │ │ └── xapp_xset.mk │ │ ├── xapp_xsetmode/ │ │ │ ├── Config.in │ │ │ ├── xapp_xsetmode.hash │ │ │ └── xapp_xsetmode.mk │ │ ├── xapp_xsetpointer/ │ │ │ ├── Config.in │ │ │ ├── xapp_xsetpointer.hash │ │ │ └── xapp_xsetpointer.mk │ │ ├── xapp_xsetroot/ │ │ │ ├── Config.in │ │ │ ├── xapp_xsetroot.hash │ │ │ └── xapp_xsetroot.mk │ │ ├── xapp_xsm/ │ │ │ ├── Config.in │ │ │ ├── xapp_xsm.hash │ │ │ └── xapp_xsm.mk │ │ ├── xapp_xstdcmap/ │ │ │ ├── Config.in │ │ │ ├── xapp_xstdcmap.hash │ │ │ └── xapp_xstdcmap.mk │ │ ├── xapp_xvidtune/ │ │ │ ├── Config.in │ │ │ ├── xapp_xvidtune.hash │ │ │ └── xapp_xvidtune.mk │ │ ├── xapp_xvinfo/ │ │ │ ├── Config.in │ │ │ ├── xapp_xvinfo.hash │ │ │ └── xapp_xvinfo.mk │ │ ├── xapp_xwd/ │ │ │ ├── Config.in │ │ │ ├── xapp_xwd.hash │ │ │ └── xapp_xwd.mk │ │ ├── xapp_xwininfo/ │ │ │ ├── Config.in │ │ │ ├── xapp_xwininfo.hash │ │ │ └── xapp_xwininfo.mk │ │ ├── xapp_xwud/ │ │ │ ├── Config.in │ │ │ ├── xapp_xwud.hash │ │ │ └── xapp_xwud.mk │ │ ├── xcb-proto/ │ │ │ ├── Config.in │ │ │ ├── xcb-proto.hash │ │ │ └── xcb-proto.mk │ │ ├── xcb-util/ │ │ │ ├── Config.in │ │ │ ├── xcb-util.hash │ │ │ └── xcb-util.mk │ │ ├── xcb-util-cursor/ │ │ │ ├── Config.in │ │ │ ├── xcb-util-cursor.hash │ │ │ └── xcb-util-cursor.mk │ │ ├── xcb-util-image/ │ │ │ ├── Config.in │ │ │ ├── xcb-util-image.hash │ │ │ └── xcb-util-image.mk │ │ ├── xcb-util-keysyms/ │ │ │ ├── Config.in │ │ │ ├── xcb-util-keysyms.hash │ │ │ └── xcb-util-keysyms.mk │ │ ├── xcb-util-renderutil/ │ │ │ ├── Config.in │ │ │ ├── xcb-util-renderutil.hash │ │ │ └── xcb-util-renderutil.mk │ │ ├── xcb-util-wm/ │ │ │ ├── Config.in │ │ │ ├── xcb-util-wm.hash │ │ │ └── xcb-util-wm.mk │ │ ├── xcursor-transparent-theme/ │ │ │ ├── 0001-fix-symlink.patch │ │ │ ├── Config.in │ │ │ ├── index.theme │ │ │ ├── xcursor-transparent-theme.hash │ │ │ └── xcursor-transparent-theme.mk │ │ ├── xdata_xbitmaps/ │ │ │ ├── Config.in │ │ │ ├── xdata_xbitmaps.hash │ │ │ └── xdata_xbitmaps.mk │ │ ├── xdata_xcursor-themes/ │ │ │ ├── Config.in │ │ │ ├── xdata_xcursor-themes.hash │ │ │ └── xdata_xcursor-themes.mk │ │ ├── xdriver_xf86-input-evdev/ │ │ │ ├── 0001-build-get-rid-of-sdkdir.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-input-evdev.hash │ │ │ └── xdriver_xf86-input-evdev.mk │ │ ├── xdriver_xf86-input-joystick/ │ │ │ ├── 0001-build-get-rid-of-sdkdir.patch │ │ │ ├── 50-joystick.conf │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-input-joystick.hash │ │ │ └── xdriver_xf86-input-joystick.mk │ │ ├── xdriver_xf86-input-keyboard/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-input-keyboard.hash │ │ │ └── xdriver_xf86-input-keyboard.mk │ │ ├── xdriver_xf86-input-libinput/ │ │ │ ├── 0001-build-get-rid-of-sdkdir.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-input-libinput.hash │ │ │ └── xdriver_xf86-input-libinput.mk │ │ ├── xdriver_xf86-input-mouse/ │ │ │ ├── 0001-build-get-rid-of-sdkdir.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-input-mouse.hash │ │ │ └── xdriver_xf86-input-mouse.mk │ │ ├── xdriver_xf86-input-synaptics/ │ │ │ ├── 0001-build-get-rid-of-sdkdir.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-input-synaptics.hash │ │ │ └── xdriver_xf86-input-synaptics.mk │ │ ├── xdriver_xf86-input-tslib/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-input-tslib.hash │ │ │ └── xdriver_xf86-input-tslib.mk │ │ ├── xdriver_xf86-input-vmmouse/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-input-vmmouse.hash │ │ │ └── xdriver_xf86-input-vmmouse.mk │ │ ├── xdriver_xf86-video-amdgpu/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-amdgpu.hash │ │ │ └── xdriver_xf86-video-amdgpu.mk │ │ ├── xdriver_xf86-video-ark/ │ │ │ ├── 0001-mibstore.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-ark.hash │ │ │ └── xdriver_xf86-video-ark.mk │ │ ├── xdriver_xf86-video-ast/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-ast.hash │ │ │ └── xdriver_xf86-video-ast.mk │ │ ├── xdriver_xf86-video-ati/ │ │ │ ├── 0001-Fix-link-failure-with-gcc-10.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-ati.hash │ │ │ └── xdriver_xf86-video-ati.mk │ │ ├── xdriver_xf86-video-cirrus/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-cirrus.hash │ │ │ └── xdriver_xf86-video-cirrus.mk │ │ ├── xdriver_xf86-video-dummy/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-dummy.hash │ │ │ └── xdriver_xf86-video-dummy.mk │ │ ├── xdriver_xf86-video-fbdev/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-fbdev.hash │ │ │ └── xdriver_xf86-video-fbdev.mk │ │ ├── xdriver_xf86-video-fbturbo/ │ │ │ ├── 0001-sunxi_x_g2d-drop-unused-dri2-include.patch │ │ │ ├── 0002-Use-own-thunk-functions-instead-of-fbdevHW-Weak.patch │ │ │ ├── 0003-Update-for-1.20-ABI.patch │ │ │ ├── 0004-xorg.conf-add-mandatory-modules-fb-shadow-fbdevhw.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-fbturbo.hash │ │ │ └── xdriver_xf86-video-fbturbo.mk │ │ ├── xdriver_xf86-video-geode/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-geode.hash │ │ │ └── xdriver_xf86-video-geode.mk │ │ ├── xdriver_xf86-video-glint/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-glint.hash │ │ │ └── xdriver_xf86-video-glint.mk │ │ ├── xdriver_xf86-video-i128/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-i128.hash │ │ │ └── xdriver_xf86-video-i128.mk │ │ ├── xdriver_xf86-video-imx/ │ │ │ ├── 0001-Update-to-newer-swap-macros.patch │ │ │ ├── 0002-Fix-error-unknown-type-name-uint.patch │ │ │ ├── 0003-support-glibc-2.20.patch │ │ │ ├── 0004-Make-video-API-forward-and-backward-compatible.patch │ │ │ ├── 0005-xf86-video-imxfb-fix-m4-hardcodded-paths.patch │ │ │ ├── 0006-xserver-1.14-compat.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-imx.hash │ │ │ └── xdriver_xf86-video-imx.mk │ │ ├── xdriver_xf86-video-imx-viv/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-imx-viv.hash │ │ │ └── xdriver_xf86-video-imx-viv.mk │ │ ├── xdriver_xf86-video-intel/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-intel.hash │ │ │ └── xdriver_xf86-video-intel.mk │ │ ├── xdriver_xf86-video-mach64/ │ │ │ ├── 0001-cross-compile.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-mach64.hash │ │ │ └── xdriver_xf86-video-mach64.mk │ │ ├── xdriver_xf86-video-mga/ │ │ │ ├── 0001-misc-fixes.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-mga.hash │ │ │ └── xdriver_xf86-video-mga.mk │ │ ├── xdriver_xf86-video-neomagic/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-neomagic.hash │ │ │ └── xdriver_xf86-video-neomagic.mk │ │ ├── xdriver_xf86-video-nouveau/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-nouveau.hash │ │ │ └── xdriver_xf86-video-nouveau.mk │ │ ├── xdriver_xf86-video-nv/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-nv.hash │ │ │ └── xdriver_xf86-video-nv.mk │ │ ├── xdriver_xf86-video-openchrome/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-openchrome.hash │ │ │ └── xdriver_xf86-video-openchrome.mk │ │ ├── xdriver_xf86-video-qxl/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-qxl.hash │ │ │ └── xdriver_xf86-video-qxl.mk │ │ ├── xdriver_xf86-video-r128/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-r128.hash │ │ │ └── xdriver_xf86-video-r128.mk │ │ ├── xdriver_xf86-video-savage/ │ │ │ ├── 0001-cross-compile.patch │ │ │ ├── 0002-xorg-xserver120.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-savage.hash │ │ │ └── xdriver_xf86-video-savage.mk │ │ ├── xdriver_xf86-video-siliconmotion/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-siliconmotion.hash │ │ │ └── xdriver_xf86-video-siliconmotion.mk │ │ ├── xdriver_xf86-video-sis/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-sis.hash │ │ │ └── xdriver_xf86-video-sis.mk │ │ ├── xdriver_xf86-video-tdfx/ │ │ │ ├── 0001-cross.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-tdfx.hash │ │ │ └── xdriver_xf86-video-tdfx.mk │ │ ├── xdriver_xf86-video-tga/ │ │ │ ├── 0001-mibstore.patch │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-tga.hash │ │ │ └── xdriver_xf86-video-tga.mk │ │ ├── xdriver_xf86-video-trident/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-trident.hash │ │ │ └── xdriver_xf86-video-trident.mk │ │ ├── xdriver_xf86-video-vesa/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-vesa.hash │ │ │ └── xdriver_xf86-video-vesa.mk │ │ ├── xdriver_xf86-video-vmware/ │ │ │ ├── Config.in │ │ │ ├── xdriver_xf86-video-vmware.hash │ │ │ └── xdriver_xf86-video-vmware.mk │ │ ├── xdriver_xf86-video-voodoo/ │ │ │ ├── Config.in │ │ │ └── xdriver_xf86-video-voodoo.mk │ │ ├── xfont_encodings/ │ │ │ ├── Config.in │ │ │ ├── xfont_encodings.hash │ │ │ └── xfont_encodings.mk │ │ ├── xfont_font-adobe-100dpi/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-adobe-100dpi.hash │ │ │ └── xfont_font-adobe-100dpi.mk │ │ ├── xfont_font-adobe-75dpi/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-adobe-75dpi.hash │ │ │ └── xfont_font-adobe-75dpi.mk │ │ ├── xfont_font-adobe-utopia-100dpi/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-adobe-utopia-100dpi.hash │ │ │ └── xfont_font-adobe-utopia-100dpi.mk │ │ ├── xfont_font-adobe-utopia-75dpi/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-adobe-utopia-75dpi.hash │ │ │ └── xfont_font-adobe-utopia-75dpi.mk │ │ ├── xfont_font-adobe-utopia-type1/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-adobe-utopia-type1.hash │ │ │ └── xfont_font-adobe-utopia-type1.mk │ │ ├── xfont_font-alias/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-alias.hash │ │ │ └── xfont_font-alias.mk │ │ ├── xfont_font-arabic-misc/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-arabic-misc.hash │ │ │ └── xfont_font-arabic-misc.mk │ │ ├── xfont_font-bh-100dpi/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-bh-100dpi.hash │ │ │ └── xfont_font-bh-100dpi.mk │ │ ├── xfont_font-bh-75dpi/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-bh-75dpi.hash │ │ │ └── xfont_font-bh-75dpi.mk │ │ ├── xfont_font-bh-lucidatypewriter-100dpi/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-bh-lucidatypewriter-100dpi.hash │ │ │ └── xfont_font-bh-lucidatypewriter-100dpi.mk │ │ ├── xfont_font-bh-lucidatypewriter-75dpi/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-bh-lucidatypewriter-75dpi.hash │ │ │ └── xfont_font-bh-lucidatypewriter-75dpi.mk │ │ ├── xfont_font-bh-ttf/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-bh-ttf.hash │ │ │ └── xfont_font-bh-ttf.mk │ │ ├── xfont_font-bh-type1/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-bh-type1.hash │ │ │ └── xfont_font-bh-type1.mk │ │ ├── xfont_font-bitstream-100dpi/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-bitstream-100dpi.hash │ │ │ └── xfont_font-bitstream-100dpi.mk │ │ ├── xfont_font-bitstream-75dpi/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-bitstream-75dpi.hash │ │ │ └── xfont_font-bitstream-75dpi.mk │ │ ├── xfont_font-bitstream-type1/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-bitstream-type1.hash │ │ │ └── xfont_font-bitstream-type1.mk │ │ ├── xfont_font-cronyx-cyrillic/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-cronyx-cyrillic.hash │ │ │ └── xfont_font-cronyx-cyrillic.mk │ │ ├── xfont_font-cursor-misc/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-cursor-misc.hash │ │ │ └── xfont_font-cursor-misc.mk │ │ ├── xfont_font-daewoo-misc/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-daewoo-misc.hash │ │ │ └── xfont_font-daewoo-misc.mk │ │ ├── xfont_font-dec-misc/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-dec-misc.hash │ │ │ └── xfont_font-dec-misc.mk │ │ ├── xfont_font-ibm-type1/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-ibm-type1.hash │ │ │ └── xfont_font-ibm-type1.mk │ │ ├── xfont_font-isas-misc/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-isas-misc.hash │ │ │ └── xfont_font-isas-misc.mk │ │ ├── xfont_font-jis-misc/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-jis-misc.hash │ │ │ └── xfont_font-jis-misc.mk │ │ ├── xfont_font-micro-misc/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-micro-misc.hash │ │ │ └── xfont_font-micro-misc.mk │ │ ├── xfont_font-misc-cyrillic/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-misc-cyrillic.hash │ │ │ └── xfont_font-misc-cyrillic.mk │ │ ├── xfont_font-misc-ethiopic/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-misc-ethiopic.hash │ │ │ └── xfont_font-misc-ethiopic.mk │ │ ├── xfont_font-misc-meltho/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-misc-meltho.hash │ │ │ └── xfont_font-misc-meltho.mk │ │ ├── xfont_font-misc-misc/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-misc-misc.hash │ │ │ └── xfont_font-misc-misc.mk │ │ ├── xfont_font-mutt-misc/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-mutt-misc.hash │ │ │ └── xfont_font-mutt-misc.mk │ │ ├── xfont_font-schumacher-misc/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-schumacher-misc.hash │ │ │ └── xfont_font-schumacher-misc.mk │ │ ├── xfont_font-screen-cyrillic/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-screen-cyrillic.hash │ │ │ └── xfont_font-screen-cyrillic.mk │ │ ├── xfont_font-sony-misc/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-sony-misc.hash │ │ │ └── xfont_font-sony-misc.mk │ │ ├── xfont_font-sun-misc/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-sun-misc.hash │ │ │ └── xfont_font-sun-misc.mk │ │ ├── xfont_font-util/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-util.hash │ │ │ └── xfont_font-util.mk │ │ ├── xfont_font-winitzki-cyrillic/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-winitzki-cyrillic.hash │ │ │ └── xfont_font-winitzki-cyrillic.mk │ │ ├── xfont_font-xfree86-type1/ │ │ │ ├── Config.in │ │ │ ├── xfont_font-xfree86-type1.hash │ │ │ └── xfont_font-xfree86-type1.mk │ │ ├── xkeyboard-config/ │ │ │ ├── Config.in │ │ │ ├── xkeyboard-config.hash │ │ │ └── xkeyboard-config.mk │ │ ├── xlib_libFS/ │ │ │ ├── Config.in │ │ │ ├── xlib_libFS.hash │ │ │ └── xlib_libFS.mk │ │ ├── xlib_libICE/ │ │ │ ├── Config.in │ │ │ ├── xlib_libICE.hash │ │ │ └── xlib_libICE.mk │ │ ├── xlib_libSM/ │ │ │ ├── Config.in │ │ │ ├── xlib_libSM.hash │ │ │ └── xlib_libSM.mk │ │ ├── xlib_libX11/ │ │ │ ├── Config.in │ │ │ ├── xlib_libX11.hash │ │ │ └── xlib_libX11.mk │ │ ├── xlib_libXScrnSaver/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXScrnSaver.hash │ │ │ └── xlib_libXScrnSaver.mk │ │ ├── xlib_libXau/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXau.hash │ │ │ └── xlib_libXau.mk │ │ ├── xlib_libXaw/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXaw.hash │ │ │ └── xlib_libXaw.mk │ │ ├── xlib_libXcomposite/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXcomposite.hash │ │ │ └── xlib_libXcomposite.mk │ │ ├── xlib_libXcursor/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXcursor.hash │ │ │ └── xlib_libXcursor.mk │ │ ├── xlib_libXdamage/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXdamage.hash │ │ │ └── xlib_libXdamage.mk │ │ ├── xlib_libXdmcp/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXdmcp.hash │ │ │ └── xlib_libXdmcp.mk │ │ ├── xlib_libXext/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXext.hash │ │ │ └── xlib_libXext.mk │ │ ├── xlib_libXfixes/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXfixes.hash │ │ │ └── xlib_libXfixes.mk │ │ ├── xlib_libXfont/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXfont.hash │ │ │ └── xlib_libXfont.mk │ │ ├── xlib_libXfont2/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXfont2.hash │ │ │ └── xlib_libXfont2.mk │ │ ├── xlib_libXft/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXft.hash │ │ │ └── xlib_libXft.mk │ │ ├── xlib_libXi/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXi.hash │ │ │ └── xlib_libXi.mk │ │ ├── xlib_libXinerama/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXinerama.hash │ │ │ └── xlib_libXinerama.mk │ │ ├── xlib_libXmu/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXmu.hash │ │ │ └── xlib_libXmu.mk │ │ ├── xlib_libXpm/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXpm.hash │ │ │ └── xlib_libXpm.mk │ │ ├── xlib_libXrandr/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXrandr.hash │ │ │ └── xlib_libXrandr.mk │ │ ├── xlib_libXrender/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXrender.hash │ │ │ └── xlib_libXrender.mk │ │ ├── xlib_libXres/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXres.hash │ │ │ └── xlib_libXres.mk │ │ ├── xlib_libXt/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXt.hash │ │ │ └── xlib_libXt.mk │ │ ├── xlib_libXtst/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXtst.hash │ │ │ └── xlib_libXtst.mk │ │ ├── xlib_libXv/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXv.hash │ │ │ └── xlib_libXv.mk │ │ ├── xlib_libXvMC/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXvMC.hash │ │ │ └── xlib_libXvMC.mk │ │ ├── xlib_libXxf86dga/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXxf86dga.hash │ │ │ └── xlib_libXxf86dga.mk │ │ ├── xlib_libXxf86vm/ │ │ │ ├── Config.in │ │ │ ├── xlib_libXxf86vm.hash │ │ │ └── xlib_libXxf86vm.mk │ │ ├── xlib_libdmx/ │ │ │ ├── Config.in │ │ │ ├── xlib_libdmx.hash │ │ │ └── xlib_libdmx.mk │ │ ├── xlib_libfontenc/ │ │ │ ├── Config.in │ │ │ ├── xlib_libfontenc.hash │ │ │ └── xlib_libfontenc.mk │ │ ├── xlib_libxkbfile/ │ │ │ ├── Config.in │ │ │ ├── xlib_libxkbfile.hash │ │ │ └── xlib_libxkbfile.mk │ │ ├── xlib_libxshmfence/ │ │ │ ├── Config.in │ │ │ ├── xlib_libxshmfence.hash │ │ │ └── xlib_libxshmfence.mk │ │ ├── xlib_xtrans/ │ │ │ ├── Config.in │ │ │ ├── xlib_xtrans.hash │ │ │ └── xlib_xtrans.mk │ │ ├── xorgproto/ │ │ │ ├── Config.in │ │ │ ├── xorgproto.hash │ │ │ └── xorgproto.mk │ │ ├── xserver_xorg-server/ │ │ │ ├── 0001-modesettings-needs-dri2.patch │ │ │ ├── 0002-include-misc.h-fix-uClibc-build.patch │ │ │ ├── 0003-hw-xwayland-Makefile.am-fix-build-without-glx.patch │ │ │ ├── 0004-hw-xfree86-common-xf86Init.c-fix-build-without-glx.patch │ │ │ ├── 0005-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch │ │ │ ├── 0006-compiler.h-don-t-define-inb-outb-and-friends-on-mips.patch │ │ │ ├── Config.in │ │ │ ├── S40xorg │ │ │ ├── xorg.service │ │ │ ├── xserver_xorg-server.hash │ │ │ └── xserver_xorg-server.mk │ │ └── xutil_makedepend/ │ │ ├── Config.in │ │ ├── xutil_makedepend.hash │ │ └── xutil_makedepend.mk │ ├── x11vnc/ │ │ ├── 0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch │ │ ├── 0002-scan-limit-access-to-shared-memory-segments-to-current-user.patch │ │ ├── Config.in │ │ ├── x11vnc.hash │ │ └── x11vnc.mk │ ├── x264/ │ │ ├── Config.in │ │ ├── x264.hash │ │ └── x264.mk │ ├── x265/ │ │ ├── 0001-fix-gcc-options.patch │ │ ├── 0002-arm-asm-primitives.patch │ │ ├── Config.in │ │ ├── x265.hash │ │ └── x265.mk │ ├── xapian/ │ │ ├── Config.in │ │ ├── xapian.hash │ │ └── xapian.mk │ ├── xavante/ │ │ ├── Config.in │ │ ├── xavante.hash │ │ └── xavante.mk │ ├── xdg-dbus-proxy/ │ │ ├── 0001-Fix-musl-compilation-by-adding-TEMP_FAILURE_RETRY.patch │ │ ├── Config.in │ │ ├── xdg-dbus-proxy.hash │ │ └── xdg-dbus-proxy.mk │ ├── xdotool/ │ │ ├── Config.in │ │ ├── xdotool.hash │ │ └── xdotool.mk │ ├── xen/ │ │ ├── 0001-9pfs-include-linux-limits.h-for-XATTR_SIZE_MAX.patch │ │ ├── 0002-Fix-build-with-64-bits-time_t.patch │ │ ├── 0003-libs-light-fix-tv_sec-printf-format.patch │ │ ├── 0004-libs-light-fix-tv_sec-fprintf-format.patch │ │ ├── Config.in │ │ ├── xen.hash │ │ └── xen.mk │ ├── xenomai/ │ │ ├── 3.0.10/ │ │ │ ├── 0001-lib-boilerplate-iniparser-Allow-building-with-GCC-10-2-2020101.patch │ │ │ └── 0002-Add-disable-demo-testsuite-options.patch │ │ ├── Config.in │ │ ├── xenomai.hash │ │ └── xenomai.mk │ ├── xerces/ │ │ ├── 0001-fix-static-linking-with-curl.patch │ │ ├── 0002-InMemMsgLoader-loadMsg-fix-memory-leak-when-transcod.patch │ │ ├── Config.in │ │ ├── xerces.hash │ │ └── xerces.mk │ ├── xfsprogs/ │ │ ├── 0001-mdrestore-do-not-do-dynamic-linking-of-libtool-libra.patch │ │ ├── 0002-libxfs-do-not-try-to-run-the-crc32selftest.patch │ │ ├── Config.in │ │ ├── xfsprogs.hash │ │ └── xfsprogs.mk │ ├── xinetd/ │ │ ├── 0001-ar.patch │ │ ├── 0002-destdir.patch │ │ ├── 0003-rpc-fix.patch │ │ ├── 0004-configure-rlim_t.patch │ │ ├── 0005-CVE-2013-4342-xinetd-ignores-user-and-group-directiv.patch │ │ ├── Config.in │ │ ├── xinetd.hash │ │ └── xinetd.mk │ ├── xl2tp/ │ │ ├── Config.in │ │ ├── xl2tp.hash │ │ ├── xl2tp.mk │ │ └── xl2tpd │ ├── xml-security-c/ │ │ ├── 0001-autoconf-variable-cache-option-for-getcwd-test.patch │ │ ├── Config.in │ │ ├── xml-security-c.hash │ │ └── xml-security-c.mk │ ├── xmlstarlet/ │ │ ├── Config.in │ │ ├── xmlstarlet.hash │ │ └── xmlstarlet.mk │ ├── xmrig/ │ │ ├── Config.in │ │ ├── xmrig.hash │ │ └── xmrig.mk │ ├── xorcurses/ │ │ ├── Config.in │ │ ├── xorcurses.hash │ │ └── xorcurses.mk │ ├── xorriso/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── xorriso.hash │ │ └── xorriso.mk │ ├── xr819-xradio/ │ │ ├── Config.in │ │ ├── xr819-xradio.hash │ │ └── xr819-xradio.mk │ ├── xscreensaver/ │ │ ├── Config.in │ │ ├── xscreensaver.hash │ │ └── xscreensaver.mk │ ├── xtables-addons/ │ │ ├── Config.in │ │ ├── xtables-addons.hash │ │ └── xtables-addons.mk │ ├── xterm/ │ │ ├── Config.in │ │ ├── xterm.hash │ │ └── xterm.mk │ ├── xutil_util-macros/ │ │ ├── Config.in │ │ ├── xutil_util-macros.hash │ │ └── xutil_util-macros.mk │ ├── xvisor/ │ │ ├── 0001-fix-build-with-gcc-10.patch │ │ ├── 0002-psmouse-back.c-fix-build-with-gcc-11.patch │ │ ├── Config.in │ │ ├── xvisor.hash │ │ └── xvisor.mk │ ├── xvkbd/ │ │ ├── Config.in │ │ ├── xvkbd.hash │ │ └── xvkbd.mk │ ├── xxhash/ │ │ ├── Config.in │ │ ├── xxhash.hash │ │ └── xxhash.mk │ ├── xz/ │ │ ├── Config.in │ │ ├── xz.hash │ │ └── xz.mk │ ├── yad/ │ │ ├── Config.in │ │ ├── yad.hash │ │ └── yad.mk │ ├── yaffs2utils/ │ │ ├── yaffs2utils.hash │ │ └── yaffs2utils.mk │ ├── yajl/ │ │ ├── 0001-Let-the-shared-and-the-static-library-have-the-same-.patch │ │ ├── 0002-cmake-disable-shared-library-build-when-BUILD_SHARED.patch │ │ ├── 0003-Link-with-shared-libyajl-in-a-shared-build.patch │ │ ├── 0004-Link-libyajl-_s-with-libm-when-isnan-is-not-brought-.patch │ │ ├── Config.in │ │ ├── yajl.hash │ │ └── yajl.mk │ ├── yaml-cpp/ │ │ ├── Config.in │ │ ├── yaml-cpp.hash │ │ └── yaml-cpp.mk │ ├── yasm/ │ │ ├── Config.in │ │ ├── yasm.hash │ │ └── yasm.mk │ ├── yavta/ │ │ ├── Config.in │ │ ├── yavta.hash │ │ └── yavta.mk │ ├── ympd/ │ │ ├── 0001-only-c-language.patch │ │ ├── 0002-added-forward-declarations.patch │ │ ├── Config.in │ │ ├── ympd.hash │ │ └── ympd.mk │ ├── ytree/ │ │ ├── 0001-fix-musl.patch │ │ ├── Config.in │ │ ├── ytree.hash │ │ └── ytree.mk │ ├── zbar/ │ │ ├── Config.in │ │ ├── zbar.hash │ │ └── zbar.mk │ ├── zd1211-firmware/ │ │ ├── Config.in │ │ ├── zd1211-firmware.hash │ │ └── zd1211-firmware.mk │ ├── zeromq/ │ │ ├── Config.in │ │ ├── zeromq.hash │ │ └── zeromq.mk │ ├── zfs/ │ │ ├── Config.in │ │ ├── zfs.hash │ │ └── zfs.mk │ ├── zic/ │ │ ├── 0001-remove-dependency-check-on-version-file.patch │ │ ├── zic.hash │ │ └── zic.mk │ ├── zip/ │ │ ├── 0001-configure-Remove-Check-C-compiler-type-optimization-.patch │ │ ├── 0002-configure-Don-t-use-host-CPP.patch │ │ ├── 0003-Makefile-Use-CFLAGS-from-command-line.patch │ │ ├── 0004-configure-use-LDFLAGS-from-command-line.patch │ │ ├── 0005-unix-configure-remove-GID-UID-size-check.patch │ │ ├── 0006-unix-configure-borrow-the-LFS-test-from-autotools.patch │ │ ├── 0007-timezone.c-needs-time.h-fixes-musl-compile.patch │ │ ├── 0008-fix-musl-static-build.patch │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── zip.hash │ │ └── zip.mk │ ├── zisofs-tools/ │ │ ├── zisofs-tools.hash │ │ └── zisofs-tools.mk │ ├── zlib/ │ │ ├── Config.in │ │ └── zlib.mk │ ├── zlib-ng/ │ │ ├── zlib-ng.hash │ │ └── zlib-ng.mk │ ├── zlog/ │ │ ├── Config.in │ │ ├── zlog.hash │ │ └── zlog.mk │ ├── zmqpp/ │ │ ├── 0001-Allow-building-shared-or-static-library-only.patch │ │ ├── Config.in │ │ ├── zmqpp.hash │ │ └── zmqpp.mk │ ├── znc/ │ │ ├── Config.in │ │ ├── znc.hash │ │ └── znc.mk │ ├── zsh/ │ │ ├── Config.in │ │ ├── zsh.hash │ │ └── zsh.mk │ ├── zstd/ │ │ ├── Config.in │ │ ├── Config.in.host │ │ ├── zstd.hash │ │ └── zstd.mk │ ├── zxing-cpp/ │ │ ├── 0001-Link-library-with-OpenCV-make-libs-private-not-exported-to-the-users.patch │ │ ├── 0002-CMakeLists-txt-add-BUILD_OPENCV-option.patch │ │ ├── Config.in │ │ ├── zxing-cpp.hash │ │ └── zxing-cpp.mk │ ├── zynq-boot-bin/ │ │ ├── zynq-boot-bin.hash │ │ └── zynq-boot-bin.mk │ ├── zyre/ │ │ ├── Config.in │ │ ├── zyre.hash │ │ └── zyre.mk │ └── zziplib/ │ ├── Config.in │ ├── zziplib.hash │ └── zziplib.mk ├── support/ │ ├── config-fragments/ │ │ ├── autobuild/ │ │ │ ├── andes-nds32.config │ │ │ ├── arm-aarch64.config │ │ │ ├── bootlin-aarch64-glibc.config │ │ │ ├── bootlin-arcle-hs38-uclibc.config │ │ │ ├── bootlin-armv5-uclibc.config │ │ │ ├── bootlin-armv7-glibc.config │ │ │ ├── bootlin-armv7-musl.config │ │ │ ├── bootlin-armv7m-uclibc.config │ │ │ ├── bootlin-m68k-5208-uclibc.config │ │ │ ├── bootlin-m68k-68040-uclibc.config │ │ │ ├── bootlin-microblazeel-uclibc.config │ │ │ ├── bootlin-mipsel-uclibc.config │ │ │ ├── bootlin-mipsel32r6-glibc.config │ │ │ ├── bootlin-nios2-glibc.config │ │ │ ├── bootlin-openrisc-uclibc.config │ │ │ ├── bootlin-powerpc-e500mc-uclibc.config │ │ │ ├── bootlin-powerpc64le-power8-glibc.config │ │ │ ├── bootlin-riscv32-glibc.config │ │ │ ├── bootlin-riscv64-glibc.config │ │ │ ├── bootlin-riscv64-musl.config │ │ │ ├── bootlin-sh4-uclibc.config │ │ │ ├── bootlin-sparc-uclibc.config │ │ │ ├── bootlin-sparc64-glibc.config │ │ │ ├── bootlin-x86-64-glibc.config │ │ │ ├── bootlin-x86-64-musl.config │ │ │ ├── bootlin-x86-64-uclibc.config │ │ │ ├── bootlin-xtensa-uclibc.config │ │ │ ├── br-arc-full-internal.config │ │ │ ├── br-arc-internal-glibc.config │ │ │ ├── br-arm-basic.config │ │ │ ├── br-arm-full-nothread.config │ │ │ ├── br-arm-full-static.config │ │ │ ├── br-arm-internal-full.config │ │ │ ├── br-arm-internal-glibc.config │ │ │ ├── br-arm-internal-musl.config │ │ │ ├── br-i386-pentium-mmx-musl.config │ │ │ ├── br-i386-pentium4-full.config │ │ │ ├── br-microblazeel-full-internal.config │ │ │ ├── br-mips64-n64-full.config │ │ │ ├── br-mips64r6-el-hf-glibc.config │ │ │ ├── br-powerpc-603e-basic-cpp.config │ │ │ ├── br-powerpc-internal-full.config │ │ │ ├── br-powerpc64-power7-glibc.config │ │ │ ├── br-riscv64-full-internal.config │ │ │ ├── br-s390x-z13-internal-glibc.config │ │ │ ├── br-xtensa-full-internal.config │ │ │ ├── linaro-aarch64-be.config │ │ │ ├── linaro-aarch64.config │ │ │ ├── linaro-arm.config │ │ │ ├── sourcery-arm-armv4t.config │ │ │ ├── sourcery-arm-thumb2.config │ │ │ ├── sourcery-arm.config │ │ │ ├── sourcery-mips.config │ │ │ ├── sourcery-mips64.config │ │ │ ├── sourcery-nios2.config │ │ │ └── toolchain-configs.csv │ │ └── minimal.config │ ├── dependencies/ │ │ ├── check-host-asciidoc.sh │ │ ├── check-host-bison-flex.mk │ │ ├── check-host-cmake.mk │ │ ├── check-host-cmake.sh │ │ ├── check-host-coreutils.mk │ │ ├── check-host-coreutils.sh │ │ ├── check-host-gzip.mk │ │ ├── check-host-gzip.sh │ │ ├── check-host-lzip.mk │ │ ├── check-host-lzip.sh │ │ ├── check-host-make.mk │ │ ├── check-host-make.sh │ │ ├── check-host-python3.mk │ │ ├── check-host-python3.sh │ │ ├── check-host-tar.mk │ │ ├── check-host-tar.sh │ │ ├── check-host-xzcat.mk │ │ ├── check-host-xzcat.sh │ │ ├── dependencies.mk │ │ └── dependencies.sh │ ├── docker/ │ │ ├── Dockerfile │ │ └── apt-sources.list │ ├── download/ │ │ ├── bzr │ │ ├── cargo-post-process │ │ ├── check-hash │ │ ├── cvs │ │ ├── dl-wrapper │ │ ├── file │ │ ├── git │ │ ├── helpers │ │ ├── hg │ │ ├── scp │ │ ├── svn │ │ └── wget │ ├── gnuconfig/ │ │ ├── README.buildroot │ │ ├── config.guess │ │ ├── config.sub │ │ └── update │ ├── kconfig/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── Makefile.br │ │ ├── POTFILES.in │ │ ├── README.buildroot │ │ ├── check.sh │ │ ├── conf.c │ │ ├── confdata.c │ │ ├── expr.c │ │ ├── expr.h │ │ ├── foo.h │ │ ├── gconf.c │ │ ├── gconf.glade │ │ ├── images.c │ │ ├── kconf_id.c │ │ ├── kxgettext.c │ │ ├── list.h │ │ ├── lkc.h │ │ ├── lkc_proto.h │ │ ├── mconf.c │ │ ├── menu.c │ │ ├── merge_config.sh │ │ ├── nconf.c │ │ ├── nconf.gui.c │ │ ├── nconf.h │ │ ├── patches/ │ │ │ ├── 01-kconfig-kernel-to-buildroot.patch │ │ │ ├── 06-br-build-system-integration.patch │ │ │ ├── 10-br-build-system.patch │ │ │ ├── 11-use-mktemp-for-lxdialog.patch │ │ │ ├── 12-fix-glade-file-path.patch │ │ │ ├── 14-support-out-of-tree-config.patch │ │ │ ├── 16-fix-space-to-de-select-options.patch │ │ │ ├── 17-backport-kecho.patch │ │ │ ├── 18-merge-config.sh-create-temporary-files-in-tmp.patch │ │ │ ├── 19-merge_config.sh-add-br2-external-support.patch │ │ │ ├── 20-merge_config.sh-Allow-to-define-config-prefix.patch │ │ │ ├── 21-Avoid-false-positive-matches-from-comment-lines.patch │ │ │ └── series │ │ ├── qconf.cc │ │ ├── qconf.h │ │ ├── streamline_config.pl │ │ ├── symbol.c │ │ ├── util.c │ │ ├── zconf.l │ │ ├── zconf.lex.c_shipped │ │ ├── zconf.tab.c_shipped │ │ └── zconf.y │ ├── legal-info/ │ │ ├── README.header │ │ ├── README.warnings-header │ │ └── buildroot.hash │ ├── libtool/ │ │ ├── buildroot-libtool-v1.5.patch │ │ ├── buildroot-libtool-v2.2.patch │ │ ├── buildroot-libtool-v2.4.4.patch │ │ └── buildroot-libtool-v2.4.patch │ ├── misc/ │ │ ├── Buildroot.cmake │ │ ├── Vagrantfile │ │ ├── gen-glibc-locales.mk │ │ ├── gitlab-ci.yml.in │ │ ├── relocate-sdk.sh │ │ ├── target-dir-warning.txt │ │ ├── toolchainfile.cmake.in │ │ └── utils.mk │ ├── scripts/ │ │ ├── apply-patches.sh │ │ ├── boot-qemu-image.py │ │ ├── br2-external │ │ ├── brpkgutil.py │ │ ├── check-bin-arch │ │ ├── check-dotconfig.py │ │ ├── check-host-rpath │ │ ├── check-kernel-headers.sh │ │ ├── check-merged-usr.sh │ │ ├── cpedb.py │ │ ├── cve.py │ │ ├── eclipse-register-toolchain │ │ ├── expunge-gconv-modules │ │ ├── fix-configure-powerpc64.sh │ │ ├── fix-rpath │ │ ├── gen-bootlin-toolchains │ │ ├── gen-missing-cpe │ │ ├── generate-gitlab-ci-yml │ │ ├── genimage.sh │ │ ├── graph-build-time │ │ ├── graph-depends │ │ ├── hardlink-or-copy │ │ ├── mkimage.sh │ │ ├── mkmakefile │ │ ├── mkusers │ │ ├── pkg-stats │ │ ├── pycompile.py │ │ ├── setlocalversion │ │ └── size-stats │ └── testing/ │ ├── conf/ │ │ ├── binfmt-misc-kernel-fragment.config │ │ ├── docker-compose-kernel.config │ │ ├── docker-compose.yml │ │ ├── f2fs-kernel-fragment.config │ │ ├── grub2-efi.cfg │ │ ├── grub2.cfg │ │ ├── isolinux.cfg │ │ ├── minimal-x86-qemu-kernel.config │ │ └── unittest.cfg │ ├── infra/ │ │ ├── __init__.py │ │ ├── basetest.py │ │ ├── builder.py │ │ └── emulator.py │ ├── run-tests │ └── tests/ │ ├── __init__.py │ ├── boot/ │ │ ├── __init__.py │ │ ├── test_atf.py │ │ ├── test_edk2.py │ │ └── test_syslinux.py │ ├── core/ │ │ ├── __init__.py │ │ ├── br2-external/ │ │ │ └── detect-bad-arch/ │ │ │ ├── Config.in │ │ │ ├── external.desc │ │ │ ├── external.mk │ │ │ └── package/ │ │ │ └── detect-bad-arch/ │ │ │ ├── Config.in │ │ │ └── detect-bad-arch.mk │ │ ├── cpeid-br2-external/ │ │ │ ├── Config.in │ │ │ ├── external.desc │ │ │ ├── external.mk │ │ │ └── package/ │ │ │ ├── cpe-id-pkg1/ │ │ │ │ └── cpe-id-pkg1.mk │ │ │ ├── cpe-id-pkg2/ │ │ │ │ └── cpe-id-pkg2.mk │ │ │ ├── cpe-id-pkg3/ │ │ │ │ └── cpe-id-pkg3.mk │ │ │ ├── cpe-id-pkg4/ │ │ │ │ └── cpe-id-pkg4.mk │ │ │ └── cpe-id-pkg5/ │ │ │ └── cpe-id-pkg5.mk │ │ ├── device_table2.txt │ │ ├── post-build.sh │ │ ├── rootfs-overlay1/ │ │ │ └── test-file1 │ │ ├── rootfs-overlay2/ │ │ │ └── etc/ │ │ │ └── test-file2 │ │ ├── squashfs-xattr-kernel.config │ │ ├── test_bad_arch.py │ │ ├── test_cpeid.py │ │ ├── test_file_capabilities.py │ │ ├── test_hardening.py │ │ ├── test_post_scripts.py │ │ ├── test_root_password.py │ │ ├── test_rootfs_overlay.py │ │ ├── test_selinux/ │ │ │ ├── br2_external/ │ │ │ │ ├── Config.in │ │ │ │ ├── external.desc │ │ │ │ ├── external.mk │ │ │ │ └── package/ │ │ │ │ └── selinux-test/ │ │ │ │ ├── Config.in │ │ │ │ ├── selinux/ │ │ │ │ │ ├── buildroot.fc │ │ │ │ │ ├── buildroot.if │ │ │ │ │ └── buildroot.te │ │ │ │ └── selinux-test.mk │ │ │ └── extra_modules/ │ │ │ ├── buildroot.fc │ │ │ ├── buildroot.if │ │ │ └── buildroot.te │ │ ├── test_selinux.py │ │ └── test_timezone.py │ ├── download/ │ │ ├── __init__.py │ │ ├── br2-external/ │ │ │ ├── git-hash/ │ │ │ │ ├── Config.in │ │ │ │ ├── external.desc │ │ │ │ ├── external.mk │ │ │ │ └── package/ │ │ │ │ ├── bad/ │ │ │ │ │ ├── bad.hash │ │ │ │ │ └── bad.mk │ │ │ │ ├── good/ │ │ │ │ │ ├── good.hash │ │ │ │ │ └── good.mk │ │ │ │ └── nohash/ │ │ │ │ └── nohash.mk │ │ │ └── git-refs/ │ │ │ ├── Config.in │ │ │ ├── external.desc │ │ │ ├── external.mk │ │ │ └── package/ │ │ │ ├── git-partial-sha1-branch-head/ │ │ │ │ ├── git-partial-sha1-branch-head.hash │ │ │ │ └── git-partial-sha1-branch-head.mk │ │ │ ├── git-partial-sha1-reachable-by-branch/ │ │ │ │ ├── git-partial-sha1-reachable-by-branch.hash │ │ │ │ └── git-partial-sha1-reachable-by-branch.mk │ │ │ ├── git-partial-sha1-reachable-by-tag/ │ │ │ │ ├── git-partial-sha1-reachable-by-tag.hash │ │ │ │ └── git-partial-sha1-reachable-by-tag.mk │ │ │ ├── git-partial-sha1-tag-itself/ │ │ │ │ ├── git-partial-sha1-tag-itself.hash │ │ │ │ └── git-partial-sha1-tag-itself.mk │ │ │ ├── git-partial-sha1-tag-points-to/ │ │ │ │ ├── git-partial-sha1-tag-points-to.hash │ │ │ │ └── git-partial-sha1-tag-points-to.mk │ │ │ ├── git-sha1-branch-head/ │ │ │ │ ├── git-sha1-branch-head.hash │ │ │ │ └── git-sha1-branch-head.mk │ │ │ ├── git-sha1-reachable-by-branch/ │ │ │ │ ├── git-sha1-reachable-by-branch.hash │ │ │ │ └── git-sha1-reachable-by-branch.mk │ │ │ ├── git-sha1-reachable-by-tag/ │ │ │ │ ├── git-sha1-reachable-by-tag.hash │ │ │ │ └── git-sha1-reachable-by-tag.mk │ │ │ ├── git-sha1-tag-itself/ │ │ │ │ ├── git-sha1-tag-itself.hash │ │ │ │ └── git-sha1-tag-itself.mk │ │ │ ├── git-sha1-tag-points-to/ │ │ │ │ ├── git-sha1-tag-points-to.hash │ │ │ │ └── git-sha1-tag-points-to.mk │ │ │ ├── git-submodule-disabled/ │ │ │ │ ├── git-submodule-disabled.hash │ │ │ │ └── git-submodule-disabled.mk │ │ │ ├── git-submodule-enabled/ │ │ │ │ ├── git-submodule-enabled.hash │ │ │ │ └── git-submodule-enabled.mk │ │ │ ├── git-tag/ │ │ │ │ ├── git-tag.hash │ │ │ │ └── git-tag.mk │ │ │ ├── git-wrong-content/ │ │ │ │ ├── git-wrong-content.hash │ │ │ │ └── git-wrong-content.mk │ │ │ └── git-wrong-sha1/ │ │ │ └── git-wrong-sha1.mk │ │ ├── git-remote/ │ │ │ ├── refs-sub1.git/ │ │ │ │ ├── .gitattributes │ │ │ │ ├── HEAD │ │ │ │ ├── config │ │ │ │ ├── objects/ │ │ │ │ │ ├── 07/ │ │ │ │ │ │ └── cabc655213bdf7087d8dd50fda95124e935570 │ │ │ │ │ ├── 1d/ │ │ │ │ │ │ └── f823cb8a6d1866148ae50a8009762a9c4c777f │ │ │ │ │ ├── 7d/ │ │ │ │ │ │ └── 52f458bdb0f9f5a4beb46fa82824421b8b988e │ │ │ │ │ ├── 99/ │ │ │ │ │ │ └── f2e3e1cb15f9b52fa29f66d380dda061d917ab │ │ │ │ │ ├── a1/ │ │ │ │ │ │ └── 30af1626bbadd64841b2cbcb6ac4ed0638ba1a │ │ │ │ │ ├── bc/ │ │ │ │ │ │ └── c81ba6e5bd8bf52c95688ae8d3e697e131fa23 │ │ │ │ │ ├── cb/ │ │ │ │ │ │ └── 545facf77bbc5f24f95b6d503c338d10b7b717 │ │ │ │ │ ├── dd/ │ │ │ │ │ │ └── 130f6f4629514adaf2e03407f3ed9344eb6cd6 │ │ │ │ │ ├── e7/ │ │ │ │ │ │ └── 9c5e8f964493290a409888d5413a737e8e5dd5 │ │ │ │ │ └── f8/ │ │ │ │ │ └── 001e5780100962a5e30a25cbc4c9609cfc7bf3 │ │ │ │ └── refs/ │ │ │ │ └── heads/ │ │ │ │ └── submodule │ │ │ ├── refs-sub2.git/ │ │ │ │ ├── .gitattributes │ │ │ │ ├── HEAD │ │ │ │ ├── config │ │ │ │ ├── objects/ │ │ │ │ │ ├── 0a/ │ │ │ │ │ │ └── 846af45c3e455789435f49f80d70e86b65b9d7 │ │ │ │ │ ├── 0b/ │ │ │ │ │ │ └── 32ebd8fc52cec991f18c94be980e85a8341585 │ │ │ │ │ ├── 32/ │ │ │ │ │ │ └── d61bae693af7879da63b89a60d3ae67f851e56 │ │ │ │ │ ├── 3e/ │ │ │ │ │ │ └── 9b0a5198c64cea9c00f820433411e3b4d50c1c │ │ │ │ │ ├── 85/ │ │ │ │ │ │ └── 8f666af75b7c0dfba6b8be7eac5f196e7a1221 │ │ │ │ │ ├── 99/ │ │ │ │ │ │ └── f2e3e1cb15f9b52fa29f66d380dda061d917ab │ │ │ │ │ ├── cd/ │ │ │ │ │ │ └── 4d62ff218ab7b4a04f5bfdf800ace087af3ceb │ │ │ │ │ ├── e7/ │ │ │ │ │ │ └── 9c5e8f964493290a409888d5413a737e8e5dd5 │ │ │ │ │ └── e8/ │ │ │ │ │ └── 3f6f805bd016b90acafc8702c52d778eb57310 │ │ │ │ └── refs/ │ │ │ │ └── heads/ │ │ │ │ └── submodule │ │ │ └── repo.git/ │ │ │ ├── .gitattributes │ │ │ ├── HEAD │ │ │ ├── config │ │ │ ├── objects/ │ │ │ │ ├── 0b/ │ │ │ │ │ └── d8ceb961c3b2b210f64a67d57f4b5cd669d343 │ │ │ │ ├── 11/ │ │ │ │ │ └── 93ff46343f4f6a0522e2b28b871e905178c1f0 │ │ │ │ ├── 25/ │ │ │ │ │ └── 59d83bfe937fc0412d96ed664663c9e8a99055 │ │ │ │ ├── 2b/ │ │ │ │ │ └── 0e0d98a49c97da6a618ab36337e2058eb733a2 │ │ │ │ ├── 2f/ │ │ │ │ │ └── a37f6885d7eb746df75eccaddbacf3ac82799d │ │ │ │ ├── 31/ │ │ │ │ │ └── 7406308d9259e2231bd0d6ddad3de3832bce08 │ │ │ │ ├── 34/ │ │ │ │ │ └── d1da713bf7de1c535e1d7d3ca985afd84bc7e5 │ │ │ │ ├── 46/ │ │ │ │ │ └── bae5b639e5a18e2cc4dc508f080d566baeff59 │ │ │ │ ├── 51/ │ │ │ │ │ └── 6c9c5f64ec66534d4d069c2e408d9ae4dce023 │ │ │ │ ├── 68/ │ │ │ │ │ └── c197d0879d485f4f6cee85544722b79e68e59f │ │ │ │ ├── 8b/ │ │ │ │ │ └── 8a7e885a041da72b1ee9a47c5b9300b172a9e7 │ │ │ │ ├── 92/ │ │ │ │ │ └── ef85be57d627f280d8ce3724452ac21c9a6452 │ │ │ │ ├── 99/ │ │ │ │ │ └── f2e3e1cb15f9b52fa29f66d380dda061d917ab │ │ │ │ ├── a2/ │ │ │ │ │ └── 38b1dfcd825d47d834af3c5223417c8411d90d │ │ │ │ ├── a9/ │ │ │ │ │ └── dbc1e23c45e8e1b88c0448763f54d714eb6f8f │ │ │ │ ├── b2/ │ │ │ │ │ └── 4b387624edc78d0292a127c43cad9ba97c6232 │ │ │ │ ├── cf/ │ │ │ │ │ └── 0f4f85d7a1237e377a2d25b996518a877ea001 │ │ │ │ ├── d4/ │ │ │ │ │ └── e2941d18a63535400476324ddeb7f40164be41 │ │ │ │ ├── e2/ │ │ │ │ │ ├── 2695cbf976fed1f543ad7486a531c0af473482 │ │ │ │ │ └── cfe068f7e5bf4de32ffe1241da53abce9fa89e │ │ │ │ ├── e7/ │ │ │ │ │ └── 9c5e8f964493290a409888d5413a737e8e5dd5 │ │ │ │ ├── f6/ │ │ │ │ │ └── 476b879f65e956d7dedd5b08736369e9a24acc │ │ │ │ └── fe/ │ │ │ │ └── 74231105841041d5f441e70399d37f0e600aa5 │ │ │ └── refs/ │ │ │ ├── heads/ │ │ │ │ ├── master │ │ │ │ ├── mybranch │ │ │ │ └── submodule │ │ │ └── tags/ │ │ │ └── mytag │ │ ├── gitremote.py │ │ └── test_git.py │ ├── fs/ │ │ ├── __init__.py │ │ ├── test_ext.py │ │ ├── test_f2fs.py │ │ ├── test_iso9660.py │ │ ├── test_jffs2.py │ │ ├── test_oci.py │ │ ├── test_squashfs.py │ │ ├── test_ubi/ │ │ │ └── ubinize_qemu_pflash_cfi01.cfg │ │ ├── test_ubi.py │ │ └── test_yaffs2.py │ ├── init/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── systemd-factory/ │ │ │ └── var/ │ │ │ └── foo/ │ │ │ └── bar │ │ ├── test_busybox.py │ │ ├── test_none.py │ │ ├── test_openrc.py │ │ ├── test_systemd.py │ │ ├── test_systemd_selinux/ │ │ │ └── linux-squashfs.fragment │ │ └── test_systemd_selinux.py │ ├── package/ │ │ ├── __init__.py │ │ ├── br2-external/ │ │ │ ├── openjdk/ │ │ │ │ ├── Config.in │ │ │ │ ├── external.desc │ │ │ │ ├── external.mk │ │ │ │ └── package/ │ │ │ │ ├── openjdk-hello-world/ │ │ │ │ │ ├── Config.in │ │ │ │ │ ├── HelloWorld.java │ │ │ │ │ └── openjdk-hello-world.mk │ │ │ │ └── openjdk-jni-test/ │ │ │ │ ├── Config.in │ │ │ │ ├── JniHelper.java │ │ │ │ ├── JniTest.java │ │ │ │ ├── JniWrapper.c │ │ │ │ ├── JniWrapper.java │ │ │ │ ├── jni_helper.c │ │ │ │ ├── jni_helper.h │ │ │ │ ├── native.c │ │ │ │ ├── native.h │ │ │ │ └── openjdk-jni-test.mk │ │ │ └── polkit/ │ │ │ ├── Config.in │ │ │ ├── external.desc │ │ │ ├── external.mk │ │ │ └── package/ │ │ │ └── polkit-rules-test/ │ │ │ ├── Config.in │ │ │ ├── initd/ │ │ │ │ ├── hello-polkit.c │ │ │ │ ├── hello-polkit.policy │ │ │ │ └── hello-polkit.rules │ │ │ ├── polkit-rules-test.mk │ │ │ └── systemd/ │ │ │ └── systemd-timesyncd-restart.rules │ │ ├── copy-sample-script-to-target.sh │ │ ├── sample_bmap_tools.sh │ │ ├── sample_gst1_python.py │ │ ├── sample_libftdi1.py │ │ ├── sample_python_argh.py │ │ ├── sample_python_attrs.py │ │ ├── sample_python_augeas.py │ │ ├── sample_python_autobahn.py │ │ ├── sample_python_automat.py │ │ ├── sample_python_avro.py │ │ ├── sample_python_bitstring.py │ │ ├── sample_python_boto3.py │ │ ├── sample_python_botocore.py │ │ ├── sample_python_can.py │ │ ├── sample_python_cbor_dec.py │ │ ├── sample_python_cbor_enc.py │ │ ├── sample_python_click.py │ │ ├── sample_python_colorzero.py │ │ ├── sample_python_constantly.py │ │ ├── sample_python_crossbar.py │ │ ├── sample_python_cryptography.py │ │ ├── sample_python_dbus_fast.py │ │ ├── sample_python_dbus_next.py │ │ ├── sample_python_django.py │ │ ├── sample_python_flask.py │ │ ├── sample_python_flask_expects_json.py │ │ ├── sample_python_git.py │ │ ├── sample_python_gitdb2.py │ │ ├── sample_python_gobject.py │ │ ├── sample_python_gpiozero.py │ │ ├── sample_python_incremental.py │ │ ├── sample_python_passlib.py │ │ ├── sample_python_pexpect.py │ │ ├── sample_python_pynacl.py │ │ ├── sample_python_pytest.py │ │ ├── sample_python_pytest_asyncio.py │ │ ├── sample_python_pyyaml_dec.py │ │ ├── sample_python_pyyaml_enc.py │ │ ├── sample_python_rpi_gpio.py │ │ ├── sample_python_rsa.py │ │ ├── sample_python_service_identity.py │ │ ├── sample_python_smmap2.py │ │ ├── sample_python_subprocess32.py │ │ ├── sample_python_treq.py │ │ ├── sample_python_twisted.py │ │ ├── sample_python_txaio_asyncio.py │ │ ├── sample_python_txaio_twisted.py │ │ ├── sample_python_txtorcon.py │ │ ├── sample_python_ubjson_dec.py │ │ ├── sample_python_ubjson_enc.py │ │ ├── sample_python_unittest_xml_reporting.py │ │ ├── test_atop.py │ │ ├── test_bmap_tools.py │ │ ├── test_crudini.py │ │ ├── test_docker_compose.py │ │ ├── test_dropbear.py │ │ ├── test_dtbocfg.py │ │ ├── test_execline.py │ │ ├── test_gdb.py │ │ ├── test_glxinfo/ │ │ │ └── rootfs-overlay/ │ │ │ └── etc/ │ │ │ └── X11/ │ │ │ └── xorg.conf.d/ │ │ │ └── 01-modules.conf │ │ ├── test_glxinfo.py │ │ ├── test_gst1_python.py │ │ ├── test_ipython.py │ │ ├── test_libftdi1.py │ │ ├── test_lpeg.py │ │ ├── test_lsqlite3.py │ │ ├── test_lua.py │ │ ├── test_lua_augeas.py │ │ ├── test_lua_cqueues.py │ │ ├── test_lua_curl.py │ │ ├── test_lua_gd.py │ │ ├── test_lua_http.py │ │ ├── test_lua_lunix.py │ │ ├── test_lua_lyaml.py │ │ ├── test_lua_sdl2.py │ │ ├── test_lua_utf8.py │ │ ├── test_lua_zlib.py │ │ ├── test_luaexpat.py │ │ ├── test_luafilesystem.py │ │ ├── test_lualdap.py │ │ ├── test_luaossl.py │ │ ├── test_luaposix.py │ │ ├── test_luasec.py │ │ ├── test_luasocket.py │ │ ├── test_luasyslog.py │ │ ├── test_luvi.py │ │ ├── test_lxc/ │ │ │ ├── lxc-kernel.config │ │ │ └── rootfs-overlay/ │ │ │ └── usr/ │ │ │ ├── bin/ │ │ │ │ └── iperf3.sh │ │ │ └── share/ │ │ │ └── lxc/ │ │ │ └── config/ │ │ │ ├── minimal-iperf3.conf │ │ │ └── minimal.conf │ │ ├── test_lxc.py │ │ ├── test_lzlib.py │ │ ├── test_netdata.py │ │ ├── test_openjdk.py │ │ ├── test_openssh/ │ │ │ └── post-build.sh │ │ ├── test_openssh.py │ │ ├── test_opkg/ │ │ │ └── post-build.sh │ │ ├── test_opkg.py │ │ ├── test_perl.py │ │ ├── test_perl_class_load.py │ │ ├── test_perl_dbd_mysql.py │ │ ├── test_perl_encode_detect.py │ │ ├── test_perl_gdgraph.py │ │ ├── test_perl_html_parser.py │ │ ├── test_perl_io_socket_multicast.py │ │ ├── test_perl_io_socket_ssl.py │ │ ├── test_perl_libwww_perl.py │ │ ├── test_perl_lwp_protocol_https.py │ │ ├── test_perl_mail_dkim.py │ │ ├── test_perl_x10.py │ │ ├── test_perl_xml_libxml.py │ │ ├── test_php_pecl_dbus.py │ │ ├── test_polkit.py │ │ ├── test_prosody.py │ │ ├── test_python.py │ │ ├── test_python_argh.py │ │ ├── test_python_attrs.py │ │ ├── test_python_augeas.py │ │ ├── test_python_autobahn.py │ │ ├── test_python_automat.py │ │ ├── test_python_avro.py │ │ ├── test_python_bitstring.py │ │ ├── test_python_boto3.py │ │ ├── test_python_botocore.py │ │ ├── test_python_can.py │ │ ├── test_python_cbor.py │ │ ├── test_python_click.py │ │ ├── test_python_colorzero.py │ │ ├── test_python_constantly.py │ │ ├── test_python_crossbar.py │ │ ├── test_python_cryptography.py │ │ ├── test_python_dbus_fast.py │ │ ├── test_python_dbus_next.py │ │ ├── test_python_django.py │ │ ├── test_python_flask.py │ │ ├── test_python_flask_expects_json.py │ │ ├── test_python_git.py │ │ ├── test_python_gitdb2.py │ │ ├── test_python_gobject.py │ │ ├── test_python_gpiozero.py │ │ ├── test_python_incremental.py │ │ ├── test_python_passlib.py │ │ ├── test_python_pexpect.py │ │ ├── test_python_pynacl.py │ │ ├── test_python_pyndiff.py │ │ ├── test_python_pytest.py │ │ ├── test_python_pytest_asyncio.py │ │ ├── test_python_pyyaml.py │ │ ├── test_python_rpi_gpio.py │ │ ├── test_python_rsa.py │ │ ├── test_python_service_identity.py │ │ ├── test_python_smmap2.py │ │ ├── test_python_subprocess32.py │ │ ├── test_python_treq.py │ │ ├── test_python_twisted.py │ │ ├── test_python_txaio.py │ │ ├── test_python_txtorcon.py │ │ ├── test_python_ubjson.py │ │ ├── test_python_unittest_xml_reporting.py │ │ ├── test_redis.py │ │ ├── test_rings.py │ │ ├── test_rust.py │ │ ├── test_s6.py │ │ ├── test_s6_networking.py │ │ ├── test_s6_portable_utils.py │ │ ├── test_s6_rc.py │ │ ├── test_sudo.py │ │ ├── test_syslog_ng.py │ │ ├── test_tmux.py │ │ ├── test_turbolua.py │ │ ├── test_uboot_openssl_pkgconfig.py │ │ └── test_zfs.py │ ├── toolchain/ │ │ ├── __init__.py │ │ ├── test_external.py │ │ └── test_external_bootlin.py │ └── utils/ │ ├── __init__.py │ ├── br2-external/ │ │ ├── Config.in │ │ ├── external.desc │ │ ├── external.mk │ │ └── package/ │ │ └── external/ │ │ └── external.mk │ └── test_check_package.py ├── system/ │ ├── Config.in │ ├── device_table.txt │ ├── device_table_dev.txt │ ├── skeleton/ │ │ ├── dev/ │ │ │ └── .empty │ │ ├── etc/ │ │ │ ├── group │ │ │ ├── hosts │ │ │ ├── passwd │ │ │ ├── profile │ │ │ ├── profile.d/ │ │ │ │ └── umask.sh │ │ │ ├── protocols │ │ │ ├── services │ │ │ └── shadow │ │ ├── media/ │ │ │ └── .empty │ │ ├── mnt/ │ │ │ └── .empty │ │ ├── opt/ │ │ │ └── .empty │ │ ├── proc/ │ │ │ └── .empty │ │ ├── root/ │ │ │ └── .empty │ │ ├── run/ │ │ │ └── .empty │ │ ├── sys/ │ │ │ └── .empty │ │ ├── tmp/ │ │ │ └── .empty │ │ └── usr/ │ │ ├── bin/ │ │ │ └── .empty │ │ ├── lib/ │ │ │ └── .empty │ │ └── sbin/ │ │ └── .empty │ └── system.mk ├── toolchain/ │ ├── Config.in │ ├── helpers.mk │ ├── toolchain/ │ │ └── toolchain.mk │ ├── toolchain-buildroot/ │ │ ├── Config.in │ │ └── toolchain-buildroot.mk │ ├── toolchain-external/ │ │ ├── Config.in │ │ ├── pkg-toolchain-external.mk │ │ ├── toolchain-external-andes-nds32/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-andes-nds32.hash │ │ │ └── toolchain-external-andes-nds32.mk │ │ ├── toolchain-external-arm-aarch64/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-arm-aarch64.hash │ │ │ └── toolchain-external-arm-aarch64.mk │ │ ├── toolchain-external-arm-aarch64-be/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-arm-aarch64-be.hash │ │ │ └── toolchain-external-arm-aarch64-be.mk │ │ ├── toolchain-external-arm-arm/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-arm-arm.hash │ │ │ └── toolchain-external-arm-arm.mk │ │ ├── toolchain-external-bootlin/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-bootlin.hash │ │ │ └── toolchain-external-bootlin.mk │ │ ├── toolchain-external-codescape-img-mips/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-codescape-img-mips.hash │ │ │ └── toolchain-external-codescape-img-mips.mk │ │ ├── toolchain-external-codescape-mti-mips/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-codescape-mti-mips.hash │ │ │ └── toolchain-external-codescape-mti-mips.mk │ │ ├── toolchain-external-codesourcery-aarch64/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-codesourcery-aarch64.hash │ │ │ └── toolchain-external-codesourcery-aarch64.mk │ │ ├── toolchain-external-codesourcery-arm/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-codesourcery-arm.hash │ │ │ └── toolchain-external-codesourcery-arm.mk │ │ ├── toolchain-external-codesourcery-mips/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-codesourcery-mips.hash │ │ │ └── toolchain-external-codesourcery-mips.mk │ │ ├── toolchain-external-codesourcery-niosII/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-codesourcery-niosII.hash │ │ │ └── toolchain-external-codesourcery-niosII.mk │ │ ├── toolchain-external-custom/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ └── toolchain-external-custom.mk │ │ ├── toolchain-external-linaro-aarch64/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-linaro-aarch64.hash │ │ │ └── toolchain-external-linaro-aarch64.mk │ │ ├── toolchain-external-linaro-aarch64-be/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-linaro-aarch64-be.hash │ │ │ └── toolchain-external-linaro-aarch64-be.mk │ │ ├── toolchain-external-linaro-arm/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-linaro-arm.hash │ │ │ └── toolchain-external-linaro-arm.mk │ │ ├── toolchain-external-linaro-armeb/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-linaro-armeb.hash │ │ │ └── toolchain-external-linaro-armeb.mk │ │ ├── toolchain-external-synopsys-arc/ │ │ │ ├── Config.in │ │ │ ├── Config.in.options │ │ │ ├── toolchain-external-synopsys-arc.hash │ │ │ └── toolchain-external-synopsys-arc.mk │ │ └── toolchain-external.mk │ ├── toolchain-wrapper.c │ ├── toolchain-wrapper.mk │ └── toolchain.mk ├── utils/ │ ├── brmake │ ├── check-package │ ├── checkpackagelib/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── lib.py │ │ ├── lib_config.py │ │ ├── lib_hash.py │ │ ├── lib_mk.py │ │ ├── lib_patch.py │ │ └── readme.txt │ ├── config │ ├── diffconfig │ ├── genrandconfig │ ├── get-developers │ ├── getdeveloperlib.py │ ├── readme.txt │ ├── scancpan │ ├── scanpypi │ ├── size-stats-compare │ └── test-pkg └── writeimage.sh ================================================ FILE CONTENTS ================================================ ================================================ FILE: .defconfig ================================================ # # Automatically generated make config: don't edit # Mon Feb 18 09:11:56 2008 # BR2_HAVE_DOT_CONFIG=y # BR2_alpha is not set # BR2_arm is not set # BR2_armeb is not set # BR2_cris is not set # BR2_ia64 is not set BR2_i386=y # BR2_m68k is not set # BR2_mips is not set # BR2_mipsel is not set # BR2_nios2 is not set # BR2_powerpc is not set # BR2_sh is not set # BR2_sparc is not set # BR2_sparc64 is not set # BR2_x86_64 is not set # BR2_x86_i486 is not set # BR2_x86_i586 is not set BR2_x86_i686=y # BR2_x86_pentiumpro is not set # BR2_x86_pentium_mmx is not set # BR2_x86_pentium_m is not set # BR2_x86_pentium2 is not set # BR2_x86_pentium3 is not set # BR2_x86_pentium4 is not set # BR2_x86_prescott is not set # BR2_x86_nocona is not set # BR2_x86_core2 is not set # BR2_x86_k6 is not set # BR2_x86_k6_2 is not set # BR2_x86_athlon is not set # BR2_x86_athlon_4 is not set # BR2_x86_opteron is not set # BR2_x86_opteron_sse3 is not set # BR2_x86_barcelona is not set # BR2_x86_geode is not set # BR2_x86_c3 is not set # BR2_x86_winchip_c6 is not set # BR2_x86_winchip2 is not set BR2_ARCH="i686" BR2_ENDIAN="LITTLE" BR2_GCC_TARGET_TUNE="i686" BR2_GCC_TARGET_ARCH="i686" # # Target options # ================================================ FILE: .flake8 ================================================ [flake8] exclude= # copied from the kernel sources utils/diffconfig max-line-length=132 ================================================ FILE: .gitignore ================================================ /output /dl /.auto.deps /.config.cmd /.config.old /..config.tmp /.config *.depend *.o /*.patch /*.diff *.orig *.rej *~ *.pyc /.buildroot-ccache-* *.img.gz *.img.xz *.img.zip ================================================ FILE: CHANGES ================================================ 2021.11, released December 5th, 2021 Various fixes. Defconfigs: Grinn chiliboard/liteboard, PC x86-64 bios: Fix build Updated/fixed packages: apr, coreutils, diffutils, e2fsprogs, exfat, freeswitch, gnupg, grub2, gstreamer1, guile, heimdal, hiawatha, hplip, icu, janus-gateway, kodi-screensaver-asterwave, kodi-screensaver-cpblobs, kodi-screensaver-matrixtrails, libatomic_ops, libbson, libffi, libgdiplus, libgee, libhtp, libite, libnspr, libnss, libunwind, lynx, mender-grubenv, mkpasswd, motion, mxml, netdata, qemu, samba4, speex, stress-ng, tinydtls, unixodbc, unrar, util-linux, util-linux-libs, watchdogd, wireshark Issues resolved (http://bugs.uclibc.org): #14351: needs to mount sysfs before mount -a #14411: 2021.11-rc2: Samba doesn't compile 2021.11-rc3, released November 30th, 2021 Fixes all over the tree. Defconfigs: Nitrogen8mp: Fix Linux build, Zynqmp-zxu106: Fix ATF build Updated/fixed packages: asterisk, automake, gdb, glorytun, gmp, hackrf, libgee, libglib2, libmodsecurity, libosmium, libressl, lighttpd, linux, micropython, mosquitto, mtd, nfs-utils, nss-myhostname, pcre, php, poco, pure-ftpd, python-cycler, qemu, qdecoder, smack, smcroute, spidev_test, strace, syslinux, toolchain, uboot, uhd, vim, websocketpp, wireshark, xcursor-transparent-theme, xscreensaver, xtables-addons Issues resolved (http://bugs.uclibc.org): #14346: BR2_PACKAGE_NFS_UTILS_RPC_NFSD does not patch CONFIG_NFSD.. 2021.11-rc2, released November 19th, 2021 Fixes all over the tree. Coding style fixes for a large number of board genimage configuration files for clarity and consistency. Defconfigs: Acmesystems Aria/Arietta g25, Armadeus apf28/apf51, beagleboneai, Olimx a64, rock64, sheevaplug: Fix build with hostcc >= 10, Nezha: Correct U-Boot dependencies Updated/fixed packages: alsa-lib, apparmor, binutils, bluez5_utils, botan, diffutils, firmware-utils, gdb, glmark2, glog, gpu-amd-bin-mx51, gst1-interpipe, imx-vpuwrap, iperf, isl, janet, libdnet, libglib2, libhtp, liburcu, log4cxx, luajit, luvi, meson, mksh, mongodb, mosquitto, mpd, mupdf, opencv4, oracle-mysql, pipewire, postgresql, python-aiohttp, python-pudb, python-ujson, qhull, samba4, seatd, sg3_utils, suricata, tpm2-tss, uboot, vim, xserver_xorg-server New packages: pipewire-media-session Issues resolved (http://bugs.uclibc.org): 14311: Cannot compile dahdi (part of Asterisk) for x86 (P1mmx) 2021.11-rc1, released November 8th, 2021 Numerous package updates. Notable updates including numerous Python modules, Kodi add-ons, nodejs, OpenJDK. Toolchain: - glibc update to 2.34 - support for gdb 11.x added, gdb 10.x now the default - external toolchains provided by ARM updated - remove support for internal toolchain on the CSKY architecture, as it was broken and unmaintained Many packages updated to enable the appropriate SELinux refpolicy module when SELinux support is enabled. Support was added in the test-pkg package testing utility for using Gitlab CI to run the builds. New libgbm virtual package to better support OpenGL implementations that provide a libgbm library. Bootloaders/firmware: grub2 extended to be able to support multiple platforms in the same build. Filesystems: - new OCI filesystem type, to build container images compatible with the Open Container Initiative standard - support for hybrid ISO9660 images added, which work on legacy and EFI BIOS machines New defconfigs: Allwinner nezha, stm32mp157c_odyssey Removed defconfigs: qemu_csky New packages: dtbocfg, firmware-utils, gstd, libdbi, libdbi-drivers, libteam, lua-augeas, mstpd, php-pecl-dbus, python-aioprocessing, python-bidict, python-charset-normalizer, python-flask-expects-json, python-git, python-pyndiff, python-rsa, python-unitest-xml-reporting, python-xmljson, python3-cryptography, python3-pip, qt5opcua, rwmem, sloci-image, softhsm2, sun20i-d1-spl, uqmi, vuejs-router, watchdogd, wireplumber Removed packages: canfestival, python-meld3 Work toward the removal of python 2 has progressed: many python modules and packages have been updated to a version supporting python 3. Issues resolved (http://bugs.uclibc.org): #14271: compilation error with rsync command for permission #14276: Unable to get login prompt #14196: when using raspberrypicm4io_64_defconfig, make fails with mkfs.ext4: No such file or directory while trying to determine filesystem size 2021.08.2, released November 10th, 2021 Important / security related fixes. Updated/fixed packages: asterisk, audit, bind, bitcoin, containerd, cryptsetup, dahdi-linux, dbus-python, dfu-util, docker-cli, docker-engine, earlyoom, edk2-platforms, exiv2, ffmpeg, freerdp, gdb, gensio, gnupg2, go, gpsd, gst1-plugins-bad, gst1-plugins-ugly, gst1-vaapi, gtest, hiredis, lftp, libps1, libva, libva-utils, lightning, log4cplus, lrzip, netdata, nodejs, olsr, openjdk, openjdk-bin, pango, php, python3-cffi, qemu, refpolicy, rng-tools, samba4, snort, strongswan, sunxi-mali-mainline-driver, suricata, systemd, tor, vim, weston, wf111, wireguard-linux-compat, xerces Issues resolved (http://bugs.uclibc.org): #14311: Cannot compile dahdi (part of Asterisk) for x86 (P1mmx) 2021.08.1, released October 11, 2021 Important / security related fixes. gdbinit: Mark the sysroot as a "safe path" before configuring it, so pretty printers work correctly without having to pass -ix to gdb Updated/fixed packages: alsa-lib, apache, arm-trusted-firmware, atftp, bind, botan, cog, containerd, cryptopp, docker-cli, dash, dc3dd, docker-engine, dovecot, environment-setup, erlang, fetchmail, ffmpeg, fio, gcc, gd, gdb, ghostscript, gnuradio, gnutils, go, gobject-introspection, google-breakpad, gst-omx, gst1-devtools, gst1-interpipe, gst1-libav, gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1, gstreamer1-editing-services, gupnp, haproxy, imlib2, kodi, kodi-pvr-octonet, kodi-visualisation-fishbmc, libcurl, libexif, libgcrypt, libglib2, libkrb5, libressl, librsvg, libsndfile, libssh, libvirt, libxcrypt, libyang, links, lvm2, lynx, lxc, mc, mesa3d, micropython, minicom, mono, mosquitto, mtr, mupdf, mv-ddr-marvell, net-tools, nginx-dav-ext, nmap, nodejs, ntfs-3g, openjdk, openjdk-bin, openldap, openssh, pcre2, php, php-gnupg, pipewire, postgis, python-aioconsole, python-cbor2, python-cffi, python-cython, python-dateutil, python-django, python-pillow, python-pip, python-texttable, python-urllib3, python-webob, qemu, qt5location, redis, refpolicy, ripgrep, ruby, runc, sispmctl, sox, squid, strongswan, supervisor, swupdate, syslinux, systemd, tinycbor, trace-cmd, uboot-tools, uclibc, udisks, uhd, vim, vsftpd, wavemon, webkitgtk, wget, wireless-regdb, wpewebkit, xapp_xrdb, xapp_xwd, xen, xlib_libXfont2, xlib_libXft, xserver_xorg-server, zip Issues resolved (http://bugs.uclibc.org): #14206: Kodi: even when not enabled, forcefully selects libevdev.. #14211: libffi-3.3.tar.gz repacked #14221: mv-ddr-marvell fails license validation 2021.08, released September 4th, 2021 Various fixes. Updated/fixed packages: gstreamer1-mm, netsniff-ng, nginx, openmpi, python-pyudev, python3, qt5base, wlroots, xvisor 2021.08-rc3, released August 31st, 2021 Fixes all over the tree. Toolchain: Disable fortify support for Microblaze as it is not currently working. Defconfigs: Acmesystems aria/ariette g25: Fix build issue after at91bootstrap bump, BeagleV: Correct kernel headers version, PC x86-64: Bump kernel to 4.19.204 to fix build issue with GCC 10.x. Updated/fixed packages: alsa-utils, at91bootstrap3, belle-sip, bullet, c-ares, cjson, coreutils, cpio, eigen, fetchmail, gdb, haproxy, heirloom-mailx, ipmiutil, kvm-unit-tests, libarchive, libffi, libmodsecurity, libopenssl, libressl, libshout, libvirt, linux-pam, lmbench, localedef, lua-lunix, mesa3d, mpv, mtd, nodejs, nvidia-driver, openvmtools, php, polkit, python-requests, python3-requests, rust-bin, rustc, samba4, sdl2, snort3, ushare, xen Removed packages: libmcrypt, mcrypt, sentry-cli 2021.08-rc2, released August 18th, 2021 Fixes all over the tree. Defconfigs: Acmesystems acqua a5: Bump at91bootstrap version to fix build issue with binutils >= 2.35, Microchip sam9x60ek mmc_dev: Add missing toolchain/system options, sama5d2-icp mmc: Correct at91bootstrap options Updated/fixed packages: arm-trusted-firmware, at91bootstrap3, azure-iot-sdk-c, bluez5_utils, bullet, busybox, cegui, efl, erlang, ffmpeg, flatbuffers, fontconfig, gcc, gd, glibc, go, gobject-introspection, gpsd, guile, harfbuzz, iozone, iputils, jszip, libargtable2, libbpf, libebml, libepoxy, libesmtp, libfuse3, libgeos, libnss, libodb-boost, libodb-mysql, libodb-pgsql, libqmi, libqrtr-glib, libuhttpd, libuwsc, libvirt, ltp-testsuite, luaossl, mongodb, mpd, mupdf, mutt, network-manager, nginx-naxsi, nodejs, ogre, openzwave, optee-os, osm2pgsql, pdbg, perl-net-ssh2, php, pipewire, pistache, pixman, poke, polkit, poppler, postgresql, postkit, prelink-cross, prosody, protobuf, pulseview, python-cryptography, python-keyring, python-matplotlib, python-pymupdf, python-pyopenssl, python-secretstorage, python-treq, python-txtorcon, python3, qemu, qpdf, qt5base, refpolicy, ruby, rust-bin, s390-tools, sconeserver, seatd, shairport-sync, sox, sqlite, sylpheed, sysdig, syslog-ng, system-config-printer, tar, terminology, tor, tpm2-tools, uhd, unbound, usbguard, wireshark, xen, xenomai, xlib_libxshmfence, zstd New packages: desktop-file-utils Issues resolved (http://bugs.uclibc.org): #13586: grub failure with BR2_OPTIMIZE_3 #13671: openSSH server closes connection before authentication.. 2021.08-rc1, released August 3rd, 2021 Numerous package updates. Toolchain: - add support for gcc 11.x, gcc 10.x is now the default, gcc 9.x updated to 9.4.0, removed gcc 8.x support except for PowerPC SPE - add support for binutils 2.37, binutils 2.36.x is now the default, binutils 2.34 removed. - glibc updated to 2.33 - gdb enabled on NIOS II, gdbserver enabled on RISC-V. Bootloaders/firmware: support for building the EDK II UEFI firmware, support for building AT91Bootstrap 4.x. New BR2_ENABLE_RUNTIME_DEBUG option, that controls whether packages should be compiled with runtime debugging information (which is different than debugging symbols). Many features of the bluez5_utils package have been made optional, and default to disabled. Users of bluez5_utils are encouraged to review their configuration. Many packages (over 70) updated to enable the appropriate SELinux refpolicy module when SELinux support is enabled. Many packages updated to select the appropriate OpenSSL features after many OpenSSL ciphers/features have been made optional. New defconfigs: kontron_pitx_imx8m, microchip_sama5d2_icp, qemu_aarch64_sbsa, raspberrypicm4io, raspberrypicm4io_64, terasic_de10nano_cyclone5, uevm5432. New packages: alsa-plugins, apg, bmap-tools, daq3, edk2, edk2-platforms, gumbo-parser, libbpf, libosmium, libpsl, libqb, libtalloc, libvirt, lua-linux, lua-zlib, mupdf, opencv4, osm2pgsql, poke, python-augeas, python-dbus-next, python-pymupdf, rtl_433, rtl8812au-aircrack-ng, seatd, snort3, system-config-printer, usbguard, xml-security-c, xmrig. Removed packages: clapack, libsoil. Issues resolved (http://bugs.uclibc.org): #13326: regarding dtc error in buildroot source code #13661: host-python2 build fails on aarch64 #13836: package build failure when target install set to no on pkg-generic pkg types #13846: BR2_PACKAGE_LVM2_STANDARD_INSTALL should be default to y as before 2021.05.3, released October 11, 2021 Important / security related fixes. gdbinit: Mark the sysroot as a "safe path" before configuring it, so pretty printers work correctly without having to pass -ix to gdb Updated/fixed packages: alsa-lib, apache, arm-trusted-firmware, atftp, bind, botan, containerd, cryptopp, dash, dc3dd, docker-cli, docker-engine, dovecot, erlang, fetchmail, ffmpeg, gdb, ghostscript, go, gst-omx, gst1-devtools, gst1-interpipe, gst1-libav, gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1, gstreamer1-editing-services, kodi, kodi-pvr-octonet, kodi-visualisation-fishbmc, libcurl, libkrb5, libressl, libsndfile, libxcrypt, libyang, lxc, lynx, mesa3d, micropython, minicom, mono, mtr, mv-ddr-marvell, net-tools, nmap, nodejs, ntfs-3g, openjdk, openjdk-bin, openldap, openssh, pcre2, php, python-aioconsole, python-cffi, python-dateutil, python-django, python-pip, python-texttable, python-urllib, python-webob, qt5location, redis, refpolicy, ripgrep, runc, sispmctl, squid, strongswan, supervisor, syslinux, tinycbor, trace-cmd, uboot-tools, uclibc, wavemon, wget, wireless-regdb, xen, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #14206: Kodi: even when not enabled, forcefully selects libevdev.. #14211: libffi-3.3.tar.gz repacked #14221: mv-ddr-marvell fails license validation 2021.05.2, released September 15th, 2021 Important / security related fixes. Toolchain: Disable fortify support for Microblaze as it is not currently working. Updated/fixed packages: alsa-utils, arm-trusted-firmware, bayer2rgb-neon, belle-sip, bullet, busybox, c-ares, cjson, coreutils, cpio, eigen, environment-setup, fetchmail, ffmpeg, fontconfig, gd, gdb, gnuradio, gnutls, go, haproxy, ipmiutil, iputils, jszip, kvm-unit-tests, libarchive, libargtable2, libexif, libgcrypt, libmodsecurity, libopenssl, librsvg, libshout, libssh, libxcrypt, linux, linux-pam, localedef, mc, mesa3d, mosquitto, netsniff-ng, nginx, nodejs, ogre, openjdk, openmpi, openvmtools, perl-net-ssh2, php, pipewire, postgresql, prelink-cross, prosody, protobuf, python-keyring, python-matplotlib, python-pillow, python-pyudev, python-secretstorage, python3, qt5base, samba4, sdl2, sox, swupdate, sylpheed, tar, terminology, tor, uboot-tools, uhd, unbound, ushare, vim, wlroots, xapp_xrdb, xapp_xwd, xen, xenomai, xlib_libXfont2, xlib_libXft, zip 2021.05.1, released August 10, 2021 Important / security related fixes. Toolchain: Disable PIC/PIE for Microblaze (like for NIOS II) as it is not currently working. binutils: fix linker assert failure on OpenRisc, or1k build issue with gcc < 5 gdb: Enable on NIOS II utils/scanpypi: Various improvements Defconfigs: stm32f469_disco: Fix kernel boot issue, Microchip sam9x60ek mmc_dev: Add missing toolchain/system options Updated/fixed packages: arm-trusted-firmware, apache, audit, avahi, bind, binutils, bird, bluez5_utils, boinc, busybox, chrony, clamav, connman, cryptsetup, dnsmasq, docker-cli, docker-engine, dovecot, dovecot-pigeonhole, e2fsprogs, exiv2, fail2ban, fb-test-app, feh, fetchmail, ffmpeg, flac, fluxbox, gawk, gcc, gcr, gdb, gdk-pixbuf, gesftpserver, glibc, go, gptfdisk, gqrx, granite, grub2, guile, hdparm, heirloom-mailx, htop, ibrcommon, ibrdtn, ibrdtn-tools, ibrdtnd, intel-microcode, iodine, irqbalance, keepalived, kexec-tools, libass, libconfig, libcurl, libfreeimage, libfuse3, libgcrypt, libgudev, libhtp, libinput, libjson, libgtk3, libkrb5, libloki, libmodsecurity, libndp, libnetfilter-log, libnfnetlink, libnice, libodb, libodb-boost, libodb-mysql, libodb-pgsql, libpcap, libqmi, libqrtr-glib, libressl, librsvg, libtasn1, libtirpc, libuci, libxmlrpc, linux-firmware, linuxptp, lrzsz, lvm2, mariadb, mesa3d, mbedtls, monit, mono, mosquitto, mpd, mpg123, mpv, nbd, netsnmp, nettle, nmap, nodejs, ntp, openntpd, openpgm, openswan, pango, pcre2, perl-crypt-openssl-rsa, php, pixman, postgresql, proxychains-ng, putty, python, python-dataproperty, python-django, python-pysftp, python-urllib3, python3, qpdf, redis, ripgrep, rsync, ruby, samba4, sane-backends, slirp, spice, squid, suricata, tcpdump, tftpd, thrift, tor, tpm2-tools, trinity, uboot, uboot-tools, uclibc, vlc, wireless-regdb, wireshark, wolfssl, xapp_fonttosfnt, xlib_libX11, xlib_libxshmfence, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #13586: grub failure with BR2_OPTIMIZE_3 #13661: host-python2 build fails on aarch64 #13836: package build failure when target install set to no.. #13846: BR2_PACKAGE_LVM2_STANDARD_INSTALL should be default to.. 2021.05, released June 6th, 2021 Various fixes. Disable PIC/PIE support for Nios2 because of glibc issues Defconfigs: Minnowboard max: Fix X11 and mesa3d configuration Updated/fixed packages: apache, beaglev-ddrinit, beaglev-secondboot, capnproto, dc3dd, directfb, efibootmgr, ffmpeg, gptfdisk, go, gupnp, hostapd, iftop, intel-mediadriver, libcamera, libcutl, libesmtp, libkcapi, libraw, lttng-tools, lvm2, mimic, mono-gtksharp3, mpv, netperf, odb, qt5base, uclibc, uftrace, unscd, vlc, xdriver_xf86-video-fbturbo New packages: python3-cffi, python3-cryptography, python3-pip, python3-pycparser, python3-six 2021.05-rc3, released May 31th, 2021 Fixes all over the tree. meson: Explicitly disable PIE support (b_pie) as it is handled by the toolchain wrapper. Updated/fixed packages: boost, dhcp, expat, gdb, hwloc, imagemagick, libcurl, libopenh264, llvm, lz4, mpv, nginx, paho-mqtt-c, pifmrds, pipewire, python-bluezero, python-pillow, qemu, strace, uhd, vlc, webkitgtk Issues resolved (http://bugs.uclibc.org): #13821: Wrong url for libnfsidmap package 2021.05-rc2, released May 22th, 2021 Fixes all over the tree. support/scripts/gen-missing-cpe: A script to query the list of CPE IDs for the packages enabled in the current configuration and: - for CPE IDs that do not have any matching entry in the CPE database, it emits a warning - for CPE IDs that do have a matching entry, but not with the same version, it generates a snippet of XML that can be used to propose an updated version to NIST. CPE meta data has been added for a large number of packages Updated/fixed packages: assimp, binutils, bitcoin, bullet, cutelyst, dhcp, dmalloc, docker-engine, ebtables, environment-setup, flatcc, gcc, gd, gerbera, hostapd, imx-gpu-viv, intel-microcode, jquery-validation, libdrm, libgeos, libraw, libtirpc, libxml2, libxslt, live555, lmbench, localedef, lvm2, mender, mender-grubenv, modem-manager, mutt, opensbi, openssh, opentyrian, pipewire, postgis, postgresql, prosody, python-bluezero, python-falcon, redis, rocksdb, rt-tests, runc, vlc, waylandpp, webkitgtk, wireshark, wpa_supplicant, wpewebkit, xlib_libX11, xterm New packages: jh71xx-tools Issues resolved (http://bugs.uclibc.org): #13781: isc dhcp-server package don't create file /usr/bin/dhcpd #13801: toolchainfile.cmake CMAKE_BUILD_TYPE #13806: Building host-localedef fails on fedora 34/gcc 11 2021.05-rc1, released May 12th, 2021 Fixes all over the tree and new features. FORTIFY_SOURCE, PIC/PIE, RELRO and SSP security hardening options are now enabled by default. Dependencies: Explicitly detect and bail out if PATH contains spaces or tabs. A number of packages fail to build in such setups, so explicitly inform about this. Infrastructure: Expose CONFIG_DIR to post-build/post-image scripts, so they can call the Buildroot Makefile in the correct directory for both in-tree / out-of-tree builds. CMake infrastructure: Use CMAKE_EXE_LINKER_FLAGS rather than CMAKE_CXX_FLAGS to link with libatomic to fix an compatibility issue with poppler. Bump minimal host cmake version to 3.16 (from 3.15) to fix a compatibility issue with domoticz. Meson: Use correct C++ host compiler (rather than C compiler) utils/scanpypi: Explicitly use python3 for compatibility with packages using python3 syntax in setup.py support/download: Fix tarball generation (from git/svn repos) including symlinks pointing to ./. Fix svn download for <1.9 clients or repos using CVS-style keywords. support/scripts/cve.py: Use the (significantly) faster yajl2 ijson backend for older (< 2.5) ijson versions rather than the slow python default, speeding up pkg-stats by ~2x. Toolchain: Add logic to work around binutils bug 21464 (affecting OpenRISC), bug 27597 (affecting Nios II) and drop the now longer applicable bug 19615 / 20006 handling. Python{,3}: Fix byte compiling python files with short (single character before .py) file names. CPE meta data has been added for a large number of packages New defconfigs: Acme Systems Acqua A5 (256/512MB), Beagleboard BeagleV, Boundary devices Nitrogen8M Plus SOM, NXP i.MX 8M Plus EVK, QEMU PPC e500mc New packages: beaglev-ddrinit, beaglev-secondboot, janet, kodi-inputstream-ffmpegdirect, kodi-vfs-libarchive, kodi-visualisation-matrix, libxcrypt, libqrtr-glib, log4qt, mawk, perl-parse-yapp, postgis, protozero, python-flask-wtf, python-iwlib, python-semantic-version, python-setuptools-rust, python-toml, riscv64-elf-toolchain, siproxyd, uftrace, zfs Removed packages: iostat, kodi-platform, kodi-screensaver-crystalmorph, monkey Issues resolved (http://bugs.uclibc.org): #13271: systemd-resolved: /etc/resolv.conf link broken on per-pa.. #13516: utils/scanpypi: Failure when parsing diffoscope #13551: 2021.02.rc2: Unicode not work on qt 5.15.2 #13576: Issues compiling buildroot for 5x86 #13601: Gen image :Iappropriate ioctl error #13616: tar file from git repository generation issue #13631: Commit 54d3d94b6e breaks packages with git download method #13641: glibc on raspberrypi #13646: Gen image version 14 error : no sub -section title/.. #13651: pkg-golang cannot build when main.go is in the root #13661: host-python2 build fails on aarch64 #13671: openSSH server closes connection before authentication.. #13721: c-stack.c:55:26: error: missing binary operator before .. #13731: Readline Patch is missing Author Information #13741: genext2fs does not allow to set perms of root node #13751: libopenssl (static): huge drop in performance in newer .. #13771: package htop has undeclared dependency on host python 2021.02.7, released November 10th, 2021 Important / security related fixes. OpenJDK 16.x moved to 17.x as 16.x is EOL. Updated/fixed packages: asterisk, audit, bind, bitcoin, cryptsetup, dahdi-linux, dbus-python, dfu-util, docker-cli, docker-containerd, docker-engine, earlyoom, exiv2, ffmpeg, freerdp, gdb, gensio, gnupg2, go, gpsd, gst1-plugins-bad, gst1-plugins-ugly, gst1-vaapi, hiredis, lftp, lightning, lrzip, netdata, nodejs, olsr, openjdk, openjdk-bin, pango, qemu, samba4, snort, strongswan, suricata, systemd, vim, wf111, wireguard-linux-compat, xerces Issues resolved (http://bugs.uclibc.org): #14311: Cannot compile dahdi (part of Asterisk) for x86 (P1mmx) 2021.02.6, released October 11, 2021 Important / security related fixes. gdbinit: Mark the sysroot as a "safe path" before configuring it, so pretty printers work correctly without having to pass -ix to gdb Updated/fixed packages: alsa-lib, apache, arm-trusted-firmware, atftp, bind, botan, cryptopp, dash, dc3dd, docker-cli, docker-containerd, docker-engine, dovecot, erlang, fetchmail, gdb, ghostscript, go, gst-omx, gst1-devtools, gst1-interpipe, gst1-libav, gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1, gstreamer1-editing-services, kodi-pvr-octonet, libcurl, libkrb5, libressl, libsndfile, libyang, lxc, lynx, mesa3d, micropython, minicom, mono, mtr, mv-ddr-marvell, net-tools, nmap, nodejs, ntfs-3g, openjdk, openjdk-bin, openldap, openssh, php, python-aioconsole, python-cffi, python-dateutil, python-django, python-pip, python-texttable, python-urllib3, python-webob, qt5location, redis, refpolicy, ripgrep, runc, sispmctl, squid, strongswan, supervisor, syslinux, tinycbor, trace-cmd, uboot-tools, uclibc, wavemon, wireless-regdb, xen, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #14206: Kodi: even when not enabled, forcefully selects libevdev.. #14211: libffi-3.3.tar.gz repacked #14221: mv-ddr-marvell fails license validation 2021.02.5, released September 15th, 2021 Important / security related fixes. Toolchain: Disable fortify support for Microblaze as it is not currently working. Updated/fixed packages: alsa-utils, arm-trusted-firmware, bayer2rgb-neon, belle-sip, busybox, c-ares, cjson, coreutils, cpio, eigen, environt-setup, fetchmail, fluidsynth, fontconfig, gd, gdb, gnuradio, gnutls, go, haproxy, ipmiutil, iputils, jszip, kvm-unit-tests, libarchive, libexif, libgcrypt, libmodsecurity, libopenssl, librsvg, libshout, libssh, linux, localedef, mc, mesa3d, mosquitto, netsniff-ng, nginx, nodejs, ogre, openmpi, openvmtools, php, postgresql, prelink-cross, prosody, protobuf, python-keyring, python-matplotlib, python-pillow, python-pyudev, python-secretstorage, python3, qt5base, samba4, sdl2, sox, swupdate, sylpheed, tor, uboot-tools, uhd, unbound, vim, wlroots, xapp_xrdb, xapp_xwd, xen, xenomai, xlib_libXfont2, xlib_libXft, zip 2021.02.4, released August 10th, 2021 Important / security related fixes. Toolchain: Disable PIC/PIE for Microblaze (like for NIOS II) as it is not currently working. binutils: fix linker assert failure on OpenRisc, or1k build issue with gcc < 5 gdb: Enable on NIOS II utils/scanpypi: Various improvements Defconfigs: stm32f469_disco: Fix kernel boot issue, Microchip sam9x60ek mmc_dev: Add missing toolchain/system options Updated/fixed packages: apache, arm-trusted-firmware, audit, avahi, bind, binutils, bird, bluez5_utils, boinc, busybox, chrony, clamav, cryptsetup, cwiid, dnsmasq, docker-cli, docker-engine, dovecot, dovecot-pigeonhole, e2fsprogs, exiv2, fail2ban, fb-test-app, feh, fetchmail, flac, fluxbox, gawk, gcc, gcr, gdb, gdk-pixbuf, gesftpserver, glibc, go, gptfdisk, granite, grub2, gqrx, guile, hdparm, heirloom-mailx, ibrcommon, ibrdtn, ibrdtn-tools, ibrdtnd, intel-microcode, iodine, irqbalance, keepalived, libass, libconfig, libcurl, libfreeimage, libfuse3, libgcrypt, libgtk3, libgudev, libhtp, libjson, libkrb5, libloki, libmodsecurity, libndp, libnetfilter-log, libnfnetlink, libnice, libodb, libodb-boost, libodb-mysql, libodb-pgsql, libpcap, libqmi, libressl, librsvg, libtasn1, libtirpc, libuci, libxmlrpc, linux-firmware, linuxptp, lrzsz, ltp-testsuite, lvm2, mariadb, mbedtls, monit, mono, mosquitto, mpd, mpg123, mpv, nbd, neard, netsnmp, nettle, nginx-modsecurity, nmap, nodejs, ntp, openntpd, openpgm, openswan, pango, pcre2, perl-crypt-openssl-rsa, php, pixman, polkit, postgresql, proxychains-ng, putty, python, python-django, python-dataproperty, python-pysftp, python-urllib3, python3, qpdf, redis, ripgrep, ruby, samba4, spice, slirp, suricata, sysdig, tcpdump, tftpd, thrift, tor, tpm2-tools, trinity, uboot, uboot-tools, uclibc, util-linux, vlc, wireless-regdb, wireshark, wolfssl, xapp_fonttosfnt, xlib_libX11, xlib_libxshmfence, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #13586: grub failure with BR2_OPTIMIZE_3 #13661: host-python2 build fails on aarch64 #13836: package build failure when target install set to no.. #13846: BR2_PACKAGE_LVM2_STANDARD_INSTALL should be default to.. 2021.02.3, released June 12th, 2021 Important / security related fixes. CPE meta data has been added for a large number of packages Updated/fixed packages: acpid, apache, apcupsd, assimp, bird, bitcoin, blktrace, boost, capnproto, chrony, dc3dd, dhcp, directfb, dmalloc, docker-engine, ebtables, efibootmgr, enlightenment, enscript, environment-setup, exempi, expat, findutils, flatcc, fluidsynth, frr, gdb, go, gptfdisk, grpc, gst1-plugins-bad, gst1-rtsp-server, gstreamer1, gupnp, hostapd, hwloc, i2c-tools, iftop, imagemagick, imx-gpu-viv, intel-mediadriver, intel-microcode, jquery-validation, keepalived, kodi, less, libcamera, libcurl, libcutl, libesmtp, libeXosip2, libffi, libfuse, libfuse3, libgeos, libgtk2, libgtk3, libical, libidn, libidn2, libkcapi, libldns, libmms, libmodbus, libmspack, libnids, libopenh264, liboping, libraw, librelp, libsamplerate, libtirpc, libusb, libuv, libxcb, libxml2, libxslt, live555, llvm, lmbench, localedef, lttng-tools, lvm2, lz4, mesa3d, mimic, mini-snmpd, minidlna, minissdpd, minizip, mono-gtksharp3, mpg123, mpv, msmtp, musl, mutt, nasm, nbd, netperf, netsurf, nginx, odb, opencv3, openssh, opentyrian, oprofile, p7zip, paho-mqtt-c, perl, php-imagick, pifmrds, picocom, pigz, pngquant, poco, postgresql, prosody, proxychains-ng, pulseaudio, putty, pwgen, python-autobahn, python-bluezero, python-engineio, python-keyring, python-pillow, python-requests, python-tqdm, qemu, qpdf, qt5base, redis, refpolicy, rt-tests, runc, shellinabox, squid, strace, supervisor, synergy, taglib, tclap, terminology, thermald, tini, tinyproxy, tinyxml2, tpm2-tss, uclibc, udisks, uhd, unscd, vlc, waylandpp, webkitgtk, weston, wireshark, wpa_supplicant, wpewebkit, xlib_libdmx, xlib_libFS, xlib_libICE, xlib_libX11, xlib_libXcursor, xlib_libXdmcp, xlib_libXext, xlib_libXfixes, xlib_libXfont2, xlib_libXinerama, xlib_libXpm, xlib_libXres, xlib_libXt, xlib_libXtst, xlib_libXxf86dga, xlib_libXxf86vm, xterm Issues resolved (http://bugs.uclibc.org): #13781: isc dhcp-server package don't create file /usr/bin/dhcpd #13801: toolchainfile.cmake CMAKE_BUILD_TYPE #13806: Building host-localedef fails on fedora 34/gcc 11 2021.02.2, released May 12th, 2021 Important / security related fixes. Toolchain: Add logic to mark toolchains affected by binutils bug 27597 (Nios II). support/scripts/cve.py: Use the (significantly) faster yajl2 ijson backend for older (< 2.5) ijson versions rather than the slow python default, speeding up pkg-stats by ~2x. CMake infrastructure: Use CMAKE_EXE_LINKER_FLAGS rather than CMAKE_CXX_FLAGS to link with libatomic to fix an compatibility issue with poppler. Infrastructure: Expose CONFIG_DIR to post-build/post-image scripts, so they can call the Buildroot Makefile in the correct directory for both in-tree / out-of-tree builds. Updated/fixed packages: at91bootstrap, avahi, bash, bind, bridge-utils, boost, cegui, cifs-utils, clamav, cmake, coremark-pro, coreutils, cryptsetup, dmalloc, dnsmasq, docker-cli, docker-engine, domoticz, efl, exim, ffmpeg, flex, gcc, genext2fs, go, gst1-interpipe, haproxy, hostapd, i2c-tools, imx-vpu, kexec, kf5-kcoreaddons, kismet, libcamera, libcurl, libdrm, libfreefare, libfuse3, libgeos, libgpiod, libnpupnp, libopenssl, libp11, librsync, libtomcrypt, libupnp, localedef, lvm2, lxc, m4, makedevs, mender, mesa3d, mesa3d-headers, mkpasswd, mkpimage, modem-manager, monkey, mpd, ncurses, nettle, network-manager, nginx, numactl, openjdk, openjdk-bin, openldap, openvpn, php, pipewire, python-aioconsole, python-asgiref, python-botocore, python-django, python-dnspython, python-flup, python-httplib2, python-markdown2, python-mbrstrdecoder, python3, quickjs, readline, rsyslog, ruby, rust, samba4, sconeserver, snort, sox, systemd, tar, timescaledb, tio, tor, usb_modeswitch, wpa_supplicant, xdriver_xf86-video-ati, xen, xlib_libXaw, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #13271: systemd-resolved: /etc/resolv.conf link broken on per-pa.. #13551: 2021.02.rc2: Unicode not work on qt 5.15.2 #13651: pkg-golang cannot build when main.go is in the root #13661: host-python2 build fails on aarch64 #13721: c-stack.c:55:26: error: missing binary operator before .. #13731: Readline Patch is missing Author Information #13741: genext2fs does not allow to set perms of root node #13751: libopenssl (static): huge drop in performance in newer .. #13771: package htop has undeclared dependency on host python 2021.02.1, released April 7, 2021 Important / security related fixes. Dependencies: Explicitly detect and bail out if PATH contains spaces or tabs. A number of packages fail to build in such setups, so explicitly inform about this. utils/scanpypi: Explicitly use python3 for compatibility with packages using python3 syntax in setup.py support/download: Fix tarball generation (from git/svn repos) including symlinks pointing to ./. Fix svn download for <1.9 clients or repos using CVS-style keywords. Meson: Use correct C++ host compiler (rather than C compiler) Toolchain: Add logic to work around binutils bug 21464, affecting OpenRISC, and drop the now longer applicable bug 19615 / 20006 handling. Python{,3}: Fix byte compiling python files with short (single character before .py) file names. CPE meta data has been added for a large number of packages Defconfigs: Correct Beaglebone QT file system overlay Updated/fixed packages: alsa-utils, at91bootstrap3, batman-adv, binutils, botan, bridge-utils, busybox, ca-certificates, cog, coreutils, diffutils, dmidecode, docker-cli, docker-containerd, docker-engine, efivar, fetchmail, frr, genimage, git, gnutls, go, grub2, gst-omx, gst1-devtools, gst1-libav, gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1, gstreamer1-editing-services, haproxy, haserl, hwloc, irqbalance, jasper, kexec, kexec-lite, kismet, kodi, libcurl, libfreeglut, libgcrypt, libgeos, libglib2, libopenssl, libqmi, libressl, libupnp, libvips, libvpx, libwebsockets, linux, lldpd, logrotate, lttng-libust, lttng-tools, mariadb, mbedtls, mcelog, mender, micropython, mongoose, mosquitto, mpd, netsnmp, nodejs, openmpi, openssh, openvpn, opkg-utils, optee-client, optee-test, perl, php, proftpd, protobuf, python-django, python-jinja2, python-lxml, python-paramiko, python-py, python-pygments, python-rpi-ws281x, python-urllib3, python3, qt5webkit, qwt, rpm, samba4, sconeserver, sdl2, shim, sqlcipher, squid, sysklogd, syslinux, sysvinit, tor, transmission, tzdata, uboot, uclibc, upx, webkitgtk, wireshark, wpebackend-fdo, wpewebkit, xen, zstd New packages: perl-parse-yapp Issues resolved (http://bugs.uclibc.org): #13516: utils/scanpypi: Failure when parsing diffoscope #13576: Issues compiling buildroot for 5x86 #13601: Gen image :Iappropriate ioctl error #13616: tar file from git repository generation issue #13641: glibc on raspberrypi #13646: Gen image version 14 error : no sub -section title/.. #13671: openSSH server closes connection before authentication.. 2021.02, released March 6th, 2021 Various fixes. Toolchain: Correct Bootlin xtensa-lx60 dependencies Updated/fixed packages: asterisk, belle-sip, bustle, dhcpcd, dovecot, dovecot-pigeonhole, gnuchess, gnuradio, gst1-plugins-bad, haproxy, jasper, kismet, libebml, libeXosip2, libgeos, libhtp, libjpeg, libopenssl, libshout, libstrophe, mosquitto, openblas, openssh, perl, privoxy, prosody, python-pyyaml, python3-pyyaml, quagga, redis, rust-bin, sox, suricata, tpm2-pkcs11, uclibc-ng-test, ushare, util-linux, wolfssl, wpa_supplicant Issues resolved (http://bugs.uclibc.org): #13501: 2021.02.rc2: Unicode not work on qt 5.15.2 #13581: jpegsrc.v9d.tar.gz has changed hash 2021.02-rc3, released February 27th, 2021 Fixes all over the tree. utils/scanpypi: Explicitly use python3 to ensure compatiblity with packages having python3-only code in setup.py support/download: Ensure sub-second timestamp precision is dropped when creating a tarball from a (subversion) repo, as that is not representable in the PAX tar format Updated/fixed packages: babeltrace2, bind, botan, brltty, cegui, elfutils, fakeroot, imagemagick, intel-mediasdk, irqbalance, libglib2, libselinux, libusb, libuwsc, nodejs, open62541, openldap, ply, python-aiohttp, python-django, python3, qemu, readline, rust, screen, taglib, unbound, xterm Issues resolved (http://bugs.uclibc.org): #13516: utils/scanpypi: Failure when parsing diffoscope #13541: 2021.02.rc2: irqbalance: Daemon couldn't be bound to... #13561: Create a new user defining users-table.txt not working.. 2021.02-rc2, released February 16th, 2021 Fixes all over the tree. Vulnerability scanning: cpedb.py: Drop CPE XML database caching, as it did not speed up processing much and uses a lot of additional memory. pkg-stats: include information about ignored CVEs in JSON output Fakeroot: Fix compatibility issue with glibc 2.33 Updated/fixed packages: can-utils, collectd, dnsmaqs, docker-cli, docker-engine, ebtables, fakeroot, flashrom, gdk-pixbuf, go, gst1-python, jasper, kodi, kodi-inputstream-adaptive, lcms2, libgeos, libgpg-error, libopenssl, mongoose, mpd, ne10, netopeer2, openblas, orc, perl-gd, ply, postgresql, protobuf, subversion, tcpdump, tzdate, uboot-tools, wireshark, webkitgtk, wpewebkit, xterm New packages: perl-extutils-pkgconfig Issues resolved (http://bugs.uclibc.org): #11706: binman (U-boot tool) cannot find libfdt "binman: No mod.. 2021.02-rc1, released February 9th, 2021 Fixes all over the tree and new features. Toolchain: Default to binutils 2.35.2, add 2.36.1, drop 2.33.x. Fix GCC 10.x ARC adc/sbc pattern handling, Update ARM toolchains to 10.2-2020.11 release. Architectures: ARC: add support for generic HS48 processor, PPC: drop PPC601 support, which was removed from Linux 5.10. Vulnerability scanning: The CVE checking logic has been extended to match packages based on CPE (Common Platform Enumeration) IDs for more accurate matching, and CPE identifiers have been added for a large amount of packages. Download: Rework the tarball creation logic (E.G. when a package is fetched from a git/svn repo) to no longer require a host-tar <= 1.29. To differ between the old and the new format, the new tarballs have gained a -br1 suffix (--br1.tar.gz). SELinux support: A significant number of packages now pull in the relevant refpolicy modules when enabled. New defconfigs: arrow avenger96, bananapi M1+, microchip sam9x60ek, pine64 rock64 Removed defconfigs: QEMU ppc virtex-ml507 New packages: balena-engine, casync, coremark, coremark-pro, datatables, datatables-buttons, datatables-fixedcolumns, datatables-responsive, delve, frotz, gkrellm, inih, jszip, libgeos, libiec61850, libmdbx, lualdap, neofetch, nvidia-modprobe, open62541, perl-devel-cycle, perl-devel-size, perl-math-int64, ply, popperjs, python-bleak, python-defusedxml, python-pycups, python-pytest-asyncio, python-typing-extensions, qcom-db410c-firmware, qt5coap, qt5knx, qt5mqtt, quickjs, rcw-smarc-sal28, screenfetch, ssdp-responder, tpm2-pkcs11, wqy-zenhei, xorcurses Removed packages: audiofile, boa, ipsec-tools, libupnp18, ti-sgx-libgdbm Renamed rcw package to qoriq-rcw Issues resolved (http://bugs.uclibc.org): #13316: beaglebone_qt5_defconfig: PowerVR fails to start #13416: dhcpcd start warning message: no such user dhcpcd #13456: ccache prevents build #13471: package/mpd/mpd.conf make use of path not created #13506: BR2_PACKAGE_DHCPCD missing directory creation 2020.11.4, released April 5th, 2021 Important / security related fixes. Dependencies: Explicitly detect and bail out if PATH contains spaces or tabs. A number of packages fail to build in such setups, so explicitly inform about this. utils/scanpypi: Explicitly use python3 for compatibility with packages using python3 syntax in setup.py support/download: Fix tarball generation (from git/svn repos) including symlinks pointing to ./ Meson: Use correct C++ host compiler (rather than C compiler) Updated/fixed packages: asterisk, at91bootstrap3, babeltrace2, batman-adv, bind, ca-certificates, cegui, cog, diffutils, docker-containerd, dovecot, dovecot-pigeonhole, efivar, elfutils, fakeroot, git, gnuchess, gnuradio, gnutls, go, grub2, haserl, i7z, imagemagick, intel-mediasdk, irqbalance, jasper, kodi, libcurl, libebml, libeXosip2, libglib2, libhtp, libjpeg, libopenssl, libqmi, libressl, libupnp, libuwsc, libvips, lldpd, mariadb, mbedtls, mender, micropython, mosquitto, netsnmp, nodejs, openblas, openldap, openmpi, openssh, opkg-utils, optee-client, optee-test, perl, php, privoxy, proftpd, prosody, protobuf, python-aiohttp, python-django, python-lxml, python-pyyaml, python-rpi-ws281x, python-typing-extensions, python3, quagga, qwt, redis, rpm, sconeserver, screen, sox, sqlcipher, squid, suricata, syslinux, sysvinit, tor, transmission, tzdata, uboot, unbound, upx, util-linux, webkitgtk, wireshark, wolfssl, wpebackend-fdo, wpewebkit, wpa_supplicant, zstd Issues resolved (http://bugs.uclibc.org): #13516: utils/scanpypi: Failure when parsing diffoscope #13541: 2021.02.rc2: irqbalance: Daemon couldn't be bound to.. #13576: Issues compiling buildroot for 5x86 #13581: jpegsrc.v9d.tar.gz has changed hash #13616: tar file from git repository generation issue 2020.11.3, released February 17th, 2021 meson: Fix ccache detection handling when per-package builds are used. Fakeroot: Fix compatibility issue with glibc 2.33 Updated/fixed packages: atftp, binutils, busybox, cereal, chartjs, connman, dhcpcd, dnsmasq, docker-cli, docker-engine, ebtables, fakeroot, flashrom, go, gst1-python, guile, intel-mediadriver, intel-microcode, jasper, kodi-inputstream-adaptive, lcms2, libbsd, libopenssl, makedumpfile, memtester, mosquitto, ne10, openblas, orc, php, postgresql, privoxy, pugixml, python-bottle, python-django, python3, rauc, sox, stress-ng, subversion, tzdata, uboot-tools, uclibc, webkitgtk, wireguard-linux-compat, wireshark, wpa_supplicant, wpewebkit, xenomai, xserver_xorg-server, xterm Issues resolved (http://bugs.uclibc.org): #11706: binman (U-boot tool) cannot find libfdt "binman: No mod.. #13506: BR2_PACKAGE_DHCPCD missing directory creation 2020.11.2, released January 31st, 2021 Important / security related fixes. Download: Ensure git submodules are correctly fetched if enabled for a package with _GIT_SUBMODULES = YES and the host variant is downloaded first. Toolchain: Mark CodeSourcery Aarch64 2014.11 toolchain as not having libatomic. Bootlin PowerPC-440 FP toolchain updated for SecurePLT fix. pkg-stats: Fix python 3.8+ deprecation warning. meson: Ensure ccache is not detected and used, as it may conflict with the ccache handling in Buildroot. Updated/fixed packages: barebox, boost, brltty, dbus, docker-containerd, dovecot, dovecot-pigeonhole, environment-setup, firmware-imx, gcc, gerbera, glibc, gmrender-resurrect, igd2-for-linux, kodi-pvr-zattoo, libclc, libfuse3, libllcp, libodb-mysql, libtorrent-rasterbar, libupnp, lpc32xxcdl, luarocks, mpd, multipath-tools, mutt, nfs-utils, nodejs, openjpeg, openldap, opentracing-cpp, openvpn, p11-kit, paho-mqtt-c, php, poppler, postgresql, python3, redis, resiprocate, rpm, runc, socat, sslh, sudo, sunxi-mali-mainline-driver, syslog-ng, systemd, tini, tpm2-tss, trace-cmd, tzdata, uboot-tools, uhd, ushare, util-linux, vlc, wavpack, wireguard-linux-compat, wolfssl, xapp_xload, xorriso, zic Removed packages: libupnp18 Issues resolved (http://bugs.uclibc.org): #13471: package/mpd/mpd.conf make use of path not created 2020.11.1, released December 27th, 2020 Important / security related fixes. Infrastructure: - cmake: fix host ccache handling for CMake 3.19 - meson: Forcibly disable binary stripping for target builds, enable for host builds - golang: Fix HOST / TARGET directories for per-package builds Defconfigs: Beaglebone Qt5: Fix ti-sgx related issues Updated/fixed packages: apitrace, arm-trusted-firmware, ca-certificates, cryptopp, dhcpcd, dtv-scan-tables, flare-engine, ghostscript, go, haproxy, imagemagick, imx-gpu-viv, jasper, kismet, libcurl, libglib2, libhtp, libopenssl, libressl, libuv, libuvw, lua, mbedtls, mongodb, mutt, ncurses, netsnmp, nodejs, opencv3, openldap, opkg-utils, paho-mqtt-c, python-crc16, python-lxml, python-pyparsing, python-pyqt5, qt5base, rauc, shadowsocks-libev, sqlcipher, suricata, ti-sgx-demos, tinycbor, uclibc-ng-test, unbound, webkitgtk, wpewebkit, wireshark, x11vnc, xen, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #13316: beaglebone_qt5_defconfig: PowerVR fails to start #13416: dhcpcd start warning message: no such user dhcpcd 2020.11, released December 2nd, 2020 Various fixes. Updated/fixed packages: bustle, docker-containerd, gnuplot, gst1-plugins-good, jemalloc, kmsxx, libcap, libplist, libuhttpd, libxkbcommon, lynx, mariadb, netsurf, privoxy, s390-tools, setserial, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #13276: libcap builds libcap.pc incorrectly 2020.11-rc3, released November 28th, 2020 Fixes all over the tree. Updated/fixed packages: c-ares, cage, cdrkit, dovecot-pigeonhole, efl, gvfs, harfbuzz, jpeg-turbo, libcamera, libkrb5, libpam-tacplus, libxkbcommon, minidlna, modem-manager, monkey, musl, ncurses, numactl, openntpd, openrc, postgresql, proftpd, python-flask-cors, python-pip, qemu, raptor, redis, slirp, spandsp, thermald, uhd, vsftpd, webkitgtk, wireless-regdb, wlroots, wpewebkit, xen, xinetd, xorriso Issues resolved (http://bugs.uclibc.org): #13296: host-libcap failed to build #13331: openrc-0.42.1 compilation failure on gcc-10 #13336: thermald-1.9.1 compilation failure with musl 1.2.1 #13341: Mistake in /etc/init.d/S70vsftpd 2020.11-rc2, released November 14th, 2020 Fixes all over the tree. cve-checker script dropped. Instead the pkg-stats logic has been extended to be able to only generate stats for the configured packages using 'make pkg-stats' Removed defconfigs: rock64 Updated/fixed packages: apparmor, asterisk, bitcoin, busybox, cups-filters, cryptsetup, davfs2, domoticz, elf2flt, freetype, ghostscript, glmark2, go, gst1-plugins-bad, guile, jsoncpp, libcap, libexif, libnetfilter_conntrack, libpam-tacplus, libsigrokdecode, linux-backports, linux-firmware, mesa3d, modem-manager, mp4v2, oniguruma, openntpd, python3, python-lmdb, python-m2crypto, rauc, s390-tools, slirp, stress-ng, suricata, systemd, tcpdump, tmux, tor, webkitgtk, wireguard-linux-compat, wpewebkit, xen Issues resolved (http://bugs.uclibc.org): #13281: Raspberry Pi 2: overlays folder missing in genimage-ra.. #13291: BR2_DL_DIR is ignored when creating defconfig #13306: wpewebkit build problem in 2020-11-rc1 2020.11-rc1, released November 4th, 2020 Fixes all over the tree and new features. Architectures: Support for IBM s390x Toolchain: use Secure-PLT rather than BSS-PLT for PowerPC 32. Binutils 2.35.1 added, now defaulting to 2.34. ARC 2020.09-release toolchain. GCC 7.x dropped. RISC-V support for uclibc-ng. Support for Bootlin external toolchains. SELinux support improvements: File security contexts are now set when the file systems are created, so there is no need to run restorecon on first boot / read only rootfs is supported. An optimized / stripped refpolicy SELinux policy is now used. Packages can enable additional refpolicy modules using _SELINUX_MODULES. support/scripts/cve-checker: Utility script to check for known CVEs in just the packages enabled in a Buildroot configuration rather than all packages, by passing the output of 'make show-info' to it. Go: Modules handling. The module name must be specified using _GOMOD. BR2_EXTERNAL: Support for defining skeleton and init system packages in external trees. meson: Correct SDK cross-compilation.conf file when per-package builds were used to build SDK. systemd: Use /run rather than /var/run for PID files in units. Fakeroot scripts (BR2_ROOTFS_POST_FAKEROOT_SCRIPT) are now run after all finalization hooks (including pre-rootfs) to ensure they can override any late configuration done by packages. support/script/pycompile: Rework logic to ensure .pyc files contain absolute target paths, fixing code inspection at runtime when executed with cwd != '/'. support/scripts/setlocalversion: Correct Mercurial output to match behaviour with Git. support/scripts/apply-patches.sh: Use patch --no-backup-if-mismatch, so we no longer blindly have to remove *.orig files after patching, fixing issues with packages containing such files. New defconfigs: Acer chromebook elm, Friendlyarm nanopc-t4 and nanopi-m4, Hardkernel odroid-c2, Kontron SMARC-sAL28, NXP imx8mqevk, Orangepi RK3399 and zero+, PCengines APU2, Pine64 rockpro64, QEMU s390x, Raxda rockpi-n8, New packages: altera-stapl, asn1c, babeltrace2, cukinia, easyframes, environment-setup, frr, graphicsmagick, htpdate, ipcalc, libbacktrace, libblockdev, libbytesize, librelp, libuev, makedumpfile, meson-tools, mg, mrp, multipath-tools, netcalc, odroidc2-firmware, php-xdebug, python-aiofiles, python-ansicolors, python-boto3, python-botocore, python-bsdiff4, python-crayons, python-iniconfig, python-intelhex, python-ipdb, python-jmespath, python-m2crypto, python-opcua-asyncio, python-packaging, python-piexif, python-pluggy, python-pytest, python-s3transfer, python-xmodem, qprint, qt5lottie, qt5remoteobjects, re2, redir, s390-tools, sentry-cli, sentry-native, timescaledb, tinyhttpd, uhd, uredir, watchdog, wayland-utils, weston-imx Removed packages: amd-catalyst, bellagio, gqview, libcroco, nvidia-tegra23, opencv Issues resolved (http://bugs.uclibc.org): #11811: lsblk (util-linux) should depend on libudev if available #11931: Bugs in support/scripts/apply-patches.sh #12301: systemd-journal-gatewayd: config options broken #12911: usb_modeswitch installation race condition #13236: Can't compile linux 5.4.8 (with gcc 10 on host) #13286: The system hangs in vmware workstation on the line.. 2020.08.3, released December 27th, 2020 Important / security related fixes. Infrastructure: - cmake: fix host ccache handling for CMake 3.19 - meson: Forcibly disable binary stripping for target builds, enable for host builds - golang: Fix HOST / TARGET directories for per-package builds Defconfigs: Beaglebone Qt5: Fix ti-sgx related issues Updated/fixed packages: apitrace, arm-trusted-firmware, bustle, c-ares, ca-certificates, cage, cdrkit, cryptopp, dhcpcd, docker-containerd, dtv-scan-tables, flare-engine, ghostscript, gvfs, haproxy, imagemagick, imx-gpu-viv, jasper, jemalloc, jpeg-turbo, libcamera, libcap, libcurl, libglib2, libgpiod, libkrb5, libopenssl, libplist, libressl, libuv, libuvw, lynx, mariadb, mbedtls, minidlna, mongodb, monkey, musl, mutt, ncurses, netsnmp, netsurf, nodejs, opencv3, openldap, openrc, opkg-utils, paho-mqtt-c, php, privoxy, proftpd, python-crc16, python-flask-cors, python-lxml, python-pip, python-pyparsing, python-pyqt5, qemu, qt5base, raptor, rauc, ruby, setserial, shadowsocks-libev, slirp, sqlcipher, thermald, ti-sgx-demos, tinycbor, unbound, vsftpd, wireless-regdb, wireshark, wlroots, x11vnc, xen, xinetd, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #13276: libcap builds libcap.pc incorrectly #13316: beaglebone_qt5_defconfig: PowerVR fails to start #13336: thermald-1.9.1 compilation failure with musl 1.2.1 #13341: Mistake in /etc/init.d/S70vsftpd #13416: dhcpcd start warning message: no such user dhcpcd 2020.08.2, released November 16th, 2020 Important / security related fixes. Toolchain-wrapper: Pass -fno-tree-loop-distribute-patterns to fix kernel build on microblaze with gcc 10.x when optimizations are enabled. Updated/fixed packages: apparmor, argp-standalone, asterisk, bandwidthd, binutils, bitcoin, busybox, collectd, cryptsetup, cups-filters, darkhttpd, davfs2, docker-cli, docker-containerd, docker-engine, dovecot-pigeonhole, dvb-apps, elf2flt, fastd, fbset, fbtft, freetype, gcc, ghostscript, grpc, gst1-plugins-bad, jsoncpp, kernel-module-imx-gpu-viv, keepalived, kmscube, libass, libexif, libiqrf, libnetfilter_conntrack, libpam-tacplus, libraw, linux-backports, linux-firmware, lzlib, mp4v2, netsnmp, nginx, numactl, oniguruma, opencv3, openntpd, patchelf, php, pistache, postgresql, python-pyqt5, qemu, qt5base, rauc, redis, samba4, slirp, systemd, tcpdump, tinyproxy, tmux, tor, waf, webkitgtk, wine, wireguard-linux-compat, wireshark, wpewebkit, xen, xorriso, xvisor, zeromq, zxing-cpp Issues resolved (http://bugs.uclibc.org): #11931: Bugs in support/scripts/apply-patches.sh 2020.08.1, released October 12th, 2020 Important / security related fixes. Fixes for various compilation issues with GCC 10.x. meson: Correct SDK cross-compilation.conf file when per-package builds were used to build SDK. systemd: Use /run rather than /var/run for PID files in units. Toolchain: use Secure-PLT rather than BSS-PLT for PowerPC 32. Fakeroot scripts (BR2_ROOTFS_POST_FAKEROOT_SCRIPT) are now run after all finalization hooks (including pre-rootfs) to ensure they can override any late configuration done by packages. support/script/pycompile: Rework logic to ensure .pyc files contain absolute target paths, fixing code inspection at runtime when executed with cwd != '/'. support/scripts/setlocalversion: Correct Mercurial output to match behaviour with Git. support/scripts/apply-patches.sh: Use patch --no-backup-if-mismatch, so we no longer blindly have to remove *.orig files after patching, fixing issues with packages containing such files. fs/jffs2: Now correctly handles xattrs Updated/fixed packages: acpica, afboot-stm32, alsa-utils, apparmor, bandwidthd, barebox, bash, bison, brotli, cifs-utils, cups, dhcpcd, dhcpdump, docker-cli, docker-engine, ecryptfs-utils, efl, fail2ban, fbterm, ffmpeg, fontconfig, freetype, gcc, gdb, ghostscript, gnupg2, gnutls, go, gqview, gst1-plugins-base, gst1-plugins-ugly, ipmitool, jbig2dec, kexec, lcdproc, libcamera, libhtp, libnetconf2, libraw, libssh, libxml2, libxml-parser-perl, libzip, linux-headers, live555, localedef, ltp-testsuite, lua, matchbox, memcached, memtester, mesa3d, meson, minidlna, mongodb, mongrel2, motion, mraa, mtd, musepack, neardal, netatalk, netperf, netsniff-ng, nginx, nodejs, nss-pam-ldapd, open-plc-utils, openswan, opentyrian, openvmtools, php, postgresql, python, python-aenum, python-cycler, python-engineio, python-fire, python-pymodbus, python-scapy, python-semver, python-sentry-sdk, python-socketio, python-texttable, python-tinyrpc, python-txtorcon, python3, qt5base, quagga, read-edid, redis, rsh-redone, runc, samba4, socketcand, strace, supertux, suricata, systemd, ti-utils, trinity, uclibc, usb_modeswitch, vlc, vsftpd, wampcc, wayland-protocols, wireguard-linux-compat, wireshark, wlroots, wolfssl, w_scan, xerces, xfsprogs, xdriver-xf86-video-ati, xserver_xorg-server, ympd, zeromq, zlib-ng, zstd Issues resolved (http://bugs.uclibc.org): #12911: usb_modeswitch installation race condition #13236: Can't compile linux 5.4.8 (with gcc 10 on host) 2020.08, released September 1st, 2020 Various fixes. Updated/fixed packages: am33x-cm3, avahi, bluez-tools, busybox, chocolate-doom, collectd, dhcp, docker-cli, domoticz, gobject-introspection, graphite2, haproxy, ibm-sw-tpm2, imagemagick, libeXosip2, libressl, lxc, mbedtls, menu-cache, mongodb, mosquitto, nvidia-driver, paho-mqtt-c, pixz, postgresql, python-django, rtty, squid, stress-ng, systemd, trousers, uclibc, wireshark, wolfssl, zbar 2020.08-rc3, released August 28th, 2020 Fixes all over the tree. Infrastructure: Ensure RPATH entries that may be needed for dlopen() are not dropped by patchelf. Toolchain: Drop old GCC 6 based external Sourcery AMD64 toolchain. Updated/fixed packages: assimp, davfs2, dillo, glibc, gnuradio, hostapd, ibm-sw-tpm2, ipmitool, json-c, libroxml, linux, mender, netopeer2, openal, openjpeg, python-matplotlib, ripgrep, shadowsocks-libev, trousers, xlib_libX11, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #13141: Target-finalize fail with "depmod: ERROR: Bad version passed" 2020.08-rc2, released August 24th, 2020 Fixes all over the tree, including a number of fixes for compilation with GCC-10. Toolchain: Disallow building uClibc-ng for RISC-V 64-bit, because of issues with a missing __riscv_flush_icache() implementation. Defconfigs: CI20: Use mainline Linux and U-boot. Update Microchip sama5d27_wlsom1_ek_mmc_dev to use bluez5-utils instead of (the removed) legacy bluez-utils Updated/fixed packages: 18xx-ti-utils, aircrack-ng, apache, atest, bandwidthd, bellagio, bind, bird, bluez-alsa, boost, c-periphery, capnproto, chrony, collectd, cpio, cvs, dieharder, domoticz, dovecot, dovecot-pigeonhole, drbd-utils, dump1090, efl, elixir, f2fs-tools, feh, fluidsynth, fping, gdbm, gdk-pixbuf, ghostscript, gst1-plugins-bad, gstreamer1-editing-services, htop, ibm-sw-tpm2, ifplugd, iftop, igd2-for-linux, ima-evm-utils, iprutils, iputils, keepalived, kmsxx, libabseil-cpp, libcamera, libcurl, libfuse3, libnss, librtlsdr, libubox, libunwind, live555, lttng-tools, luabitop, mender-artifact, minizip, mjpg-streamer, mpd, mpv, mtd, ncftp, open-lldp, openal, opencv, opencv3, openfpgaloader, optee-os, owfs, php, pistache, prosody, pulseview, python-decorator, python-gunicorn, python-rpi-gpio, python-spidev, python3-decorator, python3-mako, python3-pyselftools, qt5, qt5webengine, rauc, redis, ripgrep, rtl8188eu, rtl8821au, setools, smstools3, supertux, tftpd, tpm2-abrmd, wpa_supplicant, xen, xlib_libX11, xserver_xorg-server New packages: python3-cython, python3-pycryptodomex Issues resolved (http://bugs.uclibc.org): #12876: nodejs fails to build when host-icu has been built before #13111: python-gunicorn: missing dependency on python-setuptools #13121: wpa_supplicant fails to build without libopenssl enabled #13146: raspberrypi3_defconfig: "Inappropriate ioctl for device".. #13156: package live555 new license #13166: python-rpi-gpio: does not work against aarch64, unint.. 2020.08-rc1, released August 6th, 2020 Toolchain: - GCC 10.x added, GCC 9.x is the default - binutils 2.34 added, binutils 2.33 is the default, binutils 2.31 removed - glibc updated to 2.31 - ARC toolchain components updated to 2020.03-release. - Enable uClibc-ng usage for RISC-V 64-bit Infrastructure: - qmake-package was fixed to be compatible with BR2_PER_PACKAGE_DIRECTORIES - complete rewrite of the Gitlab CI Yaml configuration file, now generated directly by the Gitlab CI pipeline itselfs Misc: - cargo and cargo-bin packages removed, as cargo is now part of Rust itself Filesystem: ubinize configuration files can now use BINARIES_DIR to refer to the $(O)/images directory. New packages: bitwise, earlyoom, fuse-overlayfs, gloox, kodi-pvr-octonet, kodi-pvr-zattoo, libabseil-cpp, libcutl, libnids, libnpupnp, libodb, libodb-boost, libodb-mysql, libodb-pgsql, mbpfan, netopeer2, odb, parprouted, python-colorzero, python-gpiozero, python-pybind, python-yatl, python3-decorator, qt5quicktimeline, resiprocate, ttyd, unclutter-xfixes, urandom-scripts, New defconfigs: bananapi_m2_zero, freescale_imx8mnevk, globalscale_espressobin, imx6ullevk, microchip_sama5d27_wlsom1_ek, rock_pi_4, rock_pi_n10 Removed packages: cargo, cargo-bin, kodi-peripheral-steamcontroller Issues resolved (http://bugs.uclibc.org): #12941: Python GObject fails to build when using BR2_PER_PACKAGE_DIRECTORIES #12946: Grub: Decompressor is too big. #12986: Mtools: Error converting to codepage 850 #13001: openjdk-bin replaces libfreetype.so from host-freetype #13011: Incorrect selection of gcc version #13021: Minor code error when building granite-0.4.1 #13026: rpi-firmware: must not rename start files #13046: Optimize for fast -Ofast is not compliant #13081: host-e2fsprogs attempts to create udev rules.d on build host if not exists #13101: BR audit2allow support 2020.05.3, released October 12th, 2020 Important / security related fixes. meson: Correct SDK cross-compilation.conf file when per-package builds were used to build SDK. systemd: Use /run rather than /var/run for PID files in units. Toolchain: use Secure-PLT rather than BSS-PLT for PowerPC 32. Fakeroot scripts (BR2_ROOTFS_POST_FAKEROOT_SCRIPT) are now run after all finalization hooks (including pre-rootfs) to ensure they can override any late configuration done by packages. support/script/pycompile: Rework logic to ensure .pyc files contain absolute target paths, fixing code inspection at runtime when executed with cwd != '/'. support/scripts/setlocalversion: Correct Mercurial output to match behaviour with Git. support/scripts/apply-patches.sh: Use patch --no-backup-if-mismatch, so we no longer blindly have to remove *.orig files after patching, fixing issues with packages containing such files. Updated/fixed packages: alsa-utils, apparmor, avahi, bandwidthd, barebox, bash, bison, brotli, busybox, cifs-utils, cryptsetup, cups, dhcpcd, dhcpdump, docker-cli, docker-engine, ecryptfs-utils, efl, fail2ban, freetype, gcc, gdb, ghostscript, gnutls, go, graphite2, gst1-plugins-base, gst1-plugins-ugly, imagemagick, ipmitool, jbig2dec, libhtp, libraw, libssh, libxml2, libxml-parser-perl, linux-headers, localedef, lua, mbedtls, memcached, mesa3d, meson, minidlna, mongodb, nginx, nodejs, nss-pam-ldapd, openvmtools, paho-mqtt-c, php, postgresql, python, python-aenum, python-django, python-engineio, python-fire, python-pymodbus, python-scapy, python-semver, python-sentry-sdk, python-socketio, python-texttable, python-tinyrpc, python-txtorcon, python3, qt5base, rsh-redone, runc, samba4, strace, supertux, suricata, systemd, uclibc, usb_modeswitch, vlc, vsftpd, wayland-protocols, wireguard-linux-compat, wireshark, wlroots, wolfssl, xserver_xorg-server, ympd, zeromq, zstd Issues resolved (http://bugs.uclibc.org): #12911: usb_modeswitch installation race condition #13251: cryptsetup does not work on branch 2020.02 following.. 2020.05.2, released August 29th, 2020 Important / security related fixes. Infrastructure: Ensure RPATH entries that may be needed for dlopen() are not dropped by patchelf. BR_VERSION_FULL/setlocalversion (used by make print-version and /etc/os-release): Properly handle local git tags Updated/fixed packages: apache, assimp, at91bootstrap3, bind, boost, busybox, capnproto, cegui, chrony, collectd, cpio, cryptsetup, cups, cvs, dbus, docker-engine, domoticz, dovecot, dovecot-pigeonhole, dropbear, efl, elixir, f2fs-tools, ffmpeg, gd, gdk-pixbuf, ghostscript, glibc, gnuradio, grub2, gst1-plugins-bad, gstreamer1-editing-services, hostapd, ibm-sw-tpm2, iputils, jasper, json-c, libcurl, libressl, libwebsockets, linux, live555, mesa3d, mongodb, mosquitto, mpv, nodejs, opencv, opencv3, openfpgaloader, openjpeg, patchelf, perl, php, postgresql, prosody, python-django, python-gunicorn, python-matplotlib, ripgrep, rtl8188eu, rtl8821au, ruby, shadowsocks-libev, squid, systemd, tpm2-abrmd, tpm2-tools, trousers, uboot, webkitgtk, wireshark, wolfssl, wpa_supplicant, wpewebkit, xen, xlib_libX11, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #12876: nodejs fails to build when host-icu has been built before #13111: python-gunicorn: missing dependency on python-setuptools #13121: wpa_supplicant fails to build without libopenssl enabled #13141: Target-finalize fail with "depmod: ERROR: Bad version passed" #13156: package live555 new license 2020.05.1, released July 25th, 2020 Important / security related fixes. Toolchain: - Make external toolchain version check also work for toolchains configured with --with-gcc-major-version-only - Do not handle SOURCE_DATE_EPOCH in toolchain wrapper if the compiler supports it, fixing an issue with precompiled headers - Ensure debug libs from external toolchains are not installed into target if debugging is disabled Download: - Correct reproducibility issue in handling of git submodules for older git versions. - Fix file locking over NFS fs: Ensure cpio archive element order is reproducible Br2-external: Fix error reporting for invalid br2-external trees Per-package: - Fix an issue with python3 sysconfig data not getting correctly expanded - Fix per-package building for packages using the qmake infrastructure Updated/fixed packages: a10disp, asterisk, bind, brltty, cdrkit, clamav, cryptodev-linux, dbus, docker-cli, docker-engine, dvb-apps, e2fsprogs, exim, exiv2, freerdp, gdb, gdk-pixbuf, gerbera, gnutls, go, granite, grub2, gssdp, gst1-plugins-good, gst1-plugins-ugly, gupnp, intel-microcode, iproute2, irrlicht, iwd, jq, kodi, libcamera, libcec, libconfuse, libcurl, libevdev, libhttpserver, libmicrohttpd, libnss, libressl, libvncserver, libxml2, libxmlrpc, lxc, mbedtls, mediastreamer, mesa3d, meson, minizip, mongodb, mtools, mutt, nano, network-manager, nghttp2, ngircd, nodejs, ntp, open-plc-utils, open2300, openjdk-bin, openssh, oracle-mysql, paho-mqtt-c, pango, php, poco, prosody, putty, python-greenlet, python-urllib3, python-validators, python3, readline, redis, rpi-firmware, rtl8821au, samba4, sdl2, sqlite, squid, strace, sunxi-mali-mainline-driver, syslog-ng, systemd, tcpreplay, tinydtls, upmpdcli, upx, vlc, webkitgtk, wireguard-linux-compat, wireshark, wpebackend-fdo, wpewebkit, x11vnc, znc, zstd Issues resolved (http://bugs.uclibc.org): #12941: Python GObject fails to build when using BR2_PER_PACKAGE_.. #12946: Grub: Decompressor is too big. #12986: Mtools: Error converting to codepage 850 #13001: openjdk-bin replaces libfreetype.so from host-freetype #13011: Incorrect selection of gcc version #13021: Minor code error when building granite-0.4.1 #13026: rpi-firmware: must not rename start files #13031: nodejs: RangeError at new ArrayBuffer() #13046: Optimize for fast -Ofast is not compliant 2020.05, released June 1st, 2020 Various fixes. Updated/fixed packages: arm-trusted-firmware, gcc, mp4v2, fmc, fmlib, glib-networking, libusb-compat, linux, qt5webengine, sysrepo, wampcc, xen 2020.05-rc3, released May 29th, 2020 Fixes all over the tree. Infrastructure: Support checking download hashes for packages coming from Subversion. Defconfigs: Increase boot partition size to 64MB for Freescale boards to allow space for bigger kernels. Updated/fixed packages: audit, bind, dovecot, efl, erlang, ffmpeg, fio, gerbera, gnupg, leveldb, lrzip, ltrace, matio, mesa3d, mp4v2, prosody, qemu, qt5declarative, speexdsp, systemd, tremor, uboot-tools, unbound, wireshark Removed packages: wiringpi Issues resolved (http://bugs.uclibc.org): #12361: Init system (systemd) kills login on Raspberry Pi Zero #12686: recipe for target 'install_dev' failed (libcrypto.so..) 2020.05-rc2, released May 22nd 2020 Fixes all over the tree. U-Boot: Support building with Python 3.x instead of Python 2.x. Since U-Boot 2020.01, various U-Boot build scripts use Python 3.x instead of Python 2.x, so add an option to pull in host-python3 rather than host-python. Also fix a number of defconfigs to use this new option. Updated/fixed packages: apparmor, binutils, bison, brltty, c-icap, cegui, checkpolicy, clamav, crda, cvs, docker-cli, docker-engine, domoticz, elf2flt, exfatprogs, fakeroot, ffmpeg, freerdp, gcc, glibc, gnuconfig, irrlicht, kmod, libexif, libpam-tacplus, libssh2, libv4l, libvncserver, localedef, lrzip, mariadb, matchbox, mbuffer, mesa3d, mesa3d-headers, meson, netsniff-ng, openldap, openocd, optee-os, p7zip, paho-mqtt-c, php, piglit, pigz, python-argon2-cffi, python-attrs, python-future, python-markdown, python-pycryptodomex, python-pyqt5, qt5base, rpi-firmware, rustc, squashfs, squid, stella, suricata, systemd, uacme, uclibc, util-linux, vboot-utils New packages: python3-pyelftools Removed packages: ezxml, mtdev2tuio, python-pycrypto Issues resolved (http://bugs.uclibc.org): #10551: PowerPC SPE and Musl #12256: package tar is outdated (1.29 is 3 years old) #12271: python-iptables runtime dependencies #12321: host-generic-package: PKG_DL_OPTS not used for host package #12391: CMake-based host package fails to include output/host/include #12431: ethernet no detected on nanopi neo 2 #12521: RISCV RV32IA selected, RV64GC output #12586: avahi failure #12596: host-e2fsprogs: tune2fs incompatibility on older glibc.. #12611: ntp hash is not matching with upstream 4.2.8p13 #12626: PHP missing header files within 2020.02 #12631: glibc support Power-PC SPE #12656: bison fails to relocate with relocate-sdk.sh #12661: cups problems in buildroot #12686: recipe for target 'install_dev' failed (libcrypto.so:.. #12691: host-rust build fails #12761: Buildroot fails when building GCNano binaries for the STM.. #12786: Systemd spawns two getty processes when the getty port.. #12806: There are multiple issues in buildroot that faults cups.. #12826: nodejs-12.16.1: error: 'uv_sleep' was not declared in.. #12831: RPI-firmware package: DTB-overlay dependency #12836: libunwind: package does not show up in menuconfig for.. #12841: util-linux/sfdisk 2.35.1 fails on sector-size header #12866: should we be disabling bash executable path caching? #12886: GMP built in wrong order (?) #12891: QEMU, libvirt-bin, qemu-kvm Package Support required #12901: GStreamer doesn't build on 2020-05 rc1 with GObject.. #12906: qt PrefixPath is wrong on 2020.05-rc1 #12921: nodejs-12.16.1: error: overriding 'virtual icu_65::.. 2020.05-rc1, released May 7th 2020 Addition of support for gobject-introspection: both the gobject-introspection package itself, but also introspection support was enabled in a number of other packages. Support for Qt 5.6 was dropped as its support was dropped upstream, only one version of Qt is supported at the moment: Qt 5.14.2. Addition of support for the apparmor Linux security module, by adding the necessary user-space packages. Addition of a qmake package infrastructure, now used by most Qt-related packages. The Luarocks package infrastructure has been extended to support build host packages. The package infrastructure was improved to allow each package to indicate the Linux kernel configuration options it needs. Addition of support for generating filesystem images using the EROFS filesystem. The logic that calculates the list of files installed by each package was reworked to be compatible with the top-level parallel build functionality. Addition of a package for a pre-compiled ARM32 bare-metal toolchain, which can be used to build ARM32 code in ARM64 configurations, such as firmware/bootloader code. The Qemu defconfigs are now boot-tested in Qemu as part of the Gitlab continuous integration. Toolchain: gcc 9.x bumped to 9.3.0, gcc 8.x bumped to 8.4.0, gdb bumped to 8.3.1. New packages: apcupsd, apparmor, arm-gnu-a-toolchain, bearssl, belle-sip, belr, cage, chartjs, erofs-utils, exfatprogs, gobject-introspection, ibm-sw-tpm2, imx-seco, jbig2dec, libapparmor, libiberty, libfuse3, libtextstyle, libudfread, libuhttpd, libuwsc, lua-lyaml, matio, mbuffer, netdata, openfpgaloader, perl-i18n, perl-locale-maketext-lexicon, perl-lwp-protocol-https, perl-mojolicious-plugin-authorization, perl-mojolicious-plugin-cspheader, perl-mojolicious-plugin-i18n, perl-mojolicious-plugin-securityheader, perl-mozilla-ca, perl-path-class, pistache, pkcs11-helper, prelink-cross, python-argon2-cffi, python-canopen, python-cbor2, python-filelock, python-flatbuffers, python-greenlet, python-modbus-tk, python-pyalsa, python-pysftp, python-regex, python-snappy, rtty, tinyproxy, udev-gentoo-scripts, unbound, vuejs, wlroots. New defconfigs: freescale_imx6ullevk, freescale_imx8qmmek, nanopi_neo4, nanopi_r1, nitrogen8mm, nitrogen8mn, olpc_xo1, olpc_xo175, roc_rk3399_pc, stm32mp157a_dk1, zynq_qmtech Issues resolved (http://bugs.uclibc.org): #10386: Add an option to put all compiled executables that show up on target/ in staging/ as well #11866: iniramfs file system fails to boot using Grub on EFI x86_64 #12666: Doesn't pick up a custom bash profile #12696: Uboot 2020.01 Problem loading Linux kernel on Nano PI NEO #12701: [patch] wpa_supplicant must depend on openssl #12711: host-localedef 2.30-20 fails to compile on fedora 32 (gcc 10.0.1) #12716: bio.h not found #12726: systemctl preset-all failed for ctrl-alt-del.target #12731: rtl8188eu not buildung for banana pi M1 (glib, systemd, 4.18.12) #12746: "sysdig" package description points to http://sysdig.org, which bounces to malware site #12751: OpenJdk package installation issues on target #12796: Update OpenSSL to Version 1.1.1g to patch CVE-2020-1967 #12811: bootstrap stuck and no login prompt 2020.02.12, released April 5, 2021 Important / security related fixes. Dependencies: Explicitly detect and bail out if PATH contains spaces or tabs. A number of packages fail to build in such setups, so explicitly inform about this. utils/scanpypi: Explicitly use python3 for compatibility with packages using python3 syntax in setup.py support/download: Fix tarball generation (from git/svn repos) including symlinks pointing to ./ Meson: Use correct C++ host compiler (rather than C compiler) Updated/fixed packages: asterisk, batman-adv, bind, ca-certificates, docker-containerd, dovecot, dovecot-pigeonhole, diffutils, efivar, git, gnuchess, gnutls, grub2, fakeroot, haserl, imagemagick, irqbalance, jasper, kodi, libcurl, libebml, libglib2, libjpeg, libopenssl, libupnp, libvips, lldpd, mariadb, mbedtls, mosquitto, nodejs, netsnmp, nettle, openldap, openmpi, openssh, opkg-utils, perl, php, privoxy, prosody, protobuf, python-aiohttp, python-django, python-lxml, python-pyyaml, python-rpi-ws281x, python3, redis, rpm, sconeserver, screen, sox, sqlcipher, squid, sysvinit, tor, transmission, tzdata, uboot, upx, util-linux, wireshark, wolfssl, wpa_supplicant, zstd Issues resolved (http://bugs.uclibc.org): #13516: utils/scanpypi: Failure when parsing diffoscope #13541: 2021.02.rc2: irqbalance: Daemon couldn't be bound to.. #13576: Issues compiling buildroot for 5x86 #13581: jpegsrc.v9d.tar.gz has changed hash #13616: tar file from git repository generation issue 2020.02.11, released February 17, 2021 Important / security related fixes. meson: Fix ccache detection handling when per-package builds are used. Fakeroot: Fix compatibility issue with glibc 2.33 Updated/fixed packages: atftp, busybox, cereal, connman, dhcpcd, dnsmasq, docker-cli, docker-engine, fakeroot, intel-mediadriver, intel-microcode, jasper, kodi-inputstream-adaptive, libbsd, libopenssl, linux-headers, mosquitto, orc, php, postgresql, privoxy, pugixml, python-bottle, python-django, python3, rauc, sox, subversion, tzdata, wireguard-linux-compat, wpa_supplicant, xenomai, xterm Issues resolved (http://bugs.uclibc.org): #13506: BR2_PACKAGE_DHCPCD missing directory creation 2020.02.10, released January 31st, 2021 Important / security related fixes. Download: Ensure git submodules are correctly fetched if enabled for a package with _GIT_SUBMODULES = YES and the host variant is downloaded first. Toolchain: Mark CodeSourcery Aarch64 2014.11 toolchain as not having libatomic. pkg-stats: Fix python 3.8+ deprecation warning. meson: Ensure ccache is not detected and used, as it may conflict with the ccache handling in Buildroot. New packages: libnpupnp Updated/fixed packages: bctoolbox, brltty, dbus, dovecot, dovecot-pigeonhole, gcc, gerbera, gmrender-resurrect, gst-omx, gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, gst1-rtsp-server, gst1-vaapi, gst1-validate, gstreamer1, gstreamer1-editing-services, igd2-for-linux, libclc, libllcp, libtorrent-rasterbar, libupnp, libupnpp, lpc32xxcdl, luarocks, mpd, nfs-utils, nodejs, openjpeg, openldap, opentracing-cpp, openvpn, p11-kit, paho-mqtt-c, php, poppler, postgresql, python3, runc, sudo, syslog-ng, systemd, tini, trace-cmd, tzdata, ushare, vlc, wavpack, wireguard-linux-compat, wolfssl, xapp_xload, xorriso, zic Removed packages: libupnp18 Issues resolved (http://bugs.uclibc.org): #13471: package/mpd/mpd.conf make use of path not created 2020.02.9, released December 27th, 2020 Important / security related fixes. Infrastructure: - cmake: fix host ccache handling for CMake 3.19 - meson: Forcibly disable binary stripping for target builds, enable for host builds - golang: Fix HOST / TARGET directories for per-package builds Defconfigs: Beaglebone Qt5: Fix ti-sgx related issues Updated/fixed packages: apitrace, arm-trusted-firmware, bustle, c-ares, ca-certificates, cdrkit, cryptopp, dhcpcd, docker-containerd, dtv-scan-tables, flare-engine, ghostscript, haproxy, imagemagick, imx-gpu-viv, jasper, jemalloc, jpeg-turbo, libcap, libcurl, libglib2, libgpiod, libkrb5, libopenssl, libplist, libressl, libuv, libuvw, lynx, mariadb, mbedtls, minidlna, monkey, musl, mutt, ncurses, netsnmp, nodejs, opencv3, openldap, openrc, opkg-utils, paho-mqtt-c, php, privoxy, proftpd, python-crc16, python-flask-cors, python-lxml, python-pip, python-pyparsing, python-pyqt5, qemu, qt5base, raptor, rauc, ruby, setserial, shadowsocks-libev, slirp, sqlcipher, ti-sgx-demos, tinycbor, vsftpd, wireless-regdb, wireshark, x11vnc, xen, xinetd, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #13276: libcap builds libcap.pc incorrectly #13316: beaglebone_qt5_defconfig: PowerVR fails to start #13341: Mistake in /etc/init.d/S70vsftpd 2020.02.8, released November 16th, 2020 Important / security related fixes. Updated/fixed packages: angularjs, argp-standalone, asterisk, bandwidthd, bitcoin, busybox, cryptsetup, darkhttpd, davfs2, docker-cli, docker-containerd, docker-engine, dovecot-pigeonhole, fastd, fbset, fbtft, freetype, gcc, ghostscript, gnuradio, grpc, gst1-plugins-bad, jsoncpp, keepalived, libass, libexif, libiqrf, libpam-tacplus, libraw, linux-backports, linux-firmware, lzlib, netsnmp, nginx, oniguruma, opencv3, openntpd, patchelf, php, postgresql, python-pyqt5, qt5base, rauc, redis, samba4, slirp, systemd, tcpdump, tmux, tor, webkitgtk, wireguard-linux-compat, wireshark, wpewebkit, xen, xorriso, zeromq, zxing-cpp Issues resolved (http://bugs.uclibc.org): #11931: Bugs in support/scripts/apply-patches.sh 2020.02.7, released October 12th, 2020 Important / security related fixes. meson: Correct SDK cross-compilation.conf file when per-package builds were used to build SDK. systemd: Use /run rather than /var/run for PID files in units. Toolchain: use Secure-PLT rather than BSS-PLT for PowerPC 32. support/script/pycompile: Rework logic to ensure .pyc files contain absolute target paths, fixing code inspection at runtime when executed with cwd != '/'. support/scripts/setlocalversion: Correct Mercurial output to match behaviour with Git. support/scripts/apply-patches.sh: Use patch --no-backup-if-mismatch, so we no longer blindly have to remove *.orig files after patching, fixing issues with packages containing such files. Updated/fixed packages: bandwidthd, barebox, bash, bison, brotli, cifs-utils, cryptsetup, dhcpcd, dhcpdump, docker-cli, docker-engine, ecryptfs-utils, efl, fail2ban, freetype, gcc, gdb, ghostscript, gnutls, go, gst1-plugins-base, gst1-plugins-ugly, ipmitool, libhtp, libraw, libssh, libxml2, libxml-parser-perl, localedef, lua, memcached, mesa3d, meson, minidlna, nginx, nodejs, nss-pam-ldapd, openvmtools, php, postgresql, python, python-aenum, python-autobahn, python-engineio, python-fire, python-pymodbus, python-scapy, python-semver, python-sentry-sdk, python-socketio, python-texttable, python-tinyrpc, python-txtorcon, python3, qt5base, runc, samba4, strace, supertux, suricata, systemd, vlc, wayland-protocols, wireguard-linux-compat, wireshark, xserver_xorg-server, zeromq, zstd Issues resolved (http://bugs.uclibc.org): #12911: usb_modeswitch installation race condition #13251: cryptsetup does not work on branch 2020.02 following.. 2020.02.6, released September 5th, 2020 Important / security related fixes. Fix a 2020.02.5 build regression in busybox when systemd (and not less) are enabled because of missing infrastructure. Updated/fixed packages: alsa-utils, avahi, busybox, cups, docker-cli, graphite2, imagemagick, libeXosip2, mbedtls, nvidia-driver, paho-mqtt-c, python-django, systemd, uclibc, usb_modeswitch, wolfssl Issues resolved (http://bugs.uclibc.org): #12911: usb_modeswitch installation race condition 2020.02.5, released August 29th, 2020 Important / security related fixes. Infrastructure: Ensure RPATH entries that may be needed for dlopen() are not dropped by patchelf. BR_VERSION_FULL/setlocalversion (used by make print-version and /etc/os-release): Properly handle local git tags Updated/fixed packages: apache, at91bootstrap3, bind, boost, busybox, capnproto, chrony, collectd, cpio, cryptsetup, cups, cvs, dbus, docker-engine, domoticz, dovecot, dovecot-pigeonhole, dropbear, efl, elixir, f2fs-tools, ffmpeg, gd, gdk-pixbuf, ghostscript, glibc, grub2, gst1-plugins-bad, hostapd, iputils, jasper, json-c, libcurl, libwebsockets, linux, live555, mesa3d, mosquitto, mpv, nodejs, opencv, opencv3, openjpeg, patchelf, perl, php, postgresql, python-django, python-gunicorn, python-matplotlib, ripgrep, rtl8188eu, rtl8821au, ruby, shadowsocks-libev, squid, tpm2-abrmd, tpm2-tools, trousers, uacme, webkitgtk, wireshark, wolfssl, wpa_supplicant, wpewebkit, xen, xlib_libX11, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #12876: nodejs fails to build when host-icu has been built before #13111: python-gunicorn: missing dependency on python-setuptools #13121: wpa_supplicant fails to build without libopenssl enabled #13141: Target-finalize fail with "depmod: ERROR: Bad version passed" #13156: package live555 new license 2020.02.4, released July 26th, 2020 Important / security related fixes. Toolchain: - Make external toolchain version check also work for toolchains configured with --with-gcc-major-version-only - Do not handle SOURCE_DATE_EPOCH in toolchain wrapper if the compiler supports it, fixing an issue with precompiled headers - Ensure debug libs from external toolchains are not installed into target if debugging is disabled Download: - Correct reproducibility issue in handling of git submodules for older git versions. - Fix file locking over NFS fs: Ensure cpio archive element order is reproducible Br2-external: Fix error reporting for invalid br2-external trees Per-package: - Fix an issue with python3 sysconfig data not getting correctly expanded - Fix per-package building for packages using the qmake infrastructure Updated/fixed packages: a10disp, asterisk, bind, cdrkit, checkpolicy, clamav, dbus, docker-cli, docker-engine, dvb-apps, e2fsprogs, exim, exiv2, freerdp, gnutls, go, grub2, gssdp, gst1-plugins-good, gst1-plugins-ugly, gupnp, intel-microcode, iproute2, irrlicht, iwd, jq, kodi, libcamera, libconfuse, libcurl, libglib2, libhttpserver, libmicrohttpd, libopenssl, libvncserver, libxml2, libxmlrpc, lxc, mbedtls, mesa3d, meson, mongodb, mtools, mutt, nghttp2, ngircd, nodejs, ntp, open-plc-utils, open2300, openjdk-bin, openssh, oracle-mysql, paho-mqtt-c, pcre, php, poco, prosody, putty, python-twisted, python-urllib3, python-validators, python3, qt5xmlpatterns, redis, rpi-firmware, rtl8821au, samba4, sdl2, sqlite, squid, syslog-ng, systemd, tcpreplay, tinydtls, upmpdcli, upx, vlc, webkitgtk, wireguard-linux-compat, wireshark, wpebackend-fdo, wpewebkit, zstd Issues resolved (http://bugs.uclibc.org): #12941: Python GObject fails to build when using BR2_PER_PACKAGE_.. #12946: Grub: Decompressor is too big. #12986: Mtools: Error converting to codepage 850 #13001: openjdk-bin replaces libfreetype.so from host-freetype #13011: Incorrect selection of gcc version #13026: rpi-firmware: must not rename start files #13031: nodejs: RangeError at new ArrayBuffer() #13046: Optimize for fast -Ofast is not compliant 2020.02.3, released June 3rd, 2020 Important / security related fixes. Fix various build issues of host packages on hosts using GCC 10. Updated/fixed packages: arm-trusted-firmware, audit, bind, binutils, bison, clamav, crda, dovecot, dtc, efl, elf2flt, erlang, fakeroot, ffmpeg, fmc, fmlib, freerdp, gcc, git, glib-networking, gnupg, leveldb, libexif, libssh2, libusb-compat, linux-headers, lrzip, ltrace, mariadb, mesa3d, mp4v2, openldap, openocd, perl, php, prosody, python-pycryptodomex, python-pyqt5, qemu, rpi-firmware, rustc, speexdsp, sysrepo, systemd, tremor, vboot-utils, wireshark, xen Removed packages: python-pycrypto Issues resolved (http://bugs.uclibc.org): #12361: Init system (systemd) kills login on Raspberry Pi Zero #12656: bison fails to relocate with relocate-sdk.sh #12671: leveldb won't detect that snappy is present (static.. #12691: host-rust build fails #12831: RPI-firmware package: DTB-overlay dependency 2020.02.2, released May 12th, 2020 Important / security related fixes. Musl: Disallow on PPC64 cores without AltiVec support (E.G. e5500). fs/cpio: Correctly handle booting with 'console=' release: Ensure temporary .br2-external.* files are not included in the release tarball Defconfigs: Fix various mistyped config options, or config options where the dependencies were no longer met. Updated/fixed packages: apache, azure-iot-sdk-c, binutils, boinc, c-ares, cvs, docker-cli, docker-containerd, docker-engine, domoticz, e2fsprogs, efl, evtest, exim, ffmpeg, freerdp, gcc, gflags, glibc, gnuconfig, haproxy, imx-gpu-2d, irrlicht, jpeg kodi-pvr-vuplus, libarchive, libcoap, libfpm-extra, libglib2, libhtp, libid3tag, libinput, libmad, libopenssl, libsepol, libssh, libv4l, libvncserver, libwpe, localedef, mariadb, matchbox, mbedtls, mc, mesa3d-headers, meson, midori, msgpack, netsnmp, nginx, ogre, openjdk, openldap, openvpn, p7zip, paho-mqtt-c, php, polkit, python, python-attrs, python-crossbar, python-dpkt, python-flask, python-future, python-iptables, python-jedi, python-markdown2, python3, qemu, qpdf, qt5, samba4, squashfs, squid, strongswan, suricata, tzdata, util-linux, vlc, wget, webkitgtk, wireguard-linux-compat, wireshark, wpebackend-fdo, wpewebkit, zic Issues resolved (http://bugs.uclibc.org): #11866: initramfs file system fails to boot using Grub on EFI x86_64 #12271: python-iptables runtime dependencies #12726: systemctl preset-all failed for ctrl-alt-del.target #12751: OpenJdk package installation issues on target #12796: Update OpenSSL to Version 1.1.1g to patch CVE-2020-1967 #12811: bootstrap stuck and no login prompt #12841: util-linux/sfdisk 2.35.1 fails on sector-size header 2020.02.1, released April 10th, 2020 Important / security related fixes. core: Also fixup /lib references in libtool .la files, similar to how it is done for /usr/*. Various fixes for builds with per-package target/host directories. toolchain: Fix kernel headers validation check for external toolchains. Fix make 4.3+ compatibility in external toolchain logic. fs/initramfs: fix show-info so it also shows the usual rootfs-related variables. Updated/fixed packages: arm-trusted-firmware, barebox-aux, bluez5_utils, bubblewrap, busybox, civetweb, cog, collectd, ffmpeg, gcc, gnutls, gssdp, gvfs, haproxy, hiredis, hostapd, kmscube, kodi-screensaver-rsxs, libical, libinput, libexif, libopenssl, libsndfile, linux, linux-tools, llvm, localedef, mcrypt, mesa3d, meson, monit, nftables, ntp, opencv3, oprofile, php, pinentry, polkit, pure-ftpd, python-pyyaml, qt5, quagga, radvd, rcw, redis, rocksdb, samba4, screen, sdbusplus, swupdate, sysdig, sysklogd, syslinux, syslog-ng, tor, tslib, uacme, util-linux, vala, vlc, wireguard-linux-compat, wireguard-tools, wireshark, wpa_supplicant, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #12711: host-localedef 2.30-20 fails to compile on fedora 32 #12746: "sysdig" package description points to http://sysdig.org, .. 2020.02, released March 8th, 2020 Various fixes. br2-external: Fix compatibility with make 4.3+ Updated/fixed packages: bash, bcm2835, binutils, cups, erlang-p1-acme, fbgrab, gr-osmosdr, gst1-plugins-base, gst1-validate, gstreamer1, guile, jhead, libdrm, libevdev, libinput, libnss, libsndfile, libvncserver, linux-firmware, mesa3d, nodejs, openjdk-bin, openvmtools, optee-test, patch, php, piglit, pppd, python-django, qemu, qt5base, ruby, ser2net, swupdate, thrift, zziplib Removed packages: classpath, jamvm Issues resolved (http://bugs.uclibc.org): #12606: fbgrab location has changed 2020.02-rc3, released March 2nd, 2020 Fixes all over the tree. Infrastructure: Rework file list handling to fix race conditions when building with per-package target and host directories and top-level parallel builds. Updated/fixed packages: aufs, binutils, blktrace, brltty, cairo, dnsmasq, docker-compose, elf2flt, exim, exiv2, git, kodi-inputstream-adaptive, libarchive, libcgroup, libgdiplus, libssh2, libvncserver, libvorbis, linknx, linux-firmware, lxc, lz4, mosquitto, openjpeg, openrc, poco, proftpd, pure-ftpd, python3, python-multidict, python-setuptools-scm-git-archive, qpdf, qt5tools, rdesktop, rocksdb, shellinabox, squid, suricata, swig, systemd, taglib, util-linux, wireshark, zsh Issues resolved (http://bugs.uclibc.org): #12571: ltp-testsuite : Build failure #12576: 2020.02-RC1: error while loading shared libraries: ... #12581: 2020.02-rc1 glibc failing to build on fedora 31 2020.02-rc2, released February 26th, 2020 Fixes all over the tree. Toolchain: Ensure strong SSP can only be enabled if the (external) toolchain supports it. Fix a race condition related to creating the output/staging symlink on systems with coreutils < 8.27. Drop support for the (end of life) Qt 5.6 variant. Updated/fixed packages: at, armadillo, audiofile, bash, busybox, erlang, fail2ban, fluidsynth, ipsec-tools, jpeg-turbo, kvm-unit-tests, libftdi1, libinput, libsvgtiny, libtomcrypt, libupnpp, libxml2, linux-tools, luv, mbedtls, mesa3d, minicom, openvmtools, php, qt5, qt5webengine, qwt, radvd, rcw, sdbusplus, systemd, tpm2-tss, vorbis-tools Issues resolved (http://bugs.uclibc.org): #12581: 2020.02-rc1 glibc failing to build on fedora 31 2020.02-rc1, released February 18th, 2020 Fixes all over the tree and new features. Add experimental support for building with a per-package target and host directory. This still has some rough edges, but brings a number of advantages: - Packages will only be able to access the explicitly listed dependencies and not any other packages that happen to be built before, ensuring correct dependency information in Buildroot. - Possibility for top-level parallel builds, speeding up builds on multicore machines. Core: Ensure package-file-lists data is correct after incremental builds as well. Architecture: Add support for ARC-HS38 with 64bit multiplier variant, allow building glibc for big endian ARC, handle 16KB MMU page size for ARC in toolchain wrapper. Toolchain: Add binutils 2.33.1, GCC 7.5.0, Arm 9.2-2019.12 toolchains, ARC 2019.09 toolchain. Allow using custom kernel headers newer than what is known by Buildroot. pkg-stats: Support for CVE vulnerability reporting by comparing to NVD database. Reproducible builds: The go -trimpath option is now used to get rid of absolute build paths, __FILE__ and __BASE_FILE__ defines are now handled in the toolchain wrapper. Systemd: Build host variant and use systemctl to automatically enable unit files rather than manually managing symlinks. Util-linux: Ensure that hwclock is built without GPLv3 code. Notice that builds with hwclock has contained GPLv3-licensed code since util-linux 2.30 (Buildroot 2017.08+) New defconfigs: Beelink GS1, Raspberrypi4 64bit New packages: alura, avro-c, bubblewrap, cctz, cereal, cpuburn-arm, elixir, erlang-base64url, erlang-idna, erlang-jose, erlang-p1-acme, erlang-p1-mqtree, erlang-p1-yconf, fluid-soundfont, fluidsynth, gcnano-binaries, gensio, glslsandbox-player, libargon2, libmodsecurity, libpam-nfc, libtelnet, lua-codegen, lua-livr, lua-livr-extra, lua-rotas, lua-silva, mfoc, network-manager-openvpn, nginx-modsecurity, perl-crypt-openssl-aes, perl-math-prime-util, pipewire, ptm2human, python-aenum, python-aiohttp-debugtoolbar, python-aiohttp-mako, python-aiologstash, python-aiosignal, python-aiozipkin, python-async-lru, python-avro, python-bunch, python-crontab, python-dnspython, python-entrypoints, python-esptool, python-frozenlist, python-future, python-gitdb, python-janus, python-lockfile, python-logstash, python-nested-dict, python-pbr, python-pyaes, python-pydantic, python-smmap2, python-sockjs, python-zc-lockfile, raspi-gpio, rocksdb, sdbusplus, spidermonkey, thermald, ti-sgx-libgbm, tinyssh, tio, umtprd, weston-imx, wireguard-linux-compat, wireguard-tools, xdg-dbus-proxy Removed packages: bluez_utils, celt051, erlang-p1-iconv, fis, gadgetfs-test, libplayer, gstreamer, gst-ffmpeg, gst-fsl-plugins, gst-omapfb, gst-plugins-bad, gst-plugins-base, gst-plugins-good, gst-plugins-ugly, perl-digest-md5, perl-mime-base64, perl-net-ping, python-scapy3k, wireguard Issues resolved (http://bugs.uclibc.org): #11906: the new version of mesa3d cannot support etnaviv when.. #11996: opencv3 SIGILL on Cortex-A5 with VFPv4-D16 #12121: PyQt5.QtSerialPort and other modules not being built #12256: package tar is outdated (1.29 is 3 years old #12286: Can't import gobject in python 3.8 #12376: python-scapy3k is deprecated #12386: carriage return issue when "make menuconfig" #12441: qt5webengine build error: asm/errno.h: No such file or.. #12446: Buildroot fails to finish installing packages #12456: qtvirtualkeyboard: No such file or directory #12461: libglib2 build files with deep directory structure #12481: minicom fails when output directory path contains "m4" #12501: libnss-3.49.1: ld error: multiple definition of `gcm_.. #12526: host-nodejs 12.14.1: configure fail: AttributeError: .. #12536: Linux-Headers extracting failure #12546: Ninja 1.10 build Error 2019.11.3, released April 10th, 2020 Important / security related fixes. core: Fix compatibility with make 4.3+. Also fixup /lib references in libtool .la files, similar to how it is done for /usr/*. toolchain: Fix kernel headers validation check for external toolchains. fs/initramfs: fix show-info so it also shows the usual rootfs-related variables. Updated/fixed packages: barebox-aux, bluez5_utils, busybox, civetweb, cog, collectd, ffmpeg, gcc, gnutls, gssdp, gvfs, haproxy, hiredis, hostapd, kmscube, libical, libopenssl, libsndfile, linux-tools, llvm, monit, ntp, php, pure-ftpd, radvd, redis, samba4, screen, sysdig, syslinux, syslog-ng, tor, uacme, util-linux, vala, vlc, wpa_supplicant, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #12746: "sysdig" package description points to http://sysdig.org, .. 2019.11.2, released March 16th, 2020 Important / security related fixes. Core: Ensure package-file-lists data is correct after incremental builds as well. Fix a race condition related to creating the output/staging symlink on systems with coreutils < 8.27. Toolchain: ARC tools bumped to arc-2019.09. Br2-external: Fix patch handling when external linux-extension packages are used. Fix compatibility with make 4.3+ Util-linux: Ensure that hwclock is built without GPLv3 code. Notice that builds with hwclock has contained GPLv3-licensed code since util-linux 2.30 (Buildroot 2017.08+) Updated/fixed packages: armadillo, at, bcm2835, binutils, blktrace, bluez-alsa, bootstrap, brltty, busybox, cairo, clamav, cog, cups, czmq, dnsmasq, docker-containerd, dovecot, dovecot-pigeonhole, e2fsprogs, elf2flt, eudev, exim, exiv2, fbgrab, gettext-tiny, glibc, go, grep, gst1-validate, guile, imagemagick, jhead, jpeg-turbo, kvm-unit-tests, lapack, libarchive, libcgroup, libdrm, libevent, libexif, libftdi1, libgdiplus, libjpeg, libsigrok, libsndfile, libssh2, libsvgtiny, libvncserver, libvorbis, libxml2, libxslt, linknx, lxc, lz4, mariadb, mbedtls, meson, mongoose, mosquitto, musl, ncurses, nodejs, ntfs-3g, ogre, opencv3, openjdk, openjpeg, openrc, openswan, openvmtools, optee-test, patch, php, piglet, postgresql, pppd, proftpd, pure-ftpd, python-django, python-pyqt5, python-setuptools-scm-git-archive, python3, qemu, qt5base, qt5tools, qt5virtualkeyboard, qt5webengine, qwt, rdesktop, ruby, runc, samba4, shellinabox, skeleton-init-openrc, smartmontools, spdlog, sqlcipher, squid, suricata, swig, swupdate, sysklogd, taglib, thrift, ti-cgt-pru, uclibc, util-linux, vorbis-tools, webkitgtk, wireshark, wpebackend-fdo, wpewebkit, xen, xserver_xorg-server, zeromq, zsh, zziplib Issues resolved (http://bugs.uclibc.org): #11996: opencv3 SIGILL on Cortex-A5 with VFPv4-D16 #12331: meson issue #12456: qtvirtualkeyboard: No such file or directory #12461: libglib2 build files with deep directory structure #12481: minicom fails when output directory path contains "m4" #12606: fbgrab location has changed 2019.11.1, released January 12th, 2020 Important / security related fixes. Infrastructure: kconfig: Fix reconfigure logic, python: Ensure correct compiler and linker flags are used for compiled code utils/scanpypi: Remind users to update DEVELOPERS Defconfigs: imx6-sabresd: Fix the Qt5 display names, imx8: Drop extra copy of U-Boot DTB Updated/fixed packages: acsccid, bitcoin, boost, busybox, cc-tool, cmocka, cpio, cups, dante, dialog, dillo, docker-cli, docker-containerd, docker-engine, easy-rsa, ebtables, ecryptfs-utils, efl, ffmpeg, gdb, git, glibc, gnupg2, go, gpsd, grpc, gst1-plugins-bad, iputils, jasper, kf5-kcoreaddons, leveldb, libarchive, libfribi, libgit2, libkrb5, libp11, librsvg, libssh, libtomcrypt, libuio, libv4l, lirc-tools, log4cplus, lrzip, lvm2, mali-t76x, matchbox-desktop, mender-grubenv, mmc-utils, mosquitto, nodejs, ntp, openipmi, opencv3, openpowerlink, openrc, pango, perl-sys-cpu, pimd, postgresql, pulseaudio, python-brotli, python-coherence, python-crc16, python-django, python-dpkt, python-gobject, python-pyasn-modules, python-pypcap, python-pyqt5, python-subprocess32, python3, qpdf, qt-webkit-kiosk, qt5virtualkeyboard, qt5webengine, quota, rabbitmq-c, rauc, rpcbind, rtl8821au, runc, rygel, samba4, sdl2, setserial, snort, spidev_test, sunxi-mali-mainline-driver, syslog-ng, sysrepo, tcllib, tftpd, usbmount, w_scan, wavpack, wsapi, wsapi-fcgi, wsapi-xavante, x265, xserver_xorg-server, ytree, zip Issues resolved (http://bugs.uclibc.org): #12121: PyQt5.QtSerialPort and other modules not being built #12286: Can't import gobject in python 3.8 2019.11, released December 1st, 2019 Various fixes. Infrastructure: Make HOST__DL_OPTS inherit from _DL_OPTS by default, just like it is done for a number of other package variables. Add _KEEP_PY_FILES to exclude specific python .py files from the removal done by BR2_PACKAGE_PYTHON{,3}_PYC_ONLY for the (rare) case where the .py files are needed at runtime rather than .pyc. Updated/fixed packages: am33x-cm3, bind, collectd, go, gob2, gst1-plugins-bad, haproxy, jasper, jpeg-turbo, libdrm, libftdi, libftdi1, libnss, libselinux, libstrophe, lzma, minicom, network-manager, nodejs, oniguruma, opencv3, openvmtools, perl-gdgraph, perl-gdtextutil, prosody, python-cchardet, systemd, tiff, wolfssl, Issues resolved (http://bugs.uclibc.org): #11416: check-uniq-files staging issue #12146: Oprofile runtime issue #12166: Compiling nodejs for SAMA5D3 always crash with illegal inst.. #12171: Python-opencv needs config.py and config-3.7.py to run.. #12196: duma package #12211: host-nodejs 10.15.3 package fail to build #12316: tzdata fails to install with empty "default local time" #12326: network-manager build fails with missing glib error #12366: Gstreamer1 gst1-plugins-bad do not compile with RPI-Userland 2019.11-rc3, released November 24th, 2019 Fixes all over the tree. Updated/fixed packages: asterisk, clamav, domoticz, faifa, gerbera, kmod, kvm-unit-tests, libupnp18, linux-serial-test, lsof, ltp-testsuite, lxc, mesa3d, mesa3d-headers, perl, php, postgresql, qemu, rauc, redis, rpcbind, spice, spice-protocol, systemd, tftpd, waylandpp, webkitgtk, zip 2019.11-rc2, released November 16th, 2019 Fixes all over the tree. Toolchain: ARC tools bumped to arc-2019.09-rc1, ensure external toolchain kernel headers version check correctly stop the build on mismatch Meson: Fix generation of global cross-compilation.conf Download: Also use the package download method for extra downloads from the same site, so it does not get confused by URLs containing '+' Defconfigs: Fix boot issue for beaglebone Updated/fixed packages: bird, chrony, connman, dhcp, domoticz, dropwatch, dtc, elf2flt, gettext-tiny, glog, intel-microcode, ipsec-tools, jailhouse, kodi, libfribi, libmbim, libressl, libsigrokdecode, libsvgtiny, linux-serial-test, ltp-testsuite, lvm2, lxc, mariadb, mesa3d, minizip, ndisc6, neardal, ninja, ofono, openvmtools, oracle-mysql, qt5wayland, safeclib, socat, sudo, systemd, wpewebkit, xserver_xorg-server 2019.11-rc1, released November 5th, 2019 Fixes all over the tree and new features. Dependencies: Gcc/g++ 4.8 or newer is now required on the build host. Ensure host has JSON::PP perl module installed if webkitgtk/wpewebkit packages are enabled as it is needed during their build process. Toolchain: Add support for the D programming language (GCC 9.x, Glibc). GCC 9.x updated to 9.2.0, Glibc updated to 2.30, Musl updated to 1.1.24, uClibc-ng updated to 1.0.32, ARC toolchain updated to arc-2019.09-eng002. Musl: Add a patch to add support for sched_{get,set}scheduler() and sched_{get,set}param() for compatibility. Generate check-headers program under BUILD_DIR rather than /tmp to fix issues with distributions mounting /tmp noexec. Also copy libssp.so for external toolchains if SSP to handle toolchains providing SSP support in libssp rather than in the C library New defconfigs: Beaglebone AI, FriendlyARM Nanopi NEO Plus2, Libre Computer "La Frite", QEMU Armv7-A with trustzone/OP-TEE, STM32MP157 Discovery Kit Arch: RISC-V: Default to a sensible floating point ABI based on the selected ISA extensions rather than always defaulting to ILP32/64 Graph-size: Package sizes are now shown in human readable form (Kib/Mib/Gib) rather than always in Kib. Binary (KB/MB/GB) format can be selected using the --binary option. The cut-off limit for classifying packages as "other" is now configurable using the --size-limit option. Br2-external: Linux kernel extensions can now also be provided in an external tree by adding packages under linux/linux-ext-*.mk. See the manual for details. Fakeroot now works correctly under Microsoft Windows 10 Services for Linux, which does not provide SYSV IPC support The check-uniq-files logic which would complain if multiple packages would touch the same files has been removed as it causes issues in certain situations (when packages are rebuilt) and the issue is no longer considered a problem for toplevel parallel builds as those will use a per-package staging/target directory. With this removed, Python is no longer required for a basic build (only for optional scripts). support/scripts/genimage.sh will no longer make a copy of TARGET_DIR, speeding up post-build/image scripts. The runtime test logic now uses Python 3.x. A 'v' prefix has been dropped from the _SOURCE variable for a number of packages to match the version numbers used by https://release-monitoring.org New packages: caps, collectl, dav1d, fstrcmp, ima-evm-utils, jitterentropy-library, kodi-vfs-rar, kodi-vfs-sftp, libavl, libhttpserver, libmspack, libnetconf2, libolm, libyang, linux-serial-test, lrzip, mdevd, minimodem, musl-fts, netifrc, ogre, openlayers, python-aioredis, python-asgiref, python-backports-functools-lru-cache, python-bluezero, python-brotli, python-channels, python-channels-redis, python-colorlog, python-daphne, python-django-enumfields, python-jaraco-functools, python-kiwisolver, python-msgfy, python-rpi-ws281x, python-setuptools-scm-git-archive, python-simplelogging, python-soupsieve, python-sqliteschema, python-sqlparse, python-tqdm, python-webencodings, qt5webview, restclient-cpp, ripgrep, snmpclitools, sunwait, sysrepo, uacme, utf8proc, uvw, ytree Removed packages: alljoyn, alljoyn-base, alljoyn-tcl-base, devmem2, eventlog, kodi-audiodecoder-opus, kodi-screensaver-planestate, kodi-visualisation-waveforhue, python-pysnmp-apps, riscv-pk, ustr Issues resolved (http://bugs.uclibc.org): #9881: systemd-resolved not setting resolv.conf link #10171: devmem2 w (word) is 8 bytes in x86 64 systems #10586: musl gcc has ifunc enabled when musl doesn't support it #10806: Allow nfs-utils to use ipv6 #11366: [2018.08] SysV IPC not available for fakeroot on WSL #11411: check-uniq-files target issue #11766: Console (getty) issues with systemd #11781: mariadb build error #12031: Build of cups-filters fails while linking, apparently due.. #12116: console prompt does not appear after login #12141: eudev package is missing "render" and "kvm" groups #12181: dropbear: norootlogin (-w) no longer works when PAM is enabled #12186: Raspberry Pi Zero-W build fails on newer kernel versions #12191: cmake BUILDDIR #12241: Permission denied while running "make" #12261: sudo versions prior to 1.8.28 are affected. #12276: make clean/distclean does not remove BR2_DL_DIR and BR2_HOST_DIR #12281: Custom configuration fails to build (based on raspberrypi3_.. 2019.08.3, released December 7th, 2019 Important / security related fixes. Infrastructure: Make HOST__DL_OPTS inherit from _DL_OPTS by default, just like it is done for a number of other package variables Add _KEEP_PY_FILES to exclude specific python .py files from the removal done by BR2_PACKAGE_PYTHON{,3}_PYC_ONLY for the (rare) case where the .py files are needed at runtime rather than .pyc. Fix -reconfigure handling for packages using the kconfig infrastructure. Toolchain: ensure external toolchain kernel headers version check correctly stop the build on mismatch Deconfigs: beaglebone: fix boot issue Updated/fixed packages: am33x-cm3, asterisk, bind, chrony, clamav, cmocka, collectd, connman, dhcp, dropwatch, faifa, gettext-tiny, gob2, haproxy, intel-microcode, ipsec-tools, jailhouse, jasper, jpeg-turbo, kodi, kvm-unit-tests, libftdi, libftdi1, libnss, libressl, libstrophe, libsvgtiny, lvm2, lzma, mariadb, minicom, mosquitto, neardal, ninja, nodejs, oniguruma, openvmtools, oracle-mysql, perl-gdgraph, perl-gdtextutil, php, postgresql, prosody, python-cchardet, python-django, qt5wayland, rabbitmq, rauc, redis, rpcbind, socat, spice, spice-protocol, tftpd, tiff, webkitgtk New packages: libmspack Issues resolved (http://bugs.uclibc.org): #12166: Compiling nodejs for SAMA5D3 always crash with illegal inst.. #12171: Python-opencv needs config.py and config-3.7.py to run.. #12211: host-nodejs 10.15.3 package fail to build #12316: tzdata fails to install with empty "default local time" 2019.08.2, released November 9th, 2019 Important / security related fixes. Toolchain: Also copy libssp.so for external toolchains if SSP to handle toolchains providing SSP support in libssp rather than in the C library Download: Also use the package download method for extra downloads from the same site, so it does not get confused by URLs containing '+' Fakeroot now works correctly under Microsoft Windows 10 Services for Linux, which does not provide SYSV IPC support utils/test-pkg: ensure to exit with an error upon failure Updated/fixed packages: asterisk, azmq, binutils, cups-filters, domoticz, dtc, duma, elf2flt, eudev, exfat, exfat-utils, fakeroot, fdk-aac, file, freerdp, gcc, gd, ghostscript, go, gpsd, grpc, gst1-plugins-base, gvfs, icu, intel-microcode, kvm-unit-tests, libfribidi, libnspr, libnss, libopenssl, libpcap, libpciaccess, librsvg, libseccomp, libsigrok, libtorrent, libunwind, libva, linux-tools, lua-sdl2, lxc, minizip, mjpegtools, mongoose, mono, nbd, nfs-utils, php, piglit, python, python-autobahn, python-pysnmp-apps, python-tornado, python3, qemu, qt5base, ruby, safeclib, samba4, sdl_mixer, sox, sudo, suricata, systemd, tcpdump, unscd, util-linux, vdr-plugin-vnsiserver, vtun, wireshark, xvisor, yaffs2utils Issues resolved (http://bugs.uclibc.org): #11366: [2018.08] SysV IPC not available for fakeroot on WSL #12261: sudo versions prior to 1.8.28 are affected 2019.08.1, released October 3rd, 2019 Important / security related fixes. Defconfigs: AArch64-efi: Fix grub configuration, Beaglebone: Use default console settings Dependencies: Ensure host has JSON::PP perl module installed if webkitgtk/wpewebkit packages are enabled as it is needed during their build process. Toolchain: Generate check-headers program under BUILD_DIR rather than /tmp to fix issues with distributions mounting /tmp noexec. Updated/fixed packages: asterisk, augeas, axel, bind, bwm-ng, cups, cups-filters, docker-cli, docker-engine, docker-proxy, e2fsprogs, eudev, exim, expat, gcc, go, haveged, ifplugd, joe, kf5-extra-cmake-modules, kf5-modemmanager-qt, kf5-networkmanager-qt, libcamera, libcurl, libgcrypt, libglib2, libgpg-error, libnspr, libnss, libopenssl, logrotate, luksmeta, mariadb, mbedtls, mongodb, mosquitto, ncurses, nfs-utils, nghttp2, nodejs, openvmtools, php, protobuf, putty, qemu, samba4, snort, swupdate, systemd-bootchart, thttpd, uclibc, unzip, util-linux, wireshark Issues resolved (http://bugs.uclibc.org): #10806: Allow nfs-utils to use ipv6 #11781: mariadb build error #12031: Build of cups-filters fails while linking, apparently due.. #12141: eudev package is missing "render" and "kvm" groups #12241: Permission denied while running "make" 2019.08, released September 1st, 2019 Various fixes. Defconfigs: Removed nanopc t4, nanopi m4 and neo4, pine64 rockpro64 and raxda rock pi4 as they rely on a ARM32 toolchain on the build host to build ATF. These defconfigs will be added back once a package providing such toolchain is available. Also dropped ts4800 defconfig as it does not build with GCC >= 8.x. Updated/fixed packages: libxcb, php, python-numpy, webkitgtk, wpewebkit, xfont_font-util Issues resolved (http://bugs.uclibc.org): #12156: buildroot-2019.08-rc3 does not build for Pi Zero W 2019.08-rc3, released August 28th, 2019 Fixes all over the tree. Updated/fixed packages: clamav, dovecot, dovecot-pigeonhole, gcc, intel-microcode, libmicrohttpd, libmodplug, mpg123, nginx, openldap, python, qemu, samba4, squid, strace, vlc Issues resolved (http://bugs.uclibc.org): #11686: fbdev_drv.so: undefined symbol: shadowUpdatePackedWeak,.. 2019.08-rc2, released August 20th, 2019 Fixes all over the tree. Compile fixes for a number of defconfigs. Updated/fixed packages: apache, autofs, batctl, batman-adv, bind, collectd, cwiid, dahdi-linux, dahdi-tools, daq, dehydrated, dhcp, dtc, efl, enlightenment, evtest, giflib, gnutls, go, gst-plugins-bad, gst-plugins-base, gst1-plugins-bad, gst1-plugins-base, gst1-rtsp-server, gtkmm3, gupnp, harfbuzz, imagemagick, lftp, libbsd, libcpprestsdk, libdnet, libfm, libgit2, libgtk2, libgtk3, libpri, librsvg, libss7, libssh2, libwpe, lua-cqueues, metacity, micropython, mpd, mpg123, musl, mpv, openblas, openbox, opencv, pango, pcmanfm, piglit, pigpio, pinentry, postgresql, qemu, qt5base, qt5enginio, qt5multimedia, qt5serialbus, quagga, quazip, rrdtool, rygel, samba4, stellarium, tcpreplay, ti-gfx, vte, wampcc, wilink-bt-firmware, wireless-regdb, wpebackend-fdo, xscreensaver Removed packages: libamcodec, odroid-mali, odroid-scripts Issues resolved (http://bugs.uclibc.org): #9481: NetworkManager/Ping unable to resolve domains #10566: php.mk is missing option --with-pgsql #10861: Package batman_adv Makefile is missing include header direct.. #11641: linux kernel .config timestamp always out of date fixed with.. #11671: russian locale ru_RU:145: LC_TIME: syntax error #11701: recuuring of usr and in bin shortcuts are created #11741: pigpio does not build host-pigpio #11876: automount using host mount/umount #11881: Build breaks with lftp package enabled and libexpat1-dev inst.. #11921: dahdi fails to build #11936: libcpprestsdk should install to staging #11946: wilink-bt-firmware: moved from github to http://git.ti.com/ti-bt #11961: libpri build failure #12086: dhcp shared libraries not installed to target #12096: tcpreplay: build fails if libdumbnet-dev is installed in the.. #12106: daq: build fails if libdumbnet-dev is installed in the host #12126: vc4 has neon as hard dependency 2019.08-rc1, released August 9th, 2019 Fixes all over the tree and new features. toolchain: ARC toolchain updated to 2019.03 (binutils 2.32.51 / GCC 8.3.1 / glibc 2.29), ARM AAarch64/ARM toolchains updated to 2019.03. Add GCC 9.1.0, remove GCC 4.9 and 6.5, add GDB 8.3, remove GDB 7.12 and 8.0.1, default to GDB 8.2, GCC 8.3.0. Musl updated to 1.1.23, bringing support for RISC-V 64. Architectures: Internal toolchain support for C-SKY, support for ARC HS48 v3.1 and HS38 with Quad MAC & FPU, support for ARM A76, A76/A55 big.LITTLE, emag, neoverse-N1, phecda and tsv110. Filesystems: Pass extra pax options to tar for binary reproducibility. Build host-cpio for the --reproducible option support when BR2_REPRODUCIBLE is enabled. Genimage updated to version 11, bringing GPT support. Br2-external: Add support for injecting additional options to the list of preconfigured external toolchains and libjpeg and openssl providers using files under provides/. See the manual for details. Ensure custom _OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS are passed before the standard exclusions so they are not ignored by rsync when using override-srcdir. Gnuconfig updated to 2019-05-28, adding C-SKY support. test-pkg: Correct long option handling and clean output dir after a successful build to save disk space. support/testing: Emulate a machine with 256MB RAM to fix issues with certain tests running out of memory, use virtio-rng to provide needed entrophy. pkg-stats: support outputting in JSON format with --json for easier post processing. The classic HTML output is still available with --html. Parallelize access to release-monitoring.org to speed up runtime. Drop non-conventional version prefix/suffix/separators for packages for better compatibility with release-monitoring.org Packages: Init systems: Add basic openrc support and _INSTALL_INIT_OPENRC variable in the infrastructure to install openrc service scripts if enabled. busybox: Build each applet as a separate binary when SELinux is enabled for more finegrained policy control. Use daemon mode for mdev rather than legacy hotplug. linux: Workaround -Werror related build failure on powerpc, by forcing CONFIG_PPC_DISABLE_WERROR on. Defconfigs: QEMU: use 'rootwait' kernel option to ensure root partition is available before mounting. New defconfigs: HiFive Unleashed, I.MX8MM EVK and Pico, Nanopi m4 and neo4, Nanopc t4, Olimex A33 olinuxino, Pine64 Rockpro64, PowerPC mac99, QEMU C-SKY 610/807/810/860 virt, Raspberry Pi 4, Raxda rock pi4, Solidrun Clearfog GT-8K Removed defconfigs: Odroid C2 New packages: bitcoin, c-capnproto, fatcat, ifmetric, jack1, jailhouse, libubootenv, luasyslog, mender-grubenv, murata-cyw-fw, openrc, piglit, python-colorama, python-cycler, python-hiredis, python-ifaddr, python-inflection, python-iptables, python-matplotlib, python-periphery, python-pycairo, python-redis, python-termcolor, python-tinyrpc, python-txdbus, skeleton-init-openrc, spdlog, sshguard, stellarium, zziplib Removed packages: xapp_mkfontdir Issues resolved (http://bugs.uclibc.org): #11096: Upgrade from glibc 2.26 to 2.27 broke some locales... #11271: utils/check-package fails with exception depending on.. #11991: [numpy] segfault when compiling for RPi3 64bits #12016: Grub fails to boot bzImage after upgrade to 2019.05 #12046: Can’t login as root user after upgrading to buildroot.. #12051: package/dhcp installs libtool wrapper scripts on tar... #12076: Patchelf can link against an incompatible libc++ ver... 2019.05.3, Released October 3rd, 2019 Important / security related fixes. Defconfigs: AArch64-efi: Fix grub configuration, Beaglebone: Use default console settings Dependencies: Ensure host has JSON::PP perl module installed if webkitgtk/wpewebkit packages are enabled as it is needed during their build process. Toolchain: Generate check-headers program under BUILD_DIR rather than /tmp to fix issues with distributions mounting /tmp noexec. Updated/fixed packages: asterisk, augeas, bind, bwm-ng, cups, cups-filters, docker-cli, docker-engine, docker-proxy, e2fsprogs, eudev, exim, expat, gcc, go, haveged, ifplugd, iptables, joe, kf5-extra-cmake-modules, kf5-modemmanager-qt, kf5-networkmanager-qtlibcamera, libcurl, libgcrypt, libgpg-error, libnftl, libnspr, libnss, libopenssl, libtorrent-rasterbar, luksmeta, mariadb, mbedtls, mongodb, mosquitto, ncurses, nfs-utils, nghttp2, nodejs, openvmtools, php, protobuf, putty, qemu, samba4, swupdate, systemd-bootchart, thttpd, uclibc, unzip, util-linux, wireshark Issues resolved (http://bugs.uclibc.org): #10806: Allow nfs-utils to use ipv6 #11781: mariadb build error #12031: Build of cups-filters fails while linking, apparently due.. #12141: eudev package is missing "render" and "kvm" groups #12241: Permission denied while running "make" 2019.05.2, Released September 3rd, 2019 Important / security related fixes. Filesystems: Pass extra pax options to tar for binary reproducibility. Updated/fixed packages: apache, arm-trusted-firmware, asterisk, atk, autofs, batctl, batman-adv, berkeleydb, busybox, bzip2, clamav, cloop, cmake, collectd, connman-gtk, dahdi-linux, dahdi-tools, daq, dehydrated, dhcp, dovecot, dovecot-pigeonhole,, elfutils, evtest, exim, expect, giflib, git, glib-networking, glibc, gnupg2, gnutls, go, gst1-rtsp-server, gtkperf, gupnp-tools, gvfs, imagemagick, imx-uuc, intel-microcode, json-glib, lftp, libbsd, libcurl, libgit2, libgtk2, libgtk3, libmodplug, libnss, libpri, libshout, libss7, libssh2, libvips, libxcb, linux-headers, mdadm, mesa3d, metacity, mpg123, mosquitto, musl, nginx, oniguruma, openblas, opencv3, openjdk, openjdk-bin, openldap, openvmtools, pcmanfm, php, pigpio, postgresql, prboom, proftpd, proj, python, python-django, python-idna, python-numpy, python-urllib3, python3, qemu, qt5, qt5base, qt5enginio, quagga, rygel, squid, subversion, tcpreplay, unzip, vlc, vte, webkitgtk, wireless-regdb, xen, xfont_font-util, xlib_libICE, xlib_libXfont, xlib_libXfont2, yad, zeromq Issues resolved (http://bugs.uclibc.org): #11741: pigpio does not build host-pigpio #11876: automount using host mount/umount #11881: Build breaks with lftp package enabled and libexpat1-dev inst.. #11921: dahdi fails to build #11961: libpri build failure #12086: (dhcpd-missing-libs) - dhcp shared libraries not installed to.. #12096: tcpreplay: build fails if libdumbnet-dev is installed in the.. #12106: daq: build fails if libdumbnet-dev is installed in the host #12126: vc4 has neon as hard dependency 2019.05.1, Released July 7th, 2019 Important / security related fixes. arch: x86: Fix typo breaking 'core-avx2' variant linux: Workaround -Werror related build failure on powerpc, by forcing CONFIG_PPC_DISABLE_WERROR on. support/testing: Emulate a machine with 256MB RAM to fix issues with certain tests running out of memory. test-pkg: Correct long option handling and clean output dir after a successful build to save disk space. Defconfigs: QEMU: use 'rootwait' kernel option to ensure root partition is available before mounting. Updated/fixed packages: barebox, busybox, bzip2, davfs2, dialog, docker-cli, docker-engine, exim, expat, faad2, haveged, irssi, libcamera, libcdaudio, libcurl, libglib2, libressl, libsecret, lmbench, meson, monit, php, postgresql, psplash, python-django, qt5base, tvheadend, webkitgtk, xserver_xorg-server, znc 2019.05, released June 2nd, 2019 Various fixes. Toolchain: Ensure pre-built Andes toolchains can only be selected when x86 32bit support is available on the host. Disallow PowerPC SPE ABI for GCC >= 8.x, as it is no longer supported. Infra: pkg-config: Use a dedicated timestamp file rather than .config as that gets touched by linux-4.19+, causing repeated builds. Add C-SKY support to our config.sub (gnuconfig) Updated/fixed packages: dosfstools, botan, brotli, dropbear, flare-engine, gst1-plugins-bad, libhtp, libnss, libopenssl, linuxptp, matchbox-panel, mender, mutt, netsurf, network-manager, opencv3, openjdk, openmpi, php, python-cython, qt5multimedia, qtwayland, qt5webkit-examples, supertux, suricata, tpm2-totp, v4l2loopback, wireshark, wpewebkit 2019.05-rc3, released May 25th, 2019 Fixes all over the tree. check-bin-arch: Ignore /usr/lib/grub, similar to how /lib/grub is ignored. check-package: Warn about utf-8 characters in .mk files Linux: Default to 5.1.x series Updated/fixed packages: assimp, atop, chocolate-doom, cjson, ddrescue, dhcp, ffmpeg, gerbera, glibmm, gpsd, gst-ffmpeg, intel-microcode, jasper, keepalived, kismet, libcpprestsdk, libcurl, libssh2, libupnp18, luarocks, mono-gtksharp3, opus, postgresql, pcsc-lite, python, tslib, webkitgtk, wpebackend-fdo, wpewebkit 2019.05-rc2, released May 15th, 2019 Fixes all over the tree. Updated/fixed packages: bind, bullet, ca-certificates, collectd, cracklib, dhcp, gdb, libinput, libtorrent-rasterbar, linknx, lynx, mono, netsurf, optee-os, postgresql, qt5enginio, qt5multimedia, rpm, samba4, sqlite, strace, uclibc, woff2 Issues resolved (http://bugs.uclibc.org): #11841: grub-efi.cfg not used when building EFI disk image 2019.05-rc1, Released May 8th, 2019 Fixes all over the tree and new features. Architecture: Andes 32-bit (nds32) support added. Only build host-lzip / host-xz when really needed by packages, not just when not available on the build host. Toolchain: Glibc bumped to 2.29, musl bumped to 1.1.22, binutils 2.32 added, 2.28/2.29 removed, default changed to 2.31.1. fs: Set FAKEROOTDONTTRYCHOWN environment variable to not forward {f,l,}chown calls to libc when running under fakeroot to fix issues when building in restricted environments (E.G. user namespace with bubblewrap). Linux: Also build default make target to ensure extra files like the gdb scripts enabled by CONFIG_GDB_SCRIPTS are also built. Notice: This may mean that extra host utilities like uboot-mkimage are needed. Infrastructure: show-info and -show-info make targets added to output package metadata in JSON format for external use. pkg-generic: Only tweak .la files needing it to ensure they are not included in subsequent package file lists. test-pkg: Generate a basic package config if none is specified. Gettext-tiny package added as an lightweight replacement for GNU gettext for situations where NLS support is not needed. New defconfigs: Andes AE3XX, Freescale imx8mpico / imx8qxpmek / T2080 QDS RDB, Licheepi zero, Orangepi R1 Removed defconfigs: Olimx A20 Olinuxino Lime legacy New packages: bats-core, bayer2rgb-neon, brickd, cog, dacapo, enet, gettext-tiny, gli, gst1-plugins-bayer2rgb-neon, imx-sc-firmware, intel-mediadriver, intel-mediasdk, libcamera, libhtp, libp11, libwpe, lua-binaryheap, lua-gd, lua-lunitx, mender-artifact, most, oniguruma, openjdk, openjdk-bin, opensbi, optee-benchmark, optee-client, optee-examples, optee-os, optee-test, paho-mqtt-cpp, python-aioblescan, python-aioconsole, python-aiohttp-cors, python-aiomonitor, python-backcall, python-jedi, python-parso, python-pyjwt, python-terminaltables, suricata, tpm2-totp, uftp, wpebackend-fdo, wpewebkit Removed packages: libump, lunit, sunxi-mali Issues resolved (http://bugs.uclibc.org): #11716: Typo on website, saying latest release is 2018.2.11 #11756: package/syslinux: MBR's don't fit because of binutils.. #11761: Building custom kernel 5.1-rc3 or later breaks on objtool #11816: Only selected coreutils binaries are installed 2019.02.11, released April 9th, 2020 Important / security related fixes. core: Fix compatibility with make 4.3+. Also fixup /lib references in libtool .la files, similar to how it is done for /usr/*. toolchain: Fix kernel headers validation check for external toolchains. Updated/fixed packages: barebox-aux, bluez5_utils, busybox, civetweb, collectd, ffmpeg, gcc, gnutls, gvfs, haproxy, hiredis, kmscube, libical, libopenssl, libsndfile, linux-tools, ntp, php, pure-ftpd, screen, sysdig, tor, util-linux, vala, vlc, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #12746: "sysdig" package description points to http://sysdig.org, .. 2019.02.10, released March 16th, 2020 Important / security related fixes. Core: Ensure package-file-lists data is correct after incremental builds as well. Fix a race condition related to creating the output/staging symlink on systems with coreutils < 8.27. Br2-external: Fix compatibility with make 4.3+ Util-linux: Ensure that hwclock is built without GPLv3 code. Notice that builds with hwclock has contained GPLv3-licensed code since util-linux 2.30 (Buildroot 2017.08+) Updated/fixed packages: armadillo, at, binutils, blktrace, bootstrap, busybox, cairo, cups, czmq, dnsmasq, docker-containerd, dovecot, dovecot-pigeonhole, e2fsprogs, eudev, exim, exiv2, fbgrab, grep, gst1-validate, guile, imagemagick, jhead, kvm-unit-tests, lapack, libcgroup, libftdi1, libjpeg, libsigrok, libsndfile, libssh2, libsvgtiny, libvncserver, libvorbis, libxml2, libxslt, linux, lz4, mariadb, mbedtls, meson, mfgtools, mongoose, ncurses, ntfs-3g, opencv3, openjpeg, openswan, openvmtools, patch, php, postgresql, pppd, proftpd, pure-ftpd, python-django, python-pyqt5, python3, qemu, qt5base, qt5webengine, qwt, rdesktop, ruby, runc, samba4, shellinabox, smartmontools, sqlcipher, squid, swupdate, sysklogd, taglib, thrift, ti-cgt-pru, uboot, util-linux, vorbis-tools, webkitgtk, wireshark, xen, xserver_xorg-server, zeromq, zsh Issues resolved (http://bugs.uclibc.org): #11996: opencv3 SIGILL on Cortex-A5 with VFPv4-D16 #12331: meson issue #12461: libglib2 build files with deep directory structure #12606: fbgrab location has changed 2019.02.9, released January 12th, 2020 Important / security related fixes. pkg-python infrastructure: Ensure correct compiler and linker flags are used for compiled code utils/scanpypi: Remind users to update DEVELOPERS Updated/fixed packages: busybox, cc-tool, cpio, cups, dante, dillo, docker-cli, docker-containerd, docker-engine, easy-rsa, ecryptfs-utils, efl, git, glibc, gnupg2, gst1-plugins-bad, kf5-kcoreaddons, libarchive, libgit2, libkrb5, librsvg, libssh, libtomcrypt, libuio, lirc-tools, lvm2, matchbox-desktop, nodejs, ntp, opencv3, openpowerlink, python-django, python-ecdsa, python-pyasn-modules, python-pyqt5, python-subprocess32, python3, qpdf, runc, rygel, samba4, sdl2, wavpack, xserver_xorg-server, zip Issues resolved (http://bugs.uclibc.org): #12121: PyQt5.QtSerialPort and other modules not being built 2019.02.8, released December 7th, 2019 Important / security related fixes. Infrastructure: Make HOST__DL_OPTS inherit from _DL_OPTS by default, just like it is done for a number of other package variables Add _KEEP_PY_FILES to exclude specific python .py files from the removal done by BR2_PACKAGE_PYTHON{,3}_PYC_ONLY for the (rare) case where the .py files are needed at runtime rather than .pyc. Fix -reconfigure handling for packages using the kconfig infrastructure. Toolchain: ensure external toolchain kernel headers version check correctly stop the build on mismatch Deconfigs: beaglebone: fix boot issue Updated/fixed packages: am33x-cm3, asterisk, bind, chrony, clamav, collectd, connman, faifa, gob2, haproxy, intel-microcode, ipsec-tools, jasper, jpeg-turbo, kodi, kvm-unit-tests, libftdi, libftdi1, libnss, libstrophe, libsvgtiny, lvm2, lzma, mariadb, minicom, neardal, nodejs, opencv3, openvmtools, oracle-mysql, perl-gdgraph, perl-gdtextutil, php, postgresql, prosody, python-django, rabbitmq-c, rauc, redis, rpcbind, socat, spice, spice-protocol, tftpd, tiff, webkitgtk New packages: libmspack Issues resolved (http://bugs.uclibc.org): #12166: Compiling nodejs for SAMA5D3 always crash with illegal inst.. #12171: Python-opencv needs config.py and config-3.7.py to run.. #12211: host-nodejs 10.15.3 package fail to build #12316: tzdata fails to install with empty "default local time" 2019.02.7, Released November 10th, 2019 Important / security related fixes. support/testing: use a kernel with HW_RANDOM_VIRTIO to work around issues with lack of entrophy Toolchain: Also copy libssp.so for external toolchains if SSP is enabled to handle toolchains providing SSP support in libssp rather than in the C library Download: Also use the package download method for extra downloads from the same site, so it does not get confused by URLs containing '+' Fakeroot now works correctly under Microsoft Windows 10 Services for Linux, which does not provide SYSV IPC support utils/test-pkg: ensure to exit with an error upon failure Updated/fixed packages: asterisk, azmq, cups-filters, domoticz, duma, elf2flt, eudev, exfat, exfat-utils, fakeroot, file, freerdp, gd, ghostscript, go, gvfs, intel-microcode, kvm-unit-tests, libarchive, libnspr, libnss, libopenssl, libpcap, libpciaccess, librsvg, libseccomp, libsigrok, libtorrent, libunwind, linux-tools, lua-sdl2, lxc, minizip, mjpegtools, mongoose, php, python, python-pysnmp-apps, python3, qemu, qt5base, ruby, safeclib, samba4, sdl_mixer, sox, sudo, systemd, tcpdump, unscd, util-lkinux, vtun, xvisor, yaffs2utils Issues resolved (http://bugs.uclibc.org): #11366: [2018.08] SysV IPC not available for fakeroot on WSL #12261: sudo versions prior to 1.8.28 are affected 2019.02.6, Released October 3rd, 2019 Important / security related fixes. Defconfigs: AArch64-efi: Fix grub configuration, Beaglebone: Use default console settings Dependencies: Ensure host has JSON::PP perl module installed if webkitgtk/wpewebkit packages are enabled as it is needed during their build process. Toolchain: Generate check-headers program under BUILD_DIR rather than /tmp to fix issues with distributions mounting /tmp noexec. Updated/fixed packages: asterisk, augeas, bind, bwm-ng, cups, cups-filters, docker-cli, docker-engine, docker-proxy, dropbear, e2fsprogs, eudev, exim, expat, gcc, go, ifplugd, haveged, iptables, joe, kf5-extra-cmake-modules, kf5-modemmanager-qt, kf5-networkmanager-qt, libcurl, libgcrypt, libgpg-error, libnftl, libnspr, libnss, libopenssl, luksmeta, mariadb, mbedtls, mongodb, mosquitto, ncurses, nfs-utils, nghttp2, nodejs, openvmtools, php, protobuf, putty, qemu, qt5base, samba4, swupdate, systemd-bootchart, thttpd, uclibc, unzip, util-linux, wireshark Issues resolved (http://bugs.uclibc.org): #10806: Allow nfs-utils to use ipv6 #11781: mariadb build error #12031: Build of cups-filters fails while linking, apparently due.. #12141: eudev package is missing "render" and "kvm" groups #12181: dropbear: norootlogin (-w) no longer works when PAM is enabled #12241: Permission denied while running "make" 2019.02.5, Released September 2nd, 2019 Important / security related fixes. Filesystems: Pass extra pax options to tar for binary reproducibility. Updated/fixed packages: apache, arm-trusted-firmware, asterisk, atk, autofs, batctl, batman-adv, berkeleydb, brotli, busybox, bzip2, clamav, cloop, cmake, collectd, connman-gtk, cryptopp, dahdi-linux, dahdi-tools, daq, dehydrated, dovecot, dovecot-pigeonhole,, elfutils, evtest, exim, expect, giflib, git, glib-networking, glibc, gnupg2, gnutls, go, gst1-rtsp-server, gtkperf, gupnp-tools, gvfs, imagemagick, imx-uuc, intel-microcode, json-glib, lftp, libbsd, libcurl, libgit2, libgtk3, libmodplug, libnss, libpri, libshout, libss7, libssh2, libvips, libxcb, linux-headers, mdadm, mesa3d, metacity, mpg123, mosquitto, musl, nginx, openblas, opencv3, openldap, openvmtools, pcmanfm, php, pigpio, postgresql, prboom, proftpd, proj, python, python-django, python-idna, python-numpy, python-urllib3, python3, qemu, qt5, qt5base, qt5enginio, quagga, rygel, squid, subversion, tcpreplay, unzip, vlc, vte, webkitgtk, weston, wireless-regdb, xen, xfont_font-util, xlib_libICE, xlib_libXfont, xlib_libXfont2, yad, zeromq Issues resolved (http://bugs.uclibc.org): #11741: pigpio does not build host-pigpio #11876: automount using host mount/umount #11881: Build breaks with lftp package enabled and libexpat1-dev inst.. #11921: dahdi fails to build #11961: libpri build failure #12096: tcpreplay: build fails if libdumbnet-dev is installed in the.. #12106: daq: build fails if libdumbnet-dev is installed in the host #12126: vc4 has neon as hard dependency 2019.02.4, Released July 10th, 2019 Important / security related fixes. arch: x86: Fix typo breaking 'core-avx2' variant, add Westmere variant. linux: Workaround -Werror related build failure on powerpc, by forcing CONFIG_PPC_DISABLE_WERROR on. support/testing: Emulate a machine with 256MB RAM to fix issues with certain tests running out of memory. test-pkg: Correct long option handling and clean output dir after a successful build to save disk space. Ensure custom _OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS are passed before the standard exclusions so they are not ignored by rsync when using override-srcdir. Defconfigs: QEMU: use 'rootwait' kernel option to ensure root partition is available before mounting. Updated/fixed packages: barebox, bzip2, davfs2, dbus, dialog, docker-cli, docker-engine, expat, faad2, ffmpeg, freeswitch, gerbera, haveged, irssi, libcdadio, libgit2, libglib2, libsecret, libvncserver, lmbench, logrotate, mariadb, meson, mongoose, monit, mpd, openblas, php, postgresql, psplash, python, python-django, python3, qt5base, samba4, taglib, tvheadend, vlc, webkitgtk, xserver_xorg-server, znc 2019.02.3, Released June 7th, 2019 Important / security related fixes. Infra: pkg-config: Use a dedicated timestamp file rather than .config as that gets touched by linux-4.19+, causing repeated builds. check-bin-arch: Also ignore /usr/lib/grub to support merged /usr setups, similar to how /lib/grub is ignored. gnuconfig/config.sub: Add C-SKY architecture support. Updated/fixed packages: assimp, atftp, atop, botan, busybox, ca-certificates, chocolate-doom, cjson, coreutils, cracklib, ddrescue, dhcp, docker-cli, docker-containerd, docker-engine, dosfstools, dovecot, dovecot-pigeonhole, dropbear, exim, ffmpeg, flare-engine, gcc, gdb, gerbera, glibmm, go, gpsd, gst-ffmpeg, gst1-plugins-bad, gst1-plugins-base, imagemagick, intel-microcode, jasper, kf5-kcoreaddons, kismet, libcurl, libglib2, libnss, libopenssl, libsigrok, libssh2, libupnp18, linuxptp, luajit, lynx, matchbox-panel, mender, netcat-openbsd, netsurf, nfs-utils, opus, orc, owfs, pcsc-lite, php, popt, postgresql, python, python-cython, python-django, python-ply, qt5enginio, rpm, runc, samba4, sqlite, subversion, supertux, systemd, tslib, uclibc, v4l2loopback, webkitgtk, woff2 Issues resolved (http://bugs.uclibc.org): #11816: Only selected coreutils binaries are installed #11841: grub-efi.cfg not used when building EFI disk image #11911: systemd v240 memory leak in systemd-journald 2019.02.2, Released April 29th, 2019 Important / security related fixes. Only build host-lzip / host-xz when really needed by packages, not just when not available on the build host. fs: Set FAKEROOTDONTTRYCHOWN environment variable to not forward {f,l,}chown calls to libc when running under fakeroot to fix issues when building in restricted environments (E.G. user namespace with bubblewrap). Linux: Also build default make target to ensure extra files like the gdb scripts enabled by CONFIG_GDB_SCRIPTS are also built. Notice: This may mean that extra host utilities like uboot-mkimage are needed. Defconfigs: ASUS tinker and Amarula vyasa rk3822: Support larger kernel images, Atmel SAM5D27, SAM5D2,3,4 xplained: Increase rootfs size to fit utilities, Raspberry Pi 64bit: Include overlays in sdcard image Updated/fixed packages: android-tools, apache, bind, binutils, busybox, civetweb, cjson, copas, davfs2, docker-cli, docker-containerd, docker-engine, dovecot, dovecot-pigeonhole, freerdp, gerbera, ghostscript, git, gnutls, go, gst-omx, gst1-plugins-base, gst1-plugins-ugly, haproxy, hostapd, ipsec-tools, libfreefare, libfuse, libkrb5, libpng, libxml2, libxslt, linknx, linux, linux-firmware, linux-tools, live555, lldp, lrzsz, lynx, madplay, make, minicom, mongodb, msmtp, musl, mutt, neon, netsnmp, numactl, opus, perl, php, postgresql, pure-ftpd, python-urllib3, python3, qt5base, rapidxml, rpm, rsyslog, ruby, runc, samba4, sane-backends, softether, stunnel, sysklogd, syslinux, syslog-ng, systemd-bootchart, thttpd, thrift, tiff, tor, tpm2-tools, tpm2-tss, webkitgtk, yaffs2utils, wget, wpa_supplicant, wsapi, xapp_xfd, xapp_xload, xlib_libXpm, xserver_xorg-server, xz, znc Issues resolved (http://bugs.uclibc.org): #11756: package/syslinux: MBR's don't fit because of binutils.. #11761: Building custom kernel 5.1-rc3 or later breaks on objtool 2019.02.1, Released March 29th, 2019 Important / security related fixes. pkg-generic: Only tweak .la files needing it to ensure they are not included in subsequent package file lists. test-pkg: Generate a basic package config if none is specified. Updated/fixed packages: asterisk, avahi, bash, beecrypt, binutils, busybox, clamav, cups, efl, eigen, fetchmail, file, flashrom, fltk, gerbera, git, glibc, gnuradio, go, gst-plugins-bad, intel-gmmlib, jq, kexec, kf5-modemmanager-qt, leveldb, libcurl, libdrm, libftdi1, libglib2, libiio, libpcap, libseccomp, libssh2, log4cplus, lvm2, mariadb, mender, mongodb, mosquitto, musl, nodejs, ntp, openjpeg, owfs, php, pure-ftpd, putty, python-aiojobs, qt5webkit, rdesktop, samba4, sunxi-tools, supertux, swupdate, tpm2-abrmd, tpm2-tss, wavemon, wireshark, vsftpd, xapp_xdm, xen, xdriver_xf86-video-fbdev, xlib_libXdmcp Issues resolved (http://bugs.uclibc.org): #11716: Typo on website, saying latest release is 2018.2.11 2019.02, released March 4th, 2019 Minor fixes. Libressl support added for Qt 5.6 as a replacement for openssl, as 5.6 is not compatible with openssl 1.1.x. Updated/fixed packages: cutelyst, devmem2, gqrx, gst-plugins-bad, libraw, libsoxr, qt5base, runc, systemd, tor 2019.02-rc3, released March 1st, 2019 Fixes all over the tree. Openssl support dropped from Qt 5.6, as it isn't compatible with openssl 1.1.x. Toolchain: GCC 8.x updated to 8.3.0, fixing a number of issues. Dependencies: Require CMake 3.8 or newer to fix compilation issue with certain packages. If not available, host-cmake will instead be built. Printvars: Fix performance regression since 2018.02 Scanypi: Correctly handle underscores in python package names. Updated/fixed packages: botan, clamav, cryptopp, i2pd, ibrcommon, iproute2, libcpprestsdk, libssh, lua-curl, luaexpat, qt5base, runc, stress-ng, syslinux, systemd, upmpdcli, zbar Issues resolved (http://bugs.uclibc.org): #9966: util-linux-2.30/.stamp_built' failed #11696: possible typo in board/pc/post-build.sh 2019.02-rc2, released February 23th, 2019 Fixes all over the tree. Removed zynq_zybo defconfig, as it hasn't seen any update since it was added in 2016, and uses a U-Boot version not compatible with openssl-1.1.x. Linux: Ignore user supplied downloadable hashes, as no hash checksums are available for those. Updated/fixed packages: bind, cryptopp, docker-containerd, dtc, efivar, gdb, imagemagick, ipmiutil, libcpprestsdk, libcurl, libgpiod, libid3tag, libv4l, log4cplus, luvi, madplay, mender, mosquitto, poco, postgresql, proftpd, pulseaudio, python-django, qemu, qt5base, qwt, rabbitmq-c, reaver, safeclip, stress-ng, swupdate, syslog-ng, systemd, tor, unzip, xenomai Issues resolved (http://bugs.uclibc.org): #11501: compile sdl2 with enable wayland #11681: .. unable to initialize decompress status for section.. 2019.02-rc1, released February 13th, 2019 Fixes all over the tree and new features. Dependencies: Require Python >= 2.7 as it is needed for E.G. building libglib2. Ensure GNU gzip is used for reproducible tarballs (instead of pigz) Infrastucture: Ensure the PLATFORM and OS environment variables are not set, as they cause build issues for some packages. The package list infrastructure now correctly handles packages installing files with old mtime. Add a config option to force all optional host utilities to be built, even if suitable versions are available on the build machine. graph-build-time: Also show time spent downloading Download: fixes for SSH/SCP support Ensure user provided permissions override permissions from packages. SDK: Fix handling of relative symlinks (targets starting with '.' or '..') BR2_SYSTEM_DEFAULT_PATH setting to customize the default path for processes. The custom skeleton logic will now populate the needed /bin, /lib, /sbin directories/symlinks if not present. Merged /usr can now be used with a custom skeleton. Rootfs overlays can now override symbolic links from packages. This was disabled to ensure the correct symbolic links are present when merged /usr is used. Instead validate that the rootfs overlays do not include invalid /bin, /sbin and /lib entries. The waf infrastructure now support the _SUBDIR variable, similar to the other package types. cmake: Also set CMAKE_SYSTEM_VERSION in toolchainfile.cmake Various improvements to the meson infrastructure. Luarocks: A Buildroot addon has been added to automate creating a Buildroot package from luarocks, similar to scancpan and scanpypi. scanpypi: protect against zip-slip vulnerability in zip/tar handling check-package: fix Python 3 support get-developers: Fix behaviour when called from elsewhere than the toplevel directory. pkg-stats: Show latest upstream version of each package, based on data from release-monitoring.org kconfig: Fix for make linux-menuconfig / uboot-menuconfig from a clean tree when ccache is enabled. Default to sha256 password encoding, drop md5 support. Architecture: Support for RISC-V 32bit architecture, ARM A55, 75 and Saphira variants, MIPS support for mips32r3, mips64r3 and Marvell Octeon II/III variants. Toolchain: ARC toolchain 2018.09, ARM 8.2-2018.11, Codescape IMG/MTI MIPS 2018.09-02, MUSL 1.1.21, GCC 6.5.0 / 7.4.0, GDB 8.2.1 Packages: openssl: Bump to 1.1.1x series, bringing TLSv1.3 support and long term support. fftw: Split into fftw-{single,double,long-double,quad} packages for the different data precision options. libcurl: Now has explicit TLS backend selection options. linux: Support building device tree blobs with the -@ option for device tree overlays. weston: The weston-imx i.MX variant is now used when imx-gpu-viv is enabled pkgconf: Update to 1.5.3, which brings support for --define-prefix (used by GStreamer) Add host-python3-setuptools package to handle host python packages needing python3 with setuptools support. New defconfigs: Aarch64 EFI, Orangepi one plus, Orangepi lite 2, QEMU RISC-V 32bit virt, Rock64 New packages: brcm-patchram-plus, clinfo, cunit, docker-cli, erlang-p1-eimp, exempi, fail2ban, fftw-double, fftw-double-long, fftw-quad, fftw-single, gerbera, grpc, gst1-shark, intel-gmmlib, iwd, kf5-kcoreaddons, libeastl, libpackagekite, libtorrent-rasterbar, lua-std-debug, lua-std-normalize, mini-snmpd, netsurf, pamtester, pcm-tools, python-aiodns, python-aiohttp, python-aiohttp-jinja2, python-aiohttp-remotes, python-aiohttp-security, python-aiohttp-session, python-aiohttpd-sse, python-aiojobs, python-cchardet, python-pycares, python-sentry-sdk, python-wtforms, python3-setuptools, rcw, rtc-tools, shim, utp_com, vmtouch, websocketpp Removed packages: fftw, lua 5.2.x, luacrypto, perl-time-hires, python-pyqt, qt, qtuio, tn5250 Issues resolved (http://bugs.uclibc.org): #10851: Patch to handle numpad Enter key properly #11066: x11r7 X11 S40xorg leads to a black screen on QEMU x86.. #11126: Bash Shell Programming using Buildroot #11426: pps-tools bash dependency #11476: stdio2.h error invalid use of __builtin_va_arg_pack #11536: dt-utils building fails with glibc 2.28 #11546: open-vm-tools with glibc 2.28 #11566: Fix init script #11576: Unable to start apache with event MPM on raspberry pi 3 #11591: [pkgconf 1.5.3] xserver OpenGL support is missing #11606: libjpeg has no Config.in #11616: 2018.02.09 fails to build libzlib with full RELRO.. #11656: Custom device tree and u-boot boot.scr not integrated.. #11666: Touchscreen with (Py)Qt5 should use tslib instead of evdev 2018.11.4, Released March 28th, 2019 Important / security related fixes. Updated/fixed packages: avahi, beecrypt, binutils, botan, busybox, clamav, cups, devmem2, efl, fetchmail, file, fltk, gcc, gdb, git, go, gst-plugins-bad, iproute2, jq, kf5-modemmanager-qt, leveldb, libopenssl, libraw, libseccomp, libsoxr, libssh2, mariadb, mosquitto, nodejs, ntp, openjpeg, perl, php, putty, qt5webkit, rdesktop, runc, samba4, swupdate, systemd, tor, vsftpd, wireshark, xapp_xdm, xen, xlib_libXdmcp 2018.11.3, Released February 23th, 2019 Important / security related fixes. Ensure the PLATFORM and OS environment variables are not set, as they cause build issues for some packages. The package list infrastructure now correctly handles packages installing files with old mtime. Linux: Skip hash checks for user supplied downloadable patches, as no hash checksums are available for those. scanpypi: protect against zip-slip vulnerability in zip/tar handling Download: fixes for SSH/SCP support SDK: Fix handling of relative symlinks (targets starting with '.' or '..') Updated/fixed packages: bind, dhcpcd, docker-compose, docker-containerd, docker-engine, dovecot, dovecot-pigeonhole, dtc, efivar, ghostscript, gnuradio, imagemagick, jpeg-turbo, libarchive, libb64, libcurl, libgeotiff, libgpiod, libid3tag, libupnp18, log4cplus, madplay, meson, mosquitto, openssh, php, poco, postgresql, proftpd, pulseaudio, python, python-django, python3, qt5base, reaver, runc, sg3_utils, sqlcipher, swupdate, systemd, unzip, webkitgtk, xenomai 2018.11.2, Released January 30th, 2019 Important / security related fixes. Defconfigs: Fixes for imx6slevk, imx7dsabresd, imx8mqevk, Lego EV3, QEMU AArch64-virt Download: Fix scp download handling check-package: fix Python 3 support get-developers: Fix behaviour when called from elsewhere than the toplevel directory. kconfig: Fix for make linux-menuconfig / uboot-menuconfig from a clean tree when ccache is enabled. cmake: Also set CMAKE_SYSTEM_VERSION in toolchainfile.cmake Updated/fixed packages: acpica, apache, apr, avrdude, cargo, cc-tool, dash, dhcpdump, dmalloc, docker-containerd, efivar, fwts, glibc, gnuchess, gnupg2, go, leveldb, libarchive, libassuan, libftdi1, libgpg-error, libhttpparser, libkcapi, libmad, libsndfile, libsquish, liburiparser, libwebsock, libxml2, lighttpd, llvm, lm-sensors, lua-msgpack-native, lxc, mariadb, mbedtls, meson, mosquitto, netatalk, nodejs, odhcp6c, openresolv, openssh, pango, patchelf, php, python-django, python-numpy, python-pyyaml, rauc, rp-pppoe, s6-networking, samba4, sdl_sound, shairport-sync, sqlite, subversion, sunxi-cedarx, swupdate, systemd, tcpreplay, tekui, tmp2-abrmd, tpm2-tools, tpm2-tss, udisks, unixodbc, usb_modeswitch, webkitgtk, wireshark, wolfssl, xapp_rgb, xenomai, xerces Issues resolved (http://bugs.uclibc.org): #11576: Unable to start apache with event MPM on raspberry pi 3 2018.11.1, Released December 20th, 2018 Important / security related fixes. defconfigs: Fixes for bananapi m2 ultra, ci20 Download wrapper: Fix for urlencode handling Updated/fixed packages: asterisk, docker-compose, docker-engine, dt-utils, gnutls, go, grub, libbsd, libcurl, libpgpme, libiscsi, liblo, libmpd, libopenssl, liboping, libpam-tacplus, libpjsip, linux-firmware, liquid-dsp, lua-cqueue, luvi, lxc, lynx, nginx, nodejs, openzwave, php, pps-tools, proftpd, prosody, sdl2_net, squashfs, swupdate, uclibc, vtu, webkitgtk, wine, xen New packages: docker-cli Issues resolved (http://bugs.uclibc.org): #11426: pps-tools bash dependency #11536: dt-utils building fails with glibc 2.28 2018.11, Released December 1st, 2018 Minor fixes. Updated/fixed packages: c-ares, quagga, squid 2018.11-rc3, released November 30th, 2018 Fixes all over the tree. Defconfigs: Fixes for Armadeus APF27, imx6sabre, Olimex A20 olinuxino lime legacy, Orangepi zero plus 2, PC, Riotboard. graph-depends: Fix for package names starting with a non-alpha character. Updated/fixed packages: alsa-utils, botan, dante, domoticz, dtc, freetype, gauche, gcc, gdb, ghostscript, glibc, imx-usb-loader, libbsd, libid3tag, libkrb5, libmicrohttpd, libopenssl, libsoxr, linux, motion, msgpack, mtd, perl-net-ssleay, php, popt, python-numpy, qt5declarative, samba4, shadowsocks-libev, stress-ng, systemd, usb_modeswitch, webkitgtk, valgrind, weston, xfsprogs 2018.11-rc2, released November 21th, 2018 Fixes all over the tree. fs: Drop intermediate tarball from the filesystem handling to fix an issue with xattrs handling related to fakeroot. Ensure tarball target includes xattrs. download: Fix confusion in git submodule handling if dl/ is a symlink. genrandconfig: Fix missing newline in BR2_WGET handling, causing the following line to be ignored. This would affect BR2_ENABLE_DEBUG, BR2_INIT_BUSYBOX, BR2_INIT_SYSTEMD, BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV, BR2_STATIC_LIBS or BR2_PACKAGE_PYTHON_PY_ONLY depending on the randomization. show-build-order: Also include the dependencies of rootfs-common. Fix a number of build issues in packages for the recently merged RISC-V architecture support. Updated/fixed packages: dt-utils, easydbus, elfutils, flare-engine, flatcc, glibc, gstreamer, gstreamer1, imx-uuc, libassuan, libcorrect, libiscsi, libkrb5, libmicrohttpd, libnftnl, libnspr, libnss, libsemanage, libsigsegv, libv4l, ltp-testsuite, luv, luvi, make, ncmpc, netplug, openocd, prosody, qemu, rpm, sconeserver, shadowsocks-libev, supertuxcart, syslinux, systemd, trace-cmd, uclibc, uclibc-ng-test, vtun, webkitgtk, weston, wireshark, xen, xlib_libfontenc Issues resolved (http://bugs.uclibc.org): #11086: download/git submodule breaks on symlinked dl folder #11216: Capabilities not applied to filesystem 2018.11-rc1, released November 9th, 2018 Fixes all over the tree and new features. Architecture: RISC-V support (64bit) added. Toolchain: Glibc bumped to 2.28. Fortran support for external toolchains. ARM (Linaro) toolchains updated to 8.2-2018.08. Hardening flags (RELRO) are now handled by the toolchain wrapper instead of explicitly through CFLAGS/LDFLAGS, fixing a number of issues. Filesystems: Support for creating btrfs and f2fs filesystems added. Add a number of patches to fix build errors for host utilities on modern distributions using glibc-2.28. mkusers: Ensure existing group members are preserved when a group is reprocessed. printvars: Fix issue with exceeding shell command line length limits for certain setups. Workaround added for incompatibility issues between host-dtc and older U-Boot and Linux kernel versions. Detect and reject build paths containing '@', as this confuses a number of packages, including GCC. utils/diffconfig: Make it work for (non-Buildroot) config files not using the BR2_ prefix. New defconfigs: Amarula a64-relic, Bananapi m2 ultra, Embest riotboard, Hardkernel Odroid XU-4, QEMU riscv64-virt. olimex_a20_olinuxion_lime_mali is renamed to _legacy. OpenCL infrastructure support added, similar to how OpenGL is handled. Linux-headers: Support for kernel headers from a custom tarball / git repo added. New packages: bird, bluez5_utils-headers, btrfs-progs, checksec, davici, duktape, ell, haproxy, libclc, libcorrect, libopencl, libopenresolv, nss-myhostname, perl-apache-logformat-compiler, perl-appconfig, perl-astro-suntime, perl-class-inspector, perl-class-load, perl-class-method-modifiers, perl-class-std, perl-class-std-fast, perl-cookie-baker, perl-data-dump, perl-data-optlist, perl-data-uuid, perl-data-manip, perl-dbd-mysql, perl-dbi, perl-devel-globaldestruction, perl-devel-stacktrace, perl-devel-stacktrace-ashtml, perl-device-serialport, perl-dist-checkconflicts, perl-exporter-tiny, perl-file-sharedir, perl-file-slurp, perl-filesys-notify-simple, perl-hash-multivalue, perl-http-entity-parser, perl-http-headers-fast, perl-http-multipartparser, perl-io-interface, perl-io-socket-multicast, perl-json-maybexs, perl-mime-tools, perl-module-implementation, perl-module-runtime, perl-moo, perl-number-bytes-human, perl-package-stash, perl-params-util, perl-plack, perl-posix-strftime-compiler, perl-role-tiny, perl-streams-buffered, perl-sub-exporter-progressive, perl-sub-install, perl-sub-quote, perl-sys-cpu, perl-sys-meminfo, perl-sys-mmap, perl-time-parsedate, perl-type-tiny, perl-www-form-urlencoded, perl-x10, pigpio, python-async-timeout, python-falcon, python-fire, python-mimeparse, python-multidict, python-passlib, python-pigpio, python-pip, python-ply, python-py, python-pyasn1, python-pyasn1-modules, python-pycryptodomex, python-pyhamcrest, python-pysmi, python-scapy, python-semver, python-serial-asyncio, python-typing, python-uvloop, pythonwrapt, python-yarl, python-zeroconf, riscv-pk, sedutil, spandsp, tini, waffle, xapian Removed packages: bootutils, dsp-tools, expedite, gst-dsp, xloader Issues resolved (http://bugs.uclibc.org): #11116: Buildroot should set PYTHON_EGG_CACHE instead of writing .. #11156: In python3 module 'socket' has no attribute 'AF_BLUETOOTH' #11166: Erlang bad argument on valid uint64 when crosscompiled on.. #11206: zlib: fails to build with Linaro toolchain, BR2_RELRO_FULL.. #11241: ACPID shouldn't depend on BR2_x86_64 || BR2_i386 #11251: Util scanpypi failes when package change - to _ in tar file #11266: qt5base-5.11.1 does not compile with musl, complains about.. #11286: python-rpi-gpio only should depend on BR2_arm || BR2_aarch64 #11321: Latest master fails to build readline with RELRO FULL #11326: sysvinit fails to build in latest GIT master #11331: Internal application no longer builds with latest GIT master #11336: nfs-utils fails to build in latest GIT master #11351: build root-2018-08, linaro aarch64 compile error #11376: mdmon binary missing #11391: Valgind availability on ARM #11396: uboot environment image checksum invalid if target is big endian #11421: GCC error message for ARM Cortex-A9/ARM.V7 #11451: Can't find libmpfr.so.4 when using external toolchain on ubuntu.. #11481: Docs: Is external.desc required? 2018.08.4, Released December 20th, 2018 Important / security related fixes. Defconfigs: Fixes for ci20, orangepi zero plus 2 Download wrapper: Fix for urlencode handling Updated/fixed packages: c-ares, dante, docker-compose, domoticz, freetype, ghostscript, gnutls, libcurl, libgpgme, libid3tag, libiscsi, libmpd, libopenssl, liboping, libpjsip, linux-firmware, liquid-dsp, luvi, lynx, msgpack, nginx, nodejs, php, popt, pps-tools, prosody, python-numpy, python-requests, samba4, sdl2_net, squashfs, swupdate, systemd, uclibc, vte, webkitgtk, wine, xfsprogs Issues resolved (http://bugs.uclibc.org): #11426: pps-tools bash dependency 2018.08.3, Released November 26th, 2018 Important / security related fixes. fs: Drop intermediate tarball from the filesystem handling to fix an issue with xattrs handling related to fakeroot. Ensure tarball target includes xattrs. download: Fix confusion in git submodule handling if dl/ is a symlink. toolchain: Only allow enabling stack protection on architectures with control flow integrity (CFI) support. Only allow FORTIFY_SOURCE support on gcc >= 6. genrandconfig: Fix missing newline in BR2_WGET handling, causing the following line to be ignored. This would affect BR2_ENABLE_DEBUG, BR2_INIT_BUSYBOX, BR2_INIT_SYSTEMD, BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV, BR2_STATIC_LIBS or BR2_PACKAGE_PYTHON_PY_ONLY depending on the randomization. show-build-order: Also include the dependencies of rootfs-common. Defconfigs: Fixes for Armadeus APF27, imx6sabre, Olimex A20 olinuxino lime legacy, Orangepi zero plus 2. graph-depends: Fix for package names starting with a non-alpha character. Updated/fixed packages: attr, audit, bind, brotli, busybox, dtc, easydbus, elfutils, flare-engine, flatcc, gauche, gcc, giflib, gpsd, lcdproc, libcurl, libiscsi, libkcapi, libnfs, libnspr, libnss, libsemanage, liburiparser, lighttpd, lua-curl, mariadb, mmc, mosquitto, mysql, ncmpc, neardal, netplug, network-manager, nfs-utils, nginx, openocd, openswan, p11-kit, postgresql, prosody, qemu, qt, rpm, ruby, samba4, squid, supertuxkart, systemd, tar, trace-cmd, traceroute, twolame, uclibc, usb_modeswitch, vtun, webkitgtk, weston, xdriver_xf86-video-geode, xlib_libfontenc, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #11086: download/git submodule breaks on symlinked dl folder #11481: Docs: Is external.desc required? 2018.08.2, Released October 25th, 2018 Important / security related fixes. Workaround added for incompatibility issues between host-dtc and older U-Boot and Linux kernel versions. Detect and reject build paths containing '@', as this confuses a number of packages, including GCC. utils/get-developers: Add -e option for use with git send-email. utils/diffconfig: Make it work for (non-Buildroot) config files not using the BR2_ prefix. u-boot: Fix for environment image handling on big endian systems. Updated/fixed packages: binutils, ca-certificates, cups-filters, dtc, erlang, file, freetype, gcc, git, gvfs, jasper, leveldb, libarchive, libssh, live555, ljlinenoise, mariadb, mongoose, netsnmp, nmap, nodejs, ntp, open-plc-utils, poco, psmisc, ptpd2, python-enum34, qemu, qt, qt5base, setools, spice, spice-protocol, tinc, ustr, wireshark, Issues resolved (http://bugs.uclibc.org): #11396: uboot environment image checksum invalid if target is big endian 2018.08.1, Released October 7th, 2018 Important / security related fixes. Add a number of patches to fix build errors for host utilities on modern distributions using glibc-2.28. mkusers: Ensure existing group members are preserved when a group is reprocessed. printvars: Fix issue with exceeding shell command line length limits for certain setups. Updated/fixed packages: acpid, android-tools, apache, arp-scan, bandwidthd, bind, brltty, clamav, connman, cppcms, domoticz, dtc, fio, gcc, gdb, ghostscript, gnupg, httpping, igmpproxy, imlib2, ipsec-tools, libesmtp, libnfs, libxslt, links, lua, mosquitto, nilfs-utils, ocrad, parted, php, python-django, screen, shairport-sync, strongswan, vboot-utils, webkitgtk, wireguard, x265 xen, xlib_libXdmcp, xlib_libXfont, xlib_libXft, xlib_libxshmfence, xutil_makedepend, zeromq 2018.08, Released September 6th, 2018 Minor fixes. Known issues: - Glibc 2.28 on the build host breaks compilation of a number of host packages. 2018.08 contains fixes for some of these packages, but not all. Consider building on hosts (or in containers) using older Glibc versions. - host-dtc 1.4.7 breaks compilation of older U-Boot and Linux kernel configurations using FDT/DTC. Consider updating the Linux kernel to >= 4.17 and U-Boot to >= 2018.07 or backporting commit 9130ba8846 (scripts/dtc: Update to upstream version v1.4.6-9-gaadd0b65c987) for the Linux kernel / commit db405d1980 for U-Boot. Alternatively revert commit 7b929ddcf0 (dtc: bump version to 1.4.7) and ensure your build host does not have the libfdt development headers installed. Updated/fixed packages: busybox, chipmunk, cutelyst, domoticz, gcc, imagemagick, lcms2, libcurl, mediastreamer, moarvm, php, qt, qt5virtualkeyboard, qt5webengine, screen, sdl2, squashfs, uboot, xen Issues resolved (http://bugs.uclibc.org): #11261: ccache using wrong cached objects #11276: Understanding the patch for kernel-4.9 and other.. 2018.08-rc3, Released August 31th, 2018 Fixes all over the tree. linux: additional improvements to the flex / bison dependency handling, use system provided variant if available. Ensure toolchain is available when configuring for 4.18+ support. Download: Fix handling of primary sites using file:// Toolchain: Correct external toolchain musl detection for static toolchains. Updated/fixed packages: aircrack-ng, bison, brltty, busybox, cutelyst, dropbear, gr-osmosdr, i2c-tools, json-c, libconfuse, libkcapi, libsoup, libssh, liburiparser, mbedtls, mender, mesa3d, minicom, mjpegtools, mutt, openpowerlink, openssh, oracle-mysql, php, postgresql, pv, qt5base, qt5quickcontrols, rauc, shairport-sync, systemd, xlib_libX11, zeromq, Issues resolved (http://bugs.uclibc.org): #11091: BR2_PRIMARY_SITE doesn't work (wget is selected... #11141: WF111 package no longer available #11211: Internal compiler error: Killed (program cc1plus).. #11236: util-linux fails to build on Travis CI when python.. #11246: Glibc 2.28 - fails to build host-bison and host-m4 #11256: Add python-falcon and python-mimeparse packages 2018.08-rc2, Released August 20th, 2018 Fixes all over the tree. pkg-kconfig: Support dependencies needed to run the configurator, E.G. recent Linux kernel versions needing flex and bison. Defconfigs: ARM Juno: Bump ATF to fix a build issue. Raspberrypi2: Bump rootfs size. Snps_archs38_vdk: Correct /etc/inittab. Technologic ts7680: Correct genimage configuration. Orange PI PC / Zero, Sheevaplug: Bump U-boot to 2018.07 to fix build issue. Ensure host-openssl is pulled in for kernel builds where needed. Updated/fixed packages: aircrack-ng, bind, boost, boot-wrapper-aarch64, bzip2, busybox, chrony, cryptsetup, dahdi-tools, dbus, domoticz, eigen, ipsec-tools, libarchive, libfuse, libgit2, libopenssl, libselinux, lighttpd, lvm2, m4, makedevs, mariadb, mesa3d-headers, mono, ncmpc, ncurses, nodejs, php, python-django, python-pyqt5, qt5base, qt5serialbus, ruby, samba4, uboot-tools, uclibc, vlc, waylandpp, wireless_tools, wireshark, wpa_supplicant, mtd, xdriver_xf86-video-ati, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #10781: cryptsetup luksOpen container_file container causes.. #10996: bogus musl ARM toolchain #11191: xattr and check-package issue 2018.08-rc1, Released August 5th, 2018 Toolchain: - add support for gcc 8.x, switch to gcc 7.x as the default version - add support for gdb 8.1, switch to gdb 8.0 as the default and remove gdb 7.10/7.11 - add support for binutils 2.31 - NIOSII CodeSourcery toolchain updated - Linaro AArch64 BE toolchain added, and other Linaro toolchains updated - Synopsys ARC pre-built toolchain updated Architecture: add support for ARM Cortex-M7 Major updates: - systemd bumped to 239 - Qt5 bumped to 5.11.1 - Rust bumped to 1.27 - GStreamer stack bumped to 1.14.2 - X.org server bumped to 1.20, and all X.org proto packages replaced by the single xorgproto package - i.MX6 support packages bumped to 6.2.4 - i.MX Vivante graphics version bumped to 6.2.4.p1.2, adding support for Wayland and i.MX8MQ platforms Linux: bumped to 4.17 by default. Infrastructure: new package infrastructure added for packages using the Meson build system New packages: at-spi2-atk, at-spi2-core, capnproto, cmocka, corkscrew, cutelyst, davfs2, flatcc, libidn2, libgit2, libopusenc, mender, nghttp2, perl-convert-asn1, perl-crypt-blowfish, perl-crypt-cbc, perl-digest-md5, perl-mime-base64-urlsafe, perl-mojolicious-plugin-authentication, perl-net-ping, perl-net-snmp, perl-net-ssh2, perl-net-telnet, pigz, python-reentry, python-request-id, python-validators, python-webob, shadowsocks-libev, speexdsp, xorgproto, wampcc New defconfigs: NXP i.MX7D SDB, Boundary Devices Nitrogen 8M, Olimex A10 OLinuxino, ZynqMP ZCU106 Removed packages: all xproto_* have been removed and replaced by xorgproto Issues resolved (http://bugs.uclibc.org): #9411: MUSL build with RT Error relocating /lib/libgcc_s.so.1: __cpu_indicator_init: symbol not found #9921: lockfile module within python-daemon not available #10341: gdb install of py files when using buildroot toolchain includes build path #10661: /etc/init.d/S29netplug starts multiple instances of netplugd #10751: Missing dependency in pulseaudio package #10811: kodi-17.6-Krypton does not compile for freescale_* devices #10856: openblas on qemu_x86_64_defconfig fails with "sgemm_kernel.o: No such file or directory" #11056: Compiling a file that uses libdrm headers fails with: fatal error: drm.h: No such file or directory #11061: support/download: git version=master broken #11071: Building postgresql package on Debian 9.4 x64 for armel target fails #11076: Docker containerd installed to incorrect path #11101: host-patchelf Endian Issue with relative RPATH #11111: raspberry pi 3 b+: missing BSP for 64-bit kernel #11121: statfs call corrupts memory struct statfs too small #11181: Switching toolchain does not work 2018.05.3, Released October 6th, 2018 Important / security related fixes. Add a number of patches to fix build errors for host utilities on modern distributions using glibc-2.28. mkusers: Ensure existing group members are preserved when a group is reprocessed. printvars: Fix issue with exceeding shell command line length limits for certain setups. Updated/fixed packages: acpid, android-tools, apache, arp-scan, bandwidthd, bind, bison, brltty, chipmunk, connman, cppcms, fio, gcc, ghostscript, gnupg, httping, igmpproxy, imagemagick, imlib2, ipsec-tools, lcm2, libcurl, libesmtp, libnfs, libssh, libxslt, links, mediastreamer, minicom, moarvm, nilfs-utils, ocrad, parted, php, postgresql, pv, python-django, qt, qt5quickcontrols, qt5webengine, screen, sdl2, shairport-sync, squashfs, strongswan, vboot-utils, webkitgtk, wireguard, x265, xen, xlib_libXfont, xlib_libXft, xlib_libxshmfence, zeromq 2018.05.2, Released August 28th, 2018 Important / security related fixes. Defconfigs: Raspberrypi2: Bump rootfs size, T7680: Fix genimage.cfg issue, ARM Juno: Bump ATF to v1.3 to fix build issue. Updated/fixed packages: acl, attr, apache, bind, boot-wrapper-aarch64, brltty, bzip2, chrony, crda, cryptsetup, dahdi-tools, dmidecode, dropbear, eigen, ffmpeg, gawk, gcc, ghostscript, gnutls, imx-gpu-viv, ipsec-tools, libarchive, libfuse, libglib2, libopenssl, libselinux, libsoup, lighttpd, linuxptp, lttng-modules, lttng-tools, lua-flu, lvm2, m4, makedevs, mariadb, mbedtls, mesa3d-heders, mtd, ncurses, nodejs, openssh, php, python-django, rauc, ruby, samba4, stress-ng, ti-utils, uboot-tools, uclibc, vim, waylandpp, wireless_tools, wireless-regdb, wireshark, wpa_supplicant, xorriso, znc Issues resolved (http://bugs.uclibc.org): #10781: cryptsetup luksOpen container_file container causes.. #10986: Installing package attr when already supplied by.. #11191: xattr and check-package issue 2018.05.1, Released July 20th, 2018 Important / security related fixes. U-Boot: Ensure host version of ncurses is picked up and not host-ncurses built by buildroot, as that otherwise causes widechar/non-widechar conflicts and corrupted menuconfig menus. Linux: Enable CONFIG_PERF_EVENTS when perf is enabled. Toolchain: ARC tools updated to arc-2018.03. pkg-stats: Fix python 3.x compatibility. dl-wrapper: Fix support for URIs containing '+', fix no-check-hash for inferred site method. Defconfigs: Raspberrypi3: Bump rootfs size, Minnowboard-max: Support ethernet on Turbot variant. Updated/fixed packages: audit, bind, btrfs-progs, cifs-utils, clamav, collectd, coreutils, docker-containerd, dos2unix, edid-decode, file, gcc, gdb, gnupg, gnupg2, heimdal, hidapi, imagemagick, libcurl, libgcrypt, libglib2, liblogging, libostree, libressl, libsoup, libv4l, libvncserver, libvorbis, libwebsockets, libxslt, lm-sensors, mariadb, mpg123, ncurses, network-manager, nodejs, patchelf, perl, php-amqp, pinentry, pixiewps, qpdf, qt53d, qt5base, qt5charts, qt5script, redis, systemd, triggerhappy, uboot, wireguard, wireless-regdb, wireshark 2018.05, Released June 1st, 2018 Minor fixes. Download: Work around for hanging connections for packages from CVS, by adding a 10 minute max timeout. Updated/fixed packages: binutils, clang, dash, expect, git, glibc, jpeg-turbo, libjpeg, log4cplus, openvmtools, xen, Issues resolved (http://bugs.uclibc.org): #11051: runtime issue on STM32 with usage of binutils 2.29.x 2018.05-rc3, Released May 28th, 2018 Fixes all over the tree. Toolchain: ARC tools updated to arc-2018.03-rc2. Fs: Ensure hard links in TARGET_DIR are correctly copied for filesystem input. With the recent changes to the file system generation logic, hard links were "expanded" in file system images leading to bloated rootfs images for setups with hard links. Infrastructure: Error out for packages using the 'local' method but forgetting to specify _SITE. Build rpcgen for the host when needed to support distributions no longer shipping rpcgen with glibc (E.G. recent Fedora). Updated/fixed packages: autofs, bash-completion, binutils, busybox, cjson, elf2flt, libcoap, libcurl, libtirpc, lrzsz, poppler, procps-ng, qt-webkit-kiosk, quota, samba4, xfsprogs Issues resolved (http://bugs.uclibc.org): #11031: ld-elf2flt: host/bin/ld.real': execvp: No such file.. #11036: C compiler cannot create executables #11046: Git package binaries are ~180MB (compared to ~20MB in.. 2018.05-rc2, Released May 22nd, 2018 Fixes all over the tree. Dependencies: Check that the current working directory (.) isn't listed in PATH as that causes various build issues. Manual: Clarify that git branch names may not be used as version identifiers. This has never been supported, but was kind of working (with some limitations) before the git download rework - Now it does not work at all. Linux: Ensure host version of ncurses is picked up and not host-ncurses built by buildroot, as that otherwise causes widechar/non-widechar conflicts and corrupted menuconfig menus. Packages: Renamed a number of package options not prefixed with BR2_PACKAGE_ for consstency. Download infrastructure: Fix file:// protocol handling after download rework. Updated/fixed packages: acl, apr-util, asterisk, attr, bluez5_utils, cifs-utils, clamav, clang, cups-filters, dahdi-linux, exim, faketime, gdb, go, gst1-plugins-bad, imx-mkimage, ipsec-tools, jamvm, janus-gateway, jquery-ui-themes, libcap, libcurl, libftdi, libkcapi, libkrb5, libmediaart, libmodbus, libmodplug, libmpd, libnetfilter_cthelper, libnetfilter_cttimeout, libnfc, libnfnetlink, libnss, liboauth, libogg, libosip2, libpam-radius-auth, libpcap, libpciaccess, llvm, log4cplus, ltrace, lynx, mbedtls, modem-manager, nfs-utils, python-cython, python-websockets, qt5cinex, qt5wayland, rauc, snort, strace, ti-sgx-km, transmission, wavpack, wget, woff2, xen, zmqpp, znc, zstd Issues resolved (http://bugs.uclibc.org): #10986: Installing package attr when already supplied by... #11011: BUildroot for Raspberry Pi 2 #11016: Wrong compiler used for external user host packages 2018.05-rc1, Released May 9th, 2018 Toolchain: glibc bumped to 2.27, musl bumped to 1.1.19, uClibc-ng 1.0.30, Linux kernel headers bumped to 4.16.x. Architecture: support for the Blackfin architecture has been removed, as it was removed from Linux upstream, poorly maintained in binutils/gdb, and abandoned by Analog Devices. Numerous packages updated to have hashes for their license files. Systemd can now be built with uClibc toolchains. Linux: addition of BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF and BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL to support building Linux kernel configurations that need libelf on the host or openssl on the host. Coding style: - all Python scripts are now verified with flake8 - check-package extended to check all Config.in and .mk files in tree, not only the ones in package/ Infrastructure: - The download infrastructure has seen a major overhaul, with the main visible new feature being Git caching: a package fetched from Git no longer needs to be re-cloned entirely everytime its version is changed. Anoter visible change is that the download folder now has subfolders per package. See http://lists.busybox.net/pipermail/buildroot/2018-April/217923.html for more details about those changes. - The logic that generates the root filesystem images has been reworked, with the main goal of allowing several filesystem images to be produced in parallel, also a requirement for top-level parallel build. Now, a .tar filesystem image is always created, and re-extracted in a private directory to create each format-specific filesystem image. - A new package infrastructure was introduced for Go-based packages: golang-package. - Dependencies on extraction tools are now handled as proper per-package dependencies, using _EXTRACT_DEPENDENCIES. Beyond a cleanup, this is also a preparation step for top-level parallel build support. - When a file being downloaded is part of a package with a .hash file, but there is no hash listed for this file, the file is now preserved in the download directory rather than removed. This helps when updating a package, as it gives the ability to easily calculate the hash of the file. - Addition of '-show-recursive-depends' and '-show-recursive-rdepends' make targets, to respectively display the recursive list of dependencies and the recursive list of reverse dependencies of a given package. - The /etc/shells file is now automatically generated with the list of shell programs installed on the system. - Addition of -Ofast optimization level as an available option. Major updates: Go updated to 1.10, Erlang bumped to 20.3, Qt5 bumped to 5.10.1. New packages: 18xx-ti-utils, abootimg, bluez-alsa, brotli, chipmunk, clang, docker-compose, docker-proxy, flare-engine, flare-game, gst1-interpipe, gstreamer1-editing-services, hackrf, i2pd, imx-alsa-plugins, imx-mkimage, libcdio-paranoia, libkrb5, llvm, pixiewps, python-backports-ssl-match-hostname, python-cached-property, python-cython, python-docker, python-dockerpty, python-docker-pycreds, python-flask-sqlalchemy, python-functools32, python-influxdb, python-json-models, python-libusb1, python-networkx, python-psycopg2, python-pymodbus, python-sqlalchemy, python-subprocess32, python-texttable, python-websocket-client, python-yieldfrom, quotatool, reaver, snort, sunxi-mali-mainline, sunxi-mali-mainline-driver, tk, tpm2-abrmd, tpm2-tools, tpm2-tss, udftools, vte, woff2. New defconfigs: ARC HS Development Kit, Arcturus ucls1012a, Freescale i.MX6UL EVK (with vendor kernel), Freescale i.MX6 SoloLite EVK (with vendor kernel), Freescale i.MX31 3Stack, Freescale i.MX8Q EVK Freescale p1025twr, Freescale t1040d4rdb, Qemu PPC64 E5500, SolidRun ClearFog Base, Tinker RK3288, Vyasa RK3288, Removed packages: iqvlinux, kodi-adsp-*, mplayer Removed defconfigs: ci40, firefly_rk3288, freescale_p1010rdb_pa, freescale_mpc8315erdb, riotboard, teliv_evk_pro3 Issues resolved (http://bugs.uclibc.org): #10151: toolchain eclipse register : fails with a custom BR2_HOST_DIR #10511: Packages get downloaded uncompressed with wget #10531: QtWebengine doesn't build if the host hasn't a 32 bits C++ compiler working #10846: error in compiling gnutls #10886: openssl-1.0.2n fails to build #10896: /bin/sh not in /etc/shells #10961: Grub2 fails to build for x86_64 when BR2_SSP_ALL is enabled 2018.02.12, Released March 29th, 2019 Important / security related fixes. Updated/fixed packages: avahi, beecrypt, busybox, clamav, cups, devmem2, fetchmail, file, fltk, gcc, gdb, git, jq, leveldb, libopenssl, libraw, libseccomp, libssh2, libunistring, mariadb, mosquitto, nodejs, ntp, openjpeg, perl, php, putty, qt5webkit, rdesktop, systemd, wireshark, vsftpd, xapp_xdm, xlib_libXdmcp 2018.02.11, Released February 23th, 2019 Important / security related fixes. Ensure the PLATFORM and OS environment variables are not set, as they cause build issues for some packages. The package list infrastructure now correctly handles packages installing files with old mtime. Linux: Skip hash checks for user supplied downloadable patches, as no hash checksums are available for those. scanpypi: protect against zip-slip vulnerability in zip/tar handling Updated/fixed packages: bind, dhcpcd, dovecot, ghostscript, gnuradio, imagemagick, jpeg-turbo, libarchive, libb64, libcurl, libid3tag, madplay, mosquitto, openssh, php, postgresql, proftpd, python, python-django, python3, qt5base, sqlcipher, swupdate, systemd, unzip, webkitgtk 2018.02.10, Released January 31th, 2019 Important / security related fixes. Defconfigs: Fixes for Lego EV3, QEMU AArch64-virt check-package: fix Python 3 support get-developers: Fix behaviour when called from elsewhere than the toplevel directory. cmake: Also set CMAKE_SYSTEM_VERSION in toolchainfile.cmake Updated/fixed packages: acpica, apache, apr, asterisk, avrdude, cargo, cc-tool, dash, dhcpdump, dmalloc, gnuchess, gnupg2, leveldb, libarchive, libassuan, libftdi1, libgpg-error, libhttpparser, libmad, libsndfile, libsquish, liburiparser, libwebsock, libxml2, lighttpd, lm-sensors, lua-msgpack-native, mbedtls, mosquitto, netatalk, nodejs, openssh, pango, patchelf, php, python-django, python-pyyaml, rauc, rp-pppoe, s6-networking, samba4, sdl_sound, shairport-sync, sqlite, subversion, sunxi-cedarx, tcpreplay, tekui, usb_modeswitch, webkitgtk, wireshark, wolfssl, xapp_rgb, xenomai, xerces Issues resolved (http://bugs.uclibc.org): #11576: Unable to start apache with event MPM on raspberry pi 3 2018.02.9, Released December 20th, 2018 Important / security related fixes. defconfigs: Fixes for ci20 Updated/fixed packages: c-ares, dante, freetype, ghostscript, glibc, gnutls, go, libcurl, libgpgme, libid3tag, libiscsi, libmpd, libopenssl, libpjsip, linux, liquid-dsp, luvi, lynx, msgpack, nginx, nodejs, php, popt, pps-tools, python-numpy, python-requests, samba4, sdl2_net, squashfs, swupdate, uclibc, wine, webkitgtk, xfsprogs Issues resolved (http://bugs.uclibc.org): #11426: pps-tools bash dependency 2018.02.8, Released November 26th, 2018 Important / security related fixes. fs: Drop intermediate tarball from the filesystem handling to fix an issue with xattrs handling related to fakeroot. Ensure tarball target includes xattrs. download: Fix confusion in git submodule handling if dl/ is a symlink. toolchain: Only allow enabling stack protection on architectures with control flow integrity (CFI) support. Only allow FORTIFY_SOURCE support on gcc >= 6. genrandconfig: Fix missing newline in BR2_WGET handling, causing the following line to be ignored. This would affect BR2_ENABLE_DEBUG, BR2_INIT_BUSYBOX, BR2_INIT_SYSTEMD, BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV, BR2_STATIC_LIBS or BR2_PACKAGE_PYTHON_PY_ONLY depending on the randomization. show-build-order: Also include the dependencies of rootfs-common. Defconfigs: Fixes for Armadeus APF27, imx6sabre. graph-depends: Fix for package names starting with a non-alpha character. Updated/fixed packages: attr, audit, bind, brotli, easydbus, elfutils, gauche, gcc, giflib, gpsd, lcdproc, libcurl, libiscsi, libnfs, libnspr, libnss, libkcapi, libsemanage, liburiparser, lighttpd, linux, lua-curl, mariadb, mmc-utils, mosquitto, mysql, neardal, netplug, network-manager, nfs-utils, nginx, openocd, openswan, p11-kit, postgresql, prosody, qemu, qt, rpm, ruby, samba4, squid, supertuxkart, systemd, tar, trace-cmd, traceroute, twolame, uclibc, usb_modeswitch, vtun, webkitgtk, xdriver_xf86-video-geode, xlib_libfontenc, xproto_inputproto, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #11086: download/git submodule breaks on symlinked dl folder #11251: Util scanpypi failes when package change - to _ in.. #11476: stdio2.h error invalid use of __builtin_va_arg_pack #11481: Docs: Is external.desc required? 2018.02.7, Released October 25th, 2018 Important / security related fixes. Detect and reject build paths containing '@', as this confuses a number of packages, including GCC. utils/get-developers: Add -e option for use with git send-email. utils/diffconfig: Make it work for (non-Buildroot) config files not using the BR2_ prefix. u-boot: Fix for environment image handling on big endian systems. Updated/fixed packages: binutils, ca-certificates, cups-filters, erlang, file, freetype, gcc, git, gvfs, leveldb, libarchive, libcurl, libssh, live555, ljlinenoise, mariadb, mongoose, netsnmp, nmap, nodejs, ntp, open-plc-utils, poco, psmisc, ptpd2, python-enum34, qemu, qt, qt5base, setools, spice, spice-protocol, tinc, ustr, wireshark Issues resolved (http://bugs.uclibc.org): #11396: uboot environment image checksum invalid if target is big endian 2018.02.6, Released October 7th, 2018 Important / security related fixes. Add a number of patches to fix build errors for host utilities on modern distributions using glibc-2.28. mkusers: Ensure existing group members are preserved when a group is reprocessed. printvars: Fix issue with exceeding shell command line length limits for certain setups. Updated/fixes packages: acpid, android-tools, apache, arp-scan, bandwidthd, bind, bison, clamav, connman, cppcms, cramfs, fio, gcc, ghostscript, glibc, gnupg, httping, igmpproxy, imagemagick, imlib2, ipsec-tools, lcms2, libcurl, libesmtp, libnfs, libssh, libxslt, links, linuxptp, mediastreamer, minicom, moarvm, nilfs-utils, ocrad, parted, php, pv, python-django, qt, qt5quickcontrols, qt5webengine, screen, sdl2, shairport-sync, squashfs, strongswan, vboot-utils, webkitgtk, wireguard, x265, xen, xlib_libXfont, xlib_libXft New packages: brotli, woff2 2018.02.5, Released August 29th, 2018 Important / security related fixes. Defconfigs: Raspberrypi2: Bump rootfs size, T7680: Fix genimage.cfg issue, ARM Juno: Bump ATF to v1.3 to fix build issue. Updated/fixed packages: acl, apache, attr, bind, boot-wrapper-aarch64, brltty, bzip2, chrony, crda, cryptsetup, dahdi-tools, dmidecode, dropbear, eigen, erlang, ffmpeg, gawk, gcc, ghostscript, gnutls, ipsec-tools, libarchive, libfuse, libopenssl, libselinux, libsoup, lighttpd, linuxptp, lttng-modules, lttng-tools, lua-flu, lvm2, m4, makedevs, mariadb, mbedtls, mesa3d-headers, mtd, ncurses, nodejs, openssh, php, postgresql, python-django, qt5xmlpatterns, ruby, samba4, shairport-sync, stress-ng, ti-utils, uboot-tools, vim, waylandpp, wireless_tools, wireshark, wpa_supplicant, xorriso, znc Issues resolved (http://bugs.uclibc.org): #10781: cryptsetup luksOpen container_file container causes.. #10986: Installing package attr when already supplied by.. #11191: xattr and check-package issue 2018.02.4, Released July 21th, 2018 Important / security related fixes. U-Boot: Ensure host version of ncurses is picked up and not host-ncurses built by buildroot, as that otherwise causes widechar/non-widechar conflicts and corrupted menuconfig menus. Linux: Enable CONFIG_PERF_EVENTS when perf is enabled. Defconfigs: Raspberrypi3: Bump rootfs size, Minnowboard-max: Support ethernet on Turbot variant. Updated/fixed packages: bind, clamav, collectd, dos2unix, edid-decode, gcc, gdb, heimdal, hidapi, imx-gpu-viv, libcurl, libglib2, liblogging, libostree, libsoup, libv4l, lm-sensors, ncurses, network-manager, patchelf, pinentry, procps-ng, qpdf, qt5, qt53d, qt5base, qt5charts, qt5script, qt5serialport, systemd, wireguard, wireless-regdb Issues resolved (http://bugs.uclibc.org): #11101: host-patchelf Endian Issue with relative RPATH 2018.02.3, Released June 18th, 2018 Important / security related fixes. Various fixes for building on modern distributions (GCC 8.x, no rpcgen utility). ARM: Default to binutils 2.28 and warn about newer binutils versions, which are known to cause boot failures for Linux kernels built in thumb mode. Busybox/mdev: Fix module autoloading. Busybox/sysvinit: inittab: Add /dev/{stdin,stdout,stderr} symlinks, call swapon -a to activate any configured swap devices. Dependencies: Check that PATH does not contain current working directory, which triggers a number of build failures. Infrastructure: Error out for packages erroneously using the 'local' site method but not defining a _SITE. Linux: Fix cuImage. / simpleImage. handling. Ensure kconfig uses ncurses from the host to fix a ncurses/ncursesw mixup, causing menuconfig display corruption. Toolchain: Workarounds for fix-rpath issues with binutils and elf2flt. Util-linux: Fix blocking on getrandom() issue with recent kernels. Remove broken freescale_imx31_3stack, freescale_imx6sololiteevk and freescale_imx6ulevk defconfigs. Updated/fixed packages: apr-util, asterisk, attr, audit, autofs, binutils, busybox, cifs-utils, cups-filters, dash, ebtables, exim, expect, f2fs-tools, faketime, file, gdb, git, glibc, gnupg, gnupg2, gst1-plugins-bad, imagemagick, jamvm, jpeg-turbo, libcap, libcoap, libcurl, libgcrypt, libjpeg, libnss, libressl, libtirpc, libvncserver, libvorbis, libxslt, log4cplus, lrzsz, ltrace, lynx, mariadb, mbedtls, mpg123, nasm, netplug, network-manager, nfs-utils, nodejs, openvmtools, patch, perl, php-amqp, poppler, procps-ng, python, python-websockets, quota, redis, samba4, sysvinit, transmission, triggerhappy, util-linux, wavpack, wget, wireshark, xen, zmqpp Issues resolved (http://bugs.uclibc.org): #10986: Installing package attr when already supplied by busybox.. #11031: ld-elf2flt: host/bin/ld.real': execvp: No such file or.. 2018.02.2, Released May 4th, 2018 Important / security related fixes. Tweak package size/file instrumentation to better handle package rebuilds. Revert /etc/shells creation when bash is enabled. Exclude /lib/firmware from the rpath fixup logic, as it may contain non-native ELF files. Scanpypi: Support the new PyPi infrastructure. Handle GCC 8.x on the host. Ensure timestamp of /usr is updated to support the systemd ConditionNeedsUpdate option. Updated/fixed packages: bluez5_utils, flann, gdb, gnupg2, grub2, libcec, libcgi, libglib2, libgpg-error, libgpgme, libtomcrypt, mbedtls, mkpasswd, php, python, python-requests, python-watchdog, qt53d, qt5websockets, sdl2, sdl2_image, syslog-ng, systemd, tcl, tcllib, uclibc, usb_modeswitch, wireguard, wmctrl Issues resolved (http://bugs.uclibc.org): #10896: /bin/sh not in /etc/shells #10961: Grub2 fails to build for x86_64 when BR2_SSP_ALL is enabled 2018.02.1, Released April 9th, 2018 Important / security related fixes. Removed unmaintained defconfigs: Creator Ci40, Firefly rk3288, Freescale mpc8315erdb / p1010rdb_pa, Riotboard, Teliv EVK Pro3. Infrastructure: Speed up instrumentation for package size by comparing timestamps instead of md5 checksums, as doing checksums could lead to up to 25% longer build time for big configurations. Rename the internal _BASE_NAME variable to _NASENAME to avoid name clashes with packages ending on '-base'. Add a better fix for build issues for autotools based packages checking for C++ support on toolchains without C++ support. Build host-tar if tar is older than 1.27 on the build machine to work around reproducibility issues with git archives containing long paths. check-unique-files: Fix for filenames not representable in the users' locale. Check-bin-arch: Add support for per-package ignore paths (_BIN_ARCH_EXCLUDE). Toolchain: Fix SSP support detection for external toolchains. linux: Add _NEEDS_HOST_OPENSSL / LIBELF options to ensure these dependencies are available for Linux configurations needed these dependencies, similar to how it is done for U-Boot. Support custom (not in tree) device tree files in addition to in-tree ones. U-Boot / uboot-tools: Fix header conflict with libfdt-devel installed on host. Updated/fixed packages: apache, busybox, c-ares, cmake, docker-engine, enlightenment, eudev, fbgrab, freescale-imx, gtest, imagemagick, intel-microcode, irssi, jimtcl, kmod, kodi, ktap, libcoap, libcurl, libfcgi, libhttpparser, libminiupnpc, libopenssl, libpjsip, libss7, libssh2, libupnp libupnpp, libuv, libvorbis, memcached, motion, musl, nodejs, ntp, openblas, opencv3, openocd, opus-tools, patch, php, pkgconf, postgresql, powerpc-utils, python-jsonschema, python-webpy, qemu, qt5bsae, qt5script, qt5webkit, rapidjson, rauc, sam-ba, samba4, sngrep, systemd, tremor, uboot-tools, uclibc-ng-test, upmpdcli, wireshark, xerces, xterm, zstd New packages: docker-proxy, python-functools32 Issues resolved (http://bugs.uclibc.org): #10766: upmpdcli: Segmentation fault #10776: ktap fails to build #10846: error in compiling gnutls #10856: openblas on qemu_x86_64_defconfig fails with "sgemm_.. 2018.02, Released March 4th, 2018 Fixes all over the tree. Issues with systemd with a readonly rootfs and DBus fixed. Instructure: - check-uniq-files: fix Python 2.6 compatibility. - dependencies.sh: check for external argparse module for Python 2.6. - Add infrastructure to detect and use a UTF-8 locale on the host, needed by systemd. Update/fixed packages: clamav, dash, dhcp, dovecot, efl, ffmpeg, libv4l, mono, mosquitto, php, postgresql, qt, scanpypi, sdl2, systemd, tor, tvheadend, uboot, wavpack Issues resolved (http://bugs.uclibc.org): #10831: qemu_x86_64_defconfig build fails on linux-headers.. 2018.02-rc3, Released February 27th, 2018 Fixes all over the tree. check-bin-arch: skip /lib/modules to allow 32-bit userland with 64bit kernel. dependencies: Blacklist tar 1.30+ and build our own host-tar if needed as tar 1.30+ changed the --numeric-owner output for long path names. Build host-tar before other host-dependencies as they need it to extract their source tarballs. Update/fixed packages: asterisk, azmq, bluez5_utils, domoticz, e2fsprogs, erlang, exim, glibc, gpsd, jq, libglib2, libvorbis, mariadb, mbedtls, mesa3d, mesa3d-headers, mpv, patch, pcre2, php, qt5, qt5multimedia, qt5wayland, qt5webengine, qt5webkit, systemd, quagga, rustc, uboot, wireguard, zic, zlib-ng Issues resolved (http://bugs.uclibc.org): #10726: Current libglib2.mk creates broken libglib2 binary... #10786: Linux fails to build unless make linux-menuconfig... #10796: Cannot generate cpio image without selecting CON... 2018.02-rc2, Released February 15th, 2018 Fixes all over the tree. Dependencies: Ensure C++ support is available like for C support for packages needing 32bit host support. utils/genrandconfig: Check host dependencies for config. Updated/fixed packages: busybox, dnsmasq, dropbear, ffmpeg, glibc, keepalived, libcpprestsdk, libgpiod, libmaxminddb, librsvg, libtasn1, libv4l, libxml2, lightning, ltp-testsuite, mesa3d, mesa3d-demos, mesa3d-headers, nftables, open-lldp, php, postgresql, python-crossbar, qt5, qt53d, qt5enginio, qt5tools, qt5webengine, qt5webkit, rsync, rust-bin, rustc, systemd Issues resolved (http://bugs.uclibc.org): #9781: ti-sgx-km build on kernel >4.1 #10141: Squashfs extended attribute failures 2018.02-rc1, Released February 5th, 2018 The global source-check and per-package -source-check targets have been removed. Architecture: Add x86 Silvermont variant. Add several new ARM variants, rework MIPS NaN logic. Support mainline binutils/gcc for ARC. Toolchains: Linaro toolchains upgraded to 2017.11 release, ARC external toolchains upgraded to arc-2017.09. Libatomic is now also copied for external musl based toolchains. Add binutils 2.30.x and switch to binutils 2.29.x by default. Added hardening options to build with RELRO and FORTITY. New defconfigs: Bananapi M64, FriendlyARM Nanopi A64 & NEO2, imx6slevk, imx6sx-sdb, imx6ulevk, Olimex A64-OLinuXino, Orangepi lite / pc plus / pc / prime / win / win plus / zero plus2, Pine64, Solidrun MacchiatoBin. Sopine. Add utils/diffconfig, a simple utility for comparing configuration files - Adapted from the version in the Linux kernel. Infrastructure: Check that the same file is not touched by multiple packages, as a preparation for toplevel parallel builds. Hashes for the license files for a large number of packages have been added, ensuring that license changes will not be missed when packages are bumped. Fix build issue for autotools based packages checking for C++ support on toolchains without C++ support and on a distro lacking /lib/cpp (E.G. Arch Linux). Support for the meson build system. Pie charts generated by 'graph-build' or 'graph-size' are now sorted according to the size of each piece. System: Only show getty options when busybox init or sysvinit are used. ARM-trusted-firmware: Support ATF bundled in U-Boot as well as U-Boot bundled in ATF. Zlib is now a virtual package, provided by either libzlib or zlib-ng, similar to openssl. Support for the Rust programming language. New packages: aoetools, armbian-firmware, binaries-marvell, brltty, cargo, cargo-bin, cups-filters, curlpp, daq, flatbuffers, gconf, glorytun, gstreamer1-mm, imx-m4fwloader, imx-gpu-g2d, json-for-modern-cpp, libcpprestsdk, libgta, libostree, libupnp18, luadbi, luadbi-sqlite3, lua-utf8, lynx, meson, mv-ddr-marvell, nilfs-utils, opentracing-cpp, open-lldp, pimd, proj, python-flask-cors, python-jaraco-classes, python-more-itertools, python-oauthlib, python-raven, python-remi, python-requests-oauthlib, python-schedule, python-secretstorage, python-see, python-tabledata, python-txtorcon, python-xlib, qt5charts, rtl8189fs, rtl8723bu, rust, rustc, rust-bin, rygel, safeclib, solatus, tcf-agent, traceroute, waylandpp, wolfssl, zisofs-tools, zlib-ng Removed packages: eeprog 2017.11.2, Released January 21st, 2018 Important / security related fixes. External toolchain: libatomic is now also copied for musl based toolchains. nconfig: Fix for ncurses/ncursesw linking issue causing crashes. System: Only show getty options when busybox init or sysvinit are used. Infrastructure: Fix build issue for autotools based packages checking for C++ support on toolchains without C++ support and on a distro lacking /lib/cpp (E.G. Arch Linux). Pie charts generated by 'graph-build' or 'graph-size' are now sorted according to the size of each piece. Updated/fixed packages: asterisk, avahi, bind, busybox, coreutils, eeprog, intel-microcode, iputils, irssi, kmsxx, libiio, linux-firmware, lz4, mariadb, matchbox-lib, mcookie, ntp, php, pound, rpcbind, tar, ti-cgt-pru, webkitgtk, xen, xlib_libXpm Issues resolved (http://bugs.buildroot.org): #9996: lz4 package does not install lz4 binaries in target #10176: Rsyslog's S01logging is deleted by Busybox.mk from... #10216: package/x11r7/mcookie/mcookie.c:207: bad size ? #10301: systemd/getty unused options #10331: kmsxx, host installation fails with BR2_SHARED_... #10556: Building ntp package with SSL library libressl... #10641: avahi-autoipd not starting when using systemd-tmpfiles 2017.11.1, Released December 31th, 2017 Important / security related fixes. Updated/fixed packages: asterisk, checkpolicy, dhcp, flann, gdb, glibc, heimdal, kodi-pvr-mediaportal-tvserver, kodi-pvr-stalker, libcue, libopenssl, libpqxx, libsoxr, linknx, linux-tools, lldpd, ltp-testsuite, mariadb, mfgtools, nodejs, nut, pulseaudio, python-cffi, qemu, rsync, tor, uboot, uboot-tools, vlc, webkitgtk, weston, wireguard, wireshark, xenomai, xfsprogs 2017.11, Released November 30, 2017 Fixes all over the tree. Toolchain: Use github mirror for Glibc. Defconfigs: Correct boot.cmd for bananapi-m1. Makefiles: Workaround include order issues for certain make versions by explicitly sorting the result of wildcard where it matters. Download: Ensure subversion runs in non-interactive mode. Updated/fixed packages: asterisk, boost, chrony, dovecot, dvb-apps, exim, feh, freerdp, fwup, google-breakpad, jose, kvm-unit-test, lftp, libcurl, libevent, libfastjson, libpjsip, libupnp, linphone, localedef, lttng-tools, mp4v2, mtools, ndisc6, oracle-mysql, parted, pdbg, qt, qt5connectivity, qt5declarative, qt5webkit, rauc, runc, samba4, shairport-sync, systemd-bootchart, webkitgtk, wireguard, xlib_libXcursor, xlib_libXfont, xlib_libXfont2, Issues resolved (http://bugs.buildroot.org): 10501: host-localedef fails to compile on Ubuntu 17.10 10506: Changed kernel image type (e.g. zImage to uImage)... 2017.11-rc2, Released November 13th, 2017 Fixes all over the tree. Updated/fixed packages: collectd, ffmpeg, freerdp, go-bootstrap, imagemagick, jimtcl, libpjsip, libplist, libuv, mesa3d, nodejs, ntp, openjpeg, postgresql, python-numpy, ruby, snmp++, usb_modeswitch, util-linux, vboot-utils, webkitgtk, wireshark, wpa_supplicant, xapp_xdriinfo Issues resolved (http://bugs.buildroot.org): #10326: mesa3d package fails to build when BR2_SHARED_STATIC_LIBS=y #10491: Cannot output security warning when compiled with buildroot.. 2017.11-rc1, Released November 6th, 2017 Fixes all over the tree and new features. Openssl is now a virtual package, which may be provided by OpenSSL (now renamed to libopenssl) or LibreSSL. libssh2: there is now an explicit choice of the backend to use (mbedtls, gnutls or openssl). Previously, the choice was implicit based on the TLS library that was selected. Now, it is possible to choose the backend, which is important if several TLS libraries are selected. netsnmp: all MIB files are now installed, making the target filesystem a bit bigger than before. To remove unneeded MIBS, you should use a post-build script. Toolchain: Linaro toolchains updated to 2017.08, ARC toolchain updated to 2017.09, Glibc updated to 2.26, Glibc support for ARCv2. The toolchain wrapper now handles SOURCE_DATE_EPOCH for older (pre-gcc7.x) toolchains for BR2_REPRODUCIBLE. New defconfigs: Atmel SAM45D27, Bananapi M1 and M2 Plus, Engicam i.CoreM6 Qt5 configuration, i.MX6 sabreauto (mainline kernel/u-boot), i.MX6Q sabresd Qt5 configuration, i.MX7d-pico, QEMU ppc64le, Raspberry pi3 Qt5 webengine configuration, Technologic TS-7680. New packages: asterisk, azmq, bcg729, boinc, dahdi-linux, dahdi-tools, freeswitch-mod-bcg729, fscryptctl, libb64, libpri, libss7, lua-basexx, lua-compat53, lua-cqueues, lua-curl, lua-datafile, lua-fifo, lua-httpd, lua-lpeg-patterns, lua-markdown, lua-sailor, lua-value, luksmeta, minetest, minetest-game, pdmenu, prosody, python-aiocoap, python-automat, python-ibmiotf, python-iso8601, python-m2r, python-simplesqlite, python-websockets, python-xmltodict, qt5wayland, qt5webengine, restorecond, selinux-python, semodule-utils, uhubctl, wireguard, wsapi-fcgi, wsapi-xavante Removed packages: aiccu, rfkill, sepolgen Issues resolved (http://bugs.buildroot.org): #10281: lsblk does not compile for util-linux #10336: lttng compilation fails : linking error #10351: glibc missing in rootfs #10356: nfs-utils missing header #10361: python3 python-config script generates invalid includes #10366: dropbear download url has changed #10391: WiringPi retrieves wrong (old) version #10406: Beaglebone black: Buggy SGX driver version, swapped... #10426: uboot-tools' fw_setenv does not update the redundant... #10451: libpcap 1.8.x and 1.7x does not compile on PPC 2017.08.2, Released November 28th, 2017 Important / security related fixes. Qt: 5.6 version updated to 5.6.3. Reproducible: Do not override SOURCE_DATE_EPOCH if already set in the environment. Makefiles: Workaround include order issues for certain make versions by explicitly sorting the result of wildcard where it matters. Updated/fixed packages: apr, apr-util, arqp-standalone, azure-iot-sdk-c, collectd, dvb-apps, ffmpeg, go-bootstrap, google-breakpad, gstreamer, imagemagick, irssi, jimtcl, kvm-unit-test, libcurl, libfastjson, libglib2, libidn, libpjsip, libplist, localedef, lttng-tools, luajit, mesa3d, moarvm, mp4v2, openssh, openssl, oracle-mysql, postgresql, python3, python-pyqt5, qt, qt5base, qt5canvas3d, qt5connectivity, qt5declarative, qt5engineio, qt5graphicaleffects, qt5imageformats, qt5location, qt5multimedia, qt5quickcontrols, qt5quickcontrols2, qt5script, qt5sensors, qt5serialbus, qt5serialport, qt5svg, qt5tools, qt5webchannel, qt5webkit, qt5websockets, qt5x11extras, qt5xmlpatterns, quagga, redis, ruby, samba4, sdl2, snmppp, swupdate, ti-gfx, uboot-tools, usb_modeswitch, vboot-utils, webkitgtk, wget, wireshark, xapp_xdriinfo. Issues resolved (http://bugs.buildroot.org): 10326: mesa3d package fails to build when BR2_SHARED_STATIC_LIBS=y 10361: python3 python-config script generates invalid includes 10501: host-localedef fails to compile on Ubuntu 17.10 2017.08.1, Released October 23rd, 2017 Important / security related fixes. Webkitgtk bumped to the 2.18.x series, fixing a large number of security issues. Defconfigs: galileo: fix ext4 related kernel config, bump kernel for gcc 6.x compatibility, enable wchar support for grub2. wandboard: correct rootfs offset support: Ensure gzip compression level 6 is used for git tarballs. check-bin-arch: Correctly handle (ignore) symbolic links. check-rpath: Also handle PIE binaries External toolchain: Correctly handle glibc Buildroot toolchains built with merged /usr musl: fix ARMv4 build with binutils 2.27.51+, fix for CVE-2017-15650 Updated/fixed packages: apache, augeas, bind, bluez5_utils, busybox, bzip2, cmake, dnsmasq, ejabberd, gcc, git, go, ffmpeg, file, flashrom, gd, gdk-pixbug, gnupg2, hostapd, ifupdown-scripts, imagemagick, iucode-tool, kernel-module-imx-gpu-viv, lame, libarchive, libcurl, libffi, libidn, libmbim, libnspr, libnss, libressl, librsync, libsoup, libxml2, libzip, mbedtls, musl, netplug, nginx, openvpn, pkgconf, poppler, proxychains-ng, qemu, qt, rpi-userland, syslog, ruby, samba4, softether, sqlite, strongswan, subversion, supertuxkart, supervisor, tcpdump, tor, unrar, urq, vboot-utils, webkitgtk, wpa_supplicant, xen, xmlstarlet, xlib_libXfont, xlib_libXfont2, xserver_xorg-server, zsh 2017.08, Released September 1st, 2017 Minor fixes. Toolchain: Don't allow internal toolchain builds for MIPS M6201/P6600, as support for these are not yet in mainline GCC. Updated/fixed packages: bcusdk, connman, dialog, dnsmasq, gnupg, grub2, iostat, iucode-tool, libgcrypt, libkcapi, libphidget, libv4l, linux-tools, mediastreamer, minidlna, nss-pam-ldapd, nvidia-driver, qt-webkit-kiosk, rpcbind, squid, transmission, vde2, vim Updated/fixed defconfigs: Removed packages: simicfs. Issues resolved (http://bugs.buildroot.org): #10261: Grub2 fails to build for x86_64 2017.08-rc3, Released August 23rd, 2017 Fixes all over the tree. Updated/fixed packages: alsa-lib, alsa-utils, cc-tool, dbus-cpp, e2fsprogs, elf2flt, faad2, fakeroot, gcc, git, gpsd, gst1-validate, kvmtool, libconfuse, libepoxy, librsync, libspatialindex, libunwind, linux, linux-headers, lua, mariadb, mesa3d, mtd, openocd, python3, syslinux, sysvinit, whois, xen, zmqpp. Updated/fixed defconfigs: ci20, socrates_cyclone5, toradex_apalis_imx6. Removed defconfig: Armadeus APF9328. skeleton-* packages introduced in -rc1 have been renamed to skeleton-init-* instead. Issues resolved (http://bugs.buildroot.org): #10141: Squashfs extended attribute failures 2017.08-rc2, Released August 11th, 2017 Fixes all over the tree. Updated/fixed packages: bind, dbus, erlang-p1-xml, faad2, ficl, gcc, gdb, glibc, jack2, libcurl, linux, linux-headers, lua, mutt, nvme, qt5base, skeleton-common, snappy, stella, swupdate, uclibc, valgrind, webkitgtk. Updated/fixed defconfigs: beaglebone_qt5, minnowboard_max, nanopi_m1{, _plus}, olimex_a20_olinuxino_lime, qemu_sparc, qemu_sparc64. The cmake-package infrastructure for host packages has been fixed to not incorrectly detect target packages through pkg-config. Issues resolved (http://bugs.buildroot.org): #9926: systemd-resolved.service: Failed at step NAMESPACE (systemd 233) #10021: libqeglfs-viv-integration.so file is missing for qt5 on armv7 #10026: lua-5.3.4: fix lua linker error in swupdate #10146: package/skeleton-common fix recursive variable #10156: glibc compilation fails for X86 32bits (i386) #10201: toolchain-wrapper.c:192: (error) Memory leak: #10221: Buildroot Support 2017.08-rc1, Released August 2nd, 2017 Infrastructure: - The skeleton package has been split into multiple packages: skeleton-sysv (when Busybox or SysV init are used), skeleton-systemd (when systemd is used), skeleton-none (when no init system is used) and skeleton-custom (when a custom skeleton is used). Those packages, except skeleton-custom, share common logic and data in a new package called skeleton-common. The skeleton package becomes a virtual package. This change allows to generate a filesystem that is compliant with systemd expectations. - Support for using a read-only filesystem with systemd has been fixed. - Major revamp of the gettext handling, with user-visible effect: - prior to this revamp, when BR2_ENABLE_LOCALE=y, each package could decide to enable or not NLS support. When BR2_ENABLE_LOCALE was disabled, NLS support was forced off by passing --disable-nls to packages. - after this revamp, a new BR2_SYSTEM_ENABLE_NLS option controls whether NLS support should be enabled or not in packages. This option defaults to disabled, which means that now, NLS support is by default disabled in all packages. Therefore, if you need NLS support in packages, you must now explicitly enable the BR2_SYSTEM_ENABLE_NLS option. - The host directory no longer has a usr/ component. This makes it much more natural to use that directory as an externally used toolchain. For compatibility with existing scripts, a usr -> . link is still added. - Hashes are now checked on tarballs by Buildroot when a package is sourced from a Git repository. - Patches are no longer being downloaded from Github, since auto-generated patches could change over time, and break hashes. All patches that were downloaded from Github are now stored in their respective package directories. - Hash files in packages can now contain hashes for the license files contained in the package source code. This allows to detect changes in such license files. - Binaries in $(TARGET_DIR) are now cleaned up from invalid RPATHs at the end of the build. - A new "make sdk" target prepares $(HOST_DIR) to be relocatable: turns RPATHs in host binaries into relocatable ones, removes bogus RPATHs from staging binaries/libraries, and provides a relocate-sdk script that can be executed to relocate the SDK after installation. - Addition of utils/genrandconfig which generates a random configuration based on a set of pre-defined toolchain configurations (support/config-fragments/autobuild/) and a random selection of packages. It is now used by the autobuilders to generate the random configurations. Filesystems: - ext2/3/4 filesystems are now generated using mkfs.ext from e2fsprogs instead of using genext2fs. Architecture: - Addition of support for ARM big.LITTLE variants - Improved MIPS support, with options to select NaN encoding and FP32 mode. Toolchain: - Switch to gcc 6.x as the default gcc version, add support for gcc 7.x, remove support for gcc 4.8 - Switch to binutils 2.28 as the default binutils version, add support for binutils 2.29, remove support for binutils 2.26 - Support added for gdb 8.0 - uClibc-ng bumped to 1.0.26 - CodeSourcery toolchains for x86 and SuperH have been removed, they were using a too old glibc version (2.17). External toolchains with glibc 2.17 or earlier are no longer supported. - The version selection in the glibc package has been removed. Like musl and uClibc-ng, we now use the latest glibc version. - Improved support for Xtensa toolchain overlays, which can now be downloaded. Tools: - Numerous improvements to the runtime test infrastructure - Tests are now executed by Gitlab CI on a regular basis - Tools that are directly useful to the user have been moved from support/scripts/ to utils/: brmake, check-package, get-developers, scancpan, scanpipy, size-stats-compare, test-pkg. New defconfigs: A13 Olinuxino, Engicam platforms (i.CoreM6 Solo/Dual/DualLite/Quad, RQS SOM, GEAM6UL SOM, Is.IoT MX6UL SOM), Nano Pi M1 (Plus), OrangePi Zero and Plus. New packages: azure-iot-sdk-c, cracklib, dt-utils, easy-rsa, erlang-jiffy, erlang-p1-oauth2, erlang-p1-xmpp, ifupdown-scripts, irrlicht, kodi-inputstream-adaptive, kodi-inputstream-rtmp, kvazaar, let-me-create, libloki, libpwquality, libressl, libspatialindex, libva-utils, linuxconsoletools, linuxptp, luaossl, lua-sdl2, lua-stdlib, lsscsi, paxtest, pcre2, pixz, python-asn1crypto, python-backports-shutil-get-terminal-size, python-bcrypt, python-cheroot, python-h2, python-hpack, python-hyperframe, python-hyperlink, python-ipython-genutils, python-pathlib2, python-pickleshare, python-priority, python-portend, python-scandir, python-systemd, python-tempora, python-traitlets, python-typepy, qt5virtualkeyboard, ratpoison, rauc, refpolicy, rhash, sdl2_mixer, sdl2_net, xr819-xradio, zstd Removed packages: cloog, input-tools, mke2img Issues resolved (http://bugs.buildroot.org): #7892: systemd-journald is broken #9341: avahi-utils does not compile with uClibc + libglib2 #9441: Link BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY to BR2_ENABLE_DEBUG #9746: ext4 image generated by Buildroot is not working properly with U-Boot #9886: Build fails with "unexpected EOF while looking for matching `"'" if PATH contains a newline #9891: parted 3.1 => 3.2? #9911: qt5 does not build on sparc #9916: qt5 does not build on arm-buildroot-linux-uclibcgnueabihf for ARMv8 cores #9936: Host QEMU does not build with SDL support because of pkg-config #9941: nodejs option disappears for arm #9951: SCANCPAN failure #9966: util-linux-2.30/.stamp_built' failed #9976: License file for package 'rtl8821au' incorrect #9991: SGX Error implicit declaration of function ‘dmac_map_area’ #10011: wget does not work from Buildroot #10036: Buildroot builds Raspbian Jessie headless image presenting incorrect prompt #10051: make: *** No rule to make target 'raspberrpi3_defconfig'. Stop reported with Buildroot v2017.05.1 #10056: No .config file was produced in /buildroot folder #10061: gcc5.4 buildroot toolchain for powerpc libsanitizer failure #10071: fakeroot: replace hard-coded paths in post install #10076: Makefile:4113: recipe for target 'all-gcc' failed #10091: gcc7.1 does not build with graphite support due to old isl #10121: webkit without the multimedia option causes build error 2017.05.2, Released July 27th, 2017 Important / security related fixes. Webkitgtk bumped to the 2.16.x series, fixing a large number of security issues. host-aespipe compile fix for Debian/Gentoo/Ubuntu toolchains which default to PIE mode. Updated/fixed packages: aespipe, apache, bind, binutils, busybox, ccache, collectd, dieharder, efibootmgr, efivar, expat, ffmpeg, gcc, heimdal, iproute2, irssi, libglib2, libmemcached, libosip2, libtirpc, libxml-parser-perl, linux-fusion, linux-zigbee, mpg123, orc, pcre, php, protobuf, pulseaudio, python-setproctitle, qt5base, rpi-firmware, samba4, syslinux, systemd, spice, tcpdump, tiff, uboot-tools, webkitgtk, x265, xserver_xorg-server, xvisor Issues resolved (http://bugs.buildroot.org): #10061: gcc5.4 buildroot toolchain for powerpc libsanitizer... 2017.05.1, Released July 4th, 2017 Important / security related fixes. Update support/scripts/scancpan to use METACPAN v1 API as v0 has been shutdown. Update support/scripts/mkusers to handle setups where /etc/shadow is a symlink. External toolchain: Don't create musl dynamic loader symlink for static builds. Setlocalversion: Correct detection of mercurial revisions for non-tagged versions. Defconfigs: at91sam9x5ek_mmc: workaround boot rom issue. Updated/fixed packages: apache, automake, bind, botan, c-ares, dhcp, expat, fcgiwrap, gcc, gdb, gesftpserver, glibc, glmark2, gnutls, gst1-plugins-bad, imagemagick, imx-uuc, intltool, iperf, ipsec-tools, irssi, kmod, libcurl, libgcrypt, libmad, libnl, lugaro, mosquitto, mpg123, ncurses, nodejs, ntp, openssh, openvpn, pngquant, python-simplegeneric, qt5base, qt5multimedia, rtl8821au, socat, spice, systemd, tor, trinity, tslib, vlc, x264, xen, xlib_libxshmfenc, xserver_xorg-server Issues resolved (http://bugs.buildroot.org): #9976: License file for package 'rtl8821au' incorrect 2017.05, Released May 31st, 2017 Minor fixes. External toolchain: musl dynamic linker symlink for mips-sf corrected. Updated/fixed packages: agentpp, bash, exim, hans, madplay, qpid-proton, rtl8188eu, snmppp, stm32flash, strongswan, sudo, xen Issues resolved (http://bugs.buildroot.org): #9906: genimage: Disk full 2017.05-rc3, Released May 30th, 2017 Fixes all over the tree. ARC toolchain bumped to 2017.03 Runtime testing improvements and cleanups. Updated/fixed packages: acpica, armadillo, audiofile, c-icap, cppcms, dhcp, docker-engine, dropbear, elfutils, erlang, fbgrab, ffmpeg, flashrom, ftop, gnutls, google-breakpad, keepalived, kodi, libcdio, libepoxy, libev, libminiupnpc, libqmi, libtasn1, libv4l, mariadb, mono, mosh, mosquitto, mxml, ntp, opencv, openpowerlink, oracle-mysql, popt, pulseview, python-enum34, rabbitmq-c, redis, samba4, stella, xen Removed packages: firejail, ola Issues resolved (http://bugs.buildroot.org): #9871: fbgrab 1.3 won't build with BR2_REPRODUCIBLE set #9876: aarch64 support with gcc 4.8 toolchain #9896: host-gcc-initial error downloading because incorrect URL 2017.05-rc2, Released May 17th, 2017 Fixes all over the tree. ARC toolchain bumped to 2017.03-rc2 Updated/fixed packages: bluez_utils, boost, clamav, daemon, efibootmgr, efl, espeak, expedite, faketime, ffmpeg, fxload, git, gpsd, kvm-unit-tests, libcdio, libv4l, lua, mke2img, mpir, mpv, odroid-scripts, openblas, opencv3, openvpn, php, postgresql, protobuf, qt5declarative, qwt, radvd, rpcbind, rtmpdump, strongswan, sudo, ltp-testsuite, uclibc-ng-test, vlc, x11vnc, xfsprogs Issues resolved (http://bugs.buildroot.org): #9796: source-check broken for Git downloads #9866: BASE_DIR usage 2017.05-rc1, Released May 8th, 2017 Fixes all over the tree and new features. Infrastructure: - Installed binaries are now checked for correct architecture to catch natively built binaries or binaries built for other architecture variants. - Luarocks infrastructure improvements to extraction handling, support for upstream name != Buildroot package name. - 'make printvars' output format has changed to make it easier to use in scripts. It now has options to quote the variables and to show the expanded/unexpanded values. - Automatic ext2 rootfs size calculation has been removed. The logic was not working working reliable in all setups as it depends on the host filesystem behaviour, so instead now the size has to be specified explicitly (defaults to 60MB). - The git download infrastructure now ensures that GNU format tar files are created. - Fixed a variable clashing issue in the mkusers script with internal bash variables. - Fakeroot now links against libacl to fix issues on distributions using acls. - Correct permissions for /dev/pts/ptmx when systemd is used with recent glibc versions. - br2-external: Improve error reporting. - A wrapper script for genimage has been added in support/scripts/genimage.sh for easy use of genimage from post-image scripts. - A script to check for common style issues in new packages before submitting has been added in support/scripts/check-package - Defconfigs are now tested by gitlab-CI instead of Travis: https://gitlab.com/buildroot.org/buildroot - Infrastructure for runtime testing has been added to support/testing Toolchain: - External linaro toolchains updated to 2017.02, ARC toolchain updated to 2017.03-rc1, NIOSII CodeSourcery to 2017.05 - A number of fixes and improvements to the external toolchain handling, including C library detection, multilib and ld.so handling - Glibc 2.25 and uClibc-ng 1.0.24 added, wordexp support enabled for uClibc-ng - Binutils 2.28 added and default changed to 2.27 Architectures: - Support for the C-SKY architecture has been added. License handling: - The package license markings for legal info now uses the SPDX short identifiers for the license string where possible. - License info has been improved / added for a number of packages. Misc: - Cmake 3.7.x installed on the host is no longer ignored as a workaround for the RPATH issues has been implemented. - Docker-engine can now be built statically on an otherwise dynamic linked build for docker-in-docker setups. - U-Boot now supports out-of-tree device trees, similar to Linux - Nodejs 0.10.x support (and with it, support for -source-check fixed for packages from git. External toolchain: musl dynamic linker symlink for mips-sf corrected. Updated/fixed packages: armadillo, audiofile, bash, bluez_utils, cppcms, dbus, dhcp, dropbear, efibootmgr, efl, elfutils, faketime, fbgrab, flashrom, ftop, gdb, git, google-breakpad, gpsd, hans, kvm-unit-tests, kyua, libev, libmicrohttpd, libminiupnpc, libtasn1, libubox, ltp-testsuite, lua, madplay, mariadb, mono, mosquitto, mxml, ntp, nvidia-driver, openblas, openvpn, oracle-mysql, picocom, popt, postgresql, pulseview, qt5base, qwt, rabbitmq-c, redis, rpcbind, rtmpdump, samba4, strongswan, sudo, vlc Issues resolved (http://bugs.buildroot.org): #9796: source-check broken for Git downloads #9871: fbgrab 1.3 won't build with BR2_REPRODUCIBLE set 2017.02.2, Released May 1st, 2017 Important / security related fixes. Use HTTPS for the Codesourcery external toolchains as the HTTP URLs no longer work. Updated/fixed packages: bind, busybox, dovecot, freetype, ghostscript, glibc, granite, hiredis, icu, imagemagick, gst-plugins-base, gst1-plugins-base, libcroco, libcurl, libnl, libnspr, libnss, libsamplerate, libsndfile, libunwind, minicom, mplayer, mpv, nodejs, python-django, python-pyyaml, python-web2py, samba4, syslinux, systemd, tiff, trinity, uboot, wireshark, xen Issues resolved (http://bugs.buildroot.org): #9791: Python searches for packages in the user site directory 2017.02.1, Released April 4th, 2017 Important / security related fixes. Fix a variable clashing issue in the mkusers script with internal bash variables. Improve external toolchain version detection. Correct permissions for /dev/pts/ptmx when systemd is used with recent glibc versions. Fix python module name clash for graph-depends. Fakeroot now links against libacl to fix issues on distributions using acls. Ensure that the git download infrastructure creates GNU format tar files. br2-external: Improve error reporting. Updated/fixed packages: acl, apr, audiofile, busybox, cairo, dbus-cpp, dbus-glib, dbus-triggerd, domoticz, elfutils, fakeroot, filemq, fmc, gdb, git, gnutls, gst-ffmpeg, gst1-plygins-bad, harfbuzz, htop, imagemagick, jasper, libcec, libiio, libplatform, librsvg, libselinux, libsidplay2, libsoc, libwebsockets, libxkbcommon, linux-firmware, logrotate, lpt-testsuite, lttng-libust, mariadb, mbedtls, memcached, mesa3d, mpd, mplayer, nbd, ncftp, ntp, openssh, opentyrian, pcre, perl-gd, python, qt5base, rpi-userland, rpm, samba4, skalibs, slang, sngrep, squashfs, syslog-ng, taglib, tcpreplay, tor, upmpdcli, wget, wireshark, xdriver_xf86-video-vmware, xlib_libXv, zmqpp Issues resolved (http://bugs.buildroot.org): #9456: mkusers script bash errors 2017.02, Released February 28th, 2017 Minor fixes, mainly fixing autobuilder issues. Don't use cmake 3.7.x from the build host as it is also affected by the RPATH handling issues, and instead build our own if needed. Updated/fixed packages: assimp, classpath, genimage, mplayer, mpv, openocd, python-libconfig, qt5base, qt5quickcontrols, vlc, xterm 2017.02-rc3, Released February 26th, 2017 Fixes all over the tree. Cmake reverted to version 3.6.3 to workaround regressions related to RPATH handling. Updated/fixed packages: bctoolbox, berkeleydb, binutils, btrfs-progs, classpath, directfb, glibc, gstreamer1, gst1-plugins-{base,good,bad,ugly}, gst1-libav, gst1-rtsp-server, gst1-validate, gst-omx, htop, libcurl, libepoxy, libimxvpuapi, libpcap, libuv, ncurses, openssh, oracle-mysql, poco, python, qt5base, qt5webkit, sslh, synergy, trousers, uclibc-ng-test, util-linux, vlc, xfsprogs Issues resolved (http://bugs.buildroot.org): #9251: Shared C++ libraries for Microblaze results in Segmentation... #9456: mkusers script bash errors #9506: Collectd 5.7.0 fails to build with libcrypt #9581: VagrantFile provisioning step fails due to issue with grub-pc #9586: usbmount: usbmount slows down the system... to a state of... #9616: CMake host packages cannot provide CONF_ENV #9641: Need raptor package installed in staging #9671: stunnel build error 2017.02-rc2, Released February 20th, 2017 Fixes all over the tree. Support for SOURCE_DATE_EPOCH in the toolchain wrapper for older gcc versions for reproducible builds has been (temporarily) reverted because of licensing compatiblity concerns. Defconfigs: SD card generation fix for the Udoo Neo board Infrastructure to handle .lz compressed tarballs added, and affected packages updated to use it. Updated/fixed packages: bctoolbox, bind, canelloni, cbootimage, ccache, classpath, cups, dbus, ddrescue, directfb, ed, erlang, gcc, gdb, glmark2, gstreamer, gstreamer1, hiredis, kmod, kmsxx, lcdapi, libasplib, libgpiod, libnss, libraw, libv4l, mesa3d-headers, mosquitto, mpd, mpv, musl, ntfs-3g, ocrad, openswan, postgresql, qt5base, qt5quickcontrols, redis, riemann-c-client, samba4, sunxi-mali, tcping, trousers, uclibc, util-linux, vim, wavpack, wget, wiringpi, xfsprogs, xserver_xorg-server Issues resolved (http://bugs.buildroot.org): #8941: Valgrind fails to build with stack protection turned on #9291: perl: SysV message queues not configured, even if available #9651: libxcb-1.12 built Error #9656: util-linux: schedutils doesn't build on target w/o enabl... #9666: qt5quickcontrols install fails 2017.02-rc1, Released February 11th, 2017 Fixes all over the tree and new features. Infrastructure: - numerous improvements to support reproducible builds - new waf-package package infrastructure to support packages that use the Waf build system. 6 packages converted to this infrastructure. - add option _PREFER_INSTALLER to the perl package infrastructure Architecture: - add support for the OpenRISC CPU architecture - merge description of the ARM and ARM64 options, and add support for selecting a specific ARM64 core Toolchain: - major rework of the external toolchain support. It is now split into several packages, one per external toolchain, and a common infrastructure. - important fix for musl to prevent a conflict between musl and kernel headers (fixes the build of numerous packages with musl) - uClibc-ng bumped to 1.0.22, and therefore enable uClibc for ARM64, mips32r6 and mips64r6 - add gdb 7.12.1, and switch to gdb 7.11 as the default - Linaro toolchains updated to 2016.11, ARC toolchain components updated to arc-2016.09, MIPS Codescape toolchains bumped to 2016.05-06, CodeSourcery AMD64 and NIOS2 toolchains bumped - remove Analog Devices toolchain for the Blackfin architecture, remove pre-built musl toolchains from musl.codu.org New defconfigs: Freescale i.MX23EVK, Qemu OpenRISC emulation, Qemu NIOS2 emulation, Grinn chiliBoard, Freescale i.MX6Q SabreSD, BeagleBoard X15, OrangePi One, ARC HS38 HAPS New packages: angular-websocket, aubio, bctoolbox, darkhttpd, ddrescue, easydbus, fakedate, git-crypt, hiredis, ifenslave, jsmn, libgpiod, libgsm, linux-syscall-support, mariadb, mimic, nginx-dav-ext, nmon, opkg-utils, policycoreutils, pru-software-support, python-arrow, python-attrs, python-babel, python-bitstring, python-chardet, python-constantly, python-flask-babel, python-gunicorn, python-incremental, python-jsonschema, python-logbook, python-markdown2, python-mbstrdecoder, python-mutagen, python-pathpy, python-pudb, python-pyqrcode, python-pytablereader, python-setuptools-scm, python-sh, python-toml, python-vcversioner, python-whoosh, raspberrypi-usbboot, riemann-c-client, rtl8723bs, skalibs, sslh, sngrep, ti-cgt-pru, uclibc-ng-test, udpxy, uhttpd, upower, ustream-ssl, waf, xlib_libXfont2 Removed packages: perl-db-file, snowball-hdmiservice, snowball-init Tooling: addition of a test-pkg script to help contributors build test their package. Issues resolved (http://bugs.buildroot.org): #8946: Valgrind fails to build with stack protection turned on #9461: odroidc2 - toolchain Linaro AArch64 2016.11 compile error #9466: VIM_REMOVE_DOCS removes rgb.txt #9486: xorg-server 1.19 fails to compile for glibc with systemd init (x86_64) #9501: eudev fails to build with older kernel headers #9526: Embedded NPM fails to start with "no such file or directory" error #9541: Platform drivers autoloading from info in device tree does not work #9546: seems BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS do nothing #9551: Coreutils fails to build target src/src_libsinglebin_pinky_a-pinky.o #9566: [kmod] Compilation fails with uclibc #9571: buildroot fails while building opencv for arm64 platform #9576: External tree with BR 2016.11 does not work anymore #9606: xorg-server cannot build for ARM target 2016.11.3, Released March 9th, 2017 Important / security related fixes. Updated/fixed packages: bind, dbus, gnutls, imagemagick, lcms2, libcurl, ntfs-3g, ntp, openssl, php, quagga, redis, squid, stunnel, tcpdump, vim, wavpack, wireshark, xlib_libXpm 2016.11.2, Released January 25th, 2017 Important / security related fixes. A fix for BR2_EXTERNAL trees referenced using relative paths, which broke in 2016.11. Updated/fixed packages: bind, docker-engine, gd, gnutls, go, imagemagick, irssi, libpng, libvncserver, musl, opus, php, php-imagick, rabbitmq-server, runc, wireshark, Issues resolved (http://bugs.buildroot.org): #9576: External tree with BR 2016.11 does not work anymore 2016.11.1, Released December 29th, 2016 Important / security related fixes. Updated/fixed packages: apache, cryptopp, docker-engine, dovecot, exim, gdk-pixbuf, libcurl, libupnp, links, monit, nodejs, openssh, php, python, python-bottle, samba4, squid, uboot, vim, wireshark, xorg-server uboot Issues resolved (http://bugs.buildroot.org): #9466: VIM_REMOVE_DOCS removes rgb.txt 2016.11, Released November 30th, 2016 Minor fixes. Updated/fixed packages: bzip2, gcc, jasper, sane-backends, uboot, uclibc Issues resolved (http://bugs.buildroot.org): #9451: packages/postgresql/postgresql.mk contains wrong POST... 2016.11-rc3, Released November 28th, 2016 Fixes all over the tree, including a number of security fixes. The move from fakeroot to pseudo unfortunately brought a number of issues. The SELinux issue described in #9386 which triggered the move to pseudo has been investigated further and a workaround implemented and the pseudo changes reverted. Linux kernel: update default to 4.8.11. Defconfigs: Updates/fixes for imx28ek, mx6udoo, imx6ulpico, olimex a20 olinuxino lime mali, roseapplepi, synopsis aarch64 vdk, axs101, axs103 and hs38 smd vdk. Updated/fixed packages: autossh, chrony, dosfstools, dtv-scan-tables, e2fsprogs, gcc, gdb, gnuchess, gnuradio, gpsd, gst1-plugins-bad, gst1-plugins-good, imagemagick, kvm-unit-tests, libfribi, libuv, mesa3d, mpfr, mplayer, mpv, ntp, ola, olsr, openblas, openjpeg, openssh, postgresql, ptpd2python3, qemu, qextserialport, qt5base, quagga, xqwt, taskd, tiff, tremor, trousers, udisks, uclibc, wireshark, xapp_xload, xenomai, xmlstarlet Issues resolved (http://bugs.buildroot.org): #9386: ubinize fails with or without custom config #9431: A misspelling #9446: make raspberrypi3_defconfig compilation failure 2016.11-rc2, Released November 13th, 2016 Fixes all over the tree. Architecture: add support for MIPS XBurst cores; remove MIPS support for M5100 cores. Updated/fixed packages: mesa3d, lttng-babeltrace, tinyalsa, pseudo, czmq, libxml2, makedevs, binutils, kvm-unit-tests, libnss, privoxy, qemu, ser2net, net-tools, ffmpeg, assimp, libmpeg2, ccache, mpv, libxslt, python, python3, php, valgrind, guile, domoticz, efl, jasper, kvmtool, go, wget, sane-backends, weston, tinymembench, strace, openjpeg, lcms2, quota. Linux kernel: update default to 4.8.7. CMake support: fix cmake wrapper to properly pass NDEBUG flag. Filesystems: use a wrapper to pseudo, to better mimick the behaviour of fakeroot; makedevs no longer breaks of the destination already exists and is of the correct type/major/minor. Defconfigs: a few legacy and broken defconfigs have been removed because they now fail to build: kb9202_defconfig, mini2440_defconfig, freescale_p2020ds, qmx6, calao*, atmel_sama5d4ek. Other defconfigs have been updated: nanopi-neo, olimex_a20_olinuxino_lime_mali, armadeus_apf51, armadeus_apf28, freescale_imx31_3stack, ci20, olimex_a20_olinuxino_lime2, atmel_at91sam9260eknf, atmel_at91sam9rlek, atmel_at91sam9g20dfc, atmel_at91sam9g45m10ek, atmel_sama5d3xek. 2016.11-rc1, Released November 3rd, 2016 Fixes all over the tree and new features. It is now possible to specify multiple BR2_EXTERNAL directories. The required files in a BR2_EXTERNAL directory have changed to accomodate this feature. Refer to the documentation for details of how to update them. External trees now have a name and a description. Also, it is possible to override a defconfig in the external tree. The default skeleton now uses UID 65534 for the "nobody" user instead of UID 99, like most distros do. See https://lwn.net/Articles/695478/ for a complete discussion. Programs and configuration files that explicitly refer to UID 99 will have to be updated. When the build environment already has a suitable cmake version (3.1 or later), that one will be used instead of building host-cmake. This can speed up the build significantly. The ExtUtils::MakeMaker perl module is now required in the build environment. An additional check is done during the build that files are not installed in the output directory within the output directory. This happens e.g. when the target directory is contained both in --prefix and in DESTDIR. The build will terminate with an error message that specifies which package and which file caused the failure. The concept of "deprecated packages" and the BR2_DEPRECATED option have been removed. Instead, packages are removed immediately. Packages are only removed when they don't work for some reason. If you still need a removed package and you have a solution for the problem(s) that caused the removal, please contribute it. Architecture: support for sh64 removed, improved support for MIPS core selection. Toolchain: support for musl powerpc64le, mips64 and mipsr6 toolchains, ARC toolchain components updates, gcc 6.x series bumped to 6.2.0, default binutils version switched to 2.26, default gcc version switched to gcc 5.x, Linaro toolchains updated, uclibc-ng bumped to 1.0.19. GCC is now always built with TLS support. Checking of unsafe compiler options (that point to host directories) has been extended with -isystem, -idirafter and -iquote. Package infrastructure: new variable $(PKG)_DL_OPTS, addition of -show-rdepends to list reverse dependencies, and -graph-rdepends to graph reverse dependencies. Linux tools are now in a separate linux-tools package instead of in the kernel build. Fakeroot has been replaced by pseudo. CMake support: the toolchainfile.cmake file now provides a definition of the CMAKE_BUILD_TYPE variable. The toolchainfile.cmake also no longer forces the compiler/linker flags defined by Buildroot. New defconfigs: WaRP7, Solidrun's MX6 Cubox/Hummingboard, TS-4900, Grinn's liteBoard, Udoo MX6Q/DL, Qemu ARM noMMU, BeagleBone Qt5 demo, Digilent Zybo, FriendlyARM Nanopi NEO. New packages: arm-trusted-firmware, amd-catalyst, atop, aufs, aufs-util, fwts, gst1-rtsp-server, libglob, libite, mfgtools, mksh, motion, paho-mqtt-c, php-amqp, pseudo, python-couchdb, python-crcmod, python-cssutils, python-docutils, python-futures, python-mwclient, python-mwscrape, python-mwscrape2slob, python-pyelftools, python-pyicu, python-pylru, python-pyqt5, python-requests-toolbelt, python-simpleaudio, python-slob, rabbitmq-server, shapelib, vdr, vdr-plugin-vnsiserver, vexpress-firmware, xvisor, iio and gpio linux tools. Removed packages: binutils 2.24, fakeroot, gcc 4.7, ipkg, kodi-addon-xvdr, libgail, sstrip, torsmo, webkit, webkitgtk24, wvdial, wvstreams. Documentation: the list of packages that was present in the Buildroot manual has been removed. Legal info: the "licenses.txt" file that concatenates all license texts is no longer generated - it was not considered useful. The manifest.csv contains an empty cell instead of "not saved" when no license file is available. Other: addition of a DEVELOPERS file listing developers taking care of packages or architectures. Issues resolved (http://bugs.buildroot.org): #7802: host-python build hangs compiling getbuildinfo.o #8206: mplayer uses host xorg development files #8516: mkcubiecard.sh uses outdated sfdisk switch -D #8536: Building sudo with PAM results in unusable sudo #8646: check-host-rpath script returns false positives when rpath contains symlink #8696: xdriver_xf86-input-mouse install header files in target directory #8811: rp-pppoe - generated scripts commands use HOST pathnames, not necessarily TARGET #8846: Orphaned/missing toolchain borks eclipse plugin #8856: python tornado runtime wasn't met on buildroot 2016.02 #8901: gcc failes to build if fortran is enabled #8916: LDFLAGS pass to openssh #8941: "ls" of an NFSv4 share only works when pumped through strace #8946: Valgrind fails to build with stack protection turned on #9021: Kodi - Broken: Illegal instruction (core dumped) #9096: rootfs.ubi not created #9111: glibc 2.23: libmvec.so not copied #9176: minnowboard : USB not mounted #9196: raspberry pi 3 default build seem broken #9201: Permission denied make: *** [core-dependencies] Error 126 in Buildroot-2015.08.1 #9216: log4cpp package build fails to build within install #9221: Kodi needs "Python .py and .pyc support" otherwise it crashes when pressing buttons. #9229: Firefly boot fails with: "failed to find part:boot" #9256: [Config file] New device: Odroid-U2/U3 #9296: Buildroot Fails on applying patches #9301: U-boot fails to build with default zynq_zed_defconfig configuration #9316: U-boot fails to build if libssl-dev is not installed #9321: Vanilla libcrypt++ v5.6.3 doesn't allow to work Nvidia Tegra's flash utility (tegrarcm) #9326: Odroid-C2 build results in non-bootable image #9336: Improve iconv support for external toolchain based builds #9356: gdb package #9366: no link rootfs.ext4 -> rootfs.ext2 #9371: openssl: download failes with "Only allow downloads from primary download site" + local server #9381: check-host-rpath issues #9386: ubinize fails with or without custom config 2016.08, Released September 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. Circular dependency issue with same-as-kernel linux-headers option fixed. Updated/fixed packages: bluez5_utils, heirloom-mailx, imx-gpu-viv, kodi-pvr-argustv, kodi-pvr-mediaportal-tvserver, kodi-pvr-nextpvr, libfcgi, openssl, pifmrds, powerpc-utils, python-m2crypto, slang, sox, squid, tn5250, xerces, zsh 2016.02-rc3, Released February 27th, 2016 Fixes all over the tree. Defconfigs: Ensure EABIhf is correctly enabled for ARM cores where VFP is optional (but present on the specific hw). Fix ARM variant selection for freescale_imx31_3stack_defconfig. Ensure tarballs of downloaded git trees do not contain a timestamp. Clarify license of patches in COPYING. Updated/fixed package: avahi, binutils, cairo, can-festival, chrony, cifs-utils, dnsmasq, dvdauthor, e2fsprogs, efl, erlang-rebar, eudev, fbterm, gawk, gnupg2, gnuradio, gpm, gst1-plugins-good, hostapd, imagemagick, iproute2, iputils, jack2, kexec, kismet, lftp, libarchive, libeXosip2, libfm, libglib2, libsoil, libssh, libssh2, libuci, links, lshw, lxc, mediastreamer, mono, mraa, mutt, nfs-utils, numactl, ofono, omniorb, openipmi, openobex, patch, pax-utils, perf, pulseaudio, pure-ftp, qhull, qt, quagga, quota, sdl_sound, shairport-sync, spice, sysklogd, syslog-ng, trace-cmd, trousers, tvheadend, util-linux, vim, webkitgtk24, wireshark, wpa_supplicant, xerces, zsh Issues resolved (http://bugs.uclibc.org): #8651: libMonoPosixHelper.so wrong link reference in buildroot.. 2016.02-rc2, Released February 18th, 2016 Fixes all over the tree. Toolchain: PR19405 backport to binutils 2.25.1 to fix NIOS ld crash, backport of Xtensa .init/.fini literals handling. glibc security patches for CVE-2014-8121, CVE-2015-1781 and CVE-2015-7547. Defconfigs for Acmesystems Arietta g25 added. Updated/fixed packages: binutils, boost, chrony, dovecot, e2fsprogs, fio, gdb, glibc, graphite2, icu, kbd, libbsd, libcue, libgcrypt, libraw, links, mc, mosquitto, nodejs, postgresql, pptp-linux, pulseaudio, samba4, spice, squid, sysklogd, systemd, tiff, uclibc, ulogd, util-linux, valgrind. Issues resolved (http://bugs.uclibc.org): #8576: Building embedded Linux for Atmel SAMA5D4_Xplained... #8606: Problem compiling on Arch Linux #8681: kbd 2.0.3 does not build on rpi 2016.02-rc1, Released February 10th, 2016 Fixes all over the tree and new features. Toolchain: Support for GCC 5.3.x. ARC toolchain updated to arc-2015.12. Support for legacy uClibc dropped, default to uClibc-ng instead. Added sys/queue.h implementation for MUSL for compatibility. Updated versions of Code sourcery and Linaro toolchains. MIPS Codescape toolchains added. Version selection for preconfigured external toolchains removed. New Defconfigs: ARM Juno r0/r1 development boards, Freescale i.MX6UL Evaluation Kit, Intel Galileo Gen 2, Orange Pi PC. A number of defconfigs have been extended to generate complete system images using genimage. Linux: Automatically patch timeconst.pl for <3.9 kernels, which isn't compatible with modern perl versions, breaking the build when building on recent (Fedora 23, Debian Testing/Unstable, ..) distributions. Makedevs utility now accepts textual (non-numerical) user and group names. Vagrant file to easily setup a working development environment in a VM has been added. Size-stats-compare script to compare rootfs sizes between builds has been added. Infozip package renamed to zip. EFL packages restructured. Updated/fixed packages: aespipe, aiccu, alsa-lib, alsa-utils, angularjs, apache, apr, argp-standalone, armadillo, arptables, at, atk, audiofile, aumix, autoconf-archive, avahi, bash, bc, bcache-tools, bdwgc, beecrypt, bind, binutils, bluez5_utils, bluez_utils, bonnie, boost, busybox, cairo, cdrkit, chrony, clamav, cmake, collectd, connman, coreutils, cppcms, crda, cryptodev-linux, cryptsetup, cups, cwiid, cxxtest, dbus, dbus-cpp, dbus-glib, debianutils, dhcp, dhcpcd, dhrystone, dillo, directfb, directfb-examples, dmraid, dnsmasq, doom-wad, dovecot, dovecot-pigeonhole, dropbear, dtv-scan-tables, dvb-apps, dvbsnoop, ecryptfs-utils, eigen, ejabberd, elementary, elfutils, enlightenment, erlang, espeak, eudev, eventlog, exfat, exfat-utils, exiv2, expedite, faifa, fakeroot, fastd, fbgrab, fetchmail, ffmpeg, findutils, fio, firmware-imx, flann, flashrom, flite, flot, fmlib, freerdp, freescale-imx, freetype, gauche, gawk, gcc, gcc-final, gcr, gdb, gdk-pixbuf, geoip, gesftpserver, gettext, giflib, git, glibc, glibmm, glog, gmp, gnupg, gnupg2, gnutls, gob2, gpsd, gptfdisk, grep, gst1-libav, gst1-plugins-{bad,base,good,ugly}, gst-ffmpeg, gst-plugins-{bad,base,good,ugly}, gstreamer, gstreamer1, guile, gvfs, gzip, harfbuzz, haserl, hiawatha, hostapd, hplip, icu, ifupdown, imagemagick, imx-gpu-viv, imx-kobs, imx-lib, input-tools, intel-microcode, iperf3, ipmitool, iproute2, iprutils, ipsec-tools, ipset, iptables, iputils, irda-utils, irssi, iucode-tool, jack2, janus-gateway, jpeg-turbo, jquery-datetimepicker, jquery-keyboard, jquery-sparkline, jquery-ui, jquery-ui-themes, jquery-validation, json-c, kbd, kernel-module-imx-gpu-viv, keyutils, kmod, knock, kodi, lcdproc, lcms2, leafnode2, leafpad, libass, libatomic_ops, libbroadvoice, libbsd, libcap-ng, libcdaudio, libcue, libcurl, libdrm, libecore, libedbus, libedit, libedje, libeet, libefreet, libeina, libeio, libelementary, libembryo, libepoxy, libethumb, libev, libevas, libevas-generic-loaders, libevdev, libevent, libffi, libfm, libfribidi, libfslcodec, libfslparser, libfslvpuwrap, libftdi, libfuse, libgail, libglew, libglib2, libgtk2, libgtk3, libgudev, libhttpparser, libidn, libinput, libiscsi, libjpeg, liblinear, libmbim, libmicrohttpd, libndp, libnspr, libnss, liboauth, liboping, libpciaccess, libplist, libpng, libraw, libraw1394, librsvg, libseccomp, libsecret, libserialport, libsigc, libsigrok, libsigrokdecode, libsndfile, libsoc, libsodium, libsoup, libssh2, libsvg, libsvg-cairo, libtasn1, libtirpc, libtorrent, libungif, libunwind, libupnpp, liburcu, libuv, libv4l, libva, libva-intel-driver, libvips, libvncserver, libxml2, libxmlpp, lightning, lighttpd, linknx, linux-firmware, linux-fusion, linux-headers, liquid-dsp, lirc-tools, live555, lm-sensors, lockdev, lshw, ltp-testsuite, ltrace, lttng-babeltrace, lttng-libust, lttng-modules, lttng-tools, lua, luabitop, luarocks, luv, lvm2, lxc, makedevs, mc, memcached, memtest86, mesa3d, mesa3d-demos, mesa3d-headers, micropython, micropython-lib, minicom, minidlna, mjpg-streamer, mke2img, moarvm, modem-manager, mongoose, mongrel2, monkey, mono, monolite, mosh, mosquitto, mpd, mplayer, msgpack, mtdev2tuio, musepack, musl, mysql, nano, nasm, nbd, neard, netatalk, netsnmp, nettle, net-tools, network-manager, nfs-utils, nginx, nmap, nodejs, ntfs-3g, ntp, numactl, nut, nvidia-driver, odhcp6c, ofono, ola, olsr, omniorb, opencv, opencv3, openipmi, openldap, openntpd, openobex, openocd, openpgm, open-plc-utils, openpowerlink, openssh, openssl, openswan, openvpn, opkg, oprofile, opus, opusfile, p11-kit, package, pango, pax-utils, pciutils, pcmanfm, perl, perl-db-file, perl-io-socket-ssl, perl-libwww-perl, perl-net-dns, perl-uri, perl-xml-libxml, php, php-ssh2, picocom, pinentry, pixman, polarssl, popt, portaudio, pppd, procps-ng, proftpd, protobuf, psmisc, ptpd2, pulseaudio, pulseview, pv, python, python3, python-alsaaudio, python-can, python-cffi, python-cherrypy, python-httplib2, python-jinja2, python-lxml, python-m2crypto, python-mako, python-msgpack, python-psutil, python-pyasn, python-pycparser, python-pydal, python-pyftpdlib, python-pyroute2, python-pyxml, python-pyzmq, python-requests, python-serial, python-setuptools, python-six, python-spidev, python-tornado, python-twisted, python-web2py, python-webpy, python-werkzeug, python-zope-interface, qemu, qhull, qpdf, qt, qt5, qt5base, qt5connectivity, qt5declarative, qt5enginio, qt5graphicaleffects, qt5imageformats, qt5multimedia, qt5quick1, qt5quickcontrols, qt5script, qt5sensors, qt5serialport, qt5svg, qt5webchannel, qt5webkit, qt5webkit-examples, qt5websockets, qt5x11extras, qt5xmlpatterns, qt-webkit-kiosk, racehound, radvd, read-edid, readline, redis, rpcbind, rpi-firmware, rpi-userland, rrdtool, rsync, rsyslog, rtai, rtorrent, rt-tests, rubix, ruby, samba4, sconeserver, setools, shairport-sync, sigrok-cli, skeleton, smack, snowball-init, socat, sp-oops-extract, sqlite, squashfs, squeezelite, squid, sredird, sshfs, start-stop-daemon, strace, strongswan, stunnel, subversion, sunxi-tools, swig, sysdig, syslog-ng, sysstat, systemd, sysvinit, taglib, tcl, tcpreplay, thrift, ti-gfx, tinyalsa, tor, torsmo, trace-cmd, transmission, tremor, triggerhappy, trinity, tvheadend, tzdata, uboot-tools, uclibc, udisks, udpcast, unionfs, upmpdcli, usb_modeswitch, usb_modeswitch_data, ustr, util-linux, vala, valgrind, vboot-utils, vde2, vlc, vnstat, webkit, webkitgtk24, weston, wget, whetstone, whois, wine, wipe, wireless-regdb, wireshark, wpa_supplicant, w_scan, x11r7, xapp_xbacklight, xapp_xcompmgr, xapp_xinput, xapp_xkbcomp, xdriver_xf86-input-evdev, xdriver_xf86-input-libinput, xdriver_xf86-input-synaptics, xdriver_xf86-video-ati, xdriver_xf86-video-fbturbo, xdriver_xf86-video-imx-viv, xdriver_xf86-video-intel, xfont_encodings, xfont_font-adobe-100dpi, xfont_font-adobe-75dpi, xfont_font-adobe-utopia-100dpi, xfont_font-adobe-utopia-75dpi, xfont_font-adobe-utopia-type1, xfont_font-alias, xfont_font-arabic-misc, xfont_font-bh-100dpi, xfont_font-bh-75dpi, xfont_font-bh-lucidatypewriter-100dpi, xfont_font-bh-lucidatypewriter-75dpi, xfont_font-bh-ttf, xfont_font-bh-type1, xfont_font-bitstream-100dpi, xfont_font-bitstream-75dpi, xfont_font-bitstream-type1, xfont_font-cronyx-cyrillic, xfont_font-cursor-misc, xfont_font-daewoo-misc, xfont_font-dec-misc, xfont_font-ibm-type1, xfont_font-isas-misc, xfont_font-jis-misc, xfont_font-micro-misc, xfont_font-misc-cyrillic, xfont_font-misc-ethiopic, xfont_font-misc-meltho, xfont_font-misc-misc, xfont_font-mutt-misc, xfont_font-schumacher-misc, xfont_font-screen-cyrillic, xfont_font-sony-misc, xfont_font-sun-misc, xfont_font-winitzki-cyrillic, xfont_font-xfree86-type1, xfsprogs, xkeyboard-config, xl2tp, xlib_libfontenc, xlib_libXi, xmlstarlet, xscreensaver, xserver_xorg-server, xtables-addons, xvkbd, xz, yad, yasm, ympd, zeromq, zic, znc, zsh, New packages: acsccid, assimp, atkmm, autofs, bcm2835, cairomm, cantarell, chocolate-doom, comix-cursors, cxxtest, edid-decode, emlog, gcr, gtkmm3, hidapi, jquery-sidebar, kernel-module-imx-gpu-viv, libasplib, libcroco, libdvbpsi, libfreeglut, libgdiplus, libglfw, libhdhomerun, libnet, libsoil, lldpd, luvi, mbedtls, minizip, miraclecast, mongodb, mraa, netbsd-queue, netsniff-ng, nss-pam-ldapd, obsidian-cursors, openal, openbox, pangomm, python-backports-abc, python-beautifulsoup4, python-cbor, python-click, python-cssselect, python-ecdsa, python-html5lib, python-idna, python-ipaddress, python-mistune, python-netaddr, python-paho-mqtt, python-paramiko, python-pyparted, python-pysmb, python-pyudev, python-singledispatch, python-smbus-cffi, python-urllib3, qt53d, rabbitmq-c, rfkill, sbc, spi-tools, tpm-tools, trousers, ubus, unrar, unscd, unzip, v4l2grab, xdriver_xf86-video-nouveau, xdotool, zbar Removed packages: libungif, python-pyxml, Issues resolved (http://bugs.uclibc.org): #7886: gettext: link failure with locally-installed libxml2 #7892: systemd-journald is broken #8066: nodejs crashes when built with gcc 4.9 #8296: nodejs 0.12.7 - npm crashes (seg core dump) #8501: gunzip fails to uncompress files #8541: fail to build host-fakeroot-1.20.2 #8546: build instructions for raspberry pi don't work #8571: strace for ARC compile error #8581: pciutils.mk PCIUTILS_MAKE_OPTS typo #8616: Fail to build for raspberrypi_defconfig with big endian #8621: sqlite package, properly enable readline 2015.11, Released November 30th, 2015 Minor fixes. Merged/seperate /usr handling is now also performed for staging so cross-gdb / gdbserver can find the libraries. Updated/fixed packages: autossh, conntrack-tools, dcron, espeak, gcc, glmark2, gpsd, gstreamer1, libglib2, libsigsegv, libsoc, libv4l, minidlna, mongrel2, opencv, polarssl, rpi-userland, rubix, skeleton, tovid, uemacs, valgrind, yad, zmqpp Issues resolved (http://bugs.uclibc.org): #8441: Invalid directory for X11 fonts in target (RPi2) #8491: libglib2 2.46.1 not Building for armv5 on 2015.11-rc3 2015.11-rc3, Released November 26th, 2015 Fixes all over the tree. We have a new modern website! Updated/fixed packages: apitrace, audiofile, autossh, bullet, c-ares, collectd, conntrack-tools, cryptodev-linux, dropbear, fastd, gmp, gpsd, gst-plugins-bad, gst-plugins-base, gst-plugins-good, gst-plugins-ugly, gstreamer, gstreamer1, guile, iodine, iproute2, jimtcl, kompexsqlite, libethumb, libfreeimage, libgsasl, libgtk3, libxml2, localedef, lttng-tools, macchanger, mongrel2, mpd, openntpd, openssl, oprofile, pcre, qt5base, quagga, rpi-userland, sconeserver, sdl, spidev_test, sqlite, strongswan, ustr, xapp_sessreg, yajl, zmqpp Issues resolved (http://bugs.uclibc.org): #6872: gpsd: disabled on microblaze #8321: invalid opcode error with minidlna and ffmpeg #8336: Default systemd configuration fails to boot correctly in 2015-08 #8446: rpi-userland failed to build with glibc 2.22 2015.11-rc2, Released November 19th, 2015 Fixes all over the tree. LD_LIBRARY_PATH is no longer used to ensure host binaries find their libraries, fixing issues on recent Fedora. Toolchain fixes for powerpc e5500 / e6500. Fix for an issue with ${TARGET}-cc after the move to use a toolchain wrapper for the internal toolchain. Appy-patches.sh now correctly applies all files listed in series files. Fixes for merged /usr handling when a custom skeleton is used. Updated/fixed packages: axfsutils, boost, busybox, dhcp, directfb, dropbear, ebtables, fastd, ffmpeg, gauche, gcc, gettext, gst1-plugins-bad, hostapd, ibrdtnd, libcurl, libecore, libgudev, libnss, libpng, libserial, libssh2, libuecc, libxml2, linux-headers, liquid-dsp, ltris, lua-periphery, minidlna, mongrel2, mpd, mpg123, mplayer, mysql, opencv, opencv3, package, perl-file-util, php-ssh2, polarssl, pulseaudio, python-protobuf, qemu, qt5base, ranger, ruby, skeleton, slang, squeezelite, strongswan, tovid, uclibc, ushare, wine, wpa_supplicant, x265, xdriver_xf86-video-siliconmotion, zxing-cpp Issues resolved (http://bugs.uclibc.org): #4790: Running udhcpc on a system with NFS root kills NFS #8456: Building host-pkgconf on Fedora 23 fails due to.. 2015.11-rc1, Released November, 7th 2015 Fixes all over the tree and new features. Architectures: - Support for sparc64 added (internal toolchain with glibc only). - Support for mips32r6 and mips64r6 added. - Support for Intel Quark X1000 CPU. - Switch to EABIhf by default on ARM when a VFP is available. Toolchains: - glibc 2.22, gdb 7.10, use gdb 7.9 by default, musl 1.1.12, uclibc-ng 1.0.8, host-gdb enabled on AArch64. - The toolchain wrapper which was used only for external toolchains is now also used for Buildroot internal toolchains. This allowed to fix the ccache support, prepare the way for top-level parallel build support and remove gcc patches used to detect header/library path poisoning. - Remove Analog Devices Blackfin toolchain 2012R2. - Fix several Xtensa build failures by switching from text-section-literals to auto-litpools. - Enable MIPS64 support in uClibc-ng, use uClibc on ARC rather than a specific fork. - Linaro toolchains for ARM, ARMeb and AArch64 updated to 2015.08. 2014.09 version is kept since 2015.08 only runs on x86_64 hosts. Bootloaders: - Fix ARM64 support in U-Boot. Defconfigs: - Added: ARC HS38 VDK virtual boards, Avnet Microzed, Boundary Devices Nitrogen SoloX, Freescale i.MX6 SoloX Sabre SD, OLinuxino A20 Lime2, Qemu Sparc64, Qemu SuperH 4 big endian, Synopsys AArch64 VDK virtual platform. - Updated: calao_qil_a9260, calao_usb_a9g20_lpw, ci20, cubieboad, freescale_imx6_*, imx53loco, imx6_vab820, mpc8315erdb, qmx6, p1010rdb, qemu, raspberrypi, raspberrypi2, riotboard, snps_axs10*, wandboard. - Removed: at91rm9200df, at91sam9260dfc, at91sam9263ek, calao_snowball_defconfig, gnublin, integrator926_defconfig. Infrastructure: - Support for fetching from Mercurial tags fixed. - Introduce LINUX_NEEDS_MODULES, which allows to enforce module support to be enabled in the kernel when a package builds out-of-tree kernel modules (through the pkg-kernel-module infrastructure or on its own). - Improve the perl package infrastructure to automatically add the dependency to the perl interpreter to target perl module packages. - Remove trailing slashes in _SITE and addition of a check to ensure such trailing slashes are no longer added. - Extend the legal infrastructure to allow packages to declare their actual source code. This is useful for packages for which _SOURCE points to pre-built binaries (as is the case for external toolchains). The new _ACTUAL_SOURCE variable allows to point to the source code in such cases. - Improved ccache support, thanks to the usage of a toolchain wrapper for internal toolchain. Now a single cache directory can be shared between different Buildroot builds. - Addition of a 'graph-size' make targets, which generates a PDF graph of per-package size of the root filesystem. - Addition of _EXCLUDES so that packages can request certain parts of the source code tarball to not be extracted. This feature is currently used by gcc and toolchain-external. - Packages can now use the _PKGDIR variable, provided by the package infrastructure, to reference their package directory, instead of explicitly using package//. Filesystems: - Add high lz4 compression to squashfs. - Simplification of shell profile files in the default skeleton. - Remove ftp user and /home/ftp from the skeleton, and let ftp server packages create these when needed. - Add support for /bin, /sbin and /lib to be symlinks to their corresponding directories in /usr. This is enforced for systemd configurations, and optional for other configurations. - Support for AXFS filesystem image generation added. - New options to add extra space/inodes to ext2/3/4 images. Updated/fixed packages: adwaita-icon-theme, apache, apitrace, atk, audit, avahi, barebox, bash, batctl, bind, binutils, bluez_utils, boost, bridge-utils, cairo, ccache, chrony, clapack, cloog, cmake, collectd, connman, conntrack-tools, coreutils, cpio, cryptsetup, dbus, dbus-cpp, devmem2, dhcp, dhcpcd, dhcpdump, dhrystone, dillo, directfb, directfb-examples, dmraid, dos2unix, dovecot, dovecot-pigeonhole, drbd-utils, dropbear, dropwatch, dtc, e2fsprogs, ebtables, efl, eigen, ejabberd, elf2flt, elfutils, erlang, ethtool, eudev, evemu, exfat, exfat-utils, expat, faifa, fbterm, fdk-aac, feh, ffmpeg, file, flashrom, fping, freerdp, freescale-imx, freetype, gdk-pixbuf, genimage, gettext, git, glib-networking, glmark2, gnupg2, gnuradio, gnutls, gpsd, grep, grub2, gst1-imx, gst1-libav, gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, gst1-validate, gst-fsl-plugins, gst-plugins-bad, gstreamer1, guile, gvfs, harfbuzz, haveged, hostapd, icu, imagemagick, impiutil, imx-gpu-viv, imx-vpu, inadyn, intltool, iostat, iperf3, ipmiutil, iproute2, iptables, iw, jpeg-turbo, jq, jsoncpp, kexec-lite, kmod, kodi, kodi-audioencoder-flac, kodi-pvr-argustv, kodi-pvr-filmon, kodi-pvr-hts, kodi-pvr-mythtv, kodi-pvr-pctv, kodi-pvr-stalker, kodi-pvr-vbox, kodi-visualisation-waveforhue, less, lftp, libbluray, libcgroup, libconfuse, libcurl, libdcadec, libdrm, libevdev, libffi, libfribidi, libfslcodec, libfslparser, libfslvpuwrap, libgcrypt, libglew, libglib2, libgtk3, libidn, liblinear, liblockfile, libmicrohttpd, libnetfilter_conntrack, libnfs, libnftnl, libnl, libnspr, libnss, libpcap, libpfm4, libpng, libselinux, libserial, libsoup, libsoxr, libstrophe, libtasn1, libtirpc, libtorrent, libupnpp, liburcu, libusb-compat, libuv, libv4l, libva, libva-intel-driver, libxcb, lighttpd, links, linux, linux-firmware, linux-fusion, linux-headers, lirc-tools, localedef, lpeg, lsof, ltp-testsuite, lttng-libust, lttng-tools, lua-periphery, luaposix, lvm2, lxc, lz4, mdadm, mesa3d, mesa3d-headers, minicom, minidlna, moarvm, modem-manager, mosquitto, mpd, mpdecimal, mpg123, mplayer, mrouted, msmtp, mtd, mutt, nettle, network-manager, nfs-utils, nftables, nginx, nodejs, noip, ntp, ofono, opencv3, openpgm, openssl, openswan, openvpn, pango, parted, perl, perl-cross, perl-crypt-openssl-random, perl-http-message, perl-io-socket-ssl, perl-module-build, perl-mojolicious, perl-netaddr-ip, perl-net-dns, perl-net-http, perl-net-ssleay, perl-uri, perl-xml-libxml, php, picocom, pixman, pkgconf, poco, polarssl, portaudio, portmap, postgresql, proftpd, protobuf, protobuf-c, pulseaudio, python-configshell-fb, python-networkmanager, python-numpy, python-pyparsing, python-pypcap, python-rtslib-fb, python-spidev, python-urwid, python-web2py, qemu, qt5base, redis, rngtools, rng-tools, rpi-firmware, rpi-userland, rtmpdump, rtorrent, ruby, samba, samba4, sane-backends, sconeserver, sdl, sed, setools, shairport-sync, shared-mime-info, sland, smartmontools, softether, spice-protocol, sqlcipher, sqlite, squid, strongswan, stunnel, subversion, sudo, sunxi-tools, supervisor, systemd, tar, targetcli-fb, tcpdump, tiff, tor, tvheadend, tzdata, uboot-tools, udisks, unionfs, upmpdcli, util-linux, vala, valgrind, vim, vlc, vorbis-tools, vsftpd, vtun, wavpack, webkitgtk24, weston, whois, wireless-regdb, wireshark, wpa_supplicant, xdriver_xf86-input-vmmouse, xdriver_xf86-video-imx-viv, xdriver_xf86-video-intel, xdriver_xf86-video-sis, xlib_libXi, xorg-server, xtables-addons, xterm, xz, zic, znc, zsh New packages: axfsutils, bitstream, check, dvblast, eventlog, fastd, gauche, gmock, graphite2, gssdp, gupnp, gupnp-av, ibrcommon, ibrdtn, ibrdtnd, ibrdtn-tools, imx-kobs, iqvlinux, irssi, kompexsqlite, libbroadvoice, libcddb, libcodec2, libcrossguid, libg7221, libhttpparser, libilbc, libldns, libmng, libopenh264, libpam-radius-auth, libpam-tacplus, libsilk, libsoundtouch, libssh, libuecc, libyuv, liquid-dsp, luv, micropython, micropython-libs, python-pyratemp, python-pyroute2, python-ranger, rapidxml, scrypt, sdl2, sp-oops-extract, squeezelite, stress-ng, swupdate, syslog-ng, x265, xdriver_xf86-video-fbturbo, xxhash, yad, zxing-cpp Removed packages: blackbox (was deprecated), divine (merged in directfb), kobs-ng (replaced by imx-kobs), mediactl (merged in libv4l), sawman (merged in directfb), schifra (marked broken since a long time), texinfo (host variant only, no longer used), zxing (replaced by zxing-cpp), Issues resolved (http://bugs.uclibc.org): #4099: cut utility from GNU coreutils works incorrect #7772: libxml-parser-perl build failure: missing dependency ExtUtils/MakeMaker #7931: Default configuration for Cubieboard v1 is outdated #8116: 2015.05-rc2 raspberrypi2_defconfig network interface not coming up #8246: X.org DRI2 build issue #8256: pointing to /usr/bin/objcopy old version (x86) instead of the generated one #8266: mplayer build issue #8281: pyrexc fails to run when path is too long #8316: lttng-tools and lttng-babeltrace executables contain bad RPATH pointing to host machine #8331: kexec wants shutdown in /sbin, but systemd installs it in /usr/sbin #8361: Buildroot 2015.08.1 skeleton inittab overwritten by busybox's version #8366: libevent does not build #8386: build failed with external toolchain #8391: Node.js 0.12.7 fails to build on raspberry_pi defconfig #8396: CCACHE initialization #8401: gpsd 3.15 NMEA support #8416: cups depends on BR2_DEPRECATED_SINCE_2015_05 #8421: util-linux installs systemd files in output/target/home/ 2015.08, Released August 31st, 2015 Minor fixes. OpenCV 3.x package renamed to opencv3. OpenCV 2.4.x reintroduced as opencv. Updated/fixed packages: bootutils, canfestival, cppcms, curlftpfs, dhcpdump, dropbear, erlang-p1-tls, exfat, gnuradio, ipkg, libgudev, libmbim, libwebsock, linux-pam, lm-sensors, ltrace, midori, network-manager, openssh, perl-file-listing, perl-http-cookies, perl-http-daemon, perl-http-negotiate, perl-www-robotrules, python-can, qt5base, qt5multimedia, setools, sysvinit, tinyalsa, tn5250, tvheadend, uboot, vlc, x264, xserver_xorg-server, zyre 2015.08-rc2, Released August, 24th 2015 Fixes all over the tree. Toolchain: fix gcc build on NIOS-II. Infrastructure: add _POST_GEN_HOOKS mechanism to fix hybrid ISO image generation. Architectures: add arm1136j-s variant. Updated/fixed packages: apitrace, audit, bcusdk, bdwgc, beecrypt, boost, bwm-ng, cdrkit, c-icap, cifs-utils, clapack, c-periphery, cpio, cramfs, czmq, dawgdic, dnsmasq, dosfstools, dropbear, elfutils, empty, eudev, fan-ctrl, filemq, gnutls, guile, haveged, imlib2, libcec, libepoxy, libev, libgpgme, libiio, libnetfilter_queue, libnfnetlink, libpfm4, libpthsem, librtas, libselinux, libsigsegv, libsodium, libv4l, lightning, linux, lirc-tools, lrzsz, mono, mosh, mpd, msmtp, nbd, netatalk, nodejs, ola, opencv, oprofile, php, poco, postgresql, powertop, protobuf, protobuf-c, qt5base, qt5quickcontrols, rapidjson, rng-tools, squid, sysdig, sysstat, tftpd, tinc, tz, util-linux, webkitgtk24, weston, wireshark, wvstreams, xdriver_xf86-input-synaptics, zyre. Issues resolved (http://bugs.uclibc.org): #8276: package/dropbear: symlink resolution incorrect #8286: Error with buildroot #8301: ldconfig parameter in Makefile 2015.08-rc1, Released August, 5th 2015 Fixes all over the tree and new features. Architectures: - Refactor how the availability of an MMU is described. - Minimal support for Cortex-M3 - Minimal support for AArch64 big-endian Toolchains: - Add CodeSourcery MIPS 2015.05, remove MIPS 2013.11 - Use uClibc-ng as the default uClibc version, instead of the official uClibc, which hasn't done any release since 3+ years - eglibc is now marked as deprecated - GCC: gcc 4.9.x is now the default and was updated to 4.9.3, support for gcc 5.x added. - Binutils: use Binutils 2.24 as the default, 2.25.x series bumped to 2.25.1, remove old Binutils 2.22. - Update ARC toolchain components to 2015.06 - Add support for Fortran when building gcc Bootloaders: - Support for using the kconfig configuration system in U-Boot New Defconfigs: - VIA VAB-820/AMOS-820 - OLimex OLinuxino A20 Lime - Many new defconfigs for Atmel evaluation boards: at91sam9rlek, at91sam9x5ek, sama5d3xek, sama5d4ek, sama5d4 Xplained Ultra, sama5d3 Xplained. - ACME Systems Aria G25 - WarPboard - Altera Cyclone 5 Development Board - Xilinx zc706 - ARC AXS101 and AXS103 Software Development Platforms - Significant updates to Raspberry Pi / Raspberry Pi 2 Infrastructure: - Buildroot takes better care now of generating predictable permissions in the target filesystem. However, existing permissions on a custom skeleton or rootfs overlay will no longer be preserved. Therefore, it is necessary to add a permission table (BR2_ROOTFS_DEVICE_TABLE) to set the required permissions. - Add support for kconfig fragments. - No longer pass --{enable,disable}-debug to autotools packages depending on the value of BR2_ENABLE_DEBUG. BR2_ENABLE_DEBUG now only controls whether we build with -g or not. - Support for extracting archives in .lzma in the generic package infrastructure. - Remove random-seed file from the default skeleton, since seeding the entropy pool with a known seed makes more harm than good. - In the CVS download helper, add support to use a date as the version. - Add support for a per-package _STRIP_COMPONENTS variable, which packages can use to specify how many path components should be stripped when extracting the tarball. - Addition of a 'kernel-module' package infrastructure, which simplifies the packaging of external kernel modules. Many existing packages are converted to use it. - Allow bootloaders to be implemented in $(BR2_EXTERNAL) - Remove /etc/securetty from the default skeleton. - Migration of sysV initscripts from the default skeleton to a package called 'initscripts', installed only when Busbox init or sysvinit are used. - Migration of the skeleton logic to a proper 'skeleton' package. - Addition of a 'linux-tools' infrastructure in the 'linux' package, to support building user-space tools bundled within the Linux kernel sources, such as perf and cpupower. - Usage of backticks instead of make $(shell ...) to execute shell commands. This allows to delay the evaluation of such commands when actually needed, and not when expanding the variables. It is useful to make 'make printvars' less noisy, and as a preparation to support top-level parallel build. - Libtool .la files are not mungled for all package types, instead of being handled only for packages using the autotools-package infrastructure. - Add mechanism to allow packages to express a dependency on gcc versions. This is needed for packages that use C++11 or C11 support for example. Important package updates: - Complete rework of the matchbox packaging - Lots of fixes in packages for compatibility with musl and gcc 5. - Hash files added to a large number of packages. - Update a significant number of packages to use a new hosting, after the announcement of Google Code and Gitorious closing. - Major packages needed for SELinux support have been merged, but the support is not complete yet. - Significant update of OpenCV to version 3.0, and addition of lots of eatures. - Significant update of all packages supporting the GPU and VPU of i.MX ARM processors. - Addition of systemd support in a significant number of packages. - Qt5 updated to 5.5.0 - Use modular X.org server by default instead of KDrive Filesystems: - Complete overhaul of the iso9660 support. Now allows to use directly IS9660 as the root filesystem format and not only an initrd, and supports Grub 2 and isolinux in addition to Grub. Updated packages: a10disp, agentpp, apache, at91bootstrap3, audit, barebox, bc, bind, bmon, boost, btrfs-progs, ca-certificates, can-utils, ccache, cloog, collectd, connman, coreutils, c-periphery, cryptsetup, dado, dbus, dejavu, dhcpcd, dnsmasq, dosfstools, dovecot, dovecot-pigeonhole, e2fsprogs, ejabberd, erlang-p1-cache-tab, erlang-p1-sip, erlang-p1-stringprep, erlang-p1-stun, erlang-p1-tls, erlang-p1-utils, erlang-p1-xml, erlang-p1-yaml, ethtool, eudev, evtest, exim, expect, explorercanvas, feh, ffmpeg, file, flashrom, freescale-imx, freetype, gawk, gcc, gdb, gettext, git, glib-networking, gnupg2, gnutls, gpsd, gptfdisk, gpu-viv-bin-mx6q, gst-fsl-plugins, harfbuzz, hdparm, heimdal, i2c-tools, imagemagick, imx-vpu, iproute2, ipset, isl, iw, kodi, kodi-addon-xvdr, kodi-audioencoder-flac, kodi-audioencoder-lame, kodi-audioencoder-vorbis, kodi-audioencoder-wav, lftp, libass, libassuan, libcec, libconfi, libcurl, libdrm, libevdev, libfreefare, libfslcodec, libfslparser, libfslvpuwrap, libfuse, libglib2, libgpgme, libgtk2, libgtk3, libical, libidn, libiio, libinput, libiscsi, libllcp, libmicrohttpd, libnfc, libnss, libpcap, libpciaccess, libpng, libserialport, libsigrok, libsoc, libtirpc, libubox, libunistring, libupnp, libuv, libv4l, libva, libva-intel-driver, libXrandr, lighttpd, linenoise, linux, linux-firmware, linux-headers, live555, ltrace, lua, lua-csnappy, lua-ev, luajit, lua-messagepack, luaperiphery, lvm2, lxc, lzo, mesa3d, mesa3d-headers, midori, mmc-utils, modem-manager, mono, mosquitto, mpd, mpd-mpc, mpfr, mpg123, mtd, musl, nano, netperf, network-manager, nfs-utils, nginx, nodejs, ntp, ola, opencv, openldap, openssh, openssl, openswan, openvmtools, openvpn, opkg, orbit, orc, pcmanfm, perl-cross, perl-encode-locale, perl-io-socket-ssl, perl-mojolicious, perl-net-ssleay, perl-path-tiny, perl-uri, perl-xml-libxml, php, pinentry, polarssl, postgresql, pulseview, pure-ftpd, python, python-dpkt, python-lxml, python-networkmanager, python-pyinotify, python-pypcap, python-tornado, qextserialport, qt, qt5, rapidjson, redis, rpcbind, rpi-firmware, rpi-userland, samba4, shairport-sync, snmpp, sqlite, squid, strongswan, stunnel, sudo, sunxi-boards, sunxi-mali, sysdig, sysstat, systemd, tcpdump, tiff, tmux, tor, txheadend, tzdata, uboot, uclibc, ulogd, upmpdcli, usb_modeswitch, usb_modeswitch_data, vala, vsftpd, wayland, weston, whois, wireless-regdb, wireshark, x264, xapp_xvinfo, xdriver_xf86-input-libinput, xdriver_xf86-input-vmmouse, xdriver_xf86-video-cirrus, xdriver_xf86-video-geode, xdriver_xf86-video-imx-viv, xdriver_xf86-video-mach64, xdriver_xf86-video-neomagic, xdriver_xf86-video-r128, xdriver_xf86-video-savage, xdriver_xf86-video-siliconmotion, xdriver_xf86-video-vesa, xkeyboard-config, xlib_libfontenc, xlib_libFS, xlib_libXaw, xlib_libxkbfile, xlib_libXrender, xlib_libXt, xproto_kbproto, xproto_xproto, xproto_xrandrproto, xscreensaver, xserver_xorg-server, xtables-addons, yaml-cpp, zic. New packages: angularjs, atf, audit, c-icap, c-icap-modules, cpio, dawgdic, faketime, fcgiwrap, gflags, glog, initscripts, jquery-datetimepicker, kodi-audioencoder-modplug, kodi-audioencoder-nosefar, kodi-audioencoder-sidplay, kodi-audioencoder-snesapu, kodi-audioencoder-stsound, kodi-audioencoder-timidity, kodi-audioencoder-vgmstream, kodi-platform, kodi-pvr-argustv, kodi-pvr-dvblink, kodi-pvr-dvbviewer, kodi-pvr-filmon, kodi-pvr-hts, kodi-pvr-iptvsimple, kodi-pvr-mediaportal-tvserver, kodi-pvr-mythtv, kodi-pvr-nextpvr, kodi-pvr-njoy, kodi-pvr-pctv, kodi-pvr-stalker, kodi-pvr-vbox, kodi-pvr-vdr-vnsi, kodi-pvr-vuplus, kodi-pvr-wmc, kodi-screensaver-asteroids, kodi-screensaver-biogenesis, kodi-screensaver-crystalmorph, kodi-screensaver-greynetic, kodi-screensaver-pingpong, kodi-screensaver-pyro, kodi-screensaver-stars, kodi-visualisation-shadertoy, kodi-visualisation-spectrum, kodi-visualisation-waveforhue, kodi-visualisation-waveform, kvmtool, kyua, libfm, libfm-extra, libplatform, librtas, libsodium, libsquish, libucl, libump, linux-backports, lua-iconv, lutok, menu-cache, moarvm, monkey, mono-gtksharp3, mosh, openipmi, python-can, python-pycli, python-pydal, python-pyyaml, python-web2py, qpid-proton, qt5webchannel, quazip, racehound, rtl8188eu, rtl8821au, sepolgen, setools, skeleton, stm32flash, webkitgtk24, xdriver_xf86-video-qxl, zynq-boot-bin. Deprecated packages: webkitgtk, libgail, eglibc support in glibc package. Issues resolved (http://bugs.uclibc.org): #4291: Segmentation fault with all binaries that use threads when compiled with gcc 4.6 #6944: building toolchain for sh4 fails #7592: Buildroot GCC: -lto requires plugin support in ranlib #7628: Python SSL does not get built for Raspberry Pi #7682: Missing dependencies for NFS #7742: dhcp lacks important features when BR2_ENABLE_DEBUG #7754: make: *** [/..../buildroot-2014.11/output/build/host-gcc-initial-4.8.3/.stamp_built] Error 2 #7946: libglib2-2.42.2 fails to build for sparc-buildroot-linux-gnu #7956: glibc 2.20 and 2.21 fail to build for sh64-buildroot-linux-gnu #7971: python-flask, python-werkzeug. No module named zlib #7981: Target file system skeleton permissions hazard #8006: rpcdebug in nfs-utils built for the host #8036: alsa-lib headers problem that prevents to compile alsa dependent projects #8081: systemd init system: /tmp is not mode 1777 #8121: php opcache extension doesn't get installed #8151: x86-64 make fails with ncurses 5.9 #8156: pkg-kconfig infra broken for *-update-{config, defconfig} #8161: default /bin/sh symlink to busybox is full path and not relative #8171: glamor missing #8191: Request update support for the cubieboard series #8201: Important security upgrades for node.js 2015.05, Released May 31st, 2015 Minor fixes. Updated/fixed packages: conntrack-tools, directfb, fio, flite, gptfdisk, ipmiutil, iproute2, janus-gateway, keyutils, knock, libelementary, libgcrypt, libgsasl, libjpeg, libstrophe, lttng-libust, nbd, ncurses, nmap, php, postgresql, python, python3, sconeserver, udpcast, upmpdcli 2015.05-rc3, Released May 22nd, 2015 Several fixes, mainly related to static linking. Updated/fixed packages: acl, alsa-utils, apr, armadillo, attr, autoconf-archive, binutils, boost, czmq, dhcpcd, duma, enlightenment, exim, fbterm, freerdp, gcc, gdk-pixbuf, google-breakpad, gpsd, heirloom-mailx, hwloc, ipmiutil, iproute2, jack2, jasper, kmod, lcdproc, leafnode2, libcap-ng, libftdi1, libmatroska, libmemcached, libmodbus, libnftnl, libsigrok, libupnpp, libuv, libxml-parser-perl, linux, linux-headers, lirc-tools, lua-periphery, lxc, mongoose, mono, mpg123, mosquitto, neardal, newt, ntp, ola, openldap, opencv, php, postgresql, protobuf, pulseaudio, python-pyqt, qemu, qt, qt5base, rpi-userland, rsyslog, snmppp, sqlite, tiff, tinyxml2, uboot-tools, unionfs, ux5000-firmware, usbredir, ushare, vpnc, vsftpd, wavpack, wireless_tools, wsapi, wvstreams, xmlstarlet, zeromq, zmqpp New packages: c-periphery Issues resolved (http://bugs.uclibc.org): #8106: mkfs.jffs2 uses the --pagesize parameter incorrectly #8111: 2015.05.rc2 LIBFOO_CONF_OPTS not working #8126: exim lacks plaintext and cram-md5 auth 2015.05-rc2, Released May 11th, 2015 Minor fixes. Toolchain: PR56780 backport to GCC 4.8.4 to fix GDB linking issues. Context functions enabled for uClibc snapshot / uClibc-NG. Architectures: Endian handling symbol for Xtensa, binutils fixes. Infrastructure: Fix for kernel module stripping when localversion contains spaces. Updated/fixed packages: at, autoconf-archive, binutils, cc-tool, cryptsetup, dstat, expedite, freerdp, giflib, gnuchess, guile, ipmiutil, iproute2, mono, monolite, neard, ola, poppler, postgresql, python-qt, qt, sqlite, valgrind, xlib_libXfont Issues resolved (http://bugs.uclibc.org): #8086: Cannot select systemd as init with Linaro 2014.09... 2015.05-rc1, Released May 4th, 2015 Fixes all over the tree and new features. Architectures: Removed AVR32 support, deprecate SH64, added support for steamroller, corei7-avx and core-avx2 x86 variants. Toolchains: IPv6 and Largefile support now enforced for uClibc. Corresponding Kconfig symbols removed. External CodeSourcery AMD64 2014.05, MUSL-cross 1.1.6 added, CS sh2, Xilinx microblaze v2/14.3 removed. Distro-class external toolchains are now detected and blacklisted. Internal toolchain support for Nios2 added, Blackfin removed. Aarch64 and sh musl support. uClibc-ng support added. Libatomic is now handled for internal and external toolchains. Link time optimization (LTO) support. New Defconfigs: Freescale i.MX28 EVK, i.MX31 PDK and SABRE Auto, Raspberry Pi 2, RIoTboard, Infrastructure: Hashes for a large number of packages have been added. Missing hashes now stop the build unless explicitly disabled. Spaces and colons (:) are now supported in package versions. Dependencies can now be listed for the patch step (_PATCH_DEPENDENCIES). Kconfig and Linux kernel extensions infrastructure has been added. Makedevs now has a recursive (r) option. The variable containing the list of packages to build has been renamed from TARGETS to PACKAGES. Make external-deps / legal-info / source / source-check have been reimplemented using the package infrastructure, so their output/behaviour may differ from earlier (some packages were not included in the past). The old insecure DES password encoding is no longer supported. U-Boot patch option now support direct references to patch files and URLs in addition to directories of patches. The i.MX28 SD format (u-boot.sd) is now supported. Updated/fixed packages: agentpp, aircrack-ng, alsa-lib, alsa-utils, apr-util, apr, atk, autossh, avahi, avrdude, bcusdk, bdwgc, bind, binutils, bmon, boost, botan, btrfs-progs, busybox, ca-certificates, cairo, can-utils, canfestival, ccache, chrony, civetweb, clamav, cmake, collectd, connman, copas, crda, cryptodev-linux, cryptsetup, cups, czmq, dbus-cpp, dbus-glib, dbus-python, dbus, dfu-util, dhcp, dhcpcd, dialog, dillo, dmraid, dnsmasq, dos2unix, dosfstools, dovecot-pigeonhole, dovecot, dropbear, dropwatch, dtv-scan-tables, dvdauthor, e2fsprogs, ecryptfs-utils, libevas, elfutils, enscript, erlang, espeak, eudev, evemu, exfat-utils, exim, f2fs-tools, feh, ffmpeg, fftw, flickcurl, fltk, fluxbox, fmlib, fmtools, freeradius-client, freerdp, gamin, gawk, gcc-final, gcc, gd, gdb, gengetopt, geoip, git, glib-networking, gnu-efi, gnuchess, gnutls, gpsd, gptfdisk, gpu-viv-bin-mx6q, gst-plugin-bad, gstreamer, gstreamer1, gtest, gvfs, harfbuzz, haserl, haveged, hiawatha, hicolor-icon-theme, hostapd, hplip, httping, i2c-tools, icu, ifplugd, imagemagick, imlib2, iozone, iproute2, iptables, iputils, irqbalance, iw, jack2, jhead, jimtcl, json-c, kexec, kismet, kmod, kodi-audioencoder-flac, kodi-audioencoder-vorbis, kodi-pvr-addons, kodi, ktap, lcms2, libass, libatomic_ops, libbluray, libcap, libcgroup, libcurl, libdrm, libdvbsi, libebml, libecore, libedit, liberation, libev, libevas, libevdev, libftdi, libgcrypt, libglib2, libgpgme, libgtk2, libgtk3, libiconv, libidn, libiio, libinput, libiscsi, libksba, liblinear, libmatroska, libmicrohttpd, libmodbus, libmpdclient, libnice, libnl, libnspr, libnss, libpcap, libpciaccess, libphidget, libplayer, libpthsem, libqmi, librsvg, libseccomp, libsigrok, libsoup, libsrtp, libssh2, libtasn1, libtool, libunistring, liburcu, libusb, libuv, libva-intel-driver, libva, libvncserver, libvorbis, libvpx, libwebsockets, libxml2, libzip, lightning, lighttpd, linknx, linphone, linux-firmware, linux-headers, linux-pam, live555, ljsyscall, lmbench, lockdev, logrotate, lpc3250loader, lpeg, lsof, lttng-libust, lttng-modules, lttng-tools, lua, luacrypto, luafilesystem, luajit, luaposix, luarocks, lvm2, lxc, make, matchbox-{common,desktop,fakekey,keyboard,lib,startup-monitor,vm}, matchbox, mcelog, memcached, memstat, memtest86, mesa3d, minidlna, mjpegtools, mjpg-streamer, modem-manager, mongoose, monit, mono, monolite, mp4v2, mpc, mpd, mpdecimal, mpg123, mplayer, musl, nano, nbd, ncftp, ncmpc, ncurses, ne10, neard, neardal, net-tools, netatalk, netsnmp, network-manager, nginx, nodejs, ntfs-3g, ntp, numactl, odhcp6c, ofono, open2300, opencv, openldap, openntpd, openocd, openssh, openssl, openswan, opentyrian, openvmtools, openvpn, oprofile, p11-kit, pango, patch, patchelf, pciutils, pcre, perf, perl-gdgraph, perl-io-socket-ssl, perl-json-tiny, perl-module-build, perl-mojolicious, perl-net-ssleay, perl-path-tiny, perl-xml-libxml, perl, phidgetwebservice, php-gnupg, php, pkgconf, polarssl, poppler, popt, postgresql, powerpc-utils, pppd, prboom, procps-ng, proftpd, psplash, ptpd2, python-{cheetah,coherence,django,markdown,netifaces,pam,six}, python-tornado, python-twisted, python-zope-interface, python, python3, qemu, qt, qt5, qt5base, qt5multimedia, qt5xmlpatterns, qt5cinex, quagga, qwt, radvd, readline, rng-tools, rpcbind, rpi-firmware, rpi-userland, rsync, rsyslog, rtai, rtmpdump, ruby, sam-ba, samba, samba4, sane-backends, sconeserver, shairport-sync, sigrok-cli, slang, smcroute, snmppp, socat, socketcand, sofia-sip, sox, spawn-fcgi, speex, sqlcipher, sqlite, squid, strace, strongswan, stunnel, sudo, sunxi-boards, swig, sysstat, systemd, tcpdump, tftpd, thrift, thttpd, ti-gfx, ti-utils, tiff, tinyalsa, tn5250, transmission, trinity, tslib, tvheadend, tzdata, uboot-tools, uclibc, ulogd, usb_modeswitch, usbutils, ustr, util-linux, vala, valgrind, vlc, wayland, webp, weston, wget, which, whois, wireless-regdb, wireless_tools, wireshark, wpa_supplicant, wvstreams, xapp_{bdftopcf,bitmap,fonttosfnt,fslsfonts}, xapp_{fstobdf,iceauth,mkfontscale,oclock,rgb,sessreg,setxkbmap}, xapp_{showfont,smproxy,twm,x11perf,xcalc,xclipboard,xcmsdb}, xapp_{xdbedizzy,xditview,xdpyinfo,xdriinfo,xedit,xev,xeyes}, xapp_{xf86dga,xfsinfo,xgamma,xgc,xhost,xinit,xinput,xkbcomp}, xapp_{xkbevd,xkbprint,xlsatoms,xlsfonts,xmag,xman,xmh,xmodmap}, xapp_xmore, xcb-util-image, xcb-util-keysyms, xdata_xcursor-themes, xdriver_xf86-input-{evdev,keyboard,synaptics,void}, xdriver_xf86-video-{ati,cirrus,geode,mach64,mga,neomagic}, xdriver_xf86-video-{r128,savage,siliconmotion,sis,tdfx}, xdriver_xf86-video-{trident,vmware,voodoo}, xenomai, xfont_font-util, xkeyboard-config, xlib_lib{ICE,X11,Xdmcp,Xfont,Xpm,XvMC}, xlib_lib{Xxf86vm,xshmfence,xtrans}, xproto_randrproto, xproto_xproto, xserver_xorg-server, x11vnc, x264, xerces, xorriso, xterm, xz, yaml-cpp, zeromq, zic, zmqpp New packages: apache, autoconf-archive, batctl, bitstream-vera, bullet, cc-tool, doxygen, drbd-utils, dvdrw-tools, gnuradio, gst1-imx, hans, hwloc, ijs, imx-usb-loader, inconsolata, iodine, iotop, ipmiutil, jsoncpp, leveldb, libdcadec, libdri2, libfreeimage, libftdi1, libsidplay2, lirc-tools, lua-periphery, mc, mesa3d-headers, mosquitto, nvidia-driver, nvidia-tegra23{,-binaries,-codecs}, openjpeg, opusfile, perl-crypt-openssl-{random,rsa}, perl-db-file, perl-digest-{hmac,sha1}, perl-encode-{detect,locale}, perl-file-{listing,util}, perl-html-{parser,tagset}, perl-http-cookies, perl-http-{daemon,date,message,negotiate}, perl-io-html, perl-libwww-perl, perl-lwp-mediatypes, perl-mail-dkim, perl-mailtools, perl-mime-base64, perl-net-{dns,http}, perl-netaddr-ip, perl-time-hires, perl-timedate, perl-uri, perl-www-robotrules, powertop, pulseview, python-{cherrypy,lxml,mako,pyqt,pyxml,sip,spidev,ws4py}, qpdf, qt-webkit-kiosk, sl, softether, sysdig, tinyxml2, tor, tovid, unixodbc, wf111, wine, libepoxy, xapp_xcompmgr, xapp_xfindproxy, xcb-util-cursor, xcb-util-renderutil, xdriver_xf86-input-libinput, xdriver_xf86-video-imx{,-viv}, xproto_xproxymanagementprotocol Removed packages: gtk2-theme-hicolor Deprecated packages: samba Issues resolved (http://bugs.uclibc.org): #7478: Multiple chosen python modules are not built due to... #7508: Use of BR2_EXTERNAL and dependencies to existing packages #7676: Package procps-ng installs binaries to nonsensical folder #7724: Startx is not installed in the target #7760: botan: wrong prefix in botan-1.10.pc #7826: Building of cdparanoia #7844: Lua with hard-float on MIPS by buildroot doesn't work #7874: X.org configure error #7941: glibc-2.20 fails to build for sparc-buildroot-linux-gnu #7951: gcc 4.9.2 fails to build for sparc-buildroot-linux-gnu #7961: Qt5 fails to build for xtensa-buildroot-linux-uclibc #7976: mkuser script fails with: user already exists with... #8011: When building only busybox and strace, strace fails... #8016: collectd fails to build, network.c:171:19: error:... #8041: error on building libcurl7.42.0 2015.02, Released March 1st, 2015 Minor fixes. Updated/fixed packages: civetweb, ding-libs, directfb-examples, glibc, gnupg, gnupg2, gpm, gst-plugins-good, gst1-plugins-good, freetype, libao, libevas, libevent, libfribidi, libgcrypt, libgtk2, libshout, libsrtp, libtheora, libupnpp, libxmlrpc, linux, make, opus, pinentry, rpi-firmware, shared-mime-info, vlc, vorbis-tools, xcb-util-keysyms Removed packages: libgc 2015.02-rc3, Released February 24th, 2015 Minor fixes. Cmake and rebar (erlang) infrastructure fixes. Updated/fixed packages: bind, btrfs-progs, busybox, e2fsprogs, evtest, ffmpeg, fltk, gnutls, i2c-tools, imagemagick, libxcb, make, mjpg-streamer, netsnmp, opentyrian, php, polarssl, qt5base, samba, samba4, sudo, util-linux, xserver_xorg-server 2015.02-rc2, Released February 15th, 2015 Minor fixes. raspberrypi: fix kernel sha1 for DT variant. Updated/fixed packages: dbus, dvdauthor, git, libsemanage, libsepol, libssh2, mplayer, ntp, openvmtools, python3, qt5base, qt5connectivity, xserver_xorg-server 2015.02-rc1, Released February 8th, 2015 Fixes all over the tree and new features. Static/shared library handling reworked. This is now a tristate (shared only / shared and static / static only). Default is now shared only to speed up the build. BR2_PREFER_STATIC_LIB is now called BR2_STATIC_LIBS. The toolchain (internal and external) will now warn when an unsafe library or header path is used (such as /usr/include or /usr/lib). If BR2_COMPILER_PARANOID_UNSAFE_PATH is enabled under build options this instead becomes an error. A installation path issue with the internal musl toolchain support has been fixed so it is now possible to reuse it as an external toolchain. Architectures: Freescale E5500 and E6500 PowerPC support added, deprecated MIPS 1/2/3/4 support removed. New defconfigs: Freescale p2020ds, MIPS creator CI20, Raspberrypi with DT, UDOO Quad. 'make _defconfig' now saves the path to the defconfig in the .config, so a 'make savedefconfig' automatically updates it. Infrastructure for packages using the Erland rebar tool has been added. Hashes for a large number of packages have been added. Hashes are now checked for both target and host packages. The system menu now has an option to automatically configure a network interface through DHCP at bootup. The default filesystem skeleton now uses a separate tmpfs for /run instead of a symlink to /tmp/ for security reasons / to protect against conflicts with user generated temporary files. BR2_EXTERNAL is now exported to post-build and post-image scripts. New packages: bdwgc, benejson, blktrace, bootstrap, cgic, ding-libs, dvdauthor, ejabberd, erlang-goldrush, erlang-lager, erlang-p1-cache-tab, erlang-p1-iconv, erlang-p1-sip, erlang-p1-stringprep, erlang-p1-stun, erlang-p1-tls, erlang-p1-utils, erlang-p1-xml, erlang-p1-yaml, erlang-p1-zlib, exiv2, freeradius-client, gengetopt, glmark2, gpu-amd-bin-mx51, guile, host-qemu, ifupdown, iperf3, janus-gateway, kodi, kodi-audioencoder-flac, kodi-audioencoder-lame, kodi-audioencoder-vorbis, kodi-audioencoder-wav, libcli, libiio, liblinear, libnice, libselinux, libsemanage, libserialport, libsigro, libsigrokdecode, libsrtp, liburiparser, libvips, libwebsock, libz160, libzip, lightning, mcelog, memtest86, mjpegtools, mjpg-streamer, mke2img, mpd-mpc, netsurf-buildsystem, odhcp6c, openldap, python-alsaaudio, python-certifi, python-cheetah, python-coherence, python-django, python-docopt, python-enum, python-enum34, python-flask, python-gobject, python-httplib2, python-ipaddr, python-itsdangerous, python-jinja, python-markdown, python-markupsafe, python-networkmanager, python-pam, python-psutil, python-pyftpdlib, python-pyinotify, python-pysendfile, python-pyxb, python-requests, python-six, python-twisted, python-webpy, python-werkzeug, python-zope-interface, qt5cinex, sigrok-cli, sofia-sip, start-stop-daemon, szip, triggerhappy, ustr, vnstat, xorriso, xtables-addons Removed packages (target): bison, distcc, gob2, m4 Issues resolved (http://bugs.uclibc.org): #7556: make interactive CLI optional for nftables #7730: Error while connecting Qt Cretaor to device #7766: logrotate default gzip path is usually wrong #7790: Invalid ext4 image generated by Buildroot 2014.11, Released December 1st, 2014 Minor fixes. Infrastructure: LD_LIBRARY_PATH handling tweak to ensure current working directory isn't searched. Updated/fixed packages: gd, gdb, libwebsockets, luajit, mono, parted, shairport-sync, util-linux, xapp_bdftopcf, xserver_xorg-server 2014.11-rc3, Released November 28th, 2014 Fixes all over the tree. System: File permissions of /etc/random-seed made more restrictive. Toolchain: Various fixes related to locale handling, a fix for building the toolchain wrapper on MIPS. Updated/fixed packages: bind, binutils. botan, btrfsprogs, clamav, czmq, dhcp, dillo, dovecot, erlang, flac, gd, glibc, gptfdisk, gst1-validate, heirloom-mailx, lame, libksba, libllcp, libnspr, libpng, libshairplay, libtirpc, linux, linux-headers, mpdecimal, mpg123, network-manager, nfstables, nfs-utils, openssl, pcituils, qt, radvd, rtai, sqlcipher, sstrip, tcpdump, uclibc, uemacs, ushare, wayland, weston, xl2tp, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #7670: Fails to build mpc-1.0.2 on latest Cygwin 2014.11-rc2, Released November 21st, 2014 Fixes all over the tree. Inittab tweaks for shutdown handling (busybox and sysvinit). Updated/fixed packages: aircrack-ng, botan, canfestival, clamav, coreutils, czmq, dbus, dovecot, duma, e2fsprogs, erlang, gcc, iputils, libcap, libgcrypt, libmemcached, libssh2, libunwind, libv4l, linux-headers, mesa3d-demos, mutt, mysql, ndisc6, nodejs, omniorb, perl-cross, php, python-tornado, python3, qemu, qt5base, qt5webkit, rpm, rt-tests, ruby, schifra, sdl_sound, shairport-sync, sysvinit, tstools, tzdata, wireshark, x264 Issues resolved (http://bugs.uclibc.org): #7646: strftime on datetime not works on python3 2014.11-rc1, Released November 12th, 2014 Fixes all over the tree and new features. Toolchains: Use -mcpu / -march instead of -mtune. Support additional ARC and sparc variants. Updated Code sourcery and Linaro external toolchains. Defconfigs: Freescale iMX6DL SabreSD, Minnowboard MAX, QEMU powerpc64 pseries added and a number of updates to the existing configurations. Infrastructure: Buildroot is now less noisy when built with the silent option (make -s). A number of package infrastructure variables have been renamed from *_OPT to *_OPTS for constency. Buildroot will complain if the old names are used to assist in updating out of tree packages. Fixes for host systems where bash isn't located in /bin, and older systems not supporting mktemp --tmpdir. Various cleanups of users/groups in the default skeleton. There is now an option to choose what shell /bin/sh points to. Documentation: Various updates to the user manual. The asciidoc documentation handling has now been extended so it can be used by (BR2_EXTERNAL) packages. Updated/fixed packages: acl, acpid, agentpp, aircrack-ng, alsa-lib, alsamixergui, alsa-utils, apitrace, apr, apr-util, argus, arptables, at, atftp, atk, attr, audiofile, aumix, automake, autossh, avahi, avrdude, axel, bandwidthd, bash, bcusdk, beecrypt, bind, binutils, blackbox, bluez5_utils, bluez_utils, bmon, boost, bootutils, bridge-utils, btrfs-progs, busybox, bwm-ng, bzip2, ca-certificates, cairo, ccache, ccid, ccrypt, cdrkit, cegui06, celt051, chrony, cifs-utils, civetweb, cjson, clapack, classpath, cloog, cmake, collectd, connman, copas, coreutils, coxpcall, cppcms, cppdb, cppzmq, cramfs, crda, cryptsetup, ctorrent, cups, cvs, cwiid, czmq, dash, dbus, dbus-cpp, dbus-glib, dbus-python, dejavu, dhcp, dhcpcd, dhcpdump, dialog, dillo, directfb, distcc, dmalloc, dmidecode, dmraid, dnsmasq, doc-asciidoc.mk, dosfstools, dropbear, dropwatch, dstat, dtach, dtc, dvbsnoop, e2fsprogs, ecryptfs-utils, ed, efl, eigen, elf2flt, elfutils, enlightenment, enscript, erlang, espeak, ethtool, eudev, evemu, evtest, exfat, exfat-utils, exim, expat, expect, explorercanvas, faifa, fakeroot, fan-ctrl, fbdump, fb-test-app, fetchmail, ffmpeg, file, filemq, findutils, flac, flann, flickcurl, flite, fltk, fluxbox, fmc, fmlib, fontconfig, foomatic-filters, freerdp, freescale-imx, freetype, ftop, fxload, gamin, gcc, gd, gdb, gdk-pixbuf, genimage, genpart, genromfs, geoip, gettext, giblib, git, glibc, glib-networking, gmp, gmpc, gnu-efi, gnupg, gnupg2, gnuplot, gnutls, google-breakpad, gpm, gpsd, gptfdisk, gpu-viv-bin-mx6q, grantlee, grep, gsl, gst1-libav, gst1-plugins-{bad,base,good,ugly}, gst-ffmpeg, gst-fsl-plugins, gst-omx, gst-plugins-{bad,base,good,ugly}, gst-plugin-x170, gstreamer, gstreamer1, gtest, gtk2-engines, gutenprint, gvfs, harfbuzz, haserl, haveged, hdparm, heimdal, heirloom-mailx, hiawatha, hostapd, hplip, htop, httping, hwdata, i2c-tools, icu, ifplugd, igh-ethercat, imagemagick, imlib2, imx-lib, imx-vpu, inadyn, inotify-tools, input-tools, intltool, iperf, iproute2, iprutils, ipsec-tools, ipset, iptables, iputils, iw, jamvm, jansson, jasper, jimtcl, joe, jpeg-turbo, jq, jquery-keyboard, jquery-mobile, jquery-ui, jquery-ui-themes, jquery-validation, jsmin, json-c, json-javascript, kbd, kexec, kexec-lite, keyutils, kismet, kmod, knock, ktap, lame, lbase64, lbreakout2, lcdproc, lcms2, lesstif, lftp, libaio, libao, libarchive, libargtable2, libass, libassuan, libatasmart, libbluray, libbsd, libcap, libcap-ng, libcdio, libcec, libcgicc, libcgroup, libcofi, libconfig, libconfuse, libcurl, libdaemon, libdnet, libdrm, libdvdnav, libecore, libedbus, libedit, libedje, libeet, libelementary, libelf, libenca, libethumb, libevas, libevas-generic-loaders, libevent, libexif, libeXosip2, libffi, libftdi, libfuse, libgail, libgcrypt, libgeotiff, libglade, libglib2, libgpgme, libgtk2, libhid, libidn, libinput, libiscsi, libjson, libksba, liblockfile, liblog4c-localtime, liblogging, libmad, libmatroska, libmbim, libmemcached, libmicrohttpd, libmpdclient, libmpeg2, libndp, libnfc, libnfs, libnftnl, libnl, libnspr, libnss, liboauth, libogg, liboping, libosip2, libpcap, libpciaccess, libpfm4, libplayer, libplist, libpng, libpthsem, libqmi, libqrencode, libraw, libreplaygain, libroxml, librsvg, librtlsdr, libsamplerate, libseccomp, libsecret, libshairplay, libsoc, libsoup, libsoxr, libssh2, libstrophe, libsvg, libsvg-cairo, libtasn1, libtheora, libtirpc, libtorrent, libubox, libuci, libungif, liburcu, libusb, libuv, libv4l, libva, libva-intel-driver, libvncserver, libvorbis, libvpx, libwebsockets, libxcb, libxml2, libxml-parser-perl, libxmlrpc, libxslt, lighttpd, linenoise, linknx, links, linphone, linux-firmware, linux-fusion, linux-headers, linux-pam, linux-zigbee, lite, live555, ljlinenoise, lmbench, lm-sensors, localedef, lockdev, lockfile-progs, log4cxx, lpty, lrandom, lrzsz, lshw, lsof, lsqlite3, ltp-testsuite, ltrace, ltris, lttng-babeltrace, lttng-libust, lttng-modules, lttng-tools, lua, luabitop, lua-coat, lua-coatpersistent, lua-csnappy, lua-ev, luajit, luajson, lualogging, lua-messagepack, lua-msgpack-native, luaposix, luarocks, luasec, luasocket, luasql-sqlite3, lua-testmore, lunit, lvm2, lxc, lz4, lzlib, lzma, m4, madplay, make, makedevs, Makefile.in, matchbox-common, matchbox-desktop, matchbox-fakekey, matchbox-keyboard, matchbox-lib, matchbox-panel, matchbox-startup-monitor, matchbox-wm, mcrypt, mdadm, media-ctl, mediastreamer, memcached, memstat, memtester, mesa3d, metacity, midori, mii-diag, minidlna, mmc-utils, modem-manager, mongoose, mongrel2, monit, mpc, mpd, mpdecimal, mpfr, mpg123, mplayer, mrouted, msmtp, mtd, mtools, mtr, musepack, musl, mutt, mxml, mysql, nano, nanocom, nbd, ncftp, ncurses, ndisc6, ne10, neard, neon, netatalk, netperf, netsnmp, nettle, net-tools, network-manager, newt, nfs-utils, ngrep, nmap, nodejs, nss-mdns, ntfs-3g, ntp, numactl, nut, nuttcp, ofono, ola, omap-u-boot-utils, omniorb, on2-8170-modules, opencore-amr, opencv, openntpd, openobex, openocd, openpowerlink, openssh, openssl, openswan, opentyrian, opentyrian-data, openvpn, opkg, oprofile, opus, opus-tools, orbit, orc, ortp, p11-kit, pango, parted, pciutils, pcmanfm, pcre, pcsc-lite, perf, perl, perl-gd, perl-gdgraph, perl-io-socket-ssl, perl-json-tiny, perl-module-build, perl-mojolicious, perl-net-ssleay, perl-path-tiny, perl-xml-libxml, perl-xml-parser, php, php-geoip, php-gnupg, php-imagick, php-memcached, php-ssh2, php-yaml, php-zmq, picocom, pifmrds, pinentry, pixman, pkg-autotools.mk, pkg-cmake.mk, pkg-download.mk, pkg-generic.mk, pkg-kconfig.mk, pkg-luarocks.mk, pkg-perl.mk, pkg-python.mk, pkg-utils.mk, poco, polarssl, polkit, poppler, popt, portaudio, portmap, postgresql, powerpc-utils, pppd, pptp-linux, prboom, procps-ng, proftpd, protobuf, protobuf-c, psmisc, ptpd2, pulseaudio, pv, pwgen, python, python3, python-dialog, python-ipy, python-keyring, python-mad, python-netifaces, python-numpy, python-protobuf, python-pyasn, python-pyparsing, python-pyro, python-pyusb, python-serial, python-setuptools, qdecoder, qemu, qextserialport, qjson, qt, qt5, qt5base, qt5connectivity, qt5declarative, qt5enginio, qt5graphicaleffects, qt5imageformats, qt5multimedia, qt5quick1, qt5quickcontrols, qt5script, qt5sensors, qt5serialport, qt5svg, qt5webkit, qt5webkit-examples, qt5websockets, qt5x11extras, qt5xmlpatterns, qtuio, quagga, quota, qwt, radvd, rapidjson, rdesktop, redis, rings, rpcbind, rpi-firmware, rpi-userland, rpm, rp-pppoe, rrdtool, rsh-redone, rsync, rsyslog, rtai, rtmpdump, rt-tests, rubix, ruby, samba, sam-ba, samba4, sane-backends, schifra, sconeserver, scons, screen, sdl, sdl_gfx, sdl_image, sdl_mixer, sdl_net, sdl_sound, sdl_ttf, sed, ser2net, setserial, sg3_utils, shared-mime-info, simicsfs, sispmctl, slang, slirp, smcroute, smstools3, snmppp, snowball-hdmiservice, socat, socketcand, sox, spawn-fcgi, speex, spice, spice-protocol, sqlcipher, sqlite, squashfs, squid, sredird, startup-notification, strace, stress, strongswan, stunnel, subversion, sudo, sunxi-boards, sunxi-cedarx, swig, sylpheed, synergy, sysklogd, sysstat, systemd, sysvinit, taglib, tar, tcl, tcllib, tcpdump, tcpreplay, texinfo, tftpd, thrift, thttpd, tiff, ti-utils, tn5250, torsmo, trace-cmd, transmission, tslib, tstools, tvheadend, twolame, tz, uboot-tools, uclibc, udisks, ulogd, upmpdcli, upx, urg, usb_modeswitch, usbmount, usbredir, usbutils, util-linux, valgrind, vde2, vim, vlc, vo-aacenc, vorbis-tools, vpnc, vsftpd, vtun, wayland, webkit, webp, webrtc-audio-processing, weston, wget, whois, wireless-regdb, wireshark, wpa_supplicant, wvstreams, x11r7, x11vnc, xapp_xcalc, xapp_xdm, xapp_xdpyinfo, xapp_xf86dga, xapp_xfs, xapp_xinit, xapp_xkbevd, xapp_xmh, xapp_xrandr, xapp_xsm, xbmc, xbmc-pvr-addons, xcb-proto, xcursor-transparent-theme, xdriver_xf86-input-mouse, xdriver_xf86-video-{ast,intel}, xdriver_xf86-video-vmware, xenomai, xerces, xfont_font-adobe-{100,75}dpi, xfont_font-adobe-utopia-{100dpi,75dpi,type1}, xfont_font-alias, xfont_font-arabic-misc, xfont_font-bh-100dpi, xfont_font-bh-75dpi, xfont_font-bh-lucidatypewriter-100dpi, xfont_font-bh-lucidatypewriter-75dpi, xfont_font-bh-ttf, xfont_font-bh-type1, xfont_font-bitstream-100dpi, xfont_font-bitstream-75dpi, xfont_font-bitstream-type1, xfont_font-cronyx-cyrillic, xfont_font-cursor-misc, xfont_font-daewoo-misc, xfont_font-dec-misc, xfont_font-ibm-type1, xfont_font-isas-misc, xfont_font-jis-misc, xfont_font-micro-misc, xfont_font-misc-cyrillic, xfont_font-misc-ethiopic, xfont_font-misc-meltho, xfont_font-misc-misc, xfont_font-mutt-misc, xfont_font-schumacher-misc, xfont_font-screen-cyrillic, xfont_font-sony-misc, xfont_font-sun-misc, xfont_font-winitzki-cyrillic, xfont_font-xfree86-type1, xfsprogs, xinetd, xkeyboard-config, xlib_libdmx, xlib_libFS, xlib_libpciaccess, xlib_libSM, xlib_libX11, xlib_libXaw, xlib_libXext, xlib_libXfont, xlib_libXi, xlib_libXinerama, xlib_libXrandr, xlib_libXrender, xlib_libXres, xlib_libXScrnSaver, xlib_libXt, xlib_libXv, xlib_libXvMC, xlib_libXxf86dga, xlib_libXxf86vm, xmlstarlet, xproto_xcmiscproto, xproto_xextproto, xscreensaver, xserver_xorg-server, xterm, xz, zeromq, zlib, zlog, zmqpp, znc, zsh, zxing New packages: adwaita-icon-theme, am335x-pru-package, bcache-tools, biosdevname, botan, canfestival, clamav, cppunit, dos2unix, dovecot, dovecot-pigeonhole, getent, glm, gst1-validate, hicolor-icon-theme, ipmitool, leafnode2, libdvbcsa, libgtk3, libphidget, libshout, libunistring, libupnpp, mesa3d-demos, modplugtools, mono, monolite, mp4v2, netcat-openbsd, nginx, odhcploc, openvmtools, phidgetwebservice, pps-tools, pure-ftpd, python-configshell-fb, python-rtslib-fb, python-urwid, qlibc, qt5location, shairport-sync, spidev_test, targetcli-fb, tinyalsa, trinity, x264, yaml-cpp, ympd Removed packages: libelf Issues resolved (http://bugs.uclibc.org): #261: New package: wxWidgets #325: New package: ratpoison #405: New package: OpenVZ tools #1309: New package: rdiff-backup #3427: New package: nginx #3655: New package: libav #3991: New Package: open-vm-tools (Vmware Tools) #6878: dmraid: disabled on ARC #6950: Full unicode support in ncurses #7010: jamvm builds and runs fine under mips (be) #7088: elfutils on Blackfin doesn't build #7142: ecryptfs needs getent to run #7280: CMake toolchain file uses the FORCE attribute on CMAKE_CXX_FLAGS #7346: [2014.08rc3] vim-8ae50e3ef8bf.tar.gz can not be downloaded, ... #7352: [2014.08-rc3] diffutils-3.3 failed on building #7358: rpi-userland: linking with bcm_host doesn't give vc_dispmanx_* #7364: monit builds a static application, even though BR2_PREFER_... #7370: ngrep - requires --with-pcap-includes fully defined to find... #7442: rootfs remount does not work as expected with sysvinit #7448: Having export MACHINE="something" breaks glibc build on IMX6... #7568: musl buildroot-toolchain does not put libgcc_s.so.1 into place #7574: quota-4.01 fails to build statically 2014.08, Released September 1st, 2014 Minor manual fixes/additions. Updated/fixed packages: btrfs-progs, cmake, cppcms, exim, lftp, libdaemon, libev, libgpgme, libiqrf, libnl, libplist, libroxml, libwebsockets, mesa3d, mpd, mtdev2tuio, musepack, perl-gd, php-geoip, php-gnupg, php-imagick, php-memcached, php-ssh2, php-yaml, php-zmq, polarssl, ruby, systemd, taglib, uboot-tools, upmpdcli, webkit, xapp_xfs, xapp_luit, xscreensaver, yajl Issues resolved (http://bugs.uclibc.org): #7346: vim-8ae50e3ef8bf.tar.gz can not be downloaded, 404 not found 2014.08-rc3, Released August 26th, 2014 Minor fixes. User manual update / restructuring. Updated/fixed packages: cairo, ecryptfs-utils, gettext, gstreamer, gstreamer1, gutenprint, icu, imagemagick, jack2, lbreakout2, libevas-generic-loaders, libftdi, libinput, libtorrent, ltris, msgpack, ntp, php, procps-ng, pulseaudio, thrift, tvheadend, usb_modeswitch, xmlstarlet, Issues resolved (http://bugs.uclibc.org): #7136: ecryptfs-utils needs gettext to run when glibc/eglibc... #7322: libgomp dependency issue with imagemagick #7328: Git dl of versions in x/y broken 2014.08-rc2, Released August 18th, 2014 Fixes all over the tree. User manual restructured / reworked. Toolchain: Fix for C++ exceptions / pthread_exit() on uClibc/glibc, C++-11 features with uClibc. Updated/fixed packages: bandwidthd, bluez5_utils, empty, espeak, fbv, ffmpeg, gd, gnupg2, gst1-plugin-good, iftop, infozip, libcuefile, libeml, libnftl, localedef, ltrace, matchbox, mpd, network-manager, nftables, ngrep, nut, openssl, oprofile, perl, perl-net-ssleay, postgresql, pppd, procps-ng, qt, subversion, synergy, systemd, tar, tftpd, webkit, xapp_rstart, xbmc, xbmc-pvr-addons Issues resolved (http://bugs.uclibc.org): #7124: Use BR toolchain externally results a non-bootable... #7208: Glibc C++ aplications crash if they use exceptions #7250: Cannot build with -std=c++11 #7262: Generating locale en_US.UTF-8 fails on 64bit fedora.. #7286: systemd 215 doesn't build 2014.08-rc1, Released August 8th, 2014 Fixes all over the tree and new features. Architecture: Powerpc64 BE/LE added, AVR32 deprecated. Improved altivec / SPE /atomic instructions handling. Additional PowerPC CPU variants added. Defconfigs: Atmel SAMA5D3, Congatec QMX6, Lego ev3, TS-5x00, qemu-system-xtensa, qemu-aarch64-virt added. A number of tweaks to existing ones. lpc32xx defconfigs removed. Toolchain: Microblaze support for internal musl toolchain. Default to GCC 4.8 for internal toolchain, remove deprecated 4.3 and 4.6 versions. External CodeSourcery / Linaro toolchain updates, option to copy gconv libraries for external toolchains. Infrastructure: graph-depends: misc fixes, transitive dependencies are not drawn by default. Download handling is now done using helper scripts. Integrity of downloads can now be verified using sha* hashes. Subversion download now uses peg revisions for robustness. Legal-info: License info of local or overridden packages are saved as well. Toolchain packages are also taken into account. autotools: Static linking with libtool / v1.5 improvements. Gettextize support, similar to autoreconf. kconfig package infrastructure added. Misc: Version selection for busybox dropped. Updated/fixed packages: aespipe, aiccu, alsa-lib, alsa-utils, alsamixergui, argus, armadillo, at, atftp, atk, avahi, avrdude, axel, b43-firmware, b43-fwcutter, bandwidthd, bc, bcusdk, beecrypt, bind, binutils, blackbox, bluez5_utils, bmon, boa, bonnie, bootutils, bsdiff, btrfs-progs, bustle, busybox, bwm-ng, bzip2, ca-certificates, cairo, can-utils, ccache, ccrypt, chrony, cifs-utils, classpath, cloog, cmake, collectd, connman, coreutils, cosmo, cppcms, cramfs, crda, cryptodev-linux, cryptodev, ctorrent, cvs, dbus-cpp, dbus-glib, dbus-python, dbus, dcron, dejavu, devmem2, dfu-util, dhcp, dhcpcd, dhcpdump, dhrystone, dialog, dillo, distcc, dmidecode, dmraid, dnsmasq, doom-wad, dropbear, dropwatch, dsp-tools, dtv-scan-tables, dvb-apps, e2fsprogs, e2tools, eeprog, eigen, elf2flt, elftosb, enlightenment, enscript, espeak, ethtool, eudev, evemu, exim, expedite, explorercanvas, ezxml, faifa, fan-ctrl, fconfig, feh, fetchmail, ffmpeg, fftw, file, fio, fis, flann, flashrom, flex, flot, fltk, fontconfig, freerdp, freescale-imx, freetype, ftop, gcc, gd, gdb, genimage, genromfs, gettext, giblib, glib-networking, glibc, gmp, gnupg, gnutls, gpm, gpsd, gptfdisk, gpu-viv-bin-imx6q, gqview, grantlee, gst-ffmpeg, gst-fsl-plugins, gst1-libav, gst1-plugins-bad, gst1-plugins-ugly, gtk2-engines, gtk2-theme-hicolor, gtkperf, gvfs, haserl, hdparm, hostapd, httping, i2c-tools, icu, imagemagick, imx-lib, inadyn, inotify-tools, input-tools, ipkg, iproute2, iputils, irda-utils, iw, jack2, jpeg, jquery, jquery-keyboard, jquery-mobile, jquery-validation, jsmin, kbd, kexec, kmod, knock, latencytop, lcdapi, leafpad, lesstif, lftp, libaio, libarchive, libargtable2, libart, libatasmart, libatomic_ops, libbsd, libcap-ng, libcec, libcgicc, libcgroup, libconfuse, libcurl, libdrm, libdvdnav, libdvdread, libeXosip2, libedit, liberation, libesmtp, libev, libevas, libevdev, libevent, libfcgi, libffi, libfreefare, libfslcodec, libfslparser, libfslvpuwrap, libgail, libgcrypt, libglade, libglib2, libgpgme, libgtk2, libhid, libical, libiconv, libiqrf, libjpeg, liblog4c-localtime, libmbus, libmicrohttpd, libmms, libndp, libnftnl, libnl, libnspr, libnss, liboauth, libpcap, libpng, libpthsem, libqmi, libraw, libraw1394, librsvg, libsoc, libsoup, libsvgtiny, libsysfs, libtasn1, libtirpc, libtorrent, libusb, libv4l, libwebsockets, libxcb, libxml2, libyaml, links, linux-firmware, linux-fusion, linux-headers, linux-pam, lite, live555, lm-sensors, lockfile-progs, lpc3250loader, lshw, lsof, lsuio, ltrace, ltris, lua-messagepack, luainterpreter, luajit, luaposix, luarocks, lvm2, lxc, lz4, lzo, make, makedevs, mdadm, mediastreamer, mesa3d, metacity, minidlna, mkpasswd, modem-manager, mongoose, mpd, mpg123, msgpack, mtd, mtools, mtr, musepack, musl, mysql, nano, nasm, nbd, ncurses, ndisc6, netatalk, netplug, network-manager, nftables, ngircd, nodejs, nss-mdns, ntp, nut, olsr, open2300, opencv, openntpd, openocd, openpgm, openpowerlink, openssh, openssl, openswan, openvpn, opkg, oprofile, opus-tools, orc, p910nd, pango, parted, pax-utils, pcmanfm, perf, perl, perl-module-build, php, pixman, pkgconf, poco, polarssl, popt, portmap, postgresql, prboom, protobuf-c, proxychains-ng, psmisc, psplash, ptpd2, python, python-{bottle,dpkt,id3,mad,msgpack,nfc,pygame,pyzmq,simplejson}, python3, qhull, qt, qt5base, qt5connectivity, qt5declarative, qt5graphicaleffects, qt5multimedia, qt5quickcontrols, qt5sensors, qt5svg, qt5webkit, quagga, quota, radvd, rdesktop, read-edid, rpcbind, rpi-firmware, rpi-userland, rpm, rsh-redone, rsync, rt-tests, rtmpdump, rtorrent, rubix, ruby, samba, samba4, sane-backends, sawman, sconeserver, setserial, sg3_utils, shared-mime-info, smartmontools, smcroute, snappy, socketcand, spawn-fcgi, sqlite, squashfs, squid, sredird, startup-notification, statserial, strongswan, stunnel, sunxi-mali, supervisor, synergy, sysklogd, sysprof, sysstat, systemd, tcpdump, tcpreplay, texinfo, thrift, thttpd, ti-gfx, ti-utils, tinyhttpd, torsmo, trace-cmd, transmission, tslib, tstools, tvheadend, tzdata, uboot-tools, uclibc, udev, udpcast, usb_modeswitch, usbmount, util-linux, valgrind, vim, vlc, w_scan, wayland, webrtc-audio-processing, weston, wget, wireless-regdb, wireless_tools, wireshark, wpa_supplicant, xapp_{twm,xconsole,xcursorgen,xedit,xfs,xinit,xrandr}, xdriver_xf86-video-intel, xlib_lib{FS,ICE,Xext,Xfont,Xft,Xi}, xproto_fontsproto, xproto_inputproto, xserver_xorg-server, x11vnc, xbmc, xbmc-addon-xvdr, xbmc-pvr-addons, xterm, xvkbd, xz New packages: flickcurl, fmc, fmlib, geoip, gnupg2, google-breakpad, imx-vpu, isl, kexec-lite, libglew, libglu, libinput, libksba, libmemcached, libmpdclient, librtlsdr, libuv, libva, libva-intel-driver, linux-zigbee, memcached, mpdecimal, ncmpc, opencore-amr, patchelf, perl-datetime-tiny, perl-gd, perl-gdgraph, perl-gdtextutil, perl-io-socket-ssl, perl-json-tiny, perl-mojolicious, perl-net-ssleay, perl-path-tiny, perl-try-tiny, perl-xml-libxml, perl-xml-namespacesupport, perl-xml-sax, perl-xml-sax-base, php-geoip, php-memcached, pifmrds, pinentry, powerpc-utils, procps-ng, pwgen, python-cffi, python-daemon, python-flup, python-ipython, python-numpy, qt5enginio, qt5webkit-examples, qt5websockets, simicsfs, sispmctl, sox, sshpass, tclap, twolame, upmpdcli, whois, xlib_libxshmfence, xproto_dri3proto Removed packages: procps Issues resolved (http://bugs.uclibc.org): #5750: Doing a Buildroot build from /usr doesn't work #5900: config flags to the Xenomai build system #6230: Cannot compile gcc without threads (uClibc-based) #6626: procps Unknown HZ value! (XX) Assume 100 #7118: Package "thrift" requires atomic operations #7154: Local uClibc config file gets overwritten using ... #7160: host-xz not built #7166: hostapd: segfault when using RT5370 #7172: Name collision of rpath token expansion and internal.. #7178: NTPd package cannot sync time without a proper ntp.conf #7184: supervisord depends on libxml2 implicitly #7196: Unable to build on UBUNTU13.10 #7268: python 2.7 compilation issue on a Debian/Ubuntu ... 2014.05, Released May 31st, 2014 Minor fixes. Minor manual fixes. U-Boot now defaults to spl/u-boot-spl.bin for the spl file. Updated/fixed packages: exim, glibc, gnutls, libfribidi, qt5base, qt5webkit, sysklogd, thrift, u-boot 2014.05-rc3, Released May 28th, 2014 Minor fixes. Updated/fixed packages: acl, attr, connman, dosfstools, dropbear, dvb-apps, exim, flite, gdb, httping, hwdata, lesstif, libnss, libv4l, lttng-babeltrace, midori, monit, mplayer, php, python2, rdesktop, rpi-userland, ruby, samba, samba4, slang, xbmc Issues resolved (http://bugs.uclibc.org): #7100: license info for package 'acl' missing #7106: license info for package 'attr' missing #7112: license info for package 'hwdata' 2014.05-rc2, Released May 21st, 2014 Fixes all over the tree. Stripping using sstrip has been deprecated. BR2_EXTERNAL can now also be used to implement custom filesystem types. The newly added BR2_GRAPH_DEPTH variable to limit the depth of the generated dependency graph has been renamed to BR2_GRAPH_DEPS_OPTS, so additional options can be supported in the future. The virtual package infrastructure will now error out early if multiple packages providing the same virtual package has been enabled (E.G. opengl). This change requires that the packages explicitly declare what virtual package(s) they provide. Updated/fixed packages: acpid, armadillo, avahi, bellagio, btrfs-progs, cairo, clapack, directfb, duma, ecryptfs-utils, elfutils, eudev, fbgrab, fio, flann, fluxbox, gdb, gpm, gpu-viv-bin-mx6q, gst1-plugins-good, gst-plugins-good, imagemagick, iprutils, ipsec-tools, jack2, libdvdnav, libdvdread, libnss, libunwind, linux-headers, lsof, lua, luajit, matchbox-keyboard, mesa3d, mpd, mplayer, mtr, mysql, netsnmp, nodejs, openpowerlink, openvpn, pciutils, php-imagick, postgresql, pulseaudio, qt5quick1, rpi-userland, rsyslog, samba, samba4, sane-backends, sunxi-mali, systemd, ti-gfx, tstools, udev, webkit, wpa_supplicant, xbmc, xlib_libXpm, xserver_xorg-server, zyre Issues resolved (http://bugs.uclibc.org): #5396: Boot hangs when starting samba if BR2_ENABLE_LOCALE... #7016: Git issues in resulting buildroot tar #7094: pciutils doesn't build on Blackfin 2014.05-rc1, Released May 13th, 2014 Fixes all over the tree and new features. Architectures: Support for MIPS o32 ABI on MIPS-64 targets has been removed. Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage. Support for the ARM A12 variant and Intel corei7. Configs: Minnowboard and Altera SoCkit added, QEMU updates. Bootloaders: Grub2 and gummiboot support, syslinux support extended. Toolchains: GCC 4.9. Glibc 2.19. Support for the musl C library for internal and external toolchains. 4.8-R3 support for ARC, Internal toolchain support for Aarch64 and Microblaze. Environment variable to control debug output of toolchain wrapper renamed to BR2_DEBUG_WRAPPER to match the other variables. Toolchain tuple vendor name can now be customized. Updated external Linaro ARM/Aarch64 toolchains. Added external Linaro ARMEB toolchain. A GDB gdbinit file is now generated for external toolchains to automatically set the correct sysroot. Kconfig handling for minimum kernel headers version required for packages. Now packages needing specific kernel header features can specify these requirements in Kconfig. Infrastructure: Support for (but disabled as it leads to unreproducible builds) toplevel parallel builds. See the comment at the top of Makefile for details about how to enable it and what the problems are if you want to test it. Python package infrastructure extended to support Python 3.x Perl and virtual package infrastructure support added. PRE_*_HOOKS support for all build steps. Updated/fixed packages: acpid, agentpp, aiccu, apr, avahi, barebox, bash, beecrypt, bellagio, binutils, boost, boot-wrapper-aarch64, bustle, busybox, ca-certificates, cairo, ccache, ccid, cgilua, chrony, cifs-utils, civetweb, cmake, collectd, connman, coreutils, coxpcall, cppcms, cppzmq, crda, cryptodev, cryptsetup, cups, czmq, dbus, dhcpdump, directfb, dmalloc, dmraid, dnsmasq, dosfstools, dsp-tools, dtc, dvb-apps, ebtables, ecryptfs-utils, eigen, erlang, ethtool, evemu, evtest, f2fs-tools, fdk-aac, feh, ffmpeg, file, filemq, flac, flot, fmtools, fping, freetype, fswebcam, gcc, gd, gdb, gettext, giblib, git, glibc, glibmm, glib-networking, gmp, gnutls, gpm, gpsd, gpu-viv-bin-mx6q, grep, gst1-libav, gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, gst-ffmpeg, gst-fsl-plugins, gst-omx, gst-plugins-good, gstreamer1, gvfs, harfbuzz, haveged, hostapd, htop, httping, ifplugd, iftop, igmpproxy, imagemagick, imlib2, imx-lib, infozip, intltool, iproute2, ipsec-tools, ipset, jansson, jpeg, jpeg-turbo, jquery, jquery-keyboard, jquery-ui, jquery-ui-themes, json-glib, json-javascript, kexec, kmod, lame, lbase64, lbreakout2, lcdproc, lftp, libao, libatasmart, libatomic_ops, libcap, libcdio, libcec, libcgicc, libcgroup, libcurl, libdrm, libdvdnav, libdvdread, libegl, libeio, libenca, libesmtp, libevas, libevdev, libfribidi, libfslcodec, libfslparser, libfslvpuwrap, libgail, libgles, libglib2, libgtk2, libhid, libjpeg, libmbim, libmicrohttpd, libmodplug, libnftnl, libnspr, libogg, libopenmax, libopenvg, libpcap, libplayer, libpng, libpthread-stubs, librsvg, libsigsegv, libsocketcan, libsoup, libtasn1, libtool, libtpl, libunwind, liburcu, libusb, libwebsockets, libxcb, libxml2, libxmlpp, libyaml, lighttpd, linphone, linux-firmware, linux-headers, ljsyscall, lmbench, lsof, ltp-testsuite, ltris, lttng-babeltrace, lttng-libust, lttng-modules, lttng-tools, lua, lua-cjson, luacrypto, lua-ev, luaexpat, luaexpatutils, luafilesystem, luainterpreter, luajit, lua-msgpack-native, luaposix, luarocks, luasec, luasocket, luasql-sqlite3, lvm2, macchanger, memstat, mesa3d, metacity, minidlna, mmc-utils, mobile-broadband-provider-info, modem-manager, mongrel2, monit, mpd, mplayer, msmtp, mtd, mtools, mutt, mysql, nasm, ncurses, ne10, netatalk, netsnmp, nettle, network-manager, newt, nfs-utils, nmap, nodejs, ntfs-3g, ntp, nut, ofono, ola, olsr, omniorb, opencv, opengl, openpgm, openssh, openssl, openswan, openvpn, orbit, orc, p11-kit, pango, parted, pciutils, pcre, pcsc-lite, perf, perl, perl-xml-parser, php, picocom, pixman, pkgconf, poppler, popt, portmap, powervr, pppd, pptp-linux, proftpd, protobuf, protobuf-c, ptpd2, pulseaudio, python, python3, python-bottle, python-m2crypto, python-netifaces, python-pyasn, python-pycrypto, python-pygame, python-pysnmp, python-pysnmp-apps, python-pysnmp-mibs, python-serial, python-setuptools, qextserialport, qt, qt5, qt5base, qt5connectivity, qt5declarative, qt5graphicaleffects, qt5imageformats, qt5multimedia, qt5quick1, qt5quickcontrols, qt5script, qt5sensors, qt5serialport, qt5svg, qt5webkit, qt5x11extras, qt5xmlpatterns, qtuio, qwt, radvd, readline, rings, rpi-firmware, rpi-userland, rsh-redone, rsync, rsyslog, rtai, rtmpdump, rt-tests, ruby, samba, sconeserver, scons, sdl, sdl_image, sdl_mixer, sg3_utils, slang, smstools3, snmppp, socat, speex, sqlcipher, sqlite, squashfs, squid, strongswan, stunnel, sunxi-boards, sunxi-mali, sunxi-tools, sylpheed, syslinux, sysstat, systemd, taglib, tcl, tcllib, tcpreplay, tidsp-binaries, ti-gfx, tmux, tvheadend, tzdata, uboot, uboot-tools, uclibc, udev, udisks, ulogd, usb_modeswitch, usb_modeswitch_data, usbmount, util-linux, valgrind, vlc, webkit, weston, wget, wireshark, wpa_supplicant, wsapi, w_scan, xapp_appres, xapp_bdftopcf, xapp_beforelight, xapp_bitmap, xapp_editres, xapp_fslsfonts, xapp_fstobdf, xapp_iceauth, xapp_ico, xapp_mkfontscale, xapp_rgb, xapp_rstart, xapp_sessreg, xapp_showfont, xapp_twm, xapp_viewres, xapp_xauth, xapp_xbacklight, xapp_xcalc, xapp_xclock, xapp_xditview, xapp_xdpyinfo, xapp_xdriinfo, xapp_xev, xapp_xfd, xapp_xfontsel, xapp_xfs, xapp_xfsinfo, xapp_xgc, xapp_xhost, xapp_xinit, xapp_xkbutils, xapp_xkill, xapp_xload, xapp_xlsclients, xapp_xlsfonts, xapp_xmag, xapp_xman, xapp_xmessage, xapp_xmodmap, xapp_xprop, xapp_xrandr, xapp_xrdb, xapp_xrefresh, xapp_xset, xapp_xsetroot, xapp_xsm, xapp_xstdcmap, xapp_xvidtune, xapp_xvinfo, xapp_xwd, xapp_xwininfo, xcb-util-wm, xdriver_xf86-input-evdev, xdriver_xf86-input-joystick, xdriver_xf86-input-keyboard, xdriver_xf86-input-mouse, xdriver_xf86-input-synaptics, xdriver_xf86-input-vmmouse, xdriver_xf86-video-ark, xdriver_xf86-video-ast, xdriver_xf86-video-ati, xdriver_xf86-video-cirrus, xdriver_xf86-video-dummy, xdriver_xf86-video-fbdev, xdriver_xf86-video-geode, xdriver_xf86-video-glide, xdriver_xf86-video-glint, xdriver_xf86-video-i128, xdriver_xf86-video-intel, xdriver_xf86-video-mach64, xdriver_xf86-video-mga, xdriver_xf86-video-neomagic, xdriver_xf86-video-newport, xdriver_xf86-video-nv, xdriver_xf86-video-openchrome, xdriver_xf86-video-r128, xdriver_xf86-video-savage, xdriver_xf86-video-siliconmotion, xdriver_xf86-video-sis, xdriver_xf86-video-tdfx, xdriver_xf86-video-tga, xdriver_xf86-video-trident, xdriver_xf86-video-vesa, xdriver_xf86-video-vmware, xdriver_xf86-video-voodoo, xenomai, xerces, xl2tp, xlib_libFS, xlib_xtrans, xproto_xproto, xserver_xorg-server, xutil_util-macros, zeromq, zic, zmqpp, zyre New packages: armadillo, btrfs-progs, clapack, cosmo, dado, dbus-triggerd, dtv-scan-tables, e2tools, eudev, exim, expect, fetchmail, flann, flite, gnu-efi, grub2, gummiboot, heimdal, iprutils, iptraf-ng, jack2, jquery-mobile, libee, libestr, libgc, libgl, liblogging, libndp, libsoxr, libstrophe, libubox, libuci, libxmlrpc, ljlinenoise, lpeg, lpty, lrandom, lsqlite3, lua-coat, lua-coatpersistent, lua-csnappy, luajson, lualogging, lua-messagepack, lua-testmore, lunit, lzip, lzlib, musl, nftables, opentyrian, opentyrian-data, perl-module-build, php-gnupg, php-imagick, php-ssh2, php-yaml, php-zmq, postgresql, python-libconfig, python-pypcap, python-pyrex, qdecoder, qhull, samba4, smack, tz, tzdump, ucl, upx, vo-aacenc, xbmc, xbmc-addon-xvdr, xbmc-pvr-addons, yaffs2utils, zlog, znc Removed packages: crosstool-ng, python-distutilscross, vala Issues resolved (http://bugs.uclibc.org): #6842: Checking external toolchain for eabihf #6956: Packaging libsoxr #6986: Make legal-info fails on uboot versions before 2014.01 #6992: Incorrect installation rights on external kernel module.. 2014.02, Released February 27th, 2014 Minor fixes. Updated/fixed packages: cegui06, cppdb, e2fsprogs, gcc, gdb, gst1-plugins-bad, gstreamer, gstreamer1, haserl, imagemagick, libpng, libxml2, lua, luajit, luarock, ncftp, openswan, pcsc-lite, qt5connectivity, ramsmp, strongswan, vlc Issues resolved (http://bugs.uclibc.org): #6938: mkuser script generates wrong password for new user in.. 2014.02-rc3, Released February 25th, 2014 Minor fixes. Updated/fixed packages: aiccu, ala-lib, alsa-utils, binutils, cairo, coreutils, dhcpcd, distcc, efl, evas, iputils, gdb, gpsd, gst-fsl-plugins, icu, libcec, libcgi, libplayer, libsecret, libsepol, libsigsegv, libtool, libv4l, linux-headers, matchbox-lib, mpg123, ncftp, opencv, pcmanfm, pixman, pv, qt, rt-tests, sawman, sconeserver, sdl, thrift, tvheadend, util-linux, webkit, xscreensaver Issues resolved (http://bugs.uclibc.org): #4706: Removing .stamp_target_installed does not trigger... #5030: busybox built fails if we use an override src dir... #5420: Dbus and /var/run management #5768: Not able to build ALSA-Lib for static build #5774: Not able to build ALSA-Utils for static build #6542: external python modules fail to compile to pyc if... #6764: Support for kernel signed modules #6794: Busybox compiled from buildroot hangs on pass from... 2014.02-rc2, Released February 20th, 2014 Fixes all over the tree. Static linking / nommu fixes and annotations for several packages. Updated/fixed packages: boost, busybox, collectd, coreutils, dropbear, elfutils, feh, gcc, gst1-libav, imagemagick, iozone, jimtcl, kexec, libvncserver, lvm2, lxc, mplayer, netsnmp, nut, opencv, python, python3, qtuio, systemd, thrift, transmission, uclibc, vlc, webkit Issues resolved (http://bugs.uclibc.org): #5450: AT91SAM9260 Bootstrap compilation problem #5582: libiconv 1.14 failed to build #5624: When building directfb, BR2_TARGET_LDFLAGS not used by.. #5852: [2012.11] usb_modeswitch should depends of "BR2_PACK.. #6218: binutils-2.23.2/gas fails with undefined reference to.. #6236: binutils-2.23.2/bfd fails with undefined reference to.. #6470: If the build directory is a child of /usr, the build.. #6776: systemd error: static declaration of 'execvpe' follows.. #6818: toolchainfile.cmake has absolut path references 2014.02-rc1, Released February 11th, 2014 Fixes all over the tree and new features. Support for external packages/defconfigs (BR2_EXTERNAL). See user manual for details. Cleanup of environment variable names for consistency. The download directory location override (BUILDROOT_DL_DIR) is now called BR2_DL_DIR. Likewise the name of the current .config is renamed from BUILDROOT_CONFIG to BR2_CONFIG. Please update your post build scripts if you use this! BUILD_DIR is now also exported to the post build/image scripts. Toolchain: GCC 4.8 fix for ARM stack corruption, reverted uClibc pread/pwrite backport as they cause issues on certain architectures, new Linaro and Sourcery Codebench toolchains. x86: Support for AMD Jaguar cores, SSE4.x, SH: SH2/SH3/SH3EB variants removed, Microblaze: Internal toolchain support Legal infrastructure: Info is now split between host and target packages, large number of license annotations. Lua: selection between lua 5.1 / 5.2, luarocks support Python: package infrastructure, many new packages. Defconfigs: Armadeus APF51 + Zedboard added, apf27, apf28, beaglebone, microblaze, pandaboard, qemu, raspberry pi updated. Updated/fixed packages: aiccu, alsa-lib, alsa-utils, am33x-cm3, aumix, autoconf, automake, barebox, bellagio, berkeleydb, binutils, bison, blackbox, bluez_utils, boost, bustle, busybox, cairo, can-utils, ccache, ccid, cgilua, cifs-utils, civetweb, cmake, collectd, connman, copas, coreutils, coxpcall, cppzmq, cramfs, crda, cryptodev-linux, cryptsetup, cups, czmq, dhcpcd, dhcpdump, dhrystone, dialog, dmraid, dnsmasq, dosfstools, dropbear, dropwatch, dtc, duma, dvb-apps, e2fsprogs, eglibc, eigen, elf2flt, erlang, ethtool, f2fs-tools, ffmpeg, file, filemq, fio, flashrom, flex, fluxbox, fontconfig freerdp, freetype, gadgetfs-test, gawk, gcc, gdb, gdbm, gettext, git, glibc, gnupg, gnutls, gob2, gpsd, grep, grub, gst-ffmpeg, gst-plugins-good, gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, gstreamer, gstreamer1, gtest, icu, iftop, imagemagick, inadyn, infozip, iozone, iproute2, iptables, iw, jpeg, jpeg-turbo, jq, kexec, kmod, knock, lbase64, lcdapi, lftp, libcdaudio, libcgi, libcgicc, libcuefile, libcurl, libdmtx, libdrm, libdvdnav, libdvdread, libegl, libevent, libexif, libfcgi, libfreefare, libgles, libglib2, libllcp, libmicrohttpd, libmpd, libnfc, libnl, libnss, libopenmax, libopenvg, libpcap, libpfm4, libplayer, libpng, libqmi, libreplaygain, libroxml, libsamplerate, libsexy, libsigsegv, libsndfile, libsoc, libtasn1, libtorrent, libtpl, libupnp, libusb, libusb-compat, libvorbis, libxcb, libxml2, libxmlpp, libyaml, lighttpd, linknx, linux-firmware, linux-pam, live555, lm_sensors, lmbench, lockdev, logrotate, lrzsz, ltrace, lua, lua-ev, lua-msgpack-native, luabitop, luaexpat, luaexpatutils, luafilesystem, luajit, luaposix, luasec, luasocket, luasql-sqlite3, m4, matchbox, mdadm, minicom, mongrel2, mpc, mpd, mpg123, mplayer, mtd, mysql, lvm2, mxml, ncurses, ne10, neard, neardal, netsnmp, netstat-nat, network-manager, nodejs, numactl, ofone, ola, olsr, omniorb, open2300, opencv, openpowerlink, openssh, openssl, openvpn, oprofile, opus, opus-tools, orbit, p11-kit, parted, pcre, pcsc-lite, perl, php, poco, poppler, powervr, protobuf-c, psplash, python, python-bottle, python-{crc16,distutilscross,dpkt,id3,ipy,m2crypto,mad,meld}, python-{netifaces,nfc,protobuf,pygame,pyparsing,pyro,pyzmq}, python-{serial,setuptools}, qt, qt5base, qt5connectivity, qt5declarative, qt5graphicaleffects, qt5jsbackend, qt5multimedia, qt5quick1, qt5quickcontrols, qt5script, qt5webkit, radvd, redis, rings, rng-tools, rpcbind, rpi-firmware, rpi-userland, rt-tests, sam-ba, samba, sawman, sconeserver, scons, sdl, sg3_utils, snappy, snmppp, socketcand, spice, spice-protocol, sqlcipher, sqlite, squid, sshfs, strace, subversion, sunxi-mali, supervisor, sysklogd, sysprof, sysstat, systemd, sysvinit, taglib, tar, tcpdump, ti-gfx, ti-utils, tinymembench, tn5250, trace-cmd, transmission, tvheadend, tzdata, zxing, uboot, uboot-tools, uclibc, udev, udpcast, ulogd, urg, usb_modeswitch_data, util-linux, vala, valgrind, vorbis-tools, wavpack, wayland, weston, wget, wireless-regdb, wireshark, wpa_supplicant, wsapi, xavante, xapp_xdpyinfo, xapp_xrandr, xcb-proto, xdriver_xf86-video-intel, xenomai, xkeyboard-config, xl2tp, xlib_lib{FS,SM,X11}, xlib_libX{au,aw,composite,cursor,damage,ext,fixes,font,i}, xlib_libX{inerama,mu,pm,randr,render,res,t,tst,v,xf86dga}, xlib_libXxf86vm, xlib_libdmx, xlib_libfontenc, xlib_libpciaccess, xlib_xtrans, xproto_dri2proto, xproto_{glproto,inputproto,presentproto,randrproto,videoproto}, xproto_xextproto, xproto_xproto, xutil_util-macros, xutil_makedepend, zic, zmqpp, zxing, zsh, zyre New packages: apitrace, avrdude, c-ares, ca-certificates, cwiid, dbus-cpp, evemu, fping, fswebcam, gpm, gst1-libav, haveged, intel-microcode, iucode-tools, jasper, joe, ktap, lbreakout2, libass, libbluray, libcdio, libenca, libevdev, libmbim, libmodplug, libnfs, libnftnl, libplist, libshairplay, libsocketcan, ljsyscall, log4cplus, ltris, luainterpreter, luarocks, minidlna, mmc-utils, modemmanager, mtr, net-tools, python-configobj, python-dialog, python-json-schema-validator, python-keyring, python-msgpack, python-posix-ipc, python-pyasn, python-pycrypto, python-pysnmp, python-pysnmp-apps, python-pysnmp-mibs, python-pyusb, python-simplejson, python-tornado, python-versiontools, rtmpdump, rtptools, smcroute, smstools3, tcpreplay, thrift, ti-uim, tinyxml, tmux, vlc, wmctrl, xconsole Removed packages: autoconf, automake, ccache, cpanminus, lzma, netkitbase, netkittelnet, pkg-config, squashfs3, ttcp, xstroke Issues resolved (http://bugs.uclibc.org): #65: new package: dbus c++ language bindings #769: Update configuration menu for MIPS target #2419: Add a bundle of Lua modules #2629: Segmentation faults and division by zero in Grub on ext2 #3811: Added auto-mount for USB and SD Card (mdev) (for 2011.05) #4339: Allow override of DL_DIR in extract step #4363: Make sure that copied linux and busybox defconfig are... #4454: There should be simple way to update image, when chang... #5024: grub fails to build for x86_64 target architecture #5066: New-Package: net-tools #5072: ncurses: add ncurses-progs to target #5294: uclibc build ignores target CFLAGS and LDFLAGS #5366: Login doesn't work with util-linux versions of login/agetty #5378: dropbear Makefile broken #5390: System banner - change to empty doesn't remove /etc/issue #5780: spurious build failure because it cannot remove ubinize.cfg #5798: ncurses-5.9 fails to compile statically #5810: Buildroot 2012.11: Additional GCC option "-msoft-float" ... #6080: Git fetch caching #6092: Bootable ISO image creation seems to have stopped working.. #6272: coreutils build fails #6434: apply-patches.sh does not work recursively #6446: eglibc doesn't install ldconfig to target #6484: Add c-ares #6596: Slow bootup if mdev is chosen #6656: Build Qt5 with ccache #6662: internal compiler error: Segmentation fault during making.. #6722: Usage of $($(PKG)_DIR_PREFIX) is an issue with linux package #6752: genext2fs: e2fsck must run before tunefs -U random #6770: openssl 1.0.1f fails with ccache #6830: Qt5: no fonts are installed #6848: Qt5: no text shown in simple QWidget / frame-buffer setup #6854: Update to Qt 5.2.1 2013.11, Released November 30th, 2013: Minor fixes. Updated/fixed packages: apr, binutils, dbus-python, dropwatch, ecryptfs-utils, eglibc, gdb, gpsd, grantlee, hostapd, iptables, qlibiscsi, libnspr, libnss, libpfm4, libtool, lua-ev, lvm2, mplayer, qt, qt5, quagga, ruby, tinymembench, tvheadend, util-linux, wpa_supplicant Issues resolved (http://bugs.uclibc.org): #1279: Buildroot compiled Busybox and Coreutils LFS issues #2995: -fstack-protector-all causes ssh to SIGSEGV #5570: Cannot compile software on the target machine #6428: util-linux libmount segfaults with patch from buildroot #6500: php fails to build for armel #6554: gdb needs to dependents on host texinfo #6692: GNU nano fails to compile for x86_64 #6704: wpa_supplicant: fix wrong path to executable file in D-Bus 2013.11-rc3, Released November 26th, 2013 Fixes all over the tree. Architecture: Mark MIPS I, II, III and IV as deprecated. Updated/fixed packages: beecrypt, dbus, e2fsprogs, libcap-ng, libglib2, libroxml, libsigsegv, libvncserver, lxc, mdadm, mongoose, nut, ola, omniorb, openssl, pcre, php, poco, protobuf-c, pv, qt5base, ruby, schifra, squid, sunxi-mail, swig, ti-gfx, tinymembench, uclibc, udisks, vim 2013.11-rc2, Released November 18th, 2013 Fixes all over the tree. Defconfigs: qemu_arm_versatile, qemu_arm_nuri, sheevaplug: Adjust kernel versions. Toolchain: avr32: fix for modern kernel headers Bootloader: Barebox updated to 2013.10.1 Updated/fixed packages: dhcp, e2fsprogs, gst1-plugins-bad, libcurl, libvncserver, nano, pc, qt5base, squashfs, ttcp, wayland, wvstreams Issues resolved (http://bugs.uclibc.org): #3601: DHCPD S80dhcp-server startup script issues #6320: Fix kernel compile issue if BR2_LINUX_KERNEL_CUSTOM_GIT_VERS.. #6416: Xenomai package, patch alternative #6590: directfb-examples build failed whit linaro toolchain 2013.11-rc1, Released November 12th, 2013 Architectures: Nios-II support, MIPS arch handling fixes Defconfigs: cubieboard2, freescale i.MX 6sololite evk, sabre-sd, wandboard added, rpi renamed to raspberrypi_defconfig Toolchain: glibc support, upstream uClibc fixes, uClibc 0.9.31 for avr32, crosstool-ng backend removed, external musl toolchain support, gcc 4.8.2, updated Linaro external toolchains. Fortran and objective-C support deprecated, mudflap support Bootloaders: U-Boot: u-boot.imx support, version bumps Linux: use kmod instead of module-init-tools System: default to devtmpfs for /dev Infrastructure: Make 3.82 fixes, locales generation fixes, CVS download support, post-rsync hooks Fs: u-boot image support for cpio Updated/fixed packages: aircrack-ng, alsamixergui, apr, apr-util, atk, automake, bellagio, berkeleydb, bind, binutils, bison, boost, busybox, can-utils, ccache, ccid, cgilua, chrony, cifs-utils, cjson, collectd, connman, conntrack-tools, copas, cppcms, cppzmq, czmq, dash, dbus, dhcpcd, diffutils, directfb, dmidecode, dnsmaqs, docker, dosfstools, dropbear, dropwatch, ebtables, eglibc, elf2flt, empty, enchant, erlang, ethtool, fbgrab, fbv, fdk-aac, feh, ffmpeg, file, findutils, fltk, fmtools, freetype, gdk-pixbuf, gettext, git, glib-networking, gmp, gnupg, gnutls, gpu-viv-bin-mx6q, gsl, gstreamer, gstreamer1, gst1-plugins-{bad,base,good,ugly}, gtest, gutenprint, hplip, i2c-tools, icu, ifplugd, imagemagick, iozone, iproute2, ipset, iptables, iw, jamvm, jansson, jpeg-turbo, kismet, kmod, lcms2, libassuan, libcap, libcap-ng, libcdaudio, libcec, libcue, libcurl, libdrm, libedit, libevas, libevent, libfreefare, libfuse, libgpg-error, libiconv, liblog4c-localtime, libmicrohttpd, libmnl, libmodbus, libnetfilter_{acct,conntrack,cthelper,cttimeout,log,queue}, libnfnetlink, libnl, libpng, libqmi, libqrencode, libroxml, libsecret, libsigsegv, libsoup, libtirpc, libunwind, libusb, libvpx, lighttpd, linphone, linux-pam, lmbench, lockfile-progs, log4cxx, logrotate, logsurfer, ltp-testsuite, ltrace, luacrypto, luaposix, lvm2, m4, matchbox-lib, media-ctl, mediastreamer, minicom, minidlna, mongoose, monit, mpc, mpd, mpg123, mplayer, mrouted, mtdev, mutt, mysql_client, nano, ncftp, ndisc6, neard, neardal, neon, net-snmp, netatalk, netcat, netkitbase, netperf, netplug, nettle, nfacct, nfs-utils, ngircd, ngrep, noip, nuttcp, olsr, openssh, opkg, oprofile, opus-tools, orc, ortp, pciutils, pcre, pcsc-lite, perf, perl, perl-cross, php, picocom, pkgconf, polarssl, poppler, pppd, proftpd, protobuf, proxychains-ng, pulseaudio, pv, qemu, qt, qt5base, qt5webkit, quagga, radvd, redis, rpi-{firmware,userland}, rrdtool, rsync, rtorrent, ruby, samba, scons, screen, sdl_sound, ser2net, setserial, smartmontools, socat, socketcand, sqlcipher, sqlite, squid, stress, strongswan, stunnel, sudo, syslinux, systemd, sysvinit, tcl, ti-gfx, time, transmission, tremor, tslib, tstools, tvheadend, tzdata, uboot-tools, uclibc, udpcast, uemacs, ulogd, usb_modeswitch{,_data}, util-linux, vala, valgrind, vde2, vorbus-tools, vpnc, vsftpd, vtun, wayland, webkit, webp, webrtc-audio-processing, weston, wget, wireshark, wsapi, xavante, xdriver_xf86-video-geode, xenomai, xinetd, xlib_libpthread-stubs, xl2tp, xmlstarlet, xserver_xorg-server, xz, zeromq, zic, zmqpp New packages: aiccu, autossh, bc, civetweb, cppdb, cryptsetup, duma, eigen, harfbuzz, igmpproxy, iputils, jq, knock, kobs-ng, lesstif, libcgroup, libsepol, libsoc, libssh2, luasec, luasql, lxc, nut, ola, omniorb, openpowerlink, orbit, p910nd, psplash, python-crc16, python-ipy, python-pyzmq, qt5sensors, qt5serialport, qt5x11extras, snmppp, subversion, tcping, trace-cmd, xscreensaver, zsh Removed packages: module-init-tools Issues resolved (http://bugs.uclibc.org): #1138: Buildroot fails to build packages if BR2_GCC_SHARED_LIBGCC=y #5408: qt build failure with Sourcery CodeBench ARM 2010.09 #5630: makefile error with toolchain helpers.mk #5672: htop: remove X11 stuff #5678: linux.mk: linux-menuconfig fails #5696: python3 installation is too large, patches from python2 needed #5978: Erlang does not build for arm in 2013.02-rc3 #6392: Extended ARM uImage kernel options #6404: Buildroot's coreutils 'uname -p' reports 'Unknown' on recent.. #6428: util-linux libmount segfaults with patch from buildroot #6452: eglibc from Linaro 2013.07 not copied to target correctly #6566: PHP segfault when crosscompiled to mips64 - patch included #6572: [PowerPC] Buildroot uses wrong external toolchain libraries.. #6578: udisks package broken #6602: ebtables 64 bit kernel + 32 bit userland alignment error.. #6608: ebtables missing ethertypes - fix included #6620: Sysvinit package missing killall5 and symlinks - patch included #6632: CMake use host pkg-config #6638: pkgconf doesn't download #6644: "all" target doesn't work in out-of-tree builds #6650: Segmentation fault when trying to build latest buildroot #6668: iptables limit module alignment problem on mips64 2013.08, Released August 31th, 2013: Minor fixes. Documentation build fixed. Updated/fixed packages: ltrace, strongswan 2013.08-rc3, Released August 29th, 2013: Fixes all over the tree. External toolchain lib32/lib64 handling, ABI name for EABIhf, misc fixes for generatelocales, apply-patches and module stripping. Top level menu names reordered and renamed for clarity. Updated/fixed packages: acl, attr, bash, dbus, directfb, dvb-apps, kexec, kmod, libbsd, linux-fusion, mesa3d, minidlna, openssh, openssl, pulseaudio, python-setuptools, qt5, qt5webkit, redis, strongswan, sunxi-mali Issues resolved (http://bugs.uclibc.org): #6464: dbus-daemon-launch-helper needs setuid 2013.08-rc2, Released August 16th 2013: Documentation improvements. External toolchains fixes. Updated/fixed packages: aircrack-ng, bash, boost, cairo, cppcms, eglibc, ffmpeg, gcc, git, gnupg, imagemagick, libcec, libffi, libgcrypt, linux, linux-headers, ltrace, netatalk, opencv, opengl, readline, samba, strongswan, sunxi-cedarx, uclibc, udev, wayland, webkit, zeromq. Issues resolved (http://bugs.uclibc.org): #6440: typo in ffmpeg makefile 2013.08-rc1, Released August 5th, 2013: Architectures: - improved support for floating point on ARM and Thumb/Thumb2 - support for ARM OABI removed Toolchains: - support added for Sourcery CodeBench ARM and MIPS 2013.05 - Linaro ARM and Aarch64 toolchains updated - support added for the Arago ARMv5 and ARMv7 toolchains - gcc 4.8.x version bumped - support for installing both FDPIC and FLAT libraries on Blackfin - support for uClibc 0.9.31 removed, - convert the internal toolchain backend to use the package infrastructure - support added for eglibc in the internal toolchain backend - toolchain components for the ARC architecture updated and gdb for ARC added. - support for Blackfin in the internal toolchain fixed Defconfigs: beaglebone_defconfig updated, new defconfig for CubieBoard, for Olimex mx233 Olinuxino, for Calao Systems TNY-A9G20-LPW. A number of packages have been fixed to use the _CONFIG_SCRIPTS mechanism to get their -config shell script installed and modified properly. Licensing informations has been added to a number of packages. Use XZ tarballs for a number of packages. Noticeable package changes/additions: - The glib2/libgtk2/webkit stack has been updated to recent versions. - Support for Gstreamer 1.x has been added. - OpenGL support for TI OMAP platforms has been added. - OpenGL support for Allwinner platforms has been added. - OpenMAX support for RasberryPi has been added. Updated/fixed packages: acl, attr, autoconf, avahi, barebox, bind, binutils, busybox, bwm-ng, bzip2, cifs-utils, colletctd, cpanminus, cups, curl, dash, dbus, dhcp, directfb, directfb-examples, dnsmasq, dosfstools, dropbear, dtc, e2fsprogs, ed, efl, enlightenment, erlang, ethtool, fbgrab, fftw, firmware-imx, flot, fltk, freetype, gawk, gdk-pixbuf, gettext, gmp, gnutls, gsl, gutenprint, gvfs, gzip, haserl, hiawatha, httping, icu, imagemagick, imlib2, imx-lib, intltool, iozone, ipset, iptables, jquery, jquery-keyboard, jquery-sparkline, kmod, less, libart, libcdaudio, libcgicc, libesmtp, libftdi, libfuse, libglib2, libgtk, libgtk2, libidn, libiqrf, liblog4c-localtime, libnspr, libnss, libpcap, libroxml, libserial, libsigsev, libsoup, libtool, libtpl, libvncserver, libxml2, linphone, lm_sensors, logrotate, ltrace, lttng, luafilesystem, luajit, minicom, monit, mpg123, mtd, mutt, mxml, neard, netatask, netsnmp, nettle, network-manager, nodejs, nss-mdns, openssh, openswan, openvpn, opkg, opus, pcre, perl-cross, php, pixman, poco, polarssl, pulseaudio, pv, python, python3, qt, qt5, qt5declarative, qt5jsbackend, qt5quick1, readline, rpi-firmware, ruby, samba, sane-backends, sconeserver, sdl_image, sdparm, ser2net, socketcand, sqlite, squid, strace, tcl, tcpdump, tinyhttpd, tvheadend, tzdata, uboot, udpcast, usb_modeswitch, usb_modeswitch_data, usbutils, webkit, wireshark, wvstreams, xapp_luit, xapp_xmodmap, xenomai, xfsprogs, xlib_libX11, zic, zlib. New packages: a10disp, aespipe, am33x-cm3, cppcms, dhcpcd, dropwatch, dtc, ecryptfs-utils, eglibc, elf2flt, fdk-aac, gcc-final, gcc-initial, gcc-intermediate, git, gpu-viv-bin-mx6q, gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, gst-omx, gst-plugin-x170, gstreamer1, jimtcl, lbase64, libassuan, libbsd, libcec, libdvbsi, libedit, libgpgme, libqmi, libqrencode, libsvg, libsvg-cairo, libunwind, libvpx, linux-headers, lockdev, luabitop, luacrypto, lua-ev, luaexpatutils, msgpack, ocrad, on2-8170-libs, on2-8170-modules, p11-kit, pax-utils, ptpd, ptpd2, python-pyro, ramspeed/smp, snappy, strongswan, sunxi-boards, sunxi-cedarx, sunxi-mali, sunxi-tools, ti-gfx, tinymembench, tree, tstools, uclibc, w_scan. Issues resolved (http://bugs.uclibc.org): #4718: python (built for powerpc) distutils has paths to host compiler toolchain #5516: appended device tree blobs on uImage fails #6302: Versions of packages retrieved from github.com are wrong #6308: dosfstools download link is wrong #6326: Dropbear: Add options to allow better config for different target devices (e.g. routers) #6338: Wrong download link for minicom package #6344: Wrong handling of license text files with same name and different directory #6374: gnutls package broken if linux cryptodev module selected #6410: omap3_beagle has uimage error load address error 2013.05, Released May 31th, 2013: Minor fixes. External toolchain wrapper fix for if host/usr/bin is placed in the patch. Updated/fixed packages: acpid, at91bootstrap, czmq, elf2flt, flex, jamvm, kmod, libplayer, libtirpc, libv4, lttng-babeltrace, opengl, qt5jsbackend, udpcast, wvstreams Issues resolved (http://bugs.uclibc.org): #4868: Buildroot compile failure for toolchain/gdb-7.4/intl/reloc... #4988: flex and m4 problems #5912: obsolete CVS files 2013.05-rc3, Released May 25th, 2013: Minor fixes. Updated/fixed packages: aircrack-ng, bellagio, boost, crda, dvb-apps, flot, libatomic_ops, libeXosip2, libosip2, libxml2, mongrel2, poco, portaudio, pptp-linux, tvheadend, urg, weston, wireshark 2013.05-rc2, Released May 15th, 2013: Fixes all over the tree. Default number of parallel jobs is now number of CPUs + 1. Defconfigs: Add Telit EVK-PRO3, AT91SAM9260-EK Nand flash. Updated/fixed packages: aircrack-ng, busybox, cairo, classpath, curlftpfs, czmq, dbus, f2fs-tools, fan-ctrl, filemq, gst-plugin-bad, gutenprint, hplip, json-c, libatomic_ops, libcurl, libdrm, libglib2, libnspr, libnss, libsha1, libsigsegv, libxcb, linknx, linux-pam, lttng-modules, lttng-tools, matchbox-lib, mcookie, mesa3d, neon, pixman, pulseaudio, python-nfc, qt5imageformats, quota, openssl, sconeserver, strace, sylpheed, wvstreams, xapp_{appres,bdftopcf,beforelight,bitmap,edires,fonttosfnt}, xapp_{fslsfonts,fstobdf,iceauth,ico,listres,luit,mkfontdir}, xapp_{mkfontscale,oclock,rgb,rstart,scripts,sessreg,setxkbmap}, xapp_{showfont,smproxy,twm,viewres,x11perf,xauth,xbacklight}, xapp_x{biff,calc,clipboard,clock,cmsdb,cursorgen,dbedizzy,ditview}, xapp_x{dm,dpyinfo,driinfo,edit,ev,eyes,f86dga,fd,fontsel,fs,fsinfo}, xapp_x{gamma,gc,host,input-calibrator,input,kbcomp,kbevd,kbprint}, xapp_x{kbutils,kill,load,logo,lsatoms,lsclients,lsfonts,mag,man}, xapp_x{message,mh,modmap,more,pr,prop,randr,rdb,refresh,set,setmode}, xapp_x{setpointer,setroot,sm,stdcmap,vidtune,vinfo,wd,wininfo,wud}, xcb-util, xcursor-transparent-theme, xdata_xbitmaps, xdata_xcursor-themes, xdriver_xf86-input-{evdev,joystick,keyboard,mouse,synaptics}, xdriver_xf86-input-{tslib,vmmouse,void}, xdriver_xf86-video-{ark,ast,ati,cirrus,dummy,fbdev,geode,glide}, xdriver_xf86-video-{glint,i128,intel,mach64,mga,neomagic,newport}, xdriver_xf86-video-{nv,openchrome,r128,savage,siliconmotion,sis}, xdriver_xf86-video-{tdfx,tga,trident,v4l,vesa,vmware,voodoo,wsfb}, xfont_encodings, xfont_font-adobe-{100,75}dpi, xfont_font-utopia-{100dpi,75dpi,type1}, xfont_font-{alias,arabic-misc,bh-100dpi,bh-75dpi}, xfont_font-bh-lucidatypewriter-{100,75}dpi, xfont_font-bh-{ttf,type1}, xfont_font-bitstream-{100dpi,75dpi,type1}, xfont_font-cronyx-cyrillic, xfont_font-{cursor,daewoo,dec,isas,jis,micro}-misc, xfont_font-ibm-type1, xfont_font-misc-{cyrillic,ethiopic,meltho,misc}, xfont_font-{mutt,schumacher}-misc, xfont_font-{screen-cyrillic,sony-misc,sun-misc,util}, xfont_font-winitzki-cyrillic, xfont_font-xfree86-type1, xlib_lib{FS,ICE,SM,X11,XScrnSaver,Xau,Xaw,Xcomposite,Xcursor}, xlib_libX{damage,dmcp,ext,fixes,font,ft,i,inerama,mu,pm,randr}, xlib_libX{render,res,t,tst,v,vMC,xf86dga,xf86vm}, xlib_lib{dmx,fontenc,pciaccess,pthread-stubs,xkbfile}, xlib_xtrans, xproto_{applewm,bigreqs,composite,damage,dmx,dri2,fixes}proto, xproto_{fontcache,font,gl,input,kb,randr,record,render}proto, xproto_{resource,scrnsaver,video,windowswm,xcmisc,xext}proto, xproto_{xf86bigfont,xf86dga,xf86dri,xf86vidmode,xinerama,x}proto, xserver_xorg-server, xutil_{makedepend,util-macros} Readded Packages: xapp_xinit Issues resolved (http://bugs.uclibc.org): #5054: amd64: cannot find init - due to missing /lib64 folder 2013.05-rc1, Released May 8th, 2013: Architectures: ARC support, Blackfin support, FLAT binary format, ARM: Drop old CPU variants, add fa526/626, Marvell PJ4 Toolchains: Add new Microblaze external toolchains, Linaro ARM/Aarch64 updates, GCC 4.6.4 / 4.7.3 / 4.8.0 added to internal toolchain, default to GCC 4.7.x. Internal Crosstool-ng backend deprecated. Defconfigs: Add Atmel at91sam9g45m10ek, freescale mpc8315erdb & p1010rdb, Armadeus apf27 / apf28, Openblocks A6, Raspberry pi, gnublin board. FS: LZO and XZ compression methods, extra ubifs options, ext2 rev 0/1 and ext3/4 support. Patch handling: apply-patches now has .patch.xz support, Patch logic reworked as discussed during Febrary dev days: http://elinux.org/Buildroot:DeveloperDaysFOSDEM2013 -rsync now excludes version control files. linux: uImage load address for ARM multiplatform kernels Infrastructure for multiple OpenGL / ES / EGL / OpenVG providers, similar to how libjpeg / libjpeg-turbo is handled. Infrastructure for packages to add system users. kconfig: updated to 3.9-rc2, support make olddefconfig Updated/fixed packages: alsa-lib, alsa-utils, apr, apr-util, argp-standalone, at, at91bootstrap, audiofile, aumix, avahi, bash, blackbox, bind, binutils, bison, boost, bridge-utils, busybox, ccache, cifs-utils, cmake, collectd, connman, conntrack-tools, cpanminus, crosstool-ng, diffutils, directfb, directfb-examples, divine, dmalloc, dnsmasq, dosfstools, dropbear, e2fsprogs, ebtables, eeprog, erlang, ethtool, fb-test-app, fbset, feh, ffmpeg, file, flex, flot, foomatic, fxload, gd, gdb, gdisk, genimage, gettext, gmp, gnuchess, gnutls, gob2, gperf, gpsd, gstreamer, haserl, hiawatha, htop, httping, icu, inotify-tools, intltool, iproute2, ipset, iptables, iw, jpeg, jquery, jquery-{sparkline,validation}, json-c, kbd, kexec, kismet, kmod, lcdproc, libarchive, libatasmart, libcap, libconfig, libconfuse, libcurl, libdrm, libeet, libev, libevas, libeXosip2, libffi, libfribi, libfuse, libgcrypt, libglib2, libgtk2, libid3tag, libmicrohttpd, libnetfilter_acct, libnetfilter_conntrack, libnl, libpcap, libplayer, libsigc, libv4l, libxcb, linenoise, linux-pam, lm_sensors, ltp-testsuite, luajit, lzop, madplay, make, mdadm, mediastreamer, memtester, mesa3d, mobile-broadband-provider-info, monit, mpd, mpfr, mpg123, mrouted, msmtp, nbd, ncurses, ndisc6, neard, neardal, neon, netperf, netsnmp, nettle, nfacct, ntfs-3g, ofono, olsr, omap-u-boot-utils, openssh, openssl, openswan, openvpn, oprofile, orc, patch, pciutils, pcre, perl, php, poco, polarssl, proftpd, psmisc, pulseaudio, python, python-{bottle,netifaces,serial,setuptools}, qt, quagga, quota, radvd, rpi-firmware, rpi-userland, rt-tests, sam-ba, samba, sawman, sdl, ser2net, smartmontools, socat, socketcand, speex, squid, stress, stunnel, sudo, syslinux, sysstat, sysvinit, tcl, tcprelay, tinyhttpd, tslib, tvheadend, uboot-tools, udev, ulogd, util-linux, vala, vtun, webkit, xapp_{iceauth,luit,makefontscale,sessreg,setxkbmap,smproxy}, xapp_{xauth,xcmsdb,xdpyinfo,xev,xgamma,xhost,xinput,xkbcomp}, xapp_{xkbevd,xlsatoms,xlsclients,xmodmap,xpr,xprop,xrandr,xrdb}, xapp_{xset,xwd,xwininfo}, xcb-{proto,util}, xdriver_xf86-input-{evdev,joystick,keyboard,mouse,synptics}, xdriver_xf86-input-{tslib,vmmouse,void}, xdriver_xf86-video-{ark,ast,ati,cirrus,dummy,geode,glide,glint}, xdriver_xf86-video-{i128,intel,mach64,mga,neomagic,newport}, xdriver_xf86-video-{openchrome,r128,savage,siliconmotion,sis}, xdriver_xf86-video-{tdfx,trident,vesa,vmware,wsfb}, xenomai, xfont, xinetd, xkeyboard-config, xlib_lib{FS,ICE,SM,X11}, xlib_libX{scrnSaver,au,aw,cursor,dmcp,ext,fixes,font,ft,i}, xlib_libX{inerama,mu,pm,randr,res,tst,v,vMC,xf86dga,xf86vm}, xlib_lib{dmx,fontenc,pciaccess,xkbfile}, xlib_xtrans, xproto_{applevm,bigreqs,dri2,fonts,gl,input,kbd,record}proto, xproto_{resource,scrnsaver,xcmisc,xext,x}proto, xserver_xorg-server, xutil_makedepend, xz, zeromq New packages: aircrack-ng, bcusdk, chrony, crda, cryptodev-linux, cppzmq, czmq, dtach, enscript, exfat, exfat-utils, f2fs-tools, fan-ctrl, filemq, foomatic-filters, genimage, genpart, glibmm, gnuplot, gtest, gutenprint, hplip, iozone, jansson, jhead, jquery-keyboard, jquery-ui, jquery-ui-themes, json-glib, json-javascript, lcms2, libpfm4, libpthsem, libserial, libsigsegv, libtasn1, libwebsockets, libxkbcommon, libxml++, linknx, log4cxx, mongoose, mongrel2, mtools, ne10, nmap, nodejs, openobex, openpgm, poppler, protobuf-c, python-m2crypto, python-thrift, qjson, qt5base, qt5declarative, qt5graphicaleffects, qt5imageformats, qt5jsbackend, qt5multimedia, qt5quick1, qt5script, qt5svg, qt5webkit qt5xmlpatterns, rapidjson, redis, swig, texinfo, tzdata, urg, ussp-push, wayland, webp, weston, wireless-regdb, wireshark, wvdial, wvstreams, xcb-util-image, xcb-util-wm, xcursor-transparent-theme, zic, zmqpp, zyre Removed packages: microperl, ocf-linux, xapp_xinit, xapp_xplsprinters, xapp_xprehashprinterlist, xfont_font-bitstream-speedo, xlib_lib{Xfontcache,XprintAppUtil,XprintUtil,Xp,oldX,xkbui}, xproto_{print,xf86rush}proto Deprecated packages: vala Issues resolved (http://bugs.uclibc.org): #1291: Add support for Faraday 526 arm processor (fa526) #2683: cups does not install correctly to target #3313: mesa3d fails to build #5186: initramfs/cpio should support lzo compression #5636: agetty - cannot get controlling tty error - need updated... #5906: collectd client headers not exported #5966: bison unnecessarily required as build dependency #6140: --enable-fileinfo not applied for php package #6164: openvpn usage of ip tool from Busybox 2013.02, Released February 28th, 2013: Misc manual updates. Updated/fixed packages: busybox, collectd, flashbench, libgtk2, libupnp, mii-diag, quota 2013.02-rc3, Released February 26th, 2013 Minor fixes. Updated/fixed packages: conntrack-tools, dialog, enlightenment, haserl, keyutils, libfif, libmad, linux-firmware, linux-fusion, matchbox-desktop, matchbox-wm, ruby, spawn-fcgi, vtun Issues resolved (http://bugs.uclibc.org): #5960: fusion.ko driver does not install to target rootfs 2013.02-rc2, Released February 19th, 2013 Fixes all over the tree. Various manual updates and fixes. Updated/fixed packages: busybox, collectd, gesftpserver, glib-networking, gnutls, inotify-tools, libcurl, libffi, libglib2, libtorrent, libvorbis, neard, network-manager, ntfs-3g, openssl, qt, rpi-userland, rtorrent, thttpd, vim. Issues resolved (http://bugs.uclibc.org): #5906: collectd client headers not exported 2013.02-rc1, Released February 10th, 2013 Toolchain: Crosstool-ng 1.17.0, default to GCC 4.6.3, target libraries install fixed. Add Linaro ARM 2012.11/2012.12/2013.01, AArch64 12.11/12.12/13.01. Sourcery CodeBench MIPS 2012.03/09. Infrastructure to warn about missing 32bit support for binary toolchains. Toolchain wrapper is now relocatable. Add GDB 7.5.1 / Remove 6.8 / 7.0 / 7.1. Deprecate uClibc 0.9.31. Architecture: Xtensa fixes, add missing powerpc variants, arm 1136jf-s rev1, add A5/A15, neon support toggle, OABI deprecated. Sparc: drop old unused variants Bootloaders: At91bootstap: fix upstream URL, Barebox: add 2012.12/2013.01/2013.02, remove 2012.08/09/10, lzop fixes, environment image support, U-Boot: add 2013.01.01 Linux: fix appended dtb handling for v3.8+ kernels, support multiple device trees Defconfigs: calao USB-A9260, snowball, QEMU PPC440 on ML507 board, QEMU ARM Exynos4210, Kernel version in QEMU defconfigs updated, at91rm9200df: misc fixes. Lock kernel headers to match kernel. Infrastructure: Git download fixes. Toolchain make target renamed from 'cross' to 'toolchain'. Eclipse integration support. Option to set root password, post image scripts, config scripts handling. Updated/fixed packages: alsa-lib, argp-standalone, argus, arptables, atk, audiofile, axel, beecrypt, bind, bison, bluez_utils, boost, cairo, can-utils, bmon, boa, busybox, cairo, ccache, cdrkit, cifs-utils, cjson, cmake, collectd, connman, coreutils, cpanminus, cups, dbus, dhcp, dialog, diffutils, directfb, distcc, divine, dnsmasq, docker, dosfstools, dstat, e2fsprogs, ebtables, ed, empty, ethtool, expedite, fbset, fbv, ffmpeg, flex, fltk, fluxbox, freetype, gadget-test, gawk, gdb, genext2fs, gettext, giblib, glib-networking, gmp, gmpc, gnupg, gnutls, gpsd, gst-plugins-{bad,base,good}, gstreamer, gzip, haserl, hdparm, heirloom-mailx, hiawanta, hostapd, icu, imagemagick, imlib2, inadyn, infozip, iproute2, ipset, iptables, iw, jpeg, jquery, jquery-sparklines, jqeury-validation, kismet, kmod, lame, libao, libcap, libcurl, libdvdnav, libdvdread, libecore, libedbus, libedje, libeet, libefreet, libeina, libeio, liberation, libelementary, libembryo, libethumb, libev, libevas, libffi, libfribidi, libfuse, libgcrypt, libglib2, libgpg-error, libgtk2, libhid, libidn, libmicrohttpd, libmpd, libnl, libnspr, libnss, libogg, libpcap, libplayer, libpng, libroxml, librsvg, libseccomp, libsigc, libsndfile, libungif, libupnp, liburcu, libusb-compat, libvncserver, libvorbis, libxml2, libxslt, lighttpd, links, linux-firmware, linux-fusion, ltp-testsuite, ltrace, lttng-{babel,libust,modules,tools}, lvm2, lua, luajit, lzop, matchbox-{desktop,lib}, mdadm, metacity, midori, minicom, mpd, mpfr, mplayer, mtd, mysql_client, ncurses, neon, netatalk, networkmanager, nspr, ntfs-3g, nuttcp, ofone, olsr, openssl, openvpn, opkg, oprofile, opus, opus-tools, orc, ortp, pango, pciutils, pcmanfm, pcre, pcsc-lite, perl, php, pixman, pkgconf, polarssl, pptp-linux, proxychains, pulseaudio, python, python3, qemu, qextserialport, qt, quagga, radvd, readline, rng-tools, rt-tests, rubix, ruby, sam-ba, samba, sane-backends, sconeserver, scons, screen, sdl, sdl_gfx, sdl_mixer, sdl_ttf, sdparm, sed, ser2net, smartmontools, speex, sqlite, squid, sshfs, strace, sudo, sylpheed, tn5250, taglib, tar, torsmo, transmission, tslib, uboot-tools, ulogd, usb_modeswitch, util-linux, valgrind, vim, vsftpd, wavpack, webkit, wipe, wireless_tools, wpa_supplicant, xapp_xinit, xapp_xinput-calibrator, xapp_xman, xapp_xmh, xlib_libX11, xlib_libXdmcp, xlib_libXft, xlib_libpthread-stubs, xlib_xtrans, xproto_xcmiscproto, xproto_xextproto, xserver_xorg-server, xstroke, xvkbd, xz New packages: b43-firmware, b43-fwcutter, bustle, cache-calibrator, cegui06, celt051, classpath, curlftpfs, dvb-apps, dvbsnoop, elfutils, enlightenment, firmware-imx, flashbench, gd, gesftpserver, gst-fsl-plugins, httping, iftop, imx-lib, jamvm, jpeg-turbo, keyutils, libatasmart, libcofi, libebml, libevas-generic-loaders, libfslcodec, libfslparser, libfslvpuwrap, libgsasl, libiscsi, libmatroska, libmcrypt, libmhash, libqwt, libseccomp, libsha1, linenoise, mcrypt, media-ctl, ncdu, neard, neardal, nettle, perf, polkit, proxychains, python-bottle, python-pyparsing, rpi-firmware, rpi-userland, sg3_utils, slirp, snowball-hdmiservice, spice, spice-protocol, tcllib, tvheadend, udisks, usbredir ux500-firmware, vde2, xcb-utils-keysyms, yavta, zd1211-firmware Removed packages: customize, xdriver_xf86-input-{acecad,aiptek}, xdriver_xf86-video-{apm,chips,i740,rendition,s3,s3virge,sisusb}, xdriver_xf86-video-sun{cg14,cg3,cg6,ffb,leo,tcx}, xdriver_xf86-video-{tsend,xgi,xgixp} Deprecated packages: xstroke Issues resolved (http://bugs.uclibc.org): #4237: building shared openssl w/-Os fails due to gcc bug #5690: python3 does not obey to BR2_PACKAGE_PYTHON3_PYC_ONLY=y #5602: python3 should install a "python" symbolic link #5846: Extra slash added to last slash in URL 2012.11.1, Released January 3rd, 2013: Toolchain: Fixed non-largefile builds on recent Ubuntu versions. Arch: fix missing x86/generic handling, Build for Xtensa with longcalls option. Updated/fixed packages: dosfstools, qt 2012.11, Released December 2nd, 2012: Git shallow clone fix for older git version. Updated/fixed packages: ctuio, libtool Issues resolved (http://bugs.uclibc.org): #5726: List all the available hook points 2012.11-rc2, Released November 30th, 2012: Minor fixes around the tree. Various manual updates and fixes. Add checks for legacy features. Updated/fixed packages: acpid, alsa-lib, arptables, binutils, busybox, ccache, cjson, cramfs, directfb, flex, fluxbox, gdb, hiawatha, igh-ethercat, imagemagick, imlib2, lcdproc, libdaemon, libecore, libhid, libmad, libpcap, libsigc, libusb, linux-fusion, matchbox, ocf-linux, owl-linux, python, rrdtool, scons, strace, sylpheed Issues resolved (http://bugs.uclibc.org): #5732: Error : package/alsa-lib/alsa-lib.mk 2012.11-rc1, Released November 17th, 2012 Fixes all over the tree and new features. Defconfigs: use u-boot 2012.10 on at91 and beaglebone, sheevaplug + qemu: bump kernel version, add qemu-mips64-malta + nitrogen6x defconfigs. Bootloaders: add u-boot 2012.07/10, ais target format, add barebox 2012.08/09/10/11, linker overlap issue fix for at91bootstrap, mxs-bootlets updated for new Barebox versions. Toolchains: binutils 2.23.1, gcc 4.7.2, default to gcc 4.6.x, Codebench arm/sh/x86 2012.03/09, Linaro 2012.08/09/10. Libtirpc support for modern glibc variants. Toolchain on target has been deprecated. Initial Aarch64 support, Xtensa support re-added. Infrastructure: Use shallow git clone when possible, use tarballs rather than git URLs for github. Moved to pkgconf rather than pkg-config. System directory added, default skeleton/device tables moved. More than 1 post-build script can now be used. output/target now contains a THIS_IS_NOT_YOUR_ROOT_FILESYSTEM warning, to help people understand how to (not) use it. Manual has been reworked and extended. Legal-info: Lots of package annotations, CSV file fixes, _LICENSE / _REDISTRIBUTE splitup, per-package hooks. Updated/fixed packages: acpid, alsa-lib, alsa-utils, alsamixergui, attr, autoconf, automake, bash, bind, binutils, bison, blackbox, bluez-utils, busybox, cairo, can-utils, cifs-utils, cjson, cmake, collectd, connman, conntrack-tools, coreutils, cups, cvs, dbus, dhcp, directfb, dmalloc, dnsmasq, dropbear, e2fsprogs, ethtool, fbdump, feh, fftw, file, flashrom, fluxbox, gdb, gdisk, gdk-pixbuf, genext2fs, gettext, gnutls, gpsd, gqview, grep, gsl, gst-plugins-{bad,good}, hdparm, hiawatha, hostapd, input-tools, iproute2, ipset, iptables, iw, json-c, kexec, kmod, lcdproc, leafpad, less, libcurl, libdrm, libdvdnav, libdvdread, libffi, libfuse, libglib2, libhid, liblockfile, libmad, libmbus, libmnl, libnetfilter_{acct,conntrack,cthelper,cttimeout,queue}, libnfc, libnfc-llcp, libnfnetlink, libnl, libnspr, libnss, libpcap, libplayer, libtool, libtorrent, liburcu, libv4l, libxcb, libxml2, libxslt, links, linux-firmware, lm-sensors, lmbench, lockfile-progs, logrotate, lshw, lsof, lttng-babeltrace, lttng-tools, lua, luajit, mesa3d, microperl, mii-diag, module-init-tools, mpc, mpd, mpg123, mplayer, mtd-utils, mysql_client, nbd, ncurses, netatalk, netkitbase, netkittelnet, netsnmp, newt, nfs-utils, openntpd, openssh, openssl, opkg, patch, pciutils, pcre, php, poco, polarssl, popt, portmap, pppd, procps, pulseaudio, python, python-nfc, python-protobuf, qt, quota, rp-pppoe, rtorrent, sam-ba, samba, scons, sdl_gfx, smartmontools, sqlite, squid, strace, sudo, sylpheed, tcpdump, tremor, ttcp, tiff, unionfs, usb_modeswitch, usbutils, util-linux, vala, valgrind, vpnc, vsftpd, webkit, wget, which, wpa_supplicant, x11vnc, xapp_*, xdriver_*, xenomai, xfont_*, xinetd, xl2tp, xlib_*, xlsclient, xproto_*, xserver_xorg-server, xutil_util-macros, xz, zeromq New packages: arptables, at91bootstrap3, boot-wrapper-aarch64, ccid, cpanminus, cpuload, erlang, evtest, fb-test-apps, fxload, gdbm, gnupg, googlefontdirectory, grantlee, gsl, lcdapi, liblo, liblog4c-localtime, libtirpc, linux-pam, lua-msgpack-native, macchanger, mtdev, mtdev2tuio, nfacct, opus, opus-tools, pcsc-lite, perl, pkgconf, python-meld3, python3, qemu, qextserialport, qtuio, rpcbind, schifra, sconeserver, supervisor, time, ulogd, usb_modeswitch_data, yasm Deprecated packages: netkitbase, netkittelnet Issues resolved (http://bugs.uclibc.org): #807: [PATCH] samba - make iconv and smbd optional #3049: binutils have a sysroot bug in ld #5330: update vsftpd to 3.0.0 #5486: libglib2 build fails on: libs/libglib-2.0.so: undefined... #5666: Fails to build python 2.7.2 for 2440 arm 2012.08, Release August 31th, 2012 Updated/fixed packages: microperl, cups, luajit, rrdtool, prboom, oprofile. Added license information for: sqlite. Changed the source URLs of all packages located on Sourceforge in order to use the automatic mirror selection URL downloads.sourceforge.net, and get rid of the BR2_SOURCEFORGE_MIRROR option. 2012.08-rc3, Released August 25th, 2012 Updated/fixed packages: libglib2, netsnmp, freetype, libfuse, libpng, x11vnc, zlib, gpsd, ifplugd, bash, distcc. Added license informations for: barebox, grub, syslinux, uboot, xloader, yajl, zlib, zxing, alsa-lib, alsa-utils, faad2, nano, fbdump, rsync, librsync, fontconfig, inotify-tools, 2012.08-rc2, Released August 15th, 2012 Updated/fixed packages: imagemagick, sudo, crosstool-ng. Added license informations for: mxml, nanocom, empty, expat, lua, lucjson, xinetd, cjson, luaexpat, lmbench, bwm-ng, input-event-daemon, luajit, cgilua, copas, coxpcall, luafilesystem, luasocket, rings, wsapi, xavante, libtpl, avahi, busybox, libfcgi, ifplugd, libcgicc, libcurl, libdaemon, libdnet, libgpg-error, libpcap, libpng, lighttpd, mtd, openssl, psmisc, socat, spawn-fcgi. Fixes to Microblaze external toolchains configuration. Improvements of the pkg-stats script. Out-of-tree fix for the graph-depends script. Kernel headers version bump. 2012.08-rc1, Released August 1st, 2012 Fixes all over the tree and new features. Integration of a legal information reporting infrastructure, which allows to generate detailed informations about the licenses and source code of all components of a system generated by Buildroot. License information will progressively be added on packages. Default configuration files added for Calao-systems USB-A9263 and Calao-systems USB-A9G20-LPW. External toolchains update: allow download of a custom toolchain, add Linaro 2012.05 and 2012.06 for ARM, add Blackfin toolchain 2012R1-BETA1, add Sourcery CodeBench MIPS 2011.09. Allow the restriction of downloads to the primary site only. This is useful for project developers who want to ensure that the project can be built even if the upstream tarball locations disappear. Add a 'System configuration' choice to select between 3 different init systems: Busybox init, SysV init and Systemd init. Cleanups to the package infrastructure. The visible change to developers is that $(eval $(call AUTOTARGETS)) is now $(eval $(autotools-package)), and similarly for other package infrastructures and host packages. Refer to the documentation for details. By default, automatic detection of the number of compilation jobs to use, depending on the number of CPUs available. Improvements to generate systems with static libraries only (infrastructure and package fixes). Add proper support in the Linux kernel package to generate Device Tree Blobs or combined Device Tree / Kernel images. This will be useful on Microblaze, PowerPC and ARM, which are architectures making extensive use of the Device Tree. Updated/fixed packages: audiofile, autoconf, automake, axel, barebox, bash, beecrypt, berkeleydb, bind, bison, bluez_utils, bonnie, boost, busybox, bsdiff, bwm-ng, bzip2, cifs-utils, cgilua, cmake, connman, conntrack-tools, crosstool-ng, cups, dbus, dhcp, dnsmasq, e2fsprogs, eeprog, ethtool, faad2, fbv, ffmpeg, freetype, gmp, gnutls, gob2, gpsd, grep, gst-plugins-base, gst-plugins-good, gzip, hiawatha, hostapd, htop, icu, igh-ethercat, imagemagick, input-tools, iostat, iproute2, ipset, iptables, iw, kmod, less, libcap, libgci, libconfig, libcurl, libelf, libevas, libeXosip2, libexif, libfuse, libidn, libmad, libmbus, libmnl, libnetfilter-conntrack, libnl, libnspr, libnss, libogg, libosip2, libpcap, libpng, libroxml, liburcu, libusb, libxml2, libxslt, lighttpd, linux, ltrace, lttng-libust, lttng-modules, lttng-tools, lua, m4, memtester, midori, mii-diag, module-init-tools, mpfr, mpg123, mrouted, msmtp, mtd, mxml, mysql_client, nasm, nbd, ncurses, nfs-utils, opencv, openocd, openssl, pciutils, php, polarssl, portaudio, pppd, pthread-stubs, pulseaudio, qt, quagga, quota, radvd, rpm, rrdtool, samba, sam-ba, scons, sdl_gfx, sdl_sound, speex, sqlite, squashfs, squid, sudo, synergy, syslinux, systemd, tar, tcpdump, tcpreplay, udev, usbutils, valgrind, wget, wpa_supplicant, wsapi, xavante, xserver_xorg-server, zlib New packages: cjson, collectd, dfu-util, dmidecode, elftosb, fbterm, flashrom, freerdp, inadyn, libfreefare, libnetfilter_cttimeout, libnfc, libnfc-llcp, liboping, libtorrent, linphone, logsurfer, lshw, luacjson, luaexpat, luajit, mediastreamer, mobile-broadband-provider-info, monit, mxs-bootlets, nanocom, nss-mdns, ofone, omap-u-boot-utils, opkg, ortp, owl-linux, python-id3, python-nfc, quota, ramspeed, rtorrent, sound-theme-borealis, sound-theme-freedesktop, sysprof, webrtc-audio-processing, xinetd, zxing Issues resolved (http://bugs.uclibc.org): #1315: Allow use of older external toolchains without sysroot support [won't fix] #5276: Hiawatha needs to manage IPV6 if so [fixed] #5360: buildroot fails when building "host-libglib2 2.30.2 Building" [won't fix, upstream problem] #5384: Can't build packages relying on gets on newer glibc [fixed] 2012.05, Released May 30th, 2012: Updated/fixed packages: busybox, netsnmp, pptp-linux 2012.05-rc3, Released May 25th, 2012: Minor fixes around the tree. Infra: Fix for DOWNLOAD macro when using primary mirrors with scp targets. Toolchain: Kernel headers 3.2.18 / 3.3.7. Updated/fixed packages: binutils, bison, busybox, cifs-utils, gnuchess, gpsd, iperf, libmpeg2, mtd, ntfs-3g, oprofile, xserver-xorg 2012.05-rc2, Released May 18th, 2012: Fixes all over the tree. Toolchain: uClibc: Use 0.9.33.2, Crosstool-ng: fix gperf dependency, disable decimal floats support, Linux 3.2.17 / 3.3.6 kernel headers. Fix sysroot copy handling for toolchains without C++ support. Updated/fixed packages: apr, apr-util, ccache, dnsmasq, heirloom-mailx, gdb, ndisc6, opencv, openssl, socat, vala 2012.05-rc1, Released May 10th, 2012: Fixes all over the tree and new features. Use /etc/os-release for version info rather than /etc/br-version. CMake toolchain file moved to $HOST_DIR/usr/share/buildroot. Apply-patches.sh: cleanups, archived patches handling fixes, support series files. Defconfigs: beaglebone, mx53qsb, pandaboard, qemu configs for arm-vexpress/microblaze/ppc-mpc88544ds, use 3.2.x for atngw100, use 3.3.x for qemu configs. Menu structure: Libraries moved out of multimedia section Atom processor support. Prescott fix, blackfin ABI fix, Microblaze architecture support (using ext toolchain). Cleanup architecture names, deprecate Xtensa support. Toolchain: Add GCC 4.4.7, 4.6.3, 4.7.0. uClibc 0.9.33.1, default to uClibc 0.9.33.x, enable UCLIBC_SUPPORT_AI_ADDRCONFIG by default, static and 64bit fixes for external toolchains, linaro ext toolchains, new sourcery codebench ext toolchains, GDB 7.4.1, crosstool-ng 1.15.2. Bootloaders: U-Boot: add 2012.04.01, SPL and u-boot.img support. Barebox: add 2012.04, remove 2011.12. Updated/fixed packages: alsa-lib, alsa-utils, at, atk, avahi, barebox, berkeleydb, bind, bluez_utils, boost, busybox, can-utils, ccache, cifs-utils, coreutils, cups, dbus, dhcp, directfb, dnsmasq, doom-wad, dosfstools, e2fsprogs, expat, fakeroot, feh, ffmpeg, file, fis, freetype, gamin, gawk, gdk-pixbuf, gettext, giblib, glib-networking, gmp, gnutls, gpsd, grep, gstreamer, gst-plugins-{bad,base,good,ugly}, haserl, hdparm, imagemagick, iproute2, iptable, iw, kexec, kmod, lame, libaio, libarchive, libatomic_ops, libconfig, libcurl, libdvdnav, libdvdread, libedbus, libethumb, libffi, libfuse, libglib2, libgtk2, libhid, libmad, libmbus, libmpeg2, libnl, libplayer, libpng, libsigc, libsoup, libupnp, liburcu, libusb, libusb-compat, libxml2, libxml-parser-perl, libxslt, lighttpd, linux-firmware, linux-fusion, lite, lsof, ltrace, lttng-libust, lua, m4, makedevs, microperl, mpd, mpfr, mpg123, mrouted, mtd, mysql_client, nbd, ncftp, ncurses, neon, netsnmp, network-manager, nfs-utils, ngrep, ntfs-3g, openntpd, openssh, openssl, parted, pango, pcre, php, pixman, poco, psmisc, pulseaudio, python, qt, quagga, radvd, rpm, rsync, ruby, samba, sam-ba, sane-backends, sawman, screen, sdl_net, smartmontools, speex, sqlite, squashfs3, squid, sshfs, sudo, syslinux, sysstat, taglib, tcpdump, tftp-hpa, transmission, tiff, tinyhttpd, uboot-tools, udev, uemacs, unionfs, usbutils, util-linux, vala, valgrind, vim, vsftpd, wget, wipe, wpa_supplicant, xdriver_xf86-{input-vmmouse,video-fbdev}, xfsprogs, zlib New packages: apr, apr-util, audiofile, bellagio, conntrack-tools, empty, fmtools, glib-networking, heirloom-mailx, hiawatha, latencytop, lcdproc, libcap-ng, libdmtx, libfcgi, libnetfilter_conntrack, libnfnetlink, libtpl, localedef, minicom, msmtp, ndisc6, netatalk, ocf-linux, openswan, parted, polarssl, protobuf, read-edid, socketcand, stress, systemd, ushare, zeromq Deprecated packages: ttcp Removed packages: ntfsprogs Issues resolved (http://bugs.uclibc.org): #2353: [lua] fix build with 2010.08-rc1 #2503: Microperl fails build on MIPSel or with Fedora13.x86_64 #2557: [PATCH] mkfs.xfs complains about missing libxfs.so.0 #2881: Can't build project statically with external toolchain #3751: MIPS: fix BR2_GCC_TARGET_ABI for MIPS n64 #4808: ccache may build against wrong zlib #4880: New package lcdproc #4886: New package protobuf #4892: build fails on ltp-testsuite-20101031/testcases/kernel/fs/... #4898: * make: [target-finalize] Error 1 (ignored)* #4985: Qt 4.7.4 build crashes with Linux 2.6.29 #4970: udev 181 fails to build if kernel version 3.3 is selected #5018: dialog broken: exits with assert in uClibc #5102: qt package moc, uic, rcc read from wrong place #5144: Patch to fix ixon bug in uemacs #5198: Line graphics output is broken in GNU Screen #5204: Missing terminfo file(s) for GNU screen terminal type 2012.02, Released February 29th, 2012: Updated/fixed packages: libecore 2012.02-rc3, Released February 27th, 2012: Fixes all over the tree. Automatic host dependencies handling for cmake packages fixed. Customize package deprecated as using a post-build script is nowadays the preferred way of adding extra stuff to the rootfs. Linux-headers 3.0.x / 3.2.x stable version bumped. QEMU defconfigs updated to 3.2.x kernels and readme fixed. Updated/fixed packages: dropbear, ffmpeg, libpng 2012.02-rc2, Released February 19th, 2012: Fixes all over the tree. Toolchain: uClibc: Added upstream post-0.9.33 fixes, Bump linux-headers 3.0.x / 3.2.x stable versions. Documentation: Added makedev / _DEVICES / _PERMISSIONS documentation. Updated/fixed packages: busybox, ffmpeg, gst-dsp, libecore, libvncserver, mxml, python. 2012.02-rc1, Released February 12th, 2012: Fixes all over the tree and new features. Toolchain: Default to GCC 4.5.x, add binutils 2.22. Java support removed, Powerpc SPE ABI support. GDB ELF support fix, GDB 7.4, crosstool-NG 1.13.4. Gentargets: scp and mercurial support. Autotools: derive host dependencies from target by default. Packages can now declare device table snippets. Host utilities menu with commonly used host tools. defconfigs: qemu configs for x86-64, mips and sparc, at91 defconfigs now use modern U-Boot / mainline Linux, added lpc3250 defconfigs. uClibc: remove 0.9.30, backport unshare() support, add 0.9.32.1 / 0.9.33, use same config for ctng. Bootloaders: U-Boot: add 2011.12, remove 2010.xx versions, Barebox: add 2012.01/02, remove 2011.10/11, LPC32xx bootloaders added. Various manual updates. Release tarballs now contain generated manual in text/html/pdf formats. Buildroot now calls the stop function of scripts in /etc/init.d at shutdown. Updated/fixed packages: atk, avahi, barebox, bash, beecrypt, bind, binutils, bison, bluez_utils, bzip2, busybox, cairo, ccache, cdrkit, coreutils, cramfs, dbus, dbus-glib, dialog, diffutils, dmalloc, dropbear, e2fsprogs, ebtables, ed, ethtool, expat, ffmpeg, file, fis, flex, fluxbox, fontconfig, freetype, gawk, grep, gst-dsp, gst-ffmpeg, gst-plugins-base, hdparm, hostapd, htop, i2c-tools, icu, iproute2, ipsec-tools, ipset, iptables, iw, jpeg, kismet, lame, libcap, libcgi, libev, libeXosip2, libffi, libftdi, libgpg-error, libgtk2, libidn, libmms, libmnl, libmodbus, libnl, libogg, libosip, libpcap, libpng, libraw1394, libroxml, libusb, libusb-compat, libv4l, libvorbis, libxcb, libxml-parser-perl, libxslt, lighttpd, links, lm-sensors, lua, m4, module-init-tools, mpc, mesa3d, mpd, mpfr, mplayer, mtd-utils, nano, nbd, ncurses, netperf, netsnmp, ntp, opencv, openocd, openssl, openvpn, orc, pciutils, pcre, pixman, pkg-config, poco, popt, proftpd, python, python-serial, qt, ruby, samba, sdl, sdparm, squashfs3, sshfs, sqlite, squid, sudo, syslinux, tcl, tcpdump, ti-utils, tiff, tremor, uboot, uboot-tools, udev, usbmount, util-linux, vala, valgrind, vsftpd, wpa_supplicant, xapp_{bdftopcf,mkfontdir,mkfontscale,xkbcomp,xcursorgen,xinit}, xapp_xinput, xapp_xman, xcb-util, xdm, xenomai, xf86-video-sis, xfont_{encodings,font-util}, xlib_lib{fontenc,X11,Xau,Xcursor,Xdmcp,Xfixes,Xfont,Xrender}, xlib_libxkbfile, xterm, xutil_makedepend, yajl New packages: boost, connman, dstat, expedite, explorercanvas, feh, flot, giblib, igh-ethercat, imlib2, jquery, jquery-sparklines, jquery-validation, jsmin, kmod, libecore, libedbus, libedje, libeet, libeina, libelementary, libesmtp, libethumb, libevas, libical, libmbus, liboauth, liburcu, libvncserver, linux-firmware, lttng-{babeltrace,libust,modules,tools}, NetworkManager, open2300, python-distutilscross, python-dpkt, python-netifaces, python-pygame, python-setuptools, rt-tests, sam-ba, sane-backends, sqlcipher, transmission, unionfs, xf86-input-tslib, xinput-calibrator Issues resolved (http://bugs.uclibc.org): #743: Add Transmission bit torrent option to buildroot #755: Add Boost libraries as a package #2299: Add crypto support to libsoup #2617: Pixman 0.19.2 & Cairo 1.10.0 #3403: libgpg-error: bump to version 1.10 #3409: libgpg-error: download from gnupg.org #3421: nano: make tiny flag optional #3691: New EFL packages #4664: Cannot patch AT91Bootstrap #4700: setlocalversion not working for combination svn/ubuntu 11.10... #4760: Qt: add host-pkg-config to dependency-list 2011.11, Released November 30th, 2011: Fixes all over the tree. Bump kernel headers / default Linux version to 3.1.4. Updated/fixed packages: ruby 2011.11-rc3, Released November 26th, 2011: Fixes all over the tree. Toolchain: Fix gdb dependencies for external toolchains, adjust uClibc patches so they don't confuse modern versions of patch, bump crosstool-ng, kernel headers and linux versions. Updated/fixed packages: busybox, freetype, mplayer, opencv, php, rsyslog, ruby, thttpd, xapp_xf86dga Issues resolved (http://bugs.uclibc.org): #4357: Prevent patch commands from accessing source control #4369: Fix permissions on untared lsof archive 2011.11-rc2, Released November 18th, 2011: Fixes all over the tree and new features. Updated asciidoc documentation Toolchain: Bumped 3.x stable kernel headers, use wget in crosstool-ng as well, bump crosstool-ng version, gdb fixes, uClibc sparc fix. Updated/fixed packages: distcc, file, gst-plugins-bad, libxcb, mplayer, newt, qt, rpm, rrdtool, tar, tftpd Issues resolved (http://bugs.uclibc.org): #3355: mplayer fails to build #4021: uClibc: undefined reference to `__GI___errno_location' #4297: Qt's qmake uses wrong pkg-config 2011.11-rc1, Released November 11th, 2011: Fixes all over the tree and new features. Moved misc scripts and support stuff to support/. Renamed patch-kernel.sh to support/scripts/apply-patches.sh. Documentation: Moved to asciidoc format, make targets to generate text/html/pdf/epub output added. Defconfigs: Qemu configs updated to 3.1 kernel and readmes added. Bootloaders: Add support for custom git tree / tarballs for barebox, similar to how it's handled for u-boot. Clean up menuconfig options. Toolchain: Update external codesourcery toolchain download URLs after Codesourcery got bought by Mentor, add x86 toolchain, update toolchain versions and optimize toolchain sysroot copying. Fix uClibc 0.9.32 builds for e500 PPC, updated GDB versions / download URLs. Binutils libbfd/libopcodes static/dynamic linking fix. GCC 4.6.2 added, use ctng-1.13.0. Package infrastructure: Support for local packages / overrides, package dir / name arguments dropped from {GEN,AUTO,CMAKE}TARGETS. Linux: Kernel extensions infrastructure support, Xenomai + RTAI support. Updated/fixed packages: acpid, bind, busybox, dash, dbus, dbus-glib, directfb, dnsmasq, drystone, e2fsprogs, ethtool, fakeroot, fbdump, file, freetype, fuse, gamin, gmp, gmpc, gnutls, gob2, gst-plugins-{base,bad,good,ugly}, gstreamer, hostapd, ifplugd, imagemagick, intltool, ipsec-tools, ipset, iptables, iw, jpeg, kexec, leafpad, less, libargtable2, libao, libconfuse, libcuefile, libcurl, libdaemon, libevent, libglib2, libiconv, libmpd, libreplaygain, libroxml, libsamplerate, libsndfile, libsoup, libsvgtiny, libtool, libxcb, lighttpd, links, linux-fusion, lite, lrzsz, lsof, lzo, lzop, makedevs, mcookie, mpg123, mpd, mpfr, mtd, musepack, mutt, mysql_client, ncftp, ncurses, neon, netcat, netsnmp, ntfs-3g, ntfsprogs, ntp, openntpd, openssh, openssl, oprofile, orc, pciutils, psmisc, python, qt, quagga, radvd, rpm, rsync, samba, sawman, sdl_sound, smartmontools, sqlite, squid, stunnel, sudo, sylpheed, sysstat, taglib, tar, tcpreplay, tslib, usbutils, util-linux, valgrind, wget, whetstone, which, wpa-supplicant, xdata_xcursor-themes, xmlstarlet, xterm New packages: bluez-utils, cifs-utils, fftw, fluxbox, json-c, libev, libftdi, libgeotiff, libmodbus, libplayer, live555, ngrep, noip, opencv, openocd, picocom, poco, portaudio, pulseaudio, pv, rtai, vala, xenomai. Removed packages: liboil, sfdisk, swfdec, webif Issues resolved (http://bugs.uclibc.org): #505: live555: new package #507: Enable live and tv options in MPlayer-1.0rc2 #531: let e2fsprogs package to export headers to staging dir if needed #1171: Linuxthreads new cannot find sysdep.h #1357: Add bluez to buildroot system #2107: New package: input-event-daemon #2599: New package: orc (Oil Runtime Compiler) #2605: gstreamer: Update to 0.10.30 #2677: introducing util-linux-ng as replacement for util-linux #2917: Qt: Add declarative module #3145: jffs2 image generation fails #3271: netperf-2.4.5 fails to compile #3331: xdata_xcursor-themes depends on xcursorgen #3343: Add file:// download SITE_METHOD #3391: Add support for specifying an external kernel tree #3631: Error while compiling with Xorg #3709: oprofile doesn't build for mipsel #3925: midori not getting compile #4045: Add support for downloading i386 toolchains from codesourcery #4165: lrzsz-fix-symlink-at-rebuild.patch #4171: makedevs-unused-but-set-variable.patch #4183: Codesourcery toolchain download site has changed #4231: libneon.so: undefined reference to `SSL_SESSION_cmp' #4381: Add option to lighttpd to enable Lua support #4387: Make sure that dest dir exists before installing mtd files 2011.08, Released August 31th, 2011: Fixes all over the tree. Toolchain: Fix codesourcery 2009q3 ARM download, Linux 3.0.4 kernel headers. Updated/fixed packages: ipset, python 2011.08-rc2, Released August 29th, 2011: Fixes all over the tree. Toolchain: crosstool-NG 1.12.1, use binutils 2.21 on mips/sh/older uClibc, disallow uClibc 0.9.32 on avr32/sh (broken). Defconfigs: kernel updates, fix mini2440 serial port config, remove old arm toolchain configs. Bootloaders: Fix grub patching, add barebox-{n,x,menuconfig} targets similar to linux/busybox. Updated/fixed packages: barebox, directfb, libsoup, libxml-parser-perl, mtd, ncurses, python, ti-utils, udev, usbmount, util-linux, xfont_font-misc-misc Issues resolved (http://bugs.uclibc.org): #3685: ncurses installation hangs due to old version of tic #4093: Grub fails to install bz2 patch after conversion to... 2011.08-rc1, Released August 4th, 2011: Fixes all over the tree and new features. Toolchain: uClibc 0.9.32 / NPTL support, 0.9.29 removed, ext-toolchain-wrapper improvements, improved non-MMU support. GCC 4.3.6 / 4.6.1. GENTARGETS infrastructure extended to cover bootloaders and Linux kernel as well. Options to retrive Linux/U-Boot from a custom git repo instead of upstream tarballs. Support for Linux 3.x and release candidate tarballs. X-Loader bootloader for omap added. Make source/external-deps now also works for external toolchains / crosstool-ng backend. Updated/fixed packages: autoconf, berkeleydb, bind, binutils, bmon, bridge-utils, busybox, cmake, dbus, dbus-glib, e2fsprogs, ethtool, ffmpeg, gst-plugins-{bad,base,good,ugly}, gvfs, hostapd, iproute2, iptables, iw, jpeg, lame, libarchive, libdnet, libdrm, libgcrypt, libgtk2, libmpeg2, libpng, libsoup, lighttpd, linux-fusion, lzo, midori, mtd-utils, nfs-utils, openvpn, oprofile, orc, pkg-config, proftpd, qt, ruby, samba, sdl, shared-mime-info, sudo, sqlite, squid, synergy, udev, usbmount, usbutils, util-linux, valgrind, webkit, xorg-xserver, xz, zlib New packages: acl, attr, ebtables, gnutls, inotify-tools, ipset, libargtable2, libiqrf, libmnl, libnspr, libnss, libroxml, libyaml, live555, mxml, orc, rsyslog, sredird, statserial, stunnel, ti-utils, uboot-tools, yajl Deprecated packages: liboil, swfdec Removed packages: hal Issues resolved (http://bugs.uclibc.org): #3559: libnspr: Add new package #3595: patch to add libroxml #3565: libnss: Add new package #3583: xfonts_font-adobe-100dpi fails due to missing map file #3649: [PATCH] Add mapdir to existing pkg-config patch #3907: 2011.05 - Qt 4.7.3 not building on ARM #3961: Nfs-utils: Remove SUSv3-function index #3985: "help" target's defconfig list needs sort #3997: bump libroxml to v2.1.0 2011.05, Released May 27th, 2011: Updated/fixed packages: makedevs 2011.05-rc2, Released May 24th, 2011: Fixes all over the tree. Toolchain: Code sourcery ARM 2009q1 download URL fixed / 2009q3 external toolchains added. Crosstool-NG bumped to 1.11.3, eglic/glibc configuration fixes. Linux kernel 2.6.38.x bumped to 2.6.38.7. Updated/fixed packages: bind, fakeroot, kbd, psmisc, qt 2011.05-rc1, Released May 18th, 2011: Fixes all over the tree and new features. External toolchain improvements: We now build a binary toolchain wrapper and install it into HOST_DIR/usr/bin, which enforces the correct compiler arguments, making an external toolchain as easy to use outside of Buildroot as the internal ones are. This also brought a cleanup of CFLAGS, making the Buildroot build output easier to read. Rootfs device handling improvements: Choice between static /dev, devtmpfs and devtmpfs with either mdev or udev. Toolchain: More preconfigured codesourcery external toolchains, improved Crosstool-NG support, fix for GCC snapshot versions, GCC 4.4.6 / 4.5.3, experimental GCC 4.6.0 support, target-GCC fixes, uClibc fixes, 0.9.32-rc3 support. Bootloaders: U-boot 2011.03, Barebox 2011.05.0 Linux: support for custom kernel image targets, E.G. for powerpc builds with embedded device trees. Misc fixes for qemu defconfigs, ensuring correct serial terminal setup out of the box. Misc gentarget / autotools handling fixes. Updated/fixed packages: alsa-lib, alsa-utils, alsamixergui, atk, avahi, bind, bison, busybox, copas, dbus-glib, dhcp, dhcpdump, dnsmasq, dropbear, ethtool, fakeroot, ffmpeg, file, gamin, gnuconfig, gst-ffmpeg, gst-plugins-good, gtk2-engines, haserl, hostapd, icu, imagemagick, iproute2, iw, kismet, less, libcap, libdnet, libglade, libglib2, libgtk2, libnl, libpng, libxml2, libxml2, libxslt, lighttpd, lockfile-progs, makedevs, midori, mpg123, mpc, mpd, mpfr, mplayer, mtd-utils, ncurses, netsnmp, openssh, openssl, openvpn, pango, pkg-config, popt, procps, proftpd, qt, quagga, readline, rsync, samba, sdl, socat, squashfs, squid, sudo, tslib, udev, usbutils, webkit, wpa_supplicant, xerces, xfont_font-misc-misc, xlib_libX11, xlib_libXfont, xlib_xtrans, xorg-server, xterm, xz New packages: bonnie++, can-utils, gdisk, htop, input-event-daemon, libexif, libraw, libv4l, ngircd Removed packages: festival Issues resolved (http://bugs.uclibc.org): #2131: Add OpenMP support to the toolchain #3379: New Package: bonnie++ #3445: Not working openssl-10.0.0d on 386sx #3451: fakeroot package: wrong FAKEROOT_SITE variable #3457: alsamixergui: broken URL #3475: Calling sync on large filesystems when not always necessary #3511: make busybox-menuconfig does not download busybox package #3541: Quotes in the top Makefile:217 break buildroot/kernel config... #3571: u-boot: fw_printenv does not build #3643: popt source url is not responding #3733: dropbear: make zlib optional #3757: Buildroot can't build mplayer with libmad 2011.02, Released February 28th, 2011: Fixes all over the tree. Updated/fixed packages: alsamixergui, avahi, ffmpeg, icu, mpd, nuttcp, qt, slang, squashfs, sylpheed, synergy, xerces Deprecated packages: devmem2, webif Issues resolved (http://bugs.uclibc.org): #2911: Qt: Disable qt3support-option, if gui-module isn't selected #3259: Unable to build webkit (on arm) #3295: slang fails to build on mipsel #3325: ffmpeg fails to build 2011.02-rc2, Released February 24th, 2011: Fixes all over the tree. Festival packages marked as broken. Unless someone steps up to support them, they will be removed during the 2011.05 development cycle. Updated/fixed packages: atk, avahi, bind, cairo, dbus, enchant, fakeroot, gmpc, gpsd, gvfs, iperf, jpeg, libarchive, libcgicc, libdaemon, libdrm, libevent, libgail, libglib2, libgpg-error, libmicrohttpd, librsvg, libsoup, libxcp, makedevs, matchbox-fakekey, matchbox-startup-monitor, mdadm, metacity, mpd, nasm, nfs-utils, olsr, openssl, popt, pthread-stubs, quagga, rpm, samba, sdl, sdl_gfx, sdl_image, sdl_mixer, sdl_sound, sdl_ttf, squashfs, synergy, taglib, tcpreplay, tiff, wpa_supplicant, xcb-util, xdriver_xf86-input-{acepad,aiptek,evdev,joystick,keyboard}, xdriver_xf86-input-{mouse,synaptics,void}, xdriver_xf86-video-{chips,dummy,geode,glide,intel,nv,wsfb}, xlib_lib{ICE,SM,XScrnSaver,Xau,Xcursor,Xdmcp,Xi,Xinerama}, xlib_lib{Xrandr,Xt,Xtst,Xxf86dga,Xxf86vm,dmx,fontenc,pciaccess}, xserver_xorg-server, xz Removed packages: ace_of_penguins, vlc Issues resolved (http://bugs.uclibc.org): #3205: Failing chmod when running "make" in buildroot (openssl)... #3277: quagga fails to build with SNMP support #3283: See why nfs-utils needs fakeroot, and convert to autotools #3307: synergy fails to build due to missing XTest library 2011.02-rc1, Released February 14th, 2011: Fixes all over the tree and new features. External toolchain improvements: clarification of the options, and introduction of the toolchain profile concept, for well-known toolchains. Buildroot is now capable of automatically downloading and extracting well-known toolchains (for the moment, CodeSourcery ARM, PowerPC, MIPS and SuperH toolchains are supported). Crosstool-NG backend updated and improved. Complete rework of how hardware boards are supported. Each board now only has a single defconfig file, and all board-specific options have been removed. See docs/buildroot.html#board_support for details. Added support for the following boards: Mini2440, Qemu ARM Versatile, Qemu MIPSel Malta, Qemu PowerPC G3beige, Qemu SH4 r2d and Qemu x86. The Qemu boards support allows to easily build systems that are known to work under Qemu. Initial support for Blackfin processors. Staging directory moved into $(O)/host/usr//sysroot, in preparation for support of SDK. For the same reason, the toolchain binaries (cross-compiler and other related tools) are now installed in $(O)/host/usr/bin/. The cross pkg-config now also automatically returns correct values for cross compilation, without needing any environment variables to be set. Ccache support reworked. Now used for both host and target compilation, and cache is stored in ~/.buildroot-ccache. Toolchain: uClibc 0.9.32-rc2, several components moved to normal AUTOTARGET packages. Generic cmake infrastructure, similar to the existing GENTARGETS/AUTOTARGETS. Support for bzr downloads, next to the existing git/svn support. Kconfig infrastructure rebased against 2.6.38-rc3, bringing misc fixes. 'xconfig' now uses Qt4 rather than Qt3. EXT2 file system size handling improved, UBI image support, fs configuration options cleanup, U-Boot/Barebox version bumps. Updated/fixed packages: alsa-utils, at, autoconf, automake, bash, binutils, bison, busybox, bzip2, cdrkit, cloop, cmake, coreutils, cups, dbus, dbus-python, dhcp, directfb, direcfb-examples, dmalloc, dnsmasq, dosfstools, e2fsprogs, ed, fbset, ffmpeg, findutils, flac, freetype, gdk-pixbuf, gmp, grep, gperf, gst-ffmpeg, gst-plugins-bad, gst-plugins-base, gst-plugins-good, gst-plugins-ugly, gstreamer, gvfs, hdparm, hostapd, i2c-tools, icu, imagemagick, input-tools, iproute2, iptables, iw, jpeg, kexec, libaio, libart, libcap, libconfig, libfuse, libglib2, libidn, libmad, libogg, libpcap, libpng, libsndfile, libtheora, libtool, libusb-compat, libvorbis, libxcb, libxml2, libxslt, links, linux-fusion, lm-sensors, lsof, ltp-testsuite, ltrace, lvm2, lzo, m4, makedevs, memtester, mesa3d, mii-diag, mpc, mpfr, mpg123, mplayer, mrouted, mtd-utils, nano, netperf, netplug, ntfs-3g, ntp, openssh, openssl, openvpn, oprofile, pango, patch, pciutils, php, pkgconfig, portmap, psmisc, python, qt, rsync, ruby, sawman, screen, sdl_gfx, sdl_sound, smartmontools, socat, sqlite, squid, sshfs, sstrip, sysklogd, sysstat, sysvinit, tar, tcpdump, tslib, udev, usbutils, vim, vtun, webkit, wipe, x11vnc, xapp_xlogo, xcb-proto, xfont_font-util, xkeyboard-config, xlib_libX11, xz, zlib New packages: dhrystone, dsp-tools, faad2, fbgrab, gst-dsp, gst-omapfb, irda-utils, lame, libao, libcue, libcuefile, libffi, libhid, libreplaygain, libsamplerate, libsigc++, lsuio, mpd, musepack, python-mad, python-serial, rsh-redone, sdparm, tidsp-binaries, vorbis-tools, wavpack, whetstone, xl2tp, xmlstarlet Removed packages: hotplug, l2tp, libfloat, microcom, ng-spice-rework Issues resolved (http://bugs.uclibc.org): #267: The make target: cross fails because toolchain_build_... #415: Berkeley DB: mut_pthread.o: relocation R_X86_64_32 against... #561: ltp-testsuite failed to install #1447: Installing gfortran on PowerPC #1651: Build fail caused by ccache in module-init-tools #1681: Cross-compiled binaries shouldn't be installed into staging #1723: [PATCH] axel: convert to generic package infrastructure and... #1735: [PATCH] mplayer: convert to autotools infrastructure #2551: [PATCH] native toolchain in the target filesystem fails #2623: buildroot-snapshot-20100922 fails when compiling development... #2647: makedevs package lacks support for 16-bit major/minor numbers #2371: QT MYSQL Module does not build when MySQL installed on the host #2839: compile fails in various packages with a odd message "error:... #2887: tar "buffer overflow detected" error #2893: Broken "make source" with external toolchain #2905: Qt: Speed up compilation, if gui-module isn't selected #2929: genext2fs: couldn't allocate a block (no free space) #2935: Ntpdate isn't installed #2965: Broken linkage to xkbcomp (blocking X server startup) #2983: xlib_libX11 build failed #3007: kexec doesn't build: Missing regdef.h file #3085: Init scripts are not compatible with sysVinit (when busybox... #3103: make external-deps wants to download gcc-.tar.bz2 when... #3109: abnormal `make busybox-menuconfig` #3115: How about board specific makefiles? #3169: python patch has typo, aborts build in scenario #3181: dhcp.mk copies S80dhcp-server to etc/init.d, not etc/init.d/ 2010.11, Released November 30th, 2010: Fixes all over the tree. Updated/fixed packages: libgcrypt, qt, squid, sysstat, tcpdump, xserver-xorg Issues resolved (http://bugs.uclibc.org): #2773: squid with openssl support needs openssl on the host #2857: OBJDUMP definition is missing from TARGET_CONFIGURE_OPTS 2010.11-rc2, Released November 25th, 2010: Fixes all over the tree. Add support for LEON Sparc architecture variants. Fix make source/external-deps for host packages. Updated/fixed packages: bash, bind, busybox, dialog, gpsd, libglib2, libcurl, libmad, lrzsz, midori, module-init-tools, mtd-utils, openssh, openssl, pciutils, php, qt, sqlite, sysstat, webkit, zlib Issues resolved (http://bugs.uclibc.org): #759: Sysstat build broken without libintl #2479: host-module-init-tools 3.11 fails to build #2725: Buildroot overrides kernel config #2785: mtd-utils build fails due to missing libmtd #2791: Added PHP-Process Control to the PHP-Package #2797: pciutils dependencies on zlib not taken into account #2809: failed to compile libglib2 #2821: [PATCH] Patch for JavaScriptCore in QtWebKit module #2827: qt-4.7.0-pthread_getattr_np.patch invalid for qt 4.6... #2833: Failed to compile webkit without X11 2010.11-rc1, Released November 8th, 2010: Fixes all over the tree and new features. Kconfig infrastructure rebased against 2.6.36-rc1, bringing misc fixes + nconfig and savedefconfig targets. Toolchain: ARM cortex A9 support, experimental crosstool-ng backend, GCC 4.5.x. Fs: Squashfs 4.1 with lzo support Old-style package hooks (*_HOOK_POST_*) removed. Use the more generic new-style ones instead. Download handling reworked and support for git/svn downloads added. Removed experimental shared config.cache support, as it is too unreliable. A convenience Makefile wrapper is created when using out-of-tree building, similar to how it is done for the kernel. Alpha, Cris, IA64 and Sparc64 architecture support removed. New packages: argp-standalone, gdk-pixbuf, gpsd, gst-ffmpeg, libmpeg2, kbd, librsvg, nuttcp, rng-tools, rrdtool, xz Updated/fixed packages: acpid, alsa-lib, argus, at, autoconf, automake, avahi, axel, beecrypt, berkeleydb, bind, bmon, boa, bootutils, bridge-utils, bsdiff, busybox, cvs, dbus, directfb, dmraid, docker, dosfstools, dropbear, e2fsprogs, ethtool, expat, ezxml, fbset, fconfig, ffmpeg, freetype, gadgetfs-test, gamin, gawk, genext2fs, gperf, gst-plugins-base, gst-plugins-ugly, gtk2-themes, gtkperf, gvfs, haserl, hdparm, hostapd, hwdata, ifplugd, imagemagick, iperf, ipsec-tools, iproute2, iptables, iw, jpeg, kexec, kismet, less, libcgi, libcurl, libdaemon, libdnet, liberation, libevent, libeXosip2, libglade, libgtk2, libiconv, libidn, libintl, libmms, libmpd, libnl, liboil, libosip2, libpcap, libpng, libtool, libungif, libxml2, libxslt, lighttpd, lite, lm-sensors, lockfile-progs, logrotate, m4, matchbox, mdadm, mesa3d, metacity, mplayer, mtd-utils, mysql_client, nano, nbd, ncftp, neon, netperf, netsnmp, ng-spice-rework, ntfsprogs, ntp, openntpd, openssh, openssl, openvpn, oprofile, pango, patch, pcre, php, pkg-config, portmap, pppd, pptp-linux, prboom, proftpd, radvd, rdesktop, readline, rp-pppoe, ruby, qt, quagga, samba, sawman, sdl_mixer, sdl_sound, sed, setserial, shared-mime-info, slang, speex, sqlite, squashfs, startup-notification, strace, sylpheed, sysstat, taglib, tcpdump, thttpd, tiff, tn5250, torsmo, tslib, udev, udpcast, usbmount, usbutils, vsftpd, vtun, which, wireless-tools, wpa_supplicant, xapp_twm, xapp_xbacklight, xapp_xcursorgen, xapp_xinit, xapp_xinput, xapp_xmore, xdriver_xf86-input-{acecad,aiptek,evdev,joystick,keyboard}, xdriver-xf86-input-{mouse,synaptics,vmmouse,void}, xdriver-xf86-video-{apm,ark,ast,ati,chips,cirrus,dummy,fbdev}, xdriver-xf86-video-{geode,glide,glint,i128,i740,intel,mach64}, xdriver-xf86-video-{mga,neomagic,newport,nv,openchrome,r128}, xdriver-xf86-video-{rendition,s3,s3virge,savage,siliconmotion}, xdriver-xf86-video-{sis,sisusb,suncg3,suncg6,suncg14,sunffb}, xdriver-xf86-video-{sunleo,suntcx,tdfx,tga,trident,v4l,vesa}, xdriver-xf86-video-{vmware,voodeo,wsfb,xgi,xgixp}, xkeyboard-config, xlib_libX11, xserver_xorg-server, xstroke, xterm, xvkbd, zlib Deprecated packages: hotplug, lzma, ng-spice-rework, sfdisk Removed packages: dillo, libglib12, libgtk12, microwin, pcmcia Issues resolved (http://bugs.uclibc.org): #901: new package: gpsd #2389: Generate a Makefile wrapper in $(O) #2461: wireless_tools: install shared library if needed #2521: Can't compile sdl_mixer, mikmod.h can't be found #2533: xserver_xorg-server: Enable glx, if mesa3d is built #2563: [PATCH] cairo: Expose the configure option to disable some... #2581: libmms: Update to 0.6, and patch to work on architectures... #2707: Can't compile linux kernel using buildroot + crosstool-ng #2731: Build order #2737: buildroot configuration tool crashing when the path exceeds... #2767: Build for lsof broken in buildroot-2010.08 2010.08: Released August 31th, 2010: Fixes all over the tree. Updated/fixed packages: atk, xstroke Removed packages: lxdoom 2010.08-rc2, Released August 30th, 2010: Fixes all over the tree. Mark the combination of uClibc 0.9.31, gcc 4.2.x, C++ and locale support as broken. Remove deprecated GCC 4.2.[1-3] versions. Mark CRIS architecture as deprecated, as it is discontinued upstream. Marked shared config.cache as experimental and disabled by default as it is known to break with certain package combinations. Toolchain: fixed gcc 4.2.x build after uClibc NPTL support got added. fs: old-style squashfs for big endian archs fixed. Updated/fixed packages: busybox, gst-plugins-base, imagemagick, kismet, libgail, libglib2, libgtk2, lua, luafilesystem, lzo, ncurses, netcat, pango, php, pppd, proftpd, qt, samba, startup-notification, swfdec, sysvinit, util-linux Removed packages: stunnel Issues resolved (http://bugs.uclibc.org): #635: util-linux fails to build in 2009.08 #2239: netcat package installs its binary to target as avr32-linux... #2395: libglib2-2.24.1 and libxml2-2.7.7 fails build on MIPS because... #2443: Initramfs: Don't overwrite $(TARGET_DIR)/init if it exists #2449: Minor fixes for squashfs makefile and correct PowerPC e500 ... 2010.08-rc1, Released July 30th, 2010: Fixes all over the tree and new features. Toolchain: GCC 4.3.5, older 4.3.x versions removed. GCC 4.1.2 and non-sysroot support removed. Added support for (snapshot) NPTL in uClibc, 0.9.28.3 removed, Bootloaders: Various cleanups, moved to boot/, added Barebox, removed yaboot. Support building u-boot from custom tarball, u-boot 2010.06. New GTK-based configurator, usable using 'make gconfig'. Java packages marked as broken. Unless someone steps up to support this, they will be removed during the 2010.11 development cycle. Alpha, IA64 and Sparc64 architectures marked as deprecated. GTK+ on DirectFB has also been marked as deprecated, as it is not supported in recent GTK+ versions, and more and more packages depends on the new versions. Unless someone steps up to support them, they will be removed during the 2010.11 development cycle. New packages: cgilua, copas, coxpcall, ffmpeg, libsvgtiny, libgail, luafilesystem, luasocket, rings, wsapi, xavante, xterm Updated/fixed packages: alsa-lib, alsamixergui, at, atk, avahi, berkeleydb, bash, blackbox, busybox, bzip2, cairo, cdrkit, cmake, dash, dhcp, dialog, diffutils, distcc, dmalloc, dnsmasq, dropbear, e2fsprogs, fbv, file, flex, fontconfig, gawk, gmpc, gnuchess, gst-plugins-base, gst-plugins-good, gstreamer, gzip, icu, intltool, iostat, ipsec-tools, iptables, iw, libart, libcgi, libcurl, libdrm, libeXosip, libfuse, libglib2, libgpg-error, libiconv, libidn, liblockfile, libpng, libsoup, lighttpd, links, linux-fusion, lmbench, lrzsz, ltrace, make, midori, module-init-tools, mplayer, mysql_client, nbd, ncurses, neon, netcat, netperf, netsnmp, ntfsprogs, openssl, oprofile, pango, php, qt, quagga, samba, setserial, sdl, sdl_mixer, sdl_sound, sdl_ttf, speech-tools, sqlite, squashfs, swfdec, tftpd, thttpd, tn5250, tremor, usbutils, webif, webkit, wireless_tools, xerces, xkeyboard-config, xserver_xorg-server, xvkbd, zlib Removed packages: modutils, portage, rxvt Deprecated packages: dillo, libglib12, libgtk12, microwin, pcmcia Issues resolved (http://bugs.uclibc.org): #321: alsa-lib uses host include files for python which breaks ... #361: linux kernel configuration choice works incorrectly #387: Tremor not installed to toolchain #401: new package: ffmpeg #475: uImage target for U-boot failed generating #543: ATK requires X11 on DirectFB target #575: webkit: Buildroot Libtool Patch Fails #583: build fails with external x86_64 toolchain #729: sstrip creates corrupted headers #829: Webkit r44552 needs libXt #835: Package Dataflashboot-1.05 does not compile with buildroot... #847: Compiling target-gcc v4.4 fails with "libc.so.0: cannot open... #859: Add (head of) nptl branch to list of uClibc versions #949: compile with debug info #955: Grub fails to build with External Toolchain #1051: Webkit doesn't compile (Linuxthreads new, x86) #1213: Move .config into output directory #1225: Buildroot fails to account for "nof" subdirectory (no float... #1231: (sparc) Linux kernel fails to build #1261: The getline() in output/build/linux-2.6.28/scripts/unifdef.c... #1339: Busybox needs -fno-strict-aliasing to compile cleanly #1393: neon config fails libxml/parser.h: libxml2 requires, but not ... #1405: WebKit fails to build because pthread_getattr_np is not impl... #1675: GMP Error during buildroot make process #1741: external toolchain linking error #1753: lmbench: convert to generic package infrastructure #1771: Fakeroot and the target/generic/device_table.txt create bad... #1807: LZMA 4.32.7, Required header file(s) are missing #1813: xkeyboard-config fails to build because of intltool problem #1879: Bump iptables to 1.4.8 #1885: Add a bunch of lua modules #1897: Bump libusb to 1.0.7 #1903: Bump tn5250 to 0.17.4 and migrate to autotargets #1909: netperf-2.4.5 fails to build because of undeclared SOCK_DCCP #1927: Bump file to 5.03 and migrate to autotargets #1933: Bump gawk to 3.1.8 and migrate to autotargets #1945: PHP: add sqlite3 dependency when using external lib #1951: Bump openssl to 0.9.8o #1957: Bump sqlite to 3.6.23.1 #1975: Package removal/deprecation #1981: zlib: bump to 1.2.5 #1987: intltool: Fix spelling mistake #1993: Bump bash to 4.1.7(1) and migrate to autotargets #1999: Typo in path checking #2005: Bump dnsmasq to 2.55 and migrate to gentargets #2035: ipsec-tools-0.7.2 fails to build with gcc-4.4.x #2038: Bump ncurses to 5.7 #2095: make gconfig: undefined reference to symbol 'dlsym@@GLIBC_2.2.5' #2101: blackbox depends on locale support #2119: Tries to build kernel, although disabled in config #2125: libXfont build fail #2143: buildroot compiler generates segfaulting statically linked exe.. #2149: xterm build failure #2155: Compression lzo don't set for ubifs #2161: [SECURITY] Update libpng to 1.2.44 #2167: Bump busybox to 1.17.0, convert to gentargets, drop 1.12, ... #2181: pixman can't apply pixman-0.10.0-no-tests.patch #2191: linux-fusion build fail #2221: Qt does not compile (dependencies not taken into account?) #2233: Atmel atstk target skeletons have /etc/mtab as a file, not ... #2245: Netcat does not work due to incorrect assumptions about signed.. #2251: directory output/build after make *_defconfig not found #2257: Convert netsnmp package to autotargets #2263: Bump samba to 3.3.13 #2269: setserial causes make error 2010.05, Released May 30th, 2010: Fixes all over the tree. Updated/fixed packages: coreutils, hal, libcap, lockfile-progs, ncftp, xserver_xorg-server Issues resolved (http://bugs.uclibc.org): #1789: binutils fails to build for i386 #1843: Fix libcap build failure #1855: XORG Keyboard driver fails to compile 2010.05-rc3, Released May 27th, 2010: Fixes all over the tree. Updated/fixed packages: aumix, atk, avahi, bmon, busybox, cairo, cdrkit, dbus-glib, dbus-python, docker, enchant, fltk, gamin, gettext, gmpc, gob2, grep, gstreamer, gst-plugins-bad, gst-plugins-base, gvfs, hal, iconv, icu, iperf, libcgicc, libdvdnav, libdvdread, libglade, libglib2, libgtk2, libidn, libmms, libmpd, libpcap, libsoup, lmbench, lsof, ltrace, lvm2, make, metacity, microperl, mtd-utils, mutt, nbd, netsnmp, ntfsprogs, ntp, olsr, pango, pciutils, pcmanfm, php, pkg-config, psmisc, qt, samba, shared-mime-info, squashfs, squashfs3, sshfs, startup-notification, swfdec, sylpheed, uemacs, util-linux, valgrind, vpnc, vsftpd, webkit, xstroke Issues resolved (http://bugs.uclibc.org): #75: arm buildroot "unrecognized option" error #699: Buildroot fails to copy libstdc++ to target when using external... #1693: NTP trys IPV6 even if not configured error: 'IPV6_MULTICAST... #1729: alsamixergui fails to build #1801: Avahi-autoipd doesn't create TARGET_DIR/var/lib #1819: pciutils small bugs #2065: Internal toolchain: bump gcc 4.3.x series to 4.3.5 2010.05-rc2, Released May 11th, 2010: Fixes all over the tree. Updated/fixed packages: busybox, customize, gawk, gnuchess, hal, hostapd, less, libgcrypt, libnl, libxcb, linux-fusion, ltp-testsuite, mplayer, netplug, pciutils, php, sed, shared-mime-info usb_modeswitch, usbutils, vlc wpa_supplicant, xapp_bdftopcf, xapp_mkfontdir, xdriver_xf86-video-openchrome, xfont_encodings, xlib_libX11, xlib_libXfont, xlib_xtrans, xproto_fontcacheproto, xproto_fontsproto, xvkbd Removed packages: vice Issues resolved (http://bugs.uclibc.org): #849: "customize" package copies files to wrong place in target tree #985: Bump usb_modeswitch package to 1.1.0 #1135: Package customize. Wrong copying #1525: Package hal deletes a whole /etc/rc.d directory #1531: libxcb 1.5 build fails, due to missing xcbgen Python module #1669: Busybox failed to compile when using an external toolchain #1699: Fix usbutils dependencies and bump #1705: Fix pciutils broken cross compiling #1717: External toolchain fixes for hostapd & wpa_supplicant 2010.05-rc1, Released May 3rd, 2010: Cleaned up / restructured package menu. Toolchain: uClibc 0.9.30.3 / 0.9.31, older 0.9.30.x removed. 2.6.33 kernel headers, binutils 2.20.1, GCC 4.4.4, removed broken nios2 support, ppc e300cX/e500mc support, improved external toolchain support, GDB 7.x support. X.org updated to 7.5. New packages: cdrkit, cramfs, genext2fs, genromfs, libatomic_ops, librsync, libusb-compat, lmbench, netperf, squashfs, squashfs3, squid Updated/fixed packages: alsa-utils, argus, autoconf, bison, busybox, bzip2, directfb, dnsmasq, dosfstools, e2fsprogs, eeprog, fakeroot, fbv, findutils, freetype, haserl, hostapd, iperf, iptables, iw, less, libaio, libcgi, libcgicc, libdrm, libgcrypt, libglib2, libid3tag, libmad, liboil, libosip2, libpng, libraw1394, libsysfs, libxml2, libxslt, linux-fusion, ltrace, lua, lzma, madplay, makedevs, matchbox, mdadm, memstat, mesa3d, mtd-utils, nano, ncurses, openssl, patch, pciutils, php, pixman, portage, pppd, pthread-stubs, python, qt, radvd, samba, setserial, smartmontools, tar, tslib, udpcast, usb_modeswith, vtun, wget, xdata_xcursor-themes, xdriver_xf86-video-intel, xkeyboard-config, xlib_libX11, xlib_libXaw, xlib_libXfont, xlib_libXfontcache, xlib_libXxf86misc, xlib_libXtst, xlib_libpciaccess, xproto_dri2proto, xproto_eviext, xproto_fontcacheproto, xproto_xf86miscproto, xserver_xorg-server Removed packages: xapp_xtrap, xlib_libXTrap, xlib_libXevie, xlib_libXxf86misc, xxproto_evieext, proto_trapproto, xproto_xf86miscproto Issues resolved (http://bugs.uclibc.org): #513: Add new squid package #661: lmbench: new package #719: Add lua option to haserl #800: [PATCH] iperf update to 2.0.4 #803: [PATCH] lua - add shared library patch and config option for... #805: [PATCH] mdadm - version update #817: integrator926_defconfig uses unsupported uboot board name #851: Add option to specify --sysroot value for external toolchain #1093: Upgrade libusb to v1.0.3 and add new libusb-compat package for compatibility with old packages that expect the pre-1.0 API. #1105: Add new netperf package #1111: Bump wget to 1.12 and migrate to Makefile.autotools.in #1117: Bump nano to 2.2.3 and migrate to Makefile.autotools.in #1123: Bump less to 436 and migrate to Makefile.autotools.in #1129: Bump memstat to 0.8 and migrate to Makefile.package.in #1189: Wrong u-boot configuration name for integrator926 target #1219: kernel headers not correctly installed into toolchain/staging #1267: Wrong BR2_EXTRA_VERSION #1273: BR2_INET_IPV6 does not enable IPv6 in pppd #1303: Add librsync package #1321: Busybox link fails due to lack of --sysroot option #1327: mtd-utils compile failure due to lack of --sysroot in CFLAGS #1345: Bump pppd to 2.4.5 and convert to Makefile.autotools.in #1369: cannot build radvd (flex problem) #1387: xlib_libX11-1.3.2 can't find libjpeg #1411: [SECURITY] Update openssl package to 0.9.8n #1417: Bump iptables to 1.4.7 #1423: Bump e2fsprogs to 1.41.11 #1429: [SECURITY] Update php to 5.2.13 #1441: Add binutils 2.20.1 #1447: Package installation on target with debug symbols is broken #1459: Misc QA fixes #1489: radvd update to 1.6 #1513: Enable powerpc e300c2, e300c3 and e500mc optimization #1537: dev entries not created anymore #1555: Fix default uclibc-0.9.31 configuration #1561: [SECURITY] Update samba to 3.3.12 #1567: openssl0.9.8n fails to compile #1573: Alsa-utils alsactl/init/* not installed to target #1591: portmap fails to compile #1615: Convert eeprog package to gentargets #1645: Bump hostapd package to 0.7.2 2010.02, Release February 26th, 2010: Fixes all over the tree. Updated/fixed packages: avahi, busybox, cramfs, ipsec-tools, libcgicc, libgtk2, libraw1394, madplay, netsnmp, pango, squashfs, sylpheed, qt, xfont_font-util Removed packages: hostap, openmotif, xpdf Issues resolved (http://bugs.uclibc.org): #165: openmotif does not build #1147: Remove obsolete hostap package #1183: make source fails to download gmp, mpfr and patches 2010.02-rc2, Released February 23th, 2010: Fixes all over the tree and new features. New packages: intltool Updated/fixed packages: ace_of_penguins, alsa-lib, alsa-utils, argus, at, automake, ccache, dosfstools, e2fsprogs, flex, gob2, gmpc, gst-plugins-good, imagemagick, iw, kexec, libeXosip, libgtk2, libpcap, libpng, libsoup, libxcb, libxml-parser-perl, libxml2, libxslt, lvm2, matchbox, mplayer, rsync, rubix, shared-mime-info, tcl, webkit, xapp_mkfontscale, xfont_encodings, xfont_font-util, xlib_libfontenc, xproto_trapproto, zlib Removed package: xboard Issues resolved (http://bugs.uclibc.org): #335: atk looks for the path to the gnome library on the host #355: Please update WebKit - it doesn't compile! #453: libglib2 autoreconf #457: e2fsprogs link problem #459: libgtk2 autoreconf #469: build of libgtk2 for host incorrectly assumes that X.org ... #671: Bash fails to build when building buildront on Ubuntu 9.04 #711: WebKit host dependencies problems #821: cp: illegal operation #1039: Not compiled on ubuntu karmic #1069: [PATCH] The AT91BOOTSTRAP makefile contains a typo 2010.02-rc1, Released February 9th, 2010: Fixes all over the tree and new features. Generalized autotools infrastructure to be usable for non-autotools packages, see package/Makefile.package.in for details. Cleaned up avr32 toolchain config, external source-based toolchain support is gone. Dependency checks: Also check for makeinfo, only print output on errors. Toolchain: uClibc 0.9.30.2, gcc 4.4.3 New packages: libcdaudio, libdvdnav, libdvdread, hostapd, ser2net, tcpreplay Updated/fixed packages: alsa-lib, alsa-utils, at, autoconf, bash, bind, binutils, bootutils, busybox, dbus, directfb, dnsmasq, e2fsprogs, gstreamer, gperf, gst-plugins-bad, gvfs, fbdump, flex, hal, iptables, iw, jpeg, kismet, libfuse, libglib2, liboil, libpcap, libungif, libxml2, libxslt, lighttpd, mesa, mpg123, mtd-utils, nbd, neon, netstat-nat, newt, openvpn, pcre, php, qt, rdesktop, readline, rpm, sawman, sdl, sdl_ttf, sqlite, sshfs, tremor, u-boot, usb_modeswitch, usbutils, webkit, wpa_supplicant, xfsprogs, zlib Removed package: asterisk, openswan Issues resolved (http://bugs.uclibc.org): #515: tcpreplay: new package #553: Wrong DirectFB ps2mouse limitation #559: mesa3d build fails #679: Autoconf cannot find M4 #739: New/updated hostapd package #749: Bump usbutils package to version 0.86 #751: Kernel 2.6 snapshot fetch fail #753: Bump lighttpd package to 1.4.25 #757: U-Boot: mkimage cannot be installed using external toolchain #761: Add binutils 2.20 to toolchain options #763: [SECURITY] Update pcre to 7.9 #765: Add buildroot branding to gcc #767: Bump iw package to 0.9.18 #773: [SECURITY] Update bind to 9.5.2-P1 #795: Minor edits to fix typos, grammar, spelling, usage in documen... #813: Drop not very useful generic package selection options ... #823: Editor backup files (~) is copied from the target_skeleton #827: Bump mtd-utils package to version 1.2.0 #841: Build error #913: Bump iptables to 1.4.6 #919: Bump usb_modeswitch package to 1.0.7 #925: Bump wpa_supplicant package to 0.6.10 #931: Bump kismet package to 2010-01-R1 #937: Bump openvpn package to 2.1.1 #943: Bump sqlite package to 3.6.22 #961: Bump dnsmasq to 2.52 #967: Bump netstat-nat to 1.4.10 #973: Bump iw to 0.9.19 #1003: DHCP options disabled with busybox-1.16.0 #1009: [SECURITY] Bump php to 5.2.12 #1015: [SECURITY] Bump bind to 9.5.1-P2 #1027: Busybox flash commands conflict with those from mtd-utils #1063: [SECURITY] Update lighttpd to 1.4.26 2009.11, Released December 1st, 2009: Additional fixes and cleanups. Updated/fixed packages: alsamixergui, autoconf, coreutils, fltk, microperl, ncurses, vim Issues resolved (http://bugs.uclibc.org): #707: Cant configure fltk-1.1.7. configure: error: Configure could ... 2009.11-rc2, Released November 29th, 2009: Additional fixes and cleanups. Updated/fixed packages: busybox, dbus, fltk, gvfs, ltrace 2009.11-rc1, Released November 23rd, 2009: Fixes all over the tree and new features. Cleaned up / Simplified build directory layout. Refer to docs/buildroot.html#using for details. Target defconfig files moved to configs/ and listed in 'make help' output. Fixed *clean targets. Now clean removes everything generated, so you can do a fresh rebuild. Distclean furthermore removes kbuild tools and .config, bringing the source tree back in a pristine state. Toolchain: ARM cortex A8 support, GCC 4.4.2, sensible default soft / hardfloat setting for architecture, ensure target-ldd gets installed. New packages: divine, gvfs, libarchive, libmicrohttpd, sdl_sound, swfdec, sysstat Updated/fixed packages: alsa-lib, alsamixergui, autoconf, bootutils, busybox, gcc, directfb, dnsmasq, e2fsprogs, festival, gamin, gperf, gqview, gstreamer, gst-plugins-bad, gst-plugins-base, gst-plugins-good, imagemagick, ipkg, iptables, iw, kernel-headers, kismet, leafpad, libelf, libevent, libglib2, libidn, liblockfile, libmad, libpcap, libupnp, libuuid, libxml2, lighttpd, ltrace, lua, lzma, magiccube4d, matchbox, mdadm, nbd, ncftp, ncurses, netkittelnet, netsnmp, ng-spice-rework, ntfs-3g, openntp, openssl, pcmanfm, php, psmisc, python, quagga, radvd, rpm, rsync, rubix, samba, sawman, sdl, sdl_image, shared-mime-info, sfdisk, spawn-fcgi, speech-tools, sqlite, squashfs, synergy, syslinux, sysklogd, target-binutils, tcpdump, torsmo, u-boot, udpcast, util-linux, valgrind, vsftpd, wipe, wpa-supplicant, x11vnc, xdata_xcursor-themes, xboard, xfsprogs, xstroke, zlib[5~ Removed package: mdnsresponder, mpatrol, gcc 3.4.6 + 4.0.4, vice Issues resolved (http://bugs.uclibc.org): #301: allow to install libsmbclient #303: add gvfs package #477: Add sdl_sound package #487: Make kismet package sexier #511: New package usb_modeswitch #527: misc fixes for dnsmasq package #565: libevent: Bump version and clean up makefile #587: Use iptables multipurpose binaries and bump to 1.4.4 #593: Missing early check for patch(1) #597: (REOP) Selecting busybox in buildroot's config clobbers ar ... #609: libmicrohttpd: New package #615: python: Don't delete .py files unless asked #617: netkit/inetd requires RPC and fails to build if RPC is disabled #619: netkittelnet requires netkitbase to install, but there's no ... #645: allow to build nbd-server with NBD package #653: [SECURITY] Update php package to version 5.2.11 #655: Update sqlite package to version 3.6.18 #657: Bug in imagemagick-clean target #663: Add option for NAND flash with 512B Page and 16 kB erasesize ... #665: [PATCH] Samba package #667: [PATCH] e2fsprogs #683: SDL-dfb does not select directfb #701: make install problem with unstripped binaries #703: [SECURITY] Update openssl package to 0.9.8l #705: Bump spawn-fcgi package to 1.6.3 #709: Bump lighttpd package to 1.4.24 #713: Migrate openntpd package to Makefile.autotools.in #715: Bump libidn package to 1.15 and other fixes #717: Bump dnsmasq to 2.51 and introduce new IDN option #731: Bump iw package to 0.9.17 2009.08, Released August 31th, 2009: Additional fixes and cleanups. Updated/fixed packages: ctorrent, saveconfig/getconfig, sdl_net, util-linux. Issues resolved (http://bugs.uclibc.org): #529: util-linux doesn't find headers and include libs correctly #557: Build ctorrent with SSL support if available 2009.08-rc3, Released August 26th, 2009: Additional fixes and cleanups. Updated/fixed packages: alsa-utils, berkeleydb, busybox, dbus, directfb, enchant, kernel headers. Issues resolved (http://bugs.uclibc.org): #471: Allow directfb compilation with debug #541: Removal of CVS directories in target filesystem broken #547: berkeleydb: Update config.{sub, guess} #549: enchant: Fix dependencies. #569: Fix alsa-utils build for x86 on x86-64 2009.08-rc2, Released August 6th, 2009: Additional fixes and new features. New packages: libuuid, gcc 4.3.4. Updated/fixed packages: busybox, classpath, gzip, ipsec-tools, jamvm, libusb, microperl, neon, popt, sed, webkit. Fixed issue with 'make oldconfig' Issues resolved (http://bugs.uclibc.org): #525: sed broken with external toolchain #537: Fix gzip build with recent glibc 2009.08-rc1, Released August 2nd, 2009: Fixes all over the tree and new features. Improvement of external toolchain support: - Support for glibc toolchains. - The toolchain configuration announced to Buildroot is verified against the real toolchain configuration. - Fixes, documentation. Cleanup X.org support: clarified configuration options, and removed mandatory dependency on useless libraries such as libXt or libXaw. New QT-based configurator, usable using 'make xconfig'. Support for the Xtensa architecture. Toolchain: GCC 4.4.1, 2.6.30 kernel headers, removed < 2.6.26 headers. New packages: bmon, ctorrent, dosfstools, enchant, gst-plugins-bad, iw, libmms, libnl, netstat-nat, ntfsprogs, sdl_gfx, spawn-fcgi. Updated packages: bind, busybox, coreutils, sqlite, directfb, expat, gamin, gnuconfig, haserl, ipsec-tools, classpath, libcurl, libglib2, liblockfile, libpng, libsoup, libxml2, lighttpd, ltp-testsuite, lvm2, matchbox, memstat, gst-plugins-good, gstreamer, libogg, libvorbis, mplayer, neon, openssl, pciutils, php, qt, ruby, sawman, webkit, wpa-supplicant, xdriver_xf86-input-synaptics, xdriver_xf86-video-intel, xlib_libXfont, xlib_libXft, xlib_libXt, xproto_xproto, xserver-xorg, xutil_makedepend, xutil_util-macros. Issues resolved (http://bugs.uclibc.org): #83: liblockfile fails to compile due to eaccess redefinition #163: Xtensa architecture port #171: xorg-server / kernel headers 2.6.26 - vm86.c compilation issue #241: device mapper + lvm2: build together #243: ctorrent: new package #247: ntfsprogs: new package #271: Library 'libgcc_s.so.1' not installed in search path #287: New package libnl #289: New package iw #331: Update MPlayer to version 1.0rc2 #333: Bump sqlite package to 3.6.15 #349: update libsoup to version 2.26.2 #357: New package netstat-nat #359,#413: Upgrade openvpn to Makefile.autotools.in #367: linux kernel compile error for arm926t #369: Add SDL_gfx package #373: Support for building gstreamer without libxml #379: update DirectFB to version 1.4.0 #383: gst-plugins-good: Allow soup plugin to be configured #385: neon: Fix pkgconfig dependency #387: Tremor not installed to toolchain #389: New package bmon #391: gstreamer: Bump version to 0.10.23 #393: gst-plugins-base: Bump version to 0.10.23 #395: gst-plugins-bad: New package #403: Error while building iso9660 image #409: Bump php package to 5.2.10 #411: ipsec-tools: Bump version to 0.7.2 #417: New package spawn-fcgi #419: Bump lighttpd package to 1.4.23 #421: toolchain: Clean up toolchain locale support menu #427: webkit: Update to WebKit svn r44552 #437: ltp-testsuite: Bump version to 20090630 #451: Upgrade from unmaintained dosfstools-2.11 to dosfstools-3.0.3 #467: DirectFB 1.4.1 #473: memstat_0.5.tar.gz has install with -D and that fails "make" #491: libxml2: Bump version to 0.7.3 #495: Bump bind package to 9.5.1-P3 (security) #497: OpenSSL RSA key generation hangs on x86_64 #509: Bump sqlite package to 3.6.16 #523: pciutils broken with external toolchain #533: Update gamin to 0.1.10 to fix compilation 2009.05, Released June 1st, 2009: Fixes for dropbear & diffutils, bump linux-advanced 2.6.29.x version and marked ubifsroot as broken. 2009.05-rc3, Released May 27th, 2009: Fixes for toolchain (gcc arm pr37436), stable kernel versions, busybox, curl, libusb, readline, python and strace. Issues resolved (http://bugs.uclibc.org): #345: libcurl package needs a urandom fix 2009.05-rc2, Released May 19th, 2009: Fixes for toolchain (gcc w/softfloat on ppc, 3.4.6 buildfix for newer hosts), stable kernel versions, busybox, cups, dmraid, docker, mesa3d, rsync and updated defconfigs. xserver marked as broken on AVR32 and atngw100-expanded config removed. Issues resolved (http://bugs.uclibc.org): #167: metacity does not build #295: gamin installs python support even if python is disabled #323: gen_matypes fails to execute during build of Mesa when us... 2009.05-rc1, Released May 5th, 2009: Fixes all over the tree, further conversion of packages to Makefile.autotools.in and we now build host versions of packages where needed for build time dependencies instead of relying on the correct versions being available on the build host. Ancient toolchain / busybox versions have furthermore been removed as announced in the 2009.02 release notes. New packages: flac, gob2, lzop, taglib, wpa_supplicant Updated packages: avahi, bind, binutils, busybox, dbus, dbus-glib, directfb, dnsmasq, freetype, gcc, gmp, gstreamer, iptables, kernel headers, kexec, libglib2, libpng, libsndfile, lua, mpfr, ntfs-3g, openssl, php, qtopia4, rsync, samba, sqlite, tar, uboot, uclibc, util-linux, xorg7, xerces Issues resolved (http://bugs.uclibc.org): #5,#77,#141,#143: Convert php package to Makefile.autotools.in and a ton of other improvements #19: page.h missing by util-linux #37: update libglib2 to version 2.18.4 #61: tslib puts staging_dir into pkgconfig file #69: tar refuses to build #71,#175: ./wchar.h:41:12: error: empty filename in #include #73: Bump openssl package to the latest version #81: New package wpa_supplicant #99: new package: flac #101: update gstreamer packages #105,#313: menuconfig segfaults on tinyx if wchar is not selected #107: convert libvorbis to Makefile.autotools.in #109: Make pppd package avoid bsd err #111: binutils 2.17 fails to build when texinfo >= 4.10 #133: Modify ncurses5-config to get correct include path #137: Bump php to version 5.2.9 #139: Bump sqlite to 3.6.11 and convert to Makefile.autotools.in #145: Bump bind package to 9.5.1-P1 (security) #147: buildroot toolchain fails to build w/binutils-2.19.1 #151: openssl package trivial fixes #161: vim fails on patching with errors in configure.patch #169: blackbox-0.70.1 does not build #177: xdriver_xf86-input-keyboard does not build #179: Upgrade dropbear to Makefile.autotools.in #181: Update to Xorg 7.4 #187: ntfs-3g: could not build cross #191: alsa-lib ARM binaries always built with EABI #213: Bump wpa_supplicant package to version 0.6.9 #217: Bump openssl package to 0.9.8k (security) #219: Toolchain build fails on m4 #225: m4 macros are out of place #233: make ipv6 optional in iptables #237: ncftp: convert to Makefile.autotools.in #239: ntfs-3g: convert to Makefile.autotools.in #245: lzop: new package #271: Bump bind package to 9.5.1-P2 (security) #277: Bump sqlite package to 3.6.16 #279: update libglib2 to version 2.20.1 #281: update DirectFB to version 1.2.8 #283: add taglib #285: compilation of samba fails if IPV6 support is missing #293: update samba to version 3.3.3 #299: add shared-mime-info package #307: make openssl package respect build flags ================================================ FILE: COPYING ================================================ With the exceptions below, Buildroot is distributed under the terms of the GNU General Public License, reproduced below; either version 2 of the License, or (at your option) any later version. Some files in Buildroot contain a different license statement. Those files are licensed under the license contained in the file itself. Buildroot also bundles patch files, which are applied to the sources of the various packages. Those patches are not covered by the license of Buildroot. Instead, they are covered by the license of the software to which the patches are applied. When said software is available under multiple licenses, the Buildroot patches are only provided under the publicly accessible licenses. ----------------------------------------------------------------- GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ================================================ FILE: Config.in ================================================ # mainmenu "Buildroot $BR2_VERSION Configuration" config BR2_HAVE_DOT_CONFIG bool default y config BR2_VERSION string option env="BR2_VERSION_FULL" config BR2_HOSTARCH string option env="HOSTARCH" config BR2_BASE_DIR string option env="BASE_DIR" # br2-external paths definitions source "$BR2_BASE_DIR/.br2-external.in.paths" # Hidden config symbols for packages to check system gcc version config BR2_HOST_GCC_VERSION string option env="HOST_GCC_VERSION" config BR2_HOST_GCC_AT_LEAST_4_9 bool default y if BR2_HOST_GCC_VERSION = "4 9" config BR2_HOST_GCC_AT_LEAST_5 bool 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 config BR2_HOST_GCC_AT_LEAST_7 bool default y if BR2_HOST_GCC_VERSION = "7" select BR2_HOST_GCC_AT_LEAST_6 config BR2_HOST_GCC_AT_LEAST_8 bool default y if BR2_HOST_GCC_VERSION = "8" select BR2_HOST_GCC_AT_LEAST_7 config BR2_HOST_GCC_AT_LEAST_9 bool default y if BR2_HOST_GCC_VERSION = "9" select BR2_HOST_GCC_AT_LEAST_8 # When adding new entries above, be sure to update # the HOSTCC_MAX_VERSION variable in the Makefile. # Hidden boolean selected by packages in need of Java in order to build # (example: kodi) config BR2_NEEDS_HOST_JAVA bool # Hidden boolean selected by pre-built packages for x86, when they # need to run on x86-64 machines (example: pre-built external # toolchains, binary tools like SAM-BA, etc.). config BR2_HOSTARCH_NEEDS_IA32_LIBS bool # Hidden boolean selected by packages that need to build 32 bits # binaries with the host compiler, even on 64 bits build machines (e.g # bootloaders). config BR2_HOSTARCH_NEEDS_IA32_COMPILER bool # Hidden boolean selected by packages that need the host to have an # UTF8 locale. config BR2_NEEDS_HOST_UTF8_LOCALE bool # Hidden boolean selected by packages that need the host to have # support for building gcc plugins config BR2_NEEDS_HOST_GCC_PLUGIN_SUPPORT bool source "arch/Config.in" menu "Build options" menu "Commands" config BR2_WGET string "Wget command" default "wget --passive-ftp -nd -t 3" config BR2_SVN string "Subversion (svn) command" default "svn --non-interactive" config BR2_BZR string "Bazaar (bzr) command" default "bzr" config BR2_GIT string "Git command" default "git" config BR2_CVS string "CVS command" default "cvs" config BR2_LOCALFILES string "Local files retrieval command" default "cp" config BR2_SCP string "Secure copy (scp) command" default "scp" config BR2_HG string "Mercurial (hg) command" default "hg" 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. Default is "gzip -d -c" Other possible values include "gunzip -c" or "zcat". config BR2_BZCAT string "bzcat command" default "bzcat" help Command to be used to extract a bzip2'ed file to stdout. bzcat is identical to bunzip2 -c except that the former may not be available on your system. Default is "bzcat" Other possible values include "bunzip2 -c" or "bzip2 -d -c". config BR2_XZCAT string "xzcat command" default "xzcat" help Command to be used to extract a xz'ed file to stdout. Default is "xzcat" config BR2_LZCAT string "lzcat command" default "lzip -d -c" help Command to be used to extract a lzip'ed file to stdout. Default is "lzip -d -c" config BR2_TAR_OPTIONS string "Tar options" default "" help Options to pass to tar when extracting the sources. E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files and to be verbose. endmenu config BR2_DEFCONFIG_FROM_ENV string option env="BR2_DEFCONFIG" config BR2_DEFCONFIG string "Location to save buildroot config" 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. config BR2_DL_DIR string "Download dir" default "$(TOPDIR)/dl" 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. The directory is organized with a subdirectory for each package. Each package has its own $(LIBFOO_DL_DIR) variable that can be used to find the correct path. The default is $(TOPDIR)/dl 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. The default is $(BASE_DIR)/host menu "Mirrors and Download locations" 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. Valid URIs are: - URIs recognized by $(WGET) - local URIs of the form file://absolutepath - scp URIs of the form scp://[user@]host:path. config BR2_PRIMARY_SITE_ONLY bool "Only allow downloads from primary download site" depends on BR2_PRIMARY_SITE != "" help 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. 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 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. config BR2_KERNEL_MIRROR string "Kernel.org mirror" 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. 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: 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://ftpmirror.gnu.org" help 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: http://ftp.gnu.org/pub/gnu http://mirror.aarnet.edu.au/pub/gnu config BR2_LUAROCKS_MIRROR string "LuaRocks mirror" default "http://rocks.moonscript.org" help LuaRocks repository. See http://luarocks.org 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 around the world. This option allows you to select a mirror. The list of mirrors is available at: http://search.cpan.org/mirror endif endmenu 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. 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 $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. if BR2_CCACHE config BR2_CCACHE_DIR string "Compiler cache location" default "$(HOME)/.buildroot-ccache" help Where ccache should store cached files. If the Linux shell environment has defined the BR2_CCACHE_DIR environment variable, then this overrides this configuration item. config BR2_CCACHE_INITIAL_SETUP string "Compiler cache initial setup" help 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. 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. config BR2_CCACHE_USE_BASEDIR bool "Use relative paths" default y help 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. 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 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. endif config BR2_ENABLE_DEBUG bool "build packages with debugging symbols" help Build packages with debugging symbols enabled. All libraries and binaries in the 'staging' directory will have debugging symbols, which allows remote debugging even if libraries and binaries are stripped on the target. Whether libraries and binaries are stripped on the target is controlled by the BR2_STRIP_* options below. if BR2_ENABLE_DEBUG choice prompt "gcc debug level" default BR2_DEBUG_2 help Set the debug level for gcc 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. config BR2_DEBUG_2 bool "debug level 2" help The default gcc debug level is 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. endchoice endif config BR2_ENABLE_RUNTIME_DEBUG bool "build packages with runtime debugging info" help Some packages may have runtime assertions, extra traces, and similar runtime elements that can help debugging. However, these elements may negatively influence performance so should normally not be enabled on production systems. Enable this option to enable such runtime debugging. Note: disabling this option is not a guarantee that all packages effectively removed these runtime debugging elements. config BR2_STRIP_strip bool "strip target binaries" default y 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. config BR2_STRIP_EXCLUDE_FILES string "executables that should not be stripped" default "" depends on BR2_STRIP_strip help 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" default "" depends on BR2_STRIP_strip 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. choice prompt "gcc optimization level" default BR2_OPTIMIZE_S help Set the optimization level for gcc config BR2_OPTIMIZE_0 bool "optimization level 0" help Do not optimize. 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 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. 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 -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 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. 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 -ftree-vect-loop-version This is the default. config BR2_OPTIMIZE_FAST bool "optimize for fast (may break packages!)" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 help Optimize for fast. Disregard strict standards compliance. -Ofast enables all -O3 optimizations. It also enables optimizations that are not valid for all standard-compliant programs, so be careful, as it may break some packages. It turns on -ffast-math and the Fortran-specific -fstack-arrays, unless -fmax-stack-var-size is specified, and -fno-protect-parens. endchoice config BR2_GOOGLE_BREAKPAD_ENABLE bool "Enable google-breakpad support" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC) depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS select BR2_PACKAGE_GOOGLE_BREAKPAD 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. if BR2_GOOGLE_BREAKPAD_ENABLE config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES string "List of executables and libraries to extract symbols from" default "" help You may specify a space-separated list of binaries and libraries with full paths relative to $(TARGET_DIR) of which debug symbols will be dumped for further use with google breakpad. A directory structure that can be used by minidump-stackwalk will be created at: $(STAGING_DIR)/usr/share/google-breakpad-symbols endif choice bool "libraries" default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED 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. config BR2_STATIC_LIBS bool "static only" help 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" depends on BR2_BINFMT_SUPPORTS_SHARED help Build and use only shared libraries. This is the recommended solution as it saves space and build time. config BR2_SHARED_STATIC_LIBS bool "both static and shared" depends on BR2_BINFMT_SUPPORTS_SHARED help Build both shared and static libraries, but link executables dynamically. While building both shared and static libraries take more time and more disk space, having static libraries may be useful to link some of the applications statically. endchoice config BR2_PACKAGE_OVERRIDE_FILE string "location of a 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. 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: 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. 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. 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 the toolchain wrapper and binutils patches) and external toolchain backends (through the toolchain wrapper). config BR2_FORCE_HOST_BUILD bool "Force the building of host dependencies" help Build all available host dependencies, even if they are already installed on the system. This option can be used to ensure that the download cache of source archives for packages remain consistent between different build hosts. This option will increase build time. config BR2_REPRODUCIBLE bool "Make the build reproducible (experimental)" # SOURCE_DATE_EPOCH support in toolchain-wrapper requires GCC 4.4 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 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. The current implementation is restricted to builds with the same output directory. Many (absolute) paths are recorded in intermediary files, and it is very likely that some of these paths leak into the target rootfs. If you build with the same O=... path, however, the result is identical. This is labeled as an experimental feature, as not all packages behave properly to ensure reproducibility. config BR2_PER_PACKAGE_DIRECTORIES bool "Use per-package directories (experimental)" help This option will change the build process of Buildroot package to use per-package target and host directories. This is useful for two related purposes: - Cleanly isolate the build of each package, so that a given package only "sees" the dependencies it has explicitly expressed, and not other packages that may have by chance been built before. - Enable top-level parallel build. This is labeled as an experimental feature, as not all packages behave properly with per-package directories. endmenu comment "Security Hardening Options" config BR2_PIC_PIE_ARCH_SUPPORTS bool default y # Microblaze glibc toolchains don't work with PIC/PIE enabled depends on !BR2_microblaze # Nios2 toolchains produce non working binaries with -fPIC depends on !BR2_nios2 config BR2_PIC_PIE bool "Build code with PIC/PIE" default y depends on BR2_PIC_PIE_ARCH_SUPPORTS depends on BR2_SHARED_LIBS depends on BR2_TOOLCHAIN_SUPPORTS_PIE help Generate Position-Independent Code (PIC) and link Position-Independent Executables (PIE). comment "PIC/PIE needs a toolchain w/ PIE" depends on BR2_PIC_PIE_ARCH_SUPPORTS depends on BR2_SHARED_LIBS depends on !BR2_TOOLCHAIN_SUPPORTS_PIE choice bool "Stack Smashing Protection" default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy default BR2_SSP_STRONG if BR2_TOOLCHAIN_HAS_SSP_STRONG default BR2_SSP_REGULAR depends on BR2_TOOLCHAIN_HAS_SSP help Enable stack smashing protection support using GCC's -fstack-protector option family. 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. config BR2_SSP_NONE bool "None" help Disable stack-smashing protection. config BR2_SSP_REGULAR bool "-fstack-protector" help Emit extra code to check for buffer overflows, such as stack smashing attacks. This is done by adding a guard variable to functions with vulnerable objects. This includes functions that call alloca, and functions with buffers larger than 8 bytes. The guards are initialized when a function is entered and then checked when the function exits. If a guard check fails, an error message is printed and the program exits. config BR2_SSP_STRONG bool "-fstack-protector-strong" depends on BR2_TOOLCHAIN_HAS_SSP_STRONG help Like -fstack-protector but includes additional functions to be protected - those that have local array definitions, or have references to local frame addresses. -fstack-protector-strong officially appeared in gcc 4.9, but some vendors have backported -fstack-protector-strong to older versions of gcc. config BR2_SSP_ALL bool "-fstack-protector-all" help Like -fstack-protector except that all functions are protected. This option might have a significant performance impact on the compiled binaries. endchoice config BR2_SSP_OPTION string default "-fstack-protector" if BR2_SSP_REGULAR default "-fstack-protector-strong" if BR2_SSP_STRONG default "-fstack-protector-all" if BR2_SSP_ALL comment "Stack Smashing Protection needs a toolchain w/ SSP" depends on !BR2_TOOLCHAIN_HAS_SSP choice bool "RELRO Protection" default BR2_RELRO_FULL if BR2_TOOLCHAIN_SUPPORTS_PIE default BR2_RELRO_PARTIAL depends on BR2_SHARED_LIBS help Enable a link-time protection know as RELRO (RELocation Read Only) which helps to protect from certain type of exploitation techniques altering the content of some ELF sections. config BR2_RELRO_NONE bool "None" help Disables Relocation link-time protections. config BR2_RELRO_PARTIAL bool "Partial" help This option makes the dynamic section not writeable after initialization (with almost no performance penalty). config BR2_RELRO_FULL bool "Full" depends on BR2_PIC_PIE_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_SUPPORTS_PIE select BR2_PIC_PIE help This option includes the partial configuration, but also marks the GOT as read-only at the cost of initialization time during program loading, i.e every time an executable is started. comment "RELRO Full needs a toolchain w/ PIE" depends on BR2_PIC_PIE_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_SUPPORTS_PIE endchoice comment "RELocation Read Only (RELRO) needs shared libraries" depends on !BR2_SHARED_LIBS config BR2_FORTIFY_SOURCE_ARCH_SUPPORTS bool default y # Microblaze glibc toolchains don't work with Fortify Source enabled depends on !BR2_microblaze choice bool "Buffer-overflow Detection (FORTIFY_SOURCE)" default BR2_FORTIFY_SOURCE_1 depends on BR2_FORTIFY_SOURCE_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_USES_GLIBC depends on !BR2_OPTIMIZE_0 help Enable the _FORTIFY_SOURCE macro which introduces additional checks to detect buffer-overflows in the following standard library functions: memcpy, mempcpy, memmove, memset, strcpy, stpcpy, strncpy, strcat, strncat, sprintf, vsprintf, snprintf, vsnprintf, gets. NOTE: This feature requires an optimization level of s/1/2/3/g Support for this feature has been present since GCC 4.x. config BR2_FORTIFY_SOURCE_NONE bool "None" help Disables additional checks to detect buffer-overflows. config BR2_FORTIFY_SOURCE_1 bool "Conservative" # gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164 depends on !BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_GCC_AT_LEAST_6 help This option sets _FORTIFY_SOURCE to 1 and only introduces checks that shouldn't change the behavior of conforming programs. Adds checks at compile-time only. config BR2_FORTIFY_SOURCE_2 bool "Aggressive" # gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164 depends on !BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_GCC_AT_LEAST_6 help This option sets _FORTIFY_SOURCES to 2 and some more checking is added, but some conforming programs might fail. Also adds checks at run-time (detected buffer overflow terminates the program) endchoice comment "Fortify Source needs a glibc toolchain and optimization" depends on BR2_FORTIFY_SOURCE_ARCH_SUPPORTS depends on (!BR2_TOOLCHAIN_USES_GLIBC || BR2_OPTIMIZE_0) endmenu source "toolchain/Config.in" source "system/Config.in" source "linux/Config.in" source "package/Config.in" source "fs/Config.in" source "boot/Config.in" source "package/Config.in.host" source "Config.in.legacy" # br2-external menus definitions source "$BR2_BASE_DIR/.br2-external.in.menus" ================================================ FILE: Config.in.legacy ================================================ # # Config.in.legacy - support for backward compatibility # # When an existing Config.in symbol is removed, it should be added again in # this file, and take appropriate action to approximate backward compatibility. # This will make the transition for the user more convenient. # # When adding legacy symbols to this file, add them to the front. The oldest # symbols will be removed again after about two years. # # The symbol should be copied as-is from the place where it was previously # defined, but the help text should be removed or replaced with something that # explains how to fix it. # # For bool options, the old symbol should select BR2_LEGACY, so that the user # is informed at build-time about selected legacy options. # If there is an equivalent (set of) new symbols, these should be select'ed by # the old symbol for backwards compatibility. # It is not possible to select an option that is part of a choice. In that # case, the new option should use the old symbol as default. This requires a # change outside of Config.in.legacy, and this should be clearly marked as such # in a comment, so that removal of legacy options also include the removal of # these external references. # # [Example: renaming a bool option that is part of a choice from FOO to BAR] # original choice: # choice # prompt "Choose foobar" # config BR2_FOO_1 # bool "foobar 1" # config BR2_FOO_2 # bool "foobar 2" # endchoice # # becomes: # choice # prompt "Choose foobar" # default BR2_BAR_1 if BR2_FOO_1 # legacy # default BR2_BAR_2 if BR2_FOO_2 # legacy # config BR2_BAR_1 # bool "foobar 1" # config BR2_BAR_2 # bool "foobar 2" # endchoice # # and in Config.in.legacy: # config BR2_FOO_1 # bool "foobar 1 has been renamed" # help # # # Note: BR2_FOO_1 is still referenced from package/foo/Config.in # config BR2_FOO_2 # bool "foobar 2 has been renamed" # help # # # Note: BR2_FOO_2 is still referenced from package/foo/Config.in # # [End of example] # # For string options, it is not possible to directly select another symbol. In # this case, a hidden wrap bool option has to be added, that defaults to y if # the old string is not set at its default value. The wrap symbol should select # BR2_LEGACY. # If the original symbol has been renamed, the new symbol should use the value # of the old symbol as default. Like for choice options, a comment should be # added to flag that the symbol is still used in another file. # # [Example: renaming a string option from FOO to BAR] # original symbol: # config BR2_FOO_STRING # string "Some foo string" # # becomes: # config BR2_BAR_STRING # string "Some bar string" # default BR2_FOO_STRING if BR2_FOO_STRING != "" # legacy # # and in Config.in.legacy: # config BR2_FOO_STRING # string "The foo string has been renamed" # help # # # config BR2_FOO_STRING_WRAP # bool # default y if BR2_FOO_STRING != "" # select BR2_LEGACY # # # Note: BR2_FOO_STRING is still referenced from package/foo/Config.in # # [End of example] config BR2_SKIP_LEGACY bool option env="SKIP_LEGACY" if !BR2_SKIP_LEGACY config BR2_LEGACY bool help This option is selected automatically when your old .config uses an option that no longer exists in current buildroot. In that case, the build will fail. Look for config options which are selected in the menu below: they no longer exist and should be replaced by something else. # This comment fits exactly in a 80-column display comment "Legacy detected: check the content of the menu below" depends on BR2_LEGACY menu "Legacy config options" if BR2_LEGACY comment "----------------------------------------------------" comment "Your old configuration uses legacy options that no " comment "longer exist in buildroot, as indicated in the menu " comment "below. As long as these options stay selected, or in" comment "case of string options are non-empty, the build " comment "will fail. " comment "* " comment "Where possible, an automatic conversion from old to " comment "new symbols has been performed. Before making any " comment "change in this legacy menu, make sure to exit the " comment "configuration editor a first time and save the " comment "configuration. Otherwise, the automatic conversion " comment "of symbols will be lost. " comment "* " comment "After this initial save, reopen the configuration " comment "editor, inspect the options selected below, read " comment "their help texts, and verify/update the new " comment "configuration in the corresponding configuration " comment "menus. When everything is ok, you can disable the " comment "legacy options in the menu below. Once you have " comment "disabled all legacy options, this text will " comment "disappear and you will be able to start the build. " comment "* " comment "Note: legacy options older than 5 years have been " comment "removed, and configuration files that still have " comment "those options set, will fail to build, or run in " comment "unpredictable ways. " comment "----------------------------------------------------" endif ############################################################################### comment "Legacy options removed in 2021.11" config BR2_OPENJDK_VERSION_LTS bool "OpenJDK LTS version was renamed to OpenJDK 11" select BR2_LEGACY select BR2_PACKAGE_OPENJDK_VERSION_11 help The LTS version option was renamed to OpenJDK 11 to make it clear what LTS version is. config BR2_OPENJDK_VERSION_LATEST bool "OpenJDK latest version (16.x) was removed" select BR2_LEGACY select BR2_PACKAGE_OPENJDK_VERSION_17 help OpenJDK 16.x is no longer mainted, so the option has been removed. Use OpenJDK 17.x instead. config BR2_PACKAGE_MPD_TIDAL bool "mpd tidal option removed" select BR2_LEGACY help tidal has been removed from mpd since version 0.22.10. config BR2_PACKAGE_MROUTED_RSRR bool "RSRR for RSVP removed in mrouted v4.4" select BR2_LEGACY help The RSRR configure option and feature was dropped in upstream mrouted as of v4.4. This feature was marked as experimental since its inception well before v4.0 and was never deployed in the field outside of academia. config BR2_BINUTILS_VERSION_CSKY bool "binutils csky version removed" select BR2_LEGACY help Support for binutils csky version has been removed. config BR2_GCC_VERSION_CSKY bool "gcc csky version removed" select BR2_LEGACY help Support for gcc csky version has been removed. config BR2_PACKAGE_CANFESTIVAL bool "canfestival package removed" select BR2_LEGACY help This package has been removed as it is unmaintained since November 2017. config BR2_PACKAGE_NMAP_NDIFF bool "The ndiff utility has been removed" select BR2_LEGACY select BR2_PACKAGE_PYTHON_PYNDIFF help The ndiff utility provided by nmap requires python2 which is deprecated. The same functionality is provided by the python package pyndiff. config BR2_GDB_VERSION_8_3 bool "gdb version 8.3.x removed" select BR2_LEGACY help gdb 8.3.x has been removed, use a newer version instead. config BR2_PACKAGE_PYTHON_MELD3 bool "python-meld3 package removed" select BR2_LEGACY help This package has been removed as it is unmaintained since April 2020. config BR2_PACKAGE_STRONGSWAN_EAP bool "strongswan EAP plugins now individually selectable" select BR2_LEGACY help The various EAP plugins are now individually selectable. config BR2_PACKAGE_GNURADIO_PAGER bool "gnuradio gr-flex support removed" select BR2_LEGACY help gr-flex has been removed from gnuradio since version 3.8.0.0. config BR2_KERNEL_HEADERS_5_11 bool "kernel headers version 5.11.x are no longer supported" select BR2_LEGACY help Version 5.11.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_5_12 bool "kernel headers version 5.12.x are no longer supported" select BR2_LEGACY help Version 5.12.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_5_13 bool "kernel headers version 5.13.x are no longer supported" select BR2_LEGACY help Version 5.13.x of the Linux kernel headers are no longer maintained upstream and are now removed. comment "Legacy options removed in 2021.08" config BR2_TARGET_GRUB2_BUILTIN_MODULES string "the grub2 builtin modules has been renamed" help This option has been split to separate the builtin modules between BR2_TARGET_GRUB2_BUILTIN_MODULES_PC and BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI. config BR2_TARGET_GRUB2_BUILTIN_MODULES_WRAP bool default y if BR2_TARGET_GRUB2_BUILTIN_MODULES != "" select BR2_LEGACY config BR2_TARGET_GRUB2_BUILTIN_CONFIG string "the grub2 builtin configuration has been renamed" help This option has been split to separate the builtin configuration between BR2_TARGET_GRUB2_BUILTIN_CONFIG_PC and BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI. config BR2_TARGET_GRUB2_BUILTIN_CONFIG_WRAP bool default y if BR2_TARGET_GRUB2_BUILTIN_CONFIG != "" select BR2_LEGACY config BR2_PACKAGE_LIBMCRYPT bool "libmcrypt package was removed" select BR2_LEGACY help This package has been removed as "the last update to libmcrypt was in 2007, despite years of unmerged patches. These facts have led security experts to declare mcrypt abandonware and discourage its use in new development" (extract from https://en.wikipedia.org/wiki/Mcrypt). config BR2_PACKAGE_MCRYPT bool "mcrypt package was removed" select BR2_LEGACY help This package has been removed as "the last update to libmcrypt was in 2007, despite years of unmerged patches. These facts have led security experts to declare mcrypt abandonware and discourage its use in new development" (extract from https://en.wikipedia.org/wiki/Mcrypt). config BR2_PACKAGE_PHP_EXT_MCRYPT bool "PHP mcrypt extension removed" select BR2_LEGACY help mcrypt has been removed from php since version 7.2.0. config BR2_BINUTILS_VERSION_2_34_X bool "binutils 2.34 has been removed" select BR2_LEGACY help binutils 2.34 has been removed, use a newer version. config BR2_PACKAGE_LIBSOIL bool "libsoil package removed" select BR2_LEGACY help The libsoil package was removed. All packages needing libsoil removed the dependency. config BR2_PACKAGE_CLAPACK bool "cblas/clapack package removed" select BR2_LEGACY select BR2_PACKAGE_LAPACK if BR2_PACKAGE_LAPACK_ARCH_SUPPORTS && BR2_TOOLCHAIN_HAS_FORTRAN help The clapack package was removed. LAPACK no longer generates a C version. Use lapack instead. This does require a Fortran compiler however. config BR2_PACKAGE_SPIDERMONKEY bool "spidermonkey package removed" select BR2_LEGACY help The spidermonkey package was removed. The only package that depended on spidermonkey was polkit. The spidermonkey dependency is replaced with duktape. config BR2_PACKAGE_KODI_LIBVA bool "kodi option to add libva support removed" select BR2_LEGACY help Kodi still has support for libva if the package is enabled but the kodi-specific dependencies limiting libva support to non- OPENGLES platforms were removed including this option. config BR2_PACKAGE_PYTHON_COHERENCE bool "python-coherence package removed" select BR2_LEGACY help This package has been removed as it can't be built anymore due to python-twisted being now incompatible with python 2. config BR2_PACKAGE_PHP_EXT_XMLRPC bool "PHP XMLRPC extension removed" select BR2_LEGACY help The XMLRPC php extension was removed. See: https://wiki.php.net/rfc/unbundle_xmlprc config BR2_GCC_VERSION_8_X bool "gcc 8.x support removed" select BR2_LEGACY help Support for gcc version 8.x has been removed. The current default version (10.x or later) has been selected instead. comment "Legacy options removed in 2021.05" config BR2_PACKAGE_UDISKS_LVM2 bool "udisks lvm2 support removed" select BR2_LEGACY help The lvm2 support was removed because udisks < 2.7.0 still depends on lvm2 application library, which was removed in lvm2. config BR2_PACKAGE_LVM2_APP_LIBRARY bool "lvm2 application library removed" select BR2_LEGACY help The lvm2 application library was removed upstream. config BR2_PACKAGE_LVM2_LVMETAD bool "lvm2 lvmetad removed" select BR2_LEGACY help The lvm2 lvmetad was removed upstream. config BR2_PACKAGE_MONKEY bool "monkey package removed" select BR2_LEGACY help This package has been removed as it has not seen any release since 2016 and because TLS is broken on master. config BR2_PACKAGE_DOCKER_CONTAINERD bool "docker-containerd package was renamed to containerd" select BR2_LEGACY select BR2_PACKAGE_CONTAINERD help The containerd project is now independent from Docker. The package was renamed to containerd accordingly. config BR2_PACKAGE_IOSTAT bool "iostat package removed" select BR2_LEGACY help This package has been removed, use sysstat instead. config BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE bool "sconeserver http::sconesite::image removed" select BR2_LEGACY help Sconeserver cannot be built with ImageMagick - it uses the "transofrm" function which is removed from public API. config BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_EVDEV bool "KDrive/TinyX evdev input driver removed" select BR2_LEGACY help The evdev input driver in KDrive was removed. config BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_KBD bool "KDrive/TinyX kbd input driver removed" select BR2_LEGACY help The kbd input driver in KDrive was removed. config BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_MOUSE bool "KDrive/TinyX mouse input driver removed" select BR2_LEGACY help The mouse input driver in KDrive was removed. config BR2_PACKAGE_MESA3D_OSMESA_CLASSIC bool "mesa OSMesa (classic) option removed" select BR2_LEGACY select BR2_PACKAGE_MESA3D_OSMESA_GALLIUM help The OSMesa "classic" library option was removed upstream. Only the Gallium-based implementation remains. config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST bool "mesa DRI swrast driver removed" select BR2_LEGACY select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST help The DRI swrast driver was removed upstream. Only the Gallium-based implementation remains. config BR2_PACKAGE_KODI_SCREENSAVER_CRYSTALMORPH bool "kodi-screensaver-crystalmorph removed" select BR2_LEGACY help The package received its last updates in 2017, is not part of the official Kodi github repo and its build is broken with Kodi 19.x, so it was removed. comment "Legacy options removed in 2021.02" config BR2_PACKAGE_MPD_AUDIOFILE bool "mpd audiofile support removed" select BR2_LEGACY help The audiofile support was removed from mpd as audiofile is affected by multiple CVEs and is not maintained anymore (no release since 2013). config BR2_PACKAGE_AUDIOFILE bool "audiofile package removed" select BR2_LEGACY help The audiofile package was removed as it is affected by multiple CVEs and is not maintained anymore (no release since 2013). config BR2_BINUTILS_VERSION_2_33_X bool "binutils 2.33.x has been removed" select BR2_LEGACY help binutils 2.33.x has been removed, use a newer version. config BR2_PACKAGE_LIBUPNP18 bool "libupnp18 package removed" select BR2_LEGACY select BR2_PACKAGE_LIBUPNP help Version 1.8.x of libupnp (i.e. libupnp18) has been removed because it will never be fixed against CallStranger a.k.a. CVE-2020-12695. The libupnp package (which has been updated to version 1.14.x) has been selected instead. config BR2_PACKAGE_BOA bool "boa package removed" select BR2_LEGACY help The boa package was removed as it is affected by multiple CVEs and is not maintained anymore (no release since 2005). config BR2_PACKAGE_LINUX_FIRMWARE_IMX_SDMA bool "imx sdma firmware is provided by firmware-imx" select BR2_LEGACY select BR2_PACKAGE_FREESCALE_IMX select BR2_PACKAGE_FIRMWARE_IMX help linux-firmware provide the same firmware as firmware-imx. We prefer using firmware-imx as the only provider. config BR2_GDB_VERSION_8_2 bool "gdb 8.2.x has been removed" select BR2_LEGACY help gdb 8.2 support has been removed, you can use a newer version such as 8.3 or more recent. config BR2_PACKAGE_HOST_RCW bool "rcw package was renamed to qoriq-rcw" select BR2_PACKAGE_HOST_QORIQ_RCW select BR2_LEGACY help The rcw package was specific to the QorIQ platform, so it has been renamed to qoriq-rcw, to leave room for other *-rcw packages for other platforms. config BR2_KERNEL_HEADERS_5_9 bool "kernel headers version 5.9.x are no longer supported" select BR2_LEGACY help Version 5.9.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_5_8 bool "kernel headers version 5.8.x are no longer supported" select BR2_LEGACY help Version 5.8.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_powerpc_601 bool "PowerPC 601 support removed" select BR2_LEGACY help The support for the PowerPC 601 processors has been removed. config BR2_PACKAGE_TI_SGX_LIBGBM bool "ti-sgx-libgbm support removed" select BR2_LEGACY help TI has merged the ti-sgx-libgbm package with the ti-sgx-um package config BR2_PACKAGE_IPSEC_TOOLS bool "ipsec-tools package was removed" select BR2_LEGACY help This package has been removed as it has security issues and has been abandoned since 2014. comment "Legacy options removed in 2020.11" config BR2_PACKAGE_GPSD_FIXED_PORT_SPEED bool "compile with fixed serial port speed" select BR2_LEGACY help Since gpsd 3.20, GPSD_FIXED_PORT_SPEED is replaced by runtime option --speed. config BR2_PACKAGE_GPSD_RECONFIGURE bool "allow gpsd to change device settings" select BR2_LEGACY help Since gpsd 3.21, GPSD_RECONFIGURE is replaced by runtime option --passive. config BR2_PACKAGE_GPSD_CONTROLSEND bool "allow gpsctl/gpsmon to change device settings" select BR2_LEGACY help Option removed in gpsd 3.21 config BR2_PACKAGE_OPENCV bool "opencv package was removed" select BR2_LEGACY help This package has been removed, use opencv3 instead. config BR2_PACKAGE_LIBCROCO bool "libcroco package was removed" select BR2_LEGACY help This package has been removed as it is affected by several security issues such as CVE-2020-12825 which will never be fixed as libcroco has been archived. config BR2_PACKAGE_BELLAGIO bool "bellagio package was removed" select BR2_LEGACY help This package has been removed as it is not maintained anymore (no release since 2011). config BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY bool "systemd-journal-gatewayd now in systemd-journal-remote" select BR2_LEGACY select BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE help All system journal remote programs are now enabled using BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE. config BR2_TARGET_UBOOT_BOOT_SCRIPT bool "u-boot script generation was moved" select BR2_LEGACY select BR2_PACKAGE_HOST_UBOOT_TOOLS select BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT help Migrated U-Boot script generation to uboot-tools # Note: BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE is still referenced from # package/uboot-tools/Config.in config BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE string "The uboot script source string has been renamed" depends on BR2_TARGET_UBOOT_BOOT_SCRIPT help Migrated U-Boot script generation to uboot-tools. New option is named BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE config BR2_TARGET_UBOOT_ENVIMAGE bool "u-boot env generation was moved" select BR2_LEGACY select BR2_PACKAGE_HOST_UBOOT_TOOLS select BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE help Migrated U-Boot env generation to uboot-tools # Note: BR2_TARGET_UBOOT_ENVIMAGE_SOURCE is still referenced from # package/uboot-tools/Config.in config BR2_TARGET_UBOOT_ENVIMAGE_SOURCE string "The uboot env image source string has been renamed" depends on BR2_TARGET_UBOOT_ENVIMAGE help Migrated U-Boot env generation to uboot-tools. New option is named BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE # Note: BR2_TARGET_UBOOT_ENVIMAGE_SIZE is still referenced from # package/uboot-tools/Config.in config BR2_TARGET_UBOOT_ENVIMAGE_SIZE string "The uboot env image size string has been renamed" depends on BR2_TARGET_UBOOT_ENVIMAGE help Migrated U-Boot env generation to uboot-tools. New option is named BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE config BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT bool "u-boot env generation was moved" depends on BR2_TARGET_UBOOT_ENVIMAGE select BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_REDUNDANT help Migrated U-Boot env generation to uboot-tools config BR2_PACKAGE_KISMET_CLIENT bool "kismet client support was removed" select BR2_LEGACY help Kismet client support was removed since version 2019-04-R1. config BR2_PACKAGE_KISMET_DRONE bool "kismet drone support was removed" select BR2_LEGACY help Kismet drone support was removed since version 2019-04-R1. config BR2_GCC_VERSION_7_X bool "gcc 7.x support removed" select BR2_LEGACY help Support for gcc version 7.x has been removed. The current default version (9.x or later) has been selected instead. config BR2_PACKAGE_GST1_VALIDATE bool "gst1-validate was moved to gst1-devtools" select BR2_PACKAGE_GST1_DEVTOOLS select BR2_LEGACY help This package has been removed, use gst1-devtools instead. config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_YADIF bool "gst1-plugins-bad yadif plugin was removed" select BR2_LEGACY select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DEINTERLACE help This plugin was removed with gst1-plugins-bad-1.18.0, the same functionality has moved to gst1-plugins-good deinterlace plugin (method=yadif). config BR2_PACKAGE_GQVIEW bool "gqview package was removed" select BR2_LEGACY help This package has been removed as it is not maintained anymore (no release since 2006). config BR2_PACKAGE_WESTON_IMX bool "weston-imx package was removed" select BR2_LEGACY help This package has been removed, use weston instead. config BR2_KERNEL_HEADERS_5_7 bool "kernel headers version 5.7.x are no longer supported" select BR2_LEGACY help Version 5.7.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_PACKAGE_TINYHTTPD bool "tinyhttpd package removed" select BR2_LEGACY help The tinyhttpd package was removed as it is affected by CVE-2002-1819 and is not maintained anymore (no release since 2001). config BR2_PACKAGE_XSERVER_XORG_SERVER_AIGLX bool "X.org Enable AIGLX Extension" select BR2_LEGACY help AIGLX Extension was removed in X.org X server version 1.19.0 config BR2_PACKAGE_AMD_CATALYST bool "amd-catalyst" select BR2_LEGACY help Current X.org server is incompatible with this driver. config BR2_PACKAGE_NVIDIA_TEGRA23 bool "nvidia-tegra23 package removed" select BR2_LEGACY help Current X.org server is incompatible with this driver. config BR2_GDB_VERSION_8_1 bool "gdb 8.1.x has been removed" select BR2_LEGACY help The 8.1.x version of gdb has been removed. Use a newer version instead. comment "Legacy options removed in 2020.08" config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 bool "toolchain-external-codesourcery-amd64 removed" select BR2_LEGACY help The CodeSourcery toolchain for AMD64, in version 2016.11 was dropped, due to it using a too old gcc 6.2.0 compiler which caused issues compiling a number of recent packages (e.g. Boost). CodeSourcery has stopped making newer versions of this toolchain publicly available, so it was not possible to update it. config BR2_KERNEL_HEADERS_5_6 bool "kernel headers version 5.6.x are no longer supported" select BR2_LEGACY help Version 5.6.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_5_5 bool "kernel headers version 5.5.x are no longer supported" select BR2_LEGACY help Version 5.5.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_BINUTILS_VERSION_2_31_X bool "binutils version 2.31.1 support removed" select BR2_LEGACY help Support for binutils version 2.31.1 has been removed. The current default version (2.33.1 or later) has been selected instead. config BR2_PACKAGE_KODI_PERIPHERAL_STEAMCONTROLLER bool "kodi-peripheral-steamcontroller package was removed" select BR2_LEGACY help This package is broken. comment "Legacy options removed in 2020.05" config BR2_PACKAGE_WIRINGPI bool "wiringpi package removed" select BR2_LEGACY help The author of wiringpi has deprecated the package, and completely removed the git tree that was serving the sources, with this message: Please look for alternatives for wiringPi config BR2_PACKAGE_PYTHON_PYCRYPTO bool "python-pycrypto package removed" select BR2_LEGACY help This package has been removed, use python-pycryptodomex instead. config BR2_PACKAGE_MTDEV2TUIO bool "mtdev2tuio package removed" select BR2_LEGACY help The mtdev2tuio package was removed as it breaks the builds every now and then and is not maintained upstream. config BR2_PACKAGE_EZXML bool "ezxml package removed" select BR2_LEGACY help The ezXML package was removed as it is affected by several CVEs and is not maintained anymore (no release since 2006). config BR2_PACKAGE_COLLECTD_LVM bool "lvm support in collectd was removed" select BR2_LEGACY help collectd removed LVM plugin, liblvm2app has been deprecated config BR2_PACKAGE_PYTHON_PYASN bool "duplicate python-pyasn1 package removed" select BR2_LEGACY select BR2_PACKAGE_PYTHON_PYASN1 help This package was a duplicate of python-pyasn1. config BR2_PACKAGE_PYTHON_PYASN_MODULES bool "duplicate python-pyasn1-modules package removed" select BR2_LEGACY select BR2_PACKAGE_PYTHON_PYASN1_MODULES help This package was a duplicate of python-pyasn1-modules. config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA6174 bool "duplicate QCA6174 firmware symbol removed" select BR2_LEGACY select BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174 help This config symbol duplicates existing symbol for QCA6174 firmware. config BR2_PACKAGE_QT5CANVAS3D bool "qt5canvas3d was removed" select BR2_LEGACY help This Qt5 module was removed by the upstream Qt project since Qt 5.13, so the corresponding Buildroot package was removed as well. config BR2_PACKAGE_KODI_LIBTHEORA bool "libtheora support in Kodi was removed" select BR2_LEGACY help Kodi does not need libtheora config BR2_PACKAGE_CEGUI06 bool "BR2_PACKAGE_CEGUI06 was renamed" select BR2_PACKAGE_CEGUI select BR2_LEGACY help The BR2_PACKAGE_CEGUI06 config symbol was renamed to BR2_PACKAGE_CEGUI. config BR2_GCC_VERSION_5_X bool "gcc 5.x support removed" select BR2_LEGACY help Support for gcc version 5.x has been removed. The current default version (8.x or later) has been selected instead. comment "Legacy options removed in 2020.02" config BR2_PACKAGE_JAMVM bool "jamvm removed" select BR2_LEGACY help JamVM has not had a release since 2014 and is unmaintained. config BR2_PACKAGE_CLASSPATH bool "classpath removed" select BR2_LEGACY help GNU Classpath package was removed. The last upstream release was in 2012 and there hasn't been a commit since 2016. config BR2_PACKAGE_QT5_VERSION_5_6 bool "qt 5.6 support removed" select BR2_LEGACY help Support for Qt 5.6 is EOL and has been removed. The current version (5.12 or later) has been selected instead. config BR2_PACKAGE_CURL bool "BR2_PACKAGE_CURL was renamed" select BR2_PACKAGE_LIBCURL_CURL select BR2_LEGACY help The BR2_PACKAGE_CURL config symbol was renamed to BR2_PACKAGE_LIBCURL_CURL. config BR2_PACKAGE_GSTREAMER bool "gstreamer-0.10 removed" select BR2_LEGACY help Gstreamer-0.10 package was removed. It has been deprecated upstream since 2012, and is missing a lot of features and fixes compared to gstreamer-1.x. config BR2_PACKAGE_NVIDIA_TEGRA23_BINARIES_GSTREAMER_PLUGINS bool "nvidia-tegra23 binaries gstreamer 0.10.x support removed" select BR2_LEGACY help Gstreamer 0.10.x is no longer available in Buildroot, so neither is the support in nvidia-tegra23 binaries. config BR2_PACKAGE_NVIDIA_TEGRA23_BINARIES_NV_SAMPLE_APPS bool "nvidia-tegra23 binaries sample apps removed" select BR2_LEGACY help Gstreamer 0.10.x is no longer available in Buildroot, so neither is the support in nvidia-tegra23 binaries. config BR2_PACKAGE_FREERDP_GSTREAMER bool "freerdp gstreamer 0.10.x support removed" select BR2_LEGACY help Gstreamer 0.10.x is no longer available in Buildroot, so neither is the support in freerdp. config BR2_PACKAGE_OPENCV3_WITH_GSTREAMER bool "opencv3 gstreamer 0.10.x support removed" select BR2_LEGACY help Gstreamer 0.10.x is no longer available in Buildroot, so neither is the support in opencv3. config BR2_PACKAGE_OPENCV_WITH_GSTREAMER bool "opencv gstreamer 0.10.x support removed" select BR2_LEGACY help Gstreamer 0.10.x is no longer available in Buildroot, so neither is the support in opencv. config BR2_PACKAGE_LIBPLAYER bool "libplayer package was removed" select BR2_LEGACY help The libplayer package was removed. The latest release is from 2010 and none of the backends are available in Buildroot any more. config BR2_GCC_VERSION_OR1K bool "gcc 5.x fork for or1k has been removed" select BR2_LEGACY help Support for gcc 5.x for or1k has been removed. The current default version (9.x or later) has been selected instead. config BR2_PACKAGE_BLUEZ_UTILS bool "bluez-utils was removed" select BR2_LEGACY select BR2_PACKAGE_BLUEZ5_UTILS if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 \ && BR2_TOOLCHAIN_HAS_SYNC_4 help The bluez-utils (BlueZ 4.x) package was removed as it is deprecated since a long time. As an alternative, the bluez5-utils (BlueZ 5.x) has been automatically selected in your configuration. config BR2_PACKAGE_GADGETFS_TEST bool "gadgetfs-test was removed" select BR2_LEGACY help The gadgetfs-test package was removed. Gadgetfs has been deprecated in favour of functionfs. Consider using gadget-tool (gt) instead. config BR2_PACKAGE_FIS bool "fis was removed" select BR2_LEGACY help The fis package was removed. config BR2_PACKAGE_REFPOLICY_POLICY_VERSION string "refpolicy policy version" help The refpolicy policy version option has been moved to the libsepol package. config BR2_PACKAGE_REFPOLICY_POLICY_VERSION_WRAP bool default y if BR2_PACKAGE_REFPOLICY_POLICY_VERSION != "" select BR2_LEGACY config BR2_PACKAGE_CELT051 bool "celt051 package was removed" select BR2_LEGACY select BR2_PACKAGE_OPUS help The celt051 package was removed as it is now obsolete since the CELT codec has been merged into the IETF Opus codec. As a result, the opus package has been automatically selected in your configuration. config BR2_PACKAGE_WIREGUARD bool "wireguard package renamed" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 select BR2_LEGACY select BR2_PACKAGE_WIREGUARD_LINUX_COMPAT if BR2_LINUX_KERNEL select BR2_PACKAGE_WIREGUARD_TOOLS help The wireguard package has been renamed to wireguard-tools for the userspace tooling and wireguard-linux-compat for the kernel side for legacy (<5.6) kernels to match upstream. config BR2_PACKAGE_PERL_NET_PING bool "perl-net-ping was removed" select BR2_LEGACY help Net::Ping is a Perl core module (ie. bundled with perl). config BR2_PACKAGE_PERL_MIME_BASE64 bool "perl-mime-base64 was removed" select BR2_LEGACY help MIME::Base64 is a Perl core module (ie. bundled with perl). config BR2_PACKAGE_PERL_DIGEST_MD5 bool "perl-digest-md5 was removed" select BR2_LEGACY help Digest::MD5 is a Perl core module (ie. bundled with perl). config BR2_PACKAGE_ERLANG_P1_ICONV bool "erlang-p1-iconv has been removed" select BR2_LEGACY help The erlang-p1-iconv package was no longer used by ejabberd, and was no longer maintained upstream, so it was removed. config BR2_KERNEL_HEADERS_5_3 bool "kernel headers version 5.3.x are no longer supported" select BR2_LEGACY help Version 5.3.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_PACKAGE_PYTHON_SCAPY3K bool "python-scapy3k is replaced by python-scapy" select BR2_LEGACY select BR2_PACKAGE_PYTHON_SCAPY help python-scapy3k has been deprecated, since python-scapy has gained Python 3 support. Use BR2_PACKAGE_PYTHON_SCAPY instead. config BR2_BINUTILS_VERSION_2_30_X bool "binutils version 2.30 support removed" select BR2_LEGACY help Support for binutils version 2.30 has been removed. The current default version (2.31 or later) has been selected instead. config BR2_PACKAGE_RPI_USERLAND_START_VCFILED bool "rpi-userland start vcfiled was removed" select BR2_LEGACY help The vcfiled support was removed upstream. comment "Legacy options removed in 2019.11" config BR2_PACKAGE_OPENVMTOOLS_PROCPS bool "openvmtools' procps support was removed" select BR2_LEGACY help Upstream stopped supporting this option a while ago. config BR2_PACKAGE_ALLJOYN bool "alljoyn was removed" select BR2_LEGACY help The alljoyn framework is dead config BR2_PACKAGE_ALLJOYN_BASE bool "alljoyn-base was removed" select BR2_LEGACY help The alljoyn framework is dead config BR2_PACKAGE_ALLJOYN_BASE_CONTROLPANEL bool "alljoyn-base control panel was removed" select BR2_LEGACY help The alljoyn framework is dead config BR2_PACKAGE_ALLJOYN_BASE_NOTIFICATION bool "alljoyn-base notification was removed" select BR2_LEGACY help The alljoyn framework is dead config BR2_PACKAGE_ALLJOYN_BASE_ONBOARDING bool "alljoyn-base onboarding was removed" select BR2_LEGACY help The alljoyn framework is dead config BR2_PACKAGE_ALLJOYN_TCL_BASE bool "alljoyn-tcl-base was removed" select BR2_LEGACY help The alljoyn framework is dead config BR2_PACKAGE_ALLJOYN_TCL bool "alljoyn-tcl was removed" select BR2_LEGACY help The alljoyn framework is dead config BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS string "toolchain-external extra libs option has been renamed" help The option BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS has been renamed to BR2_TOOLCHAIN_EXTRA_LIBS. config BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS_WRAP bool default y if BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS != "" select BR2_LEGACY config BR2_PACKAGE_PYTHON_PYSNMP_APPS bool "python-pysnmp-apps was removed" select BR2_LEGACY select BR2_PACKAGE_SNMPCLITOOLS help Following upstream changes, the python-pysnmp-apps package has been removed, and snmpclitools should be used as a replacement. config BR2_KERNEL_HEADERS_5_2 bool "kernel headers version 5.2.x are no longer supported" select BR2_LEGACY help Version 5.2.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_TARGET_RISCV_PK bool "riscv-pk was removed" select BR2_LEGACY help The RISC-V Proxy Kernel (pk) and Berkley Boot Loader (BBL) have been replaced with OpenSBI. config BR2_PACKAGE_SQLITE_STAT3 bool "sqlite stat3 support was removed" select BR2_LEGACY help Upstream removed the support for stat3. config BR2_KERNEL_HEADERS_5_1 bool "kernel headers version 5.1.x are no longer supported" select BR2_LEGACY help Version 5.1.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_PACKAGE_DEVMEM2 bool "devmem2 package was removed" select BR2_LEGACY help Use the the Busybox devmem utility, instead, which provides the same functionality. config BR2_PACKAGE_USTR bool "ustr package removed" select BR2_LEGACY help The 'ustr' package was only used by SELinux libsemanage, but since SELinux 2.7, ustr is no longer used. Therefore, we removed this package from Buildroot. config BR2_PACKAGE_KODI_SCREENSAVER_PLANESTATE bool "kodi-screensaver-planestate package was removed" select BR2_LEGACY help This package is incompatible with Kodi 18.x. config BR2_PACKAGE_KODI_VISUALISATION_WAVEFORHUE bool "kodi-visualisation-waveforhue package was removed" select BR2_LEGACY help This package is incompatible with Kodi 18.x. config BR2_PACKAGE_KODI_AUDIODECODER_OPUS bool "kodi-audiodecoder-opus package was removed" select BR2_LEGACY help This package is incompatible with Kodi 18.x. config BR2_PACKAGE_MESA3D_OSMESA bool "mesa OSMesa option renamed" select BR2_PACKAGE_MESA3D_OSMESA_CLASSIC if BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST select BR2_LEGACY help The option was renamed in order to match the naming used by the meson buildsystem. config BR2_PACKAGE_HOSTAPD_DRIVER_RTW bool "hostapd rtl871xdrv driver removed" select BR2_LEGACY help Since the update of hostapd to 2.9, the patch provided for the rtl871xdrv no longer works, although it applies. Moreover, AP support for Realtek chips is broken anyway in kernels > 4.9. Therefore, this option has been removed. config BR2_PACKAGE_WPA_SUPPLICANT_DBUS_NEW bool "new dbus support option in wpa_supplicant was renamed" select BR2_PACKAGE_WPA_SUPPLICANT_DBUS if BR2_TOOLCHAIN_HAS_THREADS select BR2_LEGACY help The new dbus support option was renamed. config BR2_PACKAGE_WPA_SUPPLICANT_DBUS_OLD bool "old dbus support in wpa_supplicant was removed" select BR2_LEGACY help The old dbus support was removed. comment "Legacy options removed in 2019.08" config BR2_TARGET_TS4800_MBRBOOT bool "ts4800-mbrboot package was removed" select BR2_LEGACY help The defconfig for the TS4800 platform has been removed, so the ts4800-mbrboot package, containing the boot code for this specific platform has been removed as welL. config BR2_PACKAGE_LIBAMCODEC bool "liamcodec package was removed" select BR2_LEGACY help Support for odroidc2 based systems was removed, making the libamcodec package useless. config BR2_PACKAGE_ODROID_SCRIPTS bool "odroid-scripts package was removed" select BR2_LEGACY help Support for odroidc2 based systems was removed, making the odroid-scripts package useless. config BR2_PACKAGE_ODROID_MALI bool "odroid-mali package was removed" select BR2_LEGACY help Support for odroidc2 based systems was removed, making the odroid-mali package useless. config BR2_PACKAGE_KODI_PLATFORM_AML bool "Kodi AMLogic support was removed" select BR2_LEGACY help Support for AMLogic was removed due to the removal of the odroidc2 defconfig. config BR2_GCC_VERSION_6_X bool "gcc 6.x support removed" select BR2_LEGACY help Support for gcc version 6.x has been removed. The current default version (8.x or later) has been selected instead. config BR2_GCC_VERSION_4_9_X bool "gcc 4.9.x support removed" select BR2_LEGACY help Support for gcc version 4.9.x has been removed. The current default version (8.x or later) has been selected instead. config BR2_GDB_VERSION_7_12 bool "gdb 7.12.x has been removed" select BR2_LEGACY help The 7.12.x version of gdb has been removed. Use a newer version instead. config BR2_PACKAGE_XAPP_MKFONTDIR bool "mkfontdir is now included in xapp_mkfontscale" select BR2_PACKAGE_XAPP_MKFONTSCALE select BR2_LEGACY help xapp_mkfontscale now includes the mkfontdir script previously distributed separately for compatibility with older X11 versions. config BR2_GDB_VERSION_8_0 bool "gdb 8.0.x has been removed" select BR2_LEGACY help The 8.0.x version of gdb has been removed. Use a newer version instead. config BR2_KERNEL_HEADERS_4_20 bool "kernel headers version 4.20.x are no longer supported" select BR2_LEGACY help Version 4.20.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_5_0 bool "kernel headers version 5.0.x are no longer supported" select BR2_LEGACY help Version 5.0.x of the Linux kernel headers are no longer maintained upstream and are now removed. comment "Legacy options removed in 2019.05" config BR2_CSKY_DSP bool "C-SKY DSP support removed" select BR2_LEGACY help C-SKY DSP instruction support for ck810 / ck807 was removed, as it was no longer supported in C-SKY gcc. Perhaps the VDSP instructions should be used instead, using the BR2_CSKY_VDSP option. config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_COMPOSITOR bool "compositor moved to gst1-plugins-base" select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_COMPOSITOR select BR2_LEGACY help The gst1-plugins-bad compositor plugin has moved to gst1-plugins-base. config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IQA bool "gst-plugins-bad IQA option was removed" select BR2_LEGACY help The gst1-plugins-bad IQA option was removed. config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENCV bool "gst-plugins-bad opencv option was removed" select BR2_LEGACY help The gst1-plugins-bad opencv option was removed because buildroot does not have the opencv_contrib package which is required for the bgsegm module which gst1-plugins-bad now requires along with opencv3. config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_STEREO bool "stereo was merged into audiofx in gst1-plugins-good" select BR2_LEGACY select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOFX help The gst1-plugins-bad stereo plugin has merged with the gst1-plugins-base audiofx plugin. config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD bool "gst-plugins-bad vcd plugin was removed." select BR2_LEGACY help The gst1-plugins-bad vcd plugin was removed. config BR2_PACKAGE_LUNIT bool "lunit package removed" select BR2_LEGACY select BR2_PACKAGE_LUA_LUNITX help The lunit package was removed in favor of its fork lunitx, which supports all versions of Lua. config BR2_PACKAGE_FFMPEG_FFSERVER bool "ffmpeg ffserver removed" select BR2_LEGACY help On July 10th, 2016, ffserver program has been dropped. config BR2_PACKAGE_LIBUMP bool "libump package removed" select BR2_LEGACY help The libump package was removed, it was only used as a dependency of sunxi-mali, which itself was removed. config BR2_PACKAGE_SUNXI_MALI bool "sunxi-mali package removed" select BR2_LEGACY select BR2_PACKAGE_SUNXI_MALI_MAINLINE help The sunxi-mali package was removed, as the sunxi-mali-mainline package replaces it for mainline kernels on Allwinner platforms. config BR2_BINUTILS_VERSION_2_29_X bool "binutils version 2.29 support removed" select BR2_LEGACY help Support for binutils version 2.29 has been removed. The current default version (2.31 or later) has been selected instead. config BR2_BINUTILS_VERSION_2_28_X bool "binutils version 2.28 support removed" select BR2_LEGACY help Support for binutils version 2.28 has been removed. The current default version (2.31 or later) has been selected instead. config BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_APEXSINK bool "gst-plugins-bad apexsink option removed" select BR2_LEGACY help The gst-plugins-bad apexsink option was removed. comment "Legacy options removed in 2019.02" config BR2_PACKAGE_QT bool "qt package removed" select BR2_LEGACY help The qt package was removed. config BR2_PACKAGE_QTUIO bool "qtuio package removed" select BR2_LEGACY help The qtuio package was removed. config BR2_PACKAGE_PINENTRY_QT4 bool "pinentry-qt4 option removed" select BR2_LEGACY help The pinentry-qt4 option was removed. config BR2_PACKAGE_POPPLER_QT bool "poppler qt option removed" select BR2_LEGACY help The poppler qt option was removed. config BR2_PACKAGE_OPENCV3_WITH_QT bool "opencv3 qt backend option removed" select BR2_LEGACY help The opencv3 qt backend option was removed. config BR2_PACKAGE_OPENCV_WITH_QT bool "opencv qt backend option removed" select BR2_LEGACY help The opencv qt backend option was removed. config BR2_PACKAGE_AMD_CATALYST_CCCLE bool "catalyst control center option removed" select BR2_LEGACY help The AMD Catalyst Control Center option was removed. config BR2_PACKAGE_SDL_QTOPIA bool "sdl qtopia video driver option removed" select BR2_LEGACY help The SDL QTopia video driver option was removed. config BR2_PACKAGE_PYTHON_PYQT bool "python-pyqt package removed" select BR2_LEGACY help The python-pyqt package was removed. Consider python-pyqt5 instead. config BR2_PACKAGE_LUACRYPTO bool "luacrypto package removed" select BR2_LEGACY help The luacrypto package was removed. Consider luaossl instead. config BR2_PACKAGE_TN5250 bool "tn5250 package removed" select BR2_LEGACY help The tn5250 package was removed. config BR2_PACKAGE_BOOST_SIGNALS bool "Boost signals removed" select BR2_LEGACY help Its removal was announced in boost 1.68 and its deprecation was announced in 1.54. Users are encouraged to use Signals2 instead. config BR2_PACKAGE_FFTW_PRECISION_SINGLE bool "single" select BR2_LEGACY select BR2_PACKAGE_FFTW_SINGLE help This option has been removed in favor of BR2_PACKAGE_FFTW_SINGLE. config BR2_PACKAGE_FFTW_PRECISION_DOUBLE bool "double" select BR2_LEGACY select BR2_PACKAGE_FFTW_DOUBLE help This option has been removed in favor of BR2_PACKAGE_FFTW_DOUBLE. config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE bool "long double" depends on !(BR2_TOOLCHAIN_BUILDROOT_UCLIBC && \ (BR2_arm || BR2_mips || BR2_mipsel)) select BR2_LEGACY select BR2_PACKAGE_FFTW_LONG_DOUBLE help This option has been removed in favor of BR2_PACKAGE_FFTW_LONG_DOUBLE. config BR2_PACKAGE_FFTW_PRECISION_QUAD bool "quad" depends on (BR2_i386 || BR2_x86_64) && BR2_USE_WCHAR select BR2_LEGACY select BR2_PACKAGE_FFTW_QUAD help This option has been removed in favor of BR2_PACKAGE_FFTW_QUAD. config BR2_PACKAGE_LUA_5_2 bool "Lua 5.2.x version removed" select BR2_LEGACY select BR2_PACKAGE_LUA_5_3 help The Lua 5.2.x version was removed. config BR2_TARGET_GENERIC_PASSWD_MD5 bool "target passwd md5 format support has been removed" select BR2_LEGACY help The default has been moved to SHA256 and all C libraries now support that method by default comment "Legacy options removed in 2018.11" config BR2_TARGET_XLOADER bool "xloader has been removed" select BR2_LEGACY help The package has been removed as u-boot SPL provides similar functionality config BR2_PACKAGE_TIDSP_BINARIES bool "tidsp-binaries package removed" select BR2_LEGACY help The tidsp-binaries package was removed. config BR2_PACKAGE_DSP_TOOLS bool "dsp-tools package removed" select BR2_LEGACY help The dsp-tools package was removed. config BR2_PACKAGE_GST_DSP bool "gst-dsp package removed" select BR2_LEGACY help The gst-dsp package was removed. config BR2_PACKAGE_BOOTUTILS bool "bootutils package removed" select BR2_LEGACY help The bootutils package was removed. config BR2_PACKAGE_EXPEDITE bool "expedite package has been removed" select BR2_LEGACY help expedite is not actively maintained anymore. https://sourceforge.net/p/enlightenment/mailman/message/36428571 config BR2_PACKAGE_MESA3D_OPENGL_TEXTURE_FLOAT bool "mesa3d opengl texture float option removed" select BR2_LEGACY help mesa3d now unconditionally enables floating-point textures, as the corresponding patent has expired. config BR2_KERNEL_HEADERS_4_10 bool "kernel headers version 4.10.x are no longer supported" select BR2_LEGACY help Version 4.10.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_4_11 bool "kernel headers version 4.11.x are no longer supported" select BR2_LEGACY help Version 4.11.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_4_12 bool "kernel headers version 4.12.x are no longer supported" select BR2_LEGACY help Version 4.12.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_4_13 bool "kernel headers version 4.13.x are no longer supported" select BR2_LEGACY help Version 4.13.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_4_15 bool "kernel headers version 4.15.x are no longer supported" select BR2_LEGACY help Version 4.15.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_4_17 bool "kernel headers version 4.17.x are no longer supported" select BR2_LEGACY help Version 4.17.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_PACKAGE_LIBNFTNL_XML bool "libnftl no longer supports XML output" select BR2_LEGACY help libnftnl removed integration with libmxml. config BR2_KERNEL_HEADERS_3_2 bool "kernel headers version 3.2.x are no longer supported" select BR2_LEGACY help Version 3.2.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_4_1 bool "kernel headers version 4.1.x are no longer supported" select BR2_LEGACY help Version 4.1.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_4_16 bool "kernel headers version 4.16.x are no longer supported" select BR2_LEGACY help Version 4.16.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_4_18 bool "kernel headers version 4.18.x are no longer supported" select BR2_LEGACY help Version 4.18.x of the Linux kernel headers are no longer maintained upstream and are now removed. ############################################################################### comment "Legacy options removed in 2018.08" config BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT bool "docker-engine static client option renamed" select BR2_LEGACY select BR2_PACKAGE_DOCKER_CLI_STATIC help BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT has been renamed to BR2_PACKAGE_DOCKER_CLI_STATIC, following the package split of docker-engine and docker-cli. config BR2_PACKAGE_XPROTO_APPLEWMPROTO bool "xproto-applewmproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-applewmproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_BIGREQSPROTO bool "xproto-bigreqsproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-bigreqsproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_COMPOSITEPROTO bool "xproto-compositeproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-compositeproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_DAMAGEPROTO bool "xproto-dameproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-dameproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_DMXPROTO bool "xproto-dmxproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-dmxproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_DRI2PROTO bool "xproto-dri2proto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-dri2proto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_DRI3PROTO bool "xproto-dri3proto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-dri3proto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_FIXESPROTO bool "xproto-fixesproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-fixesproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_FONTCACHEPROTO bool "xproto-fontcacheproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-fontcacheproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_FONTSPROTO bool "xproto-fontsproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-fontsproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_GLPROTO bool "xproto-glproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-glproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_INPUTPROTO bool "xproto-inputproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-inputproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_KBPROTO bool "xproto-kbproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-kbproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_PRESENTPROTO bool "xproto-presentproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-presentproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_RANDRPROTO bool "xproto-randrproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-randrproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_RECORDPROTO bool "xproto-recordproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-recordproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_RENDERPROTO bool "xproto-renderproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-renderproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_RESOURCEPROTO bool "xproto-resourceproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-resourceproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_SCRNSAVERPROTO bool "xproto-scrnsaverprot package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-scrnsaverprot package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_VIDEOPROTO bool "xproto-videoproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-videoproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_WINDOWSWMPROTO bool "xproto-windowswmproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-windowswmproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_XCMISCPROTO bool "xproto-xcmiscproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-xcmiscproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_XEXTPROTO bool "xproto-xextproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-xextproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_XF86BIGFONTPROTO bool "xproto-xf86bigfontproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-xf86bigfontproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_XF86DGAPROTO bool "xproto-xf86dgaproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-xf86dgaproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_XF86DRIPROTO bool "xproto-xf86driproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-xf86driproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_XF86VIDMODEPROTO bool "xproto-xf86vidmodeproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-xf86vidmodeproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_XINERAMAPROTO bool "xproto-xineramaproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-xineramaproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_XPROTO bool "xproto-xproto package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-xproto package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_XPROTO_XPROXYMANAGEMENTPROTOCOL bool "xproto-xproxymanagementprotocol package replaced by xorgproto" select BR2_LEGACY select BR2_PACKAGE_XORGPROTO help The xproto-xproxymanagementprotocol package has been replaced by the xorgproto package, which combines all xproto_* packages. config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_OPENGL bool "gst1-plugins-bad opengl option moved to gst1-plugins-base" select BR2_LEGACY select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL help The opengl option has been moved from gst1-plugins-bad to gst1-plugins-base. config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_GLES2 bool "gst1-plugins-bad gles2 option moved to gst1-plugins-base" select BR2_LEGACY select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_GLES2 help The gles2 option has been moved from gst1-plugins-bad to gst1-plugins-base. config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_GLX bool "gst1-plugins-bad glx option moved to gst1-plugins-base" select BR2_LEGACY select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_GLX help The glx option has been moved from gst1-plugins-bad to gst1-plugins-base. config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_EGL bool "gst1-plugins-bad egl option moved to gst1-plugins-base" select BR2_LEGACY select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL help The egl option has been moved from gst1-plugins-bad to gst1-plugins-base. config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_X11 bool "gst1-plugins-bad x11 option moved to gst1-plugins-base" select BR2_LEGACY select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_X11 help The x11 option has been moved from gst1-plugins-bad to gst1-plugins-base. config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_WAYLAND bool "gst1-plugins-bad wayland option moved to gst1-plugins-base" select BR2_LEGACY select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_WAYLAND help The wayland option has been moved from gst1-plugins-bad to gst1-plugins-base. config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_DISPMANX bool "gst1-plugins-bad dispmanx option moved to gst1-plugins-base" select BR2_LEGACY select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_DISPMANX help The dispmanx option has been moved from gst1-plugins-mad to gst1-plugins-base. config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXER bool "gst1-plugins-bad audiomixer option moved to gst1-plugins-base" select BR2_LEGACY select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOMIXER help The audiomixer option has been moved from gst1-plugins-bad to gst1-plugins-base. config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_LAME bool "gst1-plugins-ugly lame option moved to gst1-plugins-good" select BR2_LEGACY select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LAME help The lame option has been moved from gst1-plugins-ugly to gst1-plugins-good. config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPG123 bool "gst1-plugins-ugly mpg123 option moved to gst1-plugins-good" select BR2_LEGACY select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MPG123 help The mpg123 option has been moved from gst1-plugins-ugly to gst1-plugins-good. config BR2_GDB_VERSION_7_11 bool "gdb 7.11 has been removed" select BR2_LEGACY help The 7.11 version of gdb has been removed. Use a newer version instead. config BR2_GDB_VERSION_7_10 bool "gdb 7.10 has been removed" select BR2_LEGACY help The 7.10 version of gdb has been removed. Use a newer version instead. ############################################################################### comment "Legacy options removed in 2018.05" config BR2_PACKAGE_MEDIAART_BACKEND_NONE bool "libmediaart none backend option renamed" select BR2_LEGACY help For consistency reasons, the option BR2_PACKAGE_MEDIAART_BACKEND_NONE has been renamed to BR2_PACKAGE_LIBMEDIAART_BACKEND_NONE config BR2_PACKAGE_MEDIAART_BACKEND_GDK_PIXBUF bool "libmediaart gdk-pixbuf backend option renamed" select BR2_LEGACY help For consistency reasons, the option BR2_PACKAGE_MEDIAART_BACKEND_GDK_PIXBUF has been renamed to BR2_PACKAGE_LIBMEDIAART_BACKEND_GDK_PIXBUF config BR2_PACKAGE_MEDIAART_BACKEND_GDK_PIXBUF bool "libmediaart qt backend option renamed" select BR2_LEGACY help For consistency reasons, the option BR2_PACKAGE_MEDIAART_BACKEND_QT has been renamed to BR2_PACKAGE_LIBMEDIAART_BACKEND_QT # Note: BR2_PACKAGE_TI_SGX_AM335X is still referenced from # package/ti-sgx-km/Config.in config BR2_PACKAGE_TI_SGX_AM335X bool "ti-sgx-km AM335X option renamed" select BR2_LEGACY help For consistency reasons, the option BR2_PACKAGE_TI_SGX_AM335X has been renamed to BR2_PACKAGE_TI_SGX_KM_AM335X. # Note: BR2_PACKAGE_TI_SGX_AM437X is still referenced from # package/ti-sgx-km/Config.in config BR2_PACKAGE_TI_SGX_AM437X bool "ti-sgx-km AM437X option renamed" select BR2_LEGACY help For consistency reasons, the option BR2_PACKAGE_TI_SGX_AM437X has been renamed to BR2_PACKAGE_TI_SGX_KM_AM437X. # Note: BR2_PACKAGE_TI_SGX_AM4430 is still referenced from # package/ti-sgx-km/Config.in config BR2_PACKAGE_TI_SGX_AM4430 bool "ti-sgx-km AM4430 option renamed" select BR2_LEGACY help For consistency reasons, the option BR2_PACKAGE_TI_SGX_AM4430 has been renamed to BR2_PACKAGE_TI_SGX_KM_AM4430. # Note: BR2_PACKAGE_TI_SGX_AM5430 is still referenced from # package/ti-sgx-km/Config.in config BR2_PACKAGE_TI_SGX_AM5430 bool "ti-sgx-km AM5430 option renamed" select BR2_LEGACY help For consistency reasons, the option BR2_PACKAGE_TI_SGX_AM5430 has been renamed to BR2_PACKAGE_TI_SGX_KM_AM5430. config BR2_PACKAGE_JANUS_AUDIO_BRIDGE bool "janus-gateway audio-bridge option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_AUDIO_BRIDGE help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_AUDIO_BRIDGE has been renamed to BR2_PACKAGE_JANUS_GATEWAY_AUDIO_BRIDGE. config BR2_PACKAGE_JANUS_ECHO_TEST bool "janus-gateway echo-test option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_ECHO_TEST help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_ECHO_TEST has been renamed to BR2_PACKAGE_JANUS_GATEWAY_ECHO_TEST. config BR2_PACKAGE_JANUS_RECORDPLAY bool "janus-gateway recordplay option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_RECORDPLAY help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_RECORDPLAY has been renamed to BR2_PACKAGE_JANUS_GATEWAY_RECORDPLAY. config BR2_PACKAGE_JANUS_SIP_GATEWAY bool "janus-gateway sip-gateway option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_SIP_GATEWAY help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_SIP_GATEWAY has been renamed to BR2_PACKAGE_JANUS_GATEWAY_SIP_GATEWAY. config BR2_PACKAGE_JANUS_STREAMING bool "janus-gateway streaming option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_STREAMING help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_STREAMING has been renamed to BR2_PACKAGE_JANUS_GATEWAY_STREAMING. config BR2_PACKAGE_JANUS_TEXT_ROOM bool "janus-gateway text-room option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_TEXT_ROOM help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_TEXT_ROOM has been renamed to BR2_PACKAGE_JANUS_GATEWAY_TEXT_ROOM. config BR2_PACKAGE_JANUS_VIDEO_CALL bool "janus-gateway video-call option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_VIDEO_CALL help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_VIDEO_CALL has been renamed to BR2_PACKAGE_JANUS_GATEWAY_VIDEO_CALL. config BR2_PACKAGE_JANUS_VIDEO_ROOM bool "janus-gateway video-room option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_VIDEO_ROOM help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_VIDEO_ROOM has been renamed to BR2_PACKAGE_JANUS_GATEWAY_VIDEO_ROOM. config BR2_PACKAGE_JANUS_MQTT bool "janus-gateway mqtt option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_MQTT help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_MQTT has been renamed to BR2_PACKAGE_JANUS_GATEWAY_MQTT. config BR2_PACKAGE_JANUS_RABBITMQ bool "janus-gateway rabbitmq option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_RABBITMQ help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_RABBITMQ has been renamed to BR2_PACKAGE_JANUS_GATEWAY_RABBITMQ. config BR2_PACKAGE_JANUS_REST bool "janus-gateway rest option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_REST help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_REST has been renamed to BR2_PACKAGE_JANUS_GATEWAY_REST. config BR2_PACKAGE_JANUS_UNIX_SOCKETS bool "janus-gateway unix-sockets option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_UNIX_SOCKETS help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_UNIX_SOCKETS has been renamed to BR2_PACKAGE_JANUS_GATEWAY_UNIX_SOCKETS. config BR2_PACKAGE_JANUS_WEBSOCKETS bool "janus-gateway websockets option renamed" select BR2_LEGACY select BR2_PACKAGE_JANUS_GATEWAY_WEBSOCKETS help For consistency reasons, the janus-gateway option BR2_PACKAGE_JANUS_WEBSOCKETS has been renamed to BR2_PACKAGE_JANUS_GATEWAY_WEBSOCKETS. config BR2_PACKAGE_IPSEC_SECCTX_DISABLE bool "ipsec-tools security context disable option renamed" select BR2_LEGACY help For consistency reasons, the option BR2_PACKAGE_IPSEC_SECCTX_DISABLE was renamed to BR2_PACKAGE_IPSEC_TOOLS_SECCTX_DISABLE. config BR2_PACKAGE_IPSEC_SECCTX_ENABLE bool "ipsec-tools SELinux security context enable option renamed" select BR2_LEGACY help For consistency reasons, the option BR2_PACKAGE_IPSEC_SECCTX_ENABLE was renamed to BR2_PACKAGE_IPSEC_TOOLS_SECCTX_ENABLE. config BR2_PACKAGE_IPSEC_SECCTX_KERNEL bool "ipsec-tools kernel security context enable option renamed" select BR2_LEGACY help For consistency reasons, the option BR2_PACKAGE_IPSEC_SECCTX_KERNEL was renamed to BR2_PACKAGE_IPSEC_TOOLS_SECCTX_KERNEL. config BR2_PACKAGE_LIBTFDI_CPP bool "libftdi C++ bindings option renamed" select BR2_LEGACY select BR2_PACKAGE_LIBFTDI_CPP help The option BR2_PACKAGE_LIBTFDI_CPP was renamed to BR2_PACKAGE_LIBFTDI_CPP in order to fix a typo in the option name. config BR2_PACKAGE_JQUERY_UI_THEME_BLACK_TIE bool "jquery-ui-themes option black-tie renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the black-tie theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_BLACK_TIE to BR2_PACKAGE_JQUERY_UI_THEMES_BLACK_TIE. config BR2_PACKAGE_JQUERY_UI_THEME_BLITZER bool "jquery-ui-themes option blitzer renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the blitzer theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_BLITZER to BR2_PACKAGE_JQUERY_UI_THEMES_BLITZER. config BR2_PACKAGE_JQUERY_UI_THEME_CUPERTINO bool "jquery-ui-themes option cupertino renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the cupertino theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_CUPERTINO to BR2_PACKAGE_JQUERY_UI_THEMES_CUPERTINO. config BR2_PACKAGE_JQUERY_UI_THEME_DARK_HIVE bool "jquery-ui-themes option dark-hive renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the dark-hive theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_DARK_HIVE to BR2_PACKAGE_JQUERY_UI_THEMES_DARK_HIVE. config BR2_PACKAGE_JQUERY_UI_THEME_DOT_LUV bool "jquery-ui-themes option dot-luv renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the dot-luv theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_DOT_LUV to BR2_PACKAGE_JQUERY_UI_THEMES_DOT_LUV. config BR2_PACKAGE_JQUERY_UI_THEME_EGGPLANT bool "jquery-ui-themes option eggplant renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the eggplant theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_EGGPLANT to BR2_PACKAGE_JQUERY_UI_THEMES_EGGPLANT. config BR2_PACKAGE_JQUERY_UI_THEME_EXCITE_BIKE bool "jquery-ui-themes option excite-bike renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the excite-bike theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_EXCITE_BIKE to BR2_PACKAGE_JQUERY_UI_THEMES_EXCITE_BIKE. config BR2_PACKAGE_JQUERY_UI_THEME_FLICK bool "jquery-ui-themes option flick renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the flick theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_FLICK to BR2_PACKAGE_JQUERY_UI_THEMES_FLICK. config BR2_PACKAGE_JQUERY_UI_THEME_HOT_SNEAKS bool "jquery-ui-themes option hot-sneaks renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the hot-sneaks theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_HOT_SNEAKS to BR2_PACKAGE_JQUERY_UI_THEMES_HOT_SNEAKS. config BR2_PACKAGE_JQUERY_UI_THEME_HUMANITY bool "jquery-ui-themes option humanity renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the humanity theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_HUMANITY to BR2_PACKAGE_JQUERY_UI_THEMES_HUMANITY. config BR2_PACKAGE_JQUERY_UI_THEME_LE_FROG bool "jquery-ui-themes option le-frog renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the le-frog theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_LE_FROG to BR2_PACKAGE_JQUERY_UI_THEMES_LE_FROG. config BR2_PACKAGE_JQUERY_UI_THEME_MINT_CHOC bool "jquery-ui-themes option mint-choc renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the mint-choc theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_MINT_CHOC to BR2_PACKAGE_JQUERY_UI_THEMES_MINT_CHOC. config BR2_PACKAGE_JQUERY_UI_THEME_OVERCAST bool "jquery-ui-themes option overcast renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the overcast theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_OVERCAST to BR2_PACKAGE_JQUERY_UI_THEMES_OVERCAST. config BR2_PACKAGE_JQUERY_UI_THEME_PEPPER_GRINDER bool "jquery-ui-themes option pepper-grinder renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the pepper-grinder theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_PEPPER_GRINDER to BR2_PACKAGE_JQUERY_UI_THEMES_PEPPER_GRINDER. config BR2_PACKAGE_JQUERY_UI_THEME_REDMOND bool "jquery-ui-themes option redmond renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the redmond theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_REDMOND to BR2_PACKAGE_JQUERY_UI_THEMES_REDMOND. config BR2_PACKAGE_JQUERY_UI_THEME_SMOOTHNESS bool "jquery-ui-themes option smoothness renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the smoothness theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_SMOOTHNESS to BR2_PACKAGE_JQUERY_UI_THEMES_SMOOTHNESS. config BR2_PACKAGE_JQUERY_UI_THEME_SOUTH_STREET bool "jquery-ui-themes option south-street renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the south-street theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_SOUTH_STREET to BR2_PACKAGE_JQUERY_UI_THEMES_SOUTH_STREET. config BR2_PACKAGE_JQUERY_UI_THEME_START bool "jquery-ui-themes option start renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the start theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_START to BR2_PACKAGE_JQUERY_UI_THEMES_START. config BR2_PACKAGE_JQUERY_UI_THEME_SUNNY bool "jquery-ui-themes option sunny renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the sunny theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_SUNNY to BR2_PACKAGE_JQUERY_UI_THEMES_SUNNY. config BR2_PACKAGE_JQUERY_UI_THEME_SWANKY_PURSE bool "jquery-ui-themes option swanky-purse renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the swanky-purse theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_SWANKY_PURSE to BR2_PACKAGE_JQUERY_UI_THEMES_SWANKY_PURSE. config BR2_PACKAGE_JQUERY_UI_THEME_TRONTASTIC bool "jquery-ui-themes option trontastic renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the trontastic theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_TRONTASTIC to BR2_PACKAGE_JQUERY_UI_THEMES_TRONTASTIC. config BR2_PACKAGE_JQUERY_UI_THEME_UI_DARKNESS bool "jquery-ui-themes option ui-darkness renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the ui-darkness theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_UI_DARKNESS to BR2_PACKAGE_JQUERY_UI_THEMES_UI_DARKNESS. config BR2_PACKAGE_JQUERY_UI_THEME_UI_LIGHTNESS bool "jquery-ui-themes option ui-lightness renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the ui-lightness theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_UI_LIGHTNESS to BR2_PACKAGE_JQUERY_UI_THEMES_UI_LIGHTNESS. config BR2_PACKAGE_JQUERY_UI_THEME_VADER bool "jquery-ui-themes option vader renamed" select BR2_LEGACY help For consistency reasons, the jquery-ui-themes option for the vader theme has been renamed from BR2_PACKAGE_JQUERY_UI_THEME_VADER to BR2_PACKAGE_JQUERY_UI_THEMES_VADER. config BR2_PACKAGE_BLUEZ5_PLUGINS_HEALTH bool "bluez5-utils health plugin option renamed" select BR2_LEGACY select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH help For consistency reasons, the option BR2_PACKAGE_BLUEZ5_PLUGINS_HEALTH has been renamed to BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH. config BR2_PACKAGE_BLUEZ5_PLUGINS_MIDI bool "bluez5-utils midi plugin option renamed" select BR2_LEGACY select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MIDI help For consistency reasons, the option BR2_PACKAGE_BLUEZ5_PLUGINS_MIDI has been renamed to BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MIDI. config BR2_PACKAGE_BLUEZ5_PLUGINS_NFC bool "bluez5-utils nfc plugin option renamed" select BR2_LEGACY select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC help For consistency reasons, the option BR2_PACKAGE_BLUEZ5_PLUGINS_NFC has been renamed to BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC. config BR2_PACKAGE_BLUEZ5_PLUGINS_SAP bool "bluez5-utils sap plugin option renamed" select BR2_LEGACY select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP help For consistency reasons, the option BR2_PACKAGE_BLUEZ5_PLUGINS_SAP has been renamed to BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP. config BR2_PACKAGE_BLUEZ5_PLUGINS_SIXAXIS bool "bluez5-utils sixaxis plugin option renamed" select BR2_LEGACY select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SIXAXIS help For consistency reasons, the option BR2_PACKAGE_BLUEZ5_PLUGINS_SIXAXIS has been renamed to BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SIXAXIS. config BR2_PACKAGE_TRANSMISSION_REMOTE bool "transmission remote tool option removed" select BR2_LEGACY select BR2_PACKAGE_TRANSMISSION_DAEMON help Upstream does not provide a separate configure option for the tool transmission-remote, it is built when the transmission daemon has been enabled. Therefore, Buildroot has automatically enabled BR2_PACKAGE_TRANSMISSION_DAEMON for you. config BR2_PACKAGE_LIBKCAPI_APPS bool "libkcapi test applications removed" select BR2_LEGACY select BR2_PACKAGE_LIBKCAPI_HASHER if !BR2_STATIC_LIBS select BR2_PACKAGE_LIBKCAPI_RNGAPP select BR2_PACKAGE_LIBKCAPI_SPEED select BR2_PACKAGE_LIBKCAPI_TEST help Test applications (hasher, rng read, speed-test, test) now have their own configuration options in the libkcapi menu. config BR2_PACKAGE_MPLAYER bool "mplayer package removed" select BR2_LEGACY help The mplayer package was removed. config BR2_PACKAGE_MPLAYER_MPLAYER bool "mplayer package removed" select BR2_LEGACY help The mplayer package was removed. config BR2_PACKAGE_MPLAYER_MENCODER bool "mplayer package removed" select BR2_LEGACY help The mplayer package was removed. config BR2_PACKAGE_LIBPLAYER_MPLAYER bool "mplayer support in libplayer removed" select BR2_LEGACY help The mplayer package was removed. config BR2_PACKAGE_IQVLINUX bool "iqvlinux package removed" select BR2_LEGACY help This package contained a kernel module from Intel, which could only be used together with Intel userspace tools provided under NDA, which also come with the same kernel module. The copy of the kernel module available on SourceForge is provided only to comply with the GPLv2 requirement. Intel engineers were even surprised it even built and were not willing to make any effort to fix their tarball naming to contain a version number. Therefore, it does not make sense for Buildroot to provide such a package. See https://sourceforge.net/p/e1000/bugs/589/ for the discussion. config BR2_BINFMT_FLAT_SEP_DATA bool "binfmt FLAT with separate code and data removed" select BR2_LEGACY help This FLAT binary format was only used on Blackfin, which has been removed. config BR2_bfin bool "Blackfin architecture support removed" select BR2_LEGACY help Following the removal of Blackfin support for the upstream Linux kernel, Buildroot has removed support for this CPU architecture. config BR2_PACKAGE_KODI_ADSP_BASIC bool "kodi-adsp-basic package removed" select BR2_LEGACY help kodi-adsp-basic is unmaintained config BR2_PACKAGE_KODI_ADSP_FREESURROUND bool "kodi-adsp-freesurround package removed" select BR2_LEGACY help kodi-adsp-freesurround is unmaintained ############################################################################### comment "Legacy options removed in 2018.02" config BR2_KERNEL_HEADERS_3_4 bool "kernel headers version 3.4.x are no longer supported" select BR2_LEGACY help Version 3.4.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_3_10 bool "kernel headers version 3.10.x are no longer supported" select BR2_LEGACY help Version 3.10.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_3_12 bool "kernel headers version 3.12.x are no longer supported" select BR2_LEGACY help Version 3.12.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_BINUTILS_VERSION_2_27_X bool "binutils version 2.27 support removed" select BR2_LEGACY help Support for binutils version 2.27 has been removed. The current default version (2.29 or later) has been selected instead. config BR2_PACKAGE_EEPROG bool "eeprog package removed" select BR2_LEGACY select BR2_PACKAGE_I2C_TOOLS select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help The eeprog program is now provided by the i2c-tools package. config BR2_PACKAGE_GNUPG2_GPGV2 bool "gnupg2 gpgv2 option removed" select BR2_LEGACY select BR2_PACKAGE_GNUPG2_GPGV help The gpgv2 executable is now named gpgv. The config option has been renamed accordingly. config BR2_PACKAGE_IMX_GPU_VIV_APITRACE bool "Vivante apitrace tool option removed" select BR2_LEGACY help The apitrace tool for Vivante is not provided by the imx-gpu-viv package any longer. config BR2_PACKAGE_IMX_GPU_VIV_G2D bool "Vivante G2D libraries from imx-gpu-viv removed" select BR2_LEGACY select BR2_PACKAGE_IMX_GPU_G2D help The G2D libraries are now provided by the imx-gpu-g2d package. ############################################################################### comment "Legacy options removed in 2017.11" config BR2_PACKAGE_RFKILL bool "rfkill package removed" select BR2_LEGACY select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_RFKILL help The rfkill program is now provided by the util-linux package. config BR2_PACKAGE_UTIL_LINUX_RESET bool "util-linux reset option removed" select BR2_LEGACY help The util-linux package no longer offers a "reset" command. Use either the reset command provided by BusyBox or select ncurses programs, which will install a symlink from "tset" to reset. config BR2_PACKAGE_POLICYCOREUTILS_AUDIT2ALLOW bool "policycoreutils audit2allow option removed" select BR2_LEGACY select BR2_PACKAGE_SELINUX_PYTHON select BR2_PACKAGE_SELINUX_PYTHON_AUDIT2ALLOW help The policycoreutils package no longer offers audit2allow as a option. This package has been moved into the selinux-python package by the SELinux maintainers. config BR2_PACKAGE_POLICYCOREUTILS_RESTORECOND bool "policycoreutils restorecond option removed" select BR2_LEGACY select BR2_PACKAGE_RESTORECOND help The policycoreutils package no longer offers restorecond as a option. This package has been moved into a seperate package maintained by the SELinux maintainers. config BR2_PACKAGE_SEPOLGEN bool "sepolgen package has been removed" select BR2_LEGACY select BR2_PACKAGE_SELINUX_PYTHON select BR2_PACKAGE_SELINUX_PYTHON_SEPOLGEN help Sepolgen is no longer a individual package, but instead has been moved into the selinux-python package by the SELinux maintainers. config BR2_PACKAGE_OPENOBEX_BLUEZ bool "openobex bluez option removed" select BR2_LEGACY select BR2_PACKAGE_BLUEZ_UTILS help The OpenOBEX package no longer offers an option to enable or disable BlueZ support. Instead, BlueZ support is always included when the bluez5_utils or bluez_utils package is selected. config BR2_PACKAGE_OPENOBEX_LIBUSB bool "openobex libusb option removed" select BR2_LEGACY select BR2_PACKAGE_LIBUSB help The OpenOBEX package no longer offers an option to enable or disable libusb support. Instead, USB support is always included when the libusb package is selected. config BR2_PACKAGE_OPENOBEX_APPS bool "openobex apps option removed" select BR2_LEGACY help The OpenOBEX package no longer offers an option to enable or disable apps support. config BR2_PACKAGE_OPENOBEX_SYSLOG bool "openobex syslog option removed" select BR2_LEGACY help The OpenOBEX package no longer offers an option to enable or disable syslog support. config BR2_PACKAGE_OPENOBEX_DUMP bool "openobex dump option removed" select BR2_LEGACY help The OpenOBEX package no longer offers an option to enable or disable dump support. config BR2_PACKAGE_AICCU bool "aiccu utility removed" select BR2_LEGACY help As the SixXS project has ceased its operation on 2017-06-06, the AICCU utility has no use anymore and has been removed. https://www.sixxs.net/sunset/ config BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS bool "util-linux login utilities option removed" select BR2_LEGACY select BR2_PACKAGE_UTIL_LINUX_LAST select BR2_PACKAGE_UTIL_LINUX_LOGIN select BR2_PACKAGE_UTIL_LINUX_RUNUSER select BR2_PACKAGE_UTIL_LINUX_SU select BR2_PACKAGE_UTIL_LINUX_SULOGIN help Login utilities (last, login, runuser, su, sulogin) now have their own configuration options in the util-linux menu. ############################################################################### comment "Legacy options removed in 2017.08" config BR2_TARGET_GRUB bool "grub (aka grub-legacy) has been removed" select BR2_LEGACY help grub-legacy is no longer maintained, and no longer builds with recent binutils versions. Use grub2 or syslinux instead. config BR2_PACKAGE_SIMICSFS bool "simicsfs support removed" select BR2_LEGACY help Support for simicsfs kernel driver that provides access to a host computer's local filesystem when the target is executing within a SIMICS simulation has been removed. Simics is now moving away from the simicsfs kernel module, as the kernel module has required too much maintenance work. Users should move to the user mode Simics agent instead. config BR2_BINUTILS_VERSION_2_26_X bool "binutils version 2.26 support removed" select BR2_LEGACY help Support for binutils version 2.26 has been removed. The current default version (2.28 or later) has been selected instead. config BR2_XTENSA_OVERLAY_DIR string "The BR2_XTENSA_OVERLAY_DIR option has been removed" help The BR2_XTENSA_OVERLAY_DIR has been removed in favour of BR2_XTENSA_OVERLAY_FILE. You must now pass the complete path to the overlay file, not to the directory containing it. config BR2_XTENSA_OVERLAY_DIR_WRAP bool default y if BR2_XTENSA_OVERLAY_DIR != "" select BR2_LEGACY config BR2_XTENSA_CUSTOM_NAME string "The BR2_XTENSA_CUSTOM_NAME option has been removed" help The BR2_XTENSA_CUSTOM_NAME option has been removed. config BR2_XTENSA_CUSTOM_NAME_WRAP bool default y if BR2_XTENSA_CUSTOM_NAME != "" select BR2_LEGACY config BR2_PACKAGE_HOST_MKE2IMG bool "host mke2img has been removed" select BR2_LEGACY help We now call mkfs directly to generate ext2/3/4 filesystem image, so mke2img is no longer necessary. config BR2_TARGET_ROOTFS_EXT2_BLOCKS int "exact size in blocks has been removed" default 0 help This option has been removed in favor of BR2_TARGET_ROOTFS_EXT2_SIZE. It has been set automatically to the value you had before. Set to 0 here to remove the warning. config BR2_TARGET_ROOTFS_EXT2_BLOCKS_WRAP bool default y if BR2_TARGET_ROOTFS_EXT2_BLOCKS != 0 && \ BR2_TARGET_ROOTFS_EXT2_BLOCKS != 61440 # deprecated default value select BR2_LEGACY # Note: BR2_TARGET_ROOTFS_EXT2_BLOCKS_WRAP still referenced in fs/ext2/Config.in config BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES int "ext2 extra inodes has been removed" if BR2_TARGET_ROOTFS_EXT2_INODES = 0 default 0 help Buildroot now uses mkfs.ext2/3/4 to generate ext2/3/4 images. It now automatically selects the number of inodes based on the image size. The extra number of inodes can no longer be provided; instead, provide the total number of inodes needed in BR2_TARGET_ROOTFS_EXT2_INODES. config BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES_WRAP bool default y if BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES != 0 select BR2_LEGACY config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CDXAPARSE bool "cdxaparse removed" select BR2_LEGACY config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DATAURISRC bool "dataurisrc moved to gstreamer1" select BR2_LEGACY help Dataurisrc has moved to gstreamer core and is always built. config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DCCP bool "dccp removed" select BR2_LEGACY config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HDVPARSE bool "hdvparse removed" select BR2_LEGACY config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MVE bool "mve removed" select BR2_LEGACY config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NUVDEMUX bool "nuvdemux removed" select BR2_LEGACY config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PATCHDETECT bool "patchdetect removed" select BR2_LEGACY config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDI bool "sdi removed" select BR2_LEGACY config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TTA bool "tta removed" select BR2_LEGACY config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOMEASURE bool "videomeasure removed" select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IQA select BR2_LEGACY help videomeasure plugin has been removed and has been replaced by iqa, which has automatically been enabled. config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_APEXSINK bool "apexsink removed" select BR2_LEGACY config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDL bool "sdl removed" select BR2_LEGACY config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MAD bool "mad (*.mp3 audio) removed" select BR2_LEGACY config BR2_STRIP_none bool "Strip command 'none' has been removed" select BR2_LEGACY help The strip command choice has been changed into a single boolean option. Please check that the new setting is correct (in the "Build options" sub-menu) config BR2_PACKAGE_BEECRYPT_CPP bool "C++ support removed in beecrypt" select BR2_LEGACY help Support for C++ depends on icu. The beecrypt package is incompatible with icu 59+. config BR2_PACKAGE_SPICE_CLIENT bool "spice client support removed" select BR2_LEGACY help Spice client support has been removed upstream. The functionality now lives in the spice-gtk widget and virt-viewer. config BR2_PACKAGE_SPICE_GUI bool "spice gui support removed" select BR2_LEGACY help Spice gui support has been removed upstream. The functionality now lives in the spice-gtk widget and virt-viewer. config BR2_PACKAGE_SPICE_TUNNEL bool "spice network redirection removed" select BR2_LEGACY help Spice network redirection, aka tunnelling has been removed upstream. config BR2_PACKAGE_INPUT_TOOLS bool "input-tools removed" select BR2_LEGACY select BR2_PACKAGE_LINUXCONSOLETOOLS help input-tools has been removed, it is replaced by linuxconsoletools, which has automatically been enabled. config BR2_PACKAGE_INPUT_TOOLS_INPUTATTACH bool "inputattach moved to linuxconsoletools" select BR2_LEGACY select BR2_PACKAGE_LINUXCONSOLETOOLS select BR2_PACKAGE_LINUXCONSOLETOOLS_INPUTATTACH help input-tools has been removed, inputattach is now part of linuxconsoletools, which has automatically been enabled. config BR2_PACKAGE_INPUT_TOOLS_JSCAL bool "jscal moved to linuxconsoletools" select BR2_LEGACY select BR2_PACKAGE_LINUXCONSOLETOOLS select BR2_PACKAGE_LINUXCONSOLETOOLS_JOYSTICK help input-tools has been removed, jscal is now part of linuxconsoletools, which has automatically been enabled. config BR2_PACKAGE_INPUT_TOOLS_JSTEST bool "jstest moved to linuxconsoletools" select BR2_LEGACY select BR2_PACKAGE_LINUXCONSOLETOOLS select BR2_PACKAGE_LINUXCONSOLETOOLS_JOYSTICK help input-tools has been removed, jstest is now part of linuxconsoletools, which has automatically been enabled. config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH bool "SH Sourcery toolchain has been removed" select BR2_LEGACY help The Sourcery CodeBench toolchain for the sh architecture has been removed, since it uses glibc older than 2.17 that requires -lrt to link executables using clock_* system calls. This makes this toolchain difficult to maintain over time. config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86 bool "x86 Sourcery toolchain has been removed" select BR2_LEGACY help The Sourcery CodeBench toolchain for the x86 architecture has been removed, since it uses glibc older than 2.17 that requires -lrt to link executables using clock_* system calls. This makes this toolchain difficult to maintain over time. config BR2_GCC_VERSION_4_8_X bool "gcc 4.8.x support removed" select BR2_LEGACY help Support for gcc version 4.8.x has been removed. The current default version (5.x or later) has been selected instead. ############################################################################### comment "Legacy options removed in 2017.05" config BR2_PACKAGE_SUNXI_MALI_R2P4 bool "sunxi-mali r2p4 removed" select BR2_LEGACY help sunxi-mali libMali for r2p4 Mali kernel module has been removed since the libump package only provides libUMP.so.3. libMali for r2p4 Mali kernel module requires libUMP.so.2. config BR2_PACKAGE_NODEJS_MODULES_COFFEESCRIPT bool "CoffeeScript option has been removed" select BR2_LEGACY help The option to enable NodeJS CoffeeScript has been removed. To continue using it, add "coffee-script" to BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL. config BR2_PACKAGE_NODEJS_MODULES_EXPRESS bool "Express web application framework option has been removed" select BR2_LEGACY help The option to enable the NodeJS Express web application framework has been removed. To continue using it, add "express" to BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL. config BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL bool "bluez5_utils gatttool install option removed" select BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED help The option to install gatttool specifically has been removed. Since version 5.44 gatttool is in the list of deprecated tools. The option to build and install deprecated tools has been automatically enabled. config BR2_PACKAGE_OPENOCD_FT2XXX bool "openocd ft2232 support has been removed" select BR2_PACKAGE_OPENOCD_FTDI select BR2_LEGACY help FT2232 support in OpenOCD has been removed, it's replaced by FDTI support, which has automatically been enabled. config BR2_PACKAGE_KODI_RTMPDUMP bool "kodi rtmp has been removed" select BR2_LEGACY select BR2_PACKAGE_KODI_INPUTSTREAM_RTMP help Internal rtmp support was removed from Kodi. config BR2_PACKAGE_KODI_VISUALISATION_FOUNTAIN bool "kodi-visualisation-fountain has been removed" select BR2_LEGACY help According to upstream 'the visualization is not currently in a working shape.' config BR2_PACKAGE_PORTMAP bool "portmap has been removed" select BR2_LEGACY select BR2_PACKAGE_RPCBIND help The portmap upstream tarball is removed, no releases since ten years and latest change in upstream git in 2014. You should better use rpcbind as a RPC portmapper. config BR2_BINUTILS_VERSION_2_25_X bool "binutils version 2.25 support removed" select BR2_LEGACY help Support for binutils version 2.25 has been removed. The current default version (2.27 or later) has been selected instead. config BR2_TOOLCHAIN_BUILDROOT_INET_RPC bool "uclibc RPC support has been removed" select BR2_LEGACY help uClibc-ng removed internal RPC implementation in 1.0.23. You should use libtirpc instead. config BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS int "extra size in blocks has been removed" default 0 help Since the support for auto calculation of the filesystem size has been removed, this option is now useless and must be 0. You may want to check that BR2_TARGET_ROOTFS_EXT2_BLOCKS matchs your needs. config BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS_WRAP bool default y if BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS != 0 select BR2_LEGACY config BR2_PACKAGE_SYSTEMD_KDBUS bool "systemd-kdbus has been removed" select BR2_LEGACY help --enable/disable-kdbus configure option has been removed since systemd-231. config BR2_PACKAGE_POLARSSL bool "polarssl has been removed" select BR2_LEGACY help The polarssl crypto library has been removed since the 1.2.x release branch is no longer maintained. Newer upstream branches/releases (mbedtls) have API changes so they're not drop-in replacements. config BR2_NBD_CLIENT bool "nbd client option was renamed" select BR2_LEGACY select BR2_PACKAGE_NBD_CLIENT help The nbd client option has been renamed to BR2_PACKAGE_NBD_CLIENT. config BR2_NBD_SERVER bool "nbd server option was renamed" select BR2_LEGACY select BR2_PACKAGE_NBD_SERVER help The nbd server option has been renamed to BR2_PACKAGE_NBD_SERVER. config BR2_PACKAGE_GMOCK bool "gmock merged into gtest package" select BR2_LEGACY select BR2_PACKAGE_GTEST select BR2_PACKAGE_GTEST_GMOCK help GMock is now a suboption of the GTest package. config BR2_KERNEL_HEADERS_4_8 bool "kernel headers version 4.8.x are no longer supported" select BR2_LEGACY help Version 4.8.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_3_18 bool "kernel headers version 3.18.x are no longer supported" select BR2_LEGACY help Version 3.18.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_GLIBC_VERSION_2_22 bool "glibc 2.22 removed" select BR2_LEGACY help Support for glibc version 2.22 has been removed. The current default version has been selected instead. ############################################################################### comment "Legacy options removed in 2017.02" config BR2_PACKAGE_PERL_DB_FILE bool "perl-db-file removed" select BR2_LEGACY select BR2_PACKAGE_BERKELEYDB select BR2_PACKAGE_PERL help DB_File can be built as a core Perl module, so the separate perl-db-file package has been removed. config BR2_KERNEL_HEADERS_4_7 bool "kernel headers version 4.7.x are no longer supported" select BR2_LEGACY help Version 4.7.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_4_6 bool "kernel headers version 4.6.x are no longer supported" select BR2_LEGACY help Version 4.6.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_4_5 bool "kernel headers version 4.5.x are no longer supported" select BR2_LEGACY help Version 4.5.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_3_14 bool "kernel headers version 3.14.x are no longer supported" select BR2_LEGACY help Version 3.14.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS bool "musl-cross 1.1.12 toolchain removed" select BR2_LEGACY help The support for the prebuilt toolchain based on the Musl C library provided by the musl-cross project has been removed. Upstream doesn't provide any prebuilt toolchain anymore, use the Buildroot toolchain instead. config BR2_UCLIBC_INSTALL_TEST_SUITE bool "uClibc tests now in uclibc-ng-test" select BR2_LEGACY select BR2_PACKAGE_UCLIBC_NG_TEST help The test suite of the uClibc C library has been moved into a separate package, uclibc-ng-test. config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX bool "Blackfin.uclinux.org 2014R1 toolchain removed" select BR2_LEGACY help The ADI Blackfin toolchain has many bugs which are fixed in more recent gcc and uClibc-ng releases. Use the Buildroot toolchain instead. config BR2_PACKAGE_MAKEDEVS bool "makedevs removed" select BR2_LEGACY help The makedevs tool is part of busybox. The Buildroot fork should not be used outside of the Buildroot infrastructure. config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A bool "Arago ARMv7 2011.09 removed" select BR2_LEGACY help The Arago toolchains are every old and not updated anymore. config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE bool "Arago ARMv5 2011.09 removed" select BR2_LEGACY help The Arago toolchains are every old and not updated anymore. config BR2_PACKAGE_SNOWBALL_HDMISERVICE bool "snowball-hdmiservice removed" select BR2_LEGACY help We no longer have support for the Snowball platform in Buildroot, so this package was no longer useful. config BR2_PACKAGE_SNOWBALL_INIT bool "snowball-init removed" select BR2_LEGACY help We no longer have support for the Snowball platform in Buildroot, so this package was no longer useful. config BR2_GDB_VERSION_7_9 bool "gdb 7.9 has been removed" select BR2_LEGACY help The 7.9 version of gdb has been removed. Use a newer version instead. ############################################################################### comment "Legacy options removed in 2016.11" config BR2_PACKAGE_PHP_SAPI_CLI_CGI bool "PHP CGI and CLI options are now seperate" select BR2_PACKAGE_PHP_SAPI_CLI select BR2_PACKAGE_PHP_SAPI_CGI select BR2_LEGACY help The PHP Interface options have been split up into a separate option for each interface. config BR2_PACKAGE_PHP_SAPI_CLI_FPM bool "PHP CLI and FPM options are now separate" select BR2_PACKAGE_PHP_SAPI_CLI select BR2_PACKAGE_PHP_SAPI_FPM select BR2_LEGACY help The PHP Interface options have been split up into a separate option for each interface. config BR2_PACKAGE_WVSTREAMS bool "wvstreams removed" select BR2_LEGACY help wvstreams is not maintained anymore since about 2009. It also doesn't build anymore with recent compilers (GCC 5+). config BR2_PACKAGE_WVDIAL bool "wvdial removed" select BR2_LEGACY help wvdial is not maintained anymore since about 2009. It also doesn't build anymore with recent compilers (GCC 5+). config BR2_PACKAGE_WEBKITGTK24 bool "webkitgtk 2.4.x removed" select BR2_LEGACY help This legacy package only existed because some other packages depended on that specific version of webkitgtk. However, the other packages have been fixed. webkitgtk 2.4 is full of security issues so it needs to be removed. config BR2_PACKAGE_TORSMO bool "torsmo removed" select BR2_LEGACY help torsmo has been unmaintained for a long time, and nobody seems to be interested in it. config BR2_PACKAGE_SSTRIP bool "sstrip removed" select BR2_LEGACY help sstrip is unmaintained and potentially harmful. It doesn't save so much compared to normal binutils strip, and there is a big risk of binaries that don't work. Use normal strip instead. config BR2_KERNEL_HEADERS_4_3 bool "kernel headers version 4.3.x are no longer supported" select BR2_LEGACY help Version 4.3.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_KERNEL_HEADERS_4_2 bool "kernel headers version 4.2.x are no longer supported" select BR2_LEGACY help Version 4.2.x of the Linux kernel headers are no longer maintained upstream and are now removed. config BR2_PACKAGE_KODI_ADDON_XVDR bool "kodi-addon-xvdr removed" select BR2_LEGACY help According to the github project page: https://github.com/pipelka/xbmc-addon-xvdr this package is discontinued. config BR2_PACKAGE_IPKG bool "ipkg removed" select BR2_LEGACY help ipkg dates back to the early 2000s when Compaq started the handhelds.org project and it hasn't seen development since 2006. Use opkg as a replacement. config BR2_GCC_VERSION_4_7_X bool "gcc 4.7.x support removed" select BR2_LEGACY help Support for gcc version 4.7.x has been removed. The current default version (4.9.x or later) has been selected instead. config BR2_BINUTILS_VERSION_2_24_X bool "binutils version 2.24 support removed" select BR2_LEGACY help Support for binutils version 2.24 has been removed. The current default version (2.26 or later) has been selected instead. config BR2_PACKAGE_WESTON_RPI bool "Weston propietary RPI support is gone" select BR2_LEGACY help Upstream decided the propietary (rpi-userland) weston composer support wasn't worth the effort so it was removed. Switch to the open VC4 support. config BR2_LINUX_KERNEL_TOOL_CPUPOWER bool "linux-tool cpupower" depends on BR2_LINUX_KERNEL select BR2_LEGACY select BR2_PACKAGE_LINUX_TOOLS_CPUPOWER help Linux tool cpupower option was renamed. config BR2_LINUX_KERNEL_TOOL_PERF bool "linux-tool perf" depends on BR2_LINUX_KERNEL select BR2_LEGACY select BR2_PACKAGE_LINUX_TOOLS_PERF help Linux tool perf option was renamed. config BR2_LINUX_KERNEL_TOOL_SELFTESTS bool "linux-tool selftests" depends on BR2_LINUX_KERNEL select BR2_LEGACY select BR2_PACKAGE_LINUX_TOOLS_SELFTESTS help Linux tool selftests option was renamed. config BR2_GCC_VERSION_4_8_ARC bool "gcc arc option renamed" select BR2_LEGACY select BR2_GCC_VERSION_ARC help The option that selects the gcc version for the ARC architecture has been renamed to BR2_GCC_VERSION_ARC. config BR2_KERNEL_HEADERS_4_0 bool "kernel headers version 4.0.x are no longer supported" select BR2_LEGACY help Version 4.0.x of the Linux kernel headers have been deprecated for more than four buildroot releases and are now removed. config BR2_KERNEL_HEADERS_3_19 bool "kernel headers version 3.19.x are no longer supported" select BR2_LEGACY help Version 3.19.x of the Linux kernel headers have been deprecated for more than four buildroot releases and are now removed. config BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS bool "libevas-generic-loaders package removed" select BR2_LEGACY select BR2_PACKAGE_EFL help With EFL 1.18, libevas-generic-loaders is now provided by the efl package. config BR2_PACKAGE_ELEMENTARY bool "elementary package removed" select BR2_LEGACY select BR2_PACKAGE_EFL help With EFL 1.18, elementary is now provided by the efl package. config BR2_LINUX_KERNEL_CUSTOM_LOCAL bool "Linux kernel local directory option removed" help The option to select a local directory as the source of the Linux kernel has been removed. It hurts reproducibility of builds. In case you were using this option during development of your Linux kernel, use the override mechanism instead. ############################################################################### comment "Legacy options removed in 2016.08" config BR2_PACKAGE_EFL_JP2K bool "libevas jp2k loader has been removed" select BR2_LEGACY help JP2K support in EFL requires openjpeg 1.x (libopenjpeg1.pc) while Buildroot only packages openjpeg 2.x. Therefore, the JP2K loader has been removed from EFL. 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_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 string "uboot custom patch dir has been removed" help The uboot custom patch directory option has been removed. Use the improved BR2_TARGET_UBOOT_PATCH option instead. config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR_WRAP bool default y if BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR != "" select BR2_LEGACY # Note: BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR is still referenced from # boot/uboot/Config.in 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_LEGACY help Version 3.17.x of the Linux kernel headers have been deprecated for more than four buildroot releases and are now removed. 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 "sqlite 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" config BR2_PACKAGE_DOVECOT_BZIP2 bool "bzip2 support option has been removed" select BR2_LEGACY select BR2_PACKAGE_BZIP2 help Bzip2 support is built if the bzip2 package is selected. config BR2_PACKAGE_DOVECOT_ZLIB bool "zlib support option has been removed" select BR2_LEGACY select BR2_PACKAGE_ZLIB help Zlib support is built if the zlib package is selected. config BR2_PACKAGE_E2FSPROGS_FINDFS bool "e2fsprogs findfs option has been removed" select BR2_LEGACY help This option attempted to enable findfs capabilities from e2fsprogs but has not worked since July 2015 (due to packaging changes). One can use BusyBox's findfs support or enable the BR2_PACKAGE_UTIL_LINUX_BINARIES option. config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL bool "openpowerlink debug option has been removed" select BR2_LEGACY help This option depends on BR2_ENABLE_DEBUG which should not be used by packages anymore. config BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE bool "openpowerlink package has been updated" select BR2_LEGACY select BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB help openpowerlink kernel modules are built if the kernel stack library is selected. config BR2_PACKAGE_OPENPOWERLINK_LIBPCAP bool "openpowerlink package has been updated" select BR2_LEGACY select BR2_PACKAGE_OPENPOWERLINK_STACK_USERSPACE_DAEMON_LIB help The user space support has been split in two part: - a monolitic user space library - a user spae deamon driver config BR2_LINUX_KERNEL_SAME_AS_HEADERS bool "using the linux headers version for the kernel has been removed" select BR2_LEGACY help The option to use the version of the kernel headers for the kernel to build has been removed. There is now the converse, better-suited and more versatile option to use the kernel version for the linux headers. config BR2_PACKAGE_CUPS_PDFTOPS bool "Pdftops support has been removed from Cups" select BR2_PACKAGE_CUPS_FILTERS select BR2_LEGACY help Pdftops support has been removed from the cups package It is now part of the cups-filters package. config BR2_KERNEL_HEADERS_3_16 bool "kernel headers version 3.16.x are no longer supported" select BR2_LEGACY help Version 3.16.x of the Linux kernel headers have been deprecated for more than four buildroot releases and are now removed. config BR2_PACKAGE_PYTHON_PYXML bool "python-pyxml package has been removed" select BR2_LEGACY help PyXML is obsolete and its functionality is covered either via native Python XML support or python-lxml package. # BR2_ENABLE_SSP is still referenced in Config.in (default in choice) config BR2_ENABLE_SSP bool "Stack Smashing protection now has different levels" help The protection offered by SSP can now be selected from different protection levels. Be sure to review the SSP level in the build options menu. config BR2_PACKAGE_DIRECTFB_CLE266 bool "cle266 driver for directfb removed" select BR2_LEGACY help The cle266 directfb driver support has been removed. It doesn't build in the latest version and it's unlikely anyone has any use for it. config BR2_PACKAGE_DIRECTFB_UNICHROME bool "unichrome driver for directfb removed" select BR2_LEGACY help The unichrome directfb driver support has been removed. It doesn't build in the latest version and it's unlikely anyone has any use for it. config BR2_PACKAGE_LIBELEMENTARY bool "libelementary has been renamed to elementary" select BR2_LEGACY select BR2_PACKAGE_ELEMENTARY help The libelementary package has been renamed to match the upstream name. config BR2_PACKAGE_LIBEINA bool "libeina package has been removed" select BR2_LEGACY select BR2_PACKAGE_EFL help With EFL 1.15, libeina is now provided by the efl package. config BR2_PACKAGE_LIBEET bool "libeet package has been removed" select BR2_LEGACY select BR2_PACKAGE_EFL help With EFL 1.15, libeet is now provided by the efl package. config BR2_PACKAGE_LIBEVAS bool "libevas package has been removed" select BR2_LEGACY select BR2_PACKAGE_EFL help With EFL 1.15, libevas is now provided by the efl package. config BR2_PACKAGE_LIBECORE bool "libecore package has been removed" select BR2_LEGACY select BR2_PACKAGE_EFL help With EFL 1.15, libecore is now provided by the efl package. config BR2_PACKAGE_LIBEDBUS bool "libedbus package has been removed" select BR2_LEGACY select BR2_PACKAGE_EFL help With EFL 1.15, libedbus is now provided by the efl package. config BR2_PACKAGE_LIBEFREET bool "libefreet package has been removed" select BR2_LEGACY select BR2_PACKAGE_EFL help With EFL 1.15, libefreet is now provided by the efl package. config BR2_PACKAGE_LIBEIO bool "libeio package has been removed" select BR2_LEGACY select BR2_PACKAGE_EFL help With EFL 1.15, libeio is now provided by the efl package. config BR2_PACKAGE_LIBEMBRYO bool "libembryo package has been removed" select BR2_LEGACY select BR2_PACKAGE_EFL help With EFL 1.15, libembryo is now provided by the efl package. config BR2_PACKAGE_LIBEDJE bool "libedje package has been removed" select BR2_LEGACY select BR2_PACKAGE_EFL help With EFL 1.15, libedje is now provided by the efl package. config BR2_PACKAGE_LIBETHUMB bool "libethumb package has been removed" select BR2_LEGACY select BR2_PACKAGE_EFL help With EFL 1.15, libethumb is now provided by the efl package. config BR2_PACKAGE_INFOZIP bool "infozip option has been renamed to zip" select BR2_LEGACY select BR2_PACKAGE_ZIP help Info-Zip's Zip package has been renamed from infozip to zip, to avoid ambiguities with Info-Zip's UnZip which has been added in the unzip package. config BR2_BR2_PACKAGE_NODEJS_0_10_X bool "nodejs 0.10.x option removed" select BR2_LEGACY select BR2_PACKAGE_NODEJS help nodejs 0.10.x option has been removed. 0.10.x is now automatically chosen for ARMv5 architectures only and the latest nodejs for all other supported architectures. The correct nodejs version has been automatically selected in your configuration. config BR2_BR2_PACKAGE_NODEJS_0_12_X bool "nodejs version 0.12.x has been removed" select BR2_LEGACY select BR2_PACKAGE_NODEJS help nodejs version 0.12.x has been removed. As an alternative, the latest nodejs version has been automatically selected in your configuration. config BR2_BR2_PACKAGE_NODEJS_4_X bool "nodejs version 4.x has been removed" select BR2_LEGACY select BR2_PACKAGE_NODEJS help nodejs version 4.x has been removed. As an alternative, the latest nodejs version has been automatically selected in your configuration. ############################################################################### comment "Legacy options removed in 2015.11" config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_REAL bool "gst1-plugins-bad real plugin has been removed" select BR2_LEGACY help The real plugin from GStreamer 1 bad plugins has been removed. config BR2_PACKAGE_MEDIA_CTL bool "media-ctl package has been removed" select BR2_LEGACY select BR2_PACKAGE_LIBV4L select BR2_PACKAGE_LIBV4L_UTILS help media-ctl source and developement have been moved to v4l-utils since June 2014. For an up-to-date media-ctl version select BR2_PACKAGE_LIBV4L and BR2_PACKAGE_LIBV4L_UTILS. config BR2_PACKAGE_SCHIFRA bool "schifra package has been removed" select BR2_LEGACY help Schifra package has been maked broken since 2014.11 release and haven't been fixed since then. config BR2_PACKAGE_ZXING bool "zxing option has been renamed" select BR2_LEGACY select BR2_PACKAGE_ZXING_CPP help ZXing no longer provides the cpp bindings, it has been renamed to BR2_PACKAGE_ZXING_CPP which uses a new upstream. # Since FreeRDP has new dependencies, protect this legacy to avoid the # infamous "unmet direct dependencies" kconfig error. config BR2_PACKAGE_FREERDP_CLIENT bool "freerdp client option renamed" depends on BR2_PACKAGE_FREERDP select BR2_LEGACY select BR2_PACKAGE_FREERDP_CLIENT_X11 config BR2_PACKAGE_BLACKBOX bool "blackbox package has been removed" select BR2_LEGACY help Upstream is dead and the package has been deprecated for some time. There are other alternative maintained WMs. config BR2_KERNEL_HEADERS_3_0 bool "kernel headers version 3.0.x are no longer supported" select BR2_LEGACY help Version 3.0.x of the Linux kernel headers have been deprecated for more than four buildroot releases and are now removed. config BR2_KERNEL_HEADERS_3_11 bool "kernel headers version 3.11.x are no longer supported" select BR2_LEGACY help Version 3.11.x of the Linux kernel headers have been deprecated for more than four buildroot releases and are now removed. config BR2_KERNEL_HEADERS_3_13 bool "kernel headers version 3.13.x are no longer supported" select BR2_LEGACY help Version 3.13.x of the Linux kernel headers have been deprecated for more than four buildroot releases and are now removed. config BR2_KERNEL_HEADERS_3_15 bool "kernel headers version 3.15.x are no longer supported" select BR2_LEGACY help Version 3.15.x of the Linux kernel headers have been deprecated for more than four buildroot releases and are now removed. config BR2_PACKAGE_DIRECTFB_EXAMPLES_ANDI bool "DirectFB example df_andi has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_BLTLOAD bool "DirectFB example df_bltload has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_CPULOAD bool "DirectFB example df_cpuload has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_DATABUFFER bool "DirectFB example df_databuffer has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_DIOLOAD bool "DirectFB example df_dioload has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_DOK bool "DirectFB example df_dok has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_DRIVERTEST bool "DirectFB example df_drivertest has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_FIRE bool "DirectFB example df_fire has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_FLIP bool "DirectFB example df_flip has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_FONTS bool "DirectFB example df_fonts has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_INPUT bool "DirectFB example df_input has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_JOYSTICK bool "DirectFB example df_joystick has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_KNUCKLES bool "DirectFB example df_knuckles has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_LAYER bool "DirectFB example df_layer has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX bool "DirectFB example df_matrix has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX_WATER bool "DirectFB example df_matrix_water has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_NEO bool "DirectFB example df_neo has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_NETLOAD bool "DirectFB example df_netload has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_PALETTE bool "DirectFB example df_palette has been removed" select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_PARTICLE bool "DirectFB example df_particle has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_PORTER bool "DirectFB example df_porter has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_STRESS bool "DirectFB example df_stress has been removed" select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_TEXTURE bool "DirectFB example df_texture has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO bool "DirectFB example df_video has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO_PARTICLE bool "DirectFB example df_video_particle has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_DIRECTFB_EXAMPLES_WINDOW bool "DirectFB example df_window has been removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_EXAMPLES help The per-DirectFB example options have been removed. The BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all examples. config BR2_PACKAGE_KOBS_NG bool "kobs-ng was replaced by imx-kobs" select BR2_LEGACY select BR2_PACKAGE_IMX_KOBS help The outdated kobs-ng has been replaced by the Freescale- maintained imx-kobs package. config BR2_PACKAGE_SAWMAN bool "sawman package removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_SAWMAN help This option has been removed because the sawman package no longer exists: it was merged inside DirectFB itself. This feature can now be enabled using the BR2_PACKAGE_DIRECTFB_SAWMAN option. config BR2_PACKAGE_DIVINE bool "divine package removed" select BR2_LEGACY select BR2_PACKAGE_DIRECTFB_DIVINE help This option has been removed because the divine package no longer exists: it was merged inside DirectFB itself. This feature can now be enabled using the BR2_PACKAGE_DIRECTFB_DIVINE option. ############################################################################### comment "Legacy options removed in 2015.08" config BR2_PACKAGE_KODI_PVR_ADDONS bool "Kodi PVR addon was split" select BR2_LEGACY select BR2_PACKAGE_KODI_PVR_ARGUSTV select BR2_PACKAGE_KODI_PVR_DVBLINK select BR2_PACKAGE_KODI_PVR_DVBVIEWER select BR2_PACKAGE_KODI_PVR_FILMON select BR2_PACKAGE_KODI_PVR_HTS select BR2_PACKAGE_KODI_PVR_IPTVSIMPLE select BR2_PACKAGE_KODI_PVR_MEDIAPORTAL_TVSERVER select BR2_PACKAGE_KODI_PVR_MYTHTV select BR2_PACKAGE_KODI_PVR_NEXTPVR select BR2_PACKAGE_KODI_PVR_NJOY select BR2_PACKAGE_KODI_PVR_PCTV select BR2_PACKAGE_KODI_PVR_STALKER select BR2_PACKAGE_KODI_PVR_VBOX select BR2_PACKAGE_KODI_PVR_VDR_VNSI select BR2_PACKAGE_KODI_PVR_VUPLUS select BR2_PACKAGE_KODI_PVR_WMC help Kodi PVR addon was split into seperate modules config BR2_BINUTILS_VERSION_2_23_2 bool "binutils 2.23 option renamed" select BR2_LEGACY help 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" select BR2_LEGACY select BR2_BINUTILS_VERSION_2_24_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_24_X. config BR2_BINUTILS_VERSION_2_25 bool "binutils 2.25 option renamed" select BR2_LEGACY select BR2_BINUTILS_VERSION_2_25_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_25_X. config BR2_PACKAGE_PERF bool "perf option has been renamed" select BR2_LEGACY select BR2_LINUX_KERNEL_TOOL_PERF help The perf package has been moved as a Linux tools package, and the option to enable it is now BR2_LINUX_KERNEL_TOOL_PERF. config BR2_BINUTILS_VERSION_2_22 bool "binutils 2.22 removed" select BR2_LEGACY help Binutils 2.22 has been removed, using a newer version is recommended. config BR2_PACKAGE_GPU_VIV_BIN_MX6Q bool "gpu-viv-bin-mx6q" select BR2_LEGACY select BR2_PACKAGE_IMX_GPU_VIV help Vivante graphics libraries have been renamed to BR2_PACKAGE_IMX_GPU_VIV to be aligned with upstream package name. config BR2_PACKAGE_LIBSEMANAGE_PYTHON_BINDINGS bool "libsemanage python bindings removed" depends on BR2_PACKAGE_PYTHON select BR2_LEGACY help This option has been removed, since the libsemanage Python bindings on the target were not useful. config BR2_TARGET_UBOOT_NETWORK bool "U-Boot custom network settings removed" select BR2_LEGACY help U-Boot's custom network settings options have been removed. endmenu endif # !SKIP_LEGACY ================================================ FILE: DEVELOPERS ================================================ # Syntax: # # N: Firstname Lastname # F: file pattern or directory # F: file pattern or directory # # The "F" entries can be: # # - A directory, in which case all patches touching any file in this # directory or its subdirectories will be CC'ed to the developer. # - A pattern, in which case the pattern will be expanded, and then # all files/directories (and their subdirectories) will be # considered when matching against a patch # # Notes: # # - When a developer adds an "arch/Config.in." file to its list # of files, he is considered a developer of this architecture. He # will receive e-mail notifications about build failures occuring on # this architecture. Not more than one e-mail per day is sent. # - When a developer adds a directory that contains one or several # packages, this developer will be notified when build failures # occur. Not more than one e-mail per day is sent. # - When a developer adds an "package/pkg-.mk" file to its list # of files, he is considered interested by this package # infrastructure, and will be CC'ed on all patches that add or # modify packages that use this infrastructure. N: Adam Heinrich F: package/jack1/ N: Adrian Perez de Castro F: package/brotli/ F: package/bubblewrap/ F: package/cage/ F: package/cog/ F: package/libepoxy/ F: package/libmanette/ F: package/libpsl/ F: package/libwpe/ F: package/webkitgtk/ F: package/wlroots/ F: package/woff2/ F: package/wpebackend-fdo/ F: package/wpewebkit/ F: package/xdg-dbus-proxy/ N: Adrien Gallouët F: package/bird/ F: package/glorytun/ N: Alejandro González F: package/qprint/ F: package/watchdog/ N: Aleksander Morgado F: package/libmbim/ F: package/libqmi/ F: package/modem-manager/ N: Alex Michel F: package/network-manager-openvpn/ N: Alex Suykov F: board/chromebook/snow/ F: configs/chromebook_snow_defconfig F: package/vboot-utils/ N: Alexander Clouter F: package/odhcp6c/ N: Alexander Dahl F: package/fastd/ F: package/libuecc/ F: package/siproxd/ F: package/putty/ N: Alexander Egorenkov F: package/makedumpfile/ F: package/multipath-tools/ N: Alexander Egorenkov F: arch/Config.in.s390x F: board/qemu/s390x/ F: configs/qemu_s390x_defconfig F: package/s390-tools/ N: Alexander Kurz F: package/minimodem/ N: Alexander Lukichev F: package/openpgm/ N: Aleksandr Makarov F: package/libest/ N: Alexander Mukhin F: package/tinyproxy/ N: Alexander Sverdlin F: package/mini-snmpd/ N: Alexander Varnin F: package/liblog4c-localtime/ N: Alexandre Belloni F: package/tz/ N: Alexandre Esse F: package/kvazaar/ F: package/v4l2loopback/ N: Alexey Brodkin F: board/cubietech/cubieboard2/ F: configs/cubieboard2_defconfig N: Alexey Lukyanchuk F: package/zabbix/ N: Alistair Francis F: board/sifive/ F: boot/opensbi/ F: configs/hifive_unleashed_defconfig F: package/xen/ N: Alvaro G. M F: package/dcron/ F: package/libxmlrpc/ F: package/python-docopt/ N: Anand Gadiyar F: boot/ti-k3-r5-loader/ N: André Zwing F: package/libkrb5/ F: package/p7zip/ F: package/wine/ N: Andreas Klinger F: package/ply/ N: Andreas Ziegler F: package/mpd/ N: Andrey Smirnov F: package/python-decorator/ F: package/python-ipython-genutils/ F: package/python-pickleshare/ F: package/python-scandir/ F: package/python-simplegeneric/ F: package/python-systemd/ F: package/python-traitlets/ F: package/zstd/ N: Andrey Yurovsky F: package/rauc/ N: Angelo Compagnucci F: board/sipeed/lichee_rv/ F: board/sipeed/lichee_rv_dock/ F: configs/sipeed_lichee_rv* F: package/apparmor/ F: package/corkscrew/ F: package/cups/ F: package/cups-filters/ F: package/fail2ban/ F: package/grep/ F: package/htpdate/ F: package/i2c-tools/ F: package/jq/ F: package/libapparmor/ F: package/libb64/ F: package/libdill/ F: package/mender/ F: package/mender-artifact/ F: package/mono/ F: package/mono-gtksharp3/ F: package/monolite/ F: package/openjpeg/ F: package/python-can/ F: package/python-minimalmodbus/ F: package/python-pillow/ F: package/python-pydal/ F: package/python-spidev/ F: package/python-web2py/ F: package/qt5/qt5coap/ F: package/qt5/qt5knx/ F: package/qt5/qt5mqtt/ F: package/rtl8723ds/ F: package/rtl8723ds-bt/ F: package/sam-ba/ F: package/sshguard/ F: package/sunwait/ F: package/sysdig/ N: Andy Shevchenko F: package/fb-test-app/ N: Anisse Astier F: package/go/ F: package/nghttp2/ F: package/pkg-golang.mk N: Anthony Viallard F: package/gnuplot/ N: Antoine Tenart F: package/libselinux/ F: package/refpolicy/ F: support/testing/tests/core/test_selinux/ F: support/testing/tests/core/test_selinux.py F: support/testing/tests/init/test_systemd_selinux/ F: support/testing/tests/init/test_systemd_selinux.py N: Antony Pavlov F: package/lsscsi/ N: ARC Maintainers F: arch/Config.in.arc F: board/synopsys/ F: configs/snps_arc700_axs101_defconfig F: configs/snps_archs38_axs103_defconfig F: configs/snps_archs38_haps_defconfig F: configs/snps_archs38_hsdk_defconfig F: configs/snps_archs38_vdk_defconfig N: Ariel D'Alessandro F: package/axfsutils/ F: package/mali-t76x/ N: Arnaud Aujon F: package/espeak/ N: Arnout Vandecappelle F: package/arp-scan/ F: package/dehydrated/ F: package/freescale-imx/firmware-imx/ F: package/freescale-imx/imx-lib/ F: package/libpagekite/ F: package/lua-bit32/ F: package/owfs/ F: package/python-bottle/ F: package/sqlcipher/ F: package/stress/ N: Asaf Kahlon F: package/collectd/ F: package/libfuse3/ F: package/libuv/ F: package/python* F: package/snmpclitools/ F: package/spdlog/ F: package/uftp/ F: package/uftrace/ F: package/uvw/ F: package/zeromq/ N: Ash Charles F: package/pru-software-support/ F: package/ti-cgt-pru/ N: Assaf Inbal F: package/lbase64/ F: package/luabitop/ F: package/luaexpatutils/ F: package/luaposix/ F: package/luasec/ F: package/lua-ev/ F: package/orbit/ N: Attila Wagner F: package/python-canopen/ N: Bartosz Bilas F: board/stmicroelectronics/stm32mp157a-dk1/ F: configs/stm32mp157a_dk1_defconfig F: package/cegui/ F: package/log4qt/ F: package/python-esptool/ F: package/python-pyaes/ F: package/ttyd/ F: package/qt5/qt5scxml/ F: package/qt5/qt5webview/ N: Bartosz Golaszewski F: package/autoconf-archive/ F: package/doxygen/ F: package/libgpiod/ F: package/libserialport/ F: package/libsigrok/ F: package/libsigrokdecode/ F: package/libzip/ F: package/pulseview/ F: package/sigrok-cli/ N: Baruch Siach F: board/solidrun/clearfog_gt_8k/ F: configs/solidrun_clearfog_gt_8k_defconfig F: package/18xx-ti-utils/ F: package/cpuburn-arm/ F: package/daemon/ F: package/dropbear/ F: package/ebtables/ F: package/i2c-tools/ F: package/libcurl/ F: package/libpcap/ F: package/socat/ F: package/strace/ F: package/tcpdump/ F: package/ti-uim/ F: package/uhubctl/ N: Ben Boeckel F: package/taskd/ N: Benjamin Kamath F: package/lapack/ N: Bernd Kuhls F: package/alsa-lib/ F: package/alsa-utils/ F: package/apache/ F: package/apg/ F: package/apr/ F: package/apr-util/ F: package/bcg729/ F: package/bitcoin/ F: package/bluez-tools/ F: package/boinc/ F: package/clamav/ F: package/dav1d/ F: package/dovecot/ F: package/dovecot-pigeonhole/ F: package/dtv-scan-tables/ F: package/eudev/ F: package/exim/ F: package/fetchmail/ F: package/ffmpeg/ F: package/flac/ F: package/freeswitch/ F: package/freeswitch-mod-bcg729/ F: package/freetype/ F: package/fstrcmp/ F: package/ghostscript/ F: package/giflib/ F: package/gkrellm/ F: package/gli/ F: package/glmark2/ F: package/gpsd/ F: package/gptfdisk/ F: package/hdparm/ F: package/inih/ F: package/intel-gmmlib/ F: package/intel-mediadriver/ F: package/intel-mediasdk/ F: package/jsoncpp/ F: package/kodi* F: package/lame/ F: package/leafnode2/ F: package/libaacs/ F: package/libasplib/ F: package/libass/ F: package/libbdplus/ F: package/libbluray/ F: package/libbroadvoice/ F: package/libcdio/ F: package/libcec/ F: package/libcodec2/ F: package/libcrossguid/ F: package/libdcadec/ F: package/libdrm/ F: package/libdvbcsa/ F: package/libdvdcss/ F: package/libdvdnav/ F: package/libdvdread/ F: package/libebur128/ F: package/libfreeglut/ F: package/libg7221/ F: package/libglew/ F: package/libglfw/ F: package/libglu/ F: package/libhdhomerun/ F: package/libilbc/ F: package/libldns/ F: package/libmicrohttpd/ F: package/libminiupnpc/ F: package/libmspack/ F: package/libnatpmp/ F: package/libnpth/ F: package/libogg/ F: package/libopenh264/ F: package/libpciaccess/ F: package/libplatform/ F: package/libpng/ F: package/libsidplay2/ F: package/libsilk/ F: package/libsndfile/ F: package/libsoundtouch/ F: package/libsquish/ F: package/libudfread/ F: package/liburiparser/ F: package/libva/ F: package/libva-intel-driver/ F: package/libva-utils/ F: package/libvorbis/ F: package/libvpx/ F: package/libyuv/ F: package/mesa3d/ F: package/minidlna/ F: package/mjpg-streamer/ F: package/perl-crypt-openssl-guess/ F: package/perl-crypt-openssl-random/ F: package/perl-crypt-openssl-rsa/ F: package/perl-digest-sha1/ F: package/perl-encode-detect/ F: package/perl-encode-locale/ F: package/perl-file-listing/ F: package/perl-html-parser/ F: package/perl-html-tagset/ F: package/perl-http-cookies/ F: package/perl-http-daemon/ F: package/perl-http-date/ F: package/perl-http-message/ F: package/perl-http-negotiate/ F: package/perl-io-html/ F: package/perl-lwp-mediatypes/ F: package/perl-mail-dkim/ F: package/perl-mailtools/ F: package/perl-net-dns/ F: package/perl-net-http/ F: package/perl-netaddr-ip/ F: package/perl-timedate/ F: package/perl-uri/ F: package/perl-www-robotrules/ F: package/php/ F: package/pixman/ F: package/pngquant/ F: package/pound/ F: package/pulseaudio/ F: package/pure-ftpd/ F: package/python-couchdb/ F: package/python-cssutils/ F: package/python-futures/ F: package/python-mwclient/ F: package/python-mwscrape/ F: package/python-mwscrape2slob/ F: package/python-mako/ F: package/python-oauthlib/ F: package/python-pyicu/ F: package/python-pylru/ F: package/python-requests-oauthlib/ F: package/python-slob/ F: package/rtmpdump/ F: package/samba4/ F: package/softether/ F: package/spandsp/ F: package/sqlite/ F: package/stellarium/ F: package/taglib/ F: package/tinyxml2/ F: package/tor/ F: package/transmission/ F: package/tvheadend/ F: package/unixodbc/ F: package/utf8proc/ F: package/vdr/ F: package/vdr-plugin-vnsiserver/ F: package/vlc/ F: package/vnstat/ F: package/waylandpp/ F: package/x11r7/ F: package/x264/ F: package/x265/ F: package/xmrig/ F: package/ytree/ F: package/znc/ F: support/testing/tests/package/test_perl_html_parser.py N: Biagio Montaruli F: board/acmesystems/ F: configs/acmesystems_* N: Bilal Wasim F: board/chromebook/elm/ F: configs/chromebook_elm_defconfig N: Bogdan Radulescu F: package/iftop/ F: package/ncdu/ N: Brandon Maier F: package/vmtouch/ N: Brock Williams F: package/pdmenu/ N: Carlo Caione F: package/jailhouse/ F: package/sunxi-boards/ N: Carsten Schoenert F: package/dvbsnoop/ F: package/libdvbsi/ F: package/libsvg/ F: package/libsvg-cairo/ N: Cédric Chépied F: package/znc/ N: Charles Hardin F: package/alsa-plugins/ N: Chris Packham F: package/coremark/ F: package/coremark-pro/ F: package/gstreamer1/gst1-shark/ F: package/micropython/ F: package/micropython-lib/ F: package/syslog-ng/ N: Christian Kellermann F: package/python-pylibftdi/ N: Christian Stewart F: package/batman-adv/ F: package/containerd/ F: package/delve/ F: package/docker-cli/ F: package/docker-compose/ F: package/docker-engine/ F: package/docker-proxy/ F: package/fuse-overlayfs/ F: package/go/ F: package/go-bootstrap-stage1/ F: package/go-bootstrap-stage2/ F: package/gocryptfs/ F: package/mbpfan/ F: package/mosh/ F: package/pkg-golang.mk F: package/rtl8821au/ F: package/runc/ F: package/tini/ N: Christophe Priouzeau F: board/stmicroelectronics/stm32f429-disco/ F: board/stmicroelectronics/stm32f469-disco/ F: configs/stm32f429_disco_defconfig F: configs/stm32f469_disco_defconfig N: Christophe Vu-Brugier F: package/drbd-utils/ F: package/iotop/ F: package/python-configshell-fb/ F: package/python-rtslib-fb/ F: package/python-urwid/ F: package/targetcli-fb/ N: Christopher McCrory F: package/perl-appconfig/ F: package/perl-astro-suntime/ F: package/perl-class-load/ F: package/perl-class-std/ F: package/perl-class-std-fast/ F: package/perl-data-dump/ F: package/perl-data-optlist/ F: package/perl-data-uuid/ F: package/perl-date-manip/ F: package/perl-dbd-mysql/ F: package/perl-dbi/ F: package/perl-device-serialport/ F: package/perl-dist-checkconflicts/ F: package/perl-file-slurp/ F: package/perl-io-interface/ F: package/perl-io-socket-multicast/ F: package/perl-json-maybexs/ F: package/perl-mime-tools/ F: package/perl-module-implementation/ F: package/perl-module-runtime/ F: package/perl-number-bytes-human/ F: package/perl-package-stash/ F: package/perl-params-util/ F: package/perl-sub-install/ F: package/perl-sys-cpu/ F: package/perl-sys-meminfo/ F: package/perl-sys-mmap/ F: package/perl-time-parsedate/ F: package/perl-x10/ N: Clayton Shotwell F: package/audit/ F: package/checkpolicy/ F: package/cpio/ F: package/libcgroup/ F: package/libee/ F: package/libestr/ F: package/liblogging/ F: package/libselinux/ F: package/libsemanage/ F: package/libsepol/ F: package/policycoreutils/ N: Clément Péron F: board/beelink/gs1/ F: configs/beelink_gs1_defconfig N: Corentin Guillevic F: package/libloki/ N: Cyril Bur F: arch/Config.in.powerpc F: package/kvm-unit-tests N: Dagg Stompler F: board/hardkernel/odroidc2/ F: configs/odroidc2_defconfig F: package/meson-tools/ F: package/odroidc2-firmware/ N: Daniel J. Leach F: package/dacapo/ N: Daniel Lang F: package/paho-mqtt-cpp/ N: Damien Lanson F: package/libvdpau/ F: package/log4cpp/ N: Daniel Nicoletti F: package/cutelyst/ N: Daniel Price F: package/nodejs/ F: package/redis/ N: Daniel Sangue F: package/libftdi1/ N: Danilo Bargen F: board/pcengines/apu2/ F: configs/pcengines_apu2_defconfig N: Danomi Manchego F: package/cjson/ F: package/jq/ F: package/libwebsockets/ F: package/ljsyscall/ F: package/lua-cjson/ F: package/luaexpat/ F: package/xinetd/ N: David Bachelart F: package/ccrypt/ F: package/dos2unix/ F: package/ipmiutil/ F: package/jsmn/ F: package/python-daemon/ F: package/sslh/ F: package/udpxy/ N: David Bender F: package/benejson/ F: package/cgic/ F: package/freeradius-client/ F: package/openldap/ N: David du Colombier <0intro@gmail.com> F: package/x264/ N: David GOUARIN F: package/librelp/ F: package/libtalloc/ N: David Lechner F: board/lego/ev3/ F: configs/lego_ev3_defconfig F: linux/linux-ext-ev3dev-linux-drivers.mk F: package/brickd/ F: package/ev3dev-linux-drivers/ N: Davide Viti F: board/friendlyarm/nanopi-r1/ F: configs/friendlyarm_nanopi_r1_defconfig F: package/flann/ F: package/python-paho-mqtt/ F: package/qhull/ F: package/tcllib/ N: Denis Bodor F: package/libstrophe/ N: Derrick Lyndon Pallas F: package/ipcalc/ N: Dick Olsson F: board/aarch64-efi/ F: board/pc/ F: board/qemu/aarch64-sbsa/ F: boot/arm-trusted-firmware/ F: boot/edk2/ F: configs/qemu_aarch64_sbsa_defconfig F: package/bearssl/ F: package/bitcoin/ F: package/edk2-platforms/ F: package/execline/ F: package/mdevd/ F: package/s6-dns/ F: package/s6-linux-init/ F: package/s6-linux-utils/ F: package/s6-networking/ F: package/s6-portable-utils/ F: package/s6-rc/ F: package/s6/ F: package/skalibs/ F: support/testing/tests/boot/test_edk2.py N: Dimitrios Siganos F: package/wireless-regdb/ N: Dominik Faessler F: package/logsurfer/ F: package/python-id3/ N: Doug Kehn F: package/nss-pam-ldapd/ F: package/sp-oops-extract/ F: package/unscd/ N: Dushara Jayasinghe F: package/prosody/ N: Edgar Bonet F: board/acmesystems/acqua-a5/ F: configs/acmesystems_acqua_a5_256mb_defconfig F: configs/acmesystems_acqua_a5_512mb_defconfig N: Eloi Bail F: package/bayer2rgb-neon/ F: package/gstreamer1/gst1-plugins-bayer2rgb-neon/ N: Eric Le Bihan F: docs/manual/adding-packages-meson.txt F: package/adwaita-icon-theme/ F: package/darkhttpd/ F: package/eudev/ F: package/execline/ F: package/hicolor-icon-theme/ F: package/jemalloc/ F: package/mdevd/ F: package/meson/ F: package/ninja/ F: package/pkg-meson.mk F: package/rust-bin/ F: package/rust/ F: package/s6/ F: package/s6-dns/ F: package/s6-linux-init/ F: package/s6-linux-utils/ F: package/s6-networking/ F: package/s6-portable-utils/ F: package/s6-rc/ F: package/skalibs/ F: package/smack/ F: package/xvisor/ N: Eric Limpens F: package/pifmrds/ F: package/ympd/ N: Erico Nunes F: board/aarch64-efi/ F: configs/aarch64_efi_defconfig F: package/acpica/ F: package/acpitool/ F: package/efibootmgr/ F: package/efivar/ F: package/fwts/ F: package/spi-tools/ F: package/xdotool/ F: configs/pc_x86_64_* N: Erik Larsson F: package/imx-mkimage/ N: Erik Stromdahl F: package/mxsldr/ N: Ernesto L. Williams Jr F: package/szip/ N: Esben Haabendal F: boot/gummiboot/ F: package/python-kiwisolver/ N: Etienne Carriere F: boot/optee-os/ F: package/optee-benchmark/ F: package/optee-client/ F: package/optee-examples/ F: package/optee-test/ N: Eugene Tarassov F: package/tcf-agent/ N: Evan Zelkowitz F: package/sdl_gfx/ N: Ezequiel Garcia F: board/ci20/ F: configs/ci20_defconfig F: arch/Config.in.nios2 F: package/fio/ F: package/iptraf-ng/ F: package/jimtcl/ F: package/mimic/ F: package/nodm/ F: package/openbox/ F: package/rtl8723bs/ F: package/supertuxkart/ N: Fabio Estevam F: board/freescale/warpboard/ F: board/warp7/ F: configs/freescale_imx* F: configs/imx23evk_defconfig F: configs/imx6-sabre* F: configs/imx6slevk_defconfig F: configs/imx6sx-sdb_defconfig F: configs/imx6ulevk_defconfig F: configs/imx6ullevk_defconfig F: configs/imx6ulpico_defconfig F: configs/imx7d-sdb_defconfig F: configs/imx7dpico_defconfig F: configs/imx8mqevk_defconfig F: configs/mx25pdk_defconfig F: configs/mx51evk_defconfig F: configs/mx53loco_defconfig F: configs/mx6cubox_defconfig F: configs/mx6sx_udoo_neo_defconfig F: configs/mx6udoo_defconfig F: configs/wandboard_defconfig F: configs/warp7_defconfig F: configs/warpboard_defconfig F: package/atest/ F: package/kmscube/ N: Fabio Porcedda F: package/netsurf-buildsystem/ N: Fabio Urquiza F: package/bitcoin/ N: Fabrice Fontaine F: package/domoticz/ F: package/libmediaart/ F: package/libmaxminddb/ F: package/openzwave/ N: Fabrice Fontaine F: package/bearssl/ F: package/belle-sip/ F: package/belr/ F: package/boinc/ F: package/cairo/ F: package/daq3/ F: package/duktape/ F: package/expat/ F: package/flatbuffers/ F: package/gerbera/ F: package/gtksourceview/ F: package/gssdp/ F: package/gupnp/ F: package/gupnp-dlna/ F: package/gupnp-tools/ F: package/haproxy/ F: package/hiredis/ F: package/i2pd/ F: package/igd2-for-linux/ F: package/json-c/ F: package/lcms2/ F: package/lftp/ F: package/libcap-ng/ F: package/libcdio-paranoia/ F: package/libcgicc/ F: package/libconfig/ F: package/libcue/ F: package/libebml/ F: package/libgee/ F: package/libglib2/ F: package/libgtk2/ F: package/libgtk3/ F: package/libhtp/ F: package/libidn/ F: package/libidn2/ F: package/libjpeg/ F: package/liblockfile/ F: package/libmatroska/ F: package/libmpdclient/ F: package/libnetfilter_conntrack/ F: package/libnetfilter_queue/ F: package/libnpupnp/ F: package/liboping/ F: package/libpfm4/ F: package/libraw/ F: package/libraw1394/ F: package/libroxml/ F: package/librsvg/ F: package/librsync/ F: package/libsoup/ F: package/libsoxr/ F: package/libupnp/ F: package/libv4l/ F: package/libxslt/ F: package/mbedtls/ F: package/minissdpd/ F: package/minizip/ F: package/mongodb/ F: package/motion/ F: package/mutt/ F: package/ncmpc/ F: package/oniguruma/ F: package/opencv4/ F: package/oprofile/ F: package/pcmanfm/ F: package/perl-extutils-pkgconfig/ F: package/python-backcall/ F: package/python-jedi/ F: package/python-parso/ F: package/python-yatl/ F: package/rocksdb/ F: package/rtl_433/ F: package/rygel/ F: package/safeclib/ F: package/snort3/ F: package/suricata/ F: package/tinycbor/ F: package/tinydtls/ F: package/tinymembench/ F: package/whois/ N: Fabrice Goucem F: board/freescale/imx6ullevk/ F: configs/freescale_imx6ullevk_defconfig N: Falco Hyfing F: package/python-pymodbus/ N: Filip Skoneczny F: board/sinovoip/m1-plus F: configs/bananapi_m1_plus_defconfig N: Floris Bos F: package/ipmitool/ F: package/odhcploc/ N: Francisco Gonzalez F: package/ser2net/ N: Francois Perrad F: board/olimex/a20_olinuxino F: board/olimex/imx233_olinuxino/ F: configs/olimex_a20_olinuxino_* F: configs/olimex_imx233_olinuxino_defconfig F: package/4th/ F: package/cgilua/ F: package/chipmunk/ F: package/cog/ F: package/collectl/ F: package/copas/ F: package/coxpcall/ F: package/dado/ F: package/ficl/ F: package/janet/ F: package/libtomcrypt/ F: package/libtommath/ F: package/libwpe/ F: package/linenoise/ F: package/ljlinenoise/ F: package/lpeg/ F: package/lpty/ F: package/lrandom/ F: package/lsqlite3/ F: package/lua* F: package/lzlib/ F: package/moarvm/ F: package/mstpd/ F: package/netsurf/ F: package/perl* F: package/pkg-perl.mk F: package/pkg-luarocks.mk F: package/quickjs/ F: package/rings/ F: package/tekui/ F: package/wpebackend-fdo/ F: package/wpewebkit/ F: package/wsapi/ F: package/wsapi-fcgi/ F: package/wsapi-xavante/ F: package/xavante/ F: support/testing/tests/package/test_lua* F: utils/scancpan N: Frank Hunleth F: package/am335x-pru-package/ F: package/libconfuse/ F: package/libdmtx/ F: package/libsodium/ F: package/php-amqp/ F: package/python-cherrypy/ F: package/rabbitmq-server/ F: package/sane-backends/ F: package/ucl/ F: package/upx/ F: package/zxing-cpp/ N: Frank Vanbever F: package/elixir/ F: package/libmodsecurity/ F: package/nginx-modsecurity/ N: Gaël Portay F: package/qt5/qt5virtualkeyboard/ F: package/qt5/qt5webengine/ F: package/qt5/qt5webkit/ F: package/qt5/qt5webkit-examples/ N: Gao Xiang F: package/erofs-utils/ N: Gary Bisson F: board/boundarydevices/ F: configs/nitrogen* F: package/freescale-imx/ F: package/gstreamer1/gst1-imx/ F: package/libimxvpuapi/ F: package/mfgtools/ F: package/sshpass/ F: package/x11r7/xdriver_xf86-video-imx-viv/ N: Geoff Levand F: package/flannel/ N: Geoffrey Ragot F: package/python-pycli/ F: package/python-pyyaml/ N: Gerome Burlats F: board/qemu/ F: configs/qemu_* N: Gilles Talis F: board/freescale/imx8mmevk/ F: configs/freescale_imx8mmevk_defconfig F: package/cctz/ F: package/faad2/ F: package/fdk-aac/ F: package/httping/ F: package/iozone/ F: package/leptonica/ F: package/libeXosip2/ F: package/libolm/ F: package/libosip2/ F: package/ocrad/ F: package/opusfile/ F: package/restclient-cpp/ F: package/tesseract-ocr/ F: package/webp/ F: package/xapian/ N: Giulio Benetti F: board/olimex/a* F: configs/amarula_vyasa_rk3288_defconfig F: configs/asus_tinker_rk3288_defconfig F: configs/olimex_a* F: package/at/ F: package/binutils/ F: package/erlang-jiffy/ F: package/gcc/ F: package/harfbuzz/ F: package/libfuse3/ F: package/libnspr/ F: package/libnss/ F: package/minicom/ F: package/nfs-utils/ F: package/python-uvloop/ F: package/sunxi-mali-mainline/ F: package/sunxi-mali-mainline-driver/ F: package/trace-cmd/ F: package/udisks/ F: toolchain/ N: Gregory Dymarek F: package/ding-libs/ F: package/gengetopt/ F: package/janus-gateway/ F: package/libnice/ F: package/libsrtp/ F: package/libwebsock/ F: package/sofia-sip/ N: Grzegorz Blach F: fs/f2fs/ F: package/bluez5_utils-headers/ F: package/f2fs-tools/ F: package/graphicsmagick/ F: package/pigpio/ F: package/python-aioblescan/ F: package/python-bluezero/ F: package/python-crontab/ F: package/python-falcon/ F: package/python-ifaddr/ F: package/python-hiredis/ F: package/python-mimeparse/ F: package/python-pigpio/ F: package/python-pyjwt/ F: package/python-redis/ F: package/python-rpi-ws281x/ F: package/python-wtforms/ N: Guillaume William Brs F: package/libnids/ F: package/libxcrypt/ F: package/liquid-dsp/ F: package/pixiewps/ F: package/python-pybind/ F: package/reaver/ N: Guo Ren F: arch/Config.in.csky F: board/csky/ F: configs/csky_* N: Gustavo Heinz F: package/python-m2crypto/ N: Gustavo Pimentel F: configs/arm_juno_defconfig F: board/arm/juno/ N: Gwenhael Goavec-Merou F: board/terasic/de10nano_cyclone5/ F: configs/terasic_de10nano_cyclone5_defconfig F: package/gnuradio/ F: package/gqrx/ F: package/gr-osmosdr/ F: package/librtlsdr/ F: package/libusbgx/ F: package/matio/ F: package/python-cheetah/ F: package/python-markdown/ F: package/python-remi/ F: package/python-sip/ F: package/uhd/ N: Heiko Thiery F: board/kontron/pitx-imx8m/ F: configs/kontron_pitx_imx8m_defconfig F: package/altera-stapl/ F: package/ipmitool/ F: package/libnetconf2/ F: package/libyang/ F: package/linuxptp/ F: package/netopeer2/ F: package/sysrepo/ N: Henrique Camargo F: package/json-glib/ N: Hervé Codina F: package/dtbocfg/ F: package/libdbi/ F: package/libdbi-drivers/ F: package/lua-augeas/ F: support/testing/tests/package/test_dtbocfg.py F: support/testing/tests/package/test_lua_augeas.py N: Hervé Codina F: package/php-pecl-dbus/ F: support/testing/tests/package/test_php_pecl_dbus.py N: Hiroshi Kawashima F: package/gauche/ F: package/gmrender-resurrect/ F: package/squeezelite/ N: Horatiu Vultur F: package/easyframes/ F: package/mrp/ N: Ian Haylock F: package/python-rpi-gpio/ N: Ignacy Gawędzki F: package/angularjs/ N: Ilias Apalodimas F: package/keepalived/ N: Ilya Averyanov F: package/exempi/ N: Ismael Luceno F: package/axel/ F: package/mawk/ N: Jagan Teki F: board/amarula/ F: board/asus/ F: board/bananapi/ F: board/engicam/ F: board/friendlyarm/nanopi-a64/ F: board/friendlyarm/nanopi-neo2/ F: board/olimex/a33_olinuxino/ F: board/olimex/a64-olinuxino/ F: board/orangepi/orangepi-lite2/ F: board/orangepi/orangepi-one-plus F: board/orangepi/orangepi-pc2/ F: board/orangepi/orangepi-prime/ F: board/orangepi/orangepi-win/ F: board/orangepi/orangepi-zero-plus2/ F: board/pine64/ F: configs/amarula_a64_relic_defconfig F: configs/amarula_vyasa_rk3288_defconfig F: configs/asus_tinker_rk3288_defconfig F: configs/bananapi_m1_defconfig F: configs/bananapi_m64_defconfig F: configs/engicam_imx6qdl_icore_defconfig F: configs/engicam_imx6qdl_icore_qt5_defconfig F: configs/engicam_imx6qdl_icore_rqs_defconfig F: configs/engicam_imx6ul_geam_defconfig F: configs/engicam_imx6ul_isiot_defconfig F: configs/friendlyarm_nanopi_a64_defconfig F: configs/friendlyarm_nanopi_neo2_defconfig F: configs/olimex_a33_olinuxino_defconfig F: configs/olimex_a64_olinuxino_defconfig F: configs/orangepi_lite2_defconfig F: configs/orangepi_one_plus_defconfig F: configs/orangepi_pc2_defconfig F: configs/orangepi_prime_defconfig F: configs/orangepi_win_defconfig F: configs/orangepi_zero_plus2_defconfig F: configs/pine64_defconfig F: configs/pine64_sopine_defconfig N: James Hilliard F: package/apcupsd/ F: package/exfatprogs/ F: package/gensio/ F: package/lua-std-debug/ F: package/lua-std-normalize/ F: package/pipewire/ F: package/python-aioconsole/ F: package/python-aiodns/ F: package/python-aiohttp/ F: package/python-aiohttp-cors/ F: package/python-aiohttp-debugtoolbar/ F: package/python-aiohttp-jinja2/ F: package/python-aiohttp-mako/ F: package/python-aiohttp-remotes/ F: package/python-aiohttp-security/ F: package/python-aiohttp-session/ F: package/python-aiohttp-sse/ F: package/python-aiologstash/ F: package/python-aiomonitor/ F: package/python-aiojobs/ F: package/python-aioprocessing/ F: package/python-aiorwlock/ F: package/python-aiosignal/ F: package/python-aiozipkin/ F: package/python-argon2-cffi/ F: package/python-async-lru/ F: package/python-async-timeout/ F: package/python-bidict/ F: package/python-brotli/ F: package/python-cbor2/ F: package/python-cchardet/ F: package/python-charset-normalizer/ F: package/python-flatbuffers/ F: package/python-frozenlist/ F: package/python-greenlet/ F: package/python-janus/ F: package/python-logstash/ F: package/python-multidict/ F: package/python-pycares/ F: package/python-snappy/ F: package/python-sockjs/ F: package/python-terminaltables/ F: package/python-yarl/ N: James Knight F: package/atkmm/ F: package/cairomm/ F: package/google-material-design-icons/ F: package/glibmm/ F: package/gtkmm3/ F: package/libpqxx/ F: package/pangomm/ F: package/rpm/ F: package/yad/ N: Jan Heylen F: package/opentracing-cpp/ N: Jan Kraval F: board/orangepi/orangepi-lite F: configs/orangepi_lite_defconfig N: Jan Kundrát F: configs/solidrun_clearfog_defconfig F: board/solidrun/clearfog/ F: package/libnetconf2/ F: package/libyang/ F: package/sysrepo/ N: Jan Pedersen F: package/zip/ N: Jared Bents F: package/libvirt/ N: Jarkko Sakkinen F: package/quota/ N: Jason Pruitt F: package/librtlsdr/ N: Jean Burgat F: package/openfpgaloader/ N: Jens Kleintje F: package/gcnano-binaries/ N: Jens Rosenboom F: package/sl/ N: Jens Zettelmeyer F: package/batctl/ N: Jeremy Rosen F: package/fxload/ N: Jérôme Oufella F: package/libdri2/ F: package/qt-webkit-kiosk/ N: Jérôme Pouiller F: package/apitrace/ F: package/freescale-imx/gpu-amd-bin-mx51/ F: package/freescale-imx/libz160/ F: package/lxc/ F: package/strongswan/ F: package/wmctrl/ F: package/x11r7/xdriver_xf86-video-imx/ F: package/x11r7/xdriver_xf86-video-imx-viv/ N: Jianhui Zhao F: package/libuhttpd/ F: package/libuwsc/ F: package/rtty/ N: Joachim Wiberg F: configs/globalscale_espressobin_defconfig F: board/globalscale/espressobin/ F: package/inadyn/ F: package/libite/ F: package/libteam/ F: package/libuev/ F: package/mg/ F: package/mrouted/ F: package/netcalc/ F: package/smcroute/ F: package/ssdp-responder/ F: package/sysklogd/ F: package/watchdogd/ N: Joao Pinto F: board/synopsys/vdk/ F: configs/snps_aarch64_vdk_defconfig N: Jochen Baltes F: package/altera-stapl N: Joel Carlson F: package/c-capnproto/ F: package/capnproto/ F: package/cmocka/ F: package/flatcc/ F: package/libcorrect/ N: Joel Stanley F: package/pdbg/ F: board/qemu/ppc64le-pseries/ F: configs/qemu_ppc64le_pseries_defconfig F: board/qemu/ppc-mac99/ F: configs/qemu_ppc_mac99_defconfig N: Johan Derycke F: package/python-libconfig/ N: Johan Oudinet F: package/ejabberd/ F: package/erlang-base64url/ F: package/erlang-eimp/ F: package/erlang-goldrush/ F: package/erlang-idna/ F: package/erlang-jiffy/ F: package/erlang-jose/ F: package/erlang-lager/ F: package/erlang-p1-acme/ F: package/erlang-p1-cache-tab/ F: package/erlang-p1-mqtree/ F: package/erlang-p1-oauth2/ F: package/erlang-p1-pkix/ F: package/erlang-p1-sip/ F: package/erlang-p1-stringprep/ F: package/erlang-p1-stun/ F: package/erlang-p1-tls/ F: package/erlang-p1-utils/ F: package/erlang-p1-xml/ F: package/erlang-p1-xmpp/ F: package/erlang-p1-yaml/ F: package/erlang-p1-yconf/ F: package/erlang-p1-zlib/ F: package/nginx-dav-ext/ F: package/vuejs/ N: John Stile F: package/dhcpcd/ N: John Faith F: package/python-inflection/ F: package/sdbusplus/ N: Jonathan Ben Avraham F: arch/Config.in.xtensa F: package/autofs/ F: package/dawgdic/ F: package/libphidget/ F: package/phidgetwebservice/ F: package/rapidxml/ F: package/sphinxbase/ N: Joris Offouga F: package/python-colorlog/ F: package/python-simplelogging/ N: Jörg Krause F: board/lemaker/bananapro/ F: configs/bananapro_defconfig F: package/augeas/ F: package/bluez-alsa/ F: package/caps/ F: package/freescale-imx/imx-alsa-plugins/ F: package/libopusenc/ F: package/libupnpp/ F: package/luv/ F: package/luvi/ F: package/mpd/ F: package/shairport-sync/ F: package/swupdate/ F: package/upmpdcli/ F: package/wavemon/ N: Joris Lijssens F: package/emlog/ F: package/libcoap/ F: package/libnet/ F: package/libuio/ F: package/netsniff-ng/ F: package/rabbitmq-c/ N: José Luis Salvador Rufo F: package/zfs/ F: support/testing/tests/package/test_zfs.py N: José Pekkarinen F: package/softhsm2/ N: Joseph Kogut F: package/at-spi2-atk/ F: package/at-spi2-core/ F: package/clang/ F: package/earlyoom/ F: package/gconf/ F: package/libnss/ F: package/lld/ F: package/llvm/ F: package/python-cython/ F: package/python-pycups/ F: package/python-raven/ F: package/python-schedule/ F: package/python-sentry-sdk/ F: package/python-websockets/ F: package/python-xlib/ F: package/sentry-native/ F: package/unclutter-xfixes/ N: Joshua Henderson F: package/qt5/qt5wayland/ N: Jugurtha BELKALEM F: package/python-aiofiles/ F: package/python-crayons/ F: package/python-cycler/ F: package/python-matplotlib/ F: package/python-opcua-asyncio/ F: package/python-piexif/ N: Juha Rantanen F: package/acsccid/ N: Julian Scheel F: package/bitstream/ F: package/cbootimage/ F: package/cryptopp/ F: package/dvblast/ F: package/tegrarcm/ N: Julien Boibessot F: board/armadeus/ F: configs/armadeus* F: package/abootimg/ F: package/gpm/ F: package/lbreakout2/ F: package/libcddb/ F: package/libmodbus/ F: package/ltris/ F: package/opentyrian/ F: package/python-pygame/ N: Julien Corjon F: package/qt5/ N: Julien Grossholtz F: board/technologic/ts7680/ F: configs/ts7680_defconfig F: package/paho-mqtt-c N: Julien Olivain F: board/qmtech/zynq/ F: board/technexion/imx8mmpico/ F: board/technexion/imx8mpico/ F: configs/imx8mmpico_defconfig F: configs/imx8mpico_defconfig F: configs/zynq_qmtech_defconfig F: package/fluid-soundfont/ F: package/fluidsynth/ F: package/glslsandbox-player/ F: package/ptm2human/ F: package/python-pyalsa/ N: Julien Viard de Galbert F: package/dieharder/ F: package/easy-rsa/ N: Justin Maggard F: package/dtach/ N: Kamel Bouhara F: package/libodb-boost/ F: package/libodb-mysql/ F: package/libqb/ F: package/usbguard/ N: Karoly Kasza F: package/irqbalance/ F: package/openvmtools/ N: Kelvin Cheung F: package/cpuload/ F: package/bwm-ng/ F: package/ramsmp/ N: Kieran Bingham F: package/libcamera/ N: Klaus Heinrich Kiwi F: package/wqy-zenhei/ N: Koen Martens F: package/capnproto/ F: package/linuxconsoletools/ N: Kurt Van Dijck F: package/bcusdk/ F: package/libpthsem/ F: package/nilfs-utils/ N: Laurent Cans F: package/aircrack-ng/ N: Laurent Charpentier F: package/open-lldp/ N: Lee Jones F: boot/afboot-stm32/ N: Leon Anavi F: board/olimex/a10_olinuxino F: configs/olimex_a10_olinuxino_lime_defconfig N: Leonid Yuriev F: package/libmdbx/ N: Lionel Flandrin F: package/python-babel/ F: package/python-daemonize/ F: package/python-flask/ F: package/python-flask-babel/ F: package/python-gunicorn/ F: support/testing/tests/package/sample_python_flask.py F: support/testing/tests/package/test_python_flask.py N: Lionel Orry F: package/mongrel2/ N: Lothar Felten F: board/bananapi/bananapi-m2-ultra/ F: board/beaglebone/ F: configs/bananapi_m2_ultra_defconfig F: configs/beaglebone_defconfig F: configs/beaglebone_qt5_defconfig F: package/ti-sgx-demos/ F: package/ti-sgx-km/ F: package/ti-sgx-um/ N: Louis Aussedat F: board/friendlyarm/nanopi-neo-plus2/ F: configs/friendlyarm_nanopi_neo_plus2_defconfig F: package/mfoc F: package/libpam-nfc F: package/python-dnspython/ F: package/python-future/ F: package/python-huepy/ F: package/python-tqdm/ N: Louis-Paul Cordier F: package/intel-gmmlib/ F: package/intel-mediadriver/ F: package/intel-mediasdk/ N: Luca Ceresoli F: board/olimex/a20_olinuxino/ F: board/zynq/ F: board/zynqmp/ F: configs/olimex_a20_olinuxino_* F: configs/zynq_microzed_defconfig F: configs/zynq_zed_defconfig F: configs/zynq_zc706_defconfig F: configs/zynqmp_zcu106_defconfig F: package/agentpp/ F: package/exim/ F: package/libpjsip/ F: package/qpid-proton/ F: package/rtl8188eu/ F: package/snmppp/ F: package/stm32flash/ F: package/unzip/ F: support/legal-info/ N: Lucas De Marchi F: package/fswebcam/ N: Lubomir Rintel F: board/olpc/ F: configs/olpc_xo1_defconfig F: configs/olpc_xo175_defconfig N: Ludovic Desroches F: board/atmel/ F: board/microchip/ F: configs/at91* F: configs/atmel_* F: configs/microchip_* F: package/fb-test-app/ F: package/python-json-schema-validator/ F: package/python-keyring/ F: package/python-simplejson/ F: package/python-versiontools/ F: package/wilc1000-firmware/ N: Maeva Manuel F: board/freescale/imx8qmmek/ F: configs/freescale_imx8qmmek_defconfig F: package/freescale-imx/imx-seco/ N: Mahyar Koshkouei F: package/ffmpeg/ F: package/mpv/ F: package/rpi-firmware/ F: package/rpi-userland/ N: Manuel Vögele F: package/python-pyqt5/ F: package/python-requests-toolbelt/ N: Marcin Bis F: package/bluez5_utils/ F: package/cc-tool/ F: package/ecryptfs-utils/ N: Marcin Niestroj F: board/grinn/ F: board/orangepi/orangepi-zero-plus/ F: configs/grinn_* F: configs/orangepi_zero_plus_defconfig F: package/argparse/ F: package/dt-utils/ F: package/easydbus/ F: package/lua-flu/ F: package/lua-stdlib/ F: package/luaossl/ F: package/murata-cyw-fw/ F: package/netdata/ F: package/python-ansicolors/ F: package/python-bleak/ F: package/python-dbus-fast/ F: package/python-dbus-next/ F: package/python-iniconfig/ F: package/python-intelhex/ F: package/python-packaging/ F: package/python-pluggy/ F: package/python-pytest/ F: package/python-pytest-asyncio/ F: package/python-typing-extensions/ F: package/python-xmodem/ F: package/rs485conf/ F: package/turbolua/ F: support/testing/tests/package/sample_python_dbus_fast.py F: support/testing/tests/package/sample_python_dbus_next.py F: support/testing/tests/package/sample_python_pytest.py F: support/testing/tests/package/sample_python_pytest_asyncio.py F: support/testing/tests/package/test_netdata.py F: support/testing/tests/package/test_python_dbus_next.py F: support/testing/tests/package/test_python_pytest.py F: support/testing/tests/package/test_python_pytest_asyncio.py N: Marcus Folkesson F: package/libostree/ F: package/libselinux/ F: package/libsemanage/ F: package/libsepol/ F: package/selinux-python/ F: utils/config F: utils/diffconfig N: Marek Belisko F: board/friendlyarm/nanopi-neo4/ F: configs/friendlyarm_nanopi_neo4_defconfig F: package/libatasmart/ F: package/polkit/ F: package/sg3_utils/ F: package/udisks/ N: Mario Lang F: package/brltty/ F: package/lynx/ N: Mario Rugiero F: package/ratpoison/ N: Mark Corbin F: arch/arch.mk.riscv F: arch/Config.in.riscv F: board/qemu/riscv32-virt/ F: board/qemu/riscv64-virt/ F: configs/qemu_riscv32_virt_defconfig F: configs/qemu_riscv64_virt_defconfig N: Martin Bark F: board/raspberrypi/ F: configs/raspberrypi3_defconfig F: package/ca-certificates/ F: package/connman/ F: package/nodejs/ F: package/rpi-bt-firmware/ F: package/rpi-firmware/ F: package/rpi-wifi-firmware/ F: package/tzdata/ F: package/zic/ N: Martin Hicks F: package/cryptsetup/ N: Martin Kepplinger F: package/tslib/ F: package/x11r7/xdriver_xf86-input-tslib/ F: package/x11vnc/ N: Masahiro Yamada F: board/arm/foundation-v8/ F: configs/arm_foundationv8_defconfig N: Mathieu Audat F: board/technologic/ts4900/ F: configs/ts4900_defconfig F: package/ts4900-fpga/ N: Matt Weber F: board/freescale/p* F: board/freescale/t* F: board/qemu/ppc64-e5500/ F: configs/freescale_p* F: configs/freescale_t* F: configs/qemu_ppc64_e5500_defconfig F: package/argp-standalone/ F: package/aufs/ F: package/aufs-util/ F: package/bc/ F: package/bridge-utils/ F: package/checkpolicy/ F: package/checksec/ F: package/cgroupfs-mount/ F: package/crda/ F: package/cunit/ F: package/dacapo/ F: package/davici/ F: package/dnsmasq/ F: package/dosfstools/ F: package/eigen/ F: package/ethtool/ F: package/flashbench/ F: package/fmc/ F: package/fmlib/ F: package/git/ F: package/gnutls/ F: package/hostapd/ F: package/i2c-tools/ F: package/ifplugd/ F: package/igmpproxy/ F: package/iperf/ F: package/iperf3/ F: package/iputils/ F: package/iw/ F: package/jitterentropy-library/ F: package/kvm-unit-tests/ F: package/kvmtool/ F: package/libcsv/ F: package/libcurl/ F: package/libeastl/ F: package/libfcgi/ F: package/libopenssl/ F: package/libselinux/ F: package/libsemanage/ F: package/libsepol/ F: package/libssh2/ F: package/libtalloc/ F: package/libqmi/ F: package/lighttpd/ F: package/logrotate/ F: package/makedevs/ F: package/memtester/ F: package/mii-diag/ F: package/mrouted/ F: package/mtd/ F: package/mtools/ F: package/nginx-upload/ F: package/omniorb/ F: package/openresolv/ F: package/paxtest/ F: package/picocom/ F: package/policycoreutils/ F: package/proftpd/ F: package/protobuf-c/ F: package/protobuf/ F: package/python-bunch/ F: package/python-colorama/ F: package/python-filelock/ F: package/python-flask-cors/ F: package/python-iptables/ F: package/python-ipy/ F: package/python-iwlib/ F: package/python-posix-ipc/ F: package/python-pycairo/ F: package/python-pypcap/ F: package/python-pyrex/ F: package/python-pysftp/ F: package/python-tinyrpc/ F: package/python-txdbus/ F: package/qoriq-rcw/ F: package/raptor/ F: package/rng-tools/ F: package/rsyslog/ F: package/setools/ F: package/sloci-image/ F: package/smcroute/ F: package/tclap/ F: package/tini/ F: package/uboot-tools/ F: package/unionfs/ F: package/valijson/ F: package/wpa_supplicant/ F: package/wireless_tools/ F: package/xen/ F: package/xml-security-c/ F: support/testing/tests/fs/test_oci.py F: support/testing/tests/package/br2-external/openjdk/ F: support/testing/tests/package/test_openjdk.py F: support/testing/tests/package/test_opkg/ F: support/testing/tests/package/test_opkg.py N: Mauro Condarelli F: package/mc/ F: package/python-autobahn/ F: package/python-cbor/ F: package/python-characteristic/ F: package/python-click/ F: package/python-crossbar/ F: package/python-lmdb/ F: package/python-mistune/ F: package/python-netaddr/ F: package/python-pygments/ F: package/python-pynacl/ F: package/python-pytrie/ F: package/python-service-identity/ F: package/python-setproctitle/ F: package/python-shutilwhich/ F: package/python-treq/ F: package/python-txaio/ F: package/python-ujson/ F: package/python-wsaccel/ N: Max Filippov F: arch/Config.in.xtensa N: Maxim Kochetkov F: package/libgeos/ F: package/libosmium/ F: package/osm2pgsql/ F: package/postgis/ F: package/protozero/ F: package/timescaledb/ N: Michael Durrant F: board/arcturus/ F: configs/arcturus_ucp1020_defconfig F: configs/arcturus_ucls1012a_defconfig N: Michael Fischer F: package/gnuplot/ F: package/sdl2/ N: Michael Nosthoff F: package/grpc/ F: package/gtest/ F: package/libabseil-cpp/ F: package/protobuf/ F: package/re2/ N: Michael Rommel F: package/knock/ F: package/python-crc16/ F: package/python-pyzmq/ N: Michael Trimarchi F: package/python-spidev/ N: Michael Vetter F: package/jasper/ F: package/libstrophe/ N: Michael Walle F: board/kontron/smarc-sal28/ F: configs/kontron_smarc_sal28_defconfig F: package/libavl/ F: package/rcw-smarc-sal28/ N: Michał Łyszczek F: board/altera/socrates_cyclone5/ F: board/pine64/rock64 F: configs/rock64_defconfig F: configs/socrates_cyclone5_defconfig F: package/netifrc/ F: package/openrc/ F: package/skeleton-init-openrc/ N: Michel Stempin F: board/licheepi/ F: configs/licheepi_zero_defconfig N: Mike Frampton F: package/qcom-db410c-firmware/ N: Mike Harmony F: board/sinovoip/m2-plus/ F: configs/bananapi_m2_plus_defconfig N: Mikhail Boiko F: package/libfribidi/ N: Min Xu F: package/shadowsocks-libev/ N: Mircea Gliga F: package/mbuffer/ N: Murat Demirten F: package/jpeg-turbo/ F: package/libgeotiff/ N: Mylène Josserand F: package/rtl8723bu/ N: Nathaniel Roach F: package/bandwidthd/ F: package/libgudev/ N: Naumann Andreas F: package/evemu/ F: package/libevdev/ F: package/pkg-qmake.mk F: package/qt5/qt5opcua/ N: Nicola Di Lieto F: package/uacme/ N: Nicholas Sielicki F: board/intel/galileo/ F: configs/galileo_defconfig N: Nicolas Carrier F: package/bmap-tools/ F: package/libdbi/ F: package/libdbi-drivers/ F: package/lua-augeas/ F: package/php-pecl-dbus/ F: package/php-xdebug/ F: package/python-augeas/ F: package/python-flask-expects-json/ F: package/python-git/ F: package/python-unittest-xml-reporting/ F: support/testing/tests/package/test_lua_augeas.py F: support/testing/tests/package/sample_bmap_tools.sh F: support/testing/tests/package/sample_python_augeas.py F: support/testing/tests/package/sample_python_flask_expects_json.py F: support/testing/tests/package/sample_python_git.py F: support/testing/tests/package/sample_python_unittest_xml_reporting.py F: support/testing/tests/package/test_bmap_tools.py F: support/testing/tests/package/test_php_pecl_dbus.py F: support/testing/tests/package/test_python_augeas.py F: support/testing/tests/package/test_python_flask_expects_json.py F: support/testing/tests/package/test_python_git.py F: support/testing/tests/package/test_python_unittest_xml_reporting.py N: Nicolas Cavallari F: package/libgit2/ N: Nicolas Serafini F: package/exiv2/ F: package/ofono/ N: Nikolay Dimitrov F: board/embest/riotboard/ F: configs/riotboard_defconfig N: Nimai Mahajan F: package/libucl/ N: Noé Rubinstein F: package/tpm-tools/ F: package/trousers/ N: Norbert Lange F: package/systemd/ F: package/tcf-agent/ N: Nylon Chen F: arch/Config.in.nds32 F: board/andes F: configs/andes_ae3xx_defconfig F: toolchain/toolchain-external/toolchain-external-andes-nds32/ N: Olaf Rempel F: package/ctorrent/ N: Oleksandr Zhadan F: board/arcturus/ F: configs/arcturus_ucp1020_defconfig F: configs/arcturus_ucls1012a_defconfig N: Oli Vogt F: package/python-django/ F: package/python-flup/ N: Olivier Matz F: package/python-pyelftools/ N: Olivier Schonken F: package/cups/ F: package/cups-filters/ F: package/ijs/ F: package/poppler/ F: package/qpdf/ F: package/openjpeg/ N: Olivier Singla F: package/shellinabox/ N: Parnell Springmeyer F: package/scrypt/ N: Pascal de Bruijn F: package/libargon2/ F: package/linux-tools/S10hyperv F: package/linux-tools/hyperv*.service F: package/linux-tools/linux-tool-hv.mk.in N: Pascal Huerst F: package/google-breakpad/ N: Patrick Gerber F: package/yavta/ N: Patrick Havelange F: support/testing/tests/package/test_lxc.py F: support/testing/tests/package/test_lxc/ N: Paul Cercueil F: package/libiio/ F: package/lightning/ F: package/umtprd/ N: Pedro Aguilar F: package/libunistring/ N: Peter Korsgaard F: board/arrow/avenger96/ F: board/beagleboneai/ F: board/minnowboard/ F: board/nezha/ F: board/librecomputer/lafrite/ F: board/nexbox/a95x/ F: board/openblocks/a6/ F: board/orangepi/ F: board/pandaboard/ F: board/roseapplepi/ F: boot/shim/ F: boot/sun20i-d1-spl/ F: configs/avenger96_defconfig F: configs/beagleboneai_defconfig F: configs/lafrite_defconfig F: configs/minnowboard_max-graphical_defconfig F: configs/minnowboard_max_defconfig F: configs/nexbox_a95x_defconfig F: configs/nezha_defconfig F: configs/openblocks_a6_defconfig F: configs/orangepi_pc_defconfig F: configs/orangepi_r1_defconfig F: configs/pandaboard_defconfig F: configs/roseapplepi_defconfig F: configs/sheevaplug_defconfig F: package/bats-core/ F: package/docker-compose/ F: package/dump1090/ F: package/fatcat/ F: package/flickcurl/ F: package/fscryptctl/ F: package/ifmetric/ F: package/jo/ F: package/jose/ F: package/libfastjson/ F: package/luksmeta/ F: package/lzop/ F: package/memtool/ F: package/mosquitto/ F: package/python-alsaaudio/ F: package/python-backports-ssl-match-hostname/ F: package/python-cached-property/ F: package/python-docker/ F: package/python-dockerpty/ F: package/python-docker-pycreds/ F: package/python-enum/ F: package/python-enum34/ F: package/python-functools32/ F: package/python-ipaddr/ F: package/python-pam/ F: package/python-psutil/ F: package/python-request-id/ F: package/python-semver/ F: package/python-texttable/ F: package/python-validators/ F: package/python-webob/ F: package/python-websocket-client/ F: package/sedutil/ F: package/tpm2-totp/ F: package/triggerhappy/ F: package/wireguard-linux-compat/ F: package/wireguard-tools/ F: support/testing/tests/package/test_docker_compose.py N: Peter Seiderer F: board/raspberrypi/ F: configs/raspberrypi*_defconfig F: package/assimp/ F: package/bcm2835/ F: package/ddrescue/ F: package/dejavu/ F: package/dillo/ F: package/edid-decode/ F: package/ell/ F: package/ghostscript-fonts/ F: package/gstreamer1/gst1-devtools/ F: package/gstreamer1/gst1-interpipe/ F: package/gstreamer1/gstreamer1-editing-services/ F: package/iwd/ F: package/libevdev/ F: package/libuev/ F: package/log4cplus/ F: package/postgresql/ F: package/python-colorzero/ F: package/python-flask-wtf/ F: package/python-gpiozero/ F: package/qt5/ F: package/quotatool/ F: package/racehound/ F: package/redir/ F: package/rtl8812au-aircrack-ng/ F: package/uredir/ F: package/uqmi/ F: package/wayland-utils/ N: Peter Thompson F: package/sdl2_gfx/ F: package/sdl2_image/ F: package/sdl2_ttf/ N: Petr Kulhavy F: package/linuxptp/ N: Petr Vorel F: package/ima-evm-utils/ F: package/iproute2/ F: package/iputils/ F: package/libqrtr-glib/ F: package/libtirpc/ F: package/linux-backports/ F: package/ltp-testsuite/ F: package/nfs-utils/ F: package/rpcbind/ F: support/kconfig/ N: Phil Eichinger F: package/libqrencode/ F: package/psplash/ F: package/sispmctl/ F: package/zsh/ N: Philipp Richter F: package/libtorrent-rasterbar/ N: Philippe Proulx F: package/babeltrace2/ F: package/lttng-babeltrace/ F: package/lttng-libust/ F: package/lttng-modules/ F: package/lttng-tools/ F: package/python-ipython/ F: package/liburcu/ N: Philippe Reynes F: package/ibm-sw-tpm2/ N: Pierre Crokaert F: board/hardkernel/odroidxu4/ F: configs/odroidxu4_defconfig N: Pierre Ducroquet F: package/kf5/ N: Pierre Floury F: package/trace-cmd/ N: Pierre-Jean Texier F: package/fping/ F: package/genimage/ F: package/haveged/ F: package/ipset/ F: package/libarchive/ F: package/libevent/ F: package/libubootenv/ F: package/libxml2/ F: package/mongoose/ F: package/mxml/ F: package/numactl/ F: package/python-modbus-tk/ F: package/python-periphery/ F: package/raspi-gpio/ F: package/sbc/ F: package/stunnel/ F: package/tree/ N: Pieter De Gendt F: package/libvips/ N: Pieterjan Camerlynck F: package/libdvbpsi/ F: package/mraa/ F: package/synergy/ N: Rafal Susz F: board/avnet/s6lx9_microboard/ F: configs/s6lx9_microboard_defconfig N: Rafał Miłecki F: package/firmware-utils/ N: Rahul Bedarkar F: package/cxxtest/ F: package/gflags/ F: package/glog/ F: package/gssdp/ F: package/gupnp/ F: package/gupnp-av/ F: package/let-me-create/ F: package/nanomsg/ N: Ramon Fried F: package/bitwise/ N: Raphaël Mélotte F: package/gumbo-parser/ F: package/jbig2dec/ F: package/mupdf/ F: package/python-boto3/ F: package/python-botocore/ F: package/python-jmespath/ F: package/python-pymupdf/ F: package/python-rsa/ F: package/python-s3transfer/ F: support/testing/tests/package/sample_python_rsa.py F: support/testing/tests/package/test_python_rsa.py N: Refik Tuzakli F: package/freescale-imx/ F: package/paho-mqtt-cpp/ N: Rémi Rérolle F: package/libfreeimage/ N: Renaud Aubin F: package/libhttpparser/ N: Ricardo Martincoski F: package/atop/ F: package/thermald/ N: Ricardo Martincoski F: support/testing/infra/ F: support/testing/run-tests F: support/testing/tests/core/test_file_capabilities.py F: support/testing/tests/download/ F: support/testing/tests/package/*_python*.py F: support/testing/tests/package/test_atop.py F: support/testing/tests/package/test_syslog_ng.py F: support/testing/tests/package/test_tmux.py F: support/testing/tests/utils/test_check_package.py F: utils/check-package F: utils/checkpackagelib/ N: Richard Braun F: package/curlftpfs/ F: package/tzdata/ N: RJ Ascani F: package/azmq/ N: Robert Rose F: package/grpc/ N: Rodrigo Rebello F: package/chocolate-doom/ F: package/irssi/ F: package/vnstat/ N: Romain Naour F: board/qemu/ F: configs/qemu_* F: package/alure/ F: package/aubio/ F: package/binutils/ F: package/bullet/ F: package/clang/ F: package/clinfo/ F: package/efl/ F: package/enet/ F: package/enlightenment/ F: package/flare-engine/ F: package/flare-game/ F: package/gcc/ F: package/glibc/ F: package/irrlicht/ F: package/liblinear/ F: package/lensfun/ F: package/libbpf/ F: package/libclc/ F: package/libgta/ F: package/libiec61850/ F: package/libspatialindex/ F: package/linux-syscall-support/ F: package/llvm/ F: package/lugaru/ F: package/mcelog/ F: package/mesa3d/ F: package/minetest/ F: package/minetest-game/ F: package/ogre/ F: package/openpowerlink/ F: package/physfs/ F: package/piglit/ F: package/qemu/ F: package/solarus/ F: package/stress-ng/ F: package/supertux/ F: package/supertuxkart/ F: package/terminology/ F: package/tk/ F: package/upower/ F: package/waffle/ F: package/xenomai/ F: package/zziplib/ F: support/testing/tests/package/test_glxinfo.py F: support/testing/tests/package/test_openssh.py F: toolchain/ N: Roman Gorbenkov F: package/davfs2/ N: Ryan Barnett F: package/atftp/ F: package/c-periphery/ F: package/miraclecast/ F: package/opkg/ F: package/opkg-utils/ F: package/python-pysnmp/ F: package/python-pysnmp-mibs/ F: package/python-tornado/ F: package/resiprocate/ F: package/websocketpp/ N: Ryan Wilkins F: package/biosdevname/ N: Sam Lancia F: package/lrzip/ N: Samuel Martin F: package/armadillo/ F: package/cwiid/ F: package/flite/ F: package/nginx/ F: package/opencv3/ F: package/openobex/ F: package/pkg-cmake.mk F: package/python-numpy/ F: package/scrub/ F: package/urg/ F: package/ussp-push/ F: support/misc/toolchainfile.cmake.in N: Sam Voss F: package/ripgrep/ N: Santosh Multhalli F: package/valijson/ N: Sébastien Szymanski F: package/mmc-utils/ F: package/python-flask-jsonrpc/ F: package/python-flask-login/ F: package/qt5/qt5charts/ N: Semyon Kolganov F: package/fmt/ F: package/libbson/ F: package/lua-resty-http/ F: package/mpir/ N: Sergey Matyukevich F: boot/arm-trusted-firmware/ F: board/linksprite/pcduino F: board/orangepi/orangepi-zero F: board/orangepi/orangepi-one F: board/orangepi/orangepi-pc-plus/ F: configs/linksprite_pcduino_defconfig F: configs/orangepi_one_defconfig F: configs/orangepi_pc_plus_defconfig F: configs/orangepi_zero_defconfig F: package/armbian-firmware/ F: package/hostapd/ F: package/rtl8189fs/ F: package/wpa_supplicant/ F: package/xr819-xradio/ N: Sergio Prado F: board/toradex/apalis-imx6/ F: configs/toradex_apalis_imx6_defconfig F: package/aoetools/ F: package/asn1c/ F: package/azure-iot-sdk-c/ F: package/curlpp/ F: package/daq/ F: package/libgdiplus/ F: package/pimd/ F: package/sloci-image/ F: package/snort/ F: package/stella/ F: package/tio/ F: package/traceroute/ F: package/tunctl/ F: package/ubus/ F: package/wolfssl/ N: Shyam Saini F: package/cukinia/ N: Simon Dawson F: boot/at91bootstrap3/ F: package/cppzmq/ F: package/czmq/ F: package/filemq/ F: package/googlefontdirectory/ F: package/jansson/ F: package/jquery-ui/ F: package/jquery-ui-themes/ F: package/json-javascript/ F: package/lcdapi/ F: package/libfreefare/ F: package/libjson/ F: package/libnfc/ F: package/libnfc/ F: package/libserial/ F: package/libsigsegv/ F: package/macchanger/ F: package/minicom/ F: package/minidlna/ F: package/msgpack/ F: package/nanocom/ F: package/neard/ F: package/neardal/ F: package/owl-linux/ F: package/python-nfc/ F: package/rapidjson/ F: package/sconeserver/ F: package/sound-theme-borealis/ F: package/sound-theme-freedesktop/ F: package/vlc/ F: package/xscreensaver/ F: package/zmqpp/ F: package/zyre/ N: Simon Doppler F: board/seeed/ F: configs/stm32mp157c_odyssey_defconfig N: Spenser Gilliland F: arch/Config.in.microblaze F: package/a10disp/ F: package/glmark2/ F: package/libvpx/ F: package/mesa3d-demos/ F: package/ti-gfx/ N: Stefan Ott F: package/unbound/ N: Stefan Sørensen F: package/cracklib/ F: package/libpwquality/ F: package/libscrypt/ N: Stephan Hoffmann F: package/cache-calibrator/ F: package/gtest/ F: package/libhttpserver/ F: package/mtdev/ N: Stephane Viau F: board/freescale/imx8mnevk/ F: board/freescale/imx8mpevk/ F: configs/freescale_imx8mnevk_defconfig F: configs/freescale_imx8mpevk_defconfig N: Steve Calfee F: package/python-pymysql/ F: package/python-pyratemp/ N: Steve James F: package/leveldb/ F: package/libcli/ N: Steve Kenton F: package/dvdauthor/ F: package/dvdrw-tools/ F: package/memtest86/ F: package/mjpegtools/ F: package/tovid/ F: package/udftools/ F: package/xorriso/ N: Steven Noonan F: package/hwloc/ F: package/powertop/ N: Suniel Mahesh F: board/firefly/ F: board/friendlyarm/nanopc-t4 F: board/friendlyarm/nanopi-m4 F: board/orangepi/orangepi-rk3399 F: board/pine64/rockpro64 F: board/radxa/rockpi-4 F: board/radxa/rockpi-n8 F: board/radxa/rockpi-n10 F: configs/friendlyarm_nanopc_t4_defconfig F: configs/friendlyarm_nanopi_m4_defconfig F: configs/orangepi_rk3399_defconfig F: configs/roc_pc_rk3399_defconfig F: configs/rock_pi_4_defconfig F: configs/rock_pi_n8_defconfig F: configs/rock_pi_n10_defconfig F: configs/rockpro64_defconfig F: package/arm-gnu-a-toolchain/ N: Sven Haardiek F: package/lcdproc/ F: package/python-influxdb/ N: Sven Oliver Moll F: package/most/ N: Theo Debrouwere F: board/beagleboardx15/ F: configs/beagleboardx15_defconfig F: package/pugixml/ N: Thierry Bultel F: package/mpd-mpc/ N: Thijs Vermeir F: package/ranger/ F: package/x265/ N: Thomas Claveirole F: package/fcgiwrap/ F: package/openlayers/ F: package/vuejs-router/ N: Thomas De Schampheleire F: docs/manual/ F: package/cereal/ F: package/chartjs/ F: package/datatables/ F: package/datatables-buttons/ F: package/datatables-fixedcolumns/ F: package/datatables-responsive/ F: package/jszip/ F: package/libtelnet/ F: package/opkg-utils/ F: package/perl-convert-asn1/ F: package/perl-crypt-blowfish/ F: package/perl-crypt-cbc/ F: package/perl-crypt-openssl-aes/ F: package/perl-devel-cycle/ F: package/perl-devel-size/ F: package/perl-i18n/ F: package/perl-locale-maketext-lexicon/ F: package/perl-lwp-protocol-https/ F: package/perl-math-int64/ F: package/perl-math-prime-util/ F: package/perl-mime-base64-urlsafe/ F: package/perl-mojolicious-plugin-authentication/ F: package/perl-mojolicious-plugin-authorization/ F: package/perl-mojolicious-plugin-cspheader/ F: package/perl-mojolicious-plugin-i18n/ F: package/perl-mojolicious-plugin-securityheader/ F: package/perl-mozilla-ca/ F: package/perl-net-snmp/ F: package/perl-net-ssh2/ F: package/perl-net-telnet/ F: package/perl-path-class/ F: package/pigz/ F: package/popperjs/ F: package/xenomai/ F: support/scripts/size-stats F: support/testing/tests/package/test_perl_lwp_protocol_https.py F: utils/size-stats-compare F: toolchain/ N: Thomas Huth F: package/ascii-invaders/ F: package/frotz/ F: package/xorcurses/ N: Thomas Petazzoni F: arch/Config.in.arm F: board/beaglev/ F: board/stmicroelectronics/stm32mp157c-dk2/ F: boot/beaglev-ddrinit/ F: boot/beaglev-secondboot/ F: boot/boot-wrapper-aarch64/ F: boot/grub2/ F: boot/gummiboot/ F: configs/beaglev_defconfig F: configs/stm32mp157c_dk2_defconfig F: package/android-tools/ F: package/b43-firmware/ F: package/b43-fwcutter/ F: package/bmap-tools/ F: package/c-periphery/ F: package/cdrkit/ F: package/cifs-utils/ F: package/cloop/ F: package/cmake/ F: package/cramfs/ F: package/dmidecode/ F: package/flashrom/ F: package/gcc/ F: package/genext2fs/ F: package/genromfs/ F: package/getent/ F: package/gnu-efi/ F: package/heirloom-mailx/ F: package/hiawatha/ F: package/igh-ethercat/ F: package/intltool/ F: package/jh71xx-tools/ F: package/libcap/ F: package/libffi/ F: package/libsha1/ F: package/libtirpc/ F: package/libxkbcommon/ F: package/libxml-parser-perl/ F: package/localedef/ F: package/log4cxx/ F: package/monit/ F: package/mpdecimal/ F: package/msmtp/ F: package/musl/ F: package/musl-fts/ F: package/ne10/ F: package/pkg-python.mk F: package/pkg-autotools.mk F: package/pkg-generic.mk F: package/python/ F: package/python3/ F: package/python-augeas/ F: package/python-flask-expects-json/ F: package/python-git/ F: package/python-mad/ F: package/python-serial/ F: package/python-unittest-xml-reporting/ F: package/qextserialport/ F: package/riscv64-elf-toolchain/ F: package/rpcbind/ F: package/rt-tests/ F: package/rtc-tools/ F: package/sam-ba/ F: package/scons/ F: package/squashfs/ F: package/wayland/ F: package/weston/ F: support/testing/tests/boot/test_syslinux.py F: support/testing/tests/package/sample_python_augeas.py F: support/testing/tests/package/sample_python_flask.py F: support/testing/tests/package/sample_python_flask_expects_json.py F: support/testing/tests/package/sample_python_git.py F: support/testing/tests/package/sample_python_unittest_xml_reporting.py F: support/testing/tests/package/test_python_augeas.py F: support/testing/tests/package/test_python_flask.py F: support/testing/tests/package/test_python_flask_expects_json.py F: support/testing/tests/package/test_python_git.py F: support/testing/tests/package/test_python_unittest_xml_reporting.py F: toolchain/ N: Timo Ketola F: package/fbgrab/ N: Titouan Christophe F: package/avro-c/ F: package/mosquitto/ F: package/python-avro/ F: package/redis/ F: package/waf/ F: support/testing/tests/package/test_crudini.py F: support/testing/tests/package/test_redis.py N: Tudor Holton F: package/openjdk/ N: Tzu-Jung Lee F: package/dropwatch/ F: package/tstools/ N: Vadim Kochan F: package/brcm-patchram-plus/ F: package/frr/ F: package/gettext-tiny/ F: package/tinyssh/ N: Valentin Korenblit F: package/clang/ F: package/clinfo/ F: package/libclc/ F: package/llvm/ N: Vanya Sergeev F: package/lua-periphery/ N: Victor Huesca F: support/testing/tests/core/test_root_password.py N: Vincent Prince F: package/nss-myhostname/ F: package/utp_com/ N: Vincent Stehlé F: board/bananapi/bananapi-m2-zero/ F: configs/bananapi_m2_zero_defconfig F: configs/uevm5432_defconfig F: package/i7z/ F: package/msr-tools/ F: package/pixz/ N: Vinicius Tinti F: package/python-thrift/ N: Vivien Didelot F: board/technologic/ts5500/ F: configs/ts5500_defconfig N: Volkov Viacheslav F: package/v4l2grab/ F: package/zbar/ N: Wade Berrier F: package/ngrep/ N: Waldemar Brodkorb F: package/mksh/ F: package/ruby/ F: package/uclibc/ F: package/uclibc-ng-test/ N: Will Newton F: package/enchant/ F: package/erlang/ F: package/libmicrohttpd/ F: package/sysprof/ F: package/time/ N: Will Wagner F: package/yaffs2utils/ N: Wojciech M. Zabolotny F: package/avrdude/ F: package/jack2/ F: package/python-msgpack/ F: package/python-pyusb/ N: Wojciech Niziński F: package/fwup/ N: Yair Ben Avraham F: package/casync/ F: package/gloox/ F: package/tpm2-pkcs11/ N: Yann E. MORIN F: board/friendlyarm/nanopi-neo/ F: configs/friendlyarm_nanopi_neo_defconfig F: fs/squashfs/ F: package/asterisk/ F: package/cegui/ F: package/dahdi-linux/ F: package/dahdi-tools/ F: package/dtc/ F: package/dtv-scan-tables/ F: package/dvb-apps/ F: package/freerdp/ F: package/keyutils/ F: package/libbsd/ F: package/libedit/ F: package/libgsm/ F: package/libiberty/ F: package/libinput/ F: package/libiscsi/ F: package/libpri/ F: package/libseccomp/ F: package/libss7/ F: package/linux-firmware/ F: package/linux-tools/ F: package/matchbox* F: package/mesa3d-headers/ F: package/nbd/ F: package/nut/ F: package/nvidia-driver/ F: package/omxplayer/ F: package/python-pyparsing/ F: package/pkg-download.mk F: package/pkg-waf.mk F: package/slirp/ F: package/snappy/ F: package/spice/ F: package/spice-protocol/ F: package/systemd/ F: package/systemd-bootchart/ F: package/tmux/ F: package/tvheadend/ F: package/usbredir/ F: package/vde2/ F: package/w_scan/ F: package/wayland/ F: package/weston/ F: package/zisofs-tools/ F: support/download/ N: Yegor Yefremov F: configs/beaglebone_defconfig F: configs/beaglebone_qt5_defconfig F: package/acl/ F: package/attr/ F: package/boost/ F: package/bootstrap/ F: package/cannelloni/ F: package/can-utils/ F: package/circus/ F: package/dhcpcd/ F: package/feh/ F: package/giblib/ F: package/imlib2/ F: package/jquery-datetimepicker/ F: package/jquery-sidebar/ F: package/kmod/ F: package/libftdi1/ F: package/libical/ F: package/libmbim/ F: package/libndp/ F: package/libnftnl/ F: package/libsoc/ F: package/libsocketcan/ F: package/libubox/ F: package/libuci/ F: package/linux-firmware/ F: package/linux-serial-test/ F: package/modem-manager/ F: package/nftables/ F: package/nuttcp/ F: package/parted/ F: package/phytool/ F: package/poco/ F: package/python* F: package/ser2net/ F: package/socketcand/ F: package/swig/ F: package/qt5/qt5serialbus/ F: package/sdparm/ F: package/ti-utils/ F: package/x11r7/xapp_xconsole/ F: package/x11r7/xapp_xinput-calibrator/ F: package/zlog/ F: support/testing/tests/package/test_libftdi1.py F: support/testing/tests/package/test_python_can.py F: utils/scanpypi N: Zoltan Gyarmati F: package/crudini/ F: package/grantlee/ F: package/libusb/ F: package/libusb-compat/ F: package/proj/ F: package/python-configobj/ F: package/python-iniparse/ F: package/qjson/ F: package/quazip/ F: package/shapelib/ F: package/tinc/ ================================================ FILE: Makefile ================================================ # Makefile for buildroot # # Copyright (C) 1999-2005 by Erik Andersen # Copyright (C) 2006-2014 by the Buildroot developers # Copyright (C) 2014-2020 by the Buildroot developers # # 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 # #-------------------------------------------------------------- # Just run 'make menuconfig', configure stuff, then run 'make'. # You shouldn't need to mess with anything beyond this point... #-------------------------------------------------------------- # Delete default rules. We don't use them. This saves a bit of time. .SUFFIXES: # 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) # Set O variable if not already done on the command line; # or avoid confusing packages that can use the O= syntax for out-of-tree # build by preventing it from being forwarded to sub-make calls. ifneq ("$(origin O)", "command line") O := $(CURDIR)/output endif # Check if the current Buildroot execution meets all the pre-requisites. # If they are not met, Buildroot will actually do its job in a sub-make meeting # its pre-requisites, which are: # 1- Permissive enough umask: # Wrong or too restrictive umask will prevent Buildroot and packages from # creating files and directories. # 2- Absolute canonical CWD (i.e. $(CURDIR)): # Otherwise, some packages will use CWD as-is, others will compute its # absolute canonical path. This makes harder tracking and fixing host # machine path leaks. # 3- Absolute canonical output location (i.e. $(O)): # For the same reason as the one for CWD. # Remove the trailing '/.' from $(O) as it can be added by the makefile wrapper # installed in the $(O) directory. # Also remove the trailing '/' the user can set when on the command line. override O := $(patsubst %/,%,$(patsubst %.,%,$(O))) # Make sure $(O) actually exists before calling realpath on it; this is to # avoid empty CANONICAL_O in case on non-existing entry. CANONICAL_O := $(shell mkdir -p $(O) >/dev/null 2>&1)$(realpath $(O)) # gcc fails to build when the srcdir contains a '@' ifneq ($(findstring @,$(CANONICAL_O)),) $(error The build directory can not contain a '@') endif CANONICAL_CURDIR = $(realpath $(CURDIR)) REQ_UMASK = 0022 # Make sure O= is passed (with its absolute canonical path) everywhere the # toplevel makefile is called back. EXTRAMAKEARGS := O=$(CANONICAL_O) # Check Buildroot execution pre-requisites here. ifneq ($(shell umask):$(CURDIR):$(O),$(REQ_UMASK):$(CANONICAL_CURDIR):$(CANONICAL_O)) .PHONY: _all $(MAKECMDGOALS) $(MAKECMDGOALS): _all @: _all: @umask $(REQ_UMASK) && \ $(MAKE) -C $(CANONICAL_CURDIR) --no-print-directory \ $(MAKECMDGOALS) $(EXTRAMAKEARGS) else # umask / $(CURDIR) / $(O) # This is our default rule, so must come first all: .PHONY: all # Set and export the version string export BR2_VERSION := 2021.11 # Actual time the release is cut (for reproducible builds) BR2_VERSION_EPOCH = 1638734000 # Save running make version since it's clobbered by the make package RUNNING_MAKE_VERSION := $(MAKE_VERSION) # Check for minimal make version (note: this check will break at make 10.x) MIN_MAKE_VERSION = 3.81 ifneq ($(firstword $(sort $(RUNNING_MAKE_VERSION) $(MIN_MAKE_VERSION))),$(MIN_MAKE_VERSION)) $(error You have make '$(RUNNING_MAKE_VERSION)' installed. GNU make >= $(MIN_MAKE_VERSION) is required) endif # absolute path TOPDIR := $(CURDIR) CONFIG_CONFIG_IN = Config.in CONFIG = support/kconfig DATE := $(shell date +%Y%m%d) # Compute the full local version string so packages can use it as-is # Need to export it, so it can be got from environment in children (eg. mconf) BR2_LOCALVERSION := $(shell $(TOPDIR)/support/scripts/setlocalversion) ifeq ($(BR2_LOCALVERSION),) export BR2_VERSION_FULL := $(BR2_VERSION) else export BR2_VERSION_FULL := $(BR2_LOCALVERSION) endif # List of targets and target patterns for which .config doesn't need to be read in noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \ defconfig %_defconfig allyesconfig allnoconfig alldefconfig syncconfig release \ randpackageconfig allyespackageconfig allnopackageconfig \ print-version olddefconfig distclean manual manual-% check-package check-flake8 # Some global targets do not trigger a build, but are used to collect # metadata, or do various checks. When such targets are triggered, # some packages should not do their configuration sanity # checks. Provide them a BR_BUILDING variable set to 'y' when we're # actually building and they should do their sanity checks. # # We're building in two situations: when MAKECMDGOALS is empty # (default target is to build), or when MAKECMDGOALS contains # something else than one of the nobuild_targets. nobuild_targets := source %-source \ legal-info %-legal-info external-deps _external-deps \ clean distclean help show-targets graph-depends \ %-graph-depends %-show-depends %-show-version \ graph-build graph-size list-defconfigs \ savedefconfig update-defconfig printvars ifeq ($(MAKECMDGOALS),) BR_BUILDING = y else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),) BR_BUILDING = y endif # We call make recursively to build packages. The command-line overrides that # are passed to Buildroot don't apply to those package build systems. In # particular, we don't want to pass down the O= option for out-of-tree # builds, because the value specified on the command line will not be correct # for packages. MAKEOVERRIDES := # Include some helper macros and variables include support/misc/utils.mk # Set variables related to in-tree or out-of-tree build. # Here, both $(O) and $(CURDIR) are absolute canonical paths. ifeq ($(O),$(CURDIR)/output) CONFIG_DIR := $(CURDIR) NEED_WRAPPER = else CONFIG_DIR := $(O) NEED_WRAPPER = y endif # bash prints the name of the directory on 'cd ' if CDPATH is # set, so unset it here to not cause problems. Notice that the export # line doesn't affect the environment of $(shell ..) calls. export CDPATH := BASE_DIR := $(CANONICAL_O) $(if $(BASE_DIR),, $(error output directory "$(O)" does not exist)) # Handling of BR2_EXTERNAL. # # The value of BR2_EXTERNAL is stored in .br-external in the output directory. # The location of the external.mk makefile fragments is computed in that file. # On subsequent invocations of make, this file is read in. BR2_EXTERNAL can # still be overridden on the command line, therefore the file is re-created # every time make is run. BR2_EXTERNAL_FILE = $(BASE_DIR)/.br2-external.mk -include $(BR2_EXTERNAL_FILE) $(shell support/scripts/br2-external -d '$(BASE_DIR)' $(BR2_EXTERNAL)) BR2_EXTERNAL_ERROR = include $(BR2_EXTERNAL_FILE) ifneq ($(BR2_EXTERNAL_ERROR),) $(error $(BR2_EXTERNAL_ERROR)) endif # Workaround bug in make-4.3: https://savannah.gnu.org/bugs/?57676 $(BASE_DIR)/.br2-external.mk:; # To make sure that the environment variable overrides the .config option, # set this before including .config. ifneq ($(BR2_DL_DIR),) DL_DIR := $(BR2_DL_DIR) endif ifneq ($(BR2_CCACHE_DIR),) BR_CACHE_DIR := $(BR2_CCACHE_DIR) endif # Need that early, before we scan packages # Avoids doing the $(or...) everytime BR_GRAPH_OUT := $(or $(BR2_GRAPH_OUT),pdf) BUILD_DIR := $(BASE_DIR)/build BINARIES_DIR := $(BASE_DIR)/images BASE_TARGET_DIR := $(BASE_DIR)/target PER_PACKAGE_DIR := $(BASE_DIR)/per-package # initial definition so that 'make clean' works for most users, even without # .config. HOST_DIR will be overwritten later when .config is included. HOST_DIR := $(BASE_DIR)/host GRAPHS_DIR := $(BASE_DIR)/graphs LEGAL_INFO_DIR = $(BASE_DIR)/legal-info REDIST_SOURCES_DIR_TARGET = $(LEGAL_INFO_DIR)/sources REDIST_SOURCES_DIR_HOST = $(LEGAL_INFO_DIR)/host-sources LICENSE_FILES_DIR_TARGET = $(LEGAL_INFO_DIR)/licenses LICENSE_FILES_DIR_HOST = $(LEGAL_INFO_DIR)/host-licenses LEGAL_MANIFEST_CSV_TARGET = $(LEGAL_INFO_DIR)/manifest.csv LEGAL_MANIFEST_CSV_HOST = $(LEGAL_INFO_DIR)/host-manifest.csv LEGAL_WARNINGS = $(LEGAL_INFO_DIR)/.warnings LEGAL_REPORT = $(LEGAL_INFO_DIR)/README CPE_UPDATES_DIR = $(BASE_DIR)/cpe-updates BR2_CONFIG = $(CONFIG_DIR)/.config # Pull in the user's configuration file ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) -include $(BR2_CONFIG) endif ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),) # Disable top-level parallel build if per-package directories is not # used. Indeed, per-package directories is necessary to guarantee # determinism and reproducibility with top-level parallel build. .NOTPARALLEL: 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") KBUILD_VERBOSE = $(V) endif ifndef KBUILD_VERBOSE KBUILD_VERBOSE = 0 endif ifeq ($(KBUILD_VERBOSE),1) Q = ifndef VERBOSE VERBOSE = 1 endif export VERBOSE else Q = @ endif # kconfig uses CONFIG_SHELL CONFIG_SHELL := $(SHELL) export SHELL CONFIG_SHELL Q KBUILD_VERBOSE ifndef HOSTAR HOSTAR := ar endif ifndef HOSTAS HOSTAS := as endif ifndef HOSTCC HOSTCC := gcc HOSTCC := $(shell which $(HOSTCC) || type -p $(HOSTCC) || echo gcc) endif HOSTCC_NOCCACHE := $(HOSTCC) ifndef HOSTCXX HOSTCXX := g++ HOSTCXX := $(shell which $(HOSTCXX) || type -p $(HOSTCXX) || echo g++) endif HOSTCXX_NOCCACHE := $(HOSTCXX) ifndef HOSTCPP HOSTCPP := cpp endif ifndef HOSTLD HOSTLD := ld endif ifndef HOSTLN HOSTLN := ln endif ifndef HOSTNM HOSTNM := nm endif ifndef HOSTOBJCOPY HOSTOBJCOPY := objcopy endif ifndef HOSTRANLIB HOSTRANLIB := ranlib endif HOSTAR := $(shell which $(HOSTAR) || type -p $(HOSTAR) || echo ar) HOSTAS := $(shell which $(HOSTAS) || type -p $(HOSTAS) || echo as) HOSTCPP := $(shell which $(HOSTCPP) || type -p $(HOSTCPP) || echo cpp) HOSTLD := $(shell which $(HOSTLD) || type -p $(HOSTLD) || echo ld) HOSTLN := $(shell which $(HOSTLN) || type -p $(HOSTLN) || echo ln) HOSTNM := $(shell which $(HOSTNM) || type -p $(HOSTNM) || echo nm) HOSTOBJCOPY := $(shell which $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy) HOSTRANLIB := $(shell which $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranlib) SED := $(shell which sed || type -p sed) -i -e export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE # Determine the userland we are running on. # # Note that, despite its name, we are not interested in the actual # architecture name. This is mostly used to determine whether some # of the binary tools (e.g. pre-built external toolchains) can run # on the current host. So we need to know if the userland we're # running on can actually run those toolchains. # # For example, a 64-bit prebuilt toolchain will not run on a 64-bit # kernel if the userland is 32-bit (e.g. in a chroot for example). # # So, we extract the first part of the tuple the host gcc was # configured to generate code for; we assume this is our userland. # export HOSTARCH := $(shell LC_ALL=C $(HOSTCC_NOCCACHE) -v 2>&1 | \ sed -e '/^Target: \([^-]*\).*/!d' \ -e 's//\1/' \ -e 's/i.86/x86/' \ -e 's/sun4u/sparc64/' \ -e 's/arm.*/arm/' \ -e 's/sa110/arm/' \ -e 's/ppc64/powerpc64/' \ -e 's/ppc/powerpc/' \ -e 's/macppc/powerpc/' \ -e 's/sh.*/sh/' ) # When adding a new host gcc version in Config.in, # update the HOSTCC_MAX_VERSION variable: HOSTCC_MAX_VERSION := 9 HOSTCC_VERSION := $(shell V=$$($(HOSTCC_NOCCACHE) --version | \ sed -n -r 's/^.* ([0-9]*)\.([0-9]*)\.([0-9]*)[ ]*.*/\1 \2/p'); \ [ "$${V%% *}" -le $(HOSTCC_MAX_VERSION) ] || V=$(HOSTCC_MAX_VERSION); \ printf "%s" "$${V}") # For gcc >= 5.x, we only need the major version. ifneq ($(firstword $(HOSTCC_VERSION)),4) HOSTCC_VERSION := $(firstword $(HOSTCC_VERSION)) endif ifeq ($(BR2_NEEDS_HOST_UTF8_LOCALE),y) # First, we try to use the user's configured locale (as that's the # language they'd expect messages to be displayed), then we favour # a non language-specific locale like C.UTF-8 if one is available, # so we sort with the C locale to get it at the top. # This is guaranteed to not be empty, because of the check in # support/dependencies/dependencies.sh HOST_UTF8_LOCALE := $(shell \ ( echo $${LC_ALL:-$${LC_MESSAGES:-$${LANG}}}; \ locale -a 2>/dev/null | LC_ALL=C sort \ ) \ | grep -i -E 'utf-?8$$' \ | head -n 1) HOST_UTF8_LOCALE_ENV := LC_ALL=$(HOST_UTF8_LOCALE) endif # Make sure pkg-config doesn't look outside the buildroot tree HOST_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH) unexport PKG_CONFIG_PATH unexport PKG_CONFIG_SYSROOT_DIR unexport PKG_CONFIG_LIBDIR # Having DESTDIR set in the environment confuses the installation # steps of some packages. unexport DESTDIR # Causes breakage with packages that needs host-ruby unexport RUBYOPT include package/pkg-utils.mk include package/doc-asciidoc.mk ifeq ($(BR2_HAVE_DOT_CONFIG),y) ################################################################################ # # Hide troublesome environment variables from sub processes # ################################################################################ unexport CROSS_COMPILE unexport ARCH unexport CC unexport LD unexport AR unexport CXX unexport CPP unexport RANLIB unexport CFLAGS unexport CXXFLAGS unexport GREP_OPTIONS unexport TAR_OPTIONS unexport CONFIG_SITE unexport QMAKESPEC unexport TERMINFO unexport MACHINE unexport O unexport GCC_COLORS unexport PLATFORM unexport OS GNU_HOST_NAME := $(shell support/gnuconfig/config.guess) PACKAGES := PACKAGES_ALL := # silent mode requested? QUIET := $(if $(findstring s,$(filter-out --%,$(MAKEFLAGS))),-q) # Strip off the annoying quoting ARCH := $(call qstrip,$(BR2_ARCH)) KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \ -e s/i.86/i386/ -e s/sun4u/sparc64/ \ -e s/arcle/arc/ \ -e s/arceb/arc/ \ -e s/arm.*/arm/ -e s/sa110/arm/ \ -e s/aarch64.*/arm64/ \ -e s/nds32.*/nds32/ \ -e s/or1k/openrisc/ \ -e s/parisc64/parisc/ \ -e s/powerpc64.*/powerpc/ \ -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \ -e s/riscv.*/riscv/ \ -e s/sh.*/sh/ \ -e s/s390x/s390/ \ -e s/microblazeel/microblaze/) ZCAT := $(call qstrip,$(BR2_ZCAT)) BZCAT := $(call qstrip,$(BR2_BZCAT)) XZCAT := $(call qstrip,$(BR2_XZCAT)) LZCAT := $(call qstrip,$(BR2_LZCAT)) TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y) HOST_DIR = $(if $(PKG),$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/host,$(call qstrip,$(BR2_HOST_DIR))) TARGET_DIR = $(if $(ROOTFS),$(ROOTFS_$(ROOTFS)_TARGET_DIR),$(if $(PKG),$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/target,$(BASE_TARGET_DIR))) else HOST_DIR := $(call qstrip,$(BR2_HOST_DIR)) TARGET_DIR = $(if $(ROOTFS),$(ROOTFS_$(ROOTFS)_TARGET_DIR),$(BASE_TARGET_DIR)) endif ifneq ($(HOST_DIR),$(BASE_DIR)/host) HOST_DIR_SYMLINK = $(BASE_DIR)/host $(HOST_DIR_SYMLINK): | $(BASE_DIR) ln -snf $(HOST_DIR) $(HOST_DIR_SYMLINK) endif STAGING_DIR_SYMLINK = $(BASE_DIR)/staging $(STAGING_DIR_SYMLINK): | $(BASE_DIR) ln -snf $(STAGING_DIR) $(STAGING_DIR_SYMLINK) # Quotes are needed for spaces and all in the original PATH content. BR_PATH = "$(HOST_DIR)/bin:$(HOST_DIR)/sbin:$(PATH)" # Location of a file giving a big fat warning that output/target # should not be used as the root filesystem. TARGET_DIR_WARNING_FILE = $(TARGET_DIR)/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM ifeq ($(BR2_CCACHE),y) CCACHE = $(HOST_DIR)/bin/ccache BR_CACHE_DIR ?= $(call qstrip,$(BR2_CCACHE_DIR)) export BR_CACHE_DIR HOSTCC = $(CCACHE) $(HOSTCC_NOCCACHE) HOSTCXX = $(CCACHE) $(HOSTCXX_NOCCACHE) else export BR_NO_CCACHE 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 export BINARIES_DIR export BASE_DIR ################################################################################ # # You should probably leave this stuff alone unless you know # what you are doing. # ################################################################################ all: world # Include legacy before the other things, because package .mk files # may rely on it. include Makefile.legacy include system/system.mk include package/Makefile.in # arch/arch.mk must be after package/Makefile.in because it may need to # complement variables defined therein, like BR_NO_CHECK_HASH_FOR. include arch/arch.mk include support/dependencies/dependencies.mk include $(sort $(wildcard toolchain/*.mk)) include $(sort $(wildcard toolchain/*/*.mk)) ifeq ($(BR2_REPRODUCIBLE),y) # If SOURCE_DATE_EPOCH has not been set then use the commit date, or the last # release date if the source tree is not within a Git repository. # See: https://reproducible-builds.org/specs/source-date-epoch/ BR2_VERSION_GIT_EPOCH := $(shell $(GIT) log -1 --format=%at 2> /dev/null) export SOURCE_DATE_EPOCH ?= $(or $(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH)) endif # Include the package override file if one has been provided in the # configuration. PACKAGE_OVERRIDE_FILE = $(call qstrip,$(BR2_PACKAGE_OVERRIDE_FILE)) ifneq ($(PACKAGE_OVERRIDE_FILE),) -include $(PACKAGE_OVERRIDE_FILE) endif include $(sort $(wildcard package/*/*.mk)) include boot/common.mk include linux/linux.mk include fs/common.mk # If using a br2-external tree, the BR2_EXTERNAL_$(NAME)_PATH variables # are also present in the .config file. Since .config is included after # we defined them in the Makefile, the values for those variables are # quoted. We just include the generated Makefile fragment .br2-external.mk # a third time, which will set those variables to the un-quoted values. include $(BR2_EXTERNAL_FILE) # Nothing to include if no BR2_EXTERNAL tree in use include $(BR2_EXTERNAL_MKS) # Now we are sure we have all the packages scanned and defined. We now # check for each package in the list of enabled packages, that all its # dependencies are indeed enabled. # # Only trigger the check for default builds. If the user forces building # a package, even if not enabled in the configuration, we want to accept # it. However; we also want to be able to force checking the dependencies # if the user so desires. Forcing a dependency check is useful in the case # of test-pkg, as we want to make sure during testing, that a package has # all the dependencies selected in the config file. # ifeq ($(MAKECMDGOALS),) BR_FORCE_CHECK_DEPENDENCIES = YES endif ifeq ($(BR_FORCE_CHECK_DEPENDENCIES),YES) define CHECK_ONE_DEPENDENCY ifeq ($$($(2)_TYPE),target) ifeq ($$($(2)_IS_VIRTUAL),) ifneq ($$($$($(2)_KCONFIG_VAR)),y) $$(error $$($(2)_NAME) is in the dependency chain of $$($(1)_NAME) that \ has added it to its _DEPENDENCIES variable without selecting it or \ depending on it from Config.in) endif endif endif endef $(foreach pkg,$(call UPPERCASE,$(PACKAGES)),\ $(foreach dep,$(call UPPERCASE,$($(pkg)_FINAL_ALL_DEPENDENCIES)),\ $(eval $(call CHECK_ONE_DEPENDENCY,$(pkg),$(dep))$(sep)))) endif $(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG) $(MAKE1) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" syncconfig .PHONY: prepare prepare: $(BUILD_DIR)/buildroot-config/auto.conf .PHONY: world world: target-post-image .PHONY: prepare-sdk prepare-sdk: world @$(call MESSAGE,"Rendering the SDK relocatable") PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath host PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath staging $(INSTALL) -m 755 $(TOPDIR)/support/misc/relocate-sdk.sh $(HOST_DIR)/relocate-sdk.sh mkdir -p $(HOST_DIR)/share/buildroot echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-location BR2_SDK_PREFIX ?= $(GNU_TARGET_NAME)_sdk-buildroot .PHONY: sdk sdk: prepare-sdk $(BR2_TAR_HOST_DEPENDENCY) @$(call MESSAGE,"Generating SDK tarball") $(if $(BR2_SDK_PREFIX),,$(error BR2_SDK_PREFIX can not be empty)) $(Q)mkdir -p $(BINARIES_DIR) $(TAR) czf "$(BINARIES_DIR)/$(BR2_SDK_PREFIX).tar.gz" \ --owner=0 --group=0 --numeric-owner \ --transform='s#^$(patsubst /%,%,$(HOST_DIR))#$(BR2_SDK_PREFIX)#' \ -C / $(patsubst /%,%,$(HOST_DIR)) RSYNC_VCS_EXCLUSIONS = \ --exclude .svn --exclude .git --exclude .hg --exclude .bzr \ --exclude CVS # When stripping, obey to BR2_STRIP_EXCLUDE_DIRS and # BR2_STRIP_EXCLUDE_FILES STRIP_FIND_COMMON_CMD = \ find $(TARGET_DIR) \ $(if $(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS)), \ \( $(call finddirclauses,$(TARGET_DIR),$(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS))) \) \ -prune -o \ ) \ $(if $(call qstrip,$(BR2_STRIP_EXCLUDE_FILES)), \ -not \( $(call findfileclauses,$(call qstrip,$(BR2_STRIP_EXCLUDE_FILES))) \) ) # Regular stripping for everything, except libpthread, ld-*.so and # kernel modules: # - libpthread.so: a non-stripped libpthread shared library is needed for # proper debugging of pthread programs using gdb. # - ld.so: a non-stripped dynamic linker library is needed for valgrind # - kernel modules (*.ko): do not function properly when stripped like normal # applications and libraries. Normally kernel modules are already excluded # by the executable permission check, so the explicit exclusion is only # done for kernel modules with incorrect permissions. STRIP_FIND_CMD = \ $(STRIP_FIND_COMMON_CMD) \ -type f \( -perm /111 -o -name '*.so*' \) \ -not \( $(call findfileclauses,libpthread*.so* ld-*.so* *.ko) \) \ -print0 # Special stripping (only debugging symbols) for libpthread and ld-*.so. STRIP_FIND_SPECIAL_LIBS_CMD = \ $(STRIP_FIND_COMMON_CMD) \ \( -name 'ld-*.so*' -o -name 'libpthread*.so*' \) \ -print0 ifeq ($(BR2_ECLIPSE_REGISTER),y) define TOOLCHAIN_ECLIPSE_REGISTER ./support/scripts/eclipse-register-toolchain `readlink -f $(O)` \ $(notdir $(TARGET_CROSS)) $(BR2_ARCH) endef TARGET_FINALIZE_HOOKS += TOOLCHAIN_ECLIPSE_REGISTER endif # Generate locale data. ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y) GLIBC_GENERATE_LOCALES = $(call qstrip,$(BR2_GENERATE_LOCALE)) ifneq ($(GLIBC_GENERATE_LOCALES),) PACKAGES += host-localedef define GENERATE_GLIBC_LOCALES $(MAKE) -f support/misc/gen-glibc-locales.mk \ ENDIAN=$(call LOWERCASE,$(BR2_ENDIAN)) \ LOCALES="$(GLIBC_GENERATE_LOCALES)" \ Q=$(Q) endef TARGET_FINALIZE_HOOKS += GENERATE_GLIBC_LOCALES endif endif ifeq ($(BR2_ENABLE_LOCALE_PURGE),y) LOCALE_WHITELIST = $(BUILD_DIR)/locales.nopurge LOCALE_NOPURGE = $(call qstrip,$(BR2_ENABLE_LOCALE_WHITELIST)) # This piece of junk does the following: # First collect the whitelist in a file. # Then go over all the locale dirs and for each subdir, check if it exists # in the whitelist file. If it doesn't, kill it. # Finally, specifically for X11, regenerate locale.dir from the whitelist. define PURGE_LOCALES printf '%s\n' $(LOCALE_NOPURGE) locale-archive > $(LOCALE_WHITELIST) for dir in $(addprefix $(TARGET_DIR),/usr/share/locale /usr/share/X11/locale /usr/lib/locale); \ do \ if [ ! -d $$dir ]; then continue; fi; \ for langdir in $$dir/*; \ do \ if [ -e "$${langdir}" ]; \ then \ grep -qx "$${langdir##*/}" $(LOCALE_WHITELIST) || rm -rf $$langdir; \ fi \ done; \ done if [ -d $(TARGET_DIR)/usr/share/X11/locale ]; \ then \ for lang in $(LOCALE_NOPURGE); \ do \ if [ -f $(TARGET_DIR)/usr/share/X11/locale/$$lang/XLC_LOCALE ]; \ then \ echo "$$lang/XLC_LOCALE: $$lang"; \ fi \ done > $(TARGET_DIR)/usr/share/X11/locale/locale.dir; \ fi endef TARGET_FINALIZE_HOOKS += PURGE_LOCALES endif $(TARGETS_ROOTFS): target-finalize # Avoid the rootfs name leaking down the dependency chain target-finalize: ROOTFS= TARGET_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list.txt)) HOST_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list-host.txt)) STAGING_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list-staging.txt)) .PHONY: host-finalize host-finalize: $(PACKAGES) $(HOST_DIR) $(HOST_DIR_SYMLINK) @$(call MESSAGE,"Finalizing host directory") $(call per-package-rsync,$(sort $(PACKAGES)),host,$(HOST_DIR)) .PHONY: staging-finalize staging-finalize: $(STAGING_DIR_SYMLINK) .PHONY: target-finalize target-finalize: $(PACKAGES) $(TARGET_DIR) host-finalize @$(call MESSAGE,"Finalizing target directory") $(call per-package-rsync,$(sort $(PACKAGES)),target,$(TARGET_DIR)) $(foreach hook,$(TARGET_FINALIZE_HOOKS),$($(hook))$(sep)) rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \ $(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \ $(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake \ $(TARGET_DIR)/usr/doc find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f find $(TARGET_DIR)/lib/ $(TARGET_DIR)/usr/lib/ $(TARGET_DIR)/usr/libexec/ \ \( -name '*.a' -o -name '*.la' -o -name '*.prl' \) -print0 | xargs -0 rm -f ifneq ($(BR2_PACKAGE_GDB),y) rm -rf $(TARGET_DIR)/usr/share/gdb endif ifneq ($(BR2_PACKAGE_BASH),y) rm -rf $(TARGET_DIR)/usr/share/bash-completion rm -rf $(TARGET_DIR)/etc/bash_completion.d endif ifneq ($(BR2_PACKAGE_ZSH),y) rm -rf $(TARGET_DIR)/usr/share/zsh endif rm -rf $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/man rm -rf $(TARGET_DIR)/usr/info $(TARGET_DIR)/usr/share/info rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc rm -rf $(TARGET_DIR)/usr/share/gtk-doc rmdir $(TARGET_DIR)/usr/share 2>/dev/null || true ifneq ($(BR2_ENABLE_DEBUG):$(BR2_STRIP_strip),y:) rm -rf $(TARGET_DIR)/lib/debug $(TARGET_DIR)/usr/lib/debug endif $(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true $(STRIP_FIND_SPECIAL_LIBS_CMD) | xargs -0 -r $(STRIPCMD) $(STRIP_STRIP_DEBUG) 2>/dev/null || true test -f $(TARGET_DIR)/etc/ld.so.conf && \ { echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || true test -d $(TARGET_DIR)/etc/ld.so.conf.d && \ { echo "ERROR: we shouldn't have a /etc/ld.so.conf.d directory"; exit 1; } || true mkdir -p $(TARGET_DIR)/etc ( \ echo "NAME=Buildroot"; \ echo "VERSION=$(BR2_VERSION_FULL)"; \ echo "ID=buildroot"; \ echo "VERSION_ID=$(BR2_VERSION)"; \ echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \ ) > $(TARGET_DIR)/usr/lib/os-release ln -sf ../usr/lib/os-release $(TARGET_DIR)/etc @$(call MESSAGE,"Sanitizing RPATH in target tree") PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath target # For a merged /usr, ensure that /lib, /bin and /sbin and their /usr # counterparts are appropriately setup as symlinks ones to the others. ifeq ($(BR2_ROOTFS_MERGED_USR),y) $(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \ @$(call MESSAGE,"Sanity check in overlay $(d)")$(sep) \ $(Q)not_merged_dirs="$$(support/scripts/check-merged-usr.sh $(d))"; \ test -n "$$not_merged_dirs" && { \ echo "ERROR: The overlay in $(d) is not" \ "using a merged /usr for the following directories:" \ $$not_merged_dirs; \ exit 1; \ } || true$(sep)) endif # merged /usr $(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \ @$(call MESSAGE,"Copying overlay $(d)")$(sep) \ $(Q)$(call SYSTEM_RSYNC,$(d),$(TARGET_DIR))$(sep)) $(Q)$(if $(TARGET_DIR_FILES_LISTS), \ cat $(TARGET_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list.txt $(Q)$(if $(HOST_DIR_FILES_LISTS), \ cat $(HOST_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list-host.txt $(Q)$(if $(STAGING_DIR_FILES_LISTS), \ cat $(STAGING_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list-staging.txt $(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT)), \ @$(call MESSAGE,"Executing post-build script $(s)")$(sep) \ $(Q)$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep)) touch $(TARGET_DIR)/usr .PHONY: target-post-image target-post-image: $(TARGETS_ROOTFS) target-finalize staging-finalize @rm -f $(ROOTFS_COMMON_TAR) $(Q)mkdir -p $(BINARIES_DIR) @$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \ $(call MESSAGE,"Executing post-image script $(s)"); \ $(EXTRA_ENV) $(s) $(BINARIES_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep)) .PHONY: source source: $(foreach p,$(PACKAGES),$(p)-all-source) .PHONY: _external-deps external-deps _external-deps: $(foreach p,$(PACKAGES),$(p)-all-external-deps) external-deps: @$(MAKE1) -Bs $(EXTRAMAKEARGS) _external-deps | sort -u .PHONY: legal-info-clean legal-info-clean: @rm -fr $(LEGAL_INFO_DIR) .PHONY: legal-info-prepare legal-info-prepare: $(LEGAL_INFO_DIR) @$(call MESSAGE,"Buildroot $(BR2_VERSION_FULL) Collecting legal info") @$(call legal-license-file,buildroot,buildroot,support/legal-info/buildroot.hash,COPYING,COPYING,HOST) @$(call legal-manifest,TARGET,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,DEPENDENCIES WITH LICENSES) @$(call legal-manifest,HOST,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,DEPENDENCIES WITH LICENSES) @$(call legal-manifest,HOST,buildroot,$(BR2_VERSION_FULL),GPL-2.0+,COPYING,not saved,not saved) @$(call legal-warning,the Buildroot source code has not been saved) @cp $(BR2_CONFIG) $(LEGAL_INFO_DIR)/buildroot.config .PHONY: legal-info legal-info: legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p)-all-legal-info) \ $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) @cat support/legal-info/README.header >>$(LEGAL_REPORT) @if [ -r $(LEGAL_WARNINGS) ]; then \ cat support/legal-info/README.warnings-header \ $(LEGAL_WARNINGS) >>$(LEGAL_REPORT); \ cat $(LEGAL_WARNINGS); fi @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)" .PHONY: show-targets show-targets: @echo $(sort $(PACKAGES)) $(sort $(TARGETS_ROOTFS)) .PHONY: show-build-order show-build-order: $(patsubst %,%-show-build-order,$(PACKAGES)) .PHONY: graph-build graph-build: $(O)/build/build-time.log @install -d $(GRAPHS_DIR) $(foreach o,name build duration,./support/scripts/graph-build-time \ --type=histogram --order=$(o) --input=$(<) \ --output=$(GRAPHS_DIR)/build.hist-$(o).$(BR_GRAPH_OUT) \ $(if $(BR2_GRAPH_ALT),--alternate-colors)$(sep)) $(foreach t,packages steps,./support/scripts/graph-build-time \ --type=pie-$(t) --input=$(<) \ --output=$(GRAPHS_DIR)/build.pie-$(t).$(BR_GRAPH_OUT) \ $(if $(BR2_GRAPH_ALT),--alternate-colors)$(sep)) .PHONY: graph-depends-requirements graph-depends-requirements: @dot -? >/dev/null 2>&1 || \ { echo "ERROR: The 'dot' program from Graphviz is needed for graph-depends" >&2; exit 1; } .PHONY: graph-depends graph-depends: graph-depends-requirements @$(INSTALL) -d $(GRAPHS_DIR) @cd "$(CONFIG_DIR)"; \ $(TOPDIR)/support/scripts/graph-depends $(BR2_GRAPH_DEPS_OPTS) \ --direct -o $(GRAPHS_DIR)/$(@).dot dot $(BR2_GRAPH_DOT_OPTS) -T$(BR_GRAPH_OUT) \ -o $(GRAPHS_DIR)/$(@).$(BR_GRAPH_OUT) \ $(GRAPHS_DIR)/$(@).dot .PHONY: graph-size graph-size: $(Q)mkdir -p $(GRAPHS_DIR) $(Q)$(TOPDIR)/support/scripts/size-stats --builddir $(BASE_DIR) \ --graph $(GRAPHS_DIR)/graph-size.$(BR_GRAPH_OUT) \ --file-size-csv $(GRAPHS_DIR)/file-size-stats.csv \ --package-size-csv $(GRAPHS_DIR)/package-size-stats.csv \ $(BR2_GRAPH_SIZE_OPTS) .PHONY: check-dependencies check-dependencies: @cd "$(CONFIG_DIR)"; \ $(TOPDIR)/support/scripts/graph-depends -C .PHONY: show-info show-info: @: $(info $(call clean-json, \ { $(foreach p, \ $(sort $(foreach i,$(PACKAGES) $(TARGETS_ROOTFS), \ $(i) \ $($(call UPPERCASE,$(i))_FINAL_RECURSIVE_DEPENDENCIES) \ ) \ ), \ $(call json-info,$(call UPPERCASE,$(p)))$(comma) \ ) } \ ) \ ) .PHONY: pkg-stats pkg-stats: @cd "$(CONFIG_DIR)" ; \ $(TOPDIR)/support/scripts/pkg-stats -c \ --json $(O)/pkg-stats.json \ --html $(O)/pkg-stats.html \ --nvd-path $(DL_DIR)/buildroot-nvd .PHONY: missing-cpe missing-cpe: $(Q)mkdir -p $(CPE_UPDATES_DIR) $(Q)cd "$(CONFIG_DIR)" ; \ $(TOPDIR)/support/scripts/gen-missing-cpe \ --nvd-path $(DL_DIR)/buildroot-nvd \ --output $(CPE_UPDATES_DIR) else # ifeq ($(BR2_HAVE_DOT_CONFIG),y) # Some subdirectories are also package names. To avoid that "make linux" # on an unconfigured tree produces "Nothing to be done", add an explicit # rule for it. # Also for 'all' we error out and ask the user to configure first. .PHONY: linux toolchain linux toolchain all: outputmakefile $(error Please configure Buildroot first (e.g. "make menuconfig")) @exit 1 endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y) # configuration # --------------------------------------------------------------------------- HOSTCFLAGS = $(CFLAGS_FOR_BUILD) export HOSTCFLAGS $(BUILD_DIR)/buildroot-config/%onf: mkdir -p $(@D)/lxdialog PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)" $(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" \ obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F) DEFCONFIG = $(call qstrip,$(BR2_DEFCONFIG)) # We don't want to fully expand BR2_DEFCONFIG here, so Kconfig will # recognize that if it's still at its default $(CONFIG_DIR)/defconfig COMMON_CONFIG_ENV = \ BR2_DEFCONFIG='$(call qstrip,$(value BR2_DEFCONFIG))' \ KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \ BR2_CONFIG=$(BR2_CONFIG) \ HOST_GCC_VERSION="$(HOSTCC_VERSION)" \ BASE_DIR=$(BASE_DIR) \ SKIP_LEGACY= xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) gconfig: $(BUILD_DIR)/buildroot-config/gconf outputmakefile @$(COMMON_CONFIG_ENV) srctree=$(TOPDIR) $< $(CONFIG_CONFIG_IN) menuconfig: $(BUILD_DIR)/buildroot-config/mconf outputmakefile @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) nconfig: $(BUILD_DIR)/buildroot-config/nconf outputmakefile @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) config: $(BUILD_DIR)/buildroot-config/conf outputmakefile @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) # For the config targets that automatically select options, we pass # SKIP_LEGACY=y to disable the legacy options. However, in that case # no values are set for the legacy options so a subsequent oldconfig # will query them. Therefore, run an additional olddefconfig. randconfig allyesconfig alldefconfig allnoconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --$@ $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null randpackageconfig allyespackageconfig allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \ KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ $< --$(subst package,,$@) $(CONFIG_CONFIG_IN) @rm -f $(CONFIG_DIR)/.config.nopkg @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null oldconfig syncconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @$(COMMON_CONFIG_ENV) $< --$@ $(CONFIG_CONFIG_IN) defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN) define percent_defconfig # Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig %_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig outputmakefile @$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \ $$< --defconfig=$(1)/configs/$$@ $$(CONFIG_CONFIG_IN) endef $(eval $(foreach d,$(call reverse,$(TOPDIR) $(BR2_EXTERNAL_DIRS)),$(call percent_defconfig,$(d))$(sep))) update-defconfig: savedefconfig savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @$(COMMON_CONFIG_ENV) $< \ --savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \ $(CONFIG_CONFIG_IN) @$(SED) '/^BR2_DEFCONFIG=/d' $(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) .PHONY: defconfig savedefconfig update-defconfig ################################################################################ # # Cleanup and misc junk # ################################################################################ # staging and target directories do NOT list these as # dependencies anywhere else $(BUILD_DIR) $(BASE_TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) $(PER_PACKAGE_DIR): @mkdir -p $@ # outputmakefile generates a Makefile in the output directory, if using a # separate output directory. This allows convenient use of make in the # output directory. .PHONY: outputmakefile outputmakefile: ifeq ($(NEED_WRAPPER),y) $(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O) endif # printvars prints all the variables currently defined in our # Makefiles. Alternatively, if a non-empty VARS variable is passed, # only the variables matching the make pattern passed in VARS are # displayed. .PHONY: printvars printvars: @: $(foreach V, \ $(sort $(filter $(VARS),$(.VARIABLES))), \ $(if $(filter-out environment% default automatic, \ $(origin $V)), \ $(if $(QUOTED_VARS),\ $(info $V='$(subst ','\'',$(if $(RAW_VARS),$(value $V),$($V)))'), \ $(info $V=$(if $(RAW_VARS),$(value $V),$($V)))))) # ')))) # Syntax colouring... .PHONY: clean clean: rm -rf $(BASE_TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) $(HOST_DIR_SYMLINK) \ $(BUILD_DIR) $(BASE_DIR)/staging \ $(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(PER_PACKAGE_DIR) $(CPE_UPDATES_DIR) \ $(O)/pkg-stats.* .PHONY: distclean distclean: clean ifeq ($(O),$(CURDIR)/output) rm -rf $(O) endif rm -rf $(TOPDIR)/dl $(BR2_CONFIG) $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/..config.tmp \ $(CONFIG_DIR)/.auto.deps $(BASE_DIR)/.br2-external.* .PHONY: help help: @echo 'Cleaning:' @echo ' clean - delete all files created by build' @echo ' distclean - delete all non-source files (including .config)' @echo @echo 'Build:' @echo ' all - make world' @echo ' toolchain - build toolchain' @echo ' sdk - build relocatable SDK' @echo @echo 'Configuration:' @echo ' menuconfig - interactive curses-based configurator' @echo ' nconfig - interactive ncurses-based configurator' @echo ' xconfig - interactive Qt-based configurator' @echo ' gconfig - interactive GTK-based configurator' @echo ' oldconfig - resolve any unresolved symbols in .config' @echo ' syncconfig - Same as oldconfig, but quietly, additionally update deps' @echo ' olddefconfig - Same as syncconfig but sets new symbols to their default value' @echo ' randconfig - New config with random answer to all options' @echo ' defconfig - New config with default answer to all options;' @echo ' BR2_DEFCONFIG, if set on the command line, is used as input' @echo ' savedefconfig - Save current config to BR2_DEFCONFIG (minimal config)' @echo ' update-defconfig - Same as savedefconfig' @echo ' allyesconfig - New config where all options are accepted with yes' @echo ' allnoconfig - New config where all options are answered with no' @echo ' alldefconfig - New config where all options are set to default' @echo ' randpackageconfig - New config with random answer to package options' @echo ' allyespackageconfig - New config where pkg options are accepted with yes' @echo ' allnopackageconfig - New config where package options are answered with no' @echo @echo 'Package-specific:' @echo ' - Build and install and all its dependencies' @echo ' -source - Only download the source files for ' @echo ' -extract - Extract sources' @echo ' -patch - Apply patches to ' @echo ' -depends - Build '\''s dependencies' @echo ' -configure - Build up to the configure step' @echo ' -build - Build up to the build step' @echo ' -show-info - generate info about , as a JSON blurb' @echo ' -show-depends - List packages on which depends' @echo ' -show-rdepends - List packages which have as a dependency' @echo ' -show-recursive-depends' @echo ' - Recursively list packages on which depends' @echo ' -show-recursive-rdepends' @echo ' - Recursively list packages which have as a dependency' @echo ' -graph-depends - Generate a graph of '\''s dependencies' @echo ' -graph-rdepends - Generate a graph of '\''s reverse dependencies' @echo ' -dirclean - Remove build directory' @echo ' -reconfigure - Restart the build from the configure step' @echo ' -rebuild - Restart the build from the build step' @echo ' -reinstall - Restart the build from the install step' $(foreach p,$(HELP_PACKAGES), \ @echo $(sep) \ @echo '$($(p)_NAME):' $(sep) \ $($(p)_HELP_CMDS)$(sep)) @echo @echo 'Documentation:' @echo ' manual - build manual in all formats' @echo ' manual-html - build manual in HTML' @echo ' manual-split-html - build manual in split HTML' @echo ' manual-pdf - build manual in PDF' @echo ' manual-text - build manual in text' @echo ' manual-epub - build manual in ePub' @echo ' graph-build - generate graphs of the build times' @echo ' graph-depends - generate graph of the dependency tree' @echo ' graph-size - generate stats of the filesystem size' @echo ' list-defconfigs - list all defconfigs (pre-configured minimal systems)' @echo @echo 'Miscellaneous:' @echo ' source - download all sources needed for offline-build' @echo ' external-deps - list external packages used' @echo ' legal-info - generate info about license compliance' @echo ' show-info - generate info about packages, as a JSON blurb' @echo ' pkg-stats - generate info about packages as JSON and HTML' @echo ' missing-cpe - generate XML snippets for missing CPE identifiers' @echo ' printvars - dump internal variables selected with VARS=...' @echo @echo ' make V=0|1 - 0 => quiet build (default), 1 => verbose build' @echo ' make O=dir - Locate all output files in "dir", including .config' @echo @echo 'For further details, see README, generate the Buildroot manual, or consult' @echo 'it on-line at http://buildroot.org/docs.html' @echo # List the defconfig files # $(1): base directory # $(2): br2-external name, empty for bundled define list-defconfigs @first=true; \ for defconfig in $(1)/configs/*_defconfig; do \ [ -f "$${defconfig}" ] || continue; \ if $${first}; then \ if [ "$(2)" ]; then \ printf 'External configs in "$(call qstrip,$(2))":\n'; \ else \ printf "Built-in configs:\n"; \ fi; \ first=false; \ fi; \ defconfig="$${defconfig##*/}"; \ printf " %-35s - Build for %s\n" "$${defconfig}" "$${defconfig%_defconfig}"; \ done; \ $${first} || printf "\n" endef # We iterate over BR2_EXTERNAL_NAMES rather than BR2_EXTERNAL_DIRS, # because we want to display the name of the br2-external tree. .PHONY: list-defconfigs list-defconfigs: $(call list-defconfigs,$(TOPDIR)) $(foreach name,$(BR2_EXTERNAL_NAMES),\ $(call list-defconfigs,$(BR2_EXTERNAL_$(name)_PATH),\ $(BR2_EXTERNAL_$(name)_DESC))$(sep)) release: OUT = buildroot-$(BR2_VERSION) # Create release tarballs. We need to fiddle a bit to add the generated # documentation to the git output release: git archive --format=tar --prefix=$(OUT)/ HEAD > $(OUT).tar $(MAKE) O=$(OUT) manual-html manual-text manual-pdf $(MAKE) O=$(OUT) distclean tar rf $(OUT).tar $(OUT) gzip -9 -c < $(OUT).tar > $(OUT).tar.gz xz -9 -c < $(OUT).tar > $(OUT).tar.xz rm -rf $(OUT) $(OUT).tar print-version: @echo $(BR2_VERSION_FULL) check-flake8: $(Q)git ls-tree -r --name-only HEAD \ | xargs file \ | grep 'Python script' \ | cut -d':' -f1 \ | xargs -- python3 -m flake8 --statistics check-package: find $(TOPDIR) -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' \) \ -exec ./utils/check-package {} + include docs/manual/manual.mk -include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk))) .PHONY: $(noconfig_targets) endif #umask / $(CURDIR) / $(O) ================================================ FILE: Makefile.legacy ================================================ # # Makefile.legacy - support for backward compatibility # # This file contains placeholders to detect backward-compatibility problems. # When a buildroot "API" feature is being deprecated, a rule should be added # here that issues an error when the old feature is used. ifeq ($(BR2_LEGACY),y) $(error "You have legacy configuration in your .config! Please check your configuration.") endif # # Legacy options from 2014.02 # # The BUILDROOT_DL_DIR environment variable was renamed by BR2_DL_DIR. We # want to detect someone using the old variable, _except_ if also the new # variable was set. By the time we get here, however, we no longer have # access to the BR2_DL_DIR environment variable (because it has been overridden # by the .config inclusion). However, the environment variable (if defined) was # saved in DL_DIR, so we can use that. ifneq ($(BUILDROOT_DL_DIR),) ifneq ($(BUILDROOT_DL_DIR),$(DL_DIR)) $(error "The BUILDROOT_DL_DIR environment variable was renamed to BR2_DL_DIR.") endif endif # If a script is using the deprecated BUILDROOT_CONFIG, make sure it fails. # Add some directories in front just in case someone used dirname on it. BUILDROOT_CONFIG_FAKE = /tmp/deprecated/The-BUILDROOT_CONFIG-environment-variable-was-renamed-to-BR2_CONFIG # Similar to above for BUILDROOT_CONFIG, but here we have no .config equivalent. ifneq ($(BUILDROOT_CONFIG),) ifneq ($(BUILDROOT_CONFIG),$(BR2_CONFIG)) ifneq ($(BUILDROOT_CONFIG),$(BUILDROOT_CONFIG_FAKE)) $(error "The BUILDROOT_CONFIG environment variable was renamed to BR2_CONFIG.") endif endif endif BUILDROOT_CONFIG = $(BUILDROOT_CONFIG_FAKE) export BUILDROOT_CONFIG # # Legacy options from 2012.08 # host-pkg-config: @$(call MESSAGE,host-pkg-config is replaced by host-pkgconf) @$(call MESSAGE,please update your .mk files) @false .PHONY: host-pkg-config # # Legacy options from 2012.05 # GENTARGETS = $$(error The GENTARGETS macro no longer exists; use $$$$(eval $$$$(generic-package)) or $$$$(eval $$$$(host-generic-package))) AUTOTARGETS = $$(error The AUTOTARGETS macro no longer exists; use $$$$(eval $$$$(autotools-package)) or $$$$(eval $$$$(host-autotools-package))) CMAKETARGETS = $$(error The CMAKETARGETS macro no longer exists; use $$$$(eval $$$$(cmake-package)) or $$$$(eval $$$$(host-cmake-package))) ================================================ FILE: README.md ================================================ # What's thingOS? **thingOS** is a highly customized [BuildRoot](https://buildroot.uclibc.org) that serves as a base for IoT dedicated operating systems. If you want to turn your Raspberry PI board into something that controls your lights, doors, sprinklers or other devices, by designing your own "firmware", thingOS may be a good choice. # Philosophy **thingOS** aims to make the development of small dedicated Linux-based OSes an easy task. Deployment, over-the-air updates and backups shouldn't be a pain in the ass. Developers should concentrate on their main goal rather than removing unused packages and services from existing OSes to lighten them up, taking care of network connection reliability or enabling the watchdog. **thingOS** tries to boot as fast as possible. Whenever something goes wrong, we prefer to reboot the system instead of trying to run complex recovery procedures. **thingOS** doesn't reinvent the wheel. It uses the amazing infrastructure provided by BuildRoot but comes with customized configurations and init scripts for the supported hardware platforms. # Features * support for popular single-board computers (see [Supported Single-board Computers](https://github.com/ccrisan/thingos/wiki/Supported-Single-board-Computers)) * quick boots (see [Boot Process](https://github.com/ccrisan/thingos/wiki/Boot-Process)) * read-only partitions to minimize corruption risks (see [Partitions](https://github.com/ccrisan/thingos/wiki/Partitions)) * simple configuration via text files (see [OS Configuration](https://github.com/ccrisan/thingos/wiki/OS-Configuration)) * over-the-air "firmware" updates (see [Firmware Updates](https://github.com/ccrisan/thingos/wiki/Firmware-Updates)) * out-of-the box backup and restore mechanism (see [Backup/Restore](https://github.com/ccrisan/thingos/wiki/Backup-Restore)) * high reliability (see [Reliability](https://github.com/ccrisan/thingos/wiki/Reliability)) * everything that [BuildRoot](https://buildroot.uclibc.org) has to offer # Getting Started Just follow the [Getting Started](https://github.com/ccrisan/thingos/wiki/Getting-Started) guide. # Supported Boards Here's a list of [Supported Single-board Computers](https://github.com/ccrisan/thingos/wiki/Supported-Single-board-Computers). # Documentation Feel free to browse the [wiki articles](https://github.com/ccrisan/thingos/wiki). ================================================ FILE: arch/Config.in ================================================ menu "Target options" config BR2_ARCH_IS_64 bool config BR2_KERNEL_64_USERLAND_32 bool config BR2_SOFT_FLOAT bool config BR2_ARCH_HAS_MMU_MANDATORY bool config BR2_ARCH_HAS_MMU_OPTIONAL bool choice prompt "Target Architecture" default BR2_i386 help Select the target architecture family to build for. config BR2_arcle bool "ARC (little endian)" select BR2_ARCH_HAS_MMU_MANDATORY help Synopsys' DesignWare ARC Processor Cores are a family of 32-bit CPUs that can be used from deeply embedded to high performance host applications. Little endian. config BR2_arceb bool "ARC (big endian)" select BR2_ARCH_HAS_MMU_MANDATORY help Synopsys' DesignWare ARC Processor Cores are a family of 32-bit CPUs that can be used from deeply embedded to high performance host applications. Big endian. config BR2_arm bool "ARM (little endian)" # MMU support is set by the subarchitecture file, arch/Config.in.arm help ARM is a 32-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by ARM Holdings. Little endian. http://www.arm.com/ http://en.wikipedia.org/wiki/ARM config BR2_armeb bool "ARM (big endian)" # MMU support is set by the subarchitecture file, arch/Config.in.arm help ARM is a 32-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by ARM Holdings. Big endian. http://www.arm.com/ http://en.wikipedia.org/wiki/ARM config BR2_aarch64 bool "AArch64 (little endian)" select BR2_ARCH_IS_64 select BR2_ARCH_HAS_MMU_MANDATORY help Aarch64 is a 64-bit architecture developed by ARM Holdings. http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php http://en.wikipedia.org/wiki/ARM config BR2_aarch64_be bool "AArch64 (big endian)" select BR2_ARCH_IS_64 select BR2_ARCH_HAS_MMU_MANDATORY help Aarch64 is a 64-bit architecture developed by ARM Holdings. http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php http://en.wikipedia.org/wiki/ARM config BR2_csky bool "csky" select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 help csky is processor IP from china. http://www.c-sky.com/ http://www.github.com/c-sky config BR2_i386 bool "i386" select BR2_ARCH_HAS_MMU_MANDATORY help Intel i386 architecture compatible microprocessor http://en.wikipedia.org/wiki/I386 config BR2_m68k bool "m68k" # MMU support is set by the subarchitecture file, arch/Config.in.m68k help Motorola 68000 family microprocessor http://en.wikipedia.org/wiki/M68k config BR2_microblazeel bool "Microblaze AXI (little endian)" select BR2_ARCH_HAS_MMU_MANDATORY help Soft processor core designed for Xilinx FPGAs from Xilinx. AXI bus based architecture (little endian) http://www.xilinx.com http://en.wikipedia.org/wiki/Microblaze config BR2_microblazebe bool "Microblaze non-AXI (big endian)" select BR2_ARCH_HAS_MMU_MANDATORY help Soft processor core designed for Xilinx FPGAs from Xilinx. PLB bus based architecture (non-AXI, big endian) http://www.xilinx.com http://en.wikipedia.org/wiki/Microblaze config BR2_mips bool "MIPS (big endian)" select BR2_ARCH_HAS_MMU_MANDATORY help MIPS is a RISC microprocessor from MIPS Technologies. Big endian. http://www.mips.com/ http://en.wikipedia.org/wiki/MIPS_Technologies config BR2_mipsel bool "MIPS (little endian)" select BR2_ARCH_HAS_MMU_MANDATORY help MIPS is a RISC microprocessor from MIPS Technologies. Little endian. http://www.mips.com/ http://en.wikipedia.org/wiki/MIPS_Technologies config BR2_mips64 bool "MIPS64 (big endian)" select BR2_ARCH_IS_64 select BR2_ARCH_HAS_MMU_MANDATORY help MIPS is a RISC microprocessor from MIPS Technologies. Big endian. http://www.mips.com/ http://en.wikipedia.org/wiki/MIPS_Technologies config BR2_mips64el bool "MIPS64 (little endian)" select BR2_ARCH_IS_64 select BR2_ARCH_HAS_MMU_MANDATORY help MIPS is a RISC microprocessor from MIPS Technologies. Little endian. http://www.mips.com/ http://en.wikipedia.org/wiki/MIPS_Technologies config BR2_nds32 bool "nds32" select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT select BR2_ARCH_HAS_MMU_MANDATORY help nds32 is a 32-bit architecture developed by Andes Technology. https://en.wikipedia.org/wiki/Andes_Technology config BR2_nios2 bool "Nios II" select BR2_ARCH_HAS_MMU_MANDATORY help Nios II is a soft core processor from Altera Corporation. http://www.altera.com/ http://en.wikipedia.org/wiki/Nios_II config BR2_or1k bool "OpenRISC" select BR2_ARCH_HAS_MMU_MANDATORY help OpenRISC is a free and open processor for embedded system. http://openrisc.io config BR2_powerpc bool "PowerPC" select BR2_ARCH_HAS_MMU_MANDATORY help PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance. Big endian. http://www.power.org/ http://en.wikipedia.org/wiki/Powerpc config BR2_powerpc64 bool "PowerPC64 (big endian)" select BR2_ARCH_IS_64 select BR2_ARCH_HAS_MMU_MANDATORY help PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance. Big endian. http://www.power.org/ http://en.wikipedia.org/wiki/Powerpc config BR2_powerpc64le bool "PowerPC64 (little endian)" select BR2_ARCH_IS_64 select BR2_ARCH_HAS_MMU_MANDATORY help PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance. Little endian. http://www.power.org/ http://en.wikipedia.org/wiki/Powerpc config BR2_riscv bool "RISCV" select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 help RISC-V is an open, free Instruction Set Architecture created by the UC Berkeley Architecture Research group and supported and promoted by RISC-V Foundation. https://riscv.org/ https://en.wikipedia.org/wiki/RISC-V config BR2_s390x bool "s390x" select BR2_ARCH_IS_64 select BR2_ARCH_HAS_MMU_MANDATORY help s390x is a big-endian architecture made by IBM. http://www.ibm.com/ http://en.wikipedia.org/wiki/IBM_System/390 config BR2_sh bool "SuperH" select BR2_ARCH_HAS_MMU_OPTIONAL help SuperH (or SH) is a 32-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by Hitachi. http://www.hitachi.com/ http://en.wikipedia.org/wiki/SuperH config BR2_sparc bool "SPARC" select BR2_ARCH_HAS_MMU_MANDATORY help SPARC (from Scalable Processor Architecture) is a RISC instruction set architecture (ISA) developed by Sun Microsystems. http://www.oracle.com/sun http://en.wikipedia.org/wiki/Sparc config BR2_sparc64 bool "SPARC64" select BR2_ARCH_IS_64 select BR2_ARCH_HAS_MMU_MANDATORY help SPARC (from Scalable Processor Architecture) is a RISC instruction set architecture (ISA) developed by Sun Microsystems. http://www.oracle.com/sun http://en.wikipedia.org/wiki/Sparc config BR2_x86_64 bool "x86_64" select BR2_ARCH_IS_64 select BR2_ARCH_HAS_MMU_MANDATORY help x86-64 is an extension of the x86 instruction set (Intel i386 architecture compatible microprocessor). http://en.wikipedia.org/wiki/X86_64 config BR2_xtensa bool "Xtensa" # MMU support is set by the subarchitecture file, arch/Config.in.xtensa help Xtensa is a Tensilica processor IP architecture. http://en.wikipedia.org/wiki/Xtensa http://www.tensilica.com/ endchoice # For some architectures or specific cores, our internal toolchain # backend is not suitable (like, missing support in upstream gcc, or # no ChipCo fork exists...) config BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT bool config BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT bool default y if !BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT # The following symbols are selected by the individual # Config.in.$ARCH files config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8 bool config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 bool select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8 config BR2_ARCH_NEEDS_GCC_AT_LEAST_5 bool select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 config BR2_ARCH_NEEDS_GCC_AT_LEAST_6 bool select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_ARCH_NEEDS_GCC_AT_LEAST_7 bool select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_ARCH_NEEDS_GCC_AT_LEAST_8 bool select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_ARCH_NEEDS_GCC_AT_LEAST_9 bool select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 config BR2_ARCH_NEEDS_GCC_AT_LEAST_10 bool select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 config BR2_ARCH_NEEDS_GCC_AT_LEAST_11 bool select BR2_ARCH_NEEDS_GCC_AT_LEAST_10 # The following string values are defined by the individual # Config.in.$ARCH files config BR2_ARCH string config BR2_ENDIAN string config BR2_GCC_TARGET_ARCH string config BR2_GCC_TARGET_ABI string config BR2_GCC_TARGET_NAN string config BR2_GCC_TARGET_FP32_MODE string config BR2_GCC_TARGET_CPU string # The value of this option will be passed as --with-fpu= when # building gcc (internal backend) or -mfpu= in the toolchain # wrapper (external toolchain) config BR2_GCC_TARGET_FPU string # The value of this option will be passed as --with-float= when # building gcc (internal backend) or -mfloat-abi= in the toolchain # wrapper (external toolchain) config BR2_GCC_TARGET_FLOAT_ABI string # The value of this option will be passed as --with-mode= when # building gcc (internal backend) or -m in the toolchain # wrapper (external toolchain) config BR2_GCC_TARGET_MODE string # Must be selected by binary formats that support shared libraries. config BR2_BINFMT_SUPPORTS_SHARED bool # Must match the name of the architecture from readelf point of view, # i.e the "Machine:" field of readelf output. See get_machine_name() # in binutils/readelf.c for the list of possible values. config BR2_READELF_ARCH_NAME string # Set up target binary format choice prompt "Target Binary Format" default BR2_BINFMT_ELF if BR2_USE_MMU default BR2_BINFMT_FLAT config BR2_BINFMT_ELF bool "ELF" depends on BR2_USE_MMU select BR2_BINFMT_SUPPORTS_SHARED help ELF (Executable and Linkable Format) is a format for libraries and executables used across different architectures and operating systems. config BR2_BINFMT_FLAT bool "FLAT" depends on !BR2_USE_MMU help FLAT binary is a relatively simple and lightweight executable format based on the original a.out format. It is widely used in environment where no MMU is available. endchoice # Set up flat binary type choice prompt "FLAT Binary type" default BR2_BINFMT_FLAT_ONE depends on BR2_BINFMT_FLAT config BR2_BINFMT_FLAT_ONE bool "One memory region" help All segments are linked into one memory region. config BR2_BINFMT_FLAT_SHARED bool "Shared binary" depends on BR2_m68k # 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 # BR2_BINFMT_SUPPORTS_SHARED and therefore force BR2_STATIC_LIBS. # Although this adds -static to the compilation, that's not a problem # because the -mid-shared-library option overrides it. help Allow to load and link indiviual FLAT binaries at run time. endchoice if BR2_arcle || BR2_arceb source "arch/Config.in.arc" endif if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be source "arch/Config.in.arm" endif if BR2_csky source "arch/Config.in.csky" endif if BR2_m68k source "arch/Config.in.m68k" endif if BR2_microblazeel || BR2_microblazebe source "arch/Config.in.microblaze" endif if BR2_mips || BR2_mips64 || BR2_mipsel || BR2_mips64el source "arch/Config.in.mips" endif if BR2_nds32 source "arch/Config.in.nds32" endif if BR2_nios2 source "arch/Config.in.nios2" endif if BR2_or1k source "arch/Config.in.or1k" endif if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le source "arch/Config.in.powerpc" endif if BR2_riscv source "arch/Config.in.riscv" endif if BR2_s390x source "arch/Config.in.s390x" endif if BR2_sh source "arch/Config.in.sh" endif if BR2_sparc || BR2_sparc64 source "arch/Config.in.sparc" endif if BR2_i386 || BR2_x86_64 source "arch/Config.in.x86" endif if BR2_xtensa source "arch/Config.in.xtensa" endif endmenu # Target options ================================================ FILE: arch/Config.in.arc ================================================ choice prompt "Target CPU" default BR2_arc770d depends on BR2_arc help Specific CPU to use config BR2_arc750d bool "ARC 750D" config BR2_arc770d bool "ARC 770D" config BR2_archs38 bool "ARC HS38" help Generic ARC HS capable of running Linux, i.e. with MMU, caches and 32-bit multiplier. Also it corresponds to the default configuration in older GNU toolchain versions. config BR2_archs38_64mpy bool "ARC HS38 with 64-bit mpy" help Fully featured ARC HS capable of running Linux, i.e. with MMU, caches and 64-bit multiplier. If you're not sure which version of ARC HS core you build for use this one. config BR2_archs38_full bool "ARC HS38 with Quad MAC & FPU" help Fully featured ARC HS with additional support for - Dual- and quad multiply and MC oprations - Double-precision FPU It corresponds to "hs38_slc_full" ARC HS template in ARChitect. config BR2_archs4x_rel31 bool "ARC HS48 rel 31" help Build for HS48 release 3.1 config BR2_archs4x bool "ARC HS48" help Latest release of HS48 processor - Dual and Quad multiply and MAC operations - Double-precision FPU endchoice # Choice of atomic instructions presence config BR2_ARC_ATOMIC_EXT bool "Atomic extension (LLOCK/SCOND instructions)" default y if BR2_arc770d default y if BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full default y if BR2_archs4x_rel31 || BR2_archs4x config BR2_ARCH default "arc" if BR2_arcle default "arceb" if BR2_arceb config BR2_arc bool default y if BR2_arcle || BR2_arceb config BR2_ENDIAN default "LITTLE" if BR2_arcle default "BIG" if BR2_arceb config BR2_GCC_TARGET_CPU default "arc700" if BR2_arc750d default "arc700" if BR2_arc770d default "archs" if BR2_archs38 default "hs38" if BR2_archs38_64mpy default "hs38_linux" if BR2_archs38_full default "hs4x_rel31" if BR2_archs4x_rel31 default "hs4x" if BR2_archs4x config BR2_READELF_ARCH_NAME default "ARCompact" if BR2_arc750d || BR2_arc770d default "ARCv2" if BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full default "ARCv2" if BR2_archs4x_rel31 || BR2_archs4x choice prompt "MMU Page Size" default BR2_ARC_PAGE_SIZE_8K help MMU starting from version 3 (found in ARC 770) and now version 4 (found in ARC HS38) allows the selection of the page size during ASIC design creation. The following options are available for MMU v3 and v4: 4kB, 8kB and 16 kB. The default is 8 kB (that really matches the only page size in MMU v2). It is important to build a toolchain with page size matching the hardware configuration. Otherwise user-space applications will fail at runtime. config BR2_ARC_PAGE_SIZE_4K bool "4KB" depends on !BR2_arc750d config BR2_ARC_PAGE_SIZE_8K bool "8KB" help This is the one and only option available for MMUv2 and default value for MMU v3 and v4. config BR2_ARC_PAGE_SIZE_16K bool "16KB" depends on !BR2_arc750d endchoice config BR2_ARC_PAGE_SIZE string default "4K" if BR2_ARC_PAGE_SIZE_4K default "8K" if BR2_ARC_PAGE_SIZE_8K default "16K" if BR2_ARC_PAGE_SIZE_16K # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.arm ================================================ # arm cpu features config BR2_ARM_CPU_HAS_NEON bool # for some cores, NEON support is optional config BR2_ARM_CPU_MAYBE_HAS_NEON bool # For some cores, the FPU is optional config BR2_ARM_CPU_MAYBE_HAS_FPU bool config BR2_ARM_CPU_HAS_FPU bool # for some cores, VFPv2 is optional config BR2_ARM_CPU_MAYBE_HAS_VFPV2 bool select BR2_ARM_CPU_MAYBE_HAS_FPU config BR2_ARM_CPU_HAS_VFPV2 bool select BR2_ARM_CPU_HAS_FPU # for some cores, VFPv3 is optional config BR2_ARM_CPU_MAYBE_HAS_VFPV3 bool select BR2_ARM_CPU_MAYBE_HAS_VFPV2 config BR2_ARM_CPU_HAS_VFPV3 bool select BR2_ARM_CPU_HAS_VFPV2 # for some cores, VFPv4 is optional config BR2_ARM_CPU_MAYBE_HAS_VFPV4 bool select BR2_ARM_CPU_MAYBE_HAS_VFPV3 config BR2_ARM_CPU_HAS_VFPV4 bool select BR2_ARM_CPU_HAS_VFPV3 # FPv4 is always optional config BR2_ARM_CPU_MAYBE_HAS_FPV4 bool select BR2_ARM_CPU_MAYBE_HAS_FPU config BR2_ARM_CPU_HAS_FPV4 bool select BR2_ARM_CPU_HAS_FPU # FPv5 is always optional config BR2_ARM_CPU_MAYBE_HAS_FPV5 bool select BR2_ARM_CPU_MAYBE_HAS_FPV4 config BR2_ARM_CPU_HAS_FPV5 bool select BR2_ARM_CPU_HAS_FPV4 config BR2_ARM_CPU_HAS_FP_ARMV8 bool select BR2_ARM_CPU_HAS_VFPV4 config BR2_ARM_CPU_HAS_ARM bool config BR2_ARM_CPU_HAS_THUMB bool config BR2_ARM_CPU_HAS_THUMB2 bool config BR2_ARM_CPU_ARMV4 bool config BR2_ARM_CPU_ARMV5 bool config BR2_ARM_CPU_ARMV6 bool config BR2_ARM_CPU_ARMV7A bool config BR2_ARM_CPU_ARMV7M bool config BR2_ARM_CPU_ARMV8A bool choice prompt "Target Architecture Variant" default BR2_cortex_a53 if BR2_ARCH_IS_64 default BR2_arm926t help Specific CPU variant to use if !BR2_ARCH_IS_64 comment "armv4 cores" config BR2_arm920t bool "arm920t" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV4 select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_arm922t bool "arm922t" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV4 select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_fa526 bool "fa526/626" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_ARMV4 select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_strongarm bool "strongarm sa110/sa1100" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_ARMV4 select BR2_ARCH_HAS_MMU_OPTIONAL comment "armv5 cores" config BR2_arm926t bool "arm926t" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_MAYBE_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV5 select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_iwmmxt bool "iwmmxt" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_ARMV5 select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_xscale bool "xscale" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV5 select BR2_ARCH_HAS_MMU_OPTIONAL comment "armv6 cores" config BR2_arm1136j_s bool "arm1136j-s" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV6 select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_arm1136jf_s bool "arm1136jf-s" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV6 select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_arm1176jz_s bool "arm1176jz-s" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV6 select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_arm1176jzf_s bool "arm1176jzf-s" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV6 select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_arm11mpcore bool "mpcore" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_MAYBE_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV6 select BR2_ARCH_HAS_MMU_OPTIONAL comment "armv7a cores" config BR2_cortex_a5 bool "cortex-A5" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_MAYBE_HAS_NEON select BR2_ARM_CPU_MAYBE_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a7 bool "cortex-A7" 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_a8 bool "cortex-A8" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_NEON select BR2_ARM_CPU_HAS_VFPV3 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a9 bool "cortex-A9" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_MAYBE_HAS_NEON select BR2_ARM_CPU_MAYBE_HAS_VFPV3 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a12 bool "cortex-A12" 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_a15 bool "cortex-A15" 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_a15_a7 bool "cortex-A15/A7 big.LITTLE" 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 select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 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 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_cortex_a17_a7 bool "cortex-A17/A7 big.LITTLE" 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 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_pj4 bool "pj4" select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_VFPV3 select BR2_ARM_CPU_ARMV7A select BR2_ARCH_HAS_MMU_OPTIONAL comment "armv7m cores" config BR2_cortex_m3 bool "cortex-M3" 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_MAYBE_HAS_FPV4 select BR2_ARM_CPU_ARMV7M config BR2_cortex_m7 bool "cortex-M7" select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_MAYBE_HAS_FPV5 select BR2_ARM_CPU_ARMV7M select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 endif # !BR2_ARCH_IS_64 comment "armv8 cores" config BR2_cortex_a32 bool "cortex-A32" depends on !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_NEON select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_cortex_a35 bool "cortex-A35" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_cortex_a53 bool "cortex-A53" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a57 bool "cortex-A57" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_a57_a53 bool "cortex-A57/A53 big.LITTLE" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_cortex_a72 bool "cortex-A72" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_cortex_a72_a53 bool "cortex-A72/A53 big.LITTLE" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_cortex_a73 bool "cortex-A73" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_cortex_a73_a35 bool "cortex-A73/A35 big.LITTLE" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_cortex_a73_a53 bool "cortex-A73/A53 big.LITTLE" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_emag bool "emag" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 config BR2_exynos_m1 bool "exynos-m1" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_falkor bool "falkor" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_phecda bool "phecda" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 config BR2_qdf24xx bool "qdf24xx" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_thunderx bool "thunderx (aka octeontx)" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_thunderxt81 bool "thunderxt81 (aka octeontx81)" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_thunderxt83 bool "thunderxt83 (aka octeontx83)" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_thunderxt88 bool "thunderxt88" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_thunderxt88p1 bool "thunderxt88p1" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_xgene1 bool "xgene1" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 comment "armv8.1a cores" config BR2_thunderx2t99 bool "thunderx2t99" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_thunderx2t99p1 bool "thunderx2t99p1" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_vulcan bool "vulcan" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 comment "armv8.2a cores" config BR2_cortex_a55 bool "cortex-A55" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 config BR2_cortex_a75 bool "cortex-A75" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 config BR2_cortex_a75_a55 bool "cortex-A75/A55 big.LITTLE" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 config BR2_cortex_a76 bool "cortex-A76" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 config BR2_cortex_a76_a55 bool "cortex-A76/A55 big.LITTLE" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 config BR2_neoverse_n1 bool "neoverse-N1 (aka ares)" select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 config BR2_tsv110 bool "tsv110" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 comment "armv8.4a cores" config BR2_saphira bool "saphira" depends on BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 endchoice config BR2_ARM_ENABLE_NEON bool "Enable NEON SIMD extension support" depends on BR2_ARM_CPU_MAYBE_HAS_NEON select BR2_ARM_CPU_HAS_NEON help For some CPU cores, the NEON SIMD extension is optional. Select this option if you are certain your particular implementation has NEON support and you want to use it. config BR2_ARM_ENABLE_VFP bool "Enable VFP extension support" depends on BR2_ARM_CPU_MAYBE_HAS_FPU select BR2_ARM_CPU_HAS_FPV5 if BR2_ARM_CPU_MAYBE_HAS_FPV5 select BR2_ARM_CPU_HAS_FPV4 if BR2_ARM_CPU_MAYBE_HAS_FPV4 select BR2_ARM_CPU_HAS_VFPV4 if BR2_ARM_CPU_MAYBE_HAS_VFPV4 select BR2_ARM_CPU_HAS_VFPV3 if BR2_ARM_CPU_MAYBE_HAS_VFPV3 select BR2_ARM_CPU_HAS_VFPV2 if BR2_ARM_CPU_MAYBE_HAS_VFPV2 help For some CPU cores, the VFP extension is optional. Select this option if you are certain your particular implementation has VFP support and you want to use it. choice prompt "Target ABI" default BR2_ARM_EABIHF if BR2_ARM_CPU_HAS_FPU default BR2_ARM_EABI depends on BR2_arm || BR2_armeb help Application Binary Interface to use. The Application Binary Interface describes the calling conventions (how arguments are passed to functions, how the return value is passed, how system calls are made, etc.). config BR2_ARM_EABI bool "EABI" help The EABI is currently the standard ARM ABI, which is used in most projects. It supports both the 'soft' floating point model (in which floating point instructions are emulated in software) and the 'softfp' floating point model (in which floating point instructions are executed using an hardware floating point unit, but floating point arguments to functions are passed in integer registers). The 'softfp' floating point model is link-compatible with the 'soft' floating point model, i.e you can link a library built 'soft' with some other code built 'softfp'. However, passing the floating point arguments in integer registers is a bit inefficient, so if your ARM processor has a floating point unit, and you don't have pre-compiled 'soft' or 'softfp' code, using the EABIhf ABI will provide better floating point performances. If your processor does not have a floating point unit, then you must use this ABI. config BR2_ARM_EABIHF bool "EABIhf" depends on BR2_ARM_CPU_HAS_FPU help The EABIhf is an extension of EABI which supports the 'hard' floating point model. This model uses the floating point unit to execute floating point instructions, and passes floating point arguments in floating point registers. It is more efficient than EABI for floating point related workload. However, it does not allow to link against code that has been pre-built for the 'soft' or 'softfp' floating point models. If your processor has a floating point unit, and you don't depend on existing pre-compiled code, this option is most likely the best choice. endchoice choice prompt "Floating point strategy" default BR2_ARM_FPU_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8 default BR2_ARM_FPU_FPV5D16 if BR2_ARM_CPU_HAS_FPV5 default BR2_ARM_FPU_FPV4D16 if BR2_ARM_CPU_HAS_FPV4 default BR2_ARM_FPU_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4 default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3 default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2 default BR2_ARM_SOFT_FLOAT if !BR2_ARM_CPU_HAS_FPU config BR2_ARM_SOFT_FLOAT bool "Soft float" depends on BR2_ARM_EABI select BR2_SOFT_FLOAT help This option allows to use software emulated floating point. It should be used for ARM cores that do not include a Vector Floating Point unit, such as ARMv5 cores (ARM926 for example) or certain ARMv6 cores. config BR2_ARM_FPU_VFPV2 bool "VFPv2" depends on BR2_ARM_CPU_HAS_VFPV2 help This option allows to use the VFPv2 floating point unit, as available in some ARMv5 processors (ARM926EJ-S) and some ARMv6 processors (ARM1136JF-S, ARM1176JZF-S and ARM11 MPCore). Note that this option is also safe to use for newer cores such as Cortex-A, because the VFPv3 and VFPv4 units are backward compatible with VFPv2. config BR2_ARM_FPU_VFPV3 bool "VFPv3" depends on BR2_ARM_CPU_HAS_VFPV3 help This option allows to use the VFPv3 floating point unit, as available in some ARMv7 processors (Cortex-A{8, 9}). This option requires a VFPv3 unit that has 32 double-precision registers, which is not necessarily the case in all SOCs based on Cortex-A{8, 9}. If you're unsure, use VFPv3-D16 instead, which is guaranteed to work on all Cortex-A{8, 9}. Note that this option is also safe to use for newer cores that have a VFPv4 unit, because VFPv4 is backward compatible with VFPv3. They must of course also have 32 double-precision registers. config BR2_ARM_FPU_VFPV3D16 bool "VFPv3-D16" depends on BR2_ARM_CPU_HAS_VFPV3 help This option allows to use the VFPv3 floating point unit, as available in some ARMv7 processors (Cortex-A{8, 9}). This option requires a VFPv3 unit that has 16 double-precision registers, which is generally the case in all SOCs based on Cortex-A{8, 9}, even though VFPv3 is technically optional on Cortex-A9. This is the safest option for those cores. Note that this option is also safe to use for newer cores such that have a VFPv4 unit, because the VFPv4 is backward compatible with VFPv3. config BR2_ARM_FPU_VFPV4 bool "VFPv4" depends on BR2_ARM_CPU_HAS_VFPV4 help This option allows to use the VFPv4 floating point unit, as available in some ARMv7 processors (Cortex-A{5, 7, 12, 15}). This option requires a VFPv4 unit that has 32 double-precision registers, which is not necessarily the case in all SOCs based on Cortex-A{5, 7, 12, 15}. If you're unsure, you should probably use VFPv4-D16 instead. Note that if you want binary code that works on all ARMv7 cores, including the earlier Cortex-A{8, 9}, you should instead select VFPv3. config BR2_ARM_FPU_VFPV4D16 bool "VFPv4-D16" depends on BR2_ARM_CPU_HAS_VFPV4 help This option allows to use the VFPv4 floating point unit, as available in some ARMv7 processors (Cortex-A{5, 7, 12, 15}). This option requires a VFPv4 unit that has 16 double-precision registers, which is always available on Cortex-A12 and Cortex-A15, but optional on Cortex-A5 and Cortex-A7. Note that if you want binary code that works on all ARMv7 cores, including the earlier Cortex-A{8, 9}, you should instead select VFPv3-D16. config BR2_ARM_FPU_NEON bool "NEON" depends on BR2_ARM_CPU_HAS_NEON help This option allows to use the NEON SIMD unit, as available in some ARMv7 processors, as a floating-point unit. It should however be noted that using NEON for floating point operations doesn't provide a complete compatibility with the IEEE 754. config BR2_ARM_FPU_NEON_VFPV4 bool "NEON/VFPv4" depends on BR2_ARM_CPU_HAS_VFPV4 depends on BR2_ARM_CPU_HAS_NEON help This option allows to use both the VFPv4 and the NEON SIMD units for floating point operations. Note that some ARMv7 cores do not necessarily have VFPv4 and/or NEON support, for example on Cortex-A5 and Cortex-A7, support for VFPv4 and NEON is optional. config BR2_ARM_FPU_FPV4D16 bool "FPv4-D16" depends on BR2_ARM_CPU_HAS_FPV4 help This option allows to use the FPv4-SP (single precision) floating point unit, as available in some ARMv7m processors (Cortex-M4). config BR2_ARM_FPU_FPV5D16 bool "FPv5-D16" depends on BR2_ARM_CPU_HAS_FPV5 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 help This option allows to use the FPv5-SP (single precision) floating point unit, as available in some ARMv7m processors (Cortex-M7). Note that if you want binary code that works on the earlier Cortex-M4, you should instead select FPv4-D16. config BR2_ARM_FPU_FPV5DPD16 bool "FPv5-DP-D16" depends on BR2_ARM_CPU_HAS_FPV5 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 help This option allows to use the FPv5-DP (double precision) floating point unit, as available in some ARMv7m processors (Cortex-M7). Note that if you want binary code that works on the earlier Cortex-M4, you should instead select FPv4-D16. config BR2_ARM_FPU_FP_ARMV8 bool "FP-ARMv8" depends on BR2_ARM_CPU_HAS_FP_ARMV8 help This option allows to use the ARMv8 floating point unit. config BR2_ARM_FPU_NEON_FP_ARMV8 bool "NEON/FP-ARMv8" depends on BR2_ARM_CPU_HAS_FP_ARMV8 depends on BR2_ARM_CPU_HAS_NEON help This option allows to use both the ARMv8 floating point unit and the NEON SIMD unit for floating point operations. endchoice choice prompt "ARM instruction set" depends on BR2_arm || BR2_armeb config BR2_ARM_INSTRUCTIONS_ARM bool "ARM" depends on BR2_ARM_CPU_HAS_ARM help This option instructs the compiler to generate regular ARM instructions, that are all 32 bits wide. config BR2_ARM_INSTRUCTIONS_THUMB bool "Thumb" depends on BR2_ARM_CPU_HAS_THUMB # Thumb-1 and VFP are not compatible depends on BR2_ARM_SOFT_FLOAT help This option instructions the compiler to generate Thumb instructions, which allows to mix 16 bits instructions and 32 bits instructions. This generally provides a much smaller compiled binary size. comment "Thumb1 is not compatible with VFP" depends on BR2_ARM_CPU_HAS_THUMB depends on !BR2_ARM_SOFT_FLOAT config BR2_ARM_INSTRUCTIONS_THUMB2 bool "Thumb2" depends on BR2_ARM_CPU_HAS_THUMB2 help This option instructions the compiler to generate Thumb2 instructions, which allows to mix 16 bits instructions and 32 bits instructions. This generally provides a much smaller compiled binary size. endchoice config BR2_ARCH default "arm" if BR2_arm default "armeb" if BR2_armeb default "aarch64" if BR2_aarch64 default "aarch64_be" if BR2_aarch64_be config BR2_ENDIAN default "LITTLE" if (BR2_arm || BR2_aarch64) default "BIG" if (BR2_armeb || BR2_aarch64_be) config BR2_GCC_TARGET_CPU # armv4 default "arm920t" if BR2_arm920t default "arm922t" if BR2_arm922t default "fa526" if BR2_fa526 default "strongarm" if BR2_strongarm # armv5 default "arm926ej-s" if BR2_arm926t default "iwmmxt" if BR2_iwmmxt default "xscale" if BR2_xscale # armv6 default "arm1136j-s" if BR2_arm1136j_s default "arm1136jf-s" if BR2_arm1136jf_s default "arm1176jz-s" if BR2_arm1176jz_s default "arm1176jzf-s" if BR2_arm1176jzf_s default "mpcore" if BR2_arm11mpcore && BR2_ARM_CPU_HAS_VFPV2 default "mpcorenovfp" if BR2_arm11mpcore # armv7a default "cortex-a5" if BR2_cortex_a5 default "cortex-a7" if BR2_cortex_a7 default "cortex-a8" if BR2_cortex_a8 default "cortex-a9" if BR2_cortex_a9 default "cortex-a12" if BR2_cortex_a12 default "cortex-a15" if BR2_cortex_a15 default "cortex-a15.cortex-a7" if BR2_cortex_a15_a7 default "cortex-a17" if BR2_cortex_a17 default "cortex-a17.cortex-a7" if BR2_cortex_a17_a7 default "marvell-pj4" if BR2_pj4 # armv7m default "cortex-m3" if BR2_cortex_m3 default "cortex-m4" if BR2_cortex_m4 default "cortex-m7" if BR2_cortex_m7 # armv8a default "cortex-a32" if BR2_cortex_a32 default "cortex-a35" if BR2_cortex_a35 default "cortex-a53" if BR2_cortex_a53 default "cortex-a57" if BR2_cortex_a57 default "cortex-a57.cortex-a53" if BR2_cortex_a57_a53 default "cortex-a72" if BR2_cortex_a72 default "cortex-a72.cortex-a53" if BR2_cortex_a72_a53 default "cortex-a73" if BR2_cortex_a73 default "cortex-a73.cortex-a35" if BR2_cortex_a73_a35 default "cortex-a73.cortex-a53" if BR2_cortex_a73_a53 default "emag" if BR2_emag default "exynos-m1" if BR2_exynos_m1 default "falkor" if BR2_falkor default "phecda" if BR2_phecda default "qdf24xx" if BR2_qdf24xx default "thunderx" if BR2_thunderx && !BR2_TOOLCHAIN_GCC_AT_LEAST_9 default "octeontx" if BR2_thunderx && BR2_TOOLCHAIN_GCC_AT_LEAST_9 default "thunderxt81" if BR2_thunderxt81 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9 default "octeontx81" if BR2_thunderxt81 && BR2_TOOLCHAIN_GCC_AT_LEAST_9 default "thunderxt83" if BR2_thunderxt83 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9 default "octeontx83" if BR2_thunderxt83 && BR2_TOOLCHAIN_GCC_AT_LEAST_9 default "thunderxt88" if BR2_thunderxt88 default "thunderxt88p1" if BR2_thunderxt88p1 default "xgene1" if BR2_xgene1 # armv8.1a default "thunderx2t99" if BR2_thunderx2t99 default "thunderx2t99p1" if BR2_thunderx2t99p1 default "vulcan" if BR2_vulcan # armv8.2a default "cortex-a55" if BR2_cortex_a55 default "cortex-a75" if BR2_cortex_a75 default "cortex-a75.cortex-a55" if BR2_cortex_a75_a55 default "cortex-a76" if BR2_cortex_a76 default "cortex-a76.cortex-a55" if BR2_cortex_a76_a55 default "neoverse-n1" if BR2_neoverse_n1 default "tsv110" if BR2_tsv110 # armv8.4a default "saphira" if BR2_saphira config BR2_GCC_TARGET_ABI default "aapcs-linux" if BR2_arm || BR2_armeb default "lp64" if BR2_aarch64 || BR2_aarch64_be config BR2_GCC_TARGET_FPU default "vfp" if BR2_ARM_FPU_VFPV2 default "vfpv3" if BR2_ARM_FPU_VFPV3 default "vfpv3-d16" if BR2_ARM_FPU_VFPV3D16 default "vfpv4" if BR2_ARM_FPU_VFPV4 default "vfpv4-d16" if BR2_ARM_FPU_VFPV4D16 default "neon" if BR2_ARM_FPU_NEON default "neon-vfpv4" if BR2_ARM_FPU_NEON_VFPV4 default "fpv4-sp-d16" if BR2_ARM_FPU_FPV4D16 default "fpv5-sp-d16" if BR2_ARM_FPU_FPV5D16 default "fpv5-d16" if BR2_ARM_FPU_FPV5DPD16 default "fp-armv8" if BR2_ARM_FPU_FP_ARMV8 default "neon-fp-armv8" if BR2_ARM_FPU_NEON_FP_ARMV8 depends on BR2_arm || BR2_armeb config BR2_GCC_TARGET_FLOAT_ABI default "soft" if BR2_ARM_SOFT_FLOAT default "softfp" if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABI default "hard" if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABIHF config BR2_GCC_TARGET_MODE default "arm" if BR2_ARM_INSTRUCTIONS_ARM default "thumb" if BR2_ARM_INSTRUCTIONS_THUMB || BR2_ARM_INSTRUCTIONS_THUMB2 config BR2_READELF_ARCH_NAME default "ARM" if BR2_arm || BR2_armeb default "AArch64" if BR2_aarch64 || BR2_aarch64_be # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.csky ================================================ choice prompt "Target Architecture Variant" default BR2_ck610 help Specific CPU variant to use config BR2_ck610 # Not supported by upstream gcc <= 9, and handled as a special # exception in package/gcc/Config.in.host bool "ck610" config BR2_ck807 bool "ck807" config BR2_ck810 bool "ck810" config BR2_ck860 bool "ck860" endchoice config BR2_CSKY_FPU bool "Enable FPU coprocessor" depends on BR2_ck810 || BR2_ck807 || BR2_ck860 help You can say N here if your C-SKY CPU doesn't have a Floating-Point Coprocessor or if you don't need FPU support for your user-space programs. config BR2_CSKY_VDSP bool "Enable VDSP enhanced instructions Co-processor" depends on BR2_CSKY_FPU config BR2_GCC_TARGET_FLOAT_ABI default "soft" if !BR2_CSKY_FPU default "hard" if BR2_CSKY_FPU config BR2_ARCH default "csky" config BR2_ENDIAN default "LITTLE" config BR2_READELF_ARCH_NAME default "CSKY" # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.m68k ================================================ config BR2_ARCH default "m68k" if BR2_m68k config BR2_ENDIAN default "BIG" # 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" default BR2_m68k_68040 depends on BR2_m68k 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 "5208" if BR2_m68k_cf5208 config BR2_READELF_ARCH_NAME default "MC68000" # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.microblaze ================================================ config BR2_ARCH default "microblazeel" if BR2_microblazeel default "microblaze" if BR2_microblazebe config BR2_ENDIAN default "LITTLE" if BR2_microblazeel default "BIG" if BR2_microblazebe config BR2_READELF_ARCH_NAME default "Xilinx MicroBlaze" config BR2_microblaze bool default y if BR2_microblazeel || BR2_microblazebe # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.mips ================================================ # mips default CPU ISAs config BR2_MIPS_CPU_MIPS32 bool select BR2_MIPS_NAN_LEGACY config BR2_MIPS_CPU_MIPS32R2 bool select BR2_MIPS_NAN_LEGACY config BR2_MIPS_CPU_MIPS32R3 bool select BR2_MIPS_NAN_LEGACY config BR2_MIPS_CPU_MIPS32R5 bool select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_MIPS_CPU_MIPS32R6 bool select BR2_MIPS_NAN_2008 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_MIPS_CPU_MIPS64 bool select BR2_MIPS_NAN_LEGACY config BR2_MIPS_CPU_MIPS64R2 bool select BR2_MIPS_NAN_LEGACY config BR2_MIPS_CPU_MIPS64R3 bool select BR2_MIPS_NAN_LEGACY config BR2_MIPS_CPU_MIPS64R5 bool select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_MIPS_CPU_MIPS64R6 bool select BR2_MIPS_NAN_2008 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 choice prompt "Target Architecture Variant" default BR2_mips_32 if BR2_mips || BR2_mipsel default BR2_mips_64 if BR2_mips64 || BR2_mips64el depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el help Specific CPU variant to use 64bit capable: 64, 64r2, 64r3, 64r5, 64r6 non-64bit capable: 32, 32r2, 32r3, 32r5, 32r6 config BR2_mips_32 bool "Generic MIPS32" depends on !BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS32 config BR2_mips_32r2 bool "Generic MIPS32R2" depends on !BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS32R2 config BR2_mips_32r3 bool "Generic MIPS32R3" depends on !BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS32R3 config BR2_mips_32r5 bool "Generic MIPS32R5" depends on !BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS32R5 config BR2_mips_32r6 bool "Generic MIPS32R6" depends on !BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS32R6 config BR2_mips_interaptiv bool "interAptiv" depends on !BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS32R2 select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_mips_m5150 bool "M5150" depends on !BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS32R5 select BR2_MIPS_NAN_2008 select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_mips_m6250 bool "M6250" depends on !BR2_ARCH_IS_64 select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT select BR2_MIPS_CPU_MIPS32R6 config BR2_mips_p5600 bool "P5600" depends on !BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS32R5 select BR2_MIPS_NAN_2008 config BR2_mips_xburst bool "XBurst" depends on !BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS32R2 help The Ingenic XBurst is a MIPS32R2 microprocessor. It has a bug in the FPU that can generate incorrect results in certain cases. The problem shows up when you have several fused madd instructions in sequence with dependant operands. This requires the -mno-fused-madd compiler option to be used in order to prevent emitting these instructions. See http://www.ingenic.com/en/?xburst.html config BR2_mips_64 bool "Generic MIPS64" depends on BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS64 config BR2_mips_64r2 bool "Generic MIPS64R2" depends on BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS64R2 config BR2_mips_64r3 bool "Generic MIPS64R3" depends on BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS64R3 config BR2_mips_64r5 bool "Generic MIPS64R5" depends on BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS64R5 config BR2_mips_64r6 bool "Generic MIPS64R6" depends on BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS64R6 config BR2_mips_i6400 bool "I6400" depends on BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS64R6 select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_mips_octeon2 bool "Octeon II" depends on BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS64R2 help Marvell (formerly Cavium Networks) Octeon II CN60XX processors. config BR2_mips_octeon3 bool "Octeon III" depends on BR2_ARCH_IS_64 select BR2_MIPS_CPU_MIPS64R3 help Marvell (formerly Cavium Networks) Octeon III CN7XXX processors. config BR2_mips_p6600 bool "P6600" depends on BR2_ARCH_IS_64 select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT select BR2_MIPS_CPU_MIPS64R6 endchoice choice prompt "Target ABI" default BR2_MIPS_NABI32 depends on BR2_mips64 || BR2_mips64el help Application Binary Interface to use config BR2_MIPS_NABI32 bool "n32" depends on BR2_ARCH_IS_64 select BR2_KERNEL_64_USERLAND_32 config BR2_MIPS_NABI64 bool "n64" depends on BR2_ARCH_IS_64 endchoice config BR2_MIPS_SOFT_FLOAT bool "Use soft-float" default y depends on !BR2_mips_octeon3 # hard-float only select BR2_SOFT_FLOAT help If your target CPU does not have a Floating Point Unit (FPU) or a kernel FPU emulator, but you still wish to support floating point functions, then everything will need to be compiled with soft floating point support (-msoft-float). choice prompt "FP mode" default BR2_MIPS_FP32_MODE_XX depends on !BR2_ARCH_IS_64 && !BR2_MIPS_SOFT_FLOAT help MIPS32 supports different FP modes (32,xx,64). Information about FP modes can be found here: https://sourceware.org/binutils/docs/as/MIPS-Options.html https://dmz-portal.imgtec.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking#5._Generating_modeless_code config BR2_MIPS_FP32_MODE_32 bool "32" depends on !BR2_MIPS_CPU_MIPS32R6 config BR2_MIPS_FP32_MODE_XX bool "xx" select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 config BR2_MIPS_FP32_MODE_64 bool "64" depends on !BR2_MIPS_CPU_MIPS32 endchoice config BR2_GCC_TARGET_FP32_MODE default "32" if BR2_MIPS_FP32_MODE_32 default "xx" if BR2_MIPS_FP32_MODE_XX default "64" if BR2_MIPS_FP32_MODE_64 config BR2_MIPS_NAN_LEGACY bool config BR2_MIPS_NAN_2008 bool select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 choice prompt "Target NaN" default BR2_MIPS_ENABLE_NAN_2008 depends on BR2_mips_32r5 || BR2_mips_64r5 help MIPS supports two different NaN encodings, legacy and 2008. Information about MIPS NaN encodings can be found here: https://sourceware.org/binutils/docs/as/MIPS-NaN-Encodings.html config BR2_MIPS_ENABLE_NAN_LEGACY bool "legacy" select BR2_MIPS_NAN_LEGACY config BR2_MIPS_ENABLE_NAN_2008 bool "2008" depends on !BR2_MIPS_SOFT_FLOAT select BR2_MIPS_NAN_2008 endchoice config BR2_GCC_TARGET_NAN default "legacy" if BR2_MIPS_NAN_LEGACY default "2008" if BR2_MIPS_NAN_2008 config BR2_ARCH default "mips" if BR2_mips default "mipsel" if BR2_mipsel default "mips64" if BR2_mips64 default "mips64el" if BR2_mips64el config BR2_ENDIAN default "LITTLE" if BR2_mipsel || BR2_mips64el default "BIG" if BR2_mips || BR2_mips64 config BR2_GCC_TARGET_ARCH default "mips32" if BR2_mips_32 default "mips32r2" if BR2_mips_32r2 default "mips32r3" if BR2_mips_32r3 default "mips32r5" if BR2_mips_32r5 default "mips32r6" if BR2_mips_32r6 default "interaptiv" if BR2_mips_interaptiv default "m5101" if BR2_mips_m5150 default "m6201" if BR2_mips_m6250 default "p5600" if BR2_mips_p5600 default "mips32r2" if BR2_mips_xburst default "mips64" if BR2_mips_64 default "mips64r2" if BR2_mips_64r2 default "mips64r3" if BR2_mips_64r3 default "mips64r5" if BR2_mips_64r5 default "mips64r6" if BR2_mips_64r6 default "i6400" if BR2_mips_i6400 default "octeon2" if BR2_mips_octeon2 default "octeon3" if BR2_mips_octeon3 default "p6600" if BR2_mips_p6600 config BR2_MIPS_OABI32 bool default y if BR2_mips || BR2_mipsel config BR2_GCC_TARGET_ABI default "32" if BR2_MIPS_OABI32 default "n32" if BR2_MIPS_NABI32 default "64" if BR2_MIPS_NABI64 config BR2_READELF_ARCH_NAME default "MIPS R3000" # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.nds32 ================================================ config BR2_ARCH default "nds32le" config BR2_GCC_TARGET_ARCH default "v3" config BR2_ENDIAN default "LITTLE" config BR2_READELF_ARCH_NAME default "Andes Technology compact code size embedded RISC processor family" # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.nios2 ================================================ config BR2_ARCH default "nios2" config BR2_ENDIAN default "LITTLE" config BR2_READELF_ARCH_NAME default "Altera Nios II" # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.or1k ================================================ config BR2_ARCH default "or1k" config BR2_ENDIAN default "BIG" config BR2_READELF_ARCH_NAME default "OpenRISC 1000" # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.powerpc ================================================ config BR2_POWERPC_CPU_HAS_ALTIVEC bool config BR2_POWERPC_CPU_HAS_SPE bool choice prompt "Target Architecture Variant" default BR2_generic_powerpc help Specific CPU variant to use config BR2_generic_powerpc bool "generic" config BR2_powerpc_401 bool "401" depends on !BR2_ARCH_IS_64 config BR2_powerpc_403 bool "403" depends on !BR2_ARCH_IS_64 config BR2_powerpc_405 bool "405" depends on !BR2_ARCH_IS_64 config BR2_powerpc_405fp bool "405 with FPU" depends on !BR2_ARCH_IS_64 config BR2_powerpc_440 bool "440" depends on !BR2_ARCH_IS_64 config BR2_powerpc_440fp bool "440 with FPU" depends on !BR2_ARCH_IS_64 config BR2_powerpc_464 bool "464" depends on !BR2_ARCH_IS_64 config BR2_powerpc_464fp bool "464 with FPU" depends on !BR2_ARCH_IS_64 config BR2_powerpc_476 bool "476" depends on !BR2_ARCH_IS_64 config BR2_powerpc_476fp bool "476 with FPU" depends on !BR2_ARCH_IS_64 config BR2_powerpc_505 bool "505" depends on !BR2_ARCH_IS_64 config BR2_powerpc_602 bool "602" depends on !BR2_ARCH_IS_64 config BR2_powerpc_603 bool "603" depends on !BR2_ARCH_IS_64 config BR2_powerpc_603e bool "603e" depends on !BR2_ARCH_IS_64 config BR2_powerpc_604 bool "604" depends on !BR2_ARCH_IS_64 config BR2_powerpc_604e bool "604e" depends on !BR2_ARCH_IS_64 config BR2_powerpc_620 bool "620" config BR2_powerpc_630 bool "630" config BR2_powerpc_740 bool "740" depends on !BR2_ARCH_IS_64 config BR2_powerpc_7400 bool "7400" depends on !BR2_ARCH_IS_64 select BR2_POWERPC_CPU_HAS_ALTIVEC config BR2_powerpc_7450 bool "7450" depends on !BR2_ARCH_IS_64 select BR2_POWERPC_CPU_HAS_ALTIVEC config BR2_powerpc_750 bool "750" depends on !BR2_ARCH_IS_64 config BR2_powerpc_821 bool "821" depends on !BR2_ARCH_IS_64 config BR2_powerpc_823 bool "823" depends on !BR2_ARCH_IS_64 config BR2_powerpc_860 bool "860" depends on !BR2_ARCH_IS_64 config BR2_powerpc_970 bool "970" select BR2_POWERPC_CPU_HAS_ALTIVEC config BR2_powerpc_8540 bool "8540 / e500v1" depends on !BR2_ARCH_IS_64 select BR2_POWERPC_CPU_HAS_SPE config BR2_powerpc_8548 bool "8548 / e500v2" depends on !BR2_ARCH_IS_64 select BR2_POWERPC_CPU_HAS_SPE config BR2_powerpc_e300c2 bool "e300c2" depends on !BR2_ARCH_IS_64 config BR2_powerpc_e300c3 bool "e300c3" depends on !BR2_ARCH_IS_64 config BR2_powerpc_e500mc bool "e500mc" depends on !BR2_ARCH_IS_64 config BR2_powerpc_e5500 bool "e5500" depends on !BR2_powerpc64le config BR2_powerpc_e6500 bool "e6500" depends on !BR2_powerpc64le select BR2_POWERPC_CPU_HAS_ALTIVEC config BR2_powerpc_power4 bool "power4" config BR2_powerpc_power5 bool "power5" config BR2_powerpc_power6 bool "power6" select BR2_POWERPC_CPU_HAS_ALTIVEC config BR2_powerpc_power7 bool "power7" select BR2_POWERPC_CPU_HAS_ALTIVEC config BR2_powerpc_power8 bool "power8" select BR2_POWERPC_CPU_HAS_ALTIVEC endchoice choice prompt "Target ABI" default BR2_powerpc_SPE if BR2_POWERPC_CPU_HAS_SPE default BR2_powerpc_CLASSIC help Application Binary Interface to use config BR2_powerpc_CLASSIC bool "Classic" depends on !BR2_POWERPC_CPU_HAS_SPE config BR2_powerpc_SPE bool "SPE" depends on BR2_POWERPC_CPU_HAS_SPE endchoice config BR2_POWERPC_SOFT_FLOAT bool "Use soft-float" select BR2_SOFT_FLOAT help If your target CPU does not have a Floating Point Unit (FPU) or a kernel FPU emulator, but you still wish to support floating point functions, then everything will need to be compiled with soft floating point support (-msoft-float). config BR2_ARCH default "powerpc" if BR2_powerpc default "powerpc64" if BR2_powerpc64 default "powerpc64le" if BR2_powerpc64le config BR2_ENDIAN default "BIG" if BR2_powerpc || BR2_powerpc64 default "LITTLE" if BR2_powerpc64le config BR2_GCC_TARGET_CPU default "401" if BR2_powerpc_401 default "403" if BR2_powerpc_403 default "405" if BR2_powerpc_405 default "405fp" if BR2_powerpc_405fp default "440" if BR2_powerpc_440 default "440fp" if BR2_powerpc_440fp default "464" if BR2_powerpc_464 default "464fp" if BR2_powerpc_464fp default "476" if BR2_powerpc_476 default "476fp" if BR2_powerpc_476fp default "505" if BR2_powerpc_505 default "602" if BR2_powerpc_602 default "603" if BR2_powerpc_603 default "603e" if BR2_powerpc_603e default "604" if BR2_powerpc_604 default "604e" if BR2_powerpc_604e default "620" if BR2_powerpc_620 default "630" if BR2_powerpc_630 default "740" if BR2_powerpc_740 default "7400" if BR2_powerpc_7400 default "7450" if BR2_powerpc_7450 default "750" if BR2_powerpc_750 default "821" if BR2_powerpc_821 default "823" if BR2_powerpc_823 default "860" if BR2_powerpc_860 default "970" if BR2_powerpc_970 default "8540" if BR2_powerpc_8540 default "8548" if BR2_powerpc_8548 default "e300c2" if BR2_powerpc_e300c2 default "e300c3" if BR2_powerpc_e300c3 default "e500mc" if BR2_powerpc_e500mc default "e5500" if BR2_powerpc_e5500 default "e6500" if BR2_powerpc_e6500 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 config BR2_READELF_ARCH_NAME default "PowerPC" if BR2_powerpc default "PowerPC64" if BR2_powerpc64 || BR2_powerpc64le # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.riscv ================================================ # RISC-V CPU ISA extensions. config BR2_RISCV_ISA_RVI bool config BR2_RISCV_ISA_RVM bool config BR2_RISCV_ISA_RVA bool config BR2_RISCV_ISA_RVF bool config BR2_RISCV_ISA_RVD bool config BR2_RISCV_ISA_RVC bool choice prompt "Target Architecture Variant" default BR2_riscv_g config BR2_riscv_g bool "General purpose (G)" select BR2_RISCV_ISA_RVI select BR2_RISCV_ISA_RVM select BR2_RISCV_ISA_RVA select BR2_RISCV_ISA_RVF select BR2_RISCV_ISA_RVD help General purpose (G) is equivalent to IMAFD. config BR2_riscv_custom bool "Custom architecture" select BR2_RISCV_ISA_RVI select BR2_RISCV_ISA_CUSTOM_RVA endchoice if BR2_riscv_custom comment "Instruction Set Extensions" config BR2_RISCV_ISA_CUSTOM_RVM bool "Integer Multiplication and Division (M)" select BR2_RISCV_ISA_RVM config BR2_RISCV_ISA_CUSTOM_RVA bool "Atomic Instructions (A)" select BR2_RISCV_ISA_RVA config BR2_RISCV_ISA_CUSTOM_RVF bool "Single-precision Floating-point (F)" select BR2_RISCV_ISA_RVF config BR2_RISCV_ISA_CUSTOM_RVD bool "Double-precision Floating-point (D)" depends on BR2_RISCV_ISA_RVF select BR2_RISCV_ISA_RVD config BR2_RISCV_ISA_CUSTOM_RVC bool "Compressed Instructions (C)" select BR2_RISCV_ISA_RVC endif choice prompt "Target Architecture Size" default BR2_RISCV_64 config BR2_RISCV_32 bool "32-bit" select BR2_ARCH_HAS_MMU_MANDATORY config BR2_RISCV_64 bool "64-bit" select BR2_ARCH_IS_64 select BR2_ARCH_HAS_MMU_OPTIONAL endchoice choice prompt "Target ABI" default BR2_RISCV_ABI_ILP32D if !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD default BR2_RISCV_ABI_ILP32F if !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF default BR2_RISCV_ABI_ILP32 if !BR2_ARCH_IS_64 default BR2_RISCV_ABI_LP64D if BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD default BR2_RISCV_ABI_LP64F if BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF default BR2_RISCV_ABI_LP64 if BR2_ARCH_IS_64 config BR2_RISCV_ABI_ILP32 bool "ilp32" depends on !BR2_ARCH_IS_64 config BR2_RISCV_ABI_ILP32F bool "ilp32f" depends on !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF config BR2_RISCV_ABI_ILP32D bool "ilp32d" depends on !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD config BR2_RISCV_ABI_LP64 bool "lp64" depends on BR2_ARCH_IS_64 config BR2_RISCV_ABI_LP64F bool "lp64f" depends on BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF config BR2_RISCV_ABI_LP64D bool "lp64d" depends on BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD endchoice config BR2_ARCH default "riscv32" if !BR2_ARCH_IS_64 default "riscv64" if BR2_ARCH_IS_64 config BR2_ENDIAN default "LITTLE" config BR2_GCC_TARGET_ABI default "ilp32" if BR2_RISCV_ABI_ILP32 default "ilp32f" if BR2_RISCV_ABI_ILP32F default "ilp32d" if BR2_RISCV_ABI_ILP32D default "lp64" if BR2_RISCV_ABI_LP64 default "lp64f" if BR2_RISCV_ABI_LP64F default "lp64d" if BR2_RISCV_ABI_LP64D config BR2_READELF_ARCH_NAME default "RISC-V" # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.s390x ================================================ choice prompt "Target Architecture Variant" help Specific CPU variant to use config BR2_s390x_z13 bool "z13" config BR2_s390x_z14 bool "z14" config BR2_s390x_z15 bool "z15" endchoice config BR2_ARCH default "s390x" if BR2_s390x config BR2_ENDIAN default "BIG" config BR2_GCC_TARGET_ARCH default "arch11" if BR2_s390x_z13 default "arch12" if BR2_s390x_z14 default "arch13" if BR2_s390x_z15 config BR2_READELF_ARCH_NAME default "IBM S/390" if BR2_s390x ================================================ FILE: arch/Config.in.sh ================================================ choice prompt "Target Architecture Variant" default BR2_sh4 depends on BR2_sh help Specific CPU variant to use config BR2_sh2a bool "sh2a (SH2A big endian)" config BR2_sh4 bool "sh4 (SH4 little endian)" config BR2_sh4eb bool "sh4eb (SH4 big endian)" config BR2_sh4a bool "sh4a (SH4A little endian)" config BR2_sh4aeb bool "sh4aeb (SH4A big endian)" endchoice config BR2_ARCH default "sh2a" if BR2_sh2a default "sh4" if BR2_sh4 default "sh4eb" if BR2_sh4eb default "sh4a" if BR2_sh4a default "sh4aeb" if BR2_sh4aeb config BR2_ENDIAN default "LITTLE" if BR2_sh4 || BR2_sh4a default "BIG" if BR2_sh2a || BR2_sh4eb || BR2_sh4aeb config BR2_READELF_ARCH_NAME default "Renesas / SuperH SH" # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.sparc ================================================ choice prompt "Target Architecture Variant" default BR2_sparc_v8 if BR2_sparc default BR2_sparc_v9 if BR2_sparc64 depends on BR2_sparc || BR2_sparc64 help Specific CPU variant to use config BR2_sparc_v8 bool "v8" depends on BR2_sparc config BR2_sparc_leon3 bool "leon3" depends on BR2_sparc config BR2_sparc_v9 bool "v9" depends on BR2_sparc64 endchoice config BR2_ARCH default "sparc" if BR2_sparc default "sparc64" if BR2_sparc64 config BR2_ENDIAN default "BIG" config BR2_GCC_TARGET_CPU default "leon3" if BR2_sparc_leon3 default "v8" if BR2_sparc_v8 default "ultrasparc" if BR2_sparc_v9 config BR2_READELF_ARCH_NAME default "Sparc" if BR2_sparc default "Sparc v9" if BR2_sparc64 # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.x86 ================================================ # i386/x86_64 cpu features config BR2_X86_CPU_HAS_MMX bool config BR2_X86_CPU_HAS_3DNOW bool config BR2_X86_CPU_HAS_SSE bool config BR2_X86_CPU_HAS_SSE2 bool config BR2_X86_CPU_HAS_SSE3 bool config BR2_X86_CPU_HAS_SSSE3 bool config BR2_X86_CPU_HAS_SSE4 bool config BR2_X86_CPU_HAS_SSE42 bool config BR2_X86_CPU_HAS_AVX bool config BR2_X86_CPU_HAS_AVX2 bool choice prompt "Target Architecture Variant" default BR2_x86_i586 if BR2_i386 depends on BR2_i386 || BR2_x86_64 help Specific CPU variant to use config BR2_x86_i486 bool "i486" depends on !BR2_x86_64 config BR2_x86_i586 bool "i586" depends on !BR2_x86_64 config BR2_x86_x1000 bool "x1000" depends on !BR2_x86_64 help The Intel X1000 is a Pentium class microprocessor in the Quark (sub-Atom) Product Line. The X1000 has a bug on the lock prefix requiring that prefix must be stripped at build time. See https://en.wikipedia.org/wiki/Intel_Quark config BR2_x86_i686 bool "i686" depends on !BR2_x86_64 config BR2_x86_pentiumpro bool "pentium pro" depends on !BR2_x86_64 config BR2_x86_pentium_mmx bool "pentium MMX" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX config BR2_x86_pentium_m bool "pentium mobile" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE config BR2_x86_pentium2 bool "pentium2" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX config BR2_x86_pentium3 bool "pentium3" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE config BR2_x86_pentium4 bool "pentium4" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 config BR2_x86_prescott bool "prescott" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 config BR2_x86_nocona bool "nocona" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 config BR2_x86_core2 bool "core2" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 select BR2_X86_CPU_HAS_SSSE3 config BR2_x86_corei7 bool "corei7" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 select BR2_X86_CPU_HAS_SSSE3 select BR2_X86_CPU_HAS_SSE4 select BR2_X86_CPU_HAS_SSE42 config BR2_x86_westmere bool "westmere" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 select BR2_X86_CPU_HAS_SSSE3 select BR2_X86_CPU_HAS_SSE4 select BR2_X86_CPU_HAS_SSE42 config BR2_x86_corei7_avx bool "corei7-avx" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 select BR2_X86_CPU_HAS_SSSE3 select BR2_X86_CPU_HAS_SSE4 select BR2_X86_CPU_HAS_SSE42 select BR2_X86_CPU_HAS_AVX config BR2_x86_core_avx2 bool "core-avx2" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 select BR2_X86_CPU_HAS_SSSE3 select BR2_X86_CPU_HAS_SSE4 select BR2_X86_CPU_HAS_SSE42 select BR2_X86_CPU_HAS_AVX select BR2_X86_CPU_HAS_AVX2 config BR2_x86_atom bool "atom" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 select BR2_X86_CPU_HAS_SSSE3 config BR2_x86_silvermont bool "silvermont" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 select BR2_X86_CPU_HAS_SSSE3 select BR2_X86_CPU_HAS_SSE4 select BR2_X86_CPU_HAS_SSE42 config BR2_x86_k6 bool "k6" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX config BR2_x86_k6_2 bool "k6-2" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_3DNOW config BR2_x86_athlon bool "athlon" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_3DNOW config BR2_x86_athlon_4 bool "athlon-4" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_3DNOW config BR2_x86_opteron bool "opteron" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 config BR2_x86_opteron_sse3 bool "opteron w/ SSE3" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 config BR2_x86_barcelona bool "barcelona" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 config BR2_x86_jaguar bool "jaguar" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 select BR2_X86_CPU_HAS_SSSE3 select BR2_X86_CPU_HAS_SSE4 select BR2_X86_CPU_HAS_SSE42 config BR2_x86_steamroller bool "steamroller" select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE3 select BR2_X86_CPU_HAS_SSSE3 select BR2_X86_CPU_HAS_SSE4 select BR2_X86_CPU_HAS_SSE42 config BR2_x86_geode bool "geode" # Don't include MMX support because there several variant of geode # processor, some with MMX support, some without. # See: http://en.wikipedia.org/wiki/Geode_%28processor%29 depends on !BR2_x86_64 config BR2_x86_c3 bool "Via/Cyrix C3 (Samuel/Ezra cores)" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_3DNOW config BR2_x86_c32 bool "Via C3-2 (Nehemiah cores)" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_SSE config BR2_x86_winchip_c6 bool "IDT Winchip C6" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX config BR2_x86_winchip2 bool "IDT Winchip 2" depends on !BR2_x86_64 select BR2_X86_CPU_HAS_MMX endchoice config BR2_ARCH default "i486" if BR2_x86_i486 default "i586" if BR2_x86_i586 default "i586" if BR2_x86_x1000 default "i586" if BR2_x86_pentium_mmx default "i586" if BR2_x86_geode default "i586" if BR2_x86_c3 default "i686" if BR2_x86_c32 default "i586" if BR2_x86_winchip_c6 default "i586" if BR2_x86_winchip2 default "i686" if BR2_x86_i686 default "i686" if BR2_x86_pentium2 default "i686" if BR2_x86_pentium3 default "i686" if BR2_x86_pentium4 default "i686" if BR2_x86_pentium_m default "i686" if BR2_x86_pentiumpro default "i686" if BR2_x86_prescott 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_westmere && BR2_i386 default "i686" if BR2_x86_corei7_avx && BR2_i386 default "i686" if BR2_x86_core_avx2 && BR2_i386 default "i686" if BR2_x86_atom && BR2_i386 default "i686" if BR2_x86_silvermont && BR2_i386 default "i686" if BR2_x86_opteron && BR2_i386 default "i686" if BR2_x86_opteron_sse3 && BR2_i386 default "i686" if BR2_x86_barcelona && BR2_i386 default "i686" if BR2_x86_jaguar && BR2_i386 default "i686" if BR2_x86_steamroller && BR2_i386 default "i686" if BR2_x86_k6 default "i686" if BR2_x86_k6_2 default "i686" if BR2_x86_athlon default "i686" if BR2_x86_athlon_4 default "x86_64" if BR2_x86_64 config BR2_ENDIAN default "LITTLE" config BR2_GCC_TARGET_ARCH default "i486" if BR2_x86_i486 default "i586" if BR2_x86_i586 default "i586" if BR2_x86_x1000 default "pentium-mmx" if BR2_x86_pentium_mmx default "i686" if BR2_x86_i686 default "pentiumpro" if BR2_x86_pentiumpro default "pentium-m" if BR2_x86_pentium_m default "pentium2" if BR2_x86_pentium2 default "pentium3" if BR2_x86_pentium3 default "pentium4" if BR2_x86_pentium4 default "prescott" if BR2_x86_prescott default "nocona" if BR2_x86_nocona default "core2" if BR2_x86_core2 default "corei7" if BR2_x86_corei7 default "corei7-avx" if BR2_x86_corei7_avx default "core-avx2" if BR2_x86_core_avx2 default "atom" if BR2_x86_atom default "westmere" if BR2_x86_westmere default "silvermont" if BR2_x86_silvermont default "k8" if BR2_x86_opteron default "k8-sse3" if BR2_x86_opteron_sse3 default "barcelona" if BR2_x86_barcelona default "btver2" if BR2_x86_jaguar default "bdver3" if BR2_x86_steamroller default "k6" if BR2_x86_k6 default "k6-2" if BR2_x86_k6_2 default "athlon" if BR2_x86_athlon default "athlon-4" if BR2_x86_athlon_4 default "winchip-c6" if BR2_x86_winchip_c6 default "winchip2" if BR2_x86_winchip2 default "c3" if BR2_x86_c3 default "c3-2" if BR2_x86_c32 default "geode" if BR2_x86_geode config BR2_READELF_ARCH_NAME default "Intel 80386" if BR2_i386 default "Advanced Micro Devices X86-64" if BR2_x86_64 # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/Config.in.xtensa ================================================ choice prompt "Target Architecture Variant" default BR2_xtensa_fsf depends on BR2_xtensa config BR2_XTENSA_CUSTOM bool "Custom Xtensa processor configuration" select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_xtensa_fsf bool "fsf - Default configuration" select BR2_ARCH_HAS_MMU_MANDATORY endchoice config BR2_XTENSA_OVERLAY_FILE string "Overlay file for custom configuration" depends on BR2_XTENSA_CUSTOM help Enter the path to the overlay tarball for a custom processor configuration. These overlay files are tar packages with updated configuration files for various toolchain packages and Xtensa processor configurations. They are provided by the processor vendor or directly from Tensilica. The path can be either absolute, or relative to the top directory of buildroot. choice prompt "Target Architecture Endianness" default BR2_XTENSA_LITTLE_ENDIAN depends on BR2_XTENSA_CUSTOM config BR2_XTENSA_LITTLE_ENDIAN bool "Little endian" config BR2_XTENSA_BIG_ENDIAN bool "Big endian" endchoice config BR2_ENDIAN default "LITTLE" if BR2_XTENSA_LITTLE_ENDIAN default "BIG" if BR2_xtensa_fsf || BR2_XTENSA_BIG_ENDIAN config BR2_ARCH default "xtensa" if BR2_xtensa config BR2_READELF_ARCH_NAME default "Tensilica Xtensa Processor" # vim: ft=kconfig # -*- mode:kconfig; -*- ================================================ FILE: arch/arch.mk ================================================ ################################################################################ # # Architecture-specific definitions # ################################################################################ # Allow GCC target configuration settings to be optionally # overwritten by architecture specific makefiles. # Makefiles must use the GCC_TARGET_* variables below instead # of the BR2_GCC_TARGET_* versions. GCC_TARGET_ARCH := $(call qstrip,$(BR2_GCC_TARGET_ARCH)) GCC_TARGET_ABI := $(call qstrip,$(BR2_GCC_TARGET_ABI)) GCC_TARGET_NAN := $(call qstrip,$(BR2_GCC_TARGET_NAN)) GCC_TARGET_FP32_MODE := $(call qstrip,$(BR2_GCC_TARGET_FP32_MODE)) GCC_TARGET_CPU := $(call qstrip,$(BR2_GCC_TARGET_CPU)) GCC_TARGET_FPU := $(call qstrip,$(BR2_GCC_TARGET_FPU)) GCC_TARGET_FLOAT_ABI := $(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI)) GCC_TARGET_MODE := $(call qstrip,$(BR2_GCC_TARGET_MODE)) # Include any architecture specific makefiles. -include $(sort $(wildcard arch/arch.mk.*)) ================================================ FILE: arch/arch.mk.arc ================================================ ifeq ($(BR2_arc),y) # -matomic is always required when the ARC core has the atomic extensions ifeq ($(BR2_ARC_ATOMIC_EXT),y) ARCH_TOOLCHAIN_WRAPPER_OPTS = -matomic endif # Explicitly set LD's "max-page-size" instead of relying on some defaults ifeq ($(BR2_ARC_PAGE_SIZE_4K),y) ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=4096 else ifeq ($(BR2_ARC_PAGE_SIZE_8K),y) ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=8192 else ifeq ($(BR2_ARC_PAGE_SIZE_16K),y) ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384 endif endif ================================================ FILE: arch/arch.mk.csky ================================================ # # Configure the GCC_TARGET_ARCH variable and append the # appropriate C-SKY ISA extensions. # ifeq ($(BR2_csky),y) ifeq ($(BR2_ck610),y) GCC_TARGET_CPU := ck610 else ifeq ($(BR2_ck807),y) GCC_TARGET_CPU := ck807 else ifeq ($(BR2_ck810),y) GCC_TARGET_CPU := ck810 else ifeq ($(BR2_ck860),y) GCC_TARGET_CPU := ck860 endif ifeq ($(BR2_CSKY_FPU),y) GCC_TARGET_CPU := $(GCC_TARGET_CPU)f endif ifeq ($(BR2_CSKY_VDSP),y) GCC_TARGET_CPU := $(GCC_TARGET_CPU)v endif endif ================================================ FILE: arch/arch.mk.riscv ================================================ # # Configure the GCC_TARGET_ARCH variable and append the # appropriate RISC-V ISA extensions. # ifeq ($(BR2_riscv),y) ifeq ($(BR2_RISCV_64),y) GCC_TARGET_ARCH := rv64i else GCC_TARGET_ARCH := rv32i endif ifeq ($(BR2_RISCV_ISA_RVM),y) GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)m endif ifeq ($(BR2_RISCV_ISA_RVA),y) GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)a endif ifeq ($(BR2_RISCV_ISA_RVF),y) GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)f endif ifeq ($(BR2_RISCV_ISA_RVD),y) GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)d endif ifeq ($(BR2_RISCV_ISA_RVC),y) GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)c endif endif ================================================ FILE: arch/arch.mk.xtensa ================================================ ################################################################################ # This variable can be used by packages that need to extract the overlay. # # ARCH_XTENSA_OVERLAY_FILE is the path to the overlay tarball; empty if not # using any overlay # # Example: # ifneq ($(ARCH_XTENSA_OVERLAY_FILE),) # tar xf $(ARCH_XTENSA_OVERLAY_FILE) -C $(@D) --strip-components=1 gcc # endif ################################################################################ BR_ARCH_XTENSA_OVERLAY_FILE = $(call qstrip,$(BR2_XTENSA_OVERLAY_FILE)) ifneq ($(filter http://% https://% ftp://% scp://%,$(BR_ARCH_XTENSA_OVERLAY_FILE)),) ARCH_XTENSA_OVERLAY_URL = $(BR_ARCH_XTENSA_OVERLAY_FILE) ARCH_XTENSA_OVERLAY_FILE = $($(PKG)_DL_DIR)/$(notdir $(BR_ARCH_XTENSA_OVERLAY_FILE)) # Do not check that file, we can't know its hash BR_NO_CHECK_HASH_FOR += $(notdir $(ARCH_XTENSA_OVERLAY_URL)) else ARCH_XTENSA_OVERLAY_FILE = $(BR_ARCH_XTENSA_OVERLAY_FILE) endif ################################################################################ # arch-xtensa-overlay-extract -- extract an extensa overlay # # argument 1 is the path in which to extract # argument 2 is the component to extract, one of: gcc, binutils, gdb, linux, # u-boot # # Example: # $(call arch-xtensa-overlay-extract,/path/to/overlay.tar,$(@D),gcc) ################################################################################ define arch-xtensa-overlay-extract $(call suitable-extractor,$(ARCH_XTENSA_OVERLAY_FILE)) \ $(ARCH_XTENSA_OVERLAY_FILE) | \ $(TAR) --strip-components=1 -C $(1) $(TAR_OPTIONS) - $(2) endef ================================================ FILE: board/common/busybox.config ================================================ # # Automatically generated make config: don't edit # Busybox version: 1.34.1 # Sun Mar 26 19:57:50 2023 # CONFIG_HAVE_DOT_CONFIG=y # # Settings # CONFIG_DESKTOP=y # CONFIG_EXTRA_COMPAT is not set # CONFIG_FEDORA_COMPAT is not set CONFIG_INCLUDE_SUSv2=y CONFIG_LONG_OPTS=y CONFIG_SHOW_USAGE=y CONFIG_FEATURE_VERBOSE_USAGE=y # CONFIG_FEATURE_COMPRESS_USAGE is not set CONFIG_LFS=y # CONFIG_PAM is not set CONFIG_FEATURE_DEVPTS=y CONFIG_FEATURE_UTMP=y CONFIG_FEATURE_WTMP=y # CONFIG_FEATURE_PIDFILE is not set CONFIG_PID_FILE_PATH="" CONFIG_BUSYBOX=y CONFIG_FEATURE_SHOW_SCRIPT=y CONFIG_FEATURE_INSTALLER=y # CONFIG_INSTALL_NO_USR is not set CONFIG_FEATURE_SUID=y # CONFIG_FEATURE_SUID_CONFIG is not set # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set # CONFIG_FEATURE_PREFER_APPLETS is not set CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" # CONFIG_SELINUX is not set # CONFIG_FEATURE_CLEAN_UP is not set CONFIG_FEATURE_SYSLOG_INFO=y CONFIG_FEATURE_SYSLOG=y # # Build Options # # CONFIG_STATIC is not set # CONFIG_PIE is not set # CONFIG_NOMMU is not set # CONFIG_BUILD_LIBBUSYBOX is not set # CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set # CONFIG_FEATURE_INDIVIDUAL is not set # CONFIG_FEATURE_SHARED_BUSYBOX is not set CONFIG_CROSS_COMPILER_PREFIX="" CONFIG_SYSROOT="" CONFIG_EXTRA_CFLAGS="" CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDLIBS="" # CONFIG_USE_PORTABLE_CODE is not set CONFIG_STACK_OPTIMIZATION_386=y CONFIG_STATIC_LIBGCC=y # # 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" # # 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_WARN_SIMPLE_MSG is not set CONFIG_NO_DEBUG_LIB=y # CONFIG_DMALLOC is not set # CONFIG_EFENCE is not set # # Library Tuning # # CONFIG_FEATURE_USE_BSS_TAIL is not set CONFIG_FLOAT_DURATION=y CONFIG_FEATURE_RTMINMAX=y CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=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_PASSWORD_MINLEN=6 CONFIG_MD5_SMALL=1 CONFIG_SHA3_SMALL=1 CONFIG_FEATURE_FAST_TOP=y # CONFIG_FEATURE_ETC_NETWORKS is not set # CONFIG_FEATURE_ETC_SERVICES is not set 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_WINCH=y # CONFIG_FEATURE_EDITING_ASK_TERMINAL 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_FEATURE_NON_POSIX_CP=y # CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set CONFIG_FEATURE_USE_SENDFILE=y 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=y CONFIG_ZCAT=y CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y # CONFIG_BUNZIP2 is not set CONFIG_BZCAT=y # CONFIG_UNLZMA is not set CONFIG_LZCAT=y # CONFIG_LZMA is not set CONFIG_UNXZ=y CONFIG_XZCAT=y # CONFIG_XZ is not set # CONFIG_BZIP2 is not set CONFIG_BZIP2_SMALL=0 CONFIG_FEATURE_BZIP2_DECOMPRESS=y # 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_GZIP is not set # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set CONFIG_GZIP_FAST=0 # CONFIG_FEATURE_GZIP_LEVELS is not set CONFIG_FEATURE_GZIP_DECOMPRESS=y # CONFIG_LZOP is not set CONFIG_UNLZOP=y CONFIG_LZOPCAT=y # CONFIG_LZOP_COMPR_HIGH is not set # CONFIG_RPM is not set # CONFIG_RPM2CPIO is not set # CONFIG_TAR is not set # CONFIG_FEATURE_TAR_LONG_OPTIONS 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_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 # CONFIG_FEATURE_UNZIP_CDF is not set # CONFIG_FEATURE_UNZIP_BZIP2 is not set # CONFIG_FEATURE_UNZIP_LZMA is not set # CONFIG_FEATURE_UNZIP_XZ is not set # CONFIG_FEATURE_LZMA_FAST is not set # # Coreutils # CONFIG_BASENAME=y CONFIG_CAT=y CONFIG_FEATURE_CATN=y CONFIG_FEATURE_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_CRC32=y # CONFIG_COMM is not set CONFIG_CP=y # CONFIG_FEATURE_CP_LONG_OPTIONS is not set # CONFIG_FEATURE_CP_REFLINK is not set CONFIG_CUT=y CONFIG_FEATURE_CUT_REGEX=y CONFIG_DATE=y CONFIG_FEATURE_DATE_ISOFMT=y CONFIG_FEATURE_DATE_NANO=y 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_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_EXPAND is not set # CONFIG_UNEXPAND is not set CONFIG_EXPR=y CONFIG_EXPR_MATH_SUPPORT_64=y CONFIG_FACTOR=y CONFIG_FALSE=y CONFIG_FOLD=y CONFIG_HEAD=y CONFIG_FEATURE_FANCY_HEAD=y CONFIG_HOSTID=y CONFIG_ID=y # CONFIG_GROUPS is not set CONFIG_INSTALL=y CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y CONFIG_LINK=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_WIDTH=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_SHA1SUM=y CONFIG_SHA256SUM=y CONFIG_SHA512SUM=y CONFIG_SHA3SUM=y # # Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum # CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y CONFIG_MKDIR=y CONFIG_MKFIFO=y CONFIG_MKNOD=y CONFIG_MKTEMP=y CONFIG_MV=y CONFIG_NICE=y CONFIG_NL=y CONFIG_NOHUP=y CONFIG_NPROC=y CONFIG_OD=y CONFIG_PASTE=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_SEQ=y CONFIG_SHRED=y # CONFIG_SHUF is not set CONFIG_SLEEP=y # CONFIG_FEATURE_FANCY_SLEEP is not set CONFIG_SORT=y CONFIG_FEATURE_SORT_BIG=y # CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set # CONFIG_SPLIT is not set # CONFIG_FEATURE_SPLIT_FANCY is not set CONFIG_STAT=y CONFIG_FEATURE_STAT_FORMAT=y CONFIG_FEATURE_STAT_FILESYSTEM=y CONFIG_STTY=y # CONFIG_SUM is not set CONFIG_SYNC=y CONFIG_FEATURE_SYNC_FANCY=y # CONFIG_FSYNC is not set CONFIG_TAC=y CONFIG_TAIL=y CONFIG_FEATURE_FANCY_TAIL=y CONFIG_TEE=y CONFIG_FEATURE_TEE_USE_BLOCK_IO=y CONFIG_TEST=y CONFIG_TEST1=y CONFIG_TEST2=y CONFIG_FEATURE_TEST_64=y CONFIG_TIMEOUT=y CONFIG_TOUCH=y CONFIG_FEATURE_TOUCH_SUSV3=y CONFIG_TR=y CONFIG_FEATURE_TR_CLASSES=y CONFIG_FEATURE_TR_EQUIV=y CONFIG_TRUE=y CONFIG_TRUNCATE=y CONFIG_TTY=y CONFIG_UNAME=y CONFIG_UNAME_OSNAME="GNU/Linux" CONFIG_BB_ARCH=y CONFIG_UNIQ=y CONFIG_UNLINK=y CONFIG_USLEEP=y CONFIG_UUDECODE=y CONFIG_BASE32=y # CONFIG_BASE64 is not set CONFIG_UUENCODE=y CONFIG_WC=y # CONFIG_FEATURE_WC_LARGE is not set CONFIG_WHO=y CONFIG_W=y # CONFIG_USERS 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 df, du, ls # CONFIG_FEATURE_HUMAN_READABLE=y # # Console Utilities # # CONFIG_CHVT is not set CONFIG_CLEAR=y # CONFIG_DEALLOCVT is not set # CONFIG_DUMPKMAP is not set # CONFIG_FGCONSOLE is not set # CONFIG_KBD_MODE is not set # CONFIG_LOADFONT is not set # CONFIG_SETFONT is not set # CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set CONFIG_DEFAULT_SETFONT_DIR="" # CONFIG_FEATURE_LOADFONT_PSF2 is not set # CONFIG_FEATURE_LOADFONT_RAW is not set # CONFIG_LOADKMAP is not set CONFIG_OPENVT=y CONFIG_RESET=y # 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_SETKEYCODES is not set # CONFIG_SETLOGCONS is not set # CONFIG_SHOWKEY is not set # # Debian Utilities # # 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 is not set # CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set # CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set CONFIG_WHICH=y # # klibc-utils # # CONFIG_MINIPS is not set CONFIG_NUKE=y CONFIG_RESUME=y CONFIG_RUN_INIT=y # # Editors # CONFIG_AWK=y # CONFIG_FEATURE_AWK_LIBM is not set CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y CONFIG_CMP=y CONFIG_DIFF=y # CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set CONFIG_FEATURE_DIFF_DIR=y # CONFIG_ED is not set CONFIG_PATCH=y CONFIG_SED=y CONFIG_VI=y CONFIG_FEATURE_VI_MAX_LEN=4096 CONFIG_FEATURE_VI_8BIT=y CONFIG_FEATURE_VI_COLON=y CONFIG_FEATURE_VI_COLON_EXPAND=y CONFIG_FEATURE_VI_YANKMARK=y CONFIG_FEATURE_VI_SEARCH=y # CONFIG_FEATURE_VI_REGEX_SEARCH is not set CONFIG_FEATURE_VI_USE_SIGNALS=y CONFIG_FEATURE_VI_DOT_CMD=y CONFIG_FEATURE_VI_READONLY=y CONFIG_FEATURE_VI_SETOPTS=y CONFIG_FEATURE_VI_SET=y CONFIG_FEATURE_VI_WIN_RESIZE=y CONFIG_FEATURE_VI_ASK_TERMINAL=y CONFIG_FEATURE_VI_UNDO=y CONFIG_FEATURE_VI_UNDO_QUEUE=y CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 CONFIG_FEATURE_VI_VERBOSE_STATUS=y CONFIG_FEATURE_ALLOW_EXEC=y # # Finding Utilities # CONFIG_FIND=y CONFIG_FEATURE_FIND_PRINT0=y CONFIG_FEATURE_FIND_MTIME=y CONFIG_FEATURE_FIND_MMIN=y CONFIG_FEATURE_FIND_PERM=y CONFIG_FEATURE_FIND_TYPE=y CONFIG_FEATURE_FIND_EXECUTABLE=y CONFIG_FEATURE_FIND_XDEV=y CONFIG_FEATURE_FIND_MAXDEPTH=y CONFIG_FEATURE_FIND_NEWER=y # CONFIG_FEATURE_FIND_INUM is not set CONFIG_FEATURE_FIND_EXEC=y CONFIG_FEATURE_FIND_EXEC_PLUS=y CONFIG_FEATURE_FIND_USER=y CONFIG_FEATURE_FIND_GROUP=y CONFIG_FEATURE_FIND_NOT=y CONFIG_FEATURE_FIND_DEPTH=y CONFIG_FEATURE_FIND_PAREN=y CONFIG_FEATURE_FIND_SIZE=y CONFIG_FEATURE_FIND_PRUNE=y CONFIG_FEATURE_FIND_QUIT=y # CONFIG_FEATURE_FIND_DELETE is not set CONFIG_FEATURE_FIND_EMPTY=y CONFIG_FEATURE_FIND_PATH=y CONFIG_FEATURE_FIND_REGEX=y # CONFIG_FEATURE_FIND_CONTEXT is not set # CONFIG_FEATURE_FIND_LINKS is not set CONFIG_GREP=y CONFIG_EGREP=y CONFIG_FGREP=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 CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=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_POWEROFF=y CONFIG_REBOOT=y CONFIG_FEATURE_WAIT_FOR_INIT=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_INIT_QUIET=y # CONFIG_FEATURE_INIT_COREDUMPS is not set CONFIG_INIT_TERMINAL_TYPE="linux" CONFIG_FEATURE_INIT_MODIFY_CMDLINE=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=y # CONFIG_ADD_SHELL is not set # CONFIG_REMOVE_SHELL is not set # CONFIG_ADDGROUP is not set # CONFIG_FEATURE_ADDUSER_TO_GROUP is not set # CONFIG_ADDUSER is not set # CONFIG_FEATURE_CHECK_NAMES is not set CONFIG_LAST_ID=0 CONFIG_FIRST_SYSTEM_ID=0 CONFIG_LAST_SYSTEM_ID=0 # CONFIG_CHPASSWD is not set CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des" # CONFIG_CRYPTPW is not set CONFIG_MKPASSWD=y # 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 is not set CONFIG_PASSWD=y # CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set CONFIG_SU=y # CONFIG_FEATURE_SU_SYSLOG is not set # CONFIG_FEATURE_SU_CHECKS_SHELLS is not set # CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set # CONFIG_SULOGIN is not set CONFIG_VLOCK=y # # 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_MODPROBE_SMALL is not set # CONFIG_DEPMOD is not set CONFIG_INSMOD=y CONFIG_LSMOD=y CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y # CONFIG_MODINFO is not set CONFIG_MODPROBE=y CONFIG_FEATURE_MODPROBE_BLACKLIST=y CONFIG_RMMOD=y # # Options common to multiple modutils # CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y # CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set # CONFIG_FEATURE_2_4_MODULES 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=y # CONFIG_FEATURE_INSMOD_TRY_MMAP is not set CONFIG_FEATURE_MODUTILS_ALIAS=y CONFIG_FEATURE_MODUTILS_SYMBOLS=y CONFIG_DEFAULT_MODULES_DIR="/lib/modules" CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" # # Linux System Utilities # # CONFIG_ACPID is not set # CONFIG_FEATURE_ACPID_COMPAT is not set CONFIG_BLKDISCARD=y # CONFIG_BLKID is not set # CONFIG_FEATURE_BLKID_TYPE is not set # CONFIG_BLOCKDEV is not set # CONFIG_CAL is not set # CONFIG_CHRT is not set CONFIG_DMESG=y CONFIG_FEATURE_DMESG_PRETTY=y CONFIG_EJECT=y # CONFIG_FEATURE_EJECT_SCSI is not set CONFIG_FALLOCATE=y CONFIG_FATATTR=y # CONFIG_FBSET is not set # CONFIG_FEATURE_FBSET_FANCY is not set # CONFIG_FEATURE_FBSET_READMODE 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_FDFLUSH is not set # CONFIG_FREERAMDISK is not set # CONFIG_FSCK_MINIX is not set CONFIG_FSFREEZE=y # CONFIG_FSTRIM is not set # CONFIG_GETOPT is not set # CONFIG_FEATURE_GETOPT_LONG is not set CONFIG_HEXDUMP=y # CONFIG_HD is not set CONFIG_XXD=y CONFIG_HWCLOCK=y # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set # CONFIG_IONICE is not set # CONFIG_IPCRM is not set # CONFIG_IPCS is not set # CONFIG_LAST is not set # CONFIG_FEATURE_LAST_FANCY is not set # CONFIG_LOSETUP is not set # CONFIG_LSPCI is not set CONFIG_LSUSB=y # 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_FEATURE_MDEV_DAEMON is not set CONFIG_MESG=y CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y CONFIG_MKE2FS=y # 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_MKDOSFS=y # CONFIG_MKFS_VFAT is not set # CONFIG_MKSWAP is not set # CONFIG_FEATURE_MKSWAP_UUID is not set # CONFIG_MORE 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_MOUNTPOINT is not set CONFIG_NOLOGIN=y CONFIG_NOLOGIN_DEPENDENCIES=y CONFIG_NSENTER=y # CONFIG_PIVOT_ROOT is not set # CONFIG_RDATE is not set # CONFIG_RDEV is not set # CONFIG_READPROFILE is not set CONFIG_RENICE=y CONFIG_REV=y # CONFIG_RTCWAKE is not set # CONFIG_SCRIPT is not set # CONFIG_SCRIPTREPLAY is not set # CONFIG_SETARCH is not set CONFIG_LINUX32=y CONFIG_LINUX64=y CONFIG_SETPRIV=y CONFIG_FEATURE_SETPRIV_DUMP=y CONFIG_FEATURE_SETPRIV_CAPABILITIES=y CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y # CONFIG_SETSID is not set CONFIG_SWAPON=y # CONFIG_FEATURE_SWAPON_DISCARD is not set # CONFIG_FEATURE_SWAPON_PRI is not set CONFIG_SWAPOFF=y CONFIG_FEATURE_SWAPONOFF_LABEL=y # CONFIG_SWITCH_ROOT is not set # CONFIG_TASKSET is not set # CONFIG_FEATURE_TASKSET_FANCY is not set # CONFIG_FEATURE_TASKSET_CPULIST is not set CONFIG_UEVENT=y CONFIG_UMOUNT=y CONFIG_FEATURE_UMOUNT_ALL=y CONFIG_UNSHARE=y # CONFIG_WALL is not set # # 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=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_EROFS=y # 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_LFS 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_MINIX=y # 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_UBIFS is not set # CONFIG_FEATURE_VOLUMEID_UDF is not set # CONFIG_FEATURE_VOLUMEID_XFS is not set # # Miscellaneous Utilities # # CONFIG_ADJTIMEX is not set CONFIG_ASCII=y # CONFIG_BBCONFIG is not set # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set CONFIG_BC=y # CONFIG_DC is not set CONFIG_FEATURE_DC_BIG=y # CONFIG_FEATURE_DC_LIBM is not set CONFIG_FEATURE_BC_INTERACTIVE=y CONFIG_FEATURE_BC_LONG_OPTIONS=y # 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_CONSPY is not set CONFIG_CROND=y CONFIG_FEATURE_CROND_D=y # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set CONFIG_FEATURE_CROND_SPECIAL_TIMES=y CONFIG_FEATURE_CROND_DIR="/data/etc" CONFIG_CRONTAB=y # 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=y # CONFIG_FBSPLASH is not set # CONFIG_FLASH_ERASEALL is not set # CONFIG_FLASH_LOCK is not set # CONFIG_FLASH_UNLOCK is not set # CONFIG_FLASHCP 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_HEXEDIT=y CONFIG_I2CGET=y CONFIG_I2CSET=y CONFIG_I2CDUMP=y CONFIG_I2CDETECT=y CONFIG_I2CTRANSFER=y # CONFIG_INOTIFYD is not set 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 # CONFIG_FEATURE_LESS_ASK_TERMINAL is not set # CONFIG_FEATURE_LESS_DASHCMD is not set # CONFIG_FEATURE_LESS_LINENUMS is not set # CONFIG_FEATURE_LESS_RAW is not set # CONFIG_FEATURE_LESS_ENV is not set CONFIG_LSSCSI=y CONFIG_MAKEDEVS=y # CONFIG_FEATURE_MAKEDEVS_LEAF is not set CONFIG_FEATURE_MAKEDEVS_TABLE=y # CONFIG_MAN is not set # CONFIG_MICROCOM is not set CONFIG_MIM=y # CONFIG_MT is not set # CONFIG_NANDWRITE is not set # CONFIG_NANDDUMP is not set CONFIG_PARTPROBE=y # CONFIG_RAIDAUTORUN is not set # CONFIG_READAHEAD is not set CONFIG_RFKILL=y # CONFIG_RUNLEVEL is not set # CONFIG_RX is not set CONFIG_SETFATTR=y # CONFIG_SETSERIAL is not set # CONFIG_STRINGS is not set CONFIG_TIME=y CONFIG_TS=y # CONFIG_TTYSIZE 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_UBIRENAME=y # CONFIG_VOLNAME is not set CONFIG_WATCHDOG=y # CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set # # Networking Utilities # CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set # CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set # CONFIG_FEATURE_TLS_SHA1 is not set # CONFIG_ARP is not set CONFIG_ARPING=y # 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_FTPD is not set # CONFIG_FEATURE_FTPD_WRITE is not set # CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set # CONFIG_FEATURE_FTPD_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_DNSDOMAINNAME=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_FEATURE_HTTPD_ETAG is not set # CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set # CONFIG_FEATURE_HTTPD_DATE is not set # CONFIG_FEATURE_HTTPD_ACL_IP is not set # CONFIG_IFCONFIG is not set # CONFIG_FEATURE_IFCONFIG_STATUS is not set # CONFIG_FEATURE_IFCONFIG_SLIP is not set # CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set # CONFIG_FEATURE_IFCONFIG_HW is not set # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set # CONFIG_IFENSLAVE is not set CONFIG_IFPLUGD=y CONFIG_IFUP=y CONFIG_IFDOWN=y CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" CONFIG_FEATURE_IFUPDOWN_IP=y CONFIG_FEATURE_IFUPDOWN_IPV4=y CONFIG_FEATURE_IFUPDOWN_IPV6=y # 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_IPADDR=y CONFIG_IPLINK=y CONFIG_IPROUTE=y CONFIG_IPTUNNEL=y CONFIG_IPRULE=y CONFIG_IPNEIGH=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_RARE_PROTOCOLS is not set # CONFIG_IPCALC is not set # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set # CONFIG_FEATURE_IPCALC_FANCY is not set # CONFIG_FAKEIDENTD is not set CONFIG_NAMEIF=y # CONFIG_FEATURE_NAMEIF_EXTENDED is not set # CONFIG_NBDCLIENT is not set # CONFIG_NC is not set # CONFIG_NETCAT is not set # CONFIG_NC_SERVER is not set # CONFIG_NC_EXTRA is not set # CONFIG_NC_110_COMPAT is not set CONFIG_NETSTAT=y # CONFIG_FEATURE_NETSTAT_WIDE is not set # CONFIG_FEATURE_NETSTAT_PRG is not set CONFIG_NSLOOKUP=y CONFIG_FEATURE_NSLOOKUP_BIG=y CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y # CONFIG_NTPD is not set # CONFIG_FEATURE_NTPD_SERVER is not set # CONFIG_FEATURE_NTPD_CONF is not set # CONFIG_FEATURE_NTP_AUTH is not set CONFIG_PING=y # CONFIG_PING6 is not set CONFIG_FEATURE_FANCY_PING=y # CONFIG_PSCAN is not set CONFIG_ROUTE=y # CONFIG_SLATTACH is not set CONFIG_SSL_CLIENT=y CONFIG_TC=y CONFIG_FEATURE_TC_INGRESS=y # CONFIG_TCPSVD is not set # CONFIG_UDPSVD is not set # CONFIG_TELNET is not set # CONFIG_FEATURE_TELNET_TTYPE is not set # CONFIG_FEATURE_TELNET_AUTOLOGIN is not set # CONFIG_FEATURE_TELNET_WIDTH is not set # 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_FEATURE_TFTP_PROGRESS_BAR is not set # CONFIG_FEATURE_TFTP_HPA_COMPAT 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_TFTP_DEBUG is not set CONFIG_TLS=y CONFIG_TRACEROUTE=y # CONFIG_TRACEROUTE6 is not set # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set # CONFIG_TUNCTL is not set # CONFIG_FEATURE_TUNCTL_UG is not set # CONFIG_VCONFIG is not set # CONFIG_WGET is not set # CONFIG_FEATURE_WGET_LONG_OPTIONS is not set # CONFIG_FEATURE_WGET_STATUSBAR is not set # CONFIG_FEATURE_WGET_FTP is not set # CONFIG_FEATURE_WGET_AUTHENTICATION is not set # CONFIG_FEATURE_WGET_TIMEOUT is not set # CONFIG_FEATURE_WGET_HTTPS is not set # CONFIG_FEATURE_WGET_OPENSSL is not set # CONFIG_WHOIS is not set # CONFIG_ZCIP is not set # CONFIG_UDHCPD is not set # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set CONFIG_DHCPD_LEASES_FILE="" # CONFIG_DUMPLEASES is not set # CONFIG_DHCPRELAY is not set # CONFIG_UDHCPC is not set # CONFIG_FEATURE_UDHCPC_ARPING is not set # CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set CONFIG_UDHCPC_DEFAULT_SCRIPT="" # CONFIG_UDHCPC6 is not set # CONFIG_FEATURE_UDHCPC6_RFC3646 is not set # CONFIG_FEATURE_UDHCPC6_RFC4704 is not set # CONFIG_FEATURE_UDHCPC6_RFC4833 is not set # CONFIG_FEATURE_UDHCPC6_RFC5970 is not set CONFIG_UDHCPC_DEFAULT_INTERFACE="" # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=0 CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 # CONFIG_FEATURE_UDHCP_RFC3397 is not set # CONFIG_FEATURE_UDHCP_8021Q is not set CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" # # 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_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 CONFIG_FEATURE_MIME_CHARSET="" # # Process Utilities # CONFIG_FREE=y # CONFIG_FUSER is not set # CONFIG_IOSTAT is not set CONFIG_KILL=y CONFIG_KILLALL=y CONFIG_KILLALL5=y # CONFIG_LSOF is not set # CONFIG_MPSTAT is not set # CONFIG_NMETER is not set # CONFIG_PGREP is not set # CONFIG_PKILL is not set CONFIG_PIDOF=y CONFIG_FEATURE_PIDOF_SINGLE=y CONFIG_FEATURE_PIDOF_OMIT=y # CONFIG_PMAP is not set # CONFIG_POWERTOP is not set # CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set CONFIG_PS=y # CONFIG_FEATURE_PS_WIDE is not set # CONFIG_FEATURE_PS_LONG is not set # CONFIG_FEATURE_PS_TIME is not set # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set # CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set # CONFIG_PSTREE is not set # CONFIG_PWDX is not set # CONFIG_SMEMCAP is not set CONFIG_BB_SYSCTL=y CONFIG_TOP=y CONFIG_FEATURE_TOP_INTERACTIVE=y CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y # 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=y # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set CONFIG_WATCH=y # CONFIG_FEATURE_SHOW_THREADS 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_SVC=y CONFIG_SVOK=y # CONFIG_SVLOGD is not set # CONFIG_CHCON 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_RUNCON is not set # CONFIG_SELINUXENABLED is not set # CONFIG_SESTATUS is not set # CONFIG_SETENFORCE is not set # CONFIG_SETFILES is not set # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set # CONFIG_RESTORECON is not set # CONFIG_SETSEBOOL is not set # # Shells # CONFIG_SH_IS_ASH=y # CONFIG_SH_IS_HUSH is not set # CONFIG_SH_IS_NONE is not set # CONFIG_BASH_IS_ASH is not set # CONFIG_BASH_IS_HUSH is not set CONFIG_BASH_IS_NONE=y CONFIG_SHELL_ASH=y # CONFIG_ASH is not set # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set CONFIG_ASH_INTERNAL_GLOB=y # CONFIG_ASH_BASH_COMPAT is not set # CONFIG_ASH_BASH_SOURCE_CURDIR is not set # CONFIG_ASH_BASH_NOT_FOUND_HOOK is not set # CONFIG_ASH_JOB_CONTROL is not set # CONFIG_ASH_ALIAS is not set # CONFIG_ASH_RANDOM_SUPPORT is not set # CONFIG_ASH_EXPAND_PRMT is not set # CONFIG_ASH_IDLE_TIMEOUT is not set # CONFIG_ASH_MAIL is not set CONFIG_ASH_ECHO=y CONFIG_ASH_PRINTF=y CONFIG_ASH_TEST=y # CONFIG_ASH_HELP is not set # CONFIG_ASH_GETOPTS is not set # CONFIG_ASH_CMDCMD is not set # CONFIG_CTTYHACK is not set # CONFIG_HUSH is not set # CONFIG_SHELL_HUSH is not set # CONFIG_HUSH_BASH_COMPAT is not set # CONFIG_HUSH_BRACE_EXPANSION is not set # CONFIG_HUSH_BASH_SOURCE_CURDIR is not set # CONFIG_HUSH_LINENO_VAR is not set # CONFIG_HUSH_INTERACTIVE is not set # CONFIG_HUSH_SAVEHISTORY is not set # CONFIG_HUSH_JOB is not set # CONFIG_HUSH_TICK is not set # CONFIG_HUSH_IF is not set # CONFIG_HUSH_LOOPS is not set # CONFIG_HUSH_CASE is not set # CONFIG_HUSH_FUNCTIONS is not set # CONFIG_HUSH_LOCAL is not set # CONFIG_HUSH_RANDOM_SUPPORT is not set # CONFIG_HUSH_MODE_X is not set # CONFIG_HUSH_ECHO is not set # CONFIG_HUSH_PRINTF is not set # CONFIG_HUSH_TEST is not set # CONFIG_HUSH_HELP is not set # CONFIG_HUSH_EXPORT is not set # CONFIG_HUSH_EXPORT_N is not set # CONFIG_HUSH_READONLY is not set # CONFIG_HUSH_KILL is not set # CONFIG_HUSH_WAIT is not set # CONFIG_HUSH_COMMAND is not set # CONFIG_HUSH_TRAP is not set # CONFIG_HUSH_TYPE is not set # CONFIG_HUSH_TIMES is not set # CONFIG_HUSH_READ is not set # CONFIG_HUSH_SET is not set # CONFIG_HUSH_UNSET is not set # CONFIG_HUSH_ULIMIT is not set # CONFIG_HUSH_UMASK is not set # CONFIG_HUSH_GETOPTS is not set # CONFIG_HUSH_MEMLEAK is not set # # Options common to all shells # CONFIG_FEATURE_SH_MATH=y CONFIG_FEATURE_SH_MATH_64=y CONFIG_FEATURE_SH_MATH_BASE=y # CONFIG_FEATURE_SH_EXTRA_QUIET is not set # CONFIG_FEATURE_SH_STANDALONE is not set # CONFIG_FEATURE_SH_NOFORK is not set CONFIG_FEATURE_SH_READ_FRAC=y # CONFIG_FEATURE_SH_HISTFILESIZE is not set CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y # # System Logging Utilities # # CONFIG_KLOGD is not set # CONFIG_FEATURE_KLOGD_KLOGCTL is not set CONFIG_LOGGER=y # CONFIG_LOGREAD is not set # CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set CONFIG_SYSLOGD=y # 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=y # CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 # CONFIG_FEATURE_IPC_SYSLOG is not set CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 CONFIG_FEATURE_KMSG_SYSLOG=y ================================================ FILE: board/common/busybox_initramfs.config ================================================ # # Automatically generated make config: don't edit # Busybox version: 1.24.2 # Sat Feb 11 14:55:38 2017 # CONFIG_HAVE_DOT_CONFIG=y # # Busybox Settings # # # General Configuration # CONFIG_DESKTOP=y # 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=y CONFIG_FEATURE_VERBOSE_USAGE=y # CONFIG_FEATURE_COMPRESS_USAGE is not set 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 is not set # 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_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_SYSTEMD 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 is not set 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_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_RPM is not set # CONFIG_RPM2CPIO 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=y 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 is not set CONFIG_ID=y # CONFIG_GROUPS is not set # CONFIG_SHUF is not set CONFIG_SYNC=y CONFIG_FEATURE_SYNC_FANCY=y 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 is not set # CONFIG_USERS is not set # CONFIG_CAL is not set # CONFIG_CATV is not set CONFIG_CHGRP=y CONFIG_CHMOD=y CONFIG_CHOWN=y # CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set CONFIG_CHROOT=y # CONFIG_CKSUM is not set # 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=y CONFIG_DIRNAME=y # CONFIG_DOS2UNIX is not set # CONFIG_UNIX2DOS is not set 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 is not set # CONFIG_EXPR_MATH_SUPPORT_64 is not set CONFIG_FALSE=y CONFIG_FOLD=y # CONFIG_FSYNC is not set CONFIG_HEAD=y CONFIG_FEATURE_FANCY_HEAD=y # CONFIG_INSTALL is not set # CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set CONFIG_LN=y # CONFIG_LOGNAME is not set 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 is not set # CONFIG_PRINTENV is not set # CONFIG_PRINTF is not set 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 is not set # CONFIG_SHA1SUM is not set # CONFIG_SHA256SUM is not set # CONFIG_SHA512SUM is not set # CONFIG_SHA3SUM is not set CONFIG_SLEEP=y # CONFIG_FEATURE_FANCY_SLEEP is not set # CONFIG_FEATURE_FLOAT_SLEEP is not set # CONFIG_SORT is not set # CONFIG_FEATURE_SORT_BIG is not set # 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 is not set # CONFIG_SUM is not set # CONFIG_TAC is not set CONFIG_TAIL=y CONFIG_FEATURE_FANCY_TAIL=y # CONFIG_TEE is not set # CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set CONFIG_TRUE=y # CONFIG_TTY is not set # CONFIG_UNAME is not set CONFIG_UNAME_OSNAME="" # CONFIG_UNEXPAND is not set # CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set # CONFIG_UNIQ is not set # CONFIG_USLEEP is not set # CONFIG_UUDECODE is not set # CONFIG_UUENCODE is not set # CONFIG_WC is not set # CONFIG_FEATURE_WC_LARGE is not set CONFIG_WHOAMI=y # CONFIG_YES is not set # # 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 is not set # CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set # CONFIG_FEATURE_RUN_PARTS_FANCY is not set # CONFIG_START_STOP_DAEMON is not set # CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set # CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set 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_FEATURE_USE_INITTAB is not set # CONFIG_FEATURE_KILL_REMOVED is not set 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_FEATURE_INITRD=y CONFIG_INIT_TERMINAL_TYPE="linux" 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 is not set # 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_ADDUSER is not set # CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set # CONFIG_FEATURE_CHECK_NAMES is not set CONFIG_LAST_ID=0 CONFIG_FIRST_SYSTEM_ID=0 CONFIG_LAST_SYSTEM_ID=0 # CONFIG_ADDGROUP is not set # CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set # CONFIG_FEATURE_ADDUSER_TO_GROUP 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 is not set # CONFIG_LOGIN_SESSION_AS_CHILD is not set # CONFIG_LOGIN_SCRIPTS is not set # CONFIG_FEATURE_NOLOGIN is not set # CONFIG_FEATURE_SECURETTY is not set 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 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_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 is not set CONFIG_FEATURE_MOUNT_FLAGS=y # CONFIG_FEATURE_MOUNT_FSTAB is not set # CONFIG_FEATURE_MOUNT_OTHERTAB is not set # CONFIG_REV is not set # CONFIG_UEVENT 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 is not set # 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 is not set # CONFIG_FEATURE_GETOPT_LONG is not set # 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 is not set # 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_SETARCH 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_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 is not set # CONFIG_TASKSET is not set # CONFIG_FEATURE_TASKSET_FANCY 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_SMALL 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=y # 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 is not set # CONFIG_NC_SERVER is not set # CONFIG_NC_EXTRA is not set # CONFIG_NC_110_COMPAT is not set # CONFIG_PING is not set # CONFIG_PING6 is not set # CONFIG_FEATURE_FANCY_PING is not set # CONFIG_WGET is not set # 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 is not set # 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 is not set # CONFIG_FEATURE_IFCONFIG_STATUS is not set # CONFIG_FEATURE_IFCONFIG_SLIP is not set # CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set # CONFIG_FEATURE_IFCONFIG_HW is not set # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set # CONFIG_IFENSLAVE is not set # CONFIG_IFPLUGD is not set # CONFIG_IFUPDOWN is not set CONFIG_IFUPDOWN_IFSTATE_PATH="" # CONFIG_FEATURE_IFUPDOWN_IP is not set # CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set # CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set # CONFIG_FEATURE_IFUPDOWN_IPV4 is not set # CONFIG_FEATURE_IFUPDOWN_IPV6 is not set # CONFIG_FEATURE_IFUPDOWN_MAPPING is not set # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set # 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 is not set # CONFIG_FEATURE_IP_ADDRESS is not set # CONFIG_FEATURE_IP_LINK is not set # CONFIG_FEATURE_IP_ROUTE is not set CONFIG_FEATURE_IP_ROUTE_DIR="" # CONFIG_FEATURE_IP_TUNNEL is not set # CONFIG_FEATURE_IP_RULE is not set # CONFIG_FEATURE_IP_SHORT_FORMS is not set # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set # CONFIG_IPADDR is not set # CONFIG_IPLINK is not set # CONFIG_IPROUTE is not set # CONFIG_IPTUNNEL is not set # CONFIG_IPRULE 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 is not set # CONFIG_FEATURE_NETSTAT_WIDE is not set # CONFIG_FEATURE_NETSTAT_PRG is not set # 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 is not set # CONFIG_SLATTACH is not set # CONFIG_TCPSVD is not set # CONFIG_TELNET is not set # CONFIG_FEATURE_TELNET_TTYPE is not set # CONFIG_FEATURE_TELNET_AUTOLOGIN is not set # 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 is not set # CONFIG_FEATURE_UDHCPC_ARPING is not set # CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=0 # CONFIG_FEATURE_UDHCP_RFC3397 is not set # CONFIG_FEATURE_UDHCP_8021Q is not set CONFIG_UDHCPC_DEFAULT_SCRIPT="" CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" # 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=y CONFIG_FEATURE_PIDOF_SINGLE=y CONFIG_FEATURE_PIDOF_OMIT=y # CONFIG_PKILL is not set # CONFIG_PS is not set # CONFIG_FEATURE_PS_WIDE is not set # CONFIG_FEATURE_PS_LONG is not set # 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_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 # 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=y CONFIG_ASH_BASH_COMPAT=y # CONFIG_ASH_IDLE_TIMEOUT is not set CONFIG_ASH_JOB_CONTROL=y CONFIG_ASH_ALIAS=y CONFIG_ASH_GETOPTS=y CONFIG_ASH_BUILTIN_ECHO=y CONFIG_ASH_BUILTIN_PRINTF=y CONFIG_ASH_BUILTIN_TEST=y CONFIG_ASH_HELP=y CONFIG_ASH_CMDCMD=y # CONFIG_ASH_MAIL is not set CONFIG_ASH_OPTIMIZE_FOR_SIZE=y CONFIG_ASH_RANDOM_SUPPORT=y CONFIG_ASH_EXPAND_PRMT=y # CONFIG_CTTYHACK is not set # CONFIG_HUSH is not set # CONFIG_HUSH_BASH_COMPAT is not set # CONFIG_HUSH_BRACE_EXPANSION is not set # CONFIG_HUSH_HELP is not set # CONFIG_HUSH_INTERACTIVE is not set # CONFIG_HUSH_SAVEHISTORY is not set # CONFIG_HUSH_JOB is not set # CONFIG_HUSH_TICK is not set # CONFIG_HUSH_IF is not set # CONFIG_HUSH_LOOPS is not set # CONFIG_HUSH_CASE is not set # CONFIG_HUSH_FUNCTIONS is not set # CONFIG_HUSH_LOCAL is not set # CONFIG_HUSH_RANDOM_SUPPORT is not set # CONFIG_HUSH_EXPORT_N is not set # CONFIG_HUSH_MODE_X is not set # CONFIG_MSH is not set CONFIG_FEATURE_SH_IS_ASH=y # CONFIG_FEATURE_SH_IS_HUSH is not set # 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=y CONFIG_FEATURE_SH_EXTRA_QUIET=y # CONFIG_FEATURE_SH_STANDALONE is not set # CONFIG_FEATURE_SH_NOFORK is not set CONFIG_FEATURE_SH_HISTFILESIZE=y # # System Logging Utilities # # 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_LOGREAD is not set # CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set # CONFIG_FEATURE_KMSG_SYSLOG is not set # CONFIG_KLOGD is not set # CONFIG_FEATURE_KLOGD_KLOGCTL is not set # CONFIG_LOGGER is not set ================================================ FILE: board/common/cleanup.sh ================================================ #!/bin/bash TARGET=$1 test -n "${TARGET}" || exit 1 find ${TARGET} -name '.empty' | xargs -r rm # /etc stuff rm -rf ${TARGET}/etc/network/ rm -rf ${TARGET}/etc/dhcp/ rm -rf ${TARGET}/etc/rc_keymaps/ rm -rf ${TARGET}/etc/default/ rm -rf ${TARGET}/etc/ctdb/ rm -rf ${TARGET}/etc/sudoers.d/ rm -rf ${TARGET}/etc/ssl/man rm -rf ${TARGET}/etc/ssl/misc rm -rf ${TARGET}/etc/ssl/private rm -rf ${TARGET}/etc/logrotate.d rm -rf ${TARGET}/etc/fstab rm -f ${TARGET}/etc/rc_maps.cfg rm -f ${TARGET}/etc/udev/hwdb.d/20-pci-vendor-model.hwdb rm -f ${TARGET}/etc/os-release rm -f ${TARGET}/etc/hostapd.conf rm -f ${TARGET}/etc/timezone rm -f ${TARGET}/etc/cron.d/e2scrub_all # /usr/share stuff rm -rf ${TARGET}/usr/share/bash-completion/ rm -rf ${TARGET}/usr/share/locale/* rm -rf ${TARGET}/usr/share/ffmpeg/ rm -rf ${TARGET}/usr/share/perl5/ rm -rf ${TARGET}/usr/share/common-lisp/ # various binaries rm -f ${TARGET}/bin/more rm -f ${TARGET}/bin/wdctl rm -f ${TARGET}/usr/sbin/readprofile rm -f ${TARGET}/sbin/nologin rm -f ${TARGET}/sbin/ldattach rm -f ${TARGET}/usr/sbin/ldattach rm -f ${TARGET}/sbin/slattach rm -f ${TARGET}/sbin/plipconfig rm -f ${TARGET}/sbin/fstrim rm -f ${TARGET}/usr/sbin/rtcwake rm -f ${TARGET}/bin/lsblk rm -f ${TARGET}/usr/bin/col rm -f ${TARGET}/sbin/fdformat rm -f ${TARGET}/sbin/ctrlaltdel rm -f ${TARGET}/bin/findmnt rm -f ${TARGET}/usr/bin/colcrt rm -f ${TARGET}/sbin/fsfreeze rm -f ${TARGET}/usr/bin/colrm rm -f ${TARGET}/usr/sbin/addpart rm -f ${TARGET}/sbin/blkdiscard rm -f ${TARGET}/usr/sbin/delpart rm -f ${TARGET}/usr/sbin/resizepart rm -f ${TARGET}/usr/bin/hexdump rm -f ${TARGET}/usr/bin/rev rm -f ${TARGET}/sbin/chcpu rm -f ${TARGET}/usr/bin/tailf rm -f ${TARGET}/usr/bin/pg rm -f ${TARGET}/sbin/blkid rm -f ${TARGET}/usr/bin/ul rm -f ${TARGET}/sbin/findfs rm -f ${TARGET}/sbin/wipefs rm -f ${TARGET}/usr/bin/scriptreplay rm -f ${TARGET}/usr/bin/scriptlive rm -f ${TARGET}/sbin/fsck.minix rm -f ${TARGET}/sbin/mkfs.minix rm -f ${TARGET}/usr/bin/setterm rm -f ${TARGET}/usr/bin/flock rm -f ${TARGET}/sbin/mkfs rm -f ${TARGET}/usr/bin/ipcmk rm -f ${TARGET}/sbin/mkfs.bfs rm -f ${TARGET}/usr/bin/ipcrm rm -f ${TARGET}/usr/bin/ipcs rm -f ${TARGET}/usr/bin/setsid rm -f ${TARGET}/sbin/blockdev rm -f ${TARGET}/usr/bin/cytune rm -f ${TARGET}/usr/bin/setarch rm -f ${TARGET}/sbin/sfdisk rm -f ${TARGET}/usr/bin/prlimit rm -f ${TARGET}/sbin/cfdisk rm -f ${TARGET}/usr/bin/lscpu rm -f ${TARGET}/usr/bin/unshare rm -f ${TARGET}/usr/bin/nsenter rm -f ${TARGET}/usr/bin/cal rm -f ${TARGET}/usr/bin/look rm -f ${TARGET}/usr/bin/mcookie rm -f ${TARGET}/usr/bin/namei rm -f ${TARGET}/usr/bin/whereis rm -f ${TARGET}/usr/bin/lslocks rm -f ${TARGET}/usr/bin/uuidgen rm -f ${TARGET}/usr/bin/getopt rm -f ${TARGET}/bin/isosize rm -f ${TARGET}/usr/sbin/fdformat rm -f ${TARGET}/usr/bin/linux32 rm -f ${TARGET}/usr/bin/linux64 rm -f ${TARGET}/usr/bin/uname26 rm -f ${TARGET}/bin/zcmp rm -f ${TARGET}/bin/zdiff rm -f ${TARGET}/bin/zegrep rm -f ${TARGET}/bin/zfgrep rm -f ${TARGET}/bin/zforce rm -f ${TARGET}/bin/zmore rm -f ${TARGET}/bin/znew rm -f ${TARGET}/bin/gzexe rm -f ${TARGET}/bin/uncompress rm -f ${TARGET}/usr/bin/slogin rm -f ${TARGET}/usr/bin/ssh-keyscan rm -f ${TARGET}/usr/bin/ssh-add rm -f ${TARGET}/usr/bin/ssh-agent rm -f ${TARGET}/usr/bin/xmllint rm -f ${TARGET}/usr/libexec/ssh-keysign rm -f ${TARGET}/usr/libexec/ssh-pkcs11-helper rm -f ${TARGET}/usr/libexec/rmt # samba4 unneeded stuff rm -f ${TARGET}/usr/bin/cifsdd rm -f ${TARGET}/usr/bin/containers_* rm -f ${TARGET}/usr/bin/ctdb* rm -f ${TARGET}/usr/bin/dbwrap_tool rm -f ${TARGET}/usr/bin/eventlogadm rm -f ${TARGET}/usr/bin/event_rpcgen.py rm -f ${TARGET}/usr/bin/gentest rm -f ${TARGET}/usr/bin/ldb* rm -f ${TARGET}/usr/bin/locktest rm -f ${TARGET}/usr/bin/ltdbtool rm -f ${TARGET}/usr/bin/masktest rm -f ${TARGET}/usr/bin/ndrdump rm -f ${TARGET}/usr/bin/net rm -f ${TARGET}/usr/bin/ntdb* rm -f ${TARGET}/usr/bin/ntlm_auth rm -f ${TARGET}/usr/bin/oLschema2ldif rm -f ${TARGET}/usr/bin/onnode rm -f ${TARGET}/usr/bin/pdbedit rm -f ${TARGET}/usr/bin/pidl rm -f ${TARGET}/usr/bin/ping_pong rm -f ${TARGET}/usr/bin/profiles rm -f ${TARGET}/usr/bin/reg* rm -f ${TARGET}/usr/bin/rpcclient rm -f ${TARGET}/usr/bin/samba-regedit rm -f ${TARGET}/usr/bin/sharesec rm -f ${TARGET}/usr/bin/smbcacls rm -f ${TARGET}/usr/bin/smbcontrol rm -f ${TARGET}/usr/bin/smbcquotas rm -f ${TARGET}/usr/bin/smbget rm -f ${TARGET}/usr/bin/smbspool rm -f ${TARGET}/usr/bin/smbstatus rm -f ${TARGET}/usr/bin/smbta-util rm -f ${TARGET}/usr/bin/smbtar rm -f ${TARGET}/usr/bin/smbtree rm -f ${TARGET}/usr/bin/smnotify rm -f ${TARGET}/usr/bin/tdb* rm -f ${TARGET}/usr/bin/testparm rm -f ${TARGET}/usr/bin/wbinfo rm -f ${TARGET}/usr/sbin/winbindd rm -rf ${TARGET}/usr/share/ctdb # unused mongodb binaries rm -f ${TARGET}/usr/bin/mongos rm -f ${TARGET}/usr/bin/mongoperf # unused redis binaries rm -f $TARGET/usr/bin/redis-check-aof rm -f $TARGET/usr/bin/redis-check-rdb rm -f $TARGET/usr/bin/redis-benchmark rm -f $TARGET/usr/bin/redis-cli rm -f $TARGET/usr/bin/redis-sentinel # v4l-utils rm -f ${TARGET}/usr/bin/cec-compliance rm -f ${TARGET}/usr/bin/cec-ctl rm -f ${TARGET}/usr/bin/cec-follower rm -f ${TARGET}/usr/bin/dvb-fe-tool rm -f ${TARGET}/usr/bin/dvb-format-convert rm -f ${TARGET}/usr/bin/dvbv5-daemon rm -f ${TARGET}/usr/bin/dvbv5-scan rm -f ${TARGET}/usr/bin/dvbv5-zap rm -f ${TARGET}/usr/bin/media-ctl rm -f ${TARGET}/usr/bin/rds-ctl rm -f ${TARGET}/usr/bin/v4l2-compliance # unused python folders rm -rf ${TARGET}/usr/lib/python*/site-packages/samba/ rm -rf ${TARGET}/usr/lib/python*/unittest/ # buildroot default startup scripts rm -f ${TARGET}/etc/init.d/S01syslogd rm -f ${TARGET}/etc/init.d/S02sysctl rm -f ${TARGET}/etc/init.d/S10udev rm -f ${TARGET}/etc/init.d/S15watchdog rm -f ${TARGET}/etc/init.d/S20urandom rm -f ${TARGET}/etc/init.d/S21rngd rm -f ${TARGET}/etc/init.d/S30cgroupfs rm -f ${TARGET}/etc/init.d/S35iptables rm -f ${TARGET}/etc/init.d/S40bluetooth rm -f ${TARGET}/etc/init.d/S40bluetoothd rm -f ${TARGET}/etc/init.d/S45connman rm -f ${TARGET}/etc/init.d/S48sntp rm -f ${TARGET}/etc/init.d/S49ntp rm -f ${TARGET}/etc/init.d/S49chrony rm -f ${TARGET}/etc/init.d/S50avahi-daemon rm -f ${TARGET}/etc/init.d/S50sshd rm -f ${TARGET}/etc/init.d/S50proftpd rm -f ${TARGET}/etc/init.d/S50postgresql rm -f ${TARGET}/etc/init.d/S50redis rm -f ${TARGET}/etc/init.d/S60openvpn rm -f ${TARGET}/etc/init.d/S80dhcp-relay rm -f ${TARGET}/etc/init.d/S80dhcp-server rm -f ${TARGET}/etc/init.d/S80dnsmasq rm -f ${TARGET}/etc/init.d/S91smb # other unwanted stuff rm -rf ${TARGET}/etc/redis.conf rm -rf ${TARGET}/data/* rm -rf ${TARGET}/run rm -rf ${TARGET}/etc/profile.d ================================================ FILE: board/common/overlay/boot/.empty ================================================ ================================================ FILE: board/common/overlay/data/.empty ================================================ ================================================ FILE: board/common/overlay/etc/adminpasswd.d/.empty ================================================ ================================================ FILE: board/common/overlay/etc/captive-portal.conf ================================================ CAPTIVE_PORTAL_ENABLED=false CAPTIVE_PORTAL_TIMEOUT=0 CAPTIVE_PORTAL_TIMEOUT_REBOOT=false CAPTIVE_PORTAL_CONFIGURED_CMD= CAPTIVE_PORTAL_START_GPIO= CAPTIVE_PORTAL_START_INPUT= CAPTIVE_PORTAL_START_LEVEL=1 CAPTIVE_PORTAL_START_HOLD_SECONDS=5 test -s /data/etc/captive-portal.conf && source /data/etc/captive-portal.conf test -s /boot/captive-portal.conf && source /boot/captive-portal.conf ================================================ FILE: board/common/overlay/etc/crontabs/root ================================================ 13 * * * * /usr/sbin/logrotate /etc/logrotate.conf 0 2 * * 0 /usr/sbin/https-update */15 * * * * /usr/sbin/dyndns-update */15 * * * * date +%s > /var/lib/saved_date 0 0 * * * /usr/libexec/fwupdate-auto >> /var/log/fwupdate-auto.log ================================================ FILE: board/common/overlay/etc/date.conf ================================================ DATE_TIMEOUT=10 DATE_METHOD=sntp DATE_HOST="google.com" DATE_INTERVAL=900 DATE_NTP_SERVER="" ================================================ FILE: board/common/overlay/etc/dbus-1/system.conf ================================================ system ================================================ FILE: board/common/overlay/etc/dehydrated/config ================================================ BASEDIR="/var/lib/dehydrated" DOMAINS_TXT="/data/etc/ssl/domain" WELLKNOWN="/tmp/dehydrated" HOOK="/usr/libexec/dehydrated-hook" CONTACT_EMAIL="$( ${boot_dev} /boot vfat ro,defaults 0 0 ${data_dev} /data ext4 defaults,noatime 0 0 ================================================ FILE: board/common/overlay/etc/fstab.extra ================================================ # ================================================ FILE: board/common/overlay/etc/fstab.overlay ================================================ # overlay /usr overlay lowerdir=/usr,upperdir=/data/usr,workdir=/data/.overlay-usr 0 0 overlay /var/log overlay lowerdir=/var/log,upperdir=/data/log,workdir=/data/.overlay-log 0 0 overlay /var/lib overlay lowerdir=/var/lib,upperdir=/data/varlib,workdir=/data/.overlay-varlib 0 0 ================================================ FILE: board/common/overlay/etc/fstab.sys ================================================ # proc /proc proc defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs mode=0777 0 0 tmpfs /tmp tmpfs mode=1777 0 0 sysfs /sys sysfs defaults 0 0 configfs /sys/kernel/config configfs defaults 0 0 ================================================ FILE: board/common/overlay/etc/group ================================================ root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: mail:x:8: kmem:x:9: wheel:x:10:root cdrom:x:11: dialout:x:18: floppy:x:19: video:x:28: audio:x:29: tape:x:32: www-data:x:33: utmp:x:43: plugdev:x:46: staff:x:50: lock:x:54: haldaemon:x:68: dbus:x:81: netdev:x:82: ftp:x:83 nogroup:x:99: users:x:100: ================================================ FILE: board/common/overlay/etc/init.d/S00datapart ================================================ #!/bin/bash DATA_OFFS="1024" # up to 1024MB reserved for boot + root test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) msg_begin "Detecting disk device" root_dev=$(cat /proc/cmdline | grep -oE 'root=[/a-z0-9]+' | cut -d '=' -f 2) if [[ "${root_dev}" =~ ^([/a-z0-9]+)(p[0-9])$ ]]; then # e.g. /dev/mmcblk0p2 disk_dev=${BASH_REMATCH[1]} disk_dev_prefix=${disk_dev}p root_part_no=$(echo ${root_dev} | grep -oE '[0-9]$') boot_dev=${disk_dev}p$(( root_part_no - 1 )) data_dev=${disk_dev}p$(( root_part_no + 1 )) elif [[ "${root_dev}" =~ ^([/a-z0-9]+)([0-9])$ ]]; then # e.g. /dev/sdc2 disk_dev=${BASH_REMATCH[1]} disk_dev_prefix=${disk_dev} root_part_no=$(echo ${root_dev} | grep -oE '[0-9]$') boot_dev=${disk_dev}$(( root_part_no - 1 )) data_dev=${disk_dev}$(( root_part_no + 1 )) else msg_fail "unknown (${root_dev})" exit 1 fi part_table_type=$(fdisk -l ${disk_dev} | grep Disklabel | tr -d ' ' | cut -d : -f 2) for ext in disk extra overlay; do sed "s,"'${disk_dev_prefix}'",${disk_dev_prefix},g" /etc/fstab.${ext} > /tmp/fstab.${ext} sed -i "s,"'${boot_dev}'",${boot_dev},g" /tmp/fstab.${ext} sed -i "s,"'${root_dev}'",${root_dev},g" /tmp/fstab.${ext} sed -i "s,"'${data_dev}'",${data_dev},g" /tmp/fstab.${ext} done # Output disk info to /tmp/disk_info { echo "DISK_DEV=${disk_dev}" echo "DISK_DEV_PREFIX=${disk_dev_prefix}" echo "BOOT_DEV=${boot_dev}" echo "ROOT_DEV=${root_dev}" echo "DATA_DEV=${data_dev}" echo "PART_TABLE_TYPE=${part_table_type}" } > /tmp/disk_info msg_done "${disk_dev}" if [[ -b ${data_dev} ]]; then msg_begin "Checking data filesystem" if grep -q 'fsck.mode=force' /proc/cmdline; then /sbin/e2fsck -fy ${data_dev} &> /tmp/fsck.log elif ! grep -q 'fsck.mode=skip' /proc/cmdline; then /sbin/e2fsck -y ${data_dev} &> /tmp/fsck.log fi if [[ $? == 0 ]]; then msg_done else msg_fail cat /tmp/fsck.log fi exit 0 fi msg_begin "Creating data partition" data_start=$((DATA_OFFS * 2048)) echo -e "n p $(( root_part_no + 1 )) ${data_start} \n w" | /sbin/fdisk ${disk_dev} &>/dev/null partx -a ${disk_dev} &>/dev/null test -b ${data_dev} && msg_done || msg_fail msg_begin "Formatting data partition" mkfs.ext4 -q ${data_dev} test $? == 0 && msg_done || msg_fail msg_begin "Mounting data partition" mount -T /tmp/fstab.disk /data && msg_done || msg_fail msg_begin "Copying data skeleton" cp -pur /usr/share/dataskel/* /data sync msg_done touch /data/.install_factory_defaults ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac ================================================ FILE: board/common/overlay/etc/init.d/S01mountall ================================================ #!/bin/bash test -n "${OS_VERSION}" || source /etc/init.d/base function mount_fs() { msg_begin "Mounting filesystems" /bin/mount -T /tmp/fstab.disk -a && /bin/mount -T /tmp/fstab.extra -a && if [[ -r /data/etc/fstab.user ]]; then /bin/mount -T /data/etc/fstab.user -a; fi test $? == 0 && msg_done || msg_fail } function mount_overlay() { modprobe overlay &>/dev/null grep -qw overlay /proc/filesystems || return msg_begin "Mounting overlay filesystems" grep -oE 'lowerdir=[^,]+' /tmp/fstab.overlay | cut -d '=' -f 2 | xargs -r mkdir -p grep -oE 'upperdir=[^,]+' /tmp/fstab.overlay | cut -d '=' -f 2 | xargs -r mkdir -p grep -oE 'workdir=[^ ]+' /tmp/fstab.overlay | cut -d '=' -f 2 | xargs -r mkdir -p cat /tmp/fstab.overlay | grep -vE '^#' | while read line; do parts=(${line}) test ${#parts[@]} -ge 4 || continue fs=${parts[0]} mp=${parts[1]} type=${parts[2]} opts=${parts[3]} # Add index/metacopy options are only available after kernel 4.19 if echo -e "$(uname -r)\n4.19.0" | semver-sort | head -n 1 | grep -q 4.19.0; then opts+=",index=off,metacopy=off" fi /bin/mount -t ${type} -o ${opts} ${fs} ${mp} done test $? == 0 && msg_done || msg_fail } function mount_cgroupfs() { kernel_maj_ver=$(uname -r | cut -d . -f 1) if [[ ${kernel_maj_ver} -ge 5 ]]; then /bin/mount -t cgroup2 cgroup2 /sys/fs/cgroup else /usr/bin/cgroupfs-mount fi } function install_factory_defaults() { if [[ -s /boot/factory-defaults.tar.xz ]]; then msg_begin "Installing factory defaults" xzcat /boot/factory-defaults.tar.xz | tar --no-same-owner -mx -C /data sync msg_done fi } function remount_rw() { msg_begin "Remounting boot partition read-write" mount -o remount,rw /boot test $? == 0 && msg_done || msg_fail msg_begin "Remounting root partition read-write" mount -o remount,rw / test $? == 0 && msg_done || msg_fail } function mk_tty_login() { console=$(grep -oE 'console=[a-zA-Z0-9_/-]+' /proc/cmdline | cut -d = -f 2) if [[ -z "${console}" ]]; then console=/dev/console; fi if ! [[ ${console} == /* ]]; then console=/dev/${console}; fi ln -sf ${console} /dev/ttylogin } case "$1" in start) mount_fs mount_overlay if [[ -f /data/.install_factory_defaults ]]; then rm /data/.install_factory_defaults install_factory_defaults fi mount_cgroupfs 2>/dev/null # we need to source conf again, now that /data is available source /etc/init.d/os_conf test "${OS_DEBUG}" == "true" && remount_rw mk_tty_login ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S01toemmc ================================================ #!/bin/bash TOEMMC_PROG="/sbin/toemmc" TOEMMC_CONF="/boot/toemmc.conf" test -s "${TOEMMC_CONF}" || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) source ${TOEMMC_CONF} if [[ -n "${EMMC_DEV}" ]]; then msg "Flashing EMMC" ${TOEMMC_PROG} ${EMMC_DEV} sync if [[ -n "${POST_CMD}" ]]; then bash -c "${POST_CMD}" fi fi ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S02defaultdata ================================================ #!/bin/bash test -n "${OS_VERSION}" || source /etc/init.d/base set_empty_root_passwd() { msg_begin "Setting empty root password" PASSWORD="" adminpasswd sync msg_done } copy_version() { msg_begin "Copying version file" cp /etc/version /data/etc/version sync msg_done } set_utc_timezone() { msg_begin "Setting UTC timezone" ln -s /usr/share/zoneinfo/UTC /data/etc/localtime touch /data/etc/adjtime sync msg_done } copy_data_overlay() { msg_begin "Copying data overlay" cp -pr /usr/share/dataoverlay/* /data sync msg_done } case "$1" in start) test -s /data/etc/shadow || set_empty_root_passwd test -s /data/etc/version || copy_version test -s /data/etc/localtime || set_utc_timezone test -n "$(ls -A /usr/share/dataoverlay 2>/dev/null)" && copy_data_overlay ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit 0 ================================================ FILE: board/common/overlay/etc/init.d/S02restorebackups ================================================ #!/bin/bash BACKUPS_DIR="/boot" BACKUP_PATTERN="backup-*.tar.gz" DATA_DIR="/data" test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) if ! ls ${BACKUPS_DIR}/${BACKUP_PATTERN} &>/dev/null; then exit; # no backups fi mount -o remount,rw /boot for file in ${BACKUPS_DIR}/${BACKUP_PATTERN}; do msg_begin "Restoring backup from $(basename ${file})" tar -mxf ${file} -C ${DATA_DIR} if [[ $? == 0 ]]; then rm ${file} msg_done else msg_fail fi done # source os_conf again, as it might have changed after restore test -s /etc/init.d/os_conf && source /etc/init.d/os_conf if [[ "${OS_DEBUG}" != "true" ]]; then mount -o remount,ro /boot fi ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S03modules ================================================ #!/bin/bash SYS_MODULES_FILE="/etc/modules" BOOT_MODULES_FILE="/boot/modules" MODULES_FILE="/data/etc/modules" test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) msg_begin "Loading kernel modules" if [[ -r ${SYS_MODULES_FILE} ]]; then cat ${SYS_MODULES_FILE} | while read line; do test -n "${line}" && /sbin/modprobe ${line} &>/dev/null; done fi if [[ -r ${BOOT_MODULES_FILE} ]]; then cat ${BOOT_MODULES_FILE} | while read line; do test -n "${line}" && /sbin/modprobe ${line} &>/dev/null; done fi if [[ -r ${MODULES_FILE} ]]; then cat ${MODULES_FILE} | while read line; do test -n "${line}" && /sbin/modprobe ${line} &>/dev/null; done fi msg_done ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S04hostname ================================================ #!/bin/bash SYS_HOSTNAME_FILE="/etc/defhostname" BOOT_HOSTNAME_FILE="/boot/hostname" HOSTNAME_FILE="/data/etc/hostname" test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) msg_begin "Setting hostname" prepare_conf ${HOSTNAME_FILE} ${SYS_HOSTNAME_FILE} ${BOOT_HOSTNAME_FILE} if [[ -f ${HOSTNAME_FILE} ]]; then hostname=$(cat ${HOSTNAME_FILE}) else hostname="${OS_PREFIX}-${BOARD_SN}" fi /bin/hostname ${hostname} echo "127.0.0.1 localhost ${hostname}" > /etc/hosts msg_done ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S05cpufreq ================================================ #!/bin/bash SYS_CONF="/etc/cpufreq.conf" BOOT_CONF="/boot/cpufreq.conf" CONF="/data/etc/cpufreq.conf" CPU_FREQ_GOVERNOR="ondemand" CPU_FREQ_MIN="" CPU_FREQ_MAX="" CPU_FREQ_DIR="/sys/devices/system/cpu/cpu0/cpufreq" GOVERNOR_DIR1="/sys/devices/system/cpu/cpufreq/${CPU_FREQ_GOVERNOR}" GOVERNOR_DIR2="/sys/devices/system/cpu/cpu0/cpufreq/${CPU_FREQ_GOVERNOR}" test -d "${GOVERNOR_DIR1}" && GOVERNOR_DIR=${GOVERNOR_DIR1} || GOVERNOR_DIR=${GOVERNOR_DIR2} test -d "${CPU_FREQ_DIR}" && test -d "${GOVERNOR_DIR}" || exit 0 # no CPU freq support test -n "${OS_VERSION}" || source /etc/init.d/base configure() { test -s "${SYS_CONF}" && source "${SYS_CONF}" test -s "${BOOT_CONF}" && source "${BOOT_CONF}" test -s "${CONF}" && source "${CONF}" echo ${CPU_FREQ_GOVERNOR} > ${CPU_FREQ_DIR}/scaling_governor if [[ ${CPU_FREQ_GOVERNOR} == "ondemand" ]]; then echo 50 > ${GOVERNOR_DIR}/up_threshold echo 100000 > ${GOVERNOR_DIR}/sampling_rate echo 50 > ${GOVERNOR_DIR}/sampling_down_factor fi if [[ -n "${CPU_FREQ_MIN}" ]]; then echo ${CPU_FREQ_MIN} > ${CPU_FREQ_DIR}/scaling_min_freq fi if [[ -n "${CPU_FREQ_MAX}" ]]; then echo ${CPU_FREQ_MAX} > ${CPU_FREQ_DIR}/scaling_max_freq fi } case "$1" in start) msg_begin "Configuring CPU frequency" configure test $? == 0 && msg_done || msg_fail ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S05syslog ================================================ #!/bin/bash PROG="/sbin/syslogd" PROG_D="/bin/dmesg" DMESG_LOG="/var/log/dmesg.log" test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) msg_begin "Starting syslogd" ${PROG} test $? == 0 && msg_done || msg_fail echo "---- booting ${OS_NAME} ${OS_VERSION} ----" >> ${DMESG_LOG} ${PROG_D} -w >> ${DMESG_LOG} & ;; stop) msg_begin "Stopping syslogd" killall -q $(basename ${PROG}) test $? == 0 && msg_done || msg_fail killall -q $(basename ${PROG_D}) ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S10sysctl ================================================ #!/bin/bash SYS_CONF="/etc/sysctl.conf" BOOT_CONF="/boot/sysctl.conf" CONF="/data/etc/sysctl.conf" PROG="/sbin/sysctl" FIRST_RUN_FILE="/var/run/sysctl_run" test -n "${OS_VERSION}" || source /etc/init.d/base if [[ ! -f ${CONF} && ! -f ${SYS_CONF} && ! -f ${BOOT_CONF} ]]; then exit 0 fi case "$1" in start) if [[ -f ${FIRST_RUN_FILE} ]]; then msg_begin "Applying sysctl parameters (final)" test -s "${SYS_CONF}" && sysctl -q -p ${SYS_CONF} test -s "${CONF}" && sysctl -q -p ${CONF} test -s "${BOOT_CONF}" && sysctl -q -p ${BOOT_CONF} else msg_begin "Applying sysctl parameters" test -s "${SYS_CONF}" && sysctl -e -q -p ${SYS_CONF} test -s "${CONF}" && sysctl -e -q -p ${CONF} test -s "${BOOT_CONF}" && sysctl -e -q -p ${BOOT_CONF} touch ${FIRST_RUN_FILE} fi msg_done ;; stop) true ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S12udev ================================================ #!/bin/bash CONF="/etc/udev/udev.conf" PROG="/sbin/udevd" PROG_UA="/sbin/udevadm" test -f ${PROG} || exit 0 test -s ${CONF} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base source "${CONF}" start() { msg_begin "Starting eudev" ${PROG} --daemon --resolve-names=never test $? == 0 && msg_done || msg_fail ${PROG_UA} trigger --type=subsystems --action=add ${PROG_UA} trigger --type=devices --action=add ${PROG_UA} settle --timeout=30 return 0 } stop() { msg_begin "Stopping eudev" ${PROG_UA} control --stop-exec-queue killall -q $(basename ${PROG}) msg_done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S13btuart ================================================ #!/bin/bash SYS_CONF="/etc/bluetooth.conf" BOOT_CONF="/boot/bluetooth.conf" CONF="/data/etc/bluetooth.conf" PLATFORM_BTUART="/usr/libexec/btuart" LOG="/var/log/btuart.log" test -f ${CONF} || test -f ${BOOT_CONF} || test -f ${SYS_CONF} || exit 0 # Bluetooth explicitly disabled by empty bluetooth.conf test -f ${CONF} && ! test -s "${CONF}" && exit 0 test -s "${PLATFORM_BTUART}" || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base source "${PLATFORM_BTUART}" case "$1" in start) msg_begin "Attaching UART bluetooth device" btuart_start &> ${LOG} & msg_background ;; stop) msg_begin "Detaching UART bluetooth device" btuart_stop &>/dev/null test $? == 0 && msg_done || msg_fail ;; *) echo $"Usage: $0 {start|stop}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S13watchdog ================================================ #!/bin/bash SYS_CONF="/etc/watchdog.conf" BOOT_CONF="/boot/watchdog.conf" USER_CONF="/data/etc/watchdog.conf" PROG="/sbin/watchdog" DEVICE="/dev/watchdog" TIMEOUT=5 THERMAL_ZONE= MAX_TEMP= TEMP_INTERVAL=10 SYS_CHECK="/usr/libexec/watchdog-check" USER_CHECK="/data/etc/watchdog-check" CHECK_LOG="/var/log/watchdog-check.log" CHECK_INTERVAL=10 test -s "${SYS_CONF}" && source "${SYS_CONF}" test -s "${USER_CONF}" && source "${USER_CONF}" test -s "${BOOT_CONF}" && source "${BOOT_CONF}" test -n "${OS_VERSION}" || source /etc/init.d/base function start_watchdog() { if ! [[ -x ${PROG} && -e ${DEVICE} ]]; then return fi msg_begin "Starting watchdog" ${PROG} -t ${TIMEOUT} ${DEVICE} test $? == 0 && msg_done || msg_fail } function start_watch_temp() { if [[ -z "${THERMAL_ZONE}" ]] || [[ -z "${MAX_TEMP}" ]]; then return fi while true; do sleep ${TEMP_INTERVAL} temp=$(cat /sys/class/thermal/${THERMAL_ZONE}/temp) temp=$((temp / 1000)) if [[ "${temp}" -gt ${MAX_TEMP} ]]; then panic action watchdog "temperature too high: ${temp} > ${MAX_TEMP}" fi done } function start_watch_check() { if ! [[ -x "${SYS_CHECK}" ]] && ! [[ -x "${USER_CHECK}" ]]; then return fi while true; do sleep ${CHECK_INTERVAL} if [[ -x "${SYS_CHECK}" ]] && ! "${SYS_CHECK}" &>>${CHECK_LOG}; then panic action watchdog "system check failed" elif [[ -x "${USER_CHECK}" ]] && ! "${USER_CHECK}" &>>${CHECK_LOG}; then panic action watchdog "user check failed" fi done } function stop() { msg_begin "Stopping watchdog" killall -q $(basename ${PROG}) ps | grep "service watchdog" | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill ps | grep "S13watchdog" | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill msg_done } case "$1" in start) start_watchdog start_watch_temp & start_watch_check & ;; stop) true ;; reallystop) stop ;; *) echo $"Usage: $0 {start|reallystop}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S14postupgrade ================================================ #!/bin/bash SYS_VERSION_FILE="/etc/version" VERSION_FILE="/data/etc/version" POST_UPGRADE_DIR="/usr/share/post-upgrade" POST_UPGRADE_NET_SCHEDULED="/data/.post-upgrade-net-scheduled" POST_UPGRADE_APP_SCHEDULED="/data/.post-upgrade-app-scheduled" FLASH_REBOOT_STARTED_FILE="/data/.fwupdate/flash_reboot_started" LOG="/var/log/post-upgrade.log" test -n "${OS_VERSION}" || source /etc/init.d/base # Ensure the fwupdate reboot flag is cleared rm -f ${FLASH_REBOOT_STARTED_FILE} hash=$(md5sum ${VERSION_FILE} 2>/dev/null | cut -d ' ' -f 1) sys_hash=$(md5sum ${SYS_VERSION_FILE} 2>/dev/null | cut -d ' ' -f 1) test "${hash}" == "${sys_hash}" && exit 0 test -d ${POST_UPGRADE_DIR} || exit 0 function version_gt() { # Tells if version in $1 > version in $2. v1=$1 v2=$2 # Trim trailing version components so that both versions are of same length. IFS=. v1=(${v1}); unset IFS IFS=. v2=(${v2}); unset IFS while [[ ${#v1[@]} -gt ${#v2[@]} ]]; do unset v1[-1] done while [[ ${#v2[@]} -gt ${#v1[@]} ]]; do unset v2[-1] done v1=$(echo ${v1[@]} | tr ' ' '.') v2=$(echo ${v2[@]} | tr ' ' '.') if [[ "${v1}" != "${v2}" ]] && [[ $(echo -e "${v1}\n${v2}" | semver-sort 2>/dev/null | head -n 1) == "${v2}" ]]; then return 0 else return 1 fi } function run_post_upgrade() { version="$(source ${VERSION_FILE} 2>/dev/null && echo ${OS_VERSION})" sys_version="$(source ${SYS_VERSION_FILE} 2>/dev/null && echo ${OS_VERSION})" echo "---- post-upgrade from ${version} to ${sys_version} ----" >> ${LOG} echo -n > ${POST_UPGRADE_NET_SCHEDULED} echo -n > ${POST_UPGRADE_APP_SCHEDULED} versions=$(ls -1 ${POST_UPGRADE_DIR} | rev | cut -d '.' -f 2-100 | rev) for v in ${versions}; do # Skip post-upgrade* scripts as they are treated separately. if [[ ${v} == post-upgrade* ]]; then continue fi # Don't run scripts for previous (or current) versions. if [[ -n "${version}" ]] && ! version_gt ${v} ${version}; then continue fi if [[ ${v} == *-net ]]; then # scripts that require network echo "${POST_UPGRADE_DIR}/${v}.sh" >> ${POST_UPGRADE_NET_SCHEDULED} continue fi if [[ ${v} == *-app ]]; then # scripts that will be executed right before apps start echo "${POST_UPGRADE_DIR}/${v}.sh" >> ${POST_UPGRADE_APP_SCHEDULED} continue fi msg_begin "Running post-upgrade script for version ${v}" ${POST_UPGRADE_DIR}/${v}.sh >> ${LOG} 2>&1 test $? == 0 && msg_done || msg_fail done if [[ -x "${POST_UPGRADE_DIR}/post-upgrade.sh" ]]; then msg_begin "Running common post-upgrade script" ${POST_UPGRADE_DIR}/post-upgrade.sh >> ${LOG} 2>&1 test $? == 0 && msg_done || msg_fail fi } case "$1" in start) run_post_upgrade cp ${SYS_VERSION_FILE} ${VERSION_FILE} ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S15rngd ================================================ #!/bin/bash PROG="/usr/sbin/rngd" test -f ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base start() { msg_begin "Starting rngd" ${PROG} -q &>/dev/null test $? == 0 && msg_done || msg_fail } stop() { msg_begin "Stopping rngd" killall -q $(basename ${PROG}) msg_done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S30dbus ================================================ #!/bin/bash SYS_BTCONF="/etc/bluetooth.conf" BOOT_BTCONF="/boot/bluetooth.conf" BTCONF="/data/etc/bluetooth.conf" CMCONF="/etc/connman/main.conf" PROG="/usr/bin/dbus-daemon" PROG_UG="/usr/bin/dbus-uuidgen" PROG_UA="/usr/bin/udevadm" test -x ${PROG} || exit 0 # dbus is currently only used by bluez and connman test -s "${BTCONF}" || test -s "${BOOT_BTCONF}" || test -s "${SYS_BTCONF}" || test -s "${CMCONF}" || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base start() { mkdir -p /tmp/dbus mkdir -p /var/lib/dbus msg_begin "Starting dbus" ${PROG_UG} --ensure ${PROG} --system test $? == 0 && msg_done || msg_fail } stop() { msg_begin "Stopping dbus" ${PROG_UA} control --stop-exec-queue killall -q $(basename ${PROG}) test $? == 0 && msg_done || msg_fail rm -f /var/run/messagebus.pid } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S31ifalias ================================================ #!/bin/bash SYS_CONF="/etc/ifalias.conf" BOOT_CONF="/boot/ifalias.conf" CONF="/data/etc/ifalias.conf" test -n "${OS_VERSION}" || source /etc/init.d/base start() { msg_begin "Renaming network interfaces" test -s "${SYS_CONF}" && source "${SYS_CONF}" test -s "${CONF}" && source "${CONF}" test -s "${BOOT_CONF}" && source "${BOOT_CONF}" ifaces=$(ls /sys/class/net 2>/dev/null) test -z "${ifaces}" && return for iface in /sys/class/net/*; do iface=$(basename ${iface}) test -z "${!iface}" && continue ip link set ${iface} name ${!iface} done msg_done } case "$1" in start) start ;; stop) ;; *) echo "Usage: $0 {start}" exit 1 esac ================================================ FILE: board/common/overlay/etc/init.d/S35wifi ================================================ #!/bin/bash SYS_CONF="/etc/wpa_supplicant.conf" BOOT_CONF="/boot/wpa_supplicant.conf" CONF="/data/etc/wpa_supplicant.conf" SYS_CONF1="/etc/wpa_supplicant1.conf" BOOT_CONF1="/boot/wpa_supplicant1.conf" CONF1="/data/etc/wpa_supplicant1.conf" LOG="/var/log/wpa_supplicant.log" LOG1="/var/log/wpa_supplicant1.log" PROG="/usr/sbin/wpa_supplicant" DRIVER=nl80211,wext NETWATCH_CONF="/etc/netwatch.conf" CONNMAN_CONF="/etc/connman/main.conf" test -x ${PROG} || exit 0 test -s "${CONNMAN_CONF}" && exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base source ${NETWATCH_CONF} prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} prepare_conf ${CONF1} ${SYS_CONF1} ${BOOT_CONF1} test -s "${CONF}" || test -s "${CONF1}" || exit 0 test -n "${OS_WLAN}" && ssid=$(cat ${CONF} 2>/dev/null | grep ssid | grep -v scan_ssid | cut -d '"' -f 2) test -n "${OS_WLAN1}" && ssid1=$(cat ${CONF1} 2>/dev/null | grep ssid | grep -v scan_ssid | cut -d '"' -f 2) test -n "${ssid}" || test -n "${ssid1}" || exit 0 test "${OS_NETWORKLESS}" == "true" && exit 0 test -n "${OS_WLAN}" || test -n "${OS_WLAN1}" || exit 0 connected() { # $1 - index index=$1 test "${index}" == 0 && index= iface_var=OS_WLAN${index} ssid_var=ssid${index} if [[ -n "${!iface_var}" ]] && [[ -n "${!ssid_var}" ]]; then ip link show dev ${!iface_var} 2>&1 | grep LOWER_UP &> /dev/null || return 1 fi } watch() { # $1 - index index=$1 count=0 while true; do sleep 5 if connected ${index}; then count=0 else if [[ ${count} -lt ${LINK_WATCH_TIMEOUT} ]]; then count=$((${count} + 5)) logger -t wifi "disconnected" else panic action wifi "disconnected for ${LINK_WATCH_TIMEOUT} seconds" fi fi done } start() { # $1 - index index=$1 test "${index}" == 0 && index= iface_var=OS_WLAN${index} conf_var=CONF${index} log_var=LOG${index} test -n "${OS_COUNTRY}" && iw reg set ${OS_COUNTRY} msg_begin "Starting wpa_supplicant on ${!iface_var}" rfkill unblock wlan &>/dev/null # wait up to 5 seconds for interface count=0 while ! ifconfig ${!iface_var} >/dev/null 2>&1; do sleep 1 count=$((${count} + 1)) if [[ ${count} -ge 5 ]]; then msg_fail "no device" return 1 fi done module=$(basename $(readlink /sys/class/net/${!iface_var}/device/driver/module 2>/dev/null) 2>/dev/null) iwconfig ${!iface_var} power off &> /dev/null iw ${!iface_var} set power_save off &> /dev/null opts="-i${!iface_var} -c${!conf_var} -D${DRIVER} -B" if [[ ${OS_DEBUG} == "true" ]]; then opts+=" -dd" fi ${PROG} ${opts} &>> ${!log_var} count=0 while true; do sleep 1 if connected ${index}; then break fi if [[ ${count} -gt ${LINK_WATCH_TIMEOUT} ]] || ! pidof $(basename ${PROG}) > /dev/null; then test -n "${module}" && msg_fail "failed (${module})"|| msg_fail return 1 fi count=$((${count} + 1)) done if [[ "${LINK_WATCH}" == "true" ]]; then watch ${index} & fi test -n "${module}" && msg_done "done (${module})"|| msg_done } stop() { # $1 - index index=$1 test "${index}" == 0 && index= iface_var=OS_WLAN${index} msg_begin "Stopping wpa_supplicant on ${!iface_var}" killall -q $(basename ${PROG}) ps | grep wifi | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill msg_done } case "$1" in start) test -n "${OS_WLAN}" && test -n "${ssid}" && start 0 test -n "${OS_WLAN1}" && test -n "${ssid1}" && start 1 ;; stop) test -n "${OS_WLAN}" && test -n "${ssid}" && stop 0 test -n "${OS_WLAN1}" && test -n "${ssid1}" && stop 1 ;; *) echo "Usage: $0 {start|stop}" exit 1 esac # continue after an unsuccessfull wifi start # as we may still have an ethernet connection available exit 0 ================================================ FILE: board/common/overlay/etc/init.d/S36ppp ================================================ #!/bin/bash SYS_CONF="/etc/ppp/default" BOOT_CONF="/boot/ppp" CONF="/data/etc/ppp" PROG="/usr/sbin/pppd" PROVIDER="mobile" NETWATCH_CONF="/etc/netwatch.conf" CONNMAN_CONF="/etc/connman/main.conf" test -x ${PROG} || exit 0 test -s "${CONNMAN_CONF}" && exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} test -e ${CONF}/modem || exit 0 test -e ${CONF}/apn || exit 0 source ${NETWATCH_CONF} test "${OS_NETWORKLESS}" == "true" && exit 0 connected() { ifconfig | grep ${OS_PPP} &>/dev/null && return 0 || return 1 } watch() { count=0 while true; do sleep 5 if connected; then count=0 else if [[ ${count} -lt ${LINK_WATCH_TIMEOUT} ]]; then count=$((${count} + 5)) logger -t ppp "disconnected" else panic action ppp "disconnected for ${LINK_WATCH_TIMEOUT} seconds" fi fi done } udev_trigger_add() { for ((i = 0; i < $1; i++)); do /sbin/udevadm trigger --type=devices --action=add done } start() { test -e ${CONF}/auth || touch ${CONF}/auth test -e ${CONF}/extra || touch ${CONF}/extra test -e ${CONF}/pin || touch ${CONF}/pin mknod /dev/ppp c 108 0 &>/dev/null msg_begin "Starting pppd" # wait for modem modem=$(head -n 1 ${CONF}/modem) if ! [[ -e /dev/${modem} ]]; then udev_trigger_add 4 & fi count=0 while true; do if [[ -e /dev/${modem} ]] || [[ ${count} -gt ${LINK_WATCH_TIMEOUT} ]]; then break fi count=$((${count} + 1)) sleep 1 done if ! [[ -e /dev/${modem} ]]; then msg_fail "modem /dev/${modem} not present" return fi ${PROG} call ${PROVIDER} count=0 while true; do sleep 1 if connected; then break fi if [[ ${count} -gt ${LINK_WATCH_TIMEOUT} ]] || ! pidof $(basename ${PROG}) > /dev/null; then msg_fail return fi count=$((${count} + 1)) done if [[ "${LINK_WATCH}" == "true" ]]; then watch & fi msg_done } stop() { msg_begin "Stopping pppd" killall -q $(basename ${PROG}) ps | grep ppp | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill msg_done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S37bluetooth ================================================ #!/bin/bash SYS_CONF="/etc/bluetooth.conf" BOOT_CONF="/boot/bluetooth.conf" CONF="/data/etc/bluetooth.conf" RUN_CONF="/var/lib/bluetooth.conf" ADAPTER="hci0" ADAPTER_PATH="/sys/class/bluetooth/${ADAPTER}" ADAPTER_TIMEOUT=10 PROG="/usr/libexec/bluetooth/bluetoothd" PROG_CTL="/usr/bin/bluetoothctl" PROG_BDADDR="/usr/libexec/bdaddr" DATA_DIR="/var/lib/bluetooth" RUN_DATA_DIR="/data/bluetooth" NO_ON_BOARD_BT="/tmp/.no_on_board_bt" # used by RPi to explicitly indicate that no on-board BT was detected test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} test -s "${CONF}" || exit 0 function configure() { mkdir -p ${RUN_DATA_DIR} ln -sf ${RUN_DATA_DIR} ${DATA_DIR} cp ${CONF} ${RUN_CONF} # if no specific name configured, use hostname if ! grep -E 'Name\s*=' ${RUN_CONF} &>/dev/null; then sed -ri "s/(\[General\])/\1\nName = $(hostname)/" ${RUN_CONF} fi } function ensure_addr() { # Some adapters may come with configured address AA:AA:AA:AA:AA:AA. # We use the serial number and ETH MAC address to build a BT address. if [[ -x ${PROG_BDADDR} ]] && grep -qiE 'AA:AA:AA:AA:AA:AA' /sys/class/bluetooth/${ADAPTER}/address; then serial_number=$(cat /proc/device-tree/serial-number | cut -c9-) b1=$(echo ${serial_number} | cut -c3-4) b2=$(echo ${serial_number} | cut -c5-6) b3=$(echo ${serial_number} | cut -c7-8) vendor_part=$(cat /sys/class/net/${OS_ETH}/address | cut -c1-8) addr=$(printf "${vendor_part}:%02x:%02x:%02x" $((0x${b3} ^ 0xAA)) $((0x${b2} ^ 0xAA)) $((0x${b1} ^ 0xAA))) # Temporarily start `bluetoothd` so we can use `bdaddr`. ${PROG} &>/dev/null & sleep 1 # Actually set address using `bdaddr`. ${PROG_BDADDR} -r -i ${ADAPTER} ${addr} >/dev/null # `bluetoothd` needs to be restarted a couple of times. killall -q $(basename ${PROG}) sleep 1 ${PROG} &>/dev/null & sleep 1 killall -q $(basename ${PROG}) fi } function watch_adapter() { count=0 while true; do sleep 60 output=$(timeout 1 bluetoothctl pairable on 2>/dev/null) if [[ -n "${output}" ]] && [[ $? == 0 ]]; then count=0 else if [[ ${count} -lt 5 ]]; then count=$((count + 1)) logger -t bluetooth "bluetooth adapter not responding" else panic action bluetooth "bluetooth adapter not responding" fi fi done } function start() { msg_begin "Configuring bluetooth" # adapter explicitly marked as unavailable from previous boot steps if [[ -f "${NO_ON_BOARD_BT}" ]]; then msg_fail "no adapter" return 1 fi # wait for adapter to be reported by OS count=0 while ! test -e ${ADAPTER_PATH}; do sleep 1 count=$((count + 1)) if [[ ${count} -ge ${ADAPTER_TIMEOUT} ]]; then msg_fail "no adapter" return 1 fi done if configure; then msg_done else msg_fail return 1 fi rfkill unblock bluetooth &>/dev/null ensure_addr msg_begin "Starting bluetoothd" ${PROG} &>/dev/null & # wait for adapter to be reported by bluetoothctl count=0 while test -z "$(${PROG_CTL} list 2>/dev/null)"; do sleep 1 count=$((count + 1)) if [[ ${count} -ge ${ADAPTER_TIMEOUT} ]]; then msg_fail "no adapter" return 1 fi done msg_done # if DiscoverableTimeout is set to 0, make adapter discoverable from boot time if grep -E '^DiscoverableTimeout\s*=\s*0$' ${RUN_CONF} &>/dev/null; then sleep 1 ${PROG_CTL} discoverable on >/dev/null fi # some adapters must be explicitly powered on ${PROG_CTL} power on >/dev/null watch_adapter & } function stop() { msg_begin "Stopping bluetoothd" killall -q $(basename ${PROG}) ps | grep bluetooth | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill msg_done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0 ================================================ FILE: board/common/overlay/etc/init.d/S39factoryreset ================================================ #!/bin/bash test -n "${OS_VERSION}" || source /etc/init.d/base test -n "${OS_FACTORY_RESET_GPIO}" || test -n "${OS_FACTORY_RESET_INPUT}" || exit 0 OS_FACTORY_RESET_HOLD_SECONDS=${OS_FACTORY_RESET_HOLD_SECONDS:-10} OS_FACTORY_RESET_LEVEL=${OS_FACTORY_RESET_LEVEL:-1} INPUT_VALUE_FILE=/tmp/.reset_button_input function reset_factory_defaults() { test -x /usr/libexec/before-factory-reset && /usr/libexec/before-factory-reset sync source /tmp/disk_info echo -e "d 3 w" | /sbin/fdisk ${DISK_DEV} &>/dev/null sync test -x /usr/libexec/after-factory-reset && /usr/libexec/after-factory-reset /sbin/reboot } function get_button_value() { if [[ -n "${OS_FACTORY_RESET_GPIO}" ]]; then gpio.sh ${OS_FACTORY_RESET_GPIO} elif [[ -s "${INPUT_VALUE_FILE}" ]]; then cat ${INPUT_VALUE_FILE} else expr ${OS_FACTORY_RESET_LEVEL} - 1 fi } function read_input() { value=$(od -N 32 -v -t x2 /dev/input/${OS_FACTORY_RESET_INPUT} | grep -E "^0000000 " | cut -d ' ' -f 8) printf "%d" "${value:-0}" } function watch_input() { expr ${OS_FACTORY_RESET_LEVEL} - 1 > ${INPUT_VALUE_FILE} while true; do if value=$(read_input); then echo ${value} > ${INPUT_VALUE_FILE} else sleep 1 fi done } function watch() { count=0 while true; do sleep 1 if [[ $(get_button_value) == ${OS_FACTORY_RESET_LEVEL} ]]; then count=$((count + 1)) logger -t factory-reset "button pressed (count=${count})" else if [[ ${count} -gt 0 ]]; then logger -t factory-reset "button released" fi count=0 fi if [[ ${count} -ge ${OS_FACTORY_RESET_HOLD_SECONDS} ]]; then logger -t factory-reset "resetting to factory defaults" reset_factory_defaults break fi done } function start() { msg_begin "Starting factory-reset listener" watch & test -n "${OS_FACTORY_RESET_INPUT}" && watch_input & msg_done } function stop() { msg_begin "Stopping factory-reset listener" ps | grep factoryreset | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill msg_done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0 ================================================ FILE: board/common/overlay/etc/init.d/S40network ================================================ #!/bin/bash DH_CONF="/var/cache/dhclient.conf" NETWATCH_CONF="/etc/netwatch.conf" SYS_STATIC_CONF="/etc/static_ip.conf" BOOT_STATIC_CONF="/boot/static_ip.conf" STATIC_CONF="/data/etc/static_ip.conf" SYS_INTERFACES_CONF="/etc/network/interfaces" BOOT_INTERFACES_CONF="/boot/network/interfaces" INTERFACES_CONF="/data/etc/network/interfaces" CP_CONF="/etc/captive-portal.conf" CONNMAN_CONF="/etc/connman/main.conf" LINK_NEGO_TIMEOUT=10 test -s "${CONNMAN_CONF}" && exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base source ${NETWATCH_CONF} source ${CP_CONF} prepare_conf ${STATIC_CONF} ${SYS_STATIC_CONF} ${BOOT_STATIC_CONF} test -r ${STATIC_CONF} && source ${STATIC_CONF} prepare_conf ${INTERFACES_CONF} ${SYS_INTERFACES_CONF} ${BOOT_INTERFACES_CONF} mkdir -p /var/lib/dhcp function watch_eth() { count=0 while true; do sleep 5 if mii-tool ${OS_ETH} 2>/dev/null | grep -q "link ok"; then count=0 else if [[ ${count} -lt ${LINK_WATCH_TIMEOUT} ]]; then count=$((${count} + 5)) logger -t network "ethernet disconnected" else panic action network "ethernet disconnected for ${LINK_WATCH_TIMEOUT} seconds" fi fi done } function watch_ip() { iface=$1 count=0 while true; do sleep 5 if ip addr show dev ${iface} | grep inet &>/dev/null; then count=0 else if [[ ${count} -lt ${IP_WATCH_TIMEOUT} ]]; then count=$((${count} + 5)) logger -t network "${iface} has no IP address" else panic action network "${iface} had no IP address for ${IP_WATCH_TIMEOUT} seconds" fi fi done } function start_lo() { if [[ -r ${INTERFACES_CONF} ]] && grep -q "^iface lo" ${INTERFACES_CONF}; then ifup -i ${INTERFACES_CONF} lo 2>&1 | logger -t network else ifconfig lo up fi } function start_wlan() { # $1 - index index=$1 test "${index}" == 0 && index= iface_var=OS_WLAN${index} iface_upper=$(tr a-z A-Z <<< ${!iface_var}) static_ip_var=STATIC_IP_${iface_upper} msg_begin "Configuring wireless network on ${!iface_var}" if ! ifconfig ${!iface_var} &>/dev/null; then msg_fail "no device" return 1 fi if [[ "$(cat /sys/class/net/${!iface_var}/carrier 2>/dev/null)" != 1 ]]; then msg_fail "no link" return 1 fi if [[ -r ${INTERFACES_CONF} ]] && grep -q "^iface ${!iface_var}" ${INTERFACES_CONF}; then ifup -i ${INTERFACES_CONF} ${!iface_var} 2>&1 | logger -t network test ${PIPESTATUS[0]} == 0 && msg_done || msg_fail else if [[ -n "${STATIC_IP}" ]]; then msg_done ${STATIC_IP} ifconfig ${!iface_var} ${STATIC_IP} up STATIC_IP="" # won't be used again elif [[ -n "${!static_ip_var}" ]]; then msg_done ${!static_ip_var} ifconfig ${!iface_var} ${!static_ip_var} up else msg_done dhcp cp ${DH_CONF} ${DH_CONF}.${!iface_var} dhclient -cf ${DH_CONF}.${!iface_var} ${!iface_var} fi fi if [[ "${IP_WATCH}" == "true" ]] && ip addr show dev ${!iface_var} | grep inet &>/dev/null; then watch_ip ${!iface_var} & fi } function start_eth() { msg_begin "Configuring wired network" iface_upper=$(tr a-z A-Z <<< ${OS_ETH}) static_ip_var=STATIC_IP_${iface_upper} # wait for driver w=3 count=0 while ! ifconfig ${OS_ETH} up >/dev/null 2>&1; do sleep 1 count=$((${count} + 1)) if [[ ${count} -ge ${w} ]]; then msg_done "no device" return 1 fi done # wait for link test "${LINK_WATCH}" == "true" || LINK_NEGO_TIMEOUT=5 count=0 while ! mii-tool ${OS_ETH} 2>/dev/null | grep -q "link ok"; do sleep 1 count=$((${count} + 1)) if [[ ${count} -ge ${LINK_NEGO_TIMEOUT} ]]; then msg_done "no link" return 1 fi done if [[ -r ${INTERFACES_CONF} ]] && grep -q "^iface ${OS_ETH}" ${INTERFACES_CONF}; then ifup -i ${INTERFACES_CONF} ${OS_ETH} 2>&1 | logger -t network test ${PIPESTATUS[0]} == 0 && msg_done || msg_fail else if [[ -n "${STATIC_IP}" ]]; then msg_done ${STATIC_IP} ifconfig ${OS_ETH} ${STATIC_IP} up STATIC_IP="" # won't be used again elif [[ -n "${!static_ip_var}" ]]; then msg_done ${!static_ip_var} ifconfig ${OS_ETH} ${!static_ip_var} up else msg_done dhcp cp ${DH_CONF} ${DH_CONF}.${OS_ETH} dhclient -cf ${DH_CONF}.${OS_ETH} ${OS_ETH} fi fi if [[ "${LINK_WATCH}" == "true" ]]; then watch_eth & fi if [[ "${IP_WATCH}" == "true" ]] && ip addr show dev ${OS_ETH} | grep inet &>/dev/null; then watch_ip ${OS_ETH} & fi } function dhclient_reduce_request() { # Disables requesting gateway, DNS, etc, strictly configuring the interface. grep -q request ${DH_CONF} || echo "request subnet-mask, broadcast-address, time-offset, interface-mtu;" >> ${DH_CONF} } function start() { hostname=$(hostname) echo "send host-name = \"${hostname}\";" > ${DH_CONF} # If we've got static settings for gateway and DNS server, ignore corresponding DHCP settings test -n "${STATIC_GW}" && test -n "${STATIC_DNS}" && dhclient_reduce_request start_lo test "${OS_NETWORKLESS}" == "true" && return 0 ssid=$(cat /data/etc/wpa_supplicant.conf 2>&1 | grep ssid | grep -v scan_ssid | cut -d '"' -f 2) ssid1=$(cat /data/etc/wpa_supplicant1.conf 2>&1 | grep ssid | grep -v scan_ssid | cut -d '"' -f 2) test -n "${OS_WLAN}" -a -n "${ssid}" && start_wlan 0 && wlan_ok="ok" && dhclient_reduce_request test -n "${OS_WLAN1}" -a -n "${ssid1}" && start_wlan 1 && wlan_ok="ok" && dhclient_reduce_request test -n "${OS_PPP}" -a -r /data/etc/ppp/modem && ifconfig | grep ${OS_PPP} &>/dev/null && ppp_ok="ok" && dhclient_reduce_request def_route_ok=$(ip route get 1.1.1.1 &>/dev/null && echo "ok") if [[ -n "${OS_ETH}" ]]; then # if wifi or ppp link ok, start eth in background if [[ "${wlan_ok}" == "ok" ]] || [[ "${ppp_ok}" == "ok" ]] && [[ "${def_route_ok}" == "ok" ]]; then start_eth &>/dev/null & else start_eth && eth_ok="ok" && dhclient_reduce_request fi fi if [[ "${eth_ok}" != "ok" ]] && [[ "${wlan_ok}" != "ok" ]] && [[ "${ppp_ok}" != "ok" ]]; then panic=false if [[ "${LINK_WATCH}" == true ]]; then if [[ ${CAPTIVE_PORTAL_ENABLED} == false ]] || \ [[ -z "${CAPTIVE_PORTAL_CONFIGURED_CMD}" ]] || \ ${CAPTIVE_PORTAL_CONFIGURED_CMD} &>/dev/null; then panic=true fi fi if [[ ${panic} == true ]]; then panic action network "no network connection available" return 1 else logger -t network "no network connection available" return 0 fi fi if [[ -r ${INTERFACES_CONF} ]]; then # ifup doesn't set the DNS server, so we have to set it manually STATIC_DNS=$(cat ${INTERFACES_CONF} | grep dns-nameserver | tr -s ' ' | cut -d ' ' -f 3 | head -n 11) if [[ -n "${STATIC_DNS}" ]]; then msg_begin "Setting static DNS server to ${STATIC_DNS}" echo "nameserver ${STATIC_DNS}" > /etc/resolv.conf test $? == 0 && msg_done || msg_fail fi # Make sure all auto interfaces are brought up ifup -i ${INTERFACES_CONF} -a >/dev/null else if [[ -n "${STATIC_GW}" ]]; then msg_begin "Setting static gateway to ${STATIC_GW}" ip route add default via ${STATIC_GW} &>/dev/null || ip route change default via ${STATIC_GW} &>/dev/null test $? == 0 && msg_done || msg_fail fi if [[ -n "${STATIC_DNS}" ]]; then msg_begin "Setting static DNS server to ${STATIC_DNS}" echo "nameserver ${STATIC_DNS}" > /etc/resolv.conf test $? == 0 && msg_done || msg_fail fi fi # re-evalutate default route, as it might have changed with start_eth or static IP def_route_ok=$(ip route get 1.1.1.1 &>/dev/null && echo "ok") if [[ "${def_route_ok}" != "ok" ]]; then panic=false if [[ "${IP_WATCH}" == true ]]; then if [[ ${CAPTIVE_PORTAL_ENABLED} == false ]] || \ [[ -z "${CAPTIVE_PORTAL_CONFIGURED_CMD}" ]] || \ ${CAPTIVE_PORTAL_CONFIGURED_CMD} &>/dev/null; then panic=true fi fi if [[ ${panic} == true ]]; then panic action network "no default route" return 1 else logger -t network "no default route" return 0 fi fi } function stop() { msg_begin "Stopping network" if [[ -r ${INTERFACES_CONF} ]]; then ifdown -i ${INTERFACES_CONF} -a 2>&1 | logger -t network fi ps | grep S40network | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill killall dhclient &>/dev/null msg_done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S41netwatch ================================================ #!/bin/bash CONF="/etc/netwatch.conf" CP_CONF="/etc/captive-portal.conf" test -s "${CONF}" || exit 0 source "${CONF}" source "${CP_CONF}" test -n "${OS_VERSION}" || source /etc/init.d/base test "${OS_NETWORKLESS}" == "true" && exit 0 function gw_ok() { def_route=$(ip route | grep default | head -n 1) test -n "${def_route}" || return 1 # no default route grep -q via <<< ${def_route} || return 0 # default route w/o via gw=$(cut -d ' ' -f 3 <<< ${def_route}) test -n "${gw}" || return 1 # no gateway ping -c 2 -W 2 -w 3 ${gw} &>/dev/null } function gw_watch() { count=0 GW_WATCH_RETRIES=$((${GW_WATCH_RETRIES} - 1)) while true; do sleep ${GW_WATCH_INTERVAL} if gw_ok 2>&1; then count=0 else if [[ ${count} -lt ${GW_WATCH_RETRIES} ]]; then logger -t netwatch "gateway not reachable" count=$((${count} + 1)) continue else panic action netwatch "gateway not reachable" fi fi done } function net_watch() { sleep ${NET_WATCH_DELAY} count=0 NET_WATCH_RETRIES=$((${NET_WATCH_RETRIES} - 1)) while true; do sleep ${NET_WATCH_INTERVAL} if nc -z -w ${NET_WATCH_TIMEOUT} ${NET_WATCH_HOST} ${NET_WATCH_PORT} /dev/null 2>&1; then count=0 else if [[ ${count} -lt ${NET_WATCH_RETRIES} ]]; then logger -t netwatch "cannot connect to ${NET_WATCH_HOST}:${NET_WATCH_PORT}" count=$((${count} + 1)) continue else panic action netwatch "cannot connect to ${NET_WATCH_HOST}:${NET_WATCH_PORT}" fi fi done } function start() { if [[ ${CAPTIVE_PORTAL_ENABLED} == true ]] && \ [[ -n "${CAPTIVE_PORTAL_CONFIGURED_CMD}" ]] && \ ! eval ${CAPTIVE_PORTAL_CONFIGURED_CMD} &>/dev/null; then exit 0 fi msg_begin "Starting netwatch" if [[ -n "${NET_WATCH_HOST}" ]] && [[ -n "${NET_WATCH_PORT}" ]]; then net_watch & fi if [[ "${GW_WATCH}" == true ]]; then gw_watch & fi msg_done } function stop() { msg_begin "Stopping netwatch" ps | grep $(basename $0) | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill msg_done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S42connman ================================================ #!/bin/bash CONF="/etc/connman/main.conf" PROG="/usr/sbin/connmand" PROG_WO="/usr/sbin/connmand-wait-online" LOG="/var/log/connman.log" LIB_DIR="/var/lib/connman" RUN_DIR="/var/run/connman" ONLINE_TIMEOUT=20 ONLINE_TIMEOUT_INITIAL=20 ONLINE_TIMEOUT_CHECK=5 ONLINE_HANDLER_SCRIPT="/usr/libexec/connman-online-handler" test -x ${PROG} || exit 0 test -s "${CONF}" || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base watch_online() { is_online=false while true; do ${PROG_WO} --timeout=${ONLINE_TIMEOUT_CHECK} &>/dev/null if [[ $? == 0 ]]; then if [[ ${is_online} == false ]]; then ${ONLINE_HANDLER_SCRIPT} true is_online=true fi else if [[ ${is_online} == true ]]; then ${ONLINE_HANDLER_SCRIPT} false is_online=false fi fi sleep 1 done } start() { msg_begin "Starting connman" mkdir -p ${RUN_DIR} ln -sf ${RUN_DIR}/resolv.conf /tmp/resolv.conf ifconfig lo up ${PROG} -n -r &> ${LOG} & if grep -qE '(Favorite)|(AutoConnect)=true' ${LIB_DIR}/*/settings 2>/dev/null; then timeout=${ONLINE_TIMEOUT} else timeout=${ONLINE_TIMEOUT_INITIAL} fi test -x ${ONLINE_HANDLER_SCRIPT} && watch_online &> /var/log/online-handler.log & ${PROG_WO} --timeout=${timeout} test $? == 0 && msg_done || msg_fail } stop() { msg_begin "Stopping connman" ps | grep connman | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill msg_done } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: board/common/overlay/etc/init.d/S43firewall ================================================ #!/bin/bash SYS_CONF="/etc/firewall.sh" USER_CONF="/data/etc/firewall.sh" BOOT_CONF="/boot/firewall.sh" test -n "${OS_VERSION}" || source /etc/init.d/base test -s "${SYS_CONF}" || test -s "${USER_CONF}" || test -s "${BOOT_CONF}" || exit 0 start() { msg_begin "Starting firewall" ok=true if [[ -s ${SYS_CONF} ]]; then bash ${SYS_CONF} || ok=false fi if [[ -s ${USER_CONF} ]]; then bash ${USER_CONF} || ok=false fi if [[ -s ${BOOT_CONF} ]]; then bash ${BOOT_CONF} || ok=false fi test ${ok} == true && msg_done || msg_fail } case "$1" in start) start ;; stop) ;; *) echo "Usage: $0 {start}" exit 1 esac ================================================ FILE: board/common/overlay/etc/init.d/S44hostapd ================================================ #!/bin/bash SYS_CONF="/etc/hostapd.conf" BOOT_CONF="/boot/hostapd.conf" USER_CONF="/data/etc/hostapd.conf" CP_CONF="/etc/captive-portal.conf" LOG="/var/log/hostapd.log" PROG="/usr/sbin/hostapd" DNSMASQ_LOG="/var/log/dnsmasq.log" INPUT_VALUE_FILE=/tmp/.captive_portal_button_input DNSMASQ_CONF=/var/run/dnsmasq.conf test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base CONF=$(select_conf ${SYS_CONF} ${BOOT_CONF} ${USER_CONF}) test -s "${CONF}" || exit 0 source ${CP_CONF} function running() { killall -0 $(basename ${PROG}) &> /dev/null } function get_button_value() { if [[ -n "${CAPTIVE_PORTAL_START_GPIO}" ]]; then gpio.sh ${CAPTIVE_PORTAL_START_GPIO} elif [[ -s "${INPUT_VALUE_FILE}" ]]; then cat ${INPUT_VALUE_FILE} else expr ${CAPTIVE_PORTAL_START_LEVEL} - 1 fi } function read_input() { value=$(od -N 32 -v -t x2 /dev/input/${CAPTIVE_PORTAL_START_INPUT} | grep -E "^0000000 " | cut -d ' ' -f 8) printf "%d" "${value:-0}" } function watch_input() { expr ${CAPTIVE_PORTAL_START_LEVEL} - 1 > ${INPUT_VALUE_FILE} while true; do if value=$(read_input); then echo ${value} > ${INPUT_VALUE_FILE} else sleep 1 fi done } function watch_button() { count=0 while true; do sleep 1 if [[ $(get_button_value) == ${CAPTIVE_PORTAL_START_LEVEL} ]]; then count=$((count + 1)) logger -t hostapd "button pressed (count=${count})" else if [[ ${count} -gt 0 ]]; then logger -t hostapd "button released" fi count=0 fi if [[ ${count} -ge ${CAPTIVE_PORTAL_START_HOLD_SECONDS} ]]; then count=0 if ! running; then logger -t hostapd "button held, starting captive portal" start_hostapd elif running; then logger -t hostapd "button held, stopping captive portal" stop_hostapd fi fi done } function network_ok() { ip route | grep -q default } function configure_ifaces() { rfkill unblock wlan &>/dev/null # wait up to 5 seconds for interfaces count=0 ifaces=${OS_WLAN} test -n "${OS_WLAN1}" && ifaces+=" ${OS_WLAN1}" while true; do ok=false for iface in ${ifaces}; do ifconfig ${iface} &>/dev/null && ok=true done test ${ok} == true && break sleep 1 count=$((${count} + 1)) if [[ ${count} -ge 5 ]]; then logger -t hostapd "no AP interfaces" return 1 fi done wifi_ifaces=$(ip link | grep -oE 'wlan[[:digit:]]') ap_ifaces="" for iface in ${wifi_ifaces}; do ip link set ${iface} up ap_iface=ap${iface: -1} if iw dev ${iface} interface add ${ap_iface} type __ap &>/dev/null; then ap_ifaces+="${ap_iface} " fi done logger -t hostapd "configured interfaces: ${ap_ifaces[@]}" } function assign_iface_ip() { hostapd_conf=/var/run/hostapd.conf test -s "${DNSMASQ_CONF}" || return dnsmasq_ip=$(cat ${DNSMASQ_CONF} | grep range | cut -d '=' -f 2 | cut -d '.' -f 1,2,3).1 dnsmasq_iface=$(cat ${DNSMASQ_CONF} | grep interface | cut -d '=' -f 2) hostapd_iface=$(cat ${hostapd_conf} | grep interface | cut -d '=' -f 2) test "${dnsmasq_iface}" == "${hostapd_iface}" || test -z "${dnsmasq_iface}" || return ifconfig ${hostapd_iface} ${dnsmasq_ip} } function after_captive_portal_timeout() { if tail -n 9 ${DNSMASQ_LOG} | grep -q DHCPREQUEST; then logger -t hostapd "client connected within timeout, keeping captive portal on" return fi if [[ ${CAPTIVE_PORTAL_TIMEOUT_REBOOT} == true ]]; then logger -t hostapd "rebooting on timeout" reboot else logger -t hostapd "stopping on timeout" stop_hostapd fi } function start_hostapd() { # Stop wpa_supplicant if running in captive portal mode if [[ ${CAPTIVE_PORTAL_ENABLED} == true ]]; then /etc/init.d/S35wifi stop &>/dev/null panic inhibit fi run_conf=/var/run/hostapd.conf # Replace placeholders eval "echo \"$(cat ${CONF})\"" > ${run_conf} # Determine Wi-Fi driver iface=$(cat ${run_conf} | grep interface | cut -d '=' -f 2) module=$(basename $(readlink /sys/class/net/${iface}/device/driver/module 2>/dev/null) 2>/dev/null) logger -t hostapd "starting on ${iface} with driver ${module}" iwconfig ${iface} power off &> /dev/null iw ${iface} set power_save off &> /dev/null ${PROG} ${run_conf} &> ${LOG} & ( sleep 1 && assign_iface_ip ) & } function stop_hostapd() { killall $(basename ${PROG}) &>/dev/null logger -t hostapd "stopped" } function start() { configure_ifaces if [[ "${CAPTIVE_PORTAL_ENABLED}" == true ]]; then msg_begin "Starting captive-portal" if [[ -n "${CAPTIVE_PORTAL_START_INPUT}" ]]; then watch_input & fi if [[ -n "${CAPTIVE_PORTAL_START_GPIO}" ]] || [[ -n "${CAPTIVE_PORTAL_START_INPUT}" ]]; then watch_button & fi if [[ -n "${CAPTIVE_PORTAL_CONFIGURED_CMD}" ]]; then if eval ${CAPTIVE_PORTAL_CONFIGURED_CMD} &>/dev/null; then logger -t hostapd "unit is configured" msg_done "unit is configured" else logger -t hostapd "not configured, starting" start_hostapd if [[ ${CAPTIVE_PORTAL_TIMEOUT} -gt 0 ]]; then logger -t hostapd "will stop after ${CAPTIVE_PORTAL_TIMEOUT}s" msg_done "timeout mode" sleep ${CAPTIVE_PORTAL_TIMEOUT} && after_captive_portal_timeout &>/dev/null & else logger -t hostapd "will run indefinitely" msg_done "always-on mode" fi fi else msg_done "button mode" fi else msg_begin "Starting hostapd" start_hostapd msg_done fi } function stop() { msg_begin "Stopping hostapd" stop_hostapd ps | grep hostapd | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill msg_done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: board/common/overlay/etc/init.d/S44shownetinfo ================================================ #!/bin/bash test -n "${OS_VERSION}" || source /etc/init.d/base msg_info() { echo " # $1" } show_iface_ip_addr() { addr=$(ip addr show dev $1 2>/dev/null | grep inet | tr -s ' ' | sed -r 's/^\s+//' | \ cut -d ' ' -f 2 | grep -iv fe80 | sed 'N;s/\n/, /') test -n "${addr}" && msg_info "Interface $1 has IP address ${addr}" } show_gateway() { gateway=$(ip route | grep default | cut -d ' ' -f 3) test -n "${gateway}" && msg_info "Default gateway is ${gateway}" } show_dns() { test -r /etc/resolv.conf || return dns=$(cat /etc/resolv.conf | grep nameserver | head -n 1 | cut -d ' ' -f 2) test -n "${dns}" && msg_info "DNS server address is ${dns}" } case "$1" in start) test -n "${OS_ETH}" && show_iface_ip_addr ${OS_ETH} test -n "${OS_WLAN}" && show_iface_ip_addr ${OS_WLAN} test -n "${OS_WLAN1}" && show_iface_ip_addr ${OS_WLAN1} test -n "${OS_PPP}" && show_iface_ip_addr ${OS_PPP} show_gateway show_dns ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit 0 ================================================ FILE: board/common/overlay/etc/init.d/S45dnsmasq ================================================ #!/bin/bash SYS_CONF="/etc/dnsmasq.conf" BOOT_CONF="/boot/dnsmasq.conf" USER_CONF="/data/etc/dnsmasq.conf" CP_CONF="/etc/captive-portal.conf" LOG="/var/log/dnsmasq.log" PROG="/usr/sbin/dnsmasq" test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base CONF=$(select_conf ${SYS_CONF} ${BOOT_CONF} ${USER_CONF}) test -s "${CONF}" || exit 0 source ${CP_CONF} function start() { msg_begin "Starting dnsmasq" run_conf=/var/run/dnsmasq.conf # Replace placeholders eval "echo \"$(cat ${CONF})\"" > ${run_conf} ip=$(cat ${run_conf} | grep range | cut -d '=' -f 2 | cut -d '.' -f 1,2,3).1 iface=$(cat ${run_conf} | grep interface | cut -d '=' -f 2) if [[ "${CAPTIVE_PORTAL_ENABLED}" == true ]]; then echo "address=/#/${ip}" >> ${run_conf} fi ifconfig ${iface} ${ip} ${PROG} -C ${run_conf} --log-facility=${LOG} test $? == 0 && msg_done || msg_fail } function stop() { msg_begin "Stopping dnsmasq" killall -q $(basename ${PROG}) test $? == 0 && msg_done || msg_fail } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: board/common/overlay/etc/init.d/S50date ================================================ #!/bin/bash PROG_DATE="/bin/date" PROG_NTPD="/usr/sbin/chronyd" PROG_SNTP="/usr/bin/sntp" LOG_SNTP="/var/log/sntp.log" SYS_CONF="/etc/date.conf" BOOT_CONF="/boot/date.conf" CONF="/data/etc/date.conf" SYS_NTP_CONF="/etc/ntp.conf" BOOT_NTP_CONF="/boot/ntp.conf" NTP_CONF="/data/etc/ntp.conf" SAVED_DATE_FILE="/var/lib/saved_date" test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} prepare_conf ${NTP_CONF} ${SYS_NTP_CONF} ${BOOT_NTP_CONF} test -s "${CONF}" || exit 0 test "${OS_NETWORKLESS}" == "true" && exit 0 DATE_TIMEOUT=10 DATE_METHOD=sntp DATE_HOST="google.com" DATE_INTERVAL="900" DATE_NTP_SERVER="" source ${CONF} set_current_date_http() { curl_args="-v -s -m ${DATE_TIMEOUT} -H \"Cache-Control: no-cache\" -X GET" url="http://${DATE_HOST}?_=${RANDOM}" date_str=$(curl ${curl_args} ${url} 2>&1 | grep Date | sed -e 's/< Date: //') if [[ -n "${date_str}" ]]; then ${PROG_DATE} -u -D "%a, %d %b %Y %H:%M:%S" -s "${date_str}" > /dev/null logger -t date "current system date/time set to $(date) via HTTP" return 0 else logger -t date "failed to set current system date/time via HTTP" return 1 fi } set_current_date_ntp() { if [[ -n "${DATE_NTP_SERVER}" ]]; then sed -i "s/pool .*/pool ${DATE_NTP_SERVER} iburst/" ${NTP_CONF} fi ${PROG_NTPD} -f ${NTP_CONF} -q -t ${DATE_TIMEOUT} &>/dev/null if [[ $? == 0 ]]; then logger -t date "current system date/time set to $(date) via NTP" return 0 else logger -t date "failed to set current system date/time via NTP" return 1 fi } set_current_date_sntp() { sntp_args="-t ${DATE_TIMEOUT} -K /dev/null -Ss" server=$(cat ${NTP_CONF} | grep pool | head -n 1 | cut -d ' ' -f 2) # Retry command 3 times truncate -s0 ${LOG_SNTP} ok=false for (( i = 0; i < 3; i++ )); do ${PROG_SNTP} ${sntp_args} ${server} &>>${LOG_SNTP} && { ok=true; break; } sleep 1 done if [[ ${ok} == true ]]; then logger -t date "current system date/time set to $(date) via SNTP" return 0 else logger -t date "failed to set current system date/time via SNTP" return 1 fi } start_http() { msg_begin "Setting current date using HTTP" if set_current_date_http; then sleep_interval=${DATE_INTERVAL} msg_done "$(${PROG_DATE})" else sleep_interval=${DATE_TIMEOUT} msg_fail fi msg_begin "Starting http date updater" while true; do sleep ${sleep_interval} if set_current_date_http; then sleep_interval=${DATE_INTERVAL} else sleep_interval=${DATE_TIMEOUT} fi done & msg_done } start_ntp() { if [[ -n "${DATE_NTP_SERVER}" ]]; then sed -i "s/pool .*/pool ${DATE_NTP_SERVER} iburst/" ${NTP_CONF} fi if [[ "${DATE_METHOD}" == "sntp" ]]; then msg_begin "Setting current date using SNTP" set_current_date_sntp test $? == 0 && msg_done "$(${PROG_DATE})" || msg_fail else # assuming ntp msg_begin "Setting current date using NTP" set_current_date_ntp test $? == 0 && msg_done "$(${PROG_DATE})" || msg_fail fi msg_begin "Starting ntpd" ${PROG_NTPD} -f ${NTP_CONF} test $? == 0 && msg_done || msg_fail } stop_http() { msg_begin "Stopping date updater" ps | grep S50date | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill test $? == 0 && msg_done || msg_fail } stop_ntp() { msg_begin "Stopping ntpd" killall -q $(basename ${PROG_NTPD}) test $? == 0 && msg_done || msg_fail } start() { # Load saved date first test -s "${SAVED_DATE_FILE}" && date -s $(cat "${SAVED_DATE_FILE}") -D%s >/dev/null if [[ "${DATE_METHOD}" == "http" ]]; then start_http else # ntp or sntp start_ntp fi echo "system date is $(${PROG_DATE} '+%Y-%m-%d %H:%M:%S')" > /dev/kmsg } stop() { if [[ "${DATE_METHOD}" == "http" ]]; then stop_http else # ntp or sntp stop_ntp fi # Save current date to disk for next time date +%s > ${SAVED_DATE_FILE} } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S51crond ================================================ #!/bin/bash SYS_CONF="/etc/crontabs" CONF="/data/etc/crontabs" PROG="/usr/sbin/crond" test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base start() { msg_begin "Starting crond" if [[ -d ${SYS_CONF} ]]; then ${PROG} -c ${SYS_CONF} fi mkdir -p ${CONF} ${PROG} -c ${CONF} test $? == 0 && msg_done || msg_fail } stop() { msg_begin "Stopping crond" killall -q $(basename ${PROG}) test $? == 0 && msg_done || msg_fail } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0 ================================================ FILE: board/common/overlay/etc/init.d/S52postupgradenet ================================================ #!/bin/bash POST_UPGRADE_DIR="/usr/share/post-upgrade" POST_UPGRADE_NET_SCHEDULED="/data/.post-upgrade-net-scheduled" LOG="/var/log/post-upgrade.log" test -n "${OS_VERSION}" || source /etc/init.d/base test -f ${POST_UPGRADE_NET_SCHEDULED} || exit 0 function run_post_upgrade() { for script in $(cat ${POST_UPGRADE_NET_SCHEDULED}); do msg_begin "Running post-upgrade script ${script}" ${script} >> ${LOG} 2>&1 test $? == 0 && msg_done || msg_fail done if [[ -x "${POST_UPGRADE_DIR}/post-upgrade-net.sh" ]]; then msg_begin "Running common post-upgrade-net script" ${POST_UPGRADE_DIR}/post-upgrade-net.sh >> ${LOG} 2>&1 test $? == 0 && msg_done || msg_fail fi } case "$1" in start) run_post_upgrade rm ${POST_UPGRADE_NET_SCHEDULED} ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S55openvpn ================================================ #!/bin/bash SYS_CONF="/etc/openvpn" BOOT_CONF="/boot/openvpn" CONF="/data/etc/openvpn" LOG="/var/log/openvpn.log" PROG="/usr/sbin/openvpn" NETWATCH_CONF="/etc/netwatch.conf" test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base source ${NETWATCH_CONF} CLIENT_CONF=$(select_conf ${CONF}/client.conf ${BOOT_CONF}/client.conf ${SYS_CONF}/client.conf) test -n "${CLIENT_CONF}" || exit 0 CONF=$(dirname ${CLIENT_CONF}) running() { (killall -0 openvpn && ip link show tun0) &> /dev/null } watch() { sleep ${NET_WATCH_DELAY} count=0 NET_WATCH_RETRIES=$((${NET_WATCH_RETRIES} - 1)) while true; do sleep ${NET_WATCH_INTERVAL} if running; then count=0 else if [[ ${count} -lt ${NET_WATCH_RETRIES} ]]; then logger -t openvpn "dead" count=$((${count} + 1)) continue else panic action openvpn "service dead" break fi fi done } start() { msg_begin "Starting openvpn" modprobe tun &>/dev/null test -x ${CONF}/prepare-conf.sh && ${CONF}/prepare-conf.sh ${CONF} ${PROG} --config ${CONF}/client.conf --cd ${CONF} &>>/var/log/openvpn.log & test $? == 0 && msg_done || msg_fail if [[ "${LINK_WATCH}" == "true" ]]; then watch & fi } stop() { msg_begin "Stopping openvpn" killall $(basename ${PROG}) &>/dev/null ps | grep $(basename ${PROG}) | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill msg_done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: board/common/overlay/etc/init.d/S60dockerd ================================================ #!/bin/bash PROG=/usr/bin/dockerd LOG=/var/log/dockerd.log CONF=/etc/docker/daemon.json RUN_DIR=/run/docker VARLIB_DIR=/var/lib/docker DATA_DIR=/data/docker test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base function start() { msg_begin "Starting docker engine" mkdir -p ${DATA_DIR} test -L ${VARLIB_DIR} || ln -sf ${DATA_DIR} ${VARLIB_DIR} mkdir -p ${RUN_DIR} modprobe fuse &>/dev/null ${PROG} -H unix:///var/run/docker.sock -G root >> ${LOG} 2>&1 & test $? == 0 && msg_done || msg_fail } function stop() { msg_begin "Stopping docker engine" killall -q $(basename ${PROG}) test $? == 0 && msg_done || msg_fail } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S60sshd ================================================ #!/bin/bash SYS_DIR=/etc/ssh USER_DIR=/data/etc/ssh RUN_DIR=/var/run/ssh SYS_CONF="${SYS_DIR}/sshd_config" USER_CONF="${USER_DIR}/sshd_config" CONF="${RUN_DIR}/sshd_config" PROG="/usr/sbin/sshd" PROG_KG="/usr/bin/ssh-keygen" test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base test -s "${SYS_CONF}" || exit 0 start() { # merge user and sys conf files; options in first file take precedence mkdir -p $(dirname ${CONF}) if [[ -s ${USER_CONF} ]]; then cat ${USER_CONF} ${SYS_CONF} > ${CONF} else cp ${SYS_CONF} ${CONF} fi # ensure various dirs existence mkdir -p ${USER_DIR} mkdir -p ${RUN_DIR} # create any missing keys if ! [[ -s ${USER_DIR}/ssh_host_rsa_key ]]; then msg_begin "Generating ssh host keys" for type in rsa dsa ecdsa ed25519; do ssh-keygen -f ${USER_DIR}/ssh_host_${type}_key -N '' -t ${type} >/dev/null done test $? == 0 && msg_done || msg_fail fi # adjust any existing client keys permissions chmod go-rwx ${USER_DIR}/id_rsa* 2>/dev/null # copy system authorized keys, if present if [[ -f /etc/ssh/authorized_keys ]] && ! [[ -e ${USER_DIR}/authorized_keys ]]; then cp /etc/ssh/authorized_keys ${USER_DIR} fi msg_begin "Starting sshd" umask 077 hostname=$(hostname) echo "Welcome to ${hostname}!" > ${RUN_DIR}/sshd_banner sync ${PROG} -f ${CONF} test $? == 0 && msg_done || msg_fail } stop() { msg_begin "Stopping sshd" killall -q $(basename ${PROG}) test $? == 0 && msg_done || msg_fail } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: board/common/overlay/etc/init.d/S61proftpd ================================================ #!/bin/bash CONF="/etc/proftpd.conf" PROG="/usr/sbin/proftpd" test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base test -n "${OS_DEBUG}" || source /etc/init.d/conf test -s "${CONF}" || exit 0 start() { msg_begin "Starting proftpd" mkdir -p /var/run/proftpd touch /var/log/wtmp ${PROG} &>/dev/null test $? == 0 && msg_done || msg_fail } stop() { msg_begin "Stopping proftpd" killall -q $(basename ${PROG}) test $? == 0 && msg_done || msg_fail } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0 ================================================ FILE: board/common/overlay/etc/init.d/S62smb ================================================ #!/bin/bash CONF="/etc/samba/smb.conf" PROG="/usr/sbin/smbd" PROG_N="/usr/sbin/nmbd" test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base test -n "${OS_DEBUG}" || source /etc/init.d/conf test -s "${CONF}" || exit 0 start() { mkdir -p /var/log/samba mkdir -p /var/lib/samba/private msg_begin "Starting smbd" ${PROG} -D test $? == 0 && msg_done || msg_fail msg_begin "Starting nmbd" ${PROG_N} -D test $? == 0 && msg_done || msg_fail } stop() { msg_begin "Stopping smbd" killall -q $(basename ${PROG}) test $? == 0 && msg_done || msg_fail msg_begin "Stopping nmbd" killall -q $(basename ${PROG_N}) test $? == 0 && msg_done || msg_fail } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S70mongod ================================================ #!/bin/bash SYS_CONF="/etc/mongodb.conf" BOOT_CONF="/boot/mongodb.conf" CONF="/data/etc/mongodb.conf" PROG="/usr/bin/mongod" test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} test -s "${CONF}" || exit 0 start() { msg_begin "Starting mongod" db_dir=$(cat ${CONF} | grep dbpath | cut -d '=' -f 2) mkdir -p ${db_dir} ${PROG} -f ${CONF} --fork > /dev/null test $? == 0 && msg_done || msg_fail } stop() { msg_begin "Stopping mongod" killall -q $(basename ${PROG}) test $? == 0 && msg_done || msg_fail } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: board/common/overlay/etc/init.d/S71redis ================================================ #!/bin/bash SYS_CONF="/etc/redis.conf" BOOT_CONF="/boot/redis.conf" CONF="/data/etc/redis.conf" PROG="/usr/bin/redis-server" test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} test -s "${CONF}" || exit 0 start() { msg_begin "Starting redis" db_dir=$(cat ${CONF} | grep -E '^dir' | cut -d ' ' -f 2) test -n "${db_dir}" && mkdir -p ${db_dir} ${PROG} ${CONF} test $? == 0 && msg_done || msg_fail } stop() { msg_begin "Stopping redis" killall -q $(basename ${PROG}) test $? == 0 && msg_done || msg_fail } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: board/common/overlay/etc/init.d/S72postgresql ================================================ #!/bin/bash BOOT_CONF="/boot/postgresql.conf" SYS_CONF="/etc/postgresql.conf" CONF="/data/etc/postgresql.conf" PROG="/usr/bin/pg_ctl" DB_DIR="/var/lib/postgresql" USER="postgres" LOG="/var/log/postgresql.log" DUMP_FILE="/var/lib/postgresql-dump.sql.gz" function run_pg_ctl() { su ${USER} -c "${PROG} $*" } test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} function start() { # Remove postgresql data dir if bin/data version mismatch if [[ -f ${DB_DIR}/PG_VERSION ]]; then data_version=$(cat ${DB_DIR}/PG_VERSION) bin_version=$(${PROG} -V | cut -d ' ' -f 3 | cut -d . -f 1) if [[ "${data_version}" != "${bin_version}" ]]; then msg_begin "Backing up old postgresql data directory" rm -rf ${DB_DIR}.old mv ${DB_DIR} ${DB_DIR}.old msg_done fi fi mkdir -p ${DB_DIR} chown -R ${USER} ${DB_DIR} touch ${LOG} chown ${USER} ${LOG} cd ${DB_DIR} # Initialize data dir if not present fresh= if ! [[ -f ${DB_DIR}/PG_VERSION ]]; then msg_begin "Initializing postgresql data directory" run_pg_ctl initdb -s -D ${DB_DIR} -o \'-E UTF-8 --no-locale\' &>> ${LOG} test $? == 0 && msg_done || msg_fail echo "include_if_exists = '${CONF}'" >> ${DB_DIR}/postgresql.conf fresh=true fi # Start server msg_begin "Starting postgresql" run_pg_ctl start -s -D ${DB_DIR} -l ${LOG} test $? == 0 && msg_done || msg_fail # Restore from dump if present if [[ -f ${DUMP_FILE} ]] && [[ -n "${fresh}" ]]; then msg_begin "Restoring postgresql data from dump" if gzip -t ${DUMP_FILE} &>/dev/null; then # Remove any existing old DB backup directory to make space rm -rf ${DB_DIR}.old if gunzip < ${DUMP_FILE} | psql -U ${USER} &>> ${LOG}; then msg_done rm ${DUMP_FILE} else msg_fail fi else msg_fail "invalid dump file" fi fi } function stop() { msg_begin "Stopping postgresql" run_pg_ctl stop -s -D ${DB_DIR} -m fast &>> ${LOG} test $? == 0 && msg_done || msg_fail } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: board/common/overlay/etc/init.d/S79postupgradeapp ================================================ #!/bin/bash POST_UPGRADE_DIR="/usr/share/post-upgrade" POST_UPGRADE_APP_SCHEDULED="/data/.post-upgrade-app-scheduled" LOG="/var/log/post-upgrade.log" test -n "${OS_VERSION}" || source /etc/init.d/base test -f ${POST_UPGRADE_APP_SCHEDULED} || exit 0 function run_post_upgrade() { for script in $(cat ${POST_UPGRADE_APP_SCHEDULED}); do msg_begin "Running post-upgrade script ${script}" ${script} >> ${LOG} 2>&1 test $? == 0 && msg_done || msg_fail done if [[ -x "${POST_UPGRADE_DIR}/post-upgrade-app.sh" ]]; then msg_begin "Running common post-upgrade-app script" ${POST_UPGRADE_DIR}/post-upgrade-app.sh >> ${LOG} 2>&1 test $? == 0 && msg_done || msg_fail fi } case "$1" in start) run_post_upgrade rm ${POST_UPGRADE_APP_SCHEDULED} ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S80dockercompose ================================================ #!/bin/bash SYS_CONF=/etc/docker-compose.yml BOOT_CONF=/boot/docker-compose.yml USER_CONF=/data/etc/docker-compose.yml SYS_ENV=/etc/docker-compose.env BOOT_ENV=/boot/docker-compose.env USER_ENV=/data/etc/docker-compose.env SYS_ENV_SH=/etc/docker-compose.env.sh BOOT_ENV_SH=/boot/docker-compose.env.sh USER_ENV_SH=/data/etc/docker-compose.env.sh DOCKER=/usr/bin/docker LOG=/var/log/docker-compose.log PROJ=system RUN_DIR=/var/run/docker-compose ENV_FILE=/tmp/docker-compose.env export COMPOSE_HTTP_TIMEOUT=600 test -x ${DOCKER} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base CONF=$(append_conf ${SYS_CONF} ${BOOT_CONF} ${USER_CONF}) test -n "${CONF}" || exit 0 for env_sh_file in ${SYS_ENV_SH} ${BOOT_ENV_SH} ${USER_ENV_SH}; do test -s ${env_sh_file} && source ${env_sh_file} done function make_env_file() { echo -n > ${ENV_FILE} for env_file in ${SYS_ENV} ${BOOT_ENV} ${USER_ENV}; do test -s ${env_file} && cat ${env_file} >> ${ENV_FILE} done } function start() { msg_begin "Starting docker compose" # Wait for dockerd to start running=false for ((i=0; i < 30; i++)); do if docker ps &>/dev/null; then running=true break fi sleep 1 done if [[ ${running} != true ]]; then msg_fail "dockerd not running" return fi mkdir -p ${RUN_DIR} make_env_file conf=$(echo ${CONF} | sed 's/ / -f /g') ${DOCKER} compose --env-file ${ENV_FILE} -p ${PROJ} --project-directory ${RUN_DIR} -f ${conf} pull &>${LOG} ${DOCKER} compose --env-file ${ENV_FILE} -p ${PROJ} --project-directory ${RUN_DIR} -f ${conf} up --no-start &>>${LOG} ${DOCKER} compose --env-file ${ENV_FILE} -p ${PROJ} --project-directory ${RUN_DIR} -f ${conf} up -d &>>${LOG} test $? == 0 && msg_done || msg_fail } function stop() { msg_begin "Stopping docker compose" make_env_file conf=$(echo ${CONF} | sed 's/ / -f /g') ${DOCKER} compose --env-file ${ENV_FILE} -p ${PROJ} --project-directory ${RUN_DIR} -f ${conf} stop &>>${LOG} test $? == 0 && msg_done || msg_fail } function pull() { msg_begin "Pulling docker compose images" make_env_file conf=$(echo ${CONF} | sed 's/ / -f /g') ${DOCKER} compose --env-file ${ENV_FILE} -p ${PROJ} --project-directory ${RUN_DIR} -f ${conf} pull &>>${LOG} test $? == 0 && msg_done || { msg_fail; exit 1; } } function generic_command() { msg "Running docker compose $1" make_env_file conf=$(echo ${CONF} | sed 's/ / -f /g') ${DOCKER} compose --env-file ${ENV_FILE} -p ${PROJ} --project-directory ${RUN_DIR} -f ${conf} "${@:1}" } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; pull) pull ;; *) generic_command "${@:1}" ;; esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S97dyndns ================================================ #!/bin/bash PROG="/usr/sbin/dyndns-update" SCRIPT="/data/etc/dyndns-update.sh" test -s "${SCRIPT}" || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) msg_begin "Updating dynamic DNS" ${PROG} &>/dev/null test $? == 0 && msg_done || msg_fail ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/S98userinit ================================================ #!/bin/bash USERINIT="/data/etc/userinit.sh" test -s "${USERINIT}" || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) msg_begin "Executing user init script" /bin/bash ${USERINIT} test $? == 0 && msg_done || msg_fail ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/common/overlay/etc/init.d/base ================================================ source /etc/version BOARD_SN=$(/etc/init.d/boardsn) BOARD_NAME=$(cat /etc/board) test -n "${OS_DEBUG}" || source /etc/init.d/os_conf msg() { echo " * $1" } msg_begin() { echo -n " * $1: " } msg_done() { test -n "$1" && echo $1 || echo "done" } msg_fail() { test -n "$1" && echo $1 || echo "failed" } msg_background() { test -n "$1" && echo $1 || echo "pending" } prepare_conf() { # $1 - actual config file # $2 - system-provided config file # $3 - user-provided config file # long story short: # * user conf file takes precedence, if present # * system conf file is used by default, if actual file absent actual_conf="$1" system_conf="$2" user_conf="$3" if [[ -n "${user_conf}" && -e "${user_conf}" ]]; then cp -rf "${user_conf}" "${actual_conf}" # we want only Unix newlines in conf files if [[ -f "${actual_conf}" ]]; then sed -i 's/\r//g' "${actual_conf}" elif [[ -d "${actual_conf}" ]]; then find "${actual_conf}" -type f | xargs -L1 sed -i 's/\r//g' fi grep -E "/boot .*ro[\s,]" /proc/mounts &>/dev/null RO=$? test ${RO} == 0 && mount -o remount,rw /boot rm -rf ${user_conf} test ${RO} == 0 && mount -o remount,ro /boot fi if [[ ! -e "${actual_conf}" && -e "${system_conf}" ]]; then mkdir -p $(dirname "${actual_conf}") cp -rf "${system_conf}" "${actual_conf}" fi } select_conf() { # $1 - system config file # $2 - boot config file # $3 - user config file # Selects and returns the first existing (and with size > 0) file, in this order: # * user config file # * boot config file # * system config file system_conf="$1" boot_conf="$2" user_conf="$3" test -s "${user_conf}" && echo "${user_conf}" && return test -s "${boot_conf}" && echo "${boot_conf}" && return test -s "${system_conf}" && echo "${system_conf}" && return return 1 } append_conf() { # $1 - system config file # $2 - boot config file # $3 - user config file # Returns a list of space-separated existing config files (and with size > 0) file, in this order: # * user config file # * boot config file # * system config file system_conf="$1" boot_conf="$2" user_conf="$3" files=$( test -s "${user_conf}" && echo "${user_conf}" test -s "${boot_conf}" && echo "${boot_conf}" test -s "${system_conf}" && echo "${system_conf}" ) echo ${files} } ================================================ FILE: board/common/overlay/etc/init.d/boardsn ================================================ #!/bin/bash __sn=$(cat /proc/cpuinfo | grep Serial | tr -d ' ' | cut -d ':' -f 2) test -n "${__sn}" || __sn=$(cat /sys/class/net/eth0/address | tr -d ':') echo ${__sn: -8} ================================================ FILE: board/common/overlay/etc/init.d/bootdone ================================================ #!/bin/bash source /sbin/panic sleep ${PANIC_REBOOT_DELAY_MAX} && reset & ================================================ FILE: board/common/overlay/etc/init.d/mountsys ================================================ #!/bin/bash /bin/mkdir -p /dev/pts /bin/mkdir -p /dev/shm /bin/mount --make-shared / /bin/mount -T /etc/fstab.sys -a ================================================ FILE: board/common/overlay/etc/init.d/os_conf ================================================ _SYS_CONF="/etc/os.conf" _PLATFORM_CONF="/etc/os-platform.conf" _DATA_CONF="/data/etc/os.conf" _BOOT_CONF="/boot/os.conf" # source in all conf files in order of precedence if [[ -f ${_SYS_CONF} ]]; then source ${_SYS_CONF} fi if [[ -f ${_PLATFORM_CONF} ]]; then source ${_PLATFORM_CONF} fi if [[ -f ${_DATA_CONF} ]]; then source ${_DATA_CONF} fi if [[ -f ${_BOOT_CONF} ]]; then source ${_BOOT_CONF} fi unset _SYS_CONF _PLATFORM_CONF _DATA_CONF _BOOT_CONF ================================================ FILE: board/common/overlay/etc/init.d/rcK ================================================ #!/bin/bash BOOT_LOG=/var/log/boot.log PID_FILE=/tmp/rcK.pid source /etc/init.d/base function run_shutdown() { echo -e "\n---- shutting down ${OS_NAME} ${OS_VERSION} ----" # Stop all init scripts in /etc/init.d, executing them in reverse numerical order. for i in $(ls -r /etc/init.d/S??*); do if ! [[ -x "${i}" ]]; then continue; fi if [[ -f /data/etc/no_$(basename ${i}) ]]; then continue; fi ${i} stop done } (run_shutdown & echo $! > ${PID_FILE}) | tee -a ${BOOT_LOG} & pid=$(cat ${PID_FILE}) while kill -0 ${pid} &>/dev/null; do sleep 1 done /bin/umount -a -r /sbin/swapoff -a ================================================ FILE: board/common/overlay/etc/init.d/rcS ================================================ #!/bin/bash BOOT_LOG=/var/log/boot.log TMP_BOOT_LOG=/tmp/_boot.log PID_FILE=/tmp/rcS.pid /etc/init.d/mountsys set -a test -s /etc/environment && source /etc/environment test -s /data/etc/environment && source /data/etc/environment test -s /boot/etc/environment && source /boot/etc/environment set +a source /etc/init.d/base function run_init() { echo "---- booting ${OS_NAME} ${OS_VERSION} ----" # Start all init scripts in /etc/init.d, executing them in numerical order. for i in /etc/init.d/S??* /etc/init.d/bootdone; do if ! [[ -x "${i}" ]]; then continue; fi if [[ -f /data/etc/no_$(basename ${i}) ]]; then continue; fi ${i} start done } (run_init & echo $! > ${PID_FILE}) | tee -a ${TMP_BOOT_LOG} & pid=$(cat ${PID_FILE}) while kill -0 ${pid} &>/dev/null; do sleep 1 done # Check for data partition availability and only then move the boot log test -d $(dirname ${BOOT_LOG}) && cat ${TMP_BOOT_LOG} >> ${BOOT_LOG} ================================================ FILE: board/common/overlay/etc/inittab ================================================ # /etc/inittab # # Copyright (C) 2001 Erik Andersen # # Note: BusyBox init doesn't support runlevels. The runlevels field is # completely ignored by BusyBox init. If you want runlevels, use # sysvinit. # # Format for each entry: ::: # # id == tty to run on, or empty for /dev/console # runlevels == ignored # action == one of sysinit, respawn, askfirst, wait, and once # process == program to run # Startup the system ::sysinit:/etc/init.d/rcS # Start a getty for local login ttylogin::respawn:/sbin/getty -L ttylogin 115200 vt100 # Stuff to do for the 3-finger salute ::ctrlaltdel:/sbin/reboot # Stuff to do before rebooting ::shutdown:/etc/init.d/rcK ================================================ FILE: board/common/overlay/etc/inputrc ================================================ # /etc/inputrc - global inputrc for libreadline # See readline(3readline) and `info readline' for more information. # Be 8 bit clean. set input-meta on set output-meta on set bell-style visible # To allow the use of 8bit-characters like the german umlauts, comment out # the line below. However this makes the meta key not work as a meta key, # which is annoying to those which don't need to type in 8-bit characters. # set convert-meta off "\e0d": backward-word "\e0c": forward-word "\e[h": beginning-of-line "\e[f": end-of-line "\e[1~": beginning-of-line "\e[4~": end-of-line #"\e[5~": beginning-of-history #"\e[6~": end-of-history "\e[3~": delete-char "\e[2~": quoted-insert # Common standard keypad and cursor # (codes courtsey Werner Fink, ) #"\e[1~": history-search-backward "\e[2~": yank "\e[3~": delete-char #"\e[4~": set-mark "\e[5~": history-search-backward "\e[6~": history-search-forward # Normal keypad and cursor of xterm "\e[F": end-of-line "\e[H": beginning-of-line # Application keypad and cursor of xterm "\eOA": previous-history "\eOC": forward-char "\eOB": next-history "\eOD": backward-char "\eOF": end-of-line "\eOH": beginning-of-line ================================================ FILE: board/common/overlay/etc/issue ================================================ Welcome to \n! ================================================ FILE: board/common/overlay/etc/logrotate.conf ================================================ /var/log/*.log /var/log/messages /var/log/*/*.log { rotate 9 compress copytruncate size 10M missingok nomail } ================================================ FILE: board/common/overlay/etc/mime.types ================================================ application/1d-interleaved-parityfec application/3gpp-ims+xml application/CSTAdata+xml application/EDI-Consent application/EDI-X12 application/EDIFACT application/H224 application/activemessage application/andrew-inset ez application/annodex anx application/applefile application/applixware aw application/atom+xml atom application/atomcat+xml atomcat application/atomdeleted+xml application/atomicmail application/atomserv+xml atomsrv application/atomsvc+xml atomsvc application/auth-policy+xml application/batch-SMTP application/batch-smtp application/bbolin lin application/beep+xml application/calendar+xml application/cals-1840 application/ccmp+xml application/ccxml+xml ccxml application/cdmi-capability cdmia application/cdmi-container cdmic application/cdmi-domain cdmid application/cdmi-object cdmio application/cdmi-queue cdmiq application/cea-2018+xml application/cellml+xml application/cfw application/cnrp+xml application/commonground application/conference-info+xml application/cpl+xml application/csta+xml application/cstadata+xml application/cu-seeme cu application/cybercash application/davmount+xml davmount application/dca-rft application/dec-dx application/dialog-info+xml application/dicom dcm application/dns application/docbook+xml dbk application/dskpp+xml application/dsptype tsp application/dssc+der dssc application/dssc+xml xdssc application/dvcs application/ecmascript ecma es application/edi-consent application/edi-x12 application/edifact application/emma+xml emma application/epp+xml application/epub+zip epub application/eshop application/example application/exi exi application/fastinfoset application/fastsoap application/fdt+xml application/fits application/font-tdpfr pfr application/framework-attributes+xml application/futuresplash spl application/ghostview application/gml+xml gml application/gpx+xml gpx application/gxf gxf application/gzip application/h224 application/held+xml application/hta hta application/http application/hyperstudio stk application/ibe-key-request+xml application/ibe-pkg-reply+xml application/ibe-pp-data application/iges application/im-iscomposing+xml application/index application/index.cmd application/index.obj application/index.response application/index.vnd application/inkml+xml ink inkml application/iotp application/ipfix ipfix application/ipp application/isup application/java-archive jar application/java-serialized-object ser application/java-vm class application/javascript js application/json json application/jsonml+json jsonml application/kpml-request+xml application/kpml-response+xml application/link-format application/lost+xml lostxml application/lostsync+xml application/m3g m3g application/mac-binhex40 hqx application/mac-compactpro cpt application/macwriteii application/mads+xml mads application/marc mrc application/marcxml+xml mrcx application/mathematica ma mb nb nbp application/mathml+xml mathml application/mathml-content+xml application/mathml-presentation+xml application/mbms-associated-procedure-description+xml application/mbms-deregister+xml application/mbms-envelope+xml application/mbms-msk+xml application/mbms-msk-response+xml application/mbms-protection-description+xml application/mbms-reception-report+xml application/mbms-register+xml application/mbms-register-response+xml application/mbms-user-service-description+xml application/mbox mbox application/media-policy-dataset+xml application/media_control+xml application/mediaservercontrol+xml mscml application/metalink+xml metalink application/metalink4+xml meta4 application/mets+xml mets application/mikey application/mods+xml mods application/moss-keys application/moss-signature application/mosskey-data application/mosskey-request application/mp21 m21 mp21 application/mp4 mp4s application/mpeg4-generic application/mpeg4-iod application/mpeg4-iod-xmt application/ms-tnef application/msaccess mdb application/msc-ivr+xml application/msc-mixer+xml application/msword doc dot application/mxf mxf application/nasdata application/news-checkgroups application/news-groupinfo application/news-message-id application/news-transmission application/nlsml+xml application/nss application/ocsp-request application/ocsp-response application/octet-stream bin bpk deploy dist distz dmg dms dump elc iso lha lrf lzh mar pkg so application/oda oda application/oebps-package+xml opf application/ogg ogg ogx application/omdoc+xml omdoc application/onenote one onepkg onetmp onetoc onetoc2 application/oxps oxps application/parityfec application/patch-ops-error+xml xer application/pdf pdf application/pgp-encrypted asc pgp application/pgp-keys key application/pgp-signature asc pgp sig application/pics-rules prf application/pidf+xml application/pidf-diff+xml application/pkcs10 p10 application/pkcs7-mime p7c p7m application/pkcs7-signature p7s application/pkcs8 p8 application/pkix-attr-cert ac application/pkix-cert cer application/pkix-crl crl application/pkix-pkipath pkipath application/pkixcmp pki application/pls+xml pls application/poc-settings+xml application/postscript ai eps eps2 eps3 epsf epsi ps application/prs.alvestrand.titrax-sheet application/prs.cww cww application/prs.nprend application/prs.plucker application/prs.rdf-xml-crypt application/prs.xsf+xml application/pskc+xml pskcxml application/qsig application/raptorfec application/rar rar application/rdf+xml rdf application/reginfo+xml rif application/relax-ng-compact-syntax rnc application/remote-printing application/resource-lists+xml rl application/resource-lists-diff+xml rld application/riscos application/rlmi+xml application/rls-services+xml rs application/rpki-ghostbusters gbr application/rpki-manifest mft application/rpki-roa roa application/rpki-updown application/rsd+xml rsd application/rss+xml rss application/rtf rtf application/rtx application/samlassertion+xml application/samlmetadata+xml application/sbml+xml sbml application/scvp-cv-request scq application/scvp-cv-response scs application/scvp-vp-request spq application/scvp-vp-response spp application/sdp sdp application/sep+xml application/set-payment application/set-payment-initiation setpay application/set-registration application/set-registration-initiation setreg application/sgml application/sgml-open-catalog application/shf+xml shf application/sieve application/simple-filter+xml application/simple-message-summary application/simpleSymbolContainer application/simplesymbolcontainer application/sla stl application/slate application/smil smi smil application/smil+xml smi smil application/smpte336m application/soap+fastinfoset application/soap+xml application/sparql-query rq application/sparql-results+xml srx application/spirits-event+xml application/srgs gram application/srgs+xml grxml application/sru+xml sru application/ssdl+xml ssdl application/ssml+xml ssml application/tamp-apex-update application/tamp-apex-update-confirm application/tamp-community-update application/tamp-community-update-confirm application/tamp-error application/tamp-sequence-adjust application/tamp-sequence-adjust-confirm application/tamp-status-query application/tamp-status-response application/tamp-update application/tamp-update-confirm application/tei+xml tei teicorpus application/thraud+xml tfi application/timestamp-query application/timestamp-reply application/timestamped-data tsd application/tve-trigger application/ulpfec application/vcard+xml application/vemmi application/vividence.scriptfile application/vnd.3M.Post-it-Notes application/vnd.3gpp.bsf+xml application/vnd.3gpp.pic-bw-large plb application/vnd.3gpp.pic-bw-small psb application/vnd.3gpp.pic-bw-var pvb application/vnd.3gpp.sms application/vnd.3gpp2.bcmcsinfo+xml application/vnd.3gpp2.sms application/vnd.3gpp2.tcap tcap application/vnd.3m.post-it-notes pwn application/vnd.FloGraphIt application/vnd.HandHeld-Entertainment+xml application/vnd.Kinar application/vnd.MFER application/vnd.Mobius.DAF application/vnd.Mobius.DIS application/vnd.Mobius.MBK application/vnd.Mobius.MQY application/vnd.Mobius.MSL application/vnd.Mobius.PLC application/vnd.Mobius.TXF application/vnd.Quark.QuarkXPress application/vnd.RenLearn.rlprint application/vnd.SimTech-MindMapper application/vnd.accpac.simply.aso aso application/vnd.accpac.simply.imp imp application/vnd.acucobol acu application/vnd.acucorp acutc atc application/vnd.adobe.air-application-installer-package+zip air application/vnd.adobe.formscentral.fcdt fcdt application/vnd.adobe.fxp fxp fxpl application/vnd.adobe.partial-upload application/vnd.adobe.xdp+xml xdp application/vnd.adobe.xfdf xfdf application/vnd.aether.imp application/vnd.ah-barcode application/vnd.ahead.space ahead application/vnd.airzip.filesecure.azf azf application/vnd.airzip.filesecure.azs azs application/vnd.amazon.ebook azw application/vnd.americandynamics.acc acc application/vnd.amiga.ami ami application/vnd.amundsen.maze+xml application/vnd.android.package-archive apk application/vnd.anser-web-certificate-issue-initiation cii application/vnd.anser-web-funds-transfer-initiation fti application/vnd.antix.game-component atx application/vnd.apple.installer+xml mpkg application/vnd.apple.mpegurl m3u8 application/vnd.arastra.swi swi application/vnd.aristanetworks.swi swi application/vnd.astraea-software.iota iota application/vnd.audiograph aep application/vnd.autopackage application/vnd.avistar+xml application/vnd.balsamiq.bmml+xml application/vnd.blueice.multipass mpm application/vnd.bluetooth.ep.oob application/vnd.bmi bmi application/vnd.businessobjects rep application/vnd.cab-jscript application/vnd.canon-cpdl application/vnd.canon-lips application/vnd.cendio.thinlinc.clientconf application/vnd.century-systems.tcp_stream application/vnd.chemdraw+xml cdxml application/vnd.chipnuts.karaoke-mmd mmd application/vnd.cinderella cdy application/vnd.cirpack.isdn-ext application/vnd.claymore cla application/vnd.cloanto.rp9 rp9 application/vnd.clonk.c4group c4d c4f c4g c4p c4u application/vnd.cluetrust.cartomobile-config c11amc application/vnd.cluetrust.cartomobile-config-pkg c11amz application/vnd.collection+json application/vnd.collection.next+json application/vnd.commerce-battelle application/vnd.commonspace csp application/vnd.comsocaller application/vnd.contact.cmsg cdbcmsg application/vnd.cosmocaller cmc application/vnd.crick.clicker clkx application/vnd.crick.clicker.keyboard clkk application/vnd.crick.clicker.palette clkp application/vnd.crick.clicker.template clkt application/vnd.crick.clicker.wordbank clkw application/vnd.criticaltools.wbs+xml wbs application/vnd.ctc-posml pml application/vnd.ctct.ws+xml application/vnd.cups-pdf application/vnd.cups-postscript application/vnd.cups-ppd ppd application/vnd.cups-raster application/vnd.cups-raw application/vnd.curl application/vnd.curl.car car application/vnd.curl.pcurl pcurl application/vnd.cyan.dean.root+xml application/vnd.cybank application/vnd.dart dart application/vnd.data-vision.rdz rdz application/vnd.dece.data uvd uvf uvvd uvvf application/vnd.dece.ttml+xml uvt uvvt application/vnd.dece.unspecified uvvx uvx application/vnd.dece.zip uvvz uvz application/vnd.denovo.fcselayout-link fe_launch application/vnd.dir-bi.plate-dl-nosuffix application/vnd.dm.delegation+xml application/vnd.dna dna application/vnd.dolby.mlp mlp application/vnd.dolby.mobile.1 application/vnd.dolby.mobile.2 application/vnd.dpgraph dpg application/vnd.dreamfactory dfac application/vnd.ds-keypoint kpxx application/vnd.dtg.local application/vnd.dtg.local.flash application/vnd.dtg.local.html application/vnd.dvb.ait ait application/vnd.dvb.dvbj application/vnd.dvb.esgcontainer application/vnd.dvb.ipdcdftnotifaccess application/vnd.dvb.ipdcesgaccess application/vnd.dvb.ipdcesgaccess2 application/vnd.dvb.ipdcesgpdd application/vnd.dvb.ipdcroaming application/vnd.dvb.iptv.alfec-base application/vnd.dvb.iptv.alfec-enhancement application/vnd.dvb.notif-aggregate-root+xml application/vnd.dvb.notif-container+xml application/vnd.dvb.notif-generic+xml application/vnd.dvb.notif-ia-msglist+xml application/vnd.dvb.notif-ia-registration-request+xml application/vnd.dvb.notif-ia-registration-response+xml application/vnd.dvb.notif-init+xml application/vnd.dvb.pfr application/vnd.dvb.service svc application/vnd.dxr application/vnd.dynageo geo application/vnd.easykaraoke.cdgdownload application/vnd.ecdis-update application/vnd.ecowin.chart mag application/vnd.ecowin.filerequest application/vnd.ecowin.fileupdate application/vnd.ecowin.series application/vnd.ecowin.seriesrequest application/vnd.ecowin.seriesupdate application/vnd.emclient.accessrequest+xml application/vnd.enliven nml application/vnd.eprints.data+xml application/vnd.epson.esf esf application/vnd.epson.msf msf application/vnd.epson.quickanime qam application/vnd.epson.salt slt application/vnd.epson.ssf ssf application/vnd.ericsson.quickcall application/vnd.eszigno3+xml es3 et3 application/vnd.etsi.aoc+xml application/vnd.etsi.cug+xml application/vnd.etsi.iptvcommand+xml application/vnd.etsi.iptvdiscovery+xml application/vnd.etsi.iptvprofile+xml application/vnd.etsi.iptvsad-bc+xml application/vnd.etsi.iptvsad-cod+xml application/vnd.etsi.iptvsad-npvr+xml application/vnd.etsi.iptvservice+xml application/vnd.etsi.iptvsync+xml application/vnd.etsi.iptvueprofile+xml application/vnd.etsi.mcid+xml application/vnd.etsi.overload-control-policy-dataset+xml application/vnd.etsi.sci+xml application/vnd.etsi.simservs+xml application/vnd.etsi.tsl+xml application/vnd.etsi.tsl.der application/vnd.eudora.data application/vnd.ezpix-album ez2 application/vnd.ezpix-package ez3 application/vnd.f-secure.mobile application/vnd.fdf fdf application/vnd.fdsn.mseed mseed application/vnd.fdsn.seed dataless seed application/vnd.ffsns application/vnd.fints application/vnd.flographit gph application/vnd.fluxtime.clip ftc application/vnd.font-fontforge-sfd application/vnd.framemaker book fm frame maker application/vnd.frogans.fnc fnc application/vnd.frogans.ltf ltf application/vnd.fsc.weblaunch fsc application/vnd.fujitsu.oasys oas application/vnd.fujitsu.oasys2 oa2 application/vnd.fujitsu.oasys3 oa3 application/vnd.fujitsu.oasysgp fg5 application/vnd.fujitsu.oasysprs bh2 application/vnd.fujixerox.ART-EX application/vnd.fujixerox.ART4 application/vnd.fujixerox.HBPL application/vnd.fujixerox.art-ex application/vnd.fujixerox.art4 application/vnd.fujixerox.ddd ddd application/vnd.fujixerox.docuworks xdw application/vnd.fujixerox.docuworks.binder xbd application/vnd.fujixerox.hbpl application/vnd.fut-misnet application/vnd.fuzzysheet fzs application/vnd.genomatix.tuxedo txd application/vnd.geocube+xml application/vnd.geogebra.file ggb application/vnd.geogebra.tool ggt application/vnd.geometry-explorer gex gre application/vnd.geonext gxt application/vnd.geoplan g2w application/vnd.geospace g3w application/vnd.globalplatform.card-content-mgt application/vnd.globalplatform.card-content-mgt-response application/vnd.gmx gmx application/vnd.google-earth.kml+xml kml application/vnd.google-earth.kmz kmz application/vnd.grafeq gqf gqs application/vnd.gridmp application/vnd.groove-account gac application/vnd.groove-help ghf application/vnd.groove-identity-message gim application/vnd.groove-injector grv application/vnd.groove-tool-message gtm application/vnd.groove-tool-template tpl application/vnd.groove-vcard vcg application/vnd.hal+json application/vnd.hal+xml hal application/vnd.handheld-entertainment+xml zmm application/vnd.hbci hbci application/vnd.hcl-bireports application/vnd.hhe.lesson-player les application/vnd.hp-HPGL application/vnd.hp-PCL application/vnd.hp-PCLXL application/vnd.hp-hpgl hpgl application/vnd.hp-hpid hpid application/vnd.hp-hps hps application/vnd.hp-jlyt jlt application/vnd.hp-pcl pcl application/vnd.hp-pclxl pclxl application/vnd.httphone application/vnd.hydrostatix.sof-data sfd-hdstx application/vnd.hzn-3d-crossword x3d application/vnd.ibm.MiniPay application/vnd.ibm.afplinedata application/vnd.ibm.electronic-media application/vnd.ibm.minipay mpy application/vnd.ibm.modcap afp list3820 listafp application/vnd.ibm.rights-management irm application/vnd.ibm.secure-container sc application/vnd.iccprofile icc icm application/vnd.ieee.1905 application/vnd.igloader igl application/vnd.immervision-ivp ivp application/vnd.immervision-ivu ivu application/vnd.informedcontrol.rms+xml application/vnd.informix-visionary application/vnd.infotech.project application/vnd.infotech.project+xml application/vnd.innopath.wamp.notification application/vnd.insors.igm igm application/vnd.intercon.formnet xpw xpx application/vnd.intergeo i2g application/vnd.intertrust.digibox application/vnd.intertrust.nncp application/vnd.intu.qbo qbo application/vnd.intu.qfx qfx application/vnd.iptc.g2.conceptitem+xml application/vnd.iptc.g2.knowledgeitem+xml application/vnd.iptc.g2.newsitem+xml application/vnd.iptc.g2.newsmessage+xml application/vnd.iptc.g2.packageitem+xml application/vnd.iptc.g2.planningitem+xml application/vnd.ipunplugged.rcprofile rcprofile application/vnd.irepository.package+xml irp application/vnd.is-xpr xpr application/vnd.isac.fcs fcs application/vnd.jam jam application/vnd.japannet-directory-service application/vnd.japannet-jpnstore-wakeup application/vnd.japannet-payment-wakeup application/vnd.japannet-registration application/vnd.japannet-registration-wakeup application/vnd.japannet-setstore-wakeup application/vnd.japannet-verification application/vnd.japannet-verification-wakeup application/vnd.jcp.javame.midlet-rms rms application/vnd.jisp jisp application/vnd.joost.joda-archive joda application/vnd.jsk.isdn-ngn application/vnd.kahootz ktr ktz application/vnd.kde.karbon karbon application/vnd.kde.kchart chrt application/vnd.kde.kformula kfo application/vnd.kde.kivio flw application/vnd.kde.kontour kon application/vnd.kde.kpresenter kpr kpt application/vnd.kde.kspread ksp application/vnd.kde.kword kwd kwt application/vnd.kenameaapp htke application/vnd.kidspiration kia application/vnd.kinar kne knp application/vnd.koan skd skm skp skt application/vnd.kodak-descriptor sse application/vnd.las.las+xml lasxml application/vnd.liberty-request+xml application/vnd.llamagraphics.life-balance.desktop lbd application/vnd.llamagraphics.life-balance.exchange+xml lbe application/vnd.lotus-1-2-3 123 application/vnd.lotus-approach apr application/vnd.lotus-freelance pre application/vnd.lotus-notes nsf application/vnd.lotus-organizer org application/vnd.lotus-screencam scm application/vnd.lotus-wordpro lwp application/vnd.macports.portpkg portpkg application/vnd.marlin.drm.actiontoken+xml application/vnd.marlin.drm.conftoken+xml application/vnd.marlin.drm.license+xml application/vnd.marlin.drm.mdcf application/vnd.mcd mcd application/vnd.medcalcdata mc1 application/vnd.mediastation.cdkey cdkey application/vnd.meridian-slingshot application/vnd.mfer mwf application/vnd.mfmp mfm application/vnd.micrografx.flo flo application/vnd.micrografx.igx igx application/vnd.mif mif application/vnd.minisoft-hp3000-save application/vnd.mitsubishi.misty-guard.trustweb application/vnd.mobius.daf daf application/vnd.mobius.dis dis application/vnd.mobius.mbk mbk application/vnd.mobius.mqy mqy application/vnd.mobius.msl msl application/vnd.mobius.plc plc application/vnd.mobius.txf txf application/vnd.mophun.application mpn application/vnd.mophun.certificate mpc application/vnd.motorola.flexsuite application/vnd.motorola.flexsuite.adsi application/vnd.motorola.flexsuite.fis application/vnd.motorola.flexsuite.gotap application/vnd.motorola.flexsuite.kmr application/vnd.motorola.flexsuite.ttc application/vnd.motorola.flexsuite.wem application/vnd.motorola.iprm application/vnd.mozilla.xul+xml xul application/vnd.ms-artgalry cil application/vnd.ms-asf application/vnd.ms-cab-compressed cab application/vnd.ms-excel xla xlb xlc xlm xls xlt xlw application/vnd.ms-excel.addin.macroEnabled.12 xlam application/vnd.ms-excel.addin.macroenabled.12 xlam application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb application/vnd.ms-excel.sheet.binary.macroenabled.12 xlsb application/vnd.ms-excel.sheet.macroEnabled.12 xlsm application/vnd.ms-excel.sheet.macroenabled.12 xlsm application/vnd.ms-excel.template.macroEnabled.12 xltm application/vnd.ms-excel.template.macroenabled.12 xltm application/vnd.ms-fontobject eot application/vnd.ms-htmlhelp chm application/vnd.ms-ims ims application/vnd.ms-lrm lrm application/vnd.ms-office.activeX+xml application/vnd.ms-officetheme thmx application/vnd.ms-pki.seccat cat application/vnd.ms-pki.stl stl application/vnd.ms-playready.initiator+xml application/vnd.ms-powerpoint pot pps ppt application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam application/vnd.ms-powerpoint.addin.macroenabled.12 ppam application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm application/vnd.ms-powerpoint.presentation.macroenabled.12 pptm application/vnd.ms-powerpoint.slide.macroEnabled.12 sldm application/vnd.ms-powerpoint.slide.macroenabled.12 sldm application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm application/vnd.ms-powerpoint.slideshow.macroenabled.12 ppsm application/vnd.ms-powerpoint.template.macroEnabled.12 potm application/vnd.ms-powerpoint.template.macroenabled.12 potm application/vnd.ms-project mpp mpt application/vnd.ms-tnef application/vnd.ms-wmdrm.lic-chlg-req application/vnd.ms-wmdrm.lic-resp application/vnd.ms-wmdrm.meter-chlg-req application/vnd.ms-wmdrm.meter-resp application/vnd.ms-word.document.macroEnabled.12 docm application/vnd.ms-word.document.macroenabled.12 docm application/vnd.ms-word.template.macroEnabled.12 dotm application/vnd.ms-word.template.macroenabled.12 dotm application/vnd.ms-works wcm wdb wks wps application/vnd.ms-wpl wpl application/vnd.ms-xpsdocument xps application/vnd.mseq mseq application/vnd.msign application/vnd.multiad.creator application/vnd.multiad.creator.cif application/vnd.music-niff application/vnd.musician mus application/vnd.muvee.style msty application/vnd.mynfc taglet application/vnd.ncd.control application/vnd.ncd.reference application/vnd.nervana application/vnd.netfpx application/vnd.neurolanguage.nlu nlu application/vnd.nintendo.nitro.rom application/vnd.nitf nitf ntf application/vnd.noblenet-directory nnd application/vnd.noblenet-sealer nns application/vnd.noblenet-web nnw application/vnd.nokia.catalogs application/vnd.nokia.conml+wbxml application/vnd.nokia.conml+xml application/vnd.nokia.iSDS-radio-presets application/vnd.nokia.iptv.config+xml application/vnd.nokia.isds-radio-presets application/vnd.nokia.landmark+wbxml application/vnd.nokia.landmark+xml application/vnd.nokia.landmarkcollection+xml application/vnd.nokia.n-gage.ac+xml application/vnd.nokia.n-gage.data ngdat application/vnd.nokia.n-gage.symbian.install n-gage application/vnd.nokia.ncd application/vnd.nokia.pcd+wbxml application/vnd.nokia.pcd+xml application/vnd.nokia.radio-preset rpst application/vnd.nokia.radio-presets rpss application/vnd.novadigm.EDM application/vnd.novadigm.EDX application/vnd.novadigm.EXT application/vnd.novadigm.edm edm application/vnd.novadigm.edx edx application/vnd.novadigm.ext ext application/vnd.ntt-local.content-share application/vnd.ntt-local.file-transfer application/vnd.ntt-local.sip-ta_remote application/vnd.ntt-local.sip-ta_tcp_stream application/vnd.oasis.opendocument.chart odc application/vnd.oasis.opendocument.chart-template otc application/vnd.oasis.opendocument.database odb application/vnd.oasis.opendocument.formula odf application/vnd.oasis.opendocument.formula-template odft application/vnd.oasis.opendocument.graphics odg application/vnd.oasis.opendocument.graphics-template otg application/vnd.oasis.opendocument.image odi application/vnd.oasis.opendocument.image-template oti application/vnd.oasis.opendocument.presentation odp application/vnd.oasis.opendocument.presentation-template otp application/vnd.oasis.opendocument.spreadsheet ods application/vnd.oasis.opendocument.spreadsheet-template ots application/vnd.oasis.opendocument.text odt application/vnd.oasis.opendocument.text-master odm otm application/vnd.oasis.opendocument.text-template ott application/vnd.oasis.opendocument.text-web oth application/vnd.obn application/vnd.oftn.l10n+json application/vnd.oipf.contentaccessdownload+xml application/vnd.oipf.contentaccessstreaming+xml application/vnd.oipf.cspg-hexbinary application/vnd.oipf.dae.svg+xml application/vnd.oipf.dae.xhtml+xml application/vnd.oipf.mippvcontrolmessage+xml application/vnd.oipf.pae.gem application/vnd.oipf.spdiscovery+xml application/vnd.oipf.spdlist+xml application/vnd.oipf.ueprofile+xml application/vnd.oipf.userprofile+xml application/vnd.olpc-sugar xo application/vnd.oma-scws-config application/vnd.oma-scws-http-request application/vnd.oma-scws-http-response application/vnd.oma.bcast.associated-procedure-parameter+xml application/vnd.oma.bcast.drm-trigger+xml application/vnd.oma.bcast.imd+xml application/vnd.oma.bcast.ltkm application/vnd.oma.bcast.notification+xml application/vnd.oma.bcast.provisioningtrigger application/vnd.oma.bcast.sgboot application/vnd.oma.bcast.sgdd+xml application/vnd.oma.bcast.sgdu application/vnd.oma.bcast.simple-symbol-container application/vnd.oma.bcast.smartcard-trigger+xml application/vnd.oma.bcast.sprov+xml application/vnd.oma.bcast.stkm application/vnd.oma.cab-address-book+xml application/vnd.oma.cab-pcc+xml application/vnd.oma.cab-subs-invite+xml application/vnd.oma.cab-user-prefs+xml application/vnd.oma.dcd application/vnd.oma.dcdc application/vnd.oma.dd2+xml dd2 application/vnd.oma.drm.risd+xml application/vnd.oma.group-usage-list+xml application/vnd.oma.pal+xml application/vnd.oma.poc.detailed-progress-report+xml application/vnd.oma.poc.final-report+xml application/vnd.oma.poc.groups+xml application/vnd.oma.poc.invocation-descriptor+xml application/vnd.oma.poc.optimized-progress-report+xml application/vnd.oma.push application/vnd.oma.scidm.messages+xml application/vnd.oma.xcap-directory+xml application/vnd.omads-email+xml application/vnd.omads-file+xml application/vnd.omads-folder+xml application/vnd.omaloc-supl-init application/vnd.openofficeorg.extension oxt application/vnd.openxmlformats-officedocument.custom-properties+xml application/vnd.openxmlformats-officedocument.customXmlProperties+xml application/vnd.openxmlformats-officedocument.drawing+xml application/vnd.openxmlformats-officedocument.drawingml.chart+xml application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml application/vnd.openxmlformats-officedocument.extended-properties+xml application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml application/vnd.openxmlformats-officedocument.presentationml.comments+xml application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml application/vnd.openxmlformats-officedocument.presentationml.presProps+xml application/vnd.openxmlformats-officedocument.presentationml.presentation pptx application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml application/vnd.openxmlformats-officedocument.presentationml.slide sldx application/vnd.openxmlformats-officedocument.presentationml.slide+xml application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml application/vnd.openxmlformats-officedocument.presentationml.tags+xml application/vnd.openxmlformats-officedocument.presentationml.template potx application/vnd.openxmlformats-officedocument.presentationml.template.main+xml application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml application/vnd.openxmlformats-officedocument.theme+xml application/vnd.openxmlformats-officedocument.themeOverride+xml application/vnd.openxmlformats-officedocument.vmlDrawing application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml application/vnd.openxmlformats-officedocument.wordprocessingml.document docx application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml application/vnd.openxmlformats-package.core-properties+xml application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml application/vnd.openxmlformats-package.relationships+xml application/vnd.orange.indata application/vnd.osa.netdeploy application/vnd.osgeo.mapguide.package mgp application/vnd.osgi.bundle application/vnd.osgi.dp dp application/vnd.osgi.subsystem esa application/vnd.otps.ct-kip+xml application/vnd.palm oprc pdb pqa application/vnd.paos.xml application/vnd.pawaafile paw application/vnd.pg.format str application/vnd.pg.osasli ei6 application/vnd.piaccess.application-licence application/vnd.picsel efif application/vnd.pmi.widget wg application/vnd.poc.group-advertisement+xml application/vnd.pocketlearn plf application/vnd.powerbuilder6 pbd application/vnd.powerbuilder6-s application/vnd.powerbuilder7 application/vnd.powerbuilder7-s application/vnd.powerbuilder75 application/vnd.powerbuilder75-s application/vnd.preminet application/vnd.previewsystems.box box application/vnd.proteus.magazine mgz application/vnd.publishare-delta-tree qps application/vnd.pvi.ptid1 ptid application/vnd.pwg-multiplexed application/vnd.pwg-xhtml-print+xml application/vnd.qualcomm.brew-app-res application/vnd.quark.quarkxpress qwd qwt qxb qxd qxl qxt application/vnd.quobject-quoxdocument application/vnd.radisys.moml+xml application/vnd.radisys.msml+xml application/vnd.radisys.msml-audit+xml application/vnd.radisys.msml-audit-conf+xml application/vnd.radisys.msml-audit-conn+xml application/vnd.radisys.msml-audit-dialog+xml application/vnd.radisys.msml-audit-stream+xml application/vnd.radisys.msml-conf+xml application/vnd.radisys.msml-dialog+xml application/vnd.radisys.msml-dialog-base+xml application/vnd.radisys.msml-dialog-fax-detect+xml application/vnd.radisys.msml-dialog-fax-sendrecv+xml application/vnd.radisys.msml-dialog-group+xml application/vnd.radisys.msml-dialog-speech+xml application/vnd.radisys.msml-dialog-transform+xml application/vnd.rainstor.data application/vnd.rapid application/vnd.realvnc.bed bed application/vnd.recordare.musicxml mxl application/vnd.recordare.musicxml+xml musicxml application/vnd.renlearn.rlprint application/vnd.rig.cryptonote cryptonote application/vnd.rim.cod cod application/vnd.rn-realmedia rm application/vnd.rn-realmedia-vbr rmvb application/vnd.route66.link66+xml link66 application/vnd.rs-274x application/vnd.ruckus.download application/vnd.s3sms application/vnd.sailingtracker.track st application/vnd.sbm.cid application/vnd.sbm.mid2 application/vnd.scribus application/vnd.sealed.3df application/vnd.sealed.csf application/vnd.sealed.doc application/vnd.sealed.eml application/vnd.sealed.mht application/vnd.sealed.net application/vnd.sealed.ppt application/vnd.sealed.tiff application/vnd.sealed.xls application/vnd.sealedmedia.softseal.html application/vnd.sealedmedia.softseal.pdf application/vnd.seemail see application/vnd.sema sema application/vnd.semd semd application/vnd.semf semf application/vnd.shana.informed.formdata ifm application/vnd.shana.informed.formtemplate itp application/vnd.shana.informed.interchange iif application/vnd.shana.informed.package ipk application/vnd.simtech-mindmapper twd twds application/vnd.smaf mmf application/vnd.smart.notebook application/vnd.smart.teacher teacher application/vnd.software602.filler.form+xml application/vnd.software602.filler.form-xml-zip application/vnd.solent.sdkm+xml sdkd sdkm application/vnd.spotfire.dxp dxp application/vnd.spotfire.sfs sfs application/vnd.sss-cod application/vnd.sss-dtf application/vnd.sss-ntf application/vnd.stardivision.calc sdc application/vnd.stardivision.chart sds application/vnd.stardivision.draw sda application/vnd.stardivision.impress sdd sdp application/vnd.stardivision.math sdf smf application/vnd.stardivision.writer sdw vor application/vnd.stardivision.writer-global sgl application/vnd.stepmania.package smzip application/vnd.stepmania.stepchart sm application/vnd.street-stream application/vnd.sun.wadl+xml application/vnd.sun.xml.calc sxc application/vnd.sun.xml.calc.template stc application/vnd.sun.xml.draw sxd application/vnd.sun.xml.draw.template std application/vnd.sun.xml.impress sxi application/vnd.sun.xml.impress.template sti application/vnd.sun.xml.math sxm application/vnd.sun.xml.writer sxw application/vnd.sun.xml.writer.global sxg application/vnd.sun.xml.writer.template stw application/vnd.sus-calendar sus susp application/vnd.svd svd application/vnd.swiftview-ics application/vnd.symbian.install sis sisx application/vnd.syncml+xml xsm application/vnd.syncml.dm+wbxml bdm application/vnd.syncml.dm+xml xdm application/vnd.syncml.dm.notification application/vnd.syncml.dmddf+wbxml application/vnd.syncml.dmddf+xml application/vnd.syncml.dmtnds+wbxml application/vnd.syncml.dmtnds+xml application/vnd.syncml.ds.notification application/vnd.tao.intent-module-archive tao application/vnd.tcpdump.pcap cap dmp pcap application/vnd.tmobile-livetv tmo application/vnd.trid.tpt tpt application/vnd.triscape.mxs mxs application/vnd.trueapp tra application/vnd.truedoc application/vnd.tve-trigger application/vnd.ubisoft.webplayer application/vnd.ufdl ufd ufdl application/vnd.uiq.theme utz application/vnd.umajin umj application/vnd.unity unityweb application/vnd.uoml+xml uoml application/vnd.uplanet.alert application/vnd.uplanet.alert-wbxml application/vnd.uplanet.bearer-choice application/vnd.uplanet.bearer-choice-wbxml application/vnd.uplanet.cacheop application/vnd.uplanet.cacheop-wbxml application/vnd.uplanet.channel application/vnd.uplanet.channel-wbxml application/vnd.uplanet.list application/vnd.uplanet.list-wbxml application/vnd.uplanet.listcmd application/vnd.uplanet.listcmd-wbxml application/vnd.uplanet.signal application/vnd.vcx vcx application/vnd.vd-study application/vnd.vectorworks application/vnd.verimatrix.vcas application/vnd.vidsoft.vidconference application/vnd.visio vsd vss vst vsw application/vnd.visionary vis application/vnd.vividence.scriptfile application/vnd.vsf vsf application/vnd.wap.sic application/vnd.wap.slc application/vnd.wap.wbxml wbxml application/vnd.wap.wmlc wmlc application/vnd.wap.wmlscriptc wmlsc application/vnd.webturbo wtb application/vnd.wfa.wsc application/vnd.wmc application/vnd.wmf.bootstrap application/vnd.wolfram.mathematica application/vnd.wolfram.mathematica.package application/vnd.wolfram.player nbp application/vnd.wordperfect wpd application/vnd.wordperfect5.1 wp5 application/vnd.wqd wqd application/vnd.wrq-hp3000-labelled application/vnd.wt.stf stf application/vnd.wv.csp+wbxml application/vnd.wv.csp+xml application/vnd.wv.ssp+xml application/vnd.xara xar application/vnd.xfdl xfdl application/vnd.xfdl.webform application/vnd.xmi+xml application/vnd.xmpie.cpkg application/vnd.xmpie.dpkg application/vnd.xmpie.plan application/vnd.xmpie.ppkg application/vnd.xmpie.xlim application/vnd.yamaha.hv-dic hvd application/vnd.yamaha.hv-script hvs application/vnd.yamaha.hv-voice hvp application/vnd.yamaha.openscoreformat osf application/vnd.yamaha.openscoreformat.osfpvg+xml osfpvg application/vnd.yamaha.remote-setup application/vnd.yamaha.smaf-audio saf application/vnd.yamaha.smaf-phrase spf application/vnd.yamaha.through-ngn application/vnd.yamaha.tunnel-udpencap application/vnd.yellowriver-custom-menu cmp application/vnd.zul zir zirz application/vnd.zzazz.deck+xml zaz application/voicexml+xml vxml application/vq-rtcpxr application/watcherinfo+xml application/whoispp-query application/whoispp-response application/widget wgt application/winhlp hlp application/wita application/wordperfect wpd application/wordperfect5.1 wp5 application/wsdl+xml wsdl application/wspolicy+xml wspolicy application/x-123 wk application/x-7z-compressed 7z application/x-abiword abw application/x-ace-compressed ace application/x-apple-diskimage dmg application/x-authorware-bin aab u32 vox x32 application/x-authorware-map aam application/x-authorware-seg aas application/x-bcpio bcpio application/x-bittorrent torrent application/x-blorb blb blorb application/x-bzip bz application/x-bzip2 boz bz2 application/x-cab cab application/x-cbr cb7 cba cbr cbt cbz application/x-cbz cbz application/x-cdf cda cdf application/x-cdlink vcd application/x-cfs-compressed cfs application/x-chat chat application/x-chess-pgn pgn application/x-compress application/x-comsol mph application/x-conference nsc application/x-core application/x-cpio cpio application/x-csh csh application/x-debian-package deb udeb application/x-dgc-compressed dgc application/x-director cct cst cxt dcr dir dxr fgd swa w3d application/x-dms dms application/x-doom wad application/x-dtbncx+xml ncx application/x-dtbook+xml dtb application/x-dtbresource+xml res application/x-dvi dvi application/x-envoy evy application/x-eva eva application/x-executable application/x-flac flac application/x-font gsf pcf pcf.Z pfa pfb application/x-font-bdf bdf application/x-font-dos application/x-font-framemaker application/x-font-ghostscript gsf application/x-font-libgrx application/x-font-linux-psf psf application/x-font-otf otf application/x-font-pcf pcf application/x-font-snf snf application/x-font-speedo application/x-font-sunos-news application/x-font-ttf ttc ttf application/x-font-type1 afm pfa pfb pfm application/x-font-vfont application/x-font-woff woff application/x-freearc arc application/x-freemind mm application/x-futuresplash spl application/x-ganttproject gan application/x-gca-compressed gca application/x-glulx ulx application/x-gnumeric gnumeric application/x-go-sgf sgf application/x-gramps-xml gramps application/x-graphing-calculator gcf application/x-gtar gtar taz tgz application/x-gtar-compressed taz tgz application/x-gzip application/x-hdf hdf application/x-hwp hwp application/x-ica ica application/x-info info application/x-install-instructions install application/x-internet-signup ins isp application/x-iphone iii application/x-iso9660-image iso application/x-jam jam application/x-java-applet application/x-java-bean application/x-java-jnlp-file jnlp application/x-javascript js application/x-jmol jmz application/x-kchart chrt application/x-kdelnk application/x-killustrator kil application/x-koan skd skm skp skt application/x-kpresenter kpr kpt application/x-kspread ksp application/x-kword kwd kwt application/x-latex latex application/x-lha lha application/x-lyx lyx application/x-lzh lzh application/x-lzh-compressed lha lzh application/x-lzx lzx application/x-maker book fb fbdoc fm frame frm maker application/x-md5 md5 application/x-mie mie application/x-mif mif application/x-mobipocket-ebook mobi prc application/x-mpegURL m3u8 application/x-ms-application application application/x-ms-shortcut lnk application/x-ms-wmd wmd application/x-ms-wmz wmz application/x-ms-xbap xbap application/x-msaccess mdb application/x-msbinder obd application/x-mscardfile crd application/x-msclip clp application/x-msdos-program bat com dll exe application/x-msdownload bat com dll exe msi application/x-msi msi application/x-msmediaview m13 m14 mvb application/x-msmetafile emf emz wmf wmz application/x-msmoney mny application/x-mspublisher pub application/x-msschedule scd application/x-msterminal trm application/x-mswrite wri application/x-netcdf cdf nc application/x-ns-proxy-autoconfig dat pac application/x-nwc nwc application/x-nzb nzb application/x-object o application/x-oz-application oza application/x-pkcs12 p12 pfx application/x-pkcs7-certificates p7b spc application/x-pkcs7-certreqresp p7r application/x-pkcs7-crl crl application/x-python-code pyc pyo application/x-qgis qgs shp shx application/x-quicktimeplayer qtl application/x-rar-compressed rar application/x-rdp rdp application/x-redhat-package-manager rpm application/x-research-info-systems ris application/x-rss+xml rss application/x-ruby rb application/x-rx application/x-scilab sce sci application/x-scilab-xcos xcos application/x-sh sh application/x-sha1 sha1 application/x-shar shar application/x-shellscript application/x-shockwave-flash swf swfl application/x-silverlight scr application/x-silverlight-app xap application/x-sql sql application/x-stuffit sit sitx application/x-stuffitx sitx application/x-subrip srt application/x-sv4cpio sv4cpio application/x-sv4crc sv4crc application/x-t3vm-image t3 application/x-tads gam application/x-tar tar application/x-tcl tcl application/x-tex tex application/x-tex-gf gf application/x-tex-pk pk application/x-tex-tfm tfm application/x-texinfo texi texinfo application/x-tgif obj application/x-trash % bak old sik ~ application/x-troff roff t tr application/x-troff-man man application/x-troff-me me application/x-troff-ms ms application/x-ustar ustar application/x-videolan application/x-wais-source src application/x-wingz wz application/x-x509-ca-cert crt der application/x-xcf xcf application/x-xfig fig application/x-xliff+xml xlf application/x-xpinstall xpi application/x-xz xz application/x-zmachine z1 z2 z3 z4 z5 z6 z7 z8 application/x400-bp application/xaml+xml xaml application/xcap-att+xml application/xcap-caps+xml application/xcap-diff+xml xdf application/xcap-el+xml application/xcap-error+xml application/xcap-ns+xml application/xcon-conference-info+xml application/xcon-conference-info-diff+xml application/xenc+xml xenc application/xhtml+xml xht xhtml application/xhtml-voice+xml application/xml xml xsd xsl application/xml-dtd dtd application/xml-external-parsed-entity application/xmpp+xml application/xop+xml xop application/xproc+xml xpl application/xslt+xml xslt application/xspf+xml xspf application/xv+xml mxml xhvml xvm xvml application/yang yang application/yin+xml yin application/zip zip application/zlib audio/1d-interleaved-parityfec audio/32kadpcm audio/3gpp audio/3gpp2 audio/AMR audio/AMR-WB audio/ATRAC-ADVANCED-LOSSLESS audio/ATRAC-X audio/ATRAC3 audio/BV16 audio/BV32 audio/CN audio/DAT12 audio/DV audio/DVI4 audio/EVRC audio/EVRC-QCP audio/EVRC0 audio/EVRC1 audio/EVRCB audio/EVRCB0 audio/EVRCB1 audio/EVRCWB audio/EVRCWB0 audio/EVRCWB1 audio/G719 audio/G722 audio/G7221 audio/G723 audio/G726-16 audio/G726-24 audio/G726-32 audio/G726-40 audio/G728 audio/G729 audio/G7291 audio/G729D audio/G729E audio/GSM audio/GSM-EFR audio/GSM-HR-08 audio/L16 audio/L20 audio/L24 audio/L8 audio/LPC audio/MP4A-LATM audio/MPA audio/PCMA audio/PCMA-WB audio/PCMU audio/PCMU-WB audio/QCELP audio/RED audio/SMV audio/SMV-QCP audio/SMV0 audio/UEMCLIP audio/VDVI audio/VMR-WB audio/ac3 audio/adpcm adp audio/amr amr audio/amr-wb awb audio/amr-wb+ audio/annodex axa audio/asc audio/basic au snd audio/bv16 audio/bv32 audio/clearmode audio/cn audio/csound csd orc sco audio/dat12 audio/dls audio/dsr-es201108 audio/dsr-es202050 audio/dsr-es202211 audio/dsr-es202212 audio/dvi4 audio/eac3 audio/evrc audio/evrc-qcp audio/evrc0 audio/evrc1 audio/evrcb audio/evrcb0 audio/evrcb1 audio/evrcwb audio/evrcwb0 audio/evrcwb1 audio/example audio/flac flac audio/fwdred audio/g.722.1 audio/g719 audio/g722 audio/g7221 audio/g723 audio/g726-16 audio/g726-24 audio/g726-32 audio/g726-40 audio/g728 audio/g729 audio/g7291 audio/g729d audio/g729e audio/gsm audio/gsm-efr audio/iLBC audio/ilbc audio/ip-mr_v2.5 audio/l16 audio/l20 audio/l24 audio/l8 audio/lpc audio/midi kar mid midi rmi audio/mobile-xmf audio/mp4 mp4a audio/mp4a-latm audio/mpa audio/mpa-robust audio/mpeg m2a m3a m4a mp2 mp2a mp3 mpega mpga audio/mpeg4-generic audio/mpegurl m3u audio/ogg oga ogg opus spx audio/parityfec audio/pcma audio/pcma-wb audio/pcmu audio/pcmu-wb audio/prs.sid sid audio/qcelp audio/raptorfec audio/red audio/rtp-enc-aescm128 audio/rtp-midi audio/rtx audio/s3m s3m audio/silk sil audio/smv audio/smv-qcp audio/smv0 audio/sp-midi audio/speex audio/t140c audio/t38 audio/telephone-event audio/tone audio/ulpfec audio/vdvi audio/vmr-wb audio/vnd.3gpp.iufp audio/vnd.4SB audio/vnd.4sb audio/vnd.CELP audio/vnd.audiokoz audio/vnd.celp audio/vnd.cisco.nse audio/vnd.cmles.radio-events audio/vnd.cns.anp1 audio/vnd.cns.inf1 audio/vnd.dece.audio uva uvva audio/vnd.digital-winds eol audio/vnd.dlna.adts audio/vnd.dolby.heaac.1 audio/vnd.dolby.heaac.2 audio/vnd.dolby.mlp audio/vnd.dolby.mps audio/vnd.dolby.pl2 audio/vnd.dolby.pl2x audio/vnd.dolby.pl2z audio/vnd.dolby.pulse.1 audio/vnd.dra dra audio/vnd.dts dts audio/vnd.dts.hd dtshd audio/vnd.dvb.file audio/vnd.everad.plj audio/vnd.hns.audio audio/vnd.lucent.voice lvp audio/vnd.ms-playready.media.pya pya audio/vnd.nokia.mobile-xmf audio/vnd.nortel.vbk audio/vnd.nuera.ecelp4800 ecelp4800 audio/vnd.nuera.ecelp7470 ecelp7470 audio/vnd.nuera.ecelp9600 ecelp9600 audio/vnd.octel.sbc audio/vnd.qcelp audio/vnd.rhetorex.32kadpcm audio/vnd.rip rip audio/vnd.sealedmedia.softseal.mpeg audio/vnd.vmx.cvsd audio/vorbis audio/vorbis-config audio/webm weba audio/x-aac aac audio/x-aiff aif aifc aiff audio/x-caf caf audio/x-flac flac audio/x-gsm gsm audio/x-matroska mka audio/x-mpegurl m3u audio/x-ms-wax wax audio/x-ms-wma wma audio/x-pn-realaudio ra ram rm audio/x-pn-realaudio-plugin rmp audio/x-realaudio ra audio/x-scpls pls audio/x-sd2 sd2 audio/x-wav wav audio/xm xm chemical/x-alchemy alc chemical/x-cache cac cache chemical/x-cache-csf csf chemical/x-cactvs-binary cascii cbin ctab chemical/x-cdx cdx chemical/x-cerius cer chemical/x-chem3d c3d chemical/x-chemdraw chm chemical/x-cif cif chemical/x-cmdf cmdf chemical/x-cml cml chemical/x-compass cpa chemical/x-crossfire bsd chemical/x-csml csm csml chemical/x-ctx ctx chemical/x-cxf cef cxf chemical/x-embl-dl-nucleotide emb embl chemical/x-galactic-spc spc chemical/x-gamess-input gam gamin inp chemical/x-gaussian-checkpoint fch fchk chemical/x-gaussian-cube cub chemical/x-gaussian-input gau gjc gjf chemical/x-gaussian-log gal chemical/x-gcg8-sequence gcg chemical/x-genbank gen chemical/x-hin hin chemical/x-isostar ist istr chemical/x-jcamp-dx dx jdx chemical/x-kinemage kin chemical/x-macmolecule mcm chemical/x-macromodel-input mmd mmod chemical/x-mdl-molfile mol chemical/x-mdl-rdfile rd chemical/x-mdl-rxnfile rxn chemical/x-mdl-sdfile sd sdf chemical/x-mdl-tgf tgf chemical/x-mmcif mcif chemical/x-mol2 mol2 chemical/x-molconn-Z b chemical/x-mopac-graph gpt chemical/x-mopac-input dat mop mopcrt mpc zmt chemical/x-mopac-out moo chemical/x-mopac-vib mvb chemical/x-ncbi-asn1 asn chemical/x-ncbi-asn1-ascii ent prt chemical/x-ncbi-asn1-binary aso val chemical/x-ncbi-asn1-spec asn chemical/x-pdb ent pdb chemical/x-rosdal ros chemical/x-swissprot sw chemical/x-vamas-iso14976 vms chemical/x-vmd vmd chemical/x-xtel xtel chemical/x-xyz xyz image/bmp bmp image/cgm cgm image/example image/fits image/g3fax g3 image/gif gif image/ief ief image/jp2 image/jpeg jpe jpeg jpg image/jpm image/jpx image/ktx ktx image/naplps image/pcx pcx image/png png image/prs.btif btif image/prs.pti image/pwg-raster image/sgi sgi image/svg+xml svg svgz image/t38 image/tiff tif tiff image/tiff-fx image/vnd.adobe.photoshop psd image/vnd.airzip.accelerator.azv image/vnd.cns.inf2 image/vnd.dece.graphic uvg uvi uvvg uvvi image/vnd.djvu djv djvu image/vnd.dvb.subtitle sub image/vnd.dwg dwg image/vnd.dxf dxf image/vnd.fastbidsheet fbs image/vnd.fpx fpx image/vnd.fst fst image/vnd.fujixerox.edmics-mmr mmr image/vnd.fujixerox.edmics-rlc rlc image/vnd.globalgraphics.pgb image/vnd.microsoft.icon ico image/vnd.mix image/vnd.ms-modi mdi image/vnd.ms-photo wdp image/vnd.net-fpx npx image/vnd.radiance image/vnd.sealed.png image/vnd.sealedmedia.softseal.gif image/vnd.sealedmedia.softseal.jpg image/vnd.svf image/vnd.wap.wbmp wbmp image/vnd.xiff xif image/webp webp image/x-3ds 3ds image/x-canon-cr2 cr2 image/x-canon-crw crw image/x-cmu-raster ras image/x-cmx cmx image/x-coreldraw cdr image/x-coreldrawpattern pat image/x-coreldrawtemplate cdt image/x-corelphotopaint cpt image/x-epson-erf erf image/x-freehand fh fh4 fh5 fh7 fhc image/x-icon ico image/x-jg art image/x-jng jng image/x-mrsid-image sid image/x-ms-bmp bmp image/x-nikon-nef nef image/x-olympus-orf orf image/x-pcx pcx image/x-photoshop psd image/x-pict pct pic image/x-portable-anymap pnm image/x-portable-bitmap pbm image/x-portable-graymap pgm image/x-portable-pixmap ppm image/x-rgb rgb image/x-tga tga image/x-xbitmap xbm image/x-xpixmap xpm image/x-xwindowdump xwd inode/blockdevice inode/chardevice inode/directory inode/directory-locked inode/fifo inode/socket message/CPIM message/cpim message/delivery-status message/disposition-notification message/example message/external-body message/feedback-report message/global message/global-delivery-status message/global-disposition-notification message/global-headers message/http message/imdn+xml message/news message/partial message/rfc822 eml mime message/s-http message/sip message/sipfrag message/tracking-status message/vnd.si.simp model/example model/iges iges igs model/mesh mesh msh silo model/vnd.collada+xml dae model/vnd.dwf dwf model/vnd.flatland.3dml model/vnd.gdl gdl model/vnd.gs-gdl model/vnd.gs.gdl model/vnd.gtw gtw model/vnd.moml+xml model/vnd.mts mts model/vnd.parasolid.transmit.binary model/vnd.parasolid.transmit.text model/vnd.vtu vtu model/vrml vrml wrl model/x3d+binary x3db x3dbz model/x3d+vrml x3dv x3dvz model/x3d+xml x3d x3dz multipart/alternative multipart/appledouble multipart/byteranges multipart/digest multipart/encrypted multipart/example multipart/form-data multipart/header-set multipart/mixed multipart/parallel multipart/related multipart/report multipart/signed multipart/voice-message text/cache-manifest appcache text/calendar ics icz ifb text/comma-separated-values csv text/css css text/csv csv text/directory text/dns text/ecmascript text/english text/enriched text/example text/h323 323 text/html htm html shtml text/iuls uls text/javascript text/mathml mml text/n3 n3 text/parityfec text/plain asc brf conf def diff in list log pot srt text txt text/prs.fallenstein.rst text/prs.lines.tag dsc text/red text/rfc822-headers text/richtext rtx text/rtf rtf text/rtp-enc-aescm128 text/rtx text/scriptlet sct wsc text/sgml sgm sgml text/t140 text/tab-separated-values tsv text/texmacs tm ts text/troff man me ms roff t tr text/turtle ttl text/ulpfec text/uri-list uri uris urls text/vcard vcard text/vnd.DMClientScript text/vnd.IPTC.NITF text/vnd.IPTC.NewsML text/vnd.abc text/vnd.curl curl text/vnd.curl.dcurl dcurl text/vnd.curl.mcurl mcurl text/vnd.curl.scurl scurl text/vnd.dmclientscript text/vnd.dvb.subtitle sub text/vnd.esmertec.theme-descriptor text/vnd.flatland.3dml text/vnd.fly fly text/vnd.fmi.flexstor flx text/vnd.graphviz gv text/vnd.in3d.3dml 3dml text/vnd.in3d.spot spot text/vnd.iptc.newsml text/vnd.iptc.nitf text/vnd.latex-z text/vnd.motorola.reflex text/vnd.ms-mediapackage text/vnd.net2phone.commcenter.command text/vnd.si.uricatalogue text/vnd.sun.j2me.app-descriptor jad text/vnd.trolltech.linguist text/vnd.wap.si text/vnd.wap.sl text/vnd.wap.wml wml text/vnd.wap.wmlscript wmls text/x-asm asm s text/x-bibtex bib text/x-boo boo text/x-c c cc cpp cxx dic h hh text/x-c++hdr h++ hh hpp hxx text/x-c++src c++ cc cpp cxx text/x-chdr h text/x-component htc text/x-crontab text/x-csh csh text/x-csrc c text/x-diff diff patch text/x-dsrc d text/x-fortran f f77 f90 for text/x-haskell hs text/x-java java text/x-java-source java text/x-lilypond ly text/x-literate-haskell lhs text/x-makefile text/x-moc moc text/x-nfo nfo text/x-opml opml text/x-pascal p pas text/x-pcs-gcd gcd text/x-perl pl pm text/x-psp psp text/x-python py text/x-scala scala text/x-server-parsed-html text/x-setext etx text/x-sfv sfv text/x-sh sh text/x-tcl tcl tk text/x-tex cls ltx sty tex text/x-uuencode uu text/x-vcalendar vcs text/x-vcard vcf text/xml text/xml-external-parsed-entity video/1d-interleaved-parityfec video/3gpp 3gp video/3gpp-tt video/3gpp2 3g2 video/BMPEG video/BT656 video/CelB video/DV video/H261 video/H263 video/H263-1998 video/H263-2000 video/H264 video/H264-RCDO video/H264-SVC video/JPEG video/MJ2 video/MP1S video/MP2P video/MP2T ts video/MP4V-ES video/MPV video/SMPTE292M video/annodex axv video/bmpeg video/bt656 video/celb video/dl dl video/dv dif dv video/example video/fli fli video/gl gl video/h261 h261 video/h263 h263 video/h263-1998 video/h263-2000 video/h264 h264 video/jpeg jpgv video/jpeg2000 video/jpm jpgm jpm video/mj2 mj2 mjp2 video/mp1s video/mp2p video/mp2t video/mp4 mp4 mp4v mpg4 video/mp4v-es video/mpeg m1v m2v mpe mpeg mpg video/mpeg4-generic video/mpv video/nv video/ogg ogv video/parityfec video/pointer video/quicktime mov qt video/raptorfec video/raw video/rtp-enc-aescm128 video/rtx video/smpte292m video/ulpfec video/vc1 video/vnd.CCTV video/vnd.cctv video/vnd.dece.hd uvh uvvh video/vnd.dece.mobile uvm uvvm video/vnd.dece.mp4 video/vnd.dece.pd uvp uvvp video/vnd.dece.sd uvs uvvs video/vnd.dece.video uvv uvvv video/vnd.directv.mpeg video/vnd.directv.mpeg-tts video/vnd.dlna.mpeg-tts video/vnd.dvb.file dvb video/vnd.fvt fvt video/vnd.hns.video video/vnd.iptvforum.1dparityfec-1010 video/vnd.iptvforum.1dparityfec-2005 video/vnd.iptvforum.2dparityfec-1010 video/vnd.iptvforum.2dparityfec-2005 video/vnd.iptvforum.ttsavc video/vnd.iptvforum.ttsmpeg2 video/vnd.motorola.video video/vnd.motorola.videop video/vnd.mpegurl m4u mxu video/vnd.ms-playready.media.pyv pyv video/vnd.mts video/vnd.nokia.interleaved-multimedia video/vnd.nokia.videovoip video/vnd.objectvideo video/vnd.sealed.mpeg1 video/vnd.sealed.mpeg4 video/vnd.sealed.swf video/vnd.sealedmedia.softseal.mov video/vnd.uvvu.mp4 uvu uvvu video/vnd.vivo viv video/webm webm video/x-f4v f4v video/x-fli fli video/x-flv flv video/x-la-asf lsf lsx video/x-m4v m4v video/x-matroska mk3d mks mkv mpv video/x-mng mng video/x-ms-asf asf asx video/x-ms-vob vob video/x-ms-wm wm video/x-ms-wmv wmv video/x-ms-wmx wmx video/x-ms-wvx wvx video/x-msvideo avi video/x-sgi-movie movie video/x-smv smv x-conference/x-cooltalk ice x-epoc/x-sisx-app sisx x-world/x-vrml vrm vrml wrl ================================================ FILE: board/common/overlay/etc/modprobe.d/modprobe.conf ================================================ # wifi options 8192cu rtw_power_mgnt=0 rtw_enusbss=0 options mwifiex disconnect_on_suspend=0 options rndis_wlan power_save=0 options b43 hwpctl=0 options ath6kl_core suspend_mode=1 options brcmfmac roamoff=1 ================================================ FILE: board/common/overlay/etc/modules ================================================ ================================================ FILE: board/common/overlay/etc/netwatch.conf ================================================ LINK_WATCH=true LINK_WATCH_TIMEOUT=20 IP_WATCH=true IP_WATCH_TIMEOUT=40 GW_WATCH=false GW_WATCH_RETRIES=3 GW_WATCH_INTERVAL=60 #NET_WATCH_HOST=www.google.com #NET_WATCH_PORT=80 NET_WATCH_DELAY=300 NET_WATCH_RETRIES=3 NET_WATCH_TIMEOUT=5 NET_WATCH_INTERVAL=60 test -s /data/etc/netwatch.conf && source /data/etc/netwatch.conf test -s /boot/netwatch.conf && source /boot/netwatch.conf ================================================ FILE: board/common/overlay/etc/nsswitch.conf ================================================ # /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-doc-reference' and `info' packages installed, try: # `info libc "Name Service Switch"' for information about this file. passwd: files group: files shadow: files hosts: files dns networks: files protocols: files services: files ethers: files rpc: files ================================================ FILE: board/common/overlay/etc/ntp.conf ================================================ pool pool.ntp.org iburst driftfile /var/lib/chrony.drift makestep 1000 10 rtcsync hwclockfile /data/etc/adjtime log tracking ================================================ FILE: board/common/overlay/etc/os.conf ================================================ OS_DEBUG="false" OS_PRERELEASES="false" OS_ETH="eth0" OS_WLAN="wlan0" OS_WLAN1="wlan1" OS_AP="ap0" OS_PPP="ppp0" OS_NETWORKLESS="false" OS_COUNTRY="GB" OS_FACTORY_RESET_GPIO="" OS_FACTORY_RESET_INPUT="" OS_FACTORY_RESET_LEVEL="1" OS_FACTORY_RESET_HOLD_SECONDS="10" OS_FIRMWARE_LATEST_STABLE="" OS_FIRMWARE_LATEST_BETA="" OS_FIRMWARE_URL="" OS_FIRMWARE_AUTO_UPDATE="false" OS_FIRMWARE_VERSIONS_STABLE="" OS_FIRMWARE_VERSIONS_BETA="" ================================================ FILE: board/common/overlay/etc/ppp/chatscripts/mobile.chat ================================================ ABORT 'BUSY' ABORT 'NO CARRIER' ABORT 'VOICE' ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT 'DELAYED' REPORT CONNECT TIMEOUT 6 '' 'ATQ0' 'OK-AT-OK' 'ATZ' TIMEOUT 3 'OK' @/data/etc/ppp/pin 'OK\d-AT-OK' 'ATI' 'OK' 'ATZ' 'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0' 'OK' @/data/etc/ppp/extra 'OK-AT-OK' @/data/etc/ppp/apn 'OK' 'ATDT*99***1#' TIMEOUT 30 CONNECT '' ================================================ FILE: board/common/overlay/etc/ppp/ip-up ================================================ #!/bin/sh resolv_conf=/etc/resolv.conf echo -n > ${resolv_conf} if [ -n "${DNS1}" ]; then echo "nameserver ${DNS1}" >> ${resolv_conf} fi if [ -n "${DNS2}" ]; then echo "nameserver ${DNS2}" >> ${resolv_conf} fi ================================================ FILE: board/common/overlay/etc/ppp/options ================================================ lock crtscts modem passive novj defaultroute noipdefault usepeerdns noauth hide-password persist holdoff 10 maxfail 0 ================================================ FILE: board/common/overlay/etc/ppp/peers/mobile ================================================ file /data/etc/ppp/modem file /etc/ppp/options file /data/etc/ppp/auth connect "/usr/sbin/chat -v -t15 -f /etc/ppp/chatscripts/mobile.chat" ================================================ FILE: board/common/overlay/etc/profile ================================================ export PATH=/bin:/sbin:/usr/bin:/usr/sbin # If running interactively, then: if [ "$PS1" ]; then if [ "$BASH" ]; then export PS1="[\u@\h \W]\\$ " alias ll='/bin/ls --color=tty -laFh' alias ls='/bin/ls --color=tty -F' export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:'; else if [ "`id -u`" -eq 0 ]; then export PS1='# ' else export PS1='$ ' fi fi export USER=`id -un` export LOGNAME=$USER export HOSTNAME=`/bin/hostname` export HISTSIZE=1000 export HISTFILESIZE=1000 export PAGER="/usr/bin/less" export EDITOR="/usr/bin/nano" export INPUTRC="/etc/inputrc" export TERM=linux fi; export HISTFILE=/data/.bash_history # custom local profile test -f /data/etc/profile && source /data/etc/profile # global environment variables set -a test -f /etc/environment && source /etc/environment test -f /data/etc/environment && source /data/etc/environment test -f /boot/etc/environment && source /boot/etc/environment set +a ================================================ FILE: board/common/overlay/etc/protocols ================================================ # Internet (IP) protocols # # Updated from http://www.iana.org/assignments/protocol-numbers and other # sources. ip 0 IP # internet protocol, pseudo protocol number hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883] icmp 1 ICMP # internet control message protocol igmp 2 IGMP # Internet Group Management ggp 3 GGP # gateway-gateway protocol ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') st 5 ST # ST datagram mode tcp 6 TCP # transmission control protocol egp 8 EGP # exterior gateway protocol igp 9 IGP # any private interior gateway (Cisco) pup 12 PUP # PARC universal packet protocol udp 17 UDP # user datagram protocol hmp 20 HMP # host monitoring protocol xns-idp 22 XNS-IDP # Xerox NS IDP rdp 27 RDP # "reliable datagram" protocol iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 [RFC905] dccp 33 DCCP # Datagram Congestion Control Prot. [RFC4340] xtp 36 XTP # Xpress Transfer Protocol ddp 37 DDP # Datagram Delivery Protocol idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport ipv6 41 IPv6 # Internet Protocol, version 6 ipv6-route 43 IPv6-Route # Routing Header for IPv6 ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6 idrp 45 IDRP # Inter-Domain Routing Protocol rsvp 46 RSVP # Reservation Protocol gre 47 GRE # General Routing Encapsulation esp 50 IPSEC-ESP # Encap Security Payload [RFC2406] ah 51 IPSEC-AH # Authentication Header [RFC2402] skip 57 SKIP # SKIP ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6 ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6 ipv6-opts 60 IPv6-Opts # Destination Options for IPv6 rspf 73 RSPF CPHB # Radio Shortest Path First (officially CPHB) vmtp 81 VMTP # Versatile Message Transport eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco) ospf 89 OSPFIGP # Open Shortest Path First IGP ax.25 93 AX.25 # AX.25 frames ipip 94 IPIP # IP-within-IP Encapsulation Protocol etherip 97 ETHERIP # Ethernet-within-IP Encapsulation [RFC3378] encap 98 ENCAP # Yet Another IP encapsulation [RFC1241] # 99 # any private encryption scheme pim 103 PIM # Protocol Independent Multicast ipcomp 108 IPCOMP # IP Payload Compression Protocol vrrp 112 VRRP # Virtual Router Redundancy Protocol [RFC5798] l2tp 115 L2TP # Layer Two Tunneling Protocol [RFC2661] isis 124 ISIS # IS-IS over IPv4 sctp 132 SCTP # Stream Control Transmission Protocol fc 133 FC # Fibre Channel mobility-header 135 Mobility-Header # Mobility Support for IPv6 [RFC3775] udplite 136 UDPLite # UDP-Lite [RFC3828] mpls-in-ip 137 MPLS-in-IP # MPLS-in-IP [RFC4023] manet 138 # MANET Protocols [RFC5498] hip 139 HIP # Host Identity Protocol shim6 140 Shim6 # Shim6 Protocol [RFC5533] wesp 141 WESP # Wrapped Encapsulating Security Payload rohc 142 ROHC # Robust Header Compression ================================================ FILE: board/common/overlay/etc/securetty ================================================ tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 ttyS0 ttyS1 ttyS2 ttyS3 ttyAMA0 ttyAMA1 ttyAMA2 ttyAMA3 ttySAC0 ttySAC1 ttySAC2 ttySAC3 ttyUL0 ttyUL1 ttyUL2 ttyUL3 ttyPS0 ttyPS1 ttyPSC0 ttyPSC1 ttyPSC2 ttyPSC3 ttyCPM0 ttyCPM1 ttyCPM2 ttyCPM3 ttymxc0 ttymxc1 ttymxc2 ttyO0 ttyO1 ttyO2 ttyO3 ttyAM0 ttyAM1 ttyAM2 ttySC0 ttySC1 ttySC2 ttySC3 ttySC4 ttySC5 ttySC6 ttySC7 ttyGS0 hvc0 hvc1 hvc2 hvc3 ================================================ FILE: board/common/overlay/etc/services ================================================ # /etc/services: # $Id: services,v 1.1 2004/10/09 02:49:18 andersen Exp $ # # Network services, Internet style # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, most entries here have two entries # even if the protocol doesn't support UDP operations. # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports # are included, only the more common ones. tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol msp 18/udp # message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp fsp 21/udp fspd ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp # 24 - private smtp 25/tcp mail # 26 - unassigned time 37/tcp timserver time 37/udp timserver rlp 39/udp resource # resource location nameserver 42/tcp name # IEN 116 whois 43/tcp nicname re-mail-ck 50/tcp # Remote Mail Checking Protocol re-mail-ck 50/udp # Remote Mail Checking Protocol domain 53/tcp nameserver # name-domain server domain 53/udp nameserver mtp 57/tcp # deprecated bootps 67/tcp # BOOTP server bootps 67/udp bootpc 68/tcp # BOOTP client bootpc 68/udp tftp 69/udp gopher 70/tcp # Internet Gopher gopher 70/udp rje 77/tcp netrjs finger 79/tcp www 80/tcp http # WorldWideWeb HTTP www 80/udp # HyperText Transfer Protocol link 87/tcp ttylink kerberos 88/tcp kerberos5 krb5 # Kerberos v5 kerberos 88/udp kerberos5 krb5 # Kerberos v5 supdup 95/tcp # 100 - reserved hostnames 101/tcp hostname # usually from sri-nic iso-tsap 102/tcp tsap # part of ISODE. csnet-ns 105/tcp cso-ns # also used by CSO name server csnet-ns 105/udp cso-ns # unfortunately the poppassd (Eudora) uses a port which has already # been assigned to a different service. We list the poppassd as an # alias here. This should work for programs asking for this service. # (due to a bug in inetd the 3com-tsmux line is disabled) #3com-tsmux 106/tcp poppassd #3com-tsmux 106/udp poppassd rtelnet 107/tcp # Remote Telnet rtelnet 107/udp pop-2 109/tcp postoffice # POP version 2 pop-2 109/udp pop-3 110/tcp # POP version 3 pop-3 110/udp sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP auth 113/tcp authentication tap ident sftp 115/tcp uucp-path 117/tcp nntp 119/tcp readnews untp # USENET News Transfer Protocol ntp 123/tcp ntp 123/udp # Network Time Protocol netbios-ns 137/tcp # NETBIOS Name Service netbios-ns 137/udp netbios-dgm 138/tcp # NETBIOS Datagram Service netbios-dgm 138/udp netbios-ssn 139/tcp # NETBIOS session service netbios-ssn 139/udp imap2 143/tcp # Interim Mail Access Proto v2 imap2 143/udp snmp 161/udp # Simple Net Mgmt Proto snmp-trap 162/udp snmptrap # Traps for SNMP cmip-man 163/tcp # ISO mgmt over IP (CMOT) cmip-man 163/udp cmip-agent 164/tcp cmip-agent 164/udp xdmcp 177/tcp # X Display Mgr. Control Proto xdmcp 177/udp nextstep 178/tcp NeXTStep NextStep # NeXTStep window nextstep 178/udp NeXTStep NextStep # server bgp 179/tcp # Border Gateway Proto. bgp 179/udp prospero 191/tcp # Cliff Neuman's Prospero prospero 191/udp irc 194/tcp # Internet Relay Chat irc 194/udp smux 199/tcp # SNMP Unix Multiplexer smux 199/udp at-rtmp 201/tcp # AppleTalk routing at-rtmp 201/udp at-nbp 202/tcp # AppleTalk name binding at-nbp 202/udp at-echo 204/tcp # AppleTalk echo at-echo 204/udp at-zis 206/tcp # AppleTalk zone information at-zis 206/udp qmtp 209/tcp # The Quick Mail Transfer Protocol qmtp 209/udp # The Quick Mail Transfer Protocol z3950 210/tcp wais # NISO Z39.50 database z3950 210/udp wais ipx 213/tcp # IPX ipx 213/udp imap3 220/tcp # Interactive Mail Access imap3 220/udp # Protocol v3 ulistserv 372/tcp # UNIX Listserv ulistserv 372/udp https 443/tcp # MCom https 443/udp # MCom snpp 444/tcp # Simple Network Paging Protocol snpp 444/udp # Simple Network Paging Protocol saft 487/tcp # Simple Asynchronous File Transfer saft 487/udp # Simple Asynchronous File Transfer npmp-local 610/tcp dqs313_qmaster # npmp-local / DQS npmp-local 610/udp dqs313_qmaster # npmp-local / DQS npmp-gui 611/tcp dqs313_execd # npmp-gui / DQS npmp-gui 611/udp dqs313_execd # npmp-gui / DQS hmmp-ind 612/tcp dqs313_intercell# HMMP Indication / DQS hmmp-ind 612/udp dqs313_intercell# HMMP Indication / DQS # # UNIX specific services # exec 512/tcp biff 512/udp comsat login 513/tcp who 513/udp whod shell 514/tcp cmd # no passwords used syslog 514/udp printer 515/tcp spooler # line printer spooler talk 517/udp ntalk 518/udp route 520/udp router routed # RIP timed 525/udp timeserver tempo 526/tcp newdate courier 530/tcp rpc conference 531/tcp chat netnews 532/tcp readnews netwall 533/udp # -for emergency broadcasts uucp 540/tcp uucpd # uucp daemon afpovertcp 548/tcp # AFP over TCP afpovertcp 548/udp # AFP over TCP remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem klogin 543/tcp # Kerberized `rlogin' (v5) kshell 544/tcp krcmd # Kerberized `rsh' (v5) kerberos-adm 749/tcp # Kerberos `kadmin' (v5) # webster 765/tcp # Network dictionary webster 765/udp # # From ``Assigned Numbers'': # #> The Registered Ports are not controlled by the IANA and on most systems #> can be used by ordinary user processes or programs executed by ordinary #> users. # #> Ports are used in the TCP [45,106] to name the ends of logical #> connections which carry long term conversations. For the purpose of #> providing services to unknown callers, a service contact port is #> defined. This list specifies the port used by the server process as its #> contact port. While the IANA can not control uses of these ports it #> does register or list uses of these ports as a convienence to the #> community. # nfsdstatus 1110/tcp nfsd-keepalive 1110/udp ingreslock 1524/tcp ingreslock 1524/udp prospero-np 1525/tcp # Prospero non-privileged prospero-np 1525/udp datametrics 1645/tcp old-radius # datametrics / old radius entry datametrics 1645/udp old-radius # datametrics / old radius entry sa-msg-port 1646/tcp old-radacct # sa-msg-port / old radacct entry sa-msg-port 1646/udp old-radacct # sa-msg-port / old radacct entry radius 1812/tcp # Radius radius 1812/udp # Radius radacct 1813/tcp # Radius Accounting radacct 1813/udp # Radius Accounting nfsd 2049/tcp nfs nfsd 2049/udp nfs cvspserver 2401/tcp # CVS client/server operations cvspserver 2401/udp # CVS client/server operations mysql 3306/tcp # MySQL mysql 3306/udp # MySQL rfe 5002/tcp # Radio Free Ethernet rfe 5002/udp # Actually uses UDP only cfengine 5308/tcp # CFengine cfengine 5308/udp # CFengine bbs 7000/tcp # BBS service # # # Kerberos (Project Athena/MIT) services # Note that these are for Kerberos v4, and are unofficial. Sites running # v4 should uncomment these and comment out the v5 entries above. # kerberos4 750/udp kerberos-iv kdc # Kerberos (server) udp kerberos4 750/tcp kerberos-iv kdc # Kerberos (server) tcp kerberos_master 751/udp # Kerberos authentication kerberos_master 751/tcp # Kerberos authentication passwd_server 752/udp # Kerberos passwd server krb_prop 754/tcp # Kerberos slave propagation krbupdate 760/tcp kreg # Kerberos registration kpasswd 761/tcp kpwd # Kerberos "passwd" kpop 1109/tcp # Pop with Kerberos knetd 2053/tcp # Kerberos de-multiplexor zephyr-srv 2102/udp # Zephyr server zephyr-clt 2103/udp # Zephyr serv-hm connection zephyr-hm 2104/udp # Zephyr hostmanager eklogin 2105/tcp # Kerberos encrypted rlogin # # Unofficial but necessary (for NetBSD) services # supfilesrv 871/tcp # SUP server supfiledbg 1127/tcp # SUP debugging # # Datagram Delivery Protocol services # rtmp 1/ddp # Routing Table Maintenance Protocol nbp 2/ddp # Name Binding Protocol echo 4/ddp # AppleTalk Echo Protocol zip 6/ddp # Zone Information Protocol # # Services added for the Debian GNU/Linux distribution poppassd 106/tcp # Eudora poppassd 106/udp # Eudora mailq 174/tcp # Mailer transport queue for Zmailer mailq 174/tcp # Mailer transport queue for Zmailer omirr 808/tcp omirrd # online mirror omirr 808/udp omirrd # online mirror rmtcfg 1236/tcp # Gracilis Packeten remote config server xtel 1313/tcp # french minitel coda_opcons 1355/udp # Coda opcons (Coda fs) coda_venus 1363/udp # Coda venus (Coda fs) coda_auth 1357/udp # Coda auth (Coda fs) coda_udpsrv 1359/udp # Coda udpsrv (Coda fs) coda_filesrv 1361/udp # Coda filesrv (Coda fs) codacon 1423/tcp venus.cmu # Coda Console (Coda fs) coda_aux1 1431/tcp # coda auxiliary service (Coda fs) coda_aux1 1431/udp # coda auxiliary service (Coda fs) coda_aux2 1433/tcp # coda auxiliary service (Coda fs) coda_aux2 1433/udp # coda auxiliary service (Coda fs) coda_aux3 1435/tcp # coda auxiliary service (Coda fs) coda_aux3 1435/udp # coda auxiliary service (Coda fs) cfinger 2003/tcp # GNU Finger afbackup 2988/tcp # Afbackup system afbackup 2988/udp # Afbackup system icp 3130/tcp # Internet Cache Protocol (Squid) icp 3130/udp # Internet Cache Protocol (Squid) postgres 5432/tcp # POSTGRES postgres 5432/udp # POSTGRES fax 4557/tcp # FAX transmission service (old) hylafax 4559/tcp # HylaFAX client-server protocol (new) noclog 5354/tcp # noclogd with TCP (nocol) noclog 5354/udp # noclogd with UDP (nocol) hostmon 5355/tcp # hostmon uses TCP (nocol) hostmon 5355/udp # hostmon uses TCP (nocol) ircd 6667/tcp # Internet Relay Chat ircd 6667/udp # Internet Relay Chat webcache 8080/tcp # WWW caching service webcache 8080/udp # WWW caching service tproxy 8081/tcp # Transparent Proxy tproxy 8081/udp # Transparent Proxy mandelspawn 9359/udp mandelbrot # network mandelbrot amanda 10080/udp # amanda backup services amandaidx 10082/tcp # amanda backup services amidxtape 10083/tcp # amanda backup services isdnlog 20011/tcp # isdn logging system isdnlog 20011/udp # isdn logging system vboxd 20012/tcp # voice box system vboxd 20012/udp # voice box system binkp 24554/tcp # Binkley binkp 24554/udp # Binkley asp 27374/tcp # Address Search Protocol asp 27374/udp # Address Search Protocol tfido 60177/tcp # Ifmail tfido 60177/udp # Ifmail fido 60179/tcp # Ifmail fido 60179/udp # Ifmail # Local services ================================================ FILE: board/common/overlay/etc/ssh/sshd_config ================================================ ListenAddress 0.0.0.0 PermitRootLogin yes PermitEmptyPasswords yes UseDNS no Banner /var/run/ssh/sshd_banner Subsystem sftp /usr/libexec/sftp-server IPQoS cs0 cs0 KexAlgorithms sntrup761x25519-sha512@openssh.com,curve25519-sha256 ================================================ FILE: board/common/overlay/etc/syslog.conf ================================================ syslog.=info /dev/null *.*;syslog.!info /var/log/messages ================================================ FILE: board/common/overlay/etc/udev/rules.d/61-usb-storage.rules ================================================ SUBSYSTEMS=="scsi", ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ext2|ext3|ext4" RUN+="/bin/mkdir -p /data/media/%k", RUN+="/bin/mount /dev/%k /data/media/%k" SUBSYSTEMS=="scsi", ACTION=="remove", ENV{ID_FS_TYPE}=="vfat|ext2|ext3|ext4" RUN+="/bin/umount /data/media/%k" RUN+="/bin/rmdir /data/media/%k" SUBSYSTEMS=="scsi", ACTION=="add", ENV{ID_FS_TYPE}=="ntfs" RUN+="/bin/mkdir -p /data/media/%k", RUN+="/usr/bin/ntfs-3g /dev/%k /data/media/%k" SUBSYSTEMS=="scsi", ACTION=="remove", ENV{ID_FS_TYPE}=="ntfs" RUN+="/bin/umount /data/media/%k" RUN+="/bin/rmdir /data/media/%k" ================================================ FILE: board/common/overlay/etc/version ================================================ OS_NAME="thingOS" OS_SHORT_NAME="thingos" OS_PREFIX="thing" OS_VERSION="unknown" ================================================ FILE: board/common/overlay/etc/wpa_supplicant.conf ================================================ update_config=1 ctrl_interface=/var/run/wpa_supplicant network={ scan_ssid=1 } ================================================ FILE: board/common/overlay/sbin/dhclient-script ================================================ #!/bin/bash make_resolv_conf() { # ignore DNS if explicitly not requested in conf file grep -q request /var/cache/dhclient.conf.${interface} &>/dev/null && return resolv_conf=/etc/resolv.conf echo -n > $resolv_conf # DHCPv4 if [ -n "$new_domain_search" ] || [ -n "$new_domain_name" ] || [ -n "$new_domain_name_servers" ]; then if [ -n "$new_domain_name" ]; then echo domain ${new_domain_name%% *} >>$resolv_conf fi if [ -n "$new_domain_search" ]; then if [ -n "$new_domain_name" ]; then domain_in_search_list="" for domain in $new_domain_search; do if [ "$domain" = "${new_domain_name}" ] || [ "$domain" = "${new_domain_name}." ]; then domain_in_search_list="Yes" fi done if [ -z "$domain_in_search_list" ]; then new_domain_search="$new_domain_name $new_domain_search" fi fi echo "search ${new_domain_search}" >> $resolv_conf elif [ -n "$new_domain_name" ]; then echo "search ${new_domain_name}" >> $resolv_conf fi if [ -n "$new_domain_name_servers" ]; then for nameserver in $new_domain_name_servers; do echo nameserver $nameserver >>$resolv_conf done else # keep 'old' nameservers sed -n /^\w*[Nn][Aa][Mm][Ee][Ss][Ee][Rr][Vv][Ee][Rr]/p /etc/resolv.conf >>$resolv_conf fi # DHCPv6 elif [ -n "$new_dhcp6_domain_search" ] || [ -n "$new_dhcp6_name_servers" ]; then if [ -n "$new_dhcp6_domain_search" ]; then echo "search ${new_dhcp6_domain_search}" >> $resolv_conf fi if [ -n "$new_dhcp6_name_servers" ]; then for nameserver in $new_dhcp6_name_servers; do # append %interface to link-local-address nameservers if [ "${nameserver##fe80::}" != "$nameserver" ] || [ "${nameserver##FE80::}" != "$nameserver" ]; then nameserver="${nameserver}%${interface}" fi echo nameserver $nameserver >>$resolv_conf done else # keep 'old' nameservers sed -n /^\w*[Nn][Aa][Mm][Ee][Ss][Ee][Rr][Vv][Ee][Rr]/p /etc/resolv.conf >>$resolv_conf fi fi } # set host name set_hostname() { local current_hostname if [ -n "$new_host_name" ]; then current_hostname=$(hostname) # current host name is empty, '(none)' or 'localhost' or differs from new one from DHCP if [ -z "$current_hostname" ] || [ "$current_hostname" = '(none)' ] || [ "$current_hostname" = 'localhost' ] || [ "$current_hostname" = "$old_host_name" ]; then if [ "$new_host_name" != "$old_host_name" ]; then hostname "$new_host_name" fi fi fi } # Must be used on exit. Invokes the local dhcp client exit hooks, if any. exit_with_hooks() { exit_status=$1 if [ -f /etc/dhclient-exit-hooks ]; then . /etc/dhclient-exit-hooks fi exit $exit_status } # The 576 MTU is only used for X.25 and dialup connections # where the admin wants low latency. Such a low MTU can cause # problems with UDP traffic, among other things. As such, # disallow MTUs from 576 and below by default, so that broken # MTUs are ignored, but higher stuff is allowed (1492, 1500, etc). if [ -z "$new_interface_mtu" ] || [ "$new_interface_mtu" -le 576 ]; then new_interface_mtu='' fi # The action starts here # Invoke the local dhcp client enter hooks, if they exist. if [ -f /etc/dhclient-enter-hooks ]; then exit_status=0 . /etc/dhclient-enter-hooks if [ $exit_status -ne 0 ]; then exit $exit_status fi fi # Execute the operation case "$reason" in ### DHCPv4 Handlers MEDIUM|ARPCHECK|ARPSEND) # Do nothing ;; PREINIT) # The DHCP client is requesting that an interface be # configured as required in order to send packets prior to # receiving an actual address. - dhclient-script(8) # ensure interface is up ip link set dev ${interface} up if [ -n "$alias_ip_address" ]; then # flush alias IP from interface ip -4 addr flush dev ${interface} label ${interface}:0 fi ;; BOUND|RENEW|REBIND|REBOOT) set_hostname if [ -n "$old_ip_address" ] && [ -n "$alias_ip_address" ] && [ "$alias_ip_address" != "$old_ip_address" ]; then # alias IP may have changed => flush it ip -4 addr flush dev ${interface} label ${interface}:0 fi if [ -n "$old_ip_address" ] && [ "$old_ip_address" != "$new_ip_address" ]; then # leased IP has changed => flush it ip -4 addr flush dev ${interface} label ${interface} fi if [ -z "$old_ip_address" ] || [ "$old_ip_address" != "$new_ip_address" ] || [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then # new IP has been leased or leased IP changed => set it ip -4 addr add ${new_ip_address}${new_subnet_mask:+/$new_subnet_mask} \ ${new_broadcast_address:+broadcast $new_broadcast_address} \ dev ${interface} label ${interface} if [ -n "$new_interface_mtu" ]; then # set MTU ip link set dev ${interface} mtu ${new_interface_mtu} fi # set if_metric if IF_METRIC is set or there's more than one router if_metric="$IF_METRIC" if [ "${new_routers%% *}" != "${new_routers}" ]; then if_metric=${if_metric:-1} fi for router in $new_routers; do # ignore routes if explicitly not requested in conf file grep -q request /var/cache/dhclient.conf.${interface} &>/dev/null && continue if [ "$new_subnet_mask" = "255.255.255.255" ]; then # point-to-point connection => set explicit route ip -4 route add ${router} dev $interface >/dev/null 2>&1 fi # set default route ip -4 route add default via ${router} dev ${interface} \ ${if_metric:+metric $if_metric} >/dev/null 2>&1 if [ -n "$if_metric" ]; then if_metric=$((if_metric+1)) fi done fi if [ -n "$alias_ip_address" ] && [ "$new_ip_address" != "$alias_ip_address" ]; then # separate alias IP given, which may have changed # => flush it, set it & add host route to it ip -4 addr flush dev ${interface} label ${interface}:0 ip -4 addr add ${alias_ip_address}${alias_subnet_mask:+/$alias_subnet_mask} \ dev ${interface} label ${interface}:0 ip -4 route add ${alias_ip_address} dev ${interface} >/dev/null 2>&1 fi # update /etc/resolv.conf make_resolv_conf ;; EXPIRE|FAIL|RELEASE|STOP) if [ -n "$alias_ip_address" ]; then # flush alias IP ip -4 addr flush dev ${interface} label ${interface}:0 fi if [ -n "$old_ip_address" ]; then # flush leased IP ip -4 addr flush dev ${interface} label ${interface} fi if [ -n "$alias_ip_address" ]; then # alias IP given => set it & add host route to it ip -4 addr add ${alias_ip_address}${alias_network_arg} \ dev ${interface} label ${interface}:0 ip -4 route add ${alias_ip_address} dev ${interface} >/dev/null 2>&1 fi ;; TIMEOUT) if [ -n "$alias_ip_address" ]; then # flush alias IP ip -4 addr flush dev ${interface} label ${interface}:0 fi # set IP from recorded lease ip -4 addr add ${new_ip_address}${new_subnet_mask:+/$new_subnet_mask} \ ${new_broadcast_address:+broadcast $new_broadcast_address} \ dev ${interface} label ${interface} if [ -n "$new_interface_mtu" ]; then # set MTU ip link set dev ${interface} mtu ${new_interface_mtu} fi # if there is no router recorded in the lease or the 1st router answers pings if [ -z "$new_routers" ] || ping -q -c 1 "${new_routers%% *}"; then if [ -n "$alias_ip_address" ] && [ "$new_ip_address" != "$alias_ip_address" ]; then # separate alias IP given => set up the alias IP & add host route to it ip -4 addr add ${alias_ip_address}${alias_subnet_mask:+/$alias_subnet_mask} \ dev ${interface} label ${interface}:0 ip -4 route add ${alias_ip_address} dev ${interface} >/dev/null 2>&1 fi # set if_metric if IF_METRIC is set or there's more than one router if_metric="$IF_METRIC" if [ "${new_routers%% *}" != "${new_routers}" ]; then if_metric=${if_metric:-1} fi # set default route for router in $new_routers; do ip -4 route add default via ${router} dev ${interface} \ ${if_metric:+metric $if_metric} >/dev/null 2>&1 if [ -n "$if_metric" ]; then if_metric=$((if_metric+1)) fi done # update /etc/resolv.conf make_resolv_conf else # flush all IPs from interface ip -4 addr flush dev ${interface} exit_with_hooks 1 fi ;; ### DHCPv6 Handlers # TODO handle prefix change: ?based on ${old_ip6_prefix} and ${new_ip6_prefix}? PREINIT6) # ensure interface is up ip link set ${interface} up # flush any stale global permanent IPs from interface ip -6 addr flush dev ${interface} scope global permanent ;; BOUND6|RENEW6|REBIND6) if [ "${new_ip6_address}" ] && [ "${new_ip6_prefixlen}" ]; then # set leased IP ip -6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \ dev ${interface} scope global fi # update /etc/resolv.conf if [ "${reason}" = BOUND6 ] || [ "${new_dhcp6_name_servers}" != "${old_dhcp6_name_servers}" ] || [ "${new_dhcp6_domain_search}" != "${old_dhcp6_domain_search}" ]; then make_resolv_conf fi ;; DEPREF6) if [ -z "${cur_ip6_prefixlen}" ]; then exit_with_hooks 1 fi # set preferred lifetime of leased IP to 0 ip -6 addr change ${cur_ip6_address}/${cur_ip6_prefixlen} \ dev ${interface} scope global preferred_lft 0 ;; EXPIRE6|RELEASE6|STOP6) if [ -z "${old_ip6_address}" ] || [ -z "${old_ip6_prefixlen}" ]; then exit_with_hooks 1 fi # delete leased IP ip -6 addr del ${old_ip6_address}/${old_ip6_prefixlen} \ dev ${interface} ;; esac exit_with_hooks 0 ================================================ FILE: board/common/overlay/sbin/fwupdate ================================================ #!/bin/bash #### Usage #### function exit_usage() { echo "Manage the OS firmware on this device." echo "" echo "Usage:" echo " fwupdate current" echo " shows the current version" echo " fwupdate latest" echo " shows the latest available version with details" echo " fwupdate list []" echo " list available firmware versions" echo " fwupdate download " echo " downloads a specific firmware OS image" echo " fwupdate extract" echo " extracts the downloaded firmware archive" echo " fwupdate flashboot" echo " flashes the boot partition from extracted image" echo " fwupdate flashreboot" echo " prepares for reboot + root partition flashing" echo " fwupdate status" echo " shows the current firmware installing process status; see below" echo " fwupdate install " echo " performs all the operations necessary for installing a certain firmware version" echo " fwupdate auto [on|off]" echo " controls the automatic firmware update mechanism" echo " fwupdate prereleases [on|off]" echo " enables or disables prereleases (beta) channel" echo "" echo "Statuses:" echo " idle" echo " downloading [version]" echo " downloaded [version]" echo " extracting [version]" echo " extracted [version]" echo " flashing boot [version]" echo " boot flashed [version]" echo " rebooting [version]" echo "" exit 1 } if [[ -z "$1" ]]; then exit_usage fi #### Configuration #### set -a set -e LATEST_VERSION_CMD=/usr/libexec/os-latest-version MIN_FREE_DISK=500 # MB DISK_CLEANUP_SCRIPT=/usr/libexec/disk-cleanup FW_DIR=/data/.fwupdate FW_FILE_GZ=${FW_DIR}/firmware.img.gz FW_FILE_XZ=${FW_DIR}/firmware.img.xz FW_FILE_EXTR=${FW_DIR}/firmware.img VER_FILE=${FW_DIR}/version BOOT_INFO_FILE=${FW_DIR}/boot_info ROOT_INFO_FILE=${FW_DIR}/root_info DOWNLOAD_STARTED_FILE=${FW_DIR}/download_started DOWNLOAD_DONE_FILE=${FW_DIR}/download_done EXTRACT_STARTED_FILE=${FW_DIR}/extract_started EXTRACT_DONE_FILE=${FW_DIR}/extract_done FLASH_BOOT_STARTED_FILE=${FW_DIR}/flash_boot_started FLASH_BOOT_DONE_FILE=${FW_DIR}/flash_boot_done FLASH_REBOOT_STARTED_FILE=${FW_DIR}/flash_reboot_started ERROR_FILE=${FW_DIR}/error TMP_BOOT_DIR=/tmp/fwupdate_boot TMP_ROOT_DIR=/tmp/fwupdate_root CURL_LOG_FILE=${FW_DIR}/curl.log CURL_PID_FILE=${FW_DIR}/curl.pid GUNZIP_LOG_FILE=${FW_DIR}/gunzip.log GUNZIP_PID_FILE=${FW_DIR}/gunzip.pid XZCAT_LOG_FILE=${FW_DIR}/xzcat.log XZCAT_PID_FILE=${FW_DIR}/xzcat.pid DD_LOG_FILE=${FW_DIR}/dd.log DD_PID_FILE=${FW_DIR}/dd.pid BOOT_LOOP="/dev/loop3" ROOT_LOOP="/dev/loop4" boot_mounted_rw=false source /etc/init.d/base #### Utils #### function expand_placeholders() { # $1 - template with placeholders # $2 - optional version echo "$1" | \ sed "s,\${platform},${BOARD_NAME},g" | \ sed "s,\${os_prefix},${OS_PREFIX},g" | \ sed "s,\${os_short_name},${OS_SHORT_NAME},g" | \ sed "s,\${version},$2,g" } #### Cleanup on exit #### function cleanup_on_exit() { set +e echo "cleaning up" if [[ -f /sbin/reboot.bak ]]; then rm -f /sbin/reboot mv /sbin/reboot.bak /sbin/reboot fi umount ${TMP_BOOT_DIR} 2>/dev/null umount ${TMP_ROOT_DIR} 2>/dev/null losetup -d ${BOOT_LOOP} 2>/dev/null losetup -d ${ROOT_LOOP} 2>/dev/null if [[ ${boot_mounted_rw} == true ]]; then mount -T /tmp/fstab.disk /boot 2>/dev/null mount -o remount,ro /boot fi # remove *started files since corresponding processes have normally exited rm -f ${DOWNLOAD_STARTED_FILE} rm -f ${EXTRACT_STARTED_FILE} rm -f ${FLASH_BOOT_STARTED_FILE} rm -f ${FLASH_REBOOT_STARTED_FILE} } #### Disk & partition devices #### source /tmp/disk_info function reallocate_boot_part() { current_boot_info=$(fdisk --bytes -l -o device,start,end,size ${DISK_DEV} | grep "${BOOT_DEV}") current_boot_info=(${current_boot_info}) current_root_info=$(fdisk --bytes -l -o device,start,end,size ${DISK_DEV} | grep "${ROOT_DEV}") current_root_info=(${current_root_info}) boot_info=($(cat ${BOOT_INFO_FILE})) if [[ ${current_boot_info[1]} == ${boot_info[0]} ]] && [[ ${current_boot_info[3]} -ge $((${boot_info[2]} * 512)) ]]; then return # all good fi echo "reallocating boot partition" # check overlapping with root partition if [[ ${boot_info[1]} -ge ${current_root_info[1]} ]]; then echo "cannot reallocate boot partition: will overlap with root" return 1 fi fdisk -w auto ${DISK_DEV} >/dev/null </dev/null < ${VER_FILE} touch ${DOWNLOAD_DONE_FILE} return fi fi if [[ "$1" == latest ]]; then latest=($(show_latest | tr -s ' ')) version=${latest[0]} url=${latest[1]} elif [[ "$1" == http* ]]; then # a URL version="custom" url=$1 elif [[ -n "${OS_FIRMWARE_URL}" ]]; then version=$1 url=$(expand_placeholders ${OS_FIRMWARE_URL} ${version}) else echo "Variable OS_FIRMWARE_URL is not defined" exit 1 fi echo "downloading ${version} from ${url}" free_disk=$(df /data | tail -n 1 | tr -s ' ' | cut -d ' ' -f 4) if [[ "${free_disk}" -lt $((MIN_FREE_DISK * 1024)) ]]; then echo "not enough disk space" | tee 1>&2 ${ERROR_FILE} if [[ -x ${DISK_CLEANUP_SCRIPT} ]]; then echo "running the cleanup script" | tee 1>&2 ${ERROR_FILE} ${DISK_CLEANUP_SCRIPT} else rm ${DOWNLOAD_STARTED_FILE} exit 1 fi fi outfile=${FW_FILE_GZ} format=$(echo ${url} | sed -rn 's/.*\.img\.([a-z]+)$/\1/ p') if [[ "${format}" == "xz" ]]; then outfile=${FW_FILE_XZ} fi echo ${version} > ${VER_FILE} touch ${DOWNLOAD_STARTED_FILE} curl_opts="-S -f -L" curl ${curl_opts} -o ${outfile} "${url}" &> ${CURL_LOG_FILE} & pid=$! echo ${pid} > ${CURL_PID_FILE} set +e # don't exit on error wait ${pid} if [[ "$?" != 0 ]]; then echo "download failed" | tee 1>&2 ${ERROR_FILE} rm ${DOWNLOAD_STARTED_FILE} exit 1 fi touch ${DOWNLOAD_DONE_FILE} set -e } #### Extract #### function run_pre_upgrade() { which losetup &>/dev/null || return 0 boot_info=($(cat ${BOOT_INFO_FILE})) root_info=($(cat ${ROOT_INFO_FILE})) pre_upgrade="${TMP_ROOT_DIR}/usr/share/pre-upgrade" mkdir -p ${TMP_BOOT_DIR} mkdir -p ${TMP_ROOT_DIR} losetup -o $((boot_info[0] * 512)) ${BOOT_LOOP} ${FW_FILE_EXTR} losetup -o $((root_info[0] * 512)) ${ROOT_LOOP} ${FW_FILE_EXTR} mount ${BOOT_LOOP} ${TMP_BOOT_DIR} mount ${ROOT_LOOP} ${TMP_ROOT_DIR} if [[ -f ${TMP_ROOT_DIR}/usr/libexec/fw-restore-boot-cfg ]]; then cp ${TMP_ROOT_DIR}/usr/libexec/fw-restore-boot-cfg /usr/libexec/fw-restore-boot-cfg else rm -f /usr/libexec/fw-restore-boot-cfg fi if [[ -d ${pre_upgrade} ]]; then for script in ${pre_upgrade}/*.sh; do echo "running pre-upgrade script $(basename ${script})" if [[ -x ${script} ]] && ! ${script}; then # Non-zero exit status of pre-upgrade script indicates that # the upgrade process must not be continued echo "aborted by pre-upgrade script" | tee 1>&2 ${ERROR_FILE} return 1 fi done fi umount ${TMP_BOOT_DIR} umount ${TMP_ROOT_DIR} losetup -d ${BOOT_LOOP} losetup -d ${ROOT_LOOP} } function do_extract() { if ! [[ -f ${FW_FILE_GZ} || -f ${FW_FILE_XZ} ]] || ! [[ -f ${DOWNLOAD_DONE_FILE} ]]; then echo "firmware file not downloaded" | tee 1>&2 ${ERROR_FILE} exit 1 fi rm -f ${EXTRACT_DONE_FILE} rm -f ${FLASH_BOOT_STARTED_FILE} rm -f ${FLASH_BOOT_DONE_FILE} rm -f ${FLASH_REBOOT_STARTED_FILE} rm -f ${ERROR_FILE} rm -f ${FW_FILE_EXTR} touch ${EXTRACT_STARTED_FILE} echo "extracting" trap cleanup_on_exit EXIT format="gz" if [[ -f ${FW_FILE_XZ} ]]; then format="xz" fi rm -f ${FW_FILE_EXTR} rm -f ${GUNZIP_PID_FILE} ${XZCAT_PID_FILE} if [[ "${format}" == "xz" ]]; then DECOMPRESS_LOG_FILE=${XZCAT_LOG_FILE} DECOMPRESS_PID_FILE=${XZCAT_PID_FILE} xzcat ${FW_FILE_XZ} > ${FW_FILE_EXTR} 2>${XZCAT_LOG_FILE} & elif [[ "${format}" == "gz" ]]; then DECOMPRESS_LOG_FILE=${GUNZIP_LOG_FILE} DECOMPRESS_PID_FILE=${GUNZIP_PID_FILE} gunzip -k -c ${FW_FILE_GZ} > ${FW_FILE_EXTR} 2>${GUNZIP_LOG_FILE} & else echo "firmware compression format ${format} not supported" 1>&2 | tee 1>&2 ${ERROR_FILE} exit 1 fi pid=$! echo ${pid} > ${DECOMPRESS_PID_FILE} wait ${pid} if [[ "$?" != 0 ]]; then cat ${DECOMPRESS_LOG_FILE} exit 1 fi # TODO verify hash root_part_no=$(echo ${ROOT_DEV} | grep -oE '[0-9]$') boot_info=$(fdisk --bytes -l -o device,start,end,size ${FW_FILE_EXTR} | grep "${FW_FILE_EXTR}$(( root_part_no - 1 ))") boot_info=(${boot_info}) boot_start=${boot_info[1]} boot_end=${boot_info[2]} boot_size=$((boot_info[3] / 512)) root_info=$(fdisk --bytes -l -o device,start,end,size ${FW_FILE_EXTR} | grep "${FW_FILE_EXTR}${root_part_no}") root_info=(${root_info}) root_start=${root_info[1]} root_end=${root_info[2]} root_size=$((root_info[3] / 512)) echo ${boot_start} ${boot_end} ${boot_size} > ${BOOT_INFO_FILE} echo ${root_start} ${root_end} ${root_size} > ${ROOT_INFO_FILE} run_pre_upgrade touch ${EXTRACT_DONE_FILE} } #### Flash boot #### function do_flash_boot() { if ! [[ -f ${FW_FILE_EXTR} ]] || ! [[ -f ${EXTRACT_DONE_FILE} ]]; then echo "extracted firmware not present" | tee 1>&2 ${ERROR_FILE} return 1 fi rm -f ${FLASH_BOOT_DONE_FILE} rm -f ${FLASH_REBOOT_STARTED_FILE} rm -f ${ERROR_FILE} touch ${FLASH_BOOT_STARTED_FILE} echo "flashing boot" trap cleanup_on_exit EXIT boot_info=($(cat ${BOOT_INFO_FILE})) cp -r /boot ${FW_DIR}/old_boot umount /boot # Prevent unwanted reboots during firmware install panic inhibit mount -o remount,rw / mv /sbin/reboot /sbin/reboot.bak ln -s /bin/true /sbin/reboot reallocate_boot_part dd if=${FW_FILE_EXTR} \ skip=$((boot_info[0] / 2048)) \ of=${BOOT_DEV} bs=1048576 \ count=$((boot_info[2] / 2048)) &>${DD_LOG_FILE} & pid=$! echo ${pid} > ${DD_PID_FILE} wait ${pid} mount -T /tmp/fstab.disk /boot mount -o remount,rw /boot boot_mounted_rw=true # The /boot/factory-defaults.tar.xz file is always preserved across updates if [[ -s ${FW_DIR}/old_boot/factory-defaults.tar.xz ]]; then cp ${FW_DIR}/old_boot/factory-defaults.tar.xz /boot fi # The /usr/libexec/fw-restore-boot-cfg script, if present, takes the old (backup) boot dir as argument # and should restore any /boot configuration that needs to be preserved across updates # from the old boot dir to the current (new) /boot dir if [[ -x /usr/libexec/fw-restore-boot-cfg ]]; then /usr/libexec/fw-restore-boot-cfg ${FW_DIR}/old_boot 2>/dev/null || true fi touch ${FLASH_BOOT_DONE_FILE} } #### Flash reboot #### function do_flash_reboot() { if ! [[ -f ${ROOT_INFO_FILE} ]] || ! [[ -f ${FLASH_BOOT_DONE_FILE} ]]; then echo "root partition info file not present" | tee 1>&2 ${ERROR_FILE} return 1 fi rm -f ${ERROR_FILE} touch ${FLASH_REBOOT_STARTED_FILE} echo "preparing for reboot" trap cleanup_on_exit EXIT reallocate_root_part root_info=($(cat ${ROOT_INFO_FILE})) mkdir -p ${TMP_ROOT_DIR} losetup -o $((root_info[0] * 512)) ${ROOT_LOOP} ${FW_FILE_EXTR} mount ${ROOT_LOOP} ${TMP_ROOT_DIR} # The /usr/libexec/fw-prepare-boot script should be present and should # make the necessary changes to the current boot configuration so that # the firmware update initramfs will be used by the next boot. # # We prefer to use the script coming with the new firmware. mount -o remount,rw /boot boot_mounted_rw=true if [[ -x ${TMP_ROOT_DIR}/usr/libexec/fw-prepare-boot ]]; then ${TMP_ROOT_DIR}/usr/libexec/fw-prepare-boot elif [[ -x /usr/libexec/fw-prepare-boot ]]; then /usr/libexec/fw-prepare-boot fi umount ${TMP_ROOT_DIR} losetup -d ${ROOT_LOOP} echo "rebooting" test -x /sbin/reboot.bak && /sbin/reboot.bak || /sbin/reboot & # Guard forced reboot after 3 minutes sleep 180 && echo b > /proc/sysrq-trigger exit 0 } #### Status #### function show_status() { if [[ -f ${VER_FILE} ]]; then new_version=$(cat ${VER_FILE} 2>&1 || true) fi if [[ -f ${ERROR_FILE} ]]; then echo -n "error: " cat ${ERROR_FILE} elif [[ -f ${FLASH_REBOOT_STARTED_FILE} ]]; then echo "rebooting [${new_version}]" elif [[ -f ${FLASH_BOOT_DONE_FILE} ]]; then echo "boot flashed [${new_version}]" elif [[ -f ${FLASH_BOOT_STARTED_FILE} ]]; then echo "flashing boot [${new_version}]" elif [[ -f ${EXTRACT_DONE_FILE} ]]; then echo "extracted [${new_version}]" elif [[ -f ${EXTRACT_STARTED_FILE} ]]; then echo "extracting [${new_version}]" elif [[ -f ${DOWNLOAD_DONE_FILE} ]]; then echo "downloaded [${new_version}]" elif [[ -f ${DOWNLOAD_STARTED_FILE} ]]; then echo "downloading [${new_version}]" else echo "idle" fi } #### Install #### function do_install() { latest=($(show_latest)) latest_version=${latest[0]} if [[ "$1" == latest ]] && [[ "${OS_VERSION}" == "${latest_version}" ]]; then echo "already running latest version" return 2 fi echo "installing $1" do_download "$1" show_status do_extract show_status do_flash_boot show_status do_flash_reboot } #### Automatic firmware update #### function show_auto() { if [[ ${OS_FIRMWARE_AUTO_UPDATE} == true ]]; then echo on else echo off fi } function set_auto() { if [[ -s /data/etc/os.conf ]]; then cat /data/etc/os.conf | grep -v OS_FIRMWARE_AUTO_UPDATE > /data/etc/os.conf.new || true mv /data/etc/os.conf.new /data/etc/os.conf fi echo "OS_FIRMWARE_AUTO_UPDATE=$1" >> /data/etc/os.conf } function do_auto() { if [[ -z "$1" ]]; then show_auto elif [[ "$1" == on ]]; then set_auto true source /etc/init.d/os_conf show_auto elif [[ "$1" == off ]]; then set_auto false source /etc/init.d/os_conf show_auto fi } #### Prereleases #### function show_prereleases() { if [[ ${OS_PRERELEASES} == true ]]; then echo on else echo off fi } function set_prereleases() { if [[ -s /data/etc/os.conf ]]; then cat /data/etc/os.conf | grep -v OS_PRERELEASES > /data/etc/os.conf.new || true mv /data/etc/os.conf.new /data/etc/os.conf fi echo "OS_PRERELEASES=$1" >> /data/etc/os.conf } function do_prereleases() { if [[ -z "$1" ]]; then show_prereleases elif [[ "$1" == on ]]; then set_prereleases true source /etc/init.d/os_conf show_prereleases elif [[ "$1" == off ]]; then set_prereleases false source /etc/init.d/os_conf show_prereleases fi } #### Main #### case "$1" in current) show_current ;; latest) show_latest ;; list) if [[ -z ${OS_FIRMWARE_VERSIONS_STABLE} || -z {OS_FIRMWARE_VERSIONS_BETA} ]]; then echo "No firmware version list available" exit 2 fi list_versions "$2" ;; download) if [[ -z "$2" ]]; then exit_usage fi do_download "$2" show_status ;; extract) do_extract show_status ;; flashboot) do_flash_boot show_status ;; flashreboot) do_flash_reboot ;; status) show_status ;; install) if [[ -z "$2" ]]; then exit_usage fi do_install "$2" ;; auto) do_auto ${@:2} ;; prereleases) do_prereleases ${@:2} ;; *) exit_usage ;; esac ================================================ FILE: board/common/overlay/sbin/panic ================================================ #!/bin/bash PANIC_COUNTER_FILE="/var/lib/panic_counter" PANIC_REBOOT_DELAY_FACTOR=10 PANIC_REBOOT_DELAY_MAX=3600 # reboot at least once an hour in case of panic PANIC_INHIBIT_FILE="/var/run/panic_inhibit" PANIC_INHIBIT_TIMEOUT=3600 # inhibit panic action for at most one hour PANIC_DETAILS_FILE="/var/lib/last_panic" PANIC_DETAILS_CACHE_FILE="/var/run/panic" test -n "${OS_DEBUG}" || source /etc/init.d/os_conf function usage() { echo "$0 [params...]" echo "Available commands:" echo " action [message]" echo " details" echo " inhibit" echo " reset" } function is_inhibited() { if [[ -s ${PANIC_INHIBIT_FILE} ]]; then uptime=$(cat /proc/uptime | grep -oE '^[[:digit:]]+') inhibit_uptime=$(cat ${PANIC_INHIBIT_FILE}) delta_uptime=$(expr "${uptime}" - "${inhibit_uptime}") if [[ "${delta_uptime}" -lt ${PANIC_INHIBIT_TIMEOUT} ]]; then return 0 fi fi return 1 } function action() { # $1 - service/component # $2 - optional error message # read counter from file panic_counter=$(cat ${PANIC_COUNTER_FILE} 2>/dev/null || echo 0) # write increased counter back to file echo $((panic_counter + 1)) > ${PANIC_COUNTER_FILE} delay=$((PANIC_REBOOT_DELAY_FACTOR * panic_counter)) if [[ "${delay}" -gt "${PANIC_REBOOT_DELAY_MAX}" ]]; then delay=${PANIC_REBOOT_DELAY_MAX} fi logger -t $1 -s "$2" ( echo "service=\"$1\"" echo "message=\"$2\"" echo "timestamp=\"$(date +%s)\"" echo "uptime=\"$(cat /proc/uptime | grep -oE '^[[:digit:]]+')\"" ) > ${PANIC_DETAILS_FILE} cp ${PANIC_DETAILS_FILE} ${PANIC_DETAILS_CACHE_FILE} if is_inhibited; then logger -t panic -s "action inhibited (caused by $1)" return 1 fi if [[ "${OS_DEBUG}" == true ]]; then logger -t panic -s "action ignored in debug mode (caused by $1)" return 1 fi if [[ "${delay}" -gt 0 ]]; then logger -t panic -s "rebooting in ${delay} seconds (caused by $1)" sleep ${delay} fi if is_inhibited; then logger -t panic -s "action inhibited (caused by $1)" return 1 fi logger -t panic -s "rebooting (caused by $1)" /sbin/reboot } function details() { if ! [[ -s ${PANIC_DETAILS_FILE} ]]; then echo "No recent panic" exit fi source ${PANIC_DETAILS_FILE} { echo "Service:|${service}" echo "Message:|${message}" echo "Date:|$(date -D%s -d ${timestamp:-0})" echo "Uptime:|${uptime:-0} seconds" echo "Current:|$(test -s ${PANIC_DETAILS_CACHE_FILE} && echo yes || echo no)" echo "Inhibited:|$(is_inhibited && echo yes || echo no)" echo "Counter:|$(cat ${PANIC_COUNTER_FILE} 2>/dev/null || echo 0)" } | column -t -s '|' } function inhibit() { cat /proc/uptime | grep -oE '^[[:digit:]]+' > ${PANIC_INHIBIT_FILE} } function reset() { # Remove panic details files rm -f ${PANIC_DETAILS_FILE} rm -f ${PANIC_DETAILS_CACHE_FILE} # Reset panic counter echo 0 > ${PANIC_COUNTER_FILE} } # Allow this script to be sourced test "$0" == /sbin/panic || return 0 test -n "$1" || { usage; exit 1; } case $1 in action) test -n "$2" || { usage; exit 1; } action "${@:2}" ;; details) details "${@:2}" ;; inhibit) inhibit "${@:2}" ;; reset) reset "${@:2}" ;; *) usage exit 1 ;; esac ================================================ FILE: board/common/overlay/sbin/poweroff ================================================ #!/bin/bash # carry on with the script in case of error set +e # kill the startup process if it hasn't completed yet killall rcS &>/dev/null || true # write buffers to disk /bin/sync # allow the shutdown script 20 seconds to shut down, # after which we stop feeding the watchdog (sleep 20 && /usr/bin/killall -STOP watchdog) & # actual poweroff command /bin/busybox poweroff ================================================ FILE: board/common/overlay/sbin/reboot ================================================ #!/bin/bash # carry on with the script in case of error set +e # allow the shutdown script 120 seconds to shut down, # after which we stop feeding the watchdog (sleep 120 && /usr/bin/killall -STOP watchdog) & # kill the startup process if it hasn't completed yet killall rcS &>/dev/null # write buffers to disk /bin/sync # actual reboot command /bin/busybox reboot ================================================ FILE: board/common/overlay/sbin/service ================================================ #!/bin/bash function show_usage() { echo "Usage: service [command]" echo "Usual commands include: start, stop, restart" echo "Type 'service ' without command for service-specific usage" } if [[ -z "$1" ]]; then show_usage 1>&2 exit 1 fi SERVICE=$1 shift # Remove $1 SCRIPT=(/etc/init.d/S*${SERVICE}) if ! [[ -x "${SCRIPT}" ]]; then echo "No such service: ${SERVICE}" exit 1 fi source ${SCRIPT} "$@" ================================================ FILE: board/common/overlay/sbin/toemmc ================================================ #!/bin/bash if [[ -z "$1" ]] || [[ "$1" != /* ]]; then echo "Usage: $0 [--net-config]" exit 1 fi shopt -s extglob # For extended globbing of /boot/*.{txt,ini,...} cmdline_args="$*" function arg_present() { for arg in ${cmdline_args}; do if [ "${arg}" == "$1" ]; then return 0 fi done return 1 } function msg() { echo " * $1" } NET_CONFIG_FILES=( dnsmasq.conf hostapd.conf static_ip.conf wpa_supplicant.conf ) emmc_dev=$1 source /tmp/disk_info if [[ "${DISK_DEV}" == "${emmc_dev}" ]]; then msg "SD card and eMMC devices are the same" exit 1 fi msg "SD card device is ${DISK_DEV}" root_info=$(fdisk -l -o device,start,end,size ${DISK_DEV} | grep "${ROOT_DEV}") root_info=(${root_info}) root_end_sector=${root_info[2]} total_size=$(((root_end_sector + 1) * 512 / 10485760)) # x 10MB root_part_no=$(echo ${ROOT_DEV} | grep -oE '[0-9]$') msg "Unmounting all eMMC partitions" umount ${emmc_dev}* &>/dev/null partx -d ${emmc_dev} &>/dev/null msg "Wiping any GPT backup from eMMC" emmc_sectors=$(fdisk -l ${emmc_dev} 2>/dev/null | head -n1 | grep -oE '[[:digit:]]+ sectors' | cut -d ' ' -f 1) dd if=/dev/zero of=${emmc_dev} seek=$(( emmc_sectors - 34 )) count=34 status=none sync msg "Copying ${total_size}0MB from ${DISK_DEV} to ${emmc_dev}" dd if=${DISK_DEV} of=${emmc_dev} bs=10M count=${total_size} status=none sync partx -a ${emmc_dev} &>/dev/null sleep 1 msg "Removing data partition from eMMC" if [[ "${PART_TABLE_TYPE}" == gpt ]]; then gdisk &>/dev/null ${emmc_dev} </dev/null ${emmc_dev} </dev/null umount /data/.emmc_boot rmdir /data/.emmc_boot msg "Done!" ================================================ FILE: board/common/overlay/usr/bin/gpio.sh ================================================ #!/bin/bash GPIO=$1 usage() { echo "Usage: $0 [0|1]" 1>&2 exit 1 } test -z "${GPIO}" && usage test -e /sys/class/gpio/gpio${GPIO} || echo ${GPIO} > /sys/class/gpio/export if [ -n "$2" ]; then echo out > /sys/class/gpio/gpio${GPIO}/direction echo $2 > /sys/class/gpio/gpio${GPIO}/value else echo in > /sys/class/gpio/gpio${GPIO}/direction cat /sys/class/gpio/gpio${GPIO}/value fi ================================================ FILE: board/common/overlay/usr/libexec/dehydrated-dumb-httpd ================================================ #!/bin/bash CHALLENGE="$1" PORT=80 LIFETIME=120 TMP_RESPONSE="/tmp/dehydrated-response" LOG="/var/log/dehydrated-dumb-httpd.log" if [[ -z "${CHALLENGE}" ]]; then echo "Usage $0 " exit 1 fi { echo -en "HTTP/1.1 200 OK\r\n" echo -en "Content-Length: ${#CHALLENGE}\r\n" echo -en "Content-Type: text/plain\r\n" echo -en "Connection: close\r\n\r\n${CHALLENGE}" } > "${TMP_RESPONSE}" echo "Dumb httpd started" > ${LOG} socat -d TCP4-LISTEN:80,reuseaddr,fork EXEC:"/bin/cat ${TMP_RESPONSE}" &>>${LOG} & pid=$! sleep ${LIFETIME} kill ${pid} echo "Dumb httpd exit" >> ${LOG} ================================================ FILE: board/common/overlay/usr/libexec/dehydrated-hook ================================================ #!/bin/bash SSL_DIR="/data/etc/ssl" CERT_FILE="${SSL_DIR}/cert.pem" KEY_FILE="${SSL_DIR}/privkey.pem" if [[ "$1" == "deploy_challenge" ]]; then /usr/libexec/dehydrated-dumb-httpd "$4" & elif [[ "$1" == "deploy_cert" ]]; then logger -t dehydrated "deploying certificate & rebooting" mkdir -p "${SSL_DIR}" cp "$3" "${KEY_FILE}" cp "$4" "${CERT_FILE}" reboot fi ================================================ FILE: board/common/overlay/usr/libexec/fwupdate-auto ================================================ #!/bin/bash sleep $((RANDOM % 82800)) source /etc/init.d/os_conf test "${OS_FIRMWARE_AUTO_UPDATE}" == true || exit 0 test "${OS_DEBUG}" == true && { echo "Skipping automatic fwupdate in debug mode"; exit 0; } if [[ -x /usr/libexec/fwupdate-auto-hook ]]; then /usr/libexec/fwupdate-auto-hook && reboot_needed=false || reboot_needed=true fi /sbin/fwupdate install latest test $? == 2 && test ${reboot_needed} == true && /sbin/reboot ================================================ FILE: board/common/overlay/usr/sbin/adminpasswd ================================================ #!/bin/bash # we verify the presence of the PASSWORD variable using env, # as it can also have an empty string value if ! env | grep PASSWORD &>/dev/null; then echo "You must set the PASSWORD environment variable." exit 1 fi # make sure root and admin users exist in shadow file touch /data/etc/shadow chmod go-rwx /data/etc/shadow if ! grep root /data/etc/shadow &>/dev/null; then echo 'root::::::::' >> /data/etc/shadow fi if ! grep admin /data/etc/shadow &>/dev/null; then echo 'admin::::::::' >> /data/etc/shadow fi # remove shadow backups rm -f /data/etc/shadow+ rm -f /data/etc/shadow- # set root and admin passwords (admin is just an alias for root) echo -en "${PASSWORD}\n${PASSWORD}\n" | passwd -a md5 &>/dev/null # root echo -en "${PASSWORD}\n${PASSWORD}\n" | passwd -a md5 admin &>/dev/null # admin sed -r -i 's/root:([^:]+):[[:digit:]]+:/root:\1::/' /data/etc/shadow # removes pwd expiration sed -r -i 's/admin:([^:]+):[[:digit:]]+:/admin:\1::/' /data/etc/shadow # removes pwd expiration # call admin password hooks in /etc/adminpasswd.d if [ -d /etc/adminpasswd.d ]; then for script in /etc/adminpasswd.d/*; do test -x ${script} && ${script} done fi sync ================================================ FILE: board/common/overlay/usr/sbin/dehydrated-wrapper ================================================ #!/bin/bash PROG="/usr/bin/dehydrated" BASE_DIR="/var/lib/dehydrated" TMP_DIR="/tmp/dehydrated" SSL_DIR="/data/etc/ssl" if ! [[ -x "${PROG}" && -r "${SSL_DIR}/domain" && -r "${SSL_DIR}/email" ]]; then exit 0 # not installed or not configured fi mkdir -p "${BASE_DIR}" mkdir -p "${TMP_DIR}" logger -t dehydrated "checking for certificate renewal" dehydrated "$@" ================================================ FILE: board/common/overlay/usr/sbin/dyndns-update ================================================ #!/bin/bash SCRIPT="/data/etc/dyndns-update.sh" if ! [[ -f "${SCRIPT}" ]]; then exit 0 fi logger -t dyndns "updating dynamic DNS" bash "${SCRIPT}" 2>&1 | logger -t dyndns exit ${PIPESTATUS[0]} ================================================ FILE: board/common/overlay/usr/sbin/https-update ================================================ #!/bin/bash PROG="/usr/sbin/dehydrated-wrapper" SSL_DIR="/data/etc/ssl" if ! [[ -d "${SSL_DIR}" ]]; then exit 0 fi logger -t dehydrated "updating SSL certificates" ${PROG} -c 2>&1 | logger -t dehydrated exit ${PIPESTATUS[0]} ================================================ FILE: board/common/overlay/usr/share/dataoverlay/.empty ================================================ ================================================ FILE: board/common/overlay/usr/share/dataskel/etc/.empty ================================================ ================================================ FILE: board/common/overlay/usr/share/dataskel/log/.empty ================================================ ================================================ FILE: board/common/overlay/usr/share/dataskel/media/.empty ================================================ ================================================ FILE: board/common/overlay/usr/share/dataskel/usr/.empty ================================================ ================================================ FILE: board/common/overlay/usr/share/dataskel/varlib/.empty ================================================ ================================================ FILE: board/common/overlay/usr/share/post-upgrade/.empty ================================================ ================================================ FILE: board/common/overlay/usr/share/pre-upgrade/postgresql.sh ================================================ #!/bin/bash # Prepare a PostgreSQL dump to help migrating to new version OLD_PG_CTL=/usr/bin/pg_ctl NEW_PG_CTL=${TMP_ROOT_DIR}/usr/bin/pg_ctl USER=postgres DB_DIR=/var/lib/postgresql DUMP_FILE=/var/lib/postgresql-dump.sql.gz test -x ${OLD_PG_CTL} || exit 0 test -x ${NEW_PG_CTL} || exit 0 cd /tmp su ${USER} -c "pg_ctl status -D ${DB_DIR}" > /dev/null || exit 0 old_version=$(${OLD_PG_CTL} -V | cut -d ' ' -f 3 | cut -d . -f 1) # Treat any errors from new pg_ctl as version mismatch/upgrade new_version=$(${NEW_PG_CTL} -V 2>/dev/null | cut -d ' ' -f 3 | cut -d . -f 1) test "${old_version}" != "${new_version}" || exit 0 echo "dumping postgresql data" pg_dumpall -U ${USER} --quote-all-identifiers | gzip > ${DUMP_FILE} ================================================ FILE: board/common/overlay-initramfs/boot/.empty ================================================ ================================================ FILE: board/common/overlay-initramfs/data/.empty ================================================ ================================================ FILE: board/common/overlay-initramfs/init ================================================ #!/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin DISK_TIMEOUT=10 msg() { echo " * $1" } msg "Mounting pseudo filesystems" mount -t devtmpfs devtmpfs /dev mount -t proc proc /proc ROOT_DEV=$(cat /proc/cmdline | grep -oE 'root=[/a-z0-9]+' | cut -d '=' -f 2) if echo ${ROOT_DEV:-2} | grep -E 'p[0-9]' &>/dev/null; then # e.g. /dev/mmcblk0p2 ROOT_PART_NO=$(echo ${ROOT_DEV} | grep -oE '[0-9]$') DISK_DEV=${ROOT_DEV:0:$(( ${#ROOT_DEV} - 2 ))} BOOT_DEV=${DISK_DEV}p$(( ROOT_PART_NO - 1 )) DATA_DEV=${DISK_DEV}p$(( ROOT_PART_NO + 1 )) else # e.g. /dev/sdc2 ROOT_PART_NO=$(echo ${ROOT_DEV} | grep -oE '[0-9]$') DISK_DEV=${ROOT_DEV:0:$(( ${#ROOT_DEV} - 1 ))} BOOT_DEV=${DISK_DEV}$(( ROOT_PART_NO - 1 )) DATA_DEV=${DISK_DEV}$(( ROOT_PART_NO + 1 )) fi msg "Waiting for sdcard" count=0 while true; do if [ ${count} -ge ${DISK_TIMEOUT} ]; then break fi if [[ -b ${ROOT_DEV} ]]; then break fi count=$((count + 1)) sleep 1 done msg "Disk device is ${DISK_DEV}" msg "Boot device is ${BOOT_DEV}" msg "Root device is ${ROOT_DEV}" msg "Data device is ${DATA_DEV}" FW_DIR=/data/.fwupdate FW_FILE=${FW_DIR}/firmware.img.gz FW_FILE_EXTR=${FW_DIR}/firmware.img ROOT_INFO_FILE=${FW_DIR}/root_info cleanup_on_exit() { msg "Switching to normal boot" /remove_initramfs msg "Unmounting data partition" umount /data msg "Unmounting boot partition" umount /boot msg "Syncing" sync msg "Rebooting" echo 's' > /proc/sysrq-trigger sleep 1 echo 'b' > /proc/sysrq-trigger } trap cleanup_on_exit EXIT if [[ -x /prepare_initramfs ]]; then msg "Preparing initramfs" /prepare_initramfs fi msg "Mounting boot partition" mount ${BOOT_DEV} /boot msg "Mounting data partition" mount ${DATA_DEV} /data if [[ -x ${FW_DIR}/exec_initramfs ]]; then export FW_DIR DISK_DEV BOOT_DEV ROOT_DEV DATA_DEV msg "Executing initramfs script" ${FW_DIR}/exec_initramfs || exit 1 fi if ! [[ -r ${FW_FILE_EXTR} ]]; then msg "No firmware found, aborting" exit 1 fi if ! [[ -r ${ROOT_INFO_FILE} ]]; then msg "No root partition info, aborting" exit 1 fi msg "Copying root image" root_info=$(cat ${ROOT_INFO_FILE}) count=0 for i in ${root_info}; do count=$((count + 1)); done if [[ ${count} == 3 ]]; then root_start=$(echo ${root_info} | cut -d ' ' -f 1) root_size=$(echo ${root_info} | cut -d ' ' -f 3) root_start=$((root_start / 2048)) root_size=$((root_size / 2048)) elif [[ ${count} == 2 ]]; then # compatibility with old info file format root_start=$(echo ${root_info} | cut -d ' ' -f 1) root_size=$(echo ${root_info} | cut -d ' ' -f 2) else msg "Unrecognized root partition info file format" exit 1 fi dd if=${FW_FILE_EXTR} skip=${root_start} of=${ROOT_DEV} bs=1048576 count=${root_size} || exit 1 msg "Cleaning up" rm -rf ${FW_DIR} ================================================ FILE: board/common/postscript.sh ================================================ #!/bin/bash set -e export TARGET="$1" export BOARD=$(basename $(dirname ${TARGET})) export COMMON_DIR=$(dirname $0) export BOARD_DIR=${COMMON_DIR}/../${BOARD} export BOOT_DIR=${TARGET}/../images/boot/ mkdir -p ${BOOT_DIR} if [ -x ${BOARD_DIR}/postscript.sh ]; then ${BOARD_DIR}/postscript.sh fi # transform /var contents as needed rm -rf ${TARGET}/var/cache rm -rf ${TARGET}/var/lib rm -rf ${TARGET}/var/lock rm -rf ${TARGET}/var/log rm -rf ${TARGET}/var/run rm -rf ${TARGET}/var/spool rm -rf ${TARGET}/var/tmp ln -s /tmp ${TARGET}/var/cache ln -s /tmp ${TARGET}/var/lock ln -s /tmp ${TARGET}/var/run ln -s /tmp ${TARGET}/var/spool ln -s /tmp ${TARGET}/var/tmp ln -s /tmp ${TARGET}/run mkdir -p ${TARGET}/var/lib mkdir -p ${TARGET}/var/log # add admin user alias if ! grep -qE '^admin:' ${TARGET}/etc/passwd; then echo "admin:x:0:0:root:/root:/bin/sh" >> ${TARGET}/etc/passwd fi # adjust root password if [[ -n "${THINGOS_ROOT_PASSWORD_HASH}" ]] && [[ -f ${TARGET}/etc/shadow ]]; then echo "Updating root password hash" sed -ri "s,root:[^:]+:,root:${THINGOS_ROOT_PASSWORD_HASH}:," ${TARGET}/etc/shadow sed -ri "s,admin:[^:]+:,admin:${THINGOS_ROOT_PASSWORD_HASH}:," ${TARGET}/etc/shadow fi ================================================ FILE: board/nanopir1/board.conf ================================================ BOOT_BIN=( "${BINARIES_DIR}/u-boot-sunxi-with-spl.bin@16" ) BOOT_START=10 ================================================ FILE: board/nanopir1/boot.cmd ================================================ setenv load_addr "0x44000000" setenv rootfstype "ext4" setenv devtype "mmc" setenv devnum 0 if mmc dev 1; then setenv rootdev "/dev/mmcblk1p2" echo "Booting from SD card" else setenv rootdev "/dev/mmcblk3p2" echo "Booting from eMMC" fi if test -e ${devtype} ${devnum} uEnv.txt; then load ${devtype} ${devnum} ${load_addr} uEnv.txt env import -t ${load_addr} ${filesize} fi setenv bootargs "root=${rootdev} rootfstype=${rootfstype} ${cmdline}" if test -n "${initrd}"; then setenv bootargs "${bootargs} initrd=${initrd}" load ${devtype} ${devnum} ${ramdisk_addr_r} ${initrd} setenv initrd_size ${filesize} fi load ${devtype} ${devnum} ${kernel_addr_r} ${kernel} load ${devtype} ${devnum} ${fdt_addr_r} ${fdt} fdt addr ${fdt_addr_r} fdt resize 65536 for overlay_file in ${overlays}; do if load ${devtype} ${devnum} ${load_addr} overlays/${overlay_file}.dtbo; then echo "Applying kernel provided DT overlay ${overlay_file}.dtbo" fdt apply ${load_addr} fi done echo "Boot args: ${bootargs}" if test -n "${initrd}"; then echo "Initrd size is ${initrd_size}" bootz ${kernel_addr_r} ${ramdisk_addr_r}:${initrd_size} ${fdt_addr_r} else bootz ${kernel_addr_r} - ${fdt_addr_r} fi ================================================ FILE: board/nanopir1/cpinitramfs.sh ================================================ cp ${BINARIES_DIR}/rootfs.cpio.gz ${BOARD_DIR}/initrd.gz ================================================ FILE: board/nanopir1/kernel-extra.config ================================================ CONFIG_NLS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_852=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_2=y CONFIG_NLS_UTF8=y ================================================ FILE: board/nanopir1/overlay/etc/board ================================================ nanopir1 ================================================ FILE: board/nanopir1/overlay/etc/init.d/S00statusled ================================================ #!/bin/bash case "$1" in start) echo 0 > /sys/class/leds/status_led/brightness echo 1 > /sys/class/leds/status_led/brightness ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/nanopir1/overlay/etc/init.d/S41netled ================================================ #!/bin/bash case "$1" in start) echo 0 > /sys/class/leds/LED2/brightness echo 1 > /sys/class/leds/LED2/brightness ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/nanopir1/overlay/etc/init.d/S99okled ================================================ #!/bin/bash case "$1" in start) echo 0 > /sys/class/leds/LED3/brightness echo 1 > /sys/class/leds/LED3/brightness ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/nanopir1/overlay/etc/os-platform.conf ================================================ OS_FACTORY_RESET_INPUT="event0" ================================================ FILE: board/nanopir1/overlay/lib/firmware/ap6212/config.txt ================================================ PM=0 nv_by_chip=2 43430 0 nvram.txt 43430 1 nvram_ap6212.txt ================================================ FILE: board/nanopir1/overlay/lib/firmware/ap6212/nvram.txt ================================================ #AP6212_NVRAM_V1.0_20140603 # 2.4 GHz, 20 MHz BW mode # The following parameter values are just placeholders, need to be updated. manfid=0x2d0 prodid=0x0726 vendid=0x14e4 devid=0x43e2 boardtype=0x0726 boardrev=0x1101 boardnum=22 macaddr=00:90:4c:c5:12:38 sromrev=11 boardflags=0x00404201 xtalfreq=26000 nocrc=1 ag0=255 aa2g=1 ccode=ALL pa0itssit=0x20 extpagain2g=0 #PA parameters for 2.4GHz, measured at CHIP OUTPUT pa2ga0=-168,7161,-820 AvVmid_c0=0x0,0xc8 cckpwroffset0=5 # PPR params maxp2ga0=90 txpwrbckof=6 cckbw202gpo=0x5555 legofdmbw202gpo=0x77777777 mcsbw202gpo=0xaaaaaaaa # OFDM IIR : ofdmdigfilttype=7 # PAPD mode: papdmode=2 il0macaddr=00:90:4c:c5:12:38 wl0id=0x431b #OOB parameters hostwake=0x40 hostrdy=0x41 usbrdy=0x03 usbrdydelay=100 deadman_to=0xffffffff # muxenab: 0x1 for UART enable, 0x10 for Host awake muxenab=0x10 # CLDO PWM voltage settings - 0x4 - 1.1 volt #cldo_pwm=0x4 ================================================ FILE: board/nanopir1/overlay/lib/firmware/ap6212/nvram_ap6212.txt ================================================ # NVRAM file for BCM943430WLSELG (AW-NB197SM) # 2.4 GHz, 20 MHz BW mode # The following parameter values are just placeholders, need to be updated. manfid=0x2d0 prodid=0x0726 vendid=0x14e4 devid=0x43e2 boardtype=0x0726 boardrev=0x1101 boardnum=22 macaddr=00:11:22:33:44:55 sromrev=11 boardflags=0x00404201 xtalfreq=26000 nocrc=1 ag0=255 aa2g=1 ccode=ALL pa0itssit=0x20 extpagain2g=0 #PA parameters for 2.4GHz, measured at CHIP OUTPUT pa2ga0=0xff65,0x195a,0xfd03 AvVmid_c0=0x0,0xc8 cckpwroffset0=5 # PPR params maxp2ga0=74 txpwrbckof=6 cckbw202gpo=0 legofdmbw202gpo=0x44444444 mcsbw202gpo=0x88888888 # OFDM IIR : ofdmdigfilttype=18 ofdmdigfilttypebe=18 # PAPD mode: papdmode=1 papdvalidtest=1 # LTECX flags ltecxmux=1 ltecxpadnum=0x02030401 ltecxfnsel=0x3003 ltecxgcigpio=0x3012 il0macaddr=00:90:4c:c5:12:38 wl0id=0x431b deadman_to=0xffffffff # muxenab: 0x1 for UART enable, 0x10 for Host awake muxenab=0x10 # CLDO PWM voltage settings - 0x4 - 1.1 volt #cldo_pwm=0x4 ================================================ FILE: board/nanopir1/overlay/usr/libexec/after-factory-reset ================================================ #!/bin/bash for led in /sys/class/leds/{LED2,LED3,status_led}/; do echo 0 > ${led}/brightness done ================================================ FILE: board/nanopir1/overlay/usr/libexec/btuart ================================================ #!/bin/bash FIRMWARE_DIR="/lib/firmware/ap6212/" BRCM_PATCHRAM="/usr/libexec/brcm_patchram_plus" UART_DEV="/dev/ttyS3" MAC_ADDRESS=$(cat /sys/class/net/eth0/address) # copy MAC address from eth0 function btuart_start() { # Reset Bluetooth via GPIO echo "Blocking BT rfkill" rfkill block bluetooth sleep 1 echo "Unblocking BT rfkill" rfkill unblock bluetooth sleep 1 ${BRCM_PATCHRAM} --enable_hci --no2bytes --tosleep 200000 --patchram ${FIRMWARE_DIR} --bd_addr ${MAC_ADDRESS} ${UART_DEV} } function btuart_stop() { killall $(basename ${BRCM_PATCHRAM}) &>/dev/null } ================================================ FILE: board/nanopir1/overlay/usr/libexec/fw-prepare-boot ================================================ #!/bin/bash echo "initrd=initrd.gz" >> /boot/uEnv.txt ================================================ FILE: board/nanopir1/overlay-initramfs/remove_initramfs ================================================ #!/bin/sh cat /boot/uEnv.txt | grep -v initrd > /boot/uEnv.txt.new mv /boot/uEnv.txt.new /boot/uEnv.txt ================================================ FILE: board/nanopir1/postscript.sh ================================================ #!/bin/bash cp ${BINARIES_DIR}/boot.scr ${BOOT_DIR} cp ${BINARIES_DIR}/sun8i-h3-nanopi-r1.dtb ${BOOT_DIR} mkdir -p ${BOOT_DIR}/overlays cp ${BUILD_DIR}/linux-custom/arch/arm/boot/dts/overlays/*.dtbo ${BOOT_DIR}/overlays cp ${BINARIES_DIR}/zImage ${BOOT_DIR} cp ${BOARD_DIR}/initrd.gz ${BOOT_DIR} cp ${BOARD_DIR}/uEnv.txt ${BOOT_DIR} ================================================ FILE: board/nanopir1/uEnv.txt ================================================ kernel=zImage fdt=sun8i-h3-nanopi-r1.dtb overlays=sun8i-h3-uart0 cmdline=rootwait ro rootflags=noload console=ttyS0,115200 panic=10 hung_task_panic=1 quiet loglevel=1 ================================================ FILE: board/radxacm3/board.conf ================================================ BOOT_BIN=( "${BINARIES_DIR}/idbloader.img@64" "${BINARIES_DIR}/u-boot.itb@16384" ) BOOT_START=10 PART_TABLE_TYPE=gpt ================================================ FILE: board/radxacm3/boot.cmd ================================================ setenv load_addr "0x59000000" setenv rootdev "/dev/mmcblk0p2" setenv rootfstype "ext4" echo "Boot script loaded from ${devtype} ${devnum}" if test -e ${devtype} ${devnum} ${prefix}uEnv.txt; then load ${devtype} ${devnum} ${load_addr} ${prefix}uEnv.txt env import -t ${load_addr} ${filesize} fi setenv bootargs "root=${rootdev} rootfstype=${rootfstype} ${cmdline}" if test -n "${initrd}"; then setenv bootargs "${bootargs} initrd=${initrd}" load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}${initrd} setenv initrd_size ${filesize} fi load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}${kernel} load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}${fdt} fdt addr ${fdt_addr_r} fdt resize 65536 for overlay_file in ${overlays}; do if load ${devtype} ${devnum} ${load_addr} ${prefix}overlays/${overlay_file}.dtbo; then echo "Applying kernel provided DT overlay ${overlay_file}.dtbo" fdt apply ${load_addr} fi done if test -n "${initrd}"; then echo "Initrd size is ${initrd_size}" booti ${kernel_addr_r} ${ramdisk_addr_r}:${initrd_size} ${fdt_addr_r} else booti ${kernel_addr_r} - ${fdt_addr_r} fi ================================================ FILE: board/radxacm3/cpinitramfs.sh ================================================ cp ${BINARIES_DIR}/rootfs.cpio.gz ${BOARD_DIR}/initrd.gz ================================================ FILE: board/radxacm3/overlay/etc/board ================================================ radxacm3 ================================================ FILE: board/radxacm3/overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt ================================================ #AP6212_NVRAM_V1.0_20140603 # 2.4 GHz, 20 MHz BW mode # The following parameter values are just placeholders, need to be updated. manfid=0x2d0 prodid=0x0726 vendid=0x14e4 devid=0x43e2 boardtype=0x0726 boardrev=0x1101 boardnum=22 macaddr=00:90:4c:c5:12:38 sromrev=11 boardflags=0x00404201 xtalfreq=26000 nocrc=1 ag0=255 aa2g=1 ccode=ALL pa0itssit=0x20 extpagain2g=0 #PA parameters for 2.4GHz, measured at CHIP OUTPUT pa2ga0=-168,7161,-820 AvVmid_c0=0x0,0xc8 cckpwroffset0=5 # PPR params maxp2ga0=90 txpwrbckof=6 cckbw202gpo=0x5555 legofdmbw202gpo=0x77777777 mcsbw202gpo=0xaaaaaaaa # OFDM IIR : ofdmdigfilttype=7 # PAPD mode: papdmode=2 il0macaddr=00:90:4c:c5:12:38 wl0id=0x431b #OOB parameters hostwake=0x40 hostrdy=0x41 usbrdy=0x03 usbrdydelay=100 deadman_to=0xffffffff # muxenab: 0x1 for UART enable, 0x10 for Host awake muxenab=0x10 # CLDO PWM voltage settings - 0x4 - 1.1 volt #cldo_pwm=0x4 ================================================ FILE: board/radxacm3/overlay/lib/firmware/brcm/brcmfmac43455-sdio.radxa,rockpi4b.txt ================================================ # Cloned from bcm94345wlpagb_p2xx.txt NVRAMRev=$Rev: 498373 $ sromrev=11 vendid=0x14e4 devid=0x43ab manfid=0x2d0 prodid=0x06e4 #macaddr=00:90:4c:c5:12:38 macaddr=b8:27:eb:74:f2:6c nocrc=1 boardtype=0x6e4 boardrev=0x1304 #XTAL 37.4MHz xtalfreq=37400 btc_mode=1 #------------------------------------------------------ #boardflags: 5GHz eTR switch by default # 2.4GHz eTR switch by default # bit1 for btcoex boardflags=0x00480201 boardflags2=0x40800000 boardflags3=0x48200100 phycal_tempdelta=15 rxchain=1 txchain=1 aa2g=1 aa5g=1 tssipos5g=1 tssipos2g=1 femctrl=0 AvVmid_c0=1,165,2,100,2,100,2,100,2,100 pa2ga0=-129,6525,-718 pa2ga1=-149,4408,-601 pa5ga0=-185,6836,-815,-186,6838,-815,-184,6859,-815,-184,6882,-818 pa5ga1=-202,4285,-574,-201,4312,-578,-196,4391,-586,-201,4294,-575 itrsw=1 pdoffsetcckma0=2 pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0 pdoffset2g40ma0=16 pdoffset40ma0=0x8888 pdoffset80ma0=0x8888 extpagain5g=2 extpagain2g=2 tworangetssi2g=1 tworangetssi5g=1 # LTECX flags # WCI2 ltecxmux=0 ltecxpadnum=0x0504 ltecxfnsel=0x22 ltecxgcigpio=0x32 maxp2ga0=80 ofdmlrbw202gpo=0x0022 dot11agofdmhrbw202gpo=0x4442 mcsbw202gpo=0x98444422 mcsbw402gpo=0x98444422 maxp5ga0=82,82,82,82 mcsbw205glpo=0xb9555000 mcsbw205gmpo=0xb9555000 mcsbw205ghpo=0xb9555000 mcsbw405glpo=0xb9555000 mcsbw405gmpo=0xb9555000 mcsbw405ghpo=0xb9555000 mcsbw805glpo=0xb9555000 mcsbw805gmpo=0xb9555000 mcsbw805ghpo=0xb9555000 swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3 swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3 vcodivmode=1 deadman_to=481500000 ed_thresh2g=-54 ed_thresh5g=-54 eu_edthresh2g=-54 eu_edthresh5g=-54 ldo1=4 rawtempsense=0x1ff cckPwrIdxCorr=3 cckTssiDelay=150 ofdmTssiDelay=150 txpwr2gAdcScale=1 txpwr5gAdcScale=1 dot11b_opts=0x3aa85 cbfilttype=1 fdsslevel_ch11=6 # Improved Bluetooth coexistence parameters from Cypress btc_mode=1 btc_params8=0x4e20 btc_params1=0x7530 ================================================ FILE: board/radxacm3/overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt ================================================ # Cloned from bcm94345wlpagb_p2xx.txt NVRAMRev=$Rev: 498373 $ sromrev=11 vendid=0x14e4 devid=0x43ab manfid=0x2d0 prodid=0x06e4 #macaddr=00:90:4c:c5:12:38 macaddr=b8:27:eb:74:f2:6c nocrc=1 boardtype=0x6e4 boardrev=0x1304 #XTAL 37.4MHz xtalfreq=37400 btc_mode=1 #------------------------------------------------------ #boardflags: 5GHz eTR switch by default # 2.4GHz eTR switch by default # bit1 for btcoex boardflags=0x00480201 boardflags2=0x40800000 boardflags3=0x48200100 phycal_tempdelta=15 rxchain=1 txchain=1 aa2g=1 aa5g=1 tssipos5g=1 tssipos2g=1 femctrl=0 AvVmid_c0=1,165,2,100,2,100,2,100,2,100 pa2ga0=-129,6525,-718 pa2ga1=-149,4408,-601 pa5ga0=-185,6836,-815,-186,6838,-815,-184,6859,-815,-184,6882,-818 pa5ga1=-202,4285,-574,-201,4312,-578,-196,4391,-586,-201,4294,-575 itrsw=1 pdoffsetcckma0=2 pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0 pdoffset2g40ma0=16 pdoffset40ma0=0x8888 pdoffset80ma0=0x8888 extpagain5g=2 extpagain2g=2 tworangetssi2g=1 tworangetssi5g=1 # LTECX flags # WCI2 ltecxmux=0 ltecxpadnum=0x0504 ltecxfnsel=0x22 ltecxgcigpio=0x32 maxp2ga0=80 ofdmlrbw202gpo=0x0022 dot11agofdmhrbw202gpo=0x4442 mcsbw202gpo=0x98444422 mcsbw402gpo=0x98444422 maxp5ga0=82,82,82,82 mcsbw205glpo=0xb9555000 mcsbw205gmpo=0xb9555000 mcsbw205ghpo=0xb9555000 mcsbw405glpo=0xb9555000 mcsbw405gmpo=0xb9555000 mcsbw405ghpo=0xb9555000 mcsbw805glpo=0xb9555000 mcsbw805gmpo=0xb9555000 mcsbw805ghpo=0xb9555000 swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3 swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3 vcodivmode=1 deadman_to=481500000 ed_thresh2g=-54 ed_thresh5g=-54 eu_edthresh2g=-54 eu_edthresh5g=-54 ldo1=4 rawtempsense=0x1ff cckPwrIdxCorr=3 cckTssiDelay=150 ofdmTssiDelay=150 txpwr2gAdcScale=1 txpwr5gAdcScale=1 dot11b_opts=0x3aa85 cbfilttype=1 fdsslevel_ch11=6 # Improved Bluetooth coexistence parameters from Cypress btc_mode=1 btc_params8=0x4e20 btc_params1=0x7530 ================================================ FILE: board/radxacm3/overlay/lib/firmware/brcm/brcmfmac43456-sdio.txt ================================================ #AP6256_NVRAM_V1.1_08252017 # Cloned from bcm94345wlpagb_p2xx.txt NVRAMRev=$Rev: 498373 $ sromrev=11 vendid=0x14e4 devid=0x43ab manfid=0x2d0 prodid=0x06e4 macaddr=00:90:4c:c5:12:38 nocrc=1 boardtype=0x6e4 boardrev=0x1304 xtalfreq=37400 #boardflags: 5GHz eTR switch by default # 2.4GHz eTR switch by default # bit1 for btcoex boardflags=0x00480201 boardflags2=0x40800000 boardflags3=0x48200100 #phycal_tempdelta=15 rxchain=1 txchain=1 aa2g=1 aa5g=1 tssipos5g=1 tssipos2g=1 femctrl=0 AvVmid_c0=0,157,1,126,1,126,1,126,1,126 pa2ga0=-164,5427,-623 pa2ga1=-165,3699,-515 #pa5ga0=-146,5304,-612,-140,5341,-613,-166,5326,-633,-154,5272,-621 #pa5ga0=-134,5385,-609,-132,5359,-605,-154,5360,-621,-140,5288,-604 pa5ga0=-127,5380,-603,-130,5395,-608,-148,5369,-622,-147,5222,-608 pa5ga1=-161,3544,-499,-166,3543,-497,-169,3569,-497,-171,3598,-498 itrsw=1 pdoffset2g40ma0=10 pdoffset40ma0=0xaaaa pdoffset80ma0=0xaaaa extpagain5g=2 extpagain2g=2 tworangetssi2g=0 tworangetssi5g=0 # LTECX flags # WCI2 ltecxmux=0 ltecxpadnum=0x0504 ltecxfnsel=0x22 ltecxgcigpio=0x32 pacalshift5g=0,0,3 maxp2ga0=70 cckbw202gpo=0x1000 cckbw20ul2gpo=0x1000 ofdmlrbw202gpo=0x0033 dot11agofdmhrbw202gpo=0x2222 mcsbw202gpo=0x99333322 cckdigfilttype=5 #maxp5ga0=82,82,82,82 #mcsbw205glpo=0x99555000 #mcsbw205gmpo=0x99555000 #mcsbw205ghpo=0x99555000 #mcsbw405glpo=0x99555000 #mcsbw405gmpo=0x99555000 #mcsbw405ghpo=0x99555000 #mcsbw805glpo=0x99555000 #mcsbw805gmpo=0x99555000 #mcsbw805ghpo=0x99555000 maxp5ga0=73,74,73,73 mcsbw205glpo=0x8a875444 mcsbw205gmpo=0x8a875444 mcsbw205ghpo=0x8a875444 mcsbw405glpo=0xda844333 mcsbw405gmpo=0xdb844333 mcsbw405ghpo=0xda844333 mcsbw805glpo=0xdb555444 mcsbw805gmpo=0xda555444 mcsbw805ghpo=0xda555444 swctrlmap_2g=0x00040004,0x00020002,0x00040004,0x010a02,0x1ff swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010a02,0x2f4 swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3 swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3 vcodivmode=1 deadman_to=481500000 ed_thresh2g=-54 ed_thresh5g=-54 eu_edthresh2g=-54 eu_edthresh5g=-54 muxenab=0x10 ================================================ FILE: board/radxacm3/overlay/lib/firmware/nvram_ap6212a.txt ================================================ #AP6212A_NVRAM_V1.0.1_20160606 # 2.4 GHz, 20 MHz BW mode # The following parameter values are just placeholders, need to be updated. manfid=0x2d0 prodid=0x0726 vendid=0x14e4 devid=0x43e2 boardtype=0x0726 boardrev=0x1101 boardnum=22 macaddr=00:90:4c:c5:12:38 sromrev=11 boardflags=0x00404201 xtalfreq=26000 nocrc=1 ag0=255 aa2g=1 ccode=ALL pa0itssit=0x20 extpagain2g=0 #PA parameters for 2.4GHz, measured at CHIP OUTPUT pa2ga0=-215,5267,-656 AvVmid_c0=0x0,0xc8 cckpwroffset0=5 # PPR params maxp2ga0=80 txpwrbckof=6 cckbw202gpo=0x6666 legofdmbw202gpo=0xaaaaaaaa mcsbw202gpo=0xbbbbbbbb # OFDM IIR : ofdmdigfilttype=18 ofdmdigfilttypebe=18 # PAPD mode: papdmode=2 il0macaddr=00:90:4c:c5:12:38 wl0id=0x431b #OOB parameters hostwake=0x40 hostrdy=0x41 usbrdy=0x03 usbrdydelay=100 deadman_to=0xffffffff # muxenab: 0x1 for UART enable, 0x10 for Host awake muxenab=0x10 # CLDO PWM voltage settings - 0x4 - 1.1 volt #cldo_pwm=0x4 glitch_based_crsmin=1 ================================================ FILE: board/radxacm3/overlay/lib/firmware/nvram_ap6236.txt ================================================ #AP6236_NVRAM_V1.1.1_20180815 # NVRAM file for BCM943430WLPTH, Bx Chip # 2.4 GHz, 20 MHz BW mode # The following parameter values are just placeholders, need to be updated. manfid=0x2d0 prodid=0x0727 vendid=0x14e4 devid=0x43e2 boardtype=0x0727 boardrev=0x1331 boardnum=22 macaddr=00:90:4c:c5:12:38 sromrev=11 boardflags=0x00404201 boardflags3=0x08000000 xtalfreq=26000 nocrc=1 ag0=255 aa2g=1 ccode=ALL pa0itssit=0x20 extpagain2g=0 #PA parameters for 2.4GHz, measured at CHIP OUTPUT pa2ga0=-202,5582,-671 AvVmid_c0=0x0,0xc8 cckpwroffset0=5 # PPR params maxp2ga0=74 txpwrbckof=6 cckbw202gpo=0x2222 legofdmbw202gpo=0x55555555 mcsbw202gpo=0x76666666 propbw202gpo=0xcc # OFDM IIR : ofdmdigfilttype=18 ofdmdigfilttypebe=18 # PAPD mode: papdmode=1 pacalidx2g=42 papdepsoffset=-22 papdendidx=58 # LTECX flags ltecxmux=0 ltecxpadnum=0x0102 ltecxfnsel=0x44 ltecxgcigpio=0x01 il0macaddr=00:90:4c:c5:12:38 wl0id=0x431b deadman_to=0xffffffff # muxenab: 0x1 for UART enable, 0x2 for GPIOs, 0x8 for JTAG muxenab=0x10 # CLDO PWM voltage settings - 0x4 - 1.1 volt #cldo_pwm=0x4 #VCO freq 326.4MHz spurconfig=0x3 AvVmidIQcal=0x2,0xa8 glitch_based_crsmin=1 ================================================ FILE: board/radxacm3/overlay/lib/firmware/nvram_ap6255.txt ================================================ #AP6255_NVRAM_V1.1.6_05172017.txt # Cloned from bcm94345wlpagb_p2xx.txt NVRAMRev=$Rev: 498373 $ sromrev=11 vendid=0x14e4 devid=0x43ab manfid=0x2d0 prodid=0x06e4 macaddr=00:90:4c:c5:12:38 nocrc=1 boardtype=0x6e4 boardrev=0x1304 #XTAL 37.4MHz xtalfreq=37400 btc_mode=1 #----------------------------------------- #boardflags: 5GHz eTR switch by default # 2.4GHz eTR switch by default # bit1 for btcoex boardflags=0x00480201 boardflags2=0x40800000 boardflags3=0x48200100 phycal_tempdelta=15 rxchain=1 txchain=1 aa2g=1 aa5g=1 tssipos5g=1 tssipos2g=1 femctrl=0 AvVmid_c0=1,165,2,100,2,100,2,100,2,100 pa2ga0=-195,5558,-672 pa2ga1=-118,4850,-635 pa5ga0=-203,5495,-683,-205,5489,-682,-207,5494,-678,-208,5549,-683 pa5ga1=-142,4930,-655,-150,4859,-646,-156,4887,-644,-158,4864,-641 itrsw=1 pdoffset2g40ma0=10 pdoffset40ma0=0xaaaa pdoffset80ma0=0xaaaa extpagain5g=2 extpagain2g=2 tworangetssi2g=0 tworangetssi5g=0 # LTECX flags # WCI2 ltecxmux=0 ltecxpadnum=0x0504 ltecxfnsel=0x22 ltecxgcigpio=0x32 maxp2ga0=70 cckbw202gpo=0x2200 cckbw20ul2gpo=0x2200 ofdmlrbw202gpo=0x0000 dot11agofdmhrbw202gpo=0x2222 mcsbw202gpo=0x98444422 mcsbw402gpo=0x98777755 maxp5ga0=72,72,72,72 #5GHz_20MHz Offset mcsbw205glpo=0xb9855222 mcsbw205gmpo=0xb9855222 mcsbw205ghpo=0xb9855222 #5GHz_40MHz Offset mcsbw405glpo=0xb9955333 mcsbw405gmpo=0xb9955333 mcsbw405ghpo=0xb9955333 #5GHz_80MHz Offset mcsbw805glpo=0xd9222222 mcsbw805gmpo=0xd9222222 mcsbw805ghpo=0xd9222222 swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3 swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3 vcodivmode=1 deadman_to=481500000 #ed_thresh2g=-54 #ed_thresh5g=-54 #eu_edthresh2g=-54 #eu_edthresh5g=-54 ed_thresh2g=-69 ed_thresh5g=-69 eu_edthresh2g=-69 eu_edthresh5g=-69 ldo1=4 rawtempsense=0x1ff cckPwrIdxCorr=3 cckTssiDelay=150 ofdmTssiDelay=150 txpwr2gAdcScale=1 txpwr5gAdcScale=1 dot11b_opts=0x3aa85 cbfilttype=0 #fdsslevel_ch1=6 #fdsslevel_ch11=4 muxenab=0x10 ================================================ FILE: board/radxacm3/overlay/lib/firmware/nvram_ap6256.txt ================================================ #AP6256_NVRAM_V1.1_08252017 # Cloned from bcm94345wlpagb_p2xx.txt NVRAMRev=$Rev: 498373 $ sromrev=11 vendid=0x14e4 devid=0x43ab manfid=0x2d0 prodid=0x06e4 macaddr=00:90:4c:c5:12:38 nocrc=1 boardtype=0x6e4 boardrev=0x1304 xtalfreq=37400 #boardflags: 5GHz eTR switch by default # 2.4GHz eTR switch by default # bit1 for btcoex boardflags=0x00480201 boardflags2=0x40800000 boardflags3=0x48200100 #phycal_tempdelta=15 rxchain=1 txchain=1 aa2g=1 aa5g=1 tssipos5g=1 tssipos2g=1 femctrl=0 AvVmid_c0=0,157,1,126,1,126,1,126,1,126 pa2ga0=-164,5427,-623 pa2ga1=-165,3699,-515 #pa5ga0=-146,5304,-612,-140,5341,-613,-166,5326,-633,-154,5272,-621 #pa5ga0=-134,5385,-609,-132,5359,-605,-154,5360,-621,-140,5288,-604 pa5ga0=-127,5380,-603,-130,5395,-608,-148,5369,-622,-147,5222,-608 pa5ga1=-161,3544,-499,-166,3543,-497,-169,3569,-497,-171,3598,-498 itrsw=1 pdoffset2g40ma0=10 pdoffset40ma0=0xaaaa pdoffset80ma0=0xaaaa extpagain5g=2 extpagain2g=2 tworangetssi2g=0 tworangetssi5g=0 # LTECX flags # WCI2 ltecxmux=0 ltecxpadnum=0x0504 ltecxfnsel=0x22 ltecxgcigpio=0x32 pacalshift5g=0,0,3 maxp2ga0=70 cckbw202gpo=0x1000 cckbw20ul2gpo=0x1000 ofdmlrbw202gpo=0x0033 dot11agofdmhrbw202gpo=0x2222 mcsbw202gpo=0x99333322 cckdigfilttype=5 #maxp5ga0=82,82,82,82 #mcsbw205glpo=0x99555000 #mcsbw205gmpo=0x99555000 #mcsbw205ghpo=0x99555000 #mcsbw405glpo=0x99555000 #mcsbw405gmpo=0x99555000 #mcsbw405ghpo=0x99555000 #mcsbw805glpo=0x99555000 #mcsbw805gmpo=0x99555000 #mcsbw805ghpo=0x99555000 maxp5ga0=73,74,73,73 mcsbw205glpo=0x8a875444 mcsbw205gmpo=0x8a875444 mcsbw205ghpo=0x8a875444 mcsbw405glpo=0xda844333 mcsbw405gmpo=0xdb844333 mcsbw405ghpo=0xda844333 mcsbw805glpo=0xdb555444 mcsbw805gmpo=0xda555444 mcsbw805ghpo=0xda555444 swctrlmap_2g=0x00040004,0x00020002,0x00040004,0x010a02,0x1ff swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010a02,0x2f4 swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3 swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3 vcodivmode=1 deadman_to=481500000 ed_thresh2g=-54 ed_thresh5g=-54 eu_edthresh2g=-54 eu_edthresh5g=-54 muxenab=0x10 ================================================ FILE: board/radxacm3/overlay/lib/firmware/nvram_ap6275s.txt ================================================ # AP6275S_NVRAM_V1.4_20201116 # AP6275S v00 WLBGA reference board, iPA version. # SSID generated using Alberto's boardssid.py script: # ********************SUMMARY******************** # Board Name: AP6275S_V00 #SSID: 0x086d #macmid: 0x02df # Successfully made SSID entry in sromdefs.tcl. # Successfully made macmid entry in sromdefs.tcl. # Successfully made SSID entry in tblssid.py. # ************************************************* # $ Copyright Broadcom $ # # # <> NVRAMRev=$Rev: 844050 $ sromrev=11 boardrev=0x1213 boardtype=0x08ed boardflags=0x00400201 boardflags2=0xc0800000 boardflags3=0x40002180 #boardnum=57410 macaddr=00:90:4c:12:d0:01 jtag_irw=38 #Regulatory specific ccode=0 regrev=0 # Board specific vendid=0x14e4 devid=0x449d manfid=0x2d0 antswitch=0 pdgain5g=0 pdgain2g=0 aa2g=3 aa5g=3 agbg0=2 agbg1=2 aga0=2 aga1=2 extpagain2g=2 extpagain5g=2 rxgains2gelnagaina0=0 rxgains2gtrisoa0=0 rxgains2gtrelnabypa0=0 rxgains5gelnagaina0=0 rxgains5gtrisoa0=0 rxgains5gtrelnabypa0=0 rxgains5gmelnagaina0=0 rxgains5gmtrisoa0=0 rxgains5gmtrelnabypa0=0 rxgains5ghelnagaina0=0 rxgains5ghtrisoa0=0 rxgains5ghtrelnabypa0=0 rxgains2gelnagaina1=0 rxgains2gtrisoa1=0 rxgains2gtrelnabypa1=0 rxgains5gelnagaina1=0 rxgains5gtrisoa1=0 rxgains5gtrelnabypa1=0 rxgains5gmelnagaina1=0 rxgains5gmtrisoa1=0 rxgains5gmtrelnabypa1=0 rxgains5ghelnagaina1=0 rxgains5ghtrisoa1=0 rxgains5ghtrelnabypa1=0 #RSSI related # 2G rssicorrnorm_c0=4,4 rssicorrnorm_c1=4,4 # 5G rssicorrnorm5g_c0=5,5,5,5,5,5,5,5,5,5,5,5 rssicorrnorm5g_c1=4,4,4,4,4,4,4,4,4,4,4,4 #Two range TSSI tworangetssi2g=0 tworangetssi5g=0 lowpowerrange2g=0 lowpowerrange5g=0 low_adc_rate_en=1 # NOTE :================================================================================ # To run TPC with Two Range TSSI ,set tworangetssi2g = 1 and lowpowerrange2g = 0 # To run TPC with Single Range TSSI, set tworangetssi2g = 0 # To run TPC please READ instructions near pa2ga0 and pa2ga1 as well # To generate PA params for Low Range set tworangetssi2g = 0 and lowpowerrange2g to 1 # To generate PA params for High Range set tworangetssi2g = 1 and lowpowerrange2g to 1 # ====================================================================================== #Related to FW Download. Host may use this nocrc=1 otpimagesize=502 xtalfreq=37400 txchain=3 rxchain=3 cckdigfilttype=2 #bit mask for slice capability bit 0:2G bit 1:5G bandcap=3 #TXBF Related rpcal2g=0 rpcal5gb0=0 rpcal5gb1=0 rpcal5gb2=0 rpcal5gb3=0 #FDSS Related fdss_level_2g=4,4 fdss_interp_en=1 fdss_level_5g=4,4 fdss_level_11ax_2g=3,3 fdss_level_11ax_2g_ch1=3,3 fdss_level_11ax_2g_ch11=3,3 fdss_level_11ax_5g=3,3 #Tempsense Related tempthresh=110 tempoffset=40 rawtempsense=0x1ff phycal_tempdelta=15 temps_period=15 temps_hysteresis=15 #------------- TSSI Related ------------- tssipos2g=1 tssipos5g=1 AvVmid_c0=2,127,4,92,4,91,4,91,4,94 AvVmid_c1=2,127,4,93,4,93,4,95,3,110 # CCK in case of multi mode 2 pa2gccka0=-71,9683,-1064 pa2gccka1=-59,9596,-1046 # OFDM in case of multi_mode 2 pa2ga0=-131,6980,-771 pa2ga1=-119,7130,-776 pa5ga0=-150,6098,-730,-141,6312,-729,-127,6151,-723,-136,5935,-702 #pa5ga0=-150,6098,-730,-141,6312,-729,-136,6050,-713,-179,5504,-688 #pa5ga1=-143,5954,-705,-136,6243,-722,-100,6496,-727,-89,7190,-798 pa5ga1=-148,6016,-719,-136,6243,-722,-123,6019,-711,-89,7190,-798 # Max power and offsets maxp2ga0=86 maxp2ga1=91 maxp5ga0=75,76,68,68 maxp5ga1=73,76,70,76 subband5gver=0x4 paparambwver=3 cckpwroffset0=-5 cckpwroffset1=-3 pdoffset40ma0=0x4433 pdoffset80ma0=0x3232 pdoffset40ma1=0x2333 pdoffset80ma1=0x1222 cckbw202gpo=0x1111 cckbw20ul2gpo=0x0000 mcsbw202gpo=0x65544332 mcsbw402gpo=0xEC444332 dot11agofdmhrbw202gpo=0x4433 ofdmlrbw202gpo=0x0022 mcsbw205glpo=0x87544441 mcsbw405glpo=0xB6443332 mcsbw805glpo=0xCC553332 mcsbw1605glpo=0 mcsbw205gmpo=0x98544440 mcsbw405gmpo=0xB6443332 mcsbw805gmpo=0xBB553332 mcsbw1605gmpo=0 mcsbw205ghpo=0x98422230 mcsbw405ghpo=0xB7554442 mcsbw805ghpo=0xCC442221 powoffs2gtna0=-3,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,0 powoffs2gtna1=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0 mcs1024qam2gpo=0xCCAA mcs1024qam5glpo=0xFFFFCB mcs1024qam5gmpo=0xFFEECB mcs1024qam5ghpo=0xFFFFED mcs1024qam5gx1po=0xEECCCC mcs1024qam5gx2po=0xEECCCC mcs8poexp=0 mcs9poexp=0 mcs10poexp=0 # 5G power offset per channel for band edge channel powoffs5g20mtna0=0,0,0,0,0,0,0 powoffs5g20mtna1=0,0,0,0,0,0,0 powoffs5g40mtna0=0,0,0,0,0 powoffs5g40mtna1=0,0,0,0,0 powoffs5g80mtna0=0,0,0,0,0 powoffs5g80mtna1=0,0,0,0,0 mcs11poexp=0 #LTE Coex Related ltecxmux=0 ltecxpadnum=0x0504 ltecxfnsel=0x44 ltecxgcigpio=0x04 #OOB params #device_wake_opt=1 host_wake_opt=0 # SWCTRL Related swctrlmap_2g=0x10101010,0x06030401,0x04011010,0x000000,0x3FF swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x000 swctrlmap_5g=0x80408040,0x21240120,0x01208040,0x000000,0x3FF swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x000 clb2gslice0core0=0x01b clb2gslice1core0=0x000 clb5gslice0core0=0x064 clb5gslice1core0=0x000 clb2gslice0core1=0x056 clb2gslice1core1=0x000 clb5gslice0core1=0x0a1 clb5gslice1core1=0x000 btc_prisel_ant_mask=0x2 clb_swctrl_smask_ant0=0x27f clb_swctrl_smask_ant1=0x2f7 #BT Coex 1:TDM btc_mode=1 # --- PAPD Cal related params ---- txwbpapden=0 # 0:NBPAPD 1:WBPAPD # NB PAPD Cal params nb_eps_offset=470,470 nb_bbmult=66,66 nb_papdcalidx=6,6 nb_txattn=2,2 nb_rxattn=1,1 nb_eps_stopidx=63 epsilonoff_5g20_c0=0,1,1,-1 epsilonoff_5g40_c0=0,1,1,1 epsilonoff_5g80_c0=1,0,1,1 epsilonoff_5g20_c1=1,0,0,-1 epsilonoff_5g40_c1=0,0,0,0 epsilonoff_5g80_c1=1,0,1,1 epsilonoff_2g20_c0=0 epsilonoff_2g20_c1=0 # energy detect threshold ed_thresh2g=-67 ed_thresh5g=-67 # energy detect threshold for EU eu_edthresh2g=-67 eu_edthresh5g=-67 #rpcal coef for imptxbf rpcal5gb0=238 rpcal5gb1=228 rpcal5gb2=222 rpcal5gb3=229 rpcal2g=15 ocl=0 bt_coex_chdep_div=1 # OLPC Related disable_olpc=0 olpc_thresh5g=32 olpc_anchor5g=40 olpc_thresh2g=32 olpc_anchor2g=40 #PAPR related paprdis=0 paprrmcsgamma2g=500,550,550,-1,-1,-1,-1,-1,-1,-1,-1,-1 paprrmcsgain2g=128,128,128,0,0,0,0,0,0,0,0,0 paprrmcsgamma2g_ch13=500,550,550,-1,-1,-1,-1,-1,-1,-1,-1,-1 paprrmcsgain2g_ch13=128,128,128,0,0,0,0,0,0,0,0,0 paprrmcsgamma2g_ch1=500,550,550,-1,-1,-1,-1,-1,-1,-1,-1,-1 paprrmcsgain2g_ch1=128,128,128,0,0,0,0,0,0,0,0,0 paprrmcsgamma5g20=500,500,500,-1,-1,-1,-1,-1,-1,-1,-1,-1 paprrmcsgain5g20=128,128,128,0,0,0,0,0,0,0,0,0 paprrmcsgamma5g40=600,600,600,-1,-1,-1,-1,-1,-1,-1,-1,-1 paprrmcsgain5g40=128,128,128,0,0,0,0,0,0,0,0,0 paprrmcsgamma5g80=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 paprrmcsgain5g80=0,0,0,0,0,0,0,0,0,0,0,0 # Enable papd for cck when target pwr ge 16dBm cckpapd_pwrthresh=64 ## ULOFDMA Board limit PPRs for 2G20 ## ruppr2g20bpska0=0x8421 ruppr2g20bpska1=0x8421 ruppr2g20qpska0=0x8421 ruppr2g20qpska1=0x8421 ruppr2g20qam16a0=0x10842 ruppr2g20qam16a1=0x10842 ruppr2g20qam64a0=0x18C63 ruppr2g20qam64a1=0x18C63 ruppr2g20qam256a0=0x318C6 ruppr2g20qam256a1=0x318C6 ruppr2g20qam1024a0=0x5AD6B ruppr2g20qam1024a1=0x5AD6B ## ULOFDMA Board limit PPRs for 5G20 ## ruppr5g20bpska0=0x30421 ruppr5g20bpska1=0x30421 ruppr5g20qpska0=0x30421 ruppr5g20qpska1=0x30421 ruppr5g20qam16a0=0x30842 ruppr5g20qam16a1=0x30842 ruppr5g20qam64a0=0x314A5 ruppr5g20qam64a1=0x314A5 ruppr5g20qam256a0=0x4A529 ruppr5g20qam256a1=0x4A529 ruppr5g20qam1024a0=0x7294A ruppr5g20qam1024a1=0x7294A ## ULOFDMA Board limit PPRs for 5G40 ## ruppr5g40bpska0=0x508421 ruppr5g40bpska1=0x508421 ruppr5g40qpska0=0x508421 ruppr5g40qpska1=0x508421 ruppr5g40qam16a0=0x508421 ruppr5g40qam16a1=0x508421 ruppr5g40qam64a0=0x518C63 ruppr5g40qam64a1=0x518C63 ruppr5g40qam256a0=0xA42108 ruppr5g40qam256a1=0xA42108 ruppr5g40qam1024a0=0xE68421 ruppr5g40qam1024a1=0xE68421 ## ULOFDMA Board limit PPRs for 5G80 ## ruppr5g80bpska0=0xC108421 ruppr5g80bpska1=0xC108421 ruppr5g80qpska0=0xC108421 ruppr5g80qpska1=0xC108421 ruppr5g80qam16a0=0xC108421 ruppr5g80qam16a1=0xC108421 ruppr5g80qam64a0=0x14418C63 ruppr5g80qam64a1=0x14418C63 ruppr5g80qam256a0=0x2C94A529 ruppr5g80qam256a1=0x2C94A529 ruppr5g80qam1024a0=0x3CD60000 ruppr5g80qam1024a1=0x3CD60000 muxenab=0x10 # ########### BTC Dynctl profile params ############ # flags:bit0 - dynctl enabled, bit1 dynamic desense, bit2 dynamic mode, bit 3 TX power control #btcdyn_flags=1 #btcdyn_default_btc_mode=5 #btcdyn_msw_rows=0 #btcdyn_dsns_rows=0 #btc_params1007=100 #btc_params1017=4 ================================================ FILE: board/radxacm3/overlay/lib/firmware/nvram_ap6356.txt ================================================ #AP6356S_NVRAM_V1.3_20180508 #Modified from AP6356SDP_V1.0_NVRAM_20150216 NVRAMRev=$Rev: 373428 $ sromrev=11 boardrev=0x1121 boardtype=0x073e boardflags=0x02400201 boardflags2=0x00802000 boardflags3=0x0000000a macaddr=00:90:4c:1a:10:01 ccode=0x5855 regrev=1 antswitch=0 pdgain5g=4 pdgain2g=4 tworangetssi2g=0 tworangetssi5g=0 paprdis=0 femctrl=10 vendid=0x14e4 devid=0x43a3 manfid=0x2d0 nocrc=1 otpimagesize=502 xtalfreq=37400 rxgains2gelnagaina0=0 rxgains2gtrisoa0=7 rxgains2gtrelnabypa0=0 rxgains5gelnagaina0=0 rxgains5gtrisoa0=11 rxgains5gtrelnabypa0=0 rxgains5gmelnagaina0=0 rxgains5gmtrisoa0=13 rxgains5gmtrelnabypa0=0 rxgains5ghelnagaina0=0 rxgains5ghtrisoa0=12 rxgains5ghtrelnabypa0=0 rxgains2gelnagaina1=0 rxgains2gtrisoa1=7 rxgains2gtrelnabypa1=0 rxgains5gelnagaina1=0 rxgains5gtrisoa1=10 rxgains5gtrelnabypa1=0 rxgains5gmelnagaina1=0 rxgains5gmtrisoa1=11 rxgains5gmtrelnabypa1=0 rxgains5ghelnagaina1=0 rxgains5ghtrisoa1=11 rxgains5ghtrelnabypa1=0 rxchain=3 txchain=3 aa2g=3 aa5g=3 agbg0=2 agbg1=2 aga0=2 aga1=2 tssipos2g=1 extpagain2g=2 tssipos5g=1 extpagain5g=2 tempthresh=255 tempoffset=255 rawtempsense=0x1ff pa2ga0=-135,5769,-647 pa2ga1=-143,6023,-677 pa5ga0=-183,5746,-697,-172,5801,-685,-176,5707,-680,-180,5445,-659 pa5ga1=-186,5543,-669,-193,5506,-675,-210,5282,-661,-199,5367,-665 subband5gver=0x4 pdoffsetcckma0=0x4 pdoffsetcckma1=0x4 pdoffset40ma0=0x0000 pdoffset80ma0=0x0000 pdoffset40ma1=0x0000 pdoffset80ma1=0x0000 maxp2ga0=72 maxp5ga0=69,70,69,68 maxp2ga1=71 maxp5ga1=67,67,67,67 cckbw202gpo=0x1222 cckbw20ul2gpo=0x0000 mcsbw202gpo=0x9E644422 mcsbw402gpo=0xE9744424 dot11agofdmhrbw202gpo=0x4444 ofdmlrbw202gpo=0x0022 mcsbw205glpo=0xEEA86661 mcsbw405glpo=0xEEB86663 mcsbw805glpo=0xEEB86663 mcsbw205gmpo=0xAAA86663 mcsbw405gmpo=0xECB86663 mcsbw805gmpo=0xEEA86663 mcsbw205ghpo=0xCC986663 mcsbw405ghpo=0xEEA86663 mcsbw805ghpo=0xEEA86663 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=255 temps_period=15 temps_hysteresis=15 rssicorrnorm_c0=4,4 rssicorrnorm_c1=4,4 rssicorrnorm5g_c0=1,2,3,1,2,3,6,6,8,6,6,8 rssicorrnorm5g_c1=1,2,3,2,2,2,7,7,8,7,7,8 muxenab=0x10 ================================================ FILE: board/radxacm3/overlay/lib/firmware/nvram_ap6356s.txt ================================================ #AP6356S_NVRAM_V1.3_20180508 #Modified from AP6356SDP_V1.0_NVRAM_20150216 NVRAMRev=$Rev: 373428 $ sromrev=11 boardrev=0x1121 boardtype=0x073e boardflags=0x02400201 boardflags2=0x00802000 boardflags3=0x0000000a macaddr=00:90:4c:1a:10:01 ccode=0x5855 regrev=1 antswitch=0 pdgain5g=4 pdgain2g=4 tworangetssi2g=0 tworangetssi5g=0 paprdis=0 femctrl=10 vendid=0x14e4 devid=0x43a3 manfid=0x2d0 nocrc=1 otpimagesize=502 xtalfreq=37400 rxgains2gelnagaina0=0 rxgains2gtrisoa0=7 rxgains2gtrelnabypa0=0 rxgains5gelnagaina0=0 rxgains5gtrisoa0=11 rxgains5gtrelnabypa0=0 rxgains5gmelnagaina0=0 rxgains5gmtrisoa0=13 rxgains5gmtrelnabypa0=0 rxgains5ghelnagaina0=0 rxgains5ghtrisoa0=12 rxgains5ghtrelnabypa0=0 rxgains2gelnagaina1=0 rxgains2gtrisoa1=7 rxgains2gtrelnabypa1=0 rxgains5gelnagaina1=0 rxgains5gtrisoa1=10 rxgains5gtrelnabypa1=0 rxgains5gmelnagaina1=0 rxgains5gmtrisoa1=11 rxgains5gmtrelnabypa1=0 rxgains5ghelnagaina1=0 rxgains5ghtrisoa1=11 rxgains5ghtrelnabypa1=0 rxchain=3 txchain=3 aa2g=3 aa5g=3 agbg0=2 agbg1=2 aga0=2 aga1=2 tssipos2g=1 extpagain2g=2 tssipos5g=1 extpagain5g=2 tempthresh=255 tempoffset=255 rawtempsense=0x1ff pa2ga0=-135,5769,-647 pa2ga1=-143,6023,-677 pa5ga0=-183,5746,-697,-172,5801,-685,-176,5707,-680,-180,5445,-659 pa5ga1=-186,5543,-669,-193,5506,-675,-210,5282,-661,-199,5367,-665 subband5gver=0x4 pdoffsetcckma0=0x4 pdoffsetcckma1=0x4 pdoffset40ma0=0x0000 pdoffset80ma0=0x0000 pdoffset40ma1=0x0000 pdoffset80ma1=0x0000 maxp2ga0=72 maxp5ga0=69,70,69,68 maxp2ga1=71 maxp5ga1=67,67,67,67 cckbw202gpo=0x1222 cckbw20ul2gpo=0x0000 mcsbw202gpo=0x9E644422 mcsbw402gpo=0xE9744424 dot11agofdmhrbw202gpo=0x4444 ofdmlrbw202gpo=0x0022 mcsbw205glpo=0xEEA86661 mcsbw405glpo=0xEEB86663 mcsbw805glpo=0xEEB86663 mcsbw205gmpo=0xAAA86663 mcsbw405gmpo=0xECB86663 mcsbw805gmpo=0xEEA86663 mcsbw205ghpo=0xCC986663 mcsbw405ghpo=0xEEA86663 mcsbw805ghpo=0xEEA86663 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=255 temps_period=15 temps_hysteresis=15 rssicorrnorm_c0=4,4 rssicorrnorm_c1=4,4 rssicorrnorm5g_c0=1,2,3,1,2,3,6,6,8,6,6,8 rssicorrnorm5g_c1=1,2,3,2,2,2,7,7,8,7,7,8 muxenab=0x10 ================================================ FILE: board/radxacm3/overlay/lib/firmware/nvram_ap6398s.txt ================================================ #AP6398S_NVRAM_V1.1_20170926 # BCM4359 WLBGA iPA, iLNA board for bringup -AP6359SA_V1.0NVRAM NVRAMRev=$Rev: 528206 $ cckdigfilttype=5 #cckdigfilttype=4 (default) #valid ofdm filter types are 0 and 1 ofdmfilttype_2gbe=127 ofdmfilttype_5gbe=127 sromrev=11 boardrev=0x1301 boardtype=0x0812 # JIRA:SW4349-945 MANDATORY! Update makefile in case you touch bfl #boardflags=0x10081201 boardflags=0x00480201 boardflags2=0x40801000 boardflags3=0x48700106 #boardnum=57410 macaddr=00:90:4c:27:80:01 ccode=0 regrev=0 antswitch=0 pdgain5g=0 pdgain2g=0 lowpowerrange2g=0 lowpowerrange5g=0 tworangetssi2g=0 tworangetssi5g=0 # Low Power Range start value: 0dBm olpc_thresh2g=0 olpc_thresh5g=0 AvVmid_c0=2,130,2,130,2,130,2,130,2,130 AvVmid_c1=2,130,2,130,2,130,2,130,2,130 # JIRA:SW4349-945 MANDATORY! Update makefile in case you touch femctl femctrl=14 vendid=0x14e4 devid=0x43ef manfid=0x2d0 #prodid=0x052e nocrc=1 btc_mode=1 #btc_params82=0x1a0 otpimagesize=502 xtalfreq=37400 rxgains2gelnagaina0=3 rxgains2gtrisoa0=7 rxgains2gtrelnabypa0=1 rxgains5gelnagaina0=3 rxgains5gtrisoa0=6 rxgains5gtrelnabypa0=1 rxgains5gmelnagaina0=3 rxgains5gmtrisoa0=6 rxgains5gmtrelnabypa0=1 rxgains5ghelnagaina0=3 rxgains5ghtrisoa0=6 rxgains5ghtrelnabypa0=1 rxgains2gelnagaina1=3 rxgains2gtrisoa1=7 rxgains2gtrelnabypa1=1 rxgains5gelnagaina1=3 rxgains5gtrisoa1=6 rxgains5gtrelnabypa1=1 rxgains5gmelnagaina1=3 rxgains5gmtrisoa1=6 rxgains5gmtrelnabypa1=1 rxgains5ghelnagaina1=3 rxgains5ghtrisoa1=6 rxgains5ghtrelnabypa1=1 rxchain=3 txchain=3 aa2g=3 aa5g=3 agbg0=2 agbg1=2 aga0=2 aga1=2 tssipos2g=1 extpagain2g=2 tssipos5g=1 extpagain5g=2 tempthresh=255 tempoffset=255 rawtempsense=0x1ff fdss_interp_en=1 #fdss_level_2g=3,3 fdss_level_5g=4,4 #pa2gccka0=-186,8076,-976 #pa2gccka1=-217,7061,-881 #pa2gccka2=-67,9864,-1253 #pa2gccka3=-115,9164,-1225 #pa2ga0=-196,6950,-832 #pa2ga1=-204,6710,-809 #pa2ga2=-220,4557,-593 #pa2ga3=-218,4596,-601 pa2ga0=-193,7335,-862 pa2ga1=-202,6968,-828 pa2ga2=-220,4685,-607 pa2ga3=-218,4724,-615 #pa5ga0=-191,6865,-844,-169,7525,-907,-168,7768,-938,-192,7073,-871 #pa5ga1=-182,7580,-919,-188,7614,-931,-219,6536,-818,-202,7220,-895 #pa5ga2=-220,4437,-628,-183,5005,-678,-229,4048,-551,-223,4448,-611 #pa5ga3=-263,3914,-566,-224,4649,-640,-230,4385,-596,-154,6488,-866 pa5ga0=-205,6664,-820,-201,6801,-835,-199,6767,-831,-178,7266,-873 pa5ga1=-200,7025,-858,-193,7170,-871,-186,7290,-879,-187,7227,-873 pa5ga2=-220,4616,-647,-183,5184,-694,-229,4227,-571,-223,4627,-631 pa5ga3=-263,4170,-599,-224,4905,-668,-230,4641,-625,-154,6744,-885 #pa5gbw4080a0=-201,6883,-859,-198,7088,-881,-202,6968,-870,-210,6522,-820 #pa5gbw4080a1=-217,6626,-832,-201,7517,-932,-201,7251,-896,-184,7500,-917 #pa5gbw4080a2=-272,3585,-525,-193,5404,-740,-229,4201,-572,-230,4036,-550 #pa5gbw4080a3=-278,3361,-486,-230,4794,-662,-268,3605,-508,-276,3337,-478 maxp2ga0=74 maxp2ga1=74 maxp5ga0=70,70,70,70 maxp5ga1=70,70,71,70 subband5gver=0x4 paparambwver=3 pdoffset2g40mvalid=0 cckpwroffset0=0x3 cckpwroffset1=0x3 pdoffset2g40ma0=0x2 pdoffset2g40ma1=0x3 pdoffset40ma0=0x0022 pdoffset80ma0=0xceff pdoffset40ma1=0x0123 pdoffset80ma1=0xdfff cckbw202gpo=0 cckbw20ul2gpo=0 mcsbw202gpo=0x44444444 mcsbw402gpo=0x44444444 dot11agofdmhrbw202gpo=0x2222 ofdmlrbw202gpo=0x0000 mcsbw205glpo=0x44444444 mcsbw405glpo=0x44444444 mcsbw805glpo=0xCCCCCCCC mcsbw1605glpo=0 mcsbw205gmpo=0x44444444 mcsbw405gmpo=0x44444444 mcsbw805gmpo=0xCCCCCCCC mcsbw1605gmpo=0 mcsbw205ghpo=0x44444444 mcsbw405ghpo=0x44444444 mcsbw805ghpo=0xCCCCCCCC mcsbw1605ghpo=0 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=255 temps_period=15 temps_hysteresis=15 ltecxmux=0 ltecxpadnum=0x0504 ltecxfnsel=0x44 ltecxgcigpio=0x04 #OOB params #device_wake_opt=1 #host_wake_opt=0 swctrlmap_2g=0x00000808,0x00001010,0x00001010,0x021010,0x3ff swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x003 swctrlmap_5g=0x00004040,0x00000000,0x00000000,0x000000,0x3e5 swctrlmapext_5g=0x00000000,0x00000101,0x00000101,0x000000,0x003 fem_table_init_val=0x00001010,0x00000000 rssi_delta_5gl_c0=3,3,2,2,5,5 rssi_delta_5gml_c0=0,2,0,2,3,5 rssi_delta_5gmu_c0=0,2,0,2,3,5 rssi_delta_5gh_c0=2,5,2,5,5,8 rssi_delta_5gl_c1=1,1,2,2,3,3 rssi_delta_5gml_c1=-1,1,0,2,1,3 rssi_delta_5gmu_c1=-1,1,0,2,1,3 rssi_delta_5gh_c1=0,3,2,5,3,6 rssi_delta_2g_c0=4,5,4,5 rssi_delta_2g_c1=2,3,2,3 #muxenab=1 #avs_enab=1 # ########### BTC Dynctl profile params ############ # flags:bit0 - dynctl enabled, bit1 dynamic desense, bit2 dynamic mode btcdyn_flags=0x0 #btcdyn_dflt_dsns_level=0 #btcdyn_low_dsns_level=0 #btcdyn_mid_dsns_level=7 #btcdyn_high_dsns_level=2 #btcdyn_default_btc_mode=5 #btcdyn_btrssi_hyster=2 # --- number of rows in the array vars below --- #btcdyn_msw_rows=3 #btcdyn_dsns_rows=2 # --- mode switch data rows (max is 4) --- #btcdyn_msw_row0=1,8,0,-50,-100 #btcdyn_msw_row1=1,4,0,-55,-100 #btcdyn_msw_row2=1,0,0,-70,-100 #btcdyn_msw_row3=1,-4,0,-70,-100 # --- desense switching data rows (max is 4) --- #btcdyn_dsns_row0=5,8,0,-40,-40 #btcdyn_dsns_row0=5,4,0,-60,-60 #btcdyn_dsns_row1=5,0,0,0,-75 powoffs2gtna0=1,3,3,1,0,0,1,2,2,2,1,1,0,0 powoffs2gtna1=-1,1,1,1,0,0,1,2,3,2,2,0,0,0 #new Jan 4th #eps_shift0=-1,-6,-1,-5 #eps_shift1=-4,-6,-1,-2 #eps_shift2=-1,9,-2,-6 muxenab=0x10 #bandedge fdss_level_2g=4,4 fdss_level_5g=5,5 fdss_interp_en=1 ================================================ FILE: board/radxacm3/overlay/lib/firmware/nvram_ap6398sr3.txt ================================================ #AP6398SR3_NVRAM_V1.0_20171106.txt NVRAMRev=$Rev: 528206 $ cckdigfilttype=5 #cckdigfilttype=4 (default) #valid ofdm filter types are 0 and 1 ofdmfilttype_2gbe=127 ofdmfilttype_5gbe=127 sromrev=11 boardrev=0x1301 boardtype=0x0812 # JIRA:SW4349-945 MANDATORY! Update makefile in case you touch bfl #boardflags=0x10081201 boardflags=0x00000001 boardflags2=0x40000000 boardflags3=0x48700106 #boardnum=57410 macaddr=00:90:4c:27:80:01 ccode=0 regrev=0 antswitch=0 pdgain5g=0 pdgain2g=0 lowpowerrange2g=0 lowpowerrange5g=0 tworangetssi2g=0 tworangetssi5g=0 # Low Power Range start value: 0dBm olpc_thresh2g=0 olpc_thresh5g=0 AvVmid_c0=2,130,2,130,2,130,2,130,2,130 AvVmid_c1=2,130,2,130,2,130,2,130,2,130 # JIRA:SW4349-945 MANDATORY! Update makefile in case you touch femctl femctrl=14 vendid=0x14e4 devid=0x43ef manfid=0x2d0 #prodid=0x052e nocrc=1 btc_mode=1 #btc_params82=0x1a0 otpimagesize=502 xtalfreq=37400 rxgains2gelnagaina0=3 rxgains2gtrisoa0=7 rxgains2gtrelnabypa0=1 rxgains5gelnagaina0=3 rxgains5gtrisoa0=6 rxgains5gtrelnabypa0=1 rxgains5gmelnagaina0=3 rxgains5gmtrisoa0=6 rxgains5gmtrelnabypa0=1 rxgains5ghelnagaina0=3 rxgains5ghtrisoa0=6 rxgains5ghtrelnabypa0=1 rxgains2gelnagaina1=3 rxgains2gtrisoa1=7 rxgains2gtrelnabypa1=1 rxgains5gelnagaina1=3 rxgains5gtrisoa1=6 rxgains5gtrelnabypa1=1 rxgains5gmelnagaina1=3 rxgains5gmtrisoa1=6 rxgains5gmtrelnabypa1=1 rxgains5ghelnagaina1=3 rxgains5ghtrisoa1=6 rxgains5ghtrelnabypa1=1 rxchain=3 txchain=3 aa2g=3 aa5g=3 agbg0=2 agbg1=2 aga0=2 aga1=2 tssipos2g=1 extpagain2g=2 tssipos5g=1 extpagain5g=2 tempthresh=255 tempoffset=255 rawtempsense=0x1ff fdss_interp_en=1 #fdss_level_2g=3,3 fdss_level_5g=4,4 #pa2gccka0=-186,8076,-976 #pa2gccka1=-217,7061,-881 #pa2gccka2=-67,9864,-1253 #pa2gccka3=-115,9164,-1225 #pa2ga0=-196,6950,-832 #pa2ga1=-204,6710,-809 #pa2ga2=-220,4557,-593 #pa2ga3=-218,4596,-601 pa2ga0=-193,7335,-862 pa2ga1=-202,6968,-828 pa2ga2=-220,4685,-607 pa2ga3=-218,4724,-615 #pa5ga0=-191,6865,-844,-169,7525,-907,-168,7768,-938,-192,7073,-871 #pa5ga1=-182,7580,-919,-188,7614,-931,-219,6536,-818,-202,7220,-895 #pa5ga2=-220,4437,-628,-183,5005,-678,-229,4048,-551,-223,4448,-611 #pa5ga3=-263,3914,-566,-224,4649,-640,-230,4385,-596,-154,6488,-866 pa5ga0=-201,6882,-843,-191,7173,-871,-193,7048,-861,-181,7214,-866 pa5ga1=-214,6467,-801,-210,6642,-821,-204,6742,-831,-204,6651,-819 pa5ga2=-220,4616,-647,-183,5184,-694,-229,4227,-571,-223,4627,-631 pa5ga3=-263,4170,-599,-224,4905,-668,-230,4641,-625,-154,6744,-885 #pa5gbw4080a0=-201,6883,-859,-198,7088,-881,-202,6968,-870,-210,6522,-820 #pa5gbw4080a1=-217,6626,-832,-201,7517,-932,-201,7251,-896,-184,7500,-917 #pa5gbw4080a2=-272,3585,-525,-193,5404,-740,-229,4201,-572,-230,4036,-550 #pa5gbw4080a3=-278,3361,-486,-230,4794,-662,-268,3605,-508,-276,3337,-478 maxp2ga0=70 maxp2ga1=72 maxp5ga0=61,61,62,62 maxp5ga1=61,61,62,60 subband5gver=0x4 paparambwver=3 pdoffset2g40mvalid=0 cckpwroffset0=0x3 cckpwroffset1=0x3 pdoffset2g40ma0=0x2 pdoffset2g40ma1=0x3 pdoffset40ma0=0x0022 pdoffset80ma0=0xceff pdoffset40ma1=0x0123 pdoffset80ma1=0xdfff cckbw202gpo=0 cckbw20ul2gpo=0 mcsbw202gpo=0x44444444 mcsbw402gpo=0x44444444 dot11agofdmhrbw202gpo=0x2222 ofdmlrbw202gpo=0x0000 mcsbw205glpo=0x33233333 mcsbw405glpo=0x33233333 mcsbw805glpo=0x88888888 mcsbw1605glpo=0 mcsbw205gmpo=0x22222223 mcsbw405gmpo=0x22444444 mcsbw805gmpo=0x8AAAAAAB mcsbw1605gmpo=0 mcsbw205ghpo=0x44333333 mcsbw405ghpo=0x44444444 mcsbw805ghpo=0x98888888 mcsbw1605ghpo=0 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=255 temps_period=15 temps_hysteresis=15 ltecxmux=0 ltecxpadnum=0x0504 ltecxfnsel=0x44 ltecxgcigpio=0x04 #OOB params #device_wake_opt=1 #host_wake_opt=0 swctrlmap_2g=0x00000808,0x00001010,0x00001010,0x021010,0x3ff swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x003 swctrlmap_5g=0x00004040,0x00000000,0x00000000,0x000000,0x3e5 swctrlmapext_5g=0x00000000,0x00000101,0x00000101,0x000000,0x003 fem_table_init_val=0x00001010,0x00000000 rssi_delta_5gl_c0=3,3,2,2,5,5 rssi_delta_5gml_c0=0,2,0,2,3,5 rssi_delta_5gmu_c0=0,2,0,2,3,5 rssi_delta_5gh_c0=2,5,2,5,5,8 rssi_delta_5gl_c1=1,1,2,2,3,3 rssi_delta_5gml_c1=-1,1,0,2,1,3 rssi_delta_5gmu_c1=-1,1,0,2,1,3 rssi_delta_5gh_c1=0,3,2,5,3,6 rssi_delta_2g_c0=4,5,4,5 rssi_delta_2g_c1=2,3,2,3 #muxenab=1 #avs_enab=1 # ########### BTC Dynctl profile params ############ # flags:bit0 - dynctl enabled, bit1 dynamic desense, bit2 dynamic mode btcdyn_flags=0x0 #btcdyn_dflt_dsns_level=0 #btcdyn_low_dsns_level=0 #btcdyn_mid_dsns_level=7 #btcdyn_high_dsns_level=2 #btcdyn_default_btc_mode=5 #btcdyn_btrssi_hyster=2 # --- number of rows in the array vars below --- #btcdyn_msw_rows=3 #btcdyn_dsns_rows=2 # --- mode switch data rows (max is 4) --- #btcdyn_msw_row0=1,8,0,-50,-100 #btcdyn_msw_row1=1,4,0,-55,-100 #btcdyn_msw_row2=1,0,0,-70,-100 #btcdyn_msw_row3=1,-4,0,-70,-100 # --- desense switching data rows (max is 4) --- #btcdyn_dsns_row0=5,8,0,-40,-40 #btcdyn_dsns_row0=5,4,0,-60,-60 #btcdyn_dsns_row1=5,0,0,0,-75 powoffs2gtna0=1,3,3,1,0,0,1,2,2,2,1,1,0,0 powoffs2gtna1=-1,1,1,1,0,0,1,2,3,2,2,0,0,0 #new Jan 4th #eps_shift0=-1,-6,-1,-5 #eps_shift1=-4,-6,-1,-2 #eps_shift2=-1,9,-2,-6 muxenab=0x10 #bandedge fdss_level_2g=4,4 fdss_level_5g=5,5 fdss_interp_en=1 ================================================ FILE: board/radxacm3/overlay/lib/firmware/nvram_azw256.txt ================================================ # Cloned from bcm94345wlpagb_p2xx.txt NVRAMRev=$Rev: 498373 $ sromrev=11 vendid=0x14e4 devid=0x43ab manfid=0x2d0 prodid=0x06e4 macaddr=00:90:4c:c5:12:38 nocrc=1 boardtype=0x6e4 boardrev=0x1304 #XTAL 37.4MHz xtalfreq=37400 btc_mode=1 #------------------------------------------------------ #boardflags: 5GHz eTR switch by default # 2.4GHz eTR switch by default # bit1 for btcoex boardflags=0x00480201 boardflags2=0x40800000 boardflags3=0x48200100 phycal_tempdelta=15 rxchain=1 txchain=1 aa2g=1 aa5g=1 tssipos5g=1 tssipos2g=1 femctrl=0 AvVmid_c0=1,165,2,100,2,100,2,100,2,100 #pa2ga0=-170,6462,-755 #pa2ga1=-118,4850,-635 pa2ga0=-166,6659,-751 pa2ga1=-118,5285,-661 pa5ga0=-157,7297,-846,-157,7368,-849,-156,7436,-853,-152,7382,-847 pa5ga1=-142,4968,-659,-150,4973,-656,-156,4937,-650,-158,4901,-646 itrsw=1 pdoffset2g40ma0=15 pdoffset40ma0=0x8888 pdoffset80ma0=0x8888 extpagain5g=2 extpagain2g=2 tworangetssi2g=1 tworangetssi5g=1 # LTECX flags # WCI2 ltecxmux=0 ltecxpadnum=0x0504 ltecxfnsel=0x22 ltecxgcigpio=0x32 maxp2ga0=78 ofdmlrbw202gpo=0x0044 dot11agofdmhrbw202gpo=0x4444 mcsbw202gpo=0x66666666 mcsbw402gpo=0x88888888 maxp5ga0=66,66,66,66 mcsbw205glpo=0x22000000 mcsbw205gmpo=0x22000000 mcsbw205ghpo=0x22000000 mcsbw405glpo=0x44444444 mcsbw405gmpo=0x44444444 mcsbw405ghpo=0x44444444 mcsbw805glpo=0x66666666 mcsbw805gmpo=0x66666666 mcsbw805ghpo=0x66666666 swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3 swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3 vcodivmode=1 deadman_to=481500000 ed_thresh2g=-54 ed_thresh5g=-54 eu_edthresh2g=-54 eu_edthresh5g=-54 ldo1=4 rawtempsense=0x1ff cckPwrIdxCorr=3 cckTssiDelay=150 ofdmTssiDelay=150 txpwr2gAdcScale=1 txpwr5gAdcScale=1 lowpowerrange2g=0 lowpowerrange5g=0 dot11b_opts=0x3aa85 cbfilttype=2 fdsslevel_ch1=6 fdsslevel_ch11=4 muxenab=0x10 ================================================ FILE: board/radxacm3/overlay/usr/libexec/btuart ================================================ #!/bin/bash BRCM_PATCHRAM="/usr/libexec/brcm_patchram_plus1" UART_DEV="/dev/ttyS1" SARADC_IN1=$(cat /sys/bus/iio/devices/iio:device0/in_voltage1_raw) if [[ "${SARADC_IN1}" -ge 634 ]] && [[ "${SARADC_IN1}" -le 746 ]]; then FIRMWARE_FILE="/lib/firmware/brcm/BCM4345C0.hcd" else FIRMWARE_FILE="/lib/firmware/brcm/BCM4345C5.hcd" fi function btuart_start() { # Reset Bluetooth via GPIO echo "Blocking BT rfkill" rfkill block bluetooth sleep 1 echo "Unblocking BT rfkill" rfkill unblock bluetooth sleep 1 ${BRCM_PATCHRAM} --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram ${FIRMWARE_FILE} ${UART_DEV} } function btuart_stop() { killall $(basename ${BRCM_PATCHRAM}) &>/dev/null } ================================================ FILE: board/radxacm3/overlay/usr/libexec/fw-prepare-boot ================================================ #!/bin/bash echo "initrd=initrd.gz" >> /boot/uEnv.txt ================================================ FILE: board/radxacm3/overlay-initramfs/remove_initramfs ================================================ #!/bin/sh cat /boot/uEnv.txt | grep -v initrd > /boot/uEnv.txt.new mv /boot/uEnv.txt.new /boot/uEnv.txt ================================================ FILE: board/radxacm3/postscript.sh ================================================ #!/bin/bash radxa_mkimage="${BUILD_DIR}/uboot-custom/tools/mkimage" ${radxa_mkimage} -n rk3568 -T rksd -d ${BOARD_DIR}/rk3566_ddr_1056MHz_v1.10.bin:${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/idbloader.img mkdir -p ${TARGET_DIR}/vendor/etc rm -f ${TARGET_DIR}/vendor/etc/firmware ln -sf /lib/firmware ${TARGET_DIR}/vendor/etc/firmware mkdir -p ${BOOT_DIR}/overlays cp ${BINARIES_DIR}/rk3566-radxa-cm3-rpi-cm4-io.dtb ${BOOT_DIR} cp ${BUILD_DIR}/linux-custom/arch/arm64/boot/dts/rockchip/overlay/*.dtbo ${BOOT_DIR}/overlays cp ${BINARIES_DIR}/boot.scr ${BOOT_DIR} cp ${BINARIES_DIR}/Image ${BOOT_DIR} cp ${BOARD_DIR}/initrd.gz ${BOOT_DIR} cp ${BOARD_DIR}/uEnv.txt ${BOOT_DIR} ================================================ FILE: board/radxacm3/uEnv.txt ================================================ kernel=Image fdt=rk3566-radxa-cm3-rpi-cm4-io.dtb cmdline=rootwait ro rootflags=noload panic=10 hung_task_panic=1 quiet loglevel=1 overlays=rk3568-uart0 rk3568-disable-npu ================================================ FILE: board/radxacm3/writeimage.sh ================================================ #!/bin/bash -e function usage() { cat < - indicates the path to the image file (e.g. -i /home/user/Download/file.img.xz) END_USAGE exit 1 } function msg() { echo " * $1" } if [[ -z "$1" ]]; then usage 1>&2 fi if [[ $(id -u) -ne 0 ]]; then msg "please run as root" exit 1 fi BOARD_DIR=$(dirname $0) rkbin=${BOARD_DIR}/../../output/$(basename ${BOARD_DIR})/images/rkbin rkdeveloptool=${rkbin}/tools/rkdeveloptool flash_boot_loader=${BOARD_DIR}/flash-boot-loader.bin while getopts "a:d:f:h:i:lm:n:o:p:s:w" o; do case "${o}" in i) DISK_IMG=${OPTARG} ;; *) usage 1>&2 ;; esac done if [[ -z "${DISK_IMG}" ]]; then usage 1>&2 fi if ! [[ -f "${DISK_IMG}" ]]; then echo "could not find image file $DISK_IMG" exit 1 fi gunzip=$(which unpigz 2> /dev/null || which gunzip 2> /dev/null || true) unxz=$(which unxz 2> /dev/null || true) if [[ ${DISK_IMG} == *.gz ]]; then if [[ -z "$gunzip" ]]; then msg "make sure you have the gzip package installed" exit 1 fi msg "decompressing the .gz compressed image" ${gunzip} -c "${DISK_IMG}" > "${DISK_IMG%???}" DISK_IMG=${DISK_IMG%???} elif [[ ${DISK_IMG} == *.xz ]]; then if [[ -z "${unxz}" ]]; then msg "make sure you have the xz package installed" exit 1 fi msg "decompressing the .xz compressed image" ${unxz} -T 0 -c "${DISK_IMG}" > "${DISK_IMG%???}" DISK_IMG=${DISK_IMG%???} fi if ${rkdeveloptool} ld 2>&1 | grep -iq maskrom; then msg "device in maskrom mode detected" msg "downloading flash bootloader" ${rkdeveloptool} db "${flash_boot_loader}" elif ${rkdeveloptool} ld 2>&1 | grep -iq loader; then msg "device in loader mode detected" else msg "make sure your device is connected and in maskrom or loader mode" exit 1 fi msg "writing OS image to flash" ${rkdeveloptool} wl 0 "${DISK_IMG}" msg "you can now reset your device!" ================================================ FILE: board/raspberrypi/cleanups.sh ================================================ #!/bin/bash TARGET=$1 test -n "${TARGET}" || exit 1 rm -rf ${TARGET}/opt/vc/src rm -rf ${TARGET}/opt/vc/include rm -rf ${TARGET}/usr/bin/dtoverlay-* ================================================ FILE: board/raspberrypi/cmdline.txt ================================================ dwc_otg.fiq_fix_enable=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro rootflags=noload panic=10 hung_task_panic=1 quiet loglevel=1 ================================================ FILE: board/raspberrypi/config.txt ================================================ kernel=zImage gpu_mem=32 dtparam=i2c_arm=on dtparam=i2s=on dtparam=spi=on dtparam=audio=on force_eeprom_read=0 disable_poe_fan=1 boot_delay=2 ================================================ FILE: board/raspberrypi/cpinitramfs.sh ================================================ #!/bin/bash cp ${BINARIES_DIR}/rootfs.cpio.gz ${BOARD_DIR}/initrd.gz ================================================ FILE: board/raspberrypi/overlay/etc/board ================================================ raspberrypi ================================================ FILE: board/raspberrypi/overlay/etc/init.d/S07dtoverlays ================================================ #!/bin/bash SYS_DTOVERLAYS_FILE="/etc/dtoverlays" BOOT_DTOVERLAYS_FILE="/boot/dtoverlays" DTOVERLAYS_FILE="/data/etc/dtoverlays" PROG="/usr/bin/dtoverlay" test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) msg_begin "Loading device-tree overlays" if [[ -r ${SYS_DTOVERLAYS_FILE} ]]; then cat ${SYS_DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi if [[ -r ${BOOT_DTOVERLAYS_FILE} ]]; then cat ${BOOT_DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi if [[ -r ${DTOVERLAYS_FILE} ]]; then cat ${DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi msg_done ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/raspberrypi/overlay/etc/init.d/S11throttlewatch ================================================ #!/bin/bash CHECK_INTERVAL=60 test -n "${OS_VERSION}" || source /etc/init.d/base get_throttled_now() { t=$(vcgencmd get_throttled | cut -d '=' -f 2) test $((t & 1)) -ne 0 && echo -n "under-voltage " test $((t & 2)) -ne 0 && echo -n "arm-frequency-capped " test $((t & 4)) -ne 0 && echo -n "throttled " } get_throttled_since_boot() { t=$(vcgencmd get_throttled | cut -d '=' -f 2) test $((t & 65536)) -ne 0 && echo -n "under-voltage " test $((t & 131072)) -ne 0 && echo -n "arm-frequency-capped " test $((t & 262144)) -ne 0 && echo -n "throttled " } get_temp() { t=$(/dev/null else /usr/bin/btattach -B /dev/serial1 -P bcm -S 921600 -N &>/dev/null fi else /usr/bin/btattach -B /dev/serial1 -P bcm -S 460800 -N &>/dev/null fi } function btuart_stop() { if ! [ -d "/proc/device-tree/soc/gpio@7e200000/uart0_pins" ]; then exit 0 # no rpi bluetooth detected fi killall btattach &>/dev/null } ================================================ FILE: board/raspberrypi/overlay/usr/libexec/fw-prepare-boot ================================================ #!/bin/bash echo >> /boot/config.txt echo "initramfs initrd.gz" >> /boot/config.txt ================================================ FILE: board/raspberrypi/overlay-initramfs/remove_initramfs ================================================ #!/bin/sh sed -i 's/^initramfs.*//g' /boot/config.txt sed -i '/^ *$/d' /boot/config.txt # Remove blank lines ================================================ FILE: board/raspberrypi/postscript.sh ================================================ #!/bin/bash mkdir -p ${BOOT_DIR}/overlays cp ${BOARD_DIR}/config.txt ${BOOT_DIR} cp ${BOARD_DIR}/cmdline.txt ${BOOT_DIR} cp ${BOARD_DIR}/initrd.gz ${BOOT_DIR} cp ${BINARIES_DIR}/zImage ${BOOT_DIR} cp ${BINARIES_DIR}/*.dtb ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/bootcode.bin ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/start*.elf ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/fixup*.dat ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/overlays/*.dtbo ${BOOT_DIR}/overlays ================================================ FILE: board/raspberrypi/update-firmware-kernel.sh ================================================ #!/bin/bash if [[ -z "$1" ]]; then echo "Updates rpi-firmware package to the indicated commit hash or version." echo "Then updates the Linux kernel version for all Raspberry PI boards accordingly." echo "Usage: $0 " exit 1 fi # Supported Raspberry Pi platforms BOARDS="raspberrypi raspberrypi2 raspberrypi3 raspberrypi4 raspberrypi64" version=$1 url=https://github.com/raspberrypi/firmware/archive/${version}.tar.gz base_dir=$(realpath $(dirname $0)/../..) dl_dir=${base_dir}/dl package_dir=${base_dir}/package/rpi-firmware archive_file=rpi-firmware-${version}.tar.gz echo "Downloading archive from ${url}" curl -L "${url}" -o "${dl_dir}/${archive_file}" checksum=$(sha256sum "${dl_dir}/${archive_file}" | cut -d ' ' -f 1) echo "Updating rpi-firmware package to ${version}" sed -i "s/RPI_FIRMWARE_VERSION = .*/RPI_FIRMWARE_VERSION = ${version}/" "${package_dir}/rpi-firmware.mk" sed -ri "s/sha256(\s+)[a-f0-9]+(\s+)rpi-firmware-.*/sha256\1${checksum}\2${archive_file}/" "${package_dir}/rpi-firmware.hash" tmp_dir=$(mktemp -d) echo "Extracting ${archive_file}" tar xf "${dl_dir}/${archive_file}" -C "${tmp_dir}" kernel_version=$(cat "${tmp_dir}/firmware-${version}/extra/git_hash") rm -rf "${tmp_dir}" conf=BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION base_url=https://github.com/raspberrypi/linux/archive/ ext=.tar.gz for board in ${BOARDS}; do echo "Updating Linux kernel version to ${kernel_version} for ${board}" sed -ri "s,${conf}=\"${base_url}[a-f0-9]+${ext}\",${conf}=\"${base_url}${kernel_version}${ext}\"," \ "${base_dir}/configs/${board}_defconfig" done echo "Committing changes" cd ${base_dir} git add package/rpi-firmware git commit -m "rpi-firmware: Update to ${version}" git add configs git commit -m "raspberrypi(all): Update kernel to ${kernel_version}" echo "Done!" ================================================ FILE: board/raspberrypi/update-userland.sh ================================================ #!/bin/bash if [[ -z "$1" ]]; then echo "Updates rpi-userland package version to the indicated commit hash or version." echo "Usage: $0 " exit 1 fi version=$1 url=https://github.com/raspberrypi/userland/archive/${version}.tar.gz base_dir=$(realpath $(dirname $0)/../..) dl_dir=${base_dir}/dl package_dir=${base_dir}/package/rpi-userland archive_file=rpi-userland-${version}.tar.gz echo "Downloading archive from ${url}" curl -L "${url}" -o "${dl_dir}/${archive_file}" checksum=$(sha256sum "${dl_dir}/${archive_file}" | cut -d ' ' -f 1) echo "Updating rpi-userland package to ${version}" sed -i "s/RPI_USERLAND_VERSION = .*/RPI_USERLAND_VERSION = ${version}/" "${package_dir}/rpi-userland.mk" sed -ri "s/sha256(\s+)[a-f0-9]+(\s+)rpi-userland-.*/sha256\1${checksum}\2${archive_file}/" "${package_dir}/rpi-userland.hash" echo "Committing changes" cd ${base_dir} git add package/rpi-userland git commit -m "rpi-userland: Update to ${version}" echo "Done!" ================================================ FILE: board/raspberrypi2/cmdline.txt ================================================ dwc_otg.fiq_fix_enable=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro rootflags=noload panic=10 hung_task_panic=1 quiet loglevel=1 ================================================ FILE: board/raspberrypi2/config.txt ================================================ kernel=zImage gpu_mem=32 dtparam=i2c_arm=on dtparam=i2s=on dtparam=spi=on dtparam=audio=on force_eeprom_read=0 disable_poe_fan=1 boot_delay=2 ================================================ FILE: board/raspberrypi2/overlay/etc/board ================================================ raspberrypi2 ================================================ FILE: board/raspberrypi2/overlay/etc/init.d/S07dtoverlays ================================================ #!/bin/bash SYS_DTOVERLAYS_FILE="/etc/dtoverlays" BOOT_DTOVERLAYS_FILE="/boot/dtoverlays" DTOVERLAYS_FILE="/data/etc/dtoverlays" PROG="/usr/bin/dtoverlay" test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) msg_begin "Loading device-tree overlays" if [[ -r ${SYS_DTOVERLAYS_FILE} ]]; then cat ${SYS_DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi if [[ -r ${BOOT_DTOVERLAYS_FILE} ]]; then cat ${BOOT_DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi if [[ -r ${DTOVERLAYS_FILE} ]]; then cat ${DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi msg_done ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/raspberrypi2/overlay/etc/init.d/S11throttlewatch ================================================ #!/bin/bash CHECK_INTERVAL=60 test -n "${OS_VERSION}" || source /etc/init.d/base get_throttled_now() { t=$(vcgencmd get_throttled | cut -d '=' -f 2) test $((t & 1)) -ne 0 && echo -n "under-voltage " test $((t & 2)) -ne 0 && echo -n "arm-frequency-capped " test $((t & 4)) -ne 0 && echo -n "throttled " } get_throttled_since_boot() { t=$(vcgencmd get_throttled | cut -d '=' -f 2) test $((t & 65536)) -ne 0 && echo -n "under-voltage " test $((t & 131072)) -ne 0 && echo -n "arm-frequency-capped " test $((t & 262144)) -ne 0 && echo -n "throttled " } get_temp() { t=$(> /boot/config.txt echo "initramfs initrd.gz" >> /boot/config.txt ================================================ FILE: board/raspberrypi2/postscript.sh ================================================ #!/bin/bash mkdir -p ${BOOT_DIR}/overlays cp ${BOARD_DIR}/config.txt ${BOOT_DIR} cp ${BOARD_DIR}/cmdline.txt ${BOOT_DIR} cp ${BOARD_DIR}/initrd.gz ${BOOT_DIR} cp ${BINARIES_DIR}/zImage ${BOOT_DIR} cp ${BINARIES_DIR}/*.dtb ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/bootcode.bin ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/start*.elf ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/fixup*.dat ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/overlays/*.dtbo ${BOOT_DIR}/overlays ================================================ FILE: board/raspberrypi3/cmdline.txt ================================================ dwc_otg.fiq_fix_enable=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro rootflags=noload panic=10 hung_task_panic=1 quiet loglevel=1 ================================================ FILE: board/raspberrypi3/config.txt ================================================ kernel=zImage gpu_mem=32 dtparam=i2c_arm=on dtparam=i2s=on dtparam=spi=on dtparam=audio=on force_eeprom_read=0 disable_poe_fan=1 boot_delay=2 ================================================ FILE: board/raspberrypi3/overlay/etc/board ================================================ raspberrypi3 ================================================ FILE: board/raspberrypi3/overlay/etc/init.d/S07dtoverlays ================================================ #!/bin/bash SYS_DTOVERLAYS_FILE="/etc/dtoverlays" BOOT_DTOVERLAYS_FILE="/boot/dtoverlays" DTOVERLAYS_FILE="/data/etc/dtoverlays" PROG="/usr/bin/dtoverlay" test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) msg_begin "Loading device-tree overlays" if [[ -r ${SYS_DTOVERLAYS_FILE} ]]; then cat ${SYS_DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi if [[ -r ${BOOT_DTOVERLAYS_FILE} ]]; then cat ${BOOT_DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi if [[ -r ${DTOVERLAYS_FILE} ]]; then cat ${DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi msg_done ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/raspberrypi3/overlay/etc/init.d/S11throttlewatch ================================================ #!/bin/bash CHECK_INTERVAL=60 test -n "${OS_VERSION}" || source /etc/init.d/base get_throttled_now() { t=$(vcgencmd get_throttled | cut -d '=' -f 2) test $((t & 1)) -ne 0 && echo -n "under-voltage " test $((t & 2)) -ne 0 && echo -n "arm-frequency-capped " test $((t & 4)) -ne 0 && echo -n "throttled " } get_throttled_since_boot() { t=$(vcgencmd get_throttled | cut -d '=' -f 2) test $((t & 65536)) -ne 0 && echo -n "under-voltage " test $((t & 131072)) -ne 0 && echo -n "arm-frequency-capped " test $((t & 262144)) -ne 0 && echo -n "throttled " } get_temp() { t=$(/dev/null else /usr/bin/btattach -B /dev/serial1 -P bcm -S 921600 -N &>/dev/null fi else /usr/bin/btattach -B /dev/serial1 -P bcm -S 460800 -N &>/dev/null fi } function btuart_stop() { if ! [ -d "/proc/device-tree/soc/gpio@7e200000/uart0_pins" ]; then exit 0 # no rpi bluetooth detected fi killall btattach &>/dev/null } ================================================ FILE: board/raspberrypi3/overlay/usr/libexec/fw-prepare-boot ================================================ #!/bin/bash echo >> /boot/config.txt echo "initramfs initrd.gz" >> /boot/config.txt ================================================ FILE: board/raspberrypi3/postscript.sh ================================================ #!/bin/bash mkdir -p ${BOOT_DIR}/overlays cp ${BOARD_DIR}/config.txt ${BOOT_DIR} cp ${BOARD_DIR}/cmdline.txt ${BOOT_DIR} cp ${BOARD_DIR}/initrd.gz ${BOOT_DIR} cp ${BINARIES_DIR}/zImage ${BOOT_DIR} cp ${BINARIES_DIR}/*.dtb ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/bootcode.bin ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/start*.elf ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/fixup*.dat ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/overlays/*.dtbo ${BOOT_DIR}/overlays ================================================ FILE: board/raspberrypi4/cmdline.txt ================================================ dwc_otg.fiq_fix_enable=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro rootflags=noload panic=10 hung_task_panic=1 quiet loglevel=1 ================================================ FILE: board/raspberrypi4/config.txt ================================================ kernel=zImage gpu_mem=32 dtparam=i2c_arm=on dtparam=i2s=on dtparam=spi=on dtparam=audio=on force_eeprom_read=0 disable_poe_fan=1 boot_delay=2 ================================================ FILE: board/raspberrypi4/overlay/etc/board ================================================ raspberrypi4 ================================================ FILE: board/raspberrypi4/overlay/etc/init.d/S07dtoverlays ================================================ #!/bin/bash SYS_DTOVERLAYS_FILE="/etc/dtoverlays" BOOT_DTOVERLAYS_FILE="/boot/dtoverlays" DTOVERLAYS_FILE="/data/etc/dtoverlays" PROG="/usr/bin/dtoverlay" test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) msg_begin "Loading device-tree overlays" if [[ -r ${SYS_DTOVERLAYS_FILE} ]]; then cat ${SYS_DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi if [[ -r ${BOOT_DTOVERLAYS_FILE} ]]; then cat ${BOOT_DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi if [[ -r ${DTOVERLAYS_FILE} ]]; then cat ${DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi msg_done ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/raspberrypi4/overlay/etc/init.d/S11throttlewatch ================================================ #!/bin/bash CHECK_INTERVAL=60 test -n "${OS_VERSION}" || source /etc/init.d/base get_throttled_now() { t=$(vcgencmd get_throttled | cut -d '=' -f 2) test $((t & 1)) -ne 0 && echo -n "under-voltage " test $((t & 2)) -ne 0 && echo -n "arm-frequency-capped " test $((t & 4)) -ne 0 && echo -n "throttled " } get_throttled_since_boot() { t=$(vcgencmd get_throttled | cut -d '=' -f 2) test $((t & 65536)) -ne 0 && echo -n "under-voltage " test $((t & 131072)) -ne 0 && echo -n "arm-frequency-capped " test $((t & 262144)) -ne 0 && echo -n "throttled " } get_temp() { t=$(/dev/null else /usr/bin/btattach -B /dev/serial1 -P bcm -S 921600 -N &>/dev/null fi else /usr/bin/btattach -B /dev/serial1 -P bcm -S 460800 -N &>/dev/null fi } function btuart_stop() { if ! [ -d "/proc/device-tree/soc/gpio@7e200000/uart0_pins" ]; then exit 0 # no rpi bluetooth detected fi killall btattach &>/dev/null } ================================================ FILE: board/raspberrypi4/overlay/usr/libexec/fw-prepare-boot ================================================ #!/bin/bash echo >> /boot/config.txt echo "initramfs initrd.gz" >> /boot/config.txt ================================================ FILE: board/raspberrypi4/postscript.sh ================================================ #!/bin/bash mkdir -p ${BOOT_DIR}/overlays cp ${BOARD_DIR}/config.txt ${BOOT_DIR} cp ${BOARD_DIR}/cmdline.txt ${BOOT_DIR} cp ${BOARD_DIR}/initrd.gz ${BOOT_DIR} cp ${BINARIES_DIR}/zImage ${BOOT_DIR} cp ${BINARIES_DIR}/*.dtb ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/start*.elf ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/fixup*.dat ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/overlays/*.dtbo ${BOOT_DIR}/overlays ================================================ FILE: board/raspberrypi64/cmdline.txt ================================================ dwc_otg.fiq_fix_enable=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro rootflags=noload panic=10 hung_task_panic=1 quiet loglevel=1 ================================================ FILE: board/raspberrypi64/config.txt ================================================ kernel=Image.gz gpu_mem=32 dtparam=i2c_arm=on dtparam=i2s=on dtparam=spi=on dtparam=audio=on force_eeprom_read=0 disable_poe_fan=1 boot_delay=2 arm_64bit=1 ================================================ FILE: board/raspberrypi64/overlay/etc/board ================================================ raspberrypi64 ================================================ FILE: board/raspberrypi64/overlay/etc/init.d/S07dtoverlays ================================================ #!/bin/bash SYS_DTOVERLAYS_FILE="/etc/dtoverlays" BOOT_DTOVERLAYS_FILE="/boot/dtoverlays" DTOVERLAYS_FILE="/data/etc/dtoverlays" PROG="/usr/bin/dtoverlay" test -n "${OS_VERSION}" || source /etc/init.d/base case "$1" in start) msg_begin "Loading device-tree overlays" if [[ -r ${SYS_DTOVERLAYS_FILE} ]]; then cat ${SYS_DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi if [[ -r ${BOOT_DTOVERLAYS_FILE} ]]; then cat ${BOOT_DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi if [[ -r ${DTOVERLAYS_FILE} ]]; then cat ${DTOVERLAYS_FILE} | while read line; do test -n "${line}" && ${PROG} ${line}; done fi msg_done ;; stop) true ;; *) echo "Usage: $0 {start}" exit 1 esac exit $? ================================================ FILE: board/raspberrypi64/overlay/etc/init.d/S11throttlewatch ================================================ #!/bin/bash CHECK_INTERVAL=60 test -n "${OS_VERSION}" || source /etc/init.d/base get_throttled_now() { t=$(vcgencmd get_throttled | cut -d '=' -f 2) test $((t & 1)) -ne 0 && echo -n "under-voltage " test $((t & 2)) -ne 0 && echo -n "arm-frequency-capped " test $((t & 4)) -ne 0 && echo -n "throttled " } get_throttled_since_boot() { t=$(vcgencmd get_throttled | cut -d '=' -f 2) test $((t & 65536)) -ne 0 && echo -n "under-voltage " test $((t & 131072)) -ne 0 && echo -n "arm-frequency-capped " test $((t & 262144)) -ne 0 && echo -n "throttled " } get_temp() { t=$(/dev/null else /usr/bin/btattach -B /dev/serial1 -P bcm -S 921600 -N &>/dev/null fi else /usr/bin/btattach -B /dev/serial1 -P bcm -S 460800 -N &>/dev/null fi } function btuart_stop() { if ! [ -d "/proc/device-tree/soc/gpio@7e200000/uart0_pins" ]; then exit 0 # no rpi bluetooth detected fi killall btattach &>/dev/null } ================================================ FILE: board/raspberrypi64/overlay/usr/libexec/fw-prepare-boot ================================================ #!/bin/bash echo >> /boot/config.txt echo "initramfs initrd.gz" >> /boot/config.txt ================================================ FILE: board/raspberrypi64/postscript.sh ================================================ #!/bin/bash mkdir -p ${BOOT_DIR}/overlays cp ${BOARD_DIR}/config.txt ${BOOT_DIR} cp ${BOARD_DIR}/cmdline.txt ${BOOT_DIR} cp ${BOARD_DIR}/initrd.gz ${BOOT_DIR} cp ${BINARIES_DIR}/Image.gz ${BOOT_DIR} cp ${BINARIES_DIR}/*.dtb ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/bootcode.bin ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/start*.elf ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/fixup*.dat ${BOOT_DIR} cp ${BINARIES_DIR}/rpi-firmware/overlays/*.dtbo ${BOOT_DIR}/overlays ================================================ FILE: board/rockpi4b/board.conf ================================================ BOOT_BIN=( "${BINARIES_DIR}/idbloader.img@64" "${BINARIES_DIR}/uboot.img@16384" "${BINARIES_DIR}/trust.img@24576" ) BOOT_START=20 PART_TABLE_TYPE=mbr ================================================ FILE: board/rockpi4b/boot.cmd ================================================ setenv load_addr "0x59000000" setenv rootfstype "ext4" echo "Boot script loaded from ${devtype} ${devnum}" if test ${devnum} = 0; then setenv rootdev "/dev/mmcblk1p2" echo "Booting from eMMC" else setenv rootdev "/dev/mmcblk0p2" echo "Booting from SD card" fi if test -e ${devtype} ${devnum} ${prefix}uEnv.txt; then load ${devtype} ${devnum} ${load_addr} ${prefix}uEnv.txt env import -t ${load_addr} ${filesize} fi setenv bootargs "root=${rootdev} rootfstype=${rootfstype} ${cmdline}" echo "Boot args: ${bootargs}" sysboot ${devtype} ${devnum} fat ${pxefile_addr_r} ${prefix}extlinux.conf ================================================ FILE: board/rockpi4b/cpinitramfs.sh ================================================ cp ${BINARIES_DIR}/rootfs.cpio.gz ${BOARD_DIR}/initrd.gz ================================================ FILE: board/rockpi4b/extlinux.conf ================================================ timeout 10 menu title select kernel label linux kernel /Image devicetree /rk3399-rock-pi-4b.dtb append ${bootargs} ================================================ FILE: board/rockpi4b/hw_intfc.conf ================================================ #intfc:pwm0=off #intfc:pwm1=off #intfc:uart2=off #intfc:uart4=off #intfc:spi1=on #intfc:spi2=on #intfc:i2c2=off #intfc:i2c6=off #intfc:i2c7=off #intfc:dtoverlay=at24c02 #intfc:dtoverlay=two-color-led intfc:dtoverlay=console-on-ttyS2 #intfc:dtoverlay=console-on-ttyS4 #intfc:dtoverlay=spi1-flash #intfc:dtoverlay=devspi1 #intfc:dtoverlay=devspi2 ================================================ FILE: board/rockpi4b/linux.fragment ================================================ CONFIG_USB_CONFIGFS=y CONFIG_USB_CONFIGFS_SERIA=y CONFIG_USB_CONFIGFS_ACM=y CONFIG_USB_CONFIGFS_OBEX=y CONFIG_USB_CONFIGFS_NCM=y CONFIG_USB_CONFIGFS_ECM=y CONFIG_USB_CONFIGFS_ECM_SUBSET=y CONFIG_USB_CONFIGFS_RNDIS=y CONFIG_USB_CONFIGFS_EEM=y CONFIG_USB_CONFIGFS_MASS_STORAGE=y CONFIG_USB_CONFIGFS_F_LB_SS=y CONFIG_USB_CONFIGFS_F_FS=y CONFIG_USB_CONFIGFS_F_MTP=y CONFIG_USB_CONFIGFS_F_ACC=y CONFIG_USB_CONFIGFS_UEVENT=y CONFIG_USB_CONFIGFS_F_UAC1=y CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y CONFIG_USB_CONFIGFS_F_UAC2=y CONFIG_USB_CONFIGFS_F_MIDI=y CONFIG_USB_CONFIGFS_F_HID=y CONFIG_USB_CONFIGFS_F_UVC=y CONFIG_USB_CONFIGFS_F_PRINTER=y CONFIG_CONFIGFS_FS=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y ================================================ FILE: board/rockpi4b/overlay/etc/board ================================================ rockpi4b ================================================ FILE: board/rockpi4b/overlay/lib/firmware/nvram_azw372.txt ================================================ # NVRAM file for BCM943430WLSELG # 2.4 GHz, 20 MHz BW mode # Modify by AZ_Joe for DS power table V1.1 1801105 # The following parameter values are just placeholders, need to be updated. manfid=0x2d0 prodid=0x0726 vendid=0x14e4 devid=0x43e2 boardtype=0x0726 boardrev=0x1101 boardnum=22 macaddr=00:11:22:33:44:55 sromrev=11 boardflags=0x00404201 xtalfreq=26000 nocrc=1 ag0=255 aa2g=1 ccode=ALL pa0itssit=0x20 extpagain2g=0 #PA parameters for 2.4GHz, measured at CHIP OUTPUT pa2ga0=0xff65,0x1a68,0xfd03 AvVmid_c0=0x0,0xc8 cckpwroffset0=5 # PPR params maxp2ga0=78 txpwrbckof=6 cckbw202gpo=0 legofdmbw202gpo=0x44444444 mcsbw202gpo=0x66666666 # OFDM IIR : ofdmdigfilttype=18 ofdmdigfilttypebe=18 # PAPD mode: papdmode=1 papdvalidtest=1 # LTECX flags #ltecxmux=1 #ltecxpadnum=0x02030401 #ltecxfnsel=0x3003 #ltecxgcigpio=0x3012 il0macaddr=00:90:4c:c5:12:38 wl0id=0x431b deadman_to=0xffffffff # muxenab: 0x1 for UART enable, 0x10 for Host awake muxenab=0x10 # CLDO PWM voltage settings - 0x4 - 1.1 volt #cldo_pwm=0x4 ================================================ FILE: board/rockpi4b/overlay/usr/libexec/btuart ================================================ #!/bin/bash BRCM_PATCHRAM="/usr/libexec/brcm_patchram_plus1" UART_DEV="/dev/ttyS0" FIRMWARE_FILE="/lib/firmware/BCM4343B0.hcd" function btuart_start() { # Reset Bluetooth via GPIO echo "Blocking BT rfkill" rfkill block bluetooth sleep 1 echo "Unblocking BT rfkill" rfkill unblock bluetooth sleep 1 { # Reset Bluetooth via GPIO again sleep 1 echo "Blocking BT rfkill" rfkill block bluetooth sleep 1 echo "Unblocking BT rfkill" rfkill unblock bluetooth sleep 1 } & ${BRCM_PATCHRAM} --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram ${FIRMWARE_FILE} ${UART_DEV} } function btuart_stop() { killall $(basename ${BRCM_PATCHRAM}) &>/dev/null } ================================================ FILE: board/rockpi4b/overlay/usr/libexec/fw-prepare-boot ================================================ #!/bin/bash echo " initrd /initrd.gz" >> /boot/extlinux.conf ================================================ FILE: board/rockpi4b/overlay-initramfs/remove_initramfs ================================================ #!/bin/sh cat /boot/extlinux.conf | grep -v initrd > /boot/extlinux.conf.new mv /boot/extlinux.conf.new /boot/extlinux.conf ================================================ FILE: board/rockpi4b/postscript.sh ================================================ #!/bin/bash RKBIN_DIR=${BINARIES_DIR}/rkbin # First stage boot loader mkimage="${BUILD_DIR}/uboot-custom/tools/mkimage" ${mkimage} -n rk3399 -T rksd -d ${RKBIN_DIR}/bin/rk33/rk3399_ddr_800MHz_v1.27.bin ${BINARIES_DIR}/idbloader.img cat ${RKBIN_DIR}/bin/rk33/rk3399_miniloader_v1.26.bin >> ${BINARIES_DIR}/idbloader.img # U-boot ${RKBIN_DIR}/tools/loaderimage --pack --uboot ${BINARIES_DIR}/u-boot-dtb.bin ${BINARIES_DIR}/uboot.img 0x200000 --size 1024 1 # Trust image cat >${BINARIES_DIR}/RK3399TRUST.ini < $(pre-tmp); \ + (cat $<; $(if $(u_boot_dtsi),echo '#include "$(u_boot_dtsi)"')) > $(pre-tmp); \ $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $(pre-tmp) ; \ $(DTC) -O dtb -o $@ -b 0 \ -i $(dir $<) $(DTC_FLAGS) \ ================================================ FILE: board/rockpi4b/writeimage.sh ================================================ #!/bin/bash -e function usage() { cat < - indicates the path to the image file (e.g. -i /home/user/Download/file.img.xz) END_USAGE exit 1 } function msg() { echo " * $1" } if [[ -z "$1" ]]; then usage 1>&2 fi if [[ $(id -u) -ne 0 ]]; then msg "please run as root" exit 1 fi BOARD_DIR=$(dirname $0) rkbin=${BOARD_DIR}/../../output/$(basename ${BOARD_DIR})/images/rkbin rkdeveloptool=${rkbin}/tools/rkdeveloptool flash_boot_loader=${BOARD_DIR}/flash-boot-loader.bin while getopts "a:d:f:h:i:lm:n:o:p:s:w" o; do case "${o}" in i) DISK_IMG=${OPTARG} ;; *) usage 1>&2 ;; esac done if [[ -z "${DISK_IMG}" ]]; then usage 1>&2 fi if ! [[ -f "${DISK_IMG}" ]]; then echo "could not find image file $DISK_IMG" exit 1 fi gunzip=$(which unpigz 2> /dev/null || which gunzip 2> /dev/null || true) unxz=$(which unxz 2> /dev/null || true) if [[ ${DISK_IMG} == *.gz ]]; then if [[ -z "$gunzip" ]]; then msg "make sure you have the gzip package installed" exit 1 fi msg "decompressing the .gz compressed image" ${gunzip} -c "${DISK_IMG}" > "${DISK_IMG%???}" DISK_IMG=${DISK_IMG%???} elif [[ ${DISK_IMG} == *.xz ]]; then if [[ -z "${unxz}" ]]; then msg "make sure you have the xz package installed" exit 1 fi msg "decompressing the .xz compressed image" ${unxz} -T 0 -c "${DISK_IMG}" > "${DISK_IMG%???}" DISK_IMG=${DISK_IMG%???} fi if ${rkdeveloptool} ld 2>&1 | grep -iq maskrom; then msg "device in maskrom mode detected" msg "downloading flash bootloader" ${rkdeveloptool} db "${flash_boot_loader}" elif ${rkdeveloptool} ld 2>&1 | grep -iq loader; then msg "device in loader mode detected" else msg "make sure your device is connected and in maskrom or loader mode" exit 1 fi msg "writing OS image to flash" ${rkdeveloptool} wl 0 "${DISK_IMG}" msg "you can now reset your device!" ================================================ FILE: boot/Config.in ================================================ menu "Bootloaders" source "boot/afboot-stm32/Config.in" source "boot/at91bootstrap/Config.in" source "boot/at91bootstrap3/Config.in" source "boot/at91dataflashboot/Config.in" source "boot/arm-trusted-firmware/Config.in" source "boot/barebox/Config.in" source "boot/beaglev-ddrinit/Config.in" source "boot/beaglev-secondboot/Config.in" source "boot/binaries-marvell/Config.in" source "boot/boot-wrapper-aarch64/Config.in" source "boot/edk2/Config.in" source "boot/grub2/Config.in" source "boot/gummiboot/Config.in" source "boot/lpc32xxcdl/Config.in" source "boot/mv-ddr-marvell/Config.in" source "boot/mxs-bootlets/Config.in" source "boot/optee-os/Config.in" source "boot/opensbi/Config.in" source "boot/s500-bootloader/Config.in" source "boot/shim/Config.in" source "boot/sun20i-d1-spl/Config.in" source "boot/syslinux/Config.in" source "boot/uboot/Config.in" source "boot/vexpress-firmware/Config.in" endmenu ================================================ FILE: boot/afboot-stm32/0001-Pass-fno-builtin-to-fix-build-with-gcc-10.patch ================================================ From 5448f328ff63a6ca4a64519c2f1dfc63a33df4b7 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 10 Sep 2020 11:37:33 +0200 Subject: [PATCH] Pass -fno-builtin to fix build with gcc 10 gcc 10, if it recognizes some hand-written code that looks like memcpy, will generate a call to memcpy(). For example: while (dst < &_end_data) { *dst++ = *src++; } gets recognized as such. However, in the context of bare-metal code, having a call to memcpy() in the C library doesn't work. So we fix that by disabling builtins. Fixes: /home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: stm32f429i-disco.o: in function `reset': stm32f429i-disco.c:(.text.reset+0x1a): undefined reference to `memcpy' /home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: stm32f429i-disco.c:(.text.reset+0x34): undefined reference to `memset' make[1]: *** [Makefile:26: stm32f429i-disco] Error 1 Upstream: https://github.com/mcoquelin-stm32/afboot-stm32/pull/9 Signed-off-by: Thomas Petazzoni --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index f699176..1e8557d 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,7 @@ DTB_ADDR?=0x08004000 CFLAGS := -mthumb -mcpu=cortex-m4 CFLAGS += -ffunction-sections -fdata-sections CFLAGS += -Os -std=gnu99 -Wall +CFLAGS += -fno-builtin LINKERFLAGS := -nostartfiles --gc-sections obj-y += gpio.o mpu.o qspi.o start_kernel.o -- 2.26.2 ================================================ FILE: boot/afboot-stm32/Config.in ================================================ 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 ================================================ FILE: boot/afboot-stm32/afboot-stm32.hash ================================================ # Locally calculated sha256 9b37b661bd3091ceb5d8dc5a56a2dfc02ae9ebc0c63dad3c4289c9d6b3d3ec89 afboot-stm32-0.2.tar.gz ================================================ FILE: boot/afboot-stm32/afboot-stm32.mk ================================================ ################################################################################ # # afboot-stm32 # ################################################################################ AFBOOT_STM32_VERSION = 0.2 AFBOOT_STM32_SITE = $(call github,mcoquelin-stm32,afboot-stm32,v$(AFBOOT_STM32_VERSION)) AFBOOT_STM32_INSTALL_IMAGES = YES AFBOOT_STM32_INSTALL_TARGET = NO define AFBOOT_STM32_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CROSS_COMPILE=$(TARGET_CROSS) all endef define AFBOOT_STM32_INSTALL_IMAGES_CMDS $(INSTALL) -m 0755 -t $(BINARIES_DIR) -D $(@D)/stm32*.bin endef $(eval $(generic-package)) ================================================ FILE: boot/arm-trusted-firmware/Config.in ================================================ config BR2_TARGET_ARM_TRUSTED_FIRMWARE bool "ARM Trusted Firmware (ATF)" depends on (BR2_ARM_CPU_ARMV8A || BR2_ARM_CPU_ARMV7A) && \ (BR2_TARGET_UBOOT || BR2_TARGET_EDK2) help Enable this option if you want to build the ATF for your ARM based embedded device. https://github.com/ARM-software/arm-trusted-firmware if BR2_TARGET_ARM_TRUSTED_FIRMWARE choice prompt "ATF Version" help Select the specific ATF version you want to use config BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION bool "v2.5" config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION bool "Custom version" help This option allows to use a specific official versions config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL bool "Custom tarball" config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT bool "Custom Git repository" endchoice if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION string "URL of custom ATF tarball" endif config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE string "ATF version" depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION config BR2_TARGET_ARM_TRUSTED_FIRMWARE_VERSION string default "v2.5" if BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION default "custom" if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL default BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION \ if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT default BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE \ if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL string "URL of custom repository" config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION string "Custom repository version" help Revision to use in the typical format used by Git E.G. a sha id, a tag, .. endif config BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM string "ATF platform" help Target plaform to build for. config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH string "Device Tree Source file paths" help Space-separated list of paths to device tree source files that will be copied to fdts/ before starting the build. To use this device tree source file, the ATF configuration file must refer to it. config BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP bool "Build FIP image" help This option enables building the FIP image (Firmware Image Package). This is typically the image format used by platforms were ATF encapsulates the second stage bootloader (such as U-Boot). config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31 bool "Build BL31 image" help This option enables building the BL31 image. This is typically used on platforms where another bootloader (e.g U-Boot) encapsulates ATF BL31. config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT bool "Build BL31 U-Boot image" select BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31 help Generates a U-Boot image named atf-uboot.ub containing bl31.bin. This is used for example by the Xilinx version of U-Boot SPL to load ATF on the ZynqMP SoC. choice prompt "BL32" default BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_DEFAULT help Select BL32 stage for the trusted firmware config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_DEFAULT bool "Default" help With this option selected, ATF will not use any BL32 stage, unless if one is explicitly chosen using the SPD (for AArch64) or AARCH32_SP (for AArch32) variables, which can be passed through BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES. config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE bool "OP-TEE OS" depends on BR2_TARGET_OPTEE_OS help This option allows to embed OP-TEE OS as the BL32 part of the ARM Trusted Firmware boot sequence. endchoice config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 bool "Use U-Boot as BL33" depends on BR2_TARGET_UBOOT help This option allows to embed u-boot.bin as the BL33 part of the ARM Trusted Firmware. It ensures that the u-boot package gets built before ATF, and that the appropriate BL33 variable pointing to u-boot.bin is passed when building ATF. if BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_BL33_IMAGE string "U-Boot BL33 image name" default "u-boot.bin" help Name of the U-Boot BL33 image to include in ATF, it must have been installed to BINARIES_DIR by the U-Boot package. endif config BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 bool "Use EDK2 as BL33" depends on BR2_TARGET_EDK2 help This option allows to embed EDK2 as the BL33 part of the ARM Trusted Firmware. It ensures that the EDK2 package gets built before ATF, and that the appropriate BL33 variable pointing to the EDK2 is passed when building ATF. Do not choose this option if you intend to build ATF and EDK2 for the 'qemu_sbsa' platform. In this case, due to the EDK2 build system, the dependency between ATF and EDK is reversed. config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS string "Additional ATF make targets" help Additional targets for the ATF build E.G. When using the QorIQ custom ATF repository from NXP, the target 'pbl' can be used to build the pbl binary. config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES string "Additional ATF build variables" help Additional parameters for the ATF build E.G. 'DEBUG=1 LOG_LEVEL=20' config BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG bool "Build in debug mode" help Enable this option to build ATF with DEBUG=1. config BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES string "Binary boot images" default "*.bin" help Names of generated image files that are installed in the output images/ directory. config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC bool "Needs dtc" select BR2_PACKAGE_HOST_DTC help Select this option if your ATF board configuration requires the Device Tree compiler to be available. config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN bool "Needs arm-none-eabi toolchain" depends on BR2_aarch64 depends on BR2_HOSTARCH = "x86_64" help Select this option if your ATF board configuration requires an ARM32 bare metal toolchain to be available. config BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP bool "Build with SSP" default y depends on BR2_TOOLCHAIN_HAS_SSP depends on !BR2_SSP_NONE help Say 'y' here if you want to build ATF with SSP. Your board must have SSP support in ATF: it must have an implementation for plat_get_stack_protector_canary(). If you say 'y', the SSP level will be the level selected by the global SSP setting. config BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP_LEVEL string # While newer versions of TF-A support "none" as # ENABLE_STACK_PROTECTOR value, older versions (e.g 2.0) only # supported "0" to disable SSP. default "0" if !BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP default "default" if BR2_SSP_REGULAR default "strong" if BR2_SSP_STRONG default "all" if BR2_SSP_ALL endif ================================================ FILE: boot/arm-trusted-firmware/arm-trusted-firmware.hash ================================================ # Locally calculated sha256 d12a824afcc5cb90d005f9820f3274f1319cef1bb282e40a6a190b75900206d3 arm-trusted-firmware-v2.5.tar.gz sha256 0171b0795501ee90634fbc4a7835e2fb215d9423daf1cf5b0d0682adde12c597 docs/license.rst ================================================ FILE: boot/arm-trusted-firmware/arm-trusted-firmware.mk ================================================ ################################################################################ # # arm-trusted-firmware # ################################################################################ ARM_TRUSTED_FIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_VERSION)) ifeq ($(ARM_TRUSTED_FIRMWARE_VERSION),custom) # Handle custom ATF tarballs as specified by the configuration ARM_TRUSTED_FIRMWARE_TARBALL = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION)) ARM_TRUSTED_FIRMWARE_SITE = $(patsubst %/,%,$(dir $(ARM_TRUSTED_FIRMWARE_TARBALL))) ARM_TRUSTED_FIRMWARE_SOURCE = $(notdir $(ARM_TRUSTED_FIRMWARE_TARBALL)) else ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT),y) ARM_TRUSTED_FIRMWARE_SITE = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL)) ARM_TRUSTED_FIRMWARE_SITE_METHOD = git else # Handle stable official ATF versions ARM_TRUSTED_FIRMWARE_SITE = $(call github,ARM-software,arm-trusted-firmware,$(ARM_TRUSTED_FIRMWARE_VERSION)) # The licensing of custom or from-git versions is unknown. # This is valid only for the latest (i.e. known) version. ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION),y) ARM_TRUSTED_FIRMWARE_LICENSE = BSD-3-Clause ARM_TRUSTED_FIRMWARE_LICENSE_FILES = docs/license.rst endif endif ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE)$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION),y) BR_NO_CHECK_HASH_FOR += $(ARM_TRUSTED_FIRMWARE_SOURCE) endif ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES = YES ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC),y) ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-dtc endif ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN),y) ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-arm-gnu-a-toolchain endif ARM_TRUSTED_FIRMWARE_PLATFORM = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM)) ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG),y) ARM_TRUSTED_FIRMWARE_MAKE_OPTS += DEBUG=1 ARM_TRUSTED_FIRMWARE_IMG_DIR = $(@D)/build/$(ARM_TRUSTED_FIRMWARE_PLATFORM)/debug else ARM_TRUSTED_FIRMWARE_IMG_DIR = $(@D)/build/$(ARM_TRUSTED_FIRMWARE_PLATFORM)/release endif ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \ CROSS_COMPILE="$(TARGET_CROSS)" \ $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES)) \ PLAT=$(ARM_TRUSTED_FIRMWARE_PLATFORM) ARM_TRUSTED_FIRMWARE_MAKE_ENV += \ $(TARGET_MAKE_ENV) \ ENABLE_STACK_PROTECTOR=$(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP_LEVEL)) ifeq ($(BR2_ARM_CPU_ARMV7A),y) ARM_TRUSTED_FIRMWARE_MAKE_OPTS += ARM_ARCH_MAJOR=7 else ifeq ($(BR2_ARM_CPU_ARMV8A),y) ARM_TRUSTED_FIRMWARE_MAKE_OPTS += ARM_ARCH_MAJOR=8 endif ifeq ($(BR2_arm),y) ARM_TRUSTED_FIRMWARE_MAKE_OPTS += ARCH=aarch32 else ifeq ($(BR2_aarch64),y) ARM_TRUSTED_FIRMWARE_MAKE_OPTS += ARCH=aarch64 endif ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE),y) ARM_TRUSTED_FIRMWARE_DEPENDENCIES += optee-os ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \ BL32=$(BINARIES_DIR)/tee-header_v2.bin \ BL32_EXTRA1=$(BINARIES_DIR)/tee-pager_v2.bin \ BL32_EXTRA2=$(BINARIES_DIR)/tee-pageable_v2.bin ifeq ($(BR2_aarch64),y) ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SPD=opteed endif ifeq ($(BR2_arm),y) ARM_TRUSTED_FIRMWARE_MAKE_OPTS += AARCH32_SP=optee endif endif # BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33),y) ARM_TRUSTED_FIRMWARE_DEPENDENCIES += edk2 # Since the flash device name vary between platforms, we use the variable # provided by the EDK2 package for this. Using this variable here is OK # as it will expand after all dependencies are resolved, inside _BUILD_CMDS. ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \ BL33=$(BINARIES_DIR)/$(call qstrip,$(BR2_TARGET_EDK2_FD_NAME).fd) endif ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33),y) ARM_TRUSTED_FIRMWARE_UBOOT_BIN = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_BL33_IMAGE)) ARM_TRUSTED_FIRMWARE_MAKE_OPTS += BL33=$(BINARIES_DIR)/$(ARM_TRUSTED_FIRMWARE_UBOOT_BIN) ARM_TRUSTED_FIRMWARE_DEPENDENCIES += uboot endif ifeq ($(BR2_TARGET_VEXPRESS_FIRMWARE),y) ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SCP_BL2=$(BINARIES_DIR)/scp-fw.bin ARM_TRUSTED_FIRMWARE_DEPENDENCIES += vexpress-firmware endif ifeq ($(BR2_TARGET_BINARIES_MARVELL),y) ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SCP_BL2=$(BINARIES_DIR)/scp-fw.bin ARM_TRUSTED_FIRMWARE_DEPENDENCIES += binaries-marvell endif ifeq ($(BR2_TARGET_MV_DDR_MARVELL),y) ARM_TRUSTED_FIRMWARE_MAKE_OPTS += MV_DDR_PATH=$(MV_DDR_MARVELL_DIR) ARM_TRUSTED_FIRMWARE_DEPENDENCIES += mv-ddr-marvell endif ARM_TRUSTED_FIRMWARE_MAKE_TARGETS = all ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP),y) ARM_TRUSTED_FIRMWARE_MAKE_TARGETS += fip ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-openssl # fiptool only exists in newer (>= 1.3) versions of ATF, so we build # it conditionally. We need to explicitly build it as it requires # OpenSSL, and therefore needs to be passed proper variables to find # the host OpenSSL. define ARM_TRUSTED_FIRMWARE_BUILD_FIPTOOL if test -d $(@D)/tools/fiptool; then \ $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/tools/fiptool \ $(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \ CPPFLAGS="$(HOST_CPPFLAGS)" \ LDLIBS="$(HOST_LDFLAGS) -lcrypto" ; \ fi endef endif ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31),y) ARM_TRUSTED_FIRMWARE_MAKE_TARGETS += bl31 endif ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT),y) define ARM_TRUSTED_FIRMWARE_BL31_UBOOT_BUILD # Get the entry point address from the elf. BASE_ADDR=$$($(TARGET_READELF) -h $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/bl31/bl31.elf | \ sed -r '/^ Entry point address:\s*(.*)/!d; s//\1/') && \ $(MKIMAGE) \ -A $(MKIMAGE_ARCH) -O arm-trusted-firmware -C none \ -a $${BASE_ADDR} -e $${BASE_ADDR} \ -d $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/bl31.bin \ $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/atf-uboot.ub endef define ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL $(INSTALL) -m 0644 $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/atf-uboot.ub \ $(BINARIES_DIR)/atf-uboot.ub endef ARM_TRUSTED_FIRMWARE_MAKE_OPTS += RESET_TO_BL31=1 ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-uboot-tools endif ifeq ($(BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF),y) define ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL_ELF $(INSTALL) -D -m 0644 $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/bl31/bl31.elf \ $(BINARIES_DIR)/bl31.elf endef endif ARM_TRUSTED_FIRMWARE_MAKE_TARGETS += \ $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS)) ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH)) define ARM_TRUSTED_FIRMWARE_BUILD_CMDS $(if $(ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH), cp -f $(ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH) $(@D)/fdts/ ) $(ARM_TRUSTED_FIRMWARE_BUILD_FIPTOOL) $(ARM_TRUSTED_FIRMWARE_MAKE_ENV) $(MAKE) -C $(@D) \ $(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \ $(ARM_TRUSTED_FIRMWARE_MAKE_TARGETS) $(ARM_TRUSTED_FIRMWARE_BL31_UBOOT_BUILD) endef define ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES_CMDS $(foreach f,$(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES)), \ cp -dpf $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/$(f) $(BINARIES_DIR)/ ) $(ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL) $(ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL_ELF) endef # Configuration check ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE)$(BR_BUILDING),yy) ifeq ($(ARM_TRUSTED_FIRMWARE_VERSION),custom) ifeq ($(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION))),) $(error No tarball location specified. Please check BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION)) endif endif ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT),y) ifeq ($(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL)),) $(error No repository specified. Please check BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL) endif endif endif $(eval $(generic-package)) ================================================ FILE: boot/at91bootstrap/Config.in ================================================ config BR2_TARGET_AT91BOOTSTRAP bool "AT91 Bootstrap" depends on BR2_arm926t help AT91Bootstrap is a first level bootloader for the Atmel AT91 devices. It integrates algorithms for: - Device initialization such as clock configuration, PIO settings... - Peripheral drivers such as PIO, PMC or SDRAMC... - Physical media algorithm such as DataFlash, NandFlash, NOR Flash... if BR2_TARGET_AT91BOOTSTRAP config BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR string "custom patch dir" help If your board requires custom patches, add the path to the directory containing the patches here. The patches must be named at91bootstrap--.patch. Most users may leave this empty config BR2_TARGET_AT91BOOTSTRAP_BOARD string "Bootstrap board" default "" help This is used to do a make _config choice prompt "Boot Memory" default BR2_TARGET_AT91BOOTSTRAP_DATAFLASH help Select Chip for which AT91 bootstrap should be built config BR2_TARGET_AT91BOOTSTRAP_DATAFLASH bool "Data Flash" config BR2_TARGET_AT91BOOTSTRAP_NANDFLASH bool "NAND Flash" endchoice config BR2_TARGET_AT91BOOTSTRAP_MEMORY string default "dataflash" if BR2_TARGET_AT91BOOTSTRAP_DATAFLASH default "nandflash" if BR2_TARGET_AT91BOOTSTRAP_NANDFLASH endif ================================================ FILE: boot/at91bootstrap/at91bootstrap-1.16-eabi-fix.patch ================================================ When using an EABI toolchain, the default compilation generates references to __aeabi_unwind_cpp_pr0(). This symbol is defined in libgcc, but we don't want to use it for a bootloader. Therefore, this patch passes some additional CFLAGS to disable the generation of such references by avoiding unwind tables, exceptions, etc. Signed-off-by: Thomas Petazzoni --- board/at91cap9adk/dataflash/Makefile | 2 +- board/at91cap9adk/norflash/Makefile | 2 +- board/at91cap9stk/nandflash/Makefile | 2 +- board/at91sam9260ek/dataflash/Makefile | 2 +- board/at91sam9260ek/nandflash/Makefile | 2 +- board/at91sam9261ek/dataflash/Makefile | 2 +- board/at91sam9261ek/nandflash/Makefile | 2 +- board/at91sam9263ek/dataflash/Makefile | 2 +- board/at91sam9263ek/nandflash/Makefile | 2 +- board/at91sam9g10ek/dataflash/Makefile | 2 +- board/at91sam9g10ek/nandflash/Makefile | 2 +- board/at91sam9g20ek/dataflash/Makefile | 2 +- board/at91sam9g20ek/nandflash/Makefile | 2 +- board/at91sam9g45ekes/nandflash/Makefile | 2 +- board/at91sam9m10ekes/dataflash/Makefile | 2 +- board/at91sam9m10ekes/nandflash/Makefile | 2 +- board/at91sam9m10g45ek/dataflash/Makefile | 2 +- board/at91sam9m10g45ek/nandflash/Makefile | 2 +- board/at91sam9rlek/dataflash/Makefile | 2 +- board/at91sam9rlek/nandflash/Makefile | 2 +- board/at91sam9xeek/dataflash/Makefile | 2 +- board/at91sam9xeek/nandflash/Makefile | 2 +- lib/Makefile | 2 +- 23 files changed, 23 insertions(+), 23 deletions(-) Index: Bootstrap-v1.16/board/at91cap9adk/dataflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91cap9adk/dataflash/Makefile +++ Bootstrap-v1.16/board/at91cap9adk/dataflash/Makefile @@ -34,7 +34,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) +CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91cap9adk/norflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91cap9adk/norflash/Makefile +++ Bootstrap-v1.16/board/at91cap9adk/norflash/Makefile @@ -34,7 +34,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) +CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91cap9stk/nandflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91cap9stk/nandflash/Makefile +++ Bootstrap-v1.16/board/at91cap9stk/nandflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) +CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) Index: Bootstrap-v1.16/board/at91sam9260ek/dataflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9260ek/dataflash/Makefile +++ Bootstrap-v1.16/board/at91sam9260ek/dataflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9260ek/nandflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9260ek/nandflash/Makefile +++ Bootstrap-v1.16/board/at91sam9260ek/nandflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9261ek/dataflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9261ek/dataflash/Makefile +++ Bootstrap-v1.16/board/at91sam9261ek/dataflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9261ek/nandflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9261ek/nandflash/Makefile +++ Bootstrap-v1.16/board/at91sam9261ek/nandflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9263ek/dataflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9263ek/dataflash/Makefile +++ Bootstrap-v1.16/board/at91sam9263ek/dataflash/Makefile @@ -34,7 +34,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9263ek/nandflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9263ek/nandflash/Makefile +++ Bootstrap-v1.16/board/at91sam9263ek/nandflash/Makefile @@ -33,7 +33,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm9 -O0 -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm9 -O0 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9g10ek/dataflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9g10ek/dataflash/Makefile +++ Bootstrap-v1.16/board/at91sam9g10ek/dataflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9g10ek/nandflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9g10ek/nandflash/Makefile +++ Bootstrap-v1.16/board/at91sam9g10ek/nandflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9g20ek/dataflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9g20ek/dataflash/Makefile +++ Bootstrap-v1.16/board/at91sam9g20ek/dataflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9g20ek/nandflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9g20ek/nandflash/Makefile +++ Bootstrap-v1.16/board/at91sam9g20ek/nandflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9g45ekes/nandflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9g45ekes/nandflash/Makefile +++ Bootstrap-v1.16/board/at91sam9g45ekes/nandflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9m10ekes/dataflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9m10ekes/dataflash/Makefile +++ Bootstrap-v1.16/board/at91sam9m10ekes/dataflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9m10ekes/nandflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9m10ekes/nandflash/Makefile +++ Bootstrap-v1.16/board/at91sam9m10ekes/nandflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9m10g45ek/dataflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9m10g45ek/dataflash/Makefile +++ Bootstrap-v1.16/board/at91sam9m10g45ek/dataflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9m10g45ek/nandflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9m10g45ek/nandflash/Makefile +++ Bootstrap-v1.16/board/at91sam9m10g45ek/nandflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9rlek/dataflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9rlek/dataflash/Makefile +++ Bootstrap-v1.16/board/at91sam9rlek/dataflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9rlek/nandflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9rlek/nandflash/Makefile +++ Bootstrap-v1.16/board/at91sam9rlek/nandflash/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9xeek/dataflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9xeek/dataflash/Makefile +++ Bootstrap-v1.16/board/at91sam9xeek/dataflash/Makefile @@ -38,7 +38,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/board/at91sam9xeek/nandflash/Makefile =================================================================== --- Bootstrap-v1.16.orig/board/at91sam9xeek/nandflash/Makefile +++ Bootstrap-v1.16/board/at91sam9xeek/nandflash/Makefile @@ -38,7 +38,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. Index: Bootstrap-v1.16/lib/Makefile =================================================================== --- Bootstrap-v1.16.orig/lib/Makefile +++ Bootstrap-v1.16/lib/Makefile @@ -37,7 +37,7 @@ SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump -CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) +CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) # Linker flags. ================================================ FILE: boot/at91bootstrap/at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patch ================================================ From b783d1f9bf985c0981e755bd2c13e091e9d6837f Mon Sep 17 00:00:00 2001 From: Gregory Hermant Date: Tue, 6 Nov 2012 09:38:50 +0100 Subject: [PATCH] at91bootstrap: fix overlap linker issue The linker script of the at91bootstrap package has to be modified when built from gcc-4.6.x version. Indeed a section named text.startup is created and has to be added into the text section. Signed-off-by: Gregory Hermant --- elf32-littlearm.lds | 1 + 1 file changed, 1 insertion(+) diff --git a/elf32-littlearm.lds b/elf32-littlearm.lds index a33952f..4f3ba25 100644 --- a/elf32-littlearm.lds +++ b/elf32-littlearm.lds @@ -7,6 +7,7 @@ SECTIONS .text : { _stext = .; *(.text) + *(.text*) *(.rodata) /* read-only data (constants) */ *(.rodata*) . = ALIGN(4); -- 1.7.9.5 ================================================ FILE: boot/at91bootstrap/at91bootstrap-1.16-u-boot-relocation-fix.patch ================================================ From d4e4a1aad559e35d84b445d1379be94ad036984e Mon Sep 17 00:00:00 2001 From: Alexandre Belloni Date: Thu, 25 Oct 2012 22:57:14 +0200 Subject: [PATCH] u-boot relocation fix Every AT91SAM plaforms were broken between 2010.12 and 2011.03 because of the relocation changes. We have to get JUMP_ADDR consistant with what is used by u-boot (CONFIG_SYS_TEXT_BASE). I didn't know what to do with at91sam9m10g45ek as it doesn't seems to be converted yet. But anyway, that means that it is either not working or doesn't care so changing it here shouldn't harm. We also have to increase the IMG_SIZE as u-boot as grown larger than the default value. As requested on the u-boot ML, we assume that it could be up to 495kB big. It means that now, you have to flash your kernel at 0x00084000 instead of 0x00042000. And so you also have to load it from that adress from u-boot. Then, remember that you could decrease IMG_SIZE to boot faster. Signed-off-by: Alexandre Belloni --- board/at91sam9260ek/dataflash/at91sam9260ek.h | 4 ++-- board/at91sam9260ek/nandflash/at91sam9260ek.h | 2 +- board/at91sam9261ek/dataflash/at91sam9261ek.h | 4 ++-- board/at91sam9261ek/nandflash/at91sam9261ek.h | 2 +- board/at91sam9263ek/dataflash/at91sam9263ek.h | 4 ++-- board/at91sam9263ek/nandflash/at91sam9263ek.h | 2 +- board/at91sam9g10ek/dataflash/at91sam9g10ek.h | 4 ++-- board/at91sam9g10ek/nandflash/at91sam9g10ek.h | 2 +- board/at91sam9g20ek/dataflash/at91sam9g20ek.h | 4 ++-- board/at91sam9g20ek/nandflash/at91sam9g20ek.h | 2 +- board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h | 2 +- .../at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h | 2 +- board/at91sam9rlek/dataflash/at91sam9rlek.h | 4 ++-- board/at91sam9rlek/nandflash/at91sam9rlek.h | 2 +- board/at91sam9xeek/dataflash/at91sam9xeek.h | 4 ++-- board/at91sam9xeek/nandflash/at91sam9xeek.h | 2 +- 16 files changed, 23 insertions(+), 23 deletions(-) diff --git a/board/at91sam9260ek/dataflash/at91sam9260ek.h b/board/at91sam9260ek/dataflash/at91sam9260ek.h index 1834246..91081a1 100644 --- a/board/at91sam9260ek/dataflash/at91sam9260ek.h +++ b/board/at91sam9260ek/dataflash/at91sam9260ek.h @@ -74,10 +74,10 @@ #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS1_DATAFLASH /* Boot on SPI NCS0 */ #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ -#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ +#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ #define MACH_TYPE 0x44B /* AT91SAM9260-EK */ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9260ek/nandflash/at91sam9260ek.h b/board/at91sam9260ek/nandflash/at91sam9260ek.h index 2cac601..f8fdff2 100644 --- a/board/at91sam9260ek/nandflash/at91sam9260ek.h +++ b/board/at91sam9260ek/nandflash/at91sam9260ek.h @@ -92,7 +92,7 @@ #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ #define MACH_TYPE 0x44B /* AT91SAM9260-EK */ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9261ek/dataflash/at91sam9261ek.h b/board/at91sam9261ek/dataflash/at91sam9261ek.h index 8ce30e9..276ba3d 100644 --- a/board/at91sam9261ek/dataflash/at91sam9261ek.h +++ b/board/at91sam9261ek/dataflash/at91sam9261ek.h @@ -97,10 +97,10 @@ #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ -#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ +#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ #define MACH_TYPE 0x350 /* AT91SAM9261-EK */ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9261ek/nandflash/at91sam9261ek.h b/board/at91sam9261ek/nandflash/at91sam9261ek.h index badc3ac..e628c97 100644 --- a/board/at91sam9261ek/nandflash/at91sam9261ek.h +++ b/board/at91sam9261ek/nandflash/at91sam9261ek.h @@ -114,7 +114,7 @@ #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ #define MACH_TYPE 0x350 /* AT91SAM9261-EK */ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9263ek/dataflash/at91sam9263ek.h b/board/at91sam9263ek/dataflash/at91sam9263ek.h index 5c9da4b..870f9e2 100644 --- a/board/at91sam9263ek/dataflash/at91sam9263ek.h +++ b/board/at91sam9263ek/dataflash/at91sam9263ek.h @@ -96,10 +96,10 @@ #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ -#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ +#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ #define MACH_TYPE 0x4B2 /* AT91SAM9263-EK */ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9263ek/nandflash/at91sam9263ek.h b/board/at91sam9263ek/nandflash/at91sam9263ek.h index 505afc7..8ab4f46 100644 --- a/board/at91sam9263ek/nandflash/at91sam9263ek.h +++ b/board/at91sam9263ek/nandflash/at91sam9263ek.h @@ -108,7 +108,7 @@ #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ #define MACH_TYPE 1202 /* AT91SAM9263-EK */ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9g10ek/dataflash/at91sam9g10ek.h b/board/at91sam9g10ek/dataflash/at91sam9g10ek.h index b2faf44..f4f556b 100644 --- a/board/at91sam9g10ek/dataflash/at91sam9g10ek.h +++ b/board/at91sam9g10ek/dataflash/at91sam9g10ek.h @@ -98,10 +98,10 @@ #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ -#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ +#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ #define MACH_TYPE 0x350 /* AT91SAM9261-EK */ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9g10ek/nandflash/at91sam9g10ek.h b/board/at91sam9g10ek/nandflash/at91sam9g10ek.h index 66c40a3..6c3ecda 100644 --- a/board/at91sam9g10ek/nandflash/at91sam9g10ek.h +++ b/board/at91sam9g10ek/nandflash/at91sam9g10ek.h @@ -115,7 +115,7 @@ #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ #define MACH_TYPE 0x350 /* AT91SAM9G10-EK */ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9g20ek/dataflash/at91sam9g20ek.h b/board/at91sam9g20ek/dataflash/at91sam9g20ek.h index eea0439..7fc70d6 100644 --- a/board/at91sam9g20ek/dataflash/at91sam9g20ek.h +++ b/board/at91sam9g20ek/dataflash/at91sam9g20ek.h @@ -75,10 +75,10 @@ #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS1_DATAFLASH /* Boot on SPI NCS1 */ #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ -#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ +#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ #define MACH_TYPE 0x658 /* AT91SAM9G20-EK */ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9g20ek/nandflash/at91sam9g20ek.h b/board/at91sam9g20ek/nandflash/at91sam9g20ek.h index 31bd499..e797e4d 100644 --- a/board/at91sam9g20ek/nandflash/at91sam9g20ek.h +++ b/board/at91sam9g20ek/nandflash/at91sam9g20ek.h @@ -93,7 +93,7 @@ #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ #define MACH_TYPE 0x658 /* AT91SAM9G20-EK */ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h b/board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h index a60fd41..5587a00 100644 --- a/board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h +++ b/board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h @@ -89,7 +89,7 @@ #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ -#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ +#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ #define MACH_TYPE 0x9CD /* AT91SAM9M10-EKES */ #define JUMP_ADDR 0x73F00000 /* Final Jump Address */ diff --git a/board/at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h b/board/at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h index 5c726b5..9090097 100644 --- a/board/at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h +++ b/board/at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h @@ -85,7 +85,7 @@ #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ -#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ +#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ #define MACH_TYPE 0x726 /* AT91SAM9M10G45-EK */ #define JUMP_ADDR 0x73F00000 /* Final Jump Address */ diff --git a/board/at91sam9rlek/dataflash/at91sam9rlek.h b/board/at91sam9rlek/dataflash/at91sam9rlek.h index 05c42dc..150f17e 100644 --- a/board/at91sam9rlek/dataflash/at91sam9rlek.h +++ b/board/at91sam9rlek/dataflash/at91sam9rlek.h @@ -89,10 +89,10 @@ #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ -#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ +#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ #define MACH_TYPE 1326 /* AT91SAM9RL-EK */ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9rlek/nandflash/at91sam9rlek.h b/board/at91sam9rlek/nandflash/at91sam9rlek.h index 656b4ba..594db8f 100644 --- a/board/at91sam9rlek/nandflash/at91sam9rlek.h +++ b/board/at91sam9rlek/nandflash/at91sam9rlek.h @@ -112,7 +112,7 @@ #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ #define MACH_TYPE 1326 /* AT91SAM9RL-EK */ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9xeek/dataflash/at91sam9xeek.h b/board/at91sam9xeek/dataflash/at91sam9xeek.h index 27d1822..08e515d 100644 --- a/board/at91sam9xeek/dataflash/at91sam9xeek.h +++ b/board/at91sam9xeek/dataflash/at91sam9xeek.h @@ -74,10 +74,10 @@ #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS1_DATAFLASH /* Boot on SPI NCS1 */ #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ -#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ +#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ #define MACH_TYPE 0x44B /* AT91SAM9XE-EK same id as AT91SAM9260-EK*/ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ diff --git a/board/at91sam9xeek/nandflash/at91sam9xeek.h b/board/at91sam9xeek/nandflash/at91sam9xeek.h index 5dbc63e..9fac7cb 100644 --- a/board/at91sam9xeek/nandflash/at91sam9xeek.h +++ b/board/at91sam9xeek/nandflash/at91sam9xeek.h @@ -94,7 +94,7 @@ #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ #define MACH_TYPE 0x44B /* AT91SAM9XE-EK same id as AT91SAM9260-EK*/ -#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ +#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ /* ******************************************************************* */ /* Application Settings */ -- 1.7.9.5 ================================================ FILE: boot/at91bootstrap/at91bootstrap.hash ================================================ # locally computed sha256 d66192a274247f4baa39fa932eadf903d7add55641d89d30402f967c4f2282a5 AT91Bootstrap1.16.zip sha256 6a3ac5dfcf19e6bac1b1109d30d72818768a3855e2594b84fe2b012b5fe0e77b include/sdramc.h ================================================ FILE: boot/at91bootstrap/at91bootstrap.mk ================================================ ################################################################################ # # at91bootstrap # ################################################################################ AT91BOOTSTRAP_VERSION = 1.16 AT91BOOTSTRAP_SITE = ftp://www.at91.com/pub/at91bootstrap AT91BOOTSTRAP_SOURCE = AT91Bootstrap$(AT91BOOTSTRAP_VERSION).zip AT91BOOTSTRAP_LICENSE = BSD-Source-Code AT91BOOTSTRAP_LICENSE_FILES = include/sdramc.h AT91BOOTSTRAP_BOARD = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_BOARD)) AT91BOOTSTRAP_MEMORY = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_MEMORY)) AT91BOOTSTRAP_MAKE_SUBDIR = board/$(AT91BOOTSTRAP_BOARD)/$(AT91BOOTSTRAP_MEMORY) AT91BOOTSTRAP_BINARY = $(AT91BOOTSTRAP_MAKE_SUBDIR)/$(AT91BOOTSTRAP_MEMORY)_$(AT91BOOTSTRAP_BOARD).bin AT91BOOTSTRAP_INSTALL_IMAGES = YES AT91BOOTSTRAP_INSTALL_TARGET = NO define AT91BOOTSTRAP_EXTRACT_CMDS $(UNZIP) -d $(BUILD_DIR) $(AT91BOOTSTRAP_DL_DIR)/$(AT91BOOTSTRAP_SOURCE) mv $(BUILD_DIR)/Bootstrap-v$(AT91BOOTSTRAP_VERSION)/* $(@D) rmdir $(BUILD_DIR)/Bootstrap-v$(AT91BOOTSTRAP_VERSION) endef ifneq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR)),) define AT91BOOTSTRAP_APPLY_CUSTOM_PATCHES $(APPLY_PATCHES) $(@D) $(BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR) \*.patch endef AT91BOOTSTRAP_POST_PATCH_HOOKS += AT91BOOTSTRAP_APPLY_CUSTOM_PATCHES endif define AT91BOOTSTRAP_BUILD_CMDS $(MAKE1) CROSS_COMPILE=$(TARGET_CROSS) -C $(@D)/$(AT91BOOTSTRAP_MAKE_SUBDIR) endef define AT91BOOTSTRAP_INSTALL_IMAGES_CMDS cp $(@D)/$(AT91BOOTSTRAP_BINARY) $(BINARIES_DIR) endef $(eval $(generic-package)) ifeq ($(BR2_TARGET_AT91BOOTSTRAP)$(BR_BUILDING),yy) ifeq ($(AT91BOOTSTRAP_BOARD),) $(error No AT91Bootstrap board name set. Check your BR2_TARGET_AT91BOOTSTRAP_BOARD setting) endif endif ================================================ FILE: boot/at91bootstrap3/Config.in ================================================ config BR2_TARGET_AT91BOOTSTRAP3 bool "AT91 Bootstrap 3+" depends on BR2_arm926t || BR2_cortex_a5 || BR2_cortex_a7 help AT91Bootstrap is a first level bootloader for the Atmel AT91 devices. It integrates algorithms for: - Device initialization such as clock configuration, PIO settings... - Peripheral drivers such as PIO, PMC or SDRAMC... - Physical media algorithm such as DataFlash, NandFlash, NOR Flash... https://www.at91.com/linux4sam/bin/view/Linux4SAM/AT91Bootstrap if BR2_TARGET_AT91BOOTSTRAP3 choice prompt "AT91 Bootstrap 3+ version" config BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION bool "4.0.0" config BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION_3X bool "3.10.3" config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT bool "Custom Git repository" help This option allows Buildroot to get the AT91 Bootstrap 3 source code from a Git repository. config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL bool "Custom tarball" endchoice config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION string "URL of custom AT91Bootstrap tarball" depends on BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL string "URL of custom repository" config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION string "Custom repository version" help Revision to use in the typical format used by Git E.G. a sha id, a tag, branch, .. endif config BR2_TARGET_AT91BOOTSTRAP3_VERSION string default "v4.0.0" if BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION default "v3.10.3" if BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION_3X default BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION \ if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT default "custom" if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_PATCH_DIR string "custom patch dir" help If your board requires custom patches, add the path to the directory containing the patches here. The patches must be named at91bootstrap3-.patch. Most users may leave this empty # # Configuration selection # choice prompt "AT91 Bootstrap 3 configuration" default BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG config BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG bool "Using a defconfig" config BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG bool "Using a custom config file" endchoice config BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG string "Defconfig name" depends on BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG help Name of the at91bootstrap3 defconfig file to use, without the trailing _defconfig. The defconfig is located at board//_defconfig in the at91bootstrap3 tree. config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE string "Configuration file path" depends on BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG help Path to the at91bootstrap3 configuration file config BR2_TARGET_AT91BOOTSTRAP3_NEEDS_PYTHON3 bool "needs host-python3" help Enable this option if the at91bootstrap build process needs Python 3.x to be available on the host. This is needed in some at91bootstrap configurations to use NAND/PMECC Python scripts. endif # BR2_TARGET_AT91BOOTSTRAP3 ================================================ FILE: boot/at91bootstrap3/at91bootstrap3.hash ================================================ # Locally calculated sha256 b6ae5bcaacc5a949f400182e036ae053049638444a3ba8b1dd154ec5f7898d8e at91bootstrap3-v3.10.3.tar.gz sha256 08c5b95df28be7f2e0439fb2b77fe27524f97c499850641e4540c07ea0b2c25d at91bootstrap3-v4.0.0.tar.gz sha256 5a3809b1c2ba13b7242572322951311c584419f1f8516f665d6c06f0668d78de LICENSES/MIT.txt ================================================ FILE: boot/at91bootstrap3/at91bootstrap3.mk ================================================ ################################################################################ # # at91bootstrap3 # ################################################################################ AT91BOOTSTRAP3_VERSION = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_VERSION)) ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL),y) AT91BOOTSTRAP3_TARBALL = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION)) AT91BOOTSTRAP3_SITE = $(patsubst %/,%,$(dir $(AT91BOOTSTRAP3_TARBALL))) AT91BOOTSTRAP3_SOURCE = $(notdir $(AT91BOOTSTRAP3_TARBALL)) BR_NO_CHECK_HASH_FOR += $(AT91BOOTSTRAP3_SOURCE) else ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT),y) AT91BOOTSTRAP3_SITE = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL)) AT91BOOTSTRAP3_SITE_METHOD = git BR_NO_CHECK_HASH_FOR += $(AT91BOOTSTRAP3_SOURCE) else AT91BOOTSTRAP3_SITE = $(call github,linux4sam,at91bootstrap,$(AT91BOOTSTRAP3_VERSION)) endif ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION),y) AT91BOOTSTRAP3_LICENSE = MIT AT91BOOTSTRAP3_LICENSE_FILES = LICENSES/MIT.txt else ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION_3X),y) AT91BOOTSTRAP3_LICENSE = Atmel License endif AT91BOOTSTRAP3_CPE_ID_VENDOR = linux4sam AT91BOOTSTRAP3_CPE_ID_PRODUCT = at91bootstrap AT91BOOTSTRAP3_INSTALL_IMAGES = YES AT91BOOTSTRAP3_INSTALL_TARGET = NO ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_NEEDS_PYTHON3),y) AT91BOOTSTRAP3_DEPENDENCIES += host-python3 endif AT91BOOTSTRAP3_CUSTOM_PATCH_DIR = \ $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_PATCH_DIR)) AT91BOOTSTRAP3_MAKE_OPTS = CROSS_COMPILE=$(TARGET_CROSS) DESTDIR=$(BINARIES_DIR) ifneq ($(AT91BOOTSTRAP3_CUSTOM_PATCH_DIR),) define AT91BOOTSTRAP3_APPLY_CUSTOM_PATCHES $(APPLY_PATCHES) $(@D) $(AT91BOOTSTRAP3_CUSTOM_PATCH_DIR) \*.patch endef AT91BOOTSTRAP3_POST_PATCH_HOOKS += AT91BOOTSTRAP3_APPLY_CUSTOM_PATCHES endif define AT91BOOTSTRAP3_BUILD_CMDS $(MAKE) $(AT91BOOTSTRAP3_MAKE_OPTS) -C $(@D) endef define AT91BOOTSTRAP3_INSTALL_IMAGES_CMDS cp $(wildcard $(@D)/build/binaries/*.bin $(@D)/binaries/*.bin) $(BINARIES_DIR) endef ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG),y) AT91BOOTSTRAP3_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG))_defconfig else ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y) AT91BOOTSTRAP3_KCONFIG_FILE = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE)) endif AT91BOOTSTRAP3_KCONFIG_EDITORS = menuconfig xconfig gconfig AT91BOOTSTRAP3_KCONFIG_OPTS = $(AT91BOOTSTRAP3_MAKE_OPTS) # Checks to give errors that the user can understand # Must be before we call to kconfig-package ifeq ($(BR_BUILDING),y) ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG),y) # We must use the user-supplied kconfig value, because # AT91BOOTSTRAP3_KCONFIG_DEFCONFIG will at least contain # the trailing _defconfig ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG)),) $(error No at91bootstrap3 defconfig name specified, check your BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG setting) endif endif ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y) ifeq ($(AT91BOOTSTRAP3_KCONFIG_FILE),) $(error No at91bootstrap3 configuration file specified, check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE setting) endif endif ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT),y) ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL)),) $(error No custom at91bootstrap3 repository URL specified. Check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL setting) endif ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION)),) $(error No custom at91bootstrap3 repository version specified. Check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION setting) endif endif ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL),y) ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION)),) $(error No custom AT91Bootstrap3 tarball specified. Check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION setting) endif # qstrip BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION endif # BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL endif # BR_BUILDING $(eval $(kconfig-package)) ================================================ FILE: boot/at91dataflashboot/Config.in ================================================ config BR2_TARGET_AT91DATAFLASHBOOT bool "AT91 DataFlashBoot" depends on BR2_arm926t ================================================ FILE: boot/at91dataflashboot/at91dataflashboot-1.05-do-not-install.patch ================================================ Disable the automatic installation of at91dataflashboot since it tries to install things to /tftpboot, which is not possible when not building as root. Signed-off-by: Thomas Petazzoni --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: at91dataflashboot-1.05/Makefile =================================================================== --- at91dataflashboot-1.05.orig/Makefile +++ at91dataflashboot-1.05/Makefile @@ -40,7 +40,7 @@ I=config.h com.h dataflash.h embedded_services.h main.h stdio.h include/AT91RM9200.h include/lib_AT91RM9200.h -all: clean $(BINNAME) $(LSSNAME) install +all: clean $(BINNAME) $(LSSNAME) $(SIZE) $(OUTNAME) # C objects here ================================================ FILE: boot/at91dataflashboot/at91dataflashboot-1.05-eabi-fixes.patch ================================================ Get at91dataflashboot to build with EABI toolchains, by providing the __aeabi_uidiv and __aeabi_uidivmod symbols. The code is based on U-Boot's code. Signed-off-by: Thomas Petazzoni --- _udivsi3.S | 14 ++++++++++++++ 1 file changed, 14 insertions(+) Index: DataflashBoot-1.05/_udivsi3.S =================================================================== --- DataflashBoot-1.05.orig/_udivsi3.S +++ DataflashBoot-1.05/_udivsi3.S @@ -12,8 +12,11 @@ .text .globl __udivsi3 .type __udivsi3 ,function + .globl __aeabi_uidiv + .type __aeabi_uidiv ,function .align 0 __udivsi3 : + __aeabi_uidiv: cmp divisor, #0 beq Ldiv0 mov curbit, #1 @@ -68,6 +71,17 @@ mov r0, #0 @ about as wrong as it could be ldmia sp!, {pc} .size __udivsi3 , . - __udivsi3 + +.globl __aeabi_uidivmod +__aeabi_uidivmod: + + stmfd sp!, {r0, r1, ip, lr} + bl __aeabi_uidiv + ldmfd sp!, {r1, r2, ip, lr} + mul r3, r0, r2 + sub r1, r1, r3 + mov pc, lr + /* # 235 "libgcc1.S" */ /* # 320 "libgcc1.S" */ /* # 421 "libgcc1.S" */ ================================================ FILE: boot/at91dataflashboot/at91dataflashboot.hash ================================================ # locally computed sha256 2cfeb6a9236e1a743c8010f05e504dbc92169ef42d9a6cf7948954a577bfc386 DataflashBoot-1.05.tar.bz2 ================================================ FILE: boot/at91dataflashboot/at91dataflashboot.mk ================================================ ################################################################################ # # at91dataflashboot # ################################################################################ AT91DATAFLASHBOOT_VERSION = 1.05 AT91DATAFLASHBOOT_SOURCE = DataflashBoot-$(AT91DATAFLASHBOOT_VERSION).tar.bz2 AT91DATAFLASHBOOT_SITE = ftp://www.at91.com/pub/buildroot AT91DATAFLASHBOOT_INSTALL_TARGET = NO AT91DATAFLASHBOOT_INSTALL_IMAGES = YES define AT91DATAFLASHBOOT_BUILD_CMDS make -C $(@D) CROSS_COMPILE=$(TARGET_CROSS) endef define AT91DATAFLASHBOOT_INSTALL_IMAGES_CMDS cp $(@D)/DataflashBoot-$(AT91DATAFLASHBOOT_VERSION).bin $(BINARIES_DIR) endef $(eval $(generic-package)) ================================================ FILE: boot/barebox/Config.in ================================================ config BR2_TARGET_BAREBOX bool "Barebox" help The Barebox bootloader, formerly known as U-Boot v2. http://www.barebox.org if BR2_TARGET_BAREBOX choice prompt "version" help Select the specific Barebox version you want to use config BR2_TARGET_BAREBOX_LATEST_VERSION bool "2021.10.0" config BR2_TARGET_BAREBOX_CUSTOM_VERSION bool "Custom version" help This option allows to use a specific official versions config BR2_TARGET_BAREBOX_CUSTOM_TARBALL bool "Custom tarball" config BR2_TARGET_BAREBOX_CUSTOM_GIT bool "Custom Git repository" endchoice config BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE string "Barebox version" depends on BR2_TARGET_BAREBOX_CUSTOM_VERSION if BR2_TARGET_BAREBOX_CUSTOM_TARBALL config BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION string "URL of custom Barebox tarball" endif config BR2_TARGET_BAREBOX_VERSION string default "2021.10.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 config BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR string "custom patch dir" help If your board requires custom patches, add the path to the directory containing the patches here. The patches must be named barebox--.patch. Most users may leave this empty if BR2_TARGET_BAREBOX_CUSTOM_GIT config BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL string "URL of custom Git repository" config BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION string "Custom Git version" endif source boot/barebox/barebox/Config.in menuconfig BR2_TARGET_BAREBOX_AUX bool "Build barebox with an auxiliary config" help 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. if BR2_TARGET_BAREBOX_AUX source boot/barebox/barebox-aux/Config.in endif endif ================================================ FILE: 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 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 file names" help Space-separated list of barebox images 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 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. ================================================ FILE: boot/barebox/barebox/barebox.mk ================================================ ################################################################################ # # barebox # ################################################################################ # Instantiate the barebox package $(eval $(barebox-package)) ================================================ FILE: boot/barebox/barebox-aux/Config.in ================================================ 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 file names" help Space-separated list of barebox images 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 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. ================================================ FILE: boot/barebox/barebox-aux/barebox-aux.mk ================================================ ################################################################################ # # barebox-aux # ################################################################################ # Instantiate the auxiliary barebox package $(eval $(barebox-package)) ================================================ FILE: boot/barebox/barebox.hash ================================================ # From https://www.barebox.org/download/barebox-2021.10.0.tar.bz2.md5 md5 7d79102fd8d45bf3756b4f3a569654a8 barebox-2021.10.0.tar.bz2 # Locally calculated sha256 4bb077b54d03743b3e8c20751d318dcc3ef03b20abe1a64a79c413ea03de3632 barebox-2021.10.0.tar.bz2 # License files, locally computed sha256 ab1122aa9f9073ad1ec824edcd970b16a6a7881a34a18fd56c080debb2dca5d4 COPYING ================================================ FILE: boot/barebox/barebox.mk ================================================ ################################################################################ # # barebox # ################################################################################ ################################################################################ # 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) ################################################################################ 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 $(1)_TARBALL = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION)) $(1)_SITE = $$(patsubst %/,%,$$(dir $$($(1)_TARBALL))) $(1)_SOURCE = $$(notdir $$($(1)_TARBALL)) else ifeq ($$(BR2_TARGET_BAREBOX_CUSTOM_GIT),y) $(1)_SITE = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL)) $(1)_SITE_METHOD = git # Override the default value of _SOURCE to 'barebox-*' so that it is not # downloaded a second time for barebox-aux; also alows avoiding the hash # check: $(1)_SOURCE = barebox-$$($(1)_VERSION)$$(BR_FMT_VERSION_git).tar.gz else # Handle stable official Barebox versions $(1)_SOURCE = barebox-$$($(1)_VERSION).tar.bz2 $(1)_SITE = https://www.barebox.org/download endif $(1)_DL_SUBDIR = barebox $(1)_DEPENDENCIES = host-lzop $(1)_LICENSE = GPL-2.0 with exceptions ifeq ($(BR2_TARGET_BAREBOX_LATEST_VERSION),y) $(1)_LICENSE_FILES = COPYING endif $(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 $(1)_POST_PATCH_HOOKS += $(1)_APPLY_CUSTOM_PATCHES endif $(1)_INSTALL_IMAGES = YES ifneq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) $(1)_INSTALL_TARGET = NO endif 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 $(1)_ARCH = $$(KERNEL_ARCH) endif $(1)_MAKE_FLAGS = ARCH=$$($(1)_ARCH) CROSS_COMPILE="$$(TARGET_CROSS)" $(1)_MAKE_ENV = $$(TARGET_MAKE_ENV) 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 $(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) $(1)_KCONFIG_DEPENDENCIES = \ $(BR2_BISON_HOST_DEPENDENCY) \ $(BR2_FLEX_HOST_DEPENDENCY) 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 $(1)_INSTALL_CUSTOM_ENV cp $$(@D)/$$($(1)_ENV_NAME) $$(BINARIES_DIR) endef endif ifneq ($$($(1)_CUSTOM_EMBEDDED_ENV_PATH),) define $(1)_KCONFIG_FIXUP_CUSTOM_EMBEDDED_ENV_PATH $$(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_ENVIRONMENT) $$(call KCONFIG_SET_OPT,CONFIG_DEFAULT_ENVIRONMENT_PATH,"$$($(1)_CUSTOM_EMBEDDED_ENV_PATH)") endef endif define $(1)_KCONFIG_FIXUP_BAREBOXENV $$(if $$(BR2_TARGET_$(1)_BAREBOXENV),\ $$(call KCONFIG_ENABLE_OPT,CONFIG_BAREBOXENV_TARGET),\ $$(call KCONFIG_DISABLE_OPT,CONFIG_BAREBOXENV_TARGET)) endef define $(1)_KCONFIG_FIXUP_CMDS $$($(1)_KCONFIG_FIXUP_CUSTOM_EMBEDDED_ENV_PATH) $$($(1)_KCONFIG_FIXUP_BAREBOXENV) endef define $(1)_BUILD_CMDS $$($(1)_BUILD_BAREBOXENV_CMDS) $$(TARGET_MAKE_ENV) $$(MAKE) $$($(1)_MAKE_FLAGS) -C $$(@D) $$($(1)_BUILD_CUSTOM_ENV) endef $(1)_IMAGE_FILES = $$(call qstrip,$$(BR2_TARGET_$(1)_IMAGE_FILE)) define $(1)_INSTALL_IMAGES_CMDS if test -n "$$($(1)_IMAGE_FILES)"; then \ cp -L $$(foreach image,$$($(1)_IMAGE_FILES),$$(@D)/$$(image)) $$(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);\ fi $$($(1)_INSTALL_CUSTOM_ENV) endef # Starting with barebox v2020.09.0, the kconfig used calls the # cross-compiler to check its capabilities. So we need the # toolchain before we can call the configurators. $(1)_KCONFIG_DEPENDENCIES += toolchain ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) define $(1)_INSTALL_TARGET_CMDS cp $$(@D)/scripts/bareboxenv-target $$(TARGET_DIR)/usr/bin/bareboxenv endef endif # Checks to give errors that the user can understand # Must be before we call to kconfig-package ifeq ($$(BR2_TARGET_$(1))$$(BR_BUILDING),yy) # We must use the user-supplied kconfig value, because # $(1)_KCONFIG_DEFCONFIG will at least contain the # trailing _defconfig 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)) 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 ifeq ($(BR2_TARGET_BAREBOX)$(BR2_TARGET_BAREBOX_LATEST_VERSION),y) BR_NO_CHECK_HASH_FOR += $(BAREBOX_SOURCE) endif ================================================ FILE: boot/beaglev-ddrinit/Config.in ================================================ config BR2_TARGET_BEAGLEV_DDRINIT bool "beaglev-ddrinit" depends on BR2_riscv depends on BR2_HOSTARCH = "x86_64" # host-riscv64-elf-toolchain help This package builds the DDRinit firmware used on the BeagleV platform. https://github.com/starfive-tech/beagle_ddrinit ================================================ FILE: boot/beaglev-ddrinit/beaglev-ddrinit.hash ================================================ # Locally computed sha256 2d491f64bd77de9dfd4b8ae6c00e83670e80c205cc20917fefa6194b1dc1fe4e beaglev-ddrinit-c0839f25246d9e308c23498d344ca13d8a7ad6ed.tar.gz sha256 284d26192537710910ec1f112ec5f4c981601ae23702391986d6ce0b8ba90813 LICENSE ================================================ FILE: boot/beaglev-ddrinit/beaglev-ddrinit.mk ================================================ ################################################################################ # # beaglev-ddrinit # ################################################################################ # Commit on the 'starfive' branch BEAGLEV_DDRINIT_VERSION = c0839f25246d9e308c23498d344ca13d8a7ad6ed BEAGLEV_DDRINIT_SITE = $(call github,starfive-tech,beagle_ddrinit,$(BEAGLEV_DDRINIT_VERSION)) BEAGLEV_DDRINIT_INSTALL_TARGET = NO BEAGLEV_DDRINIT_INSTALL_IMAGES = YES BEAGLEV_DDRINIT_DEPENDENCIES = host-riscv64-elf-toolchain BEAGLEV_DDRINIT_LICENSE = GPL-2.0+ BEAGLEV_DDRINIT_LICENSE_FILES = LICENSE define BEAGLEV_DDRINIT_BUILD_CMDS $(MAKE) -C $(@D)/build \ CROSSCOMPILE=$(HOST_DIR)/bin/riscv64-unknown-elf- \ SUFFIX=buildroot \ GIT_VERSION=$(BEAGLEV_DDRINIT_VERSION) endef define BEAGLEV_DDRINIT_INSTALL_IMAGES_CMDS $(INSTALL) -D -m 0644 $(@D)/build/ddrinit-2133-buildroot.bin.out \ $(BINARIES_DIR)/ddrinit-2133-buildroot.bin.out endef $(eval $(generic-package)) ================================================ FILE: boot/beaglev-secondboot/Config.in ================================================ config BR2_TARGET_BEAGLEV_SECONDBOOT bool "beaglev-secondboot" depends on BR2_riscv depends on BR2_HOSTARCH = "x86_64" # host-riscv64-elf-toolchain help This package builds the SecondBoot firmware used on the BeagleV platform. https://github.com/starfive-tech/beagle_secondBoot ================================================ FILE: boot/beaglev-secondboot/beaglev-secondboot.hash ================================================ # Locally computed sha256 fe4d37f3ff38e7f2da70a08f9cb1668c0b928e85d2e0935bd985f910b3ce30e9 beaglev-secondboot-2d20047960044308126117ad56bc08a1164e82b2.tar.gz sha256 284d26192537710910ec1f112ec5f4c981601ae23702391986d6ce0b8ba90813 LICENSE ================================================ FILE: boot/beaglev-secondboot/beaglev-secondboot.mk ================================================ ################################################################################ # # beaglev-secondboot # ################################################################################ # Commit on the 'starfive' branch BEAGLEV_SECONDBOOT_VERSION = 2d20047960044308126117ad56bc08a1164e82b2 BEAGLEV_SECONDBOOT_SITE = $(call github,starfive-tech,beagle_secondBoot,$(BEAGLEV_SECONDBOOT_VERSION)) BEAGLEV_SECONDBOOT_INSTALL_TARGET = NO BEAGLEV_SECONDBOOT_INSTALL_IMAGES = YES BEAGLEV_SECONDBOOT_DEPENDENCIES = host-riscv64-elf-toolchain BEAGLEV_SECONDBOOT_LICENSE = GPL-2.0+ BEAGLEV_SECONDBOOT_LICENSE_FILES = LICENSE define BEAGLEV_SECONDBOOT_BUILD_CMDS $(MAKE) -C $(@D)/build \ CROSSCOMPILE=$(HOST_DIR)/bin/riscv64-unknown-elf- \ SUFFIX=buildroot \ GIT_VERSION=$(BEAGLEV_SECONDBOOT_VERSION) endef define BEAGLEV_SECONDBOOT_INSTALL_IMAGES_CMDS $(INSTALL) -D -m 0644 $(@D)/build/bootloader-BEAGLEV-buildroot.bin.out \ $(BINARIES_DIR)/bootloader-BEAGLEV-buildroot.bin.out endef $(eval $(generic-package)) ================================================ FILE: boot/binaries-marvell/Config.in ================================================ config BR2_TARGET_BINARIES_MARVELL bool "binaries-marvell" depends on BR2_aarch64 help Some systems, including Marvell Armada SoC, have a separate System Control Processor (SCP) for power management, clocks, reset and system control. ATF Boot Loader stage 2 (BL2) loads optional SCP_BL2 image into a platform-specific region of secure memory. This package downloads and installs such firmware, which is needed to build ATF. https://github.com/MarvellEmbeddedProcessors/binaries-marvell/ ================================================ FILE: boot/binaries-marvell/binaries-marvell.hash ================================================ # Locally calculated sha256 d818c95bcd4d5c026238d6e554151184ed7fea15bce1f861f9068b97b4cd320a binaries-marvell-c5d3ef2b63ba66d8717ecbe679fd2e639cde88ee.tar.gz sha256 e6d08ef60068ee72c68835001a24eb832dcba27cac0dde0f179dfb428be050ca README.md ================================================ FILE: boot/binaries-marvell/binaries-marvell.mk ================================================ ################################################################################ # # binaries-marvell # ################################################################################ # This is version binaries-marvell-armada-18.12 BINARIES_MARVELL_VERSION = c5d3ef2b63ba66d8717ecbe679fd2e639cde88ee BINARIES_MARVELL_SITE = $(call github,MarvellEmbeddedProcessors,binaries-marvell,$(BINARIES_MARVELL_VERSION)) BINARIES_MARVELL_LICENSE = GPL-2.0 with freertos-exception-2.0 BINARIES_MARVELL_LICENSE_FILES = README.md BINARIES_MARVELL_INSTALL_IMAGES = YES define BINARIES_MARVELL_INSTALL_IMAGES_CMDS $(INSTALL) -D -m 0644 $(@D)/mrvl_scp_bl2.img $(BINARIES_DIR)/scp-fw.bin endef $(eval $(generic-package)) ================================================ FILE: boot/boot-wrapper-aarch64/Config.in ================================================ comment "boot-wrapper-aarch64 needs a Linux kernel to be built" depends on BR2_aarch64 depends on !BR2_LINUX_KERNEL config BR2_TARGET_BOOT_WRAPPER_AARCH64 bool "boot-wrapper-aarch64" depends on BR2_aarch64 depends on BR2_LINUX_KERNEL help The boot-wrapper-aarch64 is a small bootloader that makes it possible to start an Aarch64 kernel inside the available software simulators for the Aarch64 architecture. git://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git if BR2_TARGET_BOOT_WRAPPER_AARCH64 config BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS string "Device Tree Source name" default "" help Name of the Device Tree Source file to use to generate the Device Tree Blob that will be embedded in the image generated by the boot wrapper. Valid names are the .dts files from arch/arm64/boot/dts/ in the kernel source tree. The name must be specified without the .dts suffix. config BR2_TARGET_BOOT_WRAPPER_AARCH64_BOOTARGS string "Kernel bootargs" default "" help Kernel bootargs to embed inside the image generated by the boot wrapper. config BR2_TARGET_BOOT_WRAPPER_AARCH64_PSCI bool "Boot secondary SMP cores using PSCI" help Boot secondary SMP cores using PSCI firmware calls. If disabled, the spin-table method is used instead. config BR2_TARGET_BOOT_WRAPPER_AARCH64_GICV3 bool "Enable GICv3 instead of GICv2" help Boot using GICv3 instead of GICv2. endif ================================================ FILE: boot/boot-wrapper-aarch64/boot-wrapper-aarch64.mk ================================================ ################################################################################ # # boot-wrapper-aarch64 # ################################################################################ BOOT_WRAPPER_AARCH64_VERSION = 8d5a765251d9113c3c0f9fa14de42a9e7486fe8a BOOT_WRAPPER_AARCH64_SITE = git://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git BOOT_WRAPPER_AARCH64_LICENSE = BSD-3-Clause BOOT_WRAPPER_AARCH64_LICENSE_FILES = LICENSE.txt BOOT_WRAPPER_AARCH64_DEPENDENCIES = linux BOOT_WRAPPER_AARCH64_INSTALL_IMAGES = YES # The Git repository does not have the generated configure script and # Makefile. BOOT_WRAPPER_AARCH64_AUTORECONF = YES BOOT_WRAPPER_AARCH64_DTB = $(LINUX_DIR)/arch/arm64/boot/dts/$(basename $(call qstrip,$(BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS))).dtb BOOT_WRAPPER_AARCH64_CONF_OPTS = \ --with-kernel-dir=$(LINUX_DIR) \ --with-dtb=$(BOOT_WRAPPER_AARCH64_DTB) \ --with-cmdline=$(BR2_TARGET_BOOT_WRAPPER_AARCH64_BOOTARGS) ifeq ($(BR2_TARGET_BOOT_WRAPPER_AARCH64_PSCI),y) BOOT_WRAPPER_AARCH64_CONF_OPTS += --enable-psci else BOOT_WRAPPER_AARCH64_CONF_OPTS += --disable-psci endif ifeq ($(BR2_TARGET_BOOT_WRAPPER_AARCH64_GICV3),y) BOOT_WRAPPER_AARCH64_CONF_OPTS += --enable-gicv3 endif # We need to convince the configure script that the Linux kernel tree # exists, as well as the DTB and the kernel Image. Even though those # are available on the build machine, the configure script uses # AC_CHECK_FILE tests, which are always disabled in cross-compilation # situations. BOOT_WRAPPER_AARCH64_CONF_ENV = \ $(call AUTOCONF_AC_CHECK_FILE_VAL,$(LINUX_DIR))=yes \ $(call AUTOCONF_AC_CHECK_FILE_VAL,$(LINUX_DIR)$(BOOT_WRAPPER_AARCH64_DTB))=yes \ $(call AUTOCONF_AC_CHECK_FILE_VAL,$(LINUX_DIR)/arch/arm64/boot/Image)=yes define BOOT_WRAPPER_AARCH64_INSTALL_IMAGES_CMDS cp $(@D)/linux-system.axf $(BINARIES_DIR) endef $(eval $(autotools-package)) ================================================ FILE: boot/common.mk ================================================ include $(sort $(wildcard boot/*/*.mk)) ================================================ FILE: boot/edk2/Config.in ================================================ config BR2_TARGET_EDK2_ARCH_SUPPORTS bool default y if BR2_aarch64 default y if BR2_i386 default y if BR2_x86_64 config BR2_TARGET_EDK2 bool "EDK2" depends on BR2_TARGET_EDK2_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 select BR2_PACKAGE_EDK2_PLATFORMS help EDK II is a modern, feature-rich, cross-platform firmware development environment for the UEFI and PI specifications. https://github.com/tianocore/tianocore.github.io/wiki/EDK-II if BR2_TARGET_EDK2 choice prompt "Platform" default BR2_TARGET_EDK2_PLATFORM_OVMF_I386 if BR2_i386 default BR2_TARGET_EDK2_PLATFORM_OVMF_X64 if BR2_x86_64 default BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU if BR2_aarch64 config BR2_TARGET_EDK2_PLATFORM_OVMF_I386 bool "i386" depends on BR2_i386 || BR2_x86_64 help Platform configuration for a generic i386 target. This platform will boot from flash address 0x0. It should therefore be used as the first bootloader. config BR2_TARGET_EDK2_PLATFORM_OVMF_X64 bool "x86-64" depends on BR2_x86_64 help Platform configuration for a generic x86-64 target. This platform will boot from flash address 0x0. It should therefore be used as the first bootloader. config BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU bool "ARM Virt Qemu (flash)" depends on BR2_aarch64 help Platform configuration for QEMU targeting the Virt machine. This platform will only boot from flash address 0x0. It should therefore be used as the first bootloader. config BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU_KERNEL bool "ARM Virt Qemu (kernel)" depends on BR2_aarch64 help Platform configuration for QEMU targeting the Virt machine. This platform can boot from either flash address 0x0 or via the Linux boot protocol. It can therefore be loaded by a previous bootloader like ARM Trusted Firmware or OP-TEE. config BR2_TARGET_EDK2_PLATFORM_ARM_SGI575 bool "ARM SGI-575" depends on BR2_aarch64 help Platform configuration for ARM SGI-575 on ARM's Fixed Virtual Platform (FVP). config BR2_TARGET_EDK2_PLATFORM_ARM_VEXPRESS_FVP_AARCH64 bool "ARM VExpress FVP Aarch64" depends on BR2_aarch64 help Platform configuration for ARM Versatile Express targeting the Aarch64 Fixed Virtual Platform (FVP). config BR2_TARGET_EDK2_PLATFORM_SOCIONEXT_DEVELOPERBOX bool "Socionext DeveloperBox" depends on BR2_aarch64 depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE depends on !BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 select BR2_PACKAGE_HOST_DTC select BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP help Platform configuration for Socionext SynQuacer DeveloperBox (SC2A11). comment "Socionext DeveloperBox depends on ATF not using EDK2 as BL33" depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 config BR2_TARGET_EDK2_PLATFORM_SOLIDRUN_ARMADA80X0MCBIN bool "SolidRun MacchiatoBin" depends on BR2_aarch64 depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE select BR2_PACKAGE_HOST_DTC select BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP help Platform configuration for the SolidRun MacchiatoBin. config BR2_TARGET_EDK2_PLATFORM_QEMU_SBSA bool "QEMU SBSA" depends on BR2_aarch64 depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE depends on !BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 help Platform configuration for QEMU targeting the SBSA reference machine. comment "QEMU SBSA depends on ATF not using EDK2 as BL33" depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 endchoice config BR2_TARGET_EDK2_FD_NAME string default "OVMF" if BR2_TARGET_EDK2_PLATFORM_OVMF_I386 default "OVMF" if BR2_TARGET_EDK2_PLATFORM_OVMF_X64 default "QEMU_EFI" if BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU default "QEMU_EFI" if BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU_KERNEL default "BL33_AP_UEFI" if BR2_TARGET_EDK2_PLATFORM_ARM_SGI575 default "FVP_AARCH64_EFI" if BR2_TARGET_EDK2_PLATFORM_ARM_VEXPRESS_FVP_AARCH64 default "FVP_AARCH64_EFI" if BR2_TARGET_EDK2_PLATFORM_SOCIONEXT_DEVELOPERBOX default "ARMADA_EFI" if BR2_TARGET_EDK2_PLATFORM_SOLIDRUN_ARMADA80X0MCBIN endif comment "EDK2 needs a toolchain w/ gcc >= 5" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_5 ================================================ FILE: boot/edk2/edk2.hash ================================================ # Locally calculated sha256 04791c13b414a6d1877182a6d565cb762c30aa63e49bb4d495fca68ef4dd209d edk2-edk2-stable202102-br1.tar.gz sha256 50ce20c9cfdb0e19ee34fe0a51fc0afe961f743697b068359ab2f862b494df80 License.txt ================================================ FILE: boot/edk2/edk2.mk ================================================ ################################################################################ # # edk2 # ################################################################################ EDK2_VERSION = edk2-stable202102 EDK2_SITE = https://github.com/tianocore/edk2 EDK2_SITE_METHOD = git EDK2_LICENSE = BSD-2-Clause EDK2_LICENSE_FILE = License.txt EDK2_CPE_ID_VENDOR = tianocore EDK2_DEPENDENCIES = edk2-platforms host-python3 host-acpica host-util-linux EDK2_INSTALL_TARGET = NO EDK2_INSTALL_IMAGES = YES ifeq ($(BR2_ENABLE_DEBUG),y) EDK2_BUILD_TYPE = DEBUG else EDK2_BUILD_TYPE = RELEASE endif # Build system notes. # # The EDK2 build system is rather unique, so here are a few useful notes. # # First, builds rely heavily on Git submodules to fetch various dependencies # into specific directory structures. It might be possible to work around this # and rely on Buildroot's infrastructure, but using Git submodules greatly # simplifies this already complicated build system. # # Second, the build system is spread across various commands and stages. # Therefore, all build variables needs to be exported to be available # accordingly. The first stage will build $(@D)/BaseTools which contains # various tools and scripts for the host. # # Third, where applicable, the dependency direction between EDK2 and # ARM Trusted Firmware (ATF) will go in different direction for different # platforms. Most commonly, ATF will depend on EDK2 via the BL33 payload. # But for some platforms (e.g. QEMU SBSA or DeveloperBox) EDK2 will package # the ATF images within its own build system. In such cases, intermediary # "EDK2 packages" will be built in $(EDK2_BUILD_PACKAGES) in order for EDK2 # to be able to use them in subsequent build stages. # # For more information about the build setup: # https://edk2-docs.gitbook.io/edk-ii-build-specification/4_edk_ii_build_process_overview EDK2_GIT_SUBMODULES = YES EDK2_BUILD_PACKAGES = $(@D)/Build/Buildroot EDK2_PACKAGES_PATH = $(@D):$(EDK2_BUILD_PACKAGES):$(STAGING_DIR)/usr/share/edk2-platforms ifeq ($(BR2_TARGET_EDK2_PLATFORM_OVMF_I386),y) EDK2_ARCH = IA32 EDK2_DEPENDENCIES += host-nasm EDK2_PACKAGE_NAME = OvmfPkg EDK2_PLATFORM_NAME = OvmfPkgIa32 EDK2_BUILD_DIR = OvmfIa32 else ifeq ($(BR2_TARGET_EDK2_PLATFORM_OVMF_X64),y) EDK2_ARCH = X64 EDK2_DEPENDENCIES += host-nasm EDK2_PACKAGE_NAME = OvmfPkg EDK2_PLATFORM_NAME = OvmfPkgX64 EDK2_BUILD_DIR = OvmfX64 else ifeq ($(BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU),y) EDK2_ARCH = AARCH64 EDK2_PACKAGE_NAME = ArmVirtPkg EDK2_PLATFORM_NAME = ArmVirtQemu EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME)-$(EDK2_ARCH) else ifeq ($(BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU_KERNEL),y) EDK2_ARCH = AARCH64 EDK2_PACKAGE_NAME = ArmVirtPkg EDK2_PLATFORM_NAME = ArmVirtQemuKernel EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME)-$(EDK2_ARCH) else ifeq ($(BR2_TARGET_EDK2_PLATFORM_ARM_VEXPRESS_FVP_AARCH64),y) EDK2_ARCH = AARCH64 EDK2_PACKAGE_NAME = Platform/ARM/VExpressPkg EDK2_PLATFORM_NAME = ArmVExpress-FVP-AArch64 EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME) else ifeq ($(BR2_TARGET_EDK2_PLATFORM_SOCIONEXT_DEVELOPERBOX),y) EDK2_ARCH = AARCH64 EDK2_DEPENDENCIES += host-dtc arm-trusted-firmware EDK2_PACKAGE_NAME = Platform/Socionext/DeveloperBox EDK2_PLATFORM_NAME = DeveloperBox EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME) EDK2_BUILD_ENV += DTC_PREFIX=$(HOST_DIR)/bin/ EDK2_BUILD_OPTS += -D DO_X86EMU=TRUE EDK2_PRE_BUILD_HOOKS += EDK2_PRE_BUILD_SOCIONEXT_DEVELOPERBOX define EDK2_PRE_BUILD_SOCIONEXT_DEVELOPERBOX mkdir -p $(EDK2_BUILD_PACKAGES)/Platform/Socionext/DeveloperBox $(ARM_TRUSTED_FIRMWARE_DIR)/tools/fiptool/fiptool create \ --tb-fw $(BINARIES_DIR)/bl31.bin \ --soc-fw $(BINARIES_DIR)/bl31.bin \ --scp-fw $(BINARIES_DIR)/bl31.bin \ $(EDK2_BUILD_PACKAGES)/Platform/Socionext/DeveloperBox/fip_all_arm_tf.bin endef else ifeq ($(BR2_TARGET_EDK2_PLATFORM_SOLIDRUN_ARMADA80X0MCBIN),y) EDK2_ARCH = AARCH64 EDK2_DEPENDENCIES += host-dtc arm-trusted-firmware EDK2_PACKAGE_NAME = Platform/SolidRun/Armada80x0McBin EDK2_PLATFORM_NAME = Armada80x0McBin EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME)-$(EDK2_ARCH) EDK2_BUILD_ENV += DTC_PREFIX=$(HOST_DIR)/bin/ EDK2_BUILD_OPTS += -D INCLUDE_TFTP_COMMAND else ifeq ($(BR2_TARGET_EDK2_PLATFORM_QEMU_SBSA),y) EDK2_ARCH = AARCH64 EDK2_DEPENDENCIES += arm-trusted-firmware EDK2_PACKAGE_NAME = Platform/Qemu/SbsaQemu EDK2_PLATFORM_NAME = SbsaQemu EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME) EDK2_PRE_BUILD_HOOKS += EDK2_PRE_BUILD_QEMU_SBSA define EDK2_PRE_BUILD_QEMU_SBSA mkdir -p $(EDK2_BUILD_PACKAGES)/Platform/Qemu/Sbsa ln -srf $(BINARIES_DIR)/{bl1.bin,fip.bin} $(EDK2_BUILD_PACKAGES)/Platform/Qemu/Sbsa/ endef endif EDK2_BASETOOLS_OPTS = \ EXTRA_LDFLAGS="$(HOST_LDFLAGS)" \ EXTRA_OPTFLAGS="$(HOST_CPPFLAGS)" EDK2_BUILD_ENV += \ WORKSPACE=$(@D) \ PACKAGES_PATH=$(EDK2_PACKAGES_PATH) \ PYTHON_COMMAND=$(HOST_DIR)/bin/python3 \ IASL_PREFIX=$(HOST_DIR)/bin/ \ NASM_PREFIX=$(HOST_DIR)/bin/ \ GCC5_$(EDK2_ARCH)_PREFIX=$(TARGET_CROSS) EDK2_BUILD_OPTS += \ -t GCC5 \ -n $(BR2_JLEVEL) \ -a $(EDK2_ARCH) \ -b $(EDK2_BUILD_TYPE) \ -p $(EDK2_PACKAGE_NAME)/$(EDK2_PLATFORM_NAME).dsc define EDK2_BUILD_CMDS mkdir -p $(EDK2_BUILD_PACKAGES) export $(EDK2_BUILD_ENV) && \ unset ARCH && \ source $(@D)/edksetup.sh && \ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/BaseTools $(EDK2_BASETOOLS_OPTS) && \ build $(EDK2_BUILD_OPTS) all endef define EDK2_INSTALL_IMAGES_CMDS cp -f $(@D)/Build/$(EDK2_BUILD_DIR)/$(EDK2_BUILD_TYPE)_GCC5/FV/*.fd $(BINARIES_DIR) endef $(eval $(generic-package)) ================================================ FILE: boot/grub2/0001-build-Fix-GRUB-i386-pc-build-with-Ubuntu-gcc.patch ================================================ From 6643507ce30f775008e093580f0c9499dfb2c485 Mon Sep 17 00:00:00 2001 From: Simon Hardy Date: Tue, 24 Mar 2020 13:29:12 +0000 Subject: build: Fix GRUB i386-pc build with Ubuntu gcc With recent versions of gcc on Ubuntu a very large lzma_decompress.img file is output. (e.g. 134479600 bytes instead of 2864.) This causes grub-mkimage to fail with: "error: Decompressor is too big." This seems to be caused by a section .note.gnu.property that is placed at an offset such that objcopy needs to pad the img file with zeros. This issue is present on: Ubuntu 19.10 with gcc (Ubuntu 8.3.0-26ubuntu1~19.10) 8.3.0 Ubuntu 19.10 with gcc (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008 This issue is not present on: Ubuntu 19.10 with gcc (Ubuntu 7.5.0-3ubuntu1~19.10) 7.5.0 RHEL 8.0 with gcc 8.3.1 20190507 (Red Hat 8.3.1-4) The issue can be fixed by removing the section using objcopy as shown in this patch. Signed-off-by: Simon Hardy Reviewed-by: Daniel Kiper [Retrieved (and updated to directly patch Makefile.in instead of gentpl.py to avoid adding a dependency on python) from: http://git.savannah.gnu.org/cgit/grub.git/commit/?id=6643507ce30f775008e093580f0c9499dfb2c485] Signed-off-by: Fabrice Fontaine [yann.morin.1998@free.fr: - keep the part patching gentpl.py - restore it as a git-formatted patch - introduce the hunk about the generated .am file ] Signed-off-by: Yann E. MORIN --- gentpl.py | 2 1 1 0 +- grub-core/Makefile.in | 38 19 19 0 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/gentpl.py b/gentpl.py index 387588c05..c86550d4f 100644 --- a/gentpl.py +++ b/gentpl.py @@ -766,7 +766,7 @@ def image(defn, platform): if test x$(TARGET_APPLE_LINKER) = x1; then \ $(MACHO2IMG) $< $@; \ else \ - $(TARGET_OBJCOPY) $(""" + cname(defn) + """_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; \ + $(TARGET_OBJCOPY) $(""" + cname(defn) + """_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; \ fi """) diff --git a/grub-core/Makefile.core.am b/grub-core/Makefile.core.am index 387588c05..c86550d4f 100644 --- a/grub-core/Makefile.core.am +++ 2/grub-core/Makefile.core.am @@ -22897,7 +22897,7 @@ CLEANFILES += boot.img boot.img: boot.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -22918,7 +22918,7 @@ CLEANFILES += boot.img boot.img: boot.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -22939,7 +22939,7 @@ CLEANFILES += boot.img boot.img: boot.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -22960,7 +22960,7 @@ CLEANFILES += boot_hybrid.img boot_hybrid.img: boot_hybrid.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_hybrid_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_hybrid_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -22981,7 +22981,7 @@ CLEANFILES += cdboot.img cdboot.img: cdboot.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23002,7 +23002,7 @@ CLEANFILES += cdboot.img cdboot.img: cdboot.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23023,7 +23023,7 @@ CLEANFILES += pxeboot.img pxeboot.img: pxeboot.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(pxeboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(pxeboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23044,7 +23044,7 @@ CLEANFILES += diskboot.img diskboot.img: diskboot.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23065,7 +23065,7 @@ CLEANFILES += diskboot.img diskboot.img: diskboot.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23086,7 +23086,7 @@ CLEANFILES += lnxboot.img lnxboot.img: lnxboot.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lnxboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lnxboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23107,7 +23107,7 @@ CLEANFILES += xz_decompress.img xz_decompress.img: xz_decompress.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23128,7 +23128,7 @@ CLEANFILES += xz_decompress.img xz_decompress.img: xz_decompress.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23149,7 +23149,7 @@ CLEANFILES += xz_decompress.img xz_decompress.img: xz_decompress.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23170,7 +23170,7 @@ CLEANFILES += none_decompress.img none_decompress.img: none_decompress.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23191,7 +23191,7 @@ CLEANFILES += none_decompress.img none_decompress.img: none_decompress.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23212,7 +23212,7 @@ CLEANFILES += none_decompress.img none_decompress.img: none_decompress.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23233,7 +23233,7 @@ CLEANFILES += lzma_decompress.img lzma_decompress.img: lzma_decompress.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lzma_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lzma_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23254,7 +23254,7 @@ CLEANFILES += fwstart.img fwstart.img: fwstart.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif @@ -23275,7 +23275,7 @@ CLEANFILES += fwstart_fuloong2f.img fwstart_fuloong2f.img: fwstart_fuloong2f.image$(EXEEXT) - if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_fuloong2f_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi + if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_fuloong2f_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi endif diff --git a/grub-core/Makefile.in b/grub-core/Makefile.in index 387588c05..c86550d4f 100644 --- a/grub-core/Makefile.in +++ b/grub-core/Makefile.in @@ -46531,61 +46531,61 @@ @COND_riscv64_efi_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(TARGET_STRIP) -S -x $(kernel_exec) -o $@.bin $<; $(TARGET_OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -ed2022 -ed2016 -wd1106 -nu -nd $@.bin $@; rm -f $@.bin; elif test ! -z '$(TARGET_OBJ2ELF)'; then $(TARGET_STRIP) $(kernel_exec_STRIPFLAGS) -o $@.bin $< && $(TARGET_OBJ2ELF) $@.bin $@ || (rm -f $@; rm -f $@.bin; exit 1); rm -f $@.bin; else $(TARGET_STRIP) $(kernel_exec_STRIPFLAGS) -o $@ $<; fi @COND_i386_pc_TRUE@boot.img: boot.image$(EXEEXT) -@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_i386_qemu_TRUE@boot.img: boot.image$(EXEEXT) -@COND_i386_qemu_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_i386_qemu_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_sparc64_ieee1275_TRUE@boot.img: boot.image$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_sparc64_ieee1275_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_i386_pc_TRUE@boot_hybrid.img: boot_hybrid.image$(EXEEXT) -@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_hybrid_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_hybrid_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_i386_pc_TRUE@cdboot.img: cdboot.image$(EXEEXT) -@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_sparc64_ieee1275_TRUE@cdboot.img: cdboot.image$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_sparc64_ieee1275_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_i386_pc_TRUE@pxeboot.img: pxeboot.image$(EXEEXT) -@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(pxeboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(pxeboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_i386_pc_TRUE@diskboot.img: diskboot.image$(EXEEXT) -@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_sparc64_ieee1275_TRUE@diskboot.img: diskboot.image$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_sparc64_ieee1275_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_i386_pc_TRUE@lnxboot.img: lnxboot.image$(EXEEXT) -@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lnxboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lnxboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_mips_loongson_TRUE@xz_decompress.img: xz_decompress.image$(EXEEXT) -@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_mips_arc_TRUE@xz_decompress.img: xz_decompress.image$(EXEEXT) -@COND_mips_arc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_mips_arc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_mips_qemu_mips_TRUE@xz_decompress.img: xz_decompress.image$(EXEEXT) -@COND_mips_qemu_mips_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_mips_qemu_mips_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_mips_loongson_TRUE@none_decompress.img: none_decompress.image$(EXEEXT) -@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_mips_arc_TRUE@none_decompress.img: none_decompress.image$(EXEEXT) -@COND_mips_arc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_mips_arc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_mips_qemu_mips_TRUE@none_decompress.img: none_decompress.image$(EXEEXT) -@COND_mips_qemu_mips_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_mips_qemu_mips_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_i386_pc_TRUE@lzma_decompress.img: lzma_decompress.image$(EXEEXT) -@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lzma_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lzma_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_mips_loongson_TRUE@fwstart.img: fwstart.image$(EXEEXT) -@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_mips_loongson_TRUE@fwstart_fuloong2f.img: fwstart_fuloong2f.image$(EXEEXT) -@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_fuloong2f_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi +@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_fuloong2f_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi @COND_MAN_PAGES_TRUE@@COND_emu_TRUE@grub-emu.1: grub-emu @COND_MAN_PAGES_TRUE@@COND_emu_TRUE@ chmod a+x grub-emu ================================================ FILE: boot/grub2/0002-yylex-Make-lexer-fatal-errors-actually-be-fatal.patch ================================================ From a7ab0cc98fa89a3d5098c29cbe44bcd24b0a6454 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 15 Apr 2020 15:45:02 -0400 Subject: [PATCH] yylex: Make lexer fatal errors actually be fatal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When presented with a command that can't be tokenized to anything smaller than YYLMAX characters, the parser calls YY_FATAL_ERROR(errmsg), expecting that will stop further processing, as such: #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ if ( yyleng >= YYLMAX ) \ YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \ yy_flex_strncpy( yytext, yyg->yytext_ptr, yyleng + 1 , yyscanner); \ yyg->yy_c_buf_p = yy_cp; The code flex generates expects that YY_FATAL_ERROR() will either return for it or do some form of longjmp(), or handle the error in some way at least, and so the strncpy() call isn't in an "else" clause, and thus if YY_FATAL_ERROR() is *not* actually fatal, it does the call with the questionable limit, and predictable results ensue. Unfortunately, our implementation of YY_FATAL_ERROR() is: #define YY_FATAL_ERROR(msg) \ do { \ grub_printf (_("fatal error: %s\n"), _(msg)); \ } while (0) The same pattern exists in yyless(), and similar problems exist in users of YY_INPUT(), several places in the main parsing loop, yy_get_next_buffer(), yy_load_buffer_state(), yyensure_buffer_stack, yy_scan_buffer(), etc. All of these callers expect YY_FATAL_ERROR() to actually be fatal, and the things they do if it returns after calling it are wildly unsafe. Fixes: CVE-2020-10713 Signed-off-by: Peter Jones Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/script/yylex.l | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/script/yylex.l b/grub-core/script/yylex.l index 7b44c37b7..b7203c823 100644 --- a/grub-core/script/yylex.l +++ b/grub-core/script/yylex.l @@ -37,11 +37,11 @@ /* * As we don't have access to yyscanner, we cannot do much except to - * print the fatal error. + * print the fatal error and exit. */ #define YY_FATAL_ERROR(msg) \ do { \ - grub_printf (_("fatal error: %s\n"), _(msg)); \ + grub_fatal (_("fatal error: %s\n"), _(msg));\ } while (0) #define COPY(str, hint) \ -- 2.26.2 ================================================ FILE: boot/grub2/0003-safemath-Add-some-arithmetic-primitives-that-check-f.patch ================================================ From 782a4580a5e347793443aa8e9152db1bf4a0fff8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 15 Jun 2020 10:58:42 -0400 Subject: [PATCH] safemath: Add some arithmetic primitives that check for overflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds a new header, include/grub/safemath.h, that includes easy to use wrappers for __builtin_{add,sub,mul}_overflow() declared like: bool OP(a, b, res) where OP is grub_add, grub_sub or grub_mul. OP() returns true in the case where the operation would overflow and res is not modified. Otherwise, false is returned and the operation is executed. These arithmetic primitives require newer compiler versions. So, bump these requirements in the INSTALL file too. Signed-off-by: Peter Jones Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- INSTALL | 22 ++-------------------- include/grub/compiler.h | 8 ++++++++ include/grub/safemath.h | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 20 deletions(-) create mode 100644 include/grub/safemath.h diff --git a/INSTALL b/INSTALL index 8acb40902..dcb9b7d7b 100644 --- a/INSTALL +++ b/INSTALL @@ -11,27 +11,9 @@ GRUB depends on some software packages installed into your system. If you don't have any of them, please obtain and install them before configuring the GRUB. -* GCC 4.1.3 or later - Note: older versions may work but support is limited - - Experimental support for clang 3.3 or later (results in much bigger binaries) +* GCC 5.1.0 or later + Experimental support for clang 3.8.0 or later (results in much bigger binaries) for i386, x86_64, arm (including thumb), arm64, mips(el), powerpc, sparc64 - Note: clang 3.2 or later works for i386 and x86_64 targets but results in - much bigger binaries. - earlier versions not tested - Note: clang 3.2 or later works for arm - earlier versions not tested - Note: clang on arm64 is not supported due to - https://llvm.org/bugs/show_bug.cgi?id=26030 - Note: clang 3.3 or later works for mips(el) - earlier versions fail to generate .reginfo and hence gprel relocations - fail. - Note: clang 3.2 or later works for powerpc - earlier versions not tested - Note: clang 3.5 or later works for sparc64 - earlier versions return "error: unable to interface with target machine" - Note: clang has no support for ia64 and hence you can't compile GRUB - for ia64 with clang * GNU Make * GNU Bison 2.3 or later * GNU gettext 0.17 or later diff --git a/include/grub/compiler.h b/include/grub/compiler.h index c9e1d7a73..8f3be3ae7 100644 --- a/include/grub/compiler.h +++ b/include/grub/compiler.h @@ -48,4 +48,12 @@ # define WARN_UNUSED_RESULT #endif +#if defined(__clang__) && defined(__clang_major__) && defined(__clang_minor__) +# define CLANG_PREREQ(maj,min) \ + ((__clang_major__ > (maj)) || \ + (__clang_major__ == (maj) && __clang_minor__ >= (min))) +#else +# define CLANG_PREREQ(maj,min) 0 +#endif + #endif /* ! GRUB_COMPILER_HEADER */ diff --git a/include/grub/safemath.h b/include/grub/safemath.h new file mode 100644 index 000000000..c17b89bba --- /dev/null +++ b/include/grub/safemath.h @@ -0,0 +1,37 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * GRUB 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. + * + * GRUB 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 GRUB. If not, see . + * + * Arithmetic operations that protect against overflow. + */ + +#ifndef GRUB_SAFEMATH_H +#define GRUB_SAFEMATH_H 1 + +#include + +/* These appear in gcc 5.1 and clang 3.8. */ +#if GNUC_PREREQ(5, 1) || CLANG_PREREQ(3, 8) + +#define grub_add(a, b, res) __builtin_add_overflow(a, b, res) +#define grub_sub(a, b, res) __builtin_sub_overflow(a, b, res) +#define grub_mul(a, b, res) __builtin_mul_overflow(a, b, res) + +#else +#error gcc 5.1 or newer or clang 3.8 or newer is required +#endif + +#endif /* GRUB_SAFEMATH_H */ -- 2.26.2 ================================================ FILE: boot/grub2/0004-calloc-Make-sure-we-always-have-an-overflow-checking.patch ================================================ From 5775eb40862b67468ced816e6d7560dbe22a3670 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 15 Jun 2020 12:15:29 -0400 Subject: [PATCH] calloc: Make sure we always have an overflow-checking calloc() available MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This tries to make sure that everywhere in this source tree, we always have an appropriate version of calloc() (i.e. grub_calloc(), xcalloc(), etc.) available, and that they all safely check for overflow and return NULL when it would occur. Signed-off-by: Peter Jones Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/emu/misc.c | 12 +++++++++ grub-core/kern/emu/mm.c | 10 ++++++++ grub-core/kern/mm.c | 40 ++++++++++++++++++++++++++++++ grub-core/lib/libgcrypt_wrap/mem.c | 11 ++++++-- grub-core/lib/posix_wrap/stdlib.h | 8 +++++- include/grub/emu/misc.h | 1 + include/grub/mm.h | 6 +++++ 7 files changed, 85 insertions(+), 3 deletions(-) diff --git a/grub-core/kern/emu/misc.c b/grub-core/kern/emu/misc.c index 65db79baa..dfd8a8ec4 100644 --- a/grub-core/kern/emu/misc.c +++ b/grub-core/kern/emu/misc.c @@ -85,6 +85,18 @@ grub_util_error (const char *fmt, ...) exit (1); } +void * +xcalloc (grub_size_t nmemb, grub_size_t size) +{ + void *p; + + p = calloc (nmemb, size); + if (!p) + grub_util_error ("%s", _("out of memory")); + + return p; +} + void * xmalloc (grub_size_t size) { diff --git a/grub-core/kern/emu/mm.c b/grub-core/kern/emu/mm.c index f262e95e3..145b01d37 100644 --- a/grub-core/kern/emu/mm.c +++ b/grub-core/kern/emu/mm.c @@ -25,6 +25,16 @@ #include #include +void * +grub_calloc (grub_size_t nmemb, grub_size_t size) +{ + void *ret; + ret = calloc (nmemb, size); + if (!ret) + grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); + return ret; +} + void * grub_malloc (grub_size_t size) { diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c index ee88ff611..f2822a836 100644 --- a/grub-core/kern/mm.c +++ b/grub-core/kern/mm.c @@ -67,8 +67,10 @@ #include #include #include +#include #ifdef MM_DEBUG +# undef grub_calloc # undef grub_malloc # undef grub_zalloc # undef grub_realloc @@ -375,6 +377,30 @@ grub_memalign (grub_size_t align, grub_size_t size) return 0; } +/* + * Allocate NMEMB instances of SIZE bytes and return the pointer, or error on + * integer overflow. + */ +void * +grub_calloc (grub_size_t nmemb, grub_size_t size) +{ + void *ret; + grub_size_t sz = 0; + + if (grub_mul (nmemb, size, &sz)) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + return NULL; + } + + ret = grub_memalign (0, sz); + if (!ret) + return NULL; + + grub_memset (ret, 0, sz); + return ret; +} + /* Allocate SIZE bytes and return the pointer. */ void * grub_malloc (grub_size_t size) @@ -561,6 +587,20 @@ grub_mm_dump (unsigned lineno) grub_printf ("\n"); } +void * +grub_debug_calloc (const char *file, int line, grub_size_t nmemb, grub_size_t size) +{ + void *ptr; + + if (grub_mm_debug) + grub_printf ("%s:%d: calloc (0x%" PRIxGRUB_SIZE ", 0x%" PRIxGRUB_SIZE ") = ", + file, line, size); + ptr = grub_calloc (nmemb, size); + if (grub_mm_debug) + grub_printf ("%p\n", ptr); + return ptr; +} + void * grub_debug_malloc (const char *file, int line, grub_size_t size) { diff --git a/grub-core/lib/libgcrypt_wrap/mem.c b/grub-core/lib/libgcrypt_wrap/mem.c index beeb661a3..74c6eafe5 100644 --- a/grub-core/lib/libgcrypt_wrap/mem.c +++ b/grub-core/lib/libgcrypt_wrap/mem.c @@ -4,6 +4,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -36,7 +37,10 @@ void * gcry_xcalloc (size_t n, size_t m) { void *ret; - ret = grub_zalloc (n * m); + size_t sz; + if (grub_mul (n, m, &sz)) + grub_fatal ("gcry_xcalloc would overflow"); + ret = grub_zalloc (sz); if (!ret) grub_fatal ("gcry_xcalloc failed"); return ret; @@ -56,7 +60,10 @@ void * gcry_xcalloc_secure (size_t n, size_t m) { void *ret; - ret = grub_zalloc (n * m); + size_t sz; + if (grub_mul (n, m, &sz)) + grub_fatal ("gcry_xcalloc would overflow"); + ret = grub_zalloc (sz); if (!ret) grub_fatal ("gcry_xcalloc failed"); return ret; diff --git a/grub-core/lib/posix_wrap/stdlib.h b/grub-core/lib/posix_wrap/stdlib.h index 3b46f47ff..7a8d385e9 100644 --- a/grub-core/lib/posix_wrap/stdlib.h +++ b/grub-core/lib/posix_wrap/stdlib.h @@ -21,6 +21,7 @@ #include #include +#include static inline void free (void *ptr) @@ -37,7 +38,12 @@ malloc (grub_size_t size) static inline void * calloc (grub_size_t size, grub_size_t nelem) { - return grub_zalloc (size * nelem); + grub_size_t sz; + + if (grub_mul (size, nelem, &sz)) + return NULL; + + return grub_zalloc (sz); } static inline void * diff --git a/include/grub/emu/misc.h b/include/grub/emu/misc.h index ce464cfd0..ff9c48a64 100644 --- a/include/grub/emu/misc.h +++ b/include/grub/emu/misc.h @@ -47,6 +47,7 @@ grub_util_device_is_mapped (const char *dev); #define GRUB_HOST_PRIuLONG_LONG "llu" #define GRUB_HOST_PRIxLONG_LONG "llx" +void * EXPORT_FUNC(xcalloc) (grub_size_t nmemb, grub_size_t size) WARN_UNUSED_RESULT; void * EXPORT_FUNC(xmalloc) (grub_size_t size) WARN_UNUSED_RESULT; void * EXPORT_FUNC(xrealloc) (void *ptr, grub_size_t size) WARN_UNUSED_RESULT; char * EXPORT_FUNC(xstrdup) (const char *str) WARN_UNUSED_RESULT; diff --git a/include/grub/mm.h b/include/grub/mm.h index 28e2e53eb..9c38dd3ca 100644 --- a/include/grub/mm.h +++ b/include/grub/mm.h @@ -29,6 +29,7 @@ #endif void grub_mm_init_region (void *addr, grub_size_t size); +void *EXPORT_FUNC(grub_calloc) (grub_size_t nmemb, grub_size_t size); void *EXPORT_FUNC(grub_malloc) (grub_size_t size); void *EXPORT_FUNC(grub_zalloc) (grub_size_t size); void EXPORT_FUNC(grub_free) (void *ptr); @@ -48,6 +49,9 @@ extern int EXPORT_VAR(grub_mm_debug); void grub_mm_dump_free (void); void grub_mm_dump (unsigned lineno); +#define grub_calloc(nmemb, size) \ + grub_debug_calloc (GRUB_FILE, __LINE__, nmemb, size) + #define grub_malloc(size) \ grub_debug_malloc (GRUB_FILE, __LINE__, size) @@ -63,6 +67,8 @@ void grub_mm_dump (unsigned lineno); #define grub_free(ptr) \ grub_debug_free (GRUB_FILE, __LINE__, ptr) +void *EXPORT_FUNC(grub_debug_calloc) (const char *file, int line, + grub_size_t nmemb, grub_size_t size); void *EXPORT_FUNC(grub_debug_malloc) (const char *file, int line, grub_size_t size); void *EXPORT_FUNC(grub_debug_zalloc) (const char *file, int line, -- 2.26.2 ================================================ FILE: boot/grub2/0005-calloc-Use-calloc-at-most-places.patch ================================================ From 8185711241d73931269f402bb6799f7e2c58f04b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 15 Jun 2020 12:26:01 -0400 Subject: [PATCH] calloc: Use calloc() at most places MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This modifies most of the places we do some form of: X = malloc(Y * Z); to use calloc(Y, Z) instead. Among other issues, this fixes: - allocation of integer overflow in grub_png_decode_image_header() reported by Chris Coulson, - allocation of integer overflow in luks_recover_key() reported by Chris Coulson, - allocation of integer overflow in grub_lvm_detect() reported by Chris Coulson. Fixes: CVE-2020-14308 Signed-off-by: Peter Jones Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/bus/usb/usbhub.c | 8 ++++---- grub-core/commands/efi/lsefisystab.c | 3 ++- grub-core/commands/legacycfg.c | 6 +++--- grub-core/commands/menuentry.c | 2 +- grub-core/commands/nativedisk.c | 2 +- grub-core/commands/parttool.c | 12 +++++++++--- grub-core/commands/regexp.c | 2 +- grub-core/commands/search_wrap.c | 2 +- grub-core/disk/diskfilter.c | 4 ++-- grub-core/disk/ieee1275/ofdisk.c | 2 +- grub-core/disk/ldm.c | 14 +++++++------- grub-core/disk/luks.c | 2 +- grub-core/disk/lvm.c | 8 ++++---- grub-core/disk/xen/xendisk.c | 2 +- grub-core/efiemu/loadcore.c | 2 +- grub-core/efiemu/mm.c | 6 +++--- grub-core/font/font.c | 3 +-- grub-core/fs/affs.c | 6 +++--- grub-core/fs/btrfs.c | 6 +++--- grub-core/fs/hfs.c | 2 +- grub-core/fs/hfsplus.c | 6 +++--- grub-core/fs/iso9660.c | 2 +- grub-core/fs/ntfs.c | 4 ++-- grub-core/fs/sfs.c | 2 +- grub-core/fs/tar.c | 2 +- grub-core/fs/udf.c | 4 ++-- grub-core/fs/zfs/zfs.c | 4 ++-- grub-core/gfxmenu/gui_string_util.c | 2 +- grub-core/gfxmenu/widget-box.c | 4 ++-- grub-core/io/gzio.c | 2 +- grub-core/kern/efi/efi.c | 6 +++--- grub-core/kern/emu/hostdisk.c | 2 +- grub-core/kern/fs.c | 2 +- grub-core/kern/misc.c | 2 +- grub-core/kern/parser.c | 2 +- grub-core/kern/uboot/uboot.c | 2 +- grub-core/lib/libgcrypt/cipher/ac.c | 8 ++++---- grub-core/lib/libgcrypt/cipher/primegen.c | 4 ++-- grub-core/lib/libgcrypt/cipher/pubkey.c | 4 ++-- grub-core/lib/priority_queue.c | 2 +- grub-core/lib/reed_solomon.c | 7 +++---- grub-core/lib/relocator.c | 10 +++++----- grub-core/lib/zstd/fse_decompress.c | 2 +- grub-core/loader/arm/linux.c | 2 +- grub-core/loader/efi/chainloader.c | 2 +- grub-core/loader/i386/bsdXX.c | 2 +- grub-core/loader/i386/xnu.c | 4 ++-- grub-core/loader/macho.c | 2 +- grub-core/loader/multiboot_elfxx.c | 2 +- grub-core/loader/xnu.c | 2 +- grub-core/mmap/mmap.c | 4 ++-- grub-core/net/bootp.c | 2 +- grub-core/net/dns.c | 10 +++++----- grub-core/net/net.c | 4 ++-- grub-core/normal/charset.c | 10 +++++----- grub-core/normal/cmdline.c | 14 +++++++------- grub-core/normal/menu_entry.c | 14 +++++++------- grub-core/normal/menu_text.c | 4 ++-- grub-core/normal/term.c | 4 ++-- grub-core/osdep/linux/getroot.c | 6 +++--- grub-core/osdep/unix/config.c | 2 +- grub-core/osdep/windows/getroot.c | 2 +- grub-core/osdep/windows/hostdisk.c | 4 ++-- grub-core/osdep/windows/init.c | 2 +- grub-core/osdep/windows/platform.c | 4 ++-- grub-core/osdep/windows/relpath.c | 2 +- grub-core/partmap/gpt.c | 2 +- grub-core/partmap/msdos.c | 2 +- grub-core/script/execute.c | 2 +- grub-core/tests/fake_input.c | 2 +- grub-core/tests/video_checksum.c | 6 +++--- grub-core/video/capture.c | 2 +- grub-core/video/emu/sdl.c | 2 +- grub-core/video/i386/pc/vga.c | 2 +- grub-core/video/readers/png.c | 2 +- include/grub/unicode.h | 4 ++-- util/getroot.c | 2 +- util/grub-file.c | 2 +- util/grub-fstest.c | 4 ++-- util/grub-install-common.c | 2 +- util/grub-install.c | 4 ++-- util/grub-mkimagexx.c | 6 ++---- util/grub-mkrescue.c | 4 ++-- util/grub-mkstandalone.c | 2 +- util/grub-pe2elf.c | 12 +++++------- util/grub-probe.c | 4 ++-- 86 files changed, 176 insertions(+), 175 deletions(-) diff --git a/grub-core/bus/usb/usbhub.c b/grub-core/bus/usb/usbhub.c index 34a7ff1b5..a06cce302 100644 --- a/grub-core/bus/usb/usbhub.c +++ b/grub-core/bus/usb/usbhub.c @@ -149,8 +149,8 @@ grub_usb_add_hub (grub_usb_device_t dev) grub_usb_set_configuration (dev, 1); dev->nports = hubdesc.portcnt; - dev->children = grub_zalloc (hubdesc.portcnt * sizeof (dev->children[0])); - dev->ports = grub_zalloc (dev->nports * sizeof (dev->ports[0])); + dev->children = grub_calloc (hubdesc.portcnt, sizeof (dev->children[0])); + dev->ports = grub_calloc (dev->nports, sizeof (dev->ports[0])); if (!dev->children || !dev->ports) { grub_free (dev->children); @@ -268,8 +268,8 @@ grub_usb_controller_dev_register_iter (grub_usb_controller_t controller, void *d /* Query the number of ports the root Hub has. */ hub->nports = controller->dev->hubports (controller); - hub->devices = grub_zalloc (sizeof (hub->devices[0]) * hub->nports); - hub->ports = grub_zalloc (sizeof (hub->ports[0]) * hub->nports); + hub->devices = grub_calloc (hub->nports, sizeof (hub->devices[0])); + hub->ports = grub_calloc (hub->nports, sizeof (hub->ports[0])); if (!hub->devices || !hub->ports) { grub_free (hub->devices); diff --git a/grub-core/commands/efi/lsefisystab.c b/grub-core/commands/efi/lsefisystab.c index df1030221..cd81507f5 100644 --- a/grub-core/commands/efi/lsefisystab.c +++ b/grub-core/commands/efi/lsefisystab.c @@ -71,7 +71,8 @@ grub_cmd_lsefisystab (struct grub_command *cmd __attribute__ ((unused)), grub_printf ("Vendor: "); for (vendor_utf16 = st->firmware_vendor; *vendor_utf16; vendor_utf16++); - vendor = grub_malloc (4 * (vendor_utf16 - st->firmware_vendor) + 1); + /* Allocate extra 3 bytes to simplify math. */ + vendor = grub_calloc (4, vendor_utf16 - st->firmware_vendor + 1); if (!vendor) return grub_errno; *grub_utf16_to_utf8 ((grub_uint8_t *) vendor, st->firmware_vendor, diff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c index db7a8f002..5e3ec0d5e 100644 --- a/grub-core/commands/legacycfg.c +++ b/grub-core/commands/legacycfg.c @@ -314,7 +314,7 @@ grub_cmd_legacy_kernel (struct grub_command *mycmd __attribute__ ((unused)), if (argc < 2) return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); - cutargs = grub_malloc (sizeof (cutargs[0]) * (argc - 1)); + cutargs = grub_calloc (argc - 1, sizeof (cutargs[0])); if (!cutargs) return grub_errno; cutargc = argc - 1; @@ -436,7 +436,7 @@ grub_cmd_legacy_kernel (struct grub_command *mycmd __attribute__ ((unused)), { char rbuf[3] = "-r"; bsdargc = cutargc + 2; - bsdargs = grub_malloc (sizeof (bsdargs[0]) * bsdargc); + bsdargs = grub_calloc (bsdargc, sizeof (bsdargs[0])); if (!bsdargs) { err = grub_errno; @@ -559,7 +559,7 @@ grub_cmd_legacy_initrdnounzip (struct grub_command *mycmd __attribute__ ((unused return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("can't find command `%s'"), "module"); - newargs = grub_malloc ((argc + 1) * sizeof (newargs[0])); + newargs = grub_calloc (argc + 1, sizeof (newargs[0])); if (!newargs) return grub_errno; grub_memcpy (newargs + 1, args, argc * sizeof (newargs[0])); diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c index 2c5363da7..9164df744 100644 --- a/grub-core/commands/menuentry.c +++ b/grub-core/commands/menuentry.c @@ -154,7 +154,7 @@ grub_normal_add_menu_entry (int argc, const char **args, goto fail; /* Save argc, args to pass as parameters to block arg later. */ - menu_args = grub_malloc (sizeof (char*) * (argc + 1)); + menu_args = grub_calloc (argc + 1, sizeof (char *)); if (! menu_args) goto fail; diff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c index 699447d11..7c8f97f6a 100644 --- a/grub-core/commands/nativedisk.c +++ b/grub-core/commands/nativedisk.c @@ -195,7 +195,7 @@ grub_cmd_nativedisk (grub_command_t cmd __attribute__ ((unused)), else path_prefix = prefix; - mods = grub_malloc (argc * sizeof (mods[0])); + mods = grub_calloc (argc, sizeof (mods[0])); if (!mods) return grub_errno; diff --git a/grub-core/commands/parttool.c b/grub-core/commands/parttool.c index 22b46b187..051e31320 100644 --- a/grub-core/commands/parttool.c +++ b/grub-core/commands/parttool.c @@ -59,7 +59,13 @@ grub_parttool_register(const char *part_name, for (nargs = 0; args[nargs].name != 0; nargs++); cur->nargs = nargs; cur->args = (struct grub_parttool_argdesc *) - grub_malloc ((nargs + 1) * sizeof (struct grub_parttool_argdesc)); + grub_calloc (nargs + 1, sizeof (struct grub_parttool_argdesc)); + if (!cur->args) + { + grub_free (cur); + curhandle--; + return -1; + } grub_memcpy (cur->args, args, (nargs + 1) * sizeof (struct grub_parttool_argdesc)); @@ -257,7 +263,7 @@ grub_cmd_parttool (grub_command_t cmd __attribute__ ((unused)), return err; } - parsed = (int *) grub_zalloc (argc * sizeof (int)); + parsed = (int *) grub_calloc (argc, sizeof (int)); for (i = 1; i < argc; i++) if (! parsed[i]) @@ -290,7 +296,7 @@ grub_cmd_parttool (grub_command_t cmd __attribute__ ((unused)), } ptool = cur; pargs = (struct grub_parttool_args *) - grub_zalloc (ptool->nargs * sizeof (struct grub_parttool_args)); + grub_calloc (ptool->nargs, sizeof (struct grub_parttool_args)); for (j = i; j < argc; j++) if (! parsed[j]) { diff --git a/grub-core/commands/regexp.c b/grub-core/commands/regexp.c index f00b184c8..4019164f3 100644 --- a/grub-core/commands/regexp.c +++ b/grub-core/commands/regexp.c @@ -116,7 +116,7 @@ grub_cmd_regexp (grub_extcmd_context_t ctxt, int argc, char **args) if (ret) goto fail; - matches = grub_zalloc (sizeof (*matches) * (regex.re_nsub + 1)); + matches = grub_calloc (regex.re_nsub + 1, sizeof (*matches)); if (! matches) goto fail; diff --git a/grub-core/commands/search_wrap.c b/grub-core/commands/search_wrap.c index d7fd26b94..47fc8eb99 100644 --- a/grub-core/commands/search_wrap.c +++ b/grub-core/commands/search_wrap.c @@ -122,7 +122,7 @@ grub_cmd_search (grub_extcmd_context_t ctxt, int argc, char **args) for (i = 0; state[SEARCH_HINT_BAREMETAL].args[i]; i++) nhints++; - hints = grub_malloc (sizeof (hints[0]) * nhints); + hints = grub_calloc (nhints, sizeof (hints[0])); if (!hints) return grub_errno; j = 0; diff --git a/grub-core/disk/diskfilter.c b/grub-core/disk/diskfilter.c index c3b578acf..68ca9e0be 100644 --- a/grub-core/disk/diskfilter.c +++ b/grub-core/disk/diskfilter.c @@ -1134,7 +1134,7 @@ grub_diskfilter_make_raid (grub_size_t uuidlen, char *uuid, int nmemb, array->lvs->segments->node_count = nmemb; array->lvs->segments->raid_member_size = disk_size; array->lvs->segments->nodes - = grub_zalloc (nmemb * sizeof (array->lvs->segments->nodes[0])); + = grub_calloc (nmemb, sizeof (array->lvs->segments->nodes[0])); array->lvs->segments->stripe_size = stripe_size; for (i = 0; i < nmemb; i++) { @@ -1226,7 +1226,7 @@ insert_array (grub_disk_t disk, const struct grub_diskfilter_pv_id *id, grub_partition_t p; for (p = disk->partition; p; p = p->parent) s++; - pv->partmaps = xmalloc (s * sizeof (pv->partmaps[0])); + pv->partmaps = xcalloc (s, sizeof (pv->partmaps[0])); s = 0; for (p = disk->partition; p; p = p->parent) pv->partmaps[s++] = xstrdup (p->partmap->name); diff --git a/grub-core/disk/ieee1275/ofdisk.c b/grub-core/disk/ieee1275/ofdisk.c index f73257e66..03674cb47 100644 --- a/grub-core/disk/ieee1275/ofdisk.c +++ b/grub-core/disk/ieee1275/ofdisk.c @@ -297,7 +297,7 @@ dev_iterate (const struct grub_ieee1275_devalias *alias) /* Power machines documentation specify 672 as maximum SAS disks in one system. Using a slightly larger value to be safe. */ table_size = 768; - table = grub_malloc (table_size * sizeof (grub_uint64_t)); + table = grub_calloc (table_size, sizeof (grub_uint64_t)); if (!table) { diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c index 2a22d2d6c..e6323701a 100644 --- a/grub-core/disk/ldm.c +++ b/grub-core/disk/ldm.c @@ -323,8 +323,8 @@ make_vg (grub_disk_t disk, lv->segments->type = GRUB_DISKFILTER_MIRROR; lv->segments->node_count = 0; lv->segments->node_alloc = 8; - lv->segments->nodes = grub_zalloc (sizeof (*lv->segments->nodes) - * lv->segments->node_alloc); + lv->segments->nodes = grub_calloc (lv->segments->node_alloc, + sizeof (*lv->segments->nodes)); if (!lv->segments->nodes) goto fail2; ptr = vblk[i].dynamic; @@ -543,8 +543,8 @@ make_vg (grub_disk_t disk, { comp->segment_alloc = 8; comp->segment_count = 0; - comp->segments = grub_malloc (sizeof (*comp->segments) - * comp->segment_alloc); + comp->segments = grub_calloc (comp->segment_alloc, + sizeof (*comp->segments)); if (!comp->segments) goto fail2; } @@ -590,8 +590,8 @@ make_vg (grub_disk_t disk, } comp->segments->node_count = read_int (ptr + 1, *ptr); comp->segments->node_alloc = comp->segments->node_count; - comp->segments->nodes = grub_zalloc (sizeof (*comp->segments->nodes) - * comp->segments->node_alloc); + comp->segments->nodes = grub_calloc (comp->segments->node_alloc, + sizeof (*comp->segments->nodes)); if (!lv->segments->nodes) goto fail2; } @@ -1017,7 +1017,7 @@ grub_util_ldm_embed (struct grub_disk *disk, unsigned int *nsectors, *nsectors = lv->size; if (*nsectors > max_nsectors) *nsectors = max_nsectors; - *sectors = grub_malloc (*nsectors * sizeof (**sectors)); + *sectors = grub_calloc (*nsectors, sizeof (**sectors)); if (!*sectors) return grub_errno; for (i = 0; i < *nsectors; i++) diff --git a/grub-core/disk/luks.c b/grub-core/disk/luks.c index 86c50c612..18b3a8bb1 100644 --- a/grub-core/disk/luks.c +++ b/grub-core/disk/luks.c @@ -336,7 +336,7 @@ luks_recover_key (grub_disk_t source, && grub_be_to_cpu32 (header.keyblock[i].stripes) > max_stripes) max_stripes = grub_be_to_cpu32 (header.keyblock[i].stripes); - split_key = grub_malloc (keysize * max_stripes); + split_key = grub_calloc (keysize, max_stripes); if (!split_key) return grub_errno; diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c index 7b265c780..d1df640b3 100644 --- a/grub-core/disk/lvm.c +++ b/grub-core/disk/lvm.c @@ -173,7 +173,7 @@ grub_lvm_detect (grub_disk_t disk, first one. */ /* Allocate buffer space for the circular worst-case scenario. */ - metadatabuf = grub_malloc (2 * mda_size); + metadatabuf = grub_calloc (2, mda_size); if (! metadatabuf) goto fail; @@ -426,7 +426,7 @@ grub_lvm_detect (grub_disk_t disk, #endif goto lvs_fail; } - lv->segments = grub_zalloc (sizeof (*seg) * lv->segment_count); + lv->segments = grub_calloc (lv->segment_count, sizeof (*seg)); seg = lv->segments; for (i = 0; i < lv->segment_count; i++) @@ -483,8 +483,8 @@ grub_lvm_detect (grub_disk_t disk, if (seg->node_count != 1) seg->stripe_size = grub_lvm_getvalue (&p, "stripe_size = "); - seg->nodes = grub_zalloc (sizeof (*stripe) - * seg->node_count); + seg->nodes = grub_calloc (seg->node_count, + sizeof (*stripe)); stripe = seg->nodes; p = grub_strstr (p, "stripes = ["); diff --git a/grub-core/disk/xen/xendisk.c b/grub-core/disk/xen/xendisk.c index 48476cbbf..d6612eebd 100644 --- a/grub-core/disk/xen/xendisk.c +++ b/grub-core/disk/xen/xendisk.c @@ -426,7 +426,7 @@ grub_xendisk_init (void) if (!ctr) return; - virtdisks = grub_malloc (ctr * sizeof (virtdisks[0])); + virtdisks = grub_calloc (ctr, sizeof (virtdisks[0])); if (!virtdisks) return; if (grub_xenstore_dir ("device/vbd", fill, &ctr)) diff --git a/grub-core/efiemu/loadcore.c b/grub-core/efiemu/loadcore.c index 44085ef81..2b924623f 100644 --- a/grub-core/efiemu/loadcore.c +++ b/grub-core/efiemu/loadcore.c @@ -201,7 +201,7 @@ grub_efiemu_count_symbols (const Elf_Ehdr *e) grub_efiemu_nelfsyms = (unsigned) s->sh_size / (unsigned) s->sh_entsize; grub_efiemu_elfsyms = (struct grub_efiemu_elf_sym *) - grub_malloc (sizeof (struct grub_efiemu_elf_sym) * grub_efiemu_nelfsyms); + grub_calloc (grub_efiemu_nelfsyms, sizeof (struct grub_efiemu_elf_sym)); /* Relocators */ for (i = 0, s = (Elf_Shdr *) ((char *) e + e->e_shoff); diff --git a/grub-core/efiemu/mm.c b/grub-core/efiemu/mm.c index 52a032f7b..9b8e0d0ad 100644 --- a/grub-core/efiemu/mm.c +++ b/grub-core/efiemu/mm.c @@ -554,11 +554,11 @@ grub_efiemu_mmap_sort_and_uniq (void) /* Initialize variables*/ grub_memset (present, 0, sizeof (int) * GRUB_EFI_MAX_MEMORY_TYPE); scanline_events = (struct grub_efiemu_mmap_scan *) - grub_malloc (sizeof (struct grub_efiemu_mmap_scan) * 2 * mmap_num); + grub_calloc (mmap_num, sizeof (struct grub_efiemu_mmap_scan) * 2); /* Number of chunks can't increase more than by factor of 2 */ result = (grub_efi_memory_descriptor_t *) - grub_malloc (sizeof (grub_efi_memory_descriptor_t) * 2 * mmap_num); + grub_calloc (mmap_num, sizeof (grub_efi_memory_descriptor_t) * 2); if (!result || !scanline_events) { grub_free (result); @@ -660,7 +660,7 @@ grub_efiemu_mm_do_alloc (void) /* Preallocate mmap */ efiemu_mmap = (grub_efi_memory_descriptor_t *) - grub_malloc (mmap_reserved_size * sizeof (grub_efi_memory_descriptor_t)); + grub_calloc (mmap_reserved_size, sizeof (grub_efi_memory_descriptor_t)); if (!efiemu_mmap) { grub_efiemu_unload (); diff --git a/grub-core/font/font.c b/grub-core/font/font.c index 85a292557..8e118b315 100644 --- a/grub-core/font/font.c +++ b/grub-core/font/font.c @@ -293,8 +293,7 @@ load_font_index (grub_file_t file, grub_uint32_t sect_length, struct font->num_chars = sect_length / FONT_CHAR_INDEX_ENTRY_SIZE; /* Allocate the character index array. */ - font->char_index = grub_malloc (font->num_chars - * sizeof (struct char_index_entry)); + font->char_index = grub_calloc (font->num_chars, sizeof (struct char_index_entry)); if (!font->char_index) return 1; font->bmp_idx = grub_malloc (0x10000 * sizeof (grub_uint16_t)); diff --git a/grub-core/fs/affs.c b/grub-core/fs/affs.c index 6b6a2bc91..220b3712f 100644 --- a/grub-core/fs/affs.c +++ b/grub-core/fs/affs.c @@ -301,7 +301,7 @@ grub_affs_read_symlink (grub_fshelp_node_t node) return 0; } latin1[symlink_size] = 0; - utf8 = grub_malloc (symlink_size * GRUB_MAX_UTF8_PER_LATIN1 + 1); + utf8 = grub_calloc (GRUB_MAX_UTF8_PER_LATIN1 + 1, symlink_size); if (!utf8) { grub_free (latin1); @@ -422,7 +422,7 @@ grub_affs_iterate_dir (grub_fshelp_node_t dir, return 1; } - hashtable = grub_zalloc (data->htsize * sizeof (*hashtable)); + hashtable = grub_calloc (data->htsize, sizeof (*hashtable)); if (!hashtable) return 1; @@ -628,7 +628,7 @@ grub_affs_label (grub_device_t device, char **label) len = file.namelen; if (len > sizeof (file.name)) len = sizeof (file.name); - *label = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); + *label = grub_calloc (GRUB_MAX_UTF8_PER_LATIN1 + 1, len); if (*label) *grub_latin1_to_utf8 ((grub_uint8_t *) *label, file.name, len) = '\0'; } diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c index 48bd3d04a..11272efc1 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -413,7 +413,7 @@ lower_bound (struct grub_btrfs_data *data, { desc->allocated = 16; desc->depth = 0; - desc->data = grub_malloc (sizeof (desc->data[0]) * desc->allocated); + desc->data = grub_calloc (desc->allocated, sizeof (desc->data[0])); if (!desc->data) return grub_errno; } @@ -752,7 +752,7 @@ raid56_read_retry (struct grub_btrfs_data *data, grub_err_t ret = GRUB_ERR_OUT_OF_MEMORY; grub_uint64_t i, failed_devices; - buffers = grub_zalloc (sizeof(*buffers) * nstripes); + buffers = grub_calloc (nstripes, sizeof (*buffers)); if (!buffers) goto cleanup; @@ -2160,7 +2160,7 @@ grub_btrfs_embed (grub_device_t device __attribute__ ((unused)), *nsectors = 64 * 2 - 1; if (*nsectors > max_nsectors) *nsectors = max_nsectors; - *sectors = grub_malloc (*nsectors * sizeof (**sectors)); + *sectors = grub_calloc (*nsectors, sizeof (**sectors)); if (!*sectors) return grub_errno; for (i = 0; i < *nsectors; i++) diff --git a/grub-core/fs/hfs.c b/grub-core/fs/hfs.c index ac0a40990..3fe842b4d 100644 --- a/grub-core/fs/hfs.c +++ b/grub-core/fs/hfs.c @@ -1360,7 +1360,7 @@ grub_hfs_label (grub_device_t device, char **label) grub_size_t len = data->sblock.volname[0]; if (len > sizeof (data->sblock.volname) - 1) len = sizeof (data->sblock.volname) - 1; - *label = grub_malloc (len * MAX_UTF8_PER_MAC_ROMAN + 1); + *label = grub_calloc (MAX_UTF8_PER_MAC_ROMAN + 1, len); if (*label) macroman_to_utf8 (*label, data->sblock.volname + 1, len + 1, 0); diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c index 54786bb1c..dae43becc 100644 --- a/grub-core/fs/hfsplus.c +++ b/grub-core/fs/hfsplus.c @@ -720,7 +720,7 @@ list_nodes (void *record, void *hook_arg) if (! filename) return 0; - keyname = grub_malloc (grub_be_to_cpu16 (catkey->namelen) * sizeof (*keyname)); + keyname = grub_calloc (grub_be_to_cpu16 (catkey->namelen), sizeof (*keyname)); if (!keyname) { grub_free (filename); @@ -1007,7 +1007,7 @@ grub_hfsplus_label (grub_device_t device, char **label) grub_hfsplus_btree_recptr (&data->catalog_tree, node, ptr); label_len = grub_be_to_cpu16 (catkey->namelen); - label_name = grub_malloc (label_len * sizeof (*label_name)); + label_name = grub_calloc (label_len, sizeof (*label_name)); if (!label_name) { grub_free (node); @@ -1029,7 +1029,7 @@ grub_hfsplus_label (grub_device_t device, char **label) } } - *label = grub_malloc (label_len * GRUB_MAX_UTF8_PER_UTF16 + 1); + *label = grub_calloc (label_len, GRUB_MAX_UTF8_PER_UTF16 + 1); if (! *label) { grub_free (label_name); diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c index 49c0c632b..4f1b52a55 100644 --- a/grub-core/fs/iso9660.c +++ b/grub-core/fs/iso9660.c @@ -331,7 +331,7 @@ grub_iso9660_convert_string (grub_uint8_t *us, int len) int i; grub_uint16_t t[MAX_NAMELEN / 2 + 1]; - p = grub_malloc (len * GRUB_MAX_UTF8_PER_UTF16 + 1); + p = grub_calloc (len, GRUB_MAX_UTF8_PER_UTF16 + 1); if (! p) return NULL; diff --git a/grub-core/fs/ntfs.c b/grub-core/fs/ntfs.c index fc4e1f678..2f34f76da 100644 --- a/grub-core/fs/ntfs.c +++ b/grub-core/fs/ntfs.c @@ -556,8 +556,8 @@ get_utf8 (grub_uint8_t *in, grub_size_t len) grub_uint16_t *tmp; grub_size_t i; - buf = grub_malloc (len * GRUB_MAX_UTF8_PER_UTF16 + 1); - tmp = grub_malloc (len * sizeof (tmp[0])); + buf = grub_calloc (len, GRUB_MAX_UTF8_PER_UTF16 + 1); + tmp = grub_calloc (len, sizeof (tmp[0])); if (!buf || !tmp) { grub_free (buf); diff --git a/grub-core/fs/sfs.c b/grub-core/fs/sfs.c index 50c1fe72f..90f7fb379 100644 --- a/grub-core/fs/sfs.c +++ b/grub-core/fs/sfs.c @@ -266,7 +266,7 @@ grub_sfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) node->next_extent = node->block; node->cache_size = 0; - node->cache = grub_malloc (sizeof (node->cache[0]) * cache_size); + node->cache = grub_calloc (cache_size, sizeof (node->cache[0])); if (!node->cache) { grub_errno = 0; diff --git a/grub-core/fs/tar.c b/grub-core/fs/tar.c index 7d63e0c99..c551ed6b5 100644 --- a/grub-core/fs/tar.c +++ b/grub-core/fs/tar.c @@ -120,7 +120,7 @@ grub_cpio_find_file (struct grub_archelp_data *data, char **name, if (data->linkname_alloc < linksize + 1) { char *n; - n = grub_malloc (2 * (linksize + 1)); + n = grub_calloc (2, linksize + 1); if (!n) return grub_errno; grub_free (data->linkname); diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c index dc8b6e2d1..a83761674 100644 --- a/grub-core/fs/udf.c +++ b/grub-core/fs/udf.c @@ -873,7 +873,7 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) { unsigned i; utf16len = sz - 1; - utf16 = grub_malloc (utf16len * sizeof (utf16[0])); + utf16 = grub_calloc (utf16len, sizeof (utf16[0])); if (!utf16) return NULL; for (i = 0; i < utf16len; i++) @@ -883,7 +883,7 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) { unsigned i; utf16len = (sz - 1) / 2; - utf16 = grub_malloc (utf16len * sizeof (utf16[0])); + utf16 = grub_calloc (utf16len, sizeof (utf16[0])); if (!utf16) return NULL; for (i = 0; i < utf16len; i++) diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c index 2f72e42bf..381dde556 100644 --- a/grub-core/fs/zfs/zfs.c +++ b/grub-core/fs/zfs/zfs.c @@ -3325,7 +3325,7 @@ dnode_get_fullpath (const char *fullpath, struct subvolume *subvol, } subvol->nkeys = 0; zap_iterate (&keychain_dn, 8, count_zap_keys, &ctx, data); - subvol->keyring = grub_zalloc (subvol->nkeys * sizeof (subvol->keyring[0])); + subvol->keyring = grub_calloc (subvol->nkeys, sizeof (subvol->keyring[0])); if (!subvol->keyring) { grub_free (fsname); @@ -4336,7 +4336,7 @@ grub_zfs_embed (grub_device_t device __attribute__ ((unused)), *nsectors = (VDEV_BOOT_SIZE >> GRUB_DISK_SECTOR_BITS); if (*nsectors > max_nsectors) *nsectors = max_nsectors; - *sectors = grub_malloc (*nsectors * sizeof (**sectors)); + *sectors = grub_calloc (*nsectors, sizeof (**sectors)); if (!*sectors) return grub_errno; for (i = 0; i < *nsectors; i++) diff --git a/grub-core/gfxmenu/gui_string_util.c b/grub-core/gfxmenu/gui_string_util.c index a9a415e31..ba1e1eab3 100644 --- a/grub-core/gfxmenu/gui_string_util.c +++ b/grub-core/gfxmenu/gui_string_util.c @@ -55,7 +55,7 @@ canonicalize_path (const char *path) if (*p == '/') components++; - char **path_array = grub_malloc (components * sizeof (*path_array)); + char **path_array = grub_calloc (components, sizeof (*path_array)); if (! path_array) return 0; diff --git a/grub-core/gfxmenu/widget-box.c b/grub-core/gfxmenu/widget-box.c index b60602889..470597ded 100644 --- a/grub-core/gfxmenu/widget-box.c +++ b/grub-core/gfxmenu/widget-box.c @@ -303,10 +303,10 @@ grub_gfxmenu_create_box (const char *pixmaps_prefix, box->content_height = 0; box->raw_pixmaps = (struct grub_video_bitmap **) - grub_malloc (BOX_NUM_PIXMAPS * sizeof (struct grub_video_bitmap *)); + grub_calloc (BOX_NUM_PIXMAPS, sizeof (struct grub_video_bitmap *)); box->scaled_pixmaps = (struct grub_video_bitmap **) - grub_malloc (BOX_NUM_PIXMAPS * sizeof (struct grub_video_bitmap *)); + grub_calloc (BOX_NUM_PIXMAPS, sizeof (struct grub_video_bitmap *)); /* Initialize all pixmap pointers to NULL so that proper destruction can be performed if an error is encountered partway through construction. */ diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c index 6208a9763..43d98a7bd 100644 --- a/grub-core/io/gzio.c +++ b/grub-core/io/gzio.c @@ -554,7 +554,7 @@ huft_build (unsigned *b, /* code lengths in bits (all assumed <= BMAX) */ z = 1 << j; /* table entries for j-bit table */ /* allocate and link in new table */ - q = (struct huft *) grub_zalloc ((z + 1) * sizeof (struct huft)); + q = (struct huft *) grub_calloc (z + 1, sizeof (struct huft)); if (! q) { if (h) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c index 6e1ceb905..dc31caa21 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -202,7 +202,7 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, len = grub_strlen (var); len16 = len * GRUB_MAX_UTF16_PER_UTF8; - var16 = grub_malloc ((len16 + 1) * sizeof (var16[0])); + var16 = grub_calloc (len16 + 1, sizeof (var16[0])); if (!var16) return grub_errno; len16 = grub_utf8_to_utf16 (var16, len16, (grub_uint8_t *) var, len, NULL); @@ -237,7 +237,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, len = grub_strlen (var); len16 = len * GRUB_MAX_UTF16_PER_UTF8; - var16 = grub_malloc ((len16 + 1) * sizeof (var16[0])); + var16 = grub_calloc (len16 + 1, sizeof (var16[0])); if (!var16) return NULL; len16 = grub_utf8_to_utf16 (var16, len16, (grub_uint8_t *) var, len, NULL); @@ -383,7 +383,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) while (len > 0 && fp->path_name[len - 1] == 0) len--; - dup_name = grub_malloc (len * sizeof (*dup_name)); + dup_name = grub_calloc (len, sizeof (*dup_name)); if (!dup_name) { grub_free (name); diff --git a/grub-core/kern/emu/hostdisk.c b/grub-core/kern/emu/hostdisk.c index e9ec680cd..d975265b2 100644 --- a/grub-core/kern/emu/hostdisk.c +++ b/grub-core/kern/emu/hostdisk.c @@ -615,7 +615,7 @@ static char * grub_util_path_concat_real (size_t n, int ext, va_list ap) { size_t totlen = 0; - char **l = xmalloc ((n + ext) * sizeof (l[0])); + char **l = xcalloc (n + ext, sizeof (l[0])); char *r, *p, *pi; size_t i; int first = 1; diff --git a/grub-core/kern/fs.c b/grub-core/kern/fs.c index 2b85f4950..f90be6566 100644 --- a/grub-core/kern/fs.c +++ b/grub-core/kern/fs.c @@ -151,7 +151,7 @@ grub_fs_blocklist_open (grub_file_t file, const char *name) while (p); /* Allocate a block list. */ - blocks = grub_zalloc (sizeof (struct grub_fs_block) * (num + 1)); + blocks = grub_calloc (num + 1, sizeof (struct grub_fs_block)); if (! blocks) return 0; diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c index 3b633d51f..a7abd367a 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -690,7 +690,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args, args->ptr = args->prealloc; else { - args->ptr = grub_malloc (args->count * sizeof (args->ptr[0])); + args->ptr = grub_calloc (args->count, sizeof (args->ptr[0])); if (!args->ptr) { grub_errno = GRUB_ERR_NONE; diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c index 78175aac2..619db3122 100644 --- a/grub-core/kern/parser.c +++ b/grub-core/kern/parser.c @@ -213,7 +213,7 @@ grub_parser_split_cmdline (const char *cmdline, return grub_errno; grub_memcpy (args, buffer, bp - buffer); - *argv = grub_malloc (sizeof (char *) * (*argc + 1)); + *argv = grub_calloc (*argc + 1, sizeof (char *)); if (!*argv) { grub_free (args); diff --git a/grub-core/kern/uboot/uboot.c b/grub-core/kern/uboot/uboot.c index be4816fe6..aac8f9ae1 100644 --- a/grub-core/kern/uboot/uboot.c +++ b/grub-core/kern/uboot/uboot.c @@ -133,7 +133,7 @@ grub_uboot_dev_enum (void) return num_devices; max_devices = 2; - enum_devices = grub_malloc (sizeof(struct device_info) * max_devices); + enum_devices = grub_calloc (max_devices, sizeof(struct device_info)); if (!enum_devices) return 0; diff --git a/grub-core/lib/libgcrypt/cipher/ac.c b/grub-core/lib/libgcrypt/cipher/ac.c index f5e946a2d..63f6fcd11 100644 --- a/grub-core/lib/libgcrypt/cipher/ac.c +++ b/grub-core/lib/libgcrypt/cipher/ac.c @@ -185,7 +185,7 @@ ac_data_mpi_copy (gcry_ac_mpi_t *data_mpis, unsigned int data_mpis_n, gcry_mpi_t mpi; char *label; - data_mpis_new = gcry_malloc (sizeof (*data_mpis_new) * data_mpis_n); + data_mpis_new = gcry_calloc (data_mpis_n, sizeof (*data_mpis_new)); if (! data_mpis_new) { err = gcry_error_from_errno (errno); @@ -572,7 +572,7 @@ _gcry_ac_data_to_sexp (gcry_ac_data_t data, gcry_sexp_t *sexp, } /* Add MPI list. */ - arg_list = gcry_malloc (sizeof (*arg_list) * (data_n + 1)); + arg_list = gcry_calloc (data_n + 1, sizeof (*arg_list)); if (! arg_list) { err = gcry_error_from_errno (errno); @@ -1283,7 +1283,7 @@ ac_data_construct (const char *identifier, int include_flags, /* We build a list of arguments to pass to gcry_sexp_build_array(). */ data_length = _gcry_ac_data_length (data); - arg_list = gcry_malloc (sizeof (*arg_list) * (data_length * 2)); + arg_list = gcry_calloc (data_length, sizeof (*arg_list) * 2); if (! arg_list) { err = gcry_error_from_errno (errno); @@ -1593,7 +1593,7 @@ _gcry_ac_key_pair_generate (gcry_ac_handle_t handle, unsigned int nbits, arg_list_n += 2; /* Allocate list. */ - arg_list = gcry_malloc (sizeof (*arg_list) * arg_list_n); + arg_list = gcry_calloc (arg_list_n, sizeof (*arg_list)); if (! arg_list) { err = gcry_error_from_errno (errno); diff --git a/grub-core/lib/libgcrypt/cipher/primegen.c b/grub-core/lib/libgcrypt/cipher/primegen.c index 2788e349f..b12e79b19 100644 --- a/grub-core/lib/libgcrypt/cipher/primegen.c +++ b/grub-core/lib/libgcrypt/cipher/primegen.c @@ -383,7 +383,7 @@ prime_generate_internal (int need_q_factor, } /* Allocate an array to track pool usage. */ - pool_in_use = gcry_malloc (n * sizeof *pool_in_use); + pool_in_use = gcry_calloc (n, sizeof *pool_in_use); if (!pool_in_use) { err = gpg_err_code_from_errno (errno); @@ -765,7 +765,7 @@ gen_prime (unsigned int nbits, int secret, int randomlevel, if (nbits < 16) log_fatal ("can't generate a prime with less than %d bits\n", 16); - mods = gcry_xmalloc( no_of_small_prime_numbers * sizeof *mods ); + mods = gcry_xcalloc( no_of_small_prime_numbers, sizeof *mods); /* Make nbits fit into gcry_mpi_t implementation. */ val_2 = mpi_alloc_set_ui( 2 ); val_3 = mpi_alloc_set_ui( 3); diff --git a/grub-core/lib/libgcrypt/cipher/pubkey.c b/grub-core/lib/libgcrypt/cipher/pubkey.c index 910982141..ca087ad75 100644 --- a/grub-core/lib/libgcrypt/cipher/pubkey.c +++ b/grub-core/lib/libgcrypt/cipher/pubkey.c @@ -2941,7 +2941,7 @@ gcry_pk_encrypt (gcry_sexp_t *r_ciph, gcry_sexp_t s_data, gcry_sexp_t s_pkey) * array to a format string, so we have to do it this way :-(. */ /* FIXME: There is now such a format specifier, so we can change the code to be more clear. */ - arg_list = malloc (nelem * sizeof *arg_list); + arg_list = calloc (nelem, sizeof *arg_list); if (!arg_list) { rc = gpg_err_code_from_syserror (); @@ -3233,7 +3233,7 @@ gcry_pk_sign (gcry_sexp_t *r_sig, gcry_sexp_t s_hash, gcry_sexp_t s_skey) } strcpy (p, "))"); - arg_list = malloc (nelem * sizeof *arg_list); + arg_list = calloc (nelem, sizeof *arg_list); if (!arg_list) { rc = gpg_err_code_from_syserror (); diff --git a/grub-core/lib/priority_queue.c b/grub-core/lib/priority_queue.c index 659be0b7f..7d5e7c05a 100644 --- a/grub-core/lib/priority_queue.c +++ b/grub-core/lib/priority_queue.c @@ -92,7 +92,7 @@ grub_priority_queue_new (grub_size_t elsize, { struct grub_priority_queue *ret; void *els; - els = grub_malloc (elsize * 8); + els = grub_calloc (8, elsize); if (!els) return 0; ret = (struct grub_priority_queue *) grub_malloc (sizeof (*ret)); diff --git a/grub-core/lib/reed_solomon.c b/grub-core/lib/reed_solomon.c index ee9fa7b4f..467305b46 100644 --- a/grub-core/lib/reed_solomon.c +++ b/grub-core/lib/reed_solomon.c @@ -20,6 +20,7 @@ #include #include #include +#define xcalloc calloc #define xmalloc malloc #define grub_memset memset #define grub_memcpy memcpy @@ -158,11 +159,9 @@ rs_encode (gf_single_t *data, grub_size_t s, grub_size_t rs) gf_single_t *rs_polynomial; int i, j; gf_single_t *m; - m = xmalloc ((s + rs) * sizeof (gf_single_t)); + m = xcalloc (s + rs, sizeof (gf_single_t)); grub_memcpy (m, data, s * sizeof (gf_single_t)); - grub_memset (m + s, 0, rs * sizeof (gf_single_t)); - rs_polynomial = xmalloc ((rs + 1) * sizeof (gf_single_t)); - grub_memset (rs_polynomial, 0, (rs + 1) * sizeof (gf_single_t)); + rs_polynomial = xcalloc (rs + 1, sizeof (gf_single_t)); rs_polynomial[rs] = 1; /* Multiply with X - a^r */ for (j = 0; j < rs; j++) diff --git a/grub-core/lib/relocator.c b/grub-core/lib/relocator.c index ea3ebc719..5847aac36 100644 --- a/grub-core/lib/relocator.c +++ b/grub-core/lib/relocator.c @@ -495,9 +495,9 @@ malloc_in_range (struct grub_relocator *rel, } #endif - eventt = grub_malloc (maxevents * sizeof (events[0])); + eventt = grub_calloc (maxevents, sizeof (events[0])); counter = grub_malloc ((DIGITSORT_MASK + 2) * sizeof (counter[0])); - events = grub_malloc (maxevents * sizeof (events[0])); + events = grub_calloc (maxevents, sizeof (events[0])); if (!events || !eventt || !counter) { grub_dprintf ("relocator", "events or counter allocation failed %d\n", @@ -963,7 +963,7 @@ malloc_in_range (struct grub_relocator *rel, #endif unsigned cural = 0; int oom = 0; - res->subchunks = grub_malloc (sizeof (res->subchunks[0]) * nallocs); + res->subchunks = grub_calloc (nallocs, sizeof (res->subchunks[0])); if (!res->subchunks) oom = 1; res->nsubchunks = nallocs; @@ -1562,8 +1562,8 @@ grub_relocator_prepare_relocs (struct grub_relocator *rel, grub_addr_t addr, count[(chunk->src & 0xff) + 1]++; } } - from = grub_malloc (nchunks * sizeof (sorted[0])); - to = grub_malloc (nchunks * sizeof (sorted[0])); + from = grub_calloc (nchunks, sizeof (sorted[0])); + to = grub_calloc (nchunks, sizeof (sorted[0])); if (!from || !to) { grub_free (from); diff --git a/grub-core/lib/zstd/fse_decompress.c b/grub-core/lib/zstd/fse_decompress.c index 72bbead5b..2227b84bc 100644 --- a/grub-core/lib/zstd/fse_decompress.c +++ b/grub-core/lib/zstd/fse_decompress.c @@ -82,7 +82,7 @@ FSE_DTable* FSE_createDTable (unsigned tableLog) { if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; - return (FSE_DTable*)malloc( FSE_DTABLE_SIZE_U32(tableLog) * sizeof (U32) ); + return (FSE_DTable*)calloc( FSE_DTABLE_SIZE_U32(tableLog), sizeof (U32) ); } void FSE_freeDTable (FSE_DTable* dt) diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c index 51684914c..d70c17486 100644 --- a/grub-core/loader/arm/linux.c +++ b/grub-core/loader/arm/linux.c @@ -78,7 +78,7 @@ linux_prepare_atag (void *target_atag) /* some place for cmdline, initrd and terminator. */ tmp_size = get_atag_size (atag_orig) + 20 + (arg_size) / 4; - tmp_atag = grub_malloc (tmp_size * sizeof (grub_uint32_t)); + tmp_atag = grub_calloc (tmp_size, sizeof (grub_uint32_t)); if (!tmp_atag) return grub_errno; diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c index cd92ea3f2..daf8c6b54 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -116,7 +116,7 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE; fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE; - path_name = grub_malloc (len * GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); + path_name = grub_calloc (len, GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); if (!path_name) return; diff --git a/grub-core/loader/i386/bsdXX.c b/grub-core/loader/i386/bsdXX.c index af6741d15..a8d8bf7da 100644 --- a/grub-core/loader/i386/bsdXX.c +++ b/grub-core/loader/i386/bsdXX.c @@ -48,7 +48,7 @@ read_headers (grub_file_t file, const char *filename, Elf_Ehdr *e, char **shdr) if (e->e_ident[EI_CLASS] != SUFFIX (ELFCLASS)) return grub_error (GRUB_ERR_BAD_OS, N_("invalid arch-dependent ELF magic")); - *shdr = grub_malloc ((grub_uint32_t) e->e_shnum * e->e_shentsize); + *shdr = grub_calloc (e->e_shnum, e->e_shentsize); if (! *shdr) return grub_errno; diff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c index e64ed08f5..b7d176b5d 100644 --- a/grub-core/loader/i386/xnu.c +++ b/grub-core/loader/i386/xnu.c @@ -295,7 +295,7 @@ grub_xnu_devprop_add_property_utf8 (struct grub_xnu_devprop_device_descriptor *d return grub_errno; len = grub_strlen (name); - utf16 = grub_malloc (sizeof (grub_uint16_t) * len); + utf16 = grub_calloc (len, sizeof (grub_uint16_t)); if (!utf16) { grub_free (utf8); @@ -331,7 +331,7 @@ grub_xnu_devprop_add_property_utf16 (struct grub_xnu_devprop_device_descriptor * grub_uint16_t *utf16; grub_err_t err; - utf16 = grub_malloc (sizeof (grub_uint16_t) * namelen); + utf16 = grub_calloc (namelen, sizeof (grub_uint16_t)); if (!utf16) return grub_errno; grub_memcpy (utf16, name, sizeof (grub_uint16_t) * namelen); diff --git a/grub-core/loader/macho.c b/grub-core/loader/macho.c index 085f9c689..05710c48e 100644 --- a/grub-core/loader/macho.c +++ b/grub-core/loader/macho.c @@ -97,7 +97,7 @@ grub_macho_file (grub_file_t file, const char *filename, int is_64bit) if (grub_file_seek (macho->file, sizeof (struct grub_macho_fat_header)) == (grub_off_t) -1) goto fail; - archs = grub_malloc (sizeof (struct grub_macho_fat_arch) * narchs); + archs = grub_calloc (narchs, sizeof (struct grub_macho_fat_arch)); if (!archs) goto fail; if (grub_file_read (macho->file, archs, diff --git a/grub-core/loader/multiboot_elfxx.c b/grub-core/loader/multiboot_elfxx.c index 70cd1db51..cc6853692 100644 --- a/grub-core/loader/multiboot_elfxx.c +++ b/grub-core/loader/multiboot_elfxx.c @@ -217,7 +217,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) { grub_uint8_t *shdr, *shdrptr; - shdr = grub_malloc ((grub_uint32_t) ehdr->e_shnum * ehdr->e_shentsize); + shdr = grub_calloc (ehdr->e_shnum, ehdr->e_shentsize); if (!shdr) return grub_errno; diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c index 7f74d1d6f..77d7060e1 100644 --- a/grub-core/loader/xnu.c +++ b/grub-core/loader/xnu.c @@ -800,7 +800,7 @@ grub_cmd_xnu_mkext (grub_command_t cmd __attribute__ ((unused)), if (grub_be_to_cpu32 (head.magic) == GRUB_MACHO_FAT_MAGIC) { narchs = grub_be_to_cpu32 (head.nfat_arch); - archs = grub_malloc (sizeof (struct grub_macho_fat_arch) * narchs); + archs = grub_calloc (narchs, sizeof (struct grub_macho_fat_arch)); if (! archs) { grub_file_close (file); diff --git a/grub-core/mmap/mmap.c b/grub-core/mmap/mmap.c index 6a31cbae3..57b4e9a72 100644 --- a/grub-core/mmap/mmap.c +++ b/grub-core/mmap/mmap.c @@ -143,9 +143,9 @@ grub_mmap_iterate (grub_memory_hook_t hook, void *hook_data) /* Initialize variables. */ ctx.scanline_events = (struct grub_mmap_scan *) - grub_malloc (sizeof (struct grub_mmap_scan) * 2 * mmap_num); + grub_calloc (mmap_num, sizeof (struct grub_mmap_scan) * 2); - present = grub_zalloc (sizeof (present[0]) * current_priority); + present = grub_calloc (current_priority, sizeof (present[0])); if (! ctx.scanline_events || !present) { diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c index 04cfbb045..653957200 100644 --- a/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c @@ -766,7 +766,7 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), if (ncards == 0) return grub_error (GRUB_ERR_NET_NO_CARD, N_("no network card found")); - ifaces = grub_zalloc (ncards * sizeof (ifaces[0])); + ifaces = grub_calloc (ncards, sizeof (ifaces[0])); if (!ifaces) return grub_errno; diff --git a/grub-core/net/dns.c b/grub-core/net/dns.c index 5d9afe093..e332d5eb4 100644 --- a/grub-core/net/dns.c +++ b/grub-core/net/dns.c @@ -285,8 +285,8 @@ recv_hook (grub_net_udp_socket_t sock __attribute__ ((unused)), ptr++; ptr += 4; } - *data->addresses = grub_malloc (sizeof ((*data->addresses)[0]) - * grub_be_to_cpu16 (head->ancount)); + *data->addresses = grub_calloc (grub_be_to_cpu16 (head->ancount), + sizeof ((*data->addresses)[0])); if (!*data->addresses) { grub_errno = GRUB_ERR_NONE; @@ -406,8 +406,8 @@ recv_hook (grub_net_udp_socket_t sock __attribute__ ((unused)), dns_cache[h].addresses = 0; dns_cache[h].name = grub_strdup (data->oname); dns_cache[h].naddresses = *data->naddresses; - dns_cache[h].addresses = grub_malloc (*data->naddresses - * sizeof (dns_cache[h].addresses[0])); + dns_cache[h].addresses = grub_calloc (*data->naddresses, + sizeof (dns_cache[h].addresses[0])); dns_cache[h].limit_time = grub_get_time_ms () + 1000 * ttl_all; if (!dns_cache[h].addresses || !dns_cache[h].name) { @@ -479,7 +479,7 @@ grub_net_dns_lookup (const char *name, } } - sockets = grub_malloc (sizeof (sockets[0]) * n_servers); + sockets = grub_calloc (n_servers, sizeof (sockets[0])); if (!sockets) return grub_errno; diff --git a/grub-core/net/net.c b/grub-core/net/net.c index d5d726a31..38f19dfc9 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c @@ -333,8 +333,8 @@ grub_cmd_ipv6_autoconf (struct grub_command *cmd __attribute__ ((unused)), ncards++; } - ifaces = grub_zalloc (ncards * sizeof (ifaces[0])); - slaacs = grub_zalloc (ncards * sizeof (slaacs[0])); + ifaces = grub_calloc (ncards, sizeof (ifaces[0])); + slaacs = grub_calloc (ncards, sizeof (slaacs[0])); if (!ifaces || !slaacs) { grub_free (ifaces); diff --git a/grub-core/normal/charset.c b/grub-core/normal/charset.c index b0ab47d73..d57fb72fa 100644 --- a/grub-core/normal/charset.c +++ b/grub-core/normal/charset.c @@ -203,7 +203,7 @@ grub_utf8_to_ucs4_alloc (const char *msg, grub_uint32_t **unicode_msg, { grub_size_t msg_len = grub_strlen (msg); - *unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); + *unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); if (!*unicode_msg) return -1; @@ -488,7 +488,7 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, } else { - n = grub_malloc (sizeof (n[0]) * (out->ncomb + 1)); + n = grub_calloc (out->ncomb + 1, sizeof (n[0])); if (!n) { grub_errno = GRUB_ERR_NONE; @@ -842,7 +842,7 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, } \ } - visual = grub_malloc (sizeof (visual[0]) * logical_len); + visual = grub_calloc (logical_len, sizeof (visual[0])); if (!visual) return -1; @@ -1165,8 +1165,8 @@ grub_bidi_logical_to_visual (const grub_uint32_t *logical, { const grub_uint32_t *line_start = logical, *ptr; struct grub_unicode_glyph *visual_ptr; - *visual_out = visual_ptr = grub_malloc (3 * sizeof (visual_ptr[0]) - * (logical_len + 2)); + *visual_out = visual_ptr = grub_calloc (logical_len + 2, + 3 * sizeof (visual_ptr[0])); if (!visual_ptr) return -1; for (ptr = logical; ptr <= logical + logical_len; ptr++) diff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c index c037d5050..c57242e2e 100644 --- a/grub-core/normal/cmdline.c +++ b/grub-core/normal/cmdline.c @@ -41,7 +41,7 @@ grub_err_t grub_set_history (int newsize) { grub_uint32_t **old_hist_lines = hist_lines; - hist_lines = grub_malloc (sizeof (grub_uint32_t *) * newsize); + hist_lines = grub_calloc (newsize, sizeof (grub_uint32_t *)); /* Copy the old lines into the new buffer. */ if (old_hist_lines) @@ -114,7 +114,7 @@ static void grub_history_set (int pos, grub_uint32_t *s, grub_size_t len) { grub_free (hist_lines[pos]); - hist_lines[pos] = grub_malloc ((len + 1) * sizeof (grub_uint32_t)); + hist_lines[pos] = grub_calloc (len + 1, sizeof (grub_uint32_t)); if (!hist_lines[pos]) { grub_print_error (); @@ -349,7 +349,7 @@ grub_cmdline_get (const char *prompt_translated) char *ret; unsigned nterms; - buf = grub_malloc (max_len * sizeof (grub_uint32_t)); + buf = grub_calloc (max_len, sizeof (grub_uint32_t)); if (!buf) return 0; @@ -377,7 +377,7 @@ grub_cmdline_get (const char *prompt_translated) FOR_ACTIVE_TERM_OUTPUTS(cur) nterms++; - cl_terms = grub_malloc (sizeof (cl_terms[0]) * nterms); + cl_terms = grub_calloc (nterms, sizeof (cl_terms[0])); if (!cl_terms) { grub_free (buf); @@ -385,7 +385,7 @@ grub_cmdline_get (const char *prompt_translated) } cl_term_cur = cl_terms; - unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); + unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); if (!unicode_msg) { grub_free (buf); @@ -495,7 +495,7 @@ grub_cmdline_get (const char *prompt_translated) grub_uint32_t *insert; insertlen = grub_strlen (insertu8); - insert = grub_malloc ((insertlen + 1) * sizeof (grub_uint32_t)); + insert = grub_calloc (insertlen + 1, sizeof (grub_uint32_t)); if (!insert) { grub_free (insertu8); @@ -602,7 +602,7 @@ grub_cmdline_get (const char *prompt_translated) grub_free (kill_buf); - kill_buf = grub_malloc ((n + 1) * sizeof(grub_uint32_t)); + kill_buf = grub_calloc (n + 1, sizeof (grub_uint32_t)); if (grub_errno) { grub_print_error (); diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c index cdf3590a3..1993995be 100644 --- a/grub-core/normal/menu_entry.c +++ b/grub-core/normal/menu_entry.c @@ -95,8 +95,8 @@ init_line (struct screen *screen, struct line *linep) { linep->len = 0; linep->max_len = 80; - linep->buf = grub_malloc ((linep->max_len + 1) * sizeof (linep->buf[0])); - linep->pos = grub_zalloc (screen->nterms * sizeof (linep->pos[0])); + linep->buf = grub_calloc (linep->max_len + 1, sizeof (linep->buf[0])); + linep->pos = grub_calloc (screen->nterms, sizeof (linep->pos[0])); if (! linep->buf || !linep->pos) { grub_free (linep->buf); @@ -287,7 +287,7 @@ update_screen (struct screen *screen, struct per_term_screen *term_screen, pos = linep->pos + (term_screen - screen->terms); if (!*pos) - *pos = grub_zalloc ((linep->len + 1) * sizeof (**pos)); + *pos = grub_calloc (linep->len + 1, sizeof (**pos)); if (i == region_start || linep == screen->lines + screen->line || (i > region_start && mode == ALL_LINES)) @@ -471,7 +471,7 @@ insert_string (struct screen *screen, const char *s, int update) /* Insert the string. */ current_linep = screen->lines + screen->line; - unicode_msg = grub_malloc ((p - s) * sizeof (grub_uint32_t)); + unicode_msg = grub_calloc (p - s, sizeof (grub_uint32_t)); if (!unicode_msg) return 0; @@ -1023,7 +1023,7 @@ complete (struct screen *screen, int continuous, int update) if (completion_buffer.buf) { buflen = grub_strlen (completion_buffer.buf); - ucs4 = grub_malloc (sizeof (grub_uint32_t) * (buflen + 1)); + ucs4 = grub_calloc (buflen + 1, sizeof (grub_uint32_t)); if (!ucs4) { @@ -1268,7 +1268,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) for (i = 0; i < (unsigned) screen->num_lines; i++) { grub_free (screen->lines[i].pos); - screen->lines[i].pos = grub_zalloc (screen->nterms * sizeof (screen->lines[i].pos[0])); + screen->lines[i].pos = grub_calloc (screen->nterms, sizeof (screen->lines[i].pos[0])); if (! screen->lines[i].pos) { grub_print_error (); @@ -1278,7 +1278,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) } } - screen->terms = grub_zalloc (screen->nterms * sizeof (screen->terms[0])); + screen->terms = grub_calloc (screen->nterms, sizeof (screen->terms[0])); if (!screen->terms) { grub_print_error (); diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c index e22bb91f6..18240e76c 100644 --- a/grub-core/normal/menu_text.c +++ b/grub-core/normal/menu_text.c @@ -78,7 +78,7 @@ grub_print_message_indented_real (const char *msg, int margin_left, grub_size_t msg_len = grub_strlen (msg) + 2; int ret = 0; - unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); + unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); if (!unicode_msg) return 0; @@ -211,7 +211,7 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, title = entry ? entry->title : ""; title_len = grub_strlen (title); - unicode_title = grub_malloc (title_len * sizeof (*unicode_title)); + unicode_title = grub_calloc (title_len, sizeof (*unicode_title)); if (! unicode_title) /* XXX How to show this error? */ return; diff --git a/grub-core/normal/term.c b/grub-core/normal/term.c index a1e5c5a0d..cc8c173b6 100644 --- a/grub-core/normal/term.c +++ b/grub-core/normal/term.c @@ -264,7 +264,7 @@ grub_term_save_pos (void) FOR_ACTIVE_TERM_OUTPUTS(cur) cnt++; - ret = grub_malloc (cnt * sizeof (ret[0])); + ret = grub_calloc (cnt, sizeof (ret[0])); if (!ret) return NULL; @@ -1013,7 +1013,7 @@ grub_xnputs (const char *str, grub_size_t msg_len) grub_error_push (); - unicode_str = grub_malloc (msg_len * sizeof (grub_uint32_t)); + unicode_str = grub_calloc (msg_len, sizeof (grub_uint32_t)); grub_error_pop (); diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c index 90d92d3ad..5b41ad022 100644 --- a/grub-core/osdep/linux/getroot.c +++ b/grub-core/osdep/linux/getroot.c @@ -168,7 +168,7 @@ grub_util_raid_getmembers (const char *name, int bootable) if (ret != 0) grub_util_error (_("ioctl GET_ARRAY_INFO error: %s"), strerror (errno)); - devicelist = xmalloc ((info.nr_disks + 1) * sizeof (char *)); + devicelist = xcalloc (info.nr_disks + 1, sizeof (char *)); for (i = 0, j = 0; j < info.nr_disks; i++) { @@ -241,7 +241,7 @@ grub_find_root_devices_from_btrfs (const char *dir) return NULL; } - ret = xmalloc ((fsi.num_devices + 1) * sizeof (ret[0])); + ret = xcalloc (fsi.num_devices + 1, sizeof (ret[0])); for (i = 1; i <= fsi.max_id && j < fsi.num_devices; i++) { @@ -396,7 +396,7 @@ grub_find_root_devices_from_mountinfo (const char *dir, char **relroot) if (relroot) *relroot = NULL; - entries = xmalloc (entry_max * sizeof (*entries)); + entries = xcalloc (entry_max, sizeof (*entries)); again: fp = grub_util_fopen ("/proc/self/mountinfo", "r"); diff --git a/grub-core/osdep/unix/config.c b/grub-core/osdep/unix/config.c index 65effa9f3..7d6325138 100644 --- a/grub-core/osdep/unix/config.c +++ b/grub-core/osdep/unix/config.c @@ -89,7 +89,7 @@ grub_util_load_config (struct grub_util_config *cfg) argv[0] = "sh"; argv[1] = "-c"; - script = xmalloc (4 * strlen (cfgfile) + 300); + script = xcalloc (4, strlen (cfgfile) + 300); ptr = script; memcpy (ptr, ". '", 3); diff --git a/grub-core/osdep/windows/getroot.c b/grub-core/osdep/windows/getroot.c index 661d95461..eada663b2 100644 --- a/grub-core/osdep/windows/getroot.c +++ b/grub-core/osdep/windows/getroot.c @@ -59,7 +59,7 @@ grub_get_mount_point (const TCHAR *path) for (ptr = path; *ptr; ptr++); allocsize = (ptr - path + 10) * 2; - out = xmalloc (allocsize * sizeof (out[0])); + out = xcalloc (allocsize, sizeof (out[0])); /* When pointing to EFI system partition GetVolumePathName fails for ESP root and returns abberant information for everything diff --git a/grub-core/osdep/windows/hostdisk.c b/grub-core/osdep/windows/hostdisk.c index 355100789..0be327394 100644 --- a/grub-core/osdep/windows/hostdisk.c +++ b/grub-core/osdep/windows/hostdisk.c @@ -111,7 +111,7 @@ grub_util_get_windows_path_real (const char *path) while (1) { - fpa = xmalloc (alloc * sizeof (fpa[0])); + fpa = xcalloc (alloc, sizeof (fpa[0])); len = GetFullPathName (tpath, alloc, fpa, NULL); if (len >= alloc) @@ -399,7 +399,7 @@ grub_util_fd_opendir (const char *name) for (l = 0; name_windows[l]; l++); for (l--; l >= 0 && (name_windows[l] == '\\' || name_windows[l] == '/'); l--); l++; - pattern = xmalloc ((l + 3) * sizeof (pattern[0])); + pattern = xcalloc (l + 3, sizeof (pattern[0])); memcpy (pattern, name_windows, l * sizeof (pattern[0])); pattern[l] = '\\'; pattern[l + 1] = '*'; diff --git a/grub-core/osdep/windows/init.c b/grub-core/osdep/windows/init.c index e8ffd62c6..6297de632 100644 --- a/grub-core/osdep/windows/init.c +++ b/grub-core/osdep/windows/init.c @@ -161,7 +161,7 @@ grub_util_host_init (int *argc __attribute__ ((unused)), LPWSTR *targv; targv = CommandLineToArgvW (tcmdline, argc); - *argv = xmalloc ((*argc + 1) * sizeof (argv[0])); + *argv = xcalloc (*argc + 1, sizeof (argv[0])); for (i = 0; i < *argc; i++) (*argv)[i] = grub_util_tchar_to_utf8 (targv[i]); diff --git a/grub-core/osdep/windows/platform.c b/grub-core/osdep/windows/platform.c index 7eb53fe01..1ef86bf58 100644 --- a/grub-core/osdep/windows/platform.c +++ b/grub-core/osdep/windows/platform.c @@ -225,8 +225,8 @@ grub_install_register_efi (grub_device_t efidir_grub_dev, grub_util_error ("%s", _("no EFI routines are available when running in BIOS mode")); distrib8_len = grub_strlen (efi_distributor); - distributor16 = xmalloc ((distrib8_len + 1) * GRUB_MAX_UTF16_PER_UTF8 - * sizeof (grub_uint16_t)); + distributor16 = xcalloc (distrib8_len + 1, + GRUB_MAX_UTF16_PER_UTF8 * sizeof (grub_uint16_t)); distrib16_len = grub_utf8_to_utf16 (distributor16, distrib8_len * GRUB_MAX_UTF16_PER_UTF8, (const grub_uint8_t *) efi_distributor, distrib8_len, 0); diff --git a/grub-core/osdep/windows/relpath.c b/grub-core/osdep/windows/relpath.c index cb0861744..478e8ef14 100644 --- a/grub-core/osdep/windows/relpath.c +++ b/grub-core/osdep/windows/relpath.c @@ -72,7 +72,7 @@ grub_make_system_path_relative_to_its_root (const char *path) if (dirwindows[0] && dirwindows[1] == ':') offset = 2; } - ret = xmalloc (sizeof (ret[0]) * (flen - offset + 2)); + ret = xcalloc (flen - offset + 2, sizeof (ret[0])); if (dirwindows[offset] != '\\' && dirwindows[offset] != '/' && dirwindows[offset]) diff --git a/grub-core/partmap/gpt.c b/grub-core/partmap/gpt.c index 103f6796f..72a2e37cd 100644 --- a/grub-core/partmap/gpt.c +++ b/grub-core/partmap/gpt.c @@ -199,7 +199,7 @@ gpt_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors, *nsectors = ctx.len; if (*nsectors > max_nsectors) *nsectors = max_nsectors; - *sectors = grub_malloc (*nsectors * sizeof (**sectors)); + *sectors = grub_calloc (*nsectors, sizeof (**sectors)); if (!*sectors) return grub_errno; for (i = 0; i < *nsectors; i++) diff --git a/grub-core/partmap/msdos.c b/grub-core/partmap/msdos.c index 7b8e45076..ee3f24982 100644 --- a/grub-core/partmap/msdos.c +++ b/grub-core/partmap/msdos.c @@ -337,7 +337,7 @@ pc_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors, avail_nsectors = *nsectors; if (*nsectors > max_nsectors) *nsectors = max_nsectors; - *sectors = grub_malloc (*nsectors * sizeof (**sectors)); + *sectors = grub_calloc (*nsectors, sizeof (**sectors)); if (!*sectors) return grub_errno; for (i = 0; i < *nsectors; i++) diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c index ee299fd0e..c8d6806fe 100644 --- a/grub-core/script/execute.c +++ b/grub-core/script/execute.c @@ -553,7 +553,7 @@ gettext_append (struct grub_script_argv *result, const char *orig_str) for (iptr = orig_str; *iptr; iptr++) if (*iptr == '$') dollar_cnt++; - ctx.allowed_strings = grub_malloc (sizeof (ctx.allowed_strings[0]) * dollar_cnt); + ctx.allowed_strings = grub_calloc (dollar_cnt, sizeof (ctx.allowed_strings[0])); if (parse_string (orig_str, gettext_save_allow, &ctx, 0)) goto fail; diff --git a/grub-core/tests/fake_input.c b/grub-core/tests/fake_input.c index 2d6085298..b5eb516be 100644 --- a/grub-core/tests/fake_input.c +++ b/grub-core/tests/fake_input.c @@ -49,7 +49,7 @@ grub_terminal_input_fake_sequence (int *seq_in, int nseq_in) saved = grub_term_inputs; if (seq) grub_free (seq); - seq = grub_malloc (nseq_in * sizeof (seq[0])); + seq = grub_calloc (nseq_in, sizeof (seq[0])); if (!seq) return; diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c index 74d5b65e5..44d081069 100644 --- a/grub-core/tests/video_checksum.c +++ b/grub-core/tests/video_checksum.c @@ -336,7 +336,7 @@ grub_video_capture_write_bmp (const char *fname, { case 4: { - grub_uint8_t *buffer = xmalloc (mode_info->width * 3); + grub_uint8_t *buffer = xcalloc (3, mode_info->width); grub_uint32_t rmask = ((1 << mode_info->red_mask_size) - 1); grub_uint32_t gmask = ((1 << mode_info->green_mask_size) - 1); grub_uint32_t bmask = ((1 << mode_info->blue_mask_size) - 1); @@ -367,7 +367,7 @@ grub_video_capture_write_bmp (const char *fname, } case 3: { - grub_uint8_t *buffer = xmalloc (mode_info->width * 3); + grub_uint8_t *buffer = xcalloc (3, mode_info->width); grub_uint32_t rmask = ((1 << mode_info->red_mask_size) - 1); grub_uint32_t gmask = ((1 << mode_info->green_mask_size) - 1); grub_uint32_t bmask = ((1 << mode_info->blue_mask_size) - 1); @@ -407,7 +407,7 @@ grub_video_capture_write_bmp (const char *fname, } case 2: { - grub_uint8_t *buffer = xmalloc (mode_info->width * 3); + grub_uint8_t *buffer = xcalloc (3, mode_info->width); grub_uint16_t rmask = ((1 << mode_info->red_mask_size) - 1); grub_uint16_t gmask = ((1 << mode_info->green_mask_size) - 1); grub_uint16_t bmask = ((1 << mode_info->blue_mask_size) - 1); diff --git a/grub-core/video/capture.c b/grub-core/video/capture.c index 4f83c7441..4d3195e01 100644 --- a/grub-core/video/capture.c +++ b/grub-core/video/capture.c @@ -89,7 +89,7 @@ grub_video_capture_start (const struct grub_video_mode_info *mode_info, framebuffer.mode_info = *mode_info; framebuffer.mode_info.blit_format = grub_video_get_blit_format (&framebuffer.mode_info); - framebuffer.ptr = grub_malloc (framebuffer.mode_info.height * framebuffer.mode_info.pitch); + framebuffer.ptr = grub_calloc (framebuffer.mode_info.height, framebuffer.mode_info.pitch); if (!framebuffer.ptr) return grub_errno; diff --git a/grub-core/video/emu/sdl.c b/grub-core/video/emu/sdl.c index a2f639f66..0ebab6f57 100644 --- a/grub-core/video/emu/sdl.c +++ b/grub-core/video/emu/sdl.c @@ -172,7 +172,7 @@ grub_video_sdl_set_palette (unsigned int start, unsigned int count, if (start + count > mode_info.number_of_colors) count = mode_info.number_of_colors - start; - tmp = grub_malloc (count * sizeof (tmp[0])); + tmp = grub_calloc (count, sizeof (tmp[0])); for (i = 0; i < count; i++) { tmp[i].r = palette_data[i].r; diff --git a/grub-core/video/i386/pc/vga.c b/grub-core/video/i386/pc/vga.c index 01f47112d..b2f776c99 100644 --- a/grub-core/video/i386/pc/vga.c +++ b/grub-core/video/i386/pc/vga.c @@ -127,7 +127,7 @@ grub_video_vga_setup (unsigned int width, unsigned int height, vga_height = height ? : 480; - framebuffer.temporary_buffer = grub_malloc (vga_height * VGA_WIDTH); + framebuffer.temporary_buffer = grub_calloc (vga_height, VGA_WIDTH); framebuffer.front_page = 0; framebuffer.back_page = 0; if (!framebuffer.temporary_buffer) diff --git a/grub-core/video/readers/png.c b/grub-core/video/readers/png.c index 777e71334..61bd64537 100644 --- a/grub-core/video/readers/png.c +++ b/grub-core/video/readers/png.c @@ -309,7 +309,7 @@ grub_png_decode_image_header (struct grub_png_data *data) if (data->is_16bit || data->is_gray || data->is_palette) #endif { - data->image_data = grub_malloc (data->image_height * data->row_bytes); + data->image_data = grub_calloc (data->image_height, data->row_bytes); if (grub_errno) return grub_errno; diff --git a/include/grub/unicode.h b/include/grub/unicode.h index a0403e91f..4de986a85 100644 --- a/include/grub/unicode.h +++ b/include/grub/unicode.h @@ -293,7 +293,7 @@ grub_unicode_glyph_dup (const struct grub_unicode_glyph *in) grub_memcpy (out, in, sizeof (*in)); if (in->ncomb > ARRAY_SIZE (out->combining_inline)) { - out->combining_ptr = grub_malloc (in->ncomb * sizeof (out->combining_ptr[0])); + out->combining_ptr = grub_calloc (in->ncomb, sizeof (out->combining_ptr[0])); if (!out->combining_ptr) { grub_free (out); @@ -315,7 +315,7 @@ grub_unicode_set_glyph (struct grub_unicode_glyph *out, grub_memcpy (out, in, sizeof (*in)); if (in->ncomb > ARRAY_SIZE (out->combining_inline)) { - out->combining_ptr = grub_malloc (in->ncomb * sizeof (out->combining_ptr[0])); + out->combining_ptr = grub_calloc (in->ncomb, sizeof (out->combining_ptr[0])); if (!out->combining_ptr) return; grub_memcpy (out->combining_ptr, in->combining_ptr, diff --git a/util/getroot.c b/util/getroot.c index 847406fba..a5eaa64fd 100644 --- a/util/getroot.c +++ b/util/getroot.c @@ -200,7 +200,7 @@ make_device_name (const char *drive) char *ret, *ptr; const char *iptr; - ret = xmalloc (strlen (drive) * 2); + ret = xcalloc (2, strlen (drive)); ptr = ret; for (iptr = drive; *iptr; iptr++) { diff --git a/util/grub-file.c b/util/grub-file.c index 50c18b683..b2e7dd69f 100644 --- a/util/grub-file.c +++ b/util/grub-file.c @@ -54,7 +54,7 @@ main (int argc, char *argv[]) grub_util_host_init (&argc, &argv); - argv2 = xmalloc (argc * sizeof (argv2[0])); + argv2 = xcalloc (argc, sizeof (argv2[0])); if (argc == 2 && strcmp (argv[1], "--version") == 0) { diff --git a/util/grub-fstest.c b/util/grub-fstest.c index f14e02d97..57246af7c 100644 --- a/util/grub-fstest.c +++ b/util/grub-fstest.c @@ -650,7 +650,7 @@ argp_parser (int key, char *arg, struct argp_state *state) if (args_count < num_disks) { if (args_count == 0) - images = xmalloc (num_disks * sizeof (images[0])); + images = xcalloc (num_disks, sizeof (images[0])); images[args_count] = grub_canonicalize_file_name (arg); args_count++; return 0; @@ -734,7 +734,7 @@ main (int argc, char *argv[]) grub_util_host_init (&argc, &argv); - args = xmalloc (argc * sizeof (args[0])); + args = xcalloc (argc, sizeof (args[0])); argp_parse (&argp, argc, argv, 0, 0, 0); diff --git a/util/grub-install-common.c b/util/grub-install-common.c index ca0ac612a..0295d40f5 100644 --- a/util/grub-install-common.c +++ b/util/grub-install-common.c @@ -286,7 +286,7 @@ handle_install_list (struct install_list *il, const char *val, il->n_entries++; } il->n_alloc = il->n_entries + 1; - il->entries = xmalloc (il->n_alloc * sizeof (il->entries[0])); + il->entries = xcalloc (il->n_alloc, sizeof (il->entries[0])); ptr = val; for (ce = il->entries; ; ce++) { diff --git a/util/grub-install.c b/util/grub-install.c index 8a55ad4b8..a82725f29 100644 --- a/util/grub-install.c +++ b/util/grub-install.c @@ -626,7 +626,7 @@ device_map_check_duplicates (const char *dev_map) if (! fp) return; - d = xmalloc (alloced * sizeof (d[0])); + d = xcalloc (alloced, sizeof (d[0])); while (fgets (buf, sizeof (buf), fp)) { @@ -1260,7 +1260,7 @@ main (int argc, char *argv[]) ndev++; } - grub_drives = xmalloc (sizeof (grub_drives[0]) * (ndev + 1)); + grub_drives = xcalloc (ndev + 1, sizeof (grub_drives[0])); for (curdev = grub_devices, curdrive = grub_drives; *curdev; curdev++, curdrive++) diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c index bc087c2b5..d97d0e7be 100644 --- a/util/grub-mkimagexx.c +++ b/util/grub-mkimagexx.c @@ -2294,10 +2294,8 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, + grub_host_to_target16 (e->e_shstrndx) * smd.section_entsize); smd.strtab = (char *) e + grub_host_to_target_addr (s->sh_offset); - smd.addrs = xmalloc (sizeof (*smd.addrs) * smd.num_sections); - memset (smd.addrs, 0, sizeof (*smd.addrs) * smd.num_sections); - smd.vaddrs = xmalloc (sizeof (*smd.vaddrs) * smd.num_sections); - memset (smd.vaddrs, 0, sizeof (*smd.vaddrs) * smd.num_sections); + smd.addrs = xcalloc (smd.num_sections, sizeof (*smd.addrs)); + smd.vaddrs = xcalloc (smd.num_sections, sizeof (*smd.vaddrs)); SUFFIX (locate_sections) (e, kernel_path, &smd, layout, image_target); diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c index ce2cbc4f1..51831027f 100644 --- a/util/grub-mkrescue.c +++ b/util/grub-mkrescue.c @@ -441,8 +441,8 @@ main (int argc, char *argv[]) xorriso = xstrdup ("xorriso"); label_font = grub_util_path_concat (2, pkgdatadir, "unicode.pf2"); - argp_argv = xmalloc (sizeof (argp_argv[0]) * argc); - xorriso_tail_argv = xmalloc (sizeof (argp_argv[0]) * argc); + argp_argv = xcalloc (argc, sizeof (argp_argv[0])); + xorriso_tail_argv = xcalloc (argc, sizeof (argp_argv[0])); xorriso_tail_argc = 0; /* Program name */ diff --git a/util/grub-mkstandalone.c b/util/grub-mkstandalone.c index 4907d44c0..edf309717 100644 --- a/util/grub-mkstandalone.c +++ b/util/grub-mkstandalone.c @@ -296,7 +296,7 @@ main (int argc, char *argv[]) grub_util_host_init (&argc, &argv); grub_util_disable_fd_syncs (); - files = xmalloc ((argc + 1) * sizeof (files[0])); + files = xcalloc (argc + 1, sizeof (files[0])); argp_parse (&argp, argc, argv, 0, 0, 0); diff --git a/util/grub-pe2elf.c b/util/grub-pe2elf.c index 0d4084a10..11331294f 100644 --- a/util/grub-pe2elf.c +++ b/util/grub-pe2elf.c @@ -100,9 +100,9 @@ write_section_data (FILE* fp, const char *name, char *image, char *pe_strtab = (image + pe_chdr->symtab_offset + pe_chdr->num_symbols * sizeof (struct grub_pe32_symbol)); - section_map = xmalloc ((2 * pe_chdr->num_sections + 5) * sizeof (int)); + section_map = xcalloc (2 * pe_chdr->num_sections + 5, sizeof (int)); section_map[0] = 0; - shdr = xmalloc ((2 * pe_chdr->num_sections + 5) * sizeof (shdr[0])); + shdr = xcalloc (2 * pe_chdr->num_sections + 5, sizeof (shdr[0])); idx = 1; idx_reloc = pe_chdr->num_sections + 1; @@ -233,7 +233,7 @@ write_reloc_section (FILE* fp, const char *name, char *image, pe_sec = pe_shdr + shdr[i].sh_link; pe_rel = (struct grub_pe32_reloc *) (image + pe_sec->relocations_offset); - rel = (elf_reloc_t *) xmalloc (pe_sec->num_relocations * sizeof (elf_reloc_t)); + rel = (elf_reloc_t *) xcalloc (pe_sec->num_relocations, sizeof (elf_reloc_t)); num_rels = 0; modified = 0; @@ -365,12 +365,10 @@ write_symbol_table (FILE* fp, const char *name, char *image, pe_symtab = (struct grub_pe32_symbol *) (image + pe_chdr->symtab_offset); pe_strtab = (char *) (pe_symtab + pe_chdr->num_symbols); - symtab = (Elf_Sym *) xmalloc ((pe_chdr->num_symbols + 1) * - sizeof (Elf_Sym)); - memset (symtab, 0, (pe_chdr->num_symbols + 1) * sizeof (Elf_Sym)); + symtab = (Elf_Sym *) xcalloc (pe_chdr->num_symbols + 1, sizeof (Elf_Sym)); num_syms = 1; - symtab_map = (int *) xmalloc (pe_chdr->num_symbols * sizeof (int)); + symtab_map = (int *) xcalloc (pe_chdr->num_symbols, sizeof (int)); for (i = 0; i < (int) pe_chdr->num_symbols; i += pe_symtab->num_aux + 1, pe_symtab += pe_symtab->num_aux + 1) diff --git a/util/grub-probe.c b/util/grub-probe.c index 81d27eead..cbe6ed94c 100644 --- a/util/grub-probe.c +++ b/util/grub-probe.c @@ -361,8 +361,8 @@ probe (const char *path, char **device_names, char delim) grub_util_pull_device (*curdev); ndev++; } - - drives_names = xmalloc (sizeof (drives_names[0]) * (ndev + 1)); + + drives_names = xcalloc (ndev + 1, sizeof (drives_names[0])); for (curdev = device_names, curdrive = drives_names; *curdev; curdev++, curdrive++) -- 2.26.2 ================================================ FILE: boot/grub2/0006-malloc-Use-overflow-checking-primitives-where-we-do-.patch ================================================ From 4ad7e85adc3803788d65707a9db11fd681aebe4a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 15 Jun 2020 12:28:27 -0400 Subject: [PATCH] malloc: Use overflow checking primitives where we do complex allocations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This attempts to fix the places where we do the following where arithmetic_expr may include unvalidated data: X = grub_malloc(arithmetic_expr); It accomplishes this by doing the arithmetic ahead of time using grub_add(), grub_sub(), grub_mul() and testing for overflow before proceeding. Among other issues, this fixes: - allocation of integer overflow in grub_video_bitmap_create() reported by Chris Coulson, - allocation of integer overflow in grub_png_decode_image_header() reported by Chris Coulson, - allocation of integer overflow in grub_squash_read_symlink() reported by Chris Coulson, - allocation of integer overflow in grub_ext2_read_symlink() reported by Chris Coulson, - allocation of integer overflow in read_section_as_string() reported by Chris Coulson. Fixes: CVE-2020-14309, CVE-2020-14310, CVE-2020-14311 Signed-off-by: Peter Jones Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/commands/legacycfg.c | 29 +++++++++++++++---- grub-core/commands/wildcard.c | 36 ++++++++++++++++++++---- grub-core/disk/ldm.c | 32 +++++++++++++++------ grub-core/font/font.c | 7 ++++- grub-core/fs/btrfs.c | 28 +++++++++++++------ grub-core/fs/ext2.c | 10 ++++++- grub-core/fs/iso9660.c | 51 ++++++++++++++++++++++++---------- grub-core/fs/sfs.c | 27 ++++++++++++++---- grub-core/fs/squash4.c | 45 ++++++++++++++++++++++-------- grub-core/fs/udf.c | 41 +++++++++++++++++---------- grub-core/fs/xfs.c | 11 +++++--- grub-core/fs/zfs/zfs.c | 22 ++++++++++----- grub-core/fs/zfs/zfscrypt.c | 7 ++++- grub-core/lib/arg.c | 20 +++++++++++-- grub-core/loader/i386/bsd.c | 8 +++++- grub-core/net/dns.c | 9 +++++- grub-core/normal/charset.c | 10 +++++-- grub-core/normal/cmdline.c | 14 ++++++++-- grub-core/normal/menu_entry.c | 13 +++++++-- grub-core/script/argv.c | 16 +++++++++-- grub-core/script/lexer.c | 21 ++++++++++++-- grub-core/video/bitmap.c | 25 +++++++++++------ grub-core/video/readers/png.c | 13 +++++++-- 23 files changed, 382 insertions(+), 113 deletions(-) diff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c index 5e3ec0d5e..cc5971f4d 100644 --- a/grub-core/commands/legacycfg.c +++ b/grub-core/commands/legacycfg.c @@ -32,6 +32,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -104,13 +105,22 @@ legacy_file (const char *filename) if (newsuffix) { char *t; - + grub_size_t sz; + + if (grub_add (grub_strlen (suffix), grub_strlen (newsuffix), &sz) || + grub_add (sz, 1, &sz)) + { + grub_errno = GRUB_ERR_OUT_OF_RANGE; + goto fail_0; + } + t = suffix; - suffix = grub_realloc (suffix, grub_strlen (suffix) - + grub_strlen (newsuffix) + 1); + suffix = grub_realloc (suffix, sz); if (!suffix) { grub_free (t); + + fail_0: grub_free (entrysrc); grub_free (parsed); grub_free (newsuffix); @@ -154,13 +164,22 @@ legacy_file (const char *filename) else { char *t; + grub_size_t sz; + + if (grub_add (grub_strlen (entrysrc), grub_strlen (parsed), &sz) || + grub_add (sz, 1, &sz)) + { + grub_errno = GRUB_ERR_OUT_OF_RANGE; + goto fail_1; + } t = entrysrc; - entrysrc = grub_realloc (entrysrc, grub_strlen (entrysrc) - + grub_strlen (parsed) + 1); + entrysrc = grub_realloc (entrysrc, sz); if (!entrysrc) { grub_free (t); + + fail_1: grub_free (parsed); grub_free (suffix); return grub_errno; diff --git a/grub-core/commands/wildcard.c b/grub-core/commands/wildcard.c index 4a106ca04..cc3290311 100644 --- a/grub-core/commands/wildcard.c +++ b/grub-core/commands/wildcard.c @@ -23,6 +23,7 @@ #include #include #include +#include #include @@ -48,6 +49,7 @@ merge (char **dest, char **ps) int i; int j; char **p; + grub_size_t sz; if (! dest) return ps; @@ -60,7 +62,12 @@ merge (char **dest, char **ps) for (j = 0; ps[j]; j++) ; - p = grub_realloc (dest, sizeof (char*) * (i + j + 1)); + if (grub_add (i, j, &sz) || + grub_add (sz, 1, &sz) || + grub_mul (sz, sizeof (char *), &sz)) + return dest; + + p = grub_realloc (dest, sz); if (! p) { grub_free (dest); @@ -115,8 +122,15 @@ make_regex (const char *start, const char *end, regex_t *regexp) char ch; int i = 0; unsigned len = end - start; - char *buffer = grub_malloc (len * 2 + 2 + 1); /* worst case size. */ + char *buffer; + grub_size_t sz; + /* Worst case size is (len * 2 + 2 + 1). */ + if (grub_mul (len, 2, &sz) || + grub_add (sz, 3, &sz)) + return 1; + + buffer = grub_malloc (sz); if (! buffer) return 1; @@ -226,6 +240,7 @@ match_devices_iter (const char *name, void *data) struct match_devices_ctx *ctx = data; char **t; char *buffer; + grub_size_t sz; /* skip partitions if asked to. */ if (ctx->noparts && grub_strchr (name, ',')) @@ -239,11 +254,16 @@ match_devices_iter (const char *name, void *data) if (regexec (ctx->regexp, buffer, 0, 0, 0)) { grub_dprintf ("expand", "not matched\n"); + fail: grub_free (buffer); return 0; } - t = grub_realloc (ctx->devs, sizeof (char*) * (ctx->ndev + 2)); + if (grub_add (ctx->ndev, 2, &sz) || + grub_mul (sz, sizeof (char *), &sz)) + goto fail; + + t = grub_realloc (ctx->devs, sz); if (! t) { grub_free (buffer); @@ -300,6 +320,7 @@ match_files_iter (const char *name, struct match_files_ctx *ctx = data; char **t; char *buffer; + grub_size_t sz; /* skip . and .. names */ if (grub_strcmp(".", name) == 0 || grub_strcmp("..", name) == 0) @@ -315,9 +336,14 @@ match_files_iter (const char *name, if (! buffer) return 1; - t = grub_realloc (ctx->files, sizeof (char*) * (ctx->nfile + 2)); - if (! t) + if (grub_add (ctx->nfile, 2, &sz) || + grub_mul (sz, sizeof (char *), &sz)) + goto fail; + + t = grub_realloc (ctx->files, sz); + if (!t) { + fail: grub_free (buffer); return 1; } diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c index e6323701a..58f8a53e1 100644 --- a/grub-core/disk/ldm.c +++ b/grub-core/disk/ldm.c @@ -25,6 +25,7 @@ #include #include #include +#include #ifdef GRUB_UTIL #include @@ -289,6 +290,7 @@ make_vg (grub_disk_t disk, struct grub_ldm_vblk vblk[GRUB_DISK_SECTOR_SIZE / sizeof (struct grub_ldm_vblk)]; unsigned i; + grub_size_t sz; err = grub_disk_read (disk, cursec, 0, sizeof(vblk), &vblk); if (err) @@ -350,7 +352,13 @@ make_vg (grub_disk_t disk, grub_free (lv); goto fail2; } - lv->name = grub_malloc (*ptr + 1); + if (grub_add (*ptr, 1, &sz)) + { + grub_free (lv->internal_id); + grub_free (lv); + goto fail2; + } + lv->name = grub_malloc (sz); if (!lv->name) { grub_free (lv->internal_id); @@ -599,10 +607,13 @@ make_vg (grub_disk_t disk, if (lv->segments->node_alloc == lv->segments->node_count) { void *t; - lv->segments->node_alloc *= 2; - t = grub_realloc (lv->segments->nodes, - sizeof (*lv->segments->nodes) - * lv->segments->node_alloc); + grub_size_t sz; + + if (grub_mul (lv->segments->node_alloc, 2, &lv->segments->node_alloc) || + grub_mul (lv->segments->node_alloc, sizeof (*lv->segments->nodes), &sz)) + goto fail2; + + t = grub_realloc (lv->segments->nodes, sz); if (!t) goto fail2; lv->segments->nodes = t; @@ -723,10 +734,13 @@ make_vg (grub_disk_t disk, if (comp->segment_alloc == comp->segment_count) { void *t; - comp->segment_alloc *= 2; - t = grub_realloc (comp->segments, - comp->segment_alloc - * sizeof (*comp->segments)); + grub_size_t sz; + + if (grub_mul (comp->segment_alloc, 2, &comp->segment_alloc) || + grub_mul (comp->segment_alloc, sizeof (*comp->segments), &sz)) + goto fail2; + + t = grub_realloc (comp->segments, sz); if (!t) goto fail2; comp->segments = t; diff --git a/grub-core/font/font.c b/grub-core/font/font.c index 8e118b315..5edb477ac 100644 --- a/grub-core/font/font.c +++ b/grub-core/font/font.c @@ -30,6 +30,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -360,9 +361,13 @@ static char * read_section_as_string (struct font_file_section *section) { char *str; + grub_size_t sz; grub_ssize_t ret; - str = grub_malloc (section->length + 1); + if (grub_add (section->length, 1, &sz)) + return NULL; + + str = grub_malloc (sz); if (!str) return 0; diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c index 11272efc1..2b65bd56a 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -40,6 +40,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -329,9 +330,13 @@ save_ref (struct grub_btrfs_leaf_descriptor *desc, if (desc->allocated < desc->depth) { void *newdata; - desc->allocated *= 2; - newdata = grub_realloc (desc->data, sizeof (desc->data[0]) - * desc->allocated); + grub_size_t sz; + + if (grub_mul (desc->allocated, 2, &desc->allocated) || + grub_mul (desc->allocated, sizeof (desc->data[0]), &sz)) + return GRUB_ERR_OUT_OF_RANGE; + + newdata = grub_realloc (desc->data, sz); if (!newdata) return grub_errno; desc->data = newdata; @@ -622,16 +627,21 @@ find_device (struct grub_btrfs_data *data, grub_uint64_t id) if (data->n_devices_attached > data->n_devices_allocated) { void *tmp; - data->n_devices_allocated = 2 * data->n_devices_attached + 1; - data->devices_attached - = grub_realloc (tmp = data->devices_attached, - data->n_devices_allocated - * sizeof (data->devices_attached[0])); + grub_size_t sz; + + if (grub_mul (data->n_devices_attached, 2, &data->n_devices_allocated) || + grub_add (data->n_devices_allocated, 1, &data->n_devices_allocated) || + grub_mul (data->n_devices_allocated, sizeof (data->devices_attached[0]), &sz)) + goto fail; + + data->devices_attached = grub_realloc (tmp = data->devices_attached, sz); if (!data->devices_attached) { + data->devices_attached = tmp; + + fail: if (ctx.dev_found) grub_device_close (ctx.dev_found); - data->devices_attached = tmp; return NULL; } } diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c index 9b389802a..ac33bcd68 100644 --- a/grub-core/fs/ext2.c +++ b/grub-core/fs/ext2.c @@ -46,6 +46,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -703,6 +704,7 @@ grub_ext2_read_symlink (grub_fshelp_node_t node) { char *symlink; struct grub_fshelp_node *diro = node; + grub_size_t sz; if (! diro->inode_read) { @@ -717,7 +719,13 @@ grub_ext2_read_symlink (grub_fshelp_node_t node) } } - symlink = grub_malloc (grub_le_to_cpu32 (diro->inode.size) + 1); + if (grub_add (grub_le_to_cpu32 (diro->inode.size), 1, &sz)) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + return NULL; + } + + symlink = grub_malloc (sz); if (! symlink) return 0; diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c index 4f1b52a55..7ba5b300b 100644 --- a/grub-core/fs/iso9660.c +++ b/grub-core/fs/iso9660.c @@ -28,6 +28,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -531,8 +532,13 @@ add_part (struct iterate_dir_ctx *ctx, int len2) { int size = ctx->symlink ? grub_strlen (ctx->symlink) : 0; + grub_size_t sz; - ctx->symlink = grub_realloc (ctx->symlink, size + len2 + 1); + if (grub_add (size, len2, &sz) || + grub_add (sz, 1, &sz)) + return; + + ctx->symlink = grub_realloc (ctx->symlink, sz); if (! ctx->symlink) return; @@ -560,17 +566,24 @@ susp_iterate_dir (struct grub_iso9660_susp_entry *entry, { grub_size_t off = 0, csize = 1; char *old; + grub_size_t sz; + csize = entry->len - 5; old = ctx->filename; if (ctx->filename_alloc) { off = grub_strlen (ctx->filename); - ctx->filename = grub_realloc (ctx->filename, csize + off + 1); + if (grub_add (csize, off, &sz) || + grub_add (sz, 1, &sz)) + return GRUB_ERR_OUT_OF_RANGE; + ctx->filename = grub_realloc (ctx->filename, sz); } else { off = 0; - ctx->filename = grub_zalloc (csize + 1); + if (grub_add (csize, 1, &sz)) + return GRUB_ERR_OUT_OF_RANGE; + ctx->filename = grub_zalloc (sz); } if (!ctx->filename) { @@ -776,14 +789,18 @@ grub_iso9660_iterate_dir (grub_fshelp_node_t dir, if (node->have_dirents >= node->alloc_dirents) { struct grub_fshelp_node *new_node; - node->alloc_dirents *= 2; - new_node = grub_realloc (node, - sizeof (struct grub_fshelp_node) - + ((node->alloc_dirents - - ARRAY_SIZE (node->dirents)) - * sizeof (node->dirents[0]))); + grub_size_t sz; + + if (grub_mul (node->alloc_dirents, 2, &node->alloc_dirents) || + grub_sub (node->alloc_dirents, ARRAY_SIZE (node->dirents), &sz) || + grub_mul (sz, sizeof (node->dirents[0]), &sz) || + grub_add (sz, sizeof (struct grub_fshelp_node), &sz)) + goto fail_0; + + new_node = grub_realloc (node, sz); if (!new_node) { + fail_0: if (ctx.filename_alloc) grub_free (ctx.filename); grub_free (node); @@ -799,14 +816,18 @@ grub_iso9660_iterate_dir (grub_fshelp_node_t dir, * sizeof (node->dirents[0]) < grub_strlen (ctx.symlink) + 1) { struct grub_fshelp_node *new_node; - new_node = grub_realloc (node, - sizeof (struct grub_fshelp_node) - + ((node->alloc_dirents - - ARRAY_SIZE (node->dirents)) - * sizeof (node->dirents[0])) - + grub_strlen (ctx.symlink) + 1); + grub_size_t sz; + + if (grub_sub (node->alloc_dirents, ARRAY_SIZE (node->dirents), &sz) || + grub_mul (sz, sizeof (node->dirents[0]), &sz) || + grub_add (sz, sizeof (struct grub_fshelp_node) + 1, &sz) || + grub_add (sz, grub_strlen (ctx.symlink), &sz)) + goto fail_1; + + new_node = grub_realloc (node, sz); if (!new_node) { + fail_1: if (ctx.filename_alloc) grub_free (ctx.filename); grub_free (node); diff --git a/grub-core/fs/sfs.c b/grub-core/fs/sfs.c index 90f7fb379..de2b107a4 100644 --- a/grub-core/fs/sfs.c +++ b/grub-core/fs/sfs.c @@ -26,6 +26,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -307,10 +308,15 @@ grub_sfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) if (node->cache && node->cache_size >= node->cache_allocated) { struct cache_entry *e = node->cache; - e = grub_realloc (node->cache,node->cache_allocated * 2 - * sizeof (e[0])); + grub_size_t sz; + + if (grub_mul (node->cache_allocated, 2 * sizeof (e[0]), &sz)) + goto fail; + + e = grub_realloc (node->cache, sz); if (!e) { + fail: grub_errno = 0; grub_free (node->cache); node->cache = 0; @@ -477,10 +483,16 @@ grub_sfs_create_node (struct grub_fshelp_node **node, grub_size_t len = grub_strlen (name); grub_uint8_t *name_u8; int ret; + grub_size_t sz; + + if (grub_mul (len, GRUB_MAX_UTF8_PER_LATIN1, &sz) || + grub_add (sz, 1, &sz)) + return 1; + *node = grub_malloc (sizeof (**node)); if (!*node) return 1; - name_u8 = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); + name_u8 = grub_malloc (sz); if (!name_u8) { grub_free (*node); @@ -724,8 +736,13 @@ grub_sfs_label (grub_device_t device, char **label) data = grub_sfs_mount (disk); if (data) { - grub_size_t len = grub_strlen (data->label); - *label = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); + grub_size_t sz, len = grub_strlen (data->label); + + if (grub_mul (len, GRUB_MAX_UTF8_PER_LATIN1, &sz) || + grub_add (sz, 1, &sz)) + return GRUB_ERR_OUT_OF_RANGE; + + *label = grub_malloc (sz); if (*label) *grub_latin1_to_utf8 ((grub_uint8_t *) *label, (const grub_uint8_t *) data->label, diff --git a/grub-core/fs/squash4.c b/grub-core/fs/squash4.c index 95d5c1e1f..785123894 100644 --- a/grub-core/fs/squash4.c +++ b/grub-core/fs/squash4.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include "xz.h" @@ -459,7 +460,17 @@ grub_squash_read_symlink (grub_fshelp_node_t node) { char *ret; grub_err_t err; - ret = grub_malloc (grub_le_to_cpu32 (node->ino.symlink.namelen) + 1); + grub_size_t sz; + + if (grub_add (grub_le_to_cpu32 (node->ino.symlink.namelen), 1, &sz)) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + return NULL; + } + + ret = grub_malloc (sz); + if (!ret) + return NULL; err = read_chunk (node->data, ret, grub_le_to_cpu32 (node->ino.symlink.namelen), @@ -506,11 +517,16 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, { grub_fshelp_node_t node; - node = grub_malloc (sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); + grub_size_t sz; + + if (grub_mul (dir->stsize, sizeof (dir->stack[0]), &sz) || + grub_add (sz, sizeof (*node), &sz)) + return 0; + + node = grub_malloc (sz); if (!node) return 0; - grub_memcpy (node, dir, - sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); + grub_memcpy (node, dir, sz); if (hook (".", GRUB_FSHELP_DIR, node, hook_data)) return 1; @@ -518,12 +534,15 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, { grub_err_t err; - node = grub_malloc (sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); + if (grub_mul (dir->stsize, sizeof (dir->stack[0]), &sz) || + grub_add (sz, sizeof (*node), &sz)) + return 0; + + node = grub_malloc (sz); if (!node) return 0; - grub_memcpy (node, dir, - sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); + grub_memcpy (node, dir, sz); node->stsize--; err = read_chunk (dir->data, &node->ino, sizeof (node->ino), @@ -557,6 +576,7 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, enum grub_fshelp_filetype filetype = GRUB_FSHELP_REG; struct grub_squash_dirent di; struct grub_squash_inode ino; + grub_size_t sz; err = read_chunk (dir->data, &di, sizeof (di), grub_le_to_cpu64 (dir->data->sb.diroffset) @@ -589,13 +609,16 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, if (grub_le_to_cpu16 (di.type) == SQUASH_TYPE_SYMLINK) filetype = GRUB_FSHELP_SYMLINK; - node = grub_malloc (sizeof (*node) - + (dir->stsize + 1) * sizeof (dir->stack[0])); + if (grub_add (dir->stsize, 1, &sz) || + grub_mul (sz, sizeof (dir->stack[0]), &sz) || + grub_add (sz, sizeof (*node), &sz)) + return 0; + + node = grub_malloc (sz); if (! node) return 0; - grub_memcpy (node, dir, - sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); + grub_memcpy (node, dir, sz - sizeof(dir->stack[0])); node->ino = ino; node->stack[node->stsize].ino_chunk = grub_le_to_cpu32 (dh.ino_chunk); diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c index a83761674..21ac7f446 100644 --- a/grub-core/fs/udf.c +++ b/grub-core/fs/udf.c @@ -28,6 +28,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -890,9 +891,19 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) utf16[i] = (raw[2 * i + 1] << 8) | raw[2*i + 2]; } if (!outbuf) - outbuf = grub_malloc (utf16len * GRUB_MAX_UTF8_PER_UTF16 + 1); + { + grub_size_t size; + + if (grub_mul (utf16len, GRUB_MAX_UTF8_PER_UTF16, &size) || + grub_add (size, 1, &size)) + goto fail; + + outbuf = grub_malloc (size); + } if (outbuf) *grub_utf16_to_utf8 ((grub_uint8_t *) outbuf, utf16, utf16len) = '\0'; + + fail: grub_free (utf16); return outbuf; } @@ -1005,7 +1016,7 @@ grub_udf_read_symlink (grub_fshelp_node_t node) grub_size_t sz = U64 (node->block.fe.file_size); grub_uint8_t *raw; const grub_uint8_t *ptr; - char *out, *optr; + char *out = NULL, *optr; if (sz < 4) return NULL; @@ -1013,14 +1024,16 @@ grub_udf_read_symlink (grub_fshelp_node_t node) if (!raw) return NULL; if (grub_udf_read_file (node, NULL, NULL, 0, sz, (char *) raw) < 0) - { - grub_free (raw); - return NULL; - } + goto fail_1; - out = grub_malloc (sz * 2 + 1); + if (grub_mul (sz, 2, &sz) || + grub_add (sz, 1, &sz)) + goto fail_0; + + out = grub_malloc (sz); if (!out) { + fail_0: grub_free (raw); return NULL; } @@ -1031,17 +1044,17 @@ grub_udf_read_symlink (grub_fshelp_node_t node) { grub_size_t s; if ((grub_size_t) (ptr - raw + 4) > sz) - goto fail; + goto fail_1; if (!(ptr[2] == 0 && ptr[3] == 0)) - goto fail; + goto fail_1; s = 4 + ptr[1]; if ((grub_size_t) (ptr - raw + s) > sz) - goto fail; + goto fail_1; switch (*ptr) { case 1: if (ptr[1]) - goto fail; + goto fail_1; /* Fallthrough. */ case 2: /* in 4 bytes. out: 1 byte. */ @@ -1066,11 +1079,11 @@ grub_udf_read_symlink (grub_fshelp_node_t node) if (optr != out) *optr++ = '/'; if (!read_string (ptr + 4, s - 4, optr)) - goto fail; + goto fail_1; optr += grub_strlen (optr); break; default: - goto fail; + goto fail_1; } ptr += s; } @@ -1078,7 +1091,7 @@ grub_udf_read_symlink (grub_fshelp_node_t node) grub_free (raw); return out; - fail: + fail_1: grub_free (raw); grub_free (out); grub_error (GRUB_ERR_BAD_FS, "invalid symlink"); diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c index 96ffecbfc..ea6590290 100644 --- a/grub-core/fs/xfs.c +++ b/grub-core/fs/xfs.c @@ -25,6 +25,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -899,6 +900,7 @@ static struct grub_xfs_data * grub_xfs_mount (grub_disk_t disk) { struct grub_xfs_data *data = 0; + grub_size_t sz; data = grub_zalloc (sizeof (struct grub_xfs_data)); if (!data) @@ -913,10 +915,11 @@ grub_xfs_mount (grub_disk_t disk) if (!grub_xfs_sb_valid(data)) goto fail; - data = grub_realloc (data, - sizeof (struct grub_xfs_data) - - sizeof (struct grub_xfs_inode) - + grub_xfs_inode_size(data) + 1); + if (grub_add (grub_xfs_inode_size (data), + sizeof (struct grub_xfs_data) - sizeof (struct grub_xfs_inode) + 1, &sz)) + goto fail; + + data = grub_realloc (data, sz); if (! data) goto fail; diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c index 381dde556..36d0373a6 100644 --- a/grub-core/fs/zfs/zfs.c +++ b/grub-core/fs/zfs/zfs.c @@ -55,6 +55,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -773,11 +774,14 @@ fill_vdev_info (struct grub_zfs_data *data, if (data->n_devices_attached > data->n_devices_allocated) { void *tmp; - data->n_devices_allocated = 2 * data->n_devices_attached + 1; - data->devices_attached - = grub_realloc (tmp = data->devices_attached, - data->n_devices_allocated - * sizeof (data->devices_attached[0])); + grub_size_t sz; + + if (grub_mul (data->n_devices_attached, 2, &data->n_devices_allocated) || + grub_add (data->n_devices_allocated, 1, &data->n_devices_allocated) || + grub_mul (data->n_devices_allocated, sizeof (data->devices_attached[0]), &sz)) + return GRUB_ERR_OUT_OF_RANGE; + + data->devices_attached = grub_realloc (tmp = data->devices_attached, sz); if (!data->devices_attached) { data->devices_attached = tmp; @@ -3468,14 +3472,18 @@ grub_zfs_nvlist_lookup_nvlist (const char *nvlist, const char *name) { char *nvpair; char *ret; - grub_size_t size; + grub_size_t size, sz; int found; found = nvlist_find_value (nvlist, name, DATA_TYPE_NVLIST, &nvpair, &size, 0); if (!found) return 0; - ret = grub_zalloc (size + 3 * sizeof (grub_uint32_t)); + + if (grub_add (size, 3 * sizeof (grub_uint32_t), &sz)) + return 0; + + ret = grub_zalloc (sz); if (!ret) return 0; grub_memcpy (ret, nvlist, sizeof (grub_uint32_t)); diff --git a/grub-core/fs/zfs/zfscrypt.c b/grub-core/fs/zfs/zfscrypt.c index 1402e0bc2..de3b015f5 100644 --- a/grub-core/fs/zfs/zfscrypt.c +++ b/grub-core/fs/zfs/zfscrypt.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -82,9 +83,13 @@ grub_zfs_add_key (grub_uint8_t *key_in, int passphrase) { struct grub_zfs_wrap_key *key; + grub_size_t sz; + if (!passphrase && keylen > 32) keylen = 32; - key = grub_malloc (sizeof (*key) + keylen); + if (grub_add (sizeof (*key), keylen, &sz)) + return GRUB_ERR_OUT_OF_RANGE; + key = grub_malloc (sz); if (!key) return grub_errno; key->is_passphrase = passphrase; diff --git a/grub-core/lib/arg.c b/grub-core/lib/arg.c index fd7744a6f..3288609a5 100644 --- a/grub-core/lib/arg.c +++ b/grub-core/lib/arg.c @@ -23,6 +23,7 @@ #include #include #include +#include /* Built-in parser for default options. */ static const struct grub_arg_option help_options[] = @@ -216,7 +217,13 @@ static inline grub_err_t add_arg (char ***argl, int *num, char *s) { char **p = *argl; - *argl = grub_realloc (*argl, (++(*num) + 1) * sizeof (char *)); + grub_size_t sz; + + if (grub_add (++(*num), 1, &sz) || + grub_mul (sz, sizeof (char *), &sz)) + return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + + *argl = grub_realloc (*argl, sz); if (! *argl) { grub_free (p); @@ -431,6 +438,7 @@ grub_arg_list_alloc(grub_extcmd_t extcmd, int argc, grub_size_t argcnt; struct grub_arg_list *list; const struct grub_arg_option *options; + grub_size_t sz0, sz1; options = extcmd->options; if (! options) @@ -443,7 +451,15 @@ grub_arg_list_alloc(grub_extcmd_t extcmd, int argc, argcnt += ((grub_size_t) argc + 1) / 2 + 1; /* max possible for any option */ } - list = grub_zalloc (sizeof (*list) * i + sizeof (char*) * argcnt); + if (grub_mul (sizeof (*list), i, &sz0) || + grub_mul (sizeof (char *), argcnt, &sz1) || + grub_add (sz0, sz1, &sz0)) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + return 0; + } + + list = grub_zalloc (sz0); if (! list) return 0; diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c index 3730ed382..b92cbe98d 100644 --- a/grub-core/loader/i386/bsd.c +++ b/grub-core/loader/i386/bsd.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #ifdef GRUB_MACHINE_PCBIOS #include @@ -1012,11 +1013,16 @@ grub_netbsd_add_modules (void) struct grub_netbsd_btinfo_modules *mods; unsigned i; grub_err_t err; + grub_size_t sz; for (mod = netbsd_mods; mod; mod = mod->next) modcnt++; - mods = grub_malloc (sizeof (*mods) + sizeof (mods->mods[0]) * modcnt); + if (grub_mul (modcnt, sizeof (mods->mods[0]), &sz) || + grub_add (sz, sizeof (*mods), &sz)) + return GRUB_ERR_OUT_OF_RANGE; + + mods = grub_malloc (sz); if (!mods) return grub_errno; diff --git a/grub-core/net/dns.c b/grub-core/net/dns.c index e332d5eb4..906ec7d67 100644 --- a/grub-core/net/dns.c +++ b/grub-core/net/dns.c @@ -22,6 +22,7 @@ #include #include #include +#include struct dns_cache_element { @@ -51,9 +52,15 @@ grub_net_add_dns_server (const struct grub_net_network_level_address *s) { int na = dns_servers_alloc * 2; struct grub_net_network_level_address *ns; + grub_size_t sz; + if (na < 8) na = 8; - ns = grub_realloc (dns_servers, na * sizeof (ns[0])); + + if (grub_mul (na, sizeof (ns[0]), &sz)) + return GRUB_ERR_OUT_OF_RANGE; + + ns = grub_realloc (dns_servers, sz); if (!ns) return grub_errno; dns_servers_alloc = na; diff --git a/grub-core/normal/charset.c b/grub-core/normal/charset.c index d57fb72fa..4dfcc3107 100644 --- a/grub-core/normal/charset.c +++ b/grub-core/normal/charset.c @@ -48,6 +48,7 @@ #include #include #include +#include #if HAVE_FONT_SOURCE #include "widthspec.h" @@ -464,6 +465,7 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, { struct grub_unicode_combining *n; unsigned j; + grub_size_t sz; if (!haveout) continue; @@ -477,10 +479,14 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, n = out->combining_inline; else if (out->ncomb > (int) ARRAY_SIZE (out->combining_inline)) { - n = grub_realloc (out->combining_ptr, - sizeof (n[0]) * (out->ncomb + 1)); + if (grub_add (out->ncomb, 1, &sz) || + grub_mul (sz, sizeof (n[0]), &sz)) + goto fail; + + n = grub_realloc (out->combining_ptr, sz); if (!n) { + fail: grub_errno = GRUB_ERR_NONE; continue; } diff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c index c57242e2e..de03fe63b 100644 --- a/grub-core/normal/cmdline.c +++ b/grub-core/normal/cmdline.c @@ -28,6 +28,7 @@ #include #include #include +#include static grub_uint32_t *kill_buf; @@ -307,12 +308,21 @@ cl_insert (struct cmdline_term *cl_terms, unsigned nterms, if (len + (*llen) >= (*max_len)) { grub_uint32_t *nbuf; - (*max_len) *= 2; - nbuf = grub_realloc ((*buf), sizeof (grub_uint32_t) * (*max_len)); + grub_size_t sz; + + if (grub_mul (*max_len, 2, max_len) || + grub_mul (*max_len, sizeof (grub_uint32_t), &sz)) + { + grub_errno = GRUB_ERR_OUT_OF_RANGE; + goto fail; + } + + nbuf = grub_realloc ((*buf), sz); if (nbuf) (*buf) = nbuf; else { + fail: grub_print_error (); grub_errno = GRUB_ERR_NONE; (*max_len) /= 2; diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c index 1993995be..50eef918c 100644 --- a/grub-core/normal/menu_entry.c +++ b/grub-core/normal/menu_entry.c @@ -27,6 +27,7 @@ #include #include #include +#include enum update_mode { @@ -113,10 +114,18 @@ ensure_space (struct line *linep, int extra) { if (linep->max_len < linep->len + extra) { - linep->max_len = 2 * (linep->len + extra); - linep->buf = grub_realloc (linep->buf, (linep->max_len + 1) * sizeof (linep->buf[0])); + grub_size_t sz0, sz1; + + if (grub_add (linep->len, extra, &sz0) || + grub_mul (sz0, 2, &sz0) || + grub_add (sz0, 1, &sz1) || + grub_mul (sz1, sizeof (linep->buf[0]), &sz1)) + return 0; + + linep->buf = grub_realloc (linep->buf, sz1); if (! linep->buf) return 0; + linep->max_len = sz0; } return 1; diff --git a/grub-core/script/argv.c b/grub-core/script/argv.c index 217ec5d1e..5751fdd57 100644 --- a/grub-core/script/argv.c +++ b/grub-core/script/argv.c @@ -20,6 +20,7 @@ #include #include #include +#include /* Return nearest power of two that is >= v. */ static unsigned @@ -81,11 +82,16 @@ int grub_script_argv_next (struct grub_script_argv *argv) { char **p = argv->args; + grub_size_t sz; if (argv->args && argv->argc && argv->args[argv->argc - 1] == 0) return 0; - p = grub_realloc (p, round_up_exp ((argv->argc + 2) * sizeof (char *))); + if (grub_add (argv->argc, 2, &sz) || + grub_mul (sz, sizeof (char *), &sz)) + return 1; + + p = grub_realloc (p, round_up_exp (sz)); if (! p) return 1; @@ -105,13 +111,19 @@ grub_script_argv_append (struct grub_script_argv *argv, const char *s, { grub_size_t a; char *p = argv->args[argv->argc - 1]; + grub_size_t sz; if (! s) return 0; a = p ? grub_strlen (p) : 0; - p = grub_realloc (p, round_up_exp ((a + slen + 1) * sizeof (char))); + if (grub_add (a, slen, &sz) || + grub_add (sz, 1, &sz) || + grub_mul (sz, sizeof (char), &sz)) + return 1; + + p = grub_realloc (p, round_up_exp (sz)); if (! p) return 1; diff --git a/grub-core/script/lexer.c b/grub-core/script/lexer.c index c6bd3172f..5fb0cbd0b 100644 --- a/grub-core/script/lexer.c +++ b/grub-core/script/lexer.c @@ -24,6 +24,7 @@ #include #include #include +#include #define yytext_ptr char * #include "grub_script.tab.h" @@ -110,10 +111,14 @@ grub_script_lexer_record (struct grub_parser_param *parser, char *str) old = lexer->recording; if (lexer->recordlen < len) lexer->recordlen = len; - lexer->recordlen *= 2; + + if (grub_mul (lexer->recordlen, 2, &lexer->recordlen)) + goto fail; + lexer->recording = grub_realloc (lexer->recording, lexer->recordlen); if (!lexer->recording) { + fail: grub_free (old); lexer->recordpos = 0; lexer->recordlen = 0; @@ -130,7 +135,7 @@ int grub_script_lexer_yywrap (struct grub_parser_param *parserstate, const char *input) { - grub_size_t len = 0; + grub_size_t len = 0, sz; char *p = 0; char *line = 0; YY_BUFFER_STATE buffer; @@ -168,12 +173,22 @@ grub_script_lexer_yywrap (struct grub_parser_param *parserstate, } else if (len && line[len - 1] != '\n') { - p = grub_realloc (line, len + 2); + if (grub_add (len, 2, &sz)) + { + grub_free (line); + grub_script_yyerror (parserstate, N_("overflow is detected")); + return 1; + } + + p = grub_realloc (line, sz); if (p) { p[len++] = '\n'; p[len] = '\0'; } + else + grub_free (line); + line = p; } diff --git a/grub-core/video/bitmap.c b/grub-core/video/bitmap.c index b2e031566..6256e209a 100644 --- a/grub-core/video/bitmap.c +++ b/grub-core/video/bitmap.c @@ -23,6 +23,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -58,7 +59,7 @@ grub_video_bitmap_create (struct grub_video_bitmap **bitmap, enum grub_video_blit_format blit_format) { struct grub_video_mode_info *mode_info; - unsigned int size; + grub_size_t size; if (!bitmap) return grub_error (GRUB_ERR_BUG, "invalid argument"); @@ -137,19 +138,25 @@ grub_video_bitmap_create (struct grub_video_bitmap **bitmap, mode_info->pitch = width * mode_info->bytes_per_pixel; - /* Calculate size needed for the data. */ - size = (width * mode_info->bytes_per_pixel) * height; + /* Calculate size needed for the data. */ + if (grub_mul (width, mode_info->bytes_per_pixel, &size) || + grub_mul (size, height, &size)) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + goto fail; + } (*bitmap)->data = grub_zalloc (size); if (! (*bitmap)->data) - { - grub_free (*bitmap); - *bitmap = 0; - - return grub_errno; - } + goto fail; return GRUB_ERR_NONE; + + fail: + grub_free (*bitmap); + *bitmap = NULL; + + return grub_errno; } /* Frees all resources allocated by bitmap. */ diff --git a/grub-core/video/readers/png.c b/grub-core/video/readers/png.c index 61bd64537..0157ff742 100644 --- a/grub-core/video/readers/png.c +++ b/grub-core/video/readers/png.c @@ -23,6 +23,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -301,9 +302,17 @@ grub_png_decode_image_header (struct grub_png_data *data) data->bpp <<= 1; data->color_bits = color_bits; - data->row_bytes = data->image_width * data->bpp; + + if (grub_mul (data->image_width, data->bpp, &data->row_bytes)) + return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + if (data->color_bits <= 4) - data->row_bytes = (data->image_width * data->color_bits + 7) / 8; + { + if (grub_mul (data->image_width, data->color_bits + 7, &data->row_bytes)) + return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + + data->row_bytes >>= 3; + } #ifndef GRUB_CPU_WORDS_BIGENDIAN if (data->is_16bit || data->is_gray || data->is_palette) -- 2.26.2 ================================================ FILE: boot/grub2/0007-iso9660-Don-t-leak-memory-on-realloc-failures.patch ================================================ From e0dd17a3ce79c6622dc78c96e1f2ef1b20e2bf7b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sat, 4 Jul 2020 12:25:09 -0400 Subject: [PATCH] iso9660: Don't leak memory on realloc() failures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Peter Jones Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/iso9660.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c index 7ba5b300b..5ec4433b8 100644 --- a/grub-core/fs/iso9660.c +++ b/grub-core/fs/iso9660.c @@ -533,14 +533,20 @@ add_part (struct iterate_dir_ctx *ctx, { int size = ctx->symlink ? grub_strlen (ctx->symlink) : 0; grub_size_t sz; + char *new; if (grub_add (size, len2, &sz) || grub_add (sz, 1, &sz)) return; - ctx->symlink = grub_realloc (ctx->symlink, sz); - if (! ctx->symlink) - return; + new = grub_realloc (ctx->symlink, sz); + if (!new) + { + grub_free (ctx->symlink); + ctx->symlink = NULL; + return; + } + ctx->symlink = new; grub_memcpy (ctx->symlink + size, part, len2); ctx->symlink[size + len2] = 0; @@ -634,7 +640,12 @@ susp_iterate_dir (struct grub_iso9660_susp_entry *entry, is the length. Both are part of the `Component Record'. */ if (ctx->symlink && !ctx->was_continue) - add_part (ctx, "/", 1); + { + add_part (ctx, "/", 1); + if (grub_errno) + return grub_errno; + } + add_part (ctx, (char *) &entry->data[pos + 2], entry->data[pos + 1]); ctx->was_continue = (entry->data[pos] & 1); @@ -653,6 +664,11 @@ susp_iterate_dir (struct grub_iso9660_susp_entry *entry, add_part (ctx, "/", 1); break; } + + /* Check if grub_realloc() failed in add_part(). */ + if (grub_errno) + return grub_errno; + /* In pos + 1 the length of the `Component Record' is stored. */ pos += entry->data[pos + 1] + 2; -- 2.26.2 ================================================ FILE: boot/grub2/0008-font-Do-not-load-more-than-one-NAME-section.patch ================================================ From 73bc7a964c9496d5b0f00dbd69959dacf5adcebe Mon Sep 17 00:00:00 2001 From: Daniel Kiper Date: Tue, 7 Jul 2020 15:36:26 +0200 Subject: [PATCH] font: Do not load more than one NAME section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The GRUB font file can have one NAME section only. Though if somebody crafts a broken font file with many NAME sections and loads it then the GRUB leaks memory. So, prevent against that by loading first NAME section and failing in controlled way on following one. Reported-by: Chris Coulson Signed-off-by: Daniel Kiper Reviewed-by: Jan Setje-Eilers Signed-off-by: Stefan Sørensen --- grub-core/font/font.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/grub-core/font/font.c b/grub-core/font/font.c index 5edb477ac..d09bb38d8 100644 --- a/grub-core/font/font.c +++ b/grub-core/font/font.c @@ -532,6 +532,12 @@ grub_font_load (const char *filename) if (grub_memcmp (section.name, FONT_FORMAT_SECTION_NAMES_FONT_NAME, sizeof (FONT_FORMAT_SECTION_NAMES_FONT_NAME) - 1) == 0) { + if (font->name != NULL) + { + grub_error (GRUB_ERR_BAD_FONT, "invalid font file: too many NAME sections"); + goto fail; + } + font->name = read_section_as_string (§ion); if (!font->name) goto fail; -- 2.26.2 ================================================ FILE: boot/grub2/0009-gfxmenu-Fix-double-free-in-load_image.patch ================================================ From 9ff609f0e7798bc5fb04f791131c98e7693bdd9b Mon Sep 17 00:00:00 2001 From: Alexey Makhalov Date: Wed, 8 Jul 2020 20:41:56 +0000 Subject: [PATCH] gfxmenu: Fix double free in load_image() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit self->bitmap should be zeroed after free. Otherwise, there is a chance to double free (USE_AFTER_FREE) it later in rescale_image(). Fixes: CID 292472 Signed-off-by: Alexey Makhalov Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/gfxmenu/gui_image.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/grub-core/gfxmenu/gui_image.c b/grub-core/gfxmenu/gui_image.c index 29784ed2d..6b2e976f1 100644 --- a/grub-core/gfxmenu/gui_image.c +++ b/grub-core/gfxmenu/gui_image.c @@ -195,7 +195,10 @@ load_image (grub_gui_image_t self, const char *path) return grub_errno; if (self->bitmap && (self->bitmap != self->raw_bitmap)) - grub_video_bitmap_destroy (self->bitmap); + { + grub_video_bitmap_destroy (self->bitmap); + self->bitmap = 0; + } if (self->raw_bitmap) grub_video_bitmap_destroy (self->raw_bitmap); -- 2.26.2 ================================================ FILE: boot/grub2/0010-xnu-Fix-double-free-in-grub_xnu_devprop_add_property.patch ================================================ From dc9777dc17697b196c415c53187a55861d41fd2a Mon Sep 17 00:00:00 2001 From: Alexey Makhalov Date: Wed, 8 Jul 2020 21:30:43 +0000 Subject: [PATCH] xnu: Fix double free in grub_xnu_devprop_add_property() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit grub_xnu_devprop_add_property() should not free utf8 and utf16 as it get allocated and freed in the caller. Minor improvement: do prop fields initialization after memory allocations. Fixes: CID 292442, CID 292457, CID 292460, CID 292466 Signed-off-by: Alexey Makhalov Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/loader/i386/xnu.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c index b7d176b5d..e9e119259 100644 --- a/grub-core/loader/i386/xnu.c +++ b/grub-core/loader/i386/xnu.c @@ -262,20 +262,19 @@ grub_xnu_devprop_add_property (struct grub_xnu_devprop_device_descriptor *dev, if (!prop) return grub_errno; - prop->name = utf8; - prop->name16 = utf16; - prop->name16len = utf16len; - - prop->length = datalen; - prop->data = grub_malloc (prop->length); + prop->data = grub_malloc (datalen); if (!prop->data) { - grub_free (prop->name); - grub_free (prop->name16); grub_free (prop); return grub_errno; } - grub_memcpy (prop->data, data, prop->length); + grub_memcpy (prop->data, data, datalen); + + prop->name = utf8; + prop->name16 = utf16; + prop->name16len = utf16len; + prop->length = datalen; + grub_list_push (GRUB_AS_LIST_P (&dev->properties), GRUB_AS_LIST (prop)); return GRUB_ERR_NONE; -- 2.26.2 ================================================ FILE: boot/grub2/0011-lzma-Make-sure-we-don-t-dereference-past-array.patch ================================================ From 78829f0c230680e386fff9f420bb1631bc20f761 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Thu, 9 Jul 2020 03:05:23 +0000 Subject: [PATCH] lzma: Make sure we don't dereference past array MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The two dimensional array p->posSlotEncoder[4][64] is being dereferenced using the GetLenToPosState() macro which checks if len is less than 5, and if so subtracts 2 from it. If len = 0, that is 0 - 2 = 4294967294. Obviously we don't want to dereference that far out so we check if the position found is greater or equal kNumLenToPosStates (4) and bail out. N.B.: Upstream LZMA 18.05 and later has this function completely rewritten without any history. Fixes: CID 51526 Signed-off-by: Konrad Rzeszutek Wilk Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/lib/LzmaEnc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/grub-core/lib/LzmaEnc.c b/grub-core/lib/LzmaEnc.c index f2ec04a8c..753e56a95 100644 --- a/grub-core/lib/LzmaEnc.c +++ b/grub-core/lib/LzmaEnc.c @@ -1877,13 +1877,19 @@ static SRes LzmaEnc_CodeOneBlock(CLzmaEnc *p, Bool useLimits, UInt32 maxPackSize } else { - UInt32 posSlot; + UInt32 posSlot, lenToPosState; RangeEnc_EncodeBit(&p->rc, &p->isRep[p->state], 0); p->state = kMatchNextStates[p->state]; LenEnc_Encode2(&p->lenEnc, &p->rc, len - LZMA_MATCH_LEN_MIN, posState, !p->fastMode, p->ProbPrices); pos -= LZMA_NUM_REPS; GetPosSlot(pos, posSlot); - RcTree_Encode(&p->rc, p->posSlotEncoder[GetLenToPosState(len)], kNumPosSlotBits, posSlot); + lenToPosState = GetLenToPosState(len); + if (lenToPosState >= kNumLenToPosStates) + { + p->result = SZ_ERROR_DATA; + return CheckErrors(p); + } + RcTree_Encode(&p->rc, p->posSlotEncoder[lenToPosState], kNumPosSlotBits, posSlot); if (posSlot >= kStartPosModelIndex) { -- 2.26.2 ================================================ FILE: boot/grub2/0012-term-Fix-overflow-on-user-inputs.patch ================================================ From 8d3b6f9da468f666e3a7976657f2ab5c52762a21 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Tue, 7 Jul 2020 15:12:25 -0400 Subject: [PATCH] term: Fix overflow on user inputs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This requires a very weird input from the serial interface but can cause an overflow in input_buf (keys) overwriting the next variable (npending) with the user choice: (pahole output) struct grub_terminfo_input_state { int input_buf[6]; /* 0 24 */ int npending; /* 24 4 */ <- CORRUPT ...snip... The magic string requires causing this is "ESC,O,],0,1,2,q" and we overflow npending with "q" (aka increase npending to 161). The simplest fix is to just to disallow overwrites input_buf, which exactly what this patch does. Fixes: CID 292449 Signed-off-by: Konrad Rzeszutek Wilk Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/term/terminfo.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c index d317efa36..5fa94c0c3 100644 --- a/grub-core/term/terminfo.c +++ b/grub-core/term/terminfo.c @@ -398,7 +398,7 @@ grub_terminfo_getwh (struct grub_term_output *term) } static void -grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, +grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, int max_len, int (*readkey) (struct grub_term_input *term)) { int c; @@ -414,6 +414,9 @@ grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, if (c == -1) \ return; \ \ + if (*len >= max_len) \ + return; \ + \ keys[*len] = c; \ (*len)++; \ } @@ -602,8 +605,8 @@ grub_terminfo_getkey (struct grub_term_input *termi) return ret; } - grub_terminfo_readkey (termi, data->input_buf, - &data->npending, data->readkey); + grub_terminfo_readkey (termi, data->input_buf, &data->npending, + GRUB_TERMINFO_READKEY_MAX_LEN, data->readkey); #if defined(__powerpc__) && defined(GRUB_MACHINE_IEEE1275) if (data->npending == 1 && data->input_buf[0] == GRUB_TERM_ESC -- 2.26.2 ================================================ FILE: boot/grub2/0013-udf-Fix-memory-leak.patch ================================================ From 748b691761d31bfff7e9d0d210caa606294c2b52 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Tue, 7 Jul 2020 22:02:31 -0400 Subject: [PATCH] udf: Fix memory leak MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: CID 73796 Signed-off-by: Konrad Rzeszutek Wilk Reviewed-by: Daniel Kiper Reviewed-by: Jan Setje-Eilers Signed-off-by: Stefan Sørensen --- grub-core/fs/udf.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c index 21ac7f446..2ac5c1d00 100644 --- a/grub-core/fs/udf.c +++ b/grub-core/fs/udf.c @@ -965,8 +965,10 @@ grub_udf_iterate_dir (grub_fshelp_node_t dir, return 0; if (grub_udf_read_icb (dir->data, &dirent.icb, child)) - return 0; - + { + grub_free (child); + return 0; + } if (dirent.characteristics & GRUB_UDF_FID_CHAR_PARENT) { /* This is the parent directory. */ @@ -988,11 +990,18 @@ grub_udf_iterate_dir (grub_fshelp_node_t dir, dirent.file_ident_length, (char *) raw)) != dirent.file_ident_length) - return 0; + { + grub_free (child); + return 0; + } filename = read_string (raw, dirent.file_ident_length, 0); if (!filename) - grub_print_error (); + { + /* As the hook won't get called. */ + grub_free (child); + grub_print_error (); + } if (filename && hook (filename, type, child, hook_data)) { -- 2.26.2 ================================================ FILE: boot/grub2/0014-multiboot2-Fix-memory-leak-if-grub_create_loader_cmd.patch ================================================ From 49bf3faa106498e151306fc780c63194a14751e3 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Fri, 26 Jun 2020 10:51:43 -0400 Subject: [PATCH] multiboot2: Fix memory leak if grub_create_loader_cmdline() fails MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: CID 292468 Signed-off-by: Konrad Rzeszutek Wilk Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/loader/multiboot_mbi2.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c index 53da78615..0efc66062 100644 --- a/grub-core/loader/multiboot_mbi2.c +++ b/grub-core/loader/multiboot_mbi2.c @@ -1070,7 +1070,11 @@ grub_multiboot2_add_module (grub_addr_t start, grub_size_t size, err = grub_create_loader_cmdline (argc, argv, newmod->cmdline, newmod->cmdline_size, GRUB_VERIFY_MODULE_CMDLINE); if (err) - return err; + { + grub_free (newmod->cmdline); + grub_free (newmod); + return err; + } if (modules_last) modules_last->next = newmod; -- 2.26.2 ================================================ FILE: boot/grub2/0015-tftp-Do-not-use-priority-queue.patch ================================================ From b6c4a1b204740fe52b32e7f530831a59f4038e20 Mon Sep 17 00:00:00 2001 From: Alexey Makhalov Date: Thu, 9 Jul 2020 08:10:40 +0000 Subject: [PATCH] tftp: Do not use priority queue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There is not need to reassemble the order of blocks. Per RFC 1350, server must wait for the ACK, before sending next block. Data packets can be served immediately without putting them to priority queue. Logic to handle incoming packet is this: - if packet block id equal to expected block id, then process the packet, - if packet block id is less than expected - this is retransmit of old packet, then ACK it and drop the packet, - if packet block id is more than expected - that shouldn't happen, just drop the packet. It makes the tftp receive path code simpler, smaller and faster. As a benefit, this change fixes CID# 73624 and CID# 96690, caused by following while loop: while (cmp_block (grub_be_to_cpu16 (tftph->u.data.block), data->block + 1) == 0) where tftph pointer is not moving from one iteration to another, causing to serve same packet again. Luckily, double serving didn't happen due to data->block++ during the first iteration. Fixes: CID 73624, CID 96690 Signed-off-by: Alexey Makhalov Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/net/tftp.c | 168 ++++++++++++++----------------------------- 1 file changed, 53 insertions(+), 115 deletions(-) diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c index 7d90bf66e..b4297bc8d 100644 --- a/grub-core/net/tftp.c +++ b/grub-core/net/tftp.c @@ -25,7 +25,6 @@ #include #include #include -#include #include GRUB_MOD_LICENSE ("GPLv3+"); @@ -106,31 +105,8 @@ typedef struct tftp_data int have_oack; struct grub_error_saved save_err; grub_net_udp_socket_t sock; - grub_priority_queue_t pq; } *tftp_data_t; -static int -cmp_block (grub_uint16_t a, grub_uint16_t b) -{ - grub_int16_t i = (grub_int16_t) (a - b); - if (i > 0) - return +1; - if (i < 0) - return -1; - return 0; -} - -static int -cmp (const void *a__, const void *b__) -{ - struct grub_net_buff *a_ = *(struct grub_net_buff **) a__; - struct grub_net_buff *b_ = *(struct grub_net_buff **) b__; - struct tftphdr *a = (struct tftphdr *) a_->data; - struct tftphdr *b = (struct tftphdr *) b_->data; - /* We want the first elements to be on top. */ - return -cmp_block (grub_be_to_cpu16 (a->u.data.block), grub_be_to_cpu16 (b->u.data.block)); -} - static grub_err_t ack (tftp_data_t data, grub_uint64_t block) { @@ -207,73 +183,60 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)), return GRUB_ERR_NONE; } - err = grub_priority_queue_push (data->pq, &nb); - if (err) - return err; - - { - struct grub_net_buff **nb_top_p, *nb_top; - while (1) - { - nb_top_p = grub_priority_queue_top (data->pq); - if (!nb_top_p) - return GRUB_ERR_NONE; - nb_top = *nb_top_p; - tftph = (struct tftphdr *) nb_top->data; - if (cmp_block (grub_be_to_cpu16 (tftph->u.data.block), data->block + 1) >= 0) - break; - ack (data, grub_be_to_cpu16 (tftph->u.data.block)); - grub_netbuff_free (nb_top); - grub_priority_queue_pop (data->pq); - } - while (cmp_block (grub_be_to_cpu16 (tftph->u.data.block), data->block + 1) == 0) - { - unsigned size; - - grub_priority_queue_pop (data->pq); - - if (file->device->net->packs.count < 50) + /* Ack old/retransmitted block. */ + if (grub_be_to_cpu16 (tftph->u.data.block) < data->block + 1) + ack (data, grub_be_to_cpu16 (tftph->u.data.block)); + /* Ignore unexpected block. */ + else if (grub_be_to_cpu16 (tftph->u.data.block) > data->block + 1) + grub_dprintf ("tftp", "TFTP unexpected block # %d\n", tftph->u.data.block); + else + { + unsigned size; + + if (file->device->net->packs.count < 50) + { err = ack (data, data->block + 1); - else - { - file->device->net->stall = 1; - err = 0; - } - if (err) - return err; - - err = grub_netbuff_pull (nb_top, sizeof (tftph->opcode) + - sizeof (tftph->u.data.block)); - if (err) - return err; - size = nb_top->tail - nb_top->data; - - data->block++; - if (size < data->block_size) - { - if (data->ack_sent < data->block) - ack (data, data->block); - file->device->net->eof = 1; - file->device->net->stall = 1; - grub_net_udp_close (data->sock); - data->sock = NULL; - } - /* Prevent garbage in broken cards. Is it still necessary - given that IP implementation has been fixed? - */ - if (size > data->block_size) - { - err = grub_netbuff_unput (nb_top, size - data->block_size); - if (err) - return err; - } - /* If there is data, puts packet in socket list. */ - if ((nb_top->tail - nb_top->data) > 0) - grub_net_put_packet (&file->device->net->packs, nb_top); - else - grub_netbuff_free (nb_top); - } - } + if (err) + return err; + } + else + file->device->net->stall = 1; + + err = grub_netbuff_pull (nb, sizeof (tftph->opcode) + + sizeof (tftph->u.data.block)); + if (err) + return err; + size = nb->tail - nb->data; + + data->block++; + if (size < data->block_size) + { + if (data->ack_sent < data->block) + ack (data, data->block); + file->device->net->eof = 1; + file->device->net->stall = 1; + grub_net_udp_close (data->sock); + data->sock = NULL; + } + /* + * Prevent garbage in broken cards. Is it still necessary + * given that IP implementation has been fixed? + */ + if (size > data->block_size) + { + err = grub_netbuff_unput (nb, size - data->block_size); + if (err) + return err; + } + /* If there is data, puts packet in socket list. */ + if ((nb->tail - nb->data) > 0) + { + grub_net_put_packet (&file->device->net->packs, nb); + /* Do not free nb. */ + return GRUB_ERR_NONE; + } + } + grub_netbuff_free (nb); return GRUB_ERR_NONE; case TFTP_ERROR: data->have_oack = 1; @@ -287,19 +250,6 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)), } } -static void -destroy_pq (tftp_data_t data) -{ - struct grub_net_buff **nb_p; - while ((nb_p = grub_priority_queue_top (data->pq))) - { - grub_netbuff_free (*nb_p); - grub_priority_queue_pop (data->pq); - } - - grub_priority_queue_destroy (data->pq); -} - static grub_err_t tftp_open (struct grub_file *file, const char *filename) { @@ -372,17 +322,9 @@ tftp_open (struct grub_file *file, const char *filename) file->not_easily_seekable = 1; file->data = data; - data->pq = grub_priority_queue_new (sizeof (struct grub_net_buff *), cmp); - if (!data->pq) - { - grub_free (data); - return grub_errno; - } - err = grub_net_resolve_address (file->device->net->server, &addr); if (err) { - destroy_pq (data); grub_free (data); return err; } @@ -392,7 +334,6 @@ tftp_open (struct grub_file *file, const char *filename) file); if (!data->sock) { - destroy_pq (data); grub_free (data); return grub_errno; } @@ -406,7 +347,6 @@ tftp_open (struct grub_file *file, const char *filename) if (err) { grub_net_udp_close (data->sock); - destroy_pq (data); grub_free (data); return err; } @@ -423,7 +363,6 @@ tftp_open (struct grub_file *file, const char *filename) if (grub_errno) { grub_net_udp_close (data->sock); - destroy_pq (data); grub_free (data); return grub_errno; } @@ -466,7 +405,6 @@ tftp_close (struct grub_file *file) grub_print_error (); grub_net_udp_close (data->sock); } - destroy_pq (data); grub_free (data); return GRUB_ERR_NONE; } -- 2.26.2 ================================================ FILE: boot/grub2/0016-relocator-Protect-grub_relocator_alloc_chunk_addr-in.patch ================================================ From 1c7b619c84f229c1602c1958bcd054b6d9937562 Mon Sep 17 00:00:00 2001 From: Alexey Makhalov Date: Wed, 15 Jul 2020 06:42:37 +0000 Subject: [PATCH] relocator: Protect grub_relocator_alloc_chunk_addr() input args against integer underflow/overflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use arithmetic macros from safemath.h to accomplish it. In this commit, I didn't want to be too paranoid to check every possible math equation for overflow/underflow. Only obvious places (with non zero chance of overflow/underflow) were refactored. Signed-off-by: Alexey Makhalov Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/loader/i386/linux.c | 9 +++++++-- grub-core/loader/i386/pc/linux.c | 9 +++++++-- grub-core/loader/i386/xen.c | 12 ++++++++++-- grub-core/loader/xnu.c | 11 +++++++---- 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c index d0501e229..02a73463a 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c @@ -36,6 +36,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -547,9 +548,13 @@ grub_linux_boot (void) { grub_relocator_chunk_t ch; + grub_size_t sz; + + if (grub_add (ctx.real_size, efi_mmap_size, &sz)) + return GRUB_ERR_OUT_OF_RANGE; + err = grub_relocator_alloc_chunk_addr (relocator, &ch, - ctx.real_mode_target, - (ctx.real_size + efi_mmap_size)); + ctx.real_mode_target, sz); if (err) return err; real_mode_mem = get_virtual_current_address (ch); diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c index 47ea2945e..31f09922b 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c @@ -35,6 +35,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -218,8 +219,12 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), setup_sects = GRUB_LINUX_DEFAULT_SETUP_SECTS; real_size = setup_sects << GRUB_DISK_SECTOR_BITS; - grub_linux16_prot_size = grub_file_size (file) - - real_size - GRUB_DISK_SECTOR_SIZE; + if (grub_sub (grub_file_size (file), real_size, &grub_linux16_prot_size) || + grub_sub (grub_linux16_prot_size, GRUB_DISK_SECTOR_SIZE, &grub_linux16_prot_size)) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + goto fail; + } if (! grub_linux_is_bzimage && GRUB_LINUX_ZIMAGE_ADDR + grub_linux16_prot_size diff --git a/grub-core/loader/i386/xen.c b/grub-core/loader/i386/xen.c index 8f662c8ac..cd24874ca 100644 --- a/grub-core/loader/i386/xen.c +++ b/grub-core/loader/i386/xen.c @@ -41,6 +41,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -636,6 +637,7 @@ grub_cmd_xen (grub_command_t cmd __attribute__ ((unused)), grub_relocator_chunk_t ch; grub_addr_t kern_start; grub_addr_t kern_end; + grub_size_t sz; if (argc == 0) return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); @@ -703,8 +705,14 @@ grub_cmd_xen (grub_command_t cmd __attribute__ ((unused)), xen_state.max_addr = ALIGN_UP (kern_end, PAGE_SIZE); - err = grub_relocator_alloc_chunk_addr (xen_state.relocator, &ch, kern_start, - kern_end - kern_start); + + if (grub_sub (kern_end, kern_start, &sz)) + { + err = GRUB_ERR_OUT_OF_RANGE; + goto fail; + } + + err = grub_relocator_alloc_chunk_addr (xen_state.relocator, &ch, kern_start, sz); if (err) goto fail; kern_chunk_src = get_virtual_current_address (ch); diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c index 77d7060e1..9ae4ceb35 100644 --- a/grub-core/loader/xnu.c +++ b/grub-core/loader/xnu.c @@ -34,6 +34,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -59,15 +60,17 @@ grub_xnu_heap_malloc (int size, void **src, grub_addr_t *target) { grub_err_t err; grub_relocator_chunk_t ch; + grub_addr_t tgt; + + if (grub_add (grub_xnu_heap_target_start, grub_xnu_heap_size, &tgt)) + return GRUB_ERR_OUT_OF_RANGE; - err = grub_relocator_alloc_chunk_addr (grub_xnu_relocator, &ch, - grub_xnu_heap_target_start - + grub_xnu_heap_size, size); + err = grub_relocator_alloc_chunk_addr (grub_xnu_relocator, &ch, tgt, size); if (err) return err; *src = get_virtual_current_address (ch); - *target = grub_xnu_heap_target_start + grub_xnu_heap_size; + *target = tgt; grub_xnu_heap_size += size; grub_dprintf ("xnu", "val=%p\n", *src); return GRUB_ERR_NONE; -- 2.26.2 ================================================ FILE: boot/grub2/0017-relocator-Protect-grub_relocator_alloc_chunk_align-m.patch ================================================ From 0cfbbca3ccd84d36ffb1bcd6644ada7c73b19fc0 Mon Sep 17 00:00:00 2001 From: Alexey Makhalov Date: Wed, 8 Jul 2020 01:44:38 +0000 Subject: [PATCH] relocator: Protect grub_relocator_alloc_chunk_align() max_addr against integer underflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit introduces integer underflow mitigation in max_addr calculation in grub_relocator_alloc_chunk_align() invocation. It consists of 2 fixes: 1. Introduced grub_relocator_alloc_chunk_align_safe() wrapper function to perform sanity check for min/max and size values, and to make safe invocation of grub_relocator_alloc_chunk_align() with validated max_addr value. Replace all invocations such as grub_relocator_alloc_chunk_align(..., min_addr, max_addr - size, size, ...) by grub_relocator_alloc_chunk_align_safe(..., min_addr, max_addr, size, ...). 2. Introduced UP_TO_TOP32(s) macro for the cases where max_addr is 32-bit top address (0xffffffff - size + 1) or similar. Signed-off-by: Alexey Makhalov Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/lib/i386/relocator.c | 28 ++++++++++---------------- grub-core/lib/mips/relocator.c | 6 ++---- grub-core/lib/powerpc/relocator.c | 6 ++---- grub-core/lib/x86_64/efi/relocator.c | 7 +++---- grub-core/loader/i386/linux.c | 5 ++--- grub-core/loader/i386/multiboot_mbi.c | 7 +++---- grub-core/loader/i386/pc/linux.c | 6 ++---- grub-core/loader/mips/linux.c | 9 +++------ grub-core/loader/multiboot.c | 2 +- grub-core/loader/multiboot_elfxx.c | 10 ++++----- grub-core/loader/multiboot_mbi2.c | 10 ++++----- grub-core/loader/xnu_resume.c | 2 +- include/grub/relocator.h | 29 +++++++++++++++++++++++++++ 13 files changed, 69 insertions(+), 58 deletions(-) diff --git a/grub-core/lib/i386/relocator.c b/grub-core/lib/i386/relocator.c index 71dd4f0ab..34cbe834f 100644 --- a/grub-core/lib/i386/relocator.c +++ b/grub-core/lib/i386/relocator.c @@ -83,11 +83,10 @@ grub_relocator32_boot (struct grub_relocator *rel, /* Specific memory range due to Global Descriptor Table for use by payload that we will store in returned chunk. The address range and preference are based on "THE LINUX/x86 BOOT PROTOCOL" specification. */ - err = grub_relocator_alloc_chunk_align (rel, &ch, 0x1000, - 0x9a000 - RELOCATOR_SIZEOF (32), - RELOCATOR_SIZEOF (32), 16, - GRUB_RELOCATOR_PREFERENCE_LOW, - avoid_efi_bootservices); + err = grub_relocator_alloc_chunk_align_safe (rel, &ch, 0x1000, 0x9a000, + RELOCATOR_SIZEOF (32), 16, + GRUB_RELOCATOR_PREFERENCE_LOW, + avoid_efi_bootservices); if (err) return err; @@ -125,13 +124,10 @@ grub_relocator16_boot (struct grub_relocator *rel, grub_relocator_chunk_t ch; /* Put it higher than the byte it checks for A20 check. */ - err = grub_relocator_alloc_chunk_align (rel, &ch, 0x8010, - 0xa0000 - RELOCATOR_SIZEOF (16) - - GRUB_RELOCATOR16_STACK_SIZE, - RELOCATOR_SIZEOF (16) - + GRUB_RELOCATOR16_STACK_SIZE, 16, - GRUB_RELOCATOR_PREFERENCE_NONE, - 0); + err = grub_relocator_alloc_chunk_align_safe (rel, &ch, 0x8010, 0xa0000, + RELOCATOR_SIZEOF (16) + + GRUB_RELOCATOR16_STACK_SIZE, 16, + GRUB_RELOCATOR_PREFERENCE_NONE, 0); if (err) return err; @@ -183,11 +179,9 @@ grub_relocator64_boot (struct grub_relocator *rel, void *relst; grub_relocator_chunk_t ch; - err = grub_relocator_alloc_chunk_align (rel, &ch, min_addr, - max_addr - RELOCATOR_SIZEOF (64), - RELOCATOR_SIZEOF (64), 16, - GRUB_RELOCATOR_PREFERENCE_NONE, - 0); + err = grub_relocator_alloc_chunk_align_safe (rel, &ch, min_addr, max_addr, + RELOCATOR_SIZEOF (64), 16, + GRUB_RELOCATOR_PREFERENCE_NONE, 0); if (err) return err; diff --git a/grub-core/lib/mips/relocator.c b/grub-core/lib/mips/relocator.c index 9d5f49cb9..743b213e6 100644 --- a/grub-core/lib/mips/relocator.c +++ b/grub-core/lib/mips/relocator.c @@ -120,10 +120,8 @@ grub_relocator32_boot (struct grub_relocator *rel, unsigned i; grub_addr_t vtarget; - err = grub_relocator_alloc_chunk_align (rel, &ch, 0, - (0xffffffff - stateset_size) - + 1, stateset_size, - sizeof (grub_uint32_t), + err = grub_relocator_alloc_chunk_align (rel, &ch, 0, UP_TO_TOP32 (stateset_size), + stateset_size, sizeof (grub_uint32_t), GRUB_RELOCATOR_PREFERENCE_NONE, 0); if (err) return err; diff --git a/grub-core/lib/powerpc/relocator.c b/grub-core/lib/powerpc/relocator.c index bdf2b111b..8ffb8b686 100644 --- a/grub-core/lib/powerpc/relocator.c +++ b/grub-core/lib/powerpc/relocator.c @@ -115,10 +115,8 @@ grub_relocator32_boot (struct grub_relocator *rel, unsigned i; grub_relocator_chunk_t ch; - err = grub_relocator_alloc_chunk_align (rel, &ch, 0, - (0xffffffff - stateset_size) - + 1, stateset_size, - sizeof (grub_uint32_t), + err = grub_relocator_alloc_chunk_align (rel, &ch, 0, UP_TO_TOP32 (stateset_size), + stateset_size, sizeof (grub_uint32_t), GRUB_RELOCATOR_PREFERENCE_NONE, 0); if (err) return err; diff --git a/grub-core/lib/x86_64/efi/relocator.c b/grub-core/lib/x86_64/efi/relocator.c index 3caef7a40..7d200a125 100644 --- a/grub-core/lib/x86_64/efi/relocator.c +++ b/grub-core/lib/x86_64/efi/relocator.c @@ -50,10 +50,9 @@ grub_relocator64_efi_boot (struct grub_relocator *rel, * 64-bit relocator code may live above 4 GiB quite well. * However, I do not want ask for problems. Just in case. */ - err = grub_relocator_alloc_chunk_align (rel, &ch, 0, - 0x100000000 - RELOCATOR_SIZEOF (64_efi), - RELOCATOR_SIZEOF (64_efi), 16, - GRUB_RELOCATOR_PREFERENCE_NONE, 1); + err = grub_relocator_alloc_chunk_align_safe (rel, &ch, 0, 0x100000000, + RELOCATOR_SIZEOF (64_efi), 16, + GRUB_RELOCATOR_PREFERENCE_NONE, 1); if (err) return err; diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c index 02a73463a..efbb99307 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c @@ -181,9 +181,8 @@ allocate_pages (grub_size_t prot_size, grub_size_t *align, for (; err && *align + 1 > min_align; (*align)--) { grub_errno = GRUB_ERR_NONE; - err = grub_relocator_alloc_chunk_align (relocator, &ch, - 0x1000000, - 0xffffffff & ~prot_size, + err = grub_relocator_alloc_chunk_align (relocator, &ch, 0x1000000, + UP_TO_TOP32 (prot_size), prot_size, 1 << *align, GRUB_RELOCATOR_PREFERENCE_LOW, 1); diff --git a/grub-core/loader/i386/multiboot_mbi.c b/grub-core/loader/i386/multiboot_mbi.c index ad3cc292f..a67d9d0a8 100644 --- a/grub-core/loader/i386/multiboot_mbi.c +++ b/grub-core/loader/i386/multiboot_mbi.c @@ -466,10 +466,9 @@ grub_multiboot_make_mbi (grub_uint32_t *target) bufsize = grub_multiboot_get_mbi_size (); - err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch, - 0x10000, 0xa0000 - bufsize, - bufsize, 4, - GRUB_RELOCATOR_PREFERENCE_NONE, 0); + err = grub_relocator_alloc_chunk_align_safe (grub_multiboot_relocator, &ch, + 0x10000, 0xa0000, bufsize, 4, + GRUB_RELOCATOR_PREFERENCE_NONE, 0); if (err) return err; ptrorig = get_virtual_current_address (ch); diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c index 31f09922b..5fed5ffdf 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c @@ -453,10 +453,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), { grub_relocator_chunk_t ch; - err = grub_relocator_alloc_chunk_align (relocator, &ch, - addr_min, addr_max - size, - size, 0x1000, - GRUB_RELOCATOR_PREFERENCE_HIGH, 0); + err = grub_relocator_alloc_chunk_align_safe (relocator, &ch, addr_min, addr_max, size, + 0x1000, GRUB_RELOCATOR_PREFERENCE_HIGH, 0); if (err) return err; initrd_chunk = get_virtual_current_address (ch); diff --git a/grub-core/loader/mips/linux.c b/grub-core/loader/mips/linux.c index 7b723bf18..e4ed95921 100644 --- a/grub-core/loader/mips/linux.c +++ b/grub-core/loader/mips/linux.c @@ -442,12 +442,9 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), { grub_relocator_chunk_t ch; - err = grub_relocator_alloc_chunk_align (relocator, &ch, - (target_addr & 0x1fffffff) - + linux_size + 0x10000, - (0x10000000 - size), - size, 0x10000, - GRUB_RELOCATOR_PREFERENCE_NONE, 0); + err = grub_relocator_alloc_chunk_align_safe (relocator, &ch, (target_addr & 0x1fffffff) + + linux_size + 0x10000, 0x10000000, size, + 0x10000, GRUB_RELOCATOR_PREFERENCE_NONE, 0); if (err) goto fail; diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c index 4a98d7082..facb13f3d 100644 --- a/grub-core/loader/multiboot.c +++ b/grub-core/loader/multiboot.c @@ -403,7 +403,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), { grub_relocator_chunk_t ch; err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, - lowest_addr, (0xffffffff - size) + 1, + lowest_addr, UP_TO_TOP32 (size), size, MULTIBOOT_MOD_ALIGN, GRUB_RELOCATOR_PREFERENCE_NONE, 1); if (err) diff --git a/grub-core/loader/multiboot_elfxx.c b/grub-core/loader/multiboot_elfxx.c index cc6853692..f2318e0d1 100644 --- a/grub-core/loader/multiboot_elfxx.c +++ b/grub-core/loader/multiboot_elfxx.c @@ -109,10 +109,10 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) if (load_size > mld->max_addr || mld->min_addr > mld->max_addr - load_size) return grub_error (GRUB_ERR_BAD_OS, "invalid min/max address and/or load size"); - err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, - mld->min_addr, mld->max_addr - load_size, - load_size, mld->align ? mld->align : 1, - mld->preference, mld->avoid_efi_boot_services); + err = grub_relocator_alloc_chunk_align_safe (GRUB_MULTIBOOT (relocator), &ch, + mld->min_addr, mld->max_addr, + load_size, mld->align ? mld->align : 1, + mld->preference, mld->avoid_efi_boot_services); if (err) { @@ -256,7 +256,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) continue; err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, 0, - (0xffffffff - sh->sh_size) + 1, + UP_TO_TOP32 (sh->sh_size), sh->sh_size, sh->sh_addralign, GRUB_RELOCATOR_PREFERENCE_NONE, mld->avoid_efi_boot_services); diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c index 0efc66062..03967839c 100644 --- a/grub-core/loader/multiboot_mbi2.c +++ b/grub-core/loader/multiboot_mbi2.c @@ -295,10 +295,10 @@ grub_multiboot2_load (grub_file_t file, const char *filename) return grub_error (GRUB_ERR_BAD_OS, "invalid min/max address and/or load size"); } - err = grub_relocator_alloc_chunk_align (grub_multiboot2_relocator, &ch, - mld.min_addr, mld.max_addr - code_size, - code_size, mld.align ? mld.align : 1, - mld.preference, keep_bs); + err = grub_relocator_alloc_chunk_align_safe (grub_multiboot2_relocator, &ch, + mld.min_addr, mld.max_addr, + code_size, mld.align ? mld.align : 1, + mld.preference, keep_bs); } else err = grub_relocator_alloc_chunk_addr (grub_multiboot2_relocator, @@ -708,7 +708,7 @@ grub_multiboot2_make_mbi (grub_uint32_t *target) COMPILE_TIME_ASSERT (MULTIBOOT_TAG_ALIGN % sizeof (grub_properly_aligned_t) == 0); err = grub_relocator_alloc_chunk_align (grub_multiboot2_relocator, &ch, - 0, 0xffffffff - bufsize, + 0, UP_TO_TOP32 (bufsize), bufsize, MULTIBOOT_TAG_ALIGN, GRUB_RELOCATOR_PREFERENCE_NONE, 1); if (err) diff --git a/grub-core/loader/xnu_resume.c b/grub-core/loader/xnu_resume.c index 8089804d4..d648ef0cd 100644 --- a/grub-core/loader/xnu_resume.c +++ b/grub-core/loader/xnu_resume.c @@ -129,7 +129,7 @@ grub_xnu_resume (char *imagename) { grub_relocator_chunk_t ch; err = grub_relocator_alloc_chunk_align (grub_xnu_relocator, &ch, 0, - (0xffffffff - hibhead.image_size) + 1, + UP_TO_TOP32 (hibhead.image_size), hibhead.image_size, GRUB_XNU_PAGESIZE, GRUB_RELOCATOR_PREFERENCE_NONE, 0); diff --git a/include/grub/relocator.h b/include/grub/relocator.h index 24d8672d2..1b3bdd92a 100644 --- a/include/grub/relocator.h +++ b/include/grub/relocator.h @@ -49,6 +49,35 @@ grub_relocator_alloc_chunk_align (struct grub_relocator *rel, int preference, int avoid_efi_boot_services); +/* + * Wrapper for grub_relocator_alloc_chunk_align() with purpose of + * protecting against integer underflow. + * + * Compare to its callee, max_addr has different meaning here. + * It covers entire chunk and not just start address of the chunk. + */ +static inline grub_err_t +grub_relocator_alloc_chunk_align_safe (struct grub_relocator *rel, + grub_relocator_chunk_t *out, + grub_phys_addr_t min_addr, + grub_phys_addr_t max_addr, + grub_size_t size, grub_size_t align, + int preference, + int avoid_efi_boot_services) +{ + /* Sanity check and ensure following equation (max_addr - size) is safe. */ + if (max_addr < size || (max_addr - size) < min_addr) + return GRUB_ERR_OUT_OF_RANGE; + + return grub_relocator_alloc_chunk_align (rel, out, min_addr, + max_addr - size, + size, align, preference, + avoid_efi_boot_services); +} + +/* Top 32-bit address minus s bytes and plus 1 byte. */ +#define UP_TO_TOP32(s) ((~(s) & 0xffffffff) + 1) + #define GRUB_RELOCATOR_PREFERENCE_NONE 0 #define GRUB_RELOCATOR_PREFERENCE_LOW 1 #define GRUB_RELOCATOR_PREFERENCE_HIGH 2 -- 2.26.2 ================================================ FILE: boot/grub2/0018-script-Remove-unused-fields-from-grub_script_functio.patch ================================================ From 73aa0776457066ee6ebc93486c3cf0e6b755d1b8 Mon Sep 17 00:00:00 2001 From: Chris Coulson Date: Fri, 10 Jul 2020 11:21:14 +0100 Subject: [PATCH] script: Remove unused fields from grub_script_function struct MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Chris Coulson Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- include/grub/script_sh.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/include/grub/script_sh.h b/include/grub/script_sh.h index 360c2be1f..b382bcf09 100644 --- a/include/grub/script_sh.h +++ b/include/grub/script_sh.h @@ -359,13 +359,8 @@ struct grub_script_function /* The script function. */ struct grub_script *func; - /* The flags. */ - unsigned flags; - /* The next element. */ struct grub_script_function *next; - - int references; }; typedef struct grub_script_function *grub_script_function_t; -- 2.26.2 ================================================ FILE: boot/grub2/0019-script-Avoid-a-use-after-free-when-redefining-a-func.patch ================================================ From 26349fcf80982b4d0120b73b2836e88bcf16853c Mon Sep 17 00:00:00 2001 From: Chris Coulson Date: Fri, 10 Jul 2020 14:41:45 +0100 Subject: [PATCH] script: Avoid a use-after-free when redefining a function during execution MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Defining a new function with the same name as a previously defined function causes the grub_script and associated resources for the previous function to be freed. If the previous function is currently executing when a function with the same name is defined, this results in use-after-frees when processing subsequent commands in the original function. Instead, reject a new function definition if it has the same name as a previously defined function, and that function is currently being executed. Although a behavioural change, this should be backwards compatible with existing configurations because they can't be dependent on the current behaviour without being broken. Fixes: CVE-2020-15706 Signed-off-by: Chris Coulson Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/script/execute.c | 2 ++ grub-core/script/function.c | 16 +++++++++++++--- grub-core/script/parser.y | 3 ++- include/grub/script_sh.h | 2 ++ 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c index c8d6806fe..7e028e135 100644 --- a/grub-core/script/execute.c +++ b/grub-core/script/execute.c @@ -838,7 +838,9 @@ grub_script_function_call (grub_script_function_t func, int argc, char **args) old_scope = scope; scope = &new_scope; + func->executing++; ret = grub_script_execute (func->func); + func->executing--; function_return = 0; active_loops = loops; diff --git a/grub-core/script/function.c b/grub-core/script/function.c index d36655e51..3aad04bf9 100644 --- a/grub-core/script/function.c +++ b/grub-core/script/function.c @@ -34,6 +34,7 @@ grub_script_function_create (struct grub_script_arg *functionname_arg, func = (grub_script_function_t) grub_malloc (sizeof (*func)); if (! func) return 0; + func->executing = 0; func->name = grub_strdup (functionname_arg->str); if (! func->name) @@ -60,10 +61,19 @@ grub_script_function_create (struct grub_script_arg *functionname_arg, grub_script_function_t q; q = *p; - grub_script_free (q->func); - q->func = cmd; grub_free (func); - func = q; + if (q->executing > 0) + { + grub_error (GRUB_ERR_BAD_ARGUMENT, + N_("attempt to redefine a function being executed")); + func = NULL; + } + else + { + grub_script_free (q->func); + q->func = cmd; + func = q; + } } else { diff --git a/grub-core/script/parser.y b/grub-core/script/parser.y index 4f0ab8319..f80b86b6f 100644 --- a/grub-core/script/parser.y +++ b/grub-core/script/parser.y @@ -289,7 +289,8 @@ function: "function" "name" grub_script_mem_free (state->func_mem); else { script->children = state->scripts; - grub_script_function_create ($2, script); + if (!grub_script_function_create ($2, script)) + grub_script_free (script); } state->scripts = $3; diff --git a/include/grub/script_sh.h b/include/grub/script_sh.h index b382bcf09..6c48e0751 100644 --- a/include/grub/script_sh.h +++ b/include/grub/script_sh.h @@ -361,6 +361,8 @@ struct grub_script_function /* The next element. */ struct grub_script_function *next; + + unsigned executing; }; typedef struct grub_script_function *grub_script_function_t; -- 2.26.2 ================================================ FILE: boot/grub2/0020-relocator-Fix-grub_relocator_alloc_chunk_align-top-m.patch ================================================ From 06aa91f79f902752cb7e5d22ac0ea8e13bffd056 Mon Sep 17 00:00:00 2001 From: Alexey Makhalov Date: Fri, 17 Jul 2020 05:17:26 +0000 Subject: [PATCH] relocator: Fix grub_relocator_alloc_chunk_align() top memory allocation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Current implementation of grub_relocator_alloc_chunk_align() does not allow allocation of the top byte. Assuming input args are: max_addr = 0xfffff000; size = 0x1000; And this is valid. But following overflow protection will unnecessarily move max_addr one byte down (to 0xffffefff): if (max_addr > ~size) max_addr = ~size; ~size + 1 will fix the situation. In addition, check size for non zero to do not zero max_addr. Signed-off-by: Alexey Makhalov Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/lib/relocator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/lib/relocator.c b/grub-core/lib/relocator.c index 5847aac36..f2c1944c2 100644 --- a/grub-core/lib/relocator.c +++ b/grub-core/lib/relocator.c @@ -1386,8 +1386,8 @@ grub_relocator_alloc_chunk_align (struct grub_relocator *rel, }; grub_addr_t min_addr2 = 0, max_addr2; - if (max_addr > ~size) - max_addr = ~size; + if (size && (max_addr > ~size)) + max_addr = ~size + 1; #ifdef GRUB_MACHINE_PCBIOS if (min_addr < 0x1000) -- 2.26.2 ================================================ FILE: boot/grub2/0021-hfsplus-Fix-two-more-overflows.patch ================================================ From feec993673d8e13fcf22fe2389ac29222b6daebd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 19 Jul 2020 14:43:31 -0400 Subject: [PATCH] hfsplus: Fix two more overflows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both node->size and node->namelen come from the supplied filesystem, which may be user-supplied. We can't trust them for the math unless we know they don't overflow. Making sure they go through grub_add() or grub_calloc() first will give us that. Signed-off-by: Peter Jones Reviewed-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/hfsplus.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c index dae43becc..9c4e4c88c 100644 --- a/grub-core/fs/hfsplus.c +++ b/grub-core/fs/hfsplus.c @@ -31,6 +31,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -475,8 +476,12 @@ grub_hfsplus_read_symlink (grub_fshelp_node_t node) { char *symlink; grub_ssize_t numread; + grub_size_t sz = node->size; - symlink = grub_malloc (node->size + 1); + if (grub_add (sz, 1, &sz)) + return NULL; + + symlink = grub_malloc (sz); if (!symlink) return 0; @@ -715,8 +720,8 @@ list_nodes (void *record, void *hook_arg) if (type == GRUB_FSHELP_UNKNOWN) return 0; - filename = grub_malloc (grub_be_to_cpu16 (catkey->namelen) - * GRUB_MAX_UTF8_PER_UTF16 + 1); + filename = grub_calloc (grub_be_to_cpu16 (catkey->namelen), + GRUB_MAX_UTF8_PER_UTF16 + 1); if (! filename) return 0; -- 2.26.2 ================================================ FILE: boot/grub2/0022-lvm-Fix-two-more-potential-data-dependent-alloc-over.patch ================================================ From a1845e90fc19fb5e904091bad8a378f458798e4a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 19 Jul 2020 15:48:20 -0400 Subject: [PATCH] lvm: Fix two more potential data-dependent alloc overflows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It appears to be possible to make a (possibly invalid) lvm PV with a metadata size field that overflows our type when adding it to the address we've allocated. Even if it doesn't, it may be possible to do so with the math using the outcome of that as an operand. Check them both. Signed-off-by: Peter Jones Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/disk/lvm.c | 48 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c index d1df640b3..139fafd47 100644 --- a/grub-core/disk/lvm.c +++ b/grub-core/disk/lvm.c @@ -25,6 +25,7 @@ #include #include #include +#include #ifdef GRUB_UTIL #include @@ -102,10 +103,11 @@ grub_lvm_detect (grub_disk_t disk, { grub_err_t err; grub_uint64_t mda_offset, mda_size; + grub_size_t ptr; char buf[GRUB_LVM_LABEL_SIZE]; char vg_id[GRUB_LVM_ID_STRLEN+1]; char pv_id[GRUB_LVM_ID_STRLEN+1]; - char *metadatabuf, *p, *q, *vgname; + char *metadatabuf, *p, *q, *mda_end, *vgname; struct grub_lvm_label_header *lh = (struct grub_lvm_label_header *) buf; struct grub_lvm_pv_header *pvh; struct grub_lvm_disk_locn *dlocn; @@ -205,19 +207,31 @@ grub_lvm_detect (grub_disk_t disk, grub_le_to_cpu64 (rlocn->size) - grub_le_to_cpu64 (mdah->size)); } - p = q = metadatabuf + grub_le_to_cpu64 (rlocn->offset); - while (*q != ' ' && q < metadatabuf + mda_size) - q++; - - if (q == metadatabuf + mda_size) + if (grub_add ((grub_size_t)metadatabuf, + (grub_size_t)grub_le_to_cpu64 (rlocn->offset), + &ptr)) { + error_parsing_metadata: #ifdef GRUB_UTIL grub_util_info ("error parsing metadata"); #endif goto fail2; } + p = q = (char *)ptr; + + if (grub_add ((grub_size_t)metadatabuf, (grub_size_t)mda_size, &ptr)) + goto error_parsing_metadata; + + mda_end = (char *)ptr; + + while (*q != ' ' && q < mda_end) + q++; + + if (q == mda_end) + goto error_parsing_metadata; + vgname_len = q - p; vgname = grub_malloc (vgname_len + 1); if (!vgname) @@ -367,8 +381,26 @@ grub_lvm_detect (grub_disk_t disk, { const char *iptr; char *optr; - lv->fullname = grub_malloc (sizeof ("lvm/") - 1 + 2 * vgname_len - + 1 + 2 * s + 1); + + /* + * This is kind of hard to read with our safe (but rather + * baroque) math primatives, but it boils down to: + * + * sz0 = vgname_len * 2 + 1 + + * s * 2 + 1 + + * sizeof ("lvm/") - 1; + */ + grub_size_t sz0 = vgname_len, sz1 = s; + + if (grub_mul (sz0, 2, &sz0) || + grub_add (sz0, 1, &sz0) || + grub_mul (sz1, 2, &sz1) || + grub_add (sz1, 1, &sz1) || + grub_add (sz0, sz1, &sz0) || + grub_add (sz0, sizeof ("lvm/") - 1, &sz0)) + goto lvs_fail; + + lv->fullname = grub_malloc (sz0); if (!lv->fullname) goto lvs_fail; -- 2.26.2 ================================================ FILE: boot/grub2/0023-emu-Make-grub_free-NULL-safe.patch ================================================ From 320e86747a32e4d46d24ee4b64493741c161da50 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 19 Jul 2020 16:08:08 -0400 Subject: [PATCH] emu: Make grub_free(NULL) safe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The grub_free() implementation in grub-core/kern/mm.c safely handles NULL pointers, and code at many places depends on this. We don't know that the same is true on all host OSes, so we need to handle the same behavior in grub-emu's implementation. Signed-off-by: Peter Jones Reviewed-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/emu/mm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/grub-core/kern/emu/mm.c b/grub-core/kern/emu/mm.c index 145b01d37..4d1046a21 100644 --- a/grub-core/kern/emu/mm.c +++ b/grub-core/kern/emu/mm.c @@ -60,7 +60,8 @@ grub_zalloc (grub_size_t size) void grub_free (void *ptr) { - free (ptr); + if (ptr) + free (ptr); } void * -- 2.26.2 ================================================ FILE: boot/grub2/0024-efi-Fix-some-malformed-device-path-arithmetic-errors.patch ================================================ From c330aa099a38bc5c4d3066954fe35767cc06adb1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 19 Jul 2020 16:53:27 -0400 Subject: [PATCH] efi: Fix some malformed device path arithmetic errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Several places we take the length of a device path and subtract 4 from it, without ever checking that it's >= 4. There are also cases where this kind of malformation will result in unpredictable iteration, including treating the length from one dp node as the type in the next node. These are all errors, no matter where the data comes from. This patch adds a checking macro, GRUB_EFI_DEVICE_PATH_VALID(), which can be used in several places, and makes GRUB_EFI_NEXT_DEVICE_PATH() return NULL and GRUB_EFI_END_ENTIRE_DEVICE_PATH() evaluate as true when the length is too small. Additionally, it makes several places in the code check for and return errors in these cases. Signed-off-by: Peter Jones Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/efi/efi.c | 64 +++++++++++++++++++++++++----- grub-core/loader/efi/chainloader.c | 13 +++++- grub-core/loader/i386/xnu.c | 9 +++-- include/grub/efi/api.h | 14 ++++--- 4 files changed, 79 insertions(+), 21 deletions(-) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c index dc31caa21..c97969a65 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -332,7 +332,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) dp = dp0; - while (1) + while (dp) { grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); @@ -342,9 +342,15 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE && subtype == GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE) { - grub_efi_uint16_t len; - len = ((GRUB_EFI_DEVICE_PATH_LENGTH (dp) - 4) - / sizeof (grub_efi_char16_t)); + grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); + + if (len < 4) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, + "malformed EFI Device Path node has length=%d", len); + return NULL; + } + len = (len - 4) / sizeof (grub_efi_char16_t); filesize += GRUB_MAX_UTF8_PER_UTF16 * len + 2; } @@ -360,7 +366,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) if (!name) return NULL; - while (1) + while (dp) { grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); @@ -376,8 +382,15 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) *p++ = '/'; - len = ((GRUB_EFI_DEVICE_PATH_LENGTH (dp) - 4) - / sizeof (grub_efi_char16_t)); + len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); + if (len < 4) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, + "malformed EFI Device Path node has length=%d", len); + return NULL; + } + + len = (len - 4) / sizeof (grub_efi_char16_t); fp = (grub_efi_file_path_device_path_t *) dp; /* According to EFI spec Path Name is NULL terminated */ while (len > 0 && fp->path_name[len - 1] == 0) @@ -452,7 +465,26 @@ grub_efi_duplicate_device_path (const grub_efi_device_path_t *dp) ; p = GRUB_EFI_NEXT_DEVICE_PATH (p)) { - total_size += GRUB_EFI_DEVICE_PATH_LENGTH (p); + grub_size_t len = GRUB_EFI_DEVICE_PATH_LENGTH (p); + + /* + * In the event that we find a node that's completely garbage, for + * example if we get to 0x7f 0x01 0x02 0x00 ... (EndInstance with a size + * of 2), GRUB_EFI_END_ENTIRE_DEVICE_PATH() will be true and + * GRUB_EFI_NEXT_DEVICE_PATH() will return NULL, so we won't continue, + * and neither should our consumers, but there won't be any error raised + * even though the device path is junk. + * + * This keeps us from passing junk down back to our caller. + */ + if (len < 4) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, + "malformed EFI Device Path node has length=%d", len); + return NULL; + } + + total_size += len; if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (p)) break; } @@ -497,7 +529,7 @@ dump_vendor_path (const char *type, grub_efi_vendor_device_path_t *vendor) void grub_efi_print_device_path (grub_efi_device_path_t *dp) { - while (1) + while (GRUB_EFI_DEVICE_PATH_VALID (dp)) { grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); @@ -909,7 +941,10 @@ grub_efi_compare_device_paths (const grub_efi_device_path_t *dp1, /* Return non-zero. */ return 1; - while (1) + if (dp1 == dp2) + return 0; + + while (GRUB_EFI_DEVICE_PATH_VALID (dp1) && GRUB_EFI_DEVICE_PATH_VALID (dp2)) { grub_efi_uint8_t type1, type2; grub_efi_uint8_t subtype1, subtype2; @@ -945,5 +980,14 @@ grub_efi_compare_device_paths (const grub_efi_device_path_t *dp1, dp2 = (grub_efi_device_path_t *) ((char *) dp2 + len2); } + /* + * There's no "right" answer here, but we probably don't want to call a valid + * dp and an invalid dp equal, so pick one way or the other. + */ + if (GRUB_EFI_DEVICE_PATH_VALID (dp1) && !GRUB_EFI_DEVICE_PATH_VALID (dp2)) + return 1; + else if (!GRUB_EFI_DEVICE_PATH_VALID (dp1) && GRUB_EFI_DEVICE_PATH_VALID (dp2)) + return -1; + return 0; } diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c index daf8c6b54..a8d7b9155 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -156,9 +156,18 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) size = 0; d = dp; - while (1) + while (d) { - size += GRUB_EFI_DEVICE_PATH_LENGTH (d); + grub_size_t len = GRUB_EFI_DEVICE_PATH_LENGTH (d); + + if (len < 4) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, + "malformed EFI Device Path node has length=%d", len); + return NULL; + } + + size += len; if ((GRUB_EFI_END_ENTIRE_DEVICE_PATH (d))) break; d = GRUB_EFI_NEXT_DEVICE_PATH (d); diff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c index e9e119259..a70093607 100644 --- a/grub-core/loader/i386/xnu.c +++ b/grub-core/loader/i386/xnu.c @@ -515,14 +515,15 @@ grub_cmd_devprop_load (grub_command_t cmd __attribute__ ((unused)), devhead = buf; buf = devhead + 1; - dpstart = buf; + dp = dpstart = buf; - do + while (GRUB_EFI_DEVICE_PATH_VALID (dp) && buf < bufend) { - dp = buf; buf = (char *) buf + GRUB_EFI_DEVICE_PATH_LENGTH (dp); + if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp)) + break; + dp = buf; } - while (!GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp) && buf < bufend); dev = grub_xnu_devprop_add_device (dpstart, (char *) buf - (char *) dpstart); diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h index addcbfa8f..cf1355a8c 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h @@ -625,6 +625,7 @@ typedef struct grub_efi_device_path grub_efi_device_path_protocol_t; #define GRUB_EFI_DEVICE_PATH_TYPE(dp) ((dp)->type & 0x7f) #define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp) ((dp)->subtype) #define GRUB_EFI_DEVICE_PATH_LENGTH(dp) ((dp)->length) +#define GRUB_EFI_DEVICE_PATH_VALID(dp) ((dp) != NULL && GRUB_EFI_DEVICE_PATH_LENGTH (dp) >= 4) /* The End of Device Path nodes. */ #define GRUB_EFI_END_DEVICE_PATH_TYPE (0xff & 0x7f) @@ -633,13 +634,16 @@ typedef struct grub_efi_device_path grub_efi_device_path_protocol_t; #define GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE 0x01 #define GRUB_EFI_END_ENTIRE_DEVICE_PATH(dp) \ - (GRUB_EFI_DEVICE_PATH_TYPE (dp) == GRUB_EFI_END_DEVICE_PATH_TYPE \ - && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dp) \ - == GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE)) + (!GRUB_EFI_DEVICE_PATH_VALID (dp) || \ + (GRUB_EFI_DEVICE_PATH_TYPE (dp) == GRUB_EFI_END_DEVICE_PATH_TYPE \ + && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dp) \ + == GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE))) #define GRUB_EFI_NEXT_DEVICE_PATH(dp) \ - ((grub_efi_device_path_t *) ((char *) (dp) \ - + GRUB_EFI_DEVICE_PATH_LENGTH (dp))) + (GRUB_EFI_DEVICE_PATH_VALID (dp) \ + ? ((grub_efi_device_path_t *) \ + ((char *) (dp) + GRUB_EFI_DEVICE_PATH_LENGTH (dp))) \ + : NULL) /* Hardware Device Path. */ #define GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE 1 -- 2.26.2 ================================================ FILE: boot/grub2/0025-efi-chainloader-Propagate-errors-from-copy_file_path.patch ================================================ From fb55bc37dd510911df4eaf649da939f5fafdc7ce Mon Sep 17 00:00:00 2001 From: Daniel Kiper Date: Wed, 29 Jul 2020 13:38:31 +0200 Subject: [PATCH] efi/chainloader: Propagate errors from copy_file_path() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without any error propagated to the caller, make_file_path() would then try to advance the invalid device path node with GRUB_EFI_NEXT_DEVICE_PATH(), which would fail, returning a NULL pointer that would subsequently be dereferenced. Hence, propagate errors from copy_file_path(). Signed-off-by: Chris Coulson Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/loader/efi/chainloader.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c index a8d7b9155..7b31c3fb9 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -106,7 +106,7 @@ grub_chainloader_boot (void) return grub_errno; } -static void +static grub_err_t copy_file_path (grub_efi_file_path_device_path_t *fp, const char *str, grub_efi_uint16_t len) { @@ -118,7 +118,7 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, path_name = grub_calloc (len, GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); if (!path_name) - return; + return grub_error (GRUB_ERR_OUT_OF_MEMORY, "failed to allocate path buffer"); size = grub_utf8_to_utf16 (path_name, len * GRUB_MAX_UTF16_PER_UTF8, (const grub_uint8_t *) str, len, 0); @@ -131,6 +131,7 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, fp->path_name[size++] = '\0'; fp->header.length = size * sizeof (grub_efi_char16_t) + sizeof (*fp); grub_free (path_name); + return GRUB_ERR_NONE; } static grub_efi_device_path_t * @@ -189,13 +190,19 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) d = (grub_efi_device_path_t *) ((char *) file_path + ((char *) d - (char *) dp)); grub_efi_print_device_path (d); - copy_file_path ((grub_efi_file_path_device_path_t *) d, - dir_start, dir_end - dir_start); + if (copy_file_path ((grub_efi_file_path_device_path_t *) d, + dir_start, dir_end - dir_start) != GRUB_ERR_NONE) + { + fail: + grub_free (file_path); + return 0; + } /* Fill the file path for the file. */ d = GRUB_EFI_NEXT_DEVICE_PATH (d); - copy_file_path ((grub_efi_file_path_device_path_t *) d, - dir_end + 1, grub_strlen (dir_end + 1)); + if (copy_file_path ((grub_efi_file_path_device_path_t *) d, + dir_end + 1, grub_strlen (dir_end + 1)) != GRUB_ERR_NONE) + goto fail; /* Fill the end of device path nodes. */ d = GRUB_EFI_NEXT_DEVICE_PATH (d); -- 2.26.2 ================================================ FILE: boot/grub2/0026-efi-Fix-use-after-free-in-halt-reboot-path.patch ================================================ From 8a6d6299efcffd14c1130942195e6c0d9b50cacd Mon Sep 17 00:00:00 2001 From: Alexey Makhalov Date: Mon, 20 Jul 2020 23:03:05 +0000 Subject: [PATCH] efi: Fix use-after-free in halt/reboot path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 92bfc33db984 ("efi: Free malloc regions on exit") introduced memory freeing in grub_efi_fini(), which is used not only by exit path but by halt/reboot one as well. As result of memory freeing, code and data regions used by modules, such as halt, reboot, acpi (used by halt) also got freed. After return to module code, CPU executes, filled by UEFI firmware (tested with edk2), 0xAFAFAFAF pattern as a code. Which leads to #UD exception later. grub> halt !!!! X64 Exception Type - 06(#UD - Invalid Opcode) CPU Apic ID - 00000000 !!!! RIP - 0000000003F4EC28, CS - 0000000000000038, RFLAGS - 0000000000200246 RAX - 0000000000000000, RCX - 00000000061DA188, RDX - 0A74C0854DC35D41 RBX - 0000000003E10E08, RSP - 0000000007F0F860, RBP - 0000000000000000 RSI - 00000000064DB768, RDI - 000000000832C5C3 R8 - 0000000000000002, R9 - 0000000000000000, R10 - 00000000061E2E52 R11 - 0000000000000020, R12 - 0000000003EE5C1F, R13 - 00000000061E0FF4 R14 - 0000000003E10D80, R15 - 00000000061E2F60 DS - 0000000000000030, ES - 0000000000000030, FS - 0000000000000030 GS - 0000000000000030, SS - 0000000000000030 CR0 - 0000000080010033, CR2 - 0000000000000000, CR3 - 0000000007C01000 CR4 - 0000000000000668, CR8 - 0000000000000000 DR0 - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000 DR3 - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400 GDTR - 00000000079EEA98 0000000000000047, LDTR - 0000000000000000 IDTR - 0000000007598018 0000000000000FFF, TR - 0000000000000000 FXSAVE_STATE - 0000000007F0F4C0 Proposal here is to continue to free allocated memory for exit boot services path but keep it for halt/reboot path as it won't be much security concern here. Introduced GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY loader flag to be used by efi halt/reboot path. Signed-off-by: Alexey Makhalov Reviewed-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/arm/efi/init.c | 3 +++ grub-core/kern/arm64/efi/init.c | 3 +++ grub-core/kern/efi/efi.c | 3 ++- grub-core/kern/efi/init.c | 1 - grub-core/kern/i386/efi/init.c | 9 +++++++-- grub-core/kern/ia64/efi/init.c | 9 +++++++-- grub-core/kern/riscv/efi/init.c | 3 +++ grub-core/lib/efi/halt.c | 3 ++- include/grub/loader.h | 1 + 9 files changed, 28 insertions(+), 7 deletions(-) diff --git a/grub-core/kern/arm/efi/init.c b/grub-core/kern/arm/efi/init.c index 06df60e2f..40c3b467f 100644 --- a/grub-core/kern/arm/efi/init.c +++ b/grub-core/kern/arm/efi/init.c @@ -71,4 +71,7 @@ grub_machine_fini (int flags) efi_call_1 (b->close_event, tmr_evt); grub_efi_fini (); + + if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) + grub_efi_memory_fini (); } diff --git a/grub-core/kern/arm64/efi/init.c b/grub-core/kern/arm64/efi/init.c index 6224999ec..5010caefd 100644 --- a/grub-core/kern/arm64/efi/init.c +++ b/grub-core/kern/arm64/efi/init.c @@ -57,4 +57,7 @@ grub_machine_fini (int flags) return; grub_efi_fini (); + + if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) + grub_efi_memory_fini (); } diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c index c97969a65..9cfd88d77 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -157,7 +157,8 @@ grub_efi_get_loaded_image (grub_efi_handle_t image_handle) void grub_reboot (void) { - grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); + grub_machine_fini (GRUB_LOADER_FLAG_NORETURN | + GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY); efi_call_4 (grub_efi_system_table->runtime_services->reset_system, GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL); for (;;) ; diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c index 3dfdf2d22..2c31847bf 100644 --- a/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c @@ -80,5 +80,4 @@ grub_efi_fini (void) { grub_efidisk_fini (); grub_console_fini (); - grub_efi_memory_fini (); } diff --git a/grub-core/kern/i386/efi/init.c b/grub-core/kern/i386/efi/init.c index da499aba0..deb2eacd8 100644 --- a/grub-core/kern/i386/efi/init.c +++ b/grub-core/kern/i386/efi/init.c @@ -39,6 +39,11 @@ grub_machine_init (void) void grub_machine_fini (int flags) { - if (flags & GRUB_LOADER_FLAG_NORETURN) - grub_efi_fini (); + if (!(flags & GRUB_LOADER_FLAG_NORETURN)) + return; + + grub_efi_fini (); + + if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) + grub_efi_memory_fini (); } diff --git a/grub-core/kern/ia64/efi/init.c b/grub-core/kern/ia64/efi/init.c index b5ecbd091..f1965571b 100644 --- a/grub-core/kern/ia64/efi/init.c +++ b/grub-core/kern/ia64/efi/init.c @@ -70,6 +70,11 @@ grub_machine_init (void) void grub_machine_fini (int flags) { - if (flags & GRUB_LOADER_FLAG_NORETURN) - grub_efi_fini (); + if (!(flags & GRUB_LOADER_FLAG_NORETURN)) + return; + + grub_efi_fini (); + + if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) + grub_efi_memory_fini (); } diff --git a/grub-core/kern/riscv/efi/init.c b/grub-core/kern/riscv/efi/init.c index 7eb1969d0..38795fe67 100644 --- a/grub-core/kern/riscv/efi/init.c +++ b/grub-core/kern/riscv/efi/init.c @@ -73,4 +73,7 @@ grub_machine_fini (int flags) return; grub_efi_fini (); + + if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) + grub_efi_memory_fini (); } diff --git a/grub-core/lib/efi/halt.c b/grub-core/lib/efi/halt.c index 5859f0498..29d413641 100644 --- a/grub-core/lib/efi/halt.c +++ b/grub-core/lib/efi/halt.c @@ -28,7 +28,8 @@ void grub_halt (void) { - grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); + grub_machine_fini (GRUB_LOADER_FLAG_NORETURN | + GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY); #if !defined(__ia64__) && !defined(__arm__) && !defined(__aarch64__) && \ !defined(__riscv) grub_acpi_halt (); diff --git a/include/grub/loader.h b/include/grub/loader.h index 7f82a499f..b20864282 100644 --- a/include/grub/loader.h +++ b/include/grub/loader.h @@ -33,6 +33,7 @@ enum { GRUB_LOADER_FLAG_NORETURN = 1, GRUB_LOADER_FLAG_PXE_NOT_UNLOAD = 2, + GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY = 4, }; void EXPORT_FUNC (grub_loader_set) (grub_err_t (*boot) (void), -- 2.26.2 ================================================ FILE: boot/grub2/0027-loader-linux-Avoid-overflow-on-initrd-size-calculati.patch ================================================ From a2a7464e9f10a677d6f91e1c4fa527d084c22e7c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 24 Jul 2020 13:57:27 -0400 Subject: [PATCH] loader/linux: Avoid overflow on initrd size calculation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Peter Jones Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/loader/linux.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c index 471b214d6..4cd8c20c7 100644 --- a/grub-core/loader/linux.c +++ b/grub-core/loader/linux.c @@ -151,8 +151,7 @@ grub_initrd_init (int argc, char *argv[], initrd_ctx->nfiles = 0; initrd_ctx->components = 0; - initrd_ctx->components = grub_zalloc (argc - * sizeof (initrd_ctx->components[0])); + initrd_ctx->components = grub_calloc (argc, sizeof (initrd_ctx->components[0])); if (!initrd_ctx->components) return grub_errno; -- 2.26.2 ================================================ FILE: boot/grub2/0028-linux-Fix-integer-overflows-in-initrd-size-handling.patch ================================================ From 0367e7d1b9bac3a78608a672bf6e4ace6a28b964 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Sat, 25 Jul 2020 12:15:37 +0100 Subject: [PATCH] linux: Fix integer overflows in initrd size handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These could be triggered by a crafted filesystem with very large files. Fixes: CVE-2020-15707 Signed-off-by: Colin Watson Reviewed-by: Jan Setje-Eilers Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/loader/linux.c | 74 +++++++++++++++++++++++++++++----------- 1 file changed, 54 insertions(+), 20 deletions(-) diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c index 4cd8c20c7..3fe390f17 100644 --- a/grub-core/loader/linux.c +++ b/grub-core/loader/linux.c @@ -4,6 +4,7 @@ #include #include #include +#include struct newc_head { @@ -98,13 +99,13 @@ free_dir (struct dir *root) grub_free (root); } -static grub_size_t +static grub_err_t insert_dir (const char *name, struct dir **root, - grub_uint8_t *ptr) + grub_uint8_t *ptr, grub_size_t *size) { struct dir *cur, **head = root; const char *cb, *ce = name; - grub_size_t size = 0; + *size = 0; while (1) { for (cb = ce; *cb == '/'; cb++); @@ -130,14 +131,22 @@ insert_dir (const char *name, struct dir **root, ptr = make_header (ptr, name, ce - name, 040777, 0); } - size += ALIGN_UP ((ce - (char *) name) - + sizeof (struct newc_head), 4); + if (grub_add (*size, + ALIGN_UP ((ce - (char *) name) + + sizeof (struct newc_head), 4), + size)) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + grub_free (n->name); + grub_free (n); + return grub_errno; + } *head = n; cur = n; } root = &cur->next; } - return size; + return GRUB_ERR_NONE; } grub_err_t @@ -172,26 +181,33 @@ grub_initrd_init (int argc, char *argv[], eptr = grub_strchr (ptr, ':'); if (eptr) { + grub_size_t dir_size, name_len; + initrd_ctx->components[i].newc_name = grub_strndup (ptr, eptr - ptr); - if (!initrd_ctx->components[i].newc_name) + if (!initrd_ctx->components[i].newc_name || + insert_dir (initrd_ctx->components[i].newc_name, &root, 0, + &dir_size)) { grub_initrd_close (initrd_ctx); return grub_errno; } - initrd_ctx->size - += ALIGN_UP (sizeof (struct newc_head) - + grub_strlen (initrd_ctx->components[i].newc_name), - 4); - initrd_ctx->size += insert_dir (initrd_ctx->components[i].newc_name, - &root, 0); + name_len = grub_strlen (initrd_ctx->components[i].newc_name); + if (grub_add (initrd_ctx->size, + ALIGN_UP (sizeof (struct newc_head) + name_len, 4), + &initrd_ctx->size) || + grub_add (initrd_ctx->size, dir_size, &initrd_ctx->size)) + goto overflow; newc = 1; fname = eptr + 1; } } else if (newc) { - initrd_ctx->size += ALIGN_UP (sizeof (struct newc_head) - + sizeof ("TRAILER!!!") - 1, 4); + if (grub_add (initrd_ctx->size, + ALIGN_UP (sizeof (struct newc_head) + + sizeof ("TRAILER!!!") - 1, 4), + &initrd_ctx->size)) + goto overflow; free_dir (root); root = 0; newc = 0; @@ -207,19 +223,29 @@ grub_initrd_init (int argc, char *argv[], initrd_ctx->nfiles++; initrd_ctx->components[i].size = grub_file_size (initrd_ctx->components[i].file); - initrd_ctx->size += initrd_ctx->components[i].size; + if (grub_add (initrd_ctx->size, initrd_ctx->components[i].size, + &initrd_ctx->size)) + goto overflow; } if (newc) { initrd_ctx->size = ALIGN_UP (initrd_ctx->size, 4); - initrd_ctx->size += ALIGN_UP (sizeof (struct newc_head) - + sizeof ("TRAILER!!!") - 1, 4); + if (grub_add (initrd_ctx->size, + ALIGN_UP (sizeof (struct newc_head) + + sizeof ("TRAILER!!!") - 1, 4), + &initrd_ctx->size)) + goto overflow; free_dir (root); root = 0; } return GRUB_ERR_NONE; + + overflow: + free_dir (root); + grub_initrd_close (initrd_ctx); + return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); } grub_size_t @@ -260,8 +286,16 @@ grub_initrd_load (struct grub_linux_initrd_context *initrd_ctx, if (initrd_ctx->components[i].newc_name) { - ptr += insert_dir (initrd_ctx->components[i].newc_name, - &root, ptr); + grub_size_t dir_size; + + if (insert_dir (initrd_ctx->components[i].newc_name, &root, ptr, + &dir_size)) + { + free_dir (root); + grub_initrd_close (initrd_ctx); + return grub_errno; + } + ptr += dir_size; ptr = make_header (ptr, initrd_ctx->components[i].newc_name, grub_strlen (initrd_ctx->components[i].newc_name), 0100777, -- 2.26.2 ================================================ FILE: boot/grub2/0029-efi-Make-shim_lock-GUID-and-protocol-type-public.patch ================================================ From f76a27996c34900f2c369a8a0d6ac72ae2faa988 Mon Sep 17 00:00:00 2001 From: Daniel Kiper Date: Thu, 3 Dec 2020 16:01:45 +0100 Subject: [PATCH] efi: Make shim_lock GUID and protocol type public The GUID will be used to properly detect and report UEFI Secure Boot status to the x86 Linux kernel. The functionality will be added by subsequent patches. The shim_lock protocol type is made public for completeness. Additionally, fix formatting of four preceding GUIDs. Signed-off-by: Daniel Kiper Signed-off-by: Marco A Benatto Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/commands/efi/shim_lock.c | 12 ------------ include/grub/efi/api.h | 19 +++++++++++++++---- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/grub-core/commands/efi/shim_lock.c b/grub-core/commands/efi/shim_lock.c index 764098c..d8f52d7 100644 --- a/grub-core/commands/efi/shim_lock.c +++ b/grub-core/commands/efi/shim_lock.c @@ -27,18 +27,6 @@ GRUB_MOD_LICENSE ("GPLv3+"); -#define GRUB_EFI_SHIM_LOCK_GUID \ - { 0x605dab50, 0xe046, 0x4300, \ - { 0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23 } \ - } - -struct grub_efi_shim_lock_protocol -{ - grub_efi_status_t - (*verify) (void *buffer, grub_uint32_t size); -}; -typedef struct grub_efi_shim_lock_protocol grub_efi_shim_lock_protocol_t; - static grub_efi_guid_t shim_lock_guid = GRUB_EFI_SHIM_LOCK_GUID; static grub_efi_shim_lock_protocol_t *sl; diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h index cf1355a..13e5715 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h @@ -316,22 +316,27 @@ #define GRUB_EFI_SAL_TABLE_GUID \ { 0xeb9d2d32, 0x2d88, 0x11d3, \ - { 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ + { 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ } #define GRUB_EFI_HCDP_TABLE_GUID \ { 0xf951938d, 0x620b, 0x42ef, \ - { 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 } \ + { 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 } \ } #define GRUB_EFI_DEVICE_TREE_GUID \ { 0xb1b621d5, 0xf19c, 0x41a5, \ - { 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 } \ + { 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 } \ } #define GRUB_EFI_VENDOR_APPLE_GUID \ { 0x2B0585EB, 0xD8B8, 0x49A9, \ - { 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 } \ + { 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 } \ + } + +#define GRUB_EFI_SHIM_LOCK_GUID \ + { 0x605dab50, 0xe046, 0x4300, \ + { 0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23 } \ } struct grub_efi_sal_system_table @@ -1689,6 +1694,12 @@ struct grub_efi_block_io }; typedef struct grub_efi_block_io grub_efi_block_io_t; +struct grub_efi_shim_lock_protocol +{ + grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); +}; +typedef struct grub_efi_shim_lock_protocol grub_efi_shim_lock_protocol_t; + #if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \ || defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) \ || defined(__riscv) -- 2.14.2 ================================================ FILE: boot/grub2/0030-efi-Return-grub_efi_status_t-from-grub_efi_get_varia.patch ================================================ From 04ae030d0eea8668d4417702d88bf2cf04713d80 Mon Sep 17 00:00:00 2001 From: Daniel Kiper Date: Thu, 3 Dec 2020 16:01:46 +0100 Subject: [PATCH] efi: Return grub_efi_status_t from grub_efi_get_variable() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is needed to properly detect and report UEFI Secure Boot status to the x86 Linux kernel. The functionality will be added by subsequent patches. Signed-off-by: Daniel Kiper Signed-off-by: Marco A Benatto Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/commands/efi/efifwsetup.c | 8 ++++---- grub-core/kern/efi/efi.c | 16 +++++++++------- grub-core/video/efi_gop.c | 2 +- include/grub/efi/efi.h | 7 ++++--- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/grub-core/commands/efi/efifwsetup.c b/grub-core/commands/efi/efifwsetup.c index 7a137a72a..eaca03283 100644 --- a/grub-core/commands/efi/efifwsetup.c +++ b/grub-core/commands/efi/efifwsetup.c @@ -38,8 +38,8 @@ grub_cmd_fwsetup (grub_command_t cmd __attribute__ ((unused)), grub_size_t oi_size; grub_efi_guid_t global = GRUB_EFI_GLOBAL_VARIABLE_GUID; - old_os_indications = grub_efi_get_variable ("OsIndications", &global, - &oi_size); + grub_efi_get_variable ("OsIndications", &global, &oi_size, + (void **) &old_os_indications); if (old_os_indications != NULL && oi_size == sizeof (os_indications)) os_indications |= *old_os_indications; @@ -63,8 +63,8 @@ efifwsetup_is_supported (void) grub_size_t oi_size = 0; grub_efi_guid_t global = GRUB_EFI_GLOBAL_VARIABLE_GUID; - os_indications_supported = grub_efi_get_variable ("OsIndicationsSupported", - &global, &oi_size); + grub_efi_get_variable ("OsIndicationsSupported", &global, &oi_size, + (void **) &os_indications_supported); if (!os_indications_supported) return 0; diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c index e0165e74c..9403b12cd 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -223,9 +223,9 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, return grub_error (GRUB_ERR_IO, "could not set EFI variable `%s'", var); } -void * +grub_efi_status_t grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - grub_size_t *datasize_out) + grub_size_t *datasize_out, void **data_out) { grub_efi_status_t status; grub_efi_uintn_t datasize = 0; @@ -234,13 +234,14 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, void *data; grub_size_t len, len16; + *data_out = NULL; *datasize_out = 0; len = grub_strlen (var); len16 = len * GRUB_MAX_UTF16_PER_UTF8; var16 = grub_calloc (len16 + 1, sizeof (var16[0])); if (!var16) - return NULL; + return GRUB_EFI_OUT_OF_RESOURCES; len16 = grub_utf8_to_utf16 (var16, len16, (grub_uint8_t *) var, len, NULL); var16[len16] = 0; @@ -251,14 +252,14 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, if (status != GRUB_EFI_BUFFER_TOO_SMALL || !datasize) { grub_free (var16); - return NULL; + return status; } data = grub_malloc (datasize); if (!data) { grub_free (var16); - return NULL; + return GRUB_EFI_OUT_OF_RESOURCES; } status = efi_call_5 (r->get_variable, var16, guid, NULL, &datasize, data); @@ -266,12 +267,13 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, if (status == GRUB_EFI_SUCCESS) { + *data_out = data; *datasize_out = datasize; - return data; + return status; } grub_free (data); - return NULL; + return status; } #pragma GCC diagnostic ignored "-Wcast-align" diff --git a/grub-core/video/efi_gop.c b/grub-core/video/efi_gop.c index be446f8d2..7fe0cdabf 100644 --- a/grub-core/video/efi_gop.c +++ b/grub-core/video/efi_gop.c @@ -316,7 +316,7 @@ grub_video_gop_get_edid (struct grub_video_edid_info *edid_info) char edidname[] = "agp-internal-edid"; grub_size_t datasize; grub_uint8_t *data; - data = grub_efi_get_variable (edidname, &efi_var_guid, &datasize); + grub_efi_get_variable (edidname, &efi_var_guid, &datasize, (void **) &data); if (data && datasize > 16) { copy_size = datasize - 16; diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h index e90e00dc4..8b2a0f1f5 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -74,9 +74,10 @@ grub_err_t EXPORT_FUNC (grub_efi_set_virtual_address_map) (grub_efi_uintn_t memo grub_efi_uintn_t descriptor_size, grub_efi_uint32_t descriptor_version, grub_efi_memory_descriptor_t *virtual_map); -void *EXPORT_FUNC (grub_efi_get_variable) (const char *variable, - const grub_efi_guid_t *guid, - grub_size_t *datasize_out); +grub_efi_status_t EXPORT_FUNC (grub_efi_get_variable) (const char *variable, + const grub_efi_guid_t *guid, + grub_size_t *datasize_out, + void **data_out); grub_err_t EXPORT_FUNC (grub_efi_set_variable) (const char *var, const grub_efi_guid_t *guid, -- 2.29.2 ================================================ FILE: boot/grub2/0031-efi-Add-a-function-to-read-EFI-variables-with-attrib.patch ================================================ From ac5c9367548750e75ed1e7fc4354a3d20186d733 Mon Sep 17 00:00:00 2001 From: Daniel Kiper Date: Thu, 3 Dec 2020 16:01:47 +0100 Subject: [PATCH] efi: Add a function to read EFI variables with attributes It will be used to properly detect and report UEFI Secure Boot status to the x86 Linux kernel. The functionality will be added by subsequent patches. Signed-off-by: Ignat Korchagin Signed-off-by: Daniel Kiper Signed-off-by: Marco A Benatto Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper --- grub-core/kern/efi/efi.c | 16 +++++++++++++--- include/grub/efi/efi.h | 5 +++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c index 9403b12cd..2942b8e35 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -224,8 +224,11 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, } grub_efi_status_t -grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - grub_size_t *datasize_out, void **data_out) +grub_efi_get_variable_with_attributes (const char *var, + const grub_efi_guid_t *guid, + grub_size_t *datasize_out, + void **data_out, + grub_efi_uint32_t *attributes) { grub_efi_status_t status; grub_efi_uintn_t datasize = 0; @@ -262,7 +265,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, return GRUB_EFI_OUT_OF_RESOURCES; } - status = efi_call_5 (r->get_variable, var16, guid, NULL, &datasize, data); + status = efi_call_5 (r->get_variable, var16, guid, attributes, &datasize, data); grub_free (var16); if (status == GRUB_EFI_SUCCESS) @@ -276,6 +279,13 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, return status; } +grub_efi_status_t +grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, + grub_size_t *datasize_out, void **data_out) +{ + return grub_efi_get_variable_with_attributes (var, guid, datasize_out, data_out, NULL); +} + #pragma GCC diagnostic ignored "-Wcast-align" /* Search the mods section from the PE32/PE32+ image. This code uses diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h index 8b2a0f1f5..83d958f99 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -74,6 +74,11 @@ grub_err_t EXPORT_FUNC (grub_efi_set_virtual_address_map) (grub_efi_uintn_t memo grub_efi_uintn_t descriptor_size, grub_efi_uint32_t descriptor_version, grub_efi_memory_descriptor_t *virtual_map); +grub_efi_status_t EXPORT_FUNC (grub_efi_get_variable_with_attributes) (const char *variable, + const grub_efi_guid_t *guid, + grub_size_t *datasize_out, + void **data_out, + grub_efi_uint32_t *attributes); grub_efi_status_t EXPORT_FUNC (grub_efi_get_variable) (const char *variable, const grub_efi_guid_t *guid, grub_size_t *datasize_out, -- 2.29.2 ================================================ FILE: boot/grub2/0032-efi-Add-secure-boot-detection.patch ================================================ From d7e54b2e5feee95d2f83058ed30d883c450d1473 Mon Sep 17 00:00:00 2001 From: Daniel Kiper Date: Thu, 3 Dec 2020 16:01:48 +0100 Subject: [PATCH] efi: Add secure boot detection Introduce grub_efi_get_secureboot() function which returns whether UEFI Secure Boot is enabled or not on UEFI systems. Signed-off-by: Ignat Korchagin Signed-off-by: Daniel Kiper Signed-off-by: Marco A Benatto Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper [Add changes to generated files] Signed-off-by: Stefan Sørensen --- grub-core/Makefile.am | 1 + grub-core/Makefile.core.am | 14 +++--- grub-core/Makefile.core.def | 1 + grub-core/Makefile.in | 102 ++++++++++++++++++++++++++--------------- grub-core/kern/efi/sb.c | 109 ++++++++++++++++++++++++++++++++++++++++++++ include/grub/efi/sb.h | 40 ++++++++++++++++ po/POTFILES.in | 2 + 7 files changed, 225 insertions(+), 44 deletions(-) create mode 100644 grub-core/kern/efi/sb.c create mode 100644 include/grub/efi/sb.h diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am index 3ea8e7f..c6ba5b2 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -71,6 +71,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/disk.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dl.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h diff --git a/grub-core/Makefile.core.am b/grub-core/Makefile.core.am index a217716..f28b753 100644 --- a/grub-core/Makefile.core.am +++ b/grub-core/Makefile.core.am @@ -22421,7 +22421,7 @@ endif if COND_i386_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/efi/startup.S -kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/i386/efi/init.c bus/pci.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/i386/efi/init.c bus/pci.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22531,7 +22531,7 @@ endif if COND_x86_64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/x86_64/efi/startup.S -kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/x86_64/efi/callwrap.S kern/i386/efi/init.c bus/pci.c kern/x86_64/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/x86_64/efi/callwrap.S kern/i386/efi/init.c bus/pci.c kern/x86_64/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22707,7 +22707,7 @@ endif if COND_ia64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = -kernel_exec_SOURCES += kern/ia64/efi/startup.S kern/ia64/efi/init.c kern/ia64/dl.c kern/ia64/dl_helper.c kern/ia64/cache.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/ia64/efi/startup.S kern/ia64/efi/init.c kern/ia64/dl.c kern/ia64/dl_helper.c kern/ia64/cache.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) -fno-builtin -fpic -minline-int-divide-max-throughput @@ -22773,7 +22773,7 @@ endif if COND_arm_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/arm/efi/startup.S -kernel_exec_SOURCES += kern/arm/efi/init.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/arm/efi/init.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22795,7 +22795,7 @@ endif if COND_arm64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/arm64/efi/startup.S -kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22839,7 +22839,7 @@ endif if COND_riscv32_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/riscv/efi/startup.S -kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22861,7 +22861,7 @@ endif if COND_riscv64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/riscv/efi/startup.S -kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def index 474a63e..abd26cf 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -203,6 +203,7 @@ kernel = { efi = term/efi/console.c; efi = kern/acpi.c; efi = kern/efi/acpi.c; + efi = kern/efi/sb.c; i386_coreboot = kern/i386/pc/acpi.c; i386_multiboot = kern/i386/pc/acpi.c; i386_coreboot = kern/acpi.c; diff --git a/grub-core/Makefile.in b/grub-core/Makefile.in index d287607..8fb81ee 100644 --- a/grub-core/Makefile.in +++ b/grub-core/Makefile.in @@ -10468,32 +10468,33 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ kern/arm64/cache_flush.S kern/arm64/dl.c \ kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c \ kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c \ - kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c \ - kern/generic/millisleep.c kern/command.c kern/corecmd.c \ - kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c \ - kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c \ - kern/parser.c kern/partition.c kern/rescue_parser.c \ - kern/rescue_reader.c kern/term.c kern/arm/startup.S \ - kern/arm/coreboot/init.c kern/arm/coreboot/timer.c \ - kern/arm/coreboot/coreboot.S lib/fdt.c bus/fdt.c term/ps2.c \ - term/arm/pl050.c term/arm/cros.c term/arm/cros_ec.c \ - bus/spi/rk3288_spi.c commands/keylayouts.c \ - kern/arm/coreboot/dma.c kern/arm/coreboot/cbtable.c \ - video/coreboot/cbfb.c kern/coreboot/mmap.c \ - kern/coreboot/cbtable.c term/gfxterm.c font/font.c \ - font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c \ - video/fb/fbutil.c video/fb/video_fb.c video/video.c \ - kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S \ - kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S \ - lib/division.c kern/arm/efi/startup.S kern/arm/efi/init.c \ - kern/arm/uboot/init.c kern/arm/uboot/uboot.S \ - disk/uboot/ubootdisk.c kern/uboot/uboot.c kern/uboot/init.c \ - kern/uboot/hw.c term/uboot/console.c term/terminfo.c \ - term/tparm.c commands/extcmd.c lib/arg.c disk/host.c \ - kern/emu/cache_s.S kern/emu/hostdisk.c osdep/unix/hostdisk.c \ - osdep/exec.c osdep/devmapper/hostdisk.c osdep/hostdisk.c \ - kern/emu/hostfs.c kern/emu/main.c kern/emu/argp_common.c \ - kern/emu/misc.c kern/emu/mm.c kern/emu/time.c kern/emu/cache.c \ + kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c \ + kern/time.c kern/generic/millisleep.c kern/command.c \ + kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c \ + kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c \ + kern/misc.c kern/parser.c kern/partition.c \ + kern/rescue_parser.c kern/rescue_reader.c kern/term.c \ + kern/arm/startup.S kern/arm/coreboot/init.c \ + kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S \ + lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c \ + term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c \ + commands/keylayouts.c kern/arm/coreboot/dma.c \ + kern/arm/coreboot/cbtable.c video/coreboot/cbfb.c \ + kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c \ + font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c \ + video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c \ + video/video.c kern/arm/dl.c kern/arm/dl_helper.c \ + kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c \ + kern/arm/compiler-rt.S lib/division.c kern/arm/efi/startup.S \ + kern/arm/efi/init.c kern/arm/uboot/init.c \ + kern/arm/uboot/uboot.S disk/uboot/ubootdisk.c \ + kern/uboot/uboot.c kern/uboot/init.c kern/uboot/hw.c \ + term/uboot/console.c term/terminfo.c term/tparm.c \ + commands/extcmd.c lib/arg.c disk/host.c kern/emu/cache_s.S \ + kern/emu/hostdisk.c osdep/unix/hostdisk.c osdep/exec.c \ + osdep/devmapper/hostdisk.c osdep/hostdisk.c kern/emu/hostfs.c \ + kern/emu/main.c kern/emu/argp_common.c kern/emu/misc.c \ + kern/emu/mm.c kern/emu/time.c kern/emu/cache.c \ osdep/emuconsole.c osdep/dl.c osdep/sleep.c osdep/init.c \ osdep/emunet.c osdep/cputime.c kern/i386/coreboot/startup.S \ kern/i386/coreboot/init.c kern/i386/pc/acpi.c \ @@ -10580,6 +10581,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -10651,6 +10653,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -10686,6 +10689,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -10881,6 +10885,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -11109,6 +11114,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -11271,6 +11277,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -11360,6 +11367,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ +@COND_arm64_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -16380,6 +16388,7 @@ KERNEL_HEADER_FILES = $(top_srcdir)/include/grub/cache.h \ $(top_srcdir)/include/grub/device.h \ $(top_srcdir)/include/grub/disk.h \ $(top_srcdir)/include/grub/dl.h \ + $(top_srcdir)/include/grub/efi/sb.h \ $(top_srcdir)/include/grub/env.h \ $(top_srcdir)/include/grub/env_private.h \ $(top_srcdir)/include/grub/err.h \ @@ -25612,7 +25621,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_arm64_efi_TRUE@ kern/arm64/dl_helper.c disk/efi/efidisk.c \ @COND_arm64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \ @COND_arm64_efi_TRUE@ kern/efi/mm.c term/efi/console.c \ -@COND_arm64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \ +@COND_arm64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \ @COND_arm64_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ @COND_arm64_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ @COND_arm64_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ @@ -25661,8 +25670,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_arm_efi_TRUE@ disk/efi/efidisk.c kern/efi/efi.c \ @COND_arm_efi_TRUE@ kern/efi/init.c kern/efi/mm.c \ @COND_arm_efi_TRUE@ term/efi/console.c kern/acpi.c \ -@COND_arm_efi_TRUE@ kern/efi/acpi.c kern/compiler-rt.c \ -@COND_arm_efi_TRUE@ kern/mm.c kern/time.c \ +@COND_arm_efi_TRUE@ kern/efi/acpi.c kern/efi/sb.c \ +@COND_arm_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ @COND_arm_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ @COND_arm_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ @COND_arm_efi_TRUE@ kern/dl.c kern/env.c kern/err.c kern/file.c \ @@ -25739,7 +25748,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_efi_TRUE@ kern/i386/tsc_pit.c disk/efi/efidisk.c \ @COND_i386_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \ @COND_i386_efi_TRUE@ kern/efi/mm.c term/efi/console.c \ -@COND_i386_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \ +@COND_i386_efi_TRUE@ kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \ @COND_i386_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ @COND_i386_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ @COND_i386_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ @@ -25851,7 +25860,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_ia64_efi_TRUE@ lib/division.c disk/efi/efidisk.c \ @COND_ia64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \ @COND_ia64_efi_TRUE@ kern/efi/mm.c term/efi/console.c \ -@COND_ia64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \ +@COND_ia64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \ @COND_ia64_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ @COND_ia64_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ @COND_ia64_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ @@ -25959,9 +25968,9 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_riscv32_efi_TRUE@ disk/efi/efidisk.c kern/efi/efi.c \ @COND_riscv32_efi_TRUE@ kern/efi/init.c kern/efi/mm.c \ @COND_riscv32_efi_TRUE@ term/efi/console.c kern/acpi.c \ -@COND_riscv32_efi_TRUE@ kern/efi/acpi.c kern/compiler-rt.c \ -@COND_riscv32_efi_TRUE@ kern/mm.c kern/time.c \ -@COND_riscv32_efi_TRUE@ kern/generic/millisleep.c \ +@COND_riscv32_efi_TRUE@ kern/efi/acpi.c kern/efi/sb.c \ +@COND_riscv32_efi_TRUE@ kern/compiler-rt.c kern/mm.c \ +@COND_riscv32_efi_TRUE@ kern/time.c kern/generic/millisleep.c \ @COND_riscv32_efi_TRUE@ kern/command.c kern/corecmd.c \ @COND_riscv32_efi_TRUE@ kern/device.c kern/disk.c kern/dl.c \ @COND_riscv32_efi_TRUE@ kern/env.c kern/err.c kern/file.c \ @@ -25977,8 +25986,9 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_riscv64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \ @COND_riscv64_efi_TRUE@ kern/efi/mm.c term/efi/console.c \ @COND_riscv64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \ -@COND_riscv64_efi_TRUE@ kern/compiler-rt.c kern/mm.c \ -@COND_riscv64_efi_TRUE@ kern/time.c kern/generic/millisleep.c \ +@COND_riscv64_efi_TRUE@ kern/efi/sb.c kern/compiler-rt.c \ +@COND_riscv64_efi_TRUE@ kern/mm.c kern/time.c \ +@COND_riscv64_efi_TRUE@ kern/generic/millisleep.c \ @COND_riscv64_efi_TRUE@ kern/command.c kern/corecmd.c \ @COND_riscv64_efi_TRUE@ kern/device.c kern/disk.c kern/dl.c \ @COND_riscv64_efi_TRUE@ kern/env.c kern/err.c kern/file.c \ @@ -26022,7 +26032,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_x86_64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \ @COND_x86_64_efi_TRUE@ kern/efi/mm.c term/efi/console.c \ @COND_x86_64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \ -@COND_x86_64_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ +@COND_x86_64_efi_TRUE@ kern/efi/sb.c kern/compiler-rt.c \ +@COND_x86_64_efi_TRUE@ kern/mm.c kern/time.c \ @COND_x86_64_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ @COND_x86_64_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ @COND_x86_64_efi_TRUE@ kern/dl.c kern/env.c kern/err.c \ @@ -27989,6 +28000,8 @@ kern/kernel_exec-acpi.$(OBJEXT): kern/$(am__dirstamp) \ kern/$(DEPDIR)/$(am__dirstamp) kern/efi/kernel_exec-acpi.$(OBJEXT): kern/efi/$(am__dirstamp) \ kern/efi/$(DEPDIR)/$(am__dirstamp) +kern/efi/kernel_exec-sb.$(OBJEXT): kern/efi/$(am__dirstamp) \ + kern/efi/$(DEPDIR)/$(am__dirstamp) kern/kernel_exec-compiler-rt.$(OBJEXT): kern/$(am__dirstamp) \ kern/$(DEPDIR)/$(am__dirstamp) kern/kernel_exec-mm.$(OBJEXT): kern/$(am__dirstamp) \ @@ -30994,6 +31007,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-fdt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-init.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-mm.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-sb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/emu/$(DEPDIR)/grub_emu-full.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/emu/$(DEPDIR)/grub_emu_lite-lite.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/emu/$(DEPDIR)/kernel_exec-argp_common.Po@am__quote@ @@ -35285,6 +35299,20 @@ kern/efi/kernel_exec-acpi.obj: kern/efi/acpi.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/efi/kernel_exec-acpi.obj `if test -f 'kern/efi/acpi.c'; then $(CYGPATH_W) 'kern/efi/acpi.c'; else $(CYGPATH_W) '$(srcdir)/kern/efi/acpi.c'; fi` +kern/efi/kernel_exec-sb.o: kern/efi/sb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/efi/kernel_exec-sb.o -MD -MP -MF kern/efi/$(DEPDIR)/kernel_exec-sb.Tpo -c -o kern/efi/kernel_exec-sb.o `test -f 'kern/efi/sb.c' || echo '$(srcdir)/'`kern/efi/sb.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/efi/$(DEPDIR)/kernel_exec-sb.Tpo kern/efi/$(DEPDIR)/kernel_exec-sb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kern/efi/sb.c' object='kern/efi/kernel_exec-sb.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/efi/kernel_exec-sb.o `test -f 'kern/efi/sb.c' || echo '$(srcdir)/'`kern/efi/sb.c + +kern/efi/kernel_exec-sb.obj: kern/efi/sb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/efi/kernel_exec-sb.obj -MD -MP -MF kern/efi/$(DEPDIR)/kernel_exec-sb.Tpo -c -o kern/efi/kernel_exec-sb.obj `if test -f 'kern/efi/sb.c'; then $(CYGPATH_W) 'kern/efi/sb.c'; else $(CYGPATH_W) '$(srcdir)/kern/efi/sb.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/efi/$(DEPDIR)/kernel_exec-sb.Tpo kern/efi/$(DEPDIR)/kernel_exec-sb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kern/efi/sb.c' object='kern/efi/kernel_exec-sb.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/efi/kernel_exec-sb.obj `if test -f 'kern/efi/sb.c'; then $(CYGPATH_W) 'kern/efi/sb.c'; else $(CYGPATH_W) '$(srcdir)/kern/efi/sb.c'; fi` + kern/kernel_exec-compiler-rt.o: kern/compiler-rt.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-compiler-rt.o -MD -MP -MF kern/$(DEPDIR)/kernel_exec-compiler-rt.Tpo -c -o kern/kernel_exec-compiler-rt.o `test -f 'kern/compiler-rt.c' || echo '$(srcdir)/'`kern/compiler-rt.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-compiler-rt.Tpo kern/$(DEPDIR)/kernel_exec-compiler-rt.Po diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c new file mode 100644 index 0000000..19658d9 --- /dev/null +++ b/grub-core/kern/efi/sb.c @@ -0,0 +1,109 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * GRUB 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. + * + * GRUB 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 GRUB. If not, see . + * + * UEFI Secure Boot related checkings. + */ + +#include +#include +#include +#include +#include +#include +#include + +/* + * Determine whether we're in secure boot mode. + * + * Please keep the logic in sync with the Linux kernel, + * drivers/firmware/efi/libstub/secureboot.c:efi_get_secureboot(). + */ +grub_uint8_t +grub_efi_get_secureboot (void) +{ + static grub_efi_guid_t efi_variable_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID; + static grub_efi_guid_t efi_shim_lock_guid = GRUB_EFI_SHIM_LOCK_GUID; + grub_efi_status_t status; + grub_efi_uint32_t attr = 0; + grub_size_t size = 0; + grub_uint8_t *secboot = NULL; + grub_uint8_t *setupmode = NULL; + grub_uint8_t *moksbstate = NULL; + grub_uint8_t secureboot = GRUB_EFI_SECUREBOOT_MODE_UNKNOWN; + const char *secureboot_str = "UNKNOWN"; + + status = grub_efi_get_variable ("SecureBoot", &efi_variable_guid, + &size, (void **) &secboot); + + if (status == GRUB_EFI_NOT_FOUND) + { + secureboot = GRUB_EFI_SECUREBOOT_MODE_DISABLED; + goto out; + } + + if (status != GRUB_EFI_SUCCESS) + goto out; + + status = grub_efi_get_variable ("SetupMode", &efi_variable_guid, + &size, (void **) &setupmode); + + if (status != GRUB_EFI_SUCCESS) + goto out; + + if ((*secboot == 0) || (*setupmode == 1)) + { + secureboot = GRUB_EFI_SECUREBOOT_MODE_DISABLED; + goto out; + } + + /* + * See if a user has put the shim into insecure mode. If so, and if the + * variable doesn't have the runtime attribute set, we might as well + * honor that. + */ + status = grub_efi_get_variable_with_attributes ("MokSBState", &efi_shim_lock_guid, + &size, (void **) &moksbstate, &attr); + + /* If it fails, we don't care why. Default to secure. */ + if (status != GRUB_EFI_SUCCESS) + { + secureboot = GRUB_EFI_SECUREBOOT_MODE_ENABLED; + goto out; + } + + if (!(attr & GRUB_EFI_VARIABLE_RUNTIME_ACCESS) && *moksbstate == 1) + { + secureboot = GRUB_EFI_SECUREBOOT_MODE_DISABLED; + goto out; + } + + secureboot = GRUB_EFI_SECUREBOOT_MODE_ENABLED; + + out: + grub_free (moksbstate); + grub_free (setupmode); + grub_free (secboot); + + if (secureboot == GRUB_EFI_SECUREBOOT_MODE_DISABLED) + secureboot_str = "Disabled"; + else if (secureboot == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + secureboot_str = "Enabled"; + + grub_dprintf ("efi", "UEFI Secure Boot state: %s\n", secureboot_str); + + return secureboot; +} diff --git a/include/grub/efi/sb.h b/include/grub/efi/sb.h new file mode 100644 index 0000000..a33d985 --- /dev/null +++ b/include/grub/efi/sb.h @@ -0,0 +1,40 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * GRUB 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. + * + * GRUB 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 GRUB. If not, see . + */ + +#ifndef GRUB_EFI_SB_H +#define GRUB_EFI_SB_H 1 + +#include +#include + +#define GRUB_EFI_SECUREBOOT_MODE_UNSET 0 +#define GRUB_EFI_SECUREBOOT_MODE_UNKNOWN 1 +#define GRUB_EFI_SECUREBOOT_MODE_DISABLED 2 +#define GRUB_EFI_SECUREBOOT_MODE_ENABLED 3 + +#ifdef GRUB_MACHINE_EFI +extern grub_uint8_t +EXPORT_FUNC (grub_efi_get_secureboot) (void); +#else +static inline grub_uint8_t +grub_efi_get_secureboot (void) +{ + return GRUB_EFI_SECUREBOOT_MODE_UNSET; +} +#endif +#endif /* GRUB_EFI_SB_H */ diff --git a/po/POTFILES.in b/po/POTFILES.in index 5574cbe..22543be 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -266,6 +266,7 @@ ./grub-core/kern/efi/fdt.c ./grub-core/kern/efi/init.c ./grub-core/kern/efi/mm.c +./grub-core/kern/efi/sb.c ./grub-core/kern/elf.c ./grub-core/kern/elfXX.c ./grub-core/kern/emu/argp_common.c @@ -1053,6 +1054,7 @@ ./include/grub/efi/memory.h ./include/grub/efi/pci.h ./include/grub/efi/pe32.h +./include/grub/efi/sb.h ./include/grub/efi/tpm.h ./include/grub/efi/uga_draw.h ./include/grub/efiemu/efiemu.h -- 2.14.2 ================================================ FILE: boot/grub2/0033-verifiers-Move-verifiers-API-to-kernel-image.patch ================================================ From 9e95f45ceeef36fcf93cbfffcf004276883dbc99 Mon Sep 17 00:00:00 2001 From: Marco A Benatto Date: Wed, 23 Sep 2020 11:33:33 -0400 Subject: [PATCH] verifiers: Move verifiers API to kernel image Move verifiers API from a module to the kernel image, so it can be used there as well. There are no functional changes in this patch. Signed-off-by: Marco A Benatto Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper [Add changes to generated files] Signed-off-by: Stefan Sørensen --- grub-core/Makefile.am | 1 + grub-core/Makefile.core.am | 66 +++----- grub-core/Makefile.core.def | 6 +- grub-core/Makefile.in | 355 +++++++++++++++++++++-------------------- grub-core/commands/verifiers.c | 228 -------------------------- grub-core/kern/main.c | 4 + grub-core/kern/verifiers.c | 224 ++++++++++++++++++++++++++ include/grub/verify.h | 9 +- po/POTFILES.in | 2 +- 9 files changed, 446 insertions(+), 449 deletions(-) delete mode 100644 grub-core/commands/verifiers.c create mode 100644 grub-core/kern/verifiers.c diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am index c6ba5b2..cc6fc7d 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -91,6 +91,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/parser.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/partition.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/term.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/time.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/verify.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/mm_private.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/net.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/memory.h diff --git a/grub-core/Makefile.core.am b/grub-core/Makefile.core.am index f28b753..c4d67d4 100644 --- a/grub-core/Makefile.core.am +++ b/grub-core/Makefile.core.am @@ -6953,26 +6953,6 @@ CLEANFILES += pgp.marker pgp.marker: $(pgp_module_SOURCES) $(nodist_pgp_module_SOURCES) $(TARGET_CPP) -DGRUB_LST_GENERATOR $(CPPFLAGS_MARKER) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pgp_module_CPPFLAGS) $(CPPFLAGS) $^ > $@.new || (rm -f $@; exit 1) grep 'MARKER' $@.new > $@; rm -f $@.new -platform_PROGRAMS += verifiers.module -MODULE_FILES += verifiers.module$(EXEEXT) -verifiers_module_SOURCES = commands/verifiers.c ## platform sources -nodist_verifiers_module_SOURCES = ## platform nodist sources -verifiers_module_LDADD = -verifiers_module_CFLAGS = $(AM_CFLAGS) $(CFLAGS_MODULE) -verifiers_module_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_MODULE) -verifiers_module_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_MODULE) -verifiers_module_CCASFLAGS = $(AM_CCASFLAGS) $(CCASFLAGS_MODULE) -verifiers_module_DEPENDENCIES = $(TARGET_OBJ2ELF) -dist_noinst_DATA += -BUILT_SOURCES += $(nodist_verifiers_module_SOURCES) -CLEANFILES += $(nodist_verifiers_module_SOURCES) -MOD_FILES += verifiers.mod -MARKER_FILES += verifiers.marker -CLEANFILES += verifiers.marker - -verifiers.marker: $(verifiers_module_SOURCES) $(nodist_verifiers_module_SOURCES) - $(TARGET_CPP) -DGRUB_LST_GENERATOR $(CPPFLAGS_MARKER) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(verifiers_module_CPPFLAGS) $(CPPFLAGS) $^ > $@.new || (rm -f $@; exit 1) - grep 'MARKER' $@.new > $@; rm -f $@.new if COND_x86_64_efi platform_PROGRAMS += shim_lock.module @@ -22377,7 +22357,7 @@ gcry_whirlpool.marker: $(gcry_whirlpool_module_SOURCES) $(nodist_gcry_whirlpool_ if COND_emu platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = -kernel_exec_SOURCES += disk/host.c kern/emu/cache_s.S kern/emu/hostdisk.c osdep/unix/hostdisk.c osdep/exec.c osdep/devmapper/hostdisk.c osdep/hostdisk.c kern/emu/hostfs.c kern/emu/main.c kern/emu/argp_common.c kern/emu/misc.c kern/emu/mm.c kern/emu/time.c kern/emu/cache.c osdep/emuconsole.c osdep/dl.c osdep/sleep.c osdep/init.c osdep/emunet.c osdep/cputime.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += disk/host.c kern/emu/cache_s.S kern/emu/hostdisk.c osdep/unix/hostdisk.c osdep/exec.c osdep/devmapper/hostdisk.c osdep/hostdisk.c kern/emu/hostfs.c kern/emu/main.c kern/emu/argp_common.c kern/emu/misc.c kern/emu/mm.c kern/emu/time.c kern/emu/cache.c osdep/emuconsole.c osdep/dl.c osdep/sleep.c osdep/init.c osdep/emunet.c osdep/cputime.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) $(CFLAGS_GNULIB) @@ -22399,7 +22379,7 @@ endif if COND_i386_pc platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/pc/startup.S -kernel_exec_SOURCES += kern/i386/pc/init.c kern/i386/pc/mmap.c term/i386/pc/console.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/i386/pc/init.c kern/i386/pc/mmap.c term/i386/pc/console.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22421,7 +22401,7 @@ endif if COND_i386_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/efi/startup.S -kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/i386/efi/init.c bus/pci.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/i386/efi/init.c bus/pci.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22443,7 +22423,7 @@ endif if COND_i386_qemu platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/qemu/startup.S -kernel_exec_SOURCES += kern/i386/qemu/init.c bus/pci.c kern/vga_init.c kern/i386/qemu/mmap.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/i386/qemu/init.c bus/pci.c kern/vga_init.c kern/i386/qemu/mmap.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22465,7 +22445,7 @@ endif if COND_i386_coreboot platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/coreboot/startup.S -kernel_exec_SOURCES += kern/i386/coreboot/init.c kern/i386/pc/acpi.c kern/acpi.c kern/i386/tsc_pmtimer.c kern/i386/coreboot/cbtable.c video/coreboot/cbfb.c kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/i386/coreboot/init.c kern/i386/pc/acpi.c kern/acpi.c kern/i386/tsc_pmtimer.c kern/i386/coreboot/cbtable.c video/coreboot/cbfb.c kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22487,7 +22467,7 @@ endif if COND_i386_multiboot platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/coreboot/startup.S -kernel_exec_SOURCES += kern/i386/coreboot/init.c kern/i386/pc/acpi.c kern/acpi.c kern/i386/multiboot_mmap.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/i386/coreboot/init.c kern/i386/pc/acpi.c kern/acpi.c kern/i386/multiboot_mmap.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22509,7 +22489,7 @@ endif if COND_i386_ieee1275 platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/ieee1275/startup.S -kernel_exec_SOURCES += disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22531,7 +22511,7 @@ endif if COND_x86_64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/x86_64/efi/startup.S -kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/x86_64/efi/callwrap.S kern/i386/efi/init.c bus/pci.c kern/x86_64/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/x86_64/efi/callwrap.S kern/i386/efi/init.c bus/pci.c kern/x86_64/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22553,7 +22533,7 @@ endif if COND_i386_xen platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/xen/startup.S -kernel_exec_SOURCES += kern/i386/dl.c kern/i386/xen/hypercall.S kern/i386/tsc.c kern/i386/xen/tsc.c kern/xen/init.c term/xen/console.c disk/xen/xendisk.c commands/boot.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/i386/dl.c kern/i386/xen/hypercall.S kern/i386/tsc.c kern/i386/xen/tsc.c kern/xen/init.c term/xen/console.c disk/xen/xendisk.c commands/boot.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22575,7 +22555,7 @@ endif if COND_x86_64_xen platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/x86_64/xen/startup.S -kernel_exec_SOURCES += kern/x86_64/dl.c kern/x86_64/xen/hypercall.S kern/i386/tsc.c kern/i386/xen/tsc.c kern/xen/init.c term/xen/console.c disk/xen/xendisk.c commands/boot.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/x86_64/dl.c kern/x86_64/xen/hypercall.S kern/i386/tsc.c kern/i386/xen/tsc.c kern/xen/init.c term/xen/console.c disk/xen/xendisk.c commands/boot.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22597,7 +22577,7 @@ endif if COND_i386_xen_pvh platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/xen/startup_pvh.S -kernel_exec_SOURCES += kern/i386/dl.c commands/boot.c disk/xen/xendisk.c kern/i386/tsc.c kern/i386/xen/tsc.c kern/i386/xen/pvh.c kern/xen/init.c term/xen/console.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/i386/dl.c commands/boot.c disk/xen/xendisk.c kern/i386/tsc.c kern/i386/xen/tsc.c kern/i386/xen/pvh.c kern/xen/init.c term/xen/console.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22619,7 +22599,7 @@ endif if COND_mips_loongson platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/mips/startup.S -kernel_exec_SOURCES += term/ns8250.c bus/bonito.c bus/cs5536.c bus/pci.c kern/mips/loongson/init.c term/at_keyboard.c term/ps2.c commands/boot.c term/serial.c video/sm712.c video/sis315pro.c video/radeon_fuloong2e.c video/radeon_yeeloong3a.c commands/keylayouts.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += term/ns8250.c bus/bonito.c bus/cs5536.c bus/pci.c kern/mips/loongson/init.c term/at_keyboard.c term/ps2.c commands/boot.c term/serial.c video/sm712.c video/sis315pro.c video/radeon_fuloong2e.c video/radeon_yeeloong3a.c commands/keylayouts.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22641,7 +22621,7 @@ endif if COND_sparc64_ieee1275 platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/sparc64/ieee1275/crt0.S -kernel_exec_SOURCES += kern/sparc64/cache.S kern/sparc64/dl.c kern/sparc64/ieee1275/ieee1275.c disk/ieee1275/obdisk.c disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/sparc64/cache.S kern/sparc64/dl.c kern/sparc64/ieee1275/ieee1275.c disk/ieee1275/obdisk.c disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22663,7 +22643,7 @@ endif if COND_powerpc_ieee1275 platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/powerpc/ieee1275/startup.S -kernel_exec_SOURCES += kern/powerpc/cache.S kern/powerpc/dl.c kern/powerpc/compiler-rt.S disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/powerpc/cache.S kern/powerpc/dl.c kern/powerpc/compiler-rt.S disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22685,7 +22665,7 @@ endif if COND_mips_arc platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/mips/startup.S -kernel_exec_SOURCES += kern/mips/arc/init.c term/arc/console.c disk/arc/arcdisk.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/mips/arc/init.c term/arc/console.c disk/arc/arcdisk.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22707,7 +22687,7 @@ endif if COND_ia64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = -kernel_exec_SOURCES += kern/ia64/efi/startup.S kern/ia64/efi/init.c kern/ia64/dl.c kern/ia64/dl_helper.c kern/ia64/cache.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/ia64/efi/startup.S kern/ia64/efi/init.c kern/ia64/dl.c kern/ia64/dl_helper.c kern/ia64/cache.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) -fno-builtin -fpic -minline-int-divide-max-throughput @@ -22729,7 +22709,7 @@ endif if COND_mips_qemu_mips platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/mips/startup.S -kernel_exec_SOURCES += kern/mips/qemu_mips/init.c term/ns8250.c term/serial.c term/at_keyboard.c term/ps2.c commands/boot.c commands/keylayouts.c term/i386/pc/vga_text.c kern/vga_init.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/mips/qemu_mips/init.c term/ns8250.c term/serial.c term/at_keyboard.c term/ps2.c commands/boot.c commands/keylayouts.c term/i386/pc/vga_text.c kern/vga_init.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22751,7 +22731,7 @@ endif if COND_arm_uboot platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/arm/startup.S -kernel_exec_SOURCES += kern/arm/uboot/init.c kern/arm/uboot/uboot.S disk/uboot/ubootdisk.c kern/uboot/uboot.c kern/uboot/init.c kern/uboot/hw.c term/uboot/console.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/arm/uboot/init.c kern/arm/uboot/uboot.S disk/uboot/ubootdisk.c kern/uboot/uboot.c kern/uboot/init.c kern/uboot/hw.c term/uboot/console.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22773,7 +22753,7 @@ endif if COND_arm_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/arm/efi/startup.S -kernel_exec_SOURCES += kern/arm/efi/init.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/arm/efi/init.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22795,7 +22775,7 @@ endif if COND_arm64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/arm64/efi/startup.S -kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22817,7 +22797,7 @@ endif if COND_arm_coreboot platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/arm/startup.S -kernel_exec_SOURCES += kern/arm/coreboot/init.c kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c commands/keylayouts.c kern/arm/coreboot/dma.c kern/arm/coreboot/cbtable.c video/coreboot/cbfb.c kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/arm/coreboot/init.c kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c commands/keylayouts.c kern/arm/coreboot/dma.c kern/arm/coreboot/cbtable.c video/coreboot/cbfb.c kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22839,7 +22819,7 @@ endif if COND_riscv32_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/riscv/efi/startup.S -kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22861,7 +22841,7 @@ endif if COND_riscv64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/riscv/efi/startup.S -kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c +kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def index abd26cf..f6c0348 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -140,6 +140,7 @@ kernel = { common = kern/rescue_parser.c; common = kern/rescue_reader.c; common = kern/term.c; + common = kern/verifiers.c; noemu = kern/compiler-rt.c; noemu = kern/mm.c; @@ -943,11 +944,6 @@ module = { cppflags = '-I$(srcdir)/lib/posix_wrap'; }; -module = { - name = verifiers; - common = commands/verifiers.c; -}; - module = { name = shim_lock; common = commands/efi/shim_lock.c; diff --git a/grub-core/Makefile.in b/grub-core/Makefile.in index 8fb81ee..8930714 100644 --- a/grub-core/Makefile.in +++ b/grub-core/Makefile.in @@ -202,39 +202,39 @@ platform_PROGRAMS = disk.module$(EXEEXT) trig.module$(EXEEXT) \ $(am__EXEEXT_286) $(am__EXEEXT_287) $(am__EXEEXT_288) \ $(am__EXEEXT_289) $(am__EXEEXT_290) $(am__EXEEXT_291) \ $(am__EXEEXT_292) hashsum.module$(EXEEXT) pgp.module$(EXEEXT) \ - verifiers.module$(EXEEXT) $(am__EXEEXT_293) $(am__EXEEXT_294) \ - $(am__EXEEXT_295) $(am__EXEEXT_296) $(am__EXEEXT_297) \ - $(am__EXEEXT_298) $(am__EXEEXT_299) $(am__EXEEXT_300) \ - $(am__EXEEXT_301) $(am__EXEEXT_302) help.module$(EXEEXT) \ - hexdump.module$(EXEEXT) keystatus.module$(EXEEXT) \ - $(am__EXEEXT_303) $(am__EXEEXT_304) loadenv.module$(EXEEXT) \ - ls.module$(EXEEXT) lsmmap.module$(EXEEXT) $(am__EXEEXT_305) \ - $(am__EXEEXT_306) $(am__EXEEXT_307) $(am__EXEEXT_308) \ - $(am__EXEEXT_309) $(am__EXEEXT_310) $(am__EXEEXT_311) \ - $(am__EXEEXT_312) memrw.module$(EXEEXT) \ - minicmd.module$(EXEEXT) parttool.module$(EXEEXT) \ - password.module$(EXEEXT) password_pbkdf2.module$(EXEEXT) \ - $(am__EXEEXT_313) $(am__EXEEXT_314) $(am__EXEEXT_315) \ - $(am__EXEEXT_316) $(am__EXEEXT_317) $(am__EXEEXT_318) \ - $(am__EXEEXT_319) $(am__EXEEXT_320) $(am__EXEEXT_321) \ - $(am__EXEEXT_322) $(am__EXEEXT_323) $(am__EXEEXT_324) \ - $(am__EXEEXT_325) $(am__EXEEXT_326) $(am__EXEEXT_327) \ - $(am__EXEEXT_328) $(am__EXEEXT_329) $(am__EXEEXT_330) \ - $(am__EXEEXT_331) $(am__EXEEXT_332) $(am__EXEEXT_333) \ - probe.module$(EXEEXT) read.module$(EXEEXT) \ - search.module$(EXEEXT) search_fs_file.module$(EXEEXT) \ - search_fs_uuid.module$(EXEEXT) search_label.module$(EXEEXT) \ - $(am__EXEEXT_334) $(am__EXEEXT_335) $(am__EXEEXT_336) \ - $(am__EXEEXT_337) $(am__EXEEXT_338) $(am__EXEEXT_339) \ - $(am__EXEEXT_340) $(am__EXEEXT_341) $(am__EXEEXT_342) \ - $(am__EXEEXT_343) $(am__EXEEXT_344) $(am__EXEEXT_345) \ - $(am__EXEEXT_346) $(am__EXEEXT_347) $(am__EXEEXT_348) \ - $(am__EXEEXT_349) sleep.module$(EXEEXT) $(am__EXEEXT_350) \ - $(am__EXEEXT_351) terminal.module$(EXEEXT) \ - test.module$(EXEEXT) true.module$(EXEEXT) $(am__EXEEXT_352) \ - $(am__EXEEXT_353) $(am__EXEEXT_354) $(am__EXEEXT_355) \ - $(am__EXEEXT_356) $(am__EXEEXT_357) $(am__EXEEXT_358) \ - $(am__EXEEXT_359) $(am__EXEEXT_360) videoinfo.module$(EXEEXT) \ + $(am__EXEEXT_293) $(am__EXEEXT_294) $(am__EXEEXT_295) \ + $(am__EXEEXT_296) $(am__EXEEXT_297) $(am__EXEEXT_298) \ + $(am__EXEEXT_299) $(am__EXEEXT_300) $(am__EXEEXT_301) \ + $(am__EXEEXT_302) help.module$(EXEEXT) hexdump.module$(EXEEXT) \ + keystatus.module$(EXEEXT) $(am__EXEEXT_303) $(am__EXEEXT_304) \ + loadenv.module$(EXEEXT) ls.module$(EXEEXT) \ + lsmmap.module$(EXEEXT) $(am__EXEEXT_305) $(am__EXEEXT_306) \ + $(am__EXEEXT_307) $(am__EXEEXT_308) $(am__EXEEXT_309) \ + $(am__EXEEXT_310) $(am__EXEEXT_311) $(am__EXEEXT_312) \ + memrw.module$(EXEEXT) minicmd.module$(EXEEXT) \ + parttool.module$(EXEEXT) password.module$(EXEEXT) \ + password_pbkdf2.module$(EXEEXT) $(am__EXEEXT_313) \ + $(am__EXEEXT_314) $(am__EXEEXT_315) $(am__EXEEXT_316) \ + $(am__EXEEXT_317) $(am__EXEEXT_318) $(am__EXEEXT_319) \ + $(am__EXEEXT_320) $(am__EXEEXT_321) $(am__EXEEXT_322) \ + $(am__EXEEXT_323) $(am__EXEEXT_324) $(am__EXEEXT_325) \ + $(am__EXEEXT_326) $(am__EXEEXT_327) $(am__EXEEXT_328) \ + $(am__EXEEXT_329) $(am__EXEEXT_330) $(am__EXEEXT_331) \ + $(am__EXEEXT_332) $(am__EXEEXT_333) probe.module$(EXEEXT) \ + read.module$(EXEEXT) search.module$(EXEEXT) \ + search_fs_file.module$(EXEEXT) search_fs_uuid.module$(EXEEXT) \ + search_label.module$(EXEEXT) $(am__EXEEXT_334) \ + $(am__EXEEXT_335) $(am__EXEEXT_336) $(am__EXEEXT_337) \ + $(am__EXEEXT_338) $(am__EXEEXT_339) $(am__EXEEXT_340) \ + $(am__EXEEXT_341) $(am__EXEEXT_342) $(am__EXEEXT_343) \ + $(am__EXEEXT_344) $(am__EXEEXT_345) $(am__EXEEXT_346) \ + $(am__EXEEXT_347) $(am__EXEEXT_348) $(am__EXEEXT_349) \ + sleep.module$(EXEEXT) $(am__EXEEXT_350) $(am__EXEEXT_351) \ + terminal.module$(EXEEXT) test.module$(EXEEXT) \ + true.module$(EXEEXT) $(am__EXEEXT_352) $(am__EXEEXT_353) \ + $(am__EXEEXT_354) $(am__EXEEXT_355) $(am__EXEEXT_356) \ + $(am__EXEEXT_357) $(am__EXEEXT_358) $(am__EXEEXT_359) \ + $(am__EXEEXT_360) videoinfo.module$(EXEEXT) \ videotest.module$(EXEEXT) xnu_uuid.module$(EXEEXT) \ dm_nv.module$(EXEEXT) loopback.module$(EXEEXT) \ cryptodisk.module$(EXEEXT) luks.module$(EXEEXT) \ @@ -10474,7 +10474,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c \ kern/misc.c kern/parser.c kern/partition.c \ kern/rescue_parser.c kern/rescue_reader.c kern/term.c \ - kern/arm/startup.S kern/arm/coreboot/init.c \ + kern/verifiers.c kern/arm/startup.S kern/arm/coreboot/init.c \ kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S \ lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c \ term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c \ @@ -10564,7 +10564,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@am_kernel_exec_OBJECTS = kern/x86_64/efi/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/i386/efi/kernel_exec-tsc.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/i386/kernel_exec-tsc_pmtimer.$(OBJEXT) \ @@ -10602,7 +10603,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@am_kernel_exec_OBJECTS = kern/sparc64/ieee1275/kernel_exec-crt0.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/sparc64/kernel_exec-cache.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/sparc64/kernel_exec-dl.$(OBJEXT) \ @@ -10639,7 +10641,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@am_kernel_exec_OBJECTS = kern/riscv/efi/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/riscv/efi/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/efi/kernel_exec-fdt.$(OBJEXT) \ @@ -10674,7 +10677,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@am_kernel_exec_OBJECTS = kern/riscv/efi/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/riscv/efi/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/efi/kernel_exec-fdt.$(OBJEXT) \ @@ -10710,7 +10714,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@am_kernel_exec_OBJECTS = kern/powerpc/ieee1275/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/powerpc/kernel_exec-cache.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/powerpc/kernel_exec-dl.$(OBJEXT) \ @@ -10746,7 +10751,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@am_kernel_exec_OBJECTS = kern/mips/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/mips/qemu_mips/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ term/kernel_exec-ns8250.$(OBJEXT) \ @@ -10785,7 +10791,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@am_kernel_exec_OBJECTS = kern/mips/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ term/kernel_exec-ns8250.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ bus/kernel_exec-bonito.$(OBJEXT) \ @@ -10838,7 +10845,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@am_kernel_exec_OBJECTS = kern/mips/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/mips/arc/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ term/arc/kernel_exec-console.$(OBJEXT) \ @@ -10871,7 +10879,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@am_kernel_exec_OBJECTS = kern/ia64/efi/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/ia64/efi/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/ia64/kernel_exec-dl.$(OBJEXT) \ @@ -10906,7 +10915,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@am_kernel_exec_OBJECTS = kern/i386/xen/kernel_exec-startup_pvh.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/i386/kernel_exec-dl.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ commands/kernel_exec-boot.$(OBJEXT) \ @@ -10940,7 +10950,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@am_kernel_exec_OBJECTS = kern/i386/xen/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/i386/kernel_exec-dl.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/i386/xen/kernel_exec-hypercall.$(OBJEXT) \ @@ -10974,7 +10985,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@am_kernel_exec_OBJECTS = kern/i386/qemu/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/i386/qemu/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ bus/kernel_exec-pci.$(OBJEXT) \ @@ -11004,7 +11016,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@am_kernel_exec_OBJECTS = kern/i386/pc/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/i386/pc/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/i386/pc/kernel_exec-mmap.$(OBJEXT) \ @@ -11032,7 +11045,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@am_kernel_exec_OBJECTS = kern/i386/coreboot/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/i386/coreboot/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/i386/pc/kernel_exec-acpi.$(OBJEXT) \ @@ -11062,7 +11076,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@am_kernel_exec_OBJECTS = kern/i386/ieee1275/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ disk/ieee1275/kernel_exec-ofdisk.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/ieee1275/kernel_exec-cmain.$(OBJEXT) \ @@ -11098,7 +11113,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@am_kernel_exec_OBJECTS = kern/i386/efi/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/i386/efi/kernel_exec-tsc.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/i386/kernel_exec-tsc_pmtimer.$(OBJEXT) \ @@ -11135,7 +11151,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@am_kernel_exec_OBJECTS = kern/i386/coreboot/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/i386/coreboot/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/i386/pc/kernel_exec-acpi.$(OBJEXT) \ @@ -11178,7 +11195,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@am_kernel_exec_OBJECTS = disk/kernel_exec-host.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ kern/emu/kernel_exec-cache_s.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ kern/emu/kernel_exec-hostdisk.$(OBJEXT) \ @@ -11219,7 +11237,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@am_kernel_exec_OBJECTS = kern/arm/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/arm/uboot/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/arm/uboot/kernel_exec-uboot.$(OBJEXT) \ @@ -11259,7 +11278,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@am_kernel_exec_OBJECTS = kern/arm/efi/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/arm/efi/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/efi/kernel_exec-fdt.$(OBJEXT) \ @@ -11298,7 +11318,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@am_kernel_exec_OBJECTS = kern/arm/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/arm/coreboot/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/arm/coreboot/kernel_exec-timer.$(OBJEXT) \ @@ -11352,7 +11373,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_TRUE@am_kernel_exec_OBJECTS = kern/arm64/efi/kernel_exec-startup.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/arm64/efi/kernel_exec-init.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/efi/kernel_exec-fdt.$(OBJEXT) \ @@ -11388,7 +11410,8 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_TRUE@ kern/kernel_exec-partition.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-rescue_parser.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-rescue_reader.$(OBJEXT) \ -@COND_arm64_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) +@COND_arm64_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT) \ +@COND_arm64_efi_TRUE@ kern/kernel_exec-verifiers.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@nodist_kernel_exec_OBJECTS = kernel_exec-symlist.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@nodist_kernel_exec_OBJECTS = kernel_exec-symlist.$(OBJEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@nodist_kernel_exec_OBJECTS = kernel_exec-symlist.$(OBJEXT) @@ -13146,13 +13169,6 @@ vbe_module_OBJECTS = $(am_vbe_module_OBJECTS) \ $(nodist_vbe_module_OBJECTS) vbe_module_LINK = $(CCLD) $(vbe_module_CFLAGS) $(CFLAGS) \ $(vbe_module_LDFLAGS) $(LDFLAGS) -o $@ -am_verifiers_module_OBJECTS = \ - commands/verifiers_module-verifiers.$(OBJEXT) -nodist_verifiers_module_OBJECTS = -verifiers_module_OBJECTS = $(am_verifiers_module_OBJECTS) \ - $(nodist_verifiers_module_OBJECTS) -verifiers_module_LINK = $(CCLD) $(verifiers_module_CFLAGS) $(CFLAGS) \ - $(verifiers_module_LDFLAGS) $(LDFLAGS) -o $@ am__vga_module_SOURCES_DIST = video/i386/pc/vga.c @COND_i386_pc_TRUE@am_vga_module_OBJECTS = \ @COND_i386_pc_TRUE@ video/i386/pc/vga_module-vga.$(OBJEXT) @@ -13879,7 +13895,6 @@ SOURCES = $(acpi_module_SOURCES) $(nodist_acpi_module_SOURCES) \ $(nodist_usbserial_usbdebug_module_SOURCES) \ $(usbtest_module_SOURCES) $(nodist_usbtest_module_SOURCES) \ $(vbe_module_SOURCES) $(nodist_vbe_module_SOURCES) \ - $(verifiers_module_SOURCES) $(nodist_verifiers_module_SOURCES) \ $(vga_module_SOURCES) $(nodist_vga_module_SOURCES) \ $(vga_text_module_SOURCES) $(nodist_vga_text_module_SOURCES) \ $(video_module_SOURCES) $(nodist_video_module_SOURCES) \ @@ -14089,8 +14104,7 @@ DIST_SOURCES = $(am__acpi_module_SOURCES_DIST) \ $(am__usbserial_pl2303_module_SOURCES_DIST) \ $(am__usbserial_usbdebug_module_SOURCES_DIST) \ $(am__usbtest_module_SOURCES_DIST) \ - $(am__vbe_module_SOURCES_DIST) $(verifiers_module_SOURCES) \ - $(am__vga_module_SOURCES_DIST) \ + $(am__vbe_module_SOURCES_DIST) $(am__vga_module_SOURCES_DIST) \ $(am__vga_text_module_SOURCES_DIST) \ $(am__video_module_SOURCES_DIST) \ $(am__video_bochs_module_SOURCES_DIST) \ @@ -15497,38 +15511,38 @@ MOD_FILES = disk.mod trig.mod $(am__append_8) $(am__append_15) \ $(am__append_1989) $(am__append_1996) $(am__append_2003) \ $(am__append_2010) $(am__append_2017) $(am__append_2024) \ $(am__append_2031) $(am__append_2038) hashsum.mod pgp.mod \ - verifiers.mod $(am__append_2045) $(am__append_2052) \ - $(am__append_2059) $(am__append_2066) $(am__append_2073) \ - $(am__append_2080) $(am__append_2087) $(am__append_2094) \ - $(am__append_2101) $(am__append_2108) help.mod hexdump.mod \ - keystatus.mod $(am__append_2115) $(am__append_2122) \ - loadenv.mod ls.mod lsmmap.mod $(am__append_2129) \ - $(am__append_2136) $(am__append_2143) $(am__append_2150) \ - $(am__append_2157) $(am__append_2164) $(am__append_2171) \ - $(am__append_2178) memrw.mod minicmd.mod parttool.mod \ - password.mod password_pbkdf2.mod $(am__append_2185) \ - $(am__append_2192) $(am__append_2199) $(am__append_2206) \ - $(am__append_2213) $(am__append_2220) $(am__append_2227) \ - $(am__append_2234) $(am__append_2241) $(am__append_2248) \ - $(am__append_2255) $(am__append_2262) $(am__append_2269) \ - $(am__append_2276) $(am__append_2283) $(am__append_2290) \ - $(am__append_2297) $(am__append_2304) $(am__append_2311) \ - $(am__append_2318) $(am__append_2325) probe.mod read.mod \ - search.mod search_fs_file.mod search_fs_uuid.mod \ - search_label.mod $(am__append_2332) $(am__append_2339) \ - $(am__append_2346) $(am__append_2353) $(am__append_2360) \ - $(am__append_2367) $(am__append_2374) $(am__append_2381) \ - $(am__append_2388) $(am__append_2395) $(am__append_2402) \ - $(am__append_2409) $(am__append_2416) $(am__append_2423) \ - $(am__append_2430) $(am__append_2437) sleep.mod \ - $(am__append_2444) $(am__append_2451) terminal.mod test.mod \ - true.mod $(am__append_2458) $(am__append_2465) \ - $(am__append_2472) $(am__append_2479) $(am__append_2486) \ - $(am__append_2493) $(am__append_2500) $(am__append_2507) \ - $(am__append_2514) videoinfo.mod videotest.mod xnu_uuid.mod \ - dm_nv.mod loopback.mod cryptodisk.mod luks.mod geli.mod \ - lvm.mod ldm.mod mdraid09.mod mdraid09_be.mod mdraid1x.mod \ - diskfilter.mod raid5rec.mod raid6rec.mod scsi.mod memdisk.mod \ + $(am__append_2045) $(am__append_2052) $(am__append_2059) \ + $(am__append_2066) $(am__append_2073) $(am__append_2080) \ + $(am__append_2087) $(am__append_2094) $(am__append_2101) \ + $(am__append_2108) help.mod hexdump.mod keystatus.mod \ + $(am__append_2115) $(am__append_2122) loadenv.mod ls.mod \ + lsmmap.mod $(am__append_2129) $(am__append_2136) \ + $(am__append_2143) $(am__append_2150) $(am__append_2157) \ + $(am__append_2164) $(am__append_2171) $(am__append_2178) \ + memrw.mod minicmd.mod parttool.mod password.mod \ + password_pbkdf2.mod $(am__append_2185) $(am__append_2192) \ + $(am__append_2199) $(am__append_2206) $(am__append_2213) \ + $(am__append_2220) $(am__append_2227) $(am__append_2234) \ + $(am__append_2241) $(am__append_2248) $(am__append_2255) \ + $(am__append_2262) $(am__append_2269) $(am__append_2276) \ + $(am__append_2283) $(am__append_2290) $(am__append_2297) \ + $(am__append_2304) $(am__append_2311) $(am__append_2318) \ + $(am__append_2325) probe.mod read.mod search.mod \ + search_fs_file.mod search_fs_uuid.mod search_label.mod \ + $(am__append_2332) $(am__append_2339) $(am__append_2346) \ + $(am__append_2353) $(am__append_2360) $(am__append_2367) \ + $(am__append_2374) $(am__append_2381) $(am__append_2388) \ + $(am__append_2395) $(am__append_2402) $(am__append_2409) \ + $(am__append_2416) $(am__append_2423) $(am__append_2430) \ + $(am__append_2437) sleep.mod $(am__append_2444) \ + $(am__append_2451) terminal.mod test.mod true.mod \ + $(am__append_2458) $(am__append_2465) $(am__append_2472) \ + $(am__append_2479) $(am__append_2486) $(am__append_2493) \ + $(am__append_2500) $(am__append_2507) $(am__append_2514) \ + videoinfo.mod videotest.mod xnu_uuid.mod dm_nv.mod \ + loopback.mod cryptodisk.mod luks.mod geli.mod lvm.mod ldm.mod \ + mdraid09.mod mdraid09_be.mod mdraid1x.mod diskfilter.mod \ + raid5rec.mod raid6rec.mod scsi.mod memdisk.mod \ $(am__append_2521) $(am__append_2528) $(am__append_2535) \ $(am__append_2542) $(am__append_2549) $(am__append_2556) \ $(am__append_2563) $(am__append_2570) $(am__append_2577) \ @@ -15809,8 +15823,7 @@ MODULE_FILES = disk.module$(EXEEXT) trig.module$(EXEEXT) \ $(am__append_1978) $(am__append_1985) $(am__append_1992) \ $(am__append_1999) $(am__append_2006) $(am__append_2013) \ $(am__append_2020) $(am__append_2027) $(am__append_2034) \ - hashsum.module$(EXEEXT) pgp.module$(EXEEXT) \ - verifiers.module$(EXEEXT) $(am__append_2041) \ + hashsum.module$(EXEEXT) pgp.module$(EXEEXT) $(am__append_2041) \ $(am__append_2048) $(am__append_2055) $(am__append_2062) \ $(am__append_2069) $(am__append_2076) $(am__append_2083) \ $(am__append_2090) $(am__append_2097) $(am__append_2104) \ @@ -16164,7 +16177,7 @@ MARKER_FILES = disk.marker trig.marker $(am__append_9) \ $(am__append_1983) $(am__append_1990) $(am__append_1997) \ $(am__append_2004) $(am__append_2011) $(am__append_2018) \ $(am__append_2025) $(am__append_2032) $(am__append_2039) \ - hashsum.marker pgp.marker verifiers.marker $(am__append_2046) \ + hashsum.marker pgp.marker $(am__append_2046) \ $(am__append_2053) $(am__append_2060) $(am__append_2067) \ $(am__append_2074) $(am__append_2081) $(am__append_2088) \ $(am__append_2095) $(am__append_2102) $(am__append_2109) \ @@ -16403,6 +16416,7 @@ KERNEL_HEADER_FILES = $(top_srcdir)/include/grub/cache.h \ $(top_srcdir)/include/grub/partition.h \ $(top_srcdir)/include/grub/term.h \ $(top_srcdir)/include/grub/time.h \ + $(top_srcdir)/include/grub/verify.h \ $(top_srcdir)/include/grub/mm_private.h \ $(top_srcdir)/include/grub/net.h \ $(top_srcdir)/include/grub/memory.h $(am__append_5803) \ @@ -16845,12 +16859,11 @@ CLEANFILES = build-grub-pep2elf$(BUILD_EXEEXT) \ $(am__append_2009) $(am__append_2016) $(am__append_2023) \ $(am__append_2030) $(am__append_2037) \ $(nodist_hashsum_module_SOURCES) hashsum.marker \ - $(nodist_pgp_module_SOURCES) pgp.marker \ - $(nodist_verifiers_module_SOURCES) verifiers.marker \ - $(am__append_2044) $(am__append_2051) $(am__append_2058) \ - $(am__append_2065) $(am__append_2072) $(am__append_2079) \ - $(am__append_2086) $(am__append_2093) $(am__append_2100) \ - $(am__append_2107) $(nodist_help_module_SOURCES) help.marker \ + $(nodist_pgp_module_SOURCES) pgp.marker $(am__append_2044) \ + $(am__append_2051) $(am__append_2058) $(am__append_2065) \ + $(am__append_2072) $(am__append_2079) $(am__append_2086) \ + $(am__append_2093) $(am__append_2100) $(am__append_2107) \ + $(nodist_help_module_SOURCES) help.marker \ $(nodist_hexdump_module_SOURCES) hexdump.marker \ $(nodist_keystatus_module_SOURCES) keystatus.marker \ $(am__append_2114) $(am__append_2121) \ @@ -17313,11 +17326,11 @@ BUILT_SOURCES = $(nodist_disk_module_SOURCES) \ $(am__append_2001) $(am__append_2008) $(am__append_2015) \ $(am__append_2022) $(am__append_2029) $(am__append_2036) \ $(nodist_hashsum_module_SOURCES) $(nodist_pgp_module_SOURCES) \ - $(nodist_verifiers_module_SOURCES) $(am__append_2043) \ - $(am__append_2050) $(am__append_2057) $(am__append_2064) \ - $(am__append_2071) $(am__append_2078) $(am__append_2085) \ - $(am__append_2092) $(am__append_2099) $(am__append_2106) \ - $(nodist_help_module_SOURCES) $(nodist_hexdump_module_SOURCES) \ + $(am__append_2043) $(am__append_2050) $(am__append_2057) \ + $(am__append_2064) $(am__append_2071) $(am__append_2078) \ + $(am__append_2085) $(am__append_2092) $(am__append_2099) \ + $(am__append_2106) $(nodist_help_module_SOURCES) \ + $(nodist_hexdump_module_SOURCES) \ $(nodist_keystatus_module_SOURCES) $(am__append_2113) \ $(am__append_2120) $(nodist_loadenv_module_SOURCES) \ $(nodist_ls_module_SOURCES) $(nodist_lsmmap_module_SOURCES) \ @@ -20070,14 +20083,6 @@ pgp_module_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_MODULE) pgp_module_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_MODULE) -I$(srcdir)/lib/posix_wrap pgp_module_CCASFLAGS = $(AM_CCASFLAGS) $(CCASFLAGS_MODULE) pgp_module_DEPENDENCIES = $(TARGET_OBJ2ELF) -verifiers_module_SOURCES = commands/verifiers.c ## platform sources -nodist_verifiers_module_SOURCES = ## platform nodist sources -verifiers_module_LDADD = -verifiers_module_CFLAGS = $(AM_CFLAGS) $(CFLAGS_MODULE) -verifiers_module_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_MODULE) -verifiers_module_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_MODULE) -verifiers_module_CCASFLAGS = $(AM_CCASFLAGS) $(CCASFLAGS_MODULE) -verifiers_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_x86_64_efi_TRUE@shim_lock_module_SOURCES = commands/efi/shim_lock.c ## platform sources @COND_x86_64_efi_TRUE@nodist_shim_lock_module_SOURCES = ## platform nodist sources @COND_x86_64_efi_TRUE@shim_lock_module_LDADD = @@ -25629,7 +25634,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_arm64_efi_TRUE@ kern/file.c kern/fs.c kern/list.c \ @COND_arm64_efi_TRUE@ kern/main.c kern/misc.c kern/parser.c \ @COND_arm64_efi_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_arm64_efi_TRUE@ kern/rescue_reader.c kern/term.c +@COND_arm64_efi_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_arm64_efi_TRUE@ kern/verifiers.c @COND_arm_coreboot_TRUE@kernel_exec_SOURCES = kern/arm/startup.S \ @COND_arm_coreboot_TRUE@ kern/arm/coreboot/init.c \ @COND_arm_coreboot_TRUE@ kern/arm/coreboot/timer.c \ @@ -25660,7 +25666,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_arm_coreboot_TRUE@ kern/fs.c kern/list.c kern/main.c \ @COND_arm_coreboot_TRUE@ kern/misc.c kern/parser.c \ @COND_arm_coreboot_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_arm_coreboot_TRUE@ kern/rescue_reader.c kern/term.c +@COND_arm_coreboot_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_arm_coreboot_TRUE@ kern/verifiers.c @COND_arm_efi_TRUE@kernel_exec_SOURCES = kern/arm/efi/startup.S \ @COND_arm_efi_TRUE@ kern/arm/efi/init.c kern/efi/fdt.c \ @COND_arm_efi_TRUE@ kern/arm/dl.c kern/arm/dl_helper.c \ @@ -25678,7 +25685,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_arm_efi_TRUE@ kern/fs.c kern/list.c kern/main.c \ @COND_arm_efi_TRUE@ kern/misc.c kern/parser.c kern/partition.c \ @COND_arm_efi_TRUE@ kern/rescue_parser.c kern/rescue_reader.c \ -@COND_arm_efi_TRUE@ kern/term.c +@COND_arm_efi_TRUE@ kern/term.c kern/verifiers.c @COND_arm_uboot_TRUE@kernel_exec_SOURCES = kern/arm/startup.S \ @COND_arm_uboot_TRUE@ kern/arm/uboot/init.c \ @COND_arm_uboot_TRUE@ kern/arm/uboot/uboot.S \ @@ -25698,7 +25705,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_arm_uboot_TRUE@ kern/file.c kern/fs.c kern/list.c \ @COND_arm_uboot_TRUE@ kern/main.c kern/misc.c kern/parser.c \ @COND_arm_uboot_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_arm_uboot_TRUE@ kern/rescue_reader.c kern/term.c +@COND_arm_uboot_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_arm_uboot_TRUE@ kern/verifiers.c @COND_emu_TRUE@kernel_exec_SOURCES = disk/host.c kern/emu/cache_s.S \ @COND_emu_TRUE@ kern/emu/hostdisk.c osdep/unix/hostdisk.c \ @COND_emu_TRUE@ osdep/exec.c osdep/devmapper/hostdisk.c \ @@ -25714,7 +25722,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_emu_TRUE@ kern/fs.c kern/list.c kern/main.c kern/misc.c \ @COND_emu_TRUE@ kern/parser.c kern/partition.c \ @COND_emu_TRUE@ kern/rescue_parser.c kern/rescue_reader.c \ -@COND_emu_TRUE@ kern/term.c +@COND_emu_TRUE@ kern/term.c kern/verifiers.c @COND_i386_coreboot_TRUE@kernel_exec_SOURCES = \ @COND_i386_coreboot_TRUE@ kern/i386/coreboot/startup.S \ @COND_i386_coreboot_TRUE@ kern/i386/coreboot/init.c \ @@ -25739,7 +25747,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_coreboot_TRUE@ kern/fs.c kern/list.c kern/main.c \ @COND_i386_coreboot_TRUE@ kern/misc.c kern/parser.c \ @COND_i386_coreboot_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_i386_coreboot_TRUE@ kern/rescue_reader.c kern/term.c +@COND_i386_coreboot_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_i386_coreboot_TRUE@ kern/verifiers.c @COND_i386_efi_TRUE@kernel_exec_SOURCES = kern/i386/efi/startup.S \ @COND_i386_efi_TRUE@ kern/i386/efi/tsc.c \ @COND_i386_efi_TRUE@ kern/i386/tsc_pmtimer.c \ @@ -25756,7 +25765,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_efi_TRUE@ kern/file.c kern/fs.c kern/list.c \ @COND_i386_efi_TRUE@ kern/main.c kern/misc.c kern/parser.c \ @COND_i386_efi_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_i386_efi_TRUE@ kern/rescue_reader.c kern/term.c +@COND_i386_efi_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_i386_efi_TRUE@ kern/verifiers.c @COND_i386_ieee1275_TRUE@kernel_exec_SOURCES = \ @COND_i386_ieee1275_TRUE@ kern/i386/ieee1275/startup.S \ @COND_i386_ieee1275_TRUE@ disk/ieee1275/ofdisk.c \ @@ -25777,7 +25787,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_ieee1275_TRUE@ kern/fs.c kern/list.c kern/main.c \ @COND_i386_ieee1275_TRUE@ kern/misc.c kern/parser.c \ @COND_i386_ieee1275_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_i386_ieee1275_TRUE@ kern/rescue_reader.c kern/term.c +@COND_i386_ieee1275_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_i386_ieee1275_TRUE@ kern/verifiers.c @COND_i386_multiboot_TRUE@kernel_exec_SOURCES = \ @COND_i386_multiboot_TRUE@ kern/i386/coreboot/startup.S \ @COND_i386_multiboot_TRUE@ kern/i386/coreboot/init.c \ @@ -25796,7 +25807,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_multiboot_TRUE@ kern/misc.c kern/parser.c \ @COND_i386_multiboot_TRUE@ kern/partition.c \ @COND_i386_multiboot_TRUE@ kern/rescue_parser.c \ -@COND_i386_multiboot_TRUE@ kern/rescue_reader.c kern/term.c +@COND_i386_multiboot_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_i386_multiboot_TRUE@ kern/verifiers.c @COND_i386_pc_TRUE@kernel_exec_SOURCES = kern/i386/pc/startup.S \ @COND_i386_pc_TRUE@ kern/i386/pc/init.c kern/i386/pc/mmap.c \ @COND_i386_pc_TRUE@ term/i386/pc/console.c kern/i386/dl.c \ @@ -25808,7 +25820,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_pc_TRUE@ kern/fs.c kern/list.c kern/main.c \ @COND_i386_pc_TRUE@ kern/misc.c kern/parser.c kern/partition.c \ @COND_i386_pc_TRUE@ kern/rescue_parser.c kern/rescue_reader.c \ -@COND_i386_pc_TRUE@ kern/term.c +@COND_i386_pc_TRUE@ kern/term.c kern/verifiers.c @COND_i386_qemu_TRUE@kernel_exec_SOURCES = kern/i386/qemu/startup.S \ @COND_i386_qemu_TRUE@ kern/i386/qemu/init.c bus/pci.c \ @COND_i386_qemu_TRUE@ kern/vga_init.c kern/i386/qemu/mmap.c \ @@ -25821,7 +25833,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_qemu_TRUE@ kern/file.c kern/fs.c kern/list.c \ @COND_i386_qemu_TRUE@ kern/main.c kern/misc.c kern/parser.c \ @COND_i386_qemu_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_i386_qemu_TRUE@ kern/rescue_reader.c kern/term.c +@COND_i386_qemu_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_i386_qemu_TRUE@ kern/verifiers.c @COND_i386_xen_TRUE@kernel_exec_SOURCES = kern/i386/xen/startup.S \ @COND_i386_xen_TRUE@ kern/i386/dl.c kern/i386/xen/hypercall.S \ @COND_i386_xen_TRUE@ kern/i386/tsc.c kern/i386/xen/tsc.c \ @@ -25836,7 +25849,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_xen_TRUE@ kern/file.c kern/fs.c kern/list.c \ @COND_i386_xen_TRUE@ kern/main.c kern/misc.c kern/parser.c \ @COND_i386_xen_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_i386_xen_TRUE@ kern/rescue_reader.c kern/term.c +@COND_i386_xen_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_i386_xen_TRUE@ kern/verifiers.c @COND_i386_xen_pvh_TRUE@kernel_exec_SOURCES = \ @COND_i386_xen_pvh_TRUE@ kern/i386/xen/startup_pvh.S \ @COND_i386_xen_pvh_TRUE@ kern/i386/dl.c commands/boot.c \ @@ -25853,7 +25867,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_xen_pvh_TRUE@ kern/fs.c kern/list.c kern/main.c \ @COND_i386_xen_pvh_TRUE@ kern/misc.c kern/parser.c \ @COND_i386_xen_pvh_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_i386_xen_pvh_TRUE@ kern/rescue_reader.c kern/term.c +@COND_i386_xen_pvh_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_i386_xen_pvh_TRUE@ kern/verifiers.c @COND_ia64_efi_TRUE@kernel_exec_SOURCES = kern/ia64/efi/startup.S \ @COND_ia64_efi_TRUE@ kern/ia64/efi/init.c kern/ia64/dl.c \ @COND_ia64_efi_TRUE@ kern/ia64/dl_helper.c kern/ia64/cache.c \ @@ -25868,7 +25883,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_ia64_efi_TRUE@ kern/file.c kern/fs.c kern/list.c \ @COND_ia64_efi_TRUE@ kern/main.c kern/misc.c kern/parser.c \ @COND_ia64_efi_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_ia64_efi_TRUE@ kern/rescue_reader.c kern/term.c +@COND_ia64_efi_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_ia64_efi_TRUE@ kern/verifiers.c @COND_mips_arc_TRUE@kernel_exec_SOURCES = kern/mips/startup.S \ @COND_mips_arc_TRUE@ kern/mips/arc/init.c term/arc/console.c \ @COND_mips_arc_TRUE@ disk/arc/arcdisk.c \ @@ -25883,7 +25899,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_mips_arc_TRUE@ kern/file.c kern/fs.c kern/list.c \ @COND_mips_arc_TRUE@ kern/main.c kern/misc.c kern/parser.c \ @COND_mips_arc_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_mips_arc_TRUE@ kern/rescue_reader.c kern/term.c +@COND_mips_arc_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_mips_arc_TRUE@ kern/verifiers.c @COND_mips_loongson_TRUE@kernel_exec_SOURCES = kern/mips/startup.S \ @COND_mips_loongson_TRUE@ term/ns8250.c bus/bonito.c \ @COND_mips_loongson_TRUE@ bus/cs5536.c bus/pci.c \ @@ -25911,7 +25928,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_mips_loongson_TRUE@ kern/fs.c kern/list.c kern/main.c \ @COND_mips_loongson_TRUE@ kern/misc.c kern/parser.c \ @COND_mips_loongson_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_mips_loongson_TRUE@ kern/rescue_reader.c kern/term.c +@COND_mips_loongson_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_mips_loongson_TRUE@ kern/verifiers.c @COND_mips_qemu_mips_TRUE@kernel_exec_SOURCES = kern/mips/startup.S \ @COND_mips_qemu_mips_TRUE@ kern/mips/qemu_mips/init.c \ @COND_mips_qemu_mips_TRUE@ term/ns8250.c term/serial.c \ @@ -25934,7 +25952,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_mips_qemu_mips_TRUE@ kern/misc.c kern/parser.c \ @COND_mips_qemu_mips_TRUE@ kern/partition.c \ @COND_mips_qemu_mips_TRUE@ kern/rescue_parser.c \ -@COND_mips_qemu_mips_TRUE@ kern/rescue_reader.c kern/term.c +@COND_mips_qemu_mips_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_mips_qemu_mips_TRUE@ kern/verifiers.c @COND_powerpc_ieee1275_TRUE@kernel_exec_SOURCES = \ @COND_powerpc_ieee1275_TRUE@ kern/powerpc/ieee1275/startup.S \ @COND_powerpc_ieee1275_TRUE@ kern/powerpc/cache.S \ @@ -25959,7 +25978,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_powerpc_ieee1275_TRUE@ kern/main.c kern/misc.c \ @COND_powerpc_ieee1275_TRUE@ kern/parser.c kern/partition.c \ @COND_powerpc_ieee1275_TRUE@ kern/rescue_parser.c \ -@COND_powerpc_ieee1275_TRUE@ kern/rescue_reader.c kern/term.c +@COND_powerpc_ieee1275_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_powerpc_ieee1275_TRUE@ kern/verifiers.c @COND_riscv32_efi_TRUE@kernel_exec_SOURCES = kern/riscv/efi/startup.S \ @COND_riscv32_efi_TRUE@ kern/riscv/efi/init.c kern/efi/fdt.c \ @COND_riscv32_efi_TRUE@ kern/riscv/cache.c \ @@ -25977,7 +25997,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_riscv32_efi_TRUE@ kern/fs.c kern/list.c kern/main.c \ @COND_riscv32_efi_TRUE@ kern/misc.c kern/parser.c \ @COND_riscv32_efi_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_riscv32_efi_TRUE@ kern/rescue_reader.c kern/term.c +@COND_riscv32_efi_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_riscv32_efi_TRUE@ kern/verifiers.c @COND_riscv64_efi_TRUE@kernel_exec_SOURCES = kern/riscv/efi/startup.S \ @COND_riscv64_efi_TRUE@ kern/riscv/efi/init.c kern/efi/fdt.c \ @COND_riscv64_efi_TRUE@ kern/riscv/cache.c \ @@ -25995,7 +26016,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_riscv64_efi_TRUE@ kern/fs.c kern/list.c kern/main.c \ @COND_riscv64_efi_TRUE@ kern/misc.c kern/parser.c \ @COND_riscv64_efi_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_riscv64_efi_TRUE@ kern/rescue_reader.c kern/term.c +@COND_riscv64_efi_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_riscv64_efi_TRUE@ kern/verifiers.c @COND_sparc64_ieee1275_TRUE@kernel_exec_SOURCES = \ @COND_sparc64_ieee1275_TRUE@ kern/sparc64/ieee1275/crt0.S \ @COND_sparc64_ieee1275_TRUE@ kern/sparc64/cache.S \ @@ -26021,7 +26043,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_sparc64_ieee1275_TRUE@ kern/main.c kern/misc.c \ @COND_sparc64_ieee1275_TRUE@ kern/parser.c kern/partition.c \ @COND_sparc64_ieee1275_TRUE@ kern/rescue_parser.c \ -@COND_sparc64_ieee1275_TRUE@ kern/rescue_reader.c kern/term.c +@COND_sparc64_ieee1275_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_sparc64_ieee1275_TRUE@ kern/verifiers.c @COND_x86_64_efi_TRUE@kernel_exec_SOURCES = kern/x86_64/efi/startup.S \ @COND_x86_64_efi_TRUE@ kern/i386/efi/tsc.c \ @COND_x86_64_efi_TRUE@ kern/i386/tsc_pmtimer.c \ @@ -26040,7 +26063,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_x86_64_efi_TRUE@ kern/file.c kern/fs.c kern/list.c \ @COND_x86_64_efi_TRUE@ kern/main.c kern/misc.c kern/parser.c \ @COND_x86_64_efi_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_x86_64_efi_TRUE@ kern/rescue_reader.c kern/term.c +@COND_x86_64_efi_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_x86_64_efi_TRUE@ kern/verifiers.c @COND_x86_64_xen_TRUE@kernel_exec_SOURCES = kern/x86_64/xen/startup.S \ @COND_x86_64_xen_TRUE@ kern/x86_64/dl.c \ @COND_x86_64_xen_TRUE@ kern/x86_64/xen/hypercall.S \ @@ -26056,7 +26080,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_x86_64_xen_TRUE@ kern/file.c kern/fs.c kern/list.c \ @COND_x86_64_xen_TRUE@ kern/main.c kern/misc.c kern/parser.c \ @COND_x86_64_xen_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_x86_64_xen_TRUE@ kern/rescue_reader.c kern/term.c +@COND_x86_64_xen_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_x86_64_xen_TRUE@ kern/verifiers.c @COND_arm64_efi_TRUE@nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources @COND_arm_coreboot_TRUE@nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources @COND_arm_efi_TRUE@nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources @@ -28051,6 +28076,8 @@ kern/kernel_exec-rescue_reader.$(OBJEXT): kern/$(am__dirstamp) \ kern/$(DEPDIR)/$(am__dirstamp) kern/kernel_exec-term.$(OBJEXT): kern/$(am__dirstamp) \ kern/$(DEPDIR)/$(am__dirstamp) +kern/kernel_exec-verifiers.$(OBJEXT): kern/$(am__dirstamp) \ + kern/$(DEPDIR)/$(am__dirstamp) kern/arm/$(am__dirstamp): @$(MKDIR_P) kern/arm @: > kern/arm/$(am__dirstamp) @@ -30171,12 +30198,6 @@ video/i386/pc/vbe_module-vbe.$(OBJEXT): video/i386/pc/$(am__dirstamp) \ vbe.module$(EXEEXT): $(vbe_module_OBJECTS) $(vbe_module_DEPENDENCIES) $(EXTRA_vbe_module_DEPENDENCIES) @rm -f vbe.module$(EXEEXT) $(AM_V_CCLD)$(vbe_module_LINK) $(vbe_module_OBJECTS) $(vbe_module_LDADD) $(LIBS) -commands/verifiers_module-verifiers.$(OBJEXT): \ - commands/$(am__dirstamp) commands/$(DEPDIR)/$(am__dirstamp) - -verifiers.module$(EXEEXT): $(verifiers_module_OBJECTS) $(verifiers_module_DEPENDENCIES) $(EXTRA_verifiers_module_DEPENDENCIES) - @rm -f verifiers.module$(EXEEXT) - $(AM_V_CCLD)$(verifiers_module_LINK) $(verifiers_module_OBJECTS) $(verifiers_module_LDADD) $(LIBS) video/i386/pc/vga_module-vga.$(OBJEXT): video/i386/pc/$(am__dirstamp) \ video/i386/pc/$(DEPDIR)/$(am__dirstamp) @@ -30799,7 +30820,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/tr_module-tr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/true_module-true.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/usbtest_module-usbtest.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/verifiers_module-verifiers.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/videoinfo_module-videoinfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/videotest_module-videotest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/xnu_uuid_module-xnu_uuid.Po@am__quote@ @@ -30975,6 +30995,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-rescue_reader.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-term.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-time.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-verifiers.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-vga_init.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/xz_decompress_image-compiler-rt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/arm/$(DEPDIR)/kernel_exec-cache.Po@am__quote@ @@ -35607,6 +35628,20 @@ kern/kernel_exec-term.obj: kern/term.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/kernel_exec-term.obj `if test -f 'kern/term.c'; then $(CYGPATH_W) 'kern/term.c'; else $(CYGPATH_W) '$(srcdir)/kern/term.c'; fi` +kern/kernel_exec-verifiers.o: kern/verifiers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-verifiers.o -MD -MP -MF kern/$(DEPDIR)/kernel_exec-verifiers.Tpo -c -o kern/kernel_exec-verifiers.o `test -f 'kern/verifiers.c' || echo '$(srcdir)/'`kern/verifiers.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-verifiers.Tpo kern/$(DEPDIR)/kernel_exec-verifiers.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kern/verifiers.c' object='kern/kernel_exec-verifiers.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/kernel_exec-verifiers.o `test -f 'kern/verifiers.c' || echo '$(srcdir)/'`kern/verifiers.c + +kern/kernel_exec-verifiers.obj: kern/verifiers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-verifiers.obj -MD -MP -MF kern/$(DEPDIR)/kernel_exec-verifiers.Tpo -c -o kern/kernel_exec-verifiers.obj `if test -f 'kern/verifiers.c'; then $(CYGPATH_W) 'kern/verifiers.c'; else $(CYGPATH_W) '$(srcdir)/kern/verifiers.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-verifiers.Tpo kern/$(DEPDIR)/kernel_exec-verifiers.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kern/verifiers.c' object='kern/kernel_exec-verifiers.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/kernel_exec-verifiers.obj `if test -f 'kern/verifiers.c'; then $(CYGPATH_W) 'kern/verifiers.c'; else $(CYGPATH_W) '$(srcdir)/kern/verifiers.c'; fi` + kern/arm/coreboot/kernel_exec-init.o: kern/arm/coreboot/init.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/arm/coreboot/kernel_exec-init.o -MD -MP -MF kern/arm/coreboot/$(DEPDIR)/kernel_exec-init.Tpo -c -o kern/arm/coreboot/kernel_exec-init.o `test -f 'kern/arm/coreboot/init.c' || echo '$(srcdir)/'`kern/arm/coreboot/init.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/arm/coreboot/$(DEPDIR)/kernel_exec-init.Tpo kern/arm/coreboot/$(DEPDIR)/kernel_exec-init.Po @@ -40983,20 +41018,6 @@ video/i386/pc/vbe_module-vbe.obj: video/i386/pc/vbe.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vbe_module_CPPFLAGS) $(CPPFLAGS) $(vbe_module_CFLAGS) $(CFLAGS) -c -o video/i386/pc/vbe_module-vbe.obj `if test -f 'video/i386/pc/vbe.c'; then $(CYGPATH_W) 'video/i386/pc/vbe.c'; else $(CYGPATH_W) '$(srcdir)/video/i386/pc/vbe.c'; fi` -commands/verifiers_module-verifiers.o: commands/verifiers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(verifiers_module_CPPFLAGS) $(CPPFLAGS) $(verifiers_module_CFLAGS) $(CFLAGS) -MT commands/verifiers_module-verifiers.o -MD -MP -MF commands/$(DEPDIR)/verifiers_module-verifiers.Tpo -c -o commands/verifiers_module-verifiers.o `test -f 'commands/verifiers.c' || echo '$(srcdir)/'`commands/verifiers.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) commands/$(DEPDIR)/verifiers_module-verifiers.Tpo commands/$(DEPDIR)/verifiers_module-verifiers.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='commands/verifiers.c' object='commands/verifiers_module-verifiers.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(verifiers_module_CPPFLAGS) $(CPPFLAGS) $(verifiers_module_CFLAGS) $(CFLAGS) -c -o commands/verifiers_module-verifiers.o `test -f 'commands/verifiers.c' || echo '$(srcdir)/'`commands/verifiers.c - -commands/verifiers_module-verifiers.obj: commands/verifiers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(verifiers_module_CPPFLAGS) $(CPPFLAGS) $(verifiers_module_CFLAGS) $(CFLAGS) -MT commands/verifiers_module-verifiers.obj -MD -MP -MF commands/$(DEPDIR)/verifiers_module-verifiers.Tpo -c -o commands/verifiers_module-verifiers.obj `if test -f 'commands/verifiers.c'; then $(CYGPATH_W) 'commands/verifiers.c'; else $(CYGPATH_W) '$(srcdir)/commands/verifiers.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) commands/$(DEPDIR)/verifiers_module-verifiers.Tpo commands/$(DEPDIR)/verifiers_module-verifiers.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='commands/verifiers.c' object='commands/verifiers_module-verifiers.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(verifiers_module_CPPFLAGS) $(CPPFLAGS) $(verifiers_module_CFLAGS) $(CFLAGS) -c -o commands/verifiers_module-verifiers.obj `if test -f 'commands/verifiers.c'; then $(CYGPATH_W) 'commands/verifiers.c'; else $(CYGPATH_W) '$(srcdir)/commands/verifiers.c'; fi` - video/i386/pc/vga_module-vga.o: video/i386/pc/vga.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vga_module_CPPFLAGS) $(CPPFLAGS) $(vga_module_CFLAGS) $(CFLAGS) -MT video/i386/pc/vga_module-vga.o -MD -MP -MF video/i386/pc/$(DEPDIR)/vga_module-vga.Tpo -c -o video/i386/pc/vga_module-vga.o `test -f 'video/i386/pc/vga.c' || echo '$(srcdir)/'`video/i386/pc/vga.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) video/i386/pc/$(DEPDIR)/vga_module-vga.Tpo video/i386/pc/$(DEPDIR)/vga_module-vga.Po @@ -43717,10 +43738,6 @@ pgp.marker: $(pgp_module_SOURCES) $(nodist_pgp_module_SOURCES) $(TARGET_CPP) -DGRUB_LST_GENERATOR $(CPPFLAGS_MARKER) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pgp_module_CPPFLAGS) $(CPPFLAGS) $^ > $@.new || (rm -f $@; exit 1) grep 'MARKER' $@.new > $@; rm -f $@.new -verifiers.marker: $(verifiers_module_SOURCES) $(nodist_verifiers_module_SOURCES) - $(TARGET_CPP) -DGRUB_LST_GENERATOR $(CPPFLAGS_MARKER) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(verifiers_module_CPPFLAGS) $(CPPFLAGS) $^ > $@.new || (rm -f $@; exit 1) - grep 'MARKER' $@.new > $@; rm -f $@.new - @COND_x86_64_efi_TRUE@shim_lock.marker: $(shim_lock_module_SOURCES) $(nodist_shim_lock_module_SOURCES) @COND_x86_64_efi_TRUE@ $(TARGET_CPP) -DGRUB_LST_GENERATOR $(CPPFLAGS_MARKER) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shim_lock_module_CPPFLAGS) $(CPPFLAGS) $^ > $@.new || (rm -f $@; exit 1) @COND_x86_64_efi_TRUE@ grep 'MARKER' $@.new > $@; rm -f $@.new diff --git a/grub-core/commands/verifiers.c b/grub-core/commands/verifiers.c deleted file mode 100644 index 0dde481..0000000 --- a/grub-core/commands/verifiers.c +++ /dev/null @@ -1,228 +0,0 @@ -/* - * GRUB -- GRand Unified Bootloader - * Copyright (C) 2017 Free Software Foundation, Inc. - * - * GRUB 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. - * - * GRUB 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 GRUB. If not, see . - * - * Verifiers helper. - */ - -#include -#include -#include - -GRUB_MOD_LICENSE ("GPLv3+"); - -struct grub_file_verifier *grub_file_verifiers; - -struct grub_verified -{ - grub_file_t file; - void *buf; -}; -typedef struct grub_verified *grub_verified_t; - -static void -verified_free (grub_verified_t verified) -{ - if (verified) - { - grub_free (verified->buf); - grub_free (verified); - } -} - -static grub_ssize_t -verified_read (struct grub_file *file, char *buf, grub_size_t len) -{ - grub_verified_t verified = file->data; - - grub_memcpy (buf, (char *) verified->buf + file->offset, len); - return len; -} - -static grub_err_t -verified_close (struct grub_file *file) -{ - grub_verified_t verified = file->data; - - grub_file_close (verified->file); - verified_free (verified); - file->data = 0; - - /* Device and name are freed by parent. */ - file->device = 0; - file->name = 0; - - return grub_errno; -} - -struct grub_fs verified_fs = -{ - .name = "verified_read", - .fs_read = verified_read, - .fs_close = verified_close -}; - -static grub_file_t -grub_verifiers_open (grub_file_t io, enum grub_file_type type) -{ - grub_verified_t verified = NULL; - struct grub_file_verifier *ver; - void *context; - grub_file_t ret = 0; - grub_err_t err; - int defer = 0; - - grub_dprintf ("verify", "file: %s type: %d\n", io->name, type); - - if ((type & GRUB_FILE_TYPE_MASK) == GRUB_FILE_TYPE_SIGNATURE - || (type & GRUB_FILE_TYPE_MASK) == GRUB_FILE_TYPE_VERIFY_SIGNATURE - || (type & GRUB_FILE_TYPE_SKIP_SIGNATURE)) - return io; - - if (io->device->disk && - (io->device->disk->dev->id == GRUB_DISK_DEVICE_MEMDISK_ID - || io->device->disk->dev->id == GRUB_DISK_DEVICE_PROCFS_ID)) - return io; - - FOR_LIST_ELEMENTS(ver, grub_file_verifiers) - { - enum grub_verify_flags flags = 0; - err = ver->init (io, type, &context, &flags); - if (err) - goto fail_noclose; - if (flags & GRUB_VERIFY_FLAGS_DEFER_AUTH) - { - defer = 1; - continue; - } - if (!(flags & GRUB_VERIFY_FLAGS_SKIP_VERIFICATION)) - break; - } - - if (!ver) - { - if (defer) - { - grub_error (GRUB_ERR_ACCESS_DENIED, - N_("verification requested but nobody cares: %s"), io->name); - goto fail_noclose; - } - - /* No verifiers wanted to verify. Just return underlying file. */ - return io; - } - - ret = grub_malloc (sizeof (*ret)); - if (!ret) - { - goto fail; - } - *ret = *io; - - ret->fs = &verified_fs; - ret->not_easily_seekable = 0; - if (ret->size >> (sizeof (grub_size_t) * GRUB_CHAR_BIT - 1)) - { - grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, - N_("big file signature isn't implemented yet")); - goto fail; - } - verified = grub_malloc (sizeof (*verified)); - if (!verified) - { - goto fail; - } - verified->buf = grub_malloc (ret->size); - if (!verified->buf) - { - goto fail; - } - if (grub_file_read (io, verified->buf, ret->size) != (grub_ssize_t) ret->size) - { - if (!grub_errno) - grub_error (GRUB_ERR_FILE_READ_ERROR, N_("premature end of file %s"), - io->name); - goto fail; - } - - err = ver->write (context, verified->buf, ret->size); - if (err) - goto fail; - - err = ver->fini ? ver->fini (context) : GRUB_ERR_NONE; - if (err) - goto fail; - - if (ver->close) - ver->close (context); - - FOR_LIST_ELEMENTS_NEXT(ver, grub_file_verifiers) - { - enum grub_verify_flags flags = 0; - err = ver->init (io, type, &context, &flags); - if (err) - goto fail_noclose; - if (flags & GRUB_VERIFY_FLAGS_SKIP_VERIFICATION || - /* Verification done earlier. So, we are happy here. */ - flags & GRUB_VERIFY_FLAGS_DEFER_AUTH) - continue; - err = ver->write (context, verified->buf, ret->size); - if (err) - goto fail; - - err = ver->fini ? ver->fini (context) : GRUB_ERR_NONE; - if (err) - goto fail; - - if (ver->close) - ver->close (context); - } - - verified->file = io; - ret->data = verified; - return ret; - - fail: - ver->close (context); - fail_noclose: - verified_free (verified); - grub_free (ret); - return NULL; -} - -grub_err_t -grub_verify_string (char *str, enum grub_verify_string_type type) -{ - struct grub_file_verifier *ver; - FOR_LIST_ELEMENTS(ver, grub_file_verifiers) - { - grub_err_t err; - err = ver->verify_string ? ver->verify_string (str, type) : GRUB_ERR_NONE; - if (err) - return err; - } - return GRUB_ERR_NONE; -} - -GRUB_MOD_INIT(verifiers) -{ - grub_file_filter_register (GRUB_FILE_FILTER_VERIFY, grub_verifiers_open); -} - -GRUB_MOD_FINI(verifiers) -{ - grub_file_filter_unregister (GRUB_FILE_FILTER_VERIFY); -} diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c index 9cad0c4..73967e2 100644 --- a/grub-core/kern/main.c +++ b/grub-core/kern/main.c @@ -29,6 +29,7 @@ #include #include #include +#include #ifdef GRUB_MACHINE_PCBIOS #include @@ -274,6 +275,9 @@ grub_main (void) grub_printf ("Welcome to GRUB!\n\n"); grub_setcolorstate (GRUB_TERM_COLOR_STANDARD); + /* Init verifiers API. */ + grub_verifiers_init (); + grub_load_config (); grub_boot_time ("Before loading embedded modules."); diff --git a/grub-core/kern/verifiers.c b/grub-core/kern/verifiers.c new file mode 100644 index 0000000..aa3dc7c --- /dev/null +++ b/grub-core/kern/verifiers.c @@ -0,0 +1,224 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2017 Free Software Foundation, Inc. + * + * GRUB 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. + * + * GRUB 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 GRUB. If not, see . + * + * Verifiers helper. + */ + +#include +#include +#include + +GRUB_MOD_LICENSE ("GPLv3+"); + +struct grub_file_verifier *grub_file_verifiers; + +struct grub_verified +{ + grub_file_t file; + void *buf; +}; +typedef struct grub_verified *grub_verified_t; + +static void +verified_free (grub_verified_t verified) +{ + if (verified) + { + grub_free (verified->buf); + grub_free (verified); + } +} + +static grub_ssize_t +verified_read (struct grub_file *file, char *buf, grub_size_t len) +{ + grub_verified_t verified = file->data; + + grub_memcpy (buf, (char *) verified->buf + file->offset, len); + return len; +} + +static grub_err_t +verified_close (struct grub_file *file) +{ + grub_verified_t verified = file->data; + + grub_file_close (verified->file); + verified_free (verified); + file->data = 0; + + /* Device and name are freed by parent. */ + file->device = 0; + file->name = 0; + + return grub_errno; +} + +struct grub_fs verified_fs = +{ + .name = "verified_read", + .fs_read = verified_read, + .fs_close = verified_close +}; + +static grub_file_t +grub_verifiers_open (grub_file_t io, enum grub_file_type type) +{ + grub_verified_t verified = NULL; + struct grub_file_verifier *ver; + void *context; + grub_file_t ret = 0; + grub_err_t err; + int defer = 0; + + grub_dprintf ("verify", "file: %s type: %d\n", io->name, type); + + if ((type & GRUB_FILE_TYPE_MASK) == GRUB_FILE_TYPE_SIGNATURE + || (type & GRUB_FILE_TYPE_MASK) == GRUB_FILE_TYPE_VERIFY_SIGNATURE + || (type & GRUB_FILE_TYPE_SKIP_SIGNATURE)) + return io; + + if (io->device->disk && + (io->device->disk->dev->id == GRUB_DISK_DEVICE_MEMDISK_ID + || io->device->disk->dev->id == GRUB_DISK_DEVICE_PROCFS_ID)) + return io; + + FOR_LIST_ELEMENTS(ver, grub_file_verifiers) + { + enum grub_verify_flags flags = 0; + err = ver->init (io, type, &context, &flags); + if (err) + goto fail_noclose; + if (flags & GRUB_VERIFY_FLAGS_DEFER_AUTH) + { + defer = 1; + continue; + } + if (!(flags & GRUB_VERIFY_FLAGS_SKIP_VERIFICATION)) + break; + } + + if (!ver) + { + if (defer) + { + grub_error (GRUB_ERR_ACCESS_DENIED, + N_("verification requested but nobody cares: %s"), io->name); + goto fail_noclose; + } + + /* No verifiers wanted to verify. Just return underlying file. */ + return io; + } + + ret = grub_malloc (sizeof (*ret)); + if (!ret) + { + goto fail; + } + *ret = *io; + + ret->fs = &verified_fs; + ret->not_easily_seekable = 0; + if (ret->size >> (sizeof (grub_size_t) * GRUB_CHAR_BIT - 1)) + { + grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, + N_("big file signature isn't implemented yet")); + goto fail; + } + verified = grub_malloc (sizeof (*verified)); + if (!verified) + { + goto fail; + } + verified->buf = grub_malloc (ret->size); + if (!verified->buf) + { + goto fail; + } + if (grub_file_read (io, verified->buf, ret->size) != (grub_ssize_t) ret->size) + { + if (!grub_errno) + grub_error (GRUB_ERR_FILE_READ_ERROR, N_("premature end of file %s"), + io->name); + goto fail; + } + + err = ver->write (context, verified->buf, ret->size); + if (err) + goto fail; + + err = ver->fini ? ver->fini (context) : GRUB_ERR_NONE; + if (err) + goto fail; + + if (ver->close) + ver->close (context); + + FOR_LIST_ELEMENTS_NEXT(ver, grub_file_verifiers) + { + enum grub_verify_flags flags = 0; + err = ver->init (io, type, &context, &flags); + if (err) + goto fail_noclose; + if (flags & GRUB_VERIFY_FLAGS_SKIP_VERIFICATION || + /* Verification done earlier. So, we are happy here. */ + flags & GRUB_VERIFY_FLAGS_DEFER_AUTH) + continue; + err = ver->write (context, verified->buf, ret->size); + if (err) + goto fail; + + err = ver->fini ? ver->fini (context) : GRUB_ERR_NONE; + if (err) + goto fail; + + if (ver->close) + ver->close (context); + } + + verified->file = io; + ret->data = verified; + return ret; + + fail: + ver->close (context); + fail_noclose: + verified_free (verified); + grub_free (ret); + return NULL; +} + +grub_err_t +grub_verify_string (char *str, enum grub_verify_string_type type) +{ + struct grub_file_verifier *ver; + FOR_LIST_ELEMENTS(ver, grub_file_verifiers) + { + grub_err_t err; + err = ver->verify_string ? ver->verify_string (str, type) : GRUB_ERR_NONE; + if (err) + return err; + } + return GRUB_ERR_NONE; +} + +void +grub_verifiers_init (void) +{ + grub_file_filter_register (GRUB_FILE_FILTER_VERIFY, grub_verifiers_open); +} diff --git a/include/grub/verify.h b/include/grub/verify.h index ea04914..cd129c3 100644 --- a/include/grub/verify.h +++ b/include/grub/verify.h @@ -64,7 +64,10 @@ struct grub_file_verifier grub_err_t (*verify_string) (char *str, enum grub_verify_string_type type); }; -extern struct grub_file_verifier *grub_file_verifiers; +extern struct grub_file_verifier *EXPORT_VAR (grub_file_verifiers); + +extern void +grub_verifiers_init (void); static inline void grub_verifier_register (struct grub_file_verifier *ver) @@ -78,7 +81,7 @@ grub_verifier_unregister (struct grub_file_verifier *ver) grub_list_remove (GRUB_AS_LIST (ver)); } -grub_err_t -grub_verify_string (char *str, enum grub_verify_string_type type); +extern grub_err_t +EXPORT_FUNC (grub_verify_string) (char *str, enum grub_verify_string_type type); #endif /* ! GRUB_VERIFY_HEADER */ diff --git a/po/POTFILES.in b/po/POTFILES.in index 22543be..11c799f 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -107,7 +107,6 @@ ./grub-core/commands/tr.c ./grub-core/commands/true.c ./grub-core/commands/usbtest.c -./grub-core/commands/verifiers.c ./grub-core/commands/videoinfo.c ./grub-core/commands/videotest.c ./grub-core/commands/wildcard.c @@ -334,6 +333,7 @@ ./grub-core/kern/uboot/hw.c ./grub-core/kern/uboot/init.c ./grub-core/kern/uboot/uboot.c +./grub-core/kern/verifiers.c ./grub-core/kern/vga_init.c ./grub-core/kern/x86_64/dl.c ./grub-core/kern/xen/init.c -- 2.14.2 ================================================ FILE: boot/grub2/0034-efi-Move-the-shim_lock-verifier-to-the-GRUB-core.patch ================================================ From 5e280caa6530ed160dcf2920c94f1605fb1f1f7c Mon Sep 17 00:00:00 2001 From: Marco A Benatto Date: Wed, 23 Sep 2020 14:21:14 -0400 Subject: [PATCH] efi: Move the shim_lock verifier to the GRUB core Move the shim_lock verifier from its own module into the core image. The Secure Boot lockdown mechanism has the intent to prevent the load of any unsigned code or binary when Secure Boot is enabled. The reason is that GRUB must be able to prevent executing untrusted code if UEFI Secure Boot is enabled, without depending on external modules. Signed-off-by: Marco A Benatto Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper [Add changes to generated files] Signed-off-by: Stefan Sørensen --- docs/grub.texi | 9 +- grub-core/Makefile.core.am | 23 - grub-core/Makefile.core.def | 6 - grub-core/Makefile.in | 11139 +++++++++++++++++------------------ grub-core/commands/efi/shim_lock.c | 130 - grub-core/kern/efi/init.c | 4 + grub-core/kern/efi/sb.c | 105 + include/grub/efi/sb.h | 3 + po/POTFILES.in | 1 - 9 files changed, 5657 insertions(+), 5763 deletions(-) delete mode 100644 grub-core/commands/efi/shim_lock.c diff --git a/docs/grub.texi b/docs/grub.texi index 8779507..aefe032 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -5747,15 +5747,16 @@ secure boot chain. @section UEFI secure boot and shim support The GRUB, except the @command{chainloader} command, works with the UEFI secure -boot and the shim. This functionality is provided by the shim_lock module. It -is recommend to build in this and other required modules into the @file{core.img}. +boot and the shim. This functionality is provided by the shim_lock verifier. It +is built into the @file{core.img} and is registered if the UEFI secure boot is +enabled. + All modules not stored in the @file{core.img} and the ACPI tables for the @command{acpi} command have to be signed, e.g. using PGP. Additionally, the @command{iorw}, the @command{memrw} and the @command{wrmsr} commands are prohibited if the UEFI secure boot is enabled. This is done due to security reasons. All above mentioned requirements are enforced by the -shim_lock module. And itself it is a persistent module which means that -it cannot be unloaded if it was loaded into the memory. +shim_lock verifier logic. @node Measured Boot @section Measuring boot components diff --git a/grub-core/Makefile.core.am b/grub-core/Makefile.core.am index c4d67d4..5623a5e 100644 --- a/grub-core/Makefile.core.am +++ b/grub-core/Makefile.core.am @@ -6954,29 +6954,6 @@ pgp.marker: $(pgp_module_SOURCES) $(nodist_pgp_module_SOURCES) $(TARGET_CPP) -DGRUB_LST_GENERATOR $(CPPFLAGS_MARKER) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pgp_module_CPPFLAGS) $(CPPFLAGS) $^ > $@.new || (rm -f $@; exit 1) grep 'MARKER' $@.new > $@; rm -f $@.new -if COND_x86_64_efi -platform_PROGRAMS += shim_lock.module -MODULE_FILES += shim_lock.module$(EXEEXT) -shim_lock_module_SOURCES = commands/efi/shim_lock.c ## platform sources -nodist_shim_lock_module_SOURCES = ## platform nodist sources -shim_lock_module_LDADD = -shim_lock_module_CFLAGS = $(AM_CFLAGS) $(CFLAGS_MODULE) -shim_lock_module_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_MODULE) -shim_lock_module_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_MODULE) -shim_lock_module_CCASFLAGS = $(AM_CCASFLAGS) $(CCASFLAGS_MODULE) -shim_lock_module_DEPENDENCIES = $(TARGET_OBJ2ELF) -dist_noinst_DATA += -BUILT_SOURCES += $(nodist_shim_lock_module_SOURCES) -CLEANFILES += $(nodist_shim_lock_module_SOURCES) -MOD_FILES += shim_lock.mod -MARKER_FILES += shim_lock.marker -CLEANFILES += shim_lock.marker - -shim_lock.marker: $(shim_lock_module_SOURCES) $(nodist_shim_lock_module_SOURCES) - $(TARGET_CPP) -DGRUB_LST_GENERATOR $(CPPFLAGS_MARKER) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shim_lock_module_CPPFLAGS) $(CPPFLAGS) $^ > $@.new || (rm -f $@; exit 1) - grep 'MARKER' $@.new > $@; rm -f $@.new -endif - if COND_i386_pc platform_PROGRAMS += hdparm.module MODULE_FILES += hdparm.module$(EXEEXT) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def index f6c0348..4d380ed 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -944,12 +944,6 @@ module = { cppflags = '-I$(srcdir)/lib/posix_wrap'; }; -module = { - name = shim_lock; - common = commands/efi/shim_lock.c; - enable = x86_64_efi; -}; - module = { name = hdparm; common = commands/hdparm.c; diff --git a/grub-core/Makefile.in b/grub-core/Makefile.in index 8930714..09dc802 100644 --- a/grub-core/Makefile.in +++ b/grub-core/Makefile.in @@ -205,36 +205,36 @@ platform_PROGRAMS = disk.module$(EXEEXT) trig.module$(EXEEXT) \ $(am__EXEEXT_293) $(am__EXEEXT_294) $(am__EXEEXT_295) \ $(am__EXEEXT_296) $(am__EXEEXT_297) $(am__EXEEXT_298) \ $(am__EXEEXT_299) $(am__EXEEXT_300) $(am__EXEEXT_301) \ - $(am__EXEEXT_302) help.module$(EXEEXT) hexdump.module$(EXEEXT) \ - keystatus.module$(EXEEXT) $(am__EXEEXT_303) $(am__EXEEXT_304) \ + help.module$(EXEEXT) hexdump.module$(EXEEXT) \ + keystatus.module$(EXEEXT) $(am__EXEEXT_302) $(am__EXEEXT_303) \ loadenv.module$(EXEEXT) ls.module$(EXEEXT) \ - lsmmap.module$(EXEEXT) $(am__EXEEXT_305) $(am__EXEEXT_306) \ - $(am__EXEEXT_307) $(am__EXEEXT_308) $(am__EXEEXT_309) \ - $(am__EXEEXT_310) $(am__EXEEXT_311) $(am__EXEEXT_312) \ + lsmmap.module$(EXEEXT) $(am__EXEEXT_304) $(am__EXEEXT_305) \ + $(am__EXEEXT_306) $(am__EXEEXT_307) $(am__EXEEXT_308) \ + $(am__EXEEXT_309) $(am__EXEEXT_310) $(am__EXEEXT_311) \ memrw.module$(EXEEXT) minicmd.module$(EXEEXT) \ parttool.module$(EXEEXT) password.module$(EXEEXT) \ - password_pbkdf2.module$(EXEEXT) $(am__EXEEXT_313) \ - $(am__EXEEXT_314) $(am__EXEEXT_315) $(am__EXEEXT_316) \ - $(am__EXEEXT_317) $(am__EXEEXT_318) $(am__EXEEXT_319) \ - $(am__EXEEXT_320) $(am__EXEEXT_321) $(am__EXEEXT_322) \ - $(am__EXEEXT_323) $(am__EXEEXT_324) $(am__EXEEXT_325) \ - $(am__EXEEXT_326) $(am__EXEEXT_327) $(am__EXEEXT_328) \ - $(am__EXEEXT_329) $(am__EXEEXT_330) $(am__EXEEXT_331) \ - $(am__EXEEXT_332) $(am__EXEEXT_333) probe.module$(EXEEXT) \ + password_pbkdf2.module$(EXEEXT) $(am__EXEEXT_312) \ + $(am__EXEEXT_313) $(am__EXEEXT_314) $(am__EXEEXT_315) \ + $(am__EXEEXT_316) $(am__EXEEXT_317) $(am__EXEEXT_318) \ + $(am__EXEEXT_319) $(am__EXEEXT_320) $(am__EXEEXT_321) \ + $(am__EXEEXT_322) $(am__EXEEXT_323) $(am__EXEEXT_324) \ + $(am__EXEEXT_325) $(am__EXEEXT_326) $(am__EXEEXT_327) \ + $(am__EXEEXT_328) $(am__EXEEXT_329) $(am__EXEEXT_330) \ + $(am__EXEEXT_331) $(am__EXEEXT_332) probe.module$(EXEEXT) \ read.module$(EXEEXT) search.module$(EXEEXT) \ search_fs_file.module$(EXEEXT) search_fs_uuid.module$(EXEEXT) \ - search_label.module$(EXEEXT) $(am__EXEEXT_334) \ - $(am__EXEEXT_335) $(am__EXEEXT_336) $(am__EXEEXT_337) \ - $(am__EXEEXT_338) $(am__EXEEXT_339) $(am__EXEEXT_340) \ - $(am__EXEEXT_341) $(am__EXEEXT_342) $(am__EXEEXT_343) \ - $(am__EXEEXT_344) $(am__EXEEXT_345) $(am__EXEEXT_346) \ - $(am__EXEEXT_347) $(am__EXEEXT_348) $(am__EXEEXT_349) \ - sleep.module$(EXEEXT) $(am__EXEEXT_350) $(am__EXEEXT_351) \ + search_label.module$(EXEEXT) $(am__EXEEXT_333) \ + $(am__EXEEXT_334) $(am__EXEEXT_335) $(am__EXEEXT_336) \ + $(am__EXEEXT_337) $(am__EXEEXT_338) $(am__EXEEXT_339) \ + $(am__EXEEXT_340) $(am__EXEEXT_341) $(am__EXEEXT_342) \ + $(am__EXEEXT_343) $(am__EXEEXT_344) $(am__EXEEXT_345) \ + $(am__EXEEXT_346) $(am__EXEEXT_347) $(am__EXEEXT_348) \ + sleep.module$(EXEEXT) $(am__EXEEXT_349) $(am__EXEEXT_350) \ terminal.module$(EXEEXT) test.module$(EXEEXT) \ - true.module$(EXEEXT) $(am__EXEEXT_352) $(am__EXEEXT_353) \ - $(am__EXEEXT_354) $(am__EXEEXT_355) $(am__EXEEXT_356) \ - $(am__EXEEXT_357) $(am__EXEEXT_358) $(am__EXEEXT_359) \ - $(am__EXEEXT_360) videoinfo.module$(EXEEXT) \ + true.module$(EXEEXT) $(am__EXEEXT_351) $(am__EXEEXT_352) \ + $(am__EXEEXT_353) $(am__EXEEXT_354) $(am__EXEEXT_355) \ + $(am__EXEEXT_356) $(am__EXEEXT_357) $(am__EXEEXT_358) \ + $(am__EXEEXT_359) videoinfo.module$(EXEEXT) \ videotest.module$(EXEEXT) xnu_uuid.module$(EXEEXT) \ dm_nv.module$(EXEEXT) loopback.module$(EXEEXT) \ cryptodisk.module$(EXEEXT) luks.module$(EXEEXT) \ @@ -242,27 +242,27 @@ platform_PROGRAMS = disk.module$(EXEEXT) trig.module$(EXEEXT) \ mdraid09.module$(EXEEXT) mdraid09_be.module$(EXEEXT) \ mdraid1x.module$(EXEEXT) diskfilter.module$(EXEEXT) \ raid5rec.module$(EXEEXT) raid6rec.module$(EXEEXT) \ - scsi.module$(EXEEXT) memdisk.module$(EXEEXT) $(am__EXEEXT_361) \ - $(am__EXEEXT_362) $(am__EXEEXT_363) $(am__EXEEXT_364) \ - $(am__EXEEXT_365) $(am__EXEEXT_366) $(am__EXEEXT_367) \ - $(am__EXEEXT_368) $(am__EXEEXT_369) $(am__EXEEXT_370) \ - $(am__EXEEXT_371) $(am__EXEEXT_372) $(am__EXEEXT_373) \ - $(am__EXEEXT_374) $(am__EXEEXT_375) $(am__EXEEXT_376) \ - $(am__EXEEXT_377) $(am__EXEEXT_378) $(am__EXEEXT_379) \ - $(am__EXEEXT_380) $(am__EXEEXT_381) $(am__EXEEXT_382) \ - $(am__EXEEXT_383) $(am__EXEEXT_384) $(am__EXEEXT_385) \ - $(am__EXEEXT_386) $(am__EXEEXT_387) $(am__EXEEXT_388) \ - $(am__EXEEXT_389) $(am__EXEEXT_390) $(am__EXEEXT_391) \ - $(am__EXEEXT_392) $(am__EXEEXT_393) $(am__EXEEXT_394) \ - $(am__EXEEXT_395) $(am__EXEEXT_396) $(am__EXEEXT_397) \ - $(am__EXEEXT_398) $(am__EXEEXT_399) $(am__EXEEXT_400) \ - $(am__EXEEXT_401) $(am__EXEEXT_402) $(am__EXEEXT_403) \ - $(am__EXEEXT_404) $(am__EXEEXT_405) $(am__EXEEXT_406) \ - $(am__EXEEXT_407) $(am__EXEEXT_408) $(am__EXEEXT_409) \ - $(am__EXEEXT_410) $(am__EXEEXT_411) $(am__EXEEXT_412) \ - $(am__EXEEXT_413) $(am__EXEEXT_414) $(am__EXEEXT_415) \ - $(am__EXEEXT_416) $(am__EXEEXT_417) $(am__EXEEXT_418) \ - $(am__EXEEXT_419) $(am__EXEEXT_420) $(am__EXEEXT_421) \ + scsi.module$(EXEEXT) memdisk.module$(EXEEXT) $(am__EXEEXT_360) \ + $(am__EXEEXT_361) $(am__EXEEXT_362) $(am__EXEEXT_363) \ + $(am__EXEEXT_364) $(am__EXEEXT_365) $(am__EXEEXT_366) \ + $(am__EXEEXT_367) $(am__EXEEXT_368) $(am__EXEEXT_369) \ + $(am__EXEEXT_370) $(am__EXEEXT_371) $(am__EXEEXT_372) \ + $(am__EXEEXT_373) $(am__EXEEXT_374) $(am__EXEEXT_375) \ + $(am__EXEEXT_376) $(am__EXEEXT_377) $(am__EXEEXT_378) \ + $(am__EXEEXT_379) $(am__EXEEXT_380) $(am__EXEEXT_381) \ + $(am__EXEEXT_382) $(am__EXEEXT_383) $(am__EXEEXT_384) \ + $(am__EXEEXT_385) $(am__EXEEXT_386) $(am__EXEEXT_387) \ + $(am__EXEEXT_388) $(am__EXEEXT_389) $(am__EXEEXT_390) \ + $(am__EXEEXT_391) $(am__EXEEXT_392) $(am__EXEEXT_393) \ + $(am__EXEEXT_394) $(am__EXEEXT_395) $(am__EXEEXT_396) \ + $(am__EXEEXT_397) $(am__EXEEXT_398) $(am__EXEEXT_399) \ + $(am__EXEEXT_400) $(am__EXEEXT_401) $(am__EXEEXT_402) \ + $(am__EXEEXT_403) $(am__EXEEXT_404) $(am__EXEEXT_405) \ + $(am__EXEEXT_406) $(am__EXEEXT_407) $(am__EXEEXT_408) \ + $(am__EXEEXT_409) $(am__EXEEXT_410) $(am__EXEEXT_411) \ + $(am__EXEEXT_412) $(am__EXEEXT_413) $(am__EXEEXT_414) \ + $(am__EXEEXT_415) $(am__EXEEXT_416) $(am__EXEEXT_417) \ + $(am__EXEEXT_418) $(am__EXEEXT_419) $(am__EXEEXT_420) \ procfs.module$(EXEEXT) affs.module$(EXEEXT) \ afs.module$(EXEEXT) bfs.module$(EXEEXT) zstd.module$(EXEEXT) \ btrfs.module$(EXEEXT) archelp.module$(EXEEXT) \ @@ -284,165 +284,165 @@ platform_PROGRAMS = disk.module$(EXEEXT) trig.module$(EXEEXT) \ ufs1_be.module$(EXEEXT) ufs2.module$(EXEEXT) \ xfs.module$(EXEEXT) zfs.module$(EXEEXT) \ zfscrypt.module$(EXEEXT) zfsinfo.module$(EXEEXT) \ - macbless.module$(EXEEXT) $(am__EXEEXT_422) \ + macbless.module$(EXEEXT) $(am__EXEEXT_421) \ gettext.module$(EXEEXT) gfxmenu.module$(EXEEXT) \ hello.module$(EXEEXT) gzio.module$(EXEEXT) \ - offsetio.module$(EXEEXT) $(am__EXEEXT_423) $(am__EXEEXT_424) \ - $(am__EXEEXT_425) $(am__EXEEXT_426) $(am__EXEEXT_427) \ - $(am__EXEEXT_428) $(am__EXEEXT_429) $(am__EXEEXT_430) \ - $(am__EXEEXT_431) $(am__EXEEXT_432) $(am__EXEEXT_433) \ - $(am__EXEEXT_434) $(am__EXEEXT_435) $(am__EXEEXT_436) \ - $(am__EXEEXT_437) $(am__EXEEXT_438) $(am__EXEEXT_439) \ - $(am__EXEEXT_440) $(am__EXEEXT_441) $(am__EXEEXT_442) \ + offsetio.module$(EXEEXT) $(am__EXEEXT_422) $(am__EXEEXT_423) \ + $(am__EXEEXT_424) $(am__EXEEXT_425) $(am__EXEEXT_426) \ + $(am__EXEEXT_427) $(am__EXEEXT_428) $(am__EXEEXT_429) \ + $(am__EXEEXT_430) $(am__EXEEXT_431) $(am__EXEEXT_432) \ + $(am__EXEEXT_433) $(am__EXEEXT_434) $(am__EXEEXT_435) \ + $(am__EXEEXT_436) $(am__EXEEXT_437) $(am__EXEEXT_438) \ + $(am__EXEEXT_439) $(am__EXEEXT_440) $(am__EXEEXT_441) \ elf.module$(EXEEXT) crypto.module$(EXEEXT) \ - pbkdf2.module$(EXEEXT) $(am__EXEEXT_443) $(am__EXEEXT_444) \ - $(am__EXEEXT_445) $(am__EXEEXT_446) $(am__EXEEXT_447) \ - $(am__EXEEXT_448) $(am__EXEEXT_449) $(am__EXEEXT_450) \ - $(am__EXEEXT_451) $(am__EXEEXT_452) $(am__EXEEXT_453) \ - $(am__EXEEXT_454) $(am__EXEEXT_455) $(am__EXEEXT_456) \ - $(am__EXEEXT_457) $(am__EXEEXT_458) $(am__EXEEXT_459) \ - $(am__EXEEXT_460) $(am__EXEEXT_461) $(am__EXEEXT_462) \ - $(am__EXEEXT_463) $(am__EXEEXT_464) $(am__EXEEXT_465) \ - $(am__EXEEXT_466) $(am__EXEEXT_467) $(am__EXEEXT_468) \ - $(am__EXEEXT_469) $(am__EXEEXT_470) $(am__EXEEXT_471) \ - $(am__EXEEXT_472) $(am__EXEEXT_473) $(am__EXEEXT_474) \ - $(am__EXEEXT_475) $(am__EXEEXT_476) $(am__EXEEXT_477) \ - $(am__EXEEXT_478) setjmp.module$(EXEEXT) $(am__EXEEXT_479) \ - $(am__EXEEXT_480) $(am__EXEEXT_481) $(am__EXEEXT_482) \ - $(am__EXEEXT_483) $(am__EXEEXT_484) $(am__EXEEXT_485) \ - $(am__EXEEXT_486) $(am__EXEEXT_487) $(am__EXEEXT_488) \ - $(am__EXEEXT_489) $(am__EXEEXT_490) $(am__EXEEXT_491) \ - $(am__EXEEXT_492) $(am__EXEEXT_493) $(am__EXEEXT_494) \ - $(am__EXEEXT_495) $(am__EXEEXT_496) $(am__EXEEXT_497) \ - $(am__EXEEXT_498) $(am__EXEEXT_499) $(am__EXEEXT_500) \ - $(am__EXEEXT_501) $(am__EXEEXT_502) $(am__EXEEXT_503) \ - $(am__EXEEXT_504) $(am__EXEEXT_505) $(am__EXEEXT_506) \ - $(am__EXEEXT_507) $(am__EXEEXT_508) $(am__EXEEXT_509) \ - $(am__EXEEXT_510) $(am__EXEEXT_511) $(am__EXEEXT_512) \ - $(am__EXEEXT_513) $(am__EXEEXT_514) $(am__EXEEXT_515) \ - $(am__EXEEXT_516) $(am__EXEEXT_517) $(am__EXEEXT_518) \ - $(am__EXEEXT_519) $(am__EXEEXT_520) $(am__EXEEXT_521) \ - $(am__EXEEXT_522) $(am__EXEEXT_523) $(am__EXEEXT_524) \ - $(am__EXEEXT_525) $(am__EXEEXT_526) $(am__EXEEXT_527) \ - $(am__EXEEXT_528) $(am__EXEEXT_529) $(am__EXEEXT_530) \ - $(am__EXEEXT_531) $(am__EXEEXT_532) $(am__EXEEXT_533) \ - $(am__EXEEXT_534) $(am__EXEEXT_535) $(am__EXEEXT_536) \ - $(am__EXEEXT_537) $(am__EXEEXT_538) $(am__EXEEXT_539) \ - $(am__EXEEXT_540) $(am__EXEEXT_541) $(am__EXEEXT_542) \ - $(am__EXEEXT_543) $(am__EXEEXT_544) $(am__EXEEXT_545) \ - $(am__EXEEXT_546) $(am__EXEEXT_547) $(am__EXEEXT_548) \ - $(am__EXEEXT_549) $(am__EXEEXT_550) $(am__EXEEXT_551) \ - $(am__EXEEXT_552) $(am__EXEEXT_553) $(am__EXEEXT_554) \ - $(am__EXEEXT_555) $(am__EXEEXT_556) macho.module$(EXEEXT) \ - $(am__EXEEXT_557) $(am__EXEEXT_558) $(am__EXEEXT_559) \ - $(am__EXEEXT_560) $(am__EXEEXT_561) $(am__EXEEXT_562) \ - $(am__EXEEXT_563) $(am__EXEEXT_564) $(am__EXEEXT_565) \ - $(am__EXEEXT_566) $(am__EXEEXT_567) $(am__EXEEXT_568) \ - $(am__EXEEXT_569) $(am__EXEEXT_570) $(am__EXEEXT_571) \ - $(am__EXEEXT_572) $(am__EXEEXT_573) $(am__EXEEXT_574) \ - $(am__EXEEXT_575) $(am__EXEEXT_576) $(am__EXEEXT_577) \ - $(am__EXEEXT_578) $(am__EXEEXT_579) $(am__EXEEXT_580) \ - $(am__EXEEXT_581) $(am__EXEEXT_582) $(am__EXEEXT_583) \ + pbkdf2.module$(EXEEXT) $(am__EXEEXT_442) $(am__EXEEXT_443) \ + $(am__EXEEXT_444) $(am__EXEEXT_445) $(am__EXEEXT_446) \ + $(am__EXEEXT_447) $(am__EXEEXT_448) $(am__EXEEXT_449) \ + $(am__EXEEXT_450) $(am__EXEEXT_451) $(am__EXEEXT_452) \ + $(am__EXEEXT_453) $(am__EXEEXT_454) $(am__EXEEXT_455) \ + $(am__EXEEXT_456) $(am__EXEEXT_457) $(am__EXEEXT_458) \ + $(am__EXEEXT_459) $(am__EXEEXT_460) $(am__EXEEXT_461) \ + $(am__EXEEXT_462) $(am__EXEEXT_463) $(am__EXEEXT_464) \ + $(am__EXEEXT_465) $(am__EXEEXT_466) $(am__EXEEXT_467) \ + $(am__EXEEXT_468) $(am__EXEEXT_469) $(am__EXEEXT_470) \ + $(am__EXEEXT_471) $(am__EXEEXT_472) $(am__EXEEXT_473) \ + $(am__EXEEXT_474) $(am__EXEEXT_475) $(am__EXEEXT_476) \ + $(am__EXEEXT_477) setjmp.module$(EXEEXT) $(am__EXEEXT_478) \ + $(am__EXEEXT_479) $(am__EXEEXT_480) $(am__EXEEXT_481) \ + $(am__EXEEXT_482) $(am__EXEEXT_483) $(am__EXEEXT_484) \ + $(am__EXEEXT_485) $(am__EXEEXT_486) $(am__EXEEXT_487) \ + $(am__EXEEXT_488) $(am__EXEEXT_489) $(am__EXEEXT_490) \ + $(am__EXEEXT_491) $(am__EXEEXT_492) $(am__EXEEXT_493) \ + $(am__EXEEXT_494) $(am__EXEEXT_495) $(am__EXEEXT_496) \ + $(am__EXEEXT_497) $(am__EXEEXT_498) $(am__EXEEXT_499) \ + $(am__EXEEXT_500) $(am__EXEEXT_501) $(am__EXEEXT_502) \ + $(am__EXEEXT_503) $(am__EXEEXT_504) $(am__EXEEXT_505) \ + $(am__EXEEXT_506) $(am__EXEEXT_507) $(am__EXEEXT_508) \ + $(am__EXEEXT_509) $(am__EXEEXT_510) $(am__EXEEXT_511) \ + $(am__EXEEXT_512) $(am__EXEEXT_513) $(am__EXEEXT_514) \ + $(am__EXEEXT_515) $(am__EXEEXT_516) $(am__EXEEXT_517) \ + $(am__EXEEXT_518) $(am__EXEEXT_519) $(am__EXEEXT_520) \ + $(am__EXEEXT_521) $(am__EXEEXT_522) $(am__EXEEXT_523) \ + $(am__EXEEXT_524) $(am__EXEEXT_525) $(am__EXEEXT_526) \ + $(am__EXEEXT_527) $(am__EXEEXT_528) $(am__EXEEXT_529) \ + $(am__EXEEXT_530) $(am__EXEEXT_531) $(am__EXEEXT_532) \ + $(am__EXEEXT_533) $(am__EXEEXT_534) $(am__EXEEXT_535) \ + $(am__EXEEXT_536) $(am__EXEEXT_537) $(am__EXEEXT_538) \ + $(am__EXEEXT_539) $(am__EXEEXT_540) $(am__EXEEXT_541) \ + $(am__EXEEXT_542) $(am__EXEEXT_543) $(am__EXEEXT_544) \ + $(am__EXEEXT_545) $(am__EXEEXT_546) $(am__EXEEXT_547) \ + $(am__EXEEXT_548) $(am__EXEEXT_549) $(am__EXEEXT_550) \ + $(am__EXEEXT_551) $(am__EXEEXT_552) $(am__EXEEXT_553) \ + $(am__EXEEXT_554) $(am__EXEEXT_555) macho.module$(EXEEXT) \ + $(am__EXEEXT_556) $(am__EXEEXT_557) $(am__EXEEXT_558) \ + $(am__EXEEXT_559) $(am__EXEEXT_560) $(am__EXEEXT_561) \ + $(am__EXEEXT_562) $(am__EXEEXT_563) $(am__EXEEXT_564) \ + $(am__EXEEXT_565) $(am__EXEEXT_566) $(am__EXEEXT_567) \ + $(am__EXEEXT_568) $(am__EXEEXT_569) $(am__EXEEXT_570) \ + $(am__EXEEXT_571) $(am__EXEEXT_572) $(am__EXEEXT_573) \ + $(am__EXEEXT_574) $(am__EXEEXT_575) $(am__EXEEXT_576) \ + $(am__EXEEXT_577) $(am__EXEEXT_578) $(am__EXEEXT_579) \ + $(am__EXEEXT_580) $(am__EXEEXT_581) $(am__EXEEXT_582) \ normal.module$(EXEEXT) part_acorn.module$(EXEEXT) \ part_amiga.module$(EXEEXT) part_apple.module$(EXEEXT) \ part_gpt.module$(EXEEXT) part_msdos.module$(EXEEXT) \ part_sun.module$(EXEEXT) part_plan.module$(EXEEXT) \ part_dvh.module$(EXEEXT) part_bsd.module$(EXEEXT) \ part_sunpc.module$(EXEEXT) part_dfly.module$(EXEEXT) \ - msdospart.module$(EXEEXT) $(am__EXEEXT_584) $(am__EXEEXT_585) \ - $(am__EXEEXT_586) $(am__EXEEXT_587) $(am__EXEEXT_588) \ - $(am__EXEEXT_589) $(am__EXEEXT_590) $(am__EXEEXT_591) \ - $(am__EXEEXT_592) $(am__EXEEXT_593) $(am__EXEEXT_594) \ - $(am__EXEEXT_595) $(am__EXEEXT_596) $(am__EXEEXT_597) \ - $(am__EXEEXT_598) $(am__EXEEXT_599) $(am__EXEEXT_600) \ - $(am__EXEEXT_601) $(am__EXEEXT_602) $(am__EXEEXT_603) \ - $(am__EXEEXT_604) $(am__EXEEXT_605) $(am__EXEEXT_606) \ - $(am__EXEEXT_607) $(am__EXEEXT_608) $(am__EXEEXT_609) \ - $(am__EXEEXT_610) gfxterm_background.module$(EXEEXT) \ - $(am__EXEEXT_611) $(am__EXEEXT_612) $(am__EXEEXT_613) \ - $(am__EXEEXT_614) $(am__EXEEXT_615) $(am__EXEEXT_616) \ - $(am__EXEEXT_617) $(am__EXEEXT_618) $(am__EXEEXT_619) \ - $(am__EXEEXT_620) $(am__EXEEXT_621) $(am__EXEEXT_622) \ - $(am__EXEEXT_623) $(am__EXEEXT_624) $(am__EXEEXT_625) \ - $(am__EXEEXT_626) $(am__EXEEXT_627) $(am__EXEEXT_628) \ - $(am__EXEEXT_629) $(am__EXEEXT_630) $(am__EXEEXT_631) \ - $(am__EXEEXT_632) $(am__EXEEXT_633) $(am__EXEEXT_634) \ - $(am__EXEEXT_635) $(am__EXEEXT_636) $(am__EXEEXT_637) \ - $(am__EXEEXT_638) $(am__EXEEXT_639) $(am__EXEEXT_640) \ - $(am__EXEEXT_641) $(am__EXEEXT_642) $(am__EXEEXT_643) \ - $(am__EXEEXT_644) $(am__EXEEXT_645) $(am__EXEEXT_646) \ - $(am__EXEEXT_647) $(am__EXEEXT_648) $(am__EXEEXT_649) \ - $(am__EXEEXT_650) $(am__EXEEXT_651) $(am__EXEEXT_652) \ - $(am__EXEEXT_653) $(am__EXEEXT_654) $(am__EXEEXT_655) \ - $(am__EXEEXT_656) $(am__EXEEXT_657) $(am__EXEEXT_658) \ - $(am__EXEEXT_659) $(am__EXEEXT_660) $(am__EXEEXT_661) \ - $(am__EXEEXT_662) $(am__EXEEXT_663) $(am__EXEEXT_664) \ - $(am__EXEEXT_665) functional_test.module$(EXEEXT) \ + msdospart.module$(EXEEXT) $(am__EXEEXT_583) $(am__EXEEXT_584) \ + $(am__EXEEXT_585) $(am__EXEEXT_586) $(am__EXEEXT_587) \ + $(am__EXEEXT_588) $(am__EXEEXT_589) $(am__EXEEXT_590) \ + $(am__EXEEXT_591) $(am__EXEEXT_592) $(am__EXEEXT_593) \ + $(am__EXEEXT_594) $(am__EXEEXT_595) $(am__EXEEXT_596) \ + $(am__EXEEXT_597) $(am__EXEEXT_598) $(am__EXEEXT_599) \ + $(am__EXEEXT_600) $(am__EXEEXT_601) $(am__EXEEXT_602) \ + $(am__EXEEXT_603) $(am__EXEEXT_604) $(am__EXEEXT_605) \ + $(am__EXEEXT_606) $(am__EXEEXT_607) $(am__EXEEXT_608) \ + $(am__EXEEXT_609) gfxterm_background.module$(EXEEXT) \ + $(am__EXEEXT_610) $(am__EXEEXT_611) $(am__EXEEXT_612) \ + $(am__EXEEXT_613) $(am__EXEEXT_614) $(am__EXEEXT_615) \ + $(am__EXEEXT_616) $(am__EXEEXT_617) $(am__EXEEXT_618) \ + $(am__EXEEXT_619) $(am__EXEEXT_620) $(am__EXEEXT_621) \ + $(am__EXEEXT_622) $(am__EXEEXT_623) $(am__EXEEXT_624) \ + $(am__EXEEXT_625) $(am__EXEEXT_626) $(am__EXEEXT_627) \ + $(am__EXEEXT_628) $(am__EXEEXT_629) $(am__EXEEXT_630) \ + $(am__EXEEXT_631) $(am__EXEEXT_632) $(am__EXEEXT_633) \ + $(am__EXEEXT_634) $(am__EXEEXT_635) $(am__EXEEXT_636) \ + $(am__EXEEXT_637) $(am__EXEEXT_638) $(am__EXEEXT_639) \ + $(am__EXEEXT_640) $(am__EXEEXT_641) $(am__EXEEXT_642) \ + $(am__EXEEXT_643) $(am__EXEEXT_644) $(am__EXEEXT_645) \ + $(am__EXEEXT_646) $(am__EXEEXT_647) $(am__EXEEXT_648) \ + $(am__EXEEXT_649) $(am__EXEEXT_650) $(am__EXEEXT_651) \ + $(am__EXEEXT_652) $(am__EXEEXT_653) $(am__EXEEXT_654) \ + $(am__EXEEXT_655) $(am__EXEEXT_656) $(am__EXEEXT_657) \ + $(am__EXEEXT_658) $(am__EXEEXT_659) $(am__EXEEXT_660) \ + $(am__EXEEXT_661) $(am__EXEEXT_662) $(am__EXEEXT_663) \ + $(am__EXEEXT_664) functional_test.module$(EXEEXT) \ exfctest.module$(EXEEXT) strtoull_test.module$(EXEEXT) \ setjmp_test.module$(EXEEXT) signature_test.module$(EXEEXT) \ sleep_test.module$(EXEEXT) xnu_uuid_test.module$(EXEEXT) \ - pbkdf2_test.module$(EXEEXT) $(am__EXEEXT_666) \ - $(am__EXEEXT_667) $(am__EXEEXT_668) $(am__EXEEXT_669) \ - $(am__EXEEXT_670) $(am__EXEEXT_671) $(am__EXEEXT_672) \ - $(am__EXEEXT_673) $(am__EXEEXT_674) $(am__EXEEXT_675) \ - $(am__EXEEXT_676) $(am__EXEEXT_677) $(am__EXEEXT_678) \ - $(am__EXEEXT_679) $(am__EXEEXT_680) $(am__EXEEXT_681) \ - $(am__EXEEXT_682) $(am__EXEEXT_683) $(am__EXEEXT_684) \ - $(am__EXEEXT_685) $(am__EXEEXT_686) $(am__EXEEXT_687) \ - $(am__EXEEXT_688) $(am__EXEEXT_689) $(am__EXEEXT_690) \ + pbkdf2_test.module$(EXEEXT) $(am__EXEEXT_665) \ + $(am__EXEEXT_666) $(am__EXEEXT_667) $(am__EXEEXT_668) \ + $(am__EXEEXT_669) $(am__EXEEXT_670) $(am__EXEEXT_671) \ + $(am__EXEEXT_672) $(am__EXEEXT_673) $(am__EXEEXT_674) \ + $(am__EXEEXT_675) $(am__EXEEXT_676) $(am__EXEEXT_677) \ + $(am__EXEEXT_678) $(am__EXEEXT_679) $(am__EXEEXT_680) \ + $(am__EXEEXT_681) $(am__EXEEXT_682) $(am__EXEEXT_683) \ + $(am__EXEEXT_684) $(am__EXEEXT_685) $(am__EXEEXT_686) \ + $(am__EXEEXT_687) $(am__EXEEXT_688) $(am__EXEEXT_689) \ div_test.module$(EXEEXT) mul_test.module$(EXEEXT) \ shift_test.module$(EXEEXT) cmp_test.module$(EXEEXT) \ ctz_test.module$(EXEEXT) bswap_test.module$(EXEEXT) \ videotest_checksum.module$(EXEEXT) \ gfxterm_menu.module$(EXEEXT) cmdline_cat_test.module$(EXEEXT) \ bitmap.module$(EXEEXT) bitmap_scale.module$(EXEEXT) \ - $(am__EXEEXT_691) $(am__EXEEXT_692) $(am__EXEEXT_693) \ - $(am__EXEEXT_694) $(am__EXEEXT_695) $(am__EXEEXT_696) \ - $(am__EXEEXT_697) $(am__EXEEXT_698) $(am__EXEEXT_699) \ + $(am__EXEEXT_690) $(am__EXEEXT_691) $(am__EXEEXT_692) \ + $(am__EXEEXT_693) $(am__EXEEXT_694) $(am__EXEEXT_695) \ + $(am__EXEEXT_696) $(am__EXEEXT_697) $(am__EXEEXT_698) \ jpeg.module$(EXEEXT) png.module$(EXEEXT) tga.module$(EXEEXT) \ - $(am__EXEEXT_700) $(am__EXEEXT_701) $(am__EXEEXT_702) \ - $(am__EXEEXT_703) $(am__EXEEXT_704) $(am__EXEEXT_705) \ - $(am__EXEEXT_706) $(am__EXEEXT_707) $(am__EXEEXT_708) \ - $(am__EXEEXT_709) $(am__EXEEXT_710) $(am__EXEEXT_711) \ - $(am__EXEEXT_712) $(am__EXEEXT_713) $(am__EXEEXT_714) \ - $(am__EXEEXT_715) $(am__EXEEXT_716) $(am__EXEEXT_717) \ - $(am__EXEEXT_718) $(am__EXEEXT_719) $(am__EXEEXT_720) \ - $(am__EXEEXT_721) $(am__EXEEXT_722) $(am__EXEEXT_723) \ - $(am__EXEEXT_724) $(am__EXEEXT_725) $(am__EXEEXT_726) \ - $(am__EXEEXT_727) $(am__EXEEXT_728) $(am__EXEEXT_729) \ - $(am__EXEEXT_730) $(am__EXEEXT_731) $(am__EXEEXT_732) \ - $(am__EXEEXT_733) $(am__EXEEXT_734) $(am__EXEEXT_735) \ - $(am__EXEEXT_736) $(am__EXEEXT_737) $(am__EXEEXT_738) \ - $(am__EXEEXT_739) $(am__EXEEXT_740) \ - video_colors.module$(EXEEXT) $(am__EXEEXT_741) \ - $(am__EXEEXT_742) datehook.module$(EXEEXT) net.module$(EXEEXT) \ - tftp.module$(EXEEXT) http.module$(EXEEXT) $(am__EXEEXT_743) \ - $(am__EXEEXT_744) $(am__EXEEXT_745) $(am__EXEEXT_746) \ - $(am__EXEEXT_747) $(am__EXEEXT_748) $(am__EXEEXT_749) \ - $(am__EXEEXT_750) $(am__EXEEXT_751) $(am__EXEEXT_752) \ - $(am__EXEEXT_753) $(am__EXEEXT_754) $(am__EXEEXT_755) \ - $(am__EXEEXT_756) $(am__EXEEXT_757) $(am__EXEEXT_758) \ - $(am__EXEEXT_759) $(am__EXEEXT_760) \ + $(am__EXEEXT_699) $(am__EXEEXT_700) $(am__EXEEXT_701) \ + $(am__EXEEXT_702) $(am__EXEEXT_703) $(am__EXEEXT_704) \ + $(am__EXEEXT_705) $(am__EXEEXT_706) $(am__EXEEXT_707) \ + $(am__EXEEXT_708) $(am__EXEEXT_709) $(am__EXEEXT_710) \ + $(am__EXEEXT_711) $(am__EXEEXT_712) $(am__EXEEXT_713) \ + $(am__EXEEXT_714) $(am__EXEEXT_715) $(am__EXEEXT_716) \ + $(am__EXEEXT_717) $(am__EXEEXT_718) $(am__EXEEXT_719) \ + $(am__EXEEXT_720) $(am__EXEEXT_721) $(am__EXEEXT_722) \ + $(am__EXEEXT_723) $(am__EXEEXT_724) $(am__EXEEXT_725) \ + $(am__EXEEXT_726) $(am__EXEEXT_727) $(am__EXEEXT_728) \ + $(am__EXEEXT_729) $(am__EXEEXT_730) $(am__EXEEXT_731) \ + $(am__EXEEXT_732) $(am__EXEEXT_733) $(am__EXEEXT_734) \ + $(am__EXEEXT_735) $(am__EXEEXT_736) $(am__EXEEXT_737) \ + $(am__EXEEXT_738) $(am__EXEEXT_739) \ + video_colors.module$(EXEEXT) $(am__EXEEXT_740) \ + $(am__EXEEXT_741) datehook.module$(EXEEXT) net.module$(EXEEXT) \ + tftp.module$(EXEEXT) http.module$(EXEEXT) $(am__EXEEXT_742) \ + $(am__EXEEXT_743) $(am__EXEEXT_744) $(am__EXEEXT_745) \ + $(am__EXEEXT_746) $(am__EXEEXT_747) $(am__EXEEXT_748) \ + $(am__EXEEXT_749) $(am__EXEEXT_750) $(am__EXEEXT_751) \ + $(am__EXEEXT_752) $(am__EXEEXT_753) $(am__EXEEXT_754) \ + $(am__EXEEXT_755) $(am__EXEEXT_756) $(am__EXEEXT_757) \ + $(am__EXEEXT_758) $(am__EXEEXT_759) \ syslinuxcfg.module$(EXEEXT) test_blockarg.module$(EXEEXT) \ xzio.module$(EXEEXT) lzopio.module$(EXEEXT) \ - testload.module$(EXEEXT) $(am__EXEEXT_761) $(am__EXEEXT_762) \ - $(am__EXEEXT_763) $(am__EXEEXT_764) $(am__EXEEXT_765) \ - $(am__EXEEXT_766) $(am__EXEEXT_767) $(am__EXEEXT_768) \ - $(am__EXEEXT_769) $(am__EXEEXT_770) $(am__EXEEXT_771) \ - $(am__EXEEXT_772) $(am__EXEEXT_773) $(am__EXEEXT_774) \ - $(am__EXEEXT_775) $(am__EXEEXT_776) $(am__EXEEXT_777) \ + testload.module$(EXEEXT) $(am__EXEEXT_760) $(am__EXEEXT_761) \ + $(am__EXEEXT_762) $(am__EXEEXT_763) $(am__EXEEXT_764) \ + $(am__EXEEXT_765) $(am__EXEEXT_766) $(am__EXEEXT_767) \ + $(am__EXEEXT_768) $(am__EXEEXT_769) $(am__EXEEXT_770) \ + $(am__EXEEXT_771) $(am__EXEEXT_772) $(am__EXEEXT_773) \ + $(am__EXEEXT_774) $(am__EXEEXT_775) $(am__EXEEXT_776) \ priority_queue.module$(EXEEXT) time.module$(EXEEXT) \ - $(am__EXEEXT_778) $(am__EXEEXT_779) adler32.module$(EXEEXT) \ + $(am__EXEEXT_777) $(am__EXEEXT_778) adler32.module$(EXEEXT) \ crc64.module$(EXEEXT) mpi.module$(EXEEXT) \ - all_video.module$(EXEEXT) $(am__EXEEXT_780) $(am__EXEEXT_781) \ - $(am__EXEEXT_782) $(am__EXEEXT_783) $(am__EXEEXT_784) \ - $(am__EXEEXT_785) testspeed.module$(EXEEXT) $(am__EXEEXT_786) \ + all_video.module$(EXEEXT) $(am__EXEEXT_779) $(am__EXEEXT_780) \ + $(am__EXEEXT_781) $(am__EXEEXT_782) $(am__EXEEXT_783) \ + $(am__EXEEXT_784) testspeed.module$(EXEEXT) $(am__EXEEXT_785) \ tr.module$(EXEEXT) progress.module$(EXEEXT) \ - file.module$(EXEEXT) $(am__EXEEXT_787) $(am__EXEEXT_788) \ - $(am__EXEEXT_789) $(am__EXEEXT_790) $(am__EXEEXT_791) \ - $(am__EXEEXT_792) $(am__EXEEXT_793) $(am__EXEEXT_794) \ - $(am__EXEEXT_795) $(am__EXEEXT_796) $(am__EXEEXT_797) \ - $(am__EXEEXT_798) $(am__EXEEXT_799) $(am__EXEEXT_800) \ + file.module$(EXEEXT) $(am__EXEEXT_786) $(am__EXEEXT_787) \ + $(am__EXEEXT_788) $(am__EXEEXT_789) $(am__EXEEXT_790) \ + $(am__EXEEXT_791) $(am__EXEEXT_792) $(am__EXEEXT_793) \ + $(am__EXEEXT_794) $(am__EXEEXT_795) $(am__EXEEXT_796) \ + $(am__EXEEXT_797) $(am__EXEEXT_798) $(am__EXEEXT_799) \ gcry_arcfour.module$(EXEEXT) gcry_blowfish.module$(EXEEXT) \ gcry_camellia.module$(EXEEXT) gcry_cast5.module$(EXEEXT) \ gcry_crc.module$(EXEEXT) gcry_des.module$(EXEEXT) \ @@ -454,19 +454,19 @@ platform_PROGRAMS = disk.module$(EXEEXT) trig.module$(EXEEXT) \ gcry_sha1.module$(EXEEXT) gcry_sha256.module$(EXEEXT) \ gcry_sha512.module$(EXEEXT) gcry_tiger.module$(EXEEXT) \ gcry_twofish.module$(EXEEXT) gcry_whirlpool.module$(EXEEXT) \ - $(am__EXEEXT_801) $(am__EXEEXT_802) $(am__EXEEXT_803) \ - $(am__EXEEXT_804) $(am__EXEEXT_805) $(am__EXEEXT_806) \ - $(am__EXEEXT_807) $(am__EXEEXT_808) $(am__EXEEXT_809) \ - $(am__EXEEXT_810) $(am__EXEEXT_811) $(am__EXEEXT_812) \ - $(am__EXEEXT_813) $(am__EXEEXT_814) $(am__EXEEXT_815) \ - $(am__EXEEXT_816) $(am__EXEEXT_817) $(am__EXEEXT_818) \ - $(am__EXEEXT_819) $(am__EXEEXT_820) $(am__EXEEXT_821) \ - $(am__EXEEXT_822) $(am__EXEEXT_823) $(am__EXEEXT_824) \ - $(am__EXEEXT_825) $(am__EXEEXT_826) $(am__EXEEXT_827) \ - $(am__EXEEXT_828) $(am__EXEEXT_829) $(am__EXEEXT_830) \ - $(am__EXEEXT_831) $(am__EXEEXT_832) $(am__EXEEXT_833) \ - $(am__EXEEXT_834) $(am__EXEEXT_835) $(am__EXEEXT_836) \ - $(am__EXEEXT_837) $(am__EXEEXT_838) $(am__EXEEXT_839) + $(am__EXEEXT_800) $(am__EXEEXT_801) $(am__EXEEXT_802) \ + $(am__EXEEXT_803) $(am__EXEEXT_804) $(am__EXEEXT_805) \ + $(am__EXEEXT_806) $(am__EXEEXT_807) $(am__EXEEXT_808) \ + $(am__EXEEXT_809) $(am__EXEEXT_810) $(am__EXEEXT_811) \ + $(am__EXEEXT_812) $(am__EXEEXT_813) $(am__EXEEXT_814) \ + $(am__EXEEXT_815) $(am__EXEEXT_816) $(am__EXEEXT_817) \ + $(am__EXEEXT_818) $(am__EXEEXT_819) $(am__EXEEXT_820) \ + $(am__EXEEXT_821) $(am__EXEEXT_822) $(am__EXEEXT_823) \ + $(am__EXEEXT_824) $(am__EXEEXT_825) $(am__EXEEXT_826) \ + $(am__EXEEXT_827) $(am__EXEEXT_828) $(am__EXEEXT_829) \ + $(am__EXEEXT_830) $(am__EXEEXT_831) $(am__EXEEXT_832) \ + $(am__EXEEXT_833) $(am__EXEEXT_834) $(am__EXEEXT_835) \ + $(am__EXEEXT_836) $(am__EXEEXT_837) $(am__EXEEXT_838) TESTS = @COND_i386_pc_TRUE@am__append_3 = cs5536.module @COND_i386_pc_TRUE@am__append_4 = cs5536.module$(EXEEXT) @@ -2996,1864 +2996,1854 @@ TESTS = @COND_riscv64_efi_TRUE@ reboot.marker @COND_riscv64_efi_TRUE@am__append_2038 = reboot.mod @COND_riscv64_efi_TRUE@am__append_2039 = reboot.marker -@COND_x86_64_efi_TRUE@am__append_2040 = shim_lock.module -@COND_x86_64_efi_TRUE@am__append_2041 = shim_lock.module$(EXEEXT) -@COND_x86_64_efi_FALSE@shim_lock_module_DEPENDENCIES = -@COND_x86_64_efi_TRUE@am__append_2042 = -@COND_x86_64_efi_TRUE@am__append_2043 = $(nodist_shim_lock_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2044 = \ -@COND_x86_64_efi_TRUE@ $(nodist_shim_lock_module_SOURCES) \ -@COND_x86_64_efi_TRUE@ shim_lock.marker -@COND_x86_64_efi_TRUE@am__append_2045 = shim_lock.mod -@COND_x86_64_efi_TRUE@am__append_2046 = shim_lock.marker -@COND_i386_pc_TRUE@am__append_2047 = hdparm.module -@COND_i386_pc_TRUE@am__append_2048 = hdparm.module$(EXEEXT) +@COND_i386_pc_TRUE@am__append_2040 = hdparm.module +@COND_i386_pc_TRUE@am__append_2041 = hdparm.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_x86_64_efi_FALSE@hdparm_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2049 = -@COND_i386_pc_TRUE@am__append_2050 = $(nodist_hdparm_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2051 = $(nodist_hdparm_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2042 = +@COND_i386_pc_TRUE@am__append_2043 = $(nodist_hdparm_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2044 = $(nodist_hdparm_module_SOURCES) \ @COND_i386_pc_TRUE@ hdparm.marker -@COND_i386_pc_TRUE@am__append_2052 = hdparm.mod -@COND_i386_pc_TRUE@am__append_2053 = hdparm.marker -@COND_i386_efi_TRUE@am__append_2054 = hdparm.module -@COND_i386_efi_TRUE@am__append_2055 = hdparm.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2056 = -@COND_i386_efi_TRUE@am__append_2057 = $(nodist_hdparm_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2058 = $(nodist_hdparm_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2045 = hdparm.mod +@COND_i386_pc_TRUE@am__append_2046 = hdparm.marker +@COND_i386_efi_TRUE@am__append_2047 = hdparm.module +@COND_i386_efi_TRUE@am__append_2048 = hdparm.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2049 = +@COND_i386_efi_TRUE@am__append_2050 = $(nodist_hdparm_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2051 = $(nodist_hdparm_module_SOURCES) \ @COND_i386_efi_TRUE@ hdparm.marker -@COND_i386_efi_TRUE@am__append_2059 = hdparm.mod -@COND_i386_efi_TRUE@am__append_2060 = hdparm.marker -@COND_i386_qemu_TRUE@am__append_2061 = hdparm.module -@COND_i386_qemu_TRUE@am__append_2062 = hdparm.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2063 = -@COND_i386_qemu_TRUE@am__append_2064 = $(nodist_hdparm_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2065 = \ +@COND_i386_efi_TRUE@am__append_2052 = hdparm.mod +@COND_i386_efi_TRUE@am__append_2053 = hdparm.marker +@COND_i386_qemu_TRUE@am__append_2054 = hdparm.module +@COND_i386_qemu_TRUE@am__append_2055 = hdparm.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2056 = +@COND_i386_qemu_TRUE@am__append_2057 = $(nodist_hdparm_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2058 = \ @COND_i386_qemu_TRUE@ $(nodist_hdparm_module_SOURCES) \ @COND_i386_qemu_TRUE@ hdparm.marker -@COND_i386_qemu_TRUE@am__append_2066 = hdparm.mod -@COND_i386_qemu_TRUE@am__append_2067 = hdparm.marker -@COND_i386_coreboot_TRUE@am__append_2068 = hdparm.module -@COND_i386_coreboot_TRUE@am__append_2069 = hdparm.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2070 = -@COND_i386_coreboot_TRUE@am__append_2071 = $(nodist_hdparm_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2072 = \ +@COND_i386_qemu_TRUE@am__append_2059 = hdparm.mod +@COND_i386_qemu_TRUE@am__append_2060 = hdparm.marker +@COND_i386_coreboot_TRUE@am__append_2061 = hdparm.module +@COND_i386_coreboot_TRUE@am__append_2062 = hdparm.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2063 = +@COND_i386_coreboot_TRUE@am__append_2064 = $(nodist_hdparm_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2065 = \ @COND_i386_coreboot_TRUE@ $(nodist_hdparm_module_SOURCES) \ @COND_i386_coreboot_TRUE@ hdparm.marker -@COND_i386_coreboot_TRUE@am__append_2073 = hdparm.mod -@COND_i386_coreboot_TRUE@am__append_2074 = hdparm.marker -@COND_i386_multiboot_TRUE@am__append_2075 = hdparm.module -@COND_i386_multiboot_TRUE@am__append_2076 = hdparm.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2077 = -@COND_i386_multiboot_TRUE@am__append_2078 = $(nodist_hdparm_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2079 = \ +@COND_i386_coreboot_TRUE@am__append_2066 = hdparm.mod +@COND_i386_coreboot_TRUE@am__append_2067 = hdparm.marker +@COND_i386_multiboot_TRUE@am__append_2068 = hdparm.module +@COND_i386_multiboot_TRUE@am__append_2069 = hdparm.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2070 = +@COND_i386_multiboot_TRUE@am__append_2071 = $(nodist_hdparm_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2072 = \ @COND_i386_multiboot_TRUE@ $(nodist_hdparm_module_SOURCES) \ @COND_i386_multiboot_TRUE@ hdparm.marker -@COND_i386_multiboot_TRUE@am__append_2080 = hdparm.mod -@COND_i386_multiboot_TRUE@am__append_2081 = hdparm.marker -@COND_i386_ieee1275_TRUE@am__append_2082 = hdparm.module -@COND_i386_ieee1275_TRUE@am__append_2083 = hdparm.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2084 = -@COND_i386_ieee1275_TRUE@am__append_2085 = $(nodist_hdparm_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2086 = \ +@COND_i386_multiboot_TRUE@am__append_2073 = hdparm.mod +@COND_i386_multiboot_TRUE@am__append_2074 = hdparm.marker +@COND_i386_ieee1275_TRUE@am__append_2075 = hdparm.module +@COND_i386_ieee1275_TRUE@am__append_2076 = hdparm.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2077 = +@COND_i386_ieee1275_TRUE@am__append_2078 = $(nodist_hdparm_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2079 = \ @COND_i386_ieee1275_TRUE@ $(nodist_hdparm_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ hdparm.marker -@COND_i386_ieee1275_TRUE@am__append_2087 = hdparm.mod -@COND_i386_ieee1275_TRUE@am__append_2088 = hdparm.marker -@COND_x86_64_efi_TRUE@am__append_2089 = hdparm.module -@COND_x86_64_efi_TRUE@am__append_2090 = hdparm.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2091 = -@COND_x86_64_efi_TRUE@am__append_2092 = $(nodist_hdparm_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2093 = \ +@COND_i386_ieee1275_TRUE@am__append_2080 = hdparm.mod +@COND_i386_ieee1275_TRUE@am__append_2081 = hdparm.marker +@COND_x86_64_efi_TRUE@am__append_2082 = hdparm.module +@COND_x86_64_efi_TRUE@am__append_2083 = hdparm.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2084 = +@COND_x86_64_efi_TRUE@am__append_2085 = $(nodist_hdparm_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2086 = \ @COND_x86_64_efi_TRUE@ $(nodist_hdparm_module_SOURCES) \ @COND_x86_64_efi_TRUE@ hdparm.marker -@COND_x86_64_efi_TRUE@am__append_2094 = hdparm.mod -@COND_x86_64_efi_TRUE@am__append_2095 = hdparm.marker -@COND_mips_loongson_TRUE@am__append_2096 = hdparm.module -@COND_mips_loongson_TRUE@am__append_2097 = hdparm.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_2098 = -@COND_mips_loongson_TRUE@am__append_2099 = $(nodist_hdparm_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_2100 = \ +@COND_x86_64_efi_TRUE@am__append_2087 = hdparm.mod +@COND_x86_64_efi_TRUE@am__append_2088 = hdparm.marker +@COND_mips_loongson_TRUE@am__append_2089 = hdparm.module +@COND_mips_loongson_TRUE@am__append_2090 = hdparm.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2091 = +@COND_mips_loongson_TRUE@am__append_2092 = $(nodist_hdparm_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_2093 = \ @COND_mips_loongson_TRUE@ $(nodist_hdparm_module_SOURCES) \ @COND_mips_loongson_TRUE@ hdparm.marker -@COND_mips_loongson_TRUE@am__append_2101 = hdparm.mod -@COND_mips_loongson_TRUE@am__append_2102 = hdparm.marker -@COND_mips_qemu_mips_TRUE@am__append_2103 = hdparm.module -@COND_mips_qemu_mips_TRUE@am__append_2104 = hdparm.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_2105 = -@COND_mips_qemu_mips_TRUE@am__append_2106 = $(nodist_hdparm_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_2107 = \ +@COND_mips_loongson_TRUE@am__append_2094 = hdparm.mod +@COND_mips_loongson_TRUE@am__append_2095 = hdparm.marker +@COND_mips_qemu_mips_TRUE@am__append_2096 = hdparm.module +@COND_mips_qemu_mips_TRUE@am__append_2097 = hdparm.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_2098 = +@COND_mips_qemu_mips_TRUE@am__append_2099 = $(nodist_hdparm_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_2100 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_hdparm_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ hdparm.marker -@COND_mips_qemu_mips_TRUE@am__append_2108 = hdparm.mod -@COND_mips_qemu_mips_TRUE@am__append_2109 = hdparm.marker -@COND_i386_efi_TRUE@am__append_2110 = loadbios.module -@COND_i386_efi_TRUE@am__append_2111 = loadbios.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_2101 = hdparm.mod +@COND_mips_qemu_mips_TRUE@am__append_2102 = hdparm.marker +@COND_i386_efi_TRUE@am__append_2103 = loadbios.module +@COND_i386_efi_TRUE@am__append_2104 = loadbios.module$(EXEEXT) @COND_i386_efi_FALSE@@COND_x86_64_efi_FALSE@loadbios_module_DEPENDENCIES = -@COND_i386_efi_TRUE@am__append_2112 = -@COND_i386_efi_TRUE@am__append_2113 = $(nodist_loadbios_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2114 = \ +@COND_i386_efi_TRUE@am__append_2105 = +@COND_i386_efi_TRUE@am__append_2106 = $(nodist_loadbios_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2107 = \ @COND_i386_efi_TRUE@ $(nodist_loadbios_module_SOURCES) \ @COND_i386_efi_TRUE@ loadbios.marker -@COND_i386_efi_TRUE@am__append_2115 = loadbios.mod -@COND_i386_efi_TRUE@am__append_2116 = loadbios.marker -@COND_x86_64_efi_TRUE@am__append_2117 = loadbios.module -@COND_x86_64_efi_TRUE@am__append_2118 = loadbios.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2119 = -@COND_x86_64_efi_TRUE@am__append_2120 = $(nodist_loadbios_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2121 = \ +@COND_i386_efi_TRUE@am__append_2108 = loadbios.mod +@COND_i386_efi_TRUE@am__append_2109 = loadbios.marker +@COND_x86_64_efi_TRUE@am__append_2110 = loadbios.module +@COND_x86_64_efi_TRUE@am__append_2111 = loadbios.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2112 = +@COND_x86_64_efi_TRUE@am__append_2113 = $(nodist_loadbios_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2114 = \ @COND_x86_64_efi_TRUE@ $(nodist_loadbios_module_SOURCES) \ @COND_x86_64_efi_TRUE@ loadbios.marker -@COND_x86_64_efi_TRUE@am__append_2122 = loadbios.mod -@COND_x86_64_efi_TRUE@am__append_2123 = loadbios.marker -@COND_i386_pc_TRUE@am__append_2124 = lspci.module -@COND_i386_pc_TRUE@am__append_2125 = lspci.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2115 = loadbios.mod +@COND_x86_64_efi_TRUE@am__append_2116 = loadbios.marker +@COND_i386_pc_TRUE@am__append_2117 = lspci.module +@COND_i386_pc_TRUE@am__append_2118 = lspci.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_mips_loongson_FALSE@@COND_x86_64_efi_FALSE@lspci_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2126 = -@COND_i386_pc_TRUE@am__append_2127 = $(nodist_lspci_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2128 = $(nodist_lspci_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2119 = +@COND_i386_pc_TRUE@am__append_2120 = $(nodist_lspci_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2121 = $(nodist_lspci_module_SOURCES) \ @COND_i386_pc_TRUE@ lspci.marker -@COND_i386_pc_TRUE@am__append_2129 = lspci.mod -@COND_i386_pc_TRUE@am__append_2130 = lspci.marker -@COND_i386_efi_TRUE@am__append_2131 = lspci.module -@COND_i386_efi_TRUE@am__append_2132 = lspci.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2133 = -@COND_i386_efi_TRUE@am__append_2134 = $(nodist_lspci_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2135 = $(nodist_lspci_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2122 = lspci.mod +@COND_i386_pc_TRUE@am__append_2123 = lspci.marker +@COND_i386_efi_TRUE@am__append_2124 = lspci.module +@COND_i386_efi_TRUE@am__append_2125 = lspci.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2126 = +@COND_i386_efi_TRUE@am__append_2127 = $(nodist_lspci_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2128 = $(nodist_lspci_module_SOURCES) \ @COND_i386_efi_TRUE@ lspci.marker -@COND_i386_efi_TRUE@am__append_2136 = lspci.mod -@COND_i386_efi_TRUE@am__append_2137 = lspci.marker -@COND_i386_qemu_TRUE@am__append_2138 = lspci.module -@COND_i386_qemu_TRUE@am__append_2139 = lspci.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2140 = -@COND_i386_qemu_TRUE@am__append_2141 = $(nodist_lspci_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2142 = $(nodist_lspci_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_2129 = lspci.mod +@COND_i386_efi_TRUE@am__append_2130 = lspci.marker +@COND_i386_qemu_TRUE@am__append_2131 = lspci.module +@COND_i386_qemu_TRUE@am__append_2132 = lspci.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2133 = +@COND_i386_qemu_TRUE@am__append_2134 = $(nodist_lspci_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2135 = $(nodist_lspci_module_SOURCES) \ @COND_i386_qemu_TRUE@ lspci.marker -@COND_i386_qemu_TRUE@am__append_2143 = lspci.mod -@COND_i386_qemu_TRUE@am__append_2144 = lspci.marker -@COND_i386_coreboot_TRUE@am__append_2145 = lspci.module -@COND_i386_coreboot_TRUE@am__append_2146 = lspci.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2147 = -@COND_i386_coreboot_TRUE@am__append_2148 = $(nodist_lspci_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2149 = \ +@COND_i386_qemu_TRUE@am__append_2136 = lspci.mod +@COND_i386_qemu_TRUE@am__append_2137 = lspci.marker +@COND_i386_coreboot_TRUE@am__append_2138 = lspci.module +@COND_i386_coreboot_TRUE@am__append_2139 = lspci.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2140 = +@COND_i386_coreboot_TRUE@am__append_2141 = $(nodist_lspci_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2142 = \ @COND_i386_coreboot_TRUE@ $(nodist_lspci_module_SOURCES) \ @COND_i386_coreboot_TRUE@ lspci.marker -@COND_i386_coreboot_TRUE@am__append_2150 = lspci.mod -@COND_i386_coreboot_TRUE@am__append_2151 = lspci.marker -@COND_i386_multiboot_TRUE@am__append_2152 = lspci.module -@COND_i386_multiboot_TRUE@am__append_2153 = lspci.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2154 = -@COND_i386_multiboot_TRUE@am__append_2155 = $(nodist_lspci_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2156 = \ +@COND_i386_coreboot_TRUE@am__append_2143 = lspci.mod +@COND_i386_coreboot_TRUE@am__append_2144 = lspci.marker +@COND_i386_multiboot_TRUE@am__append_2145 = lspci.module +@COND_i386_multiboot_TRUE@am__append_2146 = lspci.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2147 = +@COND_i386_multiboot_TRUE@am__append_2148 = $(nodist_lspci_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2149 = \ @COND_i386_multiboot_TRUE@ $(nodist_lspci_module_SOURCES) \ @COND_i386_multiboot_TRUE@ lspci.marker -@COND_i386_multiboot_TRUE@am__append_2157 = lspci.mod -@COND_i386_multiboot_TRUE@am__append_2158 = lspci.marker -@COND_i386_ieee1275_TRUE@am__append_2159 = lspci.module -@COND_i386_ieee1275_TRUE@am__append_2160 = lspci.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2161 = -@COND_i386_ieee1275_TRUE@am__append_2162 = $(nodist_lspci_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2163 = \ +@COND_i386_multiboot_TRUE@am__append_2150 = lspci.mod +@COND_i386_multiboot_TRUE@am__append_2151 = lspci.marker +@COND_i386_ieee1275_TRUE@am__append_2152 = lspci.module +@COND_i386_ieee1275_TRUE@am__append_2153 = lspci.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2154 = +@COND_i386_ieee1275_TRUE@am__append_2155 = $(nodist_lspci_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2156 = \ @COND_i386_ieee1275_TRUE@ $(nodist_lspci_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ lspci.marker -@COND_i386_ieee1275_TRUE@am__append_2164 = lspci.mod -@COND_i386_ieee1275_TRUE@am__append_2165 = lspci.marker -@COND_x86_64_efi_TRUE@am__append_2166 = lspci.module -@COND_x86_64_efi_TRUE@am__append_2167 = lspci.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2168 = -@COND_x86_64_efi_TRUE@am__append_2169 = $(nodist_lspci_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2170 = \ +@COND_i386_ieee1275_TRUE@am__append_2157 = lspci.mod +@COND_i386_ieee1275_TRUE@am__append_2158 = lspci.marker +@COND_x86_64_efi_TRUE@am__append_2159 = lspci.module +@COND_x86_64_efi_TRUE@am__append_2160 = lspci.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2161 = +@COND_x86_64_efi_TRUE@am__append_2162 = $(nodist_lspci_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2163 = \ @COND_x86_64_efi_TRUE@ $(nodist_lspci_module_SOURCES) \ @COND_x86_64_efi_TRUE@ lspci.marker -@COND_x86_64_efi_TRUE@am__append_2171 = lspci.mod -@COND_x86_64_efi_TRUE@am__append_2172 = lspci.marker -@COND_mips_loongson_TRUE@am__append_2173 = lspci.module -@COND_mips_loongson_TRUE@am__append_2174 = lspci.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_2175 = -@COND_mips_loongson_TRUE@am__append_2176 = $(nodist_lspci_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_2177 = \ +@COND_x86_64_efi_TRUE@am__append_2164 = lspci.mod +@COND_x86_64_efi_TRUE@am__append_2165 = lspci.marker +@COND_mips_loongson_TRUE@am__append_2166 = lspci.module +@COND_mips_loongson_TRUE@am__append_2167 = lspci.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2168 = +@COND_mips_loongson_TRUE@am__append_2169 = $(nodist_lspci_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_2170 = \ @COND_mips_loongson_TRUE@ $(nodist_lspci_module_SOURCES) \ @COND_mips_loongson_TRUE@ lspci.marker -@COND_mips_loongson_TRUE@am__append_2178 = lspci.mod -@COND_mips_loongson_TRUE@am__append_2179 = lspci.marker -@COND_i386_pc_TRUE@am__append_2180 = play.module -@COND_i386_pc_TRUE@am__append_2181 = play.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2171 = lspci.mod +@COND_mips_loongson_TRUE@am__append_2172 = lspci.marker +@COND_i386_pc_TRUE@am__append_2173 = play.module +@COND_i386_pc_TRUE@am__append_2174 = play.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_x86_64_efi_FALSE@play_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2182 = -@COND_i386_pc_TRUE@am__append_2183 = $(nodist_play_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2184 = $(nodist_play_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2175 = +@COND_i386_pc_TRUE@am__append_2176 = $(nodist_play_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2177 = $(nodist_play_module_SOURCES) \ @COND_i386_pc_TRUE@ play.marker -@COND_i386_pc_TRUE@am__append_2185 = play.mod -@COND_i386_pc_TRUE@am__append_2186 = play.marker -@COND_i386_efi_TRUE@am__append_2187 = play.module -@COND_i386_efi_TRUE@am__append_2188 = play.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2189 = -@COND_i386_efi_TRUE@am__append_2190 = $(nodist_play_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2191 = $(nodist_play_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2178 = play.mod +@COND_i386_pc_TRUE@am__append_2179 = play.marker +@COND_i386_efi_TRUE@am__append_2180 = play.module +@COND_i386_efi_TRUE@am__append_2181 = play.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2182 = +@COND_i386_efi_TRUE@am__append_2183 = $(nodist_play_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2184 = $(nodist_play_module_SOURCES) \ @COND_i386_efi_TRUE@ play.marker -@COND_i386_efi_TRUE@am__append_2192 = play.mod -@COND_i386_efi_TRUE@am__append_2193 = play.marker -@COND_i386_qemu_TRUE@am__append_2194 = play.module -@COND_i386_qemu_TRUE@am__append_2195 = play.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2196 = -@COND_i386_qemu_TRUE@am__append_2197 = $(nodist_play_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2198 = $(nodist_play_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_2185 = play.mod +@COND_i386_efi_TRUE@am__append_2186 = play.marker +@COND_i386_qemu_TRUE@am__append_2187 = play.module +@COND_i386_qemu_TRUE@am__append_2188 = play.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2189 = +@COND_i386_qemu_TRUE@am__append_2190 = $(nodist_play_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2191 = $(nodist_play_module_SOURCES) \ @COND_i386_qemu_TRUE@ play.marker -@COND_i386_qemu_TRUE@am__append_2199 = play.mod -@COND_i386_qemu_TRUE@am__append_2200 = play.marker -@COND_i386_coreboot_TRUE@am__append_2201 = play.module -@COND_i386_coreboot_TRUE@am__append_2202 = play.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2203 = -@COND_i386_coreboot_TRUE@am__append_2204 = $(nodist_play_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2205 = \ +@COND_i386_qemu_TRUE@am__append_2192 = play.mod +@COND_i386_qemu_TRUE@am__append_2193 = play.marker +@COND_i386_coreboot_TRUE@am__append_2194 = play.module +@COND_i386_coreboot_TRUE@am__append_2195 = play.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2196 = +@COND_i386_coreboot_TRUE@am__append_2197 = $(nodist_play_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2198 = \ @COND_i386_coreboot_TRUE@ $(nodist_play_module_SOURCES) \ @COND_i386_coreboot_TRUE@ play.marker -@COND_i386_coreboot_TRUE@am__append_2206 = play.mod -@COND_i386_coreboot_TRUE@am__append_2207 = play.marker -@COND_i386_multiboot_TRUE@am__append_2208 = play.module -@COND_i386_multiboot_TRUE@am__append_2209 = play.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2210 = -@COND_i386_multiboot_TRUE@am__append_2211 = $(nodist_play_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2212 = \ +@COND_i386_coreboot_TRUE@am__append_2199 = play.mod +@COND_i386_coreboot_TRUE@am__append_2200 = play.marker +@COND_i386_multiboot_TRUE@am__append_2201 = play.module +@COND_i386_multiboot_TRUE@am__append_2202 = play.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2203 = +@COND_i386_multiboot_TRUE@am__append_2204 = $(nodist_play_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2205 = \ @COND_i386_multiboot_TRUE@ $(nodist_play_module_SOURCES) \ @COND_i386_multiboot_TRUE@ play.marker -@COND_i386_multiboot_TRUE@am__append_2213 = play.mod -@COND_i386_multiboot_TRUE@am__append_2214 = play.marker -@COND_i386_ieee1275_TRUE@am__append_2215 = play.module -@COND_i386_ieee1275_TRUE@am__append_2216 = play.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2217 = -@COND_i386_ieee1275_TRUE@am__append_2218 = $(nodist_play_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2219 = \ +@COND_i386_multiboot_TRUE@am__append_2206 = play.mod +@COND_i386_multiboot_TRUE@am__append_2207 = play.marker +@COND_i386_ieee1275_TRUE@am__append_2208 = play.module +@COND_i386_ieee1275_TRUE@am__append_2209 = play.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2210 = +@COND_i386_ieee1275_TRUE@am__append_2211 = $(nodist_play_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2212 = \ @COND_i386_ieee1275_TRUE@ $(nodist_play_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ play.marker -@COND_i386_ieee1275_TRUE@am__append_2220 = play.mod -@COND_i386_ieee1275_TRUE@am__append_2221 = play.marker -@COND_x86_64_efi_TRUE@am__append_2222 = play.module -@COND_x86_64_efi_TRUE@am__append_2223 = play.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2224 = -@COND_x86_64_efi_TRUE@am__append_2225 = $(nodist_play_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2226 = $(nodist_play_module_SOURCES) \ +@COND_i386_ieee1275_TRUE@am__append_2213 = play.mod +@COND_i386_ieee1275_TRUE@am__append_2214 = play.marker +@COND_x86_64_efi_TRUE@am__append_2215 = play.module +@COND_x86_64_efi_TRUE@am__append_2216 = play.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2217 = +@COND_x86_64_efi_TRUE@am__append_2218 = $(nodist_play_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2219 = $(nodist_play_module_SOURCES) \ @COND_x86_64_efi_TRUE@ play.marker -@COND_x86_64_efi_TRUE@am__append_2227 = play.mod -@COND_x86_64_efi_TRUE@am__append_2228 = play.marker -@COND_i386_pc_TRUE@am__append_2229 = spkmodem.module -@COND_i386_pc_TRUE@am__append_2230 = spkmodem.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2220 = play.mod +@COND_x86_64_efi_TRUE@am__append_2221 = play.marker +@COND_i386_pc_TRUE@am__append_2222 = spkmodem.module +@COND_i386_pc_TRUE@am__append_2223 = spkmodem.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_x86_64_efi_FALSE@spkmodem_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2231 = -@COND_i386_pc_TRUE@am__append_2232 = $(nodist_spkmodem_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2233 = \ +@COND_i386_pc_TRUE@am__append_2224 = +@COND_i386_pc_TRUE@am__append_2225 = $(nodist_spkmodem_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2226 = \ @COND_i386_pc_TRUE@ $(nodist_spkmodem_module_SOURCES) \ @COND_i386_pc_TRUE@ spkmodem.marker -@COND_i386_pc_TRUE@am__append_2234 = spkmodem.mod -@COND_i386_pc_TRUE@am__append_2235 = spkmodem.marker -@COND_i386_efi_TRUE@am__append_2236 = spkmodem.module -@COND_i386_efi_TRUE@am__append_2237 = spkmodem.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2238 = -@COND_i386_efi_TRUE@am__append_2239 = $(nodist_spkmodem_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2240 = \ +@COND_i386_pc_TRUE@am__append_2227 = spkmodem.mod +@COND_i386_pc_TRUE@am__append_2228 = spkmodem.marker +@COND_i386_efi_TRUE@am__append_2229 = spkmodem.module +@COND_i386_efi_TRUE@am__append_2230 = spkmodem.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2231 = +@COND_i386_efi_TRUE@am__append_2232 = $(nodist_spkmodem_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2233 = \ @COND_i386_efi_TRUE@ $(nodist_spkmodem_module_SOURCES) \ @COND_i386_efi_TRUE@ spkmodem.marker -@COND_i386_efi_TRUE@am__append_2241 = spkmodem.mod -@COND_i386_efi_TRUE@am__append_2242 = spkmodem.marker -@COND_i386_qemu_TRUE@am__append_2243 = spkmodem.module -@COND_i386_qemu_TRUE@am__append_2244 = spkmodem.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2245 = -@COND_i386_qemu_TRUE@am__append_2246 = $(nodist_spkmodem_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2247 = \ +@COND_i386_efi_TRUE@am__append_2234 = spkmodem.mod +@COND_i386_efi_TRUE@am__append_2235 = spkmodem.marker +@COND_i386_qemu_TRUE@am__append_2236 = spkmodem.module +@COND_i386_qemu_TRUE@am__append_2237 = spkmodem.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2238 = +@COND_i386_qemu_TRUE@am__append_2239 = $(nodist_spkmodem_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2240 = \ @COND_i386_qemu_TRUE@ $(nodist_spkmodem_module_SOURCES) \ @COND_i386_qemu_TRUE@ spkmodem.marker -@COND_i386_qemu_TRUE@am__append_2248 = spkmodem.mod -@COND_i386_qemu_TRUE@am__append_2249 = spkmodem.marker -@COND_i386_coreboot_TRUE@am__append_2250 = spkmodem.module -@COND_i386_coreboot_TRUE@am__append_2251 = spkmodem.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2252 = -@COND_i386_coreboot_TRUE@am__append_2253 = $(nodist_spkmodem_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2254 = \ +@COND_i386_qemu_TRUE@am__append_2241 = spkmodem.mod +@COND_i386_qemu_TRUE@am__append_2242 = spkmodem.marker +@COND_i386_coreboot_TRUE@am__append_2243 = spkmodem.module +@COND_i386_coreboot_TRUE@am__append_2244 = spkmodem.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2245 = +@COND_i386_coreboot_TRUE@am__append_2246 = $(nodist_spkmodem_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2247 = \ @COND_i386_coreboot_TRUE@ $(nodist_spkmodem_module_SOURCES) \ @COND_i386_coreboot_TRUE@ spkmodem.marker -@COND_i386_coreboot_TRUE@am__append_2255 = spkmodem.mod -@COND_i386_coreboot_TRUE@am__append_2256 = spkmodem.marker -@COND_i386_multiboot_TRUE@am__append_2257 = spkmodem.module -@COND_i386_multiboot_TRUE@am__append_2258 = spkmodem.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2259 = -@COND_i386_multiboot_TRUE@am__append_2260 = $(nodist_spkmodem_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2261 = \ +@COND_i386_coreboot_TRUE@am__append_2248 = spkmodem.mod +@COND_i386_coreboot_TRUE@am__append_2249 = spkmodem.marker +@COND_i386_multiboot_TRUE@am__append_2250 = spkmodem.module +@COND_i386_multiboot_TRUE@am__append_2251 = spkmodem.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2252 = +@COND_i386_multiboot_TRUE@am__append_2253 = $(nodist_spkmodem_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2254 = \ @COND_i386_multiboot_TRUE@ $(nodist_spkmodem_module_SOURCES) \ @COND_i386_multiboot_TRUE@ spkmodem.marker -@COND_i386_multiboot_TRUE@am__append_2262 = spkmodem.mod -@COND_i386_multiboot_TRUE@am__append_2263 = spkmodem.marker -@COND_i386_ieee1275_TRUE@am__append_2264 = spkmodem.module -@COND_i386_ieee1275_TRUE@am__append_2265 = spkmodem.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2266 = -@COND_i386_ieee1275_TRUE@am__append_2267 = $(nodist_spkmodem_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2268 = \ +@COND_i386_multiboot_TRUE@am__append_2255 = spkmodem.mod +@COND_i386_multiboot_TRUE@am__append_2256 = spkmodem.marker +@COND_i386_ieee1275_TRUE@am__append_2257 = spkmodem.module +@COND_i386_ieee1275_TRUE@am__append_2258 = spkmodem.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2259 = +@COND_i386_ieee1275_TRUE@am__append_2260 = $(nodist_spkmodem_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2261 = \ @COND_i386_ieee1275_TRUE@ $(nodist_spkmodem_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ spkmodem.marker -@COND_i386_ieee1275_TRUE@am__append_2269 = spkmodem.mod -@COND_i386_ieee1275_TRUE@am__append_2270 = spkmodem.marker -@COND_x86_64_efi_TRUE@am__append_2271 = spkmodem.module -@COND_x86_64_efi_TRUE@am__append_2272 = spkmodem.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2273 = -@COND_x86_64_efi_TRUE@am__append_2274 = $(nodist_spkmodem_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2275 = \ +@COND_i386_ieee1275_TRUE@am__append_2262 = spkmodem.mod +@COND_i386_ieee1275_TRUE@am__append_2263 = spkmodem.marker +@COND_x86_64_efi_TRUE@am__append_2264 = spkmodem.module +@COND_x86_64_efi_TRUE@am__append_2265 = spkmodem.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2266 = +@COND_x86_64_efi_TRUE@am__append_2267 = $(nodist_spkmodem_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2268 = \ @COND_x86_64_efi_TRUE@ $(nodist_spkmodem_module_SOURCES) \ @COND_x86_64_efi_TRUE@ spkmodem.marker -@COND_x86_64_efi_TRUE@am__append_2276 = spkmodem.mod -@COND_x86_64_efi_TRUE@am__append_2277 = spkmodem.marker -@COND_i386_pc_TRUE@am__append_2278 = morse.module -@COND_i386_pc_TRUE@am__append_2279 = morse.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2269 = spkmodem.mod +@COND_x86_64_efi_TRUE@am__append_2270 = spkmodem.marker +@COND_i386_pc_TRUE@am__append_2271 = morse.module +@COND_i386_pc_TRUE@am__append_2272 = morse.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_x86_64_efi_FALSE@morse_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2280 = -@COND_i386_pc_TRUE@am__append_2281 = $(nodist_morse_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2282 = $(nodist_morse_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2273 = +@COND_i386_pc_TRUE@am__append_2274 = $(nodist_morse_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2275 = $(nodist_morse_module_SOURCES) \ @COND_i386_pc_TRUE@ morse.marker -@COND_i386_pc_TRUE@am__append_2283 = morse.mod -@COND_i386_pc_TRUE@am__append_2284 = morse.marker -@COND_i386_efi_TRUE@am__append_2285 = morse.module -@COND_i386_efi_TRUE@am__append_2286 = morse.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2287 = -@COND_i386_efi_TRUE@am__append_2288 = $(nodist_morse_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2289 = $(nodist_morse_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2276 = morse.mod +@COND_i386_pc_TRUE@am__append_2277 = morse.marker +@COND_i386_efi_TRUE@am__append_2278 = morse.module +@COND_i386_efi_TRUE@am__append_2279 = morse.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2280 = +@COND_i386_efi_TRUE@am__append_2281 = $(nodist_morse_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2282 = $(nodist_morse_module_SOURCES) \ @COND_i386_efi_TRUE@ morse.marker -@COND_i386_efi_TRUE@am__append_2290 = morse.mod -@COND_i386_efi_TRUE@am__append_2291 = morse.marker -@COND_i386_qemu_TRUE@am__append_2292 = morse.module -@COND_i386_qemu_TRUE@am__append_2293 = morse.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2294 = -@COND_i386_qemu_TRUE@am__append_2295 = $(nodist_morse_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2296 = $(nodist_morse_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_2283 = morse.mod +@COND_i386_efi_TRUE@am__append_2284 = morse.marker +@COND_i386_qemu_TRUE@am__append_2285 = morse.module +@COND_i386_qemu_TRUE@am__append_2286 = morse.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2287 = +@COND_i386_qemu_TRUE@am__append_2288 = $(nodist_morse_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2289 = $(nodist_morse_module_SOURCES) \ @COND_i386_qemu_TRUE@ morse.marker -@COND_i386_qemu_TRUE@am__append_2297 = morse.mod -@COND_i386_qemu_TRUE@am__append_2298 = morse.marker -@COND_i386_coreboot_TRUE@am__append_2299 = morse.module -@COND_i386_coreboot_TRUE@am__append_2300 = morse.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2301 = -@COND_i386_coreboot_TRUE@am__append_2302 = $(nodist_morse_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2303 = \ +@COND_i386_qemu_TRUE@am__append_2290 = morse.mod +@COND_i386_qemu_TRUE@am__append_2291 = morse.marker +@COND_i386_coreboot_TRUE@am__append_2292 = morse.module +@COND_i386_coreboot_TRUE@am__append_2293 = morse.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2294 = +@COND_i386_coreboot_TRUE@am__append_2295 = $(nodist_morse_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2296 = \ @COND_i386_coreboot_TRUE@ $(nodist_morse_module_SOURCES) \ @COND_i386_coreboot_TRUE@ morse.marker -@COND_i386_coreboot_TRUE@am__append_2304 = morse.mod -@COND_i386_coreboot_TRUE@am__append_2305 = morse.marker -@COND_i386_multiboot_TRUE@am__append_2306 = morse.module -@COND_i386_multiboot_TRUE@am__append_2307 = morse.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2308 = -@COND_i386_multiboot_TRUE@am__append_2309 = $(nodist_morse_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2310 = \ +@COND_i386_coreboot_TRUE@am__append_2297 = morse.mod +@COND_i386_coreboot_TRUE@am__append_2298 = morse.marker +@COND_i386_multiboot_TRUE@am__append_2299 = morse.module +@COND_i386_multiboot_TRUE@am__append_2300 = morse.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2301 = +@COND_i386_multiboot_TRUE@am__append_2302 = $(nodist_morse_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2303 = \ @COND_i386_multiboot_TRUE@ $(nodist_morse_module_SOURCES) \ @COND_i386_multiboot_TRUE@ morse.marker -@COND_i386_multiboot_TRUE@am__append_2311 = morse.mod -@COND_i386_multiboot_TRUE@am__append_2312 = morse.marker -@COND_i386_ieee1275_TRUE@am__append_2313 = morse.module -@COND_i386_ieee1275_TRUE@am__append_2314 = morse.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2315 = -@COND_i386_ieee1275_TRUE@am__append_2316 = $(nodist_morse_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2317 = \ +@COND_i386_multiboot_TRUE@am__append_2304 = morse.mod +@COND_i386_multiboot_TRUE@am__append_2305 = morse.marker +@COND_i386_ieee1275_TRUE@am__append_2306 = morse.module +@COND_i386_ieee1275_TRUE@am__append_2307 = morse.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2308 = +@COND_i386_ieee1275_TRUE@am__append_2309 = $(nodist_morse_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2310 = \ @COND_i386_ieee1275_TRUE@ $(nodist_morse_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ morse.marker -@COND_i386_ieee1275_TRUE@am__append_2318 = morse.mod -@COND_i386_ieee1275_TRUE@am__append_2319 = morse.marker -@COND_x86_64_efi_TRUE@am__append_2320 = morse.module -@COND_x86_64_efi_TRUE@am__append_2321 = morse.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2322 = -@COND_x86_64_efi_TRUE@am__append_2323 = $(nodist_morse_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2324 = \ +@COND_i386_ieee1275_TRUE@am__append_2311 = morse.mod +@COND_i386_ieee1275_TRUE@am__append_2312 = morse.marker +@COND_x86_64_efi_TRUE@am__append_2313 = morse.module +@COND_x86_64_efi_TRUE@am__append_2314 = morse.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2315 = +@COND_x86_64_efi_TRUE@am__append_2316 = $(nodist_morse_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2317 = \ @COND_x86_64_efi_TRUE@ $(nodist_morse_module_SOURCES) \ @COND_x86_64_efi_TRUE@ morse.marker -@COND_x86_64_efi_TRUE@am__append_2325 = morse.mod -@COND_x86_64_efi_TRUE@am__append_2326 = morse.marker -@COND_i386_pc_TRUE@am__append_2327 = setpci.module -@COND_i386_pc_TRUE@am__append_2328 = setpci.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2318 = morse.mod +@COND_x86_64_efi_TRUE@am__append_2319 = morse.marker +@COND_i386_pc_TRUE@am__append_2320 = setpci.module +@COND_i386_pc_TRUE@am__append_2321 = setpci.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_mips_loongson_FALSE@@COND_x86_64_efi_FALSE@setpci_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2329 = -@COND_i386_pc_TRUE@am__append_2330 = $(nodist_setpci_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2331 = $(nodist_setpci_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2322 = +@COND_i386_pc_TRUE@am__append_2323 = $(nodist_setpci_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2324 = $(nodist_setpci_module_SOURCES) \ @COND_i386_pc_TRUE@ setpci.marker -@COND_i386_pc_TRUE@am__append_2332 = setpci.mod -@COND_i386_pc_TRUE@am__append_2333 = setpci.marker -@COND_i386_efi_TRUE@am__append_2334 = setpci.module -@COND_i386_efi_TRUE@am__append_2335 = setpci.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2336 = -@COND_i386_efi_TRUE@am__append_2337 = $(nodist_setpci_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2338 = $(nodist_setpci_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2325 = setpci.mod +@COND_i386_pc_TRUE@am__append_2326 = setpci.marker +@COND_i386_efi_TRUE@am__append_2327 = setpci.module +@COND_i386_efi_TRUE@am__append_2328 = setpci.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2329 = +@COND_i386_efi_TRUE@am__append_2330 = $(nodist_setpci_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2331 = $(nodist_setpci_module_SOURCES) \ @COND_i386_efi_TRUE@ setpci.marker -@COND_i386_efi_TRUE@am__append_2339 = setpci.mod -@COND_i386_efi_TRUE@am__append_2340 = setpci.marker -@COND_i386_qemu_TRUE@am__append_2341 = setpci.module -@COND_i386_qemu_TRUE@am__append_2342 = setpci.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2343 = -@COND_i386_qemu_TRUE@am__append_2344 = $(nodist_setpci_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2345 = \ +@COND_i386_efi_TRUE@am__append_2332 = setpci.mod +@COND_i386_efi_TRUE@am__append_2333 = setpci.marker +@COND_i386_qemu_TRUE@am__append_2334 = setpci.module +@COND_i386_qemu_TRUE@am__append_2335 = setpci.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2336 = +@COND_i386_qemu_TRUE@am__append_2337 = $(nodist_setpci_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2338 = \ @COND_i386_qemu_TRUE@ $(nodist_setpci_module_SOURCES) \ @COND_i386_qemu_TRUE@ setpci.marker -@COND_i386_qemu_TRUE@am__append_2346 = setpci.mod -@COND_i386_qemu_TRUE@am__append_2347 = setpci.marker -@COND_i386_coreboot_TRUE@am__append_2348 = setpci.module -@COND_i386_coreboot_TRUE@am__append_2349 = setpci.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2350 = -@COND_i386_coreboot_TRUE@am__append_2351 = $(nodist_setpci_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2352 = \ +@COND_i386_qemu_TRUE@am__append_2339 = setpci.mod +@COND_i386_qemu_TRUE@am__append_2340 = setpci.marker +@COND_i386_coreboot_TRUE@am__append_2341 = setpci.module +@COND_i386_coreboot_TRUE@am__append_2342 = setpci.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2343 = +@COND_i386_coreboot_TRUE@am__append_2344 = $(nodist_setpci_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2345 = \ @COND_i386_coreboot_TRUE@ $(nodist_setpci_module_SOURCES) \ @COND_i386_coreboot_TRUE@ setpci.marker -@COND_i386_coreboot_TRUE@am__append_2353 = setpci.mod -@COND_i386_coreboot_TRUE@am__append_2354 = setpci.marker -@COND_i386_multiboot_TRUE@am__append_2355 = setpci.module -@COND_i386_multiboot_TRUE@am__append_2356 = setpci.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2357 = -@COND_i386_multiboot_TRUE@am__append_2358 = $(nodist_setpci_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2359 = \ +@COND_i386_coreboot_TRUE@am__append_2346 = setpci.mod +@COND_i386_coreboot_TRUE@am__append_2347 = setpci.marker +@COND_i386_multiboot_TRUE@am__append_2348 = setpci.module +@COND_i386_multiboot_TRUE@am__append_2349 = setpci.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2350 = +@COND_i386_multiboot_TRUE@am__append_2351 = $(nodist_setpci_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2352 = \ @COND_i386_multiboot_TRUE@ $(nodist_setpci_module_SOURCES) \ @COND_i386_multiboot_TRUE@ setpci.marker -@COND_i386_multiboot_TRUE@am__append_2360 = setpci.mod -@COND_i386_multiboot_TRUE@am__append_2361 = setpci.marker -@COND_i386_ieee1275_TRUE@am__append_2362 = setpci.module -@COND_i386_ieee1275_TRUE@am__append_2363 = setpci.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2364 = -@COND_i386_ieee1275_TRUE@am__append_2365 = $(nodist_setpci_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2366 = \ +@COND_i386_multiboot_TRUE@am__append_2353 = setpci.mod +@COND_i386_multiboot_TRUE@am__append_2354 = setpci.marker +@COND_i386_ieee1275_TRUE@am__append_2355 = setpci.module +@COND_i386_ieee1275_TRUE@am__append_2356 = setpci.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2357 = +@COND_i386_ieee1275_TRUE@am__append_2358 = $(nodist_setpci_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2359 = \ @COND_i386_ieee1275_TRUE@ $(nodist_setpci_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ setpci.marker -@COND_i386_ieee1275_TRUE@am__append_2367 = setpci.mod -@COND_i386_ieee1275_TRUE@am__append_2368 = setpci.marker -@COND_x86_64_efi_TRUE@am__append_2369 = setpci.module -@COND_x86_64_efi_TRUE@am__append_2370 = setpci.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2371 = -@COND_x86_64_efi_TRUE@am__append_2372 = $(nodist_setpci_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2373 = \ +@COND_i386_ieee1275_TRUE@am__append_2360 = setpci.mod +@COND_i386_ieee1275_TRUE@am__append_2361 = setpci.marker +@COND_x86_64_efi_TRUE@am__append_2362 = setpci.module +@COND_x86_64_efi_TRUE@am__append_2363 = setpci.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2364 = +@COND_x86_64_efi_TRUE@am__append_2365 = $(nodist_setpci_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2366 = \ @COND_x86_64_efi_TRUE@ $(nodist_setpci_module_SOURCES) \ @COND_x86_64_efi_TRUE@ setpci.marker -@COND_x86_64_efi_TRUE@am__append_2374 = setpci.mod -@COND_x86_64_efi_TRUE@am__append_2375 = setpci.marker -@COND_mips_loongson_TRUE@am__append_2376 = setpci.module -@COND_mips_loongson_TRUE@am__append_2377 = setpci.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_2378 = -@COND_mips_loongson_TRUE@am__append_2379 = $(nodist_setpci_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_2380 = \ +@COND_x86_64_efi_TRUE@am__append_2367 = setpci.mod +@COND_x86_64_efi_TRUE@am__append_2368 = setpci.marker +@COND_mips_loongson_TRUE@am__append_2369 = setpci.module +@COND_mips_loongson_TRUE@am__append_2370 = setpci.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2371 = +@COND_mips_loongson_TRUE@am__append_2372 = $(nodist_setpci_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_2373 = \ @COND_mips_loongson_TRUE@ $(nodist_setpci_module_SOURCES) \ @COND_mips_loongson_TRUE@ setpci.marker -@COND_mips_loongson_TRUE@am__append_2381 = setpci.mod -@COND_mips_loongson_TRUE@am__append_2382 = setpci.marker -@COND_i386_pc_TRUE@am__append_2383 = pcidump.module -@COND_i386_pc_TRUE@am__append_2384 = pcidump.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2374 = setpci.mod +@COND_mips_loongson_TRUE@am__append_2375 = setpci.marker +@COND_i386_pc_TRUE@am__append_2376 = pcidump.module +@COND_i386_pc_TRUE@am__append_2377 = pcidump.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_mips_loongson_FALSE@@COND_x86_64_efi_FALSE@pcidump_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2385 = -@COND_i386_pc_TRUE@am__append_2386 = $(nodist_pcidump_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2387 = $(nodist_pcidump_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2378 = +@COND_i386_pc_TRUE@am__append_2379 = $(nodist_pcidump_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2380 = $(nodist_pcidump_module_SOURCES) \ @COND_i386_pc_TRUE@ pcidump.marker -@COND_i386_pc_TRUE@am__append_2388 = pcidump.mod -@COND_i386_pc_TRUE@am__append_2389 = pcidump.marker -@COND_i386_efi_TRUE@am__append_2390 = pcidump.module -@COND_i386_efi_TRUE@am__append_2391 = pcidump.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2392 = -@COND_i386_efi_TRUE@am__append_2393 = $(nodist_pcidump_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2394 = \ +@COND_i386_pc_TRUE@am__append_2381 = pcidump.mod +@COND_i386_pc_TRUE@am__append_2382 = pcidump.marker +@COND_i386_efi_TRUE@am__append_2383 = pcidump.module +@COND_i386_efi_TRUE@am__append_2384 = pcidump.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2385 = +@COND_i386_efi_TRUE@am__append_2386 = $(nodist_pcidump_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2387 = \ @COND_i386_efi_TRUE@ $(nodist_pcidump_module_SOURCES) \ @COND_i386_efi_TRUE@ pcidump.marker -@COND_i386_efi_TRUE@am__append_2395 = pcidump.mod -@COND_i386_efi_TRUE@am__append_2396 = pcidump.marker -@COND_i386_qemu_TRUE@am__append_2397 = pcidump.module -@COND_i386_qemu_TRUE@am__append_2398 = pcidump.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2399 = -@COND_i386_qemu_TRUE@am__append_2400 = $(nodist_pcidump_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2401 = \ +@COND_i386_efi_TRUE@am__append_2388 = pcidump.mod +@COND_i386_efi_TRUE@am__append_2389 = pcidump.marker +@COND_i386_qemu_TRUE@am__append_2390 = pcidump.module +@COND_i386_qemu_TRUE@am__append_2391 = pcidump.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2392 = +@COND_i386_qemu_TRUE@am__append_2393 = $(nodist_pcidump_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2394 = \ @COND_i386_qemu_TRUE@ $(nodist_pcidump_module_SOURCES) \ @COND_i386_qemu_TRUE@ pcidump.marker -@COND_i386_qemu_TRUE@am__append_2402 = pcidump.mod -@COND_i386_qemu_TRUE@am__append_2403 = pcidump.marker -@COND_i386_coreboot_TRUE@am__append_2404 = pcidump.module -@COND_i386_coreboot_TRUE@am__append_2405 = pcidump.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2406 = -@COND_i386_coreboot_TRUE@am__append_2407 = $(nodist_pcidump_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2408 = \ +@COND_i386_qemu_TRUE@am__append_2395 = pcidump.mod +@COND_i386_qemu_TRUE@am__append_2396 = pcidump.marker +@COND_i386_coreboot_TRUE@am__append_2397 = pcidump.module +@COND_i386_coreboot_TRUE@am__append_2398 = pcidump.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2399 = +@COND_i386_coreboot_TRUE@am__append_2400 = $(nodist_pcidump_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2401 = \ @COND_i386_coreboot_TRUE@ $(nodist_pcidump_module_SOURCES) \ @COND_i386_coreboot_TRUE@ pcidump.marker -@COND_i386_coreboot_TRUE@am__append_2409 = pcidump.mod -@COND_i386_coreboot_TRUE@am__append_2410 = pcidump.marker -@COND_i386_multiboot_TRUE@am__append_2411 = pcidump.module -@COND_i386_multiboot_TRUE@am__append_2412 = pcidump.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2413 = -@COND_i386_multiboot_TRUE@am__append_2414 = $(nodist_pcidump_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2415 = \ +@COND_i386_coreboot_TRUE@am__append_2402 = pcidump.mod +@COND_i386_coreboot_TRUE@am__append_2403 = pcidump.marker +@COND_i386_multiboot_TRUE@am__append_2404 = pcidump.module +@COND_i386_multiboot_TRUE@am__append_2405 = pcidump.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2406 = +@COND_i386_multiboot_TRUE@am__append_2407 = $(nodist_pcidump_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2408 = \ @COND_i386_multiboot_TRUE@ $(nodist_pcidump_module_SOURCES) \ @COND_i386_multiboot_TRUE@ pcidump.marker -@COND_i386_multiboot_TRUE@am__append_2416 = pcidump.mod -@COND_i386_multiboot_TRUE@am__append_2417 = pcidump.marker -@COND_i386_ieee1275_TRUE@am__append_2418 = pcidump.module -@COND_i386_ieee1275_TRUE@am__append_2419 = pcidump.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2420 = -@COND_i386_ieee1275_TRUE@am__append_2421 = $(nodist_pcidump_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2422 = \ +@COND_i386_multiboot_TRUE@am__append_2409 = pcidump.mod +@COND_i386_multiboot_TRUE@am__append_2410 = pcidump.marker +@COND_i386_ieee1275_TRUE@am__append_2411 = pcidump.module +@COND_i386_ieee1275_TRUE@am__append_2412 = pcidump.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2413 = +@COND_i386_ieee1275_TRUE@am__append_2414 = $(nodist_pcidump_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2415 = \ @COND_i386_ieee1275_TRUE@ $(nodist_pcidump_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ pcidump.marker -@COND_i386_ieee1275_TRUE@am__append_2423 = pcidump.mod -@COND_i386_ieee1275_TRUE@am__append_2424 = pcidump.marker -@COND_x86_64_efi_TRUE@am__append_2425 = pcidump.module -@COND_x86_64_efi_TRUE@am__append_2426 = pcidump.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2427 = -@COND_x86_64_efi_TRUE@am__append_2428 = $(nodist_pcidump_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2429 = \ +@COND_i386_ieee1275_TRUE@am__append_2416 = pcidump.mod +@COND_i386_ieee1275_TRUE@am__append_2417 = pcidump.marker +@COND_x86_64_efi_TRUE@am__append_2418 = pcidump.module +@COND_x86_64_efi_TRUE@am__append_2419 = pcidump.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2420 = +@COND_x86_64_efi_TRUE@am__append_2421 = $(nodist_pcidump_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2422 = \ @COND_x86_64_efi_TRUE@ $(nodist_pcidump_module_SOURCES) \ @COND_x86_64_efi_TRUE@ pcidump.marker -@COND_x86_64_efi_TRUE@am__append_2430 = pcidump.mod -@COND_x86_64_efi_TRUE@am__append_2431 = pcidump.marker -@COND_mips_loongson_TRUE@am__append_2432 = pcidump.module -@COND_mips_loongson_TRUE@am__append_2433 = pcidump.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_2434 = -@COND_mips_loongson_TRUE@am__append_2435 = $(nodist_pcidump_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_2436 = \ +@COND_x86_64_efi_TRUE@am__append_2423 = pcidump.mod +@COND_x86_64_efi_TRUE@am__append_2424 = pcidump.marker +@COND_mips_loongson_TRUE@am__append_2425 = pcidump.module +@COND_mips_loongson_TRUE@am__append_2426 = pcidump.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2427 = +@COND_mips_loongson_TRUE@am__append_2428 = $(nodist_pcidump_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_2429 = \ @COND_mips_loongson_TRUE@ $(nodist_pcidump_module_SOURCES) \ @COND_mips_loongson_TRUE@ pcidump.marker -@COND_mips_loongson_TRUE@am__append_2437 = pcidump.mod -@COND_mips_loongson_TRUE@am__append_2438 = pcidump.marker -@COND_i386_ieee1275_TRUE@am__append_2439 = suspend.module -@COND_i386_ieee1275_TRUE@am__append_2440 = suspend.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2430 = pcidump.mod +@COND_mips_loongson_TRUE@am__append_2431 = pcidump.marker +@COND_i386_ieee1275_TRUE@am__append_2432 = suspend.module +@COND_i386_ieee1275_TRUE@am__append_2433 = suspend.module$(EXEEXT) @COND_i386_ieee1275_FALSE@@COND_powerpc_ieee1275_FALSE@suspend_module_DEPENDENCIES = -@COND_i386_ieee1275_TRUE@am__append_2441 = -@COND_i386_ieee1275_TRUE@am__append_2442 = $(nodist_suspend_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2443 = \ +@COND_i386_ieee1275_TRUE@am__append_2434 = +@COND_i386_ieee1275_TRUE@am__append_2435 = $(nodist_suspend_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2436 = \ @COND_i386_ieee1275_TRUE@ $(nodist_suspend_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ suspend.marker -@COND_i386_ieee1275_TRUE@am__append_2444 = suspend.mod -@COND_i386_ieee1275_TRUE@am__append_2445 = suspend.marker -@COND_powerpc_ieee1275_TRUE@am__append_2446 = suspend.module \ +@COND_i386_ieee1275_TRUE@am__append_2437 = suspend.mod +@COND_i386_ieee1275_TRUE@am__append_2438 = suspend.marker +@COND_powerpc_ieee1275_TRUE@am__append_2439 = suspend.module \ @COND_powerpc_ieee1275_TRUE@ escc.module -@COND_powerpc_ieee1275_TRUE@am__append_2447 = suspend.module$(EXEEXT) \ +@COND_powerpc_ieee1275_TRUE@am__append_2440 = suspend.module$(EXEEXT) \ @COND_powerpc_ieee1275_TRUE@ escc.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__append_2448 = -@COND_powerpc_ieee1275_TRUE@am__append_2449 = \ +@COND_powerpc_ieee1275_TRUE@am__append_2441 = +@COND_powerpc_ieee1275_TRUE@am__append_2442 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_suspend_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ $(nodist_escc_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_2450 = \ +@COND_powerpc_ieee1275_TRUE@am__append_2443 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_suspend_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ suspend.marker \ @COND_powerpc_ieee1275_TRUE@ $(nodist_escc_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ escc.marker -@COND_powerpc_ieee1275_TRUE@am__append_2451 = suspend.mod escc.mod -@COND_powerpc_ieee1275_TRUE@am__append_2452 = suspend.marker \ +@COND_powerpc_ieee1275_TRUE@am__append_2444 = suspend.mod escc.mod +@COND_powerpc_ieee1275_TRUE@am__append_2445 = suspend.marker \ @COND_powerpc_ieee1275_TRUE@ escc.marker @COND_powerpc_ieee1275_FALSE@escc_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2453 = usbtest.module -@COND_i386_pc_TRUE@am__append_2454 = usbtest.module$(EXEEXT) +@COND_i386_pc_TRUE@am__append_2446 = usbtest.module +@COND_i386_pc_TRUE@am__append_2447 = usbtest.module$(EXEEXT) @COND_arm_coreboot_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_mips_loongson_FALSE@@COND_x86_64_efi_FALSE@usbtest_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2455 = -@COND_i386_pc_TRUE@am__append_2456 = $(nodist_usbtest_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2457 = $(nodist_usbtest_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2448 = +@COND_i386_pc_TRUE@am__append_2449 = $(nodist_usbtest_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2450 = $(nodist_usbtest_module_SOURCES) \ @COND_i386_pc_TRUE@ usbtest.marker -@COND_i386_pc_TRUE@am__append_2458 = usbtest.mod -@COND_i386_pc_TRUE@am__append_2459 = usbtest.marker -@COND_i386_efi_TRUE@am__append_2460 = usbtest.module -@COND_i386_efi_TRUE@am__append_2461 = usbtest.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2462 = -@COND_i386_efi_TRUE@am__append_2463 = $(nodist_usbtest_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2464 = \ +@COND_i386_pc_TRUE@am__append_2451 = usbtest.mod +@COND_i386_pc_TRUE@am__append_2452 = usbtest.marker +@COND_i386_efi_TRUE@am__append_2453 = usbtest.module +@COND_i386_efi_TRUE@am__append_2454 = usbtest.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2455 = +@COND_i386_efi_TRUE@am__append_2456 = $(nodist_usbtest_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2457 = \ @COND_i386_efi_TRUE@ $(nodist_usbtest_module_SOURCES) \ @COND_i386_efi_TRUE@ usbtest.marker -@COND_i386_efi_TRUE@am__append_2465 = usbtest.mod -@COND_i386_efi_TRUE@am__append_2466 = usbtest.marker -@COND_i386_qemu_TRUE@am__append_2467 = usbtest.module -@COND_i386_qemu_TRUE@am__append_2468 = usbtest.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2469 = -@COND_i386_qemu_TRUE@am__append_2470 = $(nodist_usbtest_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2471 = \ +@COND_i386_efi_TRUE@am__append_2458 = usbtest.mod +@COND_i386_efi_TRUE@am__append_2459 = usbtest.marker +@COND_i386_qemu_TRUE@am__append_2460 = usbtest.module +@COND_i386_qemu_TRUE@am__append_2461 = usbtest.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2462 = +@COND_i386_qemu_TRUE@am__append_2463 = $(nodist_usbtest_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2464 = \ @COND_i386_qemu_TRUE@ $(nodist_usbtest_module_SOURCES) \ @COND_i386_qemu_TRUE@ usbtest.marker -@COND_i386_qemu_TRUE@am__append_2472 = usbtest.mod -@COND_i386_qemu_TRUE@am__append_2473 = usbtest.marker -@COND_i386_coreboot_TRUE@am__append_2474 = usbtest.module -@COND_i386_coreboot_TRUE@am__append_2475 = usbtest.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2476 = -@COND_i386_coreboot_TRUE@am__append_2477 = $(nodist_usbtest_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2478 = \ +@COND_i386_qemu_TRUE@am__append_2465 = usbtest.mod +@COND_i386_qemu_TRUE@am__append_2466 = usbtest.marker +@COND_i386_coreboot_TRUE@am__append_2467 = usbtest.module +@COND_i386_coreboot_TRUE@am__append_2468 = usbtest.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2469 = +@COND_i386_coreboot_TRUE@am__append_2470 = $(nodist_usbtest_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2471 = \ @COND_i386_coreboot_TRUE@ $(nodist_usbtest_module_SOURCES) \ @COND_i386_coreboot_TRUE@ usbtest.marker -@COND_i386_coreboot_TRUE@am__append_2479 = usbtest.mod -@COND_i386_coreboot_TRUE@am__append_2480 = usbtest.marker -@COND_i386_multiboot_TRUE@am__append_2481 = usbtest.module -@COND_i386_multiboot_TRUE@am__append_2482 = usbtest.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2483 = -@COND_i386_multiboot_TRUE@am__append_2484 = $(nodist_usbtest_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2485 = \ +@COND_i386_coreboot_TRUE@am__append_2472 = usbtest.mod +@COND_i386_coreboot_TRUE@am__append_2473 = usbtest.marker +@COND_i386_multiboot_TRUE@am__append_2474 = usbtest.module +@COND_i386_multiboot_TRUE@am__append_2475 = usbtest.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2476 = +@COND_i386_multiboot_TRUE@am__append_2477 = $(nodist_usbtest_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2478 = \ @COND_i386_multiboot_TRUE@ $(nodist_usbtest_module_SOURCES) \ @COND_i386_multiboot_TRUE@ usbtest.marker -@COND_i386_multiboot_TRUE@am__append_2486 = usbtest.mod -@COND_i386_multiboot_TRUE@am__append_2487 = usbtest.marker -@COND_i386_ieee1275_TRUE@am__append_2488 = usbtest.module -@COND_i386_ieee1275_TRUE@am__append_2489 = usbtest.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2490 = -@COND_i386_ieee1275_TRUE@am__append_2491 = $(nodist_usbtest_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2492 = \ +@COND_i386_multiboot_TRUE@am__append_2479 = usbtest.mod +@COND_i386_multiboot_TRUE@am__append_2480 = usbtest.marker +@COND_i386_ieee1275_TRUE@am__append_2481 = usbtest.module +@COND_i386_ieee1275_TRUE@am__append_2482 = usbtest.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2483 = +@COND_i386_ieee1275_TRUE@am__append_2484 = $(nodist_usbtest_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2485 = \ @COND_i386_ieee1275_TRUE@ $(nodist_usbtest_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ usbtest.marker -@COND_i386_ieee1275_TRUE@am__append_2493 = usbtest.mod -@COND_i386_ieee1275_TRUE@am__append_2494 = usbtest.marker -@COND_x86_64_efi_TRUE@am__append_2495 = usbtest.module -@COND_x86_64_efi_TRUE@am__append_2496 = usbtest.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2497 = -@COND_x86_64_efi_TRUE@am__append_2498 = $(nodist_usbtest_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2499 = \ +@COND_i386_ieee1275_TRUE@am__append_2486 = usbtest.mod +@COND_i386_ieee1275_TRUE@am__append_2487 = usbtest.marker +@COND_x86_64_efi_TRUE@am__append_2488 = usbtest.module +@COND_x86_64_efi_TRUE@am__append_2489 = usbtest.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2490 = +@COND_x86_64_efi_TRUE@am__append_2491 = $(nodist_usbtest_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2492 = \ @COND_x86_64_efi_TRUE@ $(nodist_usbtest_module_SOURCES) \ @COND_x86_64_efi_TRUE@ usbtest.marker -@COND_x86_64_efi_TRUE@am__append_2500 = usbtest.mod -@COND_x86_64_efi_TRUE@am__append_2501 = usbtest.marker -@COND_mips_loongson_TRUE@am__append_2502 = usbtest.module -@COND_mips_loongson_TRUE@am__append_2503 = usbtest.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_2504 = -@COND_mips_loongson_TRUE@am__append_2505 = $(nodist_usbtest_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_2506 = \ +@COND_x86_64_efi_TRUE@am__append_2493 = usbtest.mod +@COND_x86_64_efi_TRUE@am__append_2494 = usbtest.marker +@COND_mips_loongson_TRUE@am__append_2495 = usbtest.module +@COND_mips_loongson_TRUE@am__append_2496 = usbtest.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2497 = +@COND_mips_loongson_TRUE@am__append_2498 = $(nodist_usbtest_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_2499 = \ @COND_mips_loongson_TRUE@ $(nodist_usbtest_module_SOURCES) \ @COND_mips_loongson_TRUE@ usbtest.marker -@COND_mips_loongson_TRUE@am__append_2507 = usbtest.mod -@COND_mips_loongson_TRUE@am__append_2508 = usbtest.marker -@COND_arm_coreboot_TRUE@am__append_2509 = usbtest.module -@COND_arm_coreboot_TRUE@am__append_2510 = usbtest.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__append_2511 = -@COND_arm_coreboot_TRUE@am__append_2512 = $(nodist_usbtest_module_SOURCES) -@COND_arm_coreboot_TRUE@am__append_2513 = \ +@COND_mips_loongson_TRUE@am__append_2500 = usbtest.mod +@COND_mips_loongson_TRUE@am__append_2501 = usbtest.marker +@COND_arm_coreboot_TRUE@am__append_2502 = usbtest.module +@COND_arm_coreboot_TRUE@am__append_2503 = usbtest.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__append_2504 = +@COND_arm_coreboot_TRUE@am__append_2505 = $(nodist_usbtest_module_SOURCES) +@COND_arm_coreboot_TRUE@am__append_2506 = \ @COND_arm_coreboot_TRUE@ $(nodist_usbtest_module_SOURCES) \ @COND_arm_coreboot_TRUE@ usbtest.marker -@COND_arm_coreboot_TRUE@am__append_2514 = usbtest.mod -@COND_arm_coreboot_TRUE@am__append_2515 = usbtest.marker -@COND_i386_pc_TRUE@am__append_2516 = ata.module -@COND_i386_pc_TRUE@am__append_2517 = ata.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__append_2507 = usbtest.mod +@COND_arm_coreboot_TRUE@am__append_2508 = usbtest.marker +@COND_i386_pc_TRUE@am__append_2509 = ata.module +@COND_i386_pc_TRUE@am__append_2510 = ata.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_x86_64_efi_FALSE@ata_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2518 = -@COND_i386_pc_TRUE@am__append_2519 = $(nodist_ata_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2520 = $(nodist_ata_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2511 = +@COND_i386_pc_TRUE@am__append_2512 = $(nodist_ata_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2513 = $(nodist_ata_module_SOURCES) \ @COND_i386_pc_TRUE@ ata.marker -@COND_i386_pc_TRUE@am__append_2521 = ata.mod -@COND_i386_pc_TRUE@am__append_2522 = ata.marker -@COND_i386_efi_TRUE@am__append_2523 = ata.module -@COND_i386_efi_TRUE@am__append_2524 = ata.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2525 = -@COND_i386_efi_TRUE@am__append_2526 = $(nodist_ata_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2527 = $(nodist_ata_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2514 = ata.mod +@COND_i386_pc_TRUE@am__append_2515 = ata.marker +@COND_i386_efi_TRUE@am__append_2516 = ata.module +@COND_i386_efi_TRUE@am__append_2517 = ata.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2518 = +@COND_i386_efi_TRUE@am__append_2519 = $(nodist_ata_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2520 = $(nodist_ata_module_SOURCES) \ @COND_i386_efi_TRUE@ ata.marker -@COND_i386_efi_TRUE@am__append_2528 = ata.mod -@COND_i386_efi_TRUE@am__append_2529 = ata.marker -@COND_i386_qemu_TRUE@am__append_2530 = ata.module -@COND_i386_qemu_TRUE@am__append_2531 = ata.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2532 = -@COND_i386_qemu_TRUE@am__append_2533 = $(nodist_ata_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2534 = $(nodist_ata_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_2521 = ata.mod +@COND_i386_efi_TRUE@am__append_2522 = ata.marker +@COND_i386_qemu_TRUE@am__append_2523 = ata.module +@COND_i386_qemu_TRUE@am__append_2524 = ata.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2525 = +@COND_i386_qemu_TRUE@am__append_2526 = $(nodist_ata_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2527 = $(nodist_ata_module_SOURCES) \ @COND_i386_qemu_TRUE@ ata.marker -@COND_i386_qemu_TRUE@am__append_2535 = ata.mod -@COND_i386_qemu_TRUE@am__append_2536 = ata.marker -@COND_i386_coreboot_TRUE@am__append_2537 = ata.module -@COND_i386_coreboot_TRUE@am__append_2538 = ata.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2539 = -@COND_i386_coreboot_TRUE@am__append_2540 = $(nodist_ata_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2541 = \ +@COND_i386_qemu_TRUE@am__append_2528 = ata.mod +@COND_i386_qemu_TRUE@am__append_2529 = ata.marker +@COND_i386_coreboot_TRUE@am__append_2530 = ata.module +@COND_i386_coreboot_TRUE@am__append_2531 = ata.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2532 = +@COND_i386_coreboot_TRUE@am__append_2533 = $(nodist_ata_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2534 = \ @COND_i386_coreboot_TRUE@ $(nodist_ata_module_SOURCES) \ @COND_i386_coreboot_TRUE@ ata.marker -@COND_i386_coreboot_TRUE@am__append_2542 = ata.mod -@COND_i386_coreboot_TRUE@am__append_2543 = ata.marker -@COND_i386_multiboot_TRUE@am__append_2544 = ata.module -@COND_i386_multiboot_TRUE@am__append_2545 = ata.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2546 = -@COND_i386_multiboot_TRUE@am__append_2547 = $(nodist_ata_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2548 = \ +@COND_i386_coreboot_TRUE@am__append_2535 = ata.mod +@COND_i386_coreboot_TRUE@am__append_2536 = ata.marker +@COND_i386_multiboot_TRUE@am__append_2537 = ata.module +@COND_i386_multiboot_TRUE@am__append_2538 = ata.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2539 = +@COND_i386_multiboot_TRUE@am__append_2540 = $(nodist_ata_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2541 = \ @COND_i386_multiboot_TRUE@ $(nodist_ata_module_SOURCES) \ @COND_i386_multiboot_TRUE@ ata.marker -@COND_i386_multiboot_TRUE@am__append_2549 = ata.mod -@COND_i386_multiboot_TRUE@am__append_2550 = ata.marker -@COND_i386_ieee1275_TRUE@am__append_2551 = ata.module -@COND_i386_ieee1275_TRUE@am__append_2552 = ata.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2553 = -@COND_i386_ieee1275_TRUE@am__append_2554 = $(nodist_ata_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2555 = \ +@COND_i386_multiboot_TRUE@am__append_2542 = ata.mod +@COND_i386_multiboot_TRUE@am__append_2543 = ata.marker +@COND_i386_ieee1275_TRUE@am__append_2544 = ata.module +@COND_i386_ieee1275_TRUE@am__append_2545 = ata.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2546 = +@COND_i386_ieee1275_TRUE@am__append_2547 = $(nodist_ata_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2548 = \ @COND_i386_ieee1275_TRUE@ $(nodist_ata_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ ata.marker -@COND_i386_ieee1275_TRUE@am__append_2556 = ata.mod -@COND_i386_ieee1275_TRUE@am__append_2557 = ata.marker -@COND_x86_64_efi_TRUE@am__append_2558 = ata.module -@COND_x86_64_efi_TRUE@am__append_2559 = ata.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2560 = -@COND_x86_64_efi_TRUE@am__append_2561 = $(nodist_ata_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2562 = $(nodist_ata_module_SOURCES) \ +@COND_i386_ieee1275_TRUE@am__append_2549 = ata.mod +@COND_i386_ieee1275_TRUE@am__append_2550 = ata.marker +@COND_x86_64_efi_TRUE@am__append_2551 = ata.module +@COND_x86_64_efi_TRUE@am__append_2552 = ata.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2553 = +@COND_x86_64_efi_TRUE@am__append_2554 = $(nodist_ata_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2555 = $(nodist_ata_module_SOURCES) \ @COND_x86_64_efi_TRUE@ ata.marker -@COND_x86_64_efi_TRUE@am__append_2563 = ata.mod -@COND_x86_64_efi_TRUE@am__append_2564 = ata.marker -@COND_mips_loongson_TRUE@am__append_2565 = ata.module -@COND_mips_loongson_TRUE@am__append_2566 = ata.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_2567 = -@COND_mips_loongson_TRUE@am__append_2568 = $(nodist_ata_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_2569 = \ +@COND_x86_64_efi_TRUE@am__append_2556 = ata.mod +@COND_x86_64_efi_TRUE@am__append_2557 = ata.marker +@COND_mips_loongson_TRUE@am__append_2558 = ata.module +@COND_mips_loongson_TRUE@am__append_2559 = ata.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2560 = +@COND_mips_loongson_TRUE@am__append_2561 = $(nodist_ata_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_2562 = \ @COND_mips_loongson_TRUE@ $(nodist_ata_module_SOURCES) \ @COND_mips_loongson_TRUE@ ata.marker -@COND_mips_loongson_TRUE@am__append_2570 = ata.mod -@COND_mips_loongson_TRUE@am__append_2571 = ata.marker -@COND_mips_qemu_mips_TRUE@am__append_2572 = ata.module -@COND_mips_qemu_mips_TRUE@am__append_2573 = ata.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_2574 = -@COND_mips_qemu_mips_TRUE@am__append_2575 = $(nodist_ata_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_2576 = \ +@COND_mips_loongson_TRUE@am__append_2563 = ata.mod +@COND_mips_loongson_TRUE@am__append_2564 = ata.marker +@COND_mips_qemu_mips_TRUE@am__append_2565 = ata.module +@COND_mips_qemu_mips_TRUE@am__append_2566 = ata.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_2567 = +@COND_mips_qemu_mips_TRUE@am__append_2568 = $(nodist_ata_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_2569 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_ata_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ ata.marker -@COND_mips_qemu_mips_TRUE@am__append_2577 = ata.mod -@COND_mips_qemu_mips_TRUE@am__append_2578 = ata.marker -@COND_i386_pc_TRUE@am__append_2579 = ahci.module -@COND_i386_pc_TRUE@am__append_2580 = ahci.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_2570 = ata.mod +@COND_mips_qemu_mips_TRUE@am__append_2571 = ata.marker +@COND_i386_pc_TRUE@am__append_2572 = ahci.module +@COND_i386_pc_TRUE@am__append_2573 = ahci.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_mips_loongson_FALSE@@COND_x86_64_efi_FALSE@ahci_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2581 = -@COND_i386_pc_TRUE@am__append_2582 = $(nodist_ahci_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2583 = $(nodist_ahci_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2574 = +@COND_i386_pc_TRUE@am__append_2575 = $(nodist_ahci_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2576 = $(nodist_ahci_module_SOURCES) \ @COND_i386_pc_TRUE@ ahci.marker -@COND_i386_pc_TRUE@am__append_2584 = ahci.mod -@COND_i386_pc_TRUE@am__append_2585 = ahci.marker -@COND_i386_efi_TRUE@am__append_2586 = ahci.module -@COND_i386_efi_TRUE@am__append_2587 = ahci.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2588 = -@COND_i386_efi_TRUE@am__append_2589 = $(nodist_ahci_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2590 = $(nodist_ahci_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2577 = ahci.mod +@COND_i386_pc_TRUE@am__append_2578 = ahci.marker +@COND_i386_efi_TRUE@am__append_2579 = ahci.module +@COND_i386_efi_TRUE@am__append_2580 = ahci.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2581 = +@COND_i386_efi_TRUE@am__append_2582 = $(nodist_ahci_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2583 = $(nodist_ahci_module_SOURCES) \ @COND_i386_efi_TRUE@ ahci.marker -@COND_i386_efi_TRUE@am__append_2591 = ahci.mod -@COND_i386_efi_TRUE@am__append_2592 = ahci.marker -@COND_i386_qemu_TRUE@am__append_2593 = ahci.module -@COND_i386_qemu_TRUE@am__append_2594 = ahci.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2595 = -@COND_i386_qemu_TRUE@am__append_2596 = $(nodist_ahci_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2597 = $(nodist_ahci_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_2584 = ahci.mod +@COND_i386_efi_TRUE@am__append_2585 = ahci.marker +@COND_i386_qemu_TRUE@am__append_2586 = ahci.module +@COND_i386_qemu_TRUE@am__append_2587 = ahci.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2588 = +@COND_i386_qemu_TRUE@am__append_2589 = $(nodist_ahci_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2590 = $(nodist_ahci_module_SOURCES) \ @COND_i386_qemu_TRUE@ ahci.marker -@COND_i386_qemu_TRUE@am__append_2598 = ahci.mod -@COND_i386_qemu_TRUE@am__append_2599 = ahci.marker -@COND_i386_coreboot_TRUE@am__append_2600 = ahci.module -@COND_i386_coreboot_TRUE@am__append_2601 = ahci.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2602 = -@COND_i386_coreboot_TRUE@am__append_2603 = $(nodist_ahci_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2604 = \ +@COND_i386_qemu_TRUE@am__append_2591 = ahci.mod +@COND_i386_qemu_TRUE@am__append_2592 = ahci.marker +@COND_i386_coreboot_TRUE@am__append_2593 = ahci.module +@COND_i386_coreboot_TRUE@am__append_2594 = ahci.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2595 = +@COND_i386_coreboot_TRUE@am__append_2596 = $(nodist_ahci_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2597 = \ @COND_i386_coreboot_TRUE@ $(nodist_ahci_module_SOURCES) \ @COND_i386_coreboot_TRUE@ ahci.marker -@COND_i386_coreboot_TRUE@am__append_2605 = ahci.mod -@COND_i386_coreboot_TRUE@am__append_2606 = ahci.marker -@COND_i386_multiboot_TRUE@am__append_2607 = ahci.module -@COND_i386_multiboot_TRUE@am__append_2608 = ahci.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2609 = -@COND_i386_multiboot_TRUE@am__append_2610 = $(nodist_ahci_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2611 = \ +@COND_i386_coreboot_TRUE@am__append_2598 = ahci.mod +@COND_i386_coreboot_TRUE@am__append_2599 = ahci.marker +@COND_i386_multiboot_TRUE@am__append_2600 = ahci.module +@COND_i386_multiboot_TRUE@am__append_2601 = ahci.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2602 = +@COND_i386_multiboot_TRUE@am__append_2603 = $(nodist_ahci_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2604 = \ @COND_i386_multiboot_TRUE@ $(nodist_ahci_module_SOURCES) \ @COND_i386_multiboot_TRUE@ ahci.marker -@COND_i386_multiboot_TRUE@am__append_2612 = ahci.mod -@COND_i386_multiboot_TRUE@am__append_2613 = ahci.marker -@COND_i386_ieee1275_TRUE@am__append_2614 = ahci.module -@COND_i386_ieee1275_TRUE@am__append_2615 = ahci.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2616 = -@COND_i386_ieee1275_TRUE@am__append_2617 = $(nodist_ahci_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2618 = \ +@COND_i386_multiboot_TRUE@am__append_2605 = ahci.mod +@COND_i386_multiboot_TRUE@am__append_2606 = ahci.marker +@COND_i386_ieee1275_TRUE@am__append_2607 = ahci.module +@COND_i386_ieee1275_TRUE@am__append_2608 = ahci.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2609 = +@COND_i386_ieee1275_TRUE@am__append_2610 = $(nodist_ahci_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2611 = \ @COND_i386_ieee1275_TRUE@ $(nodist_ahci_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ ahci.marker -@COND_i386_ieee1275_TRUE@am__append_2619 = ahci.mod -@COND_i386_ieee1275_TRUE@am__append_2620 = ahci.marker -@COND_x86_64_efi_TRUE@am__append_2621 = ahci.module -@COND_x86_64_efi_TRUE@am__append_2622 = ahci.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2623 = -@COND_x86_64_efi_TRUE@am__append_2624 = $(nodist_ahci_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2625 = $(nodist_ahci_module_SOURCES) \ +@COND_i386_ieee1275_TRUE@am__append_2612 = ahci.mod +@COND_i386_ieee1275_TRUE@am__append_2613 = ahci.marker +@COND_x86_64_efi_TRUE@am__append_2614 = ahci.module +@COND_x86_64_efi_TRUE@am__append_2615 = ahci.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2616 = +@COND_x86_64_efi_TRUE@am__append_2617 = $(nodist_ahci_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2618 = $(nodist_ahci_module_SOURCES) \ @COND_x86_64_efi_TRUE@ ahci.marker -@COND_x86_64_efi_TRUE@am__append_2626 = ahci.mod -@COND_x86_64_efi_TRUE@am__append_2627 = ahci.marker -@COND_mips_loongson_TRUE@am__append_2628 = ahci.module -@COND_mips_loongson_TRUE@am__append_2629 = ahci.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_2630 = -@COND_mips_loongson_TRUE@am__append_2631 = $(nodist_ahci_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_2632 = \ +@COND_x86_64_efi_TRUE@am__append_2619 = ahci.mod +@COND_x86_64_efi_TRUE@am__append_2620 = ahci.marker +@COND_mips_loongson_TRUE@am__append_2621 = ahci.module +@COND_mips_loongson_TRUE@am__append_2622 = ahci.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2623 = +@COND_mips_loongson_TRUE@am__append_2624 = $(nodist_ahci_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_2625 = \ @COND_mips_loongson_TRUE@ $(nodist_ahci_module_SOURCES) \ @COND_mips_loongson_TRUE@ ahci.marker -@COND_mips_loongson_TRUE@am__append_2633 = ahci.mod -@COND_mips_loongson_TRUE@am__append_2634 = ahci.marker -@COND_i386_pc_TRUE@am__append_2635 = pata.module -@COND_i386_pc_TRUE@am__append_2636 = pata.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2626 = ahci.mod +@COND_mips_loongson_TRUE@am__append_2627 = ahci.marker +@COND_i386_pc_TRUE@am__append_2628 = pata.module +@COND_i386_pc_TRUE@am__append_2629 = pata.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_x86_64_efi_FALSE@pata_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2637 = -@COND_i386_pc_TRUE@am__append_2638 = $(nodist_pata_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2639 = $(nodist_pata_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2630 = +@COND_i386_pc_TRUE@am__append_2631 = $(nodist_pata_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2632 = $(nodist_pata_module_SOURCES) \ @COND_i386_pc_TRUE@ pata.marker -@COND_i386_pc_TRUE@am__append_2640 = pata.mod -@COND_i386_pc_TRUE@am__append_2641 = pata.marker -@COND_i386_efi_TRUE@am__append_2642 = pata.module -@COND_i386_efi_TRUE@am__append_2643 = pata.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2644 = -@COND_i386_efi_TRUE@am__append_2645 = $(nodist_pata_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2646 = $(nodist_pata_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2633 = pata.mod +@COND_i386_pc_TRUE@am__append_2634 = pata.marker +@COND_i386_efi_TRUE@am__append_2635 = pata.module +@COND_i386_efi_TRUE@am__append_2636 = pata.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2637 = +@COND_i386_efi_TRUE@am__append_2638 = $(nodist_pata_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2639 = $(nodist_pata_module_SOURCES) \ @COND_i386_efi_TRUE@ pata.marker -@COND_i386_efi_TRUE@am__append_2647 = pata.mod -@COND_i386_efi_TRUE@am__append_2648 = pata.marker -@COND_i386_qemu_TRUE@am__append_2649 = pata.module -@COND_i386_qemu_TRUE@am__append_2650 = pata.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2651 = -@COND_i386_qemu_TRUE@am__append_2652 = $(nodist_pata_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2653 = $(nodist_pata_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_2640 = pata.mod +@COND_i386_efi_TRUE@am__append_2641 = pata.marker +@COND_i386_qemu_TRUE@am__append_2642 = pata.module +@COND_i386_qemu_TRUE@am__append_2643 = pata.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2644 = +@COND_i386_qemu_TRUE@am__append_2645 = $(nodist_pata_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2646 = $(nodist_pata_module_SOURCES) \ @COND_i386_qemu_TRUE@ pata.marker -@COND_i386_qemu_TRUE@am__append_2654 = pata.mod -@COND_i386_qemu_TRUE@am__append_2655 = pata.marker -@COND_i386_coreboot_TRUE@am__append_2656 = pata.module -@COND_i386_coreboot_TRUE@am__append_2657 = pata.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2658 = -@COND_i386_coreboot_TRUE@am__append_2659 = $(nodist_pata_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2660 = \ +@COND_i386_qemu_TRUE@am__append_2647 = pata.mod +@COND_i386_qemu_TRUE@am__append_2648 = pata.marker +@COND_i386_coreboot_TRUE@am__append_2649 = pata.module +@COND_i386_coreboot_TRUE@am__append_2650 = pata.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2651 = +@COND_i386_coreboot_TRUE@am__append_2652 = $(nodist_pata_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2653 = \ @COND_i386_coreboot_TRUE@ $(nodist_pata_module_SOURCES) \ @COND_i386_coreboot_TRUE@ pata.marker -@COND_i386_coreboot_TRUE@am__append_2661 = pata.mod -@COND_i386_coreboot_TRUE@am__append_2662 = pata.marker -@COND_i386_multiboot_TRUE@am__append_2663 = pata.module -@COND_i386_multiboot_TRUE@am__append_2664 = pata.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2665 = -@COND_i386_multiboot_TRUE@am__append_2666 = $(nodist_pata_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2667 = \ +@COND_i386_coreboot_TRUE@am__append_2654 = pata.mod +@COND_i386_coreboot_TRUE@am__append_2655 = pata.marker +@COND_i386_multiboot_TRUE@am__append_2656 = pata.module +@COND_i386_multiboot_TRUE@am__append_2657 = pata.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2658 = +@COND_i386_multiboot_TRUE@am__append_2659 = $(nodist_pata_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2660 = \ @COND_i386_multiboot_TRUE@ $(nodist_pata_module_SOURCES) \ @COND_i386_multiboot_TRUE@ pata.marker -@COND_i386_multiboot_TRUE@am__append_2668 = pata.mod -@COND_i386_multiboot_TRUE@am__append_2669 = pata.marker -@COND_i386_ieee1275_TRUE@am__append_2670 = pata.module -@COND_i386_ieee1275_TRUE@am__append_2671 = pata.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2672 = -@COND_i386_ieee1275_TRUE@am__append_2673 = $(nodist_pata_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2674 = \ +@COND_i386_multiboot_TRUE@am__append_2661 = pata.mod +@COND_i386_multiboot_TRUE@am__append_2662 = pata.marker +@COND_i386_ieee1275_TRUE@am__append_2663 = pata.module +@COND_i386_ieee1275_TRUE@am__append_2664 = pata.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2665 = +@COND_i386_ieee1275_TRUE@am__append_2666 = $(nodist_pata_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2667 = \ @COND_i386_ieee1275_TRUE@ $(nodist_pata_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ pata.marker -@COND_i386_ieee1275_TRUE@am__append_2675 = pata.mod -@COND_i386_ieee1275_TRUE@am__append_2676 = pata.marker -@COND_x86_64_efi_TRUE@am__append_2677 = pata.module -@COND_x86_64_efi_TRUE@am__append_2678 = pata.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2679 = -@COND_x86_64_efi_TRUE@am__append_2680 = $(nodist_pata_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2681 = $(nodist_pata_module_SOURCES) \ +@COND_i386_ieee1275_TRUE@am__append_2668 = pata.mod +@COND_i386_ieee1275_TRUE@am__append_2669 = pata.marker +@COND_x86_64_efi_TRUE@am__append_2670 = pata.module +@COND_x86_64_efi_TRUE@am__append_2671 = pata.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2672 = +@COND_x86_64_efi_TRUE@am__append_2673 = $(nodist_pata_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2674 = $(nodist_pata_module_SOURCES) \ @COND_x86_64_efi_TRUE@ pata.marker -@COND_x86_64_efi_TRUE@am__append_2682 = pata.mod -@COND_x86_64_efi_TRUE@am__append_2683 = pata.marker -@COND_mips_loongson_TRUE@am__append_2684 = pata.module -@COND_mips_loongson_TRUE@am__append_2685 = pata.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_2686 = -@COND_mips_loongson_TRUE@am__append_2687 = $(nodist_pata_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_2688 = \ +@COND_x86_64_efi_TRUE@am__append_2675 = pata.mod +@COND_x86_64_efi_TRUE@am__append_2676 = pata.marker +@COND_mips_loongson_TRUE@am__append_2677 = pata.module +@COND_mips_loongson_TRUE@am__append_2678 = pata.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2679 = +@COND_mips_loongson_TRUE@am__append_2680 = $(nodist_pata_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_2681 = \ @COND_mips_loongson_TRUE@ $(nodist_pata_module_SOURCES) \ @COND_mips_loongson_TRUE@ pata.marker -@COND_mips_loongson_TRUE@am__append_2689 = pata.mod -@COND_mips_loongson_TRUE@am__append_2690 = pata.marker -@COND_mips_qemu_mips_TRUE@am__append_2691 = pata.module -@COND_mips_qemu_mips_TRUE@am__append_2692 = pata.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_2693 = -@COND_mips_qemu_mips_TRUE@am__append_2694 = $(nodist_pata_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_2695 = \ +@COND_mips_loongson_TRUE@am__append_2682 = pata.mod +@COND_mips_loongson_TRUE@am__append_2683 = pata.marker +@COND_mips_qemu_mips_TRUE@am__append_2684 = pata.module +@COND_mips_qemu_mips_TRUE@am__append_2685 = pata.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_2686 = +@COND_mips_qemu_mips_TRUE@am__append_2687 = $(nodist_pata_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_2688 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_pata_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ pata.marker -@COND_mips_qemu_mips_TRUE@am__append_2696 = pata.mod -@COND_mips_qemu_mips_TRUE@am__append_2697 = pata.marker -@COND_i386_pc_TRUE@am__append_2698 = biosdisk.module usbms.module -@COND_i386_pc_TRUE@am__append_2699 = biosdisk.module$(EXEEXT) \ +@COND_mips_qemu_mips_TRUE@am__append_2689 = pata.mod +@COND_mips_qemu_mips_TRUE@am__append_2690 = pata.marker +@COND_i386_pc_TRUE@am__append_2691 = biosdisk.module usbms.module +@COND_i386_pc_TRUE@am__append_2692 = biosdisk.module$(EXEEXT) \ @COND_i386_pc_TRUE@ usbms.module$(EXEEXT) @COND_i386_pc_FALSE@biosdisk_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2700 = -@COND_i386_pc_TRUE@am__append_2701 = \ +@COND_i386_pc_TRUE@am__append_2693 = +@COND_i386_pc_TRUE@am__append_2694 = \ @COND_i386_pc_TRUE@ $(nodist_biosdisk_module_SOURCES) \ @COND_i386_pc_TRUE@ $(nodist_usbms_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2702 = \ +@COND_i386_pc_TRUE@am__append_2695 = \ @COND_i386_pc_TRUE@ $(nodist_biosdisk_module_SOURCES) \ @COND_i386_pc_TRUE@ biosdisk.marker \ @COND_i386_pc_TRUE@ $(nodist_usbms_module_SOURCES) usbms.marker -@COND_i386_pc_TRUE@am__append_2703 = biosdisk.mod usbms.mod -@COND_i386_pc_TRUE@am__append_2704 = biosdisk.marker usbms.marker +@COND_i386_pc_TRUE@am__append_2696 = biosdisk.mod usbms.mod +@COND_i386_pc_TRUE@am__append_2697 = biosdisk.marker usbms.marker @COND_arm_coreboot_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_mips_loongson_FALSE@@COND_x86_64_efi_FALSE@usbms_module_DEPENDENCIES = -@COND_i386_efi_TRUE@am__append_2705 = usbms.module -@COND_i386_efi_TRUE@am__append_2706 = usbms.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2707 = -@COND_i386_efi_TRUE@am__append_2708 = $(nodist_usbms_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2709 = $(nodist_usbms_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_2698 = usbms.module +@COND_i386_efi_TRUE@am__append_2699 = usbms.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2700 = +@COND_i386_efi_TRUE@am__append_2701 = $(nodist_usbms_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2702 = $(nodist_usbms_module_SOURCES) \ @COND_i386_efi_TRUE@ usbms.marker -@COND_i386_efi_TRUE@am__append_2710 = usbms.mod -@COND_i386_efi_TRUE@am__append_2711 = usbms.marker -@COND_i386_qemu_TRUE@am__append_2712 = usbms.module -@COND_i386_qemu_TRUE@am__append_2713 = usbms.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2714 = -@COND_i386_qemu_TRUE@am__append_2715 = $(nodist_usbms_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2716 = $(nodist_usbms_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_2703 = usbms.mod +@COND_i386_efi_TRUE@am__append_2704 = usbms.marker +@COND_i386_qemu_TRUE@am__append_2705 = usbms.module +@COND_i386_qemu_TRUE@am__append_2706 = usbms.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2707 = +@COND_i386_qemu_TRUE@am__append_2708 = $(nodist_usbms_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2709 = $(nodist_usbms_module_SOURCES) \ @COND_i386_qemu_TRUE@ usbms.marker -@COND_i386_qemu_TRUE@am__append_2717 = usbms.mod -@COND_i386_qemu_TRUE@am__append_2718 = usbms.marker -@COND_i386_coreboot_TRUE@am__append_2719 = usbms.module -@COND_i386_coreboot_TRUE@am__append_2720 = usbms.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2721 = -@COND_i386_coreboot_TRUE@am__append_2722 = $(nodist_usbms_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2723 = \ +@COND_i386_qemu_TRUE@am__append_2710 = usbms.mod +@COND_i386_qemu_TRUE@am__append_2711 = usbms.marker +@COND_i386_coreboot_TRUE@am__append_2712 = usbms.module +@COND_i386_coreboot_TRUE@am__append_2713 = usbms.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2714 = +@COND_i386_coreboot_TRUE@am__append_2715 = $(nodist_usbms_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2716 = \ @COND_i386_coreboot_TRUE@ $(nodist_usbms_module_SOURCES) \ @COND_i386_coreboot_TRUE@ usbms.marker -@COND_i386_coreboot_TRUE@am__append_2724 = usbms.mod -@COND_i386_coreboot_TRUE@am__append_2725 = usbms.marker -@COND_i386_multiboot_TRUE@am__append_2726 = usbms.module -@COND_i386_multiboot_TRUE@am__append_2727 = usbms.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2728 = -@COND_i386_multiboot_TRUE@am__append_2729 = $(nodist_usbms_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2730 = \ +@COND_i386_coreboot_TRUE@am__append_2717 = usbms.mod +@COND_i386_coreboot_TRUE@am__append_2718 = usbms.marker +@COND_i386_multiboot_TRUE@am__append_2719 = usbms.module +@COND_i386_multiboot_TRUE@am__append_2720 = usbms.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2721 = +@COND_i386_multiboot_TRUE@am__append_2722 = $(nodist_usbms_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2723 = \ @COND_i386_multiboot_TRUE@ $(nodist_usbms_module_SOURCES) \ @COND_i386_multiboot_TRUE@ usbms.marker -@COND_i386_multiboot_TRUE@am__append_2731 = usbms.mod -@COND_i386_multiboot_TRUE@am__append_2732 = usbms.marker -@COND_i386_ieee1275_TRUE@am__append_2733 = usbms.module -@COND_i386_ieee1275_TRUE@am__append_2734 = usbms.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2735 = -@COND_i386_ieee1275_TRUE@am__append_2736 = $(nodist_usbms_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2737 = \ +@COND_i386_multiboot_TRUE@am__append_2724 = usbms.mod +@COND_i386_multiboot_TRUE@am__append_2725 = usbms.marker +@COND_i386_ieee1275_TRUE@am__append_2726 = usbms.module +@COND_i386_ieee1275_TRUE@am__append_2727 = usbms.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2728 = +@COND_i386_ieee1275_TRUE@am__append_2729 = $(nodist_usbms_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2730 = \ @COND_i386_ieee1275_TRUE@ $(nodist_usbms_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ usbms.marker -@COND_i386_ieee1275_TRUE@am__append_2738 = usbms.mod -@COND_i386_ieee1275_TRUE@am__append_2739 = usbms.marker -@COND_x86_64_efi_TRUE@am__append_2740 = usbms.module -@COND_x86_64_efi_TRUE@am__append_2741 = usbms.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2742 = -@COND_x86_64_efi_TRUE@am__append_2743 = $(nodist_usbms_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2744 = \ +@COND_i386_ieee1275_TRUE@am__append_2731 = usbms.mod +@COND_i386_ieee1275_TRUE@am__append_2732 = usbms.marker +@COND_x86_64_efi_TRUE@am__append_2733 = usbms.module +@COND_x86_64_efi_TRUE@am__append_2734 = usbms.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2735 = +@COND_x86_64_efi_TRUE@am__append_2736 = $(nodist_usbms_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2737 = \ @COND_x86_64_efi_TRUE@ $(nodist_usbms_module_SOURCES) \ @COND_x86_64_efi_TRUE@ usbms.marker -@COND_x86_64_efi_TRUE@am__append_2745 = usbms.mod -@COND_x86_64_efi_TRUE@am__append_2746 = usbms.marker -@COND_mips_loongson_TRUE@am__append_2747 = usbms.module -@COND_mips_loongson_TRUE@am__append_2748 = usbms.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_2749 = -@COND_mips_loongson_TRUE@am__append_2750 = $(nodist_usbms_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_2751 = \ +@COND_x86_64_efi_TRUE@am__append_2738 = usbms.mod +@COND_x86_64_efi_TRUE@am__append_2739 = usbms.marker +@COND_mips_loongson_TRUE@am__append_2740 = usbms.module +@COND_mips_loongson_TRUE@am__append_2741 = usbms.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_2742 = +@COND_mips_loongson_TRUE@am__append_2743 = $(nodist_usbms_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_2744 = \ @COND_mips_loongson_TRUE@ $(nodist_usbms_module_SOURCES) \ @COND_mips_loongson_TRUE@ usbms.marker -@COND_mips_loongson_TRUE@am__append_2752 = usbms.mod -@COND_mips_loongson_TRUE@am__append_2753 = usbms.marker -@COND_arm_coreboot_TRUE@am__append_2754 = usbms.module -@COND_arm_coreboot_TRUE@am__append_2755 = usbms.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__append_2756 = -@COND_arm_coreboot_TRUE@am__append_2757 = $(nodist_usbms_module_SOURCES) -@COND_arm_coreboot_TRUE@am__append_2758 = \ +@COND_mips_loongson_TRUE@am__append_2745 = usbms.mod +@COND_mips_loongson_TRUE@am__append_2746 = usbms.marker +@COND_arm_coreboot_TRUE@am__append_2747 = usbms.module +@COND_arm_coreboot_TRUE@am__append_2748 = usbms.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__append_2749 = +@COND_arm_coreboot_TRUE@am__append_2750 = $(nodist_usbms_module_SOURCES) +@COND_arm_coreboot_TRUE@am__append_2751 = \ @COND_arm_coreboot_TRUE@ $(nodist_usbms_module_SOURCES) \ @COND_arm_coreboot_TRUE@ usbms.marker -@COND_arm_coreboot_TRUE@am__append_2759 = usbms.mod -@COND_arm_coreboot_TRUE@am__append_2760 = usbms.marker -@COND_i386_ieee1275_TRUE@am__append_2761 = nand.module -@COND_i386_ieee1275_TRUE@am__append_2762 = nand.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__append_2752 = usbms.mod +@COND_arm_coreboot_TRUE@am__append_2753 = usbms.marker +@COND_i386_ieee1275_TRUE@am__append_2754 = nand.module +@COND_i386_ieee1275_TRUE@am__append_2755 = nand.module$(EXEEXT) @COND_i386_ieee1275_FALSE@nand_module_DEPENDENCIES = -@COND_i386_ieee1275_TRUE@am__append_2763 = -@COND_i386_ieee1275_TRUE@am__append_2764 = $(nodist_nand_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2765 = \ +@COND_i386_ieee1275_TRUE@am__append_2756 = +@COND_i386_ieee1275_TRUE@am__append_2757 = $(nodist_nand_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2758 = \ @COND_i386_ieee1275_TRUE@ $(nodist_nand_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ nand.marker -@COND_i386_ieee1275_TRUE@am__append_2766 = nand.mod -@COND_i386_ieee1275_TRUE@am__append_2767 = nand.marker -@COND_i386_pc_TRUE@am__append_2768 = efiemu.module -@COND_i386_pc_TRUE@am__append_2769 = efiemu.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2759 = nand.mod +@COND_i386_ieee1275_TRUE@am__append_2760 = nand.marker +@COND_i386_pc_TRUE@am__append_2761 = efiemu.module +@COND_i386_pc_TRUE@am__append_2762 = efiemu.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@efiemu_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2770 = efiemu/prepare.c efiemu/loadcore.c efiemu/runtime/efiemu.S efiemu/runtime/efiemu.c -@COND_i386_pc_TRUE@am__append_2771 = $(nodist_efiemu_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2772 = $(nodist_efiemu_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2763 = efiemu/prepare.c efiemu/loadcore.c efiemu/runtime/efiemu.S efiemu/runtime/efiemu.c +@COND_i386_pc_TRUE@am__append_2764 = $(nodist_efiemu_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2765 = $(nodist_efiemu_module_SOURCES) \ @COND_i386_pc_TRUE@ efiemu.marker -@COND_i386_pc_TRUE@am__append_2773 = efiemu.mod -@COND_i386_pc_TRUE@am__append_2774 = efiemu.marker -@COND_i386_qemu_TRUE@am__append_2775 = efiemu.module -@COND_i386_qemu_TRUE@am__append_2776 = efiemu.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2777 = efiemu/prepare.c efiemu/loadcore.c efiemu/runtime/efiemu.S efiemu/runtime/efiemu.c -@COND_i386_qemu_TRUE@am__append_2778 = $(nodist_efiemu_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2779 = \ +@COND_i386_pc_TRUE@am__append_2766 = efiemu.mod +@COND_i386_pc_TRUE@am__append_2767 = efiemu.marker +@COND_i386_qemu_TRUE@am__append_2768 = efiemu.module +@COND_i386_qemu_TRUE@am__append_2769 = efiemu.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2770 = efiemu/prepare.c efiemu/loadcore.c efiemu/runtime/efiemu.S efiemu/runtime/efiemu.c +@COND_i386_qemu_TRUE@am__append_2771 = $(nodist_efiemu_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2772 = \ @COND_i386_qemu_TRUE@ $(nodist_efiemu_module_SOURCES) \ @COND_i386_qemu_TRUE@ efiemu.marker -@COND_i386_qemu_TRUE@am__append_2780 = efiemu.mod -@COND_i386_qemu_TRUE@am__append_2781 = efiemu.marker -@COND_i386_coreboot_TRUE@am__append_2782 = efiemu.module -@COND_i386_coreboot_TRUE@am__append_2783 = efiemu.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_2784 = efiemu/prepare.c efiemu/loadcore.c efiemu/runtime/efiemu.S efiemu/runtime/efiemu.c -@COND_i386_coreboot_TRUE@am__append_2785 = $(nodist_efiemu_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_2786 = \ +@COND_i386_qemu_TRUE@am__append_2773 = efiemu.mod +@COND_i386_qemu_TRUE@am__append_2774 = efiemu.marker +@COND_i386_coreboot_TRUE@am__append_2775 = efiemu.module +@COND_i386_coreboot_TRUE@am__append_2776 = efiemu.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_2777 = efiemu/prepare.c efiemu/loadcore.c efiemu/runtime/efiemu.S efiemu/runtime/efiemu.c +@COND_i386_coreboot_TRUE@am__append_2778 = $(nodist_efiemu_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_2779 = \ @COND_i386_coreboot_TRUE@ $(nodist_efiemu_module_SOURCES) \ @COND_i386_coreboot_TRUE@ efiemu.marker -@COND_i386_coreboot_TRUE@am__append_2787 = efiemu.mod -@COND_i386_coreboot_TRUE@am__append_2788 = efiemu.marker -@COND_i386_multiboot_TRUE@am__append_2789 = efiemu.module -@COND_i386_multiboot_TRUE@am__append_2790 = efiemu.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2791 = efiemu/prepare.c efiemu/loadcore.c efiemu/runtime/efiemu.S efiemu/runtime/efiemu.c -@COND_i386_multiboot_TRUE@am__append_2792 = $(nodist_efiemu_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2793 = \ +@COND_i386_coreboot_TRUE@am__append_2780 = efiemu.mod +@COND_i386_coreboot_TRUE@am__append_2781 = efiemu.marker +@COND_i386_multiboot_TRUE@am__append_2782 = efiemu.module +@COND_i386_multiboot_TRUE@am__append_2783 = efiemu.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2784 = efiemu/prepare.c efiemu/loadcore.c efiemu/runtime/efiemu.S efiemu/runtime/efiemu.c +@COND_i386_multiboot_TRUE@am__append_2785 = $(nodist_efiemu_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2786 = \ @COND_i386_multiboot_TRUE@ $(nodist_efiemu_module_SOURCES) \ @COND_i386_multiboot_TRUE@ efiemu.marker -@COND_i386_multiboot_TRUE@am__append_2794 = efiemu.mod -@COND_i386_multiboot_TRUE@am__append_2795 = efiemu.marker -@COND_i386_ieee1275_TRUE@am__append_2796 = efiemu.module -@COND_i386_ieee1275_TRUE@am__append_2797 = efiemu.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2798 = efiemu/prepare.c efiemu/loadcore.c efiemu/runtime/efiemu.S efiemu/runtime/efiemu.c -@COND_i386_ieee1275_TRUE@am__append_2799 = $(nodist_efiemu_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2800 = \ +@COND_i386_multiboot_TRUE@am__append_2787 = efiemu.mod +@COND_i386_multiboot_TRUE@am__append_2788 = efiemu.marker +@COND_i386_ieee1275_TRUE@am__append_2789 = efiemu.module +@COND_i386_ieee1275_TRUE@am__append_2790 = efiemu.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2791 = efiemu/prepare.c efiemu/loadcore.c efiemu/runtime/efiemu.S efiemu/runtime/efiemu.c +@COND_i386_ieee1275_TRUE@am__append_2792 = $(nodist_efiemu_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2793 = \ @COND_i386_ieee1275_TRUE@ $(nodist_efiemu_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ efiemu.marker -@COND_i386_ieee1275_TRUE@am__append_2801 = efiemu.mod -@COND_i386_ieee1275_TRUE@am__append_2802 = efiemu.marker -@COND_emu_TRUE@am__append_2803 = font.module -@COND_emu_TRUE@am__append_2804 = font.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2794 = efiemu.mod +@COND_i386_ieee1275_TRUE@am__append_2795 = efiemu.marker +@COND_emu_TRUE@am__append_2796 = font.module +@COND_emu_TRUE@am__append_2797 = font.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@font_module_DEPENDENCIES = -@COND_emu_TRUE@am__append_2805 = -@COND_emu_TRUE@am__append_2806 = $(nodist_font_module_SOURCES) -@COND_emu_TRUE@am__append_2807 = $(nodist_font_module_SOURCES) \ +@COND_emu_TRUE@am__append_2798 = +@COND_emu_TRUE@am__append_2799 = $(nodist_font_module_SOURCES) +@COND_emu_TRUE@am__append_2800 = $(nodist_font_module_SOURCES) \ @COND_emu_TRUE@ font.marker -@COND_emu_TRUE@am__append_2808 = font.mod -@COND_emu_TRUE@am__append_2809 = font.marker -@COND_i386_pc_TRUE@am__append_2810 = font.module -@COND_i386_pc_TRUE@am__append_2811 = font.module$(EXEEXT) -@COND_i386_pc_TRUE@am__append_2812 = -@COND_i386_pc_TRUE@am__append_2813 = $(nodist_font_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2814 = $(nodist_font_module_SOURCES) \ +@COND_emu_TRUE@am__append_2801 = font.mod +@COND_emu_TRUE@am__append_2802 = font.marker +@COND_i386_pc_TRUE@am__append_2803 = font.module +@COND_i386_pc_TRUE@am__append_2804 = font.module$(EXEEXT) +@COND_i386_pc_TRUE@am__append_2805 = +@COND_i386_pc_TRUE@am__append_2806 = $(nodist_font_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2807 = $(nodist_font_module_SOURCES) \ @COND_i386_pc_TRUE@ font.marker -@COND_i386_pc_TRUE@am__append_2815 = font.mod -@COND_i386_pc_TRUE@am__append_2816 = font.marker -@COND_i386_efi_TRUE@am__append_2817 = font.module -@COND_i386_efi_TRUE@am__append_2818 = font.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2819 = -@COND_i386_efi_TRUE@am__append_2820 = $(nodist_font_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2821 = $(nodist_font_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2808 = font.mod +@COND_i386_pc_TRUE@am__append_2809 = font.marker +@COND_i386_efi_TRUE@am__append_2810 = font.module +@COND_i386_efi_TRUE@am__append_2811 = font.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2812 = +@COND_i386_efi_TRUE@am__append_2813 = $(nodist_font_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2814 = $(nodist_font_module_SOURCES) \ @COND_i386_efi_TRUE@ font.marker -@COND_i386_efi_TRUE@am__append_2822 = font.mod -@COND_i386_efi_TRUE@am__append_2823 = font.marker -@COND_i386_qemu_TRUE@am__append_2824 = font.module -@COND_i386_qemu_TRUE@am__append_2825 = font.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2826 = -@COND_i386_qemu_TRUE@am__append_2827 = $(nodist_font_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2828 = $(nodist_font_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_2815 = font.mod +@COND_i386_efi_TRUE@am__append_2816 = font.marker +@COND_i386_qemu_TRUE@am__append_2817 = font.module +@COND_i386_qemu_TRUE@am__append_2818 = font.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2819 = +@COND_i386_qemu_TRUE@am__append_2820 = $(nodist_font_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2821 = $(nodist_font_module_SOURCES) \ @COND_i386_qemu_TRUE@ font.marker -@COND_i386_qemu_TRUE@am__append_2829 = font.mod -@COND_i386_qemu_TRUE@am__append_2830 = font.marker -@COND_i386_multiboot_TRUE@am__append_2831 = font.module -@COND_i386_multiboot_TRUE@am__append_2832 = font.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2833 = -@COND_i386_multiboot_TRUE@am__append_2834 = $(nodist_font_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2835 = \ +@COND_i386_qemu_TRUE@am__append_2822 = font.mod +@COND_i386_qemu_TRUE@am__append_2823 = font.marker +@COND_i386_multiboot_TRUE@am__append_2824 = font.module +@COND_i386_multiboot_TRUE@am__append_2825 = font.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2826 = +@COND_i386_multiboot_TRUE@am__append_2827 = $(nodist_font_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2828 = \ @COND_i386_multiboot_TRUE@ $(nodist_font_module_SOURCES) \ @COND_i386_multiboot_TRUE@ font.marker -@COND_i386_multiboot_TRUE@am__append_2836 = font.mod -@COND_i386_multiboot_TRUE@am__append_2837 = font.marker -@COND_i386_ieee1275_TRUE@am__append_2838 = font.module -@COND_i386_ieee1275_TRUE@am__append_2839 = font.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2840 = -@COND_i386_ieee1275_TRUE@am__append_2841 = $(nodist_font_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2842 = \ +@COND_i386_multiboot_TRUE@am__append_2829 = font.mod +@COND_i386_multiboot_TRUE@am__append_2830 = font.marker +@COND_i386_ieee1275_TRUE@am__append_2831 = font.module +@COND_i386_ieee1275_TRUE@am__append_2832 = font.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2833 = +@COND_i386_ieee1275_TRUE@am__append_2834 = $(nodist_font_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2835 = \ @COND_i386_ieee1275_TRUE@ $(nodist_font_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ font.marker -@COND_i386_ieee1275_TRUE@am__append_2843 = font.mod -@COND_i386_ieee1275_TRUE@am__append_2844 = font.marker -@COND_x86_64_efi_TRUE@am__append_2845 = font.module -@COND_x86_64_efi_TRUE@am__append_2846 = font.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2847 = -@COND_x86_64_efi_TRUE@am__append_2848 = $(nodist_font_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2849 = $(nodist_font_module_SOURCES) \ +@COND_i386_ieee1275_TRUE@am__append_2836 = font.mod +@COND_i386_ieee1275_TRUE@am__append_2837 = font.marker +@COND_x86_64_efi_TRUE@am__append_2838 = font.module +@COND_x86_64_efi_TRUE@am__append_2839 = font.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2840 = +@COND_x86_64_efi_TRUE@am__append_2841 = $(nodist_font_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2842 = $(nodist_font_module_SOURCES) \ @COND_x86_64_efi_TRUE@ font.marker -@COND_x86_64_efi_TRUE@am__append_2850 = font.mod -@COND_x86_64_efi_TRUE@am__append_2851 = font.marker -@COND_i386_xen_TRUE@am__append_2852 = font.module -@COND_i386_xen_TRUE@am__append_2853 = font.module$(EXEEXT) -@COND_i386_xen_TRUE@am__append_2854 = -@COND_i386_xen_TRUE@am__append_2855 = $(nodist_font_module_SOURCES) -@COND_i386_xen_TRUE@am__append_2856 = $(nodist_font_module_SOURCES) \ +@COND_x86_64_efi_TRUE@am__append_2843 = font.mod +@COND_x86_64_efi_TRUE@am__append_2844 = font.marker +@COND_i386_xen_TRUE@am__append_2845 = font.module +@COND_i386_xen_TRUE@am__append_2846 = font.module$(EXEEXT) +@COND_i386_xen_TRUE@am__append_2847 = +@COND_i386_xen_TRUE@am__append_2848 = $(nodist_font_module_SOURCES) +@COND_i386_xen_TRUE@am__append_2849 = $(nodist_font_module_SOURCES) \ @COND_i386_xen_TRUE@ font.marker -@COND_i386_xen_TRUE@am__append_2857 = font.mod -@COND_i386_xen_TRUE@am__append_2858 = font.marker -@COND_x86_64_xen_TRUE@am__append_2859 = font.module -@COND_x86_64_xen_TRUE@am__append_2860 = font.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__append_2861 = -@COND_x86_64_xen_TRUE@am__append_2862 = $(nodist_font_module_SOURCES) -@COND_x86_64_xen_TRUE@am__append_2863 = $(nodist_font_module_SOURCES) \ +@COND_i386_xen_TRUE@am__append_2850 = font.mod +@COND_i386_xen_TRUE@am__append_2851 = font.marker +@COND_x86_64_xen_TRUE@am__append_2852 = font.module +@COND_x86_64_xen_TRUE@am__append_2853 = font.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__append_2854 = +@COND_x86_64_xen_TRUE@am__append_2855 = $(nodist_font_module_SOURCES) +@COND_x86_64_xen_TRUE@am__append_2856 = $(nodist_font_module_SOURCES) \ @COND_x86_64_xen_TRUE@ font.marker -@COND_x86_64_xen_TRUE@am__append_2864 = font.mod -@COND_x86_64_xen_TRUE@am__append_2865 = font.marker -@COND_i386_xen_pvh_TRUE@am__append_2866 = font.module -@COND_i386_xen_pvh_TRUE@am__append_2867 = font.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_2868 = -@COND_i386_xen_pvh_TRUE@am__append_2869 = $(nodist_font_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_2870 = \ +@COND_x86_64_xen_TRUE@am__append_2857 = font.mod +@COND_x86_64_xen_TRUE@am__append_2858 = font.marker +@COND_i386_xen_pvh_TRUE@am__append_2859 = font.module +@COND_i386_xen_pvh_TRUE@am__append_2860 = font.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_2861 = +@COND_i386_xen_pvh_TRUE@am__append_2862 = $(nodist_font_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_2863 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_font_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ font.marker -@COND_i386_xen_pvh_TRUE@am__append_2871 = font.mod -@COND_i386_xen_pvh_TRUE@am__append_2872 = font.marker -@COND_sparc64_ieee1275_TRUE@am__append_2873 = font.module -@COND_sparc64_ieee1275_TRUE@am__append_2874 = font.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__append_2875 = -@COND_sparc64_ieee1275_TRUE@am__append_2876 = $(nodist_font_module_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_2877 = \ +@COND_i386_xen_pvh_TRUE@am__append_2864 = font.mod +@COND_i386_xen_pvh_TRUE@am__append_2865 = font.marker +@COND_sparc64_ieee1275_TRUE@am__append_2866 = font.module +@COND_sparc64_ieee1275_TRUE@am__append_2867 = font.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__append_2868 = +@COND_sparc64_ieee1275_TRUE@am__append_2869 = $(nodist_font_module_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_2870 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_font_module_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ font.marker -@COND_sparc64_ieee1275_TRUE@am__append_2878 = font.mod -@COND_sparc64_ieee1275_TRUE@am__append_2879 = font.marker -@COND_powerpc_ieee1275_TRUE@am__append_2880 = font.module -@COND_powerpc_ieee1275_TRUE@am__append_2881 = font.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__append_2882 = -@COND_powerpc_ieee1275_TRUE@am__append_2883 = $(nodist_font_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_2884 = \ +@COND_sparc64_ieee1275_TRUE@am__append_2871 = font.mod +@COND_sparc64_ieee1275_TRUE@am__append_2872 = font.marker +@COND_powerpc_ieee1275_TRUE@am__append_2873 = font.module +@COND_powerpc_ieee1275_TRUE@am__append_2874 = font.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_2875 = +@COND_powerpc_ieee1275_TRUE@am__append_2876 = $(nodist_font_module_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_2877 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_font_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ font.marker -@COND_powerpc_ieee1275_TRUE@am__append_2885 = font.mod -@COND_powerpc_ieee1275_TRUE@am__append_2886 = font.marker -@COND_mips_arc_TRUE@am__append_2887 = font.module -@COND_mips_arc_TRUE@am__append_2888 = font.module$(EXEEXT) -@COND_mips_arc_TRUE@am__append_2889 = -@COND_mips_arc_TRUE@am__append_2890 = $(nodist_font_module_SOURCES) -@COND_mips_arc_TRUE@am__append_2891 = $(nodist_font_module_SOURCES) \ +@COND_powerpc_ieee1275_TRUE@am__append_2878 = font.mod +@COND_powerpc_ieee1275_TRUE@am__append_2879 = font.marker +@COND_mips_arc_TRUE@am__append_2880 = font.module +@COND_mips_arc_TRUE@am__append_2881 = font.module$(EXEEXT) +@COND_mips_arc_TRUE@am__append_2882 = +@COND_mips_arc_TRUE@am__append_2883 = $(nodist_font_module_SOURCES) +@COND_mips_arc_TRUE@am__append_2884 = $(nodist_font_module_SOURCES) \ @COND_mips_arc_TRUE@ font.marker -@COND_mips_arc_TRUE@am__append_2892 = font.mod -@COND_mips_arc_TRUE@am__append_2893 = font.marker -@COND_ia64_efi_TRUE@am__append_2894 = font.module -@COND_ia64_efi_TRUE@am__append_2895 = font.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_2896 = -@COND_ia64_efi_TRUE@am__append_2897 = $(nodist_font_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_2898 = $(nodist_font_module_SOURCES) \ +@COND_mips_arc_TRUE@am__append_2885 = font.mod +@COND_mips_arc_TRUE@am__append_2886 = font.marker +@COND_ia64_efi_TRUE@am__append_2887 = font.module +@COND_ia64_efi_TRUE@am__append_2888 = font.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_2889 = +@COND_ia64_efi_TRUE@am__append_2890 = $(nodist_font_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_2891 = $(nodist_font_module_SOURCES) \ @COND_ia64_efi_TRUE@ font.marker -@COND_ia64_efi_TRUE@am__append_2899 = font.mod -@COND_ia64_efi_TRUE@am__append_2900 = font.marker -@COND_mips_qemu_mips_TRUE@am__append_2901 = font.module -@COND_mips_qemu_mips_TRUE@am__append_2902 = font.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_2903 = -@COND_mips_qemu_mips_TRUE@am__append_2904 = $(nodist_font_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_2905 = \ +@COND_ia64_efi_TRUE@am__append_2892 = font.mod +@COND_ia64_efi_TRUE@am__append_2893 = font.marker +@COND_mips_qemu_mips_TRUE@am__append_2894 = font.module +@COND_mips_qemu_mips_TRUE@am__append_2895 = font.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_2896 = +@COND_mips_qemu_mips_TRUE@am__append_2897 = $(nodist_font_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_2898 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_font_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ font.marker -@COND_mips_qemu_mips_TRUE@am__append_2906 = font.mod -@COND_mips_qemu_mips_TRUE@am__append_2907 = font.marker -@COND_arm_uboot_TRUE@am__append_2908 = font.module -@COND_arm_uboot_TRUE@am__append_2909 = font.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__append_2910 = -@COND_arm_uboot_TRUE@am__append_2911 = $(nodist_font_module_SOURCES) -@COND_arm_uboot_TRUE@am__append_2912 = $(nodist_font_module_SOURCES) \ +@COND_mips_qemu_mips_TRUE@am__append_2899 = font.mod +@COND_mips_qemu_mips_TRUE@am__append_2900 = font.marker +@COND_arm_uboot_TRUE@am__append_2901 = font.module +@COND_arm_uboot_TRUE@am__append_2902 = font.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__append_2903 = +@COND_arm_uboot_TRUE@am__append_2904 = $(nodist_font_module_SOURCES) +@COND_arm_uboot_TRUE@am__append_2905 = $(nodist_font_module_SOURCES) \ @COND_arm_uboot_TRUE@ font.marker -@COND_arm_uboot_TRUE@am__append_2913 = font.mod -@COND_arm_uboot_TRUE@am__append_2914 = font.marker -@COND_arm_efi_TRUE@am__append_2915 = font.module -@COND_arm_efi_TRUE@am__append_2916 = font.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_2917 = -@COND_arm_efi_TRUE@am__append_2918 = $(nodist_font_module_SOURCES) -@COND_arm_efi_TRUE@am__append_2919 = $(nodist_font_module_SOURCES) \ +@COND_arm_uboot_TRUE@am__append_2906 = font.mod +@COND_arm_uboot_TRUE@am__append_2907 = font.marker +@COND_arm_efi_TRUE@am__append_2908 = font.module +@COND_arm_efi_TRUE@am__append_2909 = font.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_2910 = +@COND_arm_efi_TRUE@am__append_2911 = $(nodist_font_module_SOURCES) +@COND_arm_efi_TRUE@am__append_2912 = $(nodist_font_module_SOURCES) \ @COND_arm_efi_TRUE@ font.marker -@COND_arm_efi_TRUE@am__append_2920 = font.mod -@COND_arm_efi_TRUE@am__append_2921 = font.marker -@COND_arm64_efi_TRUE@am__append_2922 = font.module -@COND_arm64_efi_TRUE@am__append_2923 = font.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_2924 = -@COND_arm64_efi_TRUE@am__append_2925 = $(nodist_font_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_2926 = $(nodist_font_module_SOURCES) \ +@COND_arm_efi_TRUE@am__append_2913 = font.mod +@COND_arm_efi_TRUE@am__append_2914 = font.marker +@COND_arm64_efi_TRUE@am__append_2915 = font.module +@COND_arm64_efi_TRUE@am__append_2916 = font.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_2917 = +@COND_arm64_efi_TRUE@am__append_2918 = $(nodist_font_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_2919 = $(nodist_font_module_SOURCES) \ @COND_arm64_efi_TRUE@ font.marker -@COND_arm64_efi_TRUE@am__append_2927 = font.mod -@COND_arm64_efi_TRUE@am__append_2928 = font.marker -@COND_riscv32_efi_TRUE@am__append_2929 = font.module -@COND_riscv32_efi_TRUE@am__append_2930 = font.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_2931 = -@COND_riscv32_efi_TRUE@am__append_2932 = $(nodist_font_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_2933 = \ +@COND_arm64_efi_TRUE@am__append_2920 = font.mod +@COND_arm64_efi_TRUE@am__append_2921 = font.marker +@COND_riscv32_efi_TRUE@am__append_2922 = font.module +@COND_riscv32_efi_TRUE@am__append_2923 = font.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_2924 = +@COND_riscv32_efi_TRUE@am__append_2925 = $(nodist_font_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_2926 = \ @COND_riscv32_efi_TRUE@ $(nodist_font_module_SOURCES) \ @COND_riscv32_efi_TRUE@ font.marker -@COND_riscv32_efi_TRUE@am__append_2934 = font.mod -@COND_riscv32_efi_TRUE@am__append_2935 = font.marker -@COND_riscv64_efi_TRUE@am__append_2936 = font.module -@COND_riscv64_efi_TRUE@am__append_2937 = font.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_2938 = -@COND_riscv64_efi_TRUE@am__append_2939 = $(nodist_font_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_2940 = \ +@COND_riscv32_efi_TRUE@am__append_2927 = font.mod +@COND_riscv32_efi_TRUE@am__append_2928 = font.marker +@COND_riscv64_efi_TRUE@am__append_2929 = font.module +@COND_riscv64_efi_TRUE@am__append_2930 = font.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_2931 = +@COND_riscv64_efi_TRUE@am__append_2932 = $(nodist_font_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_2933 = \ @COND_riscv64_efi_TRUE@ $(nodist_font_module_SOURCES) \ @COND_riscv64_efi_TRUE@ font.marker -@COND_riscv64_efi_TRUE@am__append_2941 = font.mod -@COND_riscv64_efi_TRUE@am__append_2942 = font.marker -@COND_i386_pc_TRUE@am__append_2943 = pxe.module -@COND_i386_pc_TRUE@am__append_2944 = pxe.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_2934 = font.mod +@COND_riscv64_efi_TRUE@am__append_2935 = font.marker +@COND_i386_pc_TRUE@am__append_2936 = pxe.module +@COND_i386_pc_TRUE@am__append_2937 = pxe.module$(EXEEXT) @COND_i386_pc_FALSE@pxe_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_2945 = -@COND_i386_pc_TRUE@am__append_2946 = $(nodist_pxe_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2947 = $(nodist_pxe_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2938 = +@COND_i386_pc_TRUE@am__append_2939 = $(nodist_pxe_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2940 = $(nodist_pxe_module_SOURCES) \ @COND_i386_pc_TRUE@ pxe.marker -@COND_i386_pc_TRUE@am__append_2948 = pxe.mod -@COND_i386_pc_TRUE@am__append_2949 = pxe.marker -@COND_emu_TRUE@am__append_2950 = bufio.module -@COND_emu_TRUE@am__append_2951 = bufio.module$(EXEEXT) +@COND_i386_pc_TRUE@am__append_2941 = pxe.mod +@COND_i386_pc_TRUE@am__append_2942 = pxe.marker +@COND_emu_TRUE@am__append_2943 = bufio.module +@COND_emu_TRUE@am__append_2944 = bufio.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@bufio_module_DEPENDENCIES = -@COND_emu_TRUE@am__append_2952 = -@COND_emu_TRUE@am__append_2953 = $(nodist_bufio_module_SOURCES) -@COND_emu_TRUE@am__append_2954 = $(nodist_bufio_module_SOURCES) \ +@COND_emu_TRUE@am__append_2945 = +@COND_emu_TRUE@am__append_2946 = $(nodist_bufio_module_SOURCES) +@COND_emu_TRUE@am__append_2947 = $(nodist_bufio_module_SOURCES) \ @COND_emu_TRUE@ bufio.marker -@COND_emu_TRUE@am__append_2955 = bufio.mod -@COND_emu_TRUE@am__append_2956 = bufio.marker -@COND_i386_pc_TRUE@am__append_2957 = bufio.module -@COND_i386_pc_TRUE@am__append_2958 = bufio.module$(EXEEXT) -@COND_i386_pc_TRUE@am__append_2959 = -@COND_i386_pc_TRUE@am__append_2960 = $(nodist_bufio_module_SOURCES) -@COND_i386_pc_TRUE@am__append_2961 = $(nodist_bufio_module_SOURCES) \ +@COND_emu_TRUE@am__append_2948 = bufio.mod +@COND_emu_TRUE@am__append_2949 = bufio.marker +@COND_i386_pc_TRUE@am__append_2950 = bufio.module +@COND_i386_pc_TRUE@am__append_2951 = bufio.module$(EXEEXT) +@COND_i386_pc_TRUE@am__append_2952 = +@COND_i386_pc_TRUE@am__append_2953 = $(nodist_bufio_module_SOURCES) +@COND_i386_pc_TRUE@am__append_2954 = $(nodist_bufio_module_SOURCES) \ @COND_i386_pc_TRUE@ bufio.marker -@COND_i386_pc_TRUE@am__append_2962 = bufio.mod -@COND_i386_pc_TRUE@am__append_2963 = bufio.marker -@COND_i386_efi_TRUE@am__append_2964 = bufio.module -@COND_i386_efi_TRUE@am__append_2965 = bufio.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_2966 = -@COND_i386_efi_TRUE@am__append_2967 = $(nodist_bufio_module_SOURCES) -@COND_i386_efi_TRUE@am__append_2968 = $(nodist_bufio_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_2955 = bufio.mod +@COND_i386_pc_TRUE@am__append_2956 = bufio.marker +@COND_i386_efi_TRUE@am__append_2957 = bufio.module +@COND_i386_efi_TRUE@am__append_2958 = bufio.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_2959 = +@COND_i386_efi_TRUE@am__append_2960 = $(nodist_bufio_module_SOURCES) +@COND_i386_efi_TRUE@am__append_2961 = $(nodist_bufio_module_SOURCES) \ @COND_i386_efi_TRUE@ bufio.marker -@COND_i386_efi_TRUE@am__append_2969 = bufio.mod -@COND_i386_efi_TRUE@am__append_2970 = bufio.marker -@COND_i386_qemu_TRUE@am__append_2971 = bufio.module -@COND_i386_qemu_TRUE@am__append_2972 = bufio.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_2973 = -@COND_i386_qemu_TRUE@am__append_2974 = $(nodist_bufio_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_2975 = $(nodist_bufio_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_2962 = bufio.mod +@COND_i386_efi_TRUE@am__append_2963 = bufio.marker +@COND_i386_qemu_TRUE@am__append_2964 = bufio.module +@COND_i386_qemu_TRUE@am__append_2965 = bufio.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_2966 = +@COND_i386_qemu_TRUE@am__append_2967 = $(nodist_bufio_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_2968 = $(nodist_bufio_module_SOURCES) \ @COND_i386_qemu_TRUE@ bufio.marker -@COND_i386_qemu_TRUE@am__append_2976 = bufio.mod -@COND_i386_qemu_TRUE@am__append_2977 = bufio.marker -@COND_i386_multiboot_TRUE@am__append_2978 = bufio.module -@COND_i386_multiboot_TRUE@am__append_2979 = bufio.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_2980 = -@COND_i386_multiboot_TRUE@am__append_2981 = $(nodist_bufio_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_2982 = \ +@COND_i386_qemu_TRUE@am__append_2969 = bufio.mod +@COND_i386_qemu_TRUE@am__append_2970 = bufio.marker +@COND_i386_multiboot_TRUE@am__append_2971 = bufio.module +@COND_i386_multiboot_TRUE@am__append_2972 = bufio.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_2973 = +@COND_i386_multiboot_TRUE@am__append_2974 = $(nodist_bufio_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_2975 = \ @COND_i386_multiboot_TRUE@ $(nodist_bufio_module_SOURCES) \ @COND_i386_multiboot_TRUE@ bufio.marker -@COND_i386_multiboot_TRUE@am__append_2983 = bufio.mod -@COND_i386_multiboot_TRUE@am__append_2984 = bufio.marker -@COND_i386_ieee1275_TRUE@am__append_2985 = bufio.module -@COND_i386_ieee1275_TRUE@am__append_2986 = bufio.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_2987 = -@COND_i386_ieee1275_TRUE@am__append_2988 = $(nodist_bufio_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_2989 = \ +@COND_i386_multiboot_TRUE@am__append_2976 = bufio.mod +@COND_i386_multiboot_TRUE@am__append_2977 = bufio.marker +@COND_i386_ieee1275_TRUE@am__append_2978 = bufio.module +@COND_i386_ieee1275_TRUE@am__append_2979 = bufio.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_2980 = +@COND_i386_ieee1275_TRUE@am__append_2981 = $(nodist_bufio_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_2982 = \ @COND_i386_ieee1275_TRUE@ $(nodist_bufio_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ bufio.marker -@COND_i386_ieee1275_TRUE@am__append_2990 = bufio.mod -@COND_i386_ieee1275_TRUE@am__append_2991 = bufio.marker -@COND_x86_64_efi_TRUE@am__append_2992 = bufio.module -@COND_x86_64_efi_TRUE@am__append_2993 = bufio.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_2994 = -@COND_x86_64_efi_TRUE@am__append_2995 = $(nodist_bufio_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_2996 = \ +@COND_i386_ieee1275_TRUE@am__append_2983 = bufio.mod +@COND_i386_ieee1275_TRUE@am__append_2984 = bufio.marker +@COND_x86_64_efi_TRUE@am__append_2985 = bufio.module +@COND_x86_64_efi_TRUE@am__append_2986 = bufio.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_2987 = +@COND_x86_64_efi_TRUE@am__append_2988 = $(nodist_bufio_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_2989 = \ @COND_x86_64_efi_TRUE@ $(nodist_bufio_module_SOURCES) \ @COND_x86_64_efi_TRUE@ bufio.marker -@COND_x86_64_efi_TRUE@am__append_2997 = bufio.mod -@COND_x86_64_efi_TRUE@am__append_2998 = bufio.marker -@COND_i386_xen_TRUE@am__append_2999 = bufio.module -@COND_i386_xen_TRUE@am__append_3000 = bufio.module$(EXEEXT) -@COND_i386_xen_TRUE@am__append_3001 = -@COND_i386_xen_TRUE@am__append_3002 = $(nodist_bufio_module_SOURCES) -@COND_i386_xen_TRUE@am__append_3003 = $(nodist_bufio_module_SOURCES) \ +@COND_x86_64_efi_TRUE@am__append_2990 = bufio.mod +@COND_x86_64_efi_TRUE@am__append_2991 = bufio.marker +@COND_i386_xen_TRUE@am__append_2992 = bufio.module +@COND_i386_xen_TRUE@am__append_2993 = bufio.module$(EXEEXT) +@COND_i386_xen_TRUE@am__append_2994 = +@COND_i386_xen_TRUE@am__append_2995 = $(nodist_bufio_module_SOURCES) +@COND_i386_xen_TRUE@am__append_2996 = $(nodist_bufio_module_SOURCES) \ @COND_i386_xen_TRUE@ bufio.marker -@COND_i386_xen_TRUE@am__append_3004 = bufio.mod -@COND_i386_xen_TRUE@am__append_3005 = bufio.marker -@COND_x86_64_xen_TRUE@am__append_3006 = bufio.module -@COND_x86_64_xen_TRUE@am__append_3007 = bufio.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__append_3008 = -@COND_x86_64_xen_TRUE@am__append_3009 = $(nodist_bufio_module_SOURCES) -@COND_x86_64_xen_TRUE@am__append_3010 = \ +@COND_i386_xen_TRUE@am__append_2997 = bufio.mod +@COND_i386_xen_TRUE@am__append_2998 = bufio.marker +@COND_x86_64_xen_TRUE@am__append_2999 = bufio.module +@COND_x86_64_xen_TRUE@am__append_3000 = bufio.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__append_3001 = +@COND_x86_64_xen_TRUE@am__append_3002 = $(nodist_bufio_module_SOURCES) +@COND_x86_64_xen_TRUE@am__append_3003 = \ @COND_x86_64_xen_TRUE@ $(nodist_bufio_module_SOURCES) \ @COND_x86_64_xen_TRUE@ bufio.marker -@COND_x86_64_xen_TRUE@am__append_3011 = bufio.mod -@COND_x86_64_xen_TRUE@am__append_3012 = bufio.marker -@COND_i386_xen_pvh_TRUE@am__append_3013 = bufio.module -@COND_i386_xen_pvh_TRUE@am__append_3014 = bufio.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_3015 = -@COND_i386_xen_pvh_TRUE@am__append_3016 = $(nodist_bufio_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_3017 = \ +@COND_x86_64_xen_TRUE@am__append_3004 = bufio.mod +@COND_x86_64_xen_TRUE@am__append_3005 = bufio.marker +@COND_i386_xen_pvh_TRUE@am__append_3006 = bufio.module +@COND_i386_xen_pvh_TRUE@am__append_3007 = bufio.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_3008 = +@COND_i386_xen_pvh_TRUE@am__append_3009 = $(nodist_bufio_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_3010 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_bufio_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ bufio.marker -@COND_i386_xen_pvh_TRUE@am__append_3018 = bufio.mod -@COND_i386_xen_pvh_TRUE@am__append_3019 = bufio.marker -@COND_sparc64_ieee1275_TRUE@am__append_3020 = bufio.module -@COND_sparc64_ieee1275_TRUE@am__append_3021 = bufio.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__append_3022 = -@COND_sparc64_ieee1275_TRUE@am__append_3023 = $(nodist_bufio_module_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_3024 = \ +@COND_i386_xen_pvh_TRUE@am__append_3011 = bufio.mod +@COND_i386_xen_pvh_TRUE@am__append_3012 = bufio.marker +@COND_sparc64_ieee1275_TRUE@am__append_3013 = bufio.module +@COND_sparc64_ieee1275_TRUE@am__append_3014 = bufio.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__append_3015 = +@COND_sparc64_ieee1275_TRUE@am__append_3016 = $(nodist_bufio_module_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_3017 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_bufio_module_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ bufio.marker -@COND_sparc64_ieee1275_TRUE@am__append_3025 = bufio.mod -@COND_sparc64_ieee1275_TRUE@am__append_3026 = bufio.marker -@COND_powerpc_ieee1275_TRUE@am__append_3027 = bufio.module -@COND_powerpc_ieee1275_TRUE@am__append_3028 = bufio.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__append_3029 = -@COND_powerpc_ieee1275_TRUE@am__append_3030 = $(nodist_bufio_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_3031 = \ +@COND_sparc64_ieee1275_TRUE@am__append_3018 = bufio.mod +@COND_sparc64_ieee1275_TRUE@am__append_3019 = bufio.marker +@COND_powerpc_ieee1275_TRUE@am__append_3020 = bufio.module +@COND_powerpc_ieee1275_TRUE@am__append_3021 = bufio.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_3022 = +@COND_powerpc_ieee1275_TRUE@am__append_3023 = $(nodist_bufio_module_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_3024 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_bufio_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ bufio.marker -@COND_powerpc_ieee1275_TRUE@am__append_3032 = bufio.mod -@COND_powerpc_ieee1275_TRUE@am__append_3033 = bufio.marker -@COND_mips_arc_TRUE@am__append_3034 = bufio.module -@COND_mips_arc_TRUE@am__append_3035 = bufio.module$(EXEEXT) -@COND_mips_arc_TRUE@am__append_3036 = -@COND_mips_arc_TRUE@am__append_3037 = $(nodist_bufio_module_SOURCES) -@COND_mips_arc_TRUE@am__append_3038 = $(nodist_bufio_module_SOURCES) \ +@COND_powerpc_ieee1275_TRUE@am__append_3025 = bufio.mod +@COND_powerpc_ieee1275_TRUE@am__append_3026 = bufio.marker +@COND_mips_arc_TRUE@am__append_3027 = bufio.module +@COND_mips_arc_TRUE@am__append_3028 = bufio.module$(EXEEXT) +@COND_mips_arc_TRUE@am__append_3029 = +@COND_mips_arc_TRUE@am__append_3030 = $(nodist_bufio_module_SOURCES) +@COND_mips_arc_TRUE@am__append_3031 = $(nodist_bufio_module_SOURCES) \ @COND_mips_arc_TRUE@ bufio.marker -@COND_mips_arc_TRUE@am__append_3039 = bufio.mod -@COND_mips_arc_TRUE@am__append_3040 = bufio.marker -@COND_ia64_efi_TRUE@am__append_3041 = bufio.module -@COND_ia64_efi_TRUE@am__append_3042 = bufio.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_3043 = -@COND_ia64_efi_TRUE@am__append_3044 = $(nodist_bufio_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_3045 = $(nodist_bufio_module_SOURCES) \ +@COND_mips_arc_TRUE@am__append_3032 = bufio.mod +@COND_mips_arc_TRUE@am__append_3033 = bufio.marker +@COND_ia64_efi_TRUE@am__append_3034 = bufio.module +@COND_ia64_efi_TRUE@am__append_3035 = bufio.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_3036 = +@COND_ia64_efi_TRUE@am__append_3037 = $(nodist_bufio_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_3038 = $(nodist_bufio_module_SOURCES) \ @COND_ia64_efi_TRUE@ bufio.marker -@COND_ia64_efi_TRUE@am__append_3046 = bufio.mod -@COND_ia64_efi_TRUE@am__append_3047 = bufio.marker -@COND_mips_qemu_mips_TRUE@am__append_3048 = bufio.module -@COND_mips_qemu_mips_TRUE@am__append_3049 = bufio.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_3050 = -@COND_mips_qemu_mips_TRUE@am__append_3051 = $(nodist_bufio_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_3052 = \ +@COND_ia64_efi_TRUE@am__append_3039 = bufio.mod +@COND_ia64_efi_TRUE@am__append_3040 = bufio.marker +@COND_mips_qemu_mips_TRUE@am__append_3041 = bufio.module +@COND_mips_qemu_mips_TRUE@am__append_3042 = bufio.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_3043 = +@COND_mips_qemu_mips_TRUE@am__append_3044 = $(nodist_bufio_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_3045 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_bufio_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ bufio.marker -@COND_mips_qemu_mips_TRUE@am__append_3053 = bufio.mod -@COND_mips_qemu_mips_TRUE@am__append_3054 = bufio.marker -@COND_arm_uboot_TRUE@am__append_3055 = bufio.module -@COND_arm_uboot_TRUE@am__append_3056 = bufio.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__append_3057 = -@COND_arm_uboot_TRUE@am__append_3058 = $(nodist_bufio_module_SOURCES) -@COND_arm_uboot_TRUE@am__append_3059 = $(nodist_bufio_module_SOURCES) \ +@COND_mips_qemu_mips_TRUE@am__append_3046 = bufio.mod +@COND_mips_qemu_mips_TRUE@am__append_3047 = bufio.marker +@COND_arm_uboot_TRUE@am__append_3048 = bufio.module +@COND_arm_uboot_TRUE@am__append_3049 = bufio.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__append_3050 = +@COND_arm_uboot_TRUE@am__append_3051 = $(nodist_bufio_module_SOURCES) +@COND_arm_uboot_TRUE@am__append_3052 = $(nodist_bufio_module_SOURCES) \ @COND_arm_uboot_TRUE@ bufio.marker -@COND_arm_uboot_TRUE@am__append_3060 = bufio.mod -@COND_arm_uboot_TRUE@am__append_3061 = bufio.marker -@COND_arm_efi_TRUE@am__append_3062 = bufio.module -@COND_arm_efi_TRUE@am__append_3063 = bufio.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_3064 = -@COND_arm_efi_TRUE@am__append_3065 = $(nodist_bufio_module_SOURCES) -@COND_arm_efi_TRUE@am__append_3066 = $(nodist_bufio_module_SOURCES) \ +@COND_arm_uboot_TRUE@am__append_3053 = bufio.mod +@COND_arm_uboot_TRUE@am__append_3054 = bufio.marker +@COND_arm_efi_TRUE@am__append_3055 = bufio.module +@COND_arm_efi_TRUE@am__append_3056 = bufio.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_3057 = +@COND_arm_efi_TRUE@am__append_3058 = $(nodist_bufio_module_SOURCES) +@COND_arm_efi_TRUE@am__append_3059 = $(nodist_bufio_module_SOURCES) \ @COND_arm_efi_TRUE@ bufio.marker -@COND_arm_efi_TRUE@am__append_3067 = bufio.mod -@COND_arm_efi_TRUE@am__append_3068 = bufio.marker -@COND_arm64_efi_TRUE@am__append_3069 = bufio.module -@COND_arm64_efi_TRUE@am__append_3070 = bufio.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_3071 = -@COND_arm64_efi_TRUE@am__append_3072 = $(nodist_bufio_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_3073 = $(nodist_bufio_module_SOURCES) \ +@COND_arm_efi_TRUE@am__append_3060 = bufio.mod +@COND_arm_efi_TRUE@am__append_3061 = bufio.marker +@COND_arm64_efi_TRUE@am__append_3062 = bufio.module +@COND_arm64_efi_TRUE@am__append_3063 = bufio.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_3064 = +@COND_arm64_efi_TRUE@am__append_3065 = $(nodist_bufio_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_3066 = $(nodist_bufio_module_SOURCES) \ @COND_arm64_efi_TRUE@ bufio.marker -@COND_arm64_efi_TRUE@am__append_3074 = bufio.mod -@COND_arm64_efi_TRUE@am__append_3075 = bufio.marker -@COND_riscv32_efi_TRUE@am__append_3076 = bufio.module -@COND_riscv32_efi_TRUE@am__append_3077 = bufio.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_3078 = -@COND_riscv32_efi_TRUE@am__append_3079 = $(nodist_bufio_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_3080 = \ +@COND_arm64_efi_TRUE@am__append_3067 = bufio.mod +@COND_arm64_efi_TRUE@am__append_3068 = bufio.marker +@COND_riscv32_efi_TRUE@am__append_3069 = bufio.module +@COND_riscv32_efi_TRUE@am__append_3070 = bufio.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_3071 = +@COND_riscv32_efi_TRUE@am__append_3072 = $(nodist_bufio_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_3073 = \ @COND_riscv32_efi_TRUE@ $(nodist_bufio_module_SOURCES) \ @COND_riscv32_efi_TRUE@ bufio.marker -@COND_riscv32_efi_TRUE@am__append_3081 = bufio.mod -@COND_riscv32_efi_TRUE@am__append_3082 = bufio.marker -@COND_riscv64_efi_TRUE@am__append_3083 = bufio.module -@COND_riscv64_efi_TRUE@am__append_3084 = bufio.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_3085 = -@COND_riscv64_efi_TRUE@am__append_3086 = $(nodist_bufio_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_3087 = \ +@COND_riscv32_efi_TRUE@am__append_3074 = bufio.mod +@COND_riscv32_efi_TRUE@am__append_3075 = bufio.marker +@COND_riscv64_efi_TRUE@am__append_3076 = bufio.module +@COND_riscv64_efi_TRUE@am__append_3077 = bufio.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_3078 = +@COND_riscv64_efi_TRUE@am__append_3079 = $(nodist_bufio_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_3080 = \ @COND_riscv64_efi_TRUE@ $(nodist_bufio_module_SOURCES) \ @COND_riscv64_efi_TRUE@ bufio.marker -@COND_riscv64_efi_TRUE@am__append_3088 = bufio.mod -@COND_riscv64_efi_TRUE@am__append_3089 = bufio.marker -@COND_i386_pc_TRUE@am__append_3090 = relocator.module -@COND_i386_pc_TRUE@am__append_3091 = relocator.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_3081 = bufio.mod +@COND_riscv64_efi_TRUE@am__append_3082 = bufio.marker +@COND_i386_pc_TRUE@am__append_3083 = relocator.module +@COND_i386_pc_TRUE@am__append_3084 = relocator.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@relocator_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_3092 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_i386_pc_TRUE@am__append_3093 = $(nodist_relocator_module_SOURCES) -@COND_i386_pc_TRUE@am__append_3094 = \ +@COND_i386_pc_TRUE@am__append_3085 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_i386_pc_TRUE@am__append_3086 = $(nodist_relocator_module_SOURCES) +@COND_i386_pc_TRUE@am__append_3087 = \ @COND_i386_pc_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_i386_pc_TRUE@ relocator.marker -@COND_i386_pc_TRUE@am__append_3095 = relocator.mod -@COND_i386_pc_TRUE@am__append_3096 = relocator.marker -@COND_i386_efi_TRUE@am__append_3097 = relocator.module -@COND_i386_efi_TRUE@am__append_3098 = relocator.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_3099 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_i386_efi_TRUE@am__append_3100 = $(nodist_relocator_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3101 = \ +@COND_i386_pc_TRUE@am__append_3088 = relocator.mod +@COND_i386_pc_TRUE@am__append_3089 = relocator.marker +@COND_i386_efi_TRUE@am__append_3090 = relocator.module +@COND_i386_efi_TRUE@am__append_3091 = relocator.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_3092 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_i386_efi_TRUE@am__append_3093 = $(nodist_relocator_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3094 = \ @COND_i386_efi_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_i386_efi_TRUE@ relocator.marker -@COND_i386_efi_TRUE@am__append_3102 = relocator.mod -@COND_i386_efi_TRUE@am__append_3103 = relocator.marker -@COND_i386_qemu_TRUE@am__append_3104 = relocator.module -@COND_i386_qemu_TRUE@am__append_3105 = relocator.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_3106 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_i386_qemu_TRUE@am__append_3107 = $(nodist_relocator_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_3108 = \ +@COND_i386_efi_TRUE@am__append_3095 = relocator.mod +@COND_i386_efi_TRUE@am__append_3096 = relocator.marker +@COND_i386_qemu_TRUE@am__append_3097 = relocator.module +@COND_i386_qemu_TRUE@am__append_3098 = relocator.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_3099 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_i386_qemu_TRUE@am__append_3100 = $(nodist_relocator_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_3101 = \ @COND_i386_qemu_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_i386_qemu_TRUE@ relocator.marker -@COND_i386_qemu_TRUE@am__append_3109 = relocator.mod -@COND_i386_qemu_TRUE@am__append_3110 = relocator.marker -@COND_i386_coreboot_TRUE@am__append_3111 = relocator.module -@COND_i386_coreboot_TRUE@am__append_3112 = relocator.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_3113 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_i386_coreboot_TRUE@am__append_3114 = $(nodist_relocator_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_3115 = \ +@COND_i386_qemu_TRUE@am__append_3102 = relocator.mod +@COND_i386_qemu_TRUE@am__append_3103 = relocator.marker +@COND_i386_coreboot_TRUE@am__append_3104 = relocator.module +@COND_i386_coreboot_TRUE@am__append_3105 = relocator.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_3106 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_i386_coreboot_TRUE@am__append_3107 = $(nodist_relocator_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_3108 = \ @COND_i386_coreboot_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_i386_coreboot_TRUE@ relocator.marker -@COND_i386_coreboot_TRUE@am__append_3116 = relocator.mod -@COND_i386_coreboot_TRUE@am__append_3117 = relocator.marker -@COND_i386_multiboot_TRUE@am__append_3118 = relocator.module -@COND_i386_multiboot_TRUE@am__append_3119 = relocator.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_3120 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_i386_multiboot_TRUE@am__append_3121 = $(nodist_relocator_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_3122 = \ +@COND_i386_coreboot_TRUE@am__append_3109 = relocator.mod +@COND_i386_coreboot_TRUE@am__append_3110 = relocator.marker +@COND_i386_multiboot_TRUE@am__append_3111 = relocator.module +@COND_i386_multiboot_TRUE@am__append_3112 = relocator.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_3113 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_i386_multiboot_TRUE@am__append_3114 = $(nodist_relocator_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_3115 = \ @COND_i386_multiboot_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_i386_multiboot_TRUE@ relocator.marker -@COND_i386_multiboot_TRUE@am__append_3123 = relocator.mod -@COND_i386_multiboot_TRUE@am__append_3124 = relocator.marker -@COND_i386_ieee1275_TRUE@am__append_3125 = relocator.module -@COND_i386_ieee1275_TRUE@am__append_3126 = relocator.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_3127 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_i386_ieee1275_TRUE@am__append_3128 = $(nodist_relocator_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_3129 = \ +@COND_i386_multiboot_TRUE@am__append_3116 = relocator.mod +@COND_i386_multiboot_TRUE@am__append_3117 = relocator.marker +@COND_i386_ieee1275_TRUE@am__append_3118 = relocator.module +@COND_i386_ieee1275_TRUE@am__append_3119 = relocator.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_3120 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_i386_ieee1275_TRUE@am__append_3121 = $(nodist_relocator_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_3122 = \ @COND_i386_ieee1275_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ relocator.marker -@COND_i386_ieee1275_TRUE@am__append_3130 = relocator.mod -@COND_i386_ieee1275_TRUE@am__append_3131 = relocator.marker -@COND_x86_64_efi_TRUE@am__append_3132 = relocator.module -@COND_x86_64_efi_TRUE@am__append_3133 = relocator.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_3134 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_x86_64_efi_TRUE@am__append_3135 = $(nodist_relocator_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_3136 = \ +@COND_i386_ieee1275_TRUE@am__append_3123 = relocator.mod +@COND_i386_ieee1275_TRUE@am__append_3124 = relocator.marker +@COND_x86_64_efi_TRUE@am__append_3125 = relocator.module +@COND_x86_64_efi_TRUE@am__append_3126 = relocator.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3127 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_x86_64_efi_TRUE@am__append_3128 = $(nodist_relocator_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_3129 = \ @COND_x86_64_efi_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_x86_64_efi_TRUE@ relocator.marker -@COND_x86_64_efi_TRUE@am__append_3137 = relocator.mod -@COND_x86_64_efi_TRUE@am__append_3138 = relocator.marker -@COND_i386_xen_TRUE@am__append_3139 = relocator.module -@COND_i386_xen_TRUE@am__append_3140 = relocator.module$(EXEEXT) -@COND_i386_xen_TRUE@am__append_3141 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_i386_xen_TRUE@am__append_3142 = $(nodist_relocator_module_SOURCES) -@COND_i386_xen_TRUE@am__append_3143 = \ +@COND_x86_64_efi_TRUE@am__append_3130 = relocator.mod +@COND_x86_64_efi_TRUE@am__append_3131 = relocator.marker +@COND_i386_xen_TRUE@am__append_3132 = relocator.module +@COND_i386_xen_TRUE@am__append_3133 = relocator.module$(EXEEXT) +@COND_i386_xen_TRUE@am__append_3134 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_i386_xen_TRUE@am__append_3135 = $(nodist_relocator_module_SOURCES) +@COND_i386_xen_TRUE@am__append_3136 = \ @COND_i386_xen_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_i386_xen_TRUE@ relocator.marker -@COND_i386_xen_TRUE@am__append_3144 = relocator.mod -@COND_i386_xen_TRUE@am__append_3145 = relocator.marker -@COND_x86_64_xen_TRUE@am__append_3146 = relocator.module -@COND_x86_64_xen_TRUE@am__append_3147 = relocator.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__append_3148 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_x86_64_xen_TRUE@am__append_3149 = $(nodist_relocator_module_SOURCES) -@COND_x86_64_xen_TRUE@am__append_3150 = \ +@COND_i386_xen_TRUE@am__append_3137 = relocator.mod +@COND_i386_xen_TRUE@am__append_3138 = relocator.marker +@COND_x86_64_xen_TRUE@am__append_3139 = relocator.module +@COND_x86_64_xen_TRUE@am__append_3140 = relocator.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__append_3141 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_x86_64_xen_TRUE@am__append_3142 = $(nodist_relocator_module_SOURCES) +@COND_x86_64_xen_TRUE@am__append_3143 = \ @COND_x86_64_xen_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_x86_64_xen_TRUE@ relocator.marker -@COND_x86_64_xen_TRUE@am__append_3151 = relocator.mod -@COND_x86_64_xen_TRUE@am__append_3152 = relocator.marker -@COND_i386_xen_pvh_TRUE@am__append_3153 = relocator.module -@COND_i386_xen_pvh_TRUE@am__append_3154 = relocator.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_3155 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_i386_xen_pvh_TRUE@am__append_3156 = $(nodist_relocator_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_3157 = \ +@COND_x86_64_xen_TRUE@am__append_3144 = relocator.mod +@COND_x86_64_xen_TRUE@am__append_3145 = relocator.marker +@COND_i386_xen_pvh_TRUE@am__append_3146 = relocator.module +@COND_i386_xen_pvh_TRUE@am__append_3147 = relocator.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_3148 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_i386_xen_pvh_TRUE@am__append_3149 = $(nodist_relocator_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_3150 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ relocator.marker -@COND_i386_xen_pvh_TRUE@am__append_3158 = relocator.mod -@COND_i386_xen_pvh_TRUE@am__append_3159 = relocator.marker -@COND_mips_loongson_TRUE@am__append_3160 = relocator.module -@COND_mips_loongson_TRUE@am__append_3161 = relocator.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_3162 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_mips_loongson_TRUE@am__append_3163 = $(nodist_relocator_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_3164 = \ +@COND_i386_xen_pvh_TRUE@am__append_3151 = relocator.mod +@COND_i386_xen_pvh_TRUE@am__append_3152 = relocator.marker +@COND_mips_loongson_TRUE@am__append_3153 = relocator.module +@COND_mips_loongson_TRUE@am__append_3154 = relocator.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_3155 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_mips_loongson_TRUE@am__append_3156 = $(nodist_relocator_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_3157 = \ @COND_mips_loongson_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_mips_loongson_TRUE@ relocator.marker -@COND_mips_loongson_TRUE@am__append_3165 = relocator.mod -@COND_mips_loongson_TRUE@am__append_3166 = relocator.marker -@COND_powerpc_ieee1275_TRUE@am__append_3167 = relocator.module -@COND_powerpc_ieee1275_TRUE@am__append_3168 = relocator.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__append_3169 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_powerpc_ieee1275_TRUE@am__append_3170 = $(nodist_relocator_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_3171 = $(nodist_relocator_module_SOURCES) \ +@COND_mips_loongson_TRUE@am__append_3158 = relocator.mod +@COND_mips_loongson_TRUE@am__append_3159 = relocator.marker +@COND_powerpc_ieee1275_TRUE@am__append_3160 = relocator.module +@COND_powerpc_ieee1275_TRUE@am__append_3161 = relocator.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_3162 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_powerpc_ieee1275_TRUE@am__append_3163 = $(nodist_relocator_module_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_3164 = $(nodist_relocator_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ relocator.marker -@COND_powerpc_ieee1275_TRUE@am__append_3172 = relocator.mod -@COND_powerpc_ieee1275_TRUE@am__append_3173 = relocator.marker -@COND_mips_arc_TRUE@am__append_3174 = relocator.module -@COND_mips_arc_TRUE@am__append_3175 = relocator.module$(EXEEXT) -@COND_mips_arc_TRUE@am__append_3176 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_mips_arc_TRUE@am__append_3177 = $(nodist_relocator_module_SOURCES) -@COND_mips_arc_TRUE@am__append_3178 = \ +@COND_powerpc_ieee1275_TRUE@am__append_3165 = relocator.mod +@COND_powerpc_ieee1275_TRUE@am__append_3166 = relocator.marker +@COND_mips_arc_TRUE@am__append_3167 = relocator.module +@COND_mips_arc_TRUE@am__append_3168 = relocator.module$(EXEEXT) +@COND_mips_arc_TRUE@am__append_3169 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_mips_arc_TRUE@am__append_3170 = $(nodist_relocator_module_SOURCES) +@COND_mips_arc_TRUE@am__append_3171 = \ @COND_mips_arc_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_mips_arc_TRUE@ relocator.marker -@COND_mips_arc_TRUE@am__append_3179 = relocator.mod -@COND_mips_arc_TRUE@am__append_3180 = relocator.marker -@COND_mips_qemu_mips_TRUE@am__append_3181 = relocator.module -@COND_mips_qemu_mips_TRUE@am__append_3182 = relocator.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_3183 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S -@COND_mips_qemu_mips_TRUE@am__append_3184 = $(nodist_relocator_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_3185 = \ +@COND_mips_arc_TRUE@am__append_3172 = relocator.mod +@COND_mips_arc_TRUE@am__append_3173 = relocator.marker +@COND_mips_qemu_mips_TRUE@am__append_3174 = relocator.module +@COND_mips_qemu_mips_TRUE@am__append_3175 = relocator.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_3176 = lib/i386/relocator_common.S kern/powerpc/cache_flush.S +@COND_mips_qemu_mips_TRUE@am__append_3177 = $(nodist_relocator_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_3178 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_relocator_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ relocator.marker -@COND_mips_qemu_mips_TRUE@am__append_3186 = relocator.mod -@COND_mips_qemu_mips_TRUE@am__append_3187 = relocator.marker -@COND_i386_pc_TRUE@am__append_3188 = datetime.module -@COND_i386_pc_TRUE@am__append_3189 = datetime.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_3179 = relocator.mod +@COND_mips_qemu_mips_TRUE@am__append_3180 = relocator.marker +@COND_i386_pc_TRUE@am__append_3181 = datetime.module +@COND_i386_pc_TRUE@am__append_3182 = datetime.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@datetime_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_3190 = -@COND_i386_pc_TRUE@am__append_3191 = $(nodist_datetime_module_SOURCES) -@COND_i386_pc_TRUE@am__append_3192 = \ +@COND_i386_pc_TRUE@am__append_3183 = +@COND_i386_pc_TRUE@am__append_3184 = $(nodist_datetime_module_SOURCES) +@COND_i386_pc_TRUE@am__append_3185 = \ @COND_i386_pc_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_i386_pc_TRUE@ datetime.marker -@COND_i386_pc_TRUE@am__append_3193 = datetime.mod -@COND_i386_pc_TRUE@am__append_3194 = datetime.marker -@COND_i386_efi_TRUE@am__append_3195 = datetime.module -@COND_i386_efi_TRUE@am__append_3196 = datetime.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_3197 = -@COND_i386_efi_TRUE@am__append_3198 = $(nodist_datetime_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3199 = \ +@COND_i386_pc_TRUE@am__append_3186 = datetime.mod +@COND_i386_pc_TRUE@am__append_3187 = datetime.marker +@COND_i386_efi_TRUE@am__append_3188 = datetime.module +@COND_i386_efi_TRUE@am__append_3189 = datetime.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_3190 = +@COND_i386_efi_TRUE@am__append_3191 = $(nodist_datetime_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3192 = \ @COND_i386_efi_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_i386_efi_TRUE@ datetime.marker -@COND_i386_efi_TRUE@am__append_3200 = datetime.mod -@COND_i386_efi_TRUE@am__append_3201 = datetime.marker -@COND_i386_qemu_TRUE@am__append_3202 = datetime.module -@COND_i386_qemu_TRUE@am__append_3203 = datetime.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_3204 = -@COND_i386_qemu_TRUE@am__append_3205 = $(nodist_datetime_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_3206 = \ +@COND_i386_efi_TRUE@am__append_3193 = datetime.mod +@COND_i386_efi_TRUE@am__append_3194 = datetime.marker +@COND_i386_qemu_TRUE@am__append_3195 = datetime.module +@COND_i386_qemu_TRUE@am__append_3196 = datetime.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_3197 = +@COND_i386_qemu_TRUE@am__append_3198 = $(nodist_datetime_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_3199 = \ @COND_i386_qemu_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_i386_qemu_TRUE@ datetime.marker -@COND_i386_qemu_TRUE@am__append_3207 = datetime.mod -@COND_i386_qemu_TRUE@am__append_3208 = datetime.marker -@COND_i386_coreboot_TRUE@am__append_3209 = datetime.module -@COND_i386_coreboot_TRUE@am__append_3210 = datetime.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_3211 = -@COND_i386_coreboot_TRUE@am__append_3212 = $(nodist_datetime_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_3213 = \ +@COND_i386_qemu_TRUE@am__append_3200 = datetime.mod +@COND_i386_qemu_TRUE@am__append_3201 = datetime.marker +@COND_i386_coreboot_TRUE@am__append_3202 = datetime.module +@COND_i386_coreboot_TRUE@am__append_3203 = datetime.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_3204 = +@COND_i386_coreboot_TRUE@am__append_3205 = $(nodist_datetime_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_3206 = \ @COND_i386_coreboot_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_i386_coreboot_TRUE@ datetime.marker -@COND_i386_coreboot_TRUE@am__append_3214 = datetime.mod -@COND_i386_coreboot_TRUE@am__append_3215 = datetime.marker -@COND_i386_multiboot_TRUE@am__append_3216 = datetime.module -@COND_i386_multiboot_TRUE@am__append_3217 = datetime.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_3218 = -@COND_i386_multiboot_TRUE@am__append_3219 = $(nodist_datetime_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_3220 = \ +@COND_i386_coreboot_TRUE@am__append_3207 = datetime.mod +@COND_i386_coreboot_TRUE@am__append_3208 = datetime.marker +@COND_i386_multiboot_TRUE@am__append_3209 = datetime.module +@COND_i386_multiboot_TRUE@am__append_3210 = datetime.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_3211 = +@COND_i386_multiboot_TRUE@am__append_3212 = $(nodist_datetime_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_3213 = \ @COND_i386_multiboot_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_i386_multiboot_TRUE@ datetime.marker -@COND_i386_multiboot_TRUE@am__append_3221 = datetime.mod -@COND_i386_multiboot_TRUE@am__append_3222 = datetime.marker -@COND_i386_ieee1275_TRUE@am__append_3223 = datetime.module -@COND_i386_ieee1275_TRUE@am__append_3224 = datetime.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_3225 = -@COND_i386_ieee1275_TRUE@am__append_3226 = $(nodist_datetime_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_3227 = \ +@COND_i386_multiboot_TRUE@am__append_3214 = datetime.mod +@COND_i386_multiboot_TRUE@am__append_3215 = datetime.marker +@COND_i386_ieee1275_TRUE@am__append_3216 = datetime.module +@COND_i386_ieee1275_TRUE@am__append_3217 = datetime.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_3218 = +@COND_i386_ieee1275_TRUE@am__append_3219 = $(nodist_datetime_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_3220 = \ @COND_i386_ieee1275_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ datetime.marker -@COND_i386_ieee1275_TRUE@am__append_3228 = datetime.mod -@COND_i386_ieee1275_TRUE@am__append_3229 = datetime.marker -@COND_x86_64_efi_TRUE@am__append_3230 = datetime.module -@COND_x86_64_efi_TRUE@am__append_3231 = datetime.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_3232 = -@COND_x86_64_efi_TRUE@am__append_3233 = $(nodist_datetime_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_3234 = \ +@COND_i386_ieee1275_TRUE@am__append_3221 = datetime.mod +@COND_i386_ieee1275_TRUE@am__append_3222 = datetime.marker +@COND_x86_64_efi_TRUE@am__append_3223 = datetime.module +@COND_x86_64_efi_TRUE@am__append_3224 = datetime.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3225 = +@COND_x86_64_efi_TRUE@am__append_3226 = $(nodist_datetime_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_3227 = \ @COND_x86_64_efi_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_x86_64_efi_TRUE@ datetime.marker -@COND_x86_64_efi_TRUE@am__append_3235 = datetime.mod -@COND_x86_64_efi_TRUE@am__append_3236 = datetime.marker -@COND_i386_xen_TRUE@am__append_3237 = datetime.module -@COND_i386_xen_TRUE@am__append_3238 = datetime.module$(EXEEXT) -@COND_i386_xen_TRUE@am__append_3239 = -@COND_i386_xen_TRUE@am__append_3240 = $(nodist_datetime_module_SOURCES) -@COND_i386_xen_TRUE@am__append_3241 = \ +@COND_x86_64_efi_TRUE@am__append_3228 = datetime.mod +@COND_x86_64_efi_TRUE@am__append_3229 = datetime.marker +@COND_i386_xen_TRUE@am__append_3230 = datetime.module +@COND_i386_xen_TRUE@am__append_3231 = datetime.module$(EXEEXT) +@COND_i386_xen_TRUE@am__append_3232 = +@COND_i386_xen_TRUE@am__append_3233 = $(nodist_datetime_module_SOURCES) +@COND_i386_xen_TRUE@am__append_3234 = \ @COND_i386_xen_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_i386_xen_TRUE@ datetime.marker -@COND_i386_xen_TRUE@am__append_3242 = datetime.mod -@COND_i386_xen_TRUE@am__append_3243 = datetime.marker -@COND_x86_64_xen_TRUE@am__append_3244 = datetime.module -@COND_x86_64_xen_TRUE@am__append_3245 = datetime.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__append_3246 = -@COND_x86_64_xen_TRUE@am__append_3247 = $(nodist_datetime_module_SOURCES) -@COND_x86_64_xen_TRUE@am__append_3248 = \ +@COND_i386_xen_TRUE@am__append_3235 = datetime.mod +@COND_i386_xen_TRUE@am__append_3236 = datetime.marker +@COND_x86_64_xen_TRUE@am__append_3237 = datetime.module +@COND_x86_64_xen_TRUE@am__append_3238 = datetime.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__append_3239 = +@COND_x86_64_xen_TRUE@am__append_3240 = $(nodist_datetime_module_SOURCES) +@COND_x86_64_xen_TRUE@am__append_3241 = \ @COND_x86_64_xen_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_x86_64_xen_TRUE@ datetime.marker -@COND_x86_64_xen_TRUE@am__append_3249 = datetime.mod -@COND_x86_64_xen_TRUE@am__append_3250 = datetime.marker -@COND_i386_xen_pvh_TRUE@am__append_3251 = datetime.module -@COND_i386_xen_pvh_TRUE@am__append_3252 = datetime.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_3253 = -@COND_i386_xen_pvh_TRUE@am__append_3254 = $(nodist_datetime_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_3255 = \ +@COND_x86_64_xen_TRUE@am__append_3242 = datetime.mod +@COND_x86_64_xen_TRUE@am__append_3243 = datetime.marker +@COND_i386_xen_pvh_TRUE@am__append_3244 = datetime.module +@COND_i386_xen_pvh_TRUE@am__append_3245 = datetime.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_3246 = +@COND_i386_xen_pvh_TRUE@am__append_3247 = $(nodist_datetime_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_3248 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ datetime.marker -@COND_i386_xen_pvh_TRUE@am__append_3256 = datetime.mod -@COND_i386_xen_pvh_TRUE@am__append_3257 = datetime.marker -@COND_mips_loongson_TRUE@am__append_3258 = datetime.module -@COND_mips_loongson_TRUE@am__append_3259 = datetime.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_3260 = -@COND_mips_loongson_TRUE@am__append_3261 = $(nodist_datetime_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_3262 = \ +@COND_i386_xen_pvh_TRUE@am__append_3249 = datetime.mod +@COND_i386_xen_pvh_TRUE@am__append_3250 = datetime.marker +@COND_mips_loongson_TRUE@am__append_3251 = datetime.module +@COND_mips_loongson_TRUE@am__append_3252 = datetime.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_3253 = +@COND_mips_loongson_TRUE@am__append_3254 = $(nodist_datetime_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_3255 = \ @COND_mips_loongson_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_mips_loongson_TRUE@ datetime.marker -@COND_mips_loongson_TRUE@am__append_3263 = datetime.mod -@COND_mips_loongson_TRUE@am__append_3264 = datetime.marker -@COND_sparc64_ieee1275_TRUE@am__append_3265 = datetime.module -@COND_sparc64_ieee1275_TRUE@am__append_3266 = datetime.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__append_3267 = -@COND_sparc64_ieee1275_TRUE@am__append_3268 = $(nodist_datetime_module_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_3269 = \ +@COND_mips_loongson_TRUE@am__append_3256 = datetime.mod +@COND_mips_loongson_TRUE@am__append_3257 = datetime.marker +@COND_sparc64_ieee1275_TRUE@am__append_3258 = datetime.module +@COND_sparc64_ieee1275_TRUE@am__append_3259 = datetime.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__append_3260 = +@COND_sparc64_ieee1275_TRUE@am__append_3261 = $(nodist_datetime_module_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_3262 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ datetime.marker -@COND_sparc64_ieee1275_TRUE@am__append_3270 = datetime.mod -@COND_sparc64_ieee1275_TRUE@am__append_3271 = datetime.marker -@COND_powerpc_ieee1275_TRUE@am__append_3272 = datetime.module -@COND_powerpc_ieee1275_TRUE@am__append_3273 = datetime.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__append_3274 = -@COND_powerpc_ieee1275_TRUE@am__append_3275 = $(nodist_datetime_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_3276 = \ +@COND_sparc64_ieee1275_TRUE@am__append_3263 = datetime.mod +@COND_sparc64_ieee1275_TRUE@am__append_3264 = datetime.marker +@COND_powerpc_ieee1275_TRUE@am__append_3265 = datetime.module +@COND_powerpc_ieee1275_TRUE@am__append_3266 = datetime.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_3267 = +@COND_powerpc_ieee1275_TRUE@am__append_3268 = $(nodist_datetime_module_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_3269 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ datetime.marker -@COND_powerpc_ieee1275_TRUE@am__append_3277 = datetime.mod -@COND_powerpc_ieee1275_TRUE@am__append_3278 = datetime.marker -@COND_mips_arc_TRUE@am__append_3279 = datetime.module -@COND_mips_arc_TRUE@am__append_3280 = datetime.module$(EXEEXT) -@COND_mips_arc_TRUE@am__append_3281 = -@COND_mips_arc_TRUE@am__append_3282 = $(nodist_datetime_module_SOURCES) -@COND_mips_arc_TRUE@am__append_3283 = \ +@COND_powerpc_ieee1275_TRUE@am__append_3270 = datetime.mod +@COND_powerpc_ieee1275_TRUE@am__append_3271 = datetime.marker +@COND_mips_arc_TRUE@am__append_3272 = datetime.module +@COND_mips_arc_TRUE@am__append_3273 = datetime.module$(EXEEXT) +@COND_mips_arc_TRUE@am__append_3274 = +@COND_mips_arc_TRUE@am__append_3275 = $(nodist_datetime_module_SOURCES) +@COND_mips_arc_TRUE@am__append_3276 = \ @COND_mips_arc_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_mips_arc_TRUE@ datetime.marker -@COND_mips_arc_TRUE@am__append_3284 = datetime.mod -@COND_mips_arc_TRUE@am__append_3285 = datetime.marker -@COND_ia64_efi_TRUE@am__append_3286 = datetime.module -@COND_ia64_efi_TRUE@am__append_3287 = datetime.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_3288 = -@COND_ia64_efi_TRUE@am__append_3289 = $(nodist_datetime_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_3290 = \ +@COND_mips_arc_TRUE@am__append_3277 = datetime.mod +@COND_mips_arc_TRUE@am__append_3278 = datetime.marker +@COND_ia64_efi_TRUE@am__append_3279 = datetime.module +@COND_ia64_efi_TRUE@am__append_3280 = datetime.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_3281 = +@COND_ia64_efi_TRUE@am__append_3282 = $(nodist_datetime_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_3283 = \ @COND_ia64_efi_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_ia64_efi_TRUE@ datetime.marker -@COND_ia64_efi_TRUE@am__append_3291 = datetime.mod -@COND_ia64_efi_TRUE@am__append_3292 = datetime.marker -@COND_mips_qemu_mips_TRUE@am__append_3293 = datetime.module -@COND_mips_qemu_mips_TRUE@am__append_3294 = datetime.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_3295 = -@COND_mips_qemu_mips_TRUE@am__append_3296 = $(nodist_datetime_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_3297 = \ +@COND_ia64_efi_TRUE@am__append_3284 = datetime.mod +@COND_ia64_efi_TRUE@am__append_3285 = datetime.marker +@COND_mips_qemu_mips_TRUE@am__append_3286 = datetime.module +@COND_mips_qemu_mips_TRUE@am__append_3287 = datetime.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_3288 = +@COND_mips_qemu_mips_TRUE@am__append_3289 = $(nodist_datetime_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_3290 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ datetime.marker -@COND_mips_qemu_mips_TRUE@am__append_3298 = datetime.mod -@COND_mips_qemu_mips_TRUE@am__append_3299 = datetime.marker -@COND_arm_uboot_TRUE@am__append_3300 = datetime.module -@COND_arm_uboot_TRUE@am__append_3301 = datetime.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__append_3302 = -@COND_arm_uboot_TRUE@am__append_3303 = $(nodist_datetime_module_SOURCES) -@COND_arm_uboot_TRUE@am__append_3304 = \ +@COND_mips_qemu_mips_TRUE@am__append_3291 = datetime.mod +@COND_mips_qemu_mips_TRUE@am__append_3292 = datetime.marker +@COND_arm_uboot_TRUE@am__append_3293 = datetime.module +@COND_arm_uboot_TRUE@am__append_3294 = datetime.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__append_3295 = +@COND_arm_uboot_TRUE@am__append_3296 = $(nodist_datetime_module_SOURCES) +@COND_arm_uboot_TRUE@am__append_3297 = \ @COND_arm_uboot_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_arm_uboot_TRUE@ datetime.marker -@COND_arm_uboot_TRUE@am__append_3305 = datetime.mod -@COND_arm_uboot_TRUE@am__append_3306 = datetime.marker -@COND_arm_efi_TRUE@am__append_3307 = datetime.module -@COND_arm_efi_TRUE@am__append_3308 = datetime.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_3309 = -@COND_arm_efi_TRUE@am__append_3310 = $(nodist_datetime_module_SOURCES) -@COND_arm_efi_TRUE@am__append_3311 = \ +@COND_arm_uboot_TRUE@am__append_3298 = datetime.mod +@COND_arm_uboot_TRUE@am__append_3299 = datetime.marker +@COND_arm_efi_TRUE@am__append_3300 = datetime.module +@COND_arm_efi_TRUE@am__append_3301 = datetime.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_3302 = +@COND_arm_efi_TRUE@am__append_3303 = $(nodist_datetime_module_SOURCES) +@COND_arm_efi_TRUE@am__append_3304 = \ @COND_arm_efi_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_arm_efi_TRUE@ datetime.marker -@COND_arm_efi_TRUE@am__append_3312 = datetime.mod -@COND_arm_efi_TRUE@am__append_3313 = datetime.marker -@COND_arm64_efi_TRUE@am__append_3314 = datetime.module -@COND_arm64_efi_TRUE@am__append_3315 = datetime.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_3316 = -@COND_arm64_efi_TRUE@am__append_3317 = $(nodist_datetime_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_3318 = \ +@COND_arm_efi_TRUE@am__append_3305 = datetime.mod +@COND_arm_efi_TRUE@am__append_3306 = datetime.marker +@COND_arm64_efi_TRUE@am__append_3307 = datetime.module +@COND_arm64_efi_TRUE@am__append_3308 = datetime.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_3309 = +@COND_arm64_efi_TRUE@am__append_3310 = $(nodist_datetime_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_3311 = \ @COND_arm64_efi_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_arm64_efi_TRUE@ datetime.marker -@COND_arm64_efi_TRUE@am__append_3319 = datetime.mod -@COND_arm64_efi_TRUE@am__append_3320 = datetime.marker -@COND_arm_coreboot_TRUE@am__append_3321 = datetime.module -@COND_arm_coreboot_TRUE@am__append_3322 = datetime.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__append_3323 = -@COND_arm_coreboot_TRUE@am__append_3324 = $(nodist_datetime_module_SOURCES) -@COND_arm_coreboot_TRUE@am__append_3325 = \ +@COND_arm64_efi_TRUE@am__append_3312 = datetime.mod +@COND_arm64_efi_TRUE@am__append_3313 = datetime.marker +@COND_arm_coreboot_TRUE@am__append_3314 = datetime.module +@COND_arm_coreboot_TRUE@am__append_3315 = datetime.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__append_3316 = +@COND_arm_coreboot_TRUE@am__append_3317 = $(nodist_datetime_module_SOURCES) +@COND_arm_coreboot_TRUE@am__append_3318 = \ @COND_arm_coreboot_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_arm_coreboot_TRUE@ datetime.marker -@COND_arm_coreboot_TRUE@am__append_3326 = datetime.mod -@COND_arm_coreboot_TRUE@am__append_3327 = datetime.marker -@COND_riscv32_efi_TRUE@am__append_3328 = datetime.module -@COND_riscv32_efi_TRUE@am__append_3329 = datetime.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_3330 = -@COND_riscv32_efi_TRUE@am__append_3331 = $(nodist_datetime_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_3332 = \ +@COND_arm_coreboot_TRUE@am__append_3319 = datetime.mod +@COND_arm_coreboot_TRUE@am__append_3320 = datetime.marker +@COND_riscv32_efi_TRUE@am__append_3321 = datetime.module +@COND_riscv32_efi_TRUE@am__append_3322 = datetime.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_3323 = +@COND_riscv32_efi_TRUE@am__append_3324 = $(nodist_datetime_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_3325 = \ @COND_riscv32_efi_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_riscv32_efi_TRUE@ datetime.marker -@COND_riscv32_efi_TRUE@am__append_3333 = datetime.mod -@COND_riscv32_efi_TRUE@am__append_3334 = datetime.marker -@COND_riscv64_efi_TRUE@am__append_3335 = datetime.module -@COND_riscv64_efi_TRUE@am__append_3336 = datetime.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_3337 = -@COND_riscv64_efi_TRUE@am__append_3338 = $(nodist_datetime_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_3339 = \ +@COND_riscv32_efi_TRUE@am__append_3326 = datetime.mod +@COND_riscv32_efi_TRUE@am__append_3327 = datetime.marker +@COND_riscv64_efi_TRUE@am__append_3328 = datetime.module +@COND_riscv64_efi_TRUE@am__append_3329 = datetime.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_3330 = +@COND_riscv64_efi_TRUE@am__append_3331 = $(nodist_datetime_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_3332 = \ @COND_riscv64_efi_TRUE@ $(nodist_datetime_module_SOURCES) \ @COND_riscv64_efi_TRUE@ datetime.marker -@COND_riscv64_efi_TRUE@am__append_3340 = datetime.mod -@COND_riscv64_efi_TRUE@am__append_3341 = datetime.marker -@COND_i386_pc_TRUE@am__append_3342 = aout.module -@COND_i386_pc_TRUE@am__append_3343 = aout.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_3333 = datetime.mod +@COND_riscv64_efi_TRUE@am__append_3334 = datetime.marker +@COND_i386_pc_TRUE@am__append_3335 = aout.module +@COND_i386_pc_TRUE@am__append_3336 = aout.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_x86_64_efi_FALSE@aout_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_3344 = -@COND_i386_pc_TRUE@am__append_3345 = $(nodist_aout_module_SOURCES) -@COND_i386_pc_TRUE@am__append_3346 = $(nodist_aout_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3337 = +@COND_i386_pc_TRUE@am__append_3338 = $(nodist_aout_module_SOURCES) +@COND_i386_pc_TRUE@am__append_3339 = $(nodist_aout_module_SOURCES) \ @COND_i386_pc_TRUE@ aout.marker -@COND_i386_pc_TRUE@am__append_3347 = aout.mod -@COND_i386_pc_TRUE@am__append_3348 = aout.marker -@COND_i386_efi_TRUE@am__append_3349 = aout.module -@COND_i386_efi_TRUE@am__append_3350 = aout.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_3351 = -@COND_i386_efi_TRUE@am__append_3352 = $(nodist_aout_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3353 = $(nodist_aout_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3340 = aout.mod +@COND_i386_pc_TRUE@am__append_3341 = aout.marker +@COND_i386_efi_TRUE@am__append_3342 = aout.module +@COND_i386_efi_TRUE@am__append_3343 = aout.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_3344 = +@COND_i386_efi_TRUE@am__append_3345 = $(nodist_aout_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3346 = $(nodist_aout_module_SOURCES) \ @COND_i386_efi_TRUE@ aout.marker -@COND_i386_efi_TRUE@am__append_3354 = aout.mod -@COND_i386_efi_TRUE@am__append_3355 = aout.marker -@COND_i386_qemu_TRUE@am__append_3356 = aout.module -@COND_i386_qemu_TRUE@am__append_3357 = aout.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_3358 = -@COND_i386_qemu_TRUE@am__append_3359 = $(nodist_aout_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_3360 = $(nodist_aout_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_3347 = aout.mod +@COND_i386_efi_TRUE@am__append_3348 = aout.marker +@COND_i386_qemu_TRUE@am__append_3349 = aout.module +@COND_i386_qemu_TRUE@am__append_3350 = aout.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_3351 = +@COND_i386_qemu_TRUE@am__append_3352 = $(nodist_aout_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_3353 = $(nodist_aout_module_SOURCES) \ @COND_i386_qemu_TRUE@ aout.marker -@COND_i386_qemu_TRUE@am__append_3361 = aout.mod -@COND_i386_qemu_TRUE@am__append_3362 = aout.marker -@COND_i386_coreboot_TRUE@am__append_3363 = aout.module -@COND_i386_coreboot_TRUE@am__append_3364 = aout.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_3365 = -@COND_i386_coreboot_TRUE@am__append_3366 = $(nodist_aout_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_3367 = \ +@COND_i386_qemu_TRUE@am__append_3354 = aout.mod +@COND_i386_qemu_TRUE@am__append_3355 = aout.marker +@COND_i386_coreboot_TRUE@am__append_3356 = aout.module +@COND_i386_coreboot_TRUE@am__append_3357 = aout.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_3358 = +@COND_i386_coreboot_TRUE@am__append_3359 = $(nodist_aout_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_3360 = \ @COND_i386_coreboot_TRUE@ $(nodist_aout_module_SOURCES) \ @COND_i386_coreboot_TRUE@ aout.marker -@COND_i386_coreboot_TRUE@am__append_3368 = aout.mod -@COND_i386_coreboot_TRUE@am__append_3369 = aout.marker -@COND_i386_multiboot_TRUE@am__append_3370 = aout.module -@COND_i386_multiboot_TRUE@am__append_3371 = aout.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_3372 = -@COND_i386_multiboot_TRUE@am__append_3373 = $(nodist_aout_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_3374 = \ +@COND_i386_coreboot_TRUE@am__append_3361 = aout.mod +@COND_i386_coreboot_TRUE@am__append_3362 = aout.marker +@COND_i386_multiboot_TRUE@am__append_3363 = aout.module +@COND_i386_multiboot_TRUE@am__append_3364 = aout.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_3365 = +@COND_i386_multiboot_TRUE@am__append_3366 = $(nodist_aout_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_3367 = \ @COND_i386_multiboot_TRUE@ $(nodist_aout_module_SOURCES) \ @COND_i386_multiboot_TRUE@ aout.marker -@COND_i386_multiboot_TRUE@am__append_3375 = aout.mod -@COND_i386_multiboot_TRUE@am__append_3376 = aout.marker -@COND_i386_ieee1275_TRUE@am__append_3377 = aout.module -@COND_i386_ieee1275_TRUE@am__append_3378 = aout.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_3379 = -@COND_i386_ieee1275_TRUE@am__append_3380 = $(nodist_aout_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_3381 = \ +@COND_i386_multiboot_TRUE@am__append_3368 = aout.mod +@COND_i386_multiboot_TRUE@am__append_3369 = aout.marker +@COND_i386_ieee1275_TRUE@am__append_3370 = aout.module +@COND_i386_ieee1275_TRUE@am__append_3371 = aout.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_3372 = +@COND_i386_ieee1275_TRUE@am__append_3373 = $(nodist_aout_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_3374 = \ @COND_i386_ieee1275_TRUE@ $(nodist_aout_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ aout.marker -@COND_i386_ieee1275_TRUE@am__append_3382 = aout.mod -@COND_i386_ieee1275_TRUE@am__append_3383 = aout.marker -@COND_x86_64_efi_TRUE@am__append_3384 = aout.module -@COND_x86_64_efi_TRUE@am__append_3385 = aout.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_3386 = -@COND_x86_64_efi_TRUE@am__append_3387 = $(nodist_aout_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_3388 = $(nodist_aout_module_SOURCES) \ +@COND_i386_ieee1275_TRUE@am__append_3375 = aout.mod +@COND_i386_ieee1275_TRUE@am__append_3376 = aout.marker +@COND_x86_64_efi_TRUE@am__append_3377 = aout.module +@COND_x86_64_efi_TRUE@am__append_3378 = aout.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3379 = +@COND_x86_64_efi_TRUE@am__append_3380 = $(nodist_aout_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_3381 = $(nodist_aout_module_SOURCES) \ @COND_x86_64_efi_TRUE@ aout.marker -@COND_x86_64_efi_TRUE@am__append_3389 = aout.mod -@COND_x86_64_efi_TRUE@am__append_3390 = aout.marker -@COND_i386_pc_TRUE@am__append_3391 = bsd.module -@COND_i386_pc_TRUE@am__append_3392 = bsd.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3382 = aout.mod +@COND_x86_64_efi_TRUE@am__append_3383 = aout.marker +@COND_i386_pc_TRUE@am__append_3384 = bsd.module +@COND_i386_pc_TRUE@am__append_3385 = bsd.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_x86_64_efi_FALSE@bsd_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_3393 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c -@COND_i386_pc_TRUE@am__append_3394 = $(nodist_bsd_module_SOURCES) -@COND_i386_pc_TRUE@am__append_3395 = $(nodist_bsd_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3386 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c +@COND_i386_pc_TRUE@am__append_3387 = $(nodist_bsd_module_SOURCES) +@COND_i386_pc_TRUE@am__append_3388 = $(nodist_bsd_module_SOURCES) \ @COND_i386_pc_TRUE@ bsd.marker -@COND_i386_pc_TRUE@am__append_3396 = bsd.mod -@COND_i386_pc_TRUE@am__append_3397 = bsd.marker -@COND_i386_efi_TRUE@am__append_3398 = bsd.module -@COND_i386_efi_TRUE@am__append_3399 = bsd.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_3400 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c -@COND_i386_efi_TRUE@am__append_3401 = $(nodist_bsd_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3402 = $(nodist_bsd_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3389 = bsd.mod +@COND_i386_pc_TRUE@am__append_3390 = bsd.marker +@COND_i386_efi_TRUE@am__append_3391 = bsd.module +@COND_i386_efi_TRUE@am__append_3392 = bsd.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_3393 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c +@COND_i386_efi_TRUE@am__append_3394 = $(nodist_bsd_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3395 = $(nodist_bsd_module_SOURCES) \ @COND_i386_efi_TRUE@ bsd.marker -@COND_i386_efi_TRUE@am__append_3403 = bsd.mod -@COND_i386_efi_TRUE@am__append_3404 = bsd.marker -@COND_i386_qemu_TRUE@am__append_3405 = bsd.module -@COND_i386_qemu_TRUE@am__append_3406 = bsd.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_3407 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c -@COND_i386_qemu_TRUE@am__append_3408 = $(nodist_bsd_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_3409 = $(nodist_bsd_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_3396 = bsd.mod +@COND_i386_efi_TRUE@am__append_3397 = bsd.marker +@COND_i386_qemu_TRUE@am__append_3398 = bsd.module +@COND_i386_qemu_TRUE@am__append_3399 = bsd.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_3400 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c +@COND_i386_qemu_TRUE@am__append_3401 = $(nodist_bsd_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_3402 = $(nodist_bsd_module_SOURCES) \ @COND_i386_qemu_TRUE@ bsd.marker -@COND_i386_qemu_TRUE@am__append_3410 = bsd.mod -@COND_i386_qemu_TRUE@am__append_3411 = bsd.marker -@COND_i386_coreboot_TRUE@am__append_3412 = bsd.module -@COND_i386_coreboot_TRUE@am__append_3413 = bsd.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_3414 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c -@COND_i386_coreboot_TRUE@am__append_3415 = $(nodist_bsd_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_3416 = \ +@COND_i386_qemu_TRUE@am__append_3403 = bsd.mod +@COND_i386_qemu_TRUE@am__append_3404 = bsd.marker +@COND_i386_coreboot_TRUE@am__append_3405 = bsd.module +@COND_i386_coreboot_TRUE@am__append_3406 = bsd.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_3407 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c +@COND_i386_coreboot_TRUE@am__append_3408 = $(nodist_bsd_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_3409 = \ @COND_i386_coreboot_TRUE@ $(nodist_bsd_module_SOURCES) \ @COND_i386_coreboot_TRUE@ bsd.marker -@COND_i386_coreboot_TRUE@am__append_3417 = bsd.mod -@COND_i386_coreboot_TRUE@am__append_3418 = bsd.marker -@COND_i386_multiboot_TRUE@am__append_3419 = bsd.module -@COND_i386_multiboot_TRUE@am__append_3420 = bsd.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_3421 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c -@COND_i386_multiboot_TRUE@am__append_3422 = $(nodist_bsd_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_3423 = \ +@COND_i386_coreboot_TRUE@am__append_3410 = bsd.mod +@COND_i386_coreboot_TRUE@am__append_3411 = bsd.marker +@COND_i386_multiboot_TRUE@am__append_3412 = bsd.module +@COND_i386_multiboot_TRUE@am__append_3413 = bsd.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_3414 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c +@COND_i386_multiboot_TRUE@am__append_3415 = $(nodist_bsd_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_3416 = \ @COND_i386_multiboot_TRUE@ $(nodist_bsd_module_SOURCES) \ @COND_i386_multiboot_TRUE@ bsd.marker -@COND_i386_multiboot_TRUE@am__append_3424 = bsd.mod -@COND_i386_multiboot_TRUE@am__append_3425 = bsd.marker -@COND_i386_ieee1275_TRUE@am__append_3426 = bsd.module -@COND_i386_ieee1275_TRUE@am__append_3427 = bsd.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_3428 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c -@COND_i386_ieee1275_TRUE@am__append_3429 = $(nodist_bsd_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_3430 = \ +@COND_i386_multiboot_TRUE@am__append_3417 = bsd.mod +@COND_i386_multiboot_TRUE@am__append_3418 = bsd.marker +@COND_i386_ieee1275_TRUE@am__append_3419 = bsd.module +@COND_i386_ieee1275_TRUE@am__append_3420 = bsd.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_3421 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c +@COND_i386_ieee1275_TRUE@am__append_3422 = $(nodist_bsd_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_3423 = \ @COND_i386_ieee1275_TRUE@ $(nodist_bsd_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ bsd.marker -@COND_i386_ieee1275_TRUE@am__append_3431 = bsd.mod -@COND_i386_ieee1275_TRUE@am__append_3432 = bsd.marker -@COND_x86_64_efi_TRUE@am__append_3433 = bsd.module -@COND_x86_64_efi_TRUE@am__append_3434 = bsd.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_3435 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c -@COND_x86_64_efi_TRUE@am__append_3436 = $(nodist_bsd_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_3437 = $(nodist_bsd_module_SOURCES) \ +@COND_i386_ieee1275_TRUE@am__append_3424 = bsd.mod +@COND_i386_ieee1275_TRUE@am__append_3425 = bsd.marker +@COND_x86_64_efi_TRUE@am__append_3426 = bsd.module +@COND_x86_64_efi_TRUE@am__append_3427 = bsd.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3428 = loader/i386/bsdXX.c loader/i386/bsd_pagetable.c +@COND_x86_64_efi_TRUE@am__append_3429 = $(nodist_bsd_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_3430 = $(nodist_bsd_module_SOURCES) \ @COND_x86_64_efi_TRUE@ bsd.marker -@COND_x86_64_efi_TRUE@am__append_3438 = bsd.mod -@COND_x86_64_efi_TRUE@am__append_3439 = bsd.marker -@COND_i386_pc_TRUE@am__append_3440 = plan9.module linux16.module -@COND_i386_pc_TRUE@am__append_3441 = plan9.module$(EXEEXT) \ +@COND_x86_64_efi_TRUE@am__append_3431 = bsd.mod +@COND_x86_64_efi_TRUE@am__append_3432 = bsd.marker +@COND_i386_pc_TRUE@am__append_3433 = plan9.module linux16.module +@COND_i386_pc_TRUE@am__append_3434 = plan9.module$(EXEEXT) \ @COND_i386_pc_TRUE@ linux16.module$(EXEEXT) @COND_i386_pc_FALSE@plan9_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_3442 = -@COND_i386_pc_TRUE@am__append_3443 = $(nodist_plan9_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3435 = +@COND_i386_pc_TRUE@am__append_3436 = $(nodist_plan9_module_SOURCES) \ @COND_i386_pc_TRUE@ $(nodist_linux16_module_SOURCES) -@COND_i386_pc_TRUE@am__append_3444 = $(nodist_plan9_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3437 = $(nodist_plan9_module_SOURCES) \ @COND_i386_pc_TRUE@ plan9.marker \ @COND_i386_pc_TRUE@ $(nodist_linux16_module_SOURCES) \ @COND_i386_pc_TRUE@ linux16.marker -@COND_i386_pc_TRUE@am__append_3445 = plan9.mod linux16.mod -@COND_i386_pc_TRUE@am__append_3446 = plan9.marker linux16.marker +@COND_i386_pc_TRUE@am__append_3438 = plan9.mod linux16.mod +@COND_i386_pc_TRUE@am__append_3439 = plan9.marker linux16.marker @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_x86_64_efi_FALSE@linux16_module_DEPENDENCIES = -@COND_i386_efi_TRUE@am__append_3447 = linux16.module -@COND_i386_efi_TRUE@am__append_3448 = linux16.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_3449 = -@COND_i386_efi_TRUE@am__append_3450 = $(nodist_linux16_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3451 = \ +@COND_i386_efi_TRUE@am__append_3440 = linux16.module +@COND_i386_efi_TRUE@am__append_3441 = linux16.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_3442 = +@COND_i386_efi_TRUE@am__append_3443 = $(nodist_linux16_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3444 = \ @COND_i386_efi_TRUE@ $(nodist_linux16_module_SOURCES) \ @COND_i386_efi_TRUE@ linux16.marker -@COND_i386_efi_TRUE@am__append_3452 = linux16.mod -@COND_i386_efi_TRUE@am__append_3453 = linux16.marker -@COND_i386_qemu_TRUE@am__append_3454 = linux16.module -@COND_i386_qemu_TRUE@am__append_3455 = linux16.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_3456 = -@COND_i386_qemu_TRUE@am__append_3457 = $(nodist_linux16_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_3458 = \ +@COND_i386_efi_TRUE@am__append_3445 = linux16.mod +@COND_i386_efi_TRUE@am__append_3446 = linux16.marker +@COND_i386_qemu_TRUE@am__append_3447 = linux16.module +@COND_i386_qemu_TRUE@am__append_3448 = linux16.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_3449 = +@COND_i386_qemu_TRUE@am__append_3450 = $(nodist_linux16_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_3451 = \ @COND_i386_qemu_TRUE@ $(nodist_linux16_module_SOURCES) \ @COND_i386_qemu_TRUE@ linux16.marker -@COND_i386_qemu_TRUE@am__append_3459 = linux16.mod -@COND_i386_qemu_TRUE@am__append_3460 = linux16.marker -@COND_i386_coreboot_TRUE@am__append_3461 = linux16.module -@COND_i386_coreboot_TRUE@am__append_3462 = linux16.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_3463 = -@COND_i386_coreboot_TRUE@am__append_3464 = $(nodist_linux16_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_3465 = \ +@COND_i386_qemu_TRUE@am__append_3452 = linux16.mod +@COND_i386_qemu_TRUE@am__append_3453 = linux16.marker +@COND_i386_coreboot_TRUE@am__append_3454 = linux16.module +@COND_i386_coreboot_TRUE@am__append_3455 = linux16.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_3456 = +@COND_i386_coreboot_TRUE@am__append_3457 = $(nodist_linux16_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_3458 = \ @COND_i386_coreboot_TRUE@ $(nodist_linux16_module_SOURCES) \ @COND_i386_coreboot_TRUE@ linux16.marker -@COND_i386_coreboot_TRUE@am__append_3466 = linux16.mod -@COND_i386_coreboot_TRUE@am__append_3467 = linux16.marker -@COND_i386_multiboot_TRUE@am__append_3468 = linux16.module -@COND_i386_multiboot_TRUE@am__append_3469 = linux16.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_3470 = -@COND_i386_multiboot_TRUE@am__append_3471 = $(nodist_linux16_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_3472 = \ +@COND_i386_coreboot_TRUE@am__append_3459 = linux16.mod +@COND_i386_coreboot_TRUE@am__append_3460 = linux16.marker +@COND_i386_multiboot_TRUE@am__append_3461 = linux16.module +@COND_i386_multiboot_TRUE@am__append_3462 = linux16.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_3463 = +@COND_i386_multiboot_TRUE@am__append_3464 = $(nodist_linux16_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_3465 = \ @COND_i386_multiboot_TRUE@ $(nodist_linux16_module_SOURCES) \ @COND_i386_multiboot_TRUE@ linux16.marker -@COND_i386_multiboot_TRUE@am__append_3473 = linux16.mod -@COND_i386_multiboot_TRUE@am__append_3474 = linux16.marker -@COND_i386_ieee1275_TRUE@am__append_3475 = linux16.module -@COND_i386_ieee1275_TRUE@am__append_3476 = linux16.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_3477 = -@COND_i386_ieee1275_TRUE@am__append_3478 = $(nodist_linux16_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_3479 = \ +@COND_i386_multiboot_TRUE@am__append_3466 = linux16.mod +@COND_i386_multiboot_TRUE@am__append_3467 = linux16.marker +@COND_i386_ieee1275_TRUE@am__append_3468 = linux16.module +@COND_i386_ieee1275_TRUE@am__append_3469 = linux16.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_3470 = +@COND_i386_ieee1275_TRUE@am__append_3471 = $(nodist_linux16_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_3472 = \ @COND_i386_ieee1275_TRUE@ $(nodist_linux16_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ linux16.marker -@COND_i386_ieee1275_TRUE@am__append_3480 = linux16.mod -@COND_i386_ieee1275_TRUE@am__append_3481 = linux16.marker -@COND_x86_64_efi_TRUE@am__append_3482 = linux16.module -@COND_x86_64_efi_TRUE@am__append_3483 = linux16.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_3484 = -@COND_x86_64_efi_TRUE@am__append_3485 = $(nodist_linux16_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_3486 = \ +@COND_i386_ieee1275_TRUE@am__append_3473 = linux16.mod +@COND_i386_ieee1275_TRUE@am__append_3474 = linux16.marker +@COND_x86_64_efi_TRUE@am__append_3475 = linux16.module +@COND_x86_64_efi_TRUE@am__append_3476 = linux16.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3477 = +@COND_x86_64_efi_TRUE@am__append_3478 = $(nodist_linux16_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_3479 = \ @COND_x86_64_efi_TRUE@ $(nodist_linux16_module_SOURCES) \ @COND_x86_64_efi_TRUE@ linux16.marker -@COND_x86_64_efi_TRUE@am__append_3487 = linux16.mod -@COND_x86_64_efi_TRUE@am__append_3488 = linux16.marker -@COND_i386_pc_TRUE@am__append_3489 = ntldr.module truecrypt.module \ +@COND_x86_64_efi_TRUE@am__append_3480 = linux16.mod +@COND_x86_64_efi_TRUE@am__append_3481 = linux16.marker +@COND_i386_pc_TRUE@am__append_3482 = ntldr.module truecrypt.module \ @COND_i386_pc_TRUE@ freedos.module pxechain.module \ @COND_i386_pc_TRUE@ multiboot2.module -@COND_i386_pc_TRUE@am__append_3490 = ntldr.module$(EXEEXT) \ +@COND_i386_pc_TRUE@am__append_3483 = ntldr.module$(EXEEXT) \ @COND_i386_pc_TRUE@ truecrypt.module$(EXEEXT) \ @COND_i386_pc_TRUE@ freedos.module$(EXEEXT) \ @COND_i386_pc_TRUE@ pxechain.module$(EXEEXT) \ @COND_i386_pc_TRUE@ multiboot2.module$(EXEEXT) @COND_i386_pc_FALSE@ntldr_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_3491 = -@COND_i386_pc_TRUE@am__append_3492 = $(nodist_ntldr_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3484 = +@COND_i386_pc_TRUE@am__append_3485 = $(nodist_ntldr_module_SOURCES) \ @COND_i386_pc_TRUE@ $(nodist_truecrypt_module_SOURCES) \ @COND_i386_pc_TRUE@ $(nodist_freedos_module_SOURCES) \ @COND_i386_pc_TRUE@ $(nodist_pxechain_module_SOURCES) \ @COND_i386_pc_TRUE@ $(nodist_multiboot2_module_SOURCES) -@COND_i386_pc_TRUE@am__append_3493 = $(nodist_ntldr_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3486 = $(nodist_ntldr_module_SOURCES) \ @COND_i386_pc_TRUE@ ntldr.marker \ @COND_i386_pc_TRUE@ $(nodist_truecrypt_module_SOURCES) \ @COND_i386_pc_TRUE@ truecrypt.marker \ @@ -4863,2969 +4853,2969 @@ TESTS = @COND_i386_pc_TRUE@ pxechain.marker \ @COND_i386_pc_TRUE@ $(nodist_multiboot2_module_SOURCES) \ @COND_i386_pc_TRUE@ multiboot2.marker -@COND_i386_pc_TRUE@am__append_3494 = ntldr.mod truecrypt.mod \ +@COND_i386_pc_TRUE@am__append_3487 = ntldr.mod truecrypt.mod \ @COND_i386_pc_TRUE@ freedos.mod pxechain.mod multiboot2.mod -@COND_i386_pc_TRUE@am__append_3495 = ntldr.marker truecrypt.marker \ +@COND_i386_pc_TRUE@am__append_3488 = ntldr.marker truecrypt.marker \ @COND_i386_pc_TRUE@ freedos.marker pxechain.marker \ @COND_i386_pc_TRUE@ multiboot2.marker @COND_i386_pc_FALSE@truecrypt_module_DEPENDENCIES = @COND_i386_pc_FALSE@freedos_module_DEPENDENCIES = @COND_i386_pc_FALSE@pxechain_module_DEPENDENCIES = @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_pvh_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_x86_64_efi_FALSE@multiboot2_module_DEPENDENCIES = -@COND_i386_efi_TRUE@am__append_3496 = multiboot2.module -@COND_i386_efi_TRUE@am__append_3497 = multiboot2.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_3498 = -@COND_i386_efi_TRUE@am__append_3499 = $(nodist_multiboot2_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3500 = \ +@COND_i386_efi_TRUE@am__append_3489 = multiboot2.module +@COND_i386_efi_TRUE@am__append_3490 = multiboot2.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_3491 = +@COND_i386_efi_TRUE@am__append_3492 = $(nodist_multiboot2_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3493 = \ @COND_i386_efi_TRUE@ $(nodist_multiboot2_module_SOURCES) \ @COND_i386_efi_TRUE@ multiboot2.marker -@COND_i386_efi_TRUE@am__append_3501 = multiboot2.mod -@COND_i386_efi_TRUE@am__append_3502 = multiboot2.marker -@COND_i386_qemu_TRUE@am__append_3503 = multiboot2.module -@COND_i386_qemu_TRUE@am__append_3504 = multiboot2.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_3505 = -@COND_i386_qemu_TRUE@am__append_3506 = $(nodist_multiboot2_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_3507 = \ +@COND_i386_efi_TRUE@am__append_3494 = multiboot2.mod +@COND_i386_efi_TRUE@am__append_3495 = multiboot2.marker +@COND_i386_qemu_TRUE@am__append_3496 = multiboot2.module +@COND_i386_qemu_TRUE@am__append_3497 = multiboot2.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_3498 = +@COND_i386_qemu_TRUE@am__append_3499 = $(nodist_multiboot2_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_3500 = \ @COND_i386_qemu_TRUE@ $(nodist_multiboot2_module_SOURCES) \ @COND_i386_qemu_TRUE@ multiboot2.marker -@COND_i386_qemu_TRUE@am__append_3508 = multiboot2.mod -@COND_i386_qemu_TRUE@am__append_3509 = multiboot2.marker -@COND_i386_coreboot_TRUE@am__append_3510 = multiboot2.module -@COND_i386_coreboot_TRUE@am__append_3511 = multiboot2.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_3512 = -@COND_i386_coreboot_TRUE@am__append_3513 = $(nodist_multiboot2_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_3514 = \ +@COND_i386_qemu_TRUE@am__append_3501 = multiboot2.mod +@COND_i386_qemu_TRUE@am__append_3502 = multiboot2.marker +@COND_i386_coreboot_TRUE@am__append_3503 = multiboot2.module +@COND_i386_coreboot_TRUE@am__append_3504 = multiboot2.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_3505 = +@COND_i386_coreboot_TRUE@am__append_3506 = $(nodist_multiboot2_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_3507 = \ @COND_i386_coreboot_TRUE@ $(nodist_multiboot2_module_SOURCES) \ @COND_i386_coreboot_TRUE@ multiboot2.marker -@COND_i386_coreboot_TRUE@am__append_3515 = multiboot2.mod -@COND_i386_coreboot_TRUE@am__append_3516 = multiboot2.marker -@COND_i386_multiboot_TRUE@am__append_3517 = multiboot2.module -@COND_i386_multiboot_TRUE@am__append_3518 = multiboot2.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_3519 = -@COND_i386_multiboot_TRUE@am__append_3520 = $(nodist_multiboot2_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_3521 = \ +@COND_i386_coreboot_TRUE@am__append_3508 = multiboot2.mod +@COND_i386_coreboot_TRUE@am__append_3509 = multiboot2.marker +@COND_i386_multiboot_TRUE@am__append_3510 = multiboot2.module +@COND_i386_multiboot_TRUE@am__append_3511 = multiboot2.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_3512 = +@COND_i386_multiboot_TRUE@am__append_3513 = $(nodist_multiboot2_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_3514 = \ @COND_i386_multiboot_TRUE@ $(nodist_multiboot2_module_SOURCES) \ @COND_i386_multiboot_TRUE@ multiboot2.marker -@COND_i386_multiboot_TRUE@am__append_3522 = multiboot2.mod -@COND_i386_multiboot_TRUE@am__append_3523 = multiboot2.marker -@COND_i386_ieee1275_TRUE@am__append_3524 = multiboot2.module -@COND_i386_ieee1275_TRUE@am__append_3525 = multiboot2.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_3526 = -@COND_i386_ieee1275_TRUE@am__append_3527 = $(nodist_multiboot2_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_3528 = \ +@COND_i386_multiboot_TRUE@am__append_3515 = multiboot2.mod +@COND_i386_multiboot_TRUE@am__append_3516 = multiboot2.marker +@COND_i386_ieee1275_TRUE@am__append_3517 = multiboot2.module +@COND_i386_ieee1275_TRUE@am__append_3518 = multiboot2.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_3519 = +@COND_i386_ieee1275_TRUE@am__append_3520 = $(nodist_multiboot2_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_3521 = \ @COND_i386_ieee1275_TRUE@ $(nodist_multiboot2_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ multiboot2.marker -@COND_i386_ieee1275_TRUE@am__append_3529 = multiboot2.mod -@COND_i386_ieee1275_TRUE@am__append_3530 = multiboot2.marker -@COND_x86_64_efi_TRUE@am__append_3531 = multiboot2.module -@COND_x86_64_efi_TRUE@am__append_3532 = multiboot2.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_3533 = -@COND_x86_64_efi_TRUE@am__append_3534 = $(nodist_multiboot2_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_3535 = \ +@COND_i386_ieee1275_TRUE@am__append_3522 = multiboot2.mod +@COND_i386_ieee1275_TRUE@am__append_3523 = multiboot2.marker +@COND_x86_64_efi_TRUE@am__append_3524 = multiboot2.module +@COND_x86_64_efi_TRUE@am__append_3525 = multiboot2.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3526 = +@COND_x86_64_efi_TRUE@am__append_3527 = $(nodist_multiboot2_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_3528 = \ @COND_x86_64_efi_TRUE@ $(nodist_multiboot2_module_SOURCES) \ @COND_x86_64_efi_TRUE@ multiboot2.marker -@COND_x86_64_efi_TRUE@am__append_3536 = multiboot2.mod -@COND_x86_64_efi_TRUE@am__append_3537 = multiboot2.marker -@COND_i386_xen_pvh_TRUE@am__append_3538 = multiboot2.module -@COND_i386_xen_pvh_TRUE@am__append_3539 = multiboot2.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_3540 = -@COND_i386_xen_pvh_TRUE@am__append_3541 = $(nodist_multiboot2_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_3542 = \ +@COND_x86_64_efi_TRUE@am__append_3529 = multiboot2.mod +@COND_x86_64_efi_TRUE@am__append_3530 = multiboot2.marker +@COND_i386_xen_pvh_TRUE@am__append_3531 = multiboot2.module +@COND_i386_xen_pvh_TRUE@am__append_3532 = multiboot2.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_3533 = +@COND_i386_xen_pvh_TRUE@am__append_3534 = $(nodist_multiboot2_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_3535 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_multiboot2_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ multiboot2.marker -@COND_i386_xen_pvh_TRUE@am__append_3543 = multiboot2.mod -@COND_i386_xen_pvh_TRUE@am__append_3544 = multiboot2.marker -@COND_mips_loongson_TRUE@am__append_3545 = multiboot2.module -@COND_mips_loongson_TRUE@am__append_3546 = multiboot2.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_3547 = -@COND_mips_loongson_TRUE@am__append_3548 = $(nodist_multiboot2_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_3549 = \ +@COND_i386_xen_pvh_TRUE@am__append_3536 = multiboot2.mod +@COND_i386_xen_pvh_TRUE@am__append_3537 = multiboot2.marker +@COND_mips_loongson_TRUE@am__append_3538 = multiboot2.module +@COND_mips_loongson_TRUE@am__append_3539 = multiboot2.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_3540 = +@COND_mips_loongson_TRUE@am__append_3541 = $(nodist_multiboot2_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_3542 = \ @COND_mips_loongson_TRUE@ $(nodist_multiboot2_module_SOURCES) \ @COND_mips_loongson_TRUE@ multiboot2.marker -@COND_mips_loongson_TRUE@am__append_3550 = multiboot2.mod -@COND_mips_loongson_TRUE@am__append_3551 = multiboot2.marker -@COND_mips_arc_TRUE@am__append_3552 = multiboot2.module -@COND_mips_arc_TRUE@am__append_3553 = multiboot2.module$(EXEEXT) -@COND_mips_arc_TRUE@am__append_3554 = -@COND_mips_arc_TRUE@am__append_3555 = $(nodist_multiboot2_module_SOURCES) -@COND_mips_arc_TRUE@am__append_3556 = \ +@COND_mips_loongson_TRUE@am__append_3543 = multiboot2.mod +@COND_mips_loongson_TRUE@am__append_3544 = multiboot2.marker +@COND_mips_arc_TRUE@am__append_3545 = multiboot2.module +@COND_mips_arc_TRUE@am__append_3546 = multiboot2.module$(EXEEXT) +@COND_mips_arc_TRUE@am__append_3547 = +@COND_mips_arc_TRUE@am__append_3548 = $(nodist_multiboot2_module_SOURCES) +@COND_mips_arc_TRUE@am__append_3549 = \ @COND_mips_arc_TRUE@ $(nodist_multiboot2_module_SOURCES) \ @COND_mips_arc_TRUE@ multiboot2.marker -@COND_mips_arc_TRUE@am__append_3557 = multiboot2.mod -@COND_mips_arc_TRUE@am__append_3558 = multiboot2.marker -@COND_mips_qemu_mips_TRUE@am__append_3559 = multiboot2.module -@COND_mips_qemu_mips_TRUE@am__append_3560 = multiboot2.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_3561 = -@COND_mips_qemu_mips_TRUE@am__append_3562 = $(nodist_multiboot2_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_3563 = \ +@COND_mips_arc_TRUE@am__append_3550 = multiboot2.mod +@COND_mips_arc_TRUE@am__append_3551 = multiboot2.marker +@COND_mips_qemu_mips_TRUE@am__append_3552 = multiboot2.module +@COND_mips_qemu_mips_TRUE@am__append_3553 = multiboot2.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_3554 = +@COND_mips_qemu_mips_TRUE@am__append_3555 = $(nodist_multiboot2_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_3556 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_multiboot2_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ multiboot2.marker -@COND_mips_qemu_mips_TRUE@am__append_3564 = multiboot2.mod -@COND_mips_qemu_mips_TRUE@am__append_3565 = multiboot2.marker -@COND_i386_pc_TRUE@am__append_3566 = multiboot.module -@COND_i386_pc_TRUE@am__append_3567 = multiboot.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_3557 = multiboot2.mod +@COND_mips_qemu_mips_TRUE@am__append_3558 = multiboot2.marker +@COND_i386_pc_TRUE@am__append_3559 = multiboot.module +@COND_i386_pc_TRUE@am__append_3560 = multiboot.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_pvh_FALSE@@COND_x86_64_efi_FALSE@multiboot_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_3568 = loader/multiboot_elfxx.c -@COND_i386_pc_TRUE@am__append_3569 = $(nodist_multiboot_module_SOURCES) -@COND_i386_pc_TRUE@am__append_3570 = \ +@COND_i386_pc_TRUE@am__append_3561 = loader/multiboot_elfxx.c +@COND_i386_pc_TRUE@am__append_3562 = $(nodist_multiboot_module_SOURCES) +@COND_i386_pc_TRUE@am__append_3563 = \ @COND_i386_pc_TRUE@ $(nodist_multiboot_module_SOURCES) \ @COND_i386_pc_TRUE@ multiboot.marker -@COND_i386_pc_TRUE@am__append_3571 = multiboot.mod -@COND_i386_pc_TRUE@am__append_3572 = multiboot.marker -@COND_i386_efi_TRUE@am__append_3573 = multiboot.module -@COND_i386_efi_TRUE@am__append_3574 = multiboot.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_3575 = loader/multiboot_elfxx.c -@COND_i386_efi_TRUE@am__append_3576 = $(nodist_multiboot_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3577 = \ +@COND_i386_pc_TRUE@am__append_3564 = multiboot.mod +@COND_i386_pc_TRUE@am__append_3565 = multiboot.marker +@COND_i386_efi_TRUE@am__append_3566 = multiboot.module +@COND_i386_efi_TRUE@am__append_3567 = multiboot.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_3568 = loader/multiboot_elfxx.c +@COND_i386_efi_TRUE@am__append_3569 = $(nodist_multiboot_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3570 = \ @COND_i386_efi_TRUE@ $(nodist_multiboot_module_SOURCES) \ @COND_i386_efi_TRUE@ multiboot.marker -@COND_i386_efi_TRUE@am__append_3578 = multiboot.mod -@COND_i386_efi_TRUE@am__append_3579 = multiboot.marker -@COND_i386_qemu_TRUE@am__append_3580 = multiboot.module -@COND_i386_qemu_TRUE@am__append_3581 = multiboot.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_3582 = loader/multiboot_elfxx.c -@COND_i386_qemu_TRUE@am__append_3583 = $(nodist_multiboot_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_3584 = \ +@COND_i386_efi_TRUE@am__append_3571 = multiboot.mod +@COND_i386_efi_TRUE@am__append_3572 = multiboot.marker +@COND_i386_qemu_TRUE@am__append_3573 = multiboot.module +@COND_i386_qemu_TRUE@am__append_3574 = multiboot.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_3575 = loader/multiboot_elfxx.c +@COND_i386_qemu_TRUE@am__append_3576 = $(nodist_multiboot_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_3577 = \ @COND_i386_qemu_TRUE@ $(nodist_multiboot_module_SOURCES) \ @COND_i386_qemu_TRUE@ multiboot.marker -@COND_i386_qemu_TRUE@am__append_3585 = multiboot.mod -@COND_i386_qemu_TRUE@am__append_3586 = multiboot.marker -@COND_i386_coreboot_TRUE@am__append_3587 = multiboot.module -@COND_i386_coreboot_TRUE@am__append_3588 = multiboot.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_3589 = loader/multiboot_elfxx.c -@COND_i386_coreboot_TRUE@am__append_3590 = $(nodist_multiboot_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_3591 = \ +@COND_i386_qemu_TRUE@am__append_3578 = multiboot.mod +@COND_i386_qemu_TRUE@am__append_3579 = multiboot.marker +@COND_i386_coreboot_TRUE@am__append_3580 = multiboot.module +@COND_i386_coreboot_TRUE@am__append_3581 = multiboot.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_3582 = loader/multiboot_elfxx.c +@COND_i386_coreboot_TRUE@am__append_3583 = $(nodist_multiboot_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_3584 = \ @COND_i386_coreboot_TRUE@ $(nodist_multiboot_module_SOURCES) \ @COND_i386_coreboot_TRUE@ multiboot.marker -@COND_i386_coreboot_TRUE@am__append_3592 = multiboot.mod -@COND_i386_coreboot_TRUE@am__append_3593 = multiboot.marker -@COND_i386_multiboot_TRUE@am__append_3594 = multiboot.module -@COND_i386_multiboot_TRUE@am__append_3595 = multiboot.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_3596 = loader/multiboot_elfxx.c -@COND_i386_multiboot_TRUE@am__append_3597 = $(nodist_multiboot_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_3598 = \ +@COND_i386_coreboot_TRUE@am__append_3585 = multiboot.mod +@COND_i386_coreboot_TRUE@am__append_3586 = multiboot.marker +@COND_i386_multiboot_TRUE@am__append_3587 = multiboot.module +@COND_i386_multiboot_TRUE@am__append_3588 = multiboot.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_3589 = loader/multiboot_elfxx.c +@COND_i386_multiboot_TRUE@am__append_3590 = $(nodist_multiboot_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_3591 = \ @COND_i386_multiboot_TRUE@ $(nodist_multiboot_module_SOURCES) \ @COND_i386_multiboot_TRUE@ multiboot.marker -@COND_i386_multiboot_TRUE@am__append_3599 = multiboot.mod -@COND_i386_multiboot_TRUE@am__append_3600 = multiboot.marker -@COND_i386_ieee1275_TRUE@am__append_3601 = multiboot.module -@COND_i386_ieee1275_TRUE@am__append_3602 = multiboot.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_3603 = loader/multiboot_elfxx.c -@COND_i386_ieee1275_TRUE@am__append_3604 = $(nodist_multiboot_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_3605 = \ +@COND_i386_multiboot_TRUE@am__append_3592 = multiboot.mod +@COND_i386_multiboot_TRUE@am__append_3593 = multiboot.marker +@COND_i386_ieee1275_TRUE@am__append_3594 = multiboot.module +@COND_i386_ieee1275_TRUE@am__append_3595 = multiboot.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_3596 = loader/multiboot_elfxx.c +@COND_i386_ieee1275_TRUE@am__append_3597 = $(nodist_multiboot_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_3598 = \ @COND_i386_ieee1275_TRUE@ $(nodist_multiboot_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ multiboot.marker -@COND_i386_ieee1275_TRUE@am__append_3606 = multiboot.mod -@COND_i386_ieee1275_TRUE@am__append_3607 = multiboot.marker -@COND_x86_64_efi_TRUE@am__append_3608 = multiboot.module -@COND_x86_64_efi_TRUE@am__append_3609 = multiboot.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_3610 = loader/multiboot_elfxx.c -@COND_x86_64_efi_TRUE@am__append_3611 = $(nodist_multiboot_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_3612 = \ +@COND_i386_ieee1275_TRUE@am__append_3599 = multiboot.mod +@COND_i386_ieee1275_TRUE@am__append_3600 = multiboot.marker +@COND_x86_64_efi_TRUE@am__append_3601 = multiboot.module +@COND_x86_64_efi_TRUE@am__append_3602 = multiboot.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3603 = loader/multiboot_elfxx.c +@COND_x86_64_efi_TRUE@am__append_3604 = $(nodist_multiboot_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_3605 = \ @COND_x86_64_efi_TRUE@ $(nodist_multiboot_module_SOURCES) \ @COND_x86_64_efi_TRUE@ multiboot.marker -@COND_x86_64_efi_TRUE@am__append_3613 = multiboot.mod -@COND_x86_64_efi_TRUE@am__append_3614 = multiboot.marker -@COND_i386_xen_pvh_TRUE@am__append_3615 = multiboot.module -@COND_i386_xen_pvh_TRUE@am__append_3616 = multiboot.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_3617 = loader/multiboot_elfxx.c -@COND_i386_xen_pvh_TRUE@am__append_3618 = $(nodist_multiboot_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_3619 = \ +@COND_x86_64_efi_TRUE@am__append_3606 = multiboot.mod +@COND_x86_64_efi_TRUE@am__append_3607 = multiboot.marker +@COND_i386_xen_pvh_TRUE@am__append_3608 = multiboot.module +@COND_i386_xen_pvh_TRUE@am__append_3609 = multiboot.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_3610 = loader/multiboot_elfxx.c +@COND_i386_xen_pvh_TRUE@am__append_3611 = $(nodist_multiboot_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_3612 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_multiboot_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ multiboot.marker -@COND_i386_xen_pvh_TRUE@am__append_3620 = multiboot.mod -@COND_i386_xen_pvh_TRUE@am__append_3621 = multiboot.marker -@COND_arm64_efi_TRUE@am__append_3622 = xen_boot.module -@COND_arm64_efi_TRUE@am__append_3623 = xen_boot.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_3613 = multiboot.mod +@COND_i386_xen_pvh_TRUE@am__append_3614 = multiboot.marker +@COND_arm64_efi_TRUE@am__append_3615 = xen_boot.module +@COND_arm64_efi_TRUE@am__append_3616 = xen_boot.module$(EXEEXT) @COND_arm64_efi_FALSE@xen_boot_module_DEPENDENCIES = -@COND_arm64_efi_TRUE@am__append_3624 = -@COND_arm64_efi_TRUE@am__append_3625 = $(nodist_xen_boot_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_3626 = \ +@COND_arm64_efi_TRUE@am__append_3617 = +@COND_arm64_efi_TRUE@am__append_3618 = $(nodist_xen_boot_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_3619 = \ @COND_arm64_efi_TRUE@ $(nodist_xen_boot_module_SOURCES) \ @COND_arm64_efi_TRUE@ xen_boot.marker -@COND_arm64_efi_TRUE@am__append_3627 = xen_boot.mod -@COND_arm64_efi_TRUE@am__append_3628 = xen_boot.marker -@COND_i386_pc_TRUE@am__append_3629 = linux.module -@COND_i386_pc_TRUE@am__append_3630 = linux.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_3620 = xen_boot.mod +@COND_arm64_efi_TRUE@am__append_3621 = xen_boot.marker +@COND_i386_pc_TRUE@am__append_3622 = linux.module +@COND_i386_pc_TRUE@am__append_3623 = linux.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@linux_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_3631 = -@COND_i386_pc_TRUE@am__append_3632 = $(nodist_linux_module_SOURCES) -@COND_i386_pc_TRUE@am__append_3633 = $(nodist_linux_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3624 = +@COND_i386_pc_TRUE@am__append_3625 = $(nodist_linux_module_SOURCES) +@COND_i386_pc_TRUE@am__append_3626 = $(nodist_linux_module_SOURCES) \ @COND_i386_pc_TRUE@ linux.marker -@COND_i386_pc_TRUE@am__append_3634 = linux.mod -@COND_i386_pc_TRUE@am__append_3635 = linux.marker -@COND_i386_efi_TRUE@am__append_3636 = linux.module -@COND_i386_efi_TRUE@am__append_3637 = linux.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_3638 = -@COND_i386_efi_TRUE@am__append_3639 = $(nodist_linux_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3640 = $(nodist_linux_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3627 = linux.mod +@COND_i386_pc_TRUE@am__append_3628 = linux.marker +@COND_i386_efi_TRUE@am__append_3629 = linux.module +@COND_i386_efi_TRUE@am__append_3630 = linux.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_3631 = +@COND_i386_efi_TRUE@am__append_3632 = $(nodist_linux_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3633 = $(nodist_linux_module_SOURCES) \ @COND_i386_efi_TRUE@ linux.marker -@COND_i386_efi_TRUE@am__append_3641 = linux.mod -@COND_i386_efi_TRUE@am__append_3642 = linux.marker -@COND_i386_qemu_TRUE@am__append_3643 = linux.module -@COND_i386_qemu_TRUE@am__append_3644 = linux.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_3645 = -@COND_i386_qemu_TRUE@am__append_3646 = $(nodist_linux_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_3647 = $(nodist_linux_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_3634 = linux.mod +@COND_i386_efi_TRUE@am__append_3635 = linux.marker +@COND_i386_qemu_TRUE@am__append_3636 = linux.module +@COND_i386_qemu_TRUE@am__append_3637 = linux.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_3638 = +@COND_i386_qemu_TRUE@am__append_3639 = $(nodist_linux_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_3640 = $(nodist_linux_module_SOURCES) \ @COND_i386_qemu_TRUE@ linux.marker -@COND_i386_qemu_TRUE@am__append_3648 = linux.mod -@COND_i386_qemu_TRUE@am__append_3649 = linux.marker -@COND_i386_coreboot_TRUE@am__append_3650 = linux.module -@COND_i386_coreboot_TRUE@am__append_3651 = linux.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_3652 = -@COND_i386_coreboot_TRUE@am__append_3653 = $(nodist_linux_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_3654 = \ +@COND_i386_qemu_TRUE@am__append_3641 = linux.mod +@COND_i386_qemu_TRUE@am__append_3642 = linux.marker +@COND_i386_coreboot_TRUE@am__append_3643 = linux.module +@COND_i386_coreboot_TRUE@am__append_3644 = linux.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_3645 = +@COND_i386_coreboot_TRUE@am__append_3646 = $(nodist_linux_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_3647 = \ @COND_i386_coreboot_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_i386_coreboot_TRUE@ linux.marker -@COND_i386_coreboot_TRUE@am__append_3655 = linux.mod -@COND_i386_coreboot_TRUE@am__append_3656 = linux.marker -@COND_i386_multiboot_TRUE@am__append_3657 = linux.module -@COND_i386_multiboot_TRUE@am__append_3658 = linux.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_3659 = -@COND_i386_multiboot_TRUE@am__append_3660 = $(nodist_linux_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_3661 = \ +@COND_i386_coreboot_TRUE@am__append_3648 = linux.mod +@COND_i386_coreboot_TRUE@am__append_3649 = linux.marker +@COND_i386_multiboot_TRUE@am__append_3650 = linux.module +@COND_i386_multiboot_TRUE@am__append_3651 = linux.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_3652 = +@COND_i386_multiboot_TRUE@am__append_3653 = $(nodist_linux_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_3654 = \ @COND_i386_multiboot_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_i386_multiboot_TRUE@ linux.marker -@COND_i386_multiboot_TRUE@am__append_3662 = linux.mod -@COND_i386_multiboot_TRUE@am__append_3663 = linux.marker -@COND_i386_ieee1275_TRUE@am__append_3664 = linux.module -@COND_i386_ieee1275_TRUE@am__append_3665 = linux.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_3666 = -@COND_i386_ieee1275_TRUE@am__append_3667 = $(nodist_linux_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_3668 = \ +@COND_i386_multiboot_TRUE@am__append_3655 = linux.mod +@COND_i386_multiboot_TRUE@am__append_3656 = linux.marker +@COND_i386_ieee1275_TRUE@am__append_3657 = linux.module +@COND_i386_ieee1275_TRUE@am__append_3658 = linux.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_3659 = +@COND_i386_ieee1275_TRUE@am__append_3660 = $(nodist_linux_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_3661 = \ @COND_i386_ieee1275_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ linux.marker -@COND_i386_ieee1275_TRUE@am__append_3669 = linux.mod -@COND_i386_ieee1275_TRUE@am__append_3670 = linux.marker -@COND_x86_64_efi_TRUE@am__append_3671 = linux.module -@COND_x86_64_efi_TRUE@am__append_3672 = linux.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_3673 = -@COND_x86_64_efi_TRUE@am__append_3674 = $(nodist_linux_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_3675 = \ +@COND_i386_ieee1275_TRUE@am__append_3662 = linux.mod +@COND_i386_ieee1275_TRUE@am__append_3663 = linux.marker +@COND_x86_64_efi_TRUE@am__append_3664 = linux.module +@COND_x86_64_efi_TRUE@am__append_3665 = linux.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3666 = +@COND_x86_64_efi_TRUE@am__append_3667 = $(nodist_linux_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_3668 = \ @COND_x86_64_efi_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_x86_64_efi_TRUE@ linux.marker -@COND_x86_64_efi_TRUE@am__append_3676 = linux.mod -@COND_x86_64_efi_TRUE@am__append_3677 = linux.marker -@COND_i386_xen_TRUE@am__append_3678 = linux.module -@COND_i386_xen_TRUE@am__append_3679 = linux.module$(EXEEXT) -@COND_i386_xen_TRUE@am__append_3680 = -@COND_i386_xen_TRUE@am__append_3681 = $(nodist_linux_module_SOURCES) -@COND_i386_xen_TRUE@am__append_3682 = $(nodist_linux_module_SOURCES) \ +@COND_x86_64_efi_TRUE@am__append_3669 = linux.mod +@COND_x86_64_efi_TRUE@am__append_3670 = linux.marker +@COND_i386_xen_TRUE@am__append_3671 = linux.module +@COND_i386_xen_TRUE@am__append_3672 = linux.module$(EXEEXT) +@COND_i386_xen_TRUE@am__append_3673 = +@COND_i386_xen_TRUE@am__append_3674 = $(nodist_linux_module_SOURCES) +@COND_i386_xen_TRUE@am__append_3675 = $(nodist_linux_module_SOURCES) \ @COND_i386_xen_TRUE@ linux.marker -@COND_i386_xen_TRUE@am__append_3683 = linux.mod -@COND_i386_xen_TRUE@am__append_3684 = linux.marker -@COND_x86_64_xen_TRUE@am__append_3685 = linux.module -@COND_x86_64_xen_TRUE@am__append_3686 = linux.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__append_3687 = -@COND_x86_64_xen_TRUE@am__append_3688 = $(nodist_linux_module_SOURCES) -@COND_x86_64_xen_TRUE@am__append_3689 = \ +@COND_i386_xen_TRUE@am__append_3676 = linux.mod +@COND_i386_xen_TRUE@am__append_3677 = linux.marker +@COND_x86_64_xen_TRUE@am__append_3678 = linux.module +@COND_x86_64_xen_TRUE@am__append_3679 = linux.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__append_3680 = +@COND_x86_64_xen_TRUE@am__append_3681 = $(nodist_linux_module_SOURCES) +@COND_x86_64_xen_TRUE@am__append_3682 = \ @COND_x86_64_xen_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_x86_64_xen_TRUE@ linux.marker -@COND_x86_64_xen_TRUE@am__append_3690 = linux.mod -@COND_x86_64_xen_TRUE@am__append_3691 = linux.marker -@COND_i386_xen_pvh_TRUE@am__append_3692 = linux.module -@COND_i386_xen_pvh_TRUE@am__append_3693 = linux.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_3694 = -@COND_i386_xen_pvh_TRUE@am__append_3695 = $(nodist_linux_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_3696 = \ +@COND_x86_64_xen_TRUE@am__append_3683 = linux.mod +@COND_x86_64_xen_TRUE@am__append_3684 = linux.marker +@COND_i386_xen_pvh_TRUE@am__append_3685 = linux.module +@COND_i386_xen_pvh_TRUE@am__append_3686 = linux.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_3687 = +@COND_i386_xen_pvh_TRUE@am__append_3688 = $(nodist_linux_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_3689 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ linux.marker -@COND_i386_xen_pvh_TRUE@am__append_3697 = linux.mod -@COND_i386_xen_pvh_TRUE@am__append_3698 = linux.marker -@COND_mips_loongson_TRUE@am__append_3699 = linux.module -@COND_mips_loongson_TRUE@am__append_3700 = linux.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_3701 = -@COND_mips_loongson_TRUE@am__append_3702 = $(nodist_linux_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_3703 = \ +@COND_i386_xen_pvh_TRUE@am__append_3690 = linux.mod +@COND_i386_xen_pvh_TRUE@am__append_3691 = linux.marker +@COND_mips_loongson_TRUE@am__append_3692 = linux.module +@COND_mips_loongson_TRUE@am__append_3693 = linux.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_3694 = +@COND_mips_loongson_TRUE@am__append_3695 = $(nodist_linux_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_3696 = \ @COND_mips_loongson_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_mips_loongson_TRUE@ linux.marker -@COND_mips_loongson_TRUE@am__append_3704 = linux.mod -@COND_mips_loongson_TRUE@am__append_3705 = linux.marker -@COND_sparc64_ieee1275_TRUE@am__append_3706 = linux.module -@COND_sparc64_ieee1275_TRUE@am__append_3707 = linux.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__append_3708 = -@COND_sparc64_ieee1275_TRUE@am__append_3709 = $(nodist_linux_module_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_3710 = \ +@COND_mips_loongson_TRUE@am__append_3697 = linux.mod +@COND_mips_loongson_TRUE@am__append_3698 = linux.marker +@COND_sparc64_ieee1275_TRUE@am__append_3699 = linux.module +@COND_sparc64_ieee1275_TRUE@am__append_3700 = linux.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__append_3701 = +@COND_sparc64_ieee1275_TRUE@am__append_3702 = $(nodist_linux_module_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_3703 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ linux.marker -@COND_sparc64_ieee1275_TRUE@am__append_3711 = linux.mod -@COND_sparc64_ieee1275_TRUE@am__append_3712 = linux.marker -@COND_powerpc_ieee1275_TRUE@am__append_3713 = linux.module -@COND_powerpc_ieee1275_TRUE@am__append_3714 = linux.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__append_3715 = -@COND_powerpc_ieee1275_TRUE@am__append_3716 = $(nodist_linux_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_3717 = \ +@COND_sparc64_ieee1275_TRUE@am__append_3704 = linux.mod +@COND_sparc64_ieee1275_TRUE@am__append_3705 = linux.marker +@COND_powerpc_ieee1275_TRUE@am__append_3706 = linux.module +@COND_powerpc_ieee1275_TRUE@am__append_3707 = linux.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_3708 = +@COND_powerpc_ieee1275_TRUE@am__append_3709 = $(nodist_linux_module_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_3710 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ linux.marker -@COND_powerpc_ieee1275_TRUE@am__append_3718 = linux.mod -@COND_powerpc_ieee1275_TRUE@am__append_3719 = linux.marker -@COND_mips_arc_TRUE@am__append_3720 = linux.module -@COND_mips_arc_TRUE@am__append_3721 = linux.module$(EXEEXT) -@COND_mips_arc_TRUE@am__append_3722 = -@COND_mips_arc_TRUE@am__append_3723 = $(nodist_linux_module_SOURCES) -@COND_mips_arc_TRUE@am__append_3724 = $(nodist_linux_module_SOURCES) \ +@COND_powerpc_ieee1275_TRUE@am__append_3711 = linux.mod +@COND_powerpc_ieee1275_TRUE@am__append_3712 = linux.marker +@COND_mips_arc_TRUE@am__append_3713 = linux.module +@COND_mips_arc_TRUE@am__append_3714 = linux.module$(EXEEXT) +@COND_mips_arc_TRUE@am__append_3715 = +@COND_mips_arc_TRUE@am__append_3716 = $(nodist_linux_module_SOURCES) +@COND_mips_arc_TRUE@am__append_3717 = $(nodist_linux_module_SOURCES) \ @COND_mips_arc_TRUE@ linux.marker -@COND_mips_arc_TRUE@am__append_3725 = linux.mod -@COND_mips_arc_TRUE@am__append_3726 = linux.marker -@COND_ia64_efi_TRUE@am__append_3727 = linux.module -@COND_ia64_efi_TRUE@am__append_3728 = linux.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_3729 = -@COND_ia64_efi_TRUE@am__append_3730 = $(nodist_linux_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_3731 = $(nodist_linux_module_SOURCES) \ +@COND_mips_arc_TRUE@am__append_3718 = linux.mod +@COND_mips_arc_TRUE@am__append_3719 = linux.marker +@COND_ia64_efi_TRUE@am__append_3720 = linux.module +@COND_ia64_efi_TRUE@am__append_3721 = linux.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_3722 = +@COND_ia64_efi_TRUE@am__append_3723 = $(nodist_linux_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_3724 = $(nodist_linux_module_SOURCES) \ @COND_ia64_efi_TRUE@ linux.marker -@COND_ia64_efi_TRUE@am__append_3732 = linux.mod -@COND_ia64_efi_TRUE@am__append_3733 = linux.marker -@COND_mips_qemu_mips_TRUE@am__append_3734 = linux.module -@COND_mips_qemu_mips_TRUE@am__append_3735 = linux.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_3736 = -@COND_mips_qemu_mips_TRUE@am__append_3737 = $(nodist_linux_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_3738 = \ +@COND_ia64_efi_TRUE@am__append_3725 = linux.mod +@COND_ia64_efi_TRUE@am__append_3726 = linux.marker +@COND_mips_qemu_mips_TRUE@am__append_3727 = linux.module +@COND_mips_qemu_mips_TRUE@am__append_3728 = linux.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_3729 = +@COND_mips_qemu_mips_TRUE@am__append_3730 = $(nodist_linux_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_3731 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ linux.marker -@COND_mips_qemu_mips_TRUE@am__append_3739 = linux.mod -@COND_mips_qemu_mips_TRUE@am__append_3740 = linux.marker -@COND_arm_uboot_TRUE@am__append_3741 = linux.module -@COND_arm_uboot_TRUE@am__append_3742 = linux.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__append_3743 = -@COND_arm_uboot_TRUE@am__append_3744 = $(nodist_linux_module_SOURCES) -@COND_arm_uboot_TRUE@am__append_3745 = $(nodist_linux_module_SOURCES) \ +@COND_mips_qemu_mips_TRUE@am__append_3732 = linux.mod +@COND_mips_qemu_mips_TRUE@am__append_3733 = linux.marker +@COND_arm_uboot_TRUE@am__append_3734 = linux.module +@COND_arm_uboot_TRUE@am__append_3735 = linux.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__append_3736 = +@COND_arm_uboot_TRUE@am__append_3737 = $(nodist_linux_module_SOURCES) +@COND_arm_uboot_TRUE@am__append_3738 = $(nodist_linux_module_SOURCES) \ @COND_arm_uboot_TRUE@ linux.marker -@COND_arm_uboot_TRUE@am__append_3746 = linux.mod -@COND_arm_uboot_TRUE@am__append_3747 = linux.marker -@COND_arm_efi_TRUE@am__append_3748 = linux.module -@COND_arm_efi_TRUE@am__append_3749 = linux.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_3750 = -@COND_arm_efi_TRUE@am__append_3751 = $(nodist_linux_module_SOURCES) -@COND_arm_efi_TRUE@am__append_3752 = $(nodist_linux_module_SOURCES) \ +@COND_arm_uboot_TRUE@am__append_3739 = linux.mod +@COND_arm_uboot_TRUE@am__append_3740 = linux.marker +@COND_arm_efi_TRUE@am__append_3741 = linux.module +@COND_arm_efi_TRUE@am__append_3742 = linux.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_3743 = +@COND_arm_efi_TRUE@am__append_3744 = $(nodist_linux_module_SOURCES) +@COND_arm_efi_TRUE@am__append_3745 = $(nodist_linux_module_SOURCES) \ @COND_arm_efi_TRUE@ linux.marker -@COND_arm_efi_TRUE@am__append_3753 = linux.mod -@COND_arm_efi_TRUE@am__append_3754 = linux.marker -@COND_arm64_efi_TRUE@am__append_3755 = linux.module -@COND_arm64_efi_TRUE@am__append_3756 = linux.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_3757 = -@COND_arm64_efi_TRUE@am__append_3758 = $(nodist_linux_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_3759 = $(nodist_linux_module_SOURCES) \ +@COND_arm_efi_TRUE@am__append_3746 = linux.mod +@COND_arm_efi_TRUE@am__append_3747 = linux.marker +@COND_arm64_efi_TRUE@am__append_3748 = linux.module +@COND_arm64_efi_TRUE@am__append_3749 = linux.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_3750 = +@COND_arm64_efi_TRUE@am__append_3751 = $(nodist_linux_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_3752 = $(nodist_linux_module_SOURCES) \ @COND_arm64_efi_TRUE@ linux.marker -@COND_arm64_efi_TRUE@am__append_3760 = linux.mod -@COND_arm64_efi_TRUE@am__append_3761 = linux.marker -@COND_arm_coreboot_TRUE@am__append_3762 = linux.module -@COND_arm_coreboot_TRUE@am__append_3763 = linux.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__append_3764 = -@COND_arm_coreboot_TRUE@am__append_3765 = $(nodist_linux_module_SOURCES) -@COND_arm_coreboot_TRUE@am__append_3766 = \ +@COND_arm64_efi_TRUE@am__append_3753 = linux.mod +@COND_arm64_efi_TRUE@am__append_3754 = linux.marker +@COND_arm_coreboot_TRUE@am__append_3755 = linux.module +@COND_arm_coreboot_TRUE@am__append_3756 = linux.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__append_3757 = +@COND_arm_coreboot_TRUE@am__append_3758 = $(nodist_linux_module_SOURCES) +@COND_arm_coreboot_TRUE@am__append_3759 = \ @COND_arm_coreboot_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_arm_coreboot_TRUE@ linux.marker -@COND_arm_coreboot_TRUE@am__append_3767 = linux.mod -@COND_arm_coreboot_TRUE@am__append_3768 = linux.marker -@COND_riscv32_efi_TRUE@am__append_3769 = linux.module -@COND_riscv32_efi_TRUE@am__append_3770 = linux.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_3771 = -@COND_riscv32_efi_TRUE@am__append_3772 = $(nodist_linux_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_3773 = \ +@COND_arm_coreboot_TRUE@am__append_3760 = linux.mod +@COND_arm_coreboot_TRUE@am__append_3761 = linux.marker +@COND_riscv32_efi_TRUE@am__append_3762 = linux.module +@COND_riscv32_efi_TRUE@am__append_3763 = linux.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_3764 = +@COND_riscv32_efi_TRUE@am__append_3765 = $(nodist_linux_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_3766 = \ @COND_riscv32_efi_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_riscv32_efi_TRUE@ linux.marker -@COND_riscv32_efi_TRUE@am__append_3774 = linux.mod -@COND_riscv32_efi_TRUE@am__append_3775 = linux.marker -@COND_riscv64_efi_TRUE@am__append_3776 = linux.module -@COND_riscv64_efi_TRUE@am__append_3777 = linux.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_3778 = -@COND_riscv64_efi_TRUE@am__append_3779 = $(nodist_linux_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_3780 = \ +@COND_riscv32_efi_TRUE@am__append_3767 = linux.mod +@COND_riscv32_efi_TRUE@am__append_3768 = linux.marker +@COND_riscv64_efi_TRUE@am__append_3769 = linux.module +@COND_riscv64_efi_TRUE@am__append_3770 = linux.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_3771 = +@COND_riscv64_efi_TRUE@am__append_3772 = $(nodist_linux_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_3773 = \ @COND_riscv64_efi_TRUE@ $(nodist_linux_module_SOURCES) \ @COND_riscv64_efi_TRUE@ linux.marker -@COND_riscv64_efi_TRUE@am__append_3781 = linux.mod -@COND_riscv64_efi_TRUE@am__append_3782 = linux.marker -@COND_arm_uboot_TRUE@am__append_3783 = fdt.module -@COND_arm_uboot_TRUE@am__append_3784 = fdt.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_3774 = linux.mod +@COND_riscv64_efi_TRUE@am__append_3775 = linux.marker +@COND_arm_uboot_TRUE@am__append_3776 = fdt.module +@COND_arm_uboot_TRUE@am__append_3777 = fdt.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@fdt_module_DEPENDENCIES = -@COND_arm_uboot_TRUE@am__append_3785 = -@COND_arm_uboot_TRUE@am__append_3786 = $(nodist_fdt_module_SOURCES) -@COND_arm_uboot_TRUE@am__append_3787 = $(nodist_fdt_module_SOURCES) \ +@COND_arm_uboot_TRUE@am__append_3778 = +@COND_arm_uboot_TRUE@am__append_3779 = $(nodist_fdt_module_SOURCES) +@COND_arm_uboot_TRUE@am__append_3780 = $(nodist_fdt_module_SOURCES) \ @COND_arm_uboot_TRUE@ fdt.marker -@COND_arm_uboot_TRUE@am__append_3788 = fdt.mod -@COND_arm_uboot_TRUE@am__append_3789 = fdt.marker -@COND_arm_efi_TRUE@am__append_3790 = fdt.module -@COND_arm_efi_TRUE@am__append_3791 = fdt.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_3792 = -@COND_arm_efi_TRUE@am__append_3793 = $(nodist_fdt_module_SOURCES) -@COND_arm_efi_TRUE@am__append_3794 = $(nodist_fdt_module_SOURCES) \ +@COND_arm_uboot_TRUE@am__append_3781 = fdt.mod +@COND_arm_uboot_TRUE@am__append_3782 = fdt.marker +@COND_arm_efi_TRUE@am__append_3783 = fdt.module +@COND_arm_efi_TRUE@am__append_3784 = fdt.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_3785 = +@COND_arm_efi_TRUE@am__append_3786 = $(nodist_fdt_module_SOURCES) +@COND_arm_efi_TRUE@am__append_3787 = $(nodist_fdt_module_SOURCES) \ @COND_arm_efi_TRUE@ fdt.marker -@COND_arm_efi_TRUE@am__append_3795 = fdt.mod -@COND_arm_efi_TRUE@am__append_3796 = fdt.marker -@COND_arm64_efi_TRUE@am__append_3797 = fdt.module -@COND_arm64_efi_TRUE@am__append_3798 = fdt.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_3799 = -@COND_arm64_efi_TRUE@am__append_3800 = $(nodist_fdt_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_3801 = $(nodist_fdt_module_SOURCES) \ +@COND_arm_efi_TRUE@am__append_3788 = fdt.mod +@COND_arm_efi_TRUE@am__append_3789 = fdt.marker +@COND_arm64_efi_TRUE@am__append_3790 = fdt.module +@COND_arm64_efi_TRUE@am__append_3791 = fdt.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_3792 = +@COND_arm64_efi_TRUE@am__append_3793 = $(nodist_fdt_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_3794 = $(nodist_fdt_module_SOURCES) \ @COND_arm64_efi_TRUE@ fdt.marker -@COND_arm64_efi_TRUE@am__append_3802 = fdt.mod -@COND_arm64_efi_TRUE@am__append_3803 = fdt.marker -@COND_riscv32_efi_TRUE@am__append_3804 = fdt.module -@COND_riscv32_efi_TRUE@am__append_3805 = fdt.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_3806 = -@COND_riscv32_efi_TRUE@am__append_3807 = $(nodist_fdt_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_3808 = $(nodist_fdt_module_SOURCES) \ +@COND_arm64_efi_TRUE@am__append_3795 = fdt.mod +@COND_arm64_efi_TRUE@am__append_3796 = fdt.marker +@COND_riscv32_efi_TRUE@am__append_3797 = fdt.module +@COND_riscv32_efi_TRUE@am__append_3798 = fdt.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_3799 = +@COND_riscv32_efi_TRUE@am__append_3800 = $(nodist_fdt_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_3801 = $(nodist_fdt_module_SOURCES) \ @COND_riscv32_efi_TRUE@ fdt.marker -@COND_riscv32_efi_TRUE@am__append_3809 = fdt.mod -@COND_riscv32_efi_TRUE@am__append_3810 = fdt.marker -@COND_riscv64_efi_TRUE@am__append_3811 = fdt.module -@COND_riscv64_efi_TRUE@am__append_3812 = fdt.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_3813 = -@COND_riscv64_efi_TRUE@am__append_3814 = $(nodist_fdt_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_3815 = $(nodist_fdt_module_SOURCES) \ +@COND_riscv32_efi_TRUE@am__append_3802 = fdt.mod +@COND_riscv32_efi_TRUE@am__append_3803 = fdt.marker +@COND_riscv64_efi_TRUE@am__append_3804 = fdt.module +@COND_riscv64_efi_TRUE@am__append_3805 = fdt.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_3806 = +@COND_riscv64_efi_TRUE@am__append_3807 = $(nodist_fdt_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_3808 = $(nodist_fdt_module_SOURCES) \ @COND_riscv64_efi_TRUE@ fdt.marker -@COND_riscv64_efi_TRUE@am__append_3816 = fdt.mod -@COND_riscv64_efi_TRUE@am__append_3817 = fdt.marker -@COND_i386_pc_TRUE@am__append_3818 = xnu.module -@COND_i386_pc_TRUE@am__append_3819 = xnu.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_3809 = fdt.mod +@COND_riscv64_efi_TRUE@am__append_3810 = fdt.marker +@COND_i386_pc_TRUE@am__append_3811 = xnu.module +@COND_i386_pc_TRUE@am__append_3812 = xnu.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_x86_64_efi_FALSE@xnu_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_3820 = -@COND_i386_pc_TRUE@am__append_3821 = $(nodist_xnu_module_SOURCES) -@COND_i386_pc_TRUE@am__append_3822 = $(nodist_xnu_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3813 = +@COND_i386_pc_TRUE@am__append_3814 = $(nodist_xnu_module_SOURCES) +@COND_i386_pc_TRUE@am__append_3815 = $(nodist_xnu_module_SOURCES) \ @COND_i386_pc_TRUE@ xnu.marker -@COND_i386_pc_TRUE@am__append_3823 = xnu.mod -@COND_i386_pc_TRUE@am__append_3824 = xnu.marker -@COND_i386_efi_TRUE@am__append_3825 = xnu.module -@COND_i386_efi_TRUE@am__append_3826 = xnu.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_3827 = -@COND_i386_efi_TRUE@am__append_3828 = $(nodist_xnu_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3829 = $(nodist_xnu_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3816 = xnu.mod +@COND_i386_pc_TRUE@am__append_3817 = xnu.marker +@COND_i386_efi_TRUE@am__append_3818 = xnu.module +@COND_i386_efi_TRUE@am__append_3819 = xnu.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_3820 = +@COND_i386_efi_TRUE@am__append_3821 = $(nodist_xnu_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3822 = $(nodist_xnu_module_SOURCES) \ @COND_i386_efi_TRUE@ xnu.marker -@COND_i386_efi_TRUE@am__append_3830 = xnu.mod -@COND_i386_efi_TRUE@am__append_3831 = xnu.marker -@COND_i386_coreboot_TRUE@am__append_3832 = xnu.module -@COND_i386_coreboot_TRUE@am__append_3833 = xnu.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_3834 = -@COND_i386_coreboot_TRUE@am__append_3835 = $(nodist_xnu_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_3836 = \ +@COND_i386_efi_TRUE@am__append_3823 = xnu.mod +@COND_i386_efi_TRUE@am__append_3824 = xnu.marker +@COND_i386_coreboot_TRUE@am__append_3825 = xnu.module +@COND_i386_coreboot_TRUE@am__append_3826 = xnu.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_3827 = +@COND_i386_coreboot_TRUE@am__append_3828 = $(nodist_xnu_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_3829 = \ @COND_i386_coreboot_TRUE@ $(nodist_xnu_module_SOURCES) \ @COND_i386_coreboot_TRUE@ xnu.marker -@COND_i386_coreboot_TRUE@am__append_3837 = xnu.mod -@COND_i386_coreboot_TRUE@am__append_3838 = xnu.marker -@COND_i386_multiboot_TRUE@am__append_3839 = xnu.module -@COND_i386_multiboot_TRUE@am__append_3840 = xnu.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_3841 = -@COND_i386_multiboot_TRUE@am__append_3842 = $(nodist_xnu_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_3843 = \ +@COND_i386_coreboot_TRUE@am__append_3830 = xnu.mod +@COND_i386_coreboot_TRUE@am__append_3831 = xnu.marker +@COND_i386_multiboot_TRUE@am__append_3832 = xnu.module +@COND_i386_multiboot_TRUE@am__append_3833 = xnu.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_3834 = +@COND_i386_multiboot_TRUE@am__append_3835 = $(nodist_xnu_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_3836 = \ @COND_i386_multiboot_TRUE@ $(nodist_xnu_module_SOURCES) \ @COND_i386_multiboot_TRUE@ xnu.marker -@COND_i386_multiboot_TRUE@am__append_3844 = xnu.mod -@COND_i386_multiboot_TRUE@am__append_3845 = xnu.marker -@COND_x86_64_efi_TRUE@am__append_3846 = xnu.module -@COND_x86_64_efi_TRUE@am__append_3847 = xnu.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_3848 = -@COND_x86_64_efi_TRUE@am__append_3849 = $(nodist_xnu_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_3850 = $(nodist_xnu_module_SOURCES) \ +@COND_i386_multiboot_TRUE@am__append_3837 = xnu.mod +@COND_i386_multiboot_TRUE@am__append_3838 = xnu.marker +@COND_x86_64_efi_TRUE@am__append_3839 = xnu.module +@COND_x86_64_efi_TRUE@am__append_3840 = xnu.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3841 = +@COND_x86_64_efi_TRUE@am__append_3842 = $(nodist_xnu_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_3843 = $(nodist_xnu_module_SOURCES) \ @COND_x86_64_efi_TRUE@ xnu.marker -@COND_x86_64_efi_TRUE@am__append_3851 = xnu.mod -@COND_x86_64_efi_TRUE@am__append_3852 = xnu.marker -@COND_i386_pc_TRUE@am__append_3853 = random.module -@COND_i386_pc_TRUE@am__append_3854 = random.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3844 = xnu.mod +@COND_x86_64_efi_TRUE@am__append_3845 = xnu.marker +@COND_i386_pc_TRUE@am__append_3846 = random.module +@COND_i386_pc_TRUE@am__append_3847 = random.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_x86_64_efi_FALSE@random_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_3855 = -@COND_i386_pc_TRUE@am__append_3856 = $(nodist_random_module_SOURCES) -@COND_i386_pc_TRUE@am__append_3857 = $(nodist_random_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3848 = +@COND_i386_pc_TRUE@am__append_3849 = $(nodist_random_module_SOURCES) +@COND_i386_pc_TRUE@am__append_3850 = $(nodist_random_module_SOURCES) \ @COND_i386_pc_TRUE@ random.marker -@COND_i386_pc_TRUE@am__append_3858 = random.mod -@COND_i386_pc_TRUE@am__append_3859 = random.marker -@COND_i386_efi_TRUE@am__append_3860 = random.module -@COND_i386_efi_TRUE@am__append_3861 = random.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_3862 = -@COND_i386_efi_TRUE@am__append_3863 = $(nodist_random_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3864 = $(nodist_random_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3851 = random.mod +@COND_i386_pc_TRUE@am__append_3852 = random.marker +@COND_i386_efi_TRUE@am__append_3853 = random.module +@COND_i386_efi_TRUE@am__append_3854 = random.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_3855 = +@COND_i386_efi_TRUE@am__append_3856 = $(nodist_random_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3857 = $(nodist_random_module_SOURCES) \ @COND_i386_efi_TRUE@ random.marker -@COND_i386_efi_TRUE@am__append_3865 = random.mod -@COND_i386_efi_TRUE@am__append_3866 = random.marker -@COND_i386_coreboot_TRUE@am__append_3867 = random.module -@COND_i386_coreboot_TRUE@am__append_3868 = random.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_3869 = -@COND_i386_coreboot_TRUE@am__append_3870 = $(nodist_random_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_3871 = \ +@COND_i386_efi_TRUE@am__append_3858 = random.mod +@COND_i386_efi_TRUE@am__append_3859 = random.marker +@COND_i386_coreboot_TRUE@am__append_3860 = random.module +@COND_i386_coreboot_TRUE@am__append_3861 = random.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_3862 = +@COND_i386_coreboot_TRUE@am__append_3863 = $(nodist_random_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_3864 = \ @COND_i386_coreboot_TRUE@ $(nodist_random_module_SOURCES) \ @COND_i386_coreboot_TRUE@ random.marker -@COND_i386_coreboot_TRUE@am__append_3872 = random.mod -@COND_i386_coreboot_TRUE@am__append_3873 = random.marker -@COND_i386_multiboot_TRUE@am__append_3874 = random.module -@COND_i386_multiboot_TRUE@am__append_3875 = random.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_3876 = -@COND_i386_multiboot_TRUE@am__append_3877 = $(nodist_random_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_3878 = \ +@COND_i386_coreboot_TRUE@am__append_3865 = random.mod +@COND_i386_coreboot_TRUE@am__append_3866 = random.marker +@COND_i386_multiboot_TRUE@am__append_3867 = random.module +@COND_i386_multiboot_TRUE@am__append_3868 = random.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_3869 = +@COND_i386_multiboot_TRUE@am__append_3870 = $(nodist_random_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_3871 = \ @COND_i386_multiboot_TRUE@ $(nodist_random_module_SOURCES) \ @COND_i386_multiboot_TRUE@ random.marker -@COND_i386_multiboot_TRUE@am__append_3879 = random.mod -@COND_i386_multiboot_TRUE@am__append_3880 = random.marker -@COND_x86_64_efi_TRUE@am__append_3881 = random.module -@COND_x86_64_efi_TRUE@am__append_3882 = random.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_3883 = -@COND_x86_64_efi_TRUE@am__append_3884 = $(nodist_random_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_3885 = \ +@COND_i386_multiboot_TRUE@am__append_3872 = random.mod +@COND_i386_multiboot_TRUE@am__append_3873 = random.marker +@COND_x86_64_efi_TRUE@am__append_3874 = random.module +@COND_x86_64_efi_TRUE@am__append_3875 = random.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3876 = +@COND_x86_64_efi_TRUE@am__append_3877 = $(nodist_random_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_3878 = \ @COND_x86_64_efi_TRUE@ $(nodist_random_module_SOURCES) \ @COND_x86_64_efi_TRUE@ random.marker -@COND_x86_64_efi_TRUE@am__append_3886 = random.mod -@COND_x86_64_efi_TRUE@am__append_3887 = random.marker -@COND_i386_efi_TRUE@am__append_3888 = appleldr.module -@COND_i386_efi_TRUE@am__append_3889 = appleldr.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3879 = random.mod +@COND_x86_64_efi_TRUE@am__append_3880 = random.marker +@COND_i386_efi_TRUE@am__append_3881 = appleldr.module +@COND_i386_efi_TRUE@am__append_3882 = appleldr.module$(EXEEXT) @COND_i386_efi_FALSE@@COND_x86_64_efi_FALSE@appleldr_module_DEPENDENCIES = -@COND_i386_efi_TRUE@am__append_3890 = -@COND_i386_efi_TRUE@am__append_3891 = $(nodist_appleldr_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3892 = \ +@COND_i386_efi_TRUE@am__append_3883 = +@COND_i386_efi_TRUE@am__append_3884 = $(nodist_appleldr_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3885 = \ @COND_i386_efi_TRUE@ $(nodist_appleldr_module_SOURCES) \ @COND_i386_efi_TRUE@ appleldr.marker -@COND_i386_efi_TRUE@am__append_3893 = appleldr.mod -@COND_i386_efi_TRUE@am__append_3894 = appleldr.marker -@COND_x86_64_efi_TRUE@am__append_3895 = appleldr.module -@COND_x86_64_efi_TRUE@am__append_3896 = appleldr.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_3897 = -@COND_x86_64_efi_TRUE@am__append_3898 = $(nodist_appleldr_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_3899 = \ +@COND_i386_efi_TRUE@am__append_3886 = appleldr.mod +@COND_i386_efi_TRUE@am__append_3887 = appleldr.marker +@COND_x86_64_efi_TRUE@am__append_3888 = appleldr.module +@COND_x86_64_efi_TRUE@am__append_3889 = appleldr.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3890 = +@COND_x86_64_efi_TRUE@am__append_3891 = $(nodist_appleldr_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_3892 = \ @COND_x86_64_efi_TRUE@ $(nodist_appleldr_module_SOURCES) \ @COND_x86_64_efi_TRUE@ appleldr.marker -@COND_x86_64_efi_TRUE@am__append_3900 = appleldr.mod -@COND_x86_64_efi_TRUE@am__append_3901 = appleldr.marker -@COND_i386_pc_TRUE@am__append_3902 = chain.module -@COND_i386_pc_TRUE@am__append_3903 = chain.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3893 = appleldr.mod +@COND_x86_64_efi_TRUE@am__append_3894 = appleldr.marker +@COND_i386_pc_TRUE@am__append_3895 = chain.module +@COND_i386_pc_TRUE@am__append_3896 = chain.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_efi_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_pc_FALSE@@COND_ia64_efi_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_x86_64_efi_FALSE@chain_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_3904 = -@COND_i386_pc_TRUE@am__append_3905 = $(nodist_chain_module_SOURCES) -@COND_i386_pc_TRUE@am__append_3906 = $(nodist_chain_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3897 = +@COND_i386_pc_TRUE@am__append_3898 = $(nodist_chain_module_SOURCES) +@COND_i386_pc_TRUE@am__append_3899 = $(nodist_chain_module_SOURCES) \ @COND_i386_pc_TRUE@ chain.marker -@COND_i386_pc_TRUE@am__append_3907 = chain.mod -@COND_i386_pc_TRUE@am__append_3908 = chain.marker -@COND_i386_efi_TRUE@am__append_3909 = chain.module -@COND_i386_efi_TRUE@am__append_3910 = chain.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_3911 = -@COND_i386_efi_TRUE@am__append_3912 = $(nodist_chain_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3913 = $(nodist_chain_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3900 = chain.mod +@COND_i386_pc_TRUE@am__append_3901 = chain.marker +@COND_i386_efi_TRUE@am__append_3902 = chain.module +@COND_i386_efi_TRUE@am__append_3903 = chain.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_3904 = +@COND_i386_efi_TRUE@am__append_3905 = $(nodist_chain_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3906 = $(nodist_chain_module_SOURCES) \ @COND_i386_efi_TRUE@ chain.marker -@COND_i386_efi_TRUE@am__append_3914 = chain.mod -@COND_i386_efi_TRUE@am__append_3915 = chain.marker -@COND_i386_coreboot_TRUE@am__append_3916 = chain.module -@COND_i386_coreboot_TRUE@am__append_3917 = chain.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_3918 = -@COND_i386_coreboot_TRUE@am__append_3919 = $(nodist_chain_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_3920 = \ +@COND_i386_efi_TRUE@am__append_3907 = chain.mod +@COND_i386_efi_TRUE@am__append_3908 = chain.marker +@COND_i386_coreboot_TRUE@am__append_3909 = chain.module +@COND_i386_coreboot_TRUE@am__append_3910 = chain.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_3911 = +@COND_i386_coreboot_TRUE@am__append_3912 = $(nodist_chain_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_3913 = \ @COND_i386_coreboot_TRUE@ $(nodist_chain_module_SOURCES) \ @COND_i386_coreboot_TRUE@ chain.marker -@COND_i386_coreboot_TRUE@am__append_3921 = chain.mod -@COND_i386_coreboot_TRUE@am__append_3922 = chain.marker -@COND_x86_64_efi_TRUE@am__append_3923 = chain.module -@COND_x86_64_efi_TRUE@am__append_3924 = chain.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_3925 = -@COND_x86_64_efi_TRUE@am__append_3926 = $(nodist_chain_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_3927 = \ +@COND_i386_coreboot_TRUE@am__append_3914 = chain.mod +@COND_i386_coreboot_TRUE@am__append_3915 = chain.marker +@COND_x86_64_efi_TRUE@am__append_3916 = chain.module +@COND_x86_64_efi_TRUE@am__append_3917 = chain.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_3918 = +@COND_x86_64_efi_TRUE@am__append_3919 = $(nodist_chain_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_3920 = \ @COND_x86_64_efi_TRUE@ $(nodist_chain_module_SOURCES) \ @COND_x86_64_efi_TRUE@ chain.marker -@COND_x86_64_efi_TRUE@am__append_3928 = chain.mod -@COND_x86_64_efi_TRUE@am__append_3929 = chain.marker -@COND_ia64_efi_TRUE@am__append_3930 = chain.module -@COND_ia64_efi_TRUE@am__append_3931 = chain.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_3932 = -@COND_ia64_efi_TRUE@am__append_3933 = $(nodist_chain_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_3934 = $(nodist_chain_module_SOURCES) \ +@COND_x86_64_efi_TRUE@am__append_3921 = chain.mod +@COND_x86_64_efi_TRUE@am__append_3922 = chain.marker +@COND_ia64_efi_TRUE@am__append_3923 = chain.module +@COND_ia64_efi_TRUE@am__append_3924 = chain.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_3925 = +@COND_ia64_efi_TRUE@am__append_3926 = $(nodist_chain_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_3927 = $(nodist_chain_module_SOURCES) \ @COND_ia64_efi_TRUE@ chain.marker -@COND_ia64_efi_TRUE@am__append_3935 = chain.mod -@COND_ia64_efi_TRUE@am__append_3936 = chain.marker -@COND_arm_efi_TRUE@am__append_3937 = chain.module -@COND_arm_efi_TRUE@am__append_3938 = chain.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_3939 = -@COND_arm_efi_TRUE@am__append_3940 = $(nodist_chain_module_SOURCES) -@COND_arm_efi_TRUE@am__append_3941 = $(nodist_chain_module_SOURCES) \ +@COND_ia64_efi_TRUE@am__append_3928 = chain.mod +@COND_ia64_efi_TRUE@am__append_3929 = chain.marker +@COND_arm_efi_TRUE@am__append_3930 = chain.module +@COND_arm_efi_TRUE@am__append_3931 = chain.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_3932 = +@COND_arm_efi_TRUE@am__append_3933 = $(nodist_chain_module_SOURCES) +@COND_arm_efi_TRUE@am__append_3934 = $(nodist_chain_module_SOURCES) \ @COND_arm_efi_TRUE@ chain.marker -@COND_arm_efi_TRUE@am__append_3942 = chain.mod -@COND_arm_efi_TRUE@am__append_3943 = chain.marker -@COND_arm64_efi_TRUE@am__append_3944 = chain.module -@COND_arm64_efi_TRUE@am__append_3945 = chain.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_3946 = -@COND_arm64_efi_TRUE@am__append_3947 = $(nodist_chain_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_3948 = $(nodist_chain_module_SOURCES) \ +@COND_arm_efi_TRUE@am__append_3935 = chain.mod +@COND_arm_efi_TRUE@am__append_3936 = chain.marker +@COND_arm64_efi_TRUE@am__append_3937 = chain.module +@COND_arm64_efi_TRUE@am__append_3938 = chain.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_3939 = +@COND_arm64_efi_TRUE@am__append_3940 = $(nodist_chain_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_3941 = $(nodist_chain_module_SOURCES) \ @COND_arm64_efi_TRUE@ chain.marker -@COND_arm64_efi_TRUE@am__append_3949 = chain.mod -@COND_arm64_efi_TRUE@am__append_3950 = chain.marker -@COND_riscv32_efi_TRUE@am__append_3951 = chain.module -@COND_riscv32_efi_TRUE@am__append_3952 = chain.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_3953 = -@COND_riscv32_efi_TRUE@am__append_3954 = $(nodist_chain_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_3955 = \ +@COND_arm64_efi_TRUE@am__append_3942 = chain.mod +@COND_arm64_efi_TRUE@am__append_3943 = chain.marker +@COND_riscv32_efi_TRUE@am__append_3944 = chain.module +@COND_riscv32_efi_TRUE@am__append_3945 = chain.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_3946 = +@COND_riscv32_efi_TRUE@am__append_3947 = $(nodist_chain_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_3948 = \ @COND_riscv32_efi_TRUE@ $(nodist_chain_module_SOURCES) \ @COND_riscv32_efi_TRUE@ chain.marker -@COND_riscv32_efi_TRUE@am__append_3956 = chain.mod -@COND_riscv32_efi_TRUE@am__append_3957 = chain.marker -@COND_riscv64_efi_TRUE@am__append_3958 = chain.module -@COND_riscv64_efi_TRUE@am__append_3959 = chain.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_3960 = -@COND_riscv64_efi_TRUE@am__append_3961 = $(nodist_chain_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_3962 = \ +@COND_riscv32_efi_TRUE@am__append_3949 = chain.mod +@COND_riscv32_efi_TRUE@am__append_3950 = chain.marker +@COND_riscv64_efi_TRUE@am__append_3951 = chain.module +@COND_riscv64_efi_TRUE@am__append_3952 = chain.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_3953 = +@COND_riscv64_efi_TRUE@am__append_3954 = $(nodist_chain_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_3955 = \ @COND_riscv64_efi_TRUE@ $(nodist_chain_module_SOURCES) \ @COND_riscv64_efi_TRUE@ chain.marker -@COND_riscv64_efi_TRUE@am__append_3963 = chain.mod -@COND_riscv64_efi_TRUE@am__append_3964 = chain.marker -@COND_i386_pc_TRUE@am__append_3965 = mmap.module -@COND_i386_pc_TRUE@am__append_3966 = mmap.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_3956 = chain.mod +@COND_riscv64_efi_TRUE@am__append_3957 = chain.marker +@COND_i386_pc_TRUE@am__append_3958 = mmap.module +@COND_i386_pc_TRUE@am__append_3959 = mmap.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_efi_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_x86_64_efi_FALSE@mmap_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_3967 = -@COND_i386_pc_TRUE@am__append_3968 = $(nodist_mmap_module_SOURCES) -@COND_i386_pc_TRUE@am__append_3969 = $(nodist_mmap_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3960 = +@COND_i386_pc_TRUE@am__append_3961 = $(nodist_mmap_module_SOURCES) +@COND_i386_pc_TRUE@am__append_3962 = $(nodist_mmap_module_SOURCES) \ @COND_i386_pc_TRUE@ mmap.marker -@COND_i386_pc_TRUE@am__append_3970 = mmap.mod -@COND_i386_pc_TRUE@am__append_3971 = mmap.marker -@COND_i386_efi_TRUE@am__append_3972 = mmap.module -@COND_i386_efi_TRUE@am__append_3973 = mmap.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_3974 = -@COND_i386_efi_TRUE@am__append_3975 = $(nodist_mmap_module_SOURCES) -@COND_i386_efi_TRUE@am__append_3976 = $(nodist_mmap_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_3963 = mmap.mod +@COND_i386_pc_TRUE@am__append_3964 = mmap.marker +@COND_i386_efi_TRUE@am__append_3965 = mmap.module +@COND_i386_efi_TRUE@am__append_3966 = mmap.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_3967 = +@COND_i386_efi_TRUE@am__append_3968 = $(nodist_mmap_module_SOURCES) +@COND_i386_efi_TRUE@am__append_3969 = $(nodist_mmap_module_SOURCES) \ @COND_i386_efi_TRUE@ mmap.marker -@COND_i386_efi_TRUE@am__append_3977 = mmap.mod -@COND_i386_efi_TRUE@am__append_3978 = mmap.marker -@COND_i386_qemu_TRUE@am__append_3979 = mmap.module -@COND_i386_qemu_TRUE@am__append_3980 = mmap.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_3981 = -@COND_i386_qemu_TRUE@am__append_3982 = $(nodist_mmap_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_3983 = $(nodist_mmap_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_3970 = mmap.mod +@COND_i386_efi_TRUE@am__append_3971 = mmap.marker +@COND_i386_qemu_TRUE@am__append_3972 = mmap.module +@COND_i386_qemu_TRUE@am__append_3973 = mmap.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_3974 = +@COND_i386_qemu_TRUE@am__append_3975 = $(nodist_mmap_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_3976 = $(nodist_mmap_module_SOURCES) \ @COND_i386_qemu_TRUE@ mmap.marker -@COND_i386_qemu_TRUE@am__append_3984 = mmap.mod -@COND_i386_qemu_TRUE@am__append_3985 = mmap.marker -@COND_i386_coreboot_TRUE@am__append_3986 = mmap.module -@COND_i386_coreboot_TRUE@am__append_3987 = mmap.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_3988 = -@COND_i386_coreboot_TRUE@am__append_3989 = $(nodist_mmap_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_3990 = \ +@COND_i386_qemu_TRUE@am__append_3977 = mmap.mod +@COND_i386_qemu_TRUE@am__append_3978 = mmap.marker +@COND_i386_coreboot_TRUE@am__append_3979 = mmap.module +@COND_i386_coreboot_TRUE@am__append_3980 = mmap.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_3981 = +@COND_i386_coreboot_TRUE@am__append_3982 = $(nodist_mmap_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_3983 = \ @COND_i386_coreboot_TRUE@ $(nodist_mmap_module_SOURCES) \ @COND_i386_coreboot_TRUE@ mmap.marker -@COND_i386_coreboot_TRUE@am__append_3991 = mmap.mod -@COND_i386_coreboot_TRUE@am__append_3992 = mmap.marker -@COND_i386_multiboot_TRUE@am__append_3993 = mmap.module -@COND_i386_multiboot_TRUE@am__append_3994 = mmap.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_3995 = -@COND_i386_multiboot_TRUE@am__append_3996 = $(nodist_mmap_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_3997 = \ +@COND_i386_coreboot_TRUE@am__append_3984 = mmap.mod +@COND_i386_coreboot_TRUE@am__append_3985 = mmap.marker +@COND_i386_multiboot_TRUE@am__append_3986 = mmap.module +@COND_i386_multiboot_TRUE@am__append_3987 = mmap.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_3988 = +@COND_i386_multiboot_TRUE@am__append_3989 = $(nodist_mmap_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_3990 = \ @COND_i386_multiboot_TRUE@ $(nodist_mmap_module_SOURCES) \ @COND_i386_multiboot_TRUE@ mmap.marker -@COND_i386_multiboot_TRUE@am__append_3998 = mmap.mod -@COND_i386_multiboot_TRUE@am__append_3999 = mmap.marker -@COND_i386_ieee1275_TRUE@am__append_4000 = mmap.module -@COND_i386_ieee1275_TRUE@am__append_4001 = mmap.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_4002 = -@COND_i386_ieee1275_TRUE@am__append_4003 = $(nodist_mmap_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_4004 = \ +@COND_i386_multiboot_TRUE@am__append_3991 = mmap.mod +@COND_i386_multiboot_TRUE@am__append_3992 = mmap.marker +@COND_i386_ieee1275_TRUE@am__append_3993 = mmap.module +@COND_i386_ieee1275_TRUE@am__append_3994 = mmap.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_3995 = +@COND_i386_ieee1275_TRUE@am__append_3996 = $(nodist_mmap_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_3997 = \ @COND_i386_ieee1275_TRUE@ $(nodist_mmap_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ mmap.marker -@COND_i386_ieee1275_TRUE@am__append_4005 = mmap.mod -@COND_i386_ieee1275_TRUE@am__append_4006 = mmap.marker -@COND_x86_64_efi_TRUE@am__append_4007 = mmap.module -@COND_x86_64_efi_TRUE@am__append_4008 = mmap.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4009 = -@COND_x86_64_efi_TRUE@am__append_4010 = $(nodist_mmap_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4011 = $(nodist_mmap_module_SOURCES) \ +@COND_i386_ieee1275_TRUE@am__append_3998 = mmap.mod +@COND_i386_ieee1275_TRUE@am__append_3999 = mmap.marker +@COND_x86_64_efi_TRUE@am__append_4000 = mmap.module +@COND_x86_64_efi_TRUE@am__append_4001 = mmap.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4002 = +@COND_x86_64_efi_TRUE@am__append_4003 = $(nodist_mmap_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4004 = $(nodist_mmap_module_SOURCES) \ @COND_x86_64_efi_TRUE@ mmap.marker -@COND_x86_64_efi_TRUE@am__append_4012 = mmap.mod -@COND_x86_64_efi_TRUE@am__append_4013 = mmap.marker -@COND_i386_xen_pvh_TRUE@am__append_4014 = mmap.module -@COND_i386_xen_pvh_TRUE@am__append_4015 = mmap.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_4016 = -@COND_i386_xen_pvh_TRUE@am__append_4017 = $(nodist_mmap_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_4018 = \ +@COND_x86_64_efi_TRUE@am__append_4005 = mmap.mod +@COND_x86_64_efi_TRUE@am__append_4006 = mmap.marker +@COND_i386_xen_pvh_TRUE@am__append_4007 = mmap.module +@COND_i386_xen_pvh_TRUE@am__append_4008 = mmap.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_4009 = +@COND_i386_xen_pvh_TRUE@am__append_4010 = $(nodist_mmap_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_4011 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_mmap_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ mmap.marker -@COND_i386_xen_pvh_TRUE@am__append_4019 = mmap.mod -@COND_i386_xen_pvh_TRUE@am__append_4020 = mmap.marker -@COND_mips_loongson_TRUE@am__append_4021 = mmap.module -@COND_mips_loongson_TRUE@am__append_4022 = mmap.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_4023 = -@COND_mips_loongson_TRUE@am__append_4024 = $(nodist_mmap_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_4025 = \ +@COND_i386_xen_pvh_TRUE@am__append_4012 = mmap.mod +@COND_i386_xen_pvh_TRUE@am__append_4013 = mmap.marker +@COND_mips_loongson_TRUE@am__append_4014 = mmap.module +@COND_mips_loongson_TRUE@am__append_4015 = mmap.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_4016 = +@COND_mips_loongson_TRUE@am__append_4017 = $(nodist_mmap_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_4018 = \ @COND_mips_loongson_TRUE@ $(nodist_mmap_module_SOURCES) \ @COND_mips_loongson_TRUE@ mmap.marker -@COND_mips_loongson_TRUE@am__append_4026 = mmap.mod -@COND_mips_loongson_TRUE@am__append_4027 = mmap.marker -@COND_mips_arc_TRUE@am__append_4028 = mmap.module -@COND_mips_arc_TRUE@am__append_4029 = mmap.module$(EXEEXT) -@COND_mips_arc_TRUE@am__append_4030 = -@COND_mips_arc_TRUE@am__append_4031 = $(nodist_mmap_module_SOURCES) -@COND_mips_arc_TRUE@am__append_4032 = $(nodist_mmap_module_SOURCES) \ +@COND_mips_loongson_TRUE@am__append_4019 = mmap.mod +@COND_mips_loongson_TRUE@am__append_4020 = mmap.marker +@COND_mips_arc_TRUE@am__append_4021 = mmap.module +@COND_mips_arc_TRUE@am__append_4022 = mmap.module$(EXEEXT) +@COND_mips_arc_TRUE@am__append_4023 = +@COND_mips_arc_TRUE@am__append_4024 = $(nodist_mmap_module_SOURCES) +@COND_mips_arc_TRUE@am__append_4025 = $(nodist_mmap_module_SOURCES) \ @COND_mips_arc_TRUE@ mmap.marker -@COND_mips_arc_TRUE@am__append_4033 = mmap.mod -@COND_mips_arc_TRUE@am__append_4034 = mmap.marker -@COND_ia64_efi_TRUE@am__append_4035 = mmap.module -@COND_ia64_efi_TRUE@am__append_4036 = mmap.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_4037 = -@COND_ia64_efi_TRUE@am__append_4038 = $(nodist_mmap_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_4039 = $(nodist_mmap_module_SOURCES) \ +@COND_mips_arc_TRUE@am__append_4026 = mmap.mod +@COND_mips_arc_TRUE@am__append_4027 = mmap.marker +@COND_ia64_efi_TRUE@am__append_4028 = mmap.module +@COND_ia64_efi_TRUE@am__append_4029 = mmap.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_4030 = +@COND_ia64_efi_TRUE@am__append_4031 = $(nodist_mmap_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_4032 = $(nodist_mmap_module_SOURCES) \ @COND_ia64_efi_TRUE@ mmap.marker -@COND_ia64_efi_TRUE@am__append_4040 = mmap.mod -@COND_ia64_efi_TRUE@am__append_4041 = mmap.marker -@COND_mips_qemu_mips_TRUE@am__append_4042 = mmap.module -@COND_mips_qemu_mips_TRUE@am__append_4043 = mmap.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_4044 = -@COND_mips_qemu_mips_TRUE@am__append_4045 = $(nodist_mmap_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_4046 = \ +@COND_ia64_efi_TRUE@am__append_4033 = mmap.mod +@COND_ia64_efi_TRUE@am__append_4034 = mmap.marker +@COND_mips_qemu_mips_TRUE@am__append_4035 = mmap.module +@COND_mips_qemu_mips_TRUE@am__append_4036 = mmap.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_4037 = +@COND_mips_qemu_mips_TRUE@am__append_4038 = $(nodist_mmap_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_4039 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_mmap_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ mmap.marker -@COND_mips_qemu_mips_TRUE@am__append_4047 = mmap.mod -@COND_mips_qemu_mips_TRUE@am__append_4048 = mmap.marker -@COND_arm_efi_TRUE@am__append_4049 = mmap.module -@COND_arm_efi_TRUE@am__append_4050 = mmap.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_4051 = -@COND_arm_efi_TRUE@am__append_4052 = $(nodist_mmap_module_SOURCES) -@COND_arm_efi_TRUE@am__append_4053 = $(nodist_mmap_module_SOURCES) \ +@COND_mips_qemu_mips_TRUE@am__append_4040 = mmap.mod +@COND_mips_qemu_mips_TRUE@am__append_4041 = mmap.marker +@COND_arm_efi_TRUE@am__append_4042 = mmap.module +@COND_arm_efi_TRUE@am__append_4043 = mmap.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_4044 = +@COND_arm_efi_TRUE@am__append_4045 = $(nodist_mmap_module_SOURCES) +@COND_arm_efi_TRUE@am__append_4046 = $(nodist_mmap_module_SOURCES) \ @COND_arm_efi_TRUE@ mmap.marker -@COND_arm_efi_TRUE@am__append_4054 = mmap.mod -@COND_arm_efi_TRUE@am__append_4055 = mmap.marker -@COND_arm64_efi_TRUE@am__append_4056 = mmap.module -@COND_arm64_efi_TRUE@am__append_4057 = mmap.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_4058 = -@COND_arm64_efi_TRUE@am__append_4059 = $(nodist_mmap_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_4060 = $(nodist_mmap_module_SOURCES) \ +@COND_arm_efi_TRUE@am__append_4047 = mmap.mod +@COND_arm_efi_TRUE@am__append_4048 = mmap.marker +@COND_arm64_efi_TRUE@am__append_4049 = mmap.module +@COND_arm64_efi_TRUE@am__append_4050 = mmap.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_4051 = +@COND_arm64_efi_TRUE@am__append_4052 = $(nodist_mmap_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_4053 = $(nodist_mmap_module_SOURCES) \ @COND_arm64_efi_TRUE@ mmap.marker -@COND_arm64_efi_TRUE@am__append_4061 = mmap.mod -@COND_arm64_efi_TRUE@am__append_4062 = mmap.marker -@COND_riscv32_efi_TRUE@am__append_4063 = mmap.module -@COND_riscv32_efi_TRUE@am__append_4064 = mmap.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_4065 = -@COND_riscv32_efi_TRUE@am__append_4066 = $(nodist_mmap_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_4067 = \ +@COND_arm64_efi_TRUE@am__append_4054 = mmap.mod +@COND_arm64_efi_TRUE@am__append_4055 = mmap.marker +@COND_riscv32_efi_TRUE@am__append_4056 = mmap.module +@COND_riscv32_efi_TRUE@am__append_4057 = mmap.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_4058 = +@COND_riscv32_efi_TRUE@am__append_4059 = $(nodist_mmap_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_4060 = \ @COND_riscv32_efi_TRUE@ $(nodist_mmap_module_SOURCES) \ @COND_riscv32_efi_TRUE@ mmap.marker -@COND_riscv32_efi_TRUE@am__append_4068 = mmap.mod -@COND_riscv32_efi_TRUE@am__append_4069 = mmap.marker -@COND_riscv64_efi_TRUE@am__append_4070 = mmap.module -@COND_riscv64_efi_TRUE@am__append_4071 = mmap.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_4072 = -@COND_riscv64_efi_TRUE@am__append_4073 = $(nodist_mmap_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_4074 = \ +@COND_riscv32_efi_TRUE@am__append_4061 = mmap.mod +@COND_riscv32_efi_TRUE@am__append_4062 = mmap.marker +@COND_riscv64_efi_TRUE@am__append_4063 = mmap.module +@COND_riscv64_efi_TRUE@am__append_4064 = mmap.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_4065 = +@COND_riscv64_efi_TRUE@am__append_4066 = $(nodist_mmap_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_4067 = \ @COND_riscv64_efi_TRUE@ $(nodist_mmap_module_SOURCES) \ @COND_riscv64_efi_TRUE@ mmap.marker -@COND_riscv64_efi_TRUE@am__append_4075 = mmap.mod -@COND_riscv64_efi_TRUE@am__append_4076 = mmap.marker -@COND_i386_pc_TRUE@am__append_4077 = at_keyboard.module -@COND_i386_pc_TRUE@am__append_4078 = at_keyboard.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_4068 = mmap.mod +@COND_riscv64_efi_TRUE@am__append_4069 = mmap.marker +@COND_i386_pc_TRUE@am__append_4070 = at_keyboard.module +@COND_i386_pc_TRUE@am__append_4071 = at_keyboard.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_x86_64_efi_FALSE@at_keyboard_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_4079 = -@COND_i386_pc_TRUE@am__append_4080 = $(nodist_at_keyboard_module_SOURCES) -@COND_i386_pc_TRUE@am__append_4081 = \ +@COND_i386_pc_TRUE@am__append_4072 = +@COND_i386_pc_TRUE@am__append_4073 = $(nodist_at_keyboard_module_SOURCES) +@COND_i386_pc_TRUE@am__append_4074 = \ @COND_i386_pc_TRUE@ $(nodist_at_keyboard_module_SOURCES) \ @COND_i386_pc_TRUE@ at_keyboard.marker -@COND_i386_pc_TRUE@am__append_4082 = at_keyboard.mod -@COND_i386_pc_TRUE@am__append_4083 = at_keyboard.marker -@COND_i386_efi_TRUE@am__append_4084 = at_keyboard.module -@COND_i386_efi_TRUE@am__append_4085 = at_keyboard.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_4086 = -@COND_i386_efi_TRUE@am__append_4087 = $(nodist_at_keyboard_module_SOURCES) -@COND_i386_efi_TRUE@am__append_4088 = \ +@COND_i386_pc_TRUE@am__append_4075 = at_keyboard.mod +@COND_i386_pc_TRUE@am__append_4076 = at_keyboard.marker +@COND_i386_efi_TRUE@am__append_4077 = at_keyboard.module +@COND_i386_efi_TRUE@am__append_4078 = at_keyboard.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_4079 = +@COND_i386_efi_TRUE@am__append_4080 = $(nodist_at_keyboard_module_SOURCES) +@COND_i386_efi_TRUE@am__append_4081 = \ @COND_i386_efi_TRUE@ $(nodist_at_keyboard_module_SOURCES) \ @COND_i386_efi_TRUE@ at_keyboard.marker -@COND_i386_efi_TRUE@am__append_4089 = at_keyboard.mod -@COND_i386_efi_TRUE@am__append_4090 = at_keyboard.marker -@COND_i386_qemu_TRUE@am__append_4091 = at_keyboard.module -@COND_i386_qemu_TRUE@am__append_4092 = at_keyboard.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_4093 = -@COND_i386_qemu_TRUE@am__append_4094 = $(nodist_at_keyboard_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_4095 = \ +@COND_i386_efi_TRUE@am__append_4082 = at_keyboard.mod +@COND_i386_efi_TRUE@am__append_4083 = at_keyboard.marker +@COND_i386_qemu_TRUE@am__append_4084 = at_keyboard.module +@COND_i386_qemu_TRUE@am__append_4085 = at_keyboard.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_4086 = +@COND_i386_qemu_TRUE@am__append_4087 = $(nodist_at_keyboard_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_4088 = \ @COND_i386_qemu_TRUE@ $(nodist_at_keyboard_module_SOURCES) \ @COND_i386_qemu_TRUE@ at_keyboard.marker -@COND_i386_qemu_TRUE@am__append_4096 = at_keyboard.mod -@COND_i386_qemu_TRUE@am__append_4097 = at_keyboard.marker -@COND_i386_coreboot_TRUE@am__append_4098 = at_keyboard.module -@COND_i386_coreboot_TRUE@am__append_4099 = at_keyboard.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_4100 = -@COND_i386_coreboot_TRUE@am__append_4101 = $(nodist_at_keyboard_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_4102 = \ +@COND_i386_qemu_TRUE@am__append_4089 = at_keyboard.mod +@COND_i386_qemu_TRUE@am__append_4090 = at_keyboard.marker +@COND_i386_coreboot_TRUE@am__append_4091 = at_keyboard.module +@COND_i386_coreboot_TRUE@am__append_4092 = at_keyboard.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_4093 = +@COND_i386_coreboot_TRUE@am__append_4094 = $(nodist_at_keyboard_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_4095 = \ @COND_i386_coreboot_TRUE@ $(nodist_at_keyboard_module_SOURCES) \ @COND_i386_coreboot_TRUE@ at_keyboard.marker -@COND_i386_coreboot_TRUE@am__append_4103 = at_keyboard.mod -@COND_i386_coreboot_TRUE@am__append_4104 = at_keyboard.marker -@COND_i386_multiboot_TRUE@am__append_4105 = at_keyboard.module -@COND_i386_multiboot_TRUE@am__append_4106 = at_keyboard.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_4107 = -@COND_i386_multiboot_TRUE@am__append_4108 = $(nodist_at_keyboard_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_4109 = $(nodist_at_keyboard_module_SOURCES) \ +@COND_i386_coreboot_TRUE@am__append_4096 = at_keyboard.mod +@COND_i386_coreboot_TRUE@am__append_4097 = at_keyboard.marker +@COND_i386_multiboot_TRUE@am__append_4098 = at_keyboard.module +@COND_i386_multiboot_TRUE@am__append_4099 = at_keyboard.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_4100 = +@COND_i386_multiboot_TRUE@am__append_4101 = $(nodist_at_keyboard_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_4102 = $(nodist_at_keyboard_module_SOURCES) \ @COND_i386_multiboot_TRUE@ at_keyboard.marker -@COND_i386_multiboot_TRUE@am__append_4110 = at_keyboard.mod -@COND_i386_multiboot_TRUE@am__append_4111 = at_keyboard.marker -@COND_i386_ieee1275_TRUE@am__append_4112 = at_keyboard.module -@COND_i386_ieee1275_TRUE@am__append_4113 = at_keyboard.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_4114 = -@COND_i386_ieee1275_TRUE@am__append_4115 = $(nodist_at_keyboard_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_4116 = \ +@COND_i386_multiboot_TRUE@am__append_4103 = at_keyboard.mod +@COND_i386_multiboot_TRUE@am__append_4104 = at_keyboard.marker +@COND_i386_ieee1275_TRUE@am__append_4105 = at_keyboard.module +@COND_i386_ieee1275_TRUE@am__append_4106 = at_keyboard.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_4107 = +@COND_i386_ieee1275_TRUE@am__append_4108 = $(nodist_at_keyboard_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_4109 = \ @COND_i386_ieee1275_TRUE@ $(nodist_at_keyboard_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ at_keyboard.marker -@COND_i386_ieee1275_TRUE@am__append_4117 = at_keyboard.mod -@COND_i386_ieee1275_TRUE@am__append_4118 = at_keyboard.marker -@COND_x86_64_efi_TRUE@am__append_4119 = at_keyboard.module -@COND_x86_64_efi_TRUE@am__append_4120 = at_keyboard.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4121 = -@COND_x86_64_efi_TRUE@am__append_4122 = $(nodist_at_keyboard_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4123 = \ +@COND_i386_ieee1275_TRUE@am__append_4110 = at_keyboard.mod +@COND_i386_ieee1275_TRUE@am__append_4111 = at_keyboard.marker +@COND_x86_64_efi_TRUE@am__append_4112 = at_keyboard.module +@COND_x86_64_efi_TRUE@am__append_4113 = at_keyboard.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4114 = +@COND_x86_64_efi_TRUE@am__append_4115 = $(nodist_at_keyboard_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4116 = \ @COND_x86_64_efi_TRUE@ $(nodist_at_keyboard_module_SOURCES) \ @COND_x86_64_efi_TRUE@ at_keyboard.marker -@COND_x86_64_efi_TRUE@am__append_4124 = at_keyboard.mod -@COND_x86_64_efi_TRUE@am__append_4125 = at_keyboard.marker -@COND_emu_TRUE@am__append_4126 = gfxterm.module -@COND_emu_TRUE@am__append_4127 = gfxterm.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4117 = at_keyboard.mod +@COND_x86_64_efi_TRUE@am__append_4118 = at_keyboard.marker +@COND_emu_TRUE@am__append_4119 = gfxterm.module +@COND_emu_TRUE@am__append_4120 = gfxterm.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@gfxterm_module_DEPENDENCIES = -@COND_emu_TRUE@am__append_4128 = -@COND_emu_TRUE@am__append_4129 = $(nodist_gfxterm_module_SOURCES) -@COND_emu_TRUE@am__append_4130 = $(nodist_gfxterm_module_SOURCES) \ +@COND_emu_TRUE@am__append_4121 = +@COND_emu_TRUE@am__append_4122 = $(nodist_gfxterm_module_SOURCES) +@COND_emu_TRUE@am__append_4123 = $(nodist_gfxterm_module_SOURCES) \ @COND_emu_TRUE@ gfxterm.marker -@COND_emu_TRUE@am__append_4131 = gfxterm.mod -@COND_emu_TRUE@am__append_4132 = gfxterm.marker -@COND_i386_pc_TRUE@am__append_4133 = gfxterm.module -@COND_i386_pc_TRUE@am__append_4134 = gfxterm.module$(EXEEXT) -@COND_i386_pc_TRUE@am__append_4135 = -@COND_i386_pc_TRUE@am__append_4136 = $(nodist_gfxterm_module_SOURCES) -@COND_i386_pc_TRUE@am__append_4137 = $(nodist_gfxterm_module_SOURCES) \ +@COND_emu_TRUE@am__append_4124 = gfxterm.mod +@COND_emu_TRUE@am__append_4125 = gfxterm.marker +@COND_i386_pc_TRUE@am__append_4126 = gfxterm.module +@COND_i386_pc_TRUE@am__append_4127 = gfxterm.module$(EXEEXT) +@COND_i386_pc_TRUE@am__append_4128 = +@COND_i386_pc_TRUE@am__append_4129 = $(nodist_gfxterm_module_SOURCES) +@COND_i386_pc_TRUE@am__append_4130 = $(nodist_gfxterm_module_SOURCES) \ @COND_i386_pc_TRUE@ gfxterm.marker -@COND_i386_pc_TRUE@am__append_4138 = gfxterm.mod -@COND_i386_pc_TRUE@am__append_4139 = gfxterm.marker -@COND_i386_efi_TRUE@am__append_4140 = gfxterm.module -@COND_i386_efi_TRUE@am__append_4141 = gfxterm.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_4142 = -@COND_i386_efi_TRUE@am__append_4143 = $(nodist_gfxterm_module_SOURCES) -@COND_i386_efi_TRUE@am__append_4144 = \ +@COND_i386_pc_TRUE@am__append_4131 = gfxterm.mod +@COND_i386_pc_TRUE@am__append_4132 = gfxterm.marker +@COND_i386_efi_TRUE@am__append_4133 = gfxterm.module +@COND_i386_efi_TRUE@am__append_4134 = gfxterm.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_4135 = +@COND_i386_efi_TRUE@am__append_4136 = $(nodist_gfxterm_module_SOURCES) +@COND_i386_efi_TRUE@am__append_4137 = \ @COND_i386_efi_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_i386_efi_TRUE@ gfxterm.marker -@COND_i386_efi_TRUE@am__append_4145 = gfxterm.mod -@COND_i386_efi_TRUE@am__append_4146 = gfxterm.marker -@COND_i386_qemu_TRUE@am__append_4147 = gfxterm.module -@COND_i386_qemu_TRUE@am__append_4148 = gfxterm.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_4149 = -@COND_i386_qemu_TRUE@am__append_4150 = $(nodist_gfxterm_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_4151 = \ +@COND_i386_efi_TRUE@am__append_4138 = gfxterm.mod +@COND_i386_efi_TRUE@am__append_4139 = gfxterm.marker +@COND_i386_qemu_TRUE@am__append_4140 = gfxterm.module +@COND_i386_qemu_TRUE@am__append_4141 = gfxterm.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_4142 = +@COND_i386_qemu_TRUE@am__append_4143 = $(nodist_gfxterm_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_4144 = \ @COND_i386_qemu_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_i386_qemu_TRUE@ gfxterm.marker -@COND_i386_qemu_TRUE@am__append_4152 = gfxterm.mod -@COND_i386_qemu_TRUE@am__append_4153 = gfxterm.marker -@COND_i386_multiboot_TRUE@am__append_4154 = gfxterm.module -@COND_i386_multiboot_TRUE@am__append_4155 = gfxterm.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_4156 = -@COND_i386_multiboot_TRUE@am__append_4157 = $(nodist_gfxterm_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_4158 = \ +@COND_i386_qemu_TRUE@am__append_4145 = gfxterm.mod +@COND_i386_qemu_TRUE@am__append_4146 = gfxterm.marker +@COND_i386_multiboot_TRUE@am__append_4147 = gfxterm.module +@COND_i386_multiboot_TRUE@am__append_4148 = gfxterm.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_4149 = +@COND_i386_multiboot_TRUE@am__append_4150 = $(nodist_gfxterm_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_4151 = \ @COND_i386_multiboot_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_i386_multiboot_TRUE@ gfxterm.marker -@COND_i386_multiboot_TRUE@am__append_4159 = gfxterm.mod -@COND_i386_multiboot_TRUE@am__append_4160 = gfxterm.marker -@COND_i386_ieee1275_TRUE@am__append_4161 = gfxterm.module -@COND_i386_ieee1275_TRUE@am__append_4162 = gfxterm.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_4163 = -@COND_i386_ieee1275_TRUE@am__append_4164 = $(nodist_gfxterm_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_4165 = \ +@COND_i386_multiboot_TRUE@am__append_4152 = gfxterm.mod +@COND_i386_multiboot_TRUE@am__append_4153 = gfxterm.marker +@COND_i386_ieee1275_TRUE@am__append_4154 = gfxterm.module +@COND_i386_ieee1275_TRUE@am__append_4155 = gfxterm.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_4156 = +@COND_i386_ieee1275_TRUE@am__append_4157 = $(nodist_gfxterm_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_4158 = \ @COND_i386_ieee1275_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ gfxterm.marker -@COND_i386_ieee1275_TRUE@am__append_4166 = gfxterm.mod -@COND_i386_ieee1275_TRUE@am__append_4167 = gfxterm.marker -@COND_x86_64_efi_TRUE@am__append_4168 = gfxterm.module -@COND_x86_64_efi_TRUE@am__append_4169 = gfxterm.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4170 = -@COND_x86_64_efi_TRUE@am__append_4171 = $(nodist_gfxterm_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4172 = \ +@COND_i386_ieee1275_TRUE@am__append_4159 = gfxterm.mod +@COND_i386_ieee1275_TRUE@am__append_4160 = gfxterm.marker +@COND_x86_64_efi_TRUE@am__append_4161 = gfxterm.module +@COND_x86_64_efi_TRUE@am__append_4162 = gfxterm.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4163 = +@COND_x86_64_efi_TRUE@am__append_4164 = $(nodist_gfxterm_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4165 = \ @COND_x86_64_efi_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_x86_64_efi_TRUE@ gfxterm.marker -@COND_x86_64_efi_TRUE@am__append_4173 = gfxterm.mod -@COND_x86_64_efi_TRUE@am__append_4174 = gfxterm.marker -@COND_i386_xen_TRUE@am__append_4175 = gfxterm.module -@COND_i386_xen_TRUE@am__append_4176 = gfxterm.module$(EXEEXT) -@COND_i386_xen_TRUE@am__append_4177 = -@COND_i386_xen_TRUE@am__append_4178 = $(nodist_gfxterm_module_SOURCES) -@COND_i386_xen_TRUE@am__append_4179 = \ +@COND_x86_64_efi_TRUE@am__append_4166 = gfxterm.mod +@COND_x86_64_efi_TRUE@am__append_4167 = gfxterm.marker +@COND_i386_xen_TRUE@am__append_4168 = gfxterm.module +@COND_i386_xen_TRUE@am__append_4169 = gfxterm.module$(EXEEXT) +@COND_i386_xen_TRUE@am__append_4170 = +@COND_i386_xen_TRUE@am__append_4171 = $(nodist_gfxterm_module_SOURCES) +@COND_i386_xen_TRUE@am__append_4172 = \ @COND_i386_xen_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_i386_xen_TRUE@ gfxterm.marker -@COND_i386_xen_TRUE@am__append_4180 = gfxterm.mod -@COND_i386_xen_TRUE@am__append_4181 = gfxterm.marker -@COND_x86_64_xen_TRUE@am__append_4182 = gfxterm.module -@COND_x86_64_xen_TRUE@am__append_4183 = gfxterm.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__append_4184 = -@COND_x86_64_xen_TRUE@am__append_4185 = $(nodist_gfxterm_module_SOURCES) -@COND_x86_64_xen_TRUE@am__append_4186 = \ +@COND_i386_xen_TRUE@am__append_4173 = gfxterm.mod +@COND_i386_xen_TRUE@am__append_4174 = gfxterm.marker +@COND_x86_64_xen_TRUE@am__append_4175 = gfxterm.module +@COND_x86_64_xen_TRUE@am__append_4176 = gfxterm.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__append_4177 = +@COND_x86_64_xen_TRUE@am__append_4178 = $(nodist_gfxterm_module_SOURCES) +@COND_x86_64_xen_TRUE@am__append_4179 = \ @COND_x86_64_xen_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_x86_64_xen_TRUE@ gfxterm.marker -@COND_x86_64_xen_TRUE@am__append_4187 = gfxterm.mod -@COND_x86_64_xen_TRUE@am__append_4188 = gfxterm.marker -@COND_i386_xen_pvh_TRUE@am__append_4189 = gfxterm.module -@COND_i386_xen_pvh_TRUE@am__append_4190 = gfxterm.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_4191 = -@COND_i386_xen_pvh_TRUE@am__append_4192 = $(nodist_gfxterm_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_4193 = \ +@COND_x86_64_xen_TRUE@am__append_4180 = gfxterm.mod +@COND_x86_64_xen_TRUE@am__append_4181 = gfxterm.marker +@COND_i386_xen_pvh_TRUE@am__append_4182 = gfxterm.module +@COND_i386_xen_pvh_TRUE@am__append_4183 = gfxterm.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_4184 = +@COND_i386_xen_pvh_TRUE@am__append_4185 = $(nodist_gfxterm_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_4186 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ gfxterm.marker -@COND_i386_xen_pvh_TRUE@am__append_4194 = gfxterm.mod -@COND_i386_xen_pvh_TRUE@am__append_4195 = gfxterm.marker -@COND_sparc64_ieee1275_TRUE@am__append_4196 = gfxterm.module -@COND_sparc64_ieee1275_TRUE@am__append_4197 = gfxterm.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__append_4198 = -@COND_sparc64_ieee1275_TRUE@am__append_4199 = $(nodist_gfxterm_module_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_4200 = \ +@COND_i386_xen_pvh_TRUE@am__append_4187 = gfxterm.mod +@COND_i386_xen_pvh_TRUE@am__append_4188 = gfxterm.marker +@COND_sparc64_ieee1275_TRUE@am__append_4189 = gfxterm.module +@COND_sparc64_ieee1275_TRUE@am__append_4190 = gfxterm.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__append_4191 = +@COND_sparc64_ieee1275_TRUE@am__append_4192 = $(nodist_gfxterm_module_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_4193 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ gfxterm.marker -@COND_sparc64_ieee1275_TRUE@am__append_4201 = gfxterm.mod -@COND_sparc64_ieee1275_TRUE@am__append_4202 = gfxterm.marker -@COND_powerpc_ieee1275_TRUE@am__append_4203 = gfxterm.module -@COND_powerpc_ieee1275_TRUE@am__append_4204 = gfxterm.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__append_4205 = -@COND_powerpc_ieee1275_TRUE@am__append_4206 = $(nodist_gfxterm_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_4207 = \ +@COND_sparc64_ieee1275_TRUE@am__append_4194 = gfxterm.mod +@COND_sparc64_ieee1275_TRUE@am__append_4195 = gfxterm.marker +@COND_powerpc_ieee1275_TRUE@am__append_4196 = gfxterm.module +@COND_powerpc_ieee1275_TRUE@am__append_4197 = gfxterm.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_4198 = +@COND_powerpc_ieee1275_TRUE@am__append_4199 = $(nodist_gfxterm_module_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_4200 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ gfxterm.marker -@COND_powerpc_ieee1275_TRUE@am__append_4208 = gfxterm.mod -@COND_powerpc_ieee1275_TRUE@am__append_4209 = gfxterm.marker -@COND_mips_arc_TRUE@am__append_4210 = gfxterm.module -@COND_mips_arc_TRUE@am__append_4211 = gfxterm.module$(EXEEXT) -@COND_mips_arc_TRUE@am__append_4212 = -@COND_mips_arc_TRUE@am__append_4213 = $(nodist_gfxterm_module_SOURCES) -@COND_mips_arc_TRUE@am__append_4214 = \ +@COND_powerpc_ieee1275_TRUE@am__append_4201 = gfxterm.mod +@COND_powerpc_ieee1275_TRUE@am__append_4202 = gfxterm.marker +@COND_mips_arc_TRUE@am__append_4203 = gfxterm.module +@COND_mips_arc_TRUE@am__append_4204 = gfxterm.module$(EXEEXT) +@COND_mips_arc_TRUE@am__append_4205 = +@COND_mips_arc_TRUE@am__append_4206 = $(nodist_gfxterm_module_SOURCES) +@COND_mips_arc_TRUE@am__append_4207 = \ @COND_mips_arc_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_mips_arc_TRUE@ gfxterm.marker -@COND_mips_arc_TRUE@am__append_4215 = gfxterm.mod -@COND_mips_arc_TRUE@am__append_4216 = gfxterm.marker -@COND_ia64_efi_TRUE@am__append_4217 = gfxterm.module -@COND_ia64_efi_TRUE@am__append_4218 = gfxterm.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_4219 = -@COND_ia64_efi_TRUE@am__append_4220 = $(nodist_gfxterm_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_4221 = \ +@COND_mips_arc_TRUE@am__append_4208 = gfxterm.mod +@COND_mips_arc_TRUE@am__append_4209 = gfxterm.marker +@COND_ia64_efi_TRUE@am__append_4210 = gfxterm.module +@COND_ia64_efi_TRUE@am__append_4211 = gfxterm.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_4212 = +@COND_ia64_efi_TRUE@am__append_4213 = $(nodist_gfxterm_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_4214 = \ @COND_ia64_efi_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_ia64_efi_TRUE@ gfxterm.marker -@COND_ia64_efi_TRUE@am__append_4222 = gfxterm.mod -@COND_ia64_efi_TRUE@am__append_4223 = gfxterm.marker -@COND_mips_qemu_mips_TRUE@am__append_4224 = gfxterm.module -@COND_mips_qemu_mips_TRUE@am__append_4225 = gfxterm.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_4226 = -@COND_mips_qemu_mips_TRUE@am__append_4227 = $(nodist_gfxterm_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_4228 = \ +@COND_ia64_efi_TRUE@am__append_4215 = gfxterm.mod +@COND_ia64_efi_TRUE@am__append_4216 = gfxterm.marker +@COND_mips_qemu_mips_TRUE@am__append_4217 = gfxterm.module +@COND_mips_qemu_mips_TRUE@am__append_4218 = gfxterm.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_4219 = +@COND_mips_qemu_mips_TRUE@am__append_4220 = $(nodist_gfxterm_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_4221 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ gfxterm.marker -@COND_mips_qemu_mips_TRUE@am__append_4229 = gfxterm.mod -@COND_mips_qemu_mips_TRUE@am__append_4230 = gfxterm.marker -@COND_arm_uboot_TRUE@am__append_4231 = gfxterm.module -@COND_arm_uboot_TRUE@am__append_4232 = gfxterm.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__append_4233 = -@COND_arm_uboot_TRUE@am__append_4234 = $(nodist_gfxterm_module_SOURCES) -@COND_arm_uboot_TRUE@am__append_4235 = \ +@COND_mips_qemu_mips_TRUE@am__append_4222 = gfxterm.mod +@COND_mips_qemu_mips_TRUE@am__append_4223 = gfxterm.marker +@COND_arm_uboot_TRUE@am__append_4224 = gfxterm.module +@COND_arm_uboot_TRUE@am__append_4225 = gfxterm.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__append_4226 = +@COND_arm_uboot_TRUE@am__append_4227 = $(nodist_gfxterm_module_SOURCES) +@COND_arm_uboot_TRUE@am__append_4228 = \ @COND_arm_uboot_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_arm_uboot_TRUE@ gfxterm.marker -@COND_arm_uboot_TRUE@am__append_4236 = gfxterm.mod -@COND_arm_uboot_TRUE@am__append_4237 = gfxterm.marker -@COND_arm_efi_TRUE@am__append_4238 = gfxterm.module -@COND_arm_efi_TRUE@am__append_4239 = gfxterm.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_4240 = -@COND_arm_efi_TRUE@am__append_4241 = $(nodist_gfxterm_module_SOURCES) -@COND_arm_efi_TRUE@am__append_4242 = $(nodist_gfxterm_module_SOURCES) \ +@COND_arm_uboot_TRUE@am__append_4229 = gfxterm.mod +@COND_arm_uboot_TRUE@am__append_4230 = gfxterm.marker +@COND_arm_efi_TRUE@am__append_4231 = gfxterm.module +@COND_arm_efi_TRUE@am__append_4232 = gfxterm.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_4233 = +@COND_arm_efi_TRUE@am__append_4234 = $(nodist_gfxterm_module_SOURCES) +@COND_arm_efi_TRUE@am__append_4235 = $(nodist_gfxterm_module_SOURCES) \ @COND_arm_efi_TRUE@ gfxterm.marker -@COND_arm_efi_TRUE@am__append_4243 = gfxterm.mod -@COND_arm_efi_TRUE@am__append_4244 = gfxterm.marker -@COND_arm64_efi_TRUE@am__append_4245 = gfxterm.module -@COND_arm64_efi_TRUE@am__append_4246 = gfxterm.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_4247 = -@COND_arm64_efi_TRUE@am__append_4248 = $(nodist_gfxterm_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_4249 = \ +@COND_arm_efi_TRUE@am__append_4236 = gfxterm.mod +@COND_arm_efi_TRUE@am__append_4237 = gfxterm.marker +@COND_arm64_efi_TRUE@am__append_4238 = gfxterm.module +@COND_arm64_efi_TRUE@am__append_4239 = gfxterm.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_4240 = +@COND_arm64_efi_TRUE@am__append_4241 = $(nodist_gfxterm_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_4242 = \ @COND_arm64_efi_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_arm64_efi_TRUE@ gfxterm.marker -@COND_arm64_efi_TRUE@am__append_4250 = gfxterm.mod -@COND_arm64_efi_TRUE@am__append_4251 = gfxterm.marker -@COND_riscv32_efi_TRUE@am__append_4252 = gfxterm.module -@COND_riscv32_efi_TRUE@am__append_4253 = gfxterm.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_4254 = -@COND_riscv32_efi_TRUE@am__append_4255 = $(nodist_gfxterm_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_4256 = \ +@COND_arm64_efi_TRUE@am__append_4243 = gfxterm.mod +@COND_arm64_efi_TRUE@am__append_4244 = gfxterm.marker +@COND_riscv32_efi_TRUE@am__append_4245 = gfxterm.module +@COND_riscv32_efi_TRUE@am__append_4246 = gfxterm.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_4247 = +@COND_riscv32_efi_TRUE@am__append_4248 = $(nodist_gfxterm_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_4249 = \ @COND_riscv32_efi_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_riscv32_efi_TRUE@ gfxterm.marker -@COND_riscv32_efi_TRUE@am__append_4257 = gfxterm.mod -@COND_riscv32_efi_TRUE@am__append_4258 = gfxterm.marker -@COND_riscv64_efi_TRUE@am__append_4259 = gfxterm.module -@COND_riscv64_efi_TRUE@am__append_4260 = gfxterm.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_4261 = -@COND_riscv64_efi_TRUE@am__append_4262 = $(nodist_gfxterm_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_4263 = \ +@COND_riscv32_efi_TRUE@am__append_4250 = gfxterm.mod +@COND_riscv32_efi_TRUE@am__append_4251 = gfxterm.marker +@COND_riscv64_efi_TRUE@am__append_4252 = gfxterm.module +@COND_riscv64_efi_TRUE@am__append_4253 = gfxterm.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_4254 = +@COND_riscv64_efi_TRUE@am__append_4255 = $(nodist_gfxterm_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_4256 = \ @COND_riscv64_efi_TRUE@ $(nodist_gfxterm_module_SOURCES) \ @COND_riscv64_efi_TRUE@ gfxterm.marker -@COND_riscv64_efi_TRUE@am__append_4264 = gfxterm.mod -@COND_riscv64_efi_TRUE@am__append_4265 = gfxterm.marker -@COND_i386_pc_TRUE@am__append_4266 = serial.module -@COND_i386_pc_TRUE@am__append_4267 = serial.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_4257 = gfxterm.mod +@COND_riscv64_efi_TRUE@am__append_4258 = gfxterm.marker +@COND_i386_pc_TRUE@am__append_4259 = serial.module +@COND_i386_pc_TRUE@am__append_4260 = serial.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@serial_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_4268 = -@COND_i386_pc_TRUE@am__append_4269 = $(nodist_serial_module_SOURCES) -@COND_i386_pc_TRUE@am__append_4270 = $(nodist_serial_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_4261 = +@COND_i386_pc_TRUE@am__append_4262 = $(nodist_serial_module_SOURCES) +@COND_i386_pc_TRUE@am__append_4263 = $(nodist_serial_module_SOURCES) \ @COND_i386_pc_TRUE@ serial.marker -@COND_i386_pc_TRUE@am__append_4271 = serial.mod -@COND_i386_pc_TRUE@am__append_4272 = serial.marker -@COND_i386_efi_TRUE@am__append_4273 = serial.module -@COND_i386_efi_TRUE@am__append_4274 = serial.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_4275 = -@COND_i386_efi_TRUE@am__append_4276 = $(nodist_serial_module_SOURCES) -@COND_i386_efi_TRUE@am__append_4277 = $(nodist_serial_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_4264 = serial.mod +@COND_i386_pc_TRUE@am__append_4265 = serial.marker +@COND_i386_efi_TRUE@am__append_4266 = serial.module +@COND_i386_efi_TRUE@am__append_4267 = serial.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_4268 = +@COND_i386_efi_TRUE@am__append_4269 = $(nodist_serial_module_SOURCES) +@COND_i386_efi_TRUE@am__append_4270 = $(nodist_serial_module_SOURCES) \ @COND_i386_efi_TRUE@ serial.marker -@COND_i386_efi_TRUE@am__append_4278 = serial.mod -@COND_i386_efi_TRUE@am__append_4279 = serial.marker -@COND_i386_qemu_TRUE@am__append_4280 = serial.module -@COND_i386_qemu_TRUE@am__append_4281 = serial.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_4282 = -@COND_i386_qemu_TRUE@am__append_4283 = $(nodist_serial_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_4284 = \ +@COND_i386_efi_TRUE@am__append_4271 = serial.mod +@COND_i386_efi_TRUE@am__append_4272 = serial.marker +@COND_i386_qemu_TRUE@am__append_4273 = serial.module +@COND_i386_qemu_TRUE@am__append_4274 = serial.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_4275 = +@COND_i386_qemu_TRUE@am__append_4276 = $(nodist_serial_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_4277 = \ @COND_i386_qemu_TRUE@ $(nodist_serial_module_SOURCES) \ @COND_i386_qemu_TRUE@ serial.marker -@COND_i386_qemu_TRUE@am__append_4285 = serial.mod -@COND_i386_qemu_TRUE@am__append_4286 = serial.marker -@COND_i386_coreboot_TRUE@am__append_4287 = serial.module -@COND_i386_coreboot_TRUE@am__append_4288 = serial.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_4289 = -@COND_i386_coreboot_TRUE@am__append_4290 = $(nodist_serial_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_4291 = \ +@COND_i386_qemu_TRUE@am__append_4278 = serial.mod +@COND_i386_qemu_TRUE@am__append_4279 = serial.marker +@COND_i386_coreboot_TRUE@am__append_4280 = serial.module +@COND_i386_coreboot_TRUE@am__append_4281 = serial.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_4282 = +@COND_i386_coreboot_TRUE@am__append_4283 = $(nodist_serial_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_4284 = \ @COND_i386_coreboot_TRUE@ $(nodist_serial_module_SOURCES) \ @COND_i386_coreboot_TRUE@ serial.marker -@COND_i386_coreboot_TRUE@am__append_4292 = serial.mod -@COND_i386_coreboot_TRUE@am__append_4293 = serial.marker -@COND_i386_multiboot_TRUE@am__append_4294 = serial.module -@COND_i386_multiboot_TRUE@am__append_4295 = serial.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_4296 = -@COND_i386_multiboot_TRUE@am__append_4297 = $(nodist_serial_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_4298 = \ +@COND_i386_coreboot_TRUE@am__append_4285 = serial.mod +@COND_i386_coreboot_TRUE@am__append_4286 = serial.marker +@COND_i386_multiboot_TRUE@am__append_4287 = serial.module +@COND_i386_multiboot_TRUE@am__append_4288 = serial.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_4289 = +@COND_i386_multiboot_TRUE@am__append_4290 = $(nodist_serial_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_4291 = \ @COND_i386_multiboot_TRUE@ $(nodist_serial_module_SOURCES) \ @COND_i386_multiboot_TRUE@ serial.marker -@COND_i386_multiboot_TRUE@am__append_4299 = serial.mod -@COND_i386_multiboot_TRUE@am__append_4300 = serial.marker -@COND_i386_ieee1275_TRUE@am__append_4301 = serial.module -@COND_i386_ieee1275_TRUE@am__append_4302 = serial.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_4303 = -@COND_i386_ieee1275_TRUE@am__append_4304 = $(nodist_serial_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_4305 = \ +@COND_i386_multiboot_TRUE@am__append_4292 = serial.mod +@COND_i386_multiboot_TRUE@am__append_4293 = serial.marker +@COND_i386_ieee1275_TRUE@am__append_4294 = serial.module +@COND_i386_ieee1275_TRUE@am__append_4295 = serial.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_4296 = +@COND_i386_ieee1275_TRUE@am__append_4297 = $(nodist_serial_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_4298 = \ @COND_i386_ieee1275_TRUE@ $(nodist_serial_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ serial.marker -@COND_i386_ieee1275_TRUE@am__append_4306 = serial.mod -@COND_i386_ieee1275_TRUE@am__append_4307 = serial.marker -@COND_x86_64_efi_TRUE@am__append_4308 = serial.module -@COND_x86_64_efi_TRUE@am__append_4309 = serial.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4310 = -@COND_x86_64_efi_TRUE@am__append_4311 = $(nodist_serial_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4312 = \ +@COND_i386_ieee1275_TRUE@am__append_4299 = serial.mod +@COND_i386_ieee1275_TRUE@am__append_4300 = serial.marker +@COND_x86_64_efi_TRUE@am__append_4301 = serial.module +@COND_x86_64_efi_TRUE@am__append_4302 = serial.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4303 = +@COND_x86_64_efi_TRUE@am__append_4304 = $(nodist_serial_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4305 = \ @COND_x86_64_efi_TRUE@ $(nodist_serial_module_SOURCES) \ @COND_x86_64_efi_TRUE@ serial.marker -@COND_x86_64_efi_TRUE@am__append_4313 = serial.mod -@COND_x86_64_efi_TRUE@am__append_4314 = serial.marker -@COND_sparc64_ieee1275_TRUE@am__append_4315 = serial.module -@COND_sparc64_ieee1275_TRUE@am__append_4316 = serial.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__append_4317 = -@COND_sparc64_ieee1275_TRUE@am__append_4318 = $(nodist_serial_module_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_4319 = \ +@COND_x86_64_efi_TRUE@am__append_4306 = serial.mod +@COND_x86_64_efi_TRUE@am__append_4307 = serial.marker +@COND_sparc64_ieee1275_TRUE@am__append_4308 = serial.module +@COND_sparc64_ieee1275_TRUE@am__append_4309 = serial.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__append_4310 = +@COND_sparc64_ieee1275_TRUE@am__append_4311 = $(nodist_serial_module_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_4312 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_serial_module_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ serial.marker -@COND_sparc64_ieee1275_TRUE@am__append_4320 = serial.mod -@COND_sparc64_ieee1275_TRUE@am__append_4321 = serial.marker -@COND_powerpc_ieee1275_TRUE@am__append_4322 = serial.module -@COND_powerpc_ieee1275_TRUE@am__append_4323 = serial.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__append_4324 = -@COND_powerpc_ieee1275_TRUE@am__append_4325 = $(nodist_serial_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_4326 = \ +@COND_sparc64_ieee1275_TRUE@am__append_4313 = serial.mod +@COND_sparc64_ieee1275_TRUE@am__append_4314 = serial.marker +@COND_powerpc_ieee1275_TRUE@am__append_4315 = serial.module +@COND_powerpc_ieee1275_TRUE@am__append_4316 = serial.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_4317 = +@COND_powerpc_ieee1275_TRUE@am__append_4318 = $(nodist_serial_module_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_4319 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_serial_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ serial.marker -@COND_powerpc_ieee1275_TRUE@am__append_4327 = serial.mod -@COND_powerpc_ieee1275_TRUE@am__append_4328 = serial.marker -@COND_mips_arc_TRUE@am__append_4329 = serial.module -@COND_mips_arc_TRUE@am__append_4330 = serial.module$(EXEEXT) -@COND_mips_arc_TRUE@am__append_4331 = -@COND_mips_arc_TRUE@am__append_4332 = $(nodist_serial_module_SOURCES) -@COND_mips_arc_TRUE@am__append_4333 = $(nodist_serial_module_SOURCES) \ +@COND_powerpc_ieee1275_TRUE@am__append_4320 = serial.mod +@COND_powerpc_ieee1275_TRUE@am__append_4321 = serial.marker +@COND_mips_arc_TRUE@am__append_4322 = serial.module +@COND_mips_arc_TRUE@am__append_4323 = serial.module$(EXEEXT) +@COND_mips_arc_TRUE@am__append_4324 = +@COND_mips_arc_TRUE@am__append_4325 = $(nodist_serial_module_SOURCES) +@COND_mips_arc_TRUE@am__append_4326 = $(nodist_serial_module_SOURCES) \ @COND_mips_arc_TRUE@ serial.marker -@COND_mips_arc_TRUE@am__append_4334 = serial.mod -@COND_mips_arc_TRUE@am__append_4335 = serial.marker -@COND_ia64_efi_TRUE@am__append_4336 = serial.module -@COND_ia64_efi_TRUE@am__append_4337 = serial.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_4338 = -@COND_ia64_efi_TRUE@am__append_4339 = $(nodist_serial_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_4340 = $(nodist_serial_module_SOURCES) \ +@COND_mips_arc_TRUE@am__append_4327 = serial.mod +@COND_mips_arc_TRUE@am__append_4328 = serial.marker +@COND_ia64_efi_TRUE@am__append_4329 = serial.module +@COND_ia64_efi_TRUE@am__append_4330 = serial.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_4331 = +@COND_ia64_efi_TRUE@am__append_4332 = $(nodist_serial_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_4333 = $(nodist_serial_module_SOURCES) \ @COND_ia64_efi_TRUE@ serial.marker -@COND_ia64_efi_TRUE@am__append_4341 = serial.mod -@COND_ia64_efi_TRUE@am__append_4342 = serial.marker -@COND_arm_efi_TRUE@am__append_4343 = serial.module -@COND_arm_efi_TRUE@am__append_4344 = serial.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_4345 = -@COND_arm_efi_TRUE@am__append_4346 = $(nodist_serial_module_SOURCES) -@COND_arm_efi_TRUE@am__append_4347 = $(nodist_serial_module_SOURCES) \ +@COND_ia64_efi_TRUE@am__append_4334 = serial.mod +@COND_ia64_efi_TRUE@am__append_4335 = serial.marker +@COND_arm_efi_TRUE@am__append_4336 = serial.module +@COND_arm_efi_TRUE@am__append_4337 = serial.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_4338 = +@COND_arm_efi_TRUE@am__append_4339 = $(nodist_serial_module_SOURCES) +@COND_arm_efi_TRUE@am__append_4340 = $(nodist_serial_module_SOURCES) \ @COND_arm_efi_TRUE@ serial.marker -@COND_arm_efi_TRUE@am__append_4348 = serial.mod -@COND_arm_efi_TRUE@am__append_4349 = serial.marker -@COND_arm64_efi_TRUE@am__append_4350 = serial.module -@COND_arm64_efi_TRUE@am__append_4351 = serial.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_4352 = -@COND_arm64_efi_TRUE@am__append_4353 = $(nodist_serial_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_4354 = \ +@COND_arm_efi_TRUE@am__append_4341 = serial.mod +@COND_arm_efi_TRUE@am__append_4342 = serial.marker +@COND_arm64_efi_TRUE@am__append_4343 = serial.module +@COND_arm64_efi_TRUE@am__append_4344 = serial.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_4345 = +@COND_arm64_efi_TRUE@am__append_4346 = $(nodist_serial_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_4347 = \ @COND_arm64_efi_TRUE@ $(nodist_serial_module_SOURCES) \ @COND_arm64_efi_TRUE@ serial.marker -@COND_arm64_efi_TRUE@am__append_4355 = serial.mod -@COND_arm64_efi_TRUE@am__append_4356 = serial.marker -@COND_arm_coreboot_TRUE@am__append_4357 = serial.module -@COND_arm_coreboot_TRUE@am__append_4358 = serial.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__append_4359 = -@COND_arm_coreboot_TRUE@am__append_4360 = $(nodist_serial_module_SOURCES) -@COND_arm_coreboot_TRUE@am__append_4361 = \ +@COND_arm64_efi_TRUE@am__append_4348 = serial.mod +@COND_arm64_efi_TRUE@am__append_4349 = serial.marker +@COND_arm_coreboot_TRUE@am__append_4350 = serial.module +@COND_arm_coreboot_TRUE@am__append_4351 = serial.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__append_4352 = +@COND_arm_coreboot_TRUE@am__append_4353 = $(nodist_serial_module_SOURCES) +@COND_arm_coreboot_TRUE@am__append_4354 = \ @COND_arm_coreboot_TRUE@ $(nodist_serial_module_SOURCES) \ @COND_arm_coreboot_TRUE@ serial.marker -@COND_arm_coreboot_TRUE@am__append_4362 = serial.mod -@COND_arm_coreboot_TRUE@am__append_4363 = serial.marker -@COND_riscv32_efi_TRUE@am__append_4364 = serial.module -@COND_riscv32_efi_TRUE@am__append_4365 = serial.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_4366 = -@COND_riscv32_efi_TRUE@am__append_4367 = $(nodist_serial_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_4368 = \ +@COND_arm_coreboot_TRUE@am__append_4355 = serial.mod +@COND_arm_coreboot_TRUE@am__append_4356 = serial.marker +@COND_riscv32_efi_TRUE@am__append_4357 = serial.module +@COND_riscv32_efi_TRUE@am__append_4358 = serial.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_4359 = +@COND_riscv32_efi_TRUE@am__append_4360 = $(nodist_serial_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_4361 = \ @COND_riscv32_efi_TRUE@ $(nodist_serial_module_SOURCES) \ @COND_riscv32_efi_TRUE@ serial.marker -@COND_riscv32_efi_TRUE@am__append_4369 = serial.mod -@COND_riscv32_efi_TRUE@am__append_4370 = serial.marker -@COND_riscv64_efi_TRUE@am__append_4371 = serial.module -@COND_riscv64_efi_TRUE@am__append_4372 = serial.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_4373 = -@COND_riscv64_efi_TRUE@am__append_4374 = $(nodist_serial_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_4375 = \ +@COND_riscv32_efi_TRUE@am__append_4362 = serial.mod +@COND_riscv32_efi_TRUE@am__append_4363 = serial.marker +@COND_riscv64_efi_TRUE@am__append_4364 = serial.module +@COND_riscv64_efi_TRUE@am__append_4365 = serial.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_4366 = +@COND_riscv64_efi_TRUE@am__append_4367 = $(nodist_serial_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_4368 = \ @COND_riscv64_efi_TRUE@ $(nodist_serial_module_SOURCES) \ @COND_riscv64_efi_TRUE@ serial.marker -@COND_riscv64_efi_TRUE@am__append_4376 = serial.mod -@COND_riscv64_efi_TRUE@am__append_4377 = serial.marker -@COND_i386_pc_TRUE@am__append_4378 = sendkey.module terminfo.module -@COND_i386_pc_TRUE@am__append_4379 = sendkey.module$(EXEEXT) \ +@COND_riscv64_efi_TRUE@am__append_4369 = serial.mod +@COND_riscv64_efi_TRUE@am__append_4370 = serial.marker +@COND_i386_pc_TRUE@am__append_4371 = sendkey.module terminfo.module +@COND_i386_pc_TRUE@am__append_4372 = sendkey.module$(EXEEXT) \ @COND_i386_pc_TRUE@ terminfo.module$(EXEEXT) @COND_i386_pc_FALSE@sendkey_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_4380 = -@COND_i386_pc_TRUE@am__append_4381 = $(nodist_sendkey_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_4373 = +@COND_i386_pc_TRUE@am__append_4374 = $(nodist_sendkey_module_SOURCES) \ @COND_i386_pc_TRUE@ $(nodist_terminfo_module_SOURCES) -@COND_i386_pc_TRUE@am__append_4382 = $(nodist_sendkey_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_4375 = $(nodist_sendkey_module_SOURCES) \ @COND_i386_pc_TRUE@ sendkey.marker \ @COND_i386_pc_TRUE@ $(nodist_terminfo_module_SOURCES) \ @COND_i386_pc_TRUE@ terminfo.marker -@COND_i386_pc_TRUE@am__append_4383 = sendkey.mod terminfo.mod -@COND_i386_pc_TRUE@am__append_4384 = sendkey.marker terminfo.marker +@COND_i386_pc_TRUE@am__append_4376 = sendkey.mod terminfo.mod +@COND_i386_pc_TRUE@am__append_4377 = sendkey.marker terminfo.marker @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_ia64_efi_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_x86_64_efi_FALSE@terminfo_module_DEPENDENCIES = -@COND_i386_efi_TRUE@am__append_4385 = terminfo.module -@COND_i386_efi_TRUE@am__append_4386 = terminfo.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_4387 = -@COND_i386_efi_TRUE@am__append_4388 = $(nodist_terminfo_module_SOURCES) -@COND_i386_efi_TRUE@am__append_4389 = \ +@COND_i386_efi_TRUE@am__append_4378 = terminfo.module +@COND_i386_efi_TRUE@am__append_4379 = terminfo.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_4380 = +@COND_i386_efi_TRUE@am__append_4381 = $(nodist_terminfo_module_SOURCES) +@COND_i386_efi_TRUE@am__append_4382 = \ @COND_i386_efi_TRUE@ $(nodist_terminfo_module_SOURCES) \ @COND_i386_efi_TRUE@ terminfo.marker -@COND_i386_efi_TRUE@am__append_4390 = terminfo.mod -@COND_i386_efi_TRUE@am__append_4391 = terminfo.marker -@COND_i386_qemu_TRUE@am__append_4392 = terminfo.module -@COND_i386_qemu_TRUE@am__append_4393 = terminfo.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_4394 = -@COND_i386_qemu_TRUE@am__append_4395 = $(nodist_terminfo_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_4396 = \ +@COND_i386_efi_TRUE@am__append_4383 = terminfo.mod +@COND_i386_efi_TRUE@am__append_4384 = terminfo.marker +@COND_i386_qemu_TRUE@am__append_4385 = terminfo.module +@COND_i386_qemu_TRUE@am__append_4386 = terminfo.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_4387 = +@COND_i386_qemu_TRUE@am__append_4388 = $(nodist_terminfo_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_4389 = \ @COND_i386_qemu_TRUE@ $(nodist_terminfo_module_SOURCES) \ @COND_i386_qemu_TRUE@ terminfo.marker -@COND_i386_qemu_TRUE@am__append_4397 = terminfo.mod -@COND_i386_qemu_TRUE@am__append_4398 = terminfo.marker -@COND_i386_coreboot_TRUE@am__append_4399 = terminfo.module -@COND_i386_coreboot_TRUE@am__append_4400 = terminfo.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_4401 = -@COND_i386_coreboot_TRUE@am__append_4402 = $(nodist_terminfo_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_4403 = \ +@COND_i386_qemu_TRUE@am__append_4390 = terminfo.mod +@COND_i386_qemu_TRUE@am__append_4391 = terminfo.marker +@COND_i386_coreboot_TRUE@am__append_4392 = terminfo.module +@COND_i386_coreboot_TRUE@am__append_4393 = terminfo.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_4394 = +@COND_i386_coreboot_TRUE@am__append_4395 = $(nodist_terminfo_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_4396 = \ @COND_i386_coreboot_TRUE@ $(nodist_terminfo_module_SOURCES) \ @COND_i386_coreboot_TRUE@ terminfo.marker -@COND_i386_coreboot_TRUE@am__append_4404 = terminfo.mod -@COND_i386_coreboot_TRUE@am__append_4405 = terminfo.marker -@COND_i386_multiboot_TRUE@am__append_4406 = terminfo.module -@COND_i386_multiboot_TRUE@am__append_4407 = terminfo.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_4408 = -@COND_i386_multiboot_TRUE@am__append_4409 = $(nodist_terminfo_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_4410 = \ +@COND_i386_coreboot_TRUE@am__append_4397 = terminfo.mod +@COND_i386_coreboot_TRUE@am__append_4398 = terminfo.marker +@COND_i386_multiboot_TRUE@am__append_4399 = terminfo.module +@COND_i386_multiboot_TRUE@am__append_4400 = terminfo.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_4401 = +@COND_i386_multiboot_TRUE@am__append_4402 = $(nodist_terminfo_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_4403 = \ @COND_i386_multiboot_TRUE@ $(nodist_terminfo_module_SOURCES) \ @COND_i386_multiboot_TRUE@ terminfo.marker -@COND_i386_multiboot_TRUE@am__append_4411 = terminfo.mod -@COND_i386_multiboot_TRUE@am__append_4412 = terminfo.marker -@COND_x86_64_efi_TRUE@am__append_4413 = terminfo.module -@COND_x86_64_efi_TRUE@am__append_4414 = terminfo.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4415 = -@COND_x86_64_efi_TRUE@am__append_4416 = $(nodist_terminfo_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4417 = \ +@COND_i386_multiboot_TRUE@am__append_4404 = terminfo.mod +@COND_i386_multiboot_TRUE@am__append_4405 = terminfo.marker +@COND_x86_64_efi_TRUE@am__append_4406 = terminfo.module +@COND_x86_64_efi_TRUE@am__append_4407 = terminfo.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4408 = +@COND_x86_64_efi_TRUE@am__append_4409 = $(nodist_terminfo_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4410 = \ @COND_x86_64_efi_TRUE@ $(nodist_terminfo_module_SOURCES) \ @COND_x86_64_efi_TRUE@ terminfo.marker -@COND_x86_64_efi_TRUE@am__append_4418 = terminfo.mod -@COND_x86_64_efi_TRUE@am__append_4419 = terminfo.marker -@COND_ia64_efi_TRUE@am__append_4420 = terminfo.module -@COND_ia64_efi_TRUE@am__append_4421 = terminfo.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_4422 = -@COND_ia64_efi_TRUE@am__append_4423 = $(nodist_terminfo_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_4424 = \ +@COND_x86_64_efi_TRUE@am__append_4411 = terminfo.mod +@COND_x86_64_efi_TRUE@am__append_4412 = terminfo.marker +@COND_ia64_efi_TRUE@am__append_4413 = terminfo.module +@COND_ia64_efi_TRUE@am__append_4414 = terminfo.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_4415 = +@COND_ia64_efi_TRUE@am__append_4416 = $(nodist_terminfo_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_4417 = \ @COND_ia64_efi_TRUE@ $(nodist_terminfo_module_SOURCES) \ @COND_ia64_efi_TRUE@ terminfo.marker -@COND_ia64_efi_TRUE@am__append_4425 = terminfo.mod -@COND_ia64_efi_TRUE@am__append_4426 = terminfo.marker -@COND_arm_efi_TRUE@am__append_4427 = terminfo.module -@COND_arm_efi_TRUE@am__append_4428 = terminfo.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_4429 = -@COND_arm_efi_TRUE@am__append_4430 = $(nodist_terminfo_module_SOURCES) -@COND_arm_efi_TRUE@am__append_4431 = \ +@COND_ia64_efi_TRUE@am__append_4418 = terminfo.mod +@COND_ia64_efi_TRUE@am__append_4419 = terminfo.marker +@COND_arm_efi_TRUE@am__append_4420 = terminfo.module +@COND_arm_efi_TRUE@am__append_4421 = terminfo.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_4422 = +@COND_arm_efi_TRUE@am__append_4423 = $(nodist_terminfo_module_SOURCES) +@COND_arm_efi_TRUE@am__append_4424 = \ @COND_arm_efi_TRUE@ $(nodist_terminfo_module_SOURCES) \ @COND_arm_efi_TRUE@ terminfo.marker -@COND_arm_efi_TRUE@am__append_4432 = terminfo.mod -@COND_arm_efi_TRUE@am__append_4433 = terminfo.marker -@COND_arm64_efi_TRUE@am__append_4434 = terminfo.module -@COND_arm64_efi_TRUE@am__append_4435 = terminfo.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_4436 = -@COND_arm64_efi_TRUE@am__append_4437 = $(nodist_terminfo_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_4438 = \ +@COND_arm_efi_TRUE@am__append_4425 = terminfo.mod +@COND_arm_efi_TRUE@am__append_4426 = terminfo.marker +@COND_arm64_efi_TRUE@am__append_4427 = terminfo.module +@COND_arm64_efi_TRUE@am__append_4428 = terminfo.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_4429 = +@COND_arm64_efi_TRUE@am__append_4430 = $(nodist_terminfo_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_4431 = \ @COND_arm64_efi_TRUE@ $(nodist_terminfo_module_SOURCES) \ @COND_arm64_efi_TRUE@ terminfo.marker -@COND_arm64_efi_TRUE@am__append_4439 = terminfo.mod -@COND_arm64_efi_TRUE@am__append_4440 = terminfo.marker -@COND_arm_coreboot_TRUE@am__append_4441 = terminfo.module -@COND_arm_coreboot_TRUE@am__append_4442 = terminfo.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__append_4443 = -@COND_arm_coreboot_TRUE@am__append_4444 = $(nodist_terminfo_module_SOURCES) -@COND_arm_coreboot_TRUE@am__append_4445 = \ +@COND_arm64_efi_TRUE@am__append_4432 = terminfo.mod +@COND_arm64_efi_TRUE@am__append_4433 = terminfo.marker +@COND_arm_coreboot_TRUE@am__append_4434 = terminfo.module +@COND_arm_coreboot_TRUE@am__append_4435 = terminfo.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__append_4436 = +@COND_arm_coreboot_TRUE@am__append_4437 = $(nodist_terminfo_module_SOURCES) +@COND_arm_coreboot_TRUE@am__append_4438 = \ @COND_arm_coreboot_TRUE@ $(nodist_terminfo_module_SOURCES) \ @COND_arm_coreboot_TRUE@ terminfo.marker -@COND_arm_coreboot_TRUE@am__append_4446 = terminfo.mod -@COND_arm_coreboot_TRUE@am__append_4447 = terminfo.marker -@COND_riscv32_efi_TRUE@am__append_4448 = terminfo.module -@COND_riscv32_efi_TRUE@am__append_4449 = terminfo.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_4450 = -@COND_riscv32_efi_TRUE@am__append_4451 = $(nodist_terminfo_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_4452 = \ +@COND_arm_coreboot_TRUE@am__append_4439 = terminfo.mod +@COND_arm_coreboot_TRUE@am__append_4440 = terminfo.marker +@COND_riscv32_efi_TRUE@am__append_4441 = terminfo.module +@COND_riscv32_efi_TRUE@am__append_4442 = terminfo.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_4443 = +@COND_riscv32_efi_TRUE@am__append_4444 = $(nodist_terminfo_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_4445 = \ @COND_riscv32_efi_TRUE@ $(nodist_terminfo_module_SOURCES) \ @COND_riscv32_efi_TRUE@ terminfo.marker -@COND_riscv32_efi_TRUE@am__append_4453 = terminfo.mod -@COND_riscv32_efi_TRUE@am__append_4454 = terminfo.marker -@COND_riscv64_efi_TRUE@am__append_4455 = terminfo.module -@COND_riscv64_efi_TRUE@am__append_4456 = terminfo.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_4457 = -@COND_riscv64_efi_TRUE@am__append_4458 = $(nodist_terminfo_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_4459 = \ +@COND_riscv32_efi_TRUE@am__append_4446 = terminfo.mod +@COND_riscv32_efi_TRUE@am__append_4447 = terminfo.marker +@COND_riscv64_efi_TRUE@am__append_4448 = terminfo.module +@COND_riscv64_efi_TRUE@am__append_4449 = terminfo.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_4450 = +@COND_riscv64_efi_TRUE@am__append_4451 = $(nodist_terminfo_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_4452 = \ @COND_riscv64_efi_TRUE@ $(nodist_terminfo_module_SOURCES) \ @COND_riscv64_efi_TRUE@ terminfo.marker -@COND_riscv64_efi_TRUE@am__append_4460 = terminfo.mod -@COND_riscv64_efi_TRUE@am__append_4461 = terminfo.marker -@COND_i386_pc_TRUE@am__append_4462 = usb_keyboard.module -@COND_i386_pc_TRUE@am__append_4463 = usb_keyboard.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_4453 = terminfo.mod +@COND_riscv64_efi_TRUE@am__append_4454 = terminfo.marker +@COND_i386_pc_TRUE@am__append_4455 = usb_keyboard.module +@COND_i386_pc_TRUE@am__append_4456 = usb_keyboard.module$(EXEEXT) @COND_arm_coreboot_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_mips_loongson_FALSE@@COND_x86_64_efi_FALSE@usb_keyboard_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_4464 = -@COND_i386_pc_TRUE@am__append_4465 = $(nodist_usb_keyboard_module_SOURCES) -@COND_i386_pc_TRUE@am__append_4466 = \ +@COND_i386_pc_TRUE@am__append_4457 = +@COND_i386_pc_TRUE@am__append_4458 = $(nodist_usb_keyboard_module_SOURCES) +@COND_i386_pc_TRUE@am__append_4459 = \ @COND_i386_pc_TRUE@ $(nodist_usb_keyboard_module_SOURCES) \ @COND_i386_pc_TRUE@ usb_keyboard.marker -@COND_i386_pc_TRUE@am__append_4467 = usb_keyboard.mod -@COND_i386_pc_TRUE@am__append_4468 = usb_keyboard.marker -@COND_i386_efi_TRUE@am__append_4469 = usb_keyboard.module -@COND_i386_efi_TRUE@am__append_4470 = usb_keyboard.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_4471 = -@COND_i386_efi_TRUE@am__append_4472 = $(nodist_usb_keyboard_module_SOURCES) -@COND_i386_efi_TRUE@am__append_4473 = \ +@COND_i386_pc_TRUE@am__append_4460 = usb_keyboard.mod +@COND_i386_pc_TRUE@am__append_4461 = usb_keyboard.marker +@COND_i386_efi_TRUE@am__append_4462 = usb_keyboard.module +@COND_i386_efi_TRUE@am__append_4463 = usb_keyboard.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_4464 = +@COND_i386_efi_TRUE@am__append_4465 = $(nodist_usb_keyboard_module_SOURCES) +@COND_i386_efi_TRUE@am__append_4466 = \ @COND_i386_efi_TRUE@ $(nodist_usb_keyboard_module_SOURCES) \ @COND_i386_efi_TRUE@ usb_keyboard.marker -@COND_i386_efi_TRUE@am__append_4474 = usb_keyboard.mod -@COND_i386_efi_TRUE@am__append_4475 = usb_keyboard.marker -@COND_i386_qemu_TRUE@am__append_4476 = usb_keyboard.module -@COND_i386_qemu_TRUE@am__append_4477 = usb_keyboard.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_4478 = -@COND_i386_qemu_TRUE@am__append_4479 = $(nodist_usb_keyboard_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_4480 = \ +@COND_i386_efi_TRUE@am__append_4467 = usb_keyboard.mod +@COND_i386_efi_TRUE@am__append_4468 = usb_keyboard.marker +@COND_i386_qemu_TRUE@am__append_4469 = usb_keyboard.module +@COND_i386_qemu_TRUE@am__append_4470 = usb_keyboard.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_4471 = +@COND_i386_qemu_TRUE@am__append_4472 = $(nodist_usb_keyboard_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_4473 = \ @COND_i386_qemu_TRUE@ $(nodist_usb_keyboard_module_SOURCES) \ @COND_i386_qemu_TRUE@ usb_keyboard.marker -@COND_i386_qemu_TRUE@am__append_4481 = usb_keyboard.mod -@COND_i386_qemu_TRUE@am__append_4482 = usb_keyboard.marker -@COND_i386_coreboot_TRUE@am__append_4483 = usb_keyboard.module -@COND_i386_coreboot_TRUE@am__append_4484 = usb_keyboard.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_4485 = -@COND_i386_coreboot_TRUE@am__append_4486 = $(nodist_usb_keyboard_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_4487 = $(nodist_usb_keyboard_module_SOURCES) \ +@COND_i386_qemu_TRUE@am__append_4474 = usb_keyboard.mod +@COND_i386_qemu_TRUE@am__append_4475 = usb_keyboard.marker +@COND_i386_coreboot_TRUE@am__append_4476 = usb_keyboard.module +@COND_i386_coreboot_TRUE@am__append_4477 = usb_keyboard.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_4478 = +@COND_i386_coreboot_TRUE@am__append_4479 = $(nodist_usb_keyboard_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_4480 = $(nodist_usb_keyboard_module_SOURCES) \ @COND_i386_coreboot_TRUE@ usb_keyboard.marker -@COND_i386_coreboot_TRUE@am__append_4488 = usb_keyboard.mod -@COND_i386_coreboot_TRUE@am__append_4489 = usb_keyboard.marker -@COND_i386_multiboot_TRUE@am__append_4490 = usb_keyboard.module -@COND_i386_multiboot_TRUE@am__append_4491 = usb_keyboard.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_4492 = -@COND_i386_multiboot_TRUE@am__append_4493 = $(nodist_usb_keyboard_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_4494 = $(nodist_usb_keyboard_module_SOURCES) \ +@COND_i386_coreboot_TRUE@am__append_4481 = usb_keyboard.mod +@COND_i386_coreboot_TRUE@am__append_4482 = usb_keyboard.marker +@COND_i386_multiboot_TRUE@am__append_4483 = usb_keyboard.module +@COND_i386_multiboot_TRUE@am__append_4484 = usb_keyboard.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_4485 = +@COND_i386_multiboot_TRUE@am__append_4486 = $(nodist_usb_keyboard_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_4487 = $(nodist_usb_keyboard_module_SOURCES) \ @COND_i386_multiboot_TRUE@ usb_keyboard.marker -@COND_i386_multiboot_TRUE@am__append_4495 = usb_keyboard.mod -@COND_i386_multiboot_TRUE@am__append_4496 = usb_keyboard.marker -@COND_i386_ieee1275_TRUE@am__append_4497 = usb_keyboard.module -@COND_i386_ieee1275_TRUE@am__append_4498 = usb_keyboard.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_4499 = -@COND_i386_ieee1275_TRUE@am__append_4500 = $(nodist_usb_keyboard_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_4501 = $(nodist_usb_keyboard_module_SOURCES) \ +@COND_i386_multiboot_TRUE@am__append_4488 = usb_keyboard.mod +@COND_i386_multiboot_TRUE@am__append_4489 = usb_keyboard.marker +@COND_i386_ieee1275_TRUE@am__append_4490 = usb_keyboard.module +@COND_i386_ieee1275_TRUE@am__append_4491 = usb_keyboard.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_4492 = +@COND_i386_ieee1275_TRUE@am__append_4493 = $(nodist_usb_keyboard_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_4494 = $(nodist_usb_keyboard_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ usb_keyboard.marker -@COND_i386_ieee1275_TRUE@am__append_4502 = usb_keyboard.mod -@COND_i386_ieee1275_TRUE@am__append_4503 = usb_keyboard.marker -@COND_x86_64_efi_TRUE@am__append_4504 = usb_keyboard.module -@COND_x86_64_efi_TRUE@am__append_4505 = usb_keyboard.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4506 = -@COND_x86_64_efi_TRUE@am__append_4507 = $(nodist_usb_keyboard_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4508 = \ +@COND_i386_ieee1275_TRUE@am__append_4495 = usb_keyboard.mod +@COND_i386_ieee1275_TRUE@am__append_4496 = usb_keyboard.marker +@COND_x86_64_efi_TRUE@am__append_4497 = usb_keyboard.module +@COND_x86_64_efi_TRUE@am__append_4498 = usb_keyboard.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4499 = +@COND_x86_64_efi_TRUE@am__append_4500 = $(nodist_usb_keyboard_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4501 = \ @COND_x86_64_efi_TRUE@ $(nodist_usb_keyboard_module_SOURCES) \ @COND_x86_64_efi_TRUE@ usb_keyboard.marker -@COND_x86_64_efi_TRUE@am__append_4509 = usb_keyboard.mod -@COND_x86_64_efi_TRUE@am__append_4510 = usb_keyboard.marker -@COND_mips_loongson_TRUE@am__append_4511 = usb_keyboard.module -@COND_mips_loongson_TRUE@am__append_4512 = usb_keyboard.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_4513 = -@COND_mips_loongson_TRUE@am__append_4514 = $(nodist_usb_keyboard_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_4515 = $(nodist_usb_keyboard_module_SOURCES) \ +@COND_x86_64_efi_TRUE@am__append_4502 = usb_keyboard.mod +@COND_x86_64_efi_TRUE@am__append_4503 = usb_keyboard.marker +@COND_mips_loongson_TRUE@am__append_4504 = usb_keyboard.module +@COND_mips_loongson_TRUE@am__append_4505 = usb_keyboard.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_4506 = +@COND_mips_loongson_TRUE@am__append_4507 = $(nodist_usb_keyboard_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_4508 = $(nodist_usb_keyboard_module_SOURCES) \ @COND_mips_loongson_TRUE@ usb_keyboard.marker -@COND_mips_loongson_TRUE@am__append_4516 = usb_keyboard.mod -@COND_mips_loongson_TRUE@am__append_4517 = usb_keyboard.marker -@COND_arm_coreboot_TRUE@am__append_4518 = usb_keyboard.module -@COND_arm_coreboot_TRUE@am__append_4519 = usb_keyboard.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__append_4520 = -@COND_arm_coreboot_TRUE@am__append_4521 = $(nodist_usb_keyboard_module_SOURCES) -@COND_arm_coreboot_TRUE@am__append_4522 = \ +@COND_mips_loongson_TRUE@am__append_4509 = usb_keyboard.mod +@COND_mips_loongson_TRUE@am__append_4510 = usb_keyboard.marker +@COND_arm_coreboot_TRUE@am__append_4511 = usb_keyboard.module +@COND_arm_coreboot_TRUE@am__append_4512 = usb_keyboard.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__append_4513 = +@COND_arm_coreboot_TRUE@am__append_4514 = $(nodist_usb_keyboard_module_SOURCES) +@COND_arm_coreboot_TRUE@am__append_4515 = \ @COND_arm_coreboot_TRUE@ $(nodist_usb_keyboard_module_SOURCES) \ @COND_arm_coreboot_TRUE@ usb_keyboard.marker -@COND_arm_coreboot_TRUE@am__append_4523 = usb_keyboard.mod -@COND_arm_coreboot_TRUE@am__append_4524 = usb_keyboard.marker -@COND_i386_pc_TRUE@am__append_4525 = vga.module vga_text.module \ +@COND_arm_coreboot_TRUE@am__append_4516 = usb_keyboard.mod +@COND_arm_coreboot_TRUE@am__append_4517 = usb_keyboard.marker +@COND_i386_pc_TRUE@am__append_4518 = vga.module vga_text.module \ @COND_i386_pc_TRUE@ mda_text.module -@COND_i386_pc_TRUE@am__append_4526 = vga.module$(EXEEXT) \ +@COND_i386_pc_TRUE@am__append_4519 = vga.module$(EXEEXT) \ @COND_i386_pc_TRUE@ vga_text.module$(EXEEXT) \ @COND_i386_pc_TRUE@ mda_text.module$(EXEEXT) @COND_i386_pc_FALSE@vga_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_4527 = -@COND_i386_pc_TRUE@am__append_4528 = $(nodist_vga_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_4520 = +@COND_i386_pc_TRUE@am__append_4521 = $(nodist_vga_module_SOURCES) \ @COND_i386_pc_TRUE@ $(nodist_vga_text_module_SOURCES) \ @COND_i386_pc_TRUE@ $(nodist_mda_text_module_SOURCES) -@COND_i386_pc_TRUE@am__append_4529 = $(nodist_vga_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_4522 = $(nodist_vga_module_SOURCES) \ @COND_i386_pc_TRUE@ vga.marker \ @COND_i386_pc_TRUE@ $(nodist_vga_text_module_SOURCES) \ @COND_i386_pc_TRUE@ vga_text.marker \ @COND_i386_pc_TRUE@ $(nodist_mda_text_module_SOURCES) \ @COND_i386_pc_TRUE@ mda_text.marker -@COND_i386_pc_TRUE@am__append_4530 = vga.mod vga_text.mod mda_text.mod -@COND_i386_pc_TRUE@am__append_4531 = vga.marker vga_text.marker \ +@COND_i386_pc_TRUE@am__append_4523 = vga.mod vga_text.mod mda_text.mod +@COND_i386_pc_TRUE@am__append_4524 = vga.marker vga_text.marker \ @COND_i386_pc_TRUE@ mda_text.marker @COND_i386_pc_FALSE@vga_text_module_DEPENDENCIES = @COND_i386_coreboot_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@mda_text_module_DEPENDENCIES = -@COND_i386_qemu_TRUE@am__append_4532 = mda_text.module -@COND_i386_qemu_TRUE@am__append_4533 = mda_text.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_4534 = -@COND_i386_qemu_TRUE@am__append_4535 = $(nodist_mda_text_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_4536 = \ +@COND_i386_qemu_TRUE@am__append_4525 = mda_text.module +@COND_i386_qemu_TRUE@am__append_4526 = mda_text.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_4527 = +@COND_i386_qemu_TRUE@am__append_4528 = $(nodist_mda_text_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_4529 = \ @COND_i386_qemu_TRUE@ $(nodist_mda_text_module_SOURCES) \ @COND_i386_qemu_TRUE@ mda_text.marker -@COND_i386_qemu_TRUE@am__append_4537 = mda_text.mod -@COND_i386_qemu_TRUE@am__append_4538 = mda_text.marker -@COND_i386_coreboot_TRUE@am__append_4539 = mda_text.module -@COND_i386_coreboot_TRUE@am__append_4540 = mda_text.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_4541 = -@COND_i386_coreboot_TRUE@am__append_4542 = $(nodist_mda_text_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_4543 = \ +@COND_i386_qemu_TRUE@am__append_4530 = mda_text.mod +@COND_i386_qemu_TRUE@am__append_4531 = mda_text.marker +@COND_i386_coreboot_TRUE@am__append_4532 = mda_text.module +@COND_i386_coreboot_TRUE@am__append_4533 = mda_text.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_4534 = +@COND_i386_coreboot_TRUE@am__append_4535 = $(nodist_mda_text_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_4536 = \ @COND_i386_coreboot_TRUE@ $(nodist_mda_text_module_SOURCES) \ @COND_i386_coreboot_TRUE@ mda_text.marker -@COND_i386_coreboot_TRUE@am__append_4544 = mda_text.mod -@COND_i386_coreboot_TRUE@am__append_4545 = mda_text.marker -@COND_i386_multiboot_TRUE@am__append_4546 = mda_text.module -@COND_i386_multiboot_TRUE@am__append_4547 = mda_text.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_4548 = -@COND_i386_multiboot_TRUE@am__append_4549 = $(nodist_mda_text_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_4550 = \ +@COND_i386_coreboot_TRUE@am__append_4537 = mda_text.mod +@COND_i386_coreboot_TRUE@am__append_4538 = mda_text.marker +@COND_i386_multiboot_TRUE@am__append_4539 = mda_text.module +@COND_i386_multiboot_TRUE@am__append_4540 = mda_text.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_4541 = +@COND_i386_multiboot_TRUE@am__append_4542 = $(nodist_mda_text_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_4543 = \ @COND_i386_multiboot_TRUE@ $(nodist_mda_text_module_SOURCES) \ @COND_i386_multiboot_TRUE@ mda_text.marker -@COND_i386_multiboot_TRUE@am__append_4551 = mda_text.mod -@COND_i386_multiboot_TRUE@am__append_4552 = mda_text.marker -@COND_i386_pc_TRUE@am__append_4553 = video_cirrus.module -@COND_i386_pc_TRUE@am__append_4554 = video_cirrus.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_4544 = mda_text.mod +@COND_i386_multiboot_TRUE@am__append_4545 = mda_text.marker +@COND_i386_pc_TRUE@am__append_4546 = video_cirrus.module +@COND_i386_pc_TRUE@am__append_4547 = video_cirrus.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_x86_64_efi_FALSE@video_cirrus_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_4555 = -@COND_i386_pc_TRUE@am__append_4556 = $(nodist_video_cirrus_module_SOURCES) -@COND_i386_pc_TRUE@am__append_4557 = \ +@COND_i386_pc_TRUE@am__append_4548 = +@COND_i386_pc_TRUE@am__append_4549 = $(nodist_video_cirrus_module_SOURCES) +@COND_i386_pc_TRUE@am__append_4550 = \ @COND_i386_pc_TRUE@ $(nodist_video_cirrus_module_SOURCES) \ @COND_i386_pc_TRUE@ video_cirrus.marker -@COND_i386_pc_TRUE@am__append_4558 = video_cirrus.mod -@COND_i386_pc_TRUE@am__append_4559 = video_cirrus.marker -@COND_i386_efi_TRUE@am__append_4560 = video_cirrus.module -@COND_i386_efi_TRUE@am__append_4561 = video_cirrus.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_4562 = -@COND_i386_efi_TRUE@am__append_4563 = $(nodist_video_cirrus_module_SOURCES) -@COND_i386_efi_TRUE@am__append_4564 = \ +@COND_i386_pc_TRUE@am__append_4551 = video_cirrus.mod +@COND_i386_pc_TRUE@am__append_4552 = video_cirrus.marker +@COND_i386_efi_TRUE@am__append_4553 = video_cirrus.module +@COND_i386_efi_TRUE@am__append_4554 = video_cirrus.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_4555 = +@COND_i386_efi_TRUE@am__append_4556 = $(nodist_video_cirrus_module_SOURCES) +@COND_i386_efi_TRUE@am__append_4557 = \ @COND_i386_efi_TRUE@ $(nodist_video_cirrus_module_SOURCES) \ @COND_i386_efi_TRUE@ video_cirrus.marker -@COND_i386_efi_TRUE@am__append_4565 = video_cirrus.mod -@COND_i386_efi_TRUE@am__append_4566 = video_cirrus.marker -@COND_i386_qemu_TRUE@am__append_4567 = video_cirrus.module -@COND_i386_qemu_TRUE@am__append_4568 = video_cirrus.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_4569 = -@COND_i386_qemu_TRUE@am__append_4570 = $(nodist_video_cirrus_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_4571 = \ +@COND_i386_efi_TRUE@am__append_4558 = video_cirrus.mod +@COND_i386_efi_TRUE@am__append_4559 = video_cirrus.marker +@COND_i386_qemu_TRUE@am__append_4560 = video_cirrus.module +@COND_i386_qemu_TRUE@am__append_4561 = video_cirrus.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_4562 = +@COND_i386_qemu_TRUE@am__append_4563 = $(nodist_video_cirrus_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_4564 = \ @COND_i386_qemu_TRUE@ $(nodist_video_cirrus_module_SOURCES) \ @COND_i386_qemu_TRUE@ video_cirrus.marker -@COND_i386_qemu_TRUE@am__append_4572 = video_cirrus.mod -@COND_i386_qemu_TRUE@am__append_4573 = video_cirrus.marker -@COND_i386_coreboot_TRUE@am__append_4574 = video_cirrus.module -@COND_i386_coreboot_TRUE@am__append_4575 = video_cirrus.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_4576 = -@COND_i386_coreboot_TRUE@am__append_4577 = $(nodist_video_cirrus_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_4578 = $(nodist_video_cirrus_module_SOURCES) \ +@COND_i386_qemu_TRUE@am__append_4565 = video_cirrus.mod +@COND_i386_qemu_TRUE@am__append_4566 = video_cirrus.marker +@COND_i386_coreboot_TRUE@am__append_4567 = video_cirrus.module +@COND_i386_coreboot_TRUE@am__append_4568 = video_cirrus.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_4569 = +@COND_i386_coreboot_TRUE@am__append_4570 = $(nodist_video_cirrus_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_4571 = $(nodist_video_cirrus_module_SOURCES) \ @COND_i386_coreboot_TRUE@ video_cirrus.marker -@COND_i386_coreboot_TRUE@am__append_4579 = video_cirrus.mod -@COND_i386_coreboot_TRUE@am__append_4580 = video_cirrus.marker -@COND_i386_multiboot_TRUE@am__append_4581 = video_cirrus.module -@COND_i386_multiboot_TRUE@am__append_4582 = video_cirrus.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_4583 = -@COND_i386_multiboot_TRUE@am__append_4584 = $(nodist_video_cirrus_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_4585 = $(nodist_video_cirrus_module_SOURCES) \ +@COND_i386_coreboot_TRUE@am__append_4572 = video_cirrus.mod +@COND_i386_coreboot_TRUE@am__append_4573 = video_cirrus.marker +@COND_i386_multiboot_TRUE@am__append_4574 = video_cirrus.module +@COND_i386_multiboot_TRUE@am__append_4575 = video_cirrus.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_4576 = +@COND_i386_multiboot_TRUE@am__append_4577 = $(nodist_video_cirrus_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_4578 = $(nodist_video_cirrus_module_SOURCES) \ @COND_i386_multiboot_TRUE@ video_cirrus.marker -@COND_i386_multiboot_TRUE@am__append_4586 = video_cirrus.mod -@COND_i386_multiboot_TRUE@am__append_4587 = video_cirrus.marker -@COND_i386_ieee1275_TRUE@am__append_4588 = video_cirrus.module -@COND_i386_ieee1275_TRUE@am__append_4589 = video_cirrus.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_4590 = -@COND_i386_ieee1275_TRUE@am__append_4591 = $(nodist_video_cirrus_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_4592 = $(nodist_video_cirrus_module_SOURCES) \ +@COND_i386_multiboot_TRUE@am__append_4579 = video_cirrus.mod +@COND_i386_multiboot_TRUE@am__append_4580 = video_cirrus.marker +@COND_i386_ieee1275_TRUE@am__append_4581 = video_cirrus.module +@COND_i386_ieee1275_TRUE@am__append_4582 = video_cirrus.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_4583 = +@COND_i386_ieee1275_TRUE@am__append_4584 = $(nodist_video_cirrus_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_4585 = $(nodist_video_cirrus_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ video_cirrus.marker -@COND_i386_ieee1275_TRUE@am__append_4593 = video_cirrus.mod -@COND_i386_ieee1275_TRUE@am__append_4594 = video_cirrus.marker -@COND_x86_64_efi_TRUE@am__append_4595 = video_cirrus.module -@COND_x86_64_efi_TRUE@am__append_4596 = video_cirrus.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4597 = -@COND_x86_64_efi_TRUE@am__append_4598 = $(nodist_video_cirrus_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4599 = \ +@COND_i386_ieee1275_TRUE@am__append_4586 = video_cirrus.mod +@COND_i386_ieee1275_TRUE@am__append_4587 = video_cirrus.marker +@COND_x86_64_efi_TRUE@am__append_4588 = video_cirrus.module +@COND_x86_64_efi_TRUE@am__append_4589 = video_cirrus.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4590 = +@COND_x86_64_efi_TRUE@am__append_4591 = $(nodist_video_cirrus_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4592 = \ @COND_x86_64_efi_TRUE@ $(nodist_video_cirrus_module_SOURCES) \ @COND_x86_64_efi_TRUE@ video_cirrus.marker -@COND_x86_64_efi_TRUE@am__append_4600 = video_cirrus.mod -@COND_x86_64_efi_TRUE@am__append_4601 = video_cirrus.marker -@COND_i386_pc_TRUE@am__append_4602 = video_bochs.module -@COND_i386_pc_TRUE@am__append_4603 = video_bochs.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4593 = video_cirrus.mod +@COND_x86_64_efi_TRUE@am__append_4594 = video_cirrus.marker +@COND_i386_pc_TRUE@am__append_4595 = video_bochs.module +@COND_i386_pc_TRUE@am__append_4596 = video_bochs.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_x86_64_efi_FALSE@video_bochs_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_4604 = -@COND_i386_pc_TRUE@am__append_4605 = $(nodist_video_bochs_module_SOURCES) -@COND_i386_pc_TRUE@am__append_4606 = \ +@COND_i386_pc_TRUE@am__append_4597 = +@COND_i386_pc_TRUE@am__append_4598 = $(nodist_video_bochs_module_SOURCES) +@COND_i386_pc_TRUE@am__append_4599 = \ @COND_i386_pc_TRUE@ $(nodist_video_bochs_module_SOURCES) \ @COND_i386_pc_TRUE@ video_bochs.marker -@COND_i386_pc_TRUE@am__append_4607 = video_bochs.mod -@COND_i386_pc_TRUE@am__append_4608 = video_bochs.marker -@COND_i386_efi_TRUE@am__append_4609 = video_bochs.module -@COND_i386_efi_TRUE@am__append_4610 = video_bochs.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_4611 = -@COND_i386_efi_TRUE@am__append_4612 = $(nodist_video_bochs_module_SOURCES) -@COND_i386_efi_TRUE@am__append_4613 = \ +@COND_i386_pc_TRUE@am__append_4600 = video_bochs.mod +@COND_i386_pc_TRUE@am__append_4601 = video_bochs.marker +@COND_i386_efi_TRUE@am__append_4602 = video_bochs.module +@COND_i386_efi_TRUE@am__append_4603 = video_bochs.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_4604 = +@COND_i386_efi_TRUE@am__append_4605 = $(nodist_video_bochs_module_SOURCES) +@COND_i386_efi_TRUE@am__append_4606 = \ @COND_i386_efi_TRUE@ $(nodist_video_bochs_module_SOURCES) \ @COND_i386_efi_TRUE@ video_bochs.marker -@COND_i386_efi_TRUE@am__append_4614 = video_bochs.mod -@COND_i386_efi_TRUE@am__append_4615 = video_bochs.marker -@COND_i386_qemu_TRUE@am__append_4616 = video_bochs.module -@COND_i386_qemu_TRUE@am__append_4617 = video_bochs.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_4618 = -@COND_i386_qemu_TRUE@am__append_4619 = $(nodist_video_bochs_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_4620 = \ +@COND_i386_efi_TRUE@am__append_4607 = video_bochs.mod +@COND_i386_efi_TRUE@am__append_4608 = video_bochs.marker +@COND_i386_qemu_TRUE@am__append_4609 = video_bochs.module +@COND_i386_qemu_TRUE@am__append_4610 = video_bochs.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_4611 = +@COND_i386_qemu_TRUE@am__append_4612 = $(nodist_video_bochs_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_4613 = \ @COND_i386_qemu_TRUE@ $(nodist_video_bochs_module_SOURCES) \ @COND_i386_qemu_TRUE@ video_bochs.marker -@COND_i386_qemu_TRUE@am__append_4621 = video_bochs.mod -@COND_i386_qemu_TRUE@am__append_4622 = video_bochs.marker -@COND_i386_coreboot_TRUE@am__append_4623 = video_bochs.module -@COND_i386_coreboot_TRUE@am__append_4624 = video_bochs.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_4625 = -@COND_i386_coreboot_TRUE@am__append_4626 = $(nodist_video_bochs_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_4627 = \ +@COND_i386_qemu_TRUE@am__append_4614 = video_bochs.mod +@COND_i386_qemu_TRUE@am__append_4615 = video_bochs.marker +@COND_i386_coreboot_TRUE@am__append_4616 = video_bochs.module +@COND_i386_coreboot_TRUE@am__append_4617 = video_bochs.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_4618 = +@COND_i386_coreboot_TRUE@am__append_4619 = $(nodist_video_bochs_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_4620 = \ @COND_i386_coreboot_TRUE@ $(nodist_video_bochs_module_SOURCES) \ @COND_i386_coreboot_TRUE@ video_bochs.marker -@COND_i386_coreboot_TRUE@am__append_4628 = video_bochs.mod -@COND_i386_coreboot_TRUE@am__append_4629 = video_bochs.marker -@COND_i386_multiboot_TRUE@am__append_4630 = video_bochs.module -@COND_i386_multiboot_TRUE@am__append_4631 = video_bochs.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_4632 = -@COND_i386_multiboot_TRUE@am__append_4633 = $(nodist_video_bochs_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_4634 = $(nodist_video_bochs_module_SOURCES) \ +@COND_i386_coreboot_TRUE@am__append_4621 = video_bochs.mod +@COND_i386_coreboot_TRUE@am__append_4622 = video_bochs.marker +@COND_i386_multiboot_TRUE@am__append_4623 = video_bochs.module +@COND_i386_multiboot_TRUE@am__append_4624 = video_bochs.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_4625 = +@COND_i386_multiboot_TRUE@am__append_4626 = $(nodist_video_bochs_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_4627 = $(nodist_video_bochs_module_SOURCES) \ @COND_i386_multiboot_TRUE@ video_bochs.marker -@COND_i386_multiboot_TRUE@am__append_4635 = video_bochs.mod -@COND_i386_multiboot_TRUE@am__append_4636 = video_bochs.marker -@COND_i386_ieee1275_TRUE@am__append_4637 = video_bochs.module -@COND_i386_ieee1275_TRUE@am__append_4638 = video_bochs.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_4639 = -@COND_i386_ieee1275_TRUE@am__append_4640 = $(nodist_video_bochs_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_4641 = \ +@COND_i386_multiboot_TRUE@am__append_4628 = video_bochs.mod +@COND_i386_multiboot_TRUE@am__append_4629 = video_bochs.marker +@COND_i386_ieee1275_TRUE@am__append_4630 = video_bochs.module +@COND_i386_ieee1275_TRUE@am__append_4631 = video_bochs.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_4632 = +@COND_i386_ieee1275_TRUE@am__append_4633 = $(nodist_video_bochs_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_4634 = \ @COND_i386_ieee1275_TRUE@ $(nodist_video_bochs_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ video_bochs.marker -@COND_i386_ieee1275_TRUE@am__append_4642 = video_bochs.mod -@COND_i386_ieee1275_TRUE@am__append_4643 = video_bochs.marker -@COND_x86_64_efi_TRUE@am__append_4644 = video_bochs.module -@COND_x86_64_efi_TRUE@am__append_4645 = video_bochs.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4646 = -@COND_x86_64_efi_TRUE@am__append_4647 = $(nodist_video_bochs_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4648 = \ +@COND_i386_ieee1275_TRUE@am__append_4635 = video_bochs.mod +@COND_i386_ieee1275_TRUE@am__append_4636 = video_bochs.marker +@COND_x86_64_efi_TRUE@am__append_4637 = video_bochs.module +@COND_x86_64_efi_TRUE@am__append_4638 = video_bochs.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4639 = +@COND_x86_64_efi_TRUE@am__append_4640 = $(nodist_video_bochs_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4641 = \ @COND_x86_64_efi_TRUE@ $(nodist_video_bochs_module_SOURCES) \ @COND_x86_64_efi_TRUE@ video_bochs.marker -@COND_x86_64_efi_TRUE@am__append_4649 = video_bochs.mod -@COND_x86_64_efi_TRUE@am__append_4650 = video_bochs.marker -@COND_emu_TRUE@am__append_4651 = legacy_password_test.module -@COND_emu_TRUE@am__append_4652 = legacy_password_test.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4642 = video_bochs.mod +@COND_x86_64_efi_TRUE@am__append_4643 = video_bochs.marker +@COND_emu_TRUE@am__append_4644 = legacy_password_test.module +@COND_emu_TRUE@am__append_4645 = legacy_password_test.module$(EXEEXT) @COND_emu_FALSE@@COND_i386_efi_FALSE@@COND_i386_pc_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@legacy_password_test_module_DEPENDENCIES = -@COND_emu_TRUE@am__append_4653 = -@COND_emu_TRUE@am__append_4654 = $(nodist_legacy_password_test_module_SOURCES) -@COND_emu_TRUE@am__append_4655 = \ +@COND_emu_TRUE@am__append_4646 = +@COND_emu_TRUE@am__append_4647 = $(nodist_legacy_password_test_module_SOURCES) +@COND_emu_TRUE@am__append_4648 = \ @COND_emu_TRUE@ $(nodist_legacy_password_test_module_SOURCES) \ @COND_emu_TRUE@ legacy_password_test.marker -@COND_emu_TRUE@am__append_4656 = legacy_password_test.mod -@COND_emu_TRUE@am__append_4657 = legacy_password_test.marker -@COND_i386_pc_TRUE@am__append_4658 = legacy_password_test.module -@COND_i386_pc_TRUE@am__append_4659 = legacy_password_test.module$(EXEEXT) -@COND_i386_pc_TRUE@am__append_4660 = -@COND_i386_pc_TRUE@am__append_4661 = $(nodist_legacy_password_test_module_SOURCES) -@COND_i386_pc_TRUE@am__append_4662 = $(nodist_legacy_password_test_module_SOURCES) \ +@COND_emu_TRUE@am__append_4649 = legacy_password_test.mod +@COND_emu_TRUE@am__append_4650 = legacy_password_test.marker +@COND_i386_pc_TRUE@am__append_4651 = legacy_password_test.module +@COND_i386_pc_TRUE@am__append_4652 = legacy_password_test.module$(EXEEXT) +@COND_i386_pc_TRUE@am__append_4653 = +@COND_i386_pc_TRUE@am__append_4654 = $(nodist_legacy_password_test_module_SOURCES) +@COND_i386_pc_TRUE@am__append_4655 = $(nodist_legacy_password_test_module_SOURCES) \ @COND_i386_pc_TRUE@ legacy_password_test.marker -@COND_i386_pc_TRUE@am__append_4663 = legacy_password_test.mod -@COND_i386_pc_TRUE@am__append_4664 = legacy_password_test.marker -@COND_i386_efi_TRUE@am__append_4665 = legacy_password_test.module -@COND_i386_efi_TRUE@am__append_4666 = legacy_password_test.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_4667 = -@COND_i386_efi_TRUE@am__append_4668 = $(nodist_legacy_password_test_module_SOURCES) -@COND_i386_efi_TRUE@am__append_4669 = $(nodist_legacy_password_test_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_4656 = legacy_password_test.mod +@COND_i386_pc_TRUE@am__append_4657 = legacy_password_test.marker +@COND_i386_efi_TRUE@am__append_4658 = legacy_password_test.module +@COND_i386_efi_TRUE@am__append_4659 = legacy_password_test.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_4660 = +@COND_i386_efi_TRUE@am__append_4661 = $(nodist_legacy_password_test_module_SOURCES) +@COND_i386_efi_TRUE@am__append_4662 = $(nodist_legacy_password_test_module_SOURCES) \ @COND_i386_efi_TRUE@ legacy_password_test.marker -@COND_i386_efi_TRUE@am__append_4670 = legacy_password_test.mod -@COND_i386_efi_TRUE@am__append_4671 = legacy_password_test.marker -@COND_x86_64_efi_TRUE@am__append_4672 = legacy_password_test.module -@COND_x86_64_efi_TRUE@am__append_4673 = legacy_password_test.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4674 = -@COND_x86_64_efi_TRUE@am__append_4675 = $(nodist_legacy_password_test_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4676 = $(nodist_legacy_password_test_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_4663 = legacy_password_test.mod +@COND_i386_efi_TRUE@am__append_4664 = legacy_password_test.marker +@COND_x86_64_efi_TRUE@am__append_4665 = legacy_password_test.module +@COND_x86_64_efi_TRUE@am__append_4666 = legacy_password_test.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4667 = +@COND_x86_64_efi_TRUE@am__append_4668 = $(nodist_legacy_password_test_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4669 = $(nodist_legacy_password_test_module_SOURCES) \ @COND_x86_64_efi_TRUE@ legacy_password_test.marker -@COND_x86_64_efi_TRUE@am__append_4677 = legacy_password_test.mod -@COND_x86_64_efi_TRUE@am__append_4678 = legacy_password_test.marker -@COND_i386_xen_TRUE@am__append_4679 = legacy_password_test.module -@COND_i386_xen_TRUE@am__append_4680 = legacy_password_test.module$(EXEEXT) -@COND_i386_xen_TRUE@am__append_4681 = -@COND_i386_xen_TRUE@am__append_4682 = $(nodist_legacy_password_test_module_SOURCES) -@COND_i386_xen_TRUE@am__append_4683 = $(nodist_legacy_password_test_module_SOURCES) \ +@COND_x86_64_efi_TRUE@am__append_4670 = legacy_password_test.mod +@COND_x86_64_efi_TRUE@am__append_4671 = legacy_password_test.marker +@COND_i386_xen_TRUE@am__append_4672 = legacy_password_test.module +@COND_i386_xen_TRUE@am__append_4673 = legacy_password_test.module$(EXEEXT) +@COND_i386_xen_TRUE@am__append_4674 = +@COND_i386_xen_TRUE@am__append_4675 = $(nodist_legacy_password_test_module_SOURCES) +@COND_i386_xen_TRUE@am__append_4676 = $(nodist_legacy_password_test_module_SOURCES) \ @COND_i386_xen_TRUE@ legacy_password_test.marker -@COND_i386_xen_TRUE@am__append_4684 = legacy_password_test.mod -@COND_i386_xen_TRUE@am__append_4685 = legacy_password_test.marker -@COND_x86_64_xen_TRUE@am__append_4686 = legacy_password_test.module -@COND_x86_64_xen_TRUE@am__append_4687 = legacy_password_test.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__append_4688 = -@COND_x86_64_xen_TRUE@am__append_4689 = $(nodist_legacy_password_test_module_SOURCES) -@COND_x86_64_xen_TRUE@am__append_4690 = $(nodist_legacy_password_test_module_SOURCES) \ +@COND_i386_xen_TRUE@am__append_4677 = legacy_password_test.mod +@COND_i386_xen_TRUE@am__append_4678 = legacy_password_test.marker +@COND_x86_64_xen_TRUE@am__append_4679 = legacy_password_test.module +@COND_x86_64_xen_TRUE@am__append_4680 = legacy_password_test.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__append_4681 = +@COND_x86_64_xen_TRUE@am__append_4682 = $(nodist_legacy_password_test_module_SOURCES) +@COND_x86_64_xen_TRUE@am__append_4683 = $(nodist_legacy_password_test_module_SOURCES) \ @COND_x86_64_xen_TRUE@ legacy_password_test.marker -@COND_x86_64_xen_TRUE@am__append_4691 = legacy_password_test.mod -@COND_x86_64_xen_TRUE@am__append_4692 = legacy_password_test.marker -@COND_i386_xen_pvh_TRUE@am__append_4693 = legacy_password_test.module -@COND_i386_xen_pvh_TRUE@am__append_4694 = legacy_password_test.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_4695 = -@COND_i386_xen_pvh_TRUE@am__append_4696 = $(nodist_legacy_password_test_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_4697 = $(nodist_legacy_password_test_module_SOURCES) \ +@COND_x86_64_xen_TRUE@am__append_4684 = legacy_password_test.mod +@COND_x86_64_xen_TRUE@am__append_4685 = legacy_password_test.marker +@COND_i386_xen_pvh_TRUE@am__append_4686 = legacy_password_test.module +@COND_i386_xen_pvh_TRUE@am__append_4687 = legacy_password_test.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_4688 = +@COND_i386_xen_pvh_TRUE@am__append_4689 = $(nodist_legacy_password_test_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_4690 = $(nodist_legacy_password_test_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ legacy_password_test.marker -@COND_i386_xen_pvh_TRUE@am__append_4698 = legacy_password_test.mod -@COND_i386_xen_pvh_TRUE@am__append_4699 = legacy_password_test.marker -@COND_emu_TRUE@am__append_4700 = div.module -@COND_emu_TRUE@am__append_4701 = div.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_4691 = legacy_password_test.mod +@COND_i386_xen_pvh_TRUE@am__append_4692 = legacy_password_test.marker +@COND_emu_TRUE@am__append_4693 = div.module +@COND_emu_TRUE@am__append_4694 = div.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@div_module_DEPENDENCIES = -@COND_emu_TRUE@am__append_4702 = -@COND_emu_TRUE@am__append_4703 = $(nodist_div_module_SOURCES) -@COND_emu_TRUE@am__append_4704 = $(nodist_div_module_SOURCES) \ +@COND_emu_TRUE@am__append_4695 = +@COND_emu_TRUE@am__append_4696 = $(nodist_div_module_SOURCES) +@COND_emu_TRUE@am__append_4697 = $(nodist_div_module_SOURCES) \ @COND_emu_TRUE@ div.marker -@COND_emu_TRUE@am__append_4705 = div.mod -@COND_emu_TRUE@am__append_4706 = div.marker -@COND_i386_pc_TRUE@am__append_4707 = div.module -@COND_i386_pc_TRUE@am__append_4708 = div.module$(EXEEXT) -@COND_i386_pc_TRUE@am__append_4709 = -@COND_i386_pc_TRUE@am__append_4710 = $(nodist_div_module_SOURCES) -@COND_i386_pc_TRUE@am__append_4711 = $(nodist_div_module_SOURCES) \ +@COND_emu_TRUE@am__append_4698 = div.mod +@COND_emu_TRUE@am__append_4699 = div.marker +@COND_i386_pc_TRUE@am__append_4700 = div.module +@COND_i386_pc_TRUE@am__append_4701 = div.module$(EXEEXT) +@COND_i386_pc_TRUE@am__append_4702 = +@COND_i386_pc_TRUE@am__append_4703 = $(nodist_div_module_SOURCES) +@COND_i386_pc_TRUE@am__append_4704 = $(nodist_div_module_SOURCES) \ @COND_i386_pc_TRUE@ div.marker -@COND_i386_pc_TRUE@am__append_4712 = div.mod -@COND_i386_pc_TRUE@am__append_4713 = div.marker -@COND_i386_efi_TRUE@am__append_4714 = div.module -@COND_i386_efi_TRUE@am__append_4715 = div.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_4716 = -@COND_i386_efi_TRUE@am__append_4717 = $(nodist_div_module_SOURCES) -@COND_i386_efi_TRUE@am__append_4718 = $(nodist_div_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_4705 = div.mod +@COND_i386_pc_TRUE@am__append_4706 = div.marker +@COND_i386_efi_TRUE@am__append_4707 = div.module +@COND_i386_efi_TRUE@am__append_4708 = div.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_4709 = +@COND_i386_efi_TRUE@am__append_4710 = $(nodist_div_module_SOURCES) +@COND_i386_efi_TRUE@am__append_4711 = $(nodist_div_module_SOURCES) \ @COND_i386_efi_TRUE@ div.marker -@COND_i386_efi_TRUE@am__append_4719 = div.mod -@COND_i386_efi_TRUE@am__append_4720 = div.marker -@COND_i386_qemu_TRUE@am__append_4721 = div.module -@COND_i386_qemu_TRUE@am__append_4722 = div.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_4723 = -@COND_i386_qemu_TRUE@am__append_4724 = $(nodist_div_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_4725 = $(nodist_div_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_4712 = div.mod +@COND_i386_efi_TRUE@am__append_4713 = div.marker +@COND_i386_qemu_TRUE@am__append_4714 = div.module +@COND_i386_qemu_TRUE@am__append_4715 = div.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_4716 = +@COND_i386_qemu_TRUE@am__append_4717 = $(nodist_div_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_4718 = $(nodist_div_module_SOURCES) \ @COND_i386_qemu_TRUE@ div.marker -@COND_i386_qemu_TRUE@am__append_4726 = div.mod -@COND_i386_qemu_TRUE@am__append_4727 = div.marker -@COND_i386_coreboot_TRUE@am__append_4728 = div.module -@COND_i386_coreboot_TRUE@am__append_4729 = div.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_4730 = -@COND_i386_coreboot_TRUE@am__append_4731 = $(nodist_div_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_4732 = \ +@COND_i386_qemu_TRUE@am__append_4719 = div.mod +@COND_i386_qemu_TRUE@am__append_4720 = div.marker +@COND_i386_coreboot_TRUE@am__append_4721 = div.module +@COND_i386_coreboot_TRUE@am__append_4722 = div.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_4723 = +@COND_i386_coreboot_TRUE@am__append_4724 = $(nodist_div_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_4725 = \ @COND_i386_coreboot_TRUE@ $(nodist_div_module_SOURCES) \ @COND_i386_coreboot_TRUE@ div.marker -@COND_i386_coreboot_TRUE@am__append_4733 = div.mod -@COND_i386_coreboot_TRUE@am__append_4734 = div.marker -@COND_i386_multiboot_TRUE@am__append_4735 = div.module -@COND_i386_multiboot_TRUE@am__append_4736 = div.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_4737 = -@COND_i386_multiboot_TRUE@am__append_4738 = $(nodist_div_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_4739 = \ +@COND_i386_coreboot_TRUE@am__append_4726 = div.mod +@COND_i386_coreboot_TRUE@am__append_4727 = div.marker +@COND_i386_multiboot_TRUE@am__append_4728 = div.module +@COND_i386_multiboot_TRUE@am__append_4729 = div.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_4730 = +@COND_i386_multiboot_TRUE@am__append_4731 = $(nodist_div_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_4732 = \ @COND_i386_multiboot_TRUE@ $(nodist_div_module_SOURCES) \ @COND_i386_multiboot_TRUE@ div.marker -@COND_i386_multiboot_TRUE@am__append_4740 = div.mod -@COND_i386_multiboot_TRUE@am__append_4741 = div.marker -@COND_i386_ieee1275_TRUE@am__append_4742 = div.module -@COND_i386_ieee1275_TRUE@am__append_4743 = div.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_4744 = -@COND_i386_ieee1275_TRUE@am__append_4745 = $(nodist_div_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_4746 = \ +@COND_i386_multiboot_TRUE@am__append_4733 = div.mod +@COND_i386_multiboot_TRUE@am__append_4734 = div.marker +@COND_i386_ieee1275_TRUE@am__append_4735 = div.module +@COND_i386_ieee1275_TRUE@am__append_4736 = div.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_4737 = +@COND_i386_ieee1275_TRUE@am__append_4738 = $(nodist_div_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_4739 = \ @COND_i386_ieee1275_TRUE@ $(nodist_div_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ div.marker -@COND_i386_ieee1275_TRUE@am__append_4747 = div.mod -@COND_i386_ieee1275_TRUE@am__append_4748 = div.marker -@COND_x86_64_efi_TRUE@am__append_4749 = div.module -@COND_x86_64_efi_TRUE@am__append_4750 = div.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4751 = -@COND_x86_64_efi_TRUE@am__append_4752 = $(nodist_div_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4753 = $(nodist_div_module_SOURCES) \ +@COND_i386_ieee1275_TRUE@am__append_4740 = div.mod +@COND_i386_ieee1275_TRUE@am__append_4741 = div.marker +@COND_x86_64_efi_TRUE@am__append_4742 = div.module +@COND_x86_64_efi_TRUE@am__append_4743 = div.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4744 = +@COND_x86_64_efi_TRUE@am__append_4745 = $(nodist_div_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4746 = $(nodist_div_module_SOURCES) \ @COND_x86_64_efi_TRUE@ div.marker -@COND_x86_64_efi_TRUE@am__append_4754 = div.mod -@COND_x86_64_efi_TRUE@am__append_4755 = div.marker -@COND_i386_xen_TRUE@am__append_4756 = div.module -@COND_i386_xen_TRUE@am__append_4757 = div.module$(EXEEXT) -@COND_i386_xen_TRUE@am__append_4758 = -@COND_i386_xen_TRUE@am__append_4759 = $(nodist_div_module_SOURCES) -@COND_i386_xen_TRUE@am__append_4760 = $(nodist_div_module_SOURCES) \ +@COND_x86_64_efi_TRUE@am__append_4747 = div.mod +@COND_x86_64_efi_TRUE@am__append_4748 = div.marker +@COND_i386_xen_TRUE@am__append_4749 = div.module +@COND_i386_xen_TRUE@am__append_4750 = div.module$(EXEEXT) +@COND_i386_xen_TRUE@am__append_4751 = +@COND_i386_xen_TRUE@am__append_4752 = $(nodist_div_module_SOURCES) +@COND_i386_xen_TRUE@am__append_4753 = $(nodist_div_module_SOURCES) \ @COND_i386_xen_TRUE@ div.marker -@COND_i386_xen_TRUE@am__append_4761 = div.mod -@COND_i386_xen_TRUE@am__append_4762 = div.marker -@COND_x86_64_xen_TRUE@am__append_4763 = div.module -@COND_x86_64_xen_TRUE@am__append_4764 = div.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__append_4765 = -@COND_x86_64_xen_TRUE@am__append_4766 = $(nodist_div_module_SOURCES) -@COND_x86_64_xen_TRUE@am__append_4767 = $(nodist_div_module_SOURCES) \ +@COND_i386_xen_TRUE@am__append_4754 = div.mod +@COND_i386_xen_TRUE@am__append_4755 = div.marker +@COND_x86_64_xen_TRUE@am__append_4756 = div.module +@COND_x86_64_xen_TRUE@am__append_4757 = div.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__append_4758 = +@COND_x86_64_xen_TRUE@am__append_4759 = $(nodist_div_module_SOURCES) +@COND_x86_64_xen_TRUE@am__append_4760 = $(nodist_div_module_SOURCES) \ @COND_x86_64_xen_TRUE@ div.marker -@COND_x86_64_xen_TRUE@am__append_4768 = div.mod -@COND_x86_64_xen_TRUE@am__append_4769 = div.marker -@COND_i386_xen_pvh_TRUE@am__append_4770 = div.module -@COND_i386_xen_pvh_TRUE@am__append_4771 = div.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_4772 = -@COND_i386_xen_pvh_TRUE@am__append_4773 = $(nodist_div_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_4774 = \ +@COND_x86_64_xen_TRUE@am__append_4761 = div.mod +@COND_x86_64_xen_TRUE@am__append_4762 = div.marker +@COND_i386_xen_pvh_TRUE@am__append_4763 = div.module +@COND_i386_xen_pvh_TRUE@am__append_4764 = div.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_4765 = +@COND_i386_xen_pvh_TRUE@am__append_4766 = $(nodist_div_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_4767 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_div_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ div.marker -@COND_i386_xen_pvh_TRUE@am__append_4775 = div.mod -@COND_i386_xen_pvh_TRUE@am__append_4776 = div.marker -@COND_mips_loongson_TRUE@am__append_4777 = div.module -@COND_mips_loongson_TRUE@am__append_4778 = div.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__append_4779 = -@COND_mips_loongson_TRUE@am__append_4780 = $(nodist_div_module_SOURCES) -@COND_mips_loongson_TRUE@am__append_4781 = \ +@COND_i386_xen_pvh_TRUE@am__append_4768 = div.mod +@COND_i386_xen_pvh_TRUE@am__append_4769 = div.marker +@COND_mips_loongson_TRUE@am__append_4770 = div.module +@COND_mips_loongson_TRUE@am__append_4771 = div.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__append_4772 = +@COND_mips_loongson_TRUE@am__append_4773 = $(nodist_div_module_SOURCES) +@COND_mips_loongson_TRUE@am__append_4774 = \ @COND_mips_loongson_TRUE@ $(nodist_div_module_SOURCES) \ @COND_mips_loongson_TRUE@ div.marker -@COND_mips_loongson_TRUE@am__append_4782 = div.mod -@COND_mips_loongson_TRUE@am__append_4783 = div.marker -@COND_sparc64_ieee1275_TRUE@am__append_4784 = div.module -@COND_sparc64_ieee1275_TRUE@am__append_4785 = div.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__append_4786 = -@COND_sparc64_ieee1275_TRUE@am__append_4787 = $(nodist_div_module_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_4788 = \ +@COND_mips_loongson_TRUE@am__append_4775 = div.mod +@COND_mips_loongson_TRUE@am__append_4776 = div.marker +@COND_sparc64_ieee1275_TRUE@am__append_4777 = div.module +@COND_sparc64_ieee1275_TRUE@am__append_4778 = div.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__append_4779 = +@COND_sparc64_ieee1275_TRUE@am__append_4780 = $(nodist_div_module_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_4781 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_div_module_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ div.marker -@COND_sparc64_ieee1275_TRUE@am__append_4789 = div.mod -@COND_sparc64_ieee1275_TRUE@am__append_4790 = div.marker -@COND_powerpc_ieee1275_TRUE@am__append_4791 = div.module -@COND_powerpc_ieee1275_TRUE@am__append_4792 = div.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__append_4793 = -@COND_powerpc_ieee1275_TRUE@am__append_4794 = $(nodist_div_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_4795 = \ +@COND_sparc64_ieee1275_TRUE@am__append_4782 = div.mod +@COND_sparc64_ieee1275_TRUE@am__append_4783 = div.marker +@COND_powerpc_ieee1275_TRUE@am__append_4784 = div.module +@COND_powerpc_ieee1275_TRUE@am__append_4785 = div.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_4786 = +@COND_powerpc_ieee1275_TRUE@am__append_4787 = $(nodist_div_module_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_4788 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_div_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ div.marker -@COND_powerpc_ieee1275_TRUE@am__append_4796 = div.mod -@COND_powerpc_ieee1275_TRUE@am__append_4797 = div.marker -@COND_mips_arc_TRUE@am__append_4798 = div.module -@COND_mips_arc_TRUE@am__append_4799 = div.module$(EXEEXT) -@COND_mips_arc_TRUE@am__append_4800 = -@COND_mips_arc_TRUE@am__append_4801 = $(nodist_div_module_SOURCES) -@COND_mips_arc_TRUE@am__append_4802 = $(nodist_div_module_SOURCES) \ +@COND_powerpc_ieee1275_TRUE@am__append_4789 = div.mod +@COND_powerpc_ieee1275_TRUE@am__append_4790 = div.marker +@COND_mips_arc_TRUE@am__append_4791 = div.module +@COND_mips_arc_TRUE@am__append_4792 = div.module$(EXEEXT) +@COND_mips_arc_TRUE@am__append_4793 = +@COND_mips_arc_TRUE@am__append_4794 = $(nodist_div_module_SOURCES) +@COND_mips_arc_TRUE@am__append_4795 = $(nodist_div_module_SOURCES) \ @COND_mips_arc_TRUE@ div.marker -@COND_mips_arc_TRUE@am__append_4803 = div.mod -@COND_mips_arc_TRUE@am__append_4804 = div.marker -@COND_mips_qemu_mips_TRUE@am__append_4805 = div.module -@COND_mips_qemu_mips_TRUE@am__append_4806 = div.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_4807 = -@COND_mips_qemu_mips_TRUE@am__append_4808 = $(nodist_div_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_4809 = \ +@COND_mips_arc_TRUE@am__append_4796 = div.mod +@COND_mips_arc_TRUE@am__append_4797 = div.marker +@COND_mips_qemu_mips_TRUE@am__append_4798 = div.module +@COND_mips_qemu_mips_TRUE@am__append_4799 = div.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_4800 = +@COND_mips_qemu_mips_TRUE@am__append_4801 = $(nodist_div_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_4802 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_div_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ div.marker -@COND_mips_qemu_mips_TRUE@am__append_4810 = div.mod -@COND_mips_qemu_mips_TRUE@am__append_4811 = div.marker -@COND_arm64_efi_TRUE@am__append_4812 = div.module -@COND_arm64_efi_TRUE@am__append_4813 = div.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_4814 = -@COND_arm64_efi_TRUE@am__append_4815 = $(nodist_div_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_4816 = $(nodist_div_module_SOURCES) \ +@COND_mips_qemu_mips_TRUE@am__append_4803 = div.mod +@COND_mips_qemu_mips_TRUE@am__append_4804 = div.marker +@COND_arm64_efi_TRUE@am__append_4805 = div.module +@COND_arm64_efi_TRUE@am__append_4806 = div.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_4807 = +@COND_arm64_efi_TRUE@am__append_4808 = $(nodist_div_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_4809 = $(nodist_div_module_SOURCES) \ @COND_arm64_efi_TRUE@ div.marker -@COND_arm64_efi_TRUE@am__append_4817 = div.mod -@COND_arm64_efi_TRUE@am__append_4818 = div.marker -@COND_riscv64_efi_TRUE@am__append_4819 = div.module -@COND_riscv64_efi_TRUE@am__append_4820 = div.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_4821 = -@COND_riscv64_efi_TRUE@am__append_4822 = $(nodist_div_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_4823 = $(nodist_div_module_SOURCES) \ +@COND_arm64_efi_TRUE@am__append_4810 = div.mod +@COND_arm64_efi_TRUE@am__append_4811 = div.marker +@COND_riscv64_efi_TRUE@am__append_4812 = div.module +@COND_riscv64_efi_TRUE@am__append_4813 = div.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_4814 = +@COND_riscv64_efi_TRUE@am__append_4815 = $(nodist_div_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_4816 = $(nodist_div_module_SOURCES) \ @COND_riscv64_efi_TRUE@ div.marker -@COND_riscv64_efi_TRUE@am__append_4824 = div.mod -@COND_riscv64_efi_TRUE@am__append_4825 = div.marker -@COND_i386_efi_TRUE@am__append_4826 = efi_gop.module -@COND_i386_efi_TRUE@am__append_4827 = efi_gop.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_4817 = div.mod +@COND_riscv64_efi_TRUE@am__append_4818 = div.marker +@COND_i386_efi_TRUE@am__append_4819 = efi_gop.module +@COND_i386_efi_TRUE@am__append_4820 = efi_gop.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_efi_FALSE@@COND_i386_efi_FALSE@@COND_ia64_efi_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_x86_64_efi_FALSE@efi_gop_module_DEPENDENCIES = -@COND_i386_efi_TRUE@am__append_4828 = -@COND_i386_efi_TRUE@am__append_4829 = $(nodist_efi_gop_module_SOURCES) -@COND_i386_efi_TRUE@am__append_4830 = \ +@COND_i386_efi_TRUE@am__append_4821 = +@COND_i386_efi_TRUE@am__append_4822 = $(nodist_efi_gop_module_SOURCES) +@COND_i386_efi_TRUE@am__append_4823 = \ @COND_i386_efi_TRUE@ $(nodist_efi_gop_module_SOURCES) \ @COND_i386_efi_TRUE@ efi_gop.marker -@COND_i386_efi_TRUE@am__append_4831 = efi_gop.mod -@COND_i386_efi_TRUE@am__append_4832 = efi_gop.marker -@COND_x86_64_efi_TRUE@am__append_4833 = efi_gop.module -@COND_x86_64_efi_TRUE@am__append_4834 = efi_gop.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4835 = -@COND_x86_64_efi_TRUE@am__append_4836 = $(nodist_efi_gop_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4837 = \ +@COND_i386_efi_TRUE@am__append_4824 = efi_gop.mod +@COND_i386_efi_TRUE@am__append_4825 = efi_gop.marker +@COND_x86_64_efi_TRUE@am__append_4826 = efi_gop.module +@COND_x86_64_efi_TRUE@am__append_4827 = efi_gop.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4828 = +@COND_x86_64_efi_TRUE@am__append_4829 = $(nodist_efi_gop_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4830 = \ @COND_x86_64_efi_TRUE@ $(nodist_efi_gop_module_SOURCES) \ @COND_x86_64_efi_TRUE@ efi_gop.marker -@COND_x86_64_efi_TRUE@am__append_4838 = efi_gop.mod -@COND_x86_64_efi_TRUE@am__append_4839 = efi_gop.marker -@COND_ia64_efi_TRUE@am__append_4840 = efi_gop.module -@COND_ia64_efi_TRUE@am__append_4841 = efi_gop.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_4842 = -@COND_ia64_efi_TRUE@am__append_4843 = $(nodist_efi_gop_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_4844 = \ +@COND_x86_64_efi_TRUE@am__append_4831 = efi_gop.mod +@COND_x86_64_efi_TRUE@am__append_4832 = efi_gop.marker +@COND_ia64_efi_TRUE@am__append_4833 = efi_gop.module +@COND_ia64_efi_TRUE@am__append_4834 = efi_gop.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_4835 = +@COND_ia64_efi_TRUE@am__append_4836 = $(nodist_efi_gop_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_4837 = \ @COND_ia64_efi_TRUE@ $(nodist_efi_gop_module_SOURCES) \ @COND_ia64_efi_TRUE@ efi_gop.marker -@COND_ia64_efi_TRUE@am__append_4845 = efi_gop.mod -@COND_ia64_efi_TRUE@am__append_4846 = efi_gop.marker -@COND_arm_efi_TRUE@am__append_4847 = efi_gop.module -@COND_arm_efi_TRUE@am__append_4848 = efi_gop.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_4849 = -@COND_arm_efi_TRUE@am__append_4850 = $(nodist_efi_gop_module_SOURCES) -@COND_arm_efi_TRUE@am__append_4851 = $(nodist_efi_gop_module_SOURCES) \ +@COND_ia64_efi_TRUE@am__append_4838 = efi_gop.mod +@COND_ia64_efi_TRUE@am__append_4839 = efi_gop.marker +@COND_arm_efi_TRUE@am__append_4840 = efi_gop.module +@COND_arm_efi_TRUE@am__append_4841 = efi_gop.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_4842 = +@COND_arm_efi_TRUE@am__append_4843 = $(nodist_efi_gop_module_SOURCES) +@COND_arm_efi_TRUE@am__append_4844 = $(nodist_efi_gop_module_SOURCES) \ @COND_arm_efi_TRUE@ efi_gop.marker -@COND_arm_efi_TRUE@am__append_4852 = efi_gop.mod -@COND_arm_efi_TRUE@am__append_4853 = efi_gop.marker -@COND_arm64_efi_TRUE@am__append_4854 = efi_gop.module -@COND_arm64_efi_TRUE@am__append_4855 = efi_gop.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_4856 = -@COND_arm64_efi_TRUE@am__append_4857 = $(nodist_efi_gop_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_4858 = \ +@COND_arm_efi_TRUE@am__append_4845 = efi_gop.mod +@COND_arm_efi_TRUE@am__append_4846 = efi_gop.marker +@COND_arm64_efi_TRUE@am__append_4847 = efi_gop.module +@COND_arm64_efi_TRUE@am__append_4848 = efi_gop.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_4849 = +@COND_arm64_efi_TRUE@am__append_4850 = $(nodist_efi_gop_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_4851 = \ @COND_arm64_efi_TRUE@ $(nodist_efi_gop_module_SOURCES) \ @COND_arm64_efi_TRUE@ efi_gop.marker -@COND_arm64_efi_TRUE@am__append_4859 = efi_gop.mod -@COND_arm64_efi_TRUE@am__append_4860 = efi_gop.marker -@COND_riscv32_efi_TRUE@am__append_4861 = efi_gop.module -@COND_riscv32_efi_TRUE@am__append_4862 = efi_gop.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_4863 = -@COND_riscv32_efi_TRUE@am__append_4864 = $(nodist_efi_gop_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_4865 = \ +@COND_arm64_efi_TRUE@am__append_4852 = efi_gop.mod +@COND_arm64_efi_TRUE@am__append_4853 = efi_gop.marker +@COND_riscv32_efi_TRUE@am__append_4854 = efi_gop.module +@COND_riscv32_efi_TRUE@am__append_4855 = efi_gop.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_4856 = +@COND_riscv32_efi_TRUE@am__append_4857 = $(nodist_efi_gop_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_4858 = \ @COND_riscv32_efi_TRUE@ $(nodist_efi_gop_module_SOURCES) \ @COND_riscv32_efi_TRUE@ efi_gop.marker -@COND_riscv32_efi_TRUE@am__append_4866 = efi_gop.mod -@COND_riscv32_efi_TRUE@am__append_4867 = efi_gop.marker -@COND_riscv64_efi_TRUE@am__append_4868 = efi_gop.module -@COND_riscv64_efi_TRUE@am__append_4869 = efi_gop.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_4870 = -@COND_riscv64_efi_TRUE@am__append_4871 = $(nodist_efi_gop_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_4872 = \ +@COND_riscv32_efi_TRUE@am__append_4859 = efi_gop.mod +@COND_riscv32_efi_TRUE@am__append_4860 = efi_gop.marker +@COND_riscv64_efi_TRUE@am__append_4861 = efi_gop.module +@COND_riscv64_efi_TRUE@am__append_4862 = efi_gop.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_4863 = +@COND_riscv64_efi_TRUE@am__append_4864 = $(nodist_efi_gop_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_4865 = \ @COND_riscv64_efi_TRUE@ $(nodist_efi_gop_module_SOURCES) \ @COND_riscv64_efi_TRUE@ efi_gop.marker -@COND_riscv64_efi_TRUE@am__append_4873 = efi_gop.mod -@COND_riscv64_efi_TRUE@am__append_4874 = efi_gop.marker -@COND_i386_efi_TRUE@am__append_4875 = efi_uga.module -@COND_i386_efi_TRUE@am__append_4876 = efi_uga.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_4866 = efi_gop.mod +@COND_riscv64_efi_TRUE@am__append_4867 = efi_gop.marker +@COND_i386_efi_TRUE@am__append_4868 = efi_uga.module +@COND_i386_efi_TRUE@am__append_4869 = efi_uga.module$(EXEEXT) @COND_i386_efi_FALSE@@COND_x86_64_efi_FALSE@efi_uga_module_DEPENDENCIES = -@COND_i386_efi_TRUE@am__append_4877 = -@COND_i386_efi_TRUE@am__append_4878 = $(nodist_efi_uga_module_SOURCES) -@COND_i386_efi_TRUE@am__append_4879 = \ +@COND_i386_efi_TRUE@am__append_4870 = +@COND_i386_efi_TRUE@am__append_4871 = $(nodist_efi_uga_module_SOURCES) +@COND_i386_efi_TRUE@am__append_4872 = \ @COND_i386_efi_TRUE@ $(nodist_efi_uga_module_SOURCES) \ @COND_i386_efi_TRUE@ efi_uga.marker -@COND_i386_efi_TRUE@am__append_4880 = efi_uga.mod -@COND_i386_efi_TRUE@am__append_4881 = efi_uga.marker -@COND_x86_64_efi_TRUE@am__append_4882 = efi_uga.module -@COND_x86_64_efi_TRUE@am__append_4883 = efi_uga.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4884 = -@COND_x86_64_efi_TRUE@am__append_4885 = $(nodist_efi_uga_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4886 = \ +@COND_i386_efi_TRUE@am__append_4873 = efi_uga.mod +@COND_i386_efi_TRUE@am__append_4874 = efi_uga.marker +@COND_x86_64_efi_TRUE@am__append_4875 = efi_uga.module +@COND_x86_64_efi_TRUE@am__append_4876 = efi_uga.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4877 = +@COND_x86_64_efi_TRUE@am__append_4878 = $(nodist_efi_uga_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4879 = \ @COND_x86_64_efi_TRUE@ $(nodist_efi_uga_module_SOURCES) \ @COND_x86_64_efi_TRUE@ efi_uga.marker -@COND_x86_64_efi_TRUE@am__append_4887 = efi_uga.mod -@COND_x86_64_efi_TRUE@am__append_4888 = efi_uga.marker -@COND_i386_pc_TRUE@am__append_4889 = vbe.module -@COND_i386_pc_TRUE@am__append_4890 = vbe.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4880 = efi_uga.mod +@COND_x86_64_efi_TRUE@am__append_4881 = efi_uga.marker +@COND_i386_pc_TRUE@am__append_4882 = vbe.module +@COND_i386_pc_TRUE@am__append_4883 = vbe.module$(EXEEXT) @COND_i386_pc_FALSE@vbe_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_4891 = -@COND_i386_pc_TRUE@am__append_4892 = $(nodist_vbe_module_SOURCES) -@COND_i386_pc_TRUE@am__append_4893 = $(nodist_vbe_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_4884 = +@COND_i386_pc_TRUE@am__append_4885 = $(nodist_vbe_module_SOURCES) +@COND_i386_pc_TRUE@am__append_4886 = $(nodist_vbe_module_SOURCES) \ @COND_i386_pc_TRUE@ vbe.marker -@COND_i386_pc_TRUE@am__append_4894 = vbe.mod -@COND_i386_pc_TRUE@am__append_4895 = vbe.marker -@COND_emu_TRUE@am__append_4896 = video_fb.module -@COND_emu_TRUE@am__append_4897 = video_fb.module$(EXEEXT) +@COND_i386_pc_TRUE@am__append_4887 = vbe.mod +@COND_i386_pc_TRUE@am__append_4888 = vbe.marker +@COND_emu_TRUE@am__append_4889 = video_fb.module +@COND_emu_TRUE@am__append_4890 = video_fb.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@video_fb_module_DEPENDENCIES = -@COND_emu_TRUE@am__append_4898 = -@COND_emu_TRUE@am__append_4899 = $(nodist_video_fb_module_SOURCES) -@COND_emu_TRUE@am__append_4900 = $(nodist_video_fb_module_SOURCES) \ +@COND_emu_TRUE@am__append_4891 = +@COND_emu_TRUE@am__append_4892 = $(nodist_video_fb_module_SOURCES) +@COND_emu_TRUE@am__append_4893 = $(nodist_video_fb_module_SOURCES) \ @COND_emu_TRUE@ video_fb.marker -@COND_emu_TRUE@am__append_4901 = video_fb.mod -@COND_emu_TRUE@am__append_4902 = video_fb.marker -@COND_i386_pc_TRUE@am__append_4903 = video_fb.module -@COND_i386_pc_TRUE@am__append_4904 = video_fb.module$(EXEEXT) -@COND_i386_pc_TRUE@am__append_4905 = -@COND_i386_pc_TRUE@am__append_4906 = $(nodist_video_fb_module_SOURCES) -@COND_i386_pc_TRUE@am__append_4907 = \ +@COND_emu_TRUE@am__append_4894 = video_fb.mod +@COND_emu_TRUE@am__append_4895 = video_fb.marker +@COND_i386_pc_TRUE@am__append_4896 = video_fb.module +@COND_i386_pc_TRUE@am__append_4897 = video_fb.module$(EXEEXT) +@COND_i386_pc_TRUE@am__append_4898 = +@COND_i386_pc_TRUE@am__append_4899 = $(nodist_video_fb_module_SOURCES) +@COND_i386_pc_TRUE@am__append_4900 = \ @COND_i386_pc_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_i386_pc_TRUE@ video_fb.marker -@COND_i386_pc_TRUE@am__append_4908 = video_fb.mod -@COND_i386_pc_TRUE@am__append_4909 = video_fb.marker -@COND_i386_efi_TRUE@am__append_4910 = video_fb.module -@COND_i386_efi_TRUE@am__append_4911 = video_fb.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_4912 = -@COND_i386_efi_TRUE@am__append_4913 = $(nodist_video_fb_module_SOURCES) -@COND_i386_efi_TRUE@am__append_4914 = \ +@COND_i386_pc_TRUE@am__append_4901 = video_fb.mod +@COND_i386_pc_TRUE@am__append_4902 = video_fb.marker +@COND_i386_efi_TRUE@am__append_4903 = video_fb.module +@COND_i386_efi_TRUE@am__append_4904 = video_fb.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_4905 = +@COND_i386_efi_TRUE@am__append_4906 = $(nodist_video_fb_module_SOURCES) +@COND_i386_efi_TRUE@am__append_4907 = \ @COND_i386_efi_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_i386_efi_TRUE@ video_fb.marker -@COND_i386_efi_TRUE@am__append_4915 = video_fb.mod -@COND_i386_efi_TRUE@am__append_4916 = video_fb.marker -@COND_i386_qemu_TRUE@am__append_4917 = video_fb.module -@COND_i386_qemu_TRUE@am__append_4918 = video_fb.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_4919 = -@COND_i386_qemu_TRUE@am__append_4920 = $(nodist_video_fb_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_4921 = \ +@COND_i386_efi_TRUE@am__append_4908 = video_fb.mod +@COND_i386_efi_TRUE@am__append_4909 = video_fb.marker +@COND_i386_qemu_TRUE@am__append_4910 = video_fb.module +@COND_i386_qemu_TRUE@am__append_4911 = video_fb.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_4912 = +@COND_i386_qemu_TRUE@am__append_4913 = $(nodist_video_fb_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_4914 = \ @COND_i386_qemu_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_i386_qemu_TRUE@ video_fb.marker -@COND_i386_qemu_TRUE@am__append_4922 = video_fb.mod -@COND_i386_qemu_TRUE@am__append_4923 = video_fb.marker -@COND_i386_multiboot_TRUE@am__append_4924 = video_fb.module -@COND_i386_multiboot_TRUE@am__append_4925 = video_fb.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_4926 = -@COND_i386_multiboot_TRUE@am__append_4927 = $(nodist_video_fb_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_4928 = \ +@COND_i386_qemu_TRUE@am__append_4915 = video_fb.mod +@COND_i386_qemu_TRUE@am__append_4916 = video_fb.marker +@COND_i386_multiboot_TRUE@am__append_4917 = video_fb.module +@COND_i386_multiboot_TRUE@am__append_4918 = video_fb.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_4919 = +@COND_i386_multiboot_TRUE@am__append_4920 = $(nodist_video_fb_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_4921 = \ @COND_i386_multiboot_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_i386_multiboot_TRUE@ video_fb.marker -@COND_i386_multiboot_TRUE@am__append_4929 = video_fb.mod -@COND_i386_multiboot_TRUE@am__append_4930 = video_fb.marker -@COND_i386_ieee1275_TRUE@am__append_4931 = video_fb.module -@COND_i386_ieee1275_TRUE@am__append_4932 = video_fb.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_4933 = -@COND_i386_ieee1275_TRUE@am__append_4934 = $(nodist_video_fb_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_4935 = \ +@COND_i386_multiboot_TRUE@am__append_4922 = video_fb.mod +@COND_i386_multiboot_TRUE@am__append_4923 = video_fb.marker +@COND_i386_ieee1275_TRUE@am__append_4924 = video_fb.module +@COND_i386_ieee1275_TRUE@am__append_4925 = video_fb.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_4926 = +@COND_i386_ieee1275_TRUE@am__append_4927 = $(nodist_video_fb_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_4928 = \ @COND_i386_ieee1275_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ video_fb.marker -@COND_i386_ieee1275_TRUE@am__append_4936 = video_fb.mod -@COND_i386_ieee1275_TRUE@am__append_4937 = video_fb.marker -@COND_x86_64_efi_TRUE@am__append_4938 = video_fb.module -@COND_x86_64_efi_TRUE@am__append_4939 = video_fb.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_4940 = -@COND_x86_64_efi_TRUE@am__append_4941 = $(nodist_video_fb_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_4942 = \ +@COND_i386_ieee1275_TRUE@am__append_4929 = video_fb.mod +@COND_i386_ieee1275_TRUE@am__append_4930 = video_fb.marker +@COND_x86_64_efi_TRUE@am__append_4931 = video_fb.module +@COND_x86_64_efi_TRUE@am__append_4932 = video_fb.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_4933 = +@COND_x86_64_efi_TRUE@am__append_4934 = $(nodist_video_fb_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_4935 = \ @COND_x86_64_efi_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_x86_64_efi_TRUE@ video_fb.marker -@COND_x86_64_efi_TRUE@am__append_4943 = video_fb.mod -@COND_x86_64_efi_TRUE@am__append_4944 = video_fb.marker -@COND_i386_xen_TRUE@am__append_4945 = video_fb.module -@COND_i386_xen_TRUE@am__append_4946 = video_fb.module$(EXEEXT) -@COND_i386_xen_TRUE@am__append_4947 = -@COND_i386_xen_TRUE@am__append_4948 = $(nodist_video_fb_module_SOURCES) -@COND_i386_xen_TRUE@am__append_4949 = \ +@COND_x86_64_efi_TRUE@am__append_4936 = video_fb.mod +@COND_x86_64_efi_TRUE@am__append_4937 = video_fb.marker +@COND_i386_xen_TRUE@am__append_4938 = video_fb.module +@COND_i386_xen_TRUE@am__append_4939 = video_fb.module$(EXEEXT) +@COND_i386_xen_TRUE@am__append_4940 = +@COND_i386_xen_TRUE@am__append_4941 = $(nodist_video_fb_module_SOURCES) +@COND_i386_xen_TRUE@am__append_4942 = \ @COND_i386_xen_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_i386_xen_TRUE@ video_fb.marker -@COND_i386_xen_TRUE@am__append_4950 = video_fb.mod -@COND_i386_xen_TRUE@am__append_4951 = video_fb.marker -@COND_x86_64_xen_TRUE@am__append_4952 = video_fb.module -@COND_x86_64_xen_TRUE@am__append_4953 = video_fb.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__append_4954 = -@COND_x86_64_xen_TRUE@am__append_4955 = $(nodist_video_fb_module_SOURCES) -@COND_x86_64_xen_TRUE@am__append_4956 = \ +@COND_i386_xen_TRUE@am__append_4943 = video_fb.mod +@COND_i386_xen_TRUE@am__append_4944 = video_fb.marker +@COND_x86_64_xen_TRUE@am__append_4945 = video_fb.module +@COND_x86_64_xen_TRUE@am__append_4946 = video_fb.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__append_4947 = +@COND_x86_64_xen_TRUE@am__append_4948 = $(nodist_video_fb_module_SOURCES) +@COND_x86_64_xen_TRUE@am__append_4949 = \ @COND_x86_64_xen_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_x86_64_xen_TRUE@ video_fb.marker -@COND_x86_64_xen_TRUE@am__append_4957 = video_fb.mod -@COND_x86_64_xen_TRUE@am__append_4958 = video_fb.marker -@COND_i386_xen_pvh_TRUE@am__append_4959 = video_fb.module -@COND_i386_xen_pvh_TRUE@am__append_4960 = video_fb.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_4961 = -@COND_i386_xen_pvh_TRUE@am__append_4962 = $(nodist_video_fb_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_4963 = \ +@COND_x86_64_xen_TRUE@am__append_4950 = video_fb.mod +@COND_x86_64_xen_TRUE@am__append_4951 = video_fb.marker +@COND_i386_xen_pvh_TRUE@am__append_4952 = video_fb.module +@COND_i386_xen_pvh_TRUE@am__append_4953 = video_fb.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_4954 = +@COND_i386_xen_pvh_TRUE@am__append_4955 = $(nodist_video_fb_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_4956 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ video_fb.marker -@COND_i386_xen_pvh_TRUE@am__append_4964 = video_fb.mod -@COND_i386_xen_pvh_TRUE@am__append_4965 = video_fb.marker -@COND_sparc64_ieee1275_TRUE@am__append_4966 = video_fb.module -@COND_sparc64_ieee1275_TRUE@am__append_4967 = video_fb.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__append_4968 = -@COND_sparc64_ieee1275_TRUE@am__append_4969 = $(nodist_video_fb_module_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_4970 = \ +@COND_i386_xen_pvh_TRUE@am__append_4957 = video_fb.mod +@COND_i386_xen_pvh_TRUE@am__append_4958 = video_fb.marker +@COND_sparc64_ieee1275_TRUE@am__append_4959 = video_fb.module +@COND_sparc64_ieee1275_TRUE@am__append_4960 = video_fb.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__append_4961 = +@COND_sparc64_ieee1275_TRUE@am__append_4962 = $(nodist_video_fb_module_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_4963 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ video_fb.marker -@COND_sparc64_ieee1275_TRUE@am__append_4971 = video_fb.mod -@COND_sparc64_ieee1275_TRUE@am__append_4972 = video_fb.marker -@COND_powerpc_ieee1275_TRUE@am__append_4973 = video_fb.module -@COND_powerpc_ieee1275_TRUE@am__append_4974 = video_fb.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__append_4975 = -@COND_powerpc_ieee1275_TRUE@am__append_4976 = $(nodist_video_fb_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_4977 = \ +@COND_sparc64_ieee1275_TRUE@am__append_4964 = video_fb.mod +@COND_sparc64_ieee1275_TRUE@am__append_4965 = video_fb.marker +@COND_powerpc_ieee1275_TRUE@am__append_4966 = video_fb.module +@COND_powerpc_ieee1275_TRUE@am__append_4967 = video_fb.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_4968 = +@COND_powerpc_ieee1275_TRUE@am__append_4969 = $(nodist_video_fb_module_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_4970 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ video_fb.marker -@COND_powerpc_ieee1275_TRUE@am__append_4978 = video_fb.mod -@COND_powerpc_ieee1275_TRUE@am__append_4979 = video_fb.marker -@COND_mips_arc_TRUE@am__append_4980 = video_fb.module -@COND_mips_arc_TRUE@am__append_4981 = video_fb.module$(EXEEXT) -@COND_mips_arc_TRUE@am__append_4982 = -@COND_mips_arc_TRUE@am__append_4983 = $(nodist_video_fb_module_SOURCES) -@COND_mips_arc_TRUE@am__append_4984 = \ +@COND_powerpc_ieee1275_TRUE@am__append_4971 = video_fb.mod +@COND_powerpc_ieee1275_TRUE@am__append_4972 = video_fb.marker +@COND_mips_arc_TRUE@am__append_4973 = video_fb.module +@COND_mips_arc_TRUE@am__append_4974 = video_fb.module$(EXEEXT) +@COND_mips_arc_TRUE@am__append_4975 = +@COND_mips_arc_TRUE@am__append_4976 = $(nodist_video_fb_module_SOURCES) +@COND_mips_arc_TRUE@am__append_4977 = \ @COND_mips_arc_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_mips_arc_TRUE@ video_fb.marker -@COND_mips_arc_TRUE@am__append_4985 = video_fb.mod -@COND_mips_arc_TRUE@am__append_4986 = video_fb.marker -@COND_ia64_efi_TRUE@am__append_4987 = video_fb.module -@COND_ia64_efi_TRUE@am__append_4988 = video_fb.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_4989 = -@COND_ia64_efi_TRUE@am__append_4990 = $(nodist_video_fb_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_4991 = \ +@COND_mips_arc_TRUE@am__append_4978 = video_fb.mod +@COND_mips_arc_TRUE@am__append_4979 = video_fb.marker +@COND_ia64_efi_TRUE@am__append_4980 = video_fb.module +@COND_ia64_efi_TRUE@am__append_4981 = video_fb.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_4982 = +@COND_ia64_efi_TRUE@am__append_4983 = $(nodist_video_fb_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_4984 = \ @COND_ia64_efi_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_ia64_efi_TRUE@ video_fb.marker -@COND_ia64_efi_TRUE@am__append_4992 = video_fb.mod -@COND_ia64_efi_TRUE@am__append_4993 = video_fb.marker -@COND_mips_qemu_mips_TRUE@am__append_4994 = video_fb.module -@COND_mips_qemu_mips_TRUE@am__append_4995 = video_fb.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_4996 = -@COND_mips_qemu_mips_TRUE@am__append_4997 = $(nodist_video_fb_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_4998 = \ +@COND_ia64_efi_TRUE@am__append_4985 = video_fb.mod +@COND_ia64_efi_TRUE@am__append_4986 = video_fb.marker +@COND_mips_qemu_mips_TRUE@am__append_4987 = video_fb.module +@COND_mips_qemu_mips_TRUE@am__append_4988 = video_fb.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_4989 = +@COND_mips_qemu_mips_TRUE@am__append_4990 = $(nodist_video_fb_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_4991 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ video_fb.marker -@COND_mips_qemu_mips_TRUE@am__append_4999 = video_fb.mod -@COND_mips_qemu_mips_TRUE@am__append_5000 = video_fb.marker -@COND_arm_uboot_TRUE@am__append_5001 = video_fb.module -@COND_arm_uboot_TRUE@am__append_5002 = video_fb.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__append_5003 = -@COND_arm_uboot_TRUE@am__append_5004 = $(nodist_video_fb_module_SOURCES) -@COND_arm_uboot_TRUE@am__append_5005 = \ +@COND_mips_qemu_mips_TRUE@am__append_4992 = video_fb.mod +@COND_mips_qemu_mips_TRUE@am__append_4993 = video_fb.marker +@COND_arm_uboot_TRUE@am__append_4994 = video_fb.module +@COND_arm_uboot_TRUE@am__append_4995 = video_fb.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__append_4996 = +@COND_arm_uboot_TRUE@am__append_4997 = $(nodist_video_fb_module_SOURCES) +@COND_arm_uboot_TRUE@am__append_4998 = \ @COND_arm_uboot_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_arm_uboot_TRUE@ video_fb.marker -@COND_arm_uboot_TRUE@am__append_5006 = video_fb.mod -@COND_arm_uboot_TRUE@am__append_5007 = video_fb.marker -@COND_arm_efi_TRUE@am__append_5008 = video_fb.module -@COND_arm_efi_TRUE@am__append_5009 = video_fb.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_5010 = -@COND_arm_efi_TRUE@am__append_5011 = $(nodist_video_fb_module_SOURCES) -@COND_arm_efi_TRUE@am__append_5012 = \ +@COND_arm_uboot_TRUE@am__append_4999 = video_fb.mod +@COND_arm_uboot_TRUE@am__append_5000 = video_fb.marker +@COND_arm_efi_TRUE@am__append_5001 = video_fb.module +@COND_arm_efi_TRUE@am__append_5002 = video_fb.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_5003 = +@COND_arm_efi_TRUE@am__append_5004 = $(nodist_video_fb_module_SOURCES) +@COND_arm_efi_TRUE@am__append_5005 = \ @COND_arm_efi_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_arm_efi_TRUE@ video_fb.marker -@COND_arm_efi_TRUE@am__append_5013 = video_fb.mod -@COND_arm_efi_TRUE@am__append_5014 = video_fb.marker -@COND_arm64_efi_TRUE@am__append_5015 = video_fb.module -@COND_arm64_efi_TRUE@am__append_5016 = video_fb.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_5017 = -@COND_arm64_efi_TRUE@am__append_5018 = $(nodist_video_fb_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_5019 = \ +@COND_arm_efi_TRUE@am__append_5006 = video_fb.mod +@COND_arm_efi_TRUE@am__append_5007 = video_fb.marker +@COND_arm64_efi_TRUE@am__append_5008 = video_fb.module +@COND_arm64_efi_TRUE@am__append_5009 = video_fb.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_5010 = +@COND_arm64_efi_TRUE@am__append_5011 = $(nodist_video_fb_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_5012 = \ @COND_arm64_efi_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_arm64_efi_TRUE@ video_fb.marker -@COND_arm64_efi_TRUE@am__append_5020 = video_fb.mod -@COND_arm64_efi_TRUE@am__append_5021 = video_fb.marker -@COND_riscv32_efi_TRUE@am__append_5022 = video_fb.module -@COND_riscv32_efi_TRUE@am__append_5023 = video_fb.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_5024 = -@COND_riscv32_efi_TRUE@am__append_5025 = $(nodist_video_fb_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_5026 = \ +@COND_arm64_efi_TRUE@am__append_5013 = video_fb.mod +@COND_arm64_efi_TRUE@am__append_5014 = video_fb.marker +@COND_riscv32_efi_TRUE@am__append_5015 = video_fb.module +@COND_riscv32_efi_TRUE@am__append_5016 = video_fb.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_5017 = +@COND_riscv32_efi_TRUE@am__append_5018 = $(nodist_video_fb_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_5019 = \ @COND_riscv32_efi_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_riscv32_efi_TRUE@ video_fb.marker -@COND_riscv32_efi_TRUE@am__append_5027 = video_fb.mod -@COND_riscv32_efi_TRUE@am__append_5028 = video_fb.marker -@COND_riscv64_efi_TRUE@am__append_5029 = video_fb.module -@COND_riscv64_efi_TRUE@am__append_5030 = video_fb.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_5031 = -@COND_riscv64_efi_TRUE@am__append_5032 = $(nodist_video_fb_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_5033 = \ +@COND_riscv32_efi_TRUE@am__append_5020 = video_fb.mod +@COND_riscv32_efi_TRUE@am__append_5021 = video_fb.marker +@COND_riscv64_efi_TRUE@am__append_5022 = video_fb.module +@COND_riscv64_efi_TRUE@am__append_5023 = video_fb.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_5024 = +@COND_riscv64_efi_TRUE@am__append_5025 = $(nodist_video_fb_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_5026 = \ @COND_riscv64_efi_TRUE@ $(nodist_video_fb_module_SOURCES) \ @COND_riscv64_efi_TRUE@ video_fb.marker -@COND_riscv64_efi_TRUE@am__append_5034 = video_fb.mod -@COND_riscv64_efi_TRUE@am__append_5035 = video_fb.marker -@COND_emu_TRUE@am__append_5036 = video.module -@COND_emu_TRUE@am__append_5037 = video.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_5027 = video_fb.mod +@COND_riscv64_efi_TRUE@am__append_5028 = video_fb.marker +@COND_emu_TRUE@am__append_5029 = video.module +@COND_emu_TRUE@am__append_5030 = video.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@video_module_DEPENDENCIES = -@COND_emu_TRUE@am__append_5038 = -@COND_emu_TRUE@am__append_5039 = $(nodist_video_module_SOURCES) -@COND_emu_TRUE@am__append_5040 = $(nodist_video_module_SOURCES) \ +@COND_emu_TRUE@am__append_5031 = +@COND_emu_TRUE@am__append_5032 = $(nodist_video_module_SOURCES) +@COND_emu_TRUE@am__append_5033 = $(nodist_video_module_SOURCES) \ @COND_emu_TRUE@ video.marker -@COND_emu_TRUE@am__append_5041 = video.mod -@COND_emu_TRUE@am__append_5042 = video.marker -@COND_i386_pc_TRUE@am__append_5043 = video.module -@COND_i386_pc_TRUE@am__append_5044 = video.module$(EXEEXT) -@COND_i386_pc_TRUE@am__append_5045 = -@COND_i386_pc_TRUE@am__append_5046 = $(nodist_video_module_SOURCES) -@COND_i386_pc_TRUE@am__append_5047 = $(nodist_video_module_SOURCES) \ +@COND_emu_TRUE@am__append_5034 = video.mod +@COND_emu_TRUE@am__append_5035 = video.marker +@COND_i386_pc_TRUE@am__append_5036 = video.module +@COND_i386_pc_TRUE@am__append_5037 = video.module$(EXEEXT) +@COND_i386_pc_TRUE@am__append_5038 = +@COND_i386_pc_TRUE@am__append_5039 = $(nodist_video_module_SOURCES) +@COND_i386_pc_TRUE@am__append_5040 = $(nodist_video_module_SOURCES) \ @COND_i386_pc_TRUE@ video.marker -@COND_i386_pc_TRUE@am__append_5048 = video.mod -@COND_i386_pc_TRUE@am__append_5049 = video.marker -@COND_i386_efi_TRUE@am__append_5050 = video.module -@COND_i386_efi_TRUE@am__append_5051 = video.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_5052 = -@COND_i386_efi_TRUE@am__append_5053 = $(nodist_video_module_SOURCES) -@COND_i386_efi_TRUE@am__append_5054 = $(nodist_video_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5041 = video.mod +@COND_i386_pc_TRUE@am__append_5042 = video.marker +@COND_i386_efi_TRUE@am__append_5043 = video.module +@COND_i386_efi_TRUE@am__append_5044 = video.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_5045 = +@COND_i386_efi_TRUE@am__append_5046 = $(nodist_video_module_SOURCES) +@COND_i386_efi_TRUE@am__append_5047 = $(nodist_video_module_SOURCES) \ @COND_i386_efi_TRUE@ video.marker -@COND_i386_efi_TRUE@am__append_5055 = video.mod -@COND_i386_efi_TRUE@am__append_5056 = video.marker -@COND_i386_qemu_TRUE@am__append_5057 = video.module -@COND_i386_qemu_TRUE@am__append_5058 = video.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_5059 = -@COND_i386_qemu_TRUE@am__append_5060 = $(nodist_video_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_5061 = $(nodist_video_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_5048 = video.mod +@COND_i386_efi_TRUE@am__append_5049 = video.marker +@COND_i386_qemu_TRUE@am__append_5050 = video.module +@COND_i386_qemu_TRUE@am__append_5051 = video.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_5052 = +@COND_i386_qemu_TRUE@am__append_5053 = $(nodist_video_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_5054 = $(nodist_video_module_SOURCES) \ @COND_i386_qemu_TRUE@ video.marker -@COND_i386_qemu_TRUE@am__append_5062 = video.mod -@COND_i386_qemu_TRUE@am__append_5063 = video.marker -@COND_i386_multiboot_TRUE@am__append_5064 = video.module -@COND_i386_multiboot_TRUE@am__append_5065 = video.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_5066 = -@COND_i386_multiboot_TRUE@am__append_5067 = $(nodist_video_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_5068 = \ +@COND_i386_qemu_TRUE@am__append_5055 = video.mod +@COND_i386_qemu_TRUE@am__append_5056 = video.marker +@COND_i386_multiboot_TRUE@am__append_5057 = video.module +@COND_i386_multiboot_TRUE@am__append_5058 = video.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_5059 = +@COND_i386_multiboot_TRUE@am__append_5060 = $(nodist_video_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_5061 = \ @COND_i386_multiboot_TRUE@ $(nodist_video_module_SOURCES) \ @COND_i386_multiboot_TRUE@ video.marker -@COND_i386_multiboot_TRUE@am__append_5069 = video.mod -@COND_i386_multiboot_TRUE@am__append_5070 = video.marker -@COND_i386_ieee1275_TRUE@am__append_5071 = video.module -@COND_i386_ieee1275_TRUE@am__append_5072 = video.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_5073 = -@COND_i386_ieee1275_TRUE@am__append_5074 = $(nodist_video_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_5075 = \ +@COND_i386_multiboot_TRUE@am__append_5062 = video.mod +@COND_i386_multiboot_TRUE@am__append_5063 = video.marker +@COND_i386_ieee1275_TRUE@am__append_5064 = video.module +@COND_i386_ieee1275_TRUE@am__append_5065 = video.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_5066 = +@COND_i386_ieee1275_TRUE@am__append_5067 = $(nodist_video_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_5068 = \ @COND_i386_ieee1275_TRUE@ $(nodist_video_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ video.marker -@COND_i386_ieee1275_TRUE@am__append_5076 = video.mod -@COND_i386_ieee1275_TRUE@am__append_5077 = video.marker -@COND_x86_64_efi_TRUE@am__append_5078 = video.module -@COND_x86_64_efi_TRUE@am__append_5079 = video.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_5080 = -@COND_x86_64_efi_TRUE@am__append_5081 = $(nodist_video_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_5082 = \ +@COND_i386_ieee1275_TRUE@am__append_5069 = video.mod +@COND_i386_ieee1275_TRUE@am__append_5070 = video.marker +@COND_x86_64_efi_TRUE@am__append_5071 = video.module +@COND_x86_64_efi_TRUE@am__append_5072 = video.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_5073 = +@COND_x86_64_efi_TRUE@am__append_5074 = $(nodist_video_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_5075 = \ @COND_x86_64_efi_TRUE@ $(nodist_video_module_SOURCES) \ @COND_x86_64_efi_TRUE@ video.marker -@COND_x86_64_efi_TRUE@am__append_5083 = video.mod -@COND_x86_64_efi_TRUE@am__append_5084 = video.marker -@COND_i386_xen_TRUE@am__append_5085 = video.module -@COND_i386_xen_TRUE@am__append_5086 = video.module$(EXEEXT) -@COND_i386_xen_TRUE@am__append_5087 = -@COND_i386_xen_TRUE@am__append_5088 = $(nodist_video_module_SOURCES) -@COND_i386_xen_TRUE@am__append_5089 = $(nodist_video_module_SOURCES) \ +@COND_x86_64_efi_TRUE@am__append_5076 = video.mod +@COND_x86_64_efi_TRUE@am__append_5077 = video.marker +@COND_i386_xen_TRUE@am__append_5078 = video.module +@COND_i386_xen_TRUE@am__append_5079 = video.module$(EXEEXT) +@COND_i386_xen_TRUE@am__append_5080 = +@COND_i386_xen_TRUE@am__append_5081 = $(nodist_video_module_SOURCES) +@COND_i386_xen_TRUE@am__append_5082 = $(nodist_video_module_SOURCES) \ @COND_i386_xen_TRUE@ video.marker -@COND_i386_xen_TRUE@am__append_5090 = video.mod -@COND_i386_xen_TRUE@am__append_5091 = video.marker -@COND_x86_64_xen_TRUE@am__append_5092 = video.module -@COND_x86_64_xen_TRUE@am__append_5093 = video.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__append_5094 = -@COND_x86_64_xen_TRUE@am__append_5095 = $(nodist_video_module_SOURCES) -@COND_x86_64_xen_TRUE@am__append_5096 = \ +@COND_i386_xen_TRUE@am__append_5083 = video.mod +@COND_i386_xen_TRUE@am__append_5084 = video.marker +@COND_x86_64_xen_TRUE@am__append_5085 = video.module +@COND_x86_64_xen_TRUE@am__append_5086 = video.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__append_5087 = +@COND_x86_64_xen_TRUE@am__append_5088 = $(nodist_video_module_SOURCES) +@COND_x86_64_xen_TRUE@am__append_5089 = \ @COND_x86_64_xen_TRUE@ $(nodist_video_module_SOURCES) \ @COND_x86_64_xen_TRUE@ video.marker -@COND_x86_64_xen_TRUE@am__append_5097 = video.mod -@COND_x86_64_xen_TRUE@am__append_5098 = video.marker -@COND_i386_xen_pvh_TRUE@am__append_5099 = video.module -@COND_i386_xen_pvh_TRUE@am__append_5100 = video.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_5101 = -@COND_i386_xen_pvh_TRUE@am__append_5102 = $(nodist_video_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_5103 = \ +@COND_x86_64_xen_TRUE@am__append_5090 = video.mod +@COND_x86_64_xen_TRUE@am__append_5091 = video.marker +@COND_i386_xen_pvh_TRUE@am__append_5092 = video.module +@COND_i386_xen_pvh_TRUE@am__append_5093 = video.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_5094 = +@COND_i386_xen_pvh_TRUE@am__append_5095 = $(nodist_video_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_5096 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_video_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ video.marker -@COND_i386_xen_pvh_TRUE@am__append_5104 = video.mod -@COND_i386_xen_pvh_TRUE@am__append_5105 = video.marker -@COND_sparc64_ieee1275_TRUE@am__append_5106 = video.module -@COND_sparc64_ieee1275_TRUE@am__append_5107 = video.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__append_5108 = -@COND_sparc64_ieee1275_TRUE@am__append_5109 = $(nodist_video_module_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_5110 = \ +@COND_i386_xen_pvh_TRUE@am__append_5097 = video.mod +@COND_i386_xen_pvh_TRUE@am__append_5098 = video.marker +@COND_sparc64_ieee1275_TRUE@am__append_5099 = video.module +@COND_sparc64_ieee1275_TRUE@am__append_5100 = video.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__append_5101 = +@COND_sparc64_ieee1275_TRUE@am__append_5102 = $(nodist_video_module_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_5103 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_video_module_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ video.marker -@COND_sparc64_ieee1275_TRUE@am__append_5111 = video.mod -@COND_sparc64_ieee1275_TRUE@am__append_5112 = video.marker -@COND_powerpc_ieee1275_TRUE@am__append_5113 = video.module -@COND_powerpc_ieee1275_TRUE@am__append_5114 = video.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__append_5115 = -@COND_powerpc_ieee1275_TRUE@am__append_5116 = $(nodist_video_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_5117 = \ +@COND_sparc64_ieee1275_TRUE@am__append_5104 = video.mod +@COND_sparc64_ieee1275_TRUE@am__append_5105 = video.marker +@COND_powerpc_ieee1275_TRUE@am__append_5106 = video.module +@COND_powerpc_ieee1275_TRUE@am__append_5107 = video.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_5108 = +@COND_powerpc_ieee1275_TRUE@am__append_5109 = $(nodist_video_module_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_5110 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_video_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ video.marker -@COND_powerpc_ieee1275_TRUE@am__append_5118 = video.mod -@COND_powerpc_ieee1275_TRUE@am__append_5119 = video.marker -@COND_mips_arc_TRUE@am__append_5120 = video.module -@COND_mips_arc_TRUE@am__append_5121 = video.module$(EXEEXT) -@COND_mips_arc_TRUE@am__append_5122 = -@COND_mips_arc_TRUE@am__append_5123 = $(nodist_video_module_SOURCES) -@COND_mips_arc_TRUE@am__append_5124 = $(nodist_video_module_SOURCES) \ +@COND_powerpc_ieee1275_TRUE@am__append_5111 = video.mod +@COND_powerpc_ieee1275_TRUE@am__append_5112 = video.marker +@COND_mips_arc_TRUE@am__append_5113 = video.module +@COND_mips_arc_TRUE@am__append_5114 = video.module$(EXEEXT) +@COND_mips_arc_TRUE@am__append_5115 = +@COND_mips_arc_TRUE@am__append_5116 = $(nodist_video_module_SOURCES) +@COND_mips_arc_TRUE@am__append_5117 = $(nodist_video_module_SOURCES) \ @COND_mips_arc_TRUE@ video.marker -@COND_mips_arc_TRUE@am__append_5125 = video.mod -@COND_mips_arc_TRUE@am__append_5126 = video.marker -@COND_ia64_efi_TRUE@am__append_5127 = video.module -@COND_ia64_efi_TRUE@am__append_5128 = video.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_5129 = -@COND_ia64_efi_TRUE@am__append_5130 = $(nodist_video_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_5131 = $(nodist_video_module_SOURCES) \ +@COND_mips_arc_TRUE@am__append_5118 = video.mod +@COND_mips_arc_TRUE@am__append_5119 = video.marker +@COND_ia64_efi_TRUE@am__append_5120 = video.module +@COND_ia64_efi_TRUE@am__append_5121 = video.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_5122 = +@COND_ia64_efi_TRUE@am__append_5123 = $(nodist_video_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_5124 = $(nodist_video_module_SOURCES) \ @COND_ia64_efi_TRUE@ video.marker -@COND_ia64_efi_TRUE@am__append_5132 = video.mod -@COND_ia64_efi_TRUE@am__append_5133 = video.marker -@COND_mips_qemu_mips_TRUE@am__append_5134 = video.module -@COND_mips_qemu_mips_TRUE@am__append_5135 = video.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__append_5136 = -@COND_mips_qemu_mips_TRUE@am__append_5137 = $(nodist_video_module_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_5138 = \ +@COND_ia64_efi_TRUE@am__append_5125 = video.mod +@COND_ia64_efi_TRUE@am__append_5126 = video.marker +@COND_mips_qemu_mips_TRUE@am__append_5127 = video.module +@COND_mips_qemu_mips_TRUE@am__append_5128 = video.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__append_5129 = +@COND_mips_qemu_mips_TRUE@am__append_5130 = $(nodist_video_module_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_5131 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_video_module_SOURCES) \ @COND_mips_qemu_mips_TRUE@ video.marker -@COND_mips_qemu_mips_TRUE@am__append_5139 = video.mod -@COND_mips_qemu_mips_TRUE@am__append_5140 = video.marker -@COND_arm_uboot_TRUE@am__append_5141 = video.module -@COND_arm_uboot_TRUE@am__append_5142 = video.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__append_5143 = -@COND_arm_uboot_TRUE@am__append_5144 = $(nodist_video_module_SOURCES) -@COND_arm_uboot_TRUE@am__append_5145 = $(nodist_video_module_SOURCES) \ +@COND_mips_qemu_mips_TRUE@am__append_5132 = video.mod +@COND_mips_qemu_mips_TRUE@am__append_5133 = video.marker +@COND_arm_uboot_TRUE@am__append_5134 = video.module +@COND_arm_uboot_TRUE@am__append_5135 = video.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__append_5136 = +@COND_arm_uboot_TRUE@am__append_5137 = $(nodist_video_module_SOURCES) +@COND_arm_uboot_TRUE@am__append_5138 = $(nodist_video_module_SOURCES) \ @COND_arm_uboot_TRUE@ video.marker -@COND_arm_uboot_TRUE@am__append_5146 = video.mod -@COND_arm_uboot_TRUE@am__append_5147 = video.marker -@COND_arm_efi_TRUE@am__append_5148 = video.module -@COND_arm_efi_TRUE@am__append_5149 = video.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_5150 = -@COND_arm_efi_TRUE@am__append_5151 = $(nodist_video_module_SOURCES) -@COND_arm_efi_TRUE@am__append_5152 = $(nodist_video_module_SOURCES) \ +@COND_arm_uboot_TRUE@am__append_5139 = video.mod +@COND_arm_uboot_TRUE@am__append_5140 = video.marker +@COND_arm_efi_TRUE@am__append_5141 = video.module +@COND_arm_efi_TRUE@am__append_5142 = video.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_5143 = +@COND_arm_efi_TRUE@am__append_5144 = $(nodist_video_module_SOURCES) +@COND_arm_efi_TRUE@am__append_5145 = $(nodist_video_module_SOURCES) \ @COND_arm_efi_TRUE@ video.marker -@COND_arm_efi_TRUE@am__append_5153 = video.mod -@COND_arm_efi_TRUE@am__append_5154 = video.marker -@COND_arm64_efi_TRUE@am__append_5155 = video.module -@COND_arm64_efi_TRUE@am__append_5156 = video.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_5157 = -@COND_arm64_efi_TRUE@am__append_5158 = $(nodist_video_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_5159 = $(nodist_video_module_SOURCES) \ +@COND_arm_efi_TRUE@am__append_5146 = video.mod +@COND_arm_efi_TRUE@am__append_5147 = video.marker +@COND_arm64_efi_TRUE@am__append_5148 = video.module +@COND_arm64_efi_TRUE@am__append_5149 = video.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_5150 = +@COND_arm64_efi_TRUE@am__append_5151 = $(nodist_video_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_5152 = $(nodist_video_module_SOURCES) \ @COND_arm64_efi_TRUE@ video.marker -@COND_arm64_efi_TRUE@am__append_5160 = video.mod -@COND_arm64_efi_TRUE@am__append_5161 = video.marker -@COND_riscv32_efi_TRUE@am__append_5162 = video.module -@COND_riscv32_efi_TRUE@am__append_5163 = video.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_5164 = -@COND_riscv32_efi_TRUE@am__append_5165 = $(nodist_video_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_5166 = \ +@COND_arm64_efi_TRUE@am__append_5153 = video.mod +@COND_arm64_efi_TRUE@am__append_5154 = video.marker +@COND_riscv32_efi_TRUE@am__append_5155 = video.module +@COND_riscv32_efi_TRUE@am__append_5156 = video.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_5157 = +@COND_riscv32_efi_TRUE@am__append_5158 = $(nodist_video_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_5159 = \ @COND_riscv32_efi_TRUE@ $(nodist_video_module_SOURCES) \ @COND_riscv32_efi_TRUE@ video.marker -@COND_riscv32_efi_TRUE@am__append_5167 = video.mod -@COND_riscv32_efi_TRUE@am__append_5168 = video.marker -@COND_riscv64_efi_TRUE@am__append_5169 = video.module -@COND_riscv64_efi_TRUE@am__append_5170 = video.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_5171 = -@COND_riscv64_efi_TRUE@am__append_5172 = $(nodist_video_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_5173 = \ +@COND_riscv32_efi_TRUE@am__append_5160 = video.mod +@COND_riscv32_efi_TRUE@am__append_5161 = video.marker +@COND_riscv64_efi_TRUE@am__append_5162 = video.module +@COND_riscv64_efi_TRUE@am__append_5163 = video.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_5164 = +@COND_riscv64_efi_TRUE@am__append_5165 = $(nodist_video_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_5166 = \ @COND_riscv64_efi_TRUE@ $(nodist_video_module_SOURCES) \ @COND_riscv64_efi_TRUE@ video.marker -@COND_riscv64_efi_TRUE@am__append_5174 = video.mod -@COND_riscv64_efi_TRUE@am__append_5175 = video.marker -@COND_powerpc_ieee1275_TRUE@am__append_5176 = ieee1275_fb.module -@COND_powerpc_ieee1275_TRUE@am__append_5177 = ieee1275_fb.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_5167 = video.mod +@COND_riscv64_efi_TRUE@am__append_5168 = video.marker +@COND_powerpc_ieee1275_TRUE@am__append_5169 = ieee1275_fb.module +@COND_powerpc_ieee1275_TRUE@am__append_5170 = ieee1275_fb.module$(EXEEXT) @COND_powerpc_ieee1275_FALSE@ieee1275_fb_module_DEPENDENCIES = -@COND_powerpc_ieee1275_TRUE@am__append_5178 = -@COND_powerpc_ieee1275_TRUE@am__append_5179 = $(nodist_ieee1275_fb_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_5180 = $(nodist_ieee1275_fb_module_SOURCES) \ +@COND_powerpc_ieee1275_TRUE@am__append_5171 = +@COND_powerpc_ieee1275_TRUE@am__append_5172 = $(nodist_ieee1275_fb_module_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_5173 = $(nodist_ieee1275_fb_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ ieee1275_fb.marker -@COND_powerpc_ieee1275_TRUE@am__append_5181 = ieee1275_fb.mod -@COND_powerpc_ieee1275_TRUE@am__append_5182 = ieee1275_fb.marker -@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5183 = sdl.module -@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5184 = sdl.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_5174 = ieee1275_fb.mod +@COND_powerpc_ieee1275_TRUE@am__append_5175 = ieee1275_fb.marker +@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5176 = sdl.module +@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5177 = sdl.module$(EXEEXT) @COND_GRUB_EMU_SDL_FALSE@sdl_module_DEPENDENCIES = @COND_emu_FALSE@sdl_module_DEPENDENCIES = -@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5185 = -@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5186 = $(nodist_sdl_module_SOURCES) -@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5187 = $(nodist_sdl_module_SOURCES) \ +@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5178 = +@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5179 = $(nodist_sdl_module_SOURCES) +@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5180 = $(nodist_sdl_module_SOURCES) \ @COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@ sdl.marker -@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5188 = sdl.mod -@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5189 = sdl.marker -@COND_i386_ieee1275_TRUE@am__append_5190 = ofnet.module -@COND_i386_ieee1275_TRUE@am__append_5191 = ofnet.module$(EXEEXT) +@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5181 = sdl.mod +@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5182 = sdl.marker +@COND_i386_ieee1275_TRUE@am__append_5183 = ofnet.module +@COND_i386_ieee1275_TRUE@am__append_5184 = ofnet.module$(EXEEXT) @COND_i386_ieee1275_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_sparc64_ieee1275_FALSE@ofnet_module_DEPENDENCIES = -@COND_i386_ieee1275_TRUE@am__append_5192 = -@COND_i386_ieee1275_TRUE@am__append_5193 = $(nodist_ofnet_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_5194 = \ +@COND_i386_ieee1275_TRUE@am__append_5185 = +@COND_i386_ieee1275_TRUE@am__append_5186 = $(nodist_ofnet_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_5187 = \ @COND_i386_ieee1275_TRUE@ $(nodist_ofnet_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ ofnet.marker -@COND_i386_ieee1275_TRUE@am__append_5195 = ofnet.mod -@COND_i386_ieee1275_TRUE@am__append_5196 = ofnet.marker -@COND_sparc64_ieee1275_TRUE@am__append_5197 = ofnet.module -@COND_sparc64_ieee1275_TRUE@am__append_5198 = ofnet.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__append_5199 = -@COND_sparc64_ieee1275_TRUE@am__append_5200 = $(nodist_ofnet_module_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_5201 = \ +@COND_i386_ieee1275_TRUE@am__append_5188 = ofnet.mod +@COND_i386_ieee1275_TRUE@am__append_5189 = ofnet.marker +@COND_sparc64_ieee1275_TRUE@am__append_5190 = ofnet.module +@COND_sparc64_ieee1275_TRUE@am__append_5191 = ofnet.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__append_5192 = +@COND_sparc64_ieee1275_TRUE@am__append_5193 = $(nodist_ofnet_module_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_5194 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_ofnet_module_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ ofnet.marker -@COND_sparc64_ieee1275_TRUE@am__append_5202 = ofnet.mod -@COND_sparc64_ieee1275_TRUE@am__append_5203 = ofnet.marker -@COND_powerpc_ieee1275_TRUE@am__append_5204 = ofnet.module -@COND_powerpc_ieee1275_TRUE@am__append_5205 = ofnet.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__append_5206 = -@COND_powerpc_ieee1275_TRUE@am__append_5207 = $(nodist_ofnet_module_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_5208 = \ +@COND_sparc64_ieee1275_TRUE@am__append_5195 = ofnet.mod +@COND_sparc64_ieee1275_TRUE@am__append_5196 = ofnet.marker +@COND_powerpc_ieee1275_TRUE@am__append_5197 = ofnet.module +@COND_powerpc_ieee1275_TRUE@am__append_5198 = ofnet.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_5199 = +@COND_powerpc_ieee1275_TRUE@am__append_5200 = $(nodist_ofnet_module_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_5201 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_ofnet_module_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ ofnet.marker -@COND_powerpc_ieee1275_TRUE@am__append_5209 = ofnet.mod -@COND_powerpc_ieee1275_TRUE@am__append_5210 = ofnet.marker -@COND_arm_uboot_TRUE@am__append_5211 = ubootnet.module -@COND_arm_uboot_TRUE@am__append_5212 = ubootnet.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__append_5202 = ofnet.mod +@COND_powerpc_ieee1275_TRUE@am__append_5203 = ofnet.marker +@COND_arm_uboot_TRUE@am__append_5204 = ubootnet.module +@COND_arm_uboot_TRUE@am__append_5205 = ubootnet.module$(EXEEXT) @COND_arm_uboot_FALSE@ubootnet_module_DEPENDENCIES = -@COND_arm_uboot_TRUE@am__append_5213 = -@COND_arm_uboot_TRUE@am__append_5214 = $(nodist_ubootnet_module_SOURCES) -@COND_arm_uboot_TRUE@am__append_5215 = \ +@COND_arm_uboot_TRUE@am__append_5206 = +@COND_arm_uboot_TRUE@am__append_5207 = $(nodist_ubootnet_module_SOURCES) +@COND_arm_uboot_TRUE@am__append_5208 = \ @COND_arm_uboot_TRUE@ $(nodist_ubootnet_module_SOURCES) \ @COND_arm_uboot_TRUE@ ubootnet.marker -@COND_arm_uboot_TRUE@am__append_5216 = ubootnet.mod -@COND_arm_uboot_TRUE@am__append_5217 = ubootnet.marker -@COND_i386_efi_TRUE@am__append_5218 = efinet.module -@COND_i386_efi_TRUE@am__append_5219 = efinet.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__append_5209 = ubootnet.mod +@COND_arm_uboot_TRUE@am__append_5210 = ubootnet.marker +@COND_i386_efi_TRUE@am__append_5211 = efinet.module +@COND_i386_efi_TRUE@am__append_5212 = efinet.module$(EXEEXT) @COND_arm64_efi_FALSE@@COND_arm_efi_FALSE@@COND_i386_efi_FALSE@@COND_ia64_efi_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_x86_64_efi_FALSE@efinet_module_DEPENDENCIES = -@COND_i386_efi_TRUE@am__append_5220 = -@COND_i386_efi_TRUE@am__append_5221 = $(nodist_efinet_module_SOURCES) -@COND_i386_efi_TRUE@am__append_5222 = $(nodist_efinet_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_5213 = +@COND_i386_efi_TRUE@am__append_5214 = $(nodist_efinet_module_SOURCES) +@COND_i386_efi_TRUE@am__append_5215 = $(nodist_efinet_module_SOURCES) \ @COND_i386_efi_TRUE@ efinet.marker -@COND_i386_efi_TRUE@am__append_5223 = efinet.mod -@COND_i386_efi_TRUE@am__append_5224 = efinet.marker -@COND_x86_64_efi_TRUE@am__append_5225 = efinet.module -@COND_x86_64_efi_TRUE@am__append_5226 = efinet.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_5227 = -@COND_x86_64_efi_TRUE@am__append_5228 = $(nodist_efinet_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_5229 = \ +@COND_i386_efi_TRUE@am__append_5216 = efinet.mod +@COND_i386_efi_TRUE@am__append_5217 = efinet.marker +@COND_x86_64_efi_TRUE@am__append_5218 = efinet.module +@COND_x86_64_efi_TRUE@am__append_5219 = efinet.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_5220 = +@COND_x86_64_efi_TRUE@am__append_5221 = $(nodist_efinet_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_5222 = \ @COND_x86_64_efi_TRUE@ $(nodist_efinet_module_SOURCES) \ @COND_x86_64_efi_TRUE@ efinet.marker -@COND_x86_64_efi_TRUE@am__append_5230 = efinet.mod -@COND_x86_64_efi_TRUE@am__append_5231 = efinet.marker -@COND_ia64_efi_TRUE@am__append_5232 = efinet.module -@COND_ia64_efi_TRUE@am__append_5233 = efinet.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__append_5234 = -@COND_ia64_efi_TRUE@am__append_5235 = $(nodist_efinet_module_SOURCES) -@COND_ia64_efi_TRUE@am__append_5236 = $(nodist_efinet_module_SOURCES) \ +@COND_x86_64_efi_TRUE@am__append_5223 = efinet.mod +@COND_x86_64_efi_TRUE@am__append_5224 = efinet.marker +@COND_ia64_efi_TRUE@am__append_5225 = efinet.module +@COND_ia64_efi_TRUE@am__append_5226 = efinet.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__append_5227 = +@COND_ia64_efi_TRUE@am__append_5228 = $(nodist_efinet_module_SOURCES) +@COND_ia64_efi_TRUE@am__append_5229 = $(nodist_efinet_module_SOURCES) \ @COND_ia64_efi_TRUE@ efinet.marker -@COND_ia64_efi_TRUE@am__append_5237 = efinet.mod -@COND_ia64_efi_TRUE@am__append_5238 = efinet.marker -@COND_arm_efi_TRUE@am__append_5239 = efinet.module -@COND_arm_efi_TRUE@am__append_5240 = efinet.module$(EXEEXT) -@COND_arm_efi_TRUE@am__append_5241 = -@COND_arm_efi_TRUE@am__append_5242 = $(nodist_efinet_module_SOURCES) -@COND_arm_efi_TRUE@am__append_5243 = $(nodist_efinet_module_SOURCES) \ +@COND_ia64_efi_TRUE@am__append_5230 = efinet.mod +@COND_ia64_efi_TRUE@am__append_5231 = efinet.marker +@COND_arm_efi_TRUE@am__append_5232 = efinet.module +@COND_arm_efi_TRUE@am__append_5233 = efinet.module$(EXEEXT) +@COND_arm_efi_TRUE@am__append_5234 = +@COND_arm_efi_TRUE@am__append_5235 = $(nodist_efinet_module_SOURCES) +@COND_arm_efi_TRUE@am__append_5236 = $(nodist_efinet_module_SOURCES) \ @COND_arm_efi_TRUE@ efinet.marker -@COND_arm_efi_TRUE@am__append_5244 = efinet.mod -@COND_arm_efi_TRUE@am__append_5245 = efinet.marker -@COND_arm64_efi_TRUE@am__append_5246 = efinet.module -@COND_arm64_efi_TRUE@am__append_5247 = efinet.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__append_5248 = -@COND_arm64_efi_TRUE@am__append_5249 = $(nodist_efinet_module_SOURCES) -@COND_arm64_efi_TRUE@am__append_5250 = \ +@COND_arm_efi_TRUE@am__append_5237 = efinet.mod +@COND_arm_efi_TRUE@am__append_5238 = efinet.marker +@COND_arm64_efi_TRUE@am__append_5239 = efinet.module +@COND_arm64_efi_TRUE@am__append_5240 = efinet.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__append_5241 = +@COND_arm64_efi_TRUE@am__append_5242 = $(nodist_efinet_module_SOURCES) +@COND_arm64_efi_TRUE@am__append_5243 = \ @COND_arm64_efi_TRUE@ $(nodist_efinet_module_SOURCES) \ @COND_arm64_efi_TRUE@ efinet.marker -@COND_arm64_efi_TRUE@am__append_5251 = efinet.mod -@COND_arm64_efi_TRUE@am__append_5252 = efinet.marker -@COND_riscv32_efi_TRUE@am__append_5253 = efinet.module -@COND_riscv32_efi_TRUE@am__append_5254 = efinet.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__append_5255 = -@COND_riscv32_efi_TRUE@am__append_5256 = $(nodist_efinet_module_SOURCES) -@COND_riscv32_efi_TRUE@am__append_5257 = \ +@COND_arm64_efi_TRUE@am__append_5244 = efinet.mod +@COND_arm64_efi_TRUE@am__append_5245 = efinet.marker +@COND_riscv32_efi_TRUE@am__append_5246 = efinet.module +@COND_riscv32_efi_TRUE@am__append_5247 = efinet.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__append_5248 = +@COND_riscv32_efi_TRUE@am__append_5249 = $(nodist_efinet_module_SOURCES) +@COND_riscv32_efi_TRUE@am__append_5250 = \ @COND_riscv32_efi_TRUE@ $(nodist_efinet_module_SOURCES) \ @COND_riscv32_efi_TRUE@ efinet.marker -@COND_riscv32_efi_TRUE@am__append_5258 = efinet.mod -@COND_riscv32_efi_TRUE@am__append_5259 = efinet.marker -@COND_riscv64_efi_TRUE@am__append_5260 = efinet.module -@COND_riscv64_efi_TRUE@am__append_5261 = efinet.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__append_5262 = -@COND_riscv64_efi_TRUE@am__append_5263 = $(nodist_efinet_module_SOURCES) -@COND_riscv64_efi_TRUE@am__append_5264 = \ +@COND_riscv32_efi_TRUE@am__append_5251 = efinet.mod +@COND_riscv32_efi_TRUE@am__append_5252 = efinet.marker +@COND_riscv64_efi_TRUE@am__append_5253 = efinet.module +@COND_riscv64_efi_TRUE@am__append_5254 = efinet.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__append_5255 = +@COND_riscv64_efi_TRUE@am__append_5256 = $(nodist_efinet_module_SOURCES) +@COND_riscv64_efi_TRUE@am__append_5257 = \ @COND_riscv64_efi_TRUE@ $(nodist_efinet_module_SOURCES) \ @COND_riscv64_efi_TRUE@ efinet.marker -@COND_riscv64_efi_TRUE@am__append_5265 = efinet.mod -@COND_riscv64_efi_TRUE@am__append_5266 = efinet.marker -@COND_emu_TRUE@am__append_5267 = emunet.module legacycfg.module -@COND_emu_TRUE@am__append_5268 = emunet.module$(EXEEXT) \ +@COND_riscv64_efi_TRUE@am__append_5258 = efinet.mod +@COND_riscv64_efi_TRUE@am__append_5259 = efinet.marker +@COND_emu_TRUE@am__append_5260 = emunet.module legacycfg.module +@COND_emu_TRUE@am__append_5261 = emunet.module$(EXEEXT) \ @COND_emu_TRUE@ legacycfg.module$(EXEEXT) @COND_emu_FALSE@emunet_module_DEPENDENCIES = -@COND_emu_TRUE@am__append_5269 = -@COND_emu_TRUE@am__append_5270 = $(nodist_emunet_module_SOURCES) \ +@COND_emu_TRUE@am__append_5262 = +@COND_emu_TRUE@am__append_5263 = $(nodist_emunet_module_SOURCES) \ @COND_emu_TRUE@ $(nodist_legacycfg_module_SOURCES) -@COND_emu_TRUE@am__append_5271 = $(nodist_emunet_module_SOURCES) \ +@COND_emu_TRUE@am__append_5264 = $(nodist_emunet_module_SOURCES) \ @COND_emu_TRUE@ emunet.marker \ @COND_emu_TRUE@ $(nodist_legacycfg_module_SOURCES) \ @COND_emu_TRUE@ legacycfg.marker -@COND_emu_TRUE@am__append_5272 = emunet.mod legacycfg.mod -@COND_emu_TRUE@am__append_5273 = emunet.marker legacycfg.marker +@COND_emu_TRUE@am__append_5265 = emunet.mod legacycfg.mod +@COND_emu_TRUE@am__append_5266 = emunet.marker legacycfg.marker @COND_emu_FALSE@@COND_i386_efi_FALSE@@COND_i386_pc_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@legacycfg_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_5274 = legacycfg.module -@COND_i386_pc_TRUE@am__append_5275 = legacycfg.module$(EXEEXT) -@COND_i386_pc_TRUE@am__append_5276 = -@COND_i386_pc_TRUE@am__append_5277 = $(nodist_legacycfg_module_SOURCES) -@COND_i386_pc_TRUE@am__append_5278 = \ +@COND_i386_pc_TRUE@am__append_5267 = legacycfg.module +@COND_i386_pc_TRUE@am__append_5268 = legacycfg.module$(EXEEXT) +@COND_i386_pc_TRUE@am__append_5269 = +@COND_i386_pc_TRUE@am__append_5270 = $(nodist_legacycfg_module_SOURCES) +@COND_i386_pc_TRUE@am__append_5271 = \ @COND_i386_pc_TRUE@ $(nodist_legacycfg_module_SOURCES) \ @COND_i386_pc_TRUE@ legacycfg.marker -@COND_i386_pc_TRUE@am__append_5279 = legacycfg.mod -@COND_i386_pc_TRUE@am__append_5280 = legacycfg.marker -@COND_i386_efi_TRUE@am__append_5281 = legacycfg.module -@COND_i386_efi_TRUE@am__append_5282 = legacycfg.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_5283 = -@COND_i386_efi_TRUE@am__append_5284 = $(nodist_legacycfg_module_SOURCES) -@COND_i386_efi_TRUE@am__append_5285 = \ +@COND_i386_pc_TRUE@am__append_5272 = legacycfg.mod +@COND_i386_pc_TRUE@am__append_5273 = legacycfg.marker +@COND_i386_efi_TRUE@am__append_5274 = legacycfg.module +@COND_i386_efi_TRUE@am__append_5275 = legacycfg.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_5276 = +@COND_i386_efi_TRUE@am__append_5277 = $(nodist_legacycfg_module_SOURCES) +@COND_i386_efi_TRUE@am__append_5278 = \ @COND_i386_efi_TRUE@ $(nodist_legacycfg_module_SOURCES) \ @COND_i386_efi_TRUE@ legacycfg.marker -@COND_i386_efi_TRUE@am__append_5286 = legacycfg.mod -@COND_i386_efi_TRUE@am__append_5287 = legacycfg.marker -@COND_x86_64_efi_TRUE@am__append_5288 = legacycfg.module -@COND_x86_64_efi_TRUE@am__append_5289 = legacycfg.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_5290 = -@COND_x86_64_efi_TRUE@am__append_5291 = $(nodist_legacycfg_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_5292 = \ +@COND_i386_efi_TRUE@am__append_5279 = legacycfg.mod +@COND_i386_efi_TRUE@am__append_5280 = legacycfg.marker +@COND_x86_64_efi_TRUE@am__append_5281 = legacycfg.module +@COND_x86_64_efi_TRUE@am__append_5282 = legacycfg.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_5283 = +@COND_x86_64_efi_TRUE@am__append_5284 = $(nodist_legacycfg_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_5285 = \ @COND_x86_64_efi_TRUE@ $(nodist_legacycfg_module_SOURCES) \ @COND_x86_64_efi_TRUE@ legacycfg.marker -@COND_x86_64_efi_TRUE@am__append_5293 = legacycfg.mod -@COND_x86_64_efi_TRUE@am__append_5294 = legacycfg.marker -@COND_i386_xen_TRUE@am__append_5295 = legacycfg.module -@COND_i386_xen_TRUE@am__append_5296 = legacycfg.module$(EXEEXT) -@COND_i386_xen_TRUE@am__append_5297 = -@COND_i386_xen_TRUE@am__append_5298 = $(nodist_legacycfg_module_SOURCES) -@COND_i386_xen_TRUE@am__append_5299 = \ +@COND_x86_64_efi_TRUE@am__append_5286 = legacycfg.mod +@COND_x86_64_efi_TRUE@am__append_5287 = legacycfg.marker +@COND_i386_xen_TRUE@am__append_5288 = legacycfg.module +@COND_i386_xen_TRUE@am__append_5289 = legacycfg.module$(EXEEXT) +@COND_i386_xen_TRUE@am__append_5290 = +@COND_i386_xen_TRUE@am__append_5291 = $(nodist_legacycfg_module_SOURCES) +@COND_i386_xen_TRUE@am__append_5292 = \ @COND_i386_xen_TRUE@ $(nodist_legacycfg_module_SOURCES) \ @COND_i386_xen_TRUE@ legacycfg.marker -@COND_i386_xen_TRUE@am__append_5300 = legacycfg.mod -@COND_i386_xen_TRUE@am__append_5301 = legacycfg.marker -@COND_x86_64_xen_TRUE@am__append_5302 = legacycfg.module -@COND_x86_64_xen_TRUE@am__append_5303 = legacycfg.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__append_5304 = -@COND_x86_64_xen_TRUE@am__append_5305 = $(nodist_legacycfg_module_SOURCES) -@COND_x86_64_xen_TRUE@am__append_5306 = \ +@COND_i386_xen_TRUE@am__append_5293 = legacycfg.mod +@COND_i386_xen_TRUE@am__append_5294 = legacycfg.marker +@COND_x86_64_xen_TRUE@am__append_5295 = legacycfg.module +@COND_x86_64_xen_TRUE@am__append_5296 = legacycfg.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__append_5297 = +@COND_x86_64_xen_TRUE@am__append_5298 = $(nodist_legacycfg_module_SOURCES) +@COND_x86_64_xen_TRUE@am__append_5299 = \ @COND_x86_64_xen_TRUE@ $(nodist_legacycfg_module_SOURCES) \ @COND_x86_64_xen_TRUE@ legacycfg.marker -@COND_x86_64_xen_TRUE@am__append_5307 = legacycfg.mod -@COND_x86_64_xen_TRUE@am__append_5308 = legacycfg.marker -@COND_i386_xen_pvh_TRUE@am__append_5309 = legacycfg.module -@COND_i386_xen_pvh_TRUE@am__append_5310 = legacycfg.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_5311 = -@COND_i386_xen_pvh_TRUE@am__append_5312 = $(nodist_legacycfg_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_5313 = \ +@COND_x86_64_xen_TRUE@am__append_5300 = legacycfg.mod +@COND_x86_64_xen_TRUE@am__append_5301 = legacycfg.marker +@COND_i386_xen_pvh_TRUE@am__append_5302 = legacycfg.module +@COND_i386_xen_pvh_TRUE@am__append_5303 = legacycfg.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_5304 = +@COND_i386_xen_pvh_TRUE@am__append_5305 = $(nodist_legacycfg_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_5306 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_legacycfg_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ legacycfg.marker -@COND_i386_xen_pvh_TRUE@am__append_5314 = legacycfg.mod -@COND_i386_xen_pvh_TRUE@am__append_5315 = legacycfg.marker -@COND_i386_pc_TRUE@am__append_5316 = backtrace.module -@COND_i386_pc_TRUE@am__append_5317 = backtrace.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_5307 = legacycfg.mod +@COND_i386_xen_pvh_TRUE@am__append_5308 = legacycfg.marker +@COND_i386_pc_TRUE@am__append_5309 = backtrace.module +@COND_i386_pc_TRUE@am__append_5310 = backtrace.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@backtrace_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_5318 = -@COND_i386_pc_TRUE@am__append_5319 = $(nodist_backtrace_module_SOURCES) -@COND_i386_pc_TRUE@am__append_5320 = \ +@COND_i386_pc_TRUE@am__append_5311 = +@COND_i386_pc_TRUE@am__append_5312 = $(nodist_backtrace_module_SOURCES) +@COND_i386_pc_TRUE@am__append_5313 = \ @COND_i386_pc_TRUE@ $(nodist_backtrace_module_SOURCES) \ @COND_i386_pc_TRUE@ backtrace.marker -@COND_i386_pc_TRUE@am__append_5321 = backtrace.mod -@COND_i386_pc_TRUE@am__append_5322 = backtrace.marker -@COND_i386_efi_TRUE@am__append_5323 = backtrace.module -@COND_i386_efi_TRUE@am__append_5324 = backtrace.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_5325 = -@COND_i386_efi_TRUE@am__append_5326 = $(nodist_backtrace_module_SOURCES) -@COND_i386_efi_TRUE@am__append_5327 = \ +@COND_i386_pc_TRUE@am__append_5314 = backtrace.mod +@COND_i386_pc_TRUE@am__append_5315 = backtrace.marker +@COND_i386_efi_TRUE@am__append_5316 = backtrace.module +@COND_i386_efi_TRUE@am__append_5317 = backtrace.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_5318 = +@COND_i386_efi_TRUE@am__append_5319 = $(nodist_backtrace_module_SOURCES) +@COND_i386_efi_TRUE@am__append_5320 = \ @COND_i386_efi_TRUE@ $(nodist_backtrace_module_SOURCES) \ @COND_i386_efi_TRUE@ backtrace.marker -@COND_i386_efi_TRUE@am__append_5328 = backtrace.mod -@COND_i386_efi_TRUE@am__append_5329 = backtrace.marker -@COND_i386_qemu_TRUE@am__append_5330 = backtrace.module -@COND_i386_qemu_TRUE@am__append_5331 = backtrace.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_5332 = -@COND_i386_qemu_TRUE@am__append_5333 = $(nodist_backtrace_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_5334 = \ +@COND_i386_efi_TRUE@am__append_5321 = backtrace.mod +@COND_i386_efi_TRUE@am__append_5322 = backtrace.marker +@COND_i386_qemu_TRUE@am__append_5323 = backtrace.module +@COND_i386_qemu_TRUE@am__append_5324 = backtrace.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_5325 = +@COND_i386_qemu_TRUE@am__append_5326 = $(nodist_backtrace_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_5327 = \ @COND_i386_qemu_TRUE@ $(nodist_backtrace_module_SOURCES) \ @COND_i386_qemu_TRUE@ backtrace.marker -@COND_i386_qemu_TRUE@am__append_5335 = backtrace.mod -@COND_i386_qemu_TRUE@am__append_5336 = backtrace.marker -@COND_i386_coreboot_TRUE@am__append_5337 = backtrace.module -@COND_i386_coreboot_TRUE@am__append_5338 = backtrace.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_5339 = -@COND_i386_coreboot_TRUE@am__append_5340 = $(nodist_backtrace_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_5341 = \ +@COND_i386_qemu_TRUE@am__append_5328 = backtrace.mod +@COND_i386_qemu_TRUE@am__append_5329 = backtrace.marker +@COND_i386_coreboot_TRUE@am__append_5330 = backtrace.module +@COND_i386_coreboot_TRUE@am__append_5331 = backtrace.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_5332 = +@COND_i386_coreboot_TRUE@am__append_5333 = $(nodist_backtrace_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_5334 = \ @COND_i386_coreboot_TRUE@ $(nodist_backtrace_module_SOURCES) \ @COND_i386_coreboot_TRUE@ backtrace.marker -@COND_i386_coreboot_TRUE@am__append_5342 = backtrace.mod -@COND_i386_coreboot_TRUE@am__append_5343 = backtrace.marker -@COND_i386_multiboot_TRUE@am__append_5344 = backtrace.module -@COND_i386_multiboot_TRUE@am__append_5345 = backtrace.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_5346 = -@COND_i386_multiboot_TRUE@am__append_5347 = $(nodist_backtrace_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_5348 = \ +@COND_i386_coreboot_TRUE@am__append_5335 = backtrace.mod +@COND_i386_coreboot_TRUE@am__append_5336 = backtrace.marker +@COND_i386_multiboot_TRUE@am__append_5337 = backtrace.module +@COND_i386_multiboot_TRUE@am__append_5338 = backtrace.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_5339 = +@COND_i386_multiboot_TRUE@am__append_5340 = $(nodist_backtrace_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_5341 = \ @COND_i386_multiboot_TRUE@ $(nodist_backtrace_module_SOURCES) \ @COND_i386_multiboot_TRUE@ backtrace.marker -@COND_i386_multiboot_TRUE@am__append_5349 = backtrace.mod -@COND_i386_multiboot_TRUE@am__append_5350 = backtrace.marker -@COND_i386_ieee1275_TRUE@am__append_5351 = backtrace.module -@COND_i386_ieee1275_TRUE@am__append_5352 = backtrace.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_5353 = -@COND_i386_ieee1275_TRUE@am__append_5354 = $(nodist_backtrace_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_5355 = \ +@COND_i386_multiboot_TRUE@am__append_5342 = backtrace.mod +@COND_i386_multiboot_TRUE@am__append_5343 = backtrace.marker +@COND_i386_ieee1275_TRUE@am__append_5344 = backtrace.module +@COND_i386_ieee1275_TRUE@am__append_5345 = backtrace.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_5346 = +@COND_i386_ieee1275_TRUE@am__append_5347 = $(nodist_backtrace_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_5348 = \ @COND_i386_ieee1275_TRUE@ $(nodist_backtrace_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ backtrace.marker -@COND_i386_ieee1275_TRUE@am__append_5356 = backtrace.mod -@COND_i386_ieee1275_TRUE@am__append_5357 = backtrace.marker -@COND_x86_64_efi_TRUE@am__append_5358 = backtrace.module -@COND_x86_64_efi_TRUE@am__append_5359 = backtrace.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_5360 = -@COND_x86_64_efi_TRUE@am__append_5361 = $(nodist_backtrace_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_5362 = \ +@COND_i386_ieee1275_TRUE@am__append_5349 = backtrace.mod +@COND_i386_ieee1275_TRUE@am__append_5350 = backtrace.marker +@COND_x86_64_efi_TRUE@am__append_5351 = backtrace.module +@COND_x86_64_efi_TRUE@am__append_5352 = backtrace.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_5353 = +@COND_x86_64_efi_TRUE@am__append_5354 = $(nodist_backtrace_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_5355 = \ @COND_x86_64_efi_TRUE@ $(nodist_backtrace_module_SOURCES) \ @COND_x86_64_efi_TRUE@ backtrace.marker -@COND_x86_64_efi_TRUE@am__append_5363 = backtrace.mod -@COND_x86_64_efi_TRUE@am__append_5364 = backtrace.marker -@COND_i386_xen_TRUE@am__append_5365 = backtrace.module -@COND_i386_xen_TRUE@am__append_5366 = backtrace.module$(EXEEXT) -@COND_i386_xen_TRUE@am__append_5367 = -@COND_i386_xen_TRUE@am__append_5368 = $(nodist_backtrace_module_SOURCES) -@COND_i386_xen_TRUE@am__append_5369 = \ +@COND_x86_64_efi_TRUE@am__append_5356 = backtrace.mod +@COND_x86_64_efi_TRUE@am__append_5357 = backtrace.marker +@COND_i386_xen_TRUE@am__append_5358 = backtrace.module +@COND_i386_xen_TRUE@am__append_5359 = backtrace.module$(EXEEXT) +@COND_i386_xen_TRUE@am__append_5360 = +@COND_i386_xen_TRUE@am__append_5361 = $(nodist_backtrace_module_SOURCES) +@COND_i386_xen_TRUE@am__append_5362 = \ @COND_i386_xen_TRUE@ $(nodist_backtrace_module_SOURCES) \ @COND_i386_xen_TRUE@ backtrace.marker -@COND_i386_xen_TRUE@am__append_5370 = backtrace.mod -@COND_i386_xen_TRUE@am__append_5371 = backtrace.marker -@COND_x86_64_xen_TRUE@am__append_5372 = backtrace.module -@COND_x86_64_xen_TRUE@am__append_5373 = backtrace.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__append_5374 = -@COND_x86_64_xen_TRUE@am__append_5375 = $(nodist_backtrace_module_SOURCES) -@COND_x86_64_xen_TRUE@am__append_5376 = \ +@COND_i386_xen_TRUE@am__append_5363 = backtrace.mod +@COND_i386_xen_TRUE@am__append_5364 = backtrace.marker +@COND_x86_64_xen_TRUE@am__append_5365 = backtrace.module +@COND_x86_64_xen_TRUE@am__append_5366 = backtrace.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__append_5367 = +@COND_x86_64_xen_TRUE@am__append_5368 = $(nodist_backtrace_module_SOURCES) +@COND_x86_64_xen_TRUE@am__append_5369 = \ @COND_x86_64_xen_TRUE@ $(nodist_backtrace_module_SOURCES) \ @COND_x86_64_xen_TRUE@ backtrace.marker -@COND_x86_64_xen_TRUE@am__append_5377 = backtrace.mod -@COND_x86_64_xen_TRUE@am__append_5378 = backtrace.marker -@COND_i386_xen_pvh_TRUE@am__append_5379 = backtrace.module -@COND_i386_xen_pvh_TRUE@am__append_5380 = backtrace.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__append_5381 = -@COND_i386_xen_pvh_TRUE@am__append_5382 = $(nodist_backtrace_module_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_5383 = \ +@COND_x86_64_xen_TRUE@am__append_5370 = backtrace.mod +@COND_x86_64_xen_TRUE@am__append_5371 = backtrace.marker +@COND_i386_xen_pvh_TRUE@am__append_5372 = backtrace.module +@COND_i386_xen_pvh_TRUE@am__append_5373 = backtrace.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__append_5374 = +@COND_i386_xen_pvh_TRUE@am__append_5375 = $(nodist_backtrace_module_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_5376 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_backtrace_module_SOURCES) \ @COND_i386_xen_pvh_TRUE@ backtrace.marker -@COND_i386_xen_pvh_TRUE@am__append_5384 = backtrace.mod -@COND_i386_xen_pvh_TRUE@am__append_5385 = backtrace.marker -@COND_i386_pc_TRUE@am__append_5386 = lsapm.module keylayouts.module -@COND_i386_pc_TRUE@am__append_5387 = lsapm.module$(EXEEXT) \ +@COND_i386_xen_pvh_TRUE@am__append_5377 = backtrace.mod +@COND_i386_xen_pvh_TRUE@am__append_5378 = backtrace.marker +@COND_i386_pc_TRUE@am__append_5379 = lsapm.module keylayouts.module +@COND_i386_pc_TRUE@am__append_5380 = lsapm.module$(EXEEXT) \ @COND_i386_pc_TRUE@ keylayouts.module$(EXEEXT) @COND_i386_pc_FALSE@lsapm_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_5388 = -@COND_i386_pc_TRUE@am__append_5389 = $(nodist_lsapm_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5381 = +@COND_i386_pc_TRUE@am__append_5382 = $(nodist_lsapm_module_SOURCES) \ @COND_i386_pc_TRUE@ $(nodist_keylayouts_module_SOURCES) -@COND_i386_pc_TRUE@am__append_5390 = $(nodist_lsapm_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5383 = $(nodist_lsapm_module_SOURCES) \ @COND_i386_pc_TRUE@ lsapm.marker \ @COND_i386_pc_TRUE@ $(nodist_keylayouts_module_SOURCES) \ @COND_i386_pc_TRUE@ keylayouts.marker -@COND_i386_pc_TRUE@am__append_5391 = lsapm.mod keylayouts.mod -@COND_i386_pc_TRUE@am__append_5392 = lsapm.marker keylayouts.marker +@COND_i386_pc_TRUE@am__append_5384 = lsapm.mod keylayouts.mod +@COND_i386_pc_TRUE@am__append_5385 = lsapm.marker keylayouts.marker @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_x86_64_efi_FALSE@keylayouts_module_DEPENDENCIES = -@COND_i386_efi_TRUE@am__append_5393 = keylayouts.module -@COND_i386_efi_TRUE@am__append_5394 = keylayouts.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_5395 = -@COND_i386_efi_TRUE@am__append_5396 = $(nodist_keylayouts_module_SOURCES) -@COND_i386_efi_TRUE@am__append_5397 = \ +@COND_i386_efi_TRUE@am__append_5386 = keylayouts.module +@COND_i386_efi_TRUE@am__append_5387 = keylayouts.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_5388 = +@COND_i386_efi_TRUE@am__append_5389 = $(nodist_keylayouts_module_SOURCES) +@COND_i386_efi_TRUE@am__append_5390 = \ @COND_i386_efi_TRUE@ $(nodist_keylayouts_module_SOURCES) \ @COND_i386_efi_TRUE@ keylayouts.marker -@COND_i386_efi_TRUE@am__append_5398 = keylayouts.mod -@COND_i386_efi_TRUE@am__append_5399 = keylayouts.marker -@COND_i386_qemu_TRUE@am__append_5400 = keylayouts.module -@COND_i386_qemu_TRUE@am__append_5401 = keylayouts.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_5402 = -@COND_i386_qemu_TRUE@am__append_5403 = $(nodist_keylayouts_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_5404 = \ +@COND_i386_efi_TRUE@am__append_5391 = keylayouts.mod +@COND_i386_efi_TRUE@am__append_5392 = keylayouts.marker +@COND_i386_qemu_TRUE@am__append_5393 = keylayouts.module +@COND_i386_qemu_TRUE@am__append_5394 = keylayouts.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_5395 = +@COND_i386_qemu_TRUE@am__append_5396 = $(nodist_keylayouts_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_5397 = \ @COND_i386_qemu_TRUE@ $(nodist_keylayouts_module_SOURCES) \ @COND_i386_qemu_TRUE@ keylayouts.marker -@COND_i386_qemu_TRUE@am__append_5405 = keylayouts.mod -@COND_i386_qemu_TRUE@am__append_5406 = keylayouts.marker -@COND_i386_coreboot_TRUE@am__append_5407 = keylayouts.module -@COND_i386_coreboot_TRUE@am__append_5408 = keylayouts.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_5409 = -@COND_i386_coreboot_TRUE@am__append_5410 = $(nodist_keylayouts_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_5411 = \ +@COND_i386_qemu_TRUE@am__append_5398 = keylayouts.mod +@COND_i386_qemu_TRUE@am__append_5399 = keylayouts.marker +@COND_i386_coreboot_TRUE@am__append_5400 = keylayouts.module +@COND_i386_coreboot_TRUE@am__append_5401 = keylayouts.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_5402 = +@COND_i386_coreboot_TRUE@am__append_5403 = $(nodist_keylayouts_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_5404 = \ @COND_i386_coreboot_TRUE@ $(nodist_keylayouts_module_SOURCES) \ @COND_i386_coreboot_TRUE@ keylayouts.marker -@COND_i386_coreboot_TRUE@am__append_5412 = keylayouts.mod -@COND_i386_coreboot_TRUE@am__append_5413 = keylayouts.marker -@COND_i386_multiboot_TRUE@am__append_5414 = keylayouts.module -@COND_i386_multiboot_TRUE@am__append_5415 = keylayouts.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_5416 = -@COND_i386_multiboot_TRUE@am__append_5417 = $(nodist_keylayouts_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_5418 = \ +@COND_i386_coreboot_TRUE@am__append_5405 = keylayouts.mod +@COND_i386_coreboot_TRUE@am__append_5406 = keylayouts.marker +@COND_i386_multiboot_TRUE@am__append_5407 = keylayouts.module +@COND_i386_multiboot_TRUE@am__append_5408 = keylayouts.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_5409 = +@COND_i386_multiboot_TRUE@am__append_5410 = $(nodist_keylayouts_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_5411 = \ @COND_i386_multiboot_TRUE@ $(nodist_keylayouts_module_SOURCES) \ @COND_i386_multiboot_TRUE@ keylayouts.marker -@COND_i386_multiboot_TRUE@am__append_5419 = keylayouts.mod -@COND_i386_multiboot_TRUE@am__append_5420 = keylayouts.marker -@COND_i386_ieee1275_TRUE@am__append_5421 = keylayouts.module -@COND_i386_ieee1275_TRUE@am__append_5422 = keylayouts.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_5423 = -@COND_i386_ieee1275_TRUE@am__append_5424 = $(nodist_keylayouts_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_5425 = \ +@COND_i386_multiboot_TRUE@am__append_5412 = keylayouts.mod +@COND_i386_multiboot_TRUE@am__append_5413 = keylayouts.marker +@COND_i386_ieee1275_TRUE@am__append_5414 = keylayouts.module +@COND_i386_ieee1275_TRUE@am__append_5415 = keylayouts.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_5416 = +@COND_i386_ieee1275_TRUE@am__append_5417 = $(nodist_keylayouts_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_5418 = \ @COND_i386_ieee1275_TRUE@ $(nodist_keylayouts_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ keylayouts.marker -@COND_i386_ieee1275_TRUE@am__append_5426 = keylayouts.mod -@COND_i386_ieee1275_TRUE@am__append_5427 = keylayouts.marker -@COND_x86_64_efi_TRUE@am__append_5428 = keylayouts.module -@COND_x86_64_efi_TRUE@am__append_5429 = keylayouts.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_5430 = -@COND_x86_64_efi_TRUE@am__append_5431 = $(nodist_keylayouts_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_5432 = \ +@COND_i386_ieee1275_TRUE@am__append_5419 = keylayouts.mod +@COND_i386_ieee1275_TRUE@am__append_5420 = keylayouts.marker +@COND_x86_64_efi_TRUE@am__append_5421 = keylayouts.module +@COND_x86_64_efi_TRUE@am__append_5422 = keylayouts.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_5423 = +@COND_x86_64_efi_TRUE@am__append_5424 = $(nodist_keylayouts_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_5425 = \ @COND_x86_64_efi_TRUE@ $(nodist_keylayouts_module_SOURCES) \ @COND_x86_64_efi_TRUE@ keylayouts.marker -@COND_x86_64_efi_TRUE@am__append_5433 = keylayouts.mod -@COND_x86_64_efi_TRUE@am__append_5434 = keylayouts.marker -@COND_ENABLE_CACHE_STATS_TRUE@am__append_5435 = cacheinfo.module -@COND_ENABLE_CACHE_STATS_TRUE@am__append_5436 = cacheinfo.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_5426 = keylayouts.mod +@COND_x86_64_efi_TRUE@am__append_5427 = keylayouts.marker +@COND_ENABLE_CACHE_STATS_TRUE@am__append_5428 = cacheinfo.module +@COND_ENABLE_CACHE_STATS_TRUE@am__append_5429 = cacheinfo.module$(EXEEXT) @COND_ENABLE_CACHE_STATS_FALSE@cacheinfo_module_DEPENDENCIES = -@COND_ENABLE_CACHE_STATS_TRUE@am__append_5437 = -@COND_ENABLE_CACHE_STATS_TRUE@am__append_5438 = $(nodist_cacheinfo_module_SOURCES) -@COND_ENABLE_CACHE_STATS_TRUE@am__append_5439 = $(nodist_cacheinfo_module_SOURCES) \ +@COND_ENABLE_CACHE_STATS_TRUE@am__append_5430 = +@COND_ENABLE_CACHE_STATS_TRUE@am__append_5431 = $(nodist_cacheinfo_module_SOURCES) +@COND_ENABLE_CACHE_STATS_TRUE@am__append_5432 = $(nodist_cacheinfo_module_SOURCES) \ @COND_ENABLE_CACHE_STATS_TRUE@ cacheinfo.marker -@COND_ENABLE_CACHE_STATS_TRUE@am__append_5440 = cacheinfo.mod -@COND_ENABLE_CACHE_STATS_TRUE@am__append_5441 = cacheinfo.marker -@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5442 = boottime.module -@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5443 = boottime.module$(EXEEXT) +@COND_ENABLE_CACHE_STATS_TRUE@am__append_5433 = cacheinfo.mod +@COND_ENABLE_CACHE_STATS_TRUE@am__append_5434 = cacheinfo.marker +@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5435 = boottime.module +@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5436 = boottime.module$(EXEEXT) @COND_ENABLE_BOOT_TIME_STATS_FALSE@boottime_module_DEPENDENCIES = -@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5444 = -@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5445 = $(nodist_boottime_module_SOURCES) -@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5446 = $(nodist_boottime_module_SOURCES) \ +@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5437 = +@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5438 = $(nodist_boottime_module_SOURCES) +@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5439 = $(nodist_boottime_module_SOURCES) \ @COND_ENABLE_BOOT_TIME_STATS_TRUE@ boottime.marker -@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5447 = boottime.mod -@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5448 = boottime.marker -@COND_i386_pc_TRUE@am__append_5449 = gdb.module -@COND_i386_pc_TRUE@am__append_5450 = gdb.module$(EXEEXT) +@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5440 = boottime.mod +@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__append_5441 = boottime.marker +@COND_i386_pc_TRUE@am__append_5442 = gdb.module +@COND_i386_pc_TRUE@am__append_5443 = gdb.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@gdb_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_5451 = -@COND_i386_pc_TRUE@am__append_5452 = $(nodist_gdb_module_SOURCES) -@COND_i386_pc_TRUE@am__append_5453 = $(nodist_gdb_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5444 = +@COND_i386_pc_TRUE@am__append_5445 = $(nodist_gdb_module_SOURCES) +@COND_i386_pc_TRUE@am__append_5446 = $(nodist_gdb_module_SOURCES) \ @COND_i386_pc_TRUE@ gdb.marker -@COND_i386_pc_TRUE@am__append_5454 = gdb.mod -@COND_i386_pc_TRUE@am__append_5455 = gdb.marker -@COND_i386_efi_TRUE@am__append_5456 = gdb.module -@COND_i386_efi_TRUE@am__append_5457 = gdb.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_5458 = -@COND_i386_efi_TRUE@am__append_5459 = $(nodist_gdb_module_SOURCES) -@COND_i386_efi_TRUE@am__append_5460 = $(nodist_gdb_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5447 = gdb.mod +@COND_i386_pc_TRUE@am__append_5448 = gdb.marker +@COND_i386_efi_TRUE@am__append_5449 = gdb.module +@COND_i386_efi_TRUE@am__append_5450 = gdb.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_5451 = +@COND_i386_efi_TRUE@am__append_5452 = $(nodist_gdb_module_SOURCES) +@COND_i386_efi_TRUE@am__append_5453 = $(nodist_gdb_module_SOURCES) \ @COND_i386_efi_TRUE@ gdb.marker -@COND_i386_efi_TRUE@am__append_5461 = gdb.mod -@COND_i386_efi_TRUE@am__append_5462 = gdb.marker -@COND_i386_qemu_TRUE@am__append_5463 = gdb.module -@COND_i386_qemu_TRUE@am__append_5464 = gdb.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_5465 = -@COND_i386_qemu_TRUE@am__append_5466 = $(nodist_gdb_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_5467 = $(nodist_gdb_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_5454 = gdb.mod +@COND_i386_efi_TRUE@am__append_5455 = gdb.marker +@COND_i386_qemu_TRUE@am__append_5456 = gdb.module +@COND_i386_qemu_TRUE@am__append_5457 = gdb.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_5458 = +@COND_i386_qemu_TRUE@am__append_5459 = $(nodist_gdb_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_5460 = $(nodist_gdb_module_SOURCES) \ @COND_i386_qemu_TRUE@ gdb.marker -@COND_i386_qemu_TRUE@am__append_5468 = gdb.mod -@COND_i386_qemu_TRUE@am__append_5469 = gdb.marker -@COND_i386_coreboot_TRUE@am__append_5470 = gdb.module -@COND_i386_coreboot_TRUE@am__append_5471 = gdb.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_5472 = -@COND_i386_coreboot_TRUE@am__append_5473 = $(nodist_gdb_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_5474 = \ +@COND_i386_qemu_TRUE@am__append_5461 = gdb.mod +@COND_i386_qemu_TRUE@am__append_5462 = gdb.marker +@COND_i386_coreboot_TRUE@am__append_5463 = gdb.module +@COND_i386_coreboot_TRUE@am__append_5464 = gdb.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_5465 = +@COND_i386_coreboot_TRUE@am__append_5466 = $(nodist_gdb_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_5467 = \ @COND_i386_coreboot_TRUE@ $(nodist_gdb_module_SOURCES) \ @COND_i386_coreboot_TRUE@ gdb.marker -@COND_i386_coreboot_TRUE@am__append_5475 = gdb.mod -@COND_i386_coreboot_TRUE@am__append_5476 = gdb.marker -@COND_i386_multiboot_TRUE@am__append_5477 = gdb.module -@COND_i386_multiboot_TRUE@am__append_5478 = gdb.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_5479 = -@COND_i386_multiboot_TRUE@am__append_5480 = $(nodist_gdb_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_5481 = \ +@COND_i386_coreboot_TRUE@am__append_5468 = gdb.mod +@COND_i386_coreboot_TRUE@am__append_5469 = gdb.marker +@COND_i386_multiboot_TRUE@am__append_5470 = gdb.module +@COND_i386_multiboot_TRUE@am__append_5471 = gdb.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_5472 = +@COND_i386_multiboot_TRUE@am__append_5473 = $(nodist_gdb_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_5474 = \ @COND_i386_multiboot_TRUE@ $(nodist_gdb_module_SOURCES) \ @COND_i386_multiboot_TRUE@ gdb.marker -@COND_i386_multiboot_TRUE@am__append_5482 = gdb.mod -@COND_i386_multiboot_TRUE@am__append_5483 = gdb.marker -@COND_i386_ieee1275_TRUE@am__append_5484 = gdb.module -@COND_i386_ieee1275_TRUE@am__append_5485 = gdb.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_5486 = -@COND_i386_ieee1275_TRUE@am__append_5487 = $(nodist_gdb_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_5488 = \ +@COND_i386_multiboot_TRUE@am__append_5475 = gdb.mod +@COND_i386_multiboot_TRUE@am__append_5476 = gdb.marker +@COND_i386_ieee1275_TRUE@am__append_5477 = gdb.module +@COND_i386_ieee1275_TRUE@am__append_5478 = gdb.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_5479 = +@COND_i386_ieee1275_TRUE@am__append_5480 = $(nodist_gdb_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_5481 = \ @COND_i386_ieee1275_TRUE@ $(nodist_gdb_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ gdb.marker -@COND_i386_ieee1275_TRUE@am__append_5489 = gdb.mod -@COND_i386_ieee1275_TRUE@am__append_5490 = gdb.marker -@COND_x86_64_efi_TRUE@am__append_5491 = tpm.module -@COND_x86_64_efi_TRUE@am__append_5492 = tpm.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_5482 = gdb.mod +@COND_i386_ieee1275_TRUE@am__append_5483 = gdb.marker +@COND_x86_64_efi_TRUE@am__append_5484 = tpm.module +@COND_x86_64_efi_TRUE@am__append_5485 = tpm.module$(EXEEXT) @COND_x86_64_efi_FALSE@tpm_module_DEPENDENCIES = -@COND_x86_64_efi_TRUE@am__append_5493 = -@COND_x86_64_efi_TRUE@am__append_5494 = $(nodist_tpm_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_5495 = $(nodist_tpm_module_SOURCES) \ +@COND_x86_64_efi_TRUE@am__append_5486 = +@COND_x86_64_efi_TRUE@am__append_5487 = $(nodist_tpm_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_5488 = $(nodist_tpm_module_SOURCES) \ @COND_x86_64_efi_TRUE@ tpm.marker -@COND_x86_64_efi_TRUE@am__append_5496 = tpm.mod -@COND_x86_64_efi_TRUE@am__append_5497 = tpm.marker -@COND_i386_pc_TRUE@am__append_5498 = rdmsr.module -@COND_i386_pc_TRUE@am__append_5499 = rdmsr.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_5489 = tpm.mod +@COND_x86_64_efi_TRUE@am__append_5490 = tpm.marker +@COND_i386_pc_TRUE@am__append_5491 = rdmsr.module +@COND_i386_pc_TRUE@am__append_5492 = rdmsr.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_x86_64_efi_FALSE@rdmsr_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_5500 = -@COND_i386_pc_TRUE@am__append_5501 = $(nodist_rdmsr_module_SOURCES) -@COND_i386_pc_TRUE@am__append_5502 = $(nodist_rdmsr_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5493 = +@COND_i386_pc_TRUE@am__append_5494 = $(nodist_rdmsr_module_SOURCES) +@COND_i386_pc_TRUE@am__append_5495 = $(nodist_rdmsr_module_SOURCES) \ @COND_i386_pc_TRUE@ rdmsr.marker -@COND_i386_pc_TRUE@am__append_5503 = rdmsr.mod -@COND_i386_pc_TRUE@am__append_5504 = rdmsr.marker -@COND_i386_efi_TRUE@am__append_5505 = rdmsr.module -@COND_i386_efi_TRUE@am__append_5506 = rdmsr.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_5507 = -@COND_i386_efi_TRUE@am__append_5508 = $(nodist_rdmsr_module_SOURCES) -@COND_i386_efi_TRUE@am__append_5509 = $(nodist_rdmsr_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5496 = rdmsr.mod +@COND_i386_pc_TRUE@am__append_5497 = rdmsr.marker +@COND_i386_efi_TRUE@am__append_5498 = rdmsr.module +@COND_i386_efi_TRUE@am__append_5499 = rdmsr.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_5500 = +@COND_i386_efi_TRUE@am__append_5501 = $(nodist_rdmsr_module_SOURCES) +@COND_i386_efi_TRUE@am__append_5502 = $(nodist_rdmsr_module_SOURCES) \ @COND_i386_efi_TRUE@ rdmsr.marker -@COND_i386_efi_TRUE@am__append_5510 = rdmsr.mod -@COND_i386_efi_TRUE@am__append_5511 = rdmsr.marker -@COND_i386_qemu_TRUE@am__append_5512 = rdmsr.module -@COND_i386_qemu_TRUE@am__append_5513 = rdmsr.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_5514 = -@COND_i386_qemu_TRUE@am__append_5515 = $(nodist_rdmsr_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_5516 = $(nodist_rdmsr_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_5503 = rdmsr.mod +@COND_i386_efi_TRUE@am__append_5504 = rdmsr.marker +@COND_i386_qemu_TRUE@am__append_5505 = rdmsr.module +@COND_i386_qemu_TRUE@am__append_5506 = rdmsr.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_5507 = +@COND_i386_qemu_TRUE@am__append_5508 = $(nodist_rdmsr_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_5509 = $(nodist_rdmsr_module_SOURCES) \ @COND_i386_qemu_TRUE@ rdmsr.marker -@COND_i386_qemu_TRUE@am__append_5517 = rdmsr.mod -@COND_i386_qemu_TRUE@am__append_5518 = rdmsr.marker -@COND_i386_coreboot_TRUE@am__append_5519 = rdmsr.module -@COND_i386_coreboot_TRUE@am__append_5520 = rdmsr.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_5521 = -@COND_i386_coreboot_TRUE@am__append_5522 = $(nodist_rdmsr_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_5523 = \ +@COND_i386_qemu_TRUE@am__append_5510 = rdmsr.mod +@COND_i386_qemu_TRUE@am__append_5511 = rdmsr.marker +@COND_i386_coreboot_TRUE@am__append_5512 = rdmsr.module +@COND_i386_coreboot_TRUE@am__append_5513 = rdmsr.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_5514 = +@COND_i386_coreboot_TRUE@am__append_5515 = $(nodist_rdmsr_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_5516 = \ @COND_i386_coreboot_TRUE@ $(nodist_rdmsr_module_SOURCES) \ @COND_i386_coreboot_TRUE@ rdmsr.marker -@COND_i386_coreboot_TRUE@am__append_5524 = rdmsr.mod -@COND_i386_coreboot_TRUE@am__append_5525 = rdmsr.marker -@COND_i386_multiboot_TRUE@am__append_5526 = rdmsr.module -@COND_i386_multiboot_TRUE@am__append_5527 = rdmsr.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_5528 = -@COND_i386_multiboot_TRUE@am__append_5529 = $(nodist_rdmsr_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_5530 = \ +@COND_i386_coreboot_TRUE@am__append_5517 = rdmsr.mod +@COND_i386_coreboot_TRUE@am__append_5518 = rdmsr.marker +@COND_i386_multiboot_TRUE@am__append_5519 = rdmsr.module +@COND_i386_multiboot_TRUE@am__append_5520 = rdmsr.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_5521 = +@COND_i386_multiboot_TRUE@am__append_5522 = $(nodist_rdmsr_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_5523 = \ @COND_i386_multiboot_TRUE@ $(nodist_rdmsr_module_SOURCES) \ @COND_i386_multiboot_TRUE@ rdmsr.marker -@COND_i386_multiboot_TRUE@am__append_5531 = rdmsr.mod -@COND_i386_multiboot_TRUE@am__append_5532 = rdmsr.marker -@COND_i386_ieee1275_TRUE@am__append_5533 = rdmsr.module -@COND_i386_ieee1275_TRUE@am__append_5534 = rdmsr.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_5535 = -@COND_i386_ieee1275_TRUE@am__append_5536 = $(nodist_rdmsr_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_5537 = \ +@COND_i386_multiboot_TRUE@am__append_5524 = rdmsr.mod +@COND_i386_multiboot_TRUE@am__append_5525 = rdmsr.marker +@COND_i386_ieee1275_TRUE@am__append_5526 = rdmsr.module +@COND_i386_ieee1275_TRUE@am__append_5527 = rdmsr.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_5528 = +@COND_i386_ieee1275_TRUE@am__append_5529 = $(nodist_rdmsr_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_5530 = \ @COND_i386_ieee1275_TRUE@ $(nodist_rdmsr_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ rdmsr.marker -@COND_i386_ieee1275_TRUE@am__append_5538 = rdmsr.mod -@COND_i386_ieee1275_TRUE@am__append_5539 = rdmsr.marker -@COND_x86_64_efi_TRUE@am__append_5540 = rdmsr.module -@COND_x86_64_efi_TRUE@am__append_5541 = rdmsr.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_5542 = -@COND_x86_64_efi_TRUE@am__append_5543 = $(nodist_rdmsr_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_5544 = \ +@COND_i386_ieee1275_TRUE@am__append_5531 = rdmsr.mod +@COND_i386_ieee1275_TRUE@am__append_5532 = rdmsr.marker +@COND_x86_64_efi_TRUE@am__append_5533 = rdmsr.module +@COND_x86_64_efi_TRUE@am__append_5534 = rdmsr.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_5535 = +@COND_x86_64_efi_TRUE@am__append_5536 = $(nodist_rdmsr_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_5537 = \ @COND_x86_64_efi_TRUE@ $(nodist_rdmsr_module_SOURCES) \ @COND_x86_64_efi_TRUE@ rdmsr.marker -@COND_x86_64_efi_TRUE@am__append_5545 = rdmsr.mod -@COND_x86_64_efi_TRUE@am__append_5546 = rdmsr.marker -@COND_i386_pc_TRUE@am__append_5547 = wrmsr.module -@COND_i386_pc_TRUE@am__append_5548 = wrmsr.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_5538 = rdmsr.mod +@COND_x86_64_efi_TRUE@am__append_5539 = rdmsr.marker +@COND_i386_pc_TRUE@am__append_5540 = wrmsr.module +@COND_i386_pc_TRUE@am__append_5541 = wrmsr.module$(EXEEXT) @COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_x86_64_efi_FALSE@wrmsr_module_DEPENDENCIES = -@COND_i386_pc_TRUE@am__append_5549 = -@COND_i386_pc_TRUE@am__append_5550 = $(nodist_wrmsr_module_SOURCES) -@COND_i386_pc_TRUE@am__append_5551 = $(nodist_wrmsr_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5542 = +@COND_i386_pc_TRUE@am__append_5543 = $(nodist_wrmsr_module_SOURCES) +@COND_i386_pc_TRUE@am__append_5544 = $(nodist_wrmsr_module_SOURCES) \ @COND_i386_pc_TRUE@ wrmsr.marker -@COND_i386_pc_TRUE@am__append_5552 = wrmsr.mod -@COND_i386_pc_TRUE@am__append_5553 = wrmsr.marker -@COND_i386_efi_TRUE@am__append_5554 = wrmsr.module -@COND_i386_efi_TRUE@am__append_5555 = wrmsr.module$(EXEEXT) -@COND_i386_efi_TRUE@am__append_5556 = -@COND_i386_efi_TRUE@am__append_5557 = $(nodist_wrmsr_module_SOURCES) -@COND_i386_efi_TRUE@am__append_5558 = $(nodist_wrmsr_module_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5545 = wrmsr.mod +@COND_i386_pc_TRUE@am__append_5546 = wrmsr.marker +@COND_i386_efi_TRUE@am__append_5547 = wrmsr.module +@COND_i386_efi_TRUE@am__append_5548 = wrmsr.module$(EXEEXT) +@COND_i386_efi_TRUE@am__append_5549 = +@COND_i386_efi_TRUE@am__append_5550 = $(nodist_wrmsr_module_SOURCES) +@COND_i386_efi_TRUE@am__append_5551 = $(nodist_wrmsr_module_SOURCES) \ @COND_i386_efi_TRUE@ wrmsr.marker -@COND_i386_efi_TRUE@am__append_5559 = wrmsr.mod -@COND_i386_efi_TRUE@am__append_5560 = wrmsr.marker -@COND_i386_qemu_TRUE@am__append_5561 = wrmsr.module -@COND_i386_qemu_TRUE@am__append_5562 = wrmsr.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__append_5563 = -@COND_i386_qemu_TRUE@am__append_5564 = $(nodist_wrmsr_module_SOURCES) -@COND_i386_qemu_TRUE@am__append_5565 = $(nodist_wrmsr_module_SOURCES) \ +@COND_i386_efi_TRUE@am__append_5552 = wrmsr.mod +@COND_i386_efi_TRUE@am__append_5553 = wrmsr.marker +@COND_i386_qemu_TRUE@am__append_5554 = wrmsr.module +@COND_i386_qemu_TRUE@am__append_5555 = wrmsr.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__append_5556 = +@COND_i386_qemu_TRUE@am__append_5557 = $(nodist_wrmsr_module_SOURCES) +@COND_i386_qemu_TRUE@am__append_5558 = $(nodist_wrmsr_module_SOURCES) \ @COND_i386_qemu_TRUE@ wrmsr.marker -@COND_i386_qemu_TRUE@am__append_5566 = wrmsr.mod -@COND_i386_qemu_TRUE@am__append_5567 = wrmsr.marker -@COND_i386_coreboot_TRUE@am__append_5568 = wrmsr.module -@COND_i386_coreboot_TRUE@am__append_5569 = wrmsr.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__append_5570 = -@COND_i386_coreboot_TRUE@am__append_5571 = $(nodist_wrmsr_module_SOURCES) -@COND_i386_coreboot_TRUE@am__append_5572 = \ +@COND_i386_qemu_TRUE@am__append_5559 = wrmsr.mod +@COND_i386_qemu_TRUE@am__append_5560 = wrmsr.marker +@COND_i386_coreboot_TRUE@am__append_5561 = wrmsr.module +@COND_i386_coreboot_TRUE@am__append_5562 = wrmsr.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__append_5563 = +@COND_i386_coreboot_TRUE@am__append_5564 = $(nodist_wrmsr_module_SOURCES) +@COND_i386_coreboot_TRUE@am__append_5565 = \ @COND_i386_coreboot_TRUE@ $(nodist_wrmsr_module_SOURCES) \ @COND_i386_coreboot_TRUE@ wrmsr.marker -@COND_i386_coreboot_TRUE@am__append_5573 = wrmsr.mod -@COND_i386_coreboot_TRUE@am__append_5574 = wrmsr.marker -@COND_i386_multiboot_TRUE@am__append_5575 = wrmsr.module -@COND_i386_multiboot_TRUE@am__append_5576 = wrmsr.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__append_5577 = -@COND_i386_multiboot_TRUE@am__append_5578 = $(nodist_wrmsr_module_SOURCES) -@COND_i386_multiboot_TRUE@am__append_5579 = \ +@COND_i386_coreboot_TRUE@am__append_5566 = wrmsr.mod +@COND_i386_coreboot_TRUE@am__append_5567 = wrmsr.marker +@COND_i386_multiboot_TRUE@am__append_5568 = wrmsr.module +@COND_i386_multiboot_TRUE@am__append_5569 = wrmsr.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__append_5570 = +@COND_i386_multiboot_TRUE@am__append_5571 = $(nodist_wrmsr_module_SOURCES) +@COND_i386_multiboot_TRUE@am__append_5572 = \ @COND_i386_multiboot_TRUE@ $(nodist_wrmsr_module_SOURCES) \ @COND_i386_multiboot_TRUE@ wrmsr.marker -@COND_i386_multiboot_TRUE@am__append_5580 = wrmsr.mod -@COND_i386_multiboot_TRUE@am__append_5581 = wrmsr.marker -@COND_i386_ieee1275_TRUE@am__append_5582 = wrmsr.module -@COND_i386_ieee1275_TRUE@am__append_5583 = wrmsr.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__append_5584 = -@COND_i386_ieee1275_TRUE@am__append_5585 = $(nodist_wrmsr_module_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_5586 = \ +@COND_i386_multiboot_TRUE@am__append_5573 = wrmsr.mod +@COND_i386_multiboot_TRUE@am__append_5574 = wrmsr.marker +@COND_i386_ieee1275_TRUE@am__append_5575 = wrmsr.module +@COND_i386_ieee1275_TRUE@am__append_5576 = wrmsr.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__append_5577 = +@COND_i386_ieee1275_TRUE@am__append_5578 = $(nodist_wrmsr_module_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_5579 = \ @COND_i386_ieee1275_TRUE@ $(nodist_wrmsr_module_SOURCES) \ @COND_i386_ieee1275_TRUE@ wrmsr.marker -@COND_i386_ieee1275_TRUE@am__append_5587 = wrmsr.mod -@COND_i386_ieee1275_TRUE@am__append_5588 = wrmsr.marker -@COND_x86_64_efi_TRUE@am__append_5589 = wrmsr.module -@COND_x86_64_efi_TRUE@am__append_5590 = wrmsr.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__append_5591 = -@COND_x86_64_efi_TRUE@am__append_5592 = $(nodist_wrmsr_module_SOURCES) -@COND_x86_64_efi_TRUE@am__append_5593 = \ +@COND_i386_ieee1275_TRUE@am__append_5580 = wrmsr.mod +@COND_i386_ieee1275_TRUE@am__append_5581 = wrmsr.marker +@COND_x86_64_efi_TRUE@am__append_5582 = wrmsr.module +@COND_x86_64_efi_TRUE@am__append_5583 = wrmsr.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__append_5584 = +@COND_x86_64_efi_TRUE@am__append_5585 = $(nodist_wrmsr_module_SOURCES) +@COND_x86_64_efi_TRUE@am__append_5586 = \ @COND_x86_64_efi_TRUE@ $(nodist_wrmsr_module_SOURCES) \ @COND_x86_64_efi_TRUE@ wrmsr.marker -@COND_x86_64_efi_TRUE@am__append_5594 = wrmsr.mod -@COND_x86_64_efi_TRUE@am__append_5595 = wrmsr.marker -@COND_emu_TRUE@am__append_5596 = kernel.exec +@COND_x86_64_efi_TRUE@am__append_5587 = wrmsr.mod +@COND_x86_64_efi_TRUE@am__append_5588 = wrmsr.marker +@COND_emu_TRUE@am__append_5589 = kernel.exec @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_FALSE@kernel_exec_DEPENDENCIES = -@COND_emu_TRUE@am__append_5597 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_emu_TRUE@am__append_5598 = $(nodist_kernel_exec_SOURCES) -@COND_emu_TRUE@am__append_5599 = $(nodist_kernel_exec_SOURCES) \ +@COND_emu_TRUE@am__append_5590 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_emu_TRUE@am__append_5591 = $(nodist_kernel_exec_SOURCES) +@COND_emu_TRUE@am__append_5592 = $(nodist_kernel_exec_SOURCES) \ @COND_emu_TRUE@ kernel.img -@COND_emu_TRUE@am__append_5600 = kernel.img -@COND_i386_pc_TRUE@am__append_5601 = kernel.exec -@COND_i386_pc_TRUE@am__append_5602 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_i386_pc_TRUE@am__append_5603 = $(nodist_kernel_exec_SOURCES) -@COND_i386_pc_TRUE@am__append_5604 = $(nodist_kernel_exec_SOURCES) \ +@COND_emu_TRUE@am__append_5593 = kernel.img +@COND_i386_pc_TRUE@am__append_5594 = kernel.exec +@COND_i386_pc_TRUE@am__append_5595 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_i386_pc_TRUE@am__append_5596 = $(nodist_kernel_exec_SOURCES) +@COND_i386_pc_TRUE@am__append_5597 = $(nodist_kernel_exec_SOURCES) \ @COND_i386_pc_TRUE@ kernel.img -@COND_i386_pc_TRUE@am__append_5605 = kernel.img -@COND_i386_efi_TRUE@am__append_5606 = kernel.exec -@COND_i386_efi_TRUE@am__append_5607 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_i386_efi_TRUE@am__append_5608 = $(nodist_kernel_exec_SOURCES) -@COND_i386_efi_TRUE@am__append_5609 = $(nodist_kernel_exec_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5598 = kernel.img +@COND_i386_efi_TRUE@am__append_5599 = kernel.exec +@COND_i386_efi_TRUE@am__append_5600 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_i386_efi_TRUE@am__append_5601 = $(nodist_kernel_exec_SOURCES) +@COND_i386_efi_TRUE@am__append_5602 = $(nodist_kernel_exec_SOURCES) \ @COND_i386_efi_TRUE@ kernel.img -@COND_i386_efi_TRUE@am__append_5610 = kernel.img -@COND_i386_qemu_TRUE@am__append_5611 = kernel.exec -@COND_i386_qemu_TRUE@am__append_5612 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_i386_qemu_TRUE@am__append_5613 = $(nodist_kernel_exec_SOURCES) -@COND_i386_qemu_TRUE@am__append_5614 = $(nodist_kernel_exec_SOURCES) \ +@COND_i386_efi_TRUE@am__append_5603 = kernel.img +@COND_i386_qemu_TRUE@am__append_5604 = kernel.exec +@COND_i386_qemu_TRUE@am__append_5605 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_i386_qemu_TRUE@am__append_5606 = $(nodist_kernel_exec_SOURCES) +@COND_i386_qemu_TRUE@am__append_5607 = $(nodist_kernel_exec_SOURCES) \ @COND_i386_qemu_TRUE@ kernel.img -@COND_i386_qemu_TRUE@am__append_5615 = kernel.img -@COND_i386_coreboot_TRUE@am__append_5616 = kernel.exec -@COND_i386_coreboot_TRUE@am__append_5617 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_i386_coreboot_TRUE@am__append_5618 = $(nodist_kernel_exec_SOURCES) -@COND_i386_coreboot_TRUE@am__append_5619 = \ +@COND_i386_qemu_TRUE@am__append_5608 = kernel.img +@COND_i386_coreboot_TRUE@am__append_5609 = kernel.exec +@COND_i386_coreboot_TRUE@am__append_5610 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_i386_coreboot_TRUE@am__append_5611 = $(nodist_kernel_exec_SOURCES) +@COND_i386_coreboot_TRUE@am__append_5612 = \ @COND_i386_coreboot_TRUE@ $(nodist_kernel_exec_SOURCES) \ @COND_i386_coreboot_TRUE@ kernel.img -@COND_i386_coreboot_TRUE@am__append_5620 = kernel.img -@COND_i386_multiboot_TRUE@am__append_5621 = kernel.exec -@COND_i386_multiboot_TRUE@am__append_5622 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_i386_multiboot_TRUE@am__append_5623 = $(nodist_kernel_exec_SOURCES) -@COND_i386_multiboot_TRUE@am__append_5624 = \ +@COND_i386_coreboot_TRUE@am__append_5613 = kernel.img +@COND_i386_multiboot_TRUE@am__append_5614 = kernel.exec +@COND_i386_multiboot_TRUE@am__append_5615 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_i386_multiboot_TRUE@am__append_5616 = $(nodist_kernel_exec_SOURCES) +@COND_i386_multiboot_TRUE@am__append_5617 = \ @COND_i386_multiboot_TRUE@ $(nodist_kernel_exec_SOURCES) \ @COND_i386_multiboot_TRUE@ kernel.img -@COND_i386_multiboot_TRUE@am__append_5625 = kernel.img -@COND_i386_ieee1275_TRUE@am__append_5626 = kernel.exec -@COND_i386_ieee1275_TRUE@am__append_5627 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_i386_ieee1275_TRUE@am__append_5628 = $(nodist_kernel_exec_SOURCES) -@COND_i386_ieee1275_TRUE@am__append_5629 = \ +@COND_i386_multiboot_TRUE@am__append_5618 = kernel.img +@COND_i386_ieee1275_TRUE@am__append_5619 = kernel.exec +@COND_i386_ieee1275_TRUE@am__append_5620 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_i386_ieee1275_TRUE@am__append_5621 = $(nodist_kernel_exec_SOURCES) +@COND_i386_ieee1275_TRUE@am__append_5622 = \ @COND_i386_ieee1275_TRUE@ $(nodist_kernel_exec_SOURCES) \ @COND_i386_ieee1275_TRUE@ kernel.img -@COND_i386_ieee1275_TRUE@am__append_5630 = kernel.img -@COND_x86_64_efi_TRUE@am__append_5631 = kernel.exec -@COND_x86_64_efi_TRUE@am__append_5632 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_x86_64_efi_TRUE@am__append_5633 = $(nodist_kernel_exec_SOURCES) -@COND_x86_64_efi_TRUE@am__append_5634 = $(nodist_kernel_exec_SOURCES) \ +@COND_i386_ieee1275_TRUE@am__append_5623 = kernel.img +@COND_x86_64_efi_TRUE@am__append_5624 = kernel.exec +@COND_x86_64_efi_TRUE@am__append_5625 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_x86_64_efi_TRUE@am__append_5626 = $(nodist_kernel_exec_SOURCES) +@COND_x86_64_efi_TRUE@am__append_5627 = $(nodist_kernel_exec_SOURCES) \ @COND_x86_64_efi_TRUE@ kernel.img -@COND_x86_64_efi_TRUE@am__append_5635 = kernel.img -@COND_i386_xen_TRUE@am__append_5636 = kernel.exec -@COND_i386_xen_TRUE@am__append_5637 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_i386_xen_TRUE@am__append_5638 = $(nodist_kernel_exec_SOURCES) -@COND_i386_xen_TRUE@am__append_5639 = $(nodist_kernel_exec_SOURCES) \ +@COND_x86_64_efi_TRUE@am__append_5628 = kernel.img +@COND_i386_xen_TRUE@am__append_5629 = kernel.exec +@COND_i386_xen_TRUE@am__append_5630 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_i386_xen_TRUE@am__append_5631 = $(nodist_kernel_exec_SOURCES) +@COND_i386_xen_TRUE@am__append_5632 = $(nodist_kernel_exec_SOURCES) \ @COND_i386_xen_TRUE@ kernel.img -@COND_i386_xen_TRUE@am__append_5640 = kernel.img -@COND_x86_64_xen_TRUE@am__append_5641 = kernel.exec -@COND_x86_64_xen_TRUE@am__append_5642 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_x86_64_xen_TRUE@am__append_5643 = $(nodist_kernel_exec_SOURCES) -@COND_x86_64_xen_TRUE@am__append_5644 = $(nodist_kernel_exec_SOURCES) \ +@COND_i386_xen_TRUE@am__append_5633 = kernel.img +@COND_x86_64_xen_TRUE@am__append_5634 = kernel.exec +@COND_x86_64_xen_TRUE@am__append_5635 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_x86_64_xen_TRUE@am__append_5636 = $(nodist_kernel_exec_SOURCES) +@COND_x86_64_xen_TRUE@am__append_5637 = $(nodist_kernel_exec_SOURCES) \ @COND_x86_64_xen_TRUE@ kernel.img -@COND_x86_64_xen_TRUE@am__append_5645 = kernel.img -@COND_i386_xen_pvh_TRUE@am__append_5646 = kernel.exec -@COND_i386_xen_pvh_TRUE@am__append_5647 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_i386_xen_pvh_TRUE@am__append_5648 = $(nodist_kernel_exec_SOURCES) -@COND_i386_xen_pvh_TRUE@am__append_5649 = \ +@COND_x86_64_xen_TRUE@am__append_5638 = kernel.img +@COND_i386_xen_pvh_TRUE@am__append_5639 = kernel.exec +@COND_i386_xen_pvh_TRUE@am__append_5640 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_i386_xen_pvh_TRUE@am__append_5641 = $(nodist_kernel_exec_SOURCES) +@COND_i386_xen_pvh_TRUE@am__append_5642 = \ @COND_i386_xen_pvh_TRUE@ $(nodist_kernel_exec_SOURCES) \ @COND_i386_xen_pvh_TRUE@ kernel.img -@COND_i386_xen_pvh_TRUE@am__append_5650 = kernel.img -@COND_mips_loongson_TRUE@am__append_5651 = kernel.exec -@COND_mips_loongson_TRUE@am__append_5652 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_mips_loongson_TRUE@am__append_5653 = $(nodist_kernel_exec_SOURCES) -@COND_mips_loongson_TRUE@am__append_5654 = \ +@COND_i386_xen_pvh_TRUE@am__append_5643 = kernel.img +@COND_mips_loongson_TRUE@am__append_5644 = kernel.exec +@COND_mips_loongson_TRUE@am__append_5645 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_mips_loongson_TRUE@am__append_5646 = $(nodist_kernel_exec_SOURCES) +@COND_mips_loongson_TRUE@am__append_5647 = \ @COND_mips_loongson_TRUE@ $(nodist_kernel_exec_SOURCES) \ @COND_mips_loongson_TRUE@ kernel.img -@COND_mips_loongson_TRUE@am__append_5655 = kernel.img -@COND_sparc64_ieee1275_TRUE@am__append_5656 = kernel.exec -@COND_sparc64_ieee1275_TRUE@am__append_5657 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_sparc64_ieee1275_TRUE@am__append_5658 = $(nodist_kernel_exec_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_5659 = \ +@COND_mips_loongson_TRUE@am__append_5648 = kernel.img +@COND_sparc64_ieee1275_TRUE@am__append_5649 = kernel.exec +@COND_sparc64_ieee1275_TRUE@am__append_5650 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_sparc64_ieee1275_TRUE@am__append_5651 = $(nodist_kernel_exec_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_5652 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_kernel_exec_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ kernel.img -@COND_sparc64_ieee1275_TRUE@am__append_5660 = kernel.img -@COND_powerpc_ieee1275_TRUE@am__append_5661 = kernel.exec -@COND_powerpc_ieee1275_TRUE@am__append_5662 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_powerpc_ieee1275_TRUE@am__append_5663 = $(nodist_kernel_exec_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_5664 = \ +@COND_sparc64_ieee1275_TRUE@am__append_5653 = kernel.img +@COND_powerpc_ieee1275_TRUE@am__append_5654 = kernel.exec +@COND_powerpc_ieee1275_TRUE@am__append_5655 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_powerpc_ieee1275_TRUE@am__append_5656 = $(nodist_kernel_exec_SOURCES) +@COND_powerpc_ieee1275_TRUE@am__append_5657 = \ @COND_powerpc_ieee1275_TRUE@ $(nodist_kernel_exec_SOURCES) \ @COND_powerpc_ieee1275_TRUE@ kernel.img -@COND_powerpc_ieee1275_TRUE@am__append_5665 = kernel.img -@COND_mips_arc_TRUE@am__append_5666 = kernel.exec -@COND_mips_arc_TRUE@am__append_5667 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_mips_arc_TRUE@am__append_5668 = $(nodist_kernel_exec_SOURCES) -@COND_mips_arc_TRUE@am__append_5669 = $(nodist_kernel_exec_SOURCES) \ +@COND_powerpc_ieee1275_TRUE@am__append_5658 = kernel.img +@COND_mips_arc_TRUE@am__append_5659 = kernel.exec +@COND_mips_arc_TRUE@am__append_5660 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_mips_arc_TRUE@am__append_5661 = $(nodist_kernel_exec_SOURCES) +@COND_mips_arc_TRUE@am__append_5662 = $(nodist_kernel_exec_SOURCES) \ @COND_mips_arc_TRUE@ kernel.img -@COND_mips_arc_TRUE@am__append_5670 = kernel.img -@COND_ia64_efi_TRUE@am__append_5671 = kernel.exec -@COND_ia64_efi_TRUE@am__append_5672 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_ia64_efi_TRUE@am__append_5673 = $(nodist_kernel_exec_SOURCES) -@COND_ia64_efi_TRUE@am__append_5674 = $(nodist_kernel_exec_SOURCES) \ +@COND_mips_arc_TRUE@am__append_5663 = kernel.img +@COND_ia64_efi_TRUE@am__append_5664 = kernel.exec +@COND_ia64_efi_TRUE@am__append_5665 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_ia64_efi_TRUE@am__append_5666 = $(nodist_kernel_exec_SOURCES) +@COND_ia64_efi_TRUE@am__append_5667 = $(nodist_kernel_exec_SOURCES) \ @COND_ia64_efi_TRUE@ kernel.img -@COND_ia64_efi_TRUE@am__append_5675 = kernel.img -@COND_mips_qemu_mips_TRUE@am__append_5676 = kernel.exec -@COND_mips_qemu_mips_TRUE@am__append_5677 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_mips_qemu_mips_TRUE@am__append_5678 = $(nodist_kernel_exec_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_5679 = \ +@COND_ia64_efi_TRUE@am__append_5668 = kernel.img +@COND_mips_qemu_mips_TRUE@am__append_5669 = kernel.exec +@COND_mips_qemu_mips_TRUE@am__append_5670 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_mips_qemu_mips_TRUE@am__append_5671 = $(nodist_kernel_exec_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_5672 = \ @COND_mips_qemu_mips_TRUE@ $(nodist_kernel_exec_SOURCES) \ @COND_mips_qemu_mips_TRUE@ kernel.img -@COND_mips_qemu_mips_TRUE@am__append_5680 = kernel.img -@COND_arm_uboot_TRUE@am__append_5681 = kernel.exec -@COND_arm_uboot_TRUE@am__append_5682 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_arm_uboot_TRUE@am__append_5683 = $(nodist_kernel_exec_SOURCES) -@COND_arm_uboot_TRUE@am__append_5684 = $(nodist_kernel_exec_SOURCES) \ +@COND_mips_qemu_mips_TRUE@am__append_5673 = kernel.img +@COND_arm_uboot_TRUE@am__append_5674 = kernel.exec +@COND_arm_uboot_TRUE@am__append_5675 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_arm_uboot_TRUE@am__append_5676 = $(nodist_kernel_exec_SOURCES) +@COND_arm_uboot_TRUE@am__append_5677 = $(nodist_kernel_exec_SOURCES) \ @COND_arm_uboot_TRUE@ kernel.img -@COND_arm_uboot_TRUE@am__append_5685 = kernel.img -@COND_arm_efi_TRUE@am__append_5686 = kernel.exec -@COND_arm_efi_TRUE@am__append_5687 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_arm_efi_TRUE@am__append_5688 = $(nodist_kernel_exec_SOURCES) -@COND_arm_efi_TRUE@am__append_5689 = $(nodist_kernel_exec_SOURCES) \ +@COND_arm_uboot_TRUE@am__append_5678 = kernel.img +@COND_arm_efi_TRUE@am__append_5679 = kernel.exec +@COND_arm_efi_TRUE@am__append_5680 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_arm_efi_TRUE@am__append_5681 = $(nodist_kernel_exec_SOURCES) +@COND_arm_efi_TRUE@am__append_5682 = $(nodist_kernel_exec_SOURCES) \ @COND_arm_efi_TRUE@ kernel.img -@COND_arm_efi_TRUE@am__append_5690 = kernel.img -@COND_arm64_efi_TRUE@am__append_5691 = kernel.exec -@COND_arm64_efi_TRUE@am__append_5692 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_arm64_efi_TRUE@am__append_5693 = $(nodist_kernel_exec_SOURCES) -@COND_arm64_efi_TRUE@am__append_5694 = $(nodist_kernel_exec_SOURCES) \ +@COND_arm_efi_TRUE@am__append_5683 = kernel.img +@COND_arm64_efi_TRUE@am__append_5684 = kernel.exec +@COND_arm64_efi_TRUE@am__append_5685 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_arm64_efi_TRUE@am__append_5686 = $(nodist_kernel_exec_SOURCES) +@COND_arm64_efi_TRUE@am__append_5687 = $(nodist_kernel_exec_SOURCES) \ @COND_arm64_efi_TRUE@ kernel.img -@COND_arm64_efi_TRUE@am__append_5695 = kernel.img -@COND_arm_coreboot_TRUE@am__append_5696 = kernel.exec -@COND_arm_coreboot_TRUE@am__append_5697 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_arm_coreboot_TRUE@am__append_5698 = $(nodist_kernel_exec_SOURCES) -@COND_arm_coreboot_TRUE@am__append_5699 = \ +@COND_arm64_efi_TRUE@am__append_5688 = kernel.img +@COND_arm_coreboot_TRUE@am__append_5689 = kernel.exec +@COND_arm_coreboot_TRUE@am__append_5690 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_arm_coreboot_TRUE@am__append_5691 = $(nodist_kernel_exec_SOURCES) +@COND_arm_coreboot_TRUE@am__append_5692 = \ @COND_arm_coreboot_TRUE@ $(nodist_kernel_exec_SOURCES) \ @COND_arm_coreboot_TRUE@ kernel.img -@COND_arm_coreboot_TRUE@am__append_5700 = kernel.img -@COND_riscv32_efi_TRUE@am__append_5701 = kernel.exec -@COND_riscv32_efi_TRUE@am__append_5702 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_riscv32_efi_TRUE@am__append_5703 = $(nodist_kernel_exec_SOURCES) -@COND_riscv32_efi_TRUE@am__append_5704 = \ +@COND_arm_coreboot_TRUE@am__append_5693 = kernel.img +@COND_riscv32_efi_TRUE@am__append_5694 = kernel.exec +@COND_riscv32_efi_TRUE@am__append_5695 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_riscv32_efi_TRUE@am__append_5696 = $(nodist_kernel_exec_SOURCES) +@COND_riscv32_efi_TRUE@am__append_5697 = \ @COND_riscv32_efi_TRUE@ $(nodist_kernel_exec_SOURCES) \ @COND_riscv32_efi_TRUE@ kernel.img -@COND_riscv32_efi_TRUE@am__append_5705 = kernel.img -@COND_riscv64_efi_TRUE@am__append_5706 = kernel.exec -@COND_riscv64_efi_TRUE@am__append_5707 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S -@COND_riscv64_efi_TRUE@am__append_5708 = $(nodist_kernel_exec_SOURCES) -@COND_riscv64_efi_TRUE@am__append_5709 = \ +@COND_riscv32_efi_TRUE@am__append_5698 = kernel.img +@COND_riscv64_efi_TRUE@am__append_5699 = kernel.exec +@COND_riscv64_efi_TRUE@am__append_5700 = video/sm712_init.c video/sis315_init.c kern/arm/cache.S osdep/unix/exec.c osdep/unix/emuconsole.c osdep/windows/emuconsole.c osdep/unix/dl.c osdep/windows/dl.c osdep/linux/emunet.c osdep/basic/emunet.c osdep/unix/cputime.c osdep/windows/cputime.c kern/i386/int.S kern/i386/realmode.S boot/i386/pc/lzma_decode.S kern/mips/cache_flush.S +@COND_riscv64_efi_TRUE@am__append_5701 = $(nodist_kernel_exec_SOURCES) +@COND_riscv64_efi_TRUE@am__append_5702 = \ @COND_riscv64_efi_TRUE@ $(nodist_kernel_exec_SOURCES) \ @COND_riscv64_efi_TRUE@ kernel.img -@COND_riscv64_efi_TRUE@am__append_5710 = kernel.img -@COND_i386_pc_TRUE@am__append_5711 = boot.image -@COND_i386_pc_TRUE@am__append_5712 = -@COND_i386_pc_TRUE@am__append_5713 = $(nodist_boot_image_SOURCES) -@COND_i386_pc_TRUE@am__append_5714 = $(nodist_boot_image_SOURCES) \ +@COND_riscv64_efi_TRUE@am__append_5703 = kernel.img +@COND_i386_pc_TRUE@am__append_5704 = boot.image +@COND_i386_pc_TRUE@am__append_5705 = +@COND_i386_pc_TRUE@am__append_5706 = $(nodist_boot_image_SOURCES) +@COND_i386_pc_TRUE@am__append_5707 = $(nodist_boot_image_SOURCES) \ @COND_i386_pc_TRUE@ boot.img -@COND_i386_pc_TRUE@am__append_5715 = boot.img -@COND_i386_qemu_TRUE@am__append_5716 = boot.image -@COND_i386_qemu_TRUE@am__append_5717 = -@COND_i386_qemu_TRUE@am__append_5718 = $(nodist_boot_image_SOURCES) -@COND_i386_qemu_TRUE@am__append_5719 = $(nodist_boot_image_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5708 = boot.img +@COND_i386_qemu_TRUE@am__append_5709 = boot.image +@COND_i386_qemu_TRUE@am__append_5710 = +@COND_i386_qemu_TRUE@am__append_5711 = $(nodist_boot_image_SOURCES) +@COND_i386_qemu_TRUE@am__append_5712 = $(nodist_boot_image_SOURCES) \ @COND_i386_qemu_TRUE@ boot.img -@COND_i386_qemu_TRUE@am__append_5720 = boot.img -@COND_sparc64_ieee1275_TRUE@am__append_5721 = boot.image -@COND_sparc64_ieee1275_TRUE@am__append_5722 = -@COND_sparc64_ieee1275_TRUE@am__append_5723 = $(nodist_boot_image_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_5724 = \ +@COND_i386_qemu_TRUE@am__append_5713 = boot.img +@COND_sparc64_ieee1275_TRUE@am__append_5714 = boot.image +@COND_sparc64_ieee1275_TRUE@am__append_5715 = +@COND_sparc64_ieee1275_TRUE@am__append_5716 = $(nodist_boot_image_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_5717 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_boot_image_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ boot.img -@COND_sparc64_ieee1275_TRUE@am__append_5725 = boot.img -@COND_i386_pc_TRUE@am__append_5726 = boot_hybrid.image cdboot.image -@COND_i386_pc_TRUE@am__append_5727 = -@COND_i386_pc_TRUE@am__append_5728 = \ +@COND_sparc64_ieee1275_TRUE@am__append_5718 = boot.img +@COND_i386_pc_TRUE@am__append_5719 = boot_hybrid.image cdboot.image +@COND_i386_pc_TRUE@am__append_5720 = +@COND_i386_pc_TRUE@am__append_5721 = \ @COND_i386_pc_TRUE@ $(nodist_boot_hybrid_image_SOURCES) \ @COND_i386_pc_TRUE@ $(nodist_cdboot_image_SOURCES) -@COND_i386_pc_TRUE@am__append_5729 = \ +@COND_i386_pc_TRUE@am__append_5722 = \ @COND_i386_pc_TRUE@ $(nodist_boot_hybrid_image_SOURCES) \ @COND_i386_pc_TRUE@ boot_hybrid.img \ @COND_i386_pc_TRUE@ $(nodist_cdboot_image_SOURCES) cdboot.img -@COND_i386_pc_TRUE@am__append_5730 = boot_hybrid.img cdboot.img -@COND_sparc64_ieee1275_TRUE@am__append_5731 = cdboot.image -@COND_sparc64_ieee1275_TRUE@am__append_5732 = -@COND_sparc64_ieee1275_TRUE@am__append_5733 = $(nodist_cdboot_image_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_5734 = \ +@COND_i386_pc_TRUE@am__append_5723 = boot_hybrid.img cdboot.img +@COND_sparc64_ieee1275_TRUE@am__append_5724 = cdboot.image +@COND_sparc64_ieee1275_TRUE@am__append_5725 = +@COND_sparc64_ieee1275_TRUE@am__append_5726 = $(nodist_cdboot_image_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_5727 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_cdboot_image_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ cdboot.img -@COND_sparc64_ieee1275_TRUE@am__append_5735 = cdboot.img -@COND_i386_pc_TRUE@am__append_5736 = pxeboot.image diskboot.image -@COND_i386_pc_TRUE@am__append_5737 = -@COND_i386_pc_TRUE@am__append_5738 = $(nodist_pxeboot_image_SOURCES) \ +@COND_sparc64_ieee1275_TRUE@am__append_5728 = cdboot.img +@COND_i386_pc_TRUE@am__append_5729 = pxeboot.image diskboot.image +@COND_i386_pc_TRUE@am__append_5730 = +@COND_i386_pc_TRUE@am__append_5731 = $(nodist_pxeboot_image_SOURCES) \ @COND_i386_pc_TRUE@ $(nodist_diskboot_image_SOURCES) -@COND_i386_pc_TRUE@am__append_5739 = $(nodist_pxeboot_image_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5732 = $(nodist_pxeboot_image_SOURCES) \ @COND_i386_pc_TRUE@ pxeboot.img \ @COND_i386_pc_TRUE@ $(nodist_diskboot_image_SOURCES) \ @COND_i386_pc_TRUE@ diskboot.img -@COND_i386_pc_TRUE@am__append_5740 = pxeboot.img diskboot.img -@COND_sparc64_ieee1275_TRUE@am__append_5741 = diskboot.image -@COND_sparc64_ieee1275_TRUE@am__append_5742 = -@COND_sparc64_ieee1275_TRUE@am__append_5743 = $(nodist_diskboot_image_SOURCES) -@COND_sparc64_ieee1275_TRUE@am__append_5744 = \ +@COND_i386_pc_TRUE@am__append_5733 = pxeboot.img diskboot.img +@COND_sparc64_ieee1275_TRUE@am__append_5734 = diskboot.image +@COND_sparc64_ieee1275_TRUE@am__append_5735 = +@COND_sparc64_ieee1275_TRUE@am__append_5736 = $(nodist_diskboot_image_SOURCES) +@COND_sparc64_ieee1275_TRUE@am__append_5737 = \ @COND_sparc64_ieee1275_TRUE@ $(nodist_diskboot_image_SOURCES) \ @COND_sparc64_ieee1275_TRUE@ diskboot.img -@COND_sparc64_ieee1275_TRUE@am__append_5745 = diskboot.img -@COND_i386_pc_TRUE@am__append_5746 = lnxboot.image -@COND_i386_pc_TRUE@am__append_5747 = -@COND_i386_pc_TRUE@am__append_5748 = $(nodist_lnxboot_image_SOURCES) -@COND_i386_pc_TRUE@am__append_5749 = $(nodist_lnxboot_image_SOURCES) \ +@COND_sparc64_ieee1275_TRUE@am__append_5738 = diskboot.img +@COND_i386_pc_TRUE@am__append_5739 = lnxboot.image +@COND_i386_pc_TRUE@am__append_5740 = +@COND_i386_pc_TRUE@am__append_5741 = $(nodist_lnxboot_image_SOURCES) +@COND_i386_pc_TRUE@am__append_5742 = $(nodist_lnxboot_image_SOURCES) \ @COND_i386_pc_TRUE@ lnxboot.img -@COND_i386_pc_TRUE@am__append_5750 = lnxboot.img -@COND_mips_loongson_TRUE@am__append_5751 = xz_decompress.image -@COND_mips_loongson_TRUE@am__append_5752 = -@COND_mips_loongson_TRUE@am__append_5753 = $(nodist_xz_decompress_image_SOURCES) -@COND_mips_loongson_TRUE@am__append_5754 = $(nodist_xz_decompress_image_SOURCES) \ +@COND_i386_pc_TRUE@am__append_5743 = lnxboot.img +@COND_mips_loongson_TRUE@am__append_5744 = xz_decompress.image +@COND_mips_loongson_TRUE@am__append_5745 = +@COND_mips_loongson_TRUE@am__append_5746 = $(nodist_xz_decompress_image_SOURCES) +@COND_mips_loongson_TRUE@am__append_5747 = $(nodist_xz_decompress_image_SOURCES) \ @COND_mips_loongson_TRUE@ xz_decompress.img -@COND_mips_loongson_TRUE@am__append_5755 = xz_decompress.img -@COND_mips_arc_TRUE@am__append_5756 = xz_decompress.image -@COND_mips_arc_TRUE@am__append_5757 = -@COND_mips_arc_TRUE@am__append_5758 = $(nodist_xz_decompress_image_SOURCES) -@COND_mips_arc_TRUE@am__append_5759 = \ +@COND_mips_loongson_TRUE@am__append_5748 = xz_decompress.img +@COND_mips_arc_TRUE@am__append_5749 = xz_decompress.image +@COND_mips_arc_TRUE@am__append_5750 = +@COND_mips_arc_TRUE@am__append_5751 = $(nodist_xz_decompress_image_SOURCES) +@COND_mips_arc_TRUE@am__append_5752 = \ @COND_mips_arc_TRUE@ $(nodist_xz_decompress_image_SOURCES) \ @COND_mips_arc_TRUE@ xz_decompress.img -@COND_mips_arc_TRUE@am__append_5760 = xz_decompress.img -@COND_mips_qemu_mips_TRUE@am__append_5761 = xz_decompress.image -@COND_mips_qemu_mips_TRUE@am__append_5762 = -@COND_mips_qemu_mips_TRUE@am__append_5763 = $(nodist_xz_decompress_image_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_5764 = $(nodist_xz_decompress_image_SOURCES) \ +@COND_mips_arc_TRUE@am__append_5753 = xz_decompress.img +@COND_mips_qemu_mips_TRUE@am__append_5754 = xz_decompress.image +@COND_mips_qemu_mips_TRUE@am__append_5755 = +@COND_mips_qemu_mips_TRUE@am__append_5756 = $(nodist_xz_decompress_image_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_5757 = $(nodist_xz_decompress_image_SOURCES) \ @COND_mips_qemu_mips_TRUE@ xz_decompress.img -@COND_mips_qemu_mips_TRUE@am__append_5765 = xz_decompress.img -@COND_mips_loongson_TRUE@am__append_5766 = none_decompress.image -@COND_mips_loongson_TRUE@am__append_5767 = -@COND_mips_loongson_TRUE@am__append_5768 = $(nodist_none_decompress_image_SOURCES) -@COND_mips_loongson_TRUE@am__append_5769 = $(nodist_none_decompress_image_SOURCES) \ +@COND_mips_qemu_mips_TRUE@am__append_5758 = xz_decompress.img +@COND_mips_loongson_TRUE@am__append_5759 = none_decompress.image +@COND_mips_loongson_TRUE@am__append_5760 = +@COND_mips_loongson_TRUE@am__append_5761 = $(nodist_none_decompress_image_SOURCES) +@COND_mips_loongson_TRUE@am__append_5762 = $(nodist_none_decompress_image_SOURCES) \ @COND_mips_loongson_TRUE@ none_decompress.img -@COND_mips_loongson_TRUE@am__append_5770 = none_decompress.img -@COND_mips_arc_TRUE@am__append_5771 = none_decompress.image -@COND_mips_arc_TRUE@am__append_5772 = -@COND_mips_arc_TRUE@am__append_5773 = $(nodist_none_decompress_image_SOURCES) -@COND_mips_arc_TRUE@am__append_5774 = \ +@COND_mips_loongson_TRUE@am__append_5763 = none_decompress.img +@COND_mips_arc_TRUE@am__append_5764 = none_decompress.image +@COND_mips_arc_TRUE@am__append_5765 = +@COND_mips_arc_TRUE@am__append_5766 = $(nodist_none_decompress_image_SOURCES) +@COND_mips_arc_TRUE@am__append_5767 = \ @COND_mips_arc_TRUE@ $(nodist_none_decompress_image_SOURCES) \ @COND_mips_arc_TRUE@ none_decompress.img -@COND_mips_arc_TRUE@am__append_5775 = none_decompress.img -@COND_mips_qemu_mips_TRUE@am__append_5776 = none_decompress.image -@COND_mips_qemu_mips_TRUE@am__append_5777 = -@COND_mips_qemu_mips_TRUE@am__append_5778 = $(nodist_none_decompress_image_SOURCES) -@COND_mips_qemu_mips_TRUE@am__append_5779 = $(nodist_none_decompress_image_SOURCES) \ +@COND_mips_arc_TRUE@am__append_5768 = none_decompress.img +@COND_mips_qemu_mips_TRUE@am__append_5769 = none_decompress.image +@COND_mips_qemu_mips_TRUE@am__append_5770 = +@COND_mips_qemu_mips_TRUE@am__append_5771 = $(nodist_none_decompress_image_SOURCES) +@COND_mips_qemu_mips_TRUE@am__append_5772 = $(nodist_none_decompress_image_SOURCES) \ @COND_mips_qemu_mips_TRUE@ none_decompress.img -@COND_mips_qemu_mips_TRUE@am__append_5780 = none_decompress.img -@COND_i386_pc_TRUE@am__append_5781 = lzma_decompress.image -@COND_i386_pc_TRUE@am__append_5782 = -@COND_i386_pc_TRUE@am__append_5783 = $(nodist_lzma_decompress_image_SOURCES) -@COND_i386_pc_TRUE@am__append_5784 = \ +@COND_mips_qemu_mips_TRUE@am__append_5773 = none_decompress.img +@COND_i386_pc_TRUE@am__append_5774 = lzma_decompress.image +@COND_i386_pc_TRUE@am__append_5775 = +@COND_i386_pc_TRUE@am__append_5776 = $(nodist_lzma_decompress_image_SOURCES) +@COND_i386_pc_TRUE@am__append_5777 = \ @COND_i386_pc_TRUE@ $(nodist_lzma_decompress_image_SOURCES) \ @COND_i386_pc_TRUE@ lzma_decompress.img -@COND_i386_pc_TRUE@am__append_5785 = lzma_decompress.img -@COND_mips_loongson_TRUE@am__append_5786 = fwstart.image \ +@COND_i386_pc_TRUE@am__append_5778 = lzma_decompress.img +@COND_mips_loongson_TRUE@am__append_5779 = fwstart.image \ @COND_mips_loongson_TRUE@ fwstart_fuloong2f.image -@COND_mips_loongson_TRUE@am__append_5787 = -@COND_mips_loongson_TRUE@am__append_5788 = \ +@COND_mips_loongson_TRUE@am__append_5780 = +@COND_mips_loongson_TRUE@am__append_5781 = \ @COND_mips_loongson_TRUE@ $(nodist_fwstart_image_SOURCES) \ @COND_mips_loongson_TRUE@ $(nodist_fwstart_fuloong2f_image_SOURCES) -@COND_mips_loongson_TRUE@am__append_5789 = \ +@COND_mips_loongson_TRUE@am__append_5782 = \ @COND_mips_loongson_TRUE@ $(nodist_fwstart_image_SOURCES) \ @COND_mips_loongson_TRUE@ fwstart.img \ @COND_mips_loongson_TRUE@ $(nodist_fwstart_fuloong2f_image_SOURCES) \ @COND_mips_loongson_TRUE@ fwstart_fuloong2f.img -@COND_mips_loongson_TRUE@am__append_5790 = fwstart.img \ +@COND_mips_loongson_TRUE@am__append_5783 = fwstart.img \ @COND_mips_loongson_TRUE@ fwstart_fuloong2f.img -@COND_emu_TRUE@am__append_5791 = grub-emu grub-emu-lite -@COND_MAN_PAGES_TRUE@@COND_emu_TRUE@am__append_5792 = grub-emu.1 -@COND_MAN_PAGES_TRUE@@COND_emu_TRUE@am__append_5793 = grub-emu.1 -@COND_emu_TRUE@am__append_5794 = -@COND_emu_TRUE@am__append_5795 = $(nodist_grub_emu_SOURCES) \ +@COND_emu_TRUE@am__append_5784 = grub-emu grub-emu-lite +@COND_MAN_PAGES_TRUE@@COND_emu_TRUE@am__append_5785 = grub-emu.1 +@COND_MAN_PAGES_TRUE@@COND_emu_TRUE@am__append_5786 = grub-emu.1 +@COND_emu_TRUE@am__append_5787 = +@COND_emu_TRUE@am__append_5788 = $(nodist_grub_emu_SOURCES) \ @COND_emu_TRUE@ $(nodist_grub_emu_lite_SOURCES) -@COND_emu_TRUE@am__append_5796 = $(nodist_grub_emu_SOURCES) \ +@COND_emu_TRUE@am__append_5789 = $(nodist_grub_emu_SOURCES) \ @COND_emu_TRUE@ $(nodist_grub_emu_lite_SOURCES) -@COND_powerpc_ieee1275_TRUE@am__append_5797 = grub.chrp bootinfo.txt -@COND_powerpc_ieee1275_TRUE@am__append_5798 = grub.chrp bootinfo.txt -@COND_powerpc_ieee1275_TRUE@am__append_5799 = -@COND_powerpc_ieee1275_TRUE@am__append_5800 = \ +@COND_powerpc_ieee1275_TRUE@am__append_5790 = grub.chrp bootinfo.txt +@COND_powerpc_ieee1275_TRUE@am__append_5791 = grub.chrp bootinfo.txt +@COND_powerpc_ieee1275_TRUE@am__append_5792 = +@COND_powerpc_ieee1275_TRUE@am__append_5793 = \ @COND_powerpc_ieee1275_TRUE@ boot/powerpc/grub.chrp.in \ @COND_powerpc_ieee1275_TRUE@ boot/powerpc/bootinfo.txt.in -@COND_emu_TRUE@am__append_5801 = $(top_srcdir)/include/grub/compiler-rt-emu.h -@COND_emu_FALSE@am__append_5802 = $(top_srcdir)/include/grub/compiler-rt.h -@COND_i386_pc_TRUE@am__append_5803 = $(top_builddir)/include/grub/machine/kernel.h \ +@COND_emu_TRUE@am__append_5794 = $(top_srcdir)/include/grub/compiler-rt-emu.h +@COND_emu_FALSE@am__append_5795 = $(top_srcdir)/include/grub/compiler-rt.h +@COND_i386_pc_TRUE@am__append_5796 = $(top_builddir)/include/grub/machine/kernel.h \ @COND_i386_pc_TRUE@ $(top_builddir)/include/grub/machine/pxe.h \ @COND_i386_pc_TRUE@ $(top_builddir)/include/grub/machine/int.h \ @COND_i386_pc_TRUE@ $(top_srcdir)/include/grub/i386/tsc.h -@COND_i386_xen_pvh_TRUE@am__append_5804 = $(top_builddir)/include/grub/machine/kernel.h \ +@COND_i386_xen_pvh_TRUE@am__append_5797 = $(top_builddir)/include/grub/machine/kernel.h \ @COND_i386_xen_pvh_TRUE@ $(top_builddir)/include/grub/machine/int.h \ @COND_i386_xen_pvh_TRUE@ $(top_srcdir)/include/grub/i386/tsc.h \ @COND_i386_xen_pvh_TRUE@ $(top_srcdir)/include/grub/terminfo.h \ @@ -7834,14 +7824,14 @@ TESTS = @COND_i386_xen_pvh_TRUE@ $(top_srcdir)/include/grub/lib/arg.h \ @COND_i386_xen_pvh_TRUE@ $(top_srcdir)/include/grub/xen.h \ @COND_i386_xen_pvh_TRUE@ $(top_srcdir)/include/grub/i386/xen/hypercall.h -@COND_i386_efi_TRUE@am__append_5805 = $(top_builddir)/include/grub/machine/kernel.h \ +@COND_i386_efi_TRUE@am__append_5798 = $(top_builddir)/include/grub/machine/kernel.h \ @COND_i386_efi_TRUE@ $(top_srcdir)/include/grub/efi/efi.h \ @COND_i386_efi_TRUE@ $(top_srcdir)/include/grub/efi/disk.h \ @COND_i386_efi_TRUE@ $(top_srcdir)/include/grub/i386/tsc.h \ @COND_i386_efi_TRUE@ $(top_srcdir)/include/grub/acpi.h \ @COND_i386_efi_TRUE@ $(top_srcdir)/include/grub/pci.h \ @COND_i386_efi_TRUE@ $(top_srcdir)/include/grub/i386/pmtimer.h -@COND_i386_coreboot_TRUE@am__append_5806 = $(top_builddir)/include/grub/machine/kernel.h \ +@COND_i386_coreboot_TRUE@am__append_5799 = $(top_builddir)/include/grub/machine/kernel.h \ @COND_i386_coreboot_TRUE@ $(top_srcdir)/include/grub/i386/tsc.h \ @COND_i386_coreboot_TRUE@ $(top_srcdir)/include/grub/coreboot/lbio.h \ @COND_i386_coreboot_TRUE@ $(top_srcdir)/include/grub/video.h \ @@ -7850,56 +7840,56 @@ TESTS = @COND_i386_coreboot_TRUE@ $(top_srcdir)/include/grub/font.h \ @COND_i386_coreboot_TRUE@ $(top_srcdir)/include/grub/bufio.h \ @COND_i386_coreboot_TRUE@ $(top_srcdir)/include/grub/acpi.h -@COND_i386_multiboot_TRUE@am__append_5807 = $(top_builddir)/include/grub/machine/kernel.h \ +@COND_i386_multiboot_TRUE@am__append_5800 = $(top_builddir)/include/grub/machine/kernel.h \ @COND_i386_multiboot_TRUE@ $(top_srcdir)/include/grub/i386/tsc.h \ @COND_i386_multiboot_TRUE@ $(top_srcdir)/include/grub/acpi.h -@COND_i386_qemu_TRUE@am__append_5808 = \ +@COND_i386_qemu_TRUE@am__append_5801 = \ @COND_i386_qemu_TRUE@ $(top_srcdir)/include/grub/pci.h \ @COND_i386_qemu_TRUE@ $(top_srcdir)/include/grub/i386/tsc.h -@COND_i386_ieee1275_TRUE@am__append_5809 = $(top_builddir)/include/grub/machine/kernel.h \ +@COND_i386_ieee1275_TRUE@am__append_5802 = $(top_builddir)/include/grub/machine/kernel.h \ @COND_i386_ieee1275_TRUE@ $(top_srcdir)/include/grub/ieee1275/ieee1275.h \ @COND_i386_ieee1275_TRUE@ $(top_srcdir)/include/grub/terminfo.h \ @COND_i386_ieee1275_TRUE@ $(top_srcdir)/include/grub/extcmd.h \ @COND_i386_ieee1275_TRUE@ $(top_srcdir)/include/grub/lib/arg.h \ @COND_i386_ieee1275_TRUE@ $(top_srcdir)/include/grub/i386/tsc.h -@COND_i386_xen_TRUE@am__append_5810 = $(top_builddir)/include/grub/machine/kernel.h \ +@COND_i386_xen_TRUE@am__append_5803 = $(top_builddir)/include/grub/machine/kernel.h \ @COND_i386_xen_TRUE@ $(top_srcdir)/include/grub/xen.h \ @COND_i386_xen_TRUE@ $(top_srcdir)/include/grub/i386/xen/hypercall.h \ @COND_i386_xen_TRUE@ $(top_srcdir)/include/grub/terminfo.h \ @COND_i386_xen_TRUE@ $(top_srcdir)/include/grub/extcmd.h \ @COND_i386_xen_TRUE@ $(top_srcdir)/include/grub/lib/arg.h \ @COND_i386_xen_TRUE@ $(top_srcdir)/include/grub/loader.h -@COND_x86_64_xen_TRUE@am__append_5811 = \ +@COND_x86_64_xen_TRUE@am__append_5804 = \ @COND_x86_64_xen_TRUE@ $(top_srcdir)/include/grub/xen.h \ @COND_x86_64_xen_TRUE@ $(top_srcdir)/include/grub/x86_64/xen/hypercall.h \ @COND_x86_64_xen_TRUE@ $(top_srcdir)/include/grub/terminfo.h \ @COND_x86_64_xen_TRUE@ $(top_srcdir)/include/grub/extcmd.h \ @COND_x86_64_xen_TRUE@ $(top_srcdir)/include/grub/lib/arg.h \ @COND_x86_64_xen_TRUE@ $(top_srcdir)/include/grub/loader.h -@COND_x86_64_efi_TRUE@am__append_5812 = $(top_builddir)/include/grub/machine/kernel.h \ +@COND_x86_64_efi_TRUE@am__append_5805 = $(top_builddir)/include/grub/machine/kernel.h \ @COND_x86_64_efi_TRUE@ $(top_srcdir)/include/grub/efi/efi.h \ @COND_x86_64_efi_TRUE@ $(top_srcdir)/include/grub/efi/disk.h \ @COND_x86_64_efi_TRUE@ $(top_srcdir)/include/grub/i386/tsc.h \ @COND_x86_64_efi_TRUE@ $(top_srcdir)/include/grub/pci.h \ @COND_x86_64_efi_TRUE@ $(top_srcdir)/include/grub/acpi.h \ @COND_x86_64_efi_TRUE@ $(top_srcdir)/include/grub/i386/pmtimer.h -@COND_ia64_efi_TRUE@am__append_5813 = \ +@COND_ia64_efi_TRUE@am__append_5806 = \ @COND_ia64_efi_TRUE@ $(top_srcdir)/include/grub/efi/efi.h \ @COND_ia64_efi_TRUE@ $(top_srcdir)/include/grub/efi/disk.h \ @COND_ia64_efi_TRUE@ $(top_srcdir)/include/grub/acpi.h -@COND_mips_TRUE@am__append_5814 = $(top_builddir)/include/grub/cpu/kernel.h -@COND_mips_arc_TRUE@am__append_5815 = \ +@COND_mips_TRUE@am__append_5807 = $(top_builddir)/include/grub/cpu/kernel.h +@COND_mips_arc_TRUE@am__append_5808 = \ @COND_mips_arc_TRUE@ $(top_srcdir)/include/grub/extcmd.h \ @COND_mips_arc_TRUE@ $(top_srcdir)/include/grub/arc/arc.h \ @COND_mips_arc_TRUE@ $(top_srcdir)/include/grub/terminfo.h -@COND_mips_qemu_mips_TRUE@am__append_5816 = $(top_builddir)/include/grub/keyboard_layouts.h \ +@COND_mips_qemu_mips_TRUE@am__append_5809 = $(top_builddir)/include/grub/keyboard_layouts.h \ @COND_mips_qemu_mips_TRUE@ $(top_builddir)/include/grub/machine/kernel.h \ @COND_mips_qemu_mips_TRUE@ $(top_srcdir)/include/grub/serial.h \ @COND_mips_qemu_mips_TRUE@ $(top_srcdir)/include/grub/loader.h \ @COND_mips_qemu_mips_TRUE@ $(top_srcdir)/include/grub/terminfo.h \ @COND_mips_qemu_mips_TRUE@ $(top_srcdir)/include/grub/extcmd.h \ @COND_mips_qemu_mips_TRUE@ $(top_srcdir)/include/grub/lib/arg.h -@COND_mips_loongson_TRUE@am__append_5817 = $(top_builddir)/include/grub/keyboard_layouts.h \ +@COND_mips_loongson_TRUE@am__append_5810 = $(top_builddir)/include/grub/keyboard_layouts.h \ @COND_mips_loongson_TRUE@ $(top_builddir)/include/grub/machine/kernel.h \ @COND_mips_loongson_TRUE@ $(top_builddir)/include/grub/machine/time.h \ @COND_mips_loongson_TRUE@ $(top_srcdir)/include/grub/video.h \ @@ -7915,24 +7905,24 @@ TESTS = @COND_mips_loongson_TRUE@ $(top_srcdir)/include/grub/terminfo.h \ @COND_mips_loongson_TRUE@ $(top_srcdir)/include/grub/extcmd.h \ @COND_mips_loongson_TRUE@ $(top_srcdir)/include/grub/lib/arg.h -@COND_mips_qemu_mips_TRUE@am__append_5818 = $(top_builddir)/include/grub/machine/memory.h \ +@COND_mips_qemu_mips_TRUE@am__append_5811 = $(top_builddir)/include/grub/machine/memory.h \ @COND_mips_qemu_mips_TRUE@ $(top_builddir)/include/grub/machine/kernel.h -@COND_powerpc_ieee1275_TRUE@am__append_5819 = $(top_srcdir)/include/grub/ieee1275/ieee1275.h \ +@COND_powerpc_ieee1275_TRUE@am__append_5812 = $(top_srcdir)/include/grub/ieee1275/ieee1275.h \ @COND_powerpc_ieee1275_TRUE@ $(top_srcdir)/include/grub/terminfo.h \ @COND_powerpc_ieee1275_TRUE@ $(top_srcdir)/include/grub/extcmd.h \ @COND_powerpc_ieee1275_TRUE@ $(top_srcdir)/include/grub/lib/arg.h -@COND_sparc64_ieee1275_TRUE@am__append_5820 = $(top_srcdir)/include/grub/ieee1275/ieee1275.h \ +@COND_sparc64_ieee1275_TRUE@am__append_5813 = $(top_srcdir)/include/grub/ieee1275/ieee1275.h \ @COND_sparc64_ieee1275_TRUE@ $(top_srcdir)/include/grub/sparc64/ieee1275/ieee1275.h \ @COND_sparc64_ieee1275_TRUE@ $(top_srcdir)/include/grub/terminfo.h \ @COND_sparc64_ieee1275_TRUE@ $(top_srcdir)/include/grub/extcmd.h \ @COND_sparc64_ieee1275_TRUE@ $(top_srcdir)/include/grub/lib/arg.h -@COND_arm_uboot_TRUE@am__append_5821 = \ +@COND_arm_uboot_TRUE@am__append_5814 = \ @COND_arm_uboot_TRUE@ $(top_srcdir)/include/grub/uboot/uboot.h \ @COND_arm_uboot_TRUE@ $(top_srcdir)/include/grub/uboot/disk.h \ @COND_arm_uboot_TRUE@ $(top_srcdir)/include/grub/extcmd.h \ @COND_arm_uboot_TRUE@ $(top_srcdir)/include/grub/lib/arg.h \ @COND_arm_uboot_TRUE@ $(top_srcdir)/include/grub/arm/system.h -@COND_arm_coreboot_TRUE@am__append_5822 = $(top_builddir)/include/grub/keyboard_layouts.h \ +@COND_arm_coreboot_TRUE@am__append_5815 = $(top_builddir)/include/grub/keyboard_layouts.h \ @COND_arm_coreboot_TRUE@ $(top_srcdir)/include/grub/arm/system.h \ @COND_arm_coreboot_TRUE@ $(top_srcdir)/include/grub/video.h \ @COND_arm_coreboot_TRUE@ $(top_srcdir)/include/grub/video_fb.h \ @@ -7943,35 +7933,35 @@ TESTS = @COND_arm_coreboot_TRUE@ $(top_srcdir)/include/grub/dma.h \ @COND_arm_coreboot_TRUE@ $(top_srcdir)/include/grub/arm/coreboot/kernel.h \ @COND_arm_coreboot_TRUE@ $(top_srcdir)/include/grub/fdtbus.h -@COND_arm_efi_TRUE@am__append_5823 = \ +@COND_arm_efi_TRUE@am__append_5816 = \ @COND_arm_efi_TRUE@ $(top_srcdir)/include/grub/efi/efi.h \ @COND_arm_efi_TRUE@ $(top_srcdir)/include/grub/efi/disk.h \ @COND_arm_efi_TRUE@ $(top_srcdir)/include/grub/arm/system.h \ @COND_arm_efi_TRUE@ $(top_srcdir)/include/grub/acpi.h -@COND_arm64_efi_TRUE@am__append_5824 = \ +@COND_arm64_efi_TRUE@am__append_5817 = \ @COND_arm64_efi_TRUE@ $(top_srcdir)/include/grub/efi/efi.h \ @COND_arm64_efi_TRUE@ $(top_srcdir)/include/grub/efi/disk.h \ @COND_arm64_efi_TRUE@ $(top_srcdir)/include/grub/acpi.h -@COND_riscv32_efi_TRUE@am__append_5825 = \ +@COND_riscv32_efi_TRUE@am__append_5818 = \ @COND_riscv32_efi_TRUE@ $(top_srcdir)/include/grub/efi/efi.h \ @COND_riscv32_efi_TRUE@ $(top_srcdir)/include/grub/efi/disk.h \ @COND_riscv32_efi_TRUE@ $(top_srcdir)/include/grub/acpi.h -@COND_riscv64_efi_TRUE@am__append_5826 = \ +@COND_riscv64_efi_TRUE@am__append_5819 = \ @COND_riscv64_efi_TRUE@ $(top_srcdir)/include/grub/efi/efi.h \ @COND_riscv64_efi_TRUE@ $(top_srcdir)/include/grub/efi/disk.h \ @COND_riscv64_efi_TRUE@ $(top_srcdir)/include/grub/acpi.h -@COND_emu_TRUE@am__append_5827 = \ +@COND_emu_TRUE@am__append_5820 = \ @COND_emu_TRUE@ $(top_srcdir)/include/grub/datetime.h \ @COND_emu_TRUE@ $(top_srcdir)/include/grub/emu/misc.h \ @COND_emu_TRUE@ $(top_srcdir)/include/grub/emu/net.h \ @COND_emu_TRUE@ $(top_srcdir)/include/grub/emu/hostdisk.h \ @COND_emu_TRUE@ $(top_srcdir)/include/grub/emu/hostfile.h \ @COND_emu_TRUE@ $(top_srcdir)/include/grub/extcmd.h -@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5828 = $(top_srcdir)/include/grub/sdl.h -@COND_GRUB_EMU_PCI_TRUE@@COND_emu_TRUE@am__append_5829 = $(top_srcdir)/include/grub/libpciaccess.h -@COND_emu_TRUE@am__append_5830 = grub_emu_init.h grub_emu_init.c -@COND_ENABLE_EFIEMU_TRUE@am__append_5831 = efiemu32.o efiemu64.o -@COND_ENABLE_EFIEMU_TRUE@am__append_5832 = efiemu32.o efiemu64.o efiemu64_c.o efiemu64_s.o +@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__append_5821 = $(top_srcdir)/include/grub/sdl.h +@COND_GRUB_EMU_PCI_TRUE@@COND_emu_TRUE@am__append_5822 = $(top_srcdir)/include/grub/libpciaccess.h +@COND_emu_TRUE@am__append_5823 = grub_emu_init.h grub_emu_init.c +@COND_ENABLE_EFIEMU_TRUE@am__append_5824 = efiemu32.o efiemu64.o +@COND_ENABLE_EFIEMU_TRUE@am__append_5825 = efiemu32.o efiemu64.o efiemu64_c.o efiemu64_s.o subdir = grub-core ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ @@ -8380,591 +8370,590 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(platformdir)" \ @COND_arm_coreboot_TRUE@am__EXEEXT_290 = reboot.module$(EXEEXT) @COND_riscv32_efi_TRUE@am__EXEEXT_291 = reboot.module$(EXEEXT) @COND_riscv64_efi_TRUE@am__EXEEXT_292 = reboot.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_293 = shim_lock.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_294 = hdparm.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_295 = hdparm.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_296 = hdparm.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_297 = hdparm.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_298 = hdparm.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_299 = hdparm.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_300 = hdparm.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_301 = hdparm.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_302 = hdparm.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_303 = loadbios.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_304 = loadbios.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_305 = lspci.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_306 = lspci.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_307 = lspci.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_308 = lspci.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_309 = lspci.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_310 = lspci.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_311 = lspci.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_312 = lspci.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_313 = play.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_314 = play.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_315 = play.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_316 = play.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_317 = play.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_318 = play.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_319 = play.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_320 = spkmodem.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_321 = spkmodem.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_322 = spkmodem.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_323 = spkmodem.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_324 = spkmodem.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_325 = spkmodem.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_326 = spkmodem.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_327 = morse.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_328 = morse.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_329 = morse.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_330 = morse.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_331 = morse.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_332 = morse.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_333 = morse.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_334 = setpci.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_335 = setpci.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_336 = setpci.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_337 = setpci.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_338 = setpci.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_339 = setpci.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_340 = setpci.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_341 = setpci.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_342 = pcidump.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_343 = pcidump.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_344 = pcidump.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_345 = pcidump.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_346 = pcidump.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_347 = pcidump.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_348 = pcidump.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_349 = pcidump.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_350 = suspend.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_351 = suspend.module$(EXEEXT) \ +@COND_i386_pc_TRUE@am__EXEEXT_293 = hdparm.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_294 = hdparm.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_295 = hdparm.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_296 = hdparm.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_297 = hdparm.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_298 = hdparm.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_299 = hdparm.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_300 = hdparm.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_301 = hdparm.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_302 = loadbios.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_303 = loadbios.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_304 = lspci.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_305 = lspci.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_306 = lspci.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_307 = lspci.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_308 = lspci.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_309 = lspci.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_310 = lspci.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_311 = lspci.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_312 = play.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_313 = play.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_314 = play.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_315 = play.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_316 = play.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_317 = play.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_318 = play.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_319 = spkmodem.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_320 = spkmodem.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_321 = spkmodem.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_322 = spkmodem.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_323 = spkmodem.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_324 = spkmodem.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_325 = spkmodem.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_326 = morse.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_327 = morse.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_328 = morse.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_329 = morse.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_330 = morse.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_331 = morse.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_332 = morse.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_333 = setpci.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_334 = setpci.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_335 = setpci.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_336 = setpci.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_337 = setpci.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_338 = setpci.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_339 = setpci.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_340 = setpci.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_341 = pcidump.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_342 = pcidump.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_343 = pcidump.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_344 = pcidump.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_345 = pcidump.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_346 = pcidump.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_347 = pcidump.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_348 = pcidump.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_349 = suspend.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_350 = suspend.module$(EXEEXT) \ @COND_powerpc_ieee1275_TRUE@ escc.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_352 = usbtest.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_353 = usbtest.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_354 = usbtest.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_355 = usbtest.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_356 = usbtest.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_357 = usbtest.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_358 = usbtest.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_359 = usbtest.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__EXEEXT_360 = usbtest.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_361 = ata.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_362 = ata.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_363 = ata.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_364 = ata.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_365 = ata.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_366 = ata.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_367 = ata.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_368 = ata.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_369 = ata.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_370 = ahci.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_371 = ahci.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_372 = ahci.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_373 = ahci.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_374 = ahci.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_375 = ahci.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_376 = ahci.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_377 = ahci.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_378 = pata.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_379 = pata.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_380 = pata.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_381 = pata.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_382 = pata.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_383 = pata.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_384 = pata.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_385 = pata.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_386 = pata.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_387 = biosdisk.module$(EXEEXT) \ +@COND_i386_pc_TRUE@am__EXEEXT_351 = usbtest.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_352 = usbtest.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_353 = usbtest.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_354 = usbtest.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_355 = usbtest.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_356 = usbtest.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_357 = usbtest.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_358 = usbtest.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__EXEEXT_359 = usbtest.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_360 = ata.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_361 = ata.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_362 = ata.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_363 = ata.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_364 = ata.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_365 = ata.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_366 = ata.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_367 = ata.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_368 = ata.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_369 = ahci.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_370 = ahci.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_371 = ahci.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_372 = ahci.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_373 = ahci.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_374 = ahci.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_375 = ahci.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_376 = ahci.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_377 = pata.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_378 = pata.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_379 = pata.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_380 = pata.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_381 = pata.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_382 = pata.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_383 = pata.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_384 = pata.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_385 = pata.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_386 = biosdisk.module$(EXEEXT) \ @COND_i386_pc_TRUE@ usbms.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_388 = usbms.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_389 = usbms.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_390 = usbms.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_391 = usbms.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_392 = usbms.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_393 = usbms.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_394 = usbms.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__EXEEXT_395 = usbms.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_396 = nand.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_397 = efiemu.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_398 = efiemu.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_399 = efiemu.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_400 = efiemu.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_401 = efiemu.module$(EXEEXT) -@COND_emu_TRUE@am__EXEEXT_402 = font.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_403 = font.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_404 = font.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_405 = font.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_406 = font.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_407 = font.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_408 = font.module$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_409 = font.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_410 = font.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_411 = font.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_412 = font.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_413 = font.module$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_414 = font.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_415 = font.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_416 = font.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__EXEEXT_417 = font.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_418 = font.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_419 = font.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_420 = font.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_421 = font.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_422 = pxe.module$(EXEEXT) -@COND_emu_TRUE@am__EXEEXT_423 = bufio.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_424 = bufio.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_425 = bufio.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_426 = bufio.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_427 = bufio.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_428 = bufio.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_429 = bufio.module$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_430 = bufio.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_431 = bufio.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_432 = bufio.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_433 = bufio.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_434 = bufio.module$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_435 = bufio.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_436 = bufio.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_437 = bufio.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__EXEEXT_438 = bufio.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_439 = bufio.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_440 = bufio.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_441 = bufio.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_442 = bufio.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_443 = relocator.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_444 = relocator.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_445 = relocator.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_446 = relocator.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_447 = relocator.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_448 = relocator.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_449 = relocator.module$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_450 = relocator.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_451 = relocator.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_452 = relocator.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_453 = relocator.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_454 = \ +@COND_i386_efi_TRUE@am__EXEEXT_387 = usbms.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_388 = usbms.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_389 = usbms.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_390 = usbms.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_391 = usbms.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_392 = usbms.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_393 = usbms.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__EXEEXT_394 = usbms.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_395 = nand.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_396 = efiemu.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_397 = efiemu.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_398 = efiemu.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_399 = efiemu.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_400 = efiemu.module$(EXEEXT) +@COND_emu_TRUE@am__EXEEXT_401 = font.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_402 = font.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_403 = font.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_404 = font.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_405 = font.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_406 = font.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_407 = font.module$(EXEEXT) +@COND_i386_xen_TRUE@am__EXEEXT_408 = font.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__EXEEXT_409 = font.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_410 = font.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_411 = font.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_412 = font.module$(EXEEXT) +@COND_mips_arc_TRUE@am__EXEEXT_413 = font.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_414 = font.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_415 = font.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__EXEEXT_416 = font.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_417 = font.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_418 = font.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_419 = font.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_420 = font.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_421 = pxe.module$(EXEEXT) +@COND_emu_TRUE@am__EXEEXT_422 = bufio.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_423 = bufio.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_424 = bufio.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_425 = bufio.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_426 = bufio.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_427 = bufio.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_428 = bufio.module$(EXEEXT) +@COND_i386_xen_TRUE@am__EXEEXT_429 = bufio.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__EXEEXT_430 = bufio.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_431 = bufio.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_432 = bufio.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_433 = bufio.module$(EXEEXT) +@COND_mips_arc_TRUE@am__EXEEXT_434 = bufio.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_435 = bufio.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_436 = bufio.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__EXEEXT_437 = bufio.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_438 = bufio.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_439 = bufio.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_440 = bufio.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_441 = bufio.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_442 = relocator.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_443 = relocator.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_444 = relocator.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_445 = relocator.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_446 = relocator.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_447 = relocator.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_448 = relocator.module$(EXEEXT) +@COND_i386_xen_TRUE@am__EXEEXT_449 = relocator.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__EXEEXT_450 = relocator.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_451 = relocator.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_452 = relocator.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_453 = \ @COND_powerpc_ieee1275_TRUE@ relocator.module$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_455 = relocator.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_456 = relocator.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_457 = datetime.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_458 = datetime.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_459 = datetime.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_460 = datetime.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_461 = datetime.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_462 = datetime.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_463 = datetime.module$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_464 = datetime.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_465 = datetime.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_466 = datetime.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_467 = datetime.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_468 = datetime.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_469 = datetime.module$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_470 = datetime.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_471 = datetime.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_472 = datetime.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__EXEEXT_473 = datetime.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_474 = datetime.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_475 = datetime.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__EXEEXT_476 = datetime.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_477 = datetime.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_478 = datetime.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_479 = aout.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_480 = aout.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_481 = aout.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_482 = aout.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_483 = aout.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_484 = aout.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_485 = aout.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_486 = bsd.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_487 = bsd.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_488 = bsd.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_489 = bsd.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_490 = bsd.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_491 = bsd.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_492 = bsd.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_493 = plan9.module$(EXEEXT) \ +@COND_mips_arc_TRUE@am__EXEEXT_454 = relocator.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_455 = relocator.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_456 = datetime.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_457 = datetime.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_458 = datetime.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_459 = datetime.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_460 = datetime.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_461 = datetime.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_462 = datetime.module$(EXEEXT) +@COND_i386_xen_TRUE@am__EXEEXT_463 = datetime.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__EXEEXT_464 = datetime.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_465 = datetime.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_466 = datetime.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_467 = datetime.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_468 = datetime.module$(EXEEXT) +@COND_mips_arc_TRUE@am__EXEEXT_469 = datetime.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_470 = datetime.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_471 = datetime.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__EXEEXT_472 = datetime.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_473 = datetime.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_474 = datetime.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__EXEEXT_475 = datetime.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_476 = datetime.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_477 = datetime.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_478 = aout.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_479 = aout.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_480 = aout.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_481 = aout.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_482 = aout.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_483 = aout.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_484 = aout.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_485 = bsd.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_486 = bsd.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_487 = bsd.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_488 = bsd.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_489 = bsd.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_490 = bsd.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_491 = bsd.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_492 = plan9.module$(EXEEXT) \ @COND_i386_pc_TRUE@ linux16.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_494 = linux16.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_495 = linux16.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_496 = linux16.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_497 = linux16.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_498 = linux16.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_499 = linux16.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_500 = ntldr.module$(EXEEXT) \ +@COND_i386_efi_TRUE@am__EXEEXT_493 = linux16.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_494 = linux16.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_495 = linux16.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_496 = linux16.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_497 = linux16.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_498 = linux16.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_499 = ntldr.module$(EXEEXT) \ @COND_i386_pc_TRUE@ truecrypt.module$(EXEEXT) \ @COND_i386_pc_TRUE@ freedos.module$(EXEEXT) \ @COND_i386_pc_TRUE@ pxechain.module$(EXEEXT) \ @COND_i386_pc_TRUE@ multiboot2.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_501 = multiboot2.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_502 = multiboot2.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_503 = multiboot2.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_504 = multiboot2.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_505 = multiboot2.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_506 = multiboot2.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_507 = multiboot2.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_508 = multiboot2.module$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_509 = multiboot2.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_510 = multiboot2.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_511 = multiboot.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_512 = multiboot.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_513 = multiboot.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_514 = multiboot.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_515 = multiboot.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_516 = multiboot.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_517 = multiboot.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_518 = multiboot.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_519 = xen_boot.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_520 = linux.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_521 = linux.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_522 = linux.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_523 = linux.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_524 = linux.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_525 = linux.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_526 = linux.module$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_527 = linux.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_528 = linux.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_529 = linux.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_530 = linux.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_531 = linux.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_532 = linux.module$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_533 = linux.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_534 = linux.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_535 = linux.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__EXEEXT_536 = linux.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_537 = linux.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_538 = linux.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__EXEEXT_539 = linux.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_540 = linux.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_541 = linux.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__EXEEXT_542 = fdt.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_543 = fdt.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_544 = fdt.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_545 = fdt.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_546 = fdt.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_547 = xnu.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_548 = xnu.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_549 = xnu.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_550 = xnu.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_551 = xnu.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_552 = random.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_553 = random.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_554 = random.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_555 = random.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_556 = random.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_557 = appleldr.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_558 = appleldr.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_559 = chain.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_560 = chain.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_561 = chain.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_562 = chain.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_563 = chain.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_564 = chain.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_565 = chain.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_566 = chain.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_567 = chain.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_568 = mmap.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_569 = mmap.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_570 = mmap.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_571 = mmap.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_572 = mmap.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_573 = mmap.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_574 = mmap.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_575 = mmap.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_576 = mmap.module$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_577 = mmap.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_578 = mmap.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_579 = mmap.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_580 = mmap.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_581 = mmap.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_582 = mmap.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_583 = mmap.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_584 = at_keyboard.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_585 = at_keyboard.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_586 = at_keyboard.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_587 = at_keyboard.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_588 = \ +@COND_i386_efi_TRUE@am__EXEEXT_500 = multiboot2.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_501 = multiboot2.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_502 = multiboot2.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_503 = multiboot2.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_504 = multiboot2.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_505 = multiboot2.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_506 = multiboot2.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_507 = multiboot2.module$(EXEEXT) +@COND_mips_arc_TRUE@am__EXEEXT_508 = multiboot2.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_509 = multiboot2.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_510 = multiboot.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_511 = multiboot.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_512 = multiboot.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_513 = multiboot.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_514 = multiboot.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_515 = multiboot.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_516 = multiboot.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_517 = multiboot.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_518 = xen_boot.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_519 = linux.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_520 = linux.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_521 = linux.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_522 = linux.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_523 = linux.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_524 = linux.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_525 = linux.module$(EXEEXT) +@COND_i386_xen_TRUE@am__EXEEXT_526 = linux.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__EXEEXT_527 = linux.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_528 = linux.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_529 = linux.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_530 = linux.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_531 = linux.module$(EXEEXT) +@COND_mips_arc_TRUE@am__EXEEXT_532 = linux.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_533 = linux.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_534 = linux.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__EXEEXT_535 = linux.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_536 = linux.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_537 = linux.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__EXEEXT_538 = linux.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_539 = linux.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_540 = linux.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__EXEEXT_541 = fdt.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_542 = fdt.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_543 = fdt.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_544 = fdt.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_545 = fdt.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_546 = xnu.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_547 = xnu.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_548 = xnu.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_549 = xnu.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_550 = xnu.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_551 = random.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_552 = random.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_553 = random.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_554 = random.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_555 = random.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_556 = appleldr.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_557 = appleldr.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_558 = chain.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_559 = chain.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_560 = chain.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_561 = chain.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_562 = chain.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_563 = chain.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_564 = chain.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_565 = chain.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_566 = chain.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_567 = mmap.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_568 = mmap.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_569 = mmap.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_570 = mmap.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_571 = mmap.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_572 = mmap.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_573 = mmap.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_574 = mmap.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_575 = mmap.module$(EXEEXT) +@COND_mips_arc_TRUE@am__EXEEXT_576 = mmap.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_577 = mmap.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_578 = mmap.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_579 = mmap.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_580 = mmap.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_581 = mmap.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_582 = mmap.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_583 = at_keyboard.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_584 = at_keyboard.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_585 = at_keyboard.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_586 = at_keyboard.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_587 = \ @COND_i386_multiboot_TRUE@ at_keyboard.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_589 = at_keyboard.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_590 = at_keyboard.module$(EXEEXT) -@COND_emu_TRUE@am__EXEEXT_591 = gfxterm.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_592 = gfxterm.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_593 = gfxterm.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_594 = gfxterm.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_595 = gfxterm.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_596 = gfxterm.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_597 = gfxterm.module$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_598 = gfxterm.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_599 = gfxterm.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_600 = gfxterm.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_601 = gfxterm.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_602 = gfxterm.module$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_603 = gfxterm.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_604 = gfxterm.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_605 = gfxterm.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__EXEEXT_606 = gfxterm.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_607 = gfxterm.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_608 = gfxterm.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_609 = gfxterm.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_610 = gfxterm.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_611 = serial.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_612 = serial.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_613 = serial.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_614 = serial.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_615 = serial.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_616 = serial.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_617 = serial.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_618 = serial.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_619 = serial.module$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_620 = serial.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_621 = serial.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_622 = serial.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_623 = serial.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__EXEEXT_624 = serial.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_625 = serial.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_626 = serial.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_627 = sendkey.module$(EXEEXT) \ +@COND_i386_ieee1275_TRUE@am__EXEEXT_588 = at_keyboard.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_589 = at_keyboard.module$(EXEEXT) +@COND_emu_TRUE@am__EXEEXT_590 = gfxterm.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_591 = gfxterm.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_592 = gfxterm.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_593 = gfxterm.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_594 = gfxterm.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_595 = gfxterm.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_596 = gfxterm.module$(EXEEXT) +@COND_i386_xen_TRUE@am__EXEEXT_597 = gfxterm.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__EXEEXT_598 = gfxterm.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_599 = gfxterm.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_600 = gfxterm.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_601 = gfxterm.module$(EXEEXT) +@COND_mips_arc_TRUE@am__EXEEXT_602 = gfxterm.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_603 = gfxterm.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_604 = gfxterm.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__EXEEXT_605 = gfxterm.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_606 = gfxterm.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_607 = gfxterm.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_608 = gfxterm.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_609 = gfxterm.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_610 = serial.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_611 = serial.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_612 = serial.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_613 = serial.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_614 = serial.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_615 = serial.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_616 = serial.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_617 = serial.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_618 = serial.module$(EXEEXT) +@COND_mips_arc_TRUE@am__EXEEXT_619 = serial.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_620 = serial.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_621 = serial.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_622 = serial.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__EXEEXT_623 = serial.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_624 = serial.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_625 = serial.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_626 = sendkey.module$(EXEEXT) \ @COND_i386_pc_TRUE@ terminfo.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_628 = terminfo.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_629 = terminfo.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_630 = terminfo.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_631 = terminfo.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_632 = terminfo.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_633 = terminfo.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_634 = terminfo.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_635 = terminfo.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__EXEEXT_636 = terminfo.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_637 = terminfo.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_638 = terminfo.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_639 = usb_keyboard.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_640 = usb_keyboard.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_641 = usb_keyboard.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_642 = \ +@COND_i386_efi_TRUE@am__EXEEXT_627 = terminfo.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_628 = terminfo.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_629 = terminfo.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_630 = terminfo.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_631 = terminfo.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_632 = terminfo.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_633 = terminfo.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_634 = terminfo.module$(EXEEXT) +@COND_arm_coreboot_TRUE@am__EXEEXT_635 = terminfo.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_636 = terminfo.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_637 = terminfo.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_638 = usb_keyboard.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_639 = usb_keyboard.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_640 = usb_keyboard.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_641 = \ @COND_i386_coreboot_TRUE@ usb_keyboard.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_643 = \ +@COND_i386_multiboot_TRUE@am__EXEEXT_642 = \ @COND_i386_multiboot_TRUE@ usb_keyboard.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_644 = \ +@COND_i386_ieee1275_TRUE@am__EXEEXT_643 = \ @COND_i386_ieee1275_TRUE@ usb_keyboard.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_645 = usb_keyboard.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_646 = \ +@COND_x86_64_efi_TRUE@am__EXEEXT_644 = usb_keyboard.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_645 = \ @COND_mips_loongson_TRUE@ usb_keyboard.module$(EXEEXT) -@COND_arm_coreboot_TRUE@am__EXEEXT_647 = usb_keyboard.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_648 = vga.module$(EXEEXT) \ +@COND_arm_coreboot_TRUE@am__EXEEXT_646 = usb_keyboard.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_647 = vga.module$(EXEEXT) \ @COND_i386_pc_TRUE@ vga_text.module$(EXEEXT) \ @COND_i386_pc_TRUE@ mda_text.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_649 = mda_text.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_650 = mda_text.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_651 = mda_text.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_652 = video_cirrus.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_653 = video_cirrus.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_654 = video_cirrus.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_655 = \ +@COND_i386_qemu_TRUE@am__EXEEXT_648 = mda_text.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_649 = mda_text.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_650 = mda_text.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_651 = video_cirrus.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_652 = video_cirrus.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_653 = video_cirrus.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_654 = \ @COND_i386_coreboot_TRUE@ video_cirrus.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_656 = \ +@COND_i386_multiboot_TRUE@am__EXEEXT_655 = \ @COND_i386_multiboot_TRUE@ video_cirrus.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_657 = \ +@COND_i386_ieee1275_TRUE@am__EXEEXT_656 = \ @COND_i386_ieee1275_TRUE@ video_cirrus.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_658 = video_cirrus.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_659 = video_bochs.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_660 = video_bochs.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_661 = video_bochs.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_662 = video_bochs.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_663 = \ +@COND_x86_64_efi_TRUE@am__EXEEXT_657 = video_cirrus.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_658 = video_bochs.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_659 = video_bochs.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_660 = video_bochs.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_661 = video_bochs.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_662 = \ @COND_i386_multiboot_TRUE@ video_bochs.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_664 = video_bochs.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_665 = video_bochs.module$(EXEEXT) -@COND_emu_TRUE@am__EXEEXT_666 = legacy_password_test.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_667 = \ +@COND_i386_ieee1275_TRUE@am__EXEEXT_663 = video_bochs.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_664 = video_bochs.module$(EXEEXT) +@COND_emu_TRUE@am__EXEEXT_665 = legacy_password_test.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_666 = \ @COND_i386_pc_TRUE@ legacy_password_test.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_668 = \ +@COND_i386_efi_TRUE@am__EXEEXT_667 = \ @COND_i386_efi_TRUE@ legacy_password_test.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_669 = \ +@COND_x86_64_efi_TRUE@am__EXEEXT_668 = \ @COND_x86_64_efi_TRUE@ legacy_password_test.module$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_670 = \ +@COND_i386_xen_TRUE@am__EXEEXT_669 = \ @COND_i386_xen_TRUE@ legacy_password_test.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_671 = \ +@COND_x86_64_xen_TRUE@am__EXEEXT_670 = \ @COND_x86_64_xen_TRUE@ legacy_password_test.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_672 = \ +@COND_i386_xen_pvh_TRUE@am__EXEEXT_671 = \ @COND_i386_xen_pvh_TRUE@ legacy_password_test.module$(EXEEXT) -@COND_emu_TRUE@am__EXEEXT_673 = div.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_674 = div.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_675 = div.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_676 = div.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_677 = div.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_678 = div.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_679 = div.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_680 = div.module$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_681 = div.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_682 = div.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_683 = div.module$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_684 = div.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_685 = div.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_686 = div.module$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_687 = div.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_688 = div.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_689 = div.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_690 = div.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_691 = efi_gop.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_692 = efi_gop.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_693 = efi_gop.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_694 = efi_gop.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_695 = efi_gop.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_696 = efi_gop.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_697 = efi_gop.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_698 = efi_uga.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_699 = efi_uga.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_700 = vbe.module$(EXEEXT) -@COND_emu_TRUE@am__EXEEXT_701 = video_fb.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_702 = video_fb.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_703 = video_fb.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_704 = video_fb.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_705 = video_fb.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_706 = video_fb.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_707 = video_fb.module$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_708 = video_fb.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_709 = video_fb.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_710 = video_fb.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_711 = video_fb.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_712 = video_fb.module$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_713 = video_fb.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_714 = video_fb.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_715 = video_fb.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__EXEEXT_716 = video_fb.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_717 = video_fb.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_718 = video_fb.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_719 = video_fb.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_720 = video_fb.module$(EXEEXT) -@COND_emu_TRUE@am__EXEEXT_721 = video.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_722 = video.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_723 = video.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_724 = video.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_725 = video.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_726 = video.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_727 = video.module$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_728 = video.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_729 = video.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_730 = video.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_731 = video.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_732 = video.module$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_733 = video.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_734 = video.module$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_735 = video.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__EXEEXT_736 = video.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_737 = video.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_738 = video.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_739 = video.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_740 = video.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_741 = \ +@COND_emu_TRUE@am__EXEEXT_672 = div.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_673 = div.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_674 = div.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_675 = div.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_676 = div.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_677 = div.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_678 = div.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_679 = div.module$(EXEEXT) +@COND_i386_xen_TRUE@am__EXEEXT_680 = div.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__EXEEXT_681 = div.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_682 = div.module$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_683 = div.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_684 = div.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_685 = div.module$(EXEEXT) +@COND_mips_arc_TRUE@am__EXEEXT_686 = div.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_687 = div.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_688 = div.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_689 = div.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_690 = efi_gop.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_691 = efi_gop.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_692 = efi_gop.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_693 = efi_gop.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_694 = efi_gop.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_695 = efi_gop.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_696 = efi_gop.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_697 = efi_uga.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_698 = efi_uga.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_699 = vbe.module$(EXEEXT) +@COND_emu_TRUE@am__EXEEXT_700 = video_fb.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_701 = video_fb.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_702 = video_fb.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_703 = video_fb.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_704 = video_fb.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_705 = video_fb.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_706 = video_fb.module$(EXEEXT) +@COND_i386_xen_TRUE@am__EXEEXT_707 = video_fb.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__EXEEXT_708 = video_fb.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_709 = video_fb.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_710 = video_fb.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_711 = video_fb.module$(EXEEXT) +@COND_mips_arc_TRUE@am__EXEEXT_712 = video_fb.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_713 = video_fb.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_714 = video_fb.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__EXEEXT_715 = video_fb.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_716 = video_fb.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_717 = video_fb.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_718 = video_fb.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_719 = video_fb.module$(EXEEXT) +@COND_emu_TRUE@am__EXEEXT_720 = video.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_721 = video.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_722 = video.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_723 = video.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_724 = video.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_725 = video.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_726 = video.module$(EXEEXT) +@COND_i386_xen_TRUE@am__EXEEXT_727 = video.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__EXEEXT_728 = video.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_729 = video.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_730 = video.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_731 = video.module$(EXEEXT) +@COND_mips_arc_TRUE@am__EXEEXT_732 = video.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_733 = video.module$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_734 = video.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__EXEEXT_735 = video.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_736 = video.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_737 = video.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_738 = video.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_739 = video.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_740 = \ @COND_powerpc_ieee1275_TRUE@ ieee1275_fb.module$(EXEEXT) -@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__EXEEXT_742 = \ +@COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@am__EXEEXT_741 = \ @COND_GRUB_EMU_SDL_TRUE@@COND_emu_TRUE@ sdl.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_743 = ofnet.module$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_744 = ofnet.module$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_745 = ofnet.module$(EXEEXT) -@COND_arm_uboot_TRUE@am__EXEEXT_746 = ubootnet.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_747 = efinet.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_748 = efinet.module$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_749 = efinet.module$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_750 = efinet.module$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_751 = efinet.module$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_752 = efinet.module$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_753 = efinet.module$(EXEEXT) -@COND_emu_TRUE@am__EXEEXT_754 = emunet.module$(EXEEXT) \ +@COND_i386_ieee1275_TRUE@am__EXEEXT_742 = ofnet.module$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_743 = ofnet.module$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_744 = ofnet.module$(EXEEXT) +@COND_arm_uboot_TRUE@am__EXEEXT_745 = ubootnet.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_746 = efinet.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_747 = efinet.module$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_748 = efinet.module$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_749 = efinet.module$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_750 = efinet.module$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_751 = efinet.module$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_752 = efinet.module$(EXEEXT) +@COND_emu_TRUE@am__EXEEXT_753 = emunet.module$(EXEEXT) \ @COND_emu_TRUE@ legacycfg.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_755 = legacycfg.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_756 = legacycfg.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_757 = legacycfg.module$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_758 = legacycfg.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_759 = legacycfg.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_760 = legacycfg.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_761 = backtrace.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_762 = backtrace.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_763 = backtrace.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_764 = backtrace.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_765 = backtrace.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_766 = backtrace.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_767 = backtrace.module$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_768 = backtrace.module$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_769 = backtrace.module$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_770 = backtrace.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_771 = lsapm.module$(EXEEXT) \ +@COND_i386_pc_TRUE@am__EXEEXT_754 = legacycfg.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_755 = legacycfg.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_756 = legacycfg.module$(EXEEXT) +@COND_i386_xen_TRUE@am__EXEEXT_757 = legacycfg.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__EXEEXT_758 = legacycfg.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_759 = legacycfg.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_760 = backtrace.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_761 = backtrace.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_762 = backtrace.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_763 = backtrace.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_764 = backtrace.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_765 = backtrace.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_766 = backtrace.module$(EXEEXT) +@COND_i386_xen_TRUE@am__EXEEXT_767 = backtrace.module$(EXEEXT) +@COND_x86_64_xen_TRUE@am__EXEEXT_768 = backtrace.module$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_769 = backtrace.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_770 = lsapm.module$(EXEEXT) \ @COND_i386_pc_TRUE@ keylayouts.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_772 = keylayouts.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_773 = keylayouts.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_774 = keylayouts.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_775 = keylayouts.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_776 = keylayouts.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_777 = keylayouts.module$(EXEEXT) -@COND_ENABLE_CACHE_STATS_TRUE@am__EXEEXT_778 = \ +@COND_i386_efi_TRUE@am__EXEEXT_771 = keylayouts.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_772 = keylayouts.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_773 = keylayouts.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_774 = keylayouts.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_775 = keylayouts.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_776 = keylayouts.module$(EXEEXT) +@COND_ENABLE_CACHE_STATS_TRUE@am__EXEEXT_777 = \ @COND_ENABLE_CACHE_STATS_TRUE@ cacheinfo.module$(EXEEXT) -@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__EXEEXT_779 = \ +@COND_ENABLE_BOOT_TIME_STATS_TRUE@am__EXEEXT_778 = \ @COND_ENABLE_BOOT_TIME_STATS_TRUE@ boottime.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_780 = gdb.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_781 = gdb.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_782 = gdb.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_783 = gdb.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_784 = gdb.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_785 = gdb.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_786 = tpm.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_787 = rdmsr.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_788 = rdmsr.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_789 = rdmsr.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_790 = rdmsr.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_791 = rdmsr.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_792 = rdmsr.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_793 = rdmsr.module$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_794 = wrmsr.module$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_795 = wrmsr.module$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_796 = wrmsr.module$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_797 = wrmsr.module$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_798 = wrmsr.module$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_799 = wrmsr.module$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_800 = wrmsr.module$(EXEEXT) -@COND_emu_TRUE@am__EXEEXT_801 = kernel.exec$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_802 = kernel.exec$(EXEEXT) -@COND_i386_efi_TRUE@am__EXEEXT_803 = kernel.exec$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_804 = kernel.exec$(EXEEXT) -@COND_i386_coreboot_TRUE@am__EXEEXT_805 = kernel.exec$(EXEEXT) -@COND_i386_multiboot_TRUE@am__EXEEXT_806 = kernel.exec$(EXEEXT) -@COND_i386_ieee1275_TRUE@am__EXEEXT_807 = kernel.exec$(EXEEXT) -@COND_x86_64_efi_TRUE@am__EXEEXT_808 = kernel.exec$(EXEEXT) -@COND_i386_xen_TRUE@am__EXEEXT_809 = kernel.exec$(EXEEXT) -@COND_x86_64_xen_TRUE@am__EXEEXT_810 = kernel.exec$(EXEEXT) -@COND_i386_xen_pvh_TRUE@am__EXEEXT_811 = kernel.exec$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_812 = kernel.exec$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_813 = kernel.exec$(EXEEXT) -@COND_powerpc_ieee1275_TRUE@am__EXEEXT_814 = kernel.exec$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_815 = kernel.exec$(EXEEXT) -@COND_ia64_efi_TRUE@am__EXEEXT_816 = kernel.exec$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_817 = kernel.exec$(EXEEXT) -@COND_arm_uboot_TRUE@am__EXEEXT_818 = kernel.exec$(EXEEXT) -@COND_arm_efi_TRUE@am__EXEEXT_819 = kernel.exec$(EXEEXT) -@COND_arm64_efi_TRUE@am__EXEEXT_820 = kernel.exec$(EXEEXT) -@COND_arm_coreboot_TRUE@am__EXEEXT_821 = kernel.exec$(EXEEXT) -@COND_riscv32_efi_TRUE@am__EXEEXT_822 = kernel.exec$(EXEEXT) -@COND_riscv64_efi_TRUE@am__EXEEXT_823 = kernel.exec$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_824 = boot.image$(EXEEXT) -@COND_i386_qemu_TRUE@am__EXEEXT_825 = boot.image$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_826 = boot.image$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_827 = boot_hybrid.image$(EXEEXT) \ +@COND_i386_pc_TRUE@am__EXEEXT_779 = gdb.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_780 = gdb.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_781 = gdb.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_782 = gdb.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_783 = gdb.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_784 = gdb.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_785 = tpm.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_786 = rdmsr.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_787 = rdmsr.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_788 = rdmsr.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_789 = rdmsr.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_790 = rdmsr.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_791 = rdmsr.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_792 = rdmsr.module$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_793 = wrmsr.module$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_794 = wrmsr.module$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_795 = wrmsr.module$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_796 = wrmsr.module$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_797 = wrmsr.module$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_798 = wrmsr.module$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_799 = wrmsr.module$(EXEEXT) +@COND_emu_TRUE@am__EXEEXT_800 = kernel.exec$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_801 = kernel.exec$(EXEEXT) +@COND_i386_efi_TRUE@am__EXEEXT_802 = kernel.exec$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_803 = kernel.exec$(EXEEXT) +@COND_i386_coreboot_TRUE@am__EXEEXT_804 = kernel.exec$(EXEEXT) +@COND_i386_multiboot_TRUE@am__EXEEXT_805 = kernel.exec$(EXEEXT) +@COND_i386_ieee1275_TRUE@am__EXEEXT_806 = kernel.exec$(EXEEXT) +@COND_x86_64_efi_TRUE@am__EXEEXT_807 = kernel.exec$(EXEEXT) +@COND_i386_xen_TRUE@am__EXEEXT_808 = kernel.exec$(EXEEXT) +@COND_x86_64_xen_TRUE@am__EXEEXT_809 = kernel.exec$(EXEEXT) +@COND_i386_xen_pvh_TRUE@am__EXEEXT_810 = kernel.exec$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_811 = kernel.exec$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_812 = kernel.exec$(EXEEXT) +@COND_powerpc_ieee1275_TRUE@am__EXEEXT_813 = kernel.exec$(EXEEXT) +@COND_mips_arc_TRUE@am__EXEEXT_814 = kernel.exec$(EXEEXT) +@COND_ia64_efi_TRUE@am__EXEEXT_815 = kernel.exec$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_816 = kernel.exec$(EXEEXT) +@COND_arm_uboot_TRUE@am__EXEEXT_817 = kernel.exec$(EXEEXT) +@COND_arm_efi_TRUE@am__EXEEXT_818 = kernel.exec$(EXEEXT) +@COND_arm64_efi_TRUE@am__EXEEXT_819 = kernel.exec$(EXEEXT) +@COND_arm_coreboot_TRUE@am__EXEEXT_820 = kernel.exec$(EXEEXT) +@COND_riscv32_efi_TRUE@am__EXEEXT_821 = kernel.exec$(EXEEXT) +@COND_riscv64_efi_TRUE@am__EXEEXT_822 = kernel.exec$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_823 = boot.image$(EXEEXT) +@COND_i386_qemu_TRUE@am__EXEEXT_824 = boot.image$(EXEEXT) +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_825 = boot.image$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_826 = boot_hybrid.image$(EXEEXT) \ @COND_i386_pc_TRUE@ cdboot.image$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_828 = cdboot.image$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_829 = pxeboot.image$(EXEEXT) \ +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_827 = cdboot.image$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_828 = pxeboot.image$(EXEEXT) \ @COND_i386_pc_TRUE@ diskboot.image$(EXEEXT) -@COND_sparc64_ieee1275_TRUE@am__EXEEXT_830 = diskboot.image$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_831 = lnxboot.image$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_832 = \ +@COND_sparc64_ieee1275_TRUE@am__EXEEXT_829 = diskboot.image$(EXEEXT) +@COND_i386_pc_TRUE@am__EXEEXT_830 = lnxboot.image$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_831 = \ @COND_mips_loongson_TRUE@ xz_decompress.image$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_833 = xz_decompress.image$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_834 = \ +@COND_mips_arc_TRUE@am__EXEEXT_832 = xz_decompress.image$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_833 = \ @COND_mips_qemu_mips_TRUE@ xz_decompress.image$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_835 = \ +@COND_mips_loongson_TRUE@am__EXEEXT_834 = \ @COND_mips_loongson_TRUE@ none_decompress.image$(EXEEXT) -@COND_mips_arc_TRUE@am__EXEEXT_836 = none_decompress.image$(EXEEXT) -@COND_mips_qemu_mips_TRUE@am__EXEEXT_837 = \ +@COND_mips_arc_TRUE@am__EXEEXT_835 = none_decompress.image$(EXEEXT) +@COND_mips_qemu_mips_TRUE@am__EXEEXT_836 = \ @COND_mips_qemu_mips_TRUE@ none_decompress.image$(EXEEXT) -@COND_i386_pc_TRUE@am__EXEEXT_838 = lzma_decompress.image$(EXEEXT) -@COND_mips_loongson_TRUE@am__EXEEXT_839 = fwstart.image$(EXEEXT) \ +@COND_i386_pc_TRUE@am__EXEEXT_837 = lzma_decompress.image$(EXEEXT) +@COND_mips_loongson_TRUE@am__EXEEXT_838 = fwstart.image$(EXEEXT) \ @COND_mips_loongson_TRUE@ fwstart_fuloong2f.image$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) $(platform_PROGRAMS) \ $(sbin_PROGRAMS) @@ -12775,13 +12764,6 @@ shift_test_module_OBJECTS = $(am_shift_test_module_OBJECTS) \ $(nodist_shift_test_module_OBJECTS) shift_test_module_LINK = $(CCLD) $(shift_test_module_CFLAGS) $(CFLAGS) \ $(shift_test_module_LDFLAGS) $(LDFLAGS) -o $@ -am__shim_lock_module_SOURCES_DIST = commands/efi/shim_lock.c -@COND_x86_64_efi_TRUE@am_shim_lock_module_OBJECTS = commands/efi/shim_lock_module-shim_lock.$(OBJEXT) -nodist_shim_lock_module_OBJECTS = -shim_lock_module_OBJECTS = $(am_shim_lock_module_OBJECTS) \ - $(nodist_shim_lock_module_OBJECTS) -shim_lock_module_LINK = $(CCLD) $(shim_lock_module_CFLAGS) $(CFLAGS) \ - $(shim_lock_module_LDFLAGS) $(LDFLAGS) -o $@ am_signature_test_module_OBJECTS = \ tests/signature_test_module-signature_test.$(OBJEXT) nodist_signature_test_module_OBJECTS = @@ -13847,7 +13829,6 @@ SOURCES = $(acpi_module_SOURCES) $(nodist_acpi_module_SOURCES) \ $(nodist_setpci_module_SOURCES) $(sfs_module_SOURCES) \ $(nodist_sfs_module_SOURCES) $(shift_test_module_SOURCES) \ $(nodist_shift_test_module_SOURCES) \ - $(shim_lock_module_SOURCES) $(nodist_shim_lock_module_SOURCES) \ $(signature_test_module_SOURCES) \ $(nodist_signature_test_module_SOURCES) \ $(sleep_module_SOURCES) $(nodist_sleep_module_SOURCES) \ @@ -14078,10 +14059,8 @@ DIST_SOURCES = $(am__acpi_module_SOURCES_DIST) \ $(am__serial_module_SOURCES_DIST) $(setjmp_module_SOURCES) \ $(setjmp_test_module_SOURCES) \ $(am__setpci_module_SOURCES_DIST) $(sfs_module_SOURCES) \ - $(shift_test_module_SOURCES) \ - $(am__shim_lock_module_SOURCES_DIST) \ - $(signature_test_module_SOURCES) $(sleep_module_SOURCES) \ - $(sleep_test_module_SOURCES) \ + $(shift_test_module_SOURCES) $(signature_test_module_SOURCES) \ + $(sleep_module_SOURCES) $(sleep_test_module_SOURCES) \ $(am__spkmodem_module_SOURCES_DIST) $(squash4_module_SOURCES) \ $(strtoull_test_module_SOURCES) \ $(am__suspend_module_SOURCES_DIST) \ @@ -15514,56 +15493,55 @@ MOD_FILES = disk.mod trig.mod $(am__append_8) $(am__append_15) \ $(am__append_2045) $(am__append_2052) $(am__append_2059) \ $(am__append_2066) $(am__append_2073) $(am__append_2080) \ $(am__append_2087) $(am__append_2094) $(am__append_2101) \ - $(am__append_2108) help.mod hexdump.mod keystatus.mod \ - $(am__append_2115) $(am__append_2122) loadenv.mod ls.mod \ - lsmmap.mod $(am__append_2129) $(am__append_2136) \ + help.mod hexdump.mod keystatus.mod $(am__append_2108) \ + $(am__append_2115) loadenv.mod ls.mod lsmmap.mod \ + $(am__append_2122) $(am__append_2129) $(am__append_2136) \ $(am__append_2143) $(am__append_2150) $(am__append_2157) \ - $(am__append_2164) $(am__append_2171) $(am__append_2178) \ - memrw.mod minicmd.mod parttool.mod password.mod \ - password_pbkdf2.mod $(am__append_2185) $(am__append_2192) \ + $(am__append_2164) $(am__append_2171) memrw.mod minicmd.mod \ + parttool.mod password.mod password_pbkdf2.mod \ + $(am__append_2178) $(am__append_2185) $(am__append_2192) \ $(am__append_2199) $(am__append_2206) $(am__append_2213) \ $(am__append_2220) $(am__append_2227) $(am__append_2234) \ $(am__append_2241) $(am__append_2248) $(am__append_2255) \ $(am__append_2262) $(am__append_2269) $(am__append_2276) \ $(am__append_2283) $(am__append_2290) $(am__append_2297) \ $(am__append_2304) $(am__append_2311) $(am__append_2318) \ - $(am__append_2325) probe.mod read.mod search.mod \ - search_fs_file.mod search_fs_uuid.mod search_label.mod \ + probe.mod read.mod search.mod search_fs_file.mod \ + search_fs_uuid.mod search_label.mod $(am__append_2325) \ $(am__append_2332) $(am__append_2339) $(am__append_2346) \ $(am__append_2353) $(am__append_2360) $(am__append_2367) \ $(am__append_2374) $(am__append_2381) $(am__append_2388) \ $(am__append_2395) $(am__append_2402) $(am__append_2409) \ $(am__append_2416) $(am__append_2423) $(am__append_2430) \ - $(am__append_2437) sleep.mod $(am__append_2444) \ - $(am__append_2451) terminal.mod test.mod true.mod \ - $(am__append_2458) $(am__append_2465) $(am__append_2472) \ - $(am__append_2479) $(am__append_2486) $(am__append_2493) \ - $(am__append_2500) $(am__append_2507) $(am__append_2514) \ - videoinfo.mod videotest.mod xnu_uuid.mod dm_nv.mod \ - loopback.mod cryptodisk.mod luks.mod geli.mod lvm.mod ldm.mod \ - mdraid09.mod mdraid09_be.mod mdraid1x.mod diskfilter.mod \ - raid5rec.mod raid6rec.mod scsi.mod memdisk.mod \ - $(am__append_2521) $(am__append_2528) $(am__append_2535) \ - $(am__append_2542) $(am__append_2549) $(am__append_2556) \ - $(am__append_2563) $(am__append_2570) $(am__append_2577) \ - $(am__append_2584) $(am__append_2591) $(am__append_2598) \ - $(am__append_2605) $(am__append_2612) $(am__append_2619) \ - $(am__append_2626) $(am__append_2633) $(am__append_2640) \ - $(am__append_2647) $(am__append_2654) $(am__append_2661) \ - $(am__append_2668) $(am__append_2675) $(am__append_2682) \ - $(am__append_2689) $(am__append_2696) $(am__append_2703) \ - $(am__append_2710) $(am__append_2717) $(am__append_2724) \ - $(am__append_2731) $(am__append_2738) $(am__append_2745) \ - $(am__append_2752) $(am__append_2759) $(am__append_2766) \ - $(am__append_2773) $(am__append_2780) $(am__append_2787) \ - $(am__append_2794) $(am__append_2801) $(am__append_2808) \ - $(am__append_2815) $(am__append_2822) $(am__append_2829) \ - $(am__append_2836) $(am__append_2843) $(am__append_2850) \ - $(am__append_2857) $(am__append_2864) $(am__append_2871) \ - $(am__append_2878) $(am__append_2885) $(am__append_2892) \ - $(am__append_2899) $(am__append_2906) $(am__append_2913) \ - $(am__append_2920) $(am__append_2927) $(am__append_2934) \ - $(am__append_2941) procfs.mod affs.mod afs.mod bfs.mod \ + sleep.mod $(am__append_2437) $(am__append_2444) terminal.mod \ + test.mod true.mod $(am__append_2451) $(am__append_2458) \ + $(am__append_2465) $(am__append_2472) $(am__append_2479) \ + $(am__append_2486) $(am__append_2493) $(am__append_2500) \ + $(am__append_2507) videoinfo.mod videotest.mod xnu_uuid.mod \ + dm_nv.mod loopback.mod cryptodisk.mod luks.mod geli.mod \ + lvm.mod ldm.mod mdraid09.mod mdraid09_be.mod mdraid1x.mod \ + diskfilter.mod raid5rec.mod raid6rec.mod scsi.mod memdisk.mod \ + $(am__append_2514) $(am__append_2521) $(am__append_2528) \ + $(am__append_2535) $(am__append_2542) $(am__append_2549) \ + $(am__append_2556) $(am__append_2563) $(am__append_2570) \ + $(am__append_2577) $(am__append_2584) $(am__append_2591) \ + $(am__append_2598) $(am__append_2605) $(am__append_2612) \ + $(am__append_2619) $(am__append_2626) $(am__append_2633) \ + $(am__append_2640) $(am__append_2647) $(am__append_2654) \ + $(am__append_2661) $(am__append_2668) $(am__append_2675) \ + $(am__append_2682) $(am__append_2689) $(am__append_2696) \ + $(am__append_2703) $(am__append_2710) $(am__append_2717) \ + $(am__append_2724) $(am__append_2731) $(am__append_2738) \ + $(am__append_2745) $(am__append_2752) $(am__append_2759) \ + $(am__append_2766) $(am__append_2773) $(am__append_2780) \ + $(am__append_2787) $(am__append_2794) $(am__append_2801) \ + $(am__append_2808) $(am__append_2815) $(am__append_2822) \ + $(am__append_2829) $(am__append_2836) $(am__append_2843) \ + $(am__append_2850) $(am__append_2857) $(am__append_2864) \ + $(am__append_2871) $(am__append_2878) $(am__append_2885) \ + $(am__append_2892) $(am__append_2899) $(am__append_2906) \ + $(am__append_2913) $(am__append_2920) $(am__append_2927) \ + $(am__append_2934) procfs.mod affs.mod afs.mod bfs.mod \ zstd.mod btrfs.mod archelp.mod cbfs.mod cpio.mod cpio_be.mod \ newc.mod odc.mod ext2.mod fat.mod exfat.mod f2fs.mod \ fshelp.mod hfs.mod hfsplus.mod hfspluscomp.mod iso9660.mod \ @@ -15571,150 +15549,150 @@ MOD_FILES = disk.mod trig.mod $(am__append_8) $(am__append_15) \ minix2_be.mod minix3_be.mod nilfs2.mod ntfs.mod ntfscomp.mod \ reiserfs.mod romfs.mod sfs.mod squash4.mod tar.mod udf.mod \ ufs1.mod ufs1_be.mod ufs2.mod xfs.mod zfs.mod zfscrypt.mod \ - zfsinfo.mod macbless.mod $(am__append_2948) gettext.mod \ - gfxmenu.mod hello.mod gzio.mod offsetio.mod $(am__append_2955) \ - $(am__append_2962) $(am__append_2969) $(am__append_2976) \ - $(am__append_2983) $(am__append_2990) $(am__append_2997) \ - $(am__append_3004) $(am__append_3011) $(am__append_3018) \ - $(am__append_3025) $(am__append_3032) $(am__append_3039) \ - $(am__append_3046) $(am__append_3053) $(am__append_3060) \ - $(am__append_3067) $(am__append_3074) $(am__append_3081) \ - $(am__append_3088) elf.mod crypto.mod pbkdf2.mod \ - $(am__append_3095) $(am__append_3102) $(am__append_3109) \ - $(am__append_3116) $(am__append_3123) $(am__append_3130) \ - $(am__append_3137) $(am__append_3144) $(am__append_3151) \ - $(am__append_3158) $(am__append_3165) $(am__append_3172) \ - $(am__append_3179) $(am__append_3186) $(am__append_3193) \ - $(am__append_3200) $(am__append_3207) $(am__append_3214) \ - $(am__append_3221) $(am__append_3228) $(am__append_3235) \ - $(am__append_3242) $(am__append_3249) $(am__append_3256) \ - $(am__append_3263) $(am__append_3270) $(am__append_3277) \ - $(am__append_3284) $(am__append_3291) $(am__append_3298) \ - $(am__append_3305) $(am__append_3312) $(am__append_3319) \ - $(am__append_3326) $(am__append_3333) $(am__append_3340) \ - setjmp.mod $(am__append_3347) $(am__append_3354) \ - $(am__append_3361) $(am__append_3368) $(am__append_3375) \ - $(am__append_3382) $(am__append_3389) $(am__append_3396) \ - $(am__append_3403) $(am__append_3410) $(am__append_3417) \ - $(am__append_3424) $(am__append_3431) $(am__append_3438) \ - $(am__append_3445) $(am__append_3452) $(am__append_3459) \ - $(am__append_3466) $(am__append_3473) $(am__append_3480) \ - $(am__append_3487) $(am__append_3494) $(am__append_3501) \ - $(am__append_3508) $(am__append_3515) $(am__append_3522) \ - $(am__append_3529) $(am__append_3536) $(am__append_3543) \ - $(am__append_3550) $(am__append_3557) $(am__append_3564) \ - $(am__append_3571) $(am__append_3578) $(am__append_3585) \ - $(am__append_3592) $(am__append_3599) $(am__append_3606) \ - $(am__append_3613) $(am__append_3620) $(am__append_3627) \ - $(am__append_3634) $(am__append_3641) $(am__append_3648) \ - $(am__append_3655) $(am__append_3662) $(am__append_3669) \ - $(am__append_3676) $(am__append_3683) $(am__append_3690) \ - $(am__append_3697) $(am__append_3704) $(am__append_3711) \ - $(am__append_3718) $(am__append_3725) $(am__append_3732) \ - $(am__append_3739) $(am__append_3746) $(am__append_3753) \ - $(am__append_3760) $(am__append_3767) $(am__append_3774) \ - $(am__append_3781) $(am__append_3788) $(am__append_3795) \ - $(am__append_3802) $(am__append_3809) $(am__append_3816) \ - $(am__append_3823) $(am__append_3830) $(am__append_3837) \ - $(am__append_3844) $(am__append_3851) $(am__append_3858) \ - $(am__append_3865) $(am__append_3872) $(am__append_3879) \ - $(am__append_3886) macho.mod $(am__append_3893) \ - $(am__append_3900) $(am__append_3907) $(am__append_3914) \ - $(am__append_3921) $(am__append_3928) $(am__append_3935) \ - $(am__append_3942) $(am__append_3949) $(am__append_3956) \ - $(am__append_3963) $(am__append_3970) $(am__append_3977) \ - $(am__append_3984) $(am__append_3991) $(am__append_3998) \ - $(am__append_4005) $(am__append_4012) $(am__append_4019) \ - $(am__append_4026) $(am__append_4033) $(am__append_4040) \ - $(am__append_4047) $(am__append_4054) $(am__append_4061) \ - $(am__append_4068) $(am__append_4075) normal.mod \ + zfsinfo.mod macbless.mod $(am__append_2941) gettext.mod \ + gfxmenu.mod hello.mod gzio.mod offsetio.mod $(am__append_2948) \ + $(am__append_2955) $(am__append_2962) $(am__append_2969) \ + $(am__append_2976) $(am__append_2983) $(am__append_2990) \ + $(am__append_2997) $(am__append_3004) $(am__append_3011) \ + $(am__append_3018) $(am__append_3025) $(am__append_3032) \ + $(am__append_3039) $(am__append_3046) $(am__append_3053) \ + $(am__append_3060) $(am__append_3067) $(am__append_3074) \ + $(am__append_3081) elf.mod crypto.mod pbkdf2.mod \ + $(am__append_3088) $(am__append_3095) $(am__append_3102) \ + $(am__append_3109) $(am__append_3116) $(am__append_3123) \ + $(am__append_3130) $(am__append_3137) $(am__append_3144) \ + $(am__append_3151) $(am__append_3158) $(am__append_3165) \ + $(am__append_3172) $(am__append_3179) $(am__append_3186) \ + $(am__append_3193) $(am__append_3200) $(am__append_3207) \ + $(am__append_3214) $(am__append_3221) $(am__append_3228) \ + $(am__append_3235) $(am__append_3242) $(am__append_3249) \ + $(am__append_3256) $(am__append_3263) $(am__append_3270) \ + $(am__append_3277) $(am__append_3284) $(am__append_3291) \ + $(am__append_3298) $(am__append_3305) $(am__append_3312) \ + $(am__append_3319) $(am__append_3326) $(am__append_3333) \ + setjmp.mod $(am__append_3340) $(am__append_3347) \ + $(am__append_3354) $(am__append_3361) $(am__append_3368) \ + $(am__append_3375) $(am__append_3382) $(am__append_3389) \ + $(am__append_3396) $(am__append_3403) $(am__append_3410) \ + $(am__append_3417) $(am__append_3424) $(am__append_3431) \ + $(am__append_3438) $(am__append_3445) $(am__append_3452) \ + $(am__append_3459) $(am__append_3466) $(am__append_3473) \ + $(am__append_3480) $(am__append_3487) $(am__append_3494) \ + $(am__append_3501) $(am__append_3508) $(am__append_3515) \ + $(am__append_3522) $(am__append_3529) $(am__append_3536) \ + $(am__append_3543) $(am__append_3550) $(am__append_3557) \ + $(am__append_3564) $(am__append_3571) $(am__append_3578) \ + $(am__append_3585) $(am__append_3592) $(am__append_3599) \ + $(am__append_3606) $(am__append_3613) $(am__append_3620) \ + $(am__append_3627) $(am__append_3634) $(am__append_3641) \ + $(am__append_3648) $(am__append_3655) $(am__append_3662) \ + $(am__append_3669) $(am__append_3676) $(am__append_3683) \ + $(am__append_3690) $(am__append_3697) $(am__append_3704) \ + $(am__append_3711) $(am__append_3718) $(am__append_3725) \ + $(am__append_3732) $(am__append_3739) $(am__append_3746) \ + $(am__append_3753) $(am__append_3760) $(am__append_3767) \ + $(am__append_3774) $(am__append_3781) $(am__append_3788) \ + $(am__append_3795) $(am__append_3802) $(am__append_3809) \ + $(am__append_3816) $(am__append_3823) $(am__append_3830) \ + $(am__append_3837) $(am__append_3844) $(am__append_3851) \ + $(am__append_3858) $(am__append_3865) $(am__append_3872) \ + $(am__append_3879) macho.mod $(am__append_3886) \ + $(am__append_3893) $(am__append_3900) $(am__append_3907) \ + $(am__append_3914) $(am__append_3921) $(am__append_3928) \ + $(am__append_3935) $(am__append_3942) $(am__append_3949) \ + $(am__append_3956) $(am__append_3963) $(am__append_3970) \ + $(am__append_3977) $(am__append_3984) $(am__append_3991) \ + $(am__append_3998) $(am__append_4005) $(am__append_4012) \ + $(am__append_4019) $(am__append_4026) $(am__append_4033) \ + $(am__append_4040) $(am__append_4047) $(am__append_4054) \ + $(am__append_4061) $(am__append_4068) normal.mod \ part_acorn.mod part_amiga.mod part_apple.mod part_gpt.mod \ part_msdos.mod part_sun.mod part_plan.mod part_dvh.mod \ part_bsd.mod part_sunpc.mod part_dfly.mod msdospart.mod \ - $(am__append_4082) $(am__append_4089) $(am__append_4096) \ - $(am__append_4103) $(am__append_4110) $(am__append_4117) \ - $(am__append_4124) $(am__append_4131) $(am__append_4138) \ - $(am__append_4145) $(am__append_4152) $(am__append_4159) \ - $(am__append_4166) $(am__append_4173) $(am__append_4180) \ - $(am__append_4187) $(am__append_4194) $(am__append_4201) \ - $(am__append_4208) $(am__append_4215) $(am__append_4222) \ - $(am__append_4229) $(am__append_4236) $(am__append_4243) \ - $(am__append_4250) $(am__append_4257) $(am__append_4264) \ - gfxterm_background.mod $(am__append_4271) $(am__append_4278) \ - $(am__append_4285) $(am__append_4292) $(am__append_4299) \ - $(am__append_4306) $(am__append_4313) $(am__append_4320) \ - $(am__append_4327) $(am__append_4334) $(am__append_4341) \ - $(am__append_4348) $(am__append_4355) $(am__append_4362) \ - $(am__append_4369) $(am__append_4376) $(am__append_4383) \ - $(am__append_4390) $(am__append_4397) $(am__append_4404) \ - $(am__append_4411) $(am__append_4418) $(am__append_4425) \ - $(am__append_4432) $(am__append_4439) $(am__append_4446) \ - $(am__append_4453) $(am__append_4460) $(am__append_4467) \ - $(am__append_4474) $(am__append_4481) $(am__append_4488) \ - $(am__append_4495) $(am__append_4502) $(am__append_4509) \ - $(am__append_4516) $(am__append_4523) $(am__append_4530) \ - $(am__append_4537) $(am__append_4544) $(am__append_4551) \ - $(am__append_4558) $(am__append_4565) $(am__append_4572) \ - $(am__append_4579) $(am__append_4586) $(am__append_4593) \ - $(am__append_4600) $(am__append_4607) $(am__append_4614) \ - $(am__append_4621) $(am__append_4628) $(am__append_4635) \ - $(am__append_4642) $(am__append_4649) functional_test.mod \ + $(am__append_4075) $(am__append_4082) $(am__append_4089) \ + $(am__append_4096) $(am__append_4103) $(am__append_4110) \ + $(am__append_4117) $(am__append_4124) $(am__append_4131) \ + $(am__append_4138) $(am__append_4145) $(am__append_4152) \ + $(am__append_4159) $(am__append_4166) $(am__append_4173) \ + $(am__append_4180) $(am__append_4187) $(am__append_4194) \ + $(am__append_4201) $(am__append_4208) $(am__append_4215) \ + $(am__append_4222) $(am__append_4229) $(am__append_4236) \ + $(am__append_4243) $(am__append_4250) $(am__append_4257) \ + gfxterm_background.mod $(am__append_4264) $(am__append_4271) \ + $(am__append_4278) $(am__append_4285) $(am__append_4292) \ + $(am__append_4299) $(am__append_4306) $(am__append_4313) \ + $(am__append_4320) $(am__append_4327) $(am__append_4334) \ + $(am__append_4341) $(am__append_4348) $(am__append_4355) \ + $(am__append_4362) $(am__append_4369) $(am__append_4376) \ + $(am__append_4383) $(am__append_4390) $(am__append_4397) \ + $(am__append_4404) $(am__append_4411) $(am__append_4418) \ + $(am__append_4425) $(am__append_4432) $(am__append_4439) \ + $(am__append_4446) $(am__append_4453) $(am__append_4460) \ + $(am__append_4467) $(am__append_4474) $(am__append_4481) \ + $(am__append_4488) $(am__append_4495) $(am__append_4502) \ + $(am__append_4509) $(am__append_4516) $(am__append_4523) \ + $(am__append_4530) $(am__append_4537) $(am__append_4544) \ + $(am__append_4551) $(am__append_4558) $(am__append_4565) \ + $(am__append_4572) $(am__append_4579) $(am__append_4586) \ + $(am__append_4593) $(am__append_4600) $(am__append_4607) \ + $(am__append_4614) $(am__append_4621) $(am__append_4628) \ + $(am__append_4635) $(am__append_4642) functional_test.mod \ exfctest.mod strtoull_test.mod setjmp_test.mod \ signature_test.mod sleep_test.mod xnu_uuid_test.mod \ - pbkdf2_test.mod $(am__append_4656) $(am__append_4663) \ - $(am__append_4670) $(am__append_4677) $(am__append_4684) \ - $(am__append_4691) $(am__append_4698) $(am__append_4705) \ - $(am__append_4712) $(am__append_4719) $(am__append_4726) \ - $(am__append_4733) $(am__append_4740) $(am__append_4747) \ - $(am__append_4754) $(am__append_4761) $(am__append_4768) \ - $(am__append_4775) $(am__append_4782) $(am__append_4789) \ - $(am__append_4796) $(am__append_4803) $(am__append_4810) \ - $(am__append_4817) $(am__append_4824) div_test.mod \ + pbkdf2_test.mod $(am__append_4649) $(am__append_4656) \ + $(am__append_4663) $(am__append_4670) $(am__append_4677) \ + $(am__append_4684) $(am__append_4691) $(am__append_4698) \ + $(am__append_4705) $(am__append_4712) $(am__append_4719) \ + $(am__append_4726) $(am__append_4733) $(am__append_4740) \ + $(am__append_4747) $(am__append_4754) $(am__append_4761) \ + $(am__append_4768) $(am__append_4775) $(am__append_4782) \ + $(am__append_4789) $(am__append_4796) $(am__append_4803) \ + $(am__append_4810) $(am__append_4817) div_test.mod \ mul_test.mod shift_test.mod cmp_test.mod ctz_test.mod \ bswap_test.mod videotest_checksum.mod gfxterm_menu.mod \ cmdline_cat_test.mod bitmap.mod bitmap_scale.mod \ - $(am__append_4831) $(am__append_4838) $(am__append_4845) \ - $(am__append_4852) $(am__append_4859) $(am__append_4866) \ - $(am__append_4873) $(am__append_4880) $(am__append_4887) \ - jpeg.mod png.mod tga.mod $(am__append_4894) $(am__append_4901) \ - $(am__append_4908) $(am__append_4915) $(am__append_4922) \ - $(am__append_4929) $(am__append_4936) $(am__append_4943) \ - $(am__append_4950) $(am__append_4957) $(am__append_4964) \ - $(am__append_4971) $(am__append_4978) $(am__append_4985) \ - $(am__append_4992) $(am__append_4999) $(am__append_5006) \ - $(am__append_5013) $(am__append_5020) $(am__append_5027) \ - $(am__append_5034) $(am__append_5041) $(am__append_5048) \ - $(am__append_5055) $(am__append_5062) $(am__append_5069) \ - $(am__append_5076) $(am__append_5083) $(am__append_5090) \ - $(am__append_5097) $(am__append_5104) $(am__append_5111) \ - $(am__append_5118) $(am__append_5125) $(am__append_5132) \ - $(am__append_5139) $(am__append_5146) $(am__append_5153) \ - $(am__append_5160) $(am__append_5167) $(am__append_5174) \ - video_colors.mod $(am__append_5181) $(am__append_5188) \ - datehook.mod net.mod tftp.mod http.mod $(am__append_5195) \ - $(am__append_5202) $(am__append_5209) $(am__append_5216) \ - $(am__append_5223) $(am__append_5230) $(am__append_5237) \ - $(am__append_5244) $(am__append_5251) $(am__append_5258) \ - $(am__append_5265) $(am__append_5272) $(am__append_5279) \ - $(am__append_5286) $(am__append_5293) $(am__append_5300) \ - $(am__append_5307) $(am__append_5314) syslinuxcfg.mod \ + $(am__append_4824) $(am__append_4831) $(am__append_4838) \ + $(am__append_4845) $(am__append_4852) $(am__append_4859) \ + $(am__append_4866) $(am__append_4873) $(am__append_4880) \ + jpeg.mod png.mod tga.mod $(am__append_4887) $(am__append_4894) \ + $(am__append_4901) $(am__append_4908) $(am__append_4915) \ + $(am__append_4922) $(am__append_4929) $(am__append_4936) \ + $(am__append_4943) $(am__append_4950) $(am__append_4957) \ + $(am__append_4964) $(am__append_4971) $(am__append_4978) \ + $(am__append_4985) $(am__append_4992) $(am__append_4999) \ + $(am__append_5006) $(am__append_5013) $(am__append_5020) \ + $(am__append_5027) $(am__append_5034) $(am__append_5041) \ + $(am__append_5048) $(am__append_5055) $(am__append_5062) \ + $(am__append_5069) $(am__append_5076) $(am__append_5083) \ + $(am__append_5090) $(am__append_5097) $(am__append_5104) \ + $(am__append_5111) $(am__append_5118) $(am__append_5125) \ + $(am__append_5132) $(am__append_5139) $(am__append_5146) \ + $(am__append_5153) $(am__append_5160) $(am__append_5167) \ + video_colors.mod $(am__append_5174) $(am__append_5181) \ + datehook.mod net.mod tftp.mod http.mod $(am__append_5188) \ + $(am__append_5195) $(am__append_5202) $(am__append_5209) \ + $(am__append_5216) $(am__append_5223) $(am__append_5230) \ + $(am__append_5237) $(am__append_5244) $(am__append_5251) \ + $(am__append_5258) $(am__append_5265) $(am__append_5272) \ + $(am__append_5279) $(am__append_5286) $(am__append_5293) \ + $(am__append_5300) $(am__append_5307) syslinuxcfg.mod \ test_blockarg.mod xzio.mod lzopio.mod testload.mod \ - $(am__append_5321) $(am__append_5328) $(am__append_5335) \ - $(am__append_5342) $(am__append_5349) $(am__append_5356) \ - $(am__append_5363) $(am__append_5370) $(am__append_5377) \ - $(am__append_5384) $(am__append_5391) $(am__append_5398) \ - $(am__append_5405) $(am__append_5412) $(am__append_5419) \ - $(am__append_5426) $(am__append_5433) priority_queue.mod \ - time.mod $(am__append_5440) $(am__append_5447) adler32.mod \ - crc64.mod mpi.mod all_video.mod $(am__append_5454) \ - $(am__append_5461) $(am__append_5468) $(am__append_5475) \ - $(am__append_5482) $(am__append_5489) testspeed.mod \ - $(am__append_5496) tr.mod progress.mod file.mod \ - $(am__append_5503) $(am__append_5510) $(am__append_5517) \ - $(am__append_5524) $(am__append_5531) $(am__append_5538) \ - $(am__append_5545) $(am__append_5552) $(am__append_5559) \ - $(am__append_5566) $(am__append_5573) $(am__append_5580) \ - $(am__append_5587) $(am__append_5594) gcry_arcfour.mod \ + $(am__append_5314) $(am__append_5321) $(am__append_5328) \ + $(am__append_5335) $(am__append_5342) $(am__append_5349) \ + $(am__append_5356) $(am__append_5363) $(am__append_5370) \ + $(am__append_5377) $(am__append_5384) $(am__append_5391) \ + $(am__append_5398) $(am__append_5405) $(am__append_5412) \ + $(am__append_5419) $(am__append_5426) priority_queue.mod \ + time.mod $(am__append_5433) $(am__append_5440) adler32.mod \ + crc64.mod mpi.mod all_video.mod $(am__append_5447) \ + $(am__append_5454) $(am__append_5461) $(am__append_5468) \ + $(am__append_5475) $(am__append_5482) testspeed.mod \ + $(am__append_5489) tr.mod progress.mod file.mod \ + $(am__append_5496) $(am__append_5503) $(am__append_5510) \ + $(am__append_5517) $(am__append_5524) $(am__append_5531) \ + $(am__append_5538) $(am__append_5545) $(am__append_5552) \ + $(am__append_5559) $(am__append_5566) $(am__append_5573) \ + $(am__append_5580) $(am__append_5587) gcry_arcfour.mod \ gcry_blowfish.mod gcry_camellia.mod gcry_cast5.mod \ gcry_crc.mod gcry_des.mod gcry_dsa.mod gcry_idea.mod \ gcry_md4.mod gcry_md5.mod gcry_rfc2268.mod gcry_rijndael.mod \ @@ -15826,72 +15804,71 @@ MODULE_FILES = disk.module$(EXEEXT) trig.module$(EXEEXT) \ hashsum.module$(EXEEXT) pgp.module$(EXEEXT) $(am__append_2041) \ $(am__append_2048) $(am__append_2055) $(am__append_2062) \ $(am__append_2069) $(am__append_2076) $(am__append_2083) \ - $(am__append_2090) $(am__append_2097) $(am__append_2104) \ - help.module$(EXEEXT) hexdump.module$(EXEEXT) \ - keystatus.module$(EXEEXT) $(am__append_2111) \ - $(am__append_2118) loadenv.module$(EXEEXT) ls.module$(EXEEXT) \ - lsmmap.module$(EXEEXT) $(am__append_2125) $(am__append_2132) \ - $(am__append_2139) $(am__append_2146) $(am__append_2153) \ - $(am__append_2160) $(am__append_2167) $(am__append_2174) \ - memrw.module$(EXEEXT) minicmd.module$(EXEEXT) \ - parttool.module$(EXEEXT) password.module$(EXEEXT) \ - password_pbkdf2.module$(EXEEXT) $(am__append_2181) \ - $(am__append_2188) $(am__append_2195) $(am__append_2202) \ - $(am__append_2209) $(am__append_2216) $(am__append_2223) \ - $(am__append_2230) $(am__append_2237) $(am__append_2244) \ - $(am__append_2251) $(am__append_2258) $(am__append_2265) \ - $(am__append_2272) $(am__append_2279) $(am__append_2286) \ - $(am__append_2293) $(am__append_2300) $(am__append_2307) \ - $(am__append_2314) $(am__append_2321) probe.module$(EXEEXT) \ - read.module$(EXEEXT) search.module$(EXEEXT) \ - search_fs_file.module$(EXEEXT) search_fs_uuid.module$(EXEEXT) \ - search_label.module$(EXEEXT) $(am__append_2328) \ - $(am__append_2335) $(am__append_2342) $(am__append_2349) \ - $(am__append_2356) $(am__append_2363) $(am__append_2370) \ - $(am__append_2377) $(am__append_2384) $(am__append_2391) \ - $(am__append_2398) $(am__append_2405) $(am__append_2412) \ - $(am__append_2419) $(am__append_2426) $(am__append_2433) \ - sleep.module$(EXEEXT) $(am__append_2440) $(am__append_2447) \ - terminal.module$(EXEEXT) test.module$(EXEEXT) \ - true.module$(EXEEXT) $(am__append_2454) $(am__append_2461) \ - $(am__append_2468) $(am__append_2475) $(am__append_2482) \ - $(am__append_2489) $(am__append_2496) $(am__append_2503) \ - $(am__append_2510) videoinfo.module$(EXEEXT) \ - videotest.module$(EXEEXT) xnu_uuid.module$(EXEEXT) \ - dm_nv.module$(EXEEXT) loopback.module$(EXEEXT) \ - cryptodisk.module$(EXEEXT) luks.module$(EXEEXT) \ - geli.module$(EXEEXT) lvm.module$(EXEEXT) ldm.module$(EXEEXT) \ - mdraid09.module$(EXEEXT) mdraid09_be.module$(EXEEXT) \ - mdraid1x.module$(EXEEXT) diskfilter.module$(EXEEXT) \ - raid5rec.module$(EXEEXT) raid6rec.module$(EXEEXT) \ - scsi.module$(EXEEXT) memdisk.module$(EXEEXT) \ - $(am__append_2517) $(am__append_2524) $(am__append_2531) \ - $(am__append_2538) $(am__append_2545) $(am__append_2552) \ - $(am__append_2559) $(am__append_2566) $(am__append_2573) \ - $(am__append_2580) $(am__append_2587) $(am__append_2594) \ - $(am__append_2601) $(am__append_2608) $(am__append_2615) \ - $(am__append_2622) $(am__append_2629) $(am__append_2636) \ - $(am__append_2643) $(am__append_2650) $(am__append_2657) \ - $(am__append_2664) $(am__append_2671) $(am__append_2678) \ - $(am__append_2685) $(am__append_2692) $(am__append_2699) \ - $(am__append_2706) $(am__append_2713) $(am__append_2720) \ - $(am__append_2727) $(am__append_2734) $(am__append_2741) \ - $(am__append_2748) $(am__append_2755) $(am__append_2762) \ - $(am__append_2769) $(am__append_2776) $(am__append_2783) \ - $(am__append_2790) $(am__append_2797) $(am__append_2804) \ - $(am__append_2811) $(am__append_2818) $(am__append_2825) \ - $(am__append_2832) $(am__append_2839) $(am__append_2846) \ - $(am__append_2853) $(am__append_2860) $(am__append_2867) \ - $(am__append_2874) $(am__append_2881) $(am__append_2888) \ - $(am__append_2895) $(am__append_2902) $(am__append_2909) \ - $(am__append_2916) $(am__append_2923) $(am__append_2930) \ - $(am__append_2937) procfs.module$(EXEEXT) affs.module$(EXEEXT) \ - afs.module$(EXEEXT) bfs.module$(EXEEXT) zstd.module$(EXEEXT) \ - btrfs.module$(EXEEXT) archelp.module$(EXEEXT) \ - cbfs.module$(EXEEXT) cpio.module$(EXEEXT) \ - cpio_be.module$(EXEEXT) newc.module$(EXEEXT) \ - odc.module$(EXEEXT) ext2.module$(EXEEXT) fat.module$(EXEEXT) \ - exfat.module$(EXEEXT) f2fs.module$(EXEEXT) \ + $(am__append_2090) $(am__append_2097) help.module$(EXEEXT) \ + hexdump.module$(EXEEXT) keystatus.module$(EXEEXT) \ + $(am__append_2104) $(am__append_2111) loadenv.module$(EXEEXT) \ + ls.module$(EXEEXT) lsmmap.module$(EXEEXT) $(am__append_2118) \ + $(am__append_2125) $(am__append_2132) $(am__append_2139) \ + $(am__append_2146) $(am__append_2153) $(am__append_2160) \ + $(am__append_2167) memrw.module$(EXEEXT) \ + minicmd.module$(EXEEXT) parttool.module$(EXEEXT) \ + password.module$(EXEEXT) password_pbkdf2.module$(EXEEXT) \ + $(am__append_2174) $(am__append_2181) $(am__append_2188) \ + $(am__append_2195) $(am__append_2202) $(am__append_2209) \ + $(am__append_2216) $(am__append_2223) $(am__append_2230) \ + $(am__append_2237) $(am__append_2244) $(am__append_2251) \ + $(am__append_2258) $(am__append_2265) $(am__append_2272) \ + $(am__append_2279) $(am__append_2286) $(am__append_2293) \ + $(am__append_2300) $(am__append_2307) $(am__append_2314) \ + probe.module$(EXEEXT) read.module$(EXEEXT) \ + search.module$(EXEEXT) search_fs_file.module$(EXEEXT) \ + search_fs_uuid.module$(EXEEXT) search_label.module$(EXEEXT) \ + $(am__append_2321) $(am__append_2328) $(am__append_2335) \ + $(am__append_2342) $(am__append_2349) $(am__append_2356) \ + $(am__append_2363) $(am__append_2370) $(am__append_2377) \ + $(am__append_2384) $(am__append_2391) $(am__append_2398) \ + $(am__append_2405) $(am__append_2412) $(am__append_2419) \ + $(am__append_2426) sleep.module$(EXEEXT) $(am__append_2433) \ + $(am__append_2440) terminal.module$(EXEEXT) \ + test.module$(EXEEXT) true.module$(EXEEXT) $(am__append_2447) \ + $(am__append_2454) $(am__append_2461) $(am__append_2468) \ + $(am__append_2475) $(am__append_2482) $(am__append_2489) \ + $(am__append_2496) $(am__append_2503) \ + videoinfo.module$(EXEEXT) videotest.module$(EXEEXT) \ + xnu_uuid.module$(EXEEXT) dm_nv.module$(EXEEXT) \ + loopback.module$(EXEEXT) cryptodisk.module$(EXEEXT) \ + luks.module$(EXEEXT) geli.module$(EXEEXT) lvm.module$(EXEEXT) \ + ldm.module$(EXEEXT) mdraid09.module$(EXEEXT) \ + mdraid09_be.module$(EXEEXT) mdraid1x.module$(EXEEXT) \ + diskfilter.module$(EXEEXT) raid5rec.module$(EXEEXT) \ + raid6rec.module$(EXEEXT) scsi.module$(EXEEXT) \ + memdisk.module$(EXEEXT) $(am__append_2510) $(am__append_2517) \ + $(am__append_2524) $(am__append_2531) $(am__append_2538) \ + $(am__append_2545) $(am__append_2552) $(am__append_2559) \ + $(am__append_2566) $(am__append_2573) $(am__append_2580) \ + $(am__append_2587) $(am__append_2594) $(am__append_2601) \ + $(am__append_2608) $(am__append_2615) $(am__append_2622) \ + $(am__append_2629) $(am__append_2636) $(am__append_2643) \ + $(am__append_2650) $(am__append_2657) $(am__append_2664) \ + $(am__append_2671) $(am__append_2678) $(am__append_2685) \ + $(am__append_2692) $(am__append_2699) $(am__append_2706) \ + $(am__append_2713) $(am__append_2720) $(am__append_2727) \ + $(am__append_2734) $(am__append_2741) $(am__append_2748) \ + $(am__append_2755) $(am__append_2762) $(am__append_2769) \ + $(am__append_2776) $(am__append_2783) $(am__append_2790) \ + $(am__append_2797) $(am__append_2804) $(am__append_2811) \ + $(am__append_2818) $(am__append_2825) $(am__append_2832) \ + $(am__append_2839) $(am__append_2846) $(am__append_2853) \ + $(am__append_2860) $(am__append_2867) $(am__append_2874) \ + $(am__append_2881) $(am__append_2888) $(am__append_2895) \ + $(am__append_2902) $(am__append_2909) $(am__append_2916) \ + $(am__append_2923) $(am__append_2930) procfs.module$(EXEEXT) \ + affs.module$(EXEEXT) afs.module$(EXEEXT) bfs.module$(EXEEXT) \ + zstd.module$(EXEEXT) btrfs.module$(EXEEXT) \ + archelp.module$(EXEEXT) cbfs.module$(EXEEXT) \ + cpio.module$(EXEEXT) cpio_be.module$(EXEEXT) \ + newc.module$(EXEEXT) odc.module$(EXEEXT) ext2.module$(EXEEXT) \ + fat.module$(EXEEXT) exfat.module$(EXEEXT) f2fs.module$(EXEEXT) \ fshelp.module$(EXEEXT) hfs.module$(EXEEXT) \ hfsplus.module$(EXEEXT) hfspluscomp.module$(EXEEXT) \ iso9660.module$(EXEEXT) jfs.module$(EXEEXT) \ @@ -15906,166 +15883,166 @@ MODULE_FILES = disk.module$(EXEEXT) trig.module$(EXEEXT) \ ufs1_be.module$(EXEEXT) ufs2.module$(EXEEXT) \ xfs.module$(EXEEXT) zfs.module$(EXEEXT) \ zfscrypt.module$(EXEEXT) zfsinfo.module$(EXEEXT) \ - macbless.module$(EXEEXT) $(am__append_2944) \ + macbless.module$(EXEEXT) $(am__append_2937) \ gettext.module$(EXEEXT) gfxmenu.module$(EXEEXT) \ hello.module$(EXEEXT) gzio.module$(EXEEXT) \ - offsetio.module$(EXEEXT) $(am__append_2951) $(am__append_2958) \ - $(am__append_2965) $(am__append_2972) $(am__append_2979) \ - $(am__append_2986) $(am__append_2993) $(am__append_3000) \ - $(am__append_3007) $(am__append_3014) $(am__append_3021) \ - $(am__append_3028) $(am__append_3035) $(am__append_3042) \ - $(am__append_3049) $(am__append_3056) $(am__append_3063) \ - $(am__append_3070) $(am__append_3077) $(am__append_3084) \ + offsetio.module$(EXEEXT) $(am__append_2944) $(am__append_2951) \ + $(am__append_2958) $(am__append_2965) $(am__append_2972) \ + $(am__append_2979) $(am__append_2986) $(am__append_2993) \ + $(am__append_3000) $(am__append_3007) $(am__append_3014) \ + $(am__append_3021) $(am__append_3028) $(am__append_3035) \ + $(am__append_3042) $(am__append_3049) $(am__append_3056) \ + $(am__append_3063) $(am__append_3070) $(am__append_3077) \ elf.module$(EXEEXT) crypto.module$(EXEEXT) \ - pbkdf2.module$(EXEEXT) $(am__append_3091) $(am__append_3098) \ - $(am__append_3105) $(am__append_3112) $(am__append_3119) \ - $(am__append_3126) $(am__append_3133) $(am__append_3140) \ - $(am__append_3147) $(am__append_3154) $(am__append_3161) \ - $(am__append_3168) $(am__append_3175) $(am__append_3182) \ - $(am__append_3189) $(am__append_3196) $(am__append_3203) \ - $(am__append_3210) $(am__append_3217) $(am__append_3224) \ - $(am__append_3231) $(am__append_3238) $(am__append_3245) \ - $(am__append_3252) $(am__append_3259) $(am__append_3266) \ - $(am__append_3273) $(am__append_3280) $(am__append_3287) \ - $(am__append_3294) $(am__append_3301) $(am__append_3308) \ - $(am__append_3315) $(am__append_3322) $(am__append_3329) \ - $(am__append_3336) setjmp.module$(EXEEXT) $(am__append_3343) \ - $(am__append_3350) $(am__append_3357) $(am__append_3364) \ - $(am__append_3371) $(am__append_3378) $(am__append_3385) \ - $(am__append_3392) $(am__append_3399) $(am__append_3406) \ - $(am__append_3413) $(am__append_3420) $(am__append_3427) \ - $(am__append_3434) $(am__append_3441) $(am__append_3448) \ - $(am__append_3455) $(am__append_3462) $(am__append_3469) \ - $(am__append_3476) $(am__append_3483) $(am__append_3490) \ - $(am__append_3497) $(am__append_3504) $(am__append_3511) \ - $(am__append_3518) $(am__append_3525) $(am__append_3532) \ - $(am__append_3539) $(am__append_3546) $(am__append_3553) \ - $(am__append_3560) $(am__append_3567) $(am__append_3574) \ - $(am__append_3581) $(am__append_3588) $(am__append_3595) \ - $(am__append_3602) $(am__append_3609) $(am__append_3616) \ - $(am__append_3623) $(am__append_3630) $(am__append_3637) \ - $(am__append_3644) $(am__append_3651) $(am__append_3658) \ - $(am__append_3665) $(am__append_3672) $(am__append_3679) \ - $(am__append_3686) $(am__append_3693) $(am__append_3700) \ - $(am__append_3707) $(am__append_3714) $(am__append_3721) \ - $(am__append_3728) $(am__append_3735) $(am__append_3742) \ - $(am__append_3749) $(am__append_3756) $(am__append_3763) \ - $(am__append_3770) $(am__append_3777) $(am__append_3784) \ - $(am__append_3791) $(am__append_3798) $(am__append_3805) \ - $(am__append_3812) $(am__append_3819) $(am__append_3826) \ - $(am__append_3833) $(am__append_3840) $(am__append_3847) \ - $(am__append_3854) $(am__append_3861) $(am__append_3868) \ - $(am__append_3875) $(am__append_3882) macho.module$(EXEEXT) \ - $(am__append_3889) $(am__append_3896) $(am__append_3903) \ - $(am__append_3910) $(am__append_3917) $(am__append_3924) \ - $(am__append_3931) $(am__append_3938) $(am__append_3945) \ - $(am__append_3952) $(am__append_3959) $(am__append_3966) \ - $(am__append_3973) $(am__append_3980) $(am__append_3987) \ - $(am__append_3994) $(am__append_4001) $(am__append_4008) \ - $(am__append_4015) $(am__append_4022) $(am__append_4029) \ - $(am__append_4036) $(am__append_4043) $(am__append_4050) \ - $(am__append_4057) $(am__append_4064) $(am__append_4071) \ + pbkdf2.module$(EXEEXT) $(am__append_3084) $(am__append_3091) \ + $(am__append_3098) $(am__append_3105) $(am__append_3112) \ + $(am__append_3119) $(am__append_3126) $(am__append_3133) \ + $(am__append_3140) $(am__append_3147) $(am__append_3154) \ + $(am__append_3161) $(am__append_3168) $(am__append_3175) \ + $(am__append_3182) $(am__append_3189) $(am__append_3196) \ + $(am__append_3203) $(am__append_3210) $(am__append_3217) \ + $(am__append_3224) $(am__append_3231) $(am__append_3238) \ + $(am__append_3245) $(am__append_3252) $(am__append_3259) \ + $(am__append_3266) $(am__append_3273) $(am__append_3280) \ + $(am__append_3287) $(am__append_3294) $(am__append_3301) \ + $(am__append_3308) $(am__append_3315) $(am__append_3322) \ + $(am__append_3329) setjmp.module$(EXEEXT) $(am__append_3336) \ + $(am__append_3343) $(am__append_3350) $(am__append_3357) \ + $(am__append_3364) $(am__append_3371) $(am__append_3378) \ + $(am__append_3385) $(am__append_3392) $(am__append_3399) \ + $(am__append_3406) $(am__append_3413) $(am__append_3420) \ + $(am__append_3427) $(am__append_3434) $(am__append_3441) \ + $(am__append_3448) $(am__append_3455) $(am__append_3462) \ + $(am__append_3469) $(am__append_3476) $(am__append_3483) \ + $(am__append_3490) $(am__append_3497) $(am__append_3504) \ + $(am__append_3511) $(am__append_3518) $(am__append_3525) \ + $(am__append_3532) $(am__append_3539) $(am__append_3546) \ + $(am__append_3553) $(am__append_3560) $(am__append_3567) \ + $(am__append_3574) $(am__append_3581) $(am__append_3588) \ + $(am__append_3595) $(am__append_3602) $(am__append_3609) \ + $(am__append_3616) $(am__append_3623) $(am__append_3630) \ + $(am__append_3637) $(am__append_3644) $(am__append_3651) \ + $(am__append_3658) $(am__append_3665) $(am__append_3672) \ + $(am__append_3679) $(am__append_3686) $(am__append_3693) \ + $(am__append_3700) $(am__append_3707) $(am__append_3714) \ + $(am__append_3721) $(am__append_3728) $(am__append_3735) \ + $(am__append_3742) $(am__append_3749) $(am__append_3756) \ + $(am__append_3763) $(am__append_3770) $(am__append_3777) \ + $(am__append_3784) $(am__append_3791) $(am__append_3798) \ + $(am__append_3805) $(am__append_3812) $(am__append_3819) \ + $(am__append_3826) $(am__append_3833) $(am__append_3840) \ + $(am__append_3847) $(am__append_3854) $(am__append_3861) \ + $(am__append_3868) $(am__append_3875) macho.module$(EXEEXT) \ + $(am__append_3882) $(am__append_3889) $(am__append_3896) \ + $(am__append_3903) $(am__append_3910) $(am__append_3917) \ + $(am__append_3924) $(am__append_3931) $(am__append_3938) \ + $(am__append_3945) $(am__append_3952) $(am__append_3959) \ + $(am__append_3966) $(am__append_3973) $(am__append_3980) \ + $(am__append_3987) $(am__append_3994) $(am__append_4001) \ + $(am__append_4008) $(am__append_4015) $(am__append_4022) \ + $(am__append_4029) $(am__append_4036) $(am__append_4043) \ + $(am__append_4050) $(am__append_4057) $(am__append_4064) \ normal.module$(EXEEXT) part_acorn.module$(EXEEXT) \ part_amiga.module$(EXEEXT) part_apple.module$(EXEEXT) \ part_gpt.module$(EXEEXT) part_msdos.module$(EXEEXT) \ part_sun.module$(EXEEXT) part_plan.module$(EXEEXT) \ part_dvh.module$(EXEEXT) part_bsd.module$(EXEEXT) \ part_sunpc.module$(EXEEXT) part_dfly.module$(EXEEXT) \ - msdospart.module$(EXEEXT) $(am__append_4078) \ - $(am__append_4085) $(am__append_4092) $(am__append_4099) \ - $(am__append_4106) $(am__append_4113) $(am__append_4120) \ - $(am__append_4127) $(am__append_4134) $(am__append_4141) \ - $(am__append_4148) $(am__append_4155) $(am__append_4162) \ - $(am__append_4169) $(am__append_4176) $(am__append_4183) \ - $(am__append_4190) $(am__append_4197) $(am__append_4204) \ - $(am__append_4211) $(am__append_4218) $(am__append_4225) \ - $(am__append_4232) $(am__append_4239) $(am__append_4246) \ - $(am__append_4253) $(am__append_4260) \ - gfxterm_background.module$(EXEEXT) $(am__append_4267) \ - $(am__append_4274) $(am__append_4281) $(am__append_4288) \ - $(am__append_4295) $(am__append_4302) $(am__append_4309) \ - $(am__append_4316) $(am__append_4323) $(am__append_4330) \ - $(am__append_4337) $(am__append_4344) $(am__append_4351) \ - $(am__append_4358) $(am__append_4365) $(am__append_4372) \ - $(am__append_4379) $(am__append_4386) $(am__append_4393) \ - $(am__append_4400) $(am__append_4407) $(am__append_4414) \ - $(am__append_4421) $(am__append_4428) $(am__append_4435) \ - $(am__append_4442) $(am__append_4449) $(am__append_4456) \ - $(am__append_4463) $(am__append_4470) $(am__append_4477) \ - $(am__append_4484) $(am__append_4491) $(am__append_4498) \ - $(am__append_4505) $(am__append_4512) $(am__append_4519) \ - $(am__append_4526) $(am__append_4533) $(am__append_4540) \ - $(am__append_4547) $(am__append_4554) $(am__append_4561) \ - $(am__append_4568) $(am__append_4575) $(am__append_4582) \ - $(am__append_4589) $(am__append_4596) $(am__append_4603) \ - $(am__append_4610) $(am__append_4617) $(am__append_4624) \ - $(am__append_4631) $(am__append_4638) $(am__append_4645) \ + msdospart.module$(EXEEXT) $(am__append_4071) \ + $(am__append_4078) $(am__append_4085) $(am__append_4092) \ + $(am__append_4099) $(am__append_4106) $(am__append_4113) \ + $(am__append_4120) $(am__append_4127) $(am__append_4134) \ + $(am__append_4141) $(am__append_4148) $(am__append_4155) \ + $(am__append_4162) $(am__append_4169) $(am__append_4176) \ + $(am__append_4183) $(am__append_4190) $(am__append_4197) \ + $(am__append_4204) $(am__append_4211) $(am__append_4218) \ + $(am__append_4225) $(am__append_4232) $(am__append_4239) \ + $(am__append_4246) $(am__append_4253) \ + gfxterm_background.module$(EXEEXT) $(am__append_4260) \ + $(am__append_4267) $(am__append_4274) $(am__append_4281) \ + $(am__append_4288) $(am__append_4295) $(am__append_4302) \ + $(am__append_4309) $(am__append_4316) $(am__append_4323) \ + $(am__append_4330) $(am__append_4337) $(am__append_4344) \ + $(am__append_4351) $(am__append_4358) $(am__append_4365) \ + $(am__append_4372) $(am__append_4379) $(am__append_4386) \ + $(am__append_4393) $(am__append_4400) $(am__append_4407) \ + $(am__append_4414) $(am__append_4421) $(am__append_4428) \ + $(am__append_4435) $(am__append_4442) $(am__append_4449) \ + $(am__append_4456) $(am__append_4463) $(am__append_4470) \ + $(am__append_4477) $(am__append_4484) $(am__append_4491) \ + $(am__append_4498) $(am__append_4505) $(am__append_4512) \ + $(am__append_4519) $(am__append_4526) $(am__append_4533) \ + $(am__append_4540) $(am__append_4547) $(am__append_4554) \ + $(am__append_4561) $(am__append_4568) $(am__append_4575) \ + $(am__append_4582) $(am__append_4589) $(am__append_4596) \ + $(am__append_4603) $(am__append_4610) $(am__append_4617) \ + $(am__append_4624) $(am__append_4631) $(am__append_4638) \ functional_test.module$(EXEEXT) exfctest.module$(EXEEXT) \ strtoull_test.module$(EXEEXT) setjmp_test.module$(EXEEXT) \ signature_test.module$(EXEEXT) sleep_test.module$(EXEEXT) \ xnu_uuid_test.module$(EXEEXT) pbkdf2_test.module$(EXEEXT) \ - $(am__append_4652) $(am__append_4659) $(am__append_4666) \ - $(am__append_4673) $(am__append_4680) $(am__append_4687) \ - $(am__append_4694) $(am__append_4701) $(am__append_4708) \ - $(am__append_4715) $(am__append_4722) $(am__append_4729) \ - $(am__append_4736) $(am__append_4743) $(am__append_4750) \ - $(am__append_4757) $(am__append_4764) $(am__append_4771) \ - $(am__append_4778) $(am__append_4785) $(am__append_4792) \ - $(am__append_4799) $(am__append_4806) $(am__append_4813) \ - $(am__append_4820) div_test.module$(EXEEXT) \ + $(am__append_4645) $(am__append_4652) $(am__append_4659) \ + $(am__append_4666) $(am__append_4673) $(am__append_4680) \ + $(am__append_4687) $(am__append_4694) $(am__append_4701) \ + $(am__append_4708) $(am__append_4715) $(am__append_4722) \ + $(am__append_4729) $(am__append_4736) $(am__append_4743) \ + $(am__append_4750) $(am__append_4757) $(am__append_4764) \ + $(am__append_4771) $(am__append_4778) $(am__append_4785) \ + $(am__append_4792) $(am__append_4799) $(am__append_4806) \ + $(am__append_4813) div_test.module$(EXEEXT) \ mul_test.module$(EXEEXT) shift_test.module$(EXEEXT) \ cmp_test.module$(EXEEXT) ctz_test.module$(EXEEXT) \ bswap_test.module$(EXEEXT) videotest_checksum.module$(EXEEXT) \ gfxterm_menu.module$(EXEEXT) cmdline_cat_test.module$(EXEEXT) \ bitmap.module$(EXEEXT) bitmap_scale.module$(EXEEXT) \ - $(am__append_4827) $(am__append_4834) $(am__append_4841) \ - $(am__append_4848) $(am__append_4855) $(am__append_4862) \ - $(am__append_4869) $(am__append_4876) $(am__append_4883) \ + $(am__append_4820) $(am__append_4827) $(am__append_4834) \ + $(am__append_4841) $(am__append_4848) $(am__append_4855) \ + $(am__append_4862) $(am__append_4869) $(am__append_4876) \ jpeg.module$(EXEEXT) png.module$(EXEEXT) tga.module$(EXEEXT) \ - $(am__append_4890) $(am__append_4897) $(am__append_4904) \ - $(am__append_4911) $(am__append_4918) $(am__append_4925) \ - $(am__append_4932) $(am__append_4939) $(am__append_4946) \ - $(am__append_4953) $(am__append_4960) $(am__append_4967) \ - $(am__append_4974) $(am__append_4981) $(am__append_4988) \ - $(am__append_4995) $(am__append_5002) $(am__append_5009) \ - $(am__append_5016) $(am__append_5023) $(am__append_5030) \ - $(am__append_5037) $(am__append_5044) $(am__append_5051) \ - $(am__append_5058) $(am__append_5065) $(am__append_5072) \ - $(am__append_5079) $(am__append_5086) $(am__append_5093) \ - $(am__append_5100) $(am__append_5107) $(am__append_5114) \ - $(am__append_5121) $(am__append_5128) $(am__append_5135) \ - $(am__append_5142) $(am__append_5149) $(am__append_5156) \ - $(am__append_5163) $(am__append_5170) \ - video_colors.module$(EXEEXT) $(am__append_5177) \ - $(am__append_5184) datehook.module$(EXEEXT) \ + $(am__append_4883) $(am__append_4890) $(am__append_4897) \ + $(am__append_4904) $(am__append_4911) $(am__append_4918) \ + $(am__append_4925) $(am__append_4932) $(am__append_4939) \ + $(am__append_4946) $(am__append_4953) $(am__append_4960) \ + $(am__append_4967) $(am__append_4974) $(am__append_4981) \ + $(am__append_4988) $(am__append_4995) $(am__append_5002) \ + $(am__append_5009) $(am__append_5016) $(am__append_5023) \ + $(am__append_5030) $(am__append_5037) $(am__append_5044) \ + $(am__append_5051) $(am__append_5058) $(am__append_5065) \ + $(am__append_5072) $(am__append_5079) $(am__append_5086) \ + $(am__append_5093) $(am__append_5100) $(am__append_5107) \ + $(am__append_5114) $(am__append_5121) $(am__append_5128) \ + $(am__append_5135) $(am__append_5142) $(am__append_5149) \ + $(am__append_5156) $(am__append_5163) \ + video_colors.module$(EXEEXT) $(am__append_5170) \ + $(am__append_5177) datehook.module$(EXEEXT) \ net.module$(EXEEXT) tftp.module$(EXEEXT) http.module$(EXEEXT) \ - $(am__append_5191) $(am__append_5198) $(am__append_5205) \ - $(am__append_5212) $(am__append_5219) $(am__append_5226) \ - $(am__append_5233) $(am__append_5240) $(am__append_5247) \ - $(am__append_5254) $(am__append_5261) $(am__append_5268) \ - $(am__append_5275) $(am__append_5282) $(am__append_5289) \ - $(am__append_5296) $(am__append_5303) $(am__append_5310) \ + $(am__append_5184) $(am__append_5191) $(am__append_5198) \ + $(am__append_5205) $(am__append_5212) $(am__append_5219) \ + $(am__append_5226) $(am__append_5233) $(am__append_5240) \ + $(am__append_5247) $(am__append_5254) $(am__append_5261) \ + $(am__append_5268) $(am__append_5275) $(am__append_5282) \ + $(am__append_5289) $(am__append_5296) $(am__append_5303) \ syslinuxcfg.module$(EXEEXT) test_blockarg.module$(EXEEXT) \ xzio.module$(EXEEXT) lzopio.module$(EXEEXT) \ - testload.module$(EXEEXT) $(am__append_5317) $(am__append_5324) \ - $(am__append_5331) $(am__append_5338) $(am__append_5345) \ - $(am__append_5352) $(am__append_5359) $(am__append_5366) \ - $(am__append_5373) $(am__append_5380) $(am__append_5387) \ - $(am__append_5394) $(am__append_5401) $(am__append_5408) \ - $(am__append_5415) $(am__append_5422) $(am__append_5429) \ + testload.module$(EXEEXT) $(am__append_5310) $(am__append_5317) \ + $(am__append_5324) $(am__append_5331) $(am__append_5338) \ + $(am__append_5345) $(am__append_5352) $(am__append_5359) \ + $(am__append_5366) $(am__append_5373) $(am__append_5380) \ + $(am__append_5387) $(am__append_5394) $(am__append_5401) \ + $(am__append_5408) $(am__append_5415) $(am__append_5422) \ priority_queue.module$(EXEEXT) time.module$(EXEEXT) \ - $(am__append_5436) $(am__append_5443) adler32.module$(EXEEXT) \ + $(am__append_5429) $(am__append_5436) adler32.module$(EXEEXT) \ crc64.module$(EXEEXT) mpi.module$(EXEEXT) \ - all_video.module$(EXEEXT) $(am__append_5450) \ - $(am__append_5457) $(am__append_5464) $(am__append_5471) \ - $(am__append_5478) $(am__append_5485) \ - testspeed.module$(EXEEXT) $(am__append_5492) \ + all_video.module$(EXEEXT) $(am__append_5443) \ + $(am__append_5450) $(am__append_5457) $(am__append_5464) \ + $(am__append_5471) $(am__append_5478) \ + testspeed.module$(EXEEXT) $(am__append_5485) \ tr.module$(EXEEXT) progress.module$(EXEEXT) \ - file.module$(EXEEXT) $(am__append_5499) $(am__append_5506) \ - $(am__append_5513) $(am__append_5520) $(am__append_5527) \ - $(am__append_5534) $(am__append_5541) $(am__append_5548) \ - $(am__append_5555) $(am__append_5562) $(am__append_5569) \ - $(am__append_5576) $(am__append_5583) $(am__append_5590) \ + file.module$(EXEEXT) $(am__append_5492) $(am__append_5499) \ + $(am__append_5506) $(am__append_5513) $(am__append_5520) \ + $(am__append_5527) $(am__append_5534) $(am__append_5541) \ + $(am__append_5548) $(am__append_5555) $(am__append_5562) \ + $(am__append_5569) $(am__append_5576) $(am__append_5583) \ gcry_arcfour.module$(EXEEXT) gcry_blowfish.module$(EXEEXT) \ gcry_camellia.module$(EXEEXT) gcry_cast5.module$(EXEEXT) \ gcry_crc.module$(EXEEXT) gcry_des.module$(EXEEXT) \ @@ -16180,58 +16157,58 @@ MARKER_FILES = disk.marker trig.marker $(am__append_9) \ hashsum.marker pgp.marker $(am__append_2046) \ $(am__append_2053) $(am__append_2060) $(am__append_2067) \ $(am__append_2074) $(am__append_2081) $(am__append_2088) \ - $(am__append_2095) $(am__append_2102) $(am__append_2109) \ - help.marker hexdump.marker keystatus.marker $(am__append_2116) \ - $(am__append_2123) loadenv.marker ls.marker lsmmap.marker \ - $(am__append_2130) $(am__append_2137) $(am__append_2144) \ - $(am__append_2151) $(am__append_2158) $(am__append_2165) \ - $(am__append_2172) $(am__append_2179) memrw.marker \ + $(am__append_2095) $(am__append_2102) help.marker \ + hexdump.marker keystatus.marker $(am__append_2109) \ + $(am__append_2116) loadenv.marker ls.marker lsmmap.marker \ + $(am__append_2123) $(am__append_2130) $(am__append_2137) \ + $(am__append_2144) $(am__append_2151) $(am__append_2158) \ + $(am__append_2165) $(am__append_2172) memrw.marker \ minicmd.marker parttool.marker password.marker \ - password_pbkdf2.marker $(am__append_2186) $(am__append_2193) \ - $(am__append_2200) $(am__append_2207) $(am__append_2214) \ - $(am__append_2221) $(am__append_2228) $(am__append_2235) \ - $(am__append_2242) $(am__append_2249) $(am__append_2256) \ - $(am__append_2263) $(am__append_2270) $(am__append_2277) \ - $(am__append_2284) $(am__append_2291) $(am__append_2298) \ - $(am__append_2305) $(am__append_2312) $(am__append_2319) \ - $(am__append_2326) probe.marker read.marker search.marker \ + password_pbkdf2.marker $(am__append_2179) $(am__append_2186) \ + $(am__append_2193) $(am__append_2200) $(am__append_2207) \ + $(am__append_2214) $(am__append_2221) $(am__append_2228) \ + $(am__append_2235) $(am__append_2242) $(am__append_2249) \ + $(am__append_2256) $(am__append_2263) $(am__append_2270) \ + $(am__append_2277) $(am__append_2284) $(am__append_2291) \ + $(am__append_2298) $(am__append_2305) $(am__append_2312) \ + $(am__append_2319) probe.marker read.marker search.marker \ search_fs_file.marker search_fs_uuid.marker \ - search_label.marker $(am__append_2333) $(am__append_2340) \ - $(am__append_2347) $(am__append_2354) $(am__append_2361) \ - $(am__append_2368) $(am__append_2375) $(am__append_2382) \ - $(am__append_2389) $(am__append_2396) $(am__append_2403) \ - $(am__append_2410) $(am__append_2417) $(am__append_2424) \ - $(am__append_2431) $(am__append_2438) sleep.marker \ - $(am__append_2445) $(am__append_2452) terminal.marker \ - test.marker true.marker $(am__append_2459) $(am__append_2466) \ - $(am__append_2473) $(am__append_2480) $(am__append_2487) \ - $(am__append_2494) $(am__append_2501) $(am__append_2508) \ - $(am__append_2515) videoinfo.marker videotest.marker \ + search_label.marker $(am__append_2326) $(am__append_2333) \ + $(am__append_2340) $(am__append_2347) $(am__append_2354) \ + $(am__append_2361) $(am__append_2368) $(am__append_2375) \ + $(am__append_2382) $(am__append_2389) $(am__append_2396) \ + $(am__append_2403) $(am__append_2410) $(am__append_2417) \ + $(am__append_2424) $(am__append_2431) sleep.marker \ + $(am__append_2438) $(am__append_2445) terminal.marker \ + test.marker true.marker $(am__append_2452) $(am__append_2459) \ + $(am__append_2466) $(am__append_2473) $(am__append_2480) \ + $(am__append_2487) $(am__append_2494) $(am__append_2501) \ + $(am__append_2508) videoinfo.marker videotest.marker \ xnu_uuid.marker dm_nv.marker loopback.marker cryptodisk.marker \ luks.marker geli.marker lvm.marker ldm.marker mdraid09.marker \ mdraid09_be.marker mdraid1x.marker diskfilter.marker \ raid5rec.marker raid6rec.marker scsi.marker memdisk.marker \ - $(am__append_2522) $(am__append_2529) $(am__append_2536) \ - $(am__append_2543) $(am__append_2550) $(am__append_2557) \ - $(am__append_2564) $(am__append_2571) $(am__append_2578) \ - $(am__append_2585) $(am__append_2592) $(am__append_2599) \ - $(am__append_2606) $(am__append_2613) $(am__append_2620) \ - $(am__append_2627) $(am__append_2634) $(am__append_2641) \ - $(am__append_2648) $(am__append_2655) $(am__append_2662) \ - $(am__append_2669) $(am__append_2676) $(am__append_2683) \ - $(am__append_2690) $(am__append_2697) $(am__append_2704) \ - $(am__append_2711) $(am__append_2718) $(am__append_2725) \ - $(am__append_2732) $(am__append_2739) $(am__append_2746) \ - $(am__append_2753) $(am__append_2760) $(am__append_2767) \ - $(am__append_2774) $(am__append_2781) $(am__append_2788) \ - $(am__append_2795) $(am__append_2802) $(am__append_2809) \ - $(am__append_2816) $(am__append_2823) $(am__append_2830) \ - $(am__append_2837) $(am__append_2844) $(am__append_2851) \ - $(am__append_2858) $(am__append_2865) $(am__append_2872) \ - $(am__append_2879) $(am__append_2886) $(am__append_2893) \ - $(am__append_2900) $(am__append_2907) $(am__append_2914) \ - $(am__append_2921) $(am__append_2928) $(am__append_2935) \ - $(am__append_2942) procfs.marker affs.marker afs.marker \ + $(am__append_2515) $(am__append_2522) $(am__append_2529) \ + $(am__append_2536) $(am__append_2543) $(am__append_2550) \ + $(am__append_2557) $(am__append_2564) $(am__append_2571) \ + $(am__append_2578) $(am__append_2585) $(am__append_2592) \ + $(am__append_2599) $(am__append_2606) $(am__append_2613) \ + $(am__append_2620) $(am__append_2627) $(am__append_2634) \ + $(am__append_2641) $(am__append_2648) $(am__append_2655) \ + $(am__append_2662) $(am__append_2669) $(am__append_2676) \ + $(am__append_2683) $(am__append_2690) $(am__append_2697) \ + $(am__append_2704) $(am__append_2711) $(am__append_2718) \ + $(am__append_2725) $(am__append_2732) $(am__append_2739) \ + $(am__append_2746) $(am__append_2753) $(am__append_2760) \ + $(am__append_2767) $(am__append_2774) $(am__append_2781) \ + $(am__append_2788) $(am__append_2795) $(am__append_2802) \ + $(am__append_2809) $(am__append_2816) $(am__append_2823) \ + $(am__append_2830) $(am__append_2837) $(am__append_2844) \ + $(am__append_2851) $(am__append_2858) $(am__append_2865) \ + $(am__append_2872) $(am__append_2879) $(am__append_2886) \ + $(am__append_2893) $(am__append_2900) $(am__append_2907) \ + $(am__append_2914) $(am__append_2921) $(am__append_2928) \ + $(am__append_2935) procfs.marker affs.marker afs.marker \ bfs.marker zstd.marker btrfs.marker archelp.marker cbfs.marker \ cpio.marker cpio_be.marker newc.marker odc.marker ext2.marker \ fat.marker exfat.marker f2fs.marker fshelp.marker hfs.marker \ @@ -16242,153 +16219,153 @@ MARKER_FILES = disk.marker trig.marker $(am__append_9) \ squash4.marker tar.marker udf.marker ufs1.marker \ ufs1_be.marker ufs2.marker xfs.marker zfs.marker \ zfscrypt.marker zfsinfo.marker macbless.marker \ - $(am__append_2949) gettext.marker gfxmenu.marker hello.marker \ - gzio.marker offsetio.marker $(am__append_2956) \ - $(am__append_2963) $(am__append_2970) $(am__append_2977) \ - $(am__append_2984) $(am__append_2991) $(am__append_2998) \ - $(am__append_3005) $(am__append_3012) $(am__append_3019) \ - $(am__append_3026) $(am__append_3033) $(am__append_3040) \ - $(am__append_3047) $(am__append_3054) $(am__append_3061) \ - $(am__append_3068) $(am__append_3075) $(am__append_3082) \ - $(am__append_3089) elf.marker crypto.marker pbkdf2.marker \ - $(am__append_3096) $(am__append_3103) $(am__append_3110) \ - $(am__append_3117) $(am__append_3124) $(am__append_3131) \ - $(am__append_3138) $(am__append_3145) $(am__append_3152) \ - $(am__append_3159) $(am__append_3166) $(am__append_3173) \ - $(am__append_3180) $(am__append_3187) $(am__append_3194) \ - $(am__append_3201) $(am__append_3208) $(am__append_3215) \ - $(am__append_3222) $(am__append_3229) $(am__append_3236) \ - $(am__append_3243) $(am__append_3250) $(am__append_3257) \ - $(am__append_3264) $(am__append_3271) $(am__append_3278) \ - $(am__append_3285) $(am__append_3292) $(am__append_3299) \ - $(am__append_3306) $(am__append_3313) $(am__append_3320) \ - $(am__append_3327) $(am__append_3334) $(am__append_3341) \ - setjmp.marker $(am__append_3348) $(am__append_3355) \ - $(am__append_3362) $(am__append_3369) $(am__append_3376) \ - $(am__append_3383) $(am__append_3390) $(am__append_3397) \ - $(am__append_3404) $(am__append_3411) $(am__append_3418) \ - $(am__append_3425) $(am__append_3432) $(am__append_3439) \ - $(am__append_3446) $(am__append_3453) $(am__append_3460) \ - $(am__append_3467) $(am__append_3474) $(am__append_3481) \ - $(am__append_3488) $(am__append_3495) $(am__append_3502) \ - $(am__append_3509) $(am__append_3516) $(am__append_3523) \ - $(am__append_3530) $(am__append_3537) $(am__append_3544) \ - $(am__append_3551) $(am__append_3558) $(am__append_3565) \ - $(am__append_3572) $(am__append_3579) $(am__append_3586) \ - $(am__append_3593) $(am__append_3600) $(am__append_3607) \ - $(am__append_3614) $(am__append_3621) $(am__append_3628) \ - $(am__append_3635) $(am__append_3642) $(am__append_3649) \ - $(am__append_3656) $(am__append_3663) $(am__append_3670) \ - $(am__append_3677) $(am__append_3684) $(am__append_3691) \ - $(am__append_3698) $(am__append_3705) $(am__append_3712) \ - $(am__append_3719) $(am__append_3726) $(am__append_3733) \ - $(am__append_3740) $(am__append_3747) $(am__append_3754) \ - $(am__append_3761) $(am__append_3768) $(am__append_3775) \ - $(am__append_3782) $(am__append_3789) $(am__append_3796) \ - $(am__append_3803) $(am__append_3810) $(am__append_3817) \ - $(am__append_3824) $(am__append_3831) $(am__append_3838) \ - $(am__append_3845) $(am__append_3852) $(am__append_3859) \ - $(am__append_3866) $(am__append_3873) $(am__append_3880) \ - $(am__append_3887) macho.marker $(am__append_3894) \ - $(am__append_3901) $(am__append_3908) $(am__append_3915) \ - $(am__append_3922) $(am__append_3929) $(am__append_3936) \ - $(am__append_3943) $(am__append_3950) $(am__append_3957) \ - $(am__append_3964) $(am__append_3971) $(am__append_3978) \ - $(am__append_3985) $(am__append_3992) $(am__append_3999) \ - $(am__append_4006) $(am__append_4013) $(am__append_4020) \ - $(am__append_4027) $(am__append_4034) $(am__append_4041) \ - $(am__append_4048) $(am__append_4055) $(am__append_4062) \ - $(am__append_4069) $(am__append_4076) normal.marker \ + $(am__append_2942) gettext.marker gfxmenu.marker hello.marker \ + gzio.marker offsetio.marker $(am__append_2949) \ + $(am__append_2956) $(am__append_2963) $(am__append_2970) \ + $(am__append_2977) $(am__append_2984) $(am__append_2991) \ + $(am__append_2998) $(am__append_3005) $(am__append_3012) \ + $(am__append_3019) $(am__append_3026) $(am__append_3033) \ + $(am__append_3040) $(am__append_3047) $(am__append_3054) \ + $(am__append_3061) $(am__append_3068) $(am__append_3075) \ + $(am__append_3082) elf.marker crypto.marker pbkdf2.marker \ + $(am__append_3089) $(am__append_3096) $(am__append_3103) \ + $(am__append_3110) $(am__append_3117) $(am__append_3124) \ + $(am__append_3131) $(am__append_3138) $(am__append_3145) \ + $(am__append_3152) $(am__append_3159) $(am__append_3166) \ + $(am__append_3173) $(am__append_3180) $(am__append_3187) \ + $(am__append_3194) $(am__append_3201) $(am__append_3208) \ + $(am__append_3215) $(am__append_3222) $(am__append_3229) \ + $(am__append_3236) $(am__append_3243) $(am__append_3250) \ + $(am__append_3257) $(am__append_3264) $(am__append_3271) \ + $(am__append_3278) $(am__append_3285) $(am__append_3292) \ + $(am__append_3299) $(am__append_3306) $(am__append_3313) \ + $(am__append_3320) $(am__append_3327) $(am__append_3334) \ + setjmp.marker $(am__append_3341) $(am__append_3348) \ + $(am__append_3355) $(am__append_3362) $(am__append_3369) \ + $(am__append_3376) $(am__append_3383) $(am__append_3390) \ + $(am__append_3397) $(am__append_3404) $(am__append_3411) \ + $(am__append_3418) $(am__append_3425) $(am__append_3432) \ + $(am__append_3439) $(am__append_3446) $(am__append_3453) \ + $(am__append_3460) $(am__append_3467) $(am__append_3474) \ + $(am__append_3481) $(am__append_3488) $(am__append_3495) \ + $(am__append_3502) $(am__append_3509) $(am__append_3516) \ + $(am__append_3523) $(am__append_3530) $(am__append_3537) \ + $(am__append_3544) $(am__append_3551) $(am__append_3558) \ + $(am__append_3565) $(am__append_3572) $(am__append_3579) \ + $(am__append_3586) $(am__append_3593) $(am__append_3600) \ + $(am__append_3607) $(am__append_3614) $(am__append_3621) \ + $(am__append_3628) $(am__append_3635) $(am__append_3642) \ + $(am__append_3649) $(am__append_3656) $(am__append_3663) \ + $(am__append_3670) $(am__append_3677) $(am__append_3684) \ + $(am__append_3691) $(am__append_3698) $(am__append_3705) \ + $(am__append_3712) $(am__append_3719) $(am__append_3726) \ + $(am__append_3733) $(am__append_3740) $(am__append_3747) \ + $(am__append_3754) $(am__append_3761) $(am__append_3768) \ + $(am__append_3775) $(am__append_3782) $(am__append_3789) \ + $(am__append_3796) $(am__append_3803) $(am__append_3810) \ + $(am__append_3817) $(am__append_3824) $(am__append_3831) \ + $(am__append_3838) $(am__append_3845) $(am__append_3852) \ + $(am__append_3859) $(am__append_3866) $(am__append_3873) \ + $(am__append_3880) macho.marker $(am__append_3887) \ + $(am__append_3894) $(am__append_3901) $(am__append_3908) \ + $(am__append_3915) $(am__append_3922) $(am__append_3929) \ + $(am__append_3936) $(am__append_3943) $(am__append_3950) \ + $(am__append_3957) $(am__append_3964) $(am__append_3971) \ + $(am__append_3978) $(am__append_3985) $(am__append_3992) \ + $(am__append_3999) $(am__append_4006) $(am__append_4013) \ + $(am__append_4020) $(am__append_4027) $(am__append_4034) \ + $(am__append_4041) $(am__append_4048) $(am__append_4055) \ + $(am__append_4062) $(am__append_4069) normal.marker \ part_acorn.marker part_amiga.marker part_apple.marker \ part_gpt.marker part_msdos.marker part_sun.marker \ part_plan.marker part_dvh.marker part_bsd.marker \ part_sunpc.marker part_dfly.marker msdospart.marker \ - $(am__append_4083) $(am__append_4090) $(am__append_4097) \ - $(am__append_4104) $(am__append_4111) $(am__append_4118) \ - $(am__append_4125) $(am__append_4132) $(am__append_4139) \ - $(am__append_4146) $(am__append_4153) $(am__append_4160) \ - $(am__append_4167) $(am__append_4174) $(am__append_4181) \ - $(am__append_4188) $(am__append_4195) $(am__append_4202) \ - $(am__append_4209) $(am__append_4216) $(am__append_4223) \ - $(am__append_4230) $(am__append_4237) $(am__append_4244) \ - $(am__append_4251) $(am__append_4258) $(am__append_4265) \ - gfxterm_background.marker $(am__append_4272) \ - $(am__append_4279) $(am__append_4286) $(am__append_4293) \ - $(am__append_4300) $(am__append_4307) $(am__append_4314) \ - $(am__append_4321) $(am__append_4328) $(am__append_4335) \ - $(am__append_4342) $(am__append_4349) $(am__append_4356) \ - $(am__append_4363) $(am__append_4370) $(am__append_4377) \ - $(am__append_4384) $(am__append_4391) $(am__append_4398) \ - $(am__append_4405) $(am__append_4412) $(am__append_4419) \ - $(am__append_4426) $(am__append_4433) $(am__append_4440) \ - $(am__append_4447) $(am__append_4454) $(am__append_4461) \ - $(am__append_4468) $(am__append_4475) $(am__append_4482) \ - $(am__append_4489) $(am__append_4496) $(am__append_4503) \ - $(am__append_4510) $(am__append_4517) $(am__append_4524) \ - $(am__append_4531) $(am__append_4538) $(am__append_4545) \ - $(am__append_4552) $(am__append_4559) $(am__append_4566) \ - $(am__append_4573) $(am__append_4580) $(am__append_4587) \ - $(am__append_4594) $(am__append_4601) $(am__append_4608) \ - $(am__append_4615) $(am__append_4622) $(am__append_4629) \ - $(am__append_4636) $(am__append_4643) $(am__append_4650) \ + $(am__append_4076) $(am__append_4083) $(am__append_4090) \ + $(am__append_4097) $(am__append_4104) $(am__append_4111) \ + $(am__append_4118) $(am__append_4125) $(am__append_4132) \ + $(am__append_4139) $(am__append_4146) $(am__append_4153) \ + $(am__append_4160) $(am__append_4167) $(am__append_4174) \ + $(am__append_4181) $(am__append_4188) $(am__append_4195) \ + $(am__append_4202) $(am__append_4209) $(am__append_4216) \ + $(am__append_4223) $(am__append_4230) $(am__append_4237) \ + $(am__append_4244) $(am__append_4251) $(am__append_4258) \ + gfxterm_background.marker $(am__append_4265) \ + $(am__append_4272) $(am__append_4279) $(am__append_4286) \ + $(am__append_4293) $(am__append_4300) $(am__append_4307) \ + $(am__append_4314) $(am__append_4321) $(am__append_4328) \ + $(am__append_4335) $(am__append_4342) $(am__append_4349) \ + $(am__append_4356) $(am__append_4363) $(am__append_4370) \ + $(am__append_4377) $(am__append_4384) $(am__append_4391) \ + $(am__append_4398) $(am__append_4405) $(am__append_4412) \ + $(am__append_4419) $(am__append_4426) $(am__append_4433) \ + $(am__append_4440) $(am__append_4447) $(am__append_4454) \ + $(am__append_4461) $(am__append_4468) $(am__append_4475) \ + $(am__append_4482) $(am__append_4489) $(am__append_4496) \ + $(am__append_4503) $(am__append_4510) $(am__append_4517) \ + $(am__append_4524) $(am__append_4531) $(am__append_4538) \ + $(am__append_4545) $(am__append_4552) $(am__append_4559) \ + $(am__append_4566) $(am__append_4573) $(am__append_4580) \ + $(am__append_4587) $(am__append_4594) $(am__append_4601) \ + $(am__append_4608) $(am__append_4615) $(am__append_4622) \ + $(am__append_4629) $(am__append_4636) $(am__append_4643) \ functional_test.marker exfctest.marker strtoull_test.marker \ setjmp_test.marker signature_test.marker sleep_test.marker \ - xnu_uuid_test.marker pbkdf2_test.marker $(am__append_4657) \ - $(am__append_4664) $(am__append_4671) $(am__append_4678) \ - $(am__append_4685) $(am__append_4692) $(am__append_4699) \ - $(am__append_4706) $(am__append_4713) $(am__append_4720) \ - $(am__append_4727) $(am__append_4734) $(am__append_4741) \ - $(am__append_4748) $(am__append_4755) $(am__append_4762) \ - $(am__append_4769) $(am__append_4776) $(am__append_4783) \ - $(am__append_4790) $(am__append_4797) $(am__append_4804) \ - $(am__append_4811) $(am__append_4818) $(am__append_4825) \ + xnu_uuid_test.marker pbkdf2_test.marker $(am__append_4650) \ + $(am__append_4657) $(am__append_4664) $(am__append_4671) \ + $(am__append_4678) $(am__append_4685) $(am__append_4692) \ + $(am__append_4699) $(am__append_4706) $(am__append_4713) \ + $(am__append_4720) $(am__append_4727) $(am__append_4734) \ + $(am__append_4741) $(am__append_4748) $(am__append_4755) \ + $(am__append_4762) $(am__append_4769) $(am__append_4776) \ + $(am__append_4783) $(am__append_4790) $(am__append_4797) \ + $(am__append_4804) $(am__append_4811) $(am__append_4818) \ div_test.marker mul_test.marker shift_test.marker \ cmp_test.marker ctz_test.marker bswap_test.marker \ videotest_checksum.marker gfxterm_menu.marker \ cmdline_cat_test.marker bitmap.marker bitmap_scale.marker \ - $(am__append_4832) $(am__append_4839) $(am__append_4846) \ - $(am__append_4853) $(am__append_4860) $(am__append_4867) \ - $(am__append_4874) $(am__append_4881) $(am__append_4888) \ - jpeg.marker png.marker tga.marker $(am__append_4895) \ - $(am__append_4902) $(am__append_4909) $(am__append_4916) \ - $(am__append_4923) $(am__append_4930) $(am__append_4937) \ - $(am__append_4944) $(am__append_4951) $(am__append_4958) \ - $(am__append_4965) $(am__append_4972) $(am__append_4979) \ - $(am__append_4986) $(am__append_4993) $(am__append_5000) \ - $(am__append_5007) $(am__append_5014) $(am__append_5021) \ - $(am__append_5028) $(am__append_5035) $(am__append_5042) \ - $(am__append_5049) $(am__append_5056) $(am__append_5063) \ - $(am__append_5070) $(am__append_5077) $(am__append_5084) \ - $(am__append_5091) $(am__append_5098) $(am__append_5105) \ - $(am__append_5112) $(am__append_5119) $(am__append_5126) \ - $(am__append_5133) $(am__append_5140) $(am__append_5147) \ - $(am__append_5154) $(am__append_5161) $(am__append_5168) \ - $(am__append_5175) video_colors.marker $(am__append_5182) \ - $(am__append_5189) datehook.marker net.marker tftp.marker \ - http.marker $(am__append_5196) $(am__append_5203) \ - $(am__append_5210) $(am__append_5217) $(am__append_5224) \ - $(am__append_5231) $(am__append_5238) $(am__append_5245) \ - $(am__append_5252) $(am__append_5259) $(am__append_5266) \ - $(am__append_5273) $(am__append_5280) $(am__append_5287) \ - $(am__append_5294) $(am__append_5301) $(am__append_5308) \ - $(am__append_5315) syslinuxcfg.marker test_blockarg.marker \ - xzio.marker lzopio.marker testload.marker $(am__append_5322) \ - $(am__append_5329) $(am__append_5336) $(am__append_5343) \ - $(am__append_5350) $(am__append_5357) $(am__append_5364) \ - $(am__append_5371) $(am__append_5378) $(am__append_5385) \ - $(am__append_5392) $(am__append_5399) $(am__append_5406) \ - $(am__append_5413) $(am__append_5420) $(am__append_5427) \ - $(am__append_5434) priority_queue.marker time.marker \ - $(am__append_5441) $(am__append_5448) adler32.marker \ - crc64.marker mpi.marker all_video.marker $(am__append_5455) \ - $(am__append_5462) $(am__append_5469) $(am__append_5476) \ - $(am__append_5483) $(am__append_5490) testspeed.marker \ - $(am__append_5497) tr.marker progress.marker file.marker \ - $(am__append_5504) $(am__append_5511) $(am__append_5518) \ - $(am__append_5525) $(am__append_5532) $(am__append_5539) \ - $(am__append_5546) $(am__append_5553) $(am__append_5560) \ - $(am__append_5567) $(am__append_5574) $(am__append_5581) \ - $(am__append_5588) $(am__append_5595) gcry_arcfour.marker \ + $(am__append_4825) $(am__append_4832) $(am__append_4839) \ + $(am__append_4846) $(am__append_4853) $(am__append_4860) \ + $(am__append_4867) $(am__append_4874) $(am__append_4881) \ + jpeg.marker png.marker tga.marker $(am__append_4888) \ + $(am__append_4895) $(am__append_4902) $(am__append_4909) \ + $(am__append_4916) $(am__append_4923) $(am__append_4930) \ + $(am__append_4937) $(am__append_4944) $(am__append_4951) \ + $(am__append_4958) $(am__append_4965) $(am__append_4972) \ + $(am__append_4979) $(am__append_4986) $(am__append_4993) \ + $(am__append_5000) $(am__append_5007) $(am__append_5014) \ + $(am__append_5021) $(am__append_5028) $(am__append_5035) \ + $(am__append_5042) $(am__append_5049) $(am__append_5056) \ + $(am__append_5063) $(am__append_5070) $(am__append_5077) \ + $(am__append_5084) $(am__append_5091) $(am__append_5098) \ + $(am__append_5105) $(am__append_5112) $(am__append_5119) \ + $(am__append_5126) $(am__append_5133) $(am__append_5140) \ + $(am__append_5147) $(am__append_5154) $(am__append_5161) \ + $(am__append_5168) video_colors.marker $(am__append_5175) \ + $(am__append_5182) datehook.marker net.marker tftp.marker \ + http.marker $(am__append_5189) $(am__append_5196) \ + $(am__append_5203) $(am__append_5210) $(am__append_5217) \ + $(am__append_5224) $(am__append_5231) $(am__append_5238) \ + $(am__append_5245) $(am__append_5252) $(am__append_5259) \ + $(am__append_5266) $(am__append_5273) $(am__append_5280) \ + $(am__append_5287) $(am__append_5294) $(am__append_5301) \ + $(am__append_5308) syslinuxcfg.marker test_blockarg.marker \ + xzio.marker lzopio.marker testload.marker $(am__append_5315) \ + $(am__append_5322) $(am__append_5329) $(am__append_5336) \ + $(am__append_5343) $(am__append_5350) $(am__append_5357) \ + $(am__append_5364) $(am__append_5371) $(am__append_5378) \ + $(am__append_5385) $(am__append_5392) $(am__append_5399) \ + $(am__append_5406) $(am__append_5413) $(am__append_5420) \ + $(am__append_5427) priority_queue.marker time.marker \ + $(am__append_5434) $(am__append_5441) adler32.marker \ + crc64.marker mpi.marker all_video.marker $(am__append_5448) \ + $(am__append_5455) $(am__append_5462) $(am__append_5469) \ + $(am__append_5476) $(am__append_5483) testspeed.marker \ + $(am__append_5490) tr.marker progress.marker file.marker \ + $(am__append_5497) $(am__append_5504) $(am__append_5511) \ + $(am__append_5518) $(am__append_5525) $(am__append_5532) \ + $(am__append_5539) $(am__append_5546) $(am__append_5553) \ + $(am__append_5560) $(am__append_5567) $(am__append_5574) \ + $(am__append_5581) $(am__append_5588) gcry_arcfour.marker \ gcry_blowfish.marker gcry_camellia.marker gcry_cast5.marker \ gcry_crc.marker gcry_des.marker gcry_dsa.marker \ gcry_idea.marker gcry_md4.marker gcry_md5.marker \ @@ -16410,8 +16387,8 @@ KERNEL_HEADER_FILES = $(top_srcdir)/include/grub/cache.h \ $(top_srcdir)/include/grub/i18n.h \ $(top_srcdir)/include/grub/kernel.h \ $(top_srcdir)/include/grub/list.h \ - $(top_srcdir)/include/grub/misc.h $(am__append_5801) \ - $(am__append_5802) $(top_srcdir)/include/grub/mm.h \ + $(top_srcdir)/include/grub/misc.h $(am__append_5794) \ + $(am__append_5795) $(top_srcdir)/include/grub/mm.h \ $(top_srcdir)/include/grub/parser.h \ $(top_srcdir)/include/grub/partition.h \ $(top_srcdir)/include/grub/term.h \ @@ -16419,38 +16396,38 @@ KERNEL_HEADER_FILES = $(top_srcdir)/include/grub/cache.h \ $(top_srcdir)/include/grub/verify.h \ $(top_srcdir)/include/grub/mm_private.h \ $(top_srcdir)/include/grub/net.h \ - $(top_srcdir)/include/grub/memory.h $(am__append_5803) \ - $(am__append_5804) $(am__append_5805) $(am__append_5806) \ - $(am__append_5807) $(am__append_5808) $(am__append_5809) \ - $(am__append_5810) $(am__append_5811) $(am__append_5812) \ - $(am__append_5813) $(am__append_5814) $(am__append_5815) \ - $(am__append_5816) $(am__append_5817) $(am__append_5818) \ - $(am__append_5819) $(am__append_5820) $(am__append_5821) \ - $(am__append_5822) $(am__append_5823) $(am__append_5824) \ - $(am__append_5825) $(am__append_5826) $(am__append_5827) \ - $(am__append_5828) $(am__append_5829) -man_MANS = $(am__append_5792) + $(top_srcdir)/include/grub/memory.h $(am__append_5796) \ + $(am__append_5797) $(am__append_5798) $(am__append_5799) \ + $(am__append_5800) $(am__append_5801) $(am__append_5802) \ + $(am__append_5803) $(am__append_5804) $(am__append_5805) \ + $(am__append_5806) $(am__append_5807) $(am__append_5808) \ + $(am__append_5809) $(am__append_5810) $(am__append_5811) \ + $(am__append_5812) $(am__append_5813) $(am__append_5814) \ + $(am__append_5815) $(am__append_5816) $(am__append_5817) \ + $(am__append_5818) $(am__append_5819) $(am__append_5820) \ + $(am__append_5821) $(am__append_5822) +man_MANS = $(am__append_5785) noinst_DATA = gensyminfo.sh genmod.sh modinfo.sh kernel_syms.lst pkgdata_DATA = bin_SCRIPTS = sbin_SCRIPTS = -platform_DATA = $(am__append_5600) $(am__append_5605) \ - $(am__append_5610) $(am__append_5615) $(am__append_5620) \ - $(am__append_5625) $(am__append_5630) $(am__append_5635) \ - $(am__append_5640) $(am__append_5645) $(am__append_5650) \ - $(am__append_5655) $(am__append_5660) $(am__append_5665) \ - $(am__append_5670) $(am__append_5675) $(am__append_5680) \ - $(am__append_5685) $(am__append_5690) $(am__append_5695) \ - $(am__append_5700) $(am__append_5705) $(am__append_5710) \ - $(am__append_5715) $(am__append_5720) $(am__append_5725) \ - $(am__append_5730) $(am__append_5735) $(am__append_5740) \ - $(am__append_5745) $(am__append_5750) $(am__append_5755) \ - $(am__append_5760) $(am__append_5765) $(am__append_5770) \ - $(am__append_5775) $(am__append_5780) $(am__append_5785) \ - $(am__append_5790) gmodule.pl gdb_grub $(am__append_5797) \ +platform_DATA = $(am__append_5593) $(am__append_5598) \ + $(am__append_5603) $(am__append_5608) $(am__append_5613) \ + $(am__append_5618) $(am__append_5623) $(am__append_5628) \ + $(am__append_5633) $(am__append_5638) $(am__append_5643) \ + $(am__append_5648) $(am__append_5653) $(am__append_5658) \ + $(am__append_5663) $(am__append_5668) $(am__append_5673) \ + $(am__append_5678) $(am__append_5683) $(am__append_5688) \ + $(am__append_5693) $(am__append_5698) $(am__append_5703) \ + $(am__append_5708) $(am__append_5713) $(am__append_5718) \ + $(am__append_5723) $(am__append_5728) $(am__append_5733) \ + $(am__append_5738) $(am__append_5743) $(am__append_5748) \ + $(am__append_5753) $(am__append_5758) $(am__append_5763) \ + $(am__append_5768) $(am__append_5773) $(am__append_5778) \ + $(am__append_5783) gmodule.pl gdb_grub $(am__append_5790) \ fs.lst command.lst partmap.lst terminal.lst fdt.lst \ parttool.lst video.lst crypto.lst moddep.lst $(MOD_FILES) \ - modinfo.sh $(am__append_5831) + modinfo.sh $(am__append_5824) check_SCRIPTS = dist_grubconf_DATA = noinst_SCRIPTS = @@ -16567,7 +16544,7 @@ dist_noinst_DATA = kern/disk_common.c gentrigtables.c $(am__append_5) \ $(am__append_2259) $(am__append_2266) $(am__append_2273) \ $(am__append_2280) $(am__append_2287) $(am__append_2294) \ $(am__append_2301) $(am__append_2308) $(am__append_2315) \ - $(am__append_2322) commands/search.c $(am__append_2329) \ + commands/search.c $(am__append_2322) $(am__append_2329) \ $(am__append_2336) $(am__append_2343) $(am__append_2350) \ $(am__append_2357) $(am__append_2364) $(am__append_2371) \ $(am__append_2378) $(am__append_2385) $(am__append_2392) \ @@ -16603,8 +16580,8 @@ dist_noinst_DATA = kern/disk_common.c gentrigtables.c $(am__append_5) \ $(am__append_3008) $(am__append_3015) $(am__append_3022) \ $(am__append_3029) $(am__append_3036) $(am__append_3043) \ $(am__append_3050) $(am__append_3057) $(am__append_3064) \ - $(am__append_3071) $(am__append_3078) $(am__append_3085) \ - kern/elfXX.c lib/libgcrypt-grub/cipher/crypto.lst \ + $(am__append_3071) $(am__append_3078) kern/elfXX.c \ + lib/libgcrypt-grub/cipher/crypto.lst $(am__append_3085) \ $(am__append_3092) $(am__append_3099) $(am__append_3106) \ $(am__append_3113) $(am__append_3120) $(am__append_3127) \ $(am__append_3134) $(am__append_3141) $(am__append_3148) \ @@ -16616,11 +16593,11 @@ dist_noinst_DATA = kern/disk_common.c gentrigtables.c $(am__append_5) \ $(am__append_3260) $(am__append_3267) $(am__append_3274) \ $(am__append_3281) $(am__append_3288) $(am__append_3295) \ $(am__append_3302) $(am__append_3309) $(am__append_3316) \ - $(am__append_3323) $(am__append_3330) $(am__append_3337) \ - lib/i386/setjmp.S lib/mips/setjmp.S lib/x86_64/setjmp.S \ - lib/sparc64/setjmp.S lib/powerpc/setjmp.S lib/ia64/setjmp.S \ - lib/ia64/longjmp.S lib/arm/setjmp.S lib/arm64/setjmp.S \ - lib/riscv/setjmp.S $(am__append_3344) $(am__append_3351) \ + $(am__append_3323) $(am__append_3330) lib/i386/setjmp.S \ + lib/mips/setjmp.S lib/x86_64/setjmp.S lib/sparc64/setjmp.S \ + lib/powerpc/setjmp.S lib/ia64/setjmp.S lib/ia64/longjmp.S \ + lib/arm/setjmp.S lib/arm64/setjmp.S lib/riscv/setjmp.S \ + $(am__append_3337) $(am__append_3344) $(am__append_3351) \ $(am__append_3358) $(am__append_3365) $(am__append_3372) \ $(am__append_3379) $(am__append_3386) $(am__append_3393) \ $(am__append_3400) $(am__append_3407) $(am__append_3414) \ @@ -16646,7 +16623,7 @@ dist_noinst_DATA = kern/disk_common.c gentrigtables.c $(am__append_5) \ $(am__append_3820) $(am__append_3827) $(am__append_3834) \ $(am__append_3841) $(am__append_3848) $(am__append_3855) \ $(am__append_3862) $(am__append_3869) $(am__append_3876) \ - $(am__append_3883) loader/machoXX.c $(am__append_3890) \ + loader/machoXX.c $(am__append_3883) $(am__append_3890) \ $(am__append_3897) $(am__append_3904) $(am__append_3911) \ $(am__append_3918) $(am__append_3925) $(am__append_3932) \ $(am__append_3939) $(am__append_3946) $(am__append_3953) \ @@ -16655,8 +16632,8 @@ dist_noinst_DATA = kern/disk_common.c gentrigtables.c $(am__append_5) \ $(am__append_4002) $(am__append_4009) $(am__append_4016) \ $(am__append_4023) $(am__append_4030) $(am__append_4037) \ $(am__append_4044) $(am__append_4051) $(am__append_4058) \ - $(am__append_4065) $(am__append_4072) script/yylex.l \ - script/parser.y $(am__append_4079) $(am__append_4086) \ + $(am__append_4065) script/yylex.l script/parser.y \ + $(am__append_4072) $(am__append_4079) $(am__append_4086) \ $(am__append_4093) $(am__append_4100) $(am__append_4107) \ $(am__append_4114) $(am__append_4121) $(am__append_4128) \ $(am__append_4135) $(am__append_4142) $(am__append_4149) \ @@ -16723,30 +16700,29 @@ dist_noinst_DATA = kern/disk_common.c gentrigtables.c $(am__append_5) \ $(am__append_5416) $(am__append_5423) $(am__append_5430) \ $(am__append_5437) $(am__append_5444) $(am__append_5451) \ $(am__append_5458) $(am__append_5465) $(am__append_5472) \ - $(am__append_5479) $(am__append_5486) $(am__append_5493) \ - commands/fileXX.c loader/i386/xen_fileXX.c $(am__append_5500) \ + $(am__append_5479) $(am__append_5486) commands/fileXX.c \ + loader/i386/xen_fileXX.c $(am__append_5493) $(am__append_5500) \ $(am__append_5507) $(am__append_5514) $(am__append_5521) \ $(am__append_5528) $(am__append_5535) $(am__append_5542) \ $(am__append_5549) $(am__append_5556) $(am__append_5563) \ $(am__append_5570) $(am__append_5577) $(am__append_5584) \ - $(am__append_5591) $(am__append_5597) $(am__append_5602) \ - $(am__append_5607) $(am__append_5612) $(am__append_5617) \ - $(am__append_5622) $(am__append_5627) $(am__append_5632) \ - $(am__append_5637) $(am__append_5642) $(am__append_5647) \ - $(am__append_5652) $(am__append_5657) $(am__append_5662) \ - $(am__append_5667) $(am__append_5672) $(am__append_5677) \ - $(am__append_5682) $(am__append_5687) $(am__append_5692) \ - $(am__append_5697) $(am__append_5702) $(am__append_5707) \ - $(am__append_5712) $(am__append_5717) $(am__append_5722) \ - $(am__append_5727) $(am__append_5732) $(am__append_5737) \ - $(am__append_5742) $(am__append_5747) $(am__append_5752) \ - $(am__append_5757) $(am__append_5762) $(am__append_5767) \ - $(am__append_5772) $(am__append_5777) $(am__append_5782) \ - $(am__append_5787) $(am__append_5794) gensyminfo.sh.in \ - genmod.sh.in modinfo.sh.in gmodule.pl.in gdb_grub.in \ - $(am__append_5800) + $(am__append_5590) $(am__append_5595) $(am__append_5600) \ + $(am__append_5605) $(am__append_5610) $(am__append_5615) \ + $(am__append_5620) $(am__append_5625) $(am__append_5630) \ + $(am__append_5635) $(am__append_5640) $(am__append_5645) \ + $(am__append_5650) $(am__append_5655) $(am__append_5660) \ + $(am__append_5665) $(am__append_5670) $(am__append_5675) \ + $(am__append_5680) $(am__append_5685) $(am__append_5690) \ + $(am__append_5695) $(am__append_5700) $(am__append_5705) \ + $(am__append_5710) $(am__append_5715) $(am__append_5720) \ + $(am__append_5725) $(am__append_5730) $(am__append_5735) \ + $(am__append_5740) $(am__append_5745) $(am__append_5750) \ + $(am__append_5755) $(am__append_5760) $(am__append_5765) \ + $(am__append_5770) $(am__append_5775) $(am__append_5780) \ + $(am__append_5787) gensyminfo.sh.in genmod.sh.in modinfo.sh.in \ + gmodule.pl.in gdb_grub.in $(am__append_5793) platform_SCRIPTS = -EXTRA_DIST = $(am__append_5799) +EXTRA_DIST = $(am__append_5792) CLEANFILES = build-grub-pep2elf$(BUILD_EXEEXT) \ build-grub-pe2elf$(BUILD_EXEEXT) gentrigtables$(BUILD_EXEEXT) \ build-grub-module-verifier$(BUILD_EXEEXT) trigtables.c \ @@ -16862,48 +16838,48 @@ CLEANFILES = build-grub-pep2elf$(BUILD_EXEEXT) \ $(nodist_pgp_module_SOURCES) pgp.marker $(am__append_2044) \ $(am__append_2051) $(am__append_2058) $(am__append_2065) \ $(am__append_2072) $(am__append_2079) $(am__append_2086) \ - $(am__append_2093) $(am__append_2100) $(am__append_2107) \ + $(am__append_2093) $(am__append_2100) \ $(nodist_help_module_SOURCES) help.marker \ $(nodist_hexdump_module_SOURCES) hexdump.marker \ $(nodist_keystatus_module_SOURCES) keystatus.marker \ - $(am__append_2114) $(am__append_2121) \ + $(am__append_2107) $(am__append_2114) \ $(nodist_loadenv_module_SOURCES) loadenv.marker \ $(nodist_ls_module_SOURCES) ls.marker \ $(nodist_lsmmap_module_SOURCES) lsmmap.marker \ - $(am__append_2128) $(am__append_2135) $(am__append_2142) \ - $(am__append_2149) $(am__append_2156) $(am__append_2163) \ - $(am__append_2170) $(am__append_2177) \ + $(am__append_2121) $(am__append_2128) $(am__append_2135) \ + $(am__append_2142) $(am__append_2149) $(am__append_2156) \ + $(am__append_2163) $(am__append_2170) \ $(nodist_memrw_module_SOURCES) memrw.marker \ $(nodist_minicmd_module_SOURCES) minicmd.marker \ $(nodist_parttool_module_SOURCES) parttool.marker \ $(nodist_password_module_SOURCES) password.marker \ $(nodist_password_pbkdf2_module_SOURCES) \ - password_pbkdf2.marker $(am__append_2184) $(am__append_2191) \ - $(am__append_2198) $(am__append_2205) $(am__append_2212) \ - $(am__append_2219) $(am__append_2226) $(am__append_2233) \ - $(am__append_2240) $(am__append_2247) $(am__append_2254) \ - $(am__append_2261) $(am__append_2268) $(am__append_2275) \ - $(am__append_2282) $(am__append_2289) $(am__append_2296) \ - $(am__append_2303) $(am__append_2310) $(am__append_2317) \ - $(am__append_2324) $(nodist_probe_module_SOURCES) probe.marker \ + password_pbkdf2.marker $(am__append_2177) $(am__append_2184) \ + $(am__append_2191) $(am__append_2198) $(am__append_2205) \ + $(am__append_2212) $(am__append_2219) $(am__append_2226) \ + $(am__append_2233) $(am__append_2240) $(am__append_2247) \ + $(am__append_2254) $(am__append_2261) $(am__append_2268) \ + $(am__append_2275) $(am__append_2282) $(am__append_2289) \ + $(am__append_2296) $(am__append_2303) $(am__append_2310) \ + $(am__append_2317) $(nodist_probe_module_SOURCES) probe.marker \ $(nodist_read_module_SOURCES) read.marker \ $(nodist_search_module_SOURCES) search.marker \ $(nodist_search_fs_file_module_SOURCES) search_fs_file.marker \ $(nodist_search_fs_uuid_module_SOURCES) search_fs_uuid.marker \ $(nodist_search_label_module_SOURCES) search_label.marker \ - $(am__append_2331) $(am__append_2338) $(am__append_2345) \ - $(am__append_2352) $(am__append_2359) $(am__append_2366) \ - $(am__append_2373) $(am__append_2380) $(am__append_2387) \ - $(am__append_2394) $(am__append_2401) $(am__append_2408) \ - $(am__append_2415) $(am__append_2422) $(am__append_2429) \ - $(am__append_2436) $(nodist_sleep_module_SOURCES) sleep.marker \ - $(am__append_2443) $(am__append_2450) \ + $(am__append_2324) $(am__append_2331) $(am__append_2338) \ + $(am__append_2345) $(am__append_2352) $(am__append_2359) \ + $(am__append_2366) $(am__append_2373) $(am__append_2380) \ + $(am__append_2387) $(am__append_2394) $(am__append_2401) \ + $(am__append_2408) $(am__append_2415) $(am__append_2422) \ + $(am__append_2429) $(nodist_sleep_module_SOURCES) sleep.marker \ + $(am__append_2436) $(am__append_2443) \ $(nodist_terminal_module_SOURCES) terminal.marker \ $(nodist_test_module_SOURCES) test.marker \ - $(nodist_true_module_SOURCES) true.marker $(am__append_2457) \ - $(am__append_2464) $(am__append_2471) $(am__append_2478) \ - $(am__append_2485) $(am__append_2492) $(am__append_2499) \ - $(am__append_2506) $(am__append_2513) \ + $(nodist_true_module_SOURCES) true.marker $(am__append_2450) \ + $(am__append_2457) $(am__append_2464) $(am__append_2471) \ + $(am__append_2478) $(am__append_2485) $(am__append_2492) \ + $(am__append_2499) $(am__append_2506) \ $(nodist_videoinfo_module_SOURCES) videoinfo.marker \ $(nodist_videotest_module_SOURCES) videotest.marker \ $(nodist_xnu_uuid_module_SOURCES) xnu_uuid.marker \ @@ -16922,27 +16898,27 @@ CLEANFILES = build-grub-pep2elf$(BUILD_EXEEXT) \ $(nodist_raid6rec_module_SOURCES) raid6rec.marker \ $(nodist_scsi_module_SOURCES) scsi.marker \ $(nodist_memdisk_module_SOURCES) memdisk.marker \ - $(am__append_2520) $(am__append_2527) $(am__append_2534) \ - $(am__append_2541) $(am__append_2548) $(am__append_2555) \ - $(am__append_2562) $(am__append_2569) $(am__append_2576) \ - $(am__append_2583) $(am__append_2590) $(am__append_2597) \ - $(am__append_2604) $(am__append_2611) $(am__append_2618) \ - $(am__append_2625) $(am__append_2632) $(am__append_2639) \ - $(am__append_2646) $(am__append_2653) $(am__append_2660) \ - $(am__append_2667) $(am__append_2674) $(am__append_2681) \ - $(am__append_2688) $(am__append_2695) $(am__append_2702) \ - $(am__append_2709) $(am__append_2716) $(am__append_2723) \ - $(am__append_2730) $(am__append_2737) $(am__append_2744) \ - $(am__append_2751) $(am__append_2758) $(am__append_2765) \ - $(am__append_2772) $(am__append_2779) $(am__append_2786) \ - $(am__append_2793) $(am__append_2800) $(am__append_2807) \ - $(am__append_2814) $(am__append_2821) $(am__append_2828) \ - $(am__append_2835) $(am__append_2842) $(am__append_2849) \ - $(am__append_2856) $(am__append_2863) $(am__append_2870) \ - $(am__append_2877) $(am__append_2884) $(am__append_2891) \ - $(am__append_2898) $(am__append_2905) $(am__append_2912) \ - $(am__append_2919) $(am__append_2926) $(am__append_2933) \ - $(am__append_2940) $(nodist_procfs_module_SOURCES) \ + $(am__append_2513) $(am__append_2520) $(am__append_2527) \ + $(am__append_2534) $(am__append_2541) $(am__append_2548) \ + $(am__append_2555) $(am__append_2562) $(am__append_2569) \ + $(am__append_2576) $(am__append_2583) $(am__append_2590) \ + $(am__append_2597) $(am__append_2604) $(am__append_2611) \ + $(am__append_2618) $(am__append_2625) $(am__append_2632) \ + $(am__append_2639) $(am__append_2646) $(am__append_2653) \ + $(am__append_2660) $(am__append_2667) $(am__append_2674) \ + $(am__append_2681) $(am__append_2688) $(am__append_2695) \ + $(am__append_2702) $(am__append_2709) $(am__append_2716) \ + $(am__append_2723) $(am__append_2730) $(am__append_2737) \ + $(am__append_2744) $(am__append_2751) $(am__append_2758) \ + $(am__append_2765) $(am__append_2772) $(am__append_2779) \ + $(am__append_2786) $(am__append_2793) $(am__append_2800) \ + $(am__append_2807) $(am__append_2814) $(am__append_2821) \ + $(am__append_2828) $(am__append_2835) $(am__append_2842) \ + $(am__append_2849) $(am__append_2856) $(am__append_2863) \ + $(am__append_2870) $(am__append_2877) $(am__append_2884) \ + $(am__append_2891) $(am__append_2898) $(am__append_2905) \ + $(am__append_2912) $(am__append_2919) $(am__append_2926) \ + $(am__append_2933) $(nodist_procfs_module_SOURCES) \ procfs.marker $(nodist_affs_module_SOURCES) affs.marker \ $(nodist_afs_module_SOURCES) afs.marker \ $(nodist_bfs_module_SOURCES) bfs.marker \ @@ -16987,70 +16963,70 @@ CLEANFILES = build-grub-pep2elf$(BUILD_EXEEXT) \ $(nodist_zfscrypt_module_SOURCES) zfscrypt.marker \ $(nodist_zfsinfo_module_SOURCES) zfsinfo.marker \ $(nodist_macbless_module_SOURCES) macbless.marker \ - $(am__append_2947) $(nodist_gettext_module_SOURCES) \ + $(am__append_2940) $(nodist_gettext_module_SOURCES) \ gettext.marker $(nodist_gfxmenu_module_SOURCES) gfxmenu.marker \ $(nodist_hello_module_SOURCES) hello.marker \ $(nodist_gzio_module_SOURCES) gzio.marker \ $(nodist_offsetio_module_SOURCES) offsetio.marker \ - $(am__append_2954) $(am__append_2961) $(am__append_2968) \ - $(am__append_2975) $(am__append_2982) $(am__append_2989) \ - $(am__append_2996) $(am__append_3003) $(am__append_3010) \ - $(am__append_3017) $(am__append_3024) $(am__append_3031) \ - $(am__append_3038) $(am__append_3045) $(am__append_3052) \ - $(am__append_3059) $(am__append_3066) $(am__append_3073) \ - $(am__append_3080) $(am__append_3087) \ + $(am__append_2947) $(am__append_2954) $(am__append_2961) \ + $(am__append_2968) $(am__append_2975) $(am__append_2982) \ + $(am__append_2989) $(am__append_2996) $(am__append_3003) \ + $(am__append_3010) $(am__append_3017) $(am__append_3024) \ + $(am__append_3031) $(am__append_3038) $(am__append_3045) \ + $(am__append_3052) $(am__append_3059) $(am__append_3066) \ + $(am__append_3073) $(am__append_3080) \ $(nodist_elf_module_SOURCES) elf.marker \ $(nodist_crypto_module_SOURCES) crypto.marker \ $(nodist_pbkdf2_module_SOURCES) pbkdf2.marker \ - $(am__append_3094) $(am__append_3101) $(am__append_3108) \ - $(am__append_3115) $(am__append_3122) $(am__append_3129) \ - $(am__append_3136) $(am__append_3143) $(am__append_3150) \ - $(am__append_3157) $(am__append_3164) $(am__append_3171) \ - $(am__append_3178) $(am__append_3185) $(am__append_3192) \ - $(am__append_3199) $(am__append_3206) $(am__append_3213) \ - $(am__append_3220) $(am__append_3227) $(am__append_3234) \ - $(am__append_3241) $(am__append_3248) $(am__append_3255) \ - $(am__append_3262) $(am__append_3269) $(am__append_3276) \ - $(am__append_3283) $(am__append_3290) $(am__append_3297) \ - $(am__append_3304) $(am__append_3311) $(am__append_3318) \ - $(am__append_3325) $(am__append_3332) $(am__append_3339) \ + $(am__append_3087) $(am__append_3094) $(am__append_3101) \ + $(am__append_3108) $(am__append_3115) $(am__append_3122) \ + $(am__append_3129) $(am__append_3136) $(am__append_3143) \ + $(am__append_3150) $(am__append_3157) $(am__append_3164) \ + $(am__append_3171) $(am__append_3178) $(am__append_3185) \ + $(am__append_3192) $(am__append_3199) $(am__append_3206) \ + $(am__append_3213) $(am__append_3220) $(am__append_3227) \ + $(am__append_3234) $(am__append_3241) $(am__append_3248) \ + $(am__append_3255) $(am__append_3262) $(am__append_3269) \ + $(am__append_3276) $(am__append_3283) $(am__append_3290) \ + $(am__append_3297) $(am__append_3304) $(am__append_3311) \ + $(am__append_3318) $(am__append_3325) $(am__append_3332) \ $(nodist_setjmp_module_SOURCES) setjmp.marker \ - $(am__append_3346) $(am__append_3353) $(am__append_3360) \ - $(am__append_3367) $(am__append_3374) $(am__append_3381) \ - $(am__append_3388) $(am__append_3395) $(am__append_3402) \ - $(am__append_3409) $(am__append_3416) $(am__append_3423) \ - $(am__append_3430) $(am__append_3437) $(am__append_3444) \ - $(am__append_3451) $(am__append_3458) $(am__append_3465) \ - $(am__append_3472) $(am__append_3479) $(am__append_3486) \ - $(am__append_3493) $(am__append_3500) $(am__append_3507) \ - $(am__append_3514) $(am__append_3521) $(am__append_3528) \ - $(am__append_3535) $(am__append_3542) $(am__append_3549) \ - $(am__append_3556) $(am__append_3563) $(am__append_3570) \ - $(am__append_3577) $(am__append_3584) $(am__append_3591) \ - $(am__append_3598) $(am__append_3605) $(am__append_3612) \ - $(am__append_3619) $(am__append_3626) $(am__append_3633) \ - $(am__append_3640) $(am__append_3647) $(am__append_3654) \ - $(am__append_3661) $(am__append_3668) $(am__append_3675) \ - $(am__append_3682) $(am__append_3689) $(am__append_3696) \ - $(am__append_3703) $(am__append_3710) $(am__append_3717) \ - $(am__append_3724) $(am__append_3731) $(am__append_3738) \ - $(am__append_3745) $(am__append_3752) $(am__append_3759) \ - $(am__append_3766) $(am__append_3773) $(am__append_3780) \ - $(am__append_3787) $(am__append_3794) $(am__append_3801) \ - $(am__append_3808) $(am__append_3815) $(am__append_3822) \ - $(am__append_3829) $(am__append_3836) $(am__append_3843) \ - $(am__append_3850) $(am__append_3857) $(am__append_3864) \ - $(am__append_3871) $(am__append_3878) $(am__append_3885) \ - $(nodist_macho_module_SOURCES) macho.marker $(am__append_3892) \ - $(am__append_3899) $(am__append_3906) $(am__append_3913) \ - $(am__append_3920) $(am__append_3927) $(am__append_3934) \ - $(am__append_3941) $(am__append_3948) $(am__append_3955) \ - $(am__append_3962) $(am__append_3969) $(am__append_3976) \ - $(am__append_3983) $(am__append_3990) $(am__append_3997) \ - $(am__append_4004) $(am__append_4011) $(am__append_4018) \ - $(am__append_4025) $(am__append_4032) $(am__append_4039) \ - $(am__append_4046) $(am__append_4053) $(am__append_4060) \ - $(am__append_4067) $(am__append_4074) \ + $(am__append_3339) $(am__append_3346) $(am__append_3353) \ + $(am__append_3360) $(am__append_3367) $(am__append_3374) \ + $(am__append_3381) $(am__append_3388) $(am__append_3395) \ + $(am__append_3402) $(am__append_3409) $(am__append_3416) \ + $(am__append_3423) $(am__append_3430) $(am__append_3437) \ + $(am__append_3444) $(am__append_3451) $(am__append_3458) \ + $(am__append_3465) $(am__append_3472) $(am__append_3479) \ + $(am__append_3486) $(am__append_3493) $(am__append_3500) \ + $(am__append_3507) $(am__append_3514) $(am__append_3521) \ + $(am__append_3528) $(am__append_3535) $(am__append_3542) \ + $(am__append_3549) $(am__append_3556) $(am__append_3563) \ + $(am__append_3570) $(am__append_3577) $(am__append_3584) \ + $(am__append_3591) $(am__append_3598) $(am__append_3605) \ + $(am__append_3612) $(am__append_3619) $(am__append_3626) \ + $(am__append_3633) $(am__append_3640) $(am__append_3647) \ + $(am__append_3654) $(am__append_3661) $(am__append_3668) \ + $(am__append_3675) $(am__append_3682) $(am__append_3689) \ + $(am__append_3696) $(am__append_3703) $(am__append_3710) \ + $(am__append_3717) $(am__append_3724) $(am__append_3731) \ + $(am__append_3738) $(am__append_3745) $(am__append_3752) \ + $(am__append_3759) $(am__append_3766) $(am__append_3773) \ + $(am__append_3780) $(am__append_3787) $(am__append_3794) \ + $(am__append_3801) $(am__append_3808) $(am__append_3815) \ + $(am__append_3822) $(am__append_3829) $(am__append_3836) \ + $(am__append_3843) $(am__append_3850) $(am__append_3857) \ + $(am__append_3864) $(am__append_3871) $(am__append_3878) \ + $(nodist_macho_module_SOURCES) macho.marker $(am__append_3885) \ + $(am__append_3892) $(am__append_3899) $(am__append_3906) \ + $(am__append_3913) $(am__append_3920) $(am__append_3927) \ + $(am__append_3934) $(am__append_3941) $(am__append_3948) \ + $(am__append_3955) $(am__append_3962) $(am__append_3969) \ + $(am__append_3976) $(am__append_3983) $(am__append_3990) \ + $(am__append_3997) $(am__append_4004) $(am__append_4011) \ + $(am__append_4018) $(am__append_4025) $(am__append_4032) \ + $(am__append_4039) $(am__append_4046) $(am__append_4053) \ + $(am__append_4060) $(am__append_4067) \ $(nodist_normal_module_SOURCES) normal.marker \ $(nodist_part_acorn_module_SOURCES) part_acorn.marker \ $(nodist_part_amiga_module_SOURCES) part_amiga.marker \ @@ -17064,35 +17040,35 @@ CLEANFILES = build-grub-pep2elf$(BUILD_EXEEXT) \ $(nodist_part_sunpc_module_SOURCES) part_sunpc.marker \ $(nodist_part_dfly_module_SOURCES) part_dfly.marker \ $(nodist_msdospart_module_SOURCES) msdospart.marker \ - $(am__append_4081) $(am__append_4088) $(am__append_4095) \ - $(am__append_4102) $(am__append_4109) $(am__append_4116) \ - $(am__append_4123) $(am__append_4130) $(am__append_4137) \ - $(am__append_4144) $(am__append_4151) $(am__append_4158) \ - $(am__append_4165) $(am__append_4172) $(am__append_4179) \ - $(am__append_4186) $(am__append_4193) $(am__append_4200) \ - $(am__append_4207) $(am__append_4214) $(am__append_4221) \ - $(am__append_4228) $(am__append_4235) $(am__append_4242) \ - $(am__append_4249) $(am__append_4256) $(am__append_4263) \ + $(am__append_4074) $(am__append_4081) $(am__append_4088) \ + $(am__append_4095) $(am__append_4102) $(am__append_4109) \ + $(am__append_4116) $(am__append_4123) $(am__append_4130) \ + $(am__append_4137) $(am__append_4144) $(am__append_4151) \ + $(am__append_4158) $(am__append_4165) $(am__append_4172) \ + $(am__append_4179) $(am__append_4186) $(am__append_4193) \ + $(am__append_4200) $(am__append_4207) $(am__append_4214) \ + $(am__append_4221) $(am__append_4228) $(am__append_4235) \ + $(am__append_4242) $(am__append_4249) $(am__append_4256) \ $(nodist_gfxterm_background_module_SOURCES) \ - gfxterm_background.marker $(am__append_4270) \ - $(am__append_4277) $(am__append_4284) $(am__append_4291) \ - $(am__append_4298) $(am__append_4305) $(am__append_4312) \ - $(am__append_4319) $(am__append_4326) $(am__append_4333) \ - $(am__append_4340) $(am__append_4347) $(am__append_4354) \ - $(am__append_4361) $(am__append_4368) $(am__append_4375) \ - $(am__append_4382) $(am__append_4389) $(am__append_4396) \ - $(am__append_4403) $(am__append_4410) $(am__append_4417) \ - $(am__append_4424) $(am__append_4431) $(am__append_4438) \ - $(am__append_4445) $(am__append_4452) $(am__append_4459) \ - $(am__append_4466) $(am__append_4473) $(am__append_4480) \ - $(am__append_4487) $(am__append_4494) $(am__append_4501) \ - $(am__append_4508) $(am__append_4515) $(am__append_4522) \ - $(am__append_4529) $(am__append_4536) $(am__append_4543) \ - $(am__append_4550) $(am__append_4557) $(am__append_4564) \ - $(am__append_4571) $(am__append_4578) $(am__append_4585) \ - $(am__append_4592) $(am__append_4599) $(am__append_4606) \ - $(am__append_4613) $(am__append_4620) $(am__append_4627) \ - $(am__append_4634) $(am__append_4641) $(am__append_4648) \ + gfxterm_background.marker $(am__append_4263) \ + $(am__append_4270) $(am__append_4277) $(am__append_4284) \ + $(am__append_4291) $(am__append_4298) $(am__append_4305) \ + $(am__append_4312) $(am__append_4319) $(am__append_4326) \ + $(am__append_4333) $(am__append_4340) $(am__append_4347) \ + $(am__append_4354) $(am__append_4361) $(am__append_4368) \ + $(am__append_4375) $(am__append_4382) $(am__append_4389) \ + $(am__append_4396) $(am__append_4403) $(am__append_4410) \ + $(am__append_4417) $(am__append_4424) $(am__append_4431) \ + $(am__append_4438) $(am__append_4445) $(am__append_4452) \ + $(am__append_4459) $(am__append_4466) $(am__append_4473) \ + $(am__append_4480) $(am__append_4487) $(am__append_4494) \ + $(am__append_4501) $(am__append_4508) $(am__append_4515) \ + $(am__append_4522) $(am__append_4529) $(am__append_4536) \ + $(am__append_4543) $(am__append_4550) $(am__append_4557) \ + $(am__append_4564) $(am__append_4571) $(am__append_4578) \ + $(am__append_4585) $(am__append_4592) $(am__append_4599) \ + $(am__append_4606) $(am__append_4613) $(am__append_4620) \ + $(am__append_4627) $(am__append_4634) $(am__append_4641) \ $(nodist_functional_test_module_SOURCES) \ functional_test.marker $(nodist_exfctest_module_SOURCES) \ exfctest.marker $(nodist_strtoull_test_module_SOURCES) \ @@ -17101,15 +17077,15 @@ CLEANFILES = build-grub-pep2elf$(BUILD_EXEEXT) \ signature_test.marker $(nodist_sleep_test_module_SOURCES) \ sleep_test.marker $(nodist_xnu_uuid_test_module_SOURCES) \ xnu_uuid_test.marker $(nodist_pbkdf2_test_module_SOURCES) \ - pbkdf2_test.marker $(am__append_4655) $(am__append_4662) \ - $(am__append_4669) $(am__append_4676) $(am__append_4683) \ - $(am__append_4690) $(am__append_4697) $(am__append_4704) \ - $(am__append_4711) $(am__append_4718) $(am__append_4725) \ - $(am__append_4732) $(am__append_4739) $(am__append_4746) \ - $(am__append_4753) $(am__append_4760) $(am__append_4767) \ - $(am__append_4774) $(am__append_4781) $(am__append_4788) \ - $(am__append_4795) $(am__append_4802) $(am__append_4809) \ - $(am__append_4816) $(am__append_4823) \ + pbkdf2_test.marker $(am__append_4648) $(am__append_4655) \ + $(am__append_4662) $(am__append_4669) $(am__append_4676) \ + $(am__append_4683) $(am__append_4690) $(am__append_4697) \ + $(am__append_4704) $(am__append_4711) $(am__append_4718) \ + $(am__append_4725) $(am__append_4732) $(am__append_4739) \ + $(am__append_4746) $(am__append_4753) $(am__append_4760) \ + $(am__append_4767) $(am__append_4774) $(am__append_4781) \ + $(am__append_4788) $(am__append_4795) $(am__append_4802) \ + $(am__append_4809) $(am__append_4816) \ $(nodist_div_test_module_SOURCES) div_test.marker \ $(nodist_mul_test_module_SOURCES) mul_test.marker \ $(nodist_shift_test_module_SOURCES) shift_test.marker \ @@ -17122,65 +17098,65 @@ CLEANFILES = build-grub-pep2elf$(BUILD_EXEEXT) \ $(nodist_cmdline_cat_test_module_SOURCES) \ cmdline_cat_test.marker $(nodist_bitmap_module_SOURCES) \ bitmap.marker $(nodist_bitmap_scale_module_SOURCES) \ - bitmap_scale.marker $(am__append_4830) $(am__append_4837) \ - $(am__append_4844) $(am__append_4851) $(am__append_4858) \ - $(am__append_4865) $(am__append_4872) $(am__append_4879) \ - $(am__append_4886) $(nodist_jpeg_module_SOURCES) jpeg.marker \ + bitmap_scale.marker $(am__append_4823) $(am__append_4830) \ + $(am__append_4837) $(am__append_4844) $(am__append_4851) \ + $(am__append_4858) $(am__append_4865) $(am__append_4872) \ + $(am__append_4879) $(nodist_jpeg_module_SOURCES) jpeg.marker \ $(nodist_png_module_SOURCES) png.marker \ - $(nodist_tga_module_SOURCES) tga.marker $(am__append_4893) \ - $(am__append_4900) $(am__append_4907) $(am__append_4914) \ - $(am__append_4921) $(am__append_4928) $(am__append_4935) \ - $(am__append_4942) $(am__append_4949) $(am__append_4956) \ - $(am__append_4963) $(am__append_4970) $(am__append_4977) \ - $(am__append_4984) $(am__append_4991) $(am__append_4998) \ - $(am__append_5005) $(am__append_5012) $(am__append_5019) \ - $(am__append_5026) $(am__append_5033) $(am__append_5040) \ - $(am__append_5047) $(am__append_5054) $(am__append_5061) \ - $(am__append_5068) $(am__append_5075) $(am__append_5082) \ - $(am__append_5089) $(am__append_5096) $(am__append_5103) \ - $(am__append_5110) $(am__append_5117) $(am__append_5124) \ - $(am__append_5131) $(am__append_5138) $(am__append_5145) \ - $(am__append_5152) $(am__append_5159) $(am__append_5166) \ - $(am__append_5173) $(nodist_video_colors_module_SOURCES) \ - video_colors.marker $(am__append_5180) $(am__append_5187) \ + $(nodist_tga_module_SOURCES) tga.marker $(am__append_4886) \ + $(am__append_4893) $(am__append_4900) $(am__append_4907) \ + $(am__append_4914) $(am__append_4921) $(am__append_4928) \ + $(am__append_4935) $(am__append_4942) $(am__append_4949) \ + $(am__append_4956) $(am__append_4963) $(am__append_4970) \ + $(am__append_4977) $(am__append_4984) $(am__append_4991) \ + $(am__append_4998) $(am__append_5005) $(am__append_5012) \ + $(am__append_5019) $(am__append_5026) $(am__append_5033) \ + $(am__append_5040) $(am__append_5047) $(am__append_5054) \ + $(am__append_5061) $(am__append_5068) $(am__append_5075) \ + $(am__append_5082) $(am__append_5089) $(am__append_5096) \ + $(am__append_5103) $(am__append_5110) $(am__append_5117) \ + $(am__append_5124) $(am__append_5131) $(am__append_5138) \ + $(am__append_5145) $(am__append_5152) $(am__append_5159) \ + $(am__append_5166) $(nodist_video_colors_module_SOURCES) \ + video_colors.marker $(am__append_5173) $(am__append_5180) \ $(nodist_datehook_module_SOURCES) datehook.marker \ $(nodist_net_module_SOURCES) net.marker \ $(nodist_tftp_module_SOURCES) tftp.marker \ - $(nodist_http_module_SOURCES) http.marker $(am__append_5194) \ - $(am__append_5201) $(am__append_5208) $(am__append_5215) \ - $(am__append_5222) $(am__append_5229) $(am__append_5236) \ - $(am__append_5243) $(am__append_5250) $(am__append_5257) \ - $(am__append_5264) $(am__append_5271) $(am__append_5278) \ - $(am__append_5285) $(am__append_5292) $(am__append_5299) \ - $(am__append_5306) $(am__append_5313) \ + $(nodist_http_module_SOURCES) http.marker $(am__append_5187) \ + $(am__append_5194) $(am__append_5201) $(am__append_5208) \ + $(am__append_5215) $(am__append_5222) $(am__append_5229) \ + $(am__append_5236) $(am__append_5243) $(am__append_5250) \ + $(am__append_5257) $(am__append_5264) $(am__append_5271) \ + $(am__append_5278) $(am__append_5285) $(am__append_5292) \ + $(am__append_5299) $(am__append_5306) \ $(nodist_syslinuxcfg_module_SOURCES) syslinuxcfg.marker \ $(nodist_test_blockarg_module_SOURCES) test_blockarg.marker \ $(nodist_xzio_module_SOURCES) xzio.marker \ $(nodist_lzopio_module_SOURCES) lzopio.marker \ $(nodist_testload_module_SOURCES) testload.marker \ - $(am__append_5320) $(am__append_5327) $(am__append_5334) \ - $(am__append_5341) $(am__append_5348) $(am__append_5355) \ - $(am__append_5362) $(am__append_5369) $(am__append_5376) \ - $(am__append_5383) $(am__append_5390) $(am__append_5397) \ - $(am__append_5404) $(am__append_5411) $(am__append_5418) \ - $(am__append_5425) $(am__append_5432) \ + $(am__append_5313) $(am__append_5320) $(am__append_5327) \ + $(am__append_5334) $(am__append_5341) $(am__append_5348) \ + $(am__append_5355) $(am__append_5362) $(am__append_5369) \ + $(am__append_5376) $(am__append_5383) $(am__append_5390) \ + $(am__append_5397) $(am__append_5404) $(am__append_5411) \ + $(am__append_5418) $(am__append_5425) \ $(nodist_priority_queue_module_SOURCES) priority_queue.marker \ - $(nodist_time_module_SOURCES) time.marker $(am__append_5439) \ - $(am__append_5446) $(nodist_adler32_module_SOURCES) \ + $(nodist_time_module_SOURCES) time.marker $(am__append_5432) \ + $(am__append_5439) $(nodist_adler32_module_SOURCES) \ adler32.marker $(nodist_crc64_module_SOURCES) crc64.marker \ $(nodist_mpi_module_SOURCES) mpi.marker \ $(nodist_all_video_module_SOURCES) all_video.marker \ - $(am__append_5453) $(am__append_5460) $(am__append_5467) \ - $(am__append_5474) $(am__append_5481) $(am__append_5488) \ + $(am__append_5446) $(am__append_5453) $(am__append_5460) \ + $(am__append_5467) $(am__append_5474) $(am__append_5481) \ $(nodist_testspeed_module_SOURCES) testspeed.marker \ - $(am__append_5495) $(nodist_tr_module_SOURCES) tr.marker \ + $(am__append_5488) $(nodist_tr_module_SOURCES) tr.marker \ $(nodist_progress_module_SOURCES) progress.marker \ - $(nodist_file_module_SOURCES) file.marker $(am__append_5502) \ - $(am__append_5509) $(am__append_5516) $(am__append_5523) \ - $(am__append_5530) $(am__append_5537) $(am__append_5544) \ - $(am__append_5551) $(am__append_5558) $(am__append_5565) \ - $(am__append_5572) $(am__append_5579) $(am__append_5586) \ - $(am__append_5593) $(nodist_gcry_arcfour_module_SOURCES) \ + $(nodist_file_module_SOURCES) file.marker $(am__append_5495) \ + $(am__append_5502) $(am__append_5509) $(am__append_5516) \ + $(am__append_5523) $(am__append_5530) $(am__append_5537) \ + $(am__append_5544) $(am__append_5551) $(am__append_5558) \ + $(am__append_5565) $(am__append_5572) $(am__append_5579) \ + $(am__append_5586) $(nodist_gcry_arcfour_module_SOURCES) \ gcry_arcfour.marker $(nodist_gcry_blowfish_module_SOURCES) \ gcry_blowfish.marker $(nodist_gcry_camellia_module_SOURCES) \ gcry_camellia.marker $(nodist_gcry_cast5_module_SOURCES) \ @@ -17202,25 +17178,25 @@ CLEANFILES = build-grub-pep2elf$(BUILD_EXEEXT) \ gcry_sha512.marker $(nodist_gcry_tiger_module_SOURCES) \ gcry_tiger.marker $(nodist_gcry_twofish_module_SOURCES) \ gcry_twofish.marker $(nodist_gcry_whirlpool_module_SOURCES) \ - gcry_whirlpool.marker $(am__append_5599) $(am__append_5604) \ - $(am__append_5609) $(am__append_5614) $(am__append_5619) \ - $(am__append_5624) $(am__append_5629) $(am__append_5634) \ - $(am__append_5639) $(am__append_5644) $(am__append_5649) \ - $(am__append_5654) $(am__append_5659) $(am__append_5664) \ - $(am__append_5669) $(am__append_5674) $(am__append_5679) \ - $(am__append_5684) $(am__append_5689) $(am__append_5694) \ - $(am__append_5699) $(am__append_5704) $(am__append_5709) \ - $(am__append_5714) $(am__append_5719) $(am__append_5724) \ - $(am__append_5729) $(am__append_5734) $(am__append_5739) \ - $(am__append_5744) $(am__append_5749) $(am__append_5754) \ - $(am__append_5759) $(am__append_5764) $(am__append_5769) \ - $(am__append_5774) $(am__append_5779) $(am__append_5784) \ - $(am__append_5789) $(am__append_5793) $(am__append_5796) \ + gcry_whirlpool.marker $(am__append_5592) $(am__append_5597) \ + $(am__append_5602) $(am__append_5607) $(am__append_5612) \ + $(am__append_5617) $(am__append_5622) $(am__append_5627) \ + $(am__append_5632) $(am__append_5637) $(am__append_5642) \ + $(am__append_5647) $(am__append_5652) $(am__append_5657) \ + $(am__append_5662) $(am__append_5667) $(am__append_5672) \ + $(am__append_5677) $(am__append_5682) $(am__append_5687) \ + $(am__append_5692) $(am__append_5697) $(am__append_5702) \ + $(am__append_5707) $(am__append_5712) $(am__append_5717) \ + $(am__append_5722) $(am__append_5727) $(am__append_5732) \ + $(am__append_5737) $(am__append_5742) $(am__append_5747) \ + $(am__append_5752) $(am__append_5757) $(am__append_5762) \ + $(am__append_5767) $(am__append_5772) $(am__append_5777) \ + $(am__append_5782) $(am__append_5786) $(am__append_5789) \ gensyminfo.sh genmod.sh modinfo.sh gmodule.pl gdb_grub \ - $(am__append_5798) symlist.h symlist.c kernel_syms.lst \ - $(am__append_5830) fs.lst command.lst partmap.lst terminal.lst \ + $(am__append_5791) symlist.h symlist.c kernel_syms.lst \ + $(am__append_5823) fs.lst command.lst partmap.lst terminal.lst \ fdt.lst parttool.lst video.lst crypto.lst config.log \ - syminfo.lst moddep.lst $(MOD_FILES) $(am__append_5832) + syminfo.lst moddep.lst $(MOD_FILES) $(am__append_5825) BUILT_SOURCES = $(nodist_disk_module_SOURCES) \ $(nodist_trig_module_SOURCES) $(am__append_6) $(am__append_13) \ $(am__append_20) $(am__append_27) $(am__append_34) \ @@ -17329,42 +17305,41 @@ BUILT_SOURCES = $(nodist_disk_module_SOURCES) \ $(am__append_2043) $(am__append_2050) $(am__append_2057) \ $(am__append_2064) $(am__append_2071) $(am__append_2078) \ $(am__append_2085) $(am__append_2092) $(am__append_2099) \ - $(am__append_2106) $(nodist_help_module_SOURCES) \ - $(nodist_hexdump_module_SOURCES) \ - $(nodist_keystatus_module_SOURCES) $(am__append_2113) \ - $(am__append_2120) $(nodist_loadenv_module_SOURCES) \ + $(nodist_help_module_SOURCES) $(nodist_hexdump_module_SOURCES) \ + $(nodist_keystatus_module_SOURCES) $(am__append_2106) \ + $(am__append_2113) $(nodist_loadenv_module_SOURCES) \ $(nodist_ls_module_SOURCES) $(nodist_lsmmap_module_SOURCES) \ - $(am__append_2127) $(am__append_2134) $(am__append_2141) \ - $(am__append_2148) $(am__append_2155) $(am__append_2162) \ - $(am__append_2169) $(am__append_2176) \ + $(am__append_2120) $(am__append_2127) $(am__append_2134) \ + $(am__append_2141) $(am__append_2148) $(am__append_2155) \ + $(am__append_2162) $(am__append_2169) \ $(nodist_memrw_module_SOURCES) \ $(nodist_minicmd_module_SOURCES) \ $(nodist_parttool_module_SOURCES) \ $(nodist_password_module_SOURCES) \ - $(nodist_password_pbkdf2_module_SOURCES) $(am__append_2183) \ - $(am__append_2190) $(am__append_2197) $(am__append_2204) \ - $(am__append_2211) $(am__append_2218) $(am__append_2225) \ - $(am__append_2232) $(am__append_2239) $(am__append_2246) \ - $(am__append_2253) $(am__append_2260) $(am__append_2267) \ - $(am__append_2274) $(am__append_2281) $(am__append_2288) \ - $(am__append_2295) $(am__append_2302) $(am__append_2309) \ - $(am__append_2316) $(am__append_2323) \ + $(nodist_password_pbkdf2_module_SOURCES) $(am__append_2176) \ + $(am__append_2183) $(am__append_2190) $(am__append_2197) \ + $(am__append_2204) $(am__append_2211) $(am__append_2218) \ + $(am__append_2225) $(am__append_2232) $(am__append_2239) \ + $(am__append_2246) $(am__append_2253) $(am__append_2260) \ + $(am__append_2267) $(am__append_2274) $(am__append_2281) \ + $(am__append_2288) $(am__append_2295) $(am__append_2302) \ + $(am__append_2309) $(am__append_2316) \ $(nodist_probe_module_SOURCES) $(nodist_read_module_SOURCES) \ $(nodist_search_module_SOURCES) \ $(nodist_search_fs_file_module_SOURCES) \ $(nodist_search_fs_uuid_module_SOURCES) \ - $(nodist_search_label_module_SOURCES) $(am__append_2330) \ - $(am__append_2337) $(am__append_2344) $(am__append_2351) \ - $(am__append_2358) $(am__append_2365) $(am__append_2372) \ - $(am__append_2379) $(am__append_2386) $(am__append_2393) \ - $(am__append_2400) $(am__append_2407) $(am__append_2414) \ - $(am__append_2421) $(am__append_2428) $(am__append_2435) \ - $(nodist_sleep_module_SOURCES) $(am__append_2442) \ - $(am__append_2449) $(nodist_terminal_module_SOURCES) \ + $(nodist_search_label_module_SOURCES) $(am__append_2323) \ + $(am__append_2330) $(am__append_2337) $(am__append_2344) \ + $(am__append_2351) $(am__append_2358) $(am__append_2365) \ + $(am__append_2372) $(am__append_2379) $(am__append_2386) \ + $(am__append_2393) $(am__append_2400) $(am__append_2407) \ + $(am__append_2414) $(am__append_2421) $(am__append_2428) \ + $(nodist_sleep_module_SOURCES) $(am__append_2435) \ + $(am__append_2442) $(nodist_terminal_module_SOURCES) \ $(nodist_test_module_SOURCES) $(nodist_true_module_SOURCES) \ - $(am__append_2456) $(am__append_2463) $(am__append_2470) \ - $(am__append_2477) $(am__append_2484) $(am__append_2491) \ - $(am__append_2498) $(am__append_2505) $(am__append_2512) \ + $(am__append_2449) $(am__append_2456) $(am__append_2463) \ + $(am__append_2470) $(am__append_2477) $(am__append_2484) \ + $(am__append_2491) $(am__append_2498) $(am__append_2505) \ $(nodist_videoinfo_module_SOURCES) \ $(nodist_videotest_module_SOURCES) \ $(nodist_xnu_uuid_module_SOURCES) \ @@ -17380,27 +17355,27 @@ BUILT_SOURCES = $(nodist_disk_module_SOURCES) \ $(nodist_raid5rec_module_SOURCES) \ $(nodist_raid6rec_module_SOURCES) \ $(nodist_scsi_module_SOURCES) $(nodist_memdisk_module_SOURCES) \ - $(am__append_2519) $(am__append_2526) $(am__append_2533) \ - $(am__append_2540) $(am__append_2547) $(am__append_2554) \ - $(am__append_2561) $(am__append_2568) $(am__append_2575) \ - $(am__append_2582) $(am__append_2589) $(am__append_2596) \ - $(am__append_2603) $(am__append_2610) $(am__append_2617) \ - $(am__append_2624) $(am__append_2631) $(am__append_2638) \ - $(am__append_2645) $(am__append_2652) $(am__append_2659) \ - $(am__append_2666) $(am__append_2673) $(am__append_2680) \ - $(am__append_2687) $(am__append_2694) $(am__append_2701) \ - $(am__append_2708) $(am__append_2715) $(am__append_2722) \ - $(am__append_2729) $(am__append_2736) $(am__append_2743) \ - $(am__append_2750) $(am__append_2757) $(am__append_2764) \ - $(am__append_2771) $(am__append_2778) $(am__append_2785) \ - $(am__append_2792) $(am__append_2799) $(am__append_2806) \ - $(am__append_2813) $(am__append_2820) $(am__append_2827) \ - $(am__append_2834) $(am__append_2841) $(am__append_2848) \ - $(am__append_2855) $(am__append_2862) $(am__append_2869) \ - $(am__append_2876) $(am__append_2883) $(am__append_2890) \ - $(am__append_2897) $(am__append_2904) $(am__append_2911) \ - $(am__append_2918) $(am__append_2925) $(am__append_2932) \ - $(am__append_2939) $(nodist_procfs_module_SOURCES) \ + $(am__append_2512) $(am__append_2519) $(am__append_2526) \ + $(am__append_2533) $(am__append_2540) $(am__append_2547) \ + $(am__append_2554) $(am__append_2561) $(am__append_2568) \ + $(am__append_2575) $(am__append_2582) $(am__append_2589) \ + $(am__append_2596) $(am__append_2603) $(am__append_2610) \ + $(am__append_2617) $(am__append_2624) $(am__append_2631) \ + $(am__append_2638) $(am__append_2645) $(am__append_2652) \ + $(am__append_2659) $(am__append_2666) $(am__append_2673) \ + $(am__append_2680) $(am__append_2687) $(am__append_2694) \ + $(am__append_2701) $(am__append_2708) $(am__append_2715) \ + $(am__append_2722) $(am__append_2729) $(am__append_2736) \ + $(am__append_2743) $(am__append_2750) $(am__append_2757) \ + $(am__append_2764) $(am__append_2771) $(am__append_2778) \ + $(am__append_2785) $(am__append_2792) $(am__append_2799) \ + $(am__append_2806) $(am__append_2813) $(am__append_2820) \ + $(am__append_2827) $(am__append_2834) $(am__append_2841) \ + $(am__append_2848) $(am__append_2855) $(am__append_2862) \ + $(am__append_2869) $(am__append_2876) $(am__append_2883) \ + $(am__append_2890) $(am__append_2897) $(am__append_2904) \ + $(am__append_2911) $(am__append_2918) $(am__append_2925) \ + $(am__append_2932) $(nodist_procfs_module_SOURCES) \ $(nodist_affs_module_SOURCES) $(nodist_afs_module_SOURCES) \ $(nodist_bfs_module_SOURCES) $(nodist_zstd_module_SOURCES) \ $(nodist_btrfs_module_SOURCES) \ @@ -17428,69 +17403,69 @@ BUILT_SOURCES = $(nodist_disk_module_SOURCES) \ $(nodist_xfs_module_SOURCES) $(nodist_zfs_module_SOURCES) \ $(nodist_zfscrypt_module_SOURCES) \ $(nodist_zfsinfo_module_SOURCES) \ - $(nodist_macbless_module_SOURCES) $(am__append_2946) \ + $(nodist_macbless_module_SOURCES) $(am__append_2939) \ $(nodist_gettext_module_SOURCES) \ $(nodist_gfxmenu_module_SOURCES) \ $(nodist_hello_module_SOURCES) $(nodist_gzio_module_SOURCES) \ - $(nodist_offsetio_module_SOURCES) $(am__append_2953) \ - $(am__append_2960) $(am__append_2967) $(am__append_2974) \ - $(am__append_2981) $(am__append_2988) $(am__append_2995) \ - $(am__append_3002) $(am__append_3009) $(am__append_3016) \ - $(am__append_3023) $(am__append_3030) $(am__append_3037) \ - $(am__append_3044) $(am__append_3051) $(am__append_3058) \ - $(am__append_3065) $(am__append_3072) $(am__append_3079) \ - $(am__append_3086) $(nodist_elf_module_SOURCES) \ + $(nodist_offsetio_module_SOURCES) $(am__append_2946) \ + $(am__append_2953) $(am__append_2960) $(am__append_2967) \ + $(am__append_2974) $(am__append_2981) $(am__append_2988) \ + $(am__append_2995) $(am__append_3002) $(am__append_3009) \ + $(am__append_3016) $(am__append_3023) $(am__append_3030) \ + $(am__append_3037) $(am__append_3044) $(am__append_3051) \ + $(am__append_3058) $(am__append_3065) $(am__append_3072) \ + $(am__append_3079) $(nodist_elf_module_SOURCES) \ $(nodist_crypto_module_SOURCES) \ - $(nodist_pbkdf2_module_SOURCES) $(am__append_3093) \ - $(am__append_3100) $(am__append_3107) $(am__append_3114) \ - $(am__append_3121) $(am__append_3128) $(am__append_3135) \ - $(am__append_3142) $(am__append_3149) $(am__append_3156) \ - $(am__append_3163) $(am__append_3170) $(am__append_3177) \ - $(am__append_3184) $(am__append_3191) $(am__append_3198) \ - $(am__append_3205) $(am__append_3212) $(am__append_3219) \ - $(am__append_3226) $(am__append_3233) $(am__append_3240) \ - $(am__append_3247) $(am__append_3254) $(am__append_3261) \ - $(am__append_3268) $(am__append_3275) $(am__append_3282) \ - $(am__append_3289) $(am__append_3296) $(am__append_3303) \ - $(am__append_3310) $(am__append_3317) $(am__append_3324) \ - $(am__append_3331) $(am__append_3338) \ - $(nodist_setjmp_module_SOURCES) $(am__append_3345) \ - $(am__append_3352) $(am__append_3359) $(am__append_3366) \ - $(am__append_3373) $(am__append_3380) $(am__append_3387) \ - $(am__append_3394) $(am__append_3401) $(am__append_3408) \ - $(am__append_3415) $(am__append_3422) $(am__append_3429) \ - $(am__append_3436) $(am__append_3443) $(am__append_3450) \ - $(am__append_3457) $(am__append_3464) $(am__append_3471) \ - $(am__append_3478) $(am__append_3485) $(am__append_3492) \ - $(am__append_3499) $(am__append_3506) $(am__append_3513) \ - $(am__append_3520) $(am__append_3527) $(am__append_3534) \ - $(am__append_3541) $(am__append_3548) $(am__append_3555) \ - $(am__append_3562) $(am__append_3569) $(am__append_3576) \ - $(am__append_3583) $(am__append_3590) $(am__append_3597) \ - $(am__append_3604) $(am__append_3611) $(am__append_3618) \ - $(am__append_3625) $(am__append_3632) $(am__append_3639) \ - $(am__append_3646) $(am__append_3653) $(am__append_3660) \ - $(am__append_3667) $(am__append_3674) $(am__append_3681) \ - $(am__append_3688) $(am__append_3695) $(am__append_3702) \ - $(am__append_3709) $(am__append_3716) $(am__append_3723) \ - $(am__append_3730) $(am__append_3737) $(am__append_3744) \ - $(am__append_3751) $(am__append_3758) $(am__append_3765) \ - $(am__append_3772) $(am__append_3779) $(am__append_3786) \ - $(am__append_3793) $(am__append_3800) $(am__append_3807) \ - $(am__append_3814) $(am__append_3821) $(am__append_3828) \ - $(am__append_3835) $(am__append_3842) $(am__append_3849) \ - $(am__append_3856) $(am__append_3863) $(am__append_3870) \ - $(am__append_3877) $(am__append_3884) \ - $(nodist_macho_module_SOURCES) $(am__append_3891) \ - $(am__append_3898) $(am__append_3905) $(am__append_3912) \ - $(am__append_3919) $(am__append_3926) $(am__append_3933) \ - $(am__append_3940) $(am__append_3947) $(am__append_3954) \ - $(am__append_3961) $(am__append_3968) $(am__append_3975) \ - $(am__append_3982) $(am__append_3989) $(am__append_3996) \ - $(am__append_4003) $(am__append_4010) $(am__append_4017) \ - $(am__append_4024) $(am__append_4031) $(am__append_4038) \ - $(am__append_4045) $(am__append_4052) $(am__append_4059) \ - $(am__append_4066) $(am__append_4073) \ + $(nodist_pbkdf2_module_SOURCES) $(am__append_3086) \ + $(am__append_3093) $(am__append_3100) $(am__append_3107) \ + $(am__append_3114) $(am__append_3121) $(am__append_3128) \ + $(am__append_3135) $(am__append_3142) $(am__append_3149) \ + $(am__append_3156) $(am__append_3163) $(am__append_3170) \ + $(am__append_3177) $(am__append_3184) $(am__append_3191) \ + $(am__append_3198) $(am__append_3205) $(am__append_3212) \ + $(am__append_3219) $(am__append_3226) $(am__append_3233) \ + $(am__append_3240) $(am__append_3247) $(am__append_3254) \ + $(am__append_3261) $(am__append_3268) $(am__append_3275) \ + $(am__append_3282) $(am__append_3289) $(am__append_3296) \ + $(am__append_3303) $(am__append_3310) $(am__append_3317) \ + $(am__append_3324) $(am__append_3331) \ + $(nodist_setjmp_module_SOURCES) $(am__append_3338) \ + $(am__append_3345) $(am__append_3352) $(am__append_3359) \ + $(am__append_3366) $(am__append_3373) $(am__append_3380) \ + $(am__append_3387) $(am__append_3394) $(am__append_3401) \ + $(am__append_3408) $(am__append_3415) $(am__append_3422) \ + $(am__append_3429) $(am__append_3436) $(am__append_3443) \ + $(am__append_3450) $(am__append_3457) $(am__append_3464) \ + $(am__append_3471) $(am__append_3478) $(am__append_3485) \ + $(am__append_3492) $(am__append_3499) $(am__append_3506) \ + $(am__append_3513) $(am__append_3520) $(am__append_3527) \ + $(am__append_3534) $(am__append_3541) $(am__append_3548) \ + $(am__append_3555) $(am__append_3562) $(am__append_3569) \ + $(am__append_3576) $(am__append_3583) $(am__append_3590) \ + $(am__append_3597) $(am__append_3604) $(am__append_3611) \ + $(am__append_3618) $(am__append_3625) $(am__append_3632) \ + $(am__append_3639) $(am__append_3646) $(am__append_3653) \ + $(am__append_3660) $(am__append_3667) $(am__append_3674) \ + $(am__append_3681) $(am__append_3688) $(am__append_3695) \ + $(am__append_3702) $(am__append_3709) $(am__append_3716) \ + $(am__append_3723) $(am__append_3730) $(am__append_3737) \ + $(am__append_3744) $(am__append_3751) $(am__append_3758) \ + $(am__append_3765) $(am__append_3772) $(am__append_3779) \ + $(am__append_3786) $(am__append_3793) $(am__append_3800) \ + $(am__append_3807) $(am__append_3814) $(am__append_3821) \ + $(am__append_3828) $(am__append_3835) $(am__append_3842) \ + $(am__append_3849) $(am__append_3856) $(am__append_3863) \ + $(am__append_3870) $(am__append_3877) \ + $(nodist_macho_module_SOURCES) $(am__append_3884) \ + $(am__append_3891) $(am__append_3898) $(am__append_3905) \ + $(am__append_3912) $(am__append_3919) $(am__append_3926) \ + $(am__append_3933) $(am__append_3940) $(am__append_3947) \ + $(am__append_3954) $(am__append_3961) $(am__append_3968) \ + $(am__append_3975) $(am__append_3982) $(am__append_3989) \ + $(am__append_3996) $(am__append_4003) $(am__append_4010) \ + $(am__append_4017) $(am__append_4024) $(am__append_4031) \ + $(am__append_4038) $(am__append_4045) $(am__append_4052) \ + $(am__append_4059) $(am__append_4066) \ $(nodist_normal_module_SOURCES) \ $(nodist_part_acorn_module_SOURCES) \ $(nodist_part_amiga_module_SOURCES) \ @@ -17503,35 +17478,35 @@ BUILT_SOURCES = $(nodist_disk_module_SOURCES) \ $(nodist_part_bsd_module_SOURCES) \ $(nodist_part_sunpc_module_SOURCES) \ $(nodist_part_dfly_module_SOURCES) \ - $(nodist_msdospart_module_SOURCES) $(am__append_4080) \ - $(am__append_4087) $(am__append_4094) $(am__append_4101) \ - $(am__append_4108) $(am__append_4115) $(am__append_4122) \ - $(am__append_4129) $(am__append_4136) $(am__append_4143) \ - $(am__append_4150) $(am__append_4157) $(am__append_4164) \ - $(am__append_4171) $(am__append_4178) $(am__append_4185) \ - $(am__append_4192) $(am__append_4199) $(am__append_4206) \ - $(am__append_4213) $(am__append_4220) $(am__append_4227) \ - $(am__append_4234) $(am__append_4241) $(am__append_4248) \ - $(am__append_4255) $(am__append_4262) \ - $(nodist_gfxterm_background_module_SOURCES) $(am__append_4269) \ - $(am__append_4276) $(am__append_4283) $(am__append_4290) \ - $(am__append_4297) $(am__append_4304) $(am__append_4311) \ - $(am__append_4318) $(am__append_4325) $(am__append_4332) \ - $(am__append_4339) $(am__append_4346) $(am__append_4353) \ - $(am__append_4360) $(am__append_4367) $(am__append_4374) \ - $(am__append_4381) $(am__append_4388) $(am__append_4395) \ - $(am__append_4402) $(am__append_4409) $(am__append_4416) \ - $(am__append_4423) $(am__append_4430) $(am__append_4437) \ - $(am__append_4444) $(am__append_4451) $(am__append_4458) \ - $(am__append_4465) $(am__append_4472) $(am__append_4479) \ - $(am__append_4486) $(am__append_4493) $(am__append_4500) \ - $(am__append_4507) $(am__append_4514) $(am__append_4521) \ - $(am__append_4528) $(am__append_4535) $(am__append_4542) \ - $(am__append_4549) $(am__append_4556) $(am__append_4563) \ - $(am__append_4570) $(am__append_4577) $(am__append_4584) \ - $(am__append_4591) $(am__append_4598) $(am__append_4605) \ - $(am__append_4612) $(am__append_4619) $(am__append_4626) \ - $(am__append_4633) $(am__append_4640) $(am__append_4647) \ + $(nodist_msdospart_module_SOURCES) $(am__append_4073) \ + $(am__append_4080) $(am__append_4087) $(am__append_4094) \ + $(am__append_4101) $(am__append_4108) $(am__append_4115) \ + $(am__append_4122) $(am__append_4129) $(am__append_4136) \ + $(am__append_4143) $(am__append_4150) $(am__append_4157) \ + $(am__append_4164) $(am__append_4171) $(am__append_4178) \ + $(am__append_4185) $(am__append_4192) $(am__append_4199) \ + $(am__append_4206) $(am__append_4213) $(am__append_4220) \ + $(am__append_4227) $(am__append_4234) $(am__append_4241) \ + $(am__append_4248) $(am__append_4255) \ + $(nodist_gfxterm_background_module_SOURCES) $(am__append_4262) \ + $(am__append_4269) $(am__append_4276) $(am__append_4283) \ + $(am__append_4290) $(am__append_4297) $(am__append_4304) \ + $(am__append_4311) $(am__append_4318) $(am__append_4325) \ + $(am__append_4332) $(am__append_4339) $(am__append_4346) \ + $(am__append_4353) $(am__append_4360) $(am__append_4367) \ + $(am__append_4374) $(am__append_4381) $(am__append_4388) \ + $(am__append_4395) $(am__append_4402) $(am__append_4409) \ + $(am__append_4416) $(am__append_4423) $(am__append_4430) \ + $(am__append_4437) $(am__append_4444) $(am__append_4451) \ + $(am__append_4458) $(am__append_4465) $(am__append_4472) \ + $(am__append_4479) $(am__append_4486) $(am__append_4493) \ + $(am__append_4500) $(am__append_4507) $(am__append_4514) \ + $(am__append_4521) $(am__append_4528) $(am__append_4535) \ + $(am__append_4542) $(am__append_4549) $(am__append_4556) \ + $(am__append_4563) $(am__append_4570) $(am__append_4577) \ + $(am__append_4584) $(am__append_4591) $(am__append_4598) \ + $(am__append_4605) $(am__append_4612) $(am__append_4619) \ + $(am__append_4626) $(am__append_4633) $(am__append_4640) \ $(nodist_functional_test_module_SOURCES) \ $(nodist_exfctest_module_SOURCES) \ $(nodist_strtoull_test_module_SOURCES) \ @@ -17539,15 +17514,15 @@ BUILT_SOURCES = $(nodist_disk_module_SOURCES) \ $(nodist_signature_test_module_SOURCES) \ $(nodist_sleep_test_module_SOURCES) \ $(nodist_xnu_uuid_test_module_SOURCES) \ - $(nodist_pbkdf2_test_module_SOURCES) $(am__append_4654) \ - $(am__append_4661) $(am__append_4668) $(am__append_4675) \ - $(am__append_4682) $(am__append_4689) $(am__append_4696) \ - $(am__append_4703) $(am__append_4710) $(am__append_4717) \ - $(am__append_4724) $(am__append_4731) $(am__append_4738) \ - $(am__append_4745) $(am__append_4752) $(am__append_4759) \ - $(am__append_4766) $(am__append_4773) $(am__append_4780) \ - $(am__append_4787) $(am__append_4794) $(am__append_4801) \ - $(am__append_4808) $(am__append_4815) $(am__append_4822) \ + $(nodist_pbkdf2_test_module_SOURCES) $(am__append_4647) \ + $(am__append_4654) $(am__append_4661) $(am__append_4668) \ + $(am__append_4675) $(am__append_4682) $(am__append_4689) \ + $(am__append_4696) $(am__append_4703) $(am__append_4710) \ + $(am__append_4717) $(am__append_4724) $(am__append_4731) \ + $(am__append_4738) $(am__append_4745) $(am__append_4752) \ + $(am__append_4759) $(am__append_4766) $(am__append_4773) \ + $(am__append_4780) $(am__append_4787) $(am__append_4794) \ + $(am__append_4801) $(am__append_4808) $(am__append_4815) \ $(nodist_div_test_module_SOURCES) \ $(nodist_mul_test_module_SOURCES) \ $(nodist_shift_test_module_SOURCES) \ @@ -17558,59 +17533,59 @@ BUILT_SOURCES = $(nodist_disk_module_SOURCES) \ $(nodist_gfxterm_menu_module_SOURCES) \ $(nodist_cmdline_cat_test_module_SOURCES) \ $(nodist_bitmap_module_SOURCES) \ - $(nodist_bitmap_scale_module_SOURCES) $(am__append_4829) \ - $(am__append_4836) $(am__append_4843) $(am__append_4850) \ - $(am__append_4857) $(am__append_4864) $(am__append_4871) \ - $(am__append_4878) $(am__append_4885) \ + $(nodist_bitmap_scale_module_SOURCES) $(am__append_4822) \ + $(am__append_4829) $(am__append_4836) $(am__append_4843) \ + $(am__append_4850) $(am__append_4857) $(am__append_4864) \ + $(am__append_4871) $(am__append_4878) \ $(nodist_jpeg_module_SOURCES) $(nodist_png_module_SOURCES) \ - $(nodist_tga_module_SOURCES) $(am__append_4892) \ - $(am__append_4899) $(am__append_4906) $(am__append_4913) \ - $(am__append_4920) $(am__append_4927) $(am__append_4934) \ - $(am__append_4941) $(am__append_4948) $(am__append_4955) \ - $(am__append_4962) $(am__append_4969) $(am__append_4976) \ - $(am__append_4983) $(am__append_4990) $(am__append_4997) \ - $(am__append_5004) $(am__append_5011) $(am__append_5018) \ - $(am__append_5025) $(am__append_5032) $(am__append_5039) \ - $(am__append_5046) $(am__append_5053) $(am__append_5060) \ - $(am__append_5067) $(am__append_5074) $(am__append_5081) \ - $(am__append_5088) $(am__append_5095) $(am__append_5102) \ - $(am__append_5109) $(am__append_5116) $(am__append_5123) \ - $(am__append_5130) $(am__append_5137) $(am__append_5144) \ - $(am__append_5151) $(am__append_5158) $(am__append_5165) \ - $(am__append_5172) $(nodist_video_colors_module_SOURCES) \ - $(am__append_5179) $(am__append_5186) \ + $(nodist_tga_module_SOURCES) $(am__append_4885) \ + $(am__append_4892) $(am__append_4899) $(am__append_4906) \ + $(am__append_4913) $(am__append_4920) $(am__append_4927) \ + $(am__append_4934) $(am__append_4941) $(am__append_4948) \ + $(am__append_4955) $(am__append_4962) $(am__append_4969) \ + $(am__append_4976) $(am__append_4983) $(am__append_4990) \ + $(am__append_4997) $(am__append_5004) $(am__append_5011) \ + $(am__append_5018) $(am__append_5025) $(am__append_5032) \ + $(am__append_5039) $(am__append_5046) $(am__append_5053) \ + $(am__append_5060) $(am__append_5067) $(am__append_5074) \ + $(am__append_5081) $(am__append_5088) $(am__append_5095) \ + $(am__append_5102) $(am__append_5109) $(am__append_5116) \ + $(am__append_5123) $(am__append_5130) $(am__append_5137) \ + $(am__append_5144) $(am__append_5151) $(am__append_5158) \ + $(am__append_5165) $(nodist_video_colors_module_SOURCES) \ + $(am__append_5172) $(am__append_5179) \ $(nodist_datehook_module_SOURCES) $(nodist_net_module_SOURCES) \ $(nodist_tftp_module_SOURCES) $(nodist_http_module_SOURCES) \ - $(am__append_5193) $(am__append_5200) $(am__append_5207) \ - $(am__append_5214) $(am__append_5221) $(am__append_5228) \ - $(am__append_5235) $(am__append_5242) $(am__append_5249) \ - $(am__append_5256) $(am__append_5263) $(am__append_5270) \ - $(am__append_5277) $(am__append_5284) $(am__append_5291) \ - $(am__append_5298) $(am__append_5305) $(am__append_5312) \ + $(am__append_5186) $(am__append_5193) $(am__append_5200) \ + $(am__append_5207) $(am__append_5214) $(am__append_5221) \ + $(am__append_5228) $(am__append_5235) $(am__append_5242) \ + $(am__append_5249) $(am__append_5256) $(am__append_5263) \ + $(am__append_5270) $(am__append_5277) $(am__append_5284) \ + $(am__append_5291) $(am__append_5298) $(am__append_5305) \ $(nodist_syslinuxcfg_module_SOURCES) \ $(nodist_test_blockarg_module_SOURCES) \ $(nodist_xzio_module_SOURCES) $(nodist_lzopio_module_SOURCES) \ - $(nodist_testload_module_SOURCES) $(am__append_5319) \ - $(am__append_5326) $(am__append_5333) $(am__append_5340) \ - $(am__append_5347) $(am__append_5354) $(am__append_5361) \ - $(am__append_5368) $(am__append_5375) $(am__append_5382) \ - $(am__append_5389) $(am__append_5396) $(am__append_5403) \ - $(am__append_5410) $(am__append_5417) $(am__append_5424) \ - $(am__append_5431) $(nodist_priority_queue_module_SOURCES) \ - $(nodist_time_module_SOURCES) $(am__append_5438) \ - $(am__append_5445) $(nodist_adler32_module_SOURCES) \ + $(nodist_testload_module_SOURCES) $(am__append_5312) \ + $(am__append_5319) $(am__append_5326) $(am__append_5333) \ + $(am__append_5340) $(am__append_5347) $(am__append_5354) \ + $(am__append_5361) $(am__append_5368) $(am__append_5375) \ + $(am__append_5382) $(am__append_5389) $(am__append_5396) \ + $(am__append_5403) $(am__append_5410) $(am__append_5417) \ + $(am__append_5424) $(nodist_priority_queue_module_SOURCES) \ + $(nodist_time_module_SOURCES) $(am__append_5431) \ + $(am__append_5438) $(nodist_adler32_module_SOURCES) \ $(nodist_crc64_module_SOURCES) $(nodist_mpi_module_SOURCES) \ - $(nodist_all_video_module_SOURCES) $(am__append_5452) \ - $(am__append_5459) $(am__append_5466) $(am__append_5473) \ - $(am__append_5480) $(am__append_5487) \ - $(nodist_testspeed_module_SOURCES) $(am__append_5494) \ + $(nodist_all_video_module_SOURCES) $(am__append_5445) \ + $(am__append_5452) $(am__append_5459) $(am__append_5466) \ + $(am__append_5473) $(am__append_5480) \ + $(nodist_testspeed_module_SOURCES) $(am__append_5487) \ $(nodist_tr_module_SOURCES) $(nodist_progress_module_SOURCES) \ - $(nodist_file_module_SOURCES) $(am__append_5501) \ - $(am__append_5508) $(am__append_5515) $(am__append_5522) \ - $(am__append_5529) $(am__append_5536) $(am__append_5543) \ - $(am__append_5550) $(am__append_5557) $(am__append_5564) \ - $(am__append_5571) $(am__append_5578) $(am__append_5585) \ - $(am__append_5592) $(nodist_gcry_arcfour_module_SOURCES) \ + $(nodist_file_module_SOURCES) $(am__append_5494) \ + $(am__append_5501) $(am__append_5508) $(am__append_5515) \ + $(am__append_5522) $(am__append_5529) $(am__append_5536) \ + $(am__append_5543) $(am__append_5550) $(am__append_5557) \ + $(am__append_5564) $(am__append_5571) $(am__append_5578) \ + $(am__append_5585) $(nodist_gcry_arcfour_module_SOURCES) \ $(nodist_gcry_blowfish_module_SOURCES) \ $(nodist_gcry_camellia_module_SOURCES) \ $(nodist_gcry_cast5_module_SOURCES) \ @@ -17631,20 +17606,20 @@ BUILT_SOURCES = $(nodist_disk_module_SOURCES) \ $(nodist_gcry_sha512_module_SOURCES) \ $(nodist_gcry_tiger_module_SOURCES) \ $(nodist_gcry_twofish_module_SOURCES) \ - $(nodist_gcry_whirlpool_module_SOURCES) $(am__append_5598) \ - $(am__append_5603) $(am__append_5608) $(am__append_5613) \ - $(am__append_5618) $(am__append_5623) $(am__append_5628) \ - $(am__append_5633) $(am__append_5638) $(am__append_5643) \ - $(am__append_5648) $(am__append_5653) $(am__append_5658) \ - $(am__append_5663) $(am__append_5668) $(am__append_5673) \ - $(am__append_5678) $(am__append_5683) $(am__append_5688) \ - $(am__append_5693) $(am__append_5698) $(am__append_5703) \ - $(am__append_5708) $(am__append_5713) $(am__append_5718) \ - $(am__append_5723) $(am__append_5728) $(am__append_5733) \ - $(am__append_5738) $(am__append_5743) $(am__append_5748) \ - $(am__append_5753) $(am__append_5758) $(am__append_5763) \ - $(am__append_5768) $(am__append_5773) $(am__append_5778) \ - $(am__append_5783) $(am__append_5788) $(am__append_5795) \ + $(nodist_gcry_whirlpool_module_SOURCES) $(am__append_5591) \ + $(am__append_5596) $(am__append_5601) $(am__append_5606) \ + $(am__append_5611) $(am__append_5616) $(am__append_5621) \ + $(am__append_5626) $(am__append_5631) $(am__append_5636) \ + $(am__append_5641) $(am__append_5646) $(am__append_5651) \ + $(am__append_5656) $(am__append_5661) $(am__append_5666) \ + $(am__append_5671) $(am__append_5676) $(am__append_5681) \ + $(am__append_5686) $(am__append_5691) $(am__append_5696) \ + $(am__append_5701) $(am__append_5706) $(am__append_5711) \ + $(am__append_5716) $(am__append_5721) $(am__append_5726) \ + $(am__append_5731) $(am__append_5736) $(am__append_5741) \ + $(am__append_5746) $(am__append_5751) $(am__append_5756) \ + $(am__append_5761) $(am__append_5766) $(am__append_5771) \ + $(am__append_5776) $(am__append_5781) $(am__append_5788) \ symlist.h symlist.c MACHO2IMG = $(top_builddir)/grub-macho2img AM_CFLAGS = $(TARGET_CFLAGS) @@ -20083,14 +20058,6 @@ pgp_module_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_MODULE) pgp_module_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_MODULE) -I$(srcdir)/lib/posix_wrap pgp_module_CCASFLAGS = $(AM_CCASFLAGS) $(CCASFLAGS_MODULE) pgp_module_DEPENDENCIES = $(TARGET_OBJ2ELF) -@COND_x86_64_efi_TRUE@shim_lock_module_SOURCES = commands/efi/shim_lock.c ## platform sources -@COND_x86_64_efi_TRUE@nodist_shim_lock_module_SOURCES = ## platform nodist sources -@COND_x86_64_efi_TRUE@shim_lock_module_LDADD = -@COND_x86_64_efi_TRUE@shim_lock_module_CFLAGS = $(AM_CFLAGS) $(CFLAGS_MODULE) -@COND_x86_64_efi_TRUE@shim_lock_module_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_MODULE) -@COND_x86_64_efi_TRUE@shim_lock_module_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_MODULE) -@COND_x86_64_efi_TRUE@shim_lock_module_CCASFLAGS = $(AM_CCASFLAGS) $(CCASFLAGS_MODULE) -@COND_x86_64_efi_TRUE@shim_lock_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_coreboot_TRUE@hdparm_module_SOURCES = commands/hdparm.c ## platform sources @COND_i386_efi_TRUE@hdparm_module_SOURCES = commands/hdparm.c ## platform sources @COND_i386_ieee1275_TRUE@hdparm_module_SOURCES = commands/hdparm.c ## platform sources @@ -29924,13 +29891,6 @@ tests/shift_test_module-shift_test.$(OBJEXT): tests/$(am__dirstamp) \ shift_test.module$(EXEEXT): $(shift_test_module_OBJECTS) $(shift_test_module_DEPENDENCIES) $(EXTRA_shift_test_module_DEPENDENCIES) @rm -f shift_test.module$(EXEEXT) $(AM_V_CCLD)$(shift_test_module_LINK) $(shift_test_module_OBJECTS) $(shift_test_module_LDADD) $(LIBS) -commands/efi/shim_lock_module-shim_lock.$(OBJEXT): \ - commands/efi/$(am__dirstamp) \ - commands/efi/$(DEPDIR)/$(am__dirstamp) - -shim_lock.module$(EXEEXT): $(shim_lock_module_OBJECTS) $(shim_lock_module_DEPENDENCIES) $(EXTRA_shim_lock_module_DEPENDENCIES) - @rm -f shim_lock.module$(EXEEXT) - $(AM_V_CCLD)$(shim_lock_module_LINK) $(shim_lock_module_OBJECTS) $(shim_lock_module_LDADD) $(LIBS) tests/signature_test_module-signature_test.$(OBJEXT): \ tests/$(am__dirstamp) tests/$(DEPDIR)/$(am__dirstamp) @@ -30831,7 +30791,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@commands/efi/$(DEPDIR)/lsefimmap_module-lsefimmap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@commands/efi/$(DEPDIR)/lsefisystab_module-lsefisystab.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@commands/efi/$(DEPDIR)/lssal_module-lssal.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/efi/$(DEPDIR)/shim_lock_module-shim_lock.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@commands/efi/$(DEPDIR)/tpm_module-tpm.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@commands/i386/$(DEPDIR)/cmosdump_module-cmosdump.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@commands/i386/$(DEPDIR)/cmostest_module-cmostest.Po@am__quote@ @@ -40402,20 +40361,6 @@ tests/shift_test_module-shift_test.obj: tests/shift_test.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shift_test_module_CPPFLAGS) $(CPPFLAGS) $(shift_test_module_CFLAGS) $(CFLAGS) -c -o tests/shift_test_module-shift_test.obj `if test -f 'tests/shift_test.c'; then $(CYGPATH_W) 'tests/shift_test.c'; else $(CYGPATH_W) '$(srcdir)/tests/shift_test.c'; fi` -commands/efi/shim_lock_module-shim_lock.o: commands/efi/shim_lock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shim_lock_module_CPPFLAGS) $(CPPFLAGS) $(shim_lock_module_CFLAGS) $(CFLAGS) -MT commands/efi/shim_lock_module-shim_lock.o -MD -MP -MF commands/efi/$(DEPDIR)/shim_lock_module-shim_lock.Tpo -c -o commands/efi/shim_lock_module-shim_lock.o `test -f 'commands/efi/shim_lock.c' || echo '$(srcdir)/'`commands/efi/shim_lock.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) commands/efi/$(DEPDIR)/shim_lock_module-shim_lock.Tpo commands/efi/$(DEPDIR)/shim_lock_module-shim_lock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='commands/efi/shim_lock.c' object='commands/efi/shim_lock_module-shim_lock.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shim_lock_module_CPPFLAGS) $(CPPFLAGS) $(shim_lock_module_CFLAGS) $(CFLAGS) -c -o commands/efi/shim_lock_module-shim_lock.o `test -f 'commands/efi/shim_lock.c' || echo '$(srcdir)/'`commands/efi/shim_lock.c - -commands/efi/shim_lock_module-shim_lock.obj: commands/efi/shim_lock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shim_lock_module_CPPFLAGS) $(CPPFLAGS) $(shim_lock_module_CFLAGS) $(CFLAGS) -MT commands/efi/shim_lock_module-shim_lock.obj -MD -MP -MF commands/efi/$(DEPDIR)/shim_lock_module-shim_lock.Tpo -c -o commands/efi/shim_lock_module-shim_lock.obj `if test -f 'commands/efi/shim_lock.c'; then $(CYGPATH_W) 'commands/efi/shim_lock.c'; else $(CYGPATH_W) '$(srcdir)/commands/efi/shim_lock.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) commands/efi/$(DEPDIR)/shim_lock_module-shim_lock.Tpo commands/efi/$(DEPDIR)/shim_lock_module-shim_lock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='commands/efi/shim_lock.c' object='commands/efi/shim_lock_module-shim_lock.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shim_lock_module_CPPFLAGS) $(CPPFLAGS) $(shim_lock_module_CFLAGS) $(CFLAGS) -c -o commands/efi/shim_lock_module-shim_lock.obj `if test -f 'commands/efi/shim_lock.c'; then $(CYGPATH_W) 'commands/efi/shim_lock.c'; else $(CYGPATH_W) '$(srcdir)/commands/efi/shim_lock.c'; fi` - tests/signature_test_module-signature_test.o: tests/signature_test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(signature_test_module_CPPFLAGS) $(CPPFLAGS) $(signature_test_module_CFLAGS) $(CFLAGS) -MT tests/signature_test_module-signature_test.o -MD -MP -MF tests/$(DEPDIR)/signature_test_module-signature_test.Tpo -c -o tests/signature_test_module-signature_test.o `test -f 'tests/signature_test.c' || echo '$(srcdir)/'`tests/signature_test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tests/$(DEPDIR)/signature_test_module-signature_test.Tpo tests/$(DEPDIR)/signature_test_module-signature_test.Po @@ -43738,10 +43683,6 @@ pgp.marker: $(pgp_module_SOURCES) $(nodist_pgp_module_SOURCES) $(TARGET_CPP) -DGRUB_LST_GENERATOR $(CPPFLAGS_MARKER) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pgp_module_CPPFLAGS) $(CPPFLAGS) $^ > $@.new || (rm -f $@; exit 1) grep 'MARKER' $@.new > $@; rm -f $@.new -@COND_x86_64_efi_TRUE@shim_lock.marker: $(shim_lock_module_SOURCES) $(nodist_shim_lock_module_SOURCES) -@COND_x86_64_efi_TRUE@ $(TARGET_CPP) -DGRUB_LST_GENERATOR $(CPPFLAGS_MARKER) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shim_lock_module_CPPFLAGS) $(CPPFLAGS) $^ > $@.new || (rm -f $@; exit 1) -@COND_x86_64_efi_TRUE@ grep 'MARKER' $@.new > $@; rm -f $@.new - @COND_i386_pc_TRUE@hdparm.marker: $(hdparm_module_SOURCES) $(nodist_hdparm_module_SOURCES) @COND_i386_pc_TRUE@ $(TARGET_CPP) -DGRUB_LST_GENERATOR $(CPPFLAGS_MARKER) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hdparm_module_CPPFLAGS) $(CPPFLAGS) $^ > $@.new || (rm -f $@; exit 1) @COND_i386_pc_TRUE@ grep 'MARKER' $@.new > $@; rm -f $@.new diff --git a/grub-core/commands/efi/shim_lock.c b/grub-core/commands/efi/shim_lock.c deleted file mode 100644 index d8f52d7..0000000 --- a/grub-core/commands/efi/shim_lock.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * GRUB -- GRand Unified Bootloader - * Copyright (C) 2017 Free Software Foundation, Inc. - * - * GRUB 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. - * - * GRUB 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 GRUB. If not, see . - * - * EFI shim lock verifier. - */ - -#include -#include -#include -#include -#include -#include - -GRUB_MOD_LICENSE ("GPLv3+"); - -static grub_efi_guid_t shim_lock_guid = GRUB_EFI_SHIM_LOCK_GUID; -static grub_efi_shim_lock_protocol_t *sl; - -/* List of modules which cannot be loaded if UEFI secure boot mode is enabled. */ -static const char * const disabled_mods[] = {"iorw", "memrw", "wrmsr", NULL}; - -static grub_err_t -shim_lock_init (grub_file_t io, enum grub_file_type type, - void **context __attribute__ ((unused)), - enum grub_verify_flags *flags) -{ - const char *b, *e; - int i; - - *flags = GRUB_VERIFY_FLAGS_SKIP_VERIFICATION; - - if (!sl) - return GRUB_ERR_NONE; - - switch (type & GRUB_FILE_TYPE_MASK) - { - case GRUB_FILE_TYPE_GRUB_MODULE: - /* Establish GRUB module name. */ - b = grub_strrchr (io->name, '/'); - e = grub_strrchr (io->name, '.'); - - b = b ? (b + 1) : io->name; - e = e ? e : io->name + grub_strlen (io->name); - e = (e > b) ? e : io->name + grub_strlen (io->name); - - for (i = 0; disabled_mods[i]; i++) - if (!grub_strncmp (b, disabled_mods[i], grub_strlen (b) - grub_strlen (e))) - { - grub_error (GRUB_ERR_ACCESS_DENIED, - N_("module cannot be loaded in UEFI secure boot mode: %s"), - io->name); - return GRUB_ERR_ACCESS_DENIED; - } - - /* Fall through. */ - - case GRUB_FILE_TYPE_ACPI_TABLE: - case GRUB_FILE_TYPE_DEVICE_TREE_IMAGE: - *flags = GRUB_VERIFY_FLAGS_DEFER_AUTH; - - return GRUB_ERR_NONE; - - case GRUB_FILE_TYPE_LINUX_KERNEL: - case GRUB_FILE_TYPE_MULTIBOOT_KERNEL: - case GRUB_FILE_TYPE_BSD_KERNEL: - case GRUB_FILE_TYPE_XNU_KERNEL: - case GRUB_FILE_TYPE_PLAN9_KERNEL: - for (i = 0; disabled_mods[i]; i++) - if (grub_dl_get (disabled_mods[i])) - { - grub_error (GRUB_ERR_ACCESS_DENIED, - N_("cannot boot due to dangerous module in memory: %s"), - disabled_mods[i]); - return GRUB_ERR_ACCESS_DENIED; - } - - *flags = GRUB_VERIFY_FLAGS_SINGLE_CHUNK; - - /* Fall through. */ - - default: - return GRUB_ERR_NONE; - } -} - -static grub_err_t -shim_lock_write (void *context __attribute__ ((unused)), void *buf, grub_size_t size) -{ - if (sl->verify (buf, size) != GRUB_EFI_SUCCESS) - return grub_error (GRUB_ERR_BAD_SIGNATURE, N_("bad shim signature")); - - return GRUB_ERR_NONE; -} - -struct grub_file_verifier shim_lock = - { - .name = "shim_lock", - .init = shim_lock_init, - .write = shim_lock_write - }; - -GRUB_MOD_INIT(shim_lock) -{ - sl = grub_efi_locate_protocol (&shim_lock_guid, 0); - grub_verifier_register (&shim_lock); - - if (!sl) - return; - - grub_dl_set_persistent (mod); -} - -GRUB_MOD_FINI(shim_lock) -{ - grub_verifier_unregister (&shim_lock); -} diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c index 2c31847..b683bec 100644 --- a/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -39,6 +40,9 @@ grub_efi_init (void) /* Initialize the memory management system. */ grub_efi_mm_init (); + /* Register the shim_lock verifier if UEFI Secure Boot is enabled. */ + grub_shim_lock_verifier_setup (); + efi_call_4 (grub_efi_system_table->boot_services->set_watchdog_timer, 0, 0, 0, NULL); diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c index 19658d9..ce3b7f6 100644 --- a/grub-core/kern/efi/sb.c +++ b/grub-core/kern/efi/sb.c @@ -22,9 +22,16 @@ #include #include #include +#include #include #include #include +#include + +static grub_efi_guid_t shim_lock_guid = GRUB_EFI_SHIM_LOCK_GUID; + +/* List of modules which cannot be loaded if UEFI secure boot mode is enabled. */ +static const char * const disabled_mods[] = {"iorw", "memrw", NULL}; /* * Determine whether we're in secure boot mode. @@ -107,3 +114,101 @@ grub_efi_get_secureboot (void) return secureboot; } + +static grub_err_t +shim_lock_verifier_init (grub_file_t io __attribute__ ((unused)), + enum grub_file_type type, + void **context __attribute__ ((unused)), + enum grub_verify_flags *flags) +{ + const char *b, *e; + int i; + + *flags = GRUB_VERIFY_FLAGS_SKIP_VERIFICATION; + + switch (type & GRUB_FILE_TYPE_MASK) + { + case GRUB_FILE_TYPE_GRUB_MODULE: + /* Establish GRUB module name. */ + b = grub_strrchr (io->name, '/'); + e = grub_strrchr (io->name, '.'); + + b = b ? (b + 1) : io->name; + e = e ? e : io->name + grub_strlen (io->name); + e = (e > b) ? e : io->name + grub_strlen (io->name); + + for (i = 0; disabled_mods[i]; i++) + if (!grub_strncmp (b, disabled_mods[i], grub_strlen (b) - grub_strlen (e))) + { + grub_error (GRUB_ERR_ACCESS_DENIED, + N_("module cannot be loaded in UEFI secure boot mode: %s"), + io->name); + return GRUB_ERR_ACCESS_DENIED; + } + + /* Fall through. */ + + case GRUB_FILE_TYPE_ACPI_TABLE: + case GRUB_FILE_TYPE_DEVICE_TREE_IMAGE: + *flags = GRUB_VERIFY_FLAGS_DEFER_AUTH; + + return GRUB_ERR_NONE; + + case GRUB_FILE_TYPE_LINUX_KERNEL: + case GRUB_FILE_TYPE_MULTIBOOT_KERNEL: + case GRUB_FILE_TYPE_BSD_KERNEL: + case GRUB_FILE_TYPE_XNU_KERNEL: + case GRUB_FILE_TYPE_PLAN9_KERNEL: + for (i = 0; disabled_mods[i]; i++) + if (grub_dl_get (disabled_mods[i])) + { + grub_error (GRUB_ERR_ACCESS_DENIED, + N_("cannot boot due to dangerous module in memory: %s"), + disabled_mods[i]); + return GRUB_ERR_ACCESS_DENIED; + } + + *flags = GRUB_VERIFY_FLAGS_SINGLE_CHUNK; + + /* Fall through. */ + + default: + return GRUB_ERR_NONE; + } +} + +static grub_err_t +shim_lock_verifier_write (void *context __attribute__ ((unused)), void *buf, grub_size_t size) +{ + grub_efi_shim_lock_protocol_t *sl = grub_efi_locate_protocol (&shim_lock_guid, 0); + + if (!sl) + return grub_error (GRUB_ERR_ACCESS_DENIED, N_("shim_lock protocol not found")); + + if (sl->verify (buf, size) != GRUB_EFI_SUCCESS) + return grub_error (GRUB_ERR_BAD_SIGNATURE, N_("bad shim signature")); + + return GRUB_ERR_NONE; +} + +struct grub_file_verifier shim_lock_verifier = + { + .name = "shim_lock_verifier", + .init = shim_lock_verifier_init, + .write = shim_lock_verifier_write + }; + +void +grub_shim_lock_verifier_setup (void) +{ + grub_efi_shim_lock_protocol_t *sl = + grub_efi_locate_protocol (&shim_lock_guid, 0); + + if (!sl) + return; + + if (grub_efi_get_secureboot () != GRUB_EFI_SECUREBOOT_MODE_ENABLED) + return; + + grub_verifier_register (&shim_lock_verifier); +} diff --git a/include/grub/efi/sb.h b/include/grub/efi/sb.h index a33d985..30c4335 100644 --- a/include/grub/efi/sb.h +++ b/include/grub/efi/sb.h @@ -30,6 +30,9 @@ #ifdef GRUB_MACHINE_EFI extern grub_uint8_t EXPORT_FUNC (grub_efi_get_secureboot) (void); + +extern void +grub_shim_lock_verifier_setup (void); #else static inline grub_uint8_t grub_efi_get_secureboot (void) diff --git a/po/POTFILES.in b/po/POTFILES.in index 11c799f..49755d3 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -39,7 +39,6 @@ ./grub-core/commands/efi/lsefimmap.c ./grub-core/commands/efi/lsefisystab.c ./grub-core/commands/efi/lssal.c -./grub-core/commands/efi/shim_lock.c ./grub-core/commands/efi/tpm.c ./grub-core/commands/eval.c ./grub-core/commands/extcmd.c -- 2.14.2 ================================================ FILE: boot/grub2/0035-kern-Add-lockdown-support.patch ================================================ From 578c95298bcc46e0296f4c786db64c2ff26ce2cc Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 28 Sep 2020 20:08:02 +0200 Subject: [PATCH] kern: Add lockdown support When the GRUB starts on a secure boot platform, some commands can be used to subvert the protections provided by the verification mechanism and could lead to booting untrusted system. To prevent that situation, allow GRUB to be locked down. That way the code may check if GRUB has been locked down and further restrict the commands that are registered or what subset of their functionality could be used. The lockdown support adds the following components: * The grub_lockdown() function which can be used to lockdown GRUB if, e.g., UEFI Secure Boot is enabled. * The grub_is_lockdown() function which can be used to check if the GRUB was locked down. * A verifier that flags OS kernels, the GRUB modules, Device Trees and ACPI tables as GRUB_VERIFY_FLAGS_DEFER_AUTH to defer verification to other verifiers. These files are only successfully verified if another registered verifier returns success. Otherwise, the whole verification process fails. For example, PE/COFF binaries verification can be done by the shim_lock verifier which validates the signatures using the shim_lock protocol. However, the verification is not deferred directly to the shim_lock verifier. The shim_lock verifier is hooked into the verification process instead. * A set of grub_{command,extcmd}_lockdown functions that can be used by code registering command handlers, to only register unsafe commands if the GRUB has not been locked down. Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper [Add changes to generated files] Signed-off-by: Stefan Sørensen --- Makefile.in | 2 ++ conf/Makefile.common | 2 ++ docs/grub-dev.texi | 27 +++++++++++++++ docs/grub.texi | 8 +++++ grub-core/Makefile.am | 5 ++- grub-core/Makefile.core.am | 14 ++++---- grub-core/Makefile.core.def | 1 + grub-core/Makefile.in | 73 ++++++++++++++++++++++++++++++----------- grub-core/commands/extcmd.c | 23 +++++++++++++ grub-core/kern/command.c | 24 ++++++++++++++ grub-core/kern/lockdown.c | 80 +++++++++++++++++++++++++++++++++++++++++++++ include/grub/command.h | 5 +++ include/grub/extcmd.h | 7 ++++ include/grub/lockdown.h | 44 +++++++++++++++++++++++++ po/POTFILES.in | 2 ++ 15 files changed, 290 insertions(+), 27 deletions(-) create mode 100644 grub-core/kern/lockdown.c create mode 100644 include/grub/lockdown.h diff --git a/Makefile.in b/Makefile.in index e6a185b..ecb3278 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2617,7 +2617,9 @@ CPPFLAGS_PARTTOOL_LIST = -Dgrub_parttool_register=PARTTOOL_LIST_MARKER CPPFLAGS_TERMINAL_LIST = '-Dgrub_term_register_input(...)=INPUT_TERMINAL_LIST_MARKER(__VA_ARGS__)' \ '-Dgrub_term_register_output(...)=OUTPUT_TERMINAL_LIST_MARKER(__VA_ARGS__)' CPPFLAGS_COMMAND_LIST = '-Dgrub_register_command(...)=COMMAND_LIST_MARKER(__VA_ARGS__)' \ + '-Dgrub_register_command_lockdown(...)=COMMAND_LOCKDOWN_LIST_MARKER(__VA_ARGS__)' \ '-Dgrub_register_extcmd(...)=EXTCOMMAND_LIST_MARKER(__VA_ARGS__)' \ + '-Dgrub_register_extcmd_lockdown(...)=EXTCOMMAND_LOCKDOWN_LIST_MARKER(__VA_ARGS__)' \ '-Dgrub_register_command_p1(...)=P1COMMAND_LIST_MARKER(__VA_ARGS__)' CPPFLAGS_FDT_LIST := '-Dgrub_fdtbus_register(...)=FDT_DRIVER_LIST_MARKER(__VA_ARGS__)' CPPFLAGS_MARKER = $(CPPFLAGS_FS_LIST) $(CPPFLAGS_VIDEO_LIST) \ diff --git a/conf/Makefile.common b/conf/Makefile.common index 6cd71cb..2a1a886 100644 --- a/conf/Makefile.common +++ b/conf/Makefile.common @@ -84,7 +84,9 @@ CPPFLAGS_PARTTOOL_LIST = -Dgrub_parttool_register=PARTTOOL_LIST_MARKER CPPFLAGS_TERMINAL_LIST = '-Dgrub_term_register_input(...)=INPUT_TERMINAL_LIST_MARKER(__VA_ARGS__)' CPPFLAGS_TERMINAL_LIST += '-Dgrub_term_register_output(...)=OUTPUT_TERMINAL_LIST_MARKER(__VA_ARGS__)' CPPFLAGS_COMMAND_LIST = '-Dgrub_register_command(...)=COMMAND_LIST_MARKER(__VA_ARGS__)' +CPPFLAGS_COMMAND_LIST += '-Dgrub_register_command_lockdown(...)=COMMAND_LOCKDOWN_LIST_MARKER(__VA_ARGS__)' CPPFLAGS_COMMAND_LIST += '-Dgrub_register_extcmd(...)=EXTCOMMAND_LIST_MARKER(__VA_ARGS__)' +CPPFLAGS_COMMAND_LIST += '-Dgrub_register_extcmd_lockdown(...)=EXTCOMMAND_LOCKDOWN_LIST_MARKER(__VA_ARGS__)' CPPFLAGS_COMMAND_LIST += '-Dgrub_register_command_p1(...)=P1COMMAND_LIST_MARKER(__VA_ARGS__)' CPPFLAGS_FDT_LIST := '-Dgrub_fdtbus_register(...)=FDT_DRIVER_LIST_MARKER(__VA_ARGS__)' CPPFLAGS_MARKER = $(CPPFLAGS_FS_LIST) $(CPPFLAGS_VIDEO_LIST) \ diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi index ee389fd..635ec72 100644 --- a/docs/grub-dev.texi +++ b/docs/grub-dev.texi @@ -86,6 +86,7 @@ This edition documents version @value{VERSION}. * PFF2 Font File Format:: * Graphical Menu Software Design:: * Verifiers framework:: +* Lockdown framework:: * Copying This Manual:: Copying This Manual * Index:: @end menu @@ -2086,6 +2087,32 @@ Optionally at the end of the file @samp{fini}, if it exists, is called with just the context. If you return no error during any of @samp{init}, @samp{write} and @samp{fini} then the file is considered as having succeded verification. +@node Lockdown framework +@chapter Lockdown framework + +The GRUB can be locked down, which is a restricted mode where some operations +are not allowed. For instance, some commands cannot be used when the GRUB is +locked down. + +The function +@code{grub_lockdown()} is used to lockdown GRUB and the function +@code{grub_is_lockdown()} function can be used to check whether lockdown is +enabled or not. When enabled, the function returns @samp{GRUB_LOCKDOWN_ENABLED} +and @samp{GRUB_LOCKDOWN_DISABLED} when is not enabled. + +The following functions can be used to register the commands that can only be +used when lockdown is disabled: + +@itemize + +@item @code{grub_cmd_lockdown()} registers command which should not run when the +GRUB is in lockdown mode. + +@item @code{grub_cmd_lockdown()} registers extended command which should not run +when the GRUB is in lockdown mode. + +@end itemize + @node Copying This Manual @appendix Copying This Manual diff --git a/docs/grub.texi b/docs/grub.texi index aefe032..a25459f 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -5581,6 +5581,7 @@ environment variables and commands are listed in the same order. * Using digital signatures:: Booting digitally signed code * UEFI secure boot and shim:: Booting digitally signed PE files * Measured Boot:: Measuring boot components +* Lockdown:: Lockdown when booting on a secure setup @end menu @node Authentication and authorisation @@ -5795,6 +5796,13 @@ into @file{core.img} in order to avoid a potential gap in measurement between Measured boot is currently only supported on EFI platforms. +@node Lockdown +@section Lockdown when booting on a secure setup + +The GRUB can be locked down when booted on a secure boot environment, for example +if the UEFI secure boot is enabled. On a locked down configuration, the GRUB will +be restricted and some operations/commands cannot be executed. + @node Platform limitations @chapter Platform limitations diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am index cc6fc7d..30e23ad 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -80,6 +80,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fs.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i18n.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/kernel.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/list.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lockdown.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/misc.h if COND_emu KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/compiler-rt-emu.h @@ -377,8 +378,10 @@ command.lst: $(MARKER_FILES) b=`basename $$pp .marker`; \ sed -n \ -e "/EXTCOMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ + -e "/EXTCOMMAND_LOCKDOWN_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ -e "/P1COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ - -e "/COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" $$pp; \ + -e "/COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" \ + -e "/COMMAND_LOCKDOWN_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" $$pp; \ done) | sort -u > $@ platform_DATA += command.lst CLEANFILES += command.lst diff --git a/grub-core/Makefile.core.am b/grub-core/Makefile.core.am index 5623a5e..fbfb627 100644 --- a/grub-core/Makefile.core.am +++ b/grub-core/Makefile.core.am @@ -22378,7 +22378,7 @@ endif if COND_i386_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/efi/startup.S -kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/i386/efi/init.c bus/pci.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/i386/efi/init.c bus/pci.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22488,7 +22488,7 @@ endif if COND_x86_64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/x86_64/efi/startup.S -kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/x86_64/efi/callwrap.S kern/i386/efi/init.c bus/pci.c kern/x86_64/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/x86_64/efi/callwrap.S kern/i386/efi/init.c bus/pci.c kern/x86_64/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22664,7 +22664,7 @@ endif if COND_ia64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = -kernel_exec_SOURCES += kern/ia64/efi/startup.S kern/ia64/efi/init.c kern/ia64/dl.c kern/ia64/dl_helper.c kern/ia64/cache.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/ia64/efi/startup.S kern/ia64/efi/init.c kern/ia64/dl.c kern/ia64/dl_helper.c kern/ia64/cache.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) -fno-builtin -fpic -minline-int-divide-max-throughput @@ -22730,7 +22730,7 @@ endif if COND_arm_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/arm/efi/startup.S -kernel_exec_SOURCES += kern/arm/efi/init.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/arm/efi/init.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22752,7 +22752,7 @@ endif if COND_arm64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/arm64/efi/startup.S -kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22796,7 +22796,7 @@ endif if COND_riscv32_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/riscv/efi/startup.S -kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22818,7 +22818,7 @@ endif if COND_riscv64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/riscv/efi/startup.S -kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def index 4d380ed..ee8dc55 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -205,6 +205,7 @@ kernel = { efi = kern/acpi.c; efi = kern/efi/acpi.c; efi = kern/efi/sb.c; + efi = kern/lockdown.c; i386_coreboot = kern/i386/pc/acpi.c; i386_multiboot = kern/i386/pc/acpi.c; i386_coreboot = kern/acpi.c; diff --git a/grub-core/Makefile.in b/grub-core/Makefile.in index 09dc802..ac400ea 100644 --- a/grub-core/Makefile.in +++ b/grub-core/Makefile.in @@ -10457,13 +10457,14 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ kern/arm64/cache_flush.S kern/arm64/dl.c \ kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c \ kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c \ - kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c \ - kern/time.c kern/generic/millisleep.c kern/command.c \ - kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c \ - kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c \ - kern/misc.c kern/parser.c kern/partition.c \ - kern/rescue_parser.c kern/rescue_reader.c kern/term.c \ - kern/verifiers.c kern/arm/startup.S kern/arm/coreboot/init.c \ + kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c \ + kern/compiler-rt.c kern/mm.c kern/time.c \ + kern/generic/millisleep.c kern/command.c kern/corecmd.c \ + kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c \ + kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c \ + kern/parser.c kern/partition.c kern/rescue_parser.c \ + kern/rescue_reader.c kern/term.c kern/verifiers.c \ + kern/arm/startup.S kern/arm/coreboot/init.c \ kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S \ lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c \ term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c \ @@ -10572,6 +10573,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-lockdown.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -10646,6 +10648,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-lockdown.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -10683,6 +10686,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-lockdown.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -10884,6 +10888,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-lockdown.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -11120,6 +11125,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-lockdown.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -11287,6 +11293,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-lockdown.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -11379,6 +11386,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \ +@COND_arm64_efi_TRUE@ kern/kernel_exec-lockdown.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @@ -15379,7 +15387,9 @@ CPPFLAGS_PARTTOOL_LIST = -Dgrub_parttool_register=PARTTOOL_LIST_MARKER CPPFLAGS_TERMINAL_LIST = '-Dgrub_term_register_input(...)=INPUT_TERMINAL_LIST_MARKER(__VA_ARGS__)' \ '-Dgrub_term_register_output(...)=OUTPUT_TERMINAL_LIST_MARKER(__VA_ARGS__)' CPPFLAGS_COMMAND_LIST = '-Dgrub_register_command(...)=COMMAND_LIST_MARKER(__VA_ARGS__)' \ + '-Dgrub_register_command_lockdown(...)=COMMAND_LOCKDOWN_LIST_MARKER(__VA_ARGS__)' \ '-Dgrub_register_extcmd(...)=EXTCOMMAND_LIST_MARKER(__VA_ARGS__)' \ + '-Dgrub_register_extcmd_lockdown(...)=EXTCOMMAND_LOCKDOWN_LIST_MARKER(__VA_ARGS__)' \ '-Dgrub_register_command_p1(...)=P1COMMAND_LIST_MARKER(__VA_ARGS__)' CPPFLAGS_FDT_LIST := '-Dgrub_fdtbus_register(...)=FDT_DRIVER_LIST_MARKER(__VA_ARGS__)' CPPFLAGS_MARKER = $(CPPFLAGS_FS_LIST) $(CPPFLAGS_VIDEO_LIST) \ @@ -16387,6 +16397,7 @@ KERNEL_HEADER_FILES = $(top_srcdir)/include/grub/cache.h \ $(top_srcdir)/include/grub/i18n.h \ $(top_srcdir)/include/grub/kernel.h \ $(top_srcdir)/include/grub/list.h \ + $(top_srcdir)/include/grub/lockdown.h \ $(top_srcdir)/include/grub/misc.h $(am__append_5794) \ $(am__append_5795) $(top_srcdir)/include/grub/mm.h \ $(top_srcdir)/include/grub/parser.h \ @@ -25594,7 +25605,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_arm64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \ @COND_arm64_efi_TRUE@ kern/efi/mm.c term/efi/console.c \ @COND_arm64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \ -@COND_arm64_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ +@COND_arm64_efi_TRUE@ kern/lockdown.c kern/compiler-rt.c \ +@COND_arm64_efi_TRUE@ kern/mm.c kern/time.c \ @COND_arm64_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ @COND_arm64_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ @COND_arm64_efi_TRUE@ kern/dl.c kern/env.c kern/err.c \ @@ -25645,7 +25657,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_arm_efi_TRUE@ kern/efi/init.c kern/efi/mm.c \ @COND_arm_efi_TRUE@ term/efi/console.c kern/acpi.c \ @COND_arm_efi_TRUE@ kern/efi/acpi.c kern/efi/sb.c \ -@COND_arm_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ +@COND_arm_efi_TRUE@ kern/lockdown.c kern/compiler-rt.c \ +@COND_arm_efi_TRUE@ kern/mm.c kern/time.c \ @COND_arm_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ @COND_arm_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ @COND_arm_efi_TRUE@ kern/dl.c kern/env.c kern/err.c kern/file.c \ @@ -25725,7 +25738,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \ @COND_i386_efi_TRUE@ kern/efi/mm.c term/efi/console.c \ @COND_i386_efi_TRUE@ kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \ -@COND_i386_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ +@COND_i386_efi_TRUE@ kern/lockdown.c kern/compiler-rt.c \ +@COND_i386_efi_TRUE@ kern/mm.c kern/time.c \ @COND_i386_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ @COND_i386_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ @COND_i386_efi_TRUE@ kern/dl.c kern/env.c kern/err.c \ @@ -25843,7 +25857,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_ia64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \ @COND_ia64_efi_TRUE@ kern/efi/mm.c term/efi/console.c \ @COND_ia64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \ -@COND_ia64_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ +@COND_ia64_efi_TRUE@ kern/lockdown.c kern/compiler-rt.c \ +@COND_ia64_efi_TRUE@ kern/mm.c kern/time.c \ @COND_ia64_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ @COND_ia64_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ @COND_ia64_efi_TRUE@ kern/dl.c kern/env.c kern/err.c \ @@ -25956,8 +25971,9 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_riscv32_efi_TRUE@ kern/efi/init.c kern/efi/mm.c \ @COND_riscv32_efi_TRUE@ term/efi/console.c kern/acpi.c \ @COND_riscv32_efi_TRUE@ kern/efi/acpi.c kern/efi/sb.c \ -@COND_riscv32_efi_TRUE@ kern/compiler-rt.c kern/mm.c \ -@COND_riscv32_efi_TRUE@ kern/time.c kern/generic/millisleep.c \ +@COND_riscv32_efi_TRUE@ kern/lockdown.c kern/compiler-rt.c \ +@COND_riscv32_efi_TRUE@ kern/mm.c kern/time.c \ +@COND_riscv32_efi_TRUE@ kern/generic/millisleep.c \ @COND_riscv32_efi_TRUE@ kern/command.c kern/corecmd.c \ @COND_riscv32_efi_TRUE@ kern/device.c kern/disk.c kern/dl.c \ @COND_riscv32_efi_TRUE@ kern/env.c kern/err.c kern/file.c \ @@ -25974,9 +25990,9 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_riscv64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \ @COND_riscv64_efi_TRUE@ kern/efi/mm.c term/efi/console.c \ @COND_riscv64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \ -@COND_riscv64_efi_TRUE@ kern/efi/sb.c kern/compiler-rt.c \ -@COND_riscv64_efi_TRUE@ kern/mm.c kern/time.c \ -@COND_riscv64_efi_TRUE@ kern/generic/millisleep.c \ +@COND_riscv64_efi_TRUE@ kern/efi/sb.c kern/lockdown.c \ +@COND_riscv64_efi_TRUE@ kern/compiler-rt.c kern/mm.c \ +@COND_riscv64_efi_TRUE@ kern/time.c kern/generic/millisleep.c \ @COND_riscv64_efi_TRUE@ kern/command.c kern/corecmd.c \ @COND_riscv64_efi_TRUE@ kern/device.c kern/disk.c kern/dl.c \ @COND_riscv64_efi_TRUE@ kern/env.c kern/err.c kern/file.c \ @@ -26022,8 +26038,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_x86_64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \ @COND_x86_64_efi_TRUE@ kern/efi/mm.c term/efi/console.c \ @COND_x86_64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \ -@COND_x86_64_efi_TRUE@ kern/efi/sb.c kern/compiler-rt.c \ -@COND_x86_64_efi_TRUE@ kern/mm.c kern/time.c \ +@COND_x86_64_efi_TRUE@ kern/efi/sb.c kern/lockdown.c \ +@COND_x86_64_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ @COND_x86_64_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ @COND_x86_64_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ @COND_x86_64_efi_TRUE@ kern/dl.c kern/env.c kern/err.c \ @@ -27994,6 +28010,8 @@ kern/efi/kernel_exec-acpi.$(OBJEXT): kern/efi/$(am__dirstamp) \ kern/efi/$(DEPDIR)/$(am__dirstamp) kern/efi/kernel_exec-sb.$(OBJEXT): kern/efi/$(am__dirstamp) \ kern/efi/$(DEPDIR)/$(am__dirstamp) +kern/kernel_exec-lockdown.$(OBJEXT): kern/$(am__dirstamp) \ + kern/$(DEPDIR)/$(am__dirstamp) kern/kernel_exec-compiler-rt.$(OBJEXT): kern/$(am__dirstamp) \ kern/$(DEPDIR)/$(am__dirstamp) kern/kernel_exec-mm.$(OBJEXT): kern/$(am__dirstamp) \ @@ -30945,6 +30963,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-fs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-list.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-lockdown.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-mm.Po@am__quote@ @@ -35293,6 +35312,20 @@ kern/efi/kernel_exec-sb.obj: kern/efi/sb.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/efi/kernel_exec-sb.obj `if test -f 'kern/efi/sb.c'; then $(CYGPATH_W) 'kern/efi/sb.c'; else $(CYGPATH_W) '$(srcdir)/kern/efi/sb.c'; fi` +kern/kernel_exec-lockdown.o: kern/lockdown.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-lockdown.o -MD -MP -MF kern/$(DEPDIR)/kernel_exec-lockdown.Tpo -c -o kern/kernel_exec-lockdown.o `test -f 'kern/lockdown.c' || echo '$(srcdir)/'`kern/lockdown.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-lockdown.Tpo kern/$(DEPDIR)/kernel_exec-lockdown.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kern/lockdown.c' object='kern/kernel_exec-lockdown.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/kernel_exec-lockdown.o `test -f 'kern/lockdown.c' || echo '$(srcdir)/'`kern/lockdown.c + +kern/kernel_exec-lockdown.obj: kern/lockdown.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-lockdown.obj -MD -MP -MF kern/$(DEPDIR)/kernel_exec-lockdown.Tpo -c -o kern/kernel_exec-lockdown.obj `if test -f 'kern/lockdown.c'; then $(CYGPATH_W) 'kern/lockdown.c'; else $(CYGPATH_W) '$(srcdir)/kern/lockdown.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-lockdown.Tpo kern/$(DEPDIR)/kernel_exec-lockdown.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kern/lockdown.c' object='kern/kernel_exec-lockdown.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/kernel_exec-lockdown.obj `if test -f 'kern/lockdown.c'; then $(CYGPATH_W) 'kern/lockdown.c'; else $(CYGPATH_W) '$(srcdir)/kern/lockdown.c'; fi` + kern/kernel_exec-compiler-rt.o: kern/compiler-rt.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-compiler-rt.o -MD -MP -MF kern/$(DEPDIR)/kernel_exec-compiler-rt.Tpo -c -o kern/kernel_exec-compiler-rt.o `test -f 'kern/compiler-rt.c' || echo '$(srcdir)/'`kern/compiler-rt.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-compiler-rt.Tpo kern/$(DEPDIR)/kernel_exec-compiler-rt.Po @@ -46650,8 +46683,10 @@ command.lst: $(MARKER_FILES) b=`basename $$pp .marker`; \ sed -n \ -e "/EXTCOMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ + -e "/EXTCOMMAND_LOCKDOWN_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ -e "/P1COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ - -e "/COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" $$pp; \ + -e "/COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" \ + -e "/COMMAND_LOCKDOWN_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" $$pp; \ done) | sort -u > $@ partmap.lst: $(MARKER_FILES) diff --git a/grub-core/commands/extcmd.c b/grub-core/commands/extcmd.c index 69574e2..90a5ca2 100644 --- a/grub-core/commands/extcmd.c +++ b/grub-core/commands/extcmd.c @@ -19,6 +19,7 @@ #include #include +#include #include #include #include @@ -110,6 +111,28 @@ grub_register_extcmd (const char *name, grub_extcmd_func_t func, summary, description, parser, 1); } +static grub_err_t +grub_extcmd_lockdown (grub_extcmd_context_t ctxt __attribute__ ((unused)), + int argc __attribute__ ((unused)), + char **argv __attribute__ ((unused))) +{ + return grub_error (GRUB_ERR_ACCESS_DENIED, + N_("%s: the command is not allowed when lockdown is enforced"), + ctxt->extcmd->cmd->name); +} + +grub_extcmd_t +grub_register_extcmd_lockdown (const char *name, grub_extcmd_func_t func, + grub_command_flags_t flags, const char *summary, + const char *description, + const struct grub_arg_option *parser) +{ + if (grub_is_lockdown () == GRUB_LOCKDOWN_ENABLED) + func = grub_extcmd_lockdown; + + return grub_register_extcmd (name, func, flags, summary, description, parser); +} + void grub_unregister_extcmd (grub_extcmd_t ext) { diff --git a/grub-core/kern/command.c b/grub-core/kern/command.c index acd7218..4aabcd4 100644 --- a/grub-core/kern/command.c +++ b/grub-core/kern/command.c @@ -17,6 +17,7 @@ * along with GRUB. If not, see . */ +#include #include #include @@ -77,6 +78,29 @@ grub_register_command_prio (const char *name, return cmd; } +static grub_err_t +grub_cmd_lockdown (grub_command_t cmd __attribute__ ((unused)), + int argc __attribute__ ((unused)), + char **argv __attribute__ ((unused))) + +{ + return grub_error (GRUB_ERR_ACCESS_DENIED, + N_("%s: the command is not allowed when lockdown is enforced"), + cmd->name); +} + +grub_command_t +grub_register_command_lockdown (const char *name, + grub_command_func_t func, + const char *summary, + const char *description) +{ + if (grub_is_lockdown () == GRUB_LOCKDOWN_ENABLED) + func = grub_cmd_lockdown; + + return grub_register_command_prio (name, func, summary, description, 0); +} + void grub_unregister_command (grub_command_t cmd) { diff --git a/grub-core/kern/lockdown.c b/grub-core/kern/lockdown.c new file mode 100644 index 0000000..1e56c0b --- /dev/null +++ b/grub-core/kern/lockdown.c @@ -0,0 +1,80 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * GRUB 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. + * + * GRUB 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 GRUB. If not, see . + * + */ + +#include +#include +#include +#include + +static int lockdown = GRUB_LOCKDOWN_DISABLED; + +static grub_err_t +lockdown_verifier_init (grub_file_t io __attribute__ ((unused)), + enum grub_file_type type, + void **context __attribute__ ((unused)), + enum grub_verify_flags *flags) +{ + *flags = GRUB_VERIFY_FLAGS_SKIP_VERIFICATION; + + switch (type & GRUB_FILE_TYPE_MASK) + { + case GRUB_FILE_TYPE_GRUB_MODULE: + case GRUB_FILE_TYPE_LINUX_KERNEL: + case GRUB_FILE_TYPE_MULTIBOOT_KERNEL: + case GRUB_FILE_TYPE_XEN_HYPERVISOR: + case GRUB_FILE_TYPE_BSD_KERNEL: + case GRUB_FILE_TYPE_XNU_KERNEL: + case GRUB_FILE_TYPE_PLAN9_KERNEL: + case GRUB_FILE_TYPE_NTLDR: + case GRUB_FILE_TYPE_TRUECRYPT: + case GRUB_FILE_TYPE_FREEDOS: + case GRUB_FILE_TYPE_PXECHAINLOADER: + case GRUB_FILE_TYPE_PCCHAINLOADER: + case GRUB_FILE_TYPE_COREBOOT_CHAINLOADER: + case GRUB_FILE_TYPE_EFI_CHAINLOADED_IMAGE: + case GRUB_FILE_TYPE_ACPI_TABLE: + case GRUB_FILE_TYPE_DEVICE_TREE_IMAGE: + *flags = GRUB_VERIFY_FLAGS_DEFER_AUTH; + + /* Fall through. */ + + default: + return GRUB_ERR_NONE; + } +} + +struct grub_file_verifier lockdown_verifier = + { + .name = "lockdown_verifier", + .init = lockdown_verifier_init, + }; + +void +grub_lockdown (void) +{ + lockdown = GRUB_LOCKDOWN_ENABLED; + + grub_verifier_register (&lockdown_verifier); +} + +int +grub_is_lockdown (void) +{ + return lockdown; +} diff --git a/include/grub/command.h b/include/grub/command.h index eee4e84..2a6f7f8 100644 --- a/include/grub/command.h +++ b/include/grub/command.h @@ -86,6 +86,11 @@ EXPORT_FUNC(grub_register_command_prio) (const char *name, const char *summary, const char *description, int prio); +grub_command_t +EXPORT_FUNC(grub_register_command_lockdown) (const char *name, + grub_command_func_t func, + const char *summary, + const char *description); void EXPORT_FUNC(grub_unregister_command) (grub_command_t cmd); static inline grub_command_t diff --git a/include/grub/extcmd.h b/include/grub/extcmd.h index 19fe592..fe9248b 100644 --- a/include/grub/extcmd.h +++ b/include/grub/extcmd.h @@ -62,6 +62,13 @@ grub_extcmd_t EXPORT_FUNC(grub_register_extcmd) (const char *name, const char *description, const struct grub_arg_option *parser); +grub_extcmd_t EXPORT_FUNC(grub_register_extcmd_lockdown) (const char *name, + grub_extcmd_func_t func, + grub_command_flags_t flags, + const char *summary, + const char *description, + const struct grub_arg_option *parser); + grub_extcmd_t EXPORT_FUNC(grub_register_extcmd_prio) (const char *name, grub_extcmd_func_t func, grub_command_flags_t flags, diff --git a/include/grub/lockdown.h b/include/grub/lockdown.h new file mode 100644 index 0000000..40531fa --- /dev/null +++ b/include/grub/lockdown.h @@ -0,0 +1,44 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * GRUB 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. + * + * GRUB 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 GRUB. If not, see . + */ + +#ifndef GRUB_LOCKDOWN_H +#define GRUB_LOCKDOWN_H 1 + +#include + +#define GRUB_LOCKDOWN_DISABLED 0 +#define GRUB_LOCKDOWN_ENABLED 1 + +#ifdef GRUB_MACHINE_EFI +extern void +EXPORT_FUNC (grub_lockdown) (void); +extern int +EXPORT_FUNC (grub_is_lockdown) (void); +#else +static inline void +grub_lockdown (void) +{ +} + +static inline int +grub_is_lockdown (void) +{ + return GRUB_LOCKDOWN_DISABLED; +} +#endif +#endif /* ! GRUB_LOCKDOWN_H */ diff --git a/po/POTFILES.in b/po/POTFILES.in index 49755d3..5e26845 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -309,6 +309,7 @@ ./grub-core/kern/ieee1275/mmap.c ./grub-core/kern/ieee1275/openfw.c ./grub-core/kern/list.c +./grub-core/kern/lockdown.c ./grub-core/kern/main.c ./grub-core/kern/mips/arc/init.c ./grub-core/kern/mips/dl.c @@ -1207,6 +1208,7 @@ ./include/grub/linux.h ./include/grub/list.h ./include/grub/loader.h +./include/grub/lockdown.h ./include/grub/lvm.h ./include/grub/macho.h ./include/grub/machoload.h -- 2.14.2 ================================================ FILE: boot/grub2/0036-kern-lockdown-Set-a-variable-if-the-GRUB-is-locked-d.patch ================================================ From d90367471779c240e002e62edfb6b31fc85b4908 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 2 Feb 2021 19:59:48 +0100 Subject: [PATCH] kern/lockdown: Set a variable if the GRUB is locked down It may be useful for scripts to determine whether the GRUB is locked down or not. Add the lockdown variable which is set to "y" when the GRUB is locked down. Suggested-by: Dimitri John Ledkov Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- docs/grub.texi | 3 +++ grub-core/kern/lockdown.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/docs/grub.texi b/docs/grub.texi index a25459f..bdbb329 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -5803,6 +5803,9 @@ The GRUB can be locked down when booted on a secure boot environment, for exampl if the UEFI secure boot is enabled. On a locked down configuration, the GRUB will be restricted and some operations/commands cannot be executed. +The @samp{lockdown} variable is set to @samp{y} when the GRUB is locked down. +Otherwise it does not exit. + @node Platform limitations @chapter Platform limitations diff --git a/grub-core/kern/lockdown.c b/grub-core/kern/lockdown.c index 1e56c0b..0bc70fd 100644 --- a/grub-core/kern/lockdown.c +++ b/grub-core/kern/lockdown.c @@ -18,6 +18,7 @@ */ #include +#include #include #include #include @@ -71,6 +72,9 @@ grub_lockdown (void) lockdown = GRUB_LOCKDOWN_ENABLED; grub_verifier_register (&lockdown_verifier); + + grub_env_set ("lockdown", "y"); + grub_env_export ("lockdown"); } int -- 2.14.2 ================================================ FILE: boot/grub2/0037-efi-Lockdown-the-GRUB-when-the-UEFI-Secure-Boot-is-e.patch ================================================ From 98b00a403cbf2ba6833d1ac0499871b27a08eb77 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 28 Sep 2020 20:08:29 +0200 Subject: [PATCH] efi: Lockdown the GRUB when the UEFI Secure Boot is enabled If the UEFI Secure Boot is enabled then the GRUB must be locked down to prevent executing code that can potentially be used to subvert its verification mechanisms. Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/efi/init.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c index b683bec..1333465 100644 --- a/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -40,8 +41,15 @@ grub_efi_init (void) /* Initialize the memory management system. */ grub_efi_mm_init (); - /* Register the shim_lock verifier if UEFI Secure Boot is enabled. */ - grub_shim_lock_verifier_setup (); + /* + * Lockdown the GRUB and register the shim_lock verifier + * if the UEFI Secure Boot is enabled. + */ + if (grub_efi_get_secureboot () == GRUB_EFI_SECUREBOOT_MODE_ENABLED) + { + grub_lockdown (); + grub_shim_lock_verifier_setup (); + } efi_call_4 (grub_efi_system_table->boot_services->set_watchdog_timer, 0, 0, 0, NULL); -- 2.14.2 ================================================ FILE: boot/grub2/0038-efi-Use-grub_is_lockdown-instead-of-hardcoding-a-dis.patch ================================================ From 8f73052885892bc0dbc01e297f79d7cf4925e491 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 28 Sep 2020 20:08:33 +0200 Subject: [PATCH] efi: Use grub_is_lockdown() instead of hardcoding a disabled modules list Now the GRUB can check if it has been locked down and this can be used to prevent executing commands that can be utilized to circumvent the UEFI Secure Boot mechanisms. So, instead of hardcoding a list of modules that have to be disabled, prevent the usage of commands that can be dangerous. This not only allows the commands to be disabled on other platforms, but also properly separate the concerns. Since the shim_lock verifier logic should be only about preventing to run untrusted binaries and not about defining these kind of policies. Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- docs/grub.texi | 15 +++++++++------ grub-core/commands/i386/wrmsr.c | 5 +++-- grub-core/commands/iorw.c | 19 ++++++++++--------- grub-core/commands/memrw.c | 19 ++++++++++--------- grub-core/kern/efi/sb.c | 41 ----------------------------------------- 5 files changed, 32 insertions(+), 67 deletions(-) diff --git a/docs/grub.texi b/docs/grub.texi index bdbb329..bbe60a4 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -5256,6 +5256,9 @@ only applies to the particular cpu/core/thread that runs the command. Also, if you specify a reserved or unimplemented MSR address, it will cause a general protection exception (which is not currently being handled) and the system will reboot. + +Note: The command is not allowed when lockdown is enforced (@pxref{Lockdown}). + This is done to prevent subverting various security mechanisms. @end deffn @node xen_hypervisor @@ -5752,12 +5755,12 @@ boot and the shim. This functionality is provided by the shim_lock verifier. It is built into the @file{core.img} and is registered if the UEFI secure boot is enabled. -All modules not stored in the @file{core.img} and the ACPI tables for the -@command{acpi} command have to be signed, e.g. using PGP. Additionally, the -@command{iorw}, the @command{memrw} and the @command{wrmsr} commands are -prohibited if the UEFI secure boot is enabled. This is done due to -security reasons. All above mentioned requirements are enforced by the -shim_lock verifier logic. +All GRUB modules not stored in the @file{core.img}, OS kernels, ACPI tables, +Device Trees, etc. have to be signed, e.g, using PGP. Additionally, the commands +that can be used to subvert the UEFI secure boot mechanism, such as @command{iorw} +and @command{memrw} will not be available when the UEFI secure boot is enabled. +This is done for security reasons and are enforced by the GRUB Lockdown mechanism +(@pxref{Lockdown}). @node Measured Boot @section Measuring boot components diff --git a/grub-core/commands/i386/wrmsr.c b/grub-core/commands/i386/wrmsr.c index 9c5e510..56a29c2 100644 --- a/grub-core/commands/i386/wrmsr.c +++ b/grub-core/commands/i386/wrmsr.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -83,8 +84,8 @@ grub_cmd_msr_write (grub_command_t cmd __attribute__ ((unused)), int argc, char GRUB_MOD_INIT(wrmsr) { - cmd_write = grub_register_command ("wrmsr", grub_cmd_msr_write, N_("ADDR VALUE"), - N_("Write a value to a CPU model specific register.")); + cmd_write = grub_register_command_lockdown ("wrmsr", grub_cmd_msr_write, N_("ADDR VALUE"), + N_("Write a value to a CPU model specific register.")); } GRUB_MOD_FINI(wrmsr) diff --git a/grub-core/commands/iorw.c b/grub-core/commands/iorw.c index a0c164e..584baec 100644 --- a/grub-core/commands/iorw.c +++ b/grub-core/commands/iorw.c @@ -23,6 +23,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -131,17 +132,17 @@ GRUB_MOD_INIT(memrw) N_("PORT"), N_("Read 32-bit value from PORT."), options); cmd_write_byte = - grub_register_command ("outb", grub_cmd_write, - N_("PORT VALUE [MASK]"), - N_("Write 8-bit VALUE to PORT.")); + grub_register_command_lockdown ("outb", grub_cmd_write, + N_("PORT VALUE [MASK]"), + N_("Write 8-bit VALUE to PORT.")); cmd_write_word = - grub_register_command ("outw", grub_cmd_write, - N_("PORT VALUE [MASK]"), - N_("Write 16-bit VALUE to PORT.")); + grub_register_command_lockdown ("outw", grub_cmd_write, + N_("PORT VALUE [MASK]"), + N_("Write 16-bit VALUE to PORT.")); cmd_write_dword = - grub_register_command ("outl", grub_cmd_write, - N_("ADDR VALUE [MASK]"), - N_("Write 32-bit VALUE to PORT.")); + grub_register_command_lockdown ("outl", grub_cmd_write, + N_("ADDR VALUE [MASK]"), + N_("Write 32-bit VALUE to PORT.")); } GRUB_MOD_FINI(memrw) diff --git a/grub-core/commands/memrw.c b/grub-core/commands/memrw.c index 98769ea..d401a6d 100644 --- a/grub-core/commands/memrw.c +++ b/grub-core/commands/memrw.c @@ -22,6 +22,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -133,17 +134,17 @@ GRUB_MOD_INIT(memrw) N_("ADDR"), N_("Read 32-bit value from ADDR."), options); cmd_write_byte = - grub_register_command ("write_byte", grub_cmd_write, - N_("ADDR VALUE [MASK]"), - N_("Write 8-bit VALUE to ADDR.")); + grub_register_command_lockdown ("write_byte", grub_cmd_write, + N_("ADDR VALUE [MASK]"), + N_("Write 8-bit VALUE to ADDR.")); cmd_write_word = - grub_register_command ("write_word", grub_cmd_write, - N_("ADDR VALUE [MASK]"), - N_("Write 16-bit VALUE to ADDR.")); + grub_register_command_lockdown ("write_word", grub_cmd_write, + N_("ADDR VALUE [MASK]"), + N_("Write 16-bit VALUE to ADDR.")); cmd_write_dword = - grub_register_command ("write_dword", grub_cmd_write, - N_("ADDR VALUE [MASK]"), - N_("Write 32-bit VALUE to ADDR.")); + grub_register_command_lockdown ("write_dword", grub_cmd_write, + N_("ADDR VALUE [MASK]"), + N_("Write 32-bit VALUE to ADDR.")); } GRUB_MOD_FINI(memrw) diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c index ce3b7f6..5d7210a 100644 --- a/grub-core/kern/efi/sb.c +++ b/grub-core/kern/efi/sb.c @@ -30,9 +30,6 @@ static grub_efi_guid_t shim_lock_guid = GRUB_EFI_SHIM_LOCK_GUID; -/* List of modules which cannot be loaded if UEFI secure boot mode is enabled. */ -static const char * const disabled_mods[] = {"iorw", "memrw", NULL}; - /* * Determine whether we're in secure boot mode. * @@ -121,53 +118,15 @@ shim_lock_verifier_init (grub_file_t io __attribute__ ((unused)), void **context __attribute__ ((unused)), enum grub_verify_flags *flags) { - const char *b, *e; - int i; - *flags = GRUB_VERIFY_FLAGS_SKIP_VERIFICATION; switch (type & GRUB_FILE_TYPE_MASK) { - case GRUB_FILE_TYPE_GRUB_MODULE: - /* Establish GRUB module name. */ - b = grub_strrchr (io->name, '/'); - e = grub_strrchr (io->name, '.'); - - b = b ? (b + 1) : io->name; - e = e ? e : io->name + grub_strlen (io->name); - e = (e > b) ? e : io->name + grub_strlen (io->name); - - for (i = 0; disabled_mods[i]; i++) - if (!grub_strncmp (b, disabled_mods[i], grub_strlen (b) - grub_strlen (e))) - { - grub_error (GRUB_ERR_ACCESS_DENIED, - N_("module cannot be loaded in UEFI secure boot mode: %s"), - io->name); - return GRUB_ERR_ACCESS_DENIED; - } - - /* Fall through. */ - - case GRUB_FILE_TYPE_ACPI_TABLE: - case GRUB_FILE_TYPE_DEVICE_TREE_IMAGE: - *flags = GRUB_VERIFY_FLAGS_DEFER_AUTH; - - return GRUB_ERR_NONE; - case GRUB_FILE_TYPE_LINUX_KERNEL: case GRUB_FILE_TYPE_MULTIBOOT_KERNEL: case GRUB_FILE_TYPE_BSD_KERNEL: case GRUB_FILE_TYPE_XNU_KERNEL: case GRUB_FILE_TYPE_PLAN9_KERNEL: - for (i = 0; disabled_mods[i]; i++) - if (grub_dl_get (disabled_mods[i])) - { - grub_error (GRUB_ERR_ACCESS_DENIED, - N_("cannot boot due to dangerous module in memory: %s"), - disabled_mods[i]); - return GRUB_ERR_ACCESS_DENIED; - } - *flags = GRUB_VERIFY_FLAGS_SINGLE_CHUNK; /* Fall through. */ -- 2.14.2 ================================================ FILE: boot/grub2/0039-acpi-Don-t-register-the-acpi-command-when-locked-dow.patch ================================================ From 3e8e4c0549240fa209acffceb473e1e509b50c95 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 28 Sep 2020 20:08:41 +0200 Subject: [PATCH] acpi: Don't register the acpi command when locked down MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The command is not allowed when lockdown is enforced. Otherwise an attacker can instruct the GRUB to load an SSDT table to overwrite the kernel lockdown configuration and later load and execute unsigned code. Fixes: CVE-2020-14372 Reported-by: Máté Kukri Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- docs/grub.texi | 5 +++++ grub-core/commands/acpi.c | 15 ++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/docs/grub.texi b/docs/grub.texi index bbe60a4..98592d3 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -3986,6 +3986,11 @@ Normally, this command will replace the Root System Description Pointer (RSDP) in the Extended BIOS Data Area to point to the new tables. If the @option{--no-ebda} option is used, the new tables will be known only to GRUB, but may be used by GRUB's EFI emulation. + +Note: The command is not allowed when lockdown is enforced (@pxref{Lockdown}). + Otherwise an attacker can instruct the GRUB to load an SSDT table to + overwrite the kernel lockdown configuration and later load and execute + unsigned code. @end deffn diff --git a/grub-core/commands/acpi.c b/grub-core/commands/acpi.c index 5a1499a..1215f2a 100644 --- a/grub-core/commands/acpi.c +++ b/grub-core/commands/acpi.c @@ -27,6 +27,7 @@ #include #include #include +#include #ifdef GRUB_MACHINE_EFI #include @@ -775,13 +776,13 @@ static grub_extcmd_t cmd; GRUB_MOD_INIT(acpi) { - cmd = grub_register_extcmd ("acpi", grub_cmd_acpi, 0, - N_("[-1|-2] [--exclude=TABLE1,TABLE2|" - "--load-only=TABLE1,TABLE2] FILE1" - " [FILE2] [...]"), - N_("Load host ACPI tables and tables " - "specified by arguments."), - options); + cmd = grub_register_extcmd_lockdown ("acpi", grub_cmd_acpi, 0, + N_("[-1|-2] [--exclude=TABLE1,TABLE2|" + "--load-only=TABLE1,TABLE2] FILE1" + " [FILE2] [...]"), + N_("Load host ACPI tables and tables " + "specified by arguments."), + options); } GRUB_MOD_FINI(acpi) -- 2.14.2 ================================================ FILE: boot/grub2/0040-mmap-Don-t-register-cutmem-and-badram-commands-when-.patch ================================================ From d298b41f90cbf1f2e5a10e29daa1fc92ddee52c9 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 14 Oct 2020 16:33:42 +0200 Subject: [PATCH] mmap: Don't register cutmem and badram commands when lockdown is enforced The cutmem and badram commands can be used to remove EFI memory regions and potentially disable the UEFI Secure Boot. Prevent the commands to be registered if the GRUB is locked down. Fixes: CVE-2020-27779 Reported-by: Teddy Reed Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- docs/grub.texi | 4 ++++ grub-core/mmap/mmap.c | 13 +++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/grub.texi b/docs/grub.texi index 98592d3..f2fe149 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -4051,6 +4051,10 @@ this page is to be filtered. This syntax makes it easy to represent patterns that are often result of memory damage, due to physical distribution of memory cells. +Note: The command is not allowed when lockdown is enforced (@pxref{Lockdown}). + This prevents removing EFI memory regions to potentially subvert the + security mechanisms provided by the UEFI secure boot. + @node blocklist @subsection blocklist diff --git a/grub-core/mmap/mmap.c b/grub-core/mmap/mmap.c index 57b4e9a..7ebf32e 100644 --- a/grub-core/mmap/mmap.c +++ b/grub-core/mmap/mmap.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -534,12 +535,12 @@ static grub_command_t cmd, cmd_cut; GRUB_MOD_INIT(mmap) { - cmd = grub_register_command ("badram", grub_cmd_badram, - N_("ADDR1,MASK1[,ADDR2,MASK2[,...]]"), - N_("Declare memory regions as faulty (badram).")); - cmd_cut = grub_register_command ("cutmem", grub_cmd_cutmem, - N_("FROM[K|M|G] TO[K|M|G]"), - N_("Remove any memory regions in specified range.")); + cmd = grub_register_command_lockdown ("badram", grub_cmd_badram, + N_("ADDR1,MASK1[,ADDR2,MASK2[,...]]"), + N_("Declare memory regions as faulty (badram).")); + cmd_cut = grub_register_command_lockdown ("cutmem", grub_cmd_cutmem, + N_("FROM[K|M|G] TO[K|M|G]"), + N_("Remove any memory regions in specified range.")); } -- 2.14.2 ================================================ FILE: boot/grub2/0041-commands-Restrict-commands-that-can-load-BIOS-or-DT-.patch ================================================ From 468a5699b249fe6816b4e7e86c5dc9d325c9b09e Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 24 Feb 2021 09:00:05 +0100 Subject: [PATCH] commands: Restrict commands that can load BIOS or DT blobs when locked down There are some more commands that should be restricted when the GRUB is locked down. Following is the list of commands and reasons to restrict: * fakebios: creates BIOS-like structures for backward compatibility with existing OSes. This should not be allowed when locked down. * loadbios: reads a BIOS dump from storage and loads it. This action should not be allowed when locked down. * devicetree: loads a Device Tree blob and passes it to the OS. It replaces any Device Tree provided by the firmware. This also should not be allowed when locked down. Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- docs/grub.texi | 3 +++ grub-core/commands/efi/loadbios.c | 16 ++++++++-------- grub-core/loader/arm/linux.c | 6 +++--- grub-core/loader/efi/fdt.c | 4 ++-- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/docs/grub.texi b/docs/grub.texi index f2fe149..79f58c5 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -4235,6 +4235,9 @@ hour, minute, and second unchanged. Load a device tree blob (.dtb) from a filesystem, for later use by a Linux kernel. Does not perform merging with any device tree supplied by firmware, but rather replaces it completely. + +Note: The command is not allowed when lockdown is enforced (@pxref{Lockdown}). + This is done to prevent subverting various security mechanisms. @ref{GNU/Linux}. @end deffn diff --git a/grub-core/commands/efi/loadbios.c b/grub-core/commands/efi/loadbios.c index d41d521..5c7725f 100644 --- a/grub-core/commands/efi/loadbios.c +++ b/grub-core/commands/efi/loadbios.c @@ -205,14 +205,14 @@ static grub_command_t cmd_fakebios, cmd_loadbios; GRUB_MOD_INIT(loadbios) { - cmd_fakebios = grub_register_command ("fakebios", grub_cmd_fakebios, - 0, N_("Create BIOS-like structures for" - " backward compatibility with" - " existing OS.")); - - cmd_loadbios = grub_register_command ("loadbios", grub_cmd_loadbios, - N_("BIOS_DUMP [INT10_DUMP]"), - N_("Load BIOS dump.")); + cmd_fakebios = grub_register_command_lockdown ("fakebios", grub_cmd_fakebios, + 0, N_("Create BIOS-like structures for" + " backward compatibility with" + " existing OS.")); + + cmd_loadbios = grub_register_command_lockdown ("loadbios", grub_cmd_loadbios, + N_("BIOS_DUMP [INT10_DUMP]"), + N_("Load BIOS dump.")); } GRUB_MOD_FINI(loadbios) diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c index d70c174..ed23dc7 100644 --- a/grub-core/loader/arm/linux.c +++ b/grub-core/loader/arm/linux.c @@ -493,9 +493,9 @@ GRUB_MOD_INIT (linux) 0, N_("Load Linux.")); cmd_initrd = grub_register_command ("initrd", grub_cmd_initrd, 0, N_("Load initrd.")); - cmd_devicetree = grub_register_command ("devicetree", grub_cmd_devicetree, - /* TRANSLATORS: DTB stands for device tree blob. */ - 0, N_("Load DTB file.")); + cmd_devicetree = grub_register_command_lockdown ("devicetree", grub_cmd_devicetree, + /* TRANSLATORS: DTB stands for device tree blob. */ + 0, N_("Load DTB file.")); my_mod = mod; current_fdt = (const void *) grub_arm_firmware_get_boot_data (); machine_type = grub_arm_firmware_get_machine_type (); diff --git a/grub-core/loader/efi/fdt.c b/grub-core/loader/efi/fdt.c index ee9c559..003d07c 100644 --- a/grub-core/loader/efi/fdt.c +++ b/grub-core/loader/efi/fdt.c @@ -165,8 +165,8 @@ static grub_command_t cmd_devicetree; GRUB_MOD_INIT (fdt) { cmd_devicetree = - grub_register_command ("devicetree", grub_cmd_devicetree, 0, - N_("Load DTB file.")); + grub_register_command_lockdown ("devicetree", grub_cmd_devicetree, 0, + N_("Load DTB file.")); } GRUB_MOD_FINI (fdt) -- 2.14.2 ================================================ FILE: boot/grub2/0042-commands-setpci-Restrict-setpci-command-when-locked-.patch ================================================ From 58b77d4069823b44c5fa916fa8ddfc9c4cd51e02 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 24 Feb 2021 22:59:59 +0100 Subject: [PATCH] commands/setpci: Restrict setpci command when locked down This command can set PCI devices register values, which makes it dangerous in a locked down configuration. Restrict it so can't be used on this setup. Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/commands/setpci.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/grub-core/commands/setpci.c b/grub-core/commands/setpci.c index d5bc97d..fa2ba7d 100644 --- a/grub-core/commands/setpci.c +++ b/grub-core/commands/setpci.c @@ -329,10 +329,10 @@ static grub_extcmd_t cmd; GRUB_MOD_INIT(setpci) { - cmd = grub_register_extcmd ("setpci", grub_cmd_setpci, 0, - N_("[-s POSITION] [-d DEVICE] [-v VAR] " - "REGISTER[=VALUE[:MASK]]"), - N_("Manipulate PCI devices."), options); + cmd = grub_register_extcmd_lockdown ("setpci", grub_cmd_setpci, 0, + N_("[-s POSITION] [-d DEVICE] [-v VAR] " + "REGISTER[=VALUE[:MASK]]"), + N_("Manipulate PCI devices."), options); } GRUB_MOD_FINI(setpci) -- 2.14.2 ================================================ FILE: boot/grub2/0043-commands-hdparm-Restrict-hdparm-command-when-locked-.patch ================================================ From 5c97492a29c6063567b65ed1a069f5e6f4e211f0 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 24 Feb 2021 12:59:29 +0100 Subject: [PATCH] commands/hdparm: Restrict hdparm command when locked down The command can be used to get/set ATA disk parameters. Some of these can be dangerous since change the disk behavior. Restrict it when locked down. Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/commands/hdparm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/grub-core/commands/hdparm.c b/grub-core/commands/hdparm.c index d3fa966..2e2319e 100644 --- a/grub-core/commands/hdparm.c +++ b/grub-core/commands/hdparm.c @@ -436,9 +436,9 @@ static grub_extcmd_t cmd; GRUB_MOD_INIT(hdparm) { - cmd = grub_register_extcmd ("hdparm", grub_cmd_hdparm, 0, - N_("[OPTIONS] DISK"), - N_("Get/set ATA disk parameters."), options); + cmd = grub_register_extcmd_lockdown ("hdparm", grub_cmd_hdparm, 0, + N_("[OPTIONS] DISK"), + N_("Get/set ATA disk parameters."), options); } GRUB_MOD_FINI(hdparm) -- 2.14.2 ================================================ FILE: boot/grub2/0044-gdb-Restrict-GDB-access-when-locked-down.patch ================================================ From 508270838998f151a82e9c13e7cb8a470a2dc23d Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 24 Feb 2021 15:03:26 +0100 Subject: [PATCH] gdb: Restrict GDB access when locked down The gdbstub* commands allow to start and control a GDB stub running on local host that can be used to connect from a remote debugger. Restrict this functionality when the GRUB is locked down. Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/gdb/gdb.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/grub-core/gdb/gdb.c b/grub-core/gdb/gdb.c index 847a1e1..1818cb6 100644 --- a/grub-core/gdb/gdb.c +++ b/grub-core/gdb/gdb.c @@ -75,20 +75,24 @@ static grub_command_t cmd, cmd_stop, cmd_break; GRUB_MOD_INIT (gdb) { grub_gdb_idtinit (); - cmd = grub_register_command ("gdbstub", grub_cmd_gdbstub, - N_("PORT"), - /* TRANSLATORS: GDB stub is a small part of - GDB functionality running on local host - which allows remote debugger to - connect to it. */ - N_("Start GDB stub on given port")); - cmd_break = grub_register_command ("gdbstub_break", grub_cmd_gdb_break, - /* TRANSLATORS: this refers to triggering - a breakpoint so that the user will land - into GDB. */ - 0, N_("Break into GDB")); - cmd_stop = grub_register_command ("gdbstub_stop", grub_cmd_gdbstop, - 0, N_("Stop GDB stub")); + cmd = grub_register_command_lockdown ("gdbstub", grub_cmd_gdbstub, + N_("PORT"), + /* + * TRANSLATORS: GDB stub is a small part of + * GDB functionality running on local host + * which allows remote debugger to + * connect to it. + */ + N_("Start GDB stub on given port")); + cmd_break = grub_register_command_lockdown ("gdbstub_break", grub_cmd_gdb_break, + /* + * TRANSLATORS: this refers to triggering + * a breakpoint so that the user will land + * into GDB. + */ + 0, N_("Break into GDB")); + cmd_stop = grub_register_command_lockdown ("gdbstub_stop", grub_cmd_gdbstop, + 0, N_("Stop GDB stub")); } GRUB_MOD_FINI (gdb) -- 2.14.2 ================================================ FILE: boot/grub2/0045-loader-xnu-Don-t-allow-loading-extension-and-package.patch ================================================ From 9c5565135f12400a925ee901b25984e7af4442f5 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 24 Feb 2021 14:44:38 +0100 Subject: [PATCH] loader/xnu: Don't allow loading extension and packages when locked down The shim_lock verifier validates the XNU kernels but no its extensions and packages. Prevent these to be loaded when the GRUB is locked down. Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/loader/xnu.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c index 9ae4ceb..44fd5a9 100644 --- a/grub-core/loader/xnu.c +++ b/grub-core/loader/xnu.c @@ -1485,20 +1485,23 @@ GRUB_MOD_INIT(xnu) N_("Load XNU image.")); cmd_kernel64 = grub_register_command ("xnu_kernel64", grub_cmd_xnu_kernel64, 0, N_("Load 64-bit XNU image.")); - cmd_mkext = grub_register_command ("xnu_mkext", grub_cmd_xnu_mkext, 0, - N_("Load XNU extension package.")); - cmd_kext = grub_register_command ("xnu_kext", grub_cmd_xnu_kext, 0, - N_("Load XNU extension.")); - cmd_kextdir = grub_register_command ("xnu_kextdir", grub_cmd_xnu_kextdir, - /* TRANSLATORS: OSBundleRequired is a - variable name in xnu extensions - manifests. It behaves mostly like - GNU/Linux runlevels. - */ - N_("DIRECTORY [OSBundleRequired]"), - /* TRANSLATORS: There are many extensions - in extension directory. */ - N_("Load XNU extension directory.")); + cmd_mkext = grub_register_command_lockdown ("xnu_mkext", grub_cmd_xnu_mkext, 0, + N_("Load XNU extension package.")); + cmd_kext = grub_register_command_lockdown ("xnu_kext", grub_cmd_xnu_kext, 0, + N_("Load XNU extension.")); + cmd_kextdir = grub_register_command_lockdown ("xnu_kextdir", grub_cmd_xnu_kextdir, + /* + * TRANSLATORS: OSBundleRequired is + * a variable name in xnu extensions + * manifests. It behaves mostly like + * GNU/Linux runlevels. + */ + N_("DIRECTORY [OSBundleRequired]"), + /* + * TRANSLATORS: There are many extensions + * in extension directory. + */ + N_("Load XNU extension directory.")); cmd_ramdisk = grub_register_command ("xnu_ramdisk", grub_cmd_xnu_ramdisk, 0, /* TRANSLATORS: ramdisk here isn't identifier. It can be translated. */ N_("Load XNU ramdisk. " -- 2.14.2 ================================================ FILE: boot/grub2/0046-docs-Document-the-cutmem-command.patch ================================================ From f05e79a0143beb2d9a482a3ebf4fe0ce76778122 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sat, 7 Nov 2020 01:03:18 +0100 Subject: [PATCH] docs: Document the cutmem command The command is not present in the docs/grub.texi user documentation. Reported-by: Daniel Kiper Signed-off-by: Javier Martinez Canillas Signed-off-by: Daniel Kiper Reviewed-by: Javier Martinez Canillas Signed-off-by: Stefan Sørensen --- docs/grub.texi | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/grub.texi b/docs/grub.texi index 79f58c5..8518cc0 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -3892,6 +3892,7 @@ you forget a command, you can run the command @command{help} * cpuid:: Check for CPU features * crc:: Compute or check CRC32 checksums * cryptomount:: Mount a crypto device +* cutmem:: Remove memory regions * date:: Display or set current date and time * devicetree:: Load a device tree blob * distrust:: Remove a pubkey from trusted keys @@ -4051,6 +4052,8 @@ this page is to be filtered. This syntax makes it easy to represent patterns that are often result of memory damage, due to physical distribution of memory cells. +The command is similar to @command{cutmem} command. + Note: The command is not allowed when lockdown is enforced (@pxref{Lockdown}). This prevents removing EFI memory regions to potentially subvert the security mechanisms provided by the UEFI secure boot. @@ -4214,6 +4217,24 @@ GRUB suports devices encrypted using LUKS and geli. Note that necessary modules be used. @end deffn +@node cutmem +@subsection cutmem + +@deffn Command cutmem from[K|M|G] to[K|M|G] +Remove any memory regions in specified range. +@end deffn + +This command notifies the memory manager that specified regions of RAM ought to +be filtered out. This remains in effect after a payload kernel has been loaded +by GRUB, as long as the loaded kernel obtains its memory map from GRUB. Kernels +that support this include Linux, GNU Mach, the kernel of FreeBSD and Multiboot +kernels in general. + +The command is similar to @command{badram} command. + +Note: The command is not allowed when lockdown is enforced (@pxref{Lockdown}). + This prevents removing EFI memory regions to potentially subvert the + security mechanisms provided by the UEFI secure boot. @node date @subsection date -- 2.14.2 ================================================ FILE: boot/grub2/0047-dl-Only-allow-unloading-modules-that-are-not-depende.patch ================================================ From 7630ec5397fe418276b360f9011934b8c034936c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 29 Sep 2020 14:08:55 +0200 Subject: [PATCH] dl: Only allow unloading modules that are not dependencies When a module is attempted to be removed its reference counter is always decremented. This means that repeated rmmod invocations will cause the module to be unloaded even if another module depends on it. This may lead to a use-after-free scenario allowing an attacker to execute arbitrary code and by-pass the UEFI Secure Boot protection. While being there, add the extern keyword to some function declarations in that header file. Fixes: CVE-2020-25632 Reported-by: Chris Coulson Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/commands/minicmd.c | 7 +++++-- grub-core/kern/dl.c | 9 +++++++++ include/grub/dl.h | 8 +++++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/grub-core/commands/minicmd.c b/grub-core/commands/minicmd.c index 6bbce31..fa49893 100644 --- a/grub-core/commands/minicmd.c +++ b/grub-core/commands/minicmd.c @@ -140,8 +140,11 @@ grub_mini_cmd_rmmod (struct grub_command *cmd __attribute__ ((unused)), if (grub_dl_is_persistent (mod)) return grub_error (GRUB_ERR_BAD_ARGUMENT, "cannot unload persistent module"); - if (grub_dl_unref (mod) <= 0) - grub_dl_unload (mod); + if (grub_dl_ref_count (mod) > 1) + return grub_error (GRUB_ERR_BAD_ARGUMENT, "cannot unload referenced module"); + + grub_dl_unref (mod); + grub_dl_unload (mod); return 0; } diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c index 48eb5e7..48f8a79 100644 --- a/grub-core/kern/dl.c +++ b/grub-core/kern/dl.c @@ -549,6 +549,15 @@ grub_dl_unref (grub_dl_t mod) return --mod->ref_count; } +int +grub_dl_ref_count (grub_dl_t mod) +{ + if (mod == NULL) + return 0; + + return mod->ref_count; +} + static void grub_dl_flush_cache (grub_dl_t mod) { diff --git a/include/grub/dl.h b/include/grub/dl.h index f03c035..b3753c9 100644 --- a/include/grub/dl.h +++ b/include/grub/dl.h @@ -203,9 +203,11 @@ grub_dl_t EXPORT_FUNC(grub_dl_load) (const char *name); grub_dl_t grub_dl_load_core (void *addr, grub_size_t size); grub_dl_t EXPORT_FUNC(grub_dl_load_core_noinit) (void *addr, grub_size_t size); int EXPORT_FUNC(grub_dl_unload) (grub_dl_t mod); -void grub_dl_unload_unneeded (void); -int EXPORT_FUNC(grub_dl_ref) (grub_dl_t mod); -int EXPORT_FUNC(grub_dl_unref) (grub_dl_t mod); +extern void grub_dl_unload_unneeded (void); +extern int EXPORT_FUNC(grub_dl_ref) (grub_dl_t mod); +extern int EXPORT_FUNC(grub_dl_unref) (grub_dl_t mod); +extern int EXPORT_FUNC(grub_dl_ref_count) (grub_dl_t mod); + extern grub_dl_t EXPORT_VAR(grub_dl_head); #ifndef GRUB_UTIL -- 2.14.2 ================================================ FILE: boot/grub2/0048-usb-Avoid-possible-out-of-bound-accesses-caused-by-m.patch ================================================ From 128c16a682034263eb519c89bc0934eeb6fa8cfa Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 11 Dec 2020 19:19:21 +0100 Subject: [PATCH] usb: Avoid possible out-of-bound accesses caused by malicious devices The maximum number of configurations and interfaces are fixed but there is no out-of-bound checking to prevent a malicious USB device to report large values for these and cause accesses outside the arrays' memory. Fixes: CVE-2020-25647 Reported-by: Joseph Tartaro Reported-by: Ilja Van Sprundel Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/bus/usb/usb.c | 15 ++++++++++++--- include/grub/usb.h | 10 +++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/grub-core/bus/usb/usb.c b/grub-core/bus/usb/usb.c index 8da5e4c..7cb3cc2 100644 --- a/grub-core/bus/usb/usb.c +++ b/grub-core/bus/usb/usb.c @@ -75,6 +75,9 @@ grub_usb_controller_iterate (grub_usb_controller_iterate_hook_t hook, grub_usb_err_t grub_usb_clear_halt (grub_usb_device_t dev, int endpoint) { + if (endpoint >= GRUB_USB_MAX_TOGGLE) + return GRUB_USB_ERR_BADDEVICE; + dev->toggle[endpoint] = 0; return grub_usb_control_msg (dev, (GRUB_USB_REQTYPE_OUT | GRUB_USB_REQTYPE_STANDARD @@ -134,10 +137,10 @@ grub_usb_device_initialize (grub_usb_device_t dev) return err; descdev = &dev->descdev; - for (i = 0; i < 8; i++) + for (i = 0; i < GRUB_USB_MAX_CONF; i++) dev->config[i].descconf = NULL; - if (descdev->configcnt == 0) + if (descdev->configcnt == 0 || descdev->configcnt > GRUB_USB_MAX_CONF) { err = GRUB_USB_ERR_BADDEVICE; goto fail; @@ -172,6 +175,12 @@ grub_usb_device_initialize (grub_usb_device_t dev) /* Skip the configuration descriptor. */ pos = dev->config[i].descconf->length; + if (dev->config[i].descconf->numif > GRUB_USB_MAX_IF) + { + err = GRUB_USB_ERR_BADDEVICE; + goto fail; + } + /* Read all interfaces. */ for (currif = 0; currif < dev->config[i].descconf->numif; currif++) { @@ -217,7 +226,7 @@ grub_usb_device_initialize (grub_usb_device_t dev) fail: - for (i = 0; i < 8; i++) + for (i = 0; i < GRUB_USB_MAX_CONF; i++) grub_free (dev->config[i].descconf); return err; diff --git a/include/grub/usb.h b/include/grub/usb.h index 512ae1d..6475c55 100644 --- a/include/grub/usb.h +++ b/include/grub/usb.h @@ -23,6 +23,10 @@ #include #include +#define GRUB_USB_MAX_CONF 8 +#define GRUB_USB_MAX_IF 32 +#define GRUB_USB_MAX_TOGGLE 256 + typedef struct grub_usb_device *grub_usb_device_t; typedef struct grub_usb_controller *grub_usb_controller_t; typedef struct grub_usb_controller_dev *grub_usb_controller_dev_t; @@ -167,7 +171,7 @@ struct grub_usb_configuration struct grub_usb_desc_config *descconf; /* Interfaces associated to this configuration. */ - struct grub_usb_interface interf[32]; + struct grub_usb_interface interf[GRUB_USB_MAX_IF]; }; struct grub_usb_hub_port @@ -191,7 +195,7 @@ struct grub_usb_device struct grub_usb_controller controller; /* Device configurations (after opening the device). */ - struct grub_usb_configuration config[8]; + struct grub_usb_configuration config[GRUB_USB_MAX_CONF]; /* Device address. */ int addr; @@ -203,7 +207,7 @@ struct grub_usb_device int initialized; /* Data toggle values (used for bulk transfers only). */ - int toggle[256]; + int toggle[GRUB_USB_MAX_TOGGLE]; /* Used by libusb wrapper. Schedulded for removal. */ void *data; -- 2.14.2 ================================================ FILE: boot/grub2/0049-mmap-Fix-memory-leak-when-iterating-over-mapped-memo.patch ================================================ From 8cb2848f9699642a698af84b12ba187cab722031 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Thu, 3 Dec 2020 14:39:45 +0000 Subject: [PATCH] mmap: Fix memory leak when iterating over mapped memory When returning from grub_mmap_iterate() the memory allocated to present is not being released causing it to leak. Fixes: CID 96655 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/mmap/mmap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/grub-core/mmap/mmap.c b/grub-core/mmap/mmap.c index 7ebf32e..8bf235f 100644 --- a/grub-core/mmap/mmap.c +++ b/grub-core/mmap/mmap.c @@ -270,6 +270,7 @@ grub_mmap_iterate (grub_memory_hook_t hook, void *hook_data) hook_data)) { grub_free (ctx.scanline_events); + grub_free (present); return GRUB_ERR_NONE; } @@ -282,6 +283,7 @@ grub_mmap_iterate (grub_memory_hook_t hook, void *hook_data) } grub_free (ctx.scanline_events); + grub_free (present); return GRUB_ERR_NONE; } -- 2.14.2 ================================================ FILE: boot/grub2/0050-net-net-Fix-possible-dereference-to-of-a-NULL-pointe.patch ================================================ From 03f2515ae0c503406f1a99a2178405049c6555db Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Fri, 27 Nov 2020 15:10:26 +0000 Subject: [PATCH] net/net: Fix possible dereference to of a NULL pointer It is always possible that grub_zalloc() could fail, so we should check for a NULL return. Otherwise we run the risk of dereferencing a NULL pointer. Fixes: CID 296221 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/net/net.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/grub-core/net/net.c b/grub-core/net/net.c index 38f19df..7c2cdf2 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c @@ -86,8 +86,13 @@ grub_net_link_layer_add_address (struct grub_net_card *card, /* Add sender to cache table. */ if (card->link_layer_table == NULL) - card->link_layer_table = grub_zalloc (LINK_LAYER_CACHE_SIZE - * sizeof (card->link_layer_table[0])); + { + card->link_layer_table = grub_zalloc (LINK_LAYER_CACHE_SIZE + * sizeof (card->link_layer_table[0])); + if (card->link_layer_table == NULL) + return; + } + entry = &(card->link_layer_table[card->new_ll_entry]); entry->avail = 1; grub_memcpy (&entry->ll_address, ll, sizeof (entry->ll_address)); -- 2.14.2 ================================================ FILE: boot/grub2/0051-net-tftp-Fix-dangling-memory-pointer.patch ================================================ From 0cb838b281a68b536a09681f9557ea6a7ac5da7a Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Fri, 19 Feb 2021 17:12:23 +0000 Subject: [PATCH] net/tftp: Fix dangling memory pointer The static code analysis tool, Parfait, reported that the valid of file->data was left referencing memory that was freed by the call to grub_free(data) where data was initialized from file->data. To ensure that there is no unintentional access to this memory referenced by file->data we should set the pointer to NULL. Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/net/tftp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c index b4297bc..c106704 100644 --- a/grub-core/net/tftp.c +++ b/grub-core/net/tftp.c @@ -406,6 +406,7 @@ tftp_close (struct grub_file *file) grub_net_udp_close (data->sock); } grub_free (data); + file->data = NULL; return GRUB_ERR_NONE; } -- 2.14.2 ================================================ FILE: boot/grub2/0052-kern-parser-Fix-resource-leak-if-argc-0.patch ================================================ From d06161b035dde4769199ad65aa0a587a5920012b Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Fri, 22 Jan 2021 12:32:41 +0000 Subject: [PATCH] kern/parser: Fix resource leak if argc == 0 After processing the command-line yet arriving at the point where we are setting argv, we are allocating memory, even if argc == 0, which makes no sense since we never put anything into the allocated argv. The solution is to simply return that we've successfully processed the arguments but that argc == 0, and also ensure that argv is NULL when we're not allocating anything in it. There are only 2 callers of this function, and both are handling a zero value in argc assuming nothing is allocated in argv. Fixes: CID 96680 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/parser.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c index 619db31..d1cf061 100644 --- a/grub-core/kern/parser.c +++ b/grub-core/kern/parser.c @@ -146,6 +146,7 @@ grub_parser_split_cmdline (const char *cmdline, int i; *argc = 0; + *argv = NULL; do { if (!rd || !*rd) @@ -207,6 +208,10 @@ grub_parser_split_cmdline (const char *cmdline, (*argc)++; } + /* If there are no args, then we're done. */ + if (!*argc) + return 0; + /* Reserve memory for the return values. */ args = grub_malloc (bp - buffer); if (!args) -- 2.14.2 ================================================ FILE: boot/grub2/0053-kern-efi-Fix-memory-leak-on-failure.patch ================================================ From ed286ceba6015d37a9304f04602451c47bf195d7 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Thu, 5 Nov 2020 10:15:25 +0000 Subject: [PATCH] kern/efi: Fix memory leak on failure Free the memory allocated to name before returning on failure. Fixes: CID 296222 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/efi/efi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c index 9cfd88d..4fc14d6 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -388,6 +388,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) { grub_error (GRUB_ERR_OUT_OF_RANGE, "malformed EFI Device Path node has length=%d", len); + grub_free (name); return NULL; } -- 2.14.2 ================================================ FILE: boot/grub2/0054-kern-efi-mm-Fix-possible-NULL-pointer-dereference.patch ================================================ From 6aee4bfd6973c714056fb7b56890b8d524e94ee1 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Fri, 11 Dec 2020 15:03:13 +0000 Subject: [PATCH] kern/efi/mm: Fix possible NULL pointer dereference The model of grub_efi_get_memory_map() is that if memory_map is NULL, then the purpose is to discover how much memory should be allocated to it for the subsequent call. The problem here is that with grub_efi_is_finished set to 1, there is no check at all that the function is being called with a non-NULL memory_map. While this MAY be true, we shouldn't assume it. The solution to this is to behave as expected, and if memory_map is NULL, then don't try to use it and allow memory_map_size to be filled in, and return 0 as is done later in the code if the buffer is too small (or NULL). Additionally, drop unneeded ret = 1. Fixes: CID 96632 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/efi/mm.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c index b02fab1..5afcef7 100644 --- a/grub-core/kern/efi/mm.c +++ b/grub-core/kern/efi/mm.c @@ -328,15 +328,24 @@ grub_efi_get_memory_map (grub_efi_uintn_t *memory_map_size, if (grub_efi_is_finished) { int ret = 1; - if (*memory_map_size < finish_mmap_size) + + if (memory_map != NULL) { - grub_memcpy (memory_map, finish_mmap_buf, *memory_map_size); - ret = 0; + if (*memory_map_size < finish_mmap_size) + { + grub_memcpy (memory_map, finish_mmap_buf, *memory_map_size); + ret = 0; + } + else + grub_memcpy (memory_map, finish_mmap_buf, finish_mmap_size); } else { - grub_memcpy (memory_map, finish_mmap_buf, finish_mmap_size); - ret = 1; + /* + * Incomplete, no buffer to copy into, same as + * GRUB_EFI_BUFFER_TOO_SMALL below. + */ + ret = 0; } *memory_map_size = finish_mmap_size; if (map_key) -- 2.14.2 ================================================ FILE: boot/grub2/0055-gnulib-regexec-Resolve-unused-variable.patch ================================================ From a983d36bd9178d377d2072fd4b11c635fdc404b4 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Wed, 21 Oct 2020 14:41:27 +0000 Subject: [PATCH] gnulib/regexec: Resolve unused variable This is a really minor issue where a variable is being assigned to but not checked before it is overwritten again. The reason for this issue is that we are not building with DEBUG set and this in turn means that the assert() that reads the value of the variable match_last is being processed out. The solution, move the assignment to match_last in to an ifdef DEBUG too. Fixes: CID 292459 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper [Add changes to generated files] Signed-off-by: Stefan Sørensen --- Makefile.in | 1 + conf/Makefile.extra-dist | 1 + grub-core/lib/gnulib-patches/fix-unused-value.patch | 14 ++++++++++++++ grub-core/lib/gnulib/regexec.c | 4 ++++ 4 files changed, 20 insertions(+) create mode 100644 grub-core/lib/gnulib-patches/fix-unused-value.patch diff --git a/Makefile.in b/Makefile.in index ecb3278..e6b287b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2742,6 +2742,7 @@ EXTRA_DIST = autogen.sh geninit.sh gentpl.py Makefile.util.def \ grub-core/gensyminfo.sh.in grub-core/gensymlist.sh \ grub-core/genemuinit.sh grub-core/genemuinitheader.sh \ grub-core/lib/gnulib-patches/fix-null-deref.patch \ + grub-core/lib/gnulib-patches/fix-unused-value.patch \ grub-core/lib/gnulib-patches/fix-width.patch \ grub-core/lib/gnulib-patches/no-abort.patch \ grub-core/lib/libgcrypt \ diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist index 46c4e95..9b01152 100644 --- a/conf/Makefile.extra-dist +++ b/conf/Makefile.extra-dist @@ -29,6 +29,7 @@ EXTRA_DIST += grub-core/genemuinit.sh EXTRA_DIST += grub-core/genemuinitheader.sh EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-deref.patch +EXTRA_DIST += grub-core/lib/gnulib-patches/fix-unused-value.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-width.patch EXTRA_DIST += grub-core/lib/gnulib-patches/no-abort.patch diff --git a/grub-core/lib/gnulib-patches/fix-unused-value.patch b/grub-core/lib/gnulib-patches/fix-unused-value.patch new file mode 100644 index 0000000..ba51f1b --- /dev/null +++ b/grub-core/lib/gnulib-patches/fix-unused-value.patch @@ -0,0 +1,14 @@ +--- a/lib/regexec.c 2020-10-21 14:25:35.310195912 +0000 ++++ b/lib/regexec.c 2020-10-21 14:32:07.961765604 +0000 +@@ -828,7 +828,11 @@ + break; + if (__glibc_unlikely (err != REG_NOMATCH)) + goto free_return; ++#ifdef DEBUG ++ /* Only used for assertion below when DEBUG is set, otherwise ++ it will be over-written when we loop around. */ + match_last = -1; ++#endif + } + else + break; /* We found a match. */ diff --git a/grub-core/lib/gnulib/regexec.c b/grub-core/lib/gnulib/regexec.c index 21cf791..98a25f5 100644 --- a/grub-core/lib/gnulib/regexec.c +++ b/grub-core/lib/gnulib/regexec.c @@ -828,6 +828,10 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, break; if (__glibc_unlikely (err != REG_NOMATCH)) goto free_return; +#ifdef DEBUG + /* Only used for assertion below when DEBUG is set, otherwise + it will be over-written when we loop around. */ +#endif match_last = -1; } else -- 2.14.2 ================================================ FILE: boot/grub2/0056-gnulib-regcomp-Fix-uninitialized-token-structure.patch ================================================ From 75c3d3cec4f408848f575d6d5e30a95bd6313db0 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Thu, 22 Oct 2020 13:54:06 +0000 Subject: [PATCH] gnulib/regcomp: Fix uninitialized token structure The code is assuming that the value of br_token.constraint was initialized to zero when it wasn't. While some compilers will ensure that, not all do, so it is better to fix this explicitly than leave it to chance. Fixes: CID 73749 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper [Add changes to generated files] Signed-off-by: Stefan Sørensen --- Makefile.in | 1 + conf/Makefile.extra-dist | 1 + grub-core/lib/gnulib-patches/fix-uninit-structure.patch | 11 +++++++++++ grub-core/lib/gnulib/regcomp.c | 2 +- 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 grub-core/lib/gnulib-patches/fix-uninit-structure.patch diff --git a/Makefile.in b/Makefile.in index e6b287b..d58a7d7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2742,6 +2742,7 @@ EXTRA_DIST = autogen.sh geninit.sh gentpl.py Makefile.util.def \ grub-core/gensyminfo.sh.in grub-core/gensymlist.sh \ grub-core/genemuinit.sh grub-core/genemuinitheader.sh \ grub-core/lib/gnulib-patches/fix-null-deref.patch \ + grub-core/lib/gnulib-patches/fix-uninit-structure.patch \ grub-core/lib/gnulib-patches/fix-unused-value.patch \ grub-core/lib/gnulib-patches/fix-width.patch \ grub-core/lib/gnulib-patches/no-abort.patch \ diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist index 9b01152..9e55458 100644 --- a/conf/Makefile.extra-dist +++ b/conf/Makefile.extra-dist @@ -29,6 +29,7 @@ EXTRA_DIST += grub-core/genemuinit.sh EXTRA_DIST += grub-core/genemuinitheader.sh EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-deref.patch +EXTRA_DIST += grub-core/lib/gnulib-patches/fix-uninit-structure.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-unused-value.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-width.patch EXTRA_DIST += grub-core/lib/gnulib-patches/no-abort.patch diff --git a/grub-core/lib/gnulib-patches/fix-uninit-structure.patch b/grub-core/lib/gnulib-patches/fix-uninit-structure.patch new file mode 100644 index 0000000..7b4d9f6 --- /dev/null +++ b/grub-core/lib/gnulib-patches/fix-uninit-structure.patch @@ -0,0 +1,11 @@ +--- a/lib/regcomp.c 2020-10-22 13:49:06.770168928 +0000 ++++ b/lib/regcomp.c 2020-10-22 13:50:37.026528298 +0000 +@@ -3662,7 +3662,7 @@ + Idx alloc = 0; + #endif /* not RE_ENABLE_I18N */ + reg_errcode_t ret; +- re_token_t br_token; ++ re_token_t br_token = {0}; + bin_tree_t *tree; + + sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); diff --git a/grub-core/lib/gnulib/regcomp.c b/grub-core/lib/gnulib/regcomp.c index fe7dfcb..2545d3e 100644 --- a/grub-core/lib/gnulib/regcomp.c +++ b/grub-core/lib/gnulib/regcomp.c @@ -3662,7 +3662,7 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, Idx alloc = 0; #endif /* not RE_ENABLE_I18N */ reg_errcode_t ret; - re_token_t br_token; + re_token_t br_token = {0}; bin_tree_t *tree; sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); -- 2.14.2 ================================================ FILE: boot/grub2/0057-gnulib-argp-help-Fix-dereference-of-a-possibly-NULL-.patch ================================================ From 3a37bf120a9194c373257c70175cdb5b337bc107 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Wed, 28 Oct 2020 14:43:01 +0000 Subject: [PATCH] gnulib/argp-help: Fix dereference of a possibly NULL state All other instances of call to __argp_failure() where there is a dgettext() call is first checking whether state is NULL before attempting to dereference it to get the root_argp->argp_domain. Fixes: CID 292436 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper [Add changes to generated files] Signed-off-by: Stefan Sørensen --- Makefile.in | 1 + conf/Makefile.extra-dist | 1 + grub-core/lib/gnulib-patches/fix-null-state-deref.patch | 12 ++++++++++++ grub-core/lib/gnulib/argp-help.c | 3 ++- 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 grub-core/lib/gnulib-patches/fix-null-state-deref.patch diff --git a/Makefile.in b/Makefile.in index d58a7d7..812b7c2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2742,6 +2742,7 @@ EXTRA_DIST = autogen.sh geninit.sh gentpl.py Makefile.util.def \ grub-core/gensyminfo.sh.in grub-core/gensymlist.sh \ grub-core/genemuinit.sh grub-core/genemuinitheader.sh \ grub-core/lib/gnulib-patches/fix-null-deref.patch \ + grub-core/lib/gnulib-patches/fix-null-state-deref.patch \ grub-core/lib/gnulib-patches/fix-uninit-structure.patch \ grub-core/lib/gnulib-patches/fix-unused-value.patch \ grub-core/lib/gnulib-patches/fix-width.patch \ diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist index 9e55458..96d7e69 100644 --- a/conf/Makefile.extra-dist +++ b/conf/Makefile.extra-dist @@ -29,6 +29,7 @@ EXTRA_DIST += grub-core/genemuinit.sh EXTRA_DIST += grub-core/genemuinitheader.sh EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-deref.patch +EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-state-deref.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-uninit-structure.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-unused-value.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-width.patch diff --git a/grub-core/lib/gnulib-patches/fix-null-state-deref.patch b/grub-core/lib/gnulib-patches/fix-null-state-deref.patch new file mode 100644 index 0000000..813ec09 --- /dev/null +++ b/grub-core/lib/gnulib-patches/fix-null-state-deref.patch @@ -0,0 +1,12 @@ +--- a/lib/argp-help.c 2020-10-28 14:32:19.189215988 +0000 ++++ b/lib/argp-help.c 2020-10-28 14:38:21.204673940 +0000 +@@ -145,7 +145,8 @@ + if (*(int *)((char *)upptr + up->uparams_offs) >= upptr->rmargin) + { + __argp_failure (state, 0, 0, +- dgettext (state->root_argp->argp_domain, ++ dgettext (state == NULL ? NULL ++ : state->root_argp->argp_domain, + "\ + ARGP_HELP_FMT: %s value is less than or equal to %s"), + "rmargin", up->name); diff --git a/grub-core/lib/gnulib/argp-help.c b/grub-core/lib/gnulib/argp-help.c index 5d8f451..c75568c 100644 --- a/grub-core/lib/gnulib/argp-help.c +++ b/grub-core/lib/gnulib/argp-help.c @@ -145,7 +145,8 @@ validate_uparams (const struct argp_state *state, struct uparams *upptr) if (*(int *)((char *)upptr + up->uparams_offs) >= upptr->rmargin) { __argp_failure (state, 0, 0, - dgettext (state->root_argp->argp_domain, + dgettext (state == NULL ? NULL + : state->root_argp->argp_domain, "\ ARGP_HELP_FMT: %s value is less than or equal to %s"), "rmargin", up->name); -- 2.14.2 ================================================ FILE: boot/grub2/0058-gnulib-regexec-Fix-possible-null-dereference.patch ================================================ From 0b7f347638153e403ee2dd518af3ce26f4f99647 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Thu, 5 Nov 2020 10:57:14 +0000 Subject: [PATCH] gnulib/regexec: Fix possible null-dereference It appears to be possible that the mctx->state_log field may be NULL, and the name of this function, clean_state_log_if_needed(), suggests that it should be checking that it is valid to be cleaned before assuming that it does. Fixes: CID 86720 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper [Add changes to generated files] Signed-off-by: Stefan Sørensen --- Makefile.in | 1 + conf/Makefile.extra-dist | 1 + grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch | 12 ++++++++++++ grub-core/lib/gnulib/regexec.c | 3 +++ 4 files changed, 17 insertions(+) create mode 100644 grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch diff --git a/Makefile.in b/Makefile.in index 812b7c2..d9da6e9 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2743,6 +2743,7 @@ EXTRA_DIST = autogen.sh geninit.sh gentpl.py Makefile.util.def \ grub-core/genemuinit.sh grub-core/genemuinitheader.sh \ grub-core/lib/gnulib-patches/fix-null-deref.patch \ grub-core/lib/gnulib-patches/fix-null-state-deref.patch \ + grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch \ grub-core/lib/gnulib-patches/fix-uninit-structure.patch \ grub-core/lib/gnulib-patches/fix-unused-value.patch \ grub-core/lib/gnulib-patches/fix-width.patch \ diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist index 96d7e69..d27d3a9 100644 --- a/conf/Makefile.extra-dist +++ b/conf/Makefile.extra-dist @@ -30,6 +30,7 @@ EXTRA_DIST += grub-core/genemuinitheader.sh EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-deref.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-state-deref.patch +EXTRA_DIST += grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-uninit-structure.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-unused-value.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-width.patch diff --git a/grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch b/grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch new file mode 100644 index 0000000..db6dac9 --- /dev/null +++ b/grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch @@ -0,0 +1,12 @@ +--- a/lib/regexec.c 2020-10-21 14:25:35.310195912 +0000 ++++ b/lib/regexec.c 2020-11-05 10:55:09.621542984 +0000 +@@ -1692,6 +1692,9 @@ + { + Idx top = mctx->state_log_top; + ++ if (mctx->state_log == NULL) ++ return REG_NOERROR; ++ + if ((next_state_log_idx >= mctx->input.bufs_len + && mctx->input.bufs_len < mctx->input.len) + || (next_state_log_idx >= mctx->input.valid_len diff --git a/grub-core/lib/gnulib/regexec.c b/grub-core/lib/gnulib/regexec.c index 98a25f5..df97667 100644 --- a/grub-core/lib/gnulib/regexec.c +++ b/grub-core/lib/gnulib/regexec.c @@ -1696,6 +1696,9 @@ clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx) { Idx top = mctx->state_log_top; + if (mctx->state_log == NULL) + return REG_NOERROR; + if ((next_state_log_idx >= mctx->input.bufs_len && mctx->input.bufs_len < mctx->input.len) || (next_state_log_idx >= mctx->input.valid_len -- 2.14.2 ================================================ FILE: boot/grub2/0059-gnulib-regcomp-Fix-uninitialized-re_token.patch ================================================ From 03477085f9a33789ba6cca7cd49ab9326a1baa0e Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Tue, 24 Nov 2020 18:04:22 +0000 Subject: [PATCH] gnulib/regcomp: Fix uninitialized re_token This issue has been fixed in the latest version of gnulib, so to maintain consistency, I've backported that change rather than doing something different. Fixes: CID 73828 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper [Add changes to generated files] Signed-off-by: Stefan Sørensen --- Makefile.in | 1 + conf/Makefile.extra-dist | 1 + .../lib/gnulib-patches/fix-regcomp-uninit-token.patch | 15 +++++++++++++++ grub-core/lib/gnulib/regcomp.c | 6 +----- 4 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch diff --git a/Makefile.in b/Makefile.in index d9da6e9..9442504 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2743,6 +2743,7 @@ EXTRA_DIST = autogen.sh geninit.sh gentpl.py Makefile.util.def \ grub-core/genemuinit.sh grub-core/genemuinitheader.sh \ grub-core/lib/gnulib-patches/fix-null-deref.patch \ grub-core/lib/gnulib-patches/fix-null-state-deref.patch \ + grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch \ grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch \ grub-core/lib/gnulib-patches/fix-uninit-structure.patch \ grub-core/lib/gnulib-patches/fix-unused-value.patch \ diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist index d27d3a9..ffe6829 100644 --- a/conf/Makefile.extra-dist +++ b/conf/Makefile.extra-dist @@ -30,6 +30,7 @@ EXTRA_DIST += grub-core/genemuinitheader.sh EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-deref.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-state-deref.patch +EXTRA_DIST += grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-uninit-structure.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-unused-value.patch diff --git a/grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch b/grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch new file mode 100644 index 0000000..02e0631 --- /dev/null +++ b/grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch @@ -0,0 +1,15 @@ +--- a/lib/regcomp.c 2020-11-24 17:06:08.159223858 +0000 ++++ b/lib/regcomp.c 2020-11-24 17:06:15.630253923 +0000 +@@ -3808,11 +3808,7 @@ + create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, + re_token_type_t type) + { +- re_token_t t; +-#if defined GCC_LINT || defined lint +- memset (&t, 0, sizeof t); +-#endif +- t.type = type; ++ re_token_t t = { .type = type }; + return create_token_tree (dfa, left, right, &t); + } + diff --git a/grub-core/lib/gnulib/regcomp.c b/grub-core/lib/gnulib/regcomp.c index 2545d3e..64a4fa7 100644 --- a/grub-core/lib/gnulib/regcomp.c +++ b/grub-core/lib/gnulib/regcomp.c @@ -3808,11 +3808,7 @@ static bin_tree_t * create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, re_token_type_t type) { - re_token_t t; -#if defined GCC_LINT || defined lint - memset (&t, 0, sizeof t); -#endif - t.type = type; + re_token_t t = { .type = type }; return create_token_tree (dfa, left, right, &t); } -- 2.14.2 ================================================ FILE: boot/grub2/0060-io-lzopio-Resolve-unnecessary-self-assignment-errors.patch ================================================ From 59666e520f44177c97b82a44c169b3b315d63b42 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Wed, 21 Oct 2020 14:44:10 +0000 Subject: [PATCH] io/lzopio: Resolve unnecessary self-assignment errors These 2 assignments are unnecessary since they are just assigning to themselves. Fixes: CID 73643 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/io/lzopio.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/grub-core/io/lzopio.c b/grub-core/io/lzopio.c index 3014485..a7d4425 100644 --- a/grub-core/io/lzopio.c +++ b/grub-core/io/lzopio.c @@ -125,8 +125,6 @@ read_block_header (struct grub_lzopio *lzopio) sizeof (lzopio->block.ucheck)) != sizeof (lzopio->block.ucheck)) return -1; - - lzopio->block.ucheck = lzopio->block.ucheck; } /* Read checksum of compressed data. */ @@ -143,8 +141,6 @@ read_block_header (struct grub_lzopio *lzopio) sizeof (lzopio->block.ccheck)) != sizeof (lzopio->block.ccheck)) return -1; - - lzopio->block.ccheck = lzopio->block.ccheck; } } -- 2.14.2 ================================================ FILE: boot/grub2/0061-zstd-Initialize-seq_t-structure-fully.patch ================================================ From 2777cf4466719921dbe4b30af358a75e7d76f217 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Thu, 5 Nov 2020 10:29:59 +0000 Subject: [PATCH] zstd: Initialize seq_t structure fully While many compilers will initialize this to zero, not all will, so it is better to be sure that fields not being explicitly set are at known values, and there is code that checks this fields value elsewhere in the code. Fixes: CID 292440 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/lib/zstd/zstd_decompress.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/lib/zstd/zstd_decompress.c b/grub-core/lib/zstd/zstd_decompress.c index 711b5b6..e4b5670 100644 --- a/grub-core/lib/zstd/zstd_decompress.c +++ b/grub-core/lib/zstd/zstd_decompress.c @@ -1325,7 +1325,7 @@ typedef enum { ZSTD_lo_isRegularOffset, ZSTD_lo_isLongOffset=1 } ZSTD_longOffset FORCE_INLINE_TEMPLATE seq_t ZSTD_decodeSequence(seqState_t* seqState, const ZSTD_longOffset_e longOffsets) { - seq_t seq; + seq_t seq = {0}; U32 const llBits = seqState->stateLL.table[seqState->stateLL.state].nbAdditionalBits; U32 const mlBits = seqState->stateML.table[seqState->stateML.state].nbAdditionalBits; U32 const ofBits = seqState->stateOffb.table[seqState->stateOffb.state].nbAdditionalBits; -- 2.14.2 ================================================ FILE: boot/grub2/0062-kern-partition-Check-for-NULL-before-dereferencing-i.patch ================================================ From bc9c468a2ce84bc767234eec888b71f1bc744fff Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Fri, 23 Oct 2020 09:49:59 +0000 Subject: [PATCH] kern/partition: Check for NULL before dereferencing input string There is the possibility that the value of str comes from an external source and continuing to use it before ever checking its validity is wrong. So, needs fixing. Additionally, drop unneeded part initialization. Fixes: CID 292444 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/partition.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/grub-core/kern/partition.c b/grub-core/kern/partition.c index e499147..b10a184 100644 --- a/grub-core/kern/partition.c +++ b/grub-core/kern/partition.c @@ -109,11 +109,14 @@ grub_partition_map_probe (const grub_partition_map_t partmap, grub_partition_t grub_partition_probe (struct grub_disk *disk, const char *str) { - grub_partition_t part = 0; + grub_partition_t part; grub_partition_t curpart = 0; grub_partition_t tail; const char *ptr; + if (str == NULL) + return 0; + part = tail = disk->partition; for (ptr = str; *ptr;) -- 2.14.2 ================================================ FILE: boot/grub2/0063-disk-ldm-Make-sure-comp-data-is-freed-before-exiting.patch ================================================ From 23e39f50ca7a107f6b66396ed4d177a914dee035 Mon Sep 17 00:00:00 2001 From: Marco A Benatto Date: Mon, 7 Dec 2020 11:53:03 -0300 Subject: [PATCH] disk/ldm: Make sure comp data is freed before exiting from make_vg() Several error handling paths in make_vg() do not free comp data before jumping to fail2 label and returning from the function. This will leak memory. So, let's fix all issues of that kind. Fixes: CID 73804 Signed-off-by: Marco A Benatto Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/disk/ldm.c | 51 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c index 58f8a53..428415f 100644 --- a/grub-core/disk/ldm.c +++ b/grub-core/disk/ldm.c @@ -554,7 +554,11 @@ make_vg (grub_disk_t disk, comp->segments = grub_calloc (comp->segment_alloc, sizeof (*comp->segments)); if (!comp->segments) - goto fail2; + { + grub_free (comp->internal_id); + grub_free (comp); + goto fail2; + } } else { @@ -562,7 +566,11 @@ make_vg (grub_disk_t disk, comp->segment_count = 1; comp->segments = grub_malloc (sizeof (*comp->segments)); if (!comp->segments) - goto fail2; + { + grub_free (comp->internal_id); + grub_free (comp); + goto fail2; + } comp->segments->start_extent = 0; comp->segments->extent_count = lv->size; comp->segments->layout = 0; @@ -574,15 +582,26 @@ make_vg (grub_disk_t disk, comp->segments->layout = GRUB_RAID_LAYOUT_SYMMETRIC_MASK; } else - goto fail2; + { + grub_free (comp->segments); + grub_free (comp->internal_id); + grub_free (comp); + goto fail2; + } ptr += *ptr + 1; ptr++; if (!(vblk[i].flags & 0x10)) - goto fail2; + { + grub_free (comp->segments); + grub_free (comp->internal_id); + grub_free (comp); + goto fail2; + } if (ptr >= vblk[i].dynamic + sizeof (vblk[i].dynamic) || ptr + *ptr + 1 >= vblk[i].dynamic + sizeof (vblk[i].dynamic)) { + grub_free (comp->segments); grub_free (comp->internal_id); grub_free (comp); goto fail2; @@ -592,6 +611,7 @@ make_vg (grub_disk_t disk, if (ptr + *ptr + 1 >= vblk[i].dynamic + sizeof (vblk[i].dynamic)) { + grub_free (comp->segments); grub_free (comp->internal_id); grub_free (comp); goto fail2; @@ -601,7 +621,12 @@ make_vg (grub_disk_t disk, comp->segments->nodes = grub_calloc (comp->segments->node_alloc, sizeof (*comp->segments->nodes)); if (!lv->segments->nodes) - goto fail2; + { + grub_free (comp->segments); + grub_free (comp->internal_id); + grub_free (comp); + goto fail2; + } } if (lv->segments->node_alloc == lv->segments->node_count) @@ -611,11 +636,23 @@ make_vg (grub_disk_t disk, if (grub_mul (lv->segments->node_alloc, 2, &lv->segments->node_alloc) || grub_mul (lv->segments->node_alloc, sizeof (*lv->segments->nodes), &sz)) - goto fail2; + { + grub_free (comp->segments->nodes); + grub_free (comp->segments); + grub_free (comp->internal_id); + grub_free (comp); + goto fail2; + } t = grub_realloc (lv->segments->nodes, sz); if (!t) - goto fail2; + { + grub_free (comp->segments->nodes); + grub_free (comp->segments); + grub_free (comp->internal_id); + grub_free (comp); + goto fail2; + } lv->segments->nodes = t; } lv->segments->nodes[lv->segments->node_count].pv = 0; -- 2.14.2 ================================================ FILE: boot/grub2/0064-disk-ldm-If-failed-then-free-vg-variable-too.patch ================================================ From e0b83df5da538d2a38f770e60817b3a4b9d5b4d7 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 7 Dec 2020 10:07:47 -0300 Subject: [PATCH] disk/ldm: If failed then free vg variable too Fixes: CID 73809 Signed-off-by: Paulo Flabiano Smorigo Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/disk/ldm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c index 428415f..54713f4 100644 --- a/grub-core/disk/ldm.c +++ b/grub-core/disk/ldm.c @@ -199,6 +199,7 @@ make_vg (grub_disk_t disk, { grub_free (vg->uuid); grub_free (vg->name); + grub_free (vg); return NULL; } grub_memcpy (vg->uuid, label->group_guid, LDM_GUID_STRLEN); -- 2.14.2 ================================================ FILE: boot/grub2/0065-disk-ldm-Fix-memory-leak-on-uninserted-lv-references.patch ================================================ From 156c281a1625dc73fd350530630c6f2d5673d4f6 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Tue, 8 Dec 2020 10:00:51 +0000 Subject: [PATCH] disk/ldm: Fix memory leak on uninserted lv references The problem here is that the memory allocated to the variable lv is not yet inserted into the list that is being processed at the label fail2. As we can already see at line 342, which correctly frees lv before going to fail2, we should also be doing that at these earlier jumps to fail2. Fixes: CID 73824 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/disk/ldm.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c index 54713f4..e82e989 100644 --- a/grub-core/disk/ldm.c +++ b/grub-core/disk/ldm.c @@ -321,7 +321,10 @@ make_vg (grub_disk_t disk, lv->visible = 1; lv->segments = grub_zalloc (sizeof (*lv->segments)); if (!lv->segments) - goto fail2; + { + grub_free (lv); + goto fail2; + } lv->segments->start_extent = 0; lv->segments->type = GRUB_DISKFILTER_MIRROR; lv->segments->node_count = 0; @@ -329,7 +332,10 @@ make_vg (grub_disk_t disk, lv->segments->nodes = grub_calloc (lv->segments->node_alloc, sizeof (*lv->segments->nodes)); if (!lv->segments->nodes) - goto fail2; + { + grub_free (lv); + goto fail2; + } ptr = vblk[i].dynamic; if (ptr + *ptr + 1 >= vblk[i].dynamic + sizeof (vblk[i].dynamic)) -- 2.14.2 ================================================ FILE: boot/grub2/0066-disk-cryptodisk-Fix-potential-integer-overflow.patch ================================================ From a201ad17caa430aa710654fdf2e6ab4c8166f031 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Thu, 21 Jan 2021 11:38:31 +0000 Subject: [PATCH] disk/cryptodisk: Fix potential integer overflow The encrypt and decrypt functions expect a grub_size_t. So, we need to ensure that the constant bit shift is using grub_size_t rather than unsigned int when it is performing the shift. Fixes: CID 307788 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/disk/cryptodisk.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c index 5037768..6883f48 100644 --- a/grub-core/disk/cryptodisk.c +++ b/grub-core/disk/cryptodisk.c @@ -311,10 +311,10 @@ grub_cryptodisk_endecrypt (struct grub_cryptodisk *dev, case GRUB_CRYPTODISK_MODE_CBC: if (do_encrypt) err = grub_crypto_cbc_encrypt (dev->cipher, data + i, data + i, - (1U << dev->log_sector_size), iv); + ((grub_size_t) 1 << dev->log_sector_size), iv); else err = grub_crypto_cbc_decrypt (dev->cipher, data + i, data + i, - (1U << dev->log_sector_size), iv); + ((grub_size_t) 1 << dev->log_sector_size), iv); if (err) return err; break; @@ -322,10 +322,10 @@ grub_cryptodisk_endecrypt (struct grub_cryptodisk *dev, case GRUB_CRYPTODISK_MODE_PCBC: if (do_encrypt) err = grub_crypto_pcbc_encrypt (dev->cipher, data + i, data + i, - (1U << dev->log_sector_size), iv); + ((grub_size_t) 1 << dev->log_sector_size), iv); else err = grub_crypto_pcbc_decrypt (dev->cipher, data + i, data + i, - (1U << dev->log_sector_size), iv); + ((grub_size_t) 1 << dev->log_sector_size), iv); if (err) return err; break; -- 2.14.2 ================================================ FILE: boot/grub2/0067-hfsplus-Check-that-the-volume-name-length-is-valid.patch ================================================ From 2298f6e0d951251bb9ca97d891d1bc8b74515f8c Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Fri, 23 Oct 2020 17:09:31 +0000 Subject: [PATCH] hfsplus: Check that the volume name length is valid HFS+ documentation suggests that the maximum filename and volume name is 255 Unicode characters in length. So, when converting from big-endian to little-endian, we should ensure that the name of the volume has a length that is between 0 and 255, inclusive. Fixes: CID 73641 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/hfsplus.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c index 9c4e4c8..8fe7c12 100644 --- a/grub-core/fs/hfsplus.c +++ b/grub-core/fs/hfsplus.c @@ -1012,6 +1012,15 @@ grub_hfsplus_label (grub_device_t device, char **label) grub_hfsplus_btree_recptr (&data->catalog_tree, node, ptr); label_len = grub_be_to_cpu16 (catkey->namelen); + + /* Ensure that the length is >= 0. */ + if (label_len < 0) + label_len = 0; + + /* Ensure label length is at most 255 Unicode characters. */ + if (label_len > 255) + label_len = 255; + label_name = grub_calloc (label_len, sizeof (*label_name)); if (!label_name) { -- 2.14.2 ================================================ FILE: boot/grub2/0068-zfs-Fix-possible-negative-shift-operation.patch ================================================ From a02091834d3e167320d8a262ff04b8e83c5e616d Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Tue, 24 Nov 2020 16:41:49 +0000 Subject: [PATCH] zfs: Fix possible negative shift operation While it is possible for the return value from zfs_log2() to be zero (0), it is quite unlikely, given that the previous assignment to blksz is shifted up by SPA_MINBLOCKSHIFT (9) before 9 is subtracted at the assignment to epbs. But, while unlikely during a normal operation, it may be that a carefully crafted ZFS filesystem could result in a zero (0) value to the dn_datalbkszsec field, which means that the shift left does nothing and assigns zero (0) to blksz, resulting in a negative epbs value. Fixes: CID 73608 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/zfs/zfs.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c index 36d0373..0c42cba 100644 --- a/grub-core/fs/zfs/zfs.c +++ b/grub-core/fs/zfs/zfs.c @@ -2667,6 +2667,11 @@ dnode_get (dnode_end_t * mdn, grub_uint64_t objnum, grub_uint8_t type, blksz = grub_zfs_to_cpu16 (mdn->dn.dn_datablkszsec, mdn->endian) << SPA_MINBLOCKSHIFT; epbs = zfs_log2 (blksz) - DNODE_SHIFT; + + /* While this should never happen, we should check that epbs is not negative. */ + if (epbs < 0) + epbs = 0; + blkid = objnum >> epbs; idx = objnum & ((1 << epbs) - 1); -- 2.14.2 ================================================ FILE: boot/grub2/0069-zfs-Fix-resource-leaks-while-constructing-path.patch ================================================ From 89bdab965805e8d54d7f75349024e1a11cbe2eb8 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 14 Dec 2020 18:54:49 -0300 Subject: [PATCH] zfs: Fix resource leaks while constructing path There are several exit points in dnode_get_path() that are causing possible memory leaks. In the while(1) the correct exit mechanism should not be to do a direct return, but to instead break out of the loop, setting err first if it is not already set. The reason behind this is that the dnode_path is a linked list, and while doing through this loop, it is being allocated and built up - the only way to correctly unravel it is to traverse it, which is what is being done at the end of the function outside of the loop. Several of the existing exit points correctly did a break, but not all so this change makes that more consistent and should resolve the leaking of memory as found by Coverity. Fixes: CID 73741 Signed-off-by: Paulo Flabiano Smorigo Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/zfs/zfs.c | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c index 0c42cba..9087a72 100644 --- a/grub-core/fs/zfs/zfs.c +++ b/grub-core/fs/zfs/zfs.c @@ -2836,8 +2836,8 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, if (dnode_path->dn.dn.dn_type != DMU_OT_DIRECTORY_CONTENTS) { - grub_free (path_buf); - return grub_error (GRUB_ERR_BAD_FILE_TYPE, N_("not a directory")); + err = grub_error (GRUB_ERR_BAD_FILE_TYPE, N_("not a directory")); + break; } err = zap_lookup (&(dnode_path->dn), cname, &objnum, data, subvol->case_insensitive); @@ -2879,11 +2879,18 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, << SPA_MINBLOCKSHIFT); if (blksz == 0) - return grub_error(GRUB_ERR_BAD_FS, "0-sized block"); + { + err = grub_error (GRUB_ERR_BAD_FS, "0-sized block"); + break; + } sym_value = grub_malloc (sym_sz); if (!sym_value) - return grub_errno; + { + err = grub_errno; + break; + } + for (block = 0; block < (sym_sz + blksz - 1) / blksz; block++) { void *t; @@ -2893,7 +2900,7 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, if (err) { grub_free (sym_value); - return err; + break; } movesize = sym_sz - block * blksz; @@ -2903,6 +2910,8 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, grub_memcpy (sym_value + block * blksz, t, movesize); grub_free (t); } + if (err) + break; free_symval = 1; } path = path_buf = grub_malloc (sym_sz + grub_strlen (oldpath) + 1); @@ -2911,7 +2920,8 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, grub_free (oldpathbuf); if (free_symval) grub_free (sym_value); - return grub_errno; + err = grub_errno; + break; } grub_memcpy (path, sym_value, sym_sz); if (free_symval) @@ -2949,11 +2959,12 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, err = zio_read (bp, dnode_path->dn.endian, &sahdrp, NULL, data); if (err) - return err; + break; } else { - return grub_error (GRUB_ERR_BAD_FS, "filesystem is corrupt"); + err = grub_error (GRUB_ERR_BAD_FS, "filesystem is corrupt"); + break; } hdrsize = SA_HDR_SIZE (((sa_hdr_phys_t *) sahdrp)); @@ -2974,7 +2985,8 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, if (!path_buf) { grub_free (oldpathbuf); - return grub_errno; + err = grub_errno; + break; } grub_memcpy (path, sym_value, sym_sz); path [sym_sz] = 0; -- 2.14.2 ================================================ FILE: boot/grub2/0070-zfs-Fix-possible-integer-overflows.patch ================================================ From 302c12ff5714bc455949117c1c9548ccb324d55b Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Tue, 8 Dec 2020 22:17:04 +0000 Subject: [PATCH] zfs: Fix possible integer overflows In all cases the problem is that the value being acted upon by a left-shift is a 32-bit number which is then being used in the context of a 64-bit number. To avoid overflow we ensure that the number being shifted is 64-bit before the shift is done. Fixes: CID 73684, CID 73695, CID 73764 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/zfs/zfs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c index 9087a72..b078ccc 100644 --- a/grub-core/fs/zfs/zfs.c +++ b/grub-core/fs/zfs/zfs.c @@ -564,7 +564,7 @@ find_bestub (uberblock_phys_t * ub_array, ubptr = (uberblock_phys_t *) ((grub_properly_aligned_t *) ub_array + ((i << ub_shift) / sizeof (grub_properly_aligned_t))); - err = uberblock_verify (ubptr, offset, 1 << ub_shift); + err = uberblock_verify (ubptr, offset, (grub_size_t) 1 << ub_shift); if (err) { grub_errno = GRUB_ERR_NONE; @@ -1543,7 +1543,7 @@ read_device (grub_uint64_t offset, struct grub_zfs_device_desc *desc, high = grub_divmod64 ((offset >> desc->ashift) + c, desc->n_children, &devn); - csize = bsize << desc->ashift; + csize = (grub_size_t) bsize << desc->ashift; if (csize > len) csize = len; @@ -1635,8 +1635,8 @@ read_device (grub_uint64_t offset, struct grub_zfs_device_desc *desc, while (len > 0) { - grub_size_t csize; - csize = ((s / (desc->n_children - desc->nparity)) + grub_size_t csize = s; + csize = ((csize / (desc->n_children - desc->nparity)) << desc->ashift); if (csize > len) csize = len; -- 2.14.2 ================================================ FILE: boot/grub2/0071-zfsinfo-Correct-a-check-for-error-allocating-memory.patch ================================================ From 7aab03418ec6a9b991aa44416cb2585aff4e7972 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Thu, 26 Nov 2020 10:56:45 +0000 Subject: [PATCH] zfsinfo: Correct a check for error allocating memory While arguably the check for grub_errno is correct, we should really be checking the return value from the function since it is always possible that grub_errno was set elsewhere, making this code behave incorrectly. Fixes: CID 73668 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/zfs/zfsinfo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/fs/zfs/zfsinfo.c b/grub-core/fs/zfs/zfsinfo.c index c8a28ac..bf29180 100644 --- a/grub-core/fs/zfs/zfsinfo.c +++ b/grub-core/fs/zfs/zfsinfo.c @@ -358,8 +358,8 @@ grub_cmd_zfs_bootfs (grub_command_t cmd __attribute__ ((unused)), int argc, return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("one argument expected")); devname = grub_file_get_device_name (args[0]); - if (grub_errno) - return grub_errno; + if (devname == NULL) + return GRUB_ERR_OUT_OF_MEMORY; dev = grub_device_open (devname); grub_free (devname); -- 2.14.2 ================================================ FILE: boot/grub2/0072-affs-Fix-memory-leaks.patch ================================================ From 178ac5107389f8e5b32489d743d6824a5ebf342a Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Thu, 26 Nov 2020 12:48:07 +0000 Subject: [PATCH] affs: Fix memory leaks The node structure reference is being allocated but not freed if it reaches the end of the function. If any of the hooks had returned a non-zero value, then node would have been copied in to the context reference, but otherwise node is not stored and should be freed. Similarly, the call to grub_affs_create_node() replaces the allocated memory in node with a newly allocated structure, leaking the existing memory pointed by node. Finally, when dir->parent is set, then we again replace node with newly allocated memory, which seems unnecessary when we copy in the values from dir->parent immediately after. Fixes: CID 73759 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/affs.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/grub-core/fs/affs.c b/grub-core/fs/affs.c index 220b371..230e26a 100644 --- a/grub-core/fs/affs.c +++ b/grub-core/fs/affs.c @@ -400,12 +400,12 @@ grub_affs_iterate_dir (grub_fshelp_node_t dir, { unsigned int i; struct grub_affs_file file; - struct grub_fshelp_node *node = 0; + struct grub_fshelp_node *node, *orig_node; struct grub_affs_data *data = dir->data; grub_uint32_t *hashtable; /* Create the directory entries for `.' and `..'. */ - node = grub_zalloc (sizeof (*node)); + node = orig_node = grub_zalloc (sizeof (*node)); if (!node) return 1; @@ -414,9 +414,6 @@ grub_affs_iterate_dir (grub_fshelp_node_t dir, return 1; if (dir->parent) { - node = grub_zalloc (sizeof (*node)); - if (!node) - return 1; *node = *dir->parent; if (hook ("..", GRUB_FSHELP_DIR, node, hook_data)) return 1; @@ -456,17 +453,18 @@ grub_affs_iterate_dir (grub_fshelp_node_t dir, if (grub_affs_create_node (dir, hook, hook_data, &node, &hashtable, next, &file)) - return 1; + { + /* Node has been replaced in function. */ + grub_free (orig_node); + return 1; + } next = grub_be_to_cpu32 (file.next); } } - grub_free (hashtable); - return 0; - fail: - grub_free (node); + grub_free (orig_node); grub_free (hashtable); return 0; } -- 2.14.2 ================================================ FILE: boot/grub2/0073-libgcrypt-mpi-Fix-possible-unintended-sign-extension.patch ================================================ From e8814c811132a70f9b55418f7567378a34ad3883 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Tue, 3 Nov 2020 16:43:37 +0000 Subject: [PATCH] libgcrypt/mpi: Fix possible unintended sign extension The array of unsigned char gets promoted to a signed 32-bit int before it is finally promoted to a size_t. There is the possibility that this may result in the signed-bit being set for the intermediate signed 32-bit int. We should ensure that the promotion is to the correct type before we bitwise-OR the values. Fixes: CID 96697 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/lib/libgcrypt-grub/mpi/mpicoder.c | 2 +- grub-core/lib/libgcrypt/mpi/mpicoder.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/lib/libgcrypt-grub/mpi/mpicoder.c b/grub-core/lib/libgcrypt-grub/mpi/mpicoder.c index 3d55dfc..faf1cd6 100644 --- a/grub-core/lib/libgcrypt-grub/mpi/mpicoder.c +++ b/grub-core/lib/libgcrypt-grub/mpi/mpicoder.c @@ -460,7 +460,7 @@ gcry_mpi_scan (struct gcry_mpi **ret_mpi, enum gcry_mpi_format format, if (len && len < 4) return gcry_error (GPG_ERR_TOO_SHORT); - n = (s[0] << 24 | s[1] << 16 | s[2] << 8 | s[3]); + n = ((size_t)s[0] << 24 | (size_t)s[1] << 16 | (size_t)s[2] << 8 | (size_t)s[3]); s += 4; if (len) len -= 4; diff --git a/grub-core/lib/libgcrypt/mpi/mpicoder.c b/grub-core/lib/libgcrypt/mpi/mpicoder.c index a3435ed..7ecad27 100644 --- a/grub-core/lib/libgcrypt/mpi/mpicoder.c +++ b/grub-core/lib/libgcrypt/mpi/mpicoder.c @@ -458,7 +458,7 @@ gcry_mpi_scan (struct gcry_mpi **ret_mpi, enum gcry_mpi_format format, if (len && len < 4) return gcry_error (GPG_ERR_TOO_SHORT); - n = (s[0] << 24 | s[1] << 16 | s[2] << 8 | s[3]); + n = ((size_t)s[0] << 24 | (size_t)s[1] << 16 | (size_t)s[2] << 8 | (size_t)s[3]); s += 4; if (len) len -= 4; -- 2.14.2 ================================================ FILE: boot/grub2/0074-libgcrypt-mpi-Fix-possible-NULL-dereference.patch ================================================ From ae0f3fabeba7b393113d5dc185b6aff9b728136d Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Thu, 26 Nov 2020 10:41:54 +0000 Subject: [PATCH] libgcrypt/mpi: Fix possible NULL dereference The code in gcry_mpi_scan() assumes that buffer is not NULL, but there is no explicit check for that, so we add one. Fixes: CID 73757 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/lib/libgcrypt-grub/mpi/mpicoder.c | 3 +++ grub-core/lib/libgcrypt/mpi/mpicoder.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/grub-core/lib/libgcrypt-grub/mpi/mpicoder.c b/grub-core/lib/libgcrypt-grub/mpi/mpicoder.c index faf1cd6..e734dcf 100644 --- a/grub-core/lib/libgcrypt-grub/mpi/mpicoder.c +++ b/grub-core/lib/libgcrypt-grub/mpi/mpicoder.c @@ -381,6 +381,9 @@ gcry_mpi_scan (struct gcry_mpi **ret_mpi, enum gcry_mpi_format format, unsigned int len; int secure = (buffer && gcry_is_secure (buffer)); + if (!buffer) + return gcry_error (GPG_ERR_INV_ARG); + if (format == GCRYMPI_FMT_SSH) len = 0; else diff --git a/grub-core/lib/libgcrypt/mpi/mpicoder.c b/grub-core/lib/libgcrypt/mpi/mpicoder.c index 7ecad27..6fe3891 100644 --- a/grub-core/lib/libgcrypt/mpi/mpicoder.c +++ b/grub-core/lib/libgcrypt/mpi/mpicoder.c @@ -379,6 +379,9 @@ gcry_mpi_scan (struct gcry_mpi **ret_mpi, enum gcry_mpi_format format, unsigned int len; int secure = (buffer && gcry_is_secure (buffer)); + if (!buffer) + return gcry_error (GPG_ERR_INV_ARG); + if (format == GCRYMPI_FMT_SSH) len = 0; else -- 2.14.2 ================================================ FILE: boot/grub2/0075-syslinux-Fix-memory-leak-while-parsing.patch ================================================ From 95bc016dba94cab3d398dd74160665915cd08ad6 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Thu, 26 Nov 2020 15:31:53 +0000 Subject: [PATCH] syslinux: Fix memory leak while parsing In syslinux_parse_real() the 2 points where return is being called didn't release the memory stored in buf which is no longer required. Fixes: CID 176634 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/lib/syslinux_parse.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/grub-core/lib/syslinux_parse.c b/grub-core/lib/syslinux_parse.c index 4afa992..3acc6b4 100644 --- a/grub-core/lib/syslinux_parse.c +++ b/grub-core/lib/syslinux_parse.c @@ -737,7 +737,10 @@ syslinux_parse_real (struct syslinux_menu *menu) && grub_strncasecmp ("help", ptr3, ptr4 - ptr3) == 0)) { if (helptext (ptr5, file, menu)) - return 1; + { + grub_free (buf); + return 1; + } continue; } @@ -757,6 +760,7 @@ syslinux_parse_real (struct syslinux_menu *menu) } fail: grub_file_close (file); + grub_free (buf); return err; } -- 2.14.2 ================================================ FILE: boot/grub2/0076-normal-completion-Fix-leaking-of-memory-when-process.patch ================================================ From 9213575b7a95b514bce80be5964a28d407d7d56d Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Fri, 4 Dec 2020 18:56:48 +0000 Subject: [PATCH] normal/completion: Fix leaking of memory when processing a completion It is possible for the code to reach the end of the function without freeing the memory allocated to argv and argc still to be 0. We should always call grub_free(argv). The grub_free() will handle a NULL argument correctly if it reaches that code without the memory being allocated. Fixes: CID 96672 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/normal/completion.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/grub-core/normal/completion.c b/grub-core/normal/completion.c index 5961028..46e473c 100644 --- a/grub-core/normal/completion.c +++ b/grub-core/normal/completion.c @@ -400,8 +400,8 @@ char * grub_normal_do_completion (char *buf, int *restore, void (*hook) (const char *, grub_completion_type_t, int)) { - int argc; - char **argv; + int argc = 0; + char **argv = NULL; /* Initialize variables. */ match = 0; @@ -516,10 +516,8 @@ grub_normal_do_completion (char *buf, int *restore, fail: if (argc != 0) - { - grub_free (argv[0]); - grub_free (argv); - } + grub_free (argv[0]); + grub_free (argv); grub_free (match); grub_errno = GRUB_ERR_NONE; -- 2.14.2 ================================================ FILE: boot/grub2/0077-commands-hashsum-Fix-a-memory-leak.patch ================================================ From 8b6f528e52e18b7a69f90b8dc3671d7b1147d9f3 Mon Sep 17 00:00:00 2001 From: Chris Coulson Date: Tue, 1 Dec 2020 23:41:24 +0000 Subject: [PATCH] commands/hashsum: Fix a memory leak check_list() uses grub_file_getline(), which allocates a buffer. If the hash list file contains invalid lines, the function leaks this buffer when it returns an error. Fixes: CID 176635 Signed-off-by: Chris Coulson Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/commands/hashsum.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/grub-core/commands/hashsum.c b/grub-core/commands/hashsum.c index 456ba90..b8a22b0 100644 --- a/grub-core/commands/hashsum.c +++ b/grub-core/commands/hashsum.c @@ -128,11 +128,17 @@ check_list (const gcry_md_spec_t *hash, const char *hashfilename, high = hextoval (*p++); low = hextoval (*p++); if (high < 0 || low < 0) - return grub_error (GRUB_ERR_BAD_FILE_TYPE, "invalid hash list"); + { + grub_free (buf); + return grub_error (GRUB_ERR_BAD_FILE_TYPE, "invalid hash list"); + } expected[i] = (high << 4) | low; } if ((p[0] != ' ' && p[0] != '\t') || (p[1] != ' ' && p[1] != '\t')) - return grub_error (GRUB_ERR_BAD_FILE_TYPE, "invalid hash list"); + { + grub_free (buf); + return grub_error (GRUB_ERR_BAD_FILE_TYPE, "invalid hash list"); + } p += 2; if (prefix) { @@ -140,7 +146,10 @@ check_list (const gcry_md_spec_t *hash, const char *hashfilename, filename = grub_xasprintf ("%s/%s", prefix, p); if (!filename) - return grub_errno; + { + grub_free (buf); + return grub_errno; + } file = grub_file_open (filename, GRUB_FILE_TYPE_TO_HASH | (!uncompress ? GRUB_FILE_TYPE_NO_DECOMPRESS : GRUB_FILE_TYPE_NONE)); -- 2.14.2 ================================================ FILE: boot/grub2/0079-video-efi_gop-Remove-unnecessary-return-value-of-gru.patch ================================================ From fc5951d3b1616055ef81a019a5affc09d13344d0 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Tue, 8 Dec 2020 21:14:31 +0000 Subject: [PATCH] video/efi_gop: Remove unnecessary return value of grub_video_gop_fill_mode_info() The return value of grub_video_gop_fill_mode_info() is never able to be anything other than GRUB_ERR_NONE. So, rather than continue to return a value and checking it each time, it is more correct to redefine the function to not return anything and remove checks of its return value altogether. Fixes: CID 96701 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/video/efi_gop.c | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/grub-core/video/efi_gop.c b/grub-core/video/efi_gop.c index 7f9d1c2..db2ee98 100644 --- a/grub-core/video/efi_gop.c +++ b/grub-core/video/efi_gop.c @@ -227,7 +227,7 @@ grub_video_gop_fill_real_mode_info (unsigned mode, return GRUB_ERR_NONE; } -static grub_err_t +static void grub_video_gop_fill_mode_info (unsigned mode, struct grub_efi_gop_mode_info *in, struct grub_video_mode_info *out) @@ -252,8 +252,6 @@ grub_video_gop_fill_mode_info (unsigned mode, out->blit_format = GRUB_VIDEO_BLIT_FORMAT_BGRA_8888; out->mode_type |= (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED | GRUB_VIDEO_MODE_TYPE_UPDATING_SWAP); - - return GRUB_ERR_NONE; } static int @@ -266,7 +264,6 @@ grub_video_gop_iterate (int (*hook) (const struct grub_video_mode_info *info, vo grub_efi_uintn_t size; grub_efi_status_t status; struct grub_efi_gop_mode_info *info = NULL; - grub_err_t err; struct grub_video_mode_info mode_info; status = efi_call_4 (gop->query_mode, gop, mode, &size, &info); @@ -277,12 +274,7 @@ grub_video_gop_iterate (int (*hook) (const struct grub_video_mode_info *info, vo continue; } - err = grub_video_gop_fill_mode_info (mode, info, &mode_info); - if (err) - { - grub_errno = GRUB_ERR_NONE; - continue; - } + grub_video_gop_fill_mode_info (mode, info, &mode_info); if (hook (&mode_info, hook_arg)) return 1; } @@ -466,13 +458,8 @@ grub_video_gop_setup (unsigned int width, unsigned int height, info = gop->mode->info; - err = grub_video_gop_fill_mode_info (gop->mode->mode, info, - &framebuffer.mode_info); - if (err) - { - grub_dprintf ("video", "GOP: couldn't fill mode info\n"); - return err; - } + grub_video_gop_fill_mode_info (gop->mode->mode, info, + &framebuffer.mode_info); framebuffer.ptr = (void *) (grub_addr_t) gop->mode->fb_base; framebuffer.offscreen @@ -486,8 +473,8 @@ grub_video_gop_setup (unsigned int width, unsigned int height, { grub_dprintf ("video", "GOP: couldn't allocate shadow\n"); grub_errno = 0; - err = grub_video_gop_fill_mode_info (gop->mode->mode, info, - &framebuffer.mode_info); + grub_video_gop_fill_mode_info (gop->mode->mode, info, + &framebuffer.mode_info); buffer = framebuffer.ptr; } -- 2.14.2 ================================================ FILE: boot/grub2/0080-video-fb-fbfill-Fix-potential-integer-overflow.patch ================================================ From 7ce3259f67ac2cd93acb0ec0080c24b3b69e66c6 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Wed, 4 Nov 2020 15:10:51 +0000 Subject: [PATCH] video/fb/fbfill: Fix potential integer overflow The multiplication of 2 unsigned 32-bit integers may overflow before promotion to unsigned 64-bit. We should ensure that the multiplication is done with overflow detection. Additionally, use grub_sub() for subtraction. Fixes: CID 73640, CID 73697, CID 73702, CID 73823 Signed-off-by: Darren Kenny Signed-off-by: Marco A Benatto Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/video/fb/fbfill.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/grub-core/video/fb/fbfill.c b/grub-core/video/fb/fbfill.c index 11816d0..a37acd1 100644 --- a/grub-core/video/fb/fbfill.c +++ b/grub-core/video/fb/fbfill.c @@ -31,6 +31,7 @@ #include #include #include +#include #include /* Generic filler that works for every supported mode. */ @@ -61,7 +62,9 @@ grub_video_fbfill_direct32 (struct grub_video_fbblit_info *dst, /* Calculate the number of bytes to advance from the end of one line to the beginning of the next line. */ - rowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; + if (grub_mul (dst->mode_info->bytes_per_pixel, width, &rowskip) || + grub_sub (dst->mode_info->pitch, rowskip, &rowskip)) + return; /* Get the start address. */ dstptr = grub_video_fb_get_video_ptr (dst, x, y); @@ -98,7 +101,9 @@ grub_video_fbfill_direct24 (struct grub_video_fbblit_info *dst, #endif /* Calculate the number of bytes to advance from the end of one line to the beginning of the next line. */ - rowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; + if (grub_mul (dst->mode_info->bytes_per_pixel, width, &rowskip) || + grub_sub (dst->mode_info->pitch, rowskip, &rowskip)) + return; /* Get the start address. */ dstptr = grub_video_fb_get_video_ptr (dst, x, y); @@ -131,7 +136,9 @@ grub_video_fbfill_direct16 (struct grub_video_fbblit_info *dst, /* Calculate the number of bytes to advance from the end of one line to the beginning of the next line. */ - rowskip = (dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width); + if (grub_mul (dst->mode_info->bytes_per_pixel, width, &rowskip) || + grub_sub (dst->mode_info->pitch, rowskip, &rowskip)) + return; /* Get the start address. */ dstptr = grub_video_fb_get_video_ptr (dst, x, y); @@ -161,7 +168,9 @@ grub_video_fbfill_direct8 (struct grub_video_fbblit_info *dst, /* Calculate the number of bytes to advance from the end of one line to the beginning of the next line. */ - rowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; + if (grub_mul (dst->mode_info->bytes_per_pixel, width, &rowskip) || + grub_sub (dst->mode_info->pitch, rowskip, &rowskip)) + return; /* Get the start address. */ dstptr = grub_video_fb_get_video_ptr (dst, x, y); -- 2.14.2 ================================================ FILE: boot/grub2/0081-video-fb-video_fb-Fix-multiple-integer-overflows.patch ================================================ From 08e098b1dbf01e96376f594b337491bc4cfa48dd Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Wed, 4 Nov 2020 14:43:44 +0000 Subject: [PATCH] video/fb/video_fb: Fix multiple integer overflows The calculation of the unsigned 64-bit value is being generated by multiplying 2, signed or unsigned, 32-bit integers which may overflow before promotion to unsigned 64-bit. Fix all of them. Fixes: CID 73703, CID 73767, CID 73833 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/video/fb/video_fb.c | 52 ++++++++++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/grub-core/video/fb/video_fb.c b/grub-core/video/fb/video_fb.c index 1a602c8..1c9a138 100644 --- a/grub-core/video/fb/video_fb.c +++ b/grub-core/video/fb/video_fb.c @@ -25,6 +25,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -1417,15 +1418,23 @@ doublebuf_blit_update_screen (void) { if (framebuffer.current_dirty.first_line <= framebuffer.current_dirty.last_line) - grub_memcpy ((char *) framebuffer.pages[0] - + framebuffer.current_dirty.first_line - * framebuffer.back_target->mode_info.pitch, - (char *) framebuffer.back_target->data - + framebuffer.current_dirty.first_line - * framebuffer.back_target->mode_info.pitch, - framebuffer.back_target->mode_info.pitch - * (framebuffer.current_dirty.last_line - - framebuffer.current_dirty.first_line)); + { + grub_size_t copy_size; + + if (grub_sub (framebuffer.current_dirty.last_line, + framebuffer.current_dirty.first_line, ©_size) || + grub_mul (framebuffer.back_target->mode_info.pitch, copy_size, ©_size)) + { + /* Shouldn't happen, but if it does we've a bug. */ + return GRUB_ERR_BUG; + } + + grub_memcpy ((char *) framebuffer.pages[0] + framebuffer.current_dirty.first_line * + framebuffer.back_target->mode_info.pitch, + (char *) framebuffer.back_target->data + framebuffer.current_dirty.first_line * + framebuffer.back_target->mode_info.pitch, + copy_size); + } framebuffer.current_dirty.first_line = framebuffer.back_target->mode_info.height; framebuffer.current_dirty.last_line = 0; @@ -1439,7 +1448,7 @@ grub_video_fb_doublebuf_blit_init (struct grub_video_fbrender_target **back, volatile void *framebuf) { grub_err_t err; - grub_size_t page_size = mode_info.pitch * mode_info.height; + grub_size_t page_size = (grub_size_t) mode_info.pitch * mode_info.height; framebuffer.offscreen_buffer = grub_zalloc (page_size); if (! framebuffer.offscreen_buffer) @@ -1482,12 +1491,23 @@ doublebuf_pageflipping_update_screen (void) last_line = framebuffer.previous_dirty.last_line; if (first_line <= last_line) - grub_memcpy ((char *) framebuffer.pages[framebuffer.render_page] - + first_line * framebuffer.back_target->mode_info.pitch, - (char *) framebuffer.back_target->data - + first_line * framebuffer.back_target->mode_info.pitch, - framebuffer.back_target->mode_info.pitch - * (last_line - first_line)); + { + grub_size_t copy_size; + + if (grub_sub (last_line, first_line, ©_size) || + grub_mul (framebuffer.back_target->mode_info.pitch, copy_size, ©_size)) + { + /* Shouldn't happen, but if it does we've a bug. */ + return GRUB_ERR_BUG; + } + + grub_memcpy ((char *) framebuffer.pages[framebuffer.render_page] + first_line * + framebuffer.back_target->mode_info.pitch, + (char *) framebuffer.back_target->data + first_line * + framebuffer.back_target->mode_info.pitch, + copy_size); + } + framebuffer.previous_dirty = framebuffer.current_dirty; framebuffer.current_dirty.first_line = framebuffer.back_target->mode_info.height; -- 2.14.2 ================================================ FILE: boot/grub2/0082-video-fb-video_fb-Fix-possible-integer-overflow.patch ================================================ From 08413f2f4edec0e2d9bf15f836f6ee5ca2e379cb Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Fri, 4 Dec 2020 14:51:30 +0000 Subject: [PATCH] video/fb/video_fb: Fix possible integer overflow It is minimal possibility that the values being used here will overflow. So, change the code to use the safemath function grub_mul() to ensure that doesn't happen. Fixes: CID 73761 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/video/fb/video_fb.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/grub-core/video/fb/video_fb.c b/grub-core/video/fb/video_fb.c index 1c9a138..ae6b89f 100644 --- a/grub-core/video/fb/video_fb.c +++ b/grub-core/video/fb/video_fb.c @@ -1537,7 +1537,13 @@ doublebuf_pageflipping_init (struct grub_video_mode_info *mode_info, volatile void *page1_ptr) { grub_err_t err; - grub_size_t page_size = mode_info->pitch * mode_info->height; + grub_size_t page_size = 0; + + if (grub_mul (mode_info->pitch, mode_info->height, &page_size)) + { + /* Shouldn't happen, but if it does we've a bug. */ + return GRUB_ERR_BUG; + } framebuffer.offscreen_buffer = grub_malloc (page_size); if (! framebuffer.offscreen_buffer) -- 2.14.2 ================================================ FILE: boot/grub2/0083-video-readers-jpeg-Test-for-an-invalid-next-marker-r.patch ================================================ From 5f5eb7ca8e971227e95745abe541df3e1509360e Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Fri, 4 Dec 2020 15:39:00 +0000 Subject: [PATCH] video/readers/jpeg: Test for an invalid next marker reference from a jpeg file While it may never happen, and potentially could be caught at the end of the function, it is worth checking up front for a bad reference to the next marker just in case of a maliciously crafted file being provided. Fixes: CID 73694 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/video/readers/jpeg.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/grub-core/video/readers/jpeg.c b/grub-core/video/readers/jpeg.c index 31359a4..0b6ce3c 100644 --- a/grub-core/video/readers/jpeg.c +++ b/grub-core/video/readers/jpeg.c @@ -253,6 +253,12 @@ grub_jpeg_decode_quan_table (struct grub_jpeg_data *data) next_marker = data->file->offset; next_marker += grub_jpeg_get_word (data); + if (next_marker > data->file->size) + { + /* Should never be set beyond the size of the file. */ + return grub_error (GRUB_ERR_BAD_FILE_TYPE, "jpeg: invalid next reference"); + } + while (data->file->offset + sizeof (data->quan_table[id]) + 1 <= next_marker) { -- 2.14.2 ================================================ FILE: boot/grub2/0084-gfxmenu-gui_list-Remove-code-that-coverity-is-flaggi.patch ================================================ From 4a1aa5917595650efbd46b581368c470ebee42ab Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Mon, 7 Dec 2020 14:44:47 +0000 Subject: [PATCH] gfxmenu/gui_list: Remove code that coverity is flagging as dead The test of value for NULL before calling grub_strdup() is not required, since the if condition prior to this has already tested for value being NULL and cannot reach this code if it is. Fixes: CID 73659 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/gfxmenu/gui_list.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/gfxmenu/gui_list.c b/grub-core/gfxmenu/gui_list.c index 01477cd..df334a6 100644 --- a/grub-core/gfxmenu/gui_list.c +++ b/grub-core/gfxmenu/gui_list.c @@ -771,7 +771,7 @@ list_set_property (void *vself, const char *name, const char *value) { self->need_to_recreate_boxes = 1; grub_free (self->selected_item_box_pattern); - self->selected_item_box_pattern = value ? grub_strdup (value) : 0; + self->selected_item_box_pattern = grub_strdup (value); self->selected_item_box_pattern_inherit = 0; } } -- 2.14.2 ================================================ FILE: boot/grub2/0085-loader-bsd-Check-for-NULL-arg-up-front.patch ================================================ From 5d5391b0a05abe76e04c1eb68dcc6cbef5326c4a Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Tue, 8 Dec 2020 21:47:13 +0000 Subject: [PATCH] loader/bsd: Check for NULL arg up-front The code in the next block suggests that it is possible for .set to be true but .arg may still be NULL. This code assumes that it is never NULL, yet later is testing if it is NULL - that is inconsistent. So we should check first if .arg is not NULL, and remove this check that is being flagged by Coverity since it is no longer required. Fixes: CID 292471 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/loader/i386/bsd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c index b92cbe9..8432283 100644 --- a/grub-core/loader/i386/bsd.c +++ b/grub-core/loader/i386/bsd.c @@ -1605,7 +1605,7 @@ grub_cmd_openbsd (grub_extcmd_context_t ctxt, int argc, char *argv[]) kernel_type = KERNEL_TYPE_OPENBSD; bootflags = grub_bsd_parse_flags (ctxt->state, openbsd_flags); - if (ctxt->state[OPENBSD_ROOT_ARG].set) + if (ctxt->state[OPENBSD_ROOT_ARG].set && ctxt->state[OPENBSD_ROOT_ARG].arg != NULL) { const char *arg = ctxt->state[OPENBSD_ROOT_ARG].arg; unsigned type, unit, part; @@ -1622,7 +1622,7 @@ grub_cmd_openbsd (grub_extcmd_context_t ctxt, int argc, char *argv[]) "unknown disk type name"); unit = grub_strtoul (arg, (char **) &arg, 10); - if (! (arg && *arg >= 'a' && *arg <= 'z')) + if (! (*arg >= 'a' && *arg <= 'z')) return grub_error (GRUB_ERR_BAD_ARGUMENT, "only device specifications of form " " are supported"); -- 2.14.2 ================================================ FILE: boot/grub2/0086-loader-xnu-Fix-memory-leak.patch ================================================ From bcb59ece3263d118510c4440c4da0950f224bb7f Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Thu, 26 Nov 2020 12:53:10 +0000 Subject: [PATCH] loader/xnu: Fix memory leak The code here is finished with the memory stored in name, but it only frees it if there curvalue is valid, while it could actually free it regardless. The fix is a simple relocation of the grub_free() to before the test of curvalue. Fixes: CID 96646 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/loader/xnu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c index 44fd5a9..eb14462 100644 --- a/grub-core/loader/xnu.c +++ b/grub-core/loader/xnu.c @@ -1391,9 +1391,9 @@ grub_xnu_fill_devicetree (void) name[len] = 0; curvalue = grub_xnu_create_value (curkey, name); + grub_free (name); if (!curvalue) return grub_errno; - grub_free (name); data = grub_malloc (grub_strlen (var->value) + 1); if (!data) -- 2.14.2 ================================================ FILE: boot/grub2/0087-loader-xnu-Free-driverkey-data-when-an-error-is-dete.patch ================================================ From 4b4027b6b1c877d7ab467896b04c7bd1aadcfa15 Mon Sep 17 00:00:00 2001 From: Marco A Benatto Date: Mon, 30 Nov 2020 12:18:24 -0300 Subject: [PATCH] loader/xnu: Free driverkey data when an error is detected in grub_xnu_writetree_toheap() ... to avoid memory leaks. Fixes: CID 96640 Signed-off-by: Marco A Benatto Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/loader/xnu.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c index eb14462..1a590db 100644 --- a/grub-core/loader/xnu.c +++ b/grub-core/loader/xnu.c @@ -227,26 +227,33 @@ grub_xnu_writetree_toheap (grub_addr_t *target, grub_size_t *size) if (! memorymap) return grub_errno; - driverkey = (struct grub_xnu_devtree_key *) grub_malloc (sizeof (*driverkey)); + driverkey = (struct grub_xnu_devtree_key *) grub_zalloc (sizeof (*driverkey)); if (! driverkey) return grub_errno; driverkey->name = grub_strdup ("DeviceTree"); if (! driverkey->name) - return grub_errno; + { + err = grub_errno; + goto fail; + } + driverkey->datasize = sizeof (*extdesc); driverkey->next = memorymap->first_child; memorymap->first_child = driverkey; driverkey->data = extdesc = (struct grub_xnu_extdesc *) grub_malloc (sizeof (*extdesc)); if (! driverkey->data) - return grub_errno; + { + err = grub_errno; + goto fail; + } /* Allocate the space based on the size with dummy value. */ *size = grub_xnu_writetree_get_size (grub_xnu_devtree_root, "/"); err = grub_xnu_heap_malloc (ALIGN_UP (*size + 1, GRUB_XNU_PAGESIZE), &src, target); if (err) - return err; + goto fail; /* Put real data in the dummy. */ extdesc->addr = *target; @@ -255,6 +262,15 @@ grub_xnu_writetree_toheap (grub_addr_t *target, grub_size_t *size) /* Write the tree to heap. */ grub_xnu_writetree_toheap_real (src, grub_xnu_devtree_root, "/"); return GRUB_ERR_NONE; + + fail: + memorymap->first_child = NULL; + + grub_free (driverkey->data); + grub_free (driverkey->name); + grub_free (driverkey); + + return err; } /* Find a key or value in parent key. */ -- 2.14.2 ================================================ FILE: boot/grub2/0088-loader-xnu-Check-if-pointer-is-NULL-before-using-it.patch ================================================ From 7c8a2b5d1421a0f2a33d33531f7561f3da93b844 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 30 Nov 2020 10:36:00 -0300 Subject: [PATCH] loader/xnu: Check if pointer is NULL before using it Fixes: CID 73654 Signed-off-by: Paulo Flabiano Smorigo Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/loader/xnu.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c index 1a590db..1c0cf6a 100644 --- a/grub-core/loader/xnu.c +++ b/grub-core/loader/xnu.c @@ -670,6 +670,9 @@ grub_xnu_load_driver (char *infoplistname, grub_file_t binaryfile, char *name, *nameend; int namelen; + if (infoplistname == NULL) + return grub_error (GRUB_ERR_BAD_FILENAME, N_("missing p-list filename")); + name = get_name_ptr (infoplistname); nameend = grub_strchr (name, '/'); @@ -701,10 +704,7 @@ grub_xnu_load_driver (char *infoplistname, grub_file_t binaryfile, else macho = 0; - if (infoplistname) - infoplist = grub_file_open (infoplistname, GRUB_FILE_TYPE_XNU_INFO_PLIST); - else - infoplist = 0; + infoplist = grub_file_open (infoplistname, GRUB_FILE_TYPE_XNU_INFO_PLIST); grub_errno = GRUB_ERR_NONE; if (infoplist) { -- 2.14.2 ================================================ FILE: boot/grub2/0089-util-grub-install-Fix-NULL-pointer-dereferences.patch ================================================ From 8b3a95655b4391122e7b0315d8cc6f876caf8183 Mon Sep 17 00:00:00 2001 From: Daniel Kiper Date: Thu, 25 Feb 2021 18:35:01 +0100 Subject: [PATCH] util/grub-install: Fix NULL pointer dereferences Two grub_device_open() calls does not have associated NULL checks for returned values. Fix that and appease the Coverity. Fixes: CID 314583 Signed-off-by: Daniel Kiper Reviewed-by: Javier Martinez Canillas Signed-off-by: Stefan Sørensen --- util/grub-install.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/util/grub-install.c b/util/grub-install.c index a82725f..367350f 100644 --- a/util/grub-install.c +++ b/util/grub-install.c @@ -1775,6 +1775,8 @@ main (int argc, char *argv[]) fill_core_services (core_services); ins_dev = grub_device_open (install_drive); + if (ins_dev == NULL) + grub_util_error ("%s", grub_errmsg); bless (ins_dev, core_services, 0); @@ -1875,6 +1877,8 @@ main (int argc, char *argv[]) fill_core_services(core_services); ins_dev = grub_device_open (install_drive); + if (ins_dev == NULL) + grub_util_error ("%s", grub_errmsg); bless (ins_dev, boot_efi, 1); if (!removable && update_nvram) -- 2.14.2 ================================================ FILE: boot/grub2/0090-util-grub-editenv-Fix-incorrect-casting-of-a-signed-.patch ================================================ From 5dc41edc4eba259c6043ae7698c245ec1baaacc6 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Thu, 5 Nov 2020 14:33:50 +0000 Subject: [PATCH] util/grub-editenv: Fix incorrect casting of a signed value The return value of ftell() may be negative (-1) on error. While it is probably unlikely to occur, we should not blindly cast to an unsigned value without first testing that it is not negative. Fixes: CID 73856 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- util/grub-editenv.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/util/grub-editenv.c b/util/grub-editenv.c index f3662c9..db6f187 100644 --- a/util/grub-editenv.c +++ b/util/grub-editenv.c @@ -125,6 +125,7 @@ open_envblk_file (const char *name) { FILE *fp; char *buf; + long loc; size_t size; grub_envblk_t envblk; @@ -143,7 +144,12 @@ open_envblk_file (const char *name) grub_util_error (_("cannot seek `%s': %s"), name, strerror (errno)); - size = (size_t) ftell (fp); + loc = ftell (fp); + if (loc < 0) + grub_util_error (_("cannot get file location `%s': %s"), name, + strerror (errno)); + + size = (size_t) loc; if (fseek (fp, 0, SEEK_SET) < 0) grub_util_error (_("cannot seek `%s': %s"), name, -- 2.14.2 ================================================ FILE: boot/grub2/0091-util-glue-efi-Fix-incorrect-use-of-a-possibly-negati.patch ================================================ From 1641d74e16f9d1ca35ba1a87ee4a0bf3afa48e72 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Fri, 4 Dec 2020 15:04:28 +0000 Subject: [PATCH] util/glue-efi: Fix incorrect use of a possibly negative value It is possible for the ftell() function to return a negative value, although it is fairly unlikely here, we should be checking for a negative value before we assign it to an unsigned value. Fixes: CID 73744 Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- util/glue-efi.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/util/glue-efi.c b/util/glue-efi.c index 68f5316..de0fa6d 100644 --- a/util/glue-efi.c +++ b/util/glue-efi.c @@ -39,13 +39,23 @@ write_fat (FILE *in32, FILE *in64, FILE *out, const char *out_filename, struct grub_macho_fat_header head; struct grub_macho_fat_arch arch32, arch64; grub_uint32_t size32, size64; + long size; char *buf; fseek (in32, 0, SEEK_END); - size32 = ftell (in32); + size = ftell (in32); + if (size < 0) + grub_util_error ("cannot get end of input file '%s': %s", + name32, strerror (errno)); + size32 = (grub_uint32_t) size; fseek (in32, 0, SEEK_SET); + fseek (in64, 0, SEEK_END); - size64 = ftell (in64); + size = ftell (in64); + if (size < 0) + grub_util_error ("cannot get end of input file '%s': %s", + name64, strerror (errno)); + size64 = (grub_uint64_t) size; fseek (in64, 0, SEEK_SET); head.magic = grub_cpu_to_le32_compile_time (GRUB_MACHO_FAT_EFI_MAGIC); -- 2.14.2 ================================================ FILE: boot/grub2/0092-script-execute-Fix-NULL-dereference-in-grub_script_e.patch ================================================ From 41ae93b2e6c75453514629bcfe684300e3aec0ce Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Fri, 3 Apr 2020 23:05:13 +1100 Subject: [PATCH] script/execute: Fix NULL dereference in grub_script_execute_cmdline() Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/script/execute.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c index 7e028e1..5ea2aef 100644 --- a/grub-core/script/execute.c +++ b/grub-core/script/execute.c @@ -940,7 +940,7 @@ grub_script_execute_cmdline (struct grub_script_cmd *cmd) struct grub_script_argv argv = { 0, 0, 0 }; /* Lookup the command. */ - if (grub_script_arglist_to_argv (cmdline->arglist, &argv) || ! argv.args[0]) + if (grub_script_arglist_to_argv (cmdline->arglist, &argv) || ! argv.args || ! argv.args[0]) return grub_errno; for (i = 0; i < argv.argc; i++) -- 2.14.2 ================================================ FILE: boot/grub2/0093-commands-ls-Require-device_name-is-not-NULL-before-p.patch ================================================ From 6afbe6063c95b827372f9ec310c9fc7461311eb1 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 11 Jan 2021 16:57:37 +1100 Subject: [PATCH] commands/ls: Require device_name is not NULL before printing This can be triggered with: ls -l (0 0*) and causes a NULL deref in grub_normal_print_device_info(). I'm not sure if there's any implication with the IEEE 1275 platform. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/commands/ls.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/commands/ls.c b/grub-core/commands/ls.c index 5b7491a..326d2d6 100644 --- a/grub-core/commands/ls.c +++ b/grub-core/commands/ls.c @@ -196,7 +196,7 @@ grub_ls_list_files (char *dirname, int longlist, int all, int human) goto fail; } - if (! *path) + if (! *path && device_name) { if (grub_errno == GRUB_ERR_UNKNOWN_FS) grub_errno = GRUB_ERR_NONE; -- 2.14.2 ================================================ FILE: boot/grub2/0094-script-execute-Avoid-crash-when-using-outside-a-func.patch ================================================ From fe0586347ee46f927ae27bb9673532da9f5dead5 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 11 Jan 2021 17:30:42 +1100 Subject: [PATCH] script/execute: Avoid crash when using "$#" outside a function scope "$#" represents the number of arguments to a function. It is only defined in a function scope, where "scope" is non-NULL. Currently, if we attempt to evaluate "$#" outside a function scope, "scope" will be NULL and we will crash with a NULL pointer dereference. Do not attempt to count arguments for "$#" if "scope" is NULL. This will result in "$#" being interpreted as an empty string if evaluated outside a function scope. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/script/execute.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c index 5ea2aef..23d34bd 100644 --- a/grub-core/script/execute.c +++ b/grub-core/script/execute.c @@ -485,7 +485,7 @@ gettext_putvar (const char *str, grub_size_t len, return 0; /* Enough for any number. */ - if (len == 1 && str[0] == '#') + if (len == 1 && str[0] == '#' && scope != NULL) { grub_snprintf (*ptr, 30, "%u", scope->argv.argc); *ptr += grub_strlen (*ptr); -- 2.14.2 ================================================ FILE: boot/grub2/0095-lib-arg-Block-repeated-short-options-that-require-an.patch ================================================ From 2a330dba93ff11bc00eda76e9419bc52b0c7ead6 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Fri, 22 Jan 2021 16:07:29 +1100 Subject: [PATCH] lib/arg: Block repeated short options that require an argument Fuzzing found the following crash: search -hhhhhhhhhhhhhf We didn't allocate enough option space for 13 hints because the allocation code counts the number of discrete arguments (i.e. argc). However, the shortopt parsing code will happily keep processing a combination of short options without checking if those short options require an argument. This means you can easily end writing past the allocated option space. This fixes a OOB write which can cause heap corruption. Fixes: CVE-2021-20225 Reported-by: Daniel Axtens Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/lib/arg.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/grub-core/lib/arg.c b/grub-core/lib/arg.c index 3288609..537c5e9 100644 --- a/grub-core/lib/arg.c +++ b/grub-core/lib/arg.c @@ -299,6 +299,19 @@ grub_arg_parse (grub_extcmd_t cmd, int argc, char **argv, it can have an argument value. */ if (*curshort) { + /* + * Only permit further short opts if this one doesn't + * require a value. + */ + if (opt->type != ARG_TYPE_NONE && + !(opt->flags & GRUB_ARG_OPTION_OPTIONAL)) + { + grub_error (GRUB_ERR_BAD_ARGUMENT, + N_("missing mandatory option for `%s'"), + opt->longarg); + goto fail; + } + if (parse_option (cmd, opt, 0, usr) || grub_errno) goto fail; } -- 2.14.2 ================================================ FILE: boot/grub2/0096-script-execute-Don-t-crash-on-a-for-loop-with-no-ite.patch ================================================ From 0a05f88e2bb33ed2a0cfd93f481f471efb7791aa Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Fri, 22 Jan 2021 16:18:26 +1100 Subject: [PATCH] script/execute: Don't crash on a "for" loop with no items The following crashes the parser: for x in; do 0 done This is because grub_script_arglist_to_argv() doesn't consider the possibility that arglist is NULL. Catch that explicitly. This avoids a NULL pointer dereference. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/script/execute.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c index 23d34bd..31dac25 100644 --- a/grub-core/script/execute.c +++ b/grub-core/script/execute.c @@ -624,6 +624,9 @@ grub_script_arglist_to_argv (struct grub_script_arglist *arglist, struct grub_script_arg *arg = 0; struct grub_script_argv result = { 0, 0, 0 }; + if (arglist == NULL) + return 1; + for (; arglist && arglist->arg; arglist = arglist->next) { if (grub_script_argv_next (&result)) -- 2.14.2 ================================================ FILE: boot/grub2/0097-commands-menuentry-Fix-quoting-in-setparams_prefix.patch ================================================ From 2f533a89a8dfcacbf2c9dbc77d910f111f24bf33 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Fri, 22 Jan 2021 17:10:48 +1100 Subject: [PATCH] commands/menuentry: Fix quoting in setparams_prefix() Commit 9acdcbf32542 (use single quotes in menuentry setparams command) says that expressing a quoted single quote will require 3 characters. It actually requires (and always did require!) 4 characters: str: a'b => a'\''b len: 3 => 6 (2 for the letters + 4 for the quote) This leads to not allocating enough memory and thus out of bounds writes that have been observed to cause heap corruption. Allocate 4 bytes for each single quote. Commit 22e7dbb2bb81 (Fix quoting in legacy parser.) does the same quoting, but it adds 3 as extra overhead on top of the single byte that the quote already needs. So it's correct. Fixes: 9acdcbf32542 (use single quotes in menuentry setparams command) Fixes: CVE-2021-20233 Reported-by: Daniel Axtens Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/commands/menuentry.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c index 9164df7..720e6d8 100644 --- a/grub-core/commands/menuentry.c +++ b/grub-core/commands/menuentry.c @@ -230,7 +230,7 @@ setparams_prefix (int argc, char **args) len += 3; /* 3 = 1 space + 2 quotes */ p = args[i]; while (*p) - len += (*p++ == '\'' ? 3 : 1); + len += (*p++ == '\'' ? 4 : 1); } result = grub_malloc (len + 2); -- 2.14.2 ================================================ FILE: boot/grub2/0098-kern-misc-Always-set-end-in-grub_strtoull.patch ================================================ From f41f0af48ab7f7c135aac17ac862c30bde0bbab7 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Wed, 13 Jan 2021 22:19:01 +1100 Subject: [PATCH] kern/misc: Always set *end in grub_strtoull() Currently, if there is an error in grub_strtoull(), *end is not set. This differs from the usual behavior of strtoull(), and also means that some callers may use an uninitialized value for *end. Set *end unconditionally. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/misc.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c index a7abd36..b02693b 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -406,6 +406,10 @@ grub_strtoull (const char *str, char **end, int base) { grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + + if (end) + *end = (char *) str; + return ~0ULL; } @@ -417,6 +421,10 @@ grub_strtoull (const char *str, char **end, int base) { grub_error (GRUB_ERR_BAD_NUMBER, N_("unrecognized number")); + + if (end) + *end = (char *) str; + return 0; } -- 2.14.2 ================================================ FILE: boot/grub2/0099-video-readers-jpeg-Catch-files-with-unsupported-quan.patch ================================================ From 693989598fd38c3c0b2a928f4f64865b5681762f Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Fri, 15 Jan 2021 12:57:04 +1100 Subject: [PATCH] video/readers/jpeg: Catch files with unsupported quantization or Huffman tables Our decoder only supports 2 quantization tables. If a file asks for a quantization table with index > 1, reject it. Similarly, our decoder only supports 4 Huffman tables. If a file asks for a Huffman table with index > 3, reject it. This fixes some out of bounds reads. It's not clear what degree of control over subsequent execution could be gained by someone who can carefully set up the contents of memory before loading an invalid JPEG file. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/video/readers/jpeg.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/grub-core/video/readers/jpeg.c b/grub-core/video/readers/jpeg.c index 0b6ce3c..23f919a 100644 --- a/grub-core/video/readers/jpeg.c +++ b/grub-core/video/readers/jpeg.c @@ -333,7 +333,11 @@ grub_jpeg_decode_sof (struct grub_jpeg_data *data) else if (ss != JPEG_SAMPLING_1x1) return grub_error (GRUB_ERR_BAD_FILE_TYPE, "jpeg: sampling method not supported"); + data->comp_index[id][0] = grub_jpeg_get_byte (data); + if (data->comp_index[id][0] > 1) + return grub_error (GRUB_ERR_BAD_FILE_TYPE, + "jpeg: too many quantization tables"); } if (data->file->offset != next_marker) @@ -602,6 +606,10 @@ grub_jpeg_decode_sos (struct grub_jpeg_data *data) ht = grub_jpeg_get_byte (data); data->comp_index[id][1] = (ht >> 4); data->comp_index[id][2] = (ht & 0xF) + 2; + + if ((data->comp_index[id][1] < 0) || (data->comp_index[id][1] > 3) || + (data->comp_index[id][2] < 0) || (data->comp_index[id][2] > 3)) + return grub_error (GRUB_ERR_BAD_FILE_TYPE, "jpeg: invalid hufftable index"); } grub_jpeg_get_byte (data); /* Skip 3 unused bytes. */ -- 2.14.2 ================================================ FILE: boot/grub2/0100-video-readers-jpeg-Catch-OOB-reads-writes-in-grub_jp.patch ================================================ From 34b85a6e07014383ddcad09f99ff239ad752dd1a Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Fri, 15 Jan 2021 13:29:53 +1100 Subject: [PATCH] video/readers/jpeg: Catch OOB reads/writes in grub_jpeg_decode_du() The key line is: du[jpeg_zigzag_order[pos]] = val * (int) data->quan_table[qt][pos]; jpeg_zigzag_order is grub_uint8_t[64]. I don't understand JPEG decoders quite well enough to explain what's going on here. However, I observe sometimes pos=64, which leads to an OOB read of the jpeg_zigzag_order global then an OOB write to du. That leads to various unpleasant memory corruption conditions. Catch where pos >= ARRAY_SIZE(jpeg_zigzag_order) and bail. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/video/readers/jpeg.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/grub-core/video/readers/jpeg.c b/grub-core/video/readers/jpeg.c index 23f919a..e514812 100644 --- a/grub-core/video/readers/jpeg.c +++ b/grub-core/video/readers/jpeg.c @@ -526,6 +526,14 @@ grub_jpeg_decode_du (struct grub_jpeg_data *data, int id, jpeg_data_unit_t du) val = grub_jpeg_get_number (data, num & 0xF); num >>= 4; pos += num; + + if (pos >= ARRAY_SIZE (jpeg_zigzag_order)) + { + grub_error (GRUB_ERR_BAD_FILE_TYPE, + "jpeg: invalid position in zigzag order!?"); + return; + } + du[jpeg_zigzag_order[pos]] = val * (int) data->quan_table[qt][pos]; pos++; } -- 2.14.2 ================================================ FILE: boot/grub2/0101-video-readers-jpeg-Don-t-decode-data-before-start-of.patch ================================================ From 8338a8238f08d9f3ae4c2ddfff0603eff80af9e2 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Fri, 15 Jan 2021 14:06:46 +1100 Subject: [PATCH] video/readers/jpeg: Don't decode data before start of stream When a start of stream marker is encountered, we call grub_jpeg_decode_sos() which allocates space for a bitmap. When a restart marker is encountered, we call grub_jpeg_decode_data() which then fills in that bitmap. If we get a restart marker before the start of stream marker, we will attempt to write to a bitmap_ptr that hasn't been allocated. Catch this and bail out. This fixes an attempt to write to NULL. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/video/readers/jpeg.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/grub-core/video/readers/jpeg.c b/grub-core/video/readers/jpeg.c index e514812..e31602f 100644 --- a/grub-core/video/readers/jpeg.c +++ b/grub-core/video/readers/jpeg.c @@ -646,6 +646,10 @@ grub_jpeg_decode_data (struct grub_jpeg_data *data) nr1 = (data->image_height + vb - 1) >> (3 + data->log_vs); nc1 = (data->image_width + hb - 1) >> (3 + data->log_hs); + if (data->bitmap_ptr == NULL) + return grub_error(GRUB_ERR_BAD_FILE_TYPE, + "jpeg: attempted to decode data before start of stream"); + for (; data->r1 < nr1 && (!data->dri || rst); data->r1++, data->bitmap_ptr += (vb * data->image_width - hb * nc1) * 3) for (c1 = 0; c1 < nc1 && (!data->dri || rst); -- 2.14.2 ================================================ FILE: boot/grub2/0102-term-gfxterm-Don-t-set-up-a-font-with-glyphs-that-ar.patch ================================================ From 829329bddb2c3e623270cc634cc9ab32e6455fe7 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Fri, 15 Jan 2021 20:03:20 +1100 Subject: [PATCH] term/gfxterm: Don't set up a font with glyphs that are too big Catch the case where we have a font so big that it causes the number of rows or columns to be 0. Currently we continue and allocate a virtual_screen.text_buffer of size 0. We then try to use that for glpyhs and things go badly. On the emu platform, malloc() may give us a valid pointer, in which case we'll access heap memory which we shouldn't. Alternatively, it may give us NULL, in which case we'll crash. For other platforms, if I understand grub_memalign() correctly, we will receive a valid but small allocation that we will very likely later overrun. Prevent the creation of a virtual screen that isn't at least 40 cols by 12 rows. This is arbitrary, but it seems that if your width or height is half a standard 80x24 terminal, you're probably going to struggle to read anything anyway. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/term/gfxterm.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/grub-core/term/gfxterm.c b/grub-core/term/gfxterm.c index af7c090..b40fcce 100644 --- a/grub-core/term/gfxterm.c +++ b/grub-core/term/gfxterm.c @@ -232,6 +232,15 @@ grub_virtual_screen_setup (unsigned int x, unsigned int y, virtual_screen.columns = virtual_screen.width / virtual_screen.normal_char_width; virtual_screen.rows = virtual_screen.height / virtual_screen.normal_char_height; + /* + * There must be a minimum number of rows and columns for the screen to + * make sense. Arbitrarily pick half of 80x24. If either dimensions is 0 + * we would allocate 0 bytes for the text_buffer. + */ + if (virtual_screen.columns < 40 || virtual_screen.rows < 12) + return grub_error (GRUB_ERR_BAD_FONT, + "font: glyphs too large to fit on screen"); + /* Allocate memory for text buffer. */ virtual_screen.text_buffer = (struct grub_colored_char *) grub_malloc (virtual_screen.columns -- 2.14.2 ================================================ FILE: boot/grub2/0103-fs-fshelp-Catch-impermissibly-large-block-sizes-in-r.patch ================================================ From b5bc456f664bc301ab4cd5a17d3d23c6661c259e Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 18 Jan 2021 11:46:39 +1100 Subject: [PATCH] fs/fshelp: Catch impermissibly large block sizes in read helper A fuzzed HFS+ filesystem had log2blocksize = 22. This gave log2blocksize + GRUB_DISK_SECTOR_BITS = 31. 1 << 31 = 0x80000000, which is -1 as an int. This caused some wacky behavior later on in the function, leading to out-of-bounds writes on the destination buffer. Catch log2blocksize + GRUB_DISK_SECTOR_BITS >= 31. We could be stricter, but this is the minimum that will prevent integer size weirdness. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/fshelp.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/grub-core/fs/fshelp.c b/grub-core/fs/fshelp.c index 4c902ad..a2d0d29 100644 --- a/grub-core/fs/fshelp.c +++ b/grub-core/fs/fshelp.c @@ -362,6 +362,18 @@ grub_fshelp_read_file (grub_disk_t disk, grub_fshelp_node_t node, grub_disk_addr_t i, blockcnt; int blocksize = 1 << (log2blocksize + GRUB_DISK_SECTOR_BITS); + /* + * Catch blatantly invalid log2blocksize. We could be a lot stricter, but + * this is the most permissive we can be before we start to see integer + * overflow/underflow issues. + */ + if (log2blocksize + GRUB_DISK_SECTOR_BITS >= 31) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, + N_("blocksize too large")); + return -1; + } + if (pos > filesize) { grub_error (GRUB_ERR_OUT_OF_RANGE, -- 2.14.2 ================================================ FILE: boot/grub2/0104-fs-hfsplus-Don-t-fetch-a-key-beyond-the-end-of-the-n.patch ================================================ From 58ea11d5b9ca0966bd9c68d8ba5240cf7dc3ba83 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Fri, 22 Jan 2021 18:13:56 +1100 Subject: [PATCH] fs/hfsplus: Don't fetch a key beyond the end of the node Otherwise you get a wild pointer, leading to a bunch of invalid reads. Check it falls inside the given node. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/hfsplus.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c index 8fe7c12..1c7791b 100644 --- a/grub-core/fs/hfsplus.c +++ b/grub-core/fs/hfsplus.c @@ -635,6 +635,10 @@ grub_hfsplus_btree_search (struct grub_hfsplus_btree *btree, pointer = ((char *) currkey + grub_be_to_cpu16 (currkey->keylen) + 2); + + if ((char *) pointer > node + btree->nodesize - 2) + return grub_error (GRUB_ERR_BAD_FS, "HFS+ key beyond end of node"); + currnode = grub_be_to_cpu32 (grub_get_unaligned32 (pointer)); match = 1; } -- 2.14.2 ================================================ FILE: boot/grub2/0105-fs-hfsplus-Don-t-use-uninitialized-data-on-corrupt-f.patch ================================================ From 2ca0e5dbcdcb6fc93ccae39a0f39d0dba4a7ff20 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Tue, 2 Feb 2021 16:59:35 +1100 Subject: [PATCH] fs/hfsplus: Don't use uninitialized data on corrupt filesystems Valgrind identified the following use of uninitialized data: ==2782220== Conditional jump or move depends on uninitialised value(s) ==2782220== at 0x42B364: grub_hfsplus_btree_search (hfsplus.c:566) ==2782220== by 0x42B21D: grub_hfsplus_read_block (hfsplus.c:185) ==2782220== by 0x42A693: grub_fshelp_read_file (fshelp.c:386) ==2782220== by 0x42C598: grub_hfsplus_read_file (hfsplus.c:219) ==2782220== by 0x42C598: grub_hfsplus_mount (hfsplus.c:330) ==2782220== by 0x42B8C5: grub_hfsplus_dir (hfsplus.c:958) ==2782220== by 0x4C1AE6: grub_fs_probe (fs.c:73) ==2782220== by 0x407C94: grub_ls_list_files (ls.c:186) ==2782220== by 0x407C94: grub_cmd_ls (ls.c:284) ==2782220== by 0x4D7130: grub_extcmd_dispatcher (extcmd.c:55) ==2782220== by 0x4045A6: execute_command (grub-fstest.c:59) ==2782220== by 0x4045A6: fstest (grub-fstest.c:433) ==2782220== by 0x4045A6: main (grub-fstest.c:772) ==2782220== Uninitialised value was created by a heap allocation ==2782220== at 0x483C7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==2782220== by 0x4C0305: grub_malloc (mm.c:42) ==2782220== by 0x42C21D: grub_hfsplus_mount (hfsplus.c:239) ==2782220== by 0x42B8C5: grub_hfsplus_dir (hfsplus.c:958) ==2782220== by 0x4C1AE6: grub_fs_probe (fs.c:73) ==2782220== by 0x407C94: grub_ls_list_files (ls.c:186) ==2782220== by 0x407C94: grub_cmd_ls (ls.c:284) ==2782220== by 0x4D7130: grub_extcmd_dispatcher (extcmd.c:55) ==2782220== by 0x4045A6: execute_command (grub-fstest.c:59) ==2782220== by 0x4045A6: fstest (grub-fstest.c:433) ==2782220== by 0x4045A6: main (grub-fstest.c:772) This happens when the process of reading the catalog file goes sufficiently wrong that there's an attempt to read the extent overflow file, which has not yet been loaded. Keep track of when the extent overflow file is fully loaded and refuse to use it before then. The load valgrind doesn't like is btree->nodesize, and that's then used to allocate a data structure. It looks like there are subsequently a lot of reads based on that pointer so OOB reads are likely, and indeed crashes (albeit difficult-to-replicate ones) have been observed in fuzzing. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/hfsplus.c | 14 ++++++++++++++ include/grub/hfsplus.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c index 1c7791b..361e5be 100644 --- a/grub-core/fs/hfsplus.c +++ b/grub-core/fs/hfsplus.c @@ -177,6 +177,17 @@ grub_hfsplus_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) break; } + /* + * If the extent overflow tree isn't ready yet, we can't look + * in it. This can happen where the catalog file is corrupted. + */ + if (!node->data->extoverflow_tree_ready) + { + grub_error (GRUB_ERR_BAD_FS, + "attempted to read extent overflow tree before loading"); + break; + } + /* Set up the key to look for in the extent overflow file. */ extoverflow.extkey.fileid = node->fileid; extoverflow.extkey.type = 0; @@ -241,6 +252,7 @@ grub_hfsplus_mount (grub_disk_t disk) return 0; data->disk = disk; + data->extoverflow_tree_ready = 0; /* Read the bootblock. */ grub_disk_read (disk, GRUB_HFSPLUS_SBLOCK, 0, sizeof (volheader), @@ -357,6 +369,8 @@ grub_hfsplus_mount (grub_disk_t disk) if (data->extoverflow_tree.nodesize < 2) goto fail; + data->extoverflow_tree_ready = 1; + if (grub_hfsplus_read_file (&data->attr_tree.file, 0, 0, sizeof (struct grub_hfsplus_btnode), sizeof (header), (char *) &header) <= 0) diff --git a/include/grub/hfsplus.h b/include/grub/hfsplus.h index 117740a..e14dd31 100644 --- a/include/grub/hfsplus.h +++ b/include/grub/hfsplus.h @@ -113,6 +113,8 @@ struct grub_hfsplus_data struct grub_hfsplus_btree extoverflow_tree; struct grub_hfsplus_btree attr_tree; + int extoverflow_tree_ready; + struct grub_hfsplus_file dirroot; struct grub_hfsplus_file opened_file; -- 2.14.2 ================================================ FILE: boot/grub2/0106-fs-hfs-Disable-under-lockdown.patch ================================================ From 1c15848838d924552611247110723e2a1c17a5a1 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 18 Jan 2021 12:19:07 +1100 Subject: [PATCH] fs/hfs: Disable under lockdown HFS has issues such as infinite mutual recursion that are simply too complex to fix for such a legacy format. So simply do not permit it to be loaded under lockdown. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/hfs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/grub-core/fs/hfs.c b/grub-core/fs/hfs.c index 3fe842b..9a5b7bb 100644 --- a/grub-core/fs/hfs.c +++ b/grub-core/fs/hfs.c @@ -30,6 +30,7 @@ #include #include #include +#include GRUB_MOD_LICENSE ("GPLv3+"); @@ -1433,11 +1434,13 @@ static struct grub_fs grub_hfs_fs = GRUB_MOD_INIT(hfs) { - grub_fs_register (&grub_hfs_fs); + if (!grub_is_lockdown ()) + grub_fs_register (&grub_hfs_fs); my_mod = mod; } GRUB_MOD_FINI(hfs) { - grub_fs_unregister (&grub_hfs_fs); + if (!grub_is_lockdown()) + grub_fs_unregister (&grub_hfs_fs); } -- 2.14.2 ================================================ FILE: boot/grub2/0107-fs-sfs-Fix-over-read-of-root-object-name.patch ================================================ From 8d3ae59dee2930d640add3bba983006e1f5dd1b6 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 18 Jan 2021 14:34:58 +1100 Subject: [PATCH] fs/sfs: Fix over-read of root object name There's a read of the name of the root object that assumes that the name is nul-terminated within the root block. This isn't guaranteed - it seems SFS would require you to read multiple blocks to get a full name in general, but maybe that doesn't apply to the root object. Either way, figure out how much space is left in the root block and don't over-read it. This fixes some OOB reads. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/sfs.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/grub-core/fs/sfs.c b/grub-core/fs/sfs.c index de2b107..983e880 100644 --- a/grub-core/fs/sfs.c +++ b/grub-core/fs/sfs.c @@ -373,6 +373,7 @@ grub_sfs_mount (grub_disk_t disk) struct grub_sfs_objc *rootobjc; char *rootobjc_data = 0; grub_uint32_t blk; + unsigned int max_len; data = grub_malloc (sizeof (*data)); if (!data) @@ -421,7 +422,13 @@ grub_sfs_mount (grub_disk_t disk) data->diropen.data = data; data->diropen.cache = 0; data->disk = disk; - data->label = grub_strdup ((char *) (rootobjc->objects[0].filename)); + + /* We only read 1 block of data, so truncate the name if needed. */ + max_len = ((GRUB_DISK_SECTOR_SIZE << data->log_blocksize) + - 24 /* offsetof (struct grub_sfs_objc, objects) */ + - 25); /* offsetof (struct grub_sfs_obj, filename) */ + data->label = grub_zalloc (max_len + 1); + grub_strncpy (data->label, (char *) rootobjc->objects[0].filename, max_len); grub_free (rootobjc_data); return data; -- 2.14.2 ================================================ FILE: boot/grub2/0108-fs-jfs-Do-not-move-to-leaf-level-if-name-length-is-n.patch ================================================ From ffd5a46f68710e2781899d0be4d701429a5a817d Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 18 Jan 2021 14:51:11 +1100 Subject: [PATCH] fs/jfs: Do not move to leaf level if name length is negative Fuzzing JFS revealed crashes where a negative number would be passed to le_to_cpu16_copy(). There it would be cast to a large positive number and the copy would read and write off the end of the respective buffers. Catch this at the top as well as the bottom of the loop. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/jfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/fs/jfs.c b/grub-core/fs/jfs.c index d5a6d65..e5bbda6 100644 --- a/grub-core/fs/jfs.c +++ b/grub-core/fs/jfs.c @@ -567,7 +567,7 @@ grub_jfs_getent (struct grub_jfs_diropen *diro) /* Move down to the leaf level. */ nextent = leaf->next; - if (leaf->next != 255) + if (leaf->next != 255 && len > 0) do { next_leaf = &diro->next_leaf[nextent]; -- 2.14.2 ================================================ FILE: boot/grub2/0109-fs-jfs-Limit-the-extents-that-getblk-can-consider.patch ================================================ From bd0cf8148ccf721f6e39ffbd70f8abad0c8897f0 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 18 Jan 2021 14:57:17 +1100 Subject: [PATCH] fs/jfs: Limit the extents that getblk() can consider getblk() implicitly trusts that treehead->count is an accurate count of the number of extents. However, that value is read from disk and is not trustworthy, leading to OOB reads and crashes. I am not sure to what extent the data read from OOB can influence subsequent program execution. Require callers to pass in the maximum number of extents for which they have storage. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/jfs.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/grub-core/fs/jfs.c b/grub-core/fs/jfs.c index e5bbda6..804c42d 100644 --- a/grub-core/fs/jfs.c +++ b/grub-core/fs/jfs.c @@ -261,13 +261,15 @@ static grub_err_t grub_jfs_lookup_symlink (struct grub_jfs_data *data, grub_uint static grub_int64_t getblk (struct grub_jfs_treehead *treehead, struct grub_jfs_tree_extent *extents, + int max_extents, struct grub_jfs_data *data, grub_uint64_t blk) { int found = -1; int i; - for (i = 0; i < grub_le_to_cpu16 (treehead->count) - 2; i++) + for (i = 0; i < grub_le_to_cpu16 (treehead->count) - 2 && + i < max_extents; i++) { if (treehead->flags & GRUB_JFS_TREE_LEAF) { @@ -302,7 +304,7 @@ getblk (struct grub_jfs_treehead *treehead, << (grub_le_to_cpu16 (data->sblock.log2_blksz) - GRUB_DISK_SECTOR_BITS), 0, sizeof (*tree), (char *) tree)) - ret = getblk (&tree->treehead, &tree->extents[0], data, blk); + ret = getblk (&tree->treehead, &tree->extents[0], 254, data, blk); grub_free (tree); return ret; } @@ -316,7 +318,7 @@ static grub_int64_t grub_jfs_blkno (struct grub_jfs_data *data, struct grub_jfs_inode *inode, grub_uint64_t blk) { - return getblk (&inode->file.tree, &inode->file.extents[0], data, blk); + return getblk (&inode->file.tree, &inode->file.extents[0], 16, data, blk); } -- 2.14.2 ================================================ FILE: boot/grub2/0110-fs-jfs-Catch-infinite-recursion.patch ================================================ From 223120dd83745126cb232a0248c9a8901d7e350d Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 18 Jan 2021 15:47:24 +1100 Subject: [PATCH] fs/jfs: Catch infinite recursion It's possible with a fuzzed filesystem for JFS to keep getblk()-ing the same data over and over again, leading to stack exhaustion. Check if we'd be calling the function with exactly the same data as was passed in, and if so abort. I'm not sure what the performance impact of this is and am open to better ideas. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/jfs.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/grub-core/fs/jfs.c b/grub-core/fs/jfs.c index 804c42d..6f7c439 100644 --- a/grub-core/fs/jfs.c +++ b/grub-core/fs/jfs.c @@ -304,7 +304,16 @@ getblk (struct grub_jfs_treehead *treehead, << (grub_le_to_cpu16 (data->sblock.log2_blksz) - GRUB_DISK_SECTOR_BITS), 0, sizeof (*tree), (char *) tree)) - ret = getblk (&tree->treehead, &tree->extents[0], 254, data, blk); + { + if (grub_memcmp (&tree->treehead, treehead, sizeof (struct grub_jfs_treehead)) || + grub_memcmp (&tree->extents, extents, 254 * sizeof (struct grub_jfs_tree_extent))) + ret = getblk (&tree->treehead, &tree->extents[0], 254, data, blk); + else + { + grub_error (GRUB_ERR_BAD_FS, "jfs: infinite recursion detected"); + ret = -1; + } + } grub_free (tree); return ret; } -- 2.14.2 ================================================ FILE: boot/grub2/0111-fs-nilfs2-Reject-too-large-keys.patch ================================================ From 20ab8cb44bc140a1dedda82a3fccdd45e9bc6929 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 18 Jan 2021 16:49:09 +1100 Subject: [PATCH] fs/nilfs2: Reject too-large keys NILFS2 has up to 7 keys, per the data structure. Do not permit array indices in excess of that. This catches some OOB reads. I don't know how controllable the invalidly read data is or if that could be used later in the program. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/nilfs2.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/grub-core/fs/nilfs2.c b/grub-core/fs/nilfs2.c index 7ed148d..fee2242 100644 --- a/grub-core/fs/nilfs2.c +++ b/grub-core/fs/nilfs2.c @@ -569,6 +569,11 @@ grub_nilfs2_btree_lookup (struct grub_nilfs2_data *data, static inline grub_uint64_t grub_nilfs2_direct_lookup (struct grub_nilfs2_inode *inode, grub_uint64_t key) { + if (1 + key > 6) + { + grub_error (GRUB_ERR_BAD_FS, "key is too large"); + return 0xffffffffffffffff; + } return grub_le_to_cpu64 (inode->i_bmap[1 + key]); } @@ -584,7 +589,7 @@ grub_nilfs2_bmap_lookup (struct grub_nilfs2_data *data, { grub_uint64_t ptr; ptr = grub_nilfs2_direct_lookup (inode, key); - if (need_translate) + if (ptr != ((grub_uint64_t) 0xffffffffffffffff) && need_translate) ptr = grub_nilfs2_dat_translate (data, ptr); return ptr; } -- 2.14.2 ================================================ FILE: boot/grub2/0112-fs-nilfs2-Don-t-search-children-if-provided-number-i.patch ================================================ From 37c0eb05cdcc64c28d31c4ebd300f14d5239d05e Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 18 Jan 2021 16:49:44 +1100 Subject: [PATCH] fs/nilfs2: Don't search children if provided number is too large NILFS2 reads the number of children a node has from the node. Unfortunately, that's not trustworthy. Check if it's beyond what the filesystem permits and reject it if so. This blocks some OOB reads. I'm not sure how controllable the read is and what could be done with invalidly read data later on. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/nilfs2.c | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/grub-core/fs/nilfs2.c b/grub-core/fs/nilfs2.c index fee2242..43ac1ad 100644 --- a/grub-core/fs/nilfs2.c +++ b/grub-core/fs/nilfs2.c @@ -416,14 +416,34 @@ grub_nilfs2_btree_node_get_key (struct grub_nilfs2_btree_node *node, } static inline int -grub_nilfs2_btree_node_lookup (struct grub_nilfs2_btree_node *node, +grub_nilfs2_btree_node_nchildren_max (struct grub_nilfs2_data *data, + struct grub_nilfs2_btree_node *node) +{ + int node_children_max = ((NILFS2_BLOCK_SIZE (data) - + sizeof (struct grub_nilfs2_btree_node) - + NILFS_BTREE_NODE_EXTRA_PAD_SIZE) / + (sizeof (grub_uint64_t) + sizeof (grub_uint64_t))); + + return (node->bn_flags & NILFS_BTREE_NODE_ROOT) ? 3 : node_children_max; +} + +static inline int +grub_nilfs2_btree_node_lookup (struct grub_nilfs2_data *data, + struct grub_nilfs2_btree_node *node, grub_uint64_t key, int *indexp) { grub_uint64_t nkey; int index, low, high, s; low = 0; + high = grub_le_to_cpu16 (node->bn_nchildren) - 1; + if (high >= grub_nilfs2_btree_node_nchildren_max (data, node)) + { + grub_error (GRUB_ERR_BAD_FS, "too many children"); + return 0; + } + index = 0; s = 0; while (low <= high) @@ -459,18 +479,6 @@ grub_nilfs2_btree_node_lookup (struct grub_nilfs2_btree_node *node, return s == 0; } -static inline int -grub_nilfs2_btree_node_nchildren_max (struct grub_nilfs2_data *data, - struct grub_nilfs2_btree_node *node) -{ - int node_children_max = ((NILFS2_BLOCK_SIZE (data) - - sizeof (struct grub_nilfs2_btree_node) - - NILFS_BTREE_NODE_EXTRA_PAD_SIZE) / - (sizeof (grub_uint64_t) + sizeof (grub_uint64_t))); - - return (node->bn_flags & NILFS_BTREE_NODE_ROOT) ? 3 : node_children_max; -} - static inline grub_uint64_t * grub_nilfs2_btree_node_dptrs (struct grub_nilfs2_data *data, struct grub_nilfs2_btree_node *node) @@ -517,7 +525,7 @@ grub_nilfs2_btree_lookup (struct grub_nilfs2_data *data, node = grub_nilfs2_btree_get_root (inode); level = grub_nilfs2_btree_get_level (node); - found = grub_nilfs2_btree_node_lookup (node, key, &index); + found = grub_nilfs2_btree_node_lookup (data, node, key, &index); ptr = grub_nilfs2_btree_node_get_ptr (data, node, index); if (need_translate) ptr = grub_nilfs2_dat_translate (data, ptr); @@ -538,7 +546,7 @@ grub_nilfs2_btree_lookup (struct grub_nilfs2_data *data, } if (!found) - found = grub_nilfs2_btree_node_lookup (node, key, &index); + found = grub_nilfs2_btree_node_lookup (data, node, key, &index); else index = 0; -- 2.14.2 ================================================ FILE: boot/grub2/0113-fs-nilfs2-Properly-bail-on-errors-in-grub_nilfs2_btr.patch ================================================ From ca5d9ac206043b1fb4cb06259272fb1c5946bb6d Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 18 Jan 2021 17:06:19 +1100 Subject: [PATCH] fs/nilfs2: Properly bail on errors in grub_nilfs2_btree_node_lookup() We just introduced an error return in grub_nilfs2_btree_node_lookup(). Make sure the callers catch it. At the same time, make sure that grub_nilfs2_btree_node_lookup() always inits the index pointer passed to it. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/nilfs2.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/grub-core/fs/nilfs2.c b/grub-core/fs/nilfs2.c index 43ac1ad..aaba002 100644 --- a/grub-core/fs/nilfs2.c +++ b/grub-core/fs/nilfs2.c @@ -433,7 +433,7 @@ grub_nilfs2_btree_node_lookup (struct grub_nilfs2_data *data, grub_uint64_t key, int *indexp) { grub_uint64_t nkey; - int index, low, high, s; + int index = 0, low, high, s; low = 0; @@ -441,10 +441,10 @@ grub_nilfs2_btree_node_lookup (struct grub_nilfs2_data *data, if (high >= grub_nilfs2_btree_node_nchildren_max (data, node)) { grub_error (GRUB_ERR_BAD_FS, "too many children"); + *indexp = index; return 0; } - index = 0; s = 0; while (low <= high) { @@ -526,6 +526,10 @@ grub_nilfs2_btree_lookup (struct grub_nilfs2_data *data, level = grub_nilfs2_btree_get_level (node); found = grub_nilfs2_btree_node_lookup (data, node, key, &index); + + if (grub_errno != GRUB_ERR_NONE) + goto fail; + ptr = grub_nilfs2_btree_node_get_ptr (data, node, index); if (need_translate) ptr = grub_nilfs2_dat_translate (data, ptr); @@ -550,7 +554,8 @@ grub_nilfs2_btree_lookup (struct grub_nilfs2_data *data, else index = 0; - if (index < grub_nilfs2_btree_node_nchildren_max (data, node)) + if (index < grub_nilfs2_btree_node_nchildren_max (data, node) && + grub_errno == GRUB_ERR_NONE) { ptr = grub_nilfs2_btree_node_get_ptr (data, node, index); if (need_translate) -- 2.14.2 ================================================ FILE: boot/grub2/0114-io-gzio-Bail-if-gzio-tl-td-is-NULL.patch ================================================ From 3334a5e6c86f10e715cca3bf66ce0fc2f164b61b Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Wed, 13 Jan 2021 20:59:09 +1100 Subject: [PATCH] io/gzio: Bail if gzio->tl/td is NULL This is an ugly fix that doesn't address why gzio->tl comes to be NULL. However, it seems to be sufficient to patch up a bunch of NULL derefs. It would be good to revisit this in future and see if we can have a cleaner solution that addresses some of the causes of the unexpected NULL pointers. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/io/gzio.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c index 43d98a7..4a8eaea 100644 --- a/grub-core/io/gzio.c +++ b/grub-core/io/gzio.c @@ -669,6 +669,13 @@ inflate_codes_in_window (grub_gzio_t gzio) { if (! gzio->code_state) { + + if (gzio->tl == NULL) + { + grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "NULL gzio->tl"); + return 1; + } + NEEDBITS ((unsigned) gzio->bl); if ((e = (t = gzio->tl + ((unsigned) b & ml))->e) > 16) do @@ -707,6 +714,12 @@ inflate_codes_in_window (grub_gzio_t gzio) n = t->v.n + ((unsigned) b & mask_bits[e]); DUMPBITS (e); + if (gzio->td == NULL) + { + grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "NULL gzio->td"); + return 1; + } + /* decode distance of block to copy */ NEEDBITS ((unsigned) gzio->bd); if ((e = (t = gzio->td + ((unsigned) b & md))->e) > 16) @@ -917,6 +930,13 @@ init_dynamic_block (grub_gzio_t gzio) n = nl + nd; m = mask_bits[gzio->bl]; i = l = 0; + + if (gzio->tl == NULL) + { + grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "NULL gzio->tl"); + return; + } + while ((unsigned) i < n) { NEEDBITS ((unsigned) gzio->bl); -- 2.14.2 ================================================ FILE: boot/grub2/0115-io-gzio-Add-init_dynamic_block-clean-up-if-unpacking.patch ================================================ From 18490336d91da2b532277cba56473bfed1376fc4 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Thu, 21 Jan 2021 00:05:58 +1100 Subject: [PATCH] io/gzio: Add init_dynamic_block() clean up if unpacking codes fails init_dynamic_block() didn't clean up gzio->tl and td in some error paths. This left td pointing to part of tl. Then in grub_gzio_close(), when tl was freed the storage for td would also be freed. The code then attempts to free td explicitly, performing a UAF and then a double free. Explicitly clean up tl and td in the error paths. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/io/gzio.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c index 4a8eaea..4236f0f 100644 --- a/grub-core/io/gzio.c +++ b/grub-core/io/gzio.c @@ -953,7 +953,7 @@ init_dynamic_block (grub_gzio_t gzio) if ((unsigned) i + j > n) { grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "too many codes found"); - return; + goto fail; } while (j--) ll[i++] = l; @@ -966,7 +966,7 @@ init_dynamic_block (grub_gzio_t gzio) if ((unsigned) i + j > n) { grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "too many codes found"); - return; + goto fail; } while (j--) ll[i++] = 0; @@ -981,7 +981,7 @@ init_dynamic_block (grub_gzio_t gzio) if ((unsigned) i + j > n) { grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "too many codes found"); - return; + goto fail; } while (j--) ll[i++] = 0; @@ -1019,6 +1019,12 @@ init_dynamic_block (grub_gzio_t gzio) /* indicate we're now working on a block */ gzio->code_state = 0; gzio->block_len++; + return; + + fail: + huft_free (gzio->tl); + gzio->td = NULL; + gzio->tl = NULL; } -- 2.14.2 ================================================ FILE: boot/grub2/0116-io-gzio-Catch-missing-values-in-huft_build-and-bail.patch ================================================ From 4e76b08f7171a8603d74fcafb27409a91f578647 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Thu, 21 Jan 2021 12:20:49 +1100 Subject: [PATCH] io/gzio: Catch missing values in huft_build() and bail In huft_build(), "v" is a table of values in order of bit length. The code later (when setting up table entries in "r") assumes that all elements of this array corresponding to a code are initialized and less than N_MAX. However, it doesn't enforce this. With sufficiently manipulated inputs (e.g. from fuzzing), there can be elements of "v" that are not filled. Therefore a lookup into "e" or "d" will use an uninitialized value. This can lead to an invalid/OOB read on those values, often leading to a crash. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/io/gzio.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c index 4236f0f..19adebe 100644 --- a/grub-core/io/gzio.c +++ b/grub-core/io/gzio.c @@ -507,6 +507,7 @@ huft_build (unsigned *b, /* code lengths in bits (all assumed <= BMAX) */ } /* Make a table of values in order of bit lengths */ + grub_memset (v, N_MAX, ARRAY_SIZE (v)); p = b; i = 0; do @@ -588,11 +589,18 @@ huft_build (unsigned *b, /* code lengths in bits (all assumed <= BMAX) */ r.v.n = (ush) (*p); /* simple code is just the value */ p++; /* one compiler does not like *p++ */ } - else + else if (*p < N_MAX) { r.e = (uch) e[*p - s]; /* non-simple--look up in lists */ r.v.n = d[*p++ - s]; } + else + { + /* Detected an uninitialised value, abort. */ + if (h) + huft_free (u[0]); + return 2; + } /* fill code-like entries with r */ f = 1 << (k - w); -- 2.14.2 ================================================ FILE: boot/grub2/0117-io-gzio-Zero-gzio-tl-td-in-init_dynamic_block-if-huf.patch ================================================ From b5a2b59cc5b8f5ee7ba3b951e7693e402d5b3a6f Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Thu, 21 Jan 2021 12:22:28 +1100 Subject: [PATCH] io/gzio: Zero gzio->tl/td in init_dynamic_block() if huft_build() fails If huft_build() fails, gzio->tl or gzio->td could contain pointers that are no longer valid. Zero them out. This prevents a double free when grub_gzio_close() comes through and attempts to free them again. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/io/gzio.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c index 19adebe..aea86a0 100644 --- a/grub-core/io/gzio.c +++ b/grub-core/io/gzio.c @@ -1010,6 +1010,7 @@ init_dynamic_block (grub_gzio_t gzio) gzio->bl = lbits; if (huft_build (ll, nl, 257, cplens, cplext, &gzio->tl, &gzio->bl) != 0) { + gzio->tl = 0; grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "failed in building a Huffman code table"); return; @@ -1019,6 +1020,7 @@ init_dynamic_block (grub_gzio_t gzio) { huft_free (gzio->tl); gzio->tl = 0; + gzio->td = 0; grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, "failed in building a Huffman code table"); return; -- 2.14.2 ================================================ FILE: boot/grub2/0118-disk-lvm-Don-t-go-beyond-the-end-of-the-data-we-read.patch ================================================ From a8cc95de74ccc3ad090e8062ac335c844f13c9f4 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Thu, 21 Jan 2021 17:59:14 +1100 Subject: [PATCH] disk/lvm: Don't go beyond the end of the data we read from disk We unconditionally trusted offset_xl from the LVM label header, even if it told us that the PV header/disk locations were way off past the end of the data we read from disk. Require that the offset be sane, fixing an OOB read and crash. Fixes: CID 314367, CID 314371 Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/disk/lvm.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c index 139fafd..8136122 100644 --- a/grub-core/disk/lvm.c +++ b/grub-core/disk/lvm.c @@ -141,6 +141,20 @@ grub_lvm_detect (grub_disk_t disk, goto fail; } + /* + * We read a grub_lvm_pv_header and then 2 grub_lvm_disk_locns that + * immediately follow the PV header. Make sure we have space for both. + */ + if (grub_le_to_cpu32 (lh->offset_xl) >= + GRUB_LVM_LABEL_SIZE - sizeof (struct grub_lvm_pv_header) - + 2 * sizeof (struct grub_lvm_disk_locn)) + { +#ifdef GRUB_UTIL + grub_util_info ("LVM PV header/disk locations are beyond the end of the block"); +#endif + goto fail; + } + pvh = (struct grub_lvm_pv_header *) (buf + grub_le_to_cpu32(lh->offset_xl)); for (i = 0, j = 0; i < GRUB_LVM_ID_LEN; i++) -- 2.14.2 ================================================ FILE: boot/grub2/0119-disk-lvm-Don-t-blast-past-the-end-of-the-circular-me.patch ================================================ From 27a79bf38e6d050e497eb96a3fdddce43af25577 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Thu, 21 Jan 2021 18:19:51 +1100 Subject: [PATCH] disk/lvm: Don't blast past the end of the circular metadata buffer This catches at least some OOB reads, and it's possible I suppose that if 2 * mda_size is less than GRUB_LVM_MDA_HEADER_SIZE it might catch some OOB writes too (although that hasn't showed up as a crash in fuzzing yet). It's a bit ugly and I'd appreciate better suggestions. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/disk/lvm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c index 8136122..36da575 100644 --- a/grub-core/disk/lvm.c +++ b/grub-core/disk/lvm.c @@ -214,6 +214,16 @@ grub_lvm_detect (grub_disk_t disk, if (grub_le_to_cpu64 (rlocn->offset) + grub_le_to_cpu64 (rlocn->size) > grub_le_to_cpu64 (mdah->size)) { + if (2 * mda_size < GRUB_LVM_MDA_HEADER_SIZE || + (grub_le_to_cpu64 (rlocn->offset) + grub_le_to_cpu64 (rlocn->size) - + grub_le_to_cpu64 (mdah->size) > mda_size - GRUB_LVM_MDA_HEADER_SIZE)) + { +#ifdef GRUB_UTIL + grub_util_info ("cannot copy metadata wrap in circular buffer"); +#endif + goto fail2; + } + /* Metadata is circular. Copy the wrap in place. */ grub_memcpy (metadatabuf + mda_size, metadatabuf + GRUB_LVM_MDA_HEADER_SIZE, -- 2.14.2 ================================================ FILE: boot/grub2/0120-disk-lvm-Bail-on-missing-PV-list.patch ================================================ From 2958695c4cdc785de6ed708709af071a2d20afef Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Thu, 21 Jan 2021 18:54:29 +1100 Subject: [PATCH] disk/lvm: Bail on missing PV list There's an if block for the presence of "physical_volumes {", but if that block is absent, then p remains NULL and a NULL-deref will result when looking for logical volumes. It doesn't seem like LVM makes sense without physical volumes, so error out rather than crashing. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/disk/lvm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c index 36da575..8e560f3 100644 --- a/grub-core/disk/lvm.c +++ b/grub-core/disk/lvm.c @@ -370,6 +370,8 @@ grub_lvm_detect (grub_disk_t disk, goto fail4; } } + else + goto fail4; p = grub_strstr (p, "logical_volumes {"); if (p) -- 2.14.2 ================================================ FILE: boot/grub2/0121-disk-lvm-Do-not-crash-if-an-expected-string-is-not-f.patch ================================================ From db29073fc7aec71a40dabfc722a96ea9f3280907 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Thu, 21 Jan 2021 18:35:22 +1100 Subject: [PATCH] disk/lvm: Do not crash if an expected string is not found Clean up a bunch of cases where we could have strstr() fail and lead to us dereferencing NULL. We'll still leak memory in some cases (loops don't clean up allocations from earlier iterations if a later iteration fails) but at least we're not crashing. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/disk/lvm.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c index 8e560f3..bd5ae87 100644 --- a/grub-core/disk/lvm.c +++ b/grub-core/disk/lvm.c @@ -539,7 +539,16 @@ grub_lvm_detect (grub_disk_t disk, } if (seg->node_count != 1) - seg->stripe_size = grub_lvm_getvalue (&p, "stripe_size = "); + { + seg->stripe_size = grub_lvm_getvalue (&p, "stripe_size = "); + if (p == NULL) + { +#ifdef GRUB_UTIL + grub_util_info ("unknown stripe_size"); +#endif + goto lvs_segment_fail; + } + } seg->nodes = grub_calloc (seg->node_count, sizeof (*stripe)); @@ -559,7 +568,7 @@ grub_lvm_detect (grub_disk_t disk, { p = grub_strchr (p, '"'); if (p == NULL) - continue; + goto lvs_segment_fail2; q = ++p; while (*q != '"') q++; @@ -578,7 +587,10 @@ grub_lvm_detect (grub_disk_t disk, stripe->start = grub_lvm_getvalue (&p, ",") * vg->extent_size; if (p == NULL) - continue; + { + grub_free (stripe->name); + goto lvs_segment_fail2; + } stripe++; } @@ -615,7 +627,7 @@ grub_lvm_detect (grub_disk_t disk, p = grub_strchr (p, '"'); if (p == NULL) - continue; + goto lvs_segment_fail2; q = ++p; while (*q != '"') q++; @@ -703,7 +715,7 @@ grub_lvm_detect (grub_disk_t disk, p = p ? grub_strchr (p + 1, '"') : 0; p = p ? grub_strchr (p + 1, '"') : 0; if (p == NULL) - continue; + goto lvs_segment_fail2; q = ++p; while (*q != '"') q++; -- 2.14.2 ================================================ FILE: boot/grub2/0122-disk-lvm-Do-not-overread-metadata.patch ================================================ From 1155d7dffd3337942cb7583706b429d567d4db86 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Thu, 21 Jan 2021 18:35:22 +1100 Subject: [PATCH] disk/lvm: Do not overread metadata We could reach the end of valid metadata and not realize, leading to some buffer overreads. Check if we have reached the end and bail. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/disk/lvm.c | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c index bd5ae87..742ecd6 100644 --- a/grub-core/disk/lvm.c +++ b/grub-core/disk/lvm.c @@ -313,17 +313,23 @@ grub_lvm_detect (grub_disk_t disk, while (1) { grub_ssize_t s; - while (grub_isspace (*p)) + while (grub_isspace (*p) && p < mda_end) p++; + if (p == mda_end) + goto fail4; + if (*p == '}') break; pv = grub_zalloc (sizeof (*pv)); q = p; - while (*q != ' ') + while (*q != ' ' && q < mda_end) q++; + if (q == mda_end) + goto pvs_fail_noname; + s = q - p; pv->name = grub_malloc (s + 1); grub_memcpy (pv->name, p, s); @@ -366,6 +372,7 @@ grub_lvm_detect (grub_disk_t disk, continue; pvs_fail: grub_free (pv->name); + pvs_fail_noname: grub_free (pv); goto fail4; } @@ -387,18 +394,24 @@ grub_lvm_detect (grub_disk_t disk, struct grub_diskfilter_segment *seg; int is_pvmove; - while (grub_isspace (*p)) + while (grub_isspace (*p) && p < mda_end) p++; + if (p == mda_end) + goto fail4; + if (*p == '}') break; lv = grub_zalloc (sizeof (*lv)); q = p; - while (*q != ' ') + while (*q != ' ' && q < mda_end) q++; + if (q == mda_end) + goto lvs_fail; + s = q - p; lv->name = grub_strndup (p, s); if (!lv->name) @@ -570,9 +583,12 @@ grub_lvm_detect (grub_disk_t disk, if (p == NULL) goto lvs_segment_fail2; q = ++p; - while (*q != '"') + while (q < mda_end && *q != '"') q++; + if (q == mda_end) + goto lvs_segment_fail2; + s = q - p; stripe->name = grub_malloc (s + 1); @@ -629,9 +645,12 @@ grub_lvm_detect (grub_disk_t disk, if (p == NULL) goto lvs_segment_fail2; q = ++p; - while (*q != '"') + while (q < mda_end && *q != '"') q++; + if (q == mda_end) + goto lvs_segment_fail2; + s = q - p; lvname = grub_malloc (s + 1); -- 2.14.2 ================================================ FILE: boot/grub2/0123-disk-lvm-Sanitize-rlocn-offset-to-prevent-wild-read.patch ================================================ From 701293684742d00133b39bf957d3642c81dc83f4 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Fri, 22 Jan 2021 14:43:58 +1100 Subject: [PATCH] disk/lvm: Sanitize rlocn->offset to prevent wild read rlocn->offset is read directly from disk and added to the metadatabuf pointer to create a pointer to a block of metadata. It's a 64-bit quantity so as long as you don't overflow you can set subsequent pointers to point anywhere in memory. Require that rlocn->offset fits within the metadata buffer size. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/disk/lvm.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c index 742ecd6..ed0712f 100644 --- a/grub-core/disk/lvm.c +++ b/grub-core/disk/lvm.c @@ -211,6 +211,14 @@ grub_lvm_detect (grub_disk_t disk, } rlocn = mdah->raw_locns; + if (grub_le_to_cpu64 (rlocn->offset) >= grub_le_to_cpu64 (mda_size)) + { +#ifdef GRUB_UTIL + grub_util_info ("metadata offset is beyond end of metadata area"); +#endif + goto fail2; + } + if (grub_le_to_cpu64 (rlocn->offset) + grub_le_to_cpu64 (rlocn->size) > grub_le_to_cpu64 (mdah->size)) { -- 2.14.2 ================================================ FILE: boot/grub2/0124-disk-lvm-Do-not-allow-a-LV-to-be-it-s-own-segment-s-.patch ================================================ From e18a00073890021362b4a48097672f1d4b340d3c Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Fri, 22 Jan 2021 14:42:21 +1100 Subject: [PATCH] disk/lvm: Do not allow a LV to be it's own segment's node's LV This prevents infinite recursion in the diskfilter verification code. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/disk/lvm.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c index ed0712f..81dc375 100644 --- a/grub-core/disk/lvm.c +++ b/grub-core/disk/lvm.c @@ -838,9 +838,13 @@ grub_lvm_detect (grub_disk_t disk, } if (lv1->segments[i].nodes[j].pv == NULL) for (lv2 = vg->lvs; lv2; lv2 = lv2->next) - if (grub_strcmp (lv2->name, - lv1->segments[i].nodes[j].name) == 0) - lv1->segments[i].nodes[j].lv = lv2; + { + if (lv1 == lv2) + continue; + if (grub_strcmp (lv2->name, + lv1->segments[i].nodes[j].name) == 0) + lv1->segments[i].nodes[j].lv = lv2; + } } } -- 2.14.2 ================================================ FILE: boot/grub2/0125-fs-btrfs-Validate-the-number-of-stripes-parities-in-.patch ================================================ From b88a82e78cdd0ab8e0339c1c3f9564c4d8c0c969 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 18 Jan 2021 17:17:16 +1100 Subject: [PATCH] fs/btrfs: Validate the number of stripes/parities in RAID5/6 This prevents a divide by zero if nstripes == nparities, and also prevents propagation of invalid values if nstripes ends up less than nparities. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/btrfs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c index 2b65bd5..e4e87ba 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -1076,6 +1076,9 @@ grub_btrfs_read_logical (struct grub_btrfs_data *data, grub_disk_addr_t addr, * stripen is computed without the parities * (0 for A0, A1, A2, 1 for B0, B1, B2, etc.). */ + if (nparities >= nstripes) + return grub_error (GRUB_ERR_BAD_FS, + "invalid RAID5/6: nparities >= nstripes"); high = grub_divmod64 (stripe_nr, nstripes - nparities, &stripen); /* -- 2.14.2 ================================================ FILE: boot/grub2/0126-fs-btrfs-Squash-some-uninitialized-reads.patch ================================================ From b911884dd707ba1e6f641eb17857df3155013a45 Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Mon, 18 Jan 2021 17:27:18 +1100 Subject: [PATCH] fs/btrfs: Squash some uninitialized reads We need to check errors before calling into a function that uses the result. Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/fs/btrfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c index e4e87ba..d489cb0 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -381,9 +381,9 @@ next (struct grub_btrfs_data *data, err = grub_btrfs_read_logical (data, grub_le_to_cpu64 (node.addr), &head, sizeof (head), 0); - check_btrfs_header (data, &head, grub_le_to_cpu64 (node.addr)); if (err) return -err; + check_btrfs_header (data, &head, grub_le_to_cpu64 (node.addr)); save_ref (desc, grub_le_to_cpu64 (node.addr), 0, grub_le_to_cpu32 (head.nitems), !head.level); @@ -443,9 +443,9 @@ lower_bound (struct grub_btrfs_data *data, /* FIXME: preread few nodes into buffer. */ err = grub_btrfs_read_logical (data, addr, &head, sizeof (head), recursion_depth + 1); - check_btrfs_header (data, &head, addr); if (err) return err; + check_btrfs_header (data, &head, addr); addr += sizeof (head); if (head.level) { -- 2.14.2 ================================================ FILE: boot/grub2/0127-kern-parser-Fix-a-memory-leak.patch ================================================ From c6c426e5ab6ea715153b72584de6bd8c82f698ec Mon Sep 17 00:00:00 2001 From: Chris Coulson Date: Wed, 18 Nov 2020 00:59:24 +0000 Subject: [PATCH] kern/parser: Fix a memory leak The getline() function supplied to grub_parser_split_cmdline() returns a newly allocated buffer and can be called multiple times, but the returned buffer is never freed. Signed-off-by: Chris Coulson Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/parser.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c index d1cf061..39e4df6 100644 --- a/grub-core/kern/parser.c +++ b/grub-core/kern/parser.c @@ -140,6 +140,7 @@ grub_parser_split_cmdline (const char *cmdline, char buffer[1024]; char *bp = buffer; char *rd = (char *) cmdline; + char *rp = rd; char varname[200]; char *vp = varname; char *args; @@ -149,10 +150,18 @@ grub_parser_split_cmdline (const char *cmdline, *argv = NULL; do { - if (!rd || !*rd) + if (rp == NULL || *rp == '\0') { + if (rd != cmdline) + { + grub_free (rd); + rd = rp = NULL; + } if (getline) - getline (&rd, 1, getline_data); + { + getline (&rd, 1, getline_data); + rp = rd; + } else break; } @@ -160,12 +169,12 @@ grub_parser_split_cmdline (const char *cmdline, if (!rd) break; - for (; *rd; rd++) + for (; *rp != '\0'; rp++) { grub_parser_state_t newstate; char use; - newstate = grub_parser_cmdline_state (state, *rd, &use); + newstate = grub_parser_cmdline_state (state, *rp, &use); /* If a variable was being processed and this character does not describe the variable anymore, write the variable to @@ -198,6 +207,9 @@ grub_parser_split_cmdline (const char *cmdline, } while (state != GRUB_PARSER_STATE_TEXT && !check_varstate (state)); + if (rd != cmdline) + grub_free (rd); + /* A special case for when the last character was part of a variable. */ add_var (varname, &bp, &vp, state, GRUB_PARSER_STATE_TEXT); -- 2.14.2 ================================================ FILE: boot/grub2/0128-kern-parser-Introduce-process_char-helper.patch ================================================ From b1c9e9e889e4273fb15712051c887e6078511448 Mon Sep 17 00:00:00 2001 From: Chris Coulson Date: Tue, 5 Jan 2021 22:17:28 +0000 Subject: [PATCH] kern/parser: Introduce process_char() helper grub_parser_split_cmdline() iterates over each command line character. In order to add error checking and to simplify the subsequent error handling, split the character processing in to a separate function. Signed-off-by: Chris Coulson Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/parser.c | 74 ++++++++++++++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 28 deletions(-) diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c index 39e4df6..0d3582b 100644 --- a/grub-core/kern/parser.c +++ b/grub-core/kern/parser.c @@ -1,7 +1,7 @@ /* parser.c - the part of the parser that can return partial tokens */ /* * GRUB -- GRand Unified Bootloader - * Copyright (C) 2005,2007,2009 Free Software Foundation, Inc. + * Copyright (C) 2005,2007,2009,2021 Free Software Foundation, Inc. * * GRUB is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -129,6 +129,46 @@ add_var (char *varname, char **bp, char **vp, *((*bp)++) = *val; } +static grub_err_t +process_char (char c, char *buffer, char **bp, char *varname, char **vp, + grub_parser_state_t state, int *argc, + grub_parser_state_t *newstate) +{ + char use; + + *newstate = grub_parser_cmdline_state (state, c, &use); + + /* + * If a variable was being processed and this character does + * not describe the variable anymore, write the variable to + * the buffer. + */ + add_var (varname, bp, vp, state, *newstate); + + if (check_varstate (*newstate)) + { + if (use) + *((*vp)++) = use; + } + else if (*newstate == GRUB_PARSER_STATE_TEXT && + state != GRUB_PARSER_STATE_ESC && grub_isspace (use)) + { + /* + * Don't add more than one argument if multiple + * spaces are used. + */ + if (*bp != buffer && *((*bp) - 1) != '\0') + { + *((*bp)++) = '\0'; + (*argc)++; + } + } + else if (use) + *((*bp)++) = use; + + return GRUB_ERR_NONE; +} + grub_err_t grub_parser_split_cmdline (const char *cmdline, grub_reader_getline_t getline, void *getline_data, @@ -172,35 +212,13 @@ grub_parser_split_cmdline (const char *cmdline, for (; *rp != '\0'; rp++) { grub_parser_state_t newstate; - char use; - - newstate = grub_parser_cmdline_state (state, *rp, &use); - /* If a variable was being processed and this character does - not describe the variable anymore, write the variable to - the buffer. */ - add_var (varname, &bp, &vp, state, newstate); - - if (check_varstate (newstate)) - { - if (use) - *(vp++) = use; - } - else + if (process_char (*rp, buffer, &bp, varname, &vp, state, argc, + &newstate) != GRUB_ERR_NONE) { - if (newstate == GRUB_PARSER_STATE_TEXT - && state != GRUB_PARSER_STATE_ESC && grub_isspace (use)) - { - /* Don't add more than one argument if multiple - spaces are used. */ - if (bp != buffer && *(bp - 1)) - { - *(bp++) = '\0'; - (*argc)++; - } - } - else if (use) - *(bp++) = use; + if (rd != cmdline) + grub_free (rd); + return grub_errno; } state = newstate; } -- 2.14.2 ================================================ FILE: boot/grub2/0129-kern-parser-Introduce-terminate_arg-helper.patch ================================================ From 3d157bbd06506b170fde5ec23980c4bf9f7660e2 Mon Sep 17 00:00:00 2001 From: Chris Coulson Date: Thu, 7 Jan 2021 19:53:55 +0000 Subject: [PATCH] kern/parser: Introduce terminate_arg() helper process_char() and grub_parser_split_cmdline() use similar code for terminating the most recent argument. Add a helper function for this. Signed-off-by: Chris Coulson Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/parser.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c index 0d3582b..572c670 100644 --- a/grub-core/kern/parser.c +++ b/grub-core/kern/parser.c @@ -129,6 +129,16 @@ add_var (char *varname, char **bp, char **vp, *((*bp)++) = *val; } +static void +terminate_arg (char *buffer, char **bp, int *argc) +{ + if (*bp != buffer && *((*bp) - 1) != '\0') + { + *((*bp)++) = '\0'; + (*argc)++; + } +} + static grub_err_t process_char (char c, char *buffer, char **bp, char *varname, char **vp, grub_parser_state_t state, int *argc, @@ -157,11 +167,7 @@ process_char (char c, char *buffer, char **bp, char *varname, char **vp, * Don't add more than one argument if multiple * spaces are used. */ - if (*bp != buffer && *((*bp) - 1) != '\0') - { - *((*bp)++) = '\0'; - (*argc)++; - } + terminate_arg (buffer, bp, argc); } else if (use) *((*bp)++) = use; @@ -232,11 +238,8 @@ grub_parser_split_cmdline (const char *cmdline, variable. */ add_var (varname, &bp, &vp, state, GRUB_PARSER_STATE_TEXT); - if (bp != buffer && *(bp - 1)) - { - *(bp++) = '\0'; - (*argc)++; - } + /* Ensure that the last argument is terminated. */ + terminate_arg (buffer, &bp, argc); /* If there are no args, then we're done. */ if (!*argc) -- 2.14.2 ================================================ FILE: boot/grub2/0130-kern-parser-Refactor-grub_parser_split_cmdline-clean.patch ================================================ From 8bc817014ce3d7a498db44eae33c8b90e2430926 Mon Sep 17 00:00:00 2001 From: Chris Coulson Date: Wed, 6 Jan 2021 13:54:26 +0000 Subject: [PATCH] kern/parser: Refactor grub_parser_split_cmdline() cleanup Introduce a common function epilogue used for cleaning up on all return paths, which will simplify additional error handling to be introduced in a subsequent commit. Signed-off-by: Chris Coulson Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/parser.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c index 572c670..e010eaa 100644 --- a/grub-core/kern/parser.c +++ b/grub-core/kern/parser.c @@ -221,19 +221,13 @@ grub_parser_split_cmdline (const char *cmdline, if (process_char (*rp, buffer, &bp, varname, &vp, state, argc, &newstate) != GRUB_ERR_NONE) - { - if (rd != cmdline) - grub_free (rd); - return grub_errno; - } + goto fail; + state = newstate; } } while (state != GRUB_PARSER_STATE_TEXT && !check_varstate (state)); - if (rd != cmdline) - grub_free (rd); - /* A special case for when the last character was part of a variable. */ add_var (varname, &bp, &vp, state, GRUB_PARSER_STATE_TEXT); @@ -243,20 +237,20 @@ grub_parser_split_cmdline (const char *cmdline, /* If there are no args, then we're done. */ if (!*argc) - return 0; + { + grub_errno = GRUB_ERR_NONE; + goto out; + } /* Reserve memory for the return values. */ args = grub_malloc (bp - buffer); if (!args) - return grub_errno; + goto fail; grub_memcpy (args, buffer, bp - buffer); *argv = grub_calloc (*argc + 1, sizeof (char *)); if (!*argv) - { - grub_free (args); - return grub_errno; - } + goto fail; /* The arguments are separated with 0's, setup argv so it points to the right values. */ @@ -269,7 +263,18 @@ grub_parser_split_cmdline (const char *cmdline, bp++; } - return 0; + grub_errno = GRUB_ERR_NONE; + + out: + if (rd != cmdline) + grub_free (rd); + + return grub_errno; + + fail: + grub_free (*argv); + grub_free (args); + goto out; } /* Helper for grub_parser_execute. */ -- 2.14.2 ================================================ FILE: boot/grub2/0131-kern-buffer-Add-variable-sized-heap-buffer.patch ================================================ From 030fb6c4fa354cdbd6a8d6903dfed5d36eaf3cb2 Mon Sep 17 00:00:00 2001 From: Chris Coulson Date: Thu, 7 Jan 2021 15:15:43 +0000 Subject: [PATCH] kern/buffer: Add variable sized heap buffer Add a new variable sized heap buffer type (grub_buffer_t) with simple operations for appending data, accessing the data and maintaining a read cursor. Signed-off-by: Chris Coulson Reviewed-by: Daniel Kiper [Add changes to generated files] Signed-off-by: Stefan Sørensen --- grub-core/Makefile.core.am | 46 +++--- grub-core/Makefile.core.def | 1 + grub-core/Makefile.in | 341 +++++++++++++++++++++++++------------------- grub-core/kern/buffer.c | 117 +++++++++++++++ include/grub/buffer.h | 144 +++++++++++++++++++ po/POTFILES.in | 2 + 6 files changed, 485 insertions(+), 166 deletions(-) create mode 100644 grub-core/kern/buffer.c create mode 100644 include/grub/buffer.h diff --git a/grub-core/Makefile.core.am b/grub-core/Makefile.core.am index fbfb627..2fa9a8e 100644 --- a/grub-core/Makefile.core.am +++ b/grub-core/Makefile.core.am @@ -22334,7 +22334,7 @@ gcry_whirlpool.marker: $(gcry_whirlpool_module_SOURCES) $(nodist_gcry_whirlpool_ if COND_emu platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = -kernel_exec_SOURCES += disk/host.c kern/emu/cache_s.S kern/emu/hostdisk.c osdep/unix/hostdisk.c osdep/exec.c osdep/devmapper/hostdisk.c osdep/hostdisk.c kern/emu/hostfs.c kern/emu/main.c kern/emu/argp_common.c kern/emu/misc.c kern/emu/mm.c kern/emu/time.c kern/emu/cache.c osdep/emuconsole.c osdep/dl.c osdep/sleep.c osdep/init.c osdep/emunet.c osdep/cputime.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += disk/host.c kern/emu/cache_s.S kern/emu/hostdisk.c osdep/unix/hostdisk.c osdep/exec.c osdep/devmapper/hostdisk.c osdep/hostdisk.c kern/emu/hostfs.c kern/emu/main.c kern/emu/argp_common.c kern/emu/misc.c kern/emu/mm.c kern/emu/time.c kern/emu/cache.c osdep/emuconsole.c osdep/dl.c osdep/sleep.c osdep/init.c osdep/emunet.c osdep/cputime.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) $(CFLAGS_GNULIB) @@ -22356,7 +22356,7 @@ endif if COND_i386_pc platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/pc/startup.S -kernel_exec_SOURCES += kern/i386/pc/init.c kern/i386/pc/mmap.c term/i386/pc/console.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/i386/pc/init.c kern/i386/pc/mmap.c term/i386/pc/console.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22378,7 +22378,7 @@ endif if COND_i386_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/efi/startup.S -kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/i386/efi/init.c bus/pci.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/i386/efi/init.c bus/pci.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22400,7 +22400,7 @@ endif if COND_i386_qemu platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/qemu/startup.S -kernel_exec_SOURCES += kern/i386/qemu/init.c bus/pci.c kern/vga_init.c kern/i386/qemu/mmap.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/i386/qemu/init.c bus/pci.c kern/vga_init.c kern/i386/qemu/mmap.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22422,7 +22422,7 @@ endif if COND_i386_coreboot platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/coreboot/startup.S -kernel_exec_SOURCES += kern/i386/coreboot/init.c kern/i386/pc/acpi.c kern/acpi.c kern/i386/tsc_pmtimer.c kern/i386/coreboot/cbtable.c video/coreboot/cbfb.c kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/i386/coreboot/init.c kern/i386/pc/acpi.c kern/acpi.c kern/i386/tsc_pmtimer.c kern/i386/coreboot/cbtable.c video/coreboot/cbfb.c kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22444,7 +22444,7 @@ endif if COND_i386_multiboot platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/coreboot/startup.S -kernel_exec_SOURCES += kern/i386/coreboot/init.c kern/i386/pc/acpi.c kern/acpi.c kern/i386/multiboot_mmap.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/i386/coreboot/init.c kern/i386/pc/acpi.c kern/acpi.c kern/i386/multiboot_mmap.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22466,7 +22466,7 @@ endif if COND_i386_ieee1275 platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/ieee1275/startup.S -kernel_exec_SOURCES += disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22488,7 +22488,7 @@ endif if COND_x86_64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/x86_64/efi/startup.S -kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/x86_64/efi/callwrap.S kern/i386/efi/init.c bus/pci.c kern/x86_64/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/x86_64/efi/callwrap.S kern/i386/efi/init.c bus/pci.c kern/x86_64/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22510,7 +22510,7 @@ endif if COND_i386_xen platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/xen/startup.S -kernel_exec_SOURCES += kern/i386/dl.c kern/i386/xen/hypercall.S kern/i386/tsc.c kern/i386/xen/tsc.c kern/xen/init.c term/xen/console.c disk/xen/xendisk.c commands/boot.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/i386/dl.c kern/i386/xen/hypercall.S kern/i386/tsc.c kern/i386/xen/tsc.c kern/xen/init.c term/xen/console.c disk/xen/xendisk.c commands/boot.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22532,7 +22532,7 @@ endif if COND_x86_64_xen platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/x86_64/xen/startup.S -kernel_exec_SOURCES += kern/x86_64/dl.c kern/x86_64/xen/hypercall.S kern/i386/tsc.c kern/i386/xen/tsc.c kern/xen/init.c term/xen/console.c disk/xen/xendisk.c commands/boot.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/x86_64/dl.c kern/x86_64/xen/hypercall.S kern/i386/tsc.c kern/i386/xen/tsc.c kern/xen/init.c term/xen/console.c disk/xen/xendisk.c commands/boot.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22554,7 +22554,7 @@ endif if COND_i386_xen_pvh platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/i386/xen/startup_pvh.S -kernel_exec_SOURCES += kern/i386/dl.c commands/boot.c disk/xen/xendisk.c kern/i386/tsc.c kern/i386/xen/tsc.c kern/i386/xen/pvh.c kern/xen/init.c term/xen/console.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/i386/dl.c commands/boot.c disk/xen/xendisk.c kern/i386/tsc.c kern/i386/xen/tsc.c kern/i386/xen/pvh.c kern/xen/init.c term/xen/console.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22576,7 +22576,7 @@ endif if COND_mips_loongson platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/mips/startup.S -kernel_exec_SOURCES += term/ns8250.c bus/bonito.c bus/cs5536.c bus/pci.c kern/mips/loongson/init.c term/at_keyboard.c term/ps2.c commands/boot.c term/serial.c video/sm712.c video/sis315pro.c video/radeon_fuloong2e.c video/radeon_yeeloong3a.c commands/keylayouts.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += term/ns8250.c bus/bonito.c bus/cs5536.c bus/pci.c kern/mips/loongson/init.c term/at_keyboard.c term/ps2.c commands/boot.c term/serial.c video/sm712.c video/sis315pro.c video/radeon_fuloong2e.c video/radeon_yeeloong3a.c commands/keylayouts.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22598,7 +22598,7 @@ endif if COND_sparc64_ieee1275 platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/sparc64/ieee1275/crt0.S -kernel_exec_SOURCES += kern/sparc64/cache.S kern/sparc64/dl.c kern/sparc64/ieee1275/ieee1275.c disk/ieee1275/obdisk.c disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/sparc64/cache.S kern/sparc64/dl.c kern/sparc64/ieee1275/ieee1275.c disk/ieee1275/obdisk.c disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22620,7 +22620,7 @@ endif if COND_powerpc_ieee1275 platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/powerpc/ieee1275/startup.S -kernel_exec_SOURCES += kern/powerpc/cache.S kern/powerpc/dl.c kern/powerpc/compiler-rt.S disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/powerpc/cache.S kern/powerpc/dl.c kern/powerpc/compiler-rt.S disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22642,7 +22642,7 @@ endif if COND_mips_arc platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/mips/startup.S -kernel_exec_SOURCES += kern/mips/arc/init.c term/arc/console.c disk/arc/arcdisk.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/mips/arc/init.c term/arc/console.c disk/arc/arcdisk.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22664,7 +22664,7 @@ endif if COND_ia64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = -kernel_exec_SOURCES += kern/ia64/efi/startup.S kern/ia64/efi/init.c kern/ia64/dl.c kern/ia64/dl_helper.c kern/ia64/cache.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/ia64/efi/startup.S kern/ia64/efi/init.c kern/ia64/dl.c kern/ia64/dl_helper.c kern/ia64/cache.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) -fno-builtin -fpic -minline-int-divide-max-throughput @@ -22686,7 +22686,7 @@ endif if COND_mips_qemu_mips platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/mips/startup.S -kernel_exec_SOURCES += kern/mips/qemu_mips/init.c term/ns8250.c term/serial.c term/at_keyboard.c term/ps2.c commands/boot.c commands/keylayouts.c term/i386/pc/vga_text.c kern/vga_init.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/mips/qemu_mips/init.c term/ns8250.c term/serial.c term/at_keyboard.c term/ps2.c commands/boot.c commands/keylayouts.c term/i386/pc/vga_text.c kern/vga_init.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22708,7 +22708,7 @@ endif if COND_arm_uboot platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/arm/startup.S -kernel_exec_SOURCES += kern/arm/uboot/init.c kern/arm/uboot/uboot.S disk/uboot/ubootdisk.c kern/uboot/uboot.c kern/uboot/init.c kern/uboot/hw.c term/uboot/console.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/arm/uboot/init.c kern/arm/uboot/uboot.S disk/uboot/ubootdisk.c kern/uboot/uboot.c kern/uboot/init.c kern/uboot/hw.c term/uboot/console.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22730,7 +22730,7 @@ endif if COND_arm_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/arm/efi/startup.S -kernel_exec_SOURCES += kern/arm/efi/init.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/arm/efi/init.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22752,7 +22752,7 @@ endif if COND_arm64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/arm64/efi/startup.S -kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22774,7 +22774,7 @@ endif if COND_arm_coreboot platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/arm/startup.S -kernel_exec_SOURCES += kern/arm/coreboot/init.c kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c commands/keylayouts.c kern/arm/coreboot/dma.c kern/arm/coreboot/cbtable.c video/coreboot/cbfb.c kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/arm/coreboot/init.c kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c commands/keylayouts.c kern/arm/coreboot/dma.c kern/arm/coreboot/cbtable.c video/coreboot/cbfb.c kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22796,7 +22796,7 @@ endif if COND_riscv32_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/riscv/efi/startup.S -kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) @@ -22818,7 +22818,7 @@ endif if COND_riscv64_efi platform_PROGRAMS += kernel.exec kernel_exec_SOURCES = kern/riscv/efi/startup.S -kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c +kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c kern/verifiers.c nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources kernel_exec_LDADD = kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def index ee8dc55..291b58a 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -123,6 +123,7 @@ kernel = { riscv32_efi_startup = kern/riscv/efi/startup.S; riscv64_efi_startup = kern/riscv/efi/startup.S; + common = kern/buffer.c; common = kern/command.c; common = kern/corecmd.c; common = kern/device.c; diff --git a/grub-core/Makefile.in b/grub-core/Makefile.in index ac400ea..1f8133b 100644 --- a/grub-core/Makefile.in +++ b/grub-core/Makefile.in @@ -10459,12 +10459,12 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c \ kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c \ kern/compiler-rt.c kern/mm.c kern/time.c \ - kern/generic/millisleep.c kern/command.c kern/corecmd.c \ - kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c \ - kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c \ - kern/parser.c kern/partition.c kern/rescue_parser.c \ - kern/rescue_reader.c kern/term.c kern/verifiers.c \ - kern/arm/startup.S kern/arm/coreboot/init.c \ + kern/generic/millisleep.c kern/buffer.c kern/command.c \ + kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c \ + kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c \ + kern/misc.c kern/parser.c kern/partition.c \ + kern/rescue_parser.c kern/rescue_reader.c kern/term.c \ + kern/verifiers.c kern/arm/startup.S kern/arm/coreboot/init.c \ kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S \ lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c \ term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c \ @@ -10538,6 +10538,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -10578,6 +10579,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -10616,6 +10618,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -10653,6 +10656,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -10691,6 +10695,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -10728,6 +10733,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -10768,6 +10774,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -10822,6 +10829,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -10856,6 +10864,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -10893,6 +10902,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -10928,6 +10938,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -10963,6 +10974,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -10994,6 +11006,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -11023,6 +11036,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -11054,6 +11068,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -11091,6 +11106,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -11130,6 +11146,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -11174,6 +11191,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -11216,6 +11234,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ term/kernel_exec-tparm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ commands/kernel_exec-extcmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ lib/kernel_exec-arg.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -11257,6 +11276,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -11298,6 +11318,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -11353,6 +11374,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -11391,6 +11413,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \ @COND_arm64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/generic/kernel_exec-millisleep.$(OBJEXT) \ +@COND_arm64_efi_TRUE@ kern/kernel_exec-buffer.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-command.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-corecmd.$(OBJEXT) \ @COND_arm64_efi_TRUE@ kern/kernel_exec-device.$(OBJEXT) \ @@ -25607,11 +25630,12 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_arm64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \ @COND_arm64_efi_TRUE@ kern/lockdown.c kern/compiler-rt.c \ @COND_arm64_efi_TRUE@ kern/mm.c kern/time.c \ -@COND_arm64_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ -@COND_arm64_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ -@COND_arm64_efi_TRUE@ kern/dl.c kern/env.c kern/err.c \ -@COND_arm64_efi_TRUE@ kern/file.c kern/fs.c kern/list.c \ -@COND_arm64_efi_TRUE@ kern/main.c kern/misc.c kern/parser.c \ +@COND_arm64_efi_TRUE@ kern/generic/millisleep.c kern/buffer.c \ +@COND_arm64_efi_TRUE@ kern/command.c kern/corecmd.c \ +@COND_arm64_efi_TRUE@ kern/device.c kern/disk.c kern/dl.c \ +@COND_arm64_efi_TRUE@ kern/env.c kern/err.c kern/file.c \ +@COND_arm64_efi_TRUE@ kern/fs.c kern/list.c kern/main.c \ +@COND_arm64_efi_TRUE@ kern/misc.c kern/parser.c \ @COND_arm64_efi_TRUE@ kern/partition.c kern/rescue_parser.c \ @COND_arm64_efi_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_arm64_efi_TRUE@ kern/verifiers.c @@ -25639,12 +25663,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_arm_coreboot_TRUE@ kern/arm/compiler-rt.S lib/division.c \ @COND_arm_coreboot_TRUE@ kern/compiler-rt.c kern/mm.c \ @COND_arm_coreboot_TRUE@ kern/time.c kern/generic/millisleep.c \ -@COND_arm_coreboot_TRUE@ kern/command.c kern/corecmd.c \ -@COND_arm_coreboot_TRUE@ kern/device.c kern/disk.c kern/dl.c \ -@COND_arm_coreboot_TRUE@ kern/env.c kern/err.c kern/file.c \ -@COND_arm_coreboot_TRUE@ kern/fs.c kern/list.c kern/main.c \ -@COND_arm_coreboot_TRUE@ kern/misc.c kern/parser.c \ -@COND_arm_coreboot_TRUE@ kern/partition.c kern/rescue_parser.c \ +@COND_arm_coreboot_TRUE@ kern/buffer.c kern/command.c \ +@COND_arm_coreboot_TRUE@ kern/corecmd.c kern/device.c \ +@COND_arm_coreboot_TRUE@ kern/disk.c kern/dl.c kern/env.c \ +@COND_arm_coreboot_TRUE@ kern/err.c kern/file.c kern/fs.c \ +@COND_arm_coreboot_TRUE@ kern/list.c kern/main.c kern/misc.c \ +@COND_arm_coreboot_TRUE@ kern/parser.c kern/partition.c \ +@COND_arm_coreboot_TRUE@ kern/rescue_parser.c \ @COND_arm_coreboot_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_arm_coreboot_TRUE@ kern/verifiers.c @COND_arm_efi_TRUE@kernel_exec_SOURCES = kern/arm/efi/startup.S \ @@ -25659,13 +25684,14 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_arm_efi_TRUE@ kern/efi/acpi.c kern/efi/sb.c \ @COND_arm_efi_TRUE@ kern/lockdown.c kern/compiler-rt.c \ @COND_arm_efi_TRUE@ kern/mm.c kern/time.c \ -@COND_arm_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ -@COND_arm_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ -@COND_arm_efi_TRUE@ kern/dl.c kern/env.c kern/err.c kern/file.c \ -@COND_arm_efi_TRUE@ kern/fs.c kern/list.c kern/main.c \ -@COND_arm_efi_TRUE@ kern/misc.c kern/parser.c kern/partition.c \ -@COND_arm_efi_TRUE@ kern/rescue_parser.c kern/rescue_reader.c \ -@COND_arm_efi_TRUE@ kern/term.c kern/verifiers.c +@COND_arm_efi_TRUE@ kern/generic/millisleep.c kern/buffer.c \ +@COND_arm_efi_TRUE@ kern/command.c kern/corecmd.c kern/device.c \ +@COND_arm_efi_TRUE@ kern/disk.c kern/dl.c kern/env.c kern/err.c \ +@COND_arm_efi_TRUE@ kern/file.c kern/fs.c kern/list.c \ +@COND_arm_efi_TRUE@ kern/main.c kern/misc.c kern/parser.c \ +@COND_arm_efi_TRUE@ kern/partition.c kern/rescue_parser.c \ +@COND_arm_efi_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_arm_efi_TRUE@ kern/verifiers.c @COND_arm_uboot_TRUE@kernel_exec_SOURCES = kern/arm/startup.S \ @COND_arm_uboot_TRUE@ kern/arm/uboot/init.c \ @COND_arm_uboot_TRUE@ kern/arm/uboot/uboot.S \ @@ -25679,11 +25705,12 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_arm_uboot_TRUE@ term/terminfo.c term/tparm.c \ @COND_arm_uboot_TRUE@ commands/extcmd.c lib/arg.c \ @COND_arm_uboot_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ -@COND_arm_uboot_TRUE@ kern/generic/millisleep.c kern/command.c \ -@COND_arm_uboot_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ -@COND_arm_uboot_TRUE@ kern/dl.c kern/env.c kern/err.c \ -@COND_arm_uboot_TRUE@ kern/file.c kern/fs.c kern/list.c \ -@COND_arm_uboot_TRUE@ kern/main.c kern/misc.c kern/parser.c \ +@COND_arm_uboot_TRUE@ kern/generic/millisleep.c kern/buffer.c \ +@COND_arm_uboot_TRUE@ kern/command.c kern/corecmd.c \ +@COND_arm_uboot_TRUE@ kern/device.c kern/disk.c kern/dl.c \ +@COND_arm_uboot_TRUE@ kern/env.c kern/err.c kern/file.c \ +@COND_arm_uboot_TRUE@ kern/fs.c kern/list.c kern/main.c \ +@COND_arm_uboot_TRUE@ kern/misc.c kern/parser.c \ @COND_arm_uboot_TRUE@ kern/partition.c kern/rescue_parser.c \ @COND_arm_uboot_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_arm_uboot_TRUE@ kern/verifiers.c @@ -25696,11 +25723,11 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_emu_TRUE@ kern/emu/cache.c osdep/emuconsole.c osdep/dl.c \ @COND_emu_TRUE@ osdep/sleep.c osdep/init.c osdep/emunet.c \ @COND_emu_TRUE@ osdep/cputime.c term/terminfo.c term/tparm.c \ -@COND_emu_TRUE@ commands/extcmd.c lib/arg.c kern/command.c \ -@COND_emu_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ -@COND_emu_TRUE@ kern/dl.c kern/env.c kern/err.c kern/file.c \ -@COND_emu_TRUE@ kern/fs.c kern/list.c kern/main.c kern/misc.c \ -@COND_emu_TRUE@ kern/parser.c kern/partition.c \ +@COND_emu_TRUE@ commands/extcmd.c lib/arg.c kern/buffer.c \ +@COND_emu_TRUE@ kern/command.c kern/corecmd.c kern/device.c \ +@COND_emu_TRUE@ kern/disk.c kern/dl.c kern/env.c kern/err.c \ +@COND_emu_TRUE@ kern/file.c kern/fs.c kern/list.c kern/main.c \ +@COND_emu_TRUE@ kern/misc.c kern/parser.c kern/partition.c \ @COND_emu_TRUE@ kern/rescue_parser.c kern/rescue_reader.c \ @COND_emu_TRUE@ kern/term.c kern/verifiers.c @COND_i386_coreboot_TRUE@kernel_exec_SOURCES = \ @@ -25721,12 +25748,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_coreboot_TRUE@ kern/i386/tsc_pit.c \ @COND_i386_coreboot_TRUE@ kern/compiler-rt.c kern/mm.c \ @COND_i386_coreboot_TRUE@ kern/time.c kern/generic/millisleep.c \ -@COND_i386_coreboot_TRUE@ kern/command.c kern/corecmd.c \ -@COND_i386_coreboot_TRUE@ kern/device.c kern/disk.c kern/dl.c \ -@COND_i386_coreboot_TRUE@ kern/env.c kern/err.c kern/file.c \ -@COND_i386_coreboot_TRUE@ kern/fs.c kern/list.c kern/main.c \ -@COND_i386_coreboot_TRUE@ kern/misc.c kern/parser.c \ -@COND_i386_coreboot_TRUE@ kern/partition.c kern/rescue_parser.c \ +@COND_i386_coreboot_TRUE@ kern/buffer.c kern/command.c \ +@COND_i386_coreboot_TRUE@ kern/corecmd.c kern/device.c \ +@COND_i386_coreboot_TRUE@ kern/disk.c kern/dl.c kern/env.c \ +@COND_i386_coreboot_TRUE@ kern/err.c kern/file.c kern/fs.c \ +@COND_i386_coreboot_TRUE@ kern/list.c kern/main.c kern/misc.c \ +@COND_i386_coreboot_TRUE@ kern/parser.c kern/partition.c \ +@COND_i386_coreboot_TRUE@ kern/rescue_parser.c \ @COND_i386_coreboot_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_i386_coreboot_TRUE@ kern/verifiers.c @COND_i386_efi_TRUE@kernel_exec_SOURCES = kern/i386/efi/startup.S \ @@ -25740,14 +25768,14 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_efi_TRUE@ kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \ @COND_i386_efi_TRUE@ kern/lockdown.c kern/compiler-rt.c \ @COND_i386_efi_TRUE@ kern/mm.c kern/time.c \ -@COND_i386_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ -@COND_i386_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ -@COND_i386_efi_TRUE@ kern/dl.c kern/env.c kern/err.c \ -@COND_i386_efi_TRUE@ kern/file.c kern/fs.c kern/list.c \ -@COND_i386_efi_TRUE@ kern/main.c kern/misc.c kern/parser.c \ -@COND_i386_efi_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_i386_efi_TRUE@ kern/rescue_reader.c kern/term.c \ -@COND_i386_efi_TRUE@ kern/verifiers.c +@COND_i386_efi_TRUE@ kern/generic/millisleep.c kern/buffer.c \ +@COND_i386_efi_TRUE@ kern/command.c kern/corecmd.c \ +@COND_i386_efi_TRUE@ kern/device.c kern/disk.c kern/dl.c \ +@COND_i386_efi_TRUE@ kern/env.c kern/err.c kern/file.c \ +@COND_i386_efi_TRUE@ kern/fs.c kern/list.c kern/main.c \ +@COND_i386_efi_TRUE@ kern/misc.c kern/parser.c kern/partition.c \ +@COND_i386_efi_TRUE@ kern/rescue_parser.c kern/rescue_reader.c \ +@COND_i386_efi_TRUE@ kern/term.c kern/verifiers.c @COND_i386_ieee1275_TRUE@kernel_exec_SOURCES = \ @COND_i386_ieee1275_TRUE@ kern/i386/ieee1275/startup.S \ @COND_i386_ieee1275_TRUE@ disk/ieee1275/ofdisk.c \ @@ -25762,12 +25790,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_ieee1275_TRUE@ commands/extcmd.c lib/arg.c \ @COND_i386_ieee1275_TRUE@ kern/compiler-rt.c kern/mm.c \ @COND_i386_ieee1275_TRUE@ kern/time.c kern/generic/millisleep.c \ -@COND_i386_ieee1275_TRUE@ kern/command.c kern/corecmd.c \ -@COND_i386_ieee1275_TRUE@ kern/device.c kern/disk.c kern/dl.c \ -@COND_i386_ieee1275_TRUE@ kern/env.c kern/err.c kern/file.c \ -@COND_i386_ieee1275_TRUE@ kern/fs.c kern/list.c kern/main.c \ -@COND_i386_ieee1275_TRUE@ kern/misc.c kern/parser.c \ -@COND_i386_ieee1275_TRUE@ kern/partition.c kern/rescue_parser.c \ +@COND_i386_ieee1275_TRUE@ kern/buffer.c kern/command.c \ +@COND_i386_ieee1275_TRUE@ kern/corecmd.c kern/device.c \ +@COND_i386_ieee1275_TRUE@ kern/disk.c kern/dl.c kern/env.c \ +@COND_i386_ieee1275_TRUE@ kern/err.c kern/file.c kern/fs.c \ +@COND_i386_ieee1275_TRUE@ kern/list.c kern/main.c kern/misc.c \ +@COND_i386_ieee1275_TRUE@ kern/parser.c kern/partition.c \ +@COND_i386_ieee1275_TRUE@ kern/rescue_parser.c \ @COND_i386_ieee1275_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_i386_ieee1275_TRUE@ kern/verifiers.c @COND_i386_multiboot_TRUE@kernel_exec_SOURCES = \ @@ -25781,12 +25810,12 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_multiboot_TRUE@ kern/compiler-rt.c kern/mm.c \ @COND_i386_multiboot_TRUE@ kern/time.c \ @COND_i386_multiboot_TRUE@ kern/generic/millisleep.c \ -@COND_i386_multiboot_TRUE@ kern/command.c kern/corecmd.c \ -@COND_i386_multiboot_TRUE@ kern/device.c kern/disk.c kern/dl.c \ -@COND_i386_multiboot_TRUE@ kern/env.c kern/err.c kern/file.c \ -@COND_i386_multiboot_TRUE@ kern/fs.c kern/list.c kern/main.c \ -@COND_i386_multiboot_TRUE@ kern/misc.c kern/parser.c \ -@COND_i386_multiboot_TRUE@ kern/partition.c \ +@COND_i386_multiboot_TRUE@ kern/buffer.c kern/command.c \ +@COND_i386_multiboot_TRUE@ kern/corecmd.c kern/device.c \ +@COND_i386_multiboot_TRUE@ kern/disk.c kern/dl.c kern/env.c \ +@COND_i386_multiboot_TRUE@ kern/err.c kern/file.c kern/fs.c \ +@COND_i386_multiboot_TRUE@ kern/list.c kern/main.c kern/misc.c \ +@COND_i386_multiboot_TRUE@ kern/parser.c kern/partition.c \ @COND_i386_multiboot_TRUE@ kern/rescue_parser.c \ @COND_i386_multiboot_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_i386_multiboot_TRUE@ kern/verifiers.c @@ -25795,24 +25824,26 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_pc_TRUE@ term/i386/pc/console.c kern/i386/dl.c \ @COND_i386_pc_TRUE@ kern/i386/tsc.c kern/i386/tsc_pit.c \ @COND_i386_pc_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ -@COND_i386_pc_TRUE@ kern/generic/millisleep.c kern/command.c \ -@COND_i386_pc_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ -@COND_i386_pc_TRUE@ kern/dl.c kern/env.c kern/err.c kern/file.c \ -@COND_i386_pc_TRUE@ kern/fs.c kern/list.c kern/main.c \ -@COND_i386_pc_TRUE@ kern/misc.c kern/parser.c kern/partition.c \ -@COND_i386_pc_TRUE@ kern/rescue_parser.c kern/rescue_reader.c \ -@COND_i386_pc_TRUE@ kern/term.c kern/verifiers.c +@COND_i386_pc_TRUE@ kern/generic/millisleep.c kern/buffer.c \ +@COND_i386_pc_TRUE@ kern/command.c kern/corecmd.c kern/device.c \ +@COND_i386_pc_TRUE@ kern/disk.c kern/dl.c kern/env.c kern/err.c \ +@COND_i386_pc_TRUE@ kern/file.c kern/fs.c kern/list.c \ +@COND_i386_pc_TRUE@ kern/main.c kern/misc.c kern/parser.c \ +@COND_i386_pc_TRUE@ kern/partition.c kern/rescue_parser.c \ +@COND_i386_pc_TRUE@ kern/rescue_reader.c kern/term.c \ +@COND_i386_pc_TRUE@ kern/verifiers.c @COND_i386_qemu_TRUE@kernel_exec_SOURCES = kern/i386/qemu/startup.S \ @COND_i386_qemu_TRUE@ kern/i386/qemu/init.c bus/pci.c \ @COND_i386_qemu_TRUE@ kern/vga_init.c kern/i386/qemu/mmap.c \ @COND_i386_qemu_TRUE@ term/i386/pc/vga_text.c kern/i386/dl.c \ @COND_i386_qemu_TRUE@ kern/i386/tsc.c kern/i386/tsc_pit.c \ @COND_i386_qemu_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ -@COND_i386_qemu_TRUE@ kern/generic/millisleep.c kern/command.c \ -@COND_i386_qemu_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ -@COND_i386_qemu_TRUE@ kern/dl.c kern/env.c kern/err.c \ -@COND_i386_qemu_TRUE@ kern/file.c kern/fs.c kern/list.c \ -@COND_i386_qemu_TRUE@ kern/main.c kern/misc.c kern/parser.c \ +@COND_i386_qemu_TRUE@ kern/generic/millisleep.c kern/buffer.c \ +@COND_i386_qemu_TRUE@ kern/command.c kern/corecmd.c \ +@COND_i386_qemu_TRUE@ kern/device.c kern/disk.c kern/dl.c \ +@COND_i386_qemu_TRUE@ kern/env.c kern/err.c kern/file.c \ +@COND_i386_qemu_TRUE@ kern/fs.c kern/list.c kern/main.c \ +@COND_i386_qemu_TRUE@ kern/misc.c kern/parser.c \ @COND_i386_qemu_TRUE@ kern/partition.c kern/rescue_parser.c \ @COND_i386_qemu_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_i386_qemu_TRUE@ kern/verifiers.c @@ -25824,14 +25855,14 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_xen_TRUE@ term/terminfo.c term/tparm.c \ @COND_i386_xen_TRUE@ commands/extcmd.c lib/arg.c \ @COND_i386_xen_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ -@COND_i386_xen_TRUE@ kern/generic/millisleep.c kern/command.c \ -@COND_i386_xen_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ -@COND_i386_xen_TRUE@ kern/dl.c kern/env.c kern/err.c \ -@COND_i386_xen_TRUE@ kern/file.c kern/fs.c kern/list.c \ -@COND_i386_xen_TRUE@ kern/main.c kern/misc.c kern/parser.c \ -@COND_i386_xen_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_i386_xen_TRUE@ kern/rescue_reader.c kern/term.c \ -@COND_i386_xen_TRUE@ kern/verifiers.c +@COND_i386_xen_TRUE@ kern/generic/millisleep.c kern/buffer.c \ +@COND_i386_xen_TRUE@ kern/command.c kern/corecmd.c \ +@COND_i386_xen_TRUE@ kern/device.c kern/disk.c kern/dl.c \ +@COND_i386_xen_TRUE@ kern/env.c kern/err.c kern/file.c \ +@COND_i386_xen_TRUE@ kern/fs.c kern/list.c kern/main.c \ +@COND_i386_xen_TRUE@ kern/misc.c kern/parser.c kern/partition.c \ +@COND_i386_xen_TRUE@ kern/rescue_parser.c kern/rescue_reader.c \ +@COND_i386_xen_TRUE@ kern/term.c kern/verifiers.c @COND_i386_xen_pvh_TRUE@kernel_exec_SOURCES = \ @COND_i386_xen_pvh_TRUE@ kern/i386/xen/startup_pvh.S \ @COND_i386_xen_pvh_TRUE@ kern/i386/dl.c commands/boot.c \ @@ -25842,12 +25873,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_i386_xen_pvh_TRUE@ term/tparm.c commands/extcmd.c \ @COND_i386_xen_pvh_TRUE@ lib/arg.c kern/compiler-rt.c kern/mm.c \ @COND_i386_xen_pvh_TRUE@ kern/time.c kern/generic/millisleep.c \ -@COND_i386_xen_pvh_TRUE@ kern/command.c kern/corecmd.c \ -@COND_i386_xen_pvh_TRUE@ kern/device.c kern/disk.c kern/dl.c \ -@COND_i386_xen_pvh_TRUE@ kern/env.c kern/err.c kern/file.c \ -@COND_i386_xen_pvh_TRUE@ kern/fs.c kern/list.c kern/main.c \ -@COND_i386_xen_pvh_TRUE@ kern/misc.c kern/parser.c \ -@COND_i386_xen_pvh_TRUE@ kern/partition.c kern/rescue_parser.c \ +@COND_i386_xen_pvh_TRUE@ kern/buffer.c kern/command.c \ +@COND_i386_xen_pvh_TRUE@ kern/corecmd.c kern/device.c \ +@COND_i386_xen_pvh_TRUE@ kern/disk.c kern/dl.c kern/env.c \ +@COND_i386_xen_pvh_TRUE@ kern/err.c kern/file.c kern/fs.c \ +@COND_i386_xen_pvh_TRUE@ kern/list.c kern/main.c kern/misc.c \ +@COND_i386_xen_pvh_TRUE@ kern/parser.c kern/partition.c \ +@COND_i386_xen_pvh_TRUE@ kern/rescue_parser.c \ @COND_i386_xen_pvh_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_i386_xen_pvh_TRUE@ kern/verifiers.c @COND_ia64_efi_TRUE@kernel_exec_SOURCES = kern/ia64/efi/startup.S \ @@ -25859,14 +25891,14 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_ia64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \ @COND_ia64_efi_TRUE@ kern/lockdown.c kern/compiler-rt.c \ @COND_ia64_efi_TRUE@ kern/mm.c kern/time.c \ -@COND_ia64_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ -@COND_ia64_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ -@COND_ia64_efi_TRUE@ kern/dl.c kern/env.c kern/err.c \ -@COND_ia64_efi_TRUE@ kern/file.c kern/fs.c kern/list.c \ -@COND_ia64_efi_TRUE@ kern/main.c kern/misc.c kern/parser.c \ -@COND_ia64_efi_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_ia64_efi_TRUE@ kern/rescue_reader.c kern/term.c \ -@COND_ia64_efi_TRUE@ kern/verifiers.c +@COND_ia64_efi_TRUE@ kern/generic/millisleep.c kern/buffer.c \ +@COND_ia64_efi_TRUE@ kern/command.c kern/corecmd.c \ +@COND_ia64_efi_TRUE@ kern/device.c kern/disk.c kern/dl.c \ +@COND_ia64_efi_TRUE@ kern/env.c kern/err.c kern/file.c \ +@COND_ia64_efi_TRUE@ kern/fs.c kern/list.c kern/main.c \ +@COND_ia64_efi_TRUE@ kern/misc.c kern/parser.c kern/partition.c \ +@COND_ia64_efi_TRUE@ kern/rescue_parser.c kern/rescue_reader.c \ +@COND_ia64_efi_TRUE@ kern/term.c kern/verifiers.c @COND_mips_arc_TRUE@kernel_exec_SOURCES = kern/mips/startup.S \ @COND_mips_arc_TRUE@ kern/mips/arc/init.c term/arc/console.c \ @COND_mips_arc_TRUE@ disk/arc/arcdisk.c \ @@ -25875,14 +25907,14 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_mips_arc_TRUE@ kern/mips/init.c term/terminfo.c \ @COND_mips_arc_TRUE@ term/tparm.c commands/extcmd.c lib/arg.c \ @COND_mips_arc_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ -@COND_mips_arc_TRUE@ kern/generic/millisleep.c kern/command.c \ -@COND_mips_arc_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ -@COND_mips_arc_TRUE@ kern/dl.c kern/env.c kern/err.c \ -@COND_mips_arc_TRUE@ kern/file.c kern/fs.c kern/list.c \ -@COND_mips_arc_TRUE@ kern/main.c kern/misc.c kern/parser.c \ -@COND_mips_arc_TRUE@ kern/partition.c kern/rescue_parser.c \ -@COND_mips_arc_TRUE@ kern/rescue_reader.c kern/term.c \ -@COND_mips_arc_TRUE@ kern/verifiers.c +@COND_mips_arc_TRUE@ kern/generic/millisleep.c kern/buffer.c \ +@COND_mips_arc_TRUE@ kern/command.c kern/corecmd.c \ +@COND_mips_arc_TRUE@ kern/device.c kern/disk.c kern/dl.c \ +@COND_mips_arc_TRUE@ kern/env.c kern/err.c kern/file.c \ +@COND_mips_arc_TRUE@ kern/fs.c kern/list.c kern/main.c \ +@COND_mips_arc_TRUE@ kern/misc.c kern/parser.c kern/partition.c \ +@COND_mips_arc_TRUE@ kern/rescue_parser.c kern/rescue_reader.c \ +@COND_mips_arc_TRUE@ kern/term.c kern/verifiers.c @COND_mips_loongson_TRUE@kernel_exec_SOURCES = kern/mips/startup.S \ @COND_mips_loongson_TRUE@ term/ns8250.c bus/bonito.c \ @COND_mips_loongson_TRUE@ bus/cs5536.c bus/pci.c \ @@ -25904,12 +25936,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_mips_loongson_TRUE@ lib/arg.c kern/compiler-rt.c \ @COND_mips_loongson_TRUE@ kern/mm.c kern/time.c \ @COND_mips_loongson_TRUE@ kern/generic/millisleep.c \ -@COND_mips_loongson_TRUE@ kern/command.c kern/corecmd.c \ -@COND_mips_loongson_TRUE@ kern/device.c kern/disk.c kern/dl.c \ -@COND_mips_loongson_TRUE@ kern/env.c kern/err.c kern/file.c \ -@COND_mips_loongson_TRUE@ kern/fs.c kern/list.c kern/main.c \ -@COND_mips_loongson_TRUE@ kern/misc.c kern/parser.c \ -@COND_mips_loongson_TRUE@ kern/partition.c kern/rescue_parser.c \ +@COND_mips_loongson_TRUE@ kern/buffer.c kern/command.c \ +@COND_mips_loongson_TRUE@ kern/corecmd.c kern/device.c \ +@COND_mips_loongson_TRUE@ kern/disk.c kern/dl.c kern/env.c \ +@COND_mips_loongson_TRUE@ kern/err.c kern/file.c kern/fs.c \ +@COND_mips_loongson_TRUE@ kern/list.c kern/main.c kern/misc.c \ +@COND_mips_loongson_TRUE@ kern/parser.c kern/partition.c \ +@COND_mips_loongson_TRUE@ kern/rescue_parser.c \ @COND_mips_loongson_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_mips_loongson_TRUE@ kern/verifiers.c @COND_mips_qemu_mips_TRUE@kernel_exec_SOURCES = kern/mips/startup.S \ @@ -25927,12 +25960,12 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_mips_qemu_mips_TRUE@ lib/arg.c kern/compiler-rt.c \ @COND_mips_qemu_mips_TRUE@ kern/mm.c kern/time.c \ @COND_mips_qemu_mips_TRUE@ kern/generic/millisleep.c \ -@COND_mips_qemu_mips_TRUE@ kern/command.c kern/corecmd.c \ -@COND_mips_qemu_mips_TRUE@ kern/device.c kern/disk.c kern/dl.c \ -@COND_mips_qemu_mips_TRUE@ kern/env.c kern/err.c kern/file.c \ -@COND_mips_qemu_mips_TRUE@ kern/fs.c kern/list.c kern/main.c \ -@COND_mips_qemu_mips_TRUE@ kern/misc.c kern/parser.c \ -@COND_mips_qemu_mips_TRUE@ kern/partition.c \ +@COND_mips_qemu_mips_TRUE@ kern/buffer.c kern/command.c \ +@COND_mips_qemu_mips_TRUE@ kern/corecmd.c kern/device.c \ +@COND_mips_qemu_mips_TRUE@ kern/disk.c kern/dl.c kern/env.c \ +@COND_mips_qemu_mips_TRUE@ kern/err.c kern/file.c kern/fs.c \ +@COND_mips_qemu_mips_TRUE@ kern/list.c kern/main.c kern/misc.c \ +@COND_mips_qemu_mips_TRUE@ kern/parser.c kern/partition.c \ @COND_mips_qemu_mips_TRUE@ kern/rescue_parser.c \ @COND_mips_qemu_mips_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_mips_qemu_mips_TRUE@ kern/verifiers.c @@ -25953,12 +25986,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_powerpc_ieee1275_TRUE@ kern/compiler-rt.c kern/mm.c \ @COND_powerpc_ieee1275_TRUE@ kern/time.c \ @COND_powerpc_ieee1275_TRUE@ kern/generic/millisleep.c \ -@COND_powerpc_ieee1275_TRUE@ kern/command.c kern/corecmd.c \ -@COND_powerpc_ieee1275_TRUE@ kern/device.c kern/disk.c \ -@COND_powerpc_ieee1275_TRUE@ kern/dl.c kern/env.c kern/err.c \ -@COND_powerpc_ieee1275_TRUE@ kern/file.c kern/fs.c kern/list.c \ -@COND_powerpc_ieee1275_TRUE@ kern/main.c kern/misc.c \ -@COND_powerpc_ieee1275_TRUE@ kern/parser.c kern/partition.c \ +@COND_powerpc_ieee1275_TRUE@ kern/buffer.c kern/command.c \ +@COND_powerpc_ieee1275_TRUE@ kern/corecmd.c kern/device.c \ +@COND_powerpc_ieee1275_TRUE@ kern/disk.c kern/dl.c kern/env.c \ +@COND_powerpc_ieee1275_TRUE@ kern/err.c kern/file.c kern/fs.c \ +@COND_powerpc_ieee1275_TRUE@ kern/list.c kern/main.c \ +@COND_powerpc_ieee1275_TRUE@ kern/misc.c kern/parser.c \ +@COND_powerpc_ieee1275_TRUE@ kern/partition.c \ @COND_powerpc_ieee1275_TRUE@ kern/rescue_parser.c \ @COND_powerpc_ieee1275_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_powerpc_ieee1275_TRUE@ kern/verifiers.c @@ -25973,7 +26007,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_riscv32_efi_TRUE@ kern/efi/acpi.c kern/efi/sb.c \ @COND_riscv32_efi_TRUE@ kern/lockdown.c kern/compiler-rt.c \ @COND_riscv32_efi_TRUE@ kern/mm.c kern/time.c \ -@COND_riscv32_efi_TRUE@ kern/generic/millisleep.c \ +@COND_riscv32_efi_TRUE@ kern/generic/millisleep.c kern/buffer.c \ @COND_riscv32_efi_TRUE@ kern/command.c kern/corecmd.c \ @COND_riscv32_efi_TRUE@ kern/device.c kern/disk.c kern/dl.c \ @COND_riscv32_efi_TRUE@ kern/env.c kern/err.c kern/file.c \ @@ -25993,12 +26027,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_riscv64_efi_TRUE@ kern/efi/sb.c kern/lockdown.c \ @COND_riscv64_efi_TRUE@ kern/compiler-rt.c kern/mm.c \ @COND_riscv64_efi_TRUE@ kern/time.c kern/generic/millisleep.c \ -@COND_riscv64_efi_TRUE@ kern/command.c kern/corecmd.c \ -@COND_riscv64_efi_TRUE@ kern/device.c kern/disk.c kern/dl.c \ -@COND_riscv64_efi_TRUE@ kern/env.c kern/err.c kern/file.c \ -@COND_riscv64_efi_TRUE@ kern/fs.c kern/list.c kern/main.c \ -@COND_riscv64_efi_TRUE@ kern/misc.c kern/parser.c \ -@COND_riscv64_efi_TRUE@ kern/partition.c kern/rescue_parser.c \ +@COND_riscv64_efi_TRUE@ kern/buffer.c kern/command.c \ +@COND_riscv64_efi_TRUE@ kern/corecmd.c kern/device.c \ +@COND_riscv64_efi_TRUE@ kern/disk.c kern/dl.c kern/env.c \ +@COND_riscv64_efi_TRUE@ kern/err.c kern/file.c kern/fs.c \ +@COND_riscv64_efi_TRUE@ kern/list.c kern/main.c kern/misc.c \ +@COND_riscv64_efi_TRUE@ kern/parser.c kern/partition.c \ +@COND_riscv64_efi_TRUE@ kern/rescue_parser.c \ @COND_riscv64_efi_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_riscv64_efi_TRUE@ kern/verifiers.c @COND_sparc64_ieee1275_TRUE@kernel_exec_SOURCES = \ @@ -26019,12 +26054,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_sparc64_ieee1275_TRUE@ kern/compiler-rt.c kern/mm.c \ @COND_sparc64_ieee1275_TRUE@ kern/time.c \ @COND_sparc64_ieee1275_TRUE@ kern/generic/millisleep.c \ -@COND_sparc64_ieee1275_TRUE@ kern/command.c kern/corecmd.c \ -@COND_sparc64_ieee1275_TRUE@ kern/device.c kern/disk.c \ -@COND_sparc64_ieee1275_TRUE@ kern/dl.c kern/env.c kern/err.c \ -@COND_sparc64_ieee1275_TRUE@ kern/file.c kern/fs.c kern/list.c \ -@COND_sparc64_ieee1275_TRUE@ kern/main.c kern/misc.c \ -@COND_sparc64_ieee1275_TRUE@ kern/parser.c kern/partition.c \ +@COND_sparc64_ieee1275_TRUE@ kern/buffer.c kern/command.c \ +@COND_sparc64_ieee1275_TRUE@ kern/corecmd.c kern/device.c \ +@COND_sparc64_ieee1275_TRUE@ kern/disk.c kern/dl.c kern/env.c \ +@COND_sparc64_ieee1275_TRUE@ kern/err.c kern/file.c kern/fs.c \ +@COND_sparc64_ieee1275_TRUE@ kern/list.c kern/main.c \ +@COND_sparc64_ieee1275_TRUE@ kern/misc.c kern/parser.c \ +@COND_sparc64_ieee1275_TRUE@ kern/partition.c \ @COND_sparc64_ieee1275_TRUE@ kern/rescue_parser.c \ @COND_sparc64_ieee1275_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_sparc64_ieee1275_TRUE@ kern/verifiers.c @@ -26040,11 +26076,12 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_x86_64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \ @COND_x86_64_efi_TRUE@ kern/efi/sb.c kern/lockdown.c \ @COND_x86_64_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ -@COND_x86_64_efi_TRUE@ kern/generic/millisleep.c kern/command.c \ -@COND_x86_64_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ -@COND_x86_64_efi_TRUE@ kern/dl.c kern/env.c kern/err.c \ -@COND_x86_64_efi_TRUE@ kern/file.c kern/fs.c kern/list.c \ -@COND_x86_64_efi_TRUE@ kern/main.c kern/misc.c kern/parser.c \ +@COND_x86_64_efi_TRUE@ kern/generic/millisleep.c kern/buffer.c \ +@COND_x86_64_efi_TRUE@ kern/command.c kern/corecmd.c \ +@COND_x86_64_efi_TRUE@ kern/device.c kern/disk.c kern/dl.c \ +@COND_x86_64_efi_TRUE@ kern/env.c kern/err.c kern/file.c \ +@COND_x86_64_efi_TRUE@ kern/fs.c kern/list.c kern/main.c \ +@COND_x86_64_efi_TRUE@ kern/misc.c kern/parser.c \ @COND_x86_64_efi_TRUE@ kern/partition.c kern/rescue_parser.c \ @COND_x86_64_efi_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_x86_64_efi_TRUE@ kern/verifiers.c @@ -26057,11 +26094,12 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF) @COND_x86_64_xen_TRUE@ term/terminfo.c term/tparm.c \ @COND_x86_64_xen_TRUE@ commands/extcmd.c lib/arg.c \ @COND_x86_64_xen_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \ -@COND_x86_64_xen_TRUE@ kern/generic/millisleep.c kern/command.c \ -@COND_x86_64_xen_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \ -@COND_x86_64_xen_TRUE@ kern/dl.c kern/env.c kern/err.c \ -@COND_x86_64_xen_TRUE@ kern/file.c kern/fs.c kern/list.c \ -@COND_x86_64_xen_TRUE@ kern/main.c kern/misc.c kern/parser.c \ +@COND_x86_64_xen_TRUE@ kern/generic/millisleep.c kern/buffer.c \ +@COND_x86_64_xen_TRUE@ kern/command.c kern/corecmd.c \ +@COND_x86_64_xen_TRUE@ kern/device.c kern/disk.c kern/dl.c \ +@COND_x86_64_xen_TRUE@ kern/env.c kern/err.c kern/file.c \ +@COND_x86_64_xen_TRUE@ kern/fs.c kern/list.c kern/main.c \ +@COND_x86_64_xen_TRUE@ kern/misc.c kern/parser.c \ @COND_x86_64_xen_TRUE@ kern/partition.c kern/rescue_parser.c \ @COND_x86_64_xen_TRUE@ kern/rescue_reader.c kern/term.c \ @COND_x86_64_xen_TRUE@ kern/verifiers.c @@ -28027,6 +28065,8 @@ kern/generic/$(DEPDIR)/$(am__dirstamp): kern/generic/kernel_exec-millisleep.$(OBJEXT): \ kern/generic/$(am__dirstamp) \ kern/generic/$(DEPDIR)/$(am__dirstamp) +kern/kernel_exec-buffer.$(OBJEXT): kern/$(am__dirstamp) \ + kern/$(DEPDIR)/$(am__dirstamp) kern/kernel_exec-command.$(OBJEXT): kern/$(am__dirstamp) \ kern/$(DEPDIR)/$(am__dirstamp) kern/kernel_exec-corecmd.$(OBJEXT): kern/$(am__dirstamp) \ @@ -30952,6 +30992,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/acpi_module-acpi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/elf_module-elf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-acpi.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-buffer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-command.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-compiler-rt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-corecmd.Po@am__quote@ @@ -35382,6 +35423,20 @@ kern/generic/kernel_exec-millisleep.obj: kern/generic/millisleep.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/generic/kernel_exec-millisleep.obj `if test -f 'kern/generic/millisleep.c'; then $(CYGPATH_W) 'kern/generic/millisleep.c'; else $(CYGPATH_W) '$(srcdir)/kern/generic/millisleep.c'; fi` +kern/kernel_exec-buffer.o: kern/buffer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-buffer.o -MD -MP -MF kern/$(DEPDIR)/kernel_exec-buffer.Tpo -c -o kern/kernel_exec-buffer.o `test -f 'kern/buffer.c' || echo '$(srcdir)/'`kern/buffer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-buffer.Tpo kern/$(DEPDIR)/kernel_exec-buffer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kern/buffer.c' object='kern/kernel_exec-buffer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/kernel_exec-buffer.o `test -f 'kern/buffer.c' || echo '$(srcdir)/'`kern/buffer.c + +kern/kernel_exec-buffer.obj: kern/buffer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-buffer.obj -MD -MP -MF kern/$(DEPDIR)/kernel_exec-buffer.Tpo -c -o kern/kernel_exec-buffer.obj `if test -f 'kern/buffer.c'; then $(CYGPATH_W) 'kern/buffer.c'; else $(CYGPATH_W) '$(srcdir)/kern/buffer.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-buffer.Tpo kern/$(DEPDIR)/kernel_exec-buffer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kern/buffer.c' object='kern/kernel_exec-buffer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/kernel_exec-buffer.obj `if test -f 'kern/buffer.c'; then $(CYGPATH_W) 'kern/buffer.c'; else $(CYGPATH_W) '$(srcdir)/kern/buffer.c'; fi` + kern/kernel_exec-command.o: kern/command.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-command.o -MD -MP -MF kern/$(DEPDIR)/kernel_exec-command.Tpo -c -o kern/kernel_exec-command.o `test -f 'kern/command.c' || echo '$(srcdir)/'`kern/command.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-command.Tpo kern/$(DEPDIR)/kernel_exec-command.Po diff --git a/grub-core/kern/buffer.c b/grub-core/kern/buffer.c new file mode 100644 index 0000000..9f5f8b8 --- /dev/null +++ b/grub-core/kern/buffer.c @@ -0,0 +1,117 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2021 Free Software Foundation, Inc. + * + * GRUB 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. + * + * GRUB 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 GRUB. If not, see . + */ + +#include +#include +#include +#include +#include +#include + +grub_buffer_t +grub_buffer_new (grub_size_t sz) +{ + struct grub_buffer *ret; + + ret = (struct grub_buffer *) grub_malloc (sizeof (*ret)); + if (ret == NULL) + return NULL; + + ret->data = (grub_uint8_t *) grub_malloc (sz); + if (ret->data == NULL) + { + grub_free (ret); + return NULL; + } + + ret->sz = sz; + ret->pos = 0; + ret->used = 0; + + return ret; +} + +void +grub_buffer_free (grub_buffer_t buf) +{ + grub_free (buf->data); + grub_free (buf); +} + +grub_err_t +grub_buffer_ensure_space (grub_buffer_t buf, grub_size_t req) +{ + grub_uint8_t *d; + grub_size_t newsz = 1; + + /* Is the current buffer size adequate? */ + if (buf->sz >= req) + return GRUB_ERR_NONE; + + /* Find the smallest power-of-2 size that satisfies the request. */ + while (newsz < req) + { + if (newsz == 0) + return grub_error (GRUB_ERR_OUT_OF_RANGE, + N_("requested buffer size is too large")); + newsz <<= 1; + } + + d = (grub_uint8_t *) grub_realloc (buf->data, newsz); + if (d == NULL) + return grub_errno; + + buf->data = d; + buf->sz = newsz; + + return GRUB_ERR_NONE; +} + +void * +grub_buffer_take_data (grub_buffer_t buf) +{ + void *data = buf->data; + + buf->data = NULL; + buf->sz = buf->pos = buf->used = 0; + + return data; +} + +void +grub_buffer_reset (grub_buffer_t buf) +{ + buf->pos = buf->used = 0; +} + +grub_err_t +grub_buffer_advance_read_pos (grub_buffer_t buf, grub_size_t n) +{ + grub_size_t newpos; + + if (grub_add (buf->pos, n, &newpos)) + return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + + if (newpos > buf->used) + return grub_error (GRUB_ERR_OUT_OF_RANGE, + N_("new read is position beyond the end of the written data")); + + buf->pos = newpos; + + return GRUB_ERR_NONE; +} diff --git a/include/grub/buffer.h b/include/grub/buffer.h new file mode 100644 index 0000000..f4b10cf --- /dev/null +++ b/include/grub/buffer.h @@ -0,0 +1,144 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2021 Free Software Foundation, Inc. + * + * GRUB 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. + * + * GRUB 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 GRUB. If not, see . + */ + +#ifndef GRUB_BUFFER_H +#define GRUB_BUFFER_H 1 + +#include +#include +#include +#include +#include + +struct grub_buffer +{ + grub_uint8_t *data; + grub_size_t sz; + grub_size_t pos; + grub_size_t used; +}; + +/* + * grub_buffer_t represents a simple variable sized byte buffer with + * read and write cursors. It currently only implements + * functionality required by the only user in GRUB (append byte[s], + * peeking data at a specified position and updating the read cursor. + * Some things that this doesn't do yet are: + * - Reading a portion of the buffer by copying data from the current + * read position in to a caller supplied destination buffer and then + * automatically updating the read cursor. + * - Dropping the read part at the start of the buffer when an append + * requires more space. + */ +typedef struct grub_buffer *grub_buffer_t; + +/* Allocate a new buffer with the specified initial size. */ +extern grub_buffer_t grub_buffer_new (grub_size_t sz); + +/* Free the buffer and its resources. */ +extern void grub_buffer_free (grub_buffer_t buf); + +/* Return the number of unread bytes in this buffer. */ +static inline grub_size_t +grub_buffer_get_unread_bytes (grub_buffer_t buf) +{ + return buf->used - buf->pos; +} + +/* + * Ensure that the buffer size is at least the requested + * number of bytes. + */ +extern grub_err_t grub_buffer_ensure_space (grub_buffer_t buf, grub_size_t req); + +/* + * Append the specified number of bytes from the supplied + * data to the buffer. + */ +static inline grub_err_t +grub_buffer_append_data (grub_buffer_t buf, const void *data, grub_size_t len) +{ + grub_size_t req; + + if (grub_add (buf->used, len, &req)) + return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); + + if (grub_buffer_ensure_space (buf, req) != GRUB_ERR_NONE) + return grub_errno; + + grub_memcpy (&buf->data[buf->used], data, len); + buf->used = req; + + return GRUB_ERR_NONE; +} + +/* Append the supplied character to the buffer. */ +static inline grub_err_t +grub_buffer_append_char (grub_buffer_t buf, char c) +{ + return grub_buffer_append_data (buf, &c, 1); +} + +/* + * Forget and return the underlying data buffer. The caller + * becomes the owner of this buffer, and must free it when it + * is no longer required. + */ +extern void *grub_buffer_take_data (grub_buffer_t buf); + +/* Reset this buffer. Note that this does not deallocate any resources. */ +void grub_buffer_reset (grub_buffer_t buf); + +/* + * Return a pointer to the underlying data buffer at the specified + * offset from the current read position. Note that this pointer may + * become invalid if the buffer is mutated further. + */ +static inline void * +grub_buffer_peek_data_at (grub_buffer_t buf, grub_size_t off) +{ + if (grub_add (buf->pos, off, &off)) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected.")); + return NULL; + } + + if (off >= buf->used) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, N_("peek out of range")); + return NULL; + } + + return &buf->data[off]; +} + +/* + * Return a pointer to the underlying data buffer at the current + * read position. Note that this pointer may become invalid if the + * buffer is mutated further. + */ +static inline void * +grub_buffer_peek_data (grub_buffer_t buf) +{ + return grub_buffer_peek_data_at (buf, 0); +} + +/* Advance the read position by the specified number of bytes. */ +extern grub_err_t grub_buffer_advance_read_pos (grub_buffer_t buf, grub_size_t n); + +#endif /* GRUB_BUFFER_H */ diff --git a/po/POTFILES.in b/po/POTFILES.in index 5e26845..7753ab4 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -250,6 +250,7 @@ ./grub-core/kern/arm64/dl.c ./grub-core/kern/arm64/dl_helper.c ./grub-core/kern/arm64/efi/init.c +./grub-core/kern/buffer.c ./grub-core/kern/command.c ./grub-core/kern/compiler-rt.c ./grub-core/kern/coreboot/cbtable.c @@ -1021,6 +1022,7 @@ ./include/grub/boottime.h ./include/grub/bsdlabel.h ./include/grub/btrfs.h +./include/grub/buffer.h ./include/grub/bufio.h ./include/grub/cache.h ./include/grub/cbfs_core.h -- 2.14.2 ================================================ FILE: boot/grub2/0132-kern-parser-Fix-a-stack-buffer-overflow.patch ================================================ From 4ea7bae51f97e49c84dc67ea30b466ca8633b9f6 Mon Sep 17 00:00:00 2001 From: Chris Coulson Date: Thu, 7 Jan 2021 19:21:03 +0000 Subject: [PATCH] kern/parser: Fix a stack buffer overflow grub_parser_split_cmdline() expands variable names present in the supplied command line in to their corresponding variable contents and uses a 1 kiB stack buffer for temporary storage without sufficient bounds checking. If the function is called with a command line that references a variable with a sufficiently large payload, it is possible to overflow the stack buffer via tab completion, corrupt the stack frame and potentially control execution. Fixes: CVE-2020-27749 Reported-by: Chris Coulson Signed-off-by: Chris Coulson Signed-off-by: Darren Kenny Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/parser.c | 110 +++++++++++++++++++++++++++++------------------- 1 file changed, 67 insertions(+), 43 deletions(-) diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c index e010eaa..6ab7aa4 100644 --- a/grub-core/kern/parser.c +++ b/grub-core/kern/parser.c @@ -18,6 +18,7 @@ */ #include +#include #include #include #include @@ -107,8 +108,8 @@ check_varstate (grub_parser_state_t s) } -static void -add_var (char *varname, char **bp, char **vp, +static grub_err_t +add_var (grub_buffer_t varname, grub_buffer_t buf, grub_parser_state_t state, grub_parser_state_t newstate) { const char *val; @@ -116,31 +117,41 @@ add_var (char *varname, char **bp, char **vp, /* Check if a variable was being read in and the end of the name was reached. */ if (!(check_varstate (state) && !check_varstate (newstate))) - return; + return GRUB_ERR_NONE; + + if (grub_buffer_append_char (varname, '\0') != GRUB_ERR_NONE) + return grub_errno; - *((*vp)++) = '\0'; - val = grub_env_get (varname); - *vp = varname; + val = grub_env_get ((const char *) grub_buffer_peek_data (varname)); + grub_buffer_reset (varname); if (!val) - return; + return GRUB_ERR_NONE; /* Insert the contents of the variable in the buffer. */ - for (; *val; val++) - *((*bp)++) = *val; + return grub_buffer_append_data (buf, val, grub_strlen (val)); } -static void -terminate_arg (char *buffer, char **bp, int *argc) +static grub_err_t +terminate_arg (grub_buffer_t buffer, int *argc) { - if (*bp != buffer && *((*bp) - 1) != '\0') - { - *((*bp)++) = '\0'; - (*argc)++; - } + grub_size_t unread = grub_buffer_get_unread_bytes (buffer); + + if (unread == 0) + return GRUB_ERR_NONE; + + if (*(const char *) grub_buffer_peek_data_at (buffer, unread - 1) == '\0') + return GRUB_ERR_NONE; + + if (grub_buffer_append_char (buffer, '\0') != GRUB_ERR_NONE) + return grub_errno; + + (*argc)++; + + return GRUB_ERR_NONE; } static grub_err_t -process_char (char c, char *buffer, char **bp, char *varname, char **vp, +process_char (char c, grub_buffer_t buffer, grub_buffer_t varname, grub_parser_state_t state, int *argc, grub_parser_state_t *newstate) { @@ -153,12 +164,13 @@ process_char (char c, char *buffer, char **bp, char *varname, char **vp, * not describe the variable anymore, write the variable to * the buffer. */ - add_var (varname, bp, vp, state, *newstate); + if (add_var (varname, buffer, state, *newstate) != GRUB_ERR_NONE) + return grub_errno; if (check_varstate (*newstate)) { if (use) - *((*vp)++) = use; + return grub_buffer_append_char (varname, use); } else if (*newstate == GRUB_PARSER_STATE_TEXT && state != GRUB_PARSER_STATE_ESC && grub_isspace (use)) @@ -167,10 +179,10 @@ process_char (char c, char *buffer, char **bp, char *varname, char **vp, * Don't add more than one argument if multiple * spaces are used. */ - terminate_arg (buffer, bp, argc); + return terminate_arg (buffer, argc); } else if (use) - *((*bp)++) = use; + return grub_buffer_append_char (buffer, use); return GRUB_ERR_NONE; } @@ -181,19 +193,22 @@ grub_parser_split_cmdline (const char *cmdline, int *argc, char ***argv) { grub_parser_state_t state = GRUB_PARSER_STATE_TEXT; - /* XXX: Fixed size buffer, perhaps this buffer should be dynamically - allocated. */ - char buffer[1024]; - char *bp = buffer; + grub_buffer_t buffer, varname; char *rd = (char *) cmdline; char *rp = rd; - char varname[200]; - char *vp = varname; - char *args; int i; *argc = 0; *argv = NULL; + + buffer = grub_buffer_new (1024); + if (buffer == NULL) + return grub_errno; + + varname = grub_buffer_new (200); + if (varname == NULL) + goto fail; + do { if (rp == NULL || *rp == '\0') @@ -219,7 +234,7 @@ grub_parser_split_cmdline (const char *cmdline, { grub_parser_state_t newstate; - if (process_char (*rp, buffer, &bp, varname, &vp, state, argc, + if (process_char (*rp, buffer, varname, state, argc, &newstate) != GRUB_ERR_NONE) goto fail; @@ -230,10 +245,12 @@ grub_parser_split_cmdline (const char *cmdline, /* A special case for when the last character was part of a variable. */ - add_var (varname, &bp, &vp, state, GRUB_PARSER_STATE_TEXT); + if (add_var (varname, buffer, state, GRUB_PARSER_STATE_TEXT) != GRUB_ERR_NONE) + goto fail; /* Ensure that the last argument is terminated. */ - terminate_arg (buffer, &bp, argc); + if (terminate_arg (buffer, argc) != GRUB_ERR_NONE) + goto fail; /* If there are no args, then we're done. */ if (!*argc) @@ -242,38 +259,45 @@ grub_parser_split_cmdline (const char *cmdline, goto out; } - /* Reserve memory for the return values. */ - args = grub_malloc (bp - buffer); - if (!args) - goto fail; - grub_memcpy (args, buffer, bp - buffer); - *argv = grub_calloc (*argc + 1, sizeof (char *)); if (!*argv) goto fail; /* The arguments are separated with 0's, setup argv so it points to the right values. */ - bp = args; for (i = 0; i < *argc; i++) { - (*argv)[i] = bp; - while (*bp) - bp++; - bp++; + char *arg; + + if (i > 0) + { + if (grub_buffer_advance_read_pos (buffer, 1) != GRUB_ERR_NONE) + goto fail; + } + + arg = (char *) grub_buffer_peek_data (buffer); + if (arg == NULL || + grub_buffer_advance_read_pos (buffer, grub_strlen (arg)) != GRUB_ERR_NONE) + goto fail; + + (*argv)[i] = arg; } + /* Keep memory for the return values. */ + grub_buffer_take_data (buffer); + grub_errno = GRUB_ERR_NONE; out: if (rd != cmdline) grub_free (rd); + grub_buffer_free (buffer); + grub_buffer_free (varname); return grub_errno; fail: grub_free (*argv); - grub_free (args); goto out; } -- 2.14.2 ================================================ FILE: boot/grub2/0133-kern-efi-Add-initial-stack-protector-implementation.patch ================================================ From 133d73079c5771bbf3d8311281b6772846357ec1 Mon Sep 17 00:00:00 2001 From: Chris Coulson Date: Tue, 1 Dec 2020 23:03:39 +0000 Subject: [PATCH] kern/efi: Add initial stack protector implementation It works only on UEFI platforms but can be quite easily extended to others architectures and platforms if needed. Signed-off-by: Chris Coulson Signed-off-by: Daniel Kiper Reviewed-by: Marco A Benatto Reviewed-by: Javier Martinez Canillas Signed-off-by: Stefan Sørensen --- acinclude.m4 | 38 ++++++++++++++++- configure | 97 +++++++++++++++++++++++++++++++++++++++--- configure.ac | 44 ++++++++++++++++--- grub-core/Makefile.am | 1 + grub-core/Makefile.in | 1 + grub-core/kern/efi/init.c | 54 +++++++++++++++++++++++ include/grub/efi/api.h | 19 +++++++++ include/grub/stack_protector.h | 30 +++++++++++++ po/POTFILES.in | 1 + 9 files changed, 272 insertions(+), 13 deletions(-) create mode 100644 include/grub/stack_protector.h diff --git a/acinclude.m4 b/acinclude.m4 index 78cdf6e..6e14bb5 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -305,9 +305,9 @@ fi ]) -dnl Check if the C compiler supports `-fstack-protector'. +dnl Check if the C compiler supports the stack protector AC_DEFUN([grub_CHECK_STACK_PROTECTOR],[ -[# Smashing stack protector. +[# Stack smashing protector. ssp_possible=yes] AC_MSG_CHECKING([whether `$CC' accepts `-fstack-protector']) # Is this a reliable test case? @@ -324,6 +324,40 @@ else ssp_possible=no] AC_MSG_RESULT([no]) [fi] +[# Strong stack smashing protector. +ssp_strong_possible=yes] +AC_MSG_CHECKING([whether `$CC' accepts `-fstack-protector-strong']) +# Is this a reliable test case? +AC_LANG_CONFTEST([AC_LANG_SOURCE([[ +void foo (void) { volatile char a[8]; a[3]; } +]])]) +[# `$CC -c -o ...' might not be portable. But, oh, well... Is calling +# `ac_compile' like this correct, after all? +if eval "$ac_compile -S -fstack-protector-strong -o conftest.s" 2> /dev/null; then] + AC_MSG_RESULT([yes]) + [# Should we clear up other files as well, having called `AC_LANG_CONFTEST'? + rm -f conftest.s +else + ssp_strong_possible=no] + AC_MSG_RESULT([no]) +[fi] +[# Global stack smashing protector. +ssp_global_possible=yes] +AC_MSG_CHECKING([whether `$CC' accepts `-mstack-protector-guard=global']) +# Is this a reliable test case? +AC_LANG_CONFTEST([AC_LANG_SOURCE([[ +void foo (void) { volatile char a[8]; a[3]; } +]])]) +[# `$CC -c -o ...' might not be portable. But, oh, well... Is calling +# `ac_compile' like this correct, after all? +if eval "$ac_compile -S -fstack-protector -mstack-protector-guard=global -o conftest.s" 2> /dev/null; then] + AC_MSG_RESULT([yes]) + [# Should we clear up other files as well, having called `AC_LANG_CONFTEST'? + rm -f conftest.s +else + ssp_global_possible=no] + AC_MSG_RESULT([no]) +[fi] ]) dnl Check if the C compiler supports `-mstack-arg-probe' (Cygwin). diff --git a/configure b/configure index 9290ae8..973f702 100755 --- a/configure +++ b/configure @@ -1778,6 +1778,7 @@ with_libintl_prefix with_libpth_prefix with_included_regex enable_efiemu +enable_stack_protector enable_mm_debug enable_cache_stats enable_boot_time @@ -2459,6 +2460,8 @@ Optional Features: --disable-rpath do not hardcode runtime library paths --enable-efiemu build and install the efiemu runtimes (default=guessed) + --enable-stack-protector + enable the stack protector --enable-mm-debug include memory manager debugging --enable-cache-stats enable disk cache statistics collection --enable-boot-time enable boot time statistics collection @@ -32348,9 +32351,9 @@ fi CFLAGS="$TARGET_CFLAGS" -# Smashing stack protector. +# Stack smashing protector. -# Smashing stack protector. +# Stack smashing protector. ssp_possible=yes { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`$CC' accepts \`-fstack-protector'" >&5 $as_echo_n "checking whether \`$CC' accepts \`-fstack-protector'... " >&6; } @@ -32373,11 +32376,88 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi +# Strong stack smashing protector. +ssp_strong_possible=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`$CC' accepts \`-fstack-protector-strong'" >&5 +$as_echo_n "checking whether \`$CC' accepts \`-fstack-protector-strong'... " >&6; } +# Is this a reliable test case? +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -# Need that, because some distributions ship compilers that include -# `-fstack-protector' in the default specs. -if test "x$ssp_possible" = xyes; then - TARGET_CFLAGS="$TARGET_CFLAGS -fno-stack-protector" +void foo (void) { volatile char a[8]; a[3]; } + +_ACEOF +# `$CC -c -o ...' might not be portable. But, oh, well... Is calling +# `ac_compile' like this correct, after all? +if eval "$ac_compile -S -fstack-protector-strong -o conftest.s" 2> /dev/null; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + # Should we clear up other files as well, having called `AC_LANG_CONFTEST'? + rm -f conftest.s +else + ssp_strong_possible=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +# Global stack smashing protector. +ssp_global_possible=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`$CC' accepts \`-mstack-protector-guard=global'" >&5 +$as_echo_n "checking whether \`$CC' accepts \`-mstack-protector-guard=global'... " >&6; } +# Is this a reliable test case? +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +void foo (void) { volatile char a[8]; a[3]; } + +_ACEOF +# `$CC -c -o ...' might not be portable. But, oh, well... Is calling +# `ac_compile' like this correct, after all? +if eval "$ac_compile -S -fstack-protector -mstack-protector-guard=global -o conftest.s" 2> /dev/null; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + # Should we clear up other files as well, having called `AC_LANG_CONFTEST'? + rm -f conftest.s +else + ssp_global_possible=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +# Check whether --enable-stack-protector was given. +if test "${enable_stack_protector+set}" = set; then : + enableval=$enable_stack_protector; +else + enable_stack_protector=no +fi + +if test "x$enable_stack_protector" = xno; then + if test "x$ssp_possible" = xyes; then + # Need that, because some distributions ship compilers that include + # `-fstack-protector' in the default specs. + TARGET_CFLAGS="$TARGET_CFLAGS -fno-stack-protector" + fi +elif test "x$platform" != xefi; then + as_fn_error $? "--enable-stack-protector is only supported on EFI platforms" "$LINENO" 5 +elif test "x$ssp_global_possible" != xyes; then + as_fn_error $? "--enable-stack-protector is not supported (compiler doesn't support -mstack-protector-guard=global)" "$LINENO" 5 +else + TARGET_CFLAGS="$TARGET_CFLAGS -mstack-protector-guard=global" + if test "x$enable_stack_protector" = xyes; then + if test "x$ssp_possible" != xyes; then + as_fn_error $? "--enable-stack-protector is not supported (compiler doesn't support -fstack-protector)" "$LINENO" 5 + fi + TARGET_CFLAGS="$TARGET_CFLAGS -fstack-protector" + elif test "x$enable_stack_protector" = xstrong; then + if test "x$ssp_strong_possible" != xyes; then + as_fn_error $? "--enable-stack-protector=strong is not supported (compiler doesn't support -fstack-protector-strong)" "$LINENO" 5 + fi + TARGET_CFLAGS="$TARGET_CFLAGS -fstack-protector-strong" + else + # Note, -fstack-protector-all requires that the protector is disabled for + # functions that appear in the call stack when the canary is initialized. + as_fn_error $? "invalid value $enable_stack_protector for --enable-stack-protector" "$LINENO" 5 + fi + TARGET_CPPFLAGS="$TARGET_CPPFLAGS -DGRUB_STACK_PROTECTOR=1" fi CFLAGS="$TARGET_CFLAGS" @@ -37054,5 +37134,10 @@ echo "Without liblzma (no support for XZ-compressed mips images) ($liblzma_excus else echo "With liblzma from $LIBLZMA (support for XZ-compressed mips images)" fi +if test "x$enable_stack_protector" != xno; then +echo "With stack smashing protector: Yes" +else +echo "With stack smashing protector: No" +fi echo "*******************************************************" diff --git a/configure.ac b/configure.ac index 7656f24..bb6b02a 100644 --- a/configure.ac +++ b/configure.ac @@ -1285,12 +1285,41 @@ fi] CFLAGS="$TARGET_CFLAGS" -# Smashing stack protector. +# Stack smashing protector. grub_CHECK_STACK_PROTECTOR -# Need that, because some distributions ship compilers that include -# `-fstack-protector' in the default specs. -if test "x$ssp_possible" = xyes; then - TARGET_CFLAGS="$TARGET_CFLAGS -fno-stack-protector" +AC_ARG_ENABLE([stack-protector], + AS_HELP_STRING([--enable-stack-protector], + [enable the stack protector]), + [], + [enable_stack_protector=no]) +if test "x$enable_stack_protector" = xno; then + if test "x$ssp_possible" = xyes; then + # Need that, because some distributions ship compilers that include + # `-fstack-protector' in the default specs. + TARGET_CFLAGS="$TARGET_CFLAGS -fno-stack-protector" + fi +elif test "x$platform" != xefi; then + AC_MSG_ERROR([--enable-stack-protector is only supported on EFI platforms]) +elif test "x$ssp_global_possible" != xyes; then + AC_MSG_ERROR([--enable-stack-protector is not supported (compiler doesn't support -mstack-protector-guard=global)]) +else + TARGET_CFLAGS="$TARGET_CFLAGS -mstack-protector-guard=global" + if test "x$enable_stack_protector" = xyes; then + if test "x$ssp_possible" != xyes; then + AC_MSG_ERROR([--enable-stack-protector is not supported (compiler doesn't support -fstack-protector)]) + fi + TARGET_CFLAGS="$TARGET_CFLAGS -fstack-protector" + elif test "x$enable_stack_protector" = xstrong; then + if test "x$ssp_strong_possible" != xyes; then + AC_MSG_ERROR([--enable-stack-protector=strong is not supported (compiler doesn't support -fstack-protector-strong)]) + fi + TARGET_CFLAGS="$TARGET_CFLAGS -fstack-protector-strong" + else + # Note, -fstack-protector-all requires that the protector is disabled for + # functions that appear in the call stack when the canary is initialized. + AC_MSG_ERROR([invalid value $enable_stack_protector for --enable-stack-protector]) + fi + TARGET_CPPFLAGS="$TARGET_CPPFLAGS -DGRUB_STACK_PROTECTOR=1" fi CFLAGS="$TARGET_CFLAGS" @@ -2103,5 +2132,10 @@ echo "Without liblzma (no support for XZ-compressed mips images) ($liblzma_excus else echo "With liblzma from $LIBLZMA (support for XZ-compressed mips images)" fi +if test "x$enable_stack_protector" != xno; then +echo "With stack smashing protector: Yes" +else +echo "With stack smashing protector: No" +fi echo "*******************************************************" ] diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am index 30e23ad..ee88e44 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -90,6 +90,7 @@ endif KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/mm.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/parser.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/partition.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/stack_protector.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/term.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/time.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/verify.h diff --git a/grub-core/Makefile.in b/grub-core/Makefile.in index 1f8133b..50c70b5 100644 --- a/grub-core/Makefile.in +++ b/grub-core/Makefile.in @@ -16425,6 +16425,7 @@ KERNEL_HEADER_FILES = $(top_srcdir)/include/grub/cache.h \ $(am__append_5795) $(top_srcdir)/include/grub/mm.h \ $(top_srcdir)/include/grub/parser.h \ $(top_srcdir)/include/grub/partition.h \ + $(top_srcdir)/include/grub/stack_protector.h \ $(top_srcdir)/include/grub/term.h \ $(top_srcdir)/include/grub/time.h \ $(top_srcdir)/include/grub/verify.h \ diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c index 1333465..7facacf 100644 --- a/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c @@ -27,6 +27,58 @@ #include #include #include +#include + +#ifdef GRUB_STACK_PROTECTOR + +static grub_efi_guid_t rng_protocol_guid = GRUB_EFI_RNG_PROTOCOL_GUID; + +/* + * Don't put this on grub_efi_init()'s local stack to avoid it + * getting a stack check. + */ +static grub_efi_uint8_t stack_chk_guard_buf[32]; + +grub_addr_t __stack_chk_guard; + +void __attribute__ ((noreturn)) +__stack_chk_fail (void) +{ + /* + * Assume it's not safe to call into EFI Boot Services. Sorry, that + * means no console message here. + */ + do + { + /* Do not optimize out the loop. */ + asm volatile (""); + } + while (1); +} + +static void +stack_protector_init (void) +{ + grub_efi_rng_protocol_t *rng; + + /* Set up the stack canary. Make errors here non-fatal for now. */ + rng = grub_efi_locate_protocol (&rng_protocol_guid, NULL); + if (rng != NULL) + { + grub_efi_status_t status; + + status = efi_call_4 (rng->get_rng, rng, NULL, sizeof (stack_chk_guard_buf), + stack_chk_guard_buf); + if (status == GRUB_EFI_SUCCESS) + grub_memcpy (&__stack_chk_guard, stack_chk_guard_buf, sizeof (__stack_chk_guard)); + } +} +#else +static void +stack_protector_init (void) +{ +} +#endif grub_addr_t grub_modbase; @@ -38,6 +90,8 @@ grub_efi_init (void) messages. */ grub_console_init (); + stack_protector_init (); + /* Initialize the memory management system. */ grub_efi_mm_init (); diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h index 13e5715..5517f7e 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h @@ -339,6 +339,11 @@ { 0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23 } \ } +#define GRUB_EFI_RNG_PROTOCOL_GUID \ + { 0x3152bca5, 0xeade, 0x433d, \ + { 0x86, 0x2e, 0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44 } \ + } + struct grub_efi_sal_system_table { grub_uint32_t signature; @@ -1700,6 +1705,20 @@ struct grub_efi_shim_lock_protocol }; typedef struct grub_efi_shim_lock_protocol grub_efi_shim_lock_protocol_t; +typedef grub_efi_guid_t grub_efi_rng_algorithm_t; + +struct grub_efi_rng_protocol +{ + grub_efi_status_t (*get_info) (struct grub_efi_rng_protocol *this, + grub_efi_uintn_t *rng_algorithm_list_size, + grub_efi_rng_algorithm_t *rng_algorithm_list); + grub_efi_status_t (*get_rng) (struct grub_efi_rng_protocol *this, + grub_efi_rng_algorithm_t *rng_algorithm, + grub_efi_uintn_t rng_value_length, + grub_efi_uint8_t *rng_value); +}; +typedef struct grub_efi_rng_protocol grub_efi_rng_protocol_t; + #if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \ || defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) \ || defined(__riscv) diff --git a/include/grub/stack_protector.h b/include/grub/stack_protector.h new file mode 100644 index 0000000..c88dc00 --- /dev/null +++ b/include/grub/stack_protector.h @@ -0,0 +1,30 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2021 Free Software Foundation, Inc. + * + * GRUB 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. + * + * GRUB 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 GRUB. If not, see . + */ + +#ifndef GRUB_STACK_PROTECTOR_H +#define GRUB_STACK_PROTECTOR_H 1 + +#include +#include + +#ifdef GRUB_STACK_PROTECTOR +extern grub_addr_t EXPORT_VAR (__stack_chk_guard); +extern void __attribute__ ((noreturn)) EXPORT_FUNC (__stack_chk_fail) (void); +#endif + +#endif /* GRUB_STACK_PROTECTOR_H */ diff --git a/po/POTFILES.in b/po/POTFILES.in index 7753ab4..ef42c7d 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1319,6 +1319,7 @@ ./include/grub/sparc64/time.h ./include/grub/sparc64/types.h ./include/grub/speaker.h +./include/grub/stack_protector.h ./include/grub/symbol.h ./include/grub/syslinux_parse.h ./include/grub/term.h -- 2.14.2 ================================================ FILE: boot/grub2/0134-util-mkimage-Remove-unused-code-to-add-BSS-section.patch ================================================ From d52f78def1b9c4f435fdbf6b24fd899208580c76 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 11 Feb 2021 17:06:49 +0100 Subject: [PATCH] util/mkimage: Remove unused code to add BSS section The code is compiled out so there is no reason to keep it. Additionally, don't set bss_size field since we do not add a BSS section. Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- util/mkimage.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/util/mkimage.c b/util/mkimage.c index 37d6249..32bb8ea 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -1304,7 +1304,6 @@ grub_install_generate_image (const char *dir, const char *prefix, o->code_size = grub_host_to_target32 (layout.exec_size); o->data_size = grub_cpu_to_le32 (reloc_addr - layout.exec_size - header_size); - o->bss_size = grub_cpu_to_le32 (layout.bss_size); o->entry_addr = grub_cpu_to_le32 (layout.start_address); o->code_base = grub_cpu_to_le32 (header_size); @@ -1342,7 +1341,6 @@ grub_install_generate_image (const char *dir, const char *prefix, o->code_size = grub_host_to_target32 (layout.exec_size); o->data_size = grub_cpu_to_le32 (reloc_addr - layout.exec_size - header_size); - o->bss_size = grub_cpu_to_le32 (layout.bss_size); o->entry_addr = grub_cpu_to_le32 (layout.start_address); o->code_base = grub_cpu_to_le32 (header_size); o->image_base = 0; @@ -1387,21 +1385,6 @@ grub_install_generate_image (const char *dir, const char *prefix, = grub_cpu_to_le32_compile_time (GRUB_PE32_SCN_CNT_INITIALIZED_DATA | GRUB_PE32_SCN_MEM_READ | GRUB_PE32_SCN_MEM_WRITE); - -#if 0 - bss_section = data_section + 1; - strcpy (bss_section->name, ".bss"); - bss_section->virtual_size = grub_cpu_to_le32 (layout.bss_size); - bss_section->virtual_address = grub_cpu_to_le32 (header_size + layout.kernel_size); - bss_section->raw_data_size = 0; - bss_section->raw_data_offset = 0; - bss_section->characteristics - = grub_cpu_to_le32_compile_time (GRUB_PE32_SCN_MEM_READ - | GRUB_PE32_SCN_MEM_WRITE - | GRUB_PE32_SCN_ALIGN_64BYTES - | GRUB_PE32_SCN_CNT_INITIALIZED_DATA - | 0x80); -#endif mods_section = data_section + 1; strcpy (mods_section->name, "mods"); -- 2.14.2 ================================================ FILE: boot/grub2/0135-util-mkimage-Use-grub_host_to_target32-instead-of-gr.patch ================================================ From 1710452aca05ccdd21e74390ec08c63fdf0ee10a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 15 Feb 2021 13:59:21 +0100 Subject: [PATCH] util/mkimage: Use grub_host_to_target32() instead of grub_cpu_to_le32() The latter doesn't take into account the target image endianness. There is a grub_cpu_to_le32_compile_time() but no compile time variant for function grub_host_to_target32(). So, let's keep using the other one for this case. Signed-off-by: Peter Jones Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- util/mkimage.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/util/mkimage.c b/util/mkimage.c index 32bb8ea..02944f2 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -1302,10 +1302,10 @@ grub_install_generate_image (const char *dir, const char *prefix, + sizeof (struct grub_pe32_coff_header)); o->magic = grub_host_to_target16 (GRUB_PE32_PE32_MAGIC); o->code_size = grub_host_to_target32 (layout.exec_size); - o->data_size = grub_cpu_to_le32 (reloc_addr - layout.exec_size + o->data_size = grub_host_to_target32 (reloc_addr - layout.exec_size - header_size); - o->entry_addr = grub_cpu_to_le32 (layout.start_address); - o->code_base = grub_cpu_to_le32 (header_size); + o->entry_addr = grub_host_to_target32 (layout.start_address); + o->code_base = grub_host_to_target32 (header_size); o->data_base = grub_host_to_target32 (header_size + layout.exec_size); @@ -1339,10 +1339,10 @@ grub_install_generate_image (const char *dir, const char *prefix, + sizeof (struct grub_pe32_coff_header)); o->magic = grub_host_to_target16 (GRUB_PE32_PE64_MAGIC); o->code_size = grub_host_to_target32 (layout.exec_size); - o->data_size = grub_cpu_to_le32 (reloc_addr - layout.exec_size + o->data_size = grub_host_to_target32 (reloc_addr - layout.exec_size - header_size); - o->entry_addr = grub_cpu_to_le32 (layout.start_address); - o->code_base = grub_cpu_to_le32 (header_size); + o->entry_addr = grub_host_to_target32 (layout.start_address); + o->code_base = grub_host_to_target32 (header_size); o->image_base = 0; o->section_alignment = grub_host_to_target32 (image_target->section_align); o->file_alignment = grub_host_to_target32 (GRUB_PE32_FILE_ALIGNMENT); @@ -1366,10 +1366,10 @@ grub_install_generate_image (const char *dir, const char *prefix, /* The sections. */ text_section = sections; strcpy (text_section->name, ".text"); - text_section->virtual_size = grub_cpu_to_le32 (layout.exec_size); - text_section->virtual_address = grub_cpu_to_le32 (header_size); - text_section->raw_data_size = grub_cpu_to_le32 (layout.exec_size); - text_section->raw_data_offset = grub_cpu_to_le32 (header_size); + text_section->virtual_size = grub_host_to_target32 (layout.exec_size); + text_section->virtual_address = grub_host_to_target32 (header_size); + text_section->raw_data_size = grub_host_to_target32 (layout.exec_size); + text_section->raw_data_offset = grub_host_to_target32 (header_size); text_section->characteristics = grub_cpu_to_le32_compile_time ( GRUB_PE32_SCN_CNT_CODE | GRUB_PE32_SCN_MEM_EXECUTE @@ -1377,10 +1377,10 @@ grub_install_generate_image (const char *dir, const char *prefix, data_section = text_section + 1; strcpy (data_section->name, ".data"); - data_section->virtual_size = grub_cpu_to_le32 (layout.kernel_size - layout.exec_size); - data_section->virtual_address = grub_cpu_to_le32 (header_size + layout.exec_size); - data_section->raw_data_size = grub_cpu_to_le32 (layout.kernel_size - layout.exec_size); - data_section->raw_data_offset = grub_cpu_to_le32 (header_size + layout.exec_size); + data_section->virtual_size = grub_host_to_target32 (layout.kernel_size - layout.exec_size); + data_section->virtual_address = grub_host_to_target32 (header_size + layout.exec_size); + data_section->raw_data_size = grub_host_to_target32 (layout.kernel_size - layout.exec_size); + data_section->raw_data_offset = grub_host_to_target32 (header_size + layout.exec_size); data_section->characteristics = grub_cpu_to_le32_compile_time (GRUB_PE32_SCN_CNT_INITIALIZED_DATA | GRUB_PE32_SCN_MEM_READ @@ -1388,10 +1388,10 @@ grub_install_generate_image (const char *dir, const char *prefix, mods_section = data_section + 1; strcpy (mods_section->name, "mods"); - mods_section->virtual_size = grub_cpu_to_le32 (reloc_addr - layout.kernel_size - header_size); - mods_section->virtual_address = grub_cpu_to_le32 (header_size + layout.kernel_size + layout.bss_size); - mods_section->raw_data_size = grub_cpu_to_le32 (reloc_addr - layout.kernel_size - header_size); - mods_section->raw_data_offset = grub_cpu_to_le32 (header_size + layout.kernel_size); + mods_section->virtual_size = grub_host_to_target32 (reloc_addr - layout.kernel_size - header_size); + mods_section->virtual_address = grub_host_to_target32 (header_size + layout.kernel_size + layout.bss_size); + mods_section->raw_data_size = grub_host_to_target32 (reloc_addr - layout.kernel_size - header_size); + mods_section->raw_data_offset = grub_host_to_target32 (header_size + layout.kernel_size); mods_section->characteristics = grub_cpu_to_le32_compile_time (GRUB_PE32_SCN_CNT_INITIALIZED_DATA | GRUB_PE32_SCN_MEM_READ @@ -1399,10 +1399,10 @@ grub_install_generate_image (const char *dir, const char *prefix, reloc_section = mods_section + 1; strcpy (reloc_section->name, ".reloc"); - reloc_section->virtual_size = grub_cpu_to_le32 (layout.reloc_size); - reloc_section->virtual_address = grub_cpu_to_le32 (reloc_addr + layout.bss_size); - reloc_section->raw_data_size = grub_cpu_to_le32 (layout.reloc_size); - reloc_section->raw_data_offset = grub_cpu_to_le32 (reloc_addr); + reloc_section->virtual_size = grub_host_to_target32 (layout.reloc_size); + reloc_section->virtual_address = grub_host_to_target32 (reloc_addr + layout.bss_size); + reloc_section->raw_data_size = grub_host_to_target32 (layout.reloc_size); + reloc_section->raw_data_offset = grub_host_to_target32 (reloc_addr); reloc_section->characteristics = grub_cpu_to_le32_compile_time (GRUB_PE32_SCN_CNT_INITIALIZED_DATA | GRUB_PE32_SCN_MEM_DISCARDABLE -- 2.14.2 ================================================ FILE: boot/grub2/0136-util-mkimage-Always-use-grub_host_to_target32-to-ini.patch ================================================ From ae8936f9c375e1a38129e85a1b5d573fb451f288 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 15 Feb 2021 14:14:24 +0100 Subject: [PATCH] util/mkimage: Always use grub_host_to_target32() to initialize PE stack and heap stuff This change does not impact final result of initialization itself. However, it eases PE code unification in subsequent patches. Signed-off-by: Peter Jones Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- util/mkimage.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/util/mkimage.c b/util/mkimage.c index 02944f2..b94bfb7 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -1351,10 +1351,10 @@ grub_install_generate_image (const char *dir, const char *prefix, o->subsystem = grub_host_to_target16 (GRUB_PE32_SUBSYSTEM_EFI_APPLICATION); /* Do these really matter? */ - o->stack_reserve_size = grub_host_to_target64 (0x10000); - o->stack_commit_size = grub_host_to_target64 (0x10000); - o->heap_reserve_size = grub_host_to_target64 (0x10000); - o->heap_commit_size = grub_host_to_target64 (0x10000); + o->stack_reserve_size = grub_host_to_target32 (0x10000); + o->stack_commit_size = grub_host_to_target32 (0x10000); + o->heap_reserve_size = grub_host_to_target32 (0x10000); + o->heap_commit_size = grub_host_to_target32 (0x10000); o->num_data_directories = grub_host_to_target32 (GRUB_PE32_NUM_DATA_DIRECTORIES); -- 2.14.2 ================================================ FILE: boot/grub2/0137-util-mkimage-Unify-more-of-the-PE32-and-PE32-header-.patch ================================================ From a4e8936f010a8e928e973b80390c8f83ad6b8000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 15 Feb 2021 14:19:31 +0100 Subject: [PATCH] util/mkimage: Unify more of the PE32 and PE32+ header set-up There's quite a bit of code duplication in the code that sets the optional header for PE32 and PE32+. The two are very similar with the exception of a few fields that have type grub_uint64_t instead of grub_uint32_t. Factor out the common code and add a PE_OHDR() macro that simplifies the set-up and make the code more readable. Signed-off-by: Peter Jones Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- util/mkimage.c | 111 ++++++++++++++++++++++++++------------------------------- 1 file changed, 51 insertions(+), 60 deletions(-) diff --git a/util/mkimage.c b/util/mkimage.c index b94bfb7..a039039 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -816,6 +816,21 @@ grub_install_get_image_targets_string (void) return formats; } +/* + * tmp_ is just here so the compiler knows we'll never derefernce a NULL. + * It should get fully optimized away. + */ +#define PE_OHDR(o32, o64, field) (*( \ +{ \ + __typeof__((o64)->field) tmp_; \ + __typeof__((o64)->field) *ret_ = &tmp_; \ + if (o32) \ + ret_ = (void *)(&((o32)->field)); \ + else if (o64) \ + ret_ = (void *)(&((o64)->field)); \ + ret_; \ +})) + void grub_install_generate_image (const char *dir, const char *prefix, FILE *out, const char *outname, char *mods[], @@ -1252,6 +1267,8 @@ grub_install_generate_image (const char *dir, const char *prefix, static const grub_uint8_t stub[] = GRUB_PE32_MSDOS_STUB; int header_size; int reloc_addr; + struct grub_pe32_optional_header *o32 = NULL; + struct grub_pe64_optional_header *o64 = NULL; if (image_target->voidp_sizeof == 4) header_size = EFI32_HEADER_SIZE; @@ -1293,76 +1310,50 @@ grub_install_generate_image (const char *dir, const char *prefix, /* The PE Optional header. */ if (image_target->voidp_sizeof == 4) { - struct grub_pe32_optional_header *o; - c->optional_header_size = grub_host_to_target16 (sizeof (struct grub_pe32_optional_header)); - o = (struct grub_pe32_optional_header *) - (header + GRUB_PE32_MSDOS_STUB_SIZE + GRUB_PE32_SIGNATURE_SIZE - + sizeof (struct grub_pe32_coff_header)); - o->magic = grub_host_to_target16 (GRUB_PE32_PE32_MAGIC); - o->code_size = grub_host_to_target32 (layout.exec_size); - o->data_size = grub_host_to_target32 (reloc_addr - layout.exec_size - - header_size); - o->entry_addr = grub_host_to_target32 (layout.start_address); - o->code_base = grub_host_to_target32 (header_size); - - o->data_base = grub_host_to_target32 (header_size + layout.exec_size); - - o->image_base = 0; - o->section_alignment = grub_host_to_target32 (image_target->section_align); - o->file_alignment = grub_host_to_target32 (GRUB_PE32_FILE_ALIGNMENT); - o->image_size = grub_host_to_target32 (pe_size); - o->header_size = grub_host_to_target32 (header_size); - o->subsystem = grub_host_to_target16 (GRUB_PE32_SUBSYSTEM_EFI_APPLICATION); - - /* Do these really matter? */ - o->stack_reserve_size = grub_host_to_target32 (0x10000); - o->stack_commit_size = grub_host_to_target32 (0x10000); - o->heap_reserve_size = grub_host_to_target32 (0x10000); - o->heap_commit_size = grub_host_to_target32 (0x10000); - - o->num_data_directories = grub_host_to_target32 (GRUB_PE32_NUM_DATA_DIRECTORIES); + o32 = (struct grub_pe32_optional_header *) + (header + GRUB_PE32_MSDOS_STUB_SIZE + GRUB_PE32_SIGNATURE_SIZE + + sizeof (struct grub_pe32_coff_header)); + o32->magic = grub_host_to_target16 (GRUB_PE32_PE32_MAGIC); + o32->data_base = grub_host_to_target32 (header_size + layout.exec_size); - o->base_relocation_table.rva = grub_host_to_target32 (reloc_addr); - o->base_relocation_table.size = grub_host_to_target32 (layout.reloc_size); - sections = o + 1; + sections = o32 + 1; } else { - struct grub_pe64_optional_header *o; - c->optional_header_size = grub_host_to_target16 (sizeof (struct grub_pe64_optional_header)); - o = (struct grub_pe64_optional_header *) - (header + GRUB_PE32_MSDOS_STUB_SIZE + GRUB_PE32_SIGNATURE_SIZE - + sizeof (struct grub_pe32_coff_header)); - o->magic = grub_host_to_target16 (GRUB_PE32_PE64_MAGIC); - o->code_size = grub_host_to_target32 (layout.exec_size); - o->data_size = grub_host_to_target32 (reloc_addr - layout.exec_size - - header_size); - o->entry_addr = grub_host_to_target32 (layout.start_address); - o->code_base = grub_host_to_target32 (header_size); - o->image_base = 0; - o->section_alignment = grub_host_to_target32 (image_target->section_align); - o->file_alignment = grub_host_to_target32 (GRUB_PE32_FILE_ALIGNMENT); - o->image_size = grub_host_to_target32 (pe_size); - o->header_size = grub_host_to_target32 (header_size); - o->subsystem = grub_host_to_target16 (GRUB_PE32_SUBSYSTEM_EFI_APPLICATION); - - /* Do these really matter? */ - o->stack_reserve_size = grub_host_to_target32 (0x10000); - o->stack_commit_size = grub_host_to_target32 (0x10000); - o->heap_reserve_size = grub_host_to_target32 (0x10000); - o->heap_commit_size = grub_host_to_target32 (0x10000); - - o->num_data_directories - = grub_host_to_target32 (GRUB_PE32_NUM_DATA_DIRECTORIES); + o64 = (struct grub_pe64_optional_header *) + (header + GRUB_PE32_MSDOS_STUB_SIZE + GRUB_PE32_SIGNATURE_SIZE + + sizeof (struct grub_pe32_coff_header)); + o64->magic = grub_host_to_target16 (GRUB_PE32_PE64_MAGIC); - o->base_relocation_table.rva = grub_host_to_target32 (reloc_addr); - o->base_relocation_table.size = grub_host_to_target32 (layout.reloc_size); - sections = o + 1; + sections = o64 + 1; } + + PE_OHDR (o32, o64, code_size) = grub_host_to_target32 (layout.exec_size); + PE_OHDR (o32, o64, data_size) = grub_host_to_target32 (reloc_addr - layout.exec_size - header_size); + PE_OHDR (o32, o64, entry_addr) = grub_host_to_target32 (layout.start_address); + PE_OHDR (o32, o64, code_base) = grub_host_to_target32 (header_size); + + PE_OHDR (o32, o64, image_base) = 0; + PE_OHDR (o32, o64, section_alignment) = grub_host_to_target32 (image_target->section_align); + PE_OHDR (o32, o64, file_alignment) = grub_host_to_target32 (GRUB_PE32_FILE_ALIGNMENT); + PE_OHDR (o32, o64, image_size) = grub_host_to_target32 (pe_size); + PE_OHDR (o32, o64, header_size) = grub_host_to_target32 (header_size); + PE_OHDR (o32, o64, subsystem) = grub_host_to_target16 (GRUB_PE32_SUBSYSTEM_EFI_APPLICATION); + + /* Do these really matter? */ + PE_OHDR (o32, o64, stack_reserve_size) = grub_host_to_target32 (0x10000); + PE_OHDR (o32, o64, stack_commit_size) = grub_host_to_target32 (0x10000); + PE_OHDR (o32, o64, heap_reserve_size) = grub_host_to_target32 (0x10000); + PE_OHDR (o32, o64, heap_commit_size) = grub_host_to_target32 (0x10000); + + PE_OHDR (o32, o64, num_data_directories) = grub_host_to_target32 (GRUB_PE32_NUM_DATA_DIRECTORIES); + PE_OHDR (o32, o64, base_relocation_table.rva) = grub_host_to_target32 (reloc_addr); + PE_OHDR (o32, o64, base_relocation_table.size) = grub_host_to_target32 (layout.reloc_size); + /* The sections. */ text_section = sections; strcpy (text_section->name, ".text"); -- 2.14.2 ================================================ FILE: boot/grub2/0138-util-mkimage-Reorder-PE-optional-header-fields-set-u.patch ================================================ From ba44c87e56a8bccde235ebb7d41d5aa54604d241 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 15 Feb 2021 14:21:48 +0100 Subject: [PATCH] util/mkimage: Reorder PE optional header fields set-up This makes the PE32 and PE32+ header fields set-up easier to follow by setting them closer to the initialization of their related sections. Signed-off-by: Peter Jones Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- util/mkimage.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/util/mkimage.c b/util/mkimage.c index a039039..deaef56 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -1332,16 +1332,12 @@ grub_install_generate_image (const char *dir, const char *prefix, sections = o64 + 1; } - PE_OHDR (o32, o64, code_size) = grub_host_to_target32 (layout.exec_size); - PE_OHDR (o32, o64, data_size) = grub_host_to_target32 (reloc_addr - layout.exec_size - header_size); + PE_OHDR (o32, o64, header_size) = grub_host_to_target32 (header_size); PE_OHDR (o32, o64, entry_addr) = grub_host_to_target32 (layout.start_address); - PE_OHDR (o32, o64, code_base) = grub_host_to_target32 (header_size); - PE_OHDR (o32, o64, image_base) = 0; + PE_OHDR (o32, o64, image_size) = grub_host_to_target32 (pe_size); PE_OHDR (o32, o64, section_alignment) = grub_host_to_target32 (image_target->section_align); PE_OHDR (o32, o64, file_alignment) = grub_host_to_target32 (GRUB_PE32_FILE_ALIGNMENT); - PE_OHDR (o32, o64, image_size) = grub_host_to_target32 (pe_size); - PE_OHDR (o32, o64, header_size) = grub_host_to_target32 (header_size); PE_OHDR (o32, o64, subsystem) = grub_host_to_target16 (GRUB_PE32_SUBSYSTEM_EFI_APPLICATION); /* Do these really matter? */ @@ -1351,10 +1347,10 @@ grub_install_generate_image (const char *dir, const char *prefix, PE_OHDR (o32, o64, heap_commit_size) = grub_host_to_target32 (0x10000); PE_OHDR (o32, o64, num_data_directories) = grub_host_to_target32 (GRUB_PE32_NUM_DATA_DIRECTORIES); - PE_OHDR (o32, o64, base_relocation_table.rva) = grub_host_to_target32 (reloc_addr); - PE_OHDR (o32, o64, base_relocation_table.size) = grub_host_to_target32 (layout.reloc_size); /* The sections. */ + PE_OHDR (o32, o64, code_base) = grub_host_to_target32 (header_size); + PE_OHDR (o32, o64, code_size) = grub_host_to_target32 (layout.exec_size); text_section = sections; strcpy (text_section->name, ".text"); text_section->virtual_size = grub_host_to_target32 (layout.exec_size); @@ -1366,6 +1362,8 @@ grub_install_generate_image (const char *dir, const char *prefix, | GRUB_PE32_SCN_MEM_EXECUTE | GRUB_PE32_SCN_MEM_READ); + PE_OHDR (o32, o64, data_size) = grub_host_to_target32 (reloc_addr - layout.exec_size - header_size); + data_section = text_section + 1; strcpy (data_section->name, ".data"); data_section->virtual_size = grub_host_to_target32 (layout.kernel_size - layout.exec_size); @@ -1388,6 +1386,8 @@ grub_install_generate_image (const char *dir, const char *prefix, | GRUB_PE32_SCN_MEM_READ | GRUB_PE32_SCN_MEM_WRITE); + PE_OHDR (o32, o64, base_relocation_table.rva) = grub_host_to_target32 (reloc_addr); + PE_OHDR (o32, o64, base_relocation_table.size) = grub_host_to_target32 (layout.reloc_size); reloc_section = mods_section + 1; strcpy (reloc_section->name, ".reloc"); reloc_section->virtual_size = grub_host_to_target32 (layout.reloc_size); -- 2.14.2 ================================================ FILE: boot/grub2/0139-util-mkimage-Improve-data_size-value-calculation.patch ================================================ From ff406eff25465932b97a2857ee5a75fd0957e9b9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 11 Feb 2021 17:07:33 +0100 Subject: [PATCH] util/mkimage: Improve data_size value calculation According to "Microsoft Portable Executable and Common Object File Format Specification", the Optional Header SizeOfInitializedData field contains: Size of the initialized data section, or the sum of all such sections if there are multiple data sections. Make this explicit by adding the GRUB kernel data size to the sum of all the modules sizes. The ALIGN_UP() is not required by the PE spec but do it to avoid alignment issues. Signed-off-by: Peter Jones Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- util/mkimage.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/util/mkimage.c b/util/mkimage.c index deaef56..853a521 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -1260,6 +1260,7 @@ grub_install_generate_image (const char *dir, const char *prefix, void *pe_img; grub_uint8_t *header; void *sections; + size_t scn_size; size_t pe_size; struct grub_pe32_coff_header *c; struct grub_pe32_section_table *text_section, *data_section; @@ -1362,7 +1363,10 @@ grub_install_generate_image (const char *dir, const char *prefix, | GRUB_PE32_SCN_MEM_EXECUTE | GRUB_PE32_SCN_MEM_READ); - PE_OHDR (o32, o64, data_size) = grub_host_to_target32 (reloc_addr - layout.exec_size - header_size); + scn_size = ALIGN_UP (layout.kernel_size - layout.exec_size, GRUB_PE32_FILE_ALIGNMENT); + PE_OHDR (o32, o64, data_size) = grub_host_to_target32 (scn_size + + ALIGN_UP (total_module_size, + GRUB_PE32_FILE_ALIGNMENT)); data_section = text_section + 1; strcpy (data_section->name, ".data"); -- 2.14.2 ================================================ FILE: boot/grub2/0140-util-mkimage-Refactor-section-setup-to-use-a-helper.patch ================================================ From f60ba9e5945892e835e53f0619406d96002f7f70 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 15 Feb 2021 14:58:06 +0100 Subject: [PATCH] util/mkimage: Refactor section setup to use a helper Add a init_pe_section() helper function to setup PE sections. This makes the code simpler and easier to read. Signed-off-by: Peter Jones Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- util/mkimage.c | 143 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 77 insertions(+), 66 deletions(-) diff --git a/util/mkimage.c b/util/mkimage.c index 853a521..8b475a6 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -816,6 +816,38 @@ grub_install_get_image_targets_string (void) return formats; } +/* + * The image_target parameter is used by the grub_host_to_target32() macro. + */ +static struct grub_pe32_section_table * +init_pe_section(const struct grub_install_image_target_desc *image_target, + struct grub_pe32_section_table *section, + const char * const name, + grub_uint32_t *vma, grub_uint32_t vsz, grub_uint32_t valign, + grub_uint32_t *rda, grub_uint32_t rsz, + grub_uint32_t characteristics) +{ + size_t len = strlen (name); + + if (len > sizeof (section->name)) + grub_util_error (_("section name %s length is bigger than %lu"), + name, (unsigned long) sizeof (section->name)); + + memcpy (section->name, name, len); + + section->virtual_address = grub_host_to_target32 (*vma); + section->virtual_size = grub_host_to_target32 (vsz); + (*vma) = ALIGN_UP (*vma + vsz, valign); + + section->raw_data_offset = grub_host_to_target32 (*rda); + section->raw_data_size = grub_host_to_target32 (rsz); + (*rda) = ALIGN_UP (*rda + rsz, GRUB_PE32_FILE_ALIGNMENT); + + section->characteristics = grub_host_to_target32 (characteristics); + + return section + 1; +} + /* * tmp_ is just here so the compiler knows we'll never derefernce a NULL. * It should get fully optimized away. @@ -1257,17 +1289,13 @@ grub_install_generate_image (const char *dir, const char *prefix, break; case IMAGE_EFI: { - void *pe_img; - grub_uint8_t *header; - void *sections; + char *pe_img, *header; + struct grub_pe32_section_table *section; size_t scn_size; - size_t pe_size; + grub_uint32_t vma, raw_data; + size_t pe_size, header_size; struct grub_pe32_coff_header *c; - struct grub_pe32_section_table *text_section, *data_section; - struct grub_pe32_section_table *mods_section, *reloc_section; static const grub_uint8_t stub[] = GRUB_PE32_MSDOS_STUB; - int header_size; - int reloc_addr; struct grub_pe32_optional_header *o32 = NULL; struct grub_pe64_optional_header *o64 = NULL; @@ -1276,17 +1304,12 @@ grub_install_generate_image (const char *dir, const char *prefix, else header_size = EFI64_HEADER_SIZE; - reloc_addr = ALIGN_UP (header_size + core_size, - GRUB_PE32_FILE_ALIGNMENT); + vma = raw_data = header_size; + pe_size = ALIGN_UP (header_size + core_size, GRUB_PE32_FILE_ALIGNMENT) + + ALIGN_UP (layout.reloc_size, GRUB_PE32_FILE_ALIGNMENT); + header = pe_img = xcalloc (1, pe_size); - pe_size = ALIGN_UP (reloc_addr + layout.reloc_size, - GRUB_PE32_FILE_ALIGNMENT); - pe_img = xmalloc (reloc_addr + layout.reloc_size); - memset (pe_img, 0, header_size); - memcpy ((char *) pe_img + header_size, core_img, core_size); - memset ((char *) pe_img + header_size + core_size, 0, reloc_addr - (header_size + core_size)); - memcpy ((char *) pe_img + reloc_addr, layout.reloc_section, layout.reloc_size); - header = pe_img; + memcpy (pe_img + raw_data, core_img, core_size); /* The magic. */ memcpy (header, stub, GRUB_PE32_MSDOS_STUB_SIZE); @@ -1319,18 +1342,17 @@ grub_install_generate_image (const char *dir, const char *prefix, o32->magic = grub_host_to_target16 (GRUB_PE32_PE32_MAGIC); o32->data_base = grub_host_to_target32 (header_size + layout.exec_size); - sections = o32 + 1; + section = (struct grub_pe32_section_table *)(o32 + 1); } else { c->optional_header_size = grub_host_to_target16 (sizeof (struct grub_pe64_optional_header)); - o64 = (struct grub_pe64_optional_header *) (header + GRUB_PE32_MSDOS_STUB_SIZE + GRUB_PE32_SIGNATURE_SIZE + sizeof (struct grub_pe32_coff_header)); o64->magic = grub_host_to_target16 (GRUB_PE32_PE64_MAGIC); - sections = o64 + 1; + section = (struct grub_pe32_section_table *)(o64 + 1); } PE_OHDR (o32, o64, header_size) = grub_host_to_target32 (header_size); @@ -1350,58 +1372,47 @@ grub_install_generate_image (const char *dir, const char *prefix, PE_OHDR (o32, o64, num_data_directories) = grub_host_to_target32 (GRUB_PE32_NUM_DATA_DIRECTORIES); /* The sections. */ - PE_OHDR (o32, o64, code_base) = grub_host_to_target32 (header_size); + PE_OHDR (o32, o64, code_base) = grub_host_to_target32 (vma); PE_OHDR (o32, o64, code_size) = grub_host_to_target32 (layout.exec_size); - text_section = sections; - strcpy (text_section->name, ".text"); - text_section->virtual_size = grub_host_to_target32 (layout.exec_size); - text_section->virtual_address = grub_host_to_target32 (header_size); - text_section->raw_data_size = grub_host_to_target32 (layout.exec_size); - text_section->raw_data_offset = grub_host_to_target32 (header_size); - text_section->characteristics = grub_cpu_to_le32_compile_time ( - GRUB_PE32_SCN_CNT_CODE - | GRUB_PE32_SCN_MEM_EXECUTE - | GRUB_PE32_SCN_MEM_READ); + section = init_pe_section (image_target, section, ".text", + &vma, layout.exec_size, + image_target->section_align, + &raw_data, layout.exec_size, + GRUB_PE32_SCN_CNT_CODE | + GRUB_PE32_SCN_MEM_EXECUTE | + GRUB_PE32_SCN_MEM_READ); scn_size = ALIGN_UP (layout.kernel_size - layout.exec_size, GRUB_PE32_FILE_ALIGNMENT); PE_OHDR (o32, o64, data_size) = grub_host_to_target32 (scn_size + ALIGN_UP (total_module_size, GRUB_PE32_FILE_ALIGNMENT)); - data_section = text_section + 1; - strcpy (data_section->name, ".data"); - data_section->virtual_size = grub_host_to_target32 (layout.kernel_size - layout.exec_size); - data_section->virtual_address = grub_host_to_target32 (header_size + layout.exec_size); - data_section->raw_data_size = grub_host_to_target32 (layout.kernel_size - layout.exec_size); - data_section->raw_data_offset = grub_host_to_target32 (header_size + layout.exec_size); - data_section->characteristics - = grub_cpu_to_le32_compile_time (GRUB_PE32_SCN_CNT_INITIALIZED_DATA - | GRUB_PE32_SCN_MEM_READ - | GRUB_PE32_SCN_MEM_WRITE); - - mods_section = data_section + 1; - strcpy (mods_section->name, "mods"); - mods_section->virtual_size = grub_host_to_target32 (reloc_addr - layout.kernel_size - header_size); - mods_section->virtual_address = grub_host_to_target32 (header_size + layout.kernel_size + layout.bss_size); - mods_section->raw_data_size = grub_host_to_target32 (reloc_addr - layout.kernel_size - header_size); - mods_section->raw_data_offset = grub_host_to_target32 (header_size + layout.kernel_size); - mods_section->characteristics - = grub_cpu_to_le32_compile_time (GRUB_PE32_SCN_CNT_INITIALIZED_DATA - | GRUB_PE32_SCN_MEM_READ - | GRUB_PE32_SCN_MEM_WRITE); - - PE_OHDR (o32, o64, base_relocation_table.rva) = grub_host_to_target32 (reloc_addr); - PE_OHDR (o32, o64, base_relocation_table.size) = grub_host_to_target32 (layout.reloc_size); - reloc_section = mods_section + 1; - strcpy (reloc_section->name, ".reloc"); - reloc_section->virtual_size = grub_host_to_target32 (layout.reloc_size); - reloc_section->virtual_address = grub_host_to_target32 (reloc_addr + layout.bss_size); - reloc_section->raw_data_size = grub_host_to_target32 (layout.reloc_size); - reloc_section->raw_data_offset = grub_host_to_target32 (reloc_addr); - reloc_section->characteristics - = grub_cpu_to_le32_compile_time (GRUB_PE32_SCN_CNT_INITIALIZED_DATA - | GRUB_PE32_SCN_MEM_DISCARDABLE - | GRUB_PE32_SCN_MEM_READ); + section = init_pe_section (image_target, section, ".data", + &vma, scn_size, image_target->section_align, + &raw_data, scn_size, + GRUB_PE32_SCN_CNT_INITIALIZED_DATA | + GRUB_PE32_SCN_MEM_READ | + GRUB_PE32_SCN_MEM_WRITE); + + scn_size = pe_size - layout.reloc_size - raw_data; + section = init_pe_section (image_target, section, "mods", + &vma, scn_size, image_target->section_align, + &raw_data, scn_size, + GRUB_PE32_SCN_CNT_INITIALIZED_DATA | + GRUB_PE32_SCN_MEM_READ | + GRUB_PE32_SCN_MEM_WRITE); + + scn_size = layout.reloc_size; + PE_OHDR (o32, o64, base_relocation_table.rva) = grub_host_to_target32 (vma); + PE_OHDR (o32, o64, base_relocation_table.size) = grub_host_to_target32 (scn_size); + memcpy (pe_img + raw_data, layout.reloc_section, scn_size); + init_pe_section (image_target, section, ".reloc", + &vma, scn_size, image_target->section_align, + &raw_data, scn_size, + GRUB_PE32_SCN_CNT_INITIALIZED_DATA | + GRUB_PE32_SCN_MEM_DISCARDABLE | + GRUB_PE32_SCN_MEM_READ); + free (core_img); core_img = pe_img; core_size = pe_size; -- 2.14.2 ================================================ FILE: boot/grub2/0141-util-mkimage-Add-an-option-to-import-SBAT-metadata-i.patch ================================================ From b11547137703bbc642114a816233a5b6fed61b06 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 15 Feb 2021 17:07:00 +0100 Subject: [PATCH] util/mkimage: Add an option to import SBAT metadata into a .sbat section Add a --sbat option to the grub-mkimage tool which allows us to import an SBAT metadata formatted as a CSV file into a .sbat section of the EFI binary. Signed-off-by: Peter Jones Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- docs/grub.texi | 19 +++++++++++++++++++ include/grub/util/install.h | 3 ++- include/grub/util/mkimage.h | 1 + util/grub-install-common.c | 2 +- util/grub-mkimage.c | 15 ++++++++++++++- util/mkimage.c | 43 ++++++++++++++++++++++++++++++++++++------- 6 files changed, 73 insertions(+), 10 deletions(-) diff --git a/docs/grub.texi b/docs/grub.texi index 8518cc0..bff6dfc 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -5616,6 +5616,7 @@ environment variables and commands are listed in the same order. * Authentication and authorisation:: Users and access control * Using digital signatures:: Booting digitally signed code * UEFI secure boot and shim:: Booting digitally signed PE files +* Secure Boot Advanced Targeting:: Embedded information for generation number based revocation * Measured Boot:: Measuring boot components * Lockdown:: Lockdown when booting on a secure setup @end menu @@ -5795,6 +5796,24 @@ and @command{memrw} will not be available when the UEFI secure boot is enabled. This is done for security reasons and are enforced by the GRUB Lockdown mechanism (@pxref{Lockdown}). +@node Secure Boot Advanced Targeting +@section Embedded information for generation number based revocation + +The Secure Boot Advanced Targeting (SBAT) is a mechanism to allow the revocation +of components in the boot path by using generation numbers embedded into the EFI +binaries. The SBAT metadata is located in an .sbat data section that has set of +UTF-8 strings as comma-separated values (CSV). See +@uref{https://github.com/rhboot/shim/blob/main/SBAT.md} for more details. + +To add a data section containing the SBAT information into the binary, the +@option{--sbat} option of @command{grub-mkimage} command should be used. The content +of a CSV file, encoded with UTF-8, is copied as is to the .sbat data section into +the generated EFI binary. The CSV file can be stored anywhere on the file system. + +@example +grub-mkimage -O x86_64-efi -o grubx64.efi -p '(tftp)/grub' --sbat sbat.csv efinet tftp +@end example + @node Measured Boot @section Measuring boot components diff --git a/include/grub/util/install.h b/include/grub/util/install.h index 2631b10..c03befd 100644 --- a/include/grub/util/install.h +++ b/include/grub/util/install.h @@ -183,7 +183,8 @@ grub_install_generate_image (const char *dir, const char *prefix, char *config_path, const struct grub_install_image_target_desc *image_target, int note, - grub_compression_t comp, const char *dtb_file); + grub_compression_t comp, const char *dtb_file, + const char *sbat_path); const struct grub_install_image_target_desc * grub_install_get_image_target (const char *arg); diff --git a/include/grub/util/mkimage.h b/include/grub/util/mkimage.h index ba9f568..3819a67 100644 --- a/include/grub/util/mkimage.h +++ b/include/grub/util/mkimage.h @@ -24,6 +24,7 @@ struct grub_mkimage_layout size_t exec_size; size_t kernel_size; size_t bss_size; + size_t sbat_size; grub_uint64_t start_address; void *reloc_section; size_t reloc_size; diff --git a/util/grub-install-common.c b/util/grub-install-common.c index 0295d40..5d43ed1 100644 --- a/util/grub-install-common.c +++ b/util/grub-install-common.c @@ -511,7 +511,7 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, grub_install_generate_image (dir, prefix, fp, outname, modules.entries, memdisk_path, pubkeys, npubkeys, config_path, tgt, - note, compression, dtb); + note, compression, dtb, NULL); while (dc--) grub_install_pop_module (); } diff --git a/util/grub-mkimage.c b/util/grub-mkimage.c index 912564e..75b8847 100644 --- a/util/grub-mkimage.c +++ b/util/grub-mkimage.c @@ -81,6 +81,7 @@ static struct argp_option options[] = { {"output", 'o', N_("FILE"), 0, N_("output a generated image to FILE [default=stdout]"), 0}, {"format", 'O', N_("FORMAT"), 0, 0, 0}, {"compression", 'C', "(xz|none|auto)", 0, N_("choose the compression to use for core image"), 0}, + {"sbat", 's', N_("FILE"), 0, N_("SBAT metadata"), 0}, {"verbose", 'v', 0, 0, N_("print verbose messages."), 0}, { 0, 0, 0, 0, 0, 0 } }; @@ -123,6 +124,7 @@ struct arguments size_t npubkeys; char *font; char *config; + char *sbat; int note; const struct grub_install_image_target_desc *image_target; grub_compression_t comp; @@ -224,6 +226,13 @@ argp_parser (int key, char *arg, struct argp_state *state) arguments->prefix = xstrdup (arg); break; + case 's': + if (arguments->sbat) + free (arguments->sbat); + + arguments->sbat = xstrdup (arg); + break; + case 'v': verbosity++; break; @@ -309,7 +318,8 @@ main (int argc, char *argv[]) arguments.memdisk, arguments.pubkeys, arguments.npubkeys, arguments.config, arguments.image_target, arguments.note, - arguments.comp, arguments.dtb); + arguments.comp, arguments.dtb, + arguments.sbat); if (grub_util_file_sync (fp) < 0) grub_util_error (_("cannot sync `%s': %s"), arguments.output ? : "stdout", @@ -328,5 +338,8 @@ main (int argc, char *argv[]) if (arguments.output) free (arguments.output); + if (arguments.sbat) + free (arguments.sbat); + return 0; } diff --git a/util/mkimage.c b/util/mkimage.c index 8b475a6..b354ec1 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -869,12 +869,13 @@ grub_install_generate_image (const char *dir, const char *prefix, char *memdisk_path, char **pubkey_paths, size_t npubkeys, char *config_path, const struct grub_install_image_target_desc *image_target, - int note, grub_compression_t comp, const char *dtb_path) + int note, grub_compression_t comp, const char *dtb_path, + const char *sbat_path) { char *kernel_img, *core_img; size_t total_module_size, core_size; size_t memdisk_size = 0, config_size = 0; - size_t prefix_size = 0, dtb_size = 0; + size_t prefix_size = 0, dtb_size = 0, sbat_size = 0; char *kernel_path; size_t offset; struct grub_util_path_list *path_list, *p; @@ -925,6 +926,9 @@ grub_install_generate_image (const char *dir, const char *prefix, total_module_size += dtb_size + sizeof (struct grub_module_header); } + if (sbat_path != NULL && image_target->id != IMAGE_EFI) + grub_util_error (_(".sbat section can be embedded into EFI images only")); + if (config_path) { config_size = ALIGN_ADDR (grub_util_get_image_size (config_path) + 1); @@ -1289,8 +1293,9 @@ grub_install_generate_image (const char *dir, const char *prefix, break; case IMAGE_EFI: { - char *pe_img, *header; + char *pe_img, *pe_sbat, *header; struct grub_pe32_section_table *section; + size_t n_sections = 4; size_t scn_size; grub_uint32_t vma, raw_data; size_t pe_size, header_size; @@ -1305,8 +1310,15 @@ grub_install_generate_image (const char *dir, const char *prefix, header_size = EFI64_HEADER_SIZE; vma = raw_data = header_size; + + if (sbat_path != NULL) + { + sbat_size = ALIGN_ADDR (grub_util_get_image_size (sbat_path)); + sbat_size = ALIGN_UP (sbat_size, GRUB_PE32_FILE_ALIGNMENT); + } + pe_size = ALIGN_UP (header_size + core_size, GRUB_PE32_FILE_ALIGNMENT) + - ALIGN_UP (layout.reloc_size, GRUB_PE32_FILE_ALIGNMENT); + ALIGN_UP (layout.reloc_size, GRUB_PE32_FILE_ALIGNMENT) + sbat_size; header = pe_img = xcalloc (1, pe_size); memcpy (pe_img + raw_data, core_img, core_size); @@ -1321,7 +1333,10 @@ grub_install_generate_image (const char *dir, const char *prefix, + GRUB_PE32_SIGNATURE_SIZE); c->machine = grub_host_to_target16 (image_target->pe_target); - c->num_sections = grub_host_to_target16 (4); + if (sbat_path != NULL) + n_sections++; + + c->num_sections = grub_host_to_target16 (n_sections); c->time = grub_host_to_target32 (STABLE_EMBEDDING_TIMESTAMP); c->characteristics = grub_host_to_target16 (GRUB_PE32_EXECUTABLE_IMAGE | GRUB_PE32_LINE_NUMS_STRIPPED @@ -1383,7 +1398,8 @@ grub_install_generate_image (const char *dir, const char *prefix, GRUB_PE32_SCN_MEM_READ); scn_size = ALIGN_UP (layout.kernel_size - layout.exec_size, GRUB_PE32_FILE_ALIGNMENT); - PE_OHDR (o32, o64, data_size) = grub_host_to_target32 (scn_size + + /* ALIGN_UP (sbat_size, GRUB_PE32_FILE_ALIGNMENT) is done earlier. */ + PE_OHDR (o32, o64, data_size) = grub_host_to_target32 (scn_size + sbat_size + ALIGN_UP (total_module_size, GRUB_PE32_FILE_ALIGNMENT)); @@ -1394,7 +1410,7 @@ grub_install_generate_image (const char *dir, const char *prefix, GRUB_PE32_SCN_MEM_READ | GRUB_PE32_SCN_MEM_WRITE); - scn_size = pe_size - layout.reloc_size - raw_data; + scn_size = pe_size - layout.reloc_size - sbat_size - raw_data; section = init_pe_section (image_target, section, "mods", &vma, scn_size, image_target->section_align, &raw_data, scn_size, @@ -1402,6 +1418,19 @@ grub_install_generate_image (const char *dir, const char *prefix, GRUB_PE32_SCN_MEM_READ | GRUB_PE32_SCN_MEM_WRITE); + if (sbat_path != NULL) + { + pe_sbat = pe_img + raw_data; + grub_util_load_image (sbat_path, pe_sbat); + + section = init_pe_section (image_target, section, ".sbat", + &vma, sbat_size, + image_target->section_align, + &raw_data, sbat_size, + GRUB_PE32_SCN_CNT_INITIALIZED_DATA | + GRUB_PE32_SCN_MEM_READ); + } + scn_size = layout.reloc_size; PE_OHDR (o32, o64, base_relocation_table.rva) = grub_host_to_target32 (vma); PE_OHDR (o32, o64, base_relocation_table.size) = grub_host_to_target32 (scn_size); -- 2.14.2 ================================================ FILE: boot/grub2/0142-grub-install-common-Add-sbat-option.patch ================================================ From bb51ee2b49fbda0f66c1fa580a33442ff578f110 Mon Sep 17 00:00:00 2001 From: Dimitri John Ledkov Date: Mon, 22 Feb 2021 17:05:25 +0000 Subject: [PATCH] grub-install-common: Add --sbat option Signed-off-by: Dimitri John Ledkov Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- include/grub/util/install.h | 5 ++++- util/grub-install-common.c | 12 ++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/include/grub/util/install.h b/include/grub/util/install.h index c03befd..8cb5056 100644 --- a/include/grub/util/install.h +++ b/include/grub/util/install.h @@ -63,6 +63,8 @@ /* TRANSLATORS: "embed" is a verb (command description). "*/ \ { "pubkey", 'k', N_("FILE"), 0, \ N_("embed FILE as public key for signature checking"), 0}, \ + { "sbat", GRUB_INSTALL_OPTIONS_SBAT, N_("FILE"), 0, \ + N_("SBAT metadata"), 0 }, \ { "verbose", 'v', 0, 0, \ N_("print verbose messages."), 1 } @@ -122,7 +124,8 @@ enum grub_install_options { GRUB_INSTALL_OPTIONS_THEMES_DIRECTORY, GRUB_INSTALL_OPTIONS_GRUB_MKIMAGE, GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS, - GRUB_INSTALL_OPTIONS_DTB + GRUB_INSTALL_OPTIONS_DTB, + GRUB_INSTALL_OPTIONS_SBAT }; extern char *grub_install_source_directory; diff --git a/util/grub-install-common.c b/util/grub-install-common.c index 5d43ed1..1fcccd2 100644 --- a/util/grub-install-common.c +++ b/util/grub-install-common.c @@ -307,6 +307,7 @@ handle_install_list (struct install_list *il, const char *val, static char **pubkeys; static size_t npubkeys; +static char *sbat; static grub_compression_t compression; int @@ -337,6 +338,12 @@ grub_install_parse (int key, char *arg) * (npubkeys + 1)); pubkeys[npubkeys++] = xstrdup (arg); return 1; + case GRUB_INSTALL_OPTIONS_SBAT: + if (sbat) + free (sbat); + + sbat = xstrdup (arg); + return 1; case GRUB_INSTALL_OPTIONS_VERBOSITY: verbosity++; @@ -498,9 +505,10 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, grub_util_info ("grub-mkimage --directory '%s' --prefix '%s'" " --output '%s' " " --dtb '%s' " + "--sbat '%s' " "--format '%s' --compression '%s' %s %s\n", dir, prefix, - outname, dtb ? : "", mkimage_target, + outname, dtb ? : "", sbat ? : "", mkimage_target, compnames[compression], note ? "--note" : "", s); free (s); @@ -511,7 +519,7 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, grub_install_generate_image (dir, prefix, fp, outname, modules.entries, memdisk_path, pubkeys, npubkeys, config_path, tgt, - note, compression, dtb, NULL); + note, compression, dtb, sbat); while (dc--) grub_install_pop_module (); } -- 2.14.2 ================================================ FILE: boot/grub2/0143-shim_lock-Only-skip-loading-shim_lock-verifier-with-.patch ================================================ From 968de8c23c1cba0f18230f778ebcf6c412ec8ec5 Mon Sep 17 00:00:00 2001 From: Dimitri John Ledkov Date: Sat, 20 Feb 2021 17:10:34 +0000 Subject: [PATCH] shim_lock: Only skip loading shim_lock verifier with explicit consent Commit 32ddc42c (efi: Only register shim_lock verifier if shim_lock protocol is found and SB enabled) reintroduced CVE-2020-15705 which previously only existed in the out-of-tree linuxefi patches and was fixed as part of the BootHole patch series. Under Secure Boot enforce loading shim_lock verifier. Allow skipping shim_lock verifier if SecureBoot/MokSBState EFI variables indicate skipping validations, or if GRUB image is built with --disable-shim-lock. Fixes: 132ddc42c (efi: Only register shim_lock verifier if shim_lock protocol is found and SB enabled) Fixes: CVE-2020-15705 Fixes: CVE-2021-3418 Reported-by: Dimitri John Ledkov Signed-off-by: Dimitri John Ledkov Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- docs/grub.texi | 5 ++++- grub-core/kern/efi/sb.c | 17 ++++++++++++++++- include/grub/kernel.h | 3 ++- include/grub/util/install.h | 7 +++++-- util/grub-install-common.c | 12 +++++++++--- util/grub-mkimage.c | 8 +++++++- util/mkimage.c | 15 ++++++++++++++- 7 files changed, 57 insertions(+), 10 deletions(-) diff --git a/docs/grub.texi b/docs/grub.texi index bff6dfc..e302797 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -5787,7 +5787,10 @@ secure boot chain. The GRUB, except the @command{chainloader} command, works with the UEFI secure boot and the shim. This functionality is provided by the shim_lock verifier. It is built into the @file{core.img} and is registered if the UEFI secure boot is -enabled. +enabled. The @samp{shim_lock} variable is set to @samp{y} when shim_lock verifier +is registered. If it is desired to use UEFI secure boot without shim, one can +disable shim_lock by disabling shim verification with MokSbState UEFI variable +or by building grub image with @samp{--disable-shim-lock} option. All GRUB modules not stored in the @file{core.img}, OS kernels, ACPI tables, Device Trees, etc. have to be signed, e.g, using PGP. Additionally, the commands diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c index 5d7210a..41dadcd 100644 --- a/grub-core/kern/efi/sb.c +++ b/grub-core/kern/efi/sb.c @@ -21,9 +21,11 @@ #include #include #include +#include #include #include #include +#include #include #include #include @@ -160,14 +162,27 @@ struct grub_file_verifier shim_lock_verifier = void grub_shim_lock_verifier_setup (void) { + struct grub_module_header *header; grub_efi_shim_lock_protocol_t *sl = grub_efi_locate_protocol (&shim_lock_guid, 0); + /* shim_lock is missing, check if GRUB image is built with --disable-shim-lock. */ if (!sl) - return; + { + FOR_MODULES (header) + { + if (header->type == OBJ_TYPE_DISABLE_SHIM_LOCK) + return; + } + } + /* Secure Boot is off. Do not load shim_lock. */ if (grub_efi_get_secureboot () != GRUB_EFI_SECUREBOOT_MODE_ENABLED) return; + /* Enforce shim_lock_verifier. */ grub_verifier_register (&shim_lock_verifier); + + grub_env_set ("shim_lock", "y"); + grub_env_export ("shim_lock"); } diff --git a/include/grub/kernel.h b/include/grub/kernel.h index 133a37c..abbca5e 100644 --- a/include/grub/kernel.h +++ b/include/grub/kernel.h @@ -29,7 +29,8 @@ enum OBJ_TYPE_CONFIG, OBJ_TYPE_PREFIX, OBJ_TYPE_PUBKEY, - OBJ_TYPE_DTB + OBJ_TYPE_DTB, + OBJ_TYPE_DISABLE_SHIM_LOCK }; /* The module header. */ diff --git a/include/grub/util/install.h b/include/grub/util/install.h index 8cb5056..11a8df8 100644 --- a/include/grub/util/install.h +++ b/include/grub/util/install.h @@ -65,6 +65,8 @@ N_("embed FILE as public key for signature checking"), 0}, \ { "sbat", GRUB_INSTALL_OPTIONS_SBAT, N_("FILE"), 0, \ N_("SBAT metadata"), 0 }, \ + { "disable-shim-lock", GRUB_INSTALL_OPTIONS_DISABLE_SHIM_LOCK, 0, 0, \ + N_("disable shim_lock verifier"), 0 }, \ { "verbose", 'v', 0, 0, \ N_("print verbose messages."), 1 } @@ -125,7 +127,8 @@ enum grub_install_options { GRUB_INSTALL_OPTIONS_GRUB_MKIMAGE, GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS, GRUB_INSTALL_OPTIONS_DTB, - GRUB_INSTALL_OPTIONS_SBAT + GRUB_INSTALL_OPTIONS_SBAT, + GRUB_INSTALL_OPTIONS_DISABLE_SHIM_LOCK }; extern char *grub_install_source_directory; @@ -187,7 +190,7 @@ grub_install_generate_image (const char *dir, const char *prefix, const struct grub_install_image_target_desc *image_target, int note, grub_compression_t comp, const char *dtb_file, - const char *sbat_path); + const char *sbat_path, const int disable_shim_lock); const struct grub_install_image_target_desc * grub_install_get_image_target (const char *arg); diff --git a/util/grub-install-common.c b/util/grub-install-common.c index 1fcccd2..13d9fe9 100644 --- a/util/grub-install-common.c +++ b/util/grub-install-common.c @@ -308,6 +308,7 @@ handle_install_list (struct install_list *il, const char *val, static char **pubkeys; static size_t npubkeys; static char *sbat; +static int disable_shim_lock; static grub_compression_t compression; int @@ -344,6 +345,9 @@ grub_install_parse (int key, char *arg) sbat = xstrdup (arg); return 1; + case GRUB_INSTALL_OPTIONS_DISABLE_SHIM_LOCK: + disable_shim_lock = 1; + return 1; case GRUB_INSTALL_OPTIONS_VERBOSITY: verbosity++; @@ -506,10 +510,11 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, " --output '%s' " " --dtb '%s' " "--sbat '%s' " - "--format '%s' --compression '%s' %s %s\n", + "--format '%s' --compression '%s' %s %s %s\n", dir, prefix, outname, dtb ? : "", sbat ? : "", mkimage_target, - compnames[compression], note ? "--note" : "", s); + compnames[compression], note ? "--note" : "", + disable_shim_lock ? "--disable-shim-lock" : "", s); free (s); tgt = grub_install_get_image_target (mkimage_target); @@ -519,7 +524,8 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, grub_install_generate_image (dir, prefix, fp, outname, modules.entries, memdisk_path, pubkeys, npubkeys, config_path, tgt, - note, compression, dtb, sbat); + note, compression, dtb, sbat, + disable_shim_lock); while (dc--) grub_install_pop_module (); } diff --git a/util/grub-mkimage.c b/util/grub-mkimage.c index 75b8847..c0d5599 100644 --- a/util/grub-mkimage.c +++ b/util/grub-mkimage.c @@ -82,6 +82,7 @@ static struct argp_option options[] = { {"format", 'O', N_("FORMAT"), 0, 0, 0}, {"compression", 'C', "(xz|none|auto)", 0, N_("choose the compression to use for core image"), 0}, {"sbat", 's', N_("FILE"), 0, N_("SBAT metadata"), 0}, + {"disable-shim-lock", GRUB_INSTALL_OPTIONS_DISABLE_SHIM_LOCK, 0, 0, N_("disable shim_lock verifier"), 0}, {"verbose", 'v', 0, 0, N_("print verbose messages."), 0}, { 0, 0, 0, 0, 0, 0 } }; @@ -126,6 +127,7 @@ struct arguments char *config; char *sbat; int note; + int disable_shim_lock; const struct grub_install_image_target_desc *image_target; grub_compression_t comp; }; @@ -233,6 +235,10 @@ argp_parser (int key, char *arg, struct argp_state *state) arguments->sbat = xstrdup (arg); break; + case GRUB_INSTALL_OPTIONS_DISABLE_SHIM_LOCK: + arguments->disable_shim_lock = 1; + break; + case 'v': verbosity++; break; @@ -319,7 +325,7 @@ main (int argc, char *argv[]) arguments.npubkeys, arguments.config, arguments.image_target, arguments.note, arguments.comp, arguments.dtb, - arguments.sbat); + arguments.sbat, arguments.disable_shim_lock); if (grub_util_file_sync (fp) < 0) grub_util_error (_("cannot sync `%s': %s"), arguments.output ? : "stdout", diff --git a/util/mkimage.c b/util/mkimage.c index b354ec1..a26cf76 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -870,7 +870,7 @@ grub_install_generate_image (const char *dir, const char *prefix, size_t npubkeys, char *config_path, const struct grub_install_image_target_desc *image_target, int note, grub_compression_t comp, const char *dtb_path, - const char *sbat_path) + const char *sbat_path, int disable_shim_lock) { char *kernel_img, *core_img; size_t total_module_size, core_size; @@ -929,6 +929,9 @@ grub_install_generate_image (const char *dir, const char *prefix, if (sbat_path != NULL && image_target->id != IMAGE_EFI) grub_util_error (_(".sbat section can be embedded into EFI images only")); + if (disable_shim_lock) + total_module_size += sizeof (struct grub_module_header); + if (config_path) { config_size = ALIGN_ADDR (grub_util_get_image_size (config_path) + 1); @@ -1065,6 +1068,16 @@ grub_install_generate_image (const char *dir, const char *prefix, offset += dtb_size; } + if (disable_shim_lock) + { + struct grub_module_header *header; + + header = (struct grub_module_header *) (kernel_img + offset); + header->type = grub_host_to_target32 (OBJ_TYPE_DISABLE_SHIM_LOCK); + header->size = grub_host_to_target32 (sizeof (*header)); + offset += sizeof (*header); + } + if (config_path) { struct grub_module_header *header; -- 2.14.2 ================================================ FILE: boot/grub2/0144-kern-misc-Split-parse_printf_args-into-format-parsin.patch ================================================ From 7f11bde3143b21b40d8225ea1d641e0f83b5a01e Mon Sep 17 00:00:00 2001 From: Thomas Frauendorfer | Miray Software Date: Mon, 15 Feb 2021 13:40:16 +0100 Subject: [PATCH] kern/misc: Split parse_printf_args() into format parsing and va_list handling This patch is preparing for a follow up patch which will use the format parsing part to compare the arguments in a printf() format from an external source against a printf() format with expected arguments. Signed-off-by: Thomas Frauendorfer | Miray Software Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/misc.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c index b02693b..50bf3ee 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -632,8 +632,7 @@ grub_lltoa (char *str, int c, unsigned long long n) } static void -parse_printf_args (const char *fmt0, struct printf_args *args, - va_list args_in) +parse_printf_arg_fmt (const char *fmt0, struct printf_args *args) { const char *fmt; char c; @@ -789,6 +788,14 @@ parse_printf_args (const char *fmt0, struct printf_args *args, break; } } +} + +static void +parse_printf_args (const char *fmt0, struct printf_args *args, va_list args_in) +{ + grub_size_t n; + + parse_printf_arg_fmt (fmt0, args); for (n = 0; n < args->count; n++) switch (args->ptr[n].type) -- 2.14.2 ================================================ FILE: boot/grub2/0145-kern-misc-Add-STRING-type-for-internal-printf-format.patch ================================================ From 1a2a5aff71e8edba436398492279de434abfe7a3 Mon Sep 17 00:00:00 2001 From: Thomas Frauendorfer | Miray Software Date: Mon, 15 Feb 2021 14:04:26 +0100 Subject: [PATCH] kern/misc: Add STRING type for internal printf() format handling Set printf() argument type for "%s" to new type STRING. This is in preparation for a follow up patch to compare a printf() format string against an expected printf() format string. For "%s" the corresponding printf() argument is dereferenced as pointer while all other argument types are defined as integer value. However, when validating a printf() format it is necessary to differentiate "%s" from "%p" and other integers. So, let's do that. Signed-off-by: Thomas Frauendorfer | Miray Software Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/misc.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c index 50bf3ee..22417f7 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -33,7 +33,8 @@ union printf_arg enum { INT, LONG, LONGLONG, - UNSIGNED_INT = 3, UNSIGNED_LONG, UNSIGNED_LONGLONG + UNSIGNED_INT = 3, UNSIGNED_LONG, UNSIGNED_LONGLONG, + STRING } type; long long ll; }; @@ -776,12 +777,14 @@ parse_printf_arg_fmt (const char *fmt0, struct printf_args *args) args->ptr[curn].type = INT + longfmt; break; case 'p': - case 's': if (sizeof (void *) == sizeof (long long)) args->ptr[curn].type = UNSIGNED_LONGLONG; else args->ptr[curn].type = UNSIGNED_INT; break; + case 's': + args->ptr[curn].type = STRING; + break; case 'C': case 'c': args->ptr[curn].type = INT; @@ -816,6 +819,12 @@ parse_printf_args (const char *fmt0, struct printf_args *args, va_list args_in) case UNSIGNED_LONGLONG: args->ptr[n].ll = va_arg (args_in, long long); break; + case STRING: + if (sizeof (void *) == sizeof (long long)) + args->ptr[n].ll = va_arg (args_in, long long); + else + args->ptr[n].ll = va_arg (args_in, unsigned int); + break; } } -- 2.14.2 ================================================ FILE: boot/grub2/0146-kern-misc-Add-function-to-check-printf-format-agains.patch ================================================ From 83603bea6ce8fdff5ab3fbc4c9e592a8c71a8706 Mon Sep 17 00:00:00 2001 From: Thomas Frauendorfer | Miray Software Date: Thu, 4 Feb 2021 19:02:33 +0100 Subject: [PATCH] kern/misc: Add function to check printf() format against expected format The grub_printf_fmt_check() function parses the arguments of an untrusted printf() format and an expected printf() format and then compares the arguments counts and arguments types. The arguments count in the untrusted format string must be less or equal to the arguments count in the expected format string and both arguments types must match. To do this the parse_printf_arg_fmt() helper function is extended in the following way: 1. Add a return value to report errors to the grub_printf_fmt_check(). 2. Add the fmt_check argument to enable stricter format verification: - the function expects that arguments definitions are always terminated by a supported conversion specifier. - positional parameters, "$", are not allowed, as they cannot be validated correctly with the current implementation. For example "%s%1$d" would assign the first args entry twice while leaving the second one unchanged. - Return an error if preallocated space in args is too small and allocation fails for the needed size. The grub_printf_fmt_check() should verify all arguments. So, if validation is not possible for any reason it should return an error. This also adds a case entry to handle "%%", which is the escape sequence to print "%" character. 3. Add the max_args argument to check for the maximum allowed arguments count in a printf() string. This should be set to the arguments count of the expected format. Then the parse_printf_arg_fmt() function will return an error if the arguments count is exceeded. The two additional arguments allow us to use parse_printf_arg_fmt() in printf() and grub_printf_fmt_check() calls. When parse_printf_arg_fmt() is used by grub_printf_fmt_check() the function parse user provided untrusted format string too. So, in that case it is better to be too strict than too lenient. Signed-off-by: Thomas Frauendorfer | Miray Software Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/misc.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++--- include/grub/misc.h | 16 ++++++++++ 2 files changed, 94 insertions(+), 4 deletions(-) diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c index 22417f7..90317b6 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -632,8 +632,26 @@ grub_lltoa (char *str, int c, unsigned long long n) return p; } -static void -parse_printf_arg_fmt (const char *fmt0, struct printf_args *args) +/* + * Parse printf() fmt0 string into args arguments. + * + * The parsed arguments are either used by a printf() function to format the fmt0 + * string or they are used to compare a format string from an untrusted source + * against a format string with expected arguments. + * + * When the fmt_check is set to !0, e.g. 1, then this function is executed in + * printf() format check mode. This enforces stricter rules for parsing the + * fmt0 to limit exposure to possible errors in printf() handling. It also + * disables positional parameters, "$", because some formats, e.g "%s%1$d", + * cannot be validated with the current implementation. + * + * The max_args allows to set a maximum number of accepted arguments. If the fmt0 + * string defines more arguments than the max_args then the parse_printf_arg_fmt() + * function returns an error. This is currently used for format check only. + */ +static grub_err_t +parse_printf_arg_fmt (const char *fmt0, struct printf_args *args, + int fmt_check, grub_size_t max_args) { const char *fmt; char c; @@ -660,7 +678,12 @@ parse_printf_arg_fmt (const char *fmt0, struct printf_args *args) fmt++; if (*fmt == '$') - fmt++; + { + if (fmt_check) + return grub_error (GRUB_ERR_BAD_ARGUMENT, + "positional arguments are not supported"); + fmt++; + } if (*fmt =='-') fmt++; @@ -691,9 +714,19 @@ parse_printf_arg_fmt (const char *fmt0, struct printf_args *args) case 's': args->count++; break; + case '%': + /* "%%" is the escape sequence to output "%". */ + break; + default: + if (fmt_check) + return grub_error (GRUB_ERR_BAD_ARGUMENT, "unexpected format"); + break; } } + if (fmt_check && args->count > max_args) + return grub_error (GRUB_ERR_BAD_ARGUMENT, "too many arguments"); + if (args->count <= ARRAY_SIZE (args->prealloc)) args->ptr = args->prealloc; else @@ -701,6 +734,9 @@ parse_printf_arg_fmt (const char *fmt0, struct printf_args *args) args->ptr = grub_calloc (args->count, sizeof (args->ptr[0])); if (!args->ptr) { + if (fmt_check) + return grub_errno; + grub_errno = GRUB_ERR_NONE; args->ptr = args->prealloc; args->count = ARRAY_SIZE (args->prealloc); @@ -791,6 +827,8 @@ parse_printf_arg_fmt (const char *fmt0, struct printf_args *args) break; } } + + return GRUB_ERR_NONE; } static void @@ -798,7 +836,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args, va_list args_in) { grub_size_t n; - parse_printf_arg_fmt (fmt0, args); + parse_printf_arg_fmt (fmt0, args, 0, 0); for (n = 0; n < args->count; n++) switch (args->ptr[n].type) @@ -1105,6 +1143,42 @@ grub_xasprintf (const char *fmt, ...) return ret; } +grub_err_t +grub_printf_fmt_check (const char *fmt, const char *fmt_expected) +{ + struct printf_args args_expected, args_fmt; + grub_err_t ret; + grub_size_t n; + + if (fmt == NULL || fmt_expected == NULL) + return grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid format"); + + ret = parse_printf_arg_fmt (fmt_expected, &args_expected, 1, GRUB_SIZE_MAX); + if (ret != GRUB_ERR_NONE) + return ret; + + /* Limit parsing to the number of expected arguments. */ + ret = parse_printf_arg_fmt (fmt, &args_fmt, 1, args_expected.count); + if (ret != GRUB_ERR_NONE) + { + free_printf_args (&args_expected); + return ret; + } + + for (n = 0; n < args_fmt.count; n++) + if (args_fmt.ptr[n].type != args_expected.ptr[n].type) + { + ret = grub_error (GRUB_ERR_BAD_ARGUMENT, "arguments types do not match"); + break; + } + + free_printf_args (&args_expected); + free_printf_args (&args_fmt); + + return ret; +} + + /* Abort GRUB. This function does not return. */ static void __attribute__ ((noreturn)) grub_abort (void) diff --git a/include/grub/misc.h b/include/grub/misc.h index ee48eb7..d1c5709 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -440,6 +440,22 @@ grub_error_load (const struct grub_error_saved *save) grub_errno = save->grub_errno; } +/* + * grub_printf_fmt_checks() a fmt string for printf() against an expected + * format. It is intended for cases where the fmt string could come from + * an outside source and cannot be trusted. + * + * While expected fmt accepts a printf() format string it should be kept + * as simple as possible. The printf() format strings with positional + * parameters are NOT accepted, neither for fmt nor for fmt_expected. + * + * The fmt is accepted if it has equal or less arguments than fmt_expected + * and if the type of all arguments match. + * + * Returns GRUB_ERR_NONE if fmt is acceptable. + */ +grub_err_t EXPORT_FUNC (grub_printf_fmt_check) (const char *fmt, const char *fmt_expected); + #if BOOT_TIME_STATS struct grub_boot_time { -- 2.14.2 ================================================ FILE: boot/grub2/0147-gfxmenu-gui-Check-printf-format-in-the-gui_progress_.patch ================================================ From 42facd577231cf5ffe4c7128fed15b7e7d99cbca Mon Sep 17 00:00:00 2001 From: Thomas Frauendorfer | Miray Software Date: Tue, 4 Aug 2020 13:49:51 +0200 Subject: [PATCH] gfxmenu/gui: Check printf() format in the gui_progress_bar and gui_label The gui_progress_bar and gui_label components can display the timeout value. The format string can be set through a theme file. This patch adds a validation step to the format string. If a user loads a theme file into the GRUB without this patch then a GUI label with the following settings + label { ... id = "__timeout__" text = "%s" } will interpret the current timeout value as string pointer and print the memory at that position on the screen. It is not desired behavior. Signed-off-by: Thomas Frauendorfer | Miray Software Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/gfxmenu/gui_label.c | 4 ++++ grub-core/gfxmenu/gui_progress_bar.c | 3 +++ 2 files changed, 7 insertions(+) diff --git a/grub-core/gfxmenu/gui_label.c b/grub-core/gfxmenu/gui_label.c index a4c8178..1c19054 100644 --- a/grub-core/gfxmenu/gui_label.c +++ b/grub-core/gfxmenu/gui_label.c @@ -193,6 +193,10 @@ label_set_property (void *vself, const char *name, const char *value) else if (grub_strcmp (value, "@KEYMAP_SHORT@") == 0) value = _("enter: boot, `e': options, `c': cmd-line"); /* FIXME: Add more templates here if needed. */ + + if (grub_printf_fmt_check(value, "%d") != GRUB_ERR_NONE) + value = ""; /* Unsupported format. */ + self->template = grub_strdup (value); self->text = grub_xasprintf (value, self->value); } diff --git a/grub-core/gfxmenu/gui_progress_bar.c b/grub-core/gfxmenu/gui_progress_bar.c index b128f08..ace85a1 100644 --- a/grub-core/gfxmenu/gui_progress_bar.c +++ b/grub-core/gfxmenu/gui_progress_bar.c @@ -348,6 +348,9 @@ progress_bar_set_property (void *vself, const char *name, const char *value) Please use the shortest form available in you language. */ value = _("%ds"); + if (grub_printf_fmt_check(value, "%d") != GRUB_ERR_NONE) + value = ""; /* Unsupported format. */ + self->template = grub_strdup (value); } else if (grub_strcmp (name, "font") == 0) -- 2.14.2 ================================================ FILE: boot/grub2/0148-templates-Disable-the-os-prober-by-default.patch ================================================ From e346414725a70e5c74ee87ca14e580c66f517666 Mon Sep 17 00:00:00 2001 From: Alex Burmashev Date: Tue, 16 Feb 2021 11:12:12 +0100 Subject: [PATCH] templates: Disable the os-prober by default The os-prober is enabled by default what may lead to potentially dangerous use cases and borderline opening attack vectors. This patch disables the os-prober, adds warning messages and updates GRUB_DISABLE_OS_PROBER configuration option documentation. This way we make it clear that the os-prober usage is not recommended. Simplistic nature of this change allows downstream vendors, who really want os-prober to be enabled out of the box in their relevant products, easily revert to it's old behavior. Reported-by: NyankoSec (, https://twitter.com/NyankoSec), working with SSD Secure Disclosure Signed-off-by: Alex Burmashev Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- docs/grub.texi | 18 ++++++++++-------- util/grub.d/30_os-prober.in | 5 ++++- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/docs/grub.texi b/docs/grub.texi index e302797..45a9f80 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -1481,10 +1481,13 @@ boot sequence. If you have problems, set this option to @samp{text} and GRUB will tell Linux to boot in normal text mode. @item GRUB_DISABLE_OS_PROBER -Normally, @command{grub-mkconfig} will try to use the external -@command{os-prober} program, if installed, to discover other operating -systems installed on the same system and generate appropriate menu entries -for them. Set this option to @samp{true} to disable this. +The @command{grub-mkconfig} has a feature to use the external +@command{os-prober} program to discover other operating systems installed on +the same machine and generate appropriate menu entries for them. It is disabled +by default since automatic and silent execution of @command{os-prober}, and +creating boot entries based on that data, is a potential attack vector. Set +this option to @samp{false} to enable this feature in the +@command{grub-mkconfig} command. @item GRUB_OS_PROBER_SKIP_LIST List of space-separated FS UUIDs of filesystems to be ignored from os-prober @@ -1812,10 +1815,9 @@ than zero; otherwise 0. @section Multi-boot manual config Currently autogenerating config files for multi-boot environments depends on -os-prober and has several shortcomings. While fixing it is scheduled for the -next release, meanwhile you can make use of the power of GRUB syntax and do it -yourself. A possible configuration is detailed here, feel free to adjust to your -needs. +os-prober and has several shortcomings. Due to that it is disabled by default. +It is advised to use the power of GRUB syntax and do it yourself. A possible +configuration is detailed here, feel free to adjust to your needs. First create a separate GRUB partition, big enough to hold GRUB. Some of the following entries show how to load OS installer images from this same partition, diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in index 515a68c..99de043 100644 --- a/util/grub.d/30_os-prober.in +++ b/util/grub.d/30_os-prober.in @@ -26,7 +26,8 @@ export TEXTDOMAINDIR="@localedir@" . "$pkgdatadir/grub-mkconfig_lib" -if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then +if [ "x${GRUB_DISABLE_OS_PROBER}" = "xfalse" ]; then + gettext_printf "os-prober will not be executed to detect other bootable partitions.\nSystems on them will not be added to the GRUB boot configuration.\nCheck GRUB_DISABLE_OS_PROBER documentation entry.\n" exit 0 fi @@ -39,6 +40,8 @@ OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`" if [ -z "${OSPROBED}" ] ; then # empty os-prober output, nothing doing exit 0 +else + grub_warn "$(gettext_printf "os-prober was executed to detect other bootable partitions.\nIt's output will be used to detect bootable binaries on them and create new boot entries.")" fi osx_entry() { -- 2.14.2 ================================================ FILE: boot/grub2/0149-kern-mm-Fix-grub_debug_calloc-compilation-error.patch ================================================ From a9d8de960834f376087856f9d60a214b47c76f61 Mon Sep 17 00:00:00 2001 From: Marco A Benatto Date: Tue, 9 Feb 2021 12:33:06 -0300 Subject: [PATCH] kern/mm: Fix grub_debug_calloc() compilation error Fix compilation error due to missing parameter to grub_printf() when MM_DEBUG is defined. Fixes: 64e26162e (calloc: Make sure we always have an overflow-checking calloc() available) Signed-off-by: Marco A Benatto Reviewed-by: Daniel Kiper Signed-off-by: Stefan Sørensen --- grub-core/kern/mm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c index f2822a8..c070afc 100644 --- a/grub-core/kern/mm.c +++ b/grub-core/kern/mm.c @@ -594,7 +594,7 @@ grub_debug_calloc (const char *file, int line, grub_size_t nmemb, grub_size_t si if (grub_mm_debug) grub_printf ("%s:%d: calloc (0x%" PRIxGRUB_SIZE ", 0x%" PRIxGRUB_SIZE ") = ", - file, line, size); + file, line, nmemb, size); ptr = grub_calloc (nmemb, size); if (grub_mm_debug) grub_printf ("%p\n", ptr); -- 2.14.2 ================================================ FILE: boot/grub2/0150-Makefile-Make-libgrub.pp-depend-on-config-util.h.patch ================================================ From 42f4054faf3c7f2cd2cab5b43e63f9d97d81f7a1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 4 Mar 2020 12:58:42 +0100 Subject: [PATCH 150/150] Makefile: Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: gcc -E -DHAVE_CONFIG_H -I. -I.. -Wall -W -DGRUB_UTIL=1 -D_FILE_OFFSET_BITS=64 -I./include -DGRUB_FILE=\"grub_script.tab.h\" -I. -I.. -I. -I.. -I../include -I./include -I../grub-core/lib/libgcrypt-grub/src/ -I../grub-core/lib/minilzo -I../grub-core/lib/xzembed -DMINILZO_HAVE_CONFIG_H -Wall -W -DGRUB_UTIL=1 -D_FILE_OFFSET_BITS=64 -I./include -DGRUB_FILE=\"grub_script.tab.h\" -I. -I.. -I. -I.. -I../include -I./include -I../grub-core/lib/libgcrypt-grub/src/ -I./grub-core/gnulib -I../grub-core/gnulib -I/builddir/build/BUILD/grub-2.02/grub-aarch64-efi-2.02 -D_FILE_OFFSET_BITS=64 \ -D'GRUB_MOD_INIT(x)=@MARKER@x@' grub_script.tab.h grub_script.yy.h ../grub-core/commands/blocklist.c ../grub-core/commands/macbless.c ../grub-core/commands/xnu_uuid.c ../grub-core/commands/testload.c ../grub-core/commands/ls.c ../grub-core/disk/dmraid_nvidia.c ../grub-core/disk/loopback.c ../grub-core/disk/lvm.c ../grub-core/disk/mdraid_linux.c ../grub-core/disk/mdraid_linux_be.c ../grub-core/disk/mdraid1x_linux.c ../grub-core/disk/raid5_recover.c ../grub-core/disk/raid6_recover.c ../grub-core/font/font.c ../grub-core/gfxmenu/font.c ../grub-core/normal/charset.c ../grub-core/video/fb/fbblit.c ../grub-core/video/fb/fbutil.c ../grub-core/video/fb/fbfill.c ../grub-core/video/fb/video_fb.c ../grub-core/video/video.c ../grub-core/video/capture.c ../grub-core/video/colors.c ../grub-core/unidata.c ../grub-core/io/bufio.c ../grub-core/fs/affs.c ../grub-core/fs/afs.c ../grub-core/fs/bfs.c ../grub-core/fs/btrfs.c ../grub-core/fs/cbfs.c ../grub-core/fs/cpio.c ../grub-core/fs/cpio_be.c ../grub-core/fs/odc.c ../grub-core/fs/newc.c ../grub-core/fs/ext2.c ../grub-core/fs/fat.c ../grub-core/fs/exfat.c ../grub-core/fs/fshelp.c ../grub-core/fs/hfs.c ../grub-core/fs/hfsplus.c ../grub-core/fs/hfspluscomp.c ../grub-core/fs/iso9660.c ../grub-core/fs/jfs.c ../grub-core/fs/minix.c ../grub-core/fs/minix2.c ../grub-core/fs/minix3.c ../grub-core/fs/minix_be.c ../grub-core/fs/minix2_be.c ../grub-core/fs/minix3_be.c ../grub-core/fs/nilfs2.c ../grub-core/fs/ntfs.c ../grub-core/fs/ntfscomp.c ../grub-core/fs/reiserfs.c ../grub-core/fs/romfs.c ../grub-core/fs/sfs.c ../grub-core/fs/squash4.c ../grub-core/fs/tar.c ../grub-core/fs/udf.c ../grub-core/fs/ufs2.c ../grub-core/fs/ufs.c ../grub-core/fs/ufs_be.c ../grub-core/fs/xfs.c ../grub-core/fs/zfs/zfscrypt.c ../grub-core/fs/zfs/zfs.c ../grub-core/fs/zfs/zfsinfo.c ../grub-core/fs/zfs/zfs_lzjb.c ../grub-core/fs/zfs/zfs_lz4.c ../grub-core/fs/zfs/zfs_sha256.c ../grub-core/fs/zfs/zfs_fletcher.c ../grub-core/lib/envblk.c ../grub-core/lib/hexdump.c ../grub-core/lib/LzFind.c ../grub-core/lib/LzmaEnc.c ../grub-core/lib/crc.c ../grub-core/lib/adler32.c ../grub-core/lib/crc64.c ../grub-core/normal/datetime.c ../grub-core/normal/misc.c ../grub-core/partmap/acorn.c ../grub-core/partmap/amiga.c ../grub-core/partmap/apple.c ../grub-core/partmap/sun.c ../grub-core/partmap/plan.c ../grub-core/partmap/dvh.c ../grub-core/partmap/sunpc.c ../grub-core/partmap/bsdlabel.c ../grub-core/partmap/dfly.c ../grub-core/script/function.c ../grub-core/script/lexer.c ../grub-core/script/main.c ../grub-core/script/script.c ../grub-core/script/argv.c ../grub-core/io/gzio.c ../grub-core/io/xzio.c ../grub-core/io/lzopio.c ../grub-core/kern/ia64/dl_helper.c ../grub-core/kern/arm/dl_helper.c ../grub-core/kern/arm64/dl_helper.c ../grub-core/lib/minilzo/minilzo.c ../grub-core/lib/xzembed/xz_dec_bcj.c ../grub-core/lib/xzembed/xz_dec_lzma2.c ../grub-core/lib/xzembed/xz_dec_stream.c ../util/misc.c ../grub-core/kern/command.c ../grub-core/kern/device.c ../grub-core/kern/disk.c ../grub-core/lib/disk.c ../util/getroot.c ../grub-core/osdep/unix/getroot.c ../grub-core/osdep/getroot.c ../grub-core/osdep/devmapper/getroot.c ../grub-core/osdep/relpath.c ../grub-core/kern/emu/hostdisk.c ../grub-core/osdep/devmapper/hostdisk.c ../grub-core/osdep/hostdisk.c ../grub-core/osdep/unix/hostdisk.c ../grub-core/osdep/exec.c ../grub-core/osdep/sleep.c ../grub-core/osdep/password.c ../grub-core/kern/emu/misc.c ../grub-core/kern/emu/mm.c ../grub-core/kern/env.c ../grub-core/kern/err.c ../grub-core/kern/file.c ../grub-core/kern/fs.c ../grub-core/kern/list.c ../grub-core/kern/misc.c ../grub-core/kern/partition.c ../grub-core/lib/crypto.c ../grub-core/disk/luks.c ../grub-core/disk/geli.c ../grub-core/disk/cryptodisk.c ../grub-core/disk/AFSplitter.c ../grub-core/lib/pbkdf2.c ../grub-core/commands/extcmd.c ../grub-core/lib/arg.c ../grub-core/disk/ldm.c ../grub-core/disk/diskfilter.c ../grub-core/partmap/gpt.c ../grub-core/partmap/msdos.c ../grub-core/fs/proc.c ../grub-core/fs/archelp.c > libgrub.pp || (rm -f libgrub.pp; exit 1) rm -f stamp-h1 touch ../config-util.h.in cd . && /bin/sh ./config.status config-util.h config.status: creating config-util.h In file included from ../include/grub/mm.h:25:0, from ../include/grub/disk.h:29, from ../include/grub/file.h:26, from ../grub-core/fs/btrfs.c:21: ./config.h:38:10: fatal error: ./config-util.h: No such file or directory #include ^~~~~~~~~~~~~~~ compilation terminated. make: *** [Makefile:13098: libgrub.pp] Error 1 This is because libgrub.pp is built with -DGRUB_UTIL=1, which means it'll try to include config-util.h, but a parallel make is actually building that file. I think. Signed-off-by: Peter Jones Signed-off-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper --- Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 1f4bb9b8c..bf9c1ba64 100644 --- a/Makefile.am +++ b/Makefile.am @@ -37,7 +37,7 @@ grub_script.yy.c: grub_script.yy.h CLEANFILES += grub_script.yy.c grub_script.yy.h # For libgrub.a -libgrub.pp: grub_script.tab.h grub_script.yy.h $(libgrubmods_a_SOURCES) $(libgrubkern_a_SOURCES) +libgrub.pp: config-util.h grub_script.tab.h grub_script.yy.h $(libgrubmods_a_SOURCES) $(libgrubkern_a_SOURCES) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgrubmods_a_CPPFLAGS) $(libgrubkern_a_CPPFLAGS) $(CPPFLAGS) \ -D'GRUB_MOD_INIT(x)=@MARKER@x@' $^ > $@ || (rm -f $@; exit 1) CLEANFILES += libgrub.pp -- 2.25.1 diff --git a/Makefile.in b/Makefile.in index 1f4bb9b8c..bf9c1ba64 100644 --- a/Makefile.in +++ b/Makefile.in @@ -37,7 +37,7 @@ grub_script.yy.c: grub_script.yy.h CLEANFILES += grub_script.yy.c grub_script.yy.h # For libgrub.a -libgrub.pp: grub_script.tab.h grub_script.yy.h $(libgrubmods_a_SOURCES) $(libgrubkern_a_SOURCES) +libgrub.pp: config-util.h grub_script.tab.h grub_script.yy.h $(libgrubmods_a_SOURCES) $(libgrubkern_a_SOURCES) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgrubmods_a_CPPFLAGS) $(libgrubkern_a_CPPFLAGS) $(CPPFLAGS) \ -D'GRUB_MOD_INIT(x)=@MARKER@x@' $^ > $@ || (rm -f $@; exit 1) CLEANFILES += libgrub.pp -- 2.25.1 ================================================ FILE: boot/grub2/Config.in ================================================ config BR2_TARGET_GRUB2_ARCH_SUPPORTS bool default y if BR2_i386 default y if BR2_x86_64 default y if BR2_arm default y if BR2_aarch64 depends on BR2_USE_MMU config BR2_TARGET_GRUB2 bool "grub2" depends on BR2_TARGET_GRUB2_ARCH_SUPPORTS depends on BR2_USE_WCHAR select BR2_TARGET_GRUB2_I386_PC if \ !BR2_TARGET_GRUB2_HAS_PTF && \ (BR2_i386 || BR2_x86_64) select BR2_TARGET_GRUB2_ARM_UBOOT if \ !BR2_TARGET_GRUB2_HAS_PTF && \ BR2_arm select BR2_TARGET_GRUB2_ARM64_EFI if BR2_aarch64 help GNU GRUB is a Multiboot boot loader. It was derived from GRUB, the GRand Unified Bootloader, which was originally designed and implemented by Erich Stefan Boleyn. GRUB 2 has replaced what was formerly known as GRUB (i.e. version 0.9x), which has, in turn, become GRUB Legacy. Amongst others, GRUB2 offers EFI support, which GRUB Legacy doesn't provide. For additional notes on using Grub 2 with Buildroot, see boot/grub2/readme.txt http://www.gnu.org/software/grub/ if BR2_TARGET_GRUB2 config BR2_TARGET_GRUB2_HAS_LEGACY_BOOT bool config BR2_TARGET_GRUB2_HAS_EFI_BOOT bool config BR2_TARGET_GRUB2_HAS_PTF bool config BR2_TARGET_GRUB2_I386_PC bool "i386-pc" depends on BR2_i386 || BR2_x86_64 select BR2_TARGET_GRUB2_HAS_LEGACY_BOOT help Select this option if the platform you're targetting is a x86 or x86-64 legacy BIOS based platform. config BR2_TARGET_GRUB2_I386_EFI bool "i386-efi" depends on BR2_i386 || BR2_x86_64 select BR2_TARGET_GRUB2_HAS_PTF select BR2_TARGET_GRUB2_HAS_EFI_BOOT help Select this option if the platform you're targetting has a 32 bits EFI BIOS. Note that some x86-64 platforms use a 32 bits EFI BIOS, and this option should be used in this case. config BR2_TARGET_GRUB2_X86_64_EFI bool "x86-64-efi" depends on BR2_x86_64 select BR2_TARGET_GRUB2_HAS_PTF select BR2_TARGET_GRUB2_HAS_EFI_BOOT help Select this option if the platform you're targetting has a 64 bits EFI BIOS. config BR2_TARGET_GRUB2_ARM_UBOOT bool "arm-uboot" depends on BR2_arm select BR2_TARGET_GRUB2_HAS_LEGACY_BOOT help Select this option if the platform you're targetting is an ARM u-boot platform, and you want to boot Grub 2 as an u-boot compatible image. config BR2_TARGET_GRUB2_ARM_EFI bool "arm-efi" depends on BR2_arm select BR2_TARGET_GRUB2_HAS_PTF select BR2_TARGET_GRUB2_HAS_EFI_BOOT help Select this option if the platform you're targetting is an ARM platform and you want to boot Grub 2 as an EFI application. config BR2_TARGET_GRUB2_ARM64_EFI bool "arm64-efi" depends on BR2_aarch64 select BR2_TARGET_GRUB2_HAS_EFI_BOOT help Select this option if the platform you're targetting is an Aarch64 platform and you want to boot Grub 2 as an EFI application. if BR2_TARGET_GRUB2_HAS_LEGACY_BOOT comment "Options for the x86 legacy BIOS or ARM U-Boot support" config BR2_TARGET_GRUB2_BOOT_PARTITION string "boot partition" default "hd0,msdos1" help Specify the partition where the /boot/grub/grub.cfg file is located. Use 'hd0,msdos1' for the first partition of the first disk if using a legacy partition table, or 'hd0,gpt1' if using GPT partition table. config BR2_TARGET_GRUB2_BUILTIN_MODULES_PC string "builtin modules" default BR2_TARGET_GRUB2_BUILTIN_MODULES if BR2_TARGET_GRUB2_BUILTIN_MODULES != "" # legacy default "boot linux ext2 fat squash4 part_msdos part_gpt normal biosdisk" if BR2_TARGET_GRUB2_I386_PC default "linux ext2 fat part_msdos normal" if BR2_TARGET_GRUB2_ARM_UBOOT config BR2_TARGET_GRUB2_BUILTIN_CONFIG_PC string "builtin config" default BR2_TARGET_GRUB2_BUILTIN_CONFIG if BR2_TARGET_GRUB2_BUILTIN_CONFIG != "" # legacy help Path to a Grub 2 configuration file that will be embedded into the Grub image itself. This allows to set the root device and other configuration parameters, but however menu entries cannot be described in this embedded configuration. endif # BR2_TARGET_GRUB2_HAS_LEGACY_BOOT if BR2_TARGET_GRUB2_HAS_EFI_BOOT comment "Options for the EFI BIOS or ARM EFI support" config BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI string "builtin modules" default BR2_TARGET_GRUB2_BUILTIN_MODULES if BR2_TARGET_GRUB2_BUILTIN_MODULES != "" # legacy default "boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop" config BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI string "builtin config" default BR2_TARGET_GRUB2_BUILTIN_CONFIG if BR2_TARGET_GRUB2_BUILTIN_CONFIG != "" # legacy help Path to a Grub 2 configuration file that will be embedded into the Grub image itself. This allows to set the root device and other configuration parameters, but however menu entries cannot be described in this embedded configuration. endif # BR2_TARGET_GRUB2_HAS_EFI_BOOT config BR2_TARGET_GRUB2_INSTALL_TOOLS bool "install tools" help Install support tools to interact with GNU GRUB Multiboot boot loader. This will also install the Grub 2 loadable modules to the target. endif # BR2_TARGET_GRUB2 comment "grub2 needs a toolchain w/ wchar" depends on BR2_TARGET_GRUB2_ARCH_SUPPORTS depends on !BR2_USE_WCHAR ================================================ FILE: boot/grub2/grub.cfg ================================================ set default="0" set timeout="5" menuentry "Buildroot" { linux /boot/bzImage root=/dev/sda1 rootwait console=tty1 } ================================================ FILE: boot/grub2/grub2.hash ================================================ # Locally computed: sha256 e5292496995ad42dabe843a0192cf2a2c502e7ffcc7479398232b10a472df77d grub-2.04.tar.xz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: boot/grub2/grub2.mk ================================================ ################################################################################ # # grub2 # ################################################################################ GRUB2_VERSION = 2.04 GRUB2_SITE = http://ftp.gnu.org/gnu/grub GRUB2_SOURCE = grub-$(GRUB2_VERSION).tar.xz GRUB2_LICENSE = GPL-3.0+ GRUB2_LICENSE_FILES = COPYING GRUB2_DEPENDENCIES = host-bison host-flex host-grub2 HOST_GRUB2_DEPENDENCIES = host-bison host-flex GRUB2_INSTALL_IMAGES = YES # 0001-build-Fix-GRUB-i386-pc-build-with-Ubuntu-gcc.patch and 2021/03/02 # security fixes (patches 0029-0149) define GRUB2_AVOID_AUTORECONF $(Q)touch $(@D)/Makefile.util.am $(Q)touch $(@D)/aclocal.m4 $(Q)touch $(@D)/Makefile.in $(Q)touch $(@D)/configure endef GRUB2_POST_PATCH_HOOKS += GRUB2_AVOID_AUTORECONF HOST_GRUB2_POST_PATCH_HOOKS += GRUB2_AVOID_AUTORECONF # 0002-yylex-Make-lexer-fatal-errors-actually-be-fatal.patch GRUB2_IGNORE_CVES += CVE-2020-10713 # 0005-calloc-Use-calloc-at-most-places.patch GRUB2_IGNORE_CVES += CVE-2020-14308 # 0006-malloc-Use-overflow-checking-primitives-where-we-do-.patch GRUB2_IGNORE_CVES += CVE-2020-14309 CVE-2020-14310 CVE-2020-14311 # 0019-script-Avoid-a-use-after-free-when-redefining-a-func.patch GRUB2_IGNORE_CVES += CVE-2020-15706 # 0028-linux-Fix-integer-overflows-in-initrd-size-handling.patch GRUB2_IGNORE_CVES += CVE-2020-15707 # 2021/03/02 security fixes - patches 0029-0149 GRUB2_IGNORE_CVES += CVE-2020-25632 CVE-2020-25647 CVE-2020-27749 \ CVE-2020-27779 CVE-2021-3418 CVE-2021-20225 CVE-2021-20233 # 0039-acpi-Don-t-register-the-acpi-command-when-locked-dow.patch GRUB2_IGNORE_CVES += CVE-2020-14372 # CVE-2019-14865 is about a flaw in the grub2-set-bootflag tool, which # doesn't exist upstream, but is added by the Redhat/Fedora # packaging. Not applicable to Buildroot. GRUB2_IGNORE_CVES += CVE-2019-14865 # CVE-2020-15705 is related to a flaw in the use of the # grub_linuxefi_secure_validate(), which was added by Debian/Ubuntu # patches. The issue doesn't affect upstream Grub, and # grub_linuxefi_secure_validate() is not implemented in the grub2 # version available in Buildroot. GRUB2_IGNORE_CVES += CVE-2020-15705 ifeq ($(BR2_TARGET_GRUB2_INSTALL_TOOLS),y) GRUB2_INSTALL_TARGET = YES else GRUB2_INSTALL_TARGET = NO endif GRUB2_CPE_ID_VENDOR = gnu GRUB2_BUILTIN_MODULES_PC = $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_MODULES_PC)) GRUB2_BUILTIN_MODULES_EFI = $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI)) GRUB2_BUILTIN_CONFIG_PC = $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_CONFIG_PC)) GRUB2_BUILTIN_CONFIG_EFI = $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI)) GRUB2_BOOT_PARTITION = $(call qstrip,$(BR2_TARGET_GRUB2_BOOT_PARTITION)) GRUB2_IMAGE_i386-pc = $(BINARIES_DIR)/grub.img GRUB2_CFG_i386-pc = $(TARGET_DIR)/boot/grub/grub.cfg GRUB2_PREFIX_i386-pc = ($(GRUB2_BOOT_PARTITION))/boot/grub GRUB2_TARGET_i386-pc = i386 GRUB2_PLATFORM_i386-pc = pc GRUB2_BUILTIN_CONFIG_i386-pc = $(GRUB2_BUILTIN_CONFIG_PC) GRUB2_BUILTIN_MODULES_i386-pc = $(GRUB2_BUILTIN_MODULES_PC) GRUB2_TUPLES-$(BR2_TARGET_GRUB2_I386_PC) += i386-pc GRUB2_IMAGE_i386-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/bootia32.efi GRUB2_CFG_i386-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/grub.cfg GRUB2_PREFIX_i386-efi = /EFI/BOOT GRUB2_TARGET_i386-efi = i386 GRUB2_PLATFORM_i386-efi = efi GRUB2_BUILTIN_CONFIG_i386-efi = $(GRUB2_BUILTIN_CONFIG_EFI) GRUB2_BUILTIN_MODULES_i386-efi = $(GRUB2_BUILTIN_MODULES_EFI) GRUB2_TUPLES-$(BR2_TARGET_GRUB2_I386_EFI) += i386-efi GRUB2_IMAGE_x86_64-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/bootx64.efi GRUB2_CFG_x86_64-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/grub.cfg GRUB2_PREFIX_x86_64-efi = /EFI/BOOT GRUB2_TARGET_x86_64-efi = x86_64 GRUB2_PLATFORM_x86_64-efi = efi GRUB2_BUILTIN_CONFIG_x86_64-efi = $(GRUB2_BUILTIN_CONFIG_EFI) GRUB2_BUILTIN_MODULES_x86_64-efi = $(GRUB2_BUILTIN_MODULES_EFI) GRUB2_TUPLES-$(BR2_TARGET_GRUB2_X86_64_EFI) += x86_64-efi GRUB2_IMAGE_arm-uboot = $(BINARIES_DIR)/boot-part/grub/grub.img GRUB2_CFG_arm-uboot = $(BINARIES_DIR)/boot-part/grub/grub.cfg GRUB2_PREFIX_arm-uboot = ($(GRUB2_BOOT_PARTITION))/boot/grub GRUB2_TARGET_arm-uboot = arm GRUB2_PLATFORM_arm-uboot = uboot GRUB2_BUILTIN_CONFIG_arm-uboot = $(GRUB2_BUILTIN_CONFIG_PC) GRUB2_BUILTIN_MODULES_arm-uboot = $(GRUB2_BUILTIN_MODULES_PC) GRUB2_TUPLES-$(BR2_TARGET_GRUB2_ARM_UBOOT) += arm-uboot GRUB2_IMAGE_arm-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/bootarm.efi GRUB2_CFG_arm-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/grub.cfg GRUB2_PREFIX_arm-efi = /EFI/BOOT GRUB2_TARGET_arm-efi = arm GRUB2_PLATFORM_arm-efi = efi GRUB2_BUILTIN_CONFIG_arm-efi = $(GRUB2_BUILTIN_CONFIG_EFI) GRUB2_BUILTIN_MODULES_arm-efi = $(GRUB2_BUILTIN_MODULES_EFI) GRUB2_TUPLES-$(BR2_TARGET_GRUB2_ARM_EFI) += arm-efi GRUB2_IMAGE_arm64-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/bootaa64.efi GRUB2_CFG_arm64-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/grub.cfg GRUB2_PREFIX_arm64-efi = /EFI/BOOT GRUB2_TARGET_arm64-efi = aarch64 GRUB2_PLATFORM_arm64-efi = efi GRUB2_BUILTIN_CONFIG_arm64-efi = $(GRUB2_BUILTIN_CONFIG_EFI) GRUB2_BUILTIN_MODULES_arm64-efi = $(GRUB2_BUILTIN_MODULES_EFI) GRUB2_TUPLES-$(BR2_TARGET_GRUB2_ARM64_EFI) += arm64-efi # Grub2 is kind of special: it considers CC, LD and so on to be the # tools to build the host programs and uses TARGET_CC, TARGET_CFLAGS, # TARGET_CPPFLAGS, TARGET_LDFLAGS to build the bootloader itself. # # NOTE: TARGET_STRIP is overridden by !BR2_STRIP_strip, so always # use the cross compile variant to ensure grub2 builds HOST_GRUB2_CONF_ENV = \ CPP="$(HOSTCC) -E" GRUB2_CONF_ENV = \ CPP="$(TARGET_CC) -E" \ TARGET_CC="$(TARGET_CC)" \ CFLAGS="$(TARGET_CFLAGS) -Os" \ TARGET_CFLAGS="$(TARGET_CFLAGS) -Os" \ CPPFLAGS="$(TARGET_CPPFLAGS) -Os -fno-stack-protector" \ TARGET_CPPFLAGS="$(TARGET_CPPFLAGS) -Os -fno-stack-protector" \ TARGET_LDFLAGS="$(TARGET_LDFLAGS) -Os" \ TARGET_NM="$(TARGET_NM)" \ TARGET_OBJCOPY="$(TARGET_OBJCOPY)" \ TARGET_STRIP="$(TARGET_CROSS)strip" HOST_GRUB2_CONF_OPTS = \ --with-platform=none \ --disable-grub-mkfont \ --enable-efiemu=no \ ac_cv_lib_lzma_lzma_code=no \ --enable-device-mapper=no \ --enable-libzfs=no \ --disable-werror define GRUB2_CONFIGURE_CMDS $(foreach tuple, $(GRUB2_TUPLES-y), \ @$(call MESSAGE,Configuring $(tuple)) mkdir -p $(@D)/build-$(tuple) cd $(@D)/build-$(tuple) && \ $(TARGET_CONFIGURE_OPTS) \ $(TARGET_CONFIGURE_ARGS) \ $(GRUB2_CONF_ENV) \ ../configure \ --target=$(GRUB2_TARGET_$(tuple)) \ --with-platform=$(GRUB2_PLATFORM_$(tuple)) \ --host=$(GNU_TARGET_NAME) \ --build=$(GNU_HOST_NAME) \ --prefix=/ \ --exec-prefix=/ \ --disable-grub-mkfont \ --enable-efiemu=no \ ac_cv_lib_lzma_lzma_code=no \ --enable-device-mapper=no \ --enable-libzfs=no \ --disable-werror ) endef define GRUB2_BUILD_CMDS $(foreach tuple, $(GRUB2_TUPLES-y), \ @$(call MESSAGE,Building $(tuple)) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/build-$(tuple) ) endef define GRUB2_INSTALL_IMAGES_CMDS $(foreach tuple, $(GRUB2_TUPLES-y), \ @$(call MESSAGE,Installing $(tuple) to images directory) mkdir -p $(dir $(GRUB2_IMAGE_$(tuple))) $(HOST_DIR)/usr/bin/grub-mkimage \ -d $(@D)/build-$(tuple)/grub-core/ \ -O $(tuple) \ -o $(GRUB2_IMAGE_$(tuple)) \ -p "$(GRUB2_PREFIX_$(tuple))" \ $(if $(GRUB2_BUILTIN_CONFIG_$(tuple)), \ -c $(GRUB2_BUILTIN_CONFIG_$(tuple))) \ $(GRUB2_BUILTIN_MODULES_$(tuple)) $(INSTALL) -D -m 0644 boot/grub2/grub.cfg $(GRUB2_CFG_$(tuple)) $(if $(findstring $(GRUB2_PLATFORM_$(tuple)), pc), \ cat $(@D)/build-$(tuple)/grub-core/cdboot.img $(GRUB2_IMAGE_$(tuple)) > \ $(BINARIES_DIR)/grub-eltorito.img ) \ ) endef ifeq ($(BR2_TARGET_GRUB2_INSTALL_TOOLS),y) define GRUB2_INSTALL_TARGET_CMDS $(foreach tuple, $(GRUB2_TUPLES-y), \ @$(call MESSAGE,Installing $(tuple) to target directory) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/build-$(tuple) DESTDIR=$(TARGET_DIR) install ) endef endif $(eval $(generic-package)) $(eval $(host-autotools-package)) ================================================ FILE: boot/grub2/readme.txt ================================================ Notes on using Grub2 for BIOS-based platforms ============================================= 1. Create a disk image dd if=/dev/zero of=disk.img bs=1M count=32 2. Partition it (either legacy or GPT style partitions work) cfdisk disk.img - Create one partition, type Linux, for the root filesystem. The only constraint is to make sure there is enough free space *before* the first partition to store Grub2. Leaving 1 MB of free space is safe. 3. Setup loop device and loop partitions sudo losetup -f disk.img sudo partx -a /dev/loop0 4. Prepare the root partition sudo mkfs.ext3 -L root /dev/loop0p1 sudo mount /dev/loop0p1 /mnt sudo tar -C /mnt -xf output/images/rootfs.tar sudo umount /mnt 5. Install Grub2 sudo ./output/host/sbin/grub-bios-setup \ -b ./output/host/lib/grub/i386-pc/boot.img \ -c ./output/images/grub.img -d . /dev/loop0 6. Cleanup loop device sudo partx -d /dev/loop0 sudo losetup -d /dev/loop0 7. Your disk.img is ready! Using genimage -------------- If you use genimage to generate your complete image, installing Grub can be tricky. Here is how to achieve Grub's installation with genimage: partition boot { in-partition-table = "no" image = "path_to_boot.img" offset = 0 size = 512 } partition grub { in-partition-table = "no" image = "path_to_grub.img" offset = 512 } The result is not byte to byte identical to what grub-bios-setup does but it works anyway. To test your BIOS image in Qemu ------------------------------- qemu-system-{i386,x86-64} -hda disk.img Notes on using Grub2 for x86/x86_64 EFI-based platforms ======================================================= 1. Create a disk image dd if=/dev/zero of=disk.img bs=1M count=32 2. Partition it with GPT partitions cgdisk disk.img - Create a first partition, type EF00, for the bootloader and kernel image - Create a second partition, type 8300, for the root filesystem. 3. Setup loop device and loop partitions sudo losetup -f disk.img sudo partx -a /dev/loop0 4. Prepare the boot partition sudo mkfs.vfat -n boot /dev/loop0p1 sudo mount /dev/loop0p1 /mnt sudo cp -a output/images/efi-part/* /mnt/ sudo cp output/images/bzImage /mnt/ sudo umount /mnt 5. Prepare the root partition sudo mkfs.ext3 -L root /dev/loop0p2 sudo mount /dev/loop0p2 /mnt sudo tar -C /mnt -xf output/images/rootfs.tar sudo umount /mnt 6 Cleanup loop device sudo partx -d /dev/loop0 sudo losetup -d /dev/loop0 7. Your disk.img is ready! To test your i386/x86-64 EFI image in Qemu ------------------------------------------ 1. Download the EFI BIOS for Qemu Version IA32 or X64 depending on the chosen Grub2 platform (i386-efi vs. x86-64-efi) https://www.kraxel.org/repos/jenkins/edk2/ (or use one provided by your distribution as OVMF) 2. Extract, and rename OVMF.fd to bios.bin and CirrusLogic5446.rom to vgabios-cirrus.bin. 3. qemu-system-{i386,x86-64} -L ovmf-dir/ -hda disk.img 4. Make sure to pass pci=nocrs to the kernel command line, to workaround a bug in the EFI BIOS regarding the EFI framebuffer. Notes on using Grub2 for ARM u-boot-based platforms =================================================== The following steps show how to use the Grub2 arm-uboot platform support in the simplest way possible and with a single buildroot-generated filesystem. 1. Load qemu_arm_vexpress_defconfig 2. Enable u-boot with the vexpress_ca9x4 board name and with u-boot.elf image format. 3. Enable grub2 for the arm-uboot platform. 4. Enable "Install kernel image to /boot in target" in the kernel menu to populate a /boot directory with zImage in it. 5. The upstream u-boot vexpress_ca9x4 doesn't have CONFIG_API enabled by default, which is required. Before building, patch u-boot (for example, make u-boot-extract to edit the source before building) file include/configs/vexpress_common.h to define: #define CONFIG_API #define CONFIG_SYS_MMC_MAX_DEVICE 1 6. Create a custom grub2 config file with the following contents and set its path in BR2_TARGET_GRUB2_CFG: set default="0" set timeout="5" menuentry "Buildroot" { set root='(hd0)' linux /boot/zImage root=/dev/mmcblk0 console=ttyAMA0 devicetree /boot/vexpress-v2p-ca9.dtb } 7. Create a custom builtin config file with the following contents and set its path in BR2_TARGET_GRUB2_BUILTIN_CONFIG: set root=(hd0) set prefix=/boot/grub 8. Create a custom post-build script which copies files from ${BINARIES_DIR}/boot-part to $(TARGET_DIR)/boot (set its path in BR2_ROOTFS_POST_BUILD_SCRIPT): #!/bin/sh cp -r ${BINARIES_DIR}/boot-part/* ${TARGET_DIR}/boot/ 9. make 10. Run qemu with: qemu-system-arm -M vexpress-a9 -kernel output/images/u-boot -m 1024 \ -nographic -sd output/images/rootfs.ext2 11. In u-boot, stop at the prompt and run grub2 with: => ext2load mmc 0:0 ${loadaddr} /boot/grub/grub.img => bootm 12. This should bring the grub2 menu, upon which selecting the "Buildroot" entry should boot Linux. Notes on using Grub2 for Aarch64 EFI-based platforms ==================================================== The following steps show how to use the Grub2 arm64-efi platform, using qemu and EFI firmware built for qemu. 1. Load aarch64_efi_defconfig 2. make 3. Download the EFI firmware for qemu aarch64 https://www.kraxel.org/repos/jenkins/edk2/ (or use one provided by your distribution as OVMF-aarch64 or AAVMF) 4. Run qemu with: qemu-system-aarch64 -M virt -cpu cortex-a57 -m 512 -nographic \ -bios /QEMU_EFI.fd -hda output/images/disk.img \ -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 5. This should bring the grub2 menu, upon which selecting the "Buildroot" entry should boot Linux. ================================================ FILE: boot/gummiboot/0001-Allow-building-with-newer-glibc-versions.patch ================================================ From 40ab4167b5a45c772304a879c71b47d54de3b0e3 Mon Sep 17 00:00:00 2001 From: Esben Haabendal Date: Wed, 20 Mar 2019 14:19:40 +0100 Subject: [PATCH] Allow building with newer glibc versions Newer glibc versions does not include sys/sysmacros.h from sys/types.h anymore. Including it unconditionally should be safe. See https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html for why this was done. Signed-off-by: Esben Haabendal --- src/setup/setup.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/setup/setup.c b/src/setup/setup.c index 6a4275a2ae36..53429375a146 100644 --- a/src/setup/setup.c +++ b/src/setup/setup.c @@ -37,6 +37,7 @@ #include #include #include +#include #include "efivars.h" -- 2.21.0 ================================================ FILE: boot/gummiboot/0002-Fix-linking-for-non-host-compatible-targets.patch ================================================ From fc05ced797b87286b8ec7303fe32bf200a072972 Mon Sep 17 00:00:00 2001 From: Esben Haabendal Date: Mon, 18 Mar 2019 11:14:31 +0100 Subject: [PATCH] Fix linking for non-host compatible targets Without this, gummiboot build system will use host 'ld' when linking target binary, which is obviously not a good idea. Signed-off-by: Esben Haabendal --- Makefile.am | 4 ++-- configure.ac | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 6568a355ed74..9051dd44edd9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -142,7 +142,7 @@ $(top_builddir)/src/efi/%.o: $(top_srcdir)/src/efi/%.c $(addprefix $(top_srcdir) $(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@ $(gummiboot_solib): $(gummiboot_objects) - $(AM_V_CCLD)$(LD) $(efi_ldflags) $(gummiboot_objects) \ + $(AM_V_CCLD)$(EFI_LD) $(efi_ldflags) $(gummiboot_objects) \ -o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \ nm -D -u $@ | grep ' U ' && exit 1 || : .DELETE_ON_ERROR: $(gummboot_solib) @@ -177,7 +177,7 @@ $(top_builddir)/src/efi/%.o: $(top_srcdir)/src/efi/%.c $(addprefix $(top_srcdir) $(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@ $(stub_solib): $(stub_objects) - $(AM_V_CCLD)$(LD) $(efi_ldflags) $(stub_objects) \ + $(AM_V_CCLD)$(EFI_LD) $(efi_ldflags) $(stub_objects) \ -o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \ nm -D -u $@ | grep ' U ' && exit 1 || : .DELETE_ON_ERROR: $(gummboot_solib) diff --git a/configure.ac b/configure.ac index 27bbe1d73396..b948696c220b 100644 --- a/configure.ac +++ b/configure.ac @@ -40,6 +40,10 @@ dnl Don't try to use things like -std=c99 for efi compilation EFI_CC=$CC AC_SUBST([EFI_CC]) +dnl Allow specifying linker compatible with the compiler +EFI_LD=$LD +AC_SUBST([EFI_LD]) + AC_PROG_CC_C99 AM_PROG_CC_C_O AC_PROG_GCC_TRADITIONAL -- 2.21.0 ================================================ FILE: boot/gummiboot/Config.in ================================================ config BR2_TARGET_GUMMIBOOT bool "gummiboot" depends on BR2_i386 || BR2_x86_64 depends on BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS select BR2_PACKAGE_GNU_EFI select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBBLKID help gummiboot is a simple UEFI boot manager which executes configured EFI images. The default entry is selected by a configured pattern (glob) or an on-screen menu. gummiboot operates on the EFI System Partition (ESP) only. Configuration file fragments, kernels, initrds, other EFI images need to reside on the ESP. Linux kernels need to be built with CONFIG_EFI_STUB to be able to be directly executed as an EFI image. See the Grub2 help text for details on preparing an EFI capable disk image using Gummiboot: the instructions are exactly the same, except that the Gummiboot configuration files will be located in /loader/ inside the EFI partition. http://freedesktop.org/wiki/Software/gummiboot/ ================================================ FILE: boot/gummiboot/buildroot.conf ================================================ title Buildroot version 1 linux /bzImage options console=ttyS0 root=/dev/sda2 ================================================ FILE: boot/gummiboot/gummiboot.mk ================================================ ################################################################################ # # gummiboot # ################################################################################ GUMMIBOOT_SITE = https://gitlab.freedesktop.org/archived-projects/gummiboot.git GUMMIBOOT_SITE_METHOD = git GUMMIBOOT_VERSION = 2bcd919c681c952eb867ef1bdb458f1bc49c2d55 GUMMIBOOT_LICENSE = LGPL-2.1+ GUMMIBOOT_LICENSE_FILES = LICENSE # The git archive does not have the autoconf/automake stuff generated. GUMMIBOOT_AUTORECONF = YES GUMMIBOOT_DEPENDENCIES = gnu-efi host-pkgconf util-linux GUMMIBOOT_INSTALL_TARGET = NO GUMMIBOOT_INSTALL_IMAGES = YES ifeq ($(BR2_i386),y) GUMMIBOOT_IMGARCH = ia32 else ifeq ($(BR2_x86_64),y) GUMMIBOOT_IMGARCH = x64 endif GUMMIBOOT_CONF_OPTS = \ --host=$(BR2_ARCH) \ --with-efi-libdir=$(STAGING_DIR)/usr/lib \ --with-efi-ldsdir=$(STAGING_DIR)/usr/lib \ --with-efi-includedir=$(STAGING_DIR)/usr/include \ --disable-manpages define GUMMIBOOT_INSTALL_IMAGES_CMDS $(INSTALL) -D -m 0644 $(@D)/gummiboot$(GUMMIBOOT_IMGARCH).efi \ $(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(GUMMIBOOT_IMGARCH).efi $(INSTALL) -D -m 0644 boot/gummiboot/loader.conf \ $(BINARIES_DIR)/efi-part/loader/loader.conf $(INSTALL) -D -m 0644 boot/gummiboot/buildroot.conf \ $(BINARIES_DIR)/efi-part/loader/entries/buildroot.conf endef $(eval $(autotools-package)) ================================================ FILE: boot/gummiboot/loader.conf ================================================ timeout 3 default buildroot ================================================ FILE: boot/lpc32xxcdl/Config.in ================================================ config BR2_TARGET_LPC32XXCDL bool "LPC32XX CDL (kickstart and S1L)" depends on BR2_arm926t if BR2_TARGET_LPC32XXCDL config BR2_TARGET_LPC32XXCDL_BOARDNAME string "LPC32xx board name" endif #BR2_TARGET_LPC32XXCDL ================================================ FILE: boot/lpc32xxcdl/lpc32xxcdl-2.11-compiler_name.patch ================================================ Use CROSS_COMPILE as compiler name and stop using libc Signed-off-by: Alexandre Belloni --- makerule/lpc32xx/make.lpc32xx.gnu | 22 +++++++++++----------- 1 files changed, 11 insertions(+), 11 deletions(-) diff --git a/makerule/lpc32xx/make.lpc32xx.gnu b/makerule/lpc32xx/make.lpc32xx.gnu index 1014c28..3277d99 100644 --- a/makerule/lpc32xx/make.lpc32xx.gnu +++ b/makerule/lpc32xx/make.lpc32xx.gnu @@ -27,19 +27,19 @@ CFLAGS += -mno-sched-prolog -fno-hosted -mno-thumb-interwork -ffunction-sectio CFLAGS += -I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR) AFLAGS = -mcpu=arm926ej-s AFLAGS += -I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR) -CC = arm-none-eabi-gcc -AS = arm-none-eabi-as -AR = arm-none-eabi-ar -r -LD = arm-none-eabi-gcc -NM = arm-none-eabi-nm -OBJDUMP = arm-none-eabi-objdump -OBJCOPY = arm-none-eabi-objcopy -READELF = arm-none-eabi-readelf +CC = $(CROSS_COMPILE)gcc +AS = $(CROSS_COMPILE)as +AR = $(CROSS_COMPILE)ar -r +LD = $(CROSS_COMPILE)gcc +NM = $(CROSS_COMPILE)nm +OBJDUMP = $(CROSS_COMPILE)objdump +OBJCOPY = $(CROSS_COMPILE)objcopy +READELF = $(CROSS_COMPILE)readelf LDFLAGS += -Wl,--gc-sections LK = -static LK += -Wl,--start-group $(TARGET_CSP_LIB) $(TARGET_BSP_LIB) $(TARGET_GEN_LIB) -LK += -lgcc -lc -lg -lm -lstdc++ -lsupc++ +LK += -nostdlib -lgcc #-lc -lg -lm -lstdc++ -lsupc++ LK += -Wl,--end-group MAP = -Xlinker -Map -Xlinker LDESC = -Xlinker -T @@ -47,6 +47,6 @@ ENTRY = -e BIN = -bin EXT = .elf LEXT = -ELFTOREC =arm-none-eabi-objcopy -O srec --strip-all --verbose -ELFTOBIN =arm-none-eabi-objcopy -I elf32-littlearm -O binary --strip-all --verbose +ELFTOREC = $(OBJCOPY) -O srec --strip-all --verbose +ELFTOBIN = $(OBJCOPY) -I elf32-littlearm -O binary --strip-all --verbose REC =.srec -- 1.7.7.3 ================================================ FILE: boot/lpc32xxcdl/lpc32xxcdl-2.11-delete_redundant_files.patch ================================================ Remove duplicated files to stop the linker from complaining about duplicate symbols Signed-off-by: Alexandre Belloni --- --- a/csps/lpc32xx/bsps/fdi3250/startup/examples/s1l/sysapi_timer.c 2011-10-05 19:10:37.000000000 +0200 +++ /dev/null 2012-01-01 16:39:47.918907000 +0100 @@ -1,212 +0,0 @@ -/*********************************************************************** - * $Id:: sysapi_timer.c 3394 2010-05-06 17:56:27Z usb10132 $ - * - * Project: Time support functions - * - * Description: - * Implements the following functions required for the S1L API - * time_init - * time_reset - * time_start - * time_stop - * time_get - * time_get_rate - * - *********************************************************************** - * Software that is described herein is for illustrative purposes only - * which provides customers with programming information regarding the - * products. This software is supplied "AS IS" without any warranties. - * NXP Semiconductors assumes no responsibility or liability for the - * use of the software, conveys no license or title under any patent, - * copyright, or mask work right to the product. NXP Semiconductors - * reserves the right to make changes in the software without - * notification. NXP Semiconductors also make no representation or - * warranty that such application will be suitable for the specified - * use without further testing or modification. - **********************************************************************/ - -#include "s1l_sys_inf.h" -#include "lpc32xx_intc_driver.h" -#include "lpc32xx_timer_driver.h" - -static UNS_64 base_rate; -static INT_32 tdev = 0; - -/*********************************************************************** - * - * Function: time_init - * - * Purpose: Initializes time system - * - * Processing: Initializes the system timer. - * - * Parameters: None - * - * Outputs: None - * - * Returns: 0 if the init failed, otherwise non-zero - * - * Notes: None - * - **********************************************************************/ -INT_32 time_init(void) -{ - TMR_PSCALE_SETUP_T pscale; - - /* Open timer driver */ - if (tdev == 0) - { - tdev = timer_open((void *) TIMER_CNTR0, 0); - if (tdev != 0) - { - /* Use a prescale count to 100000 */ - pscale.ps_tick_val = 100000; - pscale.ps_us_val = 0; /* Not needed when ps_tick_val != 0 */ - timer_ioctl(tdev, TMR_SETUP_PSCALE, (INT_32) &pscale); - - /* Get timer clock rate */ - base_rate = (UNS_64) timer_ioctl(tdev, TMR_GET_STATUS, - TMR_GET_CLOCK); - } - } - - return tdev; -} - -/*********************************************************************** - * - * Function: time_reset - * - * Purpose: Resets system timer - * - * Processing: - * See function. - * - * Parameters: None - * - * Outputs: None - * - * Returns: Nothing - * - * Notes: None - * - **********************************************************************/ -void time_reset(void) -{ - if (tdev != 0) - { - timer_ioctl(tdev, TMR_RESET, 1); - } -} - -/*********************************************************************** - * - * Function: time_start - * - * Purpose: Starts system timer - * - * Processing: - * See function. - * - * Parameters: None - * - * Outputs: None - * - * Returns: Nothing - * - * Notes: None - * - **********************************************************************/ -void time_start(void) -{ - if (tdev != 0) - { - timer_ioctl(tdev, TMR_ENABLE, 1); - } -} - -/*********************************************************************** - * - * Function: time_stop - * - * Purpose: Stops system timer - * - * Processing: - * See function. - * - * Parameters: None - * - * Outputs: None - * - * Returns: Nothing - * - * Notes: None - * - **********************************************************************/ -void time_stop(void) -{ - if (tdev != 0) - { - timer_ioctl(tdev, TMR_ENABLE, 0); - } -} - -/*********************************************************************** - * - * Function: time_get - * - * Purpose: Returns current system time value - * - * Processing: - * See function. - * - * Parameters: None - * - * Outputs: None - * - * Returns: The number of ticks of the timer counter - * - * Notes: None - * - **********************************************************************/ -UNS_64 time_get(void) -{ - TMR_COUNTS_T tcounts; - UNS_64 ticks = 0; - - if (tdev != 0) - { - timer_ioctl(tdev, TMR_GET_COUNTS, (INT_32) &tcounts); - - /* Compute number of timer ticks */ - ticks = (UNS_64) tcounts.count_val * 100000; - ticks = ticks + (UNS_64) tcounts.ps_count_val; - } - - return ticks; -} - -/*********************************************************************** - * - * Function: time_get_rate - * - * Purpose: - * Returns base tick rate (ticks per second) of the time counter - * - * Processing: - * See function. - * - * Parameters: None - * - * Outputs: None - * - * Returns: The timer tick rate (in ticks per second) - * - * Notes: None - * - **********************************************************************/ -UNS_64 time_get_rate(void) -{ - return base_rate; -} - --- a/csps/lpc32xx/bsps/fdi3250/startup/examples/s1l/sys_mmu_cmd_group.c 2011-10-05 19:10:37.000000000 +0200 +++ /dev/null 2012-01-01 16:39:47.918907000 +0100 @@ -1,746 +0,0 @@ -/*********************************************************************** - * $Id:: sys_mmu_cmd_group.c 3430 2010-05-07 17:39:08Z usb10132 $ - * - * Project: Command processor for peek, poke, dump, and fill - * - * Description: - * Processes commands from the command prompt - * - *********************************************************************** - * Software that is described herein is for illustrative purposes only - * which provides customers with programming information regarding the - * products. This software is supplied "AS IS" without any warranties. - * NXP Semiconductors assumes no responsibility or liability for the - * use of the software, conveys no license or title under any patent, - * copyright, or mask work right to the product. NXP Semiconductors - * reserves the right to make changes in the software without - * notification. NXP Semiconductors also make no representation or - * warranty that such application will be suitable for the specified - * use without further testing or modification. - **********************************************************************/ - -#include "lpc_arm922t_cp15_driver.h" -#include "lpc_string.h" -#include "startup.h" -#include "s1l_cmds.h" -#include "s1l_sys_inf.h" - -/* dcache command */ -BOOL_32 cmd_dcache(void); -static UNS_32 cmd_dcache_plist[] = -{ - (PARSE_TYPE_STR), /* The "dcache" command */ - (PARSE_TYPE_DEC | PARSE_TYPE_END) -}; -static CMD_ROUTE_T core_dcache_cmd = -{ - (UNS_8 *) "dcache", - cmd_dcache, - (UNS_8 *) "Enables, disables, or flushes data cache", - (UNS_8 *) "dcache [0(disable), 1(enable), 2(flush)]", - cmd_dcache_plist, - NULL -}; - -/* icache command */ -BOOL_32 cmd_icache(void); -static UNS_32 cmd_icache_plist[] = -{ - (PARSE_TYPE_STR), /* The "icache" command */ - (PARSE_TYPE_DEC | PARSE_TYPE_END) -}; -static CMD_ROUTE_T core_icache_cmd = -{ - (UNS_8 *) "icache", - cmd_icache, - (UNS_8 *) "Enables or disables instruction cache", - (UNS_8 *) "icache [0(disable), 1(enable)]", - cmd_icache_plist, - NULL -}; - -/* inval command */ -BOOL_32 cmd_inval(void); -static UNS_32 cmd_inval_plist[] = -{ - (PARSE_TYPE_STR | PARSE_TYPE_END) /* The "inval" command */ -}; -static CMD_ROUTE_T core_inval_cmd = -{ - (UNS_8 *) "inval", - cmd_inval, - (UNS_8 *) "Flushes data cache and invalidates instruction cache", - (UNS_8 *) "inval", - cmd_inval_plist, - NULL -}; - -/* mmuenab command */ -BOOL_32 cmd_mmuenab(void); -static UNS_32 cmd_mmuenab_plist[] = -{ - (PARSE_TYPE_STR), /* The "mmuenab" command */ - (PARSE_TYPE_DEC | PARSE_TYPE_END) -}; -static CMD_ROUTE_T core_mmuenab_cmd = -{ - (UNS_8 *) "mmuenab", - cmd_mmuenab, - (UNS_8 *) "Enables or disables the MMU", - (UNS_8 *) "mmuenab [0(disable), 1(enable)]", - cmd_mmuenab_plist, - NULL -}; - -/* map command */ -BOOL_32 cmd_map(void); -static UNS_32 cmd_map_plist[] = -{ - (PARSE_TYPE_STR), /* The "map" command */ - (PARSE_TYPE_HEX), - (PARSE_TYPE_HEX), - (PARSE_TYPE_DEC), - (PARSE_TYPE_DEC | PARSE_TYPE_END), -}; -static CMD_ROUTE_T core_map_cmd = -{ - (UNS_8 *) "map", - cmd_map, - (UNS_8 *) "Maps a range of physical address sections to virtual addresses", - (UNS_8 *) "map [virt hex addr][phy hex addr][sections][0(uncached), 1(cached), 2(unmap)]", - cmd_map_plist, - NULL -}; - -/* mmuinfo command */ -static BOOL_32 cmd_mmuinfo(void); -static UNS_32 cmd_mmuinfo_plist[] = -{ - (PARSE_TYPE_STR | PARSE_TYPE_END) /* The "mmuinfo" command */ -}; -static CMD_ROUTE_T core_mmuinfo_cmd = -{ - (UNS_8 *) "mmuinfo", - cmd_mmuinfo, - (UNS_8 *) "Dumps page table and MMU info", - (UNS_8 *) "mmuinfo", - cmd_mmuinfo_plist, - NULL -}; - -/* MMU group */ -static GROUP_LIST_T mmu_group = -{ - (UNS_8 *) "mmu", /* mmu group */ - (UNS_8 *) "MMU command group", - NULL, - NULL -}; - -static UNS_8 enabled_msg [] =" enabled"; -static UNS_8 disabled_msg [] =" disabled"; -static UNS_8 dcache_msg[] = "Data cache"; -static UNS_8 icache_msg[] = "Instruction cache"; -static UNS_8 pagetab_msg[] = "Page table at address: "; -static UNS_8 slist_msg[] = "Type Virt Phy fl Size"; -static UNS_8 mmu_msg [] ="MMU"; -static UNS_8 cpage_msg[] = "Coarse page:"; -static UNS_8 fpage_msg[] = "Fine page :"; -static UNS_8 sect_msg[] = "Section :"; -static UNS_8 mbytes_msg[] = "M"; -static UNS_8 map1_err_msg[] = - "Error : section addresses must be aligned on a 32-bit boundary"; -static UNS_8 map2_err_msg[] = - "Error : Number of sections exceeds address range of device"; -static UNS_8 phya_msg[] = "Virtual address "; -static UNS_8 mapped_msg[] = " mapped to physical address "; -static UNS_8 unmapped_msg[] = " unmapped from physical address "; -static UNS_8 cached_msg[] = " (cached)"; -static UNS_8 inval_msg[] = " invalidated"; -static UNS_8 caches_msg [] ="Caches"; -static UNS_8 flushed_msg[] = " flushed"; - -/*********************************************************************** - * - * Function: show_section - * - * Purpose: Display section information - * - * Processing: - * See function. - * - * Parameters: - * mmu_reg : MMU settings for this section - * virt_addr : Starting virtual address for this section - * segs : Number of 1M segments for this section - * - * Outputs: None - * - * Returns: Nothing - * - * Notes: None - * - **********************************************************************/ -static void show_section(UNS_32 mmu_reg, - UNS_32 virt_addr, - UNS_32 segs) -{ - UNS_8 straddr [16]; - UNS_32 mmu_phy; - - if ((mmu_reg & ARM922T_L1D_TYPE_PG_SN_MASK) != - ARM922T_L1D_TYPE_FAULT) - { - if ((mmu_reg & ARM922T_L1D_TYPE_PG_SN_MASK) == - ARM922T_L1D_TYPE_CPAGE) - { - term_dat_out(cpage_msg); - } - else if ((mmu_reg & ARM922T_L1D_TYPE_PG_SN_MASK) == - ARM922T_L1D_TYPE_FPAGE) - { - term_dat_out(fpage_msg); - } - else - { - term_dat_out(sect_msg); - } - - /* Compute virtual address */ - str_makehex(straddr, virt_addr, 8); - term_dat_out(straddr); - term_dat_out((UNS_8 *) " "); - - /* Compute mapped physical address */ - if ((mmu_reg & ARM922T_L1D_TYPE_PG_SN_MASK) == - ARM922T_L1D_TYPE_SECTION) - { - mmu_phy = mmu_reg & 0xFFF00000; - } - else - { - /* Don't compute addresses for non-sections */ - mmu_phy = 0; - } - str_makehex(straddr, mmu_phy, 8); - term_dat_out(straddr); - term_dat_out((UNS_8 *) " "); - - /* MMU flags */ - if ((mmu_reg & ARM922T_L1D_BUFFERABLE) != 0) - { - term_dat_out((UNS_8 *) "b"); - } - else - { - term_dat_out((UNS_8 *) " "); - } - if ((mmu_reg & ARM922T_L1D_CACHEABLE) != 0) - { - term_dat_out((UNS_8 *) "c"); - } - else - { - term_dat_out((UNS_8 *) " "); - } - term_dat_out((UNS_8 *) " "); - - /* Displays used megabytes */ - str_makedec(straddr, segs); - term_dat_out(straddr); - term_dat_out_crlf(mbytes_msg); - } -} - -/*********************************************************************** - * - * Function: mmu_dumpinfo - * - * Purpose: Display MMU info - * - * Processing: - * Display the MMU information, including enable status, cache - * status, and page table. - * - * Parameters: None - * - * Outputs: None - * - * Returns: TRUE if the command was processed, otherwise FALSE - * - * Notes: None - * - **********************************************************************/ -static BOOL_32 mmu_dumpinfo(void) -{ - UNS_32 segsz, last_mmu_reg, mmu_vrt, mmu_reg, mmu_vrtsav = 0, *pt; - UNS_32 mlast_mmu_reg, mmmu_reg; - int idx; - UNS_8 hexaddr [16]; - - term_dat_out(mmu_msg); - if (cp15_mmu_enabled() == FALSE) - { - term_dat_out_crlf(disabled_msg); - } - else - { - term_dat_out_crlf(enabled_msg); - - /* Get MMU control register word */ - mmu_reg = cp15_get_mmu_control_reg(); - - /* Instruction cache status */ - term_dat_out(icache_msg); - if ((mmu_reg & ARM922T_MMU_CONTROL_I) == 0) - { - term_dat_out_crlf(disabled_msg); - } - else - { - term_dat_out_crlf(enabled_msg); - } - - /* Data cache status */ - term_dat_out(dcache_msg); - if ((mmu_reg & ARM922T_MMU_CONTROL_C) == 0) - { - term_dat_out_crlf(disabled_msg); - } - else - { - term_dat_out_crlf(enabled_msg); - } - - term_dat_out(pagetab_msg); - mmu_reg = (UNS_32) cp15_get_ttb(); - str_makehex(hexaddr, mmu_reg, 8); - term_dat_out_crlf(hexaddr); - term_dat_out_crlf(slist_msg); - - /* Process MMU table - assume that the physical and - virtual locations of table are the same */ - pt = (UNS_32 *) mmu_reg; - mmu_vrt = 0x0; - segsz = 0xFFFFFFFF; - last_mmu_reg = mlast_mmu_reg = 0xFFFFFFFF; - for (idx = 0; idx < 4096; idx++) - { - mmu_reg = *pt; - mmmu_reg = (mmu_reg & (ARM922T_L1D_TYPE_PG_SN_MASK | - ARM922T_L1D_BUFFERABLE | ARM922T_L1D_CACHEABLE)); - segsz = segsz + 1; - - if ((last_mmu_reg != 0xFFFFFFFF) && - (mlast_mmu_reg != mmmu_reg)) - { - show_section(last_mmu_reg, mmu_vrtsav, segsz); - segsz = 0; - } - - if (mlast_mmu_reg != mmmu_reg) - { - mmu_vrtsav = mmu_vrt; - last_mmu_reg = mmu_reg; - mlast_mmu_reg = mmmu_reg; - } - - pt++; - mmu_vrt += 0x00100000; - } - } - - return TRUE; -} - -/*********************************************************************** - * - * Function: mmu_dumpmap - * - * Purpose: Map a virtual address range to a physical range - * - * Processing: - * From the input addresses and number of sections, generate the - * appropriate entries in the page table. - * - * Parameters: None - * - * Outputs: None - * - * Returns: TRUE if the command was processed, otherwise FALSE - * - * Notes: None - * - **********************************************************************/ -static BOOL_32 mmu_dumpmap(UNS_32 vrt, - UNS_32 phy, - UNS_32 sections, - UNS_32 cache) -{ - BOOL_32 processed = FALSE; - UNS_32 mmu_phy, mmu_vrt, tmp1 = 0, tmp2, *pt; - UNS_8 hexaddr [16]; - - /* Verify address boundaries are sectional */ - mmu_vrt = vrt & ~ARM922T_L2D_SN_BASE_MASK; - mmu_phy = phy & ~ARM922T_L2D_SN_BASE_MASK; - if ((mmu_vrt != 0) || (mmu_phy != 0)) - { - term_dat_out_crlf(map1_err_msg); - } - else - { - /* Verify that address range and section count will not - exceed address range of device */ - tmp1 = vrt >> 20; - tmp1 = (tmp1 + sections) - 1; - tmp2 = phy >> 20; - tmp2 = (tmp2 + sections) - 1; - if ((tmp1 < 4096) && (tmp2 < 4096)) - { - /* Good address range and good section count */ - processed = TRUE; - } - else - { - term_dat_out_crlf(map2_err_msg); - } - } - - /* Generate static part of MMU word */ - if (cache == 0) - { - /* Section mapped with cache disabled */ - tmp1 = ARM922T_L1D_TYPE_SECTION; - } - else if (cache == 1) - { - /* Section mapped with cache enabled */ - tmp1 = (ARM922T_L1D_BUFFERABLE | ARM922T_L1D_CACHEABLE | - ARM922T_L1D_TYPE_SECTION); - } - else if (cache == 2) - { - /* Section unmapped */ - tmp1 = ARM922T_L1D_TYPE_FAULT; - } - tmp1 |= ARM922T_L1D_AP_ALL; - - /* Offset into page table for virtual address */ - tmp2 = (vrt >> 20); - pt = cp15_get_ttb() + tmp2; - - /* Loop until all sections are complete */ - while ((sections > 0) && (processed == TRUE)) - { - /* Add in physical address */ - tmp2 = tmp1 | (phy & ARM922T_L2D_SN_BASE_MASK); - - /* Save new section descriptor for virtual address */ - *pt = tmp2; - - /* Output message shown the map */ - term_dat_out(phya_msg); - str_makehex(hexaddr, phy, 8); - term_dat_out(hexaddr); - if (cache == 2) - { - term_dat_out(unmapped_msg); - } - else - { - term_dat_out(mapped_msg); - } - str_makehex(hexaddr, vrt, 8); - term_dat_out(hexaddr); - if (cache == 1) - { - term_dat_out(cached_msg); - } - term_dat_out_crlf((UNS_8 *) ""); - - /* Next section and page table entry*/ - phy += 0x00100000; - vrt += 0x00100000; - pt++; - sections--; - } - - return processed; -} - -/*********************************************************************** - * - * Function: cmd_mmuinfo - * - * Purpose: Display MMU information - * - * Processing: - * See function. - * - * Parameters: None - * - * Outputs: None - * - * Returns: TRUE if the command was processed, otherwise FALSE - * - * Notes: None - * - **********************************************************************/ -static BOOL_32 cmd_mmuinfo(void) -{ - mmu_dumpinfo(); - - return TRUE; -} - -/*********************************************************************** - * - * Function: cmd_map - * - * Purpose: Map a physical address region to a virtual region - * - * Processing: - * See function. - * - * Parameters: None - * - * Outputs: None - * - * Returns: TRUE if the command was processed, otherwise FALSE - * - * Notes: None - * - **********************************************************************/ -BOOL_32 cmd_map(void) -{ - UNS_32 phy, virt, sects, ce = 0; - - /* Get arguments */ - virt = cmd_get_field_val(1); - phy = cmd_get_field_val(2); - sects = cmd_get_field_val(3); - ce = cmd_get_field_val(4); - - if (ce <= 2) - { - mmu_dumpmap(virt, phy, sects, ce); - } - - return TRUE; -} - -/*********************************************************************** - * - * Function: cmd_inval - * - * Purpose: MMU cache flush and invalidate - * - * Processing: - * See function. - * - * Parameters: None - * - * Outputs: None - * - * Returns: TRUE if the command was processed, otherwise FALSE - * - * Notes: None - * - **********************************************************************/ -BOOL_32 cmd_inval(void) -{ - dcache_flush(); - icache_inval(); - term_dat_out(caches_msg); - term_dat_out(inval_msg); - - return TRUE; -} - -/*********************************************************************** - * - * Function: cmd_dcache - * - * Purpose: MMU data cache enable and disable - * - * Processing: - * If the value passed in the parser is 1, enable the data cache, - * otherwise disable the data cache. - * - * Parameters: None - * - * Outputs: None - * - * Returns: TRUE if the command was processed, otherwise FALSE - * - * Notes: None - * - **********************************************************************/ -BOOL_32 cmd_dcache(void) -{ - UNS_32 cenable; - UNS_8 *ppar; - - /* Get argument */ - cenable = cmd_get_field_val(1); - - switch (cenable) - { - case 0: - dcache_flush(); - cp15_set_dcache(0); - ppar = disabled_msg; - break; - - case 1: - cp15_invalidate_cache(); - cp15_set_dcache(1); - ppar = enabled_msg; - break; - - case 2: - default: - dcache_flush(); - ppar = flushed_msg; - break; - } - - term_dat_out(dcache_msg); - term_dat_out_crlf(ppar); - - return TRUE; -} - -/*********************************************************************** - * - * Function: cmd_icache - * - * Purpose: MMU instruction cache enable and disable - * - * Processing: - * If the value passed in the parser is 1, enable the instruction - * cache, otherwise disable the instruction cache. - * - * Parameters: None - * - * Outputs: None - * - * Returns: TRUE if the command was processed, otherwise FALSE - * - * Notes: None - * - **********************************************************************/ -BOOL_32 cmd_icache(void) -{ - UNS_32 cenable; - UNS_8 *ppar; - - /* Get argument */ - cenable = cmd_get_field_val(1); - - if (cenable == 1) - { - dcache_flush(); - cp15_invalidate_cache(); - cp15_set_icache(1); - ppar = enabled_msg; - } - else - { - cp15_set_icache(0); - ppar = disabled_msg; - } - - term_dat_out(icache_msg); - term_dat_out_crlf(ppar); - - return TRUE; -} - - -/*********************************************************************** - * - * Function: cmd_mmuenab - * - * Purpose: Enable or disable MMU - * - * Processing: - * See function. - * - * Parameters: None - * - * Outputs: None - * - * Returns: TRUE if the command was processed, otherwise FALSE - * - * Notes: None - * - **********************************************************************/ -BOOL_32 cmd_mmuenab(void) -{ - UNS_8 *ppar; - UNS_32 cenable; - - term_dat_out_crlf((UNS_8 *) "Warning: Changing MMU status on " - " cached and buffered code can cause system crashes."); - - /* Get argument */ - cenable = cmd_get_field_val(1); - - if (cenable == 1) - { - if ((cp15_get_mmu_control_reg() & ARM922T_MMU_CONTROL_C) != 0) - { - cp15_invalidate_cache(); - } - - cp15_set_mmu(1); - ppar = enabled_msg; - } - else - { - cp15_dcache_flush(); - cp15_write_buffer_flush(); - cp15_invalidate_cache(); - cp15_set_mmu(0); - ppar = disabled_msg; - } - - term_dat_out(mmu_msg); - term_dat_out_crlf(ppar); - - return TRUE; -} - -/*********************************************************************** - * - * Function: mmu_cmd_group_init - * - * Purpose: Initialize MMU command group - * - * Processing: - * See function. - * - * Parameters: None - * - * Outputs: None - * - * Returns: Nothin - * - * Notes: None - * - **********************************************************************/ -void mmu_cmd_group_init(void) -{ - /* Add MMU group */ - cmd_add_group(&mmu_group); - - /* Add commands to the MMU group */ - cmd_add_new_command(&mmu_group, &core_dcache_cmd); - cmd_add_new_command(&mmu_group, &core_icache_cmd); - cmd_add_new_command(&mmu_group, &core_inval_cmd); - cmd_add_new_command(&mmu_group, &core_mmuenab_cmd); - cmd_add_new_command(&mmu_group, &core_map_cmd); - cmd_add_new_command(&mmu_group, &core_mmuinfo_cmd); -} ================================================ FILE: boot/lpc32xxcdl/lpc32xxcdl-2.11-libnosys_gnu.patch ================================================ Fix compilation and eabi issues Since we are not linking with libc anymore, we need to define our own memset, strlen and memcpy. Also, as we are using a *libc compiler, we need to "handle" exceptions (mostly division by 0) by defining raise() and __aeabi_unwind_cpp_pr0. Signed-off-by: Alexandre Belloni --- csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c | 41 +++++++++++++++++++++++ csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c | 41 +++++++++++++++++++++++ csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c | 41 +++++++++++++++++++++++ 3 files changed, 123 insertions(+), 0 deletions(-) diff --git a/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c index 385b0ab..f1f0a0a 100644 --- a/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c +++ b/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c @@ -25,6 +25,7 @@ #include #include #include +#include /* errno definition */ #undef errno @@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){ return 0; } +void * memset(void * s,int c,size_t count) +{ + char *xs = (char *) s; + + while (count--) + *xs++ = c; + + return s; +} + + +size_t strlen(const char * s) +{ + const char *sc; + + for (sc = s; *sc != '\0'; ++sc) + /* nothing */; + return sc - s; +} + +void * memcpy(void * dest,const void *src,size_t count) +{ + char *tmp = (char *) dest, *s = (char *) src; + + while (count--) + *tmp++ = *s++; + + return dest; +} + + +/* Dummy functions to avoid linker complaints */ +void __aeabi_unwind_cpp_pr0(void) +{ +}; + +void raise(void) +{ +}; + #endif /*__GNUC__*/ diff --git a/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c index 385b0ab..f1f0a0a 100644 --- a/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c +++ b/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c @@ -25,6 +25,7 @@ #include #include #include +#include /* errno definition */ #undef errno @@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){ return 0; } +void * memset(void * s,int c,size_t count) +{ + char *xs = (char *) s; + + while (count--) + *xs++ = c; + + return s; +} + + +size_t strlen(const char * s) +{ + const char *sc; + + for (sc = s; *sc != '\0'; ++sc) + /* nothing */; + return sc - s; +} + +void * memcpy(void * dest,const void *src,size_t count) +{ + char *tmp = (char *) dest, *s = (char *) src; + + while (count--) + *tmp++ = *s++; + + return dest; +} + + +/* Dummy functions to avoid linker complaints */ +void __aeabi_unwind_cpp_pr0(void) +{ +}; + +void raise(void) +{ +}; + #endif /*__GNUC__*/ diff --git a/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c index cfdb674..6b50c60 100644 --- a/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c +++ b/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c @@ -25,6 +25,7 @@ #include #include #include +#include /* errno definition */ #undef errno @@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){ return 0; } +void * memset(void * s,int c,size_t count) +{ + char *xs = (char *) s; + + while (count--) + *xs++ = c; + + return s; +} + + +size_t strlen(const char * s) +{ + const char *sc; + + for (sc = s; *sc != '\0'; ++sc) + /* nothing */; + return sc - s; +} + +void * memcpy(void * dest,const void *src,size_t count) +{ + char *tmp = (char *) dest, *s = (char *) src; + + while (count--) + *tmp++ = *s++; + + return dest; +} + + +/* Dummy functions to avoid linker complaints */ +void __aeabi_unwind_cpp_pr0(void) +{ +}; + +void raise(void) +{ +}; + #endif /*__GNUC__*/ -- 1.7.7.3 ================================================ FILE: boot/lpc32xxcdl/lpc32xxcdl-2.11-slashes.patch ================================================ Use slashes instead of backslashes Signed-off-by: Alexandre Belloni --- .../bsps/common/examples/buildfiles/makefile | 10 +++--- .../startup/examples/burners/makefile.burner | 16 +++++----- csps/lpc32xx/bsps/ea3250/source/makefile | 10 +++--- csps/lpc32xx/bsps/fdi3250/source/makefile | 12 ++++---- csps/lpc32xx/bsps/phy3250/examples/makefile | 2 +- csps/lpc32xx/bsps/phy3250/source/makefile | 2 +- .../examples/Burners/nor/kickstart/makefile | 2 +- .../startup/examples/Burners/nor/norerase/makefile | 2 +- .../startup/examples/Burners/nor/s1lapp/makefile | 2 +- .../examples/Burners/spi/kickstart/makefile | 2 +- csps/lpc32xx/source/makefile | 10 +++--- lpc/source/makefile | 10 +++--- makefile | 2 +- makerule/common/make.rules.environment | 30 ++++++++++---------- makerule/lpc32xx/make.lpc32xx.gnu | 2 +- makerule/lpc32xx/make.lpc32xx.iar | 12 ++++---- makerule/lpc32xx/make.lpc32xx.keil | 6 ++-- makerule/lpc32xx/make.lpc32xx.rvw | 2 +- 18 files changed, 67 insertions(+), 67 deletions(-) diff --git a/csps/lpc32xx/bsps/common/examples/buildfiles/makefile b/csps/lpc32xx/bsps/common/examples/buildfiles/makefile index cf4977c..1da2201 100644 --- a/csps/lpc32xx/bsps/common/examples/buildfiles/makefile +++ b/csps/lpc32xx/bsps/common/examples/buildfiles/makefile @@ -25,16 +25,16 @@ # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) +include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) ######################################################################## # # Pick up the assembler and C source files in the directory # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes -AFLAGS +=-I..\Include -CFLAGS +=-I..\Include +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes +AFLAGS +=-I../Include +CFLAGS +=-I../Include ######################################################################## # @@ -42,6 +42,6 @@ CFLAGS +=-I..\Include # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build diff --git a/csps/lpc32xx/bsps/common/startup/examples/burners/makefile.burner b/csps/lpc32xx/bsps/common/startup/examples/burners/makefile.burner index fca3947..18bd703 100644 --- a/csps/lpc32xx/bsps/common/startup/examples/burners/makefile.burner +++ b/csps/lpc32xx/bsps/common/startup/examples/burners/makefile.burner @@ -22,9 +22,9 @@ # ######################################################################## -COMMON_BASE := $(NXPMCU_SOFTWARE)\csps\$(CSP)\bsps\common -include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) -include $(COMMON_BASE)\startup\examples\buildfiles\make.env +COMMON_BASE := $(NXPMCU_SOFTWARE)/csps/$(CSP)/bsps/common +include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) +include $(COMMON_BASE)/startup/examples/buildfiles/make.env ######################################################################## # ARM Realview @@ -38,7 +38,7 @@ AFLAGS += --predefine "USE_ALL_STACKS SETL {TRUE}" #AFLAGS += --predefine "RW_RELOC SETL {TRUE}" # This runs from IRAM -LDSCRIPT =$(COMMON_BASE)\startup\examples\buildfiles\ldscript_iram_rvw.ld +LDSCRIPT =$(COMMON_BASE)/startup/examples/buildfiles/ldscript_iram_rvw.ld LDFLAGS = --remove MAP = --map --info=totals,sizes,unused --symbols --list endif @@ -55,7 +55,7 @@ AFLAGS += --predefine "USE_ALL_STACKS SETL {TRUE}" #AFLAGS += --predefine "RW_RELOC SETL {TRUE}" # This runs from IRAM -LDSCRIPT =$(COMMON_BASE)\startup\examples\buildfiles\ldscript_iram_rvw.ld +LDSCRIPT =$(COMMON_BASE)/startup/examples/buildfiles/ldscript_iram_rvw.ld LDFLAGS = --remove MAP = --map --info=totals,sizes,unused --symbols --list endif @@ -72,7 +72,7 @@ AFLAGS += --defsym USE_ALL_STACKS=1 #AFLAGS += --defsym RW_RELOC=1 # This runs from IRAM -LDSCRIPT =$(COMMON_BASE)\startup\examples\buildfiles\ldscript_iram_gnu.ld +LDSCRIPT =$(COMMON_BASE)/startup/examples/buildfiles/ldscript_iram_gnu.ld endif @@ -108,7 +108,7 @@ endif # Pick up the assembler and C source files in the directory # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes ######################################################################## # @@ -157,6 +157,6 @@ endif # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build .PHONY: debug bin diff --git a/csps/lpc32xx/bsps/ea3250/source/makefile b/csps/lpc32xx/bsps/ea3250/source/makefile index 7cada25..2899b20 100644 --- a/csps/lpc32xx/bsps/ea3250/source/makefile +++ b/csps/lpc32xx/bsps/ea3250/source/makefile @@ -22,16 +22,16 @@ # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) +include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) ######################################################################## # # Pick up the assembler and C source files in the directory # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes -AFLAGS +=-I..\Include -CFLAGS +=-I..\Include +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes +AFLAGS +=-I../Include +CFLAGS +=-I../Include ######################################################################## # @@ -64,7 +64,7 @@ realclean: lib_realclean # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build .PHONY: all lib_clean lib_realclean diff --git a/csps/lpc32xx/bsps/fdi3250/source/makefile b/csps/lpc32xx/bsps/fdi3250/source/makefile index 4e153bb..11e4b63 100644 --- a/csps/lpc32xx/bsps/fdi3250/source/makefile +++ b/csps/lpc32xx/bsps/fdi3250/source/makefile @@ -22,16 +22,16 @@ # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) +include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) ######################################################################## # # Pick up the assembler and C source files in the directory # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes -AFLAGS +=-I..\Include -CFLAGS +=-I..\Include +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes +AFLAGS +=-I../Include +CFLAGS +=-I../Include ######################################################################## # @@ -53,7 +53,7 @@ lib_clean: # delete all targets this Makefile can make and all built libraries # linked in lib_realclean: - -@$(RM) $(BSP_LIB_DIR)\*.a + -@$(RM) $(BSP_LIB_DIR)/*.a -@$(RMDIR) $(BSP_LIB_DIR) clean: lib_clean @@ -65,7 +65,7 @@ realclean: lib_realclean # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build .PHONY: all lib_clean lib_realclean diff --git a/csps/lpc32xx/bsps/phy3250/examples/makefile b/csps/lpc32xx/bsps/phy3250/examples/makefile index b939252..e7feaa6 100644 --- a/csps/lpc32xx/bsps/phy3250/examples/makefile +++ b/csps/lpc32xx/bsps/phy3250/examples/makefile @@ -25,7 +25,7 @@ # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) +include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) SUBDIRS = adc dram_self_refresh hstimer hsuart i2c kscan lcd_colorbars SUBDIRS += lcd_tsc mi2c mstimer pwm pwm_simple rtc sdcard sdcard_dma diff --git a/csps/lpc32xx/bsps/phy3250/source/makefile b/csps/lpc32xx/bsps/phy3250/source/makefile index 7c48e7d..750b776 100644 --- a/csps/lpc32xx/bsps/phy3250/source/makefile +++ b/csps/lpc32xx/bsps/phy3250/source/makefile @@ -32,7 +32,7 @@ include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) # Pick up the assembler and C source files in the directory # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes AFLAGS +=-I../Include CFLAGS +=-I../Include diff --git a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/kickstart/makefile b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/kickstart/makefile index 01e2b38..526d6cc 100644 --- a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/kickstart/makefile +++ b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/kickstart/makefile @@ -78,7 +78,7 @@ endif ######################################################################## # -# Compiler\linker specific stuff +# Compiler/linker specific stuff # ######################################################################## diff --git a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/norerase/makefile b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/norerase/makefile index ce329f5..e81b8db 100644 --- a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/norerase/makefile +++ b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/norerase/makefile @@ -77,7 +77,7 @@ endif ######################################################################## # -# Compiler\linker specific stuff +# Compiler/linker specific stuff # ######################################################################## diff --git a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/s1lapp/makefile b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/s1lapp/makefile index 4426fc7..196faec 100644 --- a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/s1lapp/makefile +++ b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/s1lapp/makefile @@ -77,7 +77,7 @@ endif ######################################################################## # -# Compiler\linker specific stuff +# Compiler/linker specific stuff # ######################################################################## diff --git a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/spi/kickstart/makefile b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/spi/kickstart/makefile index dc73b64..39fc304 100644 --- a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/spi/kickstart/makefile +++ b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/spi/kickstart/makefile @@ -78,7 +78,7 @@ endif ######################################################################## # -# Compiler\linker specific stuff +# Compiler/linker specific stuff # ######################################################################## diff --git a/csps/lpc32xx/source/makefile b/csps/lpc32xx/source/makefile index 8e05456..16bd944 100644 --- a/csps/lpc32xx/source/makefile +++ b/csps/lpc32xx/source/makefile @@ -25,16 +25,16 @@ # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) +include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) ######################################################################## # # Pick up the assembler and C source files in the directory # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes -AFLAGS +=-I..\Include -CFLAGS +=-I..\Include +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes +AFLAGS +=-I../Include +CFLAGS +=-I../Include ######################################################################## @@ -68,7 +68,7 @@ realclean: lib_realclean # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build .PHONY: all lib_clean lib_realclean diff --git a/lpc/source/makefile b/lpc/source/makefile index 2860db9..ae7d612 100644 --- a/lpc/source/makefile +++ b/lpc/source/makefile @@ -25,16 +25,16 @@ # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) +include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) ######################################################################## # # Pick up the assembler and C source files in the directory # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes -AFLAGS +=-I..\Include -CFLAGS +=-I..\Include +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes +AFLAGS +=-I../Include +CFLAGS +=-I../Include ######################################################################## # @@ -67,7 +67,7 @@ realclean: lib_realclean # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build .PHONY: all lib_clean lib_realclean diff --git a/makefile b/makefile index 8645fcc..86fa6bc 100644 --- a/makefile +++ b/makefile @@ -34,7 +34,7 @@ TARGETS_CLN =gen_clean csp_clean bsp_clean # ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) +include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) ######################################################################## # diff --git a/makerule/common/make.rules.environment b/makerule/common/make.rules.environment index d5737fe..4e6df48 100644 --- a/makerule/common/make.rules.environment +++ b/makerule/common/make.rules.environment @@ -52,7 +52,7 @@ ASTYLE =astyle --options=$(BUILD_ROOT)/tools/astyle.cfg # ######################################################################## -CSP_LIB_DIR =$(BUILD_ROOT)\csps\$(CSP)\lib +CSP_LIB_DIR =$(BUILD_ROOT)/csps/$(CSP)/lib ######################################################################## # @@ -60,7 +60,7 @@ CSP_LIB_DIR =$(BUILD_ROOT)\csps\$(CSP)\lib # ######################################################################## -BSP_LIB_DIR =$(BUILD_ROOT)\csps\$(CSP)\bsps\$(BSP)\lib +BSP_LIB_DIR =$(BUILD_ROOT)/csps/$(CSP)/bsps/$(BSP)/lib ######################################################################## # @@ -68,7 +68,7 @@ BSP_LIB_DIR =$(BUILD_ROOT)\csps\$(CSP)\bsps\$(BSP)\lib # ######################################################################## -GEN_LIB_DIR =$(BUILD_ROOT)\$(GEN)\lib +GEN_LIB_DIR =$(BUILD_ROOT)/$(GEN)/lib ######################################################################## # @@ -76,9 +76,9 @@ GEN_LIB_DIR =$(BUILD_ROOT)\$(GEN)\lib # ######################################################################## -CSP_DIR =$(BUILD_ROOT)\csps\$(CSP) -CSP_SRC_DIR =$(CSP_DIR)\source -CSP_INC_DIR =$(CSP_DIR)\include +CSP_DIR =$(BUILD_ROOT)/csps/$(CSP) +CSP_SRC_DIR =$(CSP_DIR)/source +CSP_INC_DIR =$(CSP_DIR)/include ######################################################################## # @@ -86,9 +86,9 @@ CSP_INC_DIR =$(CSP_DIR)\include # ######################################################################## -BSP_DIR =$(BUILD_ROOT)\csps\$(CSP)\bsps\$(BSP) -BSP_SRC_DIR =$(BSP_DIR)\source -BSP_INC_DIR =$(BSP_DIR)\include +BSP_DIR =$(BUILD_ROOT)/csps/$(CSP)/bsps/$(BSP) +BSP_SRC_DIR =$(BSP_DIR)/source +BSP_INC_DIR =$(BSP_DIR)/include ######################################################################## # @@ -96,9 +96,9 @@ BSP_INC_DIR =$(BSP_DIR)\include # ######################################################################## -GEN_DIR =$(BUILD_ROOT)\$(GEN) -GEN_SRC_DIR =$(GEN_DIR)\source -GEN_INC_DIR =$(GEN_DIR)\include +GEN_DIR =$(BUILD_ROOT)/$(GEN) +GEN_SRC_DIR =$(GEN_DIR)/source +GEN_INC_DIR =$(GEN_DIR)/include ######################################################################## # @@ -151,6 +151,6 @@ endif # ######################################################################## -TARGET_CSP_LIB =$(CSP_LIB_DIR)\$(CSP_ARCHIVE) -TARGET_BSP_LIB =$(BSP_LIB_DIR)\$(BSP_ARCHIVE) -TARGET_GEN_LIB =$(GEN_LIB_DIR)\$(GEN_ARCHIVE) +TARGET_CSP_LIB =$(CSP_LIB_DIR)/$(CSP_ARCHIVE) +TARGET_BSP_LIB =$(BSP_LIB_DIR)/$(BSP_ARCHIVE) +TARGET_GEN_LIB =$(GEN_LIB_DIR)/$(GEN_ARCHIVE) diff --git a/makerule/lpc32xx/make.lpc32xx.gnu b/makerule/lpc32xx/make.lpc32xx.gnu index 3277d99..d80b98d 100644 --- a/makerule/lpc32xx/make.lpc32xx.gnu +++ b/makerule/lpc32xx/make.lpc32xx.gnu @@ -19,7 +19,7 @@ # use without further testing or modification. ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.environment +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.environment CPU = arm926ej-s CFLAGS = -mcpu=arm926ej-s -Wall -Os diff --git a/makerule/lpc32xx/make.lpc32xx.iar b/makerule/lpc32xx/make.lpc32xx.iar index 238ebbf..27d163f 100644 --- a/makerule/lpc32xx/make.lpc32xx.iar +++ b/makerule/lpc32xx/make.lpc32xx.iar @@ -19,12 +19,12 @@ # use without further testing or modification. ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.environment +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.environment -IARBASE = $(IAR_ROOT)\ARM -IARTOOLS = $(IARBASE)\bin -IAR_LIB = $(IARBASE)\lib -IAR_INC = $(IARBASE)\inc +IARBASE = $(IAR_ROOT)/ARM +IARTOOLS = $(IARBASE)/bin +IAR_LIB = $(IARBASE)/lib +IAR_INC = $(IARBASE)/inc CC = iccarm CCP = iccarm AS = iasmarm @@ -36,7 +36,7 @@ CFLAGS += -I"$(IAR_INC)" AFLAGS = --cpu 5TEJ LDFLAGS = LK = "$(TARGET_GEN_LIB)" "$(TARGET_CSP_LIB)" "$(TARGET_BSP_LIB)" -;LK += "$(IAR_LIB)\dl4tpannl8f.r79" +;LK += "$(IAR_LIB)/dl4tpannl8f.r79" MAP = --map LDESC = --config ENTRY = --entry diff --git a/makerule/lpc32xx/make.lpc32xx.keil b/makerule/lpc32xx/make.lpc32xx.keil index dd27583..7334d3f 100644 --- a/makerule/lpc32xx/make.lpc32xx.keil +++ b/makerule/lpc32xx/make.lpc32xx.keil @@ -19,7 +19,7 @@ # use without further testing or modification. ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.environment +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.environment CC =armcc CCP =armcc @@ -27,11 +27,11 @@ AS =armasm LD =armlink AR =armar -r -s CFLAGS =--arm -O3 -g --device DARMP3 -D__MICROLIB -CFLAGS +=-I$(KEIL_RVCT)\inc -I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR) +CFLAGS +=-I$(KEIL_RVCT)/inc -I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR) AFLAGS =--arm --device=DARMP3 AFLAGS +=-I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR) LDFLAGS =--noremove -LK =--device DARMP3 --libpath $(KEIL_RVCT)\lib --scan $(TARGET_CSP_LIB) +LK =--device DARMP3 --libpath $(KEIL_RVCT)/lib --scan $(TARGET_CSP_LIB) LK +=--scan $(TARGET_BSP_LIB) LK +=--scan $(TARGET_GEN_LIB) MAP =--map --list diff --git a/makerule/lpc32xx/make.lpc32xx.rvw b/makerule/lpc32xx/make.lpc32xx.rvw index 59961dd..2419976 100644 --- a/makerule/lpc32xx/make.lpc32xx.rvw +++ b/makerule/lpc32xx/make.lpc32xx.rvw @@ -19,7 +19,7 @@ # use without further testing or modification. ######################################################################## -include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.environment +include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.environment CC =armcc CCP =armcpp -- 1.7.7.3 ================================================ FILE: boot/lpc32xxcdl/lpc32xxcdl.hash ================================================ # Locally computed sha256 ded3fa936a96d3fb8188ca6214f57b5208bd49e5416bd69f38bfc810b34197bc lpc32xx_cdl-v2.11.zip ================================================ FILE: boot/lpc32xxcdl/lpc32xxcdl.mk ================================================ ################################################################################ # # lpc32xxcdl # ################################################################################ LPC32XXCDL_VERSION = 2.11 LPC32XXCDL_SOURCE = lpc32xx_cdl-v$(LPC32XXCDL_VERSION).zip LPC32XXCDL_SITE = https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/lpcware-archive/61/2 LPC32XXCDL_INSTALL_TARGET = NO LPC32XXCDL_INSTALL_IMAGES = YES ifeq ($(BR2_TARGET_LPC32XXCDL_BOARDNAME),"ea3250") LPC32XXCDL_KICKSTART = kickstart/nand LPC32XXCDL_KICKSTART_BURNER = nand/kickstart LPC32XXCDL_S1L = s1l LPC32XXCDL_S1L_BURNER = nand/s1lapp endif ifeq ($(BR2_TARGET_LPC32XXCDL_BOARDNAME),"phy3250") LPC32XXCDL_KICKSTART = kickstart/kickstart_nand LPC32XXCDL_KICKSTART_BURNER = nand/kickstart LPC32XXCDL_S1L = s1l/s1l_nand_boot LPC32XXCDL_S1L_BURNER = nand/s1lapp endif ifeq ($(BR2_TARGET_LPC32XXCDL_BOARDNAME),"fdi3250") LPC32XXCDL_KICKSTART = kickstart/nand LPC32XXCDL_KICKSTART_BURNER = nand/kickstart_jtag LPC32XXCDL_S1L = s1l LPC32XXCDL_S1L_BURNER = nand/s1lapp_jtag endif LPC32XXCDL_BUILD_FLAGS = \ CROSS_COMPILE=$(TARGET_CROSS) \ NXPMCU_WINBASE=$(@D) \ NXPMCU_SOFTWARE=$(@D) \ BSP=$(BR2_TARGET_LPC32XXCDL_BOARDNAME) \ CSP=lpc32xx TOOL=gnu GEN=lpc LPC32XXCDL_BOARD_STARTUP_DIR = \ csps/lpc32xx/bsps/$(BR2_TARGET_LPC32XXCDL_BOARDNAME)/startup/examples/ # Source files are with dos newlines, which our patch infrastructure doesn't # handle. Work around it by converting the affected files to unix newlines # before patching define LPC32XXCDL_EXTRACT_CMDS unzip $(LPC32XXCDL_DL_DIR)/$(LPC32XXCDL_SOURCE) -d $(@D) mv $(@D)/lpc3xxx_cdl/* $(@D) rmdir $(@D)/lpc3xxx_cdl/ sed -n 's|^[+-]\{3\} [^/]\+\([^ \t]*\)\(.*\)|$(@D)\1|p' \ boot/lpc32xxcdl/*.patch| sort -u | xargs $(SED) 's/\x0D$$//' endef define LPC32XXCDL_BUILD_CMDS $(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D) $(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_KICKSTART_BURNER) $(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/$(LPC32XXCDL_KICKSTART) $(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_S1L_BURNER) $(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/$(LPC32XXCDL_S1L) endef define LPC32XXCDL_INSTALL_IMAGES_CMDS cp $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_KICKSTART_BURNER)/*gnu.bin $(BINARIES_DIR) cp $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/$(LPC32XXCDL_KICKSTART)/*gnu.bin $(BINARIES_DIR) cp $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_S1L_BURNER)/*gnu.bin $(BINARIES_DIR) cp $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/$(LPC32XXCDL_S1L)/*gnu.bin $(BINARIES_DIR) endef $(eval $(generic-package)) ================================================ FILE: boot/mv-ddr-marvell/Config.in ================================================ config BR2_TARGET_MV_DDR_MARVELL bool "mv-ddr-marvell" depends on BR2_aarch64 help Marvell keeps algorithms for DDR training in a separate repository. This code is not built separately, it is needed as a dependency to build ATF firmware for Marvell Armada 7040 and 8040 SoCs. https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell/ ================================================ FILE: boot/mv-ddr-marvell/mv-ddr-marvell.hash ================================================ # Locally calculated sha256 bfab74a625d65238c569b9df282b55c0fc9a1e2d3decedcf194d44774df2ede4 mv-ddr-marvell-305d923e6bc4236cd3b902f6679b0aef9e5fa52d.tar.gz sha256 48bb930b6fbc3f5db72e29c849b096df3868e4a6d2bdc0e2dd3365c768241cd5 ddr3_init.c ================================================ FILE: boot/mv-ddr-marvell/mv-ddr-marvell.mk ================================================ ################################################################################ # # mv-ddr-marvell # ################################################################################ # This is the latest commit on mv-ddr-devel as of 20201207 MV_DDR_MARVELL_VERSION = 305d923e6bc4236cd3b902f6679b0aef9e5fa52d MV_DDR_MARVELL_SITE = $(call github,MarvellEmbeddedProcessors,mv-ddr-marvell,$(MV_DDR_MARVELL_VERSION)) MV_DDR_MARVELL_LICENSE = GPL-2.0+ or LGPL-2.1 with freertos-exception-2.0, BSD-3-Clause, Marvell Commercial MV_DDR_MARVELL_LICENSE_FILES = ddr3_init.c $(eval $(generic-package)) ================================================ FILE: boot/mxs-bootlets/Config.in ================================================ config BR2_TARGET_MXS_BOOTLETS bool "mxs-bootlets" depends on BR2_arm help Stage1 bootloaders for Freescale iMX23/iMX28 SoCs if BR2_TARGET_MXS_BOOTLETS choice prompt "Source" default BR2_TARGET_MXS_BOOTLETS_FREESCALE help Select the location of the bootlets you want to use config BR2_TARGET_MXS_BOOTLETS_FREESCALE bool "Freescale 10.12.01 version" config BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL bool "Custom tarball" config BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT bool "Custom Git repository" endchoice config BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL_URL string "URL of custom bootlets tarball" depends on BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL if BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT config BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_URL string "URL of custom Git repository" config BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_VERSION string "Custom Git version" endif choice prompt "Bootstream" help Select which bootstream to generate config BR2_TARGET_MXS_BOOTLETS_BAREBOX bool "Barebox Bootloader" depends on BR2_TARGET_BAREBOX config BR2_TARGET_MXS_BOOTLETS_LINUX bool "Linux Kernel" depends on BR2_LINUX_KERNEL config BR2_TARGET_MXS_BOOTLETS_UBOOT bool "U-boot bootloader" depends on BR2_TARGET_UBOOT endchoice config BR2_TARGET_MXS_BOOTLETS_HAS_IVT bool "HAB Support" help Enable this option if you are building bootlets for the iMX28 platform that needs to include instructions for the secure boot mechanism present on these SoCs choice prompt "Board" help Select the board to build the bootlets for config BR2_TARGET_MXS_BOOTLETS_STMP37xx bool "Sigmatel ST-MP3-7xx Board" config BR2_TARGET_MXS_BOOTLETS_STMP378x bool "Sigmatel ST-MP3-78x Board" config BR2_TARGET_MXS_BOOTLETS_IMX28EVK bool "Freescale iMX28 EVK Board" config BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD bool "Custom board" endchoice config BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD_NAME string "Custom board name" depends on BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD help Name of the board to build the bootlets for endif ================================================ FILE: boot/mxs-bootlets/barebox_ivt.bd ================================================ // STMP378x ROM command script to load and run U-Boot sources { power_prep="./power_prep/power_prep"; sdram_prep="./boot_prep/boot_prep"; barebox="./barebox"; } section (0) { //---------------------------------------------------------- // Power Supply initialization //---------------------------------------------------------- load power_prep; load ivt (entry = power_prep:_start) > 0x8000; hab call 0x8000; //---------------------------------------------------------- // SDRAM initialization //---------------------------------------------------------- load sdram_prep; load ivt (entry = sdram_prep:_start) > 0x8000; hab call 0x8000; //---------------------------------------------------------- // Load and call u_boot - ELF ARM image //---------------------------------------------------------- load barebox; load ivt (entry = barebox:start) > 0x8000; hab call 0x8000; } ================================================ FILE: boot/mxs-bootlets/mxs-bootlets.hash ================================================ # locally computed sha256 63f6068ae36884adef4259bbb1fe2591755718f22c46d0a59d854883dfab1ffc imx-bootlets-src-10.12.01.tar.gz ================================================ FILE: boot/mxs-bootlets/mxs-bootlets.mk ================================================ ################################################################################ # # mxs-bootlets # ################################################################################ ifeq ($(BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL),y) MXS_BOOTLETS_TARBALL = $(call qstrip,$(BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL_URL)) MXS_BOOTLETS_SITE = $(patsubst %/,%,$(dir $(MXS_BOOTLETS_TARBALL))) MXS_BOOTLETS_SOURCE = $(notdir $(MXS_BOOTLETS_TARBALL)) BR_NO_CHECK_HASH_FOR += $(MXS_BOOTLETS_SOURCE) else ifeq ($(BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT),y) MXS_BOOTLETS_SITE = $(BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_URL) MXS_BOOTLETS_SITE_METHOD = git MXS_BOOTLETS_VERSION = $(call qstrip,$(BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_VERSION)) BR_NO_CHECK_HASH_FOR += $(MXS_BOOTLETS_SOURCE) else MXS_BOOTLETS_VERSION = 10.12.01 MXS_BOOTLETS_SITE = http://download.ossystems.com.br/bsp/freescale/source MXS_BOOTLETS_SOURCE = imx-bootlets-src-$(MXS_BOOTLETS_VERSION).tar.gz endif ifeq ($(BR2_TARGET_MXS_BOOTLETS_STMP37xx),y) MXS_BOOTLETS_BOARD = stmp37xx_dev else ifeq ($(BR2_TARGET_MXS_BOOTLETS_STMP378x),y) MXS_BOOTLETS_BOARD = stmp378x_dev else ifeq ($(BR2_TARGET_MXS_BOOTLETS_IMX28EVK),y) MXS_BOOTLETS_BOARD = iMX28_EVK else ifeq ($(BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD),y) MXS_BOOTLETS_BOARD = $(call qstrip,$(BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD_NAME)) endif ifeq ($(BR2_TARGET_MXS_BOOTLETS_HAS_IVT),y) MXS_BOOTLETS_IVT_SUFFIX = _ivt MXS_BOOTLETS_ELFTOSB_OPTIONS += -f imx28 endif MXS_BOOTLETS_DEPENDENCIES = host-elftosb MXS_BOOTLETS_LICENSE = GPL-2.0+ ifeq ($(BR2_TARGET_MXS_BOOTLETS_BAREBOX),y) MXS_BOOTLETS_DEPENDENCIES += barebox MXS_BOOTLETS_BOOTDESC = barebox$(MXS_BOOTLETS_IVT_SUFFIX).bd MXS_BOOTLETS_BOOTSTREAM = $(MXS_BOOTLETS_BOARD)_barebox$(MXS_BOOTLETS_IVT_SUFFIX).sb else ifeq ($(BR2_TARGET_MXS_BOOTLETS_LINUX),y) MXS_BOOTLETS_DEPENDENCIES += linux MXS_BOOTLETS_BOOTDESC = linux$(MXS_BOOTLETS_IVT_SUFFIX).bd MXS_BOOTLETS_BOOTSTREAM = $(MXS_BOOTLETS_BOARD)_linux$(MXS_BOOTLETS_IVT_SUFFIX).sb else ifeq ($(BR2_TARGET_MXS_BOOTLETS_UBOOT),y) MXS_BOOTLETS_DEPENDENCIES += uboot MXS_BOOTLETS_BOOTDESC = uboot$(MXS_BOOTLETS_IVT_SUFFIX).bd MXS_BOOTLETS_BOOTSTREAM = $(MXS_BOOTLETS_BOARD)_uboot$(MXS_BOOTLETS_IVT_SUFFIX).sb endif ifeq ($(BR2_TARGET_MXS_BOOTLETS_BAREBOX),y) define MXS_BOOTLETS_SED_BAREBOX sed -i 's,[^ *]barebox.*;,\tbarebox="$(BAREBOX_DIR)/barebox";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC) endef endif ifeq ($(BR2_TARGET_MXS_BOOTLETS_LINUX),y) define MXS_BOOTLETS_BUILD_LINUX_PREP BOARD=$(MXS_BOOTLETS_BOARD) CROSS_COMPILE="$(TARGET_CROSS)" \ $(MAKE1) -C $(@D) linux_prep endef define MXS_BOOTLETS_SED_LINUX sed -i 's,[^ *]linux_prep.*;,\tlinux_prep="$(@D)/linux_prep/output-target/linux_prep";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC) sed -i 's,[^ *]zImage.*;,\tzImage="$(LINUX_DIR)/arch/arm/boot/zImage";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC) endef endif ifeq ($(BR2_TARGET_MXS_BOOTLETS_UBOOT),y) define MXS_BOOTLETS_SED_UBOOT sed -i 's,[^ *]u_boot.*;,\tu_boot="$(UBOOT_DIR)/u-boot";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC) endef endif define MXS_BOOTLETS_INSTALL_BAREBOX_BOOTDESC cp boot/mxs-bootlets/barebox_ivt.bd $(@D)/ endef MXS_BOOTLETS_POST_EXTRACT_HOOKS += MXS_BOOTLETS_INSTALL_BAREBOX_BOOTDESC define MXS_BOOTLETS_BUILD_CMDS BOARD=$(MXS_BOOTLETS_BOARD) CROSS_COMPILE="$(TARGET_CROSS)" \ $(MAKE1) -C $(@D) power_prep BOARD=$(MXS_BOOTLETS_BOARD) CROSS_COMPILE="$(TARGET_CROSS)" \ $(MAKE1) -C $(@D) boot_prep $(MXS_BOOTLETS_BUILD_LINUX_PREP) sed -i 's,[^ *]power_prep.*;,\tpower_prep="$(@D)/power_prep/power_prep";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC) sed -i 's,[^ *]sdram_prep.*;,\tsdram_prep="$(@D)/boot_prep/boot_prep";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC) $(MXS_BOOTLETS_SED_BAREBOX) $(MXS_BOOTLETS_SED_LINUX) $(MXS_BOOTLETS_SED_UBOOT) $(HOST_DIR)/bin/elftosb $(MXS_BOOTLETS_ELFTOSB_OPTIONS) \ -z -c $(@D)/$(MXS_BOOTLETS_BOOTDESC) \ -o $(@D)/$(MXS_BOOTLETS_BOOTSTREAM) endef define MXS_BOOTLETS_INSTALL_TARGET_CMDS cp $(@D)/$(MXS_BOOTLETS_BOOTSTREAM) $(BINARIES_DIR)/ endef $(eval $(generic-package)) ================================================ FILE: boot/opensbi/0.9/0001-Makefile-Don-t-specify-mabi-or-march.patch ================================================ From f5871e1f3650d6c8a032928cb5d8ca00c275c377 Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Fri, 15 Feb 2019 14:57:41 -0800 Subject: [PATCH] Makefile: Don't specify mabi or march To avoid can't link double-float modules with soft-float modules errors when building 32-bit openSBI don't specify mabi or march. Signed-off-by: Alistair Francis --- Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Makefile b/Makefile index ae68f55..10851fc 100644 --- a/Makefile +++ b/Makefile @@ -145,7 +145,6 @@ GENFLAGS += $(firmware-genflags-y) CFLAGS = -g -Wall -Werror -nostdlib -fno-strict-aliasing -O2 CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls CFLAGS += -mno-save-restore -mstrict-align -CFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) CFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL) CFLAGS += $(GENFLAGS) CFLAGS += $(platform-cflags-y) @@ -158,7 +157,6 @@ CPPFLAGS += $(firmware-cppflags-y) ASFLAGS = -g -Wall -nostdlib -D__ASSEMBLY__ ASFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls ASFLAGS += -mno-save-restore -mstrict-align -ASFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) ASFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL) ASFLAGS += $(GENFLAGS) ASFLAGS += $(platform-asflags-y) -- 2.20.1 ================================================ FILE: boot/opensbi/0.9/0002-Makefile-unconditionally-disable-SSP.patch ================================================ From e389d5fbc296e496db15368b2b621e0f178f7f34 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 8 May 2021 21:28:10 +0200 Subject: [PATCH] Makefile: unconditionally disable SSP Though -nostdlib is passed in {C,+AS,DTSCPP}FLAGS, -fno-stack-protector must also be passed to avoid linking errors related to undefined references to '__stack_chk_guard' and '__stack_chk_fail' if toolchain enforces -fstack-protector. Fixes: - https://gitlab.com/kubu93/buildroot/-/jobs/1247043359 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/riscv/opensbi/pull/211] --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index eeffe6b..1419360 100644 --- a/Makefile +++ b/Makefile @@ -203,7 +203,7 @@ GENFLAGS += $(libsbiutils-genflags-y) GENFLAGS += $(platform-genflags-y) GENFLAGS += $(firmware-genflags-y) -CFLAGS = -g -Wall -Werror -ffreestanding -nostdlib -fno-strict-aliasing -O2 +CFLAGS = -g -Wall -Werror -ffreestanding -nostdlib -fno-stack-protector -fno-strict-aliasing -O2 CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls CFLAGS += -mno-save-restore -mstrict-align CFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) @@ -217,7 +217,7 @@ CPPFLAGS += $(GENFLAGS) CPPFLAGS += $(platform-cppflags-y) CPPFLAGS += $(firmware-cppflags-y) -ASFLAGS = -g -Wall -nostdlib -D__ASSEMBLY__ +ASFLAGS = -g -Wall -nostdlib -fno-stack-protector -D__ASSEMBLY__ ASFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls ASFLAGS += -mno-save-restore -mstrict-align ASFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) @@ -236,7 +236,7 @@ MERGEFLAGS += -r MERGEFLAGS += -b elf$(PLATFORM_RISCV_XLEN)-littleriscv MERGEFLAGS += -m elf$(PLATFORM_RISCV_XLEN)lriscv -DTSCPPFLAGS = $(CPPFLAGS) -nostdinc -nostdlib -fno-builtin -D__DTS__ -x assembler-with-cpp +DTSCPPFLAGS = $(CPPFLAGS) -nostdinc -nostdlib -fno-stack-protector -fno-builtin -D__DTS__ -x assembler-with-cpp # Setup functions for compilation define dynamic_flags -- 2.30.2 ================================================ FILE: boot/opensbi/Config.in ================================================ config BR2_TARGET_OPENSBI bool "opensbi" depends on BR2_riscv help OpenSBI aims to provide an open-source and extensible implementation of the RISC-V SBI specification for a platform specific firmware (M-mode) and a general purpose OS, hypervisor or bootloader (S-mode or HS-mode). OpenSBI implementation can be easily extended by RISC-V platform or System-on-Chip vendors to fit a particular hadware configuration. https://github.com/riscv/opensbi.git if BR2_TARGET_OPENSBI choice prompt "OpenSBI Version" help Select the specific OpenSBI version you want to use config BR2_TARGET_OPENSBI_LATEST_VERSION bool "0.9" config BR2_TARGET_OPENSBI_CUSTOM_VERSION bool "Custom version" help This option allows to use a specific official versions config BR2_TARGET_OPENSBI_CUSTOM_TARBALL bool "Custom tarball" config BR2_TARGET_OPENSBI_CUSTOM_GIT bool "Custom Git repository" endchoice config BR2_TARGET_OPENSBI_CUSTOM_VERSION_VALUE string "OpenSBI version" depends on BR2_TARGET_OPENSBI_CUSTOM_VERSION config BR2_TARGET_OPENSBI_CUSTOM_TARBALL_LOCATION string "URL of custom OpenSBI tarball" depends on BR2_TARGET_OPENSBI_CUSTOM_TARBALL if BR2_TARGET_OPENSBI_CUSTOM_GIT config BR2_TARGET_OPENSBI_CUSTOM_REPO_URL string "URL of custom repository" config BR2_TARGET_OPENSBI_CUSTOM_REPO_VERSION string "Custom repository version" help Revision to use in the typical format used by Git. E.G. a sha id, a tag, branch, .. endif config BR2_TARGET_OPENSBI_VERSION string default "0.9" if BR2_TARGET_OPENSBI_LATEST_VERSION default BR2_TARGET_OPENSBI_CUSTOM_VERSION_VALUE \ if BR2_TARGET_OPENSBI_CUSTOM_VERSION default "custom" if BR2_TARGET_OPENSBI_CUSTOM_TARBALL default BR2_TARGET_OPENSBI_CUSTOM_REPO_VERSION \ if BR2_TARGET_OPENSBI_CUSTOM_GIT config BR2_TARGET_OPENSBI_PLAT string "OpenSBI Platform" default "" help Specifies the OpenSBI platform to build. If no platform is specified only the OpenSBI platform independent static library libsbi.a is built. If a platform is specified then the platform specific static library libplatsbi.a and firmware examples are built. config BR2_TARGET_OPENSBI_INSTALL_DYNAMIC_IMG bool "Install fw_dynamic image" default y if BR2_TARGET_OPENSBI_PLAT != "" help This installs the fw_dynamic image. config BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG bool "Install fw_jump image" default y if BR2_TARGET_OPENSBI_PLAT != "" help This installs the fw_jump image. config BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG bool "Install fw_payload image" help This option enables the installation of the fw_paylaod image. config BR2_TARGET_OPENSBI_LINUX_PAYLOAD bool "Include Linux as OpenSBI Payload" depends on BR2_TARGET_OPENSBI_PLAT != "" depends on BR2_LINUX_KERNEL depends on BR2_LINUX_KERNEL_IMAGE select BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG help Build OpenSBI with the Linux kernel as a Payload. config BR2_TARGET_OPENSBI_UBOOT_PAYLOAD bool "Include U-Boot as OpenSBI Payload" depends on BR2_TARGET_OPENSBI_PLAT != "" depends on BR2_TARGET_UBOOT select BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG help Build OpenSBI with the U-Boot as a Payload. config BR2_TARGET_OPENSBI_FW_FDT_PATH bool "Include U-Boot DTB in OpenSBI Payload" depends on BR2_TARGET_OPENSBI_UBOOT_PAYLOAD select BR2_TARGET_UBOOT_FORMAT_DTB help Build OpenSBI with FW_FDT_PATH set to $(BINARIES_DIR)/u-boot.dtb. Note that CONFIG_OF_SEPARATE must be set in the U-Boot configuration for this file to be produced. endif ================================================ FILE: boot/opensbi/opensbi.hash ================================================ # locally computed sha256 60f995cb3cd03e3cf5e649194d3395d0fe67499fd960a36cf7058a4efde686f0 opensbi-0.9.tar.gz sha256 82d13fb1bf6bb162629deeea9eb9c117e74548d3b707e478967691fe79a68e21 COPYING.BSD ================================================ FILE: boot/opensbi/opensbi.mk ================================================ ################################################################################ # # opensbi # ################################################################################ OPENSBI_VERSION = $(call qstrip,$(BR2_TARGET_OPENSBI_VERSION)) ifeq ($(OPENSBI_VERSION),custom) # Handle custom OpenSBI tarballs as specified by the configuration OPENSBI_TARBALL = $(call qstrip,$(BR2_TARGET_OPENSBI_CUSTOM_TARBALL_LOCATION)) OPENSBI_SITE = $(patsubst %/,%,$(dir $(OPENSBI_TARBALL))) OPENSBI_SOURCE = $(notdir $(OPENSBI_TARBALL)) else ifeq ($(BR2_TARGET_OPENSBI_CUSTOM_GIT),y) OPENSBI_SITE = $(call qstrip,$(BR2_TARGET_OPENSBI_CUSTOM_REPO_URL)) OPENSBI_SITE_METHOD = git else # Handle official OpenSBI versions OPENSBI_SITE = $(call github,riscv,opensbi,v$(OPENSBI_VERSION)) endif OPENSBI_LICENSE = BSD-2-Clause ifeq ($(BR2_TARGET_OPENSBI_LATEST_VERSION),y) OPENSBI_LICENSE_FILES = COPYING.BSD endif OPENSBI_INSTALL_TARGET = NO OPENSBI_INSTALL_STAGING = YES ifeq ($(BR2_TARGET_OPENSBI)$(BR2_TARGET_OPENSBI_LATEST_VERSION),y) BR_NO_CHECK_HASH_FOR += $(OPENSBI_SOURCE) endif OPENSBI_MAKE_ENV = \ CROSS_COMPILE=$(TARGET_CROSS) OPENSBI_PLAT = $(call qstrip,$(BR2_TARGET_OPENSBI_PLAT)) ifneq ($(OPENSBI_PLAT),) OPENSBI_MAKE_ENV += PLATFORM=$(OPENSBI_PLAT) endif ifeq ($(BR2_TARGET_OPENSBI_LINUX_PAYLOAD),y) OPENSBI_DEPENDENCIES += linux OPENSBI_MAKE_ENV += FW_PAYLOAD_PATH="$(BINARIES_DIR)/Image" endif ifeq ($(BR2_TARGET_OPENSBI_UBOOT_PAYLOAD),y) OPENSBI_DEPENDENCIES += uboot OPENSBI_MAKE_ENV += FW_PAYLOAD_PATH="$(BINARIES_DIR)/u-boot.bin" ifeq ($(BR2_TARGET_OPENSBI_FW_FDT_PATH),y) OPENSBI_MAKE_ENV += FW_FDT_PATH="$(BINARIES_DIR)/u-boot.dtb" endif endif define OPENSBI_BUILD_CMDS $(TARGET_MAKE_ENV) $(OPENSBI_MAKE_ENV) $(MAKE) -C $(@D) endef ifeq ($(BR2_TARGET_OPENSBI_INSTALL_DYNAMIC_IMG),y) OPENSBI_INSTALL_IMAGES = YES OPENSBI_FW_IMAGES += dynamic endif ifeq ($(BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG),y) OPENSBI_INSTALL_IMAGES = YES OPENSBI_FW_IMAGES += jump endif ifeq ($(BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG),y) OPENSBI_INSTALL_IMAGES = YES OPENSBI_FW_IMAGES += payload endif define OPENSBI_INSTALL_IMAGES_CMDS $(foreach f,$(OPENSBI_FW_IMAGES),\ $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_$(f).bin \ $(BINARIES_DIR)/fw_$(f).bin $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_$(f).elf \ $(BINARIES_DIR)/fw_$(f).elf ) endef # libsbi.a is not a library meant to be linked in user-space code, but # with bare metal code, which is why we don't install it in # $(STAGING_DIR)/usr/lib define OPENSBI_INSTALL_STAGING_CMDS $(INSTALL) -m 0644 -D $(@D)/build/lib/libsbi.a $(STAGING_DIR)/usr/share/opensbi/libsbi.a endef $(eval $(generic-package)) ================================================ FILE: boot/optee-os/3.13.0/0001-core-zlib-fix-build-warning-when-_LFS64_LARGEFILE-is.patch ================================================ From 82becbadd5918ed7ad3c2b651ce479084b5feb2a Mon Sep 17 00:00:00 2001 From: Etienne Carriere Date: Mon, 10 May 2021 15:58:41 +0200 Subject: core: zlib: fix build warning when _LFS64_LARGEFILE is not defined In zlib, _LFS64_LARGEFILE is expected to be a boolean directive, either 1 (true) or 0 (false). Depending on toolchain version and directives build may produces warnings (as shown below with gcc 9.3) when the macro is not defined hence this change to default it to value 0 (false). core/lib/zlib/zutil.h:196:39: warning: "_LFS64_LARGEFILE" is not defined, evaluates to 0 [-Wundef] 196 | (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) | ^~~~~~~~~~~~~~~~ In file included from core/lib/zlib/adler32.c:9: core/lib/zlib/zutil.h:196:39: warning: "_LFS64_LARGEFILE" is not defined, evaluates to 0 [-Wundef] 196 | (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) | ^~~~~~~~~~~~~~~~ CC out/core/lib/zlib/zutil.o In file included from core/lib/zlib/inftrees.c:7: core/lib/zlib/zutil.h:196:39: warning: "_LFS64_LARGEFILE" is not defined, evaluates to 0 [-Wundef] 196 | (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) | ^~~~~~~~~~~~~~~~ In file included from core/lib/zlib/inflate.c:84: core/lib/zlib/zutil.h:196:39: warning: "_LFS64_LARGEFILE" is not defined, evaluates to 0 [-Wundef] 196 | (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) | ^~~~~~~~~~~~~~~~ In file included from core/lib/zlib/zutil.c:9: core/lib/zlib/zutil.h:196:39: warning: "_LFS64_LARGEFILE" is not defined, evaluates to 0 [-Wundef] 196 | (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) | ^~~~~~~~~~~~~~~~ Signed-off-by: Etienne Carriere Reviewed-by: Jens Wiklander --- core/lib/zlib/zconf.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/lib/zlib/zconf.h b/core/lib/zlib/zconf.h index 0bca18be..a7d13741 100644 --- a/core/lib/zlib/zconf.h +++ b/core/lib/zlib/zconf.h @@ -487,6 +487,11 @@ typedef uLong FAR uLongf; # endif #endif +/* Other places expect _LFS64_LARGEFILE to be defined with a valid value */ +#ifndef _LFS64_LARGEFILE +#define _LFS64_LARGEFILE 0 +#endif + #if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 # define Z_LFS64 #endif -- 2.17.1 ================================================ FILE: boot/optee-os/Config.in ================================================ config BR2_TARGET_OPTEE_OS bool "optee_os" depends on BR2_ARM_CPU_ARMV8A || BR2_ARM_CPU_ARMV7A help OP-TEE OS provides the secure world boot image and the trust application development kit of the OP-TEE project. OP-TEE OS also provides generic trusted application one can embedded into its system. http://github.com/OP-TEE/optee_os if BR2_TARGET_OPTEE_OS choice prompt "OP-TEE OS version" default BR2_TARGET_OPTEE_OS_LATEST help Select the version of OP-TEE OS you want to use config BR2_TARGET_OPTEE_OS_LATEST bool "3.15.0" help Use the latest release tag from the OP-TEE OS official Git repository. config BR2_TARGET_OPTEE_OS_CUSTOM_GIT bool "Custom Git repository" help Use a custom version fetched from a Git repository. endchoice if BR2_TARGET_OPTEE_OS_CUSTOM_GIT config BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL string "URL of custom repository" depends on BR2_TARGET_OPTEE_OS_CUSTOM_GIT help Specific location of the reference source tree Git repository. config BR2_TARGET_OPTEE_OS_CUSTOM_REPO_VERSION string "Custom repository version" depends on BR2_TARGET_OPTEE_OS_CUSTOM_GIT help Revision to use in the typical format used by Git, i.e a SHA1 or a tag. endif config BR2_TARGET_OPTEE_OS_VERSION string default "3.15.0" if BR2_TARGET_OPTEE_OS_LATEST default BR2_TARGET_OPTEE_OS_CUSTOM_REPO_VERSION \ if BR2_TARGET_OPTEE_OS_CUSTOM_GIT config BR2_TARGET_OPTEE_OS_CORE bool "Build core" default y help This option will build and install the OP-TEE core boot images. config BR2_TARGET_OPTEE_OS_SDK bool "Build TA devkit" default y help This option will build and install the OP-TEE development kit for building OP-TEE trusted application images. It is installed in the staging directory /lib/optee. config BR2_TARGET_OPTEE_OS_SERVICES bool "Build service TAs and libs" default y select BR2_TARGET_OPTEE_OS_CORE help This option installs the service trusted applications and trusted shared libraries built from OP-TEE OS source tree. These are installed in target /lib/optee_armtz directory as other trusted applications. At runtime OP-TEE OS can load these from this non-secure filesystem/directory into the secure world for execution. config BR2_TARGET_OPTEE_OS_PLATFORM string "Target platform (mandatory)" help Value for the mandated PLATFORM build directive provided to OP-TEE OS. config BR2_TARGET_OPTEE_OS_PLATFORM_FLAVOR string "Target platform flavor (optional)" help Value for the optional PLATFORM_FLAVOR build directive provided to OP-TEE OS. config BR2_TARGET_OPTEE_OS_ADDITIONAL_VARIABLES string "Additional build variables" help Additional parameters for the OP-TEE OS build E.g. 'CFG_TEE_CORE_LOG_LEVEL=3 CFG_UNWIND=y' config BR2_TARGET_OPTEE_OS_CORE_IMAGES string "Binary boot images" default "tee.bin tee-*_v2.bin" help Names of generated image files that are installed in the output images/ directory. endif # BR2_TARGET_OPTEE_OS ================================================ FILE: boot/optee-os/optee-os.hash ================================================ # From https://github.com/OP-TEE/optee_os/archive/3.15.0/optee-os-3.15.0.tar.gz sha256 e5bb3d9eedaf7785af091602addac5b52118f4cdc108af9cd6f6c96b21503ab8 optee-os-3.15.0.tar.gz # Locally computed sha256 1247ee90858f4037b6cac63cbffddfed435d0d73c631b37d78c1e6e6ab3e5d1a LICENSE ================================================ FILE: boot/optee-os/optee-os.mk ================================================ ################################################################################ # # optee-os # ################################################################################ OPTEE_OS_VERSION = $(call qstrip,$(BR2_TARGET_OPTEE_OS_VERSION)) OPTEE_OS_LICENSE = BSD-2-Clause ifeq ($(BR2_TARGET_OPTEE_OS_LATEST),y) OPTEE_OS_LICENSE_FILES = LICENSE endif OPTEE_OS_INSTALL_STAGING = YES OPTEE_OS_INSTALL_IMAGES = YES ifeq ($(BR2_TARGET_OPTEE_OS_CUSTOM_GIT),y) OPTEE_OS_SITE = $(call qstrip,$(BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL)) OPTEE_OS_SITE_METHOD = git BR_NO_CHECK_HASH_FOR += $(OPTEE_OS_SOURCE) else OPTEE_OS_SITE = $(call github,OP-TEE,optee_os,$(OPTEE_OS_VERSION)) endif OPTEE_OS_DEPENDENCIES = host-openssl host-python3 host-python3-pycryptodomex host-python3-pyelftools # On 64bit targets, OP-TEE OS can be built in 32bit mode, or # can be built in 64bit mode and support 32bit and 64bit # trusted applications. Since buildroot currently references # a single cross compiler, build exclusively in 32bit # or 64bit mode. OPTEE_OS_MAKE_OPTS = \ CROSS_COMPILE="$(TARGET_CROSS)" \ CROSS_COMPILE_core="$(TARGET_CROSS)" \ CROSS_COMPILE_ta_arm64="$(TARGET_CROSS)" \ CROSS_COMPILE_ta_arm32="$(TARGET_CROSS)" \ PYTHON3="$(HOST_DIR)/bin/python3" ifeq ($(BR2_aarch64),y) OPTEE_OS_MAKE_OPTS += \ CFG_ARM64_core=y \ CFG_USER_TA_TARGETS=ta_arm64 else OPTEE_OS_MAKE_OPTS += \ CFG_ARM32_core=y endif # Get mandatory PLAFORM and optional PLATFORM_FLAVOR and additional # variables OPTEE_OS_MAKE_OPTS += PLATFORM=$(call qstrip,$(BR2_TARGET_OPTEE_OS_PLATFORM)) ifneq ($(call qstrip,$(BR2_TARGET_OPTEE_OS_PLATFORM_FLAVOR)),) OPTEE_OS_MAKE_OPTS += PLATFORM_FLAVOR=$(call qstrip,$(BR2_TARGET_OPTEE_OS_PLATFORM_FLAVOR)) endif OPTEE_OS_MAKE_OPTS += $(call qstrip,$(BR2_TARGET_OPTEE_OS_ADDITIONAL_VARIABLES)) # Requests OP-TEE OS to build from subdirectory out/ of its sourcetree # root path otherwise the output directory path depends on the target # platform name. OPTEE_OS_BUILDDIR_OUT = out ifeq ($(BR2_aarch64),y) OPTEE_OS_LOCAL_SDK = $(OPTEE_OS_BUILDDIR_OUT)/export-ta_arm64 OPTEE_OS_SDK = $(STAGING_DIR)/lib/optee/export-ta_arm64 endif ifeq ($(BR2_arm),y) OPTEE_OS_LOCAL_SDK = $(OPTEE_OS_BUILDDIR_OUT)/export-ta_arm32 OPTEE_OS_SDK = $(STAGING_DIR)/lib/optee/export-ta_arm32 endif OPTEE_OS_IMAGE_FILES = $(call qstrip,$(BR2_TARGET_OPTEE_OS_CORE_IMAGES)) ifeq ($(BR2_TARGET_OPTEE_OS_CORE),y) define OPTEE_OS_BUILD_CORE $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) O=$(OPTEE_OS_BUILDDIR_OUT) \ $(TARGET_CONFIGURE_OPTS) $(OPTEE_OS_MAKE_OPTS) all endef define OPTEE_OS_INSTALL_IMAGES_CORE mkdir -p $(BINARIES_DIR) $(foreach f,$(OPTEE_OS_IMAGE_FILES), \ cp -dpf $(wildcard $(@D)/$(OPTEE_OS_BUILDDIR_OUT)/core/$(f)) $(BINARIES_DIR)/ ) endef endif # BR2_TARGET_OPTEE_OS_CORE ifeq ($(BR2_TARGET_OPTEE_OS_SERVICES),y) define OPTEE_OS_INSTALL_TARGET_CMDS $(if $(wildcard $(@D)/$(OPTEE_OS_BUILDDIR_OUT)/ta/*/*.ta), $(INSTALL) -D -m 444 -t $(TARGET_DIR)/lib/optee_armtz \ $(@D)/$(OPTEE_OS_BUILDDIR_OUT)/ta/*/*.ta) $(if $(wildcard $(@D)/$(OPTEE_OS_LOCAL_SDK)/lib/*.ta), $(INSTALL) -D -m 444 -t $(TARGET_DIR)/lib/optee_armtz \ $(@D)/$(OPTEE_OS_LOCAL_SDK)/lib/*.ta) endef endif # BR2_TARGET_OPTEE_OS_SERVICES ifeq ($(BR2_TARGET_OPTEE_OS_SDK),y) define OPTEE_OS_BUILD_SDK $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) O=$(OPTEE_OS_BUILDDIR_OUT) \ $(TARGET_CONFIGURE_OPTS) $(OPTEE_OS_MAKE_OPTS) ta_dev_kit endef define OPTEE_OS_INSTALL_STAGING_CMDS mkdir -p $(OPTEE_OS_SDK) cp -ardpf $(@D)/$(OPTEE_OS_LOCAL_SDK)/* $(OPTEE_OS_SDK) endef endif # BR2_TARGET_OPTEE_OS_SDK define OPTEE_OS_BUILD_CMDS $(OPTEE_OS_BUILD_CORE) $(OPTEE_OS_BUILD_SDK) endef define OPTEE_OS_INSTALL_IMAGES_CMDS $(OPTEE_OS_INSTALL_IMAGES_CORE) $(OPTEE_OS_INSTALL_IMAGES_SERVICES) endef ifeq ($(BR2_TARGET_OPTEE_OS)$(BR_BUILDING),yy) ifeq ($(call qstrip,$(BR2_TARGET_OPTEE_OS_PLATFORM)),) $(error No OP-TEE OS platform set. Check your BR2_TARGET_OPTEE_OS_PLATFORM setting) endif endif # BR2_TARGET_OPTEE_OS && BR2_BUILDING $(eval $(generic-package)) ================================================ FILE: boot/s500-bootloader/Config.in ================================================ 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. ================================================ FILE: boot/s500-bootloader/s500-bootloader.hash ================================================ # Locally calculated sha256 b183024ac69f51ea7befd28d03b2ec35a7280e270405600fb4f37aa91d9c9571 s500-bootloader-a8d7fa1d9a7f353ec4613febf30f4ca99a10a106.tar.gz ================================================ FILE: boot/s500-bootloader/s500-bootloader.mk ================================================ ################################################################################ # # 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 ================================================ FILE: boot/shim/Config.in ================================================ config BR2_TARGET_SHIM bool "shim" # it includes gnu-efi depends on BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS help Boot loader to chain-load signed boot loaders under Secure Boot. This package provides a minimalist boot loader which allows verifying signatures of other UEFI binaries against either the Secure Boot DB/DBX or against a built-in signature database. Its purpose is to allow a small, infrequently-changing binary to be signed by the UEFI CA, while allowing an OS distributor to revision their main bootloader independently of the CA. https://github.com/rhboot/shim ================================================ FILE: boot/shim/shim.hash ================================================ # locally computed hash sha256 8344473dd10569588b8238a4656b8fab226714eea9f5363f8c410aa8a5090297 shim-15.4.tar.bz2 sha256 15edf527919ddcb2f514ab9d16ad07ef219e4bb490e0b79560be510f0c159cc2 COPYRIGHT ================================================ FILE: boot/shim/shim.mk ================================================ ################################################################################ # # shim # ################################################################################ SHIM_VERSION = 15.4 SHIM_SITE = https://github.com/rhboot/shim/releases/download/$(SHIM_VERSION) SHIM_SOURCE = shim-$(SHIM_VERSION).tar.bz2 SHIM_LICENSE = BSD-2-Clause SHIM_LICENSE_FILES = COPYRIGHT SHIM_CPE_ID_VENDOR = redhat SHIM_INSTALL_TARGET = NO SHIM_INSTALL_IMAGES = YES SHIM_MAKE_OPTS = \ ARCH="$(GNU_EFI_PLATFORM)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ DASHJ="-j$(PARALLEL_JOBS)" define SHIM_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(SHIM_MAKE_OPTS) endef define SHIM_INSTALL_IMAGES_CMDS $(INSTALL) -m 0755 -t $(BINARIES_DIR) $(@D)/*.efi endef $(eval $(generic-package)) ================================================ FILE: boot/sun20i-d1-spl/Config.in ================================================ config BR2_TARGET_SUN20I_D1_SPL bool "sun20-d1-spl" depends on BR2_RISCV_64 help Allwinner D1 boot0 code with modifications to use as U-Boot SPL. https://github.com/smaeul/sun20i_d1_spl ================================================ FILE: boot/sun20i-d1-spl/sun20i-d1-spl.hash ================================================ # Locally computed sha256 69063601239a7254fb72e486b138d88a6f2b5c645b24cdfe9792123f975d4a8f sun20i-d1-spl-771192d0b3737798d7feca87263c8fa74a449787.tar.gz ================================================ FILE: boot/sun20i-d1-spl/sun20i-d1-spl.mk ================================================ ################################################################################ # # sun20i-d1-spl # ################################################################################ # Commit on the 'mainline' branch SUN20I_D1_SPL_VERSION = 771192d0b3737798d7feca87263c8fa74a449787 SUN20I_D1_SPL_SITE = $(call github,smaeul,sun20i_d1_spl,$(SUN20I_D1_SPL_VERSION)) SUN20I_D1_SPL_INSTALL_TARGET = NO SUN20I_D1_SPL_INSTALL_IMAGES = YES SUN20I_D1_SPL_LICENSE = GPL-2.0+ define SUN20I_D1_SPL_BUILD_CMDS $(MAKE) -C $(@D) CROSS_COMPILE="$(TARGET_CROSS)" p=sun20iw1p1 mmc endef define SUN20I_D1_SPL_INSTALL_IMAGES_CMDS $(INSTALL) -D -m 0644 $(@D)/nboot/boot0_sdcard_sun20iw1p1.bin \ $(BINARIES_DIR)/boot0_sdcard_sun20iw1p1.bin endef $(eval $(generic-package)) ================================================ FILE: boot/syslinux/0001-bios-Fix-alignment-change-with-gcc-5.patch ================================================ From da5cbd1a3b248f2d32281a1766a3d1414c0e8e03 Mon Sep 17 00:00:00 2001 From: Sylvain Gault Date: Tue, 29 Sep 2015 02:38:25 +0200 Subject: [PATCH] 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 --- core/i386/syslinux.ld | 6 +++--- core/x86_64/syslinux.ld | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) 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) { -- 2.7.4 ================================================ FILE: boot/syslinux/0002-Disable-PIE-to-avoid-FTBFS-on-amd64.patch ================================================ From 250bf2c921713434627dc7bc8b0918fa0841f9b7 Mon Sep 17 00:00:00 2001 From: Graham Inggs Date: Wed, 5 Apr 2017 22:03:12 +0200 Subject: [PATCH] Disable PIE to avoid FTBFS on amd64 gcc 6.x has PIE support enabled by default, which causes a build issue with syslinux. This patch disables PIE support in the relevant syslinux Makefile. Signed-off-by: Ryan Coe --- gpxe/src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpxe/src/Makefile b/gpxe/src/Makefile index cc91d78..077af64 100644 --- a/gpxe/src/Makefile +++ b/gpxe/src/Makefile @@ -4,7 +4,7 @@ # CLEANUP := -CFLAGS := +CFLAGS := -fno-PIE ASFLAGS := LDFLAGS := MAKEDEPS := Makefile -- 2.7.4 ================================================ FILE: boot/syslinux/0003-memdisk-Force-ld-output-format-to-32-bits.patch ================================================ From c0287594239d5af2082cac20817f8e8b11a4b1b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Allard?= Date: Wed, 5 Apr 2017 14:18:09 +0200 Subject: [PATCH] memdisk: Force ld output format to 32-bits MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On toolchains where the default output is x86_64, we need to be consistent with the other .o files Signed-off-by: Benoît Allard --- memdisk/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/memdisk/Makefile b/memdisk/Makefile index e6557d8..06613ff 100644 --- a/memdisk/Makefile +++ b/memdisk/Makefile @@ -78,7 +78,7 @@ memdisk16.o: memdisk16.asm $(NASM) -f bin $(NASMOPT) $(NFLAGS) $(NINCLUDE) -o $@ -l $*.lst $< memdisk_%.o: memdisk_%.bin - $(LD) -r -b binary -o $@ $< + $(LD) --oformat elf32-i386 -r -b binary -o $@ $< memdisk16.elf: $(OBJS16) $(LD) -Ttext 0 -o $@ $^ -- 2.7.4 ================================================ FILE: boot/syslinux/0004-utils-Use-the-host-toolchain-to-build.patch ================================================ From e000251144056c99e390a2a4449d06cbd2a19c0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Allard?= Date: Wed, 5 Apr 2017 14:25:02 +0200 Subject: [PATCH] utils: Use the host toolchain to build. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The utilities are meant to run on the host machine, hence must be built using the host toolchain. Signed-off-by: Benoît Allard --- utils/Makefile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/utils/Makefile b/utils/Makefile index dfe6259..ac91aaa 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -17,8 +17,8 @@ VPATH = $(SRC) include $(MAKEDIR)/syslinux.mk -CFLAGS = $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -I$(SRC) -LDFLAGS = -O2 +CFLAGS = $(CFLAGS_FOR_BUILD) $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -I$(SRC) +LDFLAGS = $(LDFLAGS_FOR_BUILD) -O2 C_TARGETS = isohybrid gethostip memdiskfind SCRIPT_TARGETS = mkdiskimage @@ -35,7 +35,7 @@ ISOHDPFX = $(addprefix $(OBJ)/,../mbr/isohdpfx.bin ../mbr/isohdpfx_f.bin \ all: $(TARGETS) %.o: %.c - $(CC) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $< + $(CC_FOR_BUILD) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $< mkdiskimage: mkdiskimage.in ../mbr/mbr.bin bin2hex.pl $(PERL) $(SRC)/bin2hex.pl < $(OBJ)/../mbr/mbr.bin | cat $(SRC)/mkdiskimage.in - > $@ @@ -51,13 +51,13 @@ isohdpfx.c: $(ISOHDPFX) isohdpfxarray.pl $(PERL) $(SRC)/isohdpfxarray.pl $(ISOHDPFX) > $@ isohybrid: isohybrid.o isohdpfx.o - $(CC) $(LDFLAGS) -o $@ $^ -luuid + $(CC_FOR_BUILD) $(LDFLAGS) -o $@ $^ -luuid gethostip: gethostip.o - $(CC) $(LDFLAGS) -o $@ $^ + $(CC_FOR_BUILD) $(LDFLAGS) -o $@ $^ memdiskfind: memdiskfind.o - $(CC) $(LDFLAGS) -o $@ $^ + $(CC_FOR_BUILD) $(LDFLAGS) -o $@ $^ tidy dist: rm -f *.o .*.d isohdpfx.c -- 2.1.4 ================================================ FILE: boot/syslinux/0005-lzo-Use-the-host-toolchain-for-prepcore.patch ================================================ From 83e1f00990c25554723609bb549e18b987034317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Allard?= Date: Thu, 6 Apr 2017 09:43:46 +0200 Subject: [PATCH] lzo: Use the host toolchain for prepcore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benoît Allard --- lzo/Makefile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lzo/Makefile b/lzo/Makefile index 29f1fa6..c016e5a 100644 --- a/lzo/Makefile +++ b/lzo/Makefile @@ -11,10 +11,13 @@ ## ----------------------------------------------------------------------- VPATH = $(SRC) -include $(MAKEDIR)/build.mk +include $(MAKEDIR)/syslinux.mk INCLUDES += -I$(SRC)/include +%.o: %.c + $(CC_FOR_BUILD) $(UMAKEDEPS) $(CFLAGS_FOR_BUILD) $(INCLUDES) -c -o $@ $< + LIBOBJS = $(patsubst %.c,%.o,$(subst $(SRC)/,,$(wildcard $(SRC)/src/*.c))) LIB = lzo.a BINS = prepcore @@ -30,7 +33,7 @@ $(LIB) : $(LIBOBJS) $(RANLIB) $@ prepcore : prepcore.o $(LIB) - $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) + $(CC_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ $^ $(LIBS) tidy dist clean spotless: rm -f $(BINS) -- 2.1.4 ================================================ FILE: boot/syslinux/0006-The-VPrint-definition-is-now-part-of-the-exports-of-.patch ================================================ From 39274503292a6003b1b0c93f694e34f11e85ea44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Allard?= Date: Fri, 9 Jun 2017 11:55:14 +0200 Subject: [PATCH] The VPrint definition is now part of the exports of gnu-efi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benoît Allard --- efi/fio.h | 9 --------- 1 file changed, 9 deletions(-) diff --git a/efi/fio.h b/efi/fio.h index 65fff8d..a1bfe68 100644 --- a/efi/fio.h +++ b/efi/fio.h @@ -11,15 +11,6 @@ #define MAX_EFI_ARGS 64 #define WS(c16) (c16 == L' ' || c16 == CHAR_TAB) -/* VPrint is not in export declarations in gnu-efi lib yet - * although it is a global function; declare it here - */ -extern UINTN -VPrint ( - IN CHAR16 *fmt, - va_list args - ); - extern EFI_STATUS efi_errno; void efi_memcpy(unsigned char *dst, unsigned char *src, size_t len); -- 2.1.4 ================================================ FILE: boot/syslinux/0007-Update-the-longjump-calls-to-fit-the-new-declaration.patch ================================================ From 3bd5c2d951421a89f76b2423e5810862f53486c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Allard?= Date: Fri, 9 Jun 2017 11:59:43 +0200 Subject: [PATCH] Update the longjump calls to fit the new declaration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benoît Allard --- efi/main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/efi/main.c b/efi/main.c index 208fee4f..71d31a5c 100644 --- a/efi/main.c +++ b/efi/main.c @@ -10,7 +10,6 @@ #include #include #include -#include #include "efi.h" #include "fio.h" @@ -30,7 +29,7 @@ uint32_t timer_irq; __export uint8_t KbdMap[256]; char aux_seg[256]; -static jmp_buf load_error_buf; +static jmp_buf *load_error_buf; static inline EFI_STATUS efi_close_protocol(EFI_HANDLE handle, EFI_GUID *guid, EFI_HANDLE agent, -- 2.13.3 ================================================ FILE: boot/syslinux/0008-efi-wrapper-build-it-with-the-host-toolchain.patch ================================================ From ca8aaded0c7c3900397029bd9520132b62629308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Allard?= Date: Mon, 12 Jun 2017 14:59:16 +0200 Subject: [PATCH] efi/wrapper: build it with the host toolchain. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The wrapper program is executed on the build machine, so it should be built with CC_FOR_BUILD. Signed-off-by: Benoît Allard --- efi/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/efi/Makefile b/efi/Makefile index d5443bd5..d24d16db 100644 --- a/efi/Makefile +++ b/efi/Makefile @@ -79,7 +79,7 @@ syslinux.so: $(OBJS) $(CORE_OBJS) $(LIB_OBJS) # cp $^ $@ wrapper: wrapper.c - $(CC) $^ -o $@ + $(CC_FOR_BUILD) $^ -o $@ # # Build the wrapper app and wrap our .so to produce a .efi -- 2.13.3 ================================================ FILE: boot/syslinux/0009-bios-Don-t-try-to-guess-the-sections-alignment.patch ================================================ From 76946dd67bc856eaf4fe69d0826547a794176f78 Mon Sep 17 00:00:00 2001 From: Sylvain Gault Date: Tue, 29 Sep 2015 04:45:09 +0200 Subject: [PATCH] bios: Don't try to guess the sections alignment For the compression / decompression to succeed, the sections layout must be the same between the virtual memory and load memory. The section alignment was kept in sync by introducing aligment that should be greater or equal to the actual section alignment. This patch compute the load memory addresses of the sections so that the layout is the same as the virtual memory addresses. Signed-off-by: Sylvain Gault Tested-by: poma Signed-off-by: Paulo Alcantara Upstream: 0cc9a99e560a2f52bcf052fd85b1efae35ee812f Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- core/i386/syslinux.ld | 63 ++++++++++--------------------------------------- core/x86_64/syslinux.ld | 63 ++++++++++--------------------------------------- 2 files changed, 24 insertions(+), 102 deletions(-) diff --git a/core/i386/syslinux.ld b/core/i386/syslinux.ld index 73904510..92b75b11 100644 --- a/core/i386/syslinux.ld +++ b/core/i386/syslinux.ld @@ -255,10 +255,9 @@ SECTIONS . = 0x100000; __pm_code_start = .; + __vma_to_lma = __pm_code_lma - __pm_code_start; - __text_vma = .; - __text_lma = __pm_code_lma; - .text : AT(__text_lma) { + .text : AT(ADDR(.text) + __vma_to_lma) { FILL(0x90909090) __text_start = .; *(.text) @@ -266,106 +265,68 @@ SECTIONS __text_end = .; } - . = ALIGN(32); - - __rodata_vma = .; - __rodata_lma = __rodata_vma + __text_lma - __text_vma; - .rodata : AT(__rodata_lma) { + .rodata : AT(ADDR(.rodata) + __vma_to_lma) { __rodata_start = .; *(.rodata) *(.rodata.*) __rodata_end = .; } - . = ALIGN(4); - - __ctors_vma = .; - __ctors_lma = __ctors_vma + __text_lma - __text_vma; - .ctors : AT(__ctors_lma) { + .ctors : AT(ADDR(.ctors) + __vma_to_lma) { __ctors_start = .; KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) __ctors_end = .; } - __dtors_vma = .; - __dtors_lma = __dtors_vma + __text_lma - __text_vma; - .dtors : AT(__dtors_lma) { + .dtors : AT(ADDR(.dtors) + __vma_to_lma) { __dtors_start = .; KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) __dtors_end = .; } - . = ALIGN(4); - - __dynsym_vma = .; - __dynsym_lma = __dynsym_vma + __text_lma - __text_vma; - .dynsym : AT(__dynsym_lma) { + .dynsym : AT(ADDR(.dynsym) + __vma_to_lma) { __dynsym_start = .; *(.dynsym) __dynsym_end = .; } __dynsym_len = __dynsym_end - __dynsym_start; - . = ALIGN(4); - - __dynstr_vma = .; - __dynstr_lma = __dynstr_vma + __text_lma - __text_vma; - .dynstr : AT(__dynstr_lma) { + .dynstr : AT(ADDR(.dynstr) + __vma_to_lma) { __dynstr_start = .; *(.dynstr) __dynstr_end = .; } __dynstr_len = __dynstr_end - __dynstr_start; - . = ALIGN(4); - - __gnu_hash_vma = .; - __gnu_hash_lma = __gnu_hash_vma + __text_lma - __text_vma; - .gnu.hash : AT(__gnu_hash_lma) { + .gnu.hash : AT(ADDR(.gnu.hash) + __vma_to_lma) { __gnu_hash_start = .; *(.gnu.hash) __gnu_hash_end = .; } - . = ALIGN(4); - - __dynlink_vma = .; - __dynlink_lma = __dynlink_vma + __text_lma - __text_vma; - .dynlink : AT(__dynlink_lma) { + .dynlink : AT(ADDR(.dynlink) + __vma_to_lma) { __dynlink_start = .; *(.dynlink) __dynlink_end = .; } - . = ALIGN(4); - - __got_vma = .; - __got_lma = __got_vma + __text_lma - __text_vma; - .got : AT(__got_lma) { + .got : AT(ADDR(.got) + __vma_to_lma) { __got_start = .; KEEP (*(.got.plt)) KEEP (*(.got)) __got_end = .; } - . = ALIGN(4); - - __dynamic_vma = .; - __dynamic_lma = __dynamic_vma + __text_lma - __text_vma; - .dynamic : AT(__dynamic_lma) { + .dynamic : AT(ADDR(.dynamic) + __vma_to_lma) { __dynamic_start = .; *(.dynamic) __dynamic_end = .; } - . = ALIGN(32); - - __data_vma = .; - __data_lma = __data_vma + __text_lma - __text_vma; - .data : AT(__data_lma) { + .data : AT(ADDR(.data) + __vma_to_lma) { __data_start = .; *(.data) *(.data.*) diff --git a/core/x86_64/syslinux.ld b/core/x86_64/syslinux.ld index bf815c46..70c6e00a 100644 --- a/core/x86_64/syslinux.ld +++ b/core/x86_64/syslinux.ld @@ -255,10 +255,9 @@ SECTIONS . = 0x100000; __pm_code_start = .; + __vma_to_lma = __pm_code_lma - __pm_code_start; - __text_vma = .; - __text_lma = __pm_code_lma; - .text : AT(__text_lma) { + .text : AT(ADDR(.text) + __vma_to_lma) { FILL(0x90909090) __text_start = .; *(.text) @@ -266,106 +265,68 @@ SECTIONS __text_end = .; } - . = ALIGN(32); - - __rodata_vma = .; - __rodata_lma = __rodata_vma + __text_lma - __text_vma; - .rodata : AT(__rodata_lma) { + .rodata : AT(ADDR(.rodata) + __vma_to_lma) { __rodata_start = .; *(.rodata) *(.rodata.*) __rodata_end = .; } - . = ALIGN(4); - - __ctors_vma = .; - __ctors_lma = __ctors_vma + __text_lma - __text_vma; - .ctors : AT(__ctors_lma) { + .ctors : AT(ADDR(.ctors) + __vma_to_lma) { __ctors_start = .; KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) __ctors_end = .; } - __dtors_vma = .; - __dtors_lma = __dtors_vma + __text_lma - __text_vma; - .dtors : AT(__dtors_lma) { + .dtors : AT(ADDR(.dtors) + __vma_to_lma) { __dtors_start = .; KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) __dtors_end = .; } - . = ALIGN(4); - - __dynsym_vma = .; - __dynsym_lma = __dynsym_vma + __text_lma - __text_vma; - .dynsym : AT(__dynsym_lma) { + .dynsym : AT(ADDR(.dynsym) + __vma_to_lma) { __dynsym_start = .; *(.dynsym) __dynsym_end = .; } __dynsym_len = __dynsym_end - __dynsym_start; - . = ALIGN(4); - - __dynstr_vma = .; - __dynstr_lma = __dynstr_vma + __text_lma - __text_vma; - .dynstr : AT(__dynstr_lma) { + .dynstr : AT(ADDR(.dynstr) + __vma_to_lma) { __dynstr_start = .; *(.dynstr) __dynstr_end = .; } __dynstr_len = __dynstr_end - __dynstr_start; - . = ALIGN(4); - - __gnu_hash_vma = .; - __gnu_hash_lma = __gnu_hash_vma + __text_lma - __text_vma; - .gnu.hash : AT(__gnu_hash_lma) { + .gnu.hash : AT(ADDR(.gnu.hash) + __vma_to_lma) { __gnu_hash_start = .; *(.gnu.hash) __gnu_hash_end = .; } - . = ALIGN(4); - - __dynlink_vma = .; - __dynlink_lma = __dynlink_vma + __text_lma - __text_vma; - .dynlink : AT(__dynlink_lma) { + .dynlink : AT(ADDR(.dynlink) + __vma_to_lma) { __dynlink_start = .; *(.dynlink) __dynlink_end = .; } - . = ALIGN(4); - - __got_vma = .; - __got_lma = __got_vma + __text_lma - __text_vma; - .got : AT(__got_lma) { + .got : AT(ADDR(.got) + __vma_to_lma) { __got_start = .; KEEP (*(.got.plt)) KEEP (*(.got)) __got_end = .; } - . = ALIGN(4); - - __dynamic_vma = .; - __dynamic_lma = __dynamic_vma + __text_lma - __text_vma; - .dynamic : AT(__dynamic_lma) { + .dynamic : AT(ADDR(.dynamic) + __vma_to_lma) { __dynamic_start = .; *(.dynamic) __dynamic_end = .; } - . = ALIGN(32); - - __data_vma = .; - __data_lma = __data_vma + __text_lma - __text_vma; - .data : AT(__data_lma) { + .data : AT(ADDR(.data) + __vma_to_lma) { __data_start = .; *(.data) *(.data.*) -- 2.13.3 ================================================ FILE: boot/syslinux/0010-core-Clean-up-the-i386-bios-build.patch ================================================ From a14b1b3d3e375d2e8af8804171ef5e52574dbb2a Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Tue, 9 Feb 2016 18:15:50 -0800 Subject: [PATCH] core: Clean up the i386-bios build Remove symbols and data structures not used in the i386-bios build, and clean up the linker script so that most internal symbols are HIDDEN. Signed-off-by: H. Peter Anvin Upstream: ff859050fa4e6535cae098dc35d88a265466448d This patch fixes the following build failure with i386 binutils 2.28.1: /builds/arnout/buildroot/output/host/bin/i586-buildroot-linux-uclibc-ld -Bsymbolic -pie -E --hash-style=gnu -T /builds/arnout/buildroot/output/build/syslinux-6.03/core/i386/syslinux.ld -M -o ldlinux.elf ldlinux.o \ --start-group libcom32.a --whole-archive /builds/arnout/buildroot/output/build/syslinux-6.03/bios/com32/lib/libcom32core.a libldlinux.a --end-group -N --no-omagic \ > ldlinux.map /builds/arnout/buildroot/output/host/bin/i586-buildroot-linux-uclibc-ld: ldlinux.elf: Not enough room for program headers, try linking with -N /builds/arnout/buildroot/output/host/bin/i586-buildroot-linux-uclibc-ld: final link failed: Bad value /builds/arnout/buildroot/output/build/syslinux-6.03/core/Makefile:167: recipe for target 'ldlinux.elf' failed Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- core/extern.inc | 17 +-- core/i386/syslinux.ld | 287 +++++++++++++++++++++++++------------------------- core/layout.inc | 11 -- 3 files changed, 143 insertions(+), 172 deletions(-) diff --git a/core/extern.inc b/core/extern.inc index af8eb04c..ce4abfab 100644 --- a/core/extern.inc +++ b/core/extern.inc @@ -12,27 +12,17 @@ ; hello.c extern hello - ;abort.c - extern abort_load_new - ; elflink/load_env32.c extern load_env32, pm_env32_run - ; memscan.c - extern highmem_init - - extern linux_kernel - extern mp1, mp2, mp3, mp4, mp5 - extern hexdump, mydump + extern hexdump extern mem_init ; fs.c - extern pm_fs_init, pm_searchdir, getfssec, getfsbytes - extern pm_mangle_name, pm_load_config - extern pm_open_file, pm_close_file + extern pm_fs_init extern SectorSize, SectorShift ; chdir.c @@ -41,9 +31,6 @@ ; readdir.c extern opendir, readdir, closedir - ; newconfig.c - extern pm_is_config_file - ; idle.c extern __idle diff --git a/core/i386/syslinux.ld b/core/i386/syslinux.ld index 92b75b11..39198d75 100644 --- a/core/i386/syslinux.ld +++ b/core/i386/syslinux.ld @@ -1,7 +1,7 @@ /* ----------------------------------------------------------------------- * * Copyright 2008-2009 H. Peter Anvin - All Rights Reserved - * Copyright 2009 Intel Corporation; author: H. Peter Anvin + * Copyright 2009-2016 Intel Corporation; author: H. Peter Anvin * * 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 @@ -12,7 +12,7 @@ * ----------------------------------------------------------------------- */ /* - * Linker script for the SYSLINUX core + * Linker script for the SYSLINUX core when built for i386-bios */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") @@ -26,7 +26,7 @@ SECTIONS { /* Prefix structure for the compression program */ . = 0; - __module_start = .; + HIDDEN(__module_start = ABSOLUTE(.)); .prefix : { *(.prefix) } @@ -35,81 +35,82 @@ SECTIONS . = 0x1000; .earlybss (NOLOAD) : { - __earlybss_start = .; + HIDDEN(__earlybss_start = .); *(.earlybss) - __earlybss_end = .; + HIDDEN(__earlybss_end = .); } - __earlybss_len = ABSOLUTE(__earlybss_end) - ABSOLUTE(__earlybss_start); - __earlybss_dwords = (__earlybss_len + 3) >> 2; + HIDDEN(__earlybss_len = ABSOLUTE(__earlybss_end) - ABSOLUTE(__earlybss_start)); + HIDDEN(__earlybss_dwords = (__earlybss_len + 3) >> 2); . = ALIGN(4); .bss16 (NOLOAD) : { - __bss16_start = .; + HIDDEN(__bss16_start = .); *(.bss16) - __bss16_end = .; + HIDDEN(__bss16_end = .); } - __bss16_len = ABSOLUTE(__bss16_end) - ABSOLUTE(__bss16_start); - __bss16_dwords = (__bss16_len + 3) >> 2; + HIDDEN(__bss16_len = ABSOLUTE(__bss16_end) - ABSOLUTE(__bss16_start)); + HIDDEN(__bss16_dwords = (__bss16_len + 3) >> 2); . = ALIGN(4); .config : AT (__config_lma) { - __config_start = .; + HIDDEN(__config_start = .); *(.config) - __config_end = .; + HIDDEN(__config_end = .); } - __config_len = ABSOLUTE(__config_end) - ABSOLUTE(__config_start); - __config_dwords = (__config_len + 3) >> 2; + HIDDEN(__config_len = ABSOLUTE(__config_end) - ABSOLUTE(__config_start)); + HIDDEN(__config_dwords = (__config_len + 3) >> 2); /* Generated and/or copied code */ . = ALIGN(128); /* Minimum separation from mutable data */ .replacestub : AT (__replacestub_lma) { - __replacestub_start = .; + HIDDEN(__replacestub_start = .); *(.replacestub) - __replacestub_end = .; + HIDDEN(__replacestub_end = .); } - __replacestub_len = ABSOLUTE(__replacestub_end) - ABSOLUTE(__replacestub_start); - __replacestub_dwords = (__replacestub_len + 3) >> 2; + HIDDEN(__replacestub_len = ABSOLUTE(__replacestub_end) - ABSOLUTE(__replacestub_start)); + HIDDEN(__replacestub_dwords = (__replacestub_len + 3) >> 2); . = ALIGN(16); - __gentextnr_lma = .; + HIDDEN(__gentextnr_lma = .); .gentextnr : AT(__gentextnr_lma) { - __gentextnr_start = .; + HIDDEN(__gentextnr_start = .); *(.gentextnr) - __gentextnr_end = .; + HIDDEN(__gentextnr_end = .); } - __gentextnr_len = ABSOLUTE(__gentextnr_end) - ABSOLUTE(__gentextnr_start); - __gentextnr_dwords = (__gentextnr_len + 3) >> 2; + HIDDEN(__gentextnr_len = ABSOLUTE(__gentextnr_end) - ABSOLUTE(__gentextnr_start)); + HIDDEN(__gentextnr_dwords = (__gentextnr_len + 3) >> 2); . = STACK_BASE; .stack16 : AT(STACK_BASE) { - __stack16_start = .; + HIDDEN(__stack16_start = .); . += STACK_LEN; - __stack16_end = .; + HIDDEN(__stack16_end = .); } - __stack16_len = ABSOLUTE(__stack16_end) - ABSOLUTE(__stack16_start); - __stack16_dwords = (__stack16_len + 3) >> 2; + HIDDEN(__stack16_len = ABSOLUTE(__stack16_end) - ABSOLUTE(__stack16_start)); + HIDDEN(__stack16_dwords = (__stack16_len + 3) >> 2); /* Initialized sections */ . = 0x7c00; .init : { FILL(0x90909090) - __init_start = .; + HIDDEN(__init_start = .); *(.init) - __init_end = .; + HIDDEN(__init_end = .); } - __init_len = ABSOLUTE(__init_end) - ABSOLUTE(__init_start); - __init_dwords = (__init_len + 3) >> 2; + HIDDEN(__init_len = ABSOLUTE(__init_end) - ABSOLUTE(__init_start)); + HIDDEN(__init_dwords = (__init_len + 3) >> 2); + . = ALIGN(4); .text16 : { FILL(0x90909090) - __text16_start = .; + HIDDEN(__text16_start = .); *(.text16) - __text16_end = .; + HIDDEN(__text16_end = .); } - __text16_len = ABSOLUTE(__text16_end) - ABSOLUTE(__text16_start); - __text16_dwords = (__text16_len + 3) >> 2; + HIDDEN(__text16_len = ABSOLUTE(__text16_end) - ABSOLUTE(__text16_start)); + HIDDEN(__text16_dwords = (__text16_len + 3) >> 2); /* * .textnr is used for 32-bit code that is used on the code @@ -118,99 +119,92 @@ SECTIONS . = ALIGN(16); .textnr : { FILL(0x90909090) - __textnr_start = .; + HIDDEN(__textnr_start = .); *(.textnr) - __textnr_end = .; + HIDDEN(__textnr_end = .); } - __textnr_len = ABSOLUTE(__textnr_end) - ABSOLUTE(__textnr_start); - __textnr_dwords = (__textnr_len + 3) >> 2; + HIDDEN(__textnr_len = ABSOLUTE(__textnr_end) - ABSOLUTE(__textnr_start)); + HIDDEN(__textnr_dwords = (__textnr_len + 3) >> 2); . = ALIGN(16); - __bcopyxx_start = .; + HIDDEN(__bcopyxx_start = .); .bcopyxx.text : { FILL(0x90909090) - __bcopyxx_text_start = .; + HIDDEN(__bcopyxx_text_start = .); *(.bcopyxx.text) - __bcopyxx_text_end = .; + HIDDEN(__bcopyxx_text_end = .); } - __bcopyxx_text_len = ABSOLUTE(__bcopyxx_text_end) - ABSOLUTE(__bcopyxx_text_start); - __bcopyxx_text_dwords = (__bcopyxx_text_len + 3) >> 2; + HIDDEN(__bcopyxx_text_len = ABSOLUTE(__bcopyxx_text_end) - ABSOLUTE(__bcopyxx_text_start)); + HIDDEN(__bcopyxx_text_dwords = (__bcopyxx_text_len + 3) >> 2); .bcopyxx.data : { - __bcopyxx_data_start = .; + HIDDEN(__bcopyxx_data_start = .); *(.bcopyxx.text) - __bcopyxx_data_end = .; + HIDDEN(__bcopyxx_data_end = .); } - __bcopyxx_data_len = ABSOLUTE(__bcopyxx_data_end) - ABSOLUTE(__bcopyxx_data_start); - __bcopyxx_data_dwords = (__bcopyxx_data_len + 3) >> 2; + HIDDEN(__bcopyxx_data_len = ABSOLUTE(__bcopyxx_data_end) - ABSOLUTE(__bcopyxx_data_start)); + HIDDEN(__bcopyxx_data_dwords = (__bcopyxx_data_len + 3) >> 2); - __bcopyxx_end = .; - __bcopyxx_len = ABSOLUTE(__bcopyxx_end) - ABSOLUTE(__bcopyxx_start); - __bcopyxx_dwords = (__bcopyxx_len + 3) >> 2; + HIDDEN(__bcopyxx_end = .); + HIDDEN(__bcopyxx_len = ABSOLUTE(__bcopyxx_end) - ABSOLUTE(__bcopyxx_start)); + HIDDEN(__bcopyxx_dwords = (__bcopyxx_len + 3) >> 2); . = ALIGN(4); .data16 : { - __data16_start = .; + HIDDEN(__data16_start = .); *(.data16) - __data16_end = .; + HIDDEN(__data16_end = .); } - __data16_len = ABSOLUTE(__data16_end) - ABSOLUTE(__data16_start); - __data16_dwords = (__data16_len + 3) >> 2; + HIDDEN(__data16_len = ABSOLUTE(__data16_end) - ABSOLUTE(__data16_start)); + HIDDEN(__data16_dwords = (__data16_len + 3) >> 2); . = ALIGN(4); - __config_lma = .; + HIDDEN(__config_lma = ABSOLUTE(.)); . += SIZEOF(.config); . = ALIGN(4); - __replacestub_lma = .; + HIDDEN(__replacestub_lma = ABSOLUTE(.)); . += SIZEOF(.replacestub); /* The 32-bit code loads above the non-progbits sections */ . = ALIGN(16); - __pm_code_lma = .; + HIDDEN(__pm_code_lma = ABSOLUTE(.)); - __high_clear_start = .; + HIDDEN(__high_clear_start = .); . = ALIGN(512); .adv (NOLOAD) : { - __adv_start = .; + HIDDEN(__adv_start = .); *(.adv) - __adv_end = .; + HIDDEN(__adv_end = .); } - __adv_len = ABSOLUTE(__adv_end) - ABSOLUTE(__adv_start); - __adv_dwords = (__adv_len + 3) >> 2; + HIDDEN(__adv_len = ABSOLUTE(__adv_end) - ABSOLUTE(__adv_start)); + HIDDEN(__adv_dwords = (__adv_len + 3) >> 2); /* Late uninitialized sections */ . = ALIGN(4); .uibss (NOLOAD) : { - __uibss_start = .; + HIDDEN(__uibss_start = .); *(.uibss) - __uibss_end = .; + HIDDEN(__uibss_end = .); } - __uibss_len = ABSOLUTE(__uibss_end) - ABSOLUTE(__uibss_start); - __uibss_dwords = (__uibss_len + 3) >> 2; + HIDDEN(__uibss_len = ABSOLUTE(__uibss_end) - ABSOLUTE(__uibss_start)); + HIDDEN(__uibss_dwords = (__uibss_len + 3) >> 2); - _end16 = .; - __assert_end16 = ASSERT(_end16 <= 0x10000, "64K overflow"); + HIDDEN(_end16 = .); + HIDDEN(__assert_end16 = ASSERT(_end16 <= 0x10000, "64K overflow")); /* * Special 16-bit segments */ - - . = ALIGN(65536); - .real_mode (NOLOAD) : { - *(.real_mode) - } - real_mode_seg = core_real_mode >> 4; - . = ALIGN(65536); .xfer_buf (NOLOAD) : { *(.xfer_buf) } - xfer_buf_seg = core_xfer_buf >> 4; + HIDDEN(xfer_buf_seg = core_xfer_buf >> 4); /* * The auxilliary data segment is used by the 16-bit code @@ -219,33 +213,33 @@ SECTIONS . = ALIGN(16); .auxseg (NOLOAD) : { - __auxseg_start = .; + HIDDEN(__auxseg_start = .); *(.auxseg) - __auxseg_end = .; + HIDDEN(__auxseg_end = .); } - __auxseg_len = ABSOLUTE(__auxseg_end) - ABSOLUTE(__auxseg_start); - __auxseg_dwords = (__auxseg_len + 3) >> 2; - aux_seg = __auxseg_start >> 4; + HIDDEN(__auxseg_len = ABSOLUTE(__auxseg_end) - ABSOLUTE(__auxseg_start)); + HIDDEN(__auxseg_dwords = (__auxseg_len + 3) >> 2); + HIDDEN(aux_seg = __auxseg_start >> 4); /* * Used to allocate lowmem buffers from 32-bit code */ .lowmem (NOLOAD) : { - __lowmem_start = .; + HIDDEN(__lowmem_start = .); *(.lowmem) - __lowmem_end = .; + HIDDEN(__lowmem_end = .); } - __lowmem_len = ABSOLUTE(__lowmem_end) - ABSOLUTE(__lowmem_start); - __lowmem_dwords = (__lowmem_len + 3) >> 2; + HIDDEN(__lowmem_len = ABSOLUTE(__lowmem_end) - ABSOLUTE(__lowmem_start)); + HIDDEN(__lowmem_dwords = (__lowmem_len + 3) >> 2); - __high_clear_end = .; + HIDDEN(__high_clear_end = .); - __high_clear_len = ABSOLUTE(__high_clear_end) - ABSOLUTE(__high_clear_start); - __high_clear_dwords = (__high_clear_len + 3) >> 2; + HIDDEN(__high_clear_len = ABSOLUTE(__high_clear_end) - ABSOLUTE(__high_clear_start)); + HIDDEN(__high_clear_dwords = (__high_clear_len + 3) >> 2); /* Start of the lowmem heap */ . = ALIGN(16); - __lowmem_heap = .; + HIDDEN(__lowmem_heap = .); /* * 32-bit code. This is a hack for the moment due to the @@ -254,136 +248,137 @@ SECTIONS . = 0x100000; - __pm_code_start = .; - __vma_to_lma = __pm_code_lma - __pm_code_start; + HIDDEN(__pm_code_start = .); + HIDDEN(__vma_to_lma = ABSOLUTE(__pm_code_lma - __pm_code_start)); .text : AT(ADDR(.text) + __vma_to_lma) { FILL(0x90909090) - __text_start = .; + HIDDEN(__text_start = .); *(.text) *(.text.*) - __text_end = .; + HIDDEN(__text_end = .); } .rodata : AT(ADDR(.rodata) + __vma_to_lma) { - __rodata_start = .; + HIDDEN(__rodata_start = .); *(.rodata) *(.rodata.*) - __rodata_end = .; + HIDDEN(__rodata_end = .); } .ctors : AT(ADDR(.ctors) + __vma_to_lma) { - __ctors_start = .; + HIDDEN(__ctors_start = .); KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - __ctors_end = .; + HIDDEN(__ctors_end = .); } .dtors : AT(ADDR(.dtors) + __vma_to_lma) { - __dtors_start = .; + HIDDEN(__dtors_start = .); KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - __dtors_end = .; + HIDDEN(__dtors_end = .); } .dynsym : AT(ADDR(.dynsym) + __vma_to_lma) { - __dynsym_start = .; - *(.dynsym) - __dynsym_end = .; + HIDDEN(__dynsym_start = .); + KEEP (*(.dynsym)) + HIDDEN(__dynsym_end = .); } - __dynsym_len = __dynsym_end - __dynsym_start; + HIDDEN(__dynsym_len = __dynsym_end - __dynsym_start); .dynstr : AT(ADDR(.dynstr) + __vma_to_lma) { - __dynstr_start = .; - *(.dynstr) - __dynstr_end = .; + HIDDEN(__dynstr_start = .); + KEEP (*(.dynstr)) + HIDDEN(__dynstr_end = .); } - __dynstr_len = __dynstr_end - __dynstr_start; + HIDDEN(__dynstr_len = __dynstr_end - __dynstr_start); .gnu.hash : AT(ADDR(.gnu.hash) + __vma_to_lma) { - __gnu_hash_start = .; - *(.gnu.hash) - __gnu_hash_end = .; + HIDDEN(__gnu_hash_start = .); + KEEP (*(.gnu.hash)) + HIDDEN(__gnu_hash_end = .); } .dynlink : AT(ADDR(.dynlink) + __vma_to_lma) { - __dynlink_start = .; - *(.dynlink) - __dynlink_end = .; + HIDDEN(__dynlink_start = .); + KEEP (*(.dynlink)) + HIDDEN(__dynlink_end = .); } .got : AT(ADDR(.got) + __vma_to_lma) { - __got_start = .; - KEEP (*(.got.plt)) + HIDDEN(__got_start = .); KEEP (*(.got)) - __got_end = .; + KEEP (*(.got.plt)) + HIDDEN(__got_end = .); } .dynamic : AT(ADDR(.dynamic) + __vma_to_lma) { - __dynamic_start = .; - *(.dynamic) - __dynamic_end = .; + HIDDEN(__dynamic_start = .); + KEEP (*(.dynamic)) + HIDDEN(__dynamic_end = .); } .data : AT(ADDR(.data) + __vma_to_lma) { - __data_start = .; + HIDDEN(__data_start = .); *(.data) *(.data.*) - __data_end = .; + HIDDEN(__data_end = .); } - __pm_code_end = .; - __pm_code_len = ABSOLUTE(__pm_code_end) - ABSOLUTE(__pm_code_start); - __pm_code_dwords = (__pm_code_len + 3) >> 2; + HIDDEN(__pm_code_end = .); + HIDDEN(__pm_code_len = ABSOLUTE(__pm_code_end) - ABSOLUTE(__pm_code_start)); + HIDDEN(__pm_code_dwords = (__pm_code_len + 3) >> 2); . = ALIGN(128); - __bss_vma = .; - __bss_lma = .; /* Dummy */ + HIDDEN(__bss_vma = .); + HIDDEN(__bss_lma = ABSOLUTE(.)); /* Dummy */ .bss (NOLOAD) : AT (__bss_lma) { - __bss_start = .; + HIDDEN(__bss_start = .); *(.bss) *(.bss.*) *(COMMON) - __bss_end = .; + HIDDEN(__bss_end = .); } - __bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start); - __bss_dwords = (__bss_len + 3) >> 2; + HIDDEN(__bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start)); + HIDDEN(__bss_dwords = (__bss_len + 3) >> 2); /* Very large objects which don't need to be zeroed */ - __hugebss_vma = .; - __hugebss_lma = .; /* Dummy */ + HIDDEN(__hugebss_vma = .); + HIDDEN(__hugebss_lma = ABSOLUTE(.)); /* Dummy */ .hugebss (NOLOAD) : AT (__hugebss_lma) { - __hugebss_start = .; + HIDDEN(__hugebss_start = .); *(.hugebss) *(.hugebss.*) - __hugebss_end = .; + HIDDEN(__hugebss_end = .); } - __hugebss_len = ABSOLUTE(__hugebss_end) - ABSOLUTE(__hugebss_start); - __hugebss_dwords = (__hugebss_len + 3) >> 2; + HIDDEN(__hugebss_len = ABSOLUTE(__hugebss_end) - ABSOLUTE(__hugebss_start)); + HIDDEN(__hugebss_dwords = (__hugebss_len + 3) >> 2); /* XXX: This stack should be unified with the COM32 stack */ - __stack_vma = .; - __stack_lma = .; /* Dummy */ + HIDDEN(__stack_vma = .); + HIDDEN(__stack_lma = ABSOLUTE(.)); /* Dummy */ .stack (NOLOAD) : AT(__stack_lma) { - __stack_start = .; + HIDDEN(__stack_start = .); *(.stack) - __stack_end = .; + HIDDEN(__stack_end = .); } - __stack_len = ABSOLUTE(__stack_end) - ABSOLUTE(__stack_start); - __stack_dwords = (__stack_len + 3) >> 2; + HIDDEN(__stack_len = ABSOLUTE(__stack_end) - ABSOLUTE(__stack_start)); + HIDDEN(__stack_dwords = (__stack_len + 3) >> 2); - _end = .; + HIDDEN(_end = .); /* COM32R and kernels are loaded after our own PM code */ . = ALIGN(65536); - free_high_memory = .; + HIDDEN(free_high_memory = .); /* Stuff we don't need... */ /DISCARD/ : { *(.eh_frame) + *(.interp) } } diff --git a/core/layout.inc b/core/layout.inc index 53ca783d..635df537 100644 --- a/core/layout.inc +++ b/core/layout.inc @@ -139,17 +139,6 @@ serial_buf_size equ 4096 ; Should be a power of 2 core_xfer_buf resb 65536 ; -; Segment for the real mode code (needed as long as we have a in-kernel -; loader and/or COM16 support. -; One symbol for the segment number, one for the absolute address -; - extern real_mode_seg - section .real_mode write nobits align=65536 - global core_real_mode:data hidden -core_real_mode resb 65536 -comboot_seg equ real_mode_seg ; COMBOOT image loading zone - -; ; At the very end, the lowmem heap ; extern __lowmem_heap -- 2.13.3 ================================================ FILE: boot/syslinux/0011-extlinux-Use-the-host-toolchain-to-build.patch ================================================ From 4df2e7c0ae84bfbdba0ed285c0664aa089b38b7e Mon Sep 17 00:00:00 2001 From: Carlos Santos Date: Sat, 30 Sep 2017 19:49:55 -0300 Subject: [PATCH] extlinux: Use the host toolchain to build. It is meant to run on the host machine, hence must be built using the host toolchain. Signed-off-by: Carlos Santos --- extlinux/Makefile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/extlinux/Makefile b/extlinux/Makefile index 02d1db51..5c4baa5a 100644 --- a/extlinux/Makefile +++ b/extlinux/Makefile @@ -18,9 +18,9 @@ include $(MAKEDIR)/syslinux.mk OPTFLAGS = -g -Os INCLUDES = -I$(SRC) -I$(objdir) -I$(SRC)/../libinstaller -CFLAGS = $(GCCWARN) -Wno-sign-compare -D_FILE_OFFSET_BITS=64 \ +CFLAGS = $(CFLAGS_FOR_BUILD) $(GCCWARN) -Wno-sign-compare -D_FILE_OFFSET_BITS=64 \ $(OPTFLAGS) $(INCLUDES) -LDFLAGS = +LDFLAGS = $(LDFLAGS_FOR_BUILD) SRCS = main.c \ mountinfo.c \ @@ -52,16 +52,16 @@ spotless: clean installer: extlinux extlinux: $(OBJS) - $(CC) $(LDFLAGS) -o $@ $^ + $(CC_FOR_BUILD) $(LDFLAGS) -o $@ $^ strip: $(STRIP) extlinux %.o: %.c - $(CC) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $< + $(CC_FOR_BUILD) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $< %.i: %.c - $(CC) $(UMAKEDEPS) $(CFLAGS) -E -o $@ $< + $(CC_FOR_BUILD) $(UMAKEDEPS) $(CFLAGS) -E -o $@ $< %.s: %.c - $(CC) $(UMAKEDEPS) $(CFLAGS) -S -o $@ $< + $(CC_FOR_BUILD) $(UMAKEDEPS) $(CFLAGS) -S -o $@ $< -include .*.d -- 2.13.5 ================================================ FILE: boot/syslinux/0012-pull-in-sys-sysmacros-h-for-major-minor-makedev.patch ================================================ From 1a74985b2a404639b08882c57f3147229605dfd5 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 19 Apr 2016 06:50:31 -0400 Subject: [PATCH] extlinux: pull in sys/sysmacros.h for major/minor/makedev These functions are defined in sys/sysmacros.h, so add the include to main.c. This is already handled correctly in mountinfo.c. Otherwise we get build failures like: main.o: In function 'find_device_sysfs': extlinux/main.c:1131: undefined reference to 'minor' Signed-off-by: Mike Frysinger Signed-off-by: Gene Cumm Signed-off-by: Alexander Sverdlin --- extlinux/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/extlinux/main.c b/extlinux/main.c index a7ebd49..ebff7ea 100644 --- a/extlinux/main.c +++ b/extlinux/main.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include -- 2.10.5.GIT ================================================ FILE: boot/syslinux/0013-Fix-build-with-gnu-efi-version-3.0.9.patch ================================================ From 44a1b42e561b9a257209300e2860b901b100cc17 Mon Sep 17 00:00:00 2001 From: Carlos Santos Date: Tue, 26 Feb 2019 08:07:22 -0300 Subject: [PATCH] Fix build with gnu-efi version 3.0.9 Adapt a patch already applied upstream to prevent multiple definitions of 'memset' and 'memcpy'. Signed-off-by: Carlos Santos (adapted from commit 363d61c4f112b972649b19d67e96b9321f738f00) --- mk/lib.mk | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mk/lib.mk b/mk/lib.mk index ceb95bd0..c9b6eaf3 100644 --- a/mk/lib.mk +++ b/mk/lib.mk @@ -186,9 +186,9 @@ MINLIBOBJS = \ # $(LIBVESA_OBJS) CORELIBOBJS = \ - memcpy.o memset.o memcmp.o printf.o strncmp.o vfprintf.o \ + memcmp.o printf.o strncmp.o vfprintf.o \ strlen.o vsnprintf.o snprintf.o stpcpy.o strcmp.o strdup.o \ - strcpy.o strncpy.o setjmp.o fopen.o fread.o fread2.o puts.o \ + strcpy.o strncpy.o fopen.o fread.o fread2.o puts.o \ strtoul.o strntoumax.o strcasecmp.o \ sprintf.o strlcat.o strchr.o strlcpy.o strncasecmp.o ctypes.o \ fputs.o fwrite2.o fwrite.o fgetc.o fclose.o lmalloc.o \ @@ -203,6 +203,11 @@ CORELIBOBJS = \ $(LIBENTRY_OBJS) \ $(LIBMODULE_OBJS) +ifndef EFI_BUILD +# For EFI, these are part of gnu-efi +CORELIBOBJS += setjmp.o memcpy.o memset.o +endif + LDFLAGS = -m elf_$(ARCH) --hash-style=gnu -T $(com32)/lib/$(ARCH)/elf.ld .SUFFIXES: .c .o .a .so .lo .i .S .s .ls .ss .lss -- 2.14.5 ================================================ FILE: boot/syslinux/0014-Fix-build-with-binutils-note-gnu-property-section.patch ================================================ From beb526ca925983c7da229043790ecd552d910650 Mon Sep 17 00:00:00 2001 From: Christian Stewart Date: Thu, 4 Apr 2019 23:24:31 -0700 Subject: [PATCH] Fix build with binutils note gnu property section This fixes the following build error with newer binutils: objcopy -O binary mbr.elf mbr.bin perl /build/syslinux/src/syslinux/mbr/checksize.pl mbr.bin mbr.bin: too big (452 > 440) Corresponding bug reports: - https://bugs.archlinux.org/task/60405 - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906414 Strips the .note.gnu.property in the linker scripts for the MBRs. Signed-off-by: Christian Stewart --- mbr/i386/mbr.ld | 1 + mbr/x86_64/mbr.ld | 1 + 2 files changed, 2 insertions(+) diff --git a/mbr/i386/mbr.ld b/mbr/i386/mbr.ld index d14ba802..53683461 100644 --- a/mbr/i386/mbr.ld +++ b/mbr/i386/mbr.ld @@ -70,4 +70,5 @@ SECTIONS .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /DISCARD/ : { *(.note.GNU-stack) } + /DISCARD/ : { *(.note.gnu.property) } } diff --git a/mbr/x86_64/mbr.ld b/mbr/x86_64/mbr.ld index ae27d49a..b8c0d895 100644 --- a/mbr/x86_64/mbr.ld +++ b/mbr/x86_64/mbr.ld @@ -69,4 +69,5 @@ SECTIONS .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /DISCARD/ : { *(.note.GNU-stack) } + /DISCARD/ : { *(.note.gnu.property) } } -- 2.21.0 ================================================ FILE: boot/syslinux/0015-efi-main.c-include-efisetjmp.h.patch ================================================ From 7d68fa68cd9f2987bd85339f3391913a8b0e58c7 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 24 Mar 2020 10:21:27 +0100 Subject: [PATCH] efi/main.c: include MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Building syslinux against gnu-efi 3.0.10 currently fails with: syslinux/efi/main.c:33:8: error: unknown type name ‘jmp_buf’ 33 | static jmp_buf load_error_buf; | ^~~~~~~ syslinux/efi/main.c: In function ‘local_boot’: syslinux/efi/main.c:189:5: warning: implicit declaration of function ‘longjmp’ [-Wimplicit-function-declaration] 189 | longjmp(&load_error_buf, 1); | ^~~~~~~ syslinux/efi/main.c: In function ‘build_gdt’: syslinux/efi/main.c:907:75: warning: taking address of packed member of ‘struct dt_desc’ may result in an unaligned pointer value [-Waddress-of-packed-member] 907 | status = emalloc(gdt.limit, __SIZEOF_POINTER__ , (EFI_PHYSICAL_ADDRESS *)&gdt.base); | ^~~~~~~~~ syslinux/efi/main.c: In function ‘efi_main’: syslinux/efi/main.c:1390:7: warning: implicit declaration of function ‘setjmp’ [-Wimplicit-function-declaration] 1390 | if (!setjmp(&load_error_buf)) | ^~~~~~ make[3]: *** [syslinux/mk/efi.mk:63: main.o] Error 1 This is due to gnu-efi commit 486ba3c3bdd147b7d98159b9e650be60bce0f027 ("Do not include efisetjmp.h on efi.h"), in which they state: Do not include efisetjmp.h on efi.h People than really want to use efisetjmp implementation can include the header on their own. Signed-off-by: leo So we act as specified, and include from efi/main.c. Signed-off-by: Thomas Petazzoni Upstream: https://www.syslinux.org/archives/2020-March/026621.html --- efi/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/efi/main.c b/efi/main.c index 6a748412..e924cfb1 100644 --- a/efi/main.c +++ b/efi/main.c @@ -12,6 +12,7 @@ #include #include "efi.h" +#include #include "fio.h" #include "version.h" #include "efi_pxe.h" -- 2.25.1 ================================================ FILE: boot/syslinux/0016-Workaround-multiple-definition-of-symbol-errors.patch ================================================ From 16f293d67eace501c98494976030f4319778ebf5 Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Wed, 13 May 2020 08:02:27 -0500 Subject: [PATCH] Workaround multiple definition of symbol errors [From https://src.fedoraproject.org/rpms/syslinux/raw/rawhide/f/0005-Workaround-multiple-definition-of-symbol-errors.patch plus adding '-z muldefs' for gpxe] Signed-off-by: Peter Seiderer --- com32/cmenu/Makefile | 2 +- com32/elflink/ldlinux/Makefile | 2 +- com32/gpllib/Makefile | 2 +- com32/hdt/Makefile | 2 +- core/Makefile | 2 +- dos/Makefile | 2 +- efi/Makefile | 2 +- gpxe/src/arch/i386/Makefile | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/com32/cmenu/Makefile b/com32/cmenu/Makefile index 6bb52316..66cdd649 100644 --- a/com32/cmenu/Makefile +++ b/com32/cmenu/Makefile @@ -49,7 +49,7 @@ makeoutputdirs: @mkdir -p $(OBJ)/libmenu libmenu/libmenu.elf: $(LIBMENU) - $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) \ + $(LD) -shared $(LDFLAGS) -z muldefs -soname $(patsubst %.elf,%.c32,$(@F)) \ -o $@ $^ tidy dist: diff --git a/com32/elflink/ldlinux/Makefile b/com32/elflink/ldlinux/Makefile index d948da43..67434a1f 100644 --- a/com32/elflink/ldlinux/Makefile +++ b/com32/elflink/ldlinux/Makefile @@ -33,7 +33,7 @@ endif all: $(BTARGET) ldlinux_lnx.a ldlinux.elf : $(OBJS) - $(LD) $(LDFLAGS) -soname $(SONAME) -o $@ $^ $(LIBS) + $(LD) $(LDFLAGS) -z muldefs -soname $(SONAME) -o $@ $^ $(LIBS) LNXCFLAGS += -D__export='__attribute__((visibility("default")))' LNXLIBOBJS = get_key.lo diff --git a/com32/gpllib/Makefile b/com32/gpllib/Makefile index e3e30d76..17520a1e 100644 --- a/com32/gpllib/Makefile +++ b/com32/gpllib/Makefile @@ -24,7 +24,7 @@ makeoutputdirs: $(addprefix $(OBJ),$(sort $(dir $(LIBOBJS)))),$(b)) libgpl.elf : $(LIBOBJS) - $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^ + $(LD) -shared $(LDFLAGS) -z muldefs -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^ tidy dist clean: find . \( -name \*.o -o -name .\*.d -o -name \*.tmp \) -print0 | \ diff --git a/com32/hdt/Makefile b/com32/hdt/Makefile index 80f2d0a0..8509cd96 100644 --- a/com32/hdt/Makefile +++ b/com32/hdt/Makefile @@ -52,7 +52,7 @@ QEMU ?= qemu-kvm all: $(MODULES) $(TESTFILES) hdt.elf : $(OBJS) $(LIBS) $(C_LIBS) - $(LD) $(LDFLAGS) -o $@ $^ + $(LD) $(LDFLAGS) -z muldefs -o $@ $^ memtest: -[ ! -f $(FLOPPY_DIR)/$(MEMTEST) ] && $(WGET) $(MEMTEST_URL) -O $(FLOPPY_DIR)/$(MEMTEST) diff --git a/core/Makefile b/core/Makefile index ad0acb5a..3bee4dc9 100644 --- a/core/Makefile +++ b/core/Makefile @@ -164,7 +164,7 @@ AUXLIBS = libisolinux.a libisolinux-debug.a libldlinux.a \ LDSCRIPT = $(SRC)/$(ARCH)/syslinux.ld %.elf: %.o $(LIBDEP) $(LDSCRIPT) $(AUXLIBS) - $(LD) $(LDFLAGS) -Bsymbolic $(LD_PIE) -E --hash-style=gnu -T $(LDSCRIPT) -M -o $@ $< \ + $(LD) $(LDFLAGS) -z muldefs -Bsymbolic $(LD_PIE) -E --hash-style=gnu -T $(LDSCRIPT) -M -o $@ $< \ --start-group $(LIBS) $(subst $(*F).elf,lib$(*F).a,$@) --end-group \ > $(@:.elf=.map) $(OBJDUMP) -h $@ > $(@:.elf=.sec) diff --git a/dos/Makefile b/dos/Makefile index b9c337d5..2af87346 100644 --- a/dos/Makefile +++ b/dos/Makefile @@ -19,7 +19,7 @@ include $(MAKEDIR)/embedded.mk CFLAGS += -D__MSDOS__ -mregparm=3 -DREGPARM=3 # CFLAGS += -DDEBUG -LDFLAGS = -T $(SRC)/dosexe.ld +LDFLAGS = -T $(SRC)/dosexe.ld -z muldefs OPTFLAGS = -g INCLUDES = -include code16.h -nostdinc -iwithprefix include \ -I$(SRC) -I$(SRC)/.. -I$(SRC)/../libfat \ diff --git a/efi/Makefile b/efi/Makefile index d24d16db..7c714ebf 100644 --- a/efi/Makefile +++ b/efi/Makefile @@ -70,7 +70,7 @@ $(OBJS): subdirs BTARGET = syslinux.efi syslinux.so: $(OBJS) $(CORE_OBJS) $(LIB_OBJS) - $(LD) $(LDFLAGS) --strip-debug -o $@ $^ -lgnuefi -lefi + $(LD) $(LDFLAGS) -z muldefs --strip-debug -o $@ $^ -lgnuefi -lefi # We need to rename the .hash section because the EFI firmware # linker really doesn't like it. diff --git a/gpxe/src/arch/i386/Makefile b/gpxe/src/arch/i386/Makefile index dd8da802..be1d00ff 100644 --- a/gpxe/src/arch/i386/Makefile +++ b/gpxe/src/arch/i386/Makefile @@ -55,7 +55,7 @@ ASFLAGS += --32 ifeq ($(HOST_OS),FreeBSD) LDFLAGS += -m elf_i386_fbsd else -LDFLAGS += -m elf_i386 +LDFLAGS += -z muldefs -m elf_i386 endif # EFI requires -fshort-wchar, and nothing else currently uses wchar_t -- 2.30.1 ================================================ FILE: boot/syslinux/0017-Replace-builtin-strlen-that-appears-to-get-optimized.patch ================================================ From 698a6ce88524b727d265b204d648e78d8acb485c Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Wed, 13 May 2020 11:58:37 -0500 Subject: [PATCH] Replace builtin strlen that appears to get optimized away [From https://src.fedoraproject.org/rpms/syslinux/raw/rawhide/f/0006-Replace-builtin-strlen-that-appears-to-get-optimized.patch] Signed-off-by: Peter Seiderer --- dos/string.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/dos/string.h b/dos/string.h index f648de2d..407d0233 100644 --- a/dos/string.h +++ b/dos/string.h @@ -5,12 +5,22 @@ #ifndef _STRING_H #define _STRING_H +#include + /* Standard routines */ #define memcpy(a,b,c) __builtin_memcpy(a,b,c) #define memmove(a,b,c) __builtin_memmove(a,b,c) #define memset(a,b,c) __builtin_memset(a,b,c) #define strcpy(a,b) __builtin_strcpy(a,b) -#define strlen(a) __builtin_strlen(a) +#define strlen(a) inline_strlen(a) + +/* replacement for builtin strlen that appears to get optimized away */ +static inline size_t inline_strlen(const char *str) +{ + size_t l; + for (l = 0; *str++; l++); + return l; +} /* This only returns true or false */ static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n) -- 2.30.1 ================================================ FILE: boot/syslinux/Config.in ================================================ config BR2_TARGET_SYSLINUX bool "syslinux" depends on BR2_i386 || BR2_x86_64 # 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 select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help The syslinux bootloader for x86 systems. This includes: syslinux, pxelinux, extlinux. http://syslinux.org if BR2_TARGET_SYSLINUX config BR2_TARGET_SYSLINUX_LEGACY_BIOS bool config BR2_TARGET_SYSLINUX_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 "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 "install mbr" select BR2_TARGET_SYSLINUX_LEGACY_BIOS help Install the legacy-BIOS 'mbr' image, to boot off a local MBR-partition (e.g. prepared with 'extlinux' or 'syslinux'). config BR2_TARGET_SYSLINUX_EFI bool "install efi" depends on BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS select BR2_PACKAGE_GNU_EFI help Install the 'efi' image, to boot from an EFI environment. if BR2_TARGET_SYSLINUX_LEGACY_BIOS config BR2_TARGET_SYSLINUX_C32 string "modules to install" help Enter a space-separated list of .c32 modules to install. Leave empty to install no module. endif # BR2_TARGET_SYSLINUX_LEGACY_BIOS endif # BR2_TARGET_SYSLINUX ================================================ FILE: boot/syslinux/syslinux.hash ================================================ # From https://www.kernel.org/pub/linux/utils/boot/syslinux/sha256sums.asc sha256 26d3986d2bea109d5dc0e4f8c4822a459276cf021125e8c9f23c3cca5d8c850e syslinux-6.03.tar.xz # Locally computed sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING ================================================ FILE: boot/syslinux/syslinux.mk ================================================ ################################################################################ # # syslinux to make target msdos/iso9660 filesystems bootable # ################################################################################ SYSLINUX_VERSION = 6.03 SYSLINUX_SOURCE = syslinux-$(SYSLINUX_VERSION).tar.xz SYSLINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/boot/syslinux SYSLINUX_LICENSE = GPL-2.0+ SYSLINUX_LICENSE_FILES = COPYING SYSLINUX_INSTALL_IMAGES = YES # host-util-linux needed to provide libuuid when building host tools SYSLINUX_DEPENDENCIES = \ host-nasm \ host-python3 \ host-upx \ host-util-linux \ util-linux ifeq ($(BR2_TARGET_SYSLINUX_LEGACY_BIOS),y) SYSLINUX_TARGET += bios endif # The syslinux build system must be forced to use Buildroot's gnu-efi # package by setting EFIINC, LIBDIR and LIBEFI. Otherwise, it uses its # own copy of gnu-efi included in syslinux's sources since 6.03 # release. ifeq ($(BR2_TARGET_SYSLINUX_EFI),y) ifeq ($(BR2_ARCH_IS_64),y) SYSLINUX_EFI_BITS = efi64 else SYSLINUX_EFI_BITS = efi32 endif # 64-bit SYSLINUX_DEPENDENCIES += gnu-efi SYSLINUX_TARGET += $(SYSLINUX_EFI_BITS) SYSLINUX_EFI_ARGS = \ EFIINC=$(STAGING_DIR)/usr/include/efi \ LIBDIR=$(STAGING_DIR)/usr/lib \ LIBEFI=$(STAGING_DIR)/usr/lib/libefi.a endif # EFI # The syslinux tarball comes with pre-compiled binaries. # Since timestamps might not be in the correct order, a rebuild is # not always triggered for all the different images. # Cleanup the mess even before we attempt a build, so we indeed # build everything from source. define SYSLINUX_CLEANUP rm -rf $(@D)/bios $(@D)/efi32 $(@D)/efi64 endef SYSLINUX_POST_PATCH_HOOKS += SYSLINUX_CLEANUP # syslinux build system has no convenient way to pass CFLAGS, # and the internal zlib should take precedence so -I shouldn't # be used. define SYSLINUX_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) \ CC="$(TARGET_CC)" \ LD="$(TARGET_LD)" \ OBJCOPY="$(TARGET_OBJCOPY)" \ AS="$(TARGET_AS)" \ NASM="$(HOST_DIR)/bin/nasm" \ CC_FOR_BUILD="$(HOSTCC)" \ CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \ PYTHON=$(HOST_DIR)/bin/python3 \ $(SYSLINUX_EFI_ARGS) -C $(@D) $(SYSLINUX_TARGET) endef # While the actual bootloader is compiled for the target, several # utilities for installing the bootloader are meant for the host. # Repeat the target, otherwise syslinux will try to build everything # Repeat LD (and CC) as it happens that some binaries are linked at # install-time. define SYSLINUX_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE1) $(SYSLINUX_EFI_ARGS) INSTALLROOT=$(HOST_DIR) \ CC="$(TARGET_CC)" \ LD="$(TARGET_LD)" \ -C $(@D) $(SYSLINUX_TARGET) install endef # That 'syslinux' binary is an installer actually built for the target. # However, buildroot makes no usage of it, so better delete it than have it # installed at the wrong place define SYSLINUX_POST_INSTALL_CLEANUP rm -rf $(HOST_DIR)/bin/syslinux endef SYSLINUX_POST_INSTALL_TARGET_HOOKS += SYSLINUX_POST_INSTALL_CLEANUP SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_ISOLINUX) += bios/core/isolinux.bin SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_PXELINUX) += bios/core/pxelinux.bin SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_MBR) += bios/mbr/mbr.bin SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_EFI) += $(SYSLINUX_EFI_BITS)/efi/syslinux.efi SYSLINUX_C32 = $(call qstrip,$(BR2_TARGET_SYSLINUX_C32)) # We install the c32 modules from the host-installed tree, where they # are all neatly installed in a single location, while they are # scattered around everywhere in the build tree. define SYSLINUX_INSTALL_IMAGES_CMDS for i in $(SYSLINUX_IMAGES-y); do \ $(INSTALL) -D -m 0755 $(@D)/$$i $(BINARIES_DIR)/syslinux/$${i##*/}; \ done for i in $(SYSLINUX_C32); do \ $(INSTALL) -D -m 0755 $(HOST_DIR)/share/syslinux/$${i} \ $(BINARIES_DIR)/syslinux/$${i}; \ done endef $(eval $(generic-package)) ================================================ FILE: boot/uboot/2015.07/0001-Revert-arch-Make-board-selection-choices-optional.patch ================================================ From ee11fed43e2bd029f71af1e72ab9bb5652f5fc54 Mon Sep 17 00:00:00 2001 From: Alexey Brodkin Date: Wed, 29 Jul 2015 20:32:59 +0300 Subject: [PATCH] Revert "arch: Make board selection choices optional" This reverts commit a26cd04920dc069fd6e91abb785426cf6c29f45f. Reverted commit caused an issue with "make oldconfig" - default prompt for target selection was set as No that lead to missing platform selection by automated scripts like that: ------------------>8------------------ "yes "" | make oldconfig" on defconfig ------------------>8------------------ And that lead to build failure: ------------------>8------------------ $ make scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config.h UPD include/config.h GEN include/autoconf.mk In file included from ./include/common.h:18:0: include/config.h:5:22: fatal error: configs/.h: No such file or directory #include ^ compilation terminated. scripts/Makefile.autoconf:72: recipe for target 'include/autoconf.mk' failed make[1]: *** [include/autoconf.mk] Error 1 ------------------>8------------------ Signed-off-by: Alexey Brodkin --- arch/arc/Kconfig | 1 - arch/arm/Kconfig | 1 - arch/arm/cpu/armv7/exynos/Kconfig | 1 - arch/arm/cpu/armv7/mx5/Kconfig | 1 - arch/arm/cpu/armv7/mx6/Kconfig | 1 - arch/arm/cpu/armv7/omap3/Kconfig | 1 - arch/arm/cpu/armv7/omap4/Kconfig | 1 - arch/arm/cpu/armv7/omap5/Kconfig | 1 - arch/arm/cpu/armv7/rmobile/Kconfig | 1 - arch/arm/cpu/armv7/s5pc1xx/Kconfig | 1 - arch/arm/mach-at91/Kconfig | 1 - arch/arm/mach-bcm283x/Kconfig | 1 - arch/arm/mach-davinci/Kconfig | 1 - arch/arm/mach-integrator/Kconfig | 2 -- arch/arm/mach-keystone/Kconfig | 1 - arch/arm/mach-kirkwood/Kconfig | 1 - arch/arm/mach-nomadik/Kconfig | 1 - arch/arm/mach-orion5x/Kconfig | 1 - arch/arm/mach-socfpga/Kconfig | 1 - arch/arm/mach-tegra/Kconfig | 1 - arch/arm/mach-tegra/tegra114/Kconfig | 1 - arch/arm/mach-tegra/tegra124/Kconfig | 1 - arch/arm/mach-tegra/tegra20/Kconfig | 1 - arch/arm/mach-tegra/tegra30/Kconfig | 1 - arch/arm/mach-zynq/Kconfig | 1 - arch/avr32/Kconfig | 1 - arch/blackfin/Kconfig | 1 - arch/m68k/Kconfig | 1 - arch/microblaze/Kconfig | 1 - arch/mips/Kconfig | 1 - arch/nds32/Kconfig | 1 - arch/nios2/Kconfig | 1 - arch/openrisc/Kconfig | 1 - arch/powerpc/Kconfig | 1 - arch/powerpc/cpu/mpc512x/Kconfig | 1 - arch/powerpc/cpu/mpc5xx/Kconfig | 1 - arch/powerpc/cpu/mpc5xxx/Kconfig | 1 - arch/powerpc/cpu/mpc8260/Kconfig | 1 - arch/powerpc/cpu/mpc83xx/Kconfig | 1 - arch/powerpc/cpu/mpc85xx/Kconfig | 1 - arch/powerpc/cpu/mpc86xx/Kconfig | 1 - arch/powerpc/cpu/mpc8xx/Kconfig | 1 - arch/powerpc/cpu/ppc4xx/Kconfig | 1 - arch/sh/Kconfig | 1 - arch/sparc/Kconfig | 1 - board/amcc/canyonlands/Kconfig | 1 - board/coreboot/Kconfig | 1 - board/dbau1x00/Kconfig | 1 - board/google/Kconfig | 1 - board/intel/Kconfig | 1 - board/micronas/vct/Kconfig | 1 - board/seco/Kconfig | 2 -- board/sunxi/Kconfig | 1 - 53 files changed, 55 deletions(-) diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index 925e312..640cda8 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -129,7 +129,6 @@ config ARC_CACHE_LINE_SHIFT choice prompt "Target select" - optional config TARGET_TB100 bool "Support tb100" diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 9908b43..8eeb46c 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -64,7 +64,6 @@ config SEMIHOSTING choice prompt "Target select" - optional config ARCH_AT91 bool "Atmel AT91" diff --git a/arch/arm/cpu/armv7/exynos/Kconfig b/arch/arm/cpu/armv7/exynos/Kconfig index 4a7d82f..f2fe748 100644 --- a/arch/arm/cpu/armv7/exynos/Kconfig +++ b/arch/arm/cpu/armv7/exynos/Kconfig @@ -2,7 +2,6 @@ if ARCH_EXYNOS choice prompt "EXYNOS board select" - optional config TARGET_SMDKV310 select SUPPORT_SPL diff --git a/arch/arm/cpu/armv7/mx5/Kconfig b/arch/arm/cpu/armv7/mx5/Kconfig index 9f250c6..2d6c0ce 100644 --- a/arch/arm/cpu/armv7/mx5/Kconfig +++ b/arch/arm/cpu/armv7/mx5/Kconfig @@ -12,7 +12,6 @@ config MX53 choice prompt "MX5 board select" - optional config TARGET_USBARMORY bool "Support USB armory" diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig index 10908c4..662596f 100644 --- a/arch/arm/cpu/armv7/mx6/Kconfig +++ b/arch/arm/cpu/armv7/mx6/Kconfig @@ -27,7 +27,6 @@ config MX6SX choice prompt "MX6 board select" - optional config TARGET_SECOMX6 bool "Support secomx6 boards" diff --git a/arch/arm/cpu/armv7/omap3/Kconfig b/arch/arm/cpu/armv7/omap3/Kconfig index b32a6b0..cc82c50 100644 --- a/arch/arm/cpu/armv7/omap3/Kconfig +++ b/arch/arm/cpu/armv7/omap3/Kconfig @@ -2,7 +2,6 @@ if OMAP34XX choice prompt "OMAP3 board select" - optional config TARGET_AM3517_EVM bool "AM3517 EVM" diff --git a/arch/arm/cpu/armv7/omap4/Kconfig b/arch/arm/cpu/armv7/omap4/Kconfig index df27ea1..eccf897 100644 --- a/arch/arm/cpu/armv7/omap4/Kconfig +++ b/arch/arm/cpu/armv7/omap4/Kconfig @@ -2,7 +2,6 @@ if OMAP44XX choice prompt "OMAP4 board select" - optional config TARGET_DUOVERO bool "OMAP4430 Gumstix Duovero" diff --git a/arch/arm/cpu/armv7/omap5/Kconfig b/arch/arm/cpu/armv7/omap5/Kconfig index 20c3bd9..aca862d 100644 --- a/arch/arm/cpu/armv7/omap5/Kconfig +++ b/arch/arm/cpu/armv7/omap5/Kconfig @@ -2,7 +2,6 @@ if OMAP54XX choice prompt "OMAP5 board select" - optional config TARGET_CM_T54 bool "CompuLab CM-T54" diff --git a/arch/arm/cpu/armv7/rmobile/Kconfig b/arch/arm/cpu/armv7/rmobile/Kconfig index ef56286..638b63d 100644 --- a/arch/arm/cpu/armv7/rmobile/Kconfig +++ b/arch/arm/cpu/armv7/rmobile/Kconfig @@ -2,7 +2,6 @@ if RMOBILE choice prompt "Renesus ARM SoCs board select" - optional config TARGET_ARMADILLO_800EVA bool "armadillo 800 eva board" diff --git a/arch/arm/cpu/armv7/s5pc1xx/Kconfig b/arch/arm/cpu/armv7/s5pc1xx/Kconfig index 792ef59..65cc9eb 100644 --- a/arch/arm/cpu/armv7/s5pc1xx/Kconfig +++ b/arch/arm/cpu/armv7/s5pc1xx/Kconfig @@ -2,7 +2,6 @@ if ARCH_S5PC1XX choice prompt "S5PC1XX board select" - optional config TARGET_S5P_GONI bool "S5P Goni board" diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index bbf4228..5dc2cb2 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig @@ -2,7 +2,6 @@ if ARCH_AT91 choice prompt "Atmel AT91 board select" - optional config TARGET_AT91RM9200EK bool "Atmel AT91RM9200 evaluation kit" diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig index 2315a13..d40f505 100644 --- a/arch/arm/mach-bcm283x/Kconfig +++ b/arch/arm/mach-bcm283x/Kconfig @@ -3,7 +3,6 @@ menu "Broadcom BCM283X family" choice prompt "Broadcom BCM283X board select" - optional config TARGET_RPI bool "Raspberry Pi" diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig index e6cb390..3ef55d3 100644 --- a/arch/arm/mach-davinci/Kconfig +++ b/arch/arm/mach-davinci/Kconfig @@ -2,7 +2,6 @@ if ARCH_DAVINCI choice prompt "DaVinci board select" - optional config TARGET_ENBW_CMC bool "EnBW CMC board" diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig index c54d69d..8ffc544 100644 --- a/arch/arm/mach-integrator/Kconfig +++ b/arch/arm/mach-integrator/Kconfig @@ -3,7 +3,6 @@ menu "Integrator Options" choice prompt "Integrator platform select" - optional config ARCH_INTEGRATOR_AP bool "Support Integrator/AP platform" @@ -19,7 +18,6 @@ config ARCH_CINTEGRATOR choice prompt "Integrator core module select" - optional config CM720T bool "Core Module for ARM720T" diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig index 67f1a33..134ae87 100644 --- a/arch/arm/mach-keystone/Kconfig +++ b/arch/arm/mach-keystone/Kconfig @@ -2,7 +2,6 @@ if ARCH_KEYSTONE choice prompt "TI Keystone board select" - optional config TARGET_K2HK_EVM bool "TI Keystone 2 Kepler/Hawking EVM" diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig index 1261885..45c6687 100644 --- a/arch/arm/mach-kirkwood/Kconfig +++ b/arch/arm/mach-kirkwood/Kconfig @@ -2,7 +2,6 @@ if KIRKWOOD choice prompt "Marvell Kirkwood board select" - optional config TARGET_OPENRD bool "Marvell OpenRD Board" diff --git a/arch/arm/mach-nomadik/Kconfig b/arch/arm/mach-nomadik/Kconfig index ba72a41..265f336 100644 --- a/arch/arm/mach-nomadik/Kconfig +++ b/arch/arm/mach-nomadik/Kconfig @@ -2,7 +2,6 @@ if ARCH_NOMADIK choice prompt "Nomadik board select" - optional config NOMADIK_NHK8815 bool "ST 8815 Nomadik Hardware Kit" diff --git a/arch/arm/mach-orion5x/Kconfig b/arch/arm/mach-orion5x/Kconfig index 7644b8d..291c511 100644 --- a/arch/arm/mach-orion5x/Kconfig +++ b/arch/arm/mach-orion5x/Kconfig @@ -2,7 +2,6 @@ if ORION5X choice prompt "Marvell Orion board select" - optional config TARGET_EDMINIV2 bool "LaCie Ethernet Disk mini V2" diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig index e46c348..204efca 100644 --- a/arch/arm/mach-socfpga/Kconfig +++ b/arch/arm/mach-socfpga/Kconfig @@ -2,7 +2,6 @@ if ARCH_SOCFPGA choice prompt "Altera SOCFPGA board select" - optional config TARGET_SOCFPGA_ARRIA5 bool "Altera SOCFPGA Arria V" diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index 54bd648..ef77c84 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig @@ -2,7 +2,6 @@ if TEGRA choice prompt "Tegra SoC select" - optional config TEGRA20 bool "Tegra20 family" diff --git a/arch/arm/mach-tegra/tegra114/Kconfig b/arch/arm/mach-tegra/tegra114/Kconfig index 1047b92..31012bc 100644 --- a/arch/arm/mach-tegra/tegra114/Kconfig +++ b/arch/arm/mach-tegra/tegra114/Kconfig @@ -2,7 +2,6 @@ if TEGRA114 choice prompt "Tegra114 board select" - optional config TARGET_DALMORE bool "NVIDIA Tegra114 Dalmore evaluation board" diff --git a/arch/arm/mach-tegra/tegra124/Kconfig b/arch/arm/mach-tegra/tegra124/Kconfig index f3324ff..86c1301 100644 --- a/arch/arm/mach-tegra/tegra124/Kconfig +++ b/arch/arm/mach-tegra/tegra124/Kconfig @@ -2,7 +2,6 @@ if TEGRA124 choice prompt "Tegra124 board select" - optional config TARGET_JETSON_TK1 bool "NVIDIA Tegra124 Jetson TK1 board" diff --git a/arch/arm/mach-tegra/tegra20/Kconfig b/arch/arm/mach-tegra/tegra20/Kconfig index 1bb8dff..7f09f81 100644 --- a/arch/arm/mach-tegra/tegra20/Kconfig +++ b/arch/arm/mach-tegra/tegra20/Kconfig @@ -2,7 +2,6 @@ if TEGRA20 choice prompt "Tegra20 board select" - optional config TARGET_HARMONY bool "NVIDIA Tegra20 Harmony evaluation board" diff --git a/arch/arm/mach-tegra/tegra30/Kconfig b/arch/arm/mach-tegra/tegra30/Kconfig index e78331e..3abdc7b 100644 --- a/arch/arm/mach-tegra/tegra30/Kconfig +++ b/arch/arm/mach-tegra/tegra30/Kconfig @@ -2,7 +2,6 @@ if TEGRA30 choice prompt "Tegra30 board select" - optional config TARGET_APALIS_T30 bool "Toradex Apalis T30 board" diff --git a/arch/arm/mach-zynq/Kconfig b/arch/arm/mach-zynq/Kconfig index 1de5b07..6b0e295 100644 --- a/arch/arm/mach-zynq/Kconfig +++ b/arch/arm/mach-zynq/Kconfig @@ -10,7 +10,6 @@ config ZYNQ_CUSTOM_INIT choice prompt "Xilinx Zynq board select" - optional config TARGET_ZYNQ_ZED bool "Zynq ZedBoard" diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index eb33774..801b9cc 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig @@ -6,7 +6,6 @@ config SYS_ARCH choice prompt "Target select" - optional config TARGET_ATNGW100 bool "Support atngw100" diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index 0a2fb4d..31913fe 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig @@ -6,7 +6,6 @@ config SYS_ARCH choice prompt "Target select" - optional config TARGET_BCT_BRETTL2 bool "Support bct-brettl2" diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 26509b7..69cb0f7 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig @@ -114,7 +114,6 @@ config M548x choice prompt "Target select" - optional config TARGET_M52277EVB bool "Support M52277EVB" diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig index 077b2a7..6f419f0 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig @@ -6,7 +6,6 @@ config SYS_ARCH choice prompt "Target select" - optional config TARGET_MICROBLAZE_GENERIC bool "Support microblaze-generic" diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 7f7e258..87b94ac 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -10,7 +10,6 @@ config SYS_CPU choice prompt "Target select" - optional config TARGET_QEMU_MIPS bool "Support qemu-mips" diff --git a/arch/nds32/Kconfig b/arch/nds32/Kconfig index 98b0282..81b0a01 100644 --- a/arch/nds32/Kconfig +++ b/arch/nds32/Kconfig @@ -6,7 +6,6 @@ config SYS_ARCH choice prompt "Target select" - optional config TARGET_ADP_AG101 bool "Support adp-ag101" diff --git a/arch/nios2/Kconfig b/arch/nios2/Kconfig index 8ae7f6e..b3be7b5 100644 --- a/arch/nios2/Kconfig +++ b/arch/nios2/Kconfig @@ -6,7 +6,6 @@ config SYS_ARCH choice prompt "Target select" - optional config TARGET_NIOS2_GENERIC bool "Support nios2-generic" diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig index 11014d1..4d62b4c 100644 --- a/arch/openrisc/Kconfig +++ b/arch/openrisc/Kconfig @@ -6,7 +6,6 @@ config SYS_ARCH choice prompt "Target select" - optional config TARGET_OPENRISC_GENERIC bool "Support openrisc-generic" diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 3b3f446..8e5a3e2 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -6,7 +6,6 @@ config SYS_ARCH choice prompt "CPU select" - optional config MPC512X bool "MPC512X" diff --git a/arch/powerpc/cpu/mpc512x/Kconfig b/arch/powerpc/cpu/mpc512x/Kconfig index 53450ae..a0f0ede 100644 --- a/arch/powerpc/cpu/mpc512x/Kconfig +++ b/arch/powerpc/cpu/mpc512x/Kconfig @@ -6,7 +6,6 @@ config SYS_CPU choice prompt "Target select" - optional config TARGET_PDM360NG bool "Support pdm360ng" diff --git a/arch/powerpc/cpu/mpc5xx/Kconfig b/arch/powerpc/cpu/mpc5xx/Kconfig index 5275447..aad4a7c 100644 --- a/arch/powerpc/cpu/mpc5xx/Kconfig +++ b/arch/powerpc/cpu/mpc5xx/Kconfig @@ -6,7 +6,6 @@ config SYS_CPU choice prompt "Target select" - optional config TARGET_CMI_MPC5XX bool "Support cmi_mpc5xx" diff --git a/arch/powerpc/cpu/mpc5xxx/Kconfig b/arch/powerpc/cpu/mpc5xxx/Kconfig index 5d49228..eec9d7d 100644 --- a/arch/powerpc/cpu/mpc5xxx/Kconfig +++ b/arch/powerpc/cpu/mpc5xxx/Kconfig @@ -6,7 +6,6 @@ config SYS_CPU choice prompt "Target select" - optional config TARGET_A3M071 bool "Support a3m071" diff --git a/arch/powerpc/cpu/mpc8260/Kconfig b/arch/powerpc/cpu/mpc8260/Kconfig index e93732d..55941c8 100644 --- a/arch/powerpc/cpu/mpc8260/Kconfig +++ b/arch/powerpc/cpu/mpc8260/Kconfig @@ -6,7 +6,6 @@ config SYS_CPU choice prompt "Target select" - optional config TARGET_KM82XX bool "Support km82xx" diff --git a/arch/powerpc/cpu/mpc83xx/Kconfig b/arch/powerpc/cpu/mpc83xx/Kconfig index 3fb901f..88a3bd6 100644 --- a/arch/powerpc/cpu/mpc83xx/Kconfig +++ b/arch/powerpc/cpu/mpc83xx/Kconfig @@ -6,7 +6,6 @@ config SYS_CPU choice prompt "Target select" - optional config TARGET_MPC8308_P1M bool "Support mpc8308_p1m" diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig index 3e8d0b1..aff5fdb 100644 --- a/arch/powerpc/cpu/mpc85xx/Kconfig +++ b/arch/powerpc/cpu/mpc85xx/Kconfig @@ -6,7 +6,6 @@ config SYS_CPU choice prompt "Target select" - optional config TARGET_SBC8548 bool "Support sbc8548" diff --git a/arch/powerpc/cpu/mpc86xx/Kconfig b/arch/powerpc/cpu/mpc86xx/Kconfig index fe1859d..14e8b1a 100644 --- a/arch/powerpc/cpu/mpc86xx/Kconfig +++ b/arch/powerpc/cpu/mpc86xx/Kconfig @@ -6,7 +6,6 @@ config SYS_CPU choice prompt "Target select" - optional config TARGET_SBC8641D bool "Support sbc8641d" diff --git a/arch/powerpc/cpu/mpc8xx/Kconfig b/arch/powerpc/cpu/mpc8xx/Kconfig index 79cee35..e8bcbe9 100644 --- a/arch/powerpc/cpu/mpc8xx/Kconfig +++ b/arch/powerpc/cpu/mpc8xx/Kconfig @@ -6,7 +6,6 @@ config SYS_CPU choice prompt "Target select" - optional config TARGET_TQM823L bool "Support TQM823L" diff --git a/arch/powerpc/cpu/ppc4xx/Kconfig b/arch/powerpc/cpu/ppc4xx/Kconfig index 10b86e0..4d5954a 100644 --- a/arch/powerpc/cpu/ppc4xx/Kconfig +++ b/arch/powerpc/cpu/ppc4xx/Kconfig @@ -6,7 +6,6 @@ config SYS_CPU choice prompt "Target select" - optional config TARGET_CSB272 bool "Support csb272" diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 6ac22af..ff8f5b5 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -29,7 +29,6 @@ config SH_32BIT choice prompt "Target select" - optional config TARGET_RSK7203 bool "RSK+ 7203" diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 04dc08f..2df09b2 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -14,7 +14,6 @@ config LEON3 choice prompt "Board select" - optional config TARGET_GRSIM_LEON2 bool "GRSIM simulating a LEON2 board" diff --git a/board/amcc/canyonlands/Kconfig b/board/amcc/canyonlands/Kconfig index a655dbc..ef66ad4 100644 --- a/board/amcc/canyonlands/Kconfig +++ b/board/amcc/canyonlands/Kconfig @@ -11,7 +11,6 @@ config SYS_CONFIG_NAME choice BOARD_TYPE prompt "Select which board to build for" - optional config CANYONLANDS bool "Glacier" diff --git a/board/coreboot/Kconfig b/board/coreboot/Kconfig index ede6065..dc9b70f 100644 --- a/board/coreboot/Kconfig +++ b/board/coreboot/Kconfig @@ -8,7 +8,6 @@ if VENDOR_COREBOOT choice prompt "Mainboard model" - optional config TARGET_COREBOOT bool "coreboot" diff --git a/board/dbau1x00/Kconfig b/board/dbau1x00/Kconfig index b813adb..1286e45 100644 --- a/board/dbau1x00/Kconfig +++ b/board/dbau1x00/Kconfig @@ -13,7 +13,6 @@ menu "dbau1x00 board options" choice prompt "Select au1x00 SoC type" - optional config DBAU1100 bool "Select AU1100" diff --git a/board/google/Kconfig b/board/google/Kconfig index e9559c9..302f68e 100644 --- a/board/google/Kconfig +++ b/board/google/Kconfig @@ -8,7 +8,6 @@ if VENDOR_GOOGLE choice prompt "Mainboard model" - optional config TARGET_CHROMEBOOK_LINK bool "Chromebook link" diff --git a/board/intel/Kconfig b/board/intel/Kconfig index 3d9ecf0..7fe21b9 100644 --- a/board/intel/Kconfig +++ b/board/intel/Kconfig @@ -8,7 +8,6 @@ if VENDOR_INTEL choice prompt "Mainboard model" - optional config TARGET_CROWNBAY bool "Crown Bay" diff --git a/board/micronas/vct/Kconfig b/board/micronas/vct/Kconfig index c518079..288a1ae 100644 --- a/board/micronas/vct/Kconfig +++ b/board/micronas/vct/Kconfig @@ -13,7 +13,6 @@ menu "vct board options" choice prompt "Board variant" - optional config VCT_PLATINUM bool "Enable VCT_PLATINUM" diff --git a/board/seco/Kconfig b/board/seco/Kconfig index af16697..dcb1ac8 100644 --- a/board/seco/Kconfig +++ b/board/seco/Kconfig @@ -2,7 +2,6 @@ if TARGET_SECOMX6 choice prompt "SECO i.MX6 Board variant" - optional config SECOMX6_Q7 bool "Q7" @@ -17,7 +16,6 @@ endchoice choice prompt "SECO i.MX6 SoC variant" - optional config SECOMX6Q bool "i.MX6Q" diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig index 2a1cd3c..808de26 100644 --- a/board/sunxi/Kconfig +++ b/board/sunxi/Kconfig @@ -18,7 +18,6 @@ config SUNXI_GEN_SUN6I choice prompt "Sunxi SoC Variant" - optional config MACH_SUN4I bool "sun4i (Allwinner A10)" -- 2.4.3 ================================================ FILE: boot/uboot/2016.07/0001-arc-Use-mcpu-XXX-instead-of-obsolete-marcXXX.patch ================================================ From 7c8d81605302e7d7fdd3e7d8eb69302bddc64a2c Mon Sep 17 00:00:00 2001 From: Alexey Brodkin Date: Fri, 16 Sep 2016 12:12:26 +0300 Subject: [PATCH] arc: Use -mcpu=XXX instead of obsolete -marcXXX With newer ARC tools old way of CPU specification gets obsolete, so we're switching to newer and more common way of setting "-mcpu". Signed-off-by: Alexey Brodkin --- arch/arc/config.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arc/config.mk b/arch/arc/config.mk index 7c974f0..13676bd 100644 --- a/arch/arc/config.mk +++ b/arch/arc/config.mk @@ -31,15 +31,15 @@ CONFIG_MMU = 1 endif ifdef CONFIG_CPU_ARC750D -PLATFORM_CPPFLAGS += -marc700 +PLATFORM_CPPFLAGS += -mcpu=arc700 endif ifdef CONFIG_CPU_ARC770D -PLATFORM_CPPFLAGS += -marc700 -mlock -mswape +PLATFORM_CPPFLAGS += -mcpu=arc700 -mlock -mswape endif ifdef CONFIG_CPU_ARCEM6 -PLATFORM_CPPFLAGS += -marcem +PLATFORM_CPPFLAGS += -mcpu=arcem endif ifdef CONFIG_CPU_ARCHS34 -- 2.7.4 ================================================ FILE: boot/uboot/2016.09.01/0001-arc-Use-mcpu-XXX-instead-of-obsolete-marcXXX.patch ================================================ From 7c8d81605302e7d7fdd3e7d8eb69302bddc64a2c Mon Sep 17 00:00:00 2001 From: Alexey Brodkin Date: Fri, 16 Sep 2016 12:12:26 +0300 Subject: [PATCH] arc: Use -mcpu=XXX instead of obsolete -marcXXX With newer ARC tools old way of CPU specification gets obsolete, so we're switching to newer and more common way of setting "-mcpu". Signed-off-by: Alexey Brodkin --- arch/arc/config.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arc/config.mk b/arch/arc/config.mk index 7c974f0..13676bd 100644 --- a/arch/arc/config.mk +++ b/arch/arc/config.mk @@ -31,15 +31,15 @@ CONFIG_MMU = 1 endif ifdef CONFIG_CPU_ARC750D -PLATFORM_CPPFLAGS += -marc700 +PLATFORM_CPPFLAGS += -mcpu=arc700 endif ifdef CONFIG_CPU_ARC770D -PLATFORM_CPPFLAGS += -marc700 -mlock -mswape +PLATFORM_CPPFLAGS += -mcpu=arc700 -mlock -mswape endif ifdef CONFIG_CPU_ARCEM6 -PLATFORM_CPPFLAGS += -marcem +PLATFORM_CPPFLAGS += -mcpu=arcem endif ifdef CONFIG_CPU_ARCHS34 -- 2.7.4 ================================================ FILE: boot/uboot/Config.in ================================================ config BR2_TARGET_UBOOT bool "U-Boot" help Build "Das U-Boot" Boot Monitor https://www.denx.de/wiki/U-Boot if BR2_TARGET_UBOOT choice prompt "Build system" default BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG if BR2_TARGET_UBOOT_LATEST_VERSION default BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY config BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG bool "Kconfig" help Select this option if you use a recent U-Boot version (2015.04 or newer), so that we use the Kconfig build system. config BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY bool "Legacy" help Select this option if you use an old U-Boot (older than 2015.04), so that we use the old build system. endchoice if BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY config BR2_TARGET_UBOOT_BOARDNAME string "U-Boot board name" help One of U-Boot supported boards to be built. This will be suffixed with _config to meet U-Boot standard naming. See boards.cfg in U-Boot source code for the list of available configurations. endif choice prompt "U-Boot Version" help Select the specific U-Boot version you want to use config BR2_TARGET_UBOOT_LATEST_VERSION bool "2021.10" config BR2_TARGET_UBOOT_CUSTOM_VERSION bool "Custom version" help This option allows to use a specific official versions config BR2_TARGET_UBOOT_CUSTOM_TARBALL bool "Custom tarball" config BR2_TARGET_UBOOT_CUSTOM_GIT bool "Custom Git repository" 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 string "U-Boot version" depends on BR2_TARGET_UBOOT_CUSTOM_VERSION 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 || BR2_TARGET_UBOOT_CUSTOM_SVN config BR2_TARGET_UBOOT_CUSTOM_REPO_URL string "URL of custom repository" config BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION string "Custom repository version" help 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 "2021.10" 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 || BR2_TARGET_UBOOT_CUSTOM_SVN config BR2_TARGET_UBOOT_PATCH string "Custom U-Boot patches" default BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR if BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR != "" # legacy help A space-separated list of patches to apply to U-Boot. Each patch can be described as an URL, a local file path, or a directory. In the case of a directory, all files matching *.patch in the directory will be applied. Most users may leave this empty if BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG choice prompt "U-Boot configuration" default BR2_TARGET_UBOOT_USE_DEFCONFIG config BR2_TARGET_UBOOT_USE_DEFCONFIG bool "Using an in-tree board defconfig file" config BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG bool "Using a custom board (def)config file" endchoice config BR2_TARGET_UBOOT_BOARD_DEFCONFIG string "Board defconfig" depends on BR2_TARGET_UBOOT_USE_DEFCONFIG help Name of the board for which U-Boot should be built, without the _defconfig suffix. config BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE string "Configuration file path" depends on BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG help Path to the U-Boot configuration file. config BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES string "Additional configuration fragment files" help A space-separated list of configuration fragment files, that will be merged to the main U-Boot configuration file. endif config BR2_TARGET_UBOOT_NEEDS_DTC bool "U-Boot needs dtc" select BR2_PACKAGE_HOST_DTC help Select this option if your U-Boot board configuration requires the Device Tree compiler to be available. config BR2_TARGET_UBOOT_NEEDS_PYTHON bool choice bool "U-Boot needs host Python" config BR2_TARGET_UBOOT_NEEDS_PYTHON_NONE bool "no" depends on !BR2_TARGET_UBOOT_NEEDS_PYTHON help Select this option if U-Boot does not need any host python to build. config BR2_TARGET_UBOOT_NEEDS_PYTHON2 bool "python 2.x" help Select this option if U-Boot needs a host Python 2.x interpreter. This is the case for some U-Boot configurations, prior to U-Boot 2020.01. config BR2_TARGET_UBOOT_NEEDS_PYTHON3 bool "python 3.x" help Select this option if U-Boot needs a host Python 3.x interpreter. This is the case for some U-Boot configurations, after U-Boot 2020.01. endchoice config BR2_TARGET_UBOOT_NEEDS_PYLIBFDT bool "U-Boot needs pylibfdt" select BR2_TARGET_UBOOT_NEEDS_PYTHON help Select this option if your U-Boot board configuration requires the Python libfdt library to be available. config BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS bool "U-Boot needs pyelftools" select BR2_TARGET_UBOOT_NEEDS_PYTHON help Select this option if your U-Boot board configuration requires the Python pyelftools library to be available. This is used by some rockchip SOCs for elf parsing. For example: rk3399 soc boards. config BR2_TARGET_UBOOT_NEEDS_OPENSSL bool "U-Boot needs OpenSSL" help Select this option if your U-Boot board configuration requires OpenSSL to be available on the host. This is typically the case when the board configuration has CONFIG_FIT_SIGNATURE enabled. config BR2_TARGET_UBOOT_NEEDS_LZOP bool "U-Boot needs lzop" help Select this option if your U-Boot board configuration requires lzop to be available on the host. This is typically the case when the board configuration has CONFIG_SPL_LZO enabled. config BR2_TARGET_UBOOT_NEEDS_ATF_BL31 bool "U-Boot needs ATF BL31" depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE depends on !BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 select BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31 help Some specific platforms (such as Allwinner A64/H5) encapsulate the BL31 part of ATF inside U-Boot. This option makes sure ATF gets built prior to U-Boot, and that the BL31 variable pointing to ATF's BL31 binary, is passed during the Buildroot build. choice prompt "U-Boot ATF BL31 format" default BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN depends on BR2_TARGET_UBOOT_NEEDS_ATF_BL31 config BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN bool "bl31.bin" config BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF bool "bl31.elf" endchoice config BR2_TARGET_UBOOT_NEEDS_OPENSBI bool "U-Boot needs OpenSBI" depends on BR2_TARGET_OPENSBI help Some RISC-V platforms (such as SiFive HiFive Unleashed) encapsulate the OpenSBI firmware image inside U-Boot. This option makes sure OpenSBI gets built prior to U-Boot, and that the OpenSBI variable pointing to OpenSBI binary, is passed during the Buildroot build. config BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE bool "U-Boot needs firmware-imx" depends on BR2_PACKAGE_FIRMWARE_IMX depends on BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW || \ BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW help Some i.MX8 platforms (such as i.MX8 M, i.MX 8M Mini, i.MX 8M Nano) encapsulate NXP specific firmware (DDR, HDMI) inside U-Boot. This option makes sure that the i.MX firmwares are copied into the U-Boot source directory. menu "U-Boot binary format" config BR2_TARGET_UBOOT_FORMAT_AIS bool "u-boot.ais" help AIS (Application Image Script) is a format defined by TI. It is required to load code/data on OMAP-L1 processors. u-boot.ais contains U-Boot with the SPL support. config BR2_TARGET_UBOOT_FORMAT_BIN bool "u-boot.bin" default y config BR2_TARGET_UBOOT_FORMAT_DTB bool "u-boot.dtb" config BR2_TARGET_UBOOT_FORMAT_DTB_BIN bool "u-boot-dtb.bin" config BR2_TARGET_UBOOT_FORMAT_NAND_BIN bool "u-boot-nand.bin" config BR2_TARGET_UBOOT_FORMAT_ELF bool "u-boot.elf" config BR2_TARGET_UBOOT_FORMAT_IMG bool "u-boot.img" config BR2_TARGET_UBOOT_FORMAT_DTB_IMG bool "u-boot-dtb.img" config BR2_TARGET_UBOOT_FORMAT_IMX bool "u-boot.imx" config BR2_TARGET_UBOOT_FORMAT_DTB_IMX bool "u-boot-dtb.imx" config BR2_TARGET_UBOOT_FORMAT_ITB bool "u-boot.itb" config BR2_TARGET_UBOOT_FORMAT_KWB bool "u-boot.kwb (Marvell)" depends on BR2_arm config BR2_TARGET_UBOOT_FORMAT_NAND bool "u-boot.nand (Freescale i.MX28)" depends on BR2_arm help This is Freescale i.MX28 BootStream format (.sb), with a header for booting from a NAND flash. U-Boot includes an mxsboot tool to generate this format, starting from 2011.12. There are two possibilities when preparing an image writable to NAND flash: 1) The NAND was not written at all yet or the BCB (Boot Control Blocks) is broken. In this case, the NAND image 'u-boot.nand' needs to written. 2) The NAND flash was already written with a good BCB. This applies after 'u-boot.nand' was correctly written. There is no need to write the BCB again. In this case, the bootloader can be upgraded by writing 'u-boot.sb'. To satisfy both cases, the 'u-boot.nand' image obtained from mxsboot as well as the U-Boot make target 'u-boot.sb' are copied to the binaries directory. See doc/README.mxs (or doc/README.mx28_common before 2013.07) if BR2_TARGET_UBOOT_FORMAT_NAND config BR2_TARGET_UBOOT_FORMAT_NAND_PAGE_SIZE int "NAND page size" default 2048 help The NAND page size of the targets NAND flash in bytes as a decimal integer value. The value provided here is passed to the -w option of mxsboot. config BR2_TARGET_UBOOT_FORMAT_NAND_OOB_SIZE int "NAND OOB size" default 64 help The NAND OOB size of the targets NAND flash in bytes as a decimal integer value. The value provided here is passed to the -o option of mxsboot. config BR2_TARGET_UBOOT_FORMAT_NAND_ERASE_SIZE int "NAND erase size" default 131072 help The NAND eraseblock size of the targets NAND flash in bytes as a decimal integer value. The value provided here is passed to the -e option of mxsboot. endif config BR2_TARGET_UBOOT_FORMAT_SB bool "u-boot.sb (Freescale i.MX28)" depends on BR2_arm config BR2_TARGET_UBOOT_FORMAT_SD bool "u-boot.sd (Freescale i.MX28)" depends on BR2_arm help This is Freescale i.MX28 SB format, with a header for booting from an SD card. U-Boot includes an mxsboot tool to generate this format, starting from 2011.12. See doc/README.mxs (or doc/README.mx28_common before 2013.07) config BR2_TARGET_UBOOT_FORMAT_STM32 bool "u-boot.stm32" depends on BR2_arm config BR2_TARGET_UBOOT_FORMAT_CUSTOM bool "Custom (specify below)" help On some platforms, the standard U-Boot binary is not called u-boot.bin, but u-boot.bin. If this is your case, you should select this option and specify the correct name(s) in BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME. config BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME string "U-Boot binary format: custom names" depends on BR2_TARGET_UBOOT_FORMAT_CUSTOM help In case the U-Boot binary for the target platform is not among the default names, one or more custom names can be listed here. Use space to separate multiple names. Example: u-boot_magic.bin endmenu config BR2_TARGET_UBOOT_OMAP_IFT bool "produce a .ift signed image (OMAP)" depends on BR2_TARGET_UBOOT_FORMAT_BIN depends on BR2_arm || BR2_armeb select BR2_PACKAGE_HOST_OMAP_U_BOOT_UTILS help Use gpsign to produce an image of u-boot.bin signed with a Configuration Header for booting on OMAP processors. This allows U-Boot to boot without the need for an intermediate bootloader (e.g. x-loader) if it is written on the first sector of the boot medium. This only works for some media, such as NAND. Check your chip documentation for details. You might also want to read the documentation of gpsign, the tool that generates the .ift image, at: https://github.com/nmenon/omap-u-boot-utils/blob/master/README if BR2_TARGET_UBOOT_OMAP_IFT config BR2_TARGET_UBOOT_OMAP_IFT_CONFIG string "gpsign Configuration Header config file" help The Configuration Header (CH) config file defines the desired content of the CH for the signed image. It usually contains external RAM settings and possibly other external devices initialization. The omap-u-boot-utils software contains example configuration files for some boards: https://github.com/nmenon/omap-u-boot-utils/tree/master/configs endif config BR2_TARGET_UBOOT_SPL bool "Install U-Boot SPL binary image" depends on !BR2_TARGET_XLOADER help Install the U-Boot SPL binary image to the images directory. SPL is a first stage bootloader loaded into internal memory in charge of enabling and configuring the external memory (DDR), and load the u-boot program into DDR. config BR2_TARGET_UBOOT_SPL_NAME string "U-Boot SPL/TPL binary image name(s)" default "spl/u-boot-spl.bin" depends on BR2_TARGET_UBOOT_SPL help A space-separated list of SPL/TPL binaries, generated during u-boot build. For most platform SPL name is spl/u-boot-spl.bin and TPL name is tpl/u-boot-tpl.bin but not always. SPL name is MLO on OMAP and SPL on i.MX6 for example. config BR2_TARGET_UBOOT_ZYNQ_IMAGE bool "Generate image for Xilinx Zynq" depends on BR2_arm 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. config BR2_TARGET_UBOOT_ZYNQMP bool "Boot on the Xilinx ZynqMP SoCs" depends on BR2_aarch64 help Enable options specific to the Xilinx ZynqMP family of SoCs. if BR2_TARGET_UBOOT_ZYNQMP config BR2_TARGET_UBOOT_ZYNQMP_PMUFW string "PMU firmware location" depends on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG help Location of a PMU firmware binary. If not empty, instructs the U-Boot build process to generate a boot.bin (to be loaded by the ZynqMP boot ROM) containing both the U-Boot SPL and the PMU firmware in the Xilinx-specific boot format. The value can be an absolute or relative path, and will be used directly from where it is located, or an URI (e.g. http://...), and it will be downloaded and used from the download directory. If empty, the generated boot.bin will not contain a PMU firmware. This feature requires U-Boot >= 2018.07. config BR2_TARGET_UBOOT_ZYNQMP_PM_CFG string "PMU configuration location" depends on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG help Location of a PMU configuration file. If not empty, Buildroot will convert the PMU configuration file into a loadable blob and pass it to U-Boot. The blob gets embedded into the U-Boot SPL and is used to configure the PMU during board initialization. Unlike the PMU firmware, the PMU configuration file is unique to each board configuration. A PMU configuration file can be generated by building your Xilinx SDK BSP. It can be found in the BSP source, for example at ./psu_cortexa53_0/libsrc/xilpm_v2_4/src/pm_cfg_obj.c Leave this option empty if your PMU firmware has a hard-coded configuration object or you are loading it by any other means. This feature requires U-Boot >= v2019.10. config BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_FILE string "Custom psu_init_gpl file" depends on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG help On ZynqMP the booloader is responsible for some basic initializations, such as enabling peripherals and configuring pinmuxes. The psu_init_gpl.c file (and, optionally, psu_init_gpl.h) contains the code for such initializations. Although U-Boot contains psu_init_gpl.c files for some boards, each of them describes only one specific configuration. Users of a different board, or needing a different configuration, can generate custom files using the Xilinx development tools. Set this variable to the path to your psu_init_gpl.c file (e.g. "board/myboard/psu_init_gpl.c"). psu_init_gpl.h, if needed, should be in the same directory. U-Boot will build and link the user-provided file instead of the built-in one. Leave empty to use the files provided by U-Boot. This feature requires commit 6da4f67ad09cd8b311d77b2b04e557b7ef65b56c from upstream U-Boot, available from versions after 2018.07. endif config BR2_TARGET_UBOOT_ALTERA_SOCFPGA_IMAGE_CRC bool "CRC image for Altera SoC FPGA (mkpimage)" depends on BR2_arm depends on BR2_TARGET_UBOOT_SPL || BR2_TARGET_UBOOT_FORMAT_DTB_BIN help Pass the U-Boot image through the mkpimage tool to enable booting on the Altera SoC FPGA based platforms. On some platforms, it's the SPL that needs to be passed through mkpimage. On some other platforms there is no SPL because the internal SRAM is big enough to store the full U-Boot. In this case, it's directly the full U-Boot image that is passed through mkpimage. If BR2_TARGET_UBOOT_SPL is enabled then BR2_TARGET_UBOOT_SPL_NAME is converted by mkpimage using header version 0. Otherwise the full u-boot-dtb.bin is converted using mkpimage header version 1. In either case the resulting file will be given a .crc extension. if BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG config BR2_TARGET_UBOOT_CUSTOM_DTS_PATH string "Device Tree Source file paths" help Space-separated list of paths to device tree source files that will be copied to arch/ARCH/dts/ before starting the build. To use this device tree source file, the U-Boot configuration file must refer to it. endif config BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS string "Custom make options" help List of custom make options passed at build time. Can be used for example to pass a DEVICE_TREE= value. endif # BR2_TARGET_UBOOT ================================================ FILE: boot/uboot/uboot.hash ================================================ # Locally computed: sha256 cde723e19262e646f2670d25e5ec4b1b368490de950d4e26275a988c36df0bd4 u-boot-2021.10.tar.bz2 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 Licenses/gpl-2.0.txt ================================================ FILE: boot/uboot/uboot.mk ================================================ ################################################################################ # # uboot # ################################################################################ UBOOT_VERSION = $(call qstrip,$(BR2_TARGET_UBOOT_VERSION)) UBOOT_BOARD_NAME = $(call qstrip,$(BR2_TARGET_UBOOT_BOARDNAME)) UBOOT_LICENSE = GPL-2.0+ ifeq ($(BR2_TARGET_UBOOT_LATEST_VERSION),y) UBOOT_LICENSE_FILES = Licenses/gpl-2.0.txt endif UBOOT_CPE_ID_VENDOR = denx UBOOT_CPE_ID_PRODUCT = u-boot UBOOT_INSTALL_IMAGES = YES # u-boot 2020.01+ needs make 4.0+ UBOOT_DEPENDENCIES = host-pkgconf $(BR2_MAKE_HOST_DEPENDENCY) UBOOT_MAKE = $(BR2_MAKE) ifeq ($(UBOOT_VERSION),custom) # Handle custom U-Boot tarballs as specified by the configuration UBOOT_TARBALL = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION)) UBOOT_SITE = $(patsubst %/,%,$(dir $(UBOOT_TARBALL))) UBOOT_SOURCE = $(notdir $(UBOOT_TARBALL)) else ifeq ($(BR2_TARGET_UBOOT_CUSTOM_GIT),y) UBOOT_SITE = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_REPO_URL)) 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 = https://ftp.denx.de/pub/u-boot UBOOT_SOURCE = u-boot-$(UBOOT_VERSION).tar.bz2 endif ifeq ($(BR2_TARGET_UBOOT)$(BR2_TARGET_UBOOT_LATEST_VERSION),y) BR_NO_CHECK_HASH_FOR += $(UBOOT_SOURCE) endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_BIN),y) UBOOT_BINS += u-boot.bin endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB),y) UBOOT_BINS += u-boot.dtb endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_ELF),y) UBOOT_BINS += u-boot # To make elf usable for debuging on ARC use special target ifeq ($(BR2_arc),y) UBOOT_MAKE_TARGET += mdbtrick endif endif # Call 'make all' unconditionally UBOOT_MAKE_TARGET += all ifeq ($(BR2_TARGET_UBOOT_FORMAT_KWB),y) UBOOT_BINS += u-boot.kwb UBOOT_MAKE_TARGET += u-boot.kwb endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_AIS),y) UBOOT_BINS += u-boot.ais UBOOT_MAKE_TARGET += u-boot.ais endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND_BIN),y) UBOOT_BINS += u-boot-nand.bin endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB_IMG),y) UBOOT_BINS += u-boot-dtb.img UBOOT_MAKE_TARGET += u-boot-dtb.img endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB_IMX),y) UBOOT_BINS += u-boot-dtb.imx UBOOT_MAKE_TARGET += u-boot-dtb.imx endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB_BIN),y) UBOOT_BINS += u-boot-dtb.bin UBOOT_MAKE_TARGET += u-boot-dtb.bin endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMG),y) UBOOT_BINS += u-boot.img UBOOT_MAKE_TARGET += u-boot.img endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_ITB),y) UBOOT_BINS += u-boot.itb UBOOT_MAKE_TARGET += u-boot.itb endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMX),y) UBOOT_BINS += u-boot.imx UBOOT_MAKE_TARGET += u-boot.imx endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_SB),y) UBOOT_BINS += u-boot.sb UBOOT_MAKE_TARGET += u-boot.sb # mxsimage needs OpenSSL UBOOT_DEPENDENCIES += host-elftosb host-openssl endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_SD),y) # BootStream (.sb) is generated by U-Boot, we convert it to SD format UBOOT_BINS += u-boot.sd UBOOT_MAKE_TARGET += u-boot.sb UBOOT_DEPENDENCIES += host-elftosb host-openssl endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND),y) UBOOT_BINS += u-boot.nand UBOOT_MAKE_TARGET += u-boot.sb UBOOT_DEPENDENCIES += host-elftosb host-openssl endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_STM32),y) UBOOT_BINS += u-boot.stm32 UBOOT_MAKE_TARGET += u-boot.stm32 endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_CUSTOM),y) UBOOT_BINS += $(call qstrip,$(BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME)) endif ifeq ($(BR2_TARGET_UBOOT_OMAP_IFT),y) UBOOT_BINS += u-boot.bin UBOOT_BIN_IFT = u-boot.bin.ift endif # The kernel calls AArch64 'arm64', but U-Boot calls it just 'arm', so # we have to special case it. Similar for i386/x86_64 -> x86 ifeq ($(KERNEL_ARCH),arm64) UBOOT_ARCH = arm else ifneq ($(filter $(KERNEL_ARCH),i386 x86_64),) UBOOT_ARCH = x86 else UBOOT_ARCH = $(KERNEL_ARCH) endif UBOOT_MAKE_OPTS += \ CROSS_COMPILE="$(TARGET_CROSS)" \ ARCH=$(UBOOT_ARCH) \ HOSTCC="$(HOSTCC) $(subst -I/,-isystem /,$(subst -I /,-isystem /,$(HOST_CFLAGS)))" \ HOSTLDFLAGS="$(HOST_LDFLAGS)" \ $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS)) ifeq ($(BR2_TARGET_UBOOT_NEEDS_ATF_BL31),y) UBOOT_DEPENDENCIES += arm-trusted-firmware ifeq ($(BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF),y) UBOOT_MAKE_OPTS += BL31=$(BINARIES_DIR)/bl31.elf define UBOOT_COPY_ATF_FIRMWARE cp $(BINARIES_DIR)/bl31.elf $(@D)/ endef UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_ATF_FIRMWARE else UBOOT_MAKE_OPTS += BL31=$(BINARIES_DIR)/bl31.bin define UBOOT_COPY_ATF_FIRMWARE cp $(BINARIES_DIR)/bl31.bin $(@D)/ endef UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_ATF_FIRMWARE endif endif ifeq ($(BR2_TARGET_UBOOT_NEEDS_OPENSBI),y) UBOOT_DEPENDENCIES += opensbi UBOOT_MAKE_OPTS += OPENSBI=$(BINARIES_DIR)/fw_dynamic.bin endif # Mainline U-Boot versions can create the i.MX specific boot images # and need some NXP firmware blobs. ifeq ($(BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE),y) UBOOT_DEPENDENCIES += firmware-imx UBOOT_IMX_FW_FILES = \ $(if $(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW),signed_hdmi_imx8m.bin) \ $(if $(BR2_PACKAGE_FIRMWARE_IMX_LPDDR4),lpddr4*.bin) \ $(if $(BR2_PACKAGE_FIRMWARE_IMX_DDR4),ddr4*.bin) define UBOOT_COPY_IMX_FW_FILES $(foreach fw,$(UBOOT_IMX_FW_FILES),\ cp $(BINARIES_DIR)/$(fw) $(@D)/ ) endef UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_IMX_FW_FILES endif ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y) UBOOT_DEPENDENCIES += host-dtc endif ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYTHON2),y) UBOOT_DEPENDENCIES += host-python host-python-setuptools else ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYTHON3),y) UBOOT_DEPENDENCIES += host-python3 host-python3-setuptools endif ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYLIBFDT),y) UBOOT_DEPENDENCIES += host-swig endif ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS),y) ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYTHON2),y) UBOOT_DEPENDENCIES += host-python-pyelftools else ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYTHON3),y) UBOOT_DEPENDENCIES += host-python3-pyelftools endif endif ifeq ($(BR2_TARGET_UBOOT_NEEDS_OPENSSL),y) UBOOT_DEPENDENCIES += host-openssl endif ifeq ($(BR2_TARGET_UBOOT_NEEDS_LZOP),y) UBOOT_DEPENDENCIES += host-lzop endif # prior to u-boot 2013.10 the license info was in COPYING. Copy it so # legal-info finds it define UBOOT_COPY_OLD_LICENSE_FILE if [ -f $(@D)/COPYING ]; then \ $(INSTALL) -m 0644 -D $(@D)/COPYING $(@D)/Licenses/gpl-2.0.txt; \ fi endef UBOOT_POST_EXTRACT_HOOKS += UBOOT_COPY_OLD_LICENSE_FILE UBOOT_POST_RSYNC_HOOKS += UBOOT_COPY_OLD_LICENSE_FILE ifneq ($(ARCH_XTENSA_OVERLAY_FILE),) define UBOOT_XTENSA_OVERLAY_EXTRACT $(call arch-xtensa-overlay-extract,$(@D),u-boot) endef UBOOT_POST_EXTRACT_HOOKS += UBOOT_XTENSA_OVERLAY_EXTRACT UBOOT_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) 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 # directories or files. UBOOT_PATCHES = $(call qstrip,$(BR2_TARGET_UBOOT_PATCH)) UBOOT_PATCH = $(filter ftp://% http://% https://%,$(UBOOT_PATCHES)) define UBOOT_APPLY_LOCAL_PATCHES for p in $(filter-out ftp://% http://% https://%,$(UBOOT_PATCHES)) ; do \ if test -d $$p ; then \ $(APPLY_PATCHES) $(@D) $$p \*.patch || exit 1 ; \ else \ $(APPLY_PATCHES) $(@D) `dirname $$p` `basename $$p` || exit 1; \ fi \ done endef UBOOT_POST_PATCH_HOOKS += UBOOT_APPLY_LOCAL_PATCHES # Fixup inclusion of libfdt headers, which can fail in older u-boot versions # when libfdt-devel is installed system-wide. # The core change is equivalent to upstream commit # e0d20dc1521e74b82dbd69be53a048847798a90a (first in v2018.03). However, the fixup # is complicated by the fact that the underlying u-boot code changed multiple # times in history: # - The directory scripts/dtc/libfdt only exists since upstream commit # c0e032e0090d6541549b19cc47e06ccd1f302893 (first in v2017.11). For earlier # versions, create a dummy scripts/dtc/libfdt directory with symlinks for the # fdt-related files. This allows to use the same -I option for both # cases. # - The variable 'srctree' used to be called 'SRCTREE' before upstream commit # 01286329b27b27eaeda045b469d41b1d9fce545a (first in v2014.04). # - The original location for libfdt, 'lib/libfdt/', used to be simply # 'libfdt' before upstream commit 0de71d507157c4bd4fddcd3a419140d2b986eed2 # (first in v2010.06). Make the 'lib' part optional in the substitution to # handle this. define UBOOT_FIXUP_LIBFDT_INCLUDE $(Q)if [ ! -d $(@D)/scripts/dtc/libfdt ]; then \ mkdir -p $(@D)/scripts/dtc/libfdt; \ cd $(@D)/scripts/dtc/libfdt; \ ln -s ../../../include/fdt.h .; \ ln -s ../../../include/libfdt*.h .; \ ln -s ../../../lib/libfdt/libfdt_internal.h .; \ fi $(Q)$(SED) \ 's%-I\ *\$$(srctree)/lib/libfdt%-I$$(srctree)/scripts/dtc/libfdt%; \ s%-I\ *\$$(SRCTREE)\(/lib\)\?/libfdt%-I$$(SRCTREE)/scripts/dtc/libfdt%' \ $(@D)/tools/Makefile endef UBOOT_POST_PATCH_HOOKS += UBOOT_FIXUP_LIBFDT_INCLUDE ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y) define UBOOT_CONFIGURE_CMDS $(TARGET_CONFIGURE_OPTS) \ $(UBOOT_MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ $(UBOOT_BOARD_NAME)_config endef else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y) ifeq ($(BR2_TARGET_UBOOT_USE_DEFCONFIG),y) UBOOT_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_TARGET_UBOOT_BOARD_DEFCONFIG))_defconfig else ifeq ($(BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG),y) UBOOT_KCONFIG_FILE = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE)) endif # BR2_TARGET_UBOOT_USE_DEFCONFIG UBOOT_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES)) UBOOT_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig # UBOOT_MAKE_OPTS overrides HOSTCC / HOSTLDFLAGS to allow the build to # find our host-openssl. However, this triggers a bug in the kconfig # build script that causes it to build with /usr/include/ncurses.h # (which is typically wchar) but link with # $(HOST_DIR)/lib/libncurses.so (which is not). We don't actually # need any host-package for kconfig, so remove the HOSTCC/HOSTLDFLAGS # override again. In addition, host-ccache is not ready at kconfig # time, so use HOSTCC_NOCCACHE. UBOOT_KCONFIG_OPTS = $(UBOOT_MAKE_OPTS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTLDFLAGS="" endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY UBOOT_CUSTOM_DTS_PATH = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_DTS_PATH)) define UBOOT_BUILD_CMDS $(if $(UBOOT_CUSTOM_DTS_PATH), cp -f $(UBOOT_CUSTOM_DTS_PATH) $(@D)/arch/$(UBOOT_ARCH)/dts/ ) $(TARGET_CONFIGURE_OPTS) \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ PKG_CONFIG_SYSROOT_DIR="/" \ PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \ PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \ PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/share/pkgconfig" \ $(UBOOT_MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ $(UBOOT_MAKE_TARGET) $(if $(BR2_TARGET_UBOOT_FORMAT_SD), $(@D)/tools/mxsboot sd $(@D)/u-boot.sb $(@D)/u-boot.sd) $(if $(BR2_TARGET_UBOOT_FORMAT_NAND), $(@D)/tools/mxsboot \ -w $(BR2_TARGET_UBOOT_FORMAT_NAND_PAGE_SIZE) \ -o $(BR2_TARGET_UBOOT_FORMAT_NAND_OOB_SIZE) \ -e $(BR2_TARGET_UBOOT_FORMAT_NAND_ERASE_SIZE) \ nand $(@D)/u-boot.sb $(@D)/u-boot.nand) endef define UBOOT_BUILD_OMAP_IFT $(HOST_DIR)/bin/gpsign -f $(@D)/u-boot.bin \ -c $(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG)) endef define UBOOT_INSTALL_IMAGES_CMDS $(foreach f,$(UBOOT_BINS), \ cp -dpf $(@D)/$(f) $(BINARIES_DIR)/ ) $(if $(BR2_TARGET_UBOOT_FORMAT_NAND), cp -dpf $(@D)/u-boot.sb $(BINARIES_DIR)) $(if $(BR2_TARGET_UBOOT_SPL), $(foreach f,$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)), \ cp -dpf $(@D)/$(f) $(BINARIES_DIR)/ ) ) endef ifeq ($(BR2_TARGET_UBOOT_ZYNQMP),y) UBOOT_ZYNQMP_PMUFW = $(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PMUFW)) ifneq ($(findstring ://,$(UBOOT_ZYNQMP_PMUFW)),) UBOOT_EXTRA_DOWNLOADS += $(UBOOT_ZYNQMP_PMUFW) BR_NO_CHECK_HASH_FOR += $(notdir $(UBOOT_ZYNQMP_PMUFW)) UBOOT_ZYNQMP_PMUFW_PATH = $(UBOOT_DL_DIR)/$(notdir $(UBOOT_ZYNQMP_PMUFW)) else ifneq ($(UBOOT_ZYNQMP_PMUFW),) UBOOT_ZYNQMP_PMUFW_PATH = $(shell readlink -f $(UBOOT_ZYNQMP_PMUFW)) endif define UBOOT_ZYNQMP_KCONFIG_PMUFW $(call KCONFIG_SET_OPT,CONFIG_PMUFW_INIT_FILE,"$(UBOOT_ZYNQMP_PMUFW_PATH)") endef UBOOT_ZYNQMP_PM_CFG = $(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PM_CFG)) ifneq ($(UBOOT_ZYNQMP_PM_CFG),) UBOOT_ZYNQMP_PM_CFG_BIN = $(UBOOT_DIR)/pm_cfg_obj.bin define UBOOT_ZYNQMP_KCONFIG_PM_CFG $(call KCONFIG_SET_OPT,CONFIG_ZYNQMP_SPL_PM_CFG_OBJ_FILE,"$(UBOOT_ZYNQMP_PM_CFG_BIN)", \ $(@D)/.config) endef define UBOOT_ZYNQMP_PM_CFG_CONVERT $(UBOOT_DIR)/tools/zynqmp_pm_cfg_obj_convert.py \ "$(UBOOT_ZYNQMP_PM_CFG)" \ "$(UBOOT_ZYNQMP_PM_CFG_BIN)" endef UBOOT_PRE_BUILD_HOOKS += UBOOT_ZYNQMP_PM_CFG_CONVERT endif UBOOT_ZYNQMP_PSU_INIT = $(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_FILE)) UBOOT_ZYNQMP_PSU_INIT_PATH = $(shell readlink -f $(UBOOT_ZYNQMP_PSU_INIT)) ifneq ($(UBOOT_ZYNQMP_PSU_INIT),) define UBOOT_ZYNQMP_KCONFIG_PSU_INIT $(call KCONFIG_SET_OPT,CONFIG_XILINX_PS_INIT_FILE,"$(UBOOT_ZYNQMP_PSU_INIT_PATH)") endef endif endif # BR2_TARGET_UBOOT_ZYNQMP define UBOOT_INSTALL_OMAP_IFT_IMAGE cp -dpf $(@D)/$(UBOOT_BIN_IFT) $(BINARIES_DIR)/ endef ifeq ($(BR2_TARGET_UBOOT_OMAP_IFT),y) ifeq ($(BR_BUILDING),y) ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG)),) $(error No gpsign config file. Check your BR2_TARGET_UBOOT_OMAP_IFT_CONFIG setting) endif ifeq ($(wildcard $(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG))),) $(error gpsign config file $(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG) not found. Check your BR2_TARGET_UBOOT_OMAP_IFT_CONFIG setting) endif endif UBOOT_DEPENDENCIES += host-omap-u-boot-utils UBOOT_POST_BUILD_HOOKS += UBOOT_BUILD_OMAP_IFT UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_INSTALL_OMAP_IFT_IMAGE endif ifeq ($(BR2_TARGET_UBOOT_ZYNQ_IMAGE),y) define UBOOT_GENERATE_ZYNQ_IMAGE $(HOST_DIR)/bin/python2 \ $(HOST_DIR)/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) ifeq ($(BR2_TARGET_UBOOT_SPL),y) UBOOT_CRC_ALTERA_SOCFPGA_INPUT_IMAGES = $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) UBOOT_CRC_ALTERA_SOCFPGA_HEADER_VERSION = 0 else UBOOT_CRC_ALTERA_SOCFPGA_INPUT_IMAGES = u-boot-dtb.bin UBOOT_CRC_ALTERA_SOCFPGA_HEADER_VERSION = 1 endif define UBOOT_CRC_ALTERA_SOCFPGA_IMAGE $(foreach f,$(UBOOT_CRC_ALTERA_SOCFPGA_INPUT_IMAGES), \ $(HOST_DIR)/bin/mkpimage \ -v $(UBOOT_CRC_ALTERA_SOCFPGA_HEADER_VERSION) \ -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 define UBOOT_KCONFIG_FIXUP_CMDS $(UBOOT_ZYNQMP_KCONFIG_PMUFW) $(UBOOT_ZYNQMP_KCONFIG_PM_CFG) $(UBOOT_ZYNQMP_KCONFIG_PSU_INIT) endef ifeq ($(BR2_TARGET_UBOOT)$(BR_BUILDING),yy) # # Check U-Boot board name (for legacy) or the defconfig/custom config # file options (for kconfig) # ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y) ifeq ($(UBOOT_BOARD_NAME),) $(error No U-Boot board name set. Check your BR2_TARGET_UBOOT_BOARDNAME setting) endif # UBOOT_BOARD_NAME else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y) ifeq ($(BR2_TARGET_UBOOT_USE_DEFCONFIG),y) ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_BOARD_DEFCONFIG)),) $(error No board defconfig name specified, check your BR2_TARGET_UBOOT_BOARD_DEFCONFIG setting) endif # qstrip BR2_TARGET_UBOOT_BOARD_DEFCONFIG endif # BR2_TARGET_UBOOT_USE_DEFCONFIG ifeq ($(BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG),y) ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE)),) $(error No board configuration file specified, check your BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE setting) endif # qstrip BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE endif # BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY # # Check custom version option # ifeq ($(BR2_TARGET_UBOOT_CUSTOM_VERSION),y) ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE)),) $(error No custom U-Boot version specified. Check your BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE setting) endif # qstrip BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE endif # BR2_TARGET_UBOOT_CUSTOM_VERSION # # Check custom tarball option # ifeq ($(BR2_TARGET_UBOOT_CUSTOM_TARBALL),y) ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION)),) $(error No custom U-Boot tarball specified. Check your BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION setting) endif # qstrip BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION endif # BR2_TARGET_UBOOT_CUSTOM_TARBALL # # Check Git/Mercurial repo options # ifeq ($(BR2_TARGET_UBOOT_CUSTOM_GIT)$(BR2_TARGET_UBOOT_CUSTOM_HG),y) ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_REPO_URL)),) $(error No custom U-Boot repository URL specified. Check your BR2_TARGET_UBOOT_CUSTOM_REPO_URL setting) endif # qstrip BR2_TARGET_UBOOT_CUSTOM_CUSTOM_REPO_URL ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION)),) $(error No custom U-Boot repository version specified. Check your BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION setting) endif # qstrip BR2_TARGET_UBOOT_CUSTOM_CUSTOM_REPO_VERSION endif # BR2_TARGET_UBOOT_CUSTOM_GIT || BR2_TARGET_UBOOT_CUSTOM_HG endif # BR2_TARGET_UBOOT && BR_BUILDING ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y) UBOOT_DEPENDENCIES += \ $(BR2_BISON_HOST_DEPENDENCY) \ $(BR2_FLEX_HOST_DEPENDENCY) $(eval $(generic-package)) else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y) UBOOT_MAKE_ENV = $(TARGET_MAKE_ENV) # Starting with 2021.10, the kconfig in uboot calls the cross-compiler # to check its capabilities. So we need the toolchain before we can # call the configurators. UBOOT_KCONFIG_DEPENDENCIES += \ toolchain \ $(BR2_MAKE_HOST_DEPENDENCY) \ $(BR2_BISON_HOST_DEPENDENCY) \ $(BR2_FLEX_HOST_DEPENDENCY) $(eval $(kconfig-package)) endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY ================================================ FILE: boot/vexpress-firmware/Config.in ================================================ config BR2_TARGET_VEXPRESS_FIRMWARE bool "vexpress-firmware" depends on BR2_aarch64 help Versatile Express firmware from ARM, with Linaro mods last change. https://git.linaro.org/arm/vexpress-firmware.git ================================================ FILE: boot/vexpress-firmware/vexpress-firmware.hash ================================================ # Locally calculated sha256 ea92d686e6e211074fb0f62cb5e011f4cfc294c7f6ec9fb27b7d987db7bf51c5 vexpress-firmware-901f81977c3b367a2e0bf3d6444be302822d97a3-br1.tar.gz ================================================ FILE: boot/vexpress-firmware/vexpress-firmware.mk ================================================ ################################################################################ # # vexpress-firmware # ################################################################################ VEXPRESS_FIRMWARE_VERSION = 901f81977c3b367a2e0bf3d6444be302822d97a3 VEXPRESS_FIRMWARE_SITE = https://git.linaro.org/arm/vexpress-firmware.git VEXPRESS_FIRMWARE_SITE_METHOD = git # The only available license files are in PDF and RTF formats, and we # support only plain text. VEXPRESS_FIRMWARE_LICENSE = ARM EULA VEXPRESS_FIRMWARE_INSTALL_IMAGES = YES define VEXPRESS_FIRMWARE_INSTALL_IMAGES_CMDS $(INSTALL) -D -m 0644 $(@D)/SOFTWARE/bl30.bin $(BINARIES_DIR)/scp-fw.bin endef $(eval $(generic-package)) ================================================ FILE: build-docker.sh ================================================ #!/bin/bash DOCKER_BUILDER_IMAGE="ccrisan/thingos-builder" ENV_FILE=$(mktemp) function cleanup() { rm -f ${ENV_FILE} } trap cleanup EXIT cd $(dirname "$0") printenv | grep -E ^THINGOS > ${ENV_FILE} args="${@}" docker run --privileged -it --rm -u $(id -u):$(id -g) \ -v "$(pwd)":/os \ -e TB_CUSTOM_CMD="./build.sh ${args}" \ --env-file ${ENV_FILE} \ --device /dev/loop-control:/dev/loop-control \ "${DOCKER_BUILDER_IMAGE}" ================================================ FILE: build.sh ================================================ #!/bin/bash if [ -z "$1" ]; then echo "Usage: $0 <{board}|all|boards> [mkimage|mkrelease|clean-target|initramfs|make-targets...]" echo " mkimage - creates the OS image (.img)" echo " mkrelease - creates the compressed OS image (.img.gz, .img.xz)" echo " clean-target - removes the target dir, preserving the package build dirs" echo " initramfs - builds the initramfs image; extra arguments will be passed internally to BuildRoot" echo "" echo " for other make targets, see the BuildRoot manual" exit 1 fi set -e # exit at first error board=$1 target=${*:2} cd "$(dirname "$0")" basedir=$(pwd) gzip=$(which pigz 2> /dev/null || which gzip 2> /dev/null) # extra environment from local file test -f "$basedir/.build-env" && source "$basedir/.build-env" # OS name if [ -n "$THINGOS_SHORT_NAME" ]; then osname=$THINGOS_SHORT_NAME else osname=$(source "$basedir/board/common/overlay/etc/version" && echo "$OS_SHORT_NAME") fi # OS version if [ -n "$THINGOS_VERSION" ]; then osversion=$THINGOS_VERSION else osversion=$(source "$basedir/board/common/overlay/etc/version" && echo "$OS_VERSION") fi # when the special "boards" keyword is used for board, simply list all known boards if [ "$board" == "boards" ]; then boards=$(ls "$basedir"/configs/*_defconfig | grep -v initramfs | grep -oE '\w+_defconfig$' | cut -d '_' -f 1) for b in $boards; do echo "$b" done exit 0 fi # when the special "all" keyword is used for board, all boards are processed, in turn if [ "$board" == "all" ]; then boards=$(ls "$basedir"/configs/*_defconfig | grep -v initramfs | grep -oE '\w+_defconfig$' | cut -d '_' -f 1) for b in $boards; do if ! $0 "$b" "$target"; then exit 1 fi done exit 0 fi outputdir=$basedir/output/$board boarddir=$basedir/board/$board if ! [ -f "$basedir/configs/${board}_defconfig" ]; then echo "unknown board: $board" exit 1 fi function prepare_target_dir() { if [ -L "$outputdir/target/var/lib" ]; then rm "$outputdir/target/var/lib" mkdir "$outputdir/target/var/lib" fi } mkdir -p "$outputdir" if ! [ -f "$outputdir/.config" ]; then make O="$outputdir" "${board}_defconfig" fi if [ "$target" == "mkimage" ]; then "${basedir}/support/scripts/mkimage.sh" ${board} elif [ "$target" == "mkrelease" ]; then test -f "$outputdir/images/$osname-$board.img" || "${basedir}/support/scripts/mkimage.sh" ${board} cp "$outputdir/images/$osname-$board.img" "$outputdir/images/$osname-$board-$osversion.img" echo "preparing compressed xz image" rm -f "$outputdir/images/$osname-$board-$osversion.img.xz" xz -6ek -T 0 "$outputdir/images/$osname-$board-$osversion.img" echo "your xz image is ready at $outputdir/images/$osname-$board-$osversion.img.xz" rm -f "$outputdir/images/$osname-$board-$osversion.img" elif [ "$target" == "clean-target" ]; then if [ -d "$outputdir/target" ]; then echo "removing target directory" rm -rf "$outputdir/target/"* echo "removing staging directory" rm -rf "$outputdir/staging/"* echo "removing images directory" rm -rf "$outputdir/images/"* fi if [ -d "$outputdir/build" ]; then echo "removing .stamp_target_installed files" find "$outputdir/build" -name .stamp_target_installed -print0 | xargs -0 -r rm echo "removing .stamp_staging_installed files" find "$outputdir/build" -name .stamp_staging_installed -print0 | xargs -0 -r rm echo "removing .stamp_host_installed files" find "$outputdir/build" -name .stamp_host_installed -print0 | xargs -0 -r rm echo "removing .stamp_images_installed files" find "$outputdir/build" -name .stamp_images_installed -print0 | xargs -0 -r rm echo "removing linux kernel build dir" make O="$outputdir" linux-dirclean fi if [ -f "$outputdir/.config" ]; then echo "removing .config file" rm -f "$outputdir/.config" fi echo "target is clean" elif [[ "$target" == initramfs* ]]; then extra_args=${target:10} $0 "${board}_initramfs" "$extra_args" if [ -z "$extra_args" ] && [ -x "$boarddir/cpinitramfs.sh" ]; then BINARIES_DIR=$basedir/output/${board}_initramfs/images/ BOARD_DIR=$boarddir "$boarddir/cpinitramfs.sh" fi elif [ "$target" == "all" ]; then prepare_target_dir make O="$outputdir" all elif [ -n "$target" ]; then prepare_target_dir make O="$outputdir" $target else # if [ -z "$target ] $0 "$board" all echo "build successful" fi ================================================ FILE: configs/nanopir1_defconfig ================================================ BR2_arm=y BR2_cortex_a7=y BR2_ARM_FPU_VFPV4=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-nanopir1" BR2_OPTIMIZE_2=y BR2_GLOBAL_PATCH_DIR="board/nanopir1" BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_TARGET_TZ_INFO=y BR2_ROOTFS_OVERLAY="board/common/overlay board/nanopir1/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/friendlyarm/linux/archive/ec36a7d5dfaa66f2b108114cc58ff2a3ddef26c6.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="sunxi" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/nanopir1/kernel-extra.config" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-nanopi-r1" BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config" BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_ALSA_UTILS=y BR2_PACKAGE_ALSA_UTILS_APLAY=y BR2_PACKAGE_GZIP=y BR2_PACKAGE_JQ=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_NTFS_3G=y BR2_PACKAGE_B43_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBSSH2=y BR2_PACKAGE_LIBFUSE=y BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y BR2_PACKAGE_LIBCAP=y BR2_PACKAGE_PCRE=y BR2_PACKAGE_PCRE_UCP=y BR2_PACKAGE_SEMVER_SORT=y BR2_PACKAGE_AUTOSSH=y BR2_PACKAGE_CHRONY=y BR2_PACKAGE_CRDA=y BR2_PACKAGE_DHCP=y BR2_PACKAGE_DHCP_CLIENT=y # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set BR2_PACKAGE_IPTABLES=y BR2_PACKAGE_IW=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NTP=y BR2_PACKAGE_NTP_SNTP=y # BR2_PACKAGE_NTP_NTPD is not set BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y BR2_PACKAGE_WPA_SUPPLICANT=y BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y BR2_PACKAGE_WPA_SUPPLICANT_EAP=y BR2_PACKAGE_WPA_SUPPLICANT_WPS=y BR2_PACKAGE_WPA_SUPPLICANT_CLI=y BR2_PACKAGE_BASH=y BR2_PACKAGE_LOGROTATE=y BR2_PACKAGE_CGROUPFS_MOUNT=y BR2_PACKAGE_TAR=y BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_PACKAGE_UTIL_LINUX_LOSETUP=y BR2_PACKAGE_UTIL_LINUX_PARTX=y BR2_PACKAGE_NANO=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="nanopi_h3" BR2_TARGET_UBOOT_CUSTOM_TARBALL=y BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/friendlyarm/u-boot/archive/5e8607b2899354b882dbd8b8a0c4ea725c051314.tar.gz" BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y # BR2_TARGET_UBOOT_FORMAT_BIN is not set BR2_TARGET_UBOOT_FORMAT_CUSTOM=y BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="PYTHON=python2" BR2_PACKAGE_HOST_E2FSPROGS=y BR2_PACKAGE_HOST_SWIG=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/nanopir1/boot.cmd" ================================================ FILE: configs/nanopir1_initramfs_defconfig ================================================ BR2_arm=y BR2_cortex_a7=y BR2_ARM_FPU_VFPV4=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-nanopir1-initramfs" BR2_OPTIMIZE_2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_ROOTFS_OVERLAY="board/common/overlay-initramfs board/nanopir1/overlay-initramfs" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox_initramfs.config" BR2_PACKAGE_UTIL_LINUX=y BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y BR2_TARGET_ROOTFS_CPIO_UIMAGE=y # BR2_TARGET_ROOTFS_TAR is not set ================================================ FILE: configs/radxacm3_defconfig ================================================ BR2_aarch64=y BR2_cortex_a55=y BR2_JLEVEL=4 BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-radxacm3" BR2_OPTIMIZE_2=y BR2_GLOBAL_PATCH_DIR="board/radxacm3" # BR2_COMPILER_PARANOID_UNSAFE_PATH is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_TARGET_TZ_INFO=y BR2_ROOTFS_OVERLAY="board/common/overlay board/radxacm3/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/radxa/kernel/archive/67a0c0ce87a07769ea7afd4a0978a0f22c76f8ce.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="rockchip_linux" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3566-radxa-cm3-rpi-cm4-io" BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config" BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_ALSA_UTILS=y BR2_PACKAGE_ALSA_UTILS_APLAY=y BR2_PACKAGE_GZIP=y BR2_PACKAGE_JQ=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_NTFS_3G=y BR2_PACKAGE_B43_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y BR2_PACKAGE_RKBIN=y BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBSSH2=y BR2_PACKAGE_LIBFUSE=y BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y BR2_PACKAGE_LIBCAP=y BR2_PACKAGE_SEMVER_SORT=y BR2_PACKAGE_AUTOSSH=y BR2_PACKAGE_BLUEZ5_UTILS=y BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y BR2_PACKAGE_BLUEZ5_UTILS_TOOLS=y BR2_PACKAGE_CHRONY=y BR2_PACKAGE_CRDA=y BR2_PACKAGE_DHCP=y BR2_PACKAGE_DHCP_CLIENT=y # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set BR2_PACKAGE_IPTABLES=y BR2_PACKAGE_IW=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NTP=y BR2_PACKAGE_NTP_SNTP=y # BR2_PACKAGE_NTP_NTPD is not set BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y BR2_PACKAGE_WPA_SUPPLICANT=y BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y BR2_PACKAGE_WPA_SUPPLICANT_EAP=y BR2_PACKAGE_WPA_SUPPLICANT_WPS=y BR2_PACKAGE_WPA_SUPPLICANT_CLI=y BR2_PACKAGE_BASH=y BR2_PACKAGE_LOGROTATE=y BR2_PACKAGE_CGROUPFS_MOUNT=y BR2_PACKAGE_TAR=y BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_PACKAGE_UTIL_LINUX_LOSETUP=y BR2_PACKAGE_UTIL_LINUX_PARTX=y BR2_PACKAGE_NANO=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="radxa-cm3-rpi-cm4-io-rk3566" BR2_TARGET_UBOOT_CUSTOM_TARBALL=y BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/radxa/u-boot/archive/693c4cd017e57a6af8e471494be5e8780c041b08.tar.gz" BR2_TARGET_UBOOT_NEEDS_DTC=y # BR2_TARGET_UBOOT_FORMAT_BIN is not set BR2_TARGET_UBOOT_FORMAT_DTB=y BR2_TARGET_UBOOT_FORMAT_ITB=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="BL31=../../../../board/radxacm3/rk3568_bl31_v1.32.elf" BR2_PACKAGE_HOST_UBOOT_TOOLS=y BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/radxacm3/boot.cmd" ================================================ FILE: configs/radxacm3_initramfs_defconfig ================================================ BR2_aarch64=y BR2_cortex_a55=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-radxacm3-initramfs" BR2_OPTIMIZE_2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_TARGET_GENERIC_HOSTNAME="" BR2_TARGET_GENERIC_ISSUE="" BR2_ROOTFS_OVERLAY="board/common/overlay-initramfs board/radxacm3/overlay-initramfs" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox_initramfs.config" BR2_PACKAGE_UTIL_LINUX=y BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y # BR2_TARGET_ROOTFS_TAR is not set ================================================ FILE: configs/raspberrypi2_defconfig ================================================ BR2_arm=y BR2_cortex_a7=y BR2_ARM_FPU_NEON_VFPV4=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-raspberrypi2" BR2_OPTIMIZE_2=y BR2_GLOBAL_PATCH_DIR="board/raspberrypi2" BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_TARGET_TZ_INFO=y BR2_ROOTFS_OVERLAY="board/common/overlay board/raspberrypi2/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/6f921e98008589258f97243fb6658d09750f0a2f.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcm2709" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2709-rpi-2-b" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config" BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_ALSA_UTILS=y BR2_PACKAGE_ALSA_UTILS_APLAY=y BR2_PACKAGE_GZIP=y BR2_PACKAGE_JQ=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_NTFS_3G=y BR2_PACKAGE_B43_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y BR2_PACKAGE_RPI_BT_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y BR2_PACKAGE_RPI_WIFI_FIRMWARE=y BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_RPI_ARMMEM=y BR2_PACKAGE_RPI_USERLAND=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBSSH2=y BR2_PACKAGE_LIBFUSE=y BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y BR2_PACKAGE_LIBCAP=y BR2_PACKAGE_PCRE=y BR2_PACKAGE_PCRE_UCP=y BR2_PACKAGE_SEMVER_SORT=y BR2_PACKAGE_AUTOSSH=y BR2_PACKAGE_CHRONY=y BR2_PACKAGE_CRDA=y BR2_PACKAGE_DHCP=y BR2_PACKAGE_DHCP_CLIENT=y # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set BR2_PACKAGE_IPTABLES=y BR2_PACKAGE_IW=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NTP=y BR2_PACKAGE_NTP_SNTP=y # BR2_PACKAGE_NTP_NTPD is not set BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y BR2_PACKAGE_WPA_SUPPLICANT=y BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y BR2_PACKAGE_WPA_SUPPLICANT_EAP=y BR2_PACKAGE_WPA_SUPPLICANT_WPS=y BR2_PACKAGE_WPA_SUPPLICANT_CLI=y BR2_PACKAGE_BASH=y BR2_PACKAGE_LOGROTATE=y BR2_PACKAGE_CGROUPFS_MOUNT=y BR2_PACKAGE_TAR=y BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_PACKAGE_UTIL_LINUX_LOSETUP=y BR2_PACKAGE_UTIL_LINUX_PARTX=y BR2_PACKAGE_NANO=y ================================================ FILE: configs/raspberrypi2_initramfs_defconfig ================================================ BR2_arm=y BR2_cortex_a7=y BR2_ARM_FPU_NEON_VFPV4=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-raspberrypi2-initramfs" BR2_OPTIMIZE_2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_TARGET_GENERIC_HOSTNAME="" BR2_TARGET_GENERIC_ISSUE="" BR2_ROOTFS_OVERLAY="board/common/overlay-initramfs board/raspberrypi/overlay-initramfs" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox_initramfs.config" BR2_PACKAGE_UTIL_LINUX=y BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y # BR2_TARGET_ROOTFS_TAR is not set ================================================ FILE: configs/raspberrypi3_defconfig ================================================ BR2_arm=y BR2_cortex_a7=y BR2_ARM_FPU_NEON_VFPV4=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-raspberrypi3" BR2_OPTIMIZE_2=y BR2_GLOBAL_PATCH_DIR="board/raspberrypi3" BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_TARGET_TZ_INFO=y BR2_ROOTFS_OVERLAY="board/common/overlay board/raspberrypi3/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/6f921e98008589258f97243fb6658d09750f0a2f.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2837-rpi-3-a-plus bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2710-rpi-cm3 bcm2710-rpi-zero-2" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config" BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_ALSA_UTILS=y BR2_PACKAGE_ALSA_UTILS_APLAY=y BR2_PACKAGE_GZIP=y BR2_PACKAGE_JQ=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_NTFS_3G=y BR2_PACKAGE_B43_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y BR2_PACKAGE_RPI_BT_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y BR2_PACKAGE_RPI_WIFI_FIRMWARE=y BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_RPI_ARMMEM=y BR2_PACKAGE_RPI_USERLAND=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBSSH2=y BR2_PACKAGE_LIBFUSE=y BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y BR2_PACKAGE_LIBCAP=y BR2_PACKAGE_PCRE=y BR2_PACKAGE_PCRE_UCP=y BR2_PACKAGE_SEMVER_SORT=y BR2_PACKAGE_AUTOSSH=y BR2_PACKAGE_CHRONY=y BR2_PACKAGE_CRDA=y BR2_PACKAGE_DHCP=y BR2_PACKAGE_DHCP_CLIENT=y # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set BR2_PACKAGE_IPTABLES=y BR2_PACKAGE_IW=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NTP=y BR2_PACKAGE_NTP_SNTP=y # BR2_PACKAGE_NTP_NTPD is not set BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y BR2_PACKAGE_WPA_SUPPLICANT=y BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y BR2_PACKAGE_WPA_SUPPLICANT_EAP=y BR2_PACKAGE_WPA_SUPPLICANT_WPS=y BR2_PACKAGE_WPA_SUPPLICANT_CLI=y BR2_PACKAGE_BASH=y BR2_PACKAGE_LOGROTATE=y BR2_PACKAGE_CGROUPFS_MOUNT=y BR2_PACKAGE_TAR=y BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_PACKAGE_UTIL_LINUX_LOSETUP=y BR2_PACKAGE_UTIL_LINUX_PARTX=y BR2_PACKAGE_NANO=y ================================================ FILE: configs/raspberrypi3_initramfs_defconfig ================================================ BR2_arm=y BR2_cortex_a7=y BR2_ARM_FPU_NEON_VFPV4=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-raspberrypi3-initramfs" BR2_OPTIMIZE_2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_TARGET_GENERIC_HOSTNAME="" BR2_TARGET_GENERIC_ISSUE="" BR2_ROOTFS_OVERLAY="board/common/overlay-initramfs board/raspberrypi/overlay-initramfs" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox_initramfs.config" BR2_PACKAGE_UTIL_LINUX=y BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y # BR2_TARGET_ROOTFS_TAR is not set ================================================ FILE: configs/raspberrypi4_defconfig ================================================ BR2_arm=y BR2_cortex_a72=y BR2_ARM_FPU_NEON_FP_ARMV8=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-raspberrypi4" BR2_OPTIMIZE_2=y BR2_GLOBAL_PATCH_DIR="board/raspberrypi4" BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_TARGET_TZ_INFO=y BR2_ROOTFS_OVERLAY="board/common/overlay board/raspberrypi4/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/6f921e98008589258f97243fb6658d09750f0a2f.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2711-rpi-4-b bcm2711-rpi-cm4" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config" BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_ALSA_UTILS=y BR2_PACKAGE_ALSA_UTILS_APLAY=y BR2_PACKAGE_GZIP=y BR2_PACKAGE_JQ=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_NTFS_3G=y BR2_PACKAGE_B43_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y BR2_PACKAGE_RPI_BT_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y BR2_PACKAGE_RPI_WIFI_FIRMWARE=y BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_RPI_ARMMEM=y BR2_PACKAGE_RPI_USERLAND=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBSSH2=y BR2_PACKAGE_LIBFUSE=y BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y BR2_PACKAGE_LIBCAP=y BR2_PACKAGE_PCRE=y BR2_PACKAGE_PCRE_UCP=y BR2_PACKAGE_SEMVER_SORT=y BR2_PACKAGE_AUTOSSH=y BR2_PACKAGE_CHRONY=y BR2_PACKAGE_CRDA=y BR2_PACKAGE_DHCP=y BR2_PACKAGE_DHCP_CLIENT=y # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set BR2_PACKAGE_IPTABLES=y BR2_PACKAGE_IW=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NTP=y BR2_PACKAGE_NTP_SNTP=y # BR2_PACKAGE_NTP_NTPD is not set BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y BR2_PACKAGE_WPA_SUPPLICANT=y BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y BR2_PACKAGE_WPA_SUPPLICANT_EAP=y BR2_PACKAGE_WPA_SUPPLICANT_WPS=y BR2_PACKAGE_WPA_SUPPLICANT_CLI=y BR2_PACKAGE_BASH=y BR2_PACKAGE_LOGROTATE=y BR2_PACKAGE_CGROUPFS_MOUNT=y BR2_PACKAGE_TAR=y BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_PACKAGE_UTIL_LINUX_LOSETUP=y BR2_PACKAGE_UTIL_LINUX_PARTX=y BR2_PACKAGE_NANO=y ================================================ FILE: configs/raspberrypi4_initramfs_defconfig ================================================ BR2_arm=y BR2_cortex_a7=y BR2_ARM_FPU_NEON_VFPV4=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-raspberrypi4-initramfs" BR2_OPTIMIZE_2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_TARGET_GENERIC_HOSTNAME="" BR2_TARGET_GENERIC_ISSUE="" BR2_ROOTFS_OVERLAY="board/common/overlay-initramfs board/raspberrypi/overlay-initramfs" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox_initramfs.config" BR2_PACKAGE_UTIL_LINUX=y BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y # BR2_TARGET_ROOTFS_TAR is not set ================================================ FILE: configs/raspberrypi64_defconfig ================================================ BR2_aarch64=y BR2_cortex_a72=y BR2_JLEVEL=4 BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-raspberrypi64" BR2_OPTIMIZE_2=y BR2_GLOBAL_PATCH_DIR="board/raspberrypi64" # BR2_COMPILER_PARANOID_UNSAFE_PATH is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_TARGET_TZ_INFO=y BR2_ROOTFS_OVERLAY="board/common/overlay board/raspberrypi64/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/6f921e98008589258f97243fb6658d09750f0a2f.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" BR2_LINUX_KERNEL_IMAGEGZ=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2837-rpi-3-a-plus broadcom/bcm2710-rpi-3-b broadcom/bcm2710-rpi-3-b-plus broadcom/bcm2710-rpi-cm3 broadcom/bcm2837-rpi-cm3-io3 broadcom/bcm2710-rpi-zero-2 broadcom/bcm2711-rpi-4-b broadcom/bcm2711-rpi-cm4" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config" BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_ALSA_UTILS=y BR2_PACKAGE_ALSA_UTILS_APLAY=y BR2_PACKAGE_GZIP=y BR2_PACKAGE_JQ=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_NTFS_3G=y BR2_PACKAGE_B43_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y BR2_PACKAGE_RPI_BT_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y BR2_PACKAGE_RPI_WIFI_FIRMWARE=y BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBSSH2=y BR2_PACKAGE_LIBFUSE=y BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y BR2_PACKAGE_LIBCAP=y BR2_PACKAGE_PCRE=y BR2_PACKAGE_PCRE_UCP=y BR2_PACKAGE_SEMVER_SORT=y BR2_PACKAGE_AUTOSSH=y BR2_PACKAGE_CHRONY=y BR2_PACKAGE_CRDA=y BR2_PACKAGE_DHCP=y BR2_PACKAGE_DHCP_CLIENT=y # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set BR2_PACKAGE_IPTABLES=y BR2_PACKAGE_IW=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NTP=y BR2_PACKAGE_NTP_SNTP=y # BR2_PACKAGE_NTP_NTPD is not set BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y BR2_PACKAGE_WPA_SUPPLICANT=y BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y BR2_PACKAGE_WPA_SUPPLICANT_EAP=y BR2_PACKAGE_WPA_SUPPLICANT_WPS=y BR2_PACKAGE_WPA_SUPPLICANT_CLI=y BR2_PACKAGE_BASH=y BR2_PACKAGE_LOGROTATE=y BR2_PACKAGE_CGROUPFS_MOUNT=y BR2_PACKAGE_TAR=y BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_PACKAGE_UTIL_LINUX_LOSETUP=y BR2_PACKAGE_UTIL_LINUX_PARTX=y BR2_PACKAGE_NANO=y ================================================ FILE: configs/raspberrypi64_initramfs_defconfig ================================================ BR2_arm=y BR2_cortex_a7=y BR2_ARM_FPU_NEON_VFPV4=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-raspberrypi64-initramfs" BR2_OPTIMIZE_2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_TARGET_GENERIC_HOSTNAME="" BR2_TARGET_GENERIC_ISSUE="" BR2_ROOTFS_OVERLAY="board/common/overlay-initramfs board/raspberrypi/overlay-initramfs" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox_initramfs.config" BR2_PACKAGE_UTIL_LINUX=y BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y # BR2_TARGET_ROOTFS_TAR is not set ================================================ FILE: configs/raspberrypi_defconfig ================================================ BR2_arm=y BR2_arm1176jzf_s=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-raspberrypi" BR2_OPTIMIZE_2=y BR2_GLOBAL_PATCH_DIR="board/raspberrypi" BR2_TOOLCHAIN_BUILDROOT_GLIBC=y BR2_TOOLCHAIN_BUILDROOT_CXX=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_TARGET_TZ_INFO=y BR2_ROOTFS_OVERLAY="board/common/overlay board/raspberrypi/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/6f921e98008589258f97243fb6658d09750f0a2f.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-zero bcm2708-rpi-zero-w bcm2708-rpi-b bcm2708-rpi-b-plus bcm2708-rpi-cm" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config" BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_ALSA_UTILS=y BR2_PACKAGE_ALSA_UTILS_APLAY=y BR2_PACKAGE_GZIP=y BR2_PACKAGE_JQ=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_NTFS_3G=y BR2_PACKAGE_B43_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y BR2_PACKAGE_RPI_BT_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y BR2_PACKAGE_RPI_WIFI_FIRMWARE=y BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_RPI_ARMMEM=y BR2_PACKAGE_RPI_USERLAND=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBSSH2=y BR2_PACKAGE_LIBFUSE=y BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y BR2_PACKAGE_LIBCAP=y BR2_PACKAGE_PCRE=y BR2_PACKAGE_PCRE_UCP=y BR2_PACKAGE_SEMVER_SORT=y BR2_PACKAGE_AUTOSSH=y BR2_PACKAGE_CHRONY=y BR2_PACKAGE_CRDA=y BR2_PACKAGE_DHCP=y BR2_PACKAGE_DHCP_CLIENT=y # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set BR2_PACKAGE_IPTABLES=y BR2_PACKAGE_IW=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NTP=y BR2_PACKAGE_NTP_SNTP=y # BR2_PACKAGE_NTP_NTPD is not set BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y BR2_PACKAGE_WPA_SUPPLICANT=y BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y BR2_PACKAGE_WPA_SUPPLICANT_EAP=y BR2_PACKAGE_WPA_SUPPLICANT_WPS=y BR2_PACKAGE_WPA_SUPPLICANT_CLI=y BR2_PACKAGE_BASH=y BR2_PACKAGE_LOGROTATE=y BR2_PACKAGE_CGROUPFS_MOUNT=y BR2_PACKAGE_TAR=y BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_PACKAGE_UTIL_LINUX_LOSETUP=y BR2_PACKAGE_UTIL_LINUX_PARTX=y BR2_PACKAGE_NANO=y ================================================ FILE: configs/raspberrypi_initramfs_defconfig ================================================ BR2_arm=y BR2_arm1176jzf_s=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-raspberrypi-initramfs" BR2_OPTIMIZE_2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/raspberrypi/tools/archive/5caa7046982f0539cf5380f94da04b31129ed521.tar.gz" BR2_TOOLCHAIN_EXTERNAL_REL_BIN_PATH="arm-bcm2708/arm-linux-gnueabihf/bin" BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-linux-gnueabihf" BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y BR2_TOOLCHAIN_EXTERNAL_CXX=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_TARGET_GENERIC_HOSTNAME="" BR2_TARGET_GENERIC_ISSUE="" BR2_ROOTFS_OVERLAY="board/common/overlay-initramfs board/raspberrypi/overlay-initramfs" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox_initramfs.config" BR2_PACKAGE_UTIL_LINUX=y BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y # BR2_TARGET_ROOTFS_TAR is not set ================================================ FILE: configs/rockpi4b_defconfig ================================================ BR2_aarch64=y BR2_cortex_a72_a53=y BR2_JLEVEL=4 BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-rockpi4b" BR2_OPTIMIZE_2=y BR2_GLOBAL_PATCH_DIR="board/rockpi4b" # BR2_COMPILER_PARANOID_UNSAFE_PATH is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_TARGET_TZ_INFO=y BR2_ROOTFS_OVERLAY="board/common/overlay board/rockpi4b/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/radxa/kernel/archive/4e1e1f3520cd63c496b16104d7f7cb524a206a83.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="rockchip_linux" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/rockpi4b/linux.fragment" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-rock-pi-4b" BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config" BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_ALSA_UTILS=y BR2_PACKAGE_ALSA_UTILS_APLAY=y BR2_PACKAGE_GZIP=y BR2_PACKAGE_JQ=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_NTFS_3G=y BR2_PACKAGE_B43_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y BR2_PACKAGE_RKBIN=y BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBSSH2=y BR2_PACKAGE_LIBFUSE=y BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y BR2_PACKAGE_LIBCAP=y BR2_PACKAGE_SEMVER_SORT=y BR2_PACKAGE_AUTOSSH=y BR2_PACKAGE_BLUEZ5_UTILS=y BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y BR2_PACKAGE_BLUEZ5_UTILS_TOOLS=y BR2_PACKAGE_CHRONY=y BR2_PACKAGE_CRDA=y BR2_PACKAGE_DHCP=y BR2_PACKAGE_DHCP_CLIENT=y # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set BR2_PACKAGE_IPTABLES=y BR2_PACKAGE_IW=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NTP=y BR2_PACKAGE_NTP_SNTP=y # BR2_PACKAGE_NTP_NTPD is not set BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y BR2_PACKAGE_WPA_SUPPLICANT=y BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y BR2_PACKAGE_WPA_SUPPLICANT_EAP=y BR2_PACKAGE_WPA_SUPPLICANT_WPS=y BR2_PACKAGE_WPA_SUPPLICANT_CLI=y BR2_PACKAGE_BASH=y BR2_PACKAGE_LOGROTATE=y BR2_PACKAGE_CGROUPFS_MOUNT=y BR2_PACKAGE_TAR=y BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_PACKAGE_UTIL_LINUX_LOSETUP=y BR2_PACKAGE_UTIL_LINUX_PARTX=y BR2_PACKAGE_NANO=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_TARBALL=y BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/radxa/u-boot/archive/8e67d581610eb7abd97885e1069b94dcf15b592c.tar.gz" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rock-pi-4b-rk3399" BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_NEEDS_PYTHON3=y BR2_TARGET_UBOOT_FORMAT_DTB_BIN=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/rockpi4b/boot.cmd" ================================================ FILE: configs/rockpi4b_initramfs_defconfig ================================================ BR2_aarch64=y BR2_cortex_a55=y BR2_CCACHE=y BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-rockpi4b-initramfs" BR2_OPTIMIZE_2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_TARGET_GENERIC_HOSTNAME="" BR2_TARGET_GENERIC_ISSUE="" BR2_ROOTFS_OVERLAY="board/common/overlay-initramfs board/rockpi4b/overlay-initramfs" BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox_initramfs.config" BR2_PACKAGE_UTIL_LINUX=y BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y # BR2_TARGET_ROOTFS_TAR is not set ================================================ FILE: docs/conf/asciidoc-text.conf ================================================ # Refer to following asciidoc documentation: # http://www.methods.co.nz/asciidoc/userguide.html # In particular sections "Macros" and "Attribute References" # # For hyperlinks, show 'link text [URL]' (if link text provided) or 'URL' [http-inlinemacro] {0=}{0? [}{name}:{target}{0?]} [https-inlinemacro] {0=}{0? [}{name}:{target}{0?]} [ftp-inlinemacro] {0=}{0? [}{name}:{target}{0?]} [file-inlinemacro] {0=}{0? [}{name}:{target}{0?]} [irc-inlinemacro] {0=}{0? [}{name}:{target}{0?]} [mailto-inlinemacro] {0=}{0? [}{name}:{target}{0?]} # Hide image representation from text manual [image-inlinemacro] {empty} [image-blockmacro] {empty} ================================================ FILE: docs/manual/adding-board-support.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[adding-board-support]] == Adding support for a particular board Buildroot contains basic configurations for several publicly available hardware boards, so that users of such a board can easily build a system that is known to work. You are welcome to add support for other boards to Buildroot too. To do so, you need to create a normal Buildroot configuration that builds a basic system for the hardware: (internal) toolchain, kernel, bootloader, filesystem and a simple BusyBox-only userspace. No specific package should be selected: the configuration should be as minimal as possible, and should only build a working basic BusyBox system for the target platform. You can of course use more complicated configurations for your internal projects, but the Buildroot project will only integrate basic board configurations. This is because package selections are highly application-specific. Once you have a known working configuration, run +make savedefconfig+. This will generate a minimal +defconfig+ file at the root of the Buildroot source tree. Move this file into the +configs/+ directory, and rename it +_defconfig+. If the configuration is a bit more complicated, it is nice to manually reformat it and separate it into sections, with a comment before each section. Typical sections are _Architecture_, _Toolchain options_ (typically just linux headers version), _Firmware_, _Bootloader_, _Kernel_, and _Filesystem_. Always use fixed versions or commit hashes for the different components, not the "latest" version. For example, set +BR2_LINUX_KERNEL_CUSTOM_VERSION=y+ and +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE+ to the kernel version you tested with. It is recommended to use as much as possible upstream versions of the Linux kernel and bootloaders, and to use as much as possible default kernel and bootloader configurations. If they are incorrect for your board, or no default exists, we encourage you to send fixes to the corresponding upstream projects. However, in the mean time, you may want to store kernel or bootloader configuration or patches specific to your target platform. To do so, create a directory +board/+ and a subdirectory +board//+. You can then store your patches and configurations in these directories, and reference them from the main Buildroot configuration. Refer to xref:customize[] for more details. ================================================ FILE: docs/manual/adding-packages-asciidoc.txt ================================================ // -*- mode:doc; -*- // vim: syntax=asciidoc === Infrastructure for asciidoc documents [[asciidoc-documents-tutorial]] The Buildroot manual, which you are currently reading, is entirely written using the http://asciidoc.org/[AsciiDoc] mark-up syntax. The manual is then rendered to many formats: * html * split-html * pdf * epub * text Although Buildroot only contains one document written in AsciiDoc, there is, as for packages, an infrastructure for rendering documents using the AsciiDoc syntax. Also as for packages, the AsciiDoc infrastructure is available from a xref:outside-br-custom[br2-external tree]. This allows documentation for a br2-external tree to match the Buildroot documentation, as it will be rendered to the same formats and use the same layout and theme. ==== +asciidoc-document+ tutorial Whereas package infrastructures are suffixed with +-package+, the document infrastructures are suffixed with +-document+. So, the AsciiDoc infrastructure is named +asciidoc-document+. Here is an example to render a simple AsciiDoc document. ---- 01: ################################################################################ 02: # 03: # foo-document 04: # 05: ################################################################################ 06: 07: FOO_SOURCES = $(sort $(wildcard $(pkgdir)/*)) 08: $(eval $(call asciidoc-document)) ---- On line 7, the Makefile declares what the sources of the document are. Currently, it is expected that the document's sources are only local; Buildroot will not attempt to download anything to render a document. Thus, you must indicate where the sources are. Usually, the string above is sufficient for a document with no sub-directory structure. On line 8, we call the +asciidoc-document+ function, which generates all the Makefile code necessary to render the document. ==== +asciidoc-document+ reference The list of variables that can be set in a +.mk+ file to give metadata information is (assuming the document name is +foo+) : * +FOO_SOURCES+, mandatory, defines the source files for the document. * +FOO_RESOURCES+, optional, may contain a space-separated list of paths to one or more directories containing so-called resources (like CSS or images). By default, empty. * +FOO_DEPENDENCIES+, optional, the list of packages (most probably, host-packages) that must be built before building this document. There are also additional hooks (see xref:hooks[] for general information on hooks), that a document may set to define extra actions to be done at various steps: * +FOO_POST_RSYNC_HOOKS+ to run additional commands after the sources have been copied by Buildroot. This can for example be used to generate part of the manual with information extracted from the tree. As an example, Buildroot uses this hook to generate the tables in the appendices. * +FOO_CHECK_DEPENDENCIES_HOOKS+ to run additional tests on required components to generate the document. In AsciiDoc, it is possible to call filters, that is, programs that will parse an AsciiDoc block and render it appropriately (e.g. http://ditaa.sourceforge.net/[ditaa] or https://pythonhosted.org/aafigure/[aafigure]). * +FOO_CHECK_DEPENDENCIES__HOOKS+, to run additional tests for the specified format ++ (see the list of rendered formats, above). Here is a complete example that uses all variables and all hooks: ---- 01: ################################################################################ 02: # 03: # foo-document 04: # 05: ################################################################################ 06: 07: FOO_SOURCES = $(sort $(wildcard $(pkgdir)/*)) 08: FOO_RESOURCES = $(sort $(wildcard $(pkgdir)/ressources)) 09: 10: define FOO_GEN_EXTRA_DOC 11: /path/to/generate-script --outdir=$(@D) 12: endef 13: FOO_POST_RSYNC_HOOKS += FOO_GEN_EXTRA_DOC 14: 15: define FOO_CHECK_MY_PROG 16: if ! which my-prog >/dev/null 2>&1; then \ 17: echo "You need my-prog to generate the foo document"; \ 18: exit 1; \ 19: fi 20: endef 21: FOO_CHECK_DEPENDENCIES_HOOKS += FOO_CHECK_MY_PROG 22: 23: define FOO_CHECK_MY_OTHER_PROG 24: if ! which my-other-prog >/dev/null 2>&1; then \ 25: echo "You need my-other-prog to generate the foo document as PDF"; \ 26: exit 1; \ 27: fi 28: endef 29: FOO_CHECK_DEPENDENCIES_PDF_HOOKS += FOO_CHECK_MY_OTHER_PROG 30: 31: $(eval $(call asciidoc-document)) ---- ================================================ FILE: docs/manual/adding-packages-autotools.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for autotools-based packages [[autotools-package-tutorial]] ==== +autotools-package+ tutorial First, let's see how to write a +.mk+ file for an autotools-based package, with an example : ------------------------ 01: ################################################################################ 02: # 03: # libfoo 04: # 05: ################################################################################ 06: 07: LIBFOO_VERSION = 1.0 08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz 09: LIBFOO_SITE = http://www.foosoftware.org/download 10: LIBFOO_INSTALL_STAGING = YES 11: LIBFOO_INSTALL_TARGET = NO 12: LIBFOO_CONF_OPTS = --disable-shared 13: LIBFOO_DEPENDENCIES = libglib2 host-pkgconf 14: 15: $(eval $(autotools-package)) ------------------------ On line 7, we declare the version of the package. On line 8 and 9, we declare the name of the tarball (xz-ed tarball recommended) and the location of the tarball on the Web. Buildroot will automatically download the tarball from this location. On line 10, we tell Buildroot to install the package to the staging directory. The staging directory, located in +output/staging/+ is the directory where all the packages are installed, including their development files, etc. By default, packages are not installed to the staging directory, since usually, only libraries need to be installed in the staging directory: their development files are needed to compile other libraries or applications depending on them. Also by default, when staging installation is enabled, packages are installed in this location using the +make install+ command. On line 11, we tell Buildroot to not install the package to the target directory. This directory contains what will become the root filesystem running on the target. For purely static libraries, it is not necessary to install them in the target directory because they will not be used at runtime. By default, target installation is enabled; setting this variable to NO is almost never needed. Also by default, packages are installed in this location using the +make install+ command. On line 12, we tell Buildroot to pass a custom configure option, that will be passed to the +./configure+ script before configuring and building the package. On line 13, we declare our dependencies, so that they are built before the build process of our package starts. Finally, on line line 15, we invoke the +autotools-package+ macro that generates all the Makefile rules that actually allows the package to be built. [[autotools-package-reference]] ==== +autotools-package+ reference The main macro of the autotools package infrastructure is +autotools-package+. It is similar to the +generic-package+ macro. The ability to have target and host packages is also available, with the +host-autotools-package+ macro. Just like the generic infrastructure, the autotools infrastructure works by defining a number of variables before calling the +autotools-package+ macro. First, all the package metadata information variables that exist in the generic infrastructure also exist in the autotools infrastructure: +LIBFOO_VERSION+, +LIBFOO_SOURCE+, +LIBFOO_PATCH+, +LIBFOO_SITE+, +LIBFOO_SUBDIR+, +LIBFOO_DEPENDENCIES+, +LIBFOO_INSTALL_STAGING+, +LIBFOO_INSTALL_TARGET+. A few additional variables, specific to the autotools infrastructure, can also be defined. Many of them are only useful in very specific cases, typical packages will therefore only use a few of them. * +LIBFOO_SUBDIR+ may contain the name of a subdirectory inside the package that contains the configure script. This is useful, if for example, the main configure script is not at the root of the tree extracted by the tarball. If +HOST_LIBFOO_SUBDIR+ is not specified, it defaults to +LIBFOO_SUBDIR+. * +LIBFOO_CONF_ENV+, to specify additional environment variables to pass to the configure script. By default, empty. * +LIBFOO_CONF_OPTS+, to specify additional configure options to pass to the configure script. By default, empty. * +LIBFOO_MAKE+, to specify an alternate +make+ command. This is typically useful when parallel make is enabled in the configuration (using +BR2_JLEVEL+) but that this feature should be disabled for the given package, for one reason or another. By default, set to +$(MAKE)+. If parallel building is not supported by the package, then it should be set to +LIBFOO_MAKE=$(MAKE1)+. * +LIBFOO_MAKE_ENV+, to specify additional environment variables to pass to make in the build step. These are passed before the +make+ command. By default, empty. * +LIBFOO_MAKE_OPTS+, to specify additional variables to pass to make in the build step. These are passed after the +make+ command. By default, empty. * +LIBFOO_AUTORECONF+, tells whether the package should be autoreconfigured or not (i.e. if the configure script and Makefile.in files should be re-generated by re-running autoconf, automake, libtool, etc.). Valid values are +YES+ and +NO+. By default, the value is +NO+ * +LIBFOO_AUTORECONF_ENV+, to specify additional environment variables to pass to the 'autoreconf' program if +LIBFOO_AUTORECONF=YES+. These are passed in the environment of the 'autoreconf' command. By default, empty. * +LIBFOO_AUTORECONF_OPTS+ to specify additional options passed to the 'autoreconf' program if +LIBFOO_AUTORECONF=YES+. By default, empty. * +LIBFOO_GETTEXTIZE+, tells whether the package should be gettextized or not (i.e. if the package uses a different gettext version than Buildroot provides, and it is needed to run 'gettextize'.) Only valid when +LIBFOO_AUTORECONF=YES+. Valid values are +YES+ and +NO+. The default is +NO+. * +LIBFOO_GETTEXTIZE_OPTS+, to specify additional options passed to the 'gettextize' program, if +LIBFOO_GETTEXTIZE=YES+. You may use that if, for example, the +.po+ files are not located in the standard place (i.e. in +po/+ at the root of the package.) By default, '-f'. * +LIBFOO_LIBTOOL_PATCH+ tells whether the Buildroot patch to fix libtool cross-compilation issues should be applied or not. Valid values are +YES+ and +NO+. By default, the value is +YES+ * +LIBFOO_INSTALL_STAGING_OPTS+ contains the make options used to install the package to the staging directory. By default, the value is +DESTDIR=$(STAGING_DIR) install+, which is correct for most autotools packages. It is still possible to override it. * +LIBFOO_INSTALL_TARGET_OPTS+ contains the make options used to install the package to the target directory. By default, the value is +DESTDIR=$(TARGET_DIR) install+. The default value is correct for most autotools packages, but it is still possible to override it if needed. With the autotools infrastructure, all the steps required to build and install the packages are already defined, and they generally work well for most autotools-based packages. However, when required, it is still possible to customize what is done in any particular step: * By adding a post-operation hook (after extract, patch, configure, build or install). See xref:hooks[] for details. * By overriding one of the steps. For example, even if the autotools infrastructure is used, if the package +.mk+ file defines its own +LIBFOO_CONFIGURE_CMDS+ variable, it will be used instead of the default autotools one. However, using this method should be restricted to very specific cases. Do not use it in the general case. ================================================ FILE: docs/manual/adding-packages-cargo.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Integration of Cargo-based packages Cargo is the package manager for the Rust programming language. It allows the user to build programs or libraries written in Rust, but it also downloads and manages their dependencies, to ensure repeatable builds. Cargo packages are called "crates". [[cargo-package-tutorial]] ==== Cargo-based package's +Config.in+ file The +Config.in+ file of Cargo-based package 'foo' should contain: --------------------------- 01: config BR2_PACKAGE_FOO 02: bool "foo" 03: depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS 04: select BR2_PACKAGE_HOST_RUSTC 05: help 06: This is a comment that explains what foo is. 07: 08: http://foosoftware.org/foo/ --------------------------- ==== Cargo-based package's +.mk+ file Buildroot does not (yet) provide a dedicated package infrastructure for Cargo-based packages. So, we will explain how to write a +.mk+ file for such a package. Let's start with an example: ------------------------------ 01: ################################################################################ 02: # 03: # foo 04: # 05: ################################################################################ 06: 07: FOO_VERSION = 1.0 08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz 09: FOO_SITE = http://www.foosoftware.org/download 10: FOO_LICENSE = GPL-3.0+ 11: FOO_LICENSE_FILES = COPYING 12: 13: FOO_DEPENDENCIES = host-rustc 14: 15: FOO_CARGO_ENV = CARGO_HOME=$(HOST_DIR)/share/cargo 16: 17: FOO_BIN_DIR = target/$(RUSTC_TARGET_NAME)/$(FOO_CARGO_MODE) 18: 19: FOO_CARGO_OPTS = \ 20: $(if $(BR2_ENABLE_DEBUG),,--release) \ 21: --target=$(RUSTC_TARGET_NAME) \ 22: --manifest-path=$(@D)/Cargo.toml 23: 24: define FOO_BUILD_CMDS 25: $(TARGET_MAKE_ENV) $(FOO_CARGO_ENV) \ 26: cargo build $(FOO_CARGO_OPTS) 27: endef 28: 29: define FOO_INSTALL_TARGET_CMDS 30: $(INSTALL) -D -m 0755 $(@D)/$(FOO_BIN_DIR)/foo \ 31: $(TARGET_DIR)/usr/bin/foo 32: endef 33: 34: $(eval $(generic-package)) -------------------------------- The Makefile starts with the definition of the standard variables for package declaration (lines 7 to 11). As seen in line 34, it is based on the xref:generic-package-tutorial[+generic-package+ infrastructure]. So, it defines the variables required by this particular infrastructure, where Cargo is invoked: * +FOO_BUILD_CMDS+: Cargo is invoked to perform the build. The options required to configure the cross-compilation of the package are passed via +FOO_CONF_OPTS+. * +FOO_INSTALL_TARGET_CMDS+: The binary executable generated is installed on the target. In order to have Cargo available for the build, +FOO_DEPENDENCIES+ needs to contain +host-cargo+. To sum it up, to add a new Cargo-based package, the Makefile example can be copied verbatim then edited to replace all occurences of +FOO+ with the uppercase name of the new package and update the values of the standard variables. ==== About Dependencies Management A crate can depend on other libraries from crates.io or git repositories, listed in its Cargo.toml file. Before starting a build, Cargo usually downloads automatically them. This step can also be performed independently, via the +cargo fetch+ command. Cargo maintains a local cache of the registry index and of git checkouts of the crates, whose location is given by +$CARGO_HOME+. As seen in the package Makefile example at line 15, this environment variable is set to +$(HOST_DIR)/share/cargo+. This dependency download mechanism is not convenient when performing an offline build, as Cargo will fail to fetch the dependencies. In that case, it is advised to generate a tarball of the dependencies using the +cargo vendor+ and add it to +FOO_EXTRA_DOWNLOADS+. ================================================ FILE: docs/manual/adding-packages-cmake.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for CMake-based packages [[cmake-package-tutorial]] ==== +cmake-package+ tutorial First, let's see how to write a +.mk+ file for a CMake-based package, with an example : ------------------------ 01: ################################################################################ 02: # 03: # libfoo 04: # 05: ################################################################################ 06: 07: LIBFOO_VERSION = 1.0 08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz 09: LIBFOO_SITE = http://www.foosoftware.org/download 10: LIBFOO_INSTALL_STAGING = YES 11: LIBFOO_INSTALL_TARGET = NO 12: LIBFOO_CONF_OPTS = -DBUILD_DEMOS=ON 13: LIBFOO_DEPENDENCIES = libglib2 host-pkgconf 14: 15: $(eval $(cmake-package)) ------------------------ On line 7, we declare the version of the package. On line 8 and 9, we declare the name of the tarball (xz-ed tarball recommended) and the location of the tarball on the Web. Buildroot will automatically download the tarball from this location. On line 10, we tell Buildroot to install the package to the staging directory. The staging directory, located in +output/staging/+ is the directory where all the packages are installed, including their development files, etc. By default, packages are not installed to the staging directory, since usually, only libraries need to be installed in the staging directory: their development files are needed to compile other libraries or applications depending on them. Also by default, when staging installation is enabled, packages are installed in this location using the +make install+ command. On line 11, we tell Buildroot to not install the package to the target directory. This directory contains what will become the root filesystem running on the target. For purely static libraries, it is not necessary to install them in the target directory because they will not be used at runtime. By default, target installation is enabled; setting this variable to NO is almost never needed. Also by default, packages are installed in this location using the +make install+ command. On line 12, we tell Buildroot to pass custom options to CMake when it is configuring the package. On line 13, we declare our dependencies, so that they are built before the build process of our package starts. Finally, on line line 15, we invoke the +cmake-package+ macro that generates all the Makefile rules that actually allows the package to be built. [[cmake-package-reference]] ==== +cmake-package+ reference The main macro of the CMake package infrastructure is +cmake-package+. It is similar to the +generic-package+ macro. The ability to have target and host packages is also available, with the +host-cmake-package+ macro. Just like the generic infrastructure, the CMake infrastructure works by defining a number of variables before calling the +cmake-package+ macro. First, all the package metadata information variables that exist in the generic infrastructure also exist in the CMake infrastructure: +LIBFOO_VERSION+, +LIBFOO_SOURCE+, +LIBFOO_PATCH+, +LIBFOO_SITE+, +LIBFOO_SUBDIR+, +LIBFOO_DEPENDENCIES+, +LIBFOO_INSTALL_STAGING+, +LIBFOO_INSTALL_TARGET+. A few additional variables, specific to the CMake infrastructure, can also be defined. Many of them are only useful in very specific cases, typical packages will therefore only use a few of them. * +LIBFOO_SUBDIR+ may contain the name of a subdirectory inside the package that contains the main CMakeLists.txt file. This is useful, if for example, the main CMakeLists.txt file is not at the root of the tree extracted by the tarball. If +HOST_LIBFOO_SUBDIR+ is not specified, it defaults to +LIBFOO_SUBDIR+. * +LIBFOO_CONF_ENV+, to specify additional environment variables to pass to CMake. By default, empty. * +LIBFOO_CONF_OPTS+, to specify additional configure options to pass to CMake. By default, empty. A number of common CMake options are set by the +cmake-package+ infrastructure; so it is normally not necessary to set them in the package's +*.mk+ file unless you want to override them: ** +CMAKE_BUILD_TYPE+ is driven by +BR2_ENABLE_RUNTIME_DEBUG+; ** +CMAKE_INSTALL_PREFIX+; ** +BUILD_SHARED_LIBS+ is driven by +BR2_STATIC_LIBS+; ** +BUILD_DOC+, +BUILD_DOCS+ are disabled; ** +BUILD_EXAMPLE+, +BUILD_EXAMPLES+ are disabled; ** +BUILD_TEST+, +BUILD_TESTS+, +BUILD_TESTING+ are disabled. * +LIBFOO_SUPPORTS_IN_SOURCE_BUILD = NO+ should be set when the package cannot be built inside the source tree but needs a separate build directory. * +LIBFOO_MAKE+, to specify an alternate +make+ command. This is typically useful when parallel make is enabled in the configuration (using +BR2_JLEVEL+) but that this feature should be disabled for the given package, for one reason or another. By default, set to +$(MAKE)+. If parallel building is not supported by the package, then it should be set to +LIBFOO_MAKE=$(MAKE1)+. * +LIBFOO_MAKE_ENV+, to specify additional environment variables to pass to make in the build step. These are passed before the +make+ command. By default, empty. * +LIBFOO_MAKE_OPTS+, to specify additional variables to pass to make in the build step. These are passed after the +make+ command. By default, empty. * +LIBFOO_INSTALL_OPTS+ contains the make options used to install the package to the host directory. By default, the value is +install+, which is correct for most CMake packages. It is still possible to override it. * +LIBFOO_INSTALL_STAGING_OPTS+ contains the make options used to install the package to the staging directory. By default, the value is +DESTDIR=$(STAGING_DIR) install/fast+, which is correct for most CMake packages. It is still possible to override it. * +LIBFOO_INSTALL_TARGET_OPTS+ contains the make options used to install the package to the target directory. By default, the value is +DESTDIR=$(TARGET_DIR) install/fast+. The default value is correct for most CMake packages, but it is still possible to override it if needed. With the CMake infrastructure, all the steps required to build and install the packages are already defined, and they generally work well for most CMake-based packages. However, when required, it is still possible to customize what is done in any particular step: * By adding a post-operation hook (after extract, patch, configure, build or install). See xref:hooks[] for details. * By overriding one of the steps. For example, even if the CMake infrastructure is used, if the package +.mk+ file defines its own +LIBFOO_CONFIGURE_CMDS+ variable, it will be used instead of the default CMake one. However, using this method should be restricted to very specific cases. Do not use it in the general case. ================================================ FILE: docs/manual/adding-packages-conclusion.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Conclusion As you can see, adding a software package to Buildroot is simply a matter of writing a Makefile using an existing example and modifying it according to the compilation process required by the package. If you package software that might be useful for other people, don't forget to send a patch to the Buildroot mailing list (see xref:submitting-patches[])! ================================================ FILE: docs/manual/adding-packages-directory.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Package directory First of all, create a directory under the +package+ directory for your software, for example +libfoo+. Some packages have been grouped by topic in a sub-directory: +x11r7+, +qt5+ and +gstreamer+. If your package fits in one of these categories, then create your package directory in these. New subdirectories are discouraged, however. === Config files For the package to be displayed in the configuration tool, you need to create a Config file in your package directory. There are two types: +Config.in+ and +Config.in.host+. ==== +Config.in+ file For packages used on the target, create a file named +Config.in+. This file will contain the option descriptions related to our +libfoo+ software that will be used and displayed in the configuration tool. It should basically contain: --------------------------- config BR2_PACKAGE_LIBFOO bool "libfoo" help This is a comment that explains what libfoo is. The help text should be wrapped. http://foosoftware.org/libfoo/ --------------------------- The +bool+ line, +help+ line and other metadata information about the configuration option must be indented with one tab. The help text itself should be indented with one tab and two spaces, lines should be wrapped to fit 72 columns, where tab counts for 8, so 62 characters in the text itself. The help text must mention the upstream URL of the project after an empty line. As a convention specific to Buildroot, the ordering of the attributes is as follows: 1. The type of option: +bool+, +string+... with the prompt 2. If needed, the +default+ value(s) 3. Any dependencies on the target in +depends on+ form 4. Any dependencies on the toolchain in +depends on+ form 5. Any dependencies on other packages in +depends on+ form 6. Any dependency of the +select+ form 7. The help keyword and help text. You can add other sub-options into a +if BR2_PACKAGE_LIBFOO...endif+ statement to configure particular things in your software. You can look at examples in other packages. The syntax of the +Config.in+ file is the same as the one for the kernel Kconfig file. The documentation for this syntax is available at http://kernel.org/doc/Documentation/kbuild/kconfig-language.txt[] Finally you have to add your new +libfoo/Config.in+ to +package/Config.in+ (or in a category subdirectory if you decided to put your package in one of the existing categories). The files included there are 'sorted alphabetically' per category and are 'NOT' supposed to contain anything but the 'bare' name of the package. -------------------------- source "package/libfoo/Config.in" -------------------------- ==== +Config.in.host+ file Some packages also need to be built for the host system. There are two options here: * The host package is only required to satisfy build-time dependencies of one or more target packages. In this case, add +host-foo+ to the target package's +BAR_DEPENDENCIES+ variable. No +Config.in.host+ file should be created. * The host package should be explicitly selectable by the user from the configuration menu. In this case, create a +Config.in.host+ file for that host package: + --------------------------- config BR2_PACKAGE_HOST_FOO bool "host foo" help This is a comment that explains what foo for the host is. http://foosoftware.org/foo/ --------------------------- + The same coding style and options as for the +Config.in+ file are valid. + Finally you have to add your new +libfoo/Config.in.host+ to +package/Config.in.host+. The files included there are 'sorted alphabetically' and are 'NOT' supposed to contain anything but the 'bare' name of the package. + -------------------------- source "package/foo/Config.in.host" -------------------------- + The host package will then be available from the +Host utilities+ menu. [[depends-on-vs-select]] ==== Choosing +depends on+ or +select+ The +Config.in+ file of your package must also ensure that dependencies are enabled. Typically, Buildroot uses the following rules: * Use a +select+ type of dependency for dependencies on libraries. These dependencies are generally not obvious and it therefore make sense to have the kconfig system ensure that the dependencies are selected. For example, the _libgtk2_ package uses +select BR2_PACKAGE_LIBGLIB2+ to make sure this library is also enabled. The +select+ keyword expresses the dependency with a backward semantic. * Use a +depends on+ type of dependency when the user really needs to be aware of the dependency. Typically, Buildroot uses this type of dependency for dependencies on target architecture, MMU support and toolchain options (see xref:dependencies-target-toolchain-options[]), or for dependencies on "big" things, such as the X.org system. The +depends on+ keyword expresses the dependency with a forward semantic. .Note The current problem with the _kconfig_ language is that these two dependency semantics are not internally linked. Therefore, it may be possible to select a package, whom one of its dependencies/requirement is not met. An example illustrates both the usage of +select+ and +depends on+. -------------------------- config BR2_PACKAGE_RRDTOOL bool "rrdtool" depends on BR2_USE_WCHAR select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_LIBART select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_ZLIB help RRDtool is the OpenSource industry standard, high performance data logging and graphing system for time series data. http://oss.oetiker.ch/rrdtool/ comment "rrdtool needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR -------------------------- Note that these two dependency types are only transitive with the dependencies of the same kind. This means, in the following example: -------------------------- config BR2_PACKAGE_A bool "Package A" config BR2_PACKAGE_B bool "Package B" depends on BR2_PACKAGE_A config BR2_PACKAGE_C bool "Package C" depends on BR2_PACKAGE_B config BR2_PACKAGE_D bool "Package D" select BR2_PACKAGE_B config BR2_PACKAGE_E bool "Package E" select BR2_PACKAGE_D -------------------------- * Selecting +Package C+ will be visible if +Package B+ has been selected, which in turn is only visible if +Package A+ has been selected. * Selecting +Package E+ will select +Package D+, which will select +Package B+, it will not check for the dependencies of +Package B+, so it will not select +Package A+. * Since +Package B+ is selected but +Package A+ is not, this violates the dependency of +Package B+ on +Package A+. Therefore, in such a situation, the transitive dependency has to be added explicitly: -------------------------- config BR2_PACKAGE_D bool "Package D" select BR2_PACKAGE_B depends on BR2_PACKAGE_A config BR2_PACKAGE_E bool "Package E" select BR2_PACKAGE_D depends on BR2_PACKAGE_A -------------------------- Overall, for package library dependencies, +select+ should be preferred. Note that such dependencies will ensure that the dependency option is also enabled, but not necessarily built before your package. To do so, the dependency also needs to be expressed in the +.mk+ file of the package. Further formatting details: see xref:writing-rules-config-in[the coding style]. [[dependencies-target-toolchain-options]] ==== Dependencies on target and toolchain options Many packages depend on certain options of the toolchain: the choice of C library, C++ support, thread support, RPC support, wchar support, or dynamic library support. Some packages can only be built on certain target architectures, or if an MMU is available in the processor. These dependencies have to be expressed with the appropriate 'depends on' statements in the Config.in file. Additionally, for dependencies on toolchain options, a +comment+ should be displayed when the option is not enabled, so that the user knows why the package is not available. Dependencies on target architecture or MMU support should not be made visible in a comment: since it is unlikely that the user can freely choose another target, it makes little sense to show these dependencies explicitly. The +comment+ should only be visible if the +config+ option itself would be visible when the toolchain option dependencies are met. This means that all other dependencies of the package (including dependencies on target architecture and MMU support) have to be repeated on the +comment+ definition. To keep it clear, the +depends on+ statement for these non-toolchain option should be kept separate from the +depends on+ statement for the toolchain options. If there is a dependency on a config option in that same file (typically the main package) it is preferable to have a global +if ... endif+ construct rather than repeating the +depends on+ statement on the comment and other config options. The general format of a dependency +comment+ for package foo is: -------------------------- foo needs a toolchain w/ featA, featB, featC -------------------------- for example: -------------------------- mpd needs a toolchain w/ C++, threads, wchar -------------------------- or -------------------------- crda needs a toolchain w/ threads -------------------------- Note that this text is kept brief on purpose, so that it will fit on a 80-character terminal. The rest of this section enumerates the different target and toolchain options, the corresponding config symbols to depend on, and the text to use in the comment. * Target architecture ** Dependency symbol: +BR2_powerpc+, +BR2_mips+, ... (see +arch/Config.in+) ** Comment string: no comment to be added * MMU support ** Dependency symbol: +BR2_USE_MMU+ ** Comment string: no comment to be added * Gcc +__sync_*+ built-ins used for atomic operations. They are available in variants operating on 1 byte, 2 bytes, 4 bytes and 8 bytes. Since different architectures support atomic operations on different sizes, one dependency symbol is available for each size: ** Dependency symbol: +BR2_TOOLCHAIN_HAS_SYNC_1+ for 1 byte, +BR2_TOOLCHAIN_HAS_SYNC_2+ for 2 bytes, +BR2_TOOLCHAIN_HAS_SYNC_4+ for 4 bytes, +BR2_TOOLCHAIN_HAS_SYNC_8+ for 8 bytes. ** Comment string: no comment to be added * Gcc +__atomic_*+ built-ins used for atomic operations. ** Dependency symbol: +BR2_TOOLCHAIN_HAS_ATOMIC+. ** Comment string: no comment to be added * Kernel headers ** Dependency symbol: +BR2_TOOLCHAIN_HEADERS_AT_LEAST_X_Y+, (replace +X_Y+ with the proper version, see +toolchain/Config.in+) ** Comment string: +headers >= X.Y+ and/or `headers <= X.Y` (replace +X.Y+ with the proper version) * GCC version ** Dependency symbol: +BR2_TOOLCHAIN_GCC_AT_LEAST_X_Y+, (replace +X_Y+ with the proper version, see +toolchain/Config.in+) ** Comment string: +gcc >= X.Y+ and/or `gcc <= X.Y` (replace +X.Y+ with the proper version) * Host GCC version ** Dependency symbol: +BR2_HOST_GCC_AT_LEAST_X_Y+, (replace +X_Y+ with the proper version, see +Config.in+) ** Comment string: no comment to be added ** Note that it is usually not the package itself that has a minimum host GCC version, but rather a host-package on which it depends. * C library ** 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 a glibc toolchain+, or `foo needs a glibc toolchain w/ C++` * C++ support ** Dependency symbol: +BR2_INSTALL_LIBSTDCPP+ ** Comment string: `C++` * D support ** Dependency symbol: +BR2_TOOLCHAIN_HAS_DLANG+ ** Comment string: `Dlang` * 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+ is also needed, in which case, specifying only +NPTL+ is sufficient) * NPTL thread support ** Dependency symbol: +BR2_TOOLCHAIN_HAS_THREADS_NPTL+ ** Comment string: +NPTL+ * RPC support ** Dependency symbol: +BR2_TOOLCHAIN_HAS_NATIVE_RPC+ ** Comment string: +RPC+ * wchar support ** Dependency symbol: +BR2_USE_WCHAR+ ** Comment string: +wchar+ * dynamic library ** Dependency symbol: +!BR2_STATIC_LIBS+ ** Comment string: +dynamic library+ ==== Dependencies on a Linux kernel built by buildroot Some packages need a Linux kernel to be built by buildroot. These are typically kernel modules or firmware. A comment should be added in the Config.in file to express this dependency, similar to dependencies on toolchain options. The general format is: -------------------------- foo needs a Linux kernel to be built -------------------------- If there is a dependency on both toolchain options and the Linux kernel, use this format: -------------------------- foo needs a toolchain w/ featA, featB, featC and a Linux kernel to be built -------------------------- ==== Dependencies on udev /dev management If a package needs udev /dev management, it should depend on symbol +BR2_PACKAGE_HAS_UDEV+, and the following comment should be added: -------------------------- foo needs udev /dev management -------------------------- If there is a dependency on both toolchain options and udev /dev management, use this format: -------------------------- foo needs udev /dev management and a toolchain w/ featA, featB, featC -------------------------- ==== Dependencies on features provided by virtual packages Some features can be provided by more than one package, such as the openGL libraries. See xref:virtual-package-tutorial[] for more on the virtual packages. === The +.mk+ file [[adding-packages-mk]] Finally, here's the hardest part. Create a file named +libfoo.mk+. It describes how the package should be downloaded, configured, built, installed, etc. Depending on the package type, the +.mk+ file must be written in a different way, using different infrastructures: * *Makefiles for generic packages* (not using autotools or CMake): These are based on an infrastructure similar to the one used for autotools-based packages, but require a little more work from the developer. They specify what should be done for the configuration, compilation and installation of the package. This infrastructure must be used for all packages that do not use the autotools as their build system. In the future, other specialized infrastructures might be written for other build systems. We cover them through in a xref:generic-package-tutorial[tutorial] and a xref:generic-package-reference[reference]. * *Makefiles for autotools-based software* (autoconf, automake, etc.): We provide a dedicated infrastructure for such packages, since autotools is a very common build system. This infrastructure 'must' be used for new packages that rely on the autotools as their build system. We cover them through a xref:autotools-package-tutorial[tutorial] and xref:autotools-package-reference[reference]. * *Makefiles for cmake-based software*: We provide a dedicated infrastructure for such packages, as CMake is a more and more commonly used build system and has a standardized behaviour. This infrastructure 'must' be used for new packages that rely on CMake. We cover them through a xref:cmake-package-tutorial[tutorial] and xref:cmake-package-reference[reference]. * *Makefiles for Python modules*: We have a dedicated infrastructure for Python modules that use either the +distutils+ or the +setuptools+ mechanism. We cover them through a xref:python-package-tutorial[tutorial] and a xref:python-package-reference[reference]. * *Makefiles for Lua modules*: We have a dedicated infrastructure for Lua modules available through the LuaRocks web site. We cover them through a xref:luarocks-package-tutorial[tutorial] and a xref:luarocks-package-reference[reference]. Further formatting details: see xref:writing-rules-mk[the writing rules]. [[adding-packages-hash]] === The +.hash+ file When possible, you must add a third file, named +libfoo.hash+, that contains the hashes of the downloaded files for the +libfoo+ package. The only reason for not adding a +.hash+ file is when hash checking is not possible due to how the package is downloaded. When a package has a version selection choice, then the hash file may be stored in a subdirectory named after the version, e.g. +package/libfoo/1.2.3/libfoo.hash+. This is especially important if the different versions have different licensing terms, but they are stored in the same file. Otherwise, the hash file should stay in the package's directory. The hashes stored in that file are used to validate the integrity of the downloaded files and of the license files. The format of this file is one line for each file for which to check the hash, each line with the following three fields separated by two spaces: * the type of hash, one of: ** +md5+, +sha1+, +sha224+, +sha256+, +sha384+, +sha512+, +none+ * the hash of the file: ** for +none+, one or more non-space chars, usually just the string +xxx+ ** for +md5+, 32 hexadecimal characters ** for +sha1+, 40 hexadecimal characters ** for +sha224+, 56 hexadecimal characters ** for +sha256+, 64 hexadecimal characters ** for +sha384+, 96 hexadecimal characters ** for +sha512+, 128 hexadecimal characters * the name of the file: ** for a source archive: the basename of the file, without any directory component, ** for a license file: the path as it appears in +FOO_LICENSE_FILES+. Lines starting with a +#+ sign are considered comments, and ignored. Empty lines are ignored. There can be more than one hash for a single file, each on its own line. In this case, all hashes must match. .Note Ideally, the hashes stored in this file should match the hashes published by upstream, e.g. on their website, in the e-mail announcement... If upstream provides more than one type of hash (e.g. +sha1+ and +sha512+), then it is best to add all those hashes in the +.hash+ file. If upstream does not provide any hash, or only provides an +md5+ hash, then compute at least one strong hash yourself (preferably +sha256+, but not +md5+), and mention this in a comment line above the hashes. .Note The hashes for license files are used to detect a license change when a package version is bumped. The hashes are checked during the make legal-info target run. For a package with multiple versions (like Qt5), create the hash file in a subdirectory ++ of that package (see also xref:patch-apply-order[]). The +none+ hash type is reserved to those archives downloaded from a repository, like a 'git clone', a 'subversion checkout'... The example below defines a +sha1+ and a +sha256+ published by upstream for the main +libfoo-1.2.3.tar.bz2+ tarball, an +md5+ from upstream and a locally-computed +sha256+ hashes for a binary blob, a +sha256+ for a downloaded patch, and an archive with no hash: ---- # Hashes from: http://www.foosoftware.org/download/libfoo-1.2.3.tar.bz2.{sha1,sha256}: sha1 486fb55c3efa71148fe07895fd713ea3a5ae343a libfoo-1.2.3.tar.bz2 sha256 efc8103cc3bcb06bda6a781532d12701eb081ad83e8f90004b39ab81b65d4369 libfoo-1.2.3.tar.bz2 # md5 from: http://www.foosoftware.org/download/libfoo-1.2.3.tar.bz2.md5, sha256 locally computed: md5 2d608f3c318c6b7557d551a5a09314f03452f1a1 libfoo-data.bin sha256 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b libfoo-data.bin # Locally computed: sha256 ff52101fb90bbfc3fe9475e425688c660f46216d7e751c4bbdb1dc85cdccacb9 libfoo-fix-blabla.patch # No hash for 1234: none xxx libfoo-1234.tar.gz # Hash for license files: sha256 a45a845012742796534f7e91fe623262ccfb99460a2bd04015bd28d66fba95b8 COPYING sha256 01b1f9f2c8ee648a7a596a1abe8aa4ed7899b1c9e5551bda06da6e422b04aa55 doc/COPYING.LGPL ---- If the +.hash+ file is present, and it contains one or more hashes for a downloaded file, the hash(es) computed by Buildroot (after download) must match the hash(es) stored in the +.hash+ file. If one or more hashes do not match, Buildroot considers this an error, deletes the downloaded file, and aborts. If the +.hash+ file is present, but it does not contain a hash for a downloaded file, Buildroot considers this an error and aborts. However, the downloaded file is left in the download directory since this typically indicates that the +.hash+ file is wrong but the downloaded file is probably OK. Hashes are currently checked for files fetched from http/ftp servers, Git repositories, files copied using scp and local files. Hashes are not checked for other version control systems (such as Subversion, CVS, etc.) because Buildroot currently does not generate reproducible tarballs when source code is fetched from such version control systems. Hashes should only be added in +.hash+ files for files that are guaranteed to be stable. For example, patches auto-generated by Github are not guaranteed to be stable, and therefore their hashes can change over time. Such patches should not be downloaded, and instead be added locally to the package folder. If the +.hash+ file is missing, then no check is done at all. ================================================ FILE: docs/manual/adding-packages-generic.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for packages with specific build systems By 'packages with specific build systems' we mean all the packages whose build system is not one of the standard ones, such as 'autotools' or 'CMake'. This typically includes packages whose build system is based on hand-written Makefiles or shell scripts. [[generic-package-tutorial]] ==== +generic-package+ tutorial ------------------------------ 01: ################################################################################ 02: # 03: # libfoo 04: # 05: ################################################################################ 06: 07: LIBFOO_VERSION = 1.0 08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz 09: LIBFOO_SITE = http://www.foosoftware.org/download 10: LIBFOO_LICENSE = GPL-3.0+ 11: LIBFOO_LICENSE_FILES = COPYING 12: LIBFOO_INSTALL_STAGING = YES 13: LIBFOO_CONFIG_SCRIPTS = libfoo-config 14: LIBFOO_DEPENDENCIES = host-libaaa libbbb 15: 16: define LIBFOO_BUILD_CMDS 17: $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all 18: endef 19: 20: define LIBFOO_INSTALL_STAGING_CMDS 21: $(INSTALL) -D -m 0755 $(@D)/libfoo.a $(STAGING_DIR)/usr/lib/libfoo.a 22: $(INSTALL) -D -m 0644 $(@D)/foo.h $(STAGING_DIR)/usr/include/foo.h 23: $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(STAGING_DIR)/usr/lib 24: endef 25: 26: define LIBFOO_INSTALL_TARGET_CMDS 27: $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(TARGET_DIR)/usr/lib 28: $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/foo.d 29: endef 30: 31: define LIBFOO_USERS 32: foo -1 libfoo -1 * - - - LibFoo daemon 33: endef 34: 35: define LIBFOO_DEVICES 36: /dev/foo c 666 0 0 42 0 - - - 37: endef 38: 39: define LIBFOO_PERMISSIONS 40: /bin/foo f 4755 foo libfoo - - - - - 41: endef 42: 43: $(eval $(generic-package)) -------------------------------- The Makefile begins on line 7 to 11 with metadata information: the version of the package (+LIBFOO_VERSION+), the name of the tarball containing the package (+LIBFOO_SOURCE+) (xz-ed tarball recommended) the Internet location at which the tarball can be downloaded from (+LIBFOO_SITE+), the license (+LIBFOO_LICENSE+) and file with the license text (+LIBFOO_LICENSE_FILES+). All variables must start with the same prefix, +LIBFOO_+ in this case. This prefix is always the uppercased version of the package name (see below to understand where the package name is defined). On line 12, we specify that this package wants to install something to the staging space. This is often needed for libraries, since they must install header files and other development files in the staging space. This will ensure that the commands listed in the +LIBFOO_INSTALL_STAGING_CMDS+ variable will be executed. On line 13, we specify that there is some fixing to be done to some of the 'libfoo-config' files that were installed during +LIBFOO_INSTALL_STAGING_CMDS+ phase. These *-config files are executable shell script files that are located in '$(STAGING_DIR)/usr/bin' directory and are executed by other 3rd party packages to find out the location and the linking flags of this particular package. The problem is that all these *-config files by default give wrong, host system linking flags that are unsuitable for cross-compiling. For example: '-I/usr/include' instead of '-I$(STAGING_DIR)/usr/include' or: '-L/usr/lib' instead of '-L$(STAGING_DIR)/usr/lib' So some sed magic is done to these scripts to make them give correct flags. The argument to be given to +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. .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 -------------------------------- ================================ .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 on. These dependencies are listed in terms of lower-case package names, which can be packages for the target (without the +host-+ prefix) or packages for the host (with the +host-+) prefix). Buildroot will ensure that all these packages are built and installed 'before' the current package starts its configuration. The rest of the Makefile, lines 16..29, defines what should be done at the different steps of the package configuration, compilation and installation. +LIBFOO_BUILD_CMDS+ tells what steps should be performed to build the package. +LIBFOO_INSTALL_STAGING_CMDS+ tells what steps should be performed to install the package in the staging space. +LIBFOO_INSTALL_TARGET_CMDS+ tells what steps should be performed to install the package in the target space. All these steps rely on the +$(@D)+ variable, which contains the directory where the source code of the package has been extracted. On lines 31..33, we define a user that is used by this package (e.g. to run a daemon as non-root) (+LIBFOO_USERS+). On line 35..37, we define a device-node file used by this package (+LIBFOO_DEVICES+). On line 39..41, we define the permissions to set to specific files installed by this package (+LIBFOO_PERMISSIONS+). Finally, on line 43, we call the +generic-package+ function, which generates, according to the variables defined previously, all the Makefile code necessary to make your package working. [[generic-package-reference]] ==== +generic-package+ reference There are two variants of the generic target. The +generic-package+ macro is used for packages to be cross-compiled for the target. The +host-generic-package+ macro is used for host packages, natively compiled for the host. It is possible to call both of them in a single +.mk+ file: once to create the rules to generate a target package and once to create the rules to generate a host package: ---------------------- $(eval $(generic-package)) $(eval $(host-generic-package)) ---------------------- This might be useful if the compilation of the target package requires some tools to be installed on the host. If the package name is +libfoo+, then the name of the package for the target is also +libfoo+, while the name of the package for the host is +host-libfoo+. These names should be used in the DEPENDENCIES variables of other packages, if they depend on +libfoo+ or +host-libfoo+. The call to the +generic-package+ and/or +host-generic-package+ macro *must* be at the end of the +.mk+ file, after all variable definitions. The call to +host-generic-package+ *must* be after the call to +generic-package+, if any. For the target package, the +generic-package+ uses the variables defined by the .mk file and prefixed by the uppercased package name: +LIBFOO_*+. +host-generic-package+ uses the +HOST_LIBFOO_*+ variables. For 'some' variables, if the +HOST_LIBFOO_+ prefixed variable doesn't exist, the package infrastructure uses the corresponding variable prefixed by +LIBFOO_+. This is done for variables that are likely to have the same value for both the target and host packages. See below for details. The list of variables that can be set in a +.mk+ file to give metadata information is (assuming the package name is +libfoo+) : * +LIBFOO_VERSION+, mandatory, must contain the version of the package. Note that if +HOST_LIBFOO_VERSION+ doesn't exist, it is assumed to be the same as +LIBFOO_VERSION+. It can also be a revision number or a tag for packages that are fetched directly from their version control system. Examples: ** a version for a release tarball: +LIBFOO_VERSION = 0.1.2+ ** a sha1 for a git tree: +LIBFOO_VERSION = cb9d6aa9429e838f0e54faa3d455bcbab5eef057+ ** a tag for a git tree +LIBFOO_VERSION = v0.1.2+ + .Note: Using a branch name as +FOO_VERSION+ is not supported, because it does not and can not work as people would expect it should: + 1. due to local caching, Buildroot will not re-fetch the repository, so people who expect to be able to follow the remote repository would be quite surprised and disappointed; 2. because two builds can never be perfectly simultaneous, and because the remote repository may get new commits on the branch anytime, two users, using the same Buildroot tree and building the same configuration, may get different source, thus rendering the build non reproducible, and people would be quite surprised and disappointed. * +LIBFOO_SOURCE+ may contain the name of the tarball of the package, which Buildroot will use to download the tarball from +LIBFOO_SITE+. If +HOST_LIBFOO_SOURCE+ is not specified, it defaults to +LIBFOO_SOURCE+. If none are specified, then the value is assumed to be +libfoo-$(LIBFOO_VERSION).tar.gz+. + Example: +LIBFOO_SOURCE = foobar-$(LIBFOO_VERSION).tar.bz2+ * +LIBFOO_PATCH+ may contain a space-separated list of patch file names, that Buildroot will download and apply to the package source code. If an entry contains +://+, then Buildroot will assume it is a full URL and download the patch from this location. Otherwise, Buildroot will assume that the patch should be downloaded from +LIBFOO_SITE+. If +HOST_LIBFOO_PATCH+ is not specified, it defaults to +LIBFOO_PATCH+. Note that patches that are included in Buildroot itself use a different mechanism: all files of the form +*.patch+ present in the package directory inside Buildroot will be applied to the package after extraction (see xref:patch-policy[patching a package]). Finally, patches listed in the +LIBFOO_PATCH+ variable are applied _before_ the patches stored in the Buildroot package directory. * +LIBFOO_SITE+ provides the location of the package, which can be a URL or a local filesystem path. HTTP, FTP and SCP are supported URL types for retrieving package tarballs. In these cases don't include a trailing slash: it will be added by Buildroot between the directory and the filename as appropriate. Git, Subversion, Mercurial, and Bazaar are supported URL types for retrieving packages directly from source code management systems. There is a helper function to make it easier to download source tarballs from GitHub (refer to xref:github-download-url[] for details). A filesystem path may be used to specify either a tarball or a directory containing the package source code. See +LIBFOO_SITE_METHOD+ below for more details on how retrieval works. + Note that SCP URLs should be of the form +scp://[user@]host:filepath+, and that filepath is relative to the user's home directory, so you may want to prepend the path with a slash for absolute paths: +scp://[user@]host:/absolutepath+. + If +HOST_LIBFOO_SITE+ is not specified, it defaults to +LIBFOO_SITE+. Examples: + +LIBFOO_SITE=http://www.libfoosoftware.org/libfoo+ + +LIBFOO_SITE=http://svn.xiph.org/trunk/Tremor+ + +LIBFOO_SITE=/opt/software/libfoo.tar.gz+ + +LIBFOO_SITE=$(TOPDIR)/../src/libfoo+ * +LIBFOO_DL_OPTS+ is a space-separated list of additional options to pass to the downloader. Useful for retrieving documents with server-side checking for user logins and passwords, or to use a proxy. All download methods valid for +LIBFOO_SITE_METHOD+ are supported; valid options depend on the download method (consult the man page for the respective download utilities). * +LIBFOO_EXTRA_DOWNLOADS+ is a space-separated list of additional files that Buildroot should download. If an entry contains +://+ then Buildroot will assume it is a complete URL and will download the file using this URL. Otherwise, Buildroot will assume the file to be downloaded is located at +LIBFOO_SITE+. Buildroot will not do anything with those additional files, except download them: it will be up to the package recipe to use them from +$(LIBFOO_DL_DIR)+. * +LIBFOO_SITE_METHOD+ determines the method used to fetch or copy the package source code. In many cases, Buildroot guesses the method from the contents of +LIBFOO_SITE+ and setting +LIBFOO_SITE_METHOD+ is unnecessary. When +HOST_LIBFOO_SITE_METHOD+ is not specified, it defaults to the value of +LIBFOO_SITE_METHOD+. + The possible values of +LIBFOO_SITE_METHOD+ are: ** +wget+ for normal FTP/HTTP downloads of tarballs. Used by default when +LIBFOO_SITE+ begins with +http://+, +https://+ or +ftp://+. ** +scp+ for downloads of tarballs over SSH with scp. Used by default when +LIBFOO_SITE+ begins with +scp://+. ** +svn+ for retrieving source code from a Subversion repository. Used by default when +LIBFOO_SITE+ begins with +svn://+. When a +http://+ Subversion repository URL is specified in +LIBFOO_SITE+, one 'must' specify +LIBFOO_SITE_METHOD=svn+. Buildroot performs a checkout which is preserved as a tarball in the download cache; subsequent builds use the tarball instead of performing another checkout. ** +cvs+ for retrieving source code from a CVS repository. Used by default when +LIBFOO_SITE+ begins with +cvs://+. The downloaded source code is cached as with the +svn+ method. Anonymous pserver mode is assumed otherwise explicitly defined on +LIBFOO_SITE+. Both +LIBFOO_SITE=cvs://libfoo.net:/cvsroot/libfoo+ and +LIBFOO_SITE=cvs://:ext:libfoo.net:/cvsroot/libfoo+ are accepted, on the former anonymous pserver access mode is assumed. +LIBFOO_SITE+ 'must' contain the source URL as well as the remote repository directory. The module is the package name. +LIBFOO_VERSION+ is 'mandatory' and 'must' be a tag, a branch, or a date (e.g. "2014-10-20", "2014-10-20 13:45", "2014-10-20 13:45+01" see "man cvs" for further details). ** +git+ for retrieving source code from a Git repository. Used by default when +LIBFOO_SITE+ begins with +git://+. The downloaded source code is cached as with the +svn+ method. ** +hg+ for retrieving source code from a Mercurial repository. One 'must' specify +LIBFOO_SITE_METHOD=hg+ when +LIBFOO_SITE+ contains a Mercurial repository URL. The downloaded source code is cached as with the +svn+ method. ** +bzr+ for retrieving source code from a Bazaar repository. Used by default when +LIBFOO_SITE+ begins with +bzr://+. The downloaded source code is cached as with the +svn+ method. ** +file+ for a local tarball. One should use this when +LIBFOO_SITE+ specifies a package tarball as a local filename. Useful for software that isn't available publicly or in version control. ** +local+ for a local source code directory. One should use this 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. Note that for +local+ packages, no patches are applied. If you need to still patch the source code, use +LIBFOO_POST_RSYNC_HOOKS+, see xref:hooks-rsync[]. * +LIBFOO_GIT_SUBMODULES+ can be set to +YES+ to create an archive with the git submodules in the repository. This is only available for packages downloaded with git (i.e. when +LIBFOO_SITE_METHOD=git+). 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 "-", thus Buildroot passes --strip-components=1 to tar to remove it. For non-standard packages that don't have this component, or that have more than one leading component to strip, set this variable with the value to be passed to tar. Default: 1. * +LIBFOO_EXCLUDES+ is a space-separated list of patterns to exclude when extracting the archive. Each item from that list is passed as a tar's +--exclude+ option. By default, empty. * +LIBFOO_DEPENDENCIES+ lists the dependencies (in terms of package name) that are required for the current target package to compile. These dependencies are guaranteed to be compiled and installed before the configuration of the current package starts. However, modifications to configuration of these dependencies will not force a rebuild of the current package. In a similar way, +HOST_LIBFOO_DEPENDENCIES+ lists the dependencies for the current host package. * +LIBFOO_EXTRACT_DEPENDENCIES+ lists the dependencies (in terms of package name) that are required for the current target package to be extracted. These dependencies are guaranteed to be compiled and installed before the extract step of the current package starts. This is only used internally by the package infrastructure, and should typically not be used directly by packages. * +LIBFOO_PATCH_DEPENDENCIES+ lists the dependencies (in terms of package name) that are required for the current package to be patched. These dependencies are guaranteed to be extracted and patched (but not necessarily built) before the current package is patched. In a similar way, +HOST_LIBFOO_PATCH_DEPENDENCIES+ lists the dependencies for the current host package. This is seldom used; usually, +LIBFOO_DEPENDENCIES+ is what you really want to use. * +LIBFOO_PROVIDES+ lists all the virtual packages +libfoo+ is an implementation of. See xref:virtual-package-tutorial[]. * +LIBFOO_INSTALL_STAGING+ can be set to +YES+ or +NO+ (default). If set to +YES+, then the commands in the +LIBFOO_INSTALL_STAGING_CMDS+ variables are executed to install the package into the staging directory. * +LIBFOO_INSTALL_TARGET+ can be set to +YES+ (default) or +NO+. If set to +YES+, then the commands in the +LIBFOO_INSTALL_TARGET_CMDS+ variables are executed to install the package into the target directory. * +LIBFOO_INSTALL_IMAGES+ can be set to +YES+ or +NO+ (default). If set to +YES+, then the commands in the +LIBFOO_INSTALL_IMAGES_CMDS+ variable are executed to install the package into the images directory. * +LIBFOO_CONFIG_SCRIPTS+ lists the names of the files in '$(STAGING_DIR)/usr/bin' that need some special fixing to make them cross-compiling friendly. Multiple file names separated by space can be given and all are relative to '$(STAGING_DIR)/usr/bin'. The files listed in +LIBFOO_CONFIG_SCRIPTS+ are also removed from +$(TARGET_DIR)/usr/bin+ since they are not needed on the target. * +LIBFOO_DEVICES+ lists the device files to be created by Buildroot when using the static device table. The syntax to use is the makedevs one. You can find some documentation for this syntax in the xref:makedev-syntax[]. This variable is optional. * +LIBFOO_PERMISSIONS+ lists the changes of permissions to be done at the end of the build process. The syntax is once again the makedevs one. You can find some documentation for this syntax in the xref:makedev-syntax[]. This variable is optional. * +LIBFOO_USERS+ lists the users to create for this package, if it installs 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 xref:makeuser-syntax[]. 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+. If the license appears in https://spdx.org/licenses/[the SPDX License List], use the SPDX short identifier to make the manifest file uniform. 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 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 = GPL-2.0+, LGPL-2.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 = GPL-2.0+ (programs), LGPL-2.1+ (libraries)`+). ** If some licenses are conditioned on a sub-option being enabled, append the conditional licenses with a comma (e.g.: `FOO_LICENSE += , GPL-2.0+ (programs)`); the infrastructure will internally remove the space before the comma. ** If the package is dual licensed, then separate licenses with the +or+ keyword (e.g. +`LIBFOO_LICENSE = AFL-2.1 or GPL-2.0+`+). * +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. See xref:legal-info[] for more information. This variable is optional. If it is not defined, a warning will be produced to let you know, and +not saved+ will appear in the +license files+ field of the manifest file for this package. * +LIBFOO_ACTUAL_SOURCE_TARBALL+ only applies to packages whose +LIBFOO_SITE+ / +LIBFOO_SOURCE+ pair points to an archive that does not actually contain source code, but binary code. This a very uncommon case, only known to apply to external toolchains which come already compiled, although theoretically it might apply to other packages. In such cases a separate tarball is usually available with the actual source code. Set +LIBFOO_ACTUAL_SOURCE_TARBALL+ to the name of the actual source code archive and Buildroot will download it and use it when you run +make legal-info+ to collect legally-relevant material. Note this file will not be downloaded during regular builds nor by +make source+. * +LIBFOO_ACTUAL_SOURCE_SITE+ provides the location of the actual source tarball. The default value is +LIBFOO_SITE+, so you don't need to set this variable if the binary and source archives are hosted on the same directory. If +LIBFOO_ACTUAL_SOURCE_TARBALL+ is not set, it doesn't make sense to define +LIBFOO_ACTUAL_SOURCE_SITE+. * +LIBFOO_REDISTRIBUTE+ can be set to +YES+ (default) or +NO+ to indicate if the package source code is allowed to be redistributed. Set it to +NO+ for non-opensource packages: Buildroot will not save the source code for this package when collecting the +legal-info+. * +LIBFOO_FLAT_STACKSIZE+ defines the stack size of an application built into the FLAT binary format. The application stack size on the NOMMU architecture processors can't be enlarged at run time. The default stack size for the FLAT binary format is only 4k bytes. If the application consumes more stack, append the required number here. * +LIBFOO_BIN_ARCH_EXCLUDE+ is a space-separated list of paths (relative to the target directory) to ignore when checking that the package installs correctly cross-compiled binaries. You seldom need to set this variable, unless the package installs binary blobs outside the default locations, `/lib/firmware`, `/usr/lib/firmware`, `/lib/modules`, `/usr/lib/modules`, and `/usr/share`, which are automatically excluded. * +LIBFOO_IGNORE_CVES+ is a space-separated list of CVEs that tells Buildroot CVE tracking tools which CVEs should be ignored for this package. This is typically used when the CVE is fixed by a patch in the package, or when the CVE for some reason does not affect the Buildroot package. A Makefile comment must always precede the addition of a CVE to this variable. Example: ---------------------- # 0001-fix-cve-2020-12345.patch LIBFOO_IGNORE_CVES += CVE-2020-12345 # only when built with libbaz, which Buildroot doesn't support LIBFOO_IGNORE_CVES += CVE-2020-54321 ---------------------- * +LIBFOO_CPE_ID_*+ variables is a set of variables that allows the package to define its https://nvd.nist.gov/products/cpe[CPE identifier]. The available variables are: + -- ** +LIBFOO_CPE_ID_PREFIX+, specifies the prefix of the CPE identifier, i.e the first three fields. When not defined, the default value is +cpe:2.3:a+. ** +LIBFOO_CPE_ID_VENDOR+, specifies the vendor part of the CPE identifier. When not defined, the default value is +_project+. ** +LIBFOO_CPE_ID_PRODUCT+, specifies the product part of the CPE identifier. When not defined, the default value is ++. ** +LIBFOO_CPE_ID_VERSION+, specifies the version part of the CPE identifier. When not defined the default value is +$(LIBFOO_VERSION)+. ** +LIBFOO_CPE_ID_UPDATE+ specifies the _update_ part of the CPE identifier. When not defined the default value is +*+. -- + If any of those variables is defined, then the generic package infrastructure assumes the package provides valid CPE information. In this case, the generic package infrastructure will define +LIBFOO_CPE_ID+. + For a host package, if its +LIBFOO_CPE_ID_*+ variables are not defined, it inherits the value of those variables from the corresponding target package. The recommended way to define these variables is to use the following syntax: ---------------------- LIBFOO_VERSION = 2.32 ---------------------- Now, the variables that define what should be performed at the different steps of the build process. * +LIBFOO_EXTRACT_CMDS+ lists the actions to be performed to extract the package. This is generally not needed as tarballs are automatically handled by Buildroot. However, if the package uses a non-standard archive format, such as a ZIP or RAR file, or has a tarball with a non-standard organization, this variable allows to override the package infrastructure default behavior. * +LIBFOO_CONFIGURE_CMDS+ lists the actions to be performed to configure the package before its compilation. * +LIBFOO_BUILD_CMDS+ lists the actions to be performed to compile the package. * +HOST_LIBFOO_INSTALL_CMDS+ lists the actions to be performed to install the package, when the package is a host package. The package must install its files to the directory given by +$(HOST_DIR)+. All files, including development files such as headers should be installed, since other packages might be compiled on top of this package. * +LIBFOO_INSTALL_TARGET_CMDS+ lists the actions to be performed to install the package to the target directory, when the package is a target package. The package must install its files to the directory given by +$(TARGET_DIR)+. Only the files required for 'execution' of the package have to be installed. Header files, static libraries and documentation will be removed again when the target filesystem is finalized. * +LIBFOO_INSTALL_STAGING_CMDS+ lists the actions to be performed to install the package to the staging directory, when the package is a target package. The package must install its files to the directory given by +$(STAGING_DIR)+. All development files should be installed, since they might be needed to compile other packages. * +LIBFOO_INSTALL_IMAGES_CMDS+ lists the actions to be performed to install the package to the images directory, when the package is a target package. The package must install its files to the directory given by +$(BINARIES_DIR)+. Only files that are binary images (aka images) that do not belong in the +TARGET_DIR+ but are necessary for booting the board should be placed here. For example, a package should utilize this step if it has binaries which would be similar to the kernel image, bootloader or root filesystem images. * +LIBFOO_INSTALL_INIT_SYSV+, +LIBFOO_INSTALL_INIT_OPENRC+ and +LIBFOO_INSTALL_INIT_SYSTEMD+ list the actions to install init scripts either for the systemV-like init systems (busybox, sysvinit, etc.), openrc or for the systemd units. These 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). The only exception is when openrc is chosen as init system and +LIBFOO_INSTALL_INIT_OPENRC+ has not been set, in such situation +LIBFOO_INSTALL_INIT_SYSV+ will be called, since openrc supports sysv init scripts. When systemd is used as the init system, buildroot will automatically enable all services using the +systemctl preset-all+ command in the final phase of image building. You can add preset files to prevent a particular unit from being automatically enabled by buildroot. * +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. * +LIBFOO_LINUX_CONFIG_FIXUPS+ lists the Linux kernel configuration options that are needed to build and use this package, and without which the package is fundamentally broken. This shall be a set of calls to one of the kconfig tweaking option: `KCONFIG_ENABLE_OPT`, `KCONFIG_DISABLE_OPT`, or `KCONFIG_SET_OPT`. This is seldom used, as package usually have no strict requirements on the kernel options. The preferred way to define these variables is: ---------------------- define LIBFOO_CONFIGURE_CMDS action 1 action 2 action 3 endef ---------------------- In the action definitions, you can use the following variables: * +$(LIBFOO_PKGDIR)+ contains the path to the directory containing the +libfoo.mk+ and +Config.in+ files. This variable is useful when it is necessary to install a file bundled in Buildroot, like a runtime configuration file, a splashscreen image... * +$(@D)+, which contains the directory in which the package source code has been uncompressed. * +$(LIBFOO_DL_DIR)+ contains the path to the directory where all the downloads made by Buildroot for +libfoo+ are stored in. * +$(TARGET_CC)+, +$(TARGET_LD)+, etc. to get the target cross-compilation utilities * +$(TARGET_CROSS)+ to get the cross-compilation toolchain prefix * Of course the +$(HOST_DIR)+, +$(STAGING_DIR)+ and +$(TARGET_DIR)+ variables to install the packages properly. Those variables point to the global _host_, _staging_ and _target_ directories, unless _per-package directory_ support is used, in which case they point to the current package _host_, _staging_ and _target_ directories. In both cases, it doesn't make any difference from the package point of view: it should simply use +HOST_DIR+, +STAGING_DIR+ and +TARGET_DIR+. See xref:top-level-parallel-build[] for more details about _per-package directory_ support. Finally, you can also use hooks. See xref:hooks[] for more information. ================================================ FILE: docs/manual/adding-packages-gettext.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === 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 'glibc' C library integrates a full-blown implementation of 'gettext', supporting translation. Native Language Support is therefore built-in in 'glibc'. On the other hand, the 'uClibc' and 'musl' C libraries only provide a stub implementation of the gettext functionality, which allows to compile libraries and programs using gettext functions, but without providing the translation capabilities of a full-blown gettext implementation. With such C libraries, if real Native Language Support is necessary, it can be provided by the +libintl+ library of the +gettext+ package. Due to this, and in order to make sure that Native Language Support is properly handled, packages in Buildroot that can use NLS support should: 1. Ensure NLS support is enabled when +BR2_SYSTEM_ENABLE_NLS=y+. This is done automatically for 'autotools' packages and therefore should only be done for packages using other package infrastructures. 1. Add +$(TARGET_NLS_DEPENDENCIES)+ to the package +_DEPENDENCIES+ variable. This addition should be done unconditionally: the value of this variable is automatically adjusted by the core infrastructure to contain the relevant list of packages. If NLS support is disabled, this variable is empty. If NLS support is enabled, this variable contains +host-gettext+ so that tools needed to compile translation files are available on the host. In addition, if 'uClibc' or 'musl' are used, this variable also contains +gettext+ in order to get the full-blown 'gettext' implementation. 1. If needed, add +$(TARGET_NLS_LIBS)+ to the linker flags, so that the package gets linked with +libintl+. This is generally not needed with 'autotools' packages as they usually detect automatically that they should link with +libintl+. However, packages using other build systems, or problematic autotools-based packages may need this. +$(TARGET_NLS_LIBS)+ should be added unconditionally to the linker flags, as the core automatically makes it empty or defined to +-lintl+ depending on the configuration. No changes should be made to the +Config.in+ file to support NLS. Finally, certain packages need some gettext utilities on the target, such as the +gettext+ program itself, which allows to retrieve translated strings, from the command line. In such a case, the package should: * use +select BR2_PACKAGE_GETTEXT+ in their +Config.in+ file, indicating in a comment above that it's a runtime dependency only. * not add any +gettext+ dependency in the +DEPENDENCIES+ variable of their +.mk+ file. ================================================ FILE: docs/manual/adding-packages-golang.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for Go packages This infrastructure applies to Go packages that use the standard build system and use bundled dependencies. [[golang-package-tutorial]] ==== +golang-package+ tutorial First, let's see how to write a +.mk+ file for a go package, with an example : ------------------------ 01: ################################################################################ 02: # 03: # foo 04: # 05: ################################################################################ 06: 07: FOO_VERSION = 1.0 08: FOO_SITE = $(call github,bar,foo,$(FOO_VERSION)) 09: FOO_LICENSE = BSD-3-Clause 10: FOO_LICENSE_FILES = LICENSE 11: 12: $(eval $(golang-package)) ------------------------ On line 7, we declare the version of the package. On line 8, we declare the upstream location of the package, here fetched from Github, since a large number of Go packages are hosted on Github. On line 9 and 10, we give licensing details about the package. Finally, on line 12, we invoke the +golang-package+ macro that generates all the Makefile rules that actually allow the package to be built. [[golang-package-reference]] ==== +golang-package+ reference In their +Config.in+ file, packages using the +golang-package+ infrastructure should depend on +BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS+ because Buildroot will automatically add a dependency on +host-go+ to such packages. If you need CGO support in your package, you must add a dependency on +BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS+. The main macro of the Go package infrastructure is +golang-package+. It is similar to the +generic-package+ macro. The ability to build host packages is also available, with the +host-golang-package+ macro. Host packages built by +host-golang-package+ macro should depend on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS. Just like the generic infrastructure, the Go infrastructure works by defining a number of variables before calling the +golang-package+. All the package metadata information variables that exist in the xref:generic-package-reference[generic package infrastructure] also exist in the Go infrastructure: +FOO_VERSION+, +FOO_SOURCE+, +FOO_PATCH+, +FOO_SITE+, +FOO_SUBDIR+, +FOO_DEPENDENCIES+, +FOO_LICENSE+, +FOO_LICENSE_FILES+, +FOO_INSTALL_STAGING+, etc. Note that it is not necessary to add +host-go+ in the +FOO_DEPENDENCIES+ variable of a package, since this basic dependency is automatically added as needed by the Go package infrastructure. A few additional variables, specific to the Go infrastructure, can optionally be defined, depending on the package's needs. Many of them are only useful in very specific cases, typical packages will therefore only use a few of them, or none. * The package must specify its Go module name in the +FOO_GOMOD+ variable. If not specified, it defaults to +URL-domain/1st-part-of-URL/2nd-part-of-URL+, e.g +FOO_GOMOD+ will take the value +github.com/bar/foo+ for a package that specifies +FOO_SITE = $(call github,bar,foo,$(FOO_VERSION))+. The Go package infrastructure will automatically generate a minimal +go.mod+ file in the package source tree if it doesn't exist. * +FOO_LDFLAGS+ and +FOO_TAGS+ can be used to pass respectively the +LDFLAGS+ or the +TAGS+ to the +go+ build command. * +FOO_BUILD_TARGETS+ can be used to pass the list of targets that should be built. If +FOO_BUILD_TARGETS+ is not specified, it defaults to +.+. We then have two cases: ** +FOO_BUILD_TARGETS+ is +.+. In this case, we assume only one binary will be produced, and that by default we name it after the package name. If that is not appropriate, the name of the produced binary can be overridden using +FOO_BIN_NAME+. ** +FOO_BUILD_TARGETS+ is not +.+. In this case, we iterate over the values to build each target, and for each produced a binary that is the non-directory component of the target. For example if +FOO_BUILD_TARGETS = cmd/docker cmd/dockerd+ the binaries produced are +docker+ and +dockerd+. * +FOO_INSTALL_BINS+ can be used to pass the list of binaries that should be installed in +/usr/bin+ on the target. If +FOO_INSTALL_BINS+ is not specified, it defaults to the lower-case name of package. With the Go infrastructure, all the steps required to build and install the packages are already defined, and they generally work well for most Go-based packages. However, when required, it is still possible to customize what is done in any particular step: * By adding a post-operation hook (after extract, patch, configure, build or install). See xref:hooks[] for details. * By overriding one of the steps. For example, even if the Go infrastructure is used, if the package +.mk+ file defines its own +FOO_BUILD_CMDS+ variable, it will be used instead of the default Go one. However, using this method should be restricted to very specific cases. Do not use it in the general case. ================================================ FILE: docs/manual/adding-packages-hooks.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[hooks]] === Hooks available in the various build steps The generic infrastructure (and as a result also the derived autotools and cmake infrastructures) allow packages to specify hooks. These define further actions to perform after existing steps. Most hooks aren't really useful for generic packages, since the +.mk+ file already has full control over the actions performed in each step of the package construction. The following hook points are available: * +LIBFOO_PRE_DOWNLOAD_HOOKS+ * +LIBFOO_POST_DOWNLOAD_HOOKS+ * +LIBFOO_PRE_EXTRACT_HOOKS+ * +LIBFOO_POST_EXTRACT_HOOKS+ * +LIBFOO_PRE_RSYNC_HOOKS+ * +LIBFOO_POST_RSYNC_HOOKS+ * +LIBFOO_PRE_PATCH_HOOKS+ * +LIBFOO_POST_PATCH_HOOKS+ * +LIBFOO_PRE_CONFIGURE_HOOKS+ * +LIBFOO_POST_CONFIGURE_HOOKS+ * +LIBFOO_PRE_BUILD_HOOKS+ * +LIBFOO_POST_BUILD_HOOKS+ * +LIBFOO_PRE_INSTALL_HOOKS+ (for host packages only) * +LIBFOO_POST_INSTALL_HOOKS+ (for host packages only) * +LIBFOO_PRE_INSTALL_STAGING_HOOKS+ (for target packages only) * +LIBFOO_POST_INSTALL_STAGING_HOOKS+ (for target packages only) * +LIBFOO_PRE_INSTALL_TARGET_HOOKS+ (for target packages only) * +LIBFOO_POST_INSTALL_TARGET_HOOKS+ (for target packages only) * +LIBFOO_PRE_INSTALL_IMAGES_HOOKS+ * +LIBFOO_POST_INSTALL_IMAGES_HOOKS+ * +LIBFOO_PRE_LEGAL_INFO_HOOKS+ * +LIBFOO_POST_LEGAL_INFO_HOOKS+ These variables are 'lists' of variable names containing actions to be performed at this hook point. This allows several hooks to be registered at a given hook point. Here is an example: ---------------------- define LIBFOO_POST_PATCH_FIXUP action1 action2 endef LIBFOO_POST_PATCH_HOOKS += LIBFOO_POST_PATCH_FIXUP ---------------------- [[hooks-rsync]] ==== Using the +POST_RSYNC+ hook The +POST_RSYNC+ hook is run only for packages that use a local source, either through the +local+ site method or the +OVERRIDE_SRCDIR+ mechanism. In this case, package sources are copied using +rsync+ from the local location into the buildroot build directory. The +rsync+ command does not copy all files from the source directory, though. Files belonging to a version control system, like the directories +.git+, +.hg+, etc. are not copied. For most packages this is sufficient, but a given package can perform additional actions using the +POST_RSYNC+ hook. In principle, the hook can contain any command you want. One specific use case, though, is the intentional copying of the version control directory using +rsync+. The +rsync+ command you use in the hook can, among 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. ================================================ FILE: docs/manual/adding-packages-kconfig.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for packages using kconfig for configuration files A popular way for a software package to handle user-specified configuration is +kconfig+. Among others, it is used by the Linux kernel, Busybox, and Buildroot itself. The presence of a .config file and a +menuconfig+ target are two well-known symptoms of kconfig being used. Buildroot features an infrastructure for packages that use kconfig for their configuration. This infrastructure provides the necessary logic to expose the package's +menuconfig+ target as +foo-menuconfig+ in Buildroot, and to handle the copying back and forth of the configuration file in a correct way. The +kconfig-package+ infrastructure is based on the +generic-package+ infrastructure. All variables supported by +generic-package+ are available in +kconfig-package+ as well. See xref:generic-package-reference[] for more details. In order to use the +kconfig-package+ infrastructure for a Buildroot package, the minimally required lines in the +.mk+ file, in addition to the variables required by the +generic-package+ infrastructure, are: ------------------------------ FOO_KCONFIG_FILE = reference-to-source-configuration-file $(eval $(kconfig-package)) ------------------------------ This snippet creates the following make targets: * +foo-menuconfig+, which calls the package's +menuconfig+ target * +foo-update-config+, which copies the configuration back to the source configuration file. It is not possible to use this target when fragment files are set. * +foo-update-defconfig+, which copies the configuration back to the source configuration file. The configuration file will only list the options that differ from the default values. It is not possible to use this target when fragment files are set. * +foo-diff-config+, which outputs the differences between the current configuration and the one defined in the Buildroot configuration for this kconfig package. The output is useful to identify the configuration changes that may have to be propagated to configuration fragments for example. and ensures that the source configuration file is copied to the build directory at the right moment. There are two options to specify a configuration file to use, either +FOO_KCONFIG_FILE+ (as in the example, above) or +FOO_KCONFIG_DEFCONFIG+. It is mandatory to provide either, but not both: * +FOO_KCONFIG_FILE+ specifies the path to a defconfig or full-config file to be used to configure the package. * +FOO_KCONFIG_DEFCONFIG+ specifies the defconfig 'make' rule to call to configure the package. In addition to these minimally required lines, several optional variables can be set to suit the needs of the package under consideration: * +FOO_KCONFIG_EDITORS+: a space-separated list of kconfig editors to support, for example 'menuconfig xconfig'. By default, 'menuconfig'. * +FOO_KCONFIG_FRAGMENT_FILES+: a space-separated list of configuration fragment files that are merged to the main configuration file. Fragment files are typically used when there is a desire to stay in sync with an upstream (def)config file, with some minor modifications. * +FOO_KCONFIG_OPTS+: extra options to pass when calling the kconfig editors. This may need to include '$(FOO_MAKE_OPTS)', for example. By default, empty. * +FOO_KCONFIG_FIXUP_CMDS+: a list of shell commands needed to fixup the configuration file after copying it or running a kconfig editor. Such commands may be needed to ensure a configuration consistent with other configuration of Buildroot, for example. By default, empty. * +FOO_KCONFIG_DOTCONFIG+: path (with filename) of the +.config+ file, relative to the package source tree. The default, +.config+, should be well suited for all packages that use the standard kconfig infrastructure as inherited from the Linux kernel; some packages use a derivative of kconfig that use a different location. * +FOO_KCONFIG_DEPENDENCIES+: the list of packages (most probably, host packages) that need to be built before this package's kconfig is interpreted. Seldom used. By default, empty. * +FOO_KCONFIG_SUPPORTS_DEFCONFIG+: whether the package's kconfig system supports using defconfig files; few packages do not. By default, 'YES'. ================================================ FILE: docs/manual/adding-packages-kernel-module.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for packages building kernel modules Buildroot offers a helper infrastructure to make it easy to write packages that build and install Linux kernel modules. Some packages only contain a kernel module, other packages contain programs and libraries in addition to kernel modules. Buildroot's helper infrastructure supports either case. [[kernel-module-tutorial]] ==== +kernel-module+ tutorial Let's start with an example on how to prepare a simple package that only builds a kernel module, and no other component: ---- 01: ################################################################################ 02: # 03: # foo 04: # 05: ################################################################################ 06: 07: FOO_VERSION = 1.2.3 08: FOO_SOURCE = foo-$(FOO_VERSION).tar.xz 09: FOO_SITE = http://www.foosoftware.org/download 10: FOO_LICENSE = GPL-2.0 11: FOO_LICENSE_FILES = COPYING 12: 13: $(eval $(kernel-module)) 14: $(eval $(generic-package)) ---- Lines 7-11 define the usual meta-data to specify the version, archive name, remote URI where to find the package source, licensing information. On line 13, we invoke the +kernel-module+ helper infrastructure, that generates all the appropriate Makefile rules and variables to build that kernel module. Finally, on line 14, we invoke the xref:generic-package-tutorial[+generic-package+ infrastructure]. The dependency on +linux+ is automatically added, so it is not needed to specify it in +FOO_DEPENDENCIES+. What you may have noticed is that, unlike other package infrastructures, we explicitly invoke a second infrastructure. This allows a package to build a kernel module, but also, if needed, use any one of other package infrastructures to build normal userland components (libraries, executables...). Using the +kernel-module+ infrastructure on its own is not sufficient; another package infrastructure *must* be used. Let's look at a more complex example: ---- 01: ################################################################################ 02: # 03: # foo 04: # 05: ################################################################################ 06: 07: FOO_VERSION = 1.2.3 08: FOO_SOURCE = foo-$(FOO_VERSION).tar.xz 09: FOO_SITE = http://www.foosoftware.org/download 10: FOO_LICENSE = GPL-2.0 11: FOO_LICENSE_FILES = COPYING 12: 13: FOO_MODULE_SUBDIRS = driver/base 14: FOO_MODULE_MAKE_OPTS = KVERSION=$(LINUX_VERSION_PROBED) 15: 16: ifeq ($(BR2_PACKAGE_LIBBAR),y) 17: FOO_DEPENDENCIES = libbar 18: FOO_CONF_OPTS = --enable-bar 19: FOO_MODULE_SUBDIRS += driver/bar 20: else 21: FOO_CONF_OPTS = --disable-bar 22: endif 23: 24: $(eval $(kernel-module)) 26: $(eval $(autotools-package)) ---- Here, we see that we have an autotools-based package, that also builds the kernel module located in sub-directory +driver/base+ and, if libbar is enabled, the kernel module located in sub-directory +driver/bar+, and defines the variable +KVERSION+ to be passed to the Linux buildsystem when building the module(s). [[kernel-module-reference]] ==== +kernel-module+ reference The main macro for the kernel module infrastructure is +kernel-module+. Unlike other package infrastructures, it is not stand-alone, and requires any of the other +*-package+ macros be called after it. The +kernel-module+ macro defines post-build and post-target-install hooks to build the kernel modules. If the package's +.mk+ needs access to the built kernel modules, it should do so in a post-build hook, *registered after* the call to +kernel-module+. Similarly, if the package's +.mk+ needs access to the kernel module after it has been installed, it should do so in a post-install hook, *registered after* the call to +kernel-module+. Here's an example: ---- $(eval $(kernel-module)) define FOO_DO_STUFF_WITH_KERNEL_MODULE # Do something with it... endef FOO_POST_BUILD_HOOKS += FOO_DO_STUFF_WITH_KERNEL_MODULE $(eval $(generic-package)) ---- Finally, unlike the other package infrastructures, there is no +host-kernel-module+ variant to build a host kernel module. The following additional variables can optionally be defined to further configure the build of the kernel module: * +FOO_MODULE_SUBDIRS+ may be set to one or more sub-directories (relative to the package source top-directory) where the kernel module sources are. If empty or not set, the sources for the kernel module(s) are considered to be located at the top of the package source tree. * +FOO_MODULE_MAKE_OPTS+ may be set to contain extra variable definitions to pass to the Linux buildsystem. [[kernel-variables]] You may also reference (but you may *not* set!) those variables: * +LINUX_DIR+ contains the path to where the Linux kernel has been extracted and built. * +LINUX_VERSION+ contains the version string as configured by the user. * +LINUX_VERSION_PROBED+ contains the real version string of the kernel, retrieved with running `make -C $(LINUX_DIR) kernelrelease` * +KERNEL_ARCH+ contains the name of the current architecture, like `arm`, `mips`... ================================================ FILE: docs/manual/adding-packages-linux-kernel-spec-infra.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[linux-kernel-specific-infra]] === Infrastructure specific to the Linux kernel package The Linux kernel package can use some specific infrastructures based on package hooks for building Linux kernel tools or/and building Linux kernel extensions. [[linux-kernel-tools]] ==== linux-kernel-tools Buildroot offers a helper infrastructure to build some userspace tools for the target available within the Linux kernel sources. Since their source code is part of the kernel source code, a special package, +linux-tools+, exists and re-uses the sources of the Linux kernel that runs on the target. Let's look at an example of a Linux tool. For a new Linux tool named +foo+, create a new menu entry in the existing +package/linux-tools/Config.in+. This file will contain the option descriptions related to each kernel tool that will be used and displayed in the configuration tool. It would basically look like: ------------------------------ 01: config BR2_PACKAGE_LINUX_TOOLS_FOO 02: bool "foo" 03: select BR2_PACKAGE_LINUX_TOOLS 04: help 05: This is a comment that explains what foo kernel tool is. 06: 07: http://foosoftware.org/foo/ ------------------------------ The name of the option starts with the prefix +BR2_PACKAGE_LINUX_TOOLS_+, followed by the uppercase name of the tool (like is done for packages). .Note Unlike other packages, the +linux-tools+ package options appear in the +linux+ kernel menu, under the `Linux Kernel Tools` sub-menu, not under the `Target packages` main menu. Then for each linux tool, add a new +.mk.in+ file named +package/linux-tools/linux-tool-foo.mk.in+. It would basically look like: ------------------------------ 01: ################################################################################ 02: # 03: # foo 04: # 05: ################################################################################ 06: 07: LINUX_TOOLS += foo 08: 09: FOO_DEPENDENCIES = libbbb 10: 11: define FOO_BUILD_CMDS 12: $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools foo 13: endef 14: 15: define FOO_INSTALL_STAGING_CMDS 16: $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \ 17: DESTDIR=$(STAGING_DIR) \ 18: foo_install 19: endef 20: 21: define FOO_INSTALL_TARGET_CMDS 22: $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \ 23: DESTDIR=$(TARGET_DIR) \ 24: foo_install 25: endef -------------------------------- On line 7, we register the Linux tool +foo+ to the list of available Linux tools. On line 9, we specify the list of dependencies this tool relies on. These dependencies are added to the Linux package dependencies list only when the +foo+ tool is selected. The rest of the Makefile, lines 11-25 defines what should be done at the different steps of the Linux tool build process like for a xref:generic-package-tutorial[+generic package+]. They will actually be used only when the +foo+ tool is selected. The only supported commands are +_BUILD_CMDS+, +_INSTALL_STAGING_CMDS+ and +_INSTALL_TARGET_CMDS+. .Note One *must not* call +$(eval $(generic-package))+ or any other package infrastructure! Linux tools are not packages by themselves, they are part of the +linux-tools+ package. [[linux-kernel-ext]] ==== linux-kernel-extensions Some packages provide new features that require the Linux kernel tree to be modified. This can be in the form of patches to be applied on the kernel tree, or in the form of new files to be added to the tree. The Buildroot's Linux kernel extensions infrastructure provides a simple solution to automatically do this, just after the kernel sources are extracted and before the kernel patches are applied. Examples of extensions packaged using this mechanism are the real-time extensions Xenomai and RTAI, as well as the set of out-of-tree LCD screens drivers +fbtft+. Let's look at an example on how to add a new Linux extension +foo+. First, create the package +foo+ that provides the extension: this package is a standard package; see the previous chapters on how to create such a package. This package is in charge of downloading the sources archive, checking the hash, defining the licence informations and building user space tools if any. Then create the 'Linux extension' proper: create a new menu entry in the existing +linux/Config.ext.in+. This file contains the option descriptions related to each kernel extension that will be used and displayed in the configuration tool. It would basically look like: ------------------------------ 01: config BR2_LINUX_KERNEL_EXT_FOO 02: bool "foo" 03: help 04: This is a comment that explains what foo kernel extension is. 05: 06: http://foosoftware.org/foo/ ------------------------------ Then for each linux extension, add a new +.mk+ file named +linux/linux-ext-foo.mk+. It should basically contain: ------------------------------ 01: ################################################################################ 02: # 03: # foo 04: # 05: ################################################################################ 06: 07: LINUX_EXTENSIONS += foo 08: 09: define FOO_PREPARE_KERNEL 10: $(FOO_DIR)/prepare-kernel-tree.sh --linux-dir=$(@D) 11: endef -------------------------------- On line 7, we add the Linux extension +foo+ to the list of available Linux extensions. On line 9-11, we define what should be done by the extension to modify the Linux kernel tree; this is specific to the linux extension and can use the variables defined by the +foo+ package, like: +$(FOO_DIR)+ or +$(FOO_VERSION)+... as well as all the Linux variables, like: +$(LINUX_VERSION)+ or +$(LINUX_VERSION_PROBED)+, +$(KERNEL_ARCH)+... See the xref:kernel-variables[definition of those kernel variables]. ================================================ FILE: docs/manual/adding-packages-luarocks.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for LuaRocks-based packages [[luarocks-package-tutorial]] ==== +luarocks-package+ tutorial First, let's see how to write a +.mk+ file for a LuaRocks-based package, with an example : ------------------------ 01: ################################################################################ 02: # 03: # lua-foo 04: # 05: ################################################################################ 06: 07: LUA_FOO_VERSION = 1.0.2-1 08: LUA_FOO_NAME_UPSTREAM = foo 09: LUA_FOO_DEPENDENCIES = bar 10: 11: LUA_FOO_BUILD_OPTS += BAR_INCDIR=$(STAGING_DIR)/usr/include 12: LUA_FOO_BUILD_OPTS += BAR_LIBDIR=$(STAGING_DIR)/usr/lib 13: LUA_FOO_LICENSE = luaFoo license 14: LUA_FOO_LICENSE_FILES = $(LUA_FOO_SUBDIR)/COPYING 15: 16: $(eval $(luarocks-package)) ------------------------ On line 7, we declare the version of the package (the same as in the rockspec, which is the concatenation of the upstream version and the rockspec revision, separated by a hyphen '-'). On line 8, we declare that the package is called "foo" on LuaRocks. In Buildroot, we give Lua-related packages a name that starts with "lua", so the Buildroot name is different from the upstream name. +LUA_FOO_NAME_UPSTREAM+ makes the link between the two names. On line 9, we declare our dependencies against native libraries, so that they are built before the build process of our package starts. On lines 11-12, we tell Buildroot to pass custom options to LuaRocks when it is building the package. On lines 13-14, we specify the licensing terms for the package. Finally, on line 16, we invoke the +luarocks-package+ macro that generates all the Makefile rules that actually allows the package to be built. Most of these details can be retrieved from the +rock+ and +rockspec+. So, this file and the Config.in file can be generated by running the command +luarocks buildroot foo lua-foo+ in the Buildroot directory. This command runs a specific Buildroot addon of +luarocks+ that will automatically generate a Buildroot package. The result must still be manually inspected and possibly modified. * The +package/Config.in+ file has to be updated manually to include the generated Config.in files. [[luarocks-package-reference]] ==== +luarocks-package+ reference LuaRocks is a deployment and management system for Lua modules, and supports various +build.type+: +builtin+, +make+ and +cmake+. In the context of Buildroot, the +luarocks-package+ infrastructure only supports the +builtin+ mode. LuaRocks packages that use the +make+ or +cmake+ build mechanisms should instead be packaged using the +generic-package+ and +cmake-package+ infrastructures in Buildroot, respectively. The main macro of the LuaRocks package infrastructure is +luarocks-package+: like +generic-package+ it works by defining a number of variables providing metadata information about the package, and then calling +luarocks-package+. Just like the generic infrastructure, the LuaRocks infrastructure works by defining a number of variables before calling the +luarocks-package+ macro. First, all the package metadata information variables that exist in the generic infrastructure also exist in the LuaRocks infrastructure: +LUA_FOO_VERSION+, +LUA_FOO_SOURCE+, +LUA_FOO_SITE+, +LUA_FOO_DEPENDENCIES+, +LUA_FOO_LICENSE+, +LUA_FOO_LICENSE_FILES+. Two of them are populated by the LuaRocks infrastructure (for the +download+ step). If your package is not hosted on the LuaRocks mirror +$(BR2_LUAROCKS_MIRROR)+, you can override them: * +LUA_FOO_SITE+, which defaults to +$(BR2_LUAROCKS_MIRROR)+ * +LUA_FOO_SOURCE+, which defaults to +$(lowercase LUA_FOO_NAME_UPSTREAM)-$(LUA_FOO_VERSION).src.rock+ A few additional variables, specific to the LuaRocks infrastructure, are also defined. They can be overridden in specific cases. * +LUA_FOO_NAME_UPSTREAM+, which defaults to +lua-foo+, i.e. the Buildroot package name * +LUA_FOO_ROCKSPEC+, which defaults to +$(lowercase LUA_FOO_NAME_UPSTREAM)-$(LUA_FOO_VERSION).rockspec+ * +LUA_FOO_SUBDIR+, which defaults to +$(LUA_FOO_NAME_UPSTREAM)-$(LUA_FOO_VERSION_WITHOUT_ROCKSPEC_REVISION)+ * +LUA_FOO_BUILD_OPTS+ contains additional build options for the +luarocks build+ call. ================================================ FILE: docs/manual/adding-packages-meson.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for Meson-based packages [[meson-package-tutorial]] ==== +meson-package+ tutorial http://mesonbuild.com[Meson] is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible. It uses https://ninja-build.org[Ninja] as a companion tool to perform the actual build operations. Let's see how to write a +.mk+ file for a Meson-based package, with an example: ------------------------------ 01: ################################################################################ 02: # 03: # foo 04: # 05: ################################################################################ 06: 07: FOO_VERSION = 1.0 08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz 09: FOO_SITE = http://www.foosoftware.org/download 10: FOO_LICENSE = GPL-3.0+ 11: FOO_LICENSE_FILES = COPYING 12: FOO_INSTALL_STAGING = YES 13: 14: FOO_DEPENDENCIES = host-pkgconf bar 15: 16: ifeq ($(BR2_PACKAGE_BAZ),y) 17: FOO_CONF_OPTS += -Dbaz=true 18: FOO_DEPENDENCIES += baz 19: else 20: FOO_CONF_OPTS += -Dbaz=false 21: endif 22: 23: $(eval $(meson-package)) -------------------------------- The Makefile starts with the definition of the standard variables for package declaration (lines 7 to 11). On line line 23, we invoke the +meson-package+ macro that generates all the Makefile rules that actually allows the package to be built. In the example, +host-pkgconf+ and +bar+ are declared as dependencies in +FOO_DEPENDENCIES+ at line 14 because the Meson build file of +foo+ uses `pkg-config` to determine the compilation flags and libraries of package +bar+. Note that it is not necessary to add +host-meson+ in the +FOO_DEPENDENCIES+ variable of a package, since this basic dependency is automatically added as needed by the Meson package infrastructure. If the "baz" package is selected, then support for the "baz" feature in "foo" is activated by adding +-Dbaz=true+ to +FOO_CONF_OPTS+ at line 17, as specified in the +meson_options.txt+ file in "foo" source tree. The "baz" package is also added to +FOO_DEPENDENCIES+. Note that the support for +baz+ is explicitly disabled at line 20, if the package is not selected. To sum it up, to add a new meson-based package, the Makefile example can be copied verbatim then edited to replace all occurences of +FOO+ with the uppercase name of the new package and update the values of the standard variables. [[meson-package-reference]] ==== +meson-package+ reference The main macro of the Meson package infrastructure is +meson-package+. It is similar to the +generic-package+ macro. The ability to have target and host packages is also available, with the +host-meson-package+ macro. Just like the generic infrastructure, the Meson infrastructure works by defining a number of variables before calling the +meson-package+ macro. First, all the package metadata information variables that exist in the generic infrastructure also exist in the Meson infrastructure: +FOO_VERSION+, +FOO_SOURCE+, +FOO_PATCH+, +FOO_SITE+, +FOO_SUBDIR+, +FOO_DEPENDENCIES+, +FOO_INSTALL_STAGING+, +FOO_INSTALL_TARGET+. A few additional variables, specific to the Meson infrastructure, can also be defined. Many of them are only useful in very specific cases, typical packages will therefore only use a few of them. * +FOO_SUBDIR+ may contain the name of a subdirectory inside the package that contains the main meson.build file. This is useful, if for example, the main meson.build file is not at the root of the tree extracted by the tarball. If +HOST_FOO_SUBDIR+ is not specified, it defaults to +FOO_SUBDIR+. * +FOO_CONF_ENV+, to specify additional environment variables to pass to +meson+ for the configuration step. By default, empty. * +FOO_CONF_OPTS+, to specify additional options to pass to +meson+ for the configuration step. By default, empty. * +FOO_CFLAGS+, to specify compiler arguments added to the package specific +cross-compile.conf+ file +c_args+ property. By default, the value of +TARGET_CFLAGS+. * +FOO_CXXFLAGS+, to specify compiler arguments added to the package specific +cross-compile.conf+ file +cpp_args+ property. By default, the value of +TARGET_CXXFLAGS+. * +FOO_LDFLAGS+, to specify compiler arguments added to the package specific +cross-compile.conf+ file +c_link_args+ and +cpp_link_args+ properties. By default, the value of +TARGET_LDFLAGS+. * +FOO_MESON_EXTRA_BINARIES+, to specify a space-separated list of programs to add to the `[binaries]` section of the meson `cross-compilation.conf` configuration file. The format is `program-name='/path/to/program'`, with no space around the +=+ sign, and with the path of the program between single quotes. By default, empty. Note that Buildroot already sets the correct values for +c+, +cpp+, +ar+, +strip+, and +pkgconfig+. * +FOO_MESON_EXTRA_PROPERTIES+, to specify a space-separated list of properties to add to the `[properties]` section of the meson `cross-compilation.conf` configuration file. The format is `property-name=` with no space around the +=+ sign, and with single quotes around string values. By default, empty. Note that Buildroot already sets values for +needs_exe_wrapper+, +c_args+, +c_link_args+, +cpp_args+, +cpp_link_args+, +sys_root+, and +pkg_config_libdir+. * +FOO_NINJA_ENV+, to specify additional environment variables to pass to +ninja+, meson companion tool in charge of the build operations. By default, empty. * +FOO_NINJA_OPTS+, to specify a space-separated list of targets to build. By default, empty, to build the default target(s). ================================================ FILE: docs/manual/adding-packages-perl.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for Perl/CPAN packages [[perl-package-tutorial]] ==== +perl-package+ tutorial First, let's see how to write a +.mk+ file for a Perl/CPAN package, with an example : ------------------------ 01: ################################################################################ 02: # 03: # perl-foo-bar 04: # 05: ################################################################################ 06: 07: PERL_FOO_BAR_VERSION = 0.02 08: PERL_FOO_BAR_SOURCE = Foo-Bar-$(PERL_FOO_BAR_VERSION).tar.gz 09: PERL_FOO_BAR_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MO/MONGER 10: PERL_FOO_BAR_DEPENDENCIES = perl-strictures 11: PERL_FOO_BAR_LICENSE = Artistic or GPL-1.0+ 12: PERL_FOO_BAR_LICENSE_FILES = LICENSE 13: PERL_FOO_BAR_DISTNAME = Foo-Bar 14: 15: $(eval $(perl-package)) ------------------------ On line 7, we declare the version of the package. On line 8 and 9, we declare the name of the tarball and the location of the tarball on a CPAN server. Buildroot will automatically download the tarball from this location. On line 10, we declare our dependencies, so that they are built before the build process of our package starts. On line 11 and 12, we give licensing details about the package (its license on line 11, and the file containing the license text on line 12). On line 13, the name of the distribution as needed by the script +utils/scancpan+ (in order to regenerate/upgrade these package files). Finally, on line 15, we invoke the +perl-package+ macro that generates all the Makefile rules that actually allow the package to be built. Most of these data can be retrieved from https://metacpan.org/. So, this file and the Config.in can be generated by running the script +utils/scancpan Foo-Bar+ in the Buildroot directory (or in a br2-external tree). This script creates a Config.in file and foo-bar.mk file for the requested package, and also recursively for all dependencies specified by CPAN. You should still manually edit the result. In particular, the following things should be checked. * If the perl module links with a shared library that is provided by another (non-perl) package, this dependency is not added automatically. It has to be added manually to +PERL_FOO_BAR_DEPENDENCIES+. * The +package/Config.in+ file has to be updated manually to include the generated Config.in files. As a hint, the +scancpan+ script prints out the required +source "..."+ statements, sorted alphabetically. [[perl-package-reference]] ==== +perl-package+ reference As a policy, packages that provide Perl/CPAN modules should all be named +perl-+ in Buildroot. This infrastructure handles various Perl build systems : +ExtUtils-MakeMaker+ (EUMM), +Module-Build+ (MB) and +Module-Build-Tiny+. +Build.PL+ is preferred by default when a package provides a +Makefile.PL+ and a +Build.PL+. The main macro of the Perl/CPAN package infrastructure is +perl-package+. It is similar to the +generic-package+ macro. The ability to have target and host packages is also available, with the +host-perl-package+ macro. Just like the generic infrastructure, the Perl/CPAN infrastructure works by defining a number of variables before calling the +perl-package+ macro. First, all the package metadata information variables that exist in the generic infrastructure also exist in the Perl/CPAN infrastructure: +PERL_FOO_VERSION+, +PERL_FOO_SOURCE+, +PERL_FOO_PATCH+, +PERL_FOO_SITE+, +PERL_FOO_SUBDIR+, +PERL_FOO_DEPENDENCIES+, +PERL_FOO_INSTALL_TARGET+. Note that setting +PERL_FOO_INSTALL_STAGING+ to +YES+ has no effect unless a +PERL_FOO_INSTALL_STAGING_CMDS+ variable is defined. The perl infrastructure doesn't define these commands since Perl modules generally don't need to be installed to the +staging+ directory. A few additional variables, specific to the Perl/CPAN infrastructure, can also be defined. Many of them are only useful in very specific cases, typical packages will therefore only use a few of them. * +PERL_FOO_PREFER_INSTALLER+/+HOST_PERL_FOO_PREFER_INSTALLER+, specifies the preferred installation method. Possible values are +EUMM+ (for +Makefile.PL+ based installation using +ExtUtils-MakeMaker+) and +MB+ (for +Build.PL+ based installation using +Module-Build+). This variable is only used when the package provides both installation methods. * +PERL_FOO_CONF_ENV+/+HOST_PERL_FOO_CONF_ENV+, to specify additional environment variables to pass to the +perl Makefile.PL+ or +perl Build.PL+. By default, empty. * +PERL_FOO_CONF_OPTS+/+HOST_PERL_FOO_CONF_OPTS+, to specify additional configure options to pass to the +perl Makefile.PL+ or +perl Build.PL+. By default, empty. * +PERL_FOO_BUILD_OPTS+/+HOST_PERL_FOO_BUILD_OPTS+, to specify additional options to pass to +make pure_all+ or +perl Build build+ in the build step. By default, empty. * +PERL_FOO_INSTALL_TARGET_OPTS+, to specify additional options to pass to +make pure_install+ or +perl Build install+ in the install step. By default, empty. * +HOST_PERL_FOO_INSTALL_OPTS+, to specify additional options to pass to +make pure_install+ or +perl Build install+ in the install step. By default, empty. ================================================ FILE: docs/manual/adding-packages-python.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for Python packages This infrastructure applies to Python packages that use the standard Python setuptools mechanism as their build system, generally recognizable by the usage of a +setup.py+ script. [[python-package-tutorial]] ==== +python-package+ tutorial First, let's see how to write a +.mk+ file for a Python package, with an example : ------------------------ 01: ################################################################################ 02: # 03: # python-foo 04: # 05: ################################################################################ 06: 07: PYTHON_FOO_VERSION = 1.0 08: PYTHON_FOO_SOURCE = python-foo-$(PYTHON_FOO_VERSION).tar.xz 09: PYTHON_FOO_SITE = http://www.foosoftware.org/download 10: PYTHON_FOO_LICENSE = BSD-3-Clause 11: PYTHON_FOO_LICENSE_FILES = LICENSE 12: PYTHON_FOO_ENV = SOME_VAR=1 13: PYTHON_FOO_DEPENDENCIES = libmad 14: PYTHON_FOO_SETUP_TYPE = distutils 15: 16: $(eval $(python-package)) ------------------------ On line 7, we declare the version of the package. On line 8 and 9, we declare the name of the tarball (xz-ed tarball recommended) and the location of the tarball on the Web. Buildroot will automatically download the tarball from this location. On line 10 and 11, we give licensing details about the package (its license on line 10, and the file containing the license text on line 11). On line 12, we tell Buildroot to pass custom options to the Python +setup.py+ script when it is configuring the package. On line 13, we declare our dependencies, so that they are built before the build process of our package starts. On line 14, we declare the specific Python build system being used. In this case the +distutils+ Python build system is used. The two supported ones are +distutils+ and +setuptools+. Finally, on line 16, we invoke the +python-package+ macro that generates all the Makefile rules that actually allow the package to be built. [[python-package-reference]] ==== +python-package+ reference As a policy, packages that merely provide Python modules should all be named +python-+ in Buildroot. Other packages that use the Python build system, but are not Python modules, can freely choose their name (existing examples in Buildroot are +scons+ and +supervisor+). Packages that are only compatible with one version of Python (as in: Python 2 or Python 3) should depend on that version explicitely in their +Config.in+ file (+BR2_PACKAGE_PYTHON+ for Python 2, +BR2_PACKAGE_PYTHON3+ for Python 3). Packages that are compatible with both versions should not explicitely depend on them in their +Config.in+ file, since that condition is already expressed for the whole "External python modules" menu. The main macro of the Python package infrastructure is +python-package+. It is similar to the +generic-package+ macro. It is also possible to create Python host packages with the +host-python-package+ macro. Just like the generic infrastructure, the Python infrastructure works by defining a number of variables before calling the +python-package+ or +host-python-package+ macros. All the package metadata information variables that exist in the xref:generic-package-reference[generic package infrastructure] also exist in the Python infrastructure: +PYTHON_FOO_VERSION+, +PYTHON_FOO_SOURCE+, +PYTHON_FOO_PATCH+, +PYTHON_FOO_SITE+, +PYTHON_FOO_SUBDIR+, +PYTHON_FOO_DEPENDENCIES+, +PYTHON_FOO_LICENSE+, +PYTHON_FOO_LICENSE_FILES+, +PYTHON_FOO_INSTALL_STAGING+, etc. Note that: * It is not necessary to add +python+ or +host-python+ in the +PYTHON_FOO_DEPENDENCIES+ variable of a package, since these basic dependencies are automatically added as needed by the Python package infrastructure. * Similarly, it is not needed to add +host-setuptools+ to +PYTHON_FOO_DEPENDENCIES+ for setuptools-based packages, since it's automatically added by the Python infrastructure as needed. One variable specific to the Python infrastructure is mandatory: * +PYTHON_FOO_SETUP_TYPE+, to define which Python build system is used by the package. The two supported values are +distutils+ and +setuptools+. If you don't know which one is used in your package, look at the +setup.py+ file in your package source code, and see whether it imports things from the +distutils+ module or the +setuptools+ module. A few additional variables, specific to the Python infrastructure, can optionally be defined, depending on the package's needs. Many of them are only useful in very specific cases, typical packages will therefore only use a few of them, or none. * +PYTHON_FOO_SUBDIR+ may contain the name of a subdirectory inside the package that contains the main +setup.py+ file. This is useful, if for example, the main +setup.py+ file is not at the root of the tree extracted by the tarball. If +HOST_PYTHON_FOO_SUBDIR+ is not specified, it defaults to +PYTHON_FOO_SUBDIR+. * +PYTHON_FOO_ENV+, to specify additional environment variables to pass to the Python +setup.py+ script (for both the build and install steps). Note that the infrastructure is automatically passing several standard variables, defined in +PKG_PYTHON_DISTUTILS_ENV+ (for distutils target packages), +HOST_PKG_PYTHON_DISTUTILS_ENV+ (for distutils host packages), +PKG_PYTHON_SETUPTOOLS_ENV+ (for setuptools target packages) and +HOST_PKG_PYTHON_SETUPTOOLS_ENV+ (for setuptools host packages). * +PYTHON_FOO_BUILD_OPTS+, to specify additional options to pass to the Python +setup.py+ script during the build step. For target distutils packages, the +PKG_PYTHON_DISTUTILS_BUILD_OPTS+ options are already passed automatically by the infrastructure. * +PYTHON_FOO_INSTALL_TARGET_OPTS+, +PYTHON_FOO_INSTALL_STAGING_OPTS+, +HOST_PYTHON_FOO_INSTALL_OPTS+ to specify additional options to pass to the Python +setup.py+ script during the target installation step, the staging installation step or the host installation, respectively. Note that the infrastructure is automatically passing some options, defined in +PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS+ or +PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS+ (for target distutils packages), +HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS+ (for host distutils packages), +PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS+ or +PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS+ (for target setuptools packages) and +HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS+ (for host setuptools packages). * +HOST_PYTHON_FOO_NEEDS_HOST_PYTHON+, to define the host python interpreter. The usage of this variable is limited to host packages. The two supported value are +python2+ and +python3+. It will ensure the right host python package is available and will invoke it for the build. If some build steps are overloaded, the right python interpreter must be explicitly called in the commands. With the Python infrastructure, all the steps required to build and install the packages are already defined, and they generally work well for most Python-based packages. However, when required, it is still possible to customize what is done in any particular step: * By adding a post-operation hook (after extract, patch, configure, build or install). See xref:hooks[] for details. * By overriding one of the steps. For example, even if the Python infrastructure is used, if the package +.mk+ file defines its own +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 +utils/+ 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 : ----------------------- utils/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: ----------------------- utils/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: ----------------------- utils/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)) ------------------------ ================================================ FILE: docs/manual/adding-packages-qmake.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for QMake-based packages [[qmake-package-tutorial]] ==== +qmake-package+ tutorial First, let's see how to write a +.mk+ file for a QMake-based package, with an example : ------------------------ 01: ################################################################################ 02: # 03: # libfoo 04: # 05: ################################################################################ 06: 07: LIBFOO_VERSION = 1.0 08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz 09: LIBFOO_SITE = http://www.foosoftware.org/download 10: LIBFOO_CONF_OPTS = QT_CONFIG+=bar QT_CONFIG-=baz 11: LIBFOO_DEPENDENCIES = bar 12: 13: $(eval $(qmake-package)) ------------------------ On line 7, we declare the version of the package. On line 8 and 9, we declare the name of the tarball (xz-ed tarball recommended) and the location of the tarball on the Web. Buildroot will automatically download the tarball from this location. On line 10, we tell Buildroot what options to enable for libfoo. On line 11, we tell Buildroot the dependencies of libfoo. Finally, on line line 13, we invoke the +qmake-package+ macro that generates all the Makefile rules that actually allows the package to be built. [[qmake-package-reference]] ==== +qmake-package+ reference The main macro of the QMake package infrastructure is +qmake-package+. It is similar to the +generic-package+ macro. Just like the generic infrastructure, the QMake infrastructure works by defining a number of variables before calling the +qmake-package+ macro. First, all the package metadata information variables that exist in the generic infrastructure also exist in the QMake infrastructure: +LIBFOO_VERSION+, +LIBFOO_SOURCE+, +LIBFOO_PATCH+, +LIBFOO_SITE+, +LIBFOO_SUBDIR+, +LIBFOO_DEPENDENCIES+, +LIBFOO_INSTALL_STAGING+, +LIBFOO_INSTALL_TARGET+. An additional variable, specific to the QMake infrastructure, can also be defined. * +LIBFOO_CONF_ENV+, to specify additional environment variables to pass to the +qmake+ script for the configuration step. By default, empty. * +LIBFOO_CONF_OPTS+, to specify additional options to pass to the +qmake+ script for the configuration step. By default, empty. * +LIBFOO_MAKE_ENV+, to specify additional environment variables to the +make+ command during the build and install steps. By default, empty. * +LIBFOO_MAKE_OPTS+, to specify additional targets to pass to the +make+ command during the build step. By default, empty. * +LIBFOO_INSTALL_STAGING_OPTS+, to specify additional targets to pass to the +make+ command during the staging installation step. By default, +install+. * +LIBFOO_INSTALL_TARGET_OPTS+, to specify additional targets to pass to the +make+ command during the target installation step. By default, +install+. * +LIBFOO_SYNC_QT_HEADERS+, to run syncqt.pl before qmake. Some packages need this to have a properly populated include directory before running the build. ================================================ FILE: docs/manual/adding-packages-rebar.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for rebar-based packages [[rebar-package-tutorial]] ==== +rebar-package+ tutorial First, let's see how to write a +.mk+ file for a rebar-based package, with an example : ------------------------------ 01: ################################################################################ 02: # 03: # erlang-foobar 04: # 05: ################################################################################ 06: 07: ERLANG_FOOBAR_VERSION = 1.0 08: ERLANG_FOOBAR_SOURCE = erlang-foobar-$(ERLANG_FOOBAR_VERSION).tar.xz 09: ERLANG_FOOBAR_SITE = http://www.foosoftware.org/download 10: ERLANG_FOOBAR_DEPENDENCIES = host-libaaa libbbb 11: 12: $(eval $(rebar-package)) -------------------------------- On line 7, we declare the version of the package. On line 8 and 9, we declare the name of the tarball (xz-ed tarball recommended) and the location of the tarball on the Web. Buildroot will automatically download the tarball from this location. On line 10, we declare our dependencies, so that they are built before the build process of our package starts. Finally, on line 12, we invoke the +rebar-package+ macro that generates all the Makefile rules that actually allows the package to be built. [[rebar-package-reference]] ==== +rebar-package+ reference The main macro of the +rebar+ package infrastructure is +rebar-package+. It is similar to the +generic-package+ macro. The ability to have host packages is also available, with the +host-rebar-package+ macro. Just like the generic infrastructure, the +rebar+ infrastructure works by defining a number of variables before calling the +rebar-package+ macro. First, all the package metadata information variables that exist in the generic infrastructure also exist in the +rebar+ infrastructure: +ERLANG_FOOBAR_VERSION+, +ERLANG_FOOBAR_SOURCE+, +ERLANG_FOOBAR_PATCH+, +ERLANG_FOOBAR_SITE+, +ERLANG_FOOBAR_SUBDIR+, +ERLANG_FOOBAR_DEPENDENCIES+, +ERLANG_FOOBAR_INSTALL_STAGING+, +ERLANG_FOOBAR_INSTALL_TARGET+, +ERLANG_FOOBAR_LICENSE+ and +ERLANG_FOOBAR_LICENSE_FILES+. A few additional variables, specific to the +rebar+ infrastructure, can also be defined. Many of them are only useful in very specific cases, typical packages will therefore only use a few of them. * +ERLANG_FOOBAR_USE_AUTOCONF+, to specify that the package uses _autoconf_ at the configuration step. When a package sets this variable to +YES+, the +autotools+ infrastructure is used. + .Note You can also use some of the variables from the +autotools+ infrastructure: +ERLANG_FOOBAR_CONF_ENV+, +ERLANG_FOOBAR_CONF_OPTS+, +ERLANG_FOOBAR_AUTORECONF+, +ERLANG_FOOBAR_AUTORECONF_ENV+ and +ERLANG_FOOBAR_AUTORECONF_OPTS+. * +ERLANG_FOOBAR_USE_BUNDLED_REBAR+, to specify that the package has a bundled version of _rebar_ *and* that it shall be used. Valid values are +YES+ or +NO+ (the default). + .Note If the package bundles a _rebar_ utility, but can use the generic one that Buildroot provides, just say +NO+ (i.e., do not specify this variable). Only set if it is mandatory to use the _rebar_ utility bundled in this package. * +ERLANG_FOOBAR_REBAR_ENV+, to specify additional environment variables to pass to the _rebar_ utility. * +ERLANG_FOOBAR_KEEP_DEPENDENCIES+, to keep the dependencies described in the rebar.config file. Valid values are +YES+ or +NO+ (the default). Unless this variable is set to +YES+, the _rebar_ infrastructure removes such dependencies in a post-patch hook to ensure rebar does not download nor compile them. With the rebar infrastructure, all the steps required to build and install the packages are already defined, and they generally work well for most rebar-based packages. However, when required, it is still possible to customize what is done in any particular step: * By adding a post-operation hook (after extract, patch, configure, build or install). See xref:hooks[] for details. * By overriding one of the steps. For example, even if the rebar infrastructure is used, if the package +.mk+ file defines its own +ERLANG_FOOBAR_BUILD_CMDS+ variable, it will be used instead of the default rebar one. However, using this method should be restricted to very specific cases. Do not use it in the general case. ================================================ FILE: docs/manual/adding-packages-tips.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Tips and tricks [[package-name-variable-relation]] ==== Package name, config entry name and makefile variable relationship In Buildroot, there is some relationship between: * the _package name_, which is the package directory name (and the name of the +*.mk+ file); * the config entry name that is declared in the +Config.in+ file; * the makefile variable prefix. It is mandatory to maintain consistency between these elements, using the following rules: * the package directory and the +*.mk+ name are the _package name_ itself (e.g.: +package/foo-bar_boo/foo-bar_boo.mk+); * the _make_ target name is the _package name_ itself (e.g.: +foo-bar_boo+); * the config entry is the upper case _package name_ with `.` and `-` characters substituted with `_`, prefixed with +BR2_PACKAGE_+ (e.g.: +BR2_PACKAGE_FOO_BAR_BOO+); * the +*.mk+ file variable prefix is the upper case _package name_ with `.` and `-` characters substituted with `_` (e.g.: +FOO_BAR_BOO_VERSION+). [[check-package]] ==== How to check the coding style Buildroot provides a script in +utils/check-package+ that checks new or changed files for coding style. It is not a complete language validator, but it catches many common mistakes. It is meant to run in the actual files you created or modified, before creating the patch for submission. This script can be used for packages, filesystem makefiles, Config.in files, etc. It does not check the files defining the package infrastructures and some other files containing similar common code. To use it, run the +check-package+ script, by telling which files you created or changed: ---- $ ./utils/check-package package/new-package/* ---- If you have the +utils+ directory in your path you can also run: ---- $ cd package/new-package/ $ check-package * ---- The tool can also be used for packages in a br2-external: ---- $ check-package -b /path/to/br2-ext-tree/package/my-package/* ---- [[testing-package]] ==== How to test your package Once you have added your new package, it is important that you test it under various conditions: does it build for all architectures? Does it build with the different C libraries? Does it need threads, NPTL? And so on... Buildroot runs http://autobuild.buildroot.org/[autobuilders] which continuously test random configurations. However, these only build the `master` branch of the git tree, and your new fancy package is not yet there. Buildroot provides a script in +utils/test-pkg+ that uses the same base configurations as used by the autobuilders so you can test your package in the same conditions. First, create a config snippet that contains all the necessary options needed to enable your package, but without any architecture or toolchain option. For example, let's create a config snippet that just enables +libcurl+, without any TLS backend: ---- $ cat libcurl.config BR2_PACKAGE_LIBCURL=y ---- If your package needs more configuration options, you can add them to the config snippet. For example, here's how you would test +libcurl+ with +openssl+ as a TLS backend and the +curl+ program: ---- $ cat libcurl.config BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y BR2_PACKAGE_OPENSSL=y ---- Then run the +test-pkg+ script, by telling it what config snippet to use and what package to test: ---- $ ./utils/test-pkg -c libcurl.config -p libcurl ---- By default, +test-pkg+ will build your package against a subset of the toolchains used by the autobuilders, which has been selected by the Buildroot developers as being the most useful and representative subset. If you want to test all toolchains, pass the +-a+ option. Note that in any case, internal toolchains are excluded as they take too long to build. The output lists all toolchains that are tested and the corresponding result (excerpt, results are fake): ---- $ ./utils/test-pkg -c libcurl.config -p libcurl armv5-ctng-linux-gnueabi [ 1/11]: OK armv7-ctng-linux-gnueabihf [ 2/11]: OK br-aarch64-glibc [ 3/11]: SKIPPED br-arcle-hs38 [ 4/11]: SKIPPED br-arm-basic [ 5/11]: FAILED br-arm-cortex-a9-glibc [ 6/11]: OK br-arm-cortex-a9-musl [ 7/11]: FAILED br-arm-cortex-m4-full [ 8/11]: OK br-arm-full [ 9/11]: OK br-arm-full-nothread [10/11]: FAILED br-arm-full-static [11/11]: OK 11 builds, 2 skipped, 2 build failed, 1 legal-info failed ---- The results mean: * `OK`: the build was successful. * `SKIPPED`: one or more configuration options listed in the config snippet were not present in the final configuration. This is due to options having dependencies not satisfied by the toolchain, such as for example a package that +depends on BR2_USE_MMU+ with a noMMU toolchain. The missing options are reported in +missing.config+ in the output build directory (+~/br-test-pkg/TOOLCHAIN_NAME/+ by default). * `FAILED`: the build failed. Inspect the +logfile+ file in the output build directory to see what went wrong: ** the actual build failed, ** the legal-info failed, ** one of the preliminary steps (downloading the config file, applying the configuration, running `dirclean` for the package) failed. When there are failures, you can just re-run the script with the same options (after you fixed your package); the script will attempt to re-build the package specified with +-p+ for all toolchains, without the need to re-build all the dependencies of that package. The +test-pkg+ script accepts a few options, for which you can get some help by running: ---- $ ./utils/test-pkg -h ---- [[github-download-url]] ==== How to add a package from GitHub Packages on GitHub often don't have a download area with release tarballs. However, it is possible to download tarballs directly from the repository on GitHub. As GitHub is known to have changed download mechanisms in the past, the 'github' helper function should be used as shown below. ------------------------ # Use a tag or a full commit ID FOO_VERSION = 1.0 FOO_SITE = $(call github,,,v$(FOO_VERSION)) ------------------------ .Notes - The FOO_VERSION can either be a tag or a commit ID. - The tarball name generated by github matches the default one from Buildroot (e.g.: +foo-f6fb6654af62045239caed5950bc6c7971965e60.tar.gz+), so it is not necessary to specify it in the +.mk+ file. - When using a commit ID as version, you should use the full 40 hex characters. - When the tag contains a prefix such as +v+ in +v1.0+, then the +VERSION+ variable should contain just +1.0+, and the +v+ should be added directly in the +SITE+ variable, as illustrated above. This ensures that the +VERSION+ variable value can be used to match against http://www.release-monitoring.org/[release-monitoring.org] results. If the package you wish to add does have a release section on GitHub, the maintainer may have uploaded a release tarball, or the release may just point to the automatically generated tarball from the git tag. If there is a release tarball uploaded by the maintainer, we prefer to use that since it may be slightly different (e.g. it contains a configure script so we don't need to do AUTORECONF). You can see on the release page if it's an uploaded tarball or a git tag: image::github_hash_mongrel2.png[] - If it looks like the image above then it was uploaded by the maintainer and you should use that link (in that example: 'mongrel2-v1.9.2.tar.bz2') to specify +FOO_SITE+, and not use the 'github' helper. - On the other hand, if there's is *only* the "Source code" link, then it's an automatically generated tarball and you should use the 'github' helper function. [[gitlab-download-url]] ==== How to add a package from Gitlab In a similar way to the +github+ macro described in xref:github-download-url[], Buildroot also provides the +gitlab+ macro to download from Gitlab repositories. It can be used to download auto-generated tarballs produced by Gitlab, either for specific tags or commits: ------------------------ # Use a tag or a full commit ID FOO_VERSION = 1.0 FOO_SITE = $(call gitlab,,,v$(FOO_VERSION)) ------------------------ By default, it will use a +.tar.gz+ tarball, but Gitlab also provides +.tar.bz2+ tarballs, so by adding a +_SOURCE+ variable, this +.tar.bz2+ tarball can be used: ------------------------ # Use a tag or a full commit ID FOO_VERSION = 1.0 FOO_SITE = $(call gitlab,,,v$(FOO_VERSION)) FOO_SOURCE = foo-$(FOO_VERSION).tar.bz2 ------------------------ If there is a specific tarball uploaded by the upstream developers in +https://gitlab.com//releases/+, do not use this macro, but rather use directly the link to the tarball. ================================================ FILE: docs/manual/adding-packages-virtual.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for virtual packages [[virtual-package-tutorial]] In Buildroot, a virtual package is a package whose functionalities are provided by one or more packages, referred to as 'providers'. The virtual package management is an extensible mechanism allowing the user to choose the provider used in the rootfs. For example, 'OpenGL ES' is an API for 2D and 3D graphics on embedded systems. The implementation of this API is different for the 'Allwinner Tech Sunxi' and the 'Texas Instruments OMAP35xx' platforms. So +libgles+ will be a virtual package and +sunxi-mali+ and +ti-gfx+ will be the providers. ==== +virtual-package+ tutorial In the following example, we will explain how to add a new virtual package ('something-virtual') and a provider for it ('some-provider'). First, let's create the virtual package. ==== Virtual package's +Config.in+ file The +Config.in+ file of virtual package 'something-virtual' should contain: --------------------------- 01: config BR2_PACKAGE_HAS_SOMETHING_VIRTUAL 02: bool 03: 04: config BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL 05: depends on BR2_PACKAGE_HAS_SOMETHING_VIRTUAL 06: string --------------------------- In this file, we declare two options, +BR2_PACKAGE_HAS_SOMETHING_VIRTUAL+ and +BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL+, whose values will be used by the providers. ==== Virtual package's +.mk+ file The +.mk+ for the virtual package should just evaluate the +virtual-package+ macro: --------------------------- 01: ################################################################################ 02: # 03: # something-virtual 04: # 05: ################################################################################ 06: 07: $(eval $(virtual-package)) --------------------------- The ability to have target and host packages is also available, with the +host-virtual-package+ macro. ==== Provider's +Config.in+ file When adding a package as a provider, only the +Config.in+ file requires some modifications. The +Config.in+ file of the package 'some-provider', which provides the functionalities of 'something-virtual', should contain: --------------------------- 01: config BR2_PACKAGE_SOME_PROVIDER 02: bool "some-provider" 03: select BR2_PACKAGE_HAS_SOMETHING_VIRTUAL 04: help 05: This is a comment that explains what some-provider is. 06: 07: http://foosoftware.org/some-provider/ 08: 09: if BR2_PACKAGE_SOME_PROVIDER 10: config BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL 11: default "some-provider" 12: endif --------------------------- On line 3, we select +BR2_PACKAGE_HAS_SOMETHING_VIRTUAL+, and on line 11, we set the value of +BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL+ to the name of the provider, but only if it is selected. ==== Provider's +.mk+ file The +.mk+ file should also declare an additional variable +SOME_PROVIDER_PROVIDES+ to contain the names of all the virtual packages it is an implementation of: --------------------------- 01: SOME_PROVIDER_PROVIDES = something-virtual --------------------------- Of course, do not forget to add the proper build and runtime dependencies for this package! ==== Notes on depending on a virtual package When adding a package that requires a certain +FEATURE+ provided by a virtual package, you have to use +depends on BR2_PACKAGE_HAS_FEATURE+, like so: --------------------------- config BR2_PACKAGE_HAS_FEATURE bool config BR2_PACKAGE_FOO bool "foo" depends on BR2_PACKAGE_HAS_FEATURE --------------------------- ==== Notes on depending on a specific provider If your package really requires a specific provider, then you'll have to make your package +depends on+ this provider; you can _not_ +select+ a provider. Let's take an example with two providers for a +FEATURE+: --------------------------- config BR2_PACKAGE_HAS_FEATURE bool config BR2_PACKAGE_FOO bool "foo" select BR2_PACKAGE_HAS_FEATURE config BR2_PACKAGE_BAR bool "bar" select BR2_PACKAGE_HAS_FEATURE --------------------------- And you are adding a package that needs +FEATURE+ as provided by +foo+, but not as provided by +bar+. If you were to use +select BR2_PACKAGE_FOO+, then the user would still be able to select +BR2_PACKAGE_BAR+ in the menuconfig. This would create a configuration inconsistency, whereby two providers of the same +FEATURE+ would be enabled at once, one explicitly set by the user, the other implicitly by your +select+. Instead, you have to use +depends on BR2_PACKAGE_FOO+, which avoids any implicit configuration inconsistency. ================================================ FILE: docs/manual/adding-packages-waf.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Infrastructure for Waf-based packages [[waf-package-tutorial]] ==== +waf-package+ tutorial First, let's see how to write a +.mk+ file for a Waf-based package, with an example : ------------------------ 01: ################################################################################ 02: # 03: # libfoo 04: # 05: ################################################################################ 06: 07: LIBFOO_VERSION = 1.0 08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz 09: LIBFOO_SITE = http://www.foosoftware.org/download 10: LIBFOO_CONF_OPTS = --enable-bar --disable-baz 11: LIBFOO_DEPENDENCIES = bar 12: 13: $(eval $(waf-package)) ------------------------ On line 7, we declare the version of the package. On line 8 and 9, we declare the name of the tarball (xz-ed tarball recommended) and the location of the tarball on the Web. Buildroot will automatically download the tarball from this location. On line 10, we tell Buildroot what options to enable for libfoo. On line 11, we tell Buildroot the dependencies of libfoo. Finally, on line line 13, we invoke the +waf-package+ macro that generates all the Makefile rules that actually allows the package to be built. [[waf-package-reference]] ==== +waf-package+ reference The main macro of the Waf package infrastructure is +waf-package+. It is similar to the +generic-package+ macro. Just like the generic infrastructure, the Waf infrastructure works by defining a number of variables before calling the +waf-package+ macro. First, all the package metadata information variables that exist in the generic infrastructure also exist in the Waf infrastructure: +LIBFOO_VERSION+, +LIBFOO_SOURCE+, +LIBFOO_PATCH+, +LIBFOO_SITE+, +LIBFOO_SUBDIR+, +LIBFOO_DEPENDENCIES+, +LIBFOO_INSTALL_STAGING+, +LIBFOO_INSTALL_TARGET+. An additional variable, specific to the Waf infrastructure, can also be defined. * +LIBFOO_SUBDIR+ may contain the name of a subdirectory inside the package that contains the main wscript file. This is useful, if for example, the main wscript file is not at the root of the tree extracted by the tarball. If +HOST_LIBFOO_SUBDIR+ is not specified, it defaults to +LIBFOO_SUBDIR+. * +LIBFOO_NEEDS_EXTERNAL_WAF+ can be set to +YES+ or +NO+ to tell Buildroot to use the bundled +waf+ executable. If set to +NO+, the default, then Buildroot will use the waf executable provided in the package source tree; if set to +YES+, then Buildroot will download, install waf as a host tool and use it to build the package. * +LIBFOO_WAF_OPTS+, to specify additional options to pass to the +waf+ script at every step of the package build process: configure, build and installation. By default, empty. * +LIBFOO_CONF_OPTS+, to specify additional options to pass to the +waf+ script for the configuration step. By default, empty. * +LIBFOO_BUILD_OPTS+, to specify additional options to pass to the +waf+ script during the build step. By default, empty. * +LIBFOO_INSTALL_STAGING_OPTS+, to specify additional options to pass to the +waf+ script during the staging installation step. By default, empty. * +LIBFOO_INSTALL_TARGET_OPTS+, to specify additional options to pass to the +waf+ script during the target installation step. By default, empty. ================================================ FILE: docs/manual/adding-packages.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[adding-packages]] == Adding new packages to Buildroot This section covers how new packages (userspace libraries or applications) can be integrated into Buildroot. It also shows how existing packages are integrated, which is needed for fixing issues or tuning their configuration. When you add a new package, be sure to test it in various conditions (see xref:testing-package[]) and also check it for coding style (see xref:check-package[]). include::adding-packages-directory.txt[] include::adding-packages-generic.txt[] include::adding-packages-autotools.txt[] include::adding-packages-cmake.txt[] include::adding-packages-python.txt[] include::adding-packages-luarocks.txt[] include::adding-packages-perl.txt[] include::adding-packages-virtual.txt[] include::adding-packages-kconfig.txt[] include::adding-packages-rebar.txt[] include::adding-packages-waf.txt[] include::adding-packages-meson.txt[] include::adding-packages-cargo.txt[] include::adding-packages-golang.txt[] include::adding-packages-qmake.txt[] include::adding-packages-kernel-module.txt[] include::adding-packages-asciidoc.txt[] include::adding-packages-linux-kernel-spec-infra.txt[] include::adding-packages-hooks.txt[] include::adding-packages-gettext.txt[] include::adding-packages-tips.txt[] include::adding-packages-conclusion.txt[] ================================================ FILE: docs/manual/advanced.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Advanced usage include::using-buildroot-toolchain.txt[] include::using-buildroot-debugger.txt[] include::ccache-support.txt[] include::download-location.txt[] include::package-make-target.txt[] include::using-buildroot-development.txt[] ================================================ FILE: docs/manual/appendix.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: include::makedev-syntax.txt[] include::makeusers-syntax.txt[] include::migrating.txt[] ================================================ FILE: docs/manual/beyond-buildroot.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: == Beyond Buildroot === Boot the generated images ==== NFS boot To achieve NFS-boot, enable _tar root filesystem_ in the _Filesystem images_ menu. After a complete build, just run the following commands to setup the NFS-root directory: ------------------- sudo tar -xavf /path/to/output_dir/rootfs.tar -C /path/to/nfs_root_dir ------------------- Remember to add this path to +/etc/exports+. Then, you can execute a NFS-boot from your target. ==== Live CD To build a live CD image, enable the _iso image_ option in the _Filesystem images_ menu. Note that this option is only available on the x86 and x86-64 architectures, and if you are building your kernel with Buildroot. You can build a live CD image with either IsoLinux, Grub or Grub 2 as a bootloader, but only Isolinux supports making this image usable both as a live CD and live USB (through the _Build hybrid image_ option). You can test your live CD image using QEMU: ------------------- qemu-system-i386 -cdrom output/images/rootfs.iso9660 ------------------- Or use it as a hard-drive image if it is a hybrid ISO: ------------------- qemu-system-i386 -hda output/images/rootfs.iso9660 ------------------- It can be easily flashed to a USB drive with +dd+: ------------------- dd if=output/images/rootfs.iso9660 of=/dev/sdb ------------------- === Chroot If you want to chroot in a generated image, then there are few thing you should be aware of: * you should setup the new root from the _tar root filesystem_ image; * either the selected target architecture is compatible with your host machine, or you should use some +qemu-*+ binary and correctly set it within the +binfmt+ properties to be able to run the binaries built for the target on your host machine; * Buildroot does not currently provide +host-qemu+ and +binfmt+ correctly built and set for that kind of use. ================================================ FILE: docs/manual/ccache-support.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[ccache]] ==== Using +ccache+ in Buildroot http://ccache.samba.org[ccache] is a compiler cache. It stores the object files resulting from each compilation process, and is able to skip future compilation of the same source file (with same compiler and same arguments) by using the pre-existing object files. When doing almost identical builds from scratch a number of times, it can nicely speed up the build process. +ccache+ support is integrated in Buildroot. You just have to enable +Enable compiler cache+ in +Build options+. This will automatically build +ccache+ and use it for every host and target compilation. The cache is located in +$HOME/.buildroot-ccache+. It is stored outside of Buildroot output directory so that it can be shared by separate Buildroot builds. If you want to get rid of the cache, simply remove this directory. You can get statistics on the cache (its size, number of hits, misses, etc.) by running +make ccache-stats+. The make target +ccache-options+ and the +CCACHE_OPTIONS+ variable provide more generic access to the ccache. For example ----------------- # set cache limit size make CCACHE_OPTIONS="--max-size=5G" ccache-options # zero statistics counters make CCACHE_OPTIONS="--zero-stats" ccache-options ----------------- +ccache+ makes a hash of the source files and of the compiler options. If a compiler option is different, the cached object file will not be used. Many compiler options, however, contain an absolute path to the staging directory. Because of this, building in a different output directory would lead to many cache misses. To avoid this issue, buildroot has the +Use relative paths+ option (+BR2_CCACHE_USE_BASEDIR+). This will rewrite all absolute paths that point inside the output directory into relative paths. Thus, changing the output directory no longer leads to cache misses. A disadvantage of the relative paths is that they also end up to be relative paths in the object file. Therefore, for example, the debugger will no longer find the file, unless you cd to the output directory first. See https://ccache.samba.org/manual.html#_compiling_in_different_directories[the ccache manual's section on "Compiling in different directories"] for more details about this rewriting of absolute paths. ================================================ FILE: docs/manual/common-usage.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: == General Buildroot usage include::make-tips.txt[] include::rebuilding-packages.txt[] === Offline builds If you intend to do an offline build and just want to download all sources that you previously selected in the configurator ('menuconfig', 'nconfig', 'xconfig' or 'gconfig'), then issue: -------------------- $ make source -------------------- You can now disconnect or copy the content of your +dl+ directory to the build-host. === Building out-of-tree As default, everything built by Buildroot is stored in the directory +output+ in the Buildroot tree. Buildroot also supports building out of tree with a syntax similar to the Linux kernel. To use it, add +O=+ to the make command line: -------------------- $ make O=/tmp/build -------------------- Or: -------------------- $ cd /tmp/build; make O=$PWD -C path/to/buildroot -------------------- All the output files will be located under +/tmp/build+. If the +O+ path does not exist, Buildroot will create it. *Note:* the +O+ path can be either an absolute or a relative path, but if it's passed as a relative path, it is important to note that it is interpreted relative to the main Buildroot source directory, *not* the current working directory. When using out-of-tree builds, the Buildroot +.config+ and temporary files are also stored in the output directory. This means that you can safely run multiple builds in parallel using the same source tree as long as they use unique output directories. For ease of use, Buildroot generates a Makefile wrapper in the output directory - so after the first run, you no longer need to pass +O=<...>+ and +-C <...>+, simply run (in the output directory): -------------------- $ make -------------------- [[env-vars]] === Environment variables Buildroot also honors some environment variables, when they are passed to +make+ or set in the environment: * +HOSTCXX+, the host C++ compiler to use * +HOSTCC+, the host C compiler to use * +UCLIBC_CONFIG_FILE=+, path to the uClibc configuration file, used to compile uClibc, if an internal toolchain is being built. + Note that the uClibc configuration file can also be set from the configuration interface, so through the Buildroot +.config+ file; this is the recommended way of setting it. + * +BUSYBOX_CONFIG_FILE=+, path to the BusyBox configuration file. + Note that the BusyBox configuration file can also be set from the configuration interface, so through the Buildroot +.config+ file; this is the recommended way of setting it. + * +BR2_CCACHE_DIR+ to override the directory where Buildroot stores the cached files when using ccache. + * +BR2_DL_DIR+ to override the directory in which Buildroot stores/retrieves downloaded files. + Note that the Buildroot download directory can also be set from the configuration interface, so through the Buildroot +.config+ file. See xref:download-location[] for more details on how you can set the download directory. * +BR2_GRAPH_ALT+, if set and non-empty, to use an alternate color-scheme in build-time graphs * +BR2_GRAPH_OUT+ to set the filetype of generated graphs, either +pdf+ (the default), or +png+. * +BR2_GRAPH_DEPS_OPTS+ to pass extra options to the dependency graph; see xref:graph-depends[] for the accepted options * +BR2_GRAPH_DOT_OPTS+ is passed verbatim as options to the +dot+ utility to draw the dependency graph. * +BR2_GRAPH_SIZE_OPTS+ to pass extra options to the size graph; see xref:graph-size[] for the acepted options An example that uses config files located in the toplevel directory and in your $HOME: -------------------- $ make UCLIBC_CONFIG_FILE=uClibc.config BUSYBOX_CONFIG_FILE=$HOME/bb.config -------------------- If you want to use a compiler other than the default +gcc+ or +g+++ for building helper-binaries on your host, then do -------------------- $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD -------------------- === Dealing efficiently with filesystem images Filesystem images can get pretty big, depending on the filesystem you choose, the number of packages, whether you provisioned free space... Yet, some locations in the filesystems images may just be _empty_ (e.g. a long run of 'zeroes'); such a file is called a _sparse_ file. Most tools can handle sparse files efficiently, and will only store or write those parts of a sparse file that are not empty. For example: * +tar+ accepts the +-S+ option to tell it to only store non-zero blocks of sparse files: ** +tar cf archive.tar -S [files...]+ will efficiently store sparse files in a tarball ** +tar xf archive.tar -S+ will efficiently store sparse files extracted from a tarball * +cp+ accepts the +--sparse=WHEN+ option (+WHEN+ is one of +auto+, +never+ or +always+): ** +cp --sparse=always source.file dest.file+ will make +dest.file+ a sparse file if +source.file+ has long runs of zeroes Other tools may have similar options. Please consult their respective man pages. You can use sparse files if you need to store the filesystem images (e.g. to transfer from one machine to another), or if you need to send them (e.g. to the Q&A team). Note however that flashing a filesystem image to a device while using the sparse mode of +dd+ may result in a broken filesystem (e.g. the block bitmap of an ext2 filesystem may be corrupted; or, if you have sparse files in your filesystem, those parts may not be all-zeroes when read back). You should only use sparse files when handling files on the build machine, not when transferring them to an actual device that will be used on the target. === Details about packages [[package-details]] Buildroot can produce a JSON blurb that describes the set of enabled packages in the current configuration, together with their dependencies, licenses and other metadata. This JSON blurb is produced by using the +show-info+ make target: ------------------------ make show-info ------------------------ Buildroot can also produce details about packages as HTML and JSON output using the +pkg-stats+ make target. Amongst other things, these details include whether known CVEs (security vulnerabilities) affect the packages in your current configuration. It also shows if there is a newer upstream version for those packages. ------------------------ make pkg-stats ------------------------ === Graphing the dependencies between packages [[graph-depends]] One of Buildroot's jobs is to know the dependencies between packages, and make sure they are built in the right order. These dependencies can sometimes be quite complicated, and for a given system, it is often not easy to understand why such or such package was brought into the build by Buildroot. In order to help understanding the dependencies, and therefore better understand what is the role of the different components in your embedded Linux system, Buildroot is capable of generating dependency graphs. To generate a dependency graph of the full system you have compiled, simply run: ------------------------ make graph-depends ------------------------ You will find the generated graph in +output/graphs/graph-depends.pdf+. If your system is quite large, the dependency graph may be too complex and difficult to read. It is therefore possible to generate the dependency graph just for a given package: ------------------------ make -graph-depends ------------------------ You will find the generated graph in +output/graph/-graph-depends.pdf+. Note that the dependency graphs are generated using the +dot+ tool from the _Graphviz_ project, which you must have installed on your system to use this feature. In most distributions, it is available as the +graphviz+ package. By default, the dependency graphs are generated in the PDF format. However, by passing the +BR2_GRAPH_OUT+ environment variable, you can switch to other output formats, such as PNG, PostScript or SVG. All formats supported by the +-T+ option of the +dot+ tool are supported. -------------------------------- BR2_GRAPH_OUT=svg make graph-depends -------------------------------- The +graph-depends+ behaviour can be controlled by setting options in the +BR2_GRAPH_DEPS_OPTS+ environment variable. The accepted options are: * +--depth N+, +-d N+, to limit the dependency depth to +N+ levels. The default, +0+, means no limit. * +--stop-on PKG+, +-s PKG+, to stop the graph on the package +PKG+. +PKG+ can be an actual package name, a glob, the keyword 'virtual' (to stop on virtual packages), or the keyword 'host' (to stop on host packages). The package is still present on the graph, but its dependencies are not. * +--exclude PKG+, +-x PKG+, like +--stop-on+, but also omits +PKG+ from the graph. * +--transitive+, +--no-transitive+, to draw (or not) the transitive dependencies. The default is to not draw transitive dependencies. * +--colors R,T,H+, the comma-separated list of colors to draw the root package (+R+), the target packages (+T+) and the host packages (+H+). Defaults to: +lightblue,grey,gainsboro+ -------------------------------- BR2_GRAPH_DEPS_OPTS='-d 3 --no-transitive --colors=red,green,blue' make graph-depends -------------------------------- === Graphing the build duration [[graph-duration]] When the build of a system takes a long time, it is sometimes useful to be able to understand which packages are the longest to build, to see if anything can be done to speed up the build. In order to help such build time analysis, Buildroot collects the build time of each step of each package, and allows to generate graphs from this data. To generate the build time graph after a build, run: ---------------- make graph-build ---------------- This will generate a set of files in +output/graphs+ : * +build.hist-build.pdf+, a histogram of the build time for each package, ordered in the build order. * +build.hist-duration.pdf+, a histogram of the build time for each package, ordered by duration (longest first) * +build.hist-name.pdf+, a histogram of the build time for each package, order by package name. * +build.pie-packages.pdf+, a pie chart of the build time per package * +build.pie-steps.pdf+, a pie chart of the global time spent in each step of the packages build process. This +graph-build+ target requires the Python Matplotlib and Numpy libraries to be installed (+python-matplotlib+ and +python-numpy+ on most distributions), and also the +argparse+ module if you're using a Python version older than 2.7 (+python-argparse+ on most distributions). By default, the output format for the graph is PDF, but a different format can be selected using the +BR2_GRAPH_OUT+ environment variable. The only other format supported is PNG: ---------------- BR2_GRAPH_OUT=png make graph-build ---------------- [[graph-size]] === Graphing the filesystem size contribution of packages When your target system grows, it is sometimes useful to understand how much each Buildroot package is contributing to the overall root filesystem size. To help with such an analysis, Buildroot collects data about files installed by each package and using this data, generates a graph and CSV files detailing the size contribution of the different packages. To generate these data after a build, run: ---------------- make graph-size ---------------- This will generate: * +output/graphs/graph-size.pdf+, a pie chart of the contribution of each package to the overall root filesystem size * +output/graphs/package-size-stats.csv+, a CSV file giving the size contribution of each package to the overall root filesystem size * +output/graphs/file-size-stats.csv+, a CSV file giving the size contribution of each installed file to the package it belongs, and to the overall filesystem size. This +graph-size+ target requires the Python Matplotlib library to be installed (+python-matplotlib+ on most distributions), and also the +argparse+ module if you're using a Python version older than 2.7 (+python-argparse+ on most distributions). Just like for the duration graph, a +BR2_GRAPH_OUT+ environment variable is supported to adjust the output file format. See xref:graph-depends[] for details about this environment variable. Additionally, one may set the environment variable +BR2_GRAPH_SIZE_OPTS+ to further control the generated graph. Accepted options are: * `--size-limit X`, `-l X`, will group all packages which individual contribution is below `X` percent, to a single entry labelled _Others_ in the graph. By default, `X=0.01`, which means packages each contributing less than 1% are grouped under _Others_. Accepted values are in the range `[0.0..1.0]`. * `--iec`, `--binary`, `--si`, `--decimal`, to use IEC (binary, powers of 1024) or SI (decimal, powers of 1000; the default) prefixes. * `--biggest-first`, to sort packages in decreasing size order, rather than in increasing size order. .Note The collected filesystem size data is only meaningful after a complete clean rebuild. Be sure to run +make clean all+ before using +make graph-size+. To compare the root filesystem size of two different Buildroot compilations, for example after adjusting the configuration or when switching to another Buildroot release, use the +size-stats-compare+ script. It takes two +file-size-stats.csv+ files (produced by +make graph-size+) as input. Refer to the help text of this script for more details: ---------------- utils/size-stats-compare -h ---------------- [[top-level-parallel-build]] === Top-level parallel build .Note This section deals with a very experimental feature, which is known to break even in some non-unusual situations. Use at your own risk. Buildroot has always been capable of using parallel build on a per package basis: each package is built by Buildroot using +make -jN+ (or the equivalent invocation for non-make-based build systems). The level of parallelism is by default number of CPUs + 1, but it can be adjusted using the +BR2_JLEVEL+ configuration option. Until 2020.02, Buildroot was however building packages in a serial fashion: each package was built one after the other, without parallelization of the build between packages. As of 2020.02, Buildroot has experimental support for *top-level parallel build*, which allows some signicant build time savings by building packages that have no dependency relationship in parallel. This feature is however marked as experimental and is known not to work in some cases. In order to use top-level parallel build, one must: . Enable the option +BR2_PER_PACKAGE_DIRECTORIES+ in the Buildroot configuration . Use +make -jN+ when starting the Buildroot build Internally, the +BR2_PER_PACKAGE_DIRECTORIES+ will enable a mechanism called *per-package directories*, which will have the following effects: * Instead of a global _target_ directory and a global _host_ directory common to all packages, per-package _target_ and _host_ directories will be used, in +$(O)/per-package//target/+ and +$(O)/per-package//host/+ respectively. Those folders will be populated from the corresponding folders of the package dependencies at the beginning of ++ build. The compiler and all other tools will therefore only be able to see and access files installed by dependencies explicitly listed by ++. * At the end of the build, the global _target_ and _host_ directories will be populated, located in +$(O)/target+ and +$(O)/host+ respectively. This means that during the build, those folders will be empty and it's only at the very end of the build that they will be populated. include::eclipse-integration.txt[] include::advanced.txt[] ================================================ FILE: docs/manual/configure-other-components.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: == 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 corresponding package. BusyBox:: + If you already have a BusyBox configuration file, you can directly specify this file in the Buildroot configuration, using +BR2_PACKAGE_BUSYBOX_CONFIG+. Otherwise, Buildroot will start from a default BusyBox configuration file. + To make subsequent changes to the configuration, use +make busybox-menuconfig+ to open the BusyBox configuration editor. + It is also possible to specify a BusyBox configuration file through an environment variable, although this is not recommended. Refer to xref:env-vars[] for more details. uClibc:: + Configuration of uClibc is done in the same way as for BusyBox. The configuration variable to specify an existing configuration file is +BR2_UCLIBC_CONFIG+. The command to make subsequent changes is +make uclibc-menuconfig+. Linux kernel:: + If you already have a kernel configuration file, you can directly specify this file in the Buildroot configuration, using +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG+. + If you do not yet have a kernel configuration file, you can either start by specifying a defconfig in the Buildroot configuration, using +BR2_LINUX_KERNEL_USE_DEFCONFIG+, or start by creating an empty file and specifying it as custom configuration file, using +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG+. + To make subsequent changes to the configuration, use +make linux-menuconfig+ to open the Linux configuration editor. Barebox:: + Configuration of Barebox is done in the same way as for the Linux kernel. The corresponding configuration variables are +BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG+ and +BR2_TARGET_BAREBOX_USE_DEFCONFIG+. To open the configuration editor, use +make barebox-menuconfig+. U-Boot:: + Configuration of U-Boot (version 2015.04 or newer) is done in the same way as for the Linux kernel. The corresponding configuration variables are +BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG+ and +BR2_TARGET_UBOOT_USE_DEFCONFIG+. To open the configuration editor, use +make uboot-menuconfig+. ================================================ FILE: docs/manual/configure.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[configure]] == Buildroot configuration All the configuration options in +make *config+ have a help text providing details about the option. The +make *config+ commands also offer a search tool. Read the help message in the different frontend menus to know how to use it: * in _menuconfig_, the search tool is called by pressing +/+; * in _xconfig_, the search tool is called by pressing +Ctrl+ + +f+. The result of the search shows the help message of the matching items. In _menuconfig_, numbers in the left column provide a shortcut to the corresponding entry. Just type this number to directly jump to the entry, or to the containing menu in case the entry is not selectable due to a missing dependency. Although the menu structure and the help text of the entries should be sufficiently self-explanatory, a number of topics require additional explanation that cannot easily be covered in the help text and are therefore covered in the following sections. === Cross-compilation toolchain A compilation toolchain is the set of tools that allows you to compile code for your system. It consists of a compiler (in our case, +gcc+), binary utils like assembler and linker (in our case, +binutils+) and a C standard library (for example http://www.gnu.org/software/libc/libc.html[GNU Libc], http://www.uclibc-ng.org/[uClibc-ng]). The system installed on your development station certainly already has a compilation toolchain that you can use to compile an application that runs on your system. If you're using a PC, your compilation toolchain runs on an x86 processor and generates code for an x86 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" footnote:[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)]. 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 runs on and generates code for the processor in your host system. As your embedded system has a different processor, you need a cross-compilation toolchain - a compilation toolchain that runs on your _host system_ but generates code for your _target system_ (and target processor). For example, if your host system uses x86 and your target system uses ARM, the regular compilation toolchain on your host runs on x86 and generates code for x86, while the cross-compilation toolchain runs on x86 and generates code for ARM. Buildroot provides two solutions for the cross-compilation toolchain: * The *internal toolchain backend*, called +Buildroot toolchain+ in the configuration interface. * The *external toolchain backend*, called +External toolchain+ in the configuration interface. The choice between these two solutions is done using the +Toolchain Type+ option in the +Toolchain+ menu. Once one solution has been chosen, a number of configuration options appear, they are detailed in the following sections. [[internal-toolchain-backend]] ==== 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: http://www.uclibc-ng.org[uClibc-ng], http://www.gnu.org/software/libc/libc.html[glibc] and http://www.musl-libc.org[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 building a cross-compilation toolchain, the C library is being built. This library provides the interface between userspace applications and the Linux kernel. In order to know how to "talk" to the Linux kernel, the C library needs to have access to the _Linux kernel headers_ (i.e. the +.h+ files from the kernel), which define the interface between userspace and the kernel (system calls, data structures, etc.). Since this interface is backward compatible, the version of the Linux kernel headers used to build your toolchain do not need to match _exactly_ the version of the Linux kernel you intend to run on your embedded system. They only need to have a version equal or older to the version of the Linux kernel you intend to run. If you use kernel headers that are more recent than the Linux kernel you run on your embedded system, then the C library might be using interfaces that are not provided by your Linux kernel. * Change the version of the GCC compiler, binutils and the C library. * Select a number of toolchain options (uClibc only): whether the toolchain should have RPC support (used mainly for NFS), wide-char support, locale support (for internationalization), C++ support or thread support. Depending on which options you choose, the number of userspace applications and libraries visible in Buildroot menus will change: many applications and libraries require certain toolchain options to be enabled. Most packages show a comment when a certain toolchain option is required to be able to enable those packages. If needed, you can further refine the uClibc configuration by running +make uclibc-menuconfig+. Note however that all packages in Buildroot are tested against the default uClibc configuration bundled in Buildroot: if you deviate from this configuration by removing features from uClibc, some packages may no longer build. It is worth noting that whenever one of those options is modified, then the entire toolchain and system must be rebuilt. See xref:full-rebuild[]. Advantages of this backend: * Well integrated with Buildroot * Fast, only builds what's necessary Drawbacks of this backend: * Rebuilding the toolchain is needed when doing +make clean+, which takes time. If you're trying to reduce your build time, consider using the _External toolchain backend_. [[external-toolchain-backend]] ==== External toolchain backend The _external toolchain backend_ allows to use existing pre-built cross-compilation toolchains. Buildroot knows about a number of well-known cross-compilation toolchains (from http://www.linaro.org[Linaro] for ARM, http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/[Sourcery CodeBench] for ARM, x86-64, PowerPC, and MIPS, and is capable of downloading them automatically, or it can be pointed to a custom toolchain, either available for download or installed locally. Then, you have three solutions to use an external toolchain: * Use a predefined external toolchain profile, and let Buildroot download, extract and install the toolchain. Buildroot already knows about a few CodeSourcery and Linaro toolchains. Just select the toolchain profile in +Toolchain+ from the available ones. This is definitely the easiest solution. * Use a predefined external toolchain profile, but instead of having Buildroot download and extract the toolchain, you can tell Buildroot where your toolchain is already installed on your system. Just select the toolchain profile in +Toolchain+ through the available ones, unselect +Download toolchain automatically+, and fill the +Toolchain path+ text entry with the path to your cross-compiling toolchain. * Use a completely custom external toolchain. This is particularly useful for toolchains generated using crosstool-NG or with Buildroot itself. To do this, select the +Custom toolchain+ solution in the +Toolchain+ list. You need to fill the +Toolchain path+, +Toolchain prefix+ and +External toolchain C library+ options. Then, you have to tell Buildroot what your external toolchain supports. If your external toolchain uses the 'glibc' library, you only have to tell whether your toolchain supports C\++ or not and whether it has built-in RPC support. If your external toolchain uses the 'uClibc' library, then you have to tell Buildroot if it supports RPC, wide-char, locale, program invocation, threads and C++. At the beginning of the execution, Buildroot will tell you if the selected options do not match the toolchain configuration. Our external toolchain support has been tested with toolchains from CodeSourcery and Linaro, toolchains generated by http://crosstool-ng.org[crosstool-NG], and toolchains generated by Buildroot itself. In general, all toolchains that support the 'sysroot' feature should work. If not, do not hesitate to contact the developers. We do not support toolchains or SDK generated by OpenEmbedded or Yocto, because these toolchains are not pure toolchains (i.e. just the compiler, binutils, the C and C++ libraries). Instead these toolchains come with a very large set of pre-compiled libraries and programs. Therefore, Buildroot cannot import the 'sysroot' of the toolchain, as it would contain hundreds of megabytes of pre-compiled libraries that are normally built by Buildroot. We also do not support using the distribution toolchain (i.e. the gcc/binutils/C library installed by your distribution) as the toolchain to build software for the target. This is because your distribution toolchain is not a "pure" toolchain (i.e. only with the C/C++ library), so we cannot import it properly into the Buildroot build environment. So even if you are building a system for a x86 or x86_64 target, you have to generate a cross-compilation toolchain with Buildroot or crosstool-NG. If you want to generate a custom toolchain for your project, that can be used as an external toolchain in Buildroot, our recommendation is to build it either with Buildroot itself (see xref:build-toolchain-with-buildroot[]) or with http://crosstool-ng.org[crosstool-NG]. Advantages of this backend: * Allows to use well-known and well-tested cross-compilation toolchains. * Avoids the build time of the cross-compilation toolchain, which is often very significant in the overall build time of an embedded Linux system. Drawbacks of this backend: * If your pre-built external toolchain has a bug, may be hard to get a fix from the toolchain vendor, unless you build your external toolchain by yourself using Buildroot or Crosstool-NG. [[build-toolchain-with-buildroot]] ==== Build an external toolchain with Buildroot The Buildroot internal toolchain option can be used to create an external toolchain. Here are a series of steps to build an internal toolchain and package it up for reuse by Buildroot itself (or other projects). Create a new Buildroot configuration, with the following details: * Select the appropriate *Target options* for your target CPU architecture * In the *Toolchain* menu, keep the default of *Buildroot toolchain* for *Toolchain type*, and configure your toolchain as desired * In the *System configuration* menu, select *None* as the *Init system* and *none* as */bin/sh* * In the *Target packages* menu, disable *BusyBox* * In the *Filesystem images* menu, disable *tar the root filesystem* Then, we can trigger the build, and also ask Buildroot to generate a SDK. This will conveniently generate for us a tarball which contains our toolchain: ----- make sdk ----- This produces the SDK tarball in +$(O)/images+, with a name similar to +arm-buildroot-linux-uclibcgnueabi_sdk-buildroot.tar.gz+. Save this tarball, as it is now the toolchain that you can re-use as an external toolchain in other Buildroot projects. In those other Buildroot projects, in the *Toolchain* menu: * Set *Toolchain type* to *External toolchain* * Set *Toolchain* to *Custom toolchain* * Set *Toolchain origin* to *Toolchain to be downloaded and installed* * Set *Toolchain URL* to +file:///path/to/your/sdk/tarball.tar.gz+ ===== External toolchain wrapper When using an external toolchain, Buildroot generates a wrapper program, that transparently passes the appropriate options (according to the configuration) to the external toolchain programs. In case you need to debug this wrapper to check exactly what arguments are passed, you can set the environment variable +BR2_DEBUG_WRAPPER+ to either one of: * +0+, empty or not set: no debug * +1+: trace all arguments on a single line * +2+: trace one argument per line === /dev management On a Linux system, the +/dev+ directory contains special files, called _device files_, that allow userspace applications to access the hardware devices managed by the Linux kernel. Without these _device files_, your userspace applications would not be able to use the hardware devices, even if they are properly recognized by the Linux kernel. Under +System configuration+, +/dev management+, Buildroot offers four different solutions to handle the +/dev+ directory : * The first solution is *Static using device table*. This is the old classical way of handling device files in Linux. With this method, the device files are persistently stored in the root filesystem (i.e. they persist across reboots), and there is nothing that will automatically create and remove those device files when hardware devices are added or removed from the system. Buildroot therefore creates a standard set of device files using a _device table_, the default one being stored in +system/device_table_dev.txt+ in the Buildroot source code. This file is processed when Buildroot generates the final root filesystem image, and the _device files_ are therefore not visible in the +output/target+ directory. The +BR2_ROOTFS_STATIC_DEVICE_TABLE+ option allows to change the default device table used by Buildroot, or to add an additional device table, so that additional _device files_ are created by Buildroot during the build. So, if you use this method, and a _device file_ is missing in your system, you can for example create a +board///device_table_dev.txt+ file that contains the description of your additional _device files_, and then you can set +BR2_ROOTFS_STATIC_DEVICE_TABLE+ to +system/device_table_dev.txt board///device_table_dev.txt+. For more details about the format of the device table file, see xref:makedev-syntax[]. * The second solution is *Dynamic using devtmpfs only*. _devtmpfs_ is a virtual filesystem inside the Linux kernel that has been introduced in kernel 2.6.32 (if you use an older kernel, it is not possible to use this option). When mounted in +/dev+, this virtual filesystem will automatically make _device files_ appear and disappear as hardware devices are added and removed from the system. This filesystem is not persistent across reboots: it is filled dynamically by the kernel. Using _devtmpfs_ requires the following kernel configuration options to be enabled: +CONFIG_DEVTMPFS+ and +CONFIG_DEVTMPFS_MOUNT+. When Buildroot is in charge of building the Linux kernel for your embedded device, it makes sure that those two options are enabled. However, if you build your Linux kernel outside of Buildroot, then it is your responsibility to enable those two options (if you fail to do so, your Buildroot system will not boot). * The third solution is *Dynamic using devtmpfs + mdev*. This method also relies on the _devtmpfs_ virtual filesystem detailed above (so the requirement to have +CONFIG_DEVTMPFS+ and +CONFIG_DEVTMPFS_MOUNT+ enabled in the kernel configuration still apply), but adds the +mdev+ userspace utility on top of it. +mdev+ is a program part of BusyBox that the kernel will call every time a device is added or removed. Thanks to the +/etc/mdev.conf+ configuration file, +mdev+ can be configured to for example, set specific permissions or ownership on a device file, call a script or application whenever a device appears or disappear, etc. Basically, it allows _userspace_ to react on device addition and removal events. +mdev+ can for example be used to automatically load kernel modules when devices appear on the system. +mdev+ is also important if you have devices that require a firmware, as it will be responsible for pushing the firmware contents to the kernel. +mdev+ is a lightweight implementation (with fewer features) of +udev+. For more details about +mdev+ and the syntax of its configuration file, see http://git.busybox.net/busybox/tree/docs/mdev.txt. * The fourth solution is *Dynamic using devtmpfs + eudev*. This method also relies on the _devtmpfs_ virtual filesystem detailed above, but adds the +eudev+ userspace daemon on top of it. +eudev+ is a daemon that runs in the background, and gets called by the kernel when a device gets added or removed from the system. It is a more heavyweight solution than +mdev+, but provides higher flexibility. +eudev+ is a standalone version of +udev+, the original userspace daemon used in most desktop Linux distributions, which is now part of Systemd. For more details, see http://en.wikipedia.org/wiki/Udev. The Buildroot developers recommendation is to start with the *Dynamic using devtmpfs only* solution, until you have the need for userspace to be notified when devices are added/removed, or if firmwares are needed, in which case *Dynamic using devtmpfs + mdev* is usually a good solution. Note that if +systemd+ is chosen as init system, /dev management will be performed by the +udev+ program provided by +systemd+. === init system The _init_ program is the first userspace program started by the kernel (it carries the PID number 1), and is responsible for starting the userspace services and programs (for example: web server, graphical applications, other network servers, etc.). Buildroot allows to use three different types of init systems, which can be chosen from +System configuration+, +Init system+: * The first solution is *BusyBox*. Amongst many programs, BusyBox has an implementation of a basic +init+ program, which is sufficient for most embedded systems. Enabling the +BR2_INIT_BUSYBOX+ will ensure BusyBox will build and install its +init+ program. This is the default solution in Buildroot. The BusyBox +init+ program will read the +/etc/inittab+ file at boot to know what to do. The syntax of this file can be found in http://git.busybox.net/busybox/tree/examples/inittab (note that BusyBox +inittab+ syntax is special: do not use a random +inittab+ documentation from the Internet to learn about BusyBox +inittab+). The default +inittab+ in Buildroot is stored in +system/skeleton/etc/inittab+. Apart from mounting a few important filesystems, the main job the default inittab does is to start the +/etc/init.d/rcS+ shell script, and start a +getty+ program (which provides a login prompt). * The second solution is *systemV*. This solution uses the old traditional _sysvinit_ program, packed in Buildroot in +package/sysvinit+. This was the solution used in most desktop Linux distributions, until they switched to more recent alternatives such as Upstart or Systemd. +sysvinit+ also works with an +inittab+ file (which has a slightly different syntax than the one from BusyBox). The default +inittab+ installed with this init solution is located in +package/sysvinit/inittab+. * The third solution is *systemd*. +systemd+ is the new generation init system for Linux. It does far more than traditional _init_ programs: aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux control groups, supports snapshotting and restoring of the system state, etc. +systemd+ will be useful on relatively complex embedded systems, for example the ones requiring D-Bus and services communicating between each other. It is worth noting that +systemd+ brings a fairly big number of large dependencies: +dbus+, +udev+ and more. For more details about +systemd+, see 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. ================================================ FILE: docs/manual/contribute.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: == Contributing to Buildroot There are many ways in which you can contribute to Buildroot: analyzing and fixing bugs, analyzing and fixing package build failures detected by the autobuilders, testing and reviewing patches sent by other developers, working on the items in our TODO list and sending your own improvements to Buildroot or its manual. The following sections give a little more detail on each of these items. If you are interested in contributing to Buildroot, the first thing you should do is to subscribe to the Buildroot mailing list. This list is the main way of interacting with other Buildroot developers and to send contributions to. If you aren't subscribed yet, then refer to xref:community-resources[] for the subscription link. If you are going to touch the code, it is highly recommended to use a git repository of Buildroot, rather than starting from an extracted source code tarball. Git is the easiest way to develop from and directly send your patches to the mailing list. Refer to xref:getting-buildroot[] for more information on obtaining a Buildroot git tree. === Reproducing, analyzing and fixing bugs A first way of contributing is to have a look at the open bug reports in the https://bugs.buildroot.org/buglist.cgi?product=buildroot[Buildroot bug tracker]. As we strive to keep the bug count as small as possible, all help in reproducing, analyzing and fixing reported bugs is more than welcome. Don't hesitate to add a comment to bug reports reporting your findings, even if you don't yet see the full picture. === Analyzing and fixing autobuild failures The Buildroot autobuilders are a set of build machines that continuously run Buildroot builds based on random configurations. This is done for all architectures supported by Buildroot, with various toolchains, and with a random selection of packages. With the large commit activity on Buildroot, these autobuilders are a great help in detecting problems very early after commit. All build results are available at http://autobuild.buildroot.org[], statistics are at http://autobuild.buildroot.org/stats.php[]. Every day, an overview of all failed packages is sent to the mailing list. Detecting problems is great, but obviously these problems have to be fixed as well. Your contribution is very welcome here! There are basically two things that can be done: - Analyzing the problems. The daily summary mails do not contain details about the actual failures: in order to see what's going on you have to open the build log and check the last output. Having someone doing this for all packages in the mail is very useful for other developers, as they can make a quick initial analysis based on this output alone. - Fixing a problem. When fixing autobuild failures, you should follow these steps: . Check if you can reproduce the problem by building with the same configuration. You can do this manually, or use the http://git.buildroot.org/buildroot-test/tree/utils/br-reproduce-build[br-reproduce-build] script that will automatically clone a Buildroot git repository, checkout the correct revision, download and set the right configuration, and start the build. . Analyze the problem and create a fix. . Verify that the problem is really fixed by starting from a clean Buildroot tree and only applying your fix. . Send the fix to the Buildroot mailing list (see xref:submitting-patches[]). In case you created a patch against the package sources, you should also send the patch upstream so that the problem will be fixed in a later release, and the patch in Buildroot can be removed. In the commit message of a patch fixing an autobuild failure, add a reference to the build result directory, as follows: --------------------- Fixes: http://autobuild.buildroot.org/results/51000a9d4656afe9e0ea6f07b9f8ed374c2e4069 --------------------- === Reviewing and testing patches With the amount of patches sent to the mailing list each day, the maintainer has a very hard job to judge which patches are ready to apply and which ones aren't. Contributors can greatly help here by reviewing and testing these patches. In the review process, do not hesitate to respond to patch submissions for remarks, suggestions or anything that will help everyone to understand the patches and make them better. Please use internet style replies in plain text emails when responding to patch submissions. To indicate approval of a patch, there are three formal tags that keep track of this approval. To add your tag to a patch, reply to it with the approval tag below the original author's Signed-off-by line. These tags will be picked up automatically by patchwork (see xref:apply-patches-patchwork[]) and will be part of the commit log when the patch is accepted. Tested-by:: Indicates that the patch has been tested successfully. You are encouraged to specify what kind of testing you performed (compile-test on architecture X and Y, runtime test on target A, ...). This additional information helps other testers and the maintainer. Reviewed-by:: Indicates that you code-reviewed the patch and did your best in spotting problems, but you are not sufficiently familiar with the area touched to provide an Acked-by tag. This means that there may be remaining problems in the patch that would be spotted by someone with more experience in that area. Should such problems be detected, your Reviewed-by tag remains appropriate and you cannot be blamed. Acked-by:: Indicates that you code-reviewed the patch and you are familiar enough with the area touched to feel that the patch can be committed as-is (no additional changes required). In case it later turns out that something is wrong with the patch, your Acked-by could be considered inappropriate. The difference between Acked-by and Reviewed-by is thus mainly that you are prepared to take the blame on Acked patches, but not on Reviewed ones. If you reviewed a patch and have comments on it, you should simply reply to the patch stating these comments, without providing a Reviewed-by or Acked-by tag. These tags should only be provided if you judge the patch to be good as it is. It is important to note that neither Reviewed-by nor Acked-by imply that testing has been performed. To indicate that you both reviewed and tested the patch, provide two separate tags (Reviewed/Acked-by and Tested-by). Note also that _any developer_ can provide Tested/Reviewed/Acked-by tags, without exception, and we encourage everyone to do this. Buildroot does not have a defined group of _core_ developers, it just so happens that some developers are more active than others. The maintainer will value tags according to the track record of their submitter. Tags provided by a regular contributor will naturally be trusted more than tags provided by a newcomer. As you provide tags more regularly, your 'trustworthiness' (in the eyes of the maintainer) will go up, but _any_ tag provided is valuable. Buildroot's Patchwork website can be used to pull in patches for testing purposes. Please see xref:apply-patches-patchwork[] for more information on using Buildroot's Patchwork website to apply patches. [[apply-patches-patchwork]] ==== Applying Patches from Patchwork The main use of Buildroot's Patchwork website for a developer is for pulling in patches into their local git repository for testing purposes. When browsing patches in the patchwork management interface, an +mbox+ link is provided at the top of the page. Copy this link address and run the following commands: --------------------- $ git checkout -b $ wget -O - | git am --------------------- Another option for applying patches is to create a bundle. A bundle is a set of patches that you can group together using the patchwork interface. Once the bundle is created and the bundle is made public, you can copy the +mbox+ link for the bundle and apply the bundle using the above commands. === Work on items from the TODO list If you want to contribute to Buildroot but don't know where to start, and you don't like any of the above topics, you can always work on items from the http://elinux.org/Buildroot#Todo_list[Buildroot TODO list]. Don't hesitate to discuss an item first on the mailing list or on IRC. Do edit the wiki to indicate when you start working on an item, so we avoid duplicate efforts. [[submitting-patches]] === Submitting patches [NOTE] _Please, do not attach patches to bugs, send them to the mailing list instead_. If you made some changes to Buildroot and you would like to contribute them to the Buildroot project, proceed as follows. ==== The formatting of a patch We expect patches to be formatted in a specific way. This is necessary to make it easy to review patches, to be able to apply them easily to the git repository, to make it easy to find back in the history how and why things have changed, and to make it possible to use +git bisect+ to locate the origin of a problem. First of all, it is essential that the patch has a good commit message. The commit message should start with a separate line with a brief summary of the change, prefixed by the area touched by the patch. A few examples of good commit titles: * +package/linuxptp: bump version to 2.0+ * +configs/imx23evk: bump Linux version to 4.19+ * +package/pkg-generic: postpone evaluation of dependency conditions+ * +boot/uboot: needs host-{flex,bison}+ * +support/testing: add python-ubjson tests+ The description that follows the prefix should start with a lower case letter (i.e "bump", "needs", "postpone", "add" in the above examples). Second, the body of the commit message should describe _why_ this change is needed, and if necessary also give details about _how_ it was done. When writing the commit message, think of how the reviewers will read it, but also think about how you will read it when you look at this change again a few years down the line. Third, the patch itself should do only one change, but do it completely. Two unrelated or weakly related changes should usually be done in two separate patches. This usually means that a patch affects only a single package. If several changes are related, it is often still possible to split them up in small patches and apply them in a specific order. Small patches make it easier to review, and often make it easier to understand afterwards why a change was done. However, each patch must be complete. It is not allowed that the build is broken when only the first but not the second patch is applied. This is necessary to be able to use +git bisect+ afterwards. Of course, while you're doing your development, you're probably going back and forth between packages, and certainly not committing things immediately in a way that is clean enough for submission. So most developers rewrite the history of commits to produce a clean set of commits that is appropriate for submission. To do this, you need to use _interactive rebasing_. You can learn about it https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History[in the Pro Git book]. Sometimes, it is even easier to discard you history with +git reset --soft origin/master+ and select individual changes with +git add -i+ or +git add -p+. Finally, the patch should be signed off. This is done by adding +Signed-off-by: Your Real Name + at the end of the commit message. +git commit -s+ does that for you, if configured properly. The +Signed-off-by+ tag means that you publish the patch under the Buildroot license (i.e. GPL-2.0+, except for package patches, which have the upstream license), and that you are allowed to do so. See http://developercertificate.org/[the Developer Certificate of Origin] for details. When adding new packages, you should submit every package in a separate patch. This patch should have the update to +package/Config.in+, the package +Config.in+ file, the +.mk+ file, the +.hash+ file, any init script, and all package patches. If the package has many sub-options, these are sometimes better added as separate follow-up patches. The summary line should be something like +: new package+. The body of the commit message can be empty for simple packages, or it can contain the description of the package (like the Config.in help text). If anything special has to be done to build the package, this should also be explained explicitly in the commit message body. When you bump a package to a new version, you should also submit a separate patch for each package. Don't forget to update the +.hash+ file, or add it if it doesn't exist yet. Also don't forget to check if the +_LICENSE+ and +_LICENSE_FILES+ are still valid. The summary line should be something like +: bump to version +. If the new version only contains security updates compared to the existing one, the summary should be +: security bump to version + and the commit message body should show the CVE numbers that are fixed. If some package patches can be removed in the new version, it should be explained explicitly why they can be removed, preferably with the upstream commit ID. Also any other required changes should be explained explicitly, like configure options that no longer exist or are no longer needed. If you are interested in getting notified of build failures and of further changes in the packages you added or modified, please add yourself to the DEVELOPERS file. This should be done in the same patch creating or modifying the package. See xref:DEVELOPERS[the DEVELOPERS file] for more information. Buildroot provides a handy tool to check for common coding style mistakes on files you created or modified, called +check-package+ (see xref:check-package[] for more information). ==== Preparing a patch series Starting from the changes committed in your local git view, _rebase_ your development branch on top of the upstream tree before generating a patch set. To do so, run: --------------------- $ git fetch --all --tags $ git rebase origin/master --------------------- Now, you are ready to generate then submit your patch set. To generate it, run: --------------------- $ git format-patch -M -n -s -o outgoing origin/master --------------------- This will generate patch files in the +outgoing+ subdirectory, automatically adding the +Signed-off-by+ line. Once patch files are generated, you can review/edit the commit message before submitting them, using your favorite text editor. Buildroot provides a handy tool to know to whom your patches should be sent, called +get-developers+ (see xref:DEVELOPERS[] for more information). This tool reads your patches and outputs the appropriate +git send-email+ command to use: --------------------- $ ./utils/get-developers outgoing/* --------------------- Use the output of +get-developers+ to send your patches: --------------------- $ git send-email --to buildroot@buildroot.org --cc bob --cc alice outgoing/* --------------------- Alternatively, +get-developers -e+ can be used directly with the +--cc-cmd+ argument to +git send-email+ to automatically CC the affected developers: --------------------- $ git send-email --to buildroot@buildroot.org \ --cc-cmd './utils/get-developers -e' origin/master --------------------- +git+ can be configured to automatically do this out of the box with: --------------------- $ git config sendemail.to buildroot@buildroot.org $ git config sendemail.ccCmd "$(pwd)/utils/get-developers -e" --------------------- And then just do: --------------------- $ git send-email origin/master --------------------- Note that +git+ should be configured to use your mail account. To configure +git+, see +man git-send-email+ or google it. If you do not use +git send-email+, make sure posted *patches are not line-wrapped*, otherwise they cannot easily be applied. In such a case, fix your e-mail client, or better yet, learn to use +git send-email+. ==== Cover letter If you want to present the whole patch set in a separate mail, add +--cover-letter+ to the +git format-patch+ command (see +man git-format-patch+ for further information). This will generate a template for an introduction e-mail to your patch series. A 'cover letter' may be useful to introduce the changes you propose in the following cases: * large number of commits in the series; * deep impact of the changes in the rest of the project; * RFC footnote:[RFC: (Request for comments) change proposal]; * whenever you feel it will help presenting your work, your choices, the review process, etc. ==== Patches for maintenance branches When fixing bugs on a maintenance branch, bugs should be fixed on the master branch first. The commit log for such a patch may then contain a post-commit note specifying what branches are affected: ---- package/foo: fix stuff Signed-off-by: Your Real Name --- Backport to: 2020.02.x, 2020.05.x (2020.08.x not affected as the version was bumped) ---- Those changes will then be backported by a maintainer to the affected branches. However, some bugs may apply only to a specific release, for example because it is using an older version of a package. In that case, patches should be based off the maintenance branch, and the patch subject prefix must include the maintenance branch name (for example "[PATCH 2020.02.x]"). This can be done with the +git format-patch+ flag +--subject-prefix+: --------------------- $ git format-patch --subject-prefix "PATCH 2020.02.x" \ -M -s -o outgoing origin/2020.02.x --------------------- Then send the patches with +git send-email+, as described above. ==== Patch revision changelog When improvements are requested, the new revision of each commit should include a changelog of the modifications between each submission. Note that when your patch series is introduced by a cover letter, an overall changelog may be added to the cover letter in addition to the changelog in the individual commits. The best thing to rework a patch series is by interactive rebasing: +git rebase -i origin/master+. Consult the git manual for more information. When added to the individual commits, this changelog is added when editing the commit message. Below the +Signed-off-by+ section, add +---+ and your changelog. Although the changelog will be visible for the reviewers in the mail thread, as well as in http://patchwork.buildroot.org[patchwork], +git+ will automatically ignores lines below +---+ when the patch will be merged. This is the intended behavior: the changelog is not meant to be preserved forever in the +git+ history of the project. Hereafter the recommended layout: --------------- Patch title: short explanation, max 72 chars A paragraph that explains the problem, and how it manifests itself. If the problem is complex, it is OK to add more paragraphs. All paragraphs should be wrapped at 72 characters. A paragraph that explains the root cause of the problem. Again, more than one paragraph is OK. Finally, one or more paragraphs that explain how the problem is solved. Don't hesitate to explain complex solutions in detail. Signed-off-by: John DOE --- Changes v2 -> v3: - foo bar (suggested by Jane) - bar buz Changes v1 -> v2: - alpha bravo (suggested by John) - charly delta --------------- Any patch revision should include the version number. The version number is simply composed of the letter +v+ followed by an +integer+ greater or equal to two (i.e. "PATCH v2", "PATCH v3" ...). This can be easily handled with +git format-patch+ by using the option +--subject-prefix+: --------------------- $ git format-patch --subject-prefix "PATCH v4" \ -M -s -o outgoing origin/master --------------------- Since git version 1.8.1, you can also use +-v + (where is the version number): --------------------- $ git format-patch -v4 -M -s -o outgoing origin/master --------------------- When you provide a new version of a patch, please mark the old one as superseded in http://patchwork.buildroot.org[patchwork]. You need to create an account on http://patchwork.buildroot.org[patchwork] to be able to modify the status of your patches. Note that you can only change the status of patches you submitted yourself, which means the email address you register in http://patchwork.buildroot.org[patchwork] should match the one you use for sending patches to the mailing list. You can also add the +--in-reply-to + option when submitting a patch to the mailing list. The id of the mail to reply to can be found under the "Message Id" tag on http://patchwork.buildroot.org[patchwork]. The advantage of *in-reply-to* is that patchwork will automatically mark the previous version of the patch as superseded. [[reporting-bugs]] === Reporting issues/bugs or getting help Before reporting any issue, please check in xref:community-resources[the mailing list archive] whether someone has already reported and/or fixed a similar problem. However you choose to report bugs or get help, either by opening a bug in the xref:community-resources[bug tracker] or by xref:community-resources[sending a mail to the mailing list], there are a number of details to provide in order to help people reproduce and find a solution to the issue. Try to think as if you were trying to help someone else; in that case, what would you need? Here is a short list of details to provide in such case: * host machine (OS/release) * version of Buildroot * target for which the build fails * package(s) for which the build fails * the command that fails and its output * any information you think that may be relevant Additionally, you should add the +.config+ file (or if you know how, a +defconfig+; see xref:customize-store-buildroot-config[]). If some of these details are too large, do not hesitate to use a 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/ === Using the runtime tests framework Buildroot includes a run-time testing framework built upon Python scripting and QEMU runtime execution. The goals of the framework are the following: * build a well defined Buildroot configuration * optionally, verify some properties of the build output * optionally, boot the build results under Qemu, and verify that a given feature is working as expected The entry point to use the runtime tests framework is the +support/testing/run-tests+ tool, which has a series of options documented in the tool's help '-h' description. Some common options include setting the download folder, the output folder, keeping build output, and for multiple test cases, you can set the JLEVEL for each. Here is an example walk through of running a test case. * For a first step, let us see what all the test case options are. The test cases can be listed by executing +support/testing/run-tests -l+. These tests can all be run individually during test development from the console. Both one at a time and selectively as a group of a subset of tests. --------------------- $ support/testing/run-tests -l List of tests test_run (tests.utils.test_check_package.TestCheckPackage) test_run (tests.toolchain.test_external.TestExternalToolchainBuildrootMusl) ... ok test_run (tests.toolchain.test_external.TestExternalToolchainBuildrootuClibc) ... ok test_run (tests.toolchain.test_external.TestExternalToolchainCCache) ... ok test_run (tests.toolchain.test_external.TestExternalToolchainCtngMusl) ... ok test_run (tests.toolchain.test_external.TestExternalToolchainLinaroArm) ... ok test_run (tests.toolchain.test_external.TestExternalToolchainSourceryArmv4) ... ok test_run (tests.toolchain.test_external.TestExternalToolchainSourceryArmv5) ... ok test_run (tests.toolchain.test_external.TestExternalToolchainSourceryArmv7) ... ok [snip] test_run (tests.init.test_systemd.TestInitSystemSystemdRoFull) ... ok test_run (tests.init.test_systemd.TestInitSystemSystemdRoIfupdown) ... ok test_run (tests.init.test_systemd.TestInitSystemSystemdRoNetworkd) ... ok test_run (tests.init.test_systemd.TestInitSystemSystemdRwFull) ... ok test_run (tests.init.test_systemd.TestInitSystemSystemdRwIfupdown) ... ok test_run (tests.init.test_systemd.TestInitSystemSystemdRwNetworkd) ... ok test_run (tests.init.test_busybox.TestInitSystemBusyboxRo) ... ok test_run (tests.init.test_busybox.TestInitSystemBusyboxRoNet) ... ok test_run (tests.init.test_busybox.TestInitSystemBusyboxRw) ... ok test_run (tests.init.test_busybox.TestInitSystemBusyboxRwNet) ... ok Ran 157 tests in 0.021s OK --------------------- * Then, to run one test case: --------------------- $ support/testing/run-tests -d dl -o output_folder -k tests.init.test_busybox.TestInitSystemBusyboxRw 15:03:26 TestInitSystemBusyboxRw Starting 15:03:28 TestInitSystemBusyboxRw Building 15:08:18 TestInitSystemBusyboxRw Building done 15:08:27 TestInitSystemBusyboxRw Cleaning up . Ran 1 test in 301.140s OK --------------------- The standard output indicates if the test is successful or not. By default, the output folder for the test is deleted automatically unless the option +-k+ is passed to *keep* the output directory. ==== Creating a test case Within the Buildroot repository, the testing framework is organized at the top level in +support/testing/+ by folders of +conf+, +infra+ and +tests+. All the test cases live under the +tests+ folder and are organized in various folders representing the category of test. The best way to get familiar with how to create a test case is to look at a few of the basic file system +support/testing/tests/fs/+ and init +support/testing/tests/init/+ test scripts. Those tests give good examples of a basic tests that include both checking the build results, and doing runtime tests. There are other more advanced cases that use things like nested +br2-external+ folders to provide skeletons and additional packages. Creating a basic test case involves: * Defining a test class that inherits from +infra.basetest.BRTest+ * Defining the +config+ member of the test class, to the Buildroot configuration to build for this test case. It can optionally rely on configuration snippets provided by the runtime test infrastructure: +infra.basetest.BASIC_TOOLCHAIN_CONFIG+ to get a basic architecture/toolchain configuration, and +infra.basetest.MINIMAL_CONFIG+ to not build any filesystem. The advantage of using +infra.basetest.BASIC_TOOLCHAIN_CONFIG+ is that a matching Linux kernel image is provided, which allows to boot the resulting image in Qemu without having to build a Linux kernel image as part of the test case, therefore significant decreasing the build time required for the test case. * Implementing a +def test_run(self):+ function to implement the actual tests to run after the build has completed. They may be tests that verify the build output, by running command on the host using the +run_cmd_on_host()+ helper function. Or they may boot the generated system in Qemu using the +Emulator+ object available as +self.emulator+ in the test case. For example +self.emulator.boot()+ allows to boot the system in Qemu, +self.emulator.login()+ allows to login, +self.emulator.run()+ allows to run shell commands inside Qemu. After creating the test script, add yourself to the +DEVELOPERS+ file to be the maintainer of that test case. ==== Debugging a test case When a test case runs, the +output_folder+ will contain the following: --------------------- $ ls output_folder/ TestInitSystemBusyboxRw/ TestInitSystemBusyboxRw-build.log TestInitSystemBusyboxRw-run.log --------------------- +TestInitSystemBusyboxRw/+ is the Buildroot output directory, and it is preserved only if the +-k+ option is passed. +TestInitSystemBusyboxRw-build.log+ is the log of the Buildroot build. +TestInitSystemBusyboxRw-run.log+ is the log of the Qemu boot and test. This file will only exist if the build was successful and the test case involves booting under Qemu. If you want to manually run Qemu to do manual tests of the build result, the first few lines of +TestInitSystemBusyboxRw-run.log+ contain the Qemu command line to use. You can also make modifications to the current sources inside the +output_folder+ (e.g. for debug purposes) and rerun the standard Buildroot make targets (in order to regenerate the complete image with the new modifications) and then rerun the test. ==== Runtime tests and Gitlab CI All runtime tests are regularly executed by Buildroot Gitlab CI infrastructure, see .gitlab.yml and https://gitlab.com/buildroot.org/buildroot/-/jobs. You can also use Gitlab CI to test your new test cases, or verify that existing tests continue to work after making changes in Buildroot. In order to achieve this, you need to create a fork of the Buildroot project on Gitlab, and be able to push branches to your Buildroot fork on Gitlab. The name of the branch that you push will determine if a Gitlab CI pipeline will be triggered or not, and for which test cases. In the examples below, the component of the branch name is an arbitrary string you choose. * To trigger all run-test test case jobs, push a branch that ends with +-runtime-tests+: --------------------- $ git push gitlab HEAD:-runtime-tests --------------------- * To trigger one or several test case jobs, push a branch that ends with the complete test case name (+tests.init.test_busybox.TestInitSystemBusyboxRo+) or with the name of a category of tests (+tests.init.test_busybox+): --------------------- $ git push gitlab HEAD:- --------------------- Example to run one test: --------------------- $ git push gitlab HEAD:foo-tests.init.test_busybox.TestInitSystemBusyboxRo --------------------- Examples to run several tests part of the same group: --------------------- $ git push gitlab HEAD:foo-tests.init.test_busybox $ git push gitlab HEAD:foo-tests.init --------------------- ================================================ FILE: docs/manual/customize-configuration.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[customize-store-buildroot-config]] === Storing the Buildroot configuration The Buildroot configuration can be stored using the command +make savedefconfig+. This strips the Buildroot configuration down by removing configuration options that are at their default value. The result is stored in a file called +defconfig+. If you want to save it in another place, change the +BR2_DEFCONFIG+ option in the Buildroot configuration itself, or call make with +make savedefconfig BR2_DEFCONFIG=+. The recommended place to store this defconfig is +configs/_defconfig+. If you follow this recommendation, the configuration will be listed in +make help+ and can be set again by running +make _defconfig+. Alternatively, you can copy the file to any other place and rebuild with +make defconfig BR2_DEFCONFIG=+. [[customize-store-package-config]] === Storing the configuration of other components The configuration files for BusyBox, the Linux kernel, Barebox, U-Boot and uClibc should be stored as well if changed. For each of these components, a Buildroot configuration option exists to point to an input configuration file, e.g. +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+. To store their configuration, set these configuration options to a path where you want to save the configuration files, and then use the helper targets described below to actually store the configuration. As explained in xref:customize-dir-structure[], the recommended path to store these configuration files is +board///foo.config+. Make sure that you create a configuration file 'before' changing the +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+ etc. options. Otherwise, Buildroot will try to access this config file, which doesn't exist yet, and will fail. You can create the configuration file by running +make linux-menuconfig+ etc. Buildroot provides a few helper targets to make the saving of configuration files easier. * +make linux-update-defconfig+ saves the linux configuration to the path specified by +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+. It simplifies the config file by removing default values. However, this only works with kernels starting from 2.6.33. For earlier kernels, use +make linux-update-config+. * +make busybox-update-config+ saves the busybox configuration to the path specified by +BR2_PACKAGE_BUSYBOX_CONFIG+. * +make uclibc-update-config+ saves the uClibc configuration to the path specified by +BR2_UCLIBC_CONFIG+. * +make barebox-update-defconfig+ saves the barebox configuration to the path specified by +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+. * +make uboot-update-defconfig+ saves the U-Boot configuration to the path specified by +BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE+. * For at91bootstrap3, no helper exists so you have to copy the config file manually to +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+. ================================================ FILE: docs/manual/customize-device-permission-tables.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[customize-device-permission]] ==== 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 post-build script. Instead, Buildroot provides support for so-called _permission tables_. To use this feature, set config option +BR2_ROOTFS_DEVICE_TABLE+ to a space-separated list of permission tables, regular text files following the xref:makedev-syntax[makedev syntax]. If you are using a static device table (i.e. not using +devtmpfs+, +mdev+, or +(e)udev+) then you can add device nodes using the same syntax, in so-called _device tables_. To use this feature, set config option +BR2_ROOTFS_STATIC_DEVICE_TABLE+ to a space-separated list of device tables. As shown in xref:customize-dir-structure[], the recommended location for such files is +board///+. It should be noted that if the specific permissions or device nodes are related to a specific application, you should set variables +FOO_PERMISSIONS+ and +FOO_DEVICES+ in the package's +.mk+ file instead (see xref:generic-package-reference[]). ================================================ FILE: docs/manual/customize-directory-structure.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[customize-dir-structure]] === Recommended directory structure When customizing Buildroot for your project, you will be creating one or more project-specific files that need to be stored somewhere. While most of these files could be placed in _any_ location as their path is to be specified in the Buildroot configuration, the Buildroot developers recommend a specific directory structure which is described in this section. Orthogonal to this directory structure, you can choose _where_ you place this structure itself: either inside the Buildroot tree, or outside of it using a br2-external tree. Both options are valid, the choice is up to you. ----- +-- board/ | +-- / | +-- / | +-- linux.config | +-- busybox.config | +-- | +-- post_build.sh | +-- post_image.sh | +-- rootfs_overlay/ | | +-- etc/ | | +-- | +-- patches/ | +-- foo/ | | +-- | +-- libbar/ | +-- | +-- configs/ | +-- _defconfig | +-- package/ | +-- / | +-- Config.in (if not using a br2-external tree) | +-- .mk (if not using a br2-external tree) | +-- package1/ | | +-- Config.in | | +-- package1.mk | +-- package2/ | +-- Config.in | +-- package2.mk | +-- Config.in (if using a br2-external tree) +-- external.mk (if using a br2-external tree) +-- external.desc (if using a br2-external tree) ------ Details on the files shown above are given further in this chapter. Note: if you choose to place this structure outside of the Buildroot tree but in a br2-external tree, the and possibly components may be superfluous and can be left out. ==== Implementing layered customizations It is quite common for a user to have several related projects that partly need the same customizations. Instead of duplicating these customizations for each project, it is recommended to use a layered customization approach, as explained in this section. Almost all of the customization methods available in Buildroot, like post-build scripts and root filesystem overlays, accept a space-separated list of items. The specified items are always treated in order, from left to right. By creating more than one such item, one for the common customizations and another one for the really project-specific customizations, you can avoid unnecessary duplication. Each layer is typically embodied by a separate directory inside +board//+. Depending on your projects, you could even introduce more than two layers. An example directory structure for where a user has two customization layers 'common' and 'fooboard' is: ----- +-- board/ +-- / +-- common/ | +-- post_build.sh | +-- rootfs_overlay/ | | +-- ... | +-- patches/ | +-- ... | +-- fooboard/ +-- linux.config +-- busybox.config +-- +-- post_build.sh +-- rootfs_overlay/ | +-- ... +-- patches/ +-- ... ----- For example, if the user has the +BR2_GLOBAL_PATCH_DIR+ configuration option set as: ----- BR2_GLOBAL_PATCH_DIR="board//common/patches board//fooboard/patches" ----- then first the patches from the 'common' layer would be applied, followed by the patches from the 'fooboard' layer. ================================================ FILE: docs/manual/customize-outside-br.txt ================================================ // -*- mode:doc -*- ; // vim: set syntax=asciidoc: [[outside-br-custom]] === Keeping customizations outside of Buildroot As already briefly mentioned in xref:customize-dir-structure[], you can place project-specific customizations in two locations: * directly within the Buildroot tree, typically maintaining them using branches in a version control system so that upgrading to a newer Buildroot release is easy. * outside of the Buildroot tree, using the _br2-external_ mechanism. This mechanism allows to keep package recipes, board support and configuration files outside of the Buildroot tree, while still having them nicely integrated in the build logic. We call this location a _br2-external tree_. This section explains how to use the br2-external mechanism and what to provide in a br2-external tree. One can tell Buildroot to use one or more br2-external trees by setting the +BR2_EXTERNAL+ make variable set to the path(s) of the br2-external tree(s) to use. It can be passed to any Buildroot +make+ invocation. It is automatically saved in the hidden +.br2-external.mk+ file in the output directory. Thanks to this, there is no need to pass +BR2_EXTERNAL+ at every +make+ invocation. It can however be changed at any time by passing a new value, and can be removed by passing an empty value. .Note The path to a br2-external tree can be either absolute or relative. If it is passed as a relative path, it is important to note that it is interpreted relative to the main Buildroot source directory, *not* to the Buildroot output directory. .Note: If using an br2-external tree from before Buildroot 2016.11, you need to convert it before you can use it with Buildroot 2016.11 onward. See xref:br2-external-converting[] for help on doing so. Some examples: ----- buildroot/ $ make BR2_EXTERNAL=/path/to/foo menuconfig ----- From now on, definitions from the +/path/to/foo+ br2-external tree will be used: ----- buildroot/ $ make buildroot/ $ make legal-info ----- We can switch to another br2-external tree at any time: ----- buildroot/ $ make BR2_EXTERNAL=/where/we/have/bar xconfig ----- We can also use multiple br2-external trees: ---- buildroot/ $ make BR2_EXTERNAL=/path/to/foo:/where/we/have/bar menuconfig ---- Or disable the usage of any br2-external tree: ----- buildroot/ $ make BR2_EXTERNAL= xconfig ----- ==== Layout of a br2-external tree A br2-external tree must contain at least those three files, described in the following chapters: * +external.desc+ * +external.mk+ * +Config.in+ Apart from those mandatory files, there may be additional and optional content that may be present in a br2-external tree, like the +configs/+ or +provides/+ directories. They are described in the following chapters as well. A complete example br2-external tree layout is also described later. ===== The +external.desc+ file That file describes the br2-external tree: the _name_ and _description_ for that br2-external tree. The format for this file is line based, with each line starting by a keyword, followed by a colon and one or more spaces, followed by the value assigned to that keyword. There are two keywords currently recognised: * +name+, mandatory, defines the name for that br2-external tree. That name must only use ASCII characters in the set +[A-Za-z0-9_]+; any other character is forbidden. Buildroot sets the variable +BR2_EXTERNAL_$(NAME)_PATH+ to the absolute path of the br2-external tree, so that you can use it to refer to your br2-external tree. This variable is available both in Kconfig, so you can use it to source your Kconfig files (see below) and in the Makefile, so that you can use it to include other Makefiles (see below) or refer to other files (like data files) from your br2-external tree. + .Note: Since it is possible to use multiple br2-external trees at once, this name is used by Buildroot to generate variables for each of those trees. That name is used to identify your br2-external tree, so try to come up with a name that really describes your br2-external tree, in order for it to be relatively unique, so that it does not clash with another name from another br2-external tree, especially if you are planning on somehow sharing your br2-external tree with third parties or using br2-external trees from third parties. * +desc+, optional, provides a short description for that br2-external tree. It shall fit on a single line, is mostly free-form (see below), and is used when displaying information about a br2-external tree (e.g. above the list of defconfig files, or as the prompt in the menuconfig); as such, it should relatively brief (40 chars is probably a good upper limit). The description is available in the +BR2_EXTERNAL_$(NAME)_DESC+ variable. Examples of names and the corresponding +BR2_EXTERNAL_$(NAME)_PATH+ variables: * +FOO+ -> +BR2_EXTERNAL_FOO_PATH+ * +BAR_42+ -> +BR2_EXTERNAL_BAR_42_PATH+ In the following examples, it is assumed the name to be set to +BAR_42+. .Note: Both +BR2_EXTERNAL_$(NAME)_PATH+ and `BR2_EXTERNAL_$(NAME)_DESC` are available in the Kconfig files and the Makefiles. They are also exported in the environment so are available in post-build, post-image and in-fakeroot scripts. ===== The +Config.in+ and +external.mk+ files Those files (which may each be empty) can be used to define package recipes (i.e. +foo/Config.in+ and +foo/foo.mk+ like for packages bundled in Buildroot itself) or other custom configuration options or make logic. Buildroot automatically includes the +Config.in+ from each br2-external tree to make it appear in the top-level configuration menu, and includes the +external.mk+ from each br2-external tree with the rest of the makefile logic. The main usage of this is to store package recipes. The recommended way to do this is to write a +Config.in+ file that looks like: ------ source "$BR2_EXTERNAL_BAR_42_PATH/package/package1/Config.in" source "$BR2_EXTERNAL_BAR_42_PATH/package/package2/Config.in" ------ Then, have an +external.mk+ file that looks like: ------ include $(sort $(wildcard $(BR2_EXTERNAL_BAR_42_PATH)/package/*/*.mk)) ------ And then in +$(BR2_EXTERNAL_BAR_42_PATH)/package/package1+ and +$(BR2_EXTERNAL_BAR_42_PATH)/package/package2+ create normal Buildroot package recipes, as explained in xref:adding-packages[]. If you prefer, you can also group the packages in subdirectories called and adapt the above paths accordingly. You can also define custom configuration options in +Config.in+ and custom make logic in +external.mk+. ===== The +configs/+ directory One can store Buildroot defconfigs in the +configs+ subdirectory of the br2-external tree. Buildroot will automatically show them in the output of +make list-defconfigs+ and allow them to be loaded with the normal +make _defconfig+ command. They will be visible in the 'make list-defconfigs' output, below an +External configs+ label that contains the name of the br2-external tree they are defined in. .Note: If a defconfig file is present in more than one br2-external tree, then the one from the last br2-external tree is used. It is thus possible to override a defconfig bundled in Buildroot or another br2-external tree. ===== The +provides/+ directory For some packages, Buildroot provides a choice between two (or more) implementations of API-compatible such packages. For example, there is a choice to choose either libjpeg ot jpeg-turbo; there is one between openssl or libressl; there is one to select one of the known, pre-configured toolchains... It is possible for a br2-external to extend those choices, by providing a set of files that define those alternatives: * +provides/toolchains.in+ defines the pre-configured toolchains, which will then be listed in the toolchain selection; * +provides/jpeg.in+ defines the alternative libjpeg implementations; * +provides/openssl.in+ defines the alternative openssl implementations; * +provides/skeleton.in+ defines the alternative skeleton implementations; * +provides/init.in+ defines the alternative init system implementations, this can be used to select a default skeleton for your init. ===== Free-form content One can store all the board-specific configuration files there, such as the kernel configuration, the root filesystem overlay, or any other configuration file for which Buildroot allows to set the location (by using the +BR2_EXTERNAL_$(NAME)_PATH+ variable). For example, you could set the paths to a global patch directory, to a rootfs overlay and to the kernel configuration file as follows (e.g. by running `make menuconfig` and filling in these options): ---- BR2_GLOBAL_PATCH_DIR=$(BR2_EXTERNAL_BAR_42_PATH)/patches/ BR2_ROOTFS_OVERLAY=$(BR2_EXTERNAL_BAR_42_PATH)/board//overlay/ BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=$(BR2_EXTERNAL_BAR_42_PATH)/board//kernel.config ---- ===== Additional Linux kernel extensions Additional Linux kernel extensions (see xref:linux-kernel-ext[]) can be added by storing them in the `linux/` directory at the root of a br2-external tree. ===== Example layout Here is an example layout using all features of br2-external (the sample content is shown for the file above it, when it is relevant to explain the br2-external tree; this is all entirely made up just for the sake of illustration, of course): ---- /path/to/br2-ext-tree/ |- external.desc | |name: BAR_42 | |desc: Example br2-external tree | `---- | |- Config.in | |source "$BR2_EXTERNAL_BAR_42_PATH/toolchain/toolchain-external-mine/Config.in.options" | |source "$BR2_EXTERNAL_BAR_42_PATH/package/pkg-1/Config.in" | |source "$BR2_EXTERNAL_BAR_42_PATH/package/pkg-2/Config.in" | |source "$BR2_EXTERNAL_BAR_42_PATH/package/my-jpeg/Config.in" | | | |config BAR_42_FLASH_ADDR | | hex "my-board flash address" | | default 0x10AD | `---- | |- external.mk | |include $(sort $(wildcard $(BR2_EXTERNAL_BAR_42_PATH)/package/*/*.mk)) | |include $(sort $(wildcard $(BR2_EXTERNAL_BAR_42_PATH)/toolchain/*/*.mk)) | | | |flash-my-board: | | $(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/flash-image \ | | --image $(BINARIES_DIR)/image.bin \ | | --address $(BAR_42_FLASH_ADDR) | `---- | |- package/pkg-1/Config.in | |config BR2_PACKAGE_PKG_1 | | bool "pkg-1" | | help | | Some help about pkg-1 | `---- |- package/pkg-1/pkg-1.hash |- package/pkg-1/pkg-1.mk | |PKG_1_VERSION = 1.2.3 | |PKG_1_SITE = /some/where/to/get/pkg-1 | |PKG_1_LICENSE = blabla | | | |define PKG_1_INSTALL_INIT_SYSV | | $(INSTALL) -D -m 0755 $(PKG_1_PKGDIR)/S99my-daemon \ | | $(TARGET_DIR)/etc/init.d/S99my-daemon | |endef | | | |$(eval $(autotools-package)) | `---- |- package/pkg-1/S99my-daemon | |- package/pkg-2/Config.in |- package/pkg-2/pkg-2.hash |- package/pkg-2/pkg-2.mk | |- provides/jpeg.in | |config BR2_PACKAGE_MY_JPEG | | bool "my-jpeg" | `---- |- package/my-jpeg/Config.in | |config BR2_PACKAGE_PROVIDES_JPEG | | default "my-jpeg" if BR2_PACKAGE_MY_JPEG | `---- |- package/my-jpeg/my-jpeg.mk | |# This is a normal package .mk file | |MY_JPEG_VERSION = 1.2.3 | |MY_JPEG_SITE = https://example.net/some/place | |MY_JPEG_PROVIDES = jpeg | |$(eval $(autotools-package)) | `---- | |- provides/init.in | |config BR2_INIT_MINE | | bool "my custom init" | | select BR2_PACKAGE_MY_INIT | | select BR2_PACKAGE_SKELETON_INIT_MINE if BR2_ROOTFS_SKELETON_DEFAULT | `---- | |- provides/skeleton.in | |config BR2_ROOTFS_SKELETON_MINE | | bool "my custom skeleton" | | select BR2_PACKAGE_SKELETON_MINE | `---- |- package/skeleton-mine/Config.in | |config BR2_PACKAGE_SKELETON_MINE | | bool | | select BR2_PACKAGE_HAS_SKELETON | | | |config BR2_PACKAGE_PROVIDES_SKELETON | | default "skeleton-mine" if BR2_PACKAGE_SKELETON_MINE | `---- |- package/skeleton-mine/skeleton-mine.mk | |SKELETON_MINE_ADD_TOOLCHAIN_DEPENDENCY = NO | |SKELETON_MINE_ADD_SKELETON_DEPENDENCY = NO | |SKELETON_MINE_PROVIDES = skeleton | |SKELETON_MINE_INSTALL_STAGING = YES | |$(eval $(generic-package)) | `---- | |- provides/toolchains.in | |config BR2_TOOLCHAIN_EXTERNAL_MINE | | bool "my custom toolchain" | | depends on BR2_some_arch | | select BR2_INSTALL_LIBSTDCPP | `---- |- toolchain/toolchain-external-mine/Config.in.options | |if BR2_TOOLCHAIN_EXTERNAL_MINE | |config BR2_TOOLCHAIN_EXTERNAL_PREFIX | | default "arch-mine-linux-gnu" | |config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL | | default "toolchain-external-mine" | |endif | `---- |- toolchain/toolchain-external-mine/toolchain-external-mine.mk | |TOOLCHAIN_EXTERNAL_MINE_SITE = https://example.net/some/place | |TOOLCHAIN_EXTERNAL_MINE_SOURCE = my-toolchain.tar.gz | |$(eval $(toolchain-external-package)) | `---- | |- linux/Config.ext.in | |config BR2_LINUX_KERNEL_EXT_EXAMPLE_DRIVER | | bool "example-external-driver" | | help | | Example external driver | |--- |- linux/linux-ext-example-driver.mk | |- configs/my-board_defconfig | |BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_BAR_42_PATH)/patches/" | |BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/overlay/" | |BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/post-image.sh" | |BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/kernel.config" | `---- | |- patches/linux/0001-some-change.patch |- patches/linux/0002-some-other-change.patch |- patches/busybox/0001-fix-something.patch | |- board/my-board/kernel.config |- board/my-board/overlay/var/www/index.html |- board/my-board/overlay/var/www/my.css |- board/my-board/flash-image `- board/my-board/post-image.sh |#!/bin/sh |generate-my-binary-image \ | --root ${BINARIES_DIR}/rootfs.tar \ | --kernel ${BINARIES_DIR}/zImage \ | --dtb ${BINARIES_DIR}/my-board.dtb \ | --output ${BINARIES_DIR}/image.bin `---- ---- The br2-external tree will then be visible in the menuconfig (with the layout expanded): ---- External options ---> *** Example br2-external tree (in /path/to/br2-ext-tree/) [ ] pkg-1 [ ] pkg-2 (0x10AD) my-board flash address ---- If you are using more than one br2-external tree, it would look like (with the layout expanded and the second one with name +FOO_27+ but no +desc:+ field in +external.desc+): ---- External options ---> Example br2-external tree ---> *** Example br2-external tree (in /path/to/br2-ext-tree) [ ] pkg-1 [ ] pkg-2 (0x10AD) my-board flash address FOO_27 ---> *** FOO_27 (in /path/to/another-br2-ext) [ ] foo [ ] bar ---- Additionally, the jpeg provider will be visible in the jpeg choice: ---- Target packages ---> Libraries ---> Graphics ---> [*] jpeg support jpeg variant () ---> ( ) jpeg ( ) jpeg-turbo *** jpeg from: Example br2-external tree *** (X) my-jpeg *** jpeg from: FOO_27 *** ( ) another-jpeg ---- And similarly for the toolchains: ---- Toolchain ---> Toolchain () ---> ( ) Custom toolchain *** Toolchains from: Example br2-external tree *** (X) my custom toolchain ---- .Note The toolchain options in +toolchain/toolchain-external-mine/Config.in.options+ will not appear in the `Toolchain` menu. They must be explicitly included from within the br2-external's top-level +Config.in+ and will thus appear in the `External options` menu. ================================================ FILE: docs/manual/customize-packages.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[customize-packages]] === Adding project-specific packages In general, any new package should be added directly in the +package+ directory and submitted to the Buildroot upstream project. How to add packages to Buildroot in general is explained in full detail in xref:adding-packages[] and will not be repeated here. However, your project may need some proprietary packages that cannot be upstreamed. This section will explain how you can keep such project-specific packages in a project-specific directory. As shown in xref:customize-dir-structure[], the recommended location for project-specific packages is +package//+. If you are using the br2-external tree feature (see xref:outside-br-custom[]) the recommended location is to put them in a sub-directory named +package/+ in your br2-external tree. However, Buildroot will not be aware of the packages in this location, unless we perform some additional steps. As explained in xref:adding-packages[], a package in Buildroot basically consists of two files: a +.mk+ file (describing how to build the package) and a +Config.in+ file (describing the configuration options for this package). Buildroot will automatically include the +.mk+ files in first-level subdirectories of the +package+ directory (using the pattern +package/\*/*.mk+). If we want Buildroot to include +.mk+ files from deeper subdirectories (like +package//package1/+) then we simply have to add a +.mk+ file in a first-level subdirectory that includes these additional +.mk+ files. Therefore, create a file +package//.mk+ with following contents (assuming you have only one extra directory level below +package//+): ----- include $(sort $(wildcard package//*/*.mk)) ----- For the +Config.in+ files, create a file +package//Config.in+ that includes the +Config.in+ files of all your packages. An exhaustive list has to be provided since wildcards are not supported in the source command of kconfig. For example: ----- source "package//package1/Config.in" source "package//package2/Config.in" ----- Include this new file +package//Config.in+ from +package/Config.in+, preferably in a company-specific menu to make merges with future Buildroot versions easier. If using a br2-external tree, refer to xref:outside-br-custom[] for how to fill in those files. ================================================ FILE: docs/manual/customize-patches.txt ================================================ // -*- mode:doc -*- ; // vim: set syntax=asciidoc: [[customize-patches]] === Adding project-specific patches It is sometimes useful to apply 'extra' patches to packages - on top of those provided in Buildroot. This might be used to support custom features in a project, for example, or when working on a new architecture. The +BR2_GLOBAL_PATCH_DIR+ configuration option can be used to specify a space separated list of one or more directories containing package patches. For a specific version ++ of a specific package ++, patches are applied from +BR2_GLOBAL_PATCH_DIR+ as follows: . For every directory - ++ - that exists in +BR2_GLOBAL_PATCH_DIR+, a ++ will be determined as follows: + * +///+ if the directory exists. + * Otherwise, +/+ if the directory exists. . Patches will then be applied from a ++ as follows: + * 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'. For information about how patches are applied for a package, see xref:patch-apply-order[] The +BR2_GLOBAL_PATCH_DIR+ option is the preferred method for specifying a custom patch directory for packages. It can be used to specify a patch directory for any package in buildroot. It should also be used in place of the custom patch directory options that are available for packages such as U-Boot and Barebox. By doing this, it will allow a user to manage their patches from one top-level directory. The exception to +BR2_GLOBAL_PATCH_DIR+ being the preferred method for specifying custom patches is +BR2_LINUX_KERNEL_PATCH+. +BR2_LINUX_KERNEL_PATCH+ should be used to specify kernel patches that are available at a URL. *Note:* +BR2_LINUX_KERNEL_PATCH+ specifies kernel patches that are applied after patches available in +BR2_GLOBAL_PATCH_DIR+, as it is done from a post-patch hook of the Linux package. ================================================ FILE: docs/manual/customize-post-image.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Customization _after_ the images have been created While post-build scripts (xref:rootfs-custom[]) are run _before_ building the filesystem image, kernel and bootloader, *post-image scripts* can be used to perform some specific actions _after_ all images have been created. Post-image scripts can for example be used to automatically extract your root filesystem tarball in a location exported by your NFS server, or to create a special firmware image that bundles your root filesystem and kernel image, or any other custom action required for your project. To enable this feature, specify a space-separated list of post-image scripts in config option +BR2_ROOTFS_POST_IMAGE_SCRIPT+ (in the +System configuration+ menu). If you specify a relative path, it will be relative to the root of the Buildroot tree. Just like post-build scripts, post-image scripts are run with the main Buildroot tree as current working directory. The path to the +images+ output directory is passed as the first argument to each script. If the config option +BR2_ROOTFS_POST_SCRIPT_ARGS+ is not empty, these arguments will be passed to the script too. All the scripts will be passed the exact same set of arguments, it is not possible to pass different sets of arguments to each script. Again just like for the post-build scripts, the scripts have access to the environment variables +BR2_CONFIG+, +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+, +BUILD_DIR+, +BINARIES_DIR+, +CONFIG_DIR+ and +BASE_DIR+. The post-image scripts will be executed as the user that executes Buildroot, which should normally _not_ be the root user. Therefore, any action requiring root permissions in one of these scripts will require special handling (usage of fakeroot or sudo), which is left to the script developer. ================================================ FILE: docs/manual/customize-quick-guide.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Quick guide to storing your project-specific customizations Earlier in this chapter, the different methods for making project-specific customizations have been described. This section will now summarize all this by providing step-by-step instructions to storing your project-specific customizations. Clearly, the steps that are not relevant to your project can be skipped. 1. +make menuconfig+ to configure toolchain, packages and kernel. 1. +make linux-menuconfig+ to update the kernel config, similar for other configuration like busybox, uclibc, ... 1. +mkdir -p board//+ 1. Set the following options to +board///.config+ (as far as they are relevant): * +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+ * +BR2_PACKAGE_BUSYBOX_CONFIG+ * +BR2_UCLIBC_CONFIG+ * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+ * +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+ * +BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE+ 1. Write the configuration files: * +make linux-update-defconfig+ * +make busybox-update-config+ * +make uclibc-update-config+ * +cp /build/at91bootstrap3-*/.config board///at91bootstrap3.config+ * +make barebox-update-defconfig+ * +make uboot-update-defconfig+ 1. Create +board///rootfs-overlay/+ and fill it with additional files you need on your rootfs, e.g. +board///rootfs-overlay/etc/inittab+. Set +BR2_ROOTFS_OVERLAY+ to +board///rootfs-overlay+. 1. Create a post-build script +board///post_build.sh+. Set +BR2_ROOTFS_POST_BUILD_SCRIPT+ to +board///post_build.sh+ 1. If additional setuid permissions have to be set or device nodes have to be created, create +board///device_table.txt+ and add that path to +BR2_ROOTFS_DEVICE_TABLE+. 1. If additional user accounts have to be created, create +board///users_table.txt+ and add that path to +BR2_ROOTFS_USERS_TABLES+. 1. To add custom patches to certain packages, set +BR2_GLOBAL_PATCH_DIR+ to +board///patches/+ and add your patches for each package in a subdirectory named after the package. Each patch should be called +--.patch+. 1. Specifically for the Linux kernel, there also exists the option +BR2_LINUX_KERNEL_PATCH+ with as main advantage that it can also download patches from a URL. If you do not need this, +BR2_GLOBAL_PATCH_DIR+ is preferred. U-Boot, Barebox, at91bootstrap and at91bootstrap3 also have separate options, but these do not provide any advantage over +BR2_GLOBAL_PATCH_DIR+ and will likely be removed in the future. 1. If you need to add project-specific packages, create +package//+ and place your packages in that directory. Create an overall +.mk+ file that includes the +.mk+ files of all your packages. Create an overall +Config.in+ file that sources the +Config.in+ files of all your packages. Include this +Config.in+ file from Buildroot's +package/Config.in+ file. 1. +make savedefconfig+ to save the buildroot configuration. 1. +cp defconfig configs/_defconfig+ ================================================ FILE: docs/manual/customize-rootfs.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[rootfs-custom]] === Customizing the generated target filesystem Besides changing the configuration through +make *config+, there are a few other ways to customize the resulting target filesystem. The two recommended methods, which can co-exist, are root filesystem overlay(s) and post build script(s). Root filesystem overlays (+BR2_ROOTFS_OVERLAY+):: + A filesystem overlay is a tree of files that is copied directly over the target filesystem after it has been built. To enable this feature, set config option +BR2_ROOTFS_OVERLAY+ (in the +System configuration+ menu) to the root of the overlay. You can even specify multiple overlays, space-separated. If you specify a relative path, it will be relative to the root of the Buildroot tree. Hidden directories of version control systems, like +.git+, +.svn+, +.hg+, etc., files called +.empty+ and files ending in +~+ are excluded from the copy. + When +BR2_ROOTFS_MERGED_USR+ is enabled, then the overlay must not contain the '/bin', '/lib' or '/sbin' directories, as Buildroot will create them as symbolic links to the relevant folders in '/usr'. In such a situation, should the overlay have any programs or libraries, they should be placed in '/usr/bin', '/usr/sbin' and '/usr/lib'. + As shown in xref:customize-dir-structure[], the recommended path for this overlay is +board///rootfs-overlay+. Post-build scripts (+BR2_ROOTFS_POST_BUILD_SCRIPT+):: + Post-build scripts are shell scripts called 'after' Buildroot builds all the selected software, but 'before' the rootfs images are assembled. To enable this feature, specify a space-separated list of post-build scripts in config option +BR2_ROOTFS_POST_BUILD_SCRIPT+ (in the +System configuration+ menu). If you specify a relative path, it will be relative to the root of the Buildroot tree. + Using post-build scripts, you can remove or modify any file in your target filesystem. You should, however, use this feature with care. Whenever you find that a certain package generates wrong or unneeded files, you should fix that package rather than work around it with some post-build cleanup scripts. + As shown in xref:customize-dir-structure[], the recommended path for this script is +board///post_build.sh+. + The post-build scripts are run with the main Buildroot tree as current working directory. The path to the target filesystem is passed as the first argument to each script. If the config option +BR2_ROOTFS_POST_SCRIPT_ARGS+ is not empty, these arguments will be passed to the script too. All the scripts will be passed the exact same set of arguments, it is not possible to pass different sets of arguments to each script. + In addition, you may also use these environment variables: - +BR2_CONFIG+: the path to the Buildroot .config file - +CONFIG_DIR+: the directory containing the .config file, and therefore the top-level Buildroot Makefile to use (which is correct for both in-tree and out-of-tree builds) - +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+: see xref:generic-package-reference[] - +BUILD_DIR+: the directory where packages are extracted and built - +BINARIES_DIR+: the place where all binary files (aka images) are stored - +BASE_DIR+: the base output directory 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 directly and rebuild the image. The target filesystem is available under +output/target/+. After making your changes, run +make+ to rebuild the target filesystem image. + This method allows you to do anything to the target filesystem, but if you need to clean your Buildroot tree using +make clean+, these changes will be lost. Such cleaning is necessary in several cases, refer to xref:full-rebuild[] for details. This solution is therefore only useful for quick tests: _changes do not survive the +make clean+ command_. Once you have validated your changes, you should make sure that they will persist after a +make clean+, using a root filesystem overlay or a post-build script. Custom target skeleton (+BR2_ROOTFS_SKELETON_CUSTOM+):: + The root filesystem image is created from a target skeleton, on top of which all packages install their files. The skeleton is copied to the target directory +output/target+ before any package is built and installed. The default target skeleton provides the standard Unix filesystem layout and some basic init scripts and configuration files. + If the default skeleton (available under +system/skeleton+) does not match your needs, you would typically use a root filesystem overlay or post-build script to adapt it. However, if the default skeleton is entirely different than what you need, using a custom skeleton may be more suitable. + To enable this feature, enable config option +BR2_ROOTFS_SKELETON_CUSTOM+ and set +BR2_ROOTFS_SKELETON_CUSTOM_PATH+ to the path of your custom skeleton. Both options are available in the +System configuration+ menu. If you specify a relative path, it will be relative to the root of the Buildroot tree. + Custom skeletons don't need to contain the '/bin', '/lib' or '/sbin' directories, since they are created automatically during the build. When +BR2_ROOTFS_MERGED_USR+ is enabled, then the custom skeleton must not contain the '/bin', '/lib' or '/sbin' directories, as Buildroot will create them as symbolic links to the relevant folders in '/usr'. In such a situation, should the skeleton have any programs or libraries, they should be placed in '/usr/bin', '/usr/sbin' and '/usr/lib'. + 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[] ================================================ FILE: docs/manual/customize-users-tables.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[customize-users]] === Adding custom user accounts Sometimes it is needed to add specific users in the target system. To cover this requirement, Buildroot provides support for so-called _users tables_. To use this feature, set config option +BR2_ROOTFS_USERS_TABLES+ to a space-separated list of users tables, regular text files following the xref:makeuser-syntax[makeusers syntax]. As shown in xref:customize-dir-structure[], the recommended location for such files is +board///+. It should be noted that if the custom users are related to a specific application, you should set variable +FOO_USERS+ in the package's +.mk+ file instead (see xref:generic-package-reference[]). ================================================ FILE: docs/manual/customize.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[customize]] == Project-specific customization Typical actions you may need to perform for a given project are: * configuring Buildroot (including build options and toolchain, bootloader, kernel, package and filesystem image type selection) * configuring other components, like the Linux kernel and BusyBox * customizing the generated target filesystem ** adding or overwriting files on the target filesystem (using +BR2_ROOTFS_OVERLAY+) ** modifying or deleting files on the target filesystem (using +BR2_ROOTFS_POST_BUILD_SCRIPT+) ** running arbitrary commands prior to generating the filesystem image (using +BR2_ROOTFS_POST_BUILD_SCRIPT+) ** setting file permissions and ownership (using +BR2_ROOTFS_DEVICE_TABLE+) ** adding custom devices nodes (using +BR2_ROOTFS_STATIC_DEVICE_TABLE+) * adding custom user accounts (using +BR2_ROOTFS_USERS_TABLES+) * running arbitrary commands after generating the filesystem image (using +BR2_ROOTFS_POST_IMAGE_SCRIPT+) * adding project-specific patches to some packages (using +BR2_GLOBAL_PATCH_DIR+) * adding project-specific packages An important note regarding such 'project-specific' customizations: please carefully consider which changes are indeed project-specific and which changes are also useful to developers outside your project. The Buildroot community highly recommends and encourages the upstreaming of improvements, packages and board support to the official Buildroot project. Of course, it is sometimes not possible or desirable to upstream because the changes are highly specific or proprietary. This chapter describes how to make such project-specific customizations in Buildroot and how to store them in a way that you can build the same image in a reproducible way, even after running 'make clean'. By following the recommended strategy, you can even use the same Buildroot tree to build multiple distinct projects! include::customize-directory-structure.txt[] include::customize-outside-br.txt[] include::customize-configuration.txt[] include::customize-rootfs.txt[] include::customize-users-tables.txt[] include::customize-post-image.txt[] include::customize-patches.txt[] include::customize-packages.txt[] include::customize-quick-guide.txt[] ================================================ FILE: docs/manual/debugging-buildroot.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[debugging-buildroot]] == Debugging Buildroot It is possible to instrument the steps +Buildroot+ does when building packages. Define the variable +BR2_INSTRUMENTATION_SCRIPTS+ to contain the path of one or more scripts (or other executables), in a space-separated list, you want called before and after each step. The scripts are called in sequence, with three parameters: - +start+ or +end+ to denote the start (resp. the end) of a step; - the name of the step about to be started, or which just ended; - the name of the package. For example : ---- make BR2_INSTRUMENTATION_SCRIPTS="/path/to/my/script1 /path/to/my/script2" ---- The list of steps is: - +extract+ - +patch+ - +configure+ - +build+ - +install-host+, when a host-package is installed in +$(HOST_DIR)+ - +install-target+, when a target-package is installed in +$(TARGET_DIR)+ - +install-staging+, when a target-package is installed in +$(STAGING_DIR)+ - +install-image+, when a target-package installs files in +$(BINARIES_DIR)+ The script has access to the following variables: - +BR2_CONFIG+: the path to the Buildroot .config file - +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+: see xref:generic-package-reference[] - +BUILD_DIR+: the directory where packages are extracted and built - +BINARIES_DIR+: the place where all binary files (aka images) are stored - +BASE_DIR+: the base output directory ================================================ FILE: docs/manual/developers.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[DEVELOPERS]] == DEVELOPERS file and get-developers The main Buildroot directory contains a file named +DEVELOPERS+ that lists the developers involved with various areas of Buildroot. Thanks to this file, the +get-developers+ tool allows to: - Calculate the list of developers to whom patches should be sent, by parsing the patches and matching the modified files with the relevant developers. See xref:submitting-patches[] for details. - Find which developers are taking care of a given architecture or package, so that they can be notified when a build failure occurs on this architecture or package. This is done in interaction with Buildroot's autobuild infrastructure. We ask developers adding new packages, new boards, or generally new functionality in Buildroot, to register themselves in the +DEVELOPERS+ file. As an example, we expect a developer contributing a new package to include in his patch the appropriate modification to the +DEVELOPERS+ file. The +DEVELOPERS+ file format is documented in detail inside the file itself. The +get-developers+ tool, located in +utils/+ allows to use the +DEVELOPERS+ file for various tasks: - When passing one or several patches as command line argument, +get-developers+ will return the appropriate +git send-email+ command. If the +-e+ option is passed, only the email addresses are printed in a format suitable for +git send-email --cc-cmd+. - When using the +-a + command line option, +get-developers+ will return the list of developers in charge of the given architecture. - When using the +-p + command line option, +get-developers+ will return the list of developers in charge of the given package. - When using the +-c+ command line option, +get-developers+ will look at all files under version control in the Buildroot repository, and list the ones that are not handled by any developer. The purpose of this option is to help completing the +DEVELOPERS+ file. - When using without any arguments, it validates the integrity of the DEVELOPERS file and will note WARNINGS for items that don't match. ================================================ FILE: docs/manual/download-infra.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[download-infra]] == Download infrastructure TODO ================================================ FILE: docs/manual/download-location.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[download-location]] ==== Location of downloaded packages The various tarballs that are downloaded by Buildroot are all stored in +BR2_DL_DIR+, which by default is the +dl+ directory. If you want to keep a complete version of Buildroot which is known to be working with the associated tarballs, you can make a copy of this directory. This will allow you to regenerate the toolchain and the target filesystem with exactly the same versions. If you maintain several Buildroot trees, it might be better to have a shared download location. This can be achieved by pointing the +BR2_DL_DIR+ environment variable to a directory. If this is set, then the value of +BR2_DL_DIR+ in the Buildroot configuration is overridden. The following line should be added to +<~/.bashrc>+. ----------------- export BR2_DL_DIR= ----------------- The download location can also be set in the +.config+ file, with the +BR2_DL_DIR+ option. Unlike most options in the .config file, this value is overridden by the +BR2_DL_DIR+ environment variable. ================================================ FILE: docs/manual/eclipse-integration.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: === Integration with Eclipse While a part of the embedded Linux developers like classical text editors like Vim or Emacs, and command-line based interfaces, a number of other embedded Linux developers like richer graphical interfaces to do their development work. Eclipse being one of the most popular Integrated Development Environment, Buildroot integrates with Eclipse in order to ease the development work of Eclipse users. Our integration with Eclipse simplifies the compilation, remote execution and remote debugging of applications and libraries that are built on top of a Buildroot system. It does not integrate the Buildroot configuration and build processes themselves with Eclipse. Therefore, the typical usage model of our Eclipse integration would be: * Configure your Buildroot system with +make menuconfig+, +make xconfig+ or any other configuration interface provided with Buildroot. * Build your Buildroot system by running +make+. * Start Eclipse to develop, execute and debug your own custom applications and libraries, that will rely on the libraries built and installed by Buildroot. The Buildroot Eclipse integration installation process and usage is described in detail at https://github.com/mbats/eclipse-buildroot-bundle/wiki. ================================================ FILE: docs/manual/faq-troubleshooting.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: == Frequently Asked Questions & Troubleshooting [[faq-boot-hang-after-starting]] === The boot hangs after 'Starting network...' If the boot process seems to hang after the following messages (messages not necessarily exactly similar, depending on the list of packages selected): ------------------------ Freeing init memory: 3972K Initializing random number generator... done. Starting network... Starting dropbear sshd: generating rsa key... generating dsa key... OK ------------------------ then it means that your system is running, but didn't start a shell on the serial console. In order to have the system start a shell on your serial console, you have to go into the Buildroot configuration, in +System configuration+, modify +Run a getty (login prompt) after boot+ and set the appropriate port and baud rate in the +getty options+ submenu. This will automatically tune the +/etc/inittab+ file of the generated system so that a shell starts on the correct serial port. [[faq-no-compiler-on-target]] === Why is there no compiler on the target? It has been decided that support for the _native compiler on the target_ would be stopped from the Buildroot-2012.11 release because: * this feature was neither maintained nor tested, and often broken; * this feature was only available for Buildroot toolchains; * Buildroot mostly targets _small_ or _very small_ target hardware with limited resource onboard (CPU, ram, mass-storage), for which compiling on the target does not make much sense; * Buildroot aims at easing the cross-compilation, making native compilation on the target unnecessary. If you need a compiler on your target anyway, then Buildroot is not suitable for your purpose. In such case, you need a _real distribution_ and you should opt for something like: * http://www.openembedded.org[openembedded] * https://www.yoctoproject.org[yocto] * http://www.emdebian.org[emdebian] * https://fedoraproject.org/wiki/Architectures[Fedora] * http://en.opensuse.org/Portal:ARM[openSUSE ARM] * http://archlinuxarm.org[Arch Linux ARM] * ... [[faq-no-dev-files-on-target]] === Why are there no development files on the target? Since there is no compiler available on the target (see xref:faq-no-compiler-on-target[]), it does not make sense to waste space with headers or static libraries. Therefore, those files are always removed from the target since the Buildroot-2012.11 release. [[faq-no-doc-on-target]] === Why is there no documentation on the target? Because Buildroot mostly targets _small_ or _very small_ target hardware with limited resource onboard (CPU, ram, mass-storage), it does not make sense to waste space with the documentation data. If you need documentation data on your target anyway, then Buildroot is not suitable for your purpose, and you should look for a _real distribution_ (see: xref:faq-no-compiler-on-target[]). [[faq-why-not-visible-package]] === Why are some packages not visible in the Buildroot config menu? If a package exists in the Buildroot tree and does not appear in the config menu, this most likely means that some of the package's dependencies are not met. To know more about the dependencies of a package, search for the package symbol in the config menu (see xref:make-tips[]). Then, you may have to recursively enable several options (which correspond to the unmet dependencies) to finally be able to select the package. If the package is not visible due to some unmet toolchain options, then you should certainly run a full rebuild (see xref:make-tips[] for more explanations). [[faq-why-not-use-target-as-chroot]] === Why not use the target directory as a chroot directory? There are plenty of reasons to *not* use the target directory a chroot one, among these: * file ownerships, modes and permissions are not correctly set in the target directory; * device nodes are not created in the target directory. For these reasons, commands run through chroot, using the target directory as the new root, will most likely fail. If you want to run the target filesystem inside a chroot, or as an NFS root, then use the tarball image generated in +images/+ and extract it as root. [[faq-no-binary-packages]] === Why doesn't Buildroot generate binary packages (.deb, .ipkg...)? One feature that is often discussed on the Buildroot list is the general topic of "package management". To summarize, the idea would be to add some tracking of which Buildroot package installs what files, with the goals of: * being able to remove files installed by a package when this package gets unselected from the menuconfig; * being able to generate binary packages (ipk or other format) that can be installed on the target without re-generating a new root filesystem image. In general, most people think it is easy to do: just track which package installed what and remove it when the package is unselected. However, it is much more complicated than that: * It is not only about the +target/+ directory, but also the sysroot in +host//sysroot+ and the +host/+ directory itself. All files installed in those directories by various packages must be tracked. * When a package is unselected from the configuration, it is not sufficient to remove just the files it installed. One must also remove all its reverse dependencies (i.e. packages relying on it) and rebuild all those packages. For example, package A depends optionally on the OpenSSL library. Both are selected, and Buildroot is built. Package A is built with crypto support using OpenSSL. Later on, OpenSSL gets unselected from the configuration, but package A remains (since OpenSSL is an optional dependency, this is possible.) If only OpenSSL files are removed, then the files installed by package A are broken: they use a library that is no longer present on the target. Although this is technically doable, it adds a lot of complexity to Buildroot, which goes against the simplicity we try to stick to. * In addition to the previous problem, there is the case where the optional dependency is not even known to Buildroot. For example, package A in version 1.0 never used OpenSSL, but in version 2.0 it automatically uses OpenSSL if available. If the Buildroot .mk file hasn't been updated to take this into account, then package A will not be part of the reverse dependencies of OpenSSL and will not be removed and rebuilt when OpenSSL is removed. For sure, the .mk file of package A should be fixed to mention this optional dependency, but in the mean time, you can have non-reproducible behaviors. * The request is to also allow changes in the menuconfig to be applied on the output directory without having to rebuild everything from scratch. However, this is very difficult to achieve in a reliable way: what happens when the suboptions of a package are changed (we would have to detect this, and rebuild the package from scratch and potentially all its reverse dependencies), what happens if toolchain options are changed, etc. At the moment, what Buildroot does is clear and simple so its behaviour is very reliable and it is easy to support users. If configuration changes done in menuconfig are applied after the next make, then it has to work correctly and properly in all situations, and not have some bizarre corner cases. The risk is to get bug reports like "I have enabled package A, B and C, then ran make, then disabled package C and enabled package D and ran make, then re-enabled package C and enabled package E and then there is a build failure". Or worse "I did some configuration, then built, then did some changes, built, some more changes, built, some more changes, built, and now it fails, but I don't remember all the changes I did and in which order". This will be impossible to support. For all these reasons, the conclusion is that adding tracking of installed files to remove them when the package is unselected, or to generate a repository of binary packages, is something that is very hard to achieve reliably and will add a lot of complexity. On this matter, the Buildroot developers make this position statement: * Buildroot strives to make it easy to generate a root filesystem (hence the name, by the way.) That is what we want to make Buildroot good at: building root filesystems. * Buildroot is not meant to be a distribution (or rather, a distribution generator.) It is the opinion of most Buildroot developers that this is not a goal we should pursue. We believe that there are other tools better suited to generate a distro than Buildroot is. For example, http://openembedded.org/[Open Embedded], or https://openwrt.org/[openWRT], are such tools. * We prefer to push Buildroot in a direction that makes it easy (or even easier) to generate complete root filesystems. This is what makes Buildroot stands out in the crowd (among other things, of course!) * We believe that for most embedded Linux systems, binary packages are not necessary, and potentially harmful. When binary packages are used, it means that the system can be partially upgraded, which creates an enormous number of possible combinations of package versions that should be tested before doing the upgrade on the embedded device. On the other hand, by doing complete system upgrades by upgrading the entire root filesystem image at once, the image deployed to the embedded system is guaranteed to really be the one that has been tested and validated. [[faq-speeding-up-build]] === How to speed-up the build process? Since Buildroot often involves doing full rebuilds of the entire system that can be quite long, we provide below a number of tips to help reduce the build time: * Use a pre-built external toolchain instead of the default Buildroot internal toolchain. By using a pre-built Linaro toolchain (on ARM) or a Sourcery CodeBench toolchain (for ARM, x86, x86-64, MIPS, etc.), you will save the build time of the toolchain at each complete rebuild, approximately 15 to 20 minutes. Note that temporarily using an external toolchain does not prevent you to switch back to an internal toolchain (that may provide a higher level of customization) once the rest of your system is working; * Use the +ccache+ compiler cache (see: xref:ccache[]); * Learn about rebuilding only the few packages you actually care about (see xref:rebuild-pkg[]), but beware that sometimes full rebuilds are anyway necessary (see xref:full-rebuild[]); * Make sure you are not using a virtual machine for the Linux system used to run Buildroot. Most of the virtual machine technologies are known to cause a significant performance impact on I/O, which is really important for building source code; * Make sure that you're using only local files: do not attempt to do a build over NFS, which significantly slows down the build. Having the Buildroot download folder available locally also helps a bit. * Buy new hardware. SSDs and lots of RAM are key to speeding up the builds. * Experiment with top-level parallel build, see xref:top-level-parallel-build[]. ================================================ FILE: docs/manual/getting.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[getting-buildroot]] == Getting Buildroot Buildroot releases are made every 3 months, in February, May, August and November. Release numbers are in the format YYYY.MM, so for example 2013.02, 2014.08. Release tarballs are available at http://buildroot.org/downloads/[]. For your convenience, a https://www.vagrantup.com/[Vagrantfile] is available in `support/misc/Vagrantfile` in the Buildroot source tree to quickly set up a virtual machine with the needed dependencies to get started. If you want to setup an isolated buildroot environment on Linux or Mac Os X, paste this line onto your terminal: -------------------- curl -O https://buildroot.org/downloads/Vagrantfile; vagrant up -------------------- If you are on Windows, paste this into your powershell: -------------------- (new-object System.Net.WebClient).DownloadFile( "https://buildroot.org/downloads/Vagrantfile","Vagrantfile"); vagrant up -------------------- If you want to follow development, you can use the daily snapshots or make a clone of the Git repository. Refer to the http://buildroot.org/download[Download page] of the Buildroot website for more details. ================================================ FILE: docs/manual/how-buildroot-works.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: == How Buildroot works As mentioned above, Buildroot is basically a set of Makefiles that download, configure, and compile software with the correct options. It also includes patches for various software packages - mainly the ones involved in the cross-compilation toolchain (+gcc+, +binutils+ and +uClibc+). There is basically one Makefile per software package, and they are named with the +.mk+ extension. Makefiles are split into many different parts. * The +toolchain/+ directory contains the Makefiles and associated files for all software related to the cross-compilation toolchain: +binutils+, +gcc+, +gdb+, +kernel-headers+ and +uClibc+. * The +arch/+ directory contains the definitions for all the processor architectures that are supported by Buildroot. * The +package/+ directory contains the Makefiles and associated files for all user-space tools and libraries that Buildroot can compile and add to the target root filesystem. There is one sub-directory per package. * The +linux/+ directory contains the Makefiles and associated files for the Linux kernel. * The +boot/+ directory contains the Makefiles and associated files for the bootloaders supported by Buildroot. * The +system/+ directory contains support for system integration, e.g. the target filesystem skeleton and the selection of an init system. * The +fs/+ directory contains the Makefiles and associated files for software related to the generation of the target root filesystem image. Each directory contains at least 2 files: * +something.mk+ is the Makefile that downloads, configures, compiles and installs the package +something+. * +Config.in+ is a part of the configuration tool description file. It describes the options related to the package. The main Makefile performs the following steps (once the configuration is done): * Create all the output directories: +staging+, +target+, +build+, etc. in the output directory (+output/+ by default, another value can be specified using +O=+) * Generate the toolchain target. When an internal toolchain is used, this means generating the cross-compilation toolchain. When an external toolchain is used, this means checking the features of the external toolchain and importing it into the Buildroot environment. * Generate all the targets listed in the +TARGETS+ variable. This variable is filled by all the individual components' Makefiles. Generating these targets will trigger the compilation of the userspace packages (libraries, programs), the kernel, the bootloader and the generation of the root filesystem images, depending on the configuration. ================================================ FILE: docs/manual/introduction.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: == About Buildroot Buildroot is a tool that simplifies and automates the process of building a complete Linux system for an embedded system, using cross-compilation. In order to achieve this, Buildroot is able to generate a cross-compilation toolchain, a root filesystem, a Linux kernel image and a bootloader for your target. Buildroot can be used for any combination of these options, independently (you can for example use an existing cross-compilation toolchain, and build only your root filesystem with Buildroot). Buildroot is useful mainly for people working with embedded systems. Embedded systems often use processors that are not the regular x86 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 footnote:[BSP: Board Support Package] or SDK footnote:[SDK: Software Development Kit] on top of Buildroot. ================================================ FILE: docs/manual/known-issues.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: == Known issues * It is not possible to pass extra linker options via +BR2_TARGET_LDFLAGS+ if such options contain a +$+ sign. For example, the following is known to break: +BR2_TARGET_LDFLAGS="-Wl,-rpath=\'$ORIGIN/../lib'"+ * The +libffi+ package is not supported on the SuperH 2, nds32, and ARMv7-M architectures. * The +prboom+ package triggers a compiler failure with the SuperH 4 compiler from Sourcery CodeBench, version 2012.09. ================================================ FILE: docs/manual/legal-notice.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[legal-info]] == Legal notice and licensing === Complying with open source licenses All of the end products of Buildroot (toolchain, root filesystem, kernel, bootloaders) contain open source software, released under various licenses. Using open source software gives you the freedom to build rich embedded systems, choosing from a wide range of packages, but also imposes some obligations that you must know and honour. Some licenses require you to publish the license text in the documentation of your product. Others require you to redistribute the source code of the software to those that receive your product. The exact requirements of each license are documented in each package, and it is your responsibility (or that of your legal office) to comply with those requirements. To make this easier for you, Buildroot can collect for you some material you will probably need. To produce this material, after you have configured Buildroot with +make menuconfig+, +make xconfig+ or +make gconfig+, run: -------------------- make legal-info -------------------- Buildroot will collect legally-relevant material in your output directory, under the +legal-info/+ subdirectory. There you will find: * A +README+ file, that summarizes the produced material and contains warnings about material that Buildroot could not produce. * +buildroot.config+: this is the Buildroot configuration file that is usually produced with +make menuconfig+, and which is necessary to reproduce the build. * 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 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 marked as "unknown". * The license texts of all packages, in the +licenses/+ and +host-licenses/+ subdirectories for target and host packages respectively. If the license file(s) are not defined in Buildroot, the file is not produced and a warning in the +README+ indicates this. Please note that the aim of the +legal-info+ feature of Buildroot is to produce all the material that is somehow relevant for legal compliance with the package licenses. Buildroot does not try to produce the exact material that you must somehow make public. Certainly, more material is produced than is needed for a strict legal compliance. For example, it produces the source code for packages released under BSD-like licenses, that you are not required to redistribute in source form. Moreover, due to technical limitations, Buildroot does not produce some material that you will or may need, such as the toolchain source code for some of the external toolchains and the Buildroot source code itself. When you run +make legal-info+, Buildroot produces warnings in the +README+ file to inform you of relevant material that could not be saved. Finally, keep in mind that the output of +make legal-info+ is based on declarative statements in each of the packages recipes. The Buildroot developers try to do their best to keep those declarative statements as accurate as possible, to the best of their knowledge. However, it is very well possible that those declarative statements are not all fully accurate nor exhaustive. You (or your legal department) _have_ to check the output of +make legal-info+ before using it as your own compliance delivery. See the _NO WARRANTY_ clauses (clauses 11 and 12) in the +COPYING+ file at the root of the Buildroot distribution. [[legal-info-buildroot]] === Complying with the Buildroot license Buildroot itself is an open source software, released under the http://www.gnu.org/licenses/old-licenses/gpl-2.0.html[GNU General Public License, version 2] or (at your option) any later version, with the exception of the package patches detailed below. However, being a build system, it is not normally part of the end product: if you develop the root filesystem, kernel, bootloader or toolchain for a device, the code of Buildroot is only present on the development machine, not in the device storage. Nevertheless, the general view of the Buildroot developers is that you should release the Buildroot source code along with the source code of other packages when releasing a product that contains GPL-licensed software. This is because the http://www.gnu.org/licenses/old-licenses/gpl-2.0.html[GNU GPL] defines the "'complete source code'" for an executable work as "'all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable'". Buildroot is part of the 'scripts used to control compilation and installation of the executable', and as such it is considered part of the material that must be redistributed. Keep in mind that this is only the Buildroot developers' opinion, and you should consult your legal department or lawyer in case of any doubt. ==== Patches to packages Buildroot also bundles patch files, which are applied to the sources of the various packages. Those patches are not covered by the license of Buildroot. Instead, they are covered by the license of the software to which the patches are applied. When said software is available under multiple licenses, the Buildroot patches are only provided under the publicly accessible licenses. See xref:patch-policy[] for the technical details. ================================================ FILE: docs/manual/make-tips.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[make-tips]] === 'make' tips This is a collection of tips that help you make the most of Buildroot. .Display all commands executed by make: -------------------- $ make V=1 -------------------- .Display the list of boards with a defconfig: -------------------- $ make list-defconfigs -------------------- .Display all available targets: -------------------- $ make help -------------------- Not all targets are always available, some settings in the +.config+ file may hide some targets: * +busybox-menuconfig+ only works when +busybox+ is enabled; * +linux-menuconfig+ and +linux-savedefconfig+ only work when +linux+ is enabled; * +uclibc-menuconfig+ is only available when the uClibc C library is selected in the internal toolchain backend; * +barebox-menuconfig+ and +barebox-savedefconfig+ only work when the +barebox+ bootloader is enabled. * +uboot-menuconfig+ and +uboot-savedefconfig+ only work when the +U-Boot+ bootloader is enabled. .Cleaning: Explicit cleaning is required when any of the architecture or toolchain configuration options are changed. To delete all build products (including build directories, host, staging and target trees, the images and the toolchain): -------------------- $ make clean -------------------- .Generating the manual: The present manual sources are located in the 'docs/manual' directory. To generate the manual: --------------------------------- $ make manual-clean $ make manual --------------------------------- The manual outputs will be generated in 'output/docs/manual'. .Notes - A few tools are required to build the documentation (see: xref:requirement-optional[]). .Resetting Buildroot for a new target: To delete all build products as well as the configuration: -------------------- $ make distclean -------------------- .Notes If +ccache+ is enabled, running +make clean+ or +distclean+ does not empty the compiler cache used by Buildroot. To delete it, refer to xref:ccache[]. .Dumping the internal make variables: One can dump the variables known to make, along with their values: ---- $ make -s printvars VARS='VARIABLE1 VARIABLE2' VARIABLE1=value_of_variable VARIABLE2=value_of_variable ---- It is possible to tweak the output using some variables: - +VARS+ will limit the listing to variables which names match the specified make-patterns - this must be set else nothing is printed - +QUOTED_VARS+, if set to +YES+, will single-quote the value - +RAW_VARS+, if set to +YES+, will print the unexpanded value For example: ---- $ make -s printvars VARS=BUSYBOX_%DEPENDENCIES BUSYBOX_DEPENDENCIES=skeleton toolchain BUSYBOX_FINAL_ALL_DEPENDENCIES=skeleton toolchain BUSYBOX_FINAL_DEPENDENCIES=skeleton toolchain BUSYBOX_FINAL_PATCH_DEPENDENCIES= BUSYBOX_RDEPENDENCIES=ncurses util-linux ---- ---- $ make -s printvars VARS=BUSYBOX_%DEPENDENCIES QUOTED_VARS=YES BUSYBOX_DEPENDENCIES='skeleton toolchain' BUSYBOX_FINAL_ALL_DEPENDENCIES='skeleton toolchain' BUSYBOX_FINAL_DEPENDENCIES='skeleton toolchain' BUSYBOX_FINAL_PATCH_DEPENDENCIES='' BUSYBOX_RDEPENDENCIES='ncurses util-linux' ---- ---- $ make -s printvars VARS=BUSYBOX_%DEPENDENCIES RAW_VARS=YES BUSYBOX_DEPENDENCIES=skeleton toolchain BUSYBOX_FINAL_ALL_DEPENDENCIES=$(sort $(BUSYBOX_FINAL_DEPENDENCIES) $(BUSYBOX_FINAL_PATCH_DEPENDENCIES)) BUSYBOX_FINAL_DEPENDENCIES=$(sort $(BUSYBOX_DEPENDENCIES)) BUSYBOX_FINAL_PATCH_DEPENDENCIES=$(sort $(BUSYBOX_PATCH_DEPENDENCIES)) BUSYBOX_RDEPENDENCIES=ncurses util-linux ---- The output of quoted variables can be reused in shell scripts, for example: ---- $ eval $(make -s printvars VARS=BUSYBOX_DEPENDENCIES QUOTED_VARS=YES) $ echo $BUSYBOX_DEPENDENCIES skeleton toolchain ---- ================================================ FILE: docs/manual/makedev-syntax.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[makedev-syntax]] == 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 line; the fields are: |=========================================================== |name |type |mode |uid |gid |major |minor |start |inc |count |=========================================================== There are a few non-trivial blocks: - +name+ is the path to the file you want to create/modify - +type+ is the type of the file, being one of: * f: a regular file * d: a directory * r: a directory recursively * c: a character device file * b: a block device file * p: a named pipe - +mode+ are the usual permissions settings (only numerical values are allowed) - +uid+ and +gid+ are the UID and GID to set on this file; can be either numerical values or actual names - +major+ and +minor+ are here for device files, set to +-+ for other files - +start+, +inc+ and +count+ are for when you want to create a batch of files, and can be reduced to a loop, beginning at +start+, incrementing its counter by +inc+ until it reaches +count+ 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 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 ---- 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 ---- ================================================ FILE: docs/manual/makeusers-syntax.txt ================================================ // -*- mode:doc -*- ; // vim: set syntax=asciidoc: [[makeuser-syntax]] == 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. It can not be +root+, and must be unique. If set to +-+, then just a group will be created. - +uid+ is the desired UID for the user. It must be unique, and not +0+. If set to +-1+, then a unique UID will be computed by Buildroot in the range [1000...1999] - +group+ is the desired name for the user's main group. It can not be +root+. If the group does not exist, it will be created. - +gid+ is the desired GID for the user's main group. It must be unique, and not +0+. If set to +-1+, and the group does not already exist, then a unique GID will be computed by Buildroot in the range [1000..1999] - +password+ is the crypt(3)-encoded password. If prefixed with +!+, then login is disabled. If prefixed with +=+, then it is interpreted as clear-text, and will be crypt-encoded (using MD5). If prefixed with +!=+, then the password will be crypt-encoded (using MD5) and login will be disabled. If set to +*+, then login is not allowed. If set to +-+, then no password value will be set. - +home+ is the desired home directory for the user. If set to '-', no home directory will be created, and the user's home will be +/+. Explicitly setting +home+ to +/+ is not allowed. - +shell+ is the desired shell for the user. If set to +-+, then +/bin/false+ is set as the user's shell. - +groups+ is the comma-separated list of additional groups the user should be part of. If set to +-+, then the user will be a member of no additional group. Missing groups will be created with an arbitrary +gid+. - +comment+ (aka https://en.wikipedia.org/wiki/Gecos_field[GECOS] field) is an almost-free-form text. There are a few restrictions on the content of each field: * except for +comment+, all fields are mandatory. * except for +comment+, fields may not contain spaces. * no field may contain a colon (+:+). If +home+ is not +-+, then the home directory, and all files below, will belong to the user and its main group. Examples: ---- foo -1 bar -1 !=blabla /home/foo /bin/sh alpha,bravo Foo user ---- This will create this user: - +username+ (aka login name) is: +foo+ - +uid+ is computed by Buildroot - main +group+ is: +bar+ - main group +gid+ is computed by Buildroot - clear-text +password+ is: +blabla+, will be crypt(3)-encoded, and login is disabled. - +home+ is: +/home/foo+ - +shell+ is: +/bin/sh+ - +foo+ is also a member of +groups+: +alpha+ and +bravo+ - +comment+ is: +Foo user+ ---- test 8000 wheel -1 = - /bin/sh - Test user ---- This will create this user: - +username+ (aka login name) is: +test+ - +uid+ is : +8000+ - main +group+ is: +wheel+ - main group +gid+ is computed by Buildroot, and will use the value defined in the rootfs skeleton - +password+ is empty (aka no password). - +home+ is +/+ but will not belong to +test+ - +shell+ is: +/bin/sh+ - +test+ is not a member of any additional +groups+ - +comment+ is: +Test user+ ================================================ FILE: docs/manual/manual.mk ================================================ ################################################################################ # # The Buildroot manual # ################################################################################ MANUAL_SOURCES = $(sort $(wildcard docs/manual/*.txt) $(wildcard docs/images/*)) MANUAL_RESOURCES = $(TOPDIR)/docs/images $(eval $(call asciidoc-document)) ================================================ FILE: docs/manual/manual.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: = The Buildroot user manual :toc: Buildroot {sys:echo $\{BR2_VERSION%%-git*\}} manual generated on {localdate} {localtime} from git revision {sys:git rev-parse --short HEAD} The Buildroot manual is written by the Buildroot developers. It is licensed under the GNU General Public License, version 2. Refer to the http://git.buildroot.org/buildroot/tree/COPYING?id={sys:git rev-parse HEAD}[COPYING] file in the Buildroot sources for the full text of this license. Copyright (C) 2004-2020 The Buildroot developers image::logo.png[] = Getting started include::introduction.txt[] include::prerequisite.txt[] include::getting.txt[] include::quickstart.txt[] include::resources.txt[] = User guide include::configure.txt[] include::configure-other-components.txt[] include::common-usage.txt[] include::customize.txt[] include::selinux-support.txt[] include::faq-troubleshooting.txt[] include::known-issues.txt[] include::legal-notice.txt[] include::beyond-buildroot.txt[] = Developer guide include::how-buildroot-works.txt[] include::writing-rules.txt[] include::adding-board-support.txt[] include::adding-packages.txt[] include::patch-policy.txt[] include::download-infra.txt[] include::debugging-buildroot.txt[] include::contribute.txt[] include::developers.txt[] include::release-engineering.txt[] = Appendix include::appendix.txt[] ================================================ FILE: docs/manual/migrating.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[migrating-from-ol-versions]] == Migrating from older Buildroot versions Some versions have introduced backward incompatibilities. This section explains those incompatibilities, and for each explains what to do to complete the migration. [[migrating-approach]] === General approach To migrate from an older Buildroot version, take the following steps. . For all your configurations, do a build in the old Buildroot environment. Run +make graph-size+. Save +graphs/file-size-stats.csv+ in a different location. Run +make clean+ to remove the rest. . Review the specific migration notes below and make the required adaptations to external packages and custom build scripts. . Update Buildroot. . Run +make menuconfig+ starting from the existing +.config+. . If anything is enabled in the Legacy menu, check its help text, unselect it, and save the configuration. . For more details, review the git commit messages for the packages that you need. Change into the +packages+ directory and run +git log .. -- +. . Build in the new Buildroot environment. . Fix build issues in external packages (usually due to updated dependencies). . Run +make graph-size+. . Compare the new +file-size-stats.csv+ with the original one, to check if no required files have disappeared and if no new big unneeded files have appeared. . For configuration (and other) files in a custom overlay that overwrite files created by Buildroot, check if there are changes in the Buildroot-generated file that need to be propagated to your custom file. [[br2-external-converting]] === Migrating to 2016.11 Before Buildroot 2016.11, it was possible to use only one br2-external tree at once. With Buildroot 2016.11 came the possibility to use more than one simultaneously (for details, see xref:outside-br-custom[]). This however means that older br2-external trees are not usable as-is. A minor change has to be made: adding a name to your br2-external tree. This can be done very easily in just a few steps: * First, create a new file named +external.desc+, at the root of your br2-external tree, with a single line defining the name of your br2-external tree: + ---- $ echo 'name: NAME_OF_YOUR_TREE' >external.desc ---- + .Note Be careful when choosing a name: It has to be unique and be made with only ASCII characters from the set +[A-Za-z0-9_]+. * Then, change every occurence of +BR2_EXTERNAL+ in your br2-external tree with the new variable: + ---- $ find . -type f | xargs sed -i 's/BR2_EXTERNAL/BR2_EXTERNAL_NAME_OF_YOUR_TREE_PATH/g' ---- Now, your br2-external tree can be used with Buildroot 2016.11 onward. .Note: This change makes your br2-external tree incompatible with Buildroot before 2016.11. [[migrating-host-usr]] === Migrating to 2017.08 Before Buildroot 2017.08, host packages were installed in +$(HOST_DIR)/usr+ (with e.g. the autotools' +--prefix=$(HOST_DIR)/usr+). With Buildroot 2017.08, they are now installed directly in +$(HOST_DIR)+. Whenever a package installs an executable that is linked with a library in +$(HOST_DIR)/lib+, it must have an RPATH pointing to that directory. An RPATH pointing to +$(HOST_DIR)/usr/lib+ is no longer accepted. ================================================ FILE: docs/manual/package-make-target.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[pkg-build-steps]] ==== Package-specific _make_ targets Running +make + builds and installs that particular package and its dependencies. For packages relying on the Buildroot infrastructure, there are numerous special make targets that can be called independently like this: ------------ make - ------------ The package build targets are (in the order they are executed): [width="90%",cols="^1,4",options="header"] |=================================================== | command/target | Description | +source+ | Fetch the source (download the tarball, clone the source repository, etc) | +depends+ | Build and install all dependencies required to build the package | +extract+ | Put the source in the package build directory (extract the tarball, copy the source, etc) | +patch+ | Apply the patches, if any | +configure+ | Run the configure commands, if any | +build+ | Run the compilation commands | +install-staging+ | *target package:* Run the installation of the package in the staging directory, if necessary | +install-target+ | *target package:* Run the installation of the package in the target directory, if necessary | +install+ | *target package:* Run the 2 previous installation commands *host package:* Run the installation of the package in the host directory |=================================================== Additionally, there are some other useful make targets: [width="90%",cols="^1,4",options="header"] |=================================================== | command/target | Description | +show-depends+ | Displays the first-order dependencies required to build the package | +show-recursive-depends+ | Recursively displays the dependencies required to build the package | +show-rdepends+ | Displays the first-order reverse dependencies of the package (i.e packages that directly depend on it) | +show-recursive-rdepends+ | Recursively displays the reverse dependencies of the package (i.e the packages that depend on it, directly or indirectly) | +graph-depends+ | Generate a dependency graph of the package, in the context of the current Buildroot configuration. See xref:graph-depends[this section] for more details about dependency graphs. | +graph-rdepends+ | Generate a graph of this package reverse dependencies (i.e the packages that depend on it, directly or indirectly) | +dirclean+ | Remove the whole package build directory | +reinstall+ | Re-run the install commands | +rebuild+ | Re-run the compilation commands - this only makes sense when using the +OVERRIDE_SRCDIR+ feature or when you modified a file directly in the build directory | +reconfigure+ | Re-run the configure commands, then rebuild - this only makes sense when using the +OVERRIDE_SRCDIR+ feature or when you modified a file directly in the build directory |=================================================== ================================================ FILE: docs/manual/patch-policy.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[patch-policy]] == Patching a package While integrating a new package or updating an existing one, it may be necessary to patch the source of the software to get it cross-built within Buildroot. Buildroot offers an infrastructure to automatically handle this during the builds. It supports three ways of applying patch sets: downloaded patches, patches supplied within buildroot and patches located in a user-defined global patch directory. === Providing patches ==== Downloaded If it is necessary to apply a patch that is available for download, then add it to the +_PATCH+ variable. If an entry contains +://+, then Buildroot will assume it is a full URL and download the patch from this location. Otherwise, Buildroot will assume that the patch should be downloaded from +_SITE+. It can be a single patch, or a tarball containing a patch series. Like for all downloads, a hash should be added to the +.hash+ file. This method is typically used for packages from Debian. ==== Within Buildroot Most patches are provided within Buildroot, in the package directory; these typically aim to fix cross-compilation, libc support, or other such issues. These patch files should be named +-.patch+. .Notes - The patch files coming with Buildroot should not contain any package version reference in their filename. - The field ++ in the patch file name refers to the 'apply order', and shall start at 1; It is preferred to pad the number with zeros up to 4 digits, like 'git-format-patch' does. E.g.: +0001-foobar-the-buz.patch+ - Previously, it was mandatory for patches to be prefixed with the name of the package, like +--.patch+, but that is no longer the case. Existing packages will be fixed as time passes. 'Do not prefix patches with the package name.' - Previously, a +series+ file, as used by +quilt+, could also be added in the package directory. In that case, the +series+ file defines the patch application order. This is deprecated, and will be removed in the future. 'Do not use a series file.' ==== Global patch directory The +BR2_GLOBAL_PATCH_DIR+ configuration file option can be used to specify a space separated list of one or more directories containing global package patches. See xref:customize-patches[] for details. [[patch-apply-order]] === How patches are applied . Run the +_PRE_PATCH_HOOKS+ commands if defined; . Cleanup the build directory, removing any existing +*.rej+ files; . If +_PATCH+ is defined, then patches from these tarballs are applied; . If there are some +*.patch+ files in the package's Buildroot directory or in a package subdirectory named ++, then: + * 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'. . 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. . Run the +_POST_PATCH_HOOKS+ commands if defined. If something goes wrong in the steps _3_ or _4_, then the build fails. === Format and licensing of the package patches Patches are released under the same license as the software they apply to (see xref:legal-info-buildroot[]). A message explaining what the patch does, and why it is needed, should be added in the header commentary of the patch. You should add a +Signed-off-by+ statement in the header of the each patch to help with keeping track of the changes and to certify that the patch is released under the same license as the software that is modified. If the software is under version control, it is recommended to use the upstream SCM software to generate the patch set. Otherwise, concatenate the header with the output of the +diff -purN package-version.orig/ package-version/+ command. If you update an existing patch (e.g. when bumping the package version), make sure the existing From header and Signed-off-by tags are not removed, but do update the rest of the patch comment when appropriate. At the end, the patch should look like: --------------- configure.ac: add C++ support test Signed-off-by: John Doe --- configure.ac.orig +++ configure.ac @@ -40,2 +40,12 @@ AC_PROG_MAKE_SET + +AC_CACHE_CHECK([whether the C++ compiler works], + [rw_cv_prog_cxx_works], + [AC_LANG_PUSH([C++]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], + [rw_cv_prog_cxx_works=yes], + [rw_cv_prog_cxx_works=no]) + AC_LANG_POP([C++])]) + +AM_CONDITIONAL([CXX_WORKS], [test "x$rw_cv_prog_cxx_works" = "xyes"]) --------------- === Integrating patches found on the Web When integrating a patch of which you are not the author, you have to add a few things in the header of the patch itself. Depending on whether the patch has been obtained from the project repository itself, or from somewhere on the web, add one of the following tags: --------------- Backported from: --------------- or --------------- Fetch from: --------------- It is also sensible to add a few words about any changes to the patch that may have been necessary. ================================================ FILE: docs/manual/prerequisite.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[requirement]] == 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 between distributions). [[requirement-mandatory]] === Mandatory packages * Build tools: ** +which+ ** +sed+ ** +make+ (version 3.81 or any later) ** +binutils+ ** +build-essential+ (only for Debian based systems) ** +gcc+ (version 4.8 or any later) ** `g++` (version 4.8 or any later) ** +bash+ ** +patch+ ** +gzip+ ** +bzip2+ ** +perl+ (version 5.8.7 or any later) ** +tar+ ** +cpio+ ** +unzip+ ** +rsync+ ** +file+ (must be in +/usr/bin/file+) ** +bc+ * Source fetching tools: ** +wget+ [[requirement-optional]] === Optional packages * Recommended dependencies: + Some features or utilities in Buildroot, like the legal-info, or the graph generation tools, have additional dependencies. Although they are not mandatory for a simple build, they are still highly recommended: + ** +python+ (version 2.7 or any later) * Configuration interface dependencies: + For these libraries, you need to install both runtime and development data, which in many distributions are packaged separately. The development packages typically have a _-dev_ or _-devel_ suffix. + ** +ncurses5+ to use the 'menuconfig' interface ** +qt5+ to use the 'xconfig' interface ** +glib2+, +gtk2+ and +glade2+ to use the 'gconfig' interface * Source fetching tools: + In the official tree, most of the package sources are retrieved using +wget+ from _ftp_, _http_ or _https_ locations. A few packages are only available through a version control system. Moreover, Buildroot is capable of downloading sources via other tools, like +rsync+ or +scp+ (refer to xref:download-infra[] for more details). If you enable packages using any of these methods, you will need to install the corresponding tool on the host system: + ** +bazaar+ ** +cvs+ ** +git+ ** +mercurial+ ** +rsync+ ** +scp+ ** +subversion+ * Java-related packages, if the Java Classpath needs to be built for the target system: ** The +javac+ compiler ** The +jar+ tool * Documentation generation tools: ** +asciidoc+, version 8.6.3 or higher ** +w3m+ ** +python+ with the +argparse+ module (automatically present in 2.7+ and 3.2+) ** +dblatex+ (required for the pdf manual only) * Graph generation tools: ** +graphviz+ to use 'graph-depends' and '-graph-depends' ** +python-matplotlib+ to use 'graph-build' ================================================ FILE: docs/manual/quickstart.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: == Buildroot quick start *Important*: you can and should *build everything as a normal user*. There is no need to be root to configure and use Buildroot. By running all commands as a regular user, you protect your system against packages behaving badly during compilation and installation. The first step when using Buildroot is to create a configuration. Buildroot has a nice configuration tool similar to the one you can find in the http://www.kernel.org/[Linux kernel] or in http://www.busybox.net/[BusyBox]. From the buildroot directory, run -------------------- $ make menuconfig -------------------- for the original curses-based configurator, or -------------------- $ make nconfig -------------------- for the new curses-based configurator, or -------------------- $ make xconfig -------------------- for the Qt-based configurator, or -------------------- $ make gconfig -------------------- for the GTK-based configurator. All of these "make" commands will need to build a configuration utility (including the interface), so you may need to install "development" packages for relevant libraries used by the configuration utilities. Refer to xref:requirement[] for more details, specifically the xref:requirement-optional[optional requirements] to get the dependencies of your favorite interface. For each menu entry in the configuration tool, you can find associated help that describes the purpose of the entry. Refer to xref:configure[] for details on some specific configuration aspects. Once everything is configured, the configuration tool generates a +.config+ file that contains the entire configuration. This file will be read by the top-level Makefile. To start the build process, simply run: -------------------- $ make -------------------- By default, Buildroot does not support top-level parallel build, so running +make -jN+ is not necessary. There is however experimental support for top-level parallel build, see xref:top-level-parallel-build[]. The `make` command will generally perform the following steps: * download source files (as required); * configure, build and install the cross-compilation toolchain, or simply import an external toolchain; * configure, build and install selected target packages; * build a kernel image, if selected; * build a bootloader image, if selected; * create a root filesystem in selected formats. Buildroot output is stored in a single directory, +output/+. This directory contains several subdirectories: * +images/+ where all the images (kernel image, bootloader and root filesystem images) are stored. These are the files you need to put on your target system. * +build/+ where all the components are built (this includes tools needed by Buildroot on the host and packages compiled for the target). This directory contains one subdirectory for each of these components. * +host/+ contains both the tools built for the host, and the sysroot of the target toolchain. The former is an installation of tools compiled for the host that are needed for the proper execution of Buildroot, including the cross-compilation toolchain. The latter is a hierarchy similar to a root filesystem hierarchy. It contains the headers and libraries of all user-space packages that provide and install libraries used by other packages. However, this directory is 'not' intended to be the root filesystem for the target: it contains a lot of development files, unstripped binaries and libraries that make it far too big for an embedded system. These development files are used to compile libraries and applications for the target that depend on other libraries. * +staging/+ is a symlink to the target toolchain sysroot inside +host/+, which exists for backwards compatibility. * +target/+ which contains 'almost' the complete root filesystem for the target: everything needed is present except the device files in +/dev/+ (Buildroot can't create them because Buildroot doesn't run as root and doesn't want to run as root). Also, it doesn't have the correct permissions (e.g. setuid for the busybox binary). Therefore, this directory *should not be used on your target*. Instead, you should use one of the images built in the +images/+ directory. If you need an extracted image of the root filesystem for booting over NFS, then use the tarball image generated in +images/+ and extract it as root. Compared to +staging/+, +target/+ contains only the files and libraries needed to run the selected target applications: the development files (headers, etc.) are not present, the binaries are stripped. These commands, +make menuconfig|nconfig|gconfig|xconfig+ and +make+, are the basic ones that allow to easily and quickly generate images fitting your needs, with all the features and applications you enabled. More details about the "make" command usage are given in xref:make-tips[]. ================================================ FILE: docs/manual/rebuilding-packages.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[full-rebuild]] === Understanding when a full rebuild is necessary Buildroot does not attempt to detect what parts of the system should be rebuilt when the system configuration is changed through +make menuconfig+, +make xconfig+ or one of the other configuration tools. In some cases, Buildroot should rebuild the entire system, in some cases, only a specific subset of packages. But detecting this in a completely reliable manner is very difficult, and therefore the Buildroot developers have decided to simply not attempt to do this. Instead, it is the responsibility of the user to know when a full rebuild is necessary. As a hint, here are a few rules of thumb that can help you understand how to work with Buildroot: * When the target architecture configuration is changed, a complete rebuild is needed. Changing the architecture variant, the binary format or the floating point strategy for example has an impact on the entire system. * When the toolchain configuration is changed, a complete rebuild generally is needed. Changing the toolchain configuration often involves changing the compiler version, the type of C library or its configuration, or some other fundamental configuration item, and these changes have an impact on the entire system. * When an additional package is added to the configuration, a full rebuild is not necessarily needed. Buildroot will detect that this package has never been built, and will build it. However, if this package is a library that can optionally be used by packages that have already been built, Buildroot will not automatically rebuild those. Either you know which packages should be rebuilt, and you can rebuild them manually, or you should do a full rebuild. For example, let's suppose you have built a system with the +ctorrent+ package, but without +openssl+. Your system works, but you realize you would like to have SSL support in +ctorrent+, so you enable the +openssl+ package in Buildroot configuration and restart the build. Buildroot will detect that +openssl+ should be built and will be build it, but it will not detect that +ctorrent+ should be rebuilt to benefit from +openssl+ to add OpenSSL support. You will either have to do a full rebuild, or rebuild +ctorrent+ itself. * When a package is removed from the configuration, Buildroot does not do anything special. It does not remove the files installed by this package from the target root filesystem or from the toolchain _sysroot_. A full rebuild is needed to get rid of this package. However, generally you don't necessarily need this package to be removed right now: you can wait for the next lunch break to restart the build from scratch. * When the sub-options of a package are changed, the package is not automatically rebuilt. After making such changes, rebuilding only this package is often sufficient, unless enabling the package sub-option adds some features to the package that are useful for another package which has already been built. Again, Buildroot does not track when a package should be rebuilt: once a package has been built, it is never rebuilt unless explicitly told to do so. * When a change to the root filesystem skeleton is made, a full rebuild is needed. However, when changes to the root filesystem overlay, a post-build script or a post-image script are made, there is no need for a full rebuild: a simple +make+ invocation will take the changes into account. * When a package listed in +FOO_DEPENDENCIES+ is rebuilt or removed, the package +foo+ is not automatically rebuilt. For example, if a package +bar+ is listed in +FOO_DEPENDENCIES+ with +FOO_DEPENDENCIES = bar+ and the configuration of the +bar+ package is changed, the configuration change would not result in a rebuild of package +foo+ automatically. In this scenario, you may need to either rebuild any packages in your build which reference +bar+ in their +DEPENDENCIES+, or perform a full rebuild to ensure any +bar+ dependent packages are up to date. Generally speaking, when you're facing a build error and you're unsure of the potential consequences of the configuration changes you've made, do a full rebuild. If you get the same build error, then you are sure that the error is not related to partial rebuilds of packages, and if this error occurs with packages from the official Buildroot, do not hesitate to report the problem! As your experience with Buildroot progresses, you will progressively learn when a full rebuild is really necessary, and you will save more and more time. For reference, a full rebuild is achieved by running: --------------- $ make clean all --------------- [[rebuild-pkg]] === Understanding how to rebuild packages One of the most common questions asked by Buildroot users is how to rebuild a given package or how to remove a package without rebuilding everything from scratch. Removing a package is unsupported by Buildroot without rebuilding from scratch. This is because Buildroot doesn't keep track of which package installs what files in the +output/staging+ and +output/target+ directories, or which package would be compiled differently depending on the availability of another package. The easiest way to rebuild a single package from scratch is to remove its build directory in +output/build+. Buildroot will then re-extract, re-configure, re-compile and re-install this package from scratch. You can ask buildroot to do this with the +make -dirclean+ command. On the other hand, if you only want to restart the build process of a package from its compilation step, you can run +make -rebuild+. It will restart the compilation and installation of the package, but not from scratch: it basically re-executes +make+ and +make install+ inside the package, so it will only rebuild files that changed. If you want to restart the build process of a package from its configuration step, you can run +make -reconfigure+. It will restart the configuration, compilation and installation of the package. While +-rebuild+ implies +-reinstall+ and +-reconfigure+ implies +-rebuild+, these targets as well as ++ only act on the said package, and do not trigger re-creating the root filesystem image. If re-creating the root filesystem in necessary, one should in addition run +make+ or +make all+. Internally, Buildroot creates so-called _stamp files_ to keep track of which build steps have been completed for each package. They are stored in the package build directory, +output/build/-/+ and are named +.stamp_+. The commands detailed above simply manipulate these stamp files to force Buildroot to restart a specific set of steps of a package build process. Further details about package special make targets are explained in xref:pkg-build-steps[]. ================================================ FILE: docs/manual/release-engineering.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[RELENG]] == Release Engineering === Releases The Buildroot project makes quarterly releases with monthly bugfix releases. The first release of each year is a long term support release, LTS. - Quarterly releases: 2020.02, 2020.05, 2020.08, and 2020.11 - Bugfix releases: 2020.02.1, 2020.02.2, ... - LTS releases: 2020.02, 2021.02, ... Releases are supported until the first bugfix release of the next release, e.g., 2020.05.x is EOL when 2020.08.1 is released. LTS releases are supported until the first bugfix release of the next LTS, e.g., 2020.02.x is supported until 2021.02.1 is released. === Development Each release cycle consist of two months of development on the +master+ branch and one month stabilization before the release is made. During this phase no new features are added to +master+, only bugfixes. The stabilization phase starts with tagging +-rc1+, and every week until the release, another release candidate is tagged. To handle new features and version bumps during the stabilization phase, a +next+ branch may be created for these features. Once the current release has been made, the +next+ branch is merged into +master+ and the development cycle for the next release continues there. ================================================ FILE: docs/manual/resources.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[community-resources]] == Community resources Like any open source project, Buildroot has different ways to share information in its community and outside. Each of those ways may interest you if you are looking for some help, want to understand Buildroot or contribute to the project. Mailing List:: + Buildroot has a mailing list for discussion and development. It is the main method of interaction for Buildroot users and developers. + Only subscribers to the Buildroot mailing list are allowed to post to this list. You can subscribe via the http://lists.buildroot.org/mailman/listinfo/buildroot[mailing list info page]. + Mails that are sent to the mailing list are also available in the mailing list archives, available through http://lists.buildroot.org/pipermail/buildroot[Mailman] or at https://lore.kernel.org/buildroot/[lore.kernel.org]. IRC:: + The Buildroot IRC channel irc://irc.oftc.net/#buildroot[#buildroot] is hosted on https://www.oftc.net/WebChat/[OFTC]. It is a useful place to ask quick questions or discuss on certain topics. + When asking for help on IRC, share relevant logs or pieces of code using a code sharing website, such as https://paste.ack.tf/. + Note that for certain questions, posting to the mailing list may be better as it will reach more people, both developers and users. Bug tracker:: + Bugs in Buildroot can be reported via the mailing list or alternatively via the https://bugs.buildroot.org/buglist.cgi?product=buildroot[Buildroot bugtracker]. Please refer to xref:reporting-bugs[] before creating a bug report. Wiki:: + http://elinux.org/Buildroot[The Buildroot wiki page] is hosted on the http://elinux.org[eLinux] wiki. It contains some useful links, an overview of past and upcoming events, and a TODO list. Patchwork:: + Patchwork is a web-based patch tracking system designed to facilitate the contribution and management of contributions to an open-source project. Patches that have been sent to a mailing list are \'caught' by the system, and appear on a web page. Any comments posted that reference the patch are appended to the patch page too. For more information on Patchwork see http://jk.ozlabs.org/projects/patchwork/[]. + Buildroot's Patchwork website is mainly for use by Buildroot's maintainer to ensure patches aren't missed. It is also used by Buildroot patch reviewers (see also xref:apply-patches-patchwork[]). However, since the website exposes patches and their corresponding review comments in a clean and concise web interface, it can be useful for all Buildroot developers. + The Buildroot patch management interface is available at http://patchwork.buildroot.org[]. ================================================ FILE: docs/manual/selinux-support.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: [[selinux]] == Using SELinux in Buildroot https://selinuxproject.org[SELinux] is a Linux kernel security module enforcing access control policies. In addition to the traditional file permissions and access control lists, +SELinux+ allows to write rules for users or processes to access specific functions of resources (files, sockets...). _SELinux_ has three modes of operation: * _Disabled_: the policy is not applied * _Permissive_: the policy is applied, and non-authorized actions are simply logged. This mode is often used for troubleshooting SELinux issues. * _Enforcing_: the policy is applied, and non-authorized actions are denied In Buildroot the mode of operation is controlled by the +BR2_PACKAGE_REFPOLICY_POLICY_STATE_*+ configuration options. The Linux kernel also has various configuration options that affect how +SELinux+ is enabled (see +security/selinux/Kconfig+ in the Linux kernel sources). By default in Buildroot the +SELinux+ policy is provided by the upstream https://github.com/SELinuxProject/refpolicy[refpolicy] project, enabled with +BR2_PACKAGE_REFPOLICY+. [[enabling-selinux]] === Enabling SELinux support To have proper support for +SELinux+ in a Buildroot generated system, the following configuration options must be enabled: * +BR2_PACKAGE_LIBSELINUX+ * +BR2_PACKAGE_REFPOLICY+ In addition, your filesystem image format must support extended attributes. [[selinux-policy-tweaking]] === SELinux policy tweaking The +SELinux refpolicy+ contains modules that can be enabled or disabled when being built. Each module provide a number of +SELinux+ rules. In Buildroot the non-base modules are disabled by default and several ways to enable such modules are provided: - Packages can enable a list of +SELinux+ modules within the +refpolicy+ using the +_SELINUX_MODULES+ variable. - Packages can provide additional +SELinux+ modules by putting them (.fc, .if and .te files) in +package//selinux/+. - Extra +SELinux+ modules can be added in directories pointed by the +BR2_REFPOLICY_EXTRA_MODULES_DIRS+ configuration option. - Additional modules in the +refpolicy+ can be enabled if listed in the +BR2_REFPOLICY_EXTRA_MODULES_DEPENDENCIES+ configuration option. Buildroot also allows to completely override the +refpolicy+. This allows to provide a full custom policy designed specifically for a given system. When going this way, all of the above mechanisms are disabled: no extra +SElinux+ module is added to the policy, and all the available modules within the custom policy are enabled and built into the final binary policy. The custom policy must be a fork of the official https://github.com/SELinuxProject/refpolicy[refpolicy]. In order to fully override the +refpolicy+ the following configuration variables have to be set: - +BR2_PACKAGE_REFPOLICY_CUSTOM_GIT+ - +BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_URL+ - +BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_VERSION+ ================================================ FILE: docs/manual/using-buildroot-debugger.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: ==== Using +gdb+ in Buildroot Buildroot allows to do cross-debugging, where the debugger runs on the build machine and communicates with +gdbserver+ on the target to control the execution of the program. To achieve this: * If you are using an _internal toolchain_ (built by Buildroot), you must enable +BR2_PACKAGE_HOST_GDB+, +BR2_PACKAGE_GDB+ and +BR2_PACKAGE_GDB_SERVER+. This ensures that both the cross gdb and gdbserver get built, and that gdbserver gets installed to your target. * If you are using an _external toolchain_, you should enable +BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY+, which will copy the gdbserver included with the external toolchain to the target. If your external toolchain does not have a cross gdb or gdbserver, it is also possible to let Buildroot build them, by enabling the same options as for the _internal toolchain backend_. Now, to start debugging a program called +foo+, you should run on the target: ---------------------------- gdbserver :2345 foo ---------------------------- This will cause +gdbserver+ to listen on TCP port 2345 for a connection from the cross gdb. Then, on the host, you should start the cross gdb using the following command line: ---------------------------- /output/host/bin/-gdb -ix /output/staging/usr/share/buildroot/gdbinit foo ---------------------------- Of course, +foo+ must be available in the current directory, built with debugging symbols. Typically you start this command from the directory where +foo+ is built (and not from +output/target/+ as the binaries in that directory are stripped). The +/output/staging/usr/share/buildroot/gdbinit+ file will tell the cross gdb where to find the libraries of the target. Finally, to connect to the target from the cross gdb: ---------------------------- (gdb) target remote :2345 ---------------------------- ================================================ FILE: docs/manual/using-buildroot-development.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: ==== Using Buildroot during development 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-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 integration tool, to build and integrate all the components of an embedded Linux system. However, if one uses Buildroot during the development of certain components of the system, this behavior is not very convenient: one would instead like to make a small change to the source code of one package, and be able to quickly rebuild the system with Buildroot. Making changes directly in +output/build/-+ is not an appropriate solution, because this directory is removed on +make clean+. Therefore, Buildroot provides a specific mechanism for this use case: the +_OVERRIDE_SRCDIR+ mechanism. Buildroot reads an _override_ file, which allows the user to tell Buildroot the location of the source for certain packages. The default location of the override file is +$(CONFIG_DIR)/local.mk+, as defined by the +BR2_PACKAGE_OVERRIDE_FILE+ configuration option. +$(CONFIG_DIR)+ is the location of the Buildroot +.config+ file, so +local.mk+ by default lives side-by-side with the +.config+ file, which means: * In the top-level Buildroot source directory for in-tree builds (i.e., when +O=+ is not used) * In the out-of-tree directory for out-of-tree builds (i.e., when +O=+ is used) If a different location than these defaults is required, it can be specified through the +BR2_PACKAGE_OVERRIDE_FILE+ configuration option. In this _override_ file, Buildroot expects to find lines of the form: ------------------ _OVERRIDE_SRCDIR = /path/to/pkg1/sources _OVERRIDE_SRCDIR = /path/to/pkg2/sources ------------------ For example: ------------------ LINUX_OVERRIDE_SRCDIR = /home/bob/linux/ BUSYBOX_OVERRIDE_SRCDIR = /home/bob/busybox/ ------------------ When Buildroot finds that for a given package, an +_OVERRIDE_SRCDIR+ has been defined, it will no longer attempt to download, extract and patch the package. Instead, it will directly use the source code available in the specified directory and +make clean+ will not touch this directory. This allows to point Buildroot to your own directories, that can be managed by Git, Subversion, or any other version control system. To achieve this, Buildroot will use _rsync_ to copy the source code of the component from the specified +_OVERRIDE_SRCDIR+ to +output/build/-custom/+. This mechanism is best used in conjunction with the +make -rebuild+ and +make -reconfigure+ targets. A +make -rebuild all+ sequence will _rsync_ the source code from +_OVERRIDE_SRCDIR+ to +output/build/-custom+ (thanks to _rsync_, only the modified files are copied), and restart the build process of just this package. In the example of the +linux+ package above, the developer can then make a source code change in +/home/bob/linux+ and then run: ----------------------- make linux-rebuild all ----------------------- and in a matter of seconds gets the updated Linux kernel image in +output/images+. Similarly, a change can be made to the BusyBox source code in +/home/bob/busybox+, and after: ----------------------- make busybox-rebuild all ----------------------- the root filesystem image in +output/images+ contains the updated BusyBox. Source trees for big projects often contain hundreds or thousands of files which are not needed for building, but will slow down the process of copying the sources with _rsync_. Optionally, it is possible define +_OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS+ to skip syncing certain files from the source tree. For example, when working on the +webkitgtk+ package, the following will exclude the tests and in-tree builds from a local WebKit source tree: ------------------ WEBKITGTK_OVERRIDE_SRCDIR = /home/bob/WebKit WEBKITGTK_OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS = \ --exclude JSTests --exclude ManualTests --exclude PerformanceTests \ --exclude WebDriverTests --exclude WebKitBuild --exclude WebKitLibraries \ --exclude WebKit.xcworkspace --exclude Websites --exclude Examples ------------------ By default, Buildroot skips syncing of VCS artifacts (e.g., the *.git* and *.svn* directories). Some packages prefer to have these VCS directories available during build, for example for automatically determining a precise commit reference for version information. To undo this built-in filtering at a cost of a slower speed, add these directories back: ------------------ LINUX_OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS = --include .git ------------------ ================================================ FILE: docs/manual/using-buildroot-toolchain.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: ==== Using the generated toolchain outside Buildroot You may want to compile, for your target, your own programs or other software that are not packaged in Buildroot. In order to do this you can use the toolchain that was generated by Buildroot. The toolchain generated by Buildroot is located by default in +output/host/+. The simplest way to use it is to add +output/host/bin/+ to your PATH environment variable and then to use +ARCH-linux-gcc+, +ARCH-linux-objdump+, +ARCH-linux-ld+, etc. Alternatively, Buildroot can also export the toolchain and the development files of all selected packages, as an SDK, by running the command +make sdk+. This generates a tarball of the content of the host directory +output/host/+, named +_sdk-buildroot.tar.gz+ (which can be overriden by setting the environment variable +BR2_SDK_PREFIX+) and located in the output directory +output/images/+. This tarball can then be distributed to application developers, when they want to develop their applications that are not (yet) packaged as a Buildroot package. Upon extracting the SDK tarball, the user must run the script +relocate-sdk.sh+ (located at the top directory of the SDK), to make sure all paths are updated with the new location. Alternatively, if you just want to prepare the SDK without generating the tarball (e.g. because you will just be moving the +host+ directory, or will be generating the tarball on your own), Buildroot also allows you to just prepare the SDK with +make prepare-sdk+ without actually generating a tarball. For your convenience, by selecting the option +BR2_PACKAGE_HOST_ENVIRONMENT_SETUP+, you can get a +environment-setup+ script installed in +output/host/+ and therefore in your SDK. This script can be sourced with +. your/sdk/path/environment-setup+ to export a number of environment variables that will help cross-compile your projects using the Buildroot SDK: the +PATH+ will contain the SDK binaries, standard _autotools_ variables will be defined with the appropriate values, and +CONFIGURE_FLAGS+ will contain basic +./configure+ options to cross-compile _autotools_ projects. It also provides some useful commands. Note however that once this script is sourced, the environment is setup only for cross-compilation, and no longer for native compilation. ================================================ FILE: docs/manual/writing-rules.txt ================================================ // -*- mode:doc; -*- // vim: set syntax=asciidoc: == Coding style Overall, these coding style rules are here to help you to add new files in Buildroot or refactor existing ones. If you slightly modify some existing file, the important thing is to keep the consistency of the whole file, so you can: * either follow the potentially deprecated coding style used in this file, * or entirely rework it in order to make it comply with these rules. [[writing-rules-config-in]] === +Config.in+ file +Config.in+ files contain entries for almost anything configurable in Buildroot. An entry has the following pattern: --------------------- config BR2_PACKAGE_LIBFOO bool "libfoo" depends on BR2_PACKAGE_LIBBAZ select BR2_PACKAGE_LIBBAR help This is a comment that explains what libfoo is. The help text should be wrapped. http://foosoftware.org/libfoo/ --------------------- * The +bool+, +depends on+, +select+ and +help+ lines are indented with one tab. * The help text itself should be indented with one tab and two spaces. * The help text should be wrapped to fit 72 columns, where tab counts for 8, so 62 characters in the text itself. The +Config.in+ files are the input for the configuration tool used in Buildroot, which is the regular _Kconfig_. For further details about the _Kconfig_ language, refer to http://kernel.org/doc/Documentation/kbuild/kconfig-language.txt[]. [[writing-rules-mk]] === The +.mk+ file * Header: The file starts with a header. It contains the module name, preferably in lowercase, enclosed between separators made of 80 hashes. A blank line is mandatory after the header: + --------------------- ################################################################################ # # libfoo # ################################################################################ --------------------- + * Assignment: use +=+ preceded and followed by one space: + --------------------- LIBFOO_VERSION = 1.0 LIBFOO_CONF_OPTS += --without-python-support --------------------- + Do not align the +=+ signs. * Indentation: use tab only: + --------------------- define LIBFOO_REMOVE_DOC $(RM) -fr $(TARGET_DIR)/usr/share/libfoo/doc \ $(TARGET_DIR)/usr/share/man/man3/libfoo* endef --------------------- + Note that commands inside a +define+ block should always start with a tab, so _make_ recognizes them as commands. * Optional dependency: ** Prefer multi-line syntax. + YES: + --------------------- ifeq ($(BR2_PACKAGE_PYTHON),y) LIBFOO_CONF_OPTS += --with-python-support LIBFOO_DEPENDENCIES += python else LIBFOO_CONF_OPTS += --without-python-support endif --------------------- + NO: + --------------------- LIBFOO_CONF_OPTS += --with$(if $(BR2_PACKAGE_PYTHON),,out)-python-support LIBFOO_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON),python,) --------------------- ** Keep configure options and dependencies close together. * Optional hooks: keep hook definition and assignment together in one if block. + YES: + --------------------- ifneq ($(BR2_LIBFOO_INSTALL_DATA),y) define LIBFOO_REMOVE_DATA $(RM) -fr $(TARGET_DIR)/usr/share/libfoo/data endef LIBFOO_POST_INSTALL_TARGET_HOOKS += LIBFOO_REMOVE_DATA endif --------------------- + NO: + --------------------- define LIBFOO_REMOVE_DATA $(RM) -fr $(TARGET_DIR)/usr/share/libfoo/data endef ifneq ($(BR2_LIBFOO_INSTALL_DATA),y) LIBFOO_POST_INSTALL_TARGET_HOOKS += LIBFOO_REMOVE_DATA endif --------------------- [[writing-genimage-cfg]] === The +genimage.cfg+ file +genimage.cfg+ files contain the output image layout that genimage utility uses to create final .img file. An example follows: --------------------- image efi-part.vfat { vfat { file EFI { image = "efi-part/EFI" } file Image { image = "Image" } } size = 32M } image sdimage.img { hdimage { } partition u-boot { image = "efi-part.vfat" offset = 8K } partition root { image = "rootfs.ext2" size = 512M } } --------------------- * Every +section+(i.e. hdimage, vfat etc.), +partition+ must be indented with one tab. * Every +file+ or other +subnode+ must be indented with two tabs. * Every node(+section+, +partition+, +file+, +subnode+) must have an open curly bracket on the same line of the node's name, while the closing one must be on a newline and after it a newline must be added except for the last one node. Same goes for its option, for example option +size = +. * Every +option+(i.e. +image+, +offset+, +size+) must have the +=+ assignment one space from it and one space from the value specified. * Filename must at least begin with genimage prefix and have the .cfg extension to be easy to recognize. The +genimage.cfg+ files are the input for the genimage tool used in Buildroot to generate the final image file(i.e. sdcard.img). For further details about the _genimage_ language, refer to https://github.com/pengutronix/genimage/blob/master/README.rst[]. === The documentation The documentation uses the http://www.methods.co.nz/asciidoc/[asciidoc] format. For further details about the asciidoc syntax, refer to http://www.methods.co.nz/asciidoc/userguide.html[]. === Support scripts Some scripts in the +support/+ and +utils/+ directories are written in Python and should follow the https://www.python.org/dev/peps/pep-0008/[PEP8 Style Guide for Python Code]. ================================================ FILE: docs/website/.htaccess ================================================ # BEGIN Compress text files SetOutputFilter DEFLATE # END Compress text files # BEGIN Expire headers ExpiresActive On ExpiresDefault "access plus 1 seconds" ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType image/jpeg "access plus 2592000 seconds" ExpiresByType image/png "access plus 2592000 seconds" ExpiresByType image/gif "access plus 2592000 seconds" ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" ExpiresByType text/css "access plus 604800 seconds" ExpiresByType text/javascript "access plus 216000 seconds" ExpiresByType application/javascript "access plus 216000 seconds" ExpiresByType application/x-javascript "access plus 216000 seconds" ExpiresByType text/html "access plus 600 seconds" ExpiresByType application/xhtml+xml "access plus 600 seconds" # END Expire headers # BEGIN Cache-Control Headers Header set Cache-Control "max-age=2592000, public" Header set Cache-Control "max-age=604800, public" Header set Cache-Control "max-age=216000, private" Header set Cache-Control "max-age=600, private, must-revalidate" # END Cache-Control Headers # BEGIN Turn ETags Off Header unset ETag FileETag None # END Turn ETags Off # BEGIN gzip mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file .(html?|txt|css|js)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* # END gzip ================================================ FILE: docs/website/association.html ================================================
Association

The Buildroot open-source project is supported by a non-profit organization called the Buildroot Association. The goal of this non-profit organization is to engage actions to promote, help develop and democratise the Buildroot project.

This non-profit organization is registered as a legal entity in France, more precisely as an association loi 1901.

This organization can receive funding from members, donors and sponsors. This funding is then used to pay for:

  • the meeting rooms used during the Buildroot Developers Meeting twice per year;
  • travel expenses for contributors willing to attend the Buildroot Developers Meeting, and not covered by their employer to do so;
  • renting servers and services used to host the Buildroot infrastructure.

The bylaws of the association are available in French (official) and in English (unofficial translation). The association was declared on March 14, 2016 to the Préfecture de Haute-Garonne (France) and is registered under the n°W313024278. See this official receipt from the French authorities.

Our accounting is fully public, including the bank account summaries, see accounting. Numerous other administrative documents related to the association are available on its Github repository

Becoming a member

To become a member, an individual or a company simply has to pay its yearly membership. For an individual, the minimum membership fee per year is 10 EUR. For a company, the minimum membership fee per year is 150 EUR. Individuals and companies are free to give more than the minimum required.

The membership is valid for the current civil year, i.e any membership fee paid in 2019 is valid through December 31, 2019.

Once the membership fee is received, it will be listed in the association accounting files, which serve as the official list of members. Therefore, members accept that their name and the amount of their membership fee is made public.

There are two possibilities to pay the membership fee:

  • A direct wire-transfer to the association bank account. Since the bank account is located in France, this is completely free of charge for any person or company located in the European Union. The IBAN number of the association bank account is FR53 2004 1010 1615 0958 0P03 772.
  • A Paypal payment to the association Paypal account, whose address is buildroot-association@buildroot.org.
Sponsoring the project

Companies willing to help the Buildroot project can do so by making a donation to the Buildroot Association. In exchange for these donations, companies will be listed on our Sponsors page and will be thanked in our release announcements.

As the Buildroot Association is a legal entity registered in France, it is able to deliver a bill and/or receipt.

Please contact buildroot-association@buildroot.org if you are a company interested in making a donation.

================================================ FILE: docs/website/contribute.html ================================================
Contribute

Buildroot is an open source project and you are very welcome to contribute to it.
There are many different ways to contribute:

For more details on these topics, check out the Contributing to buildroot chapter in the Buildroot manual. Thanks for your help!

If you need any support yourself, have a look at Support.

================================================ FILE: docs/website/copyright.txt ================================================ The code and graphics on this website (and it's mirror sites, if any) are Copyright (c) 1999-2005 by Erik Andersen, 2006-2020 The Buildroot developers. All rights reserved. Documents on this Web site including their graphical elements, design, and layout are protected by trade dress and other laws and MAY BE COPIED OR IMITATED IN WHOLE OR IN PART. THIS WEBSITE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE WEBSITE TO THE EXTENT PERMITTED BY APPLICABLE LAW. SHOULD THIS WEBSITE PROVE DEFECTIVE, YOU MAY ASSUME THAT SOMEONE MIGHT GET AROUND TO SERVICING, REPAIRING OR CORRECTING IT SOMETIME WHEN THEY HAVE NOTHING BETTER TO DO. REGARDLESS, YOU GET TO KEEP BOTH PIECES. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THIS WEBSITE AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THIS WEBSITE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR LOSS OF HAIR, LOSS OF LIFE, LOSS OF MEMORY, LOSS OF YOUR CARKEYS, MISPLACEMENT OF YOUR PAYCHECK, OR COMMANDER DATA BEING RENDERED UNABLE TO ASSIST THE STARFLEET OFFICERS ABORD THE STARSHIP ENTERPRISE TO RECALIBRATE THE MAIN DEFLECTOR ARRAY, LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE WEBSITE TO OPERATE WITH YOUR WEBBROWSER), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You have been warned. You can contact the webmaster at if you have some sort of problem with this. ================================================ FILE: docs/website/css/main.css ================================================ /* * Author: Carlos Alvarez * URL: http://alvarez.is * * Project Name: FLATTY - Free Bootstrap 3 Theme * Version: 1.0 * URL: http://blacktie.co */ body { background-color: #f2f2f2; font-family: 'Roboto', sans-serif; font-weight: 300; font-size: 16px; color: #555; -webkit-font-smoothing: antialiased; -webkit-overflow-scrolling: touch; } /* Titles */ h1, h2, h3, h4, h5, h6 { font-family: 'Roboto', sans-serif; font-weight: 300; color: #333; } h1 { font-size: 40px; } h3 { color: #95a5a6; font-weight: 400; } h4 { color: #95a5a6; font-weight: 400; font-size: 20px; } .ellipsis p { margin-bottom:10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .centered { text-align: center; } /* Links */ a { color: #3498db; word-wrap: break-word; -webkit-transition: color 0.1s ease-in, background 0.1s ease-in; -moz-transition: color 0.1s ease-in, background 0.1s ease-in; -ms-transition: color 0.1s ease-in, background 0.1s ease-in; -o-transition: color 0.1s ease-in, background 0.1s ease-in; transition: color 0.1s ease-in, background 0.1s ease-in; } a:hover, a:focus { color: #7b7b7b; text-decoration: none; outline: 0; } a:before, a:after { -webkit-transition: color 0.1s ease-in, background 0.1s ease-in; -moz-transition: color 0.1s ease-in, background 0.1s ease-in; -ms-transition: color 0.1s ease-in, background 0.1s ease-in; -o-transition: color 0.1s ease-in, background 0.1s ease-in; transition: color 0.1s ease-in, background 0.1s ease-in; } hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } .navbar-default { background-color: #3498db; border-color: transparent; } .navbar-default .navbar-brand { color: white; } .navbar-default .navbar-nav > li > a { color: white; } /* Helpers */ .mt { margin-top: 40px; margin-bottom: 40px; } .nh { margin-top: 80px; margin-bottom: 40px; } .form-control { height: 42px; font-size: 18px; width: 280px; } i { margin: 8px; color: #3498db; } /* HeaderWrap */ #headerwrap { /* background: url(../img/bg01.jpg) no-repeat center top; */ background-color: #3498db; margin-top: -20px; padding-top:120px; background-attachment: relative; background-position: center center; min-height: 400px; max-height: 800px; width: 100%; -webkit-background-size: 100%; -moz-background-size: 100%; -o-background-size: 100%; background-size: 100%; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; } #headerwrap h1 { color: white; font-size: 60px; font-weight: bold; letter-spacing: 1px; } #menubutton { max-height: 50px; margin-top: 6px; padding-top: 15px; margin-left: 10px; } .panel-sponsor { min-height: 350px; text-align: justify; text-justify: inter-word; } @media (min-width: 768px) and (max-width: 991px) { .navbar-collapse.collapse { display: none !important; } .navbar-collapse.collapse.in { display: block !important; } .navbar-header .collapse, .navbar-toggle { display:block !important; } .navbar-header { float:none; } .navbar-collapse { overflow:hidden; } #menubutton { margin-right: 40px; width: 45px; } .text-shrink { visibility: hidden; } } @media (max-width:767px) { #menubutton { max-height: 50px; margin-top: 6px; padding-top: 15px; margin-left: 15px; margin-right: 15px; } } /* entire container, keeps perspective */ .flip-container { perspective: 1000; } /* flip the pane when hovered */ .flip-container:hover .flipper, .flip-container.hover .flipper { transform: rotateY(180deg); } .flip-container, .front, .back { width: 180px; height: 180px; } /* flip speed goes here */ .flipper { transition: 0.6s; transform-style: preserve-3d; position: relative; } /* hide back of pane during swap */ .front, .back { backface-visibility: hidden; position: absolute; top: 0; left: 0; } /* front pane, placed above back */ .front { z-index: 2; /* for firefox 31 */ transform: rotateY(0deg); } /* back, initially hidden pane */ .back { transform: rotateY(180deg); } .back img { -moz-transform: scaleX(-1); -o-transform: scaleX(-1); -webkit-transform: scaleX(-1); transform: scaleX(-1); filter: FlipH; -ms-filter: "FlipH"; } .panel-box p { height: 1.5em; } ================================================ FILE: docs/website/css/timeline.css ================================================ .timeline { list-style: none; padding: 20px 0 20px; position: relative; } .timeline:before { top: 0; bottom: 0; position: absolute; content: " "; width: 3px; background-color: #E4E4E4; left: 50%; margin-left: -1.5px; } .timeline > li { margin-bottom: 20px; position: relative; } .timeline > li:before, .timeline > li:after { content: " "; display: table; } .timeline > li:after { clear: both; } .timeline > li:before, .timeline > li:after { content: " "; display: table; } .timeline > li:after { clear: both; } .timeline > li > .timeline-panel { width: 46%; float: left; border: 1px solid #d4d4d4; border-radius: 2px; padding: 20px; position: relative; -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175); box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175); background-color: white; } .timeline > li > .timeline-panel:before { position: absolute; top: 26px; right: -15px; display: inline-block; border-top: 15px solid transparent; border-left: 15px solid #ccc; border-right: 0 solid #ccc; border-bottom: 15px solid transparent; content: " "; } .timeline > li > .timeline-panel:after { position: absolute; top: 27px; right: -14px; display: inline-block; border-top: 14px solid transparent; border-left: 14px solid #fff; border-right: 0 solid #fff; border-bottom: 14px solid transparent; content: " "; } .timeline > li > .timeline-badge { color: #fff; width: 50px; height: 50px; line-height: 50px; font-size: 1.4em; text-align: center; position: absolute; top: 16px; left: 50%; margin-left: -25px; background-color: #E6E6E6; z-index: 100; border-top-right-radius: 50%; border-top-left-radius: 50%; border-bottom-right-radius: 50%; border-bottom-left-radius: 50%; } .timeline > li.timeline-inverted > .timeline-panel { float: right; } .timeline > li.timeline-inverted > .timeline-panel:before { border-left-width: 0; border-right-width: 15px; left: -15px; right: auto; } .timeline > li.timeline-inverted > .timeline-panel:after { border-left-width: 0; border-right-width: 14px; left: -14px; right: auto; } .timeline-badge.primary { background-color: #2e6da4 !important; } .timeline-badge.success { background-color: #3f903f !important; } .timeline-badge.warning { background-color: #f0ad4e !important; } .timeline-badge.danger { background-color: #d9534f !important; } .timeline-badge.info { background-color: #5bc0de !important; } .timeline-title { margin-top: 0; color: inherit; } .timeline-body > p, .timeline-body > ul { margin-bottom: 0; } .timeline-body > p + p { margin-top: 5px; } @media (max-width: 767px) { ul.timeline:before { left: 40px; } ul.timeline > li > .timeline-panel { width: calc(100% - 90px); width: -moz-calc(100% - 90px); width: -webkit-calc(100% - 90px); } ul.timeline > li > .timeline-badge { left: 15px; margin-left: 0; top: 16px; } ul.timeline > li > .timeline-panel { float: right; } ul.timeline > li > .timeline-panel:before { border-left-width: 0; border-right-width: 15px; left: -15px; right: auto; } ul.timeline > li > .timeline-panel:after { border-left-width: 0; border-right-width: 14px; left: -14px; right: auto; } } ================================================ FILE: docs/website/docs.html ================================================
Documentation

The Buildroot user manual is where you want to start reading if you wish to understand how Buildroot works, or wish to change/extend/fix things. It is available as:

HTML
Stable | Nightly

PDF
Stable | Nightly

ASCII
Stable | Nightly

If you find any errors (factual, grammatical, whatever) please report them to us.

Training

Bootlin (formerly Free Electrons) offers a complete 3-days training course on Buildroot. They also make the training materials freely available:

Slides preview
buildroot slides
Public online training course
Regular online training courses, available to individual registration, are proposed by Bootlin, with Thomas Petazzoni as trainer. See next dates and registration details.
================================================ FILE: docs/website/download.html ================================================
Download

Latest long term support release: 2021.02.7

Latest stable release: 2021.11

This and earlier releases (and their PGP signatures) can always be downloaded from http://buildroot.net/downloads/.
Source code
Repository

The buildroot repository can be browsed online through cgit at http://git.buildroot.net/buildroot. To grab a copy of the repository use


Or if you're behind a firewall blocking git:


Please use the native git protocol if at all possible, as it's a lot more efficient than HTTP.

If you are not already familiar with using Git, we recommend you visit the Git website.

Once you've checked out a copy of the source tree, you can update your source tree at any time so it is in sync with the latest and greatest by entering your buildroot directory and running the command:

git pull
Because you've only been granted anonymous access to the tree, you won't be able to push your changes to the repo. Changes can instead be submitted for inclusion by posting them to the buildroot mailing list.
Tarballs
You can also obtain daily snapshots of the latest Buildroot source tree if you want to follow development, but cannot or do not wish to use Git.

Older versions can be downloaded from the release archive.

================================================ FILE: docs/website/footer.html ================================================ ================================================ FILE: docs/website/header.html ================================================ Buildroot - Making Embedded Linux Easy ================================================ FILE: docs/website/index.html ================================================

Buildroot
Making Embedded Linux Easy

Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation.

Can handle everything

Cross-compilation toolchain, root filesystem generation, kernel image compilation and bootloader compilation.

Is very easy

Thanks to its kernel-like menuconfig, gconfig and xconfig configuration interfaces, building a basic system with Buildroot is easy and typically takes 15-30 minutes.

Supports several thousand packages

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


Buildroot is for Everyone.

Has a simple structure that makes it easy to understand and extend. It relies only on the well-known Makefile language.

Our recent activity.

Buildroot is an open source project: many developers contribute to it daily.

================================================ FILE: docs/website/js/buildroot.js ================================================ function load_activity(feedurl, divid) { let container = document.getElementById(divid); $.ajax({ url: "https://cors-anywhere.herokuapp.com/" + feedurl }) .done(function(data){ let x2js = new X2JS(); let result = x2js.xml_str2json(data.documentElement.outerHTML); let loaded = 0; let nb_display = 8; if (result==null) return; for (let i = 0; i < result.feed.entry.length; i++) { let entry = result.feed.entry[i]; if (entry.title.indexOf("git commit") !== -1) continue; loaded += 1; if (loaded > nb_display) break; let div = document.createElement("p"); let link = document.createElement("a"); let d = new Date(entry.published); let data = '[' + d.toLocaleDateString() + '] ' + entry.title; let text = document.createTextNode(data); link.appendChild(text); link.title = entry.title; link.href = entry.link._href; div.appendChild(link); container.appendChild(div); } let empty = nb_display - loaded; for (let i = 0; i < empty; i++) { container.appendChild(document.createElement("p")); } }); } function google_analytics() { let _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-21761074-1']); _gaq.push(['_setDomainName', 'none']); _gaq.push(['_setAllowLinker', true]); _gaq.push(['_trackPageview']); let ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' === document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; let s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); } function showTooltip(elem, msg) { elem.setAttribute('class', 'btn tooltipped tooltipped-s'); elem.setAttribute('aria-label', msg); } let clipboard = new Clipboard('.btn'); $(function () { $('[data-toggle="tooltip"]').tooltip() }); clipboard.on('success', function(e) { e.clearSelection(); $(e.trigger).tooltip('show'); }); $(function() { $('a[href*=\\#]:not([href=\\#])').click(function() { if (location.pathname.replace(/^\//,'') === this.pathname.replace(/^\//,'') && location.hostname === this.hostname) { let target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); if (target.length) { $('html,body').animate({ scrollTop: target.offset().top }, 1000); return false; } } }); }); jQuery(document).ready(function($) { let url = window.location.href; // Get the basename of the URL url = url.split(/[\\/]/).pop(); $('.nav a[href="/' + url + '"]').parent().addClass('active'); load_activity("http://buildroot-busybox.2317881.n4.nabble.com/Buildroot-busybox-ft2.xml", "mailing-list-activity"); load_activity("http://git.buildroot.org/buildroot/atom/?h=master", "commit-activity"); $('#slides').html('') }); ================================================ FILE: docs/website/news.html ================================================

News

================================================ FILE: docs/website/robots.txt ================================================ User-agent: * Disallow: /cgi-bin/ ================================================ FILE: docs/website/sponsors.html ================================================
Current sponsors
Tap2Open financially sponsored the Buildroot Association in 2020.
Logilin financially sponsored the Buildroot Association in 2020.
Sponsor of the Buildroot.org domain

The Buildroot community would like to thank Zillabit for donating the buildroot.org domain name and sponsoring the registration fees 2009 - 2019.

Past sponsors

Throughout its history, the Buildroot project has been sponsored by various companies, that we would like to thank below.

Smile provided the meeting location for the ELCE 2019 meeting and sponsored the Buildroot Summer Camp that took place on July 1-5 2016 in Toulouse, France. Smile sponsored the participation of Romain Naour and paid the food expenses for the meeting participants. In 2018, Smile sponsored of LLVM/Clang integration into Buildroot, see the final report.
Mind sponsored financially the Buildroot Association for the ELCE 2018 meeting, sponsored the dinner of the FOSDEM 2014, 2015, 2016, 2017 and 2018 Developers Meeting (Brussels) and ELCE 2016 (Berlin) and 2017 (Prague), and the meeting room and the dinner for the ELCE 2014 Developers Meeting (Düsseldorf).

Google provided the logistics for the FOSDEM 2013, FOSDEM 2014, FOSDEM 2015, FOSDEM 2016, FOSDEM 2017, FOSDEM 2018, FOSDEM 2019 and FOSDEM 2020 Developer Days in Brussels, Belgium.

Amarula Solutions sponsored the event by contributing financially to the Buildroot Association.

Bootlin sponsored financially the Buildroot Association for the ELCE 2018 meeting, sponsored the meeting location for the ELCE 2016 Developer Days in Berlin, Germany, and the lunch for the ELCE 2009 Developer Days in Grenoble, France.

Logilin sponsored the ELCE 2018 Buildroot Developers meeting by contributing financially to the Buildroot Association.
Tk Open Systems sponsored the ELCE 2018 Buildroot Developers meeting by contributing financially to the Buildroot Association.
Rockwell Collins sponsored the ELCE 2018 Buildroot Developers meeting by funding the social Saturday dinner for the participants.
Scaleway sponsored the complete logistics to organize our Buildroot Hackathon in Paris in March 2018: meeting room, Internet connectivity and accommodation.
Imagination Technologies sponsored the meeting room and dinner of the ELCE 2013 Developer Days in Edinburgh, UK.

CircuitCo sponsored several development boards for the Google Summer of Code 2013 project on Buildroot.

BoundaryDevices sponsored an i.MX6 development board for the Google Summer of Code 2013 project on Buildroot.

Fluendo sponsored the meeting room for the ELCE 2012 Developer Days in Barcelona Spain.

Synopsys sponsored the dinner for the ELCE 2012 Developer Days in Barcelona, Spain.

Calao Systems provided a a meeting room for the ELCE 2009 Developer Days in Grenoble, France.

================================================ FILE: docs/website/support.html ================================================
Support

You can get support for Buildroot through three main channels:

IRC

The Buildroot IRC channel is #buildroot, hosted on OFTC. If you do not have an IRC client, you can use the OFTC web interface. When asking for help on IRC, share relevant logs or pieces of code using a code sharing website.

Note that due to excessive spamming on IRC, the channel can only be joined if you are a registered user with OFTC NickServ service. Follow the instructions to register as a user with a password, and then join the #buildroot channel.

Mailing List Information

The mailing list is for discussion and development. You can subscribe by visiting this page. Only subscribers to the Buildroot mailing list are allowed to post to this list. Archives are available from Mailman and lore.kernel.org.

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 before.

Bug Tracker

If you think you found a bug in Buildroot, you can use the Bug Tracker to post your bugs and/or participate to find solutions to existing problems.

Note: patches are only accepted through the mailing list.

Commercial support

In addition, the following companies are able to provide commercial support. Only companies heavily involved in Buildroot maintenance and community are listed here.

================================================ FILE: fs/Config.in ================================================ menu "Filesystem images" source "fs/axfs/Config.in" source "fs/btrfs/Config.in" source "fs/cloop/Config.in" source "fs/cpio/Config.in" source "fs/cramfs/Config.in" source "fs/erofs/Config.in" source "fs/ext2/Config.in" source "fs/f2fs/Config.in" source "fs/initramfs/Config.in" source "fs/iso9660/Config.in" source "fs/jffs2/Config.in" source "fs/oci/Config.in" source "fs/romfs/Config.in" source "fs/squashfs/Config.in" source "fs/tar/Config.in" source "fs/ubi/Config.in" source "fs/ubifs/Config.in" source "fs/yaffs2/Config.in" endmenu ================================================ FILE: fs/axfs/Config.in ================================================ config BR2_TARGET_ROOTFS_AXFS bool "axfs root filesystem" help The Advanced XIP File System is a Linux kernel filesystem driver that enables files to be executed directly from flash or ROM memory rather than being copied into RAM. It has the ability to store individual *pages* in a file uncompressed/XIP or compressed/Demand Paged. So far, the only supported mode is 'XIP all', so all the files that have the execute attribute set will be XIP'ed. At the moment, the FS is not supported in Linux mainline (v4.3-rc5), so the kernel has to be built with the axfs patches to be able to read it. Patches can be found at: https://github.com/jaredeh/axfs ================================================ FILE: fs/axfs/axfs.mk ================================================ ################################################################################ # # Build the axfs root filesystem image # ################################################################################ ROOTFS_AXFS_DEPENDENCIES = host-axfsutils define ROOTFS_AXFS_CMD $(HOST_DIR)/bin/mkfs.axfs -s -a $(TARGET_DIR) $@ endef $(eval $(rootfs)) ================================================ FILE: fs/btrfs/Config.in ================================================ config BR2_TARGET_ROOTFS_BTRFS bool "btrfs root filesystem" select BR2_PACKAGE_HOST_BTRFS_PROGS help Build a btrfs root filesystem. If you enable this option, you probably want to enable the btrfs-progs package too. if BR2_TARGET_ROOTFS_BTRFS config BR2_TARGET_ROOTFS_BTRFS_LABEL string "filesystem label" config BR2_TARGET_ROOTFS_BTRFS_SIZE string "filesystem size" default "100m" help The size of the filesystem image in bytes. Suffix with k, m, g or t for power-of-two kilo-, mega-, giga- or terabytes. config BR2_TARGET_ROOTFS_BTRFS_SIZE_SECTOR string "sector size" default "4096" help This value should be set to the page size in bytes. The default value of 4096 is the the most common page size for most systems. If the sectorsize differs from the page size, the created filesystem may not be mountable by the kernel. Therefore it is recommended to leave this value at 4096. Unless you know that your kernel uses a different page size. Suffix with k for power-of-two kilobytes. config BR2_TARGET_ROOTFS_BTRFS_SIZE_NODE string "btree node size" default "16384" help The tree block size in which btrfs stores metadata in bytes. This must be a multiple of the sectorsize, but not larger than 64KiB (65536). Suffix with k for power-of-two kilobytes. config BR2_TARGET_ROOTFS_BTRFS_FEATURES string "Filesystem Features" help A comma separated string of features that can be enabled during creation time. For a list of available options, use: `.../host/bin/mkfs.btrfs -O list-all` endif # BR2_TARGET_ROOTFS_BTRFS ================================================ FILE: fs/btrfs/btrfs.mk ================================================ ################################################################################ # # Build the btrfs root filesystem image # ################################################################################ BTRFS_SIZE = $(call qstrip,$(BR2_TARGET_ROOTFS_BTRFS_SIZE)) ifeq ($(BR2_TARGET_ROOTFS_BTRFS)-$(BTRFS_SIZE),y-) $(error BR2_TARGET_ROOTFS_BTRFS_SIZE cannot be empty) endif BTRFS_SIZE_NODE = $(call qstrip,$(BR2_TARGET_ROOTFS_BTRFS_SIZE_NODE)) BTRFS_SIZE_SECTOR = $(call qstrip,$(BR2_TARGET_ROOTFS_BTRFS_SIZE_SECTOR)) BTRFS_FEATURES = $(call qstrip,$(BR2_TARGET_ROOTFS_BTRFS_FEATURES)) # qstrip results in stripping consecutive spaces into a single one. So the # variable is not qstrip-ed to preserve the integrity of the string value. BTRFS_LABEL = $(subst ",,$(BR2_TARGET_ROOTFS_BTRFS_LABEL)) # ") BTRFS_OPTS = \ -f \ -r '$(TARGET_DIR)' \ -L '$(BTRFS_LABEL)' \ --byte-count '$(BTRFS_SIZE)' \ $(if $(BTRFS_SIZE_NODE),--nodesize '$(BTRFS_SIZE_NODE)') \ $(if $(BTRFS_SIZE_SECTOR),--sectorsize '$(BTRFS_SIZE_SECTOR)') \ $(if $(BTRFS_FEATURES),--features '$(BTRFS_FEATURES)') ROOTFS_BTRFS_DEPENDENCIES = host-btrfs-progs define ROOTFS_BTRFS_CMD $(RM) -f $@ $(HOST_DIR)/bin/mkfs.btrfs $(BTRFS_OPTS) $@ endef $(eval $(rootfs)) ================================================ FILE: fs/cloop/Config.in ================================================ config BR2_TARGET_ROOTFS_CLOOP bool "cloop root filesystem for the target device" help Build a cloop root filesystem cloop is a Linux kernel module that enables compressed loopback filesystem support. With it you can mount a compressed filesystem like a block device and seamlessly decompress its data while accessing it. The majority of the software on an LNX-BBC is accessed in this fashion. ================================================ FILE: fs/cloop/cloop.mk ================================================ ################################################################################ # # Build the compressed loop root filesystem image # ################################################################################ ROOTFS_CLOOP_DEPENDENCIES = host-cloop host-cdrkit define ROOTFS_CLOOP_CMD $(HOST_DIR)/bin/genisoimage -r $(TARGET_DIR) | \ $(HOST_DIR)/bin/create_compressed_fs - 65536 > $@ endef $(eval $(rootfs)) ================================================ FILE: fs/common.mk ================================================ # # Macro that builds the needed Makefile target to create a root # filesystem image. # # The following variable must be defined before calling this macro # # ROOTFS_$(FSTYPE)_CMD, the command that generates the root # filesystem image. A single command is allowed. The filename of the # filesystem image that it must generate is $$@. # # The following variables can optionaly be defined # # ROOTFS_$(FSTYPE)_DEPENDENCIES, the list of dependencies needed to # build the root filesystem (usually host tools) # # ROOTFS_$(FSTYPE)_PRE_GEN_HOOKS, a list of hooks to call before # generating the filesystem image # # ROOTFS_$(FSTYPE)_POST_GEN_HOOKS, a list of hooks to call after # generating the filesystem image # # 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 # 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. FS_DIR = $(BUILD_DIR)/buildroot-fs ROOTFS_DEVICE_TABLES = $(call qstrip,$(BR2_ROOTFS_DEVICE_TABLE) \ $(BR2_ROOTFS_STATIC_DEVICE_TABLE)) ROOTFS_USERS_TABLES = $(call qstrip,$(BR2_ROOTFS_USERS_TABLES)) ROOTFS_FULL_DEVICES_TABLE = $(FS_DIR)/full_devices_table.txt ROOTFS_FULL_USERS_TABLE = $(FS_DIR)/full_users_table.txt ROOTFS_COMMON_NAME = rootfs-common ROOTFS_COMMON_TYPE = rootfs ROOTFS_COMMON_DEPENDENCIES = \ host-fakeroot host-makedevs \ $(BR2_TAR_HOST_DEPENDENCY) \ $(if $(PACKAGES_USERS)$(ROOTFS_USERS_TABLES),host-mkpasswd) ifeq ($(BR2_REPRODUCIBLE),y) define ROOTFS_REPRODUCIBLE find $(TARGET_DIR) -print0 | xargs -0 -r touch -hd @$(SOURCE_DATE_EPOCH) endef endif ifeq ($(BR2_PACKAGE_REFPOLICY),y) define ROOTFS_SELINUX $(HOST_DIR)/sbin/setfiles -m -r $(TARGET_DIR) \ -c $(TARGET_DIR)/etc/selinux/targeted/policy/policy.$(BR2_PACKAGE_LIBSEPOL_POLICY_VERSION) \ $(TARGET_DIR)/etc/selinux/targeted/contexts/files/file_contexts \ $(TARGET_DIR) endef ROOTFS_COMMON_DEPENDENCIES += host-policycoreutils endif ROOTFS_COMMON_FINAL_RECURSIVE_DEPENDENCIES = $(sort \ $(if $(filter undefined,$(origin ROOTFS_COMMON_FINAL_RECURSIVE_DEPENDENCIES__X)), \ $(eval ROOTFS_COMMON_FINAL_RECURSIVE_DEPENDENCIES__X := \ $(foreach p, \ $(ROOTFS_COMMON_DEPENDENCIES), \ $(p) \ $($(call UPPERCASE,$(p))_FINAL_RECURSIVE_DEPENDENCIES) \ ) \ ) \ ) \ $(ROOTFS_COMMON_FINAL_RECURSIVE_DEPENDENCIES__X)) .PHONY: rootfs-common rootfs-common: $(ROOTFS_COMMON_DEPENDENCIES) target-finalize @$(call MESSAGE,"Generating root filesystems common tables") rm -rf $(FS_DIR) mkdir -p $(FS_DIR) $(call PRINTF,$(PACKAGES_USERS)) >> $(ROOTFS_FULL_USERS_TABLE) ifneq ($(ROOTFS_USERS_TABLES),) cat $(ROOTFS_USERS_TABLES) >> $(ROOTFS_FULL_USERS_TABLE) endif $(call PRINTF,$(PACKAGES_PERMISSIONS_TABLE)) > $(ROOTFS_FULL_DEVICES_TABLE) ifneq ($(ROOTFS_DEVICE_TABLES),) cat $(ROOTFS_DEVICE_TABLES) >> $(ROOTFS_FULL_DEVICES_TABLE) endif ifeq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y) $(call PRINTF,$(PACKAGES_DEVICES_TABLE)) >> $(ROOTFS_FULL_DEVICES_TABLE) endif rootfs-common-show-depends: @echo $(ROOTFS_COMMON_DEPENDENCIES) .PHONY: rootfs-common-show-info rootfs-common-show-info: @: $(info $(call clean-json,{ $(call json-info,ROOTFS_COMMON) })) # Since this function will be called from within an $(eval ...) # all variable references except the arguments must be $$-quoted. define inner-rootfs ROOTFS_$(2)_NAME = rootfs-$(1) ROOTFS_$(2)_TYPE = rootfs ROOTFS_$(2)_IMAGE_NAME ?= rootfs.$(1) ROOTFS_$(2)_FINAL_IMAGE_NAME = $$(strip $$(ROOTFS_$(2)_IMAGE_NAME)) ROOTFS_$(2)_DIR = $$(FS_DIR)/$(1) ROOTFS_$(2)_TARGET_DIR = $$(ROOTFS_$(2)_DIR)/target ROOTFS_$(2)_DEPENDENCIES += rootfs-common ROOTFS_$(2)_FINAL_RECURSIVE_DEPENDENCIES = $$(sort \ $$(if $$(filter undefined,$$(origin ROOTFS_$(2)_FINAL_RECURSIVE_DEPENDENCIES__X)), \ $$(eval ROOTFS_$(2)_FINAL_RECURSIVE_DEPENDENCIES__X := \ $$(foreach p, \ $$(ROOTFS_$(2)_DEPENDENCIES), \ $$(p) \ $$($$(call UPPERCASE,$$(p))_FINAL_RECURSIVE_DEPENDENCIES) \ ) \ ) \ ) \ $$(ROOTFS_$(2)_FINAL_RECURSIVE_DEPENDENCIES__X)) ifeq ($$(BR2_TARGET_ROOTFS_$(2)_GZIP),y) ROOTFS_$(2)_COMPRESS_EXT = .gz ROOTFS_$(2)_COMPRESS_CMD = gzip -9 -c -n endif ifeq ($$(BR2_TARGET_ROOTFS_$(2)_BZIP2),y) ROOTFS_$(2)_COMPRESS_EXT = .bz2 ROOTFS_$(2)_COMPRESS_CMD = bzip2 -9 -c endif ifeq ($$(BR2_TARGET_ROOTFS_$(2)_LZMA),y) ROOTFS_$(2)_DEPENDENCIES += host-lzma ROOTFS_$(2)_COMPRESS_EXT = .lzma ROOTFS_$(2)_COMPRESS_CMD = $$(LZMA) -9 -c endif ifeq ($$(BR2_TARGET_ROOTFS_$(2)_LZ4),y) ROOTFS_$(2)_DEPENDENCIES += host-lz4 ROOTFS_$(2)_COMPRESS_EXT = .lz4 ROOTFS_$(2)_COMPRESS_CMD = lz4 -l -9 -c endif ifeq ($$(BR2_TARGET_ROOTFS_$(2)_LZO),y) ROOTFS_$(2)_DEPENDENCIES += host-lzop ROOTFS_$(2)_COMPRESS_EXT = .lzo ROOTFS_$(2)_COMPRESS_CMD = $$(LZOP) -9 -c endif ifeq ($$(BR2_TARGET_ROOTFS_$(2)_XZ),y) ROOTFS_$(2)_DEPENDENCIES += host-xz ROOTFS_$(2)_COMPRESS_EXT = .xz ROOTFS_$(2)_COMPRESS_CMD = xz -9 -C crc32 -c ifeq ($(BR2_REPRODUCIBLE),) ROOTFS_$(2)_COMPRESS_CMD += -T $(PARALLEL_JOBS) endif endif ifeq ($(BR2_TARGET_ROOTFS_$(2)_ZSTD),y) ROOTFS_$(2)_DEPENDENCIES += host-zstd ROOTFS_$(2)_COMPRESS_EXT = .zst ROOTFS_$(2)_COMPRESS_CMD = zstd -19 -z -f -T$(PARALLEL_JOBS) endif $$(BINARIES_DIR)/$$(ROOTFS_$(2)_FINAL_IMAGE_NAME): ROOTFS=$(2) $$(BINARIES_DIR)/$$(ROOTFS_$(2)_FINAL_IMAGE_NAME): FAKEROOT_SCRIPT=$$(ROOTFS_$(2)_DIR)/fakeroot $$(BINARIES_DIR)/$$(ROOTFS_$(2)_FINAL_IMAGE_NAME): $$(ROOTFS_$(2)_DEPENDENCIES) @$$(call MESSAGE,"Generating filesystem image $$(ROOTFS_$(2)_FINAL_IMAGE_NAME)") mkdir -p $$(@D) rm -rf $$(ROOTFS_$(2)_DIR) mkdir -p $$(ROOTFS_$(2)_DIR) rsync -auH \ --exclude=/$$(notdir $$(TARGET_DIR_WARNING_FILE)) \ $$(BASE_TARGET_DIR)/ \ $$(TARGET_DIR) echo '#!/bin/sh' > $$(FAKEROOT_SCRIPT) echo "set -e" >> $$(FAKEROOT_SCRIPT) echo "chown -h -R 0:0 $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT) PATH=$$(BR_PATH) $$(TOPDIR)/support/scripts/mkusers $$(ROOTFS_FULL_USERS_TABLE) $$(TARGET_DIR) >> $$(FAKEROOT_SCRIPT) echo "$$(HOST_DIR)/bin/makedevs -d $$(ROOTFS_FULL_DEVICES_TABLE) $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT) $$(foreach hook,$$(ROOTFS_PRE_CMD_HOOKS),\ $$(call PRINTF,$$($$(hook))) >> $$(FAKEROOT_SCRIPT)$$(sep)) $$(foreach s,$$(call qstrip,$$(BR2_ROOTFS_POST_FAKEROOT_SCRIPT)),\ echo "echo '$$(TERM_BOLD)>>> Executing fakeroot script $$(s)$$(TERM_RESET)'" >> $$(FAKEROOT_SCRIPT); \ echo $$(EXTRA_ENV) $$(s) $$(TARGET_DIR) $$(BR2_ROOTFS_POST_SCRIPT_ARGS) >> $$(FAKEROOT_SCRIPT)$$(sep)) $$(foreach hook,$$(ROOTFS_$(2)_PRE_GEN_HOOKS),\ $$(call PRINTF,$$($$(hook))) >> $$(FAKEROOT_SCRIPT)$$(sep)) $$(call PRINTF,$$(ROOTFS_REPRODUCIBLE)) >> $$(FAKEROOT_SCRIPT) $$(call PRINTF,$$(ROOTFS_SELINUX)) >> $$(FAKEROOT_SCRIPT) $$(call PRINTF,$$(ROOTFS_$(2)_CMD)) >> $$(FAKEROOT_SCRIPT) chmod a+x $$(FAKEROOT_SCRIPT) PATH=$$(BR_PATH) FAKEROOTDONTTRYCHOWN=1 $$(HOST_DIR)/bin/fakeroot -- $$(FAKEROOT_SCRIPT) $(Q)rm -rf $$(TARGET_DIR) ifneq ($$(ROOTFS_$(2)_COMPRESS_CMD),) PATH=$$(BR_PATH) $$(ROOTFS_$(2)_COMPRESS_CMD) $$@ > $$@$$(ROOTFS_$(2)_COMPRESS_EXT) endif $$(foreach hook,$$(ROOTFS_$(2)_POST_GEN_HOOKS),$$(call $$(hook))$$(sep)) rootfs-$(1)-show-depends: @echo $$(ROOTFS_$(2)_DEPENDENCIES) rootfs-$(1)-show-info: @: $$(info $$(call clean-json,{ $$(call json-info,ROOTFS_$(2)) })) rootfs-$(1): $$(BINARIES_DIR)/$$(ROOTFS_$(2)_FINAL_IMAGE_NAME) .PHONY: rootfs-$(1) rootfs-$(1)-show-depends rootfs-$(1)-show-info ifeq ($$(BR2_TARGET_ROOTFS_$(2)),y) TARGETS_ROOTFS += rootfs-$(1) PACKAGES += $$(filter-out rootfs-%,$$(ROOTFS_$(2)_FINAL_RECURSIVE_DEPENDENCIES)) endif # Check for legacy POST_TARGETS rules ifneq ($$(ROOTFS_$(2)_POST_TARGETS),) $$(error Filesystem $(1) uses post-target rules, which are no longer supported.\ Update $(1) to use post-gen hooks instead) endif endef # $(pkgname) also works well to return the filesystem name rootfs = $(call inner-rootfs,$(pkgname),$(call UPPERCASE,$(pkgname))) include $(sort $(wildcard fs/*/*.mk)) ================================================ FILE: fs/cpio/Config.in ================================================ config BR2_TARGET_ROOTFS_CPIO bool "cpio the root filesystem (for use as an initial RAM filesystem)" help Build a cpio archive of the root filesystem. This is typically used for an initial RAM filesystem that is passed to the kernel by the bootloader. if BR2_TARGET_ROOTFS_CPIO choice prompt "Compression method" default BR2_TARGET_ROOTFS_CPIO_NONE help Select compressor for cpio filesystem of the root filesystem. If you use the cpio archive as an initial RAM filesystem, make sure the kernel contains the decompression algorithm selected here. config BR2_TARGET_ROOTFS_CPIO_NONE bool "no compression" help Do not compress the cpio filesystem. config BR2_TARGET_ROOTFS_CPIO_GZIP bool "gzip" help Do compress the cpio filesystem with gzip. config BR2_TARGET_ROOTFS_CPIO_BZIP2 bool "bzip2" help Do compress the cpio filesystem with bzip2. config BR2_TARGET_ROOTFS_CPIO_LZ4 bool "lz4" help Do compress the cpio filesystem with lz4. config BR2_TARGET_ROOTFS_CPIO_LZMA bool "lzma" help Do compress the cpio filesystem with lzma. config BR2_TARGET_ROOTFS_CPIO_LZO bool "lzo" help Do compress the cpio filesystem with lzop. config BR2_TARGET_ROOTFS_CPIO_XZ bool "xz" help Do compress the cpio filesystem with xz. config BR2_TARGET_ROOTFS_CPIO_ZSTD bool "zstd" help Do compress the cpio filesystem with zstd. endchoice config BR2_TARGET_ROOTFS_CPIO_UIMAGE bool "Create U-Boot image of the root filesystem" select BR2_PACKAGE_HOST_UBOOT_TOOLS help Add a U-Boot header to the cpio root filesystem. This allows the initramfs to be loaded with the bootm command in U-Boot. The U-Boot image will be called rootfs.cpio.uboot endif # BR2_TARGET_ROOTFS_CPIO ================================================ FILE: fs/cpio/cpio.mk ================================================ ################################################################################ # # cpio to archive target filesystem # ################################################################################ ifeq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y) define ROOTFS_CPIO_ADD_INIT if [ ! -e $(TARGET_DIR)/init ]; then \ ln -sf sbin/init $(TARGET_DIR)/init; \ fi endef else # devtmpfs does not get automounted when initramfs is used. # Add a pre-init script to mount it before running init # We must have /dev/console very early, even before /init runs, # for stdin/stdout/stderr define ROOTFS_CPIO_ADD_INIT if [ ! -e $(TARGET_DIR)/init ]; then \ $(INSTALL) -m 0755 fs/cpio/init $(TARGET_DIR)/init; \ fi mkdir -p $(TARGET_DIR)/dev mknod -m 0622 $(TARGET_DIR)/dev/console c 5 1 endef endif # BR2_ROOTFS_DEVICE_CREATION_STATIC ROOTFS_CPIO_PRE_GEN_HOOKS += ROOTFS_CPIO_ADD_INIT # --reproducible option was introduced in cpio v2.12, which may not be # available in some old distributions, so we build host-cpio ifeq ($(BR2_REPRODUCIBLE),y) ROOTFS_CPIO_DEPENDENCIES += host-cpio ROOTFS_CPIO_OPTS += --reproducible endif define ROOTFS_CPIO_CMD cd $(TARGET_DIR) && \ find . \ | LC_ALL=C sort \ | cpio $(ROOTFS_CPIO_OPTS) --quiet -o -H newc \ > $@ endef ifeq ($(BR2_TARGET_ROOTFS_CPIO_UIMAGE),y) ROOTFS_CPIO_DEPENDENCIES += host-uboot-tools define ROOTFS_CPIO_UBOOT_MKIMAGE $(MKIMAGE) -A $(MKIMAGE_ARCH) -T ramdisk \ -C none -d $@$(ROOTFS_CPIO_COMPRESS_EXT) $@.uboot endef ROOTFS_CPIO_POST_GEN_HOOKS += ROOTFS_CPIO_UBOOT_MKIMAGE endif $(eval $(rootfs)) ================================================ FILE: fs/cpio/init ================================================ #!/bin/sh # devtmpfs does not get automounted for initramfs /bin/mount -t devtmpfs devtmpfs /dev # use the /dev/console device node from devtmpfs if possible to not # confuse glibc's ttyname_r(). # This may fail (E.G. booted with console=), and errors from exec will # terminate the shell, so use a subshell for the test if (exec 0/dev/null; then exec 0/dev/console exec 2>/dev/console fi exec /sbin/init "$@" ================================================ FILE: fs/cramfs/Config.in ================================================ config BR2_TARGET_ROOTFS_CRAMFS bool "cramfs root filesystem" help Build a cramfs root filesystem https://github.com/npitre/cramfs-tools if BR2_TARGET_ROOTFS_CRAMFS config BR2_TARGET_ROOTFS_CRAMFS_XIP bool "Support XIP of all ELF files" help For ELF files, uncompressed and properly aligned data blocks will be automatically be mapped directly into user space whenever possible providing eXecute-In-Place (XIP) from ROM of read-only segments. Data segments mapped read-write (hence they have to be copied to RAM) may still be compressed in the cramfs image in the same file along with non compressed read-only segments. Both MMU and no-MMU systems are supported. This is particularly handy for tiny embedded systems with very tight memory constraints. The CRAMFS_MTD Kconfig option must also be enabled in a 4.15+ kernel. endif # BR2_TARGET_ROOTFS_CRAMFS ================================================ FILE: fs/cramfs/cramfs.mk ================================================ ################################################################################ # # Build the cramfs root filesystem image # ################################################################################ ifeq ($(BR2_ENDIAN),"BIG") CRAMFS_OPTS = -B else CRAMFS_OPTS = -L endif ifeq ($(BR2_TARGET_ROOTFS_CRAMFS_XIP),y) ifeq ($(BR2_USE_MMU),y) CRAMFS_OPTS += -X -X else CRAMFS_OPTS += -X endif endif define ROOTFS_CRAMFS_CMD $(HOST_DIR)/bin/mkcramfs $(CRAMFS_OPTS) $(TARGET_DIR) $@ endef ROOTFS_CRAMFS_DEPENDENCIES = host-cramfs $(eval $(rootfs)) ================================================ FILE: fs/erofs/Config.in ================================================ config BR2_TARGET_ROOTFS_EROFS bool "erofs root filesystem" select BR2_PACKAGE_HOST_EROFS_UTILS help Build a EROFS root filesystem. if BR2_TARGET_ROOTFS_EROFS config BR2_TARGET_ROOTFS_EROFS_LZ4HC bool "lz4hc compression" help Use lz4 high-compression to compress data in the filesystem. config BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE int "pcluster size" default 0 help Specify the maximum size of physical cluster in bytes, as a multiple of 4KiB, for the big pcluster feature in order to get much better compression ratios (thus better sequential read performance for common storage devices), which has been introduced since Linux 5.13. endif # BR2_TARGET_ROOTFS_EROFS ================================================ FILE: fs/erofs/erofs.mk ================================================ ################################################################################ # # Build the EROFS root filesystem image # ################################################################################ ROOTFS_EROFS_DEPENDENCIES = host-erofs-utils ifeq ($(BR2_TARGET_ROOTFS_EROFS_LZ4HC),y) ROOTFS_EROFS_ARGS += -zlz4hc endif ifneq ($(BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE),0) ROOTFS_EROFS_ARGS += -C$(strip $(BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE)) endif define ROOTFS_EROFS_CMD $(HOST_DIR)/bin/mkfs.erofs $(ROOTFS_EROFS_ARGS) $@ $(TARGET_DIR) endef $(eval $(rootfs)) ================================================ FILE: fs/ext2/Config.in ================================================ config BR2_TARGET_ROOTFS_EXT2 bool "ext2/3/4 root filesystem" select BR2_PACKAGE_HOST_E2FSPROGS help Build an ext2/3/4 root filesystem if BR2_TARGET_ROOTFS_EXT2 config BR2_TARGET_ROOTFS_EXT2_2 bool choice bool "ext2/3/4 variant" default BR2_TARGET_ROOTFS_EXT2_2r1 config BR2_TARGET_ROOTFS_EXT2_2r0 bool "ext2 (rev0)" select BR2_TARGET_ROOTFS_EXT2_2 config BR2_TARGET_ROOTFS_EXT2_2r1 bool "ext2 (rev1)" select BR2_TARGET_ROOTFS_EXT2_2 config BR2_TARGET_ROOTFS_EXT2_3 bool "ext3" config BR2_TARGET_ROOTFS_EXT2_4 bool "ext4" endchoice config BR2_TARGET_ROOTFS_EXT2_GEN int default 2 if BR2_TARGET_ROOTFS_EXT2_2 default 3 if BR2_TARGET_ROOTFS_EXT2_3 default 4 if BR2_TARGET_ROOTFS_EXT2_4 # All ext generations are revision 1, except ext2r0, which is revision 0 config BR2_TARGET_ROOTFS_EXT2_REV int default 0 if BR2_TARGET_ROOTFS_EXT2_2r0 default 1 if !BR2_TARGET_ROOTFS_EXT2_2r0 config BR2_TARGET_ROOTFS_EXT2_LABEL string "filesystem label" default "rootfs" config BR2_TARGET_ROOTFS_EXT2_SIZE string "exact size" default BR2_TARGET_ROOTFS_EXT2_BLOCKS if BR2_TARGET_ROOTFS_EXT2_BLOCKS_WRAP # legacy 2017.08 default "60M" help The size of the filesystem image. If it does not have a suffix, it is interpreted as power-of-two kilobytes. If it is suffixed by 'k', 'm', 'g', 't' (either upper-case or lower-case), then it is interpreted in power-of-two kilobytes, megabytes, gigabytes, terabytes, etc. config BR2_TARGET_ROOTFS_EXT2_INODES int "exact number of inodes (leave at 0 for auto calculation)" default 0 config BR2_TARGET_ROOTFS_EXT2_RESBLKS int "reserved blocks percentage" default 5 help The number of blocks on the filesystem (as a percentage of the total number of blocks), that are reserved for use by root. Traditionally, this has been 5%, and all ext-related tools still default to reserving 5% when creating a new ext filesystem. config BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS string "additional mke2fs options" default "-O ^64bit" help Specify a space-separated list of mke2fs options, including any ext2/3/4 filesystem features. For more information about the mke2fs options, see the manual page mke2fs(8). For more information about the ext2/3/4 features which can be set, see the manual page ext4(5). The default is "-O ^64bit", i.e. disable 64-bit filesystem support. This default value has been chosen because U-Boot versions before 2017.02 don't support this filesystem option: using it may make the filesystem unreadable by U-Boot. choice prompt "Compression method" default BR2_TARGET_ROOTFS_EXT2_NONE help Select compressor for ext2/3/4 filesystem of the root filesystem config BR2_TARGET_ROOTFS_EXT2_NONE bool "no compression" help Do not compress the ext2/3/4 filesystem. config BR2_TARGET_ROOTFS_EXT2_GZIP bool "gzip" help Do compress the ext2/3/4 filesystem with gzip. config BR2_TARGET_ROOTFS_EXT2_BZIP2 bool "bzip2" help Do compress the ext2/3/4 filesystem with bzip2. config BR2_TARGET_ROOTFS_EXT2_LZ4 bool "lz4" help Do compress the ext2 filesystem with lz4. config BR2_TARGET_ROOTFS_EXT2_LZMA bool "lzma" help Do compress the ext2/3/4 filesystem with lzma. config BR2_TARGET_ROOTFS_EXT2_LZO bool "lzo" help Do compress the ext2 filesystem with lzop. config BR2_TARGET_ROOTFS_EXT2_XZ bool "xz" help Do compress the ext2 filesystem with xz. endchoice endif # BR2_TARGET_ROOTFS_EXT2 ================================================ FILE: fs/ext2/ext2.mk ================================================ ################################################################################ # # Build the ext2 root filesystem image # ################################################################################ ROOTFS_EXT2_SIZE = $(call qstrip,$(BR2_TARGET_ROOTFS_EXT2_SIZE)) ifeq ($(BR2_TARGET_ROOTFS_EXT2)-$(ROOTFS_EXT2_SIZE),y-) $(error BR2_TARGET_ROOTFS_EXT2_SIZE cannot be empty) endif ROOTFS_EXT2_MKFS_OPTS = $(call qstrip,$(BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS)) # qstrip results in stripping consecutive spaces into a single one. So the # variable is not qstrip-ed to preserve the integrity of the string value. ROOTFS_EXT2_LABEL = $(subst ",,$(BR2_TARGET_ROOTFS_EXT2_LABEL)) #" Syntax highlighting... :-/ ) ROOTFS_EXT2_OPTS = \ -d $(TARGET_DIR) \ -r $(BR2_TARGET_ROOTFS_EXT2_REV) \ -N $(BR2_TARGET_ROOTFS_EXT2_INODES) \ -m $(BR2_TARGET_ROOTFS_EXT2_RESBLKS) \ -L "$(ROOTFS_EXT2_LABEL)" \ $(ROOTFS_EXT2_MKFS_OPTS) ROOTFS_EXT2_DEPENDENCIES = host-e2fsprogs define ROOTFS_EXT2_CMD rm -f $@ $(HOST_DIR)/sbin/mkfs.ext$(BR2_TARGET_ROOTFS_EXT2_GEN) $(ROOTFS_EXT2_OPTS) $@ \ "$(ROOTFS_EXT2_SIZE)" \ || { ret=$$?; \ echo "*** Maybe you need to increase the filesystem size (BR2_TARGET_ROOTFS_EXT2_SIZE)" 1>&2; \ exit $$ret; \ } endef ifneq ($(BR2_TARGET_ROOTFS_EXT2_GEN),2) define ROOTFS_EXT2_SYMLINK ln -sf rootfs.ext2$(ROOTFS_EXT2_COMPRESS_EXT) $(BINARIES_DIR)/rootfs.ext$(BR2_TARGET_ROOTFS_EXT2_GEN)$(ROOTFS_EXT2_COMPRESS_EXT) endef ROOTFS_EXT2_POST_GEN_HOOKS += ROOTFS_EXT2_SYMLINK endif $(eval $(rootfs)) ================================================ FILE: fs/f2fs/Config.in ================================================ config BR2_TARGET_ROOTFS_F2FS bool "f2fs root filesystem" select BR2_PACKAGE_HOST_F2FS_TOOLS help Build a f2fs root filesystem. If you enable this option, you probably want to enable the f2fs-tools package too. if BR2_TARGET_ROOTFS_F2FS config BR2_TARGET_ROOTFS_F2FS_LABEL string "filesystem label" config BR2_TARGET_ROOTFS_F2FS_SIZE string "filesystem size" default "100M" help The size of the filesystem image in bytes. Suffix with K, M, G or T for power-of-two kilo-, mega-, giga- or terabytes. config BR2_TARGET_ROOTFS_F2FS_COLD_FILES string "extension list for cold files" help Specify a comma separated file extension list in order f2fs to treat them as cold files. The default list includes most of multimedia file extensions such as jpg, gif, mpeg, mkv, and so on. config BR2_TARGET_ROOTFS_F2FS_HOT_FILES string "extension list for hot files" help Specify a comma separated file extension list in order f2fs to treat them as hot files. The default list includes only a db extension. config BR2_TARGET_ROOTFS_F2FS_OVERPROVISION int "overprovision ratio" default 0 help The percentage over the volume size for overprovision area. This area is hidden to users, and utilized by F2FS cleaner. Leave at 0 for autocalculation according to the partition size. config BR2_TARGET_ROOTFS_F2FS_DISCARD bool "discard policy" default y help Enable or disable discard policy. config BR2_TARGET_ROOTFS_F2FS_FEATURES string "filesystem features" help List of features that the F2FS filesystem should support (e.g "encrypt") endif # BR2_TARGET_ROOTFS_F2FS ================================================ FILE: fs/f2fs/f2fs.mk ================================================ ################################################################################ # # Build the f2fs root filesystem image # ################################################################################ F2FS_SIZE = $(call qstrip,$(BR2_TARGET_ROOTFS_F2FS_SIZE)) ifeq ($(BR2_TARGET_ROOTFS_F2FS)-$(F2FS_SIZE),y-) $(error BR2_TARGET_ROOTFS_F2FS_SIZE cannot be empty) endif # qstrip results in stripping consecutive spaces into a single one. So the # variable is not qstrip-ed to preserve the integrity of the string value. F2FS_LABEL = $(subst ",,$(BR2_TARGET_ROOTFS_F2FS_LABEL)) # ") F2FS_COLD_FILES = $(call qstrip,$(BR2_TARGET_ROOTFS_F2FS_COLD_FILES)) F2FS_HOT_FILES = $(call qstrip,$(BR2_TARGET_ROOTFS_F2FS_HOT_FILES)) ifeq ($(BR2_TARGET_ROOTFS_F2FS_DISCARD),y) F2FS_DISCARD = 1 else F2FS_DISCARD = 0 endif F2FS_FEATURES = $(call qstrip,$(BR2_TARGET_ROOTFS_F2FS_FEATURES)) F2FS_OPTS = \ -f \ -l "$(F2FS_LABEL)" \ -t $(F2FS_DISCARD) \ -o $(BR2_TARGET_ROOTFS_F2FS_OVERPROVISION) \ $(if $(F2FS_COLD_FILES),-e "$(F2FS_COLD_FILES)") \ $(if $(F2FS_HOT_FILES),-E "$(F2FS_HOT_FILES)") \ $(if $(F2FS_FEATURES),-O "$(F2FS_FEATURES)") ROOTFS_F2FS_DEPENDENCIES = host-f2fs-tools define ROOTFS_F2FS_CMD $(RM) -f $@ truncate -s $(F2FS_SIZE) $@ $(HOST_DIR)/sbin/mkfs.f2fs $(F2FS_OPTS) $@ $(HOST_DIR)/sbin/sload.f2fs -f $(TARGET_DIR) $@ endef $(eval $(rootfs)) ================================================ FILE: fs/initramfs/Config.in ================================================ config BR2_TARGET_ROOTFS_INITRAMFS bool "initial RAM filesystem linked into linux kernel" depends on BR2_LINUX_KERNEL select BR2_TARGET_ROOTFS_CPIO help Integrate the root filesystem generated by Buildroot as an initramfs inside the kernel image. This integration will take place automatically. A rootfs.cpio file will be generated in the images/ directory. This is the archive that will be included in the kernel image. The default rootfs compression set in the kernel configuration is used, regardless of how buildroot's cpio archive is configured. Note that enabling initramfs together with another filesystem formats doesn't make sense: you would end up having two identical root filesystems, one embedded inside the kernel image, and one separately. comment "initramfs needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL ================================================ FILE: fs/initramfs/initramfs.mk ================================================ ################################################################################ # # Build a kernel with an integrated initial ramdisk filesystem based on cpio. # ################################################################################ # The generic fs infrastructure isn't very useful here. # # The initramfs image does not actually build an image; its only purpose is: # 1- to ensure rootfs.cpio is generated, # 2- to then rebuild the kernel with rootfs.cpio as initramfs # # Note: ordering of the dependencies is not guaranteed here, but in # linux/linux.mk, via the linux-rebuild-with-initramfs rule, which depends # on the rootfs-cpio filesystem rule. # # Note: the trick here is that we directly depend on rebuilding the Linux # kernel image (which itself depends on the rootfs-cpio rule), while we # advertise that our dependency is on the rootfs-cpio rule, which is # cleaner in the dependency graph. rootfs-initramfs: linux-rebuild-with-initramfs rootfs-initramfs-show-depends: @echo rootfs-cpio .PHONY: rootfs-initramfs rootfs-initramfs-show-depends ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y) TARGETS_ROOTFS += rootfs-initramfs endif # Not using the rootfs infra, so fake the variables ROOTFS_INITRAMFS_NAME = rootfs-initramfs ROOTFS_INITRAMFS_TYPE = rootfs ROOTFS_INITRAMFS_DEPENDENCIES = rootfs-cpio linux ================================================ FILE: fs/iso9660/Config.in ================================================ config BR2_TARGET_ROOTFS_ISO9660 bool "iso image" depends on (BR2_i386 || BR2_x86_64) depends on BR2_LINUX_KERNEL depends on BR2_TARGET_GRUB2 || BR2_TARGET_SYSLINUX_ISOLINUX select BR2_LINUX_KERNEL_INSTALL_TARGET \ if (!BR2_TARGET_ROOTFS_ISO9660_INITRD && !BR2_TARGET_ROOTFS_INITRAMFS) help Build a bootable ISO9660 image. By default, the root filesystem is directly packed as the ISO9660 filesystem, which means the root filesystem will be read-only. It requires ISO9660 filesystem support and CDROM support in the kernel. However, if BR2_TARGET_ROOTFS_INITRAMFS or BR2_TARGET_ROOTFS_ISO9660_INITRD have been enabled, the ISO9660 filesystem will only contain a kernel image and optionally an external initrd image. In this case, the filesystem being in RAM, it will be read/write. No ISO9660 or CDROM support is needed in the kernel. if BR2_TARGET_ROOTFS_ISO9660 choice prompt "Bootloader" config BR2_TARGET_ROOTFS_ISO9660_GRUB2 bool "grub2" depends on BR2_TARGET_GRUB2 select BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER \ if BR2_TARGET_GRUB2_I386_PC select BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER \ if (BR2_TARGET_GRUB2_I386_EFI || BR2_TARGET_GRUB2_X86_64_EFI) help Use Grub 2 as the bootloader for the ISO9660 image. Make sure to enable the 'iso9660' module in BR2_TARGET_GRUB2_BUILTIN_MODULES_PC or BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI. Use 'cd' as the boot partition in BR2_TARGET_GRUB2_BOOT_PARTITION= for GRUB on BIOS or 'set root=(cd0)' in the configuration file passed to BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI for GRUB on EFI. config BR2_TARGET_ROOTFS_ISO9660_ISOLINUX bool "isolinux" depends on BR2_TARGET_SYSLINUX_ISOLINUX select BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER endchoice config BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER bool config BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER bool config BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU string "Boot menu config file" default "fs/iso9660/grub.cfg" if BR2_TARGET_ROOTFS_ISO9660_GRUB2 default "fs/iso9660/isolinux.cfg" if BR2_TARGET_ROOTFS_ISO9660_ISOLINUX help Use this option to provide a custom bootloader configuration file (grub.cfg for Grub 2, isolinux.cfg for isolinux). Note that the strings __KERNEL_PATH__ and __INITRD_PATH__ will automatically be replaced by the path to the kernel and initrd images respectively. config BR2_TARGET_ROOTFS_ISO9660_INITRD bool "Use initrd" default y select BR2_TARGET_ROOTFS_CPIO help Enable this option to have the root filesystem bundled as an initrd/initramfs rather than directly as the ISO9660 filesystem. With this option enabled, the ISO9660 will only contain a kernel image, an initrd image (unless an initramfs linked into the kernel is used) and the bootloader. config BR2_TARGET_ROOTFS_ISO9660_TRANSPARENT_COMPRESSION bool "transparent compression" depends on !BR2_TARGET_ROOTFS_ISO9660_INITRD depends on !BR2_TARGET_ROOTFS_INITRAMFS help Say 'y' to enable use of transparent (de)compression. Files are stored compressed and will be decompressed on-the-fly upon access at runtime. config BR2_TARGET_ROOTFS_ISO9660_HYBRID bool "Build hybrid image" depends on BR2_TARGET_ROOTFS_ISO9660_ISOLINUX help Enable this option to build an hybrid image, i.e an image which can either be booted from a CD-ROM or from a device which BIOS considers a hard disk or ZIP disk, e.g. a USB key or similar. endif comment "iso image needs a Linux kernel and either grub2 or isolinux to be built" depends on BR2_i386 || BR2_x86_64 depends on !BR2_LINUX_KERNEL || \ !(BR2_TARGET_GRUB2 || BR2_TARGET_SYSLINUX_ISOLINUX) ================================================ FILE: fs/iso9660/grub.cfg ================================================ set default="0" set timeout="10" menuentry "Buildroot" { linux __KERNEL_PATH__ root=/dev/sr0 initrd __INITRD_PATH__ } ================================================ FILE: fs/iso9660/iso9660.mk ================================================ ################################################################################ # # Build the iso96600 root filesystem image # ################################################################################ # # We need to handle three cases: # # 1. The ISO9660 filesystem will really be the real root filesystem # itself. This is when BR2_TARGET_ROOTFS_ISO9660_INITRD is # disabled. # # 2. The ISO9660 filesystem will be a filesystem with just a kernel # image, initrd and grub. This is when # BR2_TARGET_ROOTFS_ISO9660_INITRD is enabled, but # BR2_TARGET_ROOTFS_INITRAMFS is disabled. # # 3. The ISO9660 filesystem will be a filesystem with just a kernel # image and grub. This is like (2), except that the initrd is # built into the kernel image. This is when # BR2_TARGET_ROOTFS_INITRAMFS is enabled (regardless of the value # of BR2_TARGET_ROOTFS_ISO9660_INITRD). ROOTFS_ISO9660_BOOT_MENU = $(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU)) ROOTFS_ISO9660_DEPENDENCIES = host-xorriso linux ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y) ROOTFS_ISO9660_USE_INITRD = YES endif ifeq ($(BR2_TARGET_ROOTFS_ISO9660_INITRD),y) ROOTFS_ISO9660_USE_INITRD = YES endif ifeq ($(ROOTFS_ISO9660_USE_INITRD),YES) ROOTFS_ISO9660_TMP_TARGET_DIR = $(FS_DIR)/rootfs.iso9660.tmp define ROOTFS_ISO9660_CREATE_TEMPDIR $(RM) -rf $(ROOTFS_ISO9660_TMP_TARGET_DIR) mkdir -p $(ROOTFS_ISO9660_TMP_TARGET_DIR) endef ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_CREATE_TEMPDIR else ifeq ($(BR2_TARGET_ROOTFS_ISO9660_TRANSPARENT_COMPRESSION),y) ROOTFS_ISO9660_DEPENDENCIES += host-zisofs-tools ROOTFS_ISO9660_TMP_TARGET_DIR = $(FS_DIR)/rootfs.iso9660.tmp # This must be early, before we copy the bootloader files. define ROOTFS_ISO9660_MKZFTREE $(RM) -rf $(ROOTFS_ISO9660_TMP_TARGET_DIR) $(HOST_DIR)/bin/mkzftree -X -z 9 -p $(PARALLEL_JOBS) \ $(TARGET_DIR) \ $(ROOTFS_ISO9660_TMP_TARGET_DIR) endef ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_MKZFTREE ROOTFS_ISO9660_OPTS += -z else ROOTFS_ISO9660_TMP_TARGET_DIR = $(TARGET_DIR) endif ifeq ($(BR2_REPRODUCIBLE),y) ROOTFS_ISO9660_VFAT_OPTS = --invariant ROOTFS_ISO9660_FIX_TIME = touch -d @$(SOURCE_DATE_EPOCH) else ROOTFS_ISO9660_FIX_TIME = : endif ifeq ($(BR2_TARGET_ROOTFS_ISO9660_GRUB2)$(BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER),yy) ROOTFS_ISO9660_DEPENDENCIES += grub2 ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH = \ $(ROOTFS_ISO9660_TMP_TARGET_DIR)/boot/grub/grub.cfg ROOTFS_ISO9660_BOOT_IMAGE = boot/grub/grub-eltorito.img define ROOTFS_ISO9660_INSTALL_BOOTLOADER_BIOS $(INSTALL) -D -m 0644 $(BINARIES_DIR)/grub-eltorito.img \ $(ROOTFS_ISO9660_TMP_TARGET_DIR)/boot/grub/grub-eltorito.img endef endif ifeq ($(BR2_TARGET_ROOTFS_ISO9660_GRUB2)$(BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER),yy) ROOTFS_ISO9660_DEPENDENCIES += grub2 host-dosfstools host-mtools ROOTFS_ISO9660_EFI_PARTITION = boot/fat.efi ROOTFS_ISO9660_EFI_PARTITION_PATH = $(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_EFI_PARTITION) ROOTFS_ISO9660_EFI_PARTITION_CONTENT = $(BINARIES_DIR)/efi-part ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH = \ $(ROOTFS_ISO9660_TMP_TARGET_DIR)/boot/grub/grub.cfg define ROOTFS_ISO9660_INSTALL_BOOTLOADER_EFI rm -rf $(ROOTFS_ISO9660_EFI_PARTITION_PATH) mkdir -p $(dir $(ROOTFS_ISO9660_EFI_PARTITION_PATH)) dd if=/dev/zero of=$(ROOTFS_ISO9660_EFI_PARTITION_PATH) bs=1M count=1 $(HOST_DIR)/sbin/mkfs.vfat $(ROOTFS_ISO9660_VFAT_OPTS) $(ROOTFS_ISO9660_EFI_PARTITION_PATH) $(ROOTFS_ISO9660_FIX_TIME) $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/* $(HOST_DIR)/bin/mcopy -p -m -i $(ROOTFS_ISO9660_EFI_PARTITION_PATH) -s \ $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/* ::/ $(ROOTFS_ISO9660_FIX_TIME) $(ROOTFS_ISO9660_EFI_PARTITION_PATH) endef endif ifeq ($(BR2_TARGET_ROOTFS_ISO9660_ISOLINUX),y) ROOTFS_ISO9660_DEPENDENCIES += syslinux ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH = \ $(ROOTFS_ISO9660_TMP_TARGET_DIR)/isolinux/isolinux.cfg ROOTFS_ISO9660_BOOT_IMAGE = isolinux/isolinux.bin define ROOTFS_ISO9660_INSTALL_BOOTLOADER_BIOS $(INSTALL) -D -m 0644 $(BINARIES_DIR)/syslinux/* \ $(ROOTFS_ISO9660_TMP_TARGET_DIR)/isolinux/ $(INSTALL) -D -m 0644 $(HOST_DIR)/share/syslinux/ldlinux.c32 \ $(ROOTFS_ISO9660_TMP_TARGET_DIR)/isolinux/ldlinux.c32 endef endif define ROOTFS_ISO9660_PREPARATION $(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_BOOT_MENU) \ $(ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH) $(SED) "s%__KERNEL_PATH__%/boot/$(LINUX_IMAGE_NAME)%" \ $(ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH) $(ROOTFS_ISO9660_INSTALL_BOOTLOADER_BIOS) $(ROOTFS_ISO9660_INSTALL_BOOTLOADER_EFI) endef ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_PREPARATION define ROOTFS_ISO9660_DISABLE_EXTERNAL_INITRD $(SED) '/__INITRD_PATH__/d' $(ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH) endef # Copy the kernel to temporary filesystem define ROOTFS_ISO9660_COPY_KERNEL $(INSTALL) -D -m 0644 $(LINUX_IMAGE_PATH) \ $(ROOTFS_ISO9660_TMP_TARGET_DIR)/boot/$(LINUX_IMAGE_NAME) endef ifeq ($(ROOTFS_ISO9660_USE_INITRD),YES) ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_COPY_KERNEL # If initramfs is used, disable loading the initrd as the rootfs is # already inside the kernel image. Otherwise, make sure a cpio is # generated and use it as the initrd. ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y) ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_DISABLE_EXTERNAL_INITRD else ROOTFS_ISO9660_DEPENDENCIES += rootfs-cpio define ROOTFS_ISO9660_COPY_INITRD $(INSTALL) -D -m 0644 $(BINARIES_DIR)/rootfs.cpio$(ROOTFS_CPIO_COMPRESS_EXT) \ $(ROOTFS_ISO9660_TMP_TARGET_DIR)/boot/initrd $(SED) "s%__INITRD_PATH__%/boot/initrd%" \ $(ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH) endef ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_COPY_INITRD endif else # ROOTFS_ISO9660_USE_INITRD ifeq ($(BR2_TARGET_ROOTFS_ISO9660_TRANSPARENT_COMPRESSION),y) # We must use the uncompressed kernel image ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_COPY_KERNEL endif ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_DISABLE_EXTERNAL_INITRD endif # ROOTFS_ISO9660_USE_INITRD ROOTFS_ISO9660_OPTS += -J -R ROOTFS_ISO9660_OPTS_BIOS = \ -b $(ROOTFS_ISO9660_BOOT_IMAGE) \ -no-emul-boot \ -boot-load-size 4 \ -boot-info-table ROOTFS_ISO9660_OPTS_EFI = \ --efi-boot $(ROOTFS_ISO9660_EFI_PARTITION) \ -no-emul-boot ifeq ($(BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER)$(BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER),yy) ROOTFS_ISO9660_OPTS += \ $(ROOTFS_ISO9660_OPTS_BIOS) \ -eltorito-alt-boot \ $(ROOTFS_ISO9660_OPTS_EFI) else ifeq ($(BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER),y) ROOTFS_ISO9660_OPTS += $(ROOTFS_ISO9660_OPTS_BIOS) else ifeq ($(BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER),y) ROOTFS_ISO9660_OPTS += $(ROOTFS_ISO9660_OPTS_EFI) endif define ROOTFS_ISO9660_CMD $(HOST_DIR)/bin/xorriso -as mkisofs \ $(ROOTFS_ISO9660_OPTS) \ -o $@ $(ROOTFS_ISO9660_TMP_TARGET_DIR) endef ifeq ($(BR2_TARGET_ROOTFS_ISO9660_HYBRID),y) define ROOTFS_ISO9660_GEN_HYBRID $(HOST_DIR)/bin/isohybrid -t 0x96 $@ endef ROOTFS_ISO9660_POST_GEN_HOOKS += ROOTFS_ISO9660_GEN_HYBRID endif $(eval $(rootfs)) ================================================ FILE: fs/iso9660/isolinux.cfg ================================================ default 1 label 1 kernel __KERNEL_PATH__ initrd __INITRD_PATH__ append root=/dev/sr0 ================================================ FILE: fs/jffs2/Config.in ================================================ config BR2_TARGET_ROOTFS_JFFS2 bool "jffs2 root filesystem" help Build a jffs2 root filesystem if BR2_TARGET_ROOTFS_JFFS2 choice prompt "Flash Type" default BR2_TARGET_ROOTFS_JFFS2_FLASH_128 config BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056 bool "AT45 dataflash with 1056 byte pagesize" select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER config BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528 bool "AT45 dataflash with 528 byte pagesize" select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER config BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_16K bool "NAND flash with 16 kB erasesize" select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER config BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K bool "NAND flash with 128 kB erasesize" select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER config BR2_TARGET_ROOTFS_JFFS2_FLASH_128 bool "Parallel flash with 128 kB erase size" config BR2_TARGET_ROOTFS_JFFS2_FLASH_64 bool "Parallel flash with 64 kB erase size" config BR2_TARGET_ROOTFS_JFFS2_CUSTOM bool "Select custom erase size" endchoice config BR2_TARGET_ROOTFS_JFFS2_CUSTOM_EBSIZE hex "Erase block size" default 0x20000 depends on BR2_TARGET_ROOTFS_JFFS2_CUSTOM help Set to erase size of memory config BR2_TARGET_ROOTFS_JFFS2_EBSIZE hex default 0x2100 if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056 default 0x1080 if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528 default 0x4000 if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_16K default 0x20000 if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K default 0x20000 if BR2_TARGET_ROOTFS_JFFS2_FLASH_128 default 0x10000 if BR2_TARGET_ROOTFS_JFFS2_FLASH_64 default BR2_TARGET_ROOTFS_JFFS2_CUSTOM_EBSIZE if BR2_TARGET_ROOTFS_JFFS2_CUSTOM config BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER bool "Do not use Cleanmarker" default y if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056 default y if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528 default y if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_16K default y if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K help Do not use cleanmarkers if using NAND flash or Dataflash where the pagesize is not a power of 2 config BR2_TARGET_ROOTFS_JFFS2_PAD bool "Pad output" config BR2_TARGET_ROOTFS_JFFS2_PADSIZE hex "Pad output size (0x0 = to end of EB)" default 0x0 depends on BR2_TARGET_ROOTFS_JFFS2_PAD help Set to 0x0 to pad to end of erase block. choice prompt "Endianess" default BR2_TARGET_ROOTFS_JFFS2_BE if BR2_ENDIAN = "BIG" config BR2_TARGET_ROOTFS_JFFS2_LE bool "little-endian" config BR2_TARGET_ROOTFS_JFFS2_BE bool "big-endian" endchoice config BR2_TARGET_ROOTFS_JFFS2_SUMMARY bool "Produce a summarized JFFS2 image" help A summarised image can be mounted faster if support is enabled in the kernel (CONFIG_JFFS2_SUMMARY) config BR2_TARGET_ROOTFS_JFFS2_USE_CUSTOM_PAGESIZE bool "Select custom virtual memory page size" help Use a custom virtual memory page size. Note that this is not related to the flash memory page size. Using this option is only needed if Linux is configured to use a page size different than 4kB. config BR2_TARGET_ROOTFS_JFFS2_CUSTOM_PAGESIZE hex "Virtual memory page size" default 0x1000 depends on BR2_TARGET_ROOTFS_JFFS2_USE_CUSTOM_PAGESIZE help Set to virtual memory page size of target system (in bytes). This value should match the virtual page size in Linux (i.e. this should have the same value as the value of the PAGE_SIZE macro in Linux). It is not related to the flash memory page size. endif ================================================ FILE: fs/jffs2/jffs2.mk ================================================ ################################################################################ # # Build the jffs2 root filesystem image # ################################################################################ JFFS2_OPTS = -e $(BR2_TARGET_ROOTFS_JFFS2_EBSIZE) --with-xattr SUMTOOL_OPTS = -e $(BR2_TARGET_ROOTFS_JFFS2_EBSIZE) ifeq ($(BR2_TARGET_ROOTFS_JFFS2_PAD),y) ifneq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE)),0x0) JFFS2_OPTS += --pad=$(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE)) else JFFS2_OPTS += -p endif SUMTOOL_OPTS += -p endif ifeq ($(BR2_TARGET_ROOTFS_JFFS2_LE),y) JFFS2_OPTS += -l SUMTOOL_OPTS += -l endif ifeq ($(BR2_TARGET_ROOTFS_JFFS2_BE),y) JFFS2_OPTS += -b SUMTOOL_OPTS += -b endif ifeq ($(BR2_TARGET_ROOTFS_JFFS2_USE_CUSTOM_PAGESIZE),y) JFFS2_OPTS += -s $(BR2_TARGET_ROOTFS_JFFS2_CUSTOM_PAGESIZE) endif ifeq ($(BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER),y) JFFS2_OPTS += -n SUMTOOL_OPTS += -n endif 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 $@ rm $@.nosummary endef else define ROOTFS_JFFS2_CMD $(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $@ endef endif $(eval $(rootfs)) ================================================ FILE: fs/oci/Config.in ================================================ config BR2_TARGET_ROOTFS_OCI bool "oci image" help Build an OCI (Open Container Initiative) image. By default, the image is generated in a directory called rootfs-oci: $ cd output/images $ ls rootfs-oci/ blobs index.json oci-layout You can push the image to a registry. Example using skopeo: $ skopeo copy --dest-creds : \ oci:rootfs-oci: docker:///[:tag] And pull/run it with docker: $ docker run -it /[:tag] if BR2_TARGET_ROOTFS_OCI config BR2_TARGET_ROOTFS_OCI_AUTHOR string "author name and/or email address" default "Buildroot" help Name and/or email address of the person which created the image. config BR2_TARGET_ROOTFS_OCI_TAG string "image tag" default "latest" help Tag to be used in the container image. If empty, 'latest' will be used by default. config BR2_TARGET_ROOTFS_OCI_ENTRYPOINT string "entrypoint" default "sh" help Command to execute when the container starts. config BR2_TARGET_ROOTFS_OCI_ENTRYPOINT_ARGS string "entrypoint arguments" help Default arguments to the entrypoint of the container. config BR2_TARGET_ROOTFS_OCI_WORKDIR string "working directory" help Working directory of the entrypoint process in the container. config BR2_TARGET_ROOTFS_OCI_UID string "username or UID" default "0" help The username or UID of user the process run as. config BR2_TARGET_ROOTFS_OCI_ENV_VARS string "environment variables" help Default environment variables for the container. Space-separated list of variable=value assignments. config BR2_TARGET_ROOTFS_OCI_PORTS string "ports" help Default set of ports to expose from a container running this image as a space-separted list of ports in the following format: /tcp, /udp, (same as /tcp). config BR2_TARGET_ROOTFS_OCI_LABELS string "labels" help Metadata in the format KEY=VALUE for the container compliant with OCI annotation rules. If KEY starts with a dot, it will be prefixed with "org.opencontainers.image" (e.g. .url -> org.opencontainers.image.url). config BR2_TARGET_ROOTFS_OCI_ARCHIVE bool "pack oci image into a tar archive" help Select whether the image should be packed into a TAR archive. endif ================================================ FILE: fs/oci/oci.mk ================================================ ################################################################################ # # Build the oci image # ################################################################################ ROOTFS_OCI_DEPENDENCIES = host-sloci-image # architecture - take it from Go OCI_SLOCI_IMAGE_OPTS = --arch $(GO_GOARCH) # architecture variant (typically used only for arm) OCI_SLOCI_IMAGE_OPTS += $(and $(GO_GOARM),--arch-variant v$(GO_GOARM)) # entrypoint OCI_ENTRYPOINT = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_ENTRYPOINT)) ifneq ($(OCI_ENTRYPOINT),) OCI_SLOCI_IMAGE_OPTS += --entrypoint "$(OCI_ENTRYPOINT)" endif # entrypoint arguments OCI_ENTRYPOINT_ARGS = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_ENTRYPOINT_ARGS)) ifneq ($(OCI_ENTRYPOINT_ARGS),) OCI_SLOCI_IMAGE_OPTS += --cmd "$(OCI_ENTRYPOINT_ARGS)" endif # author OCI_AUTHOR = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_AUTHOR)) ifneq ($(OCI_AUTHOR),) OCI_SLOCI_IMAGE_OPTS += --author "$(OCI_AUTHOR)" endif # username or UID OCI_UID = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_UID)) ifneq ($(OCI_UID),) OCI_SLOCI_IMAGE_OPTS += --user "$(OCI_UID)" endif # labels OCI_LABELS = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_LABELS)) ifneq ($(OCI_LABELS),) OCI_SLOCI_IMAGE_OPTS += \ $(foreach label,$(OCI_LABELS),--label "$(label)") endif # environment variables OCI_ENV_VARS = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_ENV_VARS)) ifneq ($(OCI_ENV_VARS),) OCI_SLOCI_IMAGE_OPTS += \ $(foreach var,$(OCI_ENV_VARS),--env "$(var)") endif # working directory OCI_WORKDIR = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_WORKDIR)) ifneq ($(OCI_WORKDIR),) OCI_SLOCI_IMAGE_OPTS += --working-dir "$(OCI_WORKDIR)" endif # ports OCI_PORTS = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_PORTS)) ifneq ($(OCI_PORTS),) OCI_SLOCI_IMAGE_OPTS += \ $(foreach port,$(OCI_PORTS),--port "$(port)") endif # tag OCI_TAG = $(or $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_TAG)),latest) # enable tar archive ifeq ($(BR2_TARGET_ROOTFS_OCI_ARCHIVE),y) OCI_SLOCI_IMAGE_OPTS += --tar endif define ROOTFS_OCI_CMD rm -rf $(BINARIES_DIR)/rootfs-oci $(HOST_DIR)/bin/sloci-image $(OCI_SLOCI_IMAGE_OPTS) $(TARGET_DIR) \ $(BINARIES_DIR)/rootfs-oci:$(OCI_TAG) endef $(eval $(rootfs)) ================================================ FILE: fs/romfs/Config.in ================================================ config BR2_TARGET_ROOTFS_ROMFS bool "romfs root filesystem" help Build a romfs image of the root filesystem. ================================================ FILE: fs/romfs/romfs.mk ================================================ ################################################################################ # # Build the romfs root filesystem image # ################################################################################ ROOTFS_ROMFS_DEPENDENCIES = host-genromfs define ROOTFS_ROMFS_CMD $(HOST_DIR)/bin/genromfs -d $(TARGET_DIR) -f $@ endef $(eval $(rootfs)) ================================================ FILE: fs/squashfs/Config.in ================================================ config BR2_TARGET_ROOTFS_SQUASHFS bool "squashfs root filesystem" help Build a squashfs root filesystem if BR2_TARGET_ROOTFS_SQUASHFS config BR2_TARGET_ROOTFS_SQUASHFS_PAD bool "pad to a 4K boundary" default y # legacy was always ON help Say 'y' here (the default) to pad the the filesystem image to a 4K boundary. Say 'n' to disable padding. choice prompt "Compression algorithm" default BR2_TARGET_ROOTFS_SQUASHFS4_GZIP help Select the squashfs compression algorithm to use when generating the filesystem. config BR2_TARGET_ROOTFS_SQUASHFS4_GZIP bool "gzip" config BR2_TARGET_ROOTFS_SQUASHFS4_LZ4 bool "lz4" config BR2_TARGET_ROOTFS_SQUASHFS4_LZMA bool "lzma" config BR2_TARGET_ROOTFS_SQUASHFS4_LZO bool "lzo" config BR2_TARGET_ROOTFS_SQUASHFS4_XZ bool "xz" config BR2_TARGET_ROOTFS_SQUASHFS4_ZSTD bool "zstd" endchoice endif ================================================ FILE: fs/squashfs/squashfs.mk ================================================ ################################################################################ # # Build the squashfs root filesystem image # ################################################################################ ROOTFS_SQUASHFS_DEPENDENCIES = host-squashfs ROOTFS_SQUASHFS_ARGS = -noappend -processors $(PARALLEL_JOBS) ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS_PAD),) ROOTFS_SQUASHFS_ARGS += -nopad endif ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS4_LZ4),y) ROOTFS_SQUASHFS_ARGS += -comp lz4 -Xhc else ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS4_LZO),y) ROOTFS_SQUASHFS_ARGS += -comp lzo else ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS4_LZMA),y) ROOTFS_SQUASHFS_ARGS += -comp lzma else ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS4_XZ),y) ROOTFS_SQUASHFS_ARGS += -comp xz else ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS4_ZSTD),y) ROOTFS_SQUASHFS_ARGS += -comp zstd else ROOTFS_SQUASHFS_ARGS += -comp gzip endif define ROOTFS_SQUASHFS_CMD $(HOST_DIR)/bin/mksquashfs $(TARGET_DIR) $@ $(ROOTFS_SQUASHFS_ARGS) endef $(eval $(rootfs)) ================================================ FILE: fs/tar/Config.in ================================================ config BR2_TARGET_ROOTFS_TAR bool "tar the root filesystem" default y help Build a tar archive of the root filesystem choice prompt "Compression method" default BR2_TARGET_ROOTFS_TAR_NONE depends on BR2_TARGET_ROOTFS_TAR help Select compressor for tar archive of the root filesystem config BR2_TARGET_ROOTFS_TAR_NONE bool "no compression" help Do not compress the tarball. config BR2_TARGET_ROOTFS_TAR_GZIP bool "gzip" help Do compress the tarball with gzip. config BR2_TARGET_ROOTFS_TAR_BZIP2 bool "bzip2" help Do compress the tarball with bzip2. config BR2_TARGET_ROOTFS_TAR_LZ4 bool "lz4" help Do compress the tarball with lz4. config BR2_TARGET_ROOTFS_TAR_LZMA bool "lzma" help Do compress the tarball with lzma. config BR2_TARGET_ROOTFS_TAR_LZO bool "lzo" help Do compress the tarball with lzop. config BR2_TARGET_ROOTFS_TAR_XZ bool "xz" help Do compress the tarball with xz. endchoice config BR2_TARGET_ROOTFS_TAR_OPTIONS string "other random options to pass to tar" default "" depends on BR2_TARGET_ROOTFS_TAR help Any other flags you want to pass to tar Refer to tar --help for details ================================================ FILE: fs/tar/tar.mk ================================================ ################################################################################ # # tar to archive target filesystem # ################################################################################ TAR_OPTS = $(call qstrip,$(BR2_TARGET_ROOTFS_TAR_OPTIONS)) ROOTFS_TAR_DEPENDENCIES = $(BR2_TAR_HOST_DEPENDENCY) # do not store atime/ctime in PaxHeaders to ensure reproducbility TAR_OPTS += --pax-option=exthdr.name=%d/PaxHeaders/%f,atime:=0,ctime:=0 define ROOTFS_TAR_CMD (cd $(TARGET_DIR); find -print0 | LC_ALL=C sort -z | \ tar $(TAR_OPTS) -cf $@ --null --xattrs-include='*' --no-recursion -T - --numeric-owner) endef $(eval $(rootfs)) ================================================ FILE: fs/ubi/Config.in ================================================ config BR2_TARGET_ROOTFS_UBI bool "ubi image containing an ubifs root filesystem" select BR2_TARGET_ROOTFS_UBIFS help Build an ubi image from the ubifs one (with ubinize). if BR2_TARGET_ROOTFS_UBI config BR2_TARGET_ROOTFS_UBI_PEBSIZE hex "physical eraseblock size" default 0x20000 help Tells ubinize the physical eraseblock (PEB) size of the flash chip the ubi image is created for. The value provided here is passed to the -p/--peb-size option of ubinize. config BR2_TARGET_ROOTFS_UBI_SUBSIZE int "sub-page size" default 512 help Tells ubinize that the flash supports sub-pages and the sub-page size. Use 0 if sub-pages are not supported on flash chip. The value provided here is passed to the -s/--sub-page-size option of ubinize. config BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG bool "Use custom config file" help Select this option to use a custom ubinize configuration file, rather than the default configuration used by Buildroot (which defines a single dynamic volume marked as auto-resize). Passing a custom ubinize configuration file allows you to create several volumes, specify volume types, etc. As a convenience, buildroot replaces the string "BR2_ROOTFS_UBIFS_PATH" with the path to the built ubifs file. So the volume defined for the root filesystem can specify the image path as: image=BR2_ROOTFS_UBIFS_PATH Buildroot also replaces the string "BINARIES_DIR" with the value of $(BINARIES_DIR), so that it is possible to reference other build artefacts (e.g. to include the kernel in a UBI volume). config BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE string "Configuration file path" depends on BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG help Path to the ubinize configuration file. config BR2_TARGET_ROOTFS_UBI_OPTS string "Additional ubinize options" help Any additional ubinize options you may want to include. endif # BR2_TARGET_ROOTFS_UBI ================================================ FILE: fs/ubi/ubi.mk ================================================ ################################################################################ # # Embed the ubifs image into an ubi image # ################################################################################ UBI_UBINIZE_OPTS = -m $(BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE) UBI_UBINIZE_OPTS += -p $(BR2_TARGET_ROOTFS_UBI_PEBSIZE) ifneq ($(BR2_TARGET_ROOTFS_UBI_SUBSIZE),0) UBI_UBINIZE_OPTS += -s $(BR2_TARGET_ROOTFS_UBI_SUBSIZE) endif UBI_UBINIZE_OPTS += $(call qstrip,$(BR2_TARGET_ROOTFS_UBI_OPTS)) ROOTFS_UBI_DEPENDENCIES = rootfs-ubifs ifeq ($(BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG),y) UBI_UBINIZE_CONFIG_FILE_PATH = $(call qstrip,$(BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE)) else UBI_UBINIZE_CONFIG_FILE_PATH = fs/ubi/ubinize.cfg endif # don't use sed -i as it misbehaves on systems with SELinux enabled when this is # executed through fakeroot (see #9386) define ROOTFS_UBI_CMD sed 's;BR2_ROOTFS_UBIFS_PATH;$@fs;;s;BINARIES_DIR;$(BINARIES_DIR);' \ $(UBI_UBINIZE_CONFIG_FILE_PATH) > $(BUILD_DIR)/ubinize.cfg $(HOST_DIR)/sbin/ubinize -o $@ $(UBI_UBINIZE_OPTS) $(BUILD_DIR)/ubinize.cfg rm $(BUILD_DIR)/ubinize.cfg endef $(eval $(rootfs)) ================================================ FILE: fs/ubi/ubinize.cfg ================================================ [ubifs] mode=ubi vol_id=0 vol_type=dynamic vol_name=rootfs vol_alignment=1 vol_flags=autoresize image=BR2_ROOTFS_UBIFS_PATH ================================================ FILE: fs/ubifs/Config.in ================================================ config BR2_TARGET_ROOTFS_UBIFS bool "ubifs root filesystem" help Build a ubifs root filesystem if BR2_TARGET_ROOTFS_UBIFS config BR2_TARGET_ROOTFS_UBIFS_LEBSIZE hex "logical eraseblock size" default 0x1f800 help Logical eraseblock (LEB) size. The value provided here is passed to the -e/--leb-size option of mkfs.ubifs. config BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE hex "minimum I/O unit size" default 0x800 help Minimum I/O unit size. The value provided here is passed to the -m/--min-io-size option of mkfs.ubifs/ubinize. config BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT int "maximum logical eraseblock count" default 2048 help Maximum logical eraseblock (LEB) count. The value provided here is passed to the -c/--max-leb-cnt option of mkfs.ubifs. choice prompt "ubifs runtime compression" default BR2_TARGET_ROOTFS_UBIFS_RT_LZO help Select which compression format to use at run-time within the ubifs file system. The choice made here is passed to the -x/--compr option of mkfs.ubifs config BR2_TARGET_ROOTFS_UBIFS_RT_NONE bool "no compression" help Don't use run-time compression. config BR2_TARGET_ROOTFS_UBIFS_RT_ZLIB bool "gzip" help Use zlib compression at run-time. config BR2_TARGET_ROOTFS_UBIFS_RT_LZO bool "lzo" help Use lzo compression at run-time. endchoice choice prompt "Compression method" default BR2_TARGET_ROOTFS_UBIFS_NONE help Select which compression format to compress the final image into. config BR2_TARGET_ROOTFS_UBIFS_NONE bool "no compression" help Do not compress the ubifs filesystem. config BR2_TARGET_ROOTFS_UBIFS_GZIP bool "gzip" help Do compress the ubifs filesystem with gzip. config BR2_TARGET_ROOTFS_UBIFS_BZIP2 bool "bzip2" help Do compress the ubifs filesystem with bzip2. config BR2_TARGET_ROOTFS_UBIFS_LZMA bool "lzma" help Do compress the ubifs filesystem with lzma. config BR2_TARGET_ROOTFS_UBIFS_LZO bool "lzo" help Do compress the ubifs filesystem with lzop. config BR2_TARGET_ROOTFS_UBIFS_XZ bool "xz" help Do compress the ubifs filesystem with xz. endchoice config BR2_TARGET_ROOTFS_UBIFS_OPTS string "Additional mkfs.ubifs options" help Any additional mkfs.ubifs options you may want to include. endif # BR2_TARGET_ROOTFS_UBIFS ================================================ FILE: fs/ubifs/ubifs.mk ================================================ ################################################################################ # # Build the ubifs root filesystem image # ################################################################################ UBIFS_OPTS = \ -e $(BR2_TARGET_ROOTFS_UBIFS_LEBSIZE) \ -c $(BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT) \ -m $(BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE) ifeq ($(BR2_TARGET_ROOTFS_UBIFS_RT_ZLIB),y) UBIFS_OPTS += -x zlib endif ifeq ($(BR2_TARGET_ROOTFS_UBIFS_RT_LZO),y) UBIFS_OPTS += -x lzo endif ifeq ($(BR2_TARGET_ROOTFS_UBIFS_RT_NONE),y) UBIFS_OPTS += -x none endif UBIFS_OPTS += $(call qstrip,$(BR2_TARGET_ROOTFS_UBIFS_OPTS)) ROOTFS_UBIFS_DEPENDENCIES = host-mtd define ROOTFS_UBIFS_CMD $(HOST_DIR)/sbin/mkfs.ubifs -d $(TARGET_DIR) $(UBIFS_OPTS) -o $@ endef $(eval $(rootfs)) ================================================ FILE: fs/yaffs2/Config.in ================================================ config BR2_TARGET_ROOTFS_YAFFS2 bool "yaffs2 root filesystem" help Build a yaffs2 root filesystem ================================================ FILE: fs/yaffs2/yaffs2.mk ================================================ ################################################################################ # # Build the yaffs2 root filesystem image # ################################################################################ ROOTFS_YAFFS2_DEPENDENCIES = host-yaffs2utils define ROOTFS_YAFFS2_CMD $(HOST_DIR)/bin/mkyaffs2 --all-root $(TARGET_DIR) $@ endef $(eval $(rootfs)) ================================================ FILE: linux/0001-timeconst.pl-Eliminate-Perl-warning.patch.conditional ================================================ From 63a3f603413ffe82ad775f2d62a5afff87fd94a0 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Thu, 7 Feb 2013 17:14:08 -0800 Subject: [PATCH] timeconst.pl: Eliminate Perl warning defined(@array) is deprecated in Perl and gives off a warning. Restructure the code to remove that warning. [ hpa: it would be interesting to revert to the timeconst.bc script. It appears that the failures reported by akpm during testing of that script was due to a known broken version of make, not a problem with bc. The Makefile rules could probably be restructured to avoid the make bug, or it is probably old enough that it doesn't matter. ] Reported-by: Andi Kleen Signed-off-by: H. Peter Anvin Cc: Andrew Morton Cc: Signed-off-by: Gustavo Zacarias --- Patch status: upstream kernel/timeconst.pl | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/kernel/timeconst.pl b/kernel/timeconst.pl index eb51d76..3f42652 100644 --- a/kernel/timeconst.pl +++ b/kernel/timeconst.pl @@ -369,10 +369,8 @@ if ($hz eq '--can') { die "Usage: $0 HZ\n"; } - @val = @{$canned_values{$hz}}; - if (!defined(@val)) { - @val = compute_values($hz); - } + $cv = $canned_values{$hz}; + @val = defined($cv) ? @$cv : compute_values($hz); output($hz, @val); } exit 0; -- 2.4.10 ================================================ FILE: linux/Config.ext.in ================================================ menu "Linux Kernel Extensions" #------------------------------------------------------------------------------- # Xenomai config BR2_LINUX_KERNEL_EXT_XENOMAI bool "Adeos/Xenomai Real-time patch" depends on BR2_PACKAGE_XENOMAI_COBALT_ARCH_SUPPORTS depends on BR2_USE_MMU # xenomai depends on BR2_TOOLCHAIN_HAS_SYNC_4 # xenomai depends on BR2_TOOLCHAIN_HAS_THREADS # xenomai depends on !BR2_TOOLCHAIN_USES_MUSL # xenomai select BR2_PACKAGE_XENOMAI help Xenomai is split in two parts: a kernel part and a userspace part. Enabling this option automatically selects the Xenomai package and helps in patching the Linux kernel built by Buildroot with the Xenomai kernel part (ie Adeos/Ipipe). You can find the currently supported kernel versions by looking at the available patches in the Xenomai sources tree: ksrc/arch/$(ARCH)/patches However, it is recommended to use the latest version of the Adeos/Ipipe patch available at https://xenomai.org/downloads/ipipe/ Xenomai is know to support Blackfin, SH4, x86, ARM, NIOS2 and PowerPC architectures. config BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH string "Path/URL for Adeos patch file" depends on BR2_LINUX_KERNEL_EXT_XENOMAI help Optionally, explicitly specify where to find the Adeos patch to use. Examples: https://xenomai.org/downloads/ipipe/v4.x/arm/ipipe-core-4.19.33-arm-2.patch or /home/foo/ipipe-core-4.19.33-arm-2.patch Please verify that your kernel version in Buildroot matches. comment "xenomai needs a uClibc or glibc toolchain w/ threads" depends on BR2_PACKAGE_XENOMAI_COBALT_ARCH_SUPPORTS depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_MUSL #------------------------------------------------------------------------------- # RTAI config BR2_LINUX_KERNEL_EXT_RTAI bool "RTAI Real-time patch" select BR2_PACKAGE_RTAI help RTAI Kernel part. #------------------------------------------------------------------------------- # ev3dev Linux drivers config BR2_LINUX_KERNEL_EXT_EV3DEV_LINUX_DRIVERS bool "ev3dev Linux drivers" select BR2_PACKAGE_EV3DEV_LINUX_DRIVERS help Linux drivers for LEGO MINDSTORMS EV3 from the ev3dev project. https://github.com/ev3dev/lego-linux-drivers #------------------------------------------------------------------------------- # fbtft config BR2_LINUX_KERNEL_EXT_FBTFT bool "FB TFT drivers" select BR2_PACKAGE_FBTFT help Linux Framebuffer drivers for small TFT LCD display modules, e.g. Adafruit PiTFT displays for Raspberry Pi (this extra package is only needed for linux kernels until v3.19, since v4.0 the drivers are included in the staging area). To enable fbtft, e.g. for Adafruit 2.8 PiTFT, enable the following kernel configurations: - CONFIG_SPI - CONFIG_GPIOLIB - CONFIG_FB - CONFIG_FB_TFT - CONFIG_FB_TFT_ILI9341 https://github.com/notro/fbtft # aufs-standalone config BR2_LINUX_KERNEL_EXT_AUFS bool "Aufs Filesystem Module patch" select BR2_PACKAGE_AUFS help Aufs is split in two parts: a kernel part and a userspace part. Enabling this option automatically selects the aufs standalone (module) package and patches the Linux kernel built by Buildroot with the aufs kernel part (ie fs/aufs). It is important to use the correct branch of aufs-standalone. if BR2_LINUX_KERNEL_EXT_AUFS choice bool "aufs-standalone series" help Select the major series of this version. This must match the major version of your kernel (e.g. for kernels 3.x, select aufs3.x; for kernels 4.x, select aufs4.x; for kernels 5.x, select aufs5.x ). Note: neither aufs1.x nor aufs2.x (both for kernels older than 3.x) are supported. config BR2_LINUX_KERNEL_EXT_AUFS_SERIES_3 bool "aufs3.x" config BR2_LINUX_KERNEL_EXT_AUFS_SERIES_4 bool "aufs4.x" config BR2_LINUX_KERNEL_EXT_AUFS_SERIES_5 bool "aufs5.x" endchoice config BR2_LINUX_KERNEL_EXT_AUFS_SERIES int default 3 if BR2_LINUX_KERNEL_EXT_AUFS_SERIES_3 default 4 if BR2_LINUX_KERNEL_EXT_AUFS_SERIES_4 default 5 if BR2_LINUX_KERNEL_EXT_AUFS_SERIES_5 config BR2_LINUX_KERNEL_EXT_AUFS_VERSION string "aufs-standalone version" default "" help The version you choose must match that of your kernel. Usually, the sha1 of the cset you want to use; avoid using a branch name as this yields non-reproducible builds. See the following resources to see what versions are available: For aufs3.x: https://sourceforge.net/p/aufs/aufs3-standalone/ref/master/branches/ For aufs4.x: https://github.com/sfjro/aufs4-standalone/branches/all For aufs5.x: https://github.com/sfjro/aufs5-standalone/branches/all endif # aufs endmenu ================================================ FILE: linux/Config.in ================================================ menu "Kernel" config BR2_LINUX_KERNEL bool "Linux Kernel" select BR2_PACKAGE_HOST_KMOD # Unconditional, even if modules not enabled select BR2_PACKAGE_HOST_IMAGEMAGICK if BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH != "" help Enable this option if you want to build a Linux kernel for your embedded device if BR2_LINUX_KERNEL # Packages that need to have a kernel with support for loadable modules, # but do not use the kernel-modules infrastructure, should select that # option. config BR2_LINUX_NEEDS_MODULES bool # # Version selection. We provide the choice between: # # 1. A single fairly recent stable kernel version # 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 "Latest version (5.15)" config BR2_LINUX_KERNEL_LATEST_CIP_VERSION bool "Latest CIP SLTS version (4.19.198-cip54)" help CIP launched in the spring of 2016 to address the needs of organizations in industries such as power generation and distribution, water, oil and gas, transportation, building automation and more for reliable and secure Linux-based embedded systems that can be sustained over a period of 10 to as many as 60 years. The project's goal is to provide an open source base layer of industrial-grade software that permits the use and implementation of software building blocks that meet these requirements. The CIP community plans to maintain 4.19 for security and bug fixes for more than 10 years. https://www.cip-project.org config BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION bool "Latest CIP RT SLTS version (4.19.198-cip54-rt21)" help Same as the CIP version, but this is the PREEMPT_RT realtime variant. The CIP community plans to maintain 4.19 for security and bug fixes for more than 10 years. https://www.cip-project.org config BR2_LINUX_KERNEL_CUSTOM_VERSION bool "Custom version" help This option allows to use a specific official version from kernel.org, like 2.6.x, 2.6.x.y, 3.x.y, ... Note: you cannot use this option to select a _longterm_ 2.6 kernel, because these kernels are not located at the standard URL at kernel.org. Instead, select "Custom tarball" and specify the right URL directly. config BR2_LINUX_KERNEL_CUSTOM_TARBALL bool "Custom tarball" help This option allows to specify a URL pointing to a kernel source tarball. This URL can use any protocol recognized by Buildroot, like http://, ftp://, file:// or scp://. When pointing to a local tarball using file://, you may want to use a make variable like $(TOPDIR) to reference the root of the Buildroot tree. config BR2_LINUX_KERNEL_CUSTOM_GIT bool "Custom Git repository" help This option allows Buildroot to get the Linux kernel source code from a Git repository. config BR2_LINUX_KERNEL_CUSTOM_HG bool "Custom Mercurial repository" help 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. endchoice config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE string "Kernel version" depends on BR2_LINUX_KERNEL_CUSTOM_VERSION 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 || BR2_LINUX_KERNEL_CUSTOM_SVN config BR2_LINUX_KERNEL_CUSTOM_REPO_URL string "URL of custom repository" config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION string "Custom repository version" help Revision to use in the typical format used by Git/Mercurial/Subversion E.G. a sha id, a tag, branch, .. endif config BR2_LINUX_KERNEL_VERSION string default "5.15.6" if BR2_LINUX_KERNEL_LATEST_VERSION default "4.19.198-cip54" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION default "4.19.198-cip54-rt21" if BR2_LINUX_KERNEL_LATEST_CIP_RT_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 || BR2_LINUX_KERNEL_CUSTOM_SVN # # Patch selection # config BR2_LINUX_KERNEL_PATCH string "Custom kernel patches" help A space-separated list of patches to apply to the kernel. Each patch can be described as an URL, a local file path, or a directory. In the case of a directory, all files matching *.patch in the directory will be applied. # # Configuration selection # choice prompt "Kernel configuration" default BR2_LINUX_KERNEL_USE_DEFCONFIG 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" endchoice config BR2_LINUX_KERNEL_DEFCONFIG string "Defconfig name" depends on BR2_LINUX_KERNEL_USE_DEFCONFIG help Name of the kernel defconfig file to use, without the trailing _defconfig. The defconfig is located in arch//configs in the kernel tree. config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE string "Configuration file path" depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG help Path to the kernel configuration file Note: this can be a defconfig file or a complete .config file, which can later be saved back with make linux-update-(def)config. config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES string "Additional configuration fragment files" help A space-separated list of kernel configuration fragment files, that will be merged to the main kernel configuration file. config BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH string "Custom boot logo file path" help Use a custom Linux framebuffer boot logo. Custom logo should be in PNG or JPEG format, it will be converted to the linux kernel format (224 colors only) and copied over the original logo file. # # Binary format # choice prompt "Kernel binary format" default BR2_LINUX_KERNEL_ZIMAGE if BR2_arm || BR2_armeb config BR2_LINUX_KERNEL_UIMAGE bool "uImage" depends on BR2_arc || BR2_arm || BR2_armeb || \ BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \ BR2_sh || BR2_mips || BR2_mipsel || \ BR2_mips64 || BR2_mips64el || BR2_xtensa select BR2_PACKAGE_HOST_UBOOT_TOOLS config BR2_LINUX_KERNEL_APPENDED_UIMAGE bool "uImage with appended DT" depends on BR2_arm || BR2_armeb select BR2_LINUX_KERNEL_DTS_SUPPORT select BR2_LINUX_KERNEL_APPENDED_DTB select BR2_PACKAGE_HOST_UBOOT_TOOLS config BR2_LINUX_KERNEL_BZIMAGE bool "bzImage" depends on BR2_i386 || BR2_x86_64 || BR2_s390x config BR2_LINUX_KERNEL_ZIMAGE bool "zImage" depends on BR2_arm || BR2_armeb || BR2_powerpc || \ BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \ BR2_sh || BR2_xtensa config BR2_LINUX_KERNEL_ZIMAGE_EPAPR bool "zImage.epapr" depends on BR2_powerpc64 || BR2_powerpc64le config BR2_LINUX_KERNEL_APPENDED_ZIMAGE bool "zImage with appended DT" depends on BR2_arm || BR2_armeb select BR2_LINUX_KERNEL_DTS_SUPPORT select BR2_LINUX_KERNEL_APPENDED_DTB config BR2_LINUX_KERNEL_CUIMAGE bool "cuImage" depends on BR2_powerpc select BR2_PACKAGE_HOST_UBOOT_TOOLS select BR2_LINUX_KERNEL_DTS_SUPPORT select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT config BR2_LINUX_KERNEL_SIMPLEIMAGE bool "simpleImage" depends on BR2_microblaze select BR2_PACKAGE_HOST_UBOOT_TOOLS select BR2_LINUX_KERNEL_DTS_SUPPORT select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT config BR2_LINUX_KERNEL_IMAGE bool "Image" depends on BR2_aarch64 || BR2_riscv config BR2_LINUX_KERNEL_IMAGEGZ bool "Image.gz" depends on BR2_aarch64 || BR2_riscv config BR2_LINUX_KERNEL_LINUX_BIN bool "linux.bin" depends on BR2_microblaze select BR2_PACKAGE_HOST_UBOOT_TOOLS config BR2_LINUX_KERNEL_VMLINUX_BIN bool "vmlinux.bin" depends on BR2_mips || BR2_mipsel || BR2_sh config BR2_LINUX_KERNEL_VMLINUX bool "vmlinux" config BR2_LINUX_KERNEL_VMLINUZ bool "vmlinuz" depends on BR2_mips || BR2_mipsel config BR2_LINUX_KERNEL_VMLINUZ_BIN bool "vmlinuz.bin" depends on BR2_mips || BR2_mipsel config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM bool "custom target" help For certain cases a board-specific target image must be used. For example, on powerPC where the OpenFirmware description is attached in a board-specific kernel image target like 'cuImage.mpc8379_rdb'. Select this option and specify the make target in "Kernel image target name". endchoice # # Kernel compression format # choice prompt "Kernel compression format" help This selection will just ensure that the correct host tools are built. The actual compression for the kernel should be selected in the kernel configuration menu. config BR2_LINUX_KERNEL_GZIP bool "gzip compression" config BR2_LINUX_KERNEL_LZ4 bool "lz4 compression" config BR2_LINUX_KERNEL_LZMA bool "lzma compression" config BR2_LINUX_KERNEL_LZO bool "lzo compression" config BR2_LINUX_KERNEL_XZ bool "xz compression" config BR2_LINUX_KERNEL_ZSTD bool "zstd compression" config BR2_LINUX_KERNEL_UNCOMPRESSED bool "uncompressed" depends on BR2_s390x endchoice config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME string "Kernel image target name" depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM help Specify the kernel make target to build the kernel that you need. config BR2_LINUX_KERNEL_IMAGE_NAME string "Kernel image name" depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM help The filename of the kernel image, if it is different from the make target (above). Defaults to BR2_LINUX_KERNEL_IMAGE_TARGET_NAME. If specified, the filename is relative to arch/ARCH/boot/. If unsure, leave it empty. config BR2_LINUX_KERNEL_UIMAGE_LOADADDR string "load address (for 3.7+ multi-platform image)" depends on BR2_arm || BR2_armeb depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE help If your ARM system's Linux kernel is configured with the new (3.7+) multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y in your kernel config), then it is necessary to specify a kernel load address when building the uImage. This should be a hexadecimal string beginning with 0x, for example: 0x00008000. If unsure, let this option empty. config BR2_LINUX_KERNEL_DTS_SUPPORT bool "Build a Device Tree Blob (DTB)" help Compile one or more device tree sources into device tree blobs. Select the dts files to compile in the options below. if BR2_LINUX_KERNEL_DTS_SUPPORT # We have mainly three cases when it comes to device tree support: # 1) We don't want any support at all. Then the ..DTS_SUPPORT # variable won't be set # 2) We want device tree support, so we need the user to enter the # device tree name or the path to the custom device he uses, but # the kernel abstracts this from us and only build an image that # looks like a regular kernel image. In this case, we only need # to derive the kernel image name from the given device tree # name, and all the rest is as usual # 3) We want device tree support, but the kernel requires us to # build the device tree blob separately. In this case, some # more logic will be needed. # The variable below address the second case, were you only want # limited actions from buildroot. config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT bool "DTB is built by kernel itself" help Normally, the device tree(s) to be built have to be passed explicitly to the kernel build system. For some binary formats, however, the kernel build system links in the device tree directly in the kernel binary. Select this option if you have such a kernel binary format. config BR2_LINUX_KERNEL_APPENDED_DTB bool config BR2_LINUX_KERNEL_INTREE_DTS_NAME string "In-tree Device Tree Source file names" help Name of in-tree device tree source file, without the trailing .dts. You can provide a list of dts files to build, separated by spaces. config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH string "Out-of-tree Device Tree Source file paths" help Path to the out-of-tree device tree source files. You can provide a list of dts paths to copy and build, separated by spaces. config BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME bool "Keep the directory name of the Device Tree" help If enabled, the device tree blobs keep their directory prefixes when they get copied to the output image directory or the target directory. config BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT bool "Build Device Tree with overlay support" help If enabled, pass the "-@" option to dtc, such that symbols are generated in the compiled Device Tree. Choose this option to support Device Tree overlays on the target system. endif config BR2_LINUX_KERNEL_INSTALL_TARGET bool "Install kernel image to /boot in target" depends on !BR2_TARGET_ROOTFS_INITRAMFS help Select this option to have the kernel image installed to /boot in the target root filesystem, as is typically done on x86/x86_64 systems. Note that this option also installs the Device Tree Blobs to /boot if DTBs have been generated by the kernel build process. config BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL bool "Needs host OpenSSL" help Some Linux kernel configuration options (such as CONFIG_SYSTEM_TRUSTED_KEYRING) require building a host program called extract-cert, which itself needs OpenSSL. Enabling this option will ensure host-openssl gets built before the Linux kernel. Enable this option if you get a Linux kernel build failure such as "scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: No such file or directory". config BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF bool "Needs host libelf" help Some Linux kernel configuration options (such as CONFIG_UNWINDER_ORC) require building a host program that needs libelf. Enabling this option will ensure host-elfutils (which provides libelf) gets built before the Linux kernel. Enable this option if you get a Linux kernel build failure such as "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel". # Linux extensions source "linux/Config.ext.in" # Linux tools source "package/linux-tools/Config.in" endif # BR2_LINUX_KERNEL endmenu ================================================ FILE: linux/linux-ext-aufs.mk ================================================ ################################################################################ # # Patch the linux kernel with aufs extension # ################################################################################ LINUX_EXTENSIONS += aufs define AUFS_PREPARE_KERNEL if test -d $(@D)/fs/aufs/; then \ echo "Your kernel already supports AUFS."; \ exit 1; \ fi $(APPLY_PATCHES) $(@D) $(AUFS_DIR) \ aufs$(BR2_PACKAGE_AUFS_SERIES)-kbuild.patch \ aufs$(BR2_PACKAGE_AUFS_SERIES)-base.patch \ aufs$(BR2_PACKAGE_AUFS_SERIES)-mmap.patch \ aufs$(BR2_PACKAGE_AUFS_SERIES)-standalone.patch cp -r $(AUFS_DIR)/fs/aufs/ $(@D)/fs/ cp $(AUFS_DIR)/include/uapi/linux/aufs_type.h $(@D)/include/uapi/linux/ endef ================================================ FILE: linux/linux-ext-ev3dev-linux-drivers.mk ================================================ ################################################################################ # # Patch the linux kernel with ev3dev extension # ################################################################################ LINUX_EXTENSIONS += ev3dev-linux-drivers define EV3DEV_LINUX_DRIVERS_PREPARE_KERNEL mkdir -p $(LINUX_DIR)/drivers/lego cp -dpfr $(EV3DEV_LINUX_DRIVERS_DIR)/* $(LINUX_DIR)/drivers/lego/ endef ================================================ FILE: linux/linux-ext-fbtft.mk ================================================ ################################################################################ # # Patch the linux kernel with fbtft extension # ################################################################################ LINUX_EXTENSIONS += fbtft # for linux >= 3.15 install to drivers/video/fbdev/fbtft # for linux < 3.15 install to drivers/video/fbtft define FBTFT_PREPARE_KERNEL if [ -e $(LINUX_DIR)/drivers/video/fbdev ]; then \ dest=drivers/video/fbdev ; \ else \ dest=drivers/video ; \ fi ; \ mkdir -p $(LINUX_DIR)/$${dest}/fbtft; \ cp -dpfr $(FBTFT_DIR)/* $(LINUX_DIR)/$${dest}/fbtft/ ; \ echo "source \"$${dest}/fbtft/Kconfig\"" \ >> $(LINUX_DIR)/$${dest}/Kconfig ; \ echo 'obj-y += fbtft/' >> $(LINUX_DIR)/$${dest}/Makefile endef ================================================ FILE: linux/linux-ext-rtai.mk ================================================ ################################################################################ # # Patch the linux kernel with RTAI extension # ################################################################################ LINUX_EXTENSIONS += rtai ifeq ($(KERNEL_ARCH),i386) RTAI_ARCH = x86 else ifeq ($(KERNEL_ARCH),x86_64) RTAI_ARCH = x86 else ifeq ($(KERNEL_ARCH),powerpc) RTAI_ARCH = ppc else RTAI_ARCH = $(KERNEL_ARCH) endif # Prepare kernel patch define RTAI_PREPARE_KERNEL kver=`$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelversion` ; \ if test -f $(RTAI_DIR)/base/arch/$(RTAI_ARCH)/patches/hal-linux-$${kver}-*patch ; then \ $(APPLY_PATCHES) $(LINUX_DIR) \ $(RTAI_DIR)/base/arch/$(RTAI_ARCH)/patches/ \ hal-linux-$${kver}-*patch ; \ else \ echo "No RTAI patch for your kernel version" ; \ exit 1 ; \ fi endef ================================================ FILE: linux/linux-ext-xenomai.mk ================================================ ################################################################################ # # Patch the linux kernel with Adeos/Xenomai extension # ################################################################################ LINUX_EXTENSIONS += xenomai # Adeos patch version XENOMAI_ADEOS_PATCH = $(call qstrip,$(BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH)) ifneq ($(filter ftp://% http://% https://%,$(XENOMAI_ADEOS_PATCH)),) XENOMAI_ADEOS_PATCH_NAME = $(notdir $(XENOMAI_ADEOS_PATCH)) XENOMAI_ADEOS_PATCH_PATH = $(LINUX_DL_DIR)/$(XENOMAI_ADEOS_PATCH_NAME) # check-package TypoInPackageVariable LINUX_EXTRA_DOWNLOADS += $(XENOMAI_ADEOS_PATCH) BR_NO_CHECK_HASH_FOR += $(XENOMAI_ADEOS_PATCH_NAME) else XENOMAI_ADEOS_PATCH_PATH = $(XENOMAI_ADEOS_PATCH) endif ifeq ($(XENOMAI_ADEOS_PATCH),) XENOMAI_ADEOS_OPTS = --default else XENOMAI_ADEOS_OPTS = --adeos=$(XENOMAI_ADEOS_PATCH_PATH) endif # Prepare kernel patch define XENOMAI_PREPARE_KERNEL $(XENOMAI_DIR)/scripts/prepare-kernel.sh \ --linux=$(LINUX_DIR) \ --arch=$(KERNEL_ARCH) \ $(XENOMAI_ADEOS_OPTS) \ --verbose endef ================================================ FILE: linux/linux.hash ================================================ # From https://www.kernel.org/pub/linux/kernel/v5.x/sha256sums.asc sha256 b3e9ba06a299a3e2ead4a15753bc46a3e0c90d3b92ffeed1034ccc9f13a717f0 linux-5.15.6.tar.xz sha256 f41a259cb2002dd2e3286524b2bb4e803f4f982992d092706ecea613584023b3 linux-5.14.21.tar.xz sha256 ef259a43f33ddb56001283f4f4e50af29b8a48fa066aed7371a90ebf38c29b70 linux-5.10.83.tar.xz sha256 6246fe1776d83039d71f74eb839f38ebdec23e1b37a7bf76f3bce13cbf0290be linux-5.4.163.tar.xz # From https://www.kernel.org/pub/linux/kernel/v4.x/sha256sums.asc sha256 6d2f83619493e656276dbf22afcdb80f42320e697570419380773bb4916130fd linux-4.4.293.tar.xz sha256 b55d77774ed631f57f736bcdab021f68167455c9daede7e9e4161b4d564d8b53 linux-4.9.291.tar.xz sha256 9784204f95cfc7de1c933088e6f9364e99a29988ae4e6b9353677637eb171aa0 linux-4.14.256.tar.xz sha256 8f4ecd71fbcdd733c2849e2e5afe59d351c463c9a699bdbf428d88fa911009db linux-4.19.219.tar.xz # Locally computed sha256 e6fc0a999a180ad272b08ff71cbc67f2d3fdc6773d4a8069aefb8781b8e07821 linux-cip-4.19.198-cip54.tar.gz sha256 449668d678e458ddaf30f944b7ca7f5ce6ea6664f57d43ea4eb90b176e03b9cb linux-cip-4.19.198-cip54-rt21.tar.gz # Licenses hashes sha256 fb5a425bd3b3cd6071a3a9aff9909a859e7c1158d54d32e07658398cd67eb6a0 COPYING sha256 f6b78c087c3ebdf0f3c13415070dd480a3f35d8fc76f3d02180a407c1c812f79 LICENSES/preferred/GPL-2.0 sha256 8e378ab93586eb55135d3bc119cce787f7324f48394777d00c34fa3d0be3303f LICENSES/exceptions/Linux-syscall-note ================================================ FILE: linux/linux.mk ================================================ ################################################################################ # # Linux kernel target # ################################################################################ LINUX_VERSION = $(call qstrip,$(BR2_LINUX_KERNEL_VERSION)) LINUX_LICENSE = GPL-2.0 ifeq ($(BR2_LINUX_KERNEL_LATEST_VERSION),y) LINUX_LICENSE_FILES = \ COPYING \ LICENSES/preferred/GPL-2.0 \ LICENSES/exceptions/Linux-syscall-note endif LINUX_CPE_ID_VENDOR = linux LINUX_CPE_ID_PRODUCT = linux_kernel LINUX_CPE_ID_PREFIX = cpe:2.3:o # 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)) LINUX_SITE = $(patsubst %/,%,$(dir $(LINUX_TARBALL))) LINUX_SOURCE = $(notdir $(LINUX_TARBALL)) else ifeq ($(BR2_LINUX_KERNEL_CUSTOM_GIT),y) LINUX_SITE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_URL)) 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 ifeq ($(BR2_LINUX_KERNEL_LATEST_CIP_VERSION)$(BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION),y) LINUX_SOURCE = linux-cip-$(LINUX_VERSION).tar.gz LINUX_SITE = https://git.kernel.org/pub/scm/linux/kernel/git/cip/linux-cip.git/snapshot else ifneq ($(findstring -rc,$(LINUX_VERSION)),) # Since 4.12-rc1, -rc kernels are generated from cgit. This also works for # older -rc kernels. LINUX_SITE = https://git.kernel.org/torvalds/t else LINUX_SOURCE = linux-$(LINUX_VERSION).tar.xz ifeq ($(findstring x2.6.,x$(LINUX_VERSION)),x2.6.) LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/v2.6 else LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/v$(firstword $(subst ., ,$(LINUX_VERSION))).x endif endif ifeq ($(BR2_LINUX_KERNEL)$(BR2_LINUX_KERNEL_LATEST_VERSION),y) BR_NO_CHECK_HASH_FOR += $(LINUX_SOURCE) endif LINUX_PATCHES = $(call qstrip,$(BR2_LINUX_KERNEL_PATCH)) # We have no way to know the hashes for user-supplied patches. BR_NO_CHECK_HASH_FOR += $(notdir $(LINUX_PATCHES)) # We rely on the generic package infrastructure to download and apply # remote patches (downloaded from ftp, http or https). For local # patches, we can't rely on that infrastructure, because there might # be directories in the patch list (unlike for other packages). LINUX_PATCH = $(filter ftp://% http://% https://%,$(LINUX_PATCHES)) # while the kernel is built for the target, the build may need various # host libraries depending on config (and version), so use # HOST_MAKE_ENV here. In particular, this ensures that our # host-pkgconf will look for host libraries and not target ones. LINUX_MAKE_ENV = \ $(HOST_MAKE_ENV) \ BR_BINARIES_DIR=$(BINARIES_DIR) LINUX_INSTALL_IMAGES = YES LINUX_DEPENDENCIES = host-kmod \ $(if $(BR2_PACKAGE_INTEL_MICROCODE),intel-microcode) \ $(if $(BR2_PACKAGE_LINUX_FIRMWARE),linux-firmware) # Starting with 4.16, the generated kconfig paser code is no longer # shipped with the kernel sources, so we need flex and bison, but # only if the host does not have them. LINUX_KCONFIG_DEPENDENCIES = \ $(BR2_BISON_HOST_DEPENDENCY) \ $(BR2_FLEX_HOST_DEPENDENCY) # Starting with 4.18, the kconfig in the kernel calls the # cross-compiler to check its capabilities. So we need the # toolchain before we can call the configurators. LINUX_KCONFIG_DEPENDENCIES += toolchain # host tools needed for kernel compression ifeq ($(BR2_LINUX_KERNEL_LZ4),y) LINUX_DEPENDENCIES += host-lz4 else ifeq ($(BR2_LINUX_KERNEL_LZMA),y) LINUX_DEPENDENCIES += host-lzma else ifeq ($(BR2_LINUX_KERNEL_LZO),y) LINUX_DEPENDENCIES += host-lzop else ifeq ($(BR2_LINUX_KERNEL_XZ),y) LINUX_DEPENDENCIES += host-xz else ifeq ($(BR2_LINUX_KERNEL_ZSTD),y) LINUX_DEPENDENCIES += host-zstd endif LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_GZIP) += CONFIG_KERNEL_GZIP LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZ4) += CONFIG_KERNEL_LZ4 LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZMA) += CONFIG_KERNEL_LZMA LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZO) += CONFIG_KERNEL_LZO LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_XZ) += CONFIG_KERNEL_XZ LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_ZSTD) += CONFIG_KERNEL_ZSTD LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_UNCOMPRESSED) += CONFIG_KERNEL_UNCOMPRESSED ifeq ($(BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL),y) LINUX_DEPENDENCIES += host-openssl endif ifeq ($(BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF),y) LINUX_DEPENDENCIES += host-elfutils host-pkgconf endif # If host-uboot-tools is selected by the user, assume it is needed to # create a custom image ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS),y) LINUX_DEPENDENCIES += host-uboot-tools endif ifneq ($(ARCH_XTENSA_OVERLAY_FILE),) define LINUX_XTENSA_OVERLAY_EXTRACT $(call arch-xtensa-overlay-extract,$(@D),linux) endef LINUX_POST_EXTRACT_HOOKS += LINUX_XTENSA_OVERLAY_EXTRACT LINUX_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) endif # We don't want to run depmod after installing the kernel. It's done in a # target-finalize hook, to encompass modules installed by packages. LINUX_MAKE_FLAGS = \ HOSTCC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS)" \ ARCH=$(KERNEL_ARCH) \ INSTALL_MOD_PATH=$(TARGET_DIR) \ CROSS_COMPILE="$(TARGET_CROSS)" \ DEPMOD=$(HOST_DIR)/sbin/depmod ifeq ($(BR2_REPRODUCIBLE),y) LINUX_MAKE_ENV += \ KBUILD_BUILD_VERSION=1 \ KBUILD_BUILD_USER=buildroot \ KBUILD_BUILD_HOST=buildroot \ KBUILD_BUILD_TIMESTAMP="$(shell LC_ALL=C date -d @$(SOURCE_DATE_EPOCH))" endif # gcc-8 started warning about function aliases that have a # non-matching prototype. This seems rather useful in general, but it # causes tons of warnings in the Linux kernel, where we rely on # abusing those aliases for system call entry points, in order to # sanitize the arguments passed from user space in registers. # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82435 ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_8),y) LINUX_MAKE_ENV += KCFLAGS=-Wno-attribute-alias endif ifeq ($(BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT),y) LINUX_MAKE_ENV += DTC_FLAGS=-@ endif # Get the real Linux version, which tells us where kernel modules are # going to be installed in the target filesystem. # Filter out 'w' from MAKEFLAGS, to workaround a bug in make 4.1 (#13141) LINUX_VERSION_PROBED = `MAKEFLAGS='$(filter-out w,$(MAKEFLAGS))' $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelrelease 2>/dev/null` LINUX_DTS_NAME += $(call qstrip,$(BR2_LINUX_KERNEL_INTREE_DTS_NAME)) # We keep only the .dts files, so that the user can specify both .dts # and .dtsi files in BR2_LINUX_KERNEL_CUSTOM_DTS_PATH. Both will be # copied to arch//boot/dts, but only the .dts files will # actually be generated as .dtb. LINUX_DTS_NAME += $(basename $(filter %.dts,$(notdir $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH))))) LINUX_DTBS = $(addsuffix .dtb,$(LINUX_DTS_NAME)) ifeq ($(BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM),y) LINUX_IMAGE_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_NAME)) LINUX_TARGET_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_TARGET_NAME)) ifeq ($(LINUX_IMAGE_NAME),) LINUX_IMAGE_NAME = $(LINUX_TARGET_NAME) endif else ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y) LINUX_IMAGE_NAME = uImage else ifeq ($(BR2_LINUX_KERNEL_APPENDED_UIMAGE),y) LINUX_IMAGE_NAME = uImage else ifeq ($(BR2_LINUX_KERNEL_BZIMAGE),y) LINUX_IMAGE_NAME = bzImage else ifeq ($(BR2_LINUX_KERNEL_ZIMAGE),y) LINUX_IMAGE_NAME = zImage else ifeq ($(BR2_LINUX_KERNEL_ZIMAGE_EPAPR),y) LINUX_IMAGE_NAME = zImage.epapr else ifeq ($(BR2_LINUX_KERNEL_APPENDED_ZIMAGE),y) LINUX_IMAGE_NAME = zImage else ifeq ($(BR2_LINUX_KERNEL_CUIMAGE),y) LINUX_IMAGE_NAME = cuImage.$(firstword $(LINUX_DTS_NAME)) else ifeq ($(BR2_LINUX_KERNEL_SIMPLEIMAGE),y) LINUX_IMAGE_NAME = simpleImage.$(firstword $(LINUX_DTS_NAME)) else ifeq ($(BR2_LINUX_KERNEL_IMAGE),y) LINUX_IMAGE_NAME = Image else ifeq ($(BR2_LINUX_KERNEL_IMAGEGZ),y) LINUX_IMAGE_NAME = Image.gz else ifeq ($(BR2_LINUX_KERNEL_LINUX_BIN),y) LINUX_IMAGE_NAME = linux.bin else ifeq ($(BR2_LINUX_KERNEL_VMLINUX_BIN),y) LINUX_IMAGE_NAME = vmlinux.bin else ifeq ($(BR2_LINUX_KERNEL_VMLINUX),y) LINUX_IMAGE_NAME = vmlinux else ifeq ($(BR2_LINUX_KERNEL_VMLINUZ),y) LINUX_IMAGE_NAME = vmlinuz else ifeq ($(BR2_LINUX_KERNEL_VMLINUZ_BIN),y) LINUX_IMAGE_NAME = vmlinuz.bin endif # The if-else blocks above are all the image types we know of, and all # come from a Kconfig choice, so we know we have LINUX_IMAGE_NAME set # to something LINUX_TARGET_NAME = $(LINUX_IMAGE_NAME) endif LINUX_KERNEL_UIMAGE_LOADADDR = $(call qstrip,$(BR2_LINUX_KERNEL_UIMAGE_LOADADDR)) ifneq ($(LINUX_KERNEL_UIMAGE_LOADADDR),) LINUX_MAKE_FLAGS += LOADADDR="$(LINUX_KERNEL_UIMAGE_LOADADDR)" endif # Compute the arch path, since i386 and x86_64 are in arch/x86 and not # in arch/$(KERNEL_ARCH). Even if the kernel creates symbolic links # for bzImage, arch/i386 and arch/x86_64 do not exist when copying the # defconfig file. ifeq ($(KERNEL_ARCH),i386) LINUX_ARCH_PATH = $(LINUX_DIR)/arch/x86 else ifeq ($(KERNEL_ARCH),x86_64) LINUX_ARCH_PATH = $(LINUX_DIR)/arch/x86 else LINUX_ARCH_PATH = $(LINUX_DIR)/arch/$(KERNEL_ARCH) endif ifeq ($(BR2_LINUX_KERNEL_VMLINUX),y) LINUX_IMAGE_PATH = $(LINUX_DIR)/$(LINUX_IMAGE_NAME) else ifeq ($(BR2_LINUX_KERNEL_VMLINUZ),y) LINUX_IMAGE_PATH = $(LINUX_DIR)/$(LINUX_IMAGE_NAME) else ifeq ($(BR2_LINUX_KERNEL_VMLINUZ_BIN),y) LINUX_IMAGE_PATH = $(LINUX_DIR)/$(LINUX_IMAGE_NAME) else LINUX_IMAGE_PATH = $(LINUX_ARCH_PATH)/boot/$(LINUX_IMAGE_NAME) endif # BR2_LINUX_KERNEL_VMLINUX define LINUX_APPLY_LOCAL_PATCHES for p in $(filter-out ftp://% http://% https://%,$(LINUX_PATCHES)) ; do \ if test -d $$p ; then \ $(APPLY_PATCHES) $(@D) $$p \*.patch || exit 1 ; \ else \ $(APPLY_PATCHES) $(@D) `dirname $$p` `basename $$p` || exit 1; \ fi \ done endef LINUX_POST_PATCH_HOOKS += LINUX_APPLY_LOCAL_PATCHES # Older linux kernels use deprecated perl constructs in timeconst.pl # that were removed for perl 5.22+ so it breaks on newer distributions # Try a dry-run patch to see if this applies, if it does go ahead define LINUX_TRY_PATCH_TIMECONST @if patch -p1 --dry-run -f -s -d $(@D) <$(LINUX_PKGDIR)/0001-timeconst.pl-Eliminate-Perl-warning.patch.conditional >/dev/null ; then \ $(APPLY_PATCHES) $(@D) $(LINUX_PKGDIR) 0001-timeconst.pl-Eliminate-Perl-warning.patch.conditional ; \ fi endef LINUX_POST_PATCH_HOOKS += LINUX_TRY_PATCH_TIMECONST LINUX_KERNEL_CUSTOM_LOGO_PATH = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH)) ifneq ($(LINUX_KERNEL_CUSTOM_LOGO_PATH),) LINUX_DEPENDENCIES += host-imagemagick define LINUX_KERNEL_CUSTOM_LOGO_CONVERT $(HOST_DIR)/bin/convert $(LINUX_KERNEL_CUSTOM_LOGO_PATH) \ -dither None -colors 224 -compress none \ $(LINUX_DIR)/drivers/video/logo/logo_linux_clut224.ppm endef LINUX_PRE_BUILD_HOOKS += LINUX_KERNEL_CUSTOM_LOGO_CONVERT endif 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 LINUX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES)) LINUX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig # LINUX_MAKE_FLAGS overrides HOSTCC to allow the kernel build to find # our host-openssl and host-libelf. However, this triggers a bug in # the kconfig build script that causes it to build with # /usr/include/ncurses.h (which is typically wchar) but link with # $(HOST_DIR)/lib/libncurses.so (which is not). We don't actually # need any host-package for kconfig, so remove the HOSTCC override # again. In addition, even though linux depends on the toolchain and # therefore host-ccache would be ready, we use HOSTCC_NOCCACHE for # consistency with other kconfig packages. LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS) HOSTCC="$(HOSTCC_NOCCACHE)" # 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) endef else define LINUX_FIXUP_CONFIG_ENDIANNESS $(call KCONFIG_ENABLE_OPT,CONFIG_CPU_LITTLE_ENDIAN) endef endif define LINUX_KCONFIG_FIXUP_CMDS $(if $(LINUX_NEEDS_MODULES), $(call KCONFIG_ENABLE_OPT,CONFIG_MODULES)) $(call KCONFIG_ENABLE_OPT,$(strip $(LINUX_COMPRESSION_OPT_y))) $(foreach opt, $(LINUX_COMPRESSION_OPT_), $(call KCONFIG_DISABLE_OPT,$(opt)) ) $(LINUX_FIXUP_CONFIG_ENDIANNESS) $(if $(BR2_arm)$(BR2_armeb), $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI)) $(if $(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpc64le), $(call KCONFIG_ENABLE_OPT,CONFIG_PPC_DISABLE_WERROR)) $(if $(BR2_ARC_PAGE_SIZE_4K), $(call KCONFIG_ENABLE_OPT,CONFIG_ARC_PAGE_SIZE_4K) $(call KCONFIG_DISABLE_OPT,CONFIG_ARC_PAGE_SIZE_8K) $(call KCONFIG_DISABLE_OPT,CONFIG_ARC_PAGE_SIZE_16K)) $(if $(BR2_ARC_PAGE_SIZE_8K), $(call KCONFIG_DISABLE_OPT,CONFIG_ARC_PAGE_SIZE_4K) $(call KCONFIG_ENABLE_OPT,CONFIG_ARC_PAGE_SIZE_8K) $(call KCONFIG_DISABLE_OPT,CONFIG_ARC_PAGE_SIZE_16K)) $(if $(BR2_ARC_PAGE_SIZE_16K), $(call KCONFIG_DISABLE_OPT,CONFIG_ARC_PAGE_SIZE_4K) $(call KCONFIG_DISABLE_OPT,CONFIG_ARC_PAGE_SIZE_8K) $(call KCONFIG_ENABLE_OPT,CONFIG_ARC_PAGE_SIZE_16K)) $(if $(BR2_TARGET_ROOTFS_CPIO), $(call KCONFIG_ENABLE_OPT,CONFIG_BLK_DEV_INITRD)) # As the kernel gets compiled before root filesystems are # built, we create a fake cpio file. It'll be # replaced later by the real cpio archive, and the kernel will be # rebuilt using the linux-rebuild-with-initramfs target. $(if $(BR2_TARGET_ROOTFS_INITRAMFS), mkdir -p $(BINARIES_DIR) touch $(BINARIES_DIR)/rootfs.cpio $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_SOURCE,"$${BR_BINARIES_DIR}/rootfs.cpio") $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_ROOT_UID,0) $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_ROOT_GID,0)) $(if $(BR2_ROOTFS_DEVICE_CREATION_STATIC),, $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS) $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT)) $(if $(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV), $(call KCONFIG_ENABLE_OPT,CONFIG_INOTIFY_USER)) $(if $(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV), $(call KCONFIG_ENABLE_OPT,CONFIG_NET)) $(if $(BR2_LINUX_KERNEL_APPENDED_DTB), $(call KCONFIG_ENABLE_OPT,CONFIG_ARM_APPENDED_DTB)) $(if $(LINUX_KERNEL_CUSTOM_LOGO_PATH), $(call KCONFIG_ENABLE_OPT,CONFIG_FB) $(call KCONFIG_ENABLE_OPT,CONFIG_LOGO) $(call KCONFIG_ENABLE_OPT,CONFIG_LOGO_LINUX_CLUT224)) $(call KCONFIG_DISABLE_OPT,CONFIG_GCC_PLUGINS) $(PACKAGES_LINUX_CONFIG_FIXUPS) endef ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT),y) # Starting with 4.17, the generated dtc parser code is no longer # shipped with the kernel sources, so we need flex and bison. For # reproducibility, we use our owns rather than the host ones. LINUX_DEPENDENCIES += host-bison host-flex ifeq ($(BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT),) define LINUX_BUILD_DTB $(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_DTBS) endef ifeq ($(BR2_LINUX_KERNEL_APPENDED_DTB),) define LINUX_INSTALL_DTB # dtbs moved from arch//boot to arch//boot/dts since 3.8-rc1 $(foreach dtb,$(LINUX_DTBS), \ install -D \ $(or $(wildcard $(LINUX_ARCH_PATH)/boot/dts/$(dtb)),$(LINUX_ARCH_PATH)/boot/$(dtb)) \ $(1)/$(if $(BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME),$(dtb),$(notdir $(dtb))) ) endef endif # BR2_LINUX_KERNEL_APPENDED_DTB endif # BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT endif # BR2_LINUX_KERNEL_DTS_SUPPORT ifeq ($(BR2_LINUX_KERNEL_APPENDED_DTB),y) # dtbs moved from arch/$ARCH/boot to arch/$ARCH/boot/dts since 3.8-rc1 define LINUX_APPEND_DTB (cd $(LINUX_ARCH_PATH)/boot; \ for dtb in $(LINUX_DTS_NAME); do \ if test -e $${dtb}.dtb ; then \ dtbpath=$${dtb}.dtb ; \ else \ dtbpath=dts/$${dtb}.dtb ; \ fi ; \ cat zImage $${dtbpath} > zImage.$${dtb} || exit 1; \ done) endef ifeq ($(BR2_LINUX_KERNEL_APPENDED_UIMAGE),y) # We need to generate a new u-boot image that takes into # account the extra-size added by the device tree at the end # of the image. To do so, we first need to retrieve both load # address and entry point for the kernel from the already # generate uboot image before using mkimage -l. LINUX_APPEND_DTB += ; \ MKIMAGE_ARGS=`$(MKIMAGE) -l $(LINUX_IMAGE_PATH) |\ sed -n -e 's/Image Name:[ ]*\(.*\)/-n \1/p' -e 's/Load Address:/-a/p' -e 's/Entry Point:/-e/p'`; \ for dtb in $(LINUX_DTS_NAME); do \ $(MKIMAGE) -A $(MKIMAGE_ARCH) -O linux \ -T kernel -C none $${MKIMAGE_ARGS} \ -d $(LINUX_ARCH_PATH)/boot/zImage.$${dtb} $(LINUX_IMAGE_PATH).$${dtb}; \ done endif endif # Compilation. We make sure the kernel gets rebuilt when the # configuration has changed. We call the 'all' and # '$(LINUX_TARGET_NAME)' targets separately because calling them in # the same $(MAKE) invocation has shown to cause parallel build # issues. # The call to disable gcc-plugins is a stop-gap measure: # http://lists.busybox.net/pipermail/buildroot/2020-May/282727.html define LINUX_BUILD_CMDS $(call KCONFIG_DISABLE_OPT,CONFIG_GCC_PLUGINS) $(foreach dts,$(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)), \ cp -f $(dts) $(LINUX_ARCH_PATH)/boot/dts/ ) $(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) all $(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME) $(LINUX_BUILD_DTB) $(LINUX_APPEND_DTB) endef ifeq ($(BR2_LINUX_KERNEL_APPENDED_DTB),y) # When a DTB was appended, install the potential several images with # appended DTBs. define LINUX_INSTALL_IMAGE mkdir -p $(1) cp $(LINUX_ARCH_PATH)/boot/$(LINUX_IMAGE_NAME).* $(1) endef else # Otherwise, just install the unique image generated by the kernel # build process. define LINUX_INSTALL_IMAGE $(INSTALL) -m 0644 -D $(LINUX_IMAGE_PATH) $(1)/$(notdir $(LINUX_IMAGE_NAME)) endef endif ifeq ($(BR2_LINUX_KERNEL_INSTALL_TARGET),y) define LINUX_INSTALL_KERNEL_IMAGE_TO_TARGET $(call LINUX_INSTALL_IMAGE,$(TARGET_DIR)/boot) $(call LINUX_INSTALL_DTB,$(TARGET_DIR)/boot) endef endif 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)/bin/linux-dtc ; \ $(if $(BR2_PACKAGE_HOST_DTC),,ln -sf linux-dtc $(HOST_DIR)/bin/dtc;) \ fi endef define LINUX_INSTALL_IMAGES_CMDS $(call LINUX_INSTALL_IMAGE,$(BINARIES_DIR)) $(call LINUX_INSTALL_DTB,$(BINARIES_DIR)) endef ifeq ($(BR2_STRIP_strip),y) LINUX_MAKE_FLAGS += INSTALL_MOD_STRIP=1 endif define LINUX_INSTALL_TARGET_CMDS $(LINUX_INSTALL_KERNEL_IMAGE_TO_TARGET) # Install modules and remove symbolic links pointing to build # directories, not relevant on the target @if grep -q "CONFIG_MODULES=y" $(@D)/.config; then \ $(LINUX_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(@D) modules_install; \ rm -f $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/build ; \ rm -f $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/source ; \ fi $(LINUX_INSTALL_HOST_TOOLS) endef # Run depmod in a target-finalize hook, to encompass modules installed by # packages. define LINUX_RUN_DEPMOD if test -d $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED) \ && grep -q "CONFIG_MODULES=y" $(LINUX_DIR)/.config; then \ $(HOST_DIR)/sbin/depmod -a -b $(TARGET_DIR) $(LINUX_VERSION_PROBED); \ fi endef LINUX_TARGET_FINALIZE_HOOKS += LINUX_RUN_DEPMOD # Include all our extensions. # # Note: our package infrastructure uses the full-path of the last-scanned # Makefile to determine what package we're currently defining, using the # last directory component in the path. Additionally, the full path of # the package directory is also stored in _PKGDIR (e.g. to find patches) # # As such, including other Makefiles, like below, before we call one of # the *-package macros usually doesn't work. # # However, by including the in-tree extensions after the ones from the # br2-external trees, we're back to the situation where the last Makefile # scanned *is* included from the correct directory. # # NOTE: this is very fragile, and extra care must be taken to ensure that # we always end up with an in-tree included file. That's mostly OK, because # we do have in-tree linux-extensions. # include $(sort $(wildcard $(foreach ext,$(BR2_EXTERNAL_DIRS), \ $(ext)/linux/linux-ext-*.mk))) include $(sort $(wildcard linux/linux-ext-*.mk)) LINUX_PATCH_DEPENDENCIES += $(foreach ext,$(LINUX_EXTENSIONS),\ $(if $(BR2_LINUX_KERNEL_EXT_$(call UPPERCASE,$(ext))),$(ext))) LINUX_PRE_PATCH_HOOKS += $(foreach ext,$(LINUX_EXTENSIONS),\ $(if $(BR2_LINUX_KERNEL_EXT_$(call UPPERCASE,$(ext))),\ $(call UPPERCASE,$(ext))_PREPARE_KERNEL)) # Checks to give errors that the user can understand # When a custom repository has been set, check for the repository version ifeq ($(BR2_LINUX_KERNEL_CUSTOM_SVN)$(BR2_LINUX_KERNEL_CUSTOM_GIT)$(BR2_LINUX_KERNEL_CUSTOM_HG),y) ifeq ($(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION)),) $(error No custom repository version set. Check your BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION setting) endif ifeq ($(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_URL)),) $(error No custom repo URL set. Check your BR2_LINUX_KERNEL_CUSTOM_REPO_URL setting) endif endif ifeq ($(BR_BUILDING),y) ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y) # We must use the user-supplied kconfig value, because # LINUX_KCONFIG_DEFCONFIG will at least contain the # trailing _defconfig ifeq ($(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG)),) $(error No kernel defconfig name specified, check your BR2_LINUX_KERNEL_DEFCONFIG setting) endif endif ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y) ifeq ($(LINUX_KCONFIG_FILE),) $(error No kernel configuration file specified, check your BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE setting) endif endif ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT):$(strip $(LINUX_DTS_NAME)),y:) $(error No kernel device tree source specified, check your \ BR2_LINUX_KERNEL_INTREE_DTS_NAME / BR2_LINUX_KERNEL_CUSTOM_DTS_PATH settings) endif endif # BR_BUILDING $(eval $(kconfig-package)) # Support for rebuilding the kernel after the cpio archive has # been generated. .PHONY: linux-rebuild-with-initramfs linux-rebuild-with-initramfs: $(LINUX_DIR)/.stamp_target_installed linux-rebuild-with-initramfs: $(LINUX_DIR)/.stamp_images_installed linux-rebuild-with-initramfs: rootfs-cpio linux-rebuild-with-initramfs: @$(call MESSAGE,"Rebuilding kernel with initramfs") # Build the kernel. $(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) $(LINUX_TARGET_NAME) $(LINUX_APPEND_DTB) # 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) ================================================ FILE: package/18xx-ti-utils/0001-plt.h-fix-build-with-gcc-10.patch ================================================ From 12d3b3c01b0ec28d45427754541a8156939346d9 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 13 Aug 2020 23:24:05 +0200 Subject: [PATCH] plt.h: fix build with gcc 10 Drop EFUSE_PARAMETER_TYPE_ENM to fix the following build failure with gcc 10: /home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -L/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/lib nvs.o misc_cmds.o calibrator.o plt.o wl18xx_plt.o ini.o -lm -lnl-3 -lnl-genl-3 -o calibrator /home/buildroot/autobuild/run/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: misc_cmds.o:(.bss+0x0): multiple definition of `EFUSE_PARAMETER_TYPE_ENM'; nvs.o:(.bss+0x0): first defined here /home/buildroot/autobuild/run/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: calibrator.o: in function `.LANCHOR0': calibrator.c:(.bss+0xc): multiple definition of `EFUSE_PARAMETER_TYPE_ENM'; nvs.o:(.bss+0x0): first defined here Fixes: - http://autobuild.buildroot.org/results/df2d04de4b2e5003f3fc56c9e84db5054bd4d499 Signed-off-by: Fabrice Fontaine [Upstream status: sent to sudharshan ] --- plt.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plt.h b/plt.h index 8b534a9..43d5dbc 100644 --- a/plt.h +++ b/plt.h @@ -399,7 +399,7 @@ enum EFUSE_PARAMETER_TYPE_ENMT { TX_BIP_PD_BUFFER_VBIAS_ERROR_E, EFUSE_NUMBER_OF_PARAMETERS_E, EFUSE_LAST_PARAMETER_E = (EFUSE_NUMBER_OF_PARAMETERS_E - 1) -} EFUSE_PARAMETER_TYPE_ENM; +}; int get_mac_addr(int ifc_num, unsigned char *mac_addr); -- 2.27.0 ================================================ FILE: package/18xx-ti-utils/18xx-ti-utils.hash ================================================ # Locally calculated sha256 ce0185ba8a9bf456cc94a798bf66903775065e337e53ff812f18a6d88f5bac13 18xx-ti-utils-R8.8.tar.xz sha256 363cef40b276a7a91ebcff3f78626d9cfe5e5a51927c725236007259403d5fc4 COPYING ================================================ FILE: package/18xx-ti-utils/18xx-ti-utils.mk ================================================ ################################################################################ # # 18xx-ti-utils # ################################################################################ 18XX_TI_UTILS_VERSION = 8.8 18XX_TI_UTILS_SITE = https://git.ti.com/cgit/wilink8-wlan/18xx-ti-utils/snapshot 18XX_TI_UTILS_SOURCE = 18xx-ti-utils-R$(18XX_TI_UTILS_VERSION).tar.xz 18XX_TI_UTILS_DEPENDENCIES = libnl 18XX_TI_UTILS_LICENSE = BSD-3-Clause 18XX_TI_UTILS_LICENSE_FILES = COPYING 18XX_TI_UTILS_CFLAGS = -I$(STAGING_DIR)/usr/include/libnl3 -DCONFIG_LIBNL32 ifeq ($(BR2_STATIC_LIBS),y) 18XX_TI_UTILS_BUILD_TARGET = static endif define 18XX_TI_UTILS_BUILD_CMDS $(TARGET_MAKE_ENV) CROSS_COMPILE=$(TARGET_CROSS) \ NFSROOT="$(STAGING_DIR)" NLVER=3 $(MAKE) -C $(@D) \ CFLAGS="$(TARGET_CFLAGS) $(18XX_TI_UTILS_CFLAGS)" \ $(18XX_TI_UTILS_BUILD_TARGET) $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/wlconf \ $(HOST_CONFIGURE_OPTS) endef define 18XX_TI_UTILS_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 $(@D)/calibrator $(TARGET_DIR)/usr/bin/calibrator $(INSTALL) -m 0755 $(@D)/wlconf/wlconf $(HOST_DIR)/bin/wlconf endef $(eval $(generic-package)) ================================================ FILE: package/18xx-ti-utils/Config.in ================================================ config BR2_PACKAGE_18XX_TI_UTILS bool "18xx-ti-utils" depends on BR2_TOOLCHAIN_HAS_THREADS # libnl select BR2_PACKAGE_LIBNL help TI Wilink calibration utilities. CONFIG_NL80211_TESTMODE must be enabled in the kernel configuration for this package to work. http://processors.wiki.ti.com/index.php/WL18xx_TX_Testing comment "18xx-ti-utils needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/4th/0001-avoid-regen-during-install.patch ================================================ 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 -- ================================================ FILE: package/4th/4th.hash ================================================ # Locally computed: sha256 f822f7dd8cfb0b1744a62d653c6efe933578ae1789ec60a088509a38bca4b4fc 4th-3.62.5-unix.tar.gz sha256 8c6111b645a02219579ea66e84aa8e78a0ed4f4dd80857ffb91bcda5528717d4 COPYING ================================================ FILE: package/4th/4th.mk ================================================ ################################################################################ # # 4th # ################################################################################ 4TH_VERSION = 3.62.5 4TH_SOURCE = 4th-$(4TH_VERSION)-unix.tar.gz 4TH_SITE = http://downloads.sourceforge.net/project/forth-4th/4th-$(4TH_VERSION) 4TH_LICENSE = GPL-3.0+, LGPL-3.0+ # The COPYING file only contains the text of the LGPL-3.0, but the # source code really contains parts under GPL-3.0+. 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 = $(TARGET_MAKE_ENV) STATIC=1 else 4TH_MAKE_ENV = $(TARGET_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)/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 $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/sources all \ CFLAGS="$(HOST_CFLAGS) -DUNIX -fsigned-char" endef define HOST_4TH_INSTALL_CMDS mkdir -p $(HOST_DIR)/bin mkdir -p $(HOST_DIR)/lib $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/sources mostlyinstall \ BINARIES=$(HOST_DIR)/bin \ LIBRARIES=$(HOST_DIR)/lib endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/4th/Config.in ================================================ 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/ ================================================ FILE: package/Config.in ================================================ menu "Target packages" source "package/busybox/Config.in" source "package/skeleton/Config.in" source "package/skeleton-custom/Config.in" source "package/skeleton-init-common/Config.in" source "package/skeleton-init-none/Config.in" source "package/skeleton-init-openrc/Config.in" source "package/skeleton-init-systemd/Config.in" source "package/skeleton-init-sysv/Config.in" menu "Audio and video applications" source "package/alsa-utils/Config.in" source "package/atest/Config.in" source "package/aumix/Config.in" source "package/bluez-alsa/Config.in" source "package/dvblast/Config.in" source "package/dvdauthor/Config.in" source "package/dvdrw-tools/Config.in" source "package/espeak/Config.in" source "package/faad2/Config.in" source "package/ffmpeg/Config.in" source "package/flac/Config.in" source "package/flite/Config.in" source "package/fluid-soundfont/Config.in" source "package/fluidsynth/Config.in" source "package/gmrender-resurrect/Config.in" source "package/gstreamer1/Config.in" source "package/jack1/Config.in" source "package/jack2/Config.in" source "package/kodi/Config.in" source "package/lame/Config.in" source "package/libwebcam/Config.in" source "package/madplay/Config.in" source "package/mimic/Config.in" source "package/minimodem/Config.in" source "package/miraclecast/Config.in" source "package/mjpegtools/Config.in" source "package/modplugtools/Config.in" source "package/motion/Config.in" source "package/mpd/Config.in" source "package/mpd-mpc/Config.in" source "package/mpg123/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" source "package/sox/Config.in" source "package/streameye/Config.in" source "package/squeezelite/Config.in" source "package/tovid/Config.in" source "package/tstools/Config.in" source "package/twolame/Config.in" source "package/udpxy/Config.in" source "package/upmpdcli/Config.in" source "package/v4l2grab/Config.in" source "package/v4l2loopback/Config.in" source "package/v4l2rtspserver/Config.in" source "package/v4l2tools/Config.in" source "package/vlc/Config.in" source "package/vorbis-tools/Config.in" source "package/wavpack/Config.in" source "package/yavta/Config.in" source "package/ympd/Config.in" endmenu menu "Compressors and decompressors" source "package/brotli/Config.in" source "package/bzip2/Config.in" source "package/gzip/Config.in" source "package/lrzip/Config.in" source "package/lzip/Config.in" source "package/lzop/Config.in" source "package/p7zip/Config.in" source "package/pigz/Config.in" source "package/pixz/Config.in" source "package/unrar/Config.in" source "package/unzip/Config.in" source "package/xz/Config.in" source "package/zip/Config.in" source "package/zstd/Config.in" endmenu menu "Debugging, profiling and benchmark" source "package/babeltrace2/Config.in" source "package/blktrace/Config.in" source "package/bonnie/Config.in" source "package/cache-calibrator/Config.in" source "package/clinfo/Config.in" source "package/coremark/Config.in" source "package/coremark-pro/Config.in" source "package/dacapo/Config.in" source "package/delve/Config.in" source "package/dhrystone/Config.in" source "package/dieharder/Config.in" 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/fwts/Config.in" source "package/gdb/Config.in" source "package/google-breakpad/Config.in" source "package/iozone/Config.in" source "package/kexec/Config.in" source "package/kexec-lite/Config.in" source "package/ktap/Config.in" source "package/kvm-unit-tests/Config.in" source "package/kyua/Config.in" source "package/latencytop/Config.in" source "package/libbpf/Config.in" source "package/lmbench/Config.in" source "package/lsof/Config.in" source "package/ltp-testsuite/Config.in" source "package/ltrace/Config.in" source "package/lttng-babeltrace/Config.in" source "package/lttng-modules/Config.in" source "package/lttng-tools/Config.in" source "package/mcelog/Config.in" source "package/memstat/Config.in" source "package/netperf/Config.in" source "package/netsniff-ng/Config.in" source "package/nmon/Config.in" source "package/oprofile/Config.in" source "package/pax-utils/Config.in" source "package/pcm-tools/Config.in" source "package/piglit/Config.in" source "package/ply/Config.in" source "package/poke/Config.in" source "package/ptm2human/Config.in" source "package/pv/Config.in" source "package/racehound/Config.in" source "package/ramsmp/Config.in" source "package/ramspeed/Config.in" source "package/rt-tests/Config.in" source "package/rwmem/Config.in" source "package/sentry-native/Config.in" source "package/spidev_test/Config.in" source "package/strace/Config.in" source "package/stress/Config.in" source "package/stress-ng/Config.in" source "package/sysdig/Config.in" source "package/sysprof/Config.in" source "package/tcf-agent/Config.in" source "package/tinymembench/Config.in" source "package/trace-cmd/Config.in" source "package/trinity/Config.in" source "package/uclibc-ng-test/Config.in" source "package/uftrace/Config.in" source "package/valgrind/Config.in" source "package/vmtouch/Config.in" source "package/whetstone/Config.in" endmenu menu "Development tools" source "package/bats-core/Config.in" source "package/binutils/Config.in" source "package/bitwise/Config.in" source "package/bsdiff/Config.in" source "package/bustle/Config.in" source "package/check/Config.in" source "package/cmake/Config.in" source "package/cppunit/Config.in" source "package/cukinia/Config.in" source "package/cunit/Config.in" source "package/cvs/Config.in" source "package/cxxtest/Config.in" source "package/diffutils/Config.in" source "package/dos2unix/Config.in" source "package/findutils/Config.in" source "package/flex/Config.in" source "package/gawk/Config.in" source "package/gettext/Config.in" source "package/gettext-gnu/Config.in" source "package/gettext-tiny/Config.in" source "package/git/Config.in" source "package/git-crypt/Config.in" source "package/gperf/Config.in" source "package/grep/Config.in" source "package/jo/Config.in" source "package/jq/Config.in" source "package/libtool/Config.in" source "package/make/Config.in" source "package/mawk/Config.in" source "package/patch/Config.in" source "package/pkgconf/Config.in" source "package/ripgrep/Config.in" source "package/sed/Config.in" source "package/subversion/Config.in" source "package/tree/Config.in" source "package/yasm/Config.in" endmenu menu "Filesystem and flash utilities" source "package/abootimg/Config.in" source "package/aufs/Config.in" source "package/aufs-util/Config.in" source "package/autofs/Config.in" source "package/bmap-tools/Config.in" source "package/btrfs-progs/Config.in" source "package/cifs-utils/Config.in" source "package/cpio/Config.in" source "package/cramfs/Config.in" source "package/curlftpfs/Config.in" source "package/davfs2/Config.in" source "package/dosfstools/Config.in" source "package/e2fsprogs/Config.in" source "package/e2tools/Config.in" source "package/ecryptfs-utils/Config.in" source "package/erofs-utils/Config.in" source "package/exfat/Config.in" source "package/exfat-utils/Config.in" source "package/exfatprogs/Config.in" source "package/f2fs-tools/Config.in" source "package/firmware-utils/Config.in" source "package/flashbench/Config.in" source "package/fscryptctl/Config.in" source "package/fuse-overlayfs/Config.in" source "package/fwup/Config.in" source "package/genext2fs/Config.in" source "package/genpart/Config.in" source "package/genromfs/Config.in" source "package/imx-usb-loader/Config.in" source "package/mmc-utils/Config.in" source "package/mtd/Config.in" source "package/mtools/Config.in" source "package/nfs-utils/Config.in" source "package/nilfs-utils/Config.in" source "package/ntfs-3g/Config.in" source "package/sp-oops-extract/Config.in" source "package/squashfs/Config.in" source "package/sshfs/Config.in" source "package/sunxi-tools/Config.in" source "package/udftools/Config.in" source "package/unionfs/Config.in" source "package/xfsprogs/Config.in" source "package/zfs/Config.in" endmenu menu "Fonts, cursors, icons, sounds and themes" comment "Cursors" source "package/comix-cursors/Config.in" source "package/obsidian-cursors/Config.in" 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" source "package/wqy-zenhei/Config.in" comment "Icons" source "package/adwaita-icon-theme/Config.in" source "package/google-material-design-icons/Config.in" source "package/hicolor-icon-theme/Config.in" comment "Sounds" source "package/sound-theme-borealis/Config.in" source "package/sound-theme-freedesktop/Config.in" comment "Themes" source "package/gtk2-engines/Config.in" endmenu menu "Games" source "package/ascii-invaders/Config.in" source "package/chocolate-doom/Config.in" source "package/doom-wad/Config.in" source "package/flare-engine/Config.in" source "package/flare-game/Config.in" source "package/frotz/Config.in" source "package/gnuchess/Config.in" source "package/lbreakout2/Config.in" source "package/ltris/Config.in" source "package/lugaru/Config.in" source "package/minetest/Config.in" source "package/minetest-game/Config.in" source "package/opentyrian/Config.in" source "package/opentyrian-data/Config.in" source "package/prboom/Config.in" source "package/rubix/Config.in" source "package/sl/Config.in" source "package/solarus/Config.in" source "package/stella/Config.in" source "package/supertux/Config.in" source "package/supertuxkart/Config.in" source "package/xorcurses/Config.in" endmenu menu "Graphic libraries and applications (graphic/text)" comment "Graphic applications" source "package/cage/Config.in" source "package/cog/Config.in" source "package/fswebcam/Config.in" source "package/ghostscript/Config.in" source "package/glmark2/Config.in" source "package/glslsandbox-player/Config.in" source "package/gnuplot/Config.in" source "package/jhead/Config.in" source "package/kmscube/Config.in" source "package/libva-utils/Config.in" source "package/mesa3d-demos/Config.in" source "package/netsurf/Config.in" source "package/pngquant/Config.in" source "package/qt5cinex/Config.in" source "package/rrdtool/Config.in" source "package/stellarium/Config.in" source "package/tesseract-ocr/Config.in" comment "Graphic libraries" source "package/cegui/Config.in" source "package/directfb/Config.in" source "package/directfb-examples/Config.in" source "package/efl/Config.in" source "package/fb-test-app/Config.in" source "package/fbdump/Config.in" source "package/fbgrab/Config.in" source "package/fbset/Config.in" source "package/fbterm/Config.in" source "package/fbv/Config.in" source "package/freerdp/Config.in" source "package/graphicsmagick/Config.in" source "package/imagemagick/Config.in" source "package/linux-fusion/Config.in" source "package/lite/Config.in" source "package/mesa3d/Config.in" source "package/mesa3d-headers/Config.in" source "package/ocrad/Config.in" source "package/ogre/Config.in" source "package/psplash/Config.in" source "package/sdl/Config.in" source "package/sdl_gfx/Config.in" source "package/sdl_image/Config.in" source "package/sdl_mixer/Config.in" source "package/sdl_net/Config.in" 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_mixer/Config.in" source "package/sdl2_net/Config.in" source "package/sdl2_ttf/Config.in" source "package/tk/Config.in" comment "Other GUIs" source "package/qt5/Config.in" if BR2_PACKAGE_QT5 comment "QT libraries and helper libraries" source "package/cutelyst/Config.in" source "package/grantlee/Config.in" source "package/kf5/Config.in" source "package/qextserialport/Config.in" source "package/qjson/Config.in" 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" source "package/docker/Config.in" source "package/feh/Config.in" source "package/gmpc/Config.in" source "package/gtkperf/Config.in" source "package/leafpad/Config.in" source "package/midori/Config.in" source "package/mupdf/Config.in" source "package/nodm/Config.in" source "package/pcmanfm/Config.in" source "package/qt-webkit-kiosk/Config.in" source "package/rdesktop/Config.in" source "package/synergy/Config.in" source "package/vte/Config.in" source "package/wmctrl/Config.in" source "package/x11vnc/Config.in" source "package/xdotool/Config.in" source "package/xscreensaver/Config.in" source "package/xterm/Config.in" source "package/xvkbd/Config.in" 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" source "package/metacity/Config.in" source "package/openbox/Config.in" source "package/ratpoison/Config.in" endmenu menu "Hardware handling" menu "Firmware" source "package/am33x-cm3/Config.in" source "package/armbian-firmware/Config.in" source "package/b43-firmware/Config.in" source "package/linux-firmware/Config.in" source "package/murata-cyw-fw/Config.in" source "package/odroidc2-firmware/Config.in" source "package/qcom-db410c-firmware/Config.in" source "package/rcw-smarc-sal28/Config.in" source "package/rkbin/Config.in" source "package/rpi-bt-firmware/Config.in" source "package/rpi-firmware/Config.in" source "package/rpi-wifi-firmware/Config.in" source "package/sunxi-boards/Config.in" source "package/ts4900-fpga/Config.in" source "package/ux500-firmware/Config.in" source "package/wilc1000-firmware/Config.in" source "package/wilink-bt-firmware/Config.in" source "package/zd1211-firmware/Config.in" endmenu source "package/18xx-ti-utils/Config.in" 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/altera-stapl/Config.in" source "package/am335x-pru-package/Config.in" source "package/apcupsd/Config.in" source "package/avrdude/Config.in" source "package/bcache-tools/Config.in" source "package/biosdevname/Config.in" source "package/brickd/Config.in" source "package/brltty/Config.in" source "package/cbootimage/Config.in" source "package/cc-tool/Config.in" source "package/cdrkit/Config.in" source "package/cpuburn-arm/Config.in" source "package/cryptsetup/Config.in" source "package/cwiid/Config.in" source "package/dahdi-linux/Config.in" source "package/dahdi-tools/Config.in" source "package/dbus/Config.in" source "package/dbus-cpp/Config.in" source "package/dbus-glib/Config.in" source "package/dbus-python/Config.in" source "package/dbus-triggerd/Config.in" source "package/dfu-util/Config.in" source "package/dmidecode/Config.in" source "package/dmraid/Config.in" source "package/dt-utils/Config.in" source "package/dtbocfg/Config.in" source "package/dtv-scan-tables/Config.in" source "package/dump1090/Config.in" source "package/dvb-apps/Config.in" source "package/dvbsnoop/Config.in" source "package/edid-decode/Config.in" source "package/edk2-platforms/Config.in" source "package/eudev/Config.in" source "package/ev3dev-linux-drivers/Config.in" source "package/evemu/Config.in" source "package/evtest/Config.in" source "package/fan-ctrl/Config.in" source "package/fbtft/Config.in" source "package/fconfig/Config.in" source "package/flashrom/Config.in" source "package/fmtools/Config.in" source "package/freescale-imx/Config.in" source "package/fxload/Config.in" source "package/gcnano-binaries/Config.in" source "package/gpm/Config.in" source "package/gpsd/Config.in" source "package/gptfdisk/Config.in" source "package/gvfs/Config.in" source "package/hdparm/Config.in" 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/intel-microcode/Config.in" source "package/ipmitool/Config.in" source "package/ipmiutil/Config.in" source "package/irda-utils/Config.in" source "package/iucode-tool/Config.in" source "package/kbd/Config.in" source "package/lan951x-led-ctl/Config.in" source "package/lcdproc/Config.in" source "package/libiec61850/Config.in" source "package/libubootenv/Config.in" source "package/libuio/Config.in" source "package/linux-backports/Config.in" source "package/linux-serial-test/Config.in" source "package/linuxconsoletools/Config.in" source "package/lirc-tools/Config.in" source "package/lm-sensors/Config.in" source "package/lshw/Config.in" source "package/lsscsi/Config.in" source "package/lsuio/Config.in" source "package/luksmeta/Config.in" source "package/lvm2/Config.in" source "package/mali-t76x/Config.in" source "package/mbpfan/Config.in" source "package/mdadm/Config.in" source "package/mdevd/Config.in" source "package/memtest86/Config.in" source "package/memtester/Config.in" source "package/memtool/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-modprobe/Config.in" source "package/nvme/Config.in" source "package/ofono/Config.in" source "package/on2-8170-modules/Config.in" source "package/open2300/Config.in" source "package/openfpgaloader/Config.in" source "package/openipmi/Config.in" source "package/openocd/Config.in" source "package/openpowerlink/Config.in" 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/pigpio/Config.in" source "package/powertop/Config.in" source "package/pps-tools/Config.in" source "package/pru-software-support/Config.in" source "package/pulseview/Config.in" source "package/raspi-gpio/Config.in" source "package/read-edid/Config.in" source "package/rng-tools/Config.in" source "package/rpi-armmem/Config.in" source "package/rpi-userland/Config.in" source "package/rs485conf/Config.in" source "package/rtc-tools/Config.in" source "package/rtl8188eu/Config.in" source "package/rtl8189fs/Config.in" source "package/rtl8723bs/Config.in" source "package/rtl8723bu/Config.in" source "package/rtl8812au-aircrack-ng/Config.in" source "package/rtl8821au/Config.in" source "package/sane-backends/Config.in" source "package/sdparm/Config.in" source "package/sedutil/Config.in" source "package/setserial/Config.in" source "package/sg3_utils/Config.in" source "package/sigrok-cli/Config.in" source "package/sispmctl/Config.in" source "package/smartmontools/Config.in" source "package/smstools3/Config.in" source "package/spi-tools/Config.in" source "package/sredird/Config.in" source "package/statserial/Config.in" source "package/stm32flash/Config.in" source "package/sunxi-cedarx/Config.in" source "package/sunxi-mali-mainline/Config.in" source "package/sunxi-mali-mainline-driver/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/tio/Config.in" source "package/triggerhappy/Config.in" source "package/uboot-tools/Config.in" source "package/ubus/Config.in" source "package/uccp420wlan/Config.in" source "package/udev/Config.in" source "package/udev-gentoo-scripts/Config.in" source "package/udisks/Config.in" source "package/uhubctl/Config.in" source "package/umtprd/Config.in" source "package/upower/Config.in" source "package/usb_modeswitch/Config.in" source "package/usb_modeswitch_data/Config.in" source "package/usbguard/Config.in" source "package/usbmount/Config.in" source "package/usbutils/Config.in" source "package/w_scan/Config.in" source "package/wf111/Config.in" source "package/wipe/Config.in" source "package/xorriso/Config.in" source "package/xr819-xradio/Config.in" 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 menu "Erlang libraries/modules" source "package/erlang-base64url/Config.in" source "package/erlang-eimp/Config.in" source "package/erlang-goldrush/Config.in" source "package/erlang-idna/Config.in" source "package/erlang-jiffy/Config.in" source "package/erlang-jose/Config.in" source "package/erlang-lager/Config.in" source "package/erlang-p1-acme/Config.in" source "package/erlang-p1-cache-tab/Config.in" source "package/erlang-p1-mqtree/Config.in" source "package/erlang-p1-oauth2/Config.in" source "package/erlang-p1-pkix/Config.in" source "package/erlang-p1-sip/Config.in" source "package/erlang-p1-stringprep/Config.in" source "package/erlang-p1-stun/Config.in" source "package/erlang-p1-tls/Config.in" source "package/erlang-p1-utils/Config.in" source "package/erlang-p1-xml/Config.in" source "package/erlang-p1-xmpp/Config.in" source "package/erlang-p1-yaml/Config.in" source "package/erlang-p1-yconf/Config.in" source "package/erlang-p1-zlib/Config.in" endmenu endif source "package/execline/Config.in" source "package/ficl/Config.in" source "package/gauche/Config.in" source "package/guile/Config.in" source "package/haserl/Config.in" source "package/janet/Config.in" source "package/jimtcl/Config.in" source "package/lua/Config.in" source "package/luainterpreter/Config.in" source "package/luajit/Config.in" if BR2_PACKAGE_HAS_LUAINTERPRETER && !BR2_STATIC_LIBS # lua modules are dynamically loaded, so not available on static builds menu "Lua libraries/modules" # When adding lua packages, make sure the name start with "lua". If the # upstream package is "luafoo", call it "luafoo" in Buildroot; if the upstream # package is "foo", call it "lua-foo". Many packages currently don't follow # this convention, but that's historical accident. source "package/argparse/Config.in" source "package/cgilua/Config.in" source "package/copas/Config.in" source "package/coxpcall/Config.in" source "package/dado/Config.in" source "package/easydbus/Config.in" source "package/lbase64/Config.in" source "package/ljlinenoise/Config.in" source "package/ljsyscall/Config.in" source "package/lpeg/Config.in" source "package/lpty/Config.in" source "package/lrandom/Config.in" source "package/lsqlite3/Config.in" source "package/lua-augeas/Config.in" source "package/lua-basexx/Config.in" source "package/lua-binaryheap/Config.in" source "package/lua-bit32/Config.in" source "package/lua-cjson/Config.in" source "package/lua-coat/Config.in" source "package/lua-coatpersistent/Config.in" source "package/lua-codegen/Config.in" source "package/lua-compat53/Config.in" source "package/lua-cqueues/Config.in" source "package/lua-csnappy/Config.in" source "package/lua-curl/Config.in" source "package/lua-datafile/Config.in" source "package/lua-ev/Config.in" source "package/lua-fifo/Config.in" source "package/lua-flu/Config.in" source "package/lua-gd/Config.in" source "package/lua-http/Config.in" source "package/lua-iconv/Config.in" source "package/lua-livr/Config.in" source "package/lua-livr-extra/Config.in" source "package/lua-lpeg-patterns/Config.in" source "package/lua-lunitx/Config.in" source "package/lua-lunix/Config.in" source "package/lua-lyaml/Config.in" source "package/lua-markdown/Config.in" source "package/lua-messagepack/Config.in" source "package/lua-msgpack-native/Config.in" source "package/lua-periphery/Config.in" source "package/lua-resty-http/Config.in" source "package/lua-rotas/Config.in" source "package/lua-sailor/Config.in" source "package/lua-sdl2/Config.in" source "package/lua-silva/Config.in" source "package/lua-std-debug/Config.in" source "package/lua-std-normalize/Config.in" source "package/lua-stdlib/Config.in" source "package/lua-testmore/Config.in" source "package/lua-utf8/Config.in" source "package/lua-valua/Config.in" source "package/lua-zlib/Config.in" source "package/luabitop/Config.in" source "package/luadbi/Config.in" source "package/luadbi-sqlite3/Config.in" source "package/luaexpat/Config.in" source "package/luaexpatutils/Config.in" source "package/luafilesystem/Config.in" source "package/luajson/Config.in" source "package/lualdap/Config.in" source "package/lualogging/Config.in" source "package/luaossl/Config.in" source "package/luaposix/Config.in" source "package/luasec/Config.in" source "package/luasocket/Config.in" source "package/luasql-sqlite3/Config.in" source "package/luasyslog/Config.in" source "package/lutok/Config.in" source "package/luv/Config.in" source "package/luvi/Config.in" 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/wsapi-fcgi/Config.in" source "package/wsapi-xavante/Config.in" source "package/xavante/Config.in" endmenu endif source "package/micropython/Config.in" source "package/micropython-lib/Config.in" source "package/moarvm/Config.in" source "package/mono/Config.in" if BR2_PACKAGE_MONO menu "Mono libraries/modules" source "package/mono-gtksharp3/Config.in" endmenu endif source "package/nodejs/Config.in" source "package/openjdk/Config.in" source "package/perl/Config.in" if BR2_PACKAGE_PERL menu "Perl libraries/modules" source "package/perl-apache-logformat-compiler/Config.in" source "package/perl-appconfig/Config.in" source "package/perl-astro-suntime/Config.in" source "package/perl-class-inspector/Config.in" source "package/perl-class-load/Config.in" source "package/perl-class-method-modifiers/Config.in" source "package/perl-class-std/Config.in" source "package/perl-class-std-fast/Config.in" source "package/perl-convert-asn1/Config.in" source "package/perl-cookie-baker/Config.in" source "package/perl-crypt-blowfish/Config.in" source "package/perl-crypt-cbc/Config.in" source "package/perl-crypt-openssl-aes/Config.in" source "package/perl-crypt-openssl-random/Config.in" source "package/perl-crypt-openssl-rsa/Config.in" source "package/perl-data-dump/Config.in" source "package/perl-data-optlist/Config.in" source "package/perl-data-uuid/Config.in" source "package/perl-date-manip/Config.in" source "package/perl-datetime-tiny/Config.in" source "package/perl-dbd-mysql/Config.in" source "package/perl-dbi/Config.in" source "package/perl-devel-cycle/Config.in" source "package/perl-devel-globaldestruction/Config.in" source "package/perl-devel-size/Config.in" source "package/perl-devel-stacktrace/Config.in" source "package/perl-devel-stacktrace-ashtml/Config.in" source "package/perl-device-serialport/Config.in" source "package/perl-digest-hmac/Config.in" source "package/perl-digest-sha1/Config.in" source "package/perl-dist-checkconflicts/Config.in" source "package/perl-encode-detect/Config.in" source "package/perl-encode-locale/Config.in" source "package/perl-exporter-tiny/Config.in" source "package/perl-file-listing/Config.in" source "package/perl-file-sharedir/Config.in" source "package/perl-file-slurp/Config.in" source "package/perl-file-util/Config.in" source "package/perl-filesys-notify-simple/Config.in" source "package/perl-gd/Config.in" source "package/perl-gdgraph/Config.in" source "package/perl-gdtextutil/Config.in" source "package/perl-hash-multivalue/Config.in" source "package/perl-html-parser/Config.in" source "package/perl-html-tagset/Config.in" source "package/perl-http-cookies/Config.in" source "package/perl-http-daemon/Config.in" source "package/perl-http-date/Config.in" source "package/perl-http-entity-parser/Config.in" source "package/perl-http-headers-fast/Config.in" source "package/perl-http-message/Config.in" source "package/perl-http-multipartparser/Config.in" source "package/perl-http-negotiate/Config.in" source "package/perl-i18n/Config.in" source "package/perl-io-html/Config.in" source "package/perl-io-interface/Config.in" source "package/perl-io-socket-multicast/Config.in" source "package/perl-io-socket-ssl/Config.in" source "package/perl-json-maybexs/Config.in" source "package/perl-json-tiny/Config.in" source "package/perl-libwww-perl/Config.in" source "package/perl-locale-maketext-lexicon/Config.in" source "package/perl-lwp-mediatypes/Config.in" source "package/perl-lwp-protocol-https/Config.in" source "package/perl-mail-dkim/Config.in" source "package/perl-mailtools/Config.in" source "package/perl-math-int64/Config.in" source "package/perl-math-prime-util/Config.in" source "package/perl-mime-base64-urlsafe/Config.in" source "package/perl-mime-tools/Config.in" source "package/perl-module-implementation/Config.in" source "package/perl-module-runtime/Config.in" source "package/perl-mojolicious/Config.in" source "package/perl-mojolicious-plugin-authentication/Config.in" source "package/perl-mojolicious-plugin-authorization/Config.in" source "package/perl-mojolicious-plugin-cspheader/Config.in" source "package/perl-mojolicious-plugin-i18n/Config.in" source "package/perl-mojolicious-plugin-securityheader/Config.in" source "package/perl-moo/Config.in" source "package/perl-mozilla-ca/Config.in" source "package/perl-net-dns/Config.in" source "package/perl-net-http/Config.in" source "package/perl-net-snmp/Config.in" source "package/perl-net-ssh2/Config.in" source "package/perl-net-ssleay/Config.in" source "package/perl-net-telnet/Config.in" source "package/perl-netaddr-ip/Config.in" source "package/perl-number-bytes-human/Config.in" source "package/perl-package-stash/Config.in" source "package/perl-params-util/Config.in" source "package/perl-parse-yapp/Config.in" source "package/perl-path-tiny/Config.in" source "package/perl-plack/Config.in" source "package/perl-posix-strftime-compiler/Config.in" source "package/perl-role-tiny/Config.in" source "package/perl-stream-buffered/Config.in" source "package/perl-sub-exporter-progressive/Config.in" source "package/perl-sub-install/Config.in" source "package/perl-sub-quote/Config.in" source "package/perl-sys-cpu/Config.in" source "package/perl-sys-meminfo/Config.in" source "package/perl-sys-mmap/Config.in" source "package/perl-time-parsedate/Config.in" source "package/perl-timedate/Config.in" source "package/perl-try-tiny/Config.in" source "package/perl-type-tiny/Config.in" source "package/perl-uri/Config.in" source "package/perl-www-form-urlencoded/Config.in" source "package/perl-www-robotrules/Config.in" source "package/perl-x10/Config.in" source "package/perl-xml-libxml/Config.in" source "package/perl-xml-namespacesupport/Config.in" source "package/perl-xml-sax/Config.in" source "package/perl-xml-sax-base/Config.in" endmenu endif source "package/php/Config.in" if BR2_PACKAGE_PHP if !BR2_STATIC_LIBS menu "External php extensions" source "package/php-amqp/Config.in" source "package/php-geoip/Config.in" source "package/php-gnupg/Config.in" source "package/php-imagick/Config.in" source "package/php-memcached/Config.in" source "package/php-pecl-dbus/Config.in" source "package/php-ssh2/Config.in" source "package/php-xdebug/Config.in" source "package/php-yaml/Config.in" source "package/php-zmq/Config.in" endmenu endif if BR2_STATIC_LIBS comment "External PHP extensions need a toolchain w/ dynamic library" endif endif source "package/python/Config.in" source "package/python3/Config.in" if BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 menu "External python modules" source "package/python-aenum/Config.in" source "package/python-aioblescan/Config.in" source "package/python-aiocoap/Config.in" source "package/python-aioconsole/Config.in" source "package/python-aiodns/Config.in" source "package/python-aiofiles/Config.in" source "package/python-aiohttp/Config.in" source "package/python-aiohttp-cors/Config.in" source "package/python-aiohttp-debugtoolbar/Config.in" source "package/python-aiohttp-jinja2/Config.in" source "package/python-aiohttp-mako/Config.in" source "package/python-aiohttp-remotes/Config.in" source "package/python-aiohttp-security/Config.in" source "package/python-aiohttp-session/Config.in" source "package/python-aiohttp-sse/Config.in" source "package/python-aiohttp-swagger/Config.in" source "package/python-aiojobs/Config.in" source "package/python-aiologstash/Config.in" source "package/python-aiomonitor/Config.in" source "package/python-aioprocessing/Config.in" source "package/python-aioredis/Config.in" source "package/python-aiorwlock/Config.in" source "package/python-aiosignal/Config.in" source "package/python-aiozipkin/Config.in" source "package/python-alsaaudio/Config.in" source "package/python-ansicolors/Config.in" source "package/python-apispec/Config.in" source "package/python-argh/Config.in" source "package/python-argon2-cffi/Config.in" source "package/python-arrow/Config.in" source "package/python-asgiref/Config.in" source "package/python-asn1crypto/Config.in" source "package/python-async-lru/Config.in" source "package/python-async-timeout/Config.in" source "package/python-asyncpg/Config.in" source "package/python-attrs/Config.in" source "package/python-augeas/Config.in" source "package/python-autobahn/Config.in" source "package/python-automat/Config.in" source "package/python-avro/Config.in" source "package/python-babel/Config.in" source "package/python-backcall/Config.in" source "package/python-backports-abc/Config.in" source "package/python-backports-functools-lru-cache/Config.in" source "package/python-backports-shutil-get-terminal-size/Config.in" source "package/python-backports-ssl-match-hostname/Config.in" source "package/python-base58/Config.in" source "package/python-bcrypt/Config.in" source "package/python-beautifulsoup4/Config.in" source "package/python-bidict/Config.in" source "package/python-bitstring/Config.in" source "package/python-bleak/Config.in" source "package/python-bluepy/Config.in" source "package/python-bluezero/Config.in" source "package/python-boto3/Config.in" source "package/python-botocore/Config.in" source "package/python-bottle/Config.in" source "package/python-brotli/Config.in" source "package/python-bsdiff4/Config.in" source "package/python-bunch/Config.in" source "package/python-cached-property/Config.in" source "package/python-can/Config.in" source "package/python-canopen/Config.in" source "package/python-cbor/Config.in" source "package/python-cbor2/Config.in" source "package/python-cchardet/Config.in" source "package/python-certifi/Config.in" source "package/python-cffi/Config.in" source "package/python-channels/Config.in" source "package/python-channels-redis/Config.in" source "package/python-characteristic/Config.in" source "package/python-chardet/Config.in" source "package/python-charset-normalizer/Config.in" source "package/python-cheetah/Config.in" source "package/python-cheroot/Config.in" source "package/python-cherrypy/Config.in" source "package/python-click/Config.in" source "package/python-colibris/Config.in" source "package/python-colorama/Config.in" source "package/python-colorlog/Config.in" source "package/python-colorzero/Config.in" source "package/python-configobj/Config.in" source "package/python-configshell-fb/Config.in" source "package/python-constantly/Config.in" source "package/python-couchdb/Config.in" source "package/python-crayons/Config.in" source "package/python-crc16/Config.in" source "package/python-crcmod/Config.in" source "package/python-crontab/Config.in" source "package/python-crossbar/Config.in" source "package/python-cryptography/Config.in" source "package/python-cssselect/Config.in" source "package/python-cssutils/Config.in" source "package/python-cycler/Config.in" source "package/python-daemon/Config.in" source "package/python-daemonize/Config.in" source "package/python-daphne/Config.in" source "package/python-dataproperty/Config.in" source "package/python-dateutil/Config.in" source "package/python-dbus-fast/Config.in" source "package/python-dbus-next/Config.in" source "package/python-decorator/Config.in" source "package/python-defusedxml/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-django-enumfields/Config.in" source "package/python-dnspython/Config.in" source "package/python-docker/Config.in" source "package/python-docker-pycreds/Config.in" source "package/python-dockerpty/Config.in" source "package/python-docopt/Config.in" source "package/python-docutils/Config.in" source "package/python-dominate/Config.in" source "package/python-dotenv/Config.in" source "package/python-dpkt/Config.in" source "package/python-ecdsa/Config.in" source "package/python-engineio/Config.in" source "package/python-entrypoints/Config.in" source "package/python-enum/Config.in" source "package/python-enum34/Config.in" source "package/python-esptool/Config.in" source "package/python-falcon/Config.in" source "package/python-filelock/Config.in" source "package/python-fire/Config.in" source "package/python-flask/Config.in" source "package/python-flask-babel/Config.in" source "package/python-flask-cors/Config.in" source "package/python-flask-expects-json/Config.in" source "package/python-flask-jsonrpc/Config.in" source "package/python-flask-login/Config.in" source "package/python-flask-sqlalchemy/Config.in" source "package/python-flask-wtf/Config.in" source "package/python-flatbuffers/Config.in" source "package/python-flup/Config.in" source "package/python-frozenlist/Config.in" source "package/python-functools32/Config.in" source "package/python-future/Config.in" source "package/python-futures/Config.in" source "package/python-git/Config.in" source "package/python-gitdb2/Config.in" source "package/python-gobject/Config.in" source "package/python-gpiozero/Config.in" source "package/python-greenlet/Config.in" source "package/python-gunicorn/Config.in" source "package/python-h2/Config.in" source "package/python-hiredis/Config.in" source "package/python-hpack/Config.in" source "package/python-html5lib/Config.in" source "package/python-httplib2/Config.in" source "package/python-huepy/Config.in" source "package/python-humanize/Config.in" source "package/python-hyperframe/Config.in" source "package/python-hyperlink/Config.in" source "package/python-ibmiotf/Config.in" source "package/python-id3/Config.in" source "package/python-idna/Config.in" source "package/python-idna-ssl/Config.in" source "package/python-ifaddr/Config.in" source "package/python-incremental/Config.in" source "package/python-inflection/Config.in" source "package/python-influxdb/Config.in" source "package/python-iniconfig/Config.in" source "package/python-iniparse/Config.in" source "package/python-intelhex/Config.in" source "package/python-iowait/Config.in" source "package/python-ipaddr/Config.in" source "package/python-ipaddress/Config.in" source "package/python-ipdb/Config.in" source "package/python-iptables/Config.in" source "package/python-ipy/Config.in" source "package/python-ipython/Config.in" source "package/python-ipython-genutils/Config.in" source "package/python-iso8601/Config.in" source "package/python-itsdangerous/Config.in" source "package/python-iwlib/Config.in" source "package/python-janus/Config.in" source "package/python-jaraco-classes/Config.in" source "package/python-jaraco-functools/Config.in" source "package/python-jedi/Config.in" source "package/python-jinja2/Config.in" source "package/python-jmespath/Config.in" source "package/python-json-schema-validator/Config.in" source "package/python-jsonmodels/Config.in" source "package/python-jsonpointer/Config.in" source "package/python-jsonschema/Config.in" source "package/python-keyring/Config.in" source "package/python-kiwisolver/Config.in" source "package/python-libconfig/Config.in" source "package/python-libusb1/Config.in" source "package/python-lmdb/Config.in" source "package/python-lockfile/Config.in" source "package/python-logbook/Config.in" source "package/python-logstash/Config.in" source "package/python-lxml/Config.in" source "package/python-m2crypto/Config.in" source "package/python-m2r/Config.in" source "package/python-mad/Config.in" source "package/python-mako/Config.in" source "package/python-markdown/Config.in" source "package/python-markdown2/Config.in" source "package/python-markupsafe/Config.in" source "package/python-marshmallow/Config.in" source "package/python-marshmallow-peewee/Config.in" source "package/python-matplotlib/Config.in" source "package/python-mbstrdecoder/Config.in" source "package/python-mimeparse/Config.in" source "package/python-mistune/Config.in" source "package/python-mock/Config.in" source "package/python-modbus-tk/Config.in" source "package/python-more-itertools/Config.in" source "package/python-msgfy/Config.in" source "package/python-msgpack/Config.in" source "package/python-multidict/Config.in" source "package/python-mutagen/Config.in" source "package/python-mwclient/Config.in" source "package/python-mwscrape/Config.in" source "package/python-mwscrape2slob/Config.in" source "package/python-nested-dict/Config.in" source "package/python-netaddr/Config.in" source "package/python-netifaces/Config.in" source "package/python-networkmanager/Config.in" source "package/python-networkx/Config.in" source "package/python-nfc/Config.in" source "package/python-numpy/Config.in" source "package/python-oauthlib/Config.in" source "package/python-opcua-asyncio/Config.in" source "package/python-packaging/Config.in" source "package/python-paho-mqtt/Config.in" source "package/python-pam/Config.in" source "package/python-paramiko/Config.in" source "package/python-parso/Config.in" source "package/python-passlib/Config.in" source "package/python-pathlib2/Config.in" source "package/python-pathpy/Config.in" source "package/python-pathtools/Config.in" source "package/python-pathvalidate/Config.in" source "package/python-peewee/Config.in" source "package/python-peewee-migrate/Config.in" source "package/python-periphery/Config.in" source "package/python-pexpect/Config.in" source "package/python-picamera/Config.in" source "package/python-pickleshare/Config.in" source "package/python-piexif/Config.in" source "package/python-pigpio/Config.in" source "package/python-pillow/Config.in" source "package/python-pip/Config.in" source "package/python-pluggy/Config.in" source "package/python-ply/Config.in" source "package/python-portend/Config.in" source "package/python-posix-ipc/Config.in" source "package/python-priority/Config.in" source "package/python-prompt-toolkit/Config.in" source "package/python-protobuf/Config.in" source "package/python-psutil/Config.in" source "package/python-psycopg2/Config.in" source "package/python-ptyprocess/Config.in" source "package/python-pudb/Config.in" source "package/python-py/Config.in" source "package/python-pyaes/Config.in" source "package/python-pyalsa/Config.in" source "package/python-pyasn1/Config.in" source "package/python-pyasn1-modules/Config.in" source "package/python-pybind/Config.in" source "package/python-pycairo/Config.in" source "package/python-pycares/Config.in" source "package/python-pycli/Config.in" source "package/python-pycparser/Config.in" source "package/python-pycryptodomex/Config.in" source "package/python-pycups/Config.in" source "package/python-pycurl/Config.in" source "package/python-pydal/Config.in" source "package/python-pydantic/Config.in" source "package/python-pyelftools/Config.in" source "package/python-pyftpdlib/Config.in" source "package/python-pygame/Config.in" source "package/python-pygments/Config.in" source "package/python-pyhamcrest/Config.in" source "package/python-pyhocon/Config.in" source "package/python-pyicu/Config.in" source "package/python-pyinotify/Config.in" source "package/python-pyjwt/Config.in" source "package/python-pylibftdi/Config.in" source "package/python-pylru/Config.in" source "package/python-pymodbus/Config.in" source "package/python-pymongo/Config.in" source "package/python-pymupdf/Config.in" source "package/python-pymysql/Config.in" source "package/python-pynacl/Config.in" source "package/python-pyndiff/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" source "package/python-pyqrcode/Config.in" source "package/python-pyqt5/Config.in" source "package/python-pyratemp/Config.in" source "package/python-pyro/Config.in" source "package/python-pyroute2/Config.in" source "package/python-pysendfile/Config.in" source "package/python-pysftp/Config.in" source "package/python-pysmb/Config.in" source "package/python-pysmi/Config.in" source "package/python-pysnmp/Config.in" source "package/python-pysnmp-mibs/Config.in" source "package/python-pysocks/Config.in" source "package/python-pytablereader/Config.in" source "package/python-pytablewriter/Config.in" source "package/python-pytest/Config.in" source "package/python-pytest-asyncio/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-raven/Config.in" source "package/python-redis/Config.in" source "package/python-reentry/Config.in" source "package/python-regex/Config.in" source "package/python-remi/Config.in" source "package/python-request-id/Config.in" source "package/python-requests/Config.in" source "package/python-requests-oauthlib/Config.in" source "package/python-requests-toolbelt/Config.in" source "package/python-rpi-gpio/Config.in" source "package/python-rpi-ws281x/Config.in" source "package/python-rq/Config.in" source "package/python-rsa/Config.in" source "package/python-rtslib-fb/Config.in" source "package/python-s3transfer/Config.in" source "package/python-scandir/Config.in" source "package/python-scapy/Config.in" source "package/python-schedule/Config.in" source "package/python-sdnotify/Config.in" source "package/python-secretstorage/Config.in" source "package/python-see/Config.in" source "package/python-semver/Config.in" source "package/python-sentry-sdk/Config.in" source "package/python-serial/Config.in" source "package/python-serial-asyncio/Config.in" source "package/python-service-identity/Config.in" source "package/python-setproctitle/Config.in" source "package/python-setuptools/Config.in" source "package/python-sh/Config.in" source "package/python-shutilwhich/Config.in" source "package/python-simpleaudio/Config.in" source "package/python-simplegeneric/Config.in" source "package/python-simplejson/Config.in" source "package/python-simplelogging/Config.in" source "package/python-simplesqlite/Config.in" source "package/python-singledispatch/Config.in" source "package/python-sip/Config.in" source "package/python-six/Config.in" source "package/python-slob/Config.in" source "package/python-smbus-cffi/Config.in" source "package/python-smbus2/Config.in" source "package/python-smmap2/Config.in" source "package/python-snappy/Config.in" source "package/python-socketio/Config.in" source "package/python-sockjs/Config.in" source "package/python-sortedcontainers/Config.in" source "package/python-soupsieve/Config.in" source "package/python-spidev/Config.in" source "package/python-sqlalchemy/Config.in" source "package/python-sqliteschema/Config.in" source "package/python-sqlparse/Config.in" source "package/python-subprocess32/Config.in" source "package/python-systemd/Config.in" source "package/python-tabledata/Config.in" source "package/python-tempora/Config.in" source "package/python-termcolor/Config.in" source "package/python-terminaltables/Config.in" source "package/python-texttable/Config.in" source "package/python-thrift/Config.in" source "package/python-tinyrpc/Config.in" source "package/python-tomako/Config.in" source "package/python-toml/Config.in" source "package/python-tornado/Config.in" source "package/python-tqdm/Config.in" source "package/python-traitlets/Config.in" source "package/python-treq/Config.in" source "package/python-twisted/Config.in" source "package/python-txaio/Config.in" source "package/python-txdbus/Config.in" source "package/python-txtorcon/Config.in" source "package/python-typepy/Config.in" source "package/python-typing/Config.in" source "package/python-typing-extensions/Config.in" source "package/python-u-msgpack/Config.in" source "package/python-ubjson/Config.in" source "package/python-ujson/Config.in" source "package/python-unittest-xml-reporting/Config.in" source "package/python-unqlite/Config.in" source "package/python-urllib3/Config.in" source "package/python-urwid/Config.in" source "package/python-uvloop/Config.in" source "package/python-validators/Config.in" source "package/python-versiontools/Config.in" source "package/python-visitor/Config.in" source "package/python-watchdog/Config.in" source "package/python-wcwidth/Config.in" source "package/python-web2py/Config.in" source "package/python-webargs/Config.in" source "package/python-webencodings/Config.in" source "package/python-webob/Config.in" source "package/python-webpy/Config.in" source "package/python-websocket-client/Config.in" source "package/python-websockets/Config.in" source "package/python-werkzeug/Config.in" source "package/python-whoosh/Config.in" source "package/python-wrapt/Config.in" source "package/python-ws4py/Config.in" source "package/python-wsaccel/Config.in" source "package/python-wtforms/Config.in" source "package/python-xlib/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-xmljson/Config.in" source "package/python-xmltodict/Config.in" source "package/python-xmodem/Config.in" source "package/python-yarl/Config.in" source "package/python-yatl/Config.in" source "package/python-yieldfrom/Config.in" source "package/python-zc-lockfile/Config.in" source "package/python-zeroconf/Config.in" source "package/python-zope-interface/Config.in" endmenu endif source "package/quickjs/Config.in" source "package/ruby/Config.in" source "package/tcl/Config.in" if BR2_PACKAGE_TCL menu "Tcl libraries/modules" source "package/expect/Config.in" source "package/tcllib/Config.in" endmenu endif endmenu menu "Libraries" menu "Audio/Sound" source "package/alsa-lib/Config.in" source "package/alsa-plugins/Config.in" source "package/alure/Config.in" source "package/aubio/Config.in" source "package/bcg729/Config.in" source "package/caps/Config.in" source "package/fdk-aac/Config.in" source "package/libao/Config.in" source "package/libasplib/Config.in" source "package/libbroadvoice/Config.in" source "package/libcdaudio/Config.in" source "package/libcddb/Config.in" source "package/libcdio/Config.in" source "package/libcdio-paranoia/Config.in" 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/libgsm/Config.in" source "package/libid3tag/Config.in" source "package/libilbc/Config.in" source "package/liblo/Config.in" source "package/libmad/Config.in" source "package/libmodplug/Config.in" source "package/libmpd/Config.in" source "package/libmpdclient/Config.in" source "package/libreplaygain/Config.in" source "package/libsamplerate/Config.in" source "package/libsidplay2/Config.in" source "package/libsilk/Config.in" source "package/libsndfile/Config.in" source "package/libsoundtouch/Config.in" source "package/libsoxr/Config.in" source "package/libvorbis/Config.in" source "package/mp4v2/Config.in" source "package/openal/Config.in" source "package/opencore-amr/Config.in" source "package/opus/Config.in" source "package/opusfile/Config.in" source "package/portaudio/Config.in" source "package/sbc/Config.in" source "package/spandsp/Config.in" source "package/speex/Config.in" source "package/speexdsp/Config.in" source "package/taglib/Config.in" source "package/tinyalsa/Config.in" source "package/tremor/Config.in" source "package/vo-aacenc/Config.in" source "package/webrtc-audio-processing/Config.in" endmenu menu "Compression and decompression" source "package/libarchive/Config.in" source "package/libmspack/Config.in" source "package/libsquish/Config.in" source "package/libzip/Config.in" source "package/lz4/Config.in" source "package/lzo/Config.in" source "package/minizip/Config.in" source "package/snappy/Config.in" source "package/szip/Config.in" source "package/zlib/Config.in" source "package/zziplib/Config.in" endmenu menu "Crypto" source "package/bearssl/Config.in" source "package/beecrypt/Config.in" source "package/botan/Config.in" source "package/ca-certificates/Config.in" source "package/cryptodev/Config.in" source "package/gcr/Config.in" source "package/gnutls/Config.in" source "package/libargon2/Config.in" source "package/libassuan/Config.in" source "package/libgcrypt/Config.in" source "package/libgpg-error/Config.in" source "package/libgpgme/Config.in" source "package/libkcapi/Config.in" source "package/libksba/Config.in" source "package/libmhash/Config.in" source "package/libnss/Config.in" source "package/libolm/Config.in" source "package/libp11/Config.in" source "package/libscrypt/Config.in" source "package/libsecret/Config.in" source "package/libsha1/Config.in" 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/libxcrypt/Config.in" source "package/mbedtls/Config.in" source "package/nettle/Config.in" source "package/openssl/Config.in" source "package/pkcs11-helper/Config.in" source "package/rhash/Config.in" source "package/tinydtls/Config.in" source "package/tpm2-pkcs11/Config.in" source "package/tpm2-tss/Config.in" source "package/trousers/Config.in" source "package/ustream-ssl/Config.in" source "package/wolfssl/Config.in" endmenu menu "Database" source "package/berkeleydb/Config.in" source "package/cppdb/Config.in" source "package/gdbm/Config.in" source "package/hiredis/Config.in" source "package/kompexsqlite/Config.in" source "package/leveldb/Config.in" source "package/libdbi/Config.in" source "package/libdbi-drivers/Config.in" source "package/libgit2/Config.in" source "package/libmdbx/Config.in" source "package/libodb/Config.in" source "package/libodb-boost/Config.in" source "package/libodb-mysql/Config.in" source "package/libodb-pgsql/Config.in" source "package/libpqxx/Config.in" source "package/mongodb/Config.in" source "package/mysql/Config.in" source "package/postgresql/Config.in" if BR2_PACKAGE_POSTGRESQL source "package/osm2pgsql/Config.in" source "package/postgis/Config.in" endif source "package/redis/Config.in" source "package/rocksdb/Config.in" source "package/sqlcipher/Config.in" source "package/sqlite/Config.in" source "package/timescaledb/Config.in" source "package/unixodbc/Config.in" endmenu menu "Filesystem" source "package/gamin/Config.in" source "package/libconfig/Config.in" source "package/libconfuse/Config.in" source "package/libfuse/Config.in" source "package/libfuse3/Config.in" source "package/liblockfile/Config.in" source "package/libnfs/Config.in" source "package/libsysfs/Config.in" source "package/lockdev/Config.in" source "package/physfs/Config.in" endmenu menu "Graphics" source "package/assimp/Config.in" source "package/at-spi2-atk/Config.in" source "package/at-spi2-core/Config.in" source "package/atk/Config.in" source "package/atkmm/Config.in" source "package/bayer2rgb-neon/Config.in" source "package/bullet/Config.in" source "package/cairo/Config.in" source "package/cairomm/Config.in" source "package/chipmunk/Config.in" source "package/exempi/Config.in" source "package/exiv2/Config.in" source "package/fltk/Config.in" source "package/fontconfig/Config.in" source "package/freetype/Config.in" source "package/gd/Config.in" 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/intel-gmmlib/Config.in" source "package/intel-mediadriver/Config.in" source "package/intel-mediasdk/Config.in" source "package/irrlicht/Config.in" source "package/jasper/Config.in" source "package/jbig2dec/Config.in" source "package/jpeg/Config.in" source "package/kmsxx/Config.in" source "package/lcms2/Config.in" source "package/lensfun/Config.in" source "package/leptonica/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/libexif/Config.in" source "package/libfm/Config.in" source "package/libfm-extra/Config.in" source "package/libfreeglut/Config.in" source "package/libfreeimage/Config.in" source "package/libgdiplus/Config.in" source "package/libgeotiff/Config.in" source "package/libglade/Config.in" source "package/libglew/Config.in" source "package/libglfw/Config.in" source "package/libglu/Config.in" source "package/libgta/Config.in" source "package/libgtk2/Config.in" source "package/libgtk3/Config.in" source "package/libmediaart/Config.in" source "package/libmng/Config.in" source "package/libpng/Config.in" source "package/libqrencode/Config.in" source "package/libraw/Config.in" source "package/librsvg/Config.in" source "package/libsvg/Config.in" source "package/libsvg-cairo/Config.in" 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/libwpe/Config.in" source "package/menu-cache/Config.in" source "package/opencv3/Config.in" source "package/opencv4/Config.in" source "package/opengl/Config.in" source "package/openjpeg/Config.in" source "package/pango/Config.in" source "package/pangomm/Config.in" source "package/pipewire/Config.in" source "package/pipewire-media-session/Config.in" source "package/pixman/Config.in" source "package/poppler/Config.in" source "package/powervr/Config.in" source "package/tiff/Config.in" source "package/unclutter-xfixes/Config.in" source "package/waffle/Config.in" source "package/wayland/Config.in" source "package/wayland-protocols/Config.in" source "package/wayland-utils/Config.in" source "package/waylandpp/Config.in" source "package/webkitgtk/Config.in" source "package/webp/Config.in" source "package/wireplumber/Config.in" source "package/wlroots/Config.in" source "package/woff2/Config.in" source "package/wpebackend-fdo/Config.in" source "package/wpewebkit/Config.in" source "package/zbar/Config.in" source "package/zxing-cpp/Config.in" endmenu menu "Hardware handling" source "package/acsccid/Config.in" source "package/bcm2835/Config.in" source "package/c-periphery/Config.in" source "package/ccid/Config.in" source "package/dtc/Config.in" source "package/gnu-efi/Config.in" source "package/hackrf/Config.in" source "package/hidapi/Config.in" source "package/jitterentropy-library/Config.in" source "package/lcdapi/Config.in" source "package/let-me-create/Config.in" source "package/libaio/Config.in" source "package/libatasmart/Config.in" source "package/libblockdev/Config.in" source "package/libcec/Config.in" source "package/libfreefare/Config.in" source "package/libftdi/Config.in" source "package/libftdi1/Config.in" source "package/libgphoto2/Config.in" source "package/libgpiod/Config.in" source "package/libgudev/Config.in" source "package/libhid/Config.in" source "package/libiio/Config.in" source "package/libinput/Config.in" source "package/libiqrf/Config.in" source "package/libllcp/Config.in" source "package/libmbim/Config.in" source "package/libnfc/Config.in" source "package/libpciaccess/Config.in" source "package/libphidget/Config.in" source "package/libpri/Config.in" source "package/libqmi/Config.in" source "package/libqrtr-glib/Config.in" source "package/libraw1394/Config.in" source "package/librtas/Config.in" source "package/librtlsdr/Config.in" source "package/libserial/Config.in" source "package/libserialport/Config.in" source "package/libsigrok/Config.in" source "package/libsigrokdecode/Config.in" source "package/libsoc/Config.in" source "package/libss7/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/uhd/Config.in" source "package/urg/Config.in" endmenu menu "Javascript" source "package/angularjs/Config.in" if BR2_PACKAGE_ANGULARJS menu "External AngularJS plugins" source "package/angular-websocket/Config.in" endmenu endif source "package/bootstrap/Config.in" source "package/chartjs/Config.in" source "package/datatables/Config.in" source "package/datatables-buttons/Config.in" source "package/datatables-fixedcolumns/Config.in" source "package/datatables-responsive/Config.in" source "package/duktape/Config.in" source "package/explorercanvas/Config.in" source "package/flot/Config.in" source "package/jquery/Config.in" if BR2_PACKAGE_JQUERY menu "External jQuery plugins" source "package/jquery-datetimepicker/Config.in" source "package/jquery-keyboard/Config.in" source "package/jquery-mobile/Config.in" source "package/jquery-sidebar/Config.in" source "package/jquery-sparkline/Config.in" source "package/jquery-ui/Config.in" source "package/jquery-ui-themes/Config.in" source "package/jquery-validation/Config.in" endmenu endif source "package/jsmin/Config.in" source "package/json-javascript/Config.in" source "package/jszip/Config.in" source "package/openlayers/Config.in" source "package/popperjs/Config.in" source "package/vuejs/Config.in" if BR2_PACKAGE_VUEJS comment "External Vue.js plugins" source "package/vuejs-router/Config.in" endif endmenu menu "JSON/XML" source "package/benejson/Config.in" source "package/cjson/Config.in" source "package/expat/Config.in" source "package/jansson/Config.in" source "package/jose/Config.in" source "package/jsmn/Config.in" source "package/json-c/Config.in" source "package/json-for-modern-cpp/Config.in" source "package/json-glib/Config.in" source "package/jsoncpp/Config.in" source "package/libbson/Config.in" source "package/libfastjson/Config.in" source "package/libjson/Config.in" source "package/libroxml/Config.in" source "package/libucl/Config.in" source "package/libxml2/Config.in" source "package/libxmlpp/Config.in" source "package/libxmlrpc/Config.in" source "package/libxslt/Config.in" source "package/libyaml/Config.in" source "package/mxml/Config.in" source "package/pugixml/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/xml-security-c/Config.in" source "package/yajl/Config.in" source "package/yaml-cpp/Config.in" endmenu menu "Logging" source "package/glog/Config.in" 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/log4qt/Config.in" source "package/opentracing-cpp/Config.in" source "package/spdlog/Config.in" source "package/zlog/Config.in" endmenu menu "Multimedia" source "package/bitstream/Config.in" source "package/dav1d/Config.in" source "package/kvazaar/Config.in" source "package/libaacs/Config.in" source "package/libass/Config.in" source "package/libbdplus/Config.in" source "package/libbluray/Config.in" source "package/libcamera/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/libhdhomerun/Config.in" source "package/libimxvpuapi/Config.in" source "package/libmatroska/Config.in" source "package/libmms/Config.in" source "package/libmpeg2/Config.in" source "package/libogg/Config.in" source "package/libopenh264/Config.in" source "package/libopusenc/Config.in" source "package/libtheora/Config.in" source "package/libudfread/Config.in" source "package/libvpx/Config.in" source "package/libyuv/Config.in" source "package/live555/Config.in" source "package/mediastreamer/Config.in" source "package/v4l2cpp/Config.in" source "package/x264/Config.in" source "package/x265/Config.in" endmenu menu "Networking" source "package/agentpp/Config.in" source "package/azmq/Config.in" source "package/azure-iot-sdk-c/Config.in" source "package/batman-adv/Config.in" source "package/belle-sip/Config.in" source "package/bluez5_utils-headers/Config.in" source "package/c-ares/Config.in" source "package/cgic/Config.in" source "package/chirpstack-gateway-bridge/Config.in" source "package/cppzmq/Config.in" source "package/curlpp/Config.in" source "package/czmq/Config.in" source "package/daq/Config.in" source "package/daq3/Config.in" source "package/davici/Config.in" source "package/enet/Config.in" source "package/filemq/Config.in" source "package/flickcurl/Config.in" source "package/fmlib/Config.in" source "package/freeradius-client/Config.in" source "package/gensio/Config.in" source "package/geoip/Config.in" source "package/glib-networking/Config.in" source "package/grpc/Config.in" 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/libcpprestsdk/Config.in" source "package/libcurl/Config.in" source "package/libdnet/Config.in" source "package/libeXosip2/Config.in" source "package/libfcgi/Config.in" source "package/libgsasl/Config.in" source "package/libhtp/Config.in" source "package/libhttpparser/Config.in" source "package/libhttpserver/Config.in" source "package/libidn/Config.in" source "package/libidn2/Config.in" source "package/libiscsi/Config.in" source "package/libkrb5/Config.in" source "package/libldns/Config.in" source "package/libmaxminddb/Config.in" 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/libmodsecurity/Config.in" source "package/libnatpmp/Config.in" source "package/libndp/Config.in" source "package/libnet/Config.in" source "package/libnetconf2/Config.in" source "package/libnetfilter_acct/Config.in" source "package/libnetfilter_conntrack/Config.in" source "package/libnetfilter_cthelper/Config.in" source "package/libnetfilter_cttimeout/Config.in" source "package/libnetfilter_log/Config.in" source "package/libnetfilter_queue/Config.in" source "package/libnfnetlink/Config.in" source "package/libnftnl/Config.in" source "package/libnice/Config.in" source "package/libnids/Config.in" source "package/libnl/Config.in" source "package/libnpupnp/Config.in" source "package/liboauth/Config.in" source "package/liboping/Config.in" source "package/libosip2/Config.in" source "package/libpagekite/Config.in" source "package/libpcap/Config.in" source "package/libpjsip/Config.in" source "package/libpsl/Config.in" source "package/librelp/Config.in" source "package/librsync/Config.in" source "package/libshairplay/Config.in" source "package/libshout/Config.in" source "package/libsocketcan/Config.in" source "package/libsoup/Config.in" source "package/libsrtp/Config.in" source "package/libstrophe/Config.in" source "package/libteam/Config.in" source "package/libtelnet/Config.in" source "package/libtirpc/Config.in" source "package/libtorrent/Config.in" source "package/libtorrent-rasterbar/Config.in" source "package/libuev/Config.in" source "package/libuhttpd/Config.in" source "package/libupnp/Config.in" source "package/libupnpp/Config.in" source "package/liburiparser/Config.in" source "package/libuwsc/Config.in" source "package/libvncserver/Config.in" source "package/libwebsock/Config.in" source "package/libwebsockets/Config.in" source "package/libyang/Config.in" source "package/lksctp-tools/Config.in" source "package/mbuffer/Config.in" source "package/mongoose/Config.in" source "package/nanomsg/Config.in" source "package/neon/Config.in" source "package/netopeer2/Config.in" source "package/nghttp2/Config.in" source "package/norm/Config.in" source "package/nss-mdns/Config.in" source "package/nss-myhostname/Config.in" source "package/nss-pam-ldapd/Config.in" source "package/omniorb/Config.in" source "package/open62541/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/paho-mqtt-c/Config.in" source "package/paho-mqtt-cpp/Config.in" source "package/pistache/Config.in" source "package/qdecoder/Config.in" source "package/qpid-proton/Config.in" source "package/rabbitmq-c/Config.in" source "package/resiprocate/Config.in" source "package/restclient-cpp/Config.in" source "package/rtmpdump/Config.in" source "package/siproxd/Config.in" source "package/slirp/Config.in" source "package/snmppp/Config.in" source "package/sofia-sip/Config.in" source "package/sysrepo/Config.in" source "package/thrift/Config.in" source "package/usbredir/Config.in" source "package/wampcc/Config.in" source "package/websocketpp/Config.in" source "package/zeromq/Config.in" source "package/zmqpp/Config.in" source "package/zyre/Config.in" endmenu menu "Other" source "package/apr/Config.in" source "package/apr-util/Config.in" source "package/argp-standalone/Config.in" source "package/armadillo/Config.in" source "package/atf/Config.in" source "package/avro-c/Config.in" source "package/bctoolbox/Config.in" source "package/bdwgc/Config.in" source "package/belr/Config.in" source "package/boost/Config.in" source "package/c-capnproto/Config.in" source "package/capnproto/Config.in" source "package/cctz/Config.in" source "package/cereal/Config.in" source "package/clang/Config.in" source "package/cmocka/Config.in" source "package/cppcms/Config.in" source "package/cracklib/Config.in" source "package/dawgdic/Config.in" source "package/ding-libs/Config.in" source "package/eigen/Config.in" source "package/elfutils/Config.in" source "package/ell/Config.in" source "package/fftw/Config.in" source "package/flann/Config.in" source "package/flatbuffers/Config.in" source "package/flatcc/Config.in" source "package/gconf/Config.in" source "package/gflags/Config.in" source "package/gli/Config.in" source "package/glibmm/Config.in" source "package/glm/Config.in" source "package/gmp/Config.in" source "package/gobject-introspection/Config.in" source "package/gsl/Config.in" source "package/gtest/Config.in" source "package/gumbo-parser/Config.in" source "package/jemalloc/Config.in" source "package/lapack/Config.in" source "package/libabseil-cpp/Config.in" source "package/libargtable2/Config.in" source "package/libatomic_ops/Config.in" source "package/libavl/Config.in" source "package/libb64/Config.in" source "package/libbacktrace/Config.in" source "package/libbsd/Config.in" source "package/libbytesize/Config.in" source "package/libcap/Config.in" source "package/libcap-ng/Config.in" source "package/libcgroup/Config.in" source "package/libclc/Config.in" source "package/libcofi/Config.in" source "package/libcorrect/Config.in" source "package/libcrossguid/Config.in" source "package/libcsv/Config.in" source "package/libdaemon/Config.in" source "package/libeastl/Config.in" source "package/libee/Config.in" source "package/libev/Config.in" source "package/libevdev/Config.in" source "package/libevent/Config.in" source "package/libffi/Config.in" source "package/libgee/Config.in" source "package/libgeos/Config.in" source "package/libglib2/Config.in" source "package/libglob/Config.in" source "package/libical/Config.in" source "package/libite/Config.in" source "package/liblinear/Config.in" source "package/libloki/Config.in" source "package/libnpth/Config.in" source "package/libnspr/Config.in" source "package/libosmium/Config.in" source "package/libpfm4/Config.in" source "package/libplatform/Config.in" source "package/libplist/Config.in" source "package/libpthread-stubs/Config.in" source "package/libpthsem/Config.in" source "package/libpwquality/Config.in" source "package/libqb/Config.in" source "package/libseccomp/Config.in" source "package/libsigc/Config.in" source "package/libsigsegv/Config.in" source "package/libspatialindex/Config.in" source "package/libtalloc/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" source "package/libunwind/Config.in" source "package/liburcu/Config.in" source "package/libuv/Config.in" source "package/lightning/Config.in" source "package/linux-pam/Config.in" if BR2_PACKAGE_LINUX_PAM comment "linux-pam plugins" source "package/libpam-nfc/Config.in" source "package/libpam-radius-auth/Config.in" source "package/libpam-tacplus/Config.in" endif source "package/liquid-dsp/Config.in" source "package/llvm/Config.in" source "package/lttng-libust/Config.in" source "package/matio/Config.in" source "package/mpc/Config.in" source "package/mpdecimal/Config.in" source "package/mpfr/Config.in" source "package/mpir/Config.in" source "package/msgpack/Config.in" source "package/musl-compat-headers/Config.in" source "package/musl-fts/Config.in" source "package/openblas/Config.in" source "package/orc/Config.in" source "package/p11-kit/Config.in" source "package/poco/Config.in" source "package/protobuf/Config.in" source "package/protobuf-c/Config.in" source "package/protozero/Config.in" source "package/qhull/Config.in" source "package/qlibc/Config.in" source "package/riemann-c-client/Config.in" source "package/shapelib/Config.in" source "package/skalibs/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" source "package/uvw/Config.in" source "package/xapian/Config.in" endmenu menu "Security" source "package/libapparmor/Config.in" source "package/libselinux/Config.in" source "package/libsemanage/Config.in" source "package/libsepol/Config.in" source "package/safeclib/Config.in" source "package/softhsm2/Config.in" endmenu menu "Text and terminal handling" source "package/augeas/Config.in" source "package/enchant/Config.in" source "package/fmt/Config.in" source "package/fstrcmp/Config.in" source "package/icu/Config.in" source "package/inih/Config.in" source "package/libcli/Config.in" source "package/libedit/Config.in" source "package/libenca/Config.in" source "package/libestr/Config.in" source "package/libfribidi/Config.in" source "package/libiconv/Config.in" source "package/libunistring/Config.in" source "package/linenoise/Config.in" source "package/ncurses/Config.in" source "package/newt/Config.in" source "package/oniguruma/Config.in" source "package/pcre/Config.in" source "package/pcre2/Config.in" source "package/popt/Config.in" source "package/re2/Config.in" source "package/readline/Config.in" source "package/slang/Config.in" source "package/tclap/Config.in" source "package/utf8proc/Config.in" endmenu endmenu menu "Mail" source "package/dovecot/Config.in" source "package/exim/Config.in" source "package/fetchmail/Config.in" source "package/heirloom-mailx/Config.in" source "package/libesmtp/Config.in" source "package/msmtp/Config.in" source "package/mutt/Config.in" source "package/sylpheed/Config.in" endmenu menu "Miscellaneous" source "package/aespipe/Config.in" source "package/bc/Config.in" source "package/bitcoin/Config.in" source "package/clamav/Config.in" source "package/collectd/Config.in" source "package/collectl/Config.in" source "package/domoticz/Config.in" source "package/empty/Config.in" source "package/gnuradio/Config.in" source "package/googlefontdirectory/Config.in" source "package/gqrx/Config.in" source "package/gr-osmosdr/Config.in" source "package/gsettings-desktop-schemas/Config.in" source "package/haveged/Config.in" source "package/linux-syscall-support/Config.in" source "package/mobile-broadband-provider-info/Config.in" source "package/netdata/Config.in" source "package/proj/Config.in" source "package/qemu/Config.in" source "package/qpdf/Config.in" source "package/rtl_433/Config.in" source "package/semver-sort/Config.in" source "package/shared-mime-info/Config.in" source "package/sunwait/Config.in" source "package/taskd/Config.in" source "package/wine/Config.in" source "package/xmrig/Config.in" source "package/xutil_util-macros/Config.in" endmenu menu "Networking applications" source "package/aircrack-ng/Config.in" source "package/aoetools/Config.in" source "package/apache/Config.in" source "package/argus/Config.in" source "package/arp-scan/Config.in" source "package/arptables/Config.in" source "package/asterisk/Config.in" source "package/atftp/Config.in" 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" source "package/bind/Config.in" source "package/bird/Config.in" source "package/bluez-tools/Config.in" source "package/bluez5_utils/Config.in" source "package/bmon/Config.in" source "package/boinc/Config.in" source "package/brcm-patchram-plus/Config.in" source "package/bridge-utils/Config.in" source "package/bwm-ng/Config.in" 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/casync/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/corkscrew/Config.in" source "package/crda/Config.in" source "package/ctorrent/Config.in" source "package/cups/Config.in" source "package/cups-filters/Config.in" source "package/dante/Config.in" source "package/darkhttpd/Config.in" source "package/dehydrated/Config.in" source "package/dhcp/Config.in" source "package/dhcpcd/Config.in" source "package/dhcpdump/Config.in" source "package/dnsmasq/Config.in" source "package/drbd-utils/Config.in" source "package/dropbear/Config.in" source "package/easyframes/Config.in" source "package/ebtables/Config.in" source "package/ejabberd/Config.in" source "package/ethtool/Config.in" source "package/faifa/Config.in" source "package/fail2ban/Config.in" source "package/fastd/Config.in" source "package/fcgiwrap/Config.in" source "package/flannel/Config.in" source "package/fmc/Config.in" source "package/fping/Config.in" source "package/freeswitch/Config.in" source "package/freeswitch-mod-bcg729/Config.in" source "package/frr/Config.in" source "package/gerbera/Config.in" source "package/gesftpserver/Config.in" source "package/gloox/Config.in" source "package/glorytun/Config.in" source "package/gupnp-tools/Config.in" source "package/gutenprint/Config.in" source "package/hans/Config.in" source "package/haproxy/Config.in" source "package/hiawatha/Config.in" source "package/hostapd/Config.in" source "package/hplip/Config.in" source "package/htpdate/Config.in" source "package/httping/Config.in" source "package/i2pd/Config.in" source "package/ibrdtn-tools/Config.in" source "package/ibrdtnd/Config.in" source "package/ifenslave/Config.in" source "package/ifmetric/Config.in" source "package/ifplugd/Config.in" source "package/iftop/Config.in" source "package/ifupdown/Config.in" source "package/ifupdown-scripts/Config.in" source "package/igd2-for-linux/Config.in" source "package/igh-ethercat/Config.in" source "package/igmpproxy/Config.in" source "package/inadyn/Config.in" source "package/iodine/Config.in" source "package/ipcalc/Config.in" source "package/iperf/Config.in" source "package/iperf3/Config.in" source "package/iproute2/Config.in" source "package/ipset/Config.in" source "package/iptables/Config.in" source "package/iptraf-ng/Config.in" source "package/iputils/Config.in" source "package/irssi/Config.in" source "package/iw/Config.in" source "package/iwd/Config.in" source "package/janus-gateway/Config.in" source "package/keepalived/Config.in" 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" source "package/links/Config.in" source "package/linphone/Config.in" source "package/linux-zigbee/Config.in" source "package/linuxptp/Config.in" source "package/lldpd/Config.in" source "package/lrzsz/Config.in" source "package/lynx/Config.in" source "package/macchanger/Config.in" source "package/memcached/Config.in" source "package/mii-diag/Config.in" source "package/mini-snmpd/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" source "package/mosh/Config.in" source "package/mosquitto/Config.in" source "package/mrouted/Config.in" source "package/mrp/Config.in" source "package/mstpd/Config.in" source "package/mtr/Config.in" source "package/nbd/Config.in" source "package/ncftp/Config.in" source "package/ndisc6/Config.in" source "package/net-tools/Config.in" source "package/netatalk/Config.in" source "package/netcalc/Config.in" source "package/netcat/Config.in" source "package/netcat-openbsd/Config.in" source "package/netplug/Config.in" source "package/netsnmp/Config.in" source "package/netstat-nat/Config.in" source "package/network-manager/Config.in" source "package/network-manager-openvpn/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-dav-ext/Config.in" source "package/nginx-modsecurity/Config.in" 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" source "package/nuttcp/Config.in" source "package/odhcp6c/Config.in" source "package/odhcploc/Config.in" source "package/olsr/Config.in" source "package/open-lldp/Config.in" source "package/open-plc-utils/Config.in" source "package/openntpd/Config.in" source "package/openobex/Config.in" source "package/openresolv/Config.in" source "package/openssh/Config.in" source "package/openswan/Config.in" source "package/openvpn/Config.in" source "package/p910nd/Config.in" source "package/parprouted/Config.in" source "package/phidgetwebservice/Config.in" source "package/phytool/Config.in" source "package/pimd/Config.in" source "package/pixiewps/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/prosody/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/rabbitmq-server/Config.in" source "package/radvd/Config.in" source "package/reaver/Config.in" source "package/redir/Config.in" source "package/rp-pppoe/Config.in" source "package/rpcbind/Config.in" source "package/rsh-redone/Config.in" source "package/rsync/Config.in" source "package/rtorrent/Config.in" source "package/rtptools/Config.in" source "package/rygel/Config.in" source "package/s6-dns/Config.in" source "package/s6-networking/Config.in" source "package/samba4/Config.in" source "package/sconeserver/Config.in" source "package/ser2net/Config.in" source "package/shadowsocks-libev/Config.in" source "package/shairport-sync/Config.in" source "package/shellinabox/Config.in" source "package/smcroute/Config.in" source "package/sngrep/Config.in" source "package/snmpclitools/Config.in" source "package/snort/Config.in" source "package/snort3/Config.in" source "package/socat/Config.in" source "package/socketcand/Config.in" source "package/softether/Config.in" source "package/spawn-fcgi/Config.in" source "package/spice/Config.in" source "package/spice-protocol/Config.in" source "package/squid/Config.in" source "package/ssdp-responder/Config.in" source "package/sshguard/Config.in" source "package/sshpass/Config.in" source "package/sslh/Config.in" source "package/strongswan/Config.in" source "package/stunnel/Config.in" source "package/suricata/Config.in" source "package/system-config-printer/Config.in" source "package/tcpdump/Config.in" source "package/tcping/Config.in" source "package/tcpreplay/Config.in" source "package/tftpd/Config.in" source "package/thttpd/Config.in" source "package/tinc/Config.in" source "package/tinyproxy/Config.in" source "package/tinyssh/Config.in" source "package/tor/Config.in" source "package/traceroute/Config.in" source "package/transmission/Config.in" source "package/tunctl/Config.in" source "package/tvheadend/Config.in" source "package/uacme/Config.in" source "package/udpcast/Config.in" source "package/uftp/Config.in" source "package/uhttpd/Config.in" source "package/ulogd/Config.in" source "package/unbound/Config.in" source "package/uqmi/Config.in" source "package/uredir/Config.in" source "package/ushare/Config.in" source "package/ussp-push/Config.in" source "package/vde2/Config.in" source "package/vdr/Config.in" source "package/vdr-plugin-vnsiserver/Config.in" source "package/vnstat/Config.in" source "package/vpnc/Config.in" source "package/vsftpd/Config.in" source "package/vtun/Config.in" source "package/wavemon/Config.in" source "package/wget/Config.in" source "package/whois/Config.in" source "package/wireguard-linux-compat/Config.in" source "package/wireguard-tools/Config.in" 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/xinetd/Config.in" source "package/xl2tp/Config.in" source "package/xtables-addons/Config.in" source "package/znc/Config.in" endmenu menu "Package managers" comment "-------------------------------------------------------" comment "Please note: " comment "- Buildroot does *not* generate binary packages, " comment "- Buildroot does *not* install any package database. " comment "* " comment "It is up to you to provide those by yourself if you " comment "want to use any of those package managers. " comment "* " comment "See the manual: " comment "http://buildroot.org/manual.html#faq-no-binary-packages" comment "-------------------------------------------------------" source "package/opkg/Config.in" source "package/opkg-utils/Config.in" source "package/rpm/Config.in" endmenu menu "Real-Time" source "package/rtai/Config.in" source "package/xenomai/Config.in" endmenu menu "Security" source "package/apparmor/Config.in" source "package/checkpolicy/Config.in" source "package/ima-evm-utils/Config.in" source "package/optee-benchmark/Config.in" source "package/optee-client/Config.in" source "package/optee-examples/Config.in" source "package/optee-test/Config.in" source "package/paxtest/Config.in" source "package/policycoreutils/Config.in" source "package/refpolicy/Config.in" source "package/restorecond/Config.in" source "package/selinux-python/Config.in" source "package/semodule-utils/Config.in" source "package/setools/Config.in" source "package/urandom-scripts/Config.in" endmenu menu "Shell and utilities" comment "Shells" source "package/bash/Config.in" source "package/dash/Config.in" source "package/mksh/Config.in" source "package/zsh/Config.in" comment "Utilities" source "package/apg/Config.in" source "package/at/Config.in" source "package/bash-completion/Config.in" source "package/ccrypt/Config.in" source "package/crudini/Config.in" source "package/dialog/Config.in" source "package/dtach/Config.in" source "package/easy-rsa/Config.in" source "package/file/Config.in" source "package/gnupg/Config.in" source "package/gnupg2/Config.in" source "package/inotify-tools/Config.in" source "package/lockfile-progs/Config.in" source "package/logrotate/Config.in" source "package/logsurfer/Config.in" source "package/neofetch/Config.in" source "package/pdmenu/Config.in" source "package/pinentry/Config.in" source "package/qprint/Config.in" source "package/ranger/Config.in" source "package/rtty/Config.in" source "package/screen/Config.in" source "package/screenfetch/Config.in" source "package/sudo/Config.in" source "package/terminology/Config.in" source "package/time/Config.in" source "package/tini/Config.in" source "package/tmux/Config.in" source "package/ttyd/Config.in" source "package/which/Config.in" source "package/xmlstarlet/Config.in" source "package/xxhash/Config.in" source "package/ytree/Config.in" endmenu menu "System tools" source "package/acl/Config.in" source "package/android-tools/Config.in" source "package/atop/Config.in" source "package/attr/Config.in" source "package/audit/Config.in" source "package/balena-engine/Config.in" source "package/bubblewrap/Config.in" source "package/cgroupfs-mount/Config.in" source "package/circus/Config.in" source "package/containerd/Config.in" source "package/coreutils/Config.in" source "package/cpuload/Config.in" source "package/daemon/Config.in" source "package/dc3dd/Config.in" source "package/dcron/Config.in" source "package/ddrescue/Config.in" source "package/debianutils/Config.in" source "package/docker-cli/Config.in" source "package/docker-compose/Config.in" source "package/docker-engine/Config.in" source "package/docker-proxy/Config.in" source "package/earlyoom/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" source "package/gkrellm/Config.in" source "package/htop/Config.in" source "package/ibm-sw-tpm2/Config.in" source "package/initscripts/Config.in" source "package/iotop/Config.in" source "package/iprutils/Config.in" source "package/irqbalance/Config.in" source "package/jailhouse/Config.in" source "package/keyutils/Config.in" source "package/kmod/Config.in" source "package/kvmtool/Config.in" source "package/libostree/Config.in" source "package/libvirt/Config.in" source "package/lxc/Config.in" source "package/makedumpfile/Config.in" source "package/mender/Config.in" source "package/mender-grubenv/Config.in" source "package/mfoc/Config.in" source "package/monit/Config.in" source "package/multipath-tools/Config.in" source "package/ncdu/Config.in" source "package/netifrc/Config.in" source "package/numactl/Config.in" source "package/nut/Config.in" source "package/openrc/Config.in" source "package/openvmtools/Config.in" source "package/pamtester/Config.in" source "package/polkit/Config.in" source "package/powerpc-utils/Config.in" source "package/procps-ng/Config.in" source "package/procrank_linux/Config.in" source "package/psmisc/Config.in" source "package/pwgen/Config.in" source "package/quota/Config.in" source "package/quotatool/Config.in" source "package/rauc/Config.in" source "package/rsyslog/Config.in" source "package/runc/Config.in" source "package/s390-tools/Config.in" source "package/s6/Config.in" source "package/s6-linux-init/Config.in" source "package/s6-linux-utils/Config.in" source "package/s6-portable-utils/Config.in" source "package/s6-rc/Config.in" source "package/scrub/Config.in" source "package/scrypt/Config.in" source "package/sdbusplus/Config.in" source "package/seatd/Config.in" source "package/smack/Config.in" source "package/start-stop-daemon/Config.in" source "package/supervisor/Config.in" source "package/swupdate/Config.in" source "package/sysklogd/Config.in" source "package/syslog-ng/Config.in" source "package/systemd/Config.in" source "package/systemd-bootchart/Config.in" source "package/sysvinit/Config.in" source "package/tar/Config.in" source "package/thermald/Config.in" source "package/tpm-tools/Config.in" source "package/tpm2-abrmd/Config.in" source "package/tpm2-tools/Config.in" source "package/tpm2-totp/Config.in" source "package/unscd/Config.in" source "package/util-linux/Config.in" source "package/watchdog/Config.in" source "package/watchdogd/Config.in" source "package/xdg-dbus-proxy/Config.in" source "package/xen/Config.in" source "package/xvisor/Config.in" endmenu menu "Text editors and viewers" source "package/ed/Config.in" source "package/joe/Config.in" source "package/less/Config.in" source "package/mc/Config.in" source "package/mg/Config.in" source "package/most/Config.in" source "package/nano/Config.in" source "package/uemacs/Config.in" source "package/vim/Config.in" endmenu endmenu ================================================ FILE: package/Config.in.host ================================================ menu "Host utilities" source "package/abootimg/Config.in.host" source "package/aespipe/Config.in.host" source "package/android-tools/Config.in.host" source "package/asn1c/Config.in.host" source "package/babeltrace2/Config.in.host" source "package/bmap-tools/Config.in.host" source "package/btrfs-progs/Config.in.host" source "package/cbootimage/Config.in.host" source "package/checkpolicy/Config.in.host" source "package/checksec/Config.in.host" source "package/cmake/Config.in.host" source "package/cramfs/Config.in.host" source "package/cryptsetup/Config.in.host" source "package/dbus-python/Config.in.host" source "package/dfu-util/Config.in.host" source "package/dos2unix/Config.in.host" source "package/dosfstools/Config.in.host" source "package/doxygen/Config.in.host" source "package/dtc/Config.in.host" source "package/e2fsprogs/Config.in.host" source "package/e2tools/Config.in.host" source "package/environment-setup/Config.in.host" source "package/erofs-utils/Config.in.host" source "package/eudev/Config.in.host" source "package/exfatprogs/Config.in.host" source "package/f2fs-tools/Config.in.host" source "package/faketime/Config.in.host" source "package/fatcat/Config.in.host" source "package/firmware-utils/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/gnupg/Config.in.host" source "package/go/Config.in.host" source "package/go-bootstrap-stage1/Config.in.host" source "package/go-bootstrap-stage2/Config.in.host" source "package/google-breakpad/Config.in.host" source "package/gptfdisk/Config.in.host" source "package/imagemagick/Config.in.host" source "package/imx-mkimage/Config.in.host" source "package/imx-usb-loader/Config.in.host" source "package/jh71xx-tools/Config.in.host" source "package/jq/Config.in.host" source "package/jsmin/Config.in.host" source "package/kmod/Config.in.host" source "package/libp11/Config.in.host" source "package/lld/Config.in.host" source "package/lpc3250loader/Config.in.host" source "package/lttng-babeltrace/Config.in.host" source "package/mender-artifact/Config.in.host" source "package/meson-tools/Config.in.host" source "package/mfgtools/Config.in.host" source "package/mkpasswd/Config.in.host" source "package/mtd/Config.in.host" source "package/mtools/Config.in.host" source "package/mxsldr/Config.in.host" source "package/odb/Config.in.host" source "package/omap-u-boot-utils/Config.in.host" source "package/openocd/Config.in.host" source "package/opkg-utils/Config.in.host" source "package/parted/Config.in.host" source "package/patchelf/Config.in.host" source "package/pigz/Config.in.host" source "package/pkgconf/Config.in.host" source "package/pru-software-support/Config.in.host" source "package/pwgen/Config.in.host" source "package/python/Config.in.host" source "package/python-cython/Config.in.host" source "package/python-lxml/Config.in.host" source "package/python-six/Config.in.host" source "package/python-xlrd/Config.in.host" source "package/python3/Config.in.host" source "package/qemu/Config.in.host" source "package/qoriq-rcw/Config.in.host" source "package/raspberrypi-usbboot/Config.in.host" source "package/rauc/Config.in.host" source "package/rustc/Config.in.host" source "package/s6-rc/Config.in.host" source "package/sam-ba/Config.in.host" source "package/sdbusplus/Config.in.host" source "package/sloci-image/Config.in.host" source "package/squashfs/Config.in.host" source "package/sunxi-tools/Config.in.host" source "package/swig/Config.in.host" source "package/systemd/Config.in.host" source "package/tegrarcm/Config.in.host" source "package/ti-cgt-pru/Config.in.host" source "package/uboot-tools/Config.in.host" source "package/util-linux/Config.in.host" source "package/utp_com/Config.in.host" source "package/vboot-utils/Config.in.host" source "package/xorriso/Config.in.host" source "package/zip/Config.in.host" source "package/zstd/Config.in.host" endmenu ================================================ FILE: package/Makefile.in ================================================ ifndef MAKE MAKE := make endif ifndef HOSTMAKE HOSTMAKE = $(MAKE) endif HOSTMAKE := $(shell which $(HOSTMAKE) || type -p $(HOSTMAKE) || echo make) # If BR2_JLEVEL is 0, scale the maximum concurrency with the number of # CPUs. An additional job is used in order to keep processors busy # while waiting on I/O. # If the number of processors is not available, assume one. ifeq ($(BR2_JLEVEL),0) PARALLEL_JOBS := $(shell echo \ $$((1 + `getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1`))) else PARALLEL_JOBS := $(BR2_JLEVEL) endif MAKE1 := $(HOSTMAKE) -j1 override MAKE = $(HOSTMAKE) \ $(if $(findstring j,$(filter-out --%,$(MAKEFLAGS))),,-j$(PARALLEL_JOBS)) ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y) TARGET_VENDOR = $(call qstrip,$(BR2_TOOLCHAIN_BUILDROOT_VENDOR)) else TARGET_VENDOR = buildroot endif # Sanity checks ifeq ($(TARGET_VENDOR),) $(error BR2_TOOLCHAIN_BUILDROOT_VENDOR is not allowed to be empty) endif ifeq ($(TARGET_VENDOR),unknown) $(error BR2_TOOLCHAIN_BUILDROOT_VENDOR cannot be 'unknown'. \ It might be confused with the native toolchain) endif # Compute GNU_TARGET_NAME GNU_TARGET_NAME = $(ARCH)-$(TARGET_VENDOR)-$(TARGET_OS)-$(LIBC)$(ABI) # FLAT binary format needs uclinux, except RISC-V 64-bits which needs # the regular linux name. ifeq ($(BR2_BINFMT_FLAT):$(BR2_RISCV_64),y:) TARGET_OS = uclinux else TARGET_OS = linux endif ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) LIBC = uclibc else ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) LIBC = musl else LIBC = gnu endif # The ABI suffix is a bit special on ARM, as it needs to be # -uclibcgnueabi for uClibc EABI, and -gnueabi for glibc EABI. # This means that the LIBC and ABI aren't strictly orthogonal, # which explains why we need the test on LIBC below. ifeq ($(BR2_arm)$(BR2_armeb),y) ifeq ($(LIBC),uclibc) ABI = gnueabi else ABI = eabi endif ifeq ($(BR2_ARM_EABIHF),y) ABI := $(ABI)hf endif endif # For C-SKY abiv1 & abiv2 ifeq ($(BR2_csky),y) ifeq ($(BR2_ck610),y) ABI = abiv1 else ABI = abiv2 endif endif # For FSL PowerPC there's SPE ifeq ($(BR2_powerpc_SPE),y) ABI = spe # MPC8540s are e500v1 with single precision FP ifeq ($(BR2_powerpc_8540),y) TARGET_ABI += -mabi=spe -mfloat-gprs=single -Wa,-me500 endif ifeq ($(BR2_powerpc_8548),y) TARGET_ABI += -mabi=spe -mfloat-gprs=double -Wa,-me500x2 endif ifeq ($(BR2_powerpc_e500mc),y) TARGET_ABI += -mabi=spe -mfloat-gprs=double -Wa,-me500mc endif endif # Use longcalls option for Xtensa globally. # The 'longcalls' option allows calls across a greater range of addresses, # and is required for some packages. While this option can degrade both # code size and performance, the linker can usually optimize away the # overhead when a call ends up within a certain range. # # Use auto-litpools for Xtensa globally. # Collecting literals into separate section can be advantageous if that # section is placed into DTCM at link time. This is applicable for code # running on bare metal, but makes no sense under linux, where userspace # is isolated from the physical memory details. OTOH placing literals into # separate section breaks build of huge source files, because l32r # instruction can only access literals in 256 KBytes range. # ifeq ($(BR2_xtensa),y) TARGET_ABI += -mlongcalls -mauto-litpools endif STAGING_SUBDIR = $(GNU_TARGET_NAME)/sysroot STAGING_DIR = $(HOST_DIR)/$(STAGING_SUBDIR) ifeq ($(BR2_OPTIMIZE_0),y) TARGET_OPTIMIZATION = -O0 endif ifeq ($(BR2_OPTIMIZE_1),y) TARGET_OPTIMIZATION = -O1 endif ifeq ($(BR2_OPTIMIZE_2),y) TARGET_OPTIMIZATION = -O2 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 ifeq ($(BR2_OPTIMIZE_FAST),y) TARGET_OPTIMIZATION = -Ofast endif ifeq ($(BR2_ENABLE_DEBUG),) TARGET_DEBUGGING = -g0 endif ifeq ($(BR2_DEBUG_1),y) TARGET_DEBUGGING = -g1 endif ifeq ($(BR2_DEBUG_2),y) TARGET_DEBUGGING = -g2 endif ifeq ($(BR2_DEBUG_3),y) TARGET_DEBUGGING = -g3 endif TARGET_LDFLAGS = $(call qstrip,$(BR2_TARGET_LDFLAGS)) # By design, _FORTIFY_SOURCE requires gcc optimization to be enabled. # Therefore, we need to pass _FORTIFY_SOURCE and the optimization level # through the same mechanism, i.e currently through CFLAGS. Passing # _FORTIFY_SOURCE through the wrapper and the optimization level # through CFLAGS would not work, because CFLAGS are sometimes # ignored/overridden by packages, but the flags passed by the wrapper # are enforced: this would cause _FORTIFY_SOURCE to be used without any # optimization level, leading to a build / configure failure. So we keep # passing _FORTIFY_SOURCE and the optimization level both through CFLAGS. ifeq ($(BR2_FORTIFY_SOURCE_1),y) TARGET_HARDENED += -D_FORTIFY_SOURCE=1 else ifeq ($(BR2_FORTIFY_SOURCE_2),y) TARGET_HARDENED += -D_FORTIFY_SOURCE=2 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_HARDENED) TARGET_CXXFLAGS = $(TARGET_CFLAGS) TARGET_FCFLAGS = $(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79509 ifeq ($(BR2_m68k_cf),y) TARGET_CFLAGS += -fno-dwarf2-cfi-asm TARGET_CXXFLAGS += -fno-dwarf2-cfi-asm endif ifeq ($(BR2_BINFMT_FLAT),y) ifeq ($(BR2_RISCV_64),y) TARGET_CFLAGS += -fPIC endif ifeq ($(BR2_BINFMT_FLAT_ONE),y) ELF2FLT_FLAGS = $(if $($(PKG)_FLAT_STACKSIZE),\ -Wl$(comma)-elf2flt="-r -s$($(PKG)_FLAT_STACKSIZE)",\ -Wl$(comma)-elf2flt=-r) else ELF2FLT_FLAGS = $(if $($(PKG)_FLAT_STACKSIZE),\ -Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\ -Wl$(comma)-elf2flt) endif TARGET_CFLAGS += $(ELF2FLT_FLAGS) TARGET_CXXFLAGS += $(ELF2FLT_FLAGS) TARGET_FCFLAGS += $(ELF2FLT_FLAGS) TARGET_LDFLAGS += $(ELF2FLT_FLAGS) 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_TOOLCHAIN_BUILDROOT),y) TARGET_CROSS = $(HOST_DIR)/bin/$(GNU_TARGET_NAME)- else TARGET_CROSS = $(HOST_DIR)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)- endif # Define TARGET_xx variables for all common binutils/gcc TARGET_AR = $(TARGET_CROSS)ar TARGET_AS = $(TARGET_CROSS)as TARGET_CC = $(TARGET_CROSS)gcc TARGET_CPP = $(TARGET_CROSS)cpp TARGET_CXX = $(TARGET_CROSS)g++ TARGET_FC = $(TARGET_CROSS)gfortran TARGET_LD = $(TARGET_CROSS)ld TARGET_NM = $(TARGET_CROSS)nm TARGET_RANLIB = $(TARGET_CROSS)ranlib TARGET_READELF = $(TARGET_CROSS)readelf TARGET_OBJCOPY = $(TARGET_CROSS)objcopy TARGET_OBJDUMP = $(TARGET_CROSS)objdump ifeq ($(BR2_STRIP_strip),y) STRIP_STRIP_DEBUG := --strip-debug TARGET_STRIP = $(TARGET_CROSS)strip STRIPCMD = $(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note else TARGET_STRIP = /bin/true STRIPCMD = $(TARGET_STRIP) endif INSTALL := $(shell which install || type -p install) UNZIP := $(shell which unzip || type -p unzip) -q APPLY_PATCHES = PATH=$(HOST_DIR)/bin:$$PATH support/scripts/apply-patches.sh $(if $(QUIET),-s) HOST_CPPFLAGS = -I$(HOST_DIR)/include HOST_CFLAGS ?= -O2 HOST_CFLAGS += $(HOST_CPPFLAGS) HOST_CXXFLAGS += $(HOST_CFLAGS) HOST_LDFLAGS += -L$(HOST_DIR)/lib -Wl,-rpath,$(HOST_DIR)/lib # host-intltool should be executed with the system perl, so we save # the path to the system perl, before a host-perl built by Buildroot # might get installed into $(HOST_DIR)/bin and therefore appears # in our PATH. This system perl will be used as INTLTOOL_PERL. export PERL=$(shell which perl) # host-intltool needs libxml-parser-perl, which Buildroot installs in # $(HOST_DIR)/lib/perl, so we must make sure that the system perl # finds this perl module by exporting the proper value for PERL5LIB. export PERL5LIB=$(HOST_DIR)/lib/perl TARGET_MAKE_ENV = PATH=$(BR_PATH) TARGET_CONFIGURE_OPTS = \ $(TARGET_MAKE_ENV) \ AR="$(TARGET_AR)" \ AS="$(TARGET_AS)" \ LD="$(TARGET_LD)" \ NM="$(TARGET_NM)" \ CC="$(TARGET_CC)" \ GCC="$(TARGET_CC)" \ CPP="$(TARGET_CPP)" \ CXX="$(TARGET_CXX)" \ FC="$(TARGET_FC)" \ F77="$(TARGET_FC)" \ RANLIB="$(TARGET_RANLIB)" \ READELF="$(TARGET_READELF)" \ STRIP="$(TARGET_STRIP)" \ OBJCOPY="$(TARGET_OBJCOPY)" \ OBJDUMP="$(TARGET_OBJDUMP)" \ AR_FOR_BUILD="$(HOSTAR)" \ AS_FOR_BUILD="$(HOSTAS)" \ CC_FOR_BUILD="$(HOSTCC)" \ GCC_FOR_BUILD="$(HOSTCC)" \ CXX_FOR_BUILD="$(HOSTCXX)" \ LD_FOR_BUILD="$(HOSTLD)" \ CPPFLAGS_FOR_BUILD="$(HOST_CPPFLAGS)" \ CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ CXXFLAGS_FOR_BUILD="$(HOST_CXXFLAGS)" \ LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \ FCFLAGS_FOR_BUILD="$(HOST_FCFLAGS)" \ DEFAULT_ASSEMBLER="$(TARGET_AS)" \ DEFAULT_LINKER="$(TARGET_LD)" \ CPPFLAGS="$(TARGET_CPPFLAGS)" \ CFLAGS="$(TARGET_CFLAGS)" \ 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) HOST_MAKE_ENV = \ PATH=$(BR_PATH) \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ PKG_CONFIG_SYSROOT_DIR="/" \ PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \ PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \ PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/share/pkgconfig" HOST_CONFIGURE_OPTS = \ $(HOST_MAKE_ENV) \ AR="$(HOSTAR)" \ AS="$(HOSTAS)" \ LD="$(HOSTLD)" \ NM="$(HOSTNM)" \ CC="$(HOSTCC)" \ GCC="$(HOSTCC)" \ CXX="$(HOSTCXX)" \ CPP="$(HOSTCPP)" \ OBJCOPY="$(HOSTOBJCOPY)" \ RANLIB="$(HOSTRANLIB)" \ CPPFLAGS="$(HOST_CPPFLAGS)" \ CFLAGS="$(HOST_CFLAGS)" \ CXXFLAGS="$(HOST_CXXFLAGS)" \ LDFLAGS="$(HOST_LDFLAGS)" \ INTLTOOL_PERL=$(PERL) # This is extra environment we can not export ourselves (eg. because some # packages use that variable internally, eg. uboot), so we have to # explicitly pass it to user-supplied external hooks (eg. post-build, # post-images) EXTRA_ENV = \ PATH=$(BR_PATH) \ BR2_DL_DIR=$(BR2_DL_DIR) \ BUILD_DIR=$(BUILD_DIR) \ CONFIG_DIR=$(CONFIG_DIR) \ O=$(CANONICAL_O) ################################################################################ # settings we need to pass to configure # does unaligned access trap? BR2_AC_CV_TRAP_CHECK = ac_cv_lbl_unaligned_fail=yes ifeq ($(BR2_i386),y) BR2_AC_CV_TRAP_CHECK = ac_cv_lbl_unaligned_fail=no endif ifeq ($(BR2_x86_64),y) BR2_AC_CV_TRAP_CHECK = ac_cv_lbl_unaligned_fail=no endif ifeq ($(BR2_m68k),y) BR2_AC_CV_TRAP_CHECK = ac_cv_lbl_unaligned_fail=no endif ifeq ($(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpc64le),y) BR2_AC_CV_TRAP_CHECK = ac_cv_lbl_unaligned_fail=no endif ifeq ($(BR2_ENDIAN),"BIG") BR2_AC_CV_C_BIGENDIAN = ac_cv_c_bigendian=yes else BR2_AC_CV_C_BIGENDIAN = ac_cv_c_bigendian=no endif # AM_GNU_GETTEXT misdetects musl gettext support. # musl currently implements api level 1 and 2 (basic + ngettext) # http://www.openwall.com/lists/musl/2015/04/16/3 # # These autoconf variables should only be pre-seeded when the minimal # gettext implementation of musl is used. When the full blown # implementation provided by gettext libintl is used, auto-detection # works fine, and pre-seeding those values is actually wrong. ifeq ($(BR2_TOOLCHAIN_USES_MUSL):$(BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL),y:) BR2_GT_CV_FUNC_GNUGETTEXT_LIBC = \ gt_cv_func_gnugettext1_libc=yes \ gt_cv_func_gnugettext2_libc=yes endif TARGET_CONFIGURE_ARGS = \ $(BR2_AC_CV_TRAP_CHECK) \ ac_cv_func_mmap_fixed_mapped=yes \ ac_cv_func_memcmp_working=yes \ ac_cv_have_decl_malloc=yes \ gl_cv_func_malloc_0_nonnull=yes \ ac_cv_func_malloc_0_nonnull=yes \ ac_cv_func_calloc_0_nonnull=yes \ ac_cv_func_realloc_0_nonnull=yes \ lt_cv_sys_lib_search_path_spec="" \ $(BR2_AC_CV_C_BIGENDIAN) \ $(BR2_GT_CV_FUNC_GNUGETTEXT_LIBC) ################################################################################ ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) NLS_OPTS = --enable-nls TARGET_NLS_DEPENDENCIES = host-gettext ifeq ($(BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL),y) TARGET_NLS_DEPENDENCIES += gettext TARGET_NLS_LIBS += -lintl endif else NLS_OPTS = --disable-nls endif # We need anything that is invalid. Traditionally, we'd have used 'false' (and # we did so in the past). However, that breaks libtool for packages that have # optional C++ support (e.g. gnutls), because libtool will *require* a *valid* # C++ preprocessor as long as CXX is not 'no'. # Now, whether we use 'no' or 'false' for CXX as the same side effect: it is an # invalid C++ compiler, and thus will cause detection of C++ to fail (which is # expected and what we want), while at the same time taming libtool into # silence. ifneq ($(BR2_INSTALL_LIBSTDCPP),y) TARGET_CONFIGURE_OPTS += CXX=no endif 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 else ifeq ($(BR2_SHARED_STATIC_LIBS),y) SHARED_STATIC_LIBS_OPTS = --enable-static --enable-shared endif ifeq ($(BR2_COMPILER_PARANOID_UNSAFE_PATH),y) export BR_COMPILER_PARANOID_UNSAFE_PATH=enabled endif include package/pkg-download.mk include package/pkg-autotools.mk include package/pkg-cmake.mk include package/pkg-luarocks.mk include package/pkg-perl.mk include package/pkg-python.mk include package/pkg-virtual.mk include package/pkg-generic.mk include package/pkg-kconfig.mk include package/pkg-rebar.mk include package/pkg-kernel-module.mk include package/pkg-waf.mk include package/pkg-golang.mk include package/pkg-meson.mk include package/pkg-qmake.mk ================================================ FILE: package/a10disp/Config.in ================================================ config BR2_PACKAGE_A10DISP bool "a10disp" depends on BR2_arm depends on BR2_LINUX_KERNEL help Program to change the display mode of Allwinner ARM SOCs running the linux-sunxi kernel (and not the mainline kernel.) http://github.com/hglm/a10disp comment "a10disp needs a Linux kernel to be built" depends on BR2_arm depends on !BR2_LINUX_KERNEL ================================================ FILE: package/a10disp/a10disp.hash ================================================ # Locally calculated sha256 5077405030e8f97a1edd4b86d469466abbc4d32b4a4609e58459347fcd1ba35b a10disp-0.6.1.tar.gz sha256 ddf849966f57fee8f9675f5a3c7791353d1cba71695cd58016212fc236bbdbee a10disp.c ================================================ FILE: package/a10disp/a10disp.mk ================================================ ################################################################################ # # a10disp # ################################################################################ A10DISP_VERSION = 0.6.1 A10DISP_SITE = $(call github,hglm,a10disp,v$(A10DISP_VERSION)) A10DISP_LICENSE = MIT A10DISP_LICENSE_FILES = a10disp.c A10DISP_DEPENDENCIES = linux define A10DISP_BUILD_CMDS cp -f $(LINUX_DIR)/include/video/sunxi_disp_ioctl.h $(@D)/ $(TARGET_CC) $(TARGET_CFLAGS) $(@D)/a10disp.c -o $(@D)/a10disp endef define A10DISP_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/a10disp $(TARGET_DIR)/usr/bin/a10disp endef $(eval $(generic-package)) ================================================ FILE: package/abootimg/Config.in ================================================ config BR2_PACKAGE_ABOOTIMG bool "abootimg" depends on BR2_USE_MMU # libblkid select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBBLKID help Tool to manipulate Android Boot Images, either on files or directly on /dev block devices. https://gitlab.com/ajs124/abootimg ================================================ FILE: package/abootimg/Config.in.host ================================================ config BR2_PACKAGE_HOST_ABOOTIMG bool "host abootimg" select BR2_PACKAGE_HOST_UTIL_LINUX help Tool to manipulate Android Boot Images, either on files or directly on /dev block devices. https://github.com/ggrandou/abootimg ================================================ FILE: package/abootimg/abootimg.hash ================================================ # Locally calculated sha256 f377da42a57d982cfc22fa75c5a69febdc3e4c1ef43cd0ceaec42e14067e2f37 abootimg-1ebeb393252ab5aeed62e34bc439b6728444f06e-br1.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/abootimg/abootimg.mk ================================================ ################################################################################ # # abootimg # ################################################################################ ABOOTIMG_VERSION = 1ebeb393252ab5aeed62e34bc439b6728444f06e ABOOTIMG_SITE = https://gitlab.com/ajs124/abootimg.git ABOOTIMG_SITE_METHOD = git ABOOTIMG_LICENSE = GPL-2.0+ ABOOTIMG_LICENSE_FILES = LICENSE # depends on libblkid from util-linux ABOOTIMG_DEPENDENCIES = util-linux HOST_ABOOTIMG_DEPENDENCIES = host-util-linux define ABOOTIMG_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define ABOOTIMG_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 $(@D)/abootimg $(TARGET_DIR)/usr/bin/abootimg endef define HOST_ABOOTIMG_BUILD_CMDS $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) endef define HOST_ABOOTIMG_INSTALL_CMDS $(INSTALL) -m 0755 $(@D)/abootimg $(HOST_DIR)/usr/bin/abootimg endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/acl/0001-Build-with-old-GCC-versions.patch ================================================ From a42519dceef0493ece45538375ae1791313f16d3 Mon Sep 17 00:00:00 2001 From: Hollis Blanchard Date: Mon, 30 Jul 2018 14:29:46 -0700 Subject: [PATCH] Remove pragmas inside functions GCC 4.4.7, as found in RHEL6, reports: libacl/acl_from_text.c:307: error: #pragma GCC diagnostic not allowed inside functions Signed-off-by: Hollis Blanchard --- libacl/acl_from_text.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/libacl/acl_from_text.c b/libacl/acl_from_text.c index 09790c9..fb6bc07 100644 --- a/libacl/acl_from_text.c +++ b/libacl/acl_from_text.c @@ -304,11 +304,8 @@ parse_acl_entry(const char **text_p, acl_t *acl_p) create_entry: if (acl_create_entry(acl_p, &entry_d) != 0) return -1; -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Waddress" if (acl_copy_entry(entry_d, int2ext(&entry_obj)) != 0) return -1; -#pragma GCC diagnostic pop return 0; fail: -- 2.13.0 ================================================ FILE: package/acl/Config.in ================================================ config BR2_PACKAGE_ACL bool "acl" select BR2_PACKAGE_ATTR help POSIX Access Control Lists, which are used to define more fine-grained discretionary access rights for files and directories. This package also provides libacl. http://savannah.nongnu.org/projects/acl ================================================ FILE: package/acl/acl.hash ================================================ # Locally calculated after checking pgp signature sha256 c0234042e17f11306c23c038b08e5e070edb7be44bef6697fb8734dcff1c66b1 acl-2.3.1.tar.xz # Locally calculated sha256 a45a845012742796534f7e91fe623262ccfb99460a2bd04015bd28d66fba95b8 doc/COPYING sha256 01b1f9f2c8ee648a7a596a1abe8aa4ed7899b1c9e5551bda06da6e422b04aa55 doc/COPYING.LGPL ================================================ FILE: package/acl/acl.mk ================================================ ################################################################################ # # acl # ################################################################################ ACL_VERSION = 2.3.1 ACL_SOURCE = acl-$(ACL_VERSION).tar.xz ACL_SITE = http://download.savannah.gnu.org/releases/acl ACL_LICENSE = GPL-2.0+ (programs), LGPL-2.1+ (libraries) ACL_LICENSE_FILES = doc/COPYING doc/COPYING.LGPL ACL_CPE_ID_VENDOR = acl_project ACL_DEPENDENCIES = attr HOST_ACL_DEPENDENCIES = host-attr ACL_INSTALL_STAGING = YES ACL_CONF_OPTS = --disable-nls $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/acpica/0001-build-do-not-use-Werror.patch ================================================ 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. [Vincent: tweak patch for 20170531 release] [Bernd: tweak patch for 20191018 release] Signed-off-by: "Yann E. MORIN" Signed-off-by: "Vicente Olivert Riera" Signed-off-by: Bernd Kuhls --- generate/unix/Makefile.config | 1 - generate/unix/iasl/Makefile | 16 ++++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/generate/unix/Makefile.config b/generate/unix/Makefile.config index c28e8a9b1..7064bed97 100644 --- a/generate/unix/Makefile.config +++ b/generate/unix/Makefile.config @@ -204,7 +204,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 47ea73cab..2c756af79 100644 --- a/generate/unix/iasl/Makefile +++ b/generate/unix/iasl/Makefile @@ -360,32 +360,32 @@ $(OBJDIR)/prparserparse.c $(OBJDIR)/prparser.y.h : $(ASL_COMPILER)/prparse # $(OBJDIR)/aslcompilerlex.o : $(OBJDIR)/aslcompilerlex.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall -o$@ $< $(OBJDIR)/aslcompilerparse.o : $(OBJDIR)/aslcompilerparse.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall -o$@ $< $(OBJDIR)/dtcompilerparserlex.o : $(OBJDIR)/dtcompilerparserlex.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall -o$@ $< $(OBJDIR)/dtcompilerparserparse.o : $(OBJDIR)/dtcompilerparserparse.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall -o$@ $< $(OBJDIR)/dtparserlex.o : $(OBJDIR)/dtparserlex.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall -o$@ $< $(OBJDIR)/dtparserparse.o : $(OBJDIR)/dtparserparse.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall -o$@ $< $(OBJDIR)/prparserlex.o : $(OBJDIR)/prparserlex.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall -o$@ $< $(OBJDIR)/prparserparse.o : $(OBJDIR)/prparserparse.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall -o$@ $< -- 2.20.1 ================================================ FILE: package/acpica/Config.in ================================================ 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 ================================================ FILE: package/acpica/acpica.hash ================================================ # locally computed hash sha256 8a49904744a8159b7f325ed941b56968ba37a0371c634036628064f97538de4b acpica-unix2-20200717.tar.gz sha256 cb17c679d3291eba1a70a1336062fb07eec2e839b0821b443b24f41de18c5218 source/include/acpi.h ================================================ FILE: package/acpica/acpica.mk ================================================ ################################################################################ # # acpica # ################################################################################ ACPICA_VERSION = 20200717 ACPICA_SOURCE = acpica-unix2-$(ACPICA_VERSION).tar.gz ACPICA_SITE = https://acpica.org/sites/acpica/files ACPICA_LICENSE = BSD-3-Clause or GPL-2.0 ACPICA_LICENSE_FILES = source/include/acpi.h ACPICA_DEPENDENCIES = host-bison host-flex HOST_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 HOST_ACPICA_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ all endef define ACPICA_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ HARDWARE_NAME=$(BR2_ARCH) DESTDIR="$(TARGET_DIR)" \ INSTALLFLAGS=-m755 install endef define HOST_ACPICA_INSTALL_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ PREFIX="$(HOST_DIR)" \ INSTALLFLAGS=-m755 install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/acpid/0001-dont-use-isfdtype.patch ================================================ Partially roll back upstream commit 4711119089e1ad08dad206f4fded68f1972fdeed since released versions of uClibc don't support isfdtype(). Signed-off-by: Gustavo Zaarias diff -Nura acpid-2.0.22.orig/sock.c acpid-2.0.22/sock.c --- acpid-2.0.22.orig/sock.c 2014-04-22 18:04:19.706841764 -0300 +++ acpid-2.0.22/sock.c 2014-04-22 18:05:08.285479625 -0300 @@ -53,7 +53,10 @@ int is_socket(int fd) { - return (isfdtype(fd, S_IFSOCK) == 1); + int v; + socklen_t l = sizeof(int); + + return (getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&v, &l) == 0); } /* accept a new client connection */ ================================================ FILE: package/acpid/0002-add-missing-defines.patch ================================================ Add missing MSG_CMSG_CLOEXEC Unpatched uClibc toolchains, even using the latest 0.9.33.2, do not have the MSG_CMSG_CLOEXEC definition. Even though the Buildroot internal toolchain backend has a uClibc patch to provide it, it doesn't apply to external toolchains. This patch provides the definition of MSG_CMSG_CLOEXEC. Signed-off-by: Thomas Petazzoni Index: b/libnetlink.h =================================================================== --- a/libnetlink.h +++ b/libnetlink.h @@ -7,6 +7,10 @@ #include #include +#ifndef MSG_CMSG_CLOEXEC +#define MSG_CMSG_CLOEXEC 0x40000000 +#endif + struct rtnl_handle { int fd; Index: b/kacpimon/libnetlink.h =================================================================== --- a/kacpimon/libnetlink.h +++ b/kacpimon/libnetlink.h @@ -7,6 +7,10 @@ #include #include +#ifndef MSG_CMSG_CLOEXEC +#define MSG_CMSG_CLOEXEC 0x40000000 +#endif + struct rtnl_handle { int fd; ================================================ FILE: package/acpid/Config.in ================================================ config BR2_PACKAGE_ACPID bool "acpid" depends on BR2_USE_MMU # fork() help Advanced Configuration and Power Interface event daemon. Acpid is designed to notify user-space programs of ACPI events, and allows you to configure specific actions for specific events. http://sourceforge.net/projects/acpid2/ ================================================ FILE: package/acpid/S02acpid ================================================ #!/bin/sh DAEMON="acpid" EXEC="/usr/sbin/$DAEMON" PIDFILE="/var/run/$DAEMON.pid" ACPID_ARGS="" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "$EXEC" \ -- -n $ACPID_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" -x "$EXEC" status=$? if [ "$status" -eq 0 ]; then # Give acpid time to send dying gasp to syslog sleep 1 echo "OK" else echo "FAIL" fi return "$status" } restart() { stop start } case "$1" in start|stop|restart) "$1";; reload) restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/acpid/acpid.hash ================================================ # From https://sourceforge.net/projects/acpid2/files/ md5 b2f2ca633b30ae893c47981fa4d3b258 acpid-2.0.33.tar.xz sha1 b3e06c3f2213db8ee1a9024cf372fb30e2fab637 acpid-2.0.33.tar.xz # Locally computed sha256 0856f71b3eb34a1b663d0a8e6363dfcbc519e63d847330498898658e2972dbe8 acpid-2.0.33.tar.xz sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/acpid/acpid.mk ================================================ ################################################################################ # # acpid # ################################################################################ ACPID_VERSION = 2.0.33 ACPID_SOURCE = acpid-$(ACPID_VERSION).tar.xz ACPID_SITE = http://downloads.sourceforge.net/project/acpid2 ACPID_LICENSE = GPL-2.0+ ACPID_LICENSE_FILES = COPYING ACPID_CPE_ID_VENDOR = tedfelix ACPID_CPE_ID_PRODUCT = acpid2 ACPID_SELINUX_MODULES = acpi define ACPID_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/acpid/acpid.service \ $(TARGET_DIR)/usr/lib/systemd/system/acpid.service endef define ACPID_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/acpid/S02acpid \ $(TARGET_DIR)/etc/init.d/S02acpid endef ifeq ($(BR2_INIT_SYSV)$(BR2_INIT_SYSTEMD),y) ACPID_POWEROFF_CMD = /sbin/shutdown -hP now else ACPID_POWEROFF_CMD = /sbin/poweroff endif define ACPID_SET_EVENTS mkdir -p $(TARGET_DIR)/etc/acpi/events printf 'event=button[ /]power\naction=%s\n' '$(ACPID_POWEROFF_CMD)' \ >$(TARGET_DIR)/etc/acpi/events/powerbtn endef ACPID_POST_INSTALL_TARGET_HOOKS += ACPID_SET_EVENTS $(eval $(autotools-package)) ================================================ FILE: package/acpid/acpid.service ================================================ [Unit] Description=ACPI event daemon Documentation=man:acpid(8) [Service] ExecStart=/usr/sbin/acpid --foreground --netlink [Install] WantedBy=multi-user.target ================================================ FILE: package/acpitool/Config.in ================================================ config BR2_PACKAGE_ACPITOOL bool "acpitool" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS 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/ threads, C++, dynamic library" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/acpitool/acpitool.hash ================================================ # locally computed hash sha256 004fb6cd43102918b6302cf537a2db7ceadda04aef2e0906ddf230f820dad34f acpitool-0.5.1.tar.bz2 sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/acpitool/acpitool.mk ================================================ ################################################################################ # # acpitool # ################################################################################ ACPITOOL_VERSION = 0.5.1 ACPITOOL_SOURCE = acpitool-$(ACPITOOL_VERSION).tar.bz2 ACPITOOL_SITE = http://downloads.sourceforge.net/sourceforge/acpitool ACPITOOL_LICENSE = GPL-2.0+ ACPITOOL_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/acsccid/Config.in ================================================ config BR2_PACKAGE_ACSCCID bool "acsccid" depends on BR2_TOOLCHAIN_HAS_THREADS # pcsc-lite, libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb depends on BR2_USE_MMU # pcsc-lite depends on !BR2_STATIC_LIBS # pcsc-lite select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_PCSC_LITE # Even though there is a --disable-libusb option, it has in # fact no effect, and acsccid really requires libusb. select BR2_PACKAGE_LIBUSB help acsccid is a PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card readers. http://acsccid.sourceforge.net/ comment "acsccid needs a toolchain w/ threads, dynamic library, gcc >= 4.9" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/acsccid/acsccid.hash ================================================ # From https://sourceforge.net/projects/acsccid/files/acsccid/1.1.7/ sha1 c0062401e5fedf3ec12c8c2d375d6e1561a8a8ed acsccid-1.1.8.tar.bz2 md5 3eba7b2527aa0b14c73b1a620a1d72d2 acsccid-1.1.8.tar.bz2 # Locally computed sha256 f86fd846bc88594a569ea27040cb441d933b7eca8d51d2a90bacf161e7740051 acsccid-1.1.8.tar.bz2 sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING ================================================ FILE: package/acsccid/acsccid.mk ================================================ ################################################################################ # # acsccid # ################################################################################ ACSCCID_VERSION = 1.1.8 ACSCCID_SOURCE = acsccid-$(ACSCCID_VERSION).tar.bz2 ACSCCID_SITE = http://downloads.sourceforge.net/acsccid ACSCCID_LICENSE = LGPL-2.1+ ACSCCID_LICENSE_FILES = COPYING ACSCCID_INSTALL_STAGING = YES ACSCCID_DEPENDENCIES = pcsc-lite host-flex host-pkgconf libusb ACSCCID_CONF_OPTS = --enable-usbdropdir=/usr/lib/pcsc/drivers ifeq ($(BR2_PACKAGE_LIBICONV),y) ACSCCID_DEPENDENCIES += libiconv endif $(eval $(autotools-package)) ================================================ FILE: package/adwaita-icon-theme/Config.in ================================================ config BR2_PACKAGE_ADWAITA_ICON_THEME bool "adwaita icon theme" depends on BR2_PACKAGE_LIBGTK2 || BR2_PACKAGE_LIBGTK3 help Adwaita icon theme ================================================ FILE: package/adwaita-icon-theme/adwaita-icon-theme.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/adwaita-icon-theme/3.22/adwaita-icon-theme-3.22.0.sha256sum sha256 a594e7440971f860cc61b1b8291be15ffc1b8dd06a9f11485a5a7faf189bcf6b adwaita-icon-theme-3.37.2.tar.xz # locally computed sha256 51f83b2b4e9ed2beebc9b8eed2ecad29314a58ed8c5184b22ad8f9df703d3ce5 COPYING sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING_LGPL sha256 207fe75c396c0ae197c57d42c727163428b6667d98cef3644e41c6f1afe1895f COPYING_CCBYSA3 ================================================ FILE: package/adwaita-icon-theme/adwaita-icon-theme.mk ================================================ ################################################################################ # # adwaita-icon-theme # ################################################################################ ADWAITA_ICON_THEME_VERSION_MAJOR = 3.37 ADWAITA_ICON_THEME_VERSION = $(ADWAITA_ICON_THEME_VERSION_MAJOR).2 ADWAITA_ICON_THEME_SITE = http://ftp.gnome.org/pub/gnome/sources/adwaita-icon-theme/$(ADWAITA_ICON_THEME_VERSION_MAJOR) ADWAITA_ICON_THEME_SOURCE = adwaita-icon-theme-$(ADWAITA_ICON_THEME_VERSION).tar.xz ADWAITA_ICON_THEME_INSTALL_STAGING = YES ADWAITA_ICON_THEME_LICENSE = LGPL-3.0 or CC-BY-SA-3.0 ADWAITA_ICON_THEME_LICENSE_FILES = COPYING COPYING_LGPL COPYING_CCBYSA3 ADWAITA_ICON_THEME_DEPENDENCIES = host-intltool host-libgtk3 $(eval $(autotools-package)) ================================================ FILE: package/aer-inject/Config.in ================================================ 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/ ================================================ FILE: package/aer-inject/aer-inject.hash ================================================ # Locally computed sha256 2dd2bd73aa738c1cc26ba04b6e502329778d18c2cc873c0bd00e6b2d38e9477c aer-inject-9bd5e2c7886fca72f139cd8402488a2235957d41-br1.tar.gz sha256 659a191d8775e05c6c6a9a4ba66b3577c577342bb83f20d393135eb6633c8973 README ================================================ FILE: package/aer-inject/aer-inject.mk ================================================ ################################################################################ # # 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_LICENSE = GPL-2.0 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)) ================================================ FILE: package/aespipe/Config.in ================================================ config BR2_PACKAGE_AESPIPE bool "aespipe" depends on BR2_USE_MMU # fork() help aespipe program is AES encrypting or decrypting pipe. It reads from standard input and writes to standard output. It can be used to create and restore encrypted tar or cpio archives. It can be used to encrypt and decrypt loop-AES compatible encrypted disk images. http://loop-aes.sourceforge.net/ ================================================ FILE: package/aespipe/Config.in.host ================================================ config BR2_PACKAGE_HOST_AESPIPE bool "host aespipe" help aespipe program is AES encrypting or decrypting pipe. It reads from standard input and writes to standard output. It can be used to create and restore encrypted tar or cpio archives. It can be used to encrypt and decrypt loop-AES compatible encrypted disk images. http://loop-aes.sourceforge.net/ ================================================ FILE: package/aespipe/aespipe.hash ================================================ # From https://sourceforge.net/projects/loop-aes/files/aespipe/v2.4f/ sha1 2c23e1a6be298cf4f173f06b1123e4ecd5e9a202 aespipe-v2.4f.tar.bz2 md5 ed05c62c1954110f009bedda4bc1562f aespipe-v2.4f.tar.bz2 # Locally computed: sha256 b135e1659f58dc9be5e3c88923cd03d2a936096ab8cd7f2b3af4cb7a844cef96 aespipe-v2.4f.tar.bz2 ================================================ FILE: package/aespipe/aespipe.mk ================================================ ################################################################################ # # aespipe # ################################################################################ AESPIPE_VERSION = 2.4f AESPIPE_SOURCE = aespipe-v$(AESPIPE_VERSION).tar.bz2 AESPIPE_SITE = http://loop-aes.sourceforge.net/aespipe AESPIPE_LICENSE = GPL $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/agentpp/0001-Fix-build-when-SNMPv3-is-disabled.patch ================================================ From 2a0fe384eec254643ca2176ccfcbbd036a5aad06 Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Tue, 14 Jul 2020 10:30:10 +0200 Subject: [PATCH] Fix build when SNMPv3 is disabled agentpp has ifdefs to disable v3 code when SNMPv3 is disabled. However it is missing one and it has a few ones in excess. Fix them. Upstream is aware, says "will fix in later version", but thinks to make v3 mandatory. See discussion at https://forum.snmp.app/t/agent-compile-fails-if-snmp-has-disable-snmpv3/326 Upstream status: none, upstream is not welcoming contributions. Signed-off-by: Luca Ceresoli --- include/agent_pp/notification_log_mib.h | 4 ++-- include/agent_pp/notification_originator.h | 2 ++ include/agent_pp/snmp_community_mib.h | 4 ++-- src/notification_originator.cpp | 2 ++ 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/agent_pp/notification_log_mib.h b/include/agent_pp/notification_log_mib.h index ddac05e515d9..8fd8cfec32ca 100644 --- a/include/agent_pp/notification_log_mib.h +++ b/include/agent_pp/notification_log_mib.h @@ -22,7 +22,7 @@ //--AgentGen BEGIN=_BEGIN #include -#ifdef _SNMPv3 +// #ifdef _SNMPv3 // This file deos not look SNMPv3-specific #include //--AgentGen END @@ -688,6 +688,6 @@ protected: */ -#endif +// #endif // _SNMPv3 diff --git a/include/agent_pp/notification_originator.h b/include/agent_pp/notification_originator.h index 95e8b4e1836d..6f50cd52625b 100644 --- a/include/agent_pp/notification_originator.h +++ b/include/agent_pp/notification_originator.h @@ -307,7 +307,9 @@ class AGENTPP_DECL NotificationOriginator: public NotificationSender { */ virtual nlmLogEntry* get_nlm_log_entry(); +#ifdef _SNMPv3 virtual v3MP* get_v3mp(); +#endif protected: diff --git a/include/agent_pp/snmp_community_mib.h b/include/agent_pp/snmp_community_mib.h index 7d5c4558f36d..d9eb2b4a87ec 100644 --- a/include/agent_pp/snmp_community_mib.h +++ b/include/agent_pp/snmp_community_mib.h @@ -49,7 +49,7 @@ namespace Agentpp { #define oidSnmpTrapAddress "1.3.6.1.6.3.18.1.3.0" #define oidSnmpTrapCommunity "1.3.6.1.6.3.18.1.4.0" -#ifdef _SNMPv3 +// #ifdef _SNMPv3 // This file deos not look SNMPv3-specific /** * snmpCommunityName @@ -346,7 +346,7 @@ class AGENTPP_DECL snmp_community_mib: public MibGroup static void add_public(); static void add_public(Mib* mib); }; -#endif +// #endif // _SNMPv3 #ifdef AGENTPP_NAMESPACE } diff --git a/src/notification_originator.cpp b/src/notification_originator.cpp index d7d566869998..39ddbe08cdeb 100644 --- a/src/notification_originator.cpp +++ b/src/notification_originator.cpp @@ -237,6 +237,7 @@ nlmLogEntry* NotificationOriginator::get_nlm_log_entry() { return nlmLogEntry::instance; } +#ifdef _SNMPv3 v3MP* NotificationOriginator::get_v3mp() { if (mib) { return mib->get_request_list()->get_v3mp(); @@ -244,6 +245,7 @@ v3MP* NotificationOriginator::get_v3mp() { return v3MP::I; } } +#endif bool NotificationOriginator::check_access(ListCursor& cur, -- 2.27.0 ================================================ FILE: package/agentpp/Config.in ================================================ config BR2_PACKAGE_AGENTPP bool "agent++" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # snmp++ depends on !BR2_STATIC_LIBS # snmp++ select BR2_PACKAGE_SNMPPP help AGENT++ is a set of C++ classes which provides a complete protocol engine and dispatch table for the development of SNMP agents. AGENT++ is a multilingual API which supports SNMPv1, SNMPv2c, and SNMPv3. It provides various C++ classes implementing prototypes for scalar and table SNMP managed objects that can be customized by derivation. Additional classes support the development of proxy agents as well as sending notifications. SNMPv3 support is enabled if SNMP++ enables it. http://www.agentpp.com/agentpp3_5/agentpp3_5.html comment "agent++ needs a toolchain w/ threads, C++, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS ================================================ FILE: package/agentpp/agentpp.hash ================================================ # Locally computed: sha256 9b45123df45e803198a1181540b37a4ccd0e63c68df6e826702e2ba49167edac agent++-4.3.1.tar.gz sha256 1eb85fc97224598dad1852b5d6483bbcf0aa8608790dcc657a5a2a761ae9c8c6 LICENSE-2_0.txt ================================================ FILE: package/agentpp/agentpp.mk ================================================ ################################################################################ # # agentpp # ################################################################################ AGENTPP_VERSION = 4.3.1 AGENTPP_SOURCE = agent++-$(AGENTPP_VERSION).tar.gz AGENTPP_SITE = http://www.agentpp.com/download AGENTPP_LICENSE = Apache-2.0 AGENTPP_LICENSE_FILES = LICENSE-2_0.txt AGENTPP_INSTALL_STAGING = YES AGENTPP_DEPENDENCIES = host-pkgconf snmppp AGENTPP_CONF_OPTS += \ --disable-proxy \ --disable-forwarder \ --disable-rpath $(eval $(autotools-package)) ================================================ FILE: package/aircrack-ng/0001-Expand-packed-definition.patch ================================================ From d4496006ac1e0c99908108b998ae39afb0658733 Mon Sep 17 00:00:00 2001 From: Joseph Benden Date: Tue, 7 Jul 2020 11:42:40 -0700 Subject: [PATCH] Expand __packed definition. Signed-off-by: Joseph Benden [Retrieved from: https://github.com/aircrack-ng/aircrack-ng/commit/d4496006ac1e0c99908108b998ae39afb0658733] Signed-off-by: Fabrice Fontaine --- lib/radiotap/radiotap.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/radiotap/radiotap.h b/lib/radiotap/radiotap.h index 57f784b8d..bb5a41dfc 100644 --- a/lib/radiotap/radiotap.h +++ b/lib/radiotap/radiotap.h @@ -56,7 +56,7 @@ struct ieee80211_radiotap_header { * @it_present: (first) present word */ uint32_t it_present; -} __packed; +} __attribute__((__packed__)); /* version is always 0 */ #define PKTHDR_RADIOTAP_VERSION 0 ================================================ FILE: package/aircrack-ng/0002-Fix-duplicated-symbols.patch ================================================ From f6f1396807607f5649d20631db517cfca3a1f5c4 Mon Sep 17 00:00:00 2001 From: Joseph Benden Date: Tue, 7 Jul 2020 11:44:40 -0700 Subject: [PATCH] Fix duplicated symbols. Signed-off-by: Joseph Benden [Retrieved from: https://github.com/aircrack-ng/aircrack-ng/commit/f6f1396807607f5649d20631db517cfca3a1f5c4] Signed-off-by: Fabrice Fontaine --- src/airodump-ng/airodump-ng.c | 2 -- src/airventriloquist-ng/airventriloquist-ng.c | 6 +++--- src/tkiptun-ng/tkiptun-ng.c | 4 ++-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/airodump-ng/airodump-ng.c b/src/airodump-ng/airodump-ng.c index 3ae6994dd..e72bc88e2 100644 --- a/src/airodump-ng/airodump-ng.c +++ b/src/airodump-ng/airodump-ng.c @@ -92,8 +92,6 @@ #include "radiotap/radiotap_iter.h" struct devices dev; -uint8_t h80211[4096] __attribute__((aligned(16))); -uint8_t tmpbuf[4096] __attribute__((aligned(16))); static const unsigned char llcnull[] = {0, 0, 0, 0}; diff --git a/src/airventriloquist-ng/airventriloquist-ng.c b/src/airventriloquist-ng/airventriloquist-ng.c index ac6b7647e..267d95540 100644 --- a/src/airventriloquist-ng/airventriloquist-ng.c +++ b/src/airventriloquist-ng/airventriloquist-ng.c @@ -173,7 +173,7 @@ static struct local_options } lopt; struct devices dev; -struct wif *_wi_in, *_wi_out; +extern struct wif *_wi_in, *_wi_out; struct ARP_req { @@ -195,8 +195,8 @@ struct APt }; unsigned long nb_pkt_sent; -u_int8_t h80211[4096]; -static u_int8_t tmpbuf[4096]; +extern u_int8_t h80211[4096]; +extern u_int8_t tmpbuf[4096]; static int tcp_test(const char * ip_str, const short port) { diff --git a/src/tkiptun-ng/tkiptun-ng.c b/src/tkiptun-ng/tkiptun-ng.c index dc67f5d58..43db0bc23 100644 --- a/src/tkiptun-ng/tkiptun-ng.c +++ b/src/tkiptun-ng/tkiptun-ng.c @@ -267,7 +267,7 @@ static struct local_options // unused, but needed for link struct devices dev; -struct wif *_wi_in, *_wi_out; +extern struct wif *_wi_in, *_wi_out; struct ARP_req { @@ -289,7 +289,7 @@ struct APt }; unsigned long nb_pkt_sent; -unsigned char h80211[4096]; +extern unsigned char h80211[4096]; static unsigned char srcbuf[4096]; static char strbuf[512]; static int alarmed; ================================================ FILE: package/aircrack-ng/Config.in ================================================ config BR2_PACKAGE_AIRCRACK_NG bool "aircrack-ng" depends on BR2_USE_MMU # uses fork() depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS # dlfcn.h select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4 if BR2_PACKAGE_LIBOPENSSL help A set of tools for auditing wireless networks For complete functionality, also select ethtool, iw, util-linux (utilities and rfkill), and wireless_tools. http://www.aircrack-ng.org/ comment "aircrack-ng needs a toolchain w/ dynamic library, threads, C++" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/aircrack-ng/aircrack-ng.hash ================================================ # From http://www.aircrack-ng.org/downloads.html sha1 ffeb4816476e7b329dc0c154f1aa4a30ad171beb aircrack-ng-1.6.tar.gz md5 22ddc85549b51ed0da0931d01ef215e5 aircrack-ng-1.6.tar.gz # Hash for license file: sha256 fc51fd3a97223f2fd47b057202d4a6b0daaedf23b5a1f5ff8723c192fc1e021d LICENSE ================================================ FILE: package/aircrack-ng/aircrack-ng.mk ================================================ ################################################################################ # # aircrack-ng # ################################################################################ AIRCRACK_NG_VERSION = 1.6 AIRCRACK_NG_SITE = http://download.aircrack-ng.org AIRCRACK_NG_LICENSE = GPL-2.0+ AIRCRACK_NG_LICENSE_FILES = LICENSE AIRCRACK_NG_CPE_ID_VENDOR = aircrack-ng AIRCRACK_NG_DEPENDENCIES = \ $(if $(BR2_PACKAGE_CMOCKA),cmocka) \ $(if $(BR2_PACKAGE_LIBNL),libnl) \ $(if $(BR2_PACKAGE_OPENSSL),openssl) \ $(if $(BR2_PACKAGE_PCRE),pcre) \ $(if $(BR2_PACKAGE_ZLIB),zlib) \ host-pkgconf AIRCRACK_NG_AUTORECONF = YES # Enable buddy-ng, easside-ng, tkiptun-ng, wesside-ng AIRCRACK_NG_CONF_OPTS = --with-experimental ifeq ($(BR2_TOOLCHAIN_HAS_SSP),y) AIRCRACK_NG_CONF_OPTS += --with-opt else AIRCRACK_NG_CONF_OPTS += --without-opt endif ifeq ($(BR2_PACKAGE_DUMA),y) AIRCRACK_NG_DEPENDENCIES += duma AIRCRACK_NG_CONF_OPTS += --with-duma else AIRCRACK_NG_CONF_OPTS += --without-duma endif ifeq ($(BR2_PACKAGE_HWLOC),y) AIRCRACK_NG_DEPENDENCIES += hwloc AIRCRACK_NG_CONF_OPTS += --enable-hwloc else AIRCRACK_NG_CONF_OPTS += --disable-hwloc endif ifeq ($(BR2_PACKAGE_JEMALLOC),y) AIRCRACK_NG_DEPENDENCIES += jemalloc AIRCRACK_NG_CONF_OPTS += --with-jemalloc else AIRCRACK_NG_CONF_OPTS += --without-jemalloc endif ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) AIRCRACK_NG_DEPENDENCIES += libgcrypt AIRCRACK_NG_CONF_OPTS += \ --with-gcrypt \ --with-libgcrypt-prefix=$(STAGING_DIR)/usr else AIRCRACK_NG_CONF_OPTS += --without-gcrypt endif ifeq ($(BR2_PACKAGE_LIBPCAP),y) AIRCRACK_NG_DEPENDENCIES += libpcap AIRCRACK_NG_CONF_OPTS += \ --with-libpcap-include=$(STAGING_DIR)/usr/include \ --with-libpcap-lib=$(STAGING_DIR)/usr/lib ifeq ($(BR2_STATIC_LIBS),y) AIRCRACK_NG_CONF_ENV += \ LIBS="`$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs`" endif endif ifeq ($(BR2_PACKAGE_SQLITE),y) AIRCRACK_NG_DEPENDENCIES += sqlite AIRCRACK_NG_CONF_OPTS += --with-sqlite3 else AIRCRACK_NG_CONF_OPTS += --without-sqlite3 endif $(eval $(autotools-package)) ================================================ FILE: package/alsa-lib/0001-Don-t-use-fork-on-noMMU-platforms.patch ================================================ From 41c029755502acf01ed634db437ac06d09be6c41 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 13 Apr 2018 09:02:37 +0200 Subject: [PATCH] Don't use fork() on noMMU platforms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Petazzoni [Jörg: update patch for 1.1.6] Signed-off-by: Jörg Krause Upstream: http://mailman.alsa-project.org/pipermail/alsa-devel/2018-November/141376.html [Bernd: update patch for 1.2.4] Signed-off-by: Bernd Kuhls --- configure.ac | 2 ++ src/pcm/pcm_direct.c | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index cce195ae..0c852434 100644 --- a/configure.ac +++ b/configure.ac @@ -51,6 +51,8 @@ dnl Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_CHECK_FUNCS([uselocale]) +AC_CHECK_FUNC([fork]) + SAVE_LIBRARY_VERSION AC_SUBST(LIBTOOL_VERSION_INFO) diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c index 2b07eff9..4dc3ea26 100644 --- a/src/pcm/pcm_direct.c +++ b/src/pcm/pcm_direct.c @@ -437,13 +437,21 @@ int snd_pcm_direct_server_create(snd_pcm_direct_t *dmix) close(dmix->server_fd); return ret; } - + +#ifdef HAVE_FORK ret = fork(); +#else + ret = vfork(); +#endif if (ret < 0) { close(dmix->server_fd); return ret; } else if (ret == 0) { +#ifdef HAVE_FORK ret = fork(); +#else + ret = vfork(); +#endif if (ret == 0) server_job(dmix); _exit(EXIT_SUCCESS); -- 2.14.3 ================================================ FILE: package/alsa-lib/0002-fix-build-with-disable-ucm.patch ================================================ From 3fbaea3ff390d4c09adbf5d6ae62fb7b5f3f24f5 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 28 Jun 2021 12:08:53 +0200 Subject: [PATCH] fix build with --disable-ucm Link: https://mailman.alsa-project.org/pipermail/alsa-devel/2021-June/186729.html Reported-by: Michael Forney Signed-off-by: Jaroslav Kysela Upstream: f4f29d42be8b8ad60ea4c5697374adad4bfe6868 Signed-off-by: Thomas Petazzoni --- include/local.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/local.h b/include/local.h index 4e7d88a0..7cfcec53 100644 --- a/include/local.h +++ b/include/local.h @@ -374,6 +374,8 @@ int _snd_config_load_with_include(snd_config_t *config, snd_input_t *in, void *INTERNAL(snd_dlopen)(const char *name, int mode, char *errbuf, size_t errbuflen); #endif +#ifdef BUILD_UCM + const char *uc_mgr_alibcfg_by_device(snd_config_t **config, const char *name); static inline int _snd_is_ucm_device(const char *name) @@ -381,4 +383,12 @@ static inline int _snd_is_ucm_device(const char *name) return name && name[0] == '_' && name[1] == 'u' && name[2] == 'c' && name[3] == 'm'; } +#else + +static inline const char *uc_mgr_alibcfg_by_device(snd_config_t **config, const char *name) { return NULL; } +static inline int _snd_is_ucm_device(const char *name) { return 0; } + + +#endif + #endif -- 2.31.1 ================================================ FILE: package/alsa-lib/0003-control-empty-fix-the-static-build.patch ================================================ From 81e7923fbfad45b2f353a4d6e3053af51f5f7d0b Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 15 Jun 2021 23:21:42 +0200 Subject: [PATCH] control: empty - fix the static build Reported-by: Jan Palus Fixes: https://github.com/alsa-project/alsa-lib/issues/157 Signed-off-by: Jaroslav Kysela [Retrieved from: https://github.com/alsa-project/alsa-lib/commit/81e7923fbfad45b2f353a4d6e3053af51f5f7d0b] Signed-off-by: Fabrice Fontaine --- src/control/control_empty.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/control/control_empty.c b/src/control/control_empty.c index 49d1026c..c9b048c1 100644 --- a/src/control/control_empty.c +++ b/src/control/control_empty.c @@ -30,7 +30,7 @@ #ifndef PIC /* entry for static linking */ -const char *_snd_module_ctl_empty = ""; +const char *_snd_module_control_empty = ""; #endif /*! \page control_plugins ================================================ FILE: package/alsa-lib/Config.in ================================================ comment "alsa-lib needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS menuconfig BR2_PACKAGE_ALSA_LIB bool "alsa-lib" # Even though some parts of alsa-lib use threads only when # available, some PCM plugins use them unconditionally. Since # the usage of alsa-lib on no-thread systems is pretty # unlikely, just require thread support globally for alsa-lib. depends on BR2_TOOLCHAIN_HAS_THREADS # Temporary until # https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4913 # is fixed select BR2_PACKAGE_ALSA_LIB_PCM help The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality to the Linux operating system. http://www.alsa-project.org/ if BR2_PACKAGE_ALSA_LIB config BR2_PACKAGE_ALSA_LIB_PYTHON bool "Python support for alsa-lib" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 help Add python support for alsa-lib. Python will be built and libpython will be installed in the target directory http://www.alsa-project.org/ config BR2_PACKAGE_ALSA_LIB_DEVDIR string "directory with ALSA device files" default "/dev/snd" config BR2_PACKAGE_ALSA_LIB_PCM_PLUGINS string "built PCM plugins" default "all" if BR2_USE_MMU default "copy linear route mulaw alaw adpcm rate plug multi file null empty share meter hooks lfloat ladspa dmix dshare dsnoop asym iec958 softvol extplug ioplug mmap_emul" if !BR2_USE_MMU config BR2_PACKAGE_ALSA_LIB_CTL_PLUGINS string "built control plugins" default "all" config BR2_PACKAGE_ALSA_LIB_ALOAD bool "aload" default y config BR2_PACKAGE_ALSA_LIB_MIXER bool "mixer" default y config BR2_PACKAGE_ALSA_LIB_PCM bool "pcm" default y config BR2_PACKAGE_ALSA_LIB_RAWMIDI bool "rawmidi" default y config BR2_PACKAGE_ALSA_LIB_HWDEP bool "hwdep" default y config BR2_PACKAGE_ALSA_LIB_SEQ bool "seq" default y config BR2_PACKAGE_ALSA_LIB_UCM bool "ucm" default y select BR2_PACKAGE_ALSA_LIB_MIXER config BR2_PACKAGE_ALSA_LIB_ALISP bool "alisp" default y depends on BR2_USE_MMU config BR2_PACKAGE_ALSA_LIB_OLD_SYMBOLS bool "old-symbols" default y endif ================================================ FILE: package/alsa-lib/alsa-lib.hash ================================================ # Locally calculated sha256 628421d950cecaf234de3f899d520c0a6923313c964ad751ffac081df331438e alsa-lib-1.2.5.1.tar.bz2 sha256 32434afcc8666ba060e111d715bfdb6c2d5dd8a35fa4d3ab8ad67d8f850d2f2b COPYING sha256 bfe16cf823bcff261fc6a062c07ee96660e3c39678f42f39a788a68dbc234ced aserver/COPYING ================================================ FILE: package/alsa-lib/alsa-lib.mk ================================================ ################################################################################ # # alsa-lib # ################################################################################ ALSA_LIB_VERSION = 1.2.5.1 ALSA_LIB_SOURCE = alsa-lib-$(ALSA_LIB_VERSION).tar.bz2 ALSA_LIB_SITE = https://www.alsa-project.org/files/pub/lib ALSA_LIB_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (aserver) ALSA_LIB_LICENSE_FILES = COPYING aserver/COPYING ALSA_LIB_CPE_ID_VENDOR = alsa-project ALSA_LIB_INSTALL_STAGING = YES ALSA_LIB_CFLAGS = $(TARGET_CFLAGS) ALSA_LIB_AUTORECONF = YES ALSA_LIB_CONF_OPTS = \ --with-alsa-devdir=$(call qstrip,$(BR2_PACKAGE_ALSA_LIB_DEVDIR)) \ --with-pcm-plugins="$(call qstrip,$(BR2_PACKAGE_ALSA_LIB_PCM_PLUGINS))" \ --with-ctl-plugins="$(call qstrip,$(BR2_PACKAGE_ALSA_LIB_CTL_PLUGINS))" \ --without-versioned # Can't build with static & shared at the same time (1.0.25+) ifeq ($(BR2_STATIC_LIBS),y) ALSA_LIB_CONF_OPTS += \ --enable-shared=no \ --without-libdl else ALSA_LIB_CONF_OPTS += --enable-static=no endif ifneq ($(BR2_PACKAGE_ALSA_LIB_ALOAD),y) ALSA_LIB_CONF_OPTS += --disable-aload endif ifneq ($(BR2_PACKAGE_ALSA_LIB_MIXER),y) ALSA_LIB_CONF_OPTS += --disable-mixer endif ifneq ($(BR2_PACKAGE_ALSA_LIB_PCM),y) ALSA_LIB_CONF_OPTS += --disable-pcm endif ifneq ($(BR2_PACKAGE_ALSA_LIB_RAWMIDI),y) ALSA_LIB_CONF_OPTS += --disable-rawmidi endif ifneq ($(BR2_PACKAGE_ALSA_LIB_HWDEP),y) ALSA_LIB_CONF_OPTS += --disable-hwdep endif ifneq ($(BR2_PACKAGE_ALSA_LIB_SEQ),y) ALSA_LIB_CONF_OPTS += --disable-seq endif ifneq ($(BR2_PACKAGE_ALSA_LIB_UCM),y) ALSA_LIB_CONF_OPTS += --disable-ucm endif ifneq ($(BR2_PACKAGE_ALSA_LIB_ALISP),y) ALSA_LIB_CONF_OPTS += --disable-alisp endif ifneq ($(BR2_PACKAGE_ALSA_LIB_OLD_SYMBOLS),y) ALSA_LIB_CONF_OPTS += --disable-old-symbols endif ifeq ($(BR2_PACKAGE_ALSA_LIB_PYTHON),y) ALSA_LIB_CONF_OPTS += \ --enable-mixer-pymods ifeq ($(BR2_PACKAGE_PYTHON),y) ALSA_LIB_CONF_OPTS += \ --with-pythonlibs=-lpython$(PYTHON_VERSION_MAJOR) \ --with-pythonincludes=$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR) ALSA_LIB_CFLAGS += -I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR) ALSA_LIB_DEPENDENCIES += python else ALSA_LIB_CONF_OPTS += \ --with-pythonlibs=-lpython$(PYTHON3_VERSION_MAJOR) \ --with-pythonincludes=$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) ALSA_LIB_CFLAGS += -I$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) ALSA_LIB_DEPENDENCIES += python3 endif else ALSA_LIB_CONF_OPTS += --disable-python endif ALSA_LIB_CONF_ENV = \ CFLAGS="$(ALSA_LIB_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS) -lm" $(eval $(autotools-package)) ================================================ FILE: package/alsa-plugins/Config.in ================================================ config BR2_PACKAGE_ALSA_PLUGINS bool "alsa-plugins" depends on BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_HWDEP help Advanced Linux Sound Architecture Plugins http://www.alsa-project.org/ ================================================ FILE: package/alsa-plugins/alsa-plugins.hash ================================================ # Locally calculated sha256 42eef98433d2c8d11f1deeeb459643619215a75aa5a5bbdd06a794e4c413df20 alsa-plugins-1.2.5.tar.bz2 sha256 32434afcc8666ba060e111d715bfdb6c2d5dd8a35fa4d3ab8ad67d8f850d2f2b COPYING sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING.GPL ================================================ FILE: package/alsa-plugins/alsa-plugins.mk ================================================ ################################################################################ # # alsa-plugins # ################################################################################ ALSA_PLUGINS_VERSION = 1.2.5 ALSA_PLUGINS_SOURCE = alsa-plugins-$(ALSA_PLUGINS_VERSION).tar.bz2 ALSA_PLUGINS_SITE = https://www.alsa-project.org/files/pub/plugins ALSA_PLUGINS_LICENSE = LGPL-2.1+ ALSA_PLUGINS_LICENSE_FILES = COPYING ALSA_PLUGINS_DEPENDENCIES = host-pkgconf alsa-lib ALSA_PLUGINS_CONF_OPTS = \ --disable-jack \ --disable-usbstream \ --disable-pulseaudio \ --disable-libav \ --disable-maemo-plugin \ --disable-maemo-resource-manager \ --with-speex=no ifeq ($(BR2_PACKAGE_LIBSAMPLERATE),y) ALSA_PLUGINS_CONF_OPTS += --enable-samplerate ALSA_PLUGINS_DEPENDENCIES += libsamplerate ALSA_PLUGINS_LICENSE += , GPL-2.0+ (samplerate plugin) ALSA_PLUGINS_LICENSE_FILES += COPYING.GPL else ALSA_PLUGINS_CONF_OPTS += --disable-samplerate endif $(eval $(autotools-package)) ================================================ FILE: package/alsa-utils/Config.in ================================================ comment "alsa-utils needs a toolchain w/ threads" depends on BR2_USE_MMU # fork depends on !BR2_TOOLCHAIN_HAS_THREADS menuconfig BR2_PACKAGE_ALSA_UTILS bool "alsa-utils" depends on BR2_USE_MMU # fork depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib select BR2_PACKAGE_ALSA_LIB help This package contains the command line utilities for the ALSA project. http://www.alsa-project.org/ if BR2_PACKAGE_ALSA_UTILS config BR2_PACKAGE_ALSA_UTILS_ALSACONF bool "alsaconf" config BR2_PACKAGE_ALSA_UTILS_ACONNECT bool "aconnect" select BR2_PACKAGE_ALSA_LIB_SEQ config BR2_PACKAGE_ALSA_UTILS_ALSACTL bool "alsactl" default y config BR2_PACKAGE_ALSA_UTILS_ALSALOOP bool "alsaloop" config BR2_PACKAGE_ALSA_UTILS_ALSAMIXER bool "alsamixer" default y depends on BR2_USE_WCHAR select BR2_PACKAGE_NCURSES select BR2_PACKAGE_ALSA_LIB_MIXER comment "alsamixer needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR config BR2_PACKAGE_ALSA_UTILS_ALSAUCM bool "alsaucm" select BR2_PACKAGE_ALSA_LIB_UCM config BR2_PACKAGE_ALSA_UTILS_ALSATPLG bool "alsatplg" config BR2_PACKAGE_ALSA_UTILS_AMIDI bool "amidi" select BR2_PACKAGE_ALSA_LIB_RAWMIDI config BR2_PACKAGE_ALSA_UTILS_AMIXER bool "amixer" select BR2_PACKAGE_ALSA_LIB_MIXER config BR2_PACKAGE_ALSA_UTILS_APLAY bool "aplay/arecord" select BR2_PACKAGE_ALSA_LIB_PCM config BR2_PACKAGE_ALSA_UTILS_APLAYMIDI bool "aplaymidi" select BR2_PACKAGE_ALSA_LIB_SEQ config BR2_PACKAGE_ALSA_UTILS_ARECORDMIDI bool "arecordmidi" select BR2_PACKAGE_ALSA_LIB_SEQ config BR2_PACKAGE_ALSA_UTILS_ASEQDUMP bool "aseqdump" select BR2_PACKAGE_ALSA_LIB_SEQ config BR2_PACKAGE_ALSA_UTILS_ASEQNET bool "aseqnet" select BR2_PACKAGE_ALSA_LIB_SEQ config BR2_PACKAGE_ALSA_UTILS_BAT bool "bat" help ALSABAT (ALSA Basic Audio Tester) is a simple command-line utility intended to help automate audio driver and sound server testing with little human interaction. Note that analysis support in alsabat requires fftw single precision. config BR2_PACKAGE_ALSA_UTILS_IECSET bool "iecset" select BR2_PACKAGE_ALSA_LIB_PCM config BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST bool "speaker-test" select BR2_PACKAGE_ALSA_LIB_PCM endif ================================================ FILE: package/alsa-utils/alsa-utils.hash ================================================ # Locally calculated sha256 98ffc2d599de0577d423a48fa5f20a992ca0b82d812ed1f2e58ade49ac6da426 alsa-utils-1.2.4.tar.bz2 sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/alsa-utils/alsa-utils.mk ================================================ ################################################################################ # # alsa-utils # ################################################################################ ALSA_UTILS_VERSION = 1.2.4 ALSA_UTILS_SOURCE = alsa-utils-$(ALSA_UTILS_VERSION).tar.bz2 ALSA_UTILS_SITE = https://www.alsa-project.org/files/pub/utils ALSA_UTILS_LICENSE = GPL-2.0 ALSA_UTILS_LICENSE_FILES = COPYING ALSA_UTILS_INSTALL_STAGING = YES ALSA_UTILS_DEPENDENCIES = host-pkgconf alsa-lib \ $(if $(BR2_PACKAGE_NCURSES),ncurses) \ $(if $(BR2_PACKAGE_LIBSAMPLERATE),libsamplerate) \ $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_PACKAGE_ALSA_UTILS_ALSACTL),y) ALSA_UTILS_SELINUX_MODULES += alsa endif ALSA_UTILS_CONF_ENV = \ ac_cv_prog_ncurses5_config=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS) \ LIBS=$(TARGET_NLS_LIBS) ALSA_UTILS_CONF_OPTS = \ --disable-xmlto \ --disable-rst2man \ --with-curses=$(if $(BR2_PACKAGE_NCURSES_WCHAR),ncursesw,ncurses) ifeq ($(BR2_PACKAGE_ALSA_UTILS_ALSALOOP),y) ALSA_UTILS_CONF_OPTS += --enable-alsaloop else ALSA_UTILS_CONF_OPTS += --disable-alsaloop endif ifneq ($(BR2_PACKAGE_ALSA_UTILS_ALSAMIXER),y) ALSA_UTILS_CONF_OPTS += --disable-alsamixer endif ifeq ($(BR2_PACKAGE_ALSA_UTILS_BAT),y) ALSA_UTILS_CONF_OPTS += --enable-bat # Analysis support requires fftw single precision ALSA_UTILS_DEPENDENCIES += $(if $(BR2_PACKAGE_FFTW_SINGLE),fftw-single) else ALSA_UTILS_CONF_OPTS += --disable-bat endif ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ALSACONF) += usr/sbin/alsaconf ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ALSACTL) += usr/sbin/alsactl ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ALSALOOP) += usr/bin/alsaloop ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ALSAMIXER) += usr/bin/alsamixer 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/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 ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_APLAYMIDI) += usr/bin/aplaymidi ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ARECORDMIDI) += usr/bin/arecordmidi ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ASEQDUMP) += usr/bin/aseqdump ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ASEQNET) += usr/bin/aseqnet ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST) += usr/bin/speaker-test define ALSA_UTILS_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/var/lib/alsa for i in $(ALSA_UTILS_TARGETS_y); do \ $(INSTALL) -D -m 755 $(STAGING_DIR)/$$i $(TARGET_DIR)/$$i || exit 1; \ done if [ -x "$(TARGET_DIR)/usr/bin/speaker-test" ]; then \ mkdir -p $(TARGET_DIR)/usr/share/alsa/speaker-test; \ mkdir -p $(TARGET_DIR)/usr/share/sounds/alsa; \ cp -rdpf $(STAGING_DIR)/usr/share/alsa/speaker-test/* $(TARGET_DIR)/usr/share/alsa/speaker-test/; \ cp -rdpf $(STAGING_DIR)/usr/share/sounds/alsa/* $(TARGET_DIR)/usr/share/sounds/alsa/; \ fi if [ -x "$(TARGET_DIR)/usr/sbin/alsactl" ]; then \ mkdir -p $(TARGET_DIR)/usr/share/; \ cp -rdpf $(STAGING_DIR)/usr/share/alsa/ $(TARGET_DIR)/usr/share/alsa/; \ fi endef ifeq ($(BR2_PACKAGE_ALSA_UTILS_ALSACTL)$(BR2_INIT_SYSTEMD),yy) ALSA_UTILS_DEPENDENCIES += systemd ALSA_UTILS_CONF_OPTS += --with-systemdsystemunitdir=/usr/lib/systemd/system define ALSA_UTILS_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 $(@D)/alsactl/alsa-restore.service \ $(TARGET_DIR)/usr/lib/systemd/system/alsa-restore.service $(INSTALL) -D -m 0644 $(@D)/alsactl/alsa-state.service \ $(TARGET_DIR)/usr/lib/systemd/system/alsa-state.service $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/systemd/system/alsa-restore.service.d printf '[Install]\nWantedBy=multi-user.target\n' \ >$(TARGET_DIR)/usr/lib/systemd/system/alsa-restore.service.d/buildroot-enable.conf $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/systemd/system/alsa-state.service.d printf '[Install]\nWantedBy=multi-user.target\n' \ >$(TARGET_DIR)/usr/lib/systemd/system/alsa-state.service.d/buildroot-enable.conf; endef endif $(eval $(autotools-package)) ================================================ FILE: package/alsamixergui/0001-misc-fixes.patch ================================================ --- a/configure.in +++ b/configure.in @@ -11,7 +11,10 @@ AC_PROG_LN_S dnl Checks for libraries. -AC_CHECK_LIB(fltk,numericsort,,AC_MSG_ERROR("missing fltk")) +AC_CHECK_LIB(fltk,numericsort,, +AC_CHECK_LIB(fltk,fl_numericsort,, +AC_MSG_ERROR("missing fltk")) +) AM_PATH_ALSA(0.9.0) dnl Checks for header files. --- a/src/alsamixer.cxx 2007-10-21 12:39:11.000000000 -0400 +++ b/src/alsamixer.cxx 2007-10-21 12:49:10.000000000 -0400 @@ -2081,8 +2081,8 @@ static void mixer_signal_handler (int signal) { if (signal != SIGSEGV) - mixer_abort (ERR_SIGNAL, sys_siglist[signal], 0); - else + // mixer_abort (ERR_SIGNAL, sys_siglist[signal], 0); + //else { fprintf (stderr, "\nSegmentation fault.\n"); _exit (11); --- a/src/alsamixer.cxx 2006-01-16 12:41:54.000000000 -0600 +++ b/src/alsamixer.cxx 2006-01-16 12:45:44.000000000 -0600 @@ -653,8 +653,8 @@ if (vleft >= 0 && vright >= 0) { if (joined) { #ifdef ALSAMIXER_GUI - for (chn = snd_mixer_selem_channel_id_t(0); chn < SND_MIXER_SCHN_LAST; - snd_mixer_selem_channel_id_t(int(chn)++)) + for (chn = snd_mixer_selem_channel_id_t(0); chn < SND_MIXER_SCHN_LAST; + snd_mixer_selem_channel_id_t(int(chn)+1)) #else for (chn = 0; chn < SND_MIXER_SCHN_LAST; chn++) #endif ================================================ FILE: package/alsamixergui/0002-configure-fix-detection-of-fltk-libs.patch ================================================ From c154195fa161575363280aac9e928b7225f0de9e Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 29 Dec 2019 17:42:13 +0100 Subject: [PATCH] configure: fix detection of fltk libs Chaining calls to AC_CHECK_LIB one in the other, breaks the configure script, because some internal functions (e.g. ac_fn_c_try_link) would not be defined before they are needed, leading the build to fail as thus: checking for snd_tplg_new in -latopology... ./configure: line 4630: ac_fn_c_try_link: command not found no configure: error: No linkable libatopology was found. Using AC_CHECK_LIB() in sequence (i.e. one after the other) and memorising the result is not trivial: AC_CHECK_LIB() implements a ddefault action-if-found that append to LIBS, but not if the user ptrovides their own action-if-found. Instead, AC_SEARH_LIBS() always append to LIBS, *and* run the user-provided action. So, we switch to AC_SEARCH_LIBS() and memorise the result for each test, to eventually test if ether worked. Signed-off-by: Yann E. MORIN --- configure.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.in b/configure.in index 9307cc2..55f6864 100644 --- a/configure.in +++ b/configure.in @@ -11,10 +11,10 @@ AC_PROG_INSTALL AC_PROG_LN_S dnl Checks for libraries. -AC_CHECK_LIB(fltk,numericsort,, -AC_CHECK_LIB(fltk,fl_numericsort,, -AC_MSG_ERROR("missing fltk")) -) +has_fltk=false +AC_SEARCH_LIBS(numericsort,fltk,has_fltk=true) +AC_SEARCH_LIBS(fl_numericsort,fltk,has_fltk=true) +AS_IF(test "${has_fltk}" = "false", AC_MSG_ERROR("missing fltk")) AM_PATH_ALSA(0.9.0) dnl Checks for header files. -- 2.20.1 ================================================ FILE: package/alsamixergui/Config.in ================================================ config BR2_PACKAGE_ALSAMIXERGUI bool "alsamixergui" depends on BR2_PACKAGE_XORG7 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # fltk fork() depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib select BR2_PACKAGE_FLTK select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_PCM select BR2_PACKAGE_ALSA_LIB_MIXER help A nice GUI mixer for Alsa using fltk http://www.iua.upf.es/~mdeboer/projects/alsamixergui/ comment "alsamixergui needs a toolchain w/ C++, threads" depends on BR2_PACKAGE_XORG7 && BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/alsamixergui/alsamixergui.hash ================================================ # From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/a/alsamixergui/alsamixergui_0.9.0rc2-1-9.dsc md5 af942a41b81ba27e2e4d0a1e1ab0decb alsamixergui_0.9.0rc2-1.orig.tar.gz # locally computed sha256 ea617b76dcd0df74576686ca34c281f43bb9d844015cea91e3debc91538d2b1d debian/copyright ================================================ FILE: package/alsamixergui/alsamixergui.mk ================================================ ################################################################################ # # alsamixergui # ################################################################################ ALSAMIXERGUI_VERSION = 0.9.0rc2-1 ALSAMIXERGUI_SOURCE = alsamixergui_$(ALSAMIXERGUI_VERSION).orig.tar.gz ALSAMIXERGUI_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/a/alsamixergui ALSAMIXERGUI_LICENSE = GPL-2.0+ ALSAMIXERGUI_LICENSE_FILES = debian/copyright ALSAMIXERGUI_AUTORECONF = YES ALSAMIXERGUI_DEPENDENCIES = fltk alsa-lib $(eval $(autotools-package)) ================================================ FILE: package/altera-stapl/Config.in ================================================ config BR2_PACKAGE_ALTERA_STAPL bool "altera-stapl" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8 # libgpiod select BR2_PACKAGE_LIBGPIOD help Altera Jam STAPL Bytecode Player. https://github.com/kontron/altera-stapl ================================================ FILE: package/altera-stapl/altera-stapl.hash ================================================ sha256 a4d85a79790eab851399132fce4524979fe764d5297413b2445673e6a190bb42 altera-stapl-0.3.3.tar.gz sha256 d8c320ffc0030d1b096ae4732b50d2b811cf95e9a9b7377c1127b2563e0a0388 COPYING ================================================ FILE: package/altera-stapl/altera-stapl.mk ================================================ ################################################################################ # # altera-stapl # ################################################################################ ALTERA_STAPL_VERSION = 0.3.3 ALTERA_STAPL_SITE = $(call github,kontron,altera-stapl,$(ALTERA_STAPL_VERSION)) ALTERA_STAPL_LICENSE = GPLv2+ ALTERA_STAPL_LICENSE_FILES = COPYING ALTERA_STAPL_DEPENDENCIES = libgpiod define ALTERA_STAPL_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all endef define ALTERA_STAPL_INSTALL_TARGET_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/alure/Config.in ================================================ config BR2_PACKAGE_ALURE bool "alure" depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # openal depends on BR2_USE_WCHAR # use wchar_t depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::shared_future select BR2_PACKAGE_OPENAL help Alure is a C++ 3D audio API. It uses OpenAL for audio rendering, and provides common higher-level features such as file loading and decoding, buffer caching, background streaming, and source management for virtually unlimited sound source handles. https://kcat.strangesoft.net/alure.html if BR2_PACKAGE_ALURE config BR2_PACKAGE_ALURE_FLAC_DECODER bool "flac decoder" help Enables the built-in FLAC decoder. config BR2_PACKAGE_ALURE_MINIMP3_DECODER bool "minimp3 decoder" help Enables the built-in minimp3 decoder. config BR2_PACKAGE_ALURE_OPUS_DECODER bool "opus decoder" select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_OPUS help Enables the built-in libopusfile decoder. config BR2_PACKAGE_ALURE_SNDFILE_DECODER bool "sndfile decoder" select BR2_PACKAGE_LIBSNDFILE help Enables the built-in libsndfile decoder. config BR2_PACKAGE_ALURE_VORBIS_DECODER bool "vorbis decoder" select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_LIBVORBIS help Enables the built-in libvorbis decoder. endif comment "alure needs a toolchain w/ C++, gcc >= 4.9, NPTL, wchar" depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \ || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_USE_WCHAR comment "alure needs a toolchain not affected by GCC bug 64735" depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/alure/alure.hash ================================================ # Locally computed sha256 9b808e5b5a54d156348221dc86704c7831115047d5238691e6088f8c4814b2ca alure-14beed2a86d5a36030e907b21c46614d505f07cd.tar.gz sha256 7331ddc67daaf1a283c81e8dc17bac8dc40f54ed3fab3d3964616f4bd502a0a3 LICENSE ================================================ FILE: package/alure/alure.mk ================================================ ################################################################################ # # alure # ################################################################################ ALURE_VERSION = 14beed2a86d5a36030e907b21c46614d505f07cd ALURE_SITE = $(call github,kcat,alure,$(ALURE_VERSION)) ALURE_LICENSE = Zlib, Public Domain (src/decoders/dr_flac.h) ALURE_LICENSE_FILES = LICENSE ALURE_INSTALL_STAGING = YES ALURE_DEPENDENCIES = openal # Disabling alure examples remove the dependecies on physfs and dump libraries. # Enable at least one built-in decoder (wave). ALURE_CONF_OPTS = -DALURE_INSTALL=ON \ -DALURE_BUILD_EXAMPLES=OFF \ -DALURE_ENABLE_WAVE=ON ifeq ($(BR2_PACKAGE_ALURE_FLAC_DECODER),y) ALURE_CONF_OPTS += -DALURE_ENABLE_FLAC=ON else ALURE_CONF_OPTS += -DALURE_ENABLE_FLAC=OFF endif ifeq ($(BR2_PACKAGE_ALURE_MINIMP3_DECODER),y) ALURE_CONF_OPTS += -DALURE_ENABLE_MINIMP3=ON else ALURE_CONF_OPTS += -DALURE_ENABLE_MINIMP3=OFF endif ifeq ($(BR2_PACKAGE_ALURE_OPUS_DECODER),y) ALURE_CONF_OPTS += -DALURE_ENABLE_OPUS=ON ALURE_DEPENDENCIES += libogg opus else ALURE_CONF_OPTS += -DALURE_ENABLE_OPUS=OFF endif ifeq ($(BR2_PACKAGE_ALURE_SNDFILE_DECODER),y) ALURE_CONF_OPTS += -DALURE_ENABLE_SNDFILE=ON ALURE_DEPENDENCIES += libsndfile else ALURE_CONF_OPTS += -DALURE_ENABLE_SNDFILE=OFF endif ifeq ($(BR2_PACKAGE_ALURE_VORBIS_DECODER),y) ALURE_CONF_OPTS += -DALURE_ENABLE_VORBIS=ON ALURE_DEPENDENCIES += libogg libvorbis else ALURE_CONF_OPTS += -DALURE_ENABLE_VORBIS=OFF endif ifeq ($(BR2_STATIC_LIBS),y) ALURE_CONF_OPTS += -DALURE_BUILD_SHARED=OFF \ -DALURE_BUILD_STATIC=ON else ifeq ($(BR2_SHARED_STATIC_LIBS),y) ALURE_CONF_OPTS += -DALURE_BUILD_SHARED=ON \ -DALURE_BUILD_STATIC=ON else ALURE_CONF_OPTS += -DALURE_BUILD_SHARED=ON \ -DALURE_BUILD_STATIC=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/am335x-pru-package/0001-install-does-not-build.patch ================================================ Makefile: do not force the release build on install If we did build any of the other targets, and are just interested in those and not the release one, we still want to use the 'install' rule, but not build (and install) the release libraries. So, remove the dependency on the 'release' target from the 'install' rule. Signed-off-by: "Yann E. MORIN" diff -durN am335x-pru-package-506e074859891a2b350eb4f5fcb451c4961410ea.orig/pru_sw/app_loader/interface/Makefile am335x-pru-package-506e074859891a2b350eb4f5fcb451c4961410ea/pru_sw/app_loader/interface/Makefile --- am335x-pru-package-506e074859891a2b350eb4f5fcb451c4961410ea.orig/pru_sw/app_loader/interface/Makefile 2014-08-18 00:24:36.000000000 +0200 +++ am335x-pru-package-506e074859891a2b350eb4f5fcb451c4961410ea/pru_sw/app_loader/interface/Makefile 2014-10-12 11:39:17.144682697 +0200 @@ -38,7 +38,7 @@ all: debug release sodebug sorelease -install: release +install: install -m 0755 -d $(DESTDIR)$(PREFIX)/lib install -m 0755 -d $(DESTDIR)$(PREFIX)/include install -m 0644 $(LIBDIR)/* $(DESTDIR)$(PREFIX)/lib ================================================ FILE: package/am335x-pru-package/Config.in ================================================ config BR2_PACKAGE_AM335X_PRU_PACKAGE bool "am335x-pru-package" depends on BR2_arm # only relevant for TI am335x help TI AM335X PRU program loader https://github.com/beagleboard/am335x_pru_package ================================================ FILE: package/am335x-pru-package/am335x-pru-package.hash ================================================ # Locally computed sha256 2a902f825ccc1885c5dccd83e1ccee104aa30e601c9964a24f49459f76f674b9 am335x-pru-package-5f374ad57cc195f28bf5e585c3d446aba6ee7096.tar.gz sha256 f0fcdf9b2090896389eb4b784f23be96d5544c5ce5282d84f82ae9a8e8331beb pru_sw/utils/LICENCE.txt ================================================ FILE: package/am335x-pru-package/am335x-pru-package.mk ================================================ ################################################################################ # # am335x-pru-package # ################################################################################ AM335X_PRU_PACKAGE_VERSION = 5f374ad57cc195f28bf5e585c3d446aba6ee7096 AM335X_PRU_PACKAGE_SITE = $(call github,beagleboard,am335x_pru_package,$(AM335X_PRU_PACKAGE_VERSION)) AM335X_PRU_PACKAGE_LICENSE = BSD-3-Clause AM335X_PRU_PACKAGE_LICENSE_FILES = pru_sw/utils/LICENCE.txt AM335X_PRU_PACKAGE_DEPENDENCIES = host-am335x-pru-package AM335X_PRU_PACKAGE_INSTALL_STAGING = YES # The default 'all' rule builds everything, when we just need the library ifeq ($(BR2_ENABLE_DEBUG),y) AM335X_PRU_PACKAGE_MAKE_TARGET = debug $(if $(BR2_STATIC_LIBS),,sodebug) else AM335X_PRU_PACKAGE_MAKE_TARGET = release $(if $(BR2_STATIC_LIBS),,sorelease) endif define AM335X_PRU_PACKAGE_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CROSS_COMPILE="$(TARGET_CROSS)" \ -C $(@D)/pru_sw/app_loader/interface $(AM335X_PRU_PACKAGE_MAKE_TARGET) endef # 'install' installs whatever was built, and our patch removes the dependency # on the release build, so we can use it to install whatever we built above. define AM335X_PRU_PACKAGE_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE1) DESTDIR="$(STAGING_DIR)" PREFIX="/usr" \ -C $(@D)/pru_sw/app_loader/interface install endef define AM335X_PRU_PACKAGE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE1) DESTDIR="$(TARGET_DIR)" PREFIX="/usr" \ -C $(@D)/pru_sw/app_loader/interface install endef # The debug libraries are named differently than the release ones, # so we must provide a symlink to still be able to link with them. ifeq ($(BR2_ENABLE_DEBUG),y) define AM335X_PRU_PACKAGE_LN_DEBUG_STAGING_STATIC ln -sf libprussdrvd.a $(STAGING_DIR)/usr/lib/libprussdrv.a endef AM335X_PRU_PACKAGE_POST_INSTALL_STAGING_HOOKS += AM335X_PRU_PACKAGE_LN_DEBUG_STAGING_STATIC ifeq ($(BR2_STATIC_LIBS),) define AM335X_PRU_PACKAGE_LN_DEBUG_STAGING_SHARED ln -sf libprussdrvd.so $(STAGING_DIR)/usr/lib/libprussdrv.so endef AM335X_PRU_PACKAGE_POST_INSTALL_STAGING_HOOKS += AM335X_PRU_PACKAGE_LN_DEBUG_STAGING_SHARED define AM335X_PRU_PACKAGE_LN_DEBUG_TARGET ln -sf libprussdrvd.so $(TARGET_DIR)/usr/lib/libprussdrv.so endef AM335X_PRU_PACKAGE_POST_INSTALL_TARGET_HOOKS += AM335X_PRU_PACKAGE_LN_DEBUG_TARGET endif # !STATIC endif # DEBUG define HOST_AM335X_PRU_PACKAGE_BUILD_CMDS cd $(@D)/pru_sw/utils/pasm_source; \ $(HOSTCC) -Wall -D_UNIX_ pasm.c pasmpp.c pasmexp.c pasmop.c \ pasmdot.c pasmstruct.c pasmmacro.c path_utils.c -o ../pasm endef define HOST_AM335X_PRU_PACKAGE_INSTALL_CMDS $(INSTALL) -m 0755 -D $(@D)/pru_sw/utils/pasm $(HOST_DIR)/bin/pasm endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/am33x-cm3/0001-fix-makefile.patch ================================================ Enforce correct -march option Buildroot uses a normal ARM compiler to build the AM33X CM3 firmware (which runs on a Cortex-M3 processor), but Buildroot will have a default -march value that doesn't necessarily match the one needed for Cortex-M3, leading to build failures (gcc complains that the -mcpu=cortex-m3 option being passed is not compatible with the selected -march). Fix this by explicitly indicating -march=armv7-m. Signed-off-by: Thomas Petazzoni Updated the patch to the latest version of the Makefile Signed-off-by: Anders Darander Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ SRCDIR = src BINDIR = bin INCLUDES = $(SRCDIR)/include -CFLAGS =-mcpu=cortex-m3 -mthumb -nostdlib -Wall -Wundef \ +CFLAGS =-march=armv7-m -mcpu=cortex-m3 -mthumb -nostdlib -Wall -Wundef \ -Werror-implicit-function-declaration -Wstrict-prototypes \ -Wdeclaration-after-statement -fno-delete-null-pointer-checks \ -Wempty-body -fno-strict-overflow -g -I$(INCLUDES) -O2 ================================================ FILE: package/am33x-cm3/0002-Makefile-unconditionally-disable-SSP.patch ================================================ From 6c3b05b74ccd49d8ba246bfef0c2e549b9f2bf7b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 29 Oct 2019 16:14:18 +0100 Subject: [PATCH] Makefile: unconditionally disable SSP Though -nostdlib is passed in $(CFLAGS), -fno-stack-protector must also be passed to avoid linking errors related to undefined references to '__stack_chk_guard' and '__stack_chk_fail' if toolchain enforces -fstack-protector. Fixes: - http://autobuild.buildroot.net/results/3a3a21f3c35ea025e9b93e09c2454aed0ad31034 Signed-off-by: Fabrice Fontaine --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c3ec071..5226006 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,8 @@ INCLUDES = $(SRCDIR)/include CFLAGS =-march=armv7-m -mcpu=cortex-m3 -mthumb -nostdlib -Wall -Wundef \ -Werror-implicit-function-declaration -Wstrict-prototypes \ -Wdeclaration-after-statement -fno-delete-null-pointer-checks \ - -Wempty-body -fno-strict-overflow -g -I$(INCLUDES) -O2 + -Wempty-body -fno-strict-overflow -fno-stack-protector \ + -g -I$(INCLUDES) -O2 LDFLAGS =-nostartfiles -fno-exceptions -Tfirmware.ld EXECUTABLE=am335x-pm-firmware.elf -- 2.23.0 ================================================ FILE: package/am33x-cm3/0003-Makefile-unconditionally-disable-PIE.patch ================================================ From 0e8c3c4851ce64268a8ae1810ef72594251d917d Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 10 Nov 2019 21:57:12 +0100 Subject: [PATCH] Makefile: unconditionally disable PIE Though -nostdlib is passed in $(CFLAGS), -fno-pie must also be passed to avoid linking errors related to overlapping sections if toolchain enforces PIE. Fixes: - http://autobuild.buildroot.org/results/418a40b995e91bc66e692dfbc4b0521db3fa5fbb Signed-off-by: Fabrice Fontaine --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5226006..fe3d844 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ CFLAGS =-march=armv7-m -mcpu=cortex-m3 -mthumb -nostdlib -Wall -Wundef \ -Werror-implicit-function-declaration -Wstrict-prototypes \ -Wdeclaration-after-statement -fno-delete-null-pointer-checks \ -Wempty-body -fno-strict-overflow -fno-stack-protector \ - -g -I$(INCLUDES) -O2 + -fno-pie -g -I$(INCLUDES) -O2 LDFLAGS =-nostartfiles -fno-exceptions -Tfirmware.ld EXECUTABLE=am335x-pm-firmware.elf -- 2.23.0 ================================================ FILE: package/am33x-cm3/0004-Makefile-add-fno-builtin.patch ================================================ From 25fc567ba8a0cd199e48bfa82863247d953784ea Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 30 Aug 2020 20:59:29 +0200 Subject: [PATCH] Makefile: add -fno-builtin Build with gcc 10 fails on: /srv/storage/autobuild/run/instance-2/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: src/foundation/startup.o: in function `reset_handler': /srv/storage/autobuild/run/instance-2/output-1/build/am33x-cm3-11107db2f1e9e58ee75d4fe9cc38423c9a6e4365/src/foundation/startup.c:177: undefined reference to `memcpy' This is due to the fact that gcc 10 replaces the following statement by a memcpy call: *puldest++ = *pulsrc++; To fix this build failure, add -fno-builtin Fixes: - http://autobuild.buildroot.org/results/a991e6efa012df518ff1bb35017ad2c96c8feedc Signed-off-by: Fabrice Fontaine --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index fe3d844..fa24d4b 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ CFLAGS =-march=armv7-m -mcpu=cortex-m3 -mthumb -nostdlib -Wall -Wundef \ -Werror-implicit-function-declaration -Wstrict-prototypes \ -Wdeclaration-after-statement -fno-delete-null-pointer-checks \ -Wempty-body -fno-strict-overflow -fno-stack-protector \ - -fno-pie -g -I$(INCLUDES) -O2 + -fno-pie -fno-builtin -g -I$(INCLUDES) -O2 LDFLAGS =-nostartfiles -fno-exceptions -Tfirmware.ld EXECUTABLE=am335x-pm-firmware.elf -- 2.28.0 ================================================ FILE: package/am33x-cm3/Config.in ================================================ 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 http://arago-project.org/git/projects/am33x-cm3.git ================================================ FILE: package/am33x-cm3/S93-am335x-pm-firmware-load ================================================ #!/bin/sh # Load the PM CM3 firmware echo 1 > /sys/devices/ocp.2/44d00000.wkup_m3/firmware/am335x-pm-firmware.bin/loading cat /lib/firmware/am335x-pm-firmware.bin > /sys/devices/ocp.2/44d00000.wkup_m3/firmware/am335x-pm-firmware.bin/data echo 0 > /sys/devices/ocp.2/44d00000.wkup_m3/firmware/am335x-pm-firmware.bin/loading ================================================ FILE: package/am33x-cm3/am33x-cm3.hash ================================================ # Locally computed sha256 c0b11d7ed2300172354f2948e858ddb5cae19d084bd1ab6d48cfa7b6bfa13261 am33x-cm3-11107db2f1e9e58ee75d4fe9cc38423c9a6e4365-br1.tar.gz sha256 e136e6949a1d3ca144374375af8b9387faa11d2eee7debff8cf22ca8fe7bf7e9 License.txt ================================================ FILE: package/am33x-cm3/am33x-cm3.mk ================================================ ################################################################################ # # am33x-cm3 # ################################################################################ # This should correpsond to v05.00.00.02 AM33X_CM3_VERSION = 11107db2f1e9e58ee75d4fe9cc38423c9a6e4365 AM33X_CM3_SITE = http://arago-project.org/git/projects/am33x-cm3.git AM33X_CM3_SITE_METHOD = git AM33X_CM3_LICENSE = TI Publicly Available Software License AM33X_CM3_LICENSE_FILES = License.txt # The build command below will use the standard cross-compiler (normally # build for Cortex-A8, to build the FW for the Cortex-M3. define AM33X_CM3_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CROSS_COMPILE="$(TARGET_CROSS)" -C $(@D) all endef # Not all of the firmware files are used define AM33X_CM3_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/bin/am335x-pm-firmware.bin \ $(TARGET_DIR)/lib/firmware/am335x-pm-firmware.bin endef define AM33X_CM3_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/am33x-cm3/S93-am335x-pm-firmware-load \ $(TARGET_DIR)/etc/init.d/S93-am335x-pm-firmware-load endef $(eval $(generic-package)) ================================================ FILE: package/android-tools/0001-Fix-makefiles-for-out-of-tree-build.patch ================================================ [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 ================================================ FILE: package/android-tools/0002-Fix-adbd-for-non-Ubuntu-systems.patch ================================================ [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 ================================================ FILE: package/android-tools/0003-Fix-build-issue-with-uclibc.patch ================================================ [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 ================================================ FILE: package/android-tools/0004-Fix-build-issue-with-musl.patch ================================================ [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 ================================================ FILE: package/android-tools/0005-Use-pkgconf-to-get-libs-deps.patch ================================================ makefiles: use pkgconf to get libs deps LIBS lists library dependencies without taking into account static linking that need ordered listing and more libraries listed since differently from shared linking dependency is not transparent(i.e. -lcrypto could need -latomic etc.). Replace -lcrypto with `pkg-config --libs libcrypto` command to be sure all needed libraries are listed during linking. Signed-off-by: Giulio Benetti --- diff -urpN android-tools-4.2.2+git20130218.orig/debian/makefiles/adbd.mk android-tools-4.2.2+git20130218/debian/makefiles/adbd.mk --- android-tools-4.2.2+git20130218.orig/debian/makefiles/adbd.mk 2019-04-08 16:05:02.967710428 +0200 +++ android-tools-4.2.2+git20130218/debian/makefiles/adbd.mk 2019-04-08 16:30:42.463084426 +0200 @@ -44,7 +44,7 @@ CPPFLAGS+= -DADBD_NON_ANDROID CPPFLAGS+= -I$(SRCDIR)/core/adbd CPPFLAGS+= -I$(SRCDIR)/core/include -LIBS+= -lc -lpthread -lz -lcrypto -lcrypt +LIBS+= -lc -lpthread -lz `pkg-config --libs libcrypto` -lcrypt OBJS= $(patsubst %, %.o, $(basename $(SRCS))) diff -urpN android-tools-4.2.2+git20130218.orig/debian/makefiles/adb.mk android-tools-4.2.2+git20130218/debian/makefiles/adb.mk --- android-tools-4.2.2+git20130218.orig/debian/makefiles/adb.mk 2019-04-08 16:05:02.959701400 +0200 +++ android-tools-4.2.2+git20130218/debian/makefiles/adb.mk 2019-04-08 16:31:06.529426250 +0200 @@ -41,7 +41,7 @@ CPPFLAGS+= -DHAVE_TERMIO_H CPPFLAGS+= -I$(SRCDIR)/core/adb CPPFLAGS+= -I$(SRCDIR)/core/include -LIBS+= -lc -lpthread -lz -lcrypto +LIBS+= -lc -lpthread -lz `pkg-config --libs libcrypto` OBJS= $(SRCS:.c=.o) ================================================ FILE: package/android-tools/0006-fix-big-endian-build.patch ================================================ 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 { ================================================ FILE: package/android-tools/0007-include-cdefs-h-when-needed.patch ================================================ 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 ================================================ FILE: package/android-tools/0008-Include-sysmacros.h-to-compile-with-glibc-2.28.patch ================================================ usb_linux.c: fix minor()/major() build failure due to glibc 2.28 glibc 2.28 no longer includes from , and therefore must be included explicitly when major()/minor() are used. This commit adds a patch to directly include into all usb_linux.c files where minor() and major() macros are used. diff -urpN host-android-tools-4.2.2+git20130218.orig/core/adb/usb_linux.c host-android-tools-4.2.2+git20130218/core/adb/usb_linux.c --- host-android-tools-4.2.2+git20130218.orig/core/adb/usb_linux.c 2013-02-18 15:49:03.000000000 +0100 +++ host-android-tools-4.2.2+git20130218/core/adb/usb_linux.c 2018-09-09 11:47:16.476292546 +0200 @@ -20,6 +20,7 @@ #include #include +#include #include #include #include diff -urpN host-android-tools-4.2.2+git20130218.orig/core/adbd/usb_linux.c host-android-tools-4.2.2+git20130218/core/adbd/usb_linux.c --- host-android-tools-4.2.2+git20130218.orig/core/adbd/usb_linux.c 2018-09-09 02:32:57.154503866 +0200 +++ host-android-tools-4.2.2+git20130218/core/adbd/usb_linux.c 2018-09-09 11:47:28.148353880 +0200 @@ -20,6 +20,7 @@ #include #include +#include #include #include #include diff -urpN host-android-tools-4.2.2+git20130218.orig/core/fastboot/usb_linux.c host-android-tools-4.2.2+git20130218/core/fastboot/usb_linux.c --- host-android-tools-4.2.2+git20130218.orig/core/fastboot/usb_linux.c 2013-02-18 15:49:03.000000000 +0100 +++ host-android-tools-4.2.2+git20130218/core/fastboot/usb_linux.c 2018-09-09 11:46:53.028169154 +0200 @@ -33,6 +33,7 @@ #include #include +#include #include #include #include ================================================ FILE: package/android-tools/0009-Fix-makefiles-for-out-of-tree-ext4_utils-build.patch ================================================ From d24abbec201975a5eb7f8589614cfb424b8c80b6 Mon Sep 17 00:00:00 2001 From: Alex Kaplan Date: Sat, 10 Nov 2018 19:50:51 -0800 Subject: [PATCH] Fix makefiles for out-of-tree ext4_utils build Signed-off-by: Alex Kaplan --- debian/makefiles/ext4_utils.mk | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/debian/makefiles/ext4_utils.mk b/debian/makefiles/ext4_utils.mk index cb64916..c5904bf 100644 --- a/debian/makefiles/ext4_utils.mk +++ b/debian/makefiles/ext4_utils.mk @@ -1,6 +1,7 @@ # Makefile for ext4_utils; based on https://heiher.info/2227.html # Author: Dmitrijs Ledkovs +VPATH+=$(SRCDIR)/extras/ext4_utils SRCS+=make_ext4fs.c SRCS+=ext4fixup.c SRCS+=ext4_utils.c @@ -13,7 +14,7 @@ SRCS+=sha1.c SRCS+=wipe.c SRCS+=crc16.c -VPATH+=../../core/libsparse +VPATH+=$(SRCDIR)/core/libsparse SRCS+= backed_block.c SRCS+= sparse_crc32.c SRCS+= sparse.c @@ -31,10 +32,9 @@ SRCS+=img2simg.c SRCS+=simg2img.c SRCS+=simg2simg.c -CPPFLAGS+= -I. -CPPFLAGS+= -I/usr/include -CPPFLAGS+= -I../../core/include -CPPFLAGS+= -I../../core/libsparse/include/ +CPPFLAGS+= -I$(SRCDIR) +CPPFLAGS+= -I$(SRCDIR)/core/include +CPPFLAGS+= -I$(SRCDIR)/core/libsparse/include/ LIBS+= -lz -lselinux -- 2.7.4 ================================================ FILE: package/android-tools/0010-adb-added-patch-for-openssl-1.1.0-compatibility.patch ================================================ From bb3da0e32be4f2260940edf3ee0f88103dfd0dcc Mon Sep 17 00:00:00 2001 From: Eneas U de Queiroz Date: Tue, 5 Feb 2019 01:12:19 +0200 Subject: [PATCH] adb: added patch for openssl 1.1.0 compatibility Signed-off-by: Eneas U de Queiroz [Vadim: took only adb related part from https://github.com/lede-project/source/commit/f63f20fb93c7e67775cb01d97fc88b5b29452b81] Signed-off-by: Vadim Kochan --- core/adb/adb_auth_host.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/adb/adb_auth_host.c b/core/adb/adb_auth_host.c index 9039d42..debd2ef 100644 --- a/core/adb/adb_auth_host.c +++ b/core/adb/adb_auth_host.c @@ -79,7 +79,13 @@ static int RSA_to_RSAPublicKey(RSA *rsa, RSAPublicKey *pkey) } BN_set_bit(r32, 32); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + const BIGNUM *rsa_n, *rsa_e; + RSA_get0_key(rsa, &rsa_n, &rsa_e, NULL); + BN_copy(n, rsa_n); +#else BN_copy(n, rsa->n); +#endif BN_set_bit(r, RSANUMWORDS * 32); BN_mod_sqr(rr, r, n, ctx); BN_div(NULL, rem, n, r32, ctx); @@ -93,7 +99,11 @@ static int RSA_to_RSAPublicKey(RSA *rsa, RSAPublicKey *pkey) BN_div(n, rem, n, r32, ctx); pkey->n[i] = BN_get_word(rem); } +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + pkey->exponent = BN_get_word(rsa_e); +#else pkey->exponent = BN_get_word(rsa->e); +#endif out: BN_free(n0inv); -- 2.14.1 ================================================ FILE: package/android-tools/Config.in ================================================ 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. https://wiki.debian.org/AndroidTools#Original_android-tools_package 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" depends on BR2_TOOLCHAIN_HAS_THREADS # libselinux depends on !BR2_STATIC_LIBS # libselinux depends on BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT_GOOD_KERNEL_HEADERS select BR2_PACKAGE_LIBSELINUX select BR2_PACKAGE_ZLIB 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 toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS 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 ================================================ FILE: package/android-tools/Config.in.host ================================================ 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. config BR2_PACKAGE_HOST_ANDROID_TOOLS_EXT4_UTILS bool "ext4 utils" help This option will build and install the ext4 utils for the host, i.e. make_ext4fs, ext4fixup, ext2simg, img2simg, simg2img and simg2simg. endif ================================================ FILE: package/android-tools/android-tools.hash ================================================ # 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 sha256 170c5939bf8c8eed1db8f66f2d6155e8c1a3e799e390b55e7aad253195b1ebf5 debian/copyright ================================================ FILE: package/android-tools/android-tools.mk ================================================ ################################################################################ # # 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 ANDROID_TOOLS_DEPENDENCIES = host-pkgconf HOST_ANDROID_TOOLS_DEPENDENCIES = host-pkgconf # Extract the Debian tarball inside the sources define ANDROID_TOOLS_DEBIAN_EXTRACT $(call suitable-extractor,$(notdir $(ANDROID_TOOLS_EXTRA_DOWNLOADS))) \ $(ANDROID_TOOLS_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_BUILD_TARGETS += fastboot HOST_ANDROID_TOOLS_INSTALL_TARGETS += build-fastboot/fastboot HOST_ANDROID_TOOLS_DEPENDENCIES += host-zlib host-libselinux endif ifeq ($(BR2_PACKAGE_HOST_ANDROID_TOOLS_ADB),y) HOST_ANDROID_TOOLS_BUILD_TARGETS += adb HOST_ANDROID_TOOLS_INSTALL_TARGETS += build-adb/adb HOST_ANDROID_TOOLS_DEPENDENCIES += host-zlib host-openssl endif ifeq ($(BR2_PACKAGE_HOST_ANDROID_TOOLS_EXT4_UTILS),y) HOST_ANDROID_TOOLS_BUILD_TARGETS += ext4_utils HOST_ANDROID_TOOLS_INSTALL_TARGETS += \ $(addprefix build-ext4_utils/,make_ext4fs ext4fixup ext2simg img2simg simg2img simg2simg) HOST_ANDROID_TOOLS_DEPENDENCIES += host-libselinux 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_BUILD_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_INSTALL_TARGETS),\ $(INSTALL) -D -m 0755 $(@D)/$(t) $(HOST_DIR)/bin/$(notdir $(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 $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/angular-websocket/Config.in ================================================ config BR2_PACKAGE_ANGULAR_WEBSOCKET bool "angular-websocket" help An AngularJS WebSocket service for connecting client applications to servers. https://github.com/AngularClass/angular-websocket ================================================ FILE: package/angular-websocket/angular-websocket.hash ================================================ # Locally calculated sha256 69d752896bc17c08750a2fda24b5eb3c6d653afc6f406dd90a6b7c920b22a14a angular-websocket-2.0.0.tar.gz sha256 3013a57f2c8df37775804b8be5b107665a2ca209607bb92c618bcc084feb00a7 LICENSE ================================================ FILE: package/angular-websocket/angular-websocket.mk ================================================ ################################################################################ # # angular-websocket # ################################################################################ ANGULAR_WEBSOCKET_VERSION = 2.0.0 ANGULAR_WEBSOCKET_SITE = $(call github,AngularClass,angular-websocket,v$(ANGULAR_WEBSOCKET_VERSION)) ANGULAR_WEBSOCKET_LICENSE = MIT ANGULAR_WEBSOCKET_LICENSE_FILES = LICENSE # install .min.js as .js define ANGULAR_WEBSOCKET_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/dist/angular-websocket.min.js \ $(TARGET_DIR)/var/www/angular-websocket.js endef $(eval $(generic-package)) ================================================ FILE: package/angularjs/Config.in ================================================ config BR2_PACKAGE_ANGULARJS bool "angularjs" help AngularJS web application framework. http://angularjs.org ================================================ FILE: package/angularjs/angularjs.hash ================================================ # Locally computed: sha256 471b57064031da8c5fd3b1ba3f52dd1e0d2740a97ed34da2e8ab2a4cc2718280 angular-1.8.2.zip sha256 237656fae6e39d02cd71cbcfbf91b7964eba5796aafca1bfcfff3b054ce3fed6 angular.js ================================================ FILE: package/angularjs/angularjs.mk ================================================ ################################################################################ # # angularjs # ################################################################################ ANGULARJS_VERSION = 1.8.2 ANGULARJS_SOURCE = angular-$(ANGULARJS_VERSION).zip ANGULARJS_SITE = https://code.angularjs.org/$(ANGULARJS_VERSION) ANGULARJS_LICENSE = MIT # There's no separate license file in the archive, so use angular.js instead. ANGULARJS_LICENSE_FILES = angular.js ANGULARJS_CPE_ID_VENDOR = angularjs ANGULARJS_CPE_ID_PRODUCT = angular.js define ANGULARJS_EXTRACT_CMDS unzip $(ANGULARJS_DL_DIR)/$(ANGULARJS_SOURCE) -d $(@D) mv $(@D)/angular-$(ANGULARJS_VERSION)/* $(@D) rmdir $(@D)/angular-$(ANGULARJS_VERSION) endef # install .min.js as .js define ANGULARJS_INSTALL_TARGET_CMDS $(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)) ================================================ FILE: package/aoetools/0001-Change-shell-script-interpreter-from-bin-bash-to-bin.patch ================================================ From 4ef42740538cefd3c1554aa4df5bcb1388ac927b Mon Sep 17 00:00:00 2001 From: Sergio Prado Date: Tue, 16 Jan 2018 22:28:32 -0200 Subject: [PATCH] Change shell script interpreter from /bin/bash to /bin/sh This will make the script more portable, making it possible to run on systems that do not have bash. Signed-off-by: Sergio Prado --- aoe-stat.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aoe-stat.in b/aoe-stat.in index 50e6ac674169..0c1d6f5ebe1e 100755 --- a/aoe-stat.in +++ b/aoe-stat.in @@ -1,4 +1,4 @@ -#! /bin/bash +#! /bin/sh # aoe-stat - collate and present information about AoE storage # Copyright 2012, CORAID, Inc., and licensed under GPL v.2. -- 1.9.1 ================================================ FILE: package/aoetools/Config.in ================================================ config BR2_PACKAGE_AOETOOLS bool "aoetools" depends on BR2_TOOLCHAIN_HAS_THREADS help The aoetools are programs for users of the ATA over Ethernet (AoE) network storage protocol, a simple protocol for using storage over an ethernet LAN. http://aoetools.sourceforge.net/ comment "aoetools needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/aoetools/aoetools.hash ================================================ # Locally computed: sha256 477e796f5c18e8c0e61b5d88e1759c68249e8e0210c2f3de2b98680e2cc63e32 aoetools-37.tar.gz # Hash for license files: sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/aoetools/aoetools.mk ================================================ ################################################################################ # # aoetools # ################################################################################ AOETOOLS_VERSION = 37 AOETOOLS_SITE = $(call github,OpenAoE,aoetools,aoetools-$(AOETOOLS_VERSION)) AOETOOLS_LICENSE = GPL-2.0 AOETOOLS_LICENSE_FILES = COPYING define AOETOOLS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define AOETOOLS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) \ -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/apache/0001-cross-compile.patch ================================================ Fix cross-compilation Fetched httpd-2.4.x-cross_compile.diff from upstream bugtracker: https://issues.apache.org/bugzilla/show_bug.cgi?id=51257#c6 which is a bundle of upstream revisions: http://svn.apache.org/viewvc?view=revision&revision=1327907 http://svn.apache.org/viewvc?view=revision&revision=1328390 http://svn.apache.org/viewvc?view=revision&revision=1328714 Signed-off-by: Bernd Kuhls Index: server/Makefile.in =================================================================== --- a/server/Makefile.in (revision 1328714) +++ b/server/Makefile.in (working copy) @@ -22,9 +22,14 @@ include $(top_builddir)/build/rules.mk include $(top_srcdir)/build/library.mk +ifdef CC_FOR_BUILD +gen_test_char: gen_test_char.c + $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE -o $@ $< +else gen_test_char_OBJECTS = gen_test_char.lo gen_test_char: $(gen_test_char_OBJECTS) $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS) +endif test_char.h: gen_test_char ./gen_test_char > test_char.h Index: configure.in =================================================================== --- a/configure.in (revision 1328714) +++ b/configure.in (working copy) @@ -193,6 +193,14 @@ dnl Try to get c99 support for variadic macros ifdef([AC_PROG_CC_C99], [AC_PROG_CC_C99]) +dnl In case of cross compilation we set CC_FOR_BUILD to cc unless +dnl we got already CC_FOR_BUILD from environment. +if test "x${build_alias}" != "x${host_alias}"; then + if test "x${CC_FOR_BUILD}" = "x"; then + CC_FOR_BUILD=cc + fi +fi + if test "x${cache_file}" = "x/dev/null"; then # Likewise, ensure that CC and CPP are passed through to the pcre # configure script iff caching is disabled (the autoconf 2.5x default). Index: acinclude.m4 =================================================================== --- a/acinclude.m4 (revision 1328714) +++ ab/cinclude.m4 (working copy) @@ -53,6 +53,8 @@ APACHE_SUBST(CPPFLAGS) APACHE_SUBST(CFLAGS) APACHE_SUBST(CXXFLAGS) + APACHE_SUBST(CC_FOR_BUILD) + APACHE_SUBST(CFLAGS_FOR_BUILD) APACHE_SUBST(LTFLAGS) APACHE_SUBST(LDFLAGS) APACHE_SUBST(LT_LDFLAGS) ================================================ FILE: package/apache/0002-nios2_is_not_os2.patch ================================================ Fix nios2 detection. Apache treats nios2 as OS/2. Signed-off-by: Bernd Kuhls diff -uNr httpd-2.4.12.org/configure.in httpd-2.4.12/configure.in --- httpd-2.4.12.org/configure.in 2015-01-22 18:33:07.000000000 +0100 +++ httpd-2.4.12/configure.in 2015-04-02 22:01:32.851102219 +0200 @@ -268,7 +268,7 @@ AC_MSG_NOTICE([]) case $host in - *os2*) + *-os2*) # Use a custom made libtool replacement echo "using aplibtool" LIBTOOL="$abs_srcdir/srclib/apr/build/aplibtool" ================================================ FILE: package/apache/0003-server-Makefile.in-handle-separate-APR_INCLUDE_DIR-A.patch ================================================ From 00281390e82db18fe0de4033be4045f9391a8ee5 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 15 Nov 2018 14:04:29 +0100 Subject: [PATCH] server/Makefile.in: handle separate APR_INCLUDE_DIR/APU_INCLUDE_DIR If APR_INCLUDEDIR and APU_INCLUDEDIR point to different directories, but for example APU_INCLUDEDIR contains both the apr headers and apu headers, the "export_files" file will contain duplicate header files, causing the exports.c file to contain duplicate definitions, making the build fail. This commit fixes that by making sure we only use the apr headers from APR_INCLUDEDIR and the apu headers from the APU_INCLUDEDIR. Signed-off-by: Thomas Petazzoni Upstream: https://bz.apache.org/bugzilla/show_bug.cgi?id=62930 --- server/Makefile.in | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/server/Makefile.in b/server/Makefile.in index 1fa334467d..2258f0bdf2 100644 --- a/server/Makefile.in +++ b/server/Makefile.in @@ -34,7 +34,6 @@ test_char.h: gen_test_char util.lo: test_char.h EXPORT_DIRS = $(top_srcdir)/include $(top_srcdir)/os/$(OS_DIR) -EXPORT_DIRS_APR = $(APR_INCLUDEDIR) $(APU_INCLUDEDIR) # If export_files is a dependency here, but we remove it during this stage, # when exports.c is generated, make will not detect that export_files is no @@ -60,9 +59,8 @@ export_files: ls $$dir/*.h ; \ done; \ echo "$(top_srcdir)/server/mpm_fdqueue.h"; \ - for dir in $(EXPORT_DIRS_APR); do \ - ls $$dir/ap[ru].h $$dir/ap[ru]_*.h 2>/dev/null; \ - done; \ + ls $(APR_INCLUDE_DIR)/{apr.h,apr_*.h} 2>/dev/null; \ + ls $(APU_INCLUDE_DIR)/{apu.h,apu_*.h} 2>/dev/null; \ ) | sed -e s,//,/,g | sort -u > $@ exports.c: export_files -- 2.19.1 ================================================ FILE: package/apache/Config.in ================================================ config BR2_PACKAGE_APACHE bool "apache" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # apr select BR2_PACKAGE_APR_UTIL select BR2_PACKAGE_PCRE help The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards. https://httpd.apache.org if BR2_PACKAGE_APACHE choice prompt "Multi-Processing Module (MPM)" default BR2_PACKAGE_APACHE_MPM_WORKER help Select the Multi-Processing Module (MPM). config BR2_PACKAGE_APACHE_MPM_EVENT bool "event" help A variant of the worker MPM with the goal of consuming threads only for connections with active processing config BR2_PACKAGE_APACHE_MPM_PREFORK bool "prefork" help Implements a non-threaded, pre-forking web server config BR2_PACKAGE_APACHE_MPM_WORKER bool "worker" help Implements a hybrid multi-threaded multi-process web server endchoice endif comment "apache needs a toolchain w/ dynamic library, threads" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/apache/S50apache ================================================ #!/bin/sh case "$1" in start|restart|graceful|graceful-stop|stop) apachectl -k $1 ;; reload) apachectl -k restart ;; *) echo "Usage: $0 {start|restart|reload|graceful|graceful-stop|stop}" exit 1 esac exit $? ================================================ FILE: package/apache/apache.hash ================================================ # From https://downloads.apache.org/httpd/httpd-2.4.51.tar.bz2.{sha256,sha512} sha256 20e01d81fecf077690a4439e3969a9b22a09a8d43c525356e863407741b838f4 httpd-2.4.51.tar.bz2 sha512 9fb07c4b176f5c0485a143e2b1bb1085345ca9120b959974f68c37a8911a57894d2cb488b1b42fdf3102860b99e890204f5e9fa7ae3828b481119c563812cc66 httpd-2.4.51.tar.bz2 # Locally computed sha256 47b8c2b6c3309282a99d4a3001575c790fead690cc14734628c4667d2bbffc43 LICENSE ================================================ FILE: package/apache/apache.mk ================================================ ################################################################################ # # apache # ################################################################################ APACHE_VERSION = 2.4.51 APACHE_SOURCE = httpd-$(APACHE_VERSION).tar.bz2 APACHE_SITE = https://downloads.apache.org/httpd APACHE_LICENSE = Apache-2.0 APACHE_LICENSE_FILES = LICENSE APACHE_CPE_ID_VENDOR = apache APACHE_CPE_ID_PRODUCT = http_server APACHE_SELINUX_MODULES = apache # Needed for mod_php APACHE_INSTALL_STAGING = YES # We have a patch touching configure.in and Makefile.in, # so we need to autoreconf: APACHE_AUTORECONF = YES APACHE_DEPENDENCIES = apr apr-util pcre ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y) define APACHE_FIXUP_APR_LIBTOOL $(SED) "s@$(PER_PACKAGE_DIR)/[^/]\+/@$(PER_PACKAGE_DIR)/apache/@g" \ $(STAGING_DIR)/usr/build-1/libtool endef APACHE_POST_PREPARE_HOOKS += APACHE_FIXUP_APR_LIBTOOL endif APACHE_CONF_ENV= \ ap_cv_void_ptr_lt_long=no \ PCRE_CONFIG=$(STAGING_DIR)/usr/bin/pcre-config ifeq ($(BR2_PACKAGE_APACHE_MPM_EVENT),y) APACHE_MPM = event else ifeq ($(BR2_PACKAGE_APACHE_MPM_PREFORK),y) APACHE_MPM = prefork else ifeq ($(BR2_PACKAGE_APACHE_MPM_WORKER),y) APACHE_MPM = worker endif APACHE_CONF_OPTS = \ --sysconfdir=/etc/apache2 \ --with-apr=$(STAGING_DIR)/usr \ --with-apr-util=$(STAGING_DIR)/usr \ --with-pcre=$(STAGING_DIR)/usr/bin/pcre-config \ --enable-http \ --enable-dbd \ --enable-proxy \ --enable-mime-magic \ --without-suexec-bin \ --enable-mods-shared=all \ --with-mpm=$(APACHE_MPM) \ --disable-luajit ifeq ($(BR2_PACKAGE_LIBXML2),y) APACHE_DEPENDENCIES += libxml2 # Apache wants the path to the header file, where it can find # . APACHE_CONF_OPTS += \ --enable-xml2enc \ --enable-proxy-html \ --with-libxml2=$(STAGING_DIR)/usr/include/libxml2 else APACHE_CONF_OPTS += \ --disable-xml2enc \ --disable-proxy-html endif ifeq ($(BR2_PACKAGE_LUA),y) APACHE_CONF_OPTS += --enable-lua APACHE_DEPENDENCIES += lua else APACHE_CONF_OPTS += --disable-lua endif ifeq ($(BR2_PACKAGE_NGHTTP2),y) APACHE_CONF_OPTS += \ --enable-http2 \ --with-nghttp2=$(STAGING_DIR)/usr APACHE_DEPENDENCIES += nghttp2 else APACHE_CONF_OPTS += --disable-http2 endif ifeq ($(BR2_PACKAGE_OPENSSL),y) APACHE_DEPENDENCIES += openssl APACHE_CONF_OPTS += \ --enable-ssl \ --with-ssl=$(STAGING_DIR)/usr else APACHE_CONF_OPTS += --disable-ssl endif ifeq ($(BR2_PACKAGE_ZLIB),y) APACHE_DEPENDENCIES += zlib APACHE_CONF_OPTS += \ --enable-deflate \ --with-z=$(STAGING_DIR)/usr else APACHE_CONF_OPTS += --disable-deflate endif define APACHE_FIX_STAGING_APACHE_CONFIG $(SED) 's%"/usr/bin"%"$(STAGING_DIR)/usr/bin"%' $(STAGING_DIR)/usr/bin/apxs $(SED) 's%/usr/build%$(STAGING_DIR)/usr/build%' $(STAGING_DIR)/usr/bin/apxs $(SED) 's%^prefix =.*%prefix = $(STAGING_DIR)/usr%' $(STAGING_DIR)/usr/build/config_vars.mk endef APACHE_POST_INSTALL_STAGING_HOOKS += APACHE_FIX_STAGING_APACHE_CONFIG define APACHE_CLEANUP_TARGET $(RM) -rf $(TARGET_DIR)/usr/manual $(TARGET_DIR)/usr/build endef APACHE_POST_INSTALL_TARGET_HOOKS += APACHE_CLEANUP_TARGET define APACHE_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/apache/S50apache \ $(TARGET_DIR)/etc/init.d/S50apache endef define APACHE_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/apache/apache.service \ $(TARGET_DIR)/usr/lib/systemd/system/apache.service endef $(eval $(autotools-package)) ================================================ FILE: package/apache/apache.service ================================================ [Unit] Description=Apache HTTP Server After=network.target [Service] Type=forking ExecStart=/usr/bin/apachectl start ExecReload=/usr/bin/apachectl graceful ExecStop=/usr/bin/apachectl stop Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/apcupsd/Config.in ================================================ config BR2_PACKAGE_APCUPSD bool "apcupsd" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() help A daemon for controlling APC UPSes. http://www.apcupsd.org/ if BR2_PACKAGE_APCUPSD config BR2_PACKAGE_APCUPSD_APCSMART bool "apcsmart" help Compile APC SmartUPS serial driver config BR2_PACKAGE_APCUPSD_DUMB bool "dumb" help Compile dumb UPS driver config BR2_PACKAGE_APCUPSD_MODBUS bool "modbus" help Compile MODBUS driver code config BR2_PACKAGE_APCUPSD_MODBUS_USB bool "modbus usb" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT select BR2_PACKAGE_APCUPSD_MODBUS help Compile MODBUS/USB driver code comment "modbus usb support needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_PACKAGE_APCUPSD_NET bool "net" help Compile networking driver for slaves config BR2_PACKAGE_APCUPSD_PCNET bool "pcnet" help Compile PCNET driver code config BR2_PACKAGE_APCUPSD_SNMP bool "snmp" help Compile SNMP driver config BR2_PACKAGE_APCUPSD_USB bool "usb" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT help Compile USB UPS code comment "usb support needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 endif comment "apcupsd needs a toolchain w/ C++, threads" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/apcupsd/apcupsd.hash ================================================ # From https://sourceforge.net/projects/apcupsd/files/apcupsd%20-%20Stable/3.14.14/ md5 cc8f5ced77f38906a274787acb9bc980 apcupsd-3.14.14.tar.gz sha1 f027fa141c929371fe860443b6d911ef3a3606fb apcupsd-3.14.14.tar.gz # Locally computed: sha256 db7748559b6b4c3784f9856561ef6ac6199ef7bd019b3edcd7e0a647bf8f9867 apcupsd-3.14.14.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/apcupsd/apcupsd.mk ================================================ ################################################################################ # # apcupsd # ################################################################################ APCUPSD_VERSION = 3.14.14 APCUPSD_SITE = http://downloads.sourceforge.net/project/apcupsd/apcupsd%20-%20Stable/$(APCUPSD_VERSION) APCUPSD_LICENSE = GPL-2.0 APCUPSD_LICENSE_FILES = COPYING APCUPSD_CPE_ID_VENDOR = apcupsd APCUPSD_SELINUX_MODULES = apache apcupsd APCUPSD_CONF_OPTS = --disable-test ifneq ($(BR2_PACKAGE_APCUPSD_MODBUS_USB)$(BR2_PACKAGE_APCUPSD_USB),) APCUPSD_CONF_ENV += ac_cv_path_usbcfg=$(STAGING_DIR)/usr/bin/libusb-config ifeq ($(BR2_STATIC_LIBS),y) APCUPSD_DEPENDENCIES += host-pkgconf APCUPSD_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libusb`" endif endif ifeq ($(BR2_PACKAGE_APCUPSD_APCSMART),y) APCUPSD_CONF_OPTS += --enable-apcsmart else APCUPSD_CONF_OPTS += --disable-apcsmart endif ifeq ($(BR2_PACKAGE_APCUPSD_DUMB),y) APCUPSD_CONF_OPTS += --enable-dumb else APCUPSD_CONF_OPTS += --disable-dumb endif ifeq ($(BR2_PACKAGE_APCUPSD_MODBUS_USB),y) APCUPSD_CONF_OPTS += --enable-modbus-usb APCUPSD_DEPENDENCIES += libusb libusb-compat else APCUPSD_CONF_OPTS += --disable-modbus-usb endif ifeq ($(BR2_PACKAGE_APCUPSD_MODBUS),y) APCUPSD_CONF_OPTS += --enable-modbus else APCUPSD_CONF_OPTS += --disable-modbus endif ifeq ($(BR2_PACKAGE_APCUPSD_NET),y) APCUPSD_CONF_OPTS += --enable-net else APCUPSD_CONF_OPTS += --disable-net endif ifeq ($(BR2_PACKAGE_APCUPSD_PCNET),y) APCUPSD_CONF_OPTS += --enable-pcnet else APCUPSD_CONF_OPTS += --disable-pcnet endif ifeq ($(BR2_PACKAGE_APCUPSD_SNMP),y) APCUPSD_CONF_OPTS += --enable-snmp else APCUPSD_CONF_OPTS += --disable-snmp endif ifeq ($(BR2_PACKAGE_APCUPSD_USB),y) APCUPSD_CONF_OPTS += --enable-usb APCUPSD_DEPENDENCIES += libusb libusb-compat else APCUPSD_CONF_OPTS += --disable-usb endif define APCUPSD_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/platforms endef define APCUPSD_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src DESTDIR=$(TARGET_DIR) install $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/platforms DESTDIR=$(TARGET_DIR) install endef $(eval $(autotools-package)) ================================================ FILE: package/apg/Config.in ================================================ config BR2_PACKAGE_APG bool "apg" help Automated Password Generator (APG). https://github.com/wilx/apg ================================================ FILE: package/apg/apg.hash ================================================ # Locally computed sha256 89539aa734a47d68124fca5ba7acbe559edc5003b6791f5200ef9e706dd00fe9 apg-2.3.0b.tar.gz sha256 5d0c892ea452c3828f1e311637cde4e3a04eb6431554308b3fcdac8c1b330168 COPYING ================================================ FILE: package/apg/apg.mk ================================================ ################################################################################ # # apg # ################################################################################ APG_VERSION = 2.3.0b APG_SITE = $(call github,wilx,apg,v$(APG_VERSION)) APG_LICENSE = BSD-3-Clause APG_LICENSE_FILES = COPYING define APG_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(APG_CFLAGS)" \ -C $(@D) endef define APG_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/apg $(TARGET_DIR)/usr/bin/apg endef $(eval $(generic-package)) ================================================ FILE: package/apitrace/0001-thirdparty-libbacktrace-backtrace-h-include-config.h.patch ================================================ From 36ff87a927092b4d62c587736d7684dea9c82e63 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 19 Jul 2021 08:27:48 +0200 Subject: [PATCH] thirdparty/libbacktrace/backtrace/h: include config.h Build on musl is broken since version 10.0 because the include on config.h was removed by https://github.com/apitrace/apitrace/commit/1544abf59d68d74977b8b692bea4d7468d65547b: In file included from /home/buildroot/autobuild/instance-3/output-1/build/apitrace-10.0/thirdparty/libbacktrace/testlib.c:40: /home/buildroot/autobuild/instance-3/output-1/build/apitrace-10.0/thirdparty/libbacktrace/backtrace.h:53:10: fatal error: gstdint.h: No such file or directory 53 | #include "gstdint.h" | ^~~~~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/a10793d01efa3a1533ba37aa845b9ac2bb1dfb6b Signed-off-by: Fabrice Fontaine [Upstream status: not needed (https://github.com/apitrace/apitrace/issues/755)] --- thirdparty/libbacktrace/backtrace.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/thirdparty/libbacktrace/backtrace.h b/thirdparty/libbacktrace/backtrace.h index 2814763f..ab7679a0 100644 --- a/thirdparty/libbacktrace/backtrace.h +++ b/thirdparty/libbacktrace/backtrace.h @@ -33,6 +33,8 @@ POSSIBILITY OF SUCH DAMAGE. */ #ifndef BACKTRACE_H #define BACKTRACE_H +#include "config.h" + #include #include -- 2.30.2 ================================================ FILE: package/apitrace/0002-gltrace-Avoid-__libc_dlsym-and-__libc_dlopen_mode-on-GLIBC-2-34.patch ================================================ From d28a980802ad48568c87da02d630c8babfe163bb Mon Sep 17 00:00:00 2001 From: Jose Fonseca Date: Wed, 1 Sep 2021 16:34:54 +0100 Subject: [PATCH] gltrace: Avoid __libc_dlsym and __libc_dlopen_mode on GLIBC 2.34. These GLIBC_PRIVATE symbols are gone from GLIBC 2.34 due to the merge of libdl.so onto libc.so. This means apitrace can't defend against infinite recursion when used with Steam Overlay, but at least it should work otherwise. Fixes https://github.com/apitrace/apitrace/issues/756 [Retrieved from: https://github.com/apitrace/apitrace/commit/d28a980802ad48568c87da02d630c8babfe163bb] Signed-off-by: Fabrice Fontaine --- wrappers/dlsym.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wrappers/dlsym.cpp b/wrappers/dlsym.cpp index 5ab8465b0..5369af35a 100644 --- a/wrappers/dlsym.cpp +++ b/wrappers/dlsym.cpp @@ -34,7 +34,7 @@ #include "os.hpp" -#if defined(__GLIBC__) && !defined(__UCLIBC__) +#if defined(__GLIBC__) && !defined(__UCLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ < 34 #include ================================================ FILE: package/apitrace/Config.in ================================================ comment "apitrace needs a toolchain w/ C++, wchar, dynamic library, threads, gcc >= 7" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 config BR2_PACKAGE_APITRACE bool "apitrace" depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 select BR2_PACKAGE_LIBPNG help Trace and replay OpenGL and OpenGL ES APIs calls to/from a file. You may install apitrace GUI from your distribution to inspect generated traces. http://apitrace.github.io/ ================================================ FILE: package/apitrace/apitrace.hash ================================================ # Locally calculated sha256 2e57d37af39369d7ce78666acb8afb1a49ec758f683a21077ec39eb0befae4ad apitrace-10.0.tar.gz sha256 7066bb1b787519c42f8278b77757c21de522cd97755cb30a22759ac401c62260 LICENSE ================================================ FILE: package/apitrace/apitrace.mk ================================================ ################################################################################ # # apitrace # ################################################################################ APITRACE_VERSION = 10.0 APITRACE_SITE = $(call github,apitrace,apitrace,$(APITRACE_VERSION)) APITRACE_LICENSE = MIT APITRACE_LICENSE_FILES = LICENSE APITRACE_DEPENDENCIES = host-python3 libpng ifeq ($(BR2_PACKAGE_XORG7),y) APITRACE_DEPENDENCIES += xlib_libX11 APITRACE_CONF_OPTS += -DENABLE_X11=ON else APITRACE_CONF_OPTS += -DENABLE_X11=OFF endif # Gui was never tested, so we prefer to explicitly disable it APITRACE_CONF_OPTS += -DENABLE_GUI=false APITRACE_CFLAGS = $(TARGET_CFLAGS) APITRACE_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) # This works around embedded Brotli build failure APITRACE_CFLAGS += -O0 # CMakeLists.txt sets CMAKE_CXX_FLAGS_ depending on # BUILD_TYPE, and this comes after the generic CMAKE_CXX_FLAGS. # Override CMAKE_BUILD_TYPE so no overrides are applied. APITRACE_CONF_OPTS += -DCMAKE_BUILD_TYPE=Buildroot endif ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) # This works around Apitrace itself build failure APITRACE_CXXFLAGS += -O0 endif APITRACE_CONF_OPTS += \ -DCMAKE_C_FLAGS="$(APITRACE_CFLAGS)" \ -DCMAKE_CXX_FLAGS="$(APITRACE_CXXFLAGS)" $(eval $(cmake-package)) ================================================ FILE: package/apparmor/Config.in ================================================ config BR2_PACKAGE_APPARMOR bool "apparmor" depends on BR2_USE_MMU # fork() depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libapparmor depends on BR2_TOOLCHAIN_HAS_THREADS # libapparmor depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 # libapparmor select BR2_PACKAGE_LIBAPPARMOR help AppArmor is an effective and easy-to-use Linux application security system. AppArmor proactively protects the operating system and applications from external or internal threats, even zero-day attacks, by enforcing good behavior and preventing even unknown application flaws from being exploited. This package builds the parser (which can load profiles). http://wiki.apparmor.net if BR2_PACKAGE_APPARMOR config BR2_PACKAGE_APPARMOR_BINUTILS bool "binutils" help A set of utilities (written in C): aa-enabled aa-exec comment "utils need python3" depends on !BR2_PACKAGE_PYTHON3 config BR2_PACKAGE_APPARMOR_UTILS bool "utils" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # net-tools select BR2_PACKAGE_NET_TOOLS # runtime (aa-unconfined) select BR2_PACKAGE_PYTHON3_READLINE help A set of utilities (written in python): aa-audit aa-disable aa-logprof aa-autodep aa-easyprof aa-mergeprof aa-cleanprof aa-enforce aa-status aa-complain aa-genprof aa-unconfined if BR2_PACKAGE_APPARMOR_UTILS comment "utils (extras) need bash and perl, and busybox or gawk" depends on !BR2_PACKAGE_BASH || !BR2_PACKAGE_PERL \ || !(BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_GAWK) config BR2_PACKAGE_APPARMOR_UTILS_EXTRA bool "utils (extras)" depends on BR2_PACKAGE_BASH depends on BR2_PACKAGE_PERL depends on BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_GAWK help An extra set of utilities (written in a mixture of sh, bash, perl, and awk): aa-decode (bash + perl) aa-notify (perl) aa-remove-unknown (sh + awk) endif # BR2_PACKAGE_APPARMOR_UTILS config BR2_PACKAGE_APPARMOR_PROFILES bool "profiles" help Installs server-class profiles for a wide range of usual programs and daemons. endif # BR2_PACKAGE_APPARMOR comment "apparmor needs a toolchain w/ headers >= 3.16, threads, C++" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 ================================================ FILE: package/apparmor/apparmor.hash ================================================ # From: https://gitlab.com/apparmor/apparmor/-/wikis/home#userspace sha256 153db05d8f491e0596022663c19fb1166806cb473b3c6f0a7279feda2ec25a59 apparmor-3.0.3.tar.gz # locally computed sha256 a7e0cdcbea5c14927cedfc600d46526bdcbb1eb0a4d951e2ea53c2a6de159cb4 LICENSE sha256 dd54950fa69a3096fe907a466a454d217ccca9bca77398d5232704766d5a0040 parser/COPYING.GPL ================================================ FILE: package/apparmor/apparmor.mk ================================================ ################################################################################ # # apparmor # ################################################################################ # When updating the version here, please also update the libapparmor package APPARMOR_VERSION_MAJOR = 3.0 APPARMOR_VERSION = $(APPARMOR_VERSION_MAJOR).3 APPARMOR_SITE = https://launchpad.net/apparmor/$(APPARMOR_VERSION_MAJOR)/$(APPARMOR_VERSION)/+download APPARMOR_DL_SUBDIR = libapparmor APPARMOR_LICENSE = GPL-2.0 APPARMOR_LICENSE_FILES = LICENSE parser/COPYING.GPL APPARMOR_CPE_ID_VENDOR = canonical APPARMOR_DEPENDENCIES = libapparmor APPARMOR_TOOLS = parser APPARMOR_MAKE_OPTS = USE_SYSTEM=1 DISTRO=unknown POD2MAN=true POD2HTML=true ifeq ($(BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL),y) APPARMOR_DEPENDENCIES += gettext APPARMOR_MAKE_OPTS += WITH_LIBINTL=1 endif ifeq ($(BR2_PACKAGE_APPARMOR_BINUTILS),y) APPARMOR_TOOLS += binutils endif ifeq ($(BR2_PACKAGE_APPARMOR_UTILS),y) APPARMOR_DEPENDENCIES += host-python3 python3 APPARMOR_TOOLS += utils APPARMOR_MAKE_OPTS += PYTHON=$(HOST_DIR)/bin/python3 ifeq ($(BR2_PACKAGE_APPARMOR_UTILS_EXTRA),) define APPARMOR_UTILS_NO_EXTRA $(Q)rm -f $(addprefix $(TARGET_DIR)/usr/sbin/,aa-decode aa-notify aa-remove-unknown) endef APPARMOR_POST_INSTALL_TARGET_HOOKS += APPARMOR_UTILS_NO_EXTRA endif # BR2_PACKAGE_APPARMOR_UTILS_EXTRA endif # BR2_PACKAGE_APPARMOR_UTILS ifeq ($(BR2_PACKAGE_APPARMOR_PROFILES),y) APPARMOR_TOOLS += profiles endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) APPARMOR_DEPENDENCIES += linux-pam APPARMOR_TOOLS += changehat/pam_apparmor endif ifeq ($(BR2_PACKAGE_APACHE),y) APPARMOR_DEPENDENCIES += apache APPARMOR_TOOLS += changehat/mod_apparmor APPARMOR_MAKE_OPTS += APXS=$(STAGING_DIR)/usr/bin/apxs ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y) define APPARMOR_FIXUP_APXS $(SED) "s@$(PER_PACKAGE_DIR)/[^/]\+/@$(PER_PACKAGE_DIR)/apparmor/@g" \ $(STAGING_DIR)/usr/bin/apxs \ $(STAGING_DIR)/usr/build/config_vars.mk \ $(STAGING_DIR)/usr/build-1/libtool endef APPARMOR_POST_CONFIGURE_HOOKS += APPARMOR_FIXUP_APXS endif endif define APPARMOR_BUILD_CMDS $(foreach tool,$(APPARMOR_TOOLS),\ $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \ $(MAKE) -C $(@D)/$(tool) $(APPARMOR_MAKE_OPTS) ) endef define APPARMOR_INSTALL_TARGET_CMDS $(foreach tool,$(APPARMOR_TOOLS),\ $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \ $(MAKE) -C $(@D)/$(tool) $(APPARMOR_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) install ) endef # Despite its name, apparmor.systemd is a sysv-init compatible startup script define APPARMOR_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 $(@D)/parser/apparmor.systemd \ $(TARGET_DIR)/etc/init.d/S00apparmor endef define APPARMOR_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0755 $(@D)/parser/apparmor.systemd \ $(TARGET_DIR)/lib/apparmor/apparmor.systemd $(INSTALL) -D -m 0644 $(@D)/parser/apparmor.service \ $(TARGET_DIR)/usr/lib/systemd/system/apparmor.service endef $(eval $(generic-package)) ================================================ FILE: package/apr/0001-cross-compile.patch ================================================ Fix cross-compilation Patch was backported from Apache httpd: http://svn.apache.org/viewvc?view=revision&revision=1327907 http://svn.apache.org/viewvc?view=revision&revision=1328390 http://svn.apache.org/viewvc?view=revision&revision=1328714 Patch submitted upstream: https://issues.apache.org/bugzilla/show_bug.cgi?id=57058 Signed-off-by: Bernd Kuhls diff -uNr apr-1.5.1.org/configure.in apr-1.5.1/configure.in --- apr-1.5.1.org/configure.in 2014-01-25 16:17:29.000000000 +0100 +++ apr-1.5.1/configure.in 2014-10-05 11:20:40.080746760 +0200 @@ -118,6 +118,16 @@ echo "Configuring APR library" echo "Platform: $host" +dnl In case of cross compilation we set CC_FOR_BUILD to cc unless +dnl we got already CC_FOR_BUILD from environment. +if test "x${build_alias}" != "x${host_alias}"; then + if test "x${CC_FOR_BUILD}" = "x"; then + CC_FOR_BUILD=cc + fi +fi +AC_SUBST(CC_FOR_BUILD) +AC_SUBST(CFLAGS_FOR_BUILD) + dnl Some initial steps for configuration. We setup the default directory dnl and which files are to be configured. diff -uNr apr-1.5.1.org/Makefile.in apr-1.5.1/Makefile.in --- apr-1.5.1.org/Makefile.in 2014-03-17 16:10:26.000000000 +0100 +++ apr-1.5.1/Makefile.in 2014-10-05 11:22:53.031070519 +0200 @@ -8,6 +8,8 @@ # APR (Apache Portable Runtime) library Makefile. # CPP = @CPP@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ # get substituted into some targets APR_MAJOR_VERSION=@APR_MAJOR_VERSION@ @@ -134,8 +134,13 @@ $(APR_MKDIR) tools $(LT_COMPILE) +ifdef CC_FOR_BUILD +tools/gen_test_char@EXEEXT@: tools/gen_test_char.c $(LOCAL_LIBS) + $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE -o $@ $< +else tools/gen_test_char@EXEEXT@: $(OBJECTS_gen_test_char) $(LINK_PROG) $(OBJECTS_gen_test_char) $(ALL_LIBS) +endif include/private/apr_escape_test_char.h: tools/gen_test_char@EXEEXT@ $(APR_MKDIR) include/private ================================================ FILE: package/apr/0002-sys-param-h.patch ================================================ Fix PATH_MAX detection by including sys/param.h if available Patch sent upstream: https://bz.apache.org/bugzilla/show_bug.cgi?id=63782 Signed-off-by: Bernd Kuhls diff -uNr apr-1.7.0.orig/configure.in apr-1.7.0/configure.in --- apr-1.7.0.orig/configure.in 2019-04-01 19:40:46.000000000 +0200 +++ apr-1.7.0/configure.in 2019-09-29 17:03:41.803326791 +0200 @@ -1586,6 +1586,7 @@ AC_SUBST(stringh) AC_SUBST(stringsh) AC_SUBST(sys_ioctlh) +AC_SUBST(sys_paramh) AC_SUBST(sys_sendfileh) AC_SUBST(sys_signalh) AC_SUBST(sys_socketh) diff -uNr apr-1.7.0.orig/include/apr.h.in apr-1.7.0/include/apr.h.in --- apr-1.7.0.orig/include/apr.h.in 2019-03-22 14:30:31.000000000 +0100 +++ apr-1.7.0/include/apr.h.in 2019-09-29 17:04:54.203815469 +0200 @@ -95,6 +95,7 @@ #define APR_HAVE_STRINGS_H @stringsh@ #define APR_HAVE_INTTYPES_H @inttypesh@ #define APR_HAVE_SYS_IOCTL_H @sys_ioctlh@ +#define APR_HAVE_SYS_PARAM_H @sys_paramh@ #define APR_HAVE_SYS_SENDFILE_H @sys_sendfileh@ #define APR_HAVE_SYS_SIGNAL_H @sys_signalh@ #define APR_HAVE_SYS_SOCKET_H @sys_socketh@ @@ -206,6 +207,9 @@ #include #endif #endif +#if APR_HAVE_SYS_PARAM_H +#include +#endif /* __APPLE__ is now the official pre-defined macro for macOS */ #ifdef __APPLE__ ================================================ FILE: package/apr/0003-Merge-r1887279-from-trunk.patch ================================================ From a15958a37a06f71c42c690278f9c958b93b7ee20 Mon Sep 17 00:00:00 2001 From: Yann Ylavic Date: Thu, 11 Mar 2021 14:10:21 +0000 Subject: [PATCH] Merge r1887279 from trunk: build/apr_common.m4: avoid explicit inclusion of "confdefs.h" The failure is observed on `autoconf-2.69d` (soon to be released as `autoconf-2.70`). There `int64_t` detection fails as: $ autoreconf && ./configure checking whether int64_t and int use fmt %d... no checking whether int64_t and long use fmt %ld... no checking whether int64_t and long long use fmt %lld... no configure: error: could not determine the string function for int64_t ``` This happens because `./configure` always stumbles on warning: configure:3350: gcc -c -g -O2 -Werror conftest.c >&5 In file included from conftest.c:31: confdefs.h:22: error: "__STDC_WANT_IEC_60559_ATTRIBS_EXT__" redefined [-Werror] 22 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | It's triggered by double inclusion of `"confdefs.h"` contents: explicitly in `APR_TRY_COMPILE_NO_WARNING` macro and implicitly via `AC_LANG_SOURCE` use. To fix it and avoid having to define `main()` declaration the change uses `AC_LANG_PROGRAM` instead. Tested on both `autoconf-2.69` and `autoconf-2.69d`. Github: closes #25 Submitted by: Sergei Trofimovich Reviewed by: ylavic git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.7.x@1887485 13f79535-47bb-0310-9956-ffa450edef68 [Retrieved from: https://github.com/apache/apr/commit/0a763c5e500f4304b7c534fae0fad430d64982e8] Signed-off-by: Fabrice Fontaine --- build/apr_common.m4 | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/build/apr_common.m4 b/build/apr_common.m4 index 297dd32cf75..b67a8608abe 100644 --- a/build/apr_common.m4 +++ b/build/apr_common.m4 @@ -467,13 +467,9 @@ AC_DEFUN([APR_TRY_COMPILE_NO_WARNING], CFLAGS="$CFLAGS -Werror" fi AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [#include "confdefs.h" - ] - [[$1]] - [int main(int argc, const char *const *argv) {] + [AC_LANG_PROGRAM( + [[$1]], [[$2]] - [ return 0; }] )], [CFLAGS=$apr_save_CFLAGS $3], [CFLAGS=$apr_save_CFLAGS $4]) ================================================ FILE: package/apr/Config.in ================================================ config BR2_PACKAGE_APR bool "apr" # apr really needs shared library support depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # fork() in apr_proc_fork() help The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementations http://apr.apache.org/ comment "apr needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/apr/apr.hash ================================================ # From http://archive.apache.org/dist/apr/apr-1.7.0.tar.bz2.sha256 sha256 e2e148f0b2e99b8e5c6caa09f6d4fb4dd3e83f744aa72a952f94f5a14436f7ea apr-1.7.0.tar.bz2 # Locally calculated sha256 f854aeef66ecd55a126226e82b3f26793fc3b1c584647f6a0edc5639974c38ad LICENSE ================================================ FILE: package/apr/apr.mk ================================================ ################################################################################ # # apr # ################################################################################ APR_VERSION = 1.7.0 APR_SOURCE = apr-$(APR_VERSION).tar.bz2 APR_SITE = http://archive.apache.org/dist/apr APR_LICENSE = Apache-2.0 APR_LICENSE_FILES = LICENSE APR_CPE_ID_VENDOR = apache APR_CPE_ID_PRODUCT = portable_runtime APR_INSTALL_STAGING = YES # We have a patch touching configure.in and Makefile.in, # so we need to autoreconf: APR_AUTORECONF = YES # avoid apr_hints.m4 by setting apr_preload_done=yes and set # the needed CFLAGS on our own (avoids '-D_REENTRANT' in case # not supported by toolchain and subsequent configure failure) APR_CFLAGS = $(TARGET_CFLAGS) -DLINUX -D_GNU_SOURCE ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) APR_CFLAGS += -D_REENTRANT endif APR_CONF_ENV = \ CC_FOR_BUILD="$(HOSTCC)" \ CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ CFLAGS="$(APR_CFLAGS)" \ ac_cv_file__dev_zero=yes \ ac_cv_func_setpgrp_void=yes \ apr_cv_process_shared_works=yes \ apr_cv_mutex_robust_shared=no \ apr_cv_tcp_nodelay_with_cork=yes \ ac_cv_sizeof_struct_iovec=8 \ ac_cv_sizeof_pid_t=4 \ ac_cv_struct_rlimit=yes \ ac_cv_o_nonblock_inherited=no \ apr_cv_mutex_recursive=yes \ apr_cv_epoll=yes \ apr_cv_epoll_create1=yes \ apr_cv_dup3=yes \ apr_cv_sock_cloexec=yes \ apr_cv_accept4=yes \ apr_preload_done=yes APR_CONFIG_SCRIPTS = apr-1-config # Doesn't even try to guess when cross compiling ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) APR_CONF_ENV += apr_cv_pthreads_lib="-lpthread" endif # Fix lfs detection when cross compiling APR_CONF_ENV += apr_cv_use_lfs64=yes # Use non-portable atomics when available. We have to override # ap_cv_atomic_builtins because the test used to check for atomic # builtins uses AC_TRY_RUN, which doesn't work when cross-compiling. ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_8),y) APR_CONF_OPTS += --enable-nonportable-atomics APR_CONF_ENV += ap_cv_atomic_builtins=yes else APR_CONF_OPTS += --disable-nonportable-atomics endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y) APR_DEPENDENCIES += util-linux endif define APR_CLEANUP_UNNEEDED_FILES $(RM) -rf $(TARGET_DIR)/usr/build-1/ endef APR_POST_INSTALL_TARGET_HOOKS += APR_CLEANUP_UNNEEDED_FILES define APR_FIXUP_RULES_MK $(SED) 's%apr_builddir=%apr_builddir=$(STAGING_DIR)%' \ $(STAGING_DIR)/usr/build-1/apr_rules.mk $(SED) 's%apr_builders=%apr_builders=$(STAGING_DIR)%' \ $(STAGING_DIR)/usr/build-1/apr_rules.mk $(SED) 's%top_builddir=%top_builddir=$(STAGING_DIR)%' \ $(STAGING_DIR)/usr/build-1/apr_rules.mk endef APR_POST_INSTALL_STAGING_HOOKS += APR_FIXUP_RULES_MK $(eval $(autotools-package)) ================================================ FILE: package/apr-util/0001-remove-checkapr.patch ================================================ remove check apr this patch removes the check of apr which fails the build Signed-off-by: Rico Bachmann --- v1: disable the check for APU_FIND_APR because the check only looks into folders named apr, and our source-tree is called apr-versionnumber (e.g. apr-1.4.6) diff -rupN apr-util-1.4.1/configure.in apr-util-1.4.1-fix/configure.in --- apr-util-1.4.1/configure.in 2009-12-17 20:15:19.000000000 +0100 +++ apr-util-1.4.1-fix/configure.in 2012-04-24 10:10:32.000000000 +0200 @@ -99,7 +99,7 @@ fi dnl dnl Find the APR includes directory and (possibly) the source (base) dir. dnl -APU_FIND_APR +dnl APU_FIND_APR dnl dnl even though we use apr_rules.mk for building apr-util, we need ================================================ FILE: package/apr-util/Config.in ================================================ config BR2_PACKAGE_APR_UTIL bool "apr-util" # apr really needs shared library support depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # apr select BR2_PACKAGE_APR select BR2_PACKAGE_EXPAT help The utility library for the apache runtime project http://apr.apache.org/ comment "apr-util needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/apr-util/apr-util.hash ================================================ # From http://www.apache.org/dist/apr/apr-util-1.6.1.tar.bz2.sha256 sha256 d3e12f7b6ad12687572a3a39475545a072608f4ba03a6ce8a3778f607dd0035b apr-util-1.6.1.tar.bz2 # Locally calculated sha256 ef5609d18601645ad6fe22c6c122094be40e976725c1d0490778abacc836e7a2 LICENSE ================================================ FILE: package/apr-util/apr-util.mk ================================================ ################################################################################ # # apr-util # ################################################################################ APR_UTIL_VERSION = 1.6.1 APR_UTIL_SOURCE = apr-util-$(APR_UTIL_VERSION).tar.bz2 APR_UTIL_SITE = http://archive.apache.org/dist/apr APR_UTIL_LICENSE = Apache-2.0 APR_UTIL_LICENSE_FILES = LICENSE APR_UTIL_CPE_ID_VENDOR = apache APR_UTIL_CPE_ID_PRODUCT = portable_runtime_utility APR_UTIL_INSTALL_STAGING = YES APR_UTIL_DEPENDENCIES = apr expat APR_UTIL_CONF_OPTS = \ --with-apr=$(STAGING_DIR)/usr/bin/apr-1-config APR_UTIL_CONFIG_SCRIPTS = apu-1-config ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y) define APR_UTIL_FIX_LIBTOOL $(SED) 's,$(PER_PACKAGE_DIR)/apr/,$(PER_PACKAGE_DIR)/apr-util/,g' \ $(STAGING_DIR)/usr/build-1/libtool endef APR_UTIL_POST_PREPARE_HOOKS += APR_UTIL_FIX_LIBTOOL define APR_UTIL_FIX_RULES_MK $(SED) 's,$(PER_PACKAGE_DIR)/apr/,$(PER_PACKAGE_DIR)/apr-util/,g' \ $(@D)/build/rules.mk endef APR_UTIL_POST_CONFIGURE_HOOKS += APR_UTIL_FIX_RULES_MK endif # When iconv is available, then use it to provide charset conversion # features. APR_UTIL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv) ifeq ($(BR2_PACKAGE_BERKELEYDB),y) APR_UTIL_CONF_OPTS += --with-dbm=db53 --with-berkeley-db="$(STAGING_DIR)/usr" APR_UTIL_DEPENDENCIES += berkeleydb else APR_UTIL_CONF_OPTS += --without-berkeley-db endif ifeq ($(BR2_PACKAGE_GDBM),y) APR_UTIL_CONF_OPTS += --with-gdbm="$(STAGING_DIR)/usr" APR_UTIL_DEPENDENCIES += gdbm else APR_UTIL_CONF_OPTS += --without-gdbm endif ifeq ($(BR2_PACKAGE_MYSQL),y) APR_UTIL_CONF_OPTS += --with-mysql="$(STAGING_DIR)/usr" APR_UTIL_DEPENDENCIES += mysql else APR_UTIL_CONF_OPTS += --without-mysql endif ifeq ($(BR2_PACKAGE_SQLITE),y) APR_UTIL_CONF_OPTS += --with-sqlite3="$(STAGING_DIR)/usr" APR_UTIL_DEPENDENCIES += sqlite else APR_UTIL_CONF_OPTS += --without-sqlite3 endif ifeq ($(BR2_PACKAGE_OPENLDAP),y) APR_UTIL_CONF_ENV += ac_cv_ldap_set_rebind_proc_style=three APR_UTIL_CONF_OPTS += \ --with-ldap \ --with-ldap-include="$(STAGING_DIR)/usr/include/" \ --with-ldap-lib="$(STAGING_DIR)/usr/lib" APR_UTIL_DEPENDENCIES += openldap else APR_UTIL_CONF_OPTS += --without-ldap endif ifeq ($(BR2_PACKAGE_OPENSSL),y) APR_UTIL_CONF_OPTS += --with-crypto --with-openssl="$(STAGING_DIR)/usr" APR_UTIL_DEPENDENCIES += openssl else APR_UTIL_CONF_OPTS += --without-crypto endif ifeq ($(BR2_PACKAGE_POSTGRESQL),y) APR_UTIL_CONF_OPTS += --with-pgsql="$(STAGING_DIR)/usr" APR_UTIL_DEPENDENCIES += postgresql else APR_UTIL_CONF_OPTS += --without-pgsql endif ifeq ($(BR2_PACKAGE_UNIXODBC),y) APR_UTIL_CONF_OPTS += --with-odbc="$(STAGING_DIR)/usr" # avoid using target binary $(STAGING_DIR)/usr/bin/odbc_config APR_UTIL_CONF_ENV += ac_cv_path_ODBC_CONFIG="" APR_UTIL_DEPENDENCIES += unixodbc else APR_UTIL_CONF_OPTS += --without-odbc endif $(eval $(autotools-package)) ================================================ FILE: package/argp-standalone/0001-throw-in-funcdef.patch ================================================ # --- T2-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # T2 SDE: package/.../rng-tools/throw-in-funcdef.patch.argp-standalone # Copyright (C) 2006 The T2 SDE Project # # More information can be found in the files COPYING and README. # # This patch file is dual-licensed. It is available under the license the # patched project is licensed under, as long as it is an OpenSource license # as defined at http://www.opensource.org/ (e.g. BSD, X11) or 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. # --- T2-COPYRIGHT-NOTE-END --- No __THROW in function implementation. --jsaw --- argp-standalone-1.4-test2/argp.h.orig 2006-01-06 02:29:59.000000000 +0100 +++ argp-standalone-1.4-test2/argp.h 2006-01-06 02:41:10.000000000 +0100 @@ -560,17 +560,17 @@ # endif # ifndef ARGP_EI -# define ARGP_EI extern __inline__ +# define ARGP_EI extern inline # endif ARGP_EI void -__argp_usage (__const struct argp_state *__state) __THROW +__argp_usage (__const struct argp_state *__state) { __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE); } ARGP_EI int -__option_is_short (__const struct argp_option *__opt) __THROW +__option_is_short (__const struct argp_option *__opt) { if (__opt->flags & OPTION_DOC) return 0; @@ -582,7 +582,7 @@ } ARGP_EI int -__option_is_end (__const struct argp_option *__opt) __THROW +__option_is_end (__const struct argp_option *__opt) { return !__opt->key && !__opt->name && !__opt->doc && !__opt->group; } --- argp-standalone-1.4-test2/argp-parse.c.orig 2006-01-06 02:47:48.000000000 +0100 +++ argp-standalone-1.4-test2/argp-parse.c 2006-01-06 02:48:16.000000000 +0100 @@ -1290,13 +1290,13 @@ /* Defined here, in case a user is not inlining the definitions in * argp.h */ void -__argp_usage (__const struct argp_state *__state) __THROW +__argp_usage (__const struct argp_state *__state) { __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE); } int -__option_is_short (__const struct argp_option *__opt) __THROW +__option_is_short (__const struct argp_option *__opt) { if (__opt->flags & OPTION_DOC) return 0; @@ -1310,7 +1310,7 @@ } int -__option_is_end (__const struct argp_option *__opt) __THROW +__option_is_end (__const struct argp_option *__opt) { return !__opt->key && !__opt->name && !__opt->doc && !__opt->group; } ================================================ FILE: package/argp-standalone/0002-isprint.patch ================================================ Subject: restrict value range passed to isprint function According to C standards isprint argument shall be representable as an unsigned char or be equal to EOF, otherwise the behaviour is undefined. Passing arbitrary ints leads to segfault in nm program from elfutils. Restrict isprint argument range to values representable by unsigned char. Signed-off-by: Max Filippov --- Index: b/argp.h =================================================================== --- a/argp.h +++ b/argp.h @@ -23,6 +23,7 @@ #include #include +#include #define __need_error_t #include @@ -577,7 +578,7 @@ else { int __key = __opt->key; - return __key > 0 && isprint (__key); + return __key > 0 && __key <= UCHAR_MAX && isprint (__key); } } Index: b/argp-parse.c =================================================================== --- a/argp-parse.c +++ b/argp-parse.c @@ -1292,7 +1292,7 @@ int __key = __opt->key; /* FIXME: whether or not a particular key implies a short option * ought not to be locale dependent. */ - return __key > 0 && isprint (__key); + return __key > 0 && __key <= UCHAR_MAX && isprint (__key); } } ================================================ FILE: package/argp-standalone/0003-fix_build_with_c99_compilers.patch ================================================ From b2dfa011a3fdcb7d22764d143517d0fbd1c2a201 Mon Sep 17 00:00:00 2001 From: Emmanuel Dreyfus Date: Wed, 22 Jan 2014 14:47:23 +0100 Subject: [PATCH] Fix build with c99 compilers BUG: 764655 Change-Id: If5dfdc9c7427bd3d39d8da8f79e33ae2da6a3137 Signed-off-by: Emmanuel Dreyfus Reviewed-on: http://review.gluster.org/6034 Reviewed-by: Harshavardhana Tested-by: Gluster Build System --- diff --git a/argp-fmtstream.c b/argp-fmtstream.c index 7f79285..494b6b3 100644 --- a/argp-fmtstream.c +++ b/argp-fmtstream.c @@ -389,6 +389,7 @@ weak_alias (__argp_fmtstream_printf, argp_fmtstream_printf) #endif +#if __STDC_VERSION__ - 199900L < 1 /* Duplicate the inline definitions in argp-fmtstream.h, for compilers * that don't do inlining. */ size_t @@ -471,5 +472,6 @@ __argp_fmtstream_update (__fs); return __fs->point_col >= 0 ? __fs->point_col : 0; } +#endif /* __STDC_VERSION__ - 199900L < 1 */ #endif /* !ARGP_FMTSTREAM_USE_LINEWRAP */ diff --git a/argp-fmtstream.h b/argp-fmtstream.h index e797b11..828f435 100644 --- a/argp-fmtstream.h +++ b/argp-fmtstream.h @@ -153,6 +153,7 @@ __const char *__fmt, ...) PRINTF_STYLE(2,3); +#if __STDC_VERSION__ - 199900L < 1 extern int __argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch); extern int argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch); @@ -163,6 +164,7 @@ __const char *__str, size_t __len); extern size_t argp_fmtstream_write (argp_fmtstream_t __fs, __const char *__str, size_t __len); +#endif /* __STDC_VERSION__ - 199900L < 1 */ /* Access macros for various bits of state. */ #define argp_fmtstream_lmargin(__fs) ((__fs)->lmargin) @@ -172,6 +174,7 @@ #define __argp_fmtstream_rmargin argp_fmtstream_rmargin #define __argp_fmtstream_wmargin argp_fmtstream_wmargin +#if __STDC_VERSION__ - 199900L < 1 /* Set __FS's left margin to LMARGIN and return the old value. */ extern size_t argp_fmtstream_set_lmargin (argp_fmtstream_t __fs, size_t __lmargin); @@ -193,6 +196,7 @@ /* Return the column number of the current output point in __FS. */ extern size_t argp_fmtstream_point (argp_fmtstream_t __fs); extern size_t __argp_fmtstream_point (argp_fmtstream_t __fs); +#endif /* __STDC_VERSION__ - 199900L < 1 */ /* Internal routines. */ extern void _argp_fmtstream_update (argp_fmtstream_t __fs); ================================================ FILE: package/argp-standalone/Config.in ================================================ config BR2_PACKAGE_ARGP_STANDALONE bool "argp-standalone" # glibc provides its own argp implementation. depends on !BR2_TOOLCHAIN_USES_GLIBC help Glibc hierarchical argument parsing standalone library. http://www.lysator.liu.se/~nisse/misc/ ================================================ FILE: package/argp-standalone/argp-standalone.hash ================================================ # Locally calculated after checking pgp signature sha256 dec79694da1319acd2238ce95df57f3680fea2482096e483323fddf3d818d8be argp-standalone-1.3.tar.gz # License file sha256 bbb8919aa520069b0234faf5e83a94052d278419ffe97ca8e843ecc9b212d1ab argp.h ================================================ FILE: package/argp-standalone/argp-standalone.mk ================================================ ################################################################################ # # argp-standalone # ################################################################################ ARGP_STANDALONE_VERSION = 1.3 ARGP_STANDALONE_SITE = http://www.lysator.liu.se/~nisse/archive ARGP_STANDALONE_INSTALL_STAGING = YES ARGP_STANDALONE_LICENSE = LGPL-2.0+ ARGP_STANDALONE_LICENSE_FILES = argp.h ARGP_STANDALONE_CONF_ENV = \ CFLAGS="$(TARGET_CFLAGS) -fPIC -fgnu89-inline" define ARGP_STANDALONE_INSTALL_STAGING_CMDS $(INSTALL) -D $(@D)/libargp.a $(STAGING_DIR)/usr/lib/libargp.a $(INSTALL) -D $(@D)/argp.h $(STAGING_DIR)/usr/include/argp.h endef define ARGP_STANDALONE_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/libargp.a $(TARGET_DIR)/usr/lib/libargp.a $(INSTALL) -D $(@D)/argp.h $(TARGET_DIR)/usr/include/argp.h endef $(eval $(autotools-package)) ================================================ FILE: package/argparse/Config.in ================================================ 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/luarocks/argparse ================================================ FILE: package/argparse/argparse.hash ================================================ # computed by luarocks/buildroot sha256 ea30d0643586a20aeb6349ca8cb7db63aefc21d9aa007c7b7168a7c564817879 argparse-0.7.1-1.src.rock sha256 9a918f21485b2a4529c901491d9101392f03586d65ad5b024a4445ebc1dc37b4 argparse-0.7.1/LICENSE ================================================ FILE: package/argparse/argparse.mk ================================================ ################################################################################ # # argparse # ################################################################################ ARGPARSE_VERSION = 0.7.1-1 ARGPARSE_LICENSE = MIT ARGPARSE_LICENSE_FILES = $(ARGPARSE_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/argus/Config.in ================================================ config BR2_PACKAGE_ARGUS bool "argus" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBPCAP select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC help A Real Time Flow Monitor-based audit engine. http://qosient.com/argus/ comment "argus needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU ================================================ FILE: package/argus/argus.hash ================================================ # From http://qosient.com/argus/src/argus-3.0.8.2.tar.gz.md5 md5 eaf5f5ec66569e556392802a70ef9ca5 argus-3.0.8.2.tar.gz # Locally computed sha256 ca4e3bd5b9d4a8ff7c01cc96d1bffd46dbd6321237ec94c52f8badd51032eeff argus-3.0.8.2.tar.gz sha256 c68221f7207486bfce863fada4ba9b2aaf4adc9e1c672f965ae98e88143e5f16 README ================================================ FILE: package/argus/argus.mk ================================================ ################################################################################ # # argus # ################################################################################ ARGUS_VERSION = 3.0.8.2 ARGUS_SITE = http://qosient.com/argus/src ARGUS_DEPENDENCIES = libpcap ARGUS_CONF_ENV = arg_cv_sys_errlist=yes # Code is really v2+ though COPYING is v3 so ship README to avoid confusion ARGUS_LICENSE = GPL-2.0+ ARGUS_LICENSE_FILES = README ifeq ($(BR2_PACKAGE_LIBTIRPC),y) ARGUS_DEPENDENCIES += libtirpc host-pkgconf ARGUS_CONF_ENV += \ CFLAGS="$(TARGET_CFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc`" \ LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libtirpc`" endif $(eval $(autotools-package)) ================================================ FILE: package/arm-gnu-a-toolchain/arm-gnu-a-toolchain.hash ================================================ # Locally calculated sha256 ac952d89ae0fc3543e81099e7d34917efc621f5def112eee843fd1ce755eca8c gcc-arm-9.2-2019.12-x86_64-arm-none-eabi.tar.xz ================================================ FILE: package/arm-gnu-a-toolchain/arm-gnu-a-toolchain.mk ================================================ ################################################################################ # # arm-gnu-a-toolchain # ################################################################################ ARM_GNU_A_TOOLCHAIN_VERSION = 9.2-2019.12 ARM_GNU_A_TOOLCHAIN_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-a/$(ARM_GNU_A_TOOLCHAIN_VERSION)/binrel ARM_GNU_A_TOOLCHAIN_SOURCE = gcc-arm-$(ARM_GNU_A_TOOLCHAIN_VERSION)-x86_64-arm-none-eabi.tar.xz ARM_GNU_A_TOOLCHAIN_LICENSE = GPL-3.0+ HOST_ARM_GNU_A_TOOLCHAIN_INSTALL_DIR = $(HOST_DIR)/opt/gcc-arm-none-eabi define HOST_ARM_GNU_A_TOOLCHAIN_INSTALL_CMDS rm -rf $(HOST_ARM_GNU_A_TOOLCHAIN_INSTALL_DIR) mkdir -p $(HOST_ARM_GNU_A_TOOLCHAIN_INSTALL_DIR) cp -rf $(@D)/* $(HOST_ARM_GNU_A_TOOLCHAIN_INSTALL_DIR)/ mkdir -p $(HOST_DIR)/bin cd $(HOST_DIR)/bin && \ for i in ../opt/gcc-arm-none-eabi/bin/*; do \ ln -sf $$i; \ done endef $(eval $(host-generic-package)) ================================================ FILE: package/armadillo/Config.in ================================================ comment "armadillo needs a toolchain w/ C++" depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP comment "armadillo needs a toolchain w/ fortran, C++" depends on !BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS # otherwise, see comment above depends on BR2_PACKAGE_LAPACK_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_FORTRAN || !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_ARMADILLO bool "armadillo" depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS || \ (BR2_PACKAGE_LAPACK_ARCH_SUPPORTS && BR2_TOOLCHAIN_HAS_FORTRAN) depends on BR2_INSTALL_LIBSTDCPP help Armadillo: An Open Source C++ Linear Algebra Library for Fast Prototyping and Computationally Intensive Experiments. http://arma.sourceforge.net/ if BR2_PACKAGE_ARMADILLO choice prompt "BLAS implementation" config BR2_PACKAGE_ARMADILLO_OPENBLAS bool "openblas" depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS select BR2_PACKAGE_OPENBLAS config BR2_PACKAGE_ARMADILLO_LAPACK bool "lapack" depends on BR2_PACKAGE_LAPACK_ARCH_SUPPORTS && BR2_TOOLCHAIN_HAS_FORTRAN select BR2_PACKAGE_LAPACK endchoice endif ================================================ FILE: package/armadillo/armadillo.hash ================================================ # Locally computed: sha256 d78658c9442addf7f718eb05881150ee3ec25604d06dd3af4942422b3ce26d05 armadillo-9.900.2.tar.xz # License files, locally calculated sha256 3ddf9be5c28fe27dad143a5dc76eea25222ad1dd68934a047064e56ed2fa40c5 LICENSE.txt ================================================ FILE: package/armadillo/armadillo.mk ================================================ ################################################################################ # # armadillo # ################################################################################ ARMADILLO_VERSION = 9.900.2 ARMADILLO_SOURCE = armadillo-$(ARMADILLO_VERSION).tar.xz ARMADILLO_SITE = https://downloads.sourceforge.net/project/arma ARMADILLO_INSTALL_STAGING = YES ARMADILLO_LICENSE = Apache-2.0 ARMADILLO_LICENSE_FILES = LICENSE.txt ARMADILLO_CONF_OPTS = -DDETECT_HDF5=false # blas support may be provided by lapack (libblas.a) or openblas (libopenblas.a) ARMADILLO_CONF_OPTS += -DBLAS_FOUND=ON ifeq ($(BR2_PACKAGE_ARMADILLO_OPENBLAS),y) ARMADILLO_CONF_OPTS += -DBLAS_LIBRARIES=-lopenblas ARMADILLO_DEPENDENCIES += openblas else # Since BR2_PACKAGE_LAPACK is selected in this case, the dependency on it is # added below. ARMADILLO_CONF_OPTS += -DBLAS_LIBRARIES=-lblas endif # lapack support is optional and can only be provided by lapack, not openblas ifeq ($(BR2_PACKAGE_LAPACK),y) ARMADILLO_CONF_OPTS += -DLAPACK_FOUND=ON ARMADILLO_DEPENDENCIES += lapack endif $(eval $(cmake-package)) ================================================ FILE: package/armbian-firmware/Config.in ================================================ config BR2_PACKAGE_ARMBIAN_FIRMWARE bool "armbian-firmware" help This package enables access to various firmware blobs from the Armbian firmware repository. https://github.com/armbian/firmware if BR2_PACKAGE_ARMBIAN_FIRMWARE config BR2_PACKAGE_ARMBIAN_FIRMWARE_AP6212 bool "AP6212 WiFi/BT" help Firmware files for AP6212 WiFi/BT combo chip. config BR2_PACKAGE_ARMBIAN_FIRMWARE_AP6256 bool "AP6256 WiFi/BT" help Firmware files for AP6256 WiFi/BT combo chip. config BR2_PACKAGE_ARMBIAN_FIRMWARE_AP6255 bool "AP6255 WiFi/BT" help Firmware files for AP6255 WiFi/BT combo chip. config BR2_PACKAGE_ARMBIAN_FIRMWARE_RTL8822CS bool "Realtek 8822CS SDIO WiFi/BT" help Firmware files for Realtek 8822CS SDIO combo chip. config BR2_PACKAGE_ARMBIAN_FIRMWARE_XR819 bool "XR819 WiFi" help Firmware files for XR819 WiFi SDIO chip. endif ================================================ FILE: package/armbian-firmware/armbian-firmware.hash ================================================ # Locally calculated sha256 2e61dc5e43f6011868417504f6633e6de6c220ee48fba3b58823e4ce33a6b933 armbian-firmware-a1df8ab2ffbac51a8260905dd841bf825cf1bc53-br1.tar.gz ================================================ FILE: package/armbian-firmware/armbian-firmware.mk ================================================ ################################################################################ # # armbian-firmware # ################################################################################ ARMBIAN_FIRMWARE_VERSION = a1df8ab2ffbac51a8260905dd841bf825cf1bc53 ARMBIAN_FIRMWARE_SITE = https://github.com/armbian/firmware ARMBIAN_FIRMWARE_SITE_METHOD = git # AP6212 WiFi/BT combo firmware ifeq ($(BR2_PACKAGE_ARMBIAN_FIRMWARE_AP6212),y) ARMBIAN_FIRMWARE_DIRS += ap6212 endif # AP6256 WiFi/BT combo firmware ifeq ($(BR2_PACKAGE_ARMBIAN_FIRMWARE_AP6256),y) ARMBIAN_FIRMWARE_FILES += \ brcm/BCM4345C5.hcd \ brcm/brcmfmac43456-sdio.bin \ brcm/brcmfmac43456-sdio.txt endif # AP6255 WiFi/BT combo firmware ifeq ($(BR2_PACKAGE_ARMBIAN_FIRMWARE_AP6255),y) ARMBIAN_FIRMWARE_FILES += \ BCM4345C0.hcd \ fw_bcm43455c0_ag.bin \ fw_bcm43455c0_ag_apsta.bin \ fw_bcm43455c0_ag_p2p.bin \ nvram_ap6255.txt \ brcm/brcmfmac43455-sdio.bin \ brcm/brcmfmac43455-sdio.clm_blob \ brcm/brcmfmac43455-sdio.txt \ brcm/config.txt endif # Realtek 8822CS SDIO WiFi/BT combo firmware ifeq ($(BR2_PACKAGE_ARMBIAN_FIRMWARE_RTL8822CS),y) ARMBIAN_FIRMWARE_FILES += \ rtlbt/rtl8822cs_config \ rtlbt/rtl8822cs_fw endif # XR819 WiFi firmware ifeq ($(BR2_PACKAGE_ARMBIAN_FIRMWARE_XR819),y) ARMBIAN_FIRMWARE_FILES += \ xr819/boot_xr819.bin \ xr819/fw_xr819.bin \ xr819/sdd_xr819.bin endif ifneq ($(ARMBIAN_FIRMWARE_FILES),) define ARMBIAN_FIRMWARE_INSTALL_FILES cd $(@D) && \ $(TAR) cf install.tar $(sort $(ARMBIAN_FIRMWARE_FILES)) && \ $(TAR) xf install.tar -C $(TARGET_DIR)/lib/firmware endef endif ifneq ($(ARMBIAN_FIRMWARE_DIRS),) # We need to rm -rf the destination directory to avoid copying # into it in itself, should we re-install the package. define ARMBIAN_FIRMWARE_INSTALL_DIRS $(foreach d,$(ARMBIAN_FIRMWARE_DIRS), \ rm -rf $(TARGET_DIR)/lib/firmware/$(d); \ cp -a $(@D)/$(d) $(TARGET_DIR)/lib/firmware/$(d)$(sep)) endef endif ifneq ($(ARMBIAN_FIRMWARE_FILES)$(ARMBIAN_FIRMWARE_DIRS),) ARMBIAN_FIRMWARE_LICENSE = PROPRIETARY ARMBIAN_FIRMWARE_REDISTRIBUTE = NO endif define ARMBIAN_FIRMWARE_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/lib/firmware $(ARMBIAN_FIRMWARE_INSTALL_FILES) $(ARMBIAN_FIRMWARE_INSTALL_DIRS) endef $(eval $(generic-package)) ================================================ FILE: package/arp-scan/Config.in ================================================ config BR2_PACKAGE_ARP_SCAN bool "arp-scan" select BR2_PACKAGE_LIBPCAP help The ARP scanner arp-scan is a command-line tool that uses the ARP protocol to discover and fingerprint IP hosts on the local network. https://github.com/royhills/arp-scan ================================================ FILE: package/arp-scan/arp-scan.hash ================================================ # Locally calculated sha256 e03c36e4933c655bd0e4a841272554a347cd0136faf42c4a6564059e0761c039 arp-scan-1.9.7.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/arp-scan/arp-scan.mk ================================================ ################################################################################ # # arp-scan # ################################################################################ ARP_SCAN_VERSION = 1.9.7 ARP_SCAN_SITE = $(call github,royhills,arp-scan,$(ARP_SCAN_VERSION)) ARP_SCAN_LICENSE = GPL-3.0+ ARP_SCAN_LICENSE_FILES = COPYING ARP_SCAN_DEPENDENCIES = libpcap ARP_SCAN_AUTORECONF = YES ifeq ($(BR2_STATIC_LIBS),y) ARP_SCAN_CONF_OPTS = LIBS="`$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs`" endif ARP_SCAN_CONF_ENV = pgac_cv_snprintf_long_long_int_format='%lld' $(eval $(autotools-package)) ================================================ FILE: package/arptables/0001-Fix-musl-build-issue.patch ================================================ From cbf84a0bc377c6a368d30571f37ebfab27784697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krause?= Date: Wed, 2 Dec 2015 04:57:33 +0100 Subject: [PATCH 4/4] Fix musl build issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Due to clashes in the namespace between the Linux Kernel headers and the netinet headers building arptables with the musl C library fails. Best advice from the musl developers is to not include both headers in a userspace tool (see the thread on the musl mailing list [1], especially [2]). Since arptables only requires a few definitions from the Linux Kernel headers we opt-out the clashing header files and define the needed definitions. [1] http://www.openwall.com/lists/musl/2012/10/09/1 [2] http://www.openwall.com/lists/musl/2012/10/11/1 Signed-off-by: Jörg Krause --- extensions/arpt_CLASSIFY.c | 7 +++++++ include/linux/netfilter_arp.h | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/extensions/arpt_CLASSIFY.c b/extensions/arpt_CLASSIFY.c index cb5770b..c58129f 100644 --- a/extensions/arpt_CLASSIFY.c +++ b/extensions/arpt_CLASSIFY.c @@ -21,7 +21,14 @@ #include #include #include + +#ifdef __KERNEL__ #include +#else +struct xt_classify_target_info { + uint32_t priority; +}; +#endif #define TC_H_MAJ_MASK (0xFFFF0000U) #define TC_H_MIN_MASK (0x0000FFFFU) diff --git a/include/linux/netfilter_arp.h b/include/linux/netfilter_arp.h index 92bc6dd..2a63e82 100644 --- a/include/linux/netfilter_arp.h +++ b/include/linux/netfilter_arp.h @@ -5,7 +5,18 @@ * (C)2002 Rusty Russell IBM -- This code is GPL. */ +#ifdef __KERNEL__ #include +#else +/* Responses from hook functions. */ +#define NF_DROP 0 +#define NF_ACCEPT 1 +#define NF_STOLEN 2 +#define NF_QUEUE 3 +#define NF_REPEAT 4 +#define NF_STOP 5 +#define NF_MAX_VERDICT NF_STOP +#endif /* There is no PF_ARP. */ #define NF_ARP 0 -- 2.6.2 ================================================ FILE: package/arptables/Config.in ================================================ config BR2_PACKAGE_ARPTABLES bool "arptables-legacy" depends on BR2_USE_MMU # needs fork() help Legacy tool to set up, maintain, and inspect the tables of ARP rules. A more uptodate client of the arptables tool is provided in the iptables package. The new tool was formerly known as arptables-compat. http://git.netfilter.org/arptables ================================================ FILE: package/arptables/arptables.hash ================================================ # From http://ftp.netfilter.org/pub/arptables/arptables-0.0.5.tar.gz.sha256sum sha256 4f9a0656ce5c90868f551cd4deeb2d04f33899667e1fb2818b64e432fe8f629c arptables-0.0.5.tar.gz # Hash for license file sha256 ebdb8ae564c952792017ec680e2edd30443642216eb9f8a3d8fa166c0cb628c1 COPYING ================================================ FILE: package/arptables/arptables.mk ================================================ ################################################################################ # # arptables # ################################################################################ ARPTABLES_VERSION = 0.0.5 ARPTABLES_SITE = http://ftp.netfilter.org/pub/arptables ARPTABLES_LICENSE = GPL-2.0+ ARPTABLES_LICENSE_FILES = COPYING define ARPTABLES_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ CC="$(TARGET_CC)" COPT_FLAGS="$(TARGET_CFLAGS)" endef define ARPTABLES_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -D $(@D)/arptables-legacy \ $(TARGET_DIR)/usr/sbin/arptables-legacy endef $(eval $(generic-package)) ================================================ FILE: package/ascii-invaders/Config.in ================================================ config BR2_PACKAGE_ASCII_INVADERS bool "ascii_invaders" select BR2_PACKAGE_NCURSES help An ASCII-art game like Space Invaders using ncurses. https://github.com/macdice/ascii-invaders ================================================ FILE: package/ascii-invaders/ascii-invaders.hash ================================================ # Locally calculated sha512 326708ffc2c277e04575920c58f6a267e0bf46f8d2a3dbca9b5c317fb01006d4f673ab35f92f292549cc52dbee4400a84c85478eb81b9bd7703689a705547bc7 ascii-invaders-1.0.1.tar.gz # Hash for license file sha512 1e455684996d7733b2f1ccd4606d034694d16ceff6ede6125d7f1537d20dabe05976cca4cef5cbf6c31352cbd62a515fd8e34a2ffb54dae1181c1116b24c6cf7 LICENSE ================================================ FILE: package/ascii-invaders/ascii-invaders.mk ================================================ ################################################################################ # # ASCII-Invaders # ################################################################################ ASCII_INVADERS_VERSION = 1.0.1 ASCII_INVADERS_SITE = $(call github,macdice,ascii-invaders,v$(ASCII_INVADERS_VERSION)) ASCII_INVADERS_DEPENDENCIES = ncurses ASCII_INVADERS_LICENSE = GPL-2.0+ ASCII_INVADERS_LICENSE_FILES = LICENSE # For compiling statically, libraries must be specified after the object file define ASCII_INVADERS_POST_EXTRACT_FIXUP sed -i 's/\$$(LIBS) invaders.o/invaders.o \$$(LIBS)/' $(@D)/Makefile endef ASCII_INVADERS_POST_EXTRACT_HOOKS += ASCII_INVADERS_POST_EXTRACT_FIXUP define ASCII_INVADERS_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define ASCII_INVADERS_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/ascii_invaders $(TARGET_DIR)/usr/bin/ascii_invaders endef $(eval $(generic-package)) ================================================ FILE: package/asn1c/Config.in.host ================================================ config BR2_PACKAGE_HOST_ASN1C bool "host asn1c" help ASN.1 stands for Abstract Syntax Notation One and allows to describe complex data structures independently of any particular programming language. The asn1c is a free, open source compiler of ASN.1 specifications into C source code. http://lionet.info/asn1c ================================================ FILE: package/asn1c/asn1c.hash ================================================ # Locally computed: sha256 8007440b647ef2dd9fb73d931c33ac11764e6afb2437dbe638bb4e5fc82386b9 asn1c-0.9.28.tar.gz # Hash for license files: sha256 bcc636802a52ace2255212be15fb707084af87061b5cfd37eb84dcf6a02cc48b LICENSE ================================================ FILE: package/asn1c/asn1c.mk ================================================ ################################################################################ # # asn1c # ################################################################################ ASN1C_VERSION = 0.9.28 ASN1C_SITE = https://github.com/vlm/asn1c/releases/download/v$(ASN1C_VERSION) ASN1C_LICENSE = BSD-2-Clause ASN1C_LICENSE_FILES = LICENSE ASN1C_CPE_ID_VENDOR = asn1c_project $(eval $(host-autotools-package)) ================================================ FILE: package/assimp/0001-Fix-FBXConverter-use-proper-64-bit-constant.patch ================================================ From 30a2ecc7939449f235282eb6de42e367fc5b1867 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 14 Jan 2016 22:13:15 +0100 Subject: [PATCH] Fix FBXConverter: use proper 64-bit constant Use proper 64-bit constant for CONVERT_FBX_TIME(time) conversion, fixes: code/FBXConverter.cpp:2025: error: integer constant is too large for 'long' type code/FBXConverter.cpp:2026: error: integer constant is too large for 'long' type code/FBXConverter.cpp:2794: error: integer constant is too large for 'long' type code/FBXConverter.cpp:2868: error: integer constant is too large for 'long' type code/FBXConverter.cpp:2878: error: integer constant is too large for 'long' type code/FBXConverter.cpp:2888: error: integer constant is too large for 'long' type Signed-off-by: Peter Seiderer [Rebased on 5.0.1] Signed-off-by: Peter Seiderer --- code/FBX/FBXConverter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/FBX/FBXConverter.cpp b/code/FBXConverter.cpp index e0c6b9c..b1e9a71 100644 --- a/code/FBX/FBXConverter.cpp +++ b/code/FBX/FBXConverter.cpp @@ -67,7 +67,7 @@ namespace FBX { #define MAGIC_NODE_TAG "_$AssimpFbx$" -#define CONVERT_FBX_TIME(time) static_cast(time) / 46186158000L +#define CONVERT_FBX_TIME(time) static_cast(time) / 46186158000LL // XXX vc9's debugger won't step into anonymous namespaces //namespace { -- 2.1.4 ================================================ FILE: package/assimp/0002-closes-2733-update-of-zlip-to-fix-gcc-build-for-v9-2-0-32-bit.patch ================================================ From f78446b14aff46db2ef27d062a275b6a01fd68b1 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Tue, 19 Nov 2019 20:30:40 +0100 Subject: [PATCH] closes https://github.com/assimp/assimp/issues/2733: update of zlip to fix gcc build for v9.2.0 32 bit [Retrieved (and updated to remove .gitignore and appveyor.yml) from: https://github.com/assimp/assimp/commit/f78446b14aff46db2ef27d062a275b6a01fd68b1] Signed-off-by: Fabrice Fontaine --- contrib/zip/.gitignore | 2 + contrib/zip/CMakeLists.txt | 83 +++++- contrib/zip/README.md | 12 +- contrib/zip/appveyor.yml | 2 +- contrib/zip/src/miniz.h | 457 ++++++++++++++++++++++++++++---- contrib/zip/src/zip.c | 62 +++-- contrib/zip/src/zip.h | 457 ++++++++++++++++---------------- contrib/zip/test/CMakeLists.txt | 27 +- contrib/zip/test/test.c | 38 ++- contrib/zip/test/test_miniz.c | 25 +- 10 files changed, 821 insertions(+), 344 deletions(-) diff --git a/contrib/zip/CMakeLists.txt b/contrib/zip/CMakeLists.txt index b46dbb1db0..77916d2e14 100644 --- a/contrib/zip/CMakeLists.txt +++ b/contrib/zip/CMakeLists.txt @@ -1,10 +1,14 @@ -cmake_minimum_required(VERSION 2.8) -project(zip) -enable_language(C) +cmake_minimum_required(VERSION 3.0) + +project(zip + LANGUAGES C + VERSION "0.1.15") set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) +option(CMAKE_DISABLE_TESTING "Disable test creation" OFF) + if (MSVC) - # Use secure functions by defaualt and suppress warnings about "deprecated" functions + # Use secure functions by default and suppress warnings about "deprecated" functions set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_NONSTDC_NO_WARNINGS=1 /D _CRT_SECURE_NO_WARNINGS=1") @@ -12,28 +16,80 @@ elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall -Wextra -Werror -pedantic") + if(ENABLE_COVERAGE) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") + endif() endif (MSVC) # zip set(SRC src/miniz.h src/zip.h src/zip.c) add_library(${PROJECT_NAME} ${SRC}) -target_include_directories(${PROJECT_NAME} INTERFACE src) +target_include_directories(${PROJECT_NAME} PUBLIC + $ + $ +) # test if (NOT CMAKE_DISABLE_TESTING) enable_testing() add_subdirectory(test) find_package(Sanitizers) - add_sanitizers(${PROJECT_NAME} test.exe) - add_sanitizers(${PROJECT_NAME} test_miniz.exe) + add_sanitizers(${PROJECT_NAME} ${test_out} ${test_miniz_out}) endif() +#### +# Installation (https://github.com/forexample/package-example) { + +set(CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}") +set(INCLUDE_INSTALL_DIR "include") + +set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") + +# Configuration +set(VERSION_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake") +set(PROJECT_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}Config.cmake") +set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") +set(NAMESPACE "${PROJECT_NAME}::") + +# Include module with fuction 'write_basic_package_version_file' +include(CMakePackageConfigHelpers) + +# Note: PROJECT_VERSION is used as a VERSION +write_basic_package_version_file( + "${VERSION_CONFIG}" COMPATIBILITY SameMajorVersion +) + +# Use variables: +# * TARGETS_EXPORT_NAME +# * PROJECT_NAME +configure_package_config_file( + "cmake/Config.cmake.in" + "${PROJECT_CONFIG}" + INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}" +) + +install( + FILES "${PROJECT_CONFIG}" "${VERSION_CONFIG}" + DESTINATION "${CONFIG_INSTALL_DIR}" +) + +install( + EXPORT "${TARGETS_EXPORT_NAME}" + NAMESPACE "${NAMESPACE}" + DESTINATION "${CONFIG_INSTALL_DIR}" +) + +# } + install(TARGETS ${PROJECT_NAME} + EXPORT ${TARGETS_EXPORT_NAME} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib - COMPONENT library) -install(FILES ${PROJECT_SOURCE_DIR}/src/zip.h DESTINATION include) + INCLUDES DESTINATION ${INCLUDE_INSTALL_DIR} +) +install(FILES ${PROJECT_SOURCE_DIR}/src/zip.h DESTINATION ${INCLUDE_INSTALL_DIR}/zip) # uninstall target (https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake) if(NOT TARGET uninstall) @@ -45,3 +101,12 @@ if(NOT TARGET uninstall) add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake) endif() + +find_package(Doxygen) +if(DOXYGEN_FOUND) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) + add_custom_target(doc + ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Generating API documentation with Doxygen" VERBATIM) +endif() diff --git a/contrib/zip/README.md b/contrib/zip/README.md index d5fb8cd203..14eb9a34c8 100644 --- a/contrib/zip/README.md +++ b/contrib/zip/README.md @@ -71,7 +71,7 @@ int arg = 2; zip_extract("foo.zip", "/tmp", on_extract_entry, &arg); ``` -* Extract a zip entry into memory. +* Extract a zip entry into memory. ```c void *buf = NULL; size_t bufsize; @@ -89,7 +89,7 @@ zip_close(zip); free(buf); ``` -* Extract a zip entry into memory (no internal allocation). +* Extract a zip entry into memory (no internal allocation). ```c unsigned char *buf; size_t bufsize; @@ -110,7 +110,7 @@ zip_close(zip); free(buf); ``` -* Extract a zip entry into memory using callback. +* Extract a zip entry into memory using callback. ```c struct buffer_t { char *data; @@ -144,7 +144,7 @@ free(buf.data); ``` -* Extract a zip entry into a file. +* Extract a zip entry into a file. ```c struct zip_t *zip = zip_open("foo.zip", 0, 'r'); { @@ -157,7 +157,7 @@ struct zip_t *zip = zip_open("foo.zip", 0, 'r'); zip_close(zip); ``` -* List of all zip entries +* List of all zip entries ```c struct zip_t *zip = zip_open("foo.zip", 0, 'r'); int i, n = zip_total_entries(zip); @@ -174,7 +174,7 @@ for (i = 0; i < n; ++i) { zip_close(zip); ``` -## Bindings +# Bindings Compile zip library as a dynamic library. ```shell $ mkdir build diff --git a/contrib/zip/src/miniz.h b/contrib/zip/src/miniz.h index 2c27a94d8d..c4fcfb83e6 100644 --- a/contrib/zip/src/miniz.h +++ b/contrib/zip/src/miniz.h @@ -221,6 +221,7 @@ #ifndef MINIZ_HEADER_INCLUDED #define MINIZ_HEADER_INCLUDED +#include #include // Defines to completely disable specific portions of miniz.c: @@ -284,7 +285,8 @@ /* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES only if not set */ #if !defined(MINIZ_USE_UNALIGNED_LOADS_AND_STORES) #if MINIZ_X86_OR_X64_CPU -/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses. */ +/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient + * integer loads and stores from unaligned addresses. */ #define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1 #define MINIZ_UNALIGNED_USE_MEMCPY #else @@ -354,6 +356,44 @@ enum { MZ_FIXED = 4 }; +/* miniz error codes. Be sure to update mz_zip_get_error_string() if you add or + * modify this enum. */ +typedef enum { + MZ_ZIP_NO_ERROR = 0, + MZ_ZIP_UNDEFINED_ERROR, + MZ_ZIP_TOO_MANY_FILES, + MZ_ZIP_FILE_TOO_LARGE, + MZ_ZIP_UNSUPPORTED_METHOD, + MZ_ZIP_UNSUPPORTED_ENCRYPTION, + MZ_ZIP_UNSUPPORTED_FEATURE, + MZ_ZIP_FAILED_FINDING_CENTRAL_DIR, + MZ_ZIP_NOT_AN_ARCHIVE, + MZ_ZIP_INVALID_HEADER_OR_CORRUPTED, + MZ_ZIP_UNSUPPORTED_MULTIDISK, + MZ_ZIP_DECOMPRESSION_FAILED, + MZ_ZIP_COMPRESSION_FAILED, + MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE, + MZ_ZIP_CRC_CHECK_FAILED, + MZ_ZIP_UNSUPPORTED_CDIR_SIZE, + MZ_ZIP_ALLOC_FAILED, + MZ_ZIP_FILE_OPEN_FAILED, + MZ_ZIP_FILE_CREATE_FAILED, + MZ_ZIP_FILE_WRITE_FAILED, + MZ_ZIP_FILE_READ_FAILED, + MZ_ZIP_FILE_CLOSE_FAILED, + MZ_ZIP_FILE_SEEK_FAILED, + MZ_ZIP_FILE_STAT_FAILED, + MZ_ZIP_INVALID_PARAMETER, + MZ_ZIP_INVALID_FILENAME, + MZ_ZIP_BUF_TOO_SMALL, + MZ_ZIP_INTERNAL_ERROR, + MZ_ZIP_FILE_NOT_FOUND, + MZ_ZIP_ARCHIVE_TOO_LARGE, + MZ_ZIP_VALIDATION_FAILED, + MZ_ZIP_WRITE_CALLBACK_FAILED, + MZ_ZIP_TOTAL_ERRORS +} mz_zip_error; + // Method #define MZ_DEFLATED 8 @@ -696,6 +736,7 @@ typedef size_t (*mz_file_read_func)(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n); typedef size_t (*mz_file_write_func)(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n); +typedef mz_bool (*mz_file_needs_keepalive)(void *pOpaque); struct mz_zip_internal_state_tag; typedef struct mz_zip_internal_state_tag mz_zip_internal_state; @@ -707,13 +748,27 @@ typedef enum { MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED = 3 } mz_zip_mode; -typedef struct mz_zip_archive_tag { +typedef enum { + MZ_ZIP_TYPE_INVALID = 0, + MZ_ZIP_TYPE_USER, + MZ_ZIP_TYPE_MEMORY, + MZ_ZIP_TYPE_HEAP, + MZ_ZIP_TYPE_FILE, + MZ_ZIP_TYPE_CFILE, + MZ_ZIP_TOTAL_TYPES +} mz_zip_type; + +typedef struct { mz_uint64 m_archive_size; mz_uint64 m_central_directory_file_ofs; - mz_uint m_total_files; + + /* We only support up to UINT32_MAX files in zip64 mode. */ + mz_uint32 m_total_files; mz_zip_mode m_zip_mode; + mz_zip_type m_zip_type; + mz_zip_error m_last_error; - mz_uint m_file_offset_alignment; + mz_uint64 m_file_offset_alignment; mz_alloc_func m_pAlloc; mz_free_func m_pFree; @@ -722,6 +777,7 @@ typedef struct mz_zip_archive_tag { mz_file_read_func m_pRead; mz_file_write_func m_pWrite; + mz_file_needs_keepalive m_pNeeds_keepalive; void *m_pIO_opaque; mz_zip_internal_state *m_pState; @@ -1263,6 +1319,9 @@ mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy); #endif // #ifndef MINIZ_NO_ZLIB_APIS +#define MZ_UINT16_MAX (0xFFFFU) +#define MZ_UINT32_MAX (0xFFFFFFFFU) + #ifdef __cplusplus } #endif @@ -1311,6 +1370,11 @@ typedef unsigned char mz_validate_uint64[sizeof(mz_uint64) == 8 ? 1 : -1]; ((mz_uint32)(((const mz_uint8 *)(p))[3]) << 24U)) #endif +#define MZ_READ_LE64(p) \ + (((mz_uint64)MZ_READ_LE32(p)) | \ + (((mz_uint64)MZ_READ_LE32((const mz_uint8 *)(p) + sizeof(mz_uint32))) \ + << 32U)) + #ifdef _MSC_VER #define MZ_FORCEINLINE __forceinline #elif defined(__GNUC__) @@ -4160,6 +4224,17 @@ enum { MZ_ZIP_LOCAL_DIR_HEADER_SIZE = 30, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE = 46, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE = 22, + + /* ZIP64 archive identifier and record sizes */ + MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG = 0x06064b50, + MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG = 0x07064b50, + MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE = 56, + MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE = 20, + MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID = 0x0001, + MZ_ZIP_DATA_DESCRIPTOR_ID = 0x08074b50, + MZ_ZIP_DATA_DESCRIPTER_SIZE64 = 24, + MZ_ZIP_DATA_DESCRIPTER_SIZE32 = 16, + // Central directory header record offsets MZ_ZIP_CDH_SIG_OFS = 0, MZ_ZIP_CDH_VERSION_MADE_BY_OFS = 4, @@ -4199,6 +4274,31 @@ enum { MZ_ZIP_ECDH_CDIR_SIZE_OFS = 12, MZ_ZIP_ECDH_CDIR_OFS_OFS = 16, MZ_ZIP_ECDH_COMMENT_SIZE_OFS = 20, + + /* ZIP64 End of central directory locator offsets */ + MZ_ZIP64_ECDL_SIG_OFS = 0, /* 4 bytes */ + MZ_ZIP64_ECDL_NUM_DISK_CDIR_OFS = 4, /* 4 bytes */ + MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS = 8, /* 8 bytes */ + MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS = 16, /* 4 bytes */ + + /* ZIP64 End of central directory header offsets */ + MZ_ZIP64_ECDH_SIG_OFS = 0, /* 4 bytes */ + MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS = 4, /* 8 bytes */ + MZ_ZIP64_ECDH_VERSION_MADE_BY_OFS = 12, /* 2 bytes */ + MZ_ZIP64_ECDH_VERSION_NEEDED_OFS = 14, /* 2 bytes */ + MZ_ZIP64_ECDH_NUM_THIS_DISK_OFS = 16, /* 4 bytes */ + MZ_ZIP64_ECDH_NUM_DISK_CDIR_OFS = 20, /* 4 bytes */ + MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS = 24, /* 8 bytes */ + MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS = 32, /* 8 bytes */ + MZ_ZIP64_ECDH_CDIR_SIZE_OFS = 40, /* 8 bytes */ + MZ_ZIP64_ECDH_CDIR_OFS_OFS = 48, /* 8 bytes */ + MZ_ZIP_VERSION_MADE_BY_DOS_FILESYSTEM_ID = 0, + MZ_ZIP_DOS_DIR_ATTRIBUTE_BITFLAG = 0x10, + MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED = 1, + MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG = 32, + MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION = 64, + MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_LOCAL_DIR_IS_MASKED = 8192, + MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_UTF8 = 1 << 11 }; typedef struct { @@ -4211,7 +4311,24 @@ struct mz_zip_internal_state_tag { mz_zip_array m_central_dir; mz_zip_array m_central_dir_offsets; mz_zip_array m_sorted_central_dir_offsets; + + /* The flags passed in when the archive is initially opened. */ + uint32_t m_init_flags; + + /* MZ_TRUE if the archive has a zip64 end of central directory headers, etc. + */ + mz_bool m_zip64; + + /* MZ_TRUE if we found zip64 extended info in the central directory (m_zip64 + * will also be slammed to true too, even if we didn't find a zip64 end of + * central dir header, etc.) */ + mz_bool m_zip64_has_extended_info_fields; + + /* These fields are used by the file, FILE, memory, and memory/heap read/write + * helpers. */ MZ_FILE *m_pFile; + mz_uint64 m_file_archive_start_ofs; + void *m_pMem; size_t m_mem_size; size_t m_mem_capacity; @@ -4363,6 +4480,13 @@ static mz_bool mz_zip_set_file_times(const char *pFilename, time_t access_time, #endif /* #ifndef MINIZ_NO_STDIO */ #endif /* #ifndef MINIZ_NO_TIME */ +static MZ_FORCEINLINE mz_bool mz_zip_set_error(mz_zip_archive *pZip, + mz_zip_error err_num) { + if (pZip) + pZip->m_last_error = err_num; + return MZ_FALSE; +} + static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip, mz_uint32 flags) { (void)flags; @@ -4480,127 +4604,346 @@ mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_archive *pZip) { } } -static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, - mz_uint32 flags) { - mz_uint cdir_size, num_this_disk, cdir_disk_index; - mz_uint64 cdir_ofs; +static mz_bool mz_zip_reader_locate_header_sig(mz_zip_archive *pZip, + mz_uint32 record_sig, + mz_uint32 record_size, + mz_int64 *pOfs) { mz_int64 cur_file_ofs; - const mz_uint8 *p; mz_uint32 buf_u32[4096 / sizeof(mz_uint32)]; mz_uint8 *pBuf = (mz_uint8 *)buf_u32; - mz_bool sort_central_dir = - ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0); - // Basic sanity checks - reject files which are too small, and check the first - // 4 bytes of the file to make sure a local header is there. - if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) + + /* Basic sanity checks - reject files which are too small */ + if (pZip->m_archive_size < record_size) return MZ_FALSE; - // Find the end of central directory record by scanning the file from the end - // towards the beginning. + + /* Find the record by scanning the file from the end towards the beginning. */ cur_file_ofs = MZ_MAX((mz_int64)pZip->m_archive_size - (mz_int64)sizeof(buf_u32), 0); for (;;) { int i, n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs); + if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n) return MZ_FALSE; - for (i = n - 4; i >= 0; --i) - if (MZ_READ_LE32(pBuf + i) == MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) - break; + + for (i = n - 4; i >= 0; --i) { + mz_uint s = MZ_READ_LE32(pBuf + i); + if (s == record_sig) { + if ((pZip->m_archive_size - (cur_file_ofs + i)) >= record_size) + break; + } + } + if (i >= 0) { cur_file_ofs += i; break; } + + /* Give up if we've searched the entire file, or we've gone back "too far" + * (~64kb) */ if ((!cur_file_ofs) || ((pZip->m_archive_size - cur_file_ofs) >= - (0xFFFF + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE))) + (MZ_UINT16_MAX + record_size))) return MZ_FALSE; + cur_file_ofs = MZ_MAX(cur_file_ofs - (sizeof(buf_u32) - 3), 0); } - // Read and verify the end of central directory record. + + *pOfs = cur_file_ofs; + return MZ_TRUE; +} + +static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, + mz_uint flags) { + mz_uint cdir_size = 0, cdir_entries_on_this_disk = 0, num_this_disk = 0, + cdir_disk_index = 0; + mz_uint64 cdir_ofs = 0; + mz_int64 cur_file_ofs = 0; + const mz_uint8 *p; + + mz_uint32 buf_u32[4096 / sizeof(mz_uint32)]; + mz_uint8 *pBuf = (mz_uint8 *)buf_u32; + mz_bool sort_central_dir = + ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0); + mz_uint32 zip64_end_of_central_dir_locator_u32 + [(MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE + sizeof(mz_uint32) - 1) / + sizeof(mz_uint32)]; + mz_uint8 *pZip64_locator = (mz_uint8 *)zip64_end_of_central_dir_locator_u32; + + mz_uint32 zip64_end_of_central_dir_header_u32 + [(MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / + sizeof(mz_uint32)]; + mz_uint8 *pZip64_end_of_central_dir = + (mz_uint8 *)zip64_end_of_central_dir_header_u32; + + mz_uint64 zip64_end_of_central_dir_ofs = 0; + + /* Basic sanity checks - reject files which are too small, and check the first + * 4 bytes of the file to make sure a local header is there. */ + if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); + + if (!mz_zip_reader_locate_header_sig( + pZip, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG, + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE, &cur_file_ofs)) + return mz_zip_set_error(pZip, MZ_ZIP_FAILED_FINDING_CENTRAL_DIR); + + /* Read and verify the end of central directory record. */ if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) - return MZ_FALSE; - if ((MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) != - MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) || - ((pZip->m_total_files = - MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS)) != - MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS))) - return MZ_FALSE; + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + + if (MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) != + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) + return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); + + if (cur_file_ofs >= (MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE + + MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE)) { + if (pZip->m_pRead(pZip->m_pIO_opaque, + cur_file_ofs - MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE, + pZip64_locator, + MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) == + MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) { + if (MZ_READ_LE32(pZip64_locator + MZ_ZIP64_ECDL_SIG_OFS) == + MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG) { + zip64_end_of_central_dir_ofs = MZ_READ_LE64( + pZip64_locator + MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS); + if (zip64_end_of_central_dir_ofs > + (pZip->m_archive_size - MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE)) + return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); + + if (pZip->m_pRead(pZip->m_pIO_opaque, zip64_end_of_central_dir_ofs, + pZip64_end_of_central_dir, + MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) == + MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) { + if (MZ_READ_LE32(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_SIG_OFS) == + MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG) { + pZip->m_pState->m_zip64 = MZ_TRUE; + } + } + } + } + } + pZip->m_total_files = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS); + cdir_entries_on_this_disk = + MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS); num_this_disk = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_THIS_DISK_OFS); cdir_disk_index = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS); + cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS); + cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS); + + if (pZip->m_pState->m_zip64) { + mz_uint32 zip64_total_num_of_disks = + MZ_READ_LE32(pZip64_locator + MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS); + mz_uint64 zip64_cdir_total_entries = MZ_READ_LE64( + pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS); + mz_uint64 zip64_cdir_total_entries_on_this_disk = MZ_READ_LE64( + pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS); + mz_uint64 zip64_size_of_end_of_central_dir_record = MZ_READ_LE64( + pZip64_end_of_central_dir + MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS); + mz_uint64 zip64_size_of_central_directory = + MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_SIZE_OFS); + + if (zip64_size_of_end_of_central_dir_record < + (MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE - 12)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + if (zip64_total_num_of_disks != 1U) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); + + /* Check for miniz's practical limits */ + if (zip64_cdir_total_entries > MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); + + pZip->m_total_files = (mz_uint32)zip64_cdir_total_entries; + + if (zip64_cdir_total_entries_on_this_disk > MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); + + cdir_entries_on_this_disk = + (mz_uint32)zip64_cdir_total_entries_on_this_disk; + + /* Check for miniz's current practical limits (sorry, this should be enough + * for millions of files) */ + if (zip64_size_of_central_directory > MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); + + cdir_size = (mz_uint32)zip64_size_of_central_directory; + + num_this_disk = MZ_READ_LE32(pZip64_end_of_central_dir + + MZ_ZIP64_ECDH_NUM_THIS_DISK_OFS); + + cdir_disk_index = MZ_READ_LE32(pZip64_end_of_central_dir + + MZ_ZIP64_ECDH_NUM_DISK_CDIR_OFS); + + cdir_ofs = + MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_OFS_OFS); + } + + if (pZip->m_total_files != cdir_entries_on_this_disk) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); + if (((num_this_disk | cdir_disk_index) != 0) && ((num_this_disk != 1) || (cdir_disk_index != 1))) - return MZ_FALSE; + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); - if ((cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS)) < - pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) - return MZ_FALSE; + if (cdir_size < pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS); if ((cdir_ofs + (mz_uint64)cdir_size) > pZip->m_archive_size) - return MZ_FALSE; + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); pZip->m_central_directory_file_ofs = cdir_ofs; if (pZip->m_total_files) { mz_uint i, n; - - // Read the entire central directory into a heap block, and allocate another - // heap block to hold the unsorted central dir file record offsets, and - // another to hold the sorted indices. + /* Read the entire central directory into a heap block, and allocate another + * heap block to hold the unsorted central dir file record offsets, and + * possibly another to hold the sorted indices. */ if ((!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir, cdir_size, MZ_FALSE)) || (!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir_offsets, pZip->m_total_files, MZ_FALSE))) - return MZ_FALSE; + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); if (sort_central_dir) { if (!mz_zip_array_resize(pZip, &pZip->m_pState->m_sorted_central_dir_offsets, pZip->m_total_files, MZ_FALSE)) - return MZ_FALSE; + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); } if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs, pZip->m_pState->m_central_dir.m_p, cdir_size) != cdir_size) - return MZ_FALSE; + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - // Now create an index into the central directory file records, do some - // basic sanity checking on each record, and check for zip64 entries (which - // are not yet supported). + /* Now create an index into the central directory file records, do some + * basic sanity checking on each record */ p = (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p; for (n = cdir_size, i = 0; i < pZip->m_total_files; ++i) { - mz_uint total_header_size, comp_size, decomp_size, disk_index; + mz_uint total_header_size, disk_index, bit_flags, filename_size, + ext_data_size; + mz_uint64 comp_size, decomp_size, local_header_ofs; + if ((n < MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) || (MZ_READ_LE32(p) != MZ_ZIP_CENTRAL_DIR_HEADER_SIG)) - return MZ_FALSE; + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, i) = (mz_uint32)(p - (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p); + if (sort_central_dir) MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_sorted_central_dir_offsets, mz_uint32, i) = i; + comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); decomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); - if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) && - (decomp_size != comp_size)) || - (decomp_size && !comp_size) || (decomp_size == 0xFFFFFFFF) || - (comp_size == 0xFFFFFFFF)) - return MZ_FALSE; + local_header_ofs = MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS); + filename_size = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); + ext_data_size = MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS); + + if ((!pZip->m_pState->m_zip64_has_extended_info_fields) && + (ext_data_size) && + (MZ_MAX(MZ_MAX(comp_size, decomp_size), local_header_ofs) == + MZ_UINT32_MAX)) { + /* Attempt to find zip64 extended information field in the entry's extra + * data */ + mz_uint32 extra_size_remaining = ext_data_size; + + if (extra_size_remaining) { + const mz_uint8 *pExtra_data; + void *buf = NULL; + + if (MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size + ext_data_size > + n) { + buf = MZ_MALLOC(ext_data_size); + if (buf == NULL) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + + if (pZip->m_pRead(pZip->m_pIO_opaque, + cdir_ofs + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + + filename_size, + buf, ext_data_size) != ext_data_size) { + MZ_FREE(buf); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + } + + pExtra_data = (mz_uint8 *)buf; + } else { + pExtra_data = p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size; + } + + do { + mz_uint32 field_id; + mz_uint32 field_data_size; + + if (extra_size_remaining < (sizeof(mz_uint16) * 2)) { + MZ_FREE(buf); + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + } + + field_id = MZ_READ_LE16(pExtra_data); + field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16)); + + if ((field_data_size + sizeof(mz_uint16) * 2) > + extra_size_remaining) { + MZ_FREE(buf); + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + } + + if (field_id == MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) { + /* Ok, the archive didn't have any zip64 headers but it uses a + * zip64 extended information field so mark it as zip64 anyway + * (this can occur with infozip's zip util when it reads + * compresses files from stdin). */ + pZip->m_pState->m_zip64 = MZ_TRUE; + pZip->m_pState->m_zip64_has_extended_info_fields = MZ_TRUE; + break; + } + + pExtra_data += sizeof(mz_uint16) * 2 + field_data_size; + extra_size_remaining = + extra_size_remaining - sizeof(mz_uint16) * 2 - field_data_size; + } while (extra_size_remaining); + + MZ_FREE(buf); + } + } + + /* I've seen archives that aren't marked as zip64 that uses zip64 ext + * data, argh */ + if ((comp_size != MZ_UINT32_MAX) && (decomp_size != MZ_UINT32_MAX)) { + if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) && + (decomp_size != comp_size)) || + (decomp_size && !comp_size)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + } + disk_index = MZ_READ_LE16(p + MZ_ZIP_CDH_DISK_START_OFS); - if ((disk_index != num_this_disk) && (disk_index != 1)) - return MZ_FALSE; - if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) + - MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size) - return MZ_FALSE; + if ((disk_index == MZ_UINT16_MAX) || + ((disk_index != num_this_disk) && (disk_index != 1))) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); + + if (comp_size != MZ_UINT32_MAX) { + if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) + + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + } + + bit_flags = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); + if (bit_flags & MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_LOCAL_DIR_IS_MASKED) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); + if ((total_header_size = MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS)) > n) - return MZ_FALSE; + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + n -= total_header_size; p += total_header_size; } diff --git a/contrib/zip/src/zip.c b/contrib/zip/src/zip.c index ff3a8fe1e6..1abcfd8fd1 100644 --- a/contrib/zip/src/zip.c +++ b/contrib/zip/src/zip.c @@ -24,7 +24,6 @@ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) && \ (P)[1] == ':') #define FILESYSTEM_PREFIX_LEN(P) (HAS_DEVICE(P) ? 2 : 0) -#define ISSLASH(C) ((C) == '/' || (C) == '\\') #else @@ -48,7 +47,7 @@ int symlink(const char *target, const char *linkpath); // needed on Linux #endif #ifndef ISSLASH -#define ISSLASH(C) ((C) == '/') +#define ISSLASH(C) ((C) == '/' || (C) == '\\') #endif #define CLEANUP(ptr) \ @@ -78,26 +77,34 @@ static const char *base_name(const char *name) { return base; } -static int mkpath(const char *path) { - char const *p; +static int mkpath(char *path) { + char *p; char npath[MAX_PATH + 1]; int len = 0; int has_device = HAS_DEVICE(path); memset(npath, 0, MAX_PATH + 1); - -#ifdef _WIN32 - // only on windows fix the path - npath[0] = path[0]; - npath[1] = path[1]; - len = 2; -#endif // _WIN32 - + if (has_device) { + // only on windows + npath[0] = path[0]; + npath[1] = path[1]; + len = 2; + } for (p = path + len; *p && len < MAX_PATH; p++) { if (ISSLASH(*p) && ((!has_device && len > 0) || (has_device && len > 2))) { - if (MKDIR(npath) == -1) - if (errno != EEXIST) +#if defined(_WIN32) || defined(__WIN32__) || defined(_MSC_VER) || \ + defined(__MINGW32__) +#else + if ('\\' == *p) { + *p = '/'; + } +#endif + + if (MKDIR(npath) == -1) { + if (errno != EEXIST) { return -1; + } + } } npath[len++] = *p; } @@ -279,7 +286,14 @@ int zip_entry_open(struct zip_t *zip, const char *entryname) { zip->entry.header_offset = zip->archive.m_archive_size; memset(zip->entry.header, 0, MZ_ZIP_LOCAL_DIR_HEADER_SIZE * sizeof(mz_uint8)); zip->entry.method = 0; + + // UNIX or APPLE +#if MZ_PLATFORM == 3 || MZ_PLATFORM == 19 + // regular file with rw-r--r-- persmissions + zip->entry.external_attr = (mz_uint32)(0100644) << 16; +#else zip->entry.external_attr = 0; +#endif num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pzip); @@ -660,7 +674,7 @@ ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, size_t bufsize) { } if (!mz_zip_reader_extract_to_mem_no_alloc(pzip, (mz_uint)zip->entry.index, - buf, bufsize, 0, NULL, 0)) { + buf, bufsize, 0, NULL, 0)) { return -1; } @@ -670,10 +684,7 @@ ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, size_t bufsize) { int zip_entry_fread(struct zip_t *zip, const char *filename) { mz_zip_archive *pzip = NULL; mz_uint idx; -#if defined(_MSC_VER) -#else mz_uint32 xattr = 0; -#endif mz_zip_archive_file_stat info; if (!zip) { @@ -875,12 +886,19 @@ int zip_extract(const char *zipname, const char *dir, goto out; } - if ((((info.m_version_made_by >> 8) == 3) || ((info.m_version_made_by >> 8) == 19)) // if zip is produced on Unix or macOS (3 and 19 from section 4.4.2.2 of zip standard) - && info.m_external_attr & (0x20 << 24)) { // and has sym link attribute (0x80 is file, 0x40 is directory) + if ((((info.m_version_made_by >> 8) == 3) || + ((info.m_version_made_by >> 8) == + 19)) // if zip is produced on Unix or macOS (3 and 19 from + // section 4.4.2.2 of zip standard) + && info.m_external_attr & + (0x20 << 24)) { // and has sym link attribute (0x80 is file, 0x40 + // is directory) #if defined(_WIN32) || defined(__WIN32__) || defined(_MSC_VER) || \ defined(__MINGW32__) -#else - if (info.m_uncomp_size > MAX_PATH || !mz_zip_reader_extract_to_mem_no_alloc(&zip_archive, i, symlink_to, MAX_PATH, 0, NULL, 0)) { +#else + if (info.m_uncomp_size > MAX_PATH || + !mz_zip_reader_extract_to_mem_no_alloc(&zip_archive, i, symlink_to, + MAX_PATH, 0, NULL, 0)) { goto out; } symlink_to[info.m_uncomp_size] = '\0'; diff --git a/contrib/zip/src/zip.h b/contrib/zip/src/zip.h index 5f39df50ad..a48d64d6de 100644 --- a/contrib/zip/src/zip.h +++ b/contrib/zip/src/zip.h @@ -20,241 +20,240 @@ extern "C" { #endif #if !defined(_SSIZE_T_DEFINED) && !defined(_SSIZE_T_DEFINED_) && \ - !defined(_SSIZE_T) && !defined(_SSIZE_T_) && !defined(__ssize_t_defined) -#define _SSIZE_T + !defined(__DEFINED_ssize_t) && !defined(__ssize_t_defined) && \ + !defined(_SSIZE_T) && !defined(_SSIZE_T_) + // 64-bit Windows is the only mainstream platform // where sizeof(long) != sizeof(void*) #ifdef _WIN64 -typedef long long ssize_t; /* byte count or error */ +typedef long long ssize_t; /* byte count or error */ #else -typedef long ssize_t; /* byte count or error */ +typedef long ssize_t; /* byte count or error */ #endif + +#define _SSIZE_T_DEFINED +#define _SSIZE_T_DEFINED_ +#define __DEFINED_ssize_t +#define __ssize_t_defined +#define _SSIZE_T +#define _SSIZE_T_ + #endif #ifndef MAX_PATH #define MAX_PATH 32767 /* # chars in a path name including NULL */ #endif +/** + * @mainpage + * + * Documenation for @ref zip. + */ + +/** + * @addtogroup zip + * @{ + */ + +/** + * Default zip compression level. + */ + #define ZIP_DEFAULT_COMPRESSION_LEVEL 6 -/* - This data structure is used throughout the library to represent zip archive - - forward declaration. -*/ +/** + * @struct zip_t + * + * This data structure is used throughout the library to represent zip archive - + * forward declaration. + */ struct zip_t; -/* - Opens zip archive with compression level using the given mode. - - Args: - zipname: zip archive file name. - level: compression level (0-9 are the standard zlib-style levels). - mode: file access mode. - 'r': opens a file for reading/extracting (the file must exists). - 'w': creates an empty file for writing. - 'a': appends to an existing archive. - - Returns: - The zip archive handler or NULL on error -*/ +/** + * Opens zip archive with compression level using the given mode. + * + * @param zipname zip archive file name. + * @param level compression level (0-9 are the standard zlib-style levels). + * @param mode file access mode. + * - 'r': opens a file for reading/extracting (the file must exists). + * - 'w': creates an empty file for writing. + * - 'a': appends to an existing archive. + * + * @return the zip archive handler or NULL on error + */ extern struct zip_t *zip_open(const char *zipname, int level, char mode); -/* - Closes the zip archive, releases resources - always finalize. - - Args: - zip: zip archive handler. -*/ +/** + * Closes the zip archive, releases resources - always finalize. + * + * @param zip zip archive handler. + */ extern void zip_close(struct zip_t *zip); -/* - Opens an entry by name in the zip archive. - For zip archive opened in 'w' or 'a' mode the function will append - a new entry. In readonly mode the function tries to locate the entry - in global dictionary. - - Args: - zip: zip archive handler. - entryname: an entry name in local dictionary. - - Returns: - The return code - 0 on success, negative number (< 0) on error. -*/ +/** + * Opens an entry by name in the zip archive. + * + * For zip archive opened in 'w' or 'a' mode the function will append + * a new entry. In readonly mode the function tries to locate the entry + * in global dictionary. + * + * @param zip zip archive handler. + * @param entryname an entry name in local dictionary. + * + * @return the return code - 0 on success, negative number (< 0) on error. + */ extern int zip_entry_open(struct zip_t *zip, const char *entryname); -/* - Opens a new entry by index in the zip archive. - This function is only valid if zip archive was opened in 'r' (readonly) mode. - - Args: - zip: zip archive handler. - index: index in local dictionary. - - Returns: - The return code - 0 on success, negative number (< 0) on error. -*/ +/** + * Opens a new entry by index in the zip archive. + * + * This function is only valid if zip archive was opened in 'r' (readonly) mode. + * + * @param zip zip archive handler. + * @param index index in local dictionary. + * + * @return the return code - 0 on success, negative number (< 0) on error. + */ extern int zip_entry_openbyindex(struct zip_t *zip, int index); -/* - Closes a zip entry, flushes buffer and releases resources. - - Args: - zip: zip archive handler. - - Returns: - The return code - 0 on success, negative number (< 0) on error. -*/ +/** + * Closes a zip entry, flushes buffer and releases resources. + * + * @param zip zip archive handler. + * + * @return the return code - 0 on success, negative number (< 0) on error. + */ extern int zip_entry_close(struct zip_t *zip); -/* - Returns a local name of the current zip entry. - The main difference between user's entry name and local entry name - is optional relative path. - Following .ZIP File Format Specification - the path stored MUST not contain - a drive or device letter, or a leading slash. - All slashes MUST be forward slashes '/' as opposed to backwards slashes '\' - for compatibility with Amiga and UNIX file systems etc. - - Args: - zip: zip archive handler. - - Returns: - The pointer to the current zip entry name, or NULL on error. -*/ +/** + * Returns a local name of the current zip entry. + * + * The main difference between user's entry name and local entry name + * is optional relative path. + * Following .ZIP File Format Specification - the path stored MUST not contain + * a drive or device letter, or a leading slash. + * All slashes MUST be forward slashes '/' as opposed to backwards slashes '\' + * for compatibility with Amiga and UNIX file systems etc. + * + * @param zip: zip archive handler. + * + * @return the pointer to the current zip entry name, or NULL on error. + */ extern const char *zip_entry_name(struct zip_t *zip); -/* - Returns an index of the current zip entry. - - Args: - zip: zip archive handler. - - Returns: - The index on success, negative number (< 0) on error. -*/ +/** + * Returns an index of the current zip entry. + * + * @param zip zip archive handler. + * + * @return the index on success, negative number (< 0) on error. + */ extern int zip_entry_index(struct zip_t *zip); -/* - Determines if the current zip entry is a directory entry. - - Args: - zip: zip archive handler. - - Returns: - The return code - 1 (true), 0 (false), negative number (< 0) on error. -*/ +/** + * Determines if the current zip entry is a directory entry. + * + * @param zip zip archive handler. + * + * @return the return code - 1 (true), 0 (false), negative number (< 0) on + * error. + */ extern int zip_entry_isdir(struct zip_t *zip); -/* - Returns an uncompressed size of the current zip entry. - - Args: - zip: zip archive handler. - - Returns: - The uncompressed size in bytes. -*/ +/** + * Returns an uncompressed size of the current zip entry. + * + * @param zip zip archive handler. + * + * @return the uncompressed size in bytes. + */ extern unsigned long long zip_entry_size(struct zip_t *zip); -/* - Returns CRC-32 checksum of the current zip entry. - - Args: - zip: zip archive handler. - - Returns: - The CRC-32 checksum. -*/ +/** + * Returns CRC-32 checksum of the current zip entry. + * + * @param zip zip archive handler. + * + * @return the CRC-32 checksum. + */ extern unsigned int zip_entry_crc32(struct zip_t *zip); -/* - Compresses an input buffer for the current zip entry. - - Args: - zip: zip archive handler. - buf: input buffer. - bufsize: input buffer size (in bytes). - - Returns: - The return code - 0 on success, negative number (< 0) on error. -*/ +/** + * Compresses an input buffer for the current zip entry. + * + * @param zip zip archive handler. + * @param buf input buffer. + * @param bufsize input buffer size (in bytes). + * + * @return the return code - 0 on success, negative number (< 0) on error. + */ extern int zip_entry_write(struct zip_t *zip, const void *buf, size_t bufsize); -/* - Compresses a file for the current zip entry. - - Args: - zip: zip archive handler. - filename: input file. - - Returns: - The return code - 0 on success, negative number (< 0) on error. -*/ +/** + * Compresses a file for the current zip entry. + * + * @param zip zip archive handler. + * @param filename input file. + * + * @return the return code - 0 on success, negative number (< 0) on error. + */ extern int zip_entry_fwrite(struct zip_t *zip, const char *filename); -/* - Extracts the current zip entry into output buffer. - The function allocates sufficient memory for a output buffer. - - Args: - zip: zip archive handler. - buf: output buffer. - bufsize: output buffer size (in bytes). - - Note: - - remember to release memory allocated for a output buffer. - - for large entries, please take a look at zip_entry_extract function. - - Returns: - The return code - the number of bytes actually read on success. - Otherwise a -1 on error. -*/ +/** + * Extracts the current zip entry into output buffer. + * + * The function allocates sufficient memory for a output buffer. + * + * @param zip zip archive handler. + * @param buf output buffer. + * @param bufsize output buffer size (in bytes). + * + * @note remember to release memory allocated for a output buffer. + * for large entries, please take a look at zip_entry_extract function. + * + * @return the return code - the number of bytes actually read on success. + * Otherwise a -1 on error. + */ extern ssize_t zip_entry_read(struct zip_t *zip, void **buf, size_t *bufsize); -/* - Extracts the current zip entry into a memory buffer using no memory - allocation. - - Args: - zip: zip archive handler. - buf: preallocated output buffer. - bufsize: output buffer size (in bytes). - - Note: - - ensure supplied output buffer is large enough. - - zip_entry_size function (returns uncompressed size for the current entry) - can be handy to estimate how big buffer is needed. - - for large entries, please take a look at zip_entry_extract function. - - Returns: - The return code - the number of bytes actually read on success. - Otherwise a -1 on error (e.g. bufsize is not large enough). -*/ -extern ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, size_t bufsize); - -/* - Extracts the current zip entry into output file. - - Args: - zip: zip archive handler. - filename: output file. - - Returns: - The return code - 0 on success, negative number (< 0) on error. -*/ +/** + * Extracts the current zip entry into a memory buffer using no memory + * allocation. + * + * @param zip zip archive handler. + * @param buf preallocated output buffer. + * @param bufsize output buffer size (in bytes). + * + * @note ensure supplied output buffer is large enough. + * zip_entry_size function (returns uncompressed size for the current + * entry) can be handy to estimate how big buffer is needed. for large + * entries, please take a look at zip_entry_extract function. + * + * @return the return code - the number of bytes actually read on success. + * Otherwise a -1 on error (e.g. bufsize is not large enough). + */ +extern ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, + size_t bufsize); + +/** + * Extracts the current zip entry into output file. + * + * @param zip zip archive handler. + * @param filename output file. + * + * @return the return code - 0 on success, negative number (< 0) on error. + */ extern int zip_entry_fread(struct zip_t *zip, const char *filename); -/* - Extracts the current zip entry using a callback function (on_extract). - - Args: - zip: zip archive handler. - on_extract: callback function. - arg: opaque pointer (optional argument, - which you can pass to the on_extract callback) - - Returns: - The return code - 0 on success, negative number (< 0) on error. +/** + * Extracts the current zip entry using a callback function (on_extract). + * + * @param zip zip archive handler. + * @param on_extract callback function. + * @param arg opaque pointer (optional argument, which you can pass to the + * on_extract callback) + * + * @return the return code - 0 on success, negative number (< 0) on error. */ extern int zip_entry_extract(struct zip_t *zip, @@ -262,53 +261,49 @@ zip_entry_extract(struct zip_t *zip, const void *data, size_t size), void *arg); -/* - Returns the number of all entries (files and directories) in the zip archive. - - Args: - zip: zip archive handler. - - Returns: - The return code - the number of entries on success, - negative number (< 0) on error. -*/ +/** + * Returns the number of all entries (files and directories) in the zip archive. + * + * @param zip zip archive handler. + * + * @return the return code - the number of entries on success, negative number + * (< 0) on error. + */ extern int zip_total_entries(struct zip_t *zip); -/* - Creates a new archive and puts files into a single zip archive. - - Args: - zipname: zip archive file. - filenames: input files. - len: number of input files. - - Returns: - The return code - 0 on success, negative number (< 0) on error. -*/ +/** + * Creates a new archive and puts files into a single zip archive. + * + * @param zipname zip archive file. + * @param filenames input files. + * @param len: number of input files. + * + * @return the return code - 0 on success, negative number (< 0) on error. + */ extern int zip_create(const char *zipname, const char *filenames[], size_t len); -/* - Extracts a zip archive file into directory. - - If on_extract_entry is not NULL, the callback will be called after - successfully extracted each zip entry. - Returning a negative value from the callback will cause abort and return an - error. The last argument (void *arg) is optional, which you can use to pass - data to the on_extract_entry callback. - - Args: - zipname: zip archive file. - dir: output directory. - on_extract_entry: on extract callback. - arg: opaque pointer. - - Returns: - The return code - 0 on success, negative number (< 0) on error. -*/ +/** + * Extracts a zip archive file into directory. + * + * If on_extract_entry is not NULL, the callback will be called after + * successfully extracted each zip entry. + * Returning a negative value from the callback will cause abort and return an + * error. The last argument (void *arg) is optional, which you can use to pass + * data to the on_extract_entry callback. + * + * @param zipname zip archive file. + * @param dir output directory. + * @param on_extract_entry on extract callback. + * @param arg opaque pointer. + * + * @return the return code - 0 on success, negative number (< 0) on error. + */ extern int zip_extract(const char *zipname, const char *dir, int (*on_extract_entry)(const char *filename, void *arg), void *arg); +/** @} */ + #ifdef __cplusplus } #endif diff --git a/contrib/zip/test/CMakeLists.txt b/contrib/zip/test/CMakeLists.txt index 9b2a8db106..cc060b00fe 100644 --- a/contrib/zip/test/CMakeLists.txt +++ b/contrib/zip/test/CMakeLists.txt @@ -1,19 +1,16 @@ cmake_minimum_required(VERSION 2.8) -if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") - if(ENABLE_COVERAGE) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g ") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") - endif() -endif () - # test -include_directories(../src) -add_executable(test.exe test.c ../src/zip.c) -add_executable(test_miniz.exe test_miniz.c) +set(test_out test.out) +set(test_miniz_out test_miniz.out) + +add_executable(${test_out} test.c) +target_link_libraries(${test_out} zip) +add_executable(${test_miniz_out} test_miniz.c) +target_link_libraries(${test_miniz_out} zip) + +add_test(NAME ${test_out} COMMAND ${test_out}) +add_test(NAME ${test_miniz_out} COMMAND ${test_miniz_out}) -add_test(NAME test COMMAND test.exe) -add_test(NAME test_miniz COMMAND test_miniz.exe) +set(test_out ${test_out} PARENT_SCOPE) +set(test_miniz_out ${test_miniz_out} PARENT_SCOPE) diff --git a/contrib/zip/test/test.c b/contrib/zip/test/test.c index 454430533a..a9b2ddab1e 100644 --- a/contrib/zip/test/test.c +++ b/contrib/zip/test/test.c @@ -29,6 +29,8 @@ #define XFILE "7.txt\0" #define XMODE 0100777 +#define UNIXMODE 0100644 + #define UNUSED(x) (void)x static int total_entries = 0; @@ -102,7 +104,8 @@ static void test_read(void) { assert(0 == zip_entry_close(zip)); free(buf); buf = NULL; - + bufsize = 0; + assert(0 == zip_entry_open(zip, "test/test-2.txt")); assert(strlen(TESTDATA2) == zip_entry_size(zip)); assert(CRC32DATA2 == zip_entry_crc32(zip)); @@ -131,7 +134,8 @@ static void test_read(void) { assert(0 == zip_entry_close(zip)); free(buf); buf = NULL; - + bufsize = 0; + buftmp = strlen(TESTDATA1); buf = calloc(buftmp, sizeof(char)); assert(0 == zip_entry_open(zip, "test/test-1.txt")); @@ -433,6 +437,35 @@ static void test_mtime(void) { remove(ZIPNAME); } +static void test_unix_permissions(void) { +#if defined(_WIN64) || defined(_WIN32) || defined(__WIN32__) +#else + // UNIX or APPLE + struct MZ_FILE_STAT_STRUCT file_stats; + + remove(ZIPNAME); + + struct zip_t *zip = zip_open(ZIPNAME, ZIP_DEFAULT_COMPRESSION_LEVEL, 'w'); + assert(zip != NULL); + + assert(0 == zip_entry_open(zip, RFILE)); + assert(0 == zip_entry_write(zip, TESTDATA1, strlen(TESTDATA1))); + assert(0 == zip_entry_close(zip)); + + zip_close(zip); + + remove(RFILE); + + assert(0 == zip_extract(ZIPNAME, ".", NULL, NULL)); + + assert(0 == MZ_FILE_STAT(RFILE, &file_stats)); + assert(UNIXMODE == file_stats.st_mode); + + remove(RFILE); + remove(ZIPNAME); +#endif +} + int main(int argc, char *argv[]) { UNUSED(argc); UNUSED(argv); @@ -453,6 +486,7 @@ int main(int argc, char *argv[]) { test_write_permissions(); test_exe_permissions(); test_mtime(); + test_unix_permissions(); remove(ZIPNAME); return 0; diff --git a/contrib/zip/test/test_miniz.c b/contrib/zip/test/test_miniz.c index ebc0564dc3..babcaecdb6 100644 --- a/contrib/zip/test/test_miniz.c +++ b/contrib/zip/test/test_miniz.c @@ -23,16 +23,39 @@ int main(int argc, char *argv[]) { uint step = 0; int cmp_status; uLong src_len = (uLong)strlen(s_pStr); - uLong cmp_len = compressBound(src_len); uLong uncomp_len = src_len; + uLong cmp_len; uint8 *pCmp, *pUncomp; + size_t sz; uint total_succeeded = 0; (void)argc, (void)argv; printf("miniz.c version: %s\n", MZ_VERSION); do { + pCmp = (uint8 *)tdefl_compress_mem_to_heap(s_pStr, src_len, &cmp_len, 0); + if (!pCmp) { + printf("tdefl_compress_mem_to_heap failed\n"); + return EXIT_FAILURE; + } + if (src_len <= cmp_len) { + printf("tdefl_compress_mem_to_heap failed: from %u to %u bytes\n", + (mz_uint32)uncomp_len, (mz_uint32)cmp_len); + free(pCmp); + return EXIT_FAILURE; + } + + sz = tdefl_compress_mem_to_mem(pCmp, cmp_len, s_pStr, src_len, 0); + if (sz != cmp_len) { + printf("tdefl_compress_mem_to_mem failed: expected %u, got %u\n", + (mz_uint32)cmp_len, (mz_uint32)sz); + free(pCmp); + return EXIT_FAILURE; + } + // Allocate buffers to hold compressed and uncompressed data. + free(pCmp); + cmp_len = compressBound(src_len); pCmp = (mz_uint8 *)malloc((size_t)cmp_len); pUncomp = (mz_uint8 *)malloc((size_t)src_len); if ((!pCmp) || (!pUncomp)) { ================================================ FILE: package/assimp/0003-closes-2954-upgrade-to-latest-greatest.patch ================================================ From bb3db0ebaffc6b76de256e597ec1d1e4d2a6663f Mon Sep 17 00:00:00 2001 From: kimkulling Date: Mon, 9 Mar 2020 10:51:26 +0100 Subject: [PATCH] closes https://github.com/assimp/assimp/issues/2954: upgrade to latest greatest. [Retrieved from: https://github.com/assimp/assimp/commit/bb3db0ebaffc6b76de256e597ec1d1e4d2a6663f] Signed-off-by: Fabrice Fontaine --- contrib/zip/CMakeLists.txt | 8 ++---- contrib/zip/README.md | 51 +++++++++++++++++++++++++++++++-- contrib/zip/src/zip.c | 17 ++++++++++- contrib/zip/src/zip.h | 13 ++++++++- contrib/zip/test/CMakeLists.txt | 5 ---- contrib/zip/test/test.c | 4 ++- 6 files changed, 81 insertions(+), 17 deletions(-) diff --git a/contrib/zip/CMakeLists.txt b/contrib/zip/CMakeLists.txt index 77916d2e14..f194649ede 100644 --- a/contrib/zip/CMakeLists.txt +++ b/contrib/zip/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.0) project(zip LANGUAGES C - VERSION "0.1.15") + VERSION "0.1.18") set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) option(CMAKE_DISABLE_TESTING "Disable test creation" OFF) @@ -16,10 +16,6 @@ elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall -Wextra -Werror -pedantic") - if(ENABLE_COVERAGE) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") - endif() endif (MSVC) # zip @@ -35,7 +31,7 @@ if (NOT CMAKE_DISABLE_TESTING) enable_testing() add_subdirectory(test) find_package(Sanitizers) - add_sanitizers(${PROJECT_NAME} ${test_out} ${test_miniz_out}) + add_sanitizers(${PROJECT_NAME} ${test_out}) endif() #### diff --git a/contrib/zip/README.md b/contrib/zip/README.md index 14eb9a34c8..bdd0822b67 100644 --- a/contrib/zip/README.md +++ b/contrib/zip/README.md @@ -1,10 +1,8 @@ ### A portable (OSX/Linux/Windows), simple zip library written in C This is done by hacking awesome [miniz](https://code.google.com/p/miniz) library and layering functions on top of the miniz v1.15 API. -[![Windows](https://ci.appveyor.com/api/projects/status/bph8dr3jacgmjv32/branch/master?svg=true&label=windows)](https://ci.appveyor.com/project/kuba--/zip) -[![Linux](https://travis-ci.org/kuba--/zip.svg?branch=master&label=linux%2fosx)](https://travis-ci.org/kuba--/zip) +[![Build](https://github.com/kuba--/zip/workflows/build/badge.svg)](https://github.com/kuba--/zip/actions?query=workflow%3Abuild) [![Version](https://badge.fury.io/gh/kuba--%2Fzip.svg)](https://github.com/kuba--/zip/releases) -[![Codecov](https://codecov.io/gh/kuba--/zip/branch/master/graph/badge.svg)](https://codecov.io/gh/kuba--/zip) # The Idea @@ -213,6 +211,53 @@ func main() { } ``` +### Rust (ffi) +```rust +extern crate libc; +use std::ffi::CString; + +#[repr(C)] +pub struct Zip { + _private: [u8; 0], +} + +#[link(name = "zip")] +extern "C" { + fn zip_open(path: *const libc::c_char, level: libc::c_int, mode: libc::c_char) -> *mut Zip; + fn zip_close(zip: *mut Zip) -> libc::c_void; + + fn zip_entry_open(zip: *mut Zip, entryname: *const libc::c_char) -> libc::c_int; + fn zip_entry_close(zip: *mut Zip) -> libc::c_int; + fn zip_entry_write( + zip: *mut Zip, + buf: *const libc::c_void, + bufsize: libc::size_t, + ) -> libc::c_int; +} + +fn main() { + let path = CString::new("/tmp/test.zip").unwrap(); + let mode: libc::c_char = 'w' as libc::c_char; + + let entryname = CString::new("test.txt").unwrap(); + let content = "test content\0"; + + unsafe { + let zip: *mut Zip = zip_open(path.as_ptr(), 5, mode); + { + zip_entry_open(zip, entryname.as_ptr()); + { + let buf = content.as_ptr() as *const libc::c_void; + let bufsize = content.len() as libc::size_t; + zip_entry_write(zip, buf, bufsize); + } + zip_entry_close(zip); + } + zip_close(zip); + } +} +``` + ### Ruby (ffi) Install _ffi_ gem. ```shell diff --git a/contrib/zip/src/zip.c b/contrib/zip/src/zip.c index 1abcfd8fd1..3b2821e6a3 100644 --- a/contrib/zip/src/zip.c +++ b/contrib/zip/src/zip.c @@ -222,6 +222,20 @@ void zip_close(struct zip_t *zip) { } } +int zip_is64(struct zip_t *zip) { + if (!zip) { + // zip_t handler is not initialized + return -1; + } + + if (!zip->archive.m_pState) { + // zip state is not initialized + return -1; + } + + return (int)zip->archive.m_pState->m_zip64; +} + int zip_entry_open(struct zip_t *zip, const char *entryname) { size_t entrylen = 0; mz_zip_archive *pzip = NULL; @@ -794,7 +808,8 @@ int zip_create(const char *zipname, const char *filenames[], size_t len) { if (MZ_FILE_STAT(name, &file_stat) != 0) { // problem getting information - check errno - return -1; + status = -1; + break; } if ((file_stat.st_mode & 0200) == 0) { diff --git a/contrib/zip/src/zip.h b/contrib/zip/src/zip.h index a48d64d6de..cd3ab5cd00 100644 --- a/contrib/zip/src/zip.h +++ b/contrib/zip/src/zip.h @@ -21,7 +21,7 @@ extern "C" { #if !defined(_SSIZE_T_DEFINED) && !defined(_SSIZE_T_DEFINED_) && \ !defined(__DEFINED_ssize_t) && !defined(__ssize_t_defined) && \ - !defined(_SSIZE_T) && !defined(_SSIZE_T_) + !defined(_SSIZE_T) && !defined(_SSIZE_T_) && !defined(_SSIZE_T_DECLARED) // 64-bit Windows is the only mainstream platform // where sizeof(long) != sizeof(void*) @@ -37,6 +37,7 @@ typedef long ssize_t; /* byte count or error */ #define __ssize_t_defined #define _SSIZE_T #define _SSIZE_T_ +#define _SSIZE_T_DECLARED #endif @@ -90,6 +91,16 @@ extern struct zip_t *zip_open(const char *zipname, int level, char mode); */ extern void zip_close(struct zip_t *zip); +/** + * Determines if the archive has a zip64 end of central directory headers. + * + * @param zip zip archive handler. + * + * @return the return code - 1 (true), 0 (false), negative number (< 0) on + * error. + */ +extern int zip_is64(struct zip_t *zip); + /** * Opens an entry by name in the zip archive. * diff --git a/contrib/zip/test/CMakeLists.txt b/contrib/zip/test/CMakeLists.txt index cc060b00fe..1224115858 100644 --- a/contrib/zip/test/CMakeLists.txt +++ b/contrib/zip/test/CMakeLists.txt @@ -2,15 +2,10 @@ cmake_minimum_required(VERSION 2.8) # test set(test_out test.out) -set(test_miniz_out test_miniz.out) add_executable(${test_out} test.c) target_link_libraries(${test_out} zip) -add_executable(${test_miniz_out} test_miniz.c) -target_link_libraries(${test_miniz_out} zip) add_test(NAME ${test_out} COMMAND ${test_out}) -add_test(NAME ${test_miniz_out} COMMAND ${test_miniz_out}) set(test_out ${test_out} PARENT_SCOPE) -set(test_miniz_out ${test_miniz_out} PARENT_SCOPE) diff --git a/contrib/zip/test/test.c b/contrib/zip/test/test.c index a9b2ddab1e..9cc2248ac0 100644 --- a/contrib/zip/test/test.c +++ b/contrib/zip/test/test.c @@ -47,7 +47,7 @@ static void test_write(void) { assert(CRC32DATA1 == zip_entry_crc32(zip)); ++total_entries; assert(0 == zip_entry_close(zip)); - + assert(0 == zip_is64(zip)); zip_close(zip); } @@ -92,6 +92,7 @@ static void test_read(void) { size_t buftmp; struct zip_t *zip = zip_open(ZIPNAME, 0, 'r'); assert(zip != NULL); + assert(0 == zip_is64(zip)); assert(0 == zip_entry_open(zip, "test\\test-1.txt")); assert(strlen(TESTDATA1) == zip_entry_size(zip)); @@ -310,6 +311,7 @@ static void test_fwrite(void) { assert(0 == zip_entry_open(zip, WFILE)); assert(0 == zip_entry_fwrite(zip, WFILE)); assert(0 == zip_entry_close(zip)); + assert(0 == zip_is64(zip)); zip_close(zip); remove(WFILE); ================================================ FILE: package/assimp/Config.in ================================================ config BR2_PACKAGE_ASSIMP bool "assimp" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_PACKAGE_LIBZLIB help Open Asset Import Library (assimp) is a portable Open Source library to import various well-known 3D model formats in a uniform manner. The most recent version also knows how to export 3d files and is therefore suitable as a general-purpose 3D model converter. http://www.assimp.org comment "assimp needs a toolchain w/ C++, wchar" depends on BR2_PACKAGE_LIBZLIB depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR comment "assimp needs libzlib" depends on !BR2_PACKAGE_LIBZLIB ================================================ FILE: package/assimp/assimp.hash ================================================ # Locally calculated sha256 11310ec1f2ad2cd46b95ba88faca8f7aaa1efe9aa12605c55e3de2b977b3dbfc assimp-5.0.1.tar.gz sha256 a26ccc3dbf2f58ea99c100945a8a126fa0f9f4d7fd2b49aa8bdb8e09355864d8 LICENSE ================================================ FILE: package/assimp/assimp.mk ================================================ ################################################################################ # # assimp # ################################################################################ ASSIMP_VERSION = 5.0.1 ASSIMP_SITE = $(call github,assimp,assimp,v$(ASSIMP_VERSION)) ASSIMP_LICENSE = BSD-3-Clause ASSIMP_LICENSE_FILES = LICENSE ASSIMP_DEPENDENCIES = zlib ASSIMP_INSTALL_STAGING = YES # relocation truncated to fit: R_68K_GOT16O. We also need to disable # optimizations to not run into "Error: value -43420 out of range" # assembler issues. ifeq ($(BR2_m68k),y) ASSIMP_CXXFLAGS += -mxgot -O0 endif # just like m68k coldfire, mips64 also has some limitations on the GOT # size for large libraries, which can be overcome by passing # -mxgot. Solves "relocation truncated to fit: R_MIPS_CALL16" issues. ifeq ($(BR2_mips64)$(BR2_mips64el),y) ASSIMP_CXXFLAGS += -mxgot endif # workaround SuperH compiler failure when static linking (i.e -fPIC is # not passed) in gcc versions 5.x or older. The -Os optimization level # causes a "unable to find a register to spill in class # 'GENERAL_REGS'" error. -O2 works fine. ifeq ($(BR2_sh):$(BR2_STATIC_LIBS):$(BR2_TOOLCHAIN_GCC_AT_LEAST_6),y:y:) ASSIMP_CXXFLAGS += -O2 endif ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) ASSIMP_CXXFLAGS += -O0 endif ASSIMP_CONF_OPTS += -DASSIMP_BUILD_TESTS=OFF \ -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) $(ASSIMP_CXXFLAGS)" $(eval $(cmake-package)) ================================================ FILE: package/asterisk/0001-sounds-do-not-download-and-check-sha1s.patch ================================================ From 3e8a9e9a1c7eae515eb628778c3c8a04338b3bb3 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Tue, 27 Dec 2016 11:21:09 +0100 Subject: [PATCH] sounds: do not download and check sha1s To validate the sound archives, the corresponding sha1s are also downloaded from the same location, and that download is done at install time. However, that poses at least two problems: - in Buildroot, we already have validated the downloads with the sha1s anyway, and trying to download anything at install time is not always possible (e.g. for off-line builds); - since the download scheme is not secured (plain http), a man-in-the-middle for the sounds will also be able to MITM the download of the sha1s, so there is absolutely no additional safety in doing so. So we just do without the sha1 download and checks. Signed-off-by: "Yann E. MORIN" --- sounds/Makefile | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/sounds/Makefile b/sounds/Makefile index 84d0f45..7a80d56 100644 --- a/sounds/Makefile +++ b/sounds/Makefile @@ -100,17 +100,7 @@ ifneq ($(SOUNDS_CACHE_DIR),) if test ! -f "$$(SOUNDS_CACHE_DIR)/$$@"; then \ (cd "$$(SOUNDS_CACHE_DIR)"; $$(DOWNLOAD) $$(SOUNDS_URL)/$$@); \ fi; \ - if test ! -f "$$(SOUNDS_CACHE_DIR)/$$@.sha1"; then \ - (cd "$$(SOUNDS_CACHE_DIR)"; $$(DOWNLOAD) $$(SOUNDS_URL)/$$@.sha1); \ - fi; \ $$(LN) -sf "$$(SOUNDS_CACHE_DIR)/$$@" .; \ - $$(LN) -sf "$$(SOUNDS_CACHE_DIR)/$$@.sha1" .; \ - $$(SHA1SUM) -c --status $$@.sha1 || \ - ( \ - rm -f "$$(SOUNDS_CACHE_DIR)/$$@" "$$(SOUNDS_CACHE_DIR)/$$@.sha1" $$@ $$@.sha1; \ - echo "Bad checksum: $$@" 1>&2; \ - exit 1; \ - ) || exit 1; \ fi else $(CMD_PREFIX) \ -- 2.7.4 ================================================ FILE: package/asterisk/0002-configure-fix-detection-of-libcrypt.patch ================================================ From 8996503f6c55e55f326ab11c18278954ad7abaf3 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Tue, 27 Dec 2016 11:21:57 +0100 Subject: [PATCH] configure: fix detection of libcrypt The crypt() function is searched in two locations: -lcrypt and the standard C library. The result of the former is stored in the LIBCRYPT 'scheme' while that of the latter is stored in the 'SYSCRYPT' scheme. However, the check for mandatory modules looks at the CRYPT 'scheme', and thus concludes that crypt is missing when it was successfully found. Fix that by also storing the result of either check in the 'CRYPT' scheme. Signed-off-by: "Yann E. MORIN" --- configure | 2 ++ configure.ac | 2 ++ 2 files changed, 4 insertions(+) diff --git a/configure.ac b/configure.ac index 121dd93..d459ff5 100644 --- a/configure.ac +++ b/configure.ac @@ -2406,10 +2406,12 @@ AC_CHECK_FUNC([crypt], [SYSCRYPT=true], [SYSCRYPT=""]) if test "x$LIBCRYPT_LIB" != "x" ; then CRYPT_LIB="$LIBCRYPT_LIB" CRYPT_INCLUDE="$LIBCRYPT_INCLUDE" + PBX_CRYPT=1 AC_DEFINE([HAVE_CRYPT], [1], [Define to 1 if you have the 'crypt' function.]) elif test "x$SYSCRYPT" != "x" ; then CRYPT_LIB="" CRYPT_INCLUDE="" + PBX_CRYPT=1 AC_DEFINE([HAVE_CRYPT], [1], [Define to 1 if you have the 'crypt' function.]) fi -- 2.7.4 ================================================ FILE: package/asterisk/0003-build-ensure-target-directory-for-modules-exists.patch ================================================ From 933b2554a40f932571bdbdbb5217cda3e35fd61f Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Mon, 27 Nov 2017 12:52:52 +0100 Subject: [PATCH] build: ensure target directory for modules exists Currently, in highly-parallel builds, it is possible that installing modules fails because the target directory does not exist yet. We fix that by instructing $(INSTALL) to create the destination directory first. Signed-off-by: "Yann E. MORIN" --- Makefile.moddir_rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.moddir_rules b/Makefile.moddir_rules index 59190bece9..b73153a9a5 100644 --- a/Makefile.moddir_rules +++ b/Makefile.moddir_rules @@ -110,7 +110,7 @@ clean:: install:: all @echo "Installing modules from `basename $(CURDIR)`..." - @for x in $(LOADABLE_MODS:%=%.so); do $(INSTALL) -m 755 $$x "$(DESTDIR)$(ASTMODDIR)" ; done + @for x in $(LOADABLE_MODS:%=%.so); do $(INSTALL) -D -m 755 $$x "$(DESTDIR)$(ASTMODDIR)" ; done ifneq ($(findstring :,$(XMLSTARLET)$(BASH)),:) @if [ -f .moduleinfo ] ; then \ declare -A DISABLED_MODS ;\ -- 2.11.0 ================================================ FILE: package/asterisk/0004-install-samples-need-the-data-files.patch ================================================ From 05680ea9899c2246c23d11860c2c8e10aa8f80c7 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Fri, 1 Dec 2017 11:08:16 +0100 Subject: [PATCH] install: samples need the data files When installing samples, "sample voicemail" is generated from the already-installed sound files. However, when doing the install and the samples at the same time in a parallel install, it is possible that the sound files are not already installed at the time we try to generate the voicemail data. Ensure the needed dependency. Signed-off-by: "Yann E. MORIN" --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f29c07f680..b58f707b61 100644 --- a/Makefile +++ b/Makefile @@ -779,7 +779,7 @@ adsi: $(INSTALL) -m 644 "$$x" "$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \ done -samples: adsi +samples: adsi datafiles @echo Installing other config files... $(call INSTALL_CONFIGS,samples,.sample) $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/voicemail/default/1234/INBOX" -- 2.11.0 ================================================ FILE: package/asterisk/0005-configure-fix-detection-of-re-entrant-resolver-funct.patch ================================================ From 9b4070944578336506cd0a76de6f733c72d0ca74 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sat, 13 Oct 2018 11:11:15 +0200 Subject: [PATCH] configure: fix detection of re-entrant resolver functions Fixes https://issues.asterisk.org/jira/browse/ASTERISK-21795 uClibc does not provide res_nsearch: asterisk-16.0.0/main/dns.c:506: undefined reference to `res_nsearch' Patch coded by Yann E. MORIN: http://lists.busybox.net/pipermail/buildroot/2018-October/232630.html Signed-off-by: Bernd Kuhls --- configure.ac | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index dd0c8edd13..ee1ca9ceb6 100644 --- a/configure.ac +++ b/configure.ac @@ -1388,7 +1388,11 @@ AC_LINK_IFELSE( #include #endif #include ], - [int foo = res_ninit(NULL);])], + [ + int foo; + foo = res_ninit(NULL); + foo = res_nsearch(NULL, NULL, 0, 0, NULL, 0); + ])], AC_MSG_RESULT(yes) AC_DEFINE([HAVE_RES_NINIT], 1, [Define to 1 if your system has the re-entrant resolver functions.]) AC_SEARCH_LIBS(res_9_ndestroy, resolv) -- 2.19.1 ================================================ FILE: package/asterisk/Config.in ================================================ config BR2_PACKAGE_ASTERISK bool "asterisk" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS # dlfcn.h depends on !BR2_TOOLCHAIN_USES_MUSL depends on BR2_USE_MMU # libedit depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR # libedit select BR2_PACKAGE_JANSSON select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBEDIT select BR2_PACKAGE_LIBILBC select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_SQLITE select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Asterisk is an open source framework for building communications applications. Asterisk turns an ordinary computer into a communications server. Asterisk powers IP PBX systems, VoIP gateways, conference servers and other custom solutions. It is used by small businesses, large businesses, call centers, carriers and government agencies, worldwide. Asterisk is free and open source. http://www.asterisk.org/ comment "asterisk needs a glibc or uClibc toolchain w/ C++, dynamic library, threads, wchar" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_USES_MUSL || !BR2_INSTALL_LIBSTDCPP \ || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_USE_WCHAR ================================================ FILE: package/asterisk/asterisk.hash ================================================ # Locally computed sha256 1ba86666072b903e24b5cfef3d6d607d0d090c0fd232429ed410496e8f93ac40 asterisk-16.21.1.tar.gz # sha1 from: http://downloads.asterisk.org/pub/telephony/sounds/releases # sha256 locally computed sha1 721c512feaea102700d5bdce952fdc0bb29dc640 asterisk-core-sounds-en-gsm-1.6.1.tar.gz sha256 d79c3d2044d41da8f363c447dfccc140be86b4fcc41b1ca5a60a80da52f24f2d asterisk-core-sounds-en-gsm-1.6.1.tar.gz sha1 f40fd6ea03dfe8d72ada2540b2288bfdc006381d asterisk-moh-opsound-wav-2.03.tar.gz sha256 449fb810d16502c3052fedf02f7e77b36206ac5a145f3dacf4177843a2fcb538 asterisk-moh-opsound-wav-2.03.tar.gz # License files, locally computed sha256 82af40ed7f49c08685360811993d9396320842f021df828801d733e8fdc0312f COPYING sha256 ac5571f00e558e3b7c9b3f13f421b874cc12cf4250c4f70094c71544cf486312 main/sha1.c sha256 6215e3ed73c3982a5c6701127d681ec0b9f1121ac78a28805bd93f93c3eb84c0 codecs/speex/speex_resampler.h sha256 ea69cc96ab8a779c180a362377caeada71926897d1b55b980f04d74ba5aaa388 utils/db1-ast/include/db.h ================================================ FILE: package/asterisk/asterisk.mk ================================================ ################################################################################ # # asterisk # ################################################################################ ASTERISK_VERSION = 16.21.1 # Use the github mirror: it's an official mirror maintained by Digium, and # provides tarballs, which the main Asterisk git tree (behind Gerrit) does not. ASTERISK_SITE = $(call github,asterisk,asterisk,$(ASTERISK_VERSION)) ASTERISK_SOUNDS_BASE_URL = http://downloads.asterisk.org/pub/telephony/sounds/releases ASTERISK_EXTRA_DOWNLOADS = \ $(ASTERISK_SOUNDS_BASE_URL)/asterisk-core-sounds-en-gsm-1.6.1.tar.gz \ $(ASTERISK_SOUNDS_BASE_URL)/asterisk-moh-opsound-wav-2.03.tar.gz ASTERISK_LICENSE = GPL-2.0, BSD-3-Clause (SHA1, resample), BSD-4-Clause (db1-ast) ASTERISK_LICENSE_FILES = \ COPYING \ main/sha1.c \ codecs/speex/speex_resampler.h \ utils/db1-ast/include/db.h ASTERISK_CPE_ID_VENDOR = asterisk ASTERISK_CPE_ID_PRODUCT = open_source ASTERISK_SELINUX_MODULES = asterisk # For patches 0002, 0003 and 0005 ASTERISK_AUTORECONF = YES ASTERISK_AUTORECONF_OPTS = -Iautoconf -Ithird-party -Ithird-party/pjproject -Ithird-party/jansson ASTERISK_DEPENDENCIES = \ host-asterisk \ jansson \ libcurl \ libedit \ libxml2 \ sqlite \ util-linux # Asterisk wants to run its menuselect tool (a highly tweaked derivative of # kconfig), but builds it using the target tools. So we build it in the host # variant (see below), and copy the full build tree of menuselect. define ASTERISK_COPY_MENUSELECT rm -rf $(@D)/menuselect cp -a $(HOST_ASTERISK_DIR)/menuselect $(@D)/menuselect endef ASTERISK_PRE_CONFIGURE_HOOKS += ASTERISK_COPY_MENUSELECT ASTERISK_CONF_OPTS = \ --disable-xmldoc \ --disable-internal-poll \ --disable-asteriskssl \ --disable-rpath \ --without-bfd \ --without-cap \ --without-cpg \ --without-curses \ --without-gtk2 \ --without-gmime \ --without-hoard \ --without-iconv \ --without-iksemel \ --without-imap \ --without-inotify \ --without-iodbc \ --without-isdnnet \ --without-jack \ --without-uriparser \ --without-kqueue \ --without-libedit \ --without-libxslt \ --without-lua \ --without-misdn \ --without-mysqlclient \ --without-nbs \ --without-neon29 \ --without-newt \ --without-openr2 \ --without-osptk \ --without-oss \ --without-postgres \ --without-pjproject \ --without-pjproject-bundled \ --without-popt \ --without-resample \ --without-sdl \ --without-SDL_image \ --without-sqlite \ --without-suppserv \ --without-tds \ --without-termcap \ --without-timerfd \ --without-tinfo \ --without-unbound \ --without-unixodbc \ --without-vpb \ --without-x11 \ --with-crypt \ --with-jansson \ --with-libcurl \ --with-ilbc \ --with-libxml2 \ --with-libedit="$(STAGING_DIR)/usr" \ --with-sqlite3="$(STAGING_DIR)/usr" \ --with-sounds-cache=$(ASTERISK_DL_DIR) # avcodec are from ffmpeg. There is virtually zero chance this could # even work; asterisk is looking for ffmpeg/avcodec.h which has not # been installed in this location since early 2007 (~10 years ago at # the time of this writing). ASTERISK_CONF_OPTS += --without-avcodec # asterisk is not compatible with freeswitch spandsp ASTERISK_CONF_OPTS += --without-spandsp ASTERISK_CONF_ENV = \ ac_cv_file_bridges_bridge_softmix_include_hrirs_h=true \ ac_cv_path_CONFIG_LIBXML2=$(STAGING_DIR)/usr/bin/xml2-config # Uses __atomic_fetch_add_4 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) ASTERISK_CONF_ENV += LIBS="-latomic" endif ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y) ASTERISK_CONF_OPTS += --with-execinfo else ASTERISK_CONF_OPTS += --without-execinfo endif ifeq ($(BR2_PACKAGE_LIBGSM),y) ASTERISK_DEPENDENCIES += libgsm ASTERISK_CONF_OPTS += --with-gsm else ASTERISK_CONF_OPTS += --without-gsm endif ifeq ($(BR2_PACKAGE_ALSA_LIB),y) ASTERISK_DEPENDENCIES += alsa-lib ASTERISK_CONF_OPTS += --with-asound else ASTERISK_CONF_OPTS += --without-asound endif ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS),y) ASTERISK_DEPENDENCIES += bluez5_utils ASTERISK_CONF_OPTS += --with-bluetooth else ASTERISK_CONF_OPTS += --without-bluetooth endif ifeq ($(BR2_PACKAGE_LIBICAL),y) ASTERISK_DEPENDENCIES += libical ASTERISK_CONF_OPTS += --with-ical else ASTERISK_CONF_OPTS += --without-ical endif ifeq ($(BR2_PACKAGE_OPENLDAP),y) ASTERISK_DEPENDENCIES += openldap ASTERISK_CONF_OPTS += --with-ldap else ASTERISK_CONF_OPTS += --without-ldap endif ifeq ($(BR2_PACKAGE_NEON),y) ASTERISK_DEPENDENCIES += neon ASTERISK_CONF_OPTS += --with-neon ASTERISK_CONF_ENV += \ ac_cv_path_CONFIG_NEON=$(STAGING_DIR)/usr/bin/neon-config else ASTERISK_CONF_OPTS += --without-neon endif ifeq ($(BR2_PACKAGE_NETSNMP),y) ASTERISK_DEPENDENCIES += netsnmp ASTERISK_CONF_OPTS += --with-netsnmp=$(STAGING_DIR)/usr else ASTERISK_CONF_OPTS += --without-netsnmp endif ifeq ($(BR2_PACKAGE_LIBOGG),y) ASTERISK_DEPENDENCIES += libogg ASTERISK_CONF_OPTS += --with-ogg else ASTERISK_CONF_OPTS += --without-ogg endif ifeq ($(BR2_PACKAGE_OPUS),y) ASTERISK_DEPENDENCIES += opus ASTERISK_CONF_OPTS += --with-opus else ASTERISK_CONF_OPTS += --without-opus endif ifeq ($(BR2_PACKAGE_PORTAUDIO),y) ASTERISK_DEPENDENCIES += portaudio ASTERISK_CONF_OPTS += --with-portaudio else ASTERISK_CONF_OPTS += --without-portaudio endif ifeq ($(BR2_PACKAGE_FREERADIUS_CLIENT),y) ASTERISK_DEPENDENCIES += freeradius-client ASTERISK_CONF_OPTS += --with-radius else ASTERISK_CONF_OPTS += --without-radius endif ifeq ($(BR2_PACKAGE_DAHDI_LINUX)$(BR2_PACKAGE_DAHDI_TOOLS),yy) ASTERISK_DEPENDENCIES += dahdi-linux dahdi-tools ASTERISK_CONF_OPTS += --with-dahdi --with-tonezone ifeq ($(BR2_PACKAGE_LIBPRI),y) ASTERISK_DEPENDENCIES += libpri ASTERISK_CONF_OPTS += --with-pri else ASTERISK_CONF_OPTS += --without-pri endif # PRI ifeq ($(BR2_PACKAGE_LIBSS7),y) ASTERISK_DEPENDENCIES += libss7 ASTERISK_CONF_OPTS += --with-ss7 else ASTERISK_CONF_OPTS += --without-ss7 endif # SS7 else ASTERISK_CONF_OPTS += \ --without-dahdi --without-tonezone \ --without-pri --without-ss7 endif # DAHDI ifeq ($(BR2_PACKAGE_OPENSSL),y) ASTERISK_DEPENDENCIES += openssl ASTERISK_CONF_OPTS += --with-ssl else ASTERISK_CONF_OPTS += --without-ssl endif ifeq ($(BR2_PACKAGE_SPEEX)$(BR2_PACKAGE_SPEEXDSP),yy) ASTERISK_DEPENDENCIES += speex ASTERISK_CONF_OPTS += --with-speex --with-speexdsp else ASTERISK_CONF_OPTS += --without-speex --without-speexdsp endif # asterisk needs an openssl-enabled libsrtp ifeq ($(BR2_PACKAGE_LIBSRTP)$(BR2_PACKAGE_OPENSSL)x$(BR2_STATIC_LIBS),yyx) ASTERISK_DEPENDENCIES += libsrtp ASTERISK_CONF_OPTS += --with-srtp else ASTERISK_CONF_OPTS += --without-srtp endif ifeq ($(BR2_PACKAGE_LIBVORBIS),y) ASTERISK_DEPENDENCIES += libvorbis ASTERISK_CONF_OPTS += --with-vorbis else ASTERISK_CONF_OPTS += --without-vorbis endif ifeq ($(BR2_PACKAGE_ZLIB),y) ASTERISK_DEPENDENCIES += zlib ASTERISK_CONF_OPTS += --with-z else ASTERISK_CONF_OPTS += --without-z endif ASTERISK_DIRS = \ ASTVARLIBDIR="/usr/lib/asterisk" \ ASTDATADIR="/usr/lib/asterisk" \ ASTKEYDIR="/usr/lib/asterisk" \ ASTDBDIR="/usr/lib/asterisk" ASTERISK_MAKE_OPTS = $(ASTERISK_DIRS) # Uses __atomic_fetch_add_4 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) ASTERISK_MAKE_OPTS += ASTLDFLAGS="-latomic" endif # Remove default -O3 optimization flag ASTERISK_MAKE_OPTS += OPTIMIZE="" ASTERISK_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_93847),y) ASTERISK_CFLAGS += -O0 endif ASTERISK_CONF_OPTS += CFLAGS="$(ASTERISK_CFLAGS)" # We want to install sample configuration files, too. ASTERISK_INSTALL_TARGET_OPTS = \ $(ASTERISK_DIRS) \ DESTDIR=$(TARGET_DIR) \ LDCONFIG=true \ install samples $(eval $(autotools-package)) #------------------------------------------------------------------------------- # This part deals with building the menuselect tool as a host package HOST_ASTERISK_DEPENDENCIES = host-pkgconf host-libxml2 host-ncurses HOST_ASTERISK_SUBDIR = menuselect HOST_ASTERISK_LICENSE = GPL-2.0 HOST_ASTERISK_LICENSE_FILES = COPYING # No need to autoreconf for the host variant, # so do not inherit the target setup. HOST_ASTERISK_AUTORECONF = NO HOST_ASTERISK_CONF_ENV = CONFIG_LIBXML2=$(HOST_DIR)/bin/xml2-config HOST_ASTERISK_CONF_OPTS = \ --without-newt \ --without-curses \ --with-ncurses=$(HOST_DIR) # Not an automake package, so does not inherit LDFLAGS et al. from # the configure run. HOST_ASTERISK_MAKE_ENV = $(HOST_CONFIGURE_OPTS) # Even though menuselect is an autotools package, it is not an automake # package and does not have an 'install' rule, as asterisk does expect # it to be in a sub-directory of its source tree. We do so by copying # the full menuselect build tree as a pre-configure hook in the target # variant. # However, the sanity checks on host packages are not run on menuselect. # But we still want to catch that menuselect has the proper rpath set, # for example, as it uses host libraries that we do build, like # host-libxml2. # So we do manually install the menuselect tool. define HOST_ASTERISK_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/menuselect/menuselect \ $(HOST_DIR)/bin/asterisk-menuselect endef $(eval $(host-autotools-package)) ================================================ FILE: package/at/0001-Makefile.in-replace-IROOT-by-DESTDIR.patch ================================================ From cbfd3296d7d0742d9e35b01ec9e433afe2c36c63 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Tue, 1 Dec 2009 20:57:45 +0100 Subject: [PATCH] Makefile.in: replace IROOT by DESTDIR This patch replaces IROOT by DESTDIR, which is the autotools standard variable. For backwards compatibilty IROOT overwrites the DESTDIR. Signed-off-by: Marc Kleine-Budde Signed-off-by: Vicente Olivert Riera [Vincent: tweak the patch for the new version] Signed-off-by: Giulio Benetti [Giulio: convert patch to git format and rebase to version 3.2.2] --- Makefile.in | 72 ++++++++++++++++++++++++++++------------------------- 1 file changed, 38 insertions(+), 34 deletions(-) diff --git a/Makefile.in b/Makefile.in index 3e8303c..a7197f2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -20,6 +20,10 @@ etcdir = @ETCDIR@ atjobdir = @ATJBD@ systemdsystemunitdir = @systemdsystemunitdir@ +ifdef IROOT +DESTDIR = $(DESTDIR) +endif + DAEMON_USERNAME = @DAEMON_USERNAME@ DAEMON_GROUPNAME= @DAEMON_GROUPNAME@ LOADAVG_MX = @LOADAVG_MX@ @@ -95,43 +99,43 @@ atrun: atrun.in $(CC) -c $(CFLAGS) $(DEFS) $*.c install: all - $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(etcdir) - $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(bindir) - $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(sbindir) - $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(atdatadir) - $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(docdir) - $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(atdocdir) - $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(IROOT)$(ATSPOOL_DIR) $(IROOT)$(ATJOB_DIR) - chmod 1770 $(IROOT)$(ATSPOOL_DIR) $(IROOT)$(ATJOB_DIR) - touch $(IROOT)$(LFILE) - chmod 600 $(IROOT)$(LFILE) - chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(IROOT)$(LFILE) - test -f $(IROOT)$(etcdir)/at.allow || test -f $(IROOT)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(IROOT)$(etcdir)/ - $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 at $(IROOT)$(bindir) - $(LN_S) -f at $(IROOT)$(bindir)/atq - $(LN_S) -f at $(IROOT)$(bindir)/atrm - $(INSTALL) -g root -o root -m 755 batch $(IROOT)$(bindir) - $(INSTALL) -g root -o root -m 755 batch-job $(IROOT)$(atdatadir) - $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man1dir) - $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man5dir) - $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man8dir) - $(INSTALL) -g root -o root -m 755 atd $(IROOT)$(sbindir) - $(INSTALL) -g root -o root -m 755 atrun $(IROOT)$(sbindir) - $(INSTALL) -g root -o root -m 644 at.1 $(IROOT)$(man1dir)/ - cd $(IROOT)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1 - $(INSTALL) -g root -o root -m 644 atd.8 $(IROOT)$(man8dir)/ + $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(etcdir) + $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(bindir) + $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(sbindir) + $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(atdatadir) + $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(docdir) + $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(atdocdir) + $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR) + chmod 1770 $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR) + touch $(DESTDIR)$(LFILE) + chmod 600 $(DESTDIR)$(LFILE) + chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(DESTDIR)$(LFILE) + test -f $(DESTDIR)$(etcdir)/at.allow || test -f $(DESTDIR)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(DESTDIR)$(etcdir)/ + $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 at $(DESTDIR)$(bindir) + $(LN_S) -f at $(DESTDIR)$(bindir)/atq + $(LN_S) -f at $(DESTDIR)$(bindir)/atrm + $(INSTALL) -g root -o root -m 755 batch $(DESTDIR)$(bindir) + $(INSTALL) -g root -o root -m 755 batch-job $(DESTDIR)$(atdatadir) + $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man1dir) + $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man5dir) + $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man8dir) + $(INSTALL) -g root -o root -m 755 atd $(DESTDIR)$(sbindir) + $(INSTALL) -g root -o root -m 755 atrun $(DESTDIR)$(sbindir) + $(INSTALL) -g root -o root -m 644 at.1 $(DESTDIR)$(man1dir)/ + cd $(DESTDIR)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1 + $(INSTALL) -g root -o root -m 644 atd.8 $(DESTDIR)$(man8dir)/ sed "s,\$${exec_prefix},$(exec_prefix),g" tmpman - $(INSTALL) -g root -o root -m 644 tmpman $(IROOT)$(man8dir)/atrun.8 + $(INSTALL) -g root -o root -m 644 tmpman $(DESTDIR)$(man8dir)/atrun.8 rm -f tmpman - $(INSTALL) -g root -o root -m 644 at.allow.5 $(IROOT)$(man5dir)/ - cd $(IROOT)$(man5dir) && $(LN_S) -f at.allow.5 at.deny.5 - $(INSTALL) -g root -o root -m 644 $(DOCS) $(IROOT)$(atdocdir) - rm -f $(IROOT)$(mandir)/cat1/at.1* $(IROOT)$(mandir)/cat1/batch.1* \ - $(IROOT)$(mandir)/cat1/atq.1* - rm -f $(IROOT)$(mandir)/cat1/atd.8* + $(INSTALL) -g root -o root -m 644 at.allow.5 $(DESTDIR)$(man5dir)/ + cd $(DESTDIR)$(man5dir) && $(LN_S) -f at.allow.5 at.deny.5 + $(INSTALL) -g root -o root -m 644 $(DOCS) $(DESTDIR)$(atdocdir) + rm -f $(DESTDIR)$(mandir)/cat1/at.1* $(DESTDIR)$(mandir)/cat1/batch.1* \ + $(DESTDIR)$(mandir)/cat1/atq.1* + rm -f $(DESTDIR)$(mandir)/cat1/atd.8* if test x"$(systemdsystemunitdir)" != xno; then \ - $(INSTALL) -o root -g root -m 755 -d $(IROOT)$(systemdsystemunitdir); \ - $(INSTALL) -o root -g root -m 644 atd.service $(IROOT)$(systemdsystemunitdir); \ + $(INSTALL) -o root -g root -m 755 -d $(DESTDIR)$(systemdsystemunitdir); \ + $(INSTALL) -o root -g root -m 644 atd.service $(DESTDIR)$(systemdsystemunitdir); \ fi dist: checkin $(DIST) $(LIST) Filelist.asc -- 2.25.1 ================================================ FILE: package/at/0002-Makefile.in-fix-make-install-for-non-root-don-t-stri.patch ================================================ From 71d9a23ab6a73ec1287acc683716481090095de0 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Fri, 23 Jul 2021 16:47:56 +0200 Subject: [PATCH] Makefile.in: fix make install for non-root, don't strip Buildroot will ensure all files are owned by root and stripped anyway (if needed) before the rootfs is created. Signed-off-by: Peter Korsgaard Signed-off-by: Vicente Olivert Riera [Vincent: tweak the patch for the new version] Signed-off-by: Giulio Benetti [Giulio: convert patch to git format and rebase to version 3.2.2] --- Makefile.in | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/Makefile.in b/Makefile.in index a7197f2..0b35a67 100644 --- a/Makefile.in +++ b/Makefile.in @@ -99,43 +99,42 @@ atrun: atrun.in $(CC) -c $(CFLAGS) $(DEFS) $*.c install: all - $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(etcdir) - $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(bindir) - $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(sbindir) - $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(atdatadir) - $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(docdir) - $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(atdocdir) - $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR) + $(INSTALL) -m 755 -d $(DESTDIR)$(etcdir) + $(INSTALL) -m 755 -d $(DESTDIR)$(bindir) + $(INSTALL) -m 755 -d $(DESTDIR)$(sbindir) + $(INSTALL) -m 755 -d $(DESTDIR)$(atdatadir) + $(INSTALL) -m 755 -d $(DESTDIR)$(docdir) + $(INSTALL) -m 755 -d $(DESTDIR)$(atdocdir) + $(INSTALL) -m 755 -d $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR) chmod 1770 $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR) touch $(DESTDIR)$(LFILE) chmod 600 $(DESTDIR)$(LFILE) - chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(DESTDIR)$(LFILE) - test -f $(DESTDIR)$(etcdir)/at.allow || test -f $(DESTDIR)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(DESTDIR)$(etcdir)/ - $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 at $(DESTDIR)$(bindir) + test -f $(DESTDIR)$(etcdir)/at.allow || test -f $(DESTDIR)$(etcdir)/at.deny || $(INSTALL) -m 640 at.deny $(DESTDIR)$(etcdir)/ + $(INSTALL) -m 6755 at $(DESTDIR)$(bindir) $(LN_S) -f at $(DESTDIR)$(bindir)/atq $(LN_S) -f at $(DESTDIR)$(bindir)/atrm - $(INSTALL) -g root -o root -m 755 batch $(DESTDIR)$(bindir) - $(INSTALL) -g root -o root -m 755 batch-job $(DESTDIR)$(atdatadir) - $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man1dir) - $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man5dir) - $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man8dir) - $(INSTALL) -g root -o root -m 755 atd $(DESTDIR)$(sbindir) - $(INSTALL) -g root -o root -m 755 atrun $(DESTDIR)$(sbindir) - $(INSTALL) -g root -o root -m 644 at.1 $(DESTDIR)$(man1dir)/ + $(INSTALL) -m 755 batch $(DESTDIR)$(bindir) + $(INSTALL) -m 755 batch-job $(DESTDIR)$(atdatadir) + $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir) + $(INSTALL) -d -m 755 $(DESTDIR)$(man5dir) + $(INSTALL) -d -m 755 $(DESTDIR)$(man8dir) + $(INSTALL) -m 755 atd $(DESTDIR)$(sbindir) + $(INSTALL) -m 755 atrun $(DESTDIR)$(sbindir) + $(INSTALL) -m 644 at.1 $(DESTDIR)$(man1dir)/ cd $(DESTDIR)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1 - $(INSTALL) -g root -o root -m 644 atd.8 $(DESTDIR)$(man8dir)/ + $(INSTALL) -m 644 atd.8 $(DESTDIR)$(man8dir)/ sed "s,\$${exec_prefix},$(exec_prefix),g" tmpman - $(INSTALL) -g root -o root -m 644 tmpman $(DESTDIR)$(man8dir)/atrun.8 + $(INSTALL) -m 644 tmpman $(DESTDIR)$(man8dir)/atrun.8 rm -f tmpman - $(INSTALL) -g root -o root -m 644 at.allow.5 $(DESTDIR)$(man5dir)/ + $(INSTALL) -m 644 at.allow.5 $(DESTDIR)$(man5dir)/ cd $(DESTDIR)$(man5dir) && $(LN_S) -f at.allow.5 at.deny.5 - $(INSTALL) -g root -o root -m 644 $(DOCS) $(DESTDIR)$(atdocdir) + $(INSTALL) -m 644 $(DOCS) $(DESTDIR)$(atdocdir) rm -f $(DESTDIR)$(mandir)/cat1/at.1* $(DESTDIR)$(mandir)/cat1/batch.1* \ $(DESTDIR)$(mandir)/cat1/atq.1* rm -f $(DESTDIR)$(mandir)/cat1/atd.8* if test x"$(systemdsystemunitdir)" != xno; then \ - $(INSTALL) -o root -g root -m 755 -d $(DESTDIR)$(systemdsystemunitdir); \ - $(INSTALL) -o root -g root -m 644 atd.service $(DESTDIR)$(systemdsystemunitdir); \ + $(INSTALL) -m 755 -d $(DESTDIR)$(systemdsystemunitdir); \ + $(INSTALL) -m 644 atd.service $(DESTDIR)$(systemdsystemunitdir); \ fi dist: checkin $(DIST) $(LIST) Filelist.asc -- 2.25.1 ================================================ FILE: package/at/0003-getloadavg-fix-getloadavg.c-compilation-revert-to-3..patch ================================================ From 4eda31cea9fb3c77fe2748a65960f24ffb42f9ff Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Fri, 23 Jul 2021 16:51:17 +0200 Subject: [PATCH] getloadavg: fix getloadavg.c compilation, revert to 3.1.10 version getloadavg.c shipped with 3.1.13 doesn't compile because it references headers not shipped. Fix it by simply reverting to the 3.1.10 version. Signed-off-by: Peter Korsgaard Signed-off-by: Giulio Benetti [Giulio: convert patch to git format] --- getloadavg.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/getloadavg.c b/getloadavg.c index cf5869f..23d18eb 100644 --- a/getloadavg.c +++ b/getloadavg.c @@ -66,11 +66,12 @@ Boston, MA 02110-1301 USA */ /* This should always be first. */ #ifdef HAVE_CONFIG_H -#include +#include "config.h" #endif -#include "lisp.h" -#include "sysfile.h" /* for encapsulated open, close, read, write */ +#include +#include +#include #ifndef HAVE_GETLOADAVG -- 2.25.1 ================================================ FILE: package/at/0004-Makefile-fix-parallel-build-failure.patch ================================================ From 3ace0b57e2aacb784c01a3c7694c6c92461937ff Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Thu, 20 Feb 2020 22:00:11 +0100 Subject: [PATCH] Makefile: fix parallel build failure At the moment parallel build fails due to 2 causes: 1) parsetime.l tries to include incomplete y.tab.h, since y.tab.h is the result of yacc -d parsetime.y 2) when compiling y.tab.c, y.tab.c itself is not complete, since it is the result of yacc -d parsetime.y So fix it by: 1) making parsetime.l to wait for y.tab.h to be created by yacc 2) waiting for y.tab.c and y.tab.h to be created before compile them Signed-off-by: Giulio Benetti --- Makefile.in | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile.in b/Makefile.in index 4c11913..57c3a0c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -83,6 +83,8 @@ y.tab.c y.tab.h: parsetime.y lex.yy.c: parsetime.l $(LEX) -i parsetime.l +parsetime.l: y.tab.h + atd.service: atd.service.in cat $< | sed -e 's![@]sbindir[@]!$(sbindir)!g' | sed -e 's![@]atjobdir[@]!$(atjobdir)!g' > $@ @@ -173,3 +175,4 @@ perm.o: perm.c config.h privs.h at.h posixtm.o: posixtm.c posixtm.h daemon.o: daemon.c config.h daemon.h privs.h getloadavg.o: getloadavg.c config.h getloadavg.h +y.tab.o: y.tab.c y.tab.h -- 2.20.1 ================================================ FILE: package/at/Config.in ================================================ config BR2_PACKAGE_AT bool "at" depends on BR2_USE_MMU help At and batch read shell commands from standard input and store them as jobs to be scheduled for execution in the future. at - run the job at a specified time batch - run the job when system load levels permit https://salsa.debian.org/debian/at ================================================ FILE: package/at/S99at ================================================ #!/bin/sh # # Starts at daemon # umask 077 start() { # Since /var/spool can be linked to /tmp (tmpfs) # /var/spool/cron/atjobs/.SEQ created could be not available # Check if not exists otherwise create it if [ ! -f /var/spool/cron/atjobs/.SEQ ]; then mkdir -p /var/spool/cron/atjobs/ touch /var/spool/cron/atjobs/.SEQ printf "atd: created missing .SEQ file (atjobs will be lost on reboot)\n" fi printf "Starting atd: " start-stop-daemon --start --quiet --make-pidfile --pidfile /var/run/atd.pid --background --exec /usr/sbin/atd -- -f echo "OK" } stop() { printf "Stopping atd: " start-stop-daemon --stop --quiet --pidfile /var/run/atd.pid echo "OK" } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/at/at.hash ================================================ # Locally calculated sha256 2211da14914fde1f9cc83592838fb6385a32fb11fcecb7816c77700df6559088 at_3.2.2.orig.tar.gz sha256 01dccc0975aa9ba1a9f83e7c5e04f16077353d3c72a0a759b8846ee7a5b2b616 Copyright sha256 c38aee9e3c8c4d5d594ff548a1be05453023016d6286931f6512db215ec1fd42 COPYING ================================================ FILE: package/at/at.mk ================================================ ################################################################################ # # at # ################################################################################ AT_VERSION = 3.2.2 AT_SOURCE = at_$(AT_VERSION).orig.tar.gz AT_SITE = http://software.calhariz.com/at AT_AUTORECONF = YES AT_DEPENDENCIES = $(if $(BR2_PACKAGE_FLEX),flex) host-bison host-flex AT_LICENSE = GPL-2.0+, GPL-3.0+, ISC AT_LICENSE_FILES = Copyright COPYING AT_CONF_OPTS = \ --with-jobdir=/var/spool/cron/atjobs \ --with-atspool=/var/spool/cron/atspool \ --with-daemon_username=root \ --with-daemon_groupname=root \ SENDMAIL=/usr/sbin/sendmail define AT_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/at/S99at $(TARGET_DIR)/etc/init.d/S99at endef $(eval $(autotools-package)) ================================================ FILE: package/at-spi2-atk/0001-meson-add-tests-option.patch ================================================ From 466d04a57b32417dbf2d5e818af1b7593af5f802 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 3 May 2020 10:29:36 +0200 Subject: [PATCH] meson: add tests option Add tests option to allow the user to build at-spi2-atk without tests, it is especially useful as one of the test requires libxml-2.0 Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.gnome.org/GNOME/at-spi2-atk/-/merge_requests/22] --- meson.build | 4 +++- meson_options.txt | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 9fce5d6..61bc93d 100644 --- a/meson.build +++ b/meson.build @@ -61,4 +61,6 @@ install_data('at-spi2-atk.desktop', subdir('droute') subdir('atk-adaptor') -subdir('tests') +if get_option('tests') + subdir('tests') +endif diff --git a/meson_options.txt b/meson_options.txt index 24c9228..a4abdc2 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -2,3 +2,7 @@ option('disable_p2p', description: 'Disable peer-to-peer DBus connections', type: 'boolean', value: false) +option('tests', + description: 'Whether to build tests', + type: 'boolean', + value: true) -- 2.26.2 ================================================ FILE: package/at-spi2-atk/Config.in ================================================ config BR2_PACKAGE_AT_SPI2_ATK bool "at-spi2-atk" depends on BR2_PACKAGE_XORG7 # at-spi2-core depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 depends on BR2_USE_WCHAR # glib2 select BR2_PACKAGE_ATK select BR2_PACKAGE_AT_SPI2_CORE select BR2_PACKAGE_LIBGLIB2 help The At-Spi2 Atk package contains a library that bridges ATK to At-Spi2 D-Bus service. https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/ comment "at-spi2-atk needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS comment "at-spi2-atk depends on X.org" depends on BR2_USE_MMU depends on !BR2_PACKAGE_XORG7 ================================================ FILE: package/at-spi2-atk/at-spi2-atk.hash ================================================ # From http://ftp.acc.umu.se/pub/gnome/sources/at-spi2-atk/2.34/at-spi2-atk-2.34.2.sha256sum sha256 901323cee0eef05c01ec4dee06c701aeeca81a314a7d60216fa363005e27f4f0 at-spi2-atk-2.34.2.tar.xz # locally calculated sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/at-spi2-atk/at-spi2-atk.mk ================================================ ################################################################################ # # at-spi2-atk # ################################################################################ AT_SPI2_ATK_VERSION_MAJOR = 2.34 AT_SPI2_ATK_VERSION = $(AT_SPI2_ATK_VERSION_MAJOR).2 AT_SPI2_ATK_SOURCE = at-spi2-atk-$(AT_SPI2_ATK_VERSION).tar.xz AT_SPI2_ATK_SITE = \ http://ftp.gnome.org/pub/gnome/sources/at-spi2-atk/$(AT_SPI2_ATK_VERSION_MAJOR) AT_SPI2_ATK_LICENSE = LGPL-2.1+ AT_SPI2_ATK_LICENSE_FILES = COPYING AT_SPI2_ATK_CPE_ID_VENDOR = gnome AT_SPI2_ATK_INSTALL_STAGING = YES AT_SPI2_ATK_DEPENDENCIES = atk at-spi2-core libglib2 host-pkgconf AT_SPI2_ATK_CONF_OPTS = -Dtests=false $(eval $(meson-package)) ================================================ FILE: package/at-spi2-core/Config.in ================================================ config BR2_PACKAGE_AT_SPI2_CORE bool "at-spi2-core" depends on BR2_PACKAGE_XORG7 # xlib-libxtst depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, glib2 depends on BR2_USE_MMU # glib2 depends on BR2_USE_WCHAR # glib2 select BR2_PACKAGE_DBUS select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_XLIB_LIBXTST help The At-Spi2 Core package is a part of the GNOME Accessibility Project. It provides a Service Provider Interface for the Assistive Technologies available on the GNOME platform and a library against which applications can be linked. https://wiki.gnome.org/Accessibility comment "at-spi2-core needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS comment "at-spi2-core depends on X.org" depends on BR2_USE_MMU depends on !BR2_PACKAGE_XORG7 ================================================ FILE: package/at-spi2-core/at-spi2-core.hash ================================================ # From http://ftp.acc.umu.se/pub/gnome/sources/at-spi2-core/2.36/at-spi2-core-2.36.0.sha256sum sha256 88da57de0a7e3c60bc341a974a80fdba091612db3547c410d6deab039ca5c05a at-spi2-core-2.36.0.tar.xz # locally calculated sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/at-spi2-core/at-spi2-core.mk ================================================ ################################################################################ # # at-spi2-core # ################################################################################ AT_SPI2_CORE_VERSION_MAJOR = 2.36 AT_SPI2_CORE_VERSION = $(AT_SPI2_CORE_VERSION_MAJOR).0 AT_SPI2_CORE_SOURCE = at-spi2-core-$(AT_SPI2_CORE_VERSION).tar.xz AT_SPI2_CORE_SITE = http://ftp.gnome.org/pub/gnome/sources/at-spi2-core/$(AT_SPI2_CORE_VERSION_MAJOR) AT_SPI2_CORE_LICENSE = LGPL-2.1+ AT_SPI2_CORE_LICENSE_FILES = COPYING AT_SPI2_CORE_INSTALL_STAGING = YES AT_SPI2_CORE_DEPENDENCIES = host-pkgconf dbus libglib2 xlib_libXtst \ $(TARGET_NLS_DEPENDENCIES) AT_SPI2_CORE_CONF_OPTS = -Ddbus_daemon=/usr/bin/dbus-daemon AT_SPI2_CORE_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) $(eval $(meson-package)) ================================================ FILE: package/atest/0001-seq.h-fix-build-with-gcc-10.patch ================================================ From fb374e0775fd9772a2cd7b99a5c21f96f7fe2a9a Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 10 Aug 2020 12:12:07 +0200 Subject: [PATCH] seq.h: fix build with gcc 10 Rename state structure to avoid the following build failure with gcc 10.0: /bin/bash ./libtool --tag=CC --mode=link /home/test/autobuild/run/instance-0/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -include config.h -Wall -Wno-sign-compare -Wno-strict-aliasing -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -o atest atest.o seq.o alsa.o capture.o playback.o loopback_delay.o -L/home/test/autobuild/run/instance-0/output-1/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lasound -lev libtool: link: /home/test/autobuild/run/instance-0/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -include config.h -Wall -Wno-sign-compare -Wno-strict-aliasing -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -o atest atest.o seq.o alsa.o capture.o playback.o loopback_delay.o -L/home/test/autobuild/run/instance-0/output-1/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib /home/test/autobuild/run/instance-0/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libasound.so -ldl -lpthread -lrt /home/test/autobuild/run/instance-0/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libev.so -lm -Wl,-rpath -Wl,/home/test/autobuild/run/instance-0/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -Wl,-rpath -Wl,/home/test/autobuild/run/instance-0/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib /home/test/autobuild/run/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: seq.o:(.bss+0x8): multiple definition of `state'; atest.o:(.bss+0xbc): first defined here /home/test/autobuild/run/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: capture.o:(.bss+0x0): multiple definition of `state'; atest.o:(.bss+0xbc): first defined here /home/test/autobuild/run/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: playback.o:(.bss+0x0): multiple definition of `state'; atest.o:(.bss+0xbc): first defined here /home/test/autobuild/run/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: loopback_delay.o:(.bss+0x0): multiple definition of `state'; atest.o:(.bss+0xbc): first defined here Fixes: - http://autobuild.buildroot.org/results/887c466b3703449239eedaf86f3f4dd2a2dc8afe Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/amouiche/atest/pull/3] --- seq.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seq.h b/seq.h index 0fa1a95..b7ba8d1 100644 --- a/seq.h +++ b/seq.h @@ -30,7 +30,7 @@ enum seq_stat_e { NULL_FRAME = 0, INVALID_FRAME, VALID_FRAME, -} state; +}; struct seq_info { -- 2.27.0 ================================================ FILE: package/atest/Config.in ================================================ config BR2_PACKAGE_ATEST bool "atest" depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_LIBEV help atest is a test software for checking ALSA Asoc drivers concerning the proper frame generation and capture. https://github.com/amouiche/atest comment "atest needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/atest/atest.hash ================================================ # Locally computed sha256 91da5a6d4d0b0a8d4bae156a40e91a6dccf62863bfa7acae948efbbd2b4154ca atest-895b0183a89c15f5e2305a6795bb1667753cd3f0.tar.gz sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/atest/atest.mk ================================================ ################################################################################ # # atest # ################################################################################ ATEST_VERSION = 895b0183a89c15f5e2305a6795bb1667753cd3f0 ATEST_SITE = $(call github,amouiche,atest,$(ATEST_VERSION)) ATEST_LICENSE = GPL-2.0+ ATEST_LICENSE_FILES = COPYING ATEST_DEPENDENCIES = host-pkgconf libev alsa-lib # Fetched from Github, with no configure script ATEST_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/atf/Config.in ================================================ config BR2_PACKAGE_ATF bool "atf" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # fork() help ATF, or Automated Testing Framework, is a collection of libraries to write test programs in C, C++ and POSIX shell. https://github.com/jmmv/atf comment "atf needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU ================================================ FILE: package/atf/atf.hash ================================================ # Locally computed sha256 92bc64180135eea8fe84c91c9f894e678767764f6dbc8482021d4dde09857505 atf-0.21.tar.gz sha256 2a15172ddf6386297734c9800c899e6e8dc16c5a03931dcf95a9ab321a24cfe4 COPYING ================================================ FILE: package/atf/atf.mk ================================================ ################################################################################ # # atf # ################################################################################ ATF_VERSION = 0.21 ATF_SITE = https://github.com/jmmv/atf/releases/download/atf-$(ATF_VERSION) ATF_INSTALL_STAGING = YES ATF_LICENSE = BSD-2-Clause, BSD-3-Clause ATF_LICENSE_FILES = COPYING # Ships a beta libtool version hence our patch doesn't apply. ATF_AUTORECONF = YES # Do not install precompiled tests. ATF_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-exec # ATF_SHELL defaults to the host's bash ATF_CONF_ENV = \ kyua_cv_getopt_plus=yes \ kyua_cv_attribute_noreturn=yes \ kyua_cv_getcwd_works=yes \ ATF_SHELL=/bin/sh $(eval $(autotools-package)) ================================================ FILE: package/atftp/Config.in ================================================ config BR2_PACKAGE_ATFTP bool "atftp" depends on BR2_TOOLCHAIN_HAS_THREADS help atftp is a client/server implementation of the TFTP protocol that implements RFCs 1350, 2090, 2347, 2348, and 2349. The server is multi-threaded and the client presents a friendly interface using libreadline (if enabled). http://sourceforge.net/projects/atftp/ comment "atftp needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/atftp/atftp.hash ================================================ # Locally computed sha256 93c87a4fb18218414e008e01c995dadd231ba4c752d0f894b34416d1e6d3038a atftp-0.7.5.tar.gz sha256 86dc744860e6dfacfeba2f33fea908db03fe67c7e37a878285b7aae8e4596735 LICENSE ================================================ FILE: package/atftp/atftp.mk ================================================ ################################################################################ # # atftp # ################################################################################ ATFTP_VERSION = 0.7.5 ATFTP_SITE = http://sourceforge.net/projects/atftp/files ATFTP_LICENSE = GPL-2.0+ ATFTP_LICENSE_FILES = LICENSE ATFTP_CPE_ID_VENDOR = atftp_project ATFTP_SELINUX_MODULES = tftp ATFTP_CONF_OPTS = --disable-libwrap --disable-mtftp # For static we need to explicitly link against libpthread ATFTP_LIBS = -lpthread # -fgnu89-inline is needed to avoid multiple definition error with gcc 5. See # https://gcc.gnu.org/gcc-5/porting_to.html. ATFTP_CONF_ENV = LIBS="$(ATFTP_LIBS)" \ CFLAGS="$(TARGET_CFLAGS) -fgnu89-inline" ifeq ($(BR2_PACKAGE_READLINE),y) ATFTP_DEPENDENCIES += readline ATFTP_CONF_OPTS += --enable-libreadline # For static, readline links with ncurses ATFTP_LIBS += -lncurses else ATFTP_CONF_OPTS += --disable-libreadline endif ifeq ($(BR2_PACKAGE_PCRE),y) ATFTP_DEPENDENCIES += pcre ATFTP_CONF_OPTS += --enable-libpcre else ATFTP_CONF_OPTS += --disable-libpcre endif $(eval $(autotools-package)) ================================================ FILE: package/atk/Config.in ================================================ config BR2_PACKAGE_ATK bool "atk" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 select BR2_PACKAGE_LIBGLIB2 help The ATK accessibility toolkit, needed to build GTK+-2.x. https://gitlab.gnome.org/GNOME/atk comment "atk needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/atk/atk.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/atk/2.36/atk-2.36.0.sha256sum sha256 fb76247e369402be23f1f5c65d38a9639c1164d934e40f6a9cf3c9e96b652788 atk-2.36.0.tar.xz # Hash for license file sha256 d245807f90032872d1438d741ed21e2490e1175dc8aa3afa5ddb6c8e529b58e5 COPYING ================================================ FILE: package/atk/atk.mk ================================================ ################################################################################ # # atk # ################################################################################ ATK_VERSION_MAJOR = 2.36 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) ATK_LICENSE = LGPL-2.0+ ATK_LICENSE_FILES = COPYING ATK_INSTALL_STAGING = YES ATK_DEPENDENCIES = libglib2 $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) ATK_CONF_OPTS += -Dintrospection=true ATK_DEPENDENCIES += gobject-introspection else ATK_CONF_OPTS += -Dintrospection=false endif ATK_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) $(eval $(meson-package)) ================================================ FILE: package/atkmm/Config.in ================================================ config BR2_PACKAGE_ATKMM bool "atkmm" depends on BR2_INSTALL_LIBSTDCPP # glibmm depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS # atk/glibmm -> libglib2 depends on BR2_USE_MMU # atk/glibmm -> libglib2 depends on BR2_USE_WCHAR # atk/glibmm -> libglib2 select BR2_PACKAGE_ATK select BR2_PACKAGE_GLIBMM select BR2_PACKAGE_LIBSIGC help The atkmm package is a set of C++ bindings for Atk. http://www.gtkmm.org/ comment "atkmm needs a toolchain w/ C++, wchar, threads, gcc >= 4.9" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_USE_WCHAR \ || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/atkmm/atkmm.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/atkmm/2.24/atkmm-2.24.2.sha256sum sha256 ff95385759e2af23828d4056356f25376cfabc41e690ac1df055371537e458bd atkmm-2.24.2.tar.xz # locally computed sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING.tools ================================================ FILE: package/atkmm/atkmm.mk ================================================ ################################################################################ # # atkmm # ################################################################################ ATKMM_VERSION_MAJOR = 2.24 ATKMM_VERSION = $(ATKMM_VERSION_MAJOR).2 ATKMM_SOURCE = atkmm-$(ATKMM_VERSION).tar.xz ATKMM_SITE = http://ftp.gnome.org/pub/gnome/sources/atkmm/$(ATKMM_VERSION_MAJOR) ATKMM_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (tools) ATKMM_LICENSE_FILES = COPYING COPYING.tools ATKMM_INSTALL_STAGING = YES ATKMM_DEPENDENCIES = atk glibmm libsigc host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/atop/0001-ifprop.c-fix-build-with-kernel-4.6.patch ================================================ From aff473ee28903775e1bb35793b9c4c50ee0c7270 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 22 Dec 2020 12:23:33 +0100 Subject: [PATCH] ifprop.c: fix build with kernel < 4.6 Build fails with kernel headers < 4.6 since version 2.6.0 and https://github.com/Atoptool/atop/commit/08c622ecaa5bb0bb260984ceaddc4730d1b312a7 Indeed, ethtool_link_settings and ETHTOOL_GLINKSETTINGS are only available since https://github.com/torvalds/linux/commit/3f1ac7a700d039c61d8d8b99f28d605d489a60cf Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/Atoptool/atop/pull/142] --- ifprop.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ifprop.c b/ifprop.c index 60fa3fa..63fce5a 100644 --- a/ifprop.c +++ b/ifprop.c @@ -104,7 +104,9 @@ initifprop(void) char *cp, linebuf[2048]; int i=0, sockfd; +#ifdef ETHTOOL_GLINKSETTINGS struct ethtool_link_settings ethlink; // preferred! +#endif struct ethtool_cmd ethcmd; // deprecated struct ifreq ifreq; @@ -153,6 +155,7 @@ initifprop(void) strncpy((void *)&ifreq.ifr_ifrn.ifrn_name, ifprops[i].name, sizeof ifreq.ifr_ifrn.ifrn_name-1); +#ifdef ETHTOOL_GLINKSETTINGS ethlink.cmd = ETHTOOL_GLINKSETTINGS; ifreq.ifr_ifru.ifru_data = (void *)ðlink; @@ -164,6 +167,7 @@ initifprop(void) phy_addr = ethlink.phy_address; } else +#endif { ethcmd.cmd = ETHTOOL_GSET; ifreq.ifr_ifru.ifru_data = (void *)ðcmd; -- 2.29.2 ================================================ FILE: package/atop/0002-photosyst.c-fix-build-on-musl.patch ================================================ From 34996ad1eb6d295382e7737ef34bd362abdd4944 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 19 Jan 2021 22:15:45 +0100 Subject: [PATCH] photosyst.c: fix build on musl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Build on musl is broken since version 2.6.0 and https://github.com/Atoptool/atop/commit/e889c66fbe1d0b7ae38fbcbaa46cea749257f486 because limits.h is not included: photosyst.c: In function ‘lvmmapname’: photosyst.c:1624:14: error: ‘PATH_MAX’ undeclared (first use in this function); did you mean ‘AF_MAX’? char path[PATH_MAX]; ^~~~~~~~ AF_MAX Signed-off-by: Fabrice Fontaine --- photosyst.c | 1 + 1 file changed, 1 insertion(+) diff --git a/photosyst.c b/photosyst.c index 3de874b..67ae92f 100644 --- a/photosyst.c +++ b/photosyst.c @@ -165,6 +165,7 @@ #include #include #include +#include #define SCALINGMAXCPU 8 // threshold for scaling info per CPU -- 2.29.2 ================================================ FILE: package/atop/Config.in ================================================ config BR2_PACKAGE_ATOP bool "atop" depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR # ncurses wchar depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 # PERF_FLAG_FD_CLOEXEC select BR2_PACKAGE_NCURSES select BR2_PACKAGE_NCURSES_WCHAR select BR2_PACKAGE_ZLIB help Atop is an ASCII full-screen performance monitor for Linux that is capable of reporting the activity of all processes (even if processes have finished during the interval), daily logging of system and process activity for long-term analysis, highlighting overloaded system resources by using colors, etc. At regular intervals, it shows system-level activity related to the CPU, memory, swap, disks (including LVM) and network layers, and for every process (and thread) it shows e.g. the CPU utilization, memory growth, disk utilization, priority, username, state, and exit code. http://www.atoptool.nl comment "atop needs a toolchain w/ wchar, headers >= 3.14" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 ================================================ FILE: package/atop/atop.hash ================================================ # Locally computed: sha256 9ec2ca3a571692f7efaa095f99a5106432bcb71cc22cd6c49597ef0481058f72 atop-2.6.0.tar.gz # Hash for license file: sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/atop/atop.mk ================================================ ################################################################################ # # atop # ################################################################################ ATOP_VERSION = 2.6.0 ATOP_SITE = http://www.atoptool.nl/download ATOP_LICENSE = GPL-2.0+ ATOP_LICENSE_FILES = COPYING ATOP_CPE_ID_VENDOR = atop_project ATOP_DEPENDENCIES = ncurses zlib ATOP_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) ATOP_CFLAGS += -O0 endif define ATOP_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(ATOP_CFLAGS)" \ -C $(@D) endef define ATOP_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/atop $(TARGET_DIR)/usr/bin/atop endef $(eval $(generic-package)) ================================================ FILE: package/attr/0001-build-with-older-GCCs.patch ================================================ From 3ac428794ea0f95c854166c9c0cffb0267c5e98b Mon Sep 17 00:00:00 2001 From: Hollis Blanchard Date: Mon, 30 Jul 2018 14:17:21 -0700 Subject: [PATCH] Remove messages in "deprecated" gcc attributes GCC versions up through 4.4.7 (which is used in RHEL 6) do not accept any argument for the deprecated attribute. GCC 4.5 and later say the "msg" argument is optional. We don't need the messages during Buildroot builds anyways. Signed-off-by: Hollis Blanchard --- include/attributes.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/include/attributes.h b/include/attributes.h index 14beb8f..23c39c8 100644 --- a/include/attributes.h +++ b/include/attributes.h @@ -127,10 +127,10 @@ typedef struct attr_multiop { */ EXPORT int attr_get (const char *__path, const char *__attrname, char *__attrvalue, int *__valuelength, int __flags) - __attribute__ ((deprecated ("Use getxattr or lgetxattr instead"))); + __attribute__ ((deprecated)); EXPORT int attr_getf (int __fd, const char *__attrname, char *__attrvalue, int *__valuelength, int __flags) - __attribute__ ((deprecated ("Use fgetxattr instead"))); + __attribute__ ((deprecated)); /* * Set the value of an attribute, creating the attribute if necessary. @@ -139,11 +139,11 @@ EXPORT int attr_getf (int __fd, const char *__attrname, char *__attrvalue, EXPORT int attr_set (const char *__path, const char *__attrname, const char *__attrvalue, const int __valuelength, int __flags) - __attribute__ ((deprecated ("Use setxattr or lsetxattr instead"))); + __attribute__ ((deprecated)); EXPORT int attr_setf (int __fd, const char *__attrname, const char *__attrvalue, const int __valuelength, int __flags) - __attribute__ ((deprecated ("Use fsetxattr instead"))); + __attribute__ ((deprecated)); /* * Remove an attribute. @@ -151,9 +151,9 @@ EXPORT int attr_setf (int __fd, const char *__attrname, */ EXPORT int attr_remove (const char *__path, const char *__attrname, int __flags) - __attribute__ ((deprecated ("Use removexattr or lremovexattr instead"))); + __attribute__ ((deprecated)); EXPORT int attr_removef (int __fd, const char *__attrname, int __flags) - __attribute__ ((deprecated ("Use fremovexattr instead"))); + __attribute__ ((deprecated)); /* * List the names and sizes of the values of all the attributes of an object. @@ -164,10 +164,10 @@ EXPORT int attr_removef (int __fd, const char *__attrname, int __flags) */ EXPORT int attr_list(const char *__path, char *__buffer, const int __buffersize, int __flags, attrlist_cursor_t *__cursor) - __attribute__ ((deprecated ("Use listxattr or llistxattr instead"))); + __attribute__ ((deprecated)); EXPORT int attr_listf(int __fd, char *__buffer, const int __buffersize, int __flags, attrlist_cursor_t *__cursor) - __attribute__ ((deprecated ("Use flistxattr instead"))); + __attribute__ ((deprecated)); /* * Operate on multiple attributes of the same object simultaneously. @@ -188,10 +188,10 @@ EXPORT int attr_listf(int __fd, char *__buffer, const int __buffersize, */ EXPORT int attr_multi (const char *__path, attr_multiop_t *__oplist, int __count, int __flags) - __attribute__ ((deprecated ("Use getxattr, setxattr, listxattr, removexattr instead"))); + __attribute__ ((deprecated)); EXPORT int attr_multif (int __fd, attr_multiop_t *__oplist, int __count, int __flags) - __attribute__ ((deprecated ("Use getxattr, setxattr, listxattr, removexattr instead"))); + __attribute__ ((deprecated)); #ifdef __cplusplus } -- 2.13.0 ================================================ FILE: package/attr/Config.in ================================================ config BR2_PACKAGE_ATTR bool "attr" help Commands for Manipulating Filesystem Extended Attributes. This package also provides libattr. http://savannah.nongnu.org/projects/attr ================================================ FILE: package/attr/attr.hash ================================================ # Locally calculated after checking pgp signature sha256 db448a626f9313a1a970d636767316a8da32aede70518b8050fa0de7947adc32 attr-2.5.1.tar.xz # Locally calculated sha256 98f318493be6b08bff3cd295791cde06c54e17882a3c74a1ed245eaa02533d52 doc/COPYING sha256 5decad7e58d90d44335bf2f45ce27563bd911065c6a1a02dfa7647c4efee75c8 doc/COPYING.LGPL ================================================ FILE: package/attr/attr.mk ================================================ ################################################################################ # # attr # ################################################################################ ATTR_VERSION = 2.5.1 ATTR_SOURCE = attr-$(ATTR_VERSION).tar.xz ATTR_SITE = http://download.savannah.gnu.org/releases/attr ATTR_LICENSE = GPL-2.0+ (programs), LGPL-2.1+ (libraries) ATTR_LICENSE_FILES = doc/COPYING doc/COPYING.LGPL ATTR_CPE_ID_VENDOR = attr_project ATTR_INSTALL_STAGING = YES ATTR_CONF_OPTS = --disable-nls $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/aubio/Config.in ================================================ config BR2_PACKAGE_AUBIO bool "aubio" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS help aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio. Because these tasks are difficult, we thought it was important to gather them in a dedicated library. To increase the fun, we have made these algorithms work in a causal way, so as to be used in real time applications with as low delay as possible. Functions can be used offline in sound editors and software samplers, or online in audio effects and virtual instruments. https://aubio.org comment "aubio needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/aubio/aubio.hash ================================================ # From https://aubio.org/pub/aubio-0.4.9.tar.bz2.sha256 sha256 d48282ae4dab83b3dc94c16cf011bcb63835c1c02b515490e1883049c3d1f3da aubio-0.4.9.tar.bz2 # Hash for license file: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/aubio/aubio.mk ================================================ ################################################################################ # # aubio # ################################################################################ AUBIO_VERSION = 0.4.9 AUBIO_SITE = https://aubio.org/pub AUBIO_SOURCE = aubio-$(AUBIO_VERSION).tar.bz2 AUBIO_LICENSE = GPL-3.0+ AUBIO_LICENSE_FILES = COPYING AUBIO_INSTALL_STAGING = YES AUBIO_CONF_OPTS = \ --disable-docs \ --disable-atlas # Add --notests for each build step to avoid running unit tests on the # build machine. AUBIO_WAF_OPTS = --notests ifeq ($(BR2_PACKAGE_LIBSNDFILE),y) AUBIO_DEPENDENCIES += libsndfile AUBIO_CONF_OPTS += --enable-sndfile else AUBIO_CONF_OPTS += --disable-sndfile endif # Could not compile aubio in double precision mode with libsamplerate ifeq ($(BR2_PACKAGE_LIBSAMPLERATE):$(BR2_PACKAGE_FFTW_DOUBLE),y:) AUBIO_DEPENDENCIES += libsamplerate AUBIO_CONF_OPTS += --enable-samplerate else AUBIO_CONF_OPTS += --disable-samplerate endif ifeq ($(BR2_PACKAGE_JACK2),y) AUBIO_DEPENDENCIES += jack2 AUBIO_CONF_OPTS += --enable-jack else AUBIO_CONF_OPTS += --disable-jack endif # fftw3 require double otherwise it will look for fftw3f ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),y) AUBIO_CONF_OPTS += --enable-fftw3 --enable-double AUBIO_DEPENDENCIES += fftw-double else ifeq ($(BR2_PACKAGE_FFTW_SINGLE),y) AUBIO_CONF_OPTS += --enable-fftw3f --disable-double AUBIO_DEPENDENCIES += fftw-single else AUBIO_CONF_OPTS += --disable-fftw3 endif ifeq ($(BR2_PACKAGE_FFMPEG_AVRESAMPLE),y) AUBIO_DEPENDENCIES += ffmpeg AUBIO_CONF_OPTS += --enable-avcodec else AUBIO_CONF_OPTS += --disable-avcodec endif $(eval $(waf-package)) ================================================ FILE: package/audit/Config.in ================================================ # audit has some builtin per-architecture system call tables config BR2_PACKAGE_AUDIT_ARCH_SUPPORTS bool default y if BR2_aarch64 || BR2_arm || BR2_armeb || \ BR2_i386 || BR2_powerpc || BR2_powerpc64 || \ BR2_x86_64 config BR2_PACKAGE_AUDIT bool "audit" depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS help The audit package contains the user space utilities for storing and searching the audit records generated by the audit subsystem in the Linux 2.6 kernel Note: The z/OS remote plugin is disabled in this package http://people.redhat.com/sgrubb/audit/ comment "audit needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS ================================================ FILE: package/audit/S02auditd ================================================ #!/bin/sh # # auditd This starts and stops auditd # # description: This starts the Linux Auditing System Daemon, # which collects security related events in a dedicated # audit log. If this daemon is turned off, audit events # will be sent to syslog. # NAME=auditd DAEMON=/usr/sbin/${NAME} CONFIG=/etc/audit/auditd.conf PIDFILE=/var/run/${NAME}.pid start(){ printf "Starting ${NAME}: " # Create dir to store log files in if one doesn't exist. Create # the directory with SELinux permissions if possible command -v selabel_lookup >/dev/null 2>&1 if [ $? = 0 ]; then mkdir -p /var/log/audit -Z `selabel_lookup -b file -k /var/log/audit | cut -d ' ' -f 3` else mkdir -p /var/log/audit fi # Run audit daemon executable start-stop-daemon -S -q -p ${PIDFILE} --exec ${DAEMON} if [ $? = 0 ]; then # Load the default rules test -f /etc/audit/rules.d/audit.rules && /usr/sbin/auditctl -R /etc/audit/rules.d/audit.rules >/dev/null echo "OK" else echo "FAIL" fi } stop(){ printf "Stopping ${NAME}: " start-stop-daemon -K -q -p ${PIDFILE} [ $? = 0 ] && echo "OK" || echo "FAIL" } reload(){ printf "Reloading ${NAME} configuration: " start-stop-daemon --stop -s 1 -p ${PIDFILE} 1>/dev/null [ $? = 0 ] && echo "OK" || echo "FAIL" } rotate(){ printf "Rotating ${NAME} logs: " start-stop-daemon --stop -s 10 -p ${PIDFILE} 1>/dev/null [ $? = 0 ] && echo "OK" || echo "FAIL" } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; reload) reload ;; rotate) rotate ;; *) echo "Usage: $0 {start|stop|restart|reload|rotate}" exit 1 ;; esac ================================================ FILE: package/audit/audit.hash ================================================ #Locally computed sha256 c3e44d77513a42401d417dd0ceb203cf23886cb89402dea7b9494faa3f4fcc5e audit-3.0.6.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING sha256 f18a0811fa0e220ccbc42f661545e77f0388631e209585ed582a1c693029c6aa COPYING.LIB ================================================ FILE: package/audit/audit.mk ================================================ ################################################################################ # # audit # ################################################################################ AUDIT_VERSION = 3.0.6 AUDIT_SITE = http://people.redhat.com/sgrubb/audit AUDIT_LICENSE = GPL-2.0+ (programs), LGPL-2.1+ (libraries) AUDIT_LICENSE_FILES = COPYING COPYING.LIB AUDIT_CPE_ID_VENDOR = linux_audit_project AUDIT_CPE_ID_PRODUCT = linux_audit AUDIT_INSTALL_STAGING = YES AUDIT_CONF_OPTS = --without-python --without-python3 --disable-zos-remote ifeq ($(BR2_PACKAGE_LIBCAP_NG),y) AUDIT_DEPENDENCIES += libcap-ng AUDIT_CONF_OPTS += --with-libcap-ng=yes else AUDIT_CONF_OPTS += --with-libcap-ng=no endif # For i386, x86-64 and PowerPC, the system call tables are # unconditionally included. However, for ARM(eb) and AArch64, then # need to be explicitly enabled. ifeq ($(BR2_arm)$(BR2_armeb),y) AUDIT_CONF_OPTS += --with-arm endif ifeq ($(BR2_aarch64),y) AUDIT_CONF_OPTS += --with-aarch64 endif ifeq ($(BR2_INIT_SYSTEMD),y) AUDIT_CONF_OPTS += --enable-systemd else AUDIT_CONF_OPTS += --disable-systemd endif define AUDIT_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/audit/S02auditd $(TARGET_DIR)/etc/init.d/S02auditd endef define AUDIT_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/audit/audit_tmpfiles.conf \ $(TARGET_DIR)/usr/lib/tmpfiles.d/audit.conf endef define AUDIT_INSTALL_CLEANUP $(RM) $(TARGET_DIR)/etc/rc.d/init.d/auditd $(RM) $(TARGET_DIR)/etc/sysconfig/auditd endef AUDIT_POST_INSTALL_TARGET_HOOKS += AUDIT_INSTALL_CLEANUP define AUDIT_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_NET) $(call KCONFIG_ENABLE_OPT,CONFIG_AUDIT) endef HOST_AUDIT_CONF_OPTS = \ --without-python \ --without-python3 \ --disable-zos-remote \ --without-libcap-ng $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/audit/audit_tmpfiles.conf ================================================ d /var/log/audit 0755 - - ================================================ FILE: package/aufs/Config.in ================================================ # Automatically selected by the corresponding linux extension config BR2_PACKAGE_AUFS bool if BR2_PACKAGE_AUFS # Both come from the selection of the linux extension. config BR2_PACKAGE_AUFS_SERIES int default BR2_LINUX_KERNEL_EXT_AUFS_SERIES config BR2_PACKAGE_AUFS_VERSION string default BR2_LINUX_KERNEL_EXT_AUFS_VERSION endif ================================================ FILE: package/aufs/aufs.mk ================================================ ################################################################################ # # aufs # ################################################################################ AUFS_VERSION = $(call qstrip,$(BR2_PACKAGE_AUFS_VERSION)) AUFS_LICENSE = GPL-2.0 AUFS_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_AUFS_SERIES),3) AUFS_SITE = http://git.code.sf.net/p/aufs/aufs3-standalone AUFS_SITE_METHOD = git else ifeq ($(BR2_PACKAGE_AUFS_SERIES),4) AUFS_SITE = $(call github,sfjro,aufs4-standalone,$(AUFS_VERSION)) else ifeq ($(BR2_PACKAGE_AUFS_SERIES),5) AUFS_SITE = $(call github,sfjro,aufs5-standalone,$(AUFS_VERSION)) endif ifeq ($(BR_BUILDING):$(BR2_PACKAGE_AUFS):$(AUFS_VERSION),y:y:) $(error No aufs version specified) endif $(eval $(generic-package)) ================================================ FILE: package/aufs-util/0001-remove-user-settings.patch ================================================ install: drop setting ownership Signed-off-by: "Yann E. MORIN" diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ override CPPFLAGS += -DAUFHSM_CMD=\"/usr/bin/aufhsm\" override CFLAGS += -O -Wall INSTALL ?= install -Install = ${INSTALL} -o root -g root -p +Install = ${INSTALL} -p ManDir = /usr/share/man # ================================================ FILE: package/aufs-util/0002-no-check-ver.patch ================================================ Makefile: do not check version The aufs-util package tries to ensure that its version is compatible with the one in the running kernel. However, this test is flawed: the version string in the aufs4x branch for aufs-util is aufs3.x, so it does not match the version in the kernel when it is aufs4.x. Disengage this check, ion the assumption the user knows what he is doing. Signed-off-by: "Yann E. MORIN" diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -62,7 +62,7 @@ $(foreach v, CPPFLAGS CFLAGS INSTALL Install ManDir LibUtilHdr, \ $(eval MAKE += ${v}="$${${v}}")) -all: ver_test ${Man} ${Bin} ${Etc} +all: ${Man} ${Bin} ${Etc} ${MAKE} -C libau $@ ln -sf ./libau/libau*.so . $(call MakeFHSM, $@) ================================================ FILE: package/aufs-util/0003-no-strip-lib.patch ================================================ install: do not strip libs when installing We want unstripped binaries in staging; stripping is done by Buildroot as a whole in target-finalize if needed, anyway. Signed-off-by: "Yann E. MORIN" diff --git a/libau/Makefile b/libau/Makefile --- a/libau/Makefile +++ b/libau/Makefile @@ -37,7 +37,6 @@ ln -sf $< $@ ${LibSo}.${LibSoMajor}: ${LibSo}.${LibSoMajor}.${LibSoMinor} ln -sf $< $@ -${LibSo}.${LibSoMajor}.${LibSoMinor}: override LDFLAGS += -s ${LibSo}.${LibSoMajor}.${LibSoMinor}: override LDLIBS += -ldl -lpthread ${LibSo}.${LibSoMajor}.${LibSoMinor}: ${LibSoObj} ${CC} --shared -Wl,-soname,${LibSo}.${LibSoMajor} ${LDFLAGS} \ ================================================ FILE: package/aufs-util/Config.in ================================================ comment "aufs-util needs a linux kernel and a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_LINUX_KERNEL || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_AUFS_UTIL bool "aufs-util" depends on BR2_USE_MMU depends on BR2_LINUX_KERNEL depends on BR2_TOOLCHAIN_HAS_THREADS help Aufs command line utilities. Needs a kernel with aufs support. A kernel extension package is available. http://sourceforge.net/p/aufs/aufs-util/ if BR2_PACKAGE_AUFS_UTIL config BR2_PACKAGE_AUFS_UTIL_VERSION string "aufs-util version" default "" help The version you choose must match that of the aufs support in your kernel. Usually, this is aufs3.x for 3.x kernels and aufs4.x for 4.x kernels. Usually, the sha1 of the cset you want to use; avoid using a branch name as this yields non-reproducible builds. See the following resources to see what versions are available: https://sourceforge.net/p/aufs/aufs-util/ci/master/tree/ endif ================================================ FILE: package/aufs-util/aufs-util.mk ================================================ ################################################################################ # # aufs-util # ################################################################################ # linux-headers AUFS_UTIL_VERSION = $(call qstrip,$(BR2_PACKAGE_AUFS_UTIL_VERSION)) AUFS_UTIL_SITE = http://git.code.sf.net/p/aufs/aufs-util AUFS_UTIL_SITE_METHOD = git AUFS_UTIL_LICENSE = GPL-2.0 AUFS_UTIL_LICENSE_FILES = COPYING AUFS_UTIL_DEPENDENCIES = linux # Building aufs-util requires access to the kernel headers of aufs, # which are only available in the kernel build directory, which is why # we add -I$(LINUX_DIR)/include/uapi. These headers have not been # prepared for usage by userspace, so to workaround this we have to # defined the "__user" macro as empty. AUFS_UTIL_HOST_CPPFLAGS = \ $(HOST_CPPFLAGS) \ -I$(LINUX_DIR)/include/uapi \ -D__user= AUFS_UTIL_CPPFLAGS = \ $(TARGET_CPPFLAGS) \ -I$(LINUX_DIR)/include/uapi \ -D__user= # rdu64 is supposed to provide the LFS variant of readdir(), # readdir64(). However, because Buildroot is always LFS-enabled, # readdir() is always the LFS variant. Drop rdu64 from the build, as # it causes build failures due to multiple implementations of # readdir64(). define AUFS_UTIL_REMOVE_RDU64 $(SED) 's% rdu64.o%%' $(@D)/libau/Makefile endef AUFS_UTIL_POST_PATCH_HOOKS += AUFS_UTIL_REMOVE_RDU64 # First, we build the host tools, needed to build the target tools. define AUFS_UTIL_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) \ $(HOST_CONFIGURE_OPTS) \ CPPFLAGS="$(AUFS_UTIL_HOST_CPPFLAGS)" \ HOSTCC="$(HOSTCC)" HOSTLD="$(HOSTLD)" \ INSTALL="$(INSTALL)" c2sh c2tmac $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) \ $(TARGET_CONFIGURE_OPTS) \ CPPFLAGS="$(AUFS_UTIL_CPPFLAGS)" \ INSTALL="$(INSTALL)" all endef define AUFS_UTIL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) INSTALL="$(INSTALL)" DESTDIR="$(TARGET_DIR)" install endef $(eval $(generic-package)) ================================================ FILE: package/augeas/Config.in ================================================ config BR2_PACKAGE_AUGEAS bool "augeas" # ARC toolchain issue: # https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/issues/108 depends on !BR2_arc depends on BR2_USE_WCHAR select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_READLINE help Augeas is a configuration editing tool. It parses configuration files in their native formats and transforms them into a tree. Configuration changes are made by manipulating this tree and saving it back into native config files. http://augeas.net comment "augeas needs a toolchain w/ wchar" depends on !BR2_arc depends on !BR2_USE_WCHAR ================================================ FILE: package/augeas/augeas.hash ================================================ # Locally calculated after checking pgp signature from # http://download.augeas.net/augeas-1.12.0.tar.gz.sig sha256 321942c9cc32185e2e9cb72d0a70eea106635b50269075aca6714e3ec282cb87 augeas-1.12.0.tar.gz sha256 ca0061fc1381a3ab242310e4b3f56389f28e3d460eb2fd822ed7a21c6f030532 COPYING ================================================ FILE: package/augeas/augeas.mk ================================================ ################################################################################ # # augeas # ################################################################################ AUGEAS_VERSION = 1.12.0 AUGEAS_SITE = http://download.augeas.net AUGEAS_INSTALL_STAGING = YES AUGEAS_LICENSE = LGPL-2.1+ AUGEAS_LICENSE_FILES = COPYING AUGEAS_CPE_ID_VENDOR = augeas AUGEAS_DEPENDENCIES = host-pkgconf readline libxml2 AUGEAS_CONF_OPTS = --disable-gnulib-tests # Remove the test lenses which occupy about 1.4 MB on the target define AUGEAS_REMOVE_TEST_LENSES rm -rf $(TARGET_DIR)/usr/share/augeas/lenses/dist/tests endef AUGEAS_POST_INSTALL_TARGET_HOOKS += AUGEAS_REMOVE_TEST_LENSES $(eval $(autotools-package)) ================================================ FILE: package/aumix/0001-fix-incorrect-makefile-am.patch ================================================ Aumix's src/Makefile.am incorrect adds @includedir@ to the list of include paths and @libdir@ to the list of libraries paths. This is incorrect, as @includedir@ and @libdir@ are respectively /usr/include and /usr/lib, even in cross-compilation mode. At the same time, use AM_CFLAGS instead of CFLAGS, as is done on the similar patch found in OpenEmbedded. Signed-off-by: Thomas Petazzoni --- src/Makefile.am | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) Index: aumix-2.8/src/Makefile.am =================================================================== --- aumix-2.8.orig/src/Makefile.am +++ aumix-2.8/src/Makefile.am @@ -9,9 +9,8 @@ mouse.c common.h curses.h gpm-xterm.h gtk.h interactive.h \ mouse.h play.xpm record.xpm localedir = $(datadir)/locale -INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\" -I@includedir@ +INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\" AM_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ @GTK_CFLAGS@ -LDADD = -L@libdir@ LIBS = @LIBS@ @GTK_LIBS@ @LIBINTL@ DEFS = @DEFS@ ================================================ FILE: package/aumix/Config.in ================================================ config BR2_PACKAGE_AUMIX bool "aumix" select BR2_PACKAGE_NCURSES help aumix is a small, easy-to-use program to control the mixer of your sound card. It runs in text mode using the ncurses library, or from the command line (non-interactively). It can read default settings from a file, and it can also automatically save and restore the mixer settings at shutdown and boot. http://jpj.net/~trevor/aumix.html ================================================ FILE: package/aumix/aumix.hash ================================================ # Locally calculated sha256 d2ce43d532ef75072c8d4e7922e3bc06be6d97765a508d9ceb0d1766bbe70e29 aumix-2.9.1.tar.bz2 sha256 1ca3e8f71b7de618968e7ea9fe47822d9e704dc476aef8544033abedec355225 COPYING sha256 3bfa74db4aeb68bfef7ee213bb1dbf236d784dea3d35a52f6e23a48c847375dd 19_no-common.patch ================================================ FILE: package/aumix/aumix.mk ================================================ ################################################################################ # # aumix # ################################################################################ AUMIX_VERSION = 2.9.1 AUMIX_SOURCE = aumix-$(AUMIX_VERSION).tar.bz2 AUMIX_SITE = http://jpj.net/~trevor/aumix/releases AUMIX_AUTORECONF = YES AUMIX_GETTEXTIZE = YES AUMIX_LICENSE = GPL-2.0+ AUMIX_LICENSE_FILES = COPYING AUMIX_PATCH = \ https://sources.debian.org/data/main/a/aumix/2.9.1-7/debian/patches/19_no-common.patch AUMIX_CONF_OPTS = \ --without-gtk \ --without-gtk1 \ --without-alsa \ --without-gpm \ --without-sysmouse AUMIX_DEPENDENCIES = host-gettext ncurses $(eval $(autotools-package)) ================================================ FILE: package/autoconf/0001-dont-add-dirty-to-version.patch ================================================ autoconf: don't append -dirty to version Don't append -dirty to autoconf version number if the buildroot git tree has uncommited changes. This script is meant for the autoconf developers, but it also activates if you build autoconf in a subdirectory of a git tree (E.G. like how it's commonly done in buildroot). The affect is that autoconf gets built as being version 2.65-dirty, which breaks programs (like Python) which explicitly checks for autoconf-2.65. [Gustavo: update for autoconf 2.69] Signed-off-by: Peter Korsgaard Signed-off-by: Gustavo Zacarias diff -Nura autoconf-2.69.orig/build-aux/git-version-gen autoconf-2.69/build-aux/git-version-gen --- autoconf-2.69.orig/build-aux/git-version-gen 2013-06-27 11:31:02.340200154 -0300 +++ autoconf-2.69/build-aux/git-version-gen 2013-06-27 11:31:13.734577033 -0300 @@ -203,7 +203,7 @@ *) # Append the suffix only if there isn't one already. case $v in *-dirty) ;; - *) v="$v-dirty" ;; + #*) v="$v-dirty" ;; esac ;; esac fi ================================================ FILE: package/autoconf/autoconf.hash ================================================ # Locally calculated after checking pgp signature sha256 f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4 autoconf-2.71.tar.xz sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 COPYINGv3 sha256 1f1cde9fb68b9b3cff18c420894bec5bd4defacd700b7d13df54a887301e5350 COPYING.EXCEPTION ================================================ FILE: package/autoconf/autoconf.mk ================================================ ################################################################################ # # autoconf # ################################################################################ AUTOCONF_VERSION = 2.71 AUTOCONF_SOURCE = autoconf-$(AUTOCONF_VERSION).tar.xz AUTOCONF_SITE = $(BR2_GNU_MIRROR)/autoconf AUTOCONF_LICENSE = GPL-3.0+ with exceptions AUTOCONF_LICENSE_FILES = COPYINGv3 COPYING.EXCEPTION HOST_AUTOCONF_CONF_ENV = \ EMACS="no" \ ac_cv_path_M4=$(HOST_DIR)/bin/m4 \ ac_cv_prog_gnu_m4_gnu=no HOST_AUTOCONF_DEPENDENCIES = host-m4 host-libtool $(eval $(host-autotools-package)) # variables used by other packages AUTOCONF = $(HOST_DIR)/bin/autoconf -I "$(ACLOCAL_DIR)" -I "$(ACLOCAL_HOST_DIR)" AUTOHEADER = $(HOST_DIR)/bin/autoheader -I "$(ACLOCAL_DIR)" -I "$(ACLOCAL_HOST_DIR)" AUTORECONF = $(HOST_CONFIGURE_OPTS) ACLOCAL="$(ACLOCAL)" AUTOCONF="$(AUTOCONF)" AUTOHEADER="$(AUTOHEADER)" AUTOMAKE="$(AUTOMAKE)" AUTOPOINT=/bin/true GTKDOCIZE=/bin/true $(HOST_DIR)/bin/autoreconf -f -i ================================================ FILE: package/autoconf-archive/autoconf-archive.hash ================================================ # Computed locally sha256 e8a6eb9d28ddcba8ffef3fa211653239e9bf239aba6a01a6b7cfc7ceaec69cbd autoconf-archive-2021.02.19.tar.xz sha256 e6037104443f9a7829b2aa7c5370d0789a7bda3ca65a0b904cdc0c2e285d9195 COPYING sha256 23ed0b84fa023bfa33433b498192cd08a3bfb1f4864a8ed791a84f3eb48b2dd2 COPYING.EXCEPTION ================================================ FILE: package/autoconf-archive/autoconf-archive.mk ================================================ ################################################################################ # # autoconf-archive # ################################################################################ AUTOCONF_ARCHIVE_VERSION = 2021.02.19 AUTOCONF_ARCHIVE_SOURCE = autoconf-archive-$(AUTOCONF_ARCHIVE_VERSION).tar.xz AUTOCONF_ARCHIVE_SITE = $(BR2_GNU_MIRROR)/autoconf-archive AUTOCONF_ARCHIVE_LICENSE = GPL-3.0+ with exception AUTOCONF_ARCHIVE_LICENSE_FILES = COPYING COPYING.EXCEPTION HOST_AUTOCONF_ARCHIVE_INSTALL_OPTS = aclocaldir=$(HOST_DIR)/share/autoconf-archive install $(eval $(host-autotools-package)) ================================================ FILE: package/autofs/0001-autofs-5-1-7-use-default-stack-size-for-threads.patch ================================================ From 91edcc55c681dac41d2213b498ec6450aee22d9f Mon Sep 17 00:00:00 2001 From: Ian Kent Date: Mon, 26 Jul 2021 13:18:38 +0800 Subject: autofs-5.1.7 - use default stack size for threads autofs uses PTHREAD_STACK_MIN to set the stack size for threads it creates. In two cases it is used to reduce the stack size for long running service threads while it's used to allocate a larger stack for worker threads that can have larger memory requirements. In recent glibc releases PTHREAD_STACK_MIN is no longer a constant which can lead to unexpectedly different stack sizes on different architectures and the autofs assumption it's a constant causes a compile failure. The need to alter the stack size was due to observed stack overflow which was thought to be due the thread stack being too small for autofs and glibc alloca(3) usage. Quite a bit of that alloca(3) usage has been eliminated from autofs now, particularly those that might be allocating largish amounts of storage, and there has been a lot of change in glibc too so using the thread default stack should be ok. Signed-off-by: Ian Kent [Retrieved (and updated to drop CHANGELOG update) from: https://git.kernel.org/pub/scm/linux/storage/autofs/autofs.git/commit/?id=91edcc55c681dac41d2213b498ec6450aee22d9f] Signed-off-by: Fabrice Fontaine --- CHANGELOG | 1 + daemon/automount.c | 29 ----------------------------- daemon/state.c | 6 +----- lib/alarm.c | 6 +----- 4 files changed, 3 insertions(+), 39 deletions(-) diff --git a/daemon/automount.c b/daemon/automount.c index 23235a7..d743235 100644 --- a/daemon/automount.c +++ b/daemon/automount.c @@ -84,7 +84,6 @@ static size_t kpkt_len; /* Attributes for creating detached and joinable threads */ pthread_attr_t th_attr; pthread_attr_t th_attr_detached; -size_t detached_thread_stack_size = PTHREAD_STACK_MIN * 144; struct master_readmap_cond mrc = { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, NULL, 0, 0, 0, 0}; @@ -2620,34 +2619,6 @@ int main(int argc, char *argv[]) exit(1); } -#ifdef _POSIX_THREAD_ATTR_STACKSIZE - if (pthread_attr_setstacksize( - &th_attr_detached, detached_thread_stack_size)) { - logerr("%s: failed to set stack size thread attribute!", - program); - if (start_pipefd[1] != -1) { - res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); - close(start_pipefd[1]); - } - release_flag_file(); - macro_free_global_table(); - exit(1); - } -#endif - - if (pthread_attr_getstacksize( - &th_attr_detached, &detached_thread_stack_size)) { - logerr("%s: failed to get detached thread stack size!", - program); - if (start_pipefd[1] != -1) { - res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); - close(start_pipefd[1]); - } - release_flag_file(); - macro_free_global_table(); - exit(1); - } - info(logging, "Starting automounter version %s, master map %s", version, master_list->name); info(logging, "using kernel protocol version %d.%02d", diff --git a/daemon/state.c b/daemon/state.c index 5156bb2..5df0561 100644 --- a/daemon/state.c +++ b/daemon/state.c @@ -1177,12 +1177,8 @@ int st_start_handler(void) status = pthread_attr_init(pattrs); if (status) pattrs = NULL; - else { + else pthread_attr_setdetachstate(pattrs, PTHREAD_CREATE_DETACHED); -#ifdef _POSIX_THREAD_ATTR_STACKSIZE - pthread_attr_setstacksize(pattrs, PTHREAD_STACK_MIN*4); -#endif - } status = pthread_create(&thid, pattrs, st_queue_handler, NULL); diff --git a/lib/alarm.c b/lib/alarm.c index f27e13c..1631a9b 100755 --- a/lib/alarm.c +++ b/lib/alarm.c @@ -270,12 +270,8 @@ int alarm_start_handler(void) status = pthread_attr_init(pattrs); if (status) pattrs = NULL; - else { + else pthread_attr_setdetachstate(pattrs, PTHREAD_CREATE_DETACHED); -#ifdef _POSIX_THREAD_ATTR_STACKSIZE - pthread_attr_setstacksize(pattrs, PTHREAD_STACK_MIN*4); -#endif - } status = pthread_condattr_init(&condattrs); if (status) -- cgit 1.2.3-1.el7 ================================================ FILE: package/autofs/Config.in ================================================ config BR2_PACKAGE_AUTOFS bool "autofs" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS # dlfcn depends on !BR2_TOOLCHAIN_USES_MUSL # nsswitch select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC help Autofs controls the operation of the automount daemons. The automount daemons automatically mount filesystems when they are used and unmount them after a period of inactivity based on a set of pre-configured maps defined by default in /etc/auto.master. The kernel automounter implements SunOS style automounter under Linux and requires a kernel version of at least 2.6.17 and the autofs4 kernel module. http://www.linuxfromscratch.org/blfs/view/svn/general/autofs.html comment "autofs needs a glibc or uClibc toolchain w/ NPTL and dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS \ || BR2_TOOLCHAIN_USES_MUSL ================================================ FILE: package/autofs/autofs.hash ================================================ # From https://www.kernel.org/pub/linux/daemons/autofs/v5/sha256sums.asc sha256 a36b268611b79b07051749870ba540b139938efc84bc0293244c483e94f9ced7 autofs-5.1.7.tar.xz # Hash for license files sha256 458028929f712b4795bc5adc31a1d6a2151364ce1b372ac43f613f56c8448fed COPYING sha256 26c826658dfa9e5ce5f182fbfbadf3fda2d184e78dba3d99da34c60113b2ce54 COPYRIGHT ================================================ FILE: package/autofs/autofs.mk ================================================ ################################################################################ # # autofs # ################################################################################ AUTOFS_VERSION = 5.1.7 AUTOFS_SOURCE = autofs-$(AUTOFS_VERSION).tar.xz AUTOFS_SITE = $(BR2_KERNEL_MIRROR)/linux/daemons/autofs/v5 AUTOFS_LICENSE = GPL-2.0+ AUTOFS_LICENSE_FILES = COPYING COPYRIGHT AUTOFS_DEPENDENCIES = host-flex host-bison host-pkgconf host-nfs-utils # autofs looks on the build machine for the path of modprobe, mount, # umount and fsck programs so tell it explicitly where they will be # located on the target. AUTOFS_CONF_ENV = \ ac_cv_path_E2FSCK=/sbin/fsck \ ac_cv_path_E3FSCK=no \ ac_cv_path_E4FSCK=no \ ac_cv_path_KRB5_CONFIG=no \ ac_cv_path_MODPROBE=/sbin/modprobe \ ac_cv_path_MOUNT=/bin/mount \ ac_cv_path_MOUNT_NFS=/usr/sbin/mount.nfs \ ac_cv_path_UMOUNT=/bin/umount \ 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, # which we have to override with --with-path. AUTOFS_CONF_OPTS = \ --disable-mount-locking \ --enable-ignore-busy \ --without-openldap \ --without-sasl \ --with-path="$(BR_PATH)" \ --with-hesiod=no AUTOFS_MAKE_ENV = DONTSTRIP=1 ifeq ($(BR2_PACKAGE_LIBTIRPC),y) AUTOFS_CONF_OPTS += --with-libtirpc AUTOFS_DEPENDENCIES += libtirpc else AUTOFS_CONF_OPTS += --without-libtirpc endif $(eval $(autotools-package)) ================================================ FILE: package/automake/0001-noman.patch ================================================ Disable manpages build and installation, seems the bundled version of help2man is somewhat old and breaks on modern distributions such as Fedora 20, as reported by Kanibal on IRC. Signed-off-by: Gustavo Zacarias diff -Nura automake-1.14.1.orig/Makefile.in automake-1.14.1/Makefile.in --- automake-1.14.1.orig/Makefile.in 2014-09-10 18:40:57.554164448 -0300 +++ automake-1.14.1/Makefile.in 2014-09-10 18:42:01.050348068 -0300 @@ -3387,7 +3387,7 @@ check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local check: check-am -all-am: Makefile $(INFO_DEPS) $(SCRIPTS) $(MANS) $(DATA) +all-am: Makefile $(INFO_DEPS) $(SCRIPTS) $(DATA) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(amdir)" "$(DESTDIR)$(automake_acdir)" "$(DESTDIR)$(automake_internal_acdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(perllibdir)" "$(DESTDIR)$(pkgvdatadir)" "$(DESTDIR)$(scriptdir)" "$(DESTDIR)$(system_acdir)" "$(DESTDIR)$(perllibdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ @@ -3454,7 +3454,7 @@ install-dist_automake_internal_acDATA install-dist_docDATA \ install-dist_perllibDATA install-dist_pkgvdataDATA \ install-dist_scriptDATA install-dist_system_acDATA \ - install-info-am install-man install-nodist_perllibDATA + install-info-am install-nodist_perllibDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am ================================================ FILE: package/automake/automake.hash ================================================ # Locally calculated sha256 f01d58cd6d9d77fbdca9eb4bbd5ead1988228fdb73d6f7a201f5f8d6b118b469 automake-1.16.5.tar.xz # License files, locally calculated sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/automake/automake.mk ================================================ ################################################################################ # # automake # ################################################################################ AUTOMAKE_VERSION = 1.16.5 AUTOMAKE_SOURCE = automake-$(AUTOMAKE_VERSION).tar.xz AUTOMAKE_SITE = $(BR2_GNU_MIRROR)/automake AUTOMAKE_LICENSE = GPL-2.0+ AUTOMAKE_LICENSE_FILES = COPYING AUTOMAKE_CPE_ID_VENDOR = gnu HOST_AUTOMAKE_DEPENDENCIES = host-autoconf ACLOCAL_HOST_DIR = $(HOST_DIR)/share/aclocal define HOST_AUTOMAKE_GTK_DOC_M4_INSTALL $(INSTALL) -D -m 0644 package/automake/gtk-doc.m4 \ $(ACLOCAL_HOST_DIR)/gtk-doc.m4 endef # ensure staging aclocal dir exists define HOST_AUTOMAKE_MAKE_ACLOCAL mkdir -p $(ACLOCAL_DIR) endef HOST_AUTOMAKE_POST_INSTALL_HOOKS += HOST_AUTOMAKE_GTK_DOC_M4_INSTALL HOST_AUTOMAKE_POST_INSTALL_HOOKS += HOST_AUTOMAKE_MAKE_ACLOCAL $(eval $(host-autotools-package)) # variables used by other packages AUTOMAKE = $(HOST_DIR)/bin/automake ACLOCAL_DIR = $(STAGING_DIR)/usr/share/aclocal ACLOCAL = $(HOST_DIR)/bin/aclocal ACLOCAL_PATH = $(ACLOCAL_DIR):$(ACLOCAL_HOST_DIR) export ACLOCAL_PATH ================================================ FILE: package/automake/gtk-doc.m4 ================================================ dnl -*- mode: autoconf -*- # serial 2 dnl Usage: dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) AC_DEFUN([GTK_DOC_CHECK], [ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"]) AC_MSG_CHECKING([for gtk-doc]) PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no]) AC_MSG_RESULT($have_gtk_doc) if test "$have_gtk_doc" = "no"; then AC_MSG_WARN([ You will not be able to create source packages with 'make dist' because $gtk_doc_requires is not found.]) fi dnl check for tools we added during development dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that dnl may not be writable by the user. Currently, automake requires that the dnl test name must end in '.test'. dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638 AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test]) AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check]) AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) dnl for overriding the documentation installation directory AC_ARG_WITH([html-dir], AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, [with_html_dir='${datadir}/gtk-doc/html']) HTML_DIR="$with_html_dir" AC_SUBST([HTML_DIR]) dnl enable/disable documentation building AC_ARG_ENABLE([gtk-doc], AS_HELP_STRING([--enable-gtk-doc], [use gtk-doc to build documentation [[default=no]]]),, [enable_gtk_doc=no]) AC_MSG_CHECKING([whether to build gtk-doc documentation]) AC_MSG_RESULT($enable_gtk_doc) if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then AC_MSG_ERROR([ You must have $gtk_doc_requires installed to build documentation for $PACKAGE_NAME. Please install gtk-doc or disable building the documentation by adding '--disable-gtk-doc' to '[$]0'.]) fi dnl don't check for glib if we build glib if test "x$PACKAGE_NAME" != "xglib"; then dnl don't fail if someone does not have glib PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:]) fi dnl enable/disable output formats AC_ARG_ENABLE([gtk-doc-html], AS_HELP_STRING([--enable-gtk-doc-html], [build documentation in html format [[default=yes]]]),, [enable_gtk_doc_html=yes]) AC_ARG_ENABLE([gtk-doc-pdf], AS_HELP_STRING([--enable-gtk-doc-pdf], [build documentation in pdf format [[default=no]]]),, [enable_gtk_doc_pdf=no]) if test -z "$GTKDOC_MKPDF"; then enable_gtk_doc_pdf=no fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_DEFAULT_VERBOSITY]) AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes]) AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) ]) ================================================ FILE: package/autossh/Config.in ================================================ config BR2_PACKAGE_AUTOSSH bool "autossh" depends on BR2_USE_MMU # fork() depends on BR2_PACKAGE_DROPBEAR || BR2_PACKAGE_OPENSSH help autossh is a program to start a copy of ssh and monitor it, restarting it as necessary should it die or stop passing traffic. http://www.harding.motd.ca/autossh/ ================================================ FILE: package/autossh/autossh.hash ================================================ # From http://www.harding.motd.ca/autossh/autossh-1.4g.cksums sha256 5fc3cee3361ca1615af862364c480593171d0c54ec156de79fc421e31ae21277 autossh-1.4g.tgz sha1 bd88da0e296b8d85722ee9e7c314e9319e5b2db8 autossh-1.4g.tgz md5 2b804bc1bf6d2f2afaa526d02df7c0a2 autossh-1.4g.tgz # Locally computed sha256 014ec5a85a8899d4ea0e0a886bb3fc4c72b4bbec6414093ba1fdac5b178c25b4 autossh.c ================================================ FILE: package/autossh/autossh.mk ================================================ ################################################################################ # # autossh # ################################################################################ AUTOSSH_VERSION = 1.4g AUTOSSH_SITE = http://www.harding.motd.ca/autossh AUTOSSH_SOURCE = autossh-$(AUTOSSH_VERSION).tgz AUTOSSH_LICENSE = Modified BSD AUTOSSH_LICENSE_FILES = autossh.c # Fix AC_ARG_WITH code generation for --with-ssh AUTOSSH_AUTORECONF = YES AUTOSSH_CONF_OPTS = --with-ssh=/usr/bin/ssh $(eval $(autotools-package)) ================================================ FILE: package/avahi/0001-Fix-NULL-pointer-crashes-from-175.patch ================================================ From 9d31939e55280a733d930b15ac9e4dda4497680c Mon Sep 17 00:00:00 2001 From: Tommi Rantala Date: Mon, 8 Feb 2021 11:04:43 +0200 Subject: [PATCH] Fix NULL pointer crashes from #175 avahi-daemon is crashing when running "ping .local". The crash is due to failing assertion from NULL pointer. Add missing NULL pointer checks to fix it. Introduced in #175 - merge commit 8f75a045709a780c8cf92a6a21e9d35b593bdecd [Retrieved from: https://github.com/lathiat/avahi/commit/9d31939e55280a733d930b15ac9e4dda4497680c] Signed-off-by: Fabrice Fontaine --- avahi-core/browse-dns-server.c | 5 ++++- avahi-core/browse-domain.c | 5 ++++- avahi-core/browse-service-type.c | 3 +++ avahi-core/browse-service.c | 3 +++ avahi-core/browse.c | 3 +++ avahi-core/resolve-address.c | 5 ++++- avahi-core/resolve-host-name.c | 5 ++++- avahi-core/resolve-service.c | 5 ++++- 8 files changed, 29 insertions(+), 5 deletions(-) diff --git a/avahi-core/browse-dns-server.c b/avahi-core/browse-dns-server.c index 049752e9..c2d914fa 100644 --- a/avahi-core/browse-dns-server.c +++ b/avahi-core/browse-dns-server.c @@ -343,7 +343,10 @@ AvahiSDNSServerBrowser *avahi_s_dns_server_browser_new( AvahiSDNSServerBrowser* b; b = avahi_s_dns_server_browser_prepare(server, interface, protocol, domain, type, aprotocol, flags, callback, userdata); + if (!b) + return NULL; + avahi_s_dns_server_browser_start(b); return b; -} \ No newline at end of file +} diff --git a/avahi-core/browse-domain.c b/avahi-core/browse-domain.c index f145d56a..06fa70c0 100644 --- a/avahi-core/browse-domain.c +++ b/avahi-core/browse-domain.c @@ -253,7 +253,10 @@ AvahiSDomainBrowser *avahi_s_domain_browser_new( AvahiSDomainBrowser *b; b = avahi_s_domain_browser_prepare(server, interface, protocol, domain, type, flags, callback, userdata); + if (!b) + return NULL; + avahi_s_domain_browser_start(b); return b; -} \ No newline at end of file +} diff --git a/avahi-core/browse-service-type.c b/avahi-core/browse-service-type.c index fdd22dcd..b1fc7af8 100644 --- a/avahi-core/browse-service-type.c +++ b/avahi-core/browse-service-type.c @@ -171,6 +171,9 @@ AvahiSServiceTypeBrowser *avahi_s_service_type_browser_new( AvahiSServiceTypeBrowser *b; b = avahi_s_service_type_browser_prepare(server, interface, protocol, domain, flags, callback, userdata); + if (!b) + return NULL; + avahi_s_service_type_browser_start(b); return b; diff --git a/avahi-core/browse-service.c b/avahi-core/browse-service.c index 5531360c..63e0275a 100644 --- a/avahi-core/browse-service.c +++ b/avahi-core/browse-service.c @@ -184,6 +184,9 @@ AvahiSServiceBrowser *avahi_s_service_browser_new( AvahiSServiceBrowser *b; b = avahi_s_service_browser_prepare(server, interface, protocol, service_type, domain, flags, callback, userdata); + if (!b) + return NULL; + avahi_s_service_browser_start(b); return b; diff --git a/avahi-core/browse.c b/avahi-core/browse.c index 2941e579..e8a915e9 100644 --- a/avahi-core/browse.c +++ b/avahi-core/browse.c @@ -634,6 +634,9 @@ AvahiSRecordBrowser *avahi_s_record_browser_new( AvahiSRecordBrowser *b; b = avahi_s_record_browser_prepare(server, interface, protocol, key, flags, callback, userdata); + if (!b) + return NULL; + avahi_s_record_browser_start_query(b); return b; diff --git a/avahi-core/resolve-address.c b/avahi-core/resolve-address.c index ac0b29b1..e61dd242 100644 --- a/avahi-core/resolve-address.c +++ b/avahi-core/resolve-address.c @@ -286,7 +286,10 @@ AvahiSAddressResolver *avahi_s_address_resolver_new( AvahiSAddressResolver *b; b = avahi_s_address_resolver_prepare(server, interface, protocol, address, flags, callback, userdata); + if (!b) + return NULL; + avahi_s_address_resolver_start(b); return b; -} \ No newline at end of file +} diff --git a/avahi-core/resolve-host-name.c b/avahi-core/resolve-host-name.c index 808b0e72..4e8e5973 100644 --- a/avahi-core/resolve-host-name.c +++ b/avahi-core/resolve-host-name.c @@ -318,7 +318,10 @@ AvahiSHostNameResolver *avahi_s_host_name_resolver_new( AvahiSHostNameResolver *b; b = avahi_s_host_name_resolver_prepare(server, interface, protocol, host_name, aprotocol, flags, callback, userdata); + if (!b) + return NULL; + avahi_s_host_name_resolver_start(b); return b; -} \ No newline at end of file +} diff --git a/avahi-core/resolve-service.c b/avahi-core/resolve-service.c index 66bf3cae..43771763 100644 --- a/avahi-core/resolve-service.c +++ b/avahi-core/resolve-service.c @@ -519,7 +519,10 @@ AvahiSServiceResolver *avahi_s_service_resolver_new( AvahiSServiceResolver *b; b = avahi_s_service_resolver_prepare(server, interface, protocol, name, type, domain, aprotocol, flags, callback, userdata); + if (!b) + return NULL; + avahi_s_service_resolver_start(b); return b; -} \ No newline at end of file +} ================================================ FILE: package/avahi/Config.in ================================================ config BR2_PACKAGE_AVAHI bool "avahi" # libdaemon uses fork() depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS help Avahi is a system which facilitates service discovery on a local network. http://www.avahi.org/ if BR2_PACKAGE_AVAHI config BR2_PACKAGE_AVAHI_AUTOIPD bool "IPv4LL network address configuration daemon" default y select BR2_PACKAGE_LIBDAEMON help Avahi-autoipd implements IPv4LL, "Dynamic Configuration of IPv4 Link-Local Addresses" (IETF RFC3927), a protocol for automatic IP address configuration from the link-local 169.254.0.0/16 range without the need for a central server. It is primarily intended to be used in ad-hoc networks which lack a DHCP server. config BR2_PACKAGE_AVAHI_DAEMON bool "mDNS/DNS-SD daemon" select BR2_PACKAGE_LIBDAEMON select BR2_PACKAGE_EXPAT help The Avahi mDNS/DNS-SD daemon implementing Apple's ZeroConf architecture (also known as "Rendezvous" or "Bonjour"). The daemon registers local IP addresses and services using mDNS/DNS-SD. config BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY bool "libdns_sd compatibility (Bonjour)" depends on BR2_PACKAGE_AVAHI_DAEMON select BR2_PACKAGE_DBUS help Enable the libdns_sd (Bonjour) compatibility library support for legacy applications. endif comment "avahi needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/avahi/S05avahi-setup.sh ================================================ #!/bin/sh case "$1" in start|"") if [ ! -d /tmp/avahi-autoipd ]; then rm -rf /tmp/avahi-autoipd mkdir /tmp/avahi-autoipd chown avahi.avahi /tmp/avahi-autoipd fi ;; stop) ;; *) echo "Usage: S05avahi-setup.sh {start|stop}" >&2 exit 1 ;; esac ================================================ FILE: package/avahi/S50avahi-daemon ================================================ #!/bin/sh # # avahi-daemon init script DAEMON=/usr/sbin/avahi-daemon case "$1" in start) $DAEMON -c || $DAEMON -D ;; stop) $DAEMON -c && $DAEMON -k ;; reload) $DAEMON -c && $DAEMON -r ;; *) echo "Usage: S50avahi-daemon {start|stop|reload}" >&2 exit 1 ;; esac ================================================ FILE: package/avahi/avahi.hash ================================================ # Locally calculated sha256 060309d7a333d38d951bc27598c677af1796934dbd98e1024e7ad8de798fedda avahi-0.8.tar.gz sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 LICENSE ================================================ FILE: package/avahi/avahi.mk ================================================ ################################################################################ # # avahi # ################################################################################ AVAHI_VERSION = 0.8 AVAHI_SITE = https://github.com/lathiat/avahi/releases/download/v$(AVAHI_VERSION) AVAHI_LICENSE = LGPL-2.1+ AVAHI_LICENSE_FILES = LICENSE AVAHI_CPE_ID_VENDOR = avahi AVAHI_SELINUX_MODULES = avahi AVAHI_INSTALL_STAGING = YES # CVE-2021-26720 is an issue in avahi-daemon-check-dns.sh, which is # part of the Debian packaging and not part of upstream avahi AVAHI_IGNORE_CVES += CVE-2021-26720 # 0001-Fix-NULL-pointer-crashes-from-175.patch AVAHI_IGNORE_CVES += CVE-2021-36217 AVAHI_CONF_ENV = \ avahi_cv_sys_cxx_works=yes \ DATADIRNAME=share # Note: even if we have Gtk2 and Gtk3 support in Buildroot, we # explicitly disable support for them, in order to avoid the following # circular dependencies: # # avahi -> libglade -> libgtk2 -> cups -> avahi # avahi -> libgtk3 -> cups -> avahi # # Since Gtk2 and Gtk3 in Avahi are only used for some example/demo # programs, we decided to disable their support to solve the circular # dependency. AVAHI_CONF_OPTS = \ --disable-qt3 \ --disable-qt4 \ --disable-qt5 \ --disable-gtk \ --disable-gtk3 \ --disable-gdbm \ --disable-pygobject \ --disable-mono \ --disable-monodoc \ --disable-stack-protector \ --disable-introspection \ --with-distro=none \ --disable-manpages \ $(if $(BR2_PACKAGE_AVAHI_AUTOIPD),--enable,--disable)-autoipd \ --with-avahi-user=avahi \ --with-avahi-group=avahi \ --with-autoipd-user=avahi \ --with-autoipd-group=avahi AVAHI_DEPENDENCIES = host-pkgconf $(TARGET_NLS_DEPENDENCIES) AVAHI_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_PACKAGE_SYSTEMD),y) AVAHI_CONF_OPTS += --with-systemdsystemunitdir=/usr/lib/systemd/system else AVAHI_CONF_OPTS += --with-systemdsystemunitdir=no AVAHI_CFLAGS += -DDISABLE_SYSTEMD endif ifneq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_AVAHI_AUTOIPD),) AVAHI_DEPENDENCIES += libdaemon else AVAHI_CONF_OPTS += --disable-libdaemon endif ifeq ($(BR2_PACKAGE_LIBCAP),y) AVAHI_DEPENDENCIES += libcap endif ifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y) AVAHI_DEPENDENCIES += expat AVAHI_CONF_OPTS += --with-xml=expat else AVAHI_CONF_OPTS += --with-xml=none endif ifeq ($(BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY),y) AVAHI_CONF_OPTS += --enable-compat-libdns_sd endif ifeq ($(BR2_PACKAGE_DBUS),y) AVAHI_DEPENDENCIES += dbus AVAHI_CONF_OPTS += --with-dbus-sys=/usr/share/dbus-1/system.d else AVAHI_CONF_OPTS += --disable-dbus endif ifeq ($(BR2_PACKAGE_LIBEVENT),y) AVAHI_DEPENDENCIES += libevent else AVAHI_CONF_OPTS += --disable-libevent endif ifeq ($(BR2_PACKAGE_LIBGLIB2),y) AVAHI_DEPENDENCIES += libglib2 else AVAHI_CONF_OPTS += --disable-glib --disable-gobject endif ifeq ($(BR2_PACKAGE_PYTHON),y) AVAHI_CONF_ENV += \ am_cv_pathless_PYTHON=python \ am_cv_path_PYTHON=$(PYTHON_TARGET_BINARY) \ am_cv_python_version=$(PYTHON_VERSION) \ am_cv_python_platform=linux2 \ am_cv_python_pythondir=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \ am_cv_python_pyexecdir=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \ py_cv_mod_socket_=yes AVAHI_DEPENDENCIES += python AVAHI_CONF_OPTS += --enable-python else AVAHI_CONF_OPTS += --disable-python endif ifeq ($(BR2_PACKAGE_DBUS_PYTHON),y) AVAHI_CONF_OPTS += --enable-python-dbus AVAHI_CONF_ENV += py_cv_mod_dbus_=yes AVAHI_DEPENDENCIES += dbus-python else AVAHI_CONF_OPTS += --disable-python-dbus endif AVAHI_CONF_ENV += CFLAGS="$(AVAHI_CFLAGS)" AVAHI_MAKE_OPTS += LIBS=$(TARGET_NLS_LIBS) define AVAHI_USERS avahi -1 avahi -1 * - - - endef define AVAHI_REMOVE_INITSCRIPT rm -rf $(TARGET_DIR)/etc/init.d/avahi-* endef AVAHI_POST_INSTALL_TARGET_HOOKS += AVAHI_REMOVE_INITSCRIPT ifeq ($(BR2_PACKAGE_AVAHI_AUTOIPD),y) define AVAHI_INSTALL_AUTOIPD rm -f $(TARGET_DIR)/var/lib/avahi-autoipd $(INSTALL) -d -m 0755 $(TARGET_DIR)/var/lib ln -sf /tmp/avahi-autoipd $(TARGET_DIR)/var/lib/avahi-autoipd endef define AVAHI_INSTALL_AUTOIPD_INIT_SYSV $(INSTALL) -D -m 0755 package/avahi/S05avahi-setup.sh $(TARGET_DIR)/etc/init.d/S05avahi-setup.sh endef AVAHI_POST_INSTALL_TARGET_HOOKS += AVAHI_INSTALL_AUTOIPD endif ifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y) ifeq ($(BR2_PACKAGE_SYSTEMD_SYSUSERS),y) define AVAHI_INSTALL_SYSTEMD_SYSUSERS $(INSTALL) -D -m 644 package/avahi/avahi_sysusers.conf \ $(TARGET_DIR)/usr/lib/sysusers.d/avahi.conf endef endif define AVAHI_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/avahi/avahi_tmpfiles.conf \ $(TARGET_DIR)/usr/lib/tmpfiles.d/avahi.conf $(AVAHI_INSTALL_SYSTEMD_SYSUSERS) endef define AVAHI_INSTALL_DAEMON_INIT_SYSV $(INSTALL) -D -m 0755 package/avahi/S50avahi-daemon $(TARGET_DIR)/etc/init.d/S50avahi-daemon endef endif define AVAHI_INSTALL_INIT_SYSV $(AVAHI_INSTALL_AUTOIPD_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 AVAHI_POST_INSTALL_STAGING_HOOKS += AVAHI_STAGING_INSTALL_LIBDNSSD_LINK endif $(eval $(autotools-package)) ================================================ FILE: package/avahi/avahi_sysusers.conf ================================================ # sysusers.d snippet for creating the avahi system user automatically # at boot on systemd-based systems that ship with an unpopulated # /etc. See sysusers.d(5) for details. u avahi - "Avahi mDNS/DNS-SD Stack" ================================================ FILE: package/avahi/avahi_tmpfiles.conf ================================================ d /tmp/avahi-autoipd 0755 avahi avahi ================================================ FILE: package/avrdude/Config.in ================================================ config BR2_PACKAGE_AVRDUDE bool "avrdude" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR # elfutils depends on !BR2_STATIC_LIBS # elfutils depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_ELFUTILS select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT select BR2_PACKAGE_NCURSES help avrdude is a programmer for Atmel AVR microcontrollers this package provides a version with new linuxspi driver https://github.com/kcuzner/avrdude if BR2_PACKAGE_AVRDUDE config BR2_PACKAGE_AVRDUDE_SPI bool "SPI support" default y # Backward compatibility depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 comment "SPI support needs a toolchain w/ linux headers >= 4.6" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 endif comment "avrdude needs a uClibc or glibc toolchain w/ threads, wchar, dynamic library, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR \ || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) ================================================ FILE: package/avrdude/avrdude.hash ================================================ # Locally computed sha256 2a09913450c6457c3fe8d43d5141de579d4e57d67e593e7399a4cd3768cc60f9 avrdude-r1450-br2.tar.gz sha256 201babc7da198873304a77a30dbfc7ca449c9bba52df2dffa4cca0009dbdfcb2 avrdude/COPYING ================================================ FILE: package/avrdude/avrdude.mk ================================================ ################################################################################ # # avrdude # ################################################################################ AVRDUDE_VERSION = r1450 AVRDUDE_SITE_METHOD = svn AVRDUDE_SITE = http://svn.savannah.nongnu.org/svn/avrdude/trunk AVRDUDE_LICENSE = GPL-2.0+ AVRDUDE_LICENSE_FILES = avrdude/COPYING AVRDUDE_SUBDIR = avrdude # Sources coming from svn, without generated configure and Makefile.in # files. AVRDUDE_AUTORECONF = YES AVRDUDE_CONF_OPTS = --enable-linuxgpio AVRDUDE_DEPENDENCIES = elfutils libusb libusb-compat ncurses \ host-flex host-bison ifeq ($(BR2_PACKAGE_AVRDUDE_SPI),y) AVRDUDE_CONF_OPTS += --enable-linuxspi else AVRDUDE_CONF_OPTS += --disable-linuxspi endif ifeq ($(BR2_PACKAGE_LIBFTDI1),y) AVRDUDE_DEPENDENCIES += libftdi1 else ifeq ($(BR2_PACKAGE_LIBFTDI),y) AVRDUDE_DEPENDENCIES += libftdi endif # if /etc/avrdude.conf exists, the installation process creates a # backup file, which we do not want in the context of Buildroot. define AVRDUDE_REMOVE_BACKUP_FILE $(RM) -f $(TARGET_DIR)/etc/avrdude.conf.bak endef AVRDUDE_POST_INSTALL_TARGET_HOOKS += AVRDUDE_REMOVE_BACKUP_FILE $(eval $(autotools-package)) ================================================ FILE: package/avro-c/0001-cmake-Build-failure-without-a-C-compiler-again.patch ================================================ From 8f5633a29b083a84876c00b88fba6d3e8dbbf1a8 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 19 Jul 2020 09:35:09 +0200 Subject: [PATCH] cmake: Build failure without a C++ compiler (again) avro-c fails to build (again) without a C++ compiler because commit 664c2fc7fba19709c1f974055f9cf4c8a799e108 reverted the change made by commit 414a51fdc1856083bb16851f09a4c61a48796132 Fixes: - http://autobuild.buildroot.org/results/cfa91db53cf5502cbb6f902d1e7ad6397c8d70fd Signed-off-by: Fabrice Fontaine [Upstream status: https://issues.apache.org/jira/browse/AVRO-2898] --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c8d7aaf..aa923e18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ # under the License. # cmake_minimum_required(VERSION 3.1) -project(AvroC) +project(AvroC C) enable_testing() set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}) -- 2.27.0 ================================================ FILE: package/avro-c/Config.in ================================================ comment "avro-c needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_SYNC_4 config BR2_PACKAGE_AVRO_C bool "avro-c" depends on !BR2_STATIC_LIBS # Avro unconditionally compiles shared libs depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_JANSSON help Select this option to install the Avro C language bindings, and the command line tools avroappend, avrocat, avromod and avropipe. Apache Avro is a data serialization system. Avro provides: - Rich data structures. - A compact, fast, binary data format. - A container file, to store persistent data. - Remote procedure call (RPC). - Simple integration with dynamic languages. - Code generation is not required to read or write data files nor to use or implement RPC protocols. - Code generation as an optional optimization, only worth implementing for statically typed languages. http://avro.apache.org/ ================================================ FILE: package/avro-c/avro-c.hash ================================================ # From https://downloads.apache.org/avro/avro-1.10.0/c/avro-c-1.10.0.tar.gz.sha512 sha512 2e64926b214fd996abf0553572ec6f46b312cf84df17149d1a7e89f4033b63cc34fabef62b98d727799a8a5d452ac9254e275bdea4bf894e9e1e4588bc5dfc9b avro-c-1.10.0.tar.gz # License files sha256 d62488d6ba17132e92c23c03c80bfedc848267f96ab36489fec860f76cf6819a LICENSE ================================================ FILE: package/avro-c/avro-c.mk ================================================ ################################################################################ # # avro-c # ################################################################################ AVRO_C_VERSION = 1.10.0 AVRO_C_SITE = https://www-eu.apache.org/dist/avro/avro-$(AVRO_C_VERSION)/c AVRO_C_LICENSE = Apache-2.0 AVRO_C_LICENSE_FILES = LICENSE AVRO_C_INSTALL_STAGING = YES AVRO_C_DEPENDENCIES = host-pkgconf jansson ifeq ($(BR2_PACKAGE_SNAPPY),y) AVRO_C_DEPENDENCIES += snappy endif ifeq ($(BR2_PACKAGE_ZLIB),y) AVRO_C_DEPENDENCIES += zlib endif ifeq ($(BR2_PACKAGE_XZ),y) AVRO_C_DEPENDENCIES += xz endif $(eval $(cmake-package)) ================================================ FILE: package/axel/Config.in ================================================ config BR2_PACKAGE_AXEL bool "axel" depends on BR2_TOOLCHAIN_HAS_THREADS help HTTP/FTP download accelerator. https://github.com/axel-download-accelerator/axel/ comment "axel needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/axel/axel.hash ================================================ sha256 46eb4f10a11c4e50320ae6a034ef03ffe59dc11c3c6542a9867a3e4dc0c4b44e axel-2.17.10.tar.xz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/axel/axel.mk ================================================ ################################################################################ # # axel # ################################################################################ AXEL_VERSION = 2.17.10 AXEL_SITE = https://github.com/axel-download-accelerator/axel/releases/download/v$(AXEL_VERSION) AXEL_SOURCE = axel-$(AXEL_VERSION).tar.xz AXEL_LICENSE = GPL-2.0+ AXEL_LICENSE_FILES = COPYING AXEL_CPE_ID_VENDOR = axel_project AXEL_DEPENDENCIES = host-pkgconf $(TARGET_NLS_DEPENDENCIES) # ac_cv_prog_cc_c99 is required for BR2_USE_WCHAR=n because the C99 test # provided by autoconf relies on wchar_t. AXEL_CONF_OPTS = \ ac_cv_prog_cc_c99=-std=c99 \ CFLAGS="$(TARGET_CFLAGS)" ifeq ($(BR2_PACKAGE_OPENSSL),y) AXEL_CONF_OPTS += --with-ssl AXEL_DEPENDENCIES += openssl else AXEL_CONF_OPTS += --without-ssl endif $(eval $(autotools-package)) ================================================ FILE: package/axfsutils/axfsutils.hash ================================================ # Locally calculated sha256 7d8c0febaf6f104c2b179475ea1ee6d361688ad7fa4c98dfdf7395fcff2be685 axfsutils-384a1ea214c8cf8359faba00a12513ee7ae1a9f5.tar.gz sha256 1929a1e67d189aa3a24de76255841b33818f7f65944b6e73a1568ba575ab54d5 mkfs.axfs-legacy/COPYING ================================================ FILE: package/axfsutils/axfsutils.mk ================================================ ################################################################################ # # axfsutils # ################################################################################ AXFSUTILS_VERSION = 384a1ea214c8cf8359faba00a12513ee7ae1a9f5 AXFSUTILS_SITE = $(call github,jaredeh,axfs,$(AXFSUTILS_VERSION)) AXFSUTILS_LICENSE = GPL-2.0 AXFSUTILS_LICENSE_FILES = mkfs.axfs-legacy/COPYING 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. define HOST_AXFSUTILS_BUILD_CMDS $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D)/mkfs.axfs-legacy endef define HOST_AXFSUTILS_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/mkfs.axfs-legacy/mkfs.axfs \ $(HOST_DIR)/bin/mkfs.axfs endef $(eval $(host-generic-package)) ================================================ FILE: package/azmq/0001-Conditionally-disable-test-and-doc-builds.patch ================================================ From d960f93fb52e373f76cfedbee5f4fb0c5276856a Mon Sep 17 00:00:00 2001 From: RJ Ascani Date: Thu, 20 Jul 2017 15:53:40 -0700 Subject: [PATCH] Conditionally disable test and doc builds Signed-off-by: RJ Ascani --- CMakeLists.txt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b5b9cc..97006a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,9 @@ include_directories(${Boost_INCLUDE_DIRS} ${ZeroMQ_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}) -enable_testing() +if (BUILD_TESTING) + enable_testing() +endif() macro(add_catch_test name) if (TEST_REPORT_FORMAT) @@ -59,8 +61,12 @@ macro(add_catch_test name) endif() endmacro() -add_subdirectory(test) -add_subdirectory(doc) +if (BUILD_TESTING) + add_subdirectory(test) +endif() +if (BUILD_DOC) + add_subdirectory(doc) +endif() install(DIRECTORY ${PROJECT_SOURCE_DIR}/azmq DESTINATION include) -- 2.13.3 ================================================ FILE: package/azmq/Config.in ================================================ config BR2_PACKAGE_AZMQ bool "azmq" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # boost-log depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_USE_WCHAR # boost depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr select BR2_PACKAGE_ZEROMQ select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_CHRONO select BR2_PACKAGE_BOOST_DATE_TIME select BR2_PACKAGE_BOOST_LOG select BR2_PACKAGE_BOOST_RANDOM select BR2_PACKAGE_BOOST_REGEX select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_THREAD help This library provides Boost Asio style bindings for ZeroMQ. https://github.com/zeromq/azmq comment "azmq needs a toolchain w/ C++11, wchar and NPTL" depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \ && BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS_NPTL) comment "azmq needs exception_ptr" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/azmq/azmq.hash ================================================ # Locally calculated # https://github.com/zeromq/azmq/archive/v1.0.2.tar.gz sha256 25fa8b07756cffae95e25a55c7ea42efe02e8cd797552201aa771dd69cfc8fbf azmq-1.0.2.tar.gz sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 LICENSE-BOOST_1_0 ================================================ FILE: package/azmq/azmq.mk ================================================ ################################################################################ # # azmq # ################################################################################ AZMQ_VERSION = 1.0.2 AZMQ_SITE = $(call github,zeromq,azmq,v$(AZMQ_VERSION)) AZMQ_DEPENDENCIES = boost zeromq AZMQ_LICENSE = BSL-1.0 AZMQ_LICENSE_FILES = LICENSE-BOOST_1_0 # AZMQ is a header only library, so it does not need to be installed on the # target. AZMQ_INSTALL_STAGING = YES AZMQ_INSTALL_TARGET = NO $(eval $(cmake-package)) ================================================ FILE: package/azure-iot-sdk-c/0001-hmac-c-fix-mismatching-function-prototype.patch ================================================ From 3a7997af72e7a4f70109d1639e6725b39046443e Mon Sep 17 00:00:00 2001 From: Francesco Giancane <30423178+fgiancane8@users.noreply.github.com> Date: Fri, 2 Jul 2021 20:47:38 +0200 Subject: [PATCH] hmac.c: fix mismatching function prototype (#537) The reported function raises a warning when compilers assert the flag `-Warray-parameter=`, signaling that an array-type argument was promoted to a pointer-type argument. While in practice in most C implementations this is correct, fixing the warning (and, in this case, indicating the maximum size for the array) would represent a best-practice for finding out-of-bound accesses or identifying wrongly-sized arrays passed in the function. Signed-off-by: Francesco Giancane [Retrieved from: https://github.com/Azure/azure-c-shared-utility/commit/3a7997af72e7a4f70109d1639e6725b39046443e] Signed-off-by: Fabrice Fontaine --- src/hmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hmac.c b/src/hmac.c index 53f2411f8..160af9d2f 100644 --- a/c-utility/src/hmac.c +++ b/c-utility/src/hmac.c @@ -208,7 +208,7 @@ int hmacFinalBits(HMACContext *ctx, * sha Error Code. * */ -int hmacResult(HMACContext *ctx, uint8_t *digest) +int hmacResult(HMACContext *ctx, uint8_t digest[USHAMaxHashSize]) { if (!ctx) return shaNull; ================================================ FILE: package/azure-iot-sdk-c/Config.in ================================================ config BR2_PACKAGE_AZURE_IOT_SDK_C bool "azure-iot-sdk-c" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_USE_WCHAR select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Microsoft Azure IoT Hub device SDK for C is used to connect devices running C code to Azure IoT Hub. https://github.com/Azure/azure-iot-sdk-c comment "azure-iot-sdk-c needs a toolchain w/ C++, NPTL and wchar" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_USE_WCHAR ================================================ FILE: package/azure-iot-sdk-c/azure-iot-sdk-c.hash ================================================ # Locally computed: sha256 987b469aa76d6c81e5dbcd62e81f4ece0620770930cf65722754c76aedd6049f azure-iot-sdk-c-LTS_01_2021_Ref01-br1.tar.gz # Hash for license files: sha256 be2e9913fad9ff33607287c728f392579e2a6cc83e51b203ef6274c41db02ee7 LICENSE ================================================ FILE: package/azure-iot-sdk-c/azure-iot-sdk-c.mk ================================================ ################################################################################ # # azure-iot-sdk-c # ################################################################################ AZURE_IOT_SDK_C_VERSION = LTS_01_2021_Ref01 AZURE_IOT_SDK_C_SITE = https://github.com/Azure/azure-iot-sdk-c AZURE_IOT_SDK_C_SITE_METHOD = git AZURE_IOT_SDK_C_GIT_SUBMODULES = YES AZURE_IOT_SDK_C_LICENSE = MIT AZURE_IOT_SDK_C_LICENSE_FILES = LICENSE AZURE_IOT_SDK_C_INSTALL_STAGING = YES AZURE_IOT_SDK_C_DEPENDENCIES = libxml2 openssl libcurl util-linux AZURE_IOT_SDK_C_CONF_OPTS = -Dskip_samples=ON # The project only supports building one kind of library. # Further the install target installs the wrong files, so we do it here: ifeq ($(BR2_STATIC_LIBS),y) AZURE_IOT_SDK_C_LIBS += \ uamqp/libuamqp.a \ c-utility/libaziotsharedutil.a \ iothub_client/libiothub_client.a \ iothub_client/libiothub_client_mqtt_ws_transport.a \ iothub_client/libiothub_client_amqp_ws_transport.a \ iothub_client/libiothub_client_http_transport.a \ iothub_client/libiothub_client_amqp_transport.a \ iothub_client/libiothub_client_mqtt_transport.a \ iothub_service_client/libiothub_service_client.a \ serializer/libserializer.a \ umqtt/libumqtt.a \ deps/uhttp/libuhttp.a \ deps/umock-c/libumock_c.a \ libparson.a else AZURE_IOT_SDK_C_LIBS += \ uamqp/libuamqp.so \ c-utility/libaziotsharedutil.so \ iothub_client/libiothub_client.so \ iothub_client/libiothub_client_mqtt_ws_transport.so \ iothub_client/libiothub_client_amqp_ws_transport.so \ iothub_client/libiothub_client_http_transport.so \ iothub_client/libiothub_client_amqp_transport.so \ iothub_client/libiothub_client_mqtt_transport.so \ iothub_service_client/libiothub_service_client.so \ serializer/libserializer.so \ umqtt/libumqtt.so.1.1.12 \ deps/uhttp/libuhttp.so \ deps/umock-c/libumock_c.so \ libparson.so define AZURE_IOT_SDK_C_CREATE_SYMLINKS ln -sf libumqtt.so.1.1.12 $(1)/usr/lib/libumqtt.so.1 ln -sf libumqtt.so.1.1.12 $(1)/usr/lib/libumqtt.so endef endif define AZURE_IOT_SDK_C_INSTALL_LIBS $(foreach l,$(AZURE_IOT_SDK_C_LIBS), \ $(INSTALL) -D -m 0755 $(@D)/$(l) $(1)/usr/lib/$(notdir $(l)) ) $(call AZURE_IOT_SDK_C_CREATE_SYMLINKS,$(1)) endef define AZURE_IOT_SDK_C_INSTALL_STAGING_CMDS $(call AZURE_IOT_SDK_C_INSTALL_LIBS,$(STAGING_DIR)) cp -a $(@D)/c-utility/inc/* $(STAGING_DIR)/usr/include/ cp -a $(@D)/iothub_client/inc/* $(STAGING_DIR)/usr/include/ endef define AZURE_IOT_SDK_C_INSTALL_TARGET_CMDS $(call AZURE_IOT_SDK_C_INSTALL_LIBS,$(TARGET_DIR)) endef $(eval $(cmake-package)) ================================================ FILE: package/b43-firmware/Config.in ================================================ config BR2_PACKAGE_B43_FIRMWARE bool "b43-firmware" help Firmware for the Broadcom Wifi devices supported by the b43 kernel driver. if BR2_PACKAGE_B43_FIRMWARE choice prompt "Kernel version" default BR2_PACKAGE_B43_FIRMWARE_KERNEL_AFTER_3_2 help Select the kernel version you're using. The b43 driver in kernel >= 3.2 need a different firmware than the b43 drivers from kernel < 3.2. config BR2_PACKAGE_B43_FIRMWARE_KERNEL_AFTER_3_2 bool ">= 3.2" config BR2_PACKAGE_B43_FIRMWARE_KERNEL_BEFORE_3_2 bool "< 3.2" endchoice endif ================================================ FILE: package/b43-firmware/b43-firmware.hash ================================================ # Locally computed: sha256 f1e7067aac5b62b67b8b6e4c517990277804339ac16065eb13c731ff909ae46f broadcom-wl-5.100.138.tar.bz2 sha256 26a8c370f48fc129d0731cfd751c36cae1419b0bc8ca35781126744e60eae009 broadcom-wl-5.10.56.27.3_mipsel.tar.bz2 ================================================ FILE: package/b43-firmware/b43-firmware.mk ================================================ ################################################################################ # # b43-firmware # ################################################################################ ifeq ($(BR2_PACKAGE_B43_FIRMWARE_KERNEL_AFTER_3_2),y) B43_FIRMWARE_VERSION = 5.100.138 B43_FIRMWARE_SITE = http://www.lwfinger.com/b43-firmware B43_FIRMWARE_SOURCE = broadcom-wl-$(B43_FIRMWARE_VERSION).tar.bz2 B43_FIRMWARE_DRIVER_FILE = linux/wl_apsta.o else ifeq ($(BR2_PACKAGE_B43_FIRMWARE_KERNEL_BEFORE_3_2),y) B43_FIRMWARE_VERSION = 5.10.56.27.3 B43_FIRMWARE_SITE = http://mirror2.openwrt.org/sources B43_FIRMWARE_SOURCE = broadcom-wl-$(B43_FIRMWARE_VERSION)_mipsel.tar.bz2 B43_FIRMWARE_DRIVER_FILE = driver/wl_apsta/wl_prebuilt.o endif B43_FIRMWARE_LICENSE = PROPRIETARY B43_FIRMWARE_REDISTRIBUTE = NO B43_FIRMWARE_DEPENDENCIES = host-b43-fwcutter define B43_FIRMWARE_INSTALL_TARGET_CMDS $(INSTALL) -d -m 0755 $(TARGET_DIR)/lib/firmware/ $(HOST_DIR)/bin/b43-fwcutter -w $(TARGET_DIR)/lib/firmware/ $(@D)/$(B43_FIRMWARE_DRIVER_FILE) endef $(eval $(generic-package)) ================================================ FILE: package/b43-fwcutter/b43-fwcutter.hash ================================================ # Locally calculated after checking pgp signature sha256 d6ea85310df6ae08e7f7e46d8b975e17fc867145ee249307413cfbe15d7121ce b43-fwcutter-019.tar.bz2 # Hash for license file sha256 6af9fc424d57f29b7e59b35e52d4a91aca80304506275f2c0c076317fc6eb583 COPYING ================================================ FILE: package/b43-fwcutter/b43-fwcutter.mk ================================================ ################################################################################ # # b43-fwcutter # ################################################################################ B43_FWCUTTER_VERSION = 019 B43_FWCUTTER_SITE = http://bues.ch/b43/fwcutter B43_FWCUTTER_SOURCE = b43-fwcutter-$(B43_FWCUTTER_VERSION).tar.bz2 B43_FWCUTTER_LICENSE = BSD-2-Clause B43_FWCUTTER_LICENSE_FILES = COPYING define HOST_B43_FWCUTTER_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define HOST_B43_FWCUTTER_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/b43-fwcutter $(HOST_DIR)/bin/b43-fwcutter endef $(eval $(host-generic-package)) ================================================ FILE: package/babeld/Config.in ================================================ 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/ ================================================ FILE: package/babeld/S50babeld ================================================ #!/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 $? ================================================ FILE: package/babeld/babeld.hash ================================================ # Locally computed sha256 154f00e0a8bf35d6ea9028886c3dc5c3c342dd1a367df55ef29a547b75867f07 babeld-1.9.2.tar.gz sha256 b415c41292cedef6c97b243609e50552887c29343566c639f23282d31efd2afd LICENCE ================================================ FILE: package/babeld/babeld.mk ================================================ ################################################################################ # # babeld # ################################################################################ BABELD_VERSION = 1.9.2 BABELD_SITE = http://www.pps.univ-paris-diderot.fr/~jch/software/files BABELD_LICENSE = MIT BABELD_LICENSE_FILES = LICENCE 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 endef $(eval $(generic-package)) ================================================ FILE: package/babeld/babeld.service ================================================ [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 ================================================ FILE: package/babeltrace2/0001-configure-simplify-warning-flags-detection.patch ================================================ From 28ba44ad9ca14153e96c94a9100423ea224c1af3 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Tue, 18 Feb 2020 13:14:22 -0500 Subject: [PATCH] configure: simplify warning flags detection We currently use the AX_COMPILER_FLAGS macro to detect the warning flags that the current compiler supports. It works, but is quite invasive. It unconditionally enables a bunch of warnings we don't want, which forces us to disable them with many -Wno-foo switches. Instead of using AX_COMPILER_FLAGS, we can use the slightly lower lever macro AX_APPEND_COMPILE_FLAGS to achieve our goal of detecting which warning flags are supported. This is what we ended up using in lttng-tools (a completely unrelated project, but that has a suspiciously high ratio of contributors in common with Babeltrace). I looked in our git history to see which warning flags were mentioned in commit messages. I have added the flags that did find actual problems and are not enabled by default to the AX_APPEND_COMPILE_FLAGS invocation. I have also added the flags that AX_COMPILER_FLAGS did provide, which we didn't need to disable. The --{enable,disable}-Werror flag is added using an explicit AC_ARG_ENABLE. In lttng-tools, it was decided to _not_ have -Werror by default, so I suggest we do the same in Babeltrace, for consistency (although it saddens me very much). Developers who want to build with -Werror will need to pass --enable-Werror. Note that with this patch, we lose the following configure switch, that is provided by AX_COMPILER_FLAGS: --enable-compile-warnings=[no/yes/error] Change-Id: If968f7385a7f5c48d27f402c76bc26241a8f505a Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/3209 Tested-by: jenkins Reviewed-by: Michael Jeanson [Retrieved from: https://github.com/efficios/babeltrace/commit/28ba44ad9ca14153e96c94a9100423ea224c1af3] Signed-off-by: Fabrice Fontaine --- configure.ac | 74 +++++++++------ m4/ax_compiler_flags.m4 | 158 ------------------------------- m4/ax_compiler_flags_cflags.m4 | 161 -------------------------------- m4/ax_compiler_flags_gir.m4 | 60 ------------ m4/ax_compiler_flags_ldflags.m4 | 111 ---------------------- 5 files changed, 46 insertions(+), 518 deletions(-) delete mode 100644 m4/ax_compiler_flags.m4 delete mode 100644 m4/ax_compiler_flags_cflags.m4 delete mode 100644 m4/ax_compiler_flags_gir.m4 delete mode 100644 m4/ax_compiler_flags_ldflags.m4 diff --git a/configure.ac b/configure.ac index 055fba101..7ebcf2ad4 100644 --- a/configure.ac +++ b/configure.ac @@ -660,25 +660,35 @@ target. CFLAGS=${save_CFLAGS} # Detect C and LD warning flags supported by the compiler. -AX_COMPILER_FLAGS( - [WARN_CFLAGS], dnl CFLAGS variable name - [WARN_LDFLAGS], dnl LDFLAGS variable name (unused for now) - [], dnl is-release - [], dnl Extra base CFLAGS - [ dnl Extra "yes" CFLAGS - dnl Disable these flags, either because we don't want them - dnl or because we want them but are not ready to enable them - dnl yet. - -Wno-sign-compare dnl - -Wno-inline dnl - -Wno-declaration-after-statement dnl - -Wno-switch-enum dnl - -Wno-switch-default dnl - -Wno-packed dnl - -Wno-pointer-arith dnl + +# Detect warning flags supported by the compiler, append them to WARN_CFLAGS. +# +# Pass -Werror as an extra flag during the test: this is needed to make the +# -Wunknown-warning-option diagnostic fatal with clang. +AX_APPEND_COMPILE_FLAGS([ dnl + -Wall dnl + -Wextra dnl + -Wstrict-prototypes dnl + -Wmissing-prototypes dnl + -Wmissing-declarations dnl + -Wnull-dereference dnl + -Wundef dnl + -Wredundant-decls dnl + -Wshadow dnl + -Wjump-misses-init dnl + -Wtautological-constant-out-of-range-compare dnl + -Wnested-externs dnl + -Wwrite-strings dnl + -Wformat=2 dnl -Wno-format-nonliteral dnl - -Wno-double-promotion dnl - -Wno-cast-align dnl + -Wstrict-aliasing dnl + -Wmissing-noreturn dnl + -Winit-self dnl + -Wduplicated-cond dnl + -Wduplicated-branches dnl + -Wlogical-op dnl + -Wno-unused-parameter dnl + -Wno-sign-compare dnl dnl dnl Some versions of SWIG (like 3.0.12) generate code that produces dnl -Wcast-function-type warnings. This warning is present in gcc >= 8. This @@ -692,24 +702,32 @@ AX_COMPILER_FLAGS( dnl dnl Ref: https://github.com/swig/swig/issues/1259 -Wno-cast-function-type dnl - ]) - -# CFLAGS from AX_COMPILER_FLAGS. -AM_CFLAGS="${AM_CFLAGS} ${WARN_CFLAGS}" + -Wno-missing-field-initializers dnl + ], + [WARN_CFLAGS], + [-Werror]) + +# When given, add -Werror to WARN_CFLAGS. +AC_ARG_ENABLE([Werror], + [AS_HELP_STRING([--enable-Werror], [Treat compiler warnings as errors.])] +) +AS_IF([test "x$enable_Werror" = "xyes"], + [WARN_CFLAGS="${WARN_CFLAGS} -Werror"] +) -# The test used in AX_COMPILER_FLAGS, generated using AC_LANG_PROGRAM, is +# The test used in AX_APPEND_COMPILE_FLAGS, generated using AC_LANG_PROGRAM, is # written in such a way that it triggers a -Wold-style-definition warning. So -# if the user has -Werror in their CFLAGS, that warning flag will end up -# disabled, because the test program will not build. +# this warning always ends up disabled if we put it there, because the test +# program does not build. # # Enable it here unconditionally. It is supported by GCC >= 4.8 and by Clang # (it is accepted for compatibility although it has no effect), and there is # not reason to not want it. -AM_CFLAGS="${AM_CFLAGS} -Wold-style-definition" +WARN_CFLAGS="${WARN_CFLAGS} -Wold-style-definition" -# We want this one to always be an error. -AM_CFLAGS="${AM_CFLAGS} -Werror=implicit-function-declaration" +# CFLAGS from AX_APPEND_COMPILE_FLAGS. +AM_CFLAGS="${AM_CFLAGS} ${WARN_CFLAGS}" # Done for AM_CFLAGS. AC_SUBST(AM_CFLAGS) diff --git a/m4/ax_compiler_flags.m4 b/m4/ax_compiler_flags.m4 deleted file mode 100644 index ddb0456c4..000000000 --- a/m4/ax_compiler_flags.m4 +++ /dev/null @@ -1,158 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_COMPILER_FLAGS([CFLAGS-VARIABLE], [LDFLAGS-VARIABLE], [IS-RELEASE], [EXTRA-BASE-CFLAGS], [EXTRA-YES-CFLAGS], [UNUSED], [UNUSED], [UNUSED], [EXTRA-BASE-LDFLAGS], [EXTRA-YES-LDFLAGS], [UNUSED], [UNUSED], [UNUSED]) -# -# DESCRIPTION -# -# Check for the presence of an --enable-compile-warnings option to -# configure, defaulting to "error" in normal operation, or "yes" if -# IS-RELEASE is equal to "yes". Return the value in the variable -# $ax_enable_compile_warnings. -# -# Depending on the value of --enable-compile-warnings, different compiler -# warnings are checked to see if they work with the current compiler and, -# if so, are appended to CFLAGS-VARIABLE and LDFLAGS-VARIABLE. This -# allows a consistent set of baseline compiler warnings to be used across -# a code base, irrespective of any warnings enabled locally by individual -# developers. By standardising the warnings used by all developers of a -# project, the project can commit to a zero-warnings policy, using -Werror -# to prevent compilation if new warnings are introduced. This makes -# catching bugs which are flagged by warnings a lot easier. -# -# By providing a consistent --enable-compile-warnings argument across all -# projects using this macro, continuous integration systems can easily be -# configured the same for all projects. Automated systems or build -# systems aimed at beginners may want to pass the --disable-Werror -# argument to unconditionally prevent warnings being fatal. -# -# --enable-compile-warnings can take the values: -# -# * no: Base compiler warnings only; not even -Wall. -# * yes: The above, plus a broad range of useful warnings. -# * error: The above, plus -Werror so that all warnings are fatal. -# Use --disable-Werror to override this and disable fatal -# warnings. -# -# The set of base and enabled flags can be augmented using the -# EXTRA-*-CFLAGS and EXTRA-*-LDFLAGS variables, which are tested and -# appended to the output variable if --enable-compile-warnings is not -# "no". Flags should not be disabled using these arguments, as the entire -# point of AX_COMPILER_FLAGS is to enforce a consistent set of useful -# compiler warnings on code, using warnings which have been chosen for low -# false positive rates. If a compiler emits false positives for a -# warning, a #pragma should be used in the code to disable the warning -# locally. See: -# -# https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas -# -# The EXTRA-* variables should only be used to supply extra warning flags, -# and not general purpose compiler flags, as they are controlled by -# configure options such as --disable-Werror. -# -# IS-RELEASE can be used to disable -Werror when making a release, which -# is useful for those hairy moments when you just want to get the release -# done as quickly as possible. Set it to "yes" to disable -Werror. By -# default, it uses the value of $ax_is_release, so if you are using the -# AX_IS_RELEASE macro, there is no need to pass this parameter. For -# example: -# -# AX_IS_RELEASE([git-directory]) -# AX_COMPILER_FLAGS() -# -# CFLAGS-VARIABLE defaults to WARN_CFLAGS, and LDFLAGS-VARIABLE defaults -# to WARN_LDFLAGS. Both variables are AC_SUBST-ed by this macro, but must -# be manually added to the CFLAGS and LDFLAGS variables for each target in -# the code base. -# -# If C++ language support is enabled with AC_PROG_CXX, which must occur -# before this macro in configure.ac, warning flags for the C++ compiler -# are AC_SUBST-ed as WARN_CXXFLAGS, and must be manually added to the -# CXXFLAGS variables for each target in the code base. EXTRA-*-CFLAGS can -# be used to augment the base and enabled flags. -# -# Warning flags for g-ir-scanner (from GObject Introspection) are -# AC_SUBST-ed as WARN_SCANNERFLAGS. This variable must be manually added -# to the SCANNERFLAGS variable for each GIR target in the code base. If -# extra g-ir-scanner flags need to be enabled, the AX_COMPILER_FLAGS_GIR -# macro must be invoked manually. -# -# AX_COMPILER_FLAGS may add support for other tools in future, in addition -# to the compiler and linker. No extra EXTRA-* variables will be added -# for those tools, and all extra support will still use the single -# --enable-compile-warnings configure option. For finer grained control -# over the flags for individual tools, use AX_COMPILER_FLAGS_CFLAGS, -# AX_COMPILER_FLAGS_LDFLAGS and AX_COMPILER_FLAGS_* for new tools. -# -# The UNUSED variables date from a previous version of this macro, and are -# automatically appended to the preceding non-UNUSED variable. They should -# be left empty in new uses of the macro. -# -# LICENSE -# -# Copyright (c) 2014, 2015 Philip Withnall -# Copyright (c) 2015 David King -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 14 - -# _AX_COMPILER_FLAGS_LANG([LANGNAME]) -m4_defun([_AX_COMPILER_FLAGS_LANG], -[m4_ifdef([_AX_COMPILER_FLAGS_LANG_]$1[_enabled], [], - [m4_define([_AX_COMPILER_FLAGS_LANG_]$1[_enabled], [])dnl - AX_REQUIRE_DEFINED([AX_COMPILER_FLAGS_]$1[FLAGS])])dnl -]) - -AC_DEFUN([AX_COMPILER_FLAGS],[ - # C support is enabled by default. - _AX_COMPILER_FLAGS_LANG([C]) - # Only enable C++ support if AC_PROG_CXX is called. The redefinition of - # AC_PROG_CXX is so that a fatal error is emitted if this macro is called - # before AC_PROG_CXX, which would otherwise cause no C++ warnings to be - # checked. - AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AX_COMPILER_FLAGS_LANG([CXX])], - [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AX_COMPILER_FLAGS_LANG([CXX])])]) - AX_REQUIRE_DEFINED([AX_COMPILER_FLAGS_LDFLAGS]) - - # Default value for IS-RELEASE is $ax_is_release - ax_compiler_flags_is_release=m4_tolower(m4_normalize(ifelse([$3],, - [$ax_is_release], - [$3]))) - - AC_ARG_ENABLE([compile-warnings], - AS_HELP_STRING([--enable-compile-warnings=@<:@no/yes/error@:>@], - [Enable compiler warnings and errors]),, - [AS_IF([test "$ax_compiler_flags_is_release" = "yes"], - [enable_compile_warnings="yes"], - [enable_compile_warnings="error"])]) - AC_ARG_ENABLE([Werror], - AS_HELP_STRING([--disable-Werror], - [Unconditionally make all compiler warnings non-fatal]),, - [enable_Werror=maybe]) - - # Return the user's chosen warning level - AS_IF([test "$enable_Werror" = "no" -a \ - "$enable_compile_warnings" = "error"],[ - enable_compile_warnings="yes" - ]) - - ax_enable_compile_warnings=$enable_compile_warnings - - AX_COMPILER_FLAGS_CFLAGS([$1],[$ax_compiler_flags_is_release], - [$4],[$5 $6 $7 $8]) - m4_ifdef([_AX_COMPILER_FLAGS_LANG_CXX_enabled], - [AX_COMPILER_FLAGS_CXXFLAGS([WARN_CXXFLAGS], - [$ax_compiler_flags_is_release], - [$4],[$5 $6 $7 $8])]) - AX_COMPILER_FLAGS_LDFLAGS([$2],[$ax_compiler_flags_is_release], - [$9],[$10 $11 $12 $13]) - AX_COMPILER_FLAGS_GIR([WARN_SCANNERFLAGS],[$ax_compiler_flags_is_release]) -])dnl AX_COMPILER_FLAGS diff --git a/m4/ax_compiler_flags_cflags.m4 b/m4/ax_compiler_flags_cflags.m4 deleted file mode 100644 index 916f91837..000000000 --- a/m4/ax_compiler_flags_cflags.m4 +++ /dev/null @@ -1,161 +0,0 @@ -# ============================================================================= -# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags_cflags.html -# ============================================================================= -# -# SYNOPSIS -# -# AX_COMPILER_FLAGS_CFLAGS([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS]) -# -# DESCRIPTION -# -# Add warning flags for the C compiler to VARIABLE, which defaults to -# WARN_CFLAGS. VARIABLE is AC_SUBST-ed by this macro, but must be -# manually added to the CFLAGS variable for each target in the code base. -# -# This macro depends on the environment set up by AX_COMPILER_FLAGS. -# Specifically, it uses the value of $ax_enable_compile_warnings to decide -# which flags to enable. -# -# LICENSE -# -# Copyright (c) 2014, 2015 Philip Withnall -# Copyright (c) 2017, 2018 Reini Urban -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 17 - -AC_DEFUN([AX_COMPILER_FLAGS_CFLAGS],[ - AC_REQUIRE([AC_PROG_SED]) - AX_REQUIRE_DEFINED([AX_APPEND_COMPILE_FLAGS]) - AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) - AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG]) - - # Variable names - m4_define([ax_warn_cflags_variable], - [m4_normalize(ifelse([$1],,[WARN_CFLAGS],[$1]))]) - - AC_LANG_PUSH([C]) - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ - [#ifndef __cplusplus - #error "no C++" - #endif]])], - [ax_compiler_cxx=yes;], - [ax_compiler_cxx=no;]) - - # Always pass -Werror=unknown-warning-option to get Clang to fail on bad - # flags, otherwise they are always appended to the warn_cflags variable, and - # Clang warns on them for every compilation unit. - # If this is passed to GCC, it will explode, so the flag must be enabled - # conditionally. - AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option],[ - ax_compiler_flags_test="-Werror=unknown-warning-option" - ],[ - ax_compiler_flags_test="" - ]) - - # Check that -Wno-suggest-attribute=format is supported - AX_CHECK_COMPILE_FLAG([-Wno-suggest-attribute=format],[ - ax_compiler_no_suggest_attribute_flags="-Wno-suggest-attribute=format" - ],[ - ax_compiler_no_suggest_attribute_flags="" - ]) - - # Base flags - AX_APPEND_COMPILE_FLAGS([ dnl - -fno-strict-aliasing dnl - $3 dnl - ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) - - AS_IF([test "$ax_enable_compile_warnings" != "no"],[ - if test "$ax_compiler_cxx" = "no" ; then - # C-only flags. Warn in C++ - AX_APPEND_COMPILE_FLAGS([ dnl - -Wnested-externs dnl - -Wmissing-prototypes dnl - -Wstrict-prototypes dnl - -Wdeclaration-after-statement dnl - -Wimplicit-function-declaration dnl - -Wold-style-definition dnl - -Wjump-misses-init dnl - ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) - fi - - # "yes" flags - AX_APPEND_COMPILE_FLAGS([ dnl - -Wall dnl - -Wextra dnl - -Wundef dnl - -Wwrite-strings dnl - -Wpointer-arith dnl - -Wmissing-declarations dnl - -Wredundant-decls dnl - -Wno-unused-parameter dnl - -Wno-missing-field-initializers dnl - -Wformat=2 dnl - -Wcast-align dnl - -Wformat-nonliteral dnl - -Wformat-security dnl - -Wsign-compare dnl - -Wstrict-aliasing dnl - -Wshadow dnl - -Winline dnl - -Wpacked dnl - -Wmissing-format-attribute dnl - -Wmissing-noreturn dnl - -Winit-self dnl - -Wredundant-decls dnl - -Wmissing-include-dirs dnl - -Wunused-but-set-variable dnl - -Warray-bounds dnl - -Wreturn-type dnl - -Wswitch-enum dnl - -Wswitch-default dnl - -Wduplicated-cond dnl - -Wduplicated-branches dnl - -Wlogical-op dnl - -Wrestrict dnl - -Wnull-dereference dnl - -Wdouble-promotion dnl - $4 dnl - $5 dnl - $6 dnl - $7 dnl - ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) - ]) - AS_IF([test "$ax_enable_compile_warnings" = "error"],[ - # "error" flags; -Werror has to be appended unconditionally because - # it's not possible to test for - # - # suggest-attribute=format is disabled because it gives too many false - # positives - AX_APPEND_FLAG([-Werror],ax_warn_cflags_variable) - - AX_APPEND_COMPILE_FLAGS([ dnl - [$ax_compiler_no_suggest_attribute_flags] dnl - ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) - ]) - - # In the flags below, when disabling specific flags, always add *both* - # -Wno-foo and -Wno-error=foo. This fixes the situation where (for example) - # we enable -Werror, disable a flag, and a build bot passes CFLAGS=-Wall, - # which effectively turns that flag back on again as an error. - for flag in $ax_warn_cflags_variable; do - AS_CASE([$flag], - [-Wno-*=*],[], - [-Wno-*],[ - AX_APPEND_COMPILE_FLAGS([-Wno-error=$(AS_ECHO([$flag]) | $SED 's/^-Wno-//')], - ax_warn_cflags_variable, - [$ax_compiler_flags_test]) - ]) - done - - AC_LANG_POP([C]) - - # Substitute the variables - AC_SUBST(ax_warn_cflags_variable) -])dnl AX_COMPILER_FLAGS diff --git a/m4/ax_compiler_flags_gir.m4 b/m4/ax_compiler_flags_gir.m4 deleted file mode 100644 index 5b4924a20..000000000 --- a/m4/ax_compiler_flags_gir.m4 +++ /dev/null @@ -1,60 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags_gir.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_COMPILER_FLAGS_GIR([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS]) -# -# DESCRIPTION -# -# Add warning flags for the g-ir-scanner (from GObject Introspection) to -# VARIABLE, which defaults to WARN_SCANNERFLAGS. VARIABLE is AC_SUBST-ed -# by this macro, but must be manually added to the SCANNERFLAGS variable -# for each GIR target in the code base. -# -# This macro depends on the environment set up by AX_COMPILER_FLAGS. -# Specifically, it uses the value of $ax_enable_compile_warnings to decide -# which flags to enable. -# -# LICENSE -# -# Copyright (c) 2015 Philip Withnall -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 6 - -AC_DEFUN([AX_COMPILER_FLAGS_GIR],[ - AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) - - # Variable names - m4_define([ax_warn_scannerflags_variable], - [m4_normalize(ifelse([$1],,[WARN_SCANNERFLAGS],[$1]))]) - - # Base flags - AX_APPEND_FLAG([$3],ax_warn_scannerflags_variable) - - AS_IF([test "$ax_enable_compile_warnings" != "no"],[ - # "yes" flags - AX_APPEND_FLAG([ dnl - --warn-all dnl - $4 dnl - $5 dnl - $6 dnl - $7 dnl - ],ax_warn_scannerflags_variable) - ]) - AS_IF([test "$ax_enable_compile_warnings" = "error"],[ - # "error" flags - AX_APPEND_FLAG([ dnl - --warn-error dnl - ],ax_warn_scannerflags_variable) - ]) - - # Substitute the variables - AC_SUBST(ax_warn_scannerflags_variable) -])dnl AX_COMPILER_FLAGS diff --git a/m4/ax_compiler_flags_ldflags.m4 b/m4/ax_compiler_flags_ldflags.m4 deleted file mode 100644 index 976d1198d..000000000 --- a/m4/ax_compiler_flags_ldflags.m4 +++ /dev/null @@ -1,111 +0,0 @@ -# ============================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags_ldflags.html -# ============================================================================== -# -# SYNOPSIS -# -# AX_COMPILER_FLAGS_LDFLAGS([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS]) -# -# DESCRIPTION -# -# Add warning flags for the linker to VARIABLE, which defaults to -# WARN_LDFLAGS. VARIABLE is AC_SUBST-ed by this macro, but must be -# manually added to the LDFLAGS variable for each target in the code base. -# -# This macro depends on the environment set up by AX_COMPILER_FLAGS. -# Specifically, it uses the value of $ax_enable_compile_warnings to decide -# which flags to enable. -# -# LICENSE -# -# Copyright (c) 2014, 2015 Philip Withnall -# Copyright (c) 2017, 2018 Reini Urban -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 9 - -AC_DEFUN([AX_COMPILER_FLAGS_LDFLAGS],[ - AX_REQUIRE_DEFINED([AX_APPEND_LINK_FLAGS]) - AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) - AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG]) - AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) - - # Variable names - m4_define([ax_warn_ldflags_variable], - [m4_normalize(ifelse([$1],,[WARN_LDFLAGS],[$1]))]) - - # Always pass -Werror=unknown-warning-option to get Clang to fail on bad - # flags, otherwise they are always appended to the warn_ldflags variable, - # and Clang warns on them for every compilation unit. - # If this is passed to GCC, it will explode, so the flag must be enabled - # conditionally. - AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option],[ - ax_compiler_flags_test="-Werror=unknown-warning-option" - ],[ - ax_compiler_flags_test="" - ]) - - AX_CHECK_LINK_FLAG([-Wl,--as-needed], [ - AX_APPEND_LINK_FLAGS([-Wl,--as-needed], - [AM_LDFLAGS],[$ax_compiler_flags_test]) - ]) - AX_CHECK_LINK_FLAG([-Wl,-z,relro], [ - AX_APPEND_LINK_FLAGS([-Wl,-z,relro], - [AM_LDFLAGS],[$ax_compiler_flags_test]) - ]) - AX_CHECK_LINK_FLAG([-Wl,-z,now], [ - AX_APPEND_LINK_FLAGS([-Wl,-z,now], - [AM_LDFLAGS],[$ax_compiler_flags_test]) - ]) - AX_CHECK_LINK_FLAG([-Wl,-z,noexecstack], [ - AX_APPEND_LINK_FLAGS([-Wl,-z,noexecstack], - [AM_LDFLAGS],[$ax_compiler_flags_test]) - ]) - # textonly, retpolineplt not yet - - # macOS and cygwin linker do not have --as-needed - AX_CHECK_LINK_FLAG([-Wl,--no-as-needed], [ - ax_compiler_flags_as_needed_option="-Wl,--no-as-needed" - ], [ - ax_compiler_flags_as_needed_option="" - ]) - - # macOS linker speaks with a different accent - ax_compiler_flags_fatal_warnings_option="" - AX_CHECK_LINK_FLAG([-Wl,--fatal-warnings], [ - ax_compiler_flags_fatal_warnings_option="-Wl,--fatal-warnings" - ]) - AX_CHECK_LINK_FLAG([-Wl,-fatal_warnings], [ - ax_compiler_flags_fatal_warnings_option="-Wl,-fatal_warnings" - ]) - - # Base flags - AX_APPEND_LINK_FLAGS([ dnl - $ax_compiler_flags_as_needed_option dnl - $3 dnl - ],ax_warn_ldflags_variable,[$ax_compiler_flags_test]) - - AS_IF([test "$ax_enable_compile_warnings" != "no"],[ - # "yes" flags - AX_APPEND_LINK_FLAGS([$4 $5 $6 $7], - ax_warn_ldflags_variable, - [$ax_compiler_flags_test]) - ]) - AS_IF([test "$ax_enable_compile_warnings" = "error"],[ - # "error" flags; -Werror has to be appended unconditionally because - # it's not possible to test for - # - # suggest-attribute=format is disabled because it gives too many false - # positives - AX_APPEND_LINK_FLAGS([ dnl - $ax_compiler_flags_fatal_warnings_option dnl - ],ax_warn_ldflags_variable,[$ax_compiler_flags_test]) - ]) - - # Substitute the variables - AC_SUBST(ax_warn_ldflags_variable) -])dnl AX_COMPILER_FLAGS ================================================ FILE: package/babeltrace2/0002-tests-lib-test_trace_ir_ref.c-rename-user-structure.patch ================================================ From 7a27f13c192d15cae47740f3e884bba16f15ed41 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 26 Sep 2020 22:03:10 +0200 Subject: [PATCH] tests/lib/test_trace_ir_ref.c: rename user structure Rename user structure to bt_user to avoid the following build failure with uclibc: test_trace_ir_ref.c:41:8: error: redefinition of 'struct user' struct user { ^ In file included from /home/naourr/work/instance-0/output-1/per-package/babeltrace2/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/procfs.h:33, from /home/naourr/work/instance-0/output-1/per-package/babeltrace2/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/ucontext.h:25, from /home/naourr/work/instance-0/output-1/per-package/babeltrace2/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/signal.h:329, from /home/naourr/work/instance-0/output-1/per-package/babeltrace2/host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/glib-2.0/glib/gbacktrace.h:36, from /home/naourr/work/instance-0/output-1/per-package/babeltrace2/host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/glib-2.0/glib.h:34, from ../../src/common/assert.h:28, from ../../src/lib/object.h:28, from test_trace_ir_ref.c:25: /home/naourr/work/instance-0/output-1/per-package/babeltrace2/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/user.h:48:8: note: originally defined here struct user ^~~~ Fixes: - http://autobuild.buildroot.org/results/e4229e2b9c892b419a9d2eaa6929b80ea62dd130 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/efficios/babeltrace/pull/115] --- tests/lib/test_trace_ir_ref.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/lib/test_trace_ir_ref.c b/tests/lib/test_trace_ir_ref.c index d5dfa9cf..70caf29c 100644 --- a/tests/lib/test_trace_ir_ref.c +++ b/tests/lib/test_trace_ir_ref.c @@ -25,7 +25,7 @@ #define NR_TESTS 37 -struct user { +struct bt_user { bt_trace_class *tc; bt_stream_class *sc; bt_event_class *ec; @@ -265,7 +265,7 @@ static void test_example_scenario(bt_self_component_source *self_comp) bt_stream_class *weak_sc1 = NULL, *weak_sc2 = NULL; bt_event_class *weak_ec1 = NULL, *weak_ec2 = NULL, *weak_ec3 = NULL; - struct user user_a = { 0 }, user_b = { 0 }, user_c = { 0 }; + struct bt_user user_a = { 0 }, user_b = { 0 }, user_c = { 0 }; /* The only reference which exists at this point is on TC1. */ tc1 = create_tc1(self_comp); -- 2.28.0 ================================================ FILE: package/babeltrace2/Config.in ================================================ config BR2_PACKAGE_BABELTRACE2 bool "babeltrace2" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 help Babeltrace 2 is an open-source trace manipulation toolkit. The Babeltrace 2 project offers a library with a C API, Python 3 bindings, and a command-line tool which makes it very easy for mere mortals to view, convert, transform, and analyze traces. Babeltrace 2 is also the reference parser implementation of the Common Trace Format (CTF), a very versatile trace format followed by various tracers and tools such as LTTng and barectf. The Babeltrace 2 library and its Python bindings can read and write CTF traces. To get support for the debugging information filter component class, enable the elfutils package (BR2_PACKAGE_ELFUTILS). https://babeltrace.org/ comment "babeltrace2 needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/babeltrace2/Config.in.host ================================================ config BR2_PACKAGE_HOST_BABELTRACE2 bool "host babeltrace2" help Babeltrace 2 is an open-source trace manipulation toolkit. The Babeltrace 2 project offers a library with a C API, Python 3 bindings, and a command-line tool which makes it very easy for mere mortals to view, convert, transform, and analyze traces. Babeltrace 2 is also the reference parser implementation of the Common Trace Format (CTF), a very versatile trace format followed by various tracers and tools such as LTTng and barectf. The Babeltrace 2 library and its Python bindings can read and write CTF traces. https://babeltrace.org/ ================================================ FILE: package/babeltrace2/babeltrace2.hash ================================================ # From https://www.efficios.com/files/babeltrace/babeltrace2-2.0.3.tar.bz2.sha256 sha256 a53625152554102d868ba8395347d0daba0bec9c4b854c3e9bd97c77b0bf04a0 babeltrace2-2.0.3.tar.bz2 # Hash for license files sha256 d919c6347409efde6dea63c6f349fb06bc060a2b721fc3df07b5f720b5f1d60e LICENSE sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 gpl-2.0.txt sha256 c68fd1ffc1623ea0dace21abf57305818e4998a4ae0c79010aaaa943eb660b55 lgpl-2.1.txt sha256 2f801b7c2494850c3d91da820eb230502dc0192c9d0db024db37ec08d0be1434 mit-license.txt ================================================ FILE: package/babeltrace2/babeltrace2.mk ================================================ ################################################################################ # # babeltrace2 # ################################################################################ BABELTRACE2_SITE = https://www.efficios.com/files/babeltrace BABELTRACE2_VERSION = 2.0.3 BABELTRACE2_SOURCE = babeltrace2-$(BABELTRACE2_VERSION).tar.bz2 BABELTRACE2_LICENSE = MIT, LGPL-2.1 (src/common/list.h), GPL-2.0 (test code) BABELTRACE2_LICENSE_FILES = mit-license.txt lgpl-2.1.txt gpl-2.0.txt LICENSE # We're patching configure.ac BABELTRACE2_AUTORECONF = YES BABELTRACE2_CONF_OPTS = --disable-man-pages BABELTRACE2_DEPENDENCIES = libglib2 host-pkgconf # The host-elfutils dependency is optional, but since we don't have # options for host packages, just build support for it # unconditionally. HOST_BABELTRACE2_DEPENDENCIES = host-libglib2 host-pkgconf host-elfutils HOST_BABELTRACE2_CONF_OPTS += --enable-debug-info ifeq ($(BR2_PACKAGE_ELFUTILS),y) BABELTRACE2_DEPENDENCIES += elfutils BABELTRACE2_CONF_OPTS += --enable-debug-info BABELTRACE2_CONF_ENV += bt_cv_lib_elfutils=yes else BABELTRACE2_CONF_OPTS += --disable-debug-info endif ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) BABELTRACE2_CONF_ENV += LIBS=-latomic endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/balena-engine/Config.in ================================================ config BR2_PACKAGE_BALENA_ENGINE bool "balena-engine" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on !BR2_TOOLCHAIN_USES_UCLIBC # no fexecve depends on BR2_USE_MMU # util-linux select BR2_PACKAGE_CGROUPFS_MOUNT if !BR2_PACKAGE_SYSTEMD # runtime select BR2_PACKAGE_IPTABLES # runtime select BR2_PACKAGE_SQLITE # runtime select BR2_PACKAGE_UTIL_LINUX # runtime select BR2_PACKAGE_UTIL_LINUX_BINARIES # runtime select BR2_PACKAGE_UTIL_LINUX_MOUNT # runtime select BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT # runtime select BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT # runtime help balenaEngine is a new container engine purpose-built for embedded and IoT use cases and compatible with Docker containers. https://github.com/balena-os/balena-engine comment "balena-engine needs a glibc or musl toolchain w/ threads" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_UCLIBC depends on BR2_USE_MMU ================================================ FILE: package/balena-engine/balena-engine.hash ================================================ # Locally computed sha256 389282706562118608b6ac580e7beacd6a43f0bb3481c69fb1856bed9ac49b85 balena-engine-19.03.14.tar.gz sha256 7c87873291f289713ac5df48b1f2010eb6963752bbd6b530416ab99fc37914a8 LICENSE ================================================ FILE: package/balena-engine/balena-engine.mk ================================================ ################################################################################ # # balena-engine # ################################################################################ BALENA_ENGINE_VERSION = 19.03.14 BALENA_ENGINE_SITE = $(call github,balena-os,balena-engine,v$(BALENA_ENGINE_VERSION)) BALENA_ENGINE_LICENSE = Apache-2.0 BALENA_ENGINE_LICENSE_FILES = LICENSE BALENA_ENGINE_DEPENDENCIES = host-pkgconf BALENA_ENGINE_GOMOD = github.com/docker/docker BALENA_ENGINE_LDFLAGS = \ -X github.com/docker/cli/cli/version.Version=N/A \ -X github.com/docker/cli/cli/version.GitCommit= \ -X github.com/docker/cli/cli/version.BuildTime= \ -X github.com/containerd/containerd/version.Version=N/A \ -X github.com/opencontainers/runc.version=N/A BALENA_ENGINE_TAGS = \ cgo \ exclude_graphdriver_zfs \ autogen \ no_buildkit \ no_btrfs \ no_cri \ no_devmapper \ no_zfs \ exclude_disk_quota \ exclude_graphdriver_btrfs \ exclude_graphdriver_devicemapper BALENA_ENGINE_BUILD_TARGETS = cmd/balena-engine ifeq ($(BR2_INIT_SYSTEMD),y) BALENA_ENGINE_DEPENDENCIES += systemd BALENA_ENGINE_TAGS += journald endif define BALENA_ENGINE_RUN_AUTOGEN cd $(@D) && \ VERSION=$(BALENA_ENGINE_VERSION) \ PKG_CONFIG=$(PKG_CONFIG_HOST_BINARY) \ $(TARGET_MAKE_ENV) \ $(SHELL) hack/make/.go-autogen endef BALENA_ENGINE_POST_CONFIGURE_HOOKS += BALENA_ENGINE_RUN_AUTOGEN define BALENA_ENGINE_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(@D)/contrib/init/systemd/balena-engine.service \ $(TARGET_DIR)/usr/lib/systemd/system/balena-engine.service $(INSTALL) -D -m 644 $(@D)/contrib/init/systemd/balena-engine.socket \ $(TARGET_DIR)/usr/lib/systemd/system/balena-engine.socket endef define BALENA_ENGINE_USERS - - balena-engine -1 * - - - balenaEngine daemon endef define BALENA_ENGINE_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_POSIX_MQUEUE) $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS) $(call KCONFIG_ENABLE_OPT,CONFIG_MEMCG) $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_SCHED) $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_FREEZER) $(call KCONFIG_ENABLE_OPT,CONFIG_CPUSETS) $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_DEVICE) $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_CPUACCT) $(call KCONFIG_ENABLE_OPT,CONFIG_NAMESPACES) $(call KCONFIG_ENABLE_OPT,CONFIG_UTS_NS) $(call KCONFIG_ENABLE_OPT,CONFIG_IPC_NS) $(call KCONFIG_ENABLE_OPT,CONFIG_PID_NS) $(call KCONFIG_ENABLE_OPT,CONFIG_NET_NS) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_ADVANCED) $(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE_NETFILTER) $(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_ADDRTYPE) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_CONNTRACK) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_IPVS) $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_IPTABLES) $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_FILTER) $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_NAT) $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_TARGET_MASQUERADE) $(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE) $(call KCONFIG_ENABLE_OPT,CONFIG_DUMMY) $(call KCONFIG_ENABLE_OPT,CONFIG_MACVLAN) $(call KCONFIG_ENABLE_OPT,CONFIG_VXLAN) $(call KCONFIG_ENABLE_OPT,CONFIG_VETH) $(call KCONFIG_ENABLE_OPT,CONFIG_OVERLAY_FS) $(call KCONFIG_ENABLE_OPT,CONFIG_KEYS) endef define BALENA_ENGINE_INSTALL_SYMLINK ln -f -s balena-engine $(TARGET_DIR)/usr/bin/balena-engine-daemon ln -f -s balena-engine $(TARGET_DIR)/usr/bin/balena-engine-containerd ln -f -s balena-engine $(TARGET_DIR)/usr/bin/balena-engine-containerd-shim ln -f -s balena-engine $(TARGET_DIR)/usr/bin/balena-engine-containerd-ctr ln -f -s balena-engine $(TARGET_DIR)/usr/bin/balena-engine-runc ln -f -s balena-engine $(TARGET_DIR)/usr/bin/balena-engine-proxy $(if $(BR2_PACKAGE_TINI),ln -f -s tini $(TARGET_DIR)/usr/bin/balena-engine-init) endef BALENA_ENGINE_POST_INSTALL_TARGET_HOOKS += BALENA_ENGINE_INSTALL_SYMLINK $(eval $(golang-package)) ================================================ FILE: package/bandwidthd/0001-src-bandwidthd.h-fix-build-with-gcc-10.patch ================================================ From dde68ed77114d7b19bfed3068edefc9dc0644445 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 16 Aug 2020 10:21:46 +0200 Subject: [PATCH] src/bandwidthd.h: fix build with gcc 10 Remove SubnetTable[SUBNET_NUM] and IpTable[IP_NUM] from bandwidthd.h as they are already in bandwidthd.c otherwise the build with gcc 10 will fail on: /home/buildroot/autobuild/instance-2/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -o bandwidthd bandwidthd.o graph.o extensions.o sqlight.o parser.o lexer.o pgsql.o -lpcap -lgd -lm -lresolv -L/home/buildroot/autobuild/instance-2/output-1/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lpng16 -lz -L/home/buildroot/autobuild/instance-2/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/bin/../../../../arm-buildroot-linux-gnueabihf/sysroot/usr/lib/.libs -lnl-genl-3 -lnl-3 /home/buildroot/autobuild/instance-2/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: graph.o:(.bss+0x4b0): multiple definition of `IpTable'; bandwidthd.o:(.bss+0x3e0): first defined here /home/buildroot/autobuild/instance-2/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: graph.o:(.bss+0x18c): multiple definition of `SubnetTable'; bandwidthd.o:(.bss+0x88): first defined here Fixes: - http://autobuild.buildroot.org/results/6308c8ee38b6017215038d47c009b238113bd36f Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/nroach44/bandwidthd/pull/1] --- src/bandwidthd.h | 4 ++-- src/graph.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bandwidthd.h b/src/bandwidthd.h index 870fdf7..eb4c830 100644 --- a/src/bandwidthd.h +++ b/src/bandwidthd.h @@ -134,7 +134,7 @@ struct SubnetData { uint32_t ip; uint32_t mask; -} SubnetTable[SUBNET_NUM]; +}; struct Statistics { @@ -157,7 +157,7 @@ struct IPData uint32_t ip; // Host byte order struct Statistics Send; struct Statistics Receive; -} IpTable[IP_NUM]; +}; struct SummaryData { diff --git a/src/graph.c b/src/graph.c index b4b68f0..058e8c7 100644 --- a/src/graph.c +++ b/src/graph.c @@ -18,6 +18,7 @@ #include #endif +extern struct SubnetData SubnetTable[SUBNET_NUM]; extern unsigned int SubnetCount; extern struct config config; -- 2.27.0 ================================================ FILE: package/bandwidthd/Config.in ================================================ config BR2_PACKAGE_BANDWIDTHD bool "bandwidthd" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_LIBPCAP select BR2_PACKAGE_GD help BandwidthD - Bandwidth monitoring Provides a method to measure the bandwidth that travels through the machine, grouped by subnet and IP. This information can be stored locally in /var/lib/bandwidthd and can be configured to generate static HTML pages which can be hosted by a web server. It is highly recommended that the target has some way of retaining the time between reboots. (e.g. NTP on boot or an RTC) It is suggested to use sqlite for logfile storage but works fine without, and can be completely ignored if the postgresql portion is used. As upstream is no longer actively maintained, a fork is available on github that works on making BandwidthD's build process more compatible with buildroot's. Upstream: http://bandwidthd.sourceforge.net/ Github fork: http://github.com/nroach44/bandwidthd if BR2_PACKAGE_BANDWIDTHD config BR2_PACKAGE_BANDWIDTHD_POSTGRESQL bool "enable postgresql log target support" depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR # postgresql select BR2_PACKAGE_POSTGRESQL help Enable support for logging the bandwidthd data to a remote (or local) postgresql server. This data can then be viewed through a php site. See README in the source code (github.com/nroach44/bandwidthd) for more information. comment "postgresql support needs a toolchain w/ dynamic library, wchar" depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR config BR2_PACKAGE_BANDWIDTHD_SQLITE3 bool "enable sqlite3 log storage" select BR2_PACKAGE_SQLITE help Enable support for storing the aggregated data in an sqlite db instead of a plain text file. endif ================================================ FILE: package/bandwidthd/bandwidthd.hash ================================================ # Locally calculated sha256 0270d0def6cc53c8d47d59a9dd093d51fbca1620adeef85c15e35a32010e26ab bandwidthd-2.0.1-auto-r11.tar.gz sha256 58573c40770e0c0b91f3eef8192952832321a344f66a4fb2d966095cbbfc86c2 README ================================================ FILE: package/bandwidthd/bandwidthd.mk ================================================ ################################################################################ # # bandwidthd # ################################################################################ BANDWIDTHD_VERSION = 2.0.1-auto-r11 BANDWIDTHD_SITE = $(call github,nroach44,bandwidthd,v$(BANDWIDTHD_VERSION)) # Specified as "any version of the GPL that is current as of your # download" by upstream. BANDWIDTHD_LICENSE = GPL BANDWIDTHD_LICENSE_FILES = README BANDWIDTHD_DEPENDENCIES = gd libpng libpcap host-pkgconf BANDWIDTHD_AUTORECONF = YES BANDWIDTHD_CONF_OPTS += --with-pcap-config=$(STAGING_DIR)/usr/bin/pcap-config ifeq ($(BR2_PACKAGE_BANDWIDTHD_POSTGRESQL),y) BANDWIDTHD_DEPENDENCIES += postgresql BANDWIDTHD_CONF_OPTS += --with-postgresql-logging=true else BANDWIDTHD_CONF_OPTS += --with-postgresql-logging=false endif ifeq ($(BR2_PACKAGE_BANDWIDTHD_SQLITE3),y) BANDWIDTHD_DEPENDENCIES += sqlite BANDWIDTHD_CONF_OPTS += --with-sqlite-storage=true else BANDWIDTHD_CONF_OPTS += --with-sqlite-storage=false endif define BANDWIDTHD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/bandwidthd/bandwidthd.service \ $(TARGET_DIR)/usr/lib/systemd/system/bandwidthd.service endef $(eval $(autotools-package)) ================================================ FILE: package/bandwidthd/bandwidthd.service ================================================ [Unit] Description=Bandwidth usage monitor and reporter After=network.target [Service] Type=forking ExecStart=/usr/bin/bandwidthd PIDFile=/run/bandwidthd.pid [Install] WantedBy=multi-user.target ================================================ FILE: package/bash/0001-input.h-add-missing-include-on-stdio.h.patch ================================================ From 4fa85c85b9a76afd3b19ed75bf17ccd2940f1f55 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 16 Feb 2020 16:18:48 +0100 Subject: [PATCH] input.h: add missing include on stdio.h This will fix the following build failure on uclibc: test -n "/usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-2/output/host/bin/arm-linux-ranlib" && /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-2/output/host/bin/arm-linux-ranlib libsh.a In file included from ./exec.def:71: ../input.h:76:3: error: unknown type name 'FILE' FILE *file; ^~~~ Fixes: - http://autobuild.buildroot.org/results/bfca306868df54c567215c45c8cdac838d02f567 Signed-off-by: Fabrice Fontaine [Upstream status: https://savannah.gnu.org/support/?110196] --- input.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/input.h b/input.h index 6aef1269..08b0fdea 100644 --- a/input.h +++ b/input.h @@ -21,6 +21,8 @@ #if !defined (_INPUT_H_) #define _INPUT_H_ +#include + #include "stdc.h" /* Function pointers can be declared as (Function *)foo. */ -- 2.24.1 ================================================ FILE: package/bash/0002-locale-fix-typo-local_shiftstates-vs.-locale_shiftst.patch ================================================ From 3d6b9e18506ad9daf4ec7b7d406b38d58ec88009 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 11 Mar 2021 20:48:36 +0100 Subject: [PATCH] locale: fix typo local_shiftstates vs. locale_shiftstates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: locale.c:94:3: error: ‘local_shiftstates’ undeclared (first use in this function); did you mean ‘locale_shiftstates’? 94 | local_shiftstates = 0; | ^~~~~~~~~~~~~~~~~ | locale_shiftstates Signed-off-by: Peter Seiderer --- locale.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/locale.c b/locale.c index 17ccc58..d6dd95a 100644 --- a/locale.c +++ b/locale.c @@ -91,7 +91,7 @@ set_default_locale () #if defined (HANDLE_MULTIBYTE) locale_shiftstates = mblen ((char *)NULL, 0); #else - local_shiftstates = 0; + locale_shiftstates = 0; #endif } @@ -117,7 +117,7 @@ set_default_locale_vars () # if defined (HANDLE_MULTIBYTE) locale_shiftstates = mblen ((char *)NULL, 0); # else - local_shiftstates = 0; + locale_shiftstates = 0; # endif u32reset (); @@ -226,7 +226,7 @@ set_locale_var (var, value) # if defined (HANDLE_MULTIBYTE) locale_shiftstates = mblen ((char *)NULL, 0); # else - local_shiftstates = 0; + locale_shiftstates = 0; # endif u32reset (); return r; @@ -250,7 +250,7 @@ set_locale_var (var, value) #if defined (HANDLE_MULTIBYTE) locale_shiftstates = mblen ((char *)NULL, 0); #else - local_shiftstates = 0; + locale_shiftstates = 0; #endif u32reset (); } @@ -391,7 +391,7 @@ reset_locale_vars () # if defined (HANDLE_MULTIBYTE) locale_shiftstates = mblen ((char *)NULL, 0); # else - local_shiftstates = 0; + locale_shiftstates = 0; # endif u32reset (); #endif -- 2.30.1 ================================================ FILE: package/bash/0003-glob-fix-dequote_pathname-vs.-udequote_pathname.patch ================================================ From a60ab1e5e88863acf9b0e9bcaa7919bbf093da05 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 11 Mar 2021 20:55:52 +0100 Subject: [PATCH] glob: fix dequote_pathname vs. udequote_pathname MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: glob.c:123:28: error: static declaration of ‘udequote_pathname’ follows non-static declaration 123 | # define dequote_pathname udequote_pathname | ^~~~~~~~~~~~~~~~~ glob.c:125:13: note: in expansion of macro ‘dequote_pathname’ 125 | static void dequote_pathname PARAMS((char *)); | ^~~~~~~~~~~~~~~~ glob.c:118:6: note: previous declaration of ‘udequote_pathname’ was here 118 | void udequote_pathname PARAMS((char *)); | ^~~~~~~~~~~~~~~~~ Signed-off-by: Peter Seiderer --- lib/glob/glob.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/glob/glob.c b/lib/glob/glob.c index eb6277f..c903b15 100644 --- a/lib/glob/glob.c +++ b/lib/glob/glob.c @@ -117,6 +117,5 @@ static int mbskipname PARAMS((char *, char *, int)); #else # define dequote_pathname udequote_pathname #endif -static void dequote_pathname PARAMS((char *)); static int glob_testdir PARAMS((char *, int)); static char **glob_dir_to_array PARAMS((char *, char **, int)); -- 2.30.1 ================================================ FILE: package/bash/Config.in ================================================ config BR2_PACKAGE_BASH bool "bash" # uses fork() depends on BR2_USE_MMU depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_NCURSES select BR2_PACKAGE_READLINE help The standard GNU Bourne again shell. http://tiswww.case.edu/php/chet/bash/bashtop.html if BR2_PACKAGE_BASH config BR2_PACKAGE_BASH_LOADABLE_EXAMPLES bool "loadable examples" depends on !BR2_STATIC_LIBS help This option will enable the installation of the "loadable" examples, which are dynamically loadable extension providing additional built-ins commands to bash. There are typically not needed as they are provided as regular, external commands. endif ================================================ FILE: package/bash/bash.hash ================================================ # Locally calculated after checking pgp signature from # https://ftp.gnu.org/gnu/bash/bash-5.1.16.tar.gz.sig sha256 5bac17218d3911834520dad13cd1f85ab944e1c09ae1aba55906be1f8192f558 bash-5.1.16.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/bash/bash.mk ================================================ ################################################################################ # # bash # ################################################################################ BASH_VERSION = 5.1.16 BASH_SITE = $(BR2_GNU_MIRROR)/bash BASH_DEPENDENCIES = ncurses readline host-bison BASH_LICENSE = GPL-3.0+ BASH_LICENSE_FILES = COPYING BASH_CPE_ID_VENDOR = gnu # We want the bash binary in /bin BASH_CONF_OPTS = \ --bindir=/bin \ --with-installed-readline \ --without-bash-malloc BASH_CONF_ENV += \ ac_cv_rl_prefix="$(STAGING_DIR)" \ ac_cv_rl_version="$(READLINE_VERSION)" \ bash_cv_getcwd_malloc=yes \ bash_cv_job_control_missing=present \ bash_cv_sys_named_pipes=present \ bash_cv_func_sigsetjmp=present \ bash_cv_printf_a_format=yes # The static build needs some trickery ifeq ($(BR2_STATIC_LIBS),y) BASH_CONF_OPTS += --enable-static-link # bash wants to redefine the getenv() function. To check whether this is # possible, AC_TRY_RUN is used which is not possible in # cross-compilation. # On uClibc, redefining getenv is not possible; on glibc and musl it is. # Related: # http://lists.gnu.org/archive/html/bug-bash/2012-03/msg00052.html ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) BASH_CONF_ENV += bash_cv_getenv_redef=no else BASH_CONF_ENV += bash_cv_getenv_redef=yes endif endif define BASH_REMOVE_UNUSED_FILES rm -f $(TARGET_DIR)/bin/bashbug endef BASH_POST_INSTALL_TARGET_HOOKS += BASH_REMOVE_UNUSED_FILES ifeq ($(BR2_PACKAGE_BASH_LOADABLE_EXAMPLES),y) define BASH_REMOVE_LOADABLE_UNUSED_FILES rm -f $(TARGET_DIR)/usr/lib/bash/Makefile.inc rm -f $(TARGET_DIR)/usr/lib/bash/loadables.h endef BASH_POST_INSTALL_TARGET_HOOKS += BASH_REMOVE_LOADABLE_UNUSED_FILES else define BASH_REMOVE_LOADABLE_EXAMPLES rm -rf $(TARGET_DIR)/usr/lib/bash endef BASH_POST_INSTALL_TARGET_HOOKS += BASH_REMOVE_LOADABLE_EXAMPLES endif # Add /bin/bash to /etc/shells otherwise some login tools like dropbear # can reject the user connection. See man shells. define BASH_ADD_MKSH_TO_SHELLS grep -qsE '^/bin/bash$$' $(TARGET_DIR)/etc/shells \ || echo "/bin/bash" >> $(TARGET_DIR)/etc/shells endef BASH_TARGET_FINALIZE_HOOKS += BASH_ADD_MKSH_TO_SHELLS $(eval $(autotools-package)) ================================================ FILE: package/bash-completion/Config.in ================================================ config BR2_PACKAGE_BASH_COMPLETION bool "bash completion" depends on BR2_PACKAGE_BASH help Add bash completion infrastructure. The bash completion infrastructure is enabled by /etc/profile.d/bash_completion.sh, which is normally sourced by /etc/profile. If the system does not use the /etc/profile.d directory mechanism, the /etc/profile.d/bash_completion.sh script can be sourced from /etc/bashrc or ~/.bashrc. https://github.com/scop/bash-completion ================================================ FILE: package/bash-completion/bash-completion.hash ================================================ # Locally calculated sha256 73a8894bad94dee83ab468fa09f628daffd567e8bef1a24277f1e9a0daf911ac bash-completion-2.11.tar.xz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/bash-completion/bash-completion.mk ================================================ ################################################################################ # # bash-completion # ################################################################################ BASH_COMPLETION_VERSION = 2.11 BASH_COMPLETION_SITE = https://github.com/scop/bash-completion/releases/download/$(BASH_COMPLETION_VERSION) BASH_COMPLETION_SOURCE = bash-completion-$(BASH_COMPLETION_VERSION).tar.xz BASH_COMPLETION_LICENSE = GPL-2.0 BASH_COMPLETION_LICENSE_FILES = COPYING # Install bash-completion.pc file BASH_COMPLETION_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/batctl/Config.in ================================================ config BR2_PACKAGE_BATCTL bool "batctl" depends on BR2_TOOLCHAIN_HAS_THREADS # libnl select BR2_PACKAGE_LIBNL help Batctl is the configuration and debugging tool for batman-adv. http://www.open-mesh.org/projects/batman-adv/wiki/Using-batctl comment "batctl needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/batctl/batctl.hash ================================================ # From https://downloads.open-mesh.org/batman/releases/batman-adv-2021.0/batctl-2021.0.tar.gz.sha1 sha1 87d0bb34950cb70578a0ca5ce706513a8279a01c batctl-2021.0.tar.gz # Locally calculated sha256 9cec8bf1952f885192749a9dc0318a54633b717aaf05c438d504efd83f5201e4 batctl-2021.0.tar.gz sha256 cecbf53d1148e13256ac29f8b900655b7fc8dc12d59939a95bc2323ea1747025 LICENSES/preferred/GPL-2.0 sha256 323c587d0ccf10e376f8bf9a7f31fb4ca6078105194b42e0b1e0ee2bc9bde71f LICENSES/preferred/MIT ================================================ FILE: package/batctl/batctl.mk ================================================ ################################################################################ # # batctl # ################################################################################ BATCTL_VERSION = 2021.0 BATCTL_SITE = http://downloads.open-mesh.org/batman/releases/batman-adv-$(BATCTL_VERSION) BATCTL_LICENSE = GPL-2.0, MIT (batman_adv.h, list.h) BATCTL_LICENSE_FILES = LICENSES/preferred/GPL-2.0 LICENSES/preferred/MIT BATCTL_DEPENDENCIES = libnl host-pkgconf define BATCTL_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) all endef define BATCTL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ PREFIX=/usr DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/batman-adv/Config.in ================================================ 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 Note: batman-adv is part of the linux mainline kernel since version 2.6.38 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 ================================================ FILE: package/batman-adv/batman-adv.hash ================================================ # From https://downloads.open-mesh.org/batman/releases/batman-adv-2021.1/batman-adv-2021.1.tar.gz.sha1 sha1 27a0dc7cb74b868bc0ab52794ecedd0448f0fb61 batman-adv-2021.1.tar.gz # Hash for license files sha256 5a989ba580897268373bd516b87b588061f344af773a0f6b038a3d8d2af028a1 batman-adv-2021.0.tar.gz sha256 cecbf53d1148e13256ac29f8b900655b7fc8dc12d59939a95bc2323ea1747025 LICENSES/preferred/GPL-2.0 sha256 323c587d0ccf10e376f8bf9a7f31fb4ca6078105194b42e0b1e0ee2bc9bde71f LICENSES/preferred/MIT ================================================ FILE: package/batman-adv/batman-adv.mk ================================================ ################################################################################ # # batman-adv # ################################################################################ BATMAN_ADV_VERSION = 2021.1 BATMAN_ADV_SITE = https://downloads.open-mesh.org/batman/stable/sources/batman-adv BATMAN_ADV_LICENSE = GPL-2.0, MIT (batman_adv.h) BATMAN_ADV_LICENSE_FILES = LICENSES/preferred/GPL-2.0 LICENSES/preferred/MIT BATMAN_ADV_CFLAGS = \ -I$(@D)/compat-include/ \ -I$(@D)/include/ \ -include $(@D)/compat.h \ -DBATADV_SOURCE_VERSION=\"\\\"$(BATMAN_ADV_VERSION)\\\"\" # Bridge Loop Avoidance, Distributed Arp Table are always enabled 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_BLA=y \ CONFIG_BATMAN_ADV_DAT=y \ CONFIG_BATMAN_ADV_MCAST=y \ CONFIG_BATMAN_ADV_BATMAN_V=$(if $(BR2_PACKAGE_BATMAN_ADV_BATMAN_V),y,n) \ CONFIG_BATMAN_ADV_DEBUG=$(if $(BR2_PACKAGE_BATMAN_ADV_DEBUG),y,n) \ CONFIG_BATMAN_ADV_NC=$(if $(BR2_PACKAGE_BATMAN_ADV_NC),y,n) 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 define BATMAN_ADV_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_LIBCRC32C) endef $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/bats-core/Config.in ================================================ config BR2_PACKAGE_BATS_CORE bool "bats" depends on BR2_PACKAGE_BASH # runtime help Bats: Bash Automated Testing System Bats is a TAP-compliant testing framework for Bash. It provides a simple way to verify that the UNIX programs you write behave as expected. https://github.com/bats-core/bats-core ================================================ FILE: package/bats-core/bats-core.hash ================================================ # Locally calculated sha256 bff517da043ae24440ec8272039f396c2a7907076ac67693c0f18d4a17c08f7d bats-core-1.4.1.tar.gz # License files sha256 55074b2b3b87809105034e1468e59076554d76a80c67bcc592000cc3d929852d LICENSE.md ================================================ FILE: package/bats-core/bats-core.mk ================================================ ################################################################################ # # bats-core # ################################################################################ BATS_CORE_VERSION = 1.4.1 BATS_CORE_SITE = $(call github,bats-core,bats-core,v$(BATS_CORE_VERSION)) BATS_CORE_LICENSE = MIT BATS_CORE_LICENSE_FILES = LICENSE.md define BATS_CORE_INSTALL_TARGET_CMDS $(@D)/install.sh $(TARGET_DIR)/usr endef $(eval $(generic-package)) ================================================ FILE: package/bayer2rgb-neon/Config.in ================================================ config BR2_PACKAGE_BAYER2RGB_NEON bool "bayer2rgb-neon" depends on (BR2_arm && BR2_ARM_CPU_HAS_NEON) || BR2_aarch64 depends on !BR2_STATIC_LIBS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 help bayer2rgb-neon is a library which allows to decode raw camera bayer to RGB using NEON hardware acceleration. https://gitlab-ext.sigma-chemnitz.de/ensc/bayer2rgb comment "bayer2rgb-neon needs a toolchain w/ C++, dynamic library, gcc >= 4.9" depends on BR2_arm && BR2_ARM_CPU_HAS_NEON depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/bayer2rgb-neon/bayer2rgb-neon.hash ================================================ # Locally calculated sha256 edf451dbb52ad67eb35f9043390bd75ea7228d493c99184aae80b3bd27beab62 bayer2rgb-neon-15feb1115b4828488cc36d09f625e23e8b6a0ec5-br1.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/bayer2rgb-neon/bayer2rgb-neon.mk ================================================ ################################################################################ # # bayer2rgb-neon # ################################################################################ BAYER2RGB_NEON_VERSION = 15feb1115b4828488cc36d09f625e23e8b6a0ec5 BAYER2RGB_NEON_SITE = https://gitlab-ext.sigma-chemnitz.de/ensc/bayer2rgb.git BAYER2RGB_NEON_SITE_METHOD = git BAYER2RGB_NEON_LICENSE = GPL-3.0 BAYER2RGB_NEON_LICENSE_FILES = COPYING BAYER2RGB_NEON_INSTALL_STAGING = YES BAYER2RGB_NEON_DEPENDENCIES = host-pkgconf host-gengetopt BAYER2RGB_NEON_AUTORECONF = YES BAYER2RGB_NEON_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_arm),y) BAYER2RGB_NEON_CFLAGS += -mfpu=neon endif BAYER2RGB_NEON_CONF_ENV = CFLAGS="$(BAYER2RGB_NEON_CFLAGS)" $(eval $(autotools-package)) ================================================ FILE: package/bc/0001-bc-use-MAKEINFO-variable-for-docs.patch ================================================ From 7dc22308b2974fd093b6a564b7b28ddc20ddf4a6 Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Fri, 13 Sep 2019 13:45:02 -0500 Subject: [PATCH] bc: use MAKEINFO variable for docs Use the appropiate MAKEINFO variable rather than the hardcoded makeinfo command directly, otherwise missing logic never works. Fixes: http://autobuild.buildroot.net/results/b0b/b0b9dced0014a5a8026fa972f95085e8bd16a07b/ [Recreated for 1.0.7.1 by Matt W and applied to Makefile.am instead of Makefile.in] Signed-off-by: Gustavo Zacarias Signed-off-by: Matthew Weber --- doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/Makefile.am b/doc/Makefile.am index 1bdc478..f873b6a 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in info_TEXINFOS = bc.texi dc.texi -MAKEINFO = makeinfo --no-split +MAKEINFO = @MAKEINFO@ --no-split MAINTAINERCLEANFILES = Makefile.in -- 2.17.1 ================================================ FILE: package/bc/0002-notice-read-and-write-errors-on-input-and-output.patch ================================================ From af96fb92052c307818eefa4b687f964f1e3f542e Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Thu, 12 Sep 2019 15:04:35 -0500 Subject: [PATCH] notice read and write errors on input and output Quoting from the bug report: bc (1.06-19ubuntu1) dapper; urgency=low * Make dc notice read and write errors on its input and output. I grepped for mentions of the strings `putc', `print', `getc', `FILE', `stdin', `stdout' and `stderr' and added calls to new error-checking functions unless it was clear from the immediately-surrounding code that the program was exiting nonzero, or would exit nonzero if the call failed. I ignored hits in lib/getopt*, which seems to pervasively ignore write errors when printing usage messages, in the hope that these were correct. I _think_ I got them all. -iwj. -- Ian Jackson Tue, 4 Apr 2006 17:21:02 +0100 Upsteam: https://sources.debian.org/patches/bc/1.07.1-2/05_notice_read_write_errors.diff/ [Reformatted to GIT for 1.0.7.1 by Matt W] Updated by Ryan Kavanagh for 1.0.7.1 on 26 July 2017. Author: Ian Jackson Origin: other Bug-Debian: http://bugs.debian.org/488735 Signed-off-by: Matthew Weber --- bc/execute.c | 10 +++++++++- bc/main.c | 3 +++ bc/sbc.y | 2 ++ bc/scan.c | 2 ++ bc/scan.l | 3 +++ bc/util.c | 15 ++++++++++++-- dc/dc.c | 3 +++ dc/eval.c | 55 +++++++++++++++++++++++++++++++++++++++------------- dc/misc.c | 1 + dc/numeric.c | 9 +++++++++ dc/stack.c | 11 ++++++++++- dc/string.c | 2 ++ h/number.h | 11 +++++++---- lib/number.c | 24 +++++++++++++++++++++++ 14 files changed, 129 insertions(+), 22 deletions(-) diff --git a/bc/execute.c b/bc/execute.c index 256e4b7..50eac49 100644 --- a/bc/execute.c +++ b/bc/execute.c @@ -104,6 +104,7 @@ execute (void) } out_char ('\n'); } + checkferror_output(stdout); } #endif @@ -224,6 +225,7 @@ execute (void) } } fflush (stdout); + checkferror_output(stdout); break; case 'R' : /* Return from function */ @@ -259,6 +261,7 @@ execute (void) if (inst == 'W') out_char ('\n'); store_var (4); /* Special variable "last". */ fflush (stdout); + checkferror_output(stdout); pop (); break; @@ -342,6 +345,7 @@ execute (void) case 'w' : /* Write a string to the output. */ while ((ch = byte(&pc)) != '"') out_schar (ch); fflush (stdout); + checkferror_output(stdout); break; case 'x' : /* Exchange Top of Stack with the one under the tos. */ @@ -549,7 +553,10 @@ execute (void) { signal (SIGINT, use_quit); if (had_sigint) - printf ("\ninterrupted execution.\n"); + { + printf ("\ninterrupted execution.\n"); + checkferror_output(stdout); + } } } @@ -584,6 +591,7 @@ input_char (void) out_col = 0; /* Saw a new line */ } } + checkferror_input(stdin); /* Classify and preprocess the input character. */ if (isdigit(in_ch)) diff --git a/bc/main.c b/bc/main.c index 012075c..c96207b 100644 --- a/bc/main.c +++ b/bc/main.c @@ -353,6 +353,9 @@ use_quit (int sig) errno = save; #else write (1, "\n(interrupt) Exiting bc.\n", 26); +#ifdef READLINE + rl_initialize (); /* Clear readline buffer */ +#endif bc_exit(0); #endif } diff --git a/bc/sbc.y b/bc/sbc.y index 586686b..921ab1e 100644 --- a/bc/sbc.y +++ b/bc/sbc.y @@ -86,7 +86,9 @@ program : /* empty */ if (interactive && !quiet) { show_bc_version (); + checkferror_output(stdout); welcome (); + checkferror_output(stdout); } } | program input_item diff --git a/bc/scan.c b/bc/scan.c index b237f55..8dee4e9 100644 --- a/bc/scan.c +++ b/bc/scan.c @@ -791,6 +791,7 @@ bcel_input (char *buf, yy_size_t *result, int max) if (bcel_len != 0) history (hist, &histev, H_ENTER, bcel_line); fflush (stdout); + checkferror_output(stdout); } if (bcel_len <= max) @@ -863,6 +864,7 @@ rl_input (char *buf, int *result, int max) add_history (rl_line); rl_line[rl_len-1] = '\n'; fflush (stdout); + checkferror_output(stdout); } if (rl_len <= max) diff --git a/bc/scan.l b/bc/scan.l index eb2e2dd..79186bb 100644 --- a/bc/scan.l +++ b/bc/scan.l @@ -99,6 +99,7 @@ bcel_input (char *buf, yy_size_t *result, int max) if (bcel_len != 0) history (hist, &histev, H_ENTER, bcel_line); fflush (stdout); + checkferror_output(stdout); } if (bcel_len <= max) @@ -171,6 +172,7 @@ rl_input (char *buf, int *result, int max) add_history (rl_line); rl_line[rl_len-1] = '\n'; fflush (stdout); + checkferror_output(stdout); } if (rl_len <= max) @@ -295,6 +297,7 @@ limits return(Limits); if (c == EOF) { fprintf (stderr,"EOF encountered in a comment.\n"); + checkferror_output(stderr); break; } } diff --git a/bc/util.c b/bc/util.c index 8eba093..cacd796 100644 --- a/bc/util.c +++ b/bc/util.c @@ -247,9 +247,10 @@ init_gen (void) continue_label = 0; next_label = 1; out_count = 2; - if (compile_only) + if (compile_only) { printf ("@i"); - else + checkferror_output(stdout); + } else init_load (); had_error = FALSE; did_gen = FALSE; @@ -272,6 +273,7 @@ generate (const char *str) printf ("\n"); out_count = 0; } + checkferror_output(stdout); } else load_code (str); @@ -289,6 +291,7 @@ run_code(void) if (compile_only) { printf ("@r\n"); + checkferror_output(stdout); out_count = 0; } else @@ -326,6 +329,7 @@ out_char (int ch) } putchar (ch); } + checkferror_output(stdout); } /* Output routines: Write a character CH to the standard output. @@ -355,6 +359,7 @@ out_schar (int ch) } putchar (ch); } + checkferror_output(stdout); } @@ -639,6 +644,7 @@ limits(void) #ifdef OLD_EQ_OP printf ("Old assignment operatiors are valid. (=-, =+, ...)\n"); #endif + checkferror_output(stdout); } /* bc_malloc will check the return value so all other places do not @@ -703,6 +709,7 @@ yyerror (str, va_alist) fprintf (stderr,"%s %d: ",name,line_no); vfprintf (stderr, str, args); fprintf (stderr, "\n"); + checkferror_output(stderr); had_error = TRUE; va_end (args); } @@ -743,6 +750,7 @@ ct_warn (mesg, va_alist) fprintf (stderr,"%s %d: Error: ",name,line_no); vfprintf (stderr, mesg, args); fprintf (stderr, "\n"); + checkferror_output(stderr); had_error = TRUE; } else @@ -755,6 +763,7 @@ ct_warn (mesg, va_alist) fprintf (stderr,"%s %d: (Warning) ",name,line_no); vfprintf (stderr, mesg, args); fprintf (stderr, "\n"); + checkferror_output(stderr); } va_end (args); } @@ -789,6 +798,7 @@ rt_error (mesg, va_alist) va_end (args); fprintf (stderr, "\n"); + checkferror_output(stderr); runtime_error = TRUE; } @@ -823,6 +833,7 @@ rt_warn (const char *mesg) va_end (args); fprintf (stderr, "\n"); + checkferror_output(stderr); } /* bc_exit: Make sure to reset the edit state. */ diff --git a/dc/dc.c b/dc/dc.c index 6a2bb26..ccdb1c2 100644 --- a/dc/dc.c +++ b/dc/dc.c @@ -59,6 +59,7 @@ static void bug_report_info DC_DECLVOID() { printf("Email bug reports to: bug-dc@gnu.org .\n"); + checkferror_output(stdout); } static void @@ -69,6 +70,7 @@ show_version DC_DECLVOID() This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,\n\ to the extent permitted by law.\n", DC_COPYRIGHT); + checkferror_output(stdout); } /* your generic usage function */ @@ -85,6 +87,7 @@ Usage: %s [OPTION] [file ...]\n\ \n\ ", progname); bug_report_info(); + checkferror_output(f); } /* returns a pointer to one past the last occurance of c in s, diff --git a/dc/eval.c b/dc/eval.c index 05a3d9e..6c54e61 100644 --- a/dc/eval.c +++ b/dc/eval.c @@ -97,12 +97,15 @@ static int input_pushback; static int input_fil DC_DECLVOID() { + int c; if (input_pushback != EOF){ - int c = input_pushback; + c = input_pushback; input_pushback = EOF; return c; } - return getc(input_fil_fp); + c = getc(input_fil_fp); + checkferror_input(input_fil_fp); + return c; } /* passed as an argument to dc_getnum */ @@ -301,11 +304,13 @@ dc_func DC_DECLARG((c, peekc, negcmp)) tmpint = dc_num2int(datum.v.number, DC_TOSS); if (2 <= tmpint && tmpint <= DC_IBASE_MAX) dc_ibase = tmpint; - else + else { fprintf(stderr, "%s: input base must be a number \ between 2 and %d (inclusive)\n", progname, DC_IBASE_MAX); + checkferror_output(stderr); + } } break; case 'k': /* set scale to value on top of stack */ @@ -313,11 +318,12 @@ between 2 and %d (inclusive)\n", tmpint = -1; if (datum.dc_type == DC_NUMBER) tmpint = dc_num2int(datum.v.number, DC_TOSS); - if ( ! (tmpint >= 0) ) + if ( ! (tmpint >= 0) ) { fprintf(stderr, "%s: scale must be a nonnegative number\n", progname); - else + checkferror_output(stderr); + } else dc_scale = tmpint; } break; @@ -341,11 +347,12 @@ between 2 and %d (inclusive)\n", tmpint = 0; if (datum.dc_type == DC_NUMBER) tmpint = dc_num2int(datum.v.number, DC_TOSS); - if ( ! (tmpint > 1) ) + if ( ! (tmpint > 1) ) { fprintf(stderr, "%s: output base must be a number greater than 1\n", progname); - else + checkferror_output(stderr); + } else dc_obase = tmpint; } break; @@ -378,6 +385,7 @@ between 2 and %d (inclusive)\n", fprintf(stderr, "%s: square root of nonnumeric attempted\n", progname); + checkferror_output(stderr); }else if (dc_sqrt(datum.v.number, dc_scale, &tmpnum) == DC_SUCCESS){ dc_free_num(&datum.v.number); datum.v.number = tmpnum; @@ -424,6 +432,7 @@ between 2 and %d (inclusive)\n", dc_garbage("at top of stack", -1); } fflush(stdout); + checkferror_output(stdout); break; case 'Q': /* quit out of top-of-stack nested evals; * pops value from stack; @@ -440,6 +449,7 @@ between 2 and %d (inclusive)\n", fprintf(stderr, "%s: Q command requires a number >= 1\n", progname); + checkferror_output(stderr); } break; case 'R': /* pop a value off of the evaluation stack,; @@ -483,11 +493,12 @@ between 2 and %d (inclusive)\n", if (datum.dc_type == DC_NUMBER) tmpint = dc_num2int(datum.v.number, DC_TOSS); if (dc_pop(&datum) == DC_SUCCESS){ - if (tmpint < 0) + if (tmpint < 0) { fprintf(stderr, "%s: array index must be a nonnegative integer\n", progname); - else + checkferror_output(stderr); + } else dc_array_set(peekc, tmpint, datum); } } @@ -499,18 +510,21 @@ between 2 and %d (inclusive)\n", tmpint = -1; if (datum.dc_type == DC_NUMBER) tmpint = dc_num2int(datum.v.number, DC_TOSS); - if (tmpint < 0) + if (tmpint < 0) { fprintf(stderr, "%s: array index must be a nonnegative integer\n", progname); - else + checkferror_output(stderr); + } else dc_push(dc_array_get(peekc, tmpint)); } return DC_EATONE; default: /* What did that user mean? */ fprintf(stderr, "%s: ", progname); + checkferror_output(stderr); dc_show_id(stdout, c, " unimplemented\n"); + checkferror_output(stdout); break; } return DC_OKAY; @@ -538,6 +552,7 @@ evalstr DC_DECLARG((string)) fprintf(stderr, "%s: eval called with non-string argument\n", progname); + checkferror_output(stderr); return DC_OKAY; } interrupt_seen = 0; @@ -635,6 +650,7 @@ evalstr DC_DECLARG((string)) return DC_FAIL; } fprintf(stderr, "%s: unexpected EOS\n", progname); + checkferror_output(stderr); return DC_OKAY; } } @@ -692,6 +708,7 @@ dc_evalfile DC_DECLARG((fp)) stdin_lookahead = EOF; for (c=getc(fp); c!=EOF; c=peekc){ peekc = getc(fp); + checkferror_input(stdin); /* * The following if() is the only place where ``stdin_lookahead'' * might be set to other than EOF: @@ -717,24 +734,30 @@ dc_evalfile DC_DECLARG((fp)) signal(SIGINT, sigint_handler); switch (dc_func(c, peekc, negcmp)){ case DC_OKAY: - if (stdin_lookahead != peekc && fp == stdin) + if (stdin_lookahead != peekc && fp == stdin) { peekc = getc(fp); + checkferror_input(stdin); + } break; case DC_EATONE: peekc = getc(fp); + checkferror_input(fp); break; case DC_EVALREG: /*commands which send us here shall guarantee that peekc!=EOF*/ c = peekc; peekc = getc(fp); + checkferror_input(fp); stdin_lookahead = peekc; if (dc_register_get(c, &datum) != DC_SUCCESS) break; dc_push(datum); /*@fallthrough@*/ case DC_EVALTOS: - if (stdin_lookahead != peekc && fp == stdin) + if (stdin_lookahead != peekc && fp == stdin) { peekc = getc(fp); + checkferror_input(stdin); + } if (dc_pop(&datum) == DC_SUCCESS){ if (datum.dc_type == DC_NUMBER){ dc_push(datum); @@ -744,6 +767,7 @@ dc_evalfile DC_DECLARG((fp)) goto reset_and_exit_quit; fprintf(stderr, "%s: Q command argument exceeded \ string execution depth\n", progname); + checkferror_output(stderr); } }else{ dc_garbage("at top of stack", -1); @@ -756,8 +780,11 @@ string execution depth\n", progname); fprintf(stderr, "%s: Q command argument exceeded string execution depth\n", progname); - if (stdin_lookahead != peekc && fp == stdin) + checkferror_output(stderr); + if (stdin_lookahead != peekc && fp == stdin) { peekc = getc(fp); + checkferror_input(stdin); + } break; case DC_INT: diff --git a/dc/misc.c b/dc/misc.c index cd23602..cd910b8 100644 --- a/dc/misc.c +++ b/dc/misc.c @@ -89,6 +89,7 @@ dc_show_id DC_DECLARG((fp, id, suffix)) fprintf(fp, "'%c' (%#o)%s", (unsigned int) id, id, suffix); else fprintf(fp, "%#o%s", (unsigned int) id, suffix); + checkferror_output(fp); } diff --git a/dc/numeric.c b/dc/numeric.c index 37759de..60cfb85 100644 --- a/dc/numeric.c +++ b/dc/numeric.c @@ -133,6 +133,7 @@ dc_div DC_DECLARG((a, b, kscale, result)) bc_init_num(CastNumPtr(result)); if (bc_divide(CastNum(a), CastNum(b), CastNumPtr(result), kscale)){ fprintf(stderr, "%s: divide by zero\n", progname); + checkferror_output(stderr); return DC_DOMAIN_ERROR; } return DC_SUCCESS; @@ -155,6 +156,7 @@ dc_divrem DC_DECLARG((a, b, kscale, quotient, remainder)) if (bc_divmod(CastNum(a), CastNum(b), CastNumPtr(quotient), CastNumPtr(remainder), kscale)){ fprintf(stderr, "%s: divide by zero\n", progname); + checkferror_output(stderr); return DC_DOMAIN_ERROR; } return DC_SUCCESS; @@ -173,6 +175,7 @@ dc_rem DC_DECLARG((a, b, kscale, result)) bc_init_num(CastNumPtr(result)); if (bc_modulo(CastNum(a), CastNum(b), CastNumPtr(result), kscale)){ fprintf(stderr, "%s: remainder by zero\n", progname); + checkferror_output(stderr); return DC_DOMAIN_ERROR; } return DC_SUCCESS; @@ -225,6 +228,7 @@ dc_sqrt DC_DECLARG((value, kscale, result)) tmp = bc_copy_num(CastNum(value)); if (!bc_sqrt(&tmp, kscale)){ fprintf(stderr, "%s: square root of negative number\n", progname); + checkferror_output(stderr); bc_free_num(&tmp); return DC_DOMAIN_ERROR; } @@ -470,6 +474,7 @@ dc_dump_num DC_DECLARG((dcvalue, discard_p)) for (cur=top_of_stack; cur; cur=next) { putchar(cur->digit); + checkferror_output(stdout); next = cur->link; free(cur); } @@ -587,6 +592,8 @@ out_char (ch) out_col = 1; } putchar(ch); + checkferror_output(stdout); + checkferror_output(stderr); } } @@ -626,6 +633,7 @@ rt_error (mesg, va_alist) vfprintf (stderr, mesg, args); va_end (args); fprintf (stderr, "\n"); + checkferror_output(stderr); } @@ -659,6 +667,7 @@ rt_warn (mesg, va_alist) vfprintf (stderr, mesg, args); va_end (args); fprintf (stderr, "\n"); + checkferror_output(stderr); } diff --git a/dc/stack.c b/dc/stack.c index 49422df..174411d 100644 --- a/dc/stack.c +++ b/dc/stack.c @@ -35,7 +35,10 @@ #include "dc-regdef.h" /* an oft-used error message: */ -#define Empty_Stack fprintf(stderr, "%s: stack empty\n", progname) +#define Empty_Stack do{ \ + fprintf(stderr, "%s: stack empty\n", progname); \ + checkferror_output(stderr); \ + }while(0) /* simple linked-list implementation suffices: */ @@ -91,6 +94,7 @@ dc_binop DC_DECLARG((op, kscale)) if (dc_stack->value.dc_type!=DC_NUMBER || dc_stack->link->value.dc_type!=DC_NUMBER){ fprintf(stderr, "%s: non-numeric value\n", progname); + checkferror_output(stderr); return; } (void)dc_pop(&b); @@ -131,6 +135,7 @@ dc_binop2 DC_DECLARG((op, kscale)) if (dc_stack->value.dc_type!=DC_NUMBER || dc_stack->link->value.dc_type!=DC_NUMBER){ fprintf(stderr, "%s: non-numeric value\n", progname); + checkferror_output(stderr); return; } (void)dc_pop(&b); @@ -169,6 +174,7 @@ dc_cmpop DC_DECLVOID() if (dc_stack->value.dc_type!=DC_NUMBER || dc_stack->link->value.dc_type!=DC_NUMBER){ fprintf(stderr, "%s: non-numeric value\n", progname); + checkferror_output(stderr); return 0; } (void)dc_pop(&b); @@ -206,6 +212,7 @@ dc_triop DC_DECLARG((op, kscale)) || dc_stack->link->value.dc_type!=DC_NUMBER || dc_stack->link->link->value.dc_type!=DC_NUMBER){ fprintf(stderr, "%s: non-numeric value\n", progname); + checkferror_output(stderr); return; } (void)dc_pop(&c); @@ -327,6 +334,7 @@ dc_register_get DC_DECLARG((regid, result)) *result = dc_int2data(0); }else if (r->value.dc_type==DC_UNINITIALIZED){ fprintf(stderr, "%s: BUG: register ", progname); + checkferror_output(stderr); dc_show_id(stderr, regid, " exists but is uninitialized?\n"); return DC_FAIL; }else{ @@ -402,6 +410,7 @@ dc_register_pop DC_DECLARG((stackid, result)) r = dc_register[stackid]; if (r==NULL || r->value.dc_type==DC_UNINITIALIZED){ fprintf(stderr, "%s: stack register ", progname); + checkferror_output(stderr); dc_show_id(stderr, stackid, " is empty\n"); return DC_FAIL; } diff --git a/dc/string.c b/dc/string.c index dee9169..389d899 100644 --- a/dc/string.c +++ b/dc/string.c @@ -94,6 +94,7 @@ dc_out_str DC_DECLARG((value, discard_flag)) dc_discard discard_flag DC_DECLEND { fwrite(value->s_ptr, value->s_len, sizeof *value->s_ptr, stdout); + checkferror_output(stdout); if (discard_flag == DC_TOSS) dc_free_str(&value); } @@ -169,6 +170,7 @@ dc_readstring DC_DECLARG((fp, ldelim, rdelim)) } *p++ = c; } + checkferror_input(fp); return dc_makestring(line_buf, (size_t)(p-line_buf)); } diff --git a/h/number.h b/h/number.h index abf6332..1983ab4 100644 --- a/h/number.h +++ b/h/number.h @@ -23,10 +23,10 @@ You may contact the author by: e-mail: philnelson@acm.org us-mail: Philip A. Nelson - Computer Science Department, 9062 - Western Washington University - Bellingham, WA 98226-9062 - + Computer Science Department, 9062 + Western Washington University + Bellingham, WA 98226-9062 + *************************************************************************/ #ifndef _NUMBER_H_ @@ -140,4 +140,7 @@ void bc_out_num (bc_num num, int o_base, void (* out_char)(int), int leading_zero); void bc_out_long (long val, int size, int space, void (*out_char)(int)); + +void checkferror_input (FILE*); +void checkferror_output (FILE*); #endif diff --git a/lib/number.c b/lib/number.c index f394e92..80b33e3 100644 --- a/lib/number.c +++ b/lib/number.c @@ -1713,6 +1713,7 @@ static void out_char (int c) { putchar(c); + checkferror_output(stdout); } @@ -1721,6 +1722,7 @@ pn (bc_num num) { bc_out_num (num, 10, out_char, 0); out_char ('\n'); + checkferror_output(stdout); } @@ -1732,6 +1734,28 @@ pv (char *name, unsigned char *num, int len) printf ("%s=", name); for (i=0; i Date: Thu, 27 Jun 2019 13:10:47 +0800 Subject: [PATCH] dc: fix exit code of q command The exit code for "echo q | dc" is 1 for dc-1.4.1; while the exit code for "echo q | dc" is 0 for dc-1.4. Here is the answer from ken@gnu.org: dc-1.4 was right. There was a rewrite of a chunk of code for 1.4.1 to fix a corner case in the Q command, and somehow the placement of the clean-up label for the 'q' command got misplaced on the error-handling branch instead of the clean-exit branch. The patch below fixes this (it is committed for whenever the next bc/dc release gets made). Thanks for the report, --Ken Pizzini Upstream: https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-extended/bc/bc/0001-dc-fix-exit-code-of-q-command.patch Signed-off-by: Li Zhou Signed-off-by: Matthew Weber --- dc/eval.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dc/eval.c b/dc/eval.c index 6c54e61..9c28f18 100644 --- a/dc/eval.c +++ b/dc/eval.c @@ -841,10 +841,10 @@ error_fail: fprintf(stderr, "%s: ", progname); perror("error reading input"); return DC_FAIL; -reset_and_exit_quit: reset_and_exit_fail: signal(SIGINT, sigint_default); return DC_FAIL; +reset_and_exit_quit: reset_and_exit_success: signal(SIGINT, sigint_default); return DC_SUCCESS; -- 2.17.1 ================================================ FILE: package/bc/0004-no-gen-libmath.patch ================================================ From a543af443c5f86b24ca89a994b75b6ef4751ac66 Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Thu, 12 Sep 2019 15:12:40 -0500 Subject: [PATCH] no gen libmath These rules are not cross-friendly so delete them. libmath has been generated offline and included as part of this patch as the fbc tool used to generate that header is assuming the cross archtecture and can't execute. Upstream: https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-extended/bc/bc/no-gen-libmath.patch https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-extended/bc/bc/libmath.h [Reformatted to GIT for 1.0.7.1 by Matt W] Signed-off-by: Ross Burton Signed-off-by: Matthew Weber --- bc/Makefile.am | 8 -------- bc/libmath.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 8 deletions(-) create mode 100644 bc/libmath.h diff --git a/bc/Makefile.am b/bc/Makefile.am index d9d412e..f244241 100644 --- a/bc/Makefile.am +++ b/bc/Makefile.am @@ -31,14 +31,6 @@ global.o: libmath.h fbcOBJ = main.o bc.o scan.o execute.o load.o storage.o util.o warranty.o -libmath.h: libmath.b $(fbcOBJ) $(LIBBC) - echo '{0}' > libmath.h - $(MAKE) global.o - $(LINK) -o fbc $(fbcOBJ) global.o $(LIBBC) $(LIBL) $(READLINELIB) $(LIBS) - ./fbc -c $(srcdir)/libmath.b libmath.h - $(srcdir)/fix-libmath_h - rm -f ./fbc ./global.o - sbcOBJ = main.o sbc.o scan.o execute.o global.o load.o storage.o util.o \ warranty.o sbc.o: sbc.c diff --git a/bc/libmath.h b/bc/libmath.h new file mode 100644 index 0000000..63e1acb --- /dev/null +++ b/bc/libmath.h @@ -0,0 +1,46 @@ +{"@iK20:s2:p@r", +"@iF1,5.6,7,8,9,10,11,12,13,14,15[l0:KA:#Z1:l0:s7:pKA:s0:pl5:C1,0:", +"s14:pl7:s0:pl14:RN1:l5:0Z4:l10:1+s10:pl5:K2:/s5:pl2:", +"1+s2:pJ3:N4:l13:s2:p1l5:+s14:pl5:s6:p1s8:pK2:s11:pN6:1B7:J5:N8:", +"l11:i11:pJ6:N7:l6:l5:*s6:l8:l11:*s8:/s9:pl9:0=Z9:l10:0>Z10:N11:", +"l10:d10:Z12:l14:l14:*s14:pJ11:N12:N10:l15:s2:pl12:Z13:1l14:/R", +"N13:l14:1/RN9:l14:l9:+s14:pJ8:N5:0R]@r", +"@iF2,5.7,9,10,11,12,13,14,15[l0:KA:#Z1:l0:s7:pKA:s0:pl5:C2,0:", +"s14:pl7:s0:pl14:RN1:l5:0{Z2:1K10:l2:^-1/RN2:l2:s15:pK6:l2:+s2:", +"pK2:s10:p0s11:pN3:l5:K2:}Z4:l10:K2:*s10:pl5:cRs5:pJ3:N4:N5:l5:", +"K.5:{Z6:l10:K2:*s10:pl5:cRs5:pJ5:N6:l5:1-l5:1+/s13:s14:pl13:l13:", +"*s12:pK3:s11:pN8:1B9:J7:N10:l11:K2:+s11:pJ8:N9:l13:l12:*s13:l11:", +"/s9:pl9:0=Z11:l10:l14:*s14:pl15:s2:pl14:1/RN11:l14:l9:+s14:pJ10:N7:", +"0R]@r", +"@iF3,5.7,9,11,12,13,16,14,15[l0:KA:#Z1:l0:s7:pKA:s0:pl5:C3,0:", +"s14:pl7:s0:pl14:RN1:l2:s15:pK1.1:l15:*K2:+s2:p1C4,0:s14:pl5:0", +"Z11:l15:K5:+s2:pK.2:C4,0:s6:pN11:", +"l15:K3:+s2:pN12:l5:K.2:>Z13:l10:1+s10:pl5:K.2:-1l5:K.2:*+/s5:", +"pJ12:N13:l5:s13:s14:pl5:nl5:*s16:pK3:s11:pN15:1B16:J14:N17:l11:", +"K2:+s11:pJ15:N16:l13:l16:*s13:l11:/s9:pl9:0=Z18:l15:s2:pl10:l6:", +"*l14:+l12:/RN18:l14:l9:+s14:pJ17:N14:0R]@r", +"@iF6,13,5.6,7,8,9,10,11,12,16,14,15[l0:KA:#Z1:l0:s7:pKA:s0:pl13:", +"l5:C6,00:s14:pl7:s0:pl14:RN1:l2:s15:p0s2:pl13:1/s13:pl13:0 From: David Mohr Date: Tue, 26 May 2015 20:34:31 -0600 Subject: Don't inline crc64 for gcc-5 compatability Forwarded: http://article.gmane.org/gmane.linux.kernel.bcache.devel/2919 By James Cowgill, see Debian bug #777798 --- bcache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bcache.c b/bcache.c index 8f37445..8b4b986 100644 --- a/bcache.c +++ b/bcache.c @@ -115,7 +115,7 @@ static const uint64_t crc_table[256] = { 0x9AFCE626CE85B507ULL }; -inline uint64_t crc64(const void *_data, size_t len) +uint64_t crc64(const void *_data, size_t len) { uint64_t crc = 0xFFFFFFFFFFFFFFFFULL; const unsigned char *data = _data; ================================================ FILE: package/bcache-tools/Config.in ================================================ config BR2_PACKAGE_BCACHE_TOOLS bool "bcache tools" depends on BR2_PACKAGE_HAS_UDEV depends on BR2_USE_MMU # util-linux (libblkid) select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_UTIL_LINUX_LIBBLKID help Bcache is a Linux kernel block layer cache. It allows one or more fast disk drives such as flash-based solid state drives (SSDs) to act as a cache for one or more slower hard disk drives. http://bcache.evilpiepirate.org/ This is the user space bcache tools, required to setup the linux bcache feature of the Linux kernel. comment "bcache-tools needs udev /dev management" depends on BR2_USE_MMU depends on !BR2_PACKAGE_HAS_UDEV ================================================ FILE: package/bcache-tools/bcache-tools.hash ================================================ # Locally calculated sha256 d56923936f37287efc57a46315679102ef2c86cd0be5874590320acd48c1201c bcache-tools-1.0.8.tar.gz sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING ================================================ FILE: package/bcache-tools/bcache-tools.mk ================================================ ################################################################################ # # bcache-tools # ################################################################################ BCACHE_TOOLS_VERSION = 1.0.8 BCACHE_TOOLS_SITE = $(call github,g2p,bcache-tools,v$(BCACHE_TOOLS_VERSION)) BCACHE_TOOLS_LICENSE = GPL-2.0 BCACHE_TOOLS_LICENSE_FILES = COPYING BCACHE_TOOLS_DEPENDENCIES = host-pkgconf util-linux # We pass $(TARGET_CONFIGURE_OPTS) as environment variable to allow # the bcache-tools Makefile to alter CFLAGS define BCACHE_TOOLS_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef # The bcache-tools Makefile expects the man8 directory to exist # expects the /lib/udev/rules.d directory to exist. define BCACHE_TOOLS_CREATE_MISSING_DIRS $(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/share/man/man8 $(INSTALL) -m 0755 -d $(TARGET_DIR)/lib/udev/rules.d endef BCACHE_TOOLS_PRE_INSTALL_TARGET_HOOKS += BCACHE_TOOLS_CREATE_MISSING_DIRS define BCACHE_TOOLS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/bcg729/Config.in ================================================ config BR2_PACKAGE_BCG729 bool "bcg729" help Bcg729 is an opensource implementation of both encoder and decoder of the ITU G729 Annex A/B speech codec. https://www.linphone.org/technical-corner/bcg729 ================================================ FILE: package/bcg729/bcg729.hash ================================================ # Locally computed sha256 94b3542a06cbd96306efc19f959f9febae62806a22599063f82a8c33e989d48b bcg729-1.0.4.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/bcg729/bcg729.mk ================================================ ################################################################################ # # bcg729 # ################################################################################ BCG729_VERSION = 1.0.4 BCG729_SITE = $(call github,BelledonneCommunications,bcg729,$(BCG729_VERSION)) BCG729_LICENSE = GPL-2.0+ BCG729_LICENSE_FILES = COPYING BCG729_INSTALL_STAGING = YES ifeq ($(BR2_STATIC_LIBS),y) BCG729_CONF_OPTS += -DENABLE_SHARED=OFF -DENABLE_STATIC=ON else ifeq ($(BR2_SHARED_STATIC_LIBS),y) BCG729_CONF_OPTS += -DENABLE_SHARED=ON -DENABLE_STATIC=ON else ifeq ($(BR2_SHARED_LIBS),y) BCG729_CONF_OPTS += -DENABLE_SHARED=ON -DENABLE_STATIC=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/bcm2835/Config.in ================================================ config BR2_PACKAGE_BCM2835 bool "bcm2835" depends on BR2_arm help C library for Broadcom BCM 2835 as used in Raspberry Pi. It provides access to GPIO and other IO functions on the Broadcom BCM 2835 chip, allowing access to the GPIO pins on the 26 pin IDE plug on the RPi board so you can control and interface with various external devices. WARNING: the opinion of the Buildroot developers is that such library is a complete abomination as it entirely works around the standard Linux interfaces to access GPIOs, I2C, SPI busses or other IOs. The library directly remaps the hardware registers in user-space, completely bypassing what the kernel drivers are doing, and potentially conflicting with them. http://www.airspayce.com/mikem/bcm2835 ================================================ FILE: package/bcm2835/bcm2835.hash ================================================ # Locally computed: sha256 c062a8a1cf1dc1ba1ca3978451d2f668b66f7ce5548200a0f4a8bb2117b1b2c9 bcm2835-1.70.tar.gz sha256 8b1ba204bb69a0ade2bfcf65ef294a920f6bb361b317dba43c7ef29d96332b9b COPYING ================================================ FILE: package/bcm2835/bcm2835.mk ================================================ ################################################################################ # # bcm2835 # ################################################################################ BCM2835_VERSION = 1.70 BCM2835_SITE = http://www.airspayce.com/mikem/bcm2835 BCM2835_LICENSE = GPL-3.0 BCM2835_LICENSE_FILES = COPYING BCM2835_INSTALL_STAGING = YES # disable doxygen doc generation BCM2835_CONF_ENV = ac_cv_prog_DOXYGEN=/bin/true $(eval $(autotools-package)) ================================================ FILE: package/bctoolbox/0001-Fix-Libs.private-flags-for-mbedtls.patch ================================================ From b7f14a800bbdad193f45695bc5b8c5173f3882ba Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 10 Feb 2019 17:51:05 +0100 Subject: [PATCH] CMakeLists.txt: fix mbedtls libraries in bctoolbox.pc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bctoolbox.pc should not contain the full libraries path, path should be given by -L and library names by -l So sent back the fix already suggested by Jörg Krause in https://github.com/BelledonneCommunications/bctoolbox/pull/4 Signed-off-by: Jörg Krause Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/BelledonneCommunications/bctoolbox/pull/7] --- CMakeLists.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 29f3eb6..b2f26c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -101,9 +101,8 @@ else() endif() if(MBEDTLS_FOUND) - get_filename_component(mbedtls_library_path "${MBEDTLS_LIBRARIES}" PATH) - string(REPLACE ";" " " MBEDTLS_LIBRARIES_STR "${MBEDTLS_LIBRARIES}") - set(LIBS_PRIVATE "${LIBS_PRIVATE} ${MBEDTLS_LIBRARIES_STR}") + get_filename_component(mbedtls_library_path "${MBEDTLS_LIBRARY}" PATH) + set(LIBS_PRIVATE "${LIBS_PRIVATE} -L${mbedtls_library_path} -lmbedtls -lmbedcrypto -lmbedx509") endif() if(POLARSSL_FOUND) get_filename_component(polarssl_library_path "${POLARSSL_LIBRARIES}" PATH) ================================================ FILE: package/bctoolbox/Config.in ================================================ config BR2_PACKAGE_BCTOOLBOX bool "bctoolbox" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Utilities library used by Belledonne Communications softwares like belle-sip, mediastreamer2 and linphone. Select BR2_PACKAGE_MBEDTLS for crypto support. https://github.com/BelledonneCommunications/bctoolbox comment "bctoolbox needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS comment "bctoolbox needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/bctoolbox/bctoolbox.hash ================================================ # Locally calculated sha256 446b60e81a79b11e8212c44e312aeb0ce46e9ecf0269a35c492ecdca3e7428c3 bctoolbox-4.4.8.tar.gz sha256 1b3782ccad7b8614100cda30d3faf42fc39f2e97932908c543005053b654ca68 LICENSE.txt ================================================ FILE: package/bctoolbox/bctoolbox.mk ================================================ ################################################################################ # # bctoolbox # ################################################################################ BCTOOLBOX_VERSION = 4.4.8 BCTOOLBOX_SITE = $(call github,BelledonneCommunications,bctoolbox,$(BCTOOLBOX_VERSION)) BCTOOLBOX_LICENSE = GPL-3.0+ BCTOOLBOX_LICENSE_FILES = LICENSE.txt BCTOOLBOX_INSTALL_STAGING = YES # Set CMAKE_SKIP_RPATH to prevent bctoolbox from adding the rpath to # shared library. BCTOOLBOX_CONF_OPTS = \ -DENABLE_POLARSSL=OFF \ -DENABLE_STRICT=OFF \ -DENABLE_TESTS_COMPONENT=OFF \ -DENABLE_TESTS=OFF \ -DCMAKE_SKIP_RPATH=ON ifeq ($(BR2_PACKAGE_LIBICONV),y) BCTOOLBOX_DEPENDENCIES += libiconv BCTOOLBOX_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) -liconv" endif ifeq ($(BR2_PACKAGE_MBEDTLS),y) BCTOOLBOX_DEPENDENCIES += mbedtls BCTOOLBOX_CONF_OPTS += -DENABLE_MBEDTLS=ON else BCTOOLBOX_CONF_OPTS += -DENABLE_MBEDTLS=OFF endif ifeq ($(BR2_STATIC_LIBS),y) BCTOOLBOX_CONF_OPTS += -DENABLE_SHARED=OFF -DENABLE_STATIC=ON else ifeq ($(BR2_SHARED_STATIC_LIBS),y) BCTOOLBOX_CONF_OPTS += -DENABLE_SHARED=ON -DENABLE_STATIC=ON else ifeq ($(BR2_SHARED_LIBS),y) BCTOOLBOX_CONF_OPTS += -DENABLE_SHARED=ON -DENABLE_STATIC=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/bcusdk/0001-fd_set-requires-inclusion-of-sys-select.h.patch ================================================ From 2541ee3d709803096b17e45610ccc1404e2e5eee Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 8 Aug 2015 17:46:34 +0200 Subject: [PATCH] fd_set requires inclusion of According to POSIX.1-2001, the definition fd_set and related macros is in , so it should be included in files using fd_set to make the code compatible with all standard C libraries. Submitted upstream: https://sourceforge.net/p/bcusdk/patches/3/ Signed-off-by: Thomas Petazzoni --- eibd/examples/common.h | 1 + 1 file changed, 1 insertion(+) diff --git a/eibd/examples/common.h b/eibd/examples/common.h index 51fc514..f038da1 100644 --- a/eibd/examples/common.h +++ b/eibd/examples/common.h @@ -20,6 +20,7 @@ #include #include #include +#include #include "eibclient.h" /** unsigned char*/ -- 2.5.0 ================================================ FILE: package/bcusdk/0002-eibd-fix-endless-recursion-when-using-USB-backends.patch ================================================ From 6bd1b4958e949d83468e053c34bf6c89d14d687a Mon Sep 17 00:00:00 2001 From: Kurt Van Dijck Date: Fri, 25 Aug 2017 23:01:14 +0200 Subject: [PATCH] eibd: drop local clock_gettime in USB backends clock_gettime is defined locally, and calls pth_int_time, which in turn calls clock_gettime. The USB backend shouldn't overrule clock_gettime in the first place. This patch fixes this endless recursion by removing the local defition. Signed-off-by: Kurt Van Dijck --- eibd/usb/linux_usbfs.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/eibd/usb/linux_usbfs.c b/eibd/usb/linux_usbfs.c index c3ec410..957b908 100644 --- a/eibd/usb/linux_usbfs.c +++ b/eibd/usb/linux_usbfs.c @@ -52,12 +52,6 @@ int pthread_mutex_trylock(pthread_mutex_t *mutex) return 0; } -int clock_gettime(clockid_t clk_id, struct timespec *tp) -{ - pth_int_time (tp); - return 0; -} - /* sysfs vs usbfs: * opening a usbfs node causes the device to be resumed, so we attempt to * avoid this during enumeration. -- 1.8.5.rc3 ================================================ FILE: package/bcusdk/Config.in ================================================ config BR2_PACKAGE_BCUSDK bool "bcusdk" depends on BR2_USE_MMU # libpthsem depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_LIBPTHSEM select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL help A free development environment for the Bus Coupling Units of the European Installation Bus. The European Installation Bus EIB is a home and building automation bus system. It is optimized for low-speed control applications like lighting and blinds control. BCUs (Bus Coupling Units) are standardized, generic platforms for embedded EIB devices. They include the entire physical layer network interface, power supply and a microcontroller with an implementation of the EIB protocol stack stored in the ROM. http://www.auto.tuwien.ac.at/~mkoegler/eib/ comment "bcusdk needs a toolchain w/ C++" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/bcusdk/bcusdk.hash ================================================ # Locally calculated sha256 014cdaafc36f223c584b39ae5d698dd037a8e15aba4e78a2e531b51ff1331304 bcusdk_0.0.5.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/bcusdk/bcusdk.mk ================================================ ################################################################################ # # bcusdk # ################################################################################ BCUSDK_VERSION = 0.0.5 BCUSDK_SOURCE = bcusdk_$(BCUSDK_VERSION).tar.gz BCUSDK_SITE = http://www.auto.tuwien.ac.at/~mkoegler/eib BCUSDK_LICENSE = GPL-2.0+ BCUSDK_LICENSE_FILES = COPYING BCUSDK_INSTALL_STAGING = YES BCUSDK_CONF_OPTS = \ --enable-onlyeibd \ --enable-ft12 \ --enable-pei16 \ --enable-tpuarts \ --enable-eibnetip \ --enable-eibnetipserver \ --enable-eibnetiptunnel \ --without-pth-test \ --with-pth=$(STAGING_DIR)/usr BCUSDK_DEPENDENCIES = \ libpthsem \ $(if $(BR2_PACKAGE_ARGP_STANDALONE),argp-standalone) define BCUSDK_REMOVE_EXAMPLES $(RM) -rf $(TARGET_DIR)/usr/share/bcusdk endef BCUSDK_POST_INSTALL_TARGET_HOOKS += BCUSDK_REMOVE_EXAMPLES $(eval $(autotools-package)) ================================================ FILE: package/bdwgc/0001-Fix-undefined-reference-to-__data_start-linker-error.patch ================================================ From 301ef15aefa6764466c374d07efb511b1c3862cc Mon Sep 17 00:00:00 2001 From: Nikita Ermakov Date: Wed, 20 May 2020 17:57:17 +0300 Subject: [PATCH] Fix 'undefined reference to __data_start' linker error on RISC-V Issue #294 (bdwgc). * include/private/gcconfig.h [RISCV && LINUX] (__data_start): Add attribute(weak). (cherry picked from commit 538562ad01b181f4cc3913da1ac06a77945cd9b9) Signed-off-by: Romain Naour --- include/private/gcconfig.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h index d9d45da1..d6cefa6f 100644 --- a/include/private/gcconfig.h +++ b/include/private/gcconfig.h @@ -2943,7 +2943,7 @@ EXTERN_C_BEGIN # define ALIGNMENT (CPP_WORDSZ/8) # ifdef LINUX # define OS_TYPE "LINUX" - extern int __data_start[]; + extern int __data_start[] __attribute__((__weak__)); # define DATASTART ((ptr_t)__data_start) # define LINUX_STACKBOTTOM # define DYNAMIC_LOADING -- 2.30.2 ================================================ FILE: package/bdwgc/Config.in ================================================ config BR2_PACKAGE_BDWGC bool "bdwgc" depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS select BR2_PACKAGE_LIBATOMIC_OPS help The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C 'malloc' or C++ 'new'. http://www.hboehm.info/gc/ ================================================ FILE: package/bdwgc/bdwgc.hash ================================================ # Locally computed sha256 436a0ddc67b1ac0b0405b61a9675bca9e075c8156f4debd1d06f3a56c7cd289d gc-8.0.4.tar.gz sha256 aeeaabbf44e67d413e18719f0c6ac9c23387ab0b33e7a15ee46cf59ddef12cc7 README.QUICK ================================================ FILE: package/bdwgc/bdwgc.mk ================================================ ################################################################################ # # bdwgc # ################################################################################ BDWGC_VERSION = 8.0.4 BDWGC_SOURCE = gc-$(BDWGC_VERSION).tar.gz BDWGC_SITE = http://www.hboehm.info/gc/gc_source BDWGC_INSTALL_STAGING = YES BDWGC_LICENSE = bdwgc license BDWGC_LICENSE_FILES = README.QUICK BDWGC_CPE_ID_VENDOR = bdwgc_project BDWGC_DEPENDENCIES = libatomic_ops host-pkgconf HOST_BDWGC_DEPENDENCIES = host-libatomic_ops host-pkgconf BDWGC_CONF_OPTS = CFLAGS_EXTRA="$(BDWGC_CFLAGS_EXTRA)" ifeq ($(BR2_sparc),y) BDWGC_CFLAGS_EXTRA += -DAO_NO_SPARC_V9 endif ifeq ($(BR2_STATIC_LIBS),y) BDWGC_CFLAGS_EXTRA += -DGC_NO_DLOPEN endif # Ensure we use the system libatomic_ops, and not the internal one. BDWGC_CONF_OPTS += --with-libatomic-ops=yes HOST_BDWGC_CONF_OPTS = --with-libatomic-ops=yes ifeq ($(BR2_INSTALL_LIBSTDCPP),y) BDWGC_CONF_OPTS += --enable-cplusplus else BDWGC_CONF_OPTS += --disable-cplusplus endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/bearssl/Config.in ================================================ config BR2_PACKAGE_BEARSSL bool "bearssl" help BearSSL is an implementation of the SSL/TLS protocol (RFC 5246) written in C. https://bearssl.org ================================================ FILE: package/bearssl/bearssl.hash ================================================ # Locally computed: sha256 6705bba1714961b41a728dfc5debbe348d2966c117649392f8c8139efc83ff14 bearssl-0.6.tar.gz sha256 771bf18c8633ea69ec9b07d2e604c4b99b7bef41b0f5ce6385d24df4448f61ca LICENSE.txt ================================================ FILE: package/bearssl/bearssl.mk ================================================ ################################################################################ # # bearssl # ################################################################################ BEARSSL_VERSION = 0.6 BEARSSL_SITE = https://bearssl.org BEARSSL_LICENSE = MIT BEARSSL_LICENSE_FILES = LICENSE.txt BEARSSL_INSTALL_STAGING = YES BEARSSL_MAKE_OPTS = \ $(TARGET_CONFIGURE_OPTS) \ LDDLL=$(TARGET_CC) ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) BEARSSL_TARGETS += dll BEARSSL_MAKE_OPTS += CFLAGS="$(TARGET_CFLAGS) -fPIC" endif ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y) BEARSSL_TARGETS += lib endif define BEARSSL_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(BEARSSL_MAKE_OPTS) -C $(@D) \ $(BEARSSL_TARGETS) endef define BEARSSL_INSTALL_STAGING_CMDS mkdir -p $(STAGING_DIR)/usr/include cp -dpfr $(@D)/inc/*.h $(STAGING_DIR)/usr/include mkdir -p $(STAGING_DIR)/usr/lib cp -dpfr $(@D)/build/lib* $(STAGING_DIR)/usr/lib endef define BEARSSL_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/lib cp -dpfr $(@D)/build/lib* $(TARGET_DIR)/usr/lib endef $(eval $(generic-package)) ================================================ FILE: package/beecrypt/0001-cppglue.cxx-cplusplus-only.patch ================================================ Makefile.am: Only compile/link cppglue.cxx if --with-cplusplus is used Bloats libbeecrypt for no use and breaks build on systems without a C++ compiler. Signed-off-by: Peter Korsgaard --- Makefile.am | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) Index: beecrypt-4.2.1/Makefile.am =================================================================== --- beecrypt-4.2.1.orig/Makefile.am +++ beecrypt-4.2.1/Makefile.am @@ -62,7 +62,12 @@ lib_LTLIBRARIES = libbeecrypt.la -libbeecrypt_la_SOURCES = aes.c base64.c beecrypt.c blockmode.c blockpad.c blowfish.c dhies.c dldp.c dlkp.c dlpk.c dlsvdp-dh.c dsa.c elgamal.c endianness.c entropy.c fips186.c hmac.c hmacmd5.c hmacsha1.c hmacsha224.c hmacsha256.c md4.c md5.c hmacsha384.c hmacsha512.c memchunk.c mp.c mpbarrett.c mpnumber.c mpprime.c mtprng.c pkcs1.c pkcs12.c ripemd128.c ripemd160.c ripemd256.c ripemd320.c rsa.c rsakp.c rsapk.c sha1.c sha224.c sha256.c sha384.c sha512.c sha2k32.c sha2k64.c timestamp.c cppglue.cxx +libbeecrypt_la_SOURCES = aes.c base64.c beecrypt.c blockmode.c blockpad.c blowfish.c dhies.c dldp.c dlkp.c dlpk.c dlsvdp-dh.c dsa.c elgamal.c endianness.c entropy.c fips186.c hmac.c hmacmd5.c hmacsha1.c hmacsha224.c hmacsha256.c md4.c md5.c hmacsha384.c hmacsha512.c memchunk.c mp.c mpbarrett.c mpnumber.c mpprime.c mtprng.c pkcs1.c pkcs12.c ripemd128.c ripemd160.c ripemd256.c ripemd320.c rsa.c rsakp.c rsapk.c sha1.c sha224.c sha256.c sha384.c sha512.c sha2k32.c sha2k64.c timestamp.c + +if WITH_CPLUSPLUS +libbeecrypt_la_SOURCES += cppglue.cxx +endif + libbeecrypt_la_DEPENDENCIES = $(BEECRYPT_OBJECTS) libbeecrypt_la_LIBADD = blowfishopt.lo mpopt.lo sha1opt.lo $(OPENMP_LIBS) libbeecrypt_la_LDFLAGS = -no-undefined -version-info $(LIBBEECRYPT_LT_CURRENT):$(LIBBEECRYPT_LT_REVISION):$(LIBBEECRYPT_LT_AGE) ================================================ FILE: package/beecrypt/0002-build-system.patch ================================================ Fix build with BR2_ENABLE_DEBUG=yes, no need for expert mode anymore Otherwise configure issues this error message: configure: error: --enable-debug cannot be used in conjunction with --enable-expert-mode Downloaded from Gentoo: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/beecrypt/files/beecrypt-4.2.1-build-system.patch?revision=1.2&view=markup This patch also removes the hard-coded CFLAGS provided by beecrypt in favour of the CFLAGS provided by buildroot. Signed-off-by: Bernd Kuhls --- beecrypt-4.2.1/configure.ac +++ beecrypt-4.2.1/configure.ac @@ -11,7 +11,7 @@ # Checks for package options AC_ARG_ENABLE(expert-mode, [ --enable-expert-mode follow user-defined CFLAGS settings [[default=no]]],[ - ac_enable_expert_mode=yes + ac_enable_expert_mode=$enableval ],[ if test "X$CFLAGS" != "X"; then echo "enabling expert mode" @@ -25,7 +25,7 @@ if test "$ac_enable_expert_mode" = yes; then AC_MSG_ERROR([--enable-debug cannot be used in conjunction with --enable-expert-mode]) fi - ac_enable_debug=yes + ac_enable_debug=$enableval ],[ ac_enable_debug=no ]) @@ -456,7 +456,7 @@ ac_cv_python_include="-I`$PYTHON -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_inc()'`" ]) AC_CACHE_CHECK([where to install python libraries], ac_cv_python_libdir, [ - ac_cv_python_libdir=`$PYTHON -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib()'` + ac_cv_python_libdir=`$PYTHON -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(1, 0)'` ]) fi fi --- beecrypt-4.2.1/acinclude.m4 +++ beecrypt-4.2.1/acinclude.m4 @@ -498,15 +498,6 @@ AC_DEFUN([BEE_GNU_CC],[ AC_SUBST(OPENMP_LIBS,"-lgomp") fi case $bc_target_arch in - x86_64 | athlon64 | athlon-fx | k8 | opteron | em64t | nocona) - CC="$CC -m64" - ;; - i[[3456]]86 | \ - pentium* | \ - athlon*) - CC="$CC -m32" - CCAS="$CCAS -m32" - ;; ia64) case $target_os in # HP/UX on Itanium needs to be told that a long is 64-bit! @@ -525,17 +516,8 @@ AC_DEFUN([BEE_GNU_CC],[ aix*) CC="$CC -maix64" ;; - linux*) - CC="$CC -m64" - ;; esac ;; - sparc | sparcv8*) - CC="$CC -m32" - ;; - sparc64 | sparcv9*) - CC="$CC -m64" - ;; esac # Certain platforms needs special flags for multi-threaded code if test "$ac_enable_threads" = yes; then @@ -646,14 +646,6 @@ dnl BEE_GNU_CXX AC_DEFUN([BEE_GNU_CXX],[ AC_REQUIRE([AC_PROG_CXX]) case $bc_target_arch in - x86_64 | athlon64 | athlon-fx | k8 | opteron | em64t | nocona | core2) - CXX="$CXX -m64" - ;; - i[[3456]]86 | \ - pentium* | \ - athlon*) - CXX="$CXX -m32" - ;; ia64) case $target_os in # HP/UX on Itanium needs to be told that a long is 64-bit! @@ -672,17 +664,8 @@ AC_DEFUN([BEE_GNU_CXX],[ aix*) CXX="$CXX -maix64" ;; - linux*) - CXX="$CXX -m64" - ;; esac ;; - sparc | sparcv8*) - CXX="$CXX -m32" - ;; - sparc64 | sparcv9*) - CXX="$CXX -m64" - ;; esac # Certain platforms needs special flags for multi-threaded code if test "$ac_enable_threads" = yes; then --- beecrypt-4.2.1/java/Makefile.am +++ beecrypt-4.2.1/java/Makefile.am @@ -26,7 +26,7 @@ INCLUDES = -I$(top_srcdir)/include -libaltdir=$(prefix)/lib@LIBALT@ +libaltdir=$(libdir) libalt_LTLIBRARIES = libbeecrypt_java.la --- beecrypt-4.2.1/acinclude.m4 +++ beecrypt-4.2.1/acinclude.m4 @@ -1589,20 +1589,5 @@ AC_SUBST(TYPEDEF_BC_THREADID_T,$bc_typedef_bc_threadid_t) ]) - -AH_BOTTOM([ -#if ENABLE_THREADS -# ifndef _REENTRANT -# define _REENTRANT -# endif -# if LINUX -# define _LIBC_REENTRANT -# endif -#else -# ifdef _REENTRANT -# undef _REENTRANT -# endif -#endif -]) dnl BEE_THREAD_LOCAL_STORAGE @@ -1623,7 +1609,5 @@ ]) AH_BOTTOM([ -#if !ENABLE_THREAD_LOCAL_STORAGE -# define __thread -#endif +#include "config.threads.h" ]) --- beecrypt-4.2.1/config.threads.h +++ beecrypt-4.2.1/config.threads.h @@ -0,0 +1,16 @@ +#if ENABLE_THREADS +# ifndef _REENTRANT +# define _REENTRANT +# endif +# if LINUX +# define _LIBC_REENTRANT +# endif +#else +# ifdef _REENTRANT +# undef _REENTRANT +# endif +#endif + +#if !ENABLE_THREAD_LOCAL_STORAGE +# define __thread +#endif ================================================ FILE: package/beecrypt/0003-don-t-check-for-cplusplus-compiler.patch ================================================ configure.ac: don't check for C++ compiler Signed-off-by: Fabrice Fontaine diff -durN beecrypt-4.2.1-orig/configure.ac beecrypt-4.2.1/configure.ac --- beecrypt-4.2.1-orig/configure.ac 2019-03-01 19:58:16.516117640 +0100 +++ beecrypt-4.2.1/configure.ac 2019-03-01 21:10:17.707391803 +0100 @@ -119,9 +119,6 @@ # Checks for C compiler and preprocessor AC_PROG_CC -AC_PROG_CPP -AC_PROG_CXX -AC_PROG_CXXCPP AM_PROG_AS AC_PROG_LD AC_PROG_LN_S @@ -133,9 +130,6 @@ AC_LANG_PUSH(C) AC_OPENMP AC_LANG_POP(C) -AC_LANG_PUSH(C++) -AC_OPENMP -AC_LANG_POP(C++) # Checks for compiler characteristics and flags if test "$ac_enable_expert_mode" = no; then ================================================ FILE: package/beecrypt/Config.in ================================================ comment "beecrypt needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_BEECRYPT bool "beecrypt" depends on BR2_TOOLCHAIN_HAS_THREADS help Beecrypt is a general-purpose cryptography library. http://beecrypt.sf.net ================================================ FILE: package/beecrypt/beecrypt.hash ================================================ # Locally computed: sha256 286f1f56080d1a6b1d024003a5fa2158f4ff82cae0c6829d3c476a4b5898c55d beecrypt-4.2.1.tar.gz sha256 512d2d21b6b3384ba64781abb0208a1b87740bc31e2df48e2b206ddb7e4d5779 COPYING.LIB ================================================ FILE: package/beecrypt/beecrypt.mk ================================================ ################################################################################ # # beecrypt # ################################################################################ BEECRYPT_VERSION = 4.2.1 BEECRYPT_SITE = http://downloads.sourceforge.net/project/beecrypt/beecrypt/$(BEECRYPT_VERSION) BEECRYPT_AUTORECONF = YES BEECRYPT_INSTALL_STAGING = YES BEECRYPT_LICENSE = LGPL-2.1+ BEECRYPT_LICENSE_FILES = COPYING.LIB BEECRYPT_CPE_ID_VENDOR = beecrypt_project BEECRYPT_CONF_OPTS = \ --disable-expert-mode \ --without-java \ --without-python \ --disable-openmp \ --without-cplusplus # 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 # automake/libtool uses the C++ compiler to link libbeecrypt because of # (the optional) cppglue.cxx. Force it to use the C compiler instead. define BEECRYPT_LINK_WITH_CC $(SED) 's/--tag=CXX/--tag=CC/g' $(@D)/Makefile endef BEECRYPT_POST_CONFIGURE_HOOKS += BEECRYPT_LINK_WITH_CC $(eval $(autotools-package)) ================================================ FILE: package/belle-sip/Config.in ================================================ config BR2_PACKAGE_BELLE_SIP bool "belle-sip" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # bctoolbox depends on BR2_USE_WCHAR select BR2_PACKAGE_BCTOOLBOX # needs crypto support in bctoolbox select BR2_PACKAGE_MBEDTLS help Belle-sip is a modern library implementing SIP (RFC 3261) transport, transaction and dialog layers. http://www.linphone.org/technical-corner/belle-sip comment "belle-sip needs a toolchain w/ threads, C++, dynamic library, wchar" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR comment "belle-sip needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/belle-sip/belle-sip.hash ================================================ # Locally calculated sha256 eabba615c97080572c1b9d3c76f8f9cf6a7432eedf37482672e5fa178a688f72 belle-sip-4.4.8.tar.gz sha256 1b3782ccad7b8614100cda30d3faf42fc39f2e97932908c543005053b654ca68 LICENSE.txt ================================================ FILE: package/belle-sip/belle-sip.mk ================================================ ################################################################################ # # belle-sip # ################################################################################ BELLE_SIP_VERSION = 4.4.8 BELLE_SIP_SITE = \ https://gitlab.linphone.org/BC/public/belle-sip/-/archive/$(BELLE_SIP_VERSION) BELLE_SIP_LICENSE = GPL-3.0+ BELLE_SIP_LICENSE_FILES = LICENSE.txt BELLE_SIP_CPE_ID_VENDOR = linphone BELLE_SIP_INSTALL_STAGING = YES BELLE_SIP_DEPENDENCIES = \ bctoolbox \ $(if $(BR2_PACKAGE_ZLIB),zlib) BELLE_SIP_CONF_OPTS = \ -DENABLE_STRICT=OFF \ -DENABLE_TESTS=OFF ifeq ($(BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY),y) BELLE_SIP_CONF_OPTS += -DENABLE_MDNS=ON BELLE_SIP_DEPENDENCIES += avahi else BELLE_SIP_CONF_OPTS += -DENABLE_MDNS=OFF endif ifeq ($(BR2_STATIC_LIBS),y) BELLE_SIP_CONF_OPTS += -DENABLE_SHARED=OFF -DENABLE_STATIC=ON else ifeq ($(BR2_SHARED_STATIC_LIBS),y) BELLE_SIP_CONF_OPTS += -DENABLE_SHARED=ON -DENABLE_STATIC=ON else ifeq ($(BR2_SHARED_LIBS),y) BELLE_SIP_CONF_OPTS += -DENABLE_SHARED=ON -DENABLE_STATIC=OFF endif BELLE_SIP_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_99140),y) BELLE_SIP_CFLAGS += -O0 endif BELLE_SIP_CONF_OPTS += -DCMAKE_C_FLAGS="$(BELLE_SIP_CFLAGS)" $(eval $(cmake-package)) ================================================ FILE: package/belr/Config.in ================================================ config BR2_PACKAGE_BELR bool "belr" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # bctoolbox depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # bctoolbox select BR2_PACKAGE_BCTOOLBOX help Belr is Belledonne Communications' language recognition library, written in C++11. It parses text inputs formatted according to a language defined by an ABNF grammar, such as the protocols standardized at IETF. https://gitlab.linphone.org/BC/public/belr comment "belr needs a toolchain w/ threads, C++" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS comment "belr needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/belr/belr.hash ================================================ # Locally calculated sha256 6358aa680193d972c831d677da1652c7f57d7e00649b971d4d9fbdebf4331b48 belr-4.4.8.tar.gz sha256 1b3782ccad7b8614100cda30d3faf42fc39f2e97932908c543005053b654ca68 LICENSE.txt ================================================ FILE: package/belr/belr.mk ================================================ ################################################################################ # # belr # ################################################################################ BELR_VERSION = 4.4.8 BELR_SITE = https://gitlab.linphone.org/BC/public/belr/-/archive/$(BELR_VERSION) BELR_LICENSE = GPL-3.0+ BELR_LICENSE_FILES = LICENSE.txt BELR_INSTALL_STAGING = YES BELR_DEPENDENCIES = bctoolbox BELR_CONF_OPTS = \ -DENABLE_STRICT=OFF \ -DENABLE_TESTS=OFF \ -DENABLE_TOOLS=OFF ifeq ($(BR2_STATIC_LIBS),y) BELR_CONF_OPTS += -DENABLE_SHARED=OFF -DENABLE_STATIC=ON else ifeq ($(BR2_SHARED_STATIC_LIBS),y) BELR_CONF_OPTS += -DENABLE_SHARED=ON -DENABLE_STATIC=ON else ifeq ($(BR2_SHARED_LIBS),y) BELR_CONF_OPTS += -DENABLE_SHARED=ON -DENABLE_STATIC=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/benejson/0001-c-std.patch ================================================ Some older toolchains do not recognize c11 as a valid standard. Since the code actually builds well with c99, use that instead. The only two non-standard features used are // comments and for(int i ...) declarations in C. Signed-off-by: Alex Suykov --- a/SConstruct +++ b/SConstruct @@ -9,9 +9,8 @@ mydir = os.getcwd() #Set default C++ building flags for both libraries and executables default_env = Environment(ENV = os.environ) default_env.Append(CPPPATH = [mydir + '/include']) -default_env.Append(CCFLAGS = ' -Wall -pedantic') -default_env.Append(CFLAGS = ' -std=c11') -default_env.Append(CXXFLAGS = ' -std=c++11') +default_env.Append(CFLAGS = ' -Wall') +default_env.Append(CFLAGS = ' -std=c99') #default_env.Append(CCFLAGS = ' -O2 -fomit-frame-pointer') default_env.Append(CCFLAGS = ' -O0 -g') ================================================ FILE: package/benejson/0002-Use-print-as-a-function-for-Py3-compatibility.patch ================================================ Use print as a function in SConstruct build file for Py3 compatibility. This allow to run SCons on Python 3 [Upstream status: https://github.com/codehero/benejson/pull/12] Signed-off-by: Titouan Christophe --- benejson/SConscript | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benejson/SConscript b/benejson/SConscript index b7c5d10..80b4875 100644 --- a/benejson/SConscript +++ b/benejson/SConscript @@ -9,11 +9,11 @@ lib_env = lib_env.Clone() conf = Configure(lib_env) if not conf.CheckFunc("stpcpy"): - print "Did not find stpcpy(), using bnj local version" + print("Did not find stpcpy(), using bnj local version") conf.env.Append(CPPDEFINES = ["-Dstpcpy=bnj_local_stpcpy"]) if not conf.CheckFunc("stpncpy"): - print "Did not find stpncpy(), using bnj local version" + print("Did not find stpncpy(), using bnj local version") conf.env.Append(CPPDEFINES = ["-Dstpncpy=bnj_local_stpncpy"]) lib_env = conf.Finish() -- 2.21.0 ================================================ FILE: package/benejson/Config.in ================================================ config BR2_PACKAGE_BENEJSON bool "benejson" depends on BR2_INSTALL_LIBSTDCPP help benejson is a buffering SAX-style JSON parser library. The library package contains 3 major components: - benejson.js: SAX-style parser written in Javascript - PullParser: A C++ class for JSON pull parsing - Core: The parsing core with minimal dependencies https://codehero.github.io/benejson/ comment "benejson needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/benejson/benejson.hash ================================================ # Locally computed sha256 2ce5f3c2323500bdf651e7fcaecbd1011997141e6067567b8d2caa4cf7182f4a benejson-0.9.7.tar.gz sha256 d0b7dae881fcb18c4dddfd8b0c1643ae671d5f356d14ba5b4e95ca889cc9ec32 LICENSE ================================================ FILE: package/benejson/benejson.mk ================================================ ################################################################################ # # benejson # ################################################################################ BENEJSON_VERSION = 0.9.7 BENEJSON_SITE = $(call github,codehero,benejson,$(BENEJSON_VERSION)) BENEJSON_LICENSE = MIT BENEJSON_LICENSE_FILES = LICENSE BENEJSON_INSTALL_STAGING = YES BENEJSON_DEPENDENCIES = host-python3 host-scons # wchar support needs to be manually disabled ifeq ($(BR2_USE_WCHAR),) define BENEJSON_DISABLE_WCHAR $(SED) 's,^#define BNJ_WCHAR_SUPPORT,#undef BNJ_WCHAR_SUPPORT,' \ $(@D)/benejson/benejson.h endef BENEJSON_POST_PATCH_HOOKS += BENEJSON_DISABLE_WCHAR endif BENEJSON_SCONS_TARGETS = include ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y) BENEJSON_SCONS_TARGETS += lib/libbenejson.a define BENEJSON_INSTALL_STATIC_LIB $(INSTALL) -D -m 0644 $(@D)/lib/libbenejson.a \ $(1)/usr/lib/libbenejson.a endef endif # Static enabled ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) BENEJSON_SCONS_TARGETS += lib/libbenejson.so define BENEJSON_INSTALL_SHARED_LIB $(INSTALL) -D -m 0644 $(@D)/lib/libbenejson.so \ $(1)/usr/lib/libbenejson.so endef endif # Shared enabled define BENEJSON_BUILD_CMDS (cd $(@D); \ $(TARGET_CONFIGURE_OPTS) CROSS=$(TARGET_CROSS) \ $(HOST_DIR)/bin/python3 $(SCONS) $(BENEJSON_SCONS_TARGETS)) endef define BENEJSON_INSTALL_STAGING_CMDS $(INSTALL) -D -m 0644 $(@D)/include/benejson/benejson.h \ $(STAGING_DIR)/usr/include/benejson/benejson.h; \ $(INSTALL) -D -m 0644 $(@D)/include/benejson/pull.hh \ $(STAGING_DIR)/usr/include/benejson/pull.hh $(call BENEJSON_INSTALL_STATIC_LIB,$(STAGING_DIR)) $(call BENEJSON_INSTALL_SHARED_LIB,$(STAGING_DIR)) endef define BENEJSON_INSTALL_TARGET_CMDS $(call BENEJSON_INSTALL_SHARED_LIB,$(TARGET_DIR)) endef $(eval $(generic-package)) ================================================ FILE: package/berkeleydb/0001-cwd-db_config.patch ================================================ Do not access DB_CONFIG when db_home is not set Fixes CVE-2017-10140: https://bugzilla.redhat.com/show_bug.cgi?id=1464032#c9 Downloaded from http://pkgs.fedoraproject.org/cgit/rpms/libdb.git/commit/?id=8047fa8580659fcae740c25e91b490539b8453eb Signed-off-by: Bernd Kuhls --- db-5.3.28/src/env/env_open.c.old 2017-06-26 10:32:11.011419981 +0200 +++ db-5.3.28/src/env/env_open.c 2017-06-26 10:32:46.893721233 +0200 @@ -473,7 +473,7 @@ env->db_mode = mode == 0 ? DB_MODE_660 : mode; /* Read the DB_CONFIG file. */ - if ((ret = __env_read_db_config(env)) != 0) + if (env->db_home != NULL && (ret = __env_read_db_config(env)) != 0) return (ret); /* ================================================ FILE: package/berkeleydb/0002-atomic_compare_exchange.patch ================================================ Rename __atomic_compare_exchange to not clash with gcc built-in Downloaded from https://src.fedoraproject.org/cgit/rpms/libdb.git/commit/?id=d6841b3b46a51db98c162347211a5a64d154ea37 Signed-off-by: Bernd Kuhls --- db-5.3.28/src/dbinc/atomic.h.old 2018-05-23 09:20:04.216914922 +0200 +++ db-5.3.28/src/dbinc/atomic.h 2018-05-23 09:20:49.510057897 +0200 @@ -144,7 +144,7 @@ #define atomic_inc(env, p) __atomic_inc(p) #define atomic_dec(env, p) __atomic_dec(p) #define atomic_compare_exchange(env, p, o, n) \ - __atomic_compare_exchange((p), (o), (n)) + __db_atomic_compare_exchange((p), (o), (n)) static inline int __atomic_inc(db_atomic_t *p) { int temp; @@ -176,7 +176,7 @@ * http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html * which configure could be changed to use. */ -static inline int __atomic_compare_exchange( +static inline int __db_atomic_compare_exchange( db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval) { atomic_value_t was; ================================================ FILE: package/berkeleydb/Config.in ================================================ config BR2_PACKAGE_BERKELEYDB bool "berkeleydb" help The Berkeley database. A very common library for database applications. http://www.sleepycat.com/products/db.shtml if BR2_PACKAGE_BERKELEYDB config BR2_PACKAGE_BERKELEYDB_COMPAT185 bool "DB 1.85 compatibility" help Build and install DB 1.85 compatibility API. config BR2_PACKAGE_BERKELEYDB_TOOLS bool "install tools" help Install berkeleydb tools, mostly useful for debugging purposes. endif ================================================ FILE: package/berkeleydb/berkeleydb.hash ================================================ # Locally calculated sha256 76a25560d9e52a198d37a31440fd07632b5f1f8f9f2b6d5438f4bc3e7c9013ef db-5.3.28.NC.tar.gz sha256 b78815181a53241f9347c6b47d1031fd669946f863e1edc807a291354cec024b LICENSE ================================================ FILE: package/berkeleydb/berkeleydb.mk ================================================ ################################################################################ # # berkeleydb # ################################################################################ # Since BerkeleyDB version 6 and above are licensed under the Affero # GPL (AGPL), we want to keep this 'bdb' package at version 5.x to # avoid licensing issues. # BerkeleyDB version 6 or above should be provided by a dedicated # package instead. BERKELEYDB_VERSION = 5.3.28 BERKELEYDB_SITE = http://download.oracle.com/berkeley-db BERKELEYDB_SOURCE = db-$(BERKELEYDB_VERSION).NC.tar.gz BERKELEYDB_SUBDIR = build_unix BERKELEYDB_LICENSE = BerkeleyDB License BERKELEYDB_LICENSE_FILES = LICENSE BERKELEYDB_CPE_ID_VENDOR = oracle BERKELEYDB_CPE_ID_PRODUCT = berkeley_db BERKELEYDB_INSTALL_STAGING = YES BERKELEYDB_BINARIES = db_archive db_checkpoint db_deadlock db_dump \ db_hotbackup db_load db_log_verify db_printlog db_recover db_replicate \ db_stat db_tuner db_upgrade db_verify # build directory can't be the directory where configure are there, so.. define BERKELEYDB_CONFIGURE_CMDS (cd $(@D)/build_unix; rm -rf config.cache; \ $(TARGET_CONFIGURE_OPTS) \ $(TARGET_CONFIGURE_ARGS) \ ../dist/configure $(QUIET) \ --target=$(GNU_TARGET_NAME) \ --host=$(GNU_TARGET_NAME) \ --build=$(GNU_HOST_NAME) \ --prefix=/usr \ --exec-prefix=/usr \ --sysconfdir=/etc \ --with-gnu-ld \ $(if $(BR2_INSTALL_LIBSTDCPP),--enable-cxx,--disable-cxx) \ --disable-java \ --disable-tcl \ $(if $(BR2_PACKAGE_BERKELEYDB_COMPAT185),--enable-compat185,--disable-compat185) \ $(SHARED_STATIC_LIBS_OPTS) \ --with-pic \ --enable-o_direct \ $(if $(BR2_TOOLCHAIN_HAS_THREADS),--enable-mutexsupport,--disable-mutexsupport) \ ) endef define HOST_BERKELEYDB_CONFIGURE_CMDS (cd $(@D)/build_unix; rm -rf config.cache; \ $(HOST_CONFIGURE_OPTS) \ ../dist/configure $(QUIET) \ --prefix=$(HOST_DIR) \ --with-gnu-ld \ --disable-cxx \ --disable-java \ --disable-tcl \ --disable-compat185 \ --with-pic \ --enable-o_direct \ --disable-mutexsupport \ ) endef ifneq ($(BR2_PACKAGE_BERKELEYDB_TOOLS),y) define BERKELEYDB_REMOVE_TOOLS rm -f $(addprefix $(TARGET_DIR)/usr/bin/, $(BERKELEYDB_BINARIES)) endef BERKELEYDB_POST_INSTALL_TARGET_HOOKS += BERKELEYDB_REMOVE_TOOLS endif define BERKELEYDB_REMOVE_DOCS rm -rf $(TARGET_DIR)/usr/docs endef BERKELEYDB_POST_INSTALL_TARGET_HOOKS += BERKELEYDB_REMOVE_DOCS $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/bind/0001-cross.patch ================================================ From 505cc9fcadda5607dc4c5bacb03928c0b35162a8 Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Wed, 4 Nov 2020 17:51:38 +0100 Subject: [PATCH] Use host compiler to build 'gen' since it's run when building. Signed-off-by: Gustavo Zacarias [Fabrice: updated for 9.11.10] Signed-off-by: Fabrice Fontaine Signed-off-by: Petr Vorel --- lib/dns/Makefile.in | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/dns/Makefile.in b/lib/dns/Makefile.in index 8fc4e94f26..4ac92857e0 100644 --- a/lib/dns/Makefile.in +++ b/lib/dns/Makefile.in @@ -184,10 +184,8 @@ code.h: gen ./gen -s ${srcdir} > code.h || { rm -f $@ ; exit 1; } gen: gen.c - ${BUILD_CC} ${BUILD_CFLAGS} -I${top_srcdir}/lib/isc/include \ - ${LFS_CFLAGS} ${LFS_LDFLAGS} \ - ${BUILD_CPPFLAGS} ${BUILD_LDFLAGS} -o $@ ${srcdir}/gen.c \ - ${BUILD_LIBS} ${LFS_LIBS} + ${HOSTCC} ${HOST_CFLAGS} -I${top_srcdir}/lib/isc/include \ + ${HOST_LDFLAGS} -o $@ ${srcdir}/gen.c timestamp: include libdns.@A@ touch timestamp -- 2.29.1 ================================================ FILE: package/bind/Config.in ================================================ config BR2_PACKAGE_BIND bool "bind" depends on BR2_USE_MMU # fork() help BIND (Berkeley Internet Name Domain) is an implementation of the Domain Name System (DNS) protocols and provides an openly redistributable reference implementation of the major components of the Domain Name System, including: * a Domain Name System server (named) * a Domain Name System resolver library * tools for verifying the proper operation of the DNS server The BIND DNS Server is used on the vast majority of name serving machines on the Internet, providing a robust and stable architecture on top of which an organization's naming architecture can be built. The resolver library included in the BIND distribution provides the standard APIs for translation between domain names and Internet addresses and is intended to be linked with applications requiring name service. https://www.isc.org/bind/ if BR2_PACKAGE_BIND config BR2_PACKAGE_BIND_SERVER bool "Install server components" help Install server components (named, lwresd) config BR2_PACKAGE_BIND_TOOLS bool "Install tools" help Install tools (dig, host, nslookup, nsupdate) endif ================================================ FILE: package/bind/S81named ================================================ #!/bin/sh CONFIG=/etc/bind/named.conf DAEMON=/usr/sbin/named [ -f $CONFIG ] || exit 0 case "$1" in start) if [ ! -f /etc/rndc.key ]; then printf "Initializing bind control key: " # if rndc.key is a symlink, the target must exist touch /etc/rndc.key rndc-confgen -a -r /dev/urandom 2>/dev/null && echo "OK" || echo "FAIL" fi printf "Starting domain name daemon: " start-stop-daemon -S -x $DAEMON -- -c $CONFIG -u named [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping domain name daemon: " rndc stop || start-stop-daemon -K -x $DAEMON [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart) $0 stop || true sleep 1 $0 start ;; reload|force-reload) rndc reload || $0 restart ;; *) echo "Usage: $0 {start|stop|restart|reload|force-reload}" exit 1 esac exit 0 ================================================ FILE: package/bind/bind.hash ================================================ # Verified from https://ftp.isc.org/isc/bind9/9.11.36/bind-9.11.36.tar.gz.asc # with key AADBBA5074F1402F7B69D56BC5B4EE931A9F9DFD sha256 c953fcb6703b395aaa53e65ff8b2869b69a5303dd60507cba2201305e1811681 bind-9.11.36.tar.gz sha256 cad49daa42654bc241762cd998630168a2542c8fd6fad3881e2eac1510bb6fcd COPYRIGHT ================================================ FILE: package/bind/bind.mk ================================================ ################################################################################ # # bind # ################################################################################ BIND_VERSION = 9.11.36 BIND_SITE = https://ftp.isc.org/isc/bind9/$(BIND_VERSION) # bind does not support parallel builds. BIND_MAKE = $(MAKE1) BIND_INSTALL_STAGING = YES BIND_CONFIG_SCRIPTS = bind9-config isc-config.sh BIND_LICENSE = MPL-2.0 BIND_LICENSE_FILES = COPYRIGHT BIND_CPE_ID_VENDOR = isc BIND_SELINUX_MODULES = bind # Only applies to RHEL6.x with DNSSEC validation on BIND_IGNORE_CVES = CVE-2017-3139 # Library CVE and not used by bind but used by ISC DHCP BIND_IGNORE_CVES += CVE-2019-6470 BIND_TARGET_SERVER_SBIN = arpaname ddns-confgen dnssec-checkds dnssec-coverage BIND_TARGET_SERVER_SBIN += dnssec-importkey dnssec-keygen dnssec-revoke BIND_TARGET_SERVER_SBIN += dnssec-settime dnssec-verify genrandom BIND_TARGET_SERVER_SBIN += isc-hmac-fixup named-journalprint nsec3hash BIND_TARGET_SERVER_SBIN += lwresd named named-checkconf named-checkzone BIND_TARGET_SERVER_SBIN += named-compilezone rndc rndc-confgen dnssec-dsfromkey BIND_TARGET_SERVER_SBIN += dnssec-keyfromlabel dnssec-signzone tsig-keygen BIND_TARGET_TOOLS_BIN = dig host nslookup nsupdate BIND_CONF_ENV = \ BUILD_CC="$(TARGET_CC)" \ BUILD_CFLAGS="$(TARGET_CFLAGS)" BIND_CONF_OPTS = \ $(if $(BR2_TOOLCHAIN_HAS_THREADS),--enable-threads,--disable-threads) \ --without-lmdb \ --with-libjson=no \ --with-randomdev=/dev/urandom \ --enable-epoll \ --with-gssapi=no \ --enable-filter-aaaa \ --disable-backtrace ifeq ($(BR2_PACKAGE_ZLIB),y) BIND_CONF_OPTS += --with-zlib=$(STAGING_DIR)/usr BIND_DEPENDENCIES += zlib else BIND_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_LIBCAP),y) BIND_CONF_OPTS += --enable-linux-caps BIND_DEPENDENCIES += libcap else BIND_CONF_OPTS += --disable-linux-caps endif ifeq ($(BR2_PACKAGE_LIBXML2),y) BIND_CONF_OPTS += --with-libxml2=$(STAGING_DIR)/usr BIND_DEPENDENCIES += libxml2 else BIND_CONF_OPTS += --with-libxml2=no endif ifeq ($(BR2_PACKAGE_OPENSSL),y) BIND_DEPENDENCIES += host-pkgconf openssl BIND_CONF_OPTS += \ --with-openssl=$(STAGING_DIR)/usr \ --with-ecdsa=yes \ --with-eddsa=no \ --with-aes=yes BIND_CONF_ENV += LIBS=`$(PKG_CONFIG_HOST_BINARY) --libs openssl` # GOST cipher support requires openssl extra engines ifeq ($(BR2_PACKAGE_OPENSSL_ENGINES),y) BIND_CONF_OPTS += --with-gost=yes else BIND_CONF_OPTS += --with-gost=no endif else BIND_CONF_OPTS += --with-openssl=no endif # Used by dnssec-keymgr ifeq ($(BR2_PACKAGE_PYTHON_PLY),y) BIND_DEPENDENCIES += host-python-ply BIND_CONF_OPTS += --with-python=$(HOST_DIR)/usr/bin/python else BIND_CONF_OPTS += --with-python=no endif ifeq ($(BR2_PACKAGE_READLINE),y) BIND_DEPENDENCIES += readline else BIND_CONF_OPTS += --with-readline=no endif ifeq ($(BR2_STATIC_LIBS),y) BIND_CONF_OPTS += \ --without-dlopen \ --without-libtool else BIND_CONF_OPTS += \ --with-dlopen \ --with-libtool endif define BIND_TARGET_REMOVE_SERVER rm -rf $(addprefix $(TARGET_DIR)/usr/sbin/, $(BIND_TARGET_SERVER_SBIN)) endef define BIND_TARGET_REMOVE_TOOLS rm -rf $(addprefix $(TARGET_DIR)/usr/bin/, $(BIND_TARGET_TOOLS_BIN)) endef ifeq ($(BR2_PACKAGE_BIND_SERVER),y) define BIND_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D $(BIND_PKGDIR)/S81named \ $(TARGET_DIR)/etc/init.d/S81named endef define BIND_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(BIND_PKGDIR)/named.service \ $(TARGET_DIR)/usr/lib/systemd/system/named.service endef else BIND_POST_INSTALL_TARGET_HOOKS += BIND_TARGET_REMOVE_SERVER endif ifeq ($(BR2_PACKAGE_BIND_TOOLS),) BIND_POST_INSTALL_TARGET_HOOKS += BIND_TARGET_REMOVE_TOOLS endif define BIND_USERS named -1 named -1 * /etc/bind - - BIND daemon endef $(eval $(autotools-package)) ================================================ FILE: package/bind/named.service ================================================ [Unit] Description=BIND Domain Name Server Documentation=man:named(8) After=network.target [Service] ExecStart=/usr/sbin/named -f -u named ExecReload=/usr/sbin/rndc reload ExecStop=/usr/sbin/rndc stop [Install] WantedBy=multi-user.target ================================================ FILE: package/binutils/2.32/0001-sh-conf.patch ================================================ From 98b2acf2bd3a527d114a9f8931083c2617a2daa9 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.32] Signed-off-by: Romain Naour [Thomas: rebase on top of 2.29, in which sh64 support was removed.] Signed-off-by: Thomas Petazzoni --- configure | 2 +- configure.ac | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 37476459612..66fbc19f9ff 100755 --- a/configure +++ b/configure @@ -3861,7 +3861,7 @@ case "${target}" in nvptx*-*-*) noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" ;; - sh-*-*) + sh*-*-*) case "${target}" in sh*-*-elf) ;; diff --git a/configure.ac b/configure.ac index 46501c28826..6c731930884 100644 --- a/configure.ac +++ b/configure.ac @@ -1158,7 +1158,7 @@ case "${target}" in nvptx*-*-*) noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" ;; - sh-*-*) + sh*-*-*) case "${target}" in sh*-*-elf) ;; -- 2.14.5 ================================================ FILE: package/binutils/2.32/0002-poison-system-directories.patch ================================================ From f559402ea868d370ddf25089c68cda2600db3bfa 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.32] 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] Patch originally created by Mark Hatle, forward-ported to binutils 2.21 by Scott Garman. purpose: warn for uses of system directories when cross linking Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 2008-07-02 Joseph Myers ld/ * ld.h (args_type): Add error_poison_system_directories. * ld.texinfo (--error-poison-system-directories): Document. * ldfile.c (ldfile_add_library_path): Check command_line.error_poison_system_directories. * ldmain.c (main): Initialize command_line.error_poison_system_directories. * lexsup.c (enum option_values): Add OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. (ld_options): Add --error-poison-system-directories. (parse_args): Handle new option. 2007-06-13 Joseph Myers ld/ * config.in: Regenerate. * ld.h (args_type): Add poison_system_directories. * ld.texinfo (--no-poison-system-directories): Document. * ldfile.c (ldfile_add_library_path): Check command_line.poison_system_directories. * ldmain.c (main): Initialize command_line.poison_system_directories. * lexsup.c (enum option_values): Add OPTION_NO_POISON_SYSTEM_DIRECTORIES. (ld_options): Add --no-poison-system-directories. (parse_args): Handle new option. 2007-04-20 Joseph Myers Merge from Sourcery G++ binutils 2.17: 2007-03-20 Joseph Myers Based on patch by Mark Hatle . ld/ * 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, /usr/lib, /usr/local/lib or /usr/X11R6/lib. 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.texi | 12 ++++++++++++ ld/ldfile.c | 17 +++++++++++++++++ ld/ldlex.h | 2 ++ ld/ldmain.c | 2 ++ ld/lexsup.c | 21 +++++++++++++++++++++ 9 files changed, 89 insertions(+) diff --git a/ld/config.in b/ld/config.in index d93c9b08300..5da2742beac 100644 --- a/ld/config.in +++ b/ld/config.in @@ -31,6 +31,9 @@ language is requested. */ #undef ENABLE_NLS +/* Define to warn for use of native system library directories */ +#undef ENABLE_POISON_SYSTEM_DIRECTORIES + /* Additional extension a shared object might have. */ #undef EXTRA_SHLIB_EXTENSION diff --git a/ld/configure b/ld/configure index 18ada7808f5..7e7d2f97809 100755 --- a/ld/configure +++ b/ld/configure @@ -822,6 +822,7 @@ with_lib_path enable_targets enable_64_bit_bfd with_sysroot +enable_poison_system_directories enable_gold enable_got enable_compressed_debug_sections @@ -1486,6 +1487,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 + warn for use of native system library directories --enable-gold[=ARG] build gold [ARG={default,yes,no}] --enable-got= GOT handling scheme (target, single, negative, multigot) @@ -15803,7 +15806,18 @@ else fi +# Check whether --enable-poison-system-directories was given. +if test "${enable_poison_system_directories+set}" = set; then : + enableval=$enable_poison_system_directories; +else + enable_poison_system_directories=no +fi + +if test "x${enable_poison_system_directories}" = "xyes"; then +$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h + +fi # Check whether --enable-got was given. if test "${enable_got+set}" = set; then : diff --git a/ld/configure.ac b/ld/configure.ac index d335f210917..7f692d93873 100644 --- a/ld/configure.ac +++ b/ld/configure.ac @@ -94,6 +94,16 @@ AC_SUBST(use_sysroot) AC_SUBST(TARGET_SYSTEM_ROOT) AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) +AC_ARG_ENABLE([poison-system-directories], + AS_HELP_STRING([--enable-poison-system-directories], + [warn for use of native system library directories]),, + [enable_poison_system_directories=no]) +if test "x${enable_poison_system_directories}" = "xyes"; then + AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], + [1], + [Define to warn for use of native system library directories]) +fi + 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. diff --git a/ld/ld.h b/ld/ld.h index b97d977f37b..f3bbd2d55d4 100644 --- a/ld/ld.h +++ b/ld/ld.h @@ -180,6 +180,14 @@ typedef struct in the linker script. */ bfd_boolean force_group_allocation; + /* 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.texi b/ld/ld.texi index 5179af3e0e1..f78bf746822 100644 --- a/ld/ld.texi +++ b/ld/ld.texi @@ -2524,6 +2524,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 fcadc08c73f..63e295ce8ae 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c @@ -116,6 +116,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline) new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL); else new_dirs->name = xstrdup (name); + +#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES + if (command_line.poison_system_directories + && ((!strncmp (name, "/lib", 4)) + || (!strncmp (name, "/usr/lib", 8)) + || (!strncmp (name, "/usr/local/lib", 14)) + || (!strncmp (name, "/usr/X11R6/lib", 14)))) + { + if (command_line.error_poison_system_directories) + einfo (_("%X%P: error: library search path \"%s\" is unsafe for " + "cross-compilation\n"), name); + else + einfo (_("%P: warning: library search path \"%s\" is unsafe for " + "cross-compilation\n"), name); + } +#endif + } /* Try to open a BFD for a lang_input_statement. */ diff --git a/ld/ldlex.h b/ld/ldlex.h index 32853debe45..8135361c498 100644 --- a/ld/ldlex.h +++ b/ld/ldlex.h @@ -148,6 +148,8 @@ enum option_values OPTION_REQUIRE_DEFINED_SYMBOL, OPTION_ORPHAN_HANDLING, OPTION_FORCE_GROUP_ALLOCATION, + OPTION_NO_POISON_SYSTEM_DIRECTORIES, + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, }; /* The initial parser states. */ diff --git a/ld/ldmain.c b/ld/ldmain.c index 77cdbd0dd29..725512f1260 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -269,6 +269,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.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 diff --git a/ld/lexsup.c b/ld/lexsup.c index 88e85c73f49..be4cd492d14 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -543,6 +543,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 }, + { {"no-poison-system-directories", no_argument, NULL, + 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}, + '\0', NULL, N_("Give an error for -L options using system directories"), + TWO_DASHES }, }; #define OPTION_COUNT ARRAY_SIZE (ld_options) @@ -555,6 +563,7 @@ parse_args (unsigned argc, char **argv) int ingroup = 0; char *default_dirlist = NULL; char *shortopts; + char *BR_paranoid_env; struct option *longopts; struct option *really_longopts; int last_optind; @@ -1543,6 +1552,14 @@ parse_args (unsigned argc, char **argv) } 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_PUSH_STATE: input_flags.pushed = xmemdup (&input_flags, sizeof (input_flags), @@ -1586,6 +1603,10 @@ parse_args (unsigned argc, char **argv) command_line.soname = NULL; } + BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH"); + if (BR_paranoid_env && strlen(BR_paranoid_env) > 0) + command_line.error_poison_system_directories = TRUE; + while (ingroup) { lang_leave_group (); -- 2.14.5 ================================================ FILE: package/binutils/2.32/0003-bfd-xtensa-fix-shrink_dynamic_reloc_sections-for-exp.patch ================================================ From 278989f23735aa501be1052e085540c75c126dbb Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Thu, 28 Mar 2019 17:03:57 -0700 Subject: [PATCH] bfd: xtensa: fix shrink_dynamic_reloc_sections for export-dynamic shrink_dynamic_reloc_sections must remove PLT entry that was created for an undefined weak symbol in the presence of --export-dynamic option when relaxation coalesces literals pointing to that symbol. This fixes the following assertion: ld: BFD (GNU Binutils) 2.31.1 internal error, aborting at elf32-xtensa.c:3292 in elf_xtensa_finish_dynamic_sections 2019-03-28 Max Filippov bfd/ * elf32-xtensa.c (shrink_dynamic_reloc_sections): Add info->export_dynamic to the conditional. Signed-off-by: Max Filippov --- bfd/elf32-xtensa.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c index c3df3d6db756..37ea200eea74 100644 --- a/bfd/elf32-xtensa.c +++ b/bfd/elf32-xtensa.c @@ -10083,7 +10083,8 @@ shrink_dynamic_reloc_sections (struct bfd_link_info *info, && (input_section->flags & SEC_ALLOC) != 0 && (dynamic_symbol || bfd_link_pic (info)) && (!h || h->root.type != bfd_link_hash_undefweak - || (dynamic_symbol && bfd_link_dll (info)))) + || (dynamic_symbol + && (bfd_link_dll (info) || info->export_dynamic)))) { asection *srel; bfd_boolean is_plt = FALSE; -- 2.11.0 ================================================ FILE: package/binutils/2.32/0004-gas-use-literals-const16-for-xtensa-loop-relaxation.patch ================================================ From 0dbdfb7918d0b0cfcb8883b24c1291574bf5bb7c Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Tue, 2 Apr 2019 14:32:42 -0700 Subject: [PATCH] gas: use literals/const16 for xtensa loop relaxation Loop opcode relaxation that uses addi/addmi doesn't work well with other relaxations that may cause code movement. Instead of encoding fixed loop end offset in the relaxed sequence use l32r or a pair of const16 to load loop end address. This way the address of the loop end gets a relocation record and it gets updated appropriately. gas/ 2019-04-02 Max Filippov * config/tc-xtensa.c (convert_frag_immed): Drop convert_frag_immed_finish_loop invocation. (convert_frag_immed_finish_loop): Drop declaration and definition. * config/xtensa-relax.c (widen_spec_list): Replace loop widening that uses addi/addmi with widening that uses l32r and const16. Signed-off-by: Max Filippov --- gas/config/tc-xtensa.c | 120 ---------------------------------------------- gas/config/xtensa-relax.c | 77 ++++++++++++++++++++--------- 2 files changed, 55 insertions(+), 142 deletions(-) diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index 3bdbbc931cfc..0cc06361cf6f 100644 --- a/gas/config/tc-xtensa.c +++ b/gas/config/tc-xtensa.c @@ -10668,7 +10668,6 @@ convert_frag_fill_nop (fragS *fragP) static fixS *fix_new_exp_in_seg (segT, subsegT, fragS *, int, int, expressionS *, int, bfd_reloc_code_real_type); -static void convert_frag_immed_finish_loop (segT, fragS *, TInsn *); static void convert_frag_immed (segT segP, @@ -10910,9 +10909,6 @@ convert_frag_immed (segT segP, } } - if (expanded && xtensa_opcode_is_loop (isa, orig_tinsn.opcode) == 1) - convert_frag_immed_finish_loop (segP, fragP, &orig_tinsn); - if (expanded && is_direct_call_opcode (orig_tinsn.opcode)) { /* Add an expansion note on the expanded instruction. */ @@ -10949,122 +10945,6 @@ fix_new_exp_in_seg (segT new_seg, } -/* Relax a loop instruction so that it can span loop >256 bytes. - - loop as, .L1 - .L0: - rsr as, LEND - wsr as, LBEG - addi as, as, lo8 (label-.L1) - addmi as, as, mid8 (label-.L1) - wsr as, LEND - isync - rsr as, LCOUNT - addi as, as, 1 - .L1: - <> - label: -*/ - -static void -convert_frag_immed_finish_loop (segT segP, fragS *fragP, TInsn *tinsn) -{ - TInsn loop_insn; - TInsn addi_insn; - TInsn addmi_insn; - unsigned long target; - static xtensa_insnbuf insnbuf = NULL; - unsigned int loop_length, loop_length_hi, loop_length_lo; - xtensa_isa isa = xtensa_default_isa; - addressT loop_offset; - addressT addi_offset = 9; - addressT addmi_offset = 12; - fragS *next_fragP; - int target_count; - - if (!insnbuf) - insnbuf = xtensa_insnbuf_alloc (isa); - - /* Get the loop offset. */ - loop_offset = get_expanded_loop_offset (tinsn->opcode); - - /* Validate that there really is a LOOP at the loop_offset. Because - loops are not bundleable, we can assume that the instruction will be - in slot 0. */ - tinsn_from_chars (&loop_insn, fragP->fr_opcode + loop_offset, 0); - tinsn_immed_from_frag (&loop_insn, fragP, 0); - - gas_assert (xtensa_opcode_is_loop (isa, loop_insn.opcode) == 1); - addi_offset += loop_offset; - addmi_offset += loop_offset; - - gas_assert (tinsn->ntok == 2); - if (tinsn->tok[1].X_op == O_constant) - target = tinsn->tok[1].X_add_number; - else if (tinsn->tok[1].X_op == O_symbol) - { - /* Find the fragment. */ - symbolS *sym = tinsn->tok[1].X_add_symbol; - gas_assert (S_GET_SEGMENT (sym) == segP - || S_GET_SEGMENT (sym) == absolute_section); - target = (S_GET_VALUE (sym) + tinsn->tok[1].X_add_number); - } - else - { - as_bad (_("invalid expression evaluation type %d"), tinsn->tok[1].X_op); - target = 0; - } - - loop_length = target - (fragP->fr_address + fragP->fr_fix); - loop_length_hi = loop_length & ~0x0ff; - loop_length_lo = loop_length & 0x0ff; - if (loop_length_lo >= 128) - { - loop_length_lo -= 256; - loop_length_hi += 256; - } - - /* Because addmi sign-extends the immediate, 'loop_length_hi' can be at most - 32512. If the loop is larger than that, then we just fail. */ - if (loop_length_hi > 32512) - as_bad_where (fragP->fr_file, fragP->fr_line, - _("loop too long for LOOP instruction")); - - tinsn_from_chars (&addi_insn, fragP->fr_opcode + addi_offset, 0); - gas_assert (addi_insn.opcode == xtensa_addi_opcode); - - tinsn_from_chars (&addmi_insn, fragP->fr_opcode + addmi_offset, 0); - gas_assert (addmi_insn.opcode == xtensa_addmi_opcode); - - set_expr_const (&addi_insn.tok[2], loop_length_lo); - tinsn_to_insnbuf (&addi_insn, insnbuf); - - fragP->tc_frag_data.is_insn = TRUE; - xtensa_insnbuf_to_chars - (isa, insnbuf, (unsigned char *) fragP->fr_opcode + addi_offset, 0); - - set_expr_const (&addmi_insn.tok[2], loop_length_hi); - tinsn_to_insnbuf (&addmi_insn, insnbuf); - xtensa_insnbuf_to_chars - (isa, insnbuf, (unsigned char *) fragP->fr_opcode + addmi_offset, 0); - - /* Walk through all of the frags from here to the loop end - and mark them as no_transform to keep them from being modified - by the linker. If we ever have a relocation for the - addi/addmi of the difference of two symbols we can remove this. */ - - target_count = 0; - for (next_fragP = fragP; next_fragP != NULL; - next_fragP = next_fragP->fr_next) - { - next_fragP->tc_frag_data.is_no_transform = TRUE; - if (next_fragP->tc_frag_data.is_loop_target) - target_count++; - if (target_count == 2) - break; - } -} - /* A map that keeps information on a per-subsegment basis. This is maintained during initial assembly, but is invalid once the diff --git a/gas/config/xtensa-relax.c b/gas/config/xtensa-relax.c index cb296ed85ed2..daf15d52c259 100644 --- a/gas/config/xtensa-relax.c +++ b/gas/config/xtensa-relax.c @@ -87,13 +87,7 @@ when the first and second operands are not the same as specified by the "| %at!=%as" precondition clause. {"l32i %at,%as,%imm | %at!=%as", - "LITERAL %imm; l32r %at,%LITERAL; add %at,%at,%as; l32i %at,%at,0"} - - There is special case for loop instructions here, but because we do - not currently have the ability to represent the difference of two - symbols, the conversion requires special code in the assembler to - write the operands of the addi/addmi pair representing the - difference of the old and new loop end label. */ + "LITERAL %imm; l32r %at,%LITERAL; add %at,%at,%as; l32i %at,%at,0"} */ #include "as.h" #include "xtensa-isa.h" @@ -306,44 +300,83 @@ static string_pattern_pair widen_spec_list[] = {"l32i %at,%as,%imm | %at!=%as ? IsaUseConst16", "const16 %at,HI16U(%imm); const16 %at,LOW16U(%imm); add %at,%at,%as; l32i %at,%at,0"}, - /* This is only PART of the loop instruction. In addition, - hardcoded into its use is a modification of the final operand in - the instruction in bytes 9 and 12. */ - {"loop %as,%label | %as!=1 ? IsaUseLoops", + /* Widening loops with literals. */ + {"loop %as,%label | %as!=1 ? IsaUseLoops ? IsaUseL32R", + "loop %as,%LABEL;" + "rsr.lend %as;" /* LEND */ + "wsr.lbeg %as;" /* LBEG */ + "LITERAL %label;" + "l32r %as, %LITERAL;" + "nop;" + "wsr.lend %as;" + "isync;" + "rsr.lcount %as;" /* LCOUNT */ + "addi %as, %as, 1;" + "LABEL"}, + {"loopgtz %as,%label | %as!=1 ? IsaUseLoops ? IsaUseL32R", + "beqz %as,%label;" + "bltz %as,%label;" + "loopgtz %as,%LABEL;" + "rsr.lend %as;" /* LEND */ + "wsr.lbeg %as;" /* LBEG */ + "LITERAL %label;" + "l32r %as, %LITERAL;" + "nop;" + "wsr.lend %as;" + "isync;" + "rsr.lcount %as;" /* LCOUNT */ + "addi %as, %as, 1;" + "LABEL"}, + {"loopnez %as,%label | %as!=1 ? IsaUseLoops ? IsaUseL32R", + "beqz %as,%label;" + "loopnez %as,%LABEL;" + "rsr.lend %as;" /* LEND */ + "wsr.lbeg %as;" /* LBEG */ + "LITERAL %label;" + "l32r %as, %LITERAL;" + "nop;" + "wsr.lend %as;" + "isync;" + "rsr.lcount %as;" /* LCOUNT */ + "addi %as, %as, 1;" + "LABEL"}, + + /* Widening loops with const16. */ + {"loop %as,%label | %as!=1 ? IsaUseLoops ? IsaUseConst16", "loop %as,%LABEL;" "rsr.lend %as;" /* LEND */ "wsr.lbeg %as;" /* LBEG */ - "addi %as, %as, 0;" /* lo8(%label-%LABEL1) */ - "addmi %as, %as, 0;" /* mid8(%label-%LABEL1) */ + "const16 %as,HI16U(%label);" + "const16 %as,LOW16U(%label);" "wsr.lend %as;" "isync;" "rsr.lcount %as;" /* LCOUNT */ - "addi %as, %as, 1;" /* density -> addi.n %as, %as, 1 */ + "addi %as, %as, 1;" "LABEL"}, - {"loopgtz %as,%label | %as!=1 ? IsaUseLoops", + {"loopgtz %as,%label | %as!=1 ? IsaUseLoops ? IsaUseConst16", "beqz %as,%label;" "bltz %as,%label;" "loopgtz %as,%LABEL;" "rsr.lend %as;" /* LEND */ "wsr.lbeg %as;" /* LBEG */ - "addi %as, %as, 0;" /* lo8(%label-%LABEL1) */ - "addmi %as, %as, 0;" /* mid8(%label-%LABEL1) */ + "const16 %as,HI16U(%label);" + "const16 %as,LOW16U(%label);" "wsr.lend %as;" "isync;" "rsr.lcount %as;" /* LCOUNT */ - "addi %as, %as, 1;" /* density -> addi.n %as, %as, 1 */ + "addi %as, %as, 1;" "LABEL"}, - {"loopnez %as,%label | %as!=1 ? IsaUseLoops", + {"loopnez %as,%label | %as!=1 ? IsaUseLoops ? IsaUseConst16", "beqz %as,%label;" "loopnez %as,%LABEL;" "rsr.lend %as;" /* LEND */ "wsr.lbeg %as;" /* LBEG */ - "addi %as, %as, 0;" /* lo8(%label-%LABEL1) */ - "addmi %as, %as, 0;" /* mid8(%label-%LABEL1) */ + "const16 %as,HI16U(%label);" + "const16 %as,LOW16U(%label);" "wsr.lend %as;" "isync;" "rsr.lcount %as;" /* LCOUNT */ - "addi %as, %as, 1;" /* density -> addi.n %as, %as, 1 */ + "addi %as, %as, 1;" "LABEL"}, /* Relaxing to wide branches. Order is important here. With wide -- 2.11.0 ================================================ FILE: package/binutils/2.32/0005-xtensa-gas-put-.literal_position-at-section-start.patch ================================================ From 471702ac4a57878a06e8167f063274cf413e548d Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Mon, 8 Apr 2019 13:47:18 -0700 Subject: [PATCH] xtensa: gas: put .literal_position at section start Provide literal position at the beginning of each section for literal space reserved by relaxations when text-section-literals or auto-litpools options are used. Remove code that adds fill frag to the literal section for every .literal_position directive to avoid creation of empty literal sections. Fix auto-litpools tests that got literal pool address changes. gas/ 2019-04-11 Max Filippov * config/tc-xtensa.c (xtensa_is_init_fini): Add declaration. (xtensa_mark_literal_pool_location): Don't add fill frag to literal section that records literal pool location. (md_begin): Call xtensa_mark_literal_pool_location when text section literals or auto litpools are used. (xtensa_elf_section_change_hook): Call xtensa_mark_literal_pool_location when text section literals or auto litpools are used, there's no literal pool location defined for the current section and it's not .init or .fini. Signed-off-by: Max Filippov --- gas/config/tc-xtensa.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index 0cc06361cf6f..6a80e76fed8c 100644 --- a/gas/config/tc-xtensa.c +++ b/gas/config/tc-xtensa.c @@ -497,6 +497,7 @@ static fixS *xg_append_jump (fragS *fragP, symbolS *sym, offsetT offset); static void xtensa_maybe_create_literal_pool_frag (bfd_boolean, bfd_boolean); static bfd_boolean auto_litpools = FALSE; static int auto_litpool_limit = 0; +static bfd_boolean xtensa_is_init_fini (segT seg); /* Alignment Functions. */ @@ -4797,7 +4798,6 @@ xtensa_mark_literal_pool_location (void) { /* Any labels pointing to the current location need to be adjusted to after the literal pool. */ - emit_state s; fragS *pool_location; if (use_literal_section) @@ -4818,19 +4818,7 @@ xtensa_mark_literal_pool_location (void) RELAX_LITERAL_POOL_END, NULL, 0, NULL); xtensa_set_frag_assembly_state (frag_now); - /* Now put a frag into the literal pool that points to this location. */ set_literal_pool_location (now_seg, pool_location); - xtensa_switch_to_non_abs_literal_fragment (&s); - frag_align (2, 0, 0); - record_alignment (now_seg, 2); - - /* Close whatever frag is there. */ - frag_variant (rs_fill, 0, 0, 0, NULL, 0, NULL); - xtensa_set_frag_assembly_state (frag_now); - frag_now->tc_frag_data.literal_frag = pool_location; - frag_variant (rs_fill, 0, 0, 0, NULL, 0, NULL); - xtensa_restore_emit_state (&s); - xtensa_set_frag_assembly_state (frag_now); } @@ -5334,6 +5322,9 @@ md_begin (void) /* Set up the assembly state. */ if (!frag_now->tc_frag_data.is_assembly_state_set) xtensa_set_frag_assembly_state (frag_now); + + if (!use_literal_section) + xtensa_mark_literal_pool_location (); } @@ -5933,6 +5924,11 @@ xtensa_elf_section_change_hook (void) /* Set up the assembly state. */ if (!frag_now->tc_frag_data.is_assembly_state_set) xtensa_set_frag_assembly_state (frag_now); + + if (!use_literal_section + && seg_info (now_seg)->tc_segment_info_data.literal_pool_loc == NULL + && !xtensa_is_init_fini (now_seg)) + xtensa_mark_literal_pool_location (); } -- 2.11.0 ================================================ FILE: package/binutils/2.32/0006-or1k-Fix-incorrect-value-in-PLT-GOT-entries-causing-.patch ================================================ From b17678f639f953d687d96cd52690e7cbfae50f91 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Fri, 23 Aug 2019 22:25:55 +0900 Subject: [PATCH] or1k: Fix incorrect value in PLT GOT entries, causing infinite loop The PLT GOT entry should point to the first PLT entry which contains the runtime linker function. It was pointing back to the symbol PLT entry causing an infinite loop. I found this when testing the OpenRISC glibc port which uses the runtime dynamic linker. It seems other libc's we use so far have not been making use of the initial PLT GOT entries. bfd/ChangeLog: * elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Use correct value for PLT GOT entries. (cherry picked from commit 09f7b0de537d465fc8ed9f9433e348c1bc78aab2) Signed-off-by: Romain Naour --- bfd/elf32-or1k.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 2f200b197b8..32839cfa7b6 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -2379,8 +2379,11 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, or1k_write_plt_entry (output_bfd, splt->contents + h->plt.offset, plt0, plt1, plt2, OR1K_JR(12)); - /* Fill in the entry in the global offset table. */ - bfd_put_32 (output_bfd, plt_addr, sgot->contents + got_offset); + /* Fill in the entry in the global offset table. We initialize it to + point to the top of the plt. This is done to lazy lookup the actual + symbol as the first plt entry will be setup by libc to call the + runtime dynamic linker. */ + bfd_put_32 (output_bfd, plt_base_addr, sgot->contents + got_offset); /* Fill in the entry in the .rela.plt section. */ rela.r_offset = got_addr; -- 2.23.0 ================================================ FILE: package/binutils/2.32/0007-bfd-xtensa-fix-PR-ld-25630.patch ================================================ From 85dcca5997cf3822d6456a5c9c59c46b56adfbb8 Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Wed, 4 Mar 2020 14:54:27 -0800 Subject: [PATCH] bfd: xtensa: fix PR ld/25630 bfd/ 2020-03-05 Max Filippov * elf32-xtensa.c (shrink_dynamic_reloc_sections): Shrink dynamic relocation sections for any removed reference to a dynamic symbol. Signed-off-by: Max Filippov --- bfd/elf32-xtensa.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c index 12ff9f772aaf..65e14d87940c 100644 --- a/bfd/elf32-xtensa.c +++ b/bfd/elf32-xtensa.c @@ -10148,10 +10148,9 @@ shrink_dynamic_reloc_sections (struct bfd_link_info *info, if ((r_type == R_XTENSA_32 || r_type == R_XTENSA_PLT) && (input_section->flags & SEC_ALLOC) != 0 - && (dynamic_symbol || bfd_link_pic (info)) - && (!h || h->root.type != bfd_link_hash_undefweak - || (dynamic_symbol - && (bfd_link_dll (info) || info->export_dynamic)))) + && (dynamic_symbol + || (bfd_link_pic (info) + && (!h || h->root.type != bfd_link_hash_undefweak)))) { asection *srel; bfd_boolean is_plt = FALSE; -- 2.20.1 ================================================ FILE: package/binutils/2.32/0008-xtensa-fix-PR-ld-25861.patch ================================================ From c7a1d1f656c717394937a92cb970f0f4cecce128 Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Sun, 19 Apr 2020 19:04:41 -0700 Subject: [PATCH] xtensa: fix PR ld/25861 Introduce new relaxations XTENSA_PDIFF{8,16,32} for positive differences (subtracted symbol precedes diminished symbol) and XTENSA_NDIFF{8,16,32} for negative differences (subtracted symbol follows diminished symbol). Don't generate XTENSA_DIFF relocations in the assembler, generate XTENSA_PDIFF or XTENSA_NDIFF based on relative symbol position. Handle XTENSA_DIFF in BFD for compatibility with old object files. Handle XTENSA_PDIFF and XTENSA_NDIFF in BFD, treating difference value as unsigned. 2020-04-22 Max Filippov bfd/ * bfd-in2.h: Regenerated. * elf32-xtensa.c (elf_howto_table): New entries for R_XTENSA_PDIFF{8,16,32} and R_XTENSA_NDIFF{8,16,32}. (elf_xtensa_reloc_type_lookup, elf_xtensa_do_reloc) (relax_section): Add cases for R_XTENSA_PDIFF{8,16,32} and R_XTENSA_NDIFF{8,16,32}. * libbfd.h (bfd_reloc_code_real_names): Add names for BFD_RELOC_XTENSA_PDIFF{8,16,32} and BFD_RELOC_XTENSA_NDIFF{8,16,32}. * reloc.c: Add documentation for BFD_RELOC_XTENSA_PDIFF{8,16,32} and BFD_RELOC_XTENSA_NDIFF{8,16,32}. binutils/ * readelf.c (is_none_reloc): Recognize BFD_RELOC_XTENSA_PDIFF{8,16,32} and BFD_RELOC_XTENSA_NDIFF{8,16,32}. gas/ * config/tc-xtensa.c (md_apply_fix): Replace BFD_RELOC_XTENSA_DIFF{8,16,32} generation with BFD_RELOC_XTENSA_PDIFF{8,16,32} and BFD_RELOC_XTENSA_NDIFF{8,16,32} generation. * testsuite/gas/xtensa/loc.d: Replace BFD_RELOC_XTENSA_DIFF16 with BFD_RELOC_XTENSA_PDIFF16 in the expected output. include/ * elf/xtensa.h (elf_xtensa_reloc_type): New entries for R_XTENSA_PDIFF{8,16,32} and R_XTENSA_NDIFF{8,16,32}. ld/ * testsuite/ld-xtensa/relax-loc.d: New test definition. * testsuite/ld-xtensa/relax-loc.s: New test source. * testsuite/ld-xtensa/xtensa.exp (relax-loc): New test. Signed-off-by: Max Filippov --- Backported from: 30ce8e47fad9b057b6d7af9e1d43061126d34d20 bfd/bfd-in2.h | 20 ++++++- bfd/elf32-xtensa.c | 89 +++++++++++++++++++++++++++++- bfd/libbfd.h | 6 ++ bfd/reloc.c | 24 ++++++++ binutils/readelf.c | 8 ++- gas/config/tc-xtensa.c | 12 +++- gas/testsuite/gas/xtensa/loc.d | 2 +- include/elf/xtensa.h | 6 ++ ld/testsuite/ld-xtensa/relax-loc.d | 7 +++ ld/testsuite/ld-xtensa/relax-loc.s | 15 +++++ ld/testsuite/ld-xtensa/xtensa.exp | 1 + 11 files changed, 183 insertions(+), 7 deletions(-) create mode 100644 ld/testsuite/ld-xtensa/relax-loc.d create mode 100644 ld/testsuite/ld-xtensa/relax-loc.s diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 37114607b515..be6a30f57955 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -5217,7 +5217,9 @@ to one of its own internal functions or data structures. */ PLT entries. Otherwise, this is just a generic 32-bit relocation. */ BFD_RELOC_XTENSA_PLT, -/* Xtensa relocations to mark the difference of two local symbols. +/* Xtensa relocations for backward compatibility. These have been replaced +by BFD_RELOC_XTENSA_PDIFF and BFD_RELOC_XTENSA_NDIFF. +Xtensa relocations to mark the difference of two local symbols. These are only needed to support linker relaxation and can be ignored when not relaxing. The field is set to the value of the difference assuming no relaxation. The relocation encodes the position of the @@ -5291,6 +5293,22 @@ BFD_RELOC_XTENSA_ASM_EXPAND. */ BFD_RELOC_XTENSA_TLS_ARG, BFD_RELOC_XTENSA_TLS_CALL, +/* Xtensa relocations to mark the difference of two local symbols. +These are only needed to support linker relaxation and can be ignored +when not relaxing. The field is set to the value of the difference +assuming no relaxation. The relocation encodes the position of the +subtracted symbol so the linker can determine whether to adjust the field +value. PDIFF relocations are used for positive differences, NDIFF +relocations are used for negative differences. The difference value +is treated as unsigned with these relocation types, giving full +8/16 value ranges. */ + BFD_RELOC_XTENSA_PDIFF8, + BFD_RELOC_XTENSA_PDIFF16, + BFD_RELOC_XTENSA_PDIFF32, + BFD_RELOC_XTENSA_NDIFF8, + BFD_RELOC_XTENSA_NDIFF16, + BFD_RELOC_XTENSA_NDIFF32, + /* 8 bit signed offset in (ix+d) or (iy+d). */ BFD_RELOC_Z80_DISP8, diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c index 473a9d76f289..fded42d52a9a 100644 --- a/bfd/elf32-xtensa.c +++ b/bfd/elf32-xtensa.c @@ -325,6 +325,20 @@ static reloc_howto_type elf_howto_table[] = HOWTO (R_XTENSA_TLS_CALL, 0, 0, 0, FALSE, 0, complain_overflow_dont, bfd_elf_xtensa_reloc, "R_XTENSA_TLS_CALL", FALSE, 0, 0, FALSE), + + HOWTO (R_XTENSA_PDIFF8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, + bfd_elf_xtensa_reloc, "R_XTENSA_PDIFF8", FALSE, 0, 0xff, FALSE), + HOWTO (R_XTENSA_PDIFF16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_xtensa_reloc, "R_XTENSA_PDIFF16", FALSE, 0, 0xffff, FALSE), + HOWTO (R_XTENSA_PDIFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_xtensa_reloc, "R_XTENSA_PDIFF32", FALSE, 0, 0xffffffff, FALSE), + + HOWTO (R_XTENSA_NDIFF8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, + bfd_elf_xtensa_reloc, "R_XTENSA_NDIFF8", FALSE, 0, 0xff, FALSE), + HOWTO (R_XTENSA_NDIFF16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_xtensa_reloc, "R_XTENSA_NDIFF16", FALSE, 0, 0xffff, FALSE), + HOWTO (R_XTENSA_NDIFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_xtensa_reloc, "R_XTENSA_NDIFF32", FALSE, 0, 0xffffffff, FALSE), }; #if DEBUG_GEN_RELOC @@ -364,6 +378,30 @@ elf_xtensa_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, TRACE ("BFD_RELOC_XTENSA_DIFF32"); return &elf_howto_table[(unsigned) R_XTENSA_DIFF32 ]; + case BFD_RELOC_XTENSA_PDIFF8: + TRACE ("BFD_RELOC_XTENSA_PDIFF8"); + return &elf_howto_table[(unsigned) R_XTENSA_PDIFF8 ]; + + case BFD_RELOC_XTENSA_PDIFF16: + TRACE ("BFD_RELOC_XTENSA_PDIFF16"); + return &elf_howto_table[(unsigned) R_XTENSA_PDIFF16 ]; + + case BFD_RELOC_XTENSA_PDIFF32: + TRACE ("BFD_RELOC_XTENSA_PDIFF32"); + return &elf_howto_table[(unsigned) R_XTENSA_PDIFF32 ]; + + case BFD_RELOC_XTENSA_NDIFF8: + TRACE ("BFD_RELOC_XTENSA_NDIFF8"); + return &elf_howto_table[(unsigned) R_XTENSA_NDIFF8 ]; + + case BFD_RELOC_XTENSA_NDIFF16: + TRACE ("BFD_RELOC_XTENSA_NDIFF16"); + return &elf_howto_table[(unsigned) R_XTENSA_NDIFF16 ]; + + case BFD_RELOC_XTENSA_NDIFF32: + TRACE ("BFD_RELOC_XTENSA_NDIFF32"); + return &elf_howto_table[(unsigned) R_XTENSA_NDIFF32 ]; + case BFD_RELOC_XTENSA_RTLD: TRACE ("BFD_RELOC_XTENSA_RTLD"); return &elf_howto_table[(unsigned) R_XTENSA_RTLD ]; @@ -1851,6 +1889,12 @@ elf_xtensa_do_reloc (reloc_howto_type *howto, case R_XTENSA_DIFF8: case R_XTENSA_DIFF16: case R_XTENSA_DIFF32: + case R_XTENSA_PDIFF8: + case R_XTENSA_PDIFF16: + case R_XTENSA_PDIFF32: + case R_XTENSA_NDIFF8: + case R_XTENSA_NDIFF16: + case R_XTENSA_NDIFF32: case R_XTENSA_TLS_FUNC: case R_XTENSA_TLS_ARG: case R_XTENSA_TLS_CALL: @@ -9604,7 +9648,13 @@ relax_section (bfd *abfd, asection *sec, struct bfd_link_info *link_info) if (r_type == R_XTENSA_DIFF8 || r_type == R_XTENSA_DIFF16 - || r_type == R_XTENSA_DIFF32) + || r_type == R_XTENSA_DIFF32 + || r_type == R_XTENSA_PDIFF8 + || r_type == R_XTENSA_PDIFF16 + || r_type == R_XTENSA_PDIFF32 + || r_type == R_XTENSA_NDIFF8 + || r_type == R_XTENSA_NDIFF16 + || r_type == R_XTENSA_NDIFF32) { bfd_signed_vma diff_value = 0; bfd_vma new_end_offset, diff_mask = 0; @@ -9631,8 +9681,27 @@ relax_section (bfd *abfd, asection *sec, struct bfd_link_info *link_info) diff_value = bfd_get_signed_32 (abfd, &contents[old_source_offset]); break; + case R_XTENSA_PDIFF8: + case R_XTENSA_NDIFF8: + diff_value = + bfd_get_8 (abfd, &contents[old_source_offset]); + break; + case R_XTENSA_PDIFF16: + case R_XTENSA_NDIFF16: + diff_value = + bfd_get_16 (abfd, &contents[old_source_offset]); + break; + case R_XTENSA_PDIFF32: + case R_XTENSA_NDIFF32: + diff_value = + bfd_get_32 (abfd, &contents[old_source_offset]); + break; } + if (r_type >= R_XTENSA_NDIFF8 + && r_type <= R_XTENSA_NDIFF32) + diff_value = -diff_value; + new_end_offset = offset_with_removed_text_map (&target_relax_info->action_list, r_rel.target_offset + diff_value); @@ -9655,6 +9724,24 @@ relax_section (bfd *abfd, asection *sec, struct bfd_link_info *link_info) bfd_put_signed_32 (abfd, diff_value, &contents[old_source_offset]); break; + case R_XTENSA_PDIFF8: + case R_XTENSA_NDIFF8: + diff_mask = 0xff; + bfd_put_8 (abfd, diff_value, + &contents[old_source_offset]); + break; + case R_XTENSA_PDIFF16: + case R_XTENSA_NDIFF16: + diff_mask = 0xffff; + bfd_put_16 (abfd, diff_value, + &contents[old_source_offset]); + break; + case R_XTENSA_PDIFF32: + case R_XTENSA_NDIFF32: + diff_mask = 0xffffffff; + bfd_put_32 (abfd, diff_value, + &contents[old_source_offset]); + break; } /* Check for overflow. Sign bits must be all zeroes or all ones */ diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 3c184fcadadf..989f4bc0b595 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -2919,6 +2919,12 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_XTENSA_TLS_FUNC", "BFD_RELOC_XTENSA_TLS_ARG", "BFD_RELOC_XTENSA_TLS_CALL", + "BFD_RELOC_XTENSA_PDIFF8", + "BFD_RELOC_XTENSA_PDIFF16", + "BFD_RELOC_XTENSA_PDIFF32", + "BFD_RELOC_XTENSA_NDIFF8", + "BFD_RELOC_XTENSA_NDIFF16", + "BFD_RELOC_XTENSA_NDIFF32", "BFD_RELOC_Z80_DISP8", "BFD_RELOC_Z80_BYTE0", "BFD_RELOC_Z80_BYTE1", diff --git a/bfd/reloc.c b/bfd/reloc.c index c4dec86d1d46..f5df8e2ab3eb 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -6556,6 +6556,8 @@ ENUMX ENUMX BFD_RELOC_XTENSA_DIFF32 ENUMDOC + Xtensa relocations for backward compatibility. These have been replaced + by BFD_RELOC_XTENSA_PDIFF and BFD_RELOC_XTENSA_NDIFF. Xtensa relocations to mark the difference of two local symbols. These are only needed to support linker relaxation and can be ignored when not relaxing. The field is set to the value of the difference @@ -6668,6 +6670,28 @@ ENUMX BFD_RELOC_XTENSA_TLS_CALL ENUMDOC Xtensa TLS relocations. +ENUM + BFD_RELOC_XTENSA_PDIFF8 +ENUMX + BFD_RELOC_XTENSA_PDIFF16 +ENUMX + BFD_RELOC_XTENSA_PDIFF32 +ENUMX + BFD_RELOC_XTENSA_NDIFF8 +ENUMX + BFD_RELOC_XTENSA_NDIFF16 +ENUMX + BFD_RELOC_XTENSA_NDIFF32 +ENUMDOC + Xtensa relocations to mark the difference of two local symbols. + These are only needed to support linker relaxation and can be ignored + when not relaxing. The field is set to the value of the difference + assuming no relaxation. The relocation encodes the position of the + subtracted symbol so the linker can determine whether to adjust the field + value. PDIFF relocations are used for positive differences, NDIFF + relocations are used for negative differences. The difference value + is treated as unsigned with these relocation types, giving full + 8/16 value ranges. ENUM BFD_RELOC_Z80_DISP8 diff --git a/binutils/readelf.c b/binutils/readelf.c index d4756c93b345..800918f901c8 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -13262,7 +13262,13 @@ is_none_reloc (Filedata * filedata, unsigned int reloc_type) return (reloc_type == 0 /* R_XTENSA_NONE. */ || reloc_type == 17 /* R_XTENSA_DIFF8. */ || reloc_type == 18 /* R_XTENSA_DIFF16. */ - || reloc_type == 19 /* R_XTENSA_DIFF32. */); + || reloc_type == 19 /* R_XTENSA_DIFF32. */ + || reloc_type == 57 /* R_XTENSA_PDIFF8. */ + || reloc_type == 58 /* R_XTENSA_PDIFF16. */ + || reloc_type == 59 /* R_XTENSA_PDIFF32. */ + || reloc_type == 60 /* R_XTENSA_NDIFF8. */ + || reloc_type == 61 /* R_XTENSA_NDIFF16. */ + || reloc_type == 62 /* R_XTENSA_NDIFF32. */); } return FALSE; } diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index 71d4d94a8d7d..ee75c13548ff 100644 --- a/gas/config/tc-xtensa.c +++ b/gas/config/tc-xtensa.c @@ -5974,18 +5974,24 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg) case BFD_RELOC_8: if (fixP->fx_subsy) { + bfd_boolean neg = S_GET_VALUE (fixP->fx_addsy) + fixP->fx_offset + < S_GET_VALUE (fixP->fx_subsy); + switch (fixP->fx_r_type) { case BFD_RELOC_8: - fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF8; + fixP->fx_r_type = neg + ? BFD_RELOC_XTENSA_NDIFF8 : BFD_RELOC_XTENSA_PDIFF8; fixP->fx_signed = 0; break; case BFD_RELOC_16: - fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF16; + fixP->fx_r_type = neg + ? BFD_RELOC_XTENSA_NDIFF16 : BFD_RELOC_XTENSA_PDIFF16; fixP->fx_signed = 0; break; case BFD_RELOC_32: - fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF32; + fixP->fx_r_type = neg + ? BFD_RELOC_XTENSA_NDIFF32 : BFD_RELOC_XTENSA_PDIFF32; fixP->fx_signed = 0; break; default: diff --git a/gas/testsuite/gas/xtensa/loc.d b/gas/testsuite/gas/xtensa/loc.d index 71983cc90055..8fb3425999d5 100644 --- a/gas/testsuite/gas/xtensa/loc.d +++ b/gas/testsuite/gas/xtensa/loc.d @@ -6,5 +6,5 @@ RELOCATION RECORDS FOR \[\.debug_line\]: #... -.*R_XTENSA_DIFF16.*\.text\+0x00009c42 +.*R_XTENSA_PDIFF16.*\.text\+0x00009c42 #... diff --git a/include/elf/xtensa.h b/include/elf/xtensa.h index 2eb5e4e52941..bd5c80d13777 100644 --- a/include/elf/xtensa.h +++ b/include/elf/xtensa.h @@ -87,6 +87,12 @@ START_RELOC_NUMBERS (elf_xtensa_reloc_type) RELOC_NUMBER (R_XTENSA_TLS_FUNC, 54) RELOC_NUMBER (R_XTENSA_TLS_ARG, 55) RELOC_NUMBER (R_XTENSA_TLS_CALL, 56) + RELOC_NUMBER (R_XTENSA_PDIFF8, 57) + RELOC_NUMBER (R_XTENSA_PDIFF16, 58) + RELOC_NUMBER (R_XTENSA_PDIFF32, 59) + RELOC_NUMBER (R_XTENSA_NDIFF8, 60) + RELOC_NUMBER (R_XTENSA_NDIFF16, 61) + RELOC_NUMBER (R_XTENSA_NDIFF32, 62) END_RELOC_NUMBERS (R_XTENSA_max) /* Processor-specific flags for the ELF header e_flags field. */ diff --git a/ld/testsuite/ld-xtensa/relax-loc.d b/ld/testsuite/ld-xtensa/relax-loc.d new file mode 100644 index 000000000000..3c8d673732ff --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-loc.d @@ -0,0 +1,7 @@ +#as: --text-section-literals +#ld: +#objdump: --dwarf=decodedline +#... +relax-loc.s[ ]+1[ ]+0x400054[ ]+.* +relax-loc.s[ ]+2[ ]+0x40005c[ ]+.* +#... diff --git a/ld/testsuite/ld-xtensa/relax-loc.s b/ld/testsuite/ld-xtensa/relax-loc.s new file mode 100644 index 000000000000..d768470e287a --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-loc.s @@ -0,0 +1,15 @@ + .file 1 "relax-loc.s" + .globl _start + .globl _ResetVector + .text +_ResetVector: +_start: + .loc 1 1 + j 1f + .literal_position +1: + .loc 1 2 + + .rep 10000 + movi a2, 0x12345678 + .endr diff --git a/ld/testsuite/ld-xtensa/xtensa.exp b/ld/testsuite/ld-xtensa/xtensa.exp index 9b2235b2151b..de39887936ad 100644 --- a/ld/testsuite/ld-xtensa/xtensa.exp +++ b/ld/testsuite/ld-xtensa/xtensa.exp @@ -27,6 +27,7 @@ run_dump_test "call_overflow" run_dump_test "coalesce" run_dump_test "diff_overflow" run_dump_test "lcall" +run_dump_test "relax-loc" run_dump_test "relax-static-pie" run_dump_test "relax-static-local-pie" -- 2.20.1 ================================================ FILE: package/binutils/2.32/0009-xtensa-fix-XTENSA_NDIFF-handling-for-PR-ld-25861.patch ================================================ From 735321812435ae278d3766a3371f55937dc776d6 Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Sat, 25 Apr 2020 00:40:25 -0700 Subject: [PATCH] xtensa: fix XTENSA_NDIFF handling for PR ld/25861 Fields marked with XTENSA_NDIFF relocations are not negated, they only have sign bits removed. Don't negate their values when relaxation is performed. Don't add sign bits when the value is zero. Report overflow when the result has negative sign but all significant bits are zero. 2020-04-29 Max Filippov bfd/ * elf32-xtensa.c (relax_section): Don't negate diff_value for XTENSA_NDIFF relocations. Don't add sign bits whe diff_value equals 0. Report overflow when the result has negative sign but all significant bits are zero. Signed-off-by: Max Filippov Backported from: d548f47df4d2e3d117d504a4c9977982c78a0556 --- bfd/elf32-xtensa.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c index fded42d52a9a..4327b027911f 100644 --- a/bfd/elf32-xtensa.c +++ b/bfd/elf32-xtensa.c @@ -9670,37 +9670,44 @@ relax_section (bfd *abfd, asection *sec, struct bfd_link_info *link_info) switch (r_type) { case R_XTENSA_DIFF8: + diff_mask = 0x7f; diff_value = bfd_get_signed_8 (abfd, &contents[old_source_offset]); break; case R_XTENSA_DIFF16: + diff_mask = 0x7fff; diff_value = bfd_get_signed_16 (abfd, &contents[old_source_offset]); break; case R_XTENSA_DIFF32: + diff_mask = 0x7fffffff; diff_value = bfd_get_signed_32 (abfd, &contents[old_source_offset]); break; case R_XTENSA_PDIFF8: case R_XTENSA_NDIFF8: + diff_mask = 0xff; diff_value = bfd_get_8 (abfd, &contents[old_source_offset]); break; case R_XTENSA_PDIFF16: case R_XTENSA_NDIFF16: + diff_mask = 0xffff; diff_value = bfd_get_16 (abfd, &contents[old_source_offset]); break; case R_XTENSA_PDIFF32: case R_XTENSA_NDIFF32: + diff_mask = 0xffffffff; diff_value = bfd_get_32 (abfd, &contents[old_source_offset]); break; } if (r_type >= R_XTENSA_NDIFF8 - && r_type <= R_XTENSA_NDIFF32) - diff_value = -diff_value; + && r_type <= R_XTENSA_NDIFF32 + && diff_value) + diff_value |= ~diff_mask; new_end_offset = offset_with_removed_text_map (&target_relax_info->action_list, @@ -9710,43 +9717,40 @@ relax_section (bfd *abfd, asection *sec, struct bfd_link_info *link_info) switch (r_type) { case R_XTENSA_DIFF8: - diff_mask = 0x7f; bfd_put_signed_8 (abfd, diff_value, &contents[old_source_offset]); break; case R_XTENSA_DIFF16: - diff_mask = 0x7fff; bfd_put_signed_16 (abfd, diff_value, &contents[old_source_offset]); break; case R_XTENSA_DIFF32: - diff_mask = 0x7fffffff; bfd_put_signed_32 (abfd, diff_value, &contents[old_source_offset]); break; case R_XTENSA_PDIFF8: case R_XTENSA_NDIFF8: - diff_mask = 0xff; bfd_put_8 (abfd, diff_value, &contents[old_source_offset]); break; case R_XTENSA_PDIFF16: case R_XTENSA_NDIFF16: - diff_mask = 0xffff; bfd_put_16 (abfd, diff_value, &contents[old_source_offset]); break; case R_XTENSA_PDIFF32: case R_XTENSA_NDIFF32: - diff_mask = 0xffffffff; bfd_put_32 (abfd, diff_value, &contents[old_source_offset]); break; } - /* 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)) + /* Check for overflow. Sign bits must be all zeroes or + all ones. When sign bits are all ones diff_value + may not be zero. */ + if (((diff_value & ~diff_mask) != 0 + && (diff_value & ~diff_mask) != ~diff_mask) + || (diff_value && (bfd_vma) diff_value == ~diff_mask)) { (*link_info->callbacks->reloc_dangerous) (link_info, _("overflow after relaxation"), -- 2.20.1 ================================================ FILE: package/binutils/2.32/0010-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch ================================================ From 788cda9f9447e0fe67e582e8fb5adafd678d08b2 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:02:14 +0900 Subject: [PATCH] or1k: Fix issue with plt link failure for local calls When building protobuf we were seeing the assert failure: /home/giuliobenetti/git/upstream/or1k-binutils-2.36.1/host/lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: BFD (GNU Binutils) 2.36.1 assertion fail elf32-or1k.c:2377 /home/giuliobenetti/git/upstream/or1k-binutils-2.36.1/host/lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: BFD (GNU Binutils) 2.36.1 assertion fail elf32-or1k.c:2377 /home/giuliobenetti/git/upstream/or1k-binutils-2.36.1/host/lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: BFD (GNU Binutils) 2.36.1 assertion fail elf32-or1k.c:2377 collect2: error: ld returned 1 exit status This failure happens while writing out PLT entries, there is a check "BFD_ASSERT (h->dynindx != -1)" to confirm all plt entries have dynamic symbol attributes. This was failing for symbols that were "forced_local" in previous linking code. The fix adds logic to or1k_elf_adjust_dynamic_symbol to identify "forced_local" symbols and exclude them from the the PLT. bfd/ChangeLog: PR 27624 * elf32-or1k.c (or1k_elf_adjust_dynamic_symbol): Change condition used to cleanup plt entries to cleanup forced local entries. Cc: Giulio Benetti Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 2f200b197b8..1f2c88b0b3a 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -2535,11 +2535,10 @@ or1k_elf_adjust_dynamic_symbol (struct bfd_link_info *info, if (h->type == STT_FUNC || h->needs_plt) { - if (! bfd_link_pic (info) - && !h->def_dynamic - && !h->ref_dynamic - && h->root.type != bfd_link_hash_undefweak - && h->root.type != bfd_link_hash_undefined) + if (h->plt.refcount <= 0 + || (SYMBOL_CALLS_LOCAL (info, h) + || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT + && h->root.type == bfd_link_hash_undefweak))) { /* This case can occur if we saw a PLT reloc in an input file, but the symbol was never referred to by a dynamic -- 2.25.1 ================================================ FILE: package/binutils/2.32/0011-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch ================================================ From b10e6230dea0015bf3b7748580b82c551f9a3a4a Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:02:15 +0900 Subject: [PATCH] or1k: Implement relocation R_OR1K_GOT_AHI16 for gotha() The gotha() relocation mnemonic will be outputted by OpenRISC GCC when using the -mcmodel=large option. This relocation is used along with got() to generate 32-bit GOT offsets. This increases the previous GOT offset limit from the previous 16-bit (64K) limit. This is needed on large binaries where the GOT grows larger than 64k. bfd/ChangeLog: PR 21464 * bfd-in2.h: Add BFD_RELOC_OR1K_GOT_AHI16 relocation. * elf32-or1k.c (or1k_elf_howto_table, or1k_reloc_map): Likewise. (or1k_final_link_relocate, or1k_elf_relocate_section, or1k_elf_check_relocs): Likewise. * libbfd.h (bfd_reloc_code_real_names): Likewise. * reloc.c: Likewise. cpu/ChangeLog: PR 21464 * or1k.opc (or1k_imm16_relocs, parse_reloc): Define parse logic for gotha() relocation. include/ChangeLog: PR 21464 * elf/or1k.h (elf_or1k_reloc_type): Define R_OR1K_GOT_AHI16 number. opcodes/ChangeLog: PR 21464 * or1k-asm.c: Regenerate. gas/ChangeLog: PR 21464 * testsuite/gas/or1k/reloc-1.s: Add test for new relocation. * testsuite/gas/or1k/reloc-1.d: Add test result for new relocation. Cc: Giulio Benetti fixup reloc, add tests Signed-off-by: Giulio Benetti --- bfd/bfd-in2.h | 1 + bfd/elf32-or1k.c | 21 ++++++++++++++++++++- bfd/libbfd.h | 1 + bfd/reloc.c | 2 ++ cpu/or1k.opc | 7 ++++++- gas/testsuite/gas/or1k/reloc-1.d | 4 +++- gas/testsuite/gas/or1k/reloc-1.s | 4 ++++ include/elf/or1k.h | 1 + opcodes/or1k-asm.c | 7 ++++++- 9 files changed, 44 insertions(+), 4 deletions(-) diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index e25da50aafb..530a41fca43 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -5517,6 +5517,7 @@ then it may be truncated to 8 bits. */ BFD_RELOC_OR1K_TLS_TPOFF, BFD_RELOC_OR1K_TLS_DTPOFF, BFD_RELOC_OR1K_TLS_DTPMOD, + BFD_RELOC_OR1K_GOT_AHI16, /* H8 elf Relocations. */ BFD_RELOC_H8_DIR16A8, diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 1f2c88b0b3a..a4a64f73b7c 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -808,6 +808,20 @@ static reloc_howto_type or1k_elf_howto_table[] = 0, /* Source Mask. */ 0x03ffffff, /* Dest Mask. */ TRUE), /* PC relative offset? */ + + HOWTO (R_OR1K_GOT_AHI16, /* type */ + 16, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_OR1K_GOT_AHI16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0xffff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; /* Map BFD reloc types to Or1k ELF reloc types. */ @@ -871,6 +885,7 @@ static const struct or1k_reloc_map or1k_reloc_map[] = { BFD_RELOC_OR1K_TLS_IE_LO13, R_OR1K_TLS_IE_LO13 }, { BFD_RELOC_OR1K_SLO13, R_OR1K_SLO13 }, { BFD_RELOC_OR1K_PLTA26, R_OR1K_PLTA26 }, + { BFD_RELOC_OR1K_GOT_AHI16, R_OR1K_GOT_AHI16 }, }; #define TLS_UNKNOWN 0 @@ -1080,6 +1095,7 @@ or1k_final_link_relocate (reloc_howto_type *howto, bfd *input_bfd, switch (howto->type) { case R_OR1K_AHI16: + case R_OR1K_GOT_AHI16: case R_OR1K_GOTOFF_AHI16: case R_OR1K_TLS_IE_AHI16: case R_OR1K_TLS_LE_AHI16: @@ -1344,6 +1360,7 @@ or1k_elf_relocate_section (bfd *output_bfd, } break; + case R_OR1K_GOT_AHI16: case R_OR1K_GOT16: case R_OR1K_GOT_PG21: case R_OR1K_GOT_LO13: @@ -1435,7 +1452,8 @@ or1k_elf_relocate_section (bfd *output_bfd, /* The GOT_PG21 and GOT_LO13 relocs are pc-relative, while the GOT16 reloc is GOT relative. */ relocation = got_base + off; - if (r_type == R_OR1K_GOT16) + if (r_type == R_OR1K_GOT16 + || r_type == R_OR1K_GOT_AHI16) relocation -= got_sym_value; /* Addend should be zero. */ @@ -1945,6 +1963,7 @@ or1k_elf_check_relocs (bfd *abfd, } break; + case R_OR1K_GOT_AHI16: case R_OR1K_GOT16: case R_OR1K_GOT_PG21: case R_OR1K_GOT_LO13: diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 36284d71a9b..6e9e3190bb8 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -2702,6 +2702,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_OR1K_TLS_TPOFF", "BFD_RELOC_OR1K_TLS_DTPOFF", "BFD_RELOC_OR1K_TLS_DTPMOD", + "BFD_RELOC_OR1K_GOT_AHI16", "BFD_RELOC_H8_DIR16A8", "BFD_RELOC_H8_DIR16R8", "BFD_RELOC_H8_DIR24A8", diff --git a/bfd/reloc.c b/bfd/reloc.c index e6446a78098..b0003ab1175 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -6164,6 +6164,8 @@ ENUMX BFD_RELOC_OR1K_GOTPC_HI16 ENUMX BFD_RELOC_OR1K_GOTPC_LO16 +ENUMX + BFD_RELOC_OR1K_GOT_AHI16 ENUMX BFD_RELOC_OR1K_GOT16 ENUMX diff --git a/cpu/or1k.opc b/cpu/or1k.opc index 5082a30cee1..85163fc96c9 100644 --- a/cpu/or1k.opc +++ b/cpu/or1k.opc @@ -173,7 +173,7 @@ static const bfd_reloc_code_real_type or1k_imm16_relocs[][6] = { BFD_RELOC_OR1K_GOT_LO13, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, - BFD_RELOC_UNUSED }, + BFD_RELOC_OR1K_GOT_AHI16 }, { BFD_RELOC_OR1K_GOTPC_LO16, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, @@ -276,6 +276,11 @@ parse_reloc (const char **strp) str += 5; cls = RCLASS_TPOFF; } + else if (strncasecmp (str, "got", 3) == 0) + { + str += 3; + cls = RCLASS_GOT; + } if (strncasecmp (str, "hi(", 3) == 0) { diff --git a/gas/testsuite/gas/or1k/reloc-1.d b/gas/testsuite/gas/or1k/reloc-1.d index d1bcf5608bb..3a001c4ed99 100644 --- a/gas/testsuite/gas/or1k/reloc-1.d +++ b/gas/testsuite/gas/or1k/reloc-1.d @@ -68,5 +68,7 @@ OFFSET TYPE VALUE 000000ec R_OR1K_LO13 x 000000f0 R_OR1K_GOT_LO13 x 000000f4 R_OR1K_SLO13 x - +000000f8 R_OR1K_GOT_AHI16 x +000000fc R_OR1K_GOT_AHI16 x +00000100 R_OR1K_GOT_AHI16 x diff --git a/gas/testsuite/gas/or1k/reloc-1.s b/gas/testsuite/gas/or1k/reloc-1.s index e76abef6532..562609aa869 100644 --- a/gas/testsuite/gas/or1k/reloc-1.s +++ b/gas/testsuite/gas/or1k/reloc-1.s @@ -74,3 +74,7 @@ l.lbz r5,po(x)(r3) l.lbz r5,gotpo(x)(r3) l.sb po(x)(r3),r6 + + l.movhi r4,gotha(x) + l.ori r3,r4,gotha(x) + l.addi r3,r4,gotha(x) diff --git a/include/elf/or1k.h b/include/elf/or1k.h index 0abef046202..7db3cad18eb 100644 --- a/include/elf/or1k.h +++ b/include/elf/or1k.h @@ -77,6 +77,7 @@ START_RELOC_NUMBERS (elf_or1k_reloc_type) RELOC_NUMBER (R_OR1K_TLS_IE_LO13, 51) RELOC_NUMBER (R_OR1K_SLO13, 52) RELOC_NUMBER (R_OR1K_PLTA26, 53) + RELOC_NUMBER (R_OR1K_GOT_AHI16, 54) END_RELOC_NUMBERS (R_OR1K_max) #define EF_OR1K_NODELAY (1UL << 0) diff --git a/opcodes/or1k-asm.c b/opcodes/or1k-asm.c index 7d058d03f5f..332f4b7a9b5 100644 --- a/opcodes/or1k-asm.c +++ b/opcodes/or1k-asm.c @@ -177,7 +177,7 @@ static const bfd_reloc_code_real_type or1k_imm16_relocs[][6] = { BFD_RELOC_OR1K_GOT_LO13, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, - BFD_RELOC_UNUSED }, + BFD_RELOC_OR1K_GOT_AHI16 }, { BFD_RELOC_OR1K_GOTPC_LO16, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, @@ -280,6 +280,11 @@ parse_reloc (const char **strp) str += 5; cls = RCLASS_TPOFF; } + else if (strncasecmp (str, "got", 3) == 0) + { + str += 3; + cls = RCLASS_GOT; + } if (strncasecmp (str, "hi(", 3) == 0) { -- 2.25.1 ================================================ FILE: package/binutils/2.32/0012-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch ================================================ From 0f61f76454a9420f158f626cb09a4fbc08c3709e Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:02:16 +0900 Subject: [PATCH] or1k: Avoid R_OR1K_GOT16 overflow failures in presence of R_OR1K_GOT_AHI16 Now that we support R_OR1K_GOT_AHI16 we can relax the R_OR1K_GOT16 overflow validation check if the section has R_OR1K_GOT_AHI16. We cannot simple disable R_OR1K_GOT16 overflow validation as there will still be binaries that will have only R_OR1K_GOT16. The R_OR1K_GOT_AHI16 relocation will only be added by GCC when building with the option -mcmodel=large. This assumes that R_OR1K_GOT_AHI16 will come before R_OR1K_GOT16, which is the code pattern that will be emitted by GCC. bfd/ChangeLog: PR 21464 * elf32-or1k.c (or1k_elf_relocate_section): Relax R_OR1K_GOT16 overflow check if we have R_OR1K_GOT_AHI16 followed by R_OR1K_GOT16. Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index a4a64f73b7c..07fff3602a3 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -1248,6 +1248,7 @@ or1k_elf_relocate_section (bfd *output_bfd, asection *sgot, *splt; bfd_vma plt_base, got_base, got_sym_value; bfd_boolean ret_val = TRUE; + bfd_boolean saw_gotha = FALSE; if (htab == NULL) return FALSE; @@ -1456,6 +1457,16 @@ or1k_elf_relocate_section (bfd *output_bfd, || r_type == R_OR1K_GOT_AHI16) relocation -= got_sym_value; + if (r_type == R_OR1K_GOT_AHI16) + saw_gotha = TRUE; + + /* If we have a R_OR1K_GOT16 followed by a R_OR1K_GOT_AHI16 + relocation we assume the code is doing the right thing to avoid + overflows. Here we mask the lower 16-bit of the relocation to + avoid overflow validation failures. */ + if (r_type == R_OR1K_GOT16 && saw_gotha) + relocation &= 0xffff; + /* Addend should be zero. */ if (rel->r_addend != 0) { -- 2.25.1 ================================================ FILE: package/binutils/2.32/0013-or1k-Support-large-plt_relocs-when-generating-plt-en.patch ================================================ From 36c7de7ef77ab0c30cb33e2c7ea7a6f4e3052c73 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:02:17 +0900 Subject: [PATCH] or1k: Support large plt_relocs when generating plt entries The current PLT generation code will generate invalid code when the PLT relocation offset exceeds 64k. This fixes the issue by detecting large plt_reloc offsets and generare code sequences to create larger plt relocations. The "large" plt code needs 2 extra instructions to create 32-bit offsets. bfd/ChangeLog: PR 27746 * elf32-or1k.c (PLT_ENTRY_SIZE_LARGE, PLT_MAX_INSN_COUNT, OR1K_ADD, OR1K_ORI): New macros to help with plt creation. (elf_or1k_link_hash_table): New field plt_count. (elf_or1k_link_hash_entry): New field plt_index. (elf_or1k_plt_entry_size): New function. (or1k_write_plt_entry): Update to support variable size PLTs. (or1k_elf_finish_dynamic_sections): Use new or1k_write_plt_entry API. (or1k_elf_finish_dynamic_symbol): Update to write large PLTs when needed. (allocate_dynrelocs): Use elf_or1k_plt_entry_size to account for PLT size. ld/ChangeLog: PR 27746 testsuite/ld-or1k/or1k.exp (or1kplttests): Add tests for linking along with gotha() relocations. testsuite/ld-or1k/gotha1.dd: New file. testsuite/ld-or1k/gotha1.s: New file. testsuite/ld-or1k/gotha2.dd: New file. testsuite/ld-or1k/gotha2.s: New file testsuite/ld-or1k/pltlib.s (x): Define size to avoid link failure. Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 149 ++++++++++++++++++++++++--------- ld/testsuite/ld-or1k/gotha1.dd | 34 ++++++++ ld/testsuite/ld-or1k/gotha1.s | 24 ++++++ ld/testsuite/ld-or1k/gotha2.dd | 21 +++++ ld/testsuite/ld-or1k/gotha2.s | 22 +++++ ld/testsuite/ld-or1k/or1k.exp | 8 ++ ld/testsuite/ld-or1k/pltlib.s | 1 + 7 files changed, 220 insertions(+), 39 deletions(-) create mode 100644 ld/testsuite/ld-or1k/gotha1.dd create mode 100644 ld/testsuite/ld-or1k/gotha1.s create mode 100644 ld/testsuite/ld-or1k/gotha2.dd create mode 100644 ld/testsuite/ld-or1k/gotha2.s diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 07fff3602a3..fcebbe5f23a 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -30,10 +30,14 @@ #define N_ONES(X) (((bfd_vma)2 << (X)) - 1) #define PLT_ENTRY_SIZE 16 +#define PLT_ENTRY_SIZE_LARGE (6*4) +#define PLT_MAX_INSN_COUNT 6 #define OR1K_MOVHI(D) (0x18000000 | (D << 21)) #define OR1K_ADRP(D) (0x08000000 | (D << 21)) #define OR1K_LWZ(D,A) (0x84000000 | (D << 21) | (A << 16)) +#define OR1K_ADD(D,A,B) (0xE0000000 | (D << 21) | (A << 16) | (B << 11)) +#define OR1K_ORI(D,A) (0xA8000000 | (D << 21) | (A << 16)) #define OR1K_ORI0(D) (0xA8000000 | (D << 21)) #define OR1K_JR(B) (0x44000000 | (B << 11)) #define OR1K_NOP 0x15000000 @@ -903,6 +907,8 @@ struct elf_or1k_link_hash_entry /* Track dynamic relocs copied for this symbol. */ struct elf_dyn_relocs *dyn_relocs; + /* For calculating PLT size. */ + bfd_vma plt_index; /* Track type of TLS access. */ unsigned char tls_type; }; @@ -930,9 +936,20 @@ struct elf_or1k_link_hash_table /* Small local sym to section mapping cache. */ struct sym_cache sym_sec; + bfd_vma plt_count; bfd_boolean saw_plta; }; +static size_t +elf_or1k_plt_entry_size (bfd_vma plt_index) +{ + bfd_vma plt_reloc; + + plt_reloc = plt_index * sizeof (Elf32_External_Rela); + + return (plt_reloc > 0xffff) ? PLT_ENTRY_SIZE_LARGE : PLT_ENTRY_SIZE; +} + /* Get the ELF linker hash table from a link_info structure. */ #define or1k_elf_hash_table(p) \ (elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) \ @@ -2176,33 +2193,46 @@ or1k_elf_check_relocs (bfd *abfd, } static void -or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insn1, - unsigned insn2, unsigned insn3, unsigned insnj) +or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj, + unsigned insns[], size_t insn_count) { unsigned nodelay = elf_elfheader (output_bfd)->e_flags & EF_OR1K_NODELAY; - unsigned insn4; + unsigned output_insns[PLT_MAX_INSN_COUNT]; + + /* Copy instructions into the output buffer. */ + for (size_t i = 0; i < insn_count; i++) + output_insns[i] = insns[i]; /* Honor the no-delay-slot setting. */ - if (insn3 == OR1K_NOP) + if (insns[insn_count-1] == OR1K_NOP) { - insn4 = insn3; + unsigned slot1, slot2; + if (nodelay) - insn3 = insnj; + slot1 = insns[insn_count-2], slot2 = insnj; else - insn3 = insn2, insn2 = insnj; + slot1 = insnj, slot2 = insns[insn_count-2]; + + output_insns[insn_count-2] = slot1; + output_insns[insn_count-1] = slot2; + output_insns[insn_count] = OR1K_NOP; } else { + unsigned slot1, slot2; + if (nodelay) - insn4 = insnj; + slot1 = insns[insn_count-1], slot2 = insnj; else - insn4 = insn3, insn3 = insnj; + slot1 = insnj, slot2 = insns[insn_count-1]; + + output_insns[insn_count-1] = slot1; + output_insns[insn_count] = slot2; } - bfd_put_32 (output_bfd, insn1, contents); - bfd_put_32 (output_bfd, insn2, contents + 4); - bfd_put_32 (output_bfd, insn3, contents + 8); - bfd_put_32 (output_bfd, insn4, contents + 12); + /* Write out the output buffer. */ + for (size_t i = 0; i < (insn_count+1); i++) + bfd_put_32 (output_bfd, output_insns[i], contents + (i*4)); } /* Finish up the dynamic sections. */ @@ -2269,7 +2299,8 @@ or1k_elf_finish_dynamic_sections (bfd *output_bfd, splt = htab->root.splt; if (splt && splt->size > 0) { - unsigned plt0, plt1, plt2; + unsigned plt[PLT_MAX_INSN_COUNT]; + size_t plt_insn_count = 3; bfd_vma got_addr = sgot->output_section->vma + sgot->output_offset; /* Note we force 16 byte alignment on the .got, so that @@ -2280,27 +2311,27 @@ or1k_elf_finish_dynamic_sections (bfd *output_bfd, bfd_vma pc = splt->output_section->vma + splt->output_offset; unsigned pa = ((got_addr >> 13) - (pc >> 13)) & 0x1fffff; unsigned po = got_addr & 0x1fff; - plt0 = OR1K_ADRP(12) | pa; - plt1 = OR1K_LWZ(15,12) | (po + 8); - plt2 = OR1K_LWZ(12,12) | (po + 4); + plt[0] = OR1K_ADRP(12) | pa; + plt[1] = OR1K_LWZ(15,12) | (po + 8); + plt[2] = OR1K_LWZ(12,12) | (po + 4); } else if (bfd_link_pic (info)) { - plt0 = OR1K_LWZ(15, 16) | 8; /* .got+8 */ - plt1 = OR1K_LWZ(12, 16) | 4; /* .got+4 */ - plt2 = OR1K_NOP; + plt[0] = OR1K_LWZ(15, 16) | 8; /* .got+8 */ + plt[1] = OR1K_LWZ(12, 16) | 4; /* .got+4 */ + plt[2] = OR1K_NOP; } else { unsigned ha = ((got_addr + 0x8000) >> 16) & 0xffff; unsigned lo = got_addr & 0xffff; - plt0 = OR1K_MOVHI(12) | ha; - plt1 = OR1K_LWZ(15,12) | (lo + 8); - plt2 = OR1K_LWZ(12,12) | (lo + 4); + plt[0] = OR1K_MOVHI(12) | ha; + plt[1] = OR1K_LWZ(15,12) | (lo + 8); + plt[2] = OR1K_LWZ(12,12) | (lo + 4); } - or1k_write_plt_entry (output_bfd, splt->contents, - plt0, plt1, plt2, OR1K_JR(15)); + or1k_write_plt_entry (output_bfd, splt->contents, OR1K_JR(15), + plt, plt_insn_count); elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4; } @@ -2343,7 +2374,8 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, if (h->plt.offset != (bfd_vma) -1) { - unsigned int plt0, plt1, plt2; + unsigned int plt[PLT_MAX_INSN_COUNT]; + size_t plt_insn_count = 3; asection *splt; asection *sgot; asection *srela; @@ -2355,6 +2387,7 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, bfd_vma got_offset; bfd_vma got_addr; Elf_Internal_Rela rela; + bfd_boolean large_plt_entry; /* This symbol has an entry in the procedure linkage table. Set it up. */ @@ -2372,10 +2405,13 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, corresponds to this symbol. This is the index of this symbol in all the symbols for which we are making plt entries. The first entry in the procedure linkage table is reserved. */ - plt_index = h->plt.offset / PLT_ENTRY_SIZE - 1; + plt_index = ((struct elf_or1k_link_hash_entry *) h)->plt_index; plt_addr = plt_base_addr + h->plt.offset; plt_reloc = plt_index * sizeof (Elf32_External_Rela); + large_plt_entry = (elf_or1k_plt_entry_size (plt_index) + == PLT_ENTRY_SIZE_LARGE); + /* Get the offset into the .got table of the entry that corresponds to this function. Each .got entry is 4 bytes. The first three are reserved. */ @@ -2387,27 +2423,57 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, { unsigned pa = ((got_addr >> 13) - (plt_addr >> 13)) & 0x1fffff; unsigned po = (got_addr & 0x1fff); - plt0 = OR1K_ADRP(12) | pa; - plt1 = OR1K_LWZ(12,12) | po; - plt2 = OR1K_ORI0(11) | plt_reloc; + plt[0] = OR1K_ADRP(12) | pa; + plt[1] = OR1K_LWZ(12,12) | po; + plt[2] = OR1K_ORI0(11) | plt_reloc; } else if (bfd_link_pic (info)) { - plt0 = OR1K_LWZ(12,16) | got_offset; - plt1 = OR1K_ORI0(11) | plt_reloc; - plt2 = OR1K_NOP; + if (large_plt_entry) + { + unsigned gotha = ((got_offset + 0x8000) >> 16) & 0xffff; + unsigned got = got_offset & 0xffff; + unsigned pltrelhi = (plt_reloc >> 16) & 0xffff; + unsigned pltrello = plt_reloc & 0xffff; + + plt[0] = OR1K_MOVHI(12) | gotha; + plt[1] = OR1K_ADD(12,12,16); + plt[2] = OR1K_LWZ(12,12) | got; + plt[3] = OR1K_MOVHI(11) | pltrelhi; + plt[4] = OR1K_ORI(11,11) | pltrello; + plt_insn_count = 5; + } + else + { + plt[0] = OR1K_LWZ(12,16) | got_offset; + plt[1] = OR1K_ORI0(11) | plt_reloc; + plt[2] = OR1K_NOP; + } } else { unsigned ha = ((got_addr + 0x8000) >> 16) & 0xffff; unsigned lo = got_addr & 0xffff; - plt0 = OR1K_MOVHI(12) | ha; - plt1 = OR1K_LWZ(12,12) | lo; - plt2 = OR1K_ORI0(11) | plt_reloc; + plt[0] = OR1K_MOVHI(12) | ha; + plt[1] = OR1K_LWZ(12,12) | lo; + plt[2] = OR1K_ORI0(11) | plt_reloc; + } + + /* For large code model we fixup the non-PIC PLT relocation instructions + here. */ + if (large_plt_entry && !bfd_link_pic (info)) + { + unsigned pltrelhi = (plt_reloc >> 16) & 0xffff; + unsigned pltrello = plt_reloc & 0xffff; + + plt[2] = OR1K_MOVHI(11) | pltrelhi; + plt[3] = OR1K_ORI(11,11) | pltrello; + plt[4] = OR1K_NOP; + plt_insn_count = 5; } or1k_write_plt_entry (output_bfd, splt->contents + h->plt.offset, - plt0, plt1, plt2, OR1K_JR(12)); + OR1K_JR(12), plt, plt_insn_count); /* Fill in the entry in the global offset table. */ bfd_put_32 (output_bfd, plt_addr, sgot->contents + got_offset); @@ -2699,11 +2765,16 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, bfd_link_pic (info), h)) { asection *s = htab->root.splt; + bfd_vma plt_index; + + /* Track the index of our plt entry for use in calculating size. */ + plt_index = htab->plt_count++; + ((struct elf_or1k_link_hash_entry *) h)->plt_index = plt_index; /* If this is the first .plt entry, make room for the special first entry. */ if (s->size == 0) - s->size = PLT_ENTRY_SIZE; + s->size = elf_or1k_plt_entry_size (plt_index); h->plt.offset = s->size; @@ -2720,7 +2791,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) } /* Make room for this entry. */ - s->size += PLT_ENTRY_SIZE; + s->size += elf_or1k_plt_entry_size (plt_index); /* We also need to make an entry in the .got.plt section, which will be placed in the .got section by the linker script. */ diff --git a/ld/testsuite/ld-or1k/gotha1.dd b/ld/testsuite/ld-or1k/gotha1.dd new file mode 100644 index 00000000000..0ad1f8f5399 --- /dev/null +++ b/ld/testsuite/ld-or1k/gotha1.dd @@ -0,0 +1,34 @@ + +.*\.x: file format elf32-or1k + + +Disassembly of section \.plt: + +[0-9a-f]+ <\.plt>: + +[0-9a-f]+: 19 80 00 00 l\.movhi r12,0x0 + +[0-9a-f]+: 85 ec [0-9a-f]+ [0-9a-f]+ l\.lwz r15,[0-9]+\(r12\) + +[0-9a-f]+: 44 00 78 00 l\.jr r15 + +[0-9a-f]+: 85 8c [0-9a-f]+ [0-9a-f]+ l\.lwz r12,[0-9]+\(r12\) + +[0-9a-f]+: 19 80 00 00 l\.movhi r12,0x0 + +[0-9a-f]+: 85 8c [0-9a-f]+ [0-9a-f]+ l\.lwz r12,[0-9]+\(r12\) + +[0-9a-f]+: 44 00 60 00 l\.jr r12 + +[0-9a-f]+: a9 60 00 00 l\.ori r11,r0,0x0 + +Disassembly of section \.text: + +[0-9a-f]+ <_start>: + +[0-9a-f]+: 9c 21 ff fc l\.addi r1,r1,-4 + +[0-9a-f]+: d4 01 48 00 l\.sw 0\(r1\),r9 + +[0-9a-f]+: 04 00 00 02 l\.jal [0-9a-f]+ <_start\+0x10> + +[0-9a-f]+: 1a 60 00 00 l\.movhi r19,0x0 + +[0-9a-f]+: aa 73 [0-9a-f]+ [0-9a-f]+ l\.ori r19,r19,0x[0-9a-f]+ + +[0-9a-f]+: e2 73 48 00 l\.add r19,r19,r9 + +[0-9a-f]+: 1a 20 00 00 l\.movhi r17,0x0 + +[0-9a-f]+: e2 31 98 00 l\.add r17,r17,r19 + +[0-9a-f]+: 86 31 00 10 l\.lwz r17,16\(r17\) + +[0-9a-f]+: 84 71 00 00 l\.lwz r3,0\(r17\) + +[0-9a-f]+: 07 ff ff f2 l\.jal [0-9a-f]+ <\.plt\+0x10> + +[0-9a-f]+: 15 00 00 00 l\.nop 0x0 + +[0-9a-f]+: 85 21 00 00 l\.lwz r9,0\(r1\) + +[0-9a-f]+: 44 00 48 00 l\.jr r9 + +[0-9a-f]+: 9c 21 00 04 l\.addi r1,r1,4 diff --git a/ld/testsuite/ld-or1k/gotha1.s b/ld/testsuite/ld-or1k/gotha1.s new file mode 100644 index 00000000000..42b16db425c --- /dev/null +++ b/ld/testsuite/ld-or1k/gotha1.s @@ -0,0 +1,24 @@ + .data + .p2align 16 + + .text + .globl _start +_start: + l.addi r1, r1, -4 + l.sw 0(r1), r9 + + l.jal 8 + l.movhi r19, gotpchi(_GLOBAL_OFFSET_TABLE_-4) + l.ori r19, r19, gotpclo(_GLOBAL_OFFSET_TABLE_+0) + l.add r19, r19, r9 + + l.movhi r17, gotha(x) + l.add r17, r17, r19 + l.lwz r17, got(x)(r17) + l.lwz r3, 0(r17) + + l.jal plt(func) + l.nop + l.lwz r9, 0(r1) + l.jr r9 + l.addi r1, r1, 4 diff --git a/ld/testsuite/ld-or1k/gotha2.dd b/ld/testsuite/ld-or1k/gotha2.dd new file mode 100644 index 00000000000..fe09da5466b --- /dev/null +++ b/ld/testsuite/ld-or1k/gotha2.dd @@ -0,0 +1,21 @@ + +.*\.x: file format elf32-or1k + + +Disassembly of section \.text: + +[0-9a-f]+ : + +[0-9a-f]+: 9c 21 ff f8 l\.addi r1,r1,-8 + +[0-9a-f]+: d4 01 80 00 l\.sw 0\(r1\),r16 + +[0-9a-f]+: d4 01 48 04 l\.sw 4\(r1\),r9 + +[0-9a-f]+: 04 00 [0-9a-f]+ [0-9a-f]+ l\.jal [0-9a-f]+ + +[0-9a-f]+: 1a 00 00 00 l\.movhi r16,0x0 + +[0-9a-f]+: aa 10 [0-9a-f]+ [0-9a-f]+ l\.ori r16,r16,0x[0-9a-f]+ + +[0-9a-f]+: e2 10 48 00 l\.add r16,r16,r9 + +[0-9a-f]+: 1a 20 00 00 l\.movhi r17,0x0 + +[0-9a-f]+: e2 31 80 00 l\.add r17,r17,r16 + +[0-9a-f]+: 86 31 00 0c l\.lwz r17,12\(r17\) + +[0-9a-f]+: 85 21 00 04 l\.lwz r9,4\(r1\) + +[0-9a-f]+: 86 01 00 00 l\.lwz r16,0\(r1\) + +[0-9a-f]+: 44 00 48 00 l\.jr r9 + +[0-9a-f]+: 9c 21 00 08 l\.addi r1,r1,8 diff --git a/ld/testsuite/ld-or1k/gotha2.s b/ld/testsuite/ld-or1k/gotha2.s new file mode 100644 index 00000000000..164b282f2dd --- /dev/null +++ b/ld/testsuite/ld-or1k/gotha2.s @@ -0,0 +1,22 @@ + .section .text + .align 4 + .global test + .type test, @function +test: + l.addi r1, r1, -8 + l.sw 0(r1), r16 + l.sw 4(r1), r9 + + l.jal 8 + l.movhi r16, gotpchi(_GLOBAL_OFFSET_TABLE_-4) + l.ori r16, r16, gotpclo(_GLOBAL_OFFSET_TABLE_+0) + l.add r16, r16, r9 + + l.movhi r17, gotha(i) + l.add r17, r17, r16 + l.lwz r17, got(i)(r17) + + l.lwz r9, 4(r1) + l.lwz r16, 0(r1) + l.jr r9 + l.addi r1, r1, 8 diff --git a/ld/testsuite/ld-or1k/or1k.exp b/ld/testsuite/ld-or1k/or1k.exp index 24cdbe5fbf3..9cebc49b946 100644 --- a/ld/testsuite/ld-or1k/or1k.exp +++ b/ld/testsuite/ld-or1k/or1k.exp @@ -53,6 +53,14 @@ set or1kplttests { "" {plt1.s} {{objdump -dr plt1.x.dd}} "plt1.x"} + {"gotha exec plt" "tmpdir/libpltlib.so" "" + "" {gotha1.s} + {{objdump -dr gotha1.dd}} + "gotha1.x"} + {"gotha -fpic -shared" "-fpic -shared" "" + "" {gotha2.s} + {{objdump -dr gotha2.dd}} + "gotha2.x"} } # Not implemented yet diff --git a/ld/testsuite/ld-or1k/pltlib.s b/ld/testsuite/ld-or1k/pltlib.s index baf76ca1af7..8b4d7ba48fd 100644 --- a/ld/testsuite/ld-or1k/pltlib.s +++ b/ld/testsuite/ld-or1k/pltlib.s @@ -1,5 +1,6 @@ .section .data .globl x, y + .size x, 4 x: .long 33 y: .long 44 -- 2.25.1 ================================================ FILE: package/binutils/2.32/0014-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch ================================================ From c3003947e4bad18faea4337fd2073feeb30ee078 Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Wed, 9 Jun 2021 17:28:27 +0200 Subject: [PATCH] bfd/elf32-or1k: fix building with gcc version < 5 Gcc version >= 5 has standard C mode not set to -std=gnu11, so if we use an old compiler(i.e. gcc 4.9) build fails on: ``` elf32-or1k.c:2251:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode for (size_t i = 0; i < insn_count; i++) ^ ``` So let's declare `size_t i` at the top of the function instead of inside for loop. Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 4ae7f324d33..32063ab0289 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -2244,9 +2244,10 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj, { unsigned nodelay = elf_elfheader (output_bfd)->e_flags & EF_OR1K_NODELAY; unsigned output_insns[PLT_MAX_INSN_COUNT]; + size_t i; /* Copy instructions into the output buffer. */ - for (size_t i = 0; i < insn_count; i++) + for (i = 0; i < insn_count; i++) output_insns[i] = insns[i]; /* Honor the no-delay-slot setting. */ @@ -2277,7 +2278,7 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj, } /* Write out the output buffer. */ - for (size_t i = 0; i < (insn_count+1); i++) + for (i = 0; i < (insn_count+1); i++) bfd_put_32 (output_bfd, output_insns[i], contents + (i*4)); } -- 2.25.1 ================================================ FILE: package/binutils/2.32/0015-or1k-fix-pc-relative-relocation-against-dynamic-on-P.patch ================================================ From 9af93e143a7fbdb75aa1ed37277f9250eb111628 Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Sat, 10 Jul 2021 17:57:34 +0200 Subject: [PATCH] or1k: fix pc-relative relocation against dynamic on PC relative 26 bit relocation When building openal we were seeing the assert failure: /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourcePausev /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourceStopv /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourceRewindv /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourcePlayv collect2: error: ld returned 1 exit status This happens because in R_OR1K_INSN_REL_26 case we can't reference local symbol as previously done but we need to make sure that calls to actual symbol always call the version of current object. bfd/Changelog: * elf32-or1k.c (or1k_elf_relocate_section): use a separate entry in switch case R_OR1K_INSN_REL_26 where we need to check for !SYMBOL_CALLS_LOCAL() instead of !SYMBOL_REFERENCES_LOCAL(). Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 4ae7f324d33..4f9092539f5 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -1543,6 +1543,18 @@ or1k_elf_relocate_section (bfd *output_bfd, break; case R_OR1K_INSN_REL_26: + /* For a non-shared link, these will reference plt or call the + version of actual object. */ + if (bfd_link_pic (info) && !SYMBOL_CALLS_LOCAL (info, h)) + { + _bfd_error_handler + (_("%pB: pc-relative relocation against dynamic symbol %s"), + input_bfd, name); + ret_val = FALSE; + bfd_set_error (bfd_error_bad_value); + } + break; + case R_OR1K_PCREL_PG21: case R_OR1K_LO13: case R_OR1K_SLO13: -- 2.25.1 ================================================ FILE: package/binutils/2.35.2/0001-sh-conf.patch ================================================ From ae50e875f4292c99b859cded1d036e401b6ddaec 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.32] Signed-off-by: Romain Naour [Thomas: rebase on top of 2.29, in which sh64 support was removed.] Signed-off-by: Thomas Petazzoni --- configure | 2 +- configure.ac | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 54d0339ab9e..c2f51ffcebb 100755 --- a/configure +++ b/configure @@ -3937,7 +3937,7 @@ case "${target}" in nvptx*-*-*) noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" ;; - sh-*-*) + sh*-*-*) case "${target}" in sh*-*-elf) ;; diff --git a/configure.ac b/configure.ac index a910c4fd6ba..a93d93c81c3 100644 --- a/configure.ac +++ b/configure.ac @@ -1178,7 +1178,7 @@ case "${target}" in nvptx*-*-*) noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" ;; - sh-*-*) + sh*-*-*) case "${target}" in sh*-*-elf) ;; -- 2.25.4 ================================================ FILE: package/binutils/2.35.2/0002-poison-system-directories.patch ================================================ From db405d1bc5607892ddb25433354b46d78e23b343 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.33.1] 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] Patch originally created by Mark Hatle, forward-ported to binutils 2.21 by Scott Garman. purpose: warn for uses of system directories when cross linking Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 2008-07-02 Joseph Myers ld/ * ld.h (args_type): Add error_poison_system_directories. * ld.texinfo (--error-poison-system-directories): Document. * ldfile.c (ldfile_add_library_path): Check command_line.error_poison_system_directories. * ldmain.c (main): Initialize command_line.error_poison_system_directories. * lexsup.c (enum option_values): Add OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. (ld_options): Add --error-poison-system-directories. (parse_args): Handle new option. 2007-06-13 Joseph Myers ld/ * config.in: Regenerate. * ld.h (args_type): Add poison_system_directories. * ld.texinfo (--no-poison-system-directories): Document. * ldfile.c (ldfile_add_library_path): Check command_line.poison_system_directories. * ldmain.c (main): Initialize command_line.poison_system_directories. * lexsup.c (enum option_values): Add OPTION_NO_POISON_SYSTEM_DIRECTORIES. (ld_options): Add --no-poison-system-directories. (parse_args): Handle new option. 2007-04-20 Joseph Myers Merge from Sourcery G++ binutils 2.17: 2007-03-20 Joseph Myers Based on patch by Mark Hatle . ld/ * 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, /usr/lib, /usr/local/lib or /usr/X11R6/lib. 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.texi | 12 ++++++++++++ ld/ldfile.c | 17 +++++++++++++++++ ld/ldlex.h | 2 ++ ld/ldmain.c | 2 ++ ld/lexsup.c | 21 +++++++++++++++++++++ 9 files changed, 89 insertions(+) diff --git a/ld/config.in b/ld/config.in index 2f4e5ea33e3..8fbb29682b2 100644 --- a/ld/config.in +++ b/ld/config.in @@ -40,6 +40,9 @@ language is requested. */ #undef ENABLE_NLS +/* Define to warn for use of native system library directories */ +#undef ENABLE_POISON_SYSTEM_DIRECTORIES + /* Additional extension a shared object might have. */ #undef EXTRA_SHLIB_EXTENSION diff --git a/ld/configure b/ld/configure index 6be5280621f..d62e7b12382 100755 --- a/ld/configure +++ b/ld/configure @@ -826,6 +826,7 @@ with_lib_path enable_targets enable_64_bit_bfd with_sysroot +enable_poison_system_directories enable_gold enable_got enable_compressed_debug_sections @@ -1493,6 +1494,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 + warn for use of native system library directories --enable-gold[=ARG] build gold [ARG={default,yes,no}] --enable-got= GOT handling scheme (target, single, negative, multigot) @@ -15814,7 +15817,18 @@ else fi +# Check whether --enable-poison-system-directories was given. +if test "${enable_poison_system_directories+set}" = set; then : + enableval=$enable_poison_system_directories; +else + enable_poison_system_directories=no +fi + +if test "x${enable_poison_system_directories}" = "xyes"; then +$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h + +fi # Check whether --enable-got was given. if test "${enable_got+set}" = set; then : diff --git a/ld/configure.ac b/ld/configure.ac index 172398ff847..b77f8510ca6 100644 --- a/ld/configure.ac +++ b/ld/configure.ac @@ -94,6 +94,16 @@ AC_SUBST(use_sysroot) AC_SUBST(TARGET_SYSTEM_ROOT) AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) +AC_ARG_ENABLE([poison-system-directories], + AS_HELP_STRING([--enable-poison-system-directories], + [warn for use of native system library directories]),, + [enable_poison_system_directories=no]) +if test "x${enable_poison_system_directories}" = "xyes"; then + AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], + [1], + [Define to warn for use of native system library directories]) +fi + 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. diff --git a/ld/ld.h b/ld/ld.h index 1790dc81a66..73f832eb169 100644 --- a/ld/ld.h +++ b/ld/ld.h @@ -166,6 +166,14 @@ typedef struct in the linker script. */ bfd_boolean force_group_allocation; + /* 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.texi b/ld/ld.texi index 2a93e9456ac..3eeb70607fd 100644 --- a/ld/ld.texi +++ b/ld/ld.texi @@ -2655,6 +2655,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 e39170b5d94..fadc248a140 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c @@ -117,6 +117,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline) new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL); else new_dirs->name = xstrdup (name); + +#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES + if (command_line.poison_system_directories + && ((!strncmp (name, "/lib", 4)) + || (!strncmp (name, "/usr/lib", 8)) + || (!strncmp (name, "/usr/local/lib", 14)) + || (!strncmp (name, "/usr/X11R6/lib", 14)))) + { + if (command_line.error_poison_system_directories) + einfo (_("%X%P: error: library search path \"%s\" is unsafe for " + "cross-compilation\n"), name); + else + einfo (_("%P: warning: library search path \"%s\" is unsafe for " + "cross-compilation\n"), name); + } +#endif + } /* Try to open a BFD for a lang_input_statement. */ diff --git a/ld/ldlex.h b/ld/ldlex.h index 5ea083ebeb3..417f9b858ce 100644 --- a/ld/ldlex.h +++ b/ld/ldlex.h @@ -155,6 +155,8 @@ enum option_values OPTION_NON_CONTIGUOUS_REGIONS, OPTION_NON_CONTIGUOUS_REGIONS_WARNINGS, OPTION_DEPENDENCY_FILE, + OPTION_NO_POISON_SYSTEM_DIRECTORIES, + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, }; /* The initial parser states. */ diff --git a/ld/ldmain.c b/ld/ldmain.c index 08be9030cb5..92dc16399eb 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -321,6 +321,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.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 diff --git a/ld/lexsup.c b/ld/lexsup.c index 6cab41cf5df..c497f36b148 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -572,6 +572,14 @@ static const struct ld_option ld_options[] = { {"no-print-map-discarded", no_argument, NULL, OPTION_NO_PRINT_MAP_DISCARDED}, '\0', NULL, N_("Do not show discarded sections in map file output"), TWO_DASHES }, + { {"no-poison-system-directories", no_argument, NULL, + 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}, + '\0', NULL, N_("Give an error for -L options using system directories"), + TWO_DASHES }, }; #define OPTION_COUNT ARRAY_SIZE (ld_options) @@ -584,6 +592,7 @@ parse_args (unsigned argc, char **argv) int ingroup = 0; char *default_dirlist = NULL; char *shortopts; + char *BR_paranoid_env; struct option *longopts; struct option *really_longopts; int last_optind; @@ -1591,6 +1600,14 @@ parse_args (unsigned argc, char **argv) } 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_PUSH_STATE: input_flags.pushed = xmemdup (&input_flags, sizeof (input_flags), @@ -1681,6 +1698,10 @@ parse_args (unsigned argc, char **argv) command_line.soname = NULL; } + BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH"); + if (BR_paranoid_env && strlen(BR_paranoid_env) > 0) + command_line.error_poison_system_directories = TRUE; + while (ingroup) { einfo (_("%P: missing --end-group; added as last command line option\n")); -- 2.25.4 ================================================ FILE: package/binutils/2.35.2/0003-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch ================================================ From baf313f84b106a5a29f01796afd857e69abf8b08 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:02:14 +0900 Subject: [PATCH] or1k: Fix issue with plt link failure for local calls When building protobuf we were seeing the assert failure: /home/giuliobenetti/git/upstream/or1k-binutils-2.36.1/host/lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: BFD (GNU Binutils) 2.36.1 assertion fail elf32-or1k.c:2377 /home/giuliobenetti/git/upstream/or1k-binutils-2.36.1/host/lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: BFD (GNU Binutils) 2.36.1 assertion fail elf32-or1k.c:2377 /home/giuliobenetti/git/upstream/or1k-binutils-2.36.1/host/lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: BFD (GNU Binutils) 2.36.1 assertion fail elf32-or1k.c:2377 collect2: error: ld returned 1 exit status This failure happens while writing out PLT entries, there is a check "BFD_ASSERT (h->dynindx != -1)" to confirm all plt entries have dynamic symbol attributes. This was failing for symbols that were "forced_local" in previous linking code. The fix adds logic to or1k_elf_adjust_dynamic_symbol to identify "forced_local" symbols and exclude them from the the PLT. bfd/ChangeLog: PR 27624 * elf32-or1k.c (or1k_elf_adjust_dynamic_symbol): Change condition used to cleanup plt entries to cleanup forced local entries. Cc: Giulio Benetti Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 7c02d004cc7..bbfa2bfe614 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -2568,11 +2568,10 @@ or1k_elf_adjust_dynamic_symbol (struct bfd_link_info *info, if (h->type == STT_FUNC || h->needs_plt) { - if (! bfd_link_pic (info) - && !h->def_dynamic - && !h->ref_dynamic - && h->root.type != bfd_link_hash_undefweak - && h->root.type != bfd_link_hash_undefined) + if (h->plt.refcount <= 0 + || (SYMBOL_CALLS_LOCAL (info, h) + || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT + && h->root.type == bfd_link_hash_undefweak))) { /* This case can occur if we saw a PLT reloc in an input file, but the symbol was never referred to by a dynamic -- 2.25.1 ================================================ FILE: package/binutils/2.35.2/0004-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch ================================================ From c67656e248d6dadaa2729975a17c8dd03afe48d0 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:02:15 +0900 Subject: [PATCH] or1k: Implement relocation R_OR1K_GOT_AHI16 for gotha() The gotha() relocation mnemonic will be outputted by OpenRISC GCC when using the -mcmodel=large option. This relocation is used along with got() to generate 32-bit GOT offsets. This increases the previous GOT offset limit from the previous 16-bit (64K) limit. This is needed on large binaries where the GOT grows larger than 64k. bfd/ChangeLog: PR 21464 * bfd-in2.h: Add BFD_RELOC_OR1K_GOT_AHI16 relocation. * elf32-or1k.c (or1k_elf_howto_table, or1k_reloc_map): Likewise. (or1k_final_link_relocate, or1k_elf_relocate_section, or1k_elf_check_relocs): Likewise. * libbfd.h (bfd_reloc_code_real_names): Likewise. * reloc.c: Likewise. cpu/ChangeLog: PR 21464 * or1k.opc (or1k_imm16_relocs, parse_reloc): Define parse logic for gotha() relocation. include/ChangeLog: PR 21464 * elf/or1k.h (elf_or1k_reloc_type): Define R_OR1K_GOT_AHI16 number. opcodes/ChangeLog: PR 21464 * or1k-asm.c: Regenerate. gas/ChangeLog: PR 21464 * testsuite/gas/or1k/reloc-1.s: Add test for new relocation. * testsuite/gas/or1k/reloc-1.d: Add test result for new relocation. Cc: Giulio Benetti fixup reloc, add tests Signed-off-by: Giulio Benetti --- bfd/bfd-in2.h | 1 + bfd/elf32-or1k.c | 21 ++++++++++++++++++++- bfd/libbfd.h | 1 + bfd/reloc.c | 2 ++ cpu/or1k.opc | 7 ++++++- gas/testsuite/gas/or1k/reloc-1.d | 4 +++- gas/testsuite/gas/or1k/reloc-1.s | 4 ++++ include/elf/or1k.h | 1 + opcodes/or1k-asm.c | 7 ++++++- 9 files changed, 44 insertions(+), 4 deletions(-) diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index df6f9f45673..ab861395e93 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -5041,6 +5041,7 @@ then it may be truncated to 8 bits. */ BFD_RELOC_OR1K_TLS_TPOFF, BFD_RELOC_OR1K_TLS_DTPOFF, BFD_RELOC_OR1K_TLS_DTPMOD, + BFD_RELOC_OR1K_GOT_AHI16, /* H8 elf Relocations. */ BFD_RELOC_H8_DIR16A8, diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index bbfa2bfe614..8e395827123 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -808,6 +808,20 @@ static reloc_howto_type or1k_elf_howto_table[] = 0, /* Source Mask. */ 0x03ffffff, /* Dest Mask. */ TRUE), /* PC relative offset? */ + + HOWTO (R_OR1K_GOT_AHI16, /* type */ + 16, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_OR1K_GOT_AHI16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0xffff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; /* Map BFD reloc types to Or1k ELF reloc types. */ @@ -871,6 +885,7 @@ static const struct or1k_reloc_map or1k_reloc_map[] = { BFD_RELOC_OR1K_TLS_IE_LO13, R_OR1K_TLS_IE_LO13 }, { BFD_RELOC_OR1K_SLO13, R_OR1K_SLO13 }, { BFD_RELOC_OR1K_PLTA26, R_OR1K_PLTA26 }, + { BFD_RELOC_OR1K_GOT_AHI16, R_OR1K_GOT_AHI16 }, }; /* tls_type is a mask used to track how each symbol is accessed, @@ -1113,6 +1128,7 @@ or1k_final_link_relocate (reloc_howto_type *howto, bfd *input_bfd, switch (howto->type) { case R_OR1K_AHI16: + case R_OR1K_GOT_AHI16: case R_OR1K_GOTOFF_AHI16: case R_OR1K_TLS_IE_AHI16: case R_OR1K_TLS_LE_AHI16: @@ -1375,6 +1391,7 @@ or1k_elf_relocate_section (bfd *output_bfd, } break; + case R_OR1K_GOT_AHI16: case R_OR1K_GOT16: case R_OR1K_GOT_PG21: case R_OR1K_GOT_LO13: @@ -1466,7 +1483,8 @@ or1k_elf_relocate_section (bfd *output_bfd, /* The GOT_PG21 and GOT_LO13 relocs are pc-relative, while the GOT16 reloc is GOT relative. */ relocation = got_base + off; - if (r_type == R_OR1K_GOT16) + if (r_type == R_OR1K_GOT16 + || r_type == R_OR1K_GOT_AHI16) relocation -= got_sym_value; /* Addend should be zero. */ @@ -1992,6 +2010,7 @@ or1k_elf_check_relocs (bfd *abfd, } break; + case R_OR1K_GOT_AHI16: case R_OR1K_GOT16: case R_OR1K_GOT_PG21: case R_OR1K_GOT_LO13: diff --git a/bfd/libbfd.h b/bfd/libbfd.h index b97534fc9fe..795c9b9d27f 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -2755,6 +2755,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_OR1K_TLS_TPOFF", "BFD_RELOC_OR1K_TLS_DTPOFF", "BFD_RELOC_OR1K_TLS_DTPMOD", + "BFD_RELOC_OR1K_GOT_AHI16", "BFD_RELOC_H8_DIR16A8", "BFD_RELOC_H8_DIR16R8", "BFD_RELOC_H8_DIR24A8", diff --git a/bfd/reloc.c b/bfd/reloc.c index 9aba84ca81e..1e021febef2 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -6175,6 +6175,8 @@ ENUMX BFD_RELOC_OR1K_GOTPC_HI16 ENUMX BFD_RELOC_OR1K_GOTPC_LO16 +ENUMX + BFD_RELOC_OR1K_GOT_AHI16 ENUMX BFD_RELOC_OR1K_GOT16 ENUMX diff --git a/cpu/or1k.opc b/cpu/or1k.opc index f0adcbb00a5..5d20a1f33a7 100644 --- a/cpu/or1k.opc +++ b/cpu/or1k.opc @@ -193,7 +193,7 @@ static const bfd_reloc_code_real_type or1k_imm16_relocs[][6] = { BFD_RELOC_OR1K_GOT_LO13, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, - BFD_RELOC_UNUSED }, + BFD_RELOC_OR1K_GOT_AHI16 }, { BFD_RELOC_OR1K_GOTPC_LO16, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, @@ -296,6 +296,11 @@ parse_reloc (const char **strp) str += 5; cls = RCLASS_TPOFF; } + else if (strncasecmp (str, "got", 3) == 0) + { + str += 3; + cls = RCLASS_GOT; + } if (strncasecmp (str, "hi(", 3) == 0) { diff --git a/gas/testsuite/gas/or1k/reloc-1.d b/gas/testsuite/gas/or1k/reloc-1.d index d1bcf5608bb..3a001c4ed99 100644 --- a/gas/testsuite/gas/or1k/reloc-1.d +++ b/gas/testsuite/gas/or1k/reloc-1.d @@ -68,5 +68,7 @@ OFFSET TYPE VALUE 000000ec R_OR1K_LO13 x 000000f0 R_OR1K_GOT_LO13 x 000000f4 R_OR1K_SLO13 x - +000000f8 R_OR1K_GOT_AHI16 x +000000fc R_OR1K_GOT_AHI16 x +00000100 R_OR1K_GOT_AHI16 x diff --git a/gas/testsuite/gas/or1k/reloc-1.s b/gas/testsuite/gas/or1k/reloc-1.s index e76abef6532..562609aa869 100644 --- a/gas/testsuite/gas/or1k/reloc-1.s +++ b/gas/testsuite/gas/or1k/reloc-1.s @@ -74,3 +74,7 @@ l.lbz r5,po(x)(r3) l.lbz r5,gotpo(x)(r3) l.sb po(x)(r3),r6 + + l.movhi r4,gotha(x) + l.ori r3,r4,gotha(x) + l.addi r3,r4,gotha(x) diff --git a/include/elf/or1k.h b/include/elf/or1k.h index a215ef5c17e..dff37d875f2 100644 --- a/include/elf/or1k.h +++ b/include/elf/or1k.h @@ -77,6 +77,7 @@ START_RELOC_NUMBERS (elf_or1k_reloc_type) RELOC_NUMBER (R_OR1K_TLS_IE_LO13, 51) RELOC_NUMBER (R_OR1K_SLO13, 52) RELOC_NUMBER (R_OR1K_PLTA26, 53) + RELOC_NUMBER (R_OR1K_GOT_AHI16, 54) END_RELOC_NUMBERS (R_OR1K_max) #define EF_OR1K_NODELAY (1UL << 0) diff --git a/opcodes/or1k-asm.c b/opcodes/or1k-asm.c index 5f3c6c74b12..e0c49b3b8cd 100644 --- a/opcodes/or1k-asm.c +++ b/opcodes/or1k-asm.c @@ -177,7 +177,7 @@ static const bfd_reloc_code_real_type or1k_imm16_relocs[][6] = { BFD_RELOC_OR1K_GOT_LO13, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, - BFD_RELOC_UNUSED }, + BFD_RELOC_OR1K_GOT_AHI16 }, { BFD_RELOC_OR1K_GOTPC_LO16, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, @@ -280,6 +280,11 @@ parse_reloc (const char **strp) str += 5; cls = RCLASS_TPOFF; } + else if (strncasecmp (str, "got", 3) == 0) + { + str += 3; + cls = RCLASS_GOT; + } if (strncasecmp (str, "hi(", 3) == 0) { -- 2.25.1 ================================================ FILE: package/binutils/2.35.2/0005-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch ================================================ From 097b83a1c9c694a14e6081cee034bf24f16875c1 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:02:16 +0900 Subject: [PATCH] or1k: Avoid R_OR1K_GOT16 overflow failures in presence of R_OR1K_GOT_AHI16 Now that we support R_OR1K_GOT_AHI16 we can relax the R_OR1K_GOT16 overflow validation check if the section has R_OR1K_GOT_AHI16. We cannot simple disable R_OR1K_GOT16 overflow validation as there will still be binaries that will have only R_OR1K_GOT16. The R_OR1K_GOT_AHI16 relocation will only be added by GCC when building with the option -mcmodel=large. This assumes that R_OR1K_GOT_AHI16 will come before R_OR1K_GOT16, which is the code pattern that will be emitted by GCC. bfd/ChangeLog: PR 21464 * elf32-or1k.c (or1k_elf_relocate_section): Relax R_OR1K_GOT16 overflow check if we have R_OR1K_GOT_AHI16 followed by R_OR1K_GOT16. Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 8e395827123..9f315bfda99 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -1280,6 +1280,7 @@ or1k_elf_relocate_section (bfd *output_bfd, asection *sgot, *splt; bfd_vma plt_base, got_base, got_sym_value; bfd_boolean ret_val = TRUE; + bfd_boolean saw_gotha = FALSE; if (htab == NULL) return FALSE; @@ -1487,6 +1488,16 @@ or1k_elf_relocate_section (bfd *output_bfd, || r_type == R_OR1K_GOT_AHI16) relocation -= got_sym_value; + if (r_type == R_OR1K_GOT_AHI16) + saw_gotha = TRUE; + + /* If we have a R_OR1K_GOT16 followed by a R_OR1K_GOT_AHI16 + relocation we assume the code is doing the right thing to avoid + overflows. Here we mask the lower 16-bit of the relocation to + avoid overflow validation failures. */ + if (r_type == R_OR1K_GOT16 && saw_gotha) + relocation &= 0xffff; + /* Addend should be zero. */ if (rel->r_addend != 0) { -- 2.25.1 ================================================ FILE: package/binutils/2.35.2/0006-or1k-Support-large-plt_relocs-when-generating-plt-en.patch ================================================ From c87692eb894b4b86eced7b7ba205f9bf27c2c213 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:02:17 +0900 Subject: [PATCH] or1k: Support large plt_relocs when generating plt entries The current PLT generation code will generate invalid code when the PLT relocation offset exceeds 64k. This fixes the issue by detecting large plt_reloc offsets and generare code sequences to create larger plt relocations. The "large" plt code needs 2 extra instructions to create 32-bit offsets. bfd/ChangeLog: PR 27746 * elf32-or1k.c (PLT_ENTRY_SIZE_LARGE, PLT_MAX_INSN_COUNT, OR1K_ADD, OR1K_ORI): New macros to help with plt creation. (elf_or1k_link_hash_table): New field plt_count. (elf_or1k_link_hash_entry): New field plt_index. (elf_or1k_plt_entry_size): New function. (or1k_write_plt_entry): Update to support variable size PLTs. (or1k_elf_finish_dynamic_sections): Use new or1k_write_plt_entry API. (or1k_elf_finish_dynamic_symbol): Update to write large PLTs when needed. (allocate_dynrelocs): Use elf_or1k_plt_entry_size to account for PLT size. ld/ChangeLog: PR 27746 testsuite/ld-or1k/or1k.exp (or1kplttests): Add tests for linking along with gotha() relocations. testsuite/ld-or1k/gotha1.dd: New file. testsuite/ld-or1k/gotha1.s: New file. testsuite/ld-or1k/gotha2.dd: New file. testsuite/ld-or1k/gotha2.s: New file testsuite/ld-or1k/pltlib.s (x): Define size to avoid link failure. Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 149 ++++++++++++++++++++++++--------- ld/testsuite/ld-or1k/gotha1.dd | 34 ++++++++ ld/testsuite/ld-or1k/gotha1.s | 24 ++++++ ld/testsuite/ld-or1k/gotha2.dd | 21 +++++ ld/testsuite/ld-or1k/gotha2.s | 22 +++++ ld/testsuite/ld-or1k/or1k.exp | 8 ++ ld/testsuite/ld-or1k/pltlib.s | 1 + 7 files changed, 220 insertions(+), 39 deletions(-) create mode 100644 ld/testsuite/ld-or1k/gotha1.dd create mode 100644 ld/testsuite/ld-or1k/gotha1.s create mode 100644 ld/testsuite/ld-or1k/gotha2.dd create mode 100644 ld/testsuite/ld-or1k/gotha2.s diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 9f315bfda99..7a14eaa3a46 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -30,10 +30,14 @@ #define N_ONES(X) (((bfd_vma)2 << (X)) - 1) #define PLT_ENTRY_SIZE 16 +#define PLT_ENTRY_SIZE_LARGE (6*4) +#define PLT_MAX_INSN_COUNT 6 #define OR1K_MOVHI(D) (0x18000000 | (D << 21)) #define OR1K_ADRP(D) (0x08000000 | (D << 21)) #define OR1K_LWZ(D,A) (0x84000000 | (D << 21) | (A << 16)) +#define OR1K_ADD(D,A,B) (0xE0000000 | (D << 21) | (A << 16) | (B << 11)) +#define OR1K_ORI(D,A) (0xA8000000 | (D << 21) | (A << 16)) #define OR1K_ORI0(D) (0xA8000000 | (D << 21)) #define OR1K_JR(B) (0x44000000 | (B << 11)) #define OR1K_NOP 0x15000000 @@ -907,6 +911,8 @@ struct elf_or1k_link_hash_entry { struct elf_link_hash_entry root; + /* For calculating PLT size. */ + bfd_vma plt_index; /* Track type of TLS access. */ unsigned char tls_type; }; @@ -934,9 +940,20 @@ struct elf_or1k_link_hash_table /* Small local sym to section mapping cache. */ struct sym_cache sym_sec; + bfd_vma plt_count; bfd_boolean saw_plta; }; +static size_t +elf_or1k_plt_entry_size (bfd_vma plt_index) +{ + bfd_vma plt_reloc; + + plt_reloc = plt_index * sizeof (Elf32_External_Rela); + + return (plt_reloc > 0xffff) ? PLT_ENTRY_SIZE_LARGE : PLT_ENTRY_SIZE; +} + /* Get the ELF linker hash table from a link_info structure. */ #define or1k_elf_hash_table(p) \ (elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) \ @@ -2224,33 +2241,46 @@ or1k_elf_check_relocs (bfd *abfd, } static void -or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insn1, - unsigned insn2, unsigned insn3, unsigned insnj) +or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj, + unsigned insns[], size_t insn_count) { unsigned nodelay = elf_elfheader (output_bfd)->e_flags & EF_OR1K_NODELAY; - unsigned insn4; + unsigned output_insns[PLT_MAX_INSN_COUNT]; + + /* Copy instructions into the output buffer. */ + for (size_t i = 0; i < insn_count; i++) + output_insns[i] = insns[i]; /* Honor the no-delay-slot setting. */ - if (insn3 == OR1K_NOP) + if (insns[insn_count-1] == OR1K_NOP) { - insn4 = insn3; + unsigned slot1, slot2; + if (nodelay) - insn3 = insnj; + slot1 = insns[insn_count-2], slot2 = insnj; else - insn3 = insn2, insn2 = insnj; + slot1 = insnj, slot2 = insns[insn_count-2]; + + output_insns[insn_count-2] = slot1; + output_insns[insn_count-1] = slot2; + output_insns[insn_count] = OR1K_NOP; } else { + unsigned slot1, slot2; + if (nodelay) - insn4 = insnj; + slot1 = insns[insn_count-1], slot2 = insnj; else - insn4 = insn3, insn3 = insnj; + slot1 = insnj, slot2 = insns[insn_count-1]; + + output_insns[insn_count-1] = slot1; + output_insns[insn_count] = slot2; } - bfd_put_32 (output_bfd, insn1, contents); - bfd_put_32 (output_bfd, insn2, contents + 4); - bfd_put_32 (output_bfd, insn3, contents + 8); - bfd_put_32 (output_bfd, insn4, contents + 12); + /* Write out the output buffer. */ + for (size_t i = 0; i < (insn_count+1); i++) + bfd_put_32 (output_bfd, output_insns[i], contents + (i*4)); } /* Finish up the dynamic sections. */ @@ -2317,7 +2347,8 @@ or1k_elf_finish_dynamic_sections (bfd *output_bfd, splt = htab->root.splt; if (splt && splt->size > 0) { - unsigned plt0, plt1, plt2; + unsigned plt[PLT_MAX_INSN_COUNT]; + size_t plt_insn_count = 3; bfd_vma got_addr = sgot->output_section->vma + sgot->output_offset; /* Note we force 16 byte alignment on the .got, so that @@ -2328,27 +2359,27 @@ or1k_elf_finish_dynamic_sections (bfd *output_bfd, bfd_vma pc = splt->output_section->vma + splt->output_offset; unsigned pa = ((got_addr >> 13) - (pc >> 13)) & 0x1fffff; unsigned po = got_addr & 0x1fff; - plt0 = OR1K_ADRP(12) | pa; - plt1 = OR1K_LWZ(15,12) | (po + 8); - plt2 = OR1K_LWZ(12,12) | (po + 4); + plt[0] = OR1K_ADRP(12) | pa; + plt[1] = OR1K_LWZ(15,12) | (po + 8); + plt[2] = OR1K_LWZ(12,12) | (po + 4); } else if (bfd_link_pic (info)) { - plt0 = OR1K_LWZ(15, 16) | 8; /* .got+8 */ - plt1 = OR1K_LWZ(12, 16) | 4; /* .got+4 */ - plt2 = OR1K_NOP; + plt[0] = OR1K_LWZ(15, 16) | 8; /* .got+8 */ + plt[1] = OR1K_LWZ(12, 16) | 4; /* .got+4 */ + plt[2] = OR1K_NOP; } else { unsigned ha = ((got_addr + 0x8000) >> 16) & 0xffff; unsigned lo = got_addr & 0xffff; - plt0 = OR1K_MOVHI(12) | ha; - plt1 = OR1K_LWZ(15,12) | (lo + 8); - plt2 = OR1K_LWZ(12,12) | (lo + 4); + plt[0] = OR1K_MOVHI(12) | ha; + plt[1] = OR1K_LWZ(15,12) | (lo + 8); + plt[2] = OR1K_LWZ(12,12) | (lo + 4); } - or1k_write_plt_entry (output_bfd, splt->contents, - plt0, plt1, plt2, OR1K_JR(15)); + or1k_write_plt_entry (output_bfd, splt->contents, OR1K_JR(15), + plt, plt_insn_count); elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4; } @@ -2391,7 +2422,8 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, if (h->plt.offset != (bfd_vma) -1) { - unsigned int plt0, plt1, plt2; + unsigned int plt[PLT_MAX_INSN_COUNT]; + size_t plt_insn_count = 3; asection *splt; asection *sgot; asection *srela; @@ -2403,6 +2435,7 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, bfd_vma got_offset; bfd_vma got_addr; Elf_Internal_Rela rela; + bfd_boolean large_plt_entry; /* This symbol has an entry in the procedure linkage table. Set it up. */ @@ -2420,10 +2453,13 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, corresponds to this symbol. This is the index of this symbol in all the symbols for which we are making plt entries. The first entry in the procedure linkage table is reserved. */ - plt_index = h->plt.offset / PLT_ENTRY_SIZE - 1; + plt_index = ((struct elf_or1k_link_hash_entry *) h)->plt_index; plt_addr = plt_base_addr + h->plt.offset; plt_reloc = plt_index * sizeof (Elf32_External_Rela); + large_plt_entry = (elf_or1k_plt_entry_size (plt_index) + == PLT_ENTRY_SIZE_LARGE); + /* Get the offset into the .got table of the entry that corresponds to this function. Each .got entry is 4 bytes. The first three are reserved. */ @@ -2435,27 +2471,57 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, { unsigned pa = ((got_addr >> 13) - (plt_addr >> 13)) & 0x1fffff; unsigned po = (got_addr & 0x1fff); - plt0 = OR1K_ADRP(12) | pa; - plt1 = OR1K_LWZ(12,12) | po; - plt2 = OR1K_ORI0(11) | plt_reloc; + plt[0] = OR1K_ADRP(12) | pa; + plt[1] = OR1K_LWZ(12,12) | po; + plt[2] = OR1K_ORI0(11) | plt_reloc; } else if (bfd_link_pic (info)) { - plt0 = OR1K_LWZ(12,16) | got_offset; - plt1 = OR1K_ORI0(11) | plt_reloc; - plt2 = OR1K_NOP; + if (large_plt_entry) + { + unsigned gotha = ((got_offset + 0x8000) >> 16) & 0xffff; + unsigned got = got_offset & 0xffff; + unsigned pltrelhi = (plt_reloc >> 16) & 0xffff; + unsigned pltrello = plt_reloc & 0xffff; + + plt[0] = OR1K_MOVHI(12) | gotha; + plt[1] = OR1K_ADD(12,12,16); + plt[2] = OR1K_LWZ(12,12) | got; + plt[3] = OR1K_MOVHI(11) | pltrelhi; + plt[4] = OR1K_ORI(11,11) | pltrello; + plt_insn_count = 5; + } + else + { + plt[0] = OR1K_LWZ(12,16) | got_offset; + plt[1] = OR1K_ORI0(11) | plt_reloc; + plt[2] = OR1K_NOP; + } } else { unsigned ha = ((got_addr + 0x8000) >> 16) & 0xffff; unsigned lo = got_addr & 0xffff; - plt0 = OR1K_MOVHI(12) | ha; - plt1 = OR1K_LWZ(12,12) | lo; - plt2 = OR1K_ORI0(11) | plt_reloc; + plt[0] = OR1K_MOVHI(12) | ha; + plt[1] = OR1K_LWZ(12,12) | lo; + plt[2] = OR1K_ORI0(11) | plt_reloc; + } + + /* For large code model we fixup the non-PIC PLT relocation instructions + here. */ + if (large_plt_entry && !bfd_link_pic (info)) + { + unsigned pltrelhi = (plt_reloc >> 16) & 0xffff; + unsigned pltrello = plt_reloc & 0xffff; + + plt[2] = OR1K_MOVHI(11) | pltrelhi; + plt[3] = OR1K_ORI(11,11) | pltrello; + plt[4] = OR1K_NOP; + plt_insn_count = 5; } or1k_write_plt_entry (output_bfd, splt->contents + h->plt.offset, - plt0, plt1, plt2, OR1K_JR(12)); + OR1K_JR(12), plt, plt_insn_count); /* Fill in the entry in the global offset table. We initialize it to point to the top of the plt. This is done to lazy lookup the actual @@ -2779,11 +2845,16 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, bfd_link_pic (info), h)) { asection *splt = htab->root.splt; + bfd_vma plt_index; + + /* Track the index of our plt entry for use in calculating size. */ + plt_index = htab->plt_count++; + ((struct elf_or1k_link_hash_entry *) h)->plt_index = plt_index; /* If this is the first .plt entry, make room for the special first entry. */ if (splt->size == 0) - splt->size = PLT_ENTRY_SIZE; + splt->size = elf_or1k_plt_entry_size (plt_index); h->plt.offset = splt->size; @@ -2800,7 +2871,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) } /* Make room for this entry. */ - splt->size += PLT_ENTRY_SIZE; + splt->size += elf_or1k_plt_entry_size (plt_index); /* We also need to make an entry in the .got.plt section, which will be placed in the .got section by the linker script. */ diff --git a/ld/testsuite/ld-or1k/gotha1.dd b/ld/testsuite/ld-or1k/gotha1.dd new file mode 100644 index 00000000000..0ad1f8f5399 --- /dev/null +++ b/ld/testsuite/ld-or1k/gotha1.dd @@ -0,0 +1,34 @@ + +.*\.x: file format elf32-or1k + + +Disassembly of section \.plt: + +[0-9a-f]+ <\.plt>: + +[0-9a-f]+: 19 80 00 00 l\.movhi r12,0x0 + +[0-9a-f]+: 85 ec [0-9a-f]+ [0-9a-f]+ l\.lwz r15,[0-9]+\(r12\) + +[0-9a-f]+: 44 00 78 00 l\.jr r15 + +[0-9a-f]+: 85 8c [0-9a-f]+ [0-9a-f]+ l\.lwz r12,[0-9]+\(r12\) + +[0-9a-f]+: 19 80 00 00 l\.movhi r12,0x0 + +[0-9a-f]+: 85 8c [0-9a-f]+ [0-9a-f]+ l\.lwz r12,[0-9]+\(r12\) + +[0-9a-f]+: 44 00 60 00 l\.jr r12 + +[0-9a-f]+: a9 60 00 00 l\.ori r11,r0,0x0 + +Disassembly of section \.text: + +[0-9a-f]+ <_start>: + +[0-9a-f]+: 9c 21 ff fc l\.addi r1,r1,-4 + +[0-9a-f]+: d4 01 48 00 l\.sw 0\(r1\),r9 + +[0-9a-f]+: 04 00 00 02 l\.jal [0-9a-f]+ <_start\+0x10> + +[0-9a-f]+: 1a 60 00 00 l\.movhi r19,0x0 + +[0-9a-f]+: aa 73 [0-9a-f]+ [0-9a-f]+ l\.ori r19,r19,0x[0-9a-f]+ + +[0-9a-f]+: e2 73 48 00 l\.add r19,r19,r9 + +[0-9a-f]+: 1a 20 00 00 l\.movhi r17,0x0 + +[0-9a-f]+: e2 31 98 00 l\.add r17,r17,r19 + +[0-9a-f]+: 86 31 00 10 l\.lwz r17,16\(r17\) + +[0-9a-f]+: 84 71 00 00 l\.lwz r3,0\(r17\) + +[0-9a-f]+: 07 ff ff f2 l\.jal [0-9a-f]+ <\.plt\+0x10> + +[0-9a-f]+: 15 00 00 00 l\.nop 0x0 + +[0-9a-f]+: 85 21 00 00 l\.lwz r9,0\(r1\) + +[0-9a-f]+: 44 00 48 00 l\.jr r9 + +[0-9a-f]+: 9c 21 00 04 l\.addi r1,r1,4 diff --git a/ld/testsuite/ld-or1k/gotha1.s b/ld/testsuite/ld-or1k/gotha1.s new file mode 100644 index 00000000000..42b16db425c --- /dev/null +++ b/ld/testsuite/ld-or1k/gotha1.s @@ -0,0 +1,24 @@ + .data + .p2align 16 + + .text + .globl _start +_start: + l.addi r1, r1, -4 + l.sw 0(r1), r9 + + l.jal 8 + l.movhi r19, gotpchi(_GLOBAL_OFFSET_TABLE_-4) + l.ori r19, r19, gotpclo(_GLOBAL_OFFSET_TABLE_+0) + l.add r19, r19, r9 + + l.movhi r17, gotha(x) + l.add r17, r17, r19 + l.lwz r17, got(x)(r17) + l.lwz r3, 0(r17) + + l.jal plt(func) + l.nop + l.lwz r9, 0(r1) + l.jr r9 + l.addi r1, r1, 4 diff --git a/ld/testsuite/ld-or1k/gotha2.dd b/ld/testsuite/ld-or1k/gotha2.dd new file mode 100644 index 00000000000..fe09da5466b --- /dev/null +++ b/ld/testsuite/ld-or1k/gotha2.dd @@ -0,0 +1,21 @@ + +.*\.x: file format elf32-or1k + + +Disassembly of section \.text: + +[0-9a-f]+ : + +[0-9a-f]+: 9c 21 ff f8 l\.addi r1,r1,-8 + +[0-9a-f]+: d4 01 80 00 l\.sw 0\(r1\),r16 + +[0-9a-f]+: d4 01 48 04 l\.sw 4\(r1\),r9 + +[0-9a-f]+: 04 00 [0-9a-f]+ [0-9a-f]+ l\.jal [0-9a-f]+ + +[0-9a-f]+: 1a 00 00 00 l\.movhi r16,0x0 + +[0-9a-f]+: aa 10 [0-9a-f]+ [0-9a-f]+ l\.ori r16,r16,0x[0-9a-f]+ + +[0-9a-f]+: e2 10 48 00 l\.add r16,r16,r9 + +[0-9a-f]+: 1a 20 00 00 l\.movhi r17,0x0 + +[0-9a-f]+: e2 31 80 00 l\.add r17,r17,r16 + +[0-9a-f]+: 86 31 00 0c l\.lwz r17,12\(r17\) + +[0-9a-f]+: 85 21 00 04 l\.lwz r9,4\(r1\) + +[0-9a-f]+: 86 01 00 00 l\.lwz r16,0\(r1\) + +[0-9a-f]+: 44 00 48 00 l\.jr r9 + +[0-9a-f]+: 9c 21 00 08 l\.addi r1,r1,8 diff --git a/ld/testsuite/ld-or1k/gotha2.s b/ld/testsuite/ld-or1k/gotha2.s new file mode 100644 index 00000000000..164b282f2dd --- /dev/null +++ b/ld/testsuite/ld-or1k/gotha2.s @@ -0,0 +1,22 @@ + .section .text + .align 4 + .global test + .type test, @function +test: + l.addi r1, r1, -8 + l.sw 0(r1), r16 + l.sw 4(r1), r9 + + l.jal 8 + l.movhi r16, gotpchi(_GLOBAL_OFFSET_TABLE_-4) + l.ori r16, r16, gotpclo(_GLOBAL_OFFSET_TABLE_+0) + l.add r16, r16, r9 + + l.movhi r17, gotha(i) + l.add r17, r17, r16 + l.lwz r17, got(i)(r17) + + l.lwz r9, 4(r1) + l.lwz r16, 0(r1) + l.jr r9 + l.addi r1, r1, 8 diff --git a/ld/testsuite/ld-or1k/or1k.exp b/ld/testsuite/ld-or1k/or1k.exp index 7592e8307c1..8e19ec6c31a 100644 --- a/ld/testsuite/ld-or1k/or1k.exp +++ b/ld/testsuite/ld-or1k/or1k.exp @@ -53,6 +53,14 @@ set or1kplttests { "" {plt1.s} {{objdump -dr plt1.x.dd}} "plt1.x"} + {"gotha exec plt" "tmpdir/libpltlib.so" "" + "" {gotha1.s} + {{objdump -dr gotha1.dd}} + "gotha1.x"} + {"gotha -fpic -shared" "-fpic -shared" "" + "" {gotha2.s} + {{objdump -dr gotha2.dd}} + "gotha2.x"} } # Not implemented yet diff --git a/ld/testsuite/ld-or1k/pltlib.s b/ld/testsuite/ld-or1k/pltlib.s index baf76ca1af7..8b4d7ba48fd 100644 --- a/ld/testsuite/ld-or1k/pltlib.s +++ b/ld/testsuite/ld-or1k/pltlib.s @@ -1,5 +1,6 @@ .section .data .globl x, y + .size x, 4 x: .long 33 y: .long 44 -- 2.25.1 ================================================ FILE: package/binutils/2.35.2/0007-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch ================================================ From c3003947e4bad18faea4337fd2073feeb30ee078 Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Wed, 9 Jun 2021 17:28:27 +0200 Subject: [PATCH] bfd/elf32-or1k: fix building with gcc version < 5 Gcc version >= 5 has standard C mode not set to -std=gnu11, so if we use an old compiler(i.e. gcc 4.9) build fails on: ``` elf32-or1k.c:2251:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode for (size_t i = 0; i < insn_count; i++) ^ ``` So let's declare `size_t i` at the top of the function instead of inside for loop. Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 4ae7f324d33..32063ab0289 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -2244,9 +2244,10 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj, { unsigned nodelay = elf_elfheader (output_bfd)->e_flags & EF_OR1K_NODELAY; unsigned output_insns[PLT_MAX_INSN_COUNT]; + size_t i; /* Copy instructions into the output buffer. */ - for (size_t i = 0; i < insn_count; i++) + for (i = 0; i < insn_count; i++) output_insns[i] = insns[i]; /* Honor the no-delay-slot setting. */ @@ -2277,7 +2278,7 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj, } /* Write out the output buffer. */ - for (size_t i = 0; i < (insn_count+1); i++) + for (i = 0; i < (insn_count+1); i++) bfd_put_32 (output_bfd, output_insns[i], contents + (i*4)); } -- 2.25.1 ================================================ FILE: package/binutils/2.35.2/0008-or1k-fix-pc-relative-relocation-against-dynamic-on-P.patch ================================================ From 9af93e143a7fbdb75aa1ed37277f9250eb111628 Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Sat, 10 Jul 2021 17:57:34 +0200 Subject: [PATCH] or1k: fix pc-relative relocation against dynamic on PC relative 26 bit relocation When building openal we were seeing the assert failure: /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourcePausev /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourceStopv /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourceRewindv /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourcePlayv collect2: error: ld returned 1 exit status This happens because in R_OR1K_INSN_REL_26 case we can't reference local symbol as previously done but we need to make sure that calls to actual symbol always call the version of current object. bfd/Changelog: * elf32-or1k.c (or1k_elf_relocate_section): use a separate entry in switch case R_OR1K_INSN_REL_26 where we need to check for !SYMBOL_CALLS_LOCAL() instead of !SYMBOL_REFERENCES_LOCAL(). Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 4ae7f324d33..4f9092539f5 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -1543,6 +1543,18 @@ or1k_elf_relocate_section (bfd *output_bfd, break; case R_OR1K_INSN_REL_26: + /* For a non-shared link, these will reference plt or call the + version of actual object. */ + if (bfd_link_pic (info) && !SYMBOL_CALLS_LOCAL (info, h)) + { + _bfd_error_handler + (_("%pB: pc-relative relocation against dynamic symbol %s"), + input_bfd, name); + ret_val = FALSE; + bfd_set_error (bfd_error_bad_value); + } + break; + case R_OR1K_PCREL_PG21: case R_OR1K_LO13: case R_OR1K_SLO13: -- 2.25.1 ================================================ FILE: package/binutils/2.36.1/0001-sh-conf.patch ================================================ From f88f4c77266b9669b285ab64386cf39e183661bb 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.32] Signed-off-by: Romain Naour [Thomas: rebase on top of 2.29, in which sh64 support was removed.] Signed-off-by: Thomas Petazzoni --- configure | 2 +- configure.ac | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 68779feb42b..8b4333b2c15 100755 --- a/configure +++ b/configure @@ -3887,7 +3887,7 @@ case "${target}" in nvptx*-*-*) noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" ;; - sh-*-*) + sh*-*-*) case "${target}" in sh*-*-elf) ;; diff --git a/configure.ac b/configure.ac index d16a2757689..035854759ed 100644 --- a/configure.ac +++ b/configure.ac @@ -1177,7 +1177,7 @@ case "${target}" in nvptx*-*-*) noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" ;; - sh-*-*) + sh*-*-*) case "${target}" in sh*-*-elf) ;; -- 2.29.2 ================================================ FILE: package/binutils/2.36.1/0002-poison-system-directories.patch ================================================ From a9652a60af6254d07066f08377415f05e3a9462e 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.33.1] 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] Patch originally created by Mark Hatle, forward-ported to binutils 2.21 by Scott Garman. purpose: warn for uses of system directories when cross linking Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 2008-07-02 Joseph Myers ld/ * ld.h (args_type): Add error_poison_system_directories. * ld.texinfo (--error-poison-system-directories): Document. * ldfile.c (ldfile_add_library_path): Check command_line.error_poison_system_directories. * ldmain.c (main): Initialize command_line.error_poison_system_directories. * lexsup.c (enum option_values): Add OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. (ld_options): Add --error-poison-system-directories. (parse_args): Handle new option. 2007-06-13 Joseph Myers ld/ * config.in: Regenerate. * ld.h (args_type): Add poison_system_directories. * ld.texinfo (--no-poison-system-directories): Document. * ldfile.c (ldfile_add_library_path): Check command_line.poison_system_directories. * ldmain.c (main): Initialize command_line.poison_system_directories. * lexsup.c (enum option_values): Add OPTION_NO_POISON_SYSTEM_DIRECTORIES. (ld_options): Add --no-poison-system-directories. (parse_args): Handle new option. 2007-04-20 Joseph Myers Merge from Sourcery G++ binutils 2.17: 2007-03-20 Joseph Myers Based on patch by Mark Hatle . ld/ * 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, /usr/lib, /usr/local/lib or /usr/X11R6/lib. 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.texi | 12 ++++++++++++ ld/ldfile.c | 17 +++++++++++++++++ ld/ldlex.h | 2 ++ ld/ldmain.c | 2 ++ ld/lexsup.c | 21 +++++++++++++++++++++ 9 files changed, 89 insertions(+) diff --git a/ld/config.in b/ld/config.in index 7b60d778587..37b8e9b6f6c 100644 --- a/ld/config.in +++ b/ld/config.in @@ -40,6 +40,9 @@ language is requested. */ #undef ENABLE_NLS +/* Define to warn for use of native system library directories */ +#undef ENABLE_POISON_SYSTEM_DIRECTORIES + /* Additional extension a shared object might have. */ #undef EXTRA_SHLIB_EXTENSION diff --git a/ld/configure b/ld/configure index a8d248eab58..f52e1f3c18f 100755 --- a/ld/configure +++ b/ld/configure @@ -828,6 +828,7 @@ with_lib_path enable_targets enable_64_bit_bfd with_sysroot +enable_poison_system_directories enable_gold enable_got enable_compressed_debug_sections @@ -1496,6 +1497,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 + warn for use of native system library directories --enable-gold[=ARG] build gold [ARG={default,yes,no}] --enable-got= GOT handling scheme (target, single, negative, multigot) @@ -15841,7 +15844,18 @@ else fi +# Check whether --enable-poison-system-directories was given. +if test "${enable_poison_system_directories+set}" = set; then : + enableval=$enable_poison_system_directories; +else + enable_poison_system_directories=no +fi + +if test "x${enable_poison_system_directories}" = "xyes"; then +$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h + +fi # Check whether --enable-got was given. if test "${enable_got+set}" = set; then : diff --git a/ld/configure.ac b/ld/configure.ac index c9c69ab9245..59dab0a6ac4 100644 --- a/ld/configure.ac +++ b/ld/configure.ac @@ -94,6 +94,16 @@ AC_SUBST(use_sysroot) AC_SUBST(TARGET_SYSTEM_ROOT) AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) +AC_ARG_ENABLE([poison-system-directories], + AS_HELP_STRING([--enable-poison-system-directories], + [warn for use of native system library directories]),, + [enable_poison_system_directories=no]) +if test "x${enable_poison_system_directories}" = "xyes"; then + AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], + [1], + [Define to warn for use of native system library directories]) +fi + 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. diff --git a/ld/ld.h b/ld/ld.h index 93f5af92c7d..ff7f71a7b66 100644 --- a/ld/ld.h +++ b/ld/ld.h @@ -166,6 +166,14 @@ typedef struct in the linker script. */ bfd_boolean force_group_allocation; + /* 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.texi b/ld/ld.texi index 7a602b9c6ab..cccbfbab3bb 100644 --- a/ld/ld.texi +++ b/ld/ld.texi @@ -2810,6 +2810,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 81cb86d51e2..cd5c2752679 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c @@ -117,6 +117,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline) new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL); else new_dirs->name = xstrdup (name); + +#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES + if (command_line.poison_system_directories + && ((!strncmp (name, "/lib", 4)) + || (!strncmp (name, "/usr/lib", 8)) + || (!strncmp (name, "/usr/local/lib", 14)) + || (!strncmp (name, "/usr/X11R6/lib", 14)))) + { + if (command_line.error_poison_system_directories) + einfo (_("%X%P: error: library search path \"%s\" is unsafe for " + "cross-compilation\n"), name); + else + einfo (_("%P: warning: library search path \"%s\" is unsafe for " + "cross-compilation\n"), name); + } +#endif + } /* Try to open a BFD for a lang_input_statement. */ diff --git a/ld/ldlex.h b/ld/ldlex.h index b0101028321..77f5accb5d9 100644 --- a/ld/ldlex.h +++ b/ld/ldlex.h @@ -161,6 +161,8 @@ enum option_values OPTION_CTF_VARIABLES, OPTION_NO_CTF_VARIABLES, OPTION_CTF_SHARE_TYPES, + OPTION_NO_POISON_SYSTEM_DIRECTORIES, + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, }; /* The initial parser states. */ diff --git a/ld/ldmain.c b/ld/ldmain.c index 863df0293ea..f06f2546ef5 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -323,6 +323,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.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 diff --git a/ld/lexsup.c b/ld/lexsup.c index f005a58a045..eb383d3755b 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -591,6 +591,14 @@ static const struct ld_option ld_options[] = " is: share-unconflicted (default),\n" " share-duplicated"), TWO_DASHES }, + { {"no-poison-system-directories", no_argument, NULL, + 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}, + '\0', NULL, N_("Give an error for -L options using system directories"), + TWO_DASHES }, }; #define OPTION_COUNT ARRAY_SIZE (ld_options) @@ -603,6 +611,7 @@ parse_args (unsigned argc, char **argv) int ingroup = 0; char *default_dirlist = NULL; char *shortopts; + char *BR_paranoid_env; struct option *longopts; struct option *really_longopts; int last_optind; @@ -1633,6 +1642,14 @@ parse_args (unsigned argc, char **argv) } 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_PUSH_STATE: input_flags.pushed = xmemdup (&input_flags, sizeof (input_flags), @@ -1778,6 +1795,10 @@ parse_args (unsigned argc, char **argv) command_line.soname = NULL; } + BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH"); + if (BR_paranoid_env && strlen(BR_paranoid_env) > 0) + command_line.error_poison_system_directories = TRUE; + while (ingroup) { einfo (_("%P: missing --end-group; added as last command line option\n")); -- 2.29.2 ================================================ FILE: package/binutils/2.36.1/0003-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch ================================================ From b5fdaa85790dff45fd2c3fd15405c16dbc50a074 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:02:14 +0900 Subject: [PATCH] or1k: Fix issue with plt link failure for local calls When building protobuf we were seeing the assert failure: /home/giuliobenetti/git/upstream/or1k-binutils-2.36.1/host/lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: BFD (GNU Binutils) 2.36.1 assertion fail elf32-or1k.c:2377 /home/giuliobenetti/git/upstream/or1k-binutils-2.36.1/host/lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: BFD (GNU Binutils) 2.36.1 assertion fail elf32-or1k.c:2377 /home/giuliobenetti/git/upstream/or1k-binutils-2.36.1/host/lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: BFD (GNU Binutils) 2.36.1 assertion fail elf32-or1k.c:2377 collect2: error: ld returned 1 exit status This failure happens while writing out PLT entries, there is a check "BFD_ASSERT (h->dynindx != -1)" to confirm all plt entries have dynamic symbol attributes. This was failing for symbols that were "forced_local" in previous linking code. The fix adds logic to or1k_elf_adjust_dynamic_symbol to identify "forced_local" symbols and exclude them from the the PLT. bfd/ChangeLog: PR 27624 * elf32-or1k.c (or1k_elf_adjust_dynamic_symbol): Change condition used to cleanup plt entries to cleanup forced local entries. Cc: Giulio Benetti Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 65938e51378..4f82cc4c667 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -2566,11 +2566,10 @@ or1k_elf_adjust_dynamic_symbol (struct bfd_link_info *info, if (h->type == STT_FUNC || h->needs_plt) { - if (! bfd_link_pic (info) - && !h->def_dynamic - && !h->ref_dynamic - && h->root.type != bfd_link_hash_undefweak - && h->root.type != bfd_link_hash_undefined) + if (h->plt.refcount <= 0 + || (SYMBOL_CALLS_LOCAL (info, h) + || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT + && h->root.type == bfd_link_hash_undefweak))) { /* This case can occur if we saw a PLT reloc in an input file, but the symbol was never referred to by a dynamic -- 2.25.1 ================================================ FILE: package/binutils/2.36.1/0004-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch ================================================ From 141dee7402871c7b3994838c3eddf64a92d67be7 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:02:15 +0900 Subject: [PATCH] or1k: Implement relocation R_OR1K_GOT_AHI16 for gotha() The gotha() relocation mnemonic will be outputted by OpenRISC GCC when using the -mcmodel=large option. This relocation is used along with got() to generate 32-bit GOT offsets. This increases the previous GOT offset limit from the previous 16-bit (64K) limit. This is needed on large binaries where the GOT grows larger than 64k. bfd/ChangeLog: PR 21464 * bfd-in2.h: Add BFD_RELOC_OR1K_GOT_AHI16 relocation. * elf32-or1k.c (or1k_elf_howto_table, or1k_reloc_map): Likewise. (or1k_final_link_relocate, or1k_elf_relocate_section, or1k_elf_check_relocs): Likewise. * libbfd.h (bfd_reloc_code_real_names): Likewise. * reloc.c: Likewise. cpu/ChangeLog: PR 21464 * or1k.opc (or1k_imm16_relocs, parse_reloc): Define parse logic for gotha() relocation. include/ChangeLog: PR 21464 * elf/or1k.h (elf_or1k_reloc_type): Define R_OR1K_GOT_AHI16 number. opcodes/ChangeLog: PR 21464 * or1k-asm.c: Regenerate. gas/ChangeLog: PR 21464 * testsuite/gas/or1k/reloc-1.s: Add test for new relocation. * testsuite/gas/or1k/reloc-1.d: Add test result for new relocation. Cc: Giulio Benetti fixup reloc, add tests Signed-off-by: Giulio Benetti --- bfd/bfd-in2.h | 1 + bfd/elf32-or1k.c | 21 ++++++++++++++++++++- bfd/libbfd.h | 1 + bfd/reloc.c | 2 ++ cpu/or1k.opc | 7 ++++++- gas/testsuite/gas/or1k/reloc-1.d | 4 +++- gas/testsuite/gas/or1k/reloc-1.s | 4 ++++ include/elf/or1k.h | 1 + opcodes/or1k-asm.c | 7 ++++++- 9 files changed, 44 insertions(+), 4 deletions(-) diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 7eff85b7eaa..e76b9e7a319 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -5048,6 +5048,7 @@ then it may be truncated to 8 bits. */ BFD_RELOC_OR1K_TLS_TPOFF, BFD_RELOC_OR1K_TLS_DTPOFF, BFD_RELOC_OR1K_TLS_DTPMOD, + BFD_RELOC_OR1K_GOT_AHI16, /* H8 elf Relocations. */ BFD_RELOC_H8_DIR16A8, diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 4f82cc4c667..48461854a96 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -808,6 +808,20 @@ static reloc_howto_type or1k_elf_howto_table[] = 0, /* Source Mask. */ 0x03ffffff, /* Dest Mask. */ TRUE), /* PC relative offset? */ + + HOWTO (R_OR1K_GOT_AHI16, /* type */ + 16, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_OR1K_GOT_AHI16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0xffff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; /* Map BFD reloc types to Or1k ELF reloc types. */ @@ -871,6 +885,7 @@ static const struct or1k_reloc_map or1k_reloc_map[] = { BFD_RELOC_OR1K_TLS_IE_LO13, R_OR1K_TLS_IE_LO13 }, { BFD_RELOC_OR1K_SLO13, R_OR1K_SLO13 }, { BFD_RELOC_OR1K_PLTA26, R_OR1K_PLTA26 }, + { BFD_RELOC_OR1K_GOT_AHI16, R_OR1K_GOT_AHI16 }, }; /* tls_type is a mask used to track how each symbol is accessed, @@ -1111,6 +1126,7 @@ or1k_final_link_relocate (reloc_howto_type *howto, bfd *input_bfd, switch (howto->type) { case R_OR1K_AHI16: + case R_OR1K_GOT_AHI16: case R_OR1K_GOTOFF_AHI16: case R_OR1K_TLS_IE_AHI16: case R_OR1K_TLS_LE_AHI16: @@ -1373,6 +1389,7 @@ or1k_elf_relocate_section (bfd *output_bfd, } break; + case R_OR1K_GOT_AHI16: case R_OR1K_GOT16: case R_OR1K_GOT_PG21: case R_OR1K_GOT_LO13: @@ -1464,7 +1481,8 @@ or1k_elf_relocate_section (bfd *output_bfd, /* The GOT_PG21 and GOT_LO13 relocs are pc-relative, while the GOT16 reloc is GOT relative. */ relocation = got_base + off; - if (r_type == R_OR1K_GOT16) + if (r_type == R_OR1K_GOT16 + || r_type == R_OR1K_GOT_AHI16) relocation -= got_sym_value; /* Addend should be zero. */ @@ -1990,6 +2008,7 @@ or1k_elf_check_relocs (bfd *abfd, } break; + case R_OR1K_GOT_AHI16: case R_OR1K_GOT16: case R_OR1K_GOT_PG21: case R_OR1K_GOT_LO13: diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 7271a2ad5a1..e0ee2dafc07 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -2757,6 +2757,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_OR1K_TLS_TPOFF", "BFD_RELOC_OR1K_TLS_DTPOFF", "BFD_RELOC_OR1K_TLS_DTPMOD", + "BFD_RELOC_OR1K_GOT_AHI16", "BFD_RELOC_H8_DIR16A8", "BFD_RELOC_H8_DIR16R8", "BFD_RELOC_H8_DIR24A8", diff --git a/bfd/reloc.c b/bfd/reloc.c index 4f4b95a0b7f..fe94e0d8f91 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -6204,6 +6204,8 @@ ENUMX BFD_RELOC_OR1K_GOTPC_HI16 ENUMX BFD_RELOC_OR1K_GOTPC_LO16 +ENUMX + BFD_RELOC_OR1K_GOT_AHI16 ENUMX BFD_RELOC_OR1K_GOT16 ENUMX diff --git a/cpu/or1k.opc b/cpu/or1k.opc index f0adcbb00a5..5d20a1f33a7 100644 --- a/cpu/or1k.opc +++ b/cpu/or1k.opc @@ -193,7 +193,7 @@ static const bfd_reloc_code_real_type or1k_imm16_relocs[][6] = { BFD_RELOC_OR1K_GOT_LO13, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, - BFD_RELOC_UNUSED }, + BFD_RELOC_OR1K_GOT_AHI16 }, { BFD_RELOC_OR1K_GOTPC_LO16, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, @@ -296,6 +296,11 @@ parse_reloc (const char **strp) str += 5; cls = RCLASS_TPOFF; } + else if (strncasecmp (str, "got", 3) == 0) + { + str += 3; + cls = RCLASS_GOT; + } if (strncasecmp (str, "hi(", 3) == 0) { diff --git a/gas/testsuite/gas/or1k/reloc-1.d b/gas/testsuite/gas/or1k/reloc-1.d index d1bcf5608bb..3a001c4ed99 100644 --- a/gas/testsuite/gas/or1k/reloc-1.d +++ b/gas/testsuite/gas/or1k/reloc-1.d @@ -68,5 +68,7 @@ OFFSET TYPE VALUE 000000ec R_OR1K_LO13 x 000000f0 R_OR1K_GOT_LO13 x 000000f4 R_OR1K_SLO13 x - +000000f8 R_OR1K_GOT_AHI16 x +000000fc R_OR1K_GOT_AHI16 x +00000100 R_OR1K_GOT_AHI16 x diff --git a/gas/testsuite/gas/or1k/reloc-1.s b/gas/testsuite/gas/or1k/reloc-1.s index e76abef6532..562609aa869 100644 --- a/gas/testsuite/gas/or1k/reloc-1.s +++ b/gas/testsuite/gas/or1k/reloc-1.s @@ -74,3 +74,7 @@ l.lbz r5,po(x)(r3) l.lbz r5,gotpo(x)(r3) l.sb po(x)(r3),r6 + + l.movhi r4,gotha(x) + l.ori r3,r4,gotha(x) + l.addi r3,r4,gotha(x) diff --git a/include/elf/or1k.h b/include/elf/or1k.h index 7f281481061..69ab90584a2 100644 --- a/include/elf/or1k.h +++ b/include/elf/or1k.h @@ -77,6 +77,7 @@ START_RELOC_NUMBERS (elf_or1k_reloc_type) RELOC_NUMBER (R_OR1K_TLS_IE_LO13, 51) RELOC_NUMBER (R_OR1K_SLO13, 52) RELOC_NUMBER (R_OR1K_PLTA26, 53) + RELOC_NUMBER (R_OR1K_GOT_AHI16, 54) END_RELOC_NUMBERS (R_OR1K_max) #define EF_OR1K_NODELAY (1UL << 0) diff --git a/opcodes/or1k-asm.c b/opcodes/or1k-asm.c index 045ab6230b6..fdccf67f9e1 100644 --- a/opcodes/or1k-asm.c +++ b/opcodes/or1k-asm.c @@ -177,7 +177,7 @@ static const bfd_reloc_code_real_type or1k_imm16_relocs[][6] = { BFD_RELOC_OR1K_GOT_LO13, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, - BFD_RELOC_UNUSED }, + BFD_RELOC_OR1K_GOT_AHI16 }, { BFD_RELOC_OR1K_GOTPC_LO16, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, @@ -280,6 +280,11 @@ parse_reloc (const char **strp) str += 5; cls = RCLASS_TPOFF; } + else if (strncasecmp (str, "got", 3) == 0) + { + str += 3; + cls = RCLASS_GOT; + } if (strncasecmp (str, "hi(", 3) == 0) { -- 2.25.1 ================================================ FILE: package/binutils/2.36.1/0005-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch ================================================ From de914df5f2ba23a9f6f1fbf6efdc22e1b045901c Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:02:16 +0900 Subject: [PATCH] or1k: Avoid R_OR1K_GOT16 overflow failures in presence of R_OR1K_GOT_AHI16 Now that we support R_OR1K_GOT_AHI16 we can relax the R_OR1K_GOT16 overflow validation check if the section has R_OR1K_GOT_AHI16. We cannot simple disable R_OR1K_GOT16 overflow validation as there will still be binaries that will have only R_OR1K_GOT16. The R_OR1K_GOT_AHI16 relocation will only be added by GCC when building with the option -mcmodel=large. This assumes that R_OR1K_GOT_AHI16 will come before R_OR1K_GOT16, which is the code pattern that will be emitted by GCC. bfd/ChangeLog: PR 21464 * elf32-or1k.c (or1k_elf_relocate_section): Relax R_OR1K_GOT16 overflow check if we have R_OR1K_GOT_AHI16 followed by R_OR1K_GOT16. Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 48461854a96..44e67f2b84b 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -1278,6 +1278,7 @@ or1k_elf_relocate_section (bfd *output_bfd, asection *sgot, *splt; bfd_vma plt_base, got_base, got_sym_value; bfd_boolean ret_val = TRUE; + bfd_boolean saw_gotha = FALSE; if (htab == NULL) return FALSE; @@ -1485,6 +1486,16 @@ or1k_elf_relocate_section (bfd *output_bfd, || r_type == R_OR1K_GOT_AHI16) relocation -= got_sym_value; + if (r_type == R_OR1K_GOT_AHI16) + saw_gotha = TRUE; + + /* If we have a R_OR1K_GOT16 followed by a R_OR1K_GOT_AHI16 + relocation we assume the code is doing the right thing to avoid + overflows. Here we mask the lower 16-bit of the relocation to + avoid overflow validation failures. */ + if (r_type == R_OR1K_GOT16 && saw_gotha) + relocation &= 0xffff; + /* Addend should be zero. */ if (rel->r_addend != 0) { -- 2.25.1 ================================================ FILE: package/binutils/2.36.1/0006-or1k-Support-large-plt_relocs-when-generating-plt-en.patch ================================================ From 4a7b357d0c802685bee7706bafb9702c821286e1 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:02:17 +0900 Subject: [PATCH] or1k: Support large plt_relocs when generating plt entries The current PLT generation code will generate invalid code when the PLT relocation offset exceeds 64k. This fixes the issue by detecting large plt_reloc offsets and generare code sequences to create larger plt relocations. The "large" plt code needs 2 extra instructions to create 32-bit offsets. bfd/ChangeLog: PR 27746 * elf32-or1k.c (PLT_ENTRY_SIZE_LARGE, PLT_MAX_INSN_COUNT, OR1K_ADD, OR1K_ORI): New macros to help with plt creation. (elf_or1k_link_hash_table): New field plt_count. (elf_or1k_link_hash_entry): New field plt_index. (elf_or1k_plt_entry_size): New function. (or1k_write_plt_entry): Update to support variable size PLTs. (or1k_elf_finish_dynamic_sections): Use new or1k_write_plt_entry API. (or1k_elf_finish_dynamic_symbol): Update to write large PLTs when needed. (allocate_dynrelocs): Use elf_or1k_plt_entry_size to account for PLT size. ld/ChangeLog: PR 27746 testsuite/ld-or1k/or1k.exp (or1kplttests): Add tests for linking along with gotha() relocations. testsuite/ld-or1k/gotha1.dd: New file. testsuite/ld-or1k/gotha1.s: New file. testsuite/ld-or1k/gotha2.dd: New file. testsuite/ld-or1k/gotha2.s: New file testsuite/ld-or1k/pltlib.s (x): Define size to avoid link failure. Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 149 ++++++++++++++++++++++++--------- ld/testsuite/ld-or1k/gotha1.dd | 34 ++++++++ ld/testsuite/ld-or1k/gotha1.s | 24 ++++++ ld/testsuite/ld-or1k/gotha2.dd | 21 +++++ ld/testsuite/ld-or1k/gotha2.s | 22 +++++ ld/testsuite/ld-or1k/or1k.exp | 8 ++ ld/testsuite/ld-or1k/pltlib.s | 1 + 7 files changed, 220 insertions(+), 39 deletions(-) create mode 100644 ld/testsuite/ld-or1k/gotha1.dd create mode 100644 ld/testsuite/ld-or1k/gotha1.s create mode 100644 ld/testsuite/ld-or1k/gotha2.dd create mode 100644 ld/testsuite/ld-or1k/gotha2.s diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 44e67f2b84b..3da68e52425 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -30,10 +30,14 @@ #define N_ONES(X) (((bfd_vma)2 << (X)) - 1) #define PLT_ENTRY_SIZE 16 +#define PLT_ENTRY_SIZE_LARGE (6*4) +#define PLT_MAX_INSN_COUNT 6 #define OR1K_MOVHI(D) (0x18000000 | (D << 21)) #define OR1K_ADRP(D) (0x08000000 | (D << 21)) #define OR1K_LWZ(D,A) (0x84000000 | (D << 21) | (A << 16)) +#define OR1K_ADD(D,A,B) (0xE0000000 | (D << 21) | (A << 16) | (B << 11)) +#define OR1K_ORI(D,A) (0xA8000000 | (D << 21) | (A << 16)) #define OR1K_ORI0(D) (0xA8000000 | (D << 21)) #define OR1K_JR(B) (0x44000000 | (B << 11)) #define OR1K_NOP 0x15000000 @@ -907,6 +911,8 @@ struct elf_or1k_link_hash_entry { struct elf_link_hash_entry root; + /* For calculating PLT size. */ + bfd_vma plt_index; /* Track type of TLS access. */ unsigned char tls_type; }; @@ -931,9 +937,20 @@ struct elf_or1k_link_hash_table { struct elf_link_hash_table root; + bfd_vma plt_count; bfd_boolean saw_plta; }; +static size_t +elf_or1k_plt_entry_size (bfd_vma plt_index) +{ + bfd_vma plt_reloc; + + plt_reloc = plt_index * sizeof (Elf32_External_Rela); + + return (plt_reloc > 0xffff) ? PLT_ENTRY_SIZE_LARGE : PLT_ENTRY_SIZE; +} + /* Get the ELF linker hash table from a link_info structure. */ #define or1k_elf_hash_table(p) \ ((is_elf_hash_table ((p)->hash) \ @@ -2222,33 +2239,46 @@ or1k_elf_check_relocs (bfd *abfd, } static void -or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insn1, - unsigned insn2, unsigned insn3, unsigned insnj) +or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj, + unsigned insns[], size_t insn_count) { unsigned nodelay = elf_elfheader (output_bfd)->e_flags & EF_OR1K_NODELAY; - unsigned insn4; + unsigned output_insns[PLT_MAX_INSN_COUNT]; + + /* Copy instructions into the output buffer. */ + for (size_t i = 0; i < insn_count; i++) + output_insns[i] = insns[i]; /* Honor the no-delay-slot setting. */ - if (insn3 == OR1K_NOP) + if (insns[insn_count-1] == OR1K_NOP) { - insn4 = insn3; + unsigned slot1, slot2; + if (nodelay) - insn3 = insnj; + slot1 = insns[insn_count-2], slot2 = insnj; else - insn3 = insn2, insn2 = insnj; + slot1 = insnj, slot2 = insns[insn_count-2]; + + output_insns[insn_count-2] = slot1; + output_insns[insn_count-1] = slot2; + output_insns[insn_count] = OR1K_NOP; } else { + unsigned slot1, slot2; + if (nodelay) - insn4 = insnj; + slot1 = insns[insn_count-1], slot2 = insnj; else - insn4 = insn3, insn3 = insnj; + slot1 = insnj, slot2 = insns[insn_count-1]; + + output_insns[insn_count-1] = slot1; + output_insns[insn_count] = slot2; } - bfd_put_32 (output_bfd, insn1, contents); - bfd_put_32 (output_bfd, insn2, contents + 4); - bfd_put_32 (output_bfd, insn3, contents + 8); - bfd_put_32 (output_bfd, insn4, contents + 12); + /* Write out the output buffer. */ + for (size_t i = 0; i < (insn_count+1); i++) + bfd_put_32 (output_bfd, output_insns[i], contents + (i*4)); } /* Finish up the dynamic sections. */ @@ -2315,7 +2345,8 @@ or1k_elf_finish_dynamic_sections (bfd *output_bfd, splt = htab->root.splt; if (splt && splt->size > 0) { - unsigned plt0, plt1, plt2; + unsigned plt[PLT_MAX_INSN_COUNT]; + size_t plt_insn_count = 3; bfd_vma got_addr = sgot->output_section->vma + sgot->output_offset; /* Note we force 16 byte alignment on the .got, so that @@ -2326,27 +2357,27 @@ or1k_elf_finish_dynamic_sections (bfd *output_bfd, bfd_vma pc = splt->output_section->vma + splt->output_offset; unsigned pa = ((got_addr >> 13) - (pc >> 13)) & 0x1fffff; unsigned po = got_addr & 0x1fff; - plt0 = OR1K_ADRP(12) | pa; - plt1 = OR1K_LWZ(15,12) | (po + 8); - plt2 = OR1K_LWZ(12,12) | (po + 4); + plt[0] = OR1K_ADRP(12) | pa; + plt[1] = OR1K_LWZ(15,12) | (po + 8); + plt[2] = OR1K_LWZ(12,12) | (po + 4); } else if (bfd_link_pic (info)) { - plt0 = OR1K_LWZ(15, 16) | 8; /* .got+8 */ - plt1 = OR1K_LWZ(12, 16) | 4; /* .got+4 */ - plt2 = OR1K_NOP; + plt[0] = OR1K_LWZ(15, 16) | 8; /* .got+8 */ + plt[1] = OR1K_LWZ(12, 16) | 4; /* .got+4 */ + plt[2] = OR1K_NOP; } else { unsigned ha = ((got_addr + 0x8000) >> 16) & 0xffff; unsigned lo = got_addr & 0xffff; - plt0 = OR1K_MOVHI(12) | ha; - plt1 = OR1K_LWZ(15,12) | (lo + 8); - plt2 = OR1K_LWZ(12,12) | (lo + 4); + plt[0] = OR1K_MOVHI(12) | ha; + plt[1] = OR1K_LWZ(15,12) | (lo + 8); + plt[2] = OR1K_LWZ(12,12) | (lo + 4); } - or1k_write_plt_entry (output_bfd, splt->contents, - plt0, plt1, plt2, OR1K_JR(15)); + or1k_write_plt_entry (output_bfd, splt->contents, OR1K_JR(15), + plt, plt_insn_count); elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4; } @@ -2389,7 +2420,8 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, if (h->plt.offset != (bfd_vma) -1) { - unsigned int plt0, plt1, plt2; + unsigned int plt[PLT_MAX_INSN_COUNT]; + size_t plt_insn_count = 3; asection *splt; asection *sgot; asection *srela; @@ -2401,6 +2433,7 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, bfd_vma got_offset; bfd_vma got_addr; Elf_Internal_Rela rela; + bfd_boolean large_plt_entry; /* This symbol has an entry in the procedure linkage table. Set it up. */ @@ -2418,10 +2451,13 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, corresponds to this symbol. This is the index of this symbol in all the symbols for which we are making plt entries. The first entry in the procedure linkage table is reserved. */ - plt_index = h->plt.offset / PLT_ENTRY_SIZE - 1; + plt_index = ((struct elf_or1k_link_hash_entry *) h)->plt_index; plt_addr = plt_base_addr + h->plt.offset; plt_reloc = plt_index * sizeof (Elf32_External_Rela); + large_plt_entry = (elf_or1k_plt_entry_size (plt_index) + == PLT_ENTRY_SIZE_LARGE); + /* Get the offset into the .got table of the entry that corresponds to this function. Each .got entry is 4 bytes. The first three are reserved. */ @@ -2433,27 +2469,57 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd, { unsigned pa = ((got_addr >> 13) - (plt_addr >> 13)) & 0x1fffff; unsigned po = (got_addr & 0x1fff); - plt0 = OR1K_ADRP(12) | pa; - plt1 = OR1K_LWZ(12,12) | po; - plt2 = OR1K_ORI0(11) | plt_reloc; + plt[0] = OR1K_ADRP(12) | pa; + plt[1] = OR1K_LWZ(12,12) | po; + plt[2] = OR1K_ORI0(11) | plt_reloc; } else if (bfd_link_pic (info)) { - plt0 = OR1K_LWZ(12,16) | got_offset; - plt1 = OR1K_ORI0(11) | plt_reloc; - plt2 = OR1K_NOP; + if (large_plt_entry) + { + unsigned gotha = ((got_offset + 0x8000) >> 16) & 0xffff; + unsigned got = got_offset & 0xffff; + unsigned pltrelhi = (plt_reloc >> 16) & 0xffff; + unsigned pltrello = plt_reloc & 0xffff; + + plt[0] = OR1K_MOVHI(12) | gotha; + plt[1] = OR1K_ADD(12,12,16); + plt[2] = OR1K_LWZ(12,12) | got; + plt[3] = OR1K_MOVHI(11) | pltrelhi; + plt[4] = OR1K_ORI(11,11) | pltrello; + plt_insn_count = 5; + } + else + { + plt[0] = OR1K_LWZ(12,16) | got_offset; + plt[1] = OR1K_ORI0(11) | plt_reloc; + plt[2] = OR1K_NOP; + } } else { unsigned ha = ((got_addr + 0x8000) >> 16) & 0xffff; unsigned lo = got_addr & 0xffff; - plt0 = OR1K_MOVHI(12) | ha; - plt1 = OR1K_LWZ(12,12) | lo; - plt2 = OR1K_ORI0(11) | plt_reloc; + plt[0] = OR1K_MOVHI(12) | ha; + plt[1] = OR1K_LWZ(12,12) | lo; + plt[2] = OR1K_ORI0(11) | plt_reloc; + } + + /* For large code model we fixup the non-PIC PLT relocation instructions + here. */ + if (large_plt_entry && !bfd_link_pic (info)) + { + unsigned pltrelhi = (plt_reloc >> 16) & 0xffff; + unsigned pltrello = plt_reloc & 0xffff; + + plt[2] = OR1K_MOVHI(11) | pltrelhi; + plt[3] = OR1K_ORI(11,11) | pltrello; + plt[4] = OR1K_NOP; + plt_insn_count = 5; } or1k_write_plt_entry (output_bfd, splt->contents + h->plt.offset, - plt0, plt1, plt2, OR1K_JR(12)); + OR1K_JR(12), plt, plt_insn_count); /* Fill in the entry in the global offset table. We initialize it to point to the top of the plt. This is done to lazy lookup the actual @@ -2777,11 +2843,16 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, bfd_link_pic (info), h)) { asection *splt = htab->root.splt; + bfd_vma plt_index; + + /* Track the index of our plt entry for use in calculating size. */ + plt_index = htab->plt_count++; + ((struct elf_or1k_link_hash_entry *) h)->plt_index = plt_index; /* If this is the first .plt entry, make room for the special first entry. */ if (splt->size == 0) - splt->size = PLT_ENTRY_SIZE; + splt->size = elf_or1k_plt_entry_size (plt_index); h->plt.offset = splt->size; @@ -2798,7 +2869,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) } /* Make room for this entry. */ - splt->size += PLT_ENTRY_SIZE; + splt->size += elf_or1k_plt_entry_size (plt_index); /* We also need to make an entry in the .got.plt section, which will be placed in the .got section by the linker script. */ diff --git a/ld/testsuite/ld-or1k/gotha1.dd b/ld/testsuite/ld-or1k/gotha1.dd new file mode 100644 index 00000000000..0ad1f8f5399 --- /dev/null +++ b/ld/testsuite/ld-or1k/gotha1.dd @@ -0,0 +1,34 @@ + +.*\.x: file format elf32-or1k + + +Disassembly of section \.plt: + +[0-9a-f]+ <\.plt>: + +[0-9a-f]+: 19 80 00 00 l\.movhi r12,0x0 + +[0-9a-f]+: 85 ec [0-9a-f]+ [0-9a-f]+ l\.lwz r15,[0-9]+\(r12\) + +[0-9a-f]+: 44 00 78 00 l\.jr r15 + +[0-9a-f]+: 85 8c [0-9a-f]+ [0-9a-f]+ l\.lwz r12,[0-9]+\(r12\) + +[0-9a-f]+: 19 80 00 00 l\.movhi r12,0x0 + +[0-9a-f]+: 85 8c [0-9a-f]+ [0-9a-f]+ l\.lwz r12,[0-9]+\(r12\) + +[0-9a-f]+: 44 00 60 00 l\.jr r12 + +[0-9a-f]+: a9 60 00 00 l\.ori r11,r0,0x0 + +Disassembly of section \.text: + +[0-9a-f]+ <_start>: + +[0-9a-f]+: 9c 21 ff fc l\.addi r1,r1,-4 + +[0-9a-f]+: d4 01 48 00 l\.sw 0\(r1\),r9 + +[0-9a-f]+: 04 00 00 02 l\.jal [0-9a-f]+ <_start\+0x10> + +[0-9a-f]+: 1a 60 00 00 l\.movhi r19,0x0 + +[0-9a-f]+: aa 73 [0-9a-f]+ [0-9a-f]+ l\.ori r19,r19,0x[0-9a-f]+ + +[0-9a-f]+: e2 73 48 00 l\.add r19,r19,r9 + +[0-9a-f]+: 1a 20 00 00 l\.movhi r17,0x0 + +[0-9a-f]+: e2 31 98 00 l\.add r17,r17,r19 + +[0-9a-f]+: 86 31 00 10 l\.lwz r17,16\(r17\) + +[0-9a-f]+: 84 71 00 00 l\.lwz r3,0\(r17\) + +[0-9a-f]+: 07 ff ff f2 l\.jal [0-9a-f]+ <\.plt\+0x10> + +[0-9a-f]+: 15 00 00 00 l\.nop 0x0 + +[0-9a-f]+: 85 21 00 00 l\.lwz r9,0\(r1\) + +[0-9a-f]+: 44 00 48 00 l\.jr r9 + +[0-9a-f]+: 9c 21 00 04 l\.addi r1,r1,4 diff --git a/ld/testsuite/ld-or1k/gotha1.s b/ld/testsuite/ld-or1k/gotha1.s new file mode 100644 index 00000000000..42b16db425c --- /dev/null +++ b/ld/testsuite/ld-or1k/gotha1.s @@ -0,0 +1,24 @@ + .data + .p2align 16 + + .text + .globl _start +_start: + l.addi r1, r1, -4 + l.sw 0(r1), r9 + + l.jal 8 + l.movhi r19, gotpchi(_GLOBAL_OFFSET_TABLE_-4) + l.ori r19, r19, gotpclo(_GLOBAL_OFFSET_TABLE_+0) + l.add r19, r19, r9 + + l.movhi r17, gotha(x) + l.add r17, r17, r19 + l.lwz r17, got(x)(r17) + l.lwz r3, 0(r17) + + l.jal plt(func) + l.nop + l.lwz r9, 0(r1) + l.jr r9 + l.addi r1, r1, 4 diff --git a/ld/testsuite/ld-or1k/gotha2.dd b/ld/testsuite/ld-or1k/gotha2.dd new file mode 100644 index 00000000000..fe09da5466b --- /dev/null +++ b/ld/testsuite/ld-or1k/gotha2.dd @@ -0,0 +1,21 @@ + +.*\.x: file format elf32-or1k + + +Disassembly of section \.text: + +[0-9a-f]+ : + +[0-9a-f]+: 9c 21 ff f8 l\.addi r1,r1,-8 + +[0-9a-f]+: d4 01 80 00 l\.sw 0\(r1\),r16 + +[0-9a-f]+: d4 01 48 04 l\.sw 4\(r1\),r9 + +[0-9a-f]+: 04 00 [0-9a-f]+ [0-9a-f]+ l\.jal [0-9a-f]+ + +[0-9a-f]+: 1a 00 00 00 l\.movhi r16,0x0 + +[0-9a-f]+: aa 10 [0-9a-f]+ [0-9a-f]+ l\.ori r16,r16,0x[0-9a-f]+ + +[0-9a-f]+: e2 10 48 00 l\.add r16,r16,r9 + +[0-9a-f]+: 1a 20 00 00 l\.movhi r17,0x0 + +[0-9a-f]+: e2 31 80 00 l\.add r17,r17,r16 + +[0-9a-f]+: 86 31 00 0c l\.lwz r17,12\(r17\) + +[0-9a-f]+: 85 21 00 04 l\.lwz r9,4\(r1\) + +[0-9a-f]+: 86 01 00 00 l\.lwz r16,0\(r1\) + +[0-9a-f]+: 44 00 48 00 l\.jr r9 + +[0-9a-f]+: 9c 21 00 08 l\.addi r1,r1,8 diff --git a/ld/testsuite/ld-or1k/gotha2.s b/ld/testsuite/ld-or1k/gotha2.s new file mode 100644 index 00000000000..164b282f2dd --- /dev/null +++ b/ld/testsuite/ld-or1k/gotha2.s @@ -0,0 +1,22 @@ + .section .text + .align 4 + .global test + .type test, @function +test: + l.addi r1, r1, -8 + l.sw 0(r1), r16 + l.sw 4(r1), r9 + + l.jal 8 + l.movhi r16, gotpchi(_GLOBAL_OFFSET_TABLE_-4) + l.ori r16, r16, gotpclo(_GLOBAL_OFFSET_TABLE_+0) + l.add r16, r16, r9 + + l.movhi r17, gotha(i) + l.add r17, r17, r16 + l.lwz r17, got(i)(r17) + + l.lwz r9, 4(r1) + l.lwz r16, 0(r1) + l.jr r9 + l.addi r1, r1, 8 diff --git a/ld/testsuite/ld-or1k/or1k.exp b/ld/testsuite/ld-or1k/or1k.exp index 8bb943aacc9..f10949e89aa 100644 --- a/ld/testsuite/ld-or1k/or1k.exp +++ b/ld/testsuite/ld-or1k/or1k.exp @@ -53,6 +53,14 @@ set or1kplttests { "" {plt1.s} {{objdump -dr plt1.x.dd}} "plt1.x"} + {"gotha exec plt" "tmpdir/libpltlib.so" "" + "" {gotha1.s} + {{objdump -dr gotha1.dd}} + "gotha1.x"} + {"gotha -fpic -shared" "-fpic -shared" "" + "" {gotha2.s} + {{objdump -dr gotha2.dd}} + "gotha2.x"} } # Not implemented yet diff --git a/ld/testsuite/ld-or1k/pltlib.s b/ld/testsuite/ld-or1k/pltlib.s index baf76ca1af7..8b4d7ba48fd 100644 --- a/ld/testsuite/ld-or1k/pltlib.s +++ b/ld/testsuite/ld-or1k/pltlib.s @@ -1,5 +1,6 @@ .section .data .globl x, y + .size x, 4 x: .long 33 y: .long 44 -- 2.25.1 ================================================ FILE: package/binutils/2.36.1/0007-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch ================================================ From c3003947e4bad18faea4337fd2073feeb30ee078 Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Wed, 9 Jun 2021 17:28:27 +0200 Subject: [PATCH] bfd/elf32-or1k: fix building with gcc version < 5 Gcc version >= 5 has standard C mode not set to -std=gnu11, so if we use an old compiler(i.e. gcc 4.9) build fails on: ``` elf32-or1k.c:2251:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode for (size_t i = 0; i < insn_count; i++) ^ ``` So let's declare `size_t i` at the top of the function instead of inside for loop. Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 4ae7f324d33..32063ab0289 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -2244,9 +2244,10 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj, { unsigned nodelay = elf_elfheader (output_bfd)->e_flags & EF_OR1K_NODELAY; unsigned output_insns[PLT_MAX_INSN_COUNT]; + size_t i; /* Copy instructions into the output buffer. */ - for (size_t i = 0; i < insn_count; i++) + for (i = 0; i < insn_count; i++) output_insns[i] = insns[i]; /* Honor the no-delay-slot setting. */ @@ -2277,7 +2278,7 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj, } /* Write out the output buffer. */ - for (size_t i = 0; i < (insn_count+1); i++) + for (i = 0; i < (insn_count+1); i++) bfd_put_32 (output_bfd, output_insns[i], contents + (i*4)); } -- 2.25.1 ================================================ FILE: package/binutils/2.36.1/0008-or1k-fix-pc-relative-relocation-against-dynamic-on-P.patch ================================================ From 9af93e143a7fbdb75aa1ed37277f9250eb111628 Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Sat, 10 Jul 2021 17:57:34 +0200 Subject: [PATCH] or1k: fix pc-relative relocation against dynamic on PC relative 26 bit relocation When building openal we were seeing the assert failure: /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourcePausev /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourceStopv /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourceRewindv /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourcePlayv collect2: error: ld returned 1 exit status This happens because in R_OR1K_INSN_REL_26 case we can't reference local symbol as previously done but we need to make sure that calls to actual symbol always call the version of current object. bfd/Changelog: * elf32-or1k.c (or1k_elf_relocate_section): use a separate entry in switch case R_OR1K_INSN_REL_26 where we need to check for !SYMBOL_CALLS_LOCAL() instead of !SYMBOL_REFERENCES_LOCAL(). Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 4ae7f324d33..4f9092539f5 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -1543,6 +1543,18 @@ or1k_elf_relocate_section (bfd *output_bfd, break; case R_OR1K_INSN_REL_26: + /* For a non-shared link, these will reference plt or call the + version of actual object. */ + if (bfd_link_pic (info) && !SYMBOL_CALLS_LOCAL (info, h)) + { + _bfd_error_handler + (_("%pB: pc-relative relocation against dynamic symbol %s"), + input_bfd, name); + ret_val = FALSE; + bfd_set_error (bfd_error_bad_value); + } + break; + case R_OR1K_PCREL_PG21: case R_OR1K_LO13: case R_OR1K_SLO13: -- 2.25.1 ================================================ FILE: package/binutils/2.37/0001-sh-conf.patch ================================================ From 33f3c1f804efc2e4f97849081589efb70cda31e5 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.32] Signed-off-by: Romain Naour [Thomas: rebase on top of 2.29, in which sh64 support was removed.] Signed-off-by: Thomas Petazzoni --- configure | 2 +- configure.ac | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 3dd206525a7..6881ce632f5 100755 --- a/configure +++ b/configure @@ -3892,7 +3892,7 @@ case "${target}" in nvptx*-*-*) noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" ;; - sh-*-*) + sh*-*-*) case "${target}" in sh*-*-elf) ;; diff --git a/configure.ac b/configure.ac index 797a624621e..1f9256bbf18 100644 --- a/configure.ac +++ b/configure.ac @@ -1175,7 +1175,7 @@ case "${target}" in nvptx*-*-*) noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" ;; - sh-*-*) + sh*-*-*) case "${target}" in sh*-*-elf) ;; -- 2.31.1 ================================================ FILE: package/binutils/2.37/0002-poison-system-directories.patch ================================================ From 4d8705ddb55897e8a74b617ab95736d520d9e1ea 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.33.1] 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] Patch originally created by Mark Hatle, forward-ported to binutils 2.21 by Scott Garman. purpose: warn for uses of system directories when cross linking Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 2008-07-02 Joseph Myers ld/ * ld.h (args_type): Add error_poison_system_directories. * ld.texinfo (--error-poison-system-directories): Document. * ldfile.c (ldfile_add_library_path): Check command_line.error_poison_system_directories. * ldmain.c (main): Initialize command_line.error_poison_system_directories. * lexsup.c (enum option_values): Add OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. (ld_options): Add --error-poison-system-directories. (parse_args): Handle new option. 2007-06-13 Joseph Myers ld/ * config.in: Regenerate. * ld.h (args_type): Add poison_system_directories. * ld.texinfo (--no-poison-system-directories): Document. * ldfile.c (ldfile_add_library_path): Check command_line.poison_system_directories. * ldmain.c (main): Initialize command_line.poison_system_directories. * lexsup.c (enum option_values): Add OPTION_NO_POISON_SYSTEM_DIRECTORIES. (ld_options): Add --no-poison-system-directories. (parse_args): Handle new option. 2007-04-20 Joseph Myers Merge from Sourcery G++ binutils 2.17: 2007-03-20 Joseph Myers Based on patch by Mark Hatle . ld/ * 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, /usr/lib, /usr/local/lib or /usr/X11R6/lib. 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.texi | 12 ++++++++++++ ld/ldfile.c | 17 +++++++++++++++++ ld/ldlex.h | 2 ++ ld/ldmain.c | 2 ++ ld/lexsup.c | 21 +++++++++++++++++++++ 9 files changed, 89 insertions(+) diff --git a/ld/config.in b/ld/config.in index 26d55a00d47..ffad464783c 100644 --- a/ld/config.in +++ b/ld/config.in @@ -43,6 +43,9 @@ language is requested. */ #undef ENABLE_NLS +/* Define to warn for use of native system library directories */ +#undef ENABLE_POISON_SYSTEM_DIRECTORIES + /* Additional extension a shared object might have. */ #undef EXTRA_SHLIB_EXTENSION diff --git a/ld/configure b/ld/configure index c197aaef3cb..882263aa43f 100755 --- a/ld/configure +++ b/ld/configure @@ -829,6 +829,7 @@ with_lib_path enable_targets enable_64_bit_bfd with_sysroot +enable_poison_system_directories enable_gold enable_got enable_compressed_debug_sections @@ -1498,6 +1499,8 @@ Optional Features: --enable-checking enable run-time checks --enable-targets alternative target configurations --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) + --enable-poison-system-directories + warn for use of native system library directories --enable-gold[=ARG] build gold [ARG={default,yes,no}] --enable-got= GOT handling scheme (target, single, negative, multigot) @@ -15236,7 +15239,18 @@ else fi +# Check whether --enable-poison-system-directories was given. +if test "${enable_poison_system_directories+set}" = set; then : + enableval=$enable_poison_system_directories; +else + enable_poison_system_directories=no +fi + +if test "x${enable_poison_system_directories}" = "xyes"; then +$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h + +fi # Check whether --enable-got was given. if test "${enable_got+set}" = set; then : diff --git a/ld/configure.ac b/ld/configure.ac index 8ea97c43cd4..0f246db67d8 100644 --- a/ld/configure.ac +++ b/ld/configure.ac @@ -106,6 +106,16 @@ AC_SUBST(use_sysroot) AC_SUBST(TARGET_SYSTEM_ROOT) AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) +AC_ARG_ENABLE([poison-system-directories], + AS_HELP_STRING([--enable-poison-system-directories], + [warn for use of native system library directories]),, + [enable_poison_system_directories=no]) +if test "x${enable_poison_system_directories}" = "xyes"; then + AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], + [1], + [Define to warn for use of native system library directories]) +fi + 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. diff --git a/ld/ld.h b/ld/ld.h index 35fafebfaed..74e66405de6 100644 --- a/ld/ld.h +++ b/ld/ld.h @@ -162,6 +162,14 @@ typedef struct in the linker script. */ bool force_group_allocation; + /* If TRUE (the default) warn for uses of system directories when + cross linking. */ + bool poison_system_directories; + + /* If TRUE (default FALSE) give an error for uses of system + directories when cross linking instead of a warning. */ + bool error_poison_system_directories; + /* Big or little endian as set on command line. */ enum endian_enum endian; diff --git a/ld/ld.texi b/ld/ld.texi index dd8f571d4e4..3ab210b41b9 100644 --- a/ld/ld.texi +++ b/ld/ld.texi @@ -2863,6 +2863,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 9d0af06f1f6..7cdd3b1c1b1 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c @@ -117,6 +117,23 @@ ldfile_add_library_path (const char *name, bool cmdline) new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL); else new_dirs->name = xstrdup (name); + +#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES + if (command_line.poison_system_directories + && ((!strncmp (name, "/lib", 4)) + || (!strncmp (name, "/usr/lib", 8)) + || (!strncmp (name, "/usr/local/lib", 14)) + || (!strncmp (name, "/usr/X11R6/lib", 14)))) + { + if (command_line.error_poison_system_directories) + einfo (_("%X%P: error: library search path \"%s\" is unsafe for " + "cross-compilation\n"), name); + else + einfo (_("%P: warning: library search path \"%s\" is unsafe for " + "cross-compilation\n"), name); + } +#endif + } /* Try to open a BFD for a lang_input_statement. */ diff --git a/ld/ldlex.h b/ld/ldlex.h index 9e8bf5fb835..2f0fadfe0a3 100644 --- a/ld/ldlex.h +++ b/ld/ldlex.h @@ -163,6 +163,8 @@ enum option_values OPTION_CTF_VARIABLES, OPTION_NO_CTF_VARIABLES, OPTION_CTF_SHARE_TYPES, + OPTION_NO_POISON_SYSTEM_DIRECTORIES, + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, }; /* The initial parser states. */ diff --git a/ld/ldmain.c b/ld/ldmain.c index 42660eb9a3c..1aef9387f93 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -321,6 +321,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.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 diff --git a/ld/lexsup.c b/ld/lexsup.c index 00274c500d0..4f23b3a2da2 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -595,6 +595,14 @@ static const struct ld_option ld_options[] = " is: share-unconflicted (default),\n" " share-duplicated"), TWO_DASHES }, + { {"no-poison-system-directories", no_argument, NULL, + 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}, + '\0', NULL, N_("Give an error for -L options using system directories"), + TWO_DASHES }, }; #define OPTION_COUNT ARRAY_SIZE (ld_options) @@ -607,6 +615,7 @@ parse_args (unsigned argc, char **argv) int ingroup = 0; char *default_dirlist = NULL; char *shortopts; + char *BR_paranoid_env; struct option *longopts; struct option *really_longopts; int last_optind; @@ -1643,6 +1652,14 @@ parse_args (unsigned argc, char **argv) } 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_PUSH_STATE: input_flags.pushed = xmemdup (&input_flags, sizeof (input_flags), @@ -1788,6 +1805,10 @@ parse_args (unsigned argc, char **argv) command_line.soname = NULL; } + BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH"); + if (BR_paranoid_env && strlen(BR_paranoid_env) > 0) + command_line.error_poison_system_directories = true; + while (ingroup) { einfo (_("%P: missing --end-group; added as last command line option\n")); -- 2.31.1 ================================================ FILE: package/binutils/2.37/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch ================================================ From ef4ba1da823e8366ea4f126f50885a44ebf4dcf0 Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Wed, 9 Jun 2021 17:28:27 +0200 Subject: [PATCH] bfd/elf32-or1k: fix building with gcc version < 5 Gcc version >= 5 has standard C mode not set to -std=gnu11, so if we use an old compiler(i.e. gcc 4.9) build fails on: ``` elf32-or1k.c:2251:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode for (size_t i = 0; i < insn_count; i++) ^ ``` So let's declare `size_t i` at the top of the function instead of inside for loop. Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 4ae7f324d33..32063ab0289 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -2244,9 +2244,10 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj, { unsigned nodelay = elf_elfheader (output_bfd)->e_flags & EF_OR1K_NODELAY; unsigned output_insns[PLT_MAX_INSN_COUNT]; + size_t i; /* Copy instructions into the output buffer. */ - for (size_t i = 0; i < insn_count; i++) + for (i = 0; i < insn_count; i++) output_insns[i] = insns[i]; /* Honor the no-delay-slot setting. */ @@ -2277,7 +2278,7 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj, } /* Write out the output buffer. */ - for (size_t i = 0; i < (insn_count+1); i++) + for (i = 0; i < (insn_count+1); i++) bfd_put_32 (output_bfd, output_insns[i], contents + (i*4)); } -- 2.31.1 ================================================ FILE: package/binutils/2.37/0004-or1k-fix-pc-relative-relocation-against-dynamic-on-P.patch ================================================ From 203b80f8dbdd3ddb860114b03351a0dea28c978f Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Sat, 10 Jul 2021 17:57:34 +0200 Subject: [PATCH] or1k: fix pc-relative relocation against dynamic on PC relative 26 bit relocation When building openal we were seeing the assert failure: /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourcePausev /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourceStopv /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourceRewindv /home/buildroot/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/or1k-buildroot-linux-uclibc/9.3.0/../../../../or1k-buildroot-linux-uclibc/bin/ld: CMakeFiles/OpenAL.dir/al/source.cpp.o: pc-relative relocation against dynamic symbol alSourcePlayv collect2: error: ld returned 1 exit status This happens because in R_OR1K_INSN_REL_26 case we can't reference local symbol as previously done but we need to make sure that calls to actual symbol always call the version of current object. bfd/Changelog: * elf32-or1k.c (or1k_elf_relocate_section): use a separate entry in switch case R_OR1K_INSN_REL_26 where we need to check for !SYMBOL_CALLS_LOCAL() instead of !SYMBOL_REFERENCES_LOCAL(). Signed-off-by: Giulio Benetti --- bfd/elf32-or1k.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 32063ab0289..67252394173 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -1543,6 +1543,18 @@ or1k_elf_relocate_section (bfd *output_bfd, break; case R_OR1K_INSN_REL_26: + /* For a non-shared link, these will reference plt or call the + version of actual object. */ + if (bfd_link_pic (info) && !SYMBOL_CALLS_LOCAL (info, h)) + { + _bfd_error_handler + (_("%pB: pc-relative relocation against dynamic symbol %s"), + input_bfd, name); + ret_val = FALSE; + bfd_set_error (bfd_error_bad_value); + } + break; + case R_OR1K_PCREL_PG21: case R_OR1K_LO13: case R_OR1K_SLO13: -- 2.31.1 ================================================ FILE: package/binutils/Config.in ================================================ config BR2_PACKAGE_BINUTILS bool "binutils" depends on !BR2_nios2 depends on BR2_USE_WCHAR select BR2_PACKAGE_ZLIB help Install binutils on the target if BR2_PACKAGE_BINUTILS config BR2_PACKAGE_BINUTILS_TARGET bool "binutils binaries" help The GNU Binutils are a collection of binary tools: ld - the GNU linker. as - the GNU assembler. and others... http://www.gnu.org/software/binutils/ endif comment "binutils needs a toolchain w/ wchar" depends on !BR2_nios2 depends on !BR2_USE_WCHAR ================================================ FILE: package/binutils/Config.in.host ================================================ comment "Binutils Options" config BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI bool default y depends on !BR2_microblaze choice prompt "Binutils Version" default BR2_BINUTILS_VERSION_2_36_X if !BR2_arc && !BR2_csky default BR2_BINUTILS_VERSION_ARC if BR2_arc help Select the version of binutils you wish to use. config BR2_BINUTILS_VERSION_2_32_X bool "binutils 2.32" depends on !BR2_csky config BR2_BINUTILS_VERSION_2_35_X bool "binutils 2.35.2" depends on !BR2_csky # https://github.com/uclinux-dev/elf2flt/pull/16 # https://github.com/uclinux-dev/elf2flt/issues/12 depends on !BR2_BINFMT_FLAT config BR2_BINUTILS_VERSION_2_36_X bool "binutils 2.36.1" depends on !BR2_csky # https://github.com/uclinux-dev/elf2flt/pull/16 # https://github.com/uclinux-dev/elf2flt/issues/12 depends on !BR2_BINFMT_FLAT config BR2_BINUTILS_VERSION_2_37_X bool "binutils 2.37" # https://github.com/uclinux-dev/elf2flt/pull/16 # https://github.com/uclinux-dev/elf2flt/issues/12 depends on !BR2_BINFMT_FLAT config BR2_BINUTILS_VERSION_ARC bool "binutils arc (2.34.50)" depends on BR2_arc endchoice config BR2_BINUTILS_VERSION string default "arc-2020.09-release" if BR2_BINUTILS_VERSION_ARC default "2.32" if BR2_BINUTILS_VERSION_2_32_X default "2.35.2" if BR2_BINUTILS_VERSION_2_35_X default "2.36.1" if BR2_BINUTILS_VERSION_2_36_X default "2.37" if BR2_BINUTILS_VERSION_2_37_X config BR2_BINUTILS_ENABLE_LTO bool config BR2_BINUTILS_EXTRA_CONFIG_OPTIONS string "Additional binutils options" default "" help Any additional binutils options you may want to include. ================================================ FILE: package/binutils/arc-2020.09-release/0001-poison-system-directories.patch ================================================ From 5f62ad7ce534e3384d6ed8892614979da297bd70 Mon Sep 17 00:00:00 2001 From: Evgeniy Didin Date: Mon, 14 Oct 2019 16:45:15 +0300 Subject: [PATCH] [PATCH] poison-system-directories Patch adapted to arc-binutils-gdb-2019.09 Signed-off-by: Evgeniy Didin 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] Patch originally created by Mark Hatle, forward-ported to binutils 2.21 by Scott Garman. purpose: warn for uses of system directories when cross linking Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 2008-07-02 Joseph Myers ld/ * ld.h (args_type): Add error_poison_system_directories. * ld.texinfo (--error-poison-system-directories): Document. * ldfile.c (ldfile_add_library_path): Check command_line.error_poison_system_directories. * ldmain.c (main): Initialize command_line.error_poison_system_directories. * lexsup.c (enum option_values): Add OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. (ld_options): Add --error-poison-system-directories. (parse_args): Handle new option. 2007-06-13 Joseph Myers ld/ * config.in: Regenerate. * ld.h (args_type): Add poison_system_directories. * ld.texinfo (--no-poison-system-directories): Document. * ldfile.c (ldfile_add_library_path): Check command_line.poison_system_directories. * ldmain.c (main): Initialize command_line.poison_system_directories. * lexsup.c (enum option_values): Add OPTION_NO_POISON_SYSTEM_DIRECTORIES. (ld_options): Add --no-poison-system-directories. (parse_args): Handle new option. 2007-04-20 Joseph Myers Merge from Sourcery G++ binutils 2.17: 2007-03-20 Joseph Myers Based on patch by Mark Hatle . ld/ * 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, /usr/lib, /usr/local/lib or /usr/X11R6/lib. 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.texi | 12 ++++++++++++ ld/ldfile.c | 17 +++++++++++++++++ ld/ldlex.h | 2 ++ ld/ldmain.c | 2 ++ ld/lexsup.c | 21 +++++++++++++++++++++ 9 files changed, 89 insertions(+) diff --git a/ld/config.in b/ld/config.in index d93c9b08300..5da2742beac 100644 --- a/ld/config.in +++ b/ld/config.in @@ -31,6 +31,9 @@ language is requested. */ #undef ENABLE_NLS +/* Define to warn for use of native system library directories */ +#undef ENABLE_POISON_SYSTEM_DIRECTORIES + /* Additional extension a shared object might have. */ #undef EXTRA_SHLIB_EXTENSION diff --git a/ld/configure b/ld/configure index 2d6ca5c0445..563f9921f7f 100755 --- a/ld/configure +++ b/ld/configure @@ -823,6 +823,7 @@ with_lib_path enable_targets enable_64_bit_bfd with_sysroot +enable_poison_system_directories enable_gold enable_got enable_compressed_debug_sections @@ -1487,6 +1488,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 + warn for use of native system library directories --enable-gold[=ARG] build gold [ARG={default,yes,no}] --enable-got= GOT handling scheme (target, single, negative, multigot) @@ -15804,7 +15807,18 @@ else fi +# Check whether --enable-poison-system-directories was given. +if test "${enable_poison_system_directories+set}" = set; then : + enableval=$enable_poison_system_directories; +else + enable_poison_system_directories=no +fi + +if test "x${enable_poison_system_directories}" = "xyes"; then +$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h + +fi # Check whether --enable-got was given. if test "${enable_got+set}" = set; then : diff --git a/ld/configure.ac b/ld/configure.ac index 41a51bbb7e9..dbaa98a9e17 100644 --- a/ld/configure.ac +++ b/ld/configure.ac @@ -94,6 +94,16 @@ AC_SUBST(use_sysroot) AC_SUBST(TARGET_SYSTEM_ROOT) AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) +AC_ARG_ENABLE([poison-system-directories], + AS_HELP_STRING([--enable-poison-system-directories], + [warn for use of native system library directories]),, + [enable_poison_system_directories=no]) +if test "x${enable_poison_system_directories}" = "xyes"; then + AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], + [1], + [Define to warn for use of native system library directories]) +fi + 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. diff --git a/ld/ld.h b/ld/ld.h index 55078a9637b..511e9bc34b7 100644 --- a/ld/ld.h +++ b/ld/ld.h @@ -180,6 +180,14 @@ typedef struct in the linker script. */ bfd_boolean force_group_allocation; + /* 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.texi b/ld/ld.texi index fcbc335c95e..6ba7ebdb32a 100644 --- a/ld/ld.texi +++ b/ld/ld.texi @@ -2557,6 +2557,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 7f60319390e..0bcc06db964 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c @@ -116,6 +116,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline) new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL); else new_dirs->name = xstrdup (name); + +#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES + if (command_line.poison_system_directories + && ((!strncmp (name, "/lib", 4)) + || (!strncmp (name, "/usr/lib", 8)) + || (!strncmp (name, "/usr/local/lib", 14)) + || (!strncmp (name, "/usr/X11R6/lib", 14)))) + { + if (command_line.error_poison_system_directories) + einfo (_("%X%P: error: library search path \"%s\" is unsafe for " + "cross-compilation\n"), name); + else + einfo (_("%P: warning: library search path \"%s\" is unsafe for " + "cross-compilation\n"), name); + } +#endif + } /* Try to open a BFD for a lang_input_statement. */ diff --git a/ld/ldlex.h b/ld/ldlex.h index 32a7a6409e8..c02b64bf92f 100644 --- a/ld/ldlex.h +++ b/ld/ldlex.h @@ -152,6 +152,8 @@ enum option_values OPTION_NO_PRINT_MAP_DISCARDED, OPTION_NON_CONTIGUOUS_REGIONS, OPTION_NON_CONTIGUOUS_REGIONS_WARNINGS, + OPTION_NO_POISON_SYSTEM_DIRECTORIES, + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, }; /* The initial parser states. */ diff --git a/ld/ldmain.c b/ld/ldmain.c index 34c19223137..66d2c3f4bcf 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -270,6 +270,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.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 diff --git a/ld/lexsup.c b/ld/lexsup.c index 1c15ac29c0c..8b714e10a40 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -549,6 +549,14 @@ static const struct ld_option ld_options[] = { {"no-print-map-discarded", no_argument, NULL, OPTION_NO_PRINT_MAP_DISCARDED}, '\0', NULL, N_("Do not show discarded sections in map file output"), TWO_DASHES }, + { {"no-poison-system-directories", no_argument, NULL, + 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}, + '\0', NULL, N_("Give an error for -L options using system directories"), + TWO_DASHES }, }; #define OPTION_COUNT ARRAY_SIZE (ld_options) @@ -561,6 +569,7 @@ parse_args (unsigned argc, char **argv) int ingroup = 0; char *default_dirlist = NULL; char *shortopts; + char *BR_paranoid_env; struct option *longopts; struct option *really_longopts; int last_optind; @@ -1549,6 +1558,14 @@ parse_args (unsigned argc, char **argv) } 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_PUSH_STATE: input_flags.pushed = xmemdup (&input_flags, sizeof (input_flags), @@ -1600,6 +1617,10 @@ parse_args (unsigned argc, char **argv) command_line.soname = NULL; } + BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH"); + if (BR_paranoid_env && strlen(BR_paranoid_env) > 0) + command_line.error_poison_system_directories = TRUE; + while (ingroup) { einfo (_("%P: missing --end-group; added as last command line option\n")); -- 2.16.2 ================================================ FILE: package/binutils/binutils.hash ================================================ # From ftp://gcc.gnu.org/pub/binutils/releases/sha512.sum sha512 d326408f12a03d9a61a9de56584c2af12f81c2e50d2d7e835d51565df8314df01575724afa1e43bd0db45cfc9916b41519b67dfce03232aa4978704492a6994a binutils-2.32.tar.xz sha512 9974ede5978d32e0d68fef23da48fa00bd06b0bff7ec45b00ca075c126d6bbe0cf2defc03ecc3f17bc6cc85b64271a13009c4049d7ba17de26e84e3a6e2c0348 binutils-2.35.2.tar.xz sha512 cc24590bcead10b90763386b6f96bb027d7594c659c2d95174a6352e8b98465a50ec3e4088d0da038428abe059bbc4ae5f37b269f31a40fc048072c8a234f4e9 binutils-2.36.1.tar.xz sha512 5c11aeef6935860a6819ed3a3c93371f052e52b4bdc5033da36037c1544d013b7f12cb8d561ec954fe7469a68f1b66f1a3cd53d5a3af7293635a90d69edd15e7 binutils-2.37.tar.xz # Locally calculated (fetched from Github) sha512 76a8227a19218435319c660e4983ea17985194b7f496f163e97543e7f6fd3e9249241fdc05a16ba512fba96a1d846c1f7b080983404d821d6215f10e7f11e238 binutils-gdb-arc-2020.09-release.tar.gz # locally computed sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING3 sha256 56bdea73b6145ef6ac5259b3da390b981d840c24cb03b8e1cbc678de7ecfa18d COPYING.LIB ================================================ FILE: package/binutils/binutils.mk ================================================ ################################################################################ # # binutils # ################################################################################ # Version is set when using buildroot toolchain. # If not, we do like other packages BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION)) ifeq ($(BINUTILS_VERSION),) ifeq ($(BR2_arc),y) BINUTILS_VERSION = arc-2020.09-release else BINUTILS_VERSION = 2.36.1 endif endif # BINUTILS_VERSION ifeq ($(BINUTILS_VERSION),arc-2020.09-release) BINUTILS_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,binutils-gdb,$(BINUTILS_VERSION)) BINUTILS_SOURCE = binutils-gdb-$(BINUTILS_VERSION).tar.gz BINUTILS_FROM_GIT = y endif BINUTILS_SITE ?= $(BR2_GNU_MIRROR)/binutils BINUTILS_SOURCE ?= binutils-$(BINUTILS_VERSION).tar.xz BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS)) BINUTILS_INSTALL_STAGING = YES BINUTILS_DEPENDENCIES = zlib $(TARGET_NLS_DEPENDENCIES) BINUTILS_MAKE_OPTS = LIBS=$(TARGET_NLS_LIBS) BINUTILS_LICENSE = GPL-3.0+, libiberty LGPL-2.1+ BINUTILS_LICENSE_FILES = COPYING3 COPYING.LIB BINUTILS_CPE_ID_VENDOR = gnu ifeq ($(BINUTILS_FROM_GIT),y) BINUTILS_DEPENDENCIES += host-flex host-bison HOST_BINUTILS_DEPENDENCIES += host-flex host-bison endif # When binutils sources are fetched from the binutils-gdb repository, # they also contain the gdb sources, but gdb shouldn't be built, so we # disable it. BINUTILS_DISABLE_GDB_CONF_OPTS = \ --disable-sim \ --disable-gdb # We need to specify host & target to avoid breaking ARM EABI BINUTILS_CONF_OPTS = \ --disable-multilib \ --disable-werror \ --host=$(GNU_TARGET_NAME) \ --target=$(GNU_TARGET_NAME) \ --enable-install-libiberty \ --enable-build-warnings=no \ --with-system-zlib \ $(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 += MAKEINFO=true BINUTILS_MAKE_OPTS += MAKEINFO=true BINUTILS_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MAKEINFO=true install HOST_BINUTILS_CONF_ENV += MAKEINFO=true HOST_BINUTILS_MAKE_OPTS += MAKEINFO=true HOST_BINUTILS_INSTALL_OPTS += MAKEINFO=true install # Workaround a build issue with -Os for ARM Cortex-M cpus. # (Binutils 2.25.1 and 2.26.1) # https://sourceware.org/bugzilla/show_bug.cgi?id=20552 ifeq ($(BR2_ARM_CPU_ARMV7M)$(BR2_OPTIMIZE_S),yy) BINUTILS_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -O2" endif # "host" binutils should actually be "cross" # We just keep the convention of "host utility" for now HOST_BINUTILS_CONF_OPTS = \ --disable-multilib \ --disable-werror \ --target=$(GNU_TARGET_NAME) \ --disable-shared \ --enable-static \ --with-sysroot=$(STAGING_DIR) \ --enable-poison-system-directories \ --without-debuginfod \ $(BINUTILS_DISABLE_GDB_CONF_OPTS) \ $(BINUTILS_EXTRA_CONFIG_OPTIONS) # binutils run configure script of subdirs at make time, so ensure # our TARGET_CONFIGURE_ARGS are taken into consideration for those BINUTILS_MAKE_ENV = $(TARGET_CONFIGURE_ARGS) # We just want libbfd, libiberty and libopcodes, # not the full-blown binutils in staging define BINUTILS_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/bfd DESTDIR=$(STAGING_DIR) install $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/opcodes DESTDIR=$(STAGING_DIR) install $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libiberty DESTDIR=$(STAGING_DIR) install endef # If we don't want full binutils on target ifneq ($(BR2_PACKAGE_BINUTILS_TARGET),y) define BINUTILS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/bfd DESTDIR=$(TARGET_DIR) install $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/opcodes DESTDIR=$(TARGET_DIR) install $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libiberty DESTDIR=$(STAGING_DIR) install endef endif ifneq ($(ARCH_XTENSA_OVERLAY_FILE),) define BINUTILS_XTENSA_OVERLAY_EXTRACT $(call arch-xtensa-overlay-extract,$(@D),binutils) endef BINUTILS_POST_EXTRACT_HOOKS += BINUTILS_XTENSA_OVERLAY_EXTRACT BINUTILS_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) HOST_BINUTILS_POST_EXTRACT_HOOKS += BINUTILS_XTENSA_OVERLAY_EXTRACT HOST_BINUTILS_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) endif ifeq ($(BR2_BINUTILS_ENABLE_LTO),y) HOST_BINUTILS_CONF_OPTS += --enable-plugins --enable-lto endif # Hardlinks between binaries in different directories cause a problem # with rpath fixup, so we de-hardlink those binaries, and replace them # with copies instead. BINUTILS_TOOLS = ar as ld ld.bfd nm objcopy objdump ranlib readelf strip define HOST_BINUTILS_FIXUP_HARDLINKS $(foreach tool,$(BINUTILS_TOOLS),\ rm -f $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/$(tool) && \ cp -a $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-$(tool) \ $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/$(tool) ) endef HOST_BINUTILS_POST_INSTALL_HOOKS += HOST_BINUTILS_FIXUP_HARDLINKS $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/biosdevname/Config.in ================================================ config BR2_PACKAGE_BIOSDEVNAME bool "biosdevname" depends on BR2_i386 || BR2_x86_64 depends on BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_PCIUTILS select BR2_PACKAGE_ZLIB help Biosdevname is a udev helper that looks at various BIOS tables to figure out what the actual hardware names are for Ethernet ports and renames the ports accordingly. This has the advantage of always referring to the same port regardless of system or hardware changes that might otherwise alter the typical ethX naming. https://github.com/dell/biosdevname/ ================================================ FILE: package/biosdevname/biosdevname.hash ================================================ # Locally computed hashes, not provided by upstream sha256 3a67fee0c315996bbba586c1c077e57625382d38dc48fb3c9e84d56a7a5effad biosdevname-0.7.3.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/biosdevname/biosdevname.mk ================================================ ################################################################################ # # biosdevname # ################################################################################ BIOSDEVNAME_VERSION = 0.7.3 BIOSDEVNAME_SITE = $(call github,dell,biosdevname,v$(BIOSDEVNAME_VERSION)) BIOSDEVNAME_LICENSE = GPL BIOSDEVNAME_LICENSE_FILES = COPYING BIOSDEVNAME_CONF_OPTS = --exec-prefix=/ BIOSDEVNAME_DEPENDENCIES = pciutils udev zlib BIOSDEVNAME_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/bird/Config.in ================================================ config BR2_PACKAGE_BIRD bool "bird" depends on !BR2_nios2 # relocations don't fit depends on BR2_USE_MMU # fork() help BIRD Internet Routing Daemon The BIRD project aims to develop a dynamic IP routing daemon with full support of all modern routing protocols, easy to use configuration interface and powerful route filtering language http://bird.network.cz/ if BR2_PACKAGE_BIRD config BR2_PACKAGE_BIRD_CLIENT bool "birdc" select BR2_PACKAGE_NCURSES select BR2_PACKAGE_READLINE help Enable the BIRD client comment "protocol support" config BR2_PACKAGE_BIRD_BABEL bool "babel" help Enable Babel protocol. config BR2_PACKAGE_BIRD_BFD bool "bfd" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL help Enable BFD protocol. comment "BFD protocol needs a toolchain w/ NPTL" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL config BR2_PACKAGE_BIRD_BGP bool "bgp" default y help Enable BGP protocol. config BR2_PACKAGE_BIRD_MRT bool "mrt" help Enable MRT protocol. config BR2_PACKAGE_BIRD_OSPF bool "ospf" help Enable OSPFv2 and OSPFv3 protocol. config BR2_PACKAGE_BIRD_PERF bool "perf" help Enable Perf protocol. config BR2_PACKAGE_BIRD_PIPE bool "pipe" help Enable Pipe protocol. config BR2_PACKAGE_BIRD_RADV bool "radv" help Enable RAdv protocol. config BR2_PACKAGE_BIRD_RIP bool "rip" help Enable RIP protocol. config BR2_PACKAGE_BIRD_RPKI bool "rpki" help Enable RPKI protocol. config BR2_PACKAGE_BIRD_STATIC bool "static" help Enable Static protocol. endif ================================================ FILE: package/bird/bird.hash ================================================ sha256 19d2de83ee25a307b9e5b9e58797dd68766d439bcee33e3ac617ed502370e7f6 bird-2.0.8.tar.gz sha256 94c53c84320078920ac1f0d49c81a4e9004512f534521a58bdf145acbcbc2cd2 README ================================================ FILE: package/bird/bird.mk ================================================ ################################################################################ # # bird # ################################################################################ BIRD_VERSION = 2.0.8 BIRD_SITE = ftp://bird.network.cz/pub/bird BIRD_LICENSE = GPL-2.0+ BIRD_LICENSE_FILES = README BIRD_CPE_ID_VENDOR = nic BIRD_SELINUX_MODULES = bird BIRD_DEPENDENCIES = host-flex host-bison BIRD_AUTORECONF = YES ifeq ($(BR2_PACKAGE_BIRD_CLIENT),y) BIRD_CONF_OPTS += --enable-client BIRD_DEPENDENCIES += ncurses readline else BIRD_CONF_OPTS += --disable-client endif ifeq ($(BR2_PACKAGE_LIBSSH),y) BIRD_CONF_OPTS += --enable-libssh BIRD_DEPENDENCIES += libssh else BIRD_CONF_OPTS += --disable-libssh endif BIRD_PROTOCOLS = \ $(if $(BR2_PACKAGE_BIRD_BFD),bfd) \ $(if $(BR2_PACKAGE_BIRD_BABEL),babel) \ $(if $(BR2_PACKAGE_BIRD_BGP),bgp) \ $(if $(BR2_PACKAGE_BIRD_MRT),mrt) \ $(if $(BR2_PACKAGE_BIRD_OSPF),ospf) \ $(if $(BR2_PACKAGE_BIRD_PERF),perf) \ $(if $(BR2_PACKAGE_BIRD_PIPE),pipe) \ $(if $(BR2_PACKAGE_BIRD_RADV),radv) \ $(if $(BR2_PACKAGE_BIRD_RIP),rip) \ $(if $(BR2_PACKAGE_BIRD_RPKI),rpki) \ $(if $(BR2_PACKAGE_BIRD_STATIC),static) BIRD_CONF_OPTS += --with-protocols=$(subst $(space),$(comma),$(strip $(BIRD_PROTOCOLS))) $(eval $(autotools-package)) ================================================ FILE: package/bison/bison.hash ================================================ # Locally calculated after checking pgp signature from # http://mirror.keystealth.org/gnu/bison/bison-3.8.2.tar.xz.sig sha256 9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2 bison-3.8.2.tar.xz # License files, locally calculated sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 COPYING ================================================ FILE: package/bison/bison.mk ================================================ ################################################################################ # # bison # ################################################################################ BISON_VERSION = 3.8.2 BISON_SOURCE = bison-$(BISON_VERSION).tar.xz BISON_SITE = $(BR2_GNU_MIRROR)/bison BISON_LICENSE = GPL-3.0+ BISON_LICENSE_FILES = COPYING BISON_CPE_ID_VENDOR = gnu # parallel build issue in examples/c/reccalc/ BISON_MAKE = $(MAKE1) HOST_BISON_DEPENDENCIES = host-m4 HOST_BISON_CONF_OPTS = --enable-relocatable HOST_BISON_CONF_ENV = ac_cv_libtextstyle=no $(eval $(host-autotools-package)) ================================================ FILE: package/bitcoin/0001-src-randomenv.cpp-fix-build-on-uclibc.patch ================================================ From 330cb33985d0ce97c20f4a0f0bbda0fbffe098d4 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 9 Nov 2020 21:18:40 +0100 Subject: [PATCH] src/randomenv.cpp: fix build on uclibc Check for HAVE_STRONG_GETAUXVAL or HAVE_WEAK_GETAUXVAL before using getauxval to avoid a build failure on uclibc Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/bitcoin/bitcoin/pull/20358] --- src/randomenv.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/randomenv.cpp b/src/randomenv.cpp index 07122b7f6..5e07c3db4 100644 --- a/src/randomenv.cpp +++ b/src/randomenv.cpp @@ -53,7 +53,7 @@ #include #endif #endif -#ifdef __linux__ +#if defined(HAVE_STRONG_GETAUXVAL) || defined(HAVE_WEAK_GETAUXVAL) #include #endif @@ -326,7 +326,7 @@ void RandAddStaticEnv(CSHA512& hasher) // Bitcoin client version hasher << CLIENT_VERSION; -#ifdef __linux__ +#if defined(HAVE_STRONG_GETAUXVAL) || defined(HAVE_WEAK_GETAUXVAL) // Information available through getauxval() # ifdef AT_HWCAP hasher << getauxval(AT_HWCAP); @@ -346,7 +346,7 @@ void RandAddStaticEnv(CSHA512& hasher) const char* exec_str = (const char*)getauxval(AT_EXECFN); if (exec_str) hasher.Write((const unsigned char*)exec_str, strlen(exec_str) + 1); # endif -#endif // __linux__ +#endif // HAVE_STRONG_GETAUXVAL || HAVE_WEAK_GETAUXVAL #ifdef HAVE_GETCPUID AddAllCPUID(hasher); -- 2.28.0 ================================================ FILE: package/bitcoin/Config.in ================================================ config BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS bool default y if BR2_TOOLCHAIN_HAS_ATOMIC # bitcoin uses 8-byte __atomic intrinsics, which are not # available on ARM noMMU platforms that we # support. BR2_TOOLCHAIN_HAS_ATOMIC does not provide a # size-level granularity to express this dependency. depends on !(BR2_arm || BR2_armeb) || BR2_USE_MMU config BR2_PACKAGE_BITCOIN bool "bitcoin" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread, boost-filesystem depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::future depends on BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS # boost depends on BR2_USE_WCHAR select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_THREAD select BR2_PACKAGE_LIBEVENT help Bitcoin Core is an open source project which maintains and releases Bitcoin client software called “Bitcoin Core”. It is a direct descendant of the original Bitcoin software client released by Satoshi Nakamoto after he published the famous Bitcoin whitepaper. Bitcoin Core consists of both "full-node" software for fully validating the blockchain as well as a bitcoin wallet. The project also currently maintains related software such as the cryptography library libsecp256k1 and others located at GitHub. https://bitcoincore.org comment "bitcoin needs a toolchain w/ C++, threads, wchar" depends on BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR comment "bitcoin needs a toolchain not affected by GCC bug 64735" depends on BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/bitcoin/bitcoin.hash ================================================ # From https://bitcoincore.org/bin/bitcoin-core-0.21.2/SHA256SUMS.asc sha256 4146f751fc5691bdcf911cbdb8d32d8d25c297d29d58173227ae1ae6438edb9e bitcoin-0.21.2.tar.gz # Hash for license file sha256 96fe807030b21f88305adc32af62f9aa19915f2783509fd6f52aea02cf83f644 COPYING ================================================ FILE: package/bitcoin/bitcoin.mk ================================================ ################################################################################ # # bitcoin # ################################################################################ BITCOIN_VERSION = 0.21.2 BITCOIN_SITE = https://bitcoincore.org/bin/bitcoin-core-$(BITCOIN_VERSION) BITCOIN_AUTORECONF = YES BITCOIN_LICENSE = MIT BITCOIN_LICENSE_FILES = COPYING BITCOIN_CPE_ID_VENDOR = bitcoin BITCOIN_CPE_ID_PRODUCT = bitcoin_core BITCOIN_DEPENDENCIES = host-pkgconf boost libevent BITCOIN_MAKE_ENV = BITCOIN_GENBUILD_NO_GIT=1 BITCOIN_CONF_OPTS = \ --disable-bench \ --disable-wallet \ --disable-tests \ --with-boost-libdir=$(STAGING_DIR)/usr/lib/ \ --disable-hardening \ --without-gui ifeq ($(BR2_PACKAGE_LIBMINIUPNPC),y) BITCOIN_DEPENDENCIES += libminiupnpc BITCOIN_CONF_OPTS += --with-miniupnpc else BITCOIN_CONF_OPTS += --without-miniupnpc endif ifeq ($(BR2_PACKAGE_ZEROMQ),y) BITCOIN_DEPENDENCIES += zeromq BITCOIN_CONF_OPTS += --with-zmq else BITCOIN_CONF_OPTS += --without-zmq endif $(eval $(autotools-package)) ================================================ FILE: package/bitstream/Config.in ================================================ config BR2_PACKAGE_BITSTREAM bool "bitstream" help biTStream is a set of C headers allowing a simpler access to binary structures such as specified by MPEG, DVB, IETF, SMPTE, IEEE, SCTE, etc. http://www.videolan.org/developers/bitstream.html ================================================ FILE: package/bitstream/bitstream.hash ================================================ # From https://get.videolan.org/bitstream/1.5/bitstream-1.5.tar.bz2.md5 md5 34630d13332fd1575bcc8531b0a596be bitstream-1.5.tar.bz2 # From https://get.videolan.org/bitstream/1.5/bitstream-1.5.tar.bz2.sha256 sha256 45fc5a5a6e4537a69fa8440821e87b76252135180a3070c631b0b36ce0a3b90a bitstream-1.5.tar.bz2 # Locally computed sha256 9644a812f9a8377a59acb7092a36ce8882a39743425d9171a8fb84637e2f6e04 COPYING ================================================ FILE: package/bitstream/bitstream.mk ================================================ ################################################################################ # # bitstream # ################################################################################ BITSTREAM_VERSION = 1.5 BITSTREAM_SOURCE = bitstream-$(BITSTREAM_VERSION).tar.bz2 BITSTREAM_SITE = https://get.videolan.org/bitstream/$(BITSTREAM_VERSION) BITSTREAM_LICENSE = MIT BITSTREAM_LICENSE_FILES = COPYING # package consists of header files only BITSTREAM_INSTALL_STAGING = YES BITSTREAM_INSTALL_TARGET = NO define BITSTREAM_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) PREFIX=/usr install endef $(eval $(generic-package)) ================================================ FILE: package/bitstream-vera/Config.in ================================================ config BR2_PACKAGE_BITSTREAM_VERA bool "Bitstream Vera" help Bitstream Vera font family. https://www.gnome.org/fonts/ ================================================ FILE: package/bitstream-vera/bitstream-vera.hash ================================================ # From http://ftp.gnome.org/pub/GNOME/sources/ttf-bitstream-vera/1.10/ttf-bitstream-vera-1.10.tar.bz2.sha256sum sha256 db5b27df7bbb318036ebdb75acd3e98f1bd6eb6608fb70a67d478cd243d178dc ttf-bitstream-vera-1.10.tar.bz2 # locally computed sha256 3361d054759a2fc686a2c058be82deaf9c2e6fe549be9004d7935a6c1736315d COPYRIGHT.TXT ================================================ FILE: package/bitstream-vera/bitstream-vera.mk ================================================ ################################################################################ # # bitstream-vera # ################################################################################ BITSTREAM_VERA_VERSION = 1.10 BITSTREAM_VERA_SITE = http://ftp.gnome.org/pub/GNOME/sources/ttf-bitstream-vera/$(BITSTREAM_VERA_VERSION) BITSTREAM_VERA_SOURCE = ttf-bitstream-vera-$(BITSTREAM_VERA_VERSION).tar.bz2 BITSTREAM_VERA_TARGET_DIR = $(TARGET_DIR)/usr/share/fonts/ttf-bitstream-vera BITSTREAM_VERA_LICENSE = BitstreamVera BITSTREAM_VERA_LICENSE_FILES = COPYRIGHT.TXT define BITSTREAM_VERA_INSTALL_TARGET_CMDS mkdir -p $(BITSTREAM_VERA_TARGET_DIR) $(INSTALL) -m 644 $(@D)/*.ttf $(BITSTREAM_VERA_TARGET_DIR) endef $(eval $(generic-package)) ================================================ FILE: package/bitwise/Config.in ================================================ config BR2_PACKAGE_BITWISE bool "bitwise" select BR2_PACKAGE_NCURSES select BR2_PACKAGE_READLINE help Bitwise is multi base interactive calculator supporting dynamic base conversion and bit manipulation. It's a handy tool for low level hackers, kernel developers and device drivers developers. https://github.com/mellowcandle/bitwise ================================================ FILE: package/bitwise/bitwise.hash ================================================ # Locally calculated sha256 d3d43cef47bf8f49e85f7ed381c3eaf1df921ca51805e0962f1a97a517e1d1d2 bitwise-v0.42.tar.gz sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 COPYING ================================================ FILE: package/bitwise/bitwise.mk ================================================ ################################################################################ # # bitwise # ################################################################################ BITWISE_VERSION = 0.42 BITWISE_SITE = https://github.com/mellowcandle/bitwise/releases/download/v$(BITWISE_VERSION) BITWISE_SOURCE = bitwise-v$(BITWISE_VERSION).tar.gz BITWISE_DEPENDENCIES = ncurses readline BITWISE_LICENSE = GPL-3.0 BITWISE_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/blktrace/Config.in ================================================ config BR2_PACKAGE_BLKTRACE bool "blktrace" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # system() select BR2_PACKAGE_LIBAIO help blktrace is a block layer IO tracing mechanism which provides detailed information about request queue operations up to user space. http://git.kernel.dk/?p=blktrace.git;a=summary comment "blktrace needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/blktrace/blktrace.hash ================================================ # From http://brick.kernel.dk/snaps/MD5SUMS md5 aa9bc7d76870d8dae56aa816527e8e15 blktrace-1.3.0.tar.bz2 # Locally computed sha256 d6deda03862de2bd1b1b9fba729bbb862d9bca795e6aa7f7ca86b656811a70d6 blktrace-1.3.0.tar.bz2 sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/blktrace/blktrace.mk ================================================ ################################################################################ # # blktrace # ################################################################################ BLKTRACE_VERSION = 1.3.0 BLKTRACE_SOURCE = blktrace-$(BLKTRACE_VERSION).tar.bz2 BLKTRACE_SITE = http://brick.kernel.dk/snaps BLKTRACE_DEPENDENCIES = libaio BLKTRACE_LICENSE = GPL-2.0+ BLKTRACE_LICENSE_FILES = COPYING BLKTRACE_CPE_ID_VENDOR = blktrace_project define BLKTRACE_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) $(TARGET_CONFIGURE_OPTS) endef define BLKTRACE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) $(TARGET_CONFIGURE_OPTS) install \ DESTDIR=$(TARGET_DIR) prefix=/usr endef $(eval $(generic-package)) ================================================ FILE: package/bluez-alsa/Config.in ================================================ config BR2_PACKAGE_BLUEZ_ALSA bool "bluez-alsa" depends on !BR2_STATIC_LIBS # bluez5 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C11/stdatomic.h depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # bluez5 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # bluez5 depends on BR2_USE_MMU # bluez5 -> dbus depends on BR2_USE_WCHAR # libglib2 select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_BLUEZ5_UTILS select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_SBC help Bluetooth Audio ALSA Backend. https://github.com/Arkq/bluez-alsa if BR2_PACKAGE_BLUEZ_ALSA config BR2_PACKAGE_BLUEZ_ALSA_HCITOP bool "hcitop" depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS select BR2_PACKAGE_LIBBSD select BR2_PACKAGE_NCURSES help Enable top-like monitoring tool for HCI. config BR2_PACKAGE_BLUEZ_ALSA_RFCOMM bool "rfcomm" select BR2_PACKAGE_READLINE help Simple tool for sending RFCOMM commands. endif comment "bluez-alsa needs a toolchain w/ wchar, NPTL, headers >= 3.4, dynamic library, gcc >= 4.9" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_MMU ================================================ FILE: package/bluez-alsa/bluez-alsa.hash ================================================ # Locally calculated: sha256 d9a878d9fd7f18842c9c8ed83bc96cab684753c90f2751d575a3cdd776ec78a5 bluez-alsa-3.1.0.tar.gz sha256 60253922a459245128c34eb379cbda7c76936636d4c10edc576663a0f560dd4d LICENSE ================================================ FILE: package/bluez-alsa/bluez-alsa.mk ================================================ ################################################################################ # # bluez-alsa # ################################################################################ BLUEZ_ALSA_VERSION = 3.1.0 BLUEZ_ALSA_SITE = $(call github,Arkq,bluez-alsa,v$(BLUEZ_ALSA_VERSION)) BLUEZ_ALSA_LICENSE = MIT BLUEZ_ALSA_LICENSE_FILES = LICENSE BLUEZ_ALSA_DEPENDENCIES = alsa-lib bluez5_utils libglib2 sbc host-pkgconf # git repo, no configure BLUEZ_ALSA_AUTORECONF = YES BLUEZ_ALSA_CONF_OPTS = \ --enable-a2dpconf \ --enable-aplay \ --disable-debug-time \ --with-alsaplugindir=/usr/lib/alsa-lib \ --with-alsaconfdir=/etc/alsa/conf.d ifeq ($(BR2_PACKAGE_FDK_AAC),y) BLUEZ_ALSA_DEPENDENCIES += fdk-aac BLUEZ_ALSA_CONF_OPTS += --enable-aac else BLUEZ_ALSA_CONF_OPTS += --disable-aac endif ifeq ($(BR2_PACKAGE_LAME),y) BLUEZ_ALSA_DEPENDENCIES += lame BLUEZ_ALSA_CONF_OPTS += --enable-mp3lame else BLUEZ_ALSA_CONF_OPTS += --disable-mp3lame endif ifeq ($(BR2_PACKAGE_MPG123),y) BLUEZ_ALSA_DEPENDENCIES += mpg123 BLUEZ_ALSA_CONF_OPTS += --enable-mpg123 else BLUEZ_ALSA_CONF_OPTS += --disable-mpg123 endif # no build dependency, disables internal HFP in favor of oFonos HFP profile ifeq ($(BR2_PACKAGE_OFONO),y) BLUEZ_ALSA_CONF_OPTS += --enable-ofono else BLUEZ_ALSA_CONF_OPTS += --disable-ofono endif # no build dependency, enables integration with UPower D-Bus service ifeq ($(BR2_PACKAGE_UPOWER),y) BLUEZ_ALSA_CONF_OPTS += --enable-upower else BLUEZ_ALSA_CONF_OPTS += --disable-upower endif ifeq ($(BR2_PACKAGE_BLUEZ_ALSA_HCITOP),y) BLUEZ_ALSA_DEPENDENCIES += libbsd ncurses BLUEZ_ALSA_CONF_OPTS += --enable-hcitop else BLUEZ_ALSA_CONF_OPTS += --disable-hcitop endif ifeq ($(BR2_PACKAGE_BLUEZ_ALSA_RFCOMM),y) BLUEZ_ALSA_DEPENDENCIES += readline BLUEZ_ALSA_CONF_OPTS += --enable-rfcomm else BLUEZ_ALSA_CONF_OPTS += --disable-rfcomm endif $(eval $(autotools-package)) ================================================ FILE: package/bluez-tools/Config.in ================================================ config BR2_PACKAGE_BLUEZ_TOOLS bool "bluez-tools" depends on BR2_PACKAGE_BLUEZ5_UTILS depends on BR2_USE_MMU # dbus, libglib2 depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2 select BR2_PACKAGE_DBUS select BR2_PACKAGE_DBUS_GLIB select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_READLINE if BR2_PACKAGE_BLUEZ5_UTILS help A set of tools to manage bluetooth devices for linux https://github.com/khvzak/bluez-tools comment "bluez-tools needs a toolchain w/ wchar, threads" depends on BR2_PACKAGE_BLUEZ5_UTILS depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/bluez-tools/bluez-tools.hash ================================================ # Locally computed sha256 dd5acf9e501514f4ad1136af966d2723f3270e0e2fffd6d29da93fa76c9fafa3 bluez-tools-f65321736475429316f07ee94ec0deac8e46ec4a.tar.gz sha256 b499eddebda05a8859e32b820a64577d91f1de2b52efa2a1575a2cb4000bc259 COPYING ================================================ FILE: package/bluez-tools/bluez-tools.mk ================================================ ################################################################################ # # bluez-tools # ################################################################################ BLUEZ_TOOLS_VERSION = f65321736475429316f07ee94ec0deac8e46ec4a BLUEZ_TOOLS_SITE = $(call github,khvzak,bluez-tools,$(BLUEZ_TOOLS_VERSION)) # sources fetched from github, no configure script) BLUEZ_TOOLS_AUTORECONF = YES BLUEZ_TOOLS_DEPENDENCIES = host-pkgconf dbus dbus-glib bluez5_utils readline BLUEZ_TOOLS_LICENSE = GPL-2.0+ BLUEZ_TOOLS_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/bluez5_utils/0001-tools-mesh-cfgtest-include-limits.h.patch ================================================ From 5158827fded7cb4daf550a5956aff0c74f6c38fc Mon Sep 17 00:00:00 2001 From: Michael Nosthoff Date: Thu, 22 Jul 2021 21:36:13 +0200 Subject: [PATCH BlueZ] tools/mesh-cfgtest: include limits.h mesh-cfgtest.c uses PATH_MAX so it should include limits.h. fixes compilation error when enabling mesh support with musl-based toolchains observed in buildroot autobuilders. http://autobuild.buildroot.net/results/20cc47f54de0b0d4bdf108c3715c590ae8ab476f/ http://autobuild.buildroot.net/results/003968b25906579dbcf5a95d1e43fec0ab504ef5/ Signed-off-by: Michael Nosthoff --- tools/mesh-cfgtest.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/mesh-cfgtest.c b/tools/mesh-cfgtest.c index fa0474faa..116ab7f16 100644 --- a/tools/mesh-cfgtest.c +++ b/tools/mesh-cfgtest.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include -- 2.32.0 ================================================ FILE: package/bluez5_utils/0005-build-Fix-errors-with-glibc-2-25.patch ================================================ From fb57ad9b9d107856e5f1c8135da04ffa2f7a11ac Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 14 Feb 2022 21:17:39 +0100 Subject: build: Fix errors with glibc < 2.25 getrandom and sys/random.h are only available since glibc 2.25: https://www.gnu.org/software/gnulib/manual/html_node/sys_002frandom_002eh.html resulting in the following build failures since version 5.63 and https://git.kernel.org/pub/scm/bluetooth/bluez.git/log/?qt=grep&q=getrandom: plugins/autopair.c:20:24: fatal error: sys/random.h: No such file or directory #include ^ To fix this build failure, add util_getrandom and a fallback (borrowed from pipewire and licensed under MIT): https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/src/pipewire/utils.c Fixes: - http://autobuild.buildroot.org/results/6b8870d12e0804d6154230a7322c49416c1dc0e2 [Retrieved from: https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=fb57ad9b9d107856e5f1c8135da04ffa2f7a11ac] Signed-off-by: Fabrice Fontaine --- configure.ac | 4 +++- emulator/le.c | 3 +-- emulator/phy.c | 3 +-- peripheral/main.c | 4 ++-- plugins/autopair.c | 4 ++-- profiles/health/hdp.c | 4 ++-- profiles/health/mcap.c | 6 +++--- src/shared/util.c | 25 +++++++++++++++++++++++++ src/shared/util.h | 2 ++ tools/btgatt-server.c | 3 +-- 10 files changed, 42 insertions(+), 16 deletions(-) diff --git a/configure.ac b/configure.ac index 07d068a4d..441bd5f29 100644 --- a/configure.ac +++ b/configure.ac @@ -54,6 +54,8 @@ AC_ARG_ENABLE(threads, AS_HELP_STRING([--enable-threads], AC_CHECK_FUNCS(explicit_bzero) +AC_CHECK_FUNCS(getrandom) + AC_CHECK_FUNCS(rawmemchr) AC_CHECK_FUNC(signalfd, dummy=yes, @@ -68,7 +70,7 @@ AC_CHECK_LIB(pthread, pthread_create, dummy=yes, AC_CHECK_LIB(dl, dlopen, dummy=yes, AC_MSG_ERROR(dynamic linking loader is required)) -AC_CHECK_HEADERS(linux/types.h linux/if_alg.h linux/uinput.h linux/uhid.h) +AC_CHECK_HEADERS(linux/types.h linux/if_alg.h linux/uinput.h linux/uhid.h sys/random.h) PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.28, dummy=yes, AC_MSG_ERROR(GLib >= 2.28 is required)) diff --git a/emulator/le.c b/emulator/le.c index f8f313f2c..7656a657c 100644 --- a/emulator/le.c +++ b/emulator/le.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #include "lib/bluetooth.h" @@ -509,7 +508,7 @@ static unsigned int get_adv_delay(void) /* The advertising delay is a pseudo-random value with a range * of 0 ms to 10 ms generated for each advertising event. */ - if (getrandom(&val, sizeof(val), 0) < 0) { + if (util_getrandom(&val, sizeof(val), 0) < 0) { /* If it fails to get the random number, use a static value */ val = 5; } diff --git a/emulator/phy.c b/emulator/phy.c index 44cace438..7de85fb05 100644 --- a/emulator/phy.c +++ b/emulator/phy.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -174,7 +173,7 @@ struct bt_phy *bt_phy_new(void) mainloop_add_fd(phy->rx_fd, EPOLLIN, phy_rx_callback, phy, NULL); if (!get_random_bytes(&phy->id, sizeof(phy->id))) { - if (getrandom(&phy->id, sizeof(phy->id), 0) < 0) { + if (util_getrandom(&phy->id, sizeof(phy->id), 0) < 0) { mainloop_remove_fd(phy->rx_fd); close(phy->tx_fd); close(phy->rx_fd); diff --git a/peripheral/main.c b/peripheral/main.c index 91adb45fc..b82d7caf6 100644 --- a/peripheral/main.c +++ b/peripheral/main.c @@ -25,13 +25,13 @@ #include #include #include -#include #ifndef WAIT_ANY #define WAIT_ANY (-1) #endif #include "src/shared/mainloop.h" +#include "src/shared/util.h" #include "peripheral/efivars.h" #include "peripheral/attach.h" #include "peripheral/gap.h" @@ -192,7 +192,7 @@ int main(int argc, char *argv[]) addr, 6) < 0) { printf("Generating new persistent static address\n"); - if (getrandom(addr, sizeof(addr), 0) < 0) { + if (util_getrandom(addr, sizeof(addr), 0) < 0) { perror("Failed to get random static address"); return EXIT_FAILURE; } diff --git a/plugins/autopair.c b/plugins/autopair.c index a75ecebe4..0b09e893f 100644 --- a/plugins/autopair.c +++ b/plugins/autopair.c @@ -17,7 +17,6 @@ #include #include #include -#include #include @@ -29,6 +28,7 @@ #include "src/device.h" #include "src/log.h" #include "src/storage.h" +#include "src/shared/util.h" /* * Plugin to handle automatic pairing of devices with reduced user @@ -131,7 +131,7 @@ static ssize_t autopair_pincb(struct btd_adapter *adapter, if (attempt >= 4) return 0; - if (getrandom(&val, sizeof(val), 0) < 0) { + if (util_getrandom(&val, sizeof(val), 0) < 0) { error("Failed to get a random pincode"); return 0; } diff --git a/profiles/health/hdp.c b/profiles/health/hdp.c index 9d9d1e824..b6590cd3a 100644 --- a/profiles/health/hdp.c +++ b/profiles/health/hdp.c @@ -16,7 +16,6 @@ #include #include #include -#include #include @@ -33,6 +32,7 @@ #include "src/device.h" #include "src/sdpd.h" #include "src/shared/timeout.h" +#include "src/shared/util.h" #include "btio/btio.h" #include "hdp_types.h" @@ -1490,7 +1490,7 @@ static void *generate_echo_packet(void) if (!buf) return NULL; - if (getrandom(buf, HDP_ECHO_LEN, 0) < 0) { + if (util_getrandom(buf, HDP_ECHO_LEN, 0) < 0) { g_free(buf); return NULL; } diff --git a/profiles/health/mcap.c b/profiles/health/mcap.c index aad0a08a3..5d2bac3d9 100644 --- a/profiles/health/mcap.c +++ b/profiles/health/mcap.c @@ -19,7 +19,6 @@ #include #include #include -#include #include @@ -28,6 +27,7 @@ #include "btio/btio.h" #include "src/log.h" #include "src/shared/timeout.h" +#include "src/shared/util.h" #include "mcap.h" @@ -1905,7 +1905,7 @@ gboolean mcap_create_mcl(struct mcap_instance *mi, mcl->state = MCL_IDLE; bacpy(&mcl->addr, addr); set_default_cb(mcl); - if (getrandom(&val, sizeof(val), 0) < 0) { + if (util_getrandom(&val, sizeof(val), 0) < 0) { mcap_instance_unref(mcl->mi); g_free(mcl); return FALSE; @@ -2049,7 +2049,7 @@ static void connect_mcl_event_cb(GIOChannel *chan, GError *gerr, mcl->mi = mcap_instance_ref(mi); bacpy(&mcl->addr, &dst); set_default_cb(mcl); - if (getrandom(&val, sizeof(val), 0) < 0) { + if (util_getrandom(&val, sizeof(val), 0) < 0) { mcap_instance_unref(mcl->mi); g_free(mcl); goto drop; diff --git a/src/shared/util.c b/src/shared/util.c index 6e1c83057..33196bf8b 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -13,6 +13,7 @@ #endif #define _GNU_SOURCE +#include #include #include #include @@ -23,6 +24,10 @@ #include #include +#ifdef HAVE_SYS_RANDOM_H +#include +#endif + #include "src/shared/util.h" void *util_malloc(size_t size) @@ -138,6 +143,26 @@ unsigned char util_get_dt(const char *parent, const char *name) return DT_UNKNOWN; } +/* Helper for getting a random in case getrandom unavailable (glibc < 2.25) */ +ssize_t util_getrandom(void *buf, size_t buflen, unsigned int flags) +{ +#ifdef HAVE_GETRANDOM + return getrandom(buf, buflen, flags); +#else + int fd; + ssize_t bytes; + + fd = open("/dev/urandom", O_CLOEXEC); + if (fd < 0) + return -1; + + bytes = read(fd, buf, buflen); + close(fd); + + return bytes; +#endif +} + /* Helpers for bitfield operations */ /* Find unique id in range from 1 to max but no bigger than 64. */ diff --git a/src/shared/util.h b/src/shared/util.h index 8ef6132c4..c01eccf8a 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -103,6 +103,8 @@ void util_hexdump(const char dir, const unsigned char *buf, size_t len, unsigned char util_get_dt(const char *parent, const char *name); +ssize_t util_getrandom(void *buf, size_t buflen, unsigned int flags); + uint8_t util_get_uid(uint64_t *bitmap, uint8_t max); void util_clear_uid(uint64_t *bitmap, uint8_t id); diff --git a/tools/btgatt-server.c b/tools/btgatt-server.c index 15d49a464..4a5d2b720 100644 --- a/tools/btgatt-server.c +++ b/tools/btgatt-server.c @@ -20,7 +20,6 @@ #include #include #include -#include #include "lib/bluetooth.h" #include "lib/hci.h" @@ -287,7 +286,7 @@ static bool hr_msrmt_cb(void *user_data) uint32_t cur_ee; uint32_t val; - if (getrandom(&val, sizeof(val), 0) < 0) + if (util_getrandom(&val, sizeof(val), 0) < 0) return false; pdu[0] = 0x06; -- cgit ================================================ FILE: package/bluez5_utils/Config.in ================================================ config BR2_PACKAGE_BLUEZ5_UTILS bool "bluez-utils" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2 depends on BR2_USE_MMU # dbus depends on !BR2_STATIC_LIBS # uses dlfcn depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_DBUS select BR2_PACKAGE_LIBGLIB2 help BlueZ utils Provides Stack, Library and Tooling for Bluetooth Classic and Bluetooth LE. BlueZ utils will use systemd and/or udev if enabled. http://www.bluez.org http://www.kernel.org/pub/linux/bluetooth if BR2_PACKAGE_BLUEZ5_UTILS config BR2_PACKAGE_BLUEZ5_UTILS_OBEX bool "build OBEX support" depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_LIBICAL help Enable OBEX support. comment "OBEX support needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_BLUEZ5_UTILS_CLIENT bool "build CLI client" select BR2_PACKAGE_READLINE help Build the command line client "bluetoothctl". config BR2_PACKAGE_BLUEZ5_UTILS_MONITOR bool "build monitor utility" help Build monitor utility btmon. config BR2_PACKAGE_BLUEZ5_UTILS_TOOLS bool "build tools" help Build tools like bluemoon, btattach, hex2hcd, l2test, l2ping, mpris-proxy, rctest. config BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED bool "install deprecated tools" depends on BR2_PACKAGE_BLUEZ5_UTILS_CLIENT || BR2_PACKAGE_BLUEZ5_UTILS_TOOLS help Build deprecated tools. When "build tools" is selected these tools are installed: hciattach, hciconfig, hcitool, hcidump, rfcomm, sdptool, ciptool. When CLI client is enabled "gatttool" is installed. config BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL bool "build experimental tools" help Build experimental tools. This is currently only the "Nokia OBEX PC Suite tool". So, only if OBEX support is enabled this option has an effect. config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO bool "build audio plugins (a2dp and avrcp)" help Build plugins for audio profiles (for A2DP and AVRCP). config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH bool "build health plugin" help Build plugin for health profiles. config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID bool "build hid plugin" select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HOG help Build plugin for HID (input) profiles. config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HOG bool "build hog plugin" help Build plugin for HoG (input) profiles. config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MESH bool "build mesh plugin" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 # ell select BR2_PACKAGE_ELL select BR2_PACKAGE_JSON_C select BR2_PACKAGE_READLINE help Build plugin for Mesh support. comment "mesh profile needs a toolchain w/ headers >= 4.12" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MIDI bool "build midi plugin" select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_SEQ help Build MIDI support via ALSA sequencer. config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NETWORK bool "build network plugin" default y help Build plugin for PANU, NAP, GN profiles. config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC bool "build nfc plugin" help Build plugin for NFC pairing. config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP bool "build sap plugin" help Build plugin for SAP profile. config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SIXAXIS bool "build sixaxis plugin" depends on BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID # runtime help Build sixaxis plugin (support Sony Dualshock controller) comment "sixaxis plugin needs udev /dev management" depends on !BR2_PACKAGE_HAS_UDEV config BR2_PACKAGE_BLUEZ5_UTILS_TEST bool "install test scripts" help Install the python test scripts from the "test" directory. config BR2_PACKAGE_BLUEZ5_UTILS_TOOLS_HID2HCI bool "build hid2hci tool" depends on BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID # runtime select BR2_PACKAGE_BLUEZ5_UTILS_TOOLS help Build hid2hci tool comment "hid2hci tool needs udev /dev management" depends on !BR2_PACKAGE_HAS_UDEV endif comment "bluez5-utils needs a toolchain w/ wchar, threads, headers >= 3.4, dynamic library" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 || BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_MMU ================================================ FILE: package/bluez5_utils/S40bluetooth ================================================ #!/bin/sh DAEMON="bluetoothd" PIDFILE="/var/run/$DAEMON.pid" BLUETOOTHD_ARGS="-n" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -m -b -p "$PIDFILE" -x "/usr/libexec/bluetooth/$DAEMON" \ -- $BLUETOOTHD_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } reload() { printf 'Reloading %s: ' "$DAEMON" start-stop-daemon -K -s HUP -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } case "$1" in start|stop|restart|reload) "$1";; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/bluez5_utils/bluez5_utils.hash ================================================ # From https://www.kernel.org/pub/linux/bluetooth/sha256sums.asc: sha256 9349e11e8160bb3d720835d271250d8a7424d3690f5289e6db6fe07cc66c6d76 bluez-5.63.tar.xz # Locally computed sha256 b499eddebda05a8859e32b820a64577d91f1de2b52efa2a1575a2cb4000bc259 COPYING sha256 ec60b993835e2c6b79e6d9226345f4e614e686eb57dc13b6420c15a33a8996e5 COPYING.LIB ================================================ FILE: package/bluez5_utils/bluez5_utils.mk ================================================ ################################################################################ # # bluez5_utils # ################################################################################ # Keep the version and patches in sync with bluez5_utils-headers BLUEZ5_UTILS_VERSION = 5.63 BLUEZ5_UTILS_SOURCE = bluez-$(BLUEZ5_UTILS_VERSION).tar.xz BLUEZ5_UTILS_SITE = $(BR2_KERNEL_MIRROR)/linux/bluetooth BLUEZ5_UTILS_INSTALL_STAGING = YES BLUEZ5_UTILS_LICENSE = GPL-2.0+, LGPL-2.1+ BLUEZ5_UTILS_LICENSE_FILES = COPYING COPYING.LIB BLUEZ5_UTILS_CPE_ID_VENDOR = bluez BLUEZ5_UTILS_CPE_ID_PRODUCT = bluez # We're patching Makefile.am and configure.ac BLUEZ5_UTILS_AUTORECONF = YES BLUEZ5_UTILS_DEPENDENCIES = \ $(if $(BR2_PACKAGE_BLUEZ5_UTILS_HEADERS),bluez5_utils-headers) \ dbus \ libglib2 BLUEZ5_UTILS_CONF_OPTS = \ --enable-library \ --disable-cups \ --disable-manpages \ --disable-asan \ --disable-lsan \ --disable-ubsan \ --disable-pie \ --with-dbusconfdir=/etc ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_OBEX),y) BLUEZ5_UTILS_CONF_OPTS += --enable-obex BLUEZ5_UTILS_DEPENDENCIES += libical else BLUEZ5_UTILS_CONF_OPTS += --disable-obex endif ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_CLIENT),y) BLUEZ5_UTILS_CONF_OPTS += --enable-client BLUEZ5_UTILS_DEPENDENCIES += readline else BLUEZ5_UTILS_CONF_OPTS += --disable-client endif ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_MONITOR),y) BLUEZ5_UTILS_CONF_OPTS += --enable-monitor else BLUEZ5_UTILS_CONF_OPTS += --disable-monitor endif ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_TOOLS),y) BLUEZ5_UTILS_CONF_OPTS += --enable-tools else BLUEZ5_UTILS_CONF_OPTS += --disable-tools endif # experimental plugins ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL),y) BLUEZ5_UTILS_CONF_OPTS += --enable-experimental else BLUEZ5_UTILS_CONF_OPTS += --disable-experimental endif # enable audio plugins (a2dp and avrcp) ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO),y) BLUEZ5_UTILS_CONF_OPTS += --enable-a2dp --enable-avrcp else BLUEZ5_UTILS_CONF_OPTS += --disable-a2dp --disable-avrcp endif # enable health plugin ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH),y) BLUEZ5_UTILS_CONF_OPTS += --enable-health else BLUEZ5_UTILS_CONF_OPTS += --disable-health endif # enable hid plugin ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID),y) BLUEZ5_UTILS_CONF_OPTS += --enable-hid else BLUEZ5_UTILS_CONF_OPTS += --disable-hid endif # enable hog plugin ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HOG),y) BLUEZ5_UTILS_CONF_OPTS += --enable-hog else BLUEZ5_UTILS_CONF_OPTS += --disable-hog endif # enable mesh profile ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MESH),y) BLUEZ5_UTILS_CONF_OPTS += --enable-external-ell --enable-mesh BLUEZ5_UTILS_DEPENDENCIES += ell json-c readline else BLUEZ5_UTILS_CONF_OPTS += --disable-external-ell --disable-mesh endif # enable midi profile ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MIDI),y) BLUEZ5_UTILS_CONF_OPTS += --enable-midi BLUEZ5_UTILS_DEPENDENCIES += alsa-lib else BLUEZ5_UTILS_CONF_OPTS += --disable-midi endif # enable network plugin ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NETWORK),y) BLUEZ5_UTILS_CONF_OPTS += --enable-network else BLUEZ5_UTILS_CONF_OPTS += --disable-network endif # enable nfc plugin ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC),y) BLUEZ5_UTILS_CONF_OPTS += --enable-nfc else BLUEZ5_UTILS_CONF_OPTS += --disable-nfc endif # enable sap plugin ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP),y) BLUEZ5_UTILS_CONF_OPTS += --enable-sap else BLUEZ5_UTILS_CONF_OPTS += --disable-sap endif # enable sixaxis plugin ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SIXAXIS),y) BLUEZ5_UTILS_CONF_OPTS += --enable-sixaxis else BLUEZ5_UTILS_CONF_OPTS += --disable-sixaxis endif ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED),y) # install gatttool (For some reason upstream choose not to do it by default) # gattool depends on the client for readline ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_CLIENT),y) define BLUEZ5_UTILS_INSTALL_GATTTOOL $(INSTALL) -D -m 0755 $(@D)/attrib/gatttool $(TARGET_DIR)/usr/bin/gatttool endef BLUEZ5_UTILS_POST_INSTALL_TARGET_HOOKS += BLUEZ5_UTILS_INSTALL_GATTTOOL endif # hciattach_bcm43xx defines default firmware path in `/etc/firmware`, but # Broadcom firmware blobs are usually located in `/lib/firmware`. BLUEZ5_UTILS_CONF_ENV += \ CPPFLAGS='$(TARGET_CPPFLAGS) -DFIRMWARE_DIR=\"/lib/firmware\"' BLUEZ5_UTILS_CONF_OPTS += --enable-deprecated else BLUEZ5_UTILS_CONF_OPTS += --disable-deprecated endif # enable test ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_TEST),y) BLUEZ5_UTILS_CONF_OPTS += --enable-test else BLUEZ5_UTILS_CONF_OPTS += --disable-test endif # enable hid2hci tool ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_TOOLS_HID2HCI),y) BLUEZ5_UTILS_CONF_OPTS += --enable-hid2hci else BLUEZ5_UTILS_CONF_OPTS += --disable-hid2hci endif # use udev if available ifeq ($(BR2_PACKAGE_HAS_UDEV),y) BLUEZ5_UTILS_CONF_OPTS += --enable-udev BLUEZ5_UTILS_DEPENDENCIES += udev else BLUEZ5_UTILS_CONF_OPTS += --disable-udev endif # integrate with systemd if available ifeq ($(BR2_PACKAGE_SYSTEMD),y) BLUEZ5_UTILS_CONF_OPTS += --enable-systemd BLUEZ5_UTILS_DEPENDENCIES += systemd else BLUEZ5_UTILS_CONF_OPTS += --disable-systemd endif define BLUEZ5_UTILS_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/bluez5_utils/S40bluetooth \ $(TARGET_DIR)/etc/init.d/S40bluetooth endef $(eval $(autotools-package)) ================================================ FILE: package/bluez5_utils-headers/Config.in ================================================ config BR2_PACKAGE_BLUEZ5_UTILS_HEADERS bool help Header files from bluez utils version 5.x http://www.bluez.org http://www.kernel.org/pub/linux/bluetooth ================================================ FILE: package/bluez5_utils-headers/bluez5_utils-headers.mk ================================================ ################################################################################ # # bluez5_utils-headers # ################################################################################ # Keep the version and patches in sync with bluez5_utils BLUEZ5_UTILS_HEADERS_VERSION = 5.63 BLUEZ5_UTILS_HEADERS_SOURCE = bluez-$(BLUEZ5_UTILS_VERSION).tar.xz BLUEZ5_UTILS_HEADERS_SITE = $(BR2_KERNEL_MIRROR)/linux/bluetooth BLUEZ5_UTILS_HEADERS_DL_SUBDIR = bluez5_utils BLUEZ5_UTILS_HEADERS_LICENSE = GPL-2.0+, LGPL-2.1+ BLUEZ5_UTILS_HEADERS_LICENSE_FILES = COPYING COPYING.LIB BLUEZ5_UTILS_HEADERS_CPE_ID_VENDOR = bluez BLUEZ5_UTILS_HEADERS_CPE_ID_PRODUCT = bluez BLUEZ5_UTILS_HEADERS_INSTALL_STAGING = YES BLUEZ5_UTILS_HEADERS_INSTALL_TARGET = NO define BLUEZ5_UTILS_HEADERS_INSTALL_STAGING_CMDS $(INSTALL) -d $(STAGING_DIR)/usr/include/bluetooth/ $(INSTALL) -m 644 $(@D)/lib/*.h $(STAGING_DIR)/usr/include/bluetooth/ endef $(eval $(generic-package)) ================================================ FILE: package/bmap-tools/Config.in ================================================ config BR2_PACKAGE_BMAP_TOOLS bool "bmap-tools" depends on BR2_PACKAGE_PYTHON3 || BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 # runtime select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime, pkg_resources select BR2_PACKAGE_PYTHON_SIX # runtime help Tool to flash image files to block devices using the block map bmaptool is a generic tool for creating the block map (bmap) for a file, and copying files using the block map. The idea is that large file containing unused blocks, like raw system image files, can be copied or flashed a lot faster with bmaptool than with traditional tools like "dd" or "cp". Relevant optional dependencies: - Busybox compiled with CONFIG_BZIP2, or BR2_PACKAGE_BZIP2, to support bz2 compressed images - BR2_PACKAGE_PIGZ for optimized gzip decompression - Busybox compiled with CONFIG_LZOP, or BR2_PACKAGE_LZOP, to support lzo compressed images. - BR2_PACKAGE_ZIP to support zip compressed images - BR2_PACKAGE_LZ4 to support lz4 compressed images - BR2_PACKAGE_ZSTD to support zstd compressed images - Busybox compiled CONFIG_FEATURE_SEAMLESS_* or BR2_PACKAGE_TAR to support tar compressed images - BR2_PACKAGE_OPENSSH to retrieve images over SSH. - BR2_PACKAGE_SSHPASS to retrieve images over SSH if password authentication is used. Image signature verification is not supported as python-gpgme is not available. Optimized bzip2 decompression is not supported as pbzip2 is not available. https://github.com/intel/bmap-tools ================================================ FILE: package/bmap-tools/Config.in.host ================================================ config BR2_PACKAGE_HOST_BMAP_TOOLS bool "host bmap-tools" select BR2_PACKAGE_HOST_PYTHON_SIX # runtime help Tool to flash image files to block devices using the block map bmaptool is a generic tool for creating the block map (bmap) for a file, and copying files using the block map. The idea is that large file containing unused blocks, like raw system image files, can be copied or flashed a lot faster with bmaptool than with traditional tools like "dd" or "cp". https://github.com/intel/bmap-tools ================================================ FILE: package/bmap-tools/bmap-tools.hash ================================================ # Locally calculated sha256 0658afb972e7221aa16fece3f84e29e5102e901c929253d7fb6040bde28243f7 bmap-tools-3.6.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/bmap-tools/bmap-tools.mk ================================================ ################################################################################ # # bmap-tools # ################################################################################ BMAP_TOOLS_VERSION = 3.6 BMAP_TOOLS_SITE = $(call github,intel,bmap-tools,v$(BMAP_TOOLS_VERSION)) BMAP_TOOLS_LICENSE = GPL-2.0 BMAP_TOOLS_LICENSE_FILES = COPYING BMAP_TOOLS_SETUP_TYPE = setuptools $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/bmon/Config.in ================================================ config BR2_PACKAGE_BMON bool "bmon" depends on BR2_TOOLCHAIN_HAS_THREADS # libnl select BR2_PACKAGE_LIBCONFUSE select BR2_PACKAGE_LIBNL select BR2_PACKAGE_NCURSES help bmon is a bandwidth monitor capable of retrieving statistics from various input modules. It provides various output methods including a curses based interface. https://github.com/tgraf/bmon/ comment "bmon needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/bmon/bmon.hash ================================================ # Locally calculated sha256 02fdc312b8ceeb5786b28bf905f54328f414040ff42f45c83007f24b76cc9f7a bmon-4.0.tar.gz sha256 59ae3d59c672bfb955917a8e32f5cacba7f8ce716c499a4c63dc8cd8cb5c4991 LICENSE.BSD sha256 a2a6760c2c6fa779a635e4a7ad00f668862ebcadb2a8a57d16662543e103e08c LICENSE.MIT ================================================ FILE: package/bmon/bmon.mk ================================================ ################################################################################ # # bmon # ################################################################################ BMON_VERSION = 4.0 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' BMON_LICENSE = BSD-2-Clause, MIT BMON_LICENSE_FILES = LICENSE.BSD LICENSE.MIT # link dynamically unless explicitly requested otherwise ifeq ($(BR2_STATIC_LIBS),) BMON_CONF_OPTS += --disable-static else # forgets to explicitly link with pthread for libnl BMON_CONF_OPTS += LIBS=-lpthread endif $(eval $(autotools-package)) ================================================ FILE: package/boinc/Config.in ================================================ config BR2_PACKAGE_BOINC bool "boinc" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_OPENSSL help Open-source software for volunteer computing and grid computing. Use the idle time on your computer to cure diseases, study global warming, discover pulsars, and do many other types of scientific research. https://boinc.berkeley.edu comment "boinc needs a toolchain w/ dynamic library, C++, threads, gcc >= 4.8" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \ || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/boinc/S99boinc-client ================================================ #!/bin/sh NAME=boinc_client PIDFILE=/var/run/$NAME.pid DAEMON=/usr/bin/$NAME start() { printf "Starting $NAME: " start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON [ $? = 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|reload}" exit 1 esac exit $? ================================================ FILE: package/boinc/boinc.hash ================================================ # Locally computed: sha256 274388d9c49e488b6c8502ffc6eb605d5ceae391fb0c2fc56dbb0254d0ceb27e boinc-7.18.1.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING sha256 a853c2ffec17057872340eee242ae4d96cbf2b520ae27d903e1b2fef1a5f9d1c COPYING.LESSER ================================================ FILE: package/boinc/boinc.mk ================================================ ################################################################################ # # boinc # ################################################################################ BOINC_VERSION_MAJOR = 7.18 BOINC_VERSION = $(BOINC_VERSION_MAJOR).1 BOINC_SITE = \ $(call github,BOINC,boinc,client_release/$(BOINC_VERSION_MAJOR)/$(BOINC_VERSION)) BOINC_LICENSE = LGPL-3.0+ BOINC_LICENSE_FILES = COPYING COPYING.LESSER BOINC_CPE_ID_VENDOR = rom_walton BOINC_SELINUX_MODULES = boinc BOINC_DEPENDENCIES = host-pkgconf libcurl openssl BOINC_AUTORECONF = YES # The ac_cv_c_undeclared_builtin_options value is to help # AC_CHECK_DECLS realize that it doesn't need any particular compiler # option to get an error when building a program that uses undeclared # symbols. Otherwise, AC_CHECK_DECLS is confused by the configure # script unconditionally passing -mavx, which only exists on x86, and # therefore causes a failure on all other architectures. BOINC_CONF_ENV = \ ac_cv_c_undeclared_builtin_options='none needed' \ ac_cv_path__libcurl_config=$(STAGING_DIR)/usr/bin/curl-config BOINC_CONF_OPTS = \ --disable-apps \ --disable-boinczip \ --disable-manager \ --disable-server \ --enable-client \ --enable-dynamic-client-linkage \ --enable-libraries \ --with-pkg-config=$(PKG_CONFIG_HOST_BINARY) \ --with-libcurl=$(STAGING_DIR)/usr ifeq ($(BR2_PACKAGE_FREETYPE),y) BOINC_DEPENDENCIES += freetype endif ifeq ($(BR2_PACKAGE_LIBFCGI),y) BOINC_DEPENDENCIES += libfcgi BOINC_CONF_OPTS += --enable-fcgi else BOINC_CONF_OPTS += --disable-fcgi endif BOINC_MAKE_OPTS = CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" # Remove boinc-client because it is incompatible with buildroot define BOINC_REMOVE_UNNEEDED_FILE $(RM) $(TARGET_DIR)/etc/init.d/boinc-client endef BOINC_POST_INSTALL_TARGET_HOOKS += BOINC_REMOVE_UNNEEDED_FILE define BOINC_USERS boinc -1 boinc -1 * /var/lib/boinc - BOINC user endef define BOINC_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/boinc/S99boinc-client \ $(TARGET_DIR)/etc/init.d/S99boinc-client endef $(eval $(autotools-package)) ================================================ FILE: package/bonnie/Config.in ================================================ config BR2_PACKAGE_BONNIE bool "bonnie++" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # fork() help A benchmark suite that is aimed at performing a number of simple tests of hard drive and file system performance. http://www.coker.com.au/bonnie++/ comment "bonnie++ needs a toolchain w/ C++" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/bonnie/bonnie.hash ================================================ # Locally calculated sha256 cb3866116634bf65760b6806be4afa7e24a1cad6f145c876df8721f01ba2e2cb bonnie++-1.03e.tgz sha256 bdfeef85436885bc317fdbae3732b17a39e7910eb855553a83b4d2cf9032e773 copyright.txt ================================================ FILE: package/bonnie/bonnie.mk ================================================ ################################################################################ # # bonnie # ################################################################################ BONNIE_VERSION = 1.03e BONNIE_SOURCE = bonnie++-$(BONNIE_VERSION).tgz BONNIE_SITE = http://www.coker.com.au/bonnie++ BONNIE_LICENSE = GPL-2.0 BONNIE_LICENSE_FILES = copyright.txt define BONNIE_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/bonnie++ $(TARGET_DIR)/usr/sbin/bonnie++ $(INSTALL) -D -m 755 $(@D)/zcav $(TARGET_DIR)/usr/sbin/zcav endef $(eval $(autotools-package)) ================================================ FILE: package/boost/0001-added-missing-brackets.patch ================================================ From 1be0e4a2d8db15a405f64a6f65507b87c1be7e1a Mon Sep 17 00:00:00 2001 From: tkoecker Date: Fri, 21 May 2021 16:31:11 +0200 Subject: [PATCH] added missing brackets (#118) [Retrieved from: https://github.com/boostorg/predef/commit/1be0e4a2d8db15a405f64a6f65507b87c1be7e1a] Signed-off-by: Fabrice Fontaine --- include/boost/predef/architecture/sparc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/boost/predef/architecture/sparc.h b/boost/predef/architecture/sparc.h index d7b94f0..d01605e 100644 --- a/boost/predef/architecture/sparc.h +++ b//boost/predef/architecture/sparc.h @@ -34,10 +34,10 @@ Distributed under the Boost Software License, Version 1.0. #if defined(__sparc__) || defined(__sparc) # undef BOOST_ARCH_SPARC -# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv9) || defined(__sparc_v9__) +# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv9) || defined(__sparc_v9__)) # define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(9,0,0) # endif -# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv8) || defined(__sparc_v8__) +# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv8) || defined(__sparc_v8__)) # define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(8,0,0) # endif # if !defined(BOOST_ARCH_SPARC) ================================================ FILE: package/boost/0002-math-allow-definition-of-boost_math_no_atomic_int-on-the-command-line.patch ================================================ From 32bd6197353f6ea8e5bef01f09e25c944141acfc Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 1 Sep 2021 18:54:54 +0100 Subject: [PATCH] Allow definition of BOOST_MATH_NO_ATOMIC_INT on the command line. Allows us to test/emulate platforms with no atomic integers. [buildroot@heine.tech: - backport from boostorg/math 32bd6197353f6ea8e5bef01f09e25c944141acfc - alter path to match boost release ] Signed-off-by: Michael Nosthoff --- boost/math/tools/atomic.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/boost/math/tools/atomic.hpp b/boost/math/tools/atomic.hpp index cc76ed269f..e3cbf5db89 100644 --- a/boost/math/tools/atomic.hpp +++ b/boost/math/tools/atomic.hpp @@ -16,27 +16,27 @@ namespace boost { namespace math { namespace detail { -#if ATOMIC_INT_LOCK_FREE == 2 +#if (ATOMIC_INT_LOCK_FREE == 2) && !defined(BOOST_MATH_NO_ATOMIC_INT) typedef std::atomic atomic_counter_type; typedef std::atomic atomic_unsigned_type; typedef int atomic_integer_type; typedef unsigned atomic_unsigned_integer_type; -#elif ATOMIC_SHORT_LOCK_FREE == 2 +#elif (ATOMIC_SHORT_LOCK_FREE == 2) && !defined(BOOST_MATH_NO_ATOMIC_INT) typedef std::atomic atomic_counter_type; typedef std::atomic atomic_unsigned_type; typedef short atomic_integer_type; typedef unsigned short atomic_unsigned_type; -#elif ATOMIC_LONG_LOCK_FREE == 2 +#elif (ATOMIC_LONG_LOCK_FREE == 2) && !defined(BOOST_MATH_NO_ATOMIC_INT) typedef std::atomic atomic_unsigned_integer_type; typedef std::atomic atomic_unsigned_type; typedef unsigned long atomic_unsigned_type; typedef long atomic_integer_type; -#elif ATOMIC_LLONG_LOCK_FREE == 2 +#elif (ATOMIC_LLONG_LOCK_FREE == 2) && !defined(BOOST_MATH_NO_ATOMIC_INT) typedef std::atomic atomic_unsigned_integer_type; typedef std::atomic atomic_unsigned_type; typedef long long atomic_integer_type; typedef unsigned long long atomic_unsigned_integer_type; -#else +#elif !defined(BOOST_MATH_NO_ATOMIC_INT) # define BOOST_MATH_NO_ATOMIC_INT #endif } // Namespace detail ================================================ FILE: package/boost/0003-math-make-no-atomics-a-soft-failure-in-bernoulli_details_hpp.patch ================================================ From 7d482f6ebc356e6ec455ccb5f51a23971bf6ce5b Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 1 Sep 2021 20:31:53 +0100 Subject: [PATCH] Make no atomics a soft failure in bernoulli_details.hpp. Include an "escape macro" so thread safety can be disabled if certain bernoulli features are to be used in a no-atomics environment. Fixes https://github.com/boostorg/math/issues/673. [buildroot@heine.tech: - backport from boostorg/math 7d482f6ebc356e6ec455ccb5f51a23971bf6ce5b - alter path to match boost release ] Signed-off-by: Michael Nosthoff --- .../detail/bernoulli_details.hpp | 10 +++++++--- libs/math/test/Jamfile.v2 | 3 +++ test/compile_test/bernoulli_no_atomic_d.cpp | 14 ++++++++++++++ test/compile_test/bernoulli_no_atomic_fail.cpp | 15 +++++++++++++++ test/compile_test/bernoulli_no_atomic_mp.cpp | 16 ++++++++++++++++ 5 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 test/compile_test/bernoulli_no_atomic_d.cpp create mode 100644 test/compile_test/bernoulli_no_atomic_fail.cpp create mode 100644 test/compile_test/bernoulli_no_atomic_mp.cpp diff --git a/boost/math/special_functions/detail/bernoulli_details.hpp b/boost/math/special_functions/detail/bernoulli_details.hpp index cf35545264..8519b7c89c 100644 --- a/boost/math/special_functions/detail/bernoulli_details.hpp +++ b/boost/math/special_functions/detail/bernoulli_details.hpp @@ -360,7 +360,7 @@ class bernoulli_numbers_cache return out; } - #ifndef BOOST_HAS_THREADS + #if !defined(BOOST_HAS_THREADS) || defined(BOOST_MATH_BERNOULLI_UNTHREADED) // // Single threaded code, very simple: // @@ -382,6 +382,8 @@ class bernoulli_numbers_cache *out = (i >= m_overflow_limit) ? policies::raise_overflow_error("boost::math::bernoulli_b2n<%1%>(std::size_t)", 0, T(i), pol) : bn[i]; ++out; } + #elif defined(BOOST_MATH_NO_ATOMIC_INT) + static_assert(sizeof(T) == 1, "Unsupported configuration: your platform appears to have no atomic integers. If you are happy with thread-unsafe code, then you may define BOOST_MATH_BERNOULLI_UNTHREADED to suppress this error."); #else // // Double-checked locking pattern, lets us access cached already cached values @@ -464,7 +466,7 @@ class bernoulli_numbers_cache return out; } - #ifndef BOOST_HAS_THREADS + #if !defined(BOOST_HAS_THREADS) || defined(BOOST_MATH_BERNOULLI_UNTHREADED) // // Single threaded code, very simple: // @@ -494,6 +496,8 @@ class bernoulli_numbers_cache } ++out; } + #elif defined(BOOST_MATH_NO_ATOMIC_INT) + static_assert(sizeof(T) == 1, "Unsupported configuration: your platform appears to have no atomic integers. If you are happy with thread-unsafe code, then you may define BOOST_MATH_BERNOULLI_UNTHREADED to suppress this error."); #else // // Double-checked locking pattern, lets us access cached already cached values @@ -555,7 +559,7 @@ class bernoulli_numbers_cache // The value at which we know overflow has already occurred for the Bn: std::size_t m_overflow_limit; - #ifdef BOOST_HAS_THREADS + #if defined(BOOST_HAS_THREADS) && !defined(BOOST_MATH_NO_ATOMIC_INT) std::mutex m_mutex; atomic_counter_type m_counter, m_current_precision; #else diff --git a/libs/math/test/Jamfile.v2 b/libs/math/test/Jamfile.v2 index 52fb87f5e5..3ac63f9279 100644 --- a/libs/math/test/Jamfile.v2 +++ b/libs/math/test/Jamfile.v2 @@ -1137,6 +1137,9 @@ test-suite misc : # [ run __temporary_test.cpp test_instances//test_instances : : : always_show_run_output off ] [ compile test_no_long_double_policy.cpp ] + [ compile compile_test/bernoulli_no_atomic_d.cpp ] + [ compile compile_test/bernoulli_no_atomic_mp.cpp ] + [ compile-fail compile_test/bernoulli_no_atomic_fail.cpp ] ; test-suite interpolators : diff --git a/test/compile_test/bernoulli_no_atomic_d.cpp b/test/compile_test/bernoulli_no_atomic_d.cpp new file mode 100644 index 0000000000..61926f7e1f --- /dev/null +++ b/test/compile_test/bernoulli_no_atomic_d.cpp @@ -0,0 +1,14 @@ +// (C) Copyright John Maddock 2021. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#define BOOST_MATH_NO_ATOMIC_INT + +#include +#include "test_compile_result.hpp" + +void compile_and_link_test() +{ + check_result(boost::math::bernoulli_b2n(4)); +} diff --git a/test/compile_test/bernoulli_no_atomic_fail.cpp b/test/compile_test/bernoulli_no_atomic_fail.cpp new file mode 100644 index 0000000000..bbd7152412 --- /dev/null +++ b/test/compile_test/bernoulli_no_atomic_fail.cpp @@ -0,0 +1,15 @@ +// (C) Copyright John Maddock 2021. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#define BOOST_MATH_NO_ATOMIC_INT + +#include +#include +#include "test_compile_result.hpp" + +void compile_and_link_test() +{ + check_result(boost::math::bernoulli_b2n(4)); +} diff --git a/test/compile_test/bernoulli_no_atomic_mp.cpp b/test/compile_test/bernoulli_no_atomic_mp.cpp new file mode 100644 index 0000000000..8d5a6e78e6 --- /dev/null +++ b/test/compile_test/bernoulli_no_atomic_mp.cpp @@ -0,0 +1,16 @@ +// (C) Copyright John Maddock 2021. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#define BOOST_MATH_NO_ATOMIC_INT +#define BOOST_MATH_BERNOULLI_UNTHREADED + +#include +#include +#include "test_compile_result.hpp" + +void compile_and_link_test() +{ + check_result(boost::math::bernoulli_b2n(4)); +} ================================================ FILE: package/boost/Config.in ================================================ 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 bool "boost" depends on BR2_INSTALL_LIBSTDCPP # Boost could theorically be built with threading=single, but # that unfortunately doesn't work. Until someone fixes that, # let's depend on threads. depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR help A general purpose C++ library http://www.boost.org/ if BR2_PACKAGE_BOOST choice prompt "Layout" default BR2_PACKAGE_BOOST_LAYOUT_SYSTEM help Selects the layout of Boost binary names config BR2_PACKAGE_BOOST_LAYOUT_SYSTEM bool "system" help Boost binary names do not include the Boost version number or the name and version number of the compiler. config BR2_PACKAGE_BOOST_LAYOUT_TAGGED bool "tagged" help Boost binary names include the encoded build properties such as variant and threading, but do not include compiler name and version, or Boost version. This option is useful if you build several variants of Boost, using the same compiler. config BR2_PACKAGE_BOOST_LAYOUT_VERSIONED bool "versioned" help Boost binary names include the Boost version number, name and version of the compiler and encoded build properties. endchoice config BR2_PACKAGE_BOOST_LAYOUT string default "system" if BR2_PACKAGE_BOOST_LAYOUT_SYSTEM default "tagged" if BR2_PACKAGE_BOOST_LAYOUT_TAGGED default "versioned" if BR2_PACKAGE_BOOST_LAYOUT_VERSIONED config BR2_PACKAGE_BOOST_ATOMIC bool "boost-atomic" depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS help C++11-style atomic<>. config BR2_PACKAGE_BOOST_CHRONO bool "boost-chrono" select BR2_PACKAGE_BOOST_SYSTEM help Useful time utilities. C++11. config BR2_PACKAGE_BOOST_CONTAINER bool "boost-container" help Standard library containers and extensions. # see # http://www.boost.org/doc/libs/1_59_0/libs/context/doc/html/context/architectures.html # for the list of supported architectures. Sparc pretends to be # supported, but it doesn't build. config BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS bool default y if ((BR2_arm || BR2_armeb) && BR2_ARM_CPU_HAS_ARM) default y if BR2_i386 default y if BR2_mips default y if BR2_mipsel default y if BR2_powerpc default y if BR2_x86_64 config BR2_PACKAGE_BOOST_CONTEXT bool "boost-context" depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \ || BR2_TOOLCHAIN_GCC_AT_LEAST_6 # boost-thread depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 select BR2_PACKAGE_BOOST_THREAD if !BR2_TOOLCHAIN_GCC_AT_LEAST_6 help C++11 context switching library. config BR2_PACKAGE_BOOST_CONTRACT bool "boost-contract" # pthread_condattr_setclock depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_PACKAGE_BOOST_SYSTEM help Contract programming for C++. comment "boost-contract needs a toolchain w/ NPTL" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL config BR2_PACKAGE_BOOST_COROUTINE bool "boost-coroutine" depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context, boost-thread select BR2_PACKAGE_BOOST_CHRONO select BR2_PACKAGE_BOOST_CONTEXT select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_THREAD help deprecated coroutine library, the non-depricated coroutine2 library is a header-only library and does not need to be selected. comment "boost-coroutine needs a toolchain not affected by GCC bug 64735" depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 config BR2_PACKAGE_BOOST_DATE_TIME bool "boost-date_time" help A set of date-time libraries based on generic programming concepts. config BR2_PACKAGE_BOOST_EXCEPTION bool "boost-exception" help The Boost Exception library supports transporting of arbitrary data in exception objects, and transporting of exceptions between threads. config BR2_PACKAGE_BOOST_FIBER bool "boost-fiber" depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # mips support uses the "pause" instruction, only available # since mips32r2/mips64r2. depends on !BR2_MIPS_CPU_MIPS32 && !BR2_MIPS_CPU_MIPS64 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context select BR2_PACKAGE_BOOST_CONTEXT select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_SYSTEM help C++11 userland threads library. comment "boost-fiber needs a toolchain w/ NPTL" depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL comment "boost-fiber needs a toolchain not affected by GCC bug 64735" depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \ || BR2_TOOLCHAIN_GCC_AT_LEAST_6 depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 config BR2_PACKAGE_BOOST_FILESYSTEM bool "boost-filesystem" depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic select BR2_PACKAGE_BOOST_ATOMIC select BR2_PACKAGE_BOOST_SYSTEM help The Boost Filesystem Library provides portable facilities to query and manipulate paths, files, and directories. config BR2_PACKAGE_BOOST_GRAPH bool "boost-graph" select BR2_PACKAGE_BOOST_REGEX help The BGL graph interface and graph components are generic, in the same sense as the the Standard Template Library (STL). config BR2_PACKAGE_BOOST_GRAPH_PARALLEL bool "boost-graph_parallel" help The PBGL graph interface and graph components are generic, in the same sense as the the Standard Template Library (STL). config BR2_PACKAGE_BOOST_IOSTREAMS bool "boost-iostreams" select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_ZLIB help Boost.IOStreams provides a framework for defining streams, stream buffers and i/o filters. config BR2_PACKAGE_BOOST_JSON bool "boost-json" select BR2_PACKAGE_BOOST_CONTAINER help Boost.JSON is a portable C++ library which provides containers and algorithms that implement JavaScript Object Notation, or simply "JSON", a lightweight data-interchange format. To use the library "header-only" this option is not needed. config BR2_PACKAGE_BOOST_LOCALE bool "boost-locale" # When boost-locale is enabled with icu support, Boost no # longer supports building the libboost_* libraries as static # libraries, causing build failures when other boost features # than boost-locale are enabled. To work around this, we # prevent using boost-locale on static linking configurations # with icu enabled. See # https://svn.boost.org/trac/boost/ticket/9685 for more # details. depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU) depends on !(BR2_TOOLCHAIN_HAS_GCC_BUG_64735 && BR2_PACKAGE_ICU) # boost-thread depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \ || !BR2_PACKAGE_ICU # boost-thread select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_THREAD if BR2_PACKAGE_ICU select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Provide localization and Unicode handling tools for C++. comment "boost-locale needs a toolchain w/ dynamic library" depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on BR2_PACKAGE_ICU depends on BR2_STATIC_LIBS comment "boost-locale needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on BR2_PACKAGE_ICU depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 config BR2_PACKAGE_BOOST_LOG bool "boost-log" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread select BR2_PACKAGE_BOOST_ATOMIC select BR2_PACKAGE_BOOST_DATE_TIME select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_REGEX select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_THREAD help Logging library. comment "boost-log needs a toolchain w/ NPTL" depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL comment "boost-log needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 config BR2_PACKAGE_BOOST_MATH bool "boost-math" help Boost.Math includes several contributions in the domain of mathematics: The Greatest Common Divisor and Least Common Multiple library provides run-time and compile-time evaluation of the greatest common divisor (GCD) or least common multiple (LCM) of two integers. The Special Functions library currently provides eight templated special functions, in namespace boost. The Complex Number Inverse Trigonometric Functions are the inverses of trigonometric functions currently present in the C++ standard. Quaternions are a relative of complex numbers often used to parameterise rotations in three dimentional space. Octonions, like quaternions, are a relative of complex numbers. config BR2_PACKAGE_BOOST_MPI bool "boost-mpi" help Message Passing Interface library, for use in distributed-memory parallel application programming. config BR2_PACKAGE_BOOST_NOWIDE bool "boost-nowide" help Library for cross-platform, unicode aware programming. config BR2_PACKAGE_BOOST_PROGRAM_OPTIONS bool "boost-program_options" help The program_options library allows program developers to obtain program options, that is (name, value) pairs from the user, via conventional methods such as command line and config file. config BR2_PACKAGE_BOOST_PYTHON bool "boost-python" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 help The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes functions and objects to Python, and vice-versa, using no special tools -- just your C++ compiler. config BR2_PACKAGE_BOOST_RANDOM bool "boost-random" select BR2_PACKAGE_BOOST_SYSTEM help A complete system for random number generation. config BR2_PACKAGE_BOOST_REGEX bool "boost-regex" help A new infrastructure for generic algorithms that builds on top of the new iterator concepts. config BR2_PACKAGE_BOOST_SERIALIZATION bool "boost-serialization" help Serialization for persistence and marshalling. config BR2_PACKAGE_BOOST_STACKTRACE bool "boost-stacktrace" depends on !BR2_STATIC_LIBS help Gather, store, copy and print backtraces. comment "boost-stacktrace needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_BOOST_SYSTEM bool "boost-system" help Operating system support, including the diagnostics support that will be part of the C++0x standard library. config BR2_PACKAGE_BOOST_TEST bool "boost-test" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_TIMER help Support for simple program testing, full unit testing, and for program execution monitoring. config BR2_PACKAGE_BOOST_THREAD bool "boost-thread" depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::current_exception select BR2_PACKAGE_BOOST_CHRONO select BR2_PACKAGE_BOOST_SYSTEM help Portable C++ multi-threading. C++11, C++14. comment "boost-thread needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 config BR2_PACKAGE_BOOST_TIMER bool "boost-timer" select BR2_PACKAGE_BOOST_CHRONO select BR2_PACKAGE_BOOST_SYSTEM help Event timer, progress timer, and progress display classes. config BR2_PACKAGE_BOOST_TYPE_ERASURE bool "boost-type_erasure" depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_THREAD help Runtime polymorphism based on concepts. comment "boost-type_erasure needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 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 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread select BR2_PACKAGE_BOOST_DATE_TIME select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_THREAD help The Boost.Wave library is a Standards conformant, and highly configurable implementation of the mandated C99/C++ preprocessor functionality packed behind an easy to use iterator interface. comment "boost-wave needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 endif ================================================ FILE: package/boost/boost.hash ================================================ # From https://www.boost.org/users/history/version_1_77_0.html sha256 fc9f85fc030e233142908241af7a846e60630aa7388de9a5fafb1f3a26840854 boost_1_77_0.tar.bz2 # Locally computed sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 LICENSE_1_0.txt ================================================ FILE: package/boost/boost.mk ================================================ ################################################################################ # # boost # ################################################################################ BOOST_VERSION = 1.77.0 BOOST_SOURCE = boost_$(subst .,_,$(BOOST_VERSION)).tar.bz2 BOOST_SITE = https://boostorg.jfrog.io/artifactory/main/release/$(BOOST_VERSION)/source BOOST_INSTALL_STAGING = YES BOOST_LICENSE = BSL-1.0 BOOST_LICENSE_FILES = LICENSE_1_0.txt BOOST_CPE_ID_VENDOR = boost # keep host variant as minimal as possible HOST_BOOST_FLAGS = --without-icu --with-toolset=gcc \ --without-libraries=$(subst $(space),$(comma),atomic chrono context \ contract container coroutine date_time exception fiber filesystem graph \ graph_parallel iostreams json locale log math mpi nowide program_options \ python random regex serialization stacktrace 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) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTAINER),,container) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTEXT),,context) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTRACT),,contract) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_COROUTINE),,coroutine) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_DATE_TIME),,date_time) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_EXCEPTION),,exception) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_FIBER),,fiber) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_FILESYSTEM),,filesystem) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_GRAPH),,graph) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_GRAPH_PARALLEL),,graph_parallel) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_IOSTREAMS),,iostreams) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_JSON),,json) 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_MPI),,mpi) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_NOWIDE),,nowide) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_PROGRAM_OPTIONS),,program_options) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_PYTHON),,python) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_RANDOM),,random) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_REGEX),,regex) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_SERIALIZATION),,serialization) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_STACKTRACE),,stacktrace) 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) BOOST_FLAGS = --with-toolset=gcc ifeq ($(BR2_PACKAGE_ICU),y) BOOST_FLAGS += --with-icu=$(STAGING_DIR)/usr BOOST_DEPENDENCIES += icu else BOOST_FLAGS += --without-icu endif ifeq ($(BR2_PACKAGE_BOOST_IOSTREAMS),y) BOOST_DEPENDENCIES += bzip2 zlib endif ifeq ($(BR2_PACKAGE_BOOST_PYTHON),y) BOOST_FLAGS += --with-python-root=$(HOST_DIR) ifeq ($(BR2_PACKAGE_PYTHON3),y) BOOST_FLAGS += --with-python=$(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR) BOOST_TARGET_CXXFLAGS += -I$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) BOOST_DEPENDENCIES += python3 else BOOST_FLAGS += --with-python=$(HOST_DIR)/bin/python$(PYTHON_VERSION_MAJOR) BOOST_TARGET_CXXFLAGS += -I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR) BOOST_DEPENDENCIES += python endif endif HOST_BOOST_OPTS += --no-cmake-config toolset=gcc threading=multi \ variant=release link=shared runtime-link=shared ifeq ($(BR2_MIPS_OABI32),y) BOOST_ABI = o32 else ifeq ($(BR2_arm),y) BOOST_ABI = aapcs else BOOST_ABI = sysv endif BOOST_OPTS += --no-cmake-config \ toolset=gcc \ threading=multi \ abi=$(BOOST_ABI) \ variant=$(if $(BR2_ENABLE_RUNTIME_DEBUG),debug,release) ifeq ($(BR2_sparc64),y) BOOST_OPTS += architecture=sparc instruction-set=ultrasparc endif ifeq ($(BR2_sparc),y) BOOST_OPTS += architecture=sparc instruction-set=v8 endif # By default, Boost build and installs both the shared and static # variants. Override that if we want static only or shared only. ifeq ($(BR2_STATIC_LIBS),y) BOOST_OPTS += link=static runtime-link=static else ifeq ($(BR2_SHARED_LIBS),y) BOOST_OPTS += link=shared runtime-link=shared endif ifeq ($(BR2_PACKAGE_BOOST_LOCALE),y) ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) # posix backend needs monetary.h which isn't available on uClibc BOOST_OPTS += boost.locale.posix=off endif BOOST_DEPENDENCIES += $(if $(BR2_ENABLE_LOCALE),,libiconv) endif BOOST_WITHOUT_FLAGS_COMMASEPARATED += $(subst $(space),$(comma),$(strip $(BOOST_WITHOUT_FLAGS))) BOOST_FLAGS += $(if $(BOOST_WITHOUT_FLAGS_COMMASEPARATED), --without-libraries=$(BOOST_WITHOUT_FLAGS_COMMASEPARATED)) BOOST_LAYOUT = $(call qstrip, $(BR2_PACKAGE_BOOST_LAYOUT)) # how verbose should the build be? BOOST_OPTS += $(if $(QUIET),-d,-d+1) HOST_BOOST_OPTS += $(if $(QUIET),-d,-d+1) define BOOST_CONFIGURE_CMDS (cd $(@D) && ./bootstrap.sh $(BOOST_FLAGS)) echo "using gcc : `$(TARGET_CC) -dumpversion` : $(TARGET_CXX) : \"$(BOOST_TARGET_CXXFLAGS)\" \"$(TARGET_LDFLAGS)\" ;" > $(@D)/user-config.jam echo "" >> $(@D)/user-config.jam sed -i "s/: -O.* ;/: $(TARGET_OPTIMIZATION) ;/" $(@D)/tools/build/src/tools/gcc.jam endef define BOOST_BUILD_CMDS (cd $(@D) && $(TARGET_MAKE_ENV) ./tools/build/src/engine/bjam -j$(PARALLEL_JOBS) -q \ --user-config=$(@D)/user-config.jam \ $(BOOST_OPTS) \ --ignore-site-config \ --layout=$(BOOST_LAYOUT)) endef define BOOST_INSTALL_TARGET_CMDS (cd $(@D) && $(TARGET_MAKE_ENV) ./b2 -j$(PARALLEL_JOBS) -q \ --user-config=$(@D)/user-config.jam \ $(BOOST_OPTS) \ --prefix=$(TARGET_DIR)/usr \ --ignore-site-config \ --layout=$(BOOST_LAYOUT) install ) endef define BOOST_INSTALL_STAGING_CMDS (cd $(@D) && $(TARGET_MAKE_ENV) ./tools/build/src/engine/bjam -j$(PARALLEL_JOBS) -q \ --user-config=$(@D)/user-config.jam \ $(BOOST_OPTS) \ --prefix=$(STAGING_DIR)/usr \ --ignore-site-config \ --layout=$(BOOST_LAYOUT) install) endef # These hooks will help us to detect missing select in Config.in # Indeed boost buildsystem can select a library even if the user has # disable it define BOOST_REMOVE_TARGET_LIBRARIES rm -rf $(TARGET_DIR)/usr/lib/libboost_* endef BOOST_PRE_INSTALL_TARGET_HOOKS += BOOST_REMOVE_TARGET_LIBRARIES define BOOST_CHECK_TARGET_LIBRARIES @$(foreach disabled,$(BOOST_WITHOUT_FLAGS),\ ! ls $(TARGET_DIR)/usr/lib/libboost_$(disabled)* 1>/dev/null 2>&1 || \ ! echo "libboost_$(disabled) shouldn't have been installed: missing select in boost/Config.in" || \ exit 1;) endef BOOST_POST_INSTALL_TARGET_HOOKS += BOOST_CHECK_TARGET_LIBRARIES define HOST_BOOST_CONFIGURE_CMDS (cd $(@D) && ./bootstrap.sh $(HOST_BOOST_FLAGS)) echo "using gcc : `$(HOST_CC) -dumpversion` : $(HOSTCXX) : \"$(HOST_CXXFLAGS)\" \"$(HOST_LDFLAGS)\" ;" > $(@D)/user-config.jam echo "" >> $(@D)/user-config.jam endef define HOST_BOOST_BUILD_CMDS (cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q \ --user-config=$(@D)/user-config.jam \ $(HOST_BOOST_OPTS) \ --ignore-site-config \ --prefix=$(HOST_DIR) ) endef define HOST_BOOST_INSTALL_CMDS (cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q \ --user-config=$(@D)/user-config.jam \ $(HOST_BOOST_OPTS) \ --prefix=$(HOST_DIR) \ --ignore-site-config \ --layout=$(BOOST_LAYOUT) install ) endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/bootstrap/Config.in ================================================ config BR2_PACKAGE_BOOTSTRAP bool "bootstrap" help Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web. http://getbootstrap.com ================================================ FILE: package/bootstrap/bootstrap.hash ================================================ # Locally computed: sha256 888ffd30b7e192381e2f6a948ca04669fdcc2ccc2ba016de00d38c8e30793323 bootstrap-4.3.1-dist.zip sha256 35fbb6dc3891aacaf1ffa07abec2344fdbc454aab533a2a03bcf93577eb7837b css/bootstrap.css ================================================ FILE: package/bootstrap/bootstrap.mk ================================================ ################################################################################ # # bootstrap # ################################################################################ BOOTSTRAP_VERSION = 4.3.1 BOOTSTRAP_SITE = https://github.com/twbs/bootstrap/releases/download/v$(BOOTSTRAP_VERSION) BOOTSTRAP_SOURCE = bootstrap-$(BOOTSTRAP_VERSION)-dist.zip BOOTSTRAP_LICENSE = MIT BOOTSTRAP_LICENSE_FILES = css/bootstrap.css BOOTSTRAP_CPE_ID_VENDOR = getbootstrap define BOOTSTRAP_EXTRACT_CMDS $(UNZIP) $(BOOTSTRAP_DL_DIR)/$(BOOTSTRAP_SOURCE) -d $(@D) mv $(@D)/bootstrap-$(BOOTSTRAP_VERSION)-dist/* $(@D) endef define BOOTSTRAP_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/css/bootstrap.min.css \ $(TARGET_DIR)/var/www/bootstrap/css/bootstrap.min.css $(INSTALL) -m 0644 -D $(@D)/css/bootstrap.min.css.map \ $(TARGET_DIR)/var/www/bootstrap/css/bootstrap.min.css.map $(INSTALL) -m 0644 -D $(@D)/js/bootstrap.min.js \ $(TARGET_DIR)/var/www/bootstrap/js/bootstrap.min.js endef $(eval $(generic-package)) ================================================ FILE: package/botan/0001-Revert-workaround-a-miscompilation-issue-in-clang-12.patch ================================================ From 372bdf0348fb86d671e73baab19daa34bd0cf73d Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 9 Nov 2021 19:01:20 +0100 Subject: [PATCH] Revert "workaround a miscompilation issue in clang 12 (XCode 13)" This reverts commit 219329f8e777af54d785ae7259f8be32a714b751. Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/randombit/botan/issues/2845] --- src/lib/hash/sha3/sha3.cpp | 46 ++++++----------------- src/lib/hash/sha3/sha3_bmi2/sha3_bmi2.cpp | 46 ++++++----------------- 2 files changed, 22 insertions(+), 70 deletions(-) diff --git a/src/lib/hash/sha3/sha3.cpp b/src/lib/hash/sha3/sha3.cpp index 289e451ff..690c2b264 100644 --- a/src/lib/hash/sha3/sha3.cpp +++ b/src/lib/hash/sha3/sha3.cpp @@ -11,47 +11,23 @@ #include #include -#include - namespace Botan { namespace { -// This is a workaround for a suspected bug in clang 12 (and XCode 13) -// that caused a miscompile of the SHA3 implementation for optimization -// level -O2 and higher. -// -// For details, see: https://github.com/randombit/botan/issues/2802 -#if defined(__clang__) && \ - (( defined(__apple_build_version__) && __clang_major__ == 13) || \ - (!defined(__apple_build_version__) && __clang_major__ == 12)) -#define BOTAN_WORKAROUND_MAYBE_INLINE __attribute__((noinline)) -#else -#define BOTAN_WORKAROUND_MAYBE_INLINE inline -#endif - -BOTAN_WORKAROUND_MAYBE_INLINE std::tuple - xor_CNs(const uint64_t A[25]) - { - return { - A[0] ^ A[5] ^ A[10] ^ A[15] ^ A[20], - A[1] ^ A[6] ^ A[11] ^ A[16] ^ A[21], - A[2] ^ A[7] ^ A[12] ^ A[17] ^ A[22], - A[3] ^ A[8] ^ A[13] ^ A[18] ^ A[23], - A[4] ^ A[9] ^ A[14] ^ A[19] ^ A[24]}; - } - -#undef BOTAN_WORKAROUND_MAYBE_INLINE - inline void SHA3_round(uint64_t T[25], const uint64_t A[25], uint64_t RC) { - const auto Cs = xor_CNs(A); - - const uint64_t D0 = rotl<1>(std::get<0>(Cs)) ^ std::get<3>(Cs); - const uint64_t D1 = rotl<1>(std::get<1>(Cs)) ^ std::get<4>(Cs); - const uint64_t D2 = rotl<1>(std::get<2>(Cs)) ^ std::get<0>(Cs); - const uint64_t D3 = rotl<1>(std::get<3>(Cs)) ^ std::get<1>(Cs); - const uint64_t D4 = rotl<1>(std::get<4>(Cs)) ^ std::get<2>(Cs); + const uint64_t C0 = A[0] ^ A[5] ^ A[10] ^ A[15] ^ A[20]; + const uint64_t C1 = A[1] ^ A[6] ^ A[11] ^ A[16] ^ A[21]; + const uint64_t C2 = A[2] ^ A[7] ^ A[12] ^ A[17] ^ A[22]; + const uint64_t C3 = A[3] ^ A[8] ^ A[13] ^ A[18] ^ A[23]; + const uint64_t C4 = A[4] ^ A[9] ^ A[14] ^ A[19] ^ A[24]; + + const uint64_t D0 = rotl<1>(C0) ^ C3; + const uint64_t D1 = rotl<1>(C1) ^ C4; + const uint64_t D2 = rotl<1>(C2) ^ C0; + const uint64_t D3 = rotl<1>(C3) ^ C1; + const uint64_t D4 = rotl<1>(C4) ^ C2; const uint64_t B00 = A[ 0] ^ D1; const uint64_t B01 = rotl<44>(A[ 6] ^ D2); diff --git a/src/lib/hash/sha3/sha3_bmi2/sha3_bmi2.cpp b/src/lib/hash/sha3/sha3_bmi2/sha3_bmi2.cpp index c7f1914a3..a9650ad9d 100644 --- a/src/lib/hash/sha3/sha3_bmi2/sha3_bmi2.cpp +++ b/src/lib/hash/sha3/sha3_bmi2/sha3_bmi2.cpp @@ -8,47 +8,23 @@ #include #include -#include - namespace Botan { namespace { -// This is a workaround for a suspected bug in clang 12 (and XCode 13) -// that caused a miscompile of the SHA3 implementation for optimization -// level -O2 and higher. -// -// For details, see: https://github.com/randombit/botan/issues/2802 -#if defined(__clang__) && \ - (( defined(__apple_build_version__) && __clang_major__ == 13) || \ - (!defined(__apple_build_version__) && __clang_major__ == 12)) -#define BOTAN_WORKAROUND_MAYBE_INLINE __attribute__((noinline)) -#else -#define BOTAN_WORKAROUND_MAYBE_INLINE inline -#endif - -BOTAN_WORKAROUND_MAYBE_INLINE std::tuple - xor_CNs(const uint64_t A[25]) - { - return { - A[0] ^ A[5] ^ A[10] ^ A[15] ^ A[20], - A[1] ^ A[6] ^ A[11] ^ A[16] ^ A[21], - A[2] ^ A[7] ^ A[12] ^ A[17] ^ A[22], - A[3] ^ A[8] ^ A[13] ^ A[18] ^ A[23], - A[4] ^ A[9] ^ A[14] ^ A[19] ^ A[24]}; - } - -#undef BOTAN_WORKAROUND_MAYBE_INLINE - inline void SHA3_BMI2_round(uint64_t T[25], const uint64_t A[25], uint64_t RC) { - const auto Cs = xor_CNs(A); - - const uint64_t D0 = rotl<1>(std::get<0>(Cs)) ^ std::get<3>(Cs); - const uint64_t D1 = rotl<1>(std::get<1>(Cs)) ^ std::get<4>(Cs); - const uint64_t D2 = rotl<1>(std::get<2>(Cs)) ^ std::get<0>(Cs); - const uint64_t D3 = rotl<1>(std::get<3>(Cs)) ^ std::get<1>(Cs); - const uint64_t D4 = rotl<1>(std::get<4>(Cs)) ^ std::get<2>(Cs); + const uint64_t C0 = A[0] ^ A[5] ^ A[10] ^ A[15] ^ A[20]; + const uint64_t C1 = A[1] ^ A[6] ^ A[11] ^ A[16] ^ A[21]; + const uint64_t C2 = A[2] ^ A[7] ^ A[12] ^ A[17] ^ A[22]; + const uint64_t C3 = A[3] ^ A[8] ^ A[13] ^ A[18] ^ A[23]; + const uint64_t C4 = A[4] ^ A[9] ^ A[14] ^ A[19] ^ A[24]; + + const uint64_t D0 = rotl<1>(C0) ^ C3; + const uint64_t D1 = rotl<1>(C1) ^ C4; + const uint64_t D2 = rotl<1>(C2) ^ C0; + const uint64_t D3 = rotl<1>(C3) ^ C1; + const uint64_t D4 = rotl<1>(C4) ^ C2; const uint64_t B00 = A[ 0] ^ D1; const uint64_t B01 = rotl<44>(A[ 6] ^ D2); -- 2.33.0 ================================================ FILE: package/botan/Config.in ================================================ config BR2_PACKAGE_BOTAN_ARCH_SUPPORTS bool default y if BR2_aarch64 || BR2_aarch64_be default y if BR2_arm || BR2_armeb default y if BR2_i386 || BR2_x86_64 default y if BR2_m68k default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le default y if BR2_riscv default y if BR2_sparc || BR2_sparc64 default y if BR2_s390x default y if BR2_sh config BR2_PACKAGE_BOTAN bool "botan" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_BOTAN_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::future select BR2_PACKAGE_BOOST_FILESYSTEM if BR2_PACKAGE_BOOST && BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS select BR2_PACKAGE_BOOST_SYSTEM if BR2_PACKAGE_BOOST && BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS select BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4 if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160 if BR2_PACKAGE_LIBOPENSSL help Botan is a crypto library for C++ http://botan.randombit.net comment "botan needs a toolchain w/ C++, threads, gcc >= 4.8" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_PACKAGE_BOTAN_ARCH_SUPPORTS comment "botan needs a toolchain not affected by GCC bug 64735" depends on BR2_PACKAGE_BOTAN_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/botan/botan.hash ================================================ # From https://botan.randombit.net/releases/sha256sums.txt sha256 541a3b13f1b9d30f977c6c1ae4c7bfdfda763cda6e44de807369dce79f42307e Botan-2.18.2.tar.xz # Locally computed sha256 fb7f0322d36fba55ca17d77bc203a9f09a40daa8a249b75cf8887aba36cec9d0 license.txt ================================================ FILE: package/botan/botan.mk ================================================ ################################################################################ # # botan # ################################################################################ BOTAN_VERSION = 2.18.2 BOTAN_SOURCE = Botan-$(BOTAN_VERSION).tar.xz BOTAN_SITE = http://botan.randombit.net/releases BOTAN_LICENSE = BSD-2-Clause BOTAN_LICENSE_FILES = license.txt BOTAN_CPE_ID_VENDOR = botan_project BOTAN_INSTALL_STAGING = YES BOTAN_CONF_OPTS = \ --cpu=$(BR2_ARCH) \ --os=linux \ --cc=gcc \ --cc-bin="$(TARGET_CXX)" \ --prefix=/usr \ --without-documentation ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) BOTAN_CONF_OPTS += --extra-libs=atomic endif ifeq ($(BR2_SHARED_LIBS),y) BOTAN_CONF_OPTS += \ --disable-static-library \ --enable-shared-library else ifeq ($(BR2_STATIC_LIBS),y) BOTAN_CONF_OPTS += \ --disable-shared-library \ --enable-static-library \ --no-autoload else ifeq ($(BR2_SHARED_STATIC_LIBS),y) BOTAN_CONF_OPTS += \ --enable-shared-library \ --enable-static-library endif ifeq ($(BR2_TOOLCHAIN_HAS_SSP),y) BOTAN_CONF_OPTS += --with-stack-protector else BOTAN_CONF_OPTS += --without-stack-protector endif ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) BOTAN_CONF_OPTS += --without-os-feature=getauxval endif ifeq ($(BR2_PACKAGE_BOOST_FILESYSTEM)$(BR2_PACKAGE_BOOST_SYSTEM),yy) BOTAN_DEPENDENCIES += boost BOTAN_CONF_OPTS += --with-boost endif ifeq ($(BR2_PACKAGE_BZIP2),y) BOTAN_DEPENDENCIES += bzip2 BOTAN_CONF_OPTS += --with-bzip2 endif ifeq ($(BR2_PACKAGE_OPENSSL),y) BOTAN_DEPENDENCIES += openssl BOTAN_CONF_OPTS += --with-openssl endif ifeq ($(BR2_PACKAGE_SQLITE),y) BOTAN_DEPENDENCIES += sqlite BOTAN_CONF_OPTS += --with-sqlite endif ifeq ($(BR2_PACKAGE_XZ),y) BOTAN_DEPENDENCIES += xz BOTAN_CONF_OPTS += --with-lzma endif ifeq ($(BR2_PACKAGE_ZLIB),y) BOTAN_DEPENDENCIES += zlib BOTAN_CONF_OPTS += --with-zlib endif ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),) BOTAN_CONF_OPTS += --disable-altivec endif ifeq ($(BR2_ARM_CPU_HAS_NEON),) BOTAN_CONF_OPTS += --disable-neon endif define BOTAN_CONFIGURE_CMDS (cd $(@D); $(TARGET_MAKE_ENV) ./configure.py $(BOTAN_CONF_OPTS)) endef define BOTAN_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) AR="$(TARGET_AR)" endef define BOTAN_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(STAGING_DIR)" install endef define BOTAN_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" install endef $(eval $(generic-package)) ================================================ FILE: package/brcm-patchram-plus/Config.in ================================================ config BR2_PACKAGE_BRCM_PATCHRAM_PLUS bool "brcm-patchram-plus" help Broadcom utility to flash Bluetooth firmwares, extended with per-device Low Power Mode configuration. https://github.com/AsteroidOS/brcm-patchram-plus ================================================ FILE: package/brcm-patchram-plus/brcm-patchram-plus.hash ================================================ # locally computed sha256 febad69fbc9185b4c6a31188cf381fd280b88d93cb7f5a40dfdbab9c599c29a7 brcm-patchram-plus-95b7b6916d661a4da3f9c0adf52d5e1f4f8ab042.tar.gz sha256 26324f5c563b7e338c2876c8abe90c3681c1e9a6163fc59b494c94ad6493eda4 COPYING ================================================ FILE: package/brcm-patchram-plus/brcm-patchram-plus.mk ================================================ ################################################################################ # # brcm-patchram-plus # ################################################################################ BRCM_PATCHRAM_PLUS_VERSION = 95b7b6916d661a4da3f9c0adf52d5e1f4f8ab042 BRCM_PATCHRAM_PLUS_SITE = $(call github,AsteroidOS,brcm-patchram-plus,$(BRCM_PATCHRAM_PLUS_VERSION)) BRCM_PATCHRAM_PLUS_LICENSE = Apache-2.0 BRCM_PATCHRAM_PLUS_LICENSE_FILES = COPYING BRCM_PATCHRAM_PLUS_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/brickd/Config.in ================================================ config BR2_PACKAGE_BRICKD bool "brickd" depends on BR2_PACKAGE_HAS_UDEV # gudev depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_WCHAR # glib2 depends on BR2_USE_MMU # glib2, gudev select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBGUDEV help Brick daemon for LEGO MINDSTORMS EV3 (and other LEGO- compatible devices). This performs tasks like battery management and controls device-specific hardware. https://github.com/ev3dev/brickd comment "brickd needs udev /dev management, a toolchain w/ threads, wchar" depends on BR2_USE_MMU depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_USE_WCHAR ================================================ FILE: package/brickd/S70brickd ================================================ #!/bin/sh NAME=brickd PIDFILE=/var/run/$NAME.pid DAEMON=/usr/sbin/$NAME start() { printf "Starting $NAME: " start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON [ $? = 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|reload}" exit 1 esac exit $? ================================================ FILE: package/brickd/brickd.hash ================================================ # Locally computed hash sha256 8469b6959a7e32c4b39a56e1a4f7479f785d83e6db3269487f5312f3cf1df382 brickd-v1.2.2-br1.tar.gz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.txt ================================================ FILE: package/brickd/brickd.mk ================================================ ################################################################################ # # brickd # ################################################################################ BRICKD_VERSION = v1.2.2 BRICKD_SITE = https://github.com/ev3dev/brickd BRICKD_SITE_METHOD = git BRICKD_GIT_SUBMODULES = YES BRICKD_LICENSE = GPL-2.0 BRICKD_LICENSE_FILES = LICENSE.txt BRICKD_INSTALL_STAGING = YES BRICKD_DEPENDENCIES = host-pkgconf host-vala libglib2 libgudev define BRICKD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/brickd/S70brickd $(TARGET_DIR)/etc/init.d/S70brickd endef $(eval $(cmake-package)) ================================================ FILE: package/bridge-utils/0001-fix-build-on-musl.patch ================================================ From 1d5a2e0f88e0c53fede03632fa92ffade5e79ac5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 11 Apr 2021 10:04:59 +0200 Subject: [PATCH] fix build on musl Build on musl is broken since version 1.7.1 and commit a1f20223cfcf7b9eae8c9e7e7a07e7bf1377f65b: libbridge_devif.c: In function 'fpopen': libbridge_devif.c:33:12: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'AF_MAX'? 33 | char path[PATH_MAX]; | ^~~~~~~~ | AF_MAX Fixes: - http://autobuild.buildroot.org/results/0f080ff6913595ee2732b93206e5001c837c1bcc Signed-off-by: Fabrice Fontaine [Upstream status: sent to Stephen Hemminger ] --- libbridge/libbridge_devif.c | 1 + libbridge/libbridge_init.c | 1 + 2 files changed, 2 insertions(+) diff --git a/libbridge/libbridge_devif.c b/libbridge/libbridge_devif.c index 8b7d954..6c679f6 100644 --- a/libbridge/libbridge_devif.c +++ b/libbridge/libbridge_devif.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include diff --git a/libbridge/libbridge_init.c b/libbridge/libbridge_init.c index c914971..83a97cd 100644 --- a/libbridge/libbridge_init.c +++ b/libbridge/libbridge_init.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include -- 2.30.2 ================================================ FILE: package/bridge-utils/Config.in ================================================ config BR2_PACKAGE_BRIDGE_UTILS bool "bridge-utils" help Manage ethernet bridging; a way to connect networks together to form a larger network. This utility is DEPRECATED. No new features will ever be added. Instead use the bridge command from the iproute2 package which supports more features. https://git.kernel.org/cgit/linux/kernel/git/shemminger/bridge-utils.git/ ================================================ FILE: package/bridge-utils/bridge-utils.hash ================================================ # From https://mirrors.edge.kernel.org/pub/linux/utils/net/bridge-utils/sha256sums.asc sha256 a61d8be4f1a1405c60c8ef38d544f0c18c05b33b9b07e5b4b31033536165e60e bridge-utils-1.7.1.tar.xz # locally computed sha256 995a31f60a9ddb4c609214cc7d17ca94cc3cbc7f37e1e64dba81e7f8ea9d4f91 COPYING ================================================ FILE: package/bridge-utils/bridge-utils.mk ================================================ ################################################################################ # # bridge-utils # ################################################################################ BRIDGE_UTILS_VERSION = 1.7.1 BRIDGE_UTILS_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/net/bridge-utils BRIDGE_UTILS_SOURCE = bridge-utils-$(BRIDGE_UTILS_VERSION).tar.xz BRIDGE_UTILS_AUTORECONF = YES BRIDGE_UTILS_LICENSE = GPL-2.0+ BRIDGE_UTILS_LICENSE_FILES = COPYING BRIDGE_UTILS_CPE_ID_VENDOR = kernel BRIDGE_UTILS_SELINUX_MODULES = brctl # Avoid using the host's headers. Location is not important as # required headers will anyway be found from within the sysroot. BRIDGE_UTILS_CONF_OPTS = --with-linux-headers=$(STAGING_DIR)/usr/include $(eval $(autotools-package)) ================================================ FILE: package/brltty/0001-Fix-linking-error-on-mips64el.patch ================================================ From ddb06335935ef1458fe98f99cdc5d5fe6757fd02 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 3 Oct 2018 19:06:40 +0200 Subject: [PATCH] Fix linking error on mips64el Patch that was fixing build on mips64el was reverted: https://github.com/brltty/brltty/commit/9e7d62c869d3c1cbe12dda8b0291a4692c193416 So fix the issue again, this time by checking if $(GCC) is available as suggested by Arnout during review of buildroot patch: https://patchwork.ozlabs.org/patch/972614 Fixes: - http://autobuild.buildroot.org/results/31f682838b3d3b2c7103b5c51f2aba0b89d4f630 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/brltty/brltty/pull/149] --- configure.ac | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 1e2774abf..a488d3d52 100644 --- a/configure.ac +++ b/configure.ac @@ -481,7 +481,12 @@ AC_CACHE_CHECK([for make relocatable object command], [brltty_cv_prog_make_objec case "${host_os}" in *) - brltty_cv_prog_make_object_relocatable="\$(LD) -r -o" + if test "${GCC}" = "yes" + then + brltty_cv_prog_make_object_relocatable="\$(CC) -shared -o" + else + brltty_cv_prog_make_object_relocatable="\$(LD) -r -o" + fi ;; esac]) MKREL="${brltty_cv_prog_make_object_relocatable}" -- 2.17.1 ================================================ FILE: package/brltty/Config.in ================================================ config BR2_PACKAGE_BRLTTY bool "brltty" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID if BR2_PACKAGE_BLUEZ5_UTILS # runtime help A daemon providing access to the Linux console for a blind person using a refreshable braille display. http://brltty.app/ if BR2_PACKAGE_BRLTTY config BR2_PACKAGE_BRLTTY_TEXT_TABLE string "text-table" endif comment "brltty needs a toolchain w/ dynamic lib, threads, wchar" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR ================================================ FILE: package/brltty/S10brltty ================================================ #!/bin/sh # # brltty Starts brltty. # start() { printf "Starting brltty: " start-stop-daemon -S -q -p /var/run/brltty.pid \ --exec /usr/bin/brltty -- -P /var/run/brltty.pid "$@" [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping brltty: " start-stop-daemon -K -q -p /var/run/brltty.pid [ $? = 0 ] && echo "OK" || echo "FAIL" } restart() { stop start "$@" } case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; force-reload) restart ;; *) echo "Usage: $0 {start|stop|restart|force-reload}" exit 1 esac exit $? ================================================ FILE: package/brltty/brltty.hash ================================================ # Locally computed sha256 bc7573b0d0ab865c36607945b64c209312405571788f3b409397726f6143eaa6 brltty-6.4.tar.xz sha256 d80c9d084ebfb50ea1ed91bfbc2410d6ce542097a32c43b00781b83adcb8c77f LICENSE-LGPL sha256 429be921e6bf783303a1f94cbb7f29dc4f0839e47efe38150b808f886028f4df README ================================================ FILE: package/brltty/brltty.mk ================================================ ################################################################################ # # brltty # ################################################################################ BRLTTY_VERSION = 6.4 BRLTTY_SOURCE = brltty-$(BRLTTY_VERSION).tar.xz BRLTTY_SITE = http://brltty.com/archive BRLTTY_INSTALL_STAGING_OPTS = INSTALL_ROOT=$(STAGING_DIR) install BRLTTY_INSTALL_TARGET_OPTS = INSTALL_ROOT=$(TARGET_DIR) install BRLTTY_LICENSE = LGPL-2.1+ BRLTTY_LICENSE_FILES = LICENSE-LGPL README BRLTTY_DEPENDENCIES = \ $(TARGET_NLS_DEPENDENCIES) \ host-autoconf \ host-gawk \ host-pkgconf \ $(if $(BR2_PACKAGE_AT_SPI2_CORE),at-spi2-core) BRLTTY_CONF_ENV = \ PKG_CONFIG_FOR_BUILD=$(HOST_DIR)/bin/pkgconf BRLTTY_CONF_OPTS = \ --disable-java-bindings \ --disable-lisp-bindings \ --disable-ocaml-bindings \ --disable-python-bindings \ --disable-tcl-bindings \ --disable-x \ --without-espeak-ng \ --without-midi-package \ --without-mikropuhe --without-speechd --without-swift \ --without-theta # Autoreconf is needed because we're patching configure.ac in # 0001-Fix-linking-error-on-mips64el. However, a plain autoreconf doesn't work, # because this package is only autoconf-based. define BRLTTY_AUTOCONF cd $(BRLTTY_SRCDIR) && $(AUTOCONF) endef BRLTTY_PRE_CONFIGURE_HOOKS += BRLTTY_AUTOCONF ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS),y) BRLTTY_DEPENDENCIES += bluez5_utils BRLTTY_CONF_OPTS += --with-bluetooth-package else BRLTTY_CONF_OPTS += --without-bluetooth-package endif ifeq ($(BR2_PACKAGE_ESPEAK),y) BRLTTY_DEPENDENCIES += espeak BRLTTY_CONF_OPTS += --with-espeak=$(TARGET_DIR)/usr else BRLTTY_CONF_OPTS += --without-espeak endif ifeq ($(BR2_PACKAGE_EXPAT),y) # host-expat is needed by tbl2hex's host program BRLTTY_DEPENDENCIES += host-expat expat BRLTTY_CONF_OPTS += --enable-expat else BRLTTY_CONF_OPTS += --disable-expat endif ifeq ($(BR2_PACKAGE_FLITE),y) BRLTTY_DEPENDENCIES += flite BRLTTY_CONF_OPTS += --with-flite=$(STAGING_DIR)/usr else BRLTTY_CONF_OPTS += --without-flite endif ifeq ($(BR2_PACKAGE_ICU),y) BRLTTY_DEPENDENCIES += icu BRLTTY_CONF_OPTS += --enable-icu else BRLTTY_CONF_OPTS += --disable-icu endif ifeq ($(BR2_PACKAGE_NCURSES),y) BRLTTY_DEPENDENCIES += ncurses BRLTTY_CONF_OPTS += --with-curses else BRLTTY_CONF_OPTS += --without-curses endif ifeq ($(BR2_PACKAGE_PCRE2_32),y) BRLTTY_DEPENDENCIES += pcre2 BRLTTY_CONF_OPTS += --with-rgx-package else ifeq ($(BR2_PACKAGE_PCRE_32),y) BRLTTY_DEPENDENCIES += pcre BRLTTY_CONF_OPTS += --with-rgx-package else BRLTTY_CONF_OPTS += --without-rgx-package endif ifeq ($(BR2_PACKAGE_POLKIT),y) BRLTTY_DEPENDENCIES += polkit BRLTTY_CONF_OPTS += --enable-polkit else BRLTTY_CONF_OPTS += --disable-polkit endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) BRLTTY_DEPENDENCIES += systemd BRLTTY_CONF_OPTS += --with-service-package else BRLTTY_CONF_OPTS += --without-service-package endif ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) BRLTTY_CONF_OPTS += --enable-i18n else BRLTTY_CONF_OPTS += --disable-i18n endif BRLTTY_TEXT_TABLE = $(call qstrip,$(BR2_PACKAGE_BRLTTY_TEXT_TABLE)) ifneq ($(BRLTTY_TEXT_TABLE),) BRLTTY_CONF_OPTS += --with-text-table=$(BRLTTY_TEXT_TABLE) endif define BRLTTY_INSTALL_CONF $(INSTALL) -D -m 644 $(@D)/Documents/brltty.conf $(TARGET_DIR)/etc/brltty.conf endef BRLTTY_POST_INSTALL_TARGET_HOOKS += BRLTTY_INSTALL_CONF define BRLTTY_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/brltty/S10brltty \ $(TARGET_DIR)/etc/init.d/S10brltty endef define BRLTTY_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/brltty/brltty.service \ $(TARGET_DIR)/usr/lib/systemd/system/brltty.service endef $(eval $(autotools-package)) ================================================ FILE: package/brltty/brltty.service ================================================ [Unit] Description=Braille Device Support Documentation=man:brltty(1) Documentation=http://brltty.com/ DefaultDependencies=no Before=sysinit.target After=systemd-udev-settle.service Wants=systemd-udev-settle.service [Service] Type=simple ExecStart=/usr/bin/brltty --no-daemon TimeoutStartSec=5 TimeoutStopSec=10 Restart=always RestartSec=30 Nice=-10 OOMScoreAdjust=-900 [Install] WantedBy=sysinit.target ================================================ FILE: package/brotli/0001-CMake-Allow-using-BUILD_SHARED_LIBS-to-choose-static.patch ================================================ From 6cb16322decd643fed9de332d9cda77f7738b7af Mon Sep 17 00:00:00 2001 From: Adrian Perez de Castro Date: Mon, 7 Sep 2020 12:14:22 +0300 Subject: [PATCH] CMake: Allow using BUILD_SHARED_LIBS to choose static/shared libs By convention projects using CMake which can build either static or shared libraries use a BUILD_SHARED_LIBS flag to allow selecting between both: the add_library() command automatically switches between both using this variable when the library kind is not passed to add_library(). It is also usual to expose the BUILD_SHARED_LIBS as an user-facing setting with the option() command. This way, the following will both work as expected: % cmake -DBUILD_SHARED_LIBS=OFF ... % cmake -DBUILS_SHARED_LIBS=ON ... This is helpful for distributions which need (or want) to build only static libraries. Signed-off-by: Adrian Perez de Castro [Upstream status: https://github.com/google/brotli/pull/655] --- CMakeLists.txt | 46 ++++++++++++++----------------------------- c/fuzz/test_fuzzer.sh | 6 +++--- 2 files changed, 18 insertions(+), 34 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ff3401..f889311 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,8 @@ cmake_minimum_required(VERSION 2.8.6) project(brotli C) +option(BUILD_SHARED_LIBS "Build shared libraries" ON) + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) message(STATUS "Setting build type to Release as none was specified.") set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build." FORCE) @@ -137,10 +139,6 @@ set(BROTLI_LIBRARIES_CORE brotlienc brotlidec brotlicommon) set(BROTLI_LIBRARIES ${BROTLI_LIBRARIES_CORE} ${LIBM_LIBRARY}) mark_as_advanced(BROTLI_LIBRARIES) -set(BROTLI_LIBRARIES_CORE_STATIC brotlienc-static brotlidec-static brotlicommon-static) -set(BROTLI_LIBRARIES_STATIC ${BROTLI_LIBRARIES_CORE_STATIC} ${LIBM_LIBRARY}) -mark_as_advanced(BROTLI_LIBRARIES_STATIC) - if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") add_definitions(-DOS_LINUX) elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") @@ -161,29 +159,25 @@ transform_sources_list("scripts/sources.lst" "${CMAKE_CURRENT_BINARY_DIR}/source include("${CMAKE_CURRENT_BINARY_DIR}/sources.lst.cmake") if(BROTLI_EMSCRIPTEN) - set(BROTLI_SHARED_LIBS "") -else() - set(BROTLI_SHARED_LIBS brotlicommon brotlidec brotlienc) - add_library(brotlicommon SHARED ${BROTLI_COMMON_C}) - add_library(brotlidec SHARED ${BROTLI_DEC_C}) - add_library(brotlienc SHARED ${BROTLI_ENC_C}) + set(BUILD_SHARED_LIBS OFF) endif() -set(BROTLI_STATIC_LIBS brotlicommon-static brotlidec-static brotlienc-static) -add_library(brotlicommon-static STATIC ${BROTLI_COMMON_C}) -add_library(brotlidec-static STATIC ${BROTLI_DEC_C}) -add_library(brotlienc-static STATIC ${BROTLI_ENC_C}) +add_library(brotlicommon ${BROTLI_COMMON_C}) +add_library(brotlidec ${BROTLI_DEC_C}) +add_library(brotlienc ${BROTLI_ENC_C}) # Older CMake versions does not understand INCLUDE_DIRECTORIES property. include_directories(${BROTLI_INCLUDE_DIRS}) -foreach(lib IN LISTS BROTLI_SHARED_LIBS) - target_compile_definitions(${lib} PUBLIC "BROTLI_SHARED_COMPILATION" ) - string(TOUPPER "${lib}" LIB) - set_target_properties (${lib} PROPERTIES DEFINE_SYMBOL "${LIB}_SHARED_COMPILATION") -endforeach() +if(BUILD_SHARED_LIBS) + foreach(lib brotlicommon brotlidec brotlienc) + target_compile_definitions(${lib} PUBLIC "BROTLI_SHARED_COMPILATION" ) + string(TOUPPER "${lib}" LIB) + set_target_properties (${lib} PROPERTIES DEFINE_SYMBOL "${LIB}_SHARED_COMPILATION") + endforeach() +endif() -foreach(lib IN LISTS BROTLI_SHARED_LIBS BROTLI_STATIC_LIBS) +foreach(lib brotlicommon brotlidec brotlienc) target_link_libraries(${lib} ${LIBM_LIBRARY}) set_property(TARGET ${lib} APPEND PROPERTY INCLUDE_DIRECTORIES ${BROTLI_INCLUDE_DIRS}) set_target_properties(${lib} PROPERTIES @@ -200,9 +194,6 @@ target_link_libraries(brotlidec brotlicommon) target_link_libraries(brotlienc brotlicommon) endif() -target_link_libraries(brotlidec-static brotlicommon-static) -target_link_libraries(brotlienc-static brotlicommon-static) - # For projects stuck on older versions of CMake, this will set the # BROTLI_INCLUDE_DIRS and BROTLI_LIBRARIES variables so they still # have a relatively easy way to use Brotli: @@ -216,7 +207,7 @@ endif() # Build the brotli executable add_executable(brotli ${BROTLI_CLI_C}) -target_link_libraries(brotli ${BROTLI_LIBRARIES_STATIC}) +target_link_libraries(brotli ${BROTLI_LIBRARIES}) # Installation if(NOT BROTLI_EMSCRIPTEN) @@ -233,13 +224,6 @@ if(NOT BROTLI_BUNDLED_MODE) RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) - install( - TARGETS ${BROTLI_LIBRARIES_CORE_STATIC} - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - ) - install( DIRECTORY ${BROTLI_INCLUDE_DIRS}/brotli DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" -- 2.28.0 ================================================ FILE: package/brotli/0002-Revert-Add-runtime-linker-path-to-pkg-config-files.patch ================================================ From 09b0992b6acb7faa6fd3b23f9bc036ea117230fc Mon Sep 17 00:00:00 2001 From: Eugene Kliuchnikov Date: Wed, 2 Sep 2020 11:38:26 +0200 Subject: [PATCH] Revert "Add runtime linker path to pkg-config files (#740)" (#838) This reverts commit 31754d4ffce14153b5c2addf7a11019ec23f51c1. [Retrieved from: https://github.com/google/brotli/commit/09b0992b6acb7faa6fd3b23f9bc036ea117230fc] Signed-off-by: Fabrice Fontaine --- scripts/libbrotlicommon.pc.in | 2 +- scripts/libbrotlidec.pc.in | 2 +- scripts/libbrotlienc.pc.in | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/libbrotlicommon.pc.in b/scripts/libbrotlicommon.pc.in index 10ca969e..2a8cf7a3 100644 --- a/scripts/libbrotlicommon.pc.in +++ b/scripts/libbrotlicommon.pc.in @@ -7,5 +7,5 @@ Name: libbrotlicommon URL: https://github.com/google/brotli Description: Brotli common dictionary library Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -R${libdir} -lbrotlicommon +Libs: -L${libdir} -lbrotlicommon Cflags: -I${includedir} diff --git a/scripts/libbrotlidec.pc.in b/scripts/libbrotlidec.pc.in index e7c3124f..6f8ef2e4 100644 --- a/scripts/libbrotlidec.pc.in +++ b/scripts/libbrotlidec.pc.in @@ -7,6 +7,6 @@ Name: libbrotlidec URL: https://github.com/google/brotli Description: Brotli decoder library Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -R${libdir} -lbrotlidec +Libs: -L${libdir} -lbrotlidec Requires.private: libbrotlicommon >= 1.0.2 Cflags: -I${includedir} diff --git a/scripts/libbrotlienc.pc.in b/scripts/libbrotlienc.pc.in index 4dd0811b..2098afe2 100644 --- a/scripts/libbrotlienc.pc.in +++ b/scripts/libbrotlienc.pc.in @@ -7,6 +7,6 @@ Name: libbrotlienc URL: https://github.com/google/brotli Description: Brotli encoder library Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -R${libdir} -lbrotlienc +Libs: -L${libdir} -lbrotlienc Requires.private: libbrotlicommon >= 1.0.2 Cflags: -I${includedir} ================================================ FILE: package/brotli/Config.in ================================================ config BR2_PACKAGE_BROTLI bool "brotli" help Generic-purpose lossless compression library. The algorithm compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate but offers more dense compression. https://github.com/google/brotli ================================================ FILE: package/brotli/brotli.hash ================================================ # Locally generated: sha512 b8e2df955e8796ac1f022eb4ebad29532cb7e3aa6a4b6aee91dbd2c7d637eee84d9a144d3e878895bb5e62800875c2c01c8f737a1261020c54feacf9f676b5f5 v1.0.9.tar.gz # Hash for license files: sha512 bae78184c2f50f86d8c727826d3982c469454c42b9af81f4ef007e39036434fa894cf5be3bf5fc65b7de2301f0a72d067a8186e303327db8a96bd14867e0a3a8 LICENSE ================================================ FILE: package/brotli/brotli.mk ================================================ ################################################################################ # # brotli # ################################################################################ BROTLI_VERSION = 1.0.9 BROTLI_SOURCE = v$(BROTLI_VERSION).tar.gz BROTLI_SITE = https://github.com/google/brotli/archive BROTLI_LICENSE = MIT BROTLI_LICENSE_FILES = LICENSE BROTLI_CPE_ID_VENDOR = google BROTLI_INSTALL_STAGING = YES BROTLI_CONF_OPTS = \ -DBROTLI_DISABLE_TESTS=ON \ -DBROTLI_BUNDLED_MODE=OFF BROTLI_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) BROTLI_CFLAGS += -O0 endif BROTLI_CONF_OPTS += -DCMAKE_C_FLAGS="$(BROTLI_CFLAGS)" $(eval $(cmake-package)) ================================================ FILE: package/bsdiff/0001-Add-missing-header-for-u_char.patch ================================================ bspatch: Fix missing header for u_char Fixes http://autobuild.buildroot.net/results/31a/31a837cf6e34b02dce498f2b12e40d6d16a5a8e6/ Signed-off-by: Jörg Krause diff -purN bsdiff-4.3.orig/bspatch.c bsdiff-4.3/bspatch.c --- bsdiff-4.3.orig/bspatch.c 2015-04-30 13:47:26.485903359 +0200 +++ bsdiff-4.3/bspatch.c 2015-04-30 13:48:14.808908672 +0200 @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD: src/usr.bin/bsdiff/b #include #include #include +#include static off_t offtin(u_char *buf) { ================================================ FILE: package/bsdiff/Config.in ================================================ config BR2_PACKAGE_BSDIFF bool "bsdiff" select BR2_PACKAGE_BZIP2 help Binary patch/diff like xdelta but creates smaller diffs. Needs bzip2 support. http://www.daemonology.net/bsdiff/ ================================================ FILE: package/bsdiff/bsdiff.hash ================================================ # From http://www.daemonology.net/bsdiff/: md5 e6d812394f0e0ecc8d5df255aa1db22a bsdiff-4.3.tar.gz # locally computed sha256 fc0a6e634ef77dcf14bf36c7b6d1e57ba1ac5c4809073dfaacb3b5f7ab277eb7 bsdiff.c ================================================ FILE: package/bsdiff/bsdiff.mk ================================================ ################################################################################ # # bsdiff # ################################################################################ BSDIFF_VERSION = 4.3 BSDIFF_SITE = http://www.daemonology.net/bsdiff BSDIFF_DEPENDENCIES = bzip2 BSDIFF_LICENSE = BSD-2-Clause BSDIFF_LICENSE_FILES = bsdiff.c BSDIFF_CPE_ID_VENDOR = daemonology define BSDIFF_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \ $(@D)/bsdiff.c -lbz2 -o $(@D)/bsdiff $(TARGET_MAKE_ENV) $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \ $(@D)/bspatch.c -lbz2 -o $(@D)/bspatch endef define BSDIFF_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/bsdiff $(TARGET_DIR)/usr/bin/bsdiff $(INSTALL) -D -m 755 $(@D)/bspatch $(TARGET_DIR)/usr/bin/bspatch endef $(eval $(generic-package)) ================================================ FILE: package/btrfs-progs/Config.in ================================================ config BR2_PACKAGE_BTRFS_PROGS bool "btrfs-progs" depends on BR2_USE_MMU # util-linux depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LZO select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_ZLIB help Btrfs filesystem utilities https://btrfs.wiki.kernel.org/index.php/Main_Page comment "btrfs-progs needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/btrfs-progs/Config.in.host ================================================ config BR2_PACKAGE_HOST_BTRFS_PROGS bool "host btrfs-progs" help Btrfs filesystem utilities https://btrfs.wiki.kernel.org/index.php/Main_Page ================================================ FILE: package/btrfs-progs/btrfs-progs.hash ================================================ # From https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/sha256sums.asc sha256 d41961b0a92160c80f894ad9a1882822889c2e1d084cbf3e08b8c214a5cf0137 btrfs-progs-v5.11.tar.xz # Locally computed sha256 0d5bf346df9e635a29dcdddf832dc5b002ca6cdc1c5c9c6c567d2a61bb0c5c15 COPYING sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 libbtrfsutil/COPYING sha256 e3a994d82e644b03a792a930f574002658412f62407f5fee083f2555c5f23118 libbtrfsutil/COPYING.LESSER ================================================ FILE: package/btrfs-progs/btrfs-progs.mk ================================================ ################################################################################ # # btrfs-progs # ################################################################################ BTRFS_PROGS_VERSION = 5.11 BTRFS_PROGS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/people/kdave/btrfs-progs BTRFS_PROGS_SOURCE = btrfs-progs-v$(BTRFS_PROGS_VERSION).tar.xz BTRFS_PROGS_DEPENDENCIES = host-pkgconf lzo util-linux zlib BTRFS_PROGS_CONF_OPTS = --disable-backtrace --disable-zstd --disable-python BTRFS_PROGS_LICENSE = GPL-2.0, LGPL-3.0+ (libbtrfsutil) BTRFS_PROGS_LICENSE_FILES = COPYING libbtrfsutil/COPYING \ libbtrfsutil/COPYING.LESSER 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 # convert also supports conversion from reiserfs, which needs some # reiserfs libraries, but we have no package for them in Buildroot, so # we keep things simple and only handle ext2. ifeq ($(BR2_PACKAGE_E2FSPROGS),y) BTRFS_PROGS_CONF_OPTS += --enable-convert --with-convert=ext2 BTRFS_PROGS_DEPENDENCIES += e2fsprogs else BTRFS_PROGS_CONF_OPTS += --disable-convert endif HOST_BTRFS_PROGS_DEPENDENCIES = host-util-linux host-lzo host-zlib HOST_BTRFS_PROGS_CONF_OPTS = \ --disable-backtrace \ --disable-zstd \ --disable-python \ --disable-convert $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/bubblewrap/Config.in ================================================ config BR2_PACKAGE_BUBBLEWRAP bool "bubblewrap" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBCAP help Unprivileged sandbox tool based on Linux namespaces. https://github.com/projectatomic/bubblewrap ================================================ FILE: package/bubblewrap/bubblewrap.hash ================================================ # From https://github.com/containers/bubblewrap/releases/tag/v0.5.0 sha256 16fdaf33799d63104e347e0133f909196fe90d0c50515d010bcb422eb5a00818 bubblewrap-0.5.0.tar.xz # Hash for license files: sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c COPYING ================================================ FILE: package/bubblewrap/bubblewrap.mk ================================================ ################################################################################ # # bubblewrap # ################################################################################ BUBBLEWRAP_VERSION = 0.5.0 BUBBLEWRAP_SITE = https://github.com/containers/bubblewrap/releases/download/v$(BUBBLEWRAP_VERSION) BUBBLEWRAP_SOURCE = bubblewrap-$(BUBBLEWRAP_VERSION).tar.xz BUBBLEWRAP_DEPENDENCIES = host-pkgconf libcap BUBBLEWRAP_LICENSE = LGPL-2.0+ BUBBLEWRAP_LICENSE_FILES = COPYING BUBBLEWRAP_CPE_ID_VENDOR = projectatomic BUBBLEWRAP_CONF_OPTS = \ --enable-require-userns=no \ --disable-man \ --disable-sudo \ --with-priv-mode=none ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y) BUBBLEWRAP_CONF_OPTS += --with-bash-completion-dir=/usr/share/bash-completion/completions else BUBBLEWRAP_CONF_OPTS += --without-bash-completion-dir endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) BUBBLEWRAP_CONF_OPTS += --enable-selinux BUBBLEWRAP_DEPENDENCIES += libselinux else BUBBLEWRAP_CONF_OPTS += --disable-selinux endif # We need to mark bwrap as setuid, in case the kernel # has user namespaces disabled for non-root users. define BUBBLEWRAP_PERMISSIONS /usr/bin/bwrap f 1755 0 0 - - - - - endef $(eval $(autotools-package)) ================================================ FILE: package/bullet/0001-Extras-VHACD-inc-vhacdMutex.h-fix-musl-build.patch ================================================ From dd37b97e79aea231ae026ac93c6ca4c7a2667582 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 7 Aug 2021 17:11:24 +0200 Subject: [PATCH] Extras/VHACD/inc/vhacdMutex.h: fix musl build Fix the following build failure on musl (which does not provide PTHREAD_MUTEX_RECURSIVE_NP): In file included from /tmp/instance-5/output-1/build/bullet-3.09/src/LinearMath/btScalar.h:289, from /tmp/instance-5/output-1/build/bullet-3.09/src/LinearMath/btVector3.h:19, from /tmp/instance-5/output-1/build/bullet-3.09/src/LinearMath/btConvexHullComputer.h:18, from /tmp/instance-5/output-1/build/bullet-3.09/Extras/VHACD/src/VHACD.cpp:28: /tmp/instance-5/output-1/build/bullet-3.09/Extras/BulletRobotics/../../Extras/VHACD/inc/vhacdMutex.h: In constructor 'VHACD::Mutex::Mutex()': /tmp/instance-5/output-1/build/bullet-3.09/Extras/BulletRobotics/../../Extras/VHACD/inc/vhacdMutex.h:97:54: error: 'PTHREAD_MUTEX_RECURSIVE_NP' was not declared in this scope; did you mean 'PTHREAD_MUTEX_RECURSIVE'? 97 | VHACD_VERIFY(pthread_mutexattr_settype(&mutexAttr, PTHREAD_MUTEX_RECURSIVE_NP) == 0); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/79cd2024b3dfc8d3e896cdacf67fb891df81ca6e Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/bulletphysics/bullet3/pull/3930] --- Extras/VHACD/inc/vhacdMutex.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extras/VHACD/inc/vhacdMutex.h b/Extras/VHACD/inc/vhacdMutex.h index 4d1ad2a7d..78c111383 100644 --- a/Extras/VHACD/inc/vhacdMutex.h +++ b/Extras/VHACD/inc/vhacdMutex.h @@ -69,7 +69,7 @@ #include #endif -#if defined(__APPLE__) +#if defined(__APPLE__) || !defined(__GLIBC__) #define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE #endif -- 2.30.2 ================================================ FILE: package/bullet/Config.in ================================================ config BR2_PACKAGE_BULLET bool "bullet" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR help Bullet is a Collision Detection and Rigid Body Dynamics Library. http://bulletphysics.org comment "bullet needs a toolchain w/ C++, dynamic library, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR ================================================ FILE: package/bullet/bullet.hash ================================================ # Locally calculated sha256 f2feef9322329c0571d9066fede2db0ede92b19f7f7fdf54def3b4651f02af03 bullet-3.09.tar.gz sha256 885cd516a8420acb7c3e0b1a7119913b686495001ae564e3229740460e8cff59 LICENSE.txt ================================================ FILE: package/bullet/bullet.mk ================================================ ################################################################################ # # bullet # ################################################################################ BULLET_VERSION = 3.09 BULLET_SITE = $(call github,bulletphysics,bullet3,$(BULLET_VERSION)) BULLET_INSTALL_STAGING = YES BULLET_LICENSE = Zlib BULLET_LICENSE_FILES = LICENSE.txt # Disable unit tests. # Don't disable demos apps and Bullet3 library to avoid a build failure: # https://github.com/bulletphysics/bullet3/issues/3143 BULLET_CONF_OPTS = -DBUILD_UNIT_TESTS=OFF # extras needs dlfcn.h and NPTL (pthread_barrier_init) ifeq ($(BR2_STATIC_LIBS):$(BR2_TOOLCHAIN_HAS_THREADS_NPTL),:y) BULLET_CONF_OPTS += -DBUILD_EXTRAS=ON else BULLET_CONF_OPTS += -DBUILD_EXTRAS=OFF endif BULLET_CXXFLAGS = $(TARGET_CXXFLAGS) ifneq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180)$(BR2_TOOLCHAIN_HAS_GCC_BUG_101952),) BULLET_CXXFLAGS += -O0 endif BULLET_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(BULLET_CXXFLAGS)" $(eval $(cmake-package)) ================================================ FILE: package/bustle/Config.in ================================================ config BR2_PACKAGE_BUSTLE bool "bustle" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 depends on BR2_PACKAGE_DBUS # runtime select BR2_PACKAGE_LIBPCAP select BR2_PACKAGE_LIBGLIB2 help Bustle is a better dbus-monitor! It records and draws sequence diagrams of D-Bus activity, showing signal emissions, method calls and their corresponding returns, with timestamps for each individual event and the duration of each method call. This can help you check for unwanted D-Bus traffic, and pinpoint why your D-Bus-based application isn't performing as well as you like. This only installs the command line bustle-pcap tool, not the graphical viewer. https://gitlab.freedesktop.org/bustle/bustle/ comment "bustle needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on BR2_PACKAGE_DBUS depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/bustle/bustle.hash ================================================ # Locally calculated sha256 2fb3e9d9a97db3cd9a3ce763e86947b642bd7733b46206177a1677f08726573c bustle-0.8.0.tar.gz sha256 ad168b537264fba8f94380cb10f60847da7db551fb4281bb6d4f24c74f652a1d LICENSE ================================================ FILE: package/bustle/bustle.mk ================================================ ################################################################################ # # bustle # ################################################################################ BUSTLE_VERSION = 0.8.0 BUSTLE_SITE = https://hackage.haskell.org/package/bustle-$(BUSTLE_VERSION) BUSTLE_LICENSE = LGPL-2.1+ BUSTLE_LICENSE_FILES = LICENSE BUSTLE_DEPENDENCIES = libglib2 libpcap host-pkgconf ifeq ($(BR2_STATIC_LIBS),y) BUSTLE_MAKE_OPTS += PCAP_CONFIG="$(STAGING_DIR)/usr/bin/pcap-config --static" else BUSTLE_MAKE_OPTS += PCAP_CONFIG="$(STAGING_DIR)/usr/bin/pcap-config" endif define BUSTLE_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ $(BUSTLE_MAKE_OPTS) -C $(@D) dist/build/bustle-pcap endef define BUSTLE_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/dist/build/bustle-pcap \ $(TARGET_DIR)/usr/bin/bustle-pcap endef $(eval $(generic-package)) ================================================ FILE: package/busybox/0001-networking-libiproute-use-linux-if_packet.h-instead-.patch ================================================ From 60da1d0763224698008d847eb8ad8d4d8c6f54ff Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 5 Oct 2013 15:55:06 +0200 Subject: [PATCH] networking/libiproute: use instead of The musl C library doesn't provide the since the corresponding kernel headers already provides the necessary definitions. Replacing by also removes the need to include This commit fixes the build of iplink with the musl C library. Signed-off-by: Thomas Petazzoni [Gustavo: update for busybox 1.22.0] Signed-off-by: Petr Vorel --- networking/libiproute/iplink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/networking/libiproute/iplink.c b/networking/libiproute/iplink.c index 1a1064bdc..a4c3ad307 100644 --- a/networking/libiproute/iplink.c +++ b/networking/libiproute/iplink.c @@ -7,7 +7,7 @@ */ #include /*#include - not needed? */ -#include +#include #include #include -- 2.33.0 ================================================ FILE: package/busybox/0002-Makefile.flags-strip-non-l-arguments-returned-by-pkg.patch ================================================ From 59daea82e7b5abcdb42a4f97a0109f14d5a774ea Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Mon, 25 Nov 2013 22:51:53 +0100 Subject: [PATCH] Makefile.flags: strip non -l arguments returned by pkg-config Signed-off-by: Thomas Petazzoni [yann.morin.1998@free.fr: refresh for 1.29.0] [petr.vorel@gmail.com: refresh for 1.32.0] Signed-off-by: "Yann E. MORIN" Signed-off-by: Petr Vorel --- Makefile.flags | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile.flags b/Makefile.flags index 667481983..88d76efec 100644 --- a/Makefile.flags +++ b/Makefile.flags @@ -180,7 +180,9 @@ ifeq ($(CONFIG_SELINUX),y) SELINUX_PC_MODULES = libselinux libsepol $(eval $(call pkg_check_modules,SELINUX,$(SELINUX_PC_MODULES))) CPPFLAGS += $(SELINUX_CFLAGS) -LDLIBS += $(if $(SELINUX_LIBS),$(SELINUX_LIBS:-l%=%),$(SELINUX_PC_MODULES:lib%=%)) +LDLIBS += $(if $(SELINUX_LIBS),\ + $(patsubst -l%,%,$(filter -l%,$(SELINUX_LIBS))),\ + $(SELINUX_PC_MODULES:lib%=%)) endif ifeq ($(CONFIG_FEATURE_NSLOOKUP_BIG),y) -- 2.33.0 ================================================ FILE: package/busybox/Config.in ================================================ config BR2_PACKAGE_BUSYBOX bool "BusyBox" default y help The Swiss Army Knife of embedded Linux. It slices, it dices, it makes Julian Fries. http://busybox.net/ Most people will answer Y. if BR2_PACKAGE_BUSYBOX config BR2_PACKAGE_BUSYBOX_CONFIG string "BusyBox configuration file to use?" default "package/busybox/busybox.config" help Some people may wish to use their own modified BusyBox configuration file, and will specify their config file location with this option. Most people will just use the default BusyBox configuration file. config BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES string "Additional BusyBox configuration fragment files" help 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 Show packages in menuconfig that are potentially also provided by busybox. config BR2_PACKAGE_BUSYBOX_SELINUX bool "Enable SELinux support" default y depends on BR2_PACKAGE_LIBSELINUX select BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES help Enable SELinux support in BusyBox. Please note that depending on your BusyBox configuration and the SELinux policy implementation, you may want to also enable BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES. For instance, if your BusyBox configuration only uses a couple of minor BusyBox features, such as simple command line utilities, the symlinked version of BusyBox can be used to save space. If BusyBox provides more features, such as crond, then individual binaries have to be enabled for the SELinux type transitions to occur properly. config BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES bool "Individual binaries" depends on !BR2_STATIC_LIBS help By default (i.e with this option disabled), Busybox is installed as a single binary in /bin/busybox and all applets are a symbolic link to /bin/busybox. With this option enabled, each applet is a separate binary, which is needed for proper operation with SELinux. comment "Busybox individual binaries need a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_BUSYBOX_WATCHDOG bool "Install the watchdog daemon startup script" help Install the watchdog daemon startup script, that just start at the boot the busybox watchdog daemon. if BR2_PACKAGE_BUSYBOX_WATCHDOG config BR2_PACKAGE_BUSYBOX_WATCHDOG_PERIOD string "Delay between reset" default "5" help Select the number of seconds between each reset of the watchdog (default 5) Use ms suffix to specify milliseconds (e.g. 500ms) endif endif if !BR2_PACKAGE_BUSYBOX # kconfig doesn't support else comment "You may need to enable other packages to get a working system" comment "You better know what you're doing!" # 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 ================================================ FILE: package/busybox/S01syslogd ================================================ #!/bin/sh DAEMON="syslogd" PIDFILE="/var/run/$DAEMON.pid" SYSLOGD_ARGS="" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" # BusyBox' syslogd does not create a pidfile, so pass "-n" in the command line # and use "-m" to instruct start-stop-daemon to create one. start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/sbin/$DAEMON" \ -- -n $SYSLOGD_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/busybox/S02klogd ================================================ #!/bin/sh DAEMON="klogd" PIDFILE="/var/run/$DAEMON.pid" KLOGD_ARGS="" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" # BusyBox' klogd does not create a pidfile, so pass "-n" in the command line # and use "-m" to instruct start-stop-daemon to create one. start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/sbin/$DAEMON" \ -- -n $KLOGD_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/busybox/S10mdev ================================================ #!/bin/sh # # Run the mdev daemon # DAEMON="mdev" PIDFILE="/var/run/$DAEMON.pid" start() { echo -n "Starting $DAEMON... " start-stop-daemon -S -b -m -p $PIDFILE -x /sbin/mdev -- -df [ $? -eq 0 ] && echo "OK" || echo "ERROR" # coldplug modules find /sys/ -name modalias -print0 | \ xargs -0 sort -u | \ tr '\n' '\0' | \ xargs -0 modprobe -abq } stop() { echo -n "Stopping $DAEMON... " start-stop-daemon -K -p $PIDFILE [ $? -eq 0 ] && echo "OK" || echo "ERROR" } restart() { stop start } case "$1" in start|stop|restart) "$1" ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/busybox/S15watchdog ================================================ #!/bin/sh # # Start watchdog # case "$1" in start) echo "Starting watchdog..." watchdog -t PERIOD /dev/watchdog ;; stop) ;; restart|reload) ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/busybox/S50telnet ================================================ #!/bin/sh # # Start telnet.... # TELNETD_ARGS=-F [ -r /etc/default/telnet ] && . /etc/default/telnet start() { printf "Starting telnetd: " start-stop-daemon -S -q -m -b -p /var/run/telnetd.pid \ -x /usr/sbin/telnetd -- $TELNETD_ARGS [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping telnetd: " start-stop-daemon -K -q -p /var/run/telnetd.pid \ -x /usr/sbin/telnetd [ $? = 0 ] && echo "OK" || echo "FAIL" } case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/busybox/busybox-minimal.config ================================================ # # Automatically generated make config: don't edit # Busybox version: 1.28.0 # Wed Feb 7 09:47:09 2018 # CONFIG_HAVE_DOT_CONFIG=y # # Settings # # CONFIG_DESKTOP is not set # CONFIG_EXTRA_COMPAT is not set # CONFIG_FEDORA_COMPAT is not set CONFIG_INCLUDE_SUSv2=y CONFIG_LONG_OPTS=y # CONFIG_SHOW_USAGE is not set # CONFIG_FEATURE_VERBOSE_USAGE is not set # CONFIG_FEATURE_COMPRESS_USAGE is not set CONFIG_LFS=y # CONFIG_PAM is not set CONFIG_FEATURE_DEVPTS=y CONFIG_FEATURE_UTMP=y CONFIG_FEATURE_WTMP=y # CONFIG_FEATURE_PIDFILE is not set CONFIG_PID_FILE_PATH="" CONFIG_BUSYBOX=y CONFIG_FEATURE_INSTALLER=y # CONFIG_INSTALL_NO_USR is not set CONFIG_FEATURE_SUID=y # CONFIG_FEATURE_SUID_CONFIG is not set # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set # CONFIG_FEATURE_PREFER_APPLETS is not set CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" # CONFIG_SELINUX is not set # CONFIG_FEATURE_CLEAN_UP is not set CONFIG_FEATURE_SYSLOG=y CONFIG_PLATFORM_LINUX=y # # Build Options # CONFIG_STATIC=y # CONFIG_PIE is not set # CONFIG_NOMMU is not set # CONFIG_BUILD_LIBBUSYBOX is not set # CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set # CONFIG_FEATURE_INDIVIDUAL is not set # CONFIG_FEATURE_SHARED_BUSYBOX is not set CONFIG_CROSS_COMPILER_PREFIX="" CONFIG_SYSROOT="" CONFIG_EXTRA_CFLAGS="" CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDLIBS="" # CONFIG_USE_PORTABLE_CODE 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" # # 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 # # Library Tuning # # CONFIG_FEATURE_USE_BSS_TAIL is not set CONFIG_FEATURE_RTMINMAX=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_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_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_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_FEATURE_NON_POSIX_CP=y # CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set CONFIG_FEATURE_USE_SENDFILE=y 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_ZCAT=y # CONFIG_FEATURE_GUNZIP_LONG_OPTIONS is not set # CONFIG_BUNZIP2 is not set CONFIG_BZCAT=y # CONFIG_UNLZMA is not set CONFIG_LZCAT=y # CONFIG_LZMA is not set # CONFIG_UNXZ is not set CONFIG_XZCAT=y # CONFIG_XZ is not set # CONFIG_BZIP2 is not set CONFIG_FEATURE_BZIP2_DECOMPRESS=y # 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_GZIP is not set # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set CONFIG_GZIP_FAST=0 # CONFIG_FEATURE_GZIP_LEVELS is not set CONFIG_FEATURE_GZIP_DECOMPRESS=y # CONFIG_LZOP is not set CONFIG_UNLZOP=y CONFIG_LZOPCAT=y # CONFIG_LZOP_COMPR_HIGH is not set # CONFIG_RPM is not set # CONFIG_RPM2CPIO is not set # CONFIG_TAR is not set # CONFIG_FEATURE_TAR_LONG_OPTIONS 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_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 # CONFIG_FEATURE_UNZIP_CDF is not set # CONFIG_FEATURE_UNZIP_BZIP2 is not set # CONFIG_FEATURE_UNZIP_LZMA is not set # CONFIG_FEATURE_UNZIP_XZ is not set # CONFIG_FEATURE_LZMA_FAST is not set # # Coreutils # CONFIG_BASENAME=y CONFIG_CAT=y CONFIG_FEATURE_CATN=y CONFIG_FEATURE_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_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_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_EXPAND is not set # CONFIG_UNEXPAND is not set CONFIG_EXPR=y CONFIG_EXPR_MATH_SUPPORT_64=y CONFIG_FACTOR=y CONFIG_FALSE=y CONFIG_FOLD=y # CONFIG_FSYNC is not set CONFIG_HEAD=y CONFIG_FEATURE_FANCY_HEAD=y CONFIG_HOSTID=y CONFIG_ID=y # CONFIG_GROUPS is not set CONFIG_INSTALL=y CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y CONFIG_LINK=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_WIDTH=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_SHA1SUM=y CONFIG_SHA256SUM=y CONFIG_SHA512SUM=y CONFIG_SHA3SUM=y # # Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum # CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y CONFIG_MKDIR=y CONFIG_MKFIFO=y CONFIG_MKNOD=y # CONFIG_MKTEMP is not set CONFIG_MV=y CONFIG_NICE=y CONFIG_NL=y CONFIG_NOHUP=y CONFIG_NPROC=y CONFIG_OD=y CONFIG_PASTE=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_SEQ=y CONFIG_SHRED=y # CONFIG_SHUF is not set 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_STAT is not set # CONFIG_FEATURE_STAT_FORMAT is not set # CONFIG_FEATURE_STAT_FILESYSTEM 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 CONFIG_TEE=y CONFIG_FEATURE_TEE_USE_BLOCK_IO=y CONFIG_TEST=y CONFIG_TEST1=y CONFIG_TEST2=y CONFIG_FEATURE_TEST_64=y # CONFIG_TIMEOUT is not set 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_TRUE=y CONFIG_TRUNCATE=y CONFIG_TTY=y CONFIG_UNAME=y CONFIG_UNAME_OSNAME="GNU/Linux" CONFIG_BB_ARCH=y CONFIG_UNIQ=y CONFIG_UNLINK=y CONFIG_USLEEP=y CONFIG_UUDECODE=y # CONFIG_BASE64 is not set CONFIG_UUENCODE=y CONFIG_WC=y # CONFIG_FEATURE_WC_LARGE is not set CONFIG_WHOAMI=y CONFIG_WHO=y CONFIG_W=y # CONFIG_USERS is not set CONFIG_YES=y # # Common options # CONFIG_FEATURE_VERBOSE=y # # Common options for cp and mv # CONFIG_FEATURE_PRESERVE_HARDLINKS=y # # Common options for df, du, ls # CONFIG_FEATURE_HUMAN_READABLE=y # # Console Utilities # # CONFIG_CHVT is not set # CONFIG_CLEAR is not set # CONFIG_DEALLOCVT is not set # CONFIG_DUMPKMAP is not set # CONFIG_FGCONSOLE is not set # CONFIG_KBD_MODE is not set # CONFIG_LOADFONT is not set # CONFIG_SETFONT is not set # CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set CONFIG_DEFAULT_SETFONT_DIR="" # CONFIG_FEATURE_LOADFONT_PSF2 is not set # CONFIG_FEATURE_LOADFONT_RAW 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_SETKEYCODES is not set # CONFIG_SETLOGCONS is not set # CONFIG_SHOWKEY is not set # # Debian Utilities # # 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_LONG_OPTIONS=y CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y CONFIG_WHICH=y # # klibc-utils # # CONFIG_MINIPS is not set CONFIG_NUKE=y CONFIG_RESUME=y CONFIG_RUN_INIT=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_EGREP=y CONFIG_FGREP=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 CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=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_POWEROFF=y CONFIG_REBOOT=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_INIT_QUIET=y # CONFIG_FEATURE_INIT_COREDUMPS is not set CONFIG_INIT_TERMINAL_TYPE="linux" CONFIG_FEATURE_INIT_MODIFY_CMDLINE=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_ADDUSER_TO_GROUP is not set # CONFIG_ADD_SHELL is not set # CONFIG_REMOVE_SHELL is not set CONFIG_ADDUSER=y # 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_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY 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_MODPROBE_SMALL is not set # CONFIG_DEPMOD is not set # CONFIG_INSMOD is not set # CONFIG_LSMOD is not set # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set # CONFIG_MODINFO is not set # CONFIG_MODPROBE is not set # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set # CONFIG_RMMOD is not set # # Options common to multiple modutils # # CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS is not set # CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set # CONFIG_FEATURE_2_4_MODULES 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_INSMOD_TRY_MMAP 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_ACPID is not set # CONFIG_FEATURE_ACPID_COMPAT is not set # CONFIG_BLKDISCARD is not set # CONFIG_BLKID is not set # CONFIG_FEATURE_BLKID_TYPE is not set # CONFIG_BLOCKDEV is not set # CONFIG_CAL is not set # CONFIG_CHRT is not set CONFIG_DMESG=y CONFIG_FEATURE_DMESG_PRETTY=y # CONFIG_EJECT is not set # CONFIG_FEATURE_EJECT_SCSI is not set CONFIG_FALLOCATE=y # CONFIG_FATATTR is not set # CONFIG_FBSET is not set # CONFIG_FEATURE_FBSET_FANCY is not set # CONFIG_FEATURE_FBSET_READMODE 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_FDFLUSH is not set CONFIG_FREERAMDISK=y # CONFIG_FSCK_MINIX is not set CONFIG_FSFREEZE=y # CONFIG_FSTRIM 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_XXD=y # CONFIG_HWCLOCK is not set # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set # CONFIG_IONICE is not set # CONFIG_IPCRM is not set # CONFIG_IPCS is not set # CONFIG_LAST is not set # CONFIG_FEATURE_LAST_FANCY is not set # CONFIG_LOSETUP is not set # CONFIG_LSPCI is not set # CONFIG_LSUSB 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_MESG=y CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y CONFIG_MKE2FS=y # 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_MKDOSFS=y # CONFIG_MKFS_VFAT is not set # CONFIG_MKSWAP is not set # 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_FEATURE_MOUNT_OTHERTAB=y # CONFIG_MOUNTPOINT is not set # CONFIG_NSENTER is not set # CONFIG_PIVOT_ROOT is not set # CONFIG_RDATE is not set # CONFIG_RDEV is not set # CONFIG_READPROFILE is not set # CONFIG_RENICE is not set # CONFIG_REV is not set # CONFIG_RTCWAKE is not set # CONFIG_SCRIPT is not set # CONFIG_SCRIPTREPLAY is not set # CONFIG_SETARCH is not set CONFIG_LINUX32=y CONFIG_LINUX64=y CONFIG_SETPRIV=y CONFIG_FEATURE_SETPRIV_DUMP=y CONFIG_FEATURE_SETPRIV_CAPABILITIES=y CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y # CONFIG_SETSID is not set CONFIG_SWAPON=y # CONFIG_FEATURE_SWAPON_DISCARD is not set # CONFIG_FEATURE_SWAPON_PRI is not set CONFIG_SWAPOFF=y CONFIG_FEATURE_SWAPONOFF_LABEL=y # CONFIG_SWITCH_ROOT is not set # CONFIG_TASKSET is not set # CONFIG_FEATURE_TASKSET_FANCY is not set # CONFIG_UEVENT is not set CONFIG_UMOUNT=y CONFIG_FEATURE_UMOUNT_ALL=y # CONFIG_UNSHARE is not set # CONFIG_WALL is not set # # 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=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 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_MINIX=y # 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_UBIFS is not set # CONFIG_FEATURE_VOLUMEID_UDF is not set # CONFIG_FEATURE_VOLUMEID_XFS is not set # # Miscellaneous Utilities # # 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_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_SPECIAL_TIMES is not set CONFIG_FEATURE_CROND_DIR="" # 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_FBSPLASH is not set # CONFIG_FLASHCP is not set # CONFIG_FLASH_ERASEALL is not set # CONFIG_FLASH_LOCK is not set # CONFIG_FLASH_UNLOCK 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_HEXEDIT=y # CONFIG_I2CGET is not set # CONFIG_I2CSET is not set # CONFIG_I2CDUMP is not set # CONFIG_I2CDETECT is not set # CONFIG_INOTIFYD 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_LSSCSI=y # 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_MT is not set # CONFIG_NANDWRITE is not set # CONFIG_NANDDUMP is not set CONFIG_PARTPROBE=y # CONFIG_RAIDAUTORUN is not set # CONFIG_READAHEAD is not set # CONFIG_RFKILL is not set # CONFIG_RUNLEVEL is not set # CONFIG_RX is not set CONFIG_SETFATTR=y CONFIG_SETSERIAL=y # CONFIG_STRINGS is not set # CONFIG_TIME is not set # CONFIG_TTYSIZE 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_VOLNAME is not set # CONFIG_WATCHDOG is not set # # Networking Utilities # # 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_FTPD is not set # CONFIG_FEATURE_FTPD_WRITE is not set # CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set # CONFIG_FEATURE_FTPD_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_DNSDOMAINNAME=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_IFUP=y CONFIG_IFDOWN=y CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" CONFIG_FEATURE_IFUPDOWN_IP=y 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_IPADDR=y CONFIG_IPLINK=y CONFIG_IPROUTE=y # CONFIG_IPTUNNEL is not set # CONFIG_IPRULE is not set # CONFIG_IPNEIGH is not set 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_RARE_PROTOCOLS is not set # CONFIG_IPCALC is not set # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set # CONFIG_FEATURE_IPCALC_FANCY is not set # CONFIG_FAKEIDENTD is not set # CONFIG_NAMEIF is not set # CONFIG_FEATURE_NAMEIF_EXTENDED is not set # CONFIG_NBDCLIENT is not set CONFIG_NC=y # CONFIG_NETCAT is not set CONFIG_NC_SERVER=y # CONFIG_NC_EXTRA is not set # CONFIG_NC_110_COMPAT 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_PING=y # CONFIG_PING6 is not set # CONFIG_FEATURE_FANCY_PING is not set # CONFIG_PSCAN is not set CONFIG_ROUTE=y # CONFIG_SLATTACH is not set # CONFIG_SSL_CLIENT is not set # CONFIG_TCPSVD is not set # CONFIG_UDPSVD is not set CONFIG_TELNET=y CONFIG_FEATURE_TELNET_TTYPE=y CONFIG_FEATURE_TELNET_AUTOLOGIN=y CONFIG_FEATURE_TELNET_WIDTH=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_FEATURE_TFTP_PROGRESS_BAR 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_TFTP_DEBUG is not set # CONFIG_TLS is not set # CONFIG_TRACEROUTE is not set # CONFIG_TRACEROUTE6 is not set # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set # CONFIG_TUNCTL is not set # CONFIG_FEATURE_TUNCTL_UG is not set # CONFIG_VCONFIG is not set CONFIG_WGET=y # CONFIG_FEATURE_WGET_LONG_OPTIONS is not set # CONFIG_FEATURE_WGET_STATUSBAR is not set # CONFIG_FEATURE_WGET_AUTHENTICATION is not set # CONFIG_FEATURE_WGET_TIMEOUT is not set # CONFIG_FEATURE_WGET_HTTPS is not set # CONFIG_FEATURE_WGET_OPENSSL is not set # CONFIG_WHOIS is not set # CONFIG_ZCIP is not set # CONFIG_UDHCPD is not set # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set CONFIG_DHCPD_LEASES_FILE="" # CONFIG_DUMPLEASES is not set # CONFIG_DHCPRELAY is not set CONFIG_UDHCPC=y # CONFIG_FEATURE_UDHCPC_ARPING is not set CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" # CONFIG_UDHCPC6 is not set # CONFIG_FEATURE_UDHCPC6_RFC3646 is not set # CONFIG_FEATURE_UDHCPC6_RFC4704 is not set # CONFIG_FEATURE_UDHCPC6_RFC4833 is not set # # Common options for DHCP applets # # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=9 CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 # CONFIG_FEATURE_UDHCP_RFC3397 is not set # CONFIG_FEATURE_UDHCP_8021Q is not set CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" # # 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_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 CONFIG_FEATURE_MIME_CHARSET="" # # Process Utilities # # CONFIG_FREE is not set # CONFIG_FUSER is not set # CONFIG_IOSTAT is not set CONFIG_KILL=y CONFIG_KILLALL=y CONFIG_KILLALL5=y # CONFIG_LSOF is not set # CONFIG_MPSTAT is not set # CONFIG_NMETER is not set # CONFIG_PGREP is not set # CONFIG_PKILL is not set # CONFIG_PIDOF is not set # CONFIG_FEATURE_PIDOF_SINGLE is not set # CONFIG_FEATURE_PIDOF_OMIT is not set # CONFIG_PMAP is not set # CONFIG_POWERTOP is not set # CONFIG_FEATURE_POWERTOP_INTERACTIVE 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_UNUSUAL_SYSTEMS is not set # CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set # CONFIG_PSTREE is not set # CONFIG_PWDX is not set # CONFIG_SMEMCAP is not set # CONFIG_BB_SYSCTL is not set # CONFIG_TOP is not set # CONFIG_FEATURE_TOP_INTERACTIVE 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_WATCH is not set # CONFIG_FEATURE_SHOW_THREADS 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_SVC=y # CONFIG_SVLOGD is not set # CONFIG_CHCON 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_RUNCON is not set # CONFIG_SELINUXENABLED is not set # CONFIG_SESTATUS is not set # CONFIG_SETENFORCE is not set # CONFIG_SETFILES is not set # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set # CONFIG_RESTORECON is not set # CONFIG_SETSEBOOL is not set # # Shells # # CONFIG_SH_IS_ASH is not set CONFIG_SH_IS_HUSH=y # CONFIG_SH_IS_NONE is not set # CONFIG_BASH_IS_ASH is not set # CONFIG_BASH_IS_HUSH is not set CONFIG_BASH_IS_NONE=y # CONFIG_ASH is not set # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set # CONFIG_ASH_INTERNAL_GLOB is not set # CONFIG_ASH_BASH_COMPAT is not set # CONFIG_ASH_JOB_CONTROL is not set # CONFIG_ASH_ALIAS is not set # CONFIG_ASH_RANDOM_SUPPORT is not set # CONFIG_ASH_EXPAND_PRMT is not set # CONFIG_ASH_IDLE_TIMEOUT is not set # CONFIG_ASH_MAIL is not set # CONFIG_ASH_ECHO is not set # CONFIG_ASH_PRINTF is not set # CONFIG_ASH_TEST is not set # CONFIG_ASH_HELP is not set # CONFIG_ASH_GETOPTS is not set # CONFIG_ASH_CMDCMD is not set # CONFIG_CTTYHACK is not set CONFIG_HUSH=y CONFIG_HUSH_BASH_COMPAT=y CONFIG_HUSH_BRACE_EXPANSION=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_MODE_X=y CONFIG_HUSH_ECHO=y CONFIG_HUSH_PRINTF=y CONFIG_HUSH_TEST=y CONFIG_HUSH_HELP=y CONFIG_HUSH_EXPORT=y CONFIG_HUSH_EXPORT_N=y CONFIG_HUSH_READONLY=y CONFIG_HUSH_KILL=y CONFIG_HUSH_WAIT=y CONFIG_HUSH_TRAP=y CONFIG_HUSH_TYPE=y CONFIG_HUSH_TIMES=y CONFIG_HUSH_READ=y CONFIG_HUSH_SET=y CONFIG_HUSH_UNSET=y CONFIG_HUSH_ULIMIT=y CONFIG_HUSH_UMASK=y CONFIG_HUSH_GETOPTS=y # CONFIG_HUSH_MEMLEAK is not set # # Options common to all shells # CONFIG_FEATURE_SH_MATH=y CONFIG_FEATURE_SH_MATH_64=y CONFIG_FEATURE_SH_EXTRA_QUIET=y # CONFIG_FEATURE_SH_STANDALONE is not set # CONFIG_FEATURE_SH_NOFORK is not set CONFIG_FEATURE_SH_READ_FRAC=y # 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 ================================================ FILE: package/busybox/busybox.config ================================================ # # Automatically generated make config: don't edit # Busybox version: 1.28.0 # Wed Feb 7 09:44:57 2018 # CONFIG_HAVE_DOT_CONFIG=y # # Settings # CONFIG_DESKTOP=y # CONFIG_EXTRA_COMPAT is not set # CONFIG_FEDORA_COMPAT is not set CONFIG_INCLUDE_SUSv2=y CONFIG_LONG_OPTS=y CONFIG_SHOW_USAGE=y CONFIG_FEATURE_VERBOSE_USAGE=y # CONFIG_FEATURE_COMPRESS_USAGE is not set CONFIG_LFS=y # CONFIG_PAM is not set CONFIG_FEATURE_DEVPTS=y CONFIG_FEATURE_UTMP=y CONFIG_FEATURE_WTMP=y # CONFIG_FEATURE_PIDFILE is not set CONFIG_PID_FILE_PATH="" CONFIG_BUSYBOX=y CONFIG_FEATURE_INSTALLER=y # CONFIG_INSTALL_NO_USR is not set CONFIG_FEATURE_SUID=y # CONFIG_FEATURE_SUID_CONFIG is not set # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set # CONFIG_FEATURE_PREFER_APPLETS is not set CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" # CONFIG_SELINUX is not set # CONFIG_FEATURE_CLEAN_UP is not set CONFIG_FEATURE_SYSLOG=y CONFIG_PLATFORM_LINUX=y # # Build Options # # CONFIG_STATIC is not set # CONFIG_PIE is not set # CONFIG_NOMMU is not set # CONFIG_BUILD_LIBBUSYBOX is not set # CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set # CONFIG_FEATURE_INDIVIDUAL is not set # CONFIG_FEATURE_SHARED_BUSYBOX is not set CONFIG_CROSS_COMPILER_PREFIX="" CONFIG_SYSROOT="" CONFIG_EXTRA_CFLAGS="" CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDLIBS="" # CONFIG_USE_PORTABLE_CODE 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" # # 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 # # Library Tuning # # CONFIG_FEATURE_USE_BSS_TAIL is not set CONFIG_FEATURE_RTMINMAX=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_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_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_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_FEATURE_NON_POSIX_CP=y # CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set CONFIG_FEATURE_USE_SENDFILE=y 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=y # CONFIG_FEATURE_AR_LONG_FILENAMES is not set CONFIG_FEATURE_AR_CREATE=y # CONFIG_UNCOMPRESS is not set CONFIG_GUNZIP=y CONFIG_ZCAT=y CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y CONFIG_BUNZIP2=y CONFIG_BZCAT=y CONFIG_UNLZMA=y CONFIG_LZCAT=y CONFIG_LZMA=y CONFIG_UNXZ=y CONFIG_XZCAT=y CONFIG_XZ=y # CONFIG_BZIP2 is not set CONFIG_FEATURE_BZIP2_DECOMPRESS=y CONFIG_CPIO=y # 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_GZIP=y # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set CONFIG_GZIP_FAST=0 # CONFIG_FEATURE_GZIP_LEVELS is not set CONFIG_FEATURE_GZIP_DECOMPRESS=y # CONFIG_LZOP is not set CONFIG_UNLZOP=y CONFIG_LZOPCAT=y # CONFIG_LZOP_COMPR_HIGH is not set # CONFIG_RPM is not set # CONFIG_RPM2CPIO is not set CONFIG_TAR=y CONFIG_FEATURE_TAR_LONG_OPTIONS=y CONFIG_FEATURE_TAR_CREATE=y # CONFIG_FEATURE_TAR_AUTODETECT is not set CONFIG_FEATURE_TAR_FROM=y # CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set # CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y CONFIG_FEATURE_TAR_TO_COMMAND=y # 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=y CONFIG_FEATURE_UNZIP_CDF=y CONFIG_FEATURE_UNZIP_BZIP2=y CONFIG_FEATURE_UNZIP_LZMA=y CONFIG_FEATURE_UNZIP_XZ=y # CONFIG_FEATURE_LZMA_FAST is not set # # Coreutils # CONFIG_BASENAME=y CONFIG_CAT=y CONFIG_FEATURE_CATN=y CONFIG_FEATURE_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_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_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_EXPAND is not set # CONFIG_UNEXPAND is not set CONFIG_EXPR=y CONFIG_EXPR_MATH_SUPPORT_64=y CONFIG_FACTOR=y CONFIG_FALSE=y CONFIG_FOLD=y # CONFIG_FSYNC is not set CONFIG_HEAD=y CONFIG_FEATURE_FANCY_HEAD=y CONFIG_HOSTID=y CONFIG_ID=y # CONFIG_GROUPS is not set CONFIG_INSTALL=y CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y CONFIG_LINK=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_WIDTH=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_SHA1SUM=y CONFIG_SHA256SUM=y CONFIG_SHA512SUM=y CONFIG_SHA3SUM=y # # Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum # CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y CONFIG_MKDIR=y CONFIG_MKFIFO=y CONFIG_MKNOD=y CONFIG_MKTEMP=y CONFIG_MV=y CONFIG_NICE=y CONFIG_NL=y CONFIG_NOHUP=y CONFIG_NPROC=y CONFIG_OD=y CONFIG_PASTE=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_SEQ=y CONFIG_SHRED=y # CONFIG_SHUF is not set 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_STAT is not set # CONFIG_FEATURE_STAT_FORMAT is not set # CONFIG_FEATURE_STAT_FILESYSTEM 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 CONFIG_TEE=y CONFIG_FEATURE_TEE_USE_BLOCK_IO=y CONFIG_TEST=y CONFIG_TEST1=y CONFIG_TEST2=y CONFIG_FEATURE_TEST_64=y # CONFIG_TIMEOUT is not set 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_TRUE=y CONFIG_TRUNCATE=y CONFIG_TTY=y CONFIG_UNAME=y CONFIG_UNAME_OSNAME="GNU/Linux" CONFIG_BB_ARCH=y CONFIG_UNIQ=y CONFIG_UNLINK=y CONFIG_USLEEP=y CONFIG_UUDECODE=y CONFIG_BASE64=y CONFIG_UUENCODE=y CONFIG_WC=y # CONFIG_FEATURE_WC_LARGE is not set CONFIG_WHOAMI=y CONFIG_WHO=y CONFIG_W=y # CONFIG_USERS is not set CONFIG_YES=y # # Common options # CONFIG_FEATURE_VERBOSE=y # # Common options for cp and mv # CONFIG_FEATURE_PRESERVE_HARDLINKS=y # # Common options for df, du, ls # CONFIG_FEATURE_HUMAN_READABLE=y # # Console Utilities # CONFIG_CHVT=y CONFIG_CLEAR=y CONFIG_DEALLOCVT=y CONFIG_DUMPKMAP=y # CONFIG_FGCONSOLE is not set # CONFIG_KBD_MODE is not set CONFIG_LOADFONT=y # CONFIG_SETFONT is not set # CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set CONFIG_DEFAULT_SETFONT_DIR="" # # Common options for loadfont and setfont # CONFIG_FEATURE_LOADFONT_PSF2=y CONFIG_FEATURE_LOADFONT_RAW=y CONFIG_LOADKMAP=y CONFIG_OPENVT=y CONFIG_RESET=y CONFIG_RESIZE=y CONFIG_FEATURE_RESIZE_PRINT=y CONFIG_SETCONSOLE=y # CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set CONFIG_SETKEYCODES=y CONFIG_SETLOGCONS=y # CONFIG_SHOWKEY is not set # # Debian Utilities # CONFIG_PIPE_PROGRESS=y CONFIG_RUN_PARTS=y CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y # CONFIG_FEATURE_RUN_PARTS_FANCY is not set CONFIG_START_STOP_DAEMON=y CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y CONFIG_WHICH=y # # klibc-utils # # CONFIG_MINIPS is not set CONFIG_NUKE=y CONFIG_RESUME=y CONFIG_RUN_INIT=y # # Editors # CONFIG_AWK=y # CONFIG_FEATURE_AWK_LIBM is not set CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y CONFIG_CMP=y CONFIG_DIFF=y # CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set CONFIG_FEATURE_DIFF_DIR=y # CONFIG_ED is not set CONFIG_PATCH=y CONFIG_SED=y CONFIG_VI=y CONFIG_FEATURE_VI_MAX_LEN=4096 CONFIG_FEATURE_VI_8BIT=y CONFIG_FEATURE_VI_COLON=y CONFIG_FEATURE_VI_YANKMARK=y CONFIG_FEATURE_VI_SEARCH=y # CONFIG_FEATURE_VI_REGEX_SEARCH is not set CONFIG_FEATURE_VI_USE_SIGNALS=y CONFIG_FEATURE_VI_DOT_CMD=y CONFIG_FEATURE_VI_READONLY=y CONFIG_FEATURE_VI_SETOPTS=y CONFIG_FEATURE_VI_SET=y CONFIG_FEATURE_VI_WIN_RESIZE=y CONFIG_FEATURE_VI_ASK_TERMINAL=y CONFIG_FEATURE_VI_UNDO=y CONFIG_FEATURE_VI_UNDO_QUEUE=y CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 CONFIG_FEATURE_ALLOW_EXEC=y # # Finding Utilities # CONFIG_FIND=y CONFIG_FEATURE_FIND_PRINT0=y CONFIG_FEATURE_FIND_MTIME=y CONFIG_FEATURE_FIND_MMIN=y CONFIG_FEATURE_FIND_PERM=y CONFIG_FEATURE_FIND_TYPE=y CONFIG_FEATURE_FIND_XDEV=y CONFIG_FEATURE_FIND_MAXDEPTH=y CONFIG_FEATURE_FIND_NEWER=y # CONFIG_FEATURE_FIND_INUM is not set CONFIG_FEATURE_FIND_EXEC=y CONFIG_FEATURE_FIND_EXEC_PLUS=y CONFIG_FEATURE_FIND_USER=y CONFIG_FEATURE_FIND_GROUP=y CONFIG_FEATURE_FIND_NOT=y CONFIG_FEATURE_FIND_DEPTH=y CONFIG_FEATURE_FIND_PAREN=y CONFIG_FEATURE_FIND_SIZE=y CONFIG_FEATURE_FIND_PRUNE=y # CONFIG_FEATURE_FIND_DELETE is not set CONFIG_FEATURE_FIND_PATH=y CONFIG_FEATURE_FIND_REGEX=y # CONFIG_FEATURE_FIND_CONTEXT is not set # CONFIG_FEATURE_FIND_LINKS is not set CONFIG_GREP=y CONFIG_EGREP=y CONFIG_FGREP=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 CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=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_POWEROFF=y CONFIG_REBOOT=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_INIT_QUIET=y # CONFIG_FEATURE_INIT_COREDUMPS is not set CONFIG_INIT_TERMINAL_TYPE="linux" CONFIG_FEATURE_INIT_MODIFY_CMDLINE=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=y # 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_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="md5" # CONFIG_CRYPTPW is not set CONFIG_MKPASSWD=y CONFIG_DELUSER=y CONFIG_DELGROUP=y # 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=y CONFIG_FEATURE_SU_SYSLOG=y CONFIG_FEATURE_SU_CHECKS_SHELLS=y # CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set CONFIG_SULOGIN=y CONFIG_VLOCK=y # # Linux Ext2 FS Progs # CONFIG_CHATTR=y CONFIG_FSCK=y CONFIG_LSATTR=y # CONFIG_TUNE2FS is not set # # Linux Module Utilities # # CONFIG_MODPROBE_SMALL is not set # CONFIG_DEPMOD is not set CONFIG_INSMOD=y CONFIG_LSMOD=y CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y # CONFIG_MODINFO is not set CONFIG_MODPROBE=y # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set CONFIG_RMMOD=y # # Options common to multiple modutils # CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y # CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set # CONFIG_FEATURE_2_4_MODULES 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=y # CONFIG_FEATURE_INSMOD_TRY_MMAP is not set CONFIG_FEATURE_MODUTILS_ALIAS=y CONFIG_FEATURE_MODUTILS_SYMBOLS=y CONFIG_DEFAULT_MODULES_DIR="/lib/modules" CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" # # Linux System Utilities # # CONFIG_ACPID is not set # CONFIG_FEATURE_ACPID_COMPAT is not set # CONFIG_BLKDISCARD is not set CONFIG_BLKID=y # CONFIG_FEATURE_BLKID_TYPE is not set # CONFIG_BLOCKDEV is not set # CONFIG_CAL is not set CONFIG_CHRT=y CONFIG_DMESG=y CONFIG_FEATURE_DMESG_PRETTY=y CONFIG_EJECT=y # CONFIG_FEATURE_EJECT_SCSI is not set CONFIG_FALLOCATE=y # CONFIG_FATATTR is not set CONFIG_FBSET=y CONFIG_FEATURE_FBSET_FANCY=y CONFIG_FEATURE_FBSET_READMODE=y CONFIG_FDFORMAT=y CONFIG_FDISK=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 # CONFIG_FEATURE_SUN_LABEL is not set # CONFIG_FEATURE_OSF_LABEL is not set CONFIG_FEATURE_GPT_LABEL=y CONFIG_FEATURE_FDISK_ADVANCED=y # CONFIG_FINDFS is not set CONFIG_FLOCK=y CONFIG_FDFLUSH=y CONFIG_FREERAMDISK=y # CONFIG_FSCK_MINIX is not set CONFIG_FSFREEZE=y CONFIG_FSTRIM=y CONFIG_GETOPT=y CONFIG_FEATURE_GETOPT_LONG=y CONFIG_HEXDUMP=y # CONFIG_FEATURE_HEXDUMP_REVERSE is not set # CONFIG_HD is not set CONFIG_XXD=y CONFIG_HWCLOCK=y CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y # CONFIG_IONICE is not set CONFIG_IPCRM=y CONFIG_IPCS=y CONFIG_LAST=y # CONFIG_FEATURE_LAST_FANCY is not set CONFIG_LOSETUP=y CONFIG_LSPCI=y CONFIG_LSUSB=y CONFIG_MDEV=y CONFIG_FEATURE_MDEV_CONF=y 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_FEATURE_MDEV_DAEMON=y CONFIG_MESG=y CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y CONFIG_MKE2FS=y # 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_MKDOSFS=y # CONFIG_MKFS_VFAT is not set 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_FEATURE_MOUNT_OTHERTAB=y CONFIG_MOUNTPOINT=y # CONFIG_NSENTER is not set CONFIG_PIVOT_ROOT=y CONFIG_RDATE=y # CONFIG_RDEV is not set CONFIG_READPROFILE=y CONFIG_RENICE=y # CONFIG_REV is not set # CONFIG_RTCWAKE is not set # CONFIG_SCRIPT is not set # CONFIG_SCRIPTREPLAY is not set CONFIG_SETARCH=y CONFIG_LINUX32=y CONFIG_LINUX64=y CONFIG_SETPRIV=y CONFIG_FEATURE_SETPRIV_DUMP=y CONFIG_FEATURE_SETPRIV_CAPABILITIES=y CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y CONFIG_SETSID=y CONFIG_SWAPON=y # CONFIG_FEATURE_SWAPON_DISCARD is not set # CONFIG_FEATURE_SWAPON_PRI is not set CONFIG_SWAPOFF=y CONFIG_FEATURE_SWAPONOFF_LABEL=y CONFIG_SWITCH_ROOT=y # CONFIG_TASKSET is not set # CONFIG_FEATURE_TASKSET_FANCY is not set CONFIG_UEVENT=y CONFIG_UMOUNT=y CONFIG_FEATURE_UMOUNT_ALL=y # CONFIG_UNSHARE is not set # CONFIG_WALL is not set # # 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=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 CONFIG_FEATURE_VOLUMEID_EXT=y CONFIG_FEATURE_VOLUMEID_F2FS=y CONFIG_FEATURE_VOLUMEID_FAT=y # 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_MINIX=y # 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_UBIFS=y # CONFIG_FEATURE_VOLUMEID_UDF is not set # CONFIG_FEATURE_VOLUMEID_XFS is not set # # Miscellaneous Utilities # # 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_CONSPY is not set CONFIG_CROND=y # CONFIG_FEATURE_CROND_D is not set # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set CONFIG_FEATURE_CROND_SPECIAL_TIMES=y CONFIG_FEATURE_CROND_DIR="/var/spool/cron" CONFIG_CRONTAB=y CONFIG_DC=y # 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=y # CONFIG_FBSPLASH is not set # CONFIG_FLASHCP is not set # CONFIG_FLASH_ERASEALL is not set # CONFIG_FLASH_LOCK is not set # CONFIG_FLASH_UNLOCK is not set CONFIG_HDPARM=y CONFIG_FEATURE_HDPARM_GET_IDENTITY=y # 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_HEXEDIT=y CONFIG_I2CGET=y CONFIG_I2CSET=y CONFIG_I2CDUMP=y CONFIG_I2CDETECT=y # CONFIG_INOTIFYD is not set 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 # CONFIG_FEATURE_LESS_ASK_TERMINAL is not set # CONFIG_FEATURE_LESS_DASHCMD is not set # CONFIG_FEATURE_LESS_LINENUMS is not set CONFIG_LSSCSI=y CONFIG_MAKEDEVS=y # CONFIG_FEATURE_MAKEDEVS_LEAF is not set CONFIG_FEATURE_MAKEDEVS_TABLE=y # CONFIG_MAN is not set CONFIG_MICROCOM=y CONFIG_MT=y # CONFIG_NANDWRITE is not set # CONFIG_NANDDUMP is not set CONFIG_PARTPROBE=y # CONFIG_RAIDAUTORUN is not set # CONFIG_READAHEAD is not set # CONFIG_RFKILL is not set CONFIG_RUNLEVEL=y # CONFIG_RX is not set CONFIG_SETFATTR=y CONFIG_SETSERIAL=y CONFIG_STRINGS=y CONFIG_TIME=y # CONFIG_TTYSIZE is not set CONFIG_UBIRENAME=y # 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_VOLNAME is not set CONFIG_WATCHDOG=y # # Networking Utilities # CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set CONFIG_ARP=y CONFIG_ARPING=y # CONFIG_BRCTL is not set # CONFIG_FEATURE_BRCTL_FANCY is not set # CONFIG_FEATURE_BRCTL_SHOW is not set CONFIG_DNSD=y CONFIG_ETHER_WAKE=y # CONFIG_FTPD is not set # CONFIG_FEATURE_FTPD_WRITE is not set # CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set # CONFIG_FEATURE_FTPD_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_DNSDOMAINNAME=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=y CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y CONFIG_FEATURE_IFCONFIG_HW=y # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set # CONFIG_IFENSLAVE is not set # CONFIG_IFPLUGD is not set CONFIG_IFUP=y CONFIG_IFDOWN=y CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" CONFIG_FEATURE_IFUPDOWN_IP=y CONFIG_FEATURE_IFUPDOWN_IPV4=y CONFIG_FEATURE_IFUPDOWN_IPV6=y CONFIG_FEATURE_IFUPDOWN_MAPPING=y # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set CONFIG_INETD=y CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y # CONFIG_FEATURE_INETD_RPC is not set CONFIG_IP=y CONFIG_IPADDR=y CONFIG_IPLINK=y CONFIG_IPROUTE=y CONFIG_IPTUNNEL=y CONFIG_IPRULE=y CONFIG_IPNEIGH=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_RARE_PROTOCOLS is not set # CONFIG_IPCALC is not set # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set # CONFIG_FEATURE_IPCALC_FANCY is not set # CONFIG_FAKEIDENTD is not set CONFIG_NAMEIF=y # CONFIG_FEATURE_NAMEIF_EXTENDED is not set # CONFIG_NBDCLIENT is not set # CONFIG_NC is not set # CONFIG_NETCAT is not set # CONFIG_NC_SERVER is not set # CONFIG_NC_EXTRA is not set # CONFIG_NC_110_COMPAT is not set CONFIG_NETSTAT=y # CONFIG_FEATURE_NETSTAT_WIDE is not set # CONFIG_FEATURE_NETSTAT_PRG is not set CONFIG_NSLOOKUP=y # CONFIG_NTPD is not set # CONFIG_FEATURE_NTPD_SERVER is not set # CONFIG_FEATURE_NTPD_CONF is not set CONFIG_PING=y # CONFIG_PING6 is not set CONFIG_FEATURE_FANCY_PING=y # CONFIG_PSCAN is not set CONFIG_ROUTE=y # CONFIG_SLATTACH is not set # CONFIG_SSL_CLIENT is not set # CONFIG_TCPSVD is not set # CONFIG_UDPSVD is not set CONFIG_TELNET=y CONFIG_FEATURE_TELNET_TTYPE=y CONFIG_FEATURE_TELNET_AUTOLOGIN=y CONFIG_FEATURE_TELNET_WIDTH=y # CONFIG_TELNETD is not set # CONFIG_FEATURE_TELNETD_STANDALONE is not set # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set CONFIG_TFTP=y # CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set # CONFIG_TFTPD is not set # # Common options for tftp/tftpd # CONFIG_FEATURE_TFTP_GET=y CONFIG_FEATURE_TFTP_PUT=y CONFIG_FEATURE_TFTP_BLOCKSIZE=y # CONFIG_TFTP_DEBUG is not set # CONFIG_TLS is not set CONFIG_TRACEROUTE=y # CONFIG_TRACEROUTE6 is not set # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set # CONFIG_TUNCTL is not set # CONFIG_FEATURE_TUNCTL_UG is not set CONFIG_VCONFIG=y CONFIG_WGET=y CONFIG_FEATURE_WGET_LONG_OPTIONS=y CONFIG_FEATURE_WGET_STATUSBAR=y CONFIG_FEATURE_WGET_AUTHENTICATION=y CONFIG_FEATURE_WGET_TIMEOUT=y # CONFIG_FEATURE_WGET_HTTPS is not set # CONFIG_FEATURE_WGET_OPENSSL is not set # CONFIG_WHOIS is not set # CONFIG_ZCIP is not set # CONFIG_UDHCPD is not set # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set CONFIG_DHCPD_LEASES_FILE="" # CONFIG_DUMPLEASES is not set # CONFIG_DHCPRELAY is not set CONFIG_UDHCPC=y CONFIG_FEATURE_UDHCPC_ARPING=y CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" # CONFIG_UDHCPC6 is not set # CONFIG_FEATURE_UDHCPC6_RFC3646 is not set # CONFIG_FEATURE_UDHCPC6_RFC4704 is not set # CONFIG_FEATURE_UDHCPC6_RFC4833 is not set # # Common options for DHCP applets # # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=0 CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 CONFIG_FEATURE_UDHCP_RFC3397=y CONFIG_FEATURE_UDHCP_8021Q=y CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n -O search" # # 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_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 CONFIG_FEATURE_MIME_CHARSET="" # # Process Utilities # CONFIG_FREE=y CONFIG_FUSER=y # CONFIG_IOSTAT is not set CONFIG_KILL=y CONFIG_KILLALL=y CONFIG_KILLALL5=y CONFIG_LSOF=y # CONFIG_MPSTAT is not set # CONFIG_NMETER is not set # CONFIG_PGREP is not set # CONFIG_PKILL is not set CONFIG_PIDOF=y CONFIG_FEATURE_PIDOF_SINGLE=y CONFIG_FEATURE_PIDOF_OMIT=y # CONFIG_PMAP is not set # CONFIG_POWERTOP is not set # CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set CONFIG_PS=y # CONFIG_FEATURE_PS_WIDE is not set # CONFIG_FEATURE_PS_LONG is not set # CONFIG_FEATURE_PS_TIME is not set # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set # CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set # CONFIG_PSTREE is not set # CONFIG_PWDX is not set # CONFIG_SMEMCAP is not set CONFIG_BB_SYSCTL=y CONFIG_TOP=y CONFIG_FEATURE_TOP_INTERACTIVE=y CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y # 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=y # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set CONFIG_WATCH=y # CONFIG_FEATURE_SHOW_THREADS 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_SVC=y # CONFIG_SVLOGD is not set # CONFIG_CHCON 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_RUNCON is not set # CONFIG_SELINUXENABLED is not set # CONFIG_SESTATUS is not set # CONFIG_SETENFORCE is not set # CONFIG_SETFILES is not set # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set # CONFIG_RESTORECON is not set # CONFIG_SETSEBOOL is not set # # Shells # CONFIG_SH_IS_ASH=y # CONFIG_SH_IS_HUSH is not set # CONFIG_SH_IS_NONE is not set # CONFIG_BASH_IS_ASH is not set # CONFIG_BASH_IS_HUSH is not set CONFIG_BASH_IS_NONE=y CONFIG_ASH=y CONFIG_ASH_OPTIMIZE_FOR_SIZE=y CONFIG_ASH_INTERNAL_GLOB=y CONFIG_ASH_BASH_COMPAT=y CONFIG_ASH_JOB_CONTROL=y CONFIG_ASH_ALIAS=y CONFIG_ASH_RANDOM_SUPPORT=y CONFIG_ASH_EXPAND_PRMT=y CONFIG_ASH_IDLE_TIMEOUT=y # CONFIG_ASH_MAIL is not set CONFIG_ASH_ECHO=y CONFIG_ASH_PRINTF=y CONFIG_ASH_TEST=y CONFIG_ASH_HELP=y CONFIG_ASH_GETOPTS=y CONFIG_ASH_CMDCMD=y # CONFIG_CTTYHACK is not set # CONFIG_HUSH is not set # CONFIG_HUSH_BASH_COMPAT is not set # CONFIG_HUSH_BRACE_EXPANSION is not set # CONFIG_HUSH_INTERACTIVE is not set # CONFIG_HUSH_SAVEHISTORY is not set # CONFIG_HUSH_JOB is not set # CONFIG_HUSH_TICK is not set # CONFIG_HUSH_IF is not set # CONFIG_HUSH_LOOPS is not set # CONFIG_HUSH_CASE is not set # CONFIG_HUSH_FUNCTIONS is not set # CONFIG_HUSH_LOCAL is not set # CONFIG_HUSH_RANDOM_SUPPORT is not set # CONFIG_HUSH_MODE_X is not set # CONFIG_HUSH_ECHO is not set # CONFIG_HUSH_PRINTF is not set # CONFIG_HUSH_TEST is not set # CONFIG_HUSH_HELP is not set # CONFIG_HUSH_EXPORT is not set # CONFIG_HUSH_EXPORT_N is not set # CONFIG_HUSH_READONLY is not set # CONFIG_HUSH_KILL is not set # CONFIG_HUSH_WAIT is not set # CONFIG_HUSH_TRAP is not set # CONFIG_HUSH_TYPE is not set # CONFIG_HUSH_TIMES is not set # CONFIG_HUSH_READ is not set # CONFIG_HUSH_SET is not set # CONFIG_HUSH_UNSET is not set # CONFIG_HUSH_ULIMIT is not set # CONFIG_HUSH_UMASK is not set # CONFIG_HUSH_GETOPTS is not set # CONFIG_HUSH_MEMLEAK is not set # # Options common to all shells # CONFIG_FEATURE_SH_MATH=y CONFIG_FEATURE_SH_MATH_64=y CONFIG_FEATURE_SH_EXTRA_QUIET=y # CONFIG_FEATURE_SH_STANDALONE is not set # CONFIG_FEATURE_SH_NOFORK is not set CONFIG_FEATURE_SH_READ_FRAC=y # CONFIG_FEATURE_SH_HISTFILESIZE is not set # # 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 # CONFIG_FEATURE_SYSLOGD_DUP is not set # CONFIG_FEATURE_SYSLOGD_CFG is not set CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 # CONFIG_FEATURE_IPC_SYSLOG is not set CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 # CONFIG_FEATURE_KMSG_SYSLOG is not set ================================================ FILE: package/busybox/busybox.hash ================================================ # From https://busybox.net/downloads/busybox-1.34.1.tar.bz2.sha256 sha256 415fbd89e5344c96acf449d94a6f956dbed62e18e835fc83e064db33a34bd549 busybox-1.34.1.tar.bz2 # Locally computed sha256 bbfc9843646d483c334664f651c208b9839626891d8f17604db2146962f43548 LICENSE sha256 b5a136ed67798e51fe2e0ca0b2a21cb01b904ff0c9f7d563a6292e276607e58f archival/libarchive/bz/LICENSE ================================================ FILE: package/busybox/busybox.mk ================================================ ################################################################################ # # busybox # ################################################################################ BUSYBOX_VERSION = 1.34.1 BUSYBOX_SITE = https://www.busybox.net/downloads BUSYBOX_SOURCE = busybox-$(BUSYBOX_VERSION).tar.bz2 BUSYBOX_LICENSE = GPL-2.0, bzip2-1.0.4 BUSYBOX_LICENSE_FILES = LICENSE archival/libarchive/bz/LICENSE BUSYBOX_CPE_ID_VENDOR = busybox BUSYBOX_CFLAGS = \ $(TARGET_CFLAGS) BUSYBOX_LDFLAGS = \ $(TARGET_LDFLAGS) # Packages that provide commands that may also be busybox applets: BUSYBOX_DEPENDENCIES = \ $(if $(BR2_PACKAGE_ATTR),attr) \ $(if $(BR2_PACKAGE_BASH),bash) \ $(if $(BR2_PACKAGE_BC),bc) \ $(if $(BR2_PACKAGE_BINUTILS),binutils) \ $(if $(BR2_PACKAGE_COREUTILS),coreutils) \ $(if $(BR2_PACKAGE_CPIO),cpio) \ $(if $(BR2_PACKAGE_DCRON),dcron) \ $(if $(BR2_PACKAGE_DEBIANUTILS),debianutils) \ $(if $(BR2_PACKAGE_DIFFUTILS),diffutils) \ $(if $(BR2_PACKAGE_DOS2UNIX),dos2unix) \ $(if $(BR2_PACKAGE_DOSFSTOOLS),dosfstools) \ $(if $(BR2_PACKAGE_E2FSPROGS),e2fsprogs) \ $(if $(BR2_PACKAGE_FBSET),fbset) \ $(if $(BR2_PACKAGE_GAWK),gawk) \ $(if $(BR2_PACKAGE_GREP),grep) \ $(if $(BR2_PACKAGE_GZIP),gzip) \ $(if $(BR2_PACKAGE_I2C_TOOLS),i2c-tools) \ $(if $(BR2_PACKAGE_IFENSLAVE),ifenslave) \ $(if $(BR2_PACKAGE_IFPLUGD),ifplugd) \ $(if $(BR2_PACKAGE_IFUPDOWN),ifupdown) \ $(if $(BR2_PACKAGE_IPCALC),ipcalc) \ $(if $(BR2_PACKAGE_IPROUTE2),iproute2) \ $(if $(BR2_PACKAGE_IPUTILS),iputils) \ $(if $(BR2_PACKAGE_KMOD),kmod) \ $(if $(BR2_PACKAGE_LESS),less) \ $(if $(BR2_PACKAGE_LSOF),lsof) \ $(if $(BR2_PACKAGE_MTD),mtd) \ $(if $(BR2_PACKAGE_NET_TOOLS),net-tools) \ $(if $(BR2_PACKAGE_NETCAT),netcat) \ $(if $(BR2_PACKAGE_NETCAT_OPENSBSD),netcat-openbsd) \ $(if $(BR2_PACKAGE_NMAP),nmap) \ $(if $(BR2_PACKAGE_NTP),ntp) \ $(if $(BR2_PACKAGE_PCIUTILS),pciutils) \ $(if $(BR2_PACKAGE_PROCPS_NG),procps-ng) \ $(if $(BR2_PACKAGE_PSMISC),psmisc) \ $(if $(BR2_PACKAGE_START_STOP_DAEMON),start-stop-daemon) \ $(if $(BR2_PACKAGE_SYSKLOGD),sysklogd) \ $(if $(BR2_PACKAGE_SYSTEMD),systemd) \ $(if $(BR2_PACKAGE_SYSVINIT),sysvinit) \ $(if $(BR2_PACKAGE_TAR),tar) \ $(if $(BR2_PACKAGE_TFTPD),tftpd) \ $(if $(BR2_PACKAGE_TRACEROUTE),traceroute) \ $(if $(BR2_PACKAGE_UNZIP),unzip) \ $(if $(BR2_PACKAGE_USBUTILS),usbutils) \ $(if $(BR2_PACKAGE_UTIL_LINUX),util-linux) \ $(if $(BR2_PACKAGE_VIM),vim) \ $(if $(BR2_PACKAGE_WATCHDOG),watchdog) \ $(if $(BR2_PACKAGE_WGET),wget) \ $(if $(BR2_PACKAGE_WHOIS),whois) # Link against libtirpc if available so that we can leverage its RPC # support for NFS mounting with BusyBox ifeq ($(BR2_PACKAGE_LIBTIRPC),y) BUSYBOX_DEPENDENCIES += libtirpc host-pkgconf BUSYBOX_CFLAGS += "`$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc`" # Don't use LDFLAGS for -ltirpc, because LDFLAGS is used for # the non-final link of modules as well. BUSYBOX_CFLAGS_busybox += "`$(PKG_CONFIG_HOST_BINARY) --libs libtirpc`" endif # Allows the build system to tweak CFLAGS BUSYBOX_MAKE_ENV = \ $(TARGET_MAKE_ENV) \ CFLAGS="$(BUSYBOX_CFLAGS)" \ CFLAGS_busybox="$(BUSYBOX_CFLAGS_busybox)" ifeq ($(BR2_REPRODUCIBLE),y) BUSYBOX_MAKE_ENV += \ KCONFIG_NOTIMESTAMP=1 endif BUSYBOX_MAKE_OPTS = \ CC="$(TARGET_CC)" \ ARCH=$(KERNEL_ARCH) \ PREFIX="$(TARGET_DIR)" \ EXTRA_LDFLAGS="$(BUSYBOX_LDFLAGS)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ CONFIG_PREFIX="$(TARGET_DIR)" \ SKIP_STRIP=y ifndef BUSYBOX_CONFIG_FILE BUSYBOX_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG)) endif BUSYBOX_KCONFIG_SUPPORTS_DEFCONFIG = NO BUSYBOX_KCONFIG_FILE = $(BUSYBOX_CONFIG_FILE) BUSYBOX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES)) BUSYBOX_KCONFIG_EDITORS = menuconfig xconfig gconfig BUSYBOX_KCONFIG_OPTS = $(BUSYBOX_MAKE_OPTS) ifeq ($(BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES),y) define BUSYBOX_PERMISSIONS # Set permissions on all applets with BB_SUID_REQUIRE and BB_SUID_MAYBE. # 12 Applets are pulled from applets.h using grep command : # grep -r -e "APPLET.*BB_SUID_REQUIRE\|APPLET.*BB_SUID_MAYBE" \ # $(@D)/include/applets.h # These applets are added to the device table and the makedev file # ignores the files with type 'F' ( optional files). /usr/bin/wall F 4755 0 0 - - - - - /bin/ping F 4755 0 0 - - - - - /bin/ping6 F 4755 0 0 - - - - - /usr/bin/crontab F 4755 0 0 - - - - - /sbin/findfs F 4755 0 0 - - - - - /bin/login F 4755 0 0 - - - - - /bin/mount F 4755 0 0 - - - - - /usr/bin/passwd F 4755 0 0 - - - - - /bin/su F 4755 0 0 - - - - - /usr/bin/traceroute F 4755 0 0 - - - - - /usr/bin/traceroute6 F 4755 0 0 - - - - - /usr/bin/vlock F 4755 0 0 - - - - - endef else define BUSYBOX_PERMISSIONS /bin/busybox f 4755 0 0 - - - - - endef endif # If mdev will be used for device creation enable it and copy S10mdev to /etc/init.d ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y) define BUSYBOX_INSTALL_MDEV_SCRIPT $(INSTALL) -D -m 0755 package/busybox/S10mdev \ $(TARGET_DIR)/etc/init.d/S10mdev endef define BUSYBOX_INSTALL_MDEV_CONF $(INSTALL) -D -m 0644 package/busybox/mdev.conf \ $(TARGET_DIR)/etc/mdev.conf endef define BUSYBOX_SET_MDEV $(call KCONFIG_ENABLE_OPT,CONFIG_MDEV) $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_CONF) $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_EXEC) $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_LOAD_FIRMWARE) endef endif # sha passwords need USE_BB_CRYPT_SHA ifeq ($(BR2_TARGET_GENERIC_PASSWD_SHA256)$(BR2_TARGET_GENERIC_PASSWD_SHA512),y) define BUSYBOX_SET_CRYPT_SHA $(call KCONFIG_ENABLE_OPT,CONFIG_USE_BB_CRYPT_SHA) endef endif ifeq ($(BR2_USE_MMU),y) define BUSYBOX_SET_MMU $(call KCONFIG_DISABLE_OPT,CONFIG_NOMMU) endef else define BUSYBOX_SET_MMU $(call KCONFIG_ENABLE_OPT,CONFIG_NOMMU) $(call KCONFIG_DISABLE_OPT,CONFIG_SWAPON) $(call KCONFIG_DISABLE_OPT,CONFIG_SWAPOFF) $(call KCONFIG_DISABLE_OPT,CONFIG_ASH) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_BASH_COMPAT) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_BRACE_EXPANSION) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_HELP) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_INTERACTIVE) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_SAVEHISTORY) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_JOB) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_TICK) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_IF) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_LOOPS) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_CASE) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_FUNCTIONS) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_LOCAL) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_RANDOM_SUPPORT) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_EXPORT_N) $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH_MODE_X) endef endif # If we're using static libs do the same for busybox ifeq ($(BR2_STATIC_LIBS),y) define BUSYBOX_PREFER_STATIC $(call KCONFIG_ENABLE_OPT,CONFIG_STATIC) endef endif define BUSYBOX_INSTALL_UDHCPC_SCRIPT if grep -q CONFIG_UDHCPC=y $(@D)/.config; then \ $(INSTALL) -m 0755 -D package/busybox/udhcpc.script \ $(TARGET_DIR)/usr/share/udhcpc/default.script; \ $(INSTALL) -m 0755 -d \ $(TARGET_DIR)/usr/share/udhcpc/default.script.d; \ fi endef define BUSYBOX_INSTALL_ZCIP_SCRIPT if grep -q CONFIG_ZCIP=y $(@D)/.config; then \ $(INSTALL) -m 0755 -D $(@D)/examples/zcip.script \ $(TARGET_DIR)/usr/share/zcip/default.script; \ fi endef ifeq ($(BR2_INIT_BUSYBOX),y) define BUSYBOX_SET_INIT $(call KCONFIG_ENABLE_OPT,CONFIG_INIT) endef ifeq ($(BR2_TARGET_GENERIC_GETTY),y) define BUSYBOX_SET_GETTY $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(SYSTEM_GETTY_PORT)::respawn:/sbin/getty -L $(SYSTEM_GETTY_OPTIONS) $(SYSTEM_GETTY_PORT) $(SYSTEM_GETTY_BAUDRATE) $(SYSTEM_GETTY_TERM) #~' \ $(TARGET_DIR)/etc/inittab endef else define BUSYBOX_SET_GETTY $(SED) '/# GENERIC_SERIAL$$/s~^.*#~#ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 #~' $(TARGET_DIR)/etc/inittab endef endif # BR2_TARGET_GENERIC_GETTY BUSYBOX_TARGET_FINALIZE_HOOKS += BUSYBOX_SET_GETTY BUSYBOX_TARGET_FINALIZE_HOOKS += SYSTEM_REMOUNT_ROOT_INITTAB endif # BR2_INIT_BUSYBOX ifeq ($(BR2_PACKAGE_BUSYBOX_SELINUX),y) BUSYBOX_DEPENDENCIES += host-pkgconf libselinux libsepol define BUSYBOX_SET_SELINUX $(call KCONFIG_ENABLE_OPT,CONFIG_SELINUX) $(call KCONFIG_ENABLE_OPT,CONFIG_SELINUXENABLED) endef endif # enable relevant options to allow the Busybox less applet to be used # as a systemd pager ifeq ($(BR2_PACKAGE_SYSTEMD):$(BR2_PACKAGE_LESS),y:) define BUSYBOX_SET_LESS_FLAGS $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_LESS_DASHCMD) $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_LESS_RAW) $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_LESS_TRUNCATE) $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_LESS_FLAGS) $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_LESS_ENV) endef endif ifeq ($(BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES),y) define BUSYBOX_SET_INDIVIDUAL_BINARIES $(call KCONFIG_ENABLE_OPT,CONFIG_BUILD_LIBBUSYBOX) $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_INDIVIDUAL) endef define BUSYBOX_INSTALL_INDIVIDUAL_BINARIES rm -f $(TARGET_DIR)/bin/busybox endef endif # Only install our logging scripts if no other package does it. ifeq ($(BR2_PACKAGE_SYSKLOGD)$(BR2_PACKAGE_RSYSLOG)$(BR2_PACKAGE_SYSLOG_NG),) define BUSYBOX_INSTALL_LOGGING_SCRIPT if grep -q CONFIG_SYSLOGD=y $(@D)/.config; \ then \ $(INSTALL) -m 0755 -D package/busybox/S01syslogd \ $(TARGET_DIR)/etc/init.d/S01syslogd; \ fi; \ if grep -q CONFIG_KLOGD=y $(@D)/.config; \ then \ $(INSTALL) -m 0755 -D package/busybox/S02klogd \ $(TARGET_DIR)/etc/init.d/S02klogd; \ fi endef endif # Only install our sysctl scripts if no other package does it. ifeq ($(BR2_PACKAGE_PROCPS_NG),) define BUSYBOX_INSTALL_SYSCTL_SCRIPT if grep -q CONFIG_BB_SYSCTL=y $(@D)/.config; \ then \ $(INSTALL) -m 0755 -D package/busybox/S02sysctl \ $(TARGET_DIR)/etc/init.d/S02sysctl ; \ fi endef endif ifeq ($(BR2_INIT_BUSYBOX),y) define BUSYBOX_INSTALL_INITTAB if test ! -e $(TARGET_DIR)/etc/inittab; then \ $(INSTALL) -D -m 0644 package/busybox/inittab $(TARGET_DIR)/etc/inittab; \ fi endef endif ifeq ($(BR2_PACKAGE_BUSYBOX_WATCHDOG),y) define BUSYBOX_SET_WATCHDOG $(call KCONFIG_ENABLE_OPT,CONFIG_WATCHDOG) endef define BUSYBOX_INSTALL_WATCHDOG_SCRIPT $(INSTALL) -D -m 0755 package/busybox/S15watchdog \ $(TARGET_DIR)/etc/init.d/S15watchdog $(SED) s/PERIOD/$(call qstrip,$(BR2_PACKAGE_BUSYBOX_WATCHDOG_PERIOD))/ \ $(TARGET_DIR)/etc/init.d/S15watchdog endef endif # PAM support requires thread support in the toolchain ifeq ($(BR2_PACKAGE_LINUX_PAM)$(BR2_TOOLCHAIN_HAS_THREADS),yy) define BUSYBOX_LINUX_PAM $(call KCONFIG_ENABLE_OPT,CONFIG_PAM) endef BUSYBOX_DEPENDENCIES += linux-pam else define BUSYBOX_LINUX_PAM $(call KCONFIG_DISABLE_OPT,CONFIG_PAM) endef endif # Telnet support define BUSYBOX_INSTALL_TELNET_SCRIPT if grep -q CONFIG_FEATURE_TELNETD_STANDALONE=y $(@D)/.config; then \ $(INSTALL) -m 0755 -D package/busybox/S50telnet \ $(TARGET_DIR)/etc/init.d/S50telnet ; \ fi endef define BUSYBOX_INSTALL_TELNET_SERVICE if grep -q CONFIG_FEATURE_TELNETD_STANDALONE=y $(@D)/.config; then \ $(INSTALL) -D -m 0644 package/busybox/telnetd.service \ $(TARGET_DIR)/usr/lib/systemd/system/telnetd.service ; \ fi endef # Add /bin/{a,hu}sh to /etc/shells otherwise some login tools like dropbear # can reject the user connection. See man shells. define BUSYBOX_INSTALL_ADD_TO_SHELLS if grep -q CONFIG_ASH=y $(BUSYBOX_DIR)/.config; then \ grep -qsE '^/bin/ash$$' $(TARGET_DIR)/etc/shells \ || echo "/bin/ash" >> $(TARGET_DIR)/etc/shells; \ fi if grep -q CONFIG_HUSH=y $(BUSYBOX_DIR)/.config; then \ grep -qsE '^/bin/hush$$' $(TARGET_DIR)/etc/shells \ || echo "/bin/hush" >> $(TARGET_DIR)/etc/shells; \ fi endef BUSYBOX_TARGET_FINALIZE_HOOKS += BUSYBOX_INSTALL_ADD_TO_SHELLS define BUSYBOX_KCONFIG_FIXUP_CMDS $(BUSYBOX_SET_MMU) $(BUSYBOX_PREFER_STATIC) $(BUSYBOX_SET_MDEV) $(BUSYBOX_SET_CRYPT_SHA) $(BUSYBOX_LINUX_PAM) $(BUSYBOX_SET_INIT) $(BUSYBOX_SET_WATCHDOG) $(BUSYBOX_SET_SELINUX) $(BUSYBOX_SET_LESS_FLAGS) $(BUSYBOX_SET_INDIVIDUAL_BINARIES) endef define BUSYBOX_BUILD_CMDS $(BUSYBOX_MAKE_ENV) $(MAKE) $(BUSYBOX_MAKE_OPTS) -C $(@D) endef define BUSYBOX_INSTALL_TARGET_CMDS # Use the 'noclobber' install rule, to prevent BusyBox from overwriting # any full-blown versions of apps installed by other packages. $(BUSYBOX_MAKE_ENV) $(MAKE) $(BUSYBOX_MAKE_OPTS) -C $(@D) install-noclobber $(BUSYBOX_INSTALL_INDIVIDUAL_BINARIES) $(BUSYBOX_INSTALL_INITTAB) $(BUSYBOX_INSTALL_UDHCPC_SCRIPT) $(BUSYBOX_INSTALL_ZCIP_SCRIPT) $(BUSYBOX_INSTALL_MDEV_CONF) endef # Install the sysvinit scripts, for the moment, but not those that already # have a corresponding one in openrc. define BUSYBOX_INSTALL_INIT_OPENRC $(BUSYBOX_INSTALL_MDEV_SCRIPT) $(BUSYBOX_INSTALL_LOGGING_SCRIPT) $(BUSYBOX_INSTALL_WATCHDOG_SCRIPT) $(BUSYBOX_INSTALL_TELNET_SCRIPT) endef define BUSYBOX_INSTALL_INIT_SYSTEMD $(BUSYBOX_INSTALL_TELNET_SERVICE) endef define BUSYBOX_INSTALL_INIT_SYSV $(BUSYBOX_INSTALL_MDEV_SCRIPT) $(BUSYBOX_INSTALL_LOGGING_SCRIPT) $(BUSYBOX_INSTALL_WATCHDOG_SCRIPT) $(BUSYBOX_INSTALL_SYSCTL_SCRIPT) $(BUSYBOX_INSTALL_TELNET_SCRIPT) endef # Checks to give errors that the user can understand # Must be before we call to kconfig-package ifeq ($(BR2_PACKAGE_BUSYBOX)$(BR_BUILDING),yy) ifeq ($(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG)),) $(error No BusyBox configuration file specified, check your BR2_PACKAGE_BUSYBOX_CONFIG setting) endif endif $(eval $(kconfig-package)) ================================================ FILE: package/busybox/inittab ================================================ # /etc/inittab # # Copyright (C) 2001 Erik Andersen # # Note: BusyBox init doesn't support runlevels. The runlevels field is # completely ignored by BusyBox init. If you want runlevels, use # sysvinit. # # Format for each entry: ::: # # id == tty to run on, or empty for /dev/console # runlevels == ignored # action == one of sysinit, respawn, askfirst, wait, and once # process == program to run # Startup the system ::sysinit:/bin/mount -t proc proc /proc ::sysinit:/bin/mount -o remount,rw / ::sysinit:/bin/mkdir -p /dev/pts /dev/shm ::sysinit:/bin/mount -a ::sysinit:/sbin/swapon -a null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr ::sysinit:/bin/hostname -F /etc/hostname # now run any rc scripts ::sysinit:/etc/init.d/rcS # Put a getty on the serial port #ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 # GENERIC_SERIAL # Stuff to do for the 3-finger salute #::ctrlaltdel:/sbin/reboot # Stuff to do before rebooting ::shutdown:/etc/init.d/rcK ::shutdown:/sbin/swapoff -a ::shutdown:/bin/umount -a -r ================================================ FILE: package/busybox/mdev.conf ================================================ # null may already exist; therefore ownership has to be changed with command null root:root 666 @chmod 666 $MDEV zero root:root 666 full root:root 666 random root:root 444 urandom root:root 444 hwrandom root:root 444 grsec root:root 660 kmem root:root 640 mem root:root 640 port root:root 640 # console may already exist; therefore ownership has to be changed with command console root:tty 600 @chmod 600 $MDEV ptmx root:tty 666 pty.* root:tty 660 # Typical devices 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 snd/pcm.* root:audio 660 snd/control.* root:audio 660 snd/midi.* root:audio 660 snd/seq root:audio 660 snd/timer root:audio 660 # input stuff input/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 # load modules $MODALIAS=.* root:root 660 @modprobe "$MODALIAS" ================================================ FILE: package/busybox/telnetd.service ================================================ [Unit] Description=Telnetd Service After=network.target [Service] Type=simple ExecStart=/usr/sbin/telnetd -F [Install] WantedBy=multi-user.target ================================================ FILE: package/busybox/udhcpc.script ================================================ #!/bin/sh # udhcpc script edited by Tim Riker [ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1 ACTION="$1" RESOLV_CONF="/etc/resolv.conf" [ -e $RESOLV_CONF ] || touch $RESOLV_CONF [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" [ -n "$subnet" ] && NETMASK="netmask $subnet" # Handle stateful DHCPv6 like DHCPv4 [ -n "$ipv6" ] && ip="$ipv6/128" if [ -z "${IF_WAIT_DELAY}" ]; then IF_WAIT_DELAY=10 fi wait_for_ipv6_default_route() { printf "Waiting for IPv6 default route to appear" while [ $IF_WAIT_DELAY -gt 0 ]; do if ip -6 route list | grep -q default; then printf "\n" return fi sleep 1 printf "." : $((IF_WAIT_DELAY -= 1)) done printf " timeout!\n" } case "$ACTION" in deconfig) /sbin/ifconfig $interface up /sbin/ifconfig $interface 0.0.0.0 # drop info from this interface # resolv.conf may be a symlink to /tmp/, so take care TMPFILE=$(mktemp) grep -vE "# $interface\$" $RESOLV_CONF > $TMPFILE cat $TMPFILE > $RESOLV_CONF rm -f $TMPFILE if [ -x /usr/sbin/avahi-autoipd ]; then /usr/sbin/avahi-autoipd -c $interface && /usr/sbin/avahi-autoipd -k $interface fi ;; leasefail|nak) if [ -x /usr/sbin/avahi-autoipd ]; then /usr/sbin/avahi-autoipd -c $interface || /usr/sbin/avahi-autoipd -wD $interface --no-chroot fi ;; renew|bound) if [ -x /usr/sbin/avahi-autoipd ]; then /usr/sbin/avahi-autoipd -c $interface && /usr/sbin/avahi-autoipd -k $interface fi /sbin/ifconfig $interface $ip $BROADCAST $NETMASK if [ -n "$ipv6" ] ; then wait_for_ipv6_default_route fi # RFC3442: If the DHCP server returns both a Classless # Static Routes option and a Router option, the DHCP # client MUST ignore the Router option. if [ -n "$staticroutes" ]; then echo "deleting routers" route -n | while read dest gw mask flags metric ref use iface; do [ "$iface" != "$interface" -o "$gw" = "0.0.0.0" ] || \ route del -net "$dest" netmask "$mask" gw "$gw" dev "$interface" done # format: dest1/mask gw1 ... destn/mask gwn set -- $staticroutes while [ -n "$1" -a -n "$2" ]; do route add -net "$1" gw "$2" dev "$interface" shift 2 done elif [ -n "$router" ] ; then echo "deleting routers" while route del default gw 0.0.0.0 dev $interface 2> /dev/null; do : done for i in $router ; do route add default gw $i dev $interface done fi # drop info from this interface # resolv.conf may be a symlink to /tmp/, so take care TMPFILE=$(mktemp) grep -vE "# $interface\$" $RESOLV_CONF > $TMPFILE cat $TMPFILE > $RESOLV_CONF rm -f $TMPFILE # prefer rfc3397 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 done ;; esac HOOK_DIR="$0.d" for hook in "${HOOK_DIR}/"*; do [ -f "${hook}" -a -x "${hook}" ] || continue "${hook}" "$ACTION" done exit 0 ================================================ FILE: package/bwm-ng/Config.in ================================================ config BR2_PACKAGE_BWM_NG bool "bwm-ng" help Bandwidth Monitor NG is a small and console-based live network and disk-io bandwidth monitor for Linux, BSD, Solaris, Mac OS X and others. http://www.gropp.org/?id=projects&sub=bwm-ng ================================================ FILE: package/bwm-ng/bwm-ng.hash ================================================ # Locally calculated sha256 c1a552b6ff48ea3e4e10110a7c188861abc4750befc67c6caaba8eb3ecf67f46 bwm-ng-0.6.3.tar.gz sha256 8556cc15ba3c0a411bf7d94bac5870829fb725f294b450c724c1e0856a601556 COPYING ================================================ FILE: package/bwm-ng/bwm-ng.mk ================================================ ################################################################################ # # bwm-ng # ################################################################################ BWM_NG_VERSION = 0.6.3 BWM_NG_SITE = $(call github,vgropp,bwm-ng,v$(BWM_NG_VERSION)) BWM_NG_CONF_OPTS = --with-procnetdev --with-diskstats BWM_NG_LICENSE = GPL-2.0+ BWM_NG_LICENSE_FILES = COPYING BWM_NG_AUTORECONF = YES ifeq ($(BR2_PACKAGE_NCURSES),y) BWM_NG_CONF_OPTS += --with-ncurses BWM_NG_DEPENDENCIES += ncurses endif $(eval $(autotools-package)) ================================================ FILE: package/bzip2/0001-build-objects-twice.patch ================================================ Build objects twice for shared and static libraries The existing Makefile causes problems on MIPS because the same object files (not compiled with -fPIC) are used in static and shared libraries. MIPS will refuce to link non-pic objects in shared libraries. We fix this problems by creating a new rule for the shared library and build the shared objects as *.sho instead of *.o. Then, we use these objects to create the shared library. Signed-off-by: Markos Chandras Index: bzip2-1.0.6/Makefile-libbz2_so =================================================================== --- bzip2-1.0.6.orig/Makefile-libbz2_so +++ bzip2-1.0.6/Makefile-libbz2_so @@ -25,13 +25,13 @@ SHELL=/bin/sh CC=gcc override CFLAGS += -fpic -fPIC -Wall -OBJS= blocksort.o \ - huffman.o \ - crctable.o \ - randtable.o \ - compress.o \ - decompress.o \ - bzlib.o +OBJS= blocksort.sho \ + huffman.sho \ + crctable.sho \ + randtable.sho \ + compress.sho \ + decompress.sho \ + bzlib.sho all: $(OBJS) $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS) @@ -45,17 +45,5 @@ install: clean: rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared -blocksort.o: blocksort.c - $(CC) $(CFLAGS) -c blocksort.c -huffman.o: huffman.c - $(CC) $(CFLAGS) -c huffman.c -crctable.o: crctable.c - $(CC) $(CFLAGS) -c crctable.c -randtable.o: randtable.c - $(CC) $(CFLAGS) -c randtable.c -compress.o: compress.c - $(CC) $(CFLAGS) -c compress.c -decompress.o: decompress.c - $(CC) $(CFLAGS) -c decompress.c -bzlib.o: bzlib.c - $(CC) $(CFLAGS) -c bzlib.c +%.sho: %.c + $(CC) $(CFLAGS) -o $@ -c $< ================================================ FILE: package/bzip2/0002-improve-build-system.patch ================================================ Improve bzip2 build system This patch makes a number of improvements to the bzip2 build system: * Remove the BIGFILE variable that was used to force largefile support. Now, the user of the Makefile is supposed to pass -D_FILE_OFFSET_BITS=64 when largefile support is desired. * Use override CFLAGS += so that additional CFLAGS can be passed on the command line. * Removed "forced" CFLAGS -O2, -g and -Winline. We don't want them by default, and want the build system to use its own ones. * When creating the symbolic links bzegrep, bzfgrep, bzless and bzcmp, don't link them to an absolute path, or they'll point to some path on the build machine. * Provide an install target for the shared library, which creates the appropriate symbolic links. Signed-off-by: Thomas Petazzoni Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -20,8 +20,7 @@ RANLIB=ranlib LDFLAGS= -BIGFILES=-D_FILE_OFFSET_BITS=64 -CFLAGS=-Wall -Winline -O2 -g $(BIGFILES) +override CFLAGS += -Wall # Where you want it installed when you do 'make install' PREFIX=/usr/local @@ -90,14 +89,14 @@ cp -f libbz2.a $(PREFIX)/lib chmod a+r $(PREFIX)/lib/libbz2.a cp -f bzgrep $(PREFIX)/bin/bzgrep - ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep - ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep + ln -s -f bzgrep $(PREFIX)/bin/bzegrep + ln -s -f bzgrep $(PREFIX)/bin/bzfgrep chmod a+x $(PREFIX)/bin/bzgrep cp -f bzmore $(PREFIX)/bin/bzmore - ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless + ln -s -f bzmore $(PREFIX)/bin/bzless chmod a+x $(PREFIX)/bin/bzmore cp -f bzdiff $(PREFIX)/bin/bzdiff - ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp + ln -s -f bzdiff $(PREFIX)/bin/bzcmp chmod a+x $(PREFIX)/bin/bzdiff cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1 chmod a+r $(PREFIX)/man/man1/bzgrep.1 Index: b/Makefile-libbz2_so =================================================================== --- a/Makefile-libbz2_so +++ b/Makefile-libbz2_so @@ -23,8 +23,7 @@ SHELL=/bin/sh CC=gcc -BIGFILES=-D_FILE_OFFSET_BITS=64 -CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES) +override CFLAGS += -fpic -fPIC -Wall OBJS= blocksort.o \ huffman.o \ @@ -37,8 +36,11 @@ all: $(OBJS) $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS) $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8 - rm -f libbz2.so.1.0 - ln -s libbz2.so.1.0.8 libbz2.so.1.0 + +install: + install -m 0755 -D libbz2.so.1.0.8 $(PREFIX)/lib/libbz2.so.1.0.8 + ln -sf libbz2.so.1.0.8 $(PREFIX)/lib/libbz2.so + ln -sf libbz2.so.1.0.8 $(PREFIX)/lib/libbz2.so.1.0 clean: rm -f $(OBJS) bzip2.o libbz2.so.1.0.8 libbz2.so.1.0 bzip2-shared ================================================ FILE: package/bzip2/Config.in ================================================ config BR2_PACKAGE_BZIP2 bool "bzip2" help Freely available, patent free, high-quality data compressor. It typically compresses files to within 10% to 15% of the best available techniques, while being around twice as fast at compression and six times faster at decompression. https://sourceware.org/bzip2/ ================================================ FILE: package/bzip2/bzip2.hash ================================================ # From https://sourceware.org/pub/bzip2/sha512.sum sha512 083f5e675d73f3233c7930ebe20425a533feedeaaa9d8cc86831312a6581cefbe6ed0d08d2fa89be81082f2a5abdabca8b3c080bf97218a1bd59dc118a30b9f3 bzip2-1.0.8.tar.gz # Locally calculated sha256 c6dbbf828498be844a89eaa3b84adbab3199e342eb5cb2ed2f0d4ba7ec0f38a3 LICENSE ================================================ FILE: package/bzip2/bzip2.mk ================================================ ################################################################################ # # bzip2 # ################################################################################ BZIP2_VERSION = 1.0.8 BZIP2_SITE = https://sourceware.org/pub/bzip2 BZIP2_INSTALL_STAGING = YES BZIP2_LICENSE = bzip2 license BZIP2_LICENSE_FILES = LICENSE BZIP2_CPE_ID_VENDOR = bzip ifeq ($(BR2_STATIC_LIBS),) define BZIP2_BUILD_SHARED_CMDS $(TARGET_MAKE_ENV) \ $(MAKE) -C $(@D) -f Makefile-libbz2_so $(TARGET_CONFIGURE_OPTS) endef endif define BZIP2_BUILD_CMDS $(TARGET_MAKE_ENV) \ $(MAKE) -C $(@D) libbz2.a bzip2 bzip2recover $(TARGET_CONFIGURE_OPTS) $(BZIP2_BUILD_SHARED_CMDS) endef ifeq ($(BR2_STATIC_LIBS),) define BZIP2_INSTALL_STAGING_SHARED_CMDS $(TARGET_MAKE_ENV) $(MAKE) \ -f Makefile-libbz2_so PREFIX=$(STAGING_DIR)/usr -C $(@D) install endef endif define BZIP2_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) \ PREFIX=$(STAGING_DIR)/usr -C $(@D) install $(BZIP2_INSTALL_STAGING_SHARED_CMDS) endef ifeq ($(BR2_STATIC_LIBS),) define BZIP2_INSTALL_TARGET_SHARED_CMDS $(TARGET_MAKE_ENV) $(MAKE) \ -f Makefile-libbz2_so PREFIX=$(TARGET_DIR)/usr -C $(@D) install endef endif # make sure busybox doesn't get overwritten by make install define BZIP2_INSTALL_TARGET_CMDS rm -f $(addprefix $(TARGET_DIR)/usr/bin/,bzip2 bunzip2 bzcat) $(TARGET_MAKE_ENV) $(MAKE) \ PREFIX=$(TARGET_DIR)/usr -C $(@D) install $(BZIP2_INSTALL_TARGET_SHARED_CMDS) endef define HOST_BZIP2_BUILD_CMDS $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) \ $(MAKE) -C $(@D) -f Makefile-libbz2_so $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) \ $(MAKE) -C $(@D) libbz2.a bzip2 bzip2recover endef define HOST_BZIP2_INSTALL_CMDS $(HOST_MAKE_ENV) \ $(MAKE) PREFIX=$(HOST_DIR) -C $(@D) install $(HOST_MAKE_ENV) \ $(MAKE) -f Makefile-libbz2_so PREFIX=$(HOST_DIR) -C $(@D) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/c-ares/Config.in ================================================ config BR2_PACKAGE_C_ARES bool "c-ares" help C library for asynchronous DNS requests. http://c-ares.haxx.se/ ================================================ FILE: package/c-ares/c-ares.hash ================================================ # Locally calculated after checking pgp signature sha256 1a7d52a8a84a9fbffb1be9133c0f6e17217d91ea5a6fa61f6b4729cda78ebbcf c-ares-1.18.1.tar.gz # Hash for license file sha256 db4eb63fe09daebdf57d3f79b091bb5ee5070c0d761040e83264e648d307af4c LICENSE.md ================================================ FILE: package/c-ares/c-ares.mk ================================================ ################################################################################ # # c-ares # ################################################################################ C_ARES_VERSION = 1.18.1 C_ARES_SITE = http://c-ares.haxx.se/download C_ARES_INSTALL_STAGING = YES C_ARES_CONF_OPTS = --with-random=/dev/urandom C_ARES_LICENSE = MIT C_ARES_LICENSE_FILES = LICENSE.md C_ARES_CPE_ID_VENDOR = c-ares_project $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/c-capnproto/Config.in ================================================ config BR2_PACKAGE_C_CAPNPROTO bool "c-capnproto" depends on BR2_USE_MMU # capnproto depends on BR2_HOST_GCC_AT_LEAST_5 # capnproto depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # capnproto depends on BR2_INSTALL_LIBSTDCPP # capnproto depends on BR2_TOOLCHAIN_HAS_THREADS # capnproto depends on BR2_TOOLCHAIN_HAS_ATOMIC # capnproto depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # capnproto depends on BR2_TOOLCHAIN_HAS_UCONTEXT # capnproto select BR2_PACKAGE_CAPNPROTO help A C plugin for Cap'n Proto. Generates the code generator plugin for C. Requires regular Cap'n Proto and only provides serialization (no RPC). https://github.com/opensourcerouting/c-capnproto comment "c-capnproto needs host and target gcc >= 5 w/ C++14, threads, atomic, ucontext and not gcc bug 64735" depends on BR2_USE_MMU depends on!BR2_HOST_GCC_AT_LEAST_5 || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \ !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HAS_ATOMIC || \ BR2_TOOLCHAIN_HAS_GCC_BUG_64735 || \ !BR2_TOOLCHAIN_HAS_UCONTEXT ================================================ FILE: package/c-capnproto/c-capnproto.hash ================================================ # Locally calculated sha256 1e35ef786bd8e418ff04fccb20ac881a87fa2fa76df1cbddc4774e35423bafb8 c-capnproto-9053ebe6eeb2ae762655b982e27c341cb568366d-br1.tar.gz sha256 27797e6c7dce96675d79ed250584d157b7a86405db6eb6fba9644e6d96d42c57 COPYING ================================================ FILE: package/c-capnproto/c-capnproto.mk ================================================ ################################################################################ # # c-capnproto # ################################################################################ C_CAPNPROTO_VERSION = 9053ebe6eeb2ae762655b982e27c341cb568366d C_CAPNPROTO_SITE = https://github.com/opensourcerouting/c-capnproto.git C_CAPNPROTO_SITE_METHOD = git C_CAPNPROTO_GIT_SUBMODULES = YES C_CAPNPROTO_LICENSE = MIT C_CAPNPROTO_LICENSE_FILES = COPYING C_CAPNPROTO_INSTALL_STAGING = YES # Fetched from git with no configure script C_CAPNPROTO_AUTORECONF = YES # As a plugin for capnproto's capnpc, requires capnproto. Needs to be on the # host to generate C code from message definitions. C_CAPNPROTO_DEPENDENCIES = host-c-capnproto capnproto HOST_C_CAPNPROTO_DEPENDENCIES = host-capnproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/c-icap/0001-Required-fixes-to-compile-and-run-under-cygwin.patch ================================================ From 1631a6c1f50e152b8a45d8279c96086e5636795b Mon Sep 17 00:00:00 2001 From: Christos Tsantilas Date: Fri, 25 Jan 2019 06:42:22 -0800 Subject: [PATCH] Required fixes to compile and run under cygwin [Retrieved (and backported) from: https://github.com/c-icap/c-icap-server/commit/1631a6c1f50e152b8a45d8279c96086e5636795b, which has the side effect of fixing the build with the musl C library] Signed-off-by: Fabrice Fontaine --- Makefile.am | 2 +- configure.ac | 10 +++++++--- header.c | 34 ---------------------------------- include/header.h | 8 -------- modules/Makefile.am | 34 ++++++++++++++++++++-------------- modules/bdb_tables.c | 17 +++++++++++++++-- modules/shared_cache.c | 12 ++++++++++++ modules/sys_logger.c | 13 +++++++++++++ services/echo/Makefile.am | 10 ++++++++-- services/ex-206/Makefile.am | 10 ++++++++-- utils/c-icap-mkbdb.c | 8 ++++---- 11 files changed, 88 insertions(+), 70 deletions(-) diff --git a/Makefile.am b/Makefile.am index 4c34033..ab80f4f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -53,7 +53,7 @@ c_icap_SOURCES = aserver.c request.c cfg_param.c \ libicapapi_la_CFLAGS= $(INVISIBILITY_CFLAG) -I$(srcdir)/include/ -Iinclude/ @ZLIB_ADD_FLAG@ @OPENSSL_ADD_FLAG@ @BZLIB_ADD_FLAG@ @BROTLI_ADD_FLAG@ @PCRE_ADD_FLAG@ -DCI_BUILD_LIB libicapapi_la_LIBADD = @ZLIB_ADD_LDADD@ @BZLIB_ADD_LDADD@ @BROTLI_ADD_LDADD@ @PCRE_ADD_LDADD@ @DL_ADD_FLAG@ @THREADS_LDADD@ @OPENSSL_ADD_LDADD@ -libicapapi_la_LDFLAGS= -shared -version-info @CICAPLIB_VERSION@ @THREADS_LDFLAGS@ +libicapapi_la_LDFLAGS= -shared -version-info @CICAPLIB_VERSION@ @LIBS_LDFLAGS@ @THREADS_LDFLAGS@ export EXT_PROGRAMS_MKLIB = @ZLIB_LNDIR_LDADD@ @BZLIB_LNDIR_LDADD@ @BROTLI_LNDIR_LDADD@ @PCRE_LNDIR_LDADD@ @OPENSSL_LNDIR_LDADD@ diff --git a/configure.ac b/configure.ac index 405571b..8059cb7 100644 --- a/configure.ac +++ b/configure.ac @@ -45,12 +45,14 @@ case "$host_os" in CFLAGS="-D_REENTRANT $CFLAGS" THREADS_LDADD="-lpthread" THREADS_LDFLAGS="" + LIBS_LDFLAGS="" ;; solaris2.*) CFLAGS="-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS $CFLAGS" LIBS="-lsocket -lnsl -lrt $LIBS" THREADS_LDADD="-lpthread" THREADS_LDFLAGS="" + LIBS_LDFLAGS="" ;; freebsd5*) ## If I understand how all those threading models works correctly @@ -69,6 +71,7 @@ case "$host_os" in CFLAGS="-pthread -D_THREAD_SAFE $CFLAGS" THREADS_LDADD="-XCClinker -lc_r" THREADS_LDFLAGS="" + LIBS_LDFLAGS="" ## FreeBSD has pthreads rwlocks from version 3 (I think) # AC_DEFINE(HAVE_PTHREADS_RWLOCK,1,[Define HAVE_PTHREADS_RWLOCK if pthreads library supports rwlocks]) ## 1:1 threads @@ -82,24 +85,28 @@ case "$host_os" in CFLAGS="-D_THREAD_SAFE $CFLAGS" THREADS_LDADD="-XCClinker -lthr" THREADS_LDFLAGS="" + LIBS_LDFLAGS="" ;; cygwin*) CFLAGS="-D_REENTRANT $CFLAGS" THREADS_LDADD="-lpthread" THREADS_LDFLAGS=""; + LIBS_LDFLAGS="-no-undefined" iscygwin="yes" ;; *) CFLAGS="-D_REENTRANT $CFLAGS" THREADS_LDADD="-lpthread" THREADS_LDFLAGS="" + LIBS_LDFLAGS="" ;; esac TEST_LIBS="$TEST_LIBS $THREADS_LDADD" AC_SUBST(THREADS_LDADD) AC_SUBST(THREADS_LDFLAGS) +AC_SUBST(LIBS_LDFLAGS) AC_DEFINE_UNQUOTED(C_ICAP_CONFIGURE_OPTIONS, "$ac_configure_args", [configure command line used to configure c-icap]) @@ -984,9 +991,6 @@ LIBS="$LIBS $EXTRALIBS" #Configure common flags MODULES_LIBADD="" -if test a"$iscygwin" != a; then - MODULES_LIBADD="-L../../ -licapapi" -fi MODULES_CFLAGS="$INVISIBILITY_CFLAG -DCI_BUILD_MODULE" AC_SUBST(MODULES_LIBADD) AC_SUBST(MODULES_CFLAGS) diff --git a/header.c b/header.c index 807a2e0..266b958 100644 --- a/header.c +++ b/header.c @@ -110,21 +110,6 @@ const struct ci_error_code ci_error_codes[] = { {505, "Unsupported version"} /*ICAP version not supported by server. */ }; -/* -#ifdef __CYGWIN__ -int ci_error_code(int ec){ - return (ec >= EC_100 && ec < EC_MAX ? ci_error_codes[ec].code:1000); -} - -const char *unknownerrorcode = "UNKNOWN ERROR CODE"; - -const char *ci_error_code_string(int ec){ - return (ec >= EC_100 && ec < EC_MAX?ci_error_codes[ec].str:unknownerrorcode); -} -#endif -*/ - - const char *ci_encaps_entities[] = { "req-hdr", "res-hdr", @@ -134,25 +119,6 @@ const char *ci_encaps_entities[] = { "opt-body" }; -#ifdef __CYGWIN__ - -const char *unknownentity = "UNKNOWN"; -const char *unknownmethod = "UNKNOWN"; - -const char *ci_method_string(int method) -{ - return (method <= ICAP_RESPMOD - && method >= ICAP_OPTIONS ? CI_Methods[method] : unknownmethod); -} - - -const char *ci_encaps_entity_string(int e) -{ - return (e <= ICAP_OPT_BODY - && e >= ICAP_REQ_HDR ? CI_EncapsEntities[e] : unknownentity); -} -#endif - ci_headers_list_t *ci_headers_create() { ci_headers_list_t *h; diff --git a/include/header.h b/include/header.h index 4cab365..ed2de88 100644 --- a/include/header.h +++ b/include/header.h @@ -52,16 +52,8 @@ enum ci_encapsulated_entities {ICAP_REQ_HDR, ICAP_RES_HDR, }; CI_DECLARE_DATA extern const char *ci_encaps_entities[]; -#ifdef __CYGWIN__ - -const char *ci_encaps_entity_string(int e); - -#else - #define ci_encaps_entity_string(e) (e <= ICAP_OPT_BODY && e >= ICAP_REQ_HDR?ci_encaps_entities[e]:"UNKNOWN") -#endif - /** \typedef ci_headers_list_t \ingroup HEADERS diff --git a/modules/Makefile.am b/modules/Makefile.am index e6e9270..2d43a60 100644 --- a/modules/Makefile.am +++ b/modules/Makefile.am @@ -21,38 +21,44 @@ endif AM_CPPFLAGS=-I$(top_srcdir)/ -I$(top_srcdir)/include/ -I$(top_builddir)/include/ -sys_logger_la_LIBADD = @MODULES_LIBADD@ +if ISCYGWIN +MODS_LIB_ADD=$(top_builddir)/libicapapi.la +else +MODS_LIB_ADD= +endif + +sys_logger_la_LIBADD = $(MODS_LIB_ADD) sys_logger_la_CFLAGS= @MODULES_CFLAGS@ @OPENSSL_ADD_FLAG@ -sys_logger_la_LDFLAGS= -module -avoid-version +sys_logger_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ sys_logger_la_SOURCES = sys_logger.c -dnsbl_tables_la_LIBADD = @MODULES_LIBADD@ +dnsbl_tables_la_LIBADD = $(MODS_LIB_ADD) dnsbl_tables_la_CFLAGS= @MODULES_CFLAGS@ @OPENSSL_ADD_FLAG@ -dnsbl_tables_la_LDFLAGS= -module -avoid-version +dnsbl_tables_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ dnsbl_tables_la_SOURCES = dnsbl_tables.c -perl_handler_la_LIBADD = @MODULES_LIBADD@ @perllib@ -L@perlcore@ -lperl +perl_handler_la_LIBADD = $(MODS_LIB_ADD) @perllib@ -L@perlcore@ -lperl perl_handler_la_CFLAGS= @MODULES_CFLAGS@ @perlccflags@ -I@perlcore@ -perl_handler_la_LDFLAGS= -module -avoid-version @perlldflags@ +perl_handler_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ @perlldflags@ perl_handler_la_SOURCES = perl_handler.c -bdb_tables_la_LIBADD = @MODULES_LIBADD@ @BDB_ADD_LDADD@ +bdb_tables_la_LIBADD = $(MODS_LIB_ADD) @BDB_ADD_LDADD@ bdb_tables_la_CFLAGS= @MODULES_CFLAGS@ @BDB_ADD_FLAG@ -bdb_tables_la_LDFLAGS= -module -avoid-version +bdb_tables_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ bdb_tables_la_SOURCES = bdb_tables.c -ldap_module_la_LIBADD = @MODULES_LIBADD@ @LDAP_ADD_LDADD@ $(top_builddir)/libicapapi.la +ldap_module_la_LIBADD = $(MODS_LIB_ADD) @LDAP_ADD_LDADD@ ldap_module_la_CFLAGS= @MODULES_CFLAGS@ @LDAP_ADD_FLAG@ -ldap_module_la_LDFLAGS= -module -avoid-version +ldap_module_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ ldap_module_la_SOURCES = ldap_module.c -memcached_cache_la_LIBADD= @MODULES_LIBADD@ @MEMCACHED_ADD_LDADD@ +memcached_cache_la_LIBADD= $(MODS_LIB_ADD) @MEMCACHED_ADD_LDADD@ memcached_cache_la_CFLAGS= @MODULES_CFLAGS@ @MEMCACHED_ADD_FLAG@ -memcached_cache_la_LDFLAGS= -module -avoid-version +memcached_cache_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ memcached_cache_la_SOURCES= memcached.c -shared_cache_la_LIBADD= @MODULES_LIBADD@ +shared_cache_la_LIBADD= $(MODS_LIB_ADD) shared_cache_la_CFLAGS= @OPENSSL_ADD_FLAG@ -shared_cache_la_LDFLAGS= -module -avoid-version +shared_cache_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ shared_cache_la_SOURCES= shared_cache.c diff --git a/modules/bdb_tables.c b/modules/bdb_tables.c index b8459be..1e908a9 100644 --- a/modules/bdb_tables.c +++ b/modules/bdb_tables.c @@ -176,8 +176,8 @@ void *bdb_table_open(struct ci_lookup_table *table) /*We can not fork a Berkeley DB table, so we have to open bdb tables for every child, on childs start-up procedure*/ - register_command_extend("openBDBtable", CHILD_START_CMD, table, - command_real_open_table); + ci_command_register_action("openBDBtable", CHILD_START_CMD, table, + command_real_open_table); return table->data; } @@ -257,3 +257,16 @@ void bdb_table_release_result(struct ci_lookup_table *table,void **val) { ci_buffer_free(val); } + + #ifdef __CYGWIN__ +#include +void ci_command_register_action(const char *name, int type, void *data, + void (*command_action) (const char *name, int type, void *data)) + { + typedef void (*RA)(const char *, int, void *, void(*)(const char *, int, void *)); + RA fn; + fn = (RA)GetProcAddress(GetModuleHandle(NULL), "ci_command_register_action"); + if (fn) + (*fn)(name, type, data, command_action); + } +#endif diff --git a/modules/shared_cache.c b/modules/shared_cache.c index 103b760..a79d51a 100644 --- a/modules/shared_cache.c +++ b/modules/shared_cache.c @@ -345,3 +345,15 @@ void ci_shared_cache_destroy(struct ci_cache *cache) ci_shared_mem_detach(&data->id); } +#ifdef __CYGWIN__ +#include +void ci_command_register_action(const char *name, int type, void *data, + void (*command_action) (const char *name, int type, void *data)) + { + typedef void (*RA)(const char *, int, void *, void(*)(const char *, int, void *)); + RA fn; + fn = (RA)GetProcAddress(GetModuleHandle(NULL), "ci_command_register_action"); + if (fn) + (*fn)(name, type, data, command_action); + } +#endif diff --git a/modules/sys_logger.c b/modules/sys_logger.c index 1c47753..1764b0d 100644 --- a/modules/sys_logger.c +++ b/modules/sys_logger.c @@ -60,7 +60,20 @@ int cfg_syslog_access(const char *directive, const char **argv, void *setdata); functions declared in log.c. This file is not included in c-icap library but defined in primary c-icap binary. */ +#ifdef __CYGWIN__ +#include +char *logformat_fmt(const char *name) +{ + typedef char* (*LF_FMT)(const char *); + LF_FMT fn; + fn = (LF_FMT)GetProcAddress(GetModuleHandle(NULL), "logformat_fmt"); + if (fn) + return (*fn)(name); + return NULL; +} +#else extern char *logformat_fmt(const char *name); +#endif /*Configuration Table .....*/ static struct ci_conf_entry conf_variables[] = { diff --git a/services/echo/Makefile.am b/services/echo/Makefile.am index 402c8f9..7d701b1 100644 --- a/services/echo/Makefile.am +++ b/services/echo/Makefile.am @@ -3,9 +3,15 @@ pkglib_LTLIBRARIES=srv_echo.la AM_CPPFLAGS=-I$(top_srcdir)/ -I$(top_srcdir)/include/ -I$(top_builddir)/include/ -srv_echo_la_LIBADD = @MODULES_LIBADD@ +if ISCYGWIN +MODS_LIB_ADD=$(top_builddir)/libicapapi.la +else +MODS_LIB_ADD= +endif + +srv_echo_la_LIBADD = $(MODS_LIB_ADD) srv_echo_la_CFLAGS= @MODULES_CFLAGS@ @OPENSSL_ADD_FLAG@ -srv_echo_la_LDFLAGS= -module -avoid-version +srv_echo_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ srv_echo_la_SOURCES = srv_echo.c diff --git a/services/ex-206/Makefile.am b/services/ex-206/Makefile.am index 44bbf21..ff73399 100644 --- a/services/ex-206/Makefile.am +++ b/services/ex-206/Makefile.am @@ -3,8 +3,14 @@ pkglib_LTLIBRARIES=srv_ex206.la AM_CPPFLAGS=-I$(top_srcdir)/ -I$(top_srcdir)/include/ -I$(top_builddir)/include/ -srv_ex206_la_LIBADD = @MODULES_LIBADD@ +if ISCYGWIN +MODS_LIB_ADD=$(top_builddir)/libicapapi.la +else +MODS_LIB_ADD= +endif + +srv_ex206_la_LIBADD = $(MODS_LIB_ADD) srv_ex206_la_CFLAGS= @MODULES_CFLAGS@ @OPENSSL_ADD_FLAG@ -srv_ex206_la_LDFLAGS= -module -avoid-version +srv_ex206_la_LDFLAGS= -module -avoid-version @LIBS_LDFLAGS@ srv_ex206_la_SOURCES = srv_ex206.c diff --git a/utils/c-icap-mkbdb.c b/utils/c-icap-mkbdb.c index c29a46f..326ee1c 100644 --- a/utils/c-icap-mkbdb.c +++ b/utils/c-icap-mkbdb.c @@ -23,7 +23,7 @@ char *dbfile = NULL; int DUMP_MODE = 0; int VERSION_MODE = 0; int USE_DBTREE = 0; -long int PAGE_SIZE; +long int DB_PAGE_SIZE; ci_mem_allocator_t *allocator = NULL; int cfg_set_type(const char *directive, const char **argv, void *setdata); @@ -52,7 +52,7 @@ static struct ci_options_entry options[] = { "The type of values" }, { - "-p", "page_size", &PAGE_SIZE, ci_cfg_size_long, + "-p", "page_size", &DB_PAGE_SIZE, ci_cfg_size_long, "The page size to use for the database" }, { @@ -107,8 +107,8 @@ int open_db(char *path) return 0; } - if (PAGE_SIZE > 512 && PAGE_SIZE <= 64*1024) - db->set_pagesize(db, (uint32_t)PAGE_SIZE); + if (DB_PAGE_SIZE > 512 && DB_PAGE_SIZE <= 64*1024) + db->set_pagesize(db, (uint32_t)DB_PAGE_SIZE); if ((ret = db->open(db, NULL, path, NULL, (USE_DBTREE ? DB_BTREE : DB_HASH), ================================================ FILE: package/c-icap/Config.in ================================================ config BR2_PACKAGE_C_ICAP bool "c-icap" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() help c-icap is an implementation of an ICAP server. It can be used with HTTP proxies that support the ICAP protocol to implement content adaptation and filtering services. Most of the commercial HTTP proxies must support the ICAP protocol. The open source Squid 3.x proxy server supports it. http://c-icap.sourceforge.net/ comment "c-icap needs a toolchain w/ threads and dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/c-icap/S96cicap ================================================ #!/bin/sh # (Re)create directories mkdir -p /var/run/c-icap mkdir -p /var/log/c-icap case "$1" in start) printf "Starting c-icap server: " start-stop-daemon -S -q -b -m -p /var/run/c-icap.pid \ -x /usr/bin/c-icap -- -N [ $? == 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping c-icap server: " start-stop-daemon -K -q -p /var/run/c-icap.pid [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart|reload) $0 stop sleep 1 $0 start ;; *) echo "Usage: /etc/init.d/S96cicap {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/c-icap/c-icap.hash ================================================ # Retrieved from https://sourceforge.net/projects/c-icap/files/c-icap/0.5.x/ md5 82fd2fba1a08a8a0cf3567fe24aa035d c_icap-0.5.7.tar.gz sha1 3b2470e00abd1418bec3a440d3073d7a6231c4c1 c_icap-0.5.7.tar.gz # Locally calculated sha256 01ef17d7999d3476fe705abc56d0da562c2f180aafe08fc1269f419cad8521a9 c_icap-0.5.7.tar.gz sha256 36b6d3fa47916943fd5fec313c584784946047ec1337a78b440e5992cb595f89 COPYING ================================================ FILE: package/c-icap/c-icap.mk ================================================ ################################################################################ # # c-icap # ################################################################################ C_ICAP_VERSION = 0.5.7 C_ICAP_SOURCE = c_icap-$(C_ICAP_VERSION).tar.gz C_ICAP_SITE = http://downloads.sourceforge.net/c-icap C_ICAP_LICENSE = LGPL-2.1+ C_ICAP_LICENSE_FILES = COPYING C_ICAP_CPE_ID_VENDOR = c-icap_project C_ICAP_INSTALL_STAGING = YES C_ICAP_CONFIG_SCRIPTS = c-icap-config c-icap-libicapapi-config 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-bdb C_ICAP_DEPENDENCIES += berkeleydb else C_ICAP_CONF_OPTS += --without-bdb endif ifeq ($(BR2_PACKAGE_BZIP2),y) C_ICAP_CONF_OPTS += --with-bzlib C_ICAP_DEPENDENCIES += bzip2 else C_ICAP_CONF_OPTS += --without-bzlib endif ifeq ($(BR2_PACKAGE_LIBMEMCACHED),y) C_ICAP_CONF_OPTS += --with-memcached C_ICAP_DEPENDENCIES += libmemcached else C_ICAP_CONF_OPTS += --without-memcached endif ifeq ($(BR2_PACKAGE_OPENLDAP),y) C_ICAP_CONF_OPTS += --with-ldap C_ICAP_DEPENDENCIES += openldap else C_ICAP_CONF_OPTS += --without-ldap endif ifeq ($(BR2_PACKAGE_OPENSSL),y) C_ICAP_CONF_OPTS += --with-openssl C_ICAP_DEPENDENCIES += openssl else C_ICAP_CONF_OPTS += --without-openssl endif ifeq ($(BR2_PACKAGE_PCRE),y) C_ICAP_CONF_OPTS += --with-pcre C_ICAP_DEPENDENCIES += pcre else C_ICAP_CONF_OPTS += --without-pcre endif ifeq ($(BR2_PACKAGE_ZLIB),y) C_ICAP_CONF_OPTS += --with-zlib C_ICAP_DEPENDENCIES += zlib else C_ICAP_CONF_OPTS += --without-zlib endif define C_ICAP_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/c-icap/S96cicap $(TARGET_DIR)/etc/init.d/S96cicap endef # Tweak the installation: # - Removed unneeded sample configuration files (c-icap.*.default), # since some real ones are also installed # - Tweak some paths in the c-icap.conf configuration file # - Tweak the -config scripts, because the generic # _CONFIG_SCRIPTS logic doesn't tweak them enough define C_ICAP_TUNE_INSTALLATION $(RM) -f $(TARGET_DIR)/etc/c-icap.*.default $(SED) 's%/usr/etc/%/etc/%' $(TARGET_DIR)/etc/c-icap.conf $(SED) 's%/usr/var/%/var/%' $(TARGET_DIR)/etc/c-icap.conf $(SED) 's%INCDIR=.*%INCDIR=$(STAGING_DIR)/usr/include%' \ $(STAGING_DIR)/usr/bin/{c-icap,c-icap-libicapapi}-config $(SED) 's%INCDIR2=.*%INCDIR2=$(STAGING_DIR)/usr/include/c_icap%' \ $(STAGING_DIR)/usr/bin/{c-icap,c-icap-libicapapi}-config $(SED) 's%-L$$LIBDIR %%' $(STAGING_DIR)/usr/bin/c-icap-libicapapi-config endef C_ICAP_POST_INSTALL_TARGET_HOOKS += C_ICAP_TUNE_INSTALLATION $(eval $(autotools-package)) ================================================ FILE: package/c-icap-modules/Config.in ================================================ config BR2_PACKAGE_C_ICAP_MODULES bool "c-icap-modules" depends on BR2_PACKAGE_C_ICAP help Additionals modules for c-icap server. http://c-icap.sourceforge.net/ ================================================ FILE: package/c-icap-modules/c-icap-modules.hash ================================================ # From http://sourceforge.net/projects/c-icap/files/c-icap-modules/0.5.x/ md5 2f8c174f7a5414616f5a0a976ac4a221 c_icap_modules-0.5.4.tar.gz sha1 ec7bb138d7775895cd8b2e12adc41dbf48eba1b7 c_icap_modules-0.5.4.tar.gz # Locally calculated sha256 87409920c66027204e9cca5f20e137b63cd12daf6dfcd85c1fa62ab2bd1c57cc c_icap_modules-0.5.4.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/c-icap-modules/c-icap-modules.mk ================================================ ################################################################################ # # c-icap-modules # ################################################################################ C_ICAP_MODULES_VERSION = 0.5.4 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 = GPL-2.0+ C_ICAP_MODULES_LICENSE_FILES = COPYING C_ICAP_MODULES_DEPENDENCIES = c-icap C_ICAP_MODULES_CONF_OPTS = \ --with-c-icap=$(STAGING_DIR)/usr/ \ --without-clamav ifeq ($(BR2_PACKAGE_BERKELEYDB),y) C_ICAP_MODULES_CONF_OPTS += --with-bdb C_ICAP_MODULES_DEPENDENCIES += berkeleydb else C_ICAP_MODULES_CONF_OPTS += --without-bdb endif $(eval $(autotools-package)) ================================================ FILE: package/c-periphery/Config.in ================================================ config BR2_PACKAGE_C_PERIPHERY bool "c-periphery" help c-periphery is a set of C wrapper functions for GPIO, SPI, I2C, MMIO, and Serial peripheral I/O interface access in userspace Linux. The c-periphery wrappers simplify and consolidate the native Linux APIs to these interfaces. c-periphery is useful in embedded Linux environments (including BeagleBone, Raspberry Pi, etc. platforms) for interfacing with external peripherals. c-periphery is re-entrant, uses static allocations, has no dependencies outside the standard C library and Linux, compiles into a static library for easy integration with other projects, and is MIT licensed. https://github.com/vsergeev/c-periphery ================================================ FILE: package/c-periphery/c-periphery.hash ================================================ # Locally calculated sha256 ba298aac5c1f6ebe2b89ed623a2f678bedfa3b9dc78aaf4f0534a1dd304629da c-periphery-2.3.1.tar.gz sha256 7121a0a2ba36ed9388be2f1a916f0e3584d8e49cc7888fbcfcf83bab2a8bebef LICENSE ================================================ FILE: package/c-periphery/c-periphery.mk ================================================ ################################################################################ # # c-periphery # ################################################################################ C_PERIPHERY_VERSION = 2.3.1 C_PERIPHERY_SITE = $(call github,vsergeev,c-periphery,v$(C_PERIPHERY_VERSION)) C_PERIPHERY_INSTALL_STAGING = YES C_PERIPHERY_LICENSE = MIT C_PERIPHERY_LICENSE_FILES = LICENSE C_PERIPHERY_CPE_ID_VENDOR = c-periphery_project $(eval $(cmake-package)) ================================================ FILE: package/ca-certificates/0001-mozilla-certdata2pem.py-make-cryptography-module-opt.patch ================================================ From bf18b564122e8f976681a2398862fde1eafd84ba Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 6 Jan 2022 23:15:00 +0100 Subject: [PATCH] mozilla/certdata2pem.py: make cryptography module optional The Python cryptography module is only used to verify if trusted certificates have expired, but this is only a warning. For some build systems and distributions, providing Python cryptography is costly, especially since it's now partly written in Rust. As the check is only a warning, it's anyway going to be overlooked by most people. This commit changes the check to be optional: if the cryptography Python module is there, we perform the check, otherwise the check is skipped. Signed-off-by: Thomas Petazzoni --- mozilla/certdata2pem.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/mozilla/certdata2pem.py b/mozilla/certdata2pem.py index ede23d4..a6261f8 100644 --- a/mozilla/certdata2pem.py +++ b/mozilla/certdata2pem.py @@ -28,9 +28,6 @@ import sys import textwrap import io -from cryptography import x509 - - objects = [] # Dirty file parser. @@ -122,11 +119,16 @@ for obj in objects: if not obj['CKA_LABEL'] in trust or not trust[obj['CKA_LABEL']]: continue - cert = x509.load_der_x509_certificate(obj['CKA_VALUE']) - if cert.not_valid_after < datetime.datetime.now(): - print('!'*74) - print('Trusted but expired certificate found: %s' % obj['CKA_LABEL']) - print('!'*74) + try: + from cryptography import x509 + + cert = x509.load_der_x509_certificate(obj['CKA_VALUE']) + if cert.not_valid_after < datetime.datetime.now(): + print('!'*74) + print('Trusted but expired certificate found: %s' % obj['CKA_LABEL']) + print('!'*74) + except ImportError: + pass bname = obj['CKA_LABEL'][1:-1].replace('/', '_')\ .replace(' ', '_')\ -- 2.33.1 ================================================ FILE: package/ca-certificates/Config.in ================================================ config BR2_PACKAGE_CA_CERTIFICATES bool "CA Certificates" help This package includes PEM files of CA certificates to allow SSL-based applications to check for the authenticity of SSL connections. It includes, among others, certificate authorities used by the Debian infrastructure and those shipped with Mozilla's browsers. https://salsa.debian.org/debian/ca-certificates ================================================ FILE: package/ca-certificates/ca-certificates.hash ================================================ # hashes from: $(CA_CERTIFICATES_SITE)/ca-certificates_$(CA_CERTIFICATES_VERSION).dsc : sha1 bce5a8fac45456dbebf256f3a812c6cd0a853e3e ca-certificates_20211016.tar.xz sha256 2ae9b6dc5f40c25d6d7fe55e07b54f12a8967d1955d3b7b2f42ee46266eeef88 ca-certificates_20211016.tar.xz # Locally computed sha256 e85e1bcad3a915dc7e6f41412bc5bdeba275cadd817896ea0451f2140a93967c debian/copyright ================================================ FILE: package/ca-certificates/ca-certificates.mk ================================================ ################################################################################ # # ca-certificates # ################################################################################ CA_CERTIFICATES_VERSION = 20211016 CA_CERTIFICATES_SOURCE = ca-certificates_$(CA_CERTIFICATES_VERSION).tar.xz CA_CERTIFICATES_SITE = https://snapshot.debian.org/archive/debian/20211022T144903Z/pool/main/c/ca-certificates CA_CERTIFICATES_DEPENDENCIES = host-openssl host-python3 CA_CERTIFICATES_LICENSE = GPL-2.0+ (script), MPL-2.0 (data) CA_CERTIFICATES_LICENSE_FILES = debian/copyright define CA_CERTIFICATES_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) clean all endef define CA_CERTIFICATES_INSTALL_TARGET_CMDS $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/share/ca-certificates $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/ssl/certs $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install DESTDIR=$(TARGET_DIR) rm -f $(TARGET_DIR)/usr/sbin/update-ca-certificates # Remove any existing certificates under /etc/ssl/certs rm -f $(TARGET_DIR)/etc/ssl/certs/* # Create symlinks to certificates under /etc/ssl/certs # and generate the bundle cd $(TARGET_DIR) ;\ for i in `find usr/share/ca-certificates -name "*.crt" | LC_COLLATE=C sort` ; do \ ln -sf ../../../$$i etc/ssl/certs/`basename $${i} .crt`.pem ;\ cat $$i ;\ done >$(@D)/ca-certificates.crt # Create symlinks to the certificates by their hash values $(HOST_DIR)/bin/c_rehash $(TARGET_DIR)/etc/ssl/certs # Install the certificates bundle $(INSTALL) -D -m 644 $(@D)/ca-certificates.crt \ $(TARGET_DIR)/etc/ssl/certs/ca-certificates.crt endef $(eval $(generic-package)) ================================================ FILE: package/cache-calibrator/0001-Fix-conflicting-round-function.patch ================================================ From 39ac7268c4350040976005da98daf10edf676d3e Mon Sep 17 00:00:00 2001 From: Stephan Hoffmann Date: Mon, 28 Jan 2013 17:32:10 +0100 Subject: [PATCH] Fix conflicting round() function calibrator.c defines a local round() function that conflicts with the one from the standard library. This is fixed by renaming the local function. Signed-off-by: Stephan Hoffmann --- calibrator.c | 30 +++++++++++++++--------------- 1 files changed, 15 insertions(+), 15 deletions(-) diff --git a/calibrator.c b/calibrator.c index e045dfd..8471c04 100644 --- a/calibrator.c +++ b/calibrator.c @@ -128,7 +128,7 @@ void ErrXit(char *format, ...) { exit(1); } -lng round(dbl x) +lng lng_round(dbl x) { return (lng)(x + 0.5); } @@ -890,16 +890,16 @@ void plotCache(cacheInfo *cache, lng **result, lng MHz, char *fn, FILE *fp, lng fprintf(fp, ")\n"); fprintf(fp, "set y2tics"); for (l = 0, s = " ("; l <= cache->levels; l++, s = ", ") { - if (!delay) fprintf(fp, "%s'(%ld)' %f", s, round(CYperIt(cache->latency1[l] - delay)), NSperIt(cache->latency1[l] - delay)); - else fprintf(fp, "%s'(%ld)' %f", s, round(CYperIt(cache->latency2[l] - delay)), NSperIt(cache->latency2[l] - delay)); + if (!delay) fprintf(fp, "%s'(%ld)' %f", s, lng_round(CYperIt(cache->latency1[l] - delay)), NSperIt(cache->latency1[l] - delay)); + else fprintf(fp, "%s'(%ld)' %f", s, lng_round(CYperIt(cache->latency2[l] - delay)), NSperIt(cache->latency2[l] - delay)); } for (y = 1; y <= yh; y *= 10) { fprintf(fp, "%s'%1.3g' %ld", s, (dbl)(y * MHz) / 1000.0, y); } fprintf(fp, ")\n"); for (l = 0; l <= cache->levels; l++) { - if (!delay) z = (dbl)round(CYperIt(cache->latency1[l] - delay)) * 1000.0 / (dbl)MHz; - else z = (dbl)round(CYperIt(cache->latency2[l] - delay)) * 1000.0 / (dbl)MHz; + if (!delay) z = (dbl)lng_round(CYperIt(cache->latency1[l] - delay)) * 1000.0 / (dbl)MHz; + else z = (dbl)lng_round(CYperIt(cache->latency2[l] - delay)) * 1000.0 / (dbl)MHz; fprintf(fp, "set label %ld '(%1.3g) ' at %f,%f right\n", l + 1, z, xl, z); fprintf(fp, "set arrow %ld from %f,%f to %f,%f nohead lt 0\n", l + 1, xl, z, xh, z); } @@ -986,16 +986,16 @@ void plotTLB(TLBinfo *TLB, lng **result, lng MHz, char *fn, FILE *fp, lng delay) fprintf(fp, "%s'' %ld)\n", s, TLB->mincachelines); fprintf(fp, "set y2tics"); for (l = 0, s = " ("; l <= TLB->levels; l++, s = ", ") { - if (!delay) fprintf(fp, "%s'(%ld)' %f", s, round(CYperIt(TLB->latency1[l] - delay)), NSperIt(TLB->latency1[l] - delay)); - else fprintf(fp, "%s'(%ld)' %f", s, round(CYperIt(TLB->latency2[l] - delay)), NSperIt(TLB->latency2[l] - delay)); + if (!delay) fprintf(fp, "%s'(%ld)' %f", s, lng_round(CYperIt(TLB->latency1[l] - delay)), NSperIt(TLB->latency1[l] - delay)); + else fprintf(fp, "%s'(%ld)' %f", s, lng_round(CYperIt(TLB->latency2[l] - delay)), NSperIt(TLB->latency2[l] - delay)); } for (y = 1; y <= yh; y *= 10) { fprintf(fp, "%s'%1.3g' %ld", s, (dbl)(y * MHz) / 1000.0, y); } fprintf(fp, ")\n"); for (l = 0; l <= TLB->levels; l++) { - if (!delay) z = (dbl)round(CYperIt(TLB->latency1[l] - delay)) * 1000.0 / (dbl)MHz; - else z = (dbl)round(CYperIt(TLB->latency2[l] - delay)) * 1000.0 / (dbl)MHz; + if (!delay) z = (dbl)lng_round(CYperIt(TLB->latency1[l] - delay)) * 1000.0 / (dbl)MHz; + else z = (dbl)lng_round(CYperIt(TLB->latency2[l] - delay)) * 1000.0 / (dbl)MHz; fprintf(fp, "set label %ld '(%1.3g) ' at %f,%f right\n", l + 1, z, xl, z); fprintf(fp, "set arrow %ld from %f,%f to %f,%f nohead lt 0\n", l + 1, xl, z, xh, z); } @@ -1023,9 +1023,9 @@ void printCPU(cacheInfo *cache, lng MHz, lng delay) FILE *fp = stdout; fprintf(fp, "CPU loop + L1 access: "); - fprintf(fp, " %6.2f ns = %3ld cy\n", NSperIt(cache->latency1[0]), round(CYperIt(cache->latency1[0]))); + fprintf(fp, " %6.2f ns = %3ld cy\n", NSperIt(cache->latency1[0]), lng_round(CYperIt(cache->latency1[0]))); fprintf(fp, " ( delay: "); - fprintf(fp, " %6.2f ns = %3ld cy )\n", NSperIt(delay), round(CYperIt(delay))); + fprintf(fp, " %6.2f ns = %3ld cy )\n", NSperIt(delay), lng_round(CYperIt(delay))); fprintf(fp, "\n"); fflush(fp); } @@ -1047,8 +1047,8 @@ void printCache(cacheInfo *cache, lng MHz) fprintf(fp, " %3ld KB ", cache->size[l] / 1024); } fprintf(fp, " %3ld bytes ", cache->linesize[l + 1]); - fprintf(fp, " %6.2f ns = %3ld cy " , NSperIt(cache->latency2[l + 1] - cache->latency2[l]), round(CYperIt(cache->latency2[l + 1] - cache->latency2[l]))); - fprintf(fp, " %6.2f ns = %3ld cy\n", NSperIt(cache->latency1[l + 1] - cache->latency1[l]), round(CYperIt(cache->latency1[l + 1] - cache->latency1[l]))); + fprintf(fp, " %6.2f ns = %3ld cy " , NSperIt(cache->latency2[l + 1] - cache->latency2[l]), lng_round(CYperIt(cache->latency2[l + 1] - cache->latency2[l]))); + fprintf(fp, " %6.2f ns = %3ld cy\n", NSperIt(cache->latency1[l + 1] - cache->latency1[l]), lng_round(CYperIt(cache->latency1[l + 1] - cache->latency1[l]))); } fprintf(fp, "\n"); fflush(fp); @@ -1075,9 +1075,9 @@ void printTLB(TLBinfo *TLB, lng MHz) } else { fprintf(fp, " %3ld KB ", TLB->pagesize[l + 1] / 1024); } - fprintf(fp, " %6.2f ns = %3ld cy ", NSperIt(TLB->latency2[l + 1] - TLB->latency2[l]), round(CYperIt(TLB->latency2[l + 1] - TLB->latency2[l]))); + fprintf(fp, " %6.2f ns = %3ld cy ", NSperIt(TLB->latency2[l + 1] - TLB->latency2[l]), lng_round(CYperIt(TLB->latency2[l + 1] - TLB->latency2[l]))); /* - fprintf(fp, " %6.2f ns = %3ld cy" , NSperIt(TLB->latency1[l + 1] - TLB->latency1[l]), round(CYperIt(TLB->latency1[l + 1] - TLB->latency1[l]))); + fprintf(fp, " %6.2f ns = %3ld cy" , NSperIt(TLB->latency1[l + 1] - TLB->latency1[l]), lng_round(CYperIt(TLB->latency1[l + 1] - TLB->latency1[l]))); */ fprintf(fp, "\n"); } -- 1.7.0.4 ================================================ FILE: package/cache-calibrator/Config.in ================================================ config BR2_PACKAGE_CACHE_CALIBRATOR bool "cache-calibrator" help Cache calibrator is a small C program that is supposed to analyze a computers (cache-) memory system and extract useful information http://homepages.cwi.nl/~manegold/Calibrator/ It is also recommended as a load generator for realtime testing in: https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO ================================================ FILE: package/cache-calibrator/cache-calibrator.hash ================================================ # Locally calculated sha256 2018ed8fa733155d44ceb1c0066c5cf8df7771cdf7cfca0a07b8dd9bebd9c221 calibrator.c sha256 a853663f5b4fb3ad77bf2790ab53146f456b8d9b9ddf83b99fe28c0bdec42514 calibrator.c.license ================================================ FILE: package/cache-calibrator/cache-calibrator.mk ================================================ ################################################################################ # # cache-calibrator # ################################################################################ CACHE_CALIBRATOR_SOURCE = calibrator.c CACHE_CALIBRATOR_SITE = http://homepages.cwi.nl/~manegold/Calibrator/src CACHE_CALIBRATOR_LICENSE = Cache calibrator license CACHE_CALIBRATOR_LICENSE_FILES = calibrator.c.license define CACHE_CALIBRATOR_EXTRACT_CMDS cp $(CACHE_CALIBRATOR_DL_DIR)/$(CACHE_CALIBRATOR_SOURCE) $(@D) endef define CACHE_CALIBRATOR_EXTRACT_LICENSE head -n 38 $(@D)/calibrator.c >$(@D)/calibrator.c.license endef CACHE_CALIBRATOR_PRE_PATCH_HOOKS += CACHE_CALIBRATOR_EXTRACT_LICENSE define CACHE_CALIBRATOR_BUILD_CMDS $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) $(@D)/calibrator.c -o $(@D)/cache_calibrator -lm endef define CACHE_CALIBRATOR_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/cache_calibrator $(TARGET_DIR)/usr/bin/cache_calibrator endef $(eval $(generic-package)) ================================================ FILE: package/cage/Config.in ================================================ comment "cage needs udev, EGL w/ Wayland backend and OpenGL ES support" depends on !BR2_PACKAGE_HAS_LIBEGL || \ !BR2_PACKAGE_HAS_LIBEGL_WAYLAND || \ !BR2_PACKAGE_HAS_LIBGLES || \ !BR2_PACKAGE_HAS_UDEV comment "cage needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS config BR2_PACKAGE_CAGE bool "cage" depends on !BR2_STATIC_LIBS # wlroots depends on BR2_TOOLCHAIN_HAS_THREADS # wlroots depends on BR2_PACKAGE_HAS_LIBEGL # wlroots depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND # wlroots depends on BR2_PACKAGE_HAS_LIBGLES # wlroots depends on BR2_PACKAGE_HAS_UDEV # wlroots select BR2_PACKAGE_WLROOTS help Kiosk compositor for Wayland, which displays a single maximized application at a time. https://www.hjdskes.nl/projects/cage/ ================================================ FILE: package/cage/cage.hash ================================================ # Generated locally after checking GPG signature sha256 dfe27fb0c7d43db72d6c82f01e2736580a0791a23ba69d7b56285d08af98ad90 cage-0.1.4.tar.gz # Hashes for license files: sha256 e117104073335dbaf78596fb1bedf89dda63c71f60f0b665947b2d369c77ecee LICENSE ================================================ FILE: package/cage/cage.mk ================================================ ################################################################################ # # cage # ################################################################################ CAGE_VERSION = 0.1.4 CAGE_SITE = https://github.com/Hjdskes/cage/releases/download/v$(CAGE_VERSION) CAGE_LICENSE = MIT CAGE_LICENSE_FILES = LICENSE CAGE_DEPENDENCIES = host-pkgconf wlroots CAGE_CONF_OPTS = -Dman-pages=disabled ifeq ($(BR2_PACKAGE_XORG7),y) CAGE_CONF_OPTS += -Dxwayland=true else CAGE_CONF_OPTS += -Dxwayland=false endif $(eval $(meson-package)) ================================================ FILE: package/cairo/0001-fix-nofork-build.patch ================================================ test: fix build when SHOULD_FORK is false The code in test/cairo-test-runner.c properly takes into account platforms that do have fork() support, and uses the SHOULD_FORK define to know whether fork is available or not. However, this SHOULD_FORK macro is used to guard the inclusion of , which is needed to get the prototype of other functions (namely readlink and getppid), that are used in portions of this file not guarded by SHOULD_FORK. Signed-off-by: Thomas Petazzoni Index: b/test/cairo-test-runner.c =================================================================== --- a/test/cairo-test-runner.c +++ b/test/cairo-test-runner.c @@ -36,10 +36,10 @@ #include /* for version information */ #define SHOULD_FORK HAVE_FORK && HAVE_WAITPID -#if SHOULD_FORK #if HAVE_UNISTD_H #include #endif +#if SHOULD_FORK #if HAVE_SIGNAL_H #include #endif ================================================ FILE: package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch ================================================ From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Mon, 19 Nov 2018 12:33:07 +0100 Subject: [PATCH] ft: Use FT_Done_MM_Var instead of free when available in cairo_ft_apply_variations Fixes a crash when using freetype >= 2.9 [Retrieved from: https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645] Signed-off-by: Fabrice Fontaine --- src/cairo-ft-font.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c index 325dd61b4..981973f78 100644 --- a/src/cairo-ft-font.c +++ b/src/cairo-ft-font.c @@ -2393,7 +2393,11 @@ skip: done: free (coords); free (current_coords); +#if HAVE_FT_DONE_MM_VAR + FT_Done_MM_Var (face->glyph->library, ft_mm_var); +#else free (ft_mm_var); +#endif } } -- 2.24.1 ================================================ FILE: package/cairo/Config.in ================================================ config BR2_PACKAGE_CAIRO bool "cairo" select BR2_PACKAGE_PIXMAN select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7 help Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System, Win32, image buffers, and PostScript, PDF, and SVG file output. Experimental backends include OpenGL (through glitz), Quartz, and XCB. http://cairographics.org/ if BR2_PACKAGE_CAIRO config BR2_PACKAGE_CAIRO_PS bool "postscript support" select BR2_PACKAGE_ZLIB select BR2_PACKAGE_CAIRO_PDF config BR2_PACKAGE_CAIRO_PDF bool "pdf support" select BR2_PACKAGE_ZLIB config BR2_PACKAGE_CAIRO_PNG bool "png support" select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_ZLIB config BR2_PACKAGE_CAIRO_SCRIPT bool "script support" select BR2_PACKAGE_CAIRO_PNG config BR2_PACKAGE_CAIRO_SVG bool "svg support" select BR2_PACKAGE_CAIRO_PNG select BR2_PACKAGE_CAIRO_PDF config BR2_PACKAGE_CAIRO_TEE bool "tee support" config BR2_PACKAGE_CAIRO_XML bool "xml support" select BR2_PACKAGE_CAIRO_PNG endif ================================================ FILE: package/cairo/cairo.hash ================================================ # From https://www.cairographics.org/releases/cairo-1.16.0.tar.xz.sha1 sha1 00e81842ae5e81bb0343108884eb5205be0eac14 cairo-1.16.0.tar.xz # Calculated based on the hash above sha256 5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331 cairo-1.16.0.tar.xz # Hash for license files: sha256 67228a9f7c5f9b67c58f556f1be178f62da4d9e2e6285318d8c74d567255abdf COPYING sha256 9e9e8608c4cdda51a78cc3a385f4ec9a2e4c96d5ecad74ac8bca5fca3e563b7d COPYING-LGPL-2.1 sha256 53692a2ed6c6a2c6ec9b32dd0b820dfae91e0a1fcdf625ca9ed0bdf8705fcc4f COPYING-MPL-1.1 ================================================ FILE: package/cairo/cairo.mk ================================================ ################################################################################ # # cairo # ################################################################################ CAIRO_VERSION = 1.16.0 CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.xz CAIRO_LICENSE = LGPL-2.1 or MPL-1.1 (library) CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1 CAIRO_CPE_ID_VENDOR = cairographics CAIRO_SITE = http://cairographics.org/releases CAIRO_INSTALL_STAGING = YES # 0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch CAIRO_IGNORE_CVES += CVE-2018-19876 # 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_HAS_LIBATOMIC),y) CAIRO_CONF_ENV += LIBS="-latomic" endif CAIRO_CONF_OPTS = \ --enable-trace=no \ --enable-interpreter=no CAIRO_DEPENDENCIES = host-pkgconf fontconfig pixman # Just the bare minimum to make other host-* packages happy HOST_CAIRO_CONF_OPTS = \ --enable-trace=no \ --enable-interpreter=no \ --disable-directfb \ --enable-ft \ --enable-gobject \ --disable-glesv2 \ --disable-vg \ --disable-xlib \ --disable-xcb \ --without-x \ --disable-xlib-xrender \ --disable-ps \ --disable-pdf \ --enable-png \ --enable-script \ --disable-svg \ --disable-tee \ --disable-xml HOST_CAIRO_DEPENDENCIES = \ host-freetype \ host-fontconfig \ host-libglib2 \ host-libpng \ host-pixman \ host-pkgconf # DirectFB svg support rely on Cairo and Cairo DirectFB support depends on # DirectFB. Break circular dependency by disabling DirectFB support in Cairo # (which is experimental) ifeq ($(BR2_PACKAGE_DIRECTFB)x$(BR2_PACKAGE_DIRECTFB_SVG),yx) CAIRO_CONF_OPTS += --enable-directfb CAIRO_DEPENDENCIES += directfb else CAIRO_CONF_OPTS += --disable-directfb endif ifeq ($(BR2_PACKAGE_FREETYPE),y) CAIRO_CONF_OPTS += --enable-ft CAIRO_DEPENDENCIES += freetype else CAIRO_CONF_OPTS += --disable-ft endif ifeq ($(BR2_PACKAGE_LIBGLIB2),y) CAIRO_CONF_OPTS += --enable-gobject CAIRO_DEPENDENCIES += libglib2 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 += --disable-gl --enable-glesv2 CAIRO_DEPENDENCIES += libgles else CAIRO_CONF_OPTS += --disable-gl --disable-glesv2 endif endif ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y) CAIRO_CONF_OPTS += --enable-vg CAIRO_DEPENDENCIES += libopenvg else CAIRO_CONF_OPTS += --disable-vg endif ifeq ($(BR2_PACKAGE_LZO),y) CAIRO_DEPENDENCIES += lzo endif ifeq ($(BR2_PACKAGE_XORG7),y) CAIRO_CONF_OPTS += --enable-xlib --enable-xcb --with-x CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext else CAIRO_CONF_OPTS += --disable-xlib --disable-xcb --without-x endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y) CAIRO_CONF_OPTS += --enable-xlib-xrender CAIRO_DEPENDENCIES += xlib_libXrender else CAIRO_CONF_OPTS += --disable-xlib-xrender endif ifeq ($(BR2_PACKAGE_CAIRO_PS),y) CAIRO_CONF_OPTS += --enable-ps CAIRO_DEPENDENCIES += zlib else CAIRO_CONF_OPTS += --disable-ps endif ifeq ($(BR2_PACKAGE_CAIRO_PDF),y) CAIRO_CONF_OPTS += --enable-pdf CAIRO_DEPENDENCIES += zlib else CAIRO_CONF_OPTS += --disable-pdf endif ifeq ($(BR2_PACKAGE_CAIRO_PNG),y) CAIRO_CONF_OPTS += --enable-png CAIRO_DEPENDENCIES += libpng else CAIRO_CONF_OPTS += --disable-png endif ifeq ($(BR2_PACKAGE_CAIRO_SCRIPT),y) CAIRO_CONF_OPTS += --enable-script else CAIRO_CONF_OPTS += --disable-script endif ifeq ($(BR2_PACKAGE_CAIRO_SVG),y) CAIRO_CONF_OPTS += --enable-svg else CAIRO_CONF_OPTS += --disable-svg endif ifeq ($(BR2_PACKAGE_CAIRO_TEE),y) CAIRO_CONF_OPTS += --enable-tee else CAIRO_CONF_OPTS += --disable-tee endif ifeq ($(BR2_PACKAGE_CAIRO_XML),y) CAIRO_CONF_OPTS += --enable-xml else CAIRO_CONF_OPTS += --disable-xml endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/cairomm/Config.in ================================================ config BR2_PACKAGE_CAIROMM bool "cairomm" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_WCHAR # libglib2 depends on BR2_USE_MMU # libglib2 depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_CAIRO select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBSIGC help The cairomm package is a set of C++ bindings for Cairo. http://www.gtkmm.org/ comment "cairomm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR \ || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/cairomm/cairomm.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/cairomm/1.12/cairomm-1.12.0.sha256sum sha256 a54ada8394a86182525c0762e6f50db6b9212a2109280d13ec6a0b29bfd1afe6 cairomm-1.12.0.tar.xz # Locally computed sha256 bfe4a52dc4645385f356a8e83cc54216a293e3b6f1cb4f79f5fc0277abf937fd COPYING ================================================ FILE: package/cairomm/cairomm.mk ================================================ ################################################################################ # # cairomm # ################################################################################ CAIROMM_VERSION_MAJOR = 1.12 CAIROMM_VERSION = $(CAIROMM_VERSION_MAJOR).0 CAIROMM_LICENSE = LGPL-2.0+ CAIROMM_LICENSE_FILES = COPYING CAIROMM_SOURCE = cairomm-$(CAIROMM_VERSION).tar.xz CAIROMM_SITE = http://ftp.gnome.org/pub/gnome/sources/cairomm/$(CAIROMM_VERSION_MAJOR) CAIROMM_INSTALL_STAGING = YES CAIROMM_DEPENDENCIES = cairo libglib2 libsigc host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/can-utils/Config.in ================================================ config BR2_PACKAGE_CAN_UTILS bool "can-utils" depends on BR2_USE_MMU # fork() help SocketCAN is a set of open source CAN drivers and a networking stack. This package provides various tools for this stack. https://github.com/linux-can/can-utils ================================================ FILE: package/can-utils/can-utils.hash ================================================ # Locally computed sha256 c9b8f29515ad34af7f78450ec55c983abc5393e86b1f128a92ac0dfd141baaf7 can-utils-2021.08.0.tar.gz sha256 c3dc748f5e725cf5ed89784fe78e4ff1b05d309bf1e7ade4c572e8fde1b8406c LICENSES/BSD-3-Clause sha256 995a31f60a9ddb4c609214cc7d17ca94cc3cbc7f37e1e64dba81e7f8ea9d4f91 LICENSES/GPL-2.0-only.txt ================================================ FILE: package/can-utils/can-utils.mk ================================================ ################################################################################ # # can-utils # ################################################################################ CAN_UTILS_VERSION = 2021.08.0 CAN_UTILS_SITE = $(call github,linux-can,can-utils,v$(CAN_UTILS_VERSION)) CAN_UTILS_LICENSE = BSD-3-Clause or GPL-2.0 CAN_UTILS_LICENSE_FILES = LICENSES/BSD-3-Clause LICENSES/GPL-2.0-only.txt CAN_UTILS_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/cannelloni/Config.in ================================================ 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 ================================================ FILE: package/cannelloni/cannelloni.hash ================================================ # Locally computed sha256 de44b7e327fbf38883f46e51a5afd07de5144f2e44c5f42b7f2f0741165f0b13 cannelloni-1.0.0.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 gpl-2.0.txt ================================================ FILE: package/cannelloni/cannelloni.mk ================================================ ################################################################################ # # cannelloni # ################################################################################ CANNELLONI_VERSION = 1.0.0 CANNELLONI_SITE = $(call github,mguentner,cannelloni,v$(CANNELLONI_VERSION)) CANNELLONI_LICENSE = GPL-2.0 CANNELLONI_LICENSE_FILES = gpl-2.0.txt CANNELLONI_CONF_OPTS = -DCMAKE_CXX_FLAGS="-std=c++11" 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)) ================================================ FILE: package/cantarell/Config.in ================================================ config BR2_PACKAGE_CANTARELL bool "cantarell" help The Cantarell font family is a contemporary Humanist sans serif designed for on-screen reading. https://wiki.gnome.org/Projects/CantarellFonts ================================================ FILE: package/cantarell/cantarell.hash ================================================ # From http://ftp.acc.umu.se/pub/gnome/sources/cantarell-fonts/0.0/cantarell-fonts-0.0.25.sha256sum sha256 14a228aa0b516dfc367b434a850f955a00c57fc549cbb05348e2b150196a737f cantarell-fonts-0.0.25.tar.xz # locally computed sha256 79a9d6198c0d9192c1b0bf55bcbc404a39390bd0d8c650cf20d652c2eaa284d8 COPYING ================================================ FILE: package/cantarell/cantarell.mk ================================================ ################################################################################ # # cantarell # ################################################################################ CANTARELL_VERSION_MAJOR = 0.0 CANTARELL_VERSION = $(CANTARELL_VERSION_MAJOR).25 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 CANTARELL_LICENSE = OFL-1.1 CANTARELL_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/capnproto/0001-mutex-Fix-build-on-32-bit-architectures-using-64-bit-time_t.patch ================================================ From e2a05a19e9dc51287e19cc9f11fd91449219e361 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 15 Nov 2020 12:10:28 -0800 Subject: [PATCH] mutex: Fix build on 32-bit architectures using 64-bit time_t mutex code uses SYS_futex, which it expects from system C library. in glibc (/usr/include/bits/syscall.h defines it in terms of of NR_futex) rv32 is using 64bit time_t from get go unlike other 32bit architectures in glibc, therefore it wont have NR_futex defined but just NR_futex_time64 this aliases it to NR_futex so that SYS_futex is then defined for rv32 Signed-off-by: Khem Raj [Retrieved from: https://github.com/capnproto/capnproto/commit/e2a05a19e9dc51287e19cc9f11fd91449219e361] Signed-off-by: Fabrice Fontaine --- c++/src/kj/mutex.c++ | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/c++/src/kj/mutex.c++ b/c++/src/kj/mutex.c++ index c81cead7b..e1594b117 100644 --- a/c++/src/kj/mutex.c++ +++ b/c++/src/kj/mutex.c++ @@ -39,7 +39,13 @@ #ifndef SYS_futex // Missing on Android/Bionic. +#ifdef __NR_futex #define SYS_futex __NR_futex +#elif defined(SYS_futex_time64) +#define SYS_futex SYS_futex_time64 +#else +#error "Need working SYS_futex" +#endif #endif #ifndef FUTEX_WAIT_PRIVATE ================================================ FILE: package/capnproto/Config.in ================================================ config BR2_PACKAGE_CAPNPROTO bool "capnproto" depends on BR2_USE_MMU depends on BR2_HOST_GCC_AT_LEAST_5 # C++14 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++14 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 depends on BR2_TOOLCHAIN_HAS_UCONTEXT help Cap'n Proto is an insanely fast data interchange format and capability-based RPC system. Think JSON, except binary. Or think Protocol Buffers, except faster. In fact, in benchmarks, Cap'n Proto is INFINITY TIMES faster than Protocol Buffers. https://capnproto.org/index.html comment "capnproto needs host and target gcc >= 5 w/ C++14, threads, atomic, ucontext and not gcc bug 64735" depends on BR2_USE_MMU depends on !BR2_HOST_GCC_AT_LEAST_5 || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \ !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HAS_ATOMIC || \ BR2_TOOLCHAIN_HAS_GCC_BUG_64735 || \ !BR2_TOOLCHAIN_HAS_UCONTEXT ================================================ FILE: package/capnproto/capnproto.hash ================================================ # Locally calculated sha256 6d8b43a7ec2a764b4dfe4139a7cdd070ad9057f106898050d9f4db3754b98820 capnproto-0.8.0.tar.gz sha256 9564998c8d7f270a61a8b89869a8d17a9d5e3783b64027788b5e339ec8479e10 LICENSE ================================================ FILE: package/capnproto/capnproto.mk ================================================ ################################################################################ # # capnproto # ################################################################################ CAPNPROTO_VERSION = 0.8.0 CAPNPROTO_SITE = $(call github,capnproto,capnproto,v$(CAPNPROTO_VERSION)) CAPNPROTO_LICENSE = MIT CAPNPROTO_LICENSE_FILES = LICENSE CAPNPROTO_CPE_ID_VENDOR = capnproto CAPNPROTO_INSTALL_STAGING = YES # Fetched from Github with no configure script CAPNPROTO_AUTORECONF = YES CAPNPROTO_CONF_OPTS = --with-external-capnp # Needs the capnproto compiler on the host to generate C++ code from message # definitions CAPNPROTO_DEPENDENCIES = host-autoconf host-capnproto ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) CAPNPROTO_CONF_ENV += LIBS=-latomic endif # The actual source to be compiled is within a 'c++' subdirectory CAPNPROTO_SUBDIR = c++ ifeq ($(BR2_PACKAGE_OPENSSL),y) CAPNPROTO_CONF_OPTS += --with-openssl CAPNPROTO_DEPENDENCIES += openssl else CAPNPROTO_CONF_OPTS += --without-openssl endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/caps/0001-Fix-stdint-types-with-musl.patch ================================================ From 626e60a82120961ccee117dfcb5c28f72f8a26e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krause?= Date: Wed, 28 Aug 2019 11:25:49 +0200 Subject: [PATCH] Fix stdint types with musl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fetched from: https://github.com/dsacre/meta-lad/blob/master/recipes-multimedia/lv2/caps-lv2/fix-stdint-types-with-musl.patch Signed-off-by: Jörg Krause --- basics.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/basics.h b/basics.h index 643d96e..34e5f63 100644 --- a/basics.h +++ b/basics.h @@ -39,6 +39,7 @@ #define _ISOC9X_SOURCE 1 #include +#include #include #include @@ -49,14 +50,14 @@ #include "ladspa.h" -typedef __int8_t int8; -typedef __uint8_t uint8; -typedef __int16_t int16; -typedef __uint16_t uint16; -typedef __int32_t int32; -typedef __uint32_t uint32; -typedef __int64_t int64; -typedef __uint64_t uint64; +typedef int8_t int8; +typedef uint8_t uint8; +typedef int16_t int16; +typedef uint16_t uint16; +typedef int32_t int32; +typedef uint32_t uint32; +typedef int64_t int64; +typedef uint64_t uint64; #define MIN_GAIN 1e-6 /* -120 dB */ /* smallest non-denormal 32 bit IEEE float is 1.18e-38 */ -- 2.22.0 ================================================ FILE: package/caps/Config.in ================================================ config BR2_PACKAGE_CAPS bool "caps" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS help CAPS is a collection of audio plugins comprising virtual guitar amplification and a small range of basic classic effects, signal processors and generators of often elementary and occasionally exotic nature. The plugins aim to satisfy the highest demands in sound quality with maximal computational efficiency and zero latency. http://quitte.de/dsp/caps.html comment "caps needs a toolchain w/ C++, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS ================================================ FILE: package/caps/caps.hash ================================================ # Locally calculated sha256 e7496c5bce05abebe3dcb635926153bbb58a9337a6e423f048d3b61d8a4f98c9 caps_0.9.26.tar.bz2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/caps/caps.mk ================================================ ################################################################################ # # caps # ################################################################################ CAPS_VERSION = 0.9.26 CAPS_SOURCE = caps_$(CAPS_VERSION).tar.bz2 CAPS_SITE = http://quitte.de/dsp CAPS_LICENSE = GPL-3.0+ CAPS_LICENSE_FILES = COPYING # Need to pass TARGET_CONFIGURE_OPTS in the environment to not # override the LDFLAGS definition of the Makefile. CAPS_MAKE_ENV = \ $(TARGET_MAKE_ENV) \ $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CXXFLAGS)" # caps Makefile uses CC and CFLAGS, but for C++ CAPS_MAKE_OPTS = \ CC="$(TARGET_CXX)" \ STRIP=/bin/true define CAPS_BUILD_CMDS $(CAPS_MAKE_ENV) $(MAKE) $(CAPS_MAKE_OPTS) all -C $(@D) endef define CAPS_INSTALL_TARGET_CMDS $(CAPS_MAKE_ENV) $(MAKE) $(CAPS_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) install -C $(@D) endef $(eval $(generic-package)) ================================================ FILE: package/casync/0001-castore-fix-build-without-lzma-or-xz.patch ================================================ From 06b667de02df34e3efa1864b4031853bd4ee010d Mon Sep 17 00:00:00 2001 From: Yair Ben-Avraham Date: Sun, 10 Jan 2021 06:34:58 +0100 Subject: [PATCH] castore: fix build without lzma or xz castore.c unconditioanlly includes lzma.h, but lzma support if optional. Furthermore, castore.c does not need anything from lzma.h. Drop the include altogether. Signed-off-by: Yair Ben-Avraham [yann.morin.1998@free.fr: - lzma.h is not needed at all - rewrite commit log accordingly ] Signed-off-by: Yann E. MORIN --- src/castore.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/castore.c b/src/castore.c index c290dfd..b2e5320 100644 --- a/src/castore.c +++ b/src/castore.c @@ -2,7 +2,6 @@ #include #include -#include #include #include -- 2.25.1 ================================================ FILE: package/casync/0002-build-don-t-install-udev-rules-without-udev-support.patch ================================================ From e3f683dc3013d14bddb9f9ec5bdc31367dc51a1c Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 10 Jan 2021 10:44:39 +0100 Subject: [PATCH] build: don't install udev rules without udev support Signed-off-by: Yann E. MORIN --- meson.build | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/meson.build b/meson.build index aac7727..92be1ea 100644 --- a/meson.build +++ b/meson.build @@ -151,6 +151,11 @@ conf.set10('HAVE_SELINUX', get_option('selinux')) if get_option('udev') libudev = dependency('libudev') + udevrulesdir = get_option('udevrulesdir') + if udevrulesdir == '' + udev = dependency('udev', required : false) + udevrulesdir = join_paths(udev.get_pkgconfig_variable('udevdir'), 'rules.d') + endif else libudev = [] endif @@ -175,12 +180,6 @@ subdir('test') includes = include_directories('src') -udevrulesdir = get_option('udevrulesdir') -if udevrulesdir == '' - udev = dependency('udev', required : false) - udevrulesdir = join_paths(udev.get_pkgconfig_variable('udevdir'), 'rules.d') -endif - subdir('shell-completion/bash') subdir('doc') @@ -318,7 +317,9 @@ udev_rule = configure_file( input : 'src/75-casync.rules.in', configuration : substs) -install_data(udev_rule, install_dir : udevrulesdir) +if get_option('udev') + install_data(udev_rule, install_dir : udevrulesdir) +endif ############################################################ -- 2.25.1 ================================================ FILE: package/casync/Config.in ================================================ config BR2_PACKAGE_CASYNC bool "casync" depends on BR2_TOOLCHAIN_USES_GLIBC # scandirat() is not implemented by musl and uclibc-ng select BR2_PACKAGE_ACL select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_OPENSSL help Content-Addressable Data Synchronization Tool https://github.com/systemd/casync comment "casync needs a glibc toolchain" depends on !BR2_TOOLCHAIN_USES_GLIBC ================================================ FILE: package/casync/casync.hash ================================================ # sha256 locally computed sha256 d07f43e70e3c466152033da4c55c065f815d3025234a046c2bce1cfe4ac7d273 casync-4ad9bcb94bc83ff36cfc65515107ea06a88c2dfc.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSE.LGPL2.1 ================================================ FILE: package/casync/casync.mk ================================================ ################################################################################ # # casync # ################################################################################ CASYNC_VERSION = 4ad9bcb94bc83ff36cfc65515107ea06a88c2dfc CASYNC_SITE = $(call github,systemd,casync,$(CASYNC_VERSION)) CASYNC_LICENSE = LGPL-2.1+ CASYNC_LICENSE_FILES = LICENSE.LGPL2.1 CASYNC_DEPENDENCIES = acl libcurl openssl CASYNC_CONF_OPTS = -Dman=false -Doss-fuzz=false -Dllvm-fuzz=false ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y) CASYNC_DEPENDENCIES += bash-completion # The default path is correct, leave it as-is else CASYNC_CONF_OPTS += -Dbashcompletiondir=no endif ifeq ($(BR2_PACKAGE_LIBFUSE),y) CASYNC_DEPENDENCIES += libfuse CASYNC_CONF_OPTS += -Dfuse=true else CASYNC_CONF_OPTS += -Dfuse=false endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) CASYNC_DEPENDENCIES += libselinux CASYNC_CONF_OPTS += -Dselinux=true else CASYNC_CONF_OPTS += -Dselinux=false endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) CASYNC_DEPENDENCIES += udev CASYNC_CONF_OPTS += -Dudev=true else CASYNC_CONF_OPTS += -Dudev=false endif ifeq ($(BR2_PACKAGE_LIBZSTD),y) CASYNC_DEPENDENCIES += libzstd CASYNC_CONF_OPTS += -Dlibzstd=enabled else CASYNC_CONF_OPTS += -Dlibzstd=disabled endif ifeq ($(BR2_PACKAGE_XZ),y) CASYNC_DEPENDENCIES += xz CASYNC_CONF_OPTS += -Dliblzma=enabled else CASYNC_CONF_OPTS += -Dliblzma=disabled endif ifeq ($(BR2_PACKAGE_ZLIB),y) CASYNC_DEPENDENCIES += zlib CASYNC_CONF_OPTS += -Dlibz=enabled else CASYNC_CONF_OPTS += -Dlibz=disabled endif $(eval $(meson-package)) ================================================ FILE: package/cbootimage/Config.in ================================================ config BR2_PACKAGE_CBOOTIMAGE bool "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 ================================================ FILE: package/cbootimage/Config.in.host ================================================ 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 ================================================ FILE: package/cbootimage/cbootimage.hash ================================================ # Locally computed sha256 46cce01f07df977668de9e1d49884d8ed539169994215606a9719d17b9db8804 cbootimage-1.8.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/cbootimage/cbootimage.mk ================================================ ################################################################################ # # cbootimage # ################################################################################ CBOOTIMAGE_VERSION = 1.8 CBOOTIMAGE_SITE = $(call github,NVIDIA,cbootimage,v$(CBOOTIMAGE_VERSION)) CBOOTIMAGE_LICENSE = GPL-2.0 CBOOTIMAGE_LICENSE_FILES = COPYING CBOOTIMAGE_AUTORECONF = YES $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/cc-tool/Config.in ================================================ config BR2_PACKAGE_CC_TOOL bool "cc-tool" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem depends on BR2_USE_WCHAR # boost-filesystem depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_REGEX select BR2_PACKAGE_BOOST_FILESYSTEM help cc-tool provides support for Texas Instruments CC Debugger for Linux OS in order to program 8051-based System-On-Chip devices: CC254x CC253x CC243x CC251x CC111x https://github.com/dashesy/cc-tool/ comment "cc-tool needs a toolchain w/ C++, threads, wchar, gcc >= 4.9 " depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/cc-tool/cc-tool.hash ================================================ # Locally computed sha256 1d26be4446c68413a02bf3156e6434d7fe9ce76aa0a169464ca5d7b2a731610d cc-tool-0.27.tar.gz # Hash for license file sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/cc-tool/cc-tool.mk ================================================ ################################################################################ # # cc-tool # ################################################################################ CC_TOOL_VERSION = 0.27 CC_TOOL_SITE = $(call github,dashesy,cc-tool,v$(CC_TOOL_VERSION)) CC_TOOL_LICENSE = GPL-2.0 CC_TOOL_LICENSE_FILES = COPYING CC_TOOL_DEPENDENCIES = boost libusb # From git CC_TOOL_AUTORECONF = YES # Configure script "discovers" boost in /usr/local if not given explicitly CC_TOOL_CONF_OPTS = --with-boost=$(STAGING_DIR)/usr CC_TOOL_CONF_ENV = LIBS="$(CC_TOOL_LIBS)" # Help boost.m4 find the Boost Regex library, which needs the pthread # library, but isn't detected using a modern (pkg-config) mechanism. ifeq ($(BR2_STATIC_LIBS),y) CC_TOOL_LIBS += -lpthread endif ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) CC_TOOL_LIBS += -latomic endif $(eval $(autotools-package)) ================================================ FILE: package/ccache/ccache.hash ================================================ # sha256 computed locally sha256 a02f4e8360dc6618bc494ca35b0ae21cea080f804a4898eab1ad3fcd108eb400 ccache-3.7.12.tar.xz sha256 ec6b1a326ff93b2cc21df88a697ae470ff6927a55b8929e7e491b315e1563361 GPL-3.0.txt sha256 4f63223bcdee822d55a6768cc8399ffe06401d7a03cfe79e1dc305f50dc22c59 LICENSE.adoc ================================================ FILE: package/ccache/ccache.mk ================================================ ################################################################################ # # ccache # ################################################################################ CCACHE_VERSION = 3.7.12 CCACHE_SITE = https://github.com/ccache/ccache/releases/download/v$(CCACHE_VERSION) CCACHE_SOURCE = ccache-$(CCACHE_VERSION).tar.xz CCACHE_LICENSE = GPL-3.0+, others CCACHE_LICENSE_FILES = LICENSE.adoc GPL-3.0.txt # Force ccache to use its internal zlib. The problem is that without # this, ccache would link against the zlib of the build system, but we # might build and install a different version of zlib in $(O)/host # afterwards, which ccache will pick up. This might break if there is # a version mismatch. A solution would be to add host-zlib has a # dependency of ccache, but it would require tuning the zlib .mk file # to use HOSTCC_NOCCACHE as the compiler. Instead, we take the easy # path: tell ccache to use its internal copy of zlib, so that ccache # has zero dependency besides the C library. HOST_CCACHE_CONF_OPTS += --with-bundled-zlib # We are ccache, so we can't use ccache HOST_CCACHE_CONF_ENV = \ CC="$(HOSTCC_NOCCACHE)" \ CXX="$(HOSTCXX_NOCCACHE)" # Patch host-ccache as follows: # - Use BR_CACHE_DIR instead of CCACHE_DIR, because CCACHE_DIR # is already used by autotargets for the ccache package. # BR_CACHE_DIR is exported by Makefile based on config option # BR2_CCACHE_DIR. # - Change hard-coded last-ditch default to match path in .config, to avoid # the need to specify BR_CACHE_DIR when invoking ccache directly. # CCache replaces "%s" with the home directory of the current user, # So rewrite BR_CACHE_DIR to take that into consideration for SDK purpose HOST_CCACHE_DEFAULT_CCACHE_DIR = $(patsubst $(HOME)/%,\%s/%,$(BR_CACHE_DIR)) define HOST_CCACHE_PATCH_CONFIGURATION sed -i 's,getenv("CCACHE_DIR"),getenv("BR_CACHE_DIR"),' $(@D)/src/ccache.c sed -i 's,"%s/.ccache","$(HOST_CCACHE_DEFAULT_CCACHE_DIR)",' $(@D)/src/conf.c endef HOST_CCACHE_POST_PATCH_HOOKS += HOST_CCACHE_PATCH_CONFIGURATION define HOST_CCACHE_MAKE_CACHE_DIR mkdir -p $(BR_CACHE_DIR) endef HOST_CCACHE_POST_INSTALL_HOOKS += HOST_CCACHE_MAKE_CACHE_DIR # Provide capability to do initial ccache setup (e.g. increase default size) BR_CCACHE_INITIAL_SETUP = $(call qstrip,$(BR2_CCACHE_INITIAL_SETUP)) ifneq ($(BR_CCACHE_INITIAL_SETUP),) define HOST_CCACHE_DO_INITIAL_SETUP @$(call MESSAGE,"Applying initial settings") $(CCACHE) $(BR_CCACHE_INITIAL_SETUP) $(CCACHE) -s endef HOST_CCACHE_POST_INSTALL_HOOKS += HOST_CCACHE_DO_INITIAL_SETUP endif $(eval $(host-autotools-package)) ifeq ($(BR2_CCACHE),y) ccache-stats: host-ccache $(Q)$(CCACHE) -s ccache-options: host-ccache ifeq ($(CCACHE_OPTIONS),) $(Q)echo "Usage: make ccache-options CCACHE_OPTIONS=\"opts\"" $(Q)echo "where 'opts' corresponds to one or more valid ccache options" \ "(see ccache help text below)" $(Q)echo endif $(Q)$(CCACHE) $(CCACHE_OPTIONS) endif ================================================ FILE: package/ccid/Config.in ================================================ config BR2_PACKAGE_CCID bool "ccid" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb depends on BR2_USE_MMU # pcsc-lite depends on !BR2_STATIC_LIBS # pcsc-lite select BR2_PACKAGE_PCSC_LITE select BR2_PACKAGE_LIBUSB help PC/SC driver for USB CCID smart card readers https://ccid.apdu.fr/ comment "ccid needs a toolchain w/ threads, dynamic library, gcc >= 4.9" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/ccid/ccid.hash ================================================ # Locally computed sha256 e6f7645b59a9a2844eb4b1a7eff512960d7f04a4654af02f7fd2f8aded5db40a ccid-1.4.34.tar.bz2 sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING ================================================ FILE: package/ccid/ccid.mk ================================================ ################################################################################ # # ccid # ################################################################################ CCID_VERSION = 1.4.34 CCID_SOURCE = ccid-$(CCID_VERSION).tar.bz2 CCID_SITE = https://ccid.apdu.fr/files CCID_LICENSE = LGPL-2.1+ CCID_LICENSE_FILES = COPYING CCID_INSTALL_STAGING = YES CCID_DEPENDENCIES = pcsc-lite host-pkgconf libusb CCID_CONF_OPTS = --enable-usbdropdir=/usr/lib/pcsc/drivers ifeq ($(BR2_PACKAGE_HAS_UDEV),y) define CCID_INSTALL_UDEV_RULES if test -d $(TARGET_DIR)/etc/udev/rules.d ; then \ cp $(@D)/src/92_pcscd_ccid.rules $(TARGET_DIR)/etc/udev/rules.d/ ; \ fi; endef CCID_POST_INSTALL_TARGET_HOOKS += CCID_INSTALL_UDEV_RULES endif $(eval $(autotools-package)) ================================================ FILE: package/ccrypt/Config.in ================================================ config BR2_PACKAGE_CCRYPT bool "ccrypt" help ccrypt is a utility for encrypting and decrypting files and streams. http://ccrypt.sourceforge.net/ ================================================ FILE: package/ccrypt/ccrypt.hash ================================================ # Locally computed: sha256 b19c47500a96ee5fbd820f704c912f6efcc42b638c0a6aa7a4e3dc0a6b51a44f ccrypt-1.11.tar.gz sha256 d48d3af3cf27b32106ee3418c7c892cae745ece26cd909e72aa59b08e3f9c93d COPYING ================================================ FILE: package/ccrypt/ccrypt.mk ================================================ ################################################################################ # # ccrypt # ################################################################################ CCRYPT_VERSION = 1.11 CCRYPT_SITE = http://ccrypt.sourceforge.net/download/$(CCRYPT_VERSION) CCRYPT_LICENSE = GPL-2.0+ CCRYPT_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/cctz/Config.in ================================================ config BR2_PACKAGE_CCTZ bool "cctz" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 select BR2_TARGET_TZ_INFO # runtime dependency help CCTZ is a C++ library for translating between absolute and civil times using the rules of a time zone. https://github.com/google/cctz if BR2_PACKAGE_CCTZ config BR2_PACKAGE_CCTZ_INSTALL_TOOLS bool "Install tools" help This option allows installing CCTZ tools. config BR2_PACKAGE_CCTZ_INSTALL_EXAMPLES bool "Install example programs" help This option allows installing CCTZ example programs. endif comment "cctz needs a toolchain w/ C++, threads, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/cctz/cctz.hash ================================================ # locally computed sha256 8615b20d4e33e02a271c3b93a3b208e3d7d5d66880f5f6208b03426e448f32db cctz-2.3.tar.gz sha256 c79a7fea0e3cac04cd43f20e7b648e5a0ff8fa5344e644b0ee09ca1162b62747 LICENSE.txt ================================================ FILE: package/cctz/cctz.mk ================================================ ################################################################################ # # cctz # ################################################################################ CCTZ_VERSION = 2.3 CCTZ_SITE = $(call github,google,cctz,v$(CCTZ_VERSION)) CCTZ_LICENSE = Apache-2.0 CCTZ_LICENSE_FILES = LICENSE.txt CCTZ_INSTALL_STAGING = YES CCTZ_CONF_OPTS = -DBUILD_TESTING=OFF ifeq ($(BR2_PACKAGE_CCTZ_INSTALL_TOOLS),y) CCTZ_CONF_OPTS += -DBUILD_TOOLS=ON else CCTZ_CONF_OPTS += -DBUILD_TOOLS=OFF endif ifeq ($(BR2_PACKAGE_CCTZ_INSTALL_EXAMPLES),y) CCTZ_CONF_OPTS += -DBUILD_EXAMPLES=ON else CCTZ_CONF_OPTS += -DBUILD_EXAMPLES=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/cdrkit/0001-no-rcmd.patch ================================================ [PATCH] fix build with uClibc cdrkit unconditionally enables code using rcmd(3), which isn't available on uClibc. Signed-off-by: Peter Korsgaard --- include/xconfig.h.in | 1 - 1 file changed, 1 deletion(-) Index: cdrkit-1.1.10/include/xconfig.h.in =================================================================== --- cdrkit-1.1.10.orig/include/xconfig.h.in +++ cdrkit-1.1.10/include/xconfig.h.in @@ -187,7 +187,6 @@ * they are placed before the large file tests. */ -#define HAVE_RCMD 1 /* rcmd() is present in libc/libsocket */ #define HAVE_SOCKET 1 /* socket() is present in libc/libsocket */ #define HAVE_SOCKETPAIR 1 /* socketpair() is present in libc/libsocket */ #define HAVE_GETSERVBYNAME 1 /* getservbyname() is present in libc/libsocket */ ================================================ FILE: package/cdrkit/0002-define-__THROW-to-avoid-build-issue-with-musl.patch ================================================ From 9454ef47db30caa4359766c8730d9d92f65c64f7 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sat, 8 Aug 2015 22:58:57 +0200 Subject: [PATCH] define __THROW to avoid build issue with musl Fixes: http://autobuild.buildroot.net/results/d27/d2781e70b04a207e2e9397d888032294c7285034/build-end.log Signed-off-by: Romain Naour --- genisoimage/sha256.h | 4 ++++ genisoimage/sha512.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/genisoimage/sha256.h b/genisoimage/sha256.h index e7f4cb9..bcae7ef 100644 --- a/genisoimage/sha256.h +++ b/genisoimage/sha256.h @@ -29,6 +29,10 @@ #include #include +/* define __THROW to avoid build issue when it's not available from the libc */ +#ifndef __THROW +# define __THROW +#endif /* Structure to save state of computation between the single steps. */ struct sha256_ctx diff --git a/genisoimage/sha512.h b/genisoimage/sha512.h index 7298355..8cee8b0 100644 --- a/genisoimage/sha512.h +++ b/genisoimage/sha512.h @@ -29,6 +29,10 @@ #include #include +/* define __THROW to avoid build issue when it's not available from the libc */ +#ifndef __THROW +# define __THROW +#endif /* Structure to save state of computation between the single steps. */ struct sha512_ctx -- 2.4.3 ================================================ FILE: package/cdrkit/0003-Add-extern-to-char-outfile-declaration-to-fix-build-.patch ================================================ From eabcc8a6e39dc3c28faee3e04aa56cc65a38d65a Mon Sep 17 00:00:00 2001 From: Urja Rannikko Date: Sun, 19 Jul 2020 20:28:27 +0300 Subject: [PATCH] Add extern to char* outfile declaration to fix build with gcc 10 Without this linking fails with a rather long spew of "multiple definition of `outfile'". Signed-off-by: Urja Rannikko --- genisoimage/genisoimage.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/genisoimage/genisoimage.h b/genisoimage/genisoimage.h index bbedfb0..82c859b 100644 --- a/genisoimage/genisoimage.h +++ b/genisoimage/genisoimage.h @@ -376,7 +376,7 @@ extern int use_fileversion; extern int split_SL_component; extern int split_SL_field; extern char *trans_tbl; -char *outfile; +extern char *outfile; #define JMAX 64 /* maximum Joliet file name length (spec) */ #define JLONGMAX 103 /* out of spec Joliet file name length */ -- 2.27.0 ================================================ FILE: package/cdrkit/Config.in ================================================ config BR2_PACKAGE_CDRKIT bool "cdrkit" depends on BR2_USE_MMU # fork # Needed for libbz select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_LIBCAP select BR2_PACKAGE_ZLIB help cdrkit is a suite of programs for recording CDs and DVDs, blanking CD-RW media, creating ISO-9660 filesystem images, extracting audio CD data, and more. http://www.cdrkit.org/ ================================================ FILE: package/cdrkit/cdrkit.hash ================================================ # From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/c/cdrkit/cdrkit_1.1.11-3.dsc sha256 d1c030756ecc182defee9fe885638c1785d35a2c2a297b4604c0e0dcc78e47da cdrkit_1.1.11.orig.tar.gz # locally computed sha256 90daae00475a992a367da5b0658469a5d1c4449dbbe964c5b7246e1aec92f491 COPYING ================================================ FILE: package/cdrkit/cdrkit.mk ================================================ ################################################################################ # # cdrkit # ################################################################################ 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 = GPL-2.0 CDRKIT_LICENSE_FILES = COPYING ifeq ($(BR2_ENDIAN),"BIG") CDRKIT_CONF_OPTS += -DBITFIELDS_HTOL=1 else CDRKIT_CONF_OPTS += -DBITFIELDS_HTOL=0 endif ifeq ($(BR2_PACKAGE_FILE),y) CDRKIT_DEPENDENCIES += host-pkgconf file CDRKIT_CONF_OPTS += \ -DUSE_MAGIC=ON \ -DEXTRA_LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libmagic`" else CDRKIT_CONF_OPTS += -DUSE_MAGIC=OFF endif $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/cegui/0001-XMLParser.cpp-include-string.h.patch ================================================ From b98ed87225fa3c0f156b0798ca5c285d8fa8fac1 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 15 Jun 2021 07:27:41 +0200 Subject: [PATCH] XMLParser.cpp: include string.h Include string.h to avoid the following build failure: /home/buildroot/autobuild/run/instance-3/output-1/build/cegui-00b4e1fe174da53b7ed726ab5970ba51bd5b5ee0/cegui/src/XMLParserModules/RapidXML/XMLParser.cpp:73:5: error: 'memcpy' was not declared in this scope 73 | memcpy(buf, source.getDataPtr(), size); | ^~~~~~ Fixes: - http://autobuild.buildroot.org/results/1cb09e5f52435efc505c61707b2d5d2ee871524b Signed-off-by: Fabrice Fontaine Upstream: 628f7edf4b420f752f1965ea11e5e747e3ff93b0 Signed-off-by: Thomas Petazzoni --- cegui/src/XMLParserModules/RapidXML/XMLParser.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cegui/src/XMLParserModules/RapidXML/XMLParser.cpp b/cegui/src/XMLParserModules/RapidXML/XMLParser.cpp index 810ea6bbf..59822fc80 100644 --- a/cegui/src/XMLParserModules/RapidXML/XMLParser.cpp +++ b/cegui/src/XMLParserModules/RapidXML/XMLParser.cpp @@ -38,6 +38,8 @@ #include "CEGUI/Logger.h" #include "CEGUI/Exceptions.h" +#include + // Start of CEGUI namespace section namespace CEGUI { -- 2.31.1 ================================================ FILE: package/cegui/Config.in ================================================ comment "cegui needs a toolchain w/ C++, threads, dynamic library, wchar, gcc >= 5" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \ || BR2_STATIC_LIBS || !BR2_USE_WCHAR \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_5 config BR2_PACKAGE_CEGUI bool "cegui" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++11 PR59987 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR select BR2_PACKAGE_GLM select BR2_PACKAGE_LIBGLFW if BR2_PACKAGE_HAS_LIBGL # SampleBrowser dependency select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Crazy Eddie's GUI System is a free library providing windowing and widgets for graphics APIs / engines where such functionality is not natively available, or severely lacking. The library is object orientated, written in C++, and targeted at games developers who should be spending their time creating great games, not building GUI sub-systems! http://www.cegui.org.uk/ ================================================ FILE: package/cegui/cegui.hash ================================================ # Locally computed: sha256 5b6f9e209e8a29b2f30d6aef92efd125c8bedaab5be04b562208be51e5e7f04e cegui-00b4e1fe174da53b7ed726ab5970ba51bd5b5ee0.tar.gz sha256 cc869e2ece8ad039f6d7fd17259db4ea0ae0a502d02a1bb506c0168deb12e40d COPYING ================================================ FILE: package/cegui/cegui.mk ================================================ ################################################################################ # # cegui # ################################################################################ CEGUI_VERSION = 00b4e1fe174da53b7ed726ab5970ba51bd5b5ee0 CEGUI_SITE = $(call github,cegui,cegui,$(CEGUI_VERSION)) CEGUI_LICENSE = MIT CEGUI_LICENSE_FILES = COPYING CEGUI_INSTALL_STAGING = YES CEGUI_CONF_OPTS = \ -DCEGUI_HAS_MINIZIP_RESOURCE_PROVIDER=OFF \ -DCEGUI_BUILD_RENDERER_IRRLICHT=OFF \ -DCEGUI_BUILD_RENDERER_OGRE=OFF \ -DCEGUI_BUILD_RENDERER_OPENGLES=OFF \ -DCEGUI_BUILD_XMLPARSER_XERCES=OFF \ -DCEGUI_USE_FRIBIDI=OFF \ -DCEGUI_SAMPLES_ENABLED=OFF \ -DCEGUI_BUILD_APPLICATION_TEMPLATES=OFF \ -DCEGUI_BUILD_PYTHON_MODULES_SWIG=OFF CEGUI_DEPENDENCIES = glm \ $(if $(BR2_PACKAGE_LIBGLFW),libglfw) \ $(if $(BR2_PACKAGE_HAS_LIBGL),libgl) \ $(if $(BR2_PACKAGE_HAS_LIBGLES),libgles) \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) # libepoxy support cannot be enabled together with libglew ifeq ($(BR2_PACKAGE_LIBGLEW)$(BR2_PACKAGE_LIBGLU),yy) CEGUI_DEPENDENCIES += libglew libglu CEGUI_CONF_OPTS += -DCEGUI_USE_GLEW=ON -DCEGUI_USE_EPOXY=OFF \ -DCEGUI_BUILD_RENDERER_OPENGL=ON \ -DCEGUI_BUILD_RENDERER_OPENGL3=ON else ifeq ($(BR2_PACKAGE_LIBEPOXY),y) CEGUI_DEPENDENCIES += libepoxy # old OpenGL renderer module is only supported using GLEW CEGUI_CONF_OPTS += -DCEGUI_USE_EPOXY=ON -DCEGUI_USE_GLEW=OFF \ -DCEGUI_BUILD_RENDERER_OPENGL=OFF \ -DCEGUI_BUILD_RENDERER_OPENGL3=ON else CEGUI_CONF_OPTS += -DCEGUI_USE_EPOXY=OFF -DCEGUI_USE_GLEW=OFF \ -DCEGUI_BUILD_RENDERER_OPENGL=OFF \ -DCEGUI_BUILD_RENDERER_OPENGL3=OFF endif ifeq ($(BR2_PACKAGE_EXPAT),y) CEGUI_DEPENDENCIES += expat CEGUI_CONF_OPTS += -DCEGUI_BUILD_XMLPARSER_EXPAT=ON else CEGUI_CONF_OPTS += -DCEGUI_BUILD_XMLPARSER_EXPAT=OFF endif ifeq ($(BR2_PACKAGE_SDL2)$(BR2_PACKAGE_SDL2_IMAGE),yy) CEGUI_DEPENDENCIES += sdl2 sdl2_image CEGUI_CONF_OPTS += -DCEGUI_BUILD_IMAGECODEC_SDL2=ON else CEGUI_CONF_OPTS += -DCEGUI_BUILD_IMAGECODEC_SDL2=OFF endif ifeq ($(BR2_PACKAGE_PCRE),y) CEGUI_DEPENDENCIES += pcre CEGUI_CONF_OPTS += -DCEGUI_HAS_PCRE_REGEX=ON else CEGUI_CONF_OPTS += -DCEGUI_HAS_PCRE_REGEX=OFF endif ifeq ($(BR2_PACKAGE_FREETYPE),y) CEGUI_DEPENDENCIES += freetype CEGUI_CONF_OPTS += -DCEGUI_HAS_FREETYPE=ON else CEGUI_CONF_OPTS += -DCEGUI_HAS_FREETYPE=OFF endif ifeq ($(BR2_PACKAGE_LIBXML2),y) CEGUI_DEPENDENCIES += libxml2 CEGUI_CONF_OPTS += -DCEGUI_BUILD_XMLPARSER_LIBXML2=ON else CEGUI_CONF_OPTS += -DCEGUI_BUILD_XMLPARSER_LIBXML2=OFF endif ifeq ($(BR2_PACKAGE_RAPIDXML),y) CEGUI_DEPENDENCIES += rapidxml CEGUI_CONF_OPTS += -DCEGUI_BUILD_XMLPARSER_RAPIDXML=ON else CEGUI_CONF_OPTS += -DCEGUI_BUILD_XMLPARSER_RAPIDXML=OFF endif ifeq ($(BR2_PACKAGE_TINYXML),y) CEGUI_DEPENDENCIES += tinyxml CEGUI_CONF_OPTS += -DCEGUI_BUILD_XMLPARSER_TINYXML=ON else CEGUI_CONF_OPTS += -DCEGUI_BUILD_XMLPARSER_TINYXML=OFF endif ifeq ($(BR2_PACKAGE_LIBFREEIMAGE),y) CEGUI_DEPENDENCIES += libfreeimage CEGUI_CONF_OPTS += -DCEGUI_BUILD_IMAGECODEC_FREEIMAGE=ON else CEGUI_CONF_OPTS += -DCEGUI_BUILD_IMAGECODEC_FREEIMAGE=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/cereal/0001-Store-a-copy-of-each-serialized-shared_ptr-within-the-archive.patch ================================================ From f27c12d491955c94583512603bf32c4568f20929 Mon Sep 17 00:00:00 2001 From: Michael Walz Date: Tue, 2 Feb 2021 00:50:29 +0100 Subject: [PATCH] Store a copy of each serialized shared_ptr within the archive to prevent the shared_ptr to be freed to early. (#667) The archives use the memory address pointed by the shared_ptr as a unique id which must not be reused during lifetime of the archive. Therefore, the archives stores a copy of it. This problem was also reported as CVE-2020-11105. [Retrieved from: https://github.com/USCiLab/cereal/commit/f27c12d491955c94583512603bf32c4568f20929] Signed-off-by: Fabrice Fontaine --- include/cereal/cereal.hpp | 13 +++++++++++-- include/cereal/types/memory.hpp | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/include/cereal/cereal.hpp b/include/cereal/cereal.hpp index 99bed9d6..f0d15e8b 100644 --- a/include/cereal/cereal.hpp +++ b/include/cereal/cereal.hpp @@ -369,12 +369,17 @@ namespace cereal point to the same data. @internal - @param addr The address (see shared_ptr get()) pointed to by the shared pointer + @param sharedPointer The shared pointer itself (the adress is taked via get()). + The archive takes a copy to prevent the memory location to be freed + as long as the address is used as id. This is needed to prevent CVE-2020-11105. @return A key that uniquely identifies the pointer */ - inline std::uint32_t registerSharedPointer( void const * addr ) + inline std::uint32_t registerSharedPointer(const std::shared_ptr& sharedPointer) { + void const * addr = sharedPointer.get(); + // Handle null pointers by just returning 0 if(addr == 0) return 0; + itsSharedPointerStorage.push_back(sharedPointer); auto id = itsSharedPointerMap.find( addr ); if( id == itsSharedPointerMap.end() ) @@ -645,6 +650,10 @@ namespace cereal //! Maps from addresses to pointer ids std::unordered_map itsSharedPointerMap; + //! Copy of shared pointers used in #itsSharedPointerMap to make sure they are kept alive + // during lifetime of itsSharedPointerMap to prevent CVE-2020-11105. + std::vector> itsSharedPointerStorage; + //! The id to be given to the next pointer std::uint32_t itsCurrentPointerId; diff --git a/include/cereal/types/memory.hpp b/include/cereal/types/memory.hpp index 59e9da9b..cac1f334 100644 --- a/include/cereal/types/memory.hpp +++ b/include/cereal/types/memory.hpp @@ -263,7 +263,7 @@ namespace cereal { auto & ptr = wrapper.ptr; - uint32_t id = ar.registerSharedPointer( ptr.get() ); + uint32_t id = ar.registerSharedPointer( ptr ); ar( CEREAL_NVP_("id", id) ); if( id & detail::msb_32bit ) ================================================ FILE: package/cereal/Config.in ================================================ config BR2_PACKAGE_CEREAL bool "cereal" depends on BR2_USE_WCHAR depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 help cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML or JSON. cereal was designed to be fast, light-weight, and easy to extend - it has no external dependencies and can be easily bundled with other code or used standalone. https://github.com/USCiLab/cereal comment "cereal needs a toolchain w/ C++, gcc >= 4.7, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/cereal/cereal.hash ================================================ # Locally computed sha256 329ea3e3130b026c03a4acc50e168e7daff4e6e661bc6a7dfec0d77b570851d5 cereal-1.3.0.tar.gz sha256 18fd7618c44c9fe28b5f54cd19747df3c0472ed33e8507fea571e2acf6e72f34 LICENSE sha256 d9e523e8736ac0c68064c7ad312a222f285e82bf6c96a1b1c2cadaffff9fc64f include/cereal/external/base64.hpp sha256 7fb69c707f0ed3a8b59b8f949f0928a9cc06d67bc15d599094693703ff70ea26 include/cereal/external/rapidjson/rapidjson.h sha256 794bf3b2ecf5cf0c740ac6c524d66ce6284c4b1de1f983d21a242b8abbeb9720 include/cereal/external/rapidxml/license.txt ================================================ FILE: package/cereal/cereal.mk ================================================ ################################################################################ # # cereal # ################################################################################ CEREAL_VERSION = 1.3.0 CEREAL_SITE = $(call github,USCiLab,cereal,v$(CEREAL_VERSION)) # For licensing, see also: https://github.com/USCiLab/cereal/issues/609 CEREAL_LICENSE = BSD-3-Clause (cereal), Zlib (base64.hpp), MIT (rapidjson), BSL-1.0 or MIT (rapidxml) CEREAL_LICENSE_FILES = LICENSE include/cereal/external/base64.hpp include/cereal/external/rapidjson/rapidjson.h include/cereal/external/rapidxml/license.txt CEREAL_CPE_ID_VENDOR = usc CEREAL_INSTALL_STAGING = YES CEREAL_INSTALL_TARGET = NO CEREAL_CONF_OPTS = \ -DTHREAD_SAFE=ON \ -DJUST_INSTALL_CEREAL=ON # 0001-Store-a-copy-of-each-serialized-shared_ptr-within-the-archive.patch CEREAL_IGNORE_CVES += CVE-2020-11105 $(eval $(cmake-package)) ================================================ FILE: package/cgic/0001-prepare_makefile.patch ================================================ Makefile: fix for cross-compilation Probably-Signed-off-by: Dave Bender [yann.morin.1998@free.fr: patch was made by Dave, but he forgot his SoB line, so I added it] Signed-off-by: "Yann E. MORIN" diff -rupN cgic206/Makefile cgic206-br/Makefile --- cgic206/Makefile 2014-03-16 18:17:11.000000000 -0400 +++ cgic206-br/Makefile 2015-01-16 11:18:03.714874000 -0500 @@ -1,15 +1,14 @@ -CFLAGS=-g -Wall -CC=gcc -AR=ar -RANLIB=ranlib LIBS=-L./ -lcgic all: libcgic.a cgictest.cgi capture install: libcgic.a - cp libcgic.a /usr/local/lib - cp cgic.h /usr/local/include - @echo libcgic.a is in /usr/local/lib. cgic.h is in /usr/local/include. + cp libcgic.a $(PREFIX)/usr/lib + cp cgic.h $(PREFIX)/usr/include + @echo libcgic.a is in $(PREFIX)/usr/lib. cgic.h is in $(PREFIX)/usr/include. + +cgi.o: cgic.c cgic.h + $(CC) $(CFLAGS) cgic.c -o cgic.o libcgic.a: cgic.o cgic.h rm -f libcgic.a @@ -19,10 +18,10 @@ libcgic.a: cgic.o cgic.h #mingw32 and cygwin users: replace .cgi with .exe cgictest.cgi: cgictest.o libcgic.a - gcc cgictest.o -o cgictest.cgi ${LIBS} + $(CC) cgictest.o -o cgictest.cgi ${LIBS} capture: capture.o libcgic.a - gcc capture.o -o capture ${LIBS} + $(CC) capture.o -o capture ${LIBS} clean: rm -f *.o *.a cgictest.cgi capture ================================================ FILE: package/cgic/0002-file_enhancements.patch ================================================ Create better temporary files. Probably-Signed-off-by: Dave Bender [yann.morin.1998@free.fr: patch was made by Dave, but he forgot his SoB line, so I added it; split the patch in two independent fixes] Signed-off-by: "Yann E. MORIN" diff -rupN cgic206/cgic.c cgic206_tempfile/cgic.c --- cgic206/cgic.c 2014-03-16 18:17:11.000000000 -0400 +++ cgic206_tempfile/cgic.c 2015-01-21 11:58:45.436384908 -0500 @@ -22,6 +22,8 @@ #define CGICDEBUGEND #endif /* CGICDEBUG */ +#define _GNU_SOURCE + #include #include #include @@ -34,11 +36,11 @@ #include /* cgic 2.01 */ -#include #else #include #endif /* WIN32 */ +#include #include "cgic.h" #define cgiStrEq(a, b) (!strcmp((a), (b))) @@ -636,16 +638,17 @@ static cgiParseResultType getTempFileNam window between the file's creation and the chmod call (glibc 2.0.6 and lower might otherwise have allowed this). */ + mode_t umode; int outfd; + umode = umask(0600); strcpy(tfileName, cgicTempDir "/cgicXXXXXX"); - outfd = mkstemp(tfileName); + outfd = mkostemp(tfileName, O_CLOEXEC | O_NOATIME); + umask(umode); if (outfd == -1) { return cgiParseIO; } - close(outfd); - /* Fix the permissions */ - if (chmod(tfileName, 0600) != 0) { - unlink(tfileName); + + if (close(outfd)) { return cgiParseIO; } #else ================================================ FILE: package/cgic/0003-restore-cgiFormFileGetTempfileName.patch ================================================ Restore lost functionality Probably-Signed-off-by: Dave Bender [yann.morin.1998@free.fr: patch was made by Dave, but he forgot his SoB line, so I added it] Signed-off-by: "Yann E. MORIN" diff -rupN cgic206/cgic.c cgic206_tempfile/cgic.c --- cgic206/cgic.c 2014-03-16 18:17:11.000000000 -0400 +++ cgic206_tempfile/cgic.c 2015-01-21 11:58:45.436384908 -0500 @@ -1278,6 +1278,20 @@ cgiFormResultType cgiFormFileContentType } } +const char* cgiFormFileGetTempfileName( + char* name) +{ + cgiFormEntry *e; + e = cgiFormEntryFindFirst(name); + if (!e) { + return NULL; + } else if (!strlen(e->tfileName)) { + return NULL; + } else { + return e->tfileName; + } +} + cgiFormResultType cgiFormFileSize( char *name, int *sizeP) { diff -rupN cgic206/cgic.h cgic206_tempfile/cgic.h --- cgic206/cgic.h 2014-03-16 18:17:11.000000000 -0400 +++ cgic206_tempfile/cgic.h 2015-01-21 11:53:02.915148026 -0500 @@ -141,6 +141,8 @@ extern cgiFormResultType cgiFormRadio( char *name, char **valuesText, int valuesTotal, int *result, int defaultV); +extern const char* cgiFormFileGetTempfileName(char* name); + /* The paths returned by this function are the original names of files as reported by the uploading web browser and shoult NOT be blindly assumed to be "safe" names for server-side use! */ ================================================ FILE: package/cgic/Config.in ================================================ config BR2_PACKAGE_CGIC bool "cgic" help C CGI library http://www.boutell.com/cgic/ ================================================ FILE: package/cgic/cgic.hash ================================================ # Locally computed sha256 1e8834642a4b89528bb7bde2f287e133c6b07e210e68681a34137c436d59d320 cgic207.tar.gz sha256 6a7de92593d64dbf7630d8f66f97e04a899769bef1e055f2434bc06b87b9de62 license.txt ================================================ FILE: package/cgic/cgic.mk ================================================ ################################################################################ # # cgic # ################################################################################ CGIC_VERSION = 2.07 CGIC_SOURCE = cgic207.tar.gz CGIC_SITE = http://boutell.com/cgic CGIC_LICENSE = Custom CGIC_LICENSE_FILES = license.txt # Installs only a static library and a header file CGIC_INSTALL_STAGING = YES CGIC_INSTALL_TARGET = NO define CGIC_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) libcgic.a endef define CGIC_INSTALL_STAGING_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) PREFIX=$(STAGING_DIR) -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/cgilua/Config.in ================================================ config BR2_PACKAGE_CGILUA bool "cgilua" select BR2_PACKAGE_LUAFILESYSTEM # runtime help CGILua is a tool for creating dynamic HTML pages and manipulating input data from Web forms. http://keplerproject.github.com/cgilua ================================================ FILE: package/cgilua/cgilua.hash ================================================ # computed by luarocks/buildroot sha256 7bfb88c483136bca9b814316d7f9ff581a805d68d144c1eebdfda3e8dfb5eb3a cgilua-6.0.2-0.src.rock sha256 b82f9b13f9b1a1387f53203a625612914630b520377731b0aab7ce93ad2b18c4 cgilua/doc/us/license.html ================================================ FILE: package/cgilua/cgilua.mk ================================================ ################################################################################ # # cgilua # ################################################################################ CGILUA_VERSION = 6.0.2-0 CGILUA_SUBDIR = cgilua CGILUA_LICENSE = MIT CGILUA_LICENSE_FILES = $(CGILUA_SUBDIR)/doc/us/license.html $(eval $(luarocks-package)) ================================================ FILE: package/cgroupfs-mount/Config.in ================================================ 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 ================================================ FILE: package/cgroupfs-mount/S30cgroupfs ================================================ #!/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 ================================================ FILE: package/cgroupfs-mount/cgroupfs-mount.hash ================================================ # Locally calculated sha256 d6c8aff7af59c7d0082ee3018c97f73b0421e81a49bb28ad9f66a36da5cd6ec7 cgroupfs-mount-1.4.tar.gz sha256 e52f47a650734f70c40c8fd9318f85e42777bf3fba7ff1dfb72f845bb417f7e6 debian/copyright ================================================ FILE: package/cgroupfs-mount/cgroupfs-mount.mk ================================================ ################################################################################ # # cgroupfs-mount # ################################################################################ CGROUPFS_MOUNT_VERSION = 1.4 CGROUPFS_MOUNT_SITE = $(call github,tianon,cgroupfs-mount,$(CGROUPFS_MOUNT_VERSION)) CGROUPFS_MOUNT_LICENSE = GPL-3.0+ CGROUPFS_MOUNT_LICENSE_FILES = debian/copyright CGROUPFS_MOUNT_CPE_ID_VENDOR = cgroupfs-mount_project 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)) ================================================ FILE: package/chartjs/Config.in ================================================ config BR2_PACKAGE_CHARTJS bool "chartjs" help Chart.js, a simple yet flexible JavaScript charting library for designers & developers https://www.chartjs.org/ ================================================ FILE: package/chartjs/chartjs.hash ================================================ # Locally computed: sha256 9ef3697e279a585c79730f35dba16ad4e24ddeed49a150adb341c31f191fb78e chartjs-2.9.4.tar.gz sha256 7b43caae91f31b18dc81fae6e0f7aa1acbecaa6d84e3249905cbe15308307d67 LICENSE.md ================================================ FILE: package/chartjs/chartjs.mk ================================================ ################################################################################ # # chartjs # ################################################################################ CHARTJS_VERSION = 2.9.4 CHARTJS_SITE = $(call github,chartjs,Chart.js,v$(CHARTJS_VERSION)) CHARTJS_LICENSE = MIT CHARTJS_LICENSE_FILES = LICENSE.md CHARTJS_CPE_ID_VENDOR = chartjs CHARTJS_CPE_ID_PRODUCT = chart.js define CHARTJS_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/dist/Chart.min.css \ $(TARGET_DIR)/var/www/chartjs/css/Chart.css $(INSTALL) -m 0644 -D $(@D)/dist/Chart.min.js \ $(TARGET_DIR)/var/www/chartjs/js/Chart.js $(INSTALL) -m 0644 -D $(@D)/dist/Chart.bundle.min.js \ $(TARGET_DIR)/var/www/chartjs/js/Chart.bundle.js endef $(eval $(generic-package)) ================================================ FILE: package/check/Config.in ================================================ config BR2_PACKAGE_CHECK bool "check" help Check is a unit testing framework for C. https://libcheck.github.io/check/ ================================================ FILE: package/check/check.hash ================================================ # Locally computed sha256 a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a check-0.15.2.tar.gz # License files, locally calculated sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING.LESSER ================================================ FILE: package/check/check.mk ================================================ ################################################################################ # # check # ################################################################################ CHECK_VERSION = 0.15.2 CHECK_SITE = https://github.com/libcheck/check/releases/download/$(CHECK_VERSION) CHECK_INSTALL_STAGING = YES CHECK_DEPENDENCIES = host-pkgconf CHECK_LICENSE = LGPL-2.1+ CHECK_LICENSE_FILES = COPYING.LESSER # Having checkmk in the target makes no sense define CHECK_REMOVE_CHECKMK rm -f $(TARGET_DIR)/usr/bin/checkmk endef CHECK_POST_INSTALL_TARGET_HOOKS += CHECK_REMOVE_CHECKMK $(eval $(autotools-package)) ================================================ FILE: package/checkpolicy/Config.in ================================================ config BR2_PACKAGE_CHECKPOLICY bool "checkpolicy" depends on BR2_TOOLCHAIN_HAS_THREADS # libselinux depends on !BR2_STATIC_LIBS # libselinux select BR2_PACKAGE_LIBSELINUX select BR2_PACKAGE_FLEX help checkpolicy is the SELinux policy compiler. It uses libsepol to generate the binary policy. checkpolicy uses the static libsepol since it deals with low level details of the policy that have not been encapsulated/abstracted by a proper shared library interface. http://selinuxproject.org/page/Main_Page comment "checkpolicy needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/checkpolicy/Config.in.host ================================================ config BR2_PACKAGE_HOST_CHECKPOLICY bool "host checkpolicy" help checkpolicy is the SELinux policy compiler. It uses libsepol to generate the binary policy. checkpolicy uses the static libsepol since it deals with low level details of the policy that have not been encapsulated/abstracted by a proper shared library interface. http://selinuxproject.org/page/Main_Page ================================================ FILE: package/checkpolicy/checkpolicy.hash ================================================ # https://github.com/SELinuxProject/selinux/wiki/Releases sha256 9b1c81fa86fe3867842164448d90c8e7ea94b2987497809c65d4caa87a5c5bc8 checkpolicy-3.2.tar.gz # Hash for license file sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/checkpolicy/checkpolicy.mk ================================================ ################################################################################ # # checkpolicy # ################################################################################ CHECKPOLICY_VERSION = 3.2 CHECKPOLICY_SITE = https://github.com/SELinuxProject/selinux/releases/download/$(CHECKPOLICY_VERSION) CHECKPOLICY_LICENSE = GPL-2.0 CHECKPOLICY_LICENSE_FILES = COPYING CHECKPOLICY_DEPENDENCIES = libselinux flex host-flex host-bison CHECKPOLICY_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS) \ LEX="$(HOST_DIR)/bin/flex" \ YACC="$(HOST_DIR)/bin/bison -y" # DESTDIR is used at build time to find libselinux define CHECKPOLICY_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(CHECKPOLICY_MAKE_OPTS) DESTDIR=$(STAGING_DIR) endef define CHECKPOLICY_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(CHECKPOLICY_MAKE_OPTS) DESTDIR=$(STAGING_DIR) install endef define CHECKPOLICY_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(CHECKPOLICY_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install endef HOST_CHECKPOLICY_DEPENDENCIES = host-libselinux host-flex host-bison # PREFIX is used at build time to find host-libselinux HOST_CHECKPOLICY_MAKE_OPTS = \ $(HOST_CONFIGURE_OPTS) \ PREFIX=$(HOST_DIR) \ LEX="$(HOST_DIR)/bin/flex" \ YACC="$(HOST_DIR)/bin/bison -y" define HOST_CHECKPOLICY_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_CHECKPOLICY_MAKE_OPTS) endef define HOST_CHECKPOLICY_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_CHECKPOLICY_MAKE_OPTS) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/checksec/Config.in.host ================================================ config BR2_PACKAGE_HOST_CHECKSEC bool "host checksec" help This tool provides a shell script to check the properties of executables (PIE,RELRO,Stack Canaries,Fortify Source). It also has a kernel test mode that can run on target for testing of PaX, ASLR, heap and config hardening. NOTE: when using this tool as a host tool, the tool can offline check a target folder of elf files for hardening features enabled in those elf files. There are other features of this tool, like the kernel test feature that are not functional offline, but require the user to execute in a chroot or on target. https://github.com/slimm609/checksec.sh.git ================================================ FILE: package/checksec/checksec.hash ================================================ # Locally calculated sha256 c5e2a8e188040fc34eb9362084778a2e25f8d1f888e47a2be09efa7cecd9c70d LICENSE.txt sha256 d3c8e80bdd1cee0c2f0e60cb7a8a9482b82f651ea069e3a4453ae9a44072a632 checksec-2.2.2.tar.gz ================================================ FILE: package/checksec/checksec.mk ================================================ ################################################################################ # # checksec # ################################################################################ CHECKSEC_VERSION = 2.2.2 CHECKSEC_SITE = $(call github,slimm609,checksec.sh,$(CHECKSEC_VERSION)) CHECKSEC_LICENSE = BSD-3-Clause CHECKSEC_LICENSE_FILES = LICENSE.txt define HOST_CHECKSEC_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/checksec $(HOST_DIR)/bin/checksec endef $(eval $(host-generic-package)) ================================================ FILE: package/chipmunk/0001-Fix-build-failure-on-musl.patch ================================================ From 231c1fb97785290aaac89ed74d7cb24eaa74b363 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 2 Sep 2018 12:05:22 +0200 Subject: [PATCH] Fix build failure on musl Build fails on: /home/test/autobuild/run/instance-0/output/build/chipmunk-7.0.2/src/cpHastySpace.c:11:24: fatal error: sys/sysctl.h: No such file or directory Indeed, sys/sysctl.h is not available on musl so include this header only if __APPLE__ is defined as sysctlbyname is only used in this case. Fixes: - http://autobuild.buildroot.org/results/e5be2f8eb9315a9054e1c8d854dec37cbb28eed7 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/slembcke/Chipmunk2D/pull/171] --- src/cpHastySpace.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/cpHastySpace.c b/src/cpHastySpace.c index 8dca425..e087df8 100644 --- a/src/cpHastySpace.c +++ b/src/cpHastySpace.c @@ -8,7 +8,9 @@ //#include #ifndef _WIN32 +#ifdef __APPLE__ #include +#endif #include #else #ifndef WIN32_LEAN_AND_MEAN -- 2.17.1 ================================================ FILE: package/chipmunk/Config.in ================================================ comment "chipmunk needs an OpenGL backend" depends on !BR2_PACKAGE_HAS_LIBGL config BR2_PACKAGE_CHIPMUNK bool "chipmunk" depends on BR2_PACKAGE_HAS_LIBGL help Chipmunk2D is a simple, lightweight, fast and portable 2D rigid body physics library written in C. http://chipmunk-physics.net/ ================================================ FILE: package/chipmunk/chipmunk.hash ================================================ # Locally calculated sha256 1e6f093812d6130e45bdf4cb80280cb3c93d1e1833d8cf989d554d7963b7899a Chipmunk-7.0.3.tar.gz # Hash for license file: sha256 109cedb0301cba4e05fa99241f162bdad015c9541ae84b420b0148ac1ea588e2 LICENSE.txt ================================================ FILE: package/chipmunk/chipmunk.mk ================================================ ################################################################################ # # chipmunk # ################################################################################ CHIPMUNK_VERSION = 7.0.3 CHIPMUNK_SITE = https://github.com/slembcke/Chipmunk2D/archive CHIPMUNK_SOURCE = Chipmunk-$(CHIPMUNK_VERSION).tar.gz CHIPMUNK_INSTALL_STAGING = YES CHIPMUNK_LICENSE = MIT CHIPMUNK_LICENSE_FILES = LICENSE.txt CHIPMUNK_DEPENDENCIES = libgl CHIPMUNK_CONF_OPTS = -DBUILD_DEMOS=OFF ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y) CHIPMUNK_CONF_OPTS += -DBUILD_STATIC=ON -DINSTALL_STATIC=ON else CHIPMUNK_CONF_OPTS += -DBUILD_STATIC=OFF -DINSTALL_STATIC=OFF endif ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) CHIPMUNK_CONF_OPTS += -DBUILD_SHARED=ON else CHIPMUNK_CONF_OPTS += -DBUILD_SHARED=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/chirpstack-gateway-bridge/Config.in ================================================ config BR2_PACKAGE_CHIRPSTACK_GATEWAY_BRIDGE bool "chirpstack-gateway-bridge" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS help https://github.com/chirpstack/chirpstack-gateway-bridge ================================================ FILE: package/chirpstack-gateway-bridge/chirpstack-gateway-bridge.hash ================================================ sha256 c2d22950fae583ae70bd8f67fbfc24d6b79242b17c15c766b5e79cfecc70eb55 chirpstack-gateway-bridge-v3.14.2.tar.gz ================================================ FILE: package/chirpstack-gateway-bridge/chirpstack-gateway-bridge.mk ================================================ ################################################################################ # # chirpstack-gateway-bridge # ################################################################################ CHIRPSTACK_GATEWAY_BRIDGE_VERSION = v3.14.2 CHIRPSTACK_GATEWAY_BRIDGE_SITE = $(call github,chirpstack,chirpstack-gateway-bridge,$(CHIRPSTACK_GATEWAY_BRIDGE_VERSION)) CHIRPSTACK_GATEWAY_BRIDGE_LICENSE = MIT CHIRPSTACK_GATEWAY_BRIDGE_LICENSE_FILES = LICENSE CHIRPSTACK_GATEWAY_BRIDGE_LDFLAGS = -s -w -X main.version=$(CHIRPSTACK_GATEWAY_BRIDGE_VERSION) CHIRPSTACK_GATEWAY_BRIDGE_GO_ENV = CGO_ENABLED=0 GOPROXY=https://goproxy.io,direct CHIRPSTACK_GATEWAY_BRIDGE_POST_EXTRACT_HOOKS += CHIRPSTACK_GATEWAY_BRIDGE_INSTALL_DEPS define CHIRPSTACK_GATEWAY_BRIDGE_INSTALL_DEPS (cd $(@D); \ mkdir -p build; \ $(HOST_GO_TARGET_ENV) $(CHIRPSTACK_GATEWAY_BRIDGE_GO_ENV) $(GO_BIN) install -mod=mod golang.org/x/lint/golint; \ $(HOST_GO_TARGET_ENV) $(CHIRPSTACK_GATEWAY_BRIDGE_GO_ENV) $(GO_BIN) install -mod=mod github.com/goreleaser/goreleaser; \ $(HOST_GO_TARGET_ENV) $(CHIRPSTACK_GATEWAY_BRIDGE_GO_ENV) $(GO_BIN) install -mod=mod github.com/goreleaser/nfpm \ ) endef define CHIRPSTACK_GATEWAY_BRIDGE_BUILD_CMDS (cd $(@D); \ mkdir -p build; \ $(HOST_GO_TARGET_ENV) $(CHIRPSTACK_GATEWAY_BRIDGE_GO_ENV) $(GO_BIN) \ build -a -installsuffix cgo -mod=mod -ldflags "$(CHIRPSTACK_GATEWAY_BRIDGE_LDFLAGS)" \ -o build/chirpstack-gateway-bridge cmd/chirpstack-gateway-bridge/main.go \ ) endef define CHIRPSTACK_GATEWAY_BRIDGE_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/build/chirpstack-gateway-bridge $(TARGET_DIR)/usr/bin/chirpstack-gateway-bridge endef $(eval $(golang-package)) ================================================ FILE: package/chocolate-doom/0001-Remove-redundant-demoextend-definition.patch ================================================ From a8fd4b1f563d24d4296c3e8225c8404e2724d4c2 Mon Sep 17 00:00:00 2001 From: Jordan Christiansen Date: Sun, 15 Mar 2020 16:55:33 -0500 Subject: [PATCH] Remove redundant demoextend definition GCC 10 enables -fno-common by default, which causes the linker to fail when there are multple definitions of a global variable. See https://gcc.gnu.org/gcc-10/porting_to.html [Retrieved from: https://github.com/chocolate-doom/chocolate-doom/commit/a8fd4b1f563d24d4296c3e8225c8404e2724d4c2] Signed-off-by: Fabrice Fontaine --- src/hexen/mn_menu.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/hexen/mn_menu.c b/src/hexen/mn_menu.c index 059f45b3e..a97b7fcd1 100644 --- a/src/hexen/mn_menu.c +++ b/src/hexen/mn_menu.c @@ -131,7 +131,6 @@ boolean MenuActive; int InfoType; int messageson = true; boolean mn_SuicideConsole; -boolean demoextend; // from h2def.h // PRIVATE DATA DEFINITIONS ------------------------------------------------ ================================================ FILE: package/chocolate-doom/Config.in ================================================ config BR2_PACKAGE_CHOCOLATE_DOOM bool "chocolate-doom" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # sdl2 select BR2_PACKAGE_SDL2 select BR2_PACKAGE_SDL2_MIXER select BR2_PACKAGE_SDL2_NET help Chocolate Doom is a set of conservative source ports for Doom, Heretic, Hexen and Strife, with a philosophy of preserving the look, feel, and bugs of the vanilla versions of each. http://www.chocolate-doom.org comment "chocolate-doom needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/chocolate-doom/chocolate-doom.hash ================================================ # Locally computed sha256 d435d6177423491d60be706da9f07d3ab4fabf3e077ec2a3fc216e394fcfc8c7 chocolate-doom-3.0.1.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/chocolate-doom/chocolate-doom.mk ================================================ ################################################################################ # # chocolate-doom # ################################################################################ CHOCOLATE_DOOM_VERSION = 3.0.1 CHOCOLATE_DOOM_SITE = http://www.chocolate-doom.org/downloads/$(CHOCOLATE_DOOM_VERSION) CHOCOLATE_DOOM_LICENSE = GPL-2.0+ CHOCOLATE_DOOM_LICENSE_FILES = COPYING CHOCOLATE_DOOM_DEPENDENCIES = host-pkgconf sdl2 sdl2_mixer sdl2_net # Avoid installing desktop entries, icons, etc. CHOCOLATE_DOOM_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-exec CHOCOLATE_DOOM_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) CHOCOLATE_DOOM_CFLAGS += -O0 endif CHOCOLATE_DOOM_CONF_ENV += CFLAGS="$(CHOCOLATE_DOOM_CFLAGS)" ifeq ($(BR2_PACKAGE_LIBPNG),y) CHOCOLATE_DOOM_DEPENDENCIES += libpng CHOCOLATE_DOOM_CONF_OPTS += --with-libpng else CHOCOLATE_DOOM_CONF_OPTS += --without-libpng endif ifeq ($(BR2_PACKAGE_LIBSAMPLERATE),y) CHOCOLATE_DOOM_DEPENDENCIES += libsamplerate CHOCOLATE_DOOM_CONF_OPTS += --with-libsamplerate else CHOCOLATE_DOOM_CONF_OPTS += --without-libsamplerate endif $(eval $(autotools-package)) ================================================ FILE: package/chrony/0001-sys_linux-fix-build-with-older-kernel-headers.patch ================================================ From 5dab78341bd515692f1b9ff8716a911c3ebf9ee1 Mon Sep 17 00:00:00 2001 Message-Id: <5dab78341bd515692f1b9ff8716a911c3ebf9ee1.1611839550.git.baruch@tkos.co.il> From: Baruch Siach Date: Thu, 28 Jan 2021 15:02:40 +0200 Subject: [PATCH] sys_linux: fix build with older kernel headers The renameat2 system call was introduced in kernel version 3.15. Fix build against older headers. Signed-off-by: Baruch Siach --- Upstream status: commit a2372b0c3abfc85d11c1684c0fb6370cc329e5c4 sys_linux.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys_linux.c b/sys_linux.c index 0b24445e173d..202da845edac 100644 --- a/sys_linux.c +++ b/sys_linux.c @@ -547,7 +547,9 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context) SCMP_SYS(readlinkat), SCMP_SYS(rename), SCMP_SYS(renameat), +#ifdef __NR_renameat2 SCMP_SYS(renameat2), +#endif SCMP_SYS(stat), SCMP_SYS(stat64), SCMP_SYS(statfs), -- 2.29.2 ================================================ FILE: package/chrony/Config.in ================================================ config BR2_PACKAGE_CHRONY bool "chrony" depends on BR2_USE_MMU # fork() help Chrony is a pair of programs which are used to maintain the accuracy of the system clock. http://chrony.tuxfamily.org/ config BR2_PACKAGE_CHRONY_DEBUG_LOGGING bool "enable debug logging support" depends on BR2_PACKAGE_CHRONY help Enable support for debug logging output from Chrony when enabled at runtime. If disabled, code for debug logging will not be compiled in. ================================================ FILE: package/chrony/S49chrony ================================================ #!/bin/sh # # Start chrony [ -r /etc/default/chrony ] && . /etc/default/chrony case "$1" in start) printf "Starting chrony: " chronyd $CHRONY_ARGS && echo "OK" || echo "FAIL" ;; stop) printf "Stopping chrony: " killall chronyd && echo "OK" || echo "FAIL" ;; restart|reload) "$0" stop sleep 1 "$0" start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/chrony/chrony.hash ================================================ # From https://listengine.tuxfamily.org/chrony.tuxfamily.org/chrony-announce/2020/10/msg00000.html sha256 be27ea14c55e7a4434b2fa51d53018c7051c42fa6a3198c9aa6a1658bae0c625 chrony-4.0.tar.gz # Locally calculated sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/chrony/chrony.mk ================================================ ################################################################################ # # chrony # ################################################################################ CHRONY_VERSION = 4.0 CHRONY_SITE = http://download.tuxfamily.org/chrony CHRONY_LICENSE = GPL-2.0 CHRONY_LICENSE_FILES = COPYING CHRONY_CPE_ID_VENDOR = tuxfamily CHRONY_SELINUX_MODULES = chronyd CHRONY_DEPENDENCIES = host-pkgconf CHRONY_CONF_OPTS = \ --host-system=Linux \ --host-machine=$(BR2_ARCH) \ --prefix=/usr \ --without-tomcrypt \ $(if $(BR2_PACKAGE_CHRONY_DEBUG_LOGGING),--enable-debug,--disable-debug) ifeq ($(BR2_PACKAGE_LIBCAP),y) CHRONY_DEPENDENCIES += libcap else CHRONY_CONF_OPTS += --without-libcap endif ifeq ($(BR2_PACKAGE_LIBNSS),y) CHRONY_DEPENDENCIES += libnss else CHRONY_CONF_OPTS += --without-nss endif ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) CHRONY_CONF_OPTS += --enable-scfilter CHRONY_DEPENDENCIES += libseccomp else CHRONY_CONF_OPTS += --without-seccomp endif ifeq ($(BR2_PACKAGE_LIBEDIT),y) CHRONY_DEPENDENCIES += libedit else CHRONY_CONF_OPTS += --without-editline --disable-readline endif # If pps-tools is available, build it before so the package can use it # (HAVE_SYS_TIMEPPS_H). ifeq ($(BR2_PACKAGE_PPS_TOOLS),y) CHRONY_DEPENDENCIES += pps-tools endif ifeq ($(BR2_PACKAGE_GNUTLS),y) CHRONY_DEPENDENCIES += gnutls else CHRONY_CONF_OPTS += --without-gnutls endif ifeq ($(BR2_PACKAGE_NETTLE),y) CHRONY_DEPENDENCIES += nettle else CHRONY_CONF_OPTS += --without-nettle endif define CHRONY_CONFIGURE_CMDS cd $(@D) && $(TARGET_CONFIGURE_OPTS) ./configure $(CHRONY_CONF_OPTS) endef define CHRONY_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define CHRONY_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" install endef define CHRONY_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/chrony/S49chrony $(TARGET_DIR)/etc/init.d/S49chrony endef define CHRONY_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/chrony/chrony.service \ $(TARGET_DIR)/usr/lib/systemd/system/chrony.service endef $(eval $(generic-package)) ================================================ FILE: package/chrony/chrony.service ================================================ [Unit] Description=Chrony Network Time Daemon After=syslog.target network.target Conflicts=systemd-timesyncd.service [Service] # Turn off DNSSEC validation for hostname look-ups, since those need the # correct time to work, but we likely won't acquire that without NTP. Let's # break this chicken-and-egg cycle here. Environment=SYSTEMD_NSS_RESOLVE_VALIDATE=0 ExecStart=/usr/sbin/chronyd -n Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/cifs-utils/Config.in ================================================ config BR2_PACKAGE_CIFS_UTILS bool "cifs-utils" # uses fork() depends on BR2_USE_MMU help The in-kernel CIFS filesystem is generally the preferred method for mounting SMB/CIFS shares on Linux. The in-kernel CIFS filesystem relies on a set of user-space tools. That package of tools is called cifs-utils. Although not really part of Samba proper, these tools were originally part of the Samba package. For several reasons, shipping these tools as part of Samba was problematic and it was deemed better to split them off into their own package. http://wiki.samba.org/index.php/LinuxCIFS_utils if BR2_PACKAGE_CIFS_UTILS config BR2_PACKAGE_CIFS_UTILS_SMBTOOLS bool "smbtools" depends on BR2_USE_WCHAR # python3 depends on BR2_TOOLCHAIN_HAS_THREADS # python3 depends on !BR2_STATIC_LIBS # python3 select BR2_PACKAGE_PYTHON3 if !BR2_PACKAGE_PYTHON # runtime help Install the smb tools smbinfo and smb2-quota (python implementations). comment "smbtools needs a toolchain w/ wchar, threads, dynamic library" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS endif ================================================ FILE: package/cifs-utils/cifs-utils.hash ================================================ # Locally calculated after checking pgp signature sha256 43d8786c8613caccfa84913081c1d62bc2409575854cf895b05b48af0863d056 cifs-utils-6.13.tar.bz2 # Hash for license file: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/cifs-utils/cifs-utils.mk ================================================ ################################################################################ # # cifs-utils # ################################################################################ CIFS_UTILS_VERSION = 6.13 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 = GPL-3.0+ CIFS_UTILS_LICENSE_FILES = COPYING CIFS_UTILS_CPE_ID_VENDOR = samba # Missing install-sh in release tarball CIFS_UTILS_AUTORECONF = YES CIFS_UTILS_DEPENDENCIES = host-pkgconf # Let's disable PIE unconditionally. We want PIE to be enabled only by # the global BR2_RELRO_FULL option. CIFS_UTILS_CONF_OPTS = --disable-pie --disable-man # uses C11 code in smbinfo.c and mtab.c CIFS_UTILS_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -std=gnu11" ifeq ($(BR2_PACKAGE_KEYUTILS),y) CIFS_UTILS_DEPENDENCIES += keyutils endif define CIFS_UTILS_NO_WERROR $(SED) 's/-Werror//' $(@D)/Makefile.in endef CIFS_UTILS_POST_PATCH_HOOKS += CIFS_UTILS_NO_WERROR ifeq ($(BR2_PACKAGE_CIFS_UTILS_SMBTOOLS),) define CIFS_UTILS_REMOVE_SMBTOOLS rm -f $(TARGET_DIR)/usr/bin/smbinfo rm -f $(TARGET_DIR)/usr/bin/smb2-quota endef CIFS_UTILS_POST_INSTALL_TARGET_HOOKS += CIFS_UTILS_REMOVE_SMBTOOLS endif $(eval $(autotools-package)) ================================================ FILE: package/circus/Config.in ================================================ config BR2_PACKAGE_CIRCUS bool "circus" depends on BR2_PACKAGE_PYTHON3 # python-tornado 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 3 and a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_PACKAGE_PYTHON3 ================================================ FILE: package/circus/circus.hash ================================================ # md5, sha256 from https://pypi.org/pypi/circus/json md5 9887ddafebef7475c08ff2c8e5cc2fad circus-0.16.1.tar.gz sha256 dd7c011eb67785a1c96a4db94a56a22810c6ed608cebf301152dabc771654c5d circus-0.16.1.tar.gz sha256 3df739c05a4eed7efdf4987142658d2a4f1243e5f08e72a5ecedac5749c92a49 LICENSE ================================================ FILE: package/circus/circus.mk ================================================ ################################################################################ # # circus # ################################################################################ CIRCUS_VERSION = 0.16.1 CIRCUS_SITE = https://files.pythonhosted.org/packages/09/8a/44a0b6b35ecf5dcf22bf51e4bcf188ec9e7ab9dd4c14330ba1b8bea51102 CIRCUS_SETUP_TYPE = setuptools CIRCUS_LICENSE = Apache-2.0 CIRCUS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/civetweb/Config.in ================================================ config BR2_PACKAGE_CIVETWEB bool "civetweb" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_CIVETWEB_SERVER if !BR2_PACKAGE_CIVETWEB_LIB help Full featured embedded web server with Lua support. https://sourceforge.net/projects/civetweb if BR2_PACKAGE_CIVETWEB config BR2_PACKAGE_CIVETWEB_SERVER bool "enable the web server application" help Include the web server and its config files. config BR2_PACKAGE_CIVETWEB_LIB bool "enable library for embedding" help Enable the civetweb library for embedding in another application. config BR2_PACKAGE_CIVETWEB_WITH_LUA bool "enable Lua support" # required by the bundled Sqlite3 and Lua code depends on !BR2_STATIC_LIBS help Enable Lua support in Civetweb. Note that this will use a version of Lua and Sqlite bundled within the Civetweb sources, and not the packages from Buildroot. comment "lua support needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS endif comment "civetweb needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/civetweb/civetweb.hash ================================================ # Locally calculated sha256 90a533422944ab327a4fbb9969f0845d0dba05354f9cacce3a5005fa59f593b9 civetweb-1.15.tar.gz sha256 24d3d2aee56ae3cddcdf3392c1250877818108314233cf15f2bc9eb3ac298934 LICENSE.md ================================================ FILE: package/civetweb/civetweb.mk ================================================ ################################################################################ # # civetweb # ################################################################################ CIVETWEB_VERSION = 1.15 CIVETWEB_SITE = $(call github,civetweb,civetweb,v$(CIVETWEB_VERSION)) CIVETWEB_LICENSE = MIT CIVETWEB_LICENSE_FILES = LICENSE.md CIVETWEB_CPE_ID_VENDOR = civetweb_project CIVETWEB_CONF_OPTS = TARGET_OS=LINUX WITH_IPV6=1 \ $(if $(BR2_INSTALL_LIBSTDCPP),WITH_CPP=1) CIVETWEB_COPT = -DHAVE_POSIX_FALLOCATE=0 CIVETWEB_LIBS = -lpthread -lm CIVETWEB_SYSCONFDIR = /etc CIVETWEB_HTMLDIR = /var/www CIVETWEB_INSTALL_OPTS = \ DOCUMENT_ROOT="$(CIVETWEB_HTMLDIR)" \ CONFIG_FILE2="$(CIVETWEB_SYSCONFDIR)/civetweb.conf" \ HTMLDIR="$(TARGET_DIR)$(CIVETWEB_HTMLDIR)" \ SYSCONFDIR="$(TARGET_DIR)$(CIVETWEB_SYSCONFDIR)" ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_4),) CIVETWEB_COPT += -DNO_ATOMICS=1 endif ifeq ($(BR2_PACKAGE_CIVETWEB_WITH_LUA),y) CIVETWEB_CONF_OPTS += WITH_LUA=1 CIVETWEB_LIBS += -ldl endif ifeq ($(BR2_PACKAGE_OPENSSL),y) CIVETWEB_COPT += -DNO_SSL_DL CIVETWEB_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs openssl` CIVETWEB_DEPENDENCIES += openssl host-pkgconf else CIVETWEB_COPT += -DNO_SSL endif ifeq ($(BR2_PACKAGE_ZLIB),y) CIVETWEB_CONF_OPTS += WITH_ZLIB=1 CIVETWEB_LIBS += -lz CIVETWEB_DEPENDENCIES += zlib endif ifeq ($(BR2_PACKAGE_CIVETWEB_SERVER),y) CIVETWEB_BUILD_TARGETS += build CIVETWEB_INSTALL_TARGETS += install endif ifeq ($(BR2_PACKAGE_CIVETWEB_LIB),y) CIVETWEB_INSTALL_STAGING = YES CIVETWEB_INSTALL_TARGETS += install-headers ifeq ($(BR2_STATIC_LIBS)$(BR2_STATIC_SHARED_LIBS),y) CIVETWEB_BUILD_TARGETS += lib CIVETWEB_INSTALL_TARGETS += install-lib endif ifeq ($(BR2_SHARED_LIBS)$(BR2_STATIC_SHARED_LIBS),y) CIVETWEB_BUILD_TARGETS += slib CIVETWEB_INSTALL_TARGETS += install-slib endif endif # BR2_PACKAGE_CIVETWEB_LIB define CIVETWEB_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(CIVETWEB_BUILD_TARGETS) \ $(CIVETWEB_CONF_OPTS) \ COPT="$(CIVETWEB_COPT)" LIBS="$(CIVETWEB_LIBS)" endef define CIVETWEB_INSTALL_STAGING_CMDS mkdir -p $(STAGING_DIR)/usr/include $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(CIVETWEB_INSTALL_TARGETS) \ PREFIX="$(STAGING_DIR)/usr" \ $(CIVETWEB_INSTALL_OPTS) \ $(CIVETWEB_CONF_OPTS) \ COPT='$(CIVETWEB_COPT)' endef define CIVETWEB_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/include $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(CIVETWEB_INSTALL_TARGETS) \ PREFIX="$(TARGET_DIR)/usr" \ $(CIVETWEB_INSTALL_OPTS) \ $(CIVETWEB_CONF_OPTS) \ COPT='$(CIVETWEB_COPT)' endef $(eval $(generic-package)) ================================================ FILE: package/cjson/Config.in ================================================ config BR2_PACKAGE_CJSON bool "cJSON" help An ultra-lightweight, portable, single-file, simple-as-can-be ANSI-C compliant JSON parser, under MIT license. https://github.com/DaveGamble/cJSON ================================================ FILE: package/cjson/cjson.hash ================================================ # Locally computed: sha256 5308fd4bd90cef7aa060558514de6a1a4a0819974a26e6ed13973c5f624c24b2 cjson-1.7.15.tar.gz sha256 a36dda207c36db5818729c54e7ad4e8b0c6fba847491ba64f372c1a2037b6d5c LICENSE ================================================ FILE: package/cjson/cjson.mk ================================================ ################################################################################ # # cjson # ################################################################################ CJSON_VERSION = 1.7.15 CJSON_SITE = $(call github,DaveGamble,cjson,v$(CJSON_VERSION)) CJSON_INSTALL_STAGING = YES CJSON_LICENSE = MIT CJSON_LICENSE_FILES = LICENSE CJSON_CPE_ID_VENDOR = cjson_project # Set ENABLE_CUSTOM_COMPILER_FLAGS to OFF in particular to disable # -fstack-protector-strong which depends on BR2_TOOLCHAIN_HAS_SSP CJSON_CONF_OPTS += \ -DENABLE_CJSON_TEST=OFF \ -DENABLE_CUSTOM_COMPILER_FLAGS=OFF # If BUILD_SHARED_AND_STATIC_LIBS is set to OFF, cjson uses the # standard BUILD_SHARED_LIBS option which is passed by the # cmake-package infrastructure. ifeq ($(BR2_SHARED_STATIC_LIBS),y) CJSON_CONF_OPTS += -DBUILD_SHARED_AND_STATIC_LIBS=ON else CJSON_CONF_OPTS += -DBUILD_SHARED_AND_STATIC_LIBS=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/clamav/0001-clamdscan-proto.c-fix-build-error-due-to-missing-soc.patch ================================================ From 52fda6e6689e22866a39ec4273713fb6035c38b2 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Mon, 7 May 2018 23:14:46 +0200 Subject: [PATCH] clamdscan/proto.c: fix build error due to missing sockaddr_un definition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit proto.c: In function ‘dconnect’: proto.c:86:67: error: invalid application of ‘sizeof’ to incomplete type ‘struct sockaddr_un’ if (connect(sockd, (struct sockaddr *)&nixsock, sizeof(nixsock)) == 0) Signed-off-by: Bernd Kuhls Upstream-status: http://lurker.clamav.net/message/20140928.130829.5494fd68.en.html --- clamdscan/proto.c | 1 + 1 file changed, 1 insertion(+) diff --git a/clamdscan/proto.c b/clamdscan/proto.c index 0205f6da0..d3396732f 100644 --- a/clamdscan/proto.c +++ b/clamdscan/proto.c @@ -42,6 +42,7 @@ #include #include #include +#include #ifdef HAVE_SYS_SELECT_H #include #endif -- 2.14.3 ================================================ FILE: package/clamav/0002-mbox-do-not-use-backtrace-if-using-uClibc-without-ba.patch ================================================ From 053bac34b9f0f947c58fcdf80ac03d5a6b05aa12 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Mon, 7 May 2018 23:15:58 +0200 Subject: [PATCH] mbox: do not use backtrace if using uClibc without backtrace support Since uClibc can be configured without support for backtrace, disable the backtrace if we are building with a uClibc that was built without backtrace. This is a bit hacky, and would greatly benefit from a test in ./configure instead, but does nicely as a quick fix for now. Signed-off-by: "Yann E. MORIN" Signed-off-by: Bernd Kuhls [Bernd: rebased for 0.103.0] --- libclamav/mbox.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libclamav/mbox.c b/libclamav/mbox.c index 71f540c0a..4851297a9 100644 --- a/libclamav/mbox.c +++ b/libclamav/mbox.c @@ -91,7 +91,7 @@ #include #endif -#if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 +#if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 && !defined(__UCLIBC__) || defined(__UCLIBC_HAS_BACKTRACE__) #define HAVE_BACKTRACE #endif #endif -- 2.14.3 ================================================ FILE: package/clamav/Config.in ================================================ config BR2_PACKAGE_CLAMAV bool "clamav" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # dlopen depends on BR2_USE_WCHAR select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBMSPACK select BR2_PACKAGE_MUSL_FTS if !BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help ClamAV is an open source antivirus engine for detecting trojans, viruses, malware & other malicious threats. http://www.clamav.net comment "clamav needs a toolchain w/ C++, dynamic library, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS \ || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR depends on BR2_USE_MMU ================================================ FILE: package/clamav/clamav.hash ================================================ # Locally calculated sha256 9f6e3d18449f3d1a3992771d696685249dfa12736fe2b2929858f2c7d8276ae9 clamav-0.103.3.tar.gz sha256 0c4fd2fa9733fc9122503797648710851e4ee6d9e4969dd33fcbd8c63cd2f584 COPYING sha256 d72a145c90918184a05ef65a04c9e6f7466faa59bc1b82c8f6a8ddc7ddcb9bed COPYING.bzip2 sha256 dfb818a0d41411c6fb1c193c68b73018ceadd1994bda41ad541cbff292894bc6 COPYING.file sha256 6dce638b76399e7521ad8e182d3e33e4496c85b3b69b6ff434b53017101e82ad COPYING.getopt sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING.LGPL sha256 e3a9b913515a42f8ff3ef1551c3a2cdba383c39ed959729e0e2911219496ad74 COPYING.llvm sha256 d96d71b66aa32c4a2d1619b9ca3347dafa9460bcf0fb5ac2408916067ad31dfc COPYING.lzma sha256 accdcf2455c07b99abea59016b3663eaef926a92092d103bfaa25fed27cf6b24 COPYING.pcre sha256 e2c1395a3d9fea6d5d25847c9d783db6e2cc8b085b4025861f459139c5dfd90b COPYING.regex sha256 1faccc6b5c7b958fb807a3f573d5be9bf7889fe898f7e0617c544b05a81bfd00 COPYING.unrar sha256 a20d6317c5384e8d4c05f9c31097878675d9429ec46090656166039cc10bc957 COPYING.YARA sha256 c2f77553f8d870c5635b0dace0519253233f172b33ce1fdf6578610706294eee COPYING.zlib ================================================ FILE: package/clamav/clamav.mk ================================================ ################################################################################ # # clamav # ################################################################################ CLAMAV_VERSION = 0.103.3 CLAMAV_SITE = https://www.clamav.net/downloads/production CLAMAV_LICENSE = GPL-2.0 CLAMAV_LICENSE_FILES = COPYING COPYING.bzip2 COPYING.file COPYING.getopt \ COPYING.LGPL COPYING.llvm COPYING.lzma COPYING.pcre COPYING.regex \ COPYING.unrar COPYING.zlib CLAMAV_CPE_ID_VENDOR = clamav CLAMAV_SELINUX_MODULES = clamav CLAMAV_DEPENDENCIES = \ host-pkgconf \ libcurl \ libmspack \ openssl \ zlib \ $(TARGET_NLS_DEPENDENCIES) # mmap cannot be detected when cross-compiling, needed for mempool support CLAMAV_CONF_ENV = \ ac_cv_c_mmap_private=yes \ have_cv_ipv6=yes \ OBJC=$(TARGET_CC) ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) CLAMAV_LIBS += -latomic endif ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),) CLAMAV_DEPENDENCIES += musl-fts CLAMAV_LIBS += -lfts endif CLAMAV_CONF_ENV += LIBS="$(CLAMAV_LIBS)" CLAMAV_CONF_OPTS = \ --with-dbdir=/var/lib/clamav \ --with-libcurl=$(STAGING_DIR)/usr \ --with-openssl=$(STAGING_DIR)/usr \ --with-system-libmspack=$(STAGING_DIR)/usr \ --with-zlib=$(STAGING_DIR)/usr \ --disable-zlib-vcheck \ --disable-rpath \ --disable-clamav \ --disable-milter \ --disable-llvm \ --disable-clamdtop \ --enable-mempool ifeq ($(BR2_PACKAGE_BZIP2),y) CLAMAV_DEPENDENCIES += bzip2 # autodetection gets confused if host has bzip2, so force it CLAMAV_CONF_ENV += \ ac_cv_libbz2_libs=-lbz2 \ ac_cv_libbz2_ltlibs=-lbz2 else CLAMAV_CONF_OPTS += --disable-bzip2 endif ifeq ($(BR2_PACKAGE_JSON_C),y) CLAMAV_CONF_OPTS += --with-libjson=$(STAGING_DIR)/usr CLAMAV_DEPENDENCIES += json-c else CLAMAV_CONF_OPTS += --without-libjson endif ifeq ($(BR2_PACKAGE_LIBXML2),y) CLAMAV_CONF_OPTS += --with-xml=$(STAGING_DIR)/usr CLAMAV_DEPENDENCIES += libxml2 else CLAMAV_CONF_OPTS += --disable-xml endif ifeq ($(BR2_PACKAGE_LIBICONV),y) CLAMAV_CONF_OPTS += --with-iconv CLAMAV_DEPENDENCIES += libiconv else CLAMAV_CONF_OPTS += --without-iconv endif ifeq ($(BR2_PACKAGE_PCRE2),y) CLAMAV_CONF_OPTS += --with-pcre=$(STAGING_DIR)/usr CLAMAV_DEPENDENCIES += pcre2 else ifeq ($(BR2_PACKAGE_PCRE),y) CLAMAV_CONF_OPTS += --with-pcre=$(STAGING_DIR)/usr CLAMAV_DEPENDENCIES += pcre else CLAMAV_CONF_OPTS += --without-pcre endif ifeq ($(BR2_INIT_SYSTEMD),y) CLAMAV_CONF_OPTS += --with-systemdsystemunitdir=/usr/lib/systemd/system CLAMAV_DEPENDENCIES += systemd else CLAMAV_CONF_OPTS += --with-systemdsystemunitdir=no endif $(eval $(autotools-package)) ================================================ FILE: package/clang/Config.in ================================================ config BR2_PACKAGE_CLANG bool "clang" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::shared_future depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR # std::wstring select BR2_PACKAGE_LLVM help Clang is a C/C++, Objective C/C++ and OpenCL C front-end for the LLVM compiler. http://clang.llvm.org comment "clang needs a toolchain w/ wchar, threads, C++, gcc >= 4.8, dynamic library" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \ || BR2_STATIC_LIBS || !BR2_USE_WCHAR comment "clang needs a toolchain not affected by GCC bug 64735" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/clang/clang.hash ================================================ # locally calculated sha256 5778512b2e065c204010f88777d44b95250671103e434f9dc7363ab2e3804253 clang-9.0.1.src.tar.xz sha256 ebcd9bbf783a73d05c53ba4d586b8d5813dcdf3bbec50265860ccc885e606f47 LICENSE.TXT ================================================ FILE: package/clang/clang.mk ================================================ ################################################################################ # # clang # ################################################################################ # LLVM, Clang and lld should be version bumped together CLANG_VERSION = 9.0.1 CLANG_SITE = https://github.com/llvm/llvm-project/releases/download/llvmorg-$(CLANG_VERSION) CLANG_SOURCE = clang-$(CLANG_VERSION).src.tar.xz CLANG_LICENSE = Apache-2.0 with exceptions CLANG_LICENSE_FILES = LICENSE.TXT CLANG_CPE_ID_VENDOR = llvm CLANG_SUPPORTS_IN_SOURCE_BUILD = NO CLANG_INSTALL_STAGING = YES HOST_CLANG_DEPENDENCIES = host-llvm host-libxml2 CLANG_DEPENDENCIES = llvm host-clang # LLVM >= 9.0 will soon require C++14 support, building llvm 8.x using a # toolchain using gcc < 5.1 gives an error but actually still works. Setting # this option makes it still build with gcc >= 4.8. # https://reviews.llvm.org/D57264 HOST_CLANG_CONF_OPTS += -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON CLANG_CONF_OPTS += -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON # This option is needed, otherwise multiple shared libs # (libclangAST.so, libclangBasic.so, libclangFrontend.so, etc.) will # be generated. As a final shared lib containing all these components # (libclang.so) is also generated, this resulted in the following # error when trying to use tools that use libclang: # $ CommandLine Error: Option 'track-memory' registered more than once! # $ LLVM ERROR: inconsistency in registered CommandLine options # By setting BUILD_SHARED_LIBS to OFF, we generate multiple static # libraries (the same way as host's clang build) and finally # libclang.so to be installed on the target. HOST_CLANG_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF CLANG_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF # Default is Debug build, which requires considerably more disk space # and build time. Release build is selected for host and target # because the linker can run out of memory in Debug mode. HOST_CLANG_CONF_OPTS += -DCMAKE_BUILD_TYPE=Release CLANG_CONF_OPTS += -DCMAKE_BUILD_TYPE=Release CLANG_CONF_OPTS += -DCMAKE_CROSSCOMPILING=1 # We need to build tools because libclang is a tool HOST_CLANG_CONF_OPTS += -DCLANG_BUILD_TOOLS=ON CLANG_CONF_OPTS += -DCLANG_BUILD_TOOLS=ON HOST_CLANG_CONF_OPTS += \ -DCLANG_BUILD_EXAMPLES=OFF \ -DCLANG_INCLUDE_DOCS=OFF \ -DCLANG_INCLUDE_TESTS=OFF CLANG_CONF_OPTS += \ -DCLANG_BUILD_EXAMPLES=OFF \ -DCLANG_INCLUDE_DOCS=OFF \ -DCLANG_INCLUDE_TESTS=OFF HOST_CLANG_CONF_OPTS += -DLLVM_DIR=$(HOST_DIR)/lib/cmake/llvm \ -DCLANG_DEFAULT_LINKER=$(TARGET_LD) CLANG_CONF_OPTS += -DLLVM_DIR=$(STAGING_DIR)/usr/lib/cmake/llvm \ -DCLANG_TABLEGEN:FILEPATH=$(HOST_DIR)/bin/clang-tblgen \ -DLLVM_TABLEGEN_EXE:FILEPATH=$(HOST_DIR)/bin/llvm-tblgen # Clang can't be used as compiler on the target since there are no # development files (headers) and other build tools. So remove clang # binaries and some other unnecessary files from target. CLANG_FILES_TO_REMOVE = \ /usr/bin/clang* \ /usr/bin/c-index-test \ /usr/bin/git-clang-format \ /usr/bin/scan-build \ /usr/bin/scan-view \ /usr/libexec/c++-analyzer \ /usr/libexec/ccc-analyzer \ /usr/share/clang \ /usr/share/opt-viewer \ /usr/share/scan-build \ /usr/share/scan-view \ /usr/share/man/man1/scan-build.1 \ /usr/lib/clang define CLANG_CLEANUP_TARGET rm -rf $(addprefix $(TARGET_DIR),$(CLANG_FILES_TO_REMOVE)) endef CLANG_POST_INSTALL_TARGET_HOOKS += CLANG_CLEANUP_TARGET # clang-tblgen is not installed by default, however it is necessary # for cross-compiling clang define HOST_CLANG_INSTALL_CLANG_TBLGEN $(INSTALL) -D -m 0755 $(HOST_CLANG_BUILDDIR)/bin/clang-tblgen \ $(HOST_DIR)/bin/clang-tblgen endef HOST_CLANG_POST_INSTALL_HOOKS = HOST_CLANG_INSTALL_CLANG_TBLGEN # This option must be enabled to link libclang dynamically against libLLVM.so HOST_CLANG_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON CLANG_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON # Prevent clang binaries from linking against LLVM static libs HOST_CLANG_CONF_OPTS += -DLLVM_DYLIB_COMPONENTS=all CLANG_CONF_OPTS += -DLLVM_DYLIB_COMPONENTS=all $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/clinfo/Config.in ================================================ config BR2_PACKAGE_CLINFO bool "clinfo" depends on BR2_PACKAGE_HAS_LIBOPENCL help clinfo is a simple command-line application that enumerates all possible (known) properties of the OpenCL platform and devices available on the system. https://github.com/Oblomov/clinfo comment "clinfo needs an OpenCL provider" depends on !BR2_PACKAGE_HAS_LIBOPENCL ================================================ FILE: package/clinfo/clinfo.hash ================================================ # locally calculated sha256 e52f5c374a10364999d57a1be30219b47fb0b4f090e418f2ca19a0c037c1e694 clinfo-3.0.21.02.21.tar.gz sha256 a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499 legalcode.txt sha256 2a7a9321be169ea6edbc6b1010e8f7bb0f4c1482a2f65c34a49e9719f129b79a LICENSE ================================================ FILE: package/clinfo/clinfo.mk ================================================ ################################################################################ # # clinfo # ################################################################################ CLINFO_VERSION = 3.0.21.02.21 CLINFO_SITE = $(call github,Oblomov,clinfo,$(CLINFO_VERSION)) CLINFO_LICENSE = CC0-1.0 CLINFO_LICENSE_FILES = legalcode.txt LICENSE CLINFO_DEPENDENCIES = libopencl define CLINFO_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) endef define CLINFO_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/clinfo $(TARGET_DIR)/usr/bin/clinfo endef $(eval $(generic-package)) ================================================ FILE: package/cloop/cloop.hash ================================================ # From http://snapshot.debian.org/archive/debian/20200419T152225Z/pool/main/c/cloop/cloop_3.14.1.3.dsc sha256 e3079e70f9edae8ed1ac64694af08f6c7dc710ca65a56e4770dcb1325a293193 cloop_3.14.1.3.tar.xz # Hash for license files sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad advancecomp-1.15/COPYING sha256 1b1f89e94e131e259b9e334565c5c3500d4b8aa755b75c3f145ddcdff3b89124 README ================================================ FILE: package/cloop/cloop.mk ================================================ ################################################################################ # # cloop # ################################################################################ CLOOP_VERSION = 3.14.1.3 CLOOP_SOURCE = cloop_$(CLOOP_VERSION).tar.xz CLOOP_SITE = http://snapshot.debian.org/archive/debian/20200419T152225Z/pool/main/c/cloop CLOOP_LICENSE = GPL-2.0 (module), GPL-2.0+ (advancecomp) CLOOP_LICENSE_FILES = README advancecomp-1.15/COPYING HOST_CLOOP_DEPENDENCIES = host-zlib define HOST_CLOOP_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE1) -C $(@D) APPSONLY=yes \ CFLAGS="$(HOST_CFLAGS) -D_GNU_SOURCE" endef define HOST_CLOOP_INSTALL_CMDS $(INSTALL) -m 0755 -d $(HOST_DIR)/bin $(INSTALL) -m 755 $(@D)/create_compressed_fs $(HOST_DIR)/bin $(INSTALL) -m 755 $(@D)/extract_compressed_fs $(HOST_DIR)/bin endef $(eval $(host-generic-package)) ================================================ FILE: package/cmake/0001-rename-cmake-rootfile.patch ================================================ From 68d3b1dfbbd2f54bf81986d1d733deaf66658b15 Mon Sep 17 00:00:00 2001 From: Davide Viti Date: Thu, 14 Jul 2016 10:14:59 +0100 Subject: [PATCH] rename cmake rootfile ctest fails on the target, because it cannot find CMake.cmake inside CMAKE_DATA_DIR (typically set to "/usr/share/cmake-3.0"): all *.cmake files are removed at build time via the target-finalize rule. This buildroot-specific patch makes sure ctest looks also for "Modules/CMake.cmake.ctest" before complaining [Vincent: tweak patch for 3.6.3] [James: tweak patch for 3.15.4] Signed-off-by: Davide Viti Signed-off-by: Vicente Olivert Riera Signed-off-by: James Hilliard --- Source/cmake.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 3772f09985..c317e4af38 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -1009,7 +1009,12 @@ int cmake::AddCMakePaths() "Path to cpack program executable.", cmStateEnums::INTERNAL); #endif if (!cmSystemTools::FileExists( - (cmSystemTools::GetCMakeRoot() + "/Modules/CMake.cmake"))) { + (cmSystemTools::GetCMakeRoot() + "/Modules/CMake.cmake")) && + !cmSystemTools::FileExists( + (cmSystemTools::GetCMakeRoot()+"/Modules/CMake.cmake.ctest") + ) + ) + { // couldn't find modules cmSystemTools::Error( "Could not find CMAKE_ROOT !!!\n" -- 2.20.1 ================================================ FILE: package/cmake/Config.in ================================================ config BR2_PACKAGE_CMAKE_ARCH_SUPPORTS bool default y depends on BR2_arm || BR2_armeb || BR2_aarch64 || \ BR2_m68k || BR2_mips || BR2_mips64 || \ BR2_mipsel || BR2_mips64el || BR2_powerpc || \ BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \ BR2_i386 || BR2_x86_64 || BR2_xtensa || \ BR2_s390x config BR2_PACKAGE_CMAKE bool config BR2_PACKAGE_CMAKE_CTEST bool "ctest" depends on BR2_PACKAGE_CMAKE_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # from jsoncpp depends on BR2_USE_WCHAR # libarchive depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv depends on BR2_USE_MMU # libuv depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv select BR2_PACKAGE_CMAKE select BR2_PACKAGE_ZLIB select BR2_PACKAGE_JSONCPP select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBARCHIVE select BR2_PACKAGE_EXPAT select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_XZ select BR2_PACKAGE_LIBUV select BR2_PACKAGE_RHASH help CTest is a testing tool distributed as a part of CMake. It can be used to automate updating (using CVS for example), configuring, building, testing, performing memory checking, performing coverage, and submitting results to a CDash or Dart dashboard system. http://www.cmake.org/ comment "ctest needs a toolchain w/ C++, wchar, dynamic library, gcc >= 4.7, NPTL" depends on BR2_PACKAGE_CMAKE_ARCH_SUPPORTS depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL ================================================ FILE: package/cmake/Config.in.host ================================================ config BR2_PACKAGE_HOST_CMAKE bool "host cmake" help CMake is an open-source, cross-platform family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice. http://www.cmake.org/ ================================================ FILE: package/cmake/cmake.hash ================================================ # From https://cmake.org/files/v3.16/cmake-3.16.9-SHA-256.txt sha256 1708361827a5a0de37d55f5c9698004c035abb1de6120a376d5d59a81630191f cmake-3.16.9.tar.gz # Locally calculated sha256 dc628fb936a5d229296d42083f9a8218aa32204c016919e784404c9ec58776e9 Copyright.txt ================================================ FILE: package/cmake/cmake.mk ================================================ ################################################################################ # # cmake # ################################################################################ CMAKE_VERSION_MAJOR = 3.16 CMAKE_VERSION = $(CMAKE_VERSION_MAJOR).9 CMAKE_SITE = https://cmake.org/files/v$(CMAKE_VERSION_MAJOR) CMAKE_LICENSE = BSD-3-Clause CMAKE_LICENSE_FILES = Copyright.txt CMAKE_CPE_ID_VENDOR = cmake_project # Tool download MITM attack warning if using npm package to install cmake CMAKE_IGNORE_CVES = CVE-2016-10642 # 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 libuv rhash CMAKE_CONF_OPTS = \ -DKWSYS_LFS_WORKS=TRUE \ -DKWSYS_CHAR_IS_SIGNED=TRUE \ -DCMAKE_USE_SYSTEM_LIBRARIES=1 \ -DCTEST_USE_XMLRPC=OFF \ -DBUILD_CursesDialog=OFF # Get rid of -I* options from $(HOST_CPPFLAGS) to prevent that a # header available in $(HOST_DIR)/include is used instead of a # CMake internal header, e.g. lzma* headers of the xz package HOST_CMAKE_CFLAGS = $(shell echo $(HOST_CFLAGS) | sed -r "s%$(HOST_CPPFLAGS)%%") HOST_CMAKE_CXXFLAGS = $(shell echo $(HOST_CXXFLAGS) | sed -r "s%$(HOST_CPPFLAGS)%%") define HOST_CMAKE_CONFIGURE_CMDS (cd $(@D); \ $(HOST_CONFIGURE_OPTS) \ CFLAGS="$(HOST_CMAKE_CFLAGS)" \ ./bootstrap --prefix=$(HOST_DIR) \ --parallel=$(PARALLEL_JOBS) -- \ -DCMAKE_C_FLAGS="$(HOST_CMAKE_CFLAGS)" \ -DCMAKE_CXX_FLAGS="$(HOST_CMAKE_CXXFLAGS)" \ -DCMAKE_EXE_LINKER_FLAGS="$(HOST_LDFLAGS)" \ -DCMAKE_USE_OPENSSL:BOOL=OFF \ -DBUILD_CursesDialog=OFF \ ) endef define HOST_CMAKE_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_CMAKE_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install/fast endef define CMAKE_REMOVE_EXTRA_DATA rm $(TARGET_DIR)/usr/bin/{cmake,cpack} rm -fr $(TARGET_DIR)/usr/share/cmake-$(CMAKE_VERSION_MAJOR)/{completions,editors} rm -fr $(TARGET_DIR)/usr/share/cmake-$(CMAKE_VERSION_MAJOR)/{Help,include} endef define CMAKE_INSTALL_CTEST_CFG_FILE $(INSTALL) -m 0644 -D $(@D)/Modules/CMake.cmake \ $(TARGET_DIR)/usr/share/cmake-$(CMAKE_VERSION_MAJOR)/Modules/CMake.cmake.ctest endef CMAKE_POST_INSTALL_TARGET_HOOKS += CMAKE_REMOVE_EXTRA_DATA CMAKE_POST_INSTALL_TARGET_HOOKS += CMAKE_INSTALL_CTEST_CFG_FILE define CMAKE_INSTALL_TARGET_CMDS (cd $(@D); \ $(HOST_MAKE_ENV) DESTDIR=$(TARGET_DIR) \ cmake -P cmake_install.cmake \ ) endef $(eval $(cmake-package)) $(eval $(host-generic-package)) ================================================ FILE: package/cmocka/0001-Don-t-redefine-uintptr_t.patch ================================================ From 28ce16b29911e5adc60140b572dee177adc7a178 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 18 Nov 2019 18:56:46 +0100 Subject: [PATCH] Don't redefine uintptr_t Add a call to check_type_size in ConfigureChecks.cmake and use it in include/cmocka.h to avoid the following redefinition error on riscv64: In file included from /data/buildroot/buildroot-test/instance-0/output/build/cmocka-1.1.5/src/cmocka.c:62: /data/buildroot/buildroot-test/instance-0/output/build/cmocka-1.1.5/include/cmocka.h:132:28: error: conflicting types for 'uintptr_t' typedef unsigned int uintptr_t; ^~~~~~~~~ In file included from /data/buildroot/buildroot-test/instance-0/output/host/riscv64-buildroot-linux-musl/sysroot/usr/include/stdint.h:20, from /data/buildroot/buildroot-test/instance-0/output/host/riscv64-buildroot-linux-musl/sysroot/usr/include/inttypes.h:9, from /data/buildroot/buildroot-test/instance-0/output/build/cmocka-1.1.5/src/cmocka.c:27: /data/buildroot/buildroot-test/instance-0/output/host/riscv64-buildroot-linux-musl/sysroot/usr/include/bits/alltypes.h:104:24: note: previous declaration of 'uintptr_t' was here typedef unsigned _Addr uintptr_t; ^~~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/30922c18150ea62aefe123d1b7cd1444efab963f Signed-off-by: Fabrice Fontaine Reviewed-by: Andreas Schneider [Retrieved from: https://gitlab.com/cmocka/cmocka/commit/28ce16b29911e5adc60140b572dee177adc7a178] --- ConfigureChecks.cmake | 3 +++ config.h.cmake | 4 ++++ include/cmocka.h | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index fe8da35..028774f 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -70,6 +70,9 @@ if (HAVE_TIME_H) check_struct_has_member("struct timespec" tv_sec "time.h" HAVE_STRUCT_TIMESPEC) endif (HAVE_TIME_H) +# TYPES +check_type_size(uintptr_t UINTPTR_T) + # FUNCTIONS check_function_exists(calloc HAVE_CALLOC) check_function_exists(exit HAVE_EXIT) diff --git a/config.h.cmake b/config.h.cmake index f8d79da..55fc69f 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -75,6 +75,10 @@ #cmakedefine HAVE_STRUCT_TIMESPEC 1 +/***************************** TYPES *****************************/ + +#cmakedefine HAVE_UINTPTR_T 1 + /*************************** FUNCTIONS ***************************/ /* Define to 1 if you have the `calloc' function. */ diff --git a/include/cmocka.h b/include/cmocka.h index 3e923dd..0aa557e 100644 --- a/include/cmocka.h +++ b/include/cmocka.h @@ -120,7 +120,7 @@ typedef uintmax_t LargestIntegralType; ((LargestIntegralType)(value)) /* Smallest integral type capable of holding a pointer. */ -#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) +#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(HAVE_UINTPTR_T) # if defined(_WIN32) /* WIN32 is an ILP32 platform */ typedef unsigned int uintptr_t; -- 2.22.0 ================================================ FILE: package/cmocka/Config.in ================================================ config BR2_PACKAGE_CMOCKA bool cmocka depends on !BR2_STATIC_LIBS help cmocka is an elegant unit testing framework for C with support for mock objects. It only requires the standard C library, works on a range of computing platforms (including embedded) and with different compilers. It is a fork of Google's very popular cmockery unit testing framework to fix bugs and support it in the future. https://cmocka.org comment "cmocka needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/cmocka/cmocka.hash ================================================ # Locally computed: sha256 f0ccd8242d55e2fd74b16ba518359151f6f8383ff8aef4976e48393f77bba8b6 cmocka-1.1.5.tar.xz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 COPYING ================================================ FILE: package/cmocka/cmocka.mk ================================================ ################################################################################ # # cmocka # ################################################################################ CMOCKA_VERSION = 1.1.5 CMOCKA_SOURCE = cmocka-$(CMOCKA_VERSION).tar.xz CMOCKA_SITE = https://cmocka.org/files/1.1 CMOCKA_LICENSE = Apache-2.0 CMOCKA_LICENSE_FILES = COPYING CMOCKA_INSTALL_STAGING = YES CMOCKA_CONF_OPTS = -DWITH_EXAMPLES=OFF # cmocka only supports out of source builds CMOCKA_SUPPORTS_IN_SOURCE_BUILD = NO # cmocka always builds a shared library, but you can optionally build a static # library as well ifeq ($(BR2_SHARED_STATIC_LIBS),y) CMOCKA_CONF_OPTS += -DWITH_STATIC_LIB=ON endif $(eval $(cmake-package)) ================================================ FILE: package/cog/Config.in ================================================ comment "cog needs wpewebkit and a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_PACKAGE_WPEWEBKIT || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_COG bool "cog" depends on BR2_PACKAGE_WPEWEBKIT depends on BR2_TOOLCHAIN_HAS_THREADS # dbus depends on BR2_USE_MMU # dbus select BR2_PACKAGE_DBUS select BR2_PACKAGE_WAYLAND help Single "window" launcher for the WebKit WPE port, and helper library for implementing WPE launcher. It does not provide any chrome, and is suitable to be used as a Web application container. https://github.com/Igalia/cog if BR2_PACKAGE_COG config BR2_PACKAGE_COG_PROGRAMS_HOME_URI string "home uri" default "https://wpewebkit.org" help Default URI to open when "cog" is launched. If an empty string is used, there is no default and the URI to open must be always specified in the command line. config BR2_PACKAGE_COG_PLATFORM_FDO bool "FreeDesktop.org backend" default y select BR2_PACKAGE_LIBXKBCOMMON select BR2_PACKAGE_WAYLAND_PROTOCOLS help Enable the FreeDesktop.org backend. Cog will interface with a compositor over the Wayland protocol. config BR2_PACKAGE_COG_PLATFORM_DRM bool "DRM backend" depends on BR2_PACKAGE_HAS_UDEV # libinput depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # gbm select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBINPUT help Enable the DRM platform backend. Cog will interface directly with video drivers that support kernel mode-setting (KMS) via the DRM user-space API. config BR2_PACKAGE_COG_USE_SYSTEM_DBUS bool "expose system D-Bus control interface" help Expose remote control interface on system bus comment "DRM platform needs mesa3d w/ EGL driver and GBM" depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL endif ================================================ FILE: package/cog/cog.hash ================================================ # From https://wpewebkit.org/releases/cog-0.10.1.tar.xz.sums md5 b997da3c143bc34ec5e953eb7e7ccefc cog-0.10.1.tar.xz sha1 f25312141de918f41add3e3c9984faa985cda0a9 cog-0.10.1.tar.xz sha256 aecf546d7b0645119d79559c5574cb5eb68364fc8409dfbd47a4920bd1f221bc cog-0.10.1.tar.xz # Hashes for license files: sha256 e6c42d93c68b292bcccf6d2ec3e13da85df90b718ba27c2c2a01053a9d009252 COPYING ================================================ FILE: package/cog/cog.mk ================================================ ################################################################################ # # cog # ################################################################################ COG_VERSION = 0.10.1 COG_SITE = https://wpewebkit.org/releases COG_SOURCE = cog-$(COG_VERSION).tar.xz COG_INSTALL_STAGING = YES COG_DEPENDENCIES = dbus wpewebkit wpebackend-fdo wayland COG_LICENSE = MIT COG_LICENSE_FILES = COPYING COG_CONF_OPTS = \ -DCOG_BUILD_PROGRAMS=ON \ -DCOG_PLATFORM_HEADLESS=ON \ -DCOG_WESTON_DIRECT_DISPLAY=OFF \ -DINSTALL_MAN_PAGES=OFF \ -DCOG_HOME_URI='$(call qstrip,$(BR2_PACKAGE_COG_PROGRAMS_HOME_URI))' ifeq ($(BR2_PACKAGE_COG_PLATFORM_FDO),y) COG_CONF_OPTS += -DCOG_PLATFORM_FDO=ON COG_DEPENDENCIES += libxkbcommon wayland-protocols else COG_CONF_OPTS += -DCOG_PLATFORM_FDO=OFF endif ifeq ($(BR2_PACKAGE_COG_PLATFORM_DRM),y) COG_CONF_OPTS += -DCOG_PLATFORM_DRM=ON COG_DEPENDENCIES += libdrm libinput else COG_CONF_OPTS += -DCOG_PLATFORM_DRM=OFF endif ifeq ($(BR2_PACKAGE_COG_USE_SYSTEM_DBUS),y) COG_CONF_OPTS += -DCOG_DBUS_SYSTEM_BUS=ON else COG_CONF_OPTS += -DCOG_DBUS_SYSTEM_BUS=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/collectd/0001-src-netlink.c-remove-REG_NOERROR.patch ================================================ From 5e600ae2ad370ddbb759e84ce55a7dfaa9a0bdd7 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 6 Sep 2020 14:17:23 +0200 Subject: [PATCH] src/netlink.c: remove REG_NOERROR REG_NOERROR is used since version 5.12.0 and https://github.com/collectd/collectd/commit/f7fd32e5209e188db7985a42054252fc4cbfe7c1 However, REG_NOERROR is not defined by musl, even GNU regex do not mention REG_NOERROR, so just remove it to avoid the following build failure: src/netlink.c: In function 'check_ignorelist': src/netlink.c:243:51: error: 'REG_NOERROR' undeclared (first use in this function); did you mean 'REG_NOTBOL'? if (regexec(i->rdevice, dev, 0, NULL, 0) != REG_NOERROR) ^~~~~~~~~~~ REG_NOTBOL Fixes: - http://autobuild.buildroot.org/results/cd4d75888b5259b028132dd224be34f69bcbb702 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/collectd/collectd/pull/3569] --- src/netlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/netlink.c b/src/netlink.c index 7a5da762..fac2fb1e 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -240,7 +240,7 @@ static int check_ignorelist(const char *dev, const char *type, for (ir_ignorelist_t *i = ir_ignorelist_head; i != NULL; i = i->next) { #if HAVE_REGEX_H if (i->rdevice != NULL) { - if (regexec(i->rdevice, dev, 0, NULL, 0) != REG_NOERROR) + if (regexec(i->rdevice, dev, 0, NULL, 0)) continue; } else #endif -- 2.28.0 ================================================ FILE: package/collectd/Config.in ================================================ menuconfig BR2_PACKAGE_COLLECTD bool "collectd" # Uses fork() depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS help collectd is a daemon which collects system performance statistics periodically and provides mechanisms to store the values in a variety of ways, for example in RRD files. http://collectd.org/ if BR2_PACKAGE_COLLECTD menu "match plugins" config BR2_PACKAGE_COLLECTD_EMPTY_COUNTER bool "empty counter" help Match counter values which are currently zero. config BR2_PACKAGE_COLLECTD_HASHED bool "hashed" help Match values using a hash function of the hostname. config BR2_PACKAGE_COLLECTD_REGEX bool "regex" help Match values by their identifier based on regular expressions. config BR2_PACKAGE_COLLECTD_TIMEDIFF bool "timediff" help Match values with an invalid timestamp. config BR2_PACKAGE_COLLECTD_VALUE bool "value" help Select values by their data sources' values. endmenu menu "misc plugins" config BR2_PACKAGE_COLLECTD_AGGREGATION bool "aggregation" help The Aggregate plugin allows to aggregate multiple values into a single value using one or several consolidation functions, e.g. summation and average. config BR2_PACKAGE_COLLECTD_LOGFILE bool "logfile" default y help Writes log messages to a file or STDOUT/STDERR. config BR2_PACKAGE_COLLECTD_LOGSTASH bool "logstash" select BR2_PACKAGE_YAJL help Writes log messages formatted as logstash JSON events. config BR2_PACKAGE_COLLECTD_LUA bool "lua" depends on BR2_PACKAGE_HAS_LUAINTERPRETER help Embeds a Lua interpreter into collectd and provides an interface to collectd's plugin system. comment "lua support needs a Lua interpreter" depends on !BR2_PACKAGE_HAS_LUAINTERPRETER config BR2_PACKAGE_COLLECTD_NOTIFY_EMAIL bool "notify_email" depends on !BR2_STATIC_LIBS # libesmtp select BR2_PACKAGE_LIBESMTP select BR2_PACKAGE_OPENSSL help Send an E-mail with the notification message to the configured recipients. comment "notify_email needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_COLLECTD_NOTIFY_NAGIOS bool "notify_nagios" help Sends notifications to Nagios as a passive check result. config BR2_PACKAGE_COLLECTD_SYSLOG bool "syslog" default y help Logs to the standard UNIX logging mechanism. config BR2_PACKAGE_COLLECTD_THRESHOLD bool "threshold" help Checks values against configured thresholds and creates notifications if values are out of bounds. endmenu menu "read plugins" comment "Select at least one for collectd to be useful" config BR2_PACKAGE_COLLECTD_APACHE bool "apache" select BR2_PACKAGE_LIBCURL help Collects Apache's mod_status information. config BR2_PACKAGE_COLLECTD_APCUPS bool "apcups" help Collects UPS statistics from apcupsd. config BR2_PACKAGE_COLLECTD_BATTERY bool "battery" help Collects the battery's charge, the drawn current and voltage. config BR2_PACKAGE_COLLECTD_BIND bool "bind" select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBXML2 help Collects BIND DNS statistics. config BR2_PACKAGE_COLLECTD_BUDDYINFO bool "buddyinfo" help Statistics from buddyinfo file about memory fragmentation. config BR2_PACKAGE_COLLECTD_CAPABILITIES bool "capabilities" depends on BR2_aarch64 || BR2_i386 || BR2_x86_64 # dmidecode select BR2_PACKAGE_DMIDECODE # runtime select BR2_PACKAGE_JANSSON select BR2_PACKAGE_LIBMICROHTTPD help Collects selected static platform data using dmidecode and expose it through micro embedded webserver. config BR2_PACKAGE_COLLECTD_CEPH bool "ceph" select BR2_PACKAGE_YAJL help Statistics from the Ceph distributed storage system. config BR2_PACKAGE_COLLECTD_CHRONY bool "chrony" help Collects NTP data from the chrony NTP server. config BR2_PACKAGE_COLLECTD_CGROUPS bool "cgroups" help Collects CGroups CPU usage accounting. config BR2_PACKAGE_COLLECTD_CONNTRACK bool "conntrack" help Collects the number of entries in Linux's connection tracking table. config BR2_PACKAGE_COLLECTD_CONTEXTSWITCH bool "contextswitch" help Collects the number of context switches done by the operating system. config BR2_PACKAGE_COLLECTD_CPU bool "cpu" help Collects the amount of time spent by the CPU in various states. config BR2_PACKAGE_COLLECTD_CPUFREQ bool "cpufreq" help Collects the current CPU's frequency. config BR2_PACKAGE_COLLECTD_CPUSLEEP bool "cpusleep" help Measures time spent by CPU in deep sleep mode. config BR2_PACKAGE_COLLECTD_CURL bool "curl" select BR2_PACKAGE_LIBCURL help Uses libcurl to read files and then parses them according to the configuration. config BR2_PACKAGE_COLLECTD_CURL_JSON bool "curl-json" select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_YAJL help Queries JSON data using the cURL library and parses it according to the user's configuration using YAJL. config BR2_PACKAGE_COLLECTD_CURL_XML bool "curl-xml" select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBXML2 help Reads files using libcurl and parses it as XML. config BR2_PACKAGE_COLLECTD_DBI bool "dbi" select BR2_PACKAGE_LIBDBI help Executes SQL statements on various databases and interprets the returned data. config BR2_PACKAGE_COLLECTD_DF bool "df" help Collects file system usage information. config BR2_PACKAGE_COLLECTD_DISK bool "disk" help Collects performance statistics of hard-disks and partitions. config BR2_PACKAGE_COLLECTD_DNS bool "dns" select BR2_PACKAGE_LIBPCAP help Collects statistics of DNS traffic using libpcap. config BR2_PACKAGE_COLLECTD_DPDK_TELEMETRY bool "dpdk_telemetry" select BR2_PACKAGE_JANSSON help Collects DPDK ethernet device metrics via dpdk_telemetry library. config BR2_PACKAGE_COLLECTD_DRBD bool "drbd" help Collect individual drbd resource statistics. config BR2_PACKAGE_COLLECTD_ENTROPY bool "entropy" help Collects the available entropy on a system. config BR2_PACKAGE_COLLECTD_ETHSTAT bool "ethstat" help Collects network interface card statistics. config BR2_PACKAGE_COLLECTD_EXEC bool "exec" help Executes scripts and reads values back that are printed to STDOUT by that program. config BR2_PACKAGE_COLLECTD_FHCOUNT bool "fhcount" help File handles statistics. config BR2_PACKAGE_COLLECTD_FILECOUNT bool "filecount" help Counts the number of files in a directory and all its subdirectories. config BR2_PACKAGE_COLLECTD_FSCACHE bool "fscache" help Collects information about the file-system based caching infrastructure for network file-systems and other slow media. config BR2_PACKAGE_COLLECTD_GPS bool "gps" select BR2_PACKAGE_GPSD help Reports the number of sattelites seen by and precision of a GPS receiver. config BR2_PACKAGE_COLLECTD_HUGEPAGES bool "hugepages" help Reports the number of used and free hugepages on Linux. config BR2_PACKAGE_COLLECTD_INFINIBAND bool "infiniband" help Attributes and counters for each port on each IB device. config BR2_PACKAGE_COLLECTD_INTERFACE bool "interface" help Collects information about the traffic of network interfaces. config BR2_PACKAGE_COLLECTD_IPC bool "ipc" help IPC counters: semaphores used, number of allocated segments in shared memory and more. config BR2_PACKAGE_COLLECTD_IPTABLES bool "iptables" select BR2_PACKAGE_IPTABLES help Gather statistics from iptables packet filter. config BR2_PACKAGE_COLLECTD_IPVS bool "ipvs" help Extracts statistics from IP Virtual Server (IPVS), the transport-layer load-balancer of the LVS project. It stores traffic and connections history for each of the Real Servers (RS) behind a local Virtual Server (VS). Collectd must be run on Directors (in LVS jargon). config BR2_PACKAGE_COLLECTD_IRQ bool "irq" help Collects the number of interrupts. config BR2_PACKAGE_COLLECTD_LOAD bool "load" help Collects the system load. config BR2_PACKAGE_COLLECTD_LOGPARSER bool "logparser" help Plugin for filtering and parsing log messages. config BR2_PACKAGE_COLLECTD_MD bool "md" help Collects software-RAID device information. config BR2_PACKAGE_COLLECTD_MDEVENTS bool "mdevents" help Events from md (Linux Software RAID) devices. config BR2_PACKAGE_COLLECTD_MEMCACHEC bool "memcachec" depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_LIBMEMCACHED help Query and parse data from a memcache daemon. comment "memcachec needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_COLLECTD_MEMCACHED bool "memcached" help Collects statistics from a memcached daemon. config BR2_PACKAGE_COLLECTD_MEMORY bool "memory" help Collects physical memory utilization. config BR2_PACKAGE_COLLECTD_MODBUS bool "modbus" select BR2_PACKAGE_LIBMODBUS help Reads register values from a modbus "slave" via Modbus/TCP. config BR2_PACKAGE_COLLECTD_MYSQL bool "mysql" depends on BR2_INSTALL_LIBSTDCPP # mysql depends on BR2_USE_MMU # mysql depends on BR2_TOOLCHAIN_HAS_THREADS # mysql select BR2_PACKAGE_MYSQL help Connects to a MySQL database and issues a "show status" command. config BR2_PACKAGE_COLLECTD_NETLINK bool "netlink" select BR2_PACKAGE_LIBMNL help Get statistics for interfaces, qdiscs, classes, and filters. config BR2_PACKAGE_COLLECTD_NFS bool "nfs" help Collects information about the usage of the Network File System. config BR2_PACKAGE_COLLECTD_NGINX bool "nginx" select BR2_PACKAGE_LIBCURL help Collects the number of requests handled by the nginx daemon since startup and the number of current connections by state. config BR2_PACKAGE_COLLECTD_NTPD bool "ntpd" help Queries an NTP server and extracts parameters. config BR2_PACKAGE_COLLECTD_NUT bool "nut" depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_NUT help The NUT plugin collects uninterruptible power supply (UPS) statistics using the Network UPS Tools (NUT). comment "nut needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_COLLECTD_OLSRD bool "olsrd" help Reads information about meshed networks from olsrd. config BR2_PACKAGE_COLLECTD_ONEWIRE bool "onewire" select BR2_PACKAGE_OWFS help Collects temperature information from sensors connected over the OneWire bus. config BR2_PACKAGE_COLLECTD_OPENLDAP bool "openldap" depends on BR2_USE_WCHAR select BR2_PACKAGE_OPENLDAP help Read monitoring information from OpenLDAP's cn=Monitor subtree. comment "openldap support needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR config BR2_PACKAGE_COLLECTD_OPENVPN bool "openvpn" help Reads the status file of OpenVPN to collect statistics. config BR2_PACKAGE_COLLECTD_PING bool "ping" select BR2_PACKAGE_LIBOPING help Mesures network latency using ICMP "echo requests". config BR2_PACKAGE_COLLECTD_POSTGRESQL bool "postgresql" depends on BR2_USE_WCHAR # postgresql select BR2_PACKAGE_POSTGRESQL help Connects to and executes SQL statements on a PostgreSQL database. It then reads back the results and, depending on the configuration, the returned values are then converted into collectd 'value lists'. comment "postgresql support needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR config BR2_PACKAGE_COLLECTD_PROCESSES bool "processes" help Collects the number of processes gruped by state. config BR2_PACKAGE_COLLECTD_PROTOCOLS bool "protocols" help Collects information about the network protocols. config BR2_PACKAGE_COLLECTD_REDIS bool "redis" select BR2_PACKAGE_HIREDIS help Connects to one or more instances of Redis. config BR2_PACKAGE_COLLECTD_SENSORS bool "sensors" select BR2_PACKAGE_LM_SENSORS help Collects data from lm-sensors. config BR2_PACKAGE_COLLECTD_SERIAL bool "serial" help Collects the traffic on serial interfaces. config BR2_PACKAGE_COLLECTD_SMART bool "SMART" depends on BR2_PACKAGE_HAS_UDEV # libatasmart select BR2_PACKAGE_LIBATASMART help Collect SMART statistics, notably load cycle count, temperature and bad sectors. comment "SMART requires udev to be enabled" depends on !BR2_PACKAGE_HAS_UDEV config BR2_PACKAGE_COLLECTD_STATSD bool "StatsD" help StatsD network protocol to allow clients to report "events". config BR2_PACKAGE_COLLECTD_SNMP bool "snmp" select BR2_PACKAGE_NETSNMP help Reads values from SNMP devices. config BR2_PACKAGE_COLLECTD_SWAP bool "swap" help Collects the amount of memory currently written to disk. config BR2_PACKAGE_COLLECTD_SYNPROXY bool "synproxy" help Synproxy stats plugin. config BR2_PACKAGE_COLLECTD_TABLE bool "table" help Parses table-like structured plain-text files. config BR2_PACKAGE_COLLECTD_TAIL bool "tail" help Tails log files and each line is given to one or more matches which test if the line is relevant for any statistics. config BR2_PACKAGE_COLLECTD_TAIL_CSV bool "tail csv" help Follows (tails) files in CSV format, parses each line and submits extracted values. config BR2_PACKAGE_COLLECTD_TCPCONNS bool "tcpconns" help Counts the number of TCP connections to/from a specified port. config BR2_PACKAGE_COLLECTD_THERMAL bool "thermal" help Reads ACPI thermal zone information. config BR2_PACKAGE_COLLECTD_UBI bool "ubi" help UBI (Unsorted Block Images) is an erase block management layer for flash memory devices. UBI serves two purposes, tracking NAND flash bad blocks and providing wear leveling. This plugin collects some stats about UBI devices: * bad physical underlying blocks (bad_peb_count) * max erase counter value (max_ec) config BR2_PACKAGE_COLLECTD_UPTIME bool "uptime" help Keeps track of the system uptime. config BR2_PACKAGE_COLLECTD_USERS bool "users" help Counts the number of users currently logged in. config BR2_PACKAGE_COLLECTD_VMEM bool "vmem" help Collects information about the virtual memory subsystem. config BR2_PACKAGE_COLLECTD_WIRELESS bool "wireless" help Collects signal quality, power and noise ratio for WLAN cards. config BR2_PACKAGE_COLLECTD_ZOOKEEPER bool "zookeeper" help Read data from Zookeeper's MNTR command. endmenu menu "target plugins" config BR2_PACKAGE_COLLECTD_NOTIFICATION bool "notification" help Create and dispatch a notification. config BR2_PACKAGE_COLLECTD_REPLACE bool "replace" help Replace parts of an identifier using regular expressions. config BR2_PACKAGE_COLLECTD_SCALE bool "scale" help Scale (multiply) values by an arbitrary number. config BR2_PACKAGE_COLLECTD_SET bool "set" help Set (overwrite) entire parts of an identifier. endmenu menu "write plugins" comment "Select at least one for collectd to be useful" config BR2_PACKAGE_COLLECTD_AMQP bool "amqp" select BR2_PACKAGE_OPENSSL # needs rabbitmq-c with ssl support select BR2_PACKAGE_RABBITMQ_C help Send/receive values via the Advanced Message Queuing Protocol (AMQP). config BR2_PACKAGE_COLLECTD_CSV bool "csv" help Writes values to a plain-text file in Comma Separated Values format. config BR2_PACKAGE_COLLECTD_GRAPHITE bool "graphite" help Writes data collected to Carbon (Graphite's) storage API. http://graphite.wikidot.com/start config BR2_PACKAGE_COLLECTD_GRPC bool "grpc" depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC # grpc depends on BR2_INSTALL_LIBSTDCPP # grpc -> protobuf depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # grpc -> protobuf depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # grpc -> libabseil-cpp depends on BR2_HOST_GCC_AT_LEAST_4_9 # grpc -> host-libabseil-cpp depends on BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS # grpc select BR2_PACKAGE_GRPC help Send/receive values using the gRPC protocol. comment "grpc needs a toolchain w/ C++, gcc >= 4.9, host gcc >= 4.9" depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \ || !BR2_HOST_GCC_AT_LEAST_4_9 depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS depends on BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS # grpc config BR2_PACKAGE_COLLECTD_MQTT bool "mqtt" select BR2_PACKAGE_MOSQUITTO help Sends metrics to and/or receives metrics from an MQTT broker. config BR2_PACKAGE_COLLECTD_NETWORK bool "network" help Send/receive values from other instances of collectd. config BR2_PACKAGE_COLLECTD_NETWORK_GCRYPT bool "crypto support" depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt depends on BR2_PACKAGE_COLLECTD_NETWORK select BR2_PACKAGE_LIBGCRYPT help Enable crypto support config BR2_PACKAGE_COLLECTD_RRDTOOL bool "rrdtool" depends on BR2_USE_WCHAR # rrdtool select BR2_PACKAGE_RRDTOOL help Writes values to RRD-files. comment "rrdtool support needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR config BR2_PACKAGE_COLLECTD_RIEMANN bool "riemann" # riemann-c-client -> protobuf-c depends on BR2_INSTALL_LIBSTDCPP depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" select BR2_PACKAGE_RIEMANN_C_CLIENT select BR2_PACKAGE_LIBTOOL help Sends data to Riemann, a stream processing and monitoring system. config BR2_PACKAGE_COLLECTD_UNIXSOCK bool "unixsock" help Opens a UNIX domain socket and accepts connections. One can send commands to the daemon and receive information. config BR2_PACKAGE_COLLECTD_WRITEHTTP bool "write_http" select BR2_PACKAGE_LIBCURL help Sends values collected to a web-server using HTTP POST and PUTVAL. config BR2_PACKAGE_COLLECTD_WRITEINFLUXDBUDP bool "write_influxdb_udp" help Sends data to an instance of InfluxDB using the "Line Protocol". config BR2_PACKAGE_COLLECTD_WRITELOG bool "write_log" help Writes data to the log. config BR2_PACKAGE_COLLECTD_WRITEPROMETHEUS bool "write_prometheus" depends on BR2_INSTALL_LIBSTDCPP # protobuf-c depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" # protobuf-c select BR2_PACKAGE_LIBMICROHTTPD select BR2_PACKAGE_PROTOBUF_C help Publishes values using an embedded HTTP server, in a format compatible with Prometheus' collectd_exporter. comment "write_prometheus needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" config BR2_PACKAGE_COLLECTD_WRITEREDIS bool "write_redis" select BR2_PACKAGE_HIREDIS help Sends data to Redis. config BR2_PACKAGE_COLLECTD_WRITESENSU bool "write_sensu" help Sends data to Sensu, a stream processing and monitoring system, via the Sensu client local TCP socket. config BR2_PACKAGE_COLLECTD_WRITETSDB bool "write_tsdb" help Sends data OpenTSDB, a scalable no master, no shared state time series database. endmenu endif comment "collectd needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS depends on BR2_USE_MMU ================================================ FILE: package/collectd/S90collectd ================================================ #!/bin/sh DAEMON="collectd" EXEC="/usr/sbin/$DAEMON" PIDFILE="/var/run/$DAEMON.pid" COLLECTD_ARGS="" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "$EXEC" \ -- $COLLECTD_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/collectd/collectd.hash ================================================ # Locally computed checksums sha512 7a15e4c0ae587db4987d673a790a4f3bea1cab29ce24a506fb21fa7bd2f60bfec70867eaa1c1395cb5b0e0ae81a024fb6109b064da0ef50e7c146d2198871c70 collectd-5.12.0.tar.bz2 sha256 5bae043042c19c31f77eb8464e56a01a5454e0b39fa07cf7ad0f1bfc9c3a09d6 collectd-5.12.0.tar.bz2 sha1 af36fe83e2995270b5632fc21e5a001e6702cdce collectd-5.12.0.tar.bz2 sha256 ed0409b2b1c30566dab5fcdaf46ee70e140c99788e22f0267645a9357b476ae4 COPYING ================================================ FILE: package/collectd/collectd.mk ================================================ ################################################################################ # # collectd # ################################################################################ COLLECTD_VERSION = 5.12.0 COLLECTD_SITE = \ https://github.com/collectd/collectd/releases/download/collectd-$(COLLECTD_VERSION) COLLECTD_SOURCE = collectd-$(COLLECTD_VERSION).tar.bz2 COLLECTD_CONF_ENV = ac_cv_lib_yajl_yajl_alloc=yes COLLECTD_INSTALL_STAGING = YES COLLECTD_LICENSE = MIT (daemon, plugins), GPL-2.0 (plugins), LGPL-2.1 (plugins) COLLECTD_LICENSE_FILES = COPYING COLLECTD_CPE_ID_VENDOR = collectd COLLECTD_SELINUX_MODULES = apache collectd # These require unmet dependencies, are fringe, pointless or deprecated COLLECTD_PLUGINS_DISABLE = \ apple_sensors aquaero ascent barometer dpdkstat email \ gmond hddtemp intel_rdt ipmi java lpar \ madwifi mbmon mic multimeter netapp notify_desktop numa \ oracle perl pf pinba powerdns python routeros \ rrdcached sigrok tape target_v5upgrade teamspeak2 ted \ tokyotyrant turbostat uuid varnish virt vserver write_kafka \ write_mongodb xencpu xmms zfs_arc zone COLLECTD_CONF_ENV += LIBS="-lm" # # NOTE: There's also a third availible setting "intswap", which might # be needed on some old ARM hardware (see [2]), but is not being # accounted for as per discussion [1] # # [1] http://lists.busybox.net/pipermail/buildroot/2017-November/206100.html # [2] http://lists.busybox.net/pipermail/buildroot/2017-November/206251.html # ifeq ($(BR2_ENDIAN),"BIG") COLLECTD_FP_LAYOUT=endianflip else COLLECTD_FP_LAYOUT=nothing endif COLLECTD_CONF_OPTS += \ --with-nan-emulation \ --with-fp-layout=$(COLLECTD_FP_LAYOUT) \ --with-perl-bindings=no \ --disable-werror \ $(foreach p, $(COLLECTD_PLUGINS_DISABLE), --disable-$(p)) \ $(if $(BR2_PACKAGE_COLLECTD_AGGREGATION),--enable-aggregation,--disable-aggregation) \ $(if $(BR2_PACKAGE_COLLECTD_AMQP),--enable-amqp,--disable-amqp) \ $(if $(BR2_PACKAGE_COLLECTD_APACHE),--enable-apache,--disable-apache) \ $(if $(BR2_PACKAGE_COLLECTD_APCUPS),--enable-apcups,--disable-apcups) \ $(if $(BR2_PACKAGE_COLLECTD_BATTERY),--enable-battery,--disable-battery) \ $(if $(BR2_PACKAGE_COLLECTD_BIND),--enable-bind,--disable-bind) \ $(if $(BR2_PACKAGE_COLLECTD_BUDDYINFO),--enable-buddyinfo,--disable-buddyinfo) \ $(if $(BR2_PACKAGE_COLLECTD_CAPABILITIES),--enable-capabilities,--disable-capabilities) \ $(if $(BR2_PACKAGE_COLLECTD_CEPH),--enable-ceph,--disable-ceph) \ $(if $(BR2_PACKAGE_COLLECTD_CHRONY),--enable-chrony,--disable-chrony) \ $(if $(BR2_PACKAGE_COLLECTD_CGROUPS),--enable-cgroups,--disable-cgroups) \ $(if $(BR2_PACKAGE_COLLECTD_CONNTRACK),--enable-conntrack,--disable-conntrack) \ $(if $(BR2_PACKAGE_COLLECTD_CONTEXTSWITCH),--enable-contextswitch,--disable-contextswitch) \ $(if $(BR2_PACKAGE_COLLECTD_CPU),--enable-cpu,--disable-cpu) \ $(if $(BR2_PACKAGE_COLLECTD_CPUFREQ),--enable-cpufreq,--disable-cpufreq) \ $(if $(BR2_PACKAGE_COLLECTD_CPUSLEEP),--enable-cpusleep,--disable-cpusleep) \ $(if $(BR2_PACKAGE_COLLECTD_CSV),--enable-csv,--disable-csv) \ $(if $(BR2_PACKAGE_COLLECTD_CURL),--enable-curl,--disable-curl) \ $(if $(BR2_PACKAGE_COLLECTD_CURL_JSON),--enable-curl_json,--disable-curl_json) \ $(if $(BR2_PACKAGE_COLLECTD_CURL_XML),--enable-curl_xml,--disable-curl_xml) \ $(if $(BR2_PACKAGE_COLLECTD_DBI),--enable-dbi,--disable-dbi) \ $(if $(BR2_PACKAGE_COLLECTD_DF),--enable-df,--disable-df) \ $(if $(BR2_PACKAGE_COLLECTD_DISK),--enable-disk,--disable-disk) \ $(if $(BR2_PACKAGE_COLLECTD_DNS),--enable-dns,--disable-dns) \ $(if $(BR2_PACKAGE_COLLECTD_DPDK_TELEMETRY),--enable-dpdk_telemetry,--disable-dpdk_telemetry) \ $(if $(BR2_PACKAGE_COLLECTD_DRBD),--enable-drbd,--disable-drbd) \ $(if $(BR2_PACKAGE_COLLECTD_EMPTY_COUNTER),--enable-match_empty_counter,--disable-match_empty_counter) \ $(if $(BR2_PACKAGE_COLLECTD_ENTROPY),--enable-entropy,--disable-entropy) \ $(if $(BR2_PACKAGE_COLLECTD_ETHSTAT),--enable-ethstat,--disable-ethstat) \ $(if $(BR2_PACKAGE_COLLECTD_EXEC),--enable-exec,--disable-exec) \ $(if $(BR2_PACKAGE_COLLECTD_FHCOUNT),--enable-fhcount,--disable-fhcount) \ $(if $(BR2_PACKAGE_COLLECTD_FILECOUNT),--enable-filecount,--disable-filecount) \ $(if $(BR2_PACKAGE_COLLECTD_FSCACHE),--enable-fscache,--disable-fscache) \ $(if $(BR2_PACKAGE_COLLECTD_GPS),--enable-gps,--disable-gps) \ $(if $(BR2_PACKAGE_COLLECTD_GRAPHITE),--enable-write_graphite,--disable-write_graphite) \ $(if $(BR2_PACKAGE_COLLECTD_GRPC),--enable-grpc,--disable-grpc) \ $(if $(BR2_PACKAGE_COLLECTD_HASHED),--enable-match_hashed,--disable-match_hashed) \ $(if $(BR2_PACKAGE_COLLECTD_HUGEPAGES),--enable-hugepages,--disable-hugepages) \ $(if $(BR2_PACKAGE_COLLECTD_INFINIBAND),--enable-infiniband,--disable-infiniband) \ $(if $(BR2_PACKAGE_COLLECTD_INTERFACE),--enable-interface,--disable-interface) \ $(if $(BR2_PACKAGE_COLLECTD_IPC),--enable-ipc,--disable-ipc) \ $(if $(BR2_PACKAGE_COLLECTD_IPTABLES),--enable-iptables,--disable-iptables) \ $(if $(BR2_PACKAGE_COLLECTD_IPVS),--enable-ipvs,--disable-ipvs) \ $(if $(BR2_PACKAGE_COLLECTD_IRQ),--enable-irq,--disable-irq) \ $(if $(BR2_PACKAGE_COLLECTD_LOAD),--enable-load,--disable-load) \ $(if $(BR2_PACKAGE_COLLECTD_LOGFILE),--enable-logfile,--disable-logfile) \ $(if $(BR2_PACKAGE_COLLECTD_LOGPARSER),--enable-logparser,--disable-logparser) \ $(if $(BR2_PACKAGE_COLLECTD_LOGSTASH),--enable-log_logstash,--disable-log_logstash) \ $(if $(BR2_PACKAGE_COLLECTD_LUA),--enable-lua,--disable-lua) \ $(if $(BR2_PACKAGE_COLLECTD_MD),--enable-md,--disable-md) \ $(if $(BR2_PACKAGE_COLLECTD_MDEVENTS),--enable-mdevents,--disable-mdevents) \ $(if $(BR2_PACKAGE_COLLECTD_MEMCACHEC),--enable-memcachec,--disable-memcachec) \ $(if $(BR2_PACKAGE_COLLECTD_MEMCACHED),--enable-memcached,--disable-memcached) \ $(if $(BR2_PACKAGE_COLLECTD_MEMORY),--enable-memory,--disable-memory) \ $(if $(BR2_PACKAGE_COLLECTD_MODBUS),--enable-modbus,--disable-modbus) \ $(if $(BR2_PACKAGE_COLLECTD_MQTT),--enable-mqtt,--disable-mqtt) \ $(if $(BR2_PACKAGE_COLLECTD_MYSQL),--enable-mysql,--disable-mysql) \ $(if $(BR2_PACKAGE_COLLECTD_NETLINK),--enable-netlink,--disable-netlink) \ $(if $(BR2_PACKAGE_COLLECTD_NETWORK),--enable-network,--disable-network) \ $(if $(BR2_PACKAGE_COLLECTD_NFS),--enable-nfs,--disable-nfs) \ $(if $(BR2_PACKAGE_COLLECTD_NGINX),--enable-nginx,--disable-nginx) \ $(if $(BR2_PACKAGE_COLLECTD_NOTIFICATION),--enable-target_notification,--disable-target_notification) \ $(if $(BR2_PACKAGE_COLLECTD_NOTIFY_EMAIL),--enable-notify_email,--disable-notify_email) \ $(if $(BR2_PACKAGE_COLLECTD_NOTIFY_NAGIOS),--enable-notify_nagios,--disable-notify_nagios) \ $(if $(BR2_PACKAGE_COLLECTD_NTPD),--enable-ntpd,--disable-ntpd) \ $(if $(BR2_PACKAGE_COLLECTD_NUT),--enable-nut,--disable-nut) \ $(if $(BR2_PACKAGE_COLLECTD_OLSRD),--enable-olsrd,--disable-olsrd) \ $(if $(BR2_PACKAGE_COLLECTD_ONEWIRE),--enable-onewire,--disable-onewire) \ $(if $(BR2_PACKAGE_COLLECTD_OPENLDAP),--enable-openldap,--disable-openldap) \ $(if $(BR2_PACKAGE_COLLECTD_OPENVPN),--enable-openvpn,--disable-openvpn) \ $(if $(BR2_PACKAGE_COLLECTD_PING),--enable-ping,--disable-ping) \ $(if $(BR2_PACKAGE_COLLECTD_POSTGRESQL),--enable-postgresql,--disable-postgresql) \ $(if $(BR2_PACKAGE_COLLECTD_PROCESSES),--enable-processes,--disable-processes) \ $(if $(BR2_PACKAGE_COLLECTD_PROTOCOLS),--enable-protocols,--disable-protocols) \ $(if $(BR2_PACKAGE_COLLECTD_REDIS),--enable-redis,--disable-redis) \ $(if $(BR2_PACKAGE_COLLECTD_REGEX),--enable-match_regex,--disable-match-regex) \ $(if $(BR2_PACKAGE_COLLECTD_REPLACE),--enable-target_replace,--disable-target_replace) \ $(if $(BR2_PACKAGE_COLLECTD_RIEMANN),--enable-write_riemann,--disable-write_riemann) \ $(if $(BR2_PACKAGE_COLLECTD_RRDTOOL),--enable-rrdtool,--disable-rrdtool) \ $(if $(BR2_PACKAGE_COLLECTD_SCALE),--enable-target_scale,--disable-target_scale) \ $(if $(BR2_PACKAGE_COLLECTD_SENSORS),--enable-sensors,--disable-sensors) \ $(if $(BR2_PACKAGE_COLLECTD_SERIAL),--enable-serial,--disable-serial) \ $(if $(BR2_PACKAGE_COLLECTD_STATSD),--enable-statsd,--disable-statsd) \ $(if $(BR2_PACKAGE_COLLECTD_SET),--enable-target_set,--disable-target_set) \ $(if $(BR2_PACKAGE_COLLECTD_SMART),--enable-smart,--disable-smart) \ $(if $(BR2_PACKAGE_COLLECTD_SNMP),--enable-snmp,--disable-snmp) \ $(if $(BR2_PACKAGE_COLLECTD_SWAP),--enable-swap,--disable-swap) \ $(if $(BR2_PACKAGE_COLLECTD_SYNPROXY),--enable-synproxy,--disable-synproxy) \ $(if $(BR2_PACKAGE_COLLECTD_SYSLOG),--enable-syslog,--disable-syslog) \ $(if $(BR2_PACKAGE_COLLECTD_TABLE),--enable-table,--disable-table) \ $(if $(BR2_PACKAGE_COLLECTD_TAIL),--enable-tail,--disable-tail) \ $(if $(BR2_PACKAGE_COLLECTD_TAIL_CSV),--enable-tail_csv,--disable-tail_csv) \ $(if $(BR2_PACKAGE_COLLECTD_TCPCONNS),--enable-tcpconns,--disable-tcpconns) \ $(if $(BR2_PACKAGE_COLLECTD_THERMAL),--enable-thermal,--disable-thermal) \ $(if $(BR2_PACKAGE_COLLECTD_THRESHOLD),--enable-threshold,--disable-threshold) \ $(if $(BR2_PACKAGE_COLLECTD_TIMEDIFF),--enable-match_timediff,--disable-match_timediff) \ $(if $(BR2_PACKAGE_COLLECTD_UBI),--enable-ubi,--disable-ubi) \ $(if $(BR2_PACKAGE_COLLECTD_UNIXSOCK),--enable-unixsock,--disable-unixsock) \ $(if $(BR2_PACKAGE_COLLECTD_UPTIME),--enable-uptime,--disable-uptime) \ $(if $(BR2_PACKAGE_COLLECTD_USERS),--enable-users,--disable-users) \ $(if $(BR2_PACKAGE_COLLECTD_VALUE),--enable-match_value,--disable-match_value) \ $(if $(BR2_PACKAGE_COLLECTD_VMEM),--enable-vmem,--disable-vmem) \ $(if $(BR2_PACKAGE_COLLECTD_WIRELESS),--enable-wireless,--disable-wireless) \ $(if $(BR2_PACKAGE_COLLECTD_WRITEHTTP),--enable-write_http,--disable-write_http) \ $(if $(BR2_PACKAGE_COLLECTD_WRITEINFLUXDBUDP),--enable-write_influxdb_udp,--disable-write_influxdb_udp) \ $(if $(BR2_PACKAGE_COLLECTD_WRITELOG),--enable-write_log,--disable-write_log) \ $(if $(BR2_PACKAGE_COLLECTD_WRITEPROMETHEUS),--enable-write_prometheus,--disable-write_prometheus) \ $(if $(BR2_PACKAGE_COLLECTD_WRITEREDIS),--enable-write_redis,--disable-write_redis) \ $(if $(BR2_PACKAGE_COLLECTD_WRITESENSU),--enable-write_sensu,--disable-write_sensu) \ $(if $(BR2_PACKAGE_COLLECTD_WRITETSDB),--enable-write_tsdb,--disable-write_tsdb) \ $(if $(BR2_PACKAGE_COLLECTD_ZOOKEEPER),--enable-zookeeper,--disable-zookeeper) COLLECTD_DEPENDENCIES = \ host-pkgconf \ $(if $(BR2_PACKAGE_COLLECTD_AMQP),rabbitmq-c) \ $(if $(BR2_PACKAGE_COLLECTD_APACHE),libcurl) \ $(if $(BR2_PACKAGE_COLLECTD_BIND),libcurl libxml2) \ $(if $(BR2_PACKAGE_COLLECTD_CAPABILITIES),jansson libmicrohttpd) \ $(if $(BR2_PACKAGE_COLLECTD_CEPH),yajl) \ $(if $(BR2_PACKAGE_COLLECTD_CURL),libcurl) \ $(if $(BR2_PACKAGE_COLLECTD_CURL_JSON),libcurl yajl) \ $(if $(BR2_PACKAGE_COLLECTD_CURL_XML),libcurl libxml2) \ $(if $(BR2_PACKAGE_COLLECTD_DBI),libdbi) \ $(if $(BR2_PACKAGE_COLLECTD_DNS),libpcap) \ $(if $(BR2_PACKAGE_COLLECTD_DPDK_TELEMETRY),jansson) \ $(if $(BR2_PACKAGE_COLLECTD_GPS),gpsd) \ $(if $(BR2_PACKAGE_COLLECTD_GRPC),grpc) \ $(if $(BR2_PACKAGE_COLLECTD_IPTABLES),iptables) \ $(if $(BR2_PACKAGE_COLLECTD_LOGSTASH),yajl) \ $(if $(BR2_PACKAGE_COLLECTD_LUA),luainterpreter) \ $(if $(BR2_PACKAGE_COLLECTD_MEMCACHEC),libmemcached) \ $(if $(BR2_PACKAGE_COLLECTD_MODBUS),libmodbus) \ $(if $(BR2_PACKAGE_COLLECTD_MQTT),mosquitto) \ $(if $(BR2_PACKAGE_COLLECTD_MYSQL),mysql) \ $(if $(BR2_PACKAGE_COLLECTD_NETLINK),libmnl) \ $(if $(BR2_PACKAGE_COLLECTD_NGINX),libcurl) \ $(if $(BR2_PACKAGE_COLLECTD_NOTIFY_EMAIL),libesmtp) \ $(if $(BR2_PACKAGE_COLLECTD_NUT),nut) \ $(if $(BR2_PACKAGE_COLLECTD_ONEWIRE),owfs) \ $(if $(BR2_PACKAGE_COLLECTD_OPENLDAP),openldap) \ $(if $(BR2_PACKAGE_COLLECTD_PING),liboping) \ $(if $(BR2_PACKAGE_COLLECTD_POSTGRESQL),postgresql) \ $(if $(BR2_PACKAGE_COLLECTD_REDIS),hiredis) \ $(if $(BR2_PACKAGE_COLLECTD_RIEMANN),libtool riemann-c-client) \ $(if $(BR2_PACKAGE_COLLECTD_RRDTOOL),rrdtool) \ $(if $(BR2_PACKAGE_COLLECTD_SENSORS),lm-sensors) \ $(if $(BR2_PACKAGE_COLLECTD_SMART),libatasmart) \ $(if $(BR2_PACKAGE_COLLECTD_SNMP),netsnmp) \ $(if $(BR2_PACKAGE_COLLECTD_WRITEHTTP),libcurl) \ $(if $(BR2_PACKAGE_COLLECTD_WRITEPROMETHEUS),libmicrohttpd protobuf-c) \ $(if $(BR2_PACKAGE_COLLECTD_WRITEREDIS),hiredis) # include/library fixups ifeq ($(BR2_PACKAGE_JANSSON),y) COLLECTD_CONF_OPTS += --with-libjansson=$(STAGING_DIR)/usr endif ifeq ($(BR2_PACKAGE_LIBCURL),y) COLLECTD_CONF_OPTS += --with-libcurl=$(STAGING_DIR)/usr endif ifeq ($(BR2_PACKAGE_LUAJIT),y) COLLECTD_CONF_ENV += LIBLUA_PKG_CONFIG_NAME=luajit endif ifeq ($(BR2_PACKAGE_MYSQL),y) COLLECTD_CONF_OPTS += --with-libmysql=$(STAGING_DIR)/usr endif ifeq ($(BR2_PACKAGE_NETSNMP),y) COLLECTD_CONF_OPTS += --with-libnetsnmp=$(STAGING_DIR)/usr endif ifeq ($(BR2_PACKAGE_POSTGRESQL),y) COLLECTD_CONF_OPTS += --with-libpq=$(STAGING_DIR)/usr/bin/pg_config COLLECTD_CONF_ENV += LIBS="-lpthread -lm" endif ifeq ($(BR2_PACKAGE_YAJL),y) COLLECTD_CONF_OPTS += --with-libyajl=$(STAGING_DIR)/usr endif # network can use libgcrypt ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) COLLECTD_DEPENDENCIES += libgcrypt COLLECTD_CONF_OPTS += --with-libgcrypt=$(STAGING_DIR)/usr/bin/libgcrypt-config else COLLECTD_CONF_OPTS += --with-libgcrypt=no endif define COLLECTD_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) install rm -f $(TARGET_DIR)/usr/bin/collectd-nagios endef ifeq ($(BR2_PACKAGE_COLLECTD_POSTGRESQL),) define COLLECTD_REMOVE_UNNEEDED_POSTGRESQL_DEFAULT_CONF rm -f $(TARGET_DIR)/usr/share/collectd/postgresql_default.conf endef COLLECTD_POST_INSTALL_TARGET_HOOKS += COLLECTD_REMOVE_UNNEEDED_POSTGRESQL_DEFAULT_CONF endif define COLLECTD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/collectd/collectd.service \ $(TARGET_DIR)/usr/lib/systemd/system/collectd.service endef define COLLECTD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/collectd/S90collectd \ $(TARGET_DIR)/etc/init.d/S90collectd endef $(eval $(autotools-package)) ================================================ FILE: package/collectd/collectd.service ================================================ [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 ================================================ FILE: package/collectl/Config.in ================================================ config BR2_PACKAGE_COLLECTL bool "collectl" depends on BR2_USE_MMU # perl select BR2_PACKAGE_PERL # runtime help Collectl is a performance monitoring and benchmark tool that tries to do it all. You can choose to monitor any of a broad set of subsystems which currently include buddyinfo, cpu, disk, inodes, infiniband, lustre, memory, network, nfs, processes, quadrics, slabs, sockets and tcp. http://collectl.sourceforge.net/ ================================================ FILE: package/collectl/collectl.hash ================================================ # Locally calculated sha256 2187264d974b36a653c8a4b028ac6eeab23e1885f8b2563a33f06358f39889f1 collectl-4.3.1.src.tar.gz sha256 b92800d37afa2aa03c02817ff3b68efc7236436fe76af06ad9b1fc4682f59bcb ARTISTIC sha256 264fe27852db5624e6a9a9845b4e14e91ee5007305b33e5556dfade394d578a8 COPYING sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 GPL ================================================ FILE: package/collectl/collectl.mk ================================================ ################################################################################ # # collectl # ################################################################################ COLLECTL_VERSION = 4.3.1 COLLECTL_SOURCE = collectl-$(COLLECTL_VERSION).src.tar.gz COLLECTL_SITE = http://downloads.sourceforge.net/collectl/collectl COLLECTL_LICENSE = Artistic or GPL-2.0 COLLECTL_LICENSE_FILES = COPYING ARTISTIC GPL define COLLECTL_INSTALL_TARGET_CMDS (cd $(@D); \ DESTDIR=$(TARGET_DIR) ./INSTALL) endef $(eval $(generic-package)) ================================================ FILE: package/comix-cursors/Config.in ================================================ config BR2_PACKAGE_COMIX_CURSORS bool "comix-cursors" help X11 mouse theme with a comics feeling. http://kde-look.org/content/show.php/ComixCursors?content=32627 ================================================ FILE: package/comix-cursors/comix-cursors.hash ================================================ # Locally calculated sha256 9e68ea8ff230dcc793528aa5da9a38b9bf61c478cd6868b4e4f5da659746a019 ComixCursors-0.9.1.tar.bz2 ================================================ FILE: package/comix-cursors/comix-cursors.mk ================================================ ################################################################################ # # comix-cursors # ################################################################################ COMIX_CURSORS_VERSION = 0.9.1 COMIX_CURSORS_SITE = https://limitland.gitlab.io/comixcursors COMIX_CURSORS_SOURCE = ComixCursors-$(COMIX_CURSORS_VERSION).tar.bz2 COMIX_CURSORS_LICENSE = GPL-3.0 COMIX_CURSORS_STRIP_COMPONENTS = 0 define COMIX_CURSORS_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/share/cursors/xorg-x11 cp -a $(@D)/* \ $(TARGET_DIR)/usr/share/cursors/xorg-x11 endef $(eval $(generic-package)) ================================================ FILE: package/connman/Config.in ================================================ config BR2_PACKAGE_CONNMAN bool "connman" depends on BR2_USE_WCHAR # libglib2 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_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_USES_MUSL # missing res_ninit() select BR2_PACKAGE_DBUS select BR2_PACKAGE_LIBGLIB2 help The Connection Manager (ConnMan) project provides a daemon for managing internet connections within embedded devices running the Linux operating system. https://01.org/connman if BR2_PACKAGE_CONNMAN choice prompt "Firewall type" default BR2_PACKAGE_CONNMAN_IPTABLES help Select which firewall type is used. config BR2_PACKAGE_CONNMAN_IPTABLES bool "iptables" select BR2_PACKAGE_IPTABLES help Use iptables as firewall. config BR2_PACKAGE_CONNMAN_NFTABLES bool "nftables" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 select BR2_PACKAGE_LIBMNL select BR2_PACKAGE_NFTABLES help Use nftables as firewall. endchoice config BR2_PACKAGE_CONNMAN_ETHERNET bool "enable Ethernet support" default y config BR2_PACKAGE_CONNMAN_WIFI bool "enable WiFi support" select BR2_PACKAGE_WPA_SUPPLICANT # runtime select BR2_PACKAGE_WPA_SUPPLICANT_DBUS # runtime help Enable WiFi support (scan and static/dhcp interface setup). ConnMan detects the start of wpa_supplicant automatically. config BR2_PACKAGE_CONNMAN_WIREGUARD bool "enable wireguard support" select BR2_PACKAGE_LIBMNL config BR2_PACKAGE_CONNMAN_WISPR bool "enable WISPr support" depends on !BR2_STATIC_LIBS # gnutls select BR2_PACKAGE_GNUTLS help Enable support for Wireless Internet Service Provider roaming (WISPr). A RADIUS server is used to authenticate the subscriber's credentials. comment "connman WISPr needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_CONNMAN_BLUETOOTH bool "enable Bluetooth support" help Enable Bluetooth support. The start of bluetoothd is automatically detected and only a runtime dependency. config BR2_PACKAGE_CONNMAN_LOOPBACK bool "enable loopback support" config BR2_PACKAGE_CONNMAN_NEARD bool "enable neard support" depends on BR2_TOOLCHAIN_HAS_SYNC_4 # neard select BR2_PACKAGE_NEARD config BR2_PACKAGE_CONNMAN_OFONO bool "enable ofono support" depends on BR2_TOOLCHAIN_HAS_SYNC_4 # ofono depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 # ofono select BR2_PACKAGE_OFONO comment "ofono support needs a toolchain w/ headers >= 4.12" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 config BR2_PACKAGE_CONNMAN_DEBUG bool "enable compiling with debugging information" config BR2_PACKAGE_CONNMAN_CLIENT bool "enable command line client" select BR2_PACKAGE_READLINE endif # BR2_PACKAGE_CONNMAN comment "connman needs 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_TOOLCHAIN_USES_MUSL ================================================ FILE: package/connman/S45connman ================================================ #!/bin/sh DAEMON="connmand" PIDFILE="/var/run/$DAEMON.pid" CONNMAND_ARGS="-n" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -m -b -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- $CONNMAND_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/connman/connman.hash ================================================ # From https://www.kernel.org/pub/linux/network/connman/sha256sums.asc sha256 1a57ae7ce234aa3a1744aac3be5c2121d98dce999440ef8ab9cc4edfd5edcb12 connman-1.40.tar.xz # Locally computed sha256 b499eddebda05a8859e32b820a64577d91f1de2b52efa2a1575a2cb4000bc259 COPYING ================================================ FILE: package/connman/connman.mk ================================================ ################################################################################ # # connman # ################################################################################ CONNMAN_VERSION = 1.40 CONNMAN_SOURCE = connman-$(CONNMAN_VERSION).tar.xz CONNMAN_SITE = $(BR2_KERNEL_MIRROR)/linux/network/connman CONNMAN_DEPENDENCIES = libglib2 dbus iptables CONNMAN_INSTALL_STAGING = YES CONNMAN_LICENSE = GPL-2.0 CONNMAN_LICENSE_FILES = COPYING CONNMAN_CPE_ID_VENDOR = intel CONNMAN_CONF_OPTS = --with-dbusconfdir=/etc ifeq ($(BR2_INIT_SYSTEMD),y) CONNMAN_CONF_OPTS += --with-systemdunitdir=/usr/lib/systemd/system endif ifeq ($(BR2_PACKAGE_CONNMAN_BLUETOOTH),y) CONNMAN_CONF_OPTS += --enable-bluetooth else CONNMAN_CONF_OPTS += --disable-bluetooth endif ifeq ($(BR2_PACKAGE_CONNMAN_DEBUG),y) CONNMAN_CONF_OPTS += --enable-debug else CONNMAN_CONF_OPTS += --disable-debug endif ifeq ($(BR2_PACKAGE_CONNMAN_ETHERNET),y) CONNMAN_CONF_OPTS += --enable-ethernet else CONNMAN_CONF_OPTS += --disable-ethernet endif ifeq ($(BR2_PACKAGE_CONNMAN_IPTABLES),y) CONNMAN_CONF_OPTS += --with-firewall=iptables CONNMAN_DEPENDENCIES += iptables else ifeq ($(BR2_PACKAGE_CONNMAN_NFTABLES),y) CONNMAN_CONF_OPTS += --with-firewall=nftables CONNMAN_DEPENDENCIES += libmnl nftables endif ifeq ($(BR2_PACKAGE_CONNMAN_LOOPBACK),y) CONNMAN_CONF_OPTS += --enable-loopback else CONNMAN_CONF_OPTS += --disable-loopback endif ifeq ($(BR2_PACKAGE_CONNMAN_NEARD),y) CONNMAN_CONF_OPTS += --enable-neard CONNMAN_DEPENDENCIES += neard else CONNMAN_CONF_OPTS += --disable-neard endif ifeq ($(BR2_PACKAGE_CONNMAN_OFONO),y) CONNMAN_CONF_OPTS += --enable-ofono CONNMAN_DEPENDENCIES += ofono else CONNMAN_CONF_OPTS += --disable-ofono endif ifeq ($(BR2_PACKAGE_CONNMAN_WIFI),y) CONNMAN_CONF_OPTS += --enable-wifi else CONNMAN_CONF_OPTS += --disable-wifi endif ifeq ($(BR2_PACKAGE_CONNMAN_WIREGUARD),y) CONNMAN_CONF_OPTS += --enable-wireguard CONNMAN_DEPENDENCIES += libmnl else CONNMAN_CONF_OPTS += --disable-wireguard endif ifeq ($(BR2_PACKAGE_CONNMAN_WISPR),y) CONNMAN_CONF_OPTS += --enable-wispr CONNMAN_DEPENDENCIES += gnutls else CONNMAN_CONF_OPTS += --disable-wispr endif define CONNMAN_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/connman/S45connman $(TARGET_DIR)/etc/init.d/S45connman endef ifeq ($(BR2_PACKAGE_CONNMAN_CLIENT),y) CONNMAN_LICENSE += , GPL-2.0+ (client) CONNMAN_CONF_OPTS += --enable-client CONNMAN_DEPENDENCIES += readline define CONNMAN_INSTALL_CM $(INSTALL) -m 0755 -D $(@D)/client/connmanctl $(TARGET_DIR)/usr/bin/connmanctl endef CONNMAN_POST_INSTALL_TARGET_HOOKS += CONNMAN_INSTALL_CM else CONNMAN_CONF_OPTS += --disable-client endif $(eval $(autotools-package)) ================================================ FILE: package/connman-gtk/Config.in ================================================ 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 ================================================ FILE: package/connman-gtk/connman-gtk.hash ================================================ # Locally calculated sha256 49bdc4769a7c508b0130e4705eef21aec9df1ea4f5c29fee48a0cae8db828fca connman-gtk-1.1.1.tar.bz2 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/connman-gtk/connman-gtk.mk ================================================ ################################################################################ # # 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 \ $(TARGET_NLS_DEPENDENCIES) CONNMAN_GTK_LICENSE = GPL-2.0+ CONNMAN_GTK_LICENSE_FILES = COPYING CONNMAN_GTK_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) $(eval $(autotools-package)) ================================================ FILE: package/conntrack-tools/Config.in ================================================ config BR2_PACKAGE_CONNTRACK_TOOLS bool "conntrack-tools" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_TOOLCHAIN_HAS_THREADS # libtirpc depends on !BR2_STATIC_LIBS # dlopen() select BR2_PACKAGE_LIBNETFILTER_CONNTRACK select BR2_PACKAGE_LIBNETFILTER_CTHELPER select BR2_PACKAGE_LIBNETFILTER_CTTIMEOUT select BR2_PACKAGE_LIBNETFILTER_QUEUE select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC help The conntrack-tools are a set of tools targeted at system administrators. They are conntrack, the userspace command line interface, and conntrackd, the userspace daemon. http://www.netfilter.org/projects/conntrack-tools/ comment "conntrack-tools needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !(BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_HAS_NATIVE_RPC) || \ BR2_STATIC_LIBS ================================================ FILE: package/conntrack-tools/conntrack-tools.hash ================================================ # From https://netfilter.org/projects/conntrack-tools/downloads.html sha256 590859cc848245dbfd9c6487761dd303b3a1771e007f4f42213063ca56205d5f conntrack-tools-1.4.6.tar.bz2 # Locally calculated sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/conntrack-tools/conntrack-tools.mk ================================================ ################################################################################ # # conntrack-tools # ################################################################################ CONNTRACK_TOOLS_VERSION = 1.4.6 CONNTRACK_TOOLS_SOURCE = conntrack-tools-$(CONNTRACK_TOOLS_VERSION).tar.bz2 CONNTRACK_TOOLS_SITE = http://www.netfilter.org/projects/conntrack-tools/files CONNTRACK_TOOLS_DEPENDENCIES = host-pkgconf \ libnetfilter_conntrack libnetfilter_cthelper libnetfilter_cttimeout \ libnetfilter_queue host-bison host-flex CONNTRACK_TOOLS_LICENSE = GPL-2.0+ CONNTRACK_TOOLS_LICENSE_FILES = COPYING CONNTRACK_TOOLS_CPE_ID_VENDOR = netfilter CONNTRACK_TOOLS_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_PACKAGE_LIBTIRPC),y) CONNTRACK_TOOLS_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc` CONNTRACK_TOOLS_DEPENDENCIES += libtirpc host-pkgconf endif CONNTRACK_TOOLS_CONF_ENV = CFLAGS="$(CONNTRACK_TOOLS_CFLAGS)" $(eval $(autotools-package)) ================================================ FILE: package/containerd/Config.in ================================================ config BR2_PACKAGE_CONTAINERD bool "containerd" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_TOOLCHAIN_USES_UCLIBC # runc depends on BR2_USE_MMU # util-linux select BR2_PACKAGE_RUNC if !BR2_PACKAGE_CRUN # 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://containerd.io/ if BR2_PACKAGE_CONTAINERD config BR2_PACKAGE_CONTAINERD_DRIVER_BTRFS bool "btrfs snapshot driver" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 help Build the btrfs snapshot driver for containerd. comment "brtfs snapshot driver needs headers >= 4.12" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 config BR2_PACKAGE_CONTAINERD_DRIVER_DEVMAPPER bool "devmapper snapshot driver" depends on BR2_TOOLCHAIN_HAS_THREADS # lvm2 depends on BR2_USE_MMU # lvm2 depends on !BR2_STATIC_LIBS # lvm2 select BR2_PACKAGE_LVM2 help Build the devmapper snapshot driver for containerd. comment "devmapper snapshot driver needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_CONTAINERD_DRIVER_ZFS bool "zfs snapshot driver" depends on BR2_LINUX_KERNEL # zfs depends on BR2_PACKAGE_HAS_UDEV # zfs depends on BR2_USE_MMU # zfs depends on BR2_TOOLCHAIN_HAS_THREADS # zfs select BR2_PACKAGE_ZFS help Build the zfs snapshot driver for containerd. comment "zfs snapshot driver needs a Linux kernel, udev, toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_LINUX_KERNEL || !BR2_PACKAGE_HAS_UDEV || \ !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_CONTAINERD_CRI bool "Kubernetes CRI support" help Build containerd with Kubernetes CRI support. endif comment "containerd needs a glibc or musl toolchain w/ threads" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_UCLIBC ================================================ FILE: package/containerd/containerd.hash ================================================ # Computed locally sha256 ae55b25fb04b45dfbbde8280b034783a48ae7c40350d17fd272be5cbf0284cf1 containerd-1.7.14.tar.gz sha256 4bbe3b885e8cd1907ab4cf9a41e862e74e24b5422297a4f2fe524e6a30ada2b4 LICENSE ================================================ FILE: package/containerd/containerd.mk ================================================ ################################################################################ # # containerd # ################################################################################ CONTAINERD_VERSION = 1.7.14 CONTAINERD_SITE = $(call github,containerd,containerd,v$(CONTAINERD_VERSION)) CONTAINERD_LICENSE = Apache-2.0 CONTAINERD_LICENSE_FILES = LICENSE CONTAINERD_CPE_ID_VENDOR = linuxfoundation CONTAINERD_GOMOD = github.com/containerd/containerd CONTAINERD_LDFLAGS = \ -X $(CONTAINERD_GOMOD)/version.Version=$(CONTAINERD_VERSION) CONTAINERD_BUILD_TARGETS = \ cmd/containerd \ cmd/containerd-shim \ cmd/containerd-shim-runc-v1 \ cmd/containerd-shim-runc-v2 \ cmd/ctr CONTAINERD_INSTALL_BINS = $(notdir $(CONTAINERD_BUILD_TARGETS)) CONTAINERD_TAGS = no_aufs ifeq ($(BR2_PACKAGE_LIBAPPARMOR),y) CONTAINERD_DEPENDENCIES += libapparmor CONTAINERD_TAGS += apparmor endif ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) CONTAINERD_DEPENDENCIES += libseccomp host-pkgconf CONTAINERD_TAGS += seccomp endif ifneq ($(BR2_PACKAGE_CONTAINERD_DRIVER_BTRFS),y) CONTAINERD_TAGS += no_btrfs endif ifneq ($(BR2_PACKAGE_CONTAINERD_DRIVER_DEVMAPPER),y) CONTAINERD_TAGS += no_devmapper endif ifneq ($(BR2_PACKAGE_CONTAINERD_DRIVER_ZFS),y) CONTAINERD_TAGS += no_zfs endif ifneq ($(BR2_PACKAGE_CONTAINERD_CRI),y) CONTAINERD_TAGS += no_cri endif define CONTAINERD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 $(@D)/containerd.service \ $(TARGET_DIR)/usr/lib/systemd/system/containerd.service $(SED) 's,/usr/local/bin,/usr/bin,g' $(TARGET_DIR)/usr/lib/systemd/system/containerd.service endef $(eval $(golang-package)) ================================================ FILE: package/copas/0001-Do-not-load-coxpcall-for-LuaJIT.patch ================================================ From 8d1b5a9b973a9891d676dabf31807eb825d7f262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Perrad?= Date: Wed, 6 Sep 2017 00:00:56 +0200 Subject: [PATCH] Do not load coxpcall for LuaJIT * coxpcall is only required with PUC Lua 5.1, but not with LuaJIT use the same logic as in copas.lua. this fixes issue #63. Fetch from: https://github.com/keplerproject/copas/commit/8d1b5a9b973a9891d676dabf31807eb825d7f262 Signed-off-by: Francois Perrad --- doc/us/index.html | 5 +++++ src/copas/limit.lua | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/copas-2_0_2/doc/us/index.html b/doc/us/index.html index 1d008c2..c4d85ef 100644 --- a/copas-2_0_2/doc/us/index.html +++ b/copas-2_0_2/doc/us/index.html @@ -114,6 +114,11 @@ LuaSocket, Coxpcall (only

History

+
Copas [unreleased]
+
    +
  • Fixed: coxpcall dependency in limit.lua #63 (Francois Perrad)
  • +
+
Copas 2.0.2 [2017]
  • Added: copas.running flag
  • diff --git a/copas-2_0_2/src/copas/limit.lua b/src/copas/limit.lua index ea178be..f0dfe17 100644 --- a/copas-2_0_2/src/copas/limit.lua +++ b/copas-2_0_2/src/copas/limit.lua @@ -10,7 +10,7 @@ local pack = table.pack or function(...) return {n=select('#',...),...} end local unpack = function(t) return (table.unpack or unpack)(t, 1, t.n or #t) end local pcall = pcall -if _VERSION=="Lua 5.1" then -- obsolete: only for Lua 5.1 compatibility +if _VERSION=="Lua 5.1" and not jit then -- obsolete: only for Lua 5.1 compatibility pcall = require("coxpcall").pcall end -- 2.17.1 ================================================ FILE: package/copas/Config.in ================================================ config BR2_PACKAGE_COPAS bool "copas" select BR2_PACKAGE_COXPCALL if BR2_PACKAGE_LUA_5_1 # runtime select BR2_PACKAGE_LUASOCKET # runtime help Copas is a dispatcher based on coroutines that can be used for asynchronous networking. For example TCP or UDP based servers. But it also features timers and client support for http(s), ftp and smtp requests. http://keplerproject.github.io/copas/ ================================================ FILE: package/copas/copas.hash ================================================ # computed by luarocks/buildroot sha256 efeded4f4633bc71551175b239199304640ef918ae8ea9dc9c5047359ae07107 copas-2.0.2-1.src.rock sha256 3f59cccf38e9397f6fb34dcff983a24d336df982edb5b0cde549d0c32c28c9c0 copas-2_0_2/LICENSE ================================================ FILE: package/copas/copas.mk ================================================ ################################################################################ # # copas # ################################################################################ COPAS_VERSION = 2.0.2-1 COPAS_SUBDIR = copas-2_0_2 COPAS_LICENSE = MIT COPAS_LICENSE_FILES = $(COPAS_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/coremark/Config.in ================================================ config BR2_PACKAGE_COREMARK bool "coremark" help CoreMark is a benchmark that measures the performance of microcontrollers (MCUs) and central processing units (CPUs) used in embedded systems https://www.eembc.org/coremark/ ================================================ FILE: package/coremark/coremark.hash ================================================ # Locally computed sha256 99c5a6d63af85a281b4e4d6ccb522c446653c435dfec9455ad73ef9e71f28bde coremark-1.01.tar.gz sha256 d72094a3cb629dc7712ae09b7b777416903c6670930928b5530f2ddfb2296888 LICENSE.md ================================================ FILE: package/coremark/coremark.mk ================================================ ################################################################################ # # CoreMark # ################################################################################ COREMARK_VERSION = 1.01 COREMARK_SITE = $(call github,eembc,coremark,v$(COREMARK_VERSION)) COREMARK_LICENSE = Apache-2.0 COREMARK_LICENSE_FILES = LICENSE.md define COREMARK_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" -C $(@D) \ PORT_DIR=linux$(if $(BR2_ARCH_IS_64),64) EXE= link endef define COREMARK_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/coremark $(TARGET_DIR)/usr/bin/coremark endef $(eval $(generic-package)) ================================================ FILE: package/coremark-pro/Config.in ================================================ config BR2_PACKAGE_COREMARK_PRO bool "coremark-pro" depends on BR2_USE_MMU # perl uses fork() select BR2_PACKAGE_PERL help CoreMark-PRO is a comprehensive, advanced processor benchmark. https://www.eembc.org/coremark-pro/ ================================================ FILE: package/coremark-pro/coremark-pro.hash ================================================ # Locally computed sha256 440223554134832efec4ad220795611769ded3869fbc3ce3c59b05b7ddeb9f6d coremark-pro-1.1.2743.tar.gz sha256 0d7775bd793ea71fef3594c18164a08ed2f5f66c898958d0644f7a236a536f2b LICENSE.md ================================================ FILE: package/coremark-pro/coremark-pro.mk ================================================ ################################################################################ # # CoreMark-PRO # ################################################################################ COREMARK_PRO_VERSION = 1.1.2743 COREMARK_PRO_SITE = $(call github,eembc,coremark-pro,v$(COREMARK_PRO_VERSION)) COREMARK_PRO_LICENSE = Apache-2.0 COREMARK_PRO_LICENSE_FILES = LICENSE.md COREMARK_PRO_DEPENDENCIES = perl COREMARK_PRO_LDFLAGS = $(TARGET_LDFLAGS) -lm ifeq ($(BR2_ENDIAN),"BIG") COREMARK_PRO_DEFINES += \ EE_BIG_ENDIAN=1 \ EE_LITTLE_ENDIAN=0 else COREMARK_PRO_DEFINES += \ EE_BIG_ENDIAN=0 \ EE_LITTLE_ENDIAN=1 endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) COREMARK_PRO_DEFINES += \ USE_NATIVE_PTHREAD=1 \ USE_SINGLE_CONTEXT=0 COREMARK_PRO_LDFLAGS += -lpthread else COREMARK_PRO_DEFINES += \ USE_NATIVE_PTHREAD=0 \ USE_SINGLE_CONTEXT=1 endif COREMARK_PRO_MAKE_OPTS += \ LINKER_LAST="$(COREMARK_PRO_LDFLAGS)" \ PLATFORM_DEFINES="$(COREMARK_PRO_DEFINES)" \ TARGET=linux$(if $(BR2_ARCH_IS_64),64) \ EXE= define COREMARK_PRO_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) CC="$(TARGET_CC)" LD="$(TARGET_CC)" -C $(@D) \ $(COREMARK_PRO_MAKE_OPTS) build endef COREMARK_PRO_MARKS = cjpeg-rose7-preset core linear_alg-mid-100x100-sp loops-all-mid-10k-sp nnet_test parser-125k radix2-big-64k sha-test zip-test COREMARK_PRO_SCRIPTS = results_parser.pl cert_median.pl cert_mark.pl headings.txt define COREMARK_PRO_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/share/coremark-pro/logs $(foreach m,$(COREMARK_PRO_MARKS),\ $(INSTALL) -D $(@D)/builds/linux$(if $(BR2_ARCH_IS_64),64)/gcc$(if $(BR2_ARCH_IS_64),64)/bin/$(m) $(TARGET_DIR)/usr/bin/$(m)$(sep) \ size $(TARGET_DIR)/usr/bin/$(m) > $(TARGET_DIR)/usr/share/coremark-pro/logs/$(m).size.log$(sep)) $(INSTALL) -D $(@D)/builds/linux$(if $(BR2_ARCH_IS_64),64)/gcc$(if $(BR2_ARCH_IS_64),64)/data/libbmp/Rose256.bmp $(TARGET_DIR)/usr/share/coremark-pro/Rose256.bmp $(foreach s,$(COREMARK_PRO_SCRIPTS),\ $(INSTALL) -D $(@D)/util/perl/$(s) $(TARGET_DIR)/usr/share/coremark-pro/util/perl/$(s)$(sep)) $(Q)sed "s/@COREMARK_PRO_MARKS@/$(COREMARK_PRO_MARKS)/" \ package/coremark-pro/coremark-pro.sh.in >$(TARGET_DIR)/usr/bin/coremark-pro.sh endef $(eval $(generic-package)) ================================================ FILE: package/coremark-pro/coremark-pro.sh.in ================================================ #!/bin/sh # SPDX-License-Identifier: Apache-2.0 workloads="@COREMARK_PRO_MARKS@" rm -rf /tmp/coremark-pro mkdir -p /tmp/coremark-pro cp /usr/share/coremark-pro/Rose256.bmp /tmp/coremark-pro cp /usr/share/coremark-pro/logs/*.size.log /tmp/coremark-pro cd /tmp/coremark-pro for contype in single best; do cat /usr/share/coremark-pro/util/perl/headings.txt >>result.log for wld in $workloads; do [ "$contype" = "single" ] && XCMD="-c1 -w1" [ "$contype" = "best" ] && XCMD="-c$(nproc) -w$(nproc)" echo "#Results for verification run started at $(date +%x:%X) XCMD=$XCMD" >$wld-$contype-result.log echo "Verification run for $wld" $wld $XCMD -v1 > $wld.run.log LC_ALL=C perl /usr/share/coremark-pro/util/perl/results_parser.pl $wld-$contype-result.log $wld.run.log echo "#Results for performance runs started at $(date +%x:%X) XCMD=$XCMD" >>$wld-$contype-result.log echo "Performance run for $wld" for i in 1 2 3; do $wld $XCMD -v0 > $wld.run.log LC_ALL=C perl /usr/share/coremark-pro/util/perl/results_parser.pl $wld-$contype-result.log $wld.run.log done echo "#Median for final result $wld" >>$wld-$contype-result.log LC_ALL=C perl /usr/share/coremark-pro/util/perl/cert_median.pl $wld-$contype-result.log $contype >>$wld-$contype-result.log cat $wld-$contype-result.log >>result.log done done LC_ALL=C perl /usr/share/coremark-pro/util/perl/cert_mark.pl -i result.log -s coremarkpro > result.mark cat result.mark cd - >/dev/null ================================================ FILE: package/coreutils/0001-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch ================================================ From a0594387565e1e6b4a8a8ba04ad13b135cc1f0b5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 1 Apr 2021 07:49:46 +0200 Subject: [PATCH] lib/getrandom.c: fix build with uclibc < 1.0.35 Fix the following build failure with uclibc < 1.0.35 which is raised since the addition of getrandom module in https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=682cc4e678aceff32dea2a84b6e5147bdf5a20a7: In file included from ./sys/random.h:40, from getrandom.c:22: /home/fabrice/buildroot/output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:35: error: unknown type name 'size_t' 27 | extern int getrandom(void *__buf, size_t count, unsigned int flags) | ^~~~~~ /home/fabrice/buildroot/output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:8:1: note: 'size_t' is defined in header ''; did you forget to '#include '? 7 | #include +++ |+#include 8 | This patch is not upstreamable as it is only a workaround for uclibc < 1.0.35, upstream uclibc has been patched with https://github.com/wbx-github/uclibc-ng/commit/00972c02c2b6e0a95d5def4a71bdfb188e091782 Fixes: - http://autobuild.buildroot.org/results/c69f5c8b8e53ed3de753f0c6d2cdd99497504b49 Signed-off-by: Fabrice Fontaine --- lib/getrandom.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/getrandom.c b/lib/getrandom.c index 41212fb32..0ad3f9648 100644 --- a/lib/getrandom.c +++ b/lib/getrandom.c @@ -19,6 +19,7 @@ #include +#include #include #include -- 2.30.2 ================================================ FILE: package/coreutils/Config.in ================================================ 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. BusyBox implements many of the most common. Things like: - chmod, cp, dd, dir, ls, etc... - sort, tr, head, tail, wc, etc... - whoami, who, etc... http://www.gnu.org/software/coreutils/ if BR2_PACKAGE_COREUTILS config BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES bool "Individual binaries" depends on !BR2_STATIC_LIBS help By default (i.e. with this option disabled), coreutils is installed as a single binary (Busybox style) called /usr/bin/coreutils, and all core utilities are symbolic links to this binary. With this option enabled, each utility is a separate binary. comment "coreutils individual binaries need a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS endif comment "coreutils needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/coreutils/coreutils.hash ================================================ # Locally calculated after checking pgp signature sha256 ce30acdf4a41bc5bb30dd955e9eaa75fa216b4e3deb08889ed32433c7b3b97ce coreutils-9.0.tar.xz # Locally computed sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 COPYING ================================================ FILE: package/coreutils/coreutils.mk ================================================ ################################################################################ # # coreutils # ################################################################################ COREUTILS_VERSION = 9.0 COREUTILS_SITE = $(BR2_GNU_MIRROR)/coreutils COREUTILS_SOURCE = coreutils-$(COREUTILS_VERSION).tar.xz COREUTILS_LICENSE = GPL-3.0+ COREUTILS_LICENSE_FILES = COPYING COREUTILS_CPE_ID_VENDOR = gnu COREUTILS_CONF_OPTS = --disable-rpath \ $(if $(BR2_TOOLCHAIN_USES_MUSL),--with-included-regex) ifeq ($(BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES),y) COREUTILS_CONF_OPTS += --disable-single-binary else COREUTILS_CONF_OPTS += --enable-single-binary=symlinks endif COREUTILS_CONF_ENV = ac_cv_c_restrict=no \ ac_cv_func_chown_works=yes \ ac_cv_func_euidaccess=no \ ac_cv_func_fstatat=yes \ ac_cv_func_getdelim=yes \ ac_cv_func_getgroups=yes \ ac_cv_func_getgroups_works=yes \ ac_cv_func_getloadavg=no \ ac_cv_func_lstat_dereferences_slashed_symlink=yes \ ac_cv_func_lstat_empty_string_bug=no \ ac_cv_func_strerror_r_char_p=no \ ac_cv_func_strnlen_working=yes \ ac_cv_func_strtod=yes \ ac_cv_func_working_mktime=yes \ ac_cv_have_decl_strerror_r=yes \ ac_cv_have_decl_strnlen=yes \ ac_cv_lib_getloadavg_getloadavg=no \ ac_cv_lib_util_getloadavg=no \ ac_fsusage_space=yes \ ac_use_included_regex=no \ am_cv_func_working_getline=yes \ fu_cv_sys_stat_statfs2_bsize=yes \ gl_cv_func_getcwd_null=yes \ gl_cv_func_getcwd_path_max=yes \ gl_cv_func_gettimeofday_clobber=no \ gl_cv_func_fstatat_zero_flag=no \ gl_cv_func_link_follows_symlink=no \ gl_cv_func_re_compile_pattern_working=yes \ gl_cv_func_svid_putenv=yes \ gl_cv_func_tzset_clobber=no \ gl_cv_func_working_mkstemp=yes \ gl_cv_func_working_utimes=yes \ gl_getline_needs_run_time_check=no \ gl_cv_have_proc_uptime=yes \ utils_cv_localtime_cache=no \ PERL=missing \ MAKEINFO=true \ INSTALL_PROGRAM=$(INSTALL) COREUTILS_BIN_PROGS = base64 cat chgrp chmod chown cp date dd df dir echo false \ kill link ln ls mkdir mknod mktemp mv nice printenv pwd rm rmdir \ vdir sleep stty sync touch true uname join ifeq ($(BR2_PACKAGE_ACL),y) COREUTILS_DEPENDENCIES += acl else COREUTILS_CONF_OPTS += --disable-acl endif ifeq ($(BR2_PACKAGE_ATTR),y) COREUTILS_DEPENDENCIES += attr else COREUTILS_CONF_OPTS += --disable-xattr endif COREUTILS_DEPENDENCIES += $(TARGET_NLS_DEPENDENCIES) # It otherwise fails to link properly, not mandatory though ifeq ($(BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL),y) COREUTILS_CONF_OPTS += --with-libintl-prefix=$(STAGING_DIR)/usr endif ifeq ($(BR2_PACKAGE_GMP),y) COREUTILS_DEPENDENCIES += gmp else COREUTILS_CONF_OPTS += --without-gmp endif ifeq ($(BR2_PACKAGE_LIBCAP),y) COREUTILS_DEPENDENCIES += libcap else COREUTILS_CONF_OPTS += --disable-libcap endif ifeq ($(BR2_PACKAGE_OPENSSL),y) COREUTILS_CONF_OPTS += --with-openssl=yes COREUTILS_DEPENDENCIES += openssl endif ifeq ($(BR2_ROOTFS_MERGED_USR),) # We want to move a few binaries from /usr/bin to /bin. In the case of # coreutils being built as multi-call binary, we do so by re-creating # the corresponding symlinks. If coreutils is built with individual # binaries, we actually move the binaries. ifeq ($(BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES),y) define COREUTILS_FIX_BIN_LOCATION $(foreach f,$(COREUTILS_BIN_PROGS), \ mv $(TARGET_DIR)/usr/bin/$(f) $(TARGET_DIR)/bin ) endef else define COREUTILS_FIX_BIN_LOCATION # some things go in /bin rather than /usr/bin $(foreach f,$(COREUTILS_BIN_PROGS), \ rm -f $(TARGET_DIR)/usr/bin/$(f) && \ ln -sf ../usr/bin/coreutils $(TARGET_DIR)/bin/$(f) ) endef endif COREUTILS_POST_INSTALL_TARGET_HOOKS += COREUTILS_FIX_BIN_LOCATION endif ifeq ($(BR2_STATIC_LIBS),y) COREUTILS_CONF_OPTS += --enable-no-install-program=stdbuf endif # link for archaic shells define COREUTILS_CREATE_TEST_SYMLINK ln -fs test $(TARGET_DIR)/usr/bin/[ endef COREUTILS_POST_INSTALL_TARGET_HOOKS += COREUTILS_CREATE_TEST_SYMLINK # gnu thinks chroot is in bin, debian thinks it's in sbin ifeq ($(BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES),y) define COREUTILS_FIX_CHROOT_LOCATION mv $(TARGET_DIR)/usr/bin/chroot $(TARGET_DIR)/usr/sbin endef else define COREUTILS_FIX_CHROOT_LOCATION rm -f $(TARGET_DIR)/usr/bin/chroot ln -sf ../bin/coreutils $(TARGET_DIR)/usr/sbin/chroot endef endif COREUTILS_POST_INSTALL_TARGET_HOOKS += COREUTILS_FIX_CHROOT_LOCATION # Explicitly install ln and realpath, which we *are* insterested in. # A lot of other programs still get installed, however, but disabling # them does not gain much at build time, and is a loooong list that is # difficult to maintain... Just avoid overwriting fakedate when creating # a reproducible build HOST_COREUTILS_CONF_OPTS = \ --disable-acl \ --disable-libcap \ --disable-rpath \ --disable-single-binary \ --disable-xattr \ --without-gmp \ --enable-install-program=ln,realpath \ --enable-no-install-program=date $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/corkscrew/Config.in ================================================ config BR2_PACKAGE_CORKSCREW bool "corkscrew" help Corkscrew is a tool for tunneling SSH through HTTP proxies, but... you might find another use for it. https://github.com/bryanpkc/corkscrew ================================================ FILE: package/corkscrew/corkscrew.hash ================================================ # sha256 locally computed sha256 09d70daaa3145070a1e463dbab6ae1cbc62449b1e09c94e158f6017e7c79c9f6 corkscrew-2.0.tar.gz sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/corkscrew/corkscrew.mk ================================================ ################################################################################ # # corkscrew # ################################################################################ CORKSCREW_VERSION = 2.0 CORKSCREW_SITE = $(call github,bryanpkc,corkscrew,v$(CORKSCREW_VERSION)) CORKSCREW_LICENSE = GPL-2.0 CORKSCREW_LICENSE_FILES = COPYING CORKSCREW_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/coxpcall/Config.in ================================================ config BR2_PACKAGE_COXPCALL bool "coxpcall" help Coxpcall encapsulates the protected calls with a coroutine based loop, so errors can be handled without the usual pcall/xpcall issues with coroutines for Lua 5.1. http://keplerproject.github.io/coxpcall/ ================================================ FILE: package/coxpcall/coxpcall.hash ================================================ # computed by luarocks/buildroot sha256 11feb07f08927c39b0b93e8c0bbaf15433f86155cba4820a31a09f4754ab3258 coxpcall-1.17.0-1.src.rock sha256 11f0f03dda1a28eca658d5e3361c15fd4d048371364aacc5f6870d77a66866c8 coxpcall/doc/license.html ================================================ FILE: package/coxpcall/coxpcall.mk ================================================ ################################################################################ # # coxpcall # ################################################################################ COXPCALL_VERSION = 1.17.0-1 COXPCALL_SUBDIR = coxpcall COXPCALL_LICENSE = MIT COXPCALL_LICENSE_FILES = $(COXPCALL_SUBDIR)/doc/license.html $(eval $(luarocks-package)) ================================================ FILE: package/cpio/0001-Minor-fix.patch ================================================ From 641d3f489cf6238bb916368d4ba0d9325a235afb Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Mon, 20 Jan 2020 07:45:39 +0200 Subject: Minor fix * src/global.c: Remove superfluous declaration of program_name [Retrieved from: https://git.savannah.gnu.org/cgit/cpio.git/commit/?id=641d3f489cf6238bb916368d4ba0d9325a235afb] Signed-off-by: Fabrice Fontaine --- src/global.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/global.c b/src/global.c index fb3abe9..acf92bc 100644 --- a/src/global.c +++ b/src/global.c @@ -184,9 +184,6 @@ unsigned int warn_option = 0; /* Extract to standard output? */ bool to_stdout_option = false; -/* The name this program was run with. */ -char *program_name; - /* A pointer to either lstat or stat, depending on whether dereferencing of symlinks is done for input files. */ int (*xstat) (); -- cgit v1.2.1 ================================================ FILE: package/cpio/0002-Rewrite-dynamic-string-support.patch ================================================ From dd96882877721703e19272fe25034560b794061b Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Sat, 7 Aug 2021 12:52:21 +0300 Subject: Rewrite dynamic string support. * src/dstring.c (ds_init): Take a single argument. (ds_free): New function. (ds_resize): Take a single argument. Use x2nrealloc to expand the storage. (ds_reset,ds_append,ds_concat,ds_endswith): New function. (ds_fgetstr): Rewrite. In particular, this fixes integer overflow. * src/dstring.h (dynamic_string): Keep both the allocated length (ds_size) and index of the next free byte in the string (ds_idx). (ds_init,ds_resize): Change signature. (ds_len): New macro. (ds_free,ds_reset,ds_append,ds_concat,ds_endswith): New protos. * src/copyin.c: Use new ds_ functions. * src/copyout.c: Likewise. * src/copypass.c: Likewise. * src/util.c: Likewise. [Retrieved from: https://git.savannah.gnu.org/cgit/cpio.git/commit/?id=dd96882877721703e19272fe25034560b794061b] Signed-off-by: Fabrice Fontaine --- src/copyin.c | 40 +++++++++++++------------- src/copyout.c | 16 ++++------- src/copypass.c | 34 +++++++++++------------ src/dstring.c | 88 ++++++++++++++++++++++++++++++++++++++++++---------------- src/dstring.h | 31 ++++++++++----------- src/util.c | 6 ++-- 6 files changed, 123 insertions(+), 92 deletions(-) diff --git a/src/copyin.c b/src/copyin.c index a096048..4fb14af 100644 --- a/src/copyin.c +++ b/src/copyin.c @@ -55,11 +55,12 @@ query_rename(struct cpio_file_stat* file_hdr, FILE *tty_in, FILE *tty_out, char *str_res; /* Result for string function. */ static dynamic_string new_name; /* New file name for rename option. */ static int initialized_new_name = false; + if (!initialized_new_name) - { - ds_init (&new_name, 128); - initialized_new_name = true; - } + { + ds_init (&new_name); + initialized_new_name = true; + } if (rename_flag) { @@ -780,37 +781,36 @@ long_format (struct cpio_file_stat *file_hdr, char const *link_name) already in `save_patterns' (from the command line) are preserved. */ static void -read_pattern_file () +read_pattern_file (void) { - int max_new_patterns; - char **new_save_patterns; - int new_num_patterns; + char **new_save_patterns = NULL; + size_t max_new_patterns; + size_t new_num_patterns; int i; - dynamic_string pattern_name; + dynamic_string pattern_name = DYNAMIC_STRING_INITIALIZER; FILE *pattern_fp; if (num_patterns < 0) num_patterns = 0; - max_new_patterns = 1 + num_patterns; - new_save_patterns = (char **) xmalloc (max_new_patterns * sizeof (char *)); new_num_patterns = num_patterns; - ds_init (&pattern_name, 128); + max_new_patterns = num_patterns; + new_save_patterns = xcalloc (max_new_patterns, sizeof (new_save_patterns[0])); pattern_fp = fopen (pattern_file_name, "r"); if (pattern_fp == NULL) open_fatal (pattern_file_name); while (ds_fgetstr (pattern_fp, &pattern_name, '\n') != NULL) { - if (new_num_patterns >= max_new_patterns) - { - max_new_patterns += 1; - new_save_patterns = (char **) - xrealloc ((char *) new_save_patterns, - max_new_patterns * sizeof (char *)); - } + if (new_num_patterns == max_new_patterns) + new_save_patterns = x2nrealloc (new_save_patterns, + &max_new_patterns, + sizeof (new_save_patterns[0])); new_save_patterns[new_num_patterns] = xstrdup (pattern_name.ds_string); ++new_num_patterns; } + + ds_free (&pattern_name); + if (ferror (pattern_fp) || fclose (pattern_fp) == EOF) close_error (pattern_file_name); @@ -1210,7 +1210,7 @@ swab_array (char *ptr, int count) in the file system. */ void -process_copy_in () +process_copy_in (void) { FILE *tty_in = NULL; /* Interactive file for rename option. */ FILE *tty_out = NULL; /* Interactive file for rename option. */ diff --git a/src/copyout.c b/src/copyout.c index 5ca587f..ca6798c 100644 --- a/src/copyout.c +++ b/src/copyout.c @@ -594,9 +594,10 @@ assign_string (char **pvar, char *value) The format of the header depends on the compatibility (-c) flag. */ void -process_copy_out () +process_copy_out (void) { - dynamic_string input_name; /* Name of file read from stdin. */ + dynamic_string input_name = DYNAMIC_STRING_INITIALIZER; + /* Name of file read from stdin. */ struct stat file_stat; /* Stat record for file. */ struct cpio_file_stat file_hdr = CPIO_FILE_STAT_INITIALIZER; /* Output header information. */ @@ -605,7 +606,6 @@ process_copy_out () char *orig_file_name = NULL; /* Initialize the copy out. */ - ds_init (&input_name, 128); file_hdr.c_magic = 070707; /* Check whether the output file might be a tape. */ @@ -657,14 +657,9 @@ process_copy_out () { if (file_hdr.c_mode & CP_IFDIR) { - int len = strlen (input_name.ds_string); /* Make sure the name ends with a slash */ - if (input_name.ds_string[len-1] != '/') - { - ds_resize (&input_name, len + 2); - input_name.ds_string[len] = '/'; - input_name.ds_string[len+1] = 0; - } + if (!ds_endswith (&input_name, '/')) + ds_append (&input_name, '/'); } } @@ -875,6 +870,7 @@ process_copy_out () (unsigned long) blocks), (unsigned long) blocks); } cpio_file_stat_free (&file_hdr); + ds_free (&input_name); } diff --git a/src/copypass.c b/src/copypass.c index 5d5e939..23ee687 100644 --- a/src/copypass.c +++ b/src/copypass.c @@ -48,10 +48,12 @@ set_copypass_perms (int fd, const char *name, struct stat *st) If `link_flag', link instead of copying. */ void -process_copy_pass () +process_copy_pass (void) { - dynamic_string input_name; /* Name of file from stdin. */ - dynamic_string output_name; /* Name of new file. */ + dynamic_string input_name = DYNAMIC_STRING_INITIALIZER; + /* Name of file from stdin. */ + dynamic_string output_name = DYNAMIC_STRING_INITIALIZER; + /* Name of new file. */ size_t dirname_len; /* Length of `directory_name'. */ int res; /* Result of functions. */ char *slash; /* For moving past slashes in input name. */ @@ -65,25 +67,18 @@ process_copy_pass () created files */ /* Initialize the copy pass. */ - ds_init (&input_name, 128); dirname_len = strlen (directory_name); if (change_directory_option && !ISSLASH (directory_name[0])) { char *pwd = xgetcwd (); - - dirname_len += strlen (pwd) + 1; - ds_init (&output_name, dirname_len + 2); - strcpy (output_name.ds_string, pwd); - strcat (output_name.ds_string, "/"); - strcat (output_name.ds_string, directory_name); + + ds_concat (&output_name, pwd); + ds_append (&output_name, '/'); } - else - { - ds_init (&output_name, dirname_len + 2); - strcpy (output_name.ds_string, directory_name); - } - output_name.ds_string[dirname_len] = '/'; + ds_concat (&output_name, directory_name); + ds_append (&output_name, '/'); + dirname_len = ds_len (&output_name); output_is_seekable = true; change_dir (); @@ -116,8 +111,8 @@ process_copy_pass () /* Make the name of the new file. */ for (slash = input_name.ds_string; *slash == '/'; ++slash) ; - ds_resize (&output_name, dirname_len + strlen (slash) + 2); - strcpy (output_name.ds_string + dirname_len + 1, slash); + ds_reset (&output_name, dirname_len); + ds_concat (&output_name, slash); existing_dir = false; if (lstat (output_name.ds_string, &out_file_stat) == 0) @@ -333,6 +328,9 @@ process_copy_pass () (unsigned long) blocks), (unsigned long) blocks); } + + ds_free (&input_name); + ds_free (&output_name); } /* Try and create a hard link from FILE_NAME to another file diff --git a/src/dstring.c b/src/dstring.c index b261d5a..692d3e7 100644 --- a/src/dstring.c +++ b/src/dstring.c @@ -20,8 +20,8 @@ #if defined(HAVE_CONFIG_H) # include #endif - #include +#include #if defined(HAVE_STRING_H) || defined(STDC_HEADERS) #include #else @@ -33,24 +33,41 @@ /* Initialiaze dynamic string STRING with space for SIZE characters. */ void -ds_init (dynamic_string *string, int size) +ds_init (dynamic_string *string) +{ + memset (string, 0, sizeof *string); +} + +/* Free the dynamic string storage. */ + +void +ds_free (dynamic_string *string) { - string->ds_length = size; - string->ds_string = (char *) xmalloc (size); + free (string->ds_string); } -/* Expand dynamic string STRING, if necessary, to hold SIZE characters. */ +/* Expand dynamic string STRING, if necessary. */ void -ds_resize (dynamic_string *string, int size) +ds_resize (dynamic_string *string) { - if (size > string->ds_length) + if (string->ds_idx == string->ds_size) { - string->ds_length = size; - string->ds_string = (char *) xrealloc ((char *) string->ds_string, size); + string->ds_string = x2nrealloc (string->ds_string, &string->ds_size, + 1); } } +/* Reset the index of the dynamic string S to LEN. */ + +void +ds_reset (dynamic_string *s, size_t len) +{ + while (len > s->ds_size) + ds_resize (s); + s->ds_idx = len; +} + /* Dynamic string S gets a string terminated by the EOS character (which is removed) from file F. S will increase in size during the function if the string from F is longer than @@ -61,34 +78,50 @@ ds_resize (dynamic_string *string, int size) char * ds_fgetstr (FILE *f, dynamic_string *s, char eos) { - int insize; /* Amount needed for line. */ - int strsize; /* Amount allocated for S. */ int next_ch; /* Initialize. */ - insize = 0; - strsize = s->ds_length; + s->ds_idx = 0; /* Read the input string. */ - next_ch = getc (f); - while (next_ch != eos && next_ch != EOF) + while ((next_ch = getc (f)) != eos && next_ch != EOF) { - if (insize >= strsize - 1) - { - ds_resize (s, strsize * 2 + 2); - strsize = s->ds_length; - } - s->ds_string[insize++] = next_ch; - next_ch = getc (f); + ds_resize (s); + s->ds_string[s->ds_idx++] = next_ch; } - s->ds_string[insize++] = '\0'; + ds_resize (s); + s->ds_string[s->ds_idx] = '\0'; - if (insize == 1 && next_ch == EOF) + if (s->ds_idx == 0 && next_ch == EOF) return NULL; else return s->ds_string; } +void +ds_append (dynamic_string *s, int c) +{ + ds_resize (s); + s->ds_string[s->ds_idx] = c; + if (c) + { + s->ds_idx++; + ds_resize (s); + s->ds_string[s->ds_idx] = 0; + } +} + +void +ds_concat (dynamic_string *s, char const *str) +{ + size_t len = strlen (str); + while (len + 1 > s->ds_size) + ds_resize (s); + memcpy (s->ds_string + s->ds_idx, str, len); + s->ds_idx += len; + s->ds_string[s->ds_idx] = 0; +} + char * ds_fgets (FILE *f, dynamic_string *s) { @@ -100,3 +133,10 @@ ds_fgetname (FILE *f, dynamic_string *s) { return ds_fgetstr (f, s, '\0'); } + +/* Return true if the dynamic string S ends with character C. */ +int +ds_endswith (dynamic_string *s, int c) +{ + return (s->ds_idx > 0 && s->ds_string[s->ds_idx - 1] == c); +} diff --git a/src/dstring.h b/src/dstring.h index 5d24181..ca7a5f1 100644 --- a/src/dstring.h +++ b/src/dstring.h @@ -17,10 +17,6 @@ Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef NULL -#define NULL 0 -#endif - /* A dynamic string consists of record that records the size of an allocated string and the pointer to that string. The actual string is a normal zero byte terminated string that can be used with the @@ -30,22 +26,25 @@ typedef struct { - int ds_length; /* Actual amount of storage allocated. */ - char *ds_string; /* String. */ + size_t ds_size; /* Actual amount of storage allocated. */ + size_t ds_idx; /* Index of the next free byte in the string. */ + char *ds_string; /* String storage. */ } dynamic_string; +#define DYNAMIC_STRING_INITIALIZER { 0, 0, NULL } -/* Macros that look similar to the original string functions. - WARNING: These macros work only on pointers to dynamic string records. - If used with a real record, an "&" must be used to get the pointer. */ -#define ds_strlen(s) strlen ((s)->ds_string) -#define ds_strcmp(s1, s2) strcmp ((s1)->ds_string, (s2)->ds_string) -#define ds_strncmp(s1, s2, n) strncmp ((s1)->ds_string, (s2)->ds_string, n) -#define ds_index(s, c) index ((s)->ds_string, c) -#define ds_rindex(s, c) rindex ((s)->ds_string, c) +void ds_init (dynamic_string *string); +void ds_free (dynamic_string *string); +void ds_reset (dynamic_string *s, size_t len); -void ds_init (dynamic_string *string, int size); -void ds_resize (dynamic_string *string, int size); +/* All functions below guarantee that s->ds_string[s->ds_idx] == '\0' */ char *ds_fgetname (FILE *f, dynamic_string *s); char *ds_fgets (FILE *f, dynamic_string *s); char *ds_fgetstr (FILE *f, dynamic_string *s, char eos); +void ds_append (dynamic_string *s, int c); +void ds_concat (dynamic_string *s, char const *str); + +#define ds_len(s) ((s)->ds_idx) + +int ds_endswith (dynamic_string *s, int c); + diff --git a/src/util.c b/src/util.c index 996d4fa..ff2746d 100644 --- a/src/util.c +++ b/src/util.c @@ -846,11 +846,9 @@ get_next_reel (int tape_des) FILE *tty_out; /* File for interacting with user. */ int old_tape_des; char *next_archive_name; - dynamic_string new_name; + dynamic_string new_name = DYNAMIC_STRING_INITIALIZER; char *str_res; - ds_init (&new_name, 128); - /* Open files for interactive communication. */ tty_in = fopen (TTY_NAME, "r"); if (tty_in == NULL) @@ -925,7 +923,7 @@ get_next_reel (int tape_des) error (PAXEXIT_FAILURE, 0, _("internal error: tape descriptor changed from %d to %d"), old_tape_des, tape_des); - free (new_name.ds_string); + ds_free (&new_name); fclose (tty_in); fclose (tty_out); } -- cgit v1.2.1 ================================================ FILE: package/cpio/0003-Fix-previous-commit.patch ================================================ From dfc801c44a93bed7b3951905b188823d6a0432c8 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Wed, 11 Aug 2021 18:10:38 +0300 Subject: Fix previous commit * src/dstring.c (ds_reset,ds_concat): Don't call ds_resize in a loop. [Retrieved from: https://git.savannah.gnu.org/cgit/cpio.git/commit/?id=dfc801c44a93bed7b3951905b188823d6a0432c8] Signed-off-by: Fabrice Fontaine --- src/dstring.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dstring.c b/src/dstring.c index 692d3e7..b7e0bb5 100644 --- a/src/dstring.c +++ b/src/dstring.c @@ -64,7 +64,7 @@ void ds_reset (dynamic_string *s, size_t len) { while (len > s->ds_size) - ds_resize (s); + s->ds_string = x2nrealloc (s->ds_string, &s->ds_size, 1); s->ds_idx = len; } @@ -116,7 +116,7 @@ ds_concat (dynamic_string *s, char const *str) { size_t len = strlen (str); while (len + 1 > s->ds_size) - ds_resize (s); + s->ds_string = x2nrealloc (s->ds_string, &s->ds_size, 1); memcpy (s->ds_string + s->ds_idx, str, len); s->ds_idx += len; s->ds_string[s->ds_idx] = 0; -- cgit v1.2.1 ================================================ FILE: package/cpio/Config.in ================================================ config BR2_PACKAGE_CPIO bool "cpio" depends on BR2_USE_WCHAR # Need argp.h support select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL help cpio archive utility for creation and extraction. https://www.gnu.org/software/cpio/ comment "cpio needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/cpio/cpio.hash ================================================ # From https://lists.gnu.org/archive/html/info-gnu/2019-11/msg00002.html md5 f3438e672e3fa273a7dc26339dd1eed6 cpio-2.13.tar.bz2 sha1 4dcefc0e1bc36b11506a354768d82b15e3fe6bb8 cpio-2.13.tar.bz2 # Locally calculated after checking pgp signature sha256 eab5bdc5ae1df285c59f2a4f140a98fc33678a0bf61bdba67d9436ae26b46f6d cpio-2.13.tar.bz2 # Locally calculated sha256 fc82ca8b6fdb18d4e3e85cfd8ab58d1bcd3f1b29abe782895abd91d64763f8e7 COPYING ================================================ FILE: package/cpio/cpio.mk ================================================ ################################################################################ # # cpio # ################################################################################ CPIO_VERSION = 2.13 CPIO_SOURCE = cpio-$(CPIO_VERSION).tar.bz2 CPIO_SITE = $(BR2_GNU_MIRROR)/cpio CPIO_CONF_OPTS = --bindir=/bin CPIO_LICENSE = GPL-3.0+ CPIO_LICENSE_FILES = COPYING CPIO_CPE_ID_VENDOR = gnu # 0002-Rewrite-dynamic-string-support.patch # 0003-Fix-previous-commit.patch CPIO_IGNORE_CVES += CVE-2021-38185 # cpio uses argp.h which is not provided by uclibc or musl by default. # Use the argp-standalone package to provide this. ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y) CPIO_DEPENDENCIES += argp-standalone endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/cppcms/Config.in ================================================ config BR2_PACKAGE_CPPCMS bool "cppcms" 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 select BR2_PACKAGE_ZLIB select BR2_PACKAGE_PCRE select BR2_PACKAGE_LIBGCRYPT help CppCMS is a Free High Performance Web Development Framework (not a CMS) aimed for Rapid Web Application Development. It differs from most of other web development frameworks like: Python Django or Java Servlets on the following aspects: - It is designed and tuned to handle extremely high loads. - It uses modern C++ as primary development language in order to achieve the above goal. - It is aimed on development of both Web Sites and Web Services. http://cppcms.com if BR2_PACKAGE_CPPCMS config BR2_PACKAGE_CPPCMS_ICU bool "enable icu support" depends on !BR2_BINFMT_FLAT # icu depends on BR2_HOST_GCC_AT_LEAST_4_9 # icu depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # icu select BR2_PACKAGE_ICU help Using ICU allows advanced localization features into CppCMS, in another hand ICU is heavier than iconv. comment "icu support needs a toolchain w/ gcc >= 4.9, host gcc >= 4.9" depends on !BR2_BINFMT_FLAT depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_4_9 endif comment "cppcms needs a toolchain w/ C++, NPTL, wchar, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ !BR2_USE_WCHAR || BR2_STATIC_LIBS ================================================ FILE: package/cppcms/cppcms.hash ================================================ # From http://sourceforge.net/projects/cppcms/files/cppcms/1.2.1/ sha1 9cb25cc5d507d2f4235326ba3815eba252b4ac77 cppcms-1.2.1.tar.bz2 md5 2bb259fefb86532e404207c71c094a0c cppcms-1.2.1.tar.bz2 # Locally computed: sha256 10fec7710409c949a229b9019ea065e25ff5687103037551b6f05716bf6cac52 cppcms-1.2.1.tar.bz2 sha256 fb7c15ddf590037d4cd18ebd61148a2304b9243369d238a64f599182377e32db COPYING.TXT sha256 3e4012cc5950e05bedfdd2f00ceffe1ef71c46ac8c79f07e237ecb23c773f65f MIT.TXT sha256 d6ce062e5cf4f7e3c536d7d2fee84c882c45245f1848ed3162401f2b29fa2b4b THIRD_PARTY_SOFTWARE.TXT ================================================ FILE: package/cppcms/cppcms.mk ================================================ ################################################################################ # # cppcms # ################################################################################ CPPCMS_VERSION = 1.2.1 CPPCMS_SOURCE = cppcms-$(CPPCMS_VERSION).tar.bz2 CPPCMS_LICENSE = MIT, BSL-1.0 (boost), Public Domain (json2.js), Zlib (md5) CPPCMS_LICENSE_FILES = COPYING.TXT MIT.TXT THIRD_PARTY_SOFTWARE.TXT CPPCMS_SITE = http://downloads.sourceforge.net/project/cppcms/cppcms/$(CPPCMS_VERSION) CPPCMS_INSTALL_STAGING = YES CPPCMS_CXXFLAGS = $(TARGET_CXXFLAGS) # disable rpath to avoid getting /usr/lib added to the link search # path CPPCMS_CONF_OPTS = \ -DCMAKE_SKIP_RPATH=ON \ -DCMAKE_CXX_FLAGS="$(CPPCMS_CXXFLAGS)" CPPCMS_DEPENDENCIES = zlib pcre libgcrypt ifeq ($(BR2_PACKAGE_CPPCMS_ICU),y) CPPCMS_CONF_OPTS += -DDISABLE_ICU_LOCALE=OFF CPPCMS_DEPENDENCIES += icu CPPCMS_CXXFLAGS += "`$(STAGING_DIR)/usr/bin/icu-config --cxxflags`" else CPPCMS_CONF_OPTS += -DDISABLE_ICU_LOCALE=ON endif ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) # posix backend needs monetary.h which isn't available on uClibc CPPCMS_CONF_OPTS += -DDISABLE_POSIX_LOCALE=on endif # We copy cppcms_tmpl_cc from staging to host because this file can be # needed for compiling packages using cppcms. And it is not worth # creating a host package just for a python script. define CPPCMS_INSTALL_HOST_TOOLS cp $(STAGING_DIR)/usr/bin/cppcms_tmpl_cc $(HOST_DIR)/bin/cppcms_tmpl_cc endef CPPCMS_POST_INSTALL_STAGING_HOOKS += CPPCMS_INSTALL_HOST_TOOLS $(eval $(cmake-package)) ================================================ FILE: package/cppdb/0001-mysql-library-suffix.patch ================================================ Add mysql/ to PATH_SUFFIXES for the library search for mysql. On common distros libmysqlclient* is installed and/or symlinked into /usr/lib. Since we install the libraries into /usr/lib/mysql alone cppdb fails to properly link to it giving runtime errors. Status: https://sourceforge.net/p/cppcms/bugs/135/ Signed-off-by: Gustavo Zacarias diff -Nura cppdb-0.3.1.orig/CMakeLists.txt cppdb-0.3.1/CMakeLists.txt --- cppdb-0.3.1.orig/CMakeLists.txt 2014-10-17 11:05:57.875429748 -0300 +++ cppdb-0.3.1/CMakeLists.txt 2014-10-17 11:12:57.486775484 -0300 @@ -196,7 +196,7 @@ endif() if(NOT DISABLE_MYSQL) - find_library(MYSQL_LIB mysqlclient) + find_library(MYSQL_LIB mysqlclient PATH_SUFFIXES mysql) find_path(MYSQL_PATH mysql.h PATH_SUFFIXES mysql) if(MYSQL_LIB AND MYSQL_PATH) include_directories(${MYSQL_PATH}) ================================================ FILE: package/cppdb/Config.in ================================================ config BR2_PACKAGE_CPPDB bool "cppdb" # dlfcn.h depends on !BR2_STATIC_LIBS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # Can be built without them but it's useless depends on BR2_PACKAGE_MYSQL || BR2_PACKAGE_POSTGRESQL || BR2_PACKAGE_SQLITE help CppDB is an SQL connectivity library that is designed to provide platform and Database independent connectivity API similarly to what JDBC, ODBC and other connectivity libraries do. http://cppcms.com/sql/cppdb/ comment "cppdb needs a toolchain w/ C++, threads, dynamic library" depends on BR2_PACKAGE_MYSQL || BR2_PACKAGE_POSTGRESQL || BR2_PACKAGE_SQLITE depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS ================================================ FILE: package/cppdb/cppdb.hash ================================================ # From http://sourceforge.net/projects/cppcms/files/cppdb/0.3.1/ md5 129f1d75f46114b79160b93807d5223f cppdb-0.3.1.tar.bz2 sha1 c0410dcc482d71696ac9206044b3a3ac03d31f96 cppdb-0.3.1.tar.bz2 # locally computed sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 LICENSE_1_0.txt sha256 503ed52ef942d44bb26bd47dd5c6765927b198624e4f375e32cc660dfc2a0981 MIT.txt ================================================ FILE: package/cppdb/cppdb.mk ================================================ ################################################################################ # # cppdb # ################################################################################ CPPDB_VERSION = 0.3.1 CPPDB_SOURCE = cppdb-$(CPPDB_VERSION).tar.bz2 CPPDB_SITE = http://downloads.sourceforge.net/project/cppcms/cppdb/$(CPPDB_VERSION) CPPDB_INSTALL_STAGING = YES CPPDB_DEPENDENCIES = $(if $(BR2_PACKAGE_SQLITE),sqlite) CPPDB_LICENSE = BSL-1.0 or MIT CPPDB_LICENSE_FILES = LICENSE_1_0.txt MIT.txt ifeq ($(BR2_PACKAGE_MYSQL),y) CPPDB_DEPENDENCIES += mysql else CPPDB_CONF_OPTS += -DDISABLE_MYSQL=ON endif ifeq ($(BR2_PACKAGE_POSTGRESQL),y) CPPDB_DEPENDENCIES += postgresql else CPPDB_CONF_OPTS += -DDISABLE_PQ=ON endif ifeq ($(BR2_PACKAGE_SQLITE),) CPPDB_CONF_OPTS += -DDISABLE_SQLITE=ON endif $(eval $(cmake-package)) ================================================ FILE: package/cppunit/Config.in ================================================ config BR2_PACKAGE_CPPUNIT bool "cppunit" depends on BR2_INSTALL_LIBSTDCPP # currently the static situation is not correctly detected. depends on !BR2_STATIC_LIBS help CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML or text format for automatic testing and GUI based for supervised tests. http://www.freedesktop.org/wiki/Software/cppunit/ comment "cppunit needs a toolchain w/ C++, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS ================================================ FILE: package/cppunit/cppunit.hash ================================================ # hash from: http://www.freedesktop.org/wiki/Software/cppunit/: md5 9dc669e6145cadd9674873e24943e6dd cppunit-1.15.1.tar.gz sha256 89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7 cppunit-1.15.1.tar.gz # Locally calculated: sha256 badf14d0aa3eaf1a7ae5f19a47a8ef2fc71a96802c4bc3d354535693c389f4e5 COPYING ================================================ FILE: package/cppunit/cppunit.mk ================================================ ################################################################################ # # cppunit # ################################################################################ CPPUNIT_VERSION = 1.15.1 CPPUNIT_SITE = http://dev-www.libreoffice.org/src CPPUNIT_INSTALL_STAGING = YES CPPUNIT_LICENSE = LGPL-2.1 CPPUNIT_LICENSE_FILES = COPYING CPPUNIT_CONF_OPTS = --disable-doxygen $(eval $(autotools-package)) ================================================ FILE: package/cppzmq/Config.in ================================================ config BR2_PACKAGE_CPPZMQ bool "cppzmq" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq select BR2_PACKAGE_ZEROMQ help C++ binding for zeromq (ZeroMQ, 0MQ, zmq). http://github.com/zeromq/cppzmq comment "cppzmq needs a toolchain w/ C++, threads" depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS) ================================================ FILE: package/cppzmq/cppzmq.hash ================================================ # Locally calculated sha256 7a23639a45f3a0049e11a188e29aaedd10b2f4845f0000cf3e22d6774ebde0af cppzmq-4.8.1.tar.gz sha256 7e6db90e2e805c72b3daa77849d1cb5f1f92da0e69750c8a4aa1d86d70704748 LICENSE ================================================ FILE: package/cppzmq/cppzmq.mk ================================================ ################################################################################ # # cppzmq # ################################################################################ CPPZMQ_VERSION = 4.8.1 CPPZMQ_SITE = $(call github,zeromq,cppzmq,v$(CPPZMQ_VERSION)) CPPZMQ_INSTALL_STAGING = YES CPPZMQ_DEPENDENCIES = host-pkgconf zeromq CPPZMQ_LICENSE = MIT CPPZMQ_LICENSE_FILES = LICENSE CPPZMQ_CONF_OPTS = -DCPPZMQ_BUILD_TESTS=OFF $(eval $(cmake-package)) ================================================ FILE: package/cpuburn-arm/Config.in ================================================ config BR2_PACKAGE_CPUBURN_ARM_ARCH_SUPPORTS bool default y if BR2_cortex_a7 default y if BR2_cortex_a8 default y if BR2_cortex_a9 default y if BR2_cortex_a53 config BR2_PACKAGE_CPUBURN_ARM bool "cpuburn-arm" depends on BR2_PACKAGE_CPUBURN_ARM_ARCH_SUPPORTS help Make ARM cores generate as much heat as possible. Supports Cortex A7/A8/A9/A53. https://github.com/ssvb/cpuburn-arm ================================================ FILE: package/cpuburn-arm/cpuburn-arm.hash ================================================ # Locally calculated sha256 354381ec8c352e6c84875ac034004df44b0ed0ac097c400b8d2e47652815c3a2 cpuburn-arm-ad7e646700d14b81413297bda02fb7fe96613c3f.tar.gz sha256 47f10095a04d16c8d8d52598371fa01b6a6e87134083b9ec3c43d83ff8576f55 cpuburn-a7.S ================================================ FILE: package/cpuburn-arm/cpuburn-arm.mk ================================================ ################################################################################ # # cpuburn-arm # ################################################################################ CPUBURN_ARM_VERSION = ad7e646700d14b81413297bda02fb7fe96613c3f CPUBURN_ARM_SITE = $(call github,ssvb,cpuburn-arm,$(CPUBURN_ARM_VERSION)) CPUBURN_ARM_LICENSE = MIT CPUBURN_ARM_LICENSE_FILES = cpuburn-a7.S ifeq ($(BR2_cortex_a7),y) CPUBURN_ARM_SRC = cpuburn-a7.S else ifeq ($(BR2_cortex_a8),y) CPUBURN_ARM_SRC = cpuburn-a8.S else ifeq ($(BR2_cortex_a9),y) CPUBURN_ARM_SRC = cpuburn-a9.S else ifeq ($(BR2_cortex_a53),y) CPUBURN_ARM_SRC = cpuburn-a53.S endif define CPUBURN_ARM_BUILD_CMDS $(TARGET_CC) $(TARGET_CFLAGS) -o $(@D)/cpuburn \ $(@D)/$(CPUBURN_ARM_SRC) endef define CPUBURN_ARM_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 $(@D)/cpuburn $(TARGET_DIR)/usr/bin/cpuburn endef $(eval $(generic-package)) ================================================ FILE: package/cpuload/Config.in ================================================ config BR2_PACKAGE_CPULOAD bool "cpuload" help cpuload is a simple tool to obtain intuitive vision of CPU load (including total, user, system, irq and softirq) within a certain time, which is especially useful for embedded system without GUI. https://github.com/kelvincheung/cpuload ================================================ FILE: package/cpuload/cpuload.hash ================================================ # Locally calculated sha256 1d61f4776dc3e2746343d68b2ea2faf138e54666b630a6060df4f3945badbcae cpuload-0.3.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/cpuload/cpuload.mk ================================================ ################################################################################ # # cpuload # ################################################################################ CPULOAD_VERSION = 0.3 CPULOAD_SITE = $(call github,kelvincheung,cpuload,v$(CPULOAD_VERSION)) CPULOAD_LICENSE = GPL-2.0 CPULOAD_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/cracklib/0001-Force-grep-to-treat-the-input-as-text-when-formattin.patch ================================================ From d27062fe7a520d5791f7a56d175a5cb6a39bae61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20S=C3=B8rensen?= Date: Tue, 18 Apr 2017 12:00:39 +0200 Subject: [PATCH] Force grep to treat the input as text when formatting word files. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stefan Sørensen --- util/cracklib-format | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/cracklib-format b/util/cracklib-format index 1d7be5b..b1de8e8 100644 --- a/util/cracklib-format +++ b/util/cracklib-format @@ -4,7 +4,7 @@ # into cracklib-packer # gzip -cdf "$@" | - grep -v '^\(#\|$\)' | + grep -a -v '^\(#\|$\)' | tr '[A-Z]' '[a-z]' | tr -cd '\012[a-z][0-9]' | env LC_ALL=C sort -u -- 2.9.3 ================================================ FILE: package/cracklib/Config.in ================================================ config BR2_PACKAGE_CRACKLIB bool "cracklib" help CrackLib tests passwords to determine whether they match certain security-oriented characteristics, with the purpose of stopping users from choosing passwords that are easy to guess. CrackLib performs several tests on passwords: it tries to generate words from a username and gecos entry and checks those words against the password; it checks for simplistic patterns in passwords; and it checks for the password in a dictionary. https://github.com/cracklib/cracklib if BR2_PACKAGE_CRACKLIB config BR2_PACKAGE_CRACKLIB_TOOLS bool "install tools" help Install cracklib command line tools for creating dicts. config BR2_PACKAGE_CRACKLIB_FULL_DICT bool "full dict" help Install the full cracklib dict (requires about 8Mb extra target space). endif ================================================ FILE: package/cracklib/cracklib.hash ================================================ # Locally calculated sha256 8b6fd202f3f1d8fa395d3b7a5d821227cfd8bb4a9a584a7ae30cf62cea6287dd cracklib-2.9.7.tar.gz sha256 7f0c45faf84a2494f15d1e2720394aca4a379163a70c4acad948186c0047d389 cracklib-words-2.9.7.gz sha256 f18a0811fa0e220ccbc42f661545e77f0388631e209585ed582a1c693029c6aa COPYING.LIB ================================================ FILE: package/cracklib/cracklib.mk ================================================ ################################################################################ # # cracklib # ################################################################################ CRACKLIB_VERSION = 2.9.7 CRACKLIB_SITE = https://github.com/cracklib/cracklib/releases/download/v$(CRACKLIB_VERSION) CRACKLIB_LICENSE = LGPL-2.1 CRACKLIB_LICENSE_FILES = COPYING.LIB CRACKLIB_CPE_ID_VENDOR = cracklib_project CRACKLIB_INSTALL_STAGING = YES CRACKLIB_DEPENDENCIES = host-cracklib $(TARGET_NLS_DEPENDENCIES) CRACKLIB_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_ZLIB),y) CRACKLIB_CONF_OPTS += --with-zlib CRACKLIB_DEPENDENCIES += zlib else CRACKLIB_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_PYTHON),y) CRACKLIB_CONF_OPTS += --with-python CRACKLIB_DEPENDENCIES += python else CRACKLIB_CONF_OPTS += --without-python endif HOST_CRACKLIB_CONF_OPTS += --without-python --without-zlib ifeq ($(BR2_PACKAGE_CRACKLIB_FULL_DICT),y) CRACKLIB_EXTRA_DOWNLOADS = cracklib-words-$(CRACKLIB_VERSION).gz CRACKLIB_DICT_SOURCE = $(CRACKLIB_DL_DIR)/cracklib-words-$(CRACKLIB_VERSION).gz else CRACKLIB_DICT_SOURCE = $(@D)/dicts/cracklib-small endif ifeq ($(BR2_PACKAGE_CRACKLIB_TOOLS),) define CRACKLIB_REMOVE_TOOLS rm -f $(TARGET_DIR)/usr/sbin/*cracklib* endef CRACKLIB_POST_INSTALL_TARGET_HOOKS += CRACKLIB_REMOVE_TOOLS endif define CRACKLIB_BUILD_DICT $(HOST_MAKE_ENV) cracklib-format $(CRACKLIB_DICT_SOURCE) | \ $(HOST_MAKE_ENV) cracklib-packer $(TARGET_DIR)/usr/share/cracklib/pw_dict rm $(TARGET_DIR)/usr/share/cracklib/cracklib-small endef CRACKLIB_POST_INSTALL_TARGET_HOOKS += CRACKLIB_BUILD_DICT $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/cramfs/Config.in ================================================ config BR2_PACKAGE_CRAMFS bool "cramfs" select BR2_PACKAGE_ZLIB help cramfs is a compressed read-only filesystem. This package contains the tools to generate and check a cramfs filesystem. https://github.com/npitre/cramfs-tools ================================================ FILE: package/cramfs/Config.in.host ================================================ config BR2_PACKAGE_HOST_CRAMFS bool "host cramfs" help cramfs is a compressed read-only filesystem. This package contains the tools to generate and check a cramfs filesystem. https://github.com/npitre/cramfs-tools ================================================ FILE: package/cramfs/cramfs.hash ================================================ # Locally computed: sha256 cdb7a4ecad034f063b6456b37cdf653ae31758a224c32161e54712a9d7f01cc3 cramfs-2.1.tar.gz sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/cramfs/cramfs.mk ================================================ ################################################################################ # # cramfs # ################################################################################ CRAMFS_VERSION = 2.1 CRAMFS_SITE = $(call github,npitre,cramfs-tools,v$(CRAMFS_VERSION)) CRAMFS_LICENSE = GPL-2.0+ 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) endef define CRAMFS_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/mkcramfs $(TARGET_DIR)/usr/bin/mkcramfs $(INSTALL) -D -m 755 $(@D)/cramfsck $(TARGET_DIR)/usr/bin/cramfsck endef define HOST_CRAMFS_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) CFLAGS="$(HOST_CFLAGS) -Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS="$(HOST_LDFLAGS)" -C $(@D) endef define HOST_CRAMFS_INSTALL_CMDS $(INSTALL) -D -m 755 $(@D)/mkcramfs $(HOST_DIR)/bin/mkcramfs $(INSTALL) -D -m 755 $(@D)/cramfsck $(HOST_DIR)/bin/cramfsck endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/crda/0001-crda-support-python-3-in-utils-key2pub.py.patch ================================================ From 8228c484a1533ff904b276c342adcb6310abe272 Mon Sep 17 00:00:00 2001 From: Taahir Ahmed Date: Wed, 30 Mar 2016 11:23:54 -0300 Subject: [PATCH] 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 pycryptodomex, 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] Use pycryptodomex insdead of pycrypto From [1]: "PyCryptodome is a fork of PyCrypto, which is not maintained any more (the last release dates back to 2013 [2]). It exposes almost the same API, but there are a few incompatibilities [3]." [1] https://github.com/OP-TEE/optee_os/commit/90ad2450436fdd9fc0d28a3f92f3fbcfd89a38f0 [2] https://pypi.org/project/pycrypto/#history [3] https://pycryptodome.readthedocs.io/en/latest/src/vs_pycrypto.html Signed-off-by: Gustavo Zacarias [Rebased against crda-4.14] Signed-off-by: Peter Seiderer [Romain: Use pycryptodomex] Signed-off-by: Romain Naour --- Makefile | 2 +- utils/key2pub.py | 146 ++++++++++++++++++++++++----------------------- 2 files changed, 75 insertions(+), 73 deletions(-) diff --git a/Makefile b/Makefile index a3ead30..8da38d0 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 9bb04cd..8a0ba2a 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 Cryptodome.PublicKey import RSA +except ImportError as e: + sys.stderr.write('ERROR: Failed to import the "Cryptodome.PublicKey" module: %s\n' % e.message) + sys.stderr.write('Please install the "Cryptodome.PublicKey" Python module.\n') + sys.stderr.write('On Debian GNU/Linux the package is called "python-cryptodomex".\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 __attribute__ ((unused)) 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.25.3 ================================================ FILE: package/crda/0002-drop-ldconfig-call.patch ================================================ Drop ldconfig call, it's useless for cross-compiling. Signed-off-by: Gustavo Zacarias diff -Nura crda-3.18.orig/Makefile crda-3.18/Makefile --- crda-3.18.orig/Makefile 2015-02-18 10:34:23.841259401 -0300 +++ crda-3.18/Makefile 2015-02-18 10:35:10.524201452 -0300 @@ -127,7 +127,6 @@ $(NQ) ' INSTALL libreg' $(Q)mkdir -p $(DESTDIR)/$(LIBDIR) $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/ - $(Q)ldconfig %.o: %.c regdb.h $(LIBREG) $(NQ) ' CC ' $@ ================================================ FILE: package/crda/0003-drop-werror.patch ================================================ 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 ================================================ FILE: package/crda/Config.in ================================================ 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 help Central Regulatory Domain Agent. This package provides a Central Regulatory Domain Agent (CRDA) to be used by the Linux kernel cf80211 wireless subsystem to query and apply the regulatory domain settings wireless devices may operate within for a given location. https://wireless.wiki.kernel.org/en/developers/regulatory/crda comment "crda needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/crda/crda.hash ================================================ # Locally computed sha256 5a8f35bb8b27474f466b0e75d451ba917433d8aab1889678a64d9c4e72a8b8c2 crda-4.14.tar.gz sha256 c16224b376128b589eea69a8fdd1f09818b8cb995e10d1e37f72dff22233d7b0 LICENSE ================================================ FILE: package/crda/crda.mk ================================================ ################################################################################ # # crda # ################################################################################ CRDA_VERSION = 4.14 CRDA_SITE = https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/crda.git/snapshot CRDA_DEPENDENCIES = host-pkgconf host-python-pycryptodomex libnl libgcrypt CRDA_LICENSE = ISC CRDA_LICENSE_FILES = LICENSE CRDA_CPE_ID_VENDOR = kernel define CRDA_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) \ $(MAKE) all_noverify -C $(@D) endef define CRDA_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) install -C $(@D) DESTDIR=$(TARGET_DIR) endef $(eval $(generic-package)) ================================================ FILE: package/crudini/Config.in ================================================ config BR2_PACKAGE_CRUDINI bool "crudini" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 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 ================================================ FILE: package/crudini/crudini.hash ================================================ # locally computed sha256 e1b8125ac4373ece3bb0bb047ba9336e5bd55ed5d56b9729968058c9385ab546 crudini-0.9.3.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/crudini/crudini.mk ================================================ ################################################################################ # # crudini # ################################################################################ CRUDINI_VERSION = 0.9.3 CRUDINI_SITE = $(call github,pixelb,crudini,$(CRUDINI_VERSION)) CRUDINI_SETUP_TYPE = setuptools CRUDINI_LICENSE = GPL-2.0 CRUDINI_LICENSE_FILES = COPYING $(eval $(python-package)) ================================================ FILE: package/cryptodev/Config.in ================================================ comment "cryptodev needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_CRYPTODEV bool "cryptodev" depends on BR2_LINUX_KERNEL help Select the desired cryptodev implementation. if BR2_PACKAGE_CRYPTODEV choice prompt "cryptodev variant" default BR2_PACKAGE_CRYPTODEV_LINUX if !BR2_microblaze help Select the cryptodev implementation. config BR2_PACKAGE_CRYPTODEV_LINUX bool "cryptodev-linux" depends on !BR2_microblaze select BR2_PACKAGE_HAS_CRYPTODEV help Cryptodev-linux is a device that allows access to Linux kernel cryptographic drivers; thus allowing userspace applications to take advantage of hardware accelerators. http://cryptodev-linux.org/index.html config BR2_PACKAGE_OCF_LINUX bool "ocf-linux" select BR2_PACKAGE_HAS_CRYPTODEV help OCF-Linux is a Linux port of the OpenBSD/FreeBSD Cryptographic Framework (OCF). This port aims to bring full asynchronous HW/SW crypto acceleration to the Linux kernel and applications running under Linux. http://ocf-linux.sourceforge.net/ endchoice config BR2_PACKAGE_HAS_CRYPTODEV bool config BR2_PACKAGE_PROVIDES_CRYPTODEV string default "cryptodev-linux" if BR2_PACKAGE_CRYPTODEV_LINUX default "ocf-linux" if BR2_PACKAGE_OCF_LINUX endif ================================================ FILE: package/cryptodev/cryptodev.mk ================================================ ################################################################################ # # cryptodev # ################################################################################ $(eval $(virtual-package)) ================================================ FILE: package/cryptodev-linux/cryptodev-linux.hash ================================================ # Locally calculated sha256 f51c2254749233b1b1d7ec9445158bd709f124f88e1c650fe2faac83c3a81938 cryptodev-linux-1.12.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/cryptodev-linux/cryptodev-linux.mk ================================================ ################################################################################ # # cryptodev-linux # ################################################################################ CRYPTODEV_LINUX_VERSION = 1.12 CRYPTODEV_LINUX_SITE = $(call github,cryptodev-linux,cryptodev-linux,cryptodev-linux-$(CRYPTODEV_LINUX_VERSION)) CRYPTODEV_LINUX_INSTALL_STAGING = YES CRYPTODEV_LINUX_LICENSE = GPL-2.0+ CRYPTODEV_LINUX_LICENSE_FILES = COPYING CRYPTODEV_LINUX_CPE_ID_VENDOR = cryptodev-linux CRYPTODEV_LINUX_PROVIDES = cryptodev define CRYPTODEV_LINUX_MODULE_GEN_VERSION_H $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) version.h endef CRYPTODEV_LINUX_PRE_BUILD_HOOKS += CRYPTODEV_LINUX_MODULE_GEN_VERSION_H define CRYPTODEV_LINUX_INSTALL_STAGING_CMDS $(INSTALL) -D -m 644 $(@D)/crypto/cryptodev.h \ $(STAGING_DIR)/usr/include/crypto/cryptodev.h endef $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/cryptopp/cryptopp.hash ================================================ # Hash from: https://www.cryptopp.com/release860.html: sha512 e7773f5e4a7dc7e8e735b1702524bee56ba38e5211544c9c9778bc51ed8dc7b376c17f2e406410043b636312336f26f76dc963f298872f8c13933e88c232fc03 cryptopp860.zip # Hash for license file: sha256 e668af8c73a38a66a1e8951d14ec24e7582fee5254dd6c3dae488a416d105d5f License.txt ================================================ FILE: package/cryptopp/cryptopp.mk ================================================ ################################################################################ # # cryptopp # ################################################################################ CRYPTOPP_VERSION = 8.6.0 CRYPTOPP_SOURCE = cryptopp$(subst .,,$(CRYPTOPP_VERSION)).zip CRYPTOPP_SITE = https://cryptopp.com CRYPTOPP_LICENSE = BSL-1.0, BSD-3-Clause (CRYPTOGAMS), Public domain (ChaCha SSE2 and AVX) CRYPTOPP_LICENSE_FILES = License.txt CRYPTOPP_CPE_ID_VENDOR = cryptopp CRYPTOPP_CPE_ID_PRODUCT = crypto\+\+ CRYPTOPP_INSTALL_STAGING = YES define HOST_CRYPTOPP_EXTRACT_CMDS $(UNZIP) $(HOST_CRYPTOPP_DL_DIR)/$(CRYPTOPP_SOURCE) -d $(@D) endef HOST_CRYPTOPP_CXXFLAGS = $(HOST_CFLAGS) -fPIC # _mm256_broadcastsi128_si256 has been added only in gcc 4.9 ifneq ($(BR2_HOST_GCC_AT_LEAST_4_9),y) HOST_CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_AVX2 endif HOST_CRYPTOPP_MAKE_OPTS = \ $(HOST_CONFIGURE_OPTS) \ CXXFLAGS="$(HOST_CRYPTOPP_CXXFLAGS)" define HOST_CRYPTOPP_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_CRYPTOPP_MAKE_OPTS) shared endef define HOST_CRYPTOPP_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) PREFIX=$(HOST_DIR) install-lib endef $(eval $(host-generic-package)) ================================================ FILE: package/cryptsetup/0001-Remove-json_object-typedef.patch ================================================ From 567e7f8664c621f8aeaa95d9f4ab4b590574f572 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Wed, 15 Aug 2018 14:13:46 +0300 Subject: [PATCH] Remove json_object typedef The json-c header already defines the same typedef. While C11 allows typedef redefinition to the same type, older versions of gcc disallow that. In file included from lib/luks2/luks2_internal.h:32, from lib/luks2/luks2_disk_metadata.c:24: lib/luks2/luks2.h:86: error: redefinition of typedef 'json_object' Signed-off-by: Baruch Siach [Upstream status: https://gitlab.com/cryptsetup/cryptsetup/-/merge_requests/91] --- lib/luks2/luks2.h | 1 - lib/setup.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/luks2/luks2.h b/lib/luks2/luks2.h index ee57b41ba974..25e36190da45 100644 --- a/lib/luks2/luks2.h +++ b/lib/luks2/luks2.h @@ -83,7 +83,6 @@ struct luks2_hdr_disk { /* * LUKS2 header in-memory. */ -typedef struct json_object json_object; struct luks2_hdr { size_t hdr_size; uint64_t seqid; diff --git a/lib/setup.c b/lib/setup.c index fddbe7ef7897..856f6e80f465 100644 --- a/lib/setup.c +++ b/lib/setup.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "libcryptsetup.h" #include "luks.h" -- 2.18.0 ================================================ FILE: package/cryptsetup/Config.in ================================================ config BR2_PACKAGE_CRYPTSETUP bool "cryptsetup" depends on BR2_TOOLCHAIN_HAS_THREADS # lvm2 depends on BR2_USE_MMU # lvm2, libargon2 depends on !BR2_STATIC_LIBS # lvm2, libargon2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c select BR2_PACKAGE_POPT select BR2_PACKAGE_LVM2 select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_JSON_C select BR2_PACKAGE_LIBARGON2 select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help This tool helps manipulate dm-crypt and luks partitions for on-disk encryption. https://gitlab.com/cryptsetup/cryptsetup comment "cryptsetup needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/cryptsetup/Config.in.host ================================================ config BR2_PACKAGE_HOST_CRYPTSETUP bool "host cryptsetup" select BR2_PACKAGE_HOST_UTIL_LINUX help This tool helps manipulate dm-crypt and luks partitions for on-disk encryption. https://gitlab.com/cryptsetup/cryptsetup ================================================ FILE: package/cryptsetup/cryptsetup.hash ================================================ # From https://www.kernel.org/pub/linux/utils/cryptsetup/v2.3/sha256sums.asc sha256 b296b7a21ea576c2b180611ccb19d06aec8dddaedf7c704b0c6a81210c25635f cryptsetup-2.3.6.tar.xz sha256 45670cce8b6a0ddd66c8016cd8ccef6cd71f35717cbacc7f1e895b3855207b33 COPYING sha256 8c33cc37871654ec7ed87e6fbb896c8cf33ef5ef05b1611a5aed857596ffafa5 COPYING.LGPL ================================================ FILE: package/cryptsetup/cryptsetup.mk ================================================ ################################################################################ # # cryptsetup # ################################################################################ CRYPTSETUP_VERSION_MAJOR = 2.3 CRYPTSETUP_VERSION = $(CRYPTSETUP_VERSION_MAJOR).6 CRYPTSETUP_SOURCE = cryptsetup-$(CRYPTSETUP_VERSION).tar.xz CRYPTSETUP_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/cryptsetup/v$(CRYPTSETUP_VERSION_MAJOR) CRYPTSETUP_DEPENDENCIES = \ lvm2 popt host-pkgconf json-c libargon2 \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBS),util-linux-libs,util-linux) \ $(TARGET_NLS_DEPENDENCIES) CRYPTSETUP_LICENSE = GPL-2.0+ (programs), LGPL-2.1+ (library) CRYPTSETUP_LICENSE_FILES = COPYING COPYING.LGPL CRYPTSETUP_CPE_ID_VENDOR = cryptsetup_project CRYPTSETUP_INSTALL_STAGING = YES CRYPTSETUP_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) $(TARGET_NLS_LIBS)" CRYPTSETUP_CONF_OPTS += --enable-blkid --enable-libargon2 # cryptsetup uses libgcrypt by default, but can be configured to use OpenSSL # or kernel crypto modules instead ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) CRYPTSETUP_DEPENDENCIES += libgcrypt CRYPTSETUP_CONF_ENV += LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config CRYPTSETUP_CONF_OPTS += --with-crypto_backend=gcrypt else ifeq ($(BR2_PACKAGE_OPENSSL),y) CRYPTSETUP_DEPENDENCIES += openssl CRYPTSETUP_CONF_OPTS += --with-crypto_backend=openssl else CRYPTSETUP_CONF_OPTS += --with-crypto_backend=kernel endif ifeq ($(BR2_PACKAGE_SYSTEMD_TMPFILES),y) CRYPTSETUP_CONF_OPTS += --with-tmpfilesdir=/usr/lib/tmpfiles.d else CRYPTSETUP_CONF_OPTS += --without-tmpfilesdir endif HOST_CRYPTSETUP_DEPENDENCIES = \ host-pkgconf \ host-lvm2 \ host-popt \ host-util-linux \ host-json-c \ host-openssl HOST_CRYPTSETUP_CONF_OPTS = --with-crypto_backend=openssl \ --disable-kernel_crypto \ --enable-blkid \ --with-tmpfilesdir=no $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/ctorrent/0001-fix-musl-build.patch ================================================ [PATCH] Fix compilation on musl Using the ssize_t typedef requires including . See : https://sourceforge.net/p/dtorrent/patches/3/ Signed-off-by: Brendan Heading Upstream-status: submitted --- diff -Nur a/compat.c b/compat.c --- a/compat.c 2015-07-29 18:22:24.658415171 +0100 +++ b/compat.c 2015-07-29 18:36:21.752576311 +0100 @@ -63,6 +63,7 @@ #ifndef HAVE_STRNSTR #include +#include /* FUNCTION PROGRAMER: Siberiaic Sang */ char *strnstr(const char *haystack, const char *needle, size_t haystacklen) { ================================================ FILE: package/ctorrent/Config.in ================================================ comment "ctorrent needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_CTORRENT bool "ctorrent" depends on BR2_INSTALL_LIBSTDCPP help CTorrent is a BitTorrent client implemented in C++ to be lightweight and quick. http://ctorrent.sourceforge.net/ This is the enhanced version from http://www.rahul.net/dholmes/ctorrent/ ================================================ FILE: package/ctorrent/ctorrent.hash ================================================ # From http://sourceforge.net/projects/dtorrent/files/dtorrent/3.3.2/ sha1 d4e221f0292268f80e2430ce9d451dd64cf1ffaa ctorrent-dnh3.3.2.tar.gz # locally calculated sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/ctorrent/ctorrent.mk ================================================ ################################################################################ # # ctorrent # ################################################################################ CTORRENT_VERSION = dnh3.3.2 CTORRENT_SITE = http://www.rahul.net/dholmes/ctorrent CTORRENT_LICENSE = GPL-2.0 CTORRENT_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_OPENSSL),y) CTORRENT_CONF_OPTS += --with-ssl=yes CTORRENT_DEPENDENCIES += openssl else CTORRENT_CONF_OPTS += --with-ssl=no endif $(eval $(autotools-package)) ================================================ FILE: package/cukinia/Config.in ================================================ config BR2_PACKAGE_CUKINIA bool "cukinia" depends on BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_GAWK help Cukinia is designed to help Linux-based embedded firmware developers run system-level validation tests on their product. It provides a simple POSIX shell overlay, and primitives to make sure system integrations and features keep behaving the way they should. By default, cukinia reports colorized test results on stdout, but can also report them as CSV and JUnit-XML for easy integration with CI systems such as Jenkins. https://github.com/savoirfairelinux/cukinia comment "cukinia needs busybox or gawk" depends on !(BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_GAWK) ================================================ FILE: package/cukinia/cukinia.conf ================================================ # Note: Cukinia will produce colorized output if the TERM environment # variable matches vt220, xterm or linux. cukinia_log $(_colorize blue "############# Cukinia tests ##############") cukinia_user root ================================================ FILE: package/cukinia/cukinia.hash ================================================ # locally computed sha256 b867ec63e448e7fa0a9276f6844a8b3a8f92d99e63e8518fe24e9debd32679b5 cukinia-0.5.1.tar.gz sha256 b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1 LICENSE sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPLv3 ================================================ FILE: package/cukinia/cukinia.mk ================================================ ################################################################################ # # cukinia # ################################################################################ CUKINIA_VERSION = 0.5.1 CUKINIA_SITE = $(call github,savoirfairelinux,cukinia,v$(CUKINIA_VERSION)) CUKINIA_LICENSE = Apache-2.0 or GPL-3.0 CUKINIA_LICENSE_FILES = LICENSE LICENSE.GPLv3 define CUKINIA_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/cukinia $(TARGET_DIR)/usr/bin/cukinia $(INSTALL) -D -m 0644 $(CUKINIA_PKGDIR)/cukinia.conf \ $(TARGET_DIR)/etc/cukinia/cukinia.conf endef $(eval $(generic-package)) ================================================ FILE: package/cunit/Config.in ================================================ config BR2_PACKAGE_CUNIT bool "cunit" help An automated testing framework in 'C'. http://cunit.sourceforge.net/ ================================================ FILE: package/cunit/cunit.hash ================================================ # Locally calculated: sha256 f5b29137f845bb08b77ec60584fdb728b4e58f1023e6f249a464efa49a40f214 CUnit-2.1-3.tar.bz2 sha256 5d9d73d41a57dd2f34487ef3978a2c13cdb97294baeeb81fcd274796399eb15f COPYING ================================================ FILE: package/cunit/cunit.mk ================================================ ################################################################################ # # cunit # ################################################################################ CUNIT_VERSION = 2.1-3 CUNIT_SITE = http://downloads.sourceforge.net/project/cunit/CUnit/$(CUNIT_VERSION) CUNIT_SOURCE = CUnit-$(CUNIT_VERSION).tar.bz2 CUNIT_INSTALL_STAGING = YES CUNIT_LICENSE = LGPL-2.0+ CUNIT_LICENSE_FILES = COPYING # The source archive does not have the autoconf/automake material generated. CUNIT_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/cups/0001-Remove-man-from-BUILDDIRS-in-configure.patch ================================================ 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 Signed-off-by: Bernd Kuhls [Fabrice: updated for 2.3.0] Signed-off-by: Fabrice Fontaine [Michael: updated for 2.3.3] Signed-off-by: Michael Trimarchi --- config-scripts/cups-common.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4 index a460a73..d427acb 100644 --- a/config-scripts/cups-common.m4 +++ b/config-scripts/cups-common.m4 @@ -434,7 +434,7 @@ LIBHEADERSPRIV="\$(COREHEADERSPRIV) \$(DRIVERHEADERSPRIV)" case "$COMPONENTS" in all) - BUILDDIRS="tools filter backend berkeley cgi-bin monitor notifier ppdc scheduler systemv conf data desktop locale man doc examples templates" + BUILDDIRS="tools filter backend berkeley cgi-bin monitor notifier ppdc scheduler systemv conf data desktop locale doc examples templates" ;; core) -- 2.17.1 ================================================ FILE: package/cups/0002-Do-not-use-genstrings.patch ================================================ From 193c8d8c55a3478ca5c9e161ce581e5794098c6d Mon Sep 17 00:00:00 2001 From: Olivier Schonken Date: Thu, 21 Jan 2016 23:04:49 +0100 Subject: [PATCH] Do not use genstrings Using cross compiled genstrings while cross-compiling will break compilation. Genstrings is still compiled because some power users might want to do ppd compilation on their target machine, and for that they would need to use the native compiled genstrings binary, to generate a sample.c file for their target Signed-off-by: Olivier Schonken [Thomas: completely remove call to genstrings rather than commenting it, remove useless and potentially confusing 'echo' before the genstrings call.] Signed-off-by: Thomas Petazzoni [Fabrice: updated for 2.3.0] Signed-off-by: Fabrice Fontaine [Michael: updated for 2.3.3] Signed-off-by: Michael Trimarchi --- ppdc/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/ppdc/Makefile b/ppdc/Makefile index 32e2e0b..7b18879 100644 --- a/ppdc/Makefile +++ b/ppdc/Makefile @@ -186,8 +186,6 @@ genstrings: genstrings.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) \ $(LD_CXX) $(ARCHFLAGS) $(ALL_LDFLAGS) -o genstrings genstrings.o \ libcupsppdc.a $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ - echo Generating localization strings... - ./genstrings >sample.c # -- 2.17.1 ================================================ FILE: package/cups/0003-Sanitize-the-installation-process.patch ================================================ From e35f809c435c224954a5c7bff3f5729c5b3bc0ba Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 21 Jan 2016 23:21:06 +0100 Subject: [PATCH] Sanitize the installation process The installation process does two things that are not convenient when cross-compiling: - It uses install's -s option to strip binaries, but this option uses the host strip and not the cross strip, which fails at stripping binaries. In addition, we do not necessarily want cups to strip its binaries, we may want to keep the debugging symbols. - It enforces ownership (user, group) which isn't possible since "make install" isn't executed as root when cross-compiling. - It installs many files and directories with permissions that prevent overwriting those files/directories, which meant calling "make install" twice was failing. [Olivier: tweak the patch for 2.2.4 release] Signed-off-by: Thomas Petazzoni Signed-off-by: Olivier Schonken --- Makedefs.in | 12 ++++++------ conf/Makefile | 6 +++--- notifier/Makefile | 2 +- scheduler/Makefile | 15 +++++++-------- 4 files changed, 17 insertions(+), 18 deletions(-) diff --git a/Makedefs.in b/Makedefs.in index 3afef0a..3e4f1bd 100644 --- a/Makedefs.in +++ b/Makedefs.in @@ -40,14 +40,14 @@ SHELL = /bin/sh # Installation programs... # -INSTALL_BIN = @LIBTOOL_INSTALL@ $(INSTALL) -c -m @CUPS_EXE_FILE_PERM@ @INSTALL_STRIP@ -INSTALL_COMPDATA = $(INSTALL) -c -m 444 @INSTALL_GZIP@ +INSTALL_BIN = @LIBTOOL_INSTALL@ $(INSTALL) -c -m 755 +INSTALL_COMPDATA = $(INSTALL) -c -m 644 @INSTALL_GZIP@ INSTALL_CONFIG = $(INSTALL) -c -m @CUPS_CONFIG_FILE_PERM@ -INSTALL_DATA = $(INSTALL) -c -m 444 +INSTALL_DATA = $(INSTALL) -c -m 644 INSTALL_DIR = $(INSTALL) -d -INSTALL_LIB = @LIBTOOL_INSTALL@ $(INSTALL) -c -m @CUPS_EXE_FILE_PERM@ @INSTALL_STRIP@ -INSTALL_MAN = $(INSTALL) -c -m 444 -INSTALL_SCRIPT = $(INSTALL) -c -m @CUPS_EXE_FILE_PERM@ +INSTALL_LIB = @LIBTOOL_INSTALL@ $(INSTALL) -c -m 755 +INSTALL_MAN = $(INSTALL) -c -m 644 +INSTALL_SCRIPT = $(INSTALL) -c -m 755 # # Default user, group, and system groups for the scheduler... diff --git a/conf/Makefile b/conf/Makefile index 933d7d9..6ac5e19 100644 --- a/conf/Makefile +++ b/conf/Makefile @@ -72,11 +72,11 @@ install: all install-data install-headers install-libs install-exec install-data: for file in $(KEEP); do \ if test -r $(SERVERROOT)/$$file ; then \ - $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT)/$$file.N ; \ + $(INSTALL_CONFIG) $$file $(SERVERROOT)/$$file.N ; \ else \ - $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT) ; \ + $(INSTALL_CONFIG) $$file $(SERVERROOT) ; \ fi ; \ - $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT)/$$file.default; \ + $(INSTALL_CONFIG) $$file $(SERVERROOT)/$$file.default; \ done $(INSTALL_DIR) -m 755 $(DATADIR)/mime for file in $(REPLACE); do \ diff --git a/notifier/Makefile b/notifier/Makefile index 3206dd0..c34a4d7 100644 --- a/notifier/Makefile +++ b/notifier/Makefile @@ -62,7 +62,7 @@ install: all install-data install-headers install-libs install-exec # install-data: - $(INSTALL_DIR) -m 775 -g $(CUPS_GROUP) $(CACHEDIR)/rss + $(INSTALL_DIR) -m 775 $(CACHEDIR)/rss # diff --git a/scheduler/Makefile b/scheduler/Makefile index 251f017..25f2f5f 100644 --- a/scheduler/Makefile +++ b/scheduler/Makefile @@ -146,28 +146,27 @@ install-data: echo Creating $(SERVERBIN)/driver... $(INSTALL_DIR) -m 755 $(SERVERBIN)/driver echo Creating $(SERVERROOT)... - $(INSTALL_DIR) -m 755 -g $(CUPS_GROUP) $(SERVERROOT) + $(INSTALL_DIR) -m 755 $(SERVERROOT) echo Creating $(SERVERROOT)/ppd... - $(INSTALL_DIR) -m 755 -g $(CUPS_GROUP) $(SERVERROOT)/ppd + $(INSTALL_DIR) -m 755 $(SERVERROOT)/ppd if test "x`uname`" != xDarwin; then \ echo Creating $(SERVERROOT)/ssl...; \ - $(INSTALL_DIR) -m 700 -g $(CUPS_GROUP) $(SERVERROOT)/ssl; \ + $(INSTALL_DIR) -m 700 $(SERVERROOT)/ssl; \ fi if test "$(STATEDIR)" != "$(SERVERROOT)"; then \ echo Creating $(STATEDIR)...; \ $(INSTALL_DIR) -m 755 $(STATEDIR); \ fi echo Creating $(STATEDIR)/certs... - $(INSTALL_DIR) -m 511 -o $(CUPS_USER) -g $(CUPS_PRIMARY_SYSTEM_GROUP) \ - $(STATEDIR)/certs + $(INSTALL_DIR) -m 711 $(STATEDIR)/certs echo Creating $(LOGDIR)... $(INSTALL_DIR) -m 755 $(LOGDIR) echo Creating $(REQUESTS)... - $(INSTALL_DIR) -m 710 -g $(CUPS_GROUP) $(REQUESTS) + $(INSTALL_DIR) -m 710 $(REQUESTS) echo Creating $(REQUESTS)/tmp... - $(INSTALL_DIR) -m 1770 -g $(CUPS_GROUP) $(REQUESTS)/tmp + $(INSTALL_DIR) -m 1770 $(REQUESTS)/tmp echo Creating $(CACHEDIR)... - $(INSTALL_DIR) -m 770 -g $(CUPS_GROUP) $(CACHEDIR) + $(INSTALL_DIR) -m 770 $(CACHEDIR) if test "x$(INITDIR)" != x; then \ echo Installing init scripts...; \ $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/init.d; \ -- 2.6.4 ================================================ FILE: package/cups/0004-Remove-PIE-flags-from-the-build.patch ================================================ 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. [olivier tweak patch for 2.2.4] Signed-off-by: Thomas Petazzoni Signed-off-by: Olivier Schonken [Fabrice: updated for 2.3.0] Signed-off-by: Fabrice Fontaine [Michael: updated for 2.3.3] Signed-off-by: Michael Trimarchi --- Makedefs.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makedefs.in b/Makedefs.in index 5f1d32f..d669ea8 100644 --- a/Makedefs.in +++ b/Makedefs.in @@ -155,7 +155,7 @@ ALL_CXXFLAGS = -I.. -D_CUPS_SOURCE $(CXXFLAGS) \ $(ONDEMANDFLAGS) $(OPTIONS) ALL_DSOFLAGS = -L../cups @ARCHFLAGS@ @RELROFLAGS@ $(DSOFLAGS) $(OPTIM) ALL_LDFLAGS = -L../cups @LDARCHFLAGS@ @RELROFLAGS@ $(LDFLAGS) \ - @PIEFLAGS@ $(OPTIM) + $(OPTIM) ARCHFLAGS = @ARCHFLAGS@ ARFLAGS = @ARFLAGS@ BACKLIBS = @BACKLIBS@ -- 2.17.1 ================================================ FILE: package/cups/70-usb-printers.rules ================================================ # Allow USB printers in the lp group # Match rules converted from usblp.c driver's usblp_ids ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="07", ATTR{bInterfaceSubClass}=="01", GROUP="lp" ================================================ FILE: package/cups/Config.in ================================================ config BR2_PACKAGE_CUPS bool "cups" # needs libstdcpp for ppdc depends on BR2_INSTALL_LIBSTDCPP # needs threads for ippserver depends on BR2_TOOLCHAIN_HAS_THREADS # needs fork() depends on BR2_USE_MMU help The Common Unix Printing System http://www.cups.org comment "cups needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/cups/S81cupsd ================================================ #!/bin/sh DAEMON="cupsd" PIDFILE="/var/run/$DAEMON.pid" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- -C /etc/cups/cupsd.conf -s /etc/cups/cups-files status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/cups/cups.hash ================================================ # Locally calculated: sha256 deb3575bbe79c0ae963402787f265bfcf8d804a71fc2c94318a74efec86f96df cups-2.3.3op2-source.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE sha256 1f8e5879fb8b15e3ee5111809fd3ca22c606d0897d6b5e74329e480c348e034d NOTICE ================================================ FILE: package/cups/cups.mk ================================================ ################################################################################ # # cups # ################################################################################ CUPS_VERSION = 2.3.3op2 CUPS_SOURCE = cups-$(CUPS_VERSION)-source.tar.gz CUPS_SITE = https://github.com/OpenPrinting/cups/releases/download/v$(CUPS_VERSION) CUPS_LICENSE = Apache-2.0 with GPL-2.0/LGPL-2.0 exception CUPS_LICENSE_FILES = LICENSE NOTICE CUPS_CPE_ID_VENDOR = cups CUPS_SELINUX_MODULES = cups CUPS_INSTALL_STAGING = YES # Using autoconf, not autoheader, so we cannot use AUTORECONF = YES. define CUPS_RUN_AUTOCONF cd $(@D); $(AUTOCONF) -f endef CUPS_PRE_CONFIGURE_HOOKS += CUPS_RUN_AUTOCONF CUPS_CONF_OPTS = \ --with-docdir=/usr/share/cups/doc-root \ --disable-gssapi \ --disable-pam \ --libdir=/usr/lib \ --with-cups-user=lp \ --with-cups-group=lp \ --with-system-groups="lpadmin sys root" \ --without-rcdir CUPS_CONFIG_SCRIPTS = cups-config CUPS_DEPENDENCIES = \ host-autoconf \ host-pkgconf \ $(if $(BR2_PACKAGE_ZLIB),zlib) ifeq ($(BR2_PACKAGE_SYSTEMD),y) CUPS_CONF_OPTS += --with-systemd=/usr/lib/systemd/system \ --enable-systemd CUPS_DEPENDENCIES += systemd else CUPS_CONF_OPTS += --disable-systemd endif ifeq ($(BR2_PACKAGE_DBUS),y) CUPS_CONF_OPTS += --enable-dbus CUPS_DEPENDENCIES += dbus else CUPS_CONF_OPTS += --disable-dbus endif ifeq ($(BR2_PACKAGE_GNUTLS),y) CUPS_CONF_OPTS += --enable-gnutls CUPS_DEPENDENCIES += gnutls else CUPS_CONF_OPTS += --disable-gnutls endif ifeq ($(BR2_PACKAGE_LIBUSB),y) CUPS_CONF_OPTS += --enable-libusb CUPS_DEPENDENCIES += libusb else CUPS_CONF_OPTS += --disable-libusb endif ifeq ($(BR2_PACKAGE_LIBPAPER),y) CUPS_CONF_OPTS += --enable-libpaper CUPS_DEPENDENCIES += libpaper else CUPS_CONF_OPTS += --disable-libpaper endif ifeq ($(BR2_PACKAGE_AVAHI),y) CUPS_DEPENDENCIES += avahi CUPS_CONF_OPTS += --enable-avahi else CUPS_CONF_OPTS += --disable-avahi endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) define CUPS_INSTALL_UDEV_RULES $(INSTALL) -D -m 0644 package/cups/70-usb-printers.rules \ $(TARGET_DIR)/lib/udev/rules.d/70-usb-printers.rules endef CUPS_POST_INSTALL_TARGET_HOOKS += CUPS_INSTALL_UDEV_RULES endif define CUPS_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/cups/S81cupsd \ $(TARGET_DIR)/etc/init.d/S81cupsd endef # lp user is needed to run cups spooler # lpadmin group membership grants administrative privileges define CUPS_USERS lp -1 lp -1 * /var/spool/lpd /bin/false - lp - - lpadmin -1 * - - - Printers admin group. endef $(eval $(autotools-package)) ================================================ FILE: package/cups-filters/Config.in ================================================ config BR2_PACKAGE_CUPS_FILTERS bool "cups-filters" # needs fork() depends on BR2_USE_MMU depends on BR2_INSTALL_LIBSTDCPP # qpdf depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR # libglib2, qpdf depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_PACKAGE_CUPS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 select BR2_PACKAGE_JPEG select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_LCMS2 select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_QPDF help This project provides backends, filters, and other software that was once part of the core CUPS distribution but is no longer maintained by Apple Inc. In addition it contains additional filters and software developed independently of Apple, especially filters for the PDF-centric printing workflow introduced by OpenPrinting and a daemon to browse Bonjour broadcasts of remote CUPS printers to make these printers available locally and to provide backward compatibility to the old CUPS broadcasting and browsing of CUPS 1.5.x and older. From CUPS 1.6.0 on, this package is required for using printer drivers with CUPS under Linux. With CUPS 1.5.x and earlier this package can be used optionally to switch over to PDF-based printing. http://www.linuxfoundation.org/collaborate/workgroups/openprinting/cups-filters comment "cups-filters needs a toolchain w/ wchar, C++, threads and dynamic library, gcc >= 4.8" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_USE_WCHAR || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/cups-filters/S82cups-browsed ================================================ #!/bin/sh DAEMON="cups-browsed" PIDFILE="/var/run/$DAEMON.pid" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- -c /etc/cups/cups-browsed.conf status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/cups-filters/cups-filters.hash ================================================ # Locally computed: sha256 5bad0b931f8293082f8773b34d5c4fed66415d2bf268b0798889e5f593c0ba61 cups-filters-1.28.9.tar.gz sha256 38192ffdaca98b718f78b2d4abc38bb087f0bbcc9a16d212c98b903b985f900f COPYING ================================================ FILE: package/cups-filters/cups-filters.mk ================================================ ################################################################################ # # cups-filters # ################################################################################ CUPS_FILTERS_VERSION = 1.28.9 CUPS_FILTERS_SITE = http://openprinting.org/download/cups-filters CUPS_FILTERS_LICENSE = GPL-2.0, GPL-2.0+, GPL-3.0, GPL-3.0+, LGPL-2, LGPL-2.1+, MIT, BSD-4-Clause CUPS_FILTERS_LICENSE_FILES = COPYING CUPS_FILTERS_CPE_ID_VENDOR = linuxfoundation CUPS_FILTERS_DEPENDENCIES = cups libglib2 lcms2 qpdf fontconfig freetype jpeg CUPS_FILTERS_CONF_OPTS = \ --disable-mutool \ --disable-foomatic \ --disable-braille \ --enable-imagefilters \ --with-cups-config=$(STAGING_DIR)/usr/bin/cups-config \ --with-sysroot=$(STAGING_DIR) \ --with-pdftops=pdftops \ --with-jpeg \ --with-test-font-path=/dev/null \ --without-rcdir ifeq ($(BR2_PACKAGE_LIBPNG),y) CUPS_FILTERS_CONF_OPTS += --with-png CUPS_FILTERS_DEPENDENCIES += libpng else CUPS_FILTERS_CONF_OPTS += --without-png endif ifeq ($(BR2_PACKAGE_TIFF),y) CUPS_FILTERS_CONF_OPTS += --with-tiff CUPS_FILTERS_DEPENDENCIES += tiff else CUPS_FILTERS_CONF_OPTS += --without-tiff endif ifeq ($(BR2_PACKAGE_DBUS),y) CUPS_FILTERS_CONF_OPTS += --enable-dbus CUPS_FILTERS_DEPENDENCIES += dbus else CUPS_FILTERS_CONF_OPTS += --disable-dbus endif # avahi support requires avahi-client, which needs avahi-daemon and dbus ifeq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_DBUS),yy) CUPS_FILTERS_DEPENDENCIES += avahi CUPS_FILTERS_CONF_OPTS += --enable-avahi else CUPS_FILTERS_CONF_OPTS += --disable-avahi endif ifeq ($(BR2_PACKAGE_GHOSTSCRIPT),y) CUPS_FILTERS_DEPENDENCIES += ghostscript CUPS_FILTERS_CONF_OPTS += --enable-ghostscript else CUPS_FILTERS_CONF_OPTS += --disable-ghostscript endif ifeq ($(BR2_PACKAGE_IJS),y) CUPS_FILTERS_DEPENDENCIES += ijs CUPS_FILTERS_CONF_OPTS += --enable-ijs else CUPS_FILTERS_CONF_OPTS += --disable-ijs endif ifeq ($(BR2_PACKAGE_POPPLER),y) CUPS_FILTERS_DEPENDENCIES += poppler CUPS_FILTERS_CONF_OPTS += --enable-poppler else CUPS_FILTERS_CONF_OPTS += --disable-poppler endif define CUPS_FILTERS_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/cups-filters/S82cups-browsed \ $(TARGET_DIR)/etc/init.d/S82cups-browsed endef define CUPS_FILTERS_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0755 $(@D)/utils/cups-browsed.service \ $(TARGET_DIR)/usr/lib/systemd/system/cups-browsed.service endef $(eval $(autotools-package)) ================================================ FILE: package/curlftpfs/0001-fix-CURLOPT_INFILESIZE.patch ================================================ Borrowed from the curlftpfs_0.9.2-5 Debian package. CURLOPT_INFILESIZE does not support -1 arg. This fix bug #556012. --- curlftpfs-0.9.2/ftpfs.c.old 2009-12-13 14:12:25.000000000 +0100 +++ curlftpfs-0.9.2/ftpfs.c 2009-12-13 14:12:32.000000000 +0100 @@ -503,7 +503,6 @@ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_URL, fh->full_path); curl_easy_setopt_or_die(fh->write_conn, CURLOPT_UPLOAD, 1); - curl_easy_setopt_or_die(fh->write_conn, CURLOPT_INFILESIZE, -1); curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READFUNCTION, write_data_bg); curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READDATA, fh); curl_easy_setopt_or_die(fh->write_conn, CURLOPT_LOW_SPEED_LIMIT, 1); ================================================ FILE: package/curlftpfs/0002-free_ftpfs_file-memleak-fix.patch ================================================ Borrowed from the curlftpfs_0.9.2-5 Debian package. Fix a memory leak. See Bug #587250. --- a/ftpfs.c 2008-04-30 01:05:47.000000000 +0200 +++ a/ftpfs.c.slesimple 2010-01-01 22:12:10.000000000 +0100 @@ -615,6 +615,8 @@ static void free_ftpfs_file(struct ftpfs sem_destroy(&fh->data_need); sem_destroy(&fh->data_written); sem_destroy(&fh->ready); + if (fh->buf.size) { buf_free(&fh->buf); } + if (fh->stream_buf.size) { buf_free(&fh->stream_buf); } free(fh); } ================================================ FILE: package/curlftpfs/0003-nocache-memleak-fix.patch ================================================ Borrowed from the curlftpfs_0.9.2-5 Debian package. Fix a memory leak when cache is disabled. Closes: #614347. diff -ur curlftpfs-0.9.2/cache.c curlftpfs-0.9.2-olexat/cache.c --- curlftpfs-0.9.2/cache.c 2008-04-30 01:03:09.000000000 +0200 +++ curlftpfs-0.9.2-olexat/cache.c 2011-02-04 16:43:05.000000000 +0100 @@ -25,7 +25,7 @@ time_t last_cleaned; }; -static struct cache cache; +struct cache cache; struct node { struct stat stat; diff -ur curlftpfs-0.9.2/ftpfs-ls.c curlftpfs-0.9.2-olexat/ftpfs-ls.c --- curlftpfs-0.9.2/ftpfs-ls.c 2008-04-23 12:55:41.000000000 +0200 +++ curlftpfs-0.9.2-olexat/ftpfs-ls.c 2011-02-07 17:23:37.000000000 +0100 @@ -25,6 +25,13 @@ #include "charset_utils.h" #include "ftpfs-ls.h" +struct cache { + int on; + char incomplete[]; +}; + +extern struct cache cache; + static int parse_dir_unix(const char *line, struct stat *sbuf, char *file, @@ -243,8 +256,10 @@ reallink = g_strdup(link); } int linksize = strlen(reallink); - cache_add_link(full_path, reallink, linksize+1); - DEBUG(1, "cache_add_link: %s %s\n", full_path, reallink); + if (cache.on) { + cache_add_link(full_path, reallink, linksize+1); + DEBUG(1, "cache_add_link: %s %s\n", full_path, reallink); + } if (linkbuf && linklen) { if (linksize > linklen) linksize = linklen - 1; strncpy(linkbuf, reallink, linksize); @@ -257,8 +272,10 @@ DEBUG(1, "filler: %s\n", file); filler(h, file, &stat_buf); } else { - DEBUG(1, "cache_add_attr: %s\n", full_path); - cache_add_attr(full_path, &stat_buf); + if (cache.on) { + DEBUG(1, "cache_add_attr: %s\n", full_path); + cache_add_attr(full_path, &stat_buf); + } } DEBUG(2, "comparing %s %s\n", name, file); ================================================ FILE: package/curlftpfs/0004-fix-musl-build-off-t.patch ================================================ Use off_t instead of __off_t __off_t is an internal C library type, which shouldn't be used by applications. It is not defined by the musl C library, so use the public off_t type instead. Signed-off-by: Thomas Petazzoni Index: b/ftpfs.c =================================================================== --- a/ftpfs.c +++ b/ftpfs.c @@ -687,7 +687,7 @@ return ftpfs_getattr(path, &sbuf); } -static __off_t test_size(const char* path) +static off_t test_size(const char* path) { struct stat sbuf; int err = ftpfs_getattr(path, &sbuf); @@ -950,7 +950,7 @@ /* fix openoffice problem, truncating exactly to file length */ - __off_t size = (long long int)test_size(path); + off_t size = (long long int)test_size(path); DEBUG(1, "ftpfs_truncate: %s check filesize=%lld\n", path, (long long int)size); if (offset == size) @@ -978,7 +978,7 @@ } /* fix openoffice problem, truncating exactly to file length */ - __off_t size = test_size(path); + off_t size = test_size(path); DEBUG(1, "ftpfs_ftruncate: %s check filesize=%lld\n", path, (long long int)size); if (offset == size) ================================================ FILE: package/curlftpfs/Config.in ================================================ config BR2_PACKAGE_CURLFTPFS bool "curlftpfs (FUSE)" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse, glib2 depends on BR2_USE_MMU # libfuse, glib2 depends on !BR2_STATIC_LIBS # libfuse select BR2_PACKAGE_LIBFUSE select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBCURL help CurlFtpFS is a filesystem for accessing FTP hosts based on FUSE and libcurl. http://curlftpfs.sourceforge.net/ comment "curlftpfs 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 ================================================ FILE: package/curlftpfs/curlftpfs.hash ================================================ # Locally computed: sha256 4eb44739c7078ba0edde177bdd266c4cfb7c621075f47f64c85a06b12b3c6958 curlftpfs-0.9.2.tar.gz sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/curlftpfs/curlftpfs.mk ================================================ ################################################################################ # # curlftpfs # ################################################################################ CURLFTPFS_VERSION = 0.9.2 CURLFTPFS_SITE = http://downloads.sourceforge.net/project/curlftpfs/curlftpfs/$(CURLFTPFS_VERSION) CURLFTPFS_CONF_ENV = ac_cv_path__libcurl_config=$(STAGING_DIR)/usr/bin/curl-config CURLFTPFS_LICENSE = GPL-2.0 CURLFTPFS_LICENSE_FILES = COPYING CURLFTPFS_DEPENDENCIES = \ libglib2 libfuse openssl libcurl \ $(TARGET_NLS_DEPENDENCIES) \ $(if $(BR2_ENABLE_LOCALE),,libiconv) $(eval $(autotools-package)) ================================================ FILE: package/curlpp/Config.in ================================================ config BR2_PACKAGE_CURLPP bool "curlpp" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBCURL help cURLpp is a C++ wrapper for libcURL. http://www.curlpp.org/ comment "curlpp needs a toolchain w/ C++, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS ================================================ FILE: package/curlpp/curlpp.hash ================================================ # Locally computed: sha256 97e3819bdcffc3e4047b6ac57ca14e04af85380bd93afe314bee9dd5c7f46a0a v0.8.1.tar.gz # Hash for license files: sha256 8b9e3afd4d06ad3c169e788e5187a3e9f4f35671e9a7322f7e74bea9643b5b5a doc/LICENSE ================================================ FILE: package/curlpp/curlpp.mk ================================================ ################################################################################ # # curlpp # ################################################################################ CURLPP_VERSION = 0.8.1 CURLPP_SITE = https://github.com/jpbarrette/curlpp/archive CURLPP_SOURCE = v$(CURLPP_VERSION).tar.gz CURLPP_LICENSE = MIT CURLPP_LICENSE_FILES = doc/LICENSE CURLPP_INSTALL_STAGING = YES CURLPP_DEPENDENCIES = libcurl $(eval $(cmake-package)) ================================================ FILE: package/cutelyst/0001-server-CMakeLists.txt-don-t-override-CMAKE_EXE_LINKE.patch ================================================ From c347aeb43775109cbc2824b99cb10b1b3440c191 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 17 May 2021 21:27:11 +0200 Subject: [PATCH] server/CMakeLists.txt: don't override CMAKE_EXE_LINKER_FLAGS Don't override CMAKE_EXE_LINKER_FLAGS as this could break the build if CMAKE_EXE_LINKER_FLAGS is already set by the user (for example to pass -latomic) Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/cutelyst/cutelyst/pull/312] --- wsgi/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt index ec5689f7..1ed56859 100644 --- a/wsgi/CMakeLists.txt +++ b/wsgi/CMakeLists.txt @@ -95,7 +95,7 @@ install(TARGETS Cutelyst${PROJECT_VERSION_MAJOR}Qt${QT_VERSION_MAJOR}Server cxx_generalized_initializers ) if (JEMALLOC_FOUND) - set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} " -Wl,--no-as-needed") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-as-needed") target_link_libraries(cutelyst-wsgi2 PRIVATE ${JEMALLOC_LIBRARIES}) endif() -- 2.30.2 ================================================ FILE: package/cutelyst/Config.in ================================================ config BR2_PACKAGE_CUTELYST bool "cutelyst" depends on BR2_PACKAGE_QT5 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 select BR2_PACKAGE_QT5BASE_GUI help A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework. https://cutelyst.org comment "cutelyst needs a toolchain w/ C++, gcc >= 4.8, headers >= 3.3" depends on BR2_PACKAGE_QT5 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 ================================================ FILE: package/cutelyst/cutelyst.hash ================================================ # Locally calculated after checking pgp signature sha256 b0e3d658a60d68906f7255b78bad64af1aa07cb3b785fbf61629b7355f089baa cutelyst-2.11.0.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/cutelyst/cutelyst.mk ================================================ ################################################################################ # # cutelyst # ################################################################################ CUTELYST_VERSION = 2.11.0 CUTELYST_SITE = https://github.com/cutelyst/cutelyst/archive/v$(CUTELYST_VERSION) CUTELYST_INSTALL_STAGING = YES CUTELYST_SUPPORTS_IN_SOURCE_BUILD = NO CUTELYST_LICENSE = LGPL-2.1+ CUTELYST_LICENSE_FILES = COPYING CUTELYST_DEPENDENCIES = qt5base CUTELYST_CONF_OPTS += \ -DPLUGIN_CSRFPROTECTION=ON \ -DPLUGIN_VIEW_GRANTLEE=OFF # Qt 5.8 needs atomics, which on various architectures are in -latomic ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) CUTELYST_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif ifeq ($(BR2_PACKAGE_LIBPWQUALITY),y) CUTELYST_CONF_OPTS += -DPLUGIN_VALIDATOR_PWQUALITY=ON CUTELYST_DEPENDENCIES += libpwquality else CUTELYST_CONF_OPTS += -DPLUGIN_VALIDATOR_PWQUALITY=OFF endif ifeq ($(BR2_PACKAGE_JEMALLOC),y) CUTELYST_CONF_OPTS += -DUSE_JEMALLOC=ON CUTELYST_DEPENDENCIES += jemalloc else CUTELYST_CONF_OPTS += -DUSE_JEMALLOC=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/cvs/Config.in ================================================ config BR2_PACKAGE_CVS bool "cvs" depends on BR2_USE_WCHAR # needs fork() depends on BR2_USE_MMU select BR2_PACKAGE_NCURSES help Concurrent Versions System - source code revision control tools. http://www.nongnu.org/cvs/ if BR2_PACKAGE_CVS config BR2_PACKAGE_CVS_SERVER bool "server support" help Enable cvs server code endif comment "cvs needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR ================================================ FILE: package/cvs/cvs.hash ================================================ # From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/c/cvs/cvs_1.12.13-12%2Bsqueeze1.dsc sha256 b5961c2476b996e5758fa5e22b60af085adca41164cac0d8f68a1d3b49d4e4f1 cvs_1.12.13.orig.tar.gz sha256 d52a9232d9cf36302a150d782fc7e5b6f92f8115505ae8a7dc6acfc83e809d2f cvs_1.12.13-12+squeeze1.diff.gz # Hash for license files, locally computed sha256 569c5b876327d899cf444b2277fe910128a38ca71d90755fe4125dd44f8ece02 COPYING sha256 da0e282103fb508894e78db519aab255e36971ce0bc87de585e3b05014b83b1e COPYING.LIB sha256 ee9a2fbdb626c0ac57fd8e569f357eb2e6d6c80cc6f41efa8bd126d5ea589d72 lib/glob-libc.h ================================================ FILE: package/cvs/cvs.mk ================================================ ################################################################################ # # cvs # ################################################################################ CVS_VERSION = 1.12.13 CVS_SOURCE = cvs_$(CVS_VERSION).orig.tar.gz CVS_PATCH = cvs_$(CVS_VERSION)-12+squeeze1.diff.gz CVS_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/c/cvs CVS_LICENSE = GPL-1.0+, LGPL-2.0+, LGPL-2.1+ (glob) CVS_LICENSE_FILES = COPYING COPYING.LIB lib/glob-libc.h CVS_CPE_ID_VENDOR = gnu CVS_SELINUX_MODULES = apache cvs CVS_DEPENDENCIES = ncurses CVS_CONF_ENV = \ ac_cv_func_working_mktime=yes \ cvs_cv_func_printf_ptr=yes CVS_CONFIGURE_ARGS = --disable-old-info-format-support ifeq ($(BR2_PACKAGE_CVS_SERVER),y) CVS_CONFIGURE_ARGS += --enable-server else CVS_CONFIGURE_ARGS += --disable-server endif ifeq ($(BR2_PACKAGE_ZLIB),y) CVS_CONFIGURE_ARGS += --with-external-zlib endif CVS_CONF_OPTS = $(CVS_CONFIGURE_ARGS) define CVS_BZIP_UNPACK $(BZCAT) $(@D)/cvs-$(CVS_VERSION).tar.bz2 | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - rm -f $(@D)/cvs-$(CVS_VERSION).tar.bz2 endef CVS_POST_PATCH_HOOKS += CVS_BZIP_UNPACK ifneq ($(CVS_PATCH),) define CVS_DEBIAN_PATCHES if [ -d $(@D)/debian/patches ]; then \ (cd $(@D)/debian/patches && for i in *; \ do $(SED) 's,^\+\+\+ .*cvs-$(CVS_VERSION)/,+++ cvs-$(CVS_VERSION)/,' $$i; \ done; \ ); \ $(APPLY_PATCHES) $(@D) $(@D)/debian/patches \*; \ fi endef endif CVS_POST_PATCH_HOOKS += CVS_DEBIAN_PATCHES define CVS_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/src/cvs $(TARGET_DIR)/usr/bin/cvs endef $(eval $(autotools-package)) ================================================ FILE: package/cwiid/0001-wmdemo-fix-linking-by-adding-the-missing-lbluetooth-.patch ================================================ From af6bffb5b8b71e99e0f9bbbd2cf1fbd695a643c2 Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Sat, 8 Dec 2012 13:32:40 +0100 Subject: [PATCH 1/2] wmdemo: fix linking by adding the missing -lbluetooth to LDLIBS Signed-off-by: Samuel Martin --- wmdemo/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wmdemo/Makefile.in b/wmdemo/Makefile.in index 56aed58..1eccc02 100644 --- a/wmdemo/Makefile.in +++ b/wmdemo/Makefile.in @@ -8,7 +8,7 @@ SOURCES = wmdemo.c CFLAGS += -I@top_builddir@/libcwiid LDFLAGS += -L@top_builddir@/libcwiid -LDLIBS += -lcwiid +LDLIBS += -lcwiid -lbluetooth INST_DIR = @bindir@ include $(COMMON)/include/app.mak -- 1.8.5.2 ================================================ FILE: package/cwiid/0002-configure-make-wmgui-build-optional.patch ================================================ From dbb578450974db5decc24560da4aeaed838849a1 Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Thu, 2 Jan 2014 14:03:07 +0100 Subject: [PATCH 2/2] configure: make wmgui build optional So, make gtk-2 and glib2 dependencies optional (only needed by wmgui) Signed-off-by: Samuel Martin --- Makefile.in | 2 +- configure.ac | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Makefile.in b/Makefile.in index 6d3ac98..3d2fb45 100644 --- a/Makefile.in +++ b/Makefile.in @@ -3,7 +3,7 @@ include @top_builddir@/defs.mak LIB_DIRS = libcwiid -BIN_DIRS = wmgui wminput lswm +BIN_DIRS = @WMGUI@ wminput lswm DOC_DIRS = man doc ifdef PYTHON BIND_DIRS = python diff --git a/configure.ac b/configure.ac index 82ca3e1..d146cb6 100644 --- a/configure.ac +++ b/configure.ac @@ -15,6 +15,11 @@ if test "$YACC" != "bison -y"; then AC_MSG_ERROR([bison not found]) fi +AC_ARG_ENABLE( + [wmgui], + [AS_HELP_STRING([--disable-wmgui],[Do not build wmgui binary (also drop the gtk-2/glib2 dependency)])], + [ENABLE_WMGUI="$enableval"],[ENABLE_WMGUI=yes]) + AC_ARG_WITH( [python], [AS_HELP_STRING([--without-python],[compile without python support])], @@ -98,10 +103,14 @@ else fi AC_SUBST(LDCONFIG) -pkg_modules="gtk+-2.0 >= 2.0.0 gthread-2.0" -PKG_CHECK_MODULES([GTK], [$pkg_modules]) -AC_SUBST(GTK_CFLAGS) -AC_SUBST(GTK_LIBS) +AS_IF( + [test "x$ENABLE_WMGUI" = xyes], + [pkg_modules="gtk+-2.0 >= 2.0.0 gthread-2.0" ; + PKG_CHECK_MODULES([GTK], [$pkg_modules]) + AC_SUBST(GTK_CFLAGS) + AC_SUBST(GTK_LIBS) + AC_SUBST(WMGUI, wmgui)] +) AC_OUTPUT( [Makefile] -- 1.8.5.2 ================================================ FILE: package/cwiid/Config.in ================================================ config BR2_PACKAGE_CWIID bool "cwiid" depends on !BR2_STATIC_LIBS # bluez5_utils depends on BR2_USE_WCHAR # bluez5_utils -> libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # bluez5_utils -> dbus, alsa-lib, libglib2 depends on BR2_USE_MMU # bluez5_utils -> dbus, libglib2 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # bluez5_utils depends on BR2_TOOLCHAIN_HAS_SYNC_4 # bluez5_utils select BR2_PACKAGE_BLUEZ5_UTILS select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID # runtime help A collection of Linux tools written in C for interfacing to the Nintendo Wiimote. https://github.com/abstrakraft/cwiid if BR2_PACKAGE_CWIID config BR2_PACKAGE_CWIID_WMGUI bool "wmgui" depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # libgtk2 -> pango -> harfbuzz depends on BR2_PACKAGE_XORG7 # libgtk2 depends on BR2_USE_WCHAR # libgtk2 -> libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libgtk2 -> libglib2 depends on BR2_USE_MMU # libgtk2 -> libglib2 depends on BR2_INSTALL_LIBSTDCPP # libgtk2 -> pango select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBGTK2 endif comment "cwiid needs a toolchain w/ dynamic lib, threads, wchar, headers >= 3.4" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 depends on !BR2_USE_MMU ================================================ FILE: package/cwiid/cwiid.hash ================================================ # Locally calculated sha256 3adf3bf018721dee3c47e12ba4dd71810a239918dce925aa4079cb2a98bca5fe cwiid-fadf11e89b579bcc0336a0692ac15c93785f3f82.tar.gz # License files, locally calculated sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/cwiid/cwiid.mk ================================================ ################################################################################ # # cwiid # ################################################################################ CWIID_VERSION = fadf11e89b579bcc0336a0692ac15c93785f3f82 CWIID_SITE = $(call github,abstrakraft,cwiid,$(CWIID_VERSION)) CWIID_LICENSE = GPL-2.0+ CWIID_LICENSE_FILES = COPYING CWIID_AUTORECONF = YES CWIID_INSTALL_STAGING = YES CWIID_DEPENDENCIES = host-pkgconf host-bison host-flex bluez5_utils # Disable python support. This disables the 2 following things: # - wminput Python plugin support # - cwiid Python module CWIID_CONF_OPTS = --without-python --disable-ldconfig ifeq ($(BR2_PACKAGE_CWIID_WMGUI),y) CWIID_DEPENDENCIES += libgtk2 libglib2 CWIID_CONF_OPTS += --enable-wmgui else CWIID_CONF_OPTS += --disable-wmgui endif $(eval $(autotools-package)) ================================================ FILE: package/cxxtest/Config.in ================================================ config BR2_PACKAGE_CXXTEST bool "cxxtest" depends on BR2_INSTALL_LIBSTDCPP help CxxTest is a unit testing framework for C++ http://cxxtest.com/ comment "cxxtest needs a toolchain w/ C++ support" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/cxxtest/cxxtest.hash ================================================ # Locally computed: sha256 1c154fef91c65dbf1cd4519af7ade70a61d85a923b6e0c0b007dc7f4895cf7d8 cxxtest-4.4.tar.gz # Hash for license file: sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING ================================================ FILE: package/cxxtest/cxxtest.mk ================================================ ################################################################################ # # cxxtest # ################################################################################ CXXTEST_VERSION = 4.4 CXXTEST_SITE = https://github.com/CxxTest/cxxtest/releases/download/$(CXXTEST_VERSION) CXXTEST_LICENSE = LGPL-3.0 CXXTEST_LICENSE_FILES = COPYING CXXTEST_INSTALL_STAGING = YES CXXTEST_INSTALL_TARGET = NO CXXTEST_DEPENDENCIES = host-cxxtest HOST_CXXTEST_SETUP_TYPE = setuptools HOST_CXXTEST_SUBDIR = python # Copy CxxTest header files to staging directory define CXXTEST_INSTALL_STAGING_CMDS $(INSTALL) -m 755 -d $(STAGING_DIR)/usr/include/cxxtest $(INSTALL) -m 644 -t $(STAGING_DIR)/usr/include/cxxtest $(@D)/cxxtest/* endef # CxxTest uses python infrastructure as the build system. It consists of two parts: # 1. cxxtestgen tool to process tests defined in header files to generate C++ source # files. cxxtestgen is built as a host package, so that it can be used natively. # 2. A set of header files which are installed in staging directory. This will be # used in cross-compiling test harness to generate executable which will run on target. $(eval $(generic-package)) $(eval $(host-python-package)) ================================================ FILE: package/czmq/Config.in ================================================ config BR2_PACKAGE_CZMQ bool "czmq" depends on BR2_USE_MMU # fork() depends on BR2_INSTALL_LIBSTDCPP # zeromq depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq select BR2_PACKAGE_ZEROMQ help High-level C Binding for 0MQ http://czmq.zeromq.org/ comment "czmq needs a toolchain w/ C++, threads" depends on BR2_USE_MMU depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS) ================================================ FILE: package/czmq/czmq.hash ================================================ # From https://github.com/zeromq/czmq/releases md5 471e9ec120fc66a2fe2aae14359e3cfa czmq-4.2.1.tar.gz sha1 75ced09c143f93fae65238375e3a799c40eaed4c czmq-4.2.1.tar.gz # Locally calculated sha256 5d720a204c2a58645d6f7643af15d563a712dad98c9d32c1ed913377daa6ac39 czmq-4.2.1.tar.gz sha256 1f256ecad192880510e84ad60474eab7589218784b9a50bc7ceee34c2b91f1d5 LICENSE ================================================ FILE: package/czmq/czmq.mk ================================================ ################################################################################ # # czmq # ################################################################################ CZMQ_VERSION = 4.2.1 CZMQ_SITE = https://github.com/zeromq/czmq/releases/download/v$(CZMQ_VERSION) CZMQ_INSTALL_STAGING = YES CZMQ_DEPENDENCIES = zeromq host-pkgconf CZMQ_LICENSE = MPL-2.0 CZMQ_LICENSE_FILES = LICENSE CZMQ_CONF_OPTS = --disable-Werror --without-docs $(eval $(autotools-package)) ================================================ FILE: package/dacapo/Config.in ================================================ config BR2_PACKAGE_DACAPO bool "dacapo" depends on BR2_PACKAGE_OPENJDK help The DaCapo benchmark suite is intended as a tool for Java benchmarking by the programming language, memory management and computer architecture communities. http://dacapobench.org/ comment "dacapo needs OpenJDK" depends on !BR2_PACKAGE_OPENJDK ================================================ FILE: package/dacapo/dacapo.hash ================================================ # Locally computed sha256 be3db084adcb2867760e1197b3ccf541c3213d918daa19386d8e236648d24be8 dacapo-9.12-MR1-bach.jar sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/dacapo/dacapo.mk ================================================ ################################################################################ # # dacapo # ################################################################################ DACAPO_VERSION = 9.12-MR1-bach DACAPO_SOURCE = dacapo-$(DACAPO_VERSION).jar DACAPO_SITE = http://sourceforge.net/projects/dacapobench/files/9.12-bach-MR1 DACAPO_LICENSE = Apache-2.0 DACAPO_LICENSE_FILES = LICENSE define DACAPO_EXTRACT_CMDS unzip $(DACAPO_DL_DIR)/$(DACAPO_SOURCE) LICENSE -d $(@D) endef define DACAPO_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(DACAPO_DL_DIR)/$(DACAPO_SOURCE) $(TARGET_DIR)/usr/bin/$(DACAPO_SOURCE) endef $(eval $(generic-package)) ================================================ FILE: package/dado/Config.in ================================================ config BR2_PACKAGE_DADO bool "dado" help Database Facilities for LuaSQL. http://www.ccpa.puc-rio.br/software/dado/ ================================================ FILE: package/dado/dado.hash ================================================ # computed by luarocks/buildroot sha256 5a10ed7ff7be34ac004d10d6ea62ee8efc2b594c50ffc93e840e7fb7a2e6b4d0 dado-1.8.3-1.src.rock sha256 141953aa7714e3145a6adfd71d6acbbe377e07ab920bc8ec4039394774da8a6e dado-1.8.3/doc/license.html ================================================ FILE: package/dado/dado.mk ================================================ ################################################################################ # # dado # ################################################################################ DADO_VERSION = 1.8.3-1 DADO_LICENSE = MIT DADO_LICENSE_FILES = $(DADO_SUBDIR)/doc/license.html $(eval $(luarocks-package)) ================================================ FILE: package/daemon/0001-daemon-fix-build-with-musl-libc-again.patch ================================================ From b879e6886498fdd147287bffdf5867378c7f3299 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Thu, 24 Jun 2021 14:28:10 +0300 Subject: [PATCH] daemon: fix build with musl libc (again) Commit 6b28c54dd95b3 added HAVE_SYS_TTYDEFAULTS_H to guard sys/ttydefaults.h include. This breaks musl libc build because HAVE_SYS_TTYDEFAULTS_H is not defined until config.h is included. Move sys/ttydefaults.h include below config.h Signed-off-by: Baruch Siach --- Upstream status: https://github.com/raforg/daemon/pull/4 daemon.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/daemon.c b/daemon.c index 5c5ef2cb86df..f88a0d49bf84 100644 --- a/daemon.c +++ b/daemon.c @@ -1011,9 +1011,6 @@ I #ifdef _RESTORE_POSIX_SOURCE #define _POSIX_SOURCE #endif -#ifdef HAVE_SYS_TTYDEFAULTS_H /* For CEOF in musl libc (Linux only) */ -#include -#endif #include #include #include @@ -1037,6 +1034,10 @@ I #include #endif +#ifdef HAVE_SYS_TTYDEFAULTS_H /* For CEOF in musl libc (Linux only) */ +#include +#endif + /* Configuration file entries */ typedef struct Config Config; -- 2.30.2 ================================================ FILE: package/daemon/0002-Fix-build-with-NDEBUG-defined.patch ================================================ From fc84d8d572ffcecb533fd6d6d025abea12ce027e Mon Sep 17 00:00:00 2001 Message-Id: From: Baruch Siach Date: Thu, 3 Jun 2021 15:01:10 +0300 Subject: [PATCH] Fix build with NDEBUG defined Build with NDEBUG fails because the debug() macro becomes empty. This creates invalid syntax with the debug() call is the only statement in the body of a 'for' loop. This fixes build failures like: daemon.c: In function 'show': daemon.c:3607:2: error: expected expression before '}' token } ^ Signed-off-by: Baruch Siach --- Upstream status: https://github.com/raforg/daemon/pull/3 libslack/err.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libslack/err.h b/libslack/err.h index 106bdb01e074..7acfbe46d60a 100644 --- a/libslack/err.h +++ b/libslack/err.h @@ -40,10 +40,10 @@ #undef check #ifdef NDEBUG -#define debug(args) -#define vdebug(args) -#define debugsys(args) -#define vdebugsys(args) +#define debug(args) do {} while (0); +#define vdebug(args) do {} while (0); +#define debugsys(args) do {} while (0); +#define vdebugsys(args) do {} while (0); #define check(cond, mesg) (void_cast(0)) #else #define debug(args) debugf args; -- 2.30.2 ================================================ FILE: package/daemon/Config.in ================================================ config BR2_PACKAGE_DAEMON bool "daemon" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS help Daemon turns other process into daemons. http://www.libslack.org/daemon/ comment "daemon needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/daemon/daemon.hash ================================================ # From http://www.libslack.org/daemon/ sha256 74f12e6d4b3c85632489bd08431d3d997bc17264bf57b7202384f2e809cff596 daemon-0.8.tar.gz # Locally calculated sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 LICENSE sha256 91329bb9be4ae0b7800081fa054e9bb760c60005b26958c1fb8461bc66bcd998 COPYING ================================================ FILE: package/daemon/daemon.mk ================================================ ################################################################################ # # daemon # ################################################################################ DAEMON_VERSION = 0.8 DAEMON_SITE = http://libslack.org/daemon/download DAEMON_LICENSE = GPL-2.0+ DAEMON_LICENSE_FILES = LICENSE COPYING define DAEMON_CONFIGURE_CMDS (cd $(@D); ./configure) endef define DAEMON_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define DAEMON_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) DEB_BUILD_OPTIONS=nostrip \ $(MAKE) PREFIX=$(TARGET_DIR)/usr -C $(@D) \ install-daemon-bin endef $(eval $(generic-package)) ================================================ FILE: package/dahdi-linux/0001-drivers-dahdi-Kbuild-fix-HOTPLUG_FIRMWARE-definition.patch ================================================ From dc0a646a460e6da10ddbe7bf02794051d76f8751 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 4 Nov 2021 17:30:06 +0100 Subject: [PATCH] drivers/dahdi/Kbuild: fix HOTPLUG_FIRMWARE definition HOTPLUG_FIRMWARE is used before being defined resulting in the following build failure since version 2.7.0 and https://git.asterisk.org/gitweb/?p=dahdi/linux.git;a=commit;h=e2f492595c9191ba6d556ccac1bde4c1bb892938: MODPOST /home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/Module.symvers ERROR: modpost: "_binary_dahdi_fw_oct6114_032_bin_start" [/home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/wcaxx.ko] undefined! ERROR: modpost: "_binary_dahdi_fw_oct6114_032_bin_size" [/home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/wcaxx.ko] undefined! ERROR: modpost: "_binary_dahdi_fw_oct6114_128_bin_start" [/home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/wcte43x.ko] undefined! ERROR: modpost: "_binary_dahdi_fw_oct6114_064_bin_start" [/home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/wcte43x.ko] undefined! ERROR: modpost: "_binary_dahdi_fw_oct6114_128_bin_size" [/home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/wcte43x.ko] undefined! ERROR: modpost: "_binary_dahdi_fw_oct6114_064_bin_size" [/home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/wcte43x.ko] undefined! ERROR: modpost: "_binary_dahdi_fw_oct6114_032_bin_start" [/home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/wcte13xp.ko] undefined! ERROR: modpost: "_binary_dahdi_fw_oct6114_032_bin_size" [/home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/wcte13xp.ko] undefined! Signed-off-by: Fabrice Fontaine [Upstream status: sent to "Shaun Ruffell "] --- drivers/dahdi/Kbuild | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/dahdi/Kbuild b/drivers/dahdi/Kbuild index 855e5bf..b1a8481 100644 --- a/drivers/dahdi/Kbuild +++ b/drivers/dahdi/Kbuild @@ -13,6 +13,15 @@ obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTC4XXP) += wctc4xxp/ obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTDM24XXP) += wctdm24xxp/ obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTE13XP) += wcte13xp.o +ifndef HOTPLUG_FIRMWARE +ifneq (,$(filter y m,$(CONFIG_FW_LOADER))) +HOTPLUG_FIRMWARE := yes +else +HOTPLUG_FIRMWARE := no +endif +export HOTPLUG_FIRMWARE +endif + wcte13xp-objs := wcte13xp-base.o wcxb_spi.o wcxb.o wcxb_flash.o CFLAGS_wcte13xp-base.o += -I$(src)/oct612x -I$(src)/oct612x/include -I$(src)/oct612x/octdeviceapi -I$(src)/oct612x/octdeviceapi/oct6100api ifeq ($(HOTPLUG_FIRMWARE),yes) @@ -61,15 +70,6 @@ endif CFLAGS_MODULE += -I$(DAHDI_INCLUDE) -I$(src) -Wno-format-truncation -ifndef HOTPLUG_FIRMWARE -ifneq (,$(filter y m,$(CONFIG_FW_LOADER))) -HOTPLUG_FIRMWARE := yes -else -HOTPLUG_FIRMWARE := no -endif -export HOTPLUG_FIRMWARE -endif - # fix typo present in CentOS and RHEL 2.6.9 kernels BAD_KERNELS_VERS := 22 34 34.0.1 34.0.2 BAD_KERNELS := $(foreach ver,$(BAD_KERNELS_VERS),2.6.9-$(ver).EL 2.6.9-$(ver).ELsmp) -- 2.33.0 ================================================ FILE: package/dahdi-linux/0002-fix-build-with-32-bits-kernel.patch ================================================ From aa74fa2fb5acf54bd46ad4c1b10e0a23a2cb3d25 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 4 Nov 2021 18:45:11 +0100 Subject: [PATCH] fix build with 32-bits kernel Use div_s64 or div_s64_rem to fix the following build failure on 32-bits kernels: ERROR: modpost: "__divdi3" [/home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/xpp/xpp_usb.ko] undefined! ERROR: modpost: "__udivdi3" [/home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/xpp/xpp_usb.ko] undefined! ERROR: modpost: "__moddi3" [/home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/xpp/xpp.ko] undefined! ERROR: modpost: "__divdi3" [/home/fabrice/buildroot/output/build/dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8/drivers/dahdi/xpp/xpp.ko] undefined! Signed-off-by: Fabrice Fontaine --- drivers/dahdi/xpp/xbus-core.c | 9 ++++++--- drivers/dahdi/xpp/xbus-pcm.c | 4 ++-- drivers/dahdi/xpp/xbus-sysfs.c | 2 +- drivers/dahdi/xpp/xframe_queue.c | 15 ++++++++++----- drivers/dahdi/xpp/xpp_usb.c | 2 +- 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/drivers/dahdi/xpp/xbus-core.c b/drivers/dahdi/xpp/xbus-core.c index fc4ce7b..b1d1fd7 100644 --- a/drivers/dahdi/xpp/xbus-core.c +++ b/drivers/dahdi/xpp/xbus-core.c @@ -1754,11 +1754,14 @@ out: static void xbus_fill_proc_queue(struct seq_file *sfile, struct xframe_queue *q) { + s64 msec = 0; + s32 rem = 0; + + msec = div_s64_rem(q->worst_lag_usec, 1000, &rem); seq_printf(sfile, - "%-15s: counts %3d, %3d, %3d worst %3d, overflows %3d worst_lag %02lld.%lld ms\n", + "%-15s: counts %3d, %3d, %3d worst %3d, overflows %3d worst_lag %02lld.%d ms\n", q->name, q->steady_state_count, q->count, q->max_count, - q->worst_count, q->overflows, q->worst_lag_usec / 1000, - q->worst_lag_usec % 1000); + q->worst_count, q->overflows, msec, rem); xframe_queue_clearstats(q); } diff --git a/drivers/dahdi/xpp/xbus-pcm.c b/drivers/dahdi/xpp/xbus-pcm.c index 8bb2fe7..e690ce7 100644 --- a/drivers/dahdi/xpp/xbus-pcm.c +++ b/drivers/dahdi/xpp/xbus-pcm.c @@ -129,7 +129,7 @@ static int xpp_ticker_step(struct xpp_ticker *ticker, const ktime_t t) usec = ktime_us_delta(ticker->last_sample, ticker->first_sample); ticker->first_sample = ticker->last_sample; - ticker->tick_period = usec / ticker->cycle; + ticker->tick_period = div_s64(usec, ticker->cycle); cycled = 1; } ticker->count++; @@ -497,7 +497,7 @@ static void send_drift(xbus_t *xbus, int drift) XBUS_DBG(SYNC, xbus, "%sDRIFT adjust %s (%d) (last update %lld seconds ago)\n", (disable_pll_sync) ? "Fake " : "", msg, drift, - msec_delta / MSEC_PER_SEC); + div_s64(msec_delta, MSEC_PER_SEC)); if (!disable_pll_sync) CALL_PROTO(GLOBAL, SYNC_SOURCE, xbus, NULL, SYNC_MODE_PLL, drift); diff --git a/drivers/dahdi/xpp/xbus-sysfs.c b/drivers/dahdi/xpp/xbus-sysfs.c index d8c11dc..35180d9 100644 --- a/drivers/dahdi/xpp/xbus-sysfs.c +++ b/drivers/dahdi/xpp/xbus-sysfs.c @@ -249,7 +249,7 @@ static DEVICE_ATTR_READER(driftinfo_show, dev, buf) /* * Calculate lost ticks time */ - seconds = ktime_ms_delta(now, di->last_lost_tick) / 1000; + seconds = div_s64(ktime_ms_delta(now, di->last_lost_tick), 1000); minutes = seconds / 60; seconds = seconds % 60; hours = minutes / 60; diff --git a/drivers/dahdi/xpp/xframe_queue.c b/drivers/dahdi/xpp/xframe_queue.c index e986083..8e5e508 100644 --- a/drivers/dahdi/xpp/xframe_queue.c +++ b/drivers/dahdi/xpp/xframe_queue.c @@ -35,15 +35,18 @@ static void __xframe_dump_queue(struct xframe_queue *q) int i = 0; char prefix[30]; ktime_t now = ktime_get(); + s64 msec = 0; + s32 rem = 0; printk(KERN_DEBUG "%s: dump queue '%s' (first packet in each frame)\n", THIS_MODULE->name, q->name); list_for_each_entry_reverse(xframe, &q->head, frame_list) { xpacket_t *pack = (xpacket_t *)&xframe->packets[0]; s64 usec = ktime_us_delta(now, xframe->kt_queued); + msec = div_s64_rem(usec, 1000, &rem); - snprintf(prefix, ARRAY_SIZE(prefix), " %3d> %5lld.%03lld msec", - i++, usec / 1000, usec % 1000); + snprintf(prefix, ARRAY_SIZE(prefix), " %3d> %5lld.%03d msec", + i++, msec, rem); dump_packet(prefix, pack, 1); } } @@ -52,6 +55,8 @@ static bool __xframe_enqueue(struct xframe_queue *q, xframe_t *xframe) { int ret = 1; static int overflow_cnt; + s64 msec = 0; + s32 rem = 0; if (unlikely(q->disabled)) { ret = 0; @@ -60,11 +65,11 @@ static bool __xframe_enqueue(struct xframe_queue *q, xframe_t *xframe) if (q->count >= q->max_count) { q->overflows++; if ((overflow_cnt++ % 1000) < 5) { - NOTICE("Overflow of %-15s: counts %3d, %3d, %3d worst %3d, overflows %3d worst_lag %02lld.%lld ms\n", + msec = div_s64_rem(q->worst_lag_usec, 1000, &rem); + NOTICE("Overflow of %-15s: counts %3d, %3d, %3d worst %3d, overflows %3d worst_lag %02lld.%d ms\n", q->name, q->steady_state_count, q->count, q->max_count, q->worst_count, q->overflows, - q->worst_lag_usec / 1000, - q->worst_lag_usec % 1000); + msec, rem); __xframe_dump_queue(q); } ret = 0; diff --git a/drivers/dahdi/xpp/xpp_usb.c b/drivers/dahdi/xpp/xpp_usb.c index 1a591b1..3741457 100644 --- a/drivers/dahdi/xpp/xpp_usb.c +++ b/drivers/dahdi/xpp/xpp_usb.c @@ -882,7 +882,7 @@ static void xpp_send_callback(struct urb *urb) usec = 0; /* System clock jumped */ if (usec > xusb->max_tx_delay) xusb->max_tx_delay = usec; - i = usec / USEC_BUCKET; + i = div_s64(usec, USEC_BUCKET); if (i >= NUM_BUCKETS) i = NUM_BUCKETS - 1; xusb->usb_tx_delay[i]++; -- 2.33.0 ================================================ FILE: package/dahdi-linux/Config.in ================================================ config BR2_PACKAGE_DAHDI_LINUX bool "dahdi-linux" depends on BR2_LINUX_KERNEL help DAHDI (Digium/Asterisk Hardware Device Interface) is the open source device interface technology used to control Digium and other legacy telephony interface cards. DAHDI Linux is the open source device driver framework used to interface Asterisk with telephony hardware. http://www.asterisk.org/downloads/dahdi comment "dahdi-linux needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL ================================================ FILE: package/dahdi-linux/dahdi-linux.hash ================================================ # Locally computed sha256 3faf127ee3f1fad0195c56d00b7bf2708ec8a54bf3c31edd827fd9beb47e0a51 dahdi-linux-5c840cf43838e0690873e73409491c392333b3b8-br1.tar.gz # Firmware files have no upstream hash, so sha56 locally computed sha256 3ff26cf80555fd7470b43a87c51d03c1db2a75abcd4561d79f69b6c48298e4a1 dahdi-fwload-vpmadt032-1.25.0.tar.gz sha256 d5b6ab6851e431afcfec2ecc39d95fa88fe3939ffdb2e3d4f28a43cabf30e95b dahdi-fw-a4a-a0017.tar.gz sha256 e039af8bec36407b74e1dd9ebdd49ba077469eda79d4e6093721ed2836d4536f dahdi-fw-a4b-d001e.tar.gz sha256 5064f9877b8aec99b19fd57988216fe1a9c0b7c07853dd3b32b5a55ab7b418e6 dahdi-fw-a8a-1d0017.tar.gz sha256 09a8992786309e025aa60b400a2c7d21226ac9bb6f1b66f562a5e7e9dc892b03 dahdi-fw-a8b-1f001e.tar.gz sha256 449ab3fd03d55d808e999efb7677cd04de202b92c9fcb039539a7e48a39a80f5 dahdi-fw-hx8-2.06.tar.gz sha256 7a006073202d67e45f1d5ff1e9c6e8663e6056cef9dc4c5abae86a1018db349c dahdi-fw-oct6114-032-1.05.01.tar.gz sha256 56bac1f2024c76ecf9b6f40992eeea29a1fbee676bb2a37a058179bacfbb1c91 dahdi-fw-oct6114-064-1.05.01.tar.gz sha256 e1146749d205c41603b9b76852c3f8104dac233d0025d700db24504d10c99775 dahdi-fw-oct6114-128-1.05.01.tar.gz sha256 5fe5036a2766cf0e8a968b0c58b700507d86e1cde9296ca437170cc626a9c79c dahdi-fw-oct6114-256-1.05.01.tar.gz sha256 11dd8d009809e41fc9a3a36766f59ff73d29075eede5b8724331d9a6e5259774 dahdi-fw-tc400m-MR6.12.tar.gz sha256 511c1966295a20df673bb87af30245f0ad165efd6ccb92b4d8ed535ca7f5ac65 dahdi-fw-te133-7a001e.tar.gz sha256 99f7c410bf47d2a5ae687d717e51448ce5b52aca902830bf39bffe683150fa2d dahdi-fw-te134-780017.tar.gz sha256 c8f55d57cc0bf332e8d96cdf9ff6dd0e322f33581e1efc24c2b9a0e0c5eb7ee4 dahdi-fw-te435-13001e.tar.gz sha256 0980f4a8d191c6872aa27d971758046f0e7827ac161549f2cc1b0eeab0ae9333 dahdi-fw-te436-10017.tar.gz sha256 5b823e25828e2c1c6548886ad408b2e31dbc8cd17170c52592792d9c754a199c dahdi-fw-te820-1.76.tar.gz sha256 6b199cf836f150f9cb35f763f0f502fb52cfa2724a449b500429c746973904ad dahdi-fw-vpmoct032-1.12.0.tar.gz # License files, locally computed sha256 fa5fc1d1eec39532ea517518eeefd7b6e3c14341a55e5880a0e2a49eee47a5b7 LICENSE sha256 ec60b993835e2c6b79e6d9226345f4e614e686eb57dc13b6420c15a33a8996e5 LICENSE.LGPL ================================================ FILE: package/dahdi-linux/dahdi-linux.mk ================================================ ################################################################################ # # dahdi-linux # ################################################################################ DAHDI_LINUX_VERSION = 5c840cf43838e0690873e73409491c392333b3b8 DAHDI_LINUX_SITE = git://git.asterisk.org/dahdi/linux.git # We need to download all those firmware blobs ourselves, otherwise # dahdi-linux will try to download them at install time. DAHDI_LINUX_FW_SITE = http://downloads.digium.com/pub/telephony/firmware/releases DAHDI_LINUX_FW_FILES = \ dahdi-fwload-vpmadt032-1.25.0.tar.gz \ dahdi-fw-oct6114-032-1.05.01.tar.gz \ dahdi-fw-oct6114-064-1.05.01.tar.gz \ dahdi-fw-oct6114-128-1.05.01.tar.gz \ dahdi-fw-oct6114-256-1.05.01.tar.gz \ dahdi-fw-tc400m-MR6.12.tar.gz \ dahdi-fw-hx8-2.06.tar.gz \ dahdi-fw-vpmoct032-1.12.0.tar.gz \ dahdi-fw-te820-1.76.tar.gz \ dahdi-fw-te133-7a001e.tar.gz \ dahdi-fw-te134-780017.tar.gz \ dahdi-fw-a8b-1f001e.tar.gz \ dahdi-fw-a8a-1d0017.tar.gz \ dahdi-fw-a4b-d001e.tar.gz \ dahdi-fw-a4a-a0017.tar.gz \ dahdi-fw-te435-13001e.tar.gz \ dahdi-fw-te436-10017.tar.gz DAHDI_LINUX_EXTRA_DOWNLOADS = \ $(patsubst %,$(DAHDI_LINUX_FW_SITE)/%,$(DAHDI_LINUX_FW_FILES)) # dahdi-linux claims to be GPLv2 with parts LGPLv2.1 (not 'or later'), # but there are the so-called firmware files (downloaded above) for # which the license is unclear: the header claims to be GPLv2, the # 'loader-wrapper' claims to be GPLv2, but there are two so-called # 'firmware' binary-only .o blobs for which the license is not # explicited, which look like they end up as part of a kernel module, # and for which the source is nowhere to be found on the upstream site # (they are only for x86/x86_64, but we still list them unconditionally). DAHDI_LINUX_LICENSE = GPL-2.0, LGPL-2.1, unknown (firmware files) DAHDI_LINUX_LICENSE_FILES = LICENSE LICENSE.LGPL DAHDI_LINUX_INSTALL_STAGING = YES DAHDI_LINUX_MODULE_SUBDIRS = drivers/dahdi DAHDI_LINUX_MODULE_MAKE_OPTS = \ KSRC=$(LINUX_DIR) \ KVERS=$(LINUX_VERSION_PROBED) \ DAHDI_BUILD_ALL=m \ DAHDI_INCLUDE=$(@D)/include \ INSTALL_MOD_DIR=dahdi define DAHDI_LINUX_EXTRACT_FW $(foreach f,$(DAHDI_LINUX_FW_FILES),\ cp $(DAHDI_LINUX_DL_DIR)/$(f) $(@D)/drivers/dahdi/firmware/$(f)$(sep)) endef DAHDI_LINUX_POST_EXTRACT_HOOKS += DAHDI_LINUX_EXTRACT_FW define DAHDI_LINUX_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_CRC_CCITT) endef # Need to pass the same options as for building the modules, because # it wants to scan Linux' .config file to check whether some options # are set or not (like CONFIG_FW_LOADER). define DAHDI_LINUX_CONFIGURE_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ $(DAHDI_LINUX_MODULE_MAKE_OPTS) \ prereq endef define DAHDI_LINUX_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ $(DAHDI_LINUX_MODULE_MAKE_OPTS) \ DESTDIR=$(STAGING_DIR) \ install-include endef define DAHDI_LINUX_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ $(DAHDI_LINUX_MODULE_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) \ install-firmware \ install-xpp-firm endef $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/dahdi-tools/0001-no-build-docs.patch ================================================ Do not build the documentation. Signed-off-by: "Yann E. MORIN" diff -durN dahdi-tools-2.11.0.orig/Makefile.am dahdi-tools-2.11.0/Makefile.am --- dahdi-tools-2.11.0.orig/Makefile.am 2015-12-22 21:19:12.000000000 +0100 +++ dahdi-tools-2.11.0/Makefile.am 2016-01-04 23:23:34.201304133 +0100 @@ -17,7 +17,7 @@ #-Wformat=2 endif -SUBDIRS = xpp doc hotplug +SUBDIRS = xpp hotplug if PPPD SUBDIRS += ppp ================================================ FILE: package/dahdi-tools/0002-no-perl-manpages.patch ================================================ xpp: do not try to install the manpages for the perl tools The man pages are generated neither at build time nor at install time, so the install step fails. Just disable them. Signed-off-by: "Yann E. MORIN" diff -durN dahdi-tools-2.11.0.orig/xpp/Makefile.am dahdi-tools-2.11.0/xpp/Makefile.am --- dahdi-tools-2.11.0.orig/xpp/Makefile.am 2015-12-22 21:19:12.000000000 +0100 +++ dahdi-tools-2.11.0/xpp/Makefile.am 2016-01-04 23:56:31.851820973 +0100 @@ -3,7 +3,6 @@ SUBDIRS = -man_MANS = # FIXME: try to improve code, so we can use $(PEDANTIC) @@ -59,7 +58,6 @@ udevrules_DATA = xpp.rules dist_sbin_SCRIPTS = $(perl_scripts) -man_MANS += $(perl_mans) CLEANFILES = $(perl_checks) $(perl_mans) if PBX_USB @@ -147,8 +145,6 @@ astribank_allow.8 \ astribank_is_starting.8 -man_MANS += $(man_pages) - endif EXTRA_DIST = \ ================================================ FILE: package/dahdi-tools/Config.in ================================================ config BR2_PACKAGE_DAHDI_TOOLS bool "dahdi-tools" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_LINUX_KERNEL # dahdi-linux depends on BR2_USE_MMU # perl select BR2_PACKAGE_DAHDI_LINUX select BR2_PACKAGE_PERL help DAHDI (Digium/Asterisk Hardware Device Interface) is the open source device interface technology used to control Digium and other legacy telephony interface cards. DAHDI Tools is a package of utilities for managing and monitoring DAHDI devices. http://www.asterisk.org/downloads/dahdi comment "dahdi-tools needs a toolchain w/ threads and a Linux kernel to be built" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_LINUX_KERNEL ================================================ FILE: package/dahdi-tools/dahdi-tools.hash ================================================ # sha1 from http://downloads.asterisk.org/pub/telephony/dahdi-tools/releases # sha256 locally computed sha1 3e988256aae4b6a6ed8efb3ecc07753779f54823 dahdi-tools-3.0.0.tar.gz sha256 5bebb20d5ae13fa13f0e2075603013954b962be477db02271eef44b3e41557c5 dahdi-tools-3.0.0.tar.gz # License files, locally computed sha256 fa5fc1d1eec39532ea517518eeefd7b6e3c14341a55e5880a0e2a49eee47a5b7 LICENSE sha256 ec60b993835e2c6b79e6d9226345f4e614e686eb57dc13b6420c15a33a8996e5 LICENSE.LGPL ================================================ FILE: package/dahdi-tools/dahdi-tools.mk ================================================ ################################################################################ # # dahdi-tools # ################################################################################ DAHDI_TOOLS_VERSION = 3.0.0 DAHDI_TOOLS_SITE = http://downloads.asterisk.org/pub/telephony/dahdi-tools/releases DAHDI_TOOLS_LICENSE = GPLv2, LGPLv2.1 DAHDI_TOOLS_LICENSE_FILES = LICENSE LICENSE.LGPL DAHDI_TOOLS_DEPENDENCIES = dahdi-linux perl DAHDI_TOOLS_INSTALL_STAGING = YES DAHDI_TOOLS_AUTORECONF = YES # Buildroot globally exports PERL with the value it has on the host, so we need # to override it with the location where it will be on the target. DAHDI_TOOLS_CONF_ENV = PERL=/usr/bin/perl DAHDI_TOOLS_CONF_OPTS = \ --without-newt \ --without-usb \ --without-pcap \ --without-libusbx \ --without-libusb \ --without-selinux \ --without-ppp \ --with-perllib=/usr/lib/perl5/$(PERL_VERSION) $(eval $(autotools-package)) ================================================ FILE: package/dante/0001-fix-sparc-compile.patch ================================================ 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 */ ================================================ FILE: package/dante/0002-osdep-m4-Remove-getaddrinfo-too-low-checks.patch ================================================ osdep.m4: Remove getaddrinfo() too low checks dante runs AC_PREPROC_IFELSE then it fills $ERRVALFILE by running the following command: cat conftest.i | grep gaierrval: >>$2 As a result, $ERRVALFILE does not contain the expected values because the expected value is not on the same line than gaierrval: gaierrval: # 130 "conftest.c" 3 4 -3 So drop these checks Signed-off-by: Fabrice Fontaine diff -Nuar dante-1.4.2-orig/osdep.m4 dante-1.4.2/osdep.m4 --- dante-1.4.2-orig/osdep.m4 2019-12-09 21:28:38.936003218 +0100 +++ dante-1.4.2/osdep.m4 2019-12-09 21:49:48.764019371 +0100 @@ -956,13 +956,7 @@ unset UNIQUEVALS UNIQUESYMBOLS if test -s $ERRVALFILE; then UNIQUEVALS=`sort $ERRVALFILE | uniq | wc -l | awk '{ print $1 }'` - if test $UNIQUEVALS -le 1; then - AC_MSG_FAILURE([error: getaddrinfo() error value count too low]) - fi UNIQUESYMBOLS=`cat $ERRVALFILE | wc -l | awk '{ print $1 }'` - if test $UNIQUESYMBOLS -le 1; then - AC_MSG_FAILURE([error: getaddrinfo() error symbol count too low]) - fi if test $ERRNOCNT -ne $UNIQUESYMBOLS; then AC_MSG_FAILURE([internal error: errno symbol count mismatch]) ================================================ FILE: package/dante/Config.in ================================================ 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/ ================================================ FILE: package/dante/S50dante ================================================ #!/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 $? ================================================ FILE: package/dante/dante.hash ================================================ # From https://www.inet.no/dante/download.html sha256 418a065fe1a4b8ace8fbf77c2da269a98f376e7115902e76cda7e741e4846a5d dante-1.4.3.tar.gz # Hash for license file sha256 05e2db26147a8575005f090aada119ea6cb40a4382164929d647f00abef3bdfd LICENSE ================================================ FILE: package/dante/dante.mk ================================================ ################################################################################ # # dante # ################################################################################ DANTE_VERSION = 1.4.3 DANTE_SITE = http://www.inet.no/dante/files DANTE_LICENSE = BSD-3-Clause DANTE_LICENSE_FILES = LICENSE DANTE_SELINUX_MODULES = dante # Needed so that our libtool patch applies properly DANTE_AUTORECONF = YES DANTE_CONF_OPTS += --disable-client --disable-preload ifeq ($(BR2_PACKAGE_LIBMINIUPNPC),y) DANTE_DEPENDENCIES += libminiupnpc DANTE_CONF_OPTS += --with-upnp else DANTE_CONF_OPTS += --without-upnp endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) DANTE_DEPENDENCIES += linux-pam DANTE_CONF_OPTS += --with-pam else DANTE_CONF_OPTS += --without-pam endif 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)) ================================================ FILE: package/dante/dante.service ================================================ [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 ================================================ FILE: package/daq/0001-Fix-build-against-the-musl-C-library.patch ================================================ From 42efa6d76a3b52f35e576a6b941a9afb5b3879e9 Mon Sep 17 00:00:00 2001 From: Sergio Prado Date: Tue, 9 Jan 2018 21:39:27 -0200 Subject: [PATCH] Fix build against the musl C library Signed-off-by: Sergio Prado --- os-daq-modules/daq_ipfw.c | 2 +- os-daq-modules/daq_ipq.c | 2 +- os-daq-modules/daq_nfq.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/os-daq-modules/daq_ipfw.c b/os-daq-modules/daq_ipfw.c index 016beb06ad61..98f67717f646 100644 --- a/os-daq-modules/daq_ipfw.c +++ b/os-daq-modules/daq_ipfw.c @@ -26,7 +26,7 @@ #include #include -#include +#include #include #include diff --git a/os-daq-modules/daq_ipq.c b/os-daq-modules/daq_ipq.c index 77ec6e9505e5..b15e5cf82af0 100644 --- a/os-daq-modules/daq_ipq.c +++ b/os-daq-modules/daq_ipq.c @@ -27,7 +27,7 @@ #include #include -#include +#include #include diff --git a/os-daq-modules/daq_nfq.c b/os-daq-modules/daq_nfq.c index 33021c0ec991..0df1e61c74c4 100644 --- a/os-daq-modules/daq_nfq.c +++ b/os-daq-modules/daq_nfq.c @@ -27,7 +27,7 @@ #include #include -#include +#include #include -- 1.9.1 ================================================ FILE: package/daq/0002-parallel-grammar.patch ================================================ Fix parallel build https://bugs.gentoo.org/673390 Downloaded from https://gitweb.gentoo.org/repo/gentoo.git/tree/net-libs/daq/files/daq-2.0.6-parallel-grammar.patch Patch was sent upstream: https://seclists.org/snort/2014/q3/1016 Signed-off-by: Bernd Kuhls --- a/sfbpf/Makefile.am +++ b/sfbpf/Makefile.am @@ -43,13 +43,14 @@ libsfbpf_la_LDFLAGS = -version-info 0:1:0 @XCCFLAGS@ # use of $@ and $< here is a GNU idiom that borks BSD -sf_scanner.c: $(srcdir)/scanner.l +sf_scanner.c: $(srcdir)/scanner.l tokdefs.h @rm -f $(srcdir)/sf_scanner.c $(srcdir)/runlex.sh $(V_LEX) -osf_scanner.c $(srcdir)/scanner.l sf_scanner.o: sf_scanner.c tokdefs.h tokdefs.h: sf_grammar.c + sf_grammar.c: $(srcdir)/grammar.y @rm -f sf_grammar.c tokdefs.h $(V_YACC) -d $(srcdir)/grammar.y ================================================ FILE: package/daq/Config.in ================================================ config BR2_PACKAGE_DAQ bool "daq" depends on !BR2_STATIC_LIBS # dlfcn.h help DAQ is a Data Acquisition library for packet I/O from the Snort project. https://www.snort.org comment "daq needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/daq/daq.hash ================================================ # From https://www.snort.org/downloads/snort/md5s md5 ea796f001d1b00302e4e69e337ab2460 daq-2.0.7.tar.gz # Locally computed: sha256 bdc4e5a24d1ea492c39ee213a63c55466a2e8114b6a9abed609927ae13a7705e daq-2.0.7.tar.gz # Hash for license files: sha256 07f28289c09fd9eb5a6ff7bc710ff40363601b1bbc6f3637d8ed412150e90819 COPYING ================================================ FILE: package/daq/daq.mk ================================================ ################################################################################ # # daq # ################################################################################ DAQ_VERSION = 2.0.7 DAQ_SITE = https://www.snort.org/downloads/snort DAQ_LICENSE = GPL-2.0 DAQ_LICENSE_FILES = COPYING DAQ_INSTALL_STAGING = YES DAQ_DEPENDENCIES = host-bison host-flex # 0002-parallel-grammar.patch # 2.0.7 needs autoreconf due to configure being older than configure.ac DAQ_AUTORECONF = YES # disable ipq module as libipq is deprecated DAQ_CONF_OPTS += --disable-ipq-module # Set --with-dnet-{includes,libraries} even if ipq and nfq modules are disabled # otherwise daq will call 'dnet-config --cflags' and 'dnet-config --libs' which # will result in a build failure if libdnet is installed on host DAQ_CONF_OPTS += \ --with-dnet-includes=$(STAGING_DIR)/usr/include \ --with-dnet-libraries=$(STAGING_DIR)/usr/lib ifeq ($(BR2_PACKAGE_LIBDNET)$(BR2_PACKAGE_LIBNETFILTER_QUEUE),yy) DAQ_DEPENDENCIES += libdnet libnetfilter_queue DAQ_CONF_OPTS += --enable-nfq-module else DAQ_CONF_OPTS += --disable-nfq-module endif ifeq ($(BR2_PACKAGE_LIBPCAP),y) DAQ_DEPENDENCIES += libpcap # assume these flags are available to prevent configure from running # test programs while cross compiling DAQ_CONF_ENV += \ ac_cv_lib_pcap_pcap_lib_version=yes \ daq_cv_libpcap_version_1x=yes DAQ_CONF_OPTS += --enable-pcap-module else DAQ_CONF_OPTS += --disable-pcap-module endif $(eval $(autotools-package)) ================================================ FILE: package/daq3/Config.in ================================================ config BR2_PACKAGE_DAQ3 bool "daq3" depends on !BR2_PACKAGE_DAQ depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_TOOLCHAIN_HAS_THREADS help DAQ is a Data Acquisition library for packet I/O from the Snort project. https://www.snort.org comment "daq3 needs a toolchain w/ dynamic library, gcc >= 4.9, threads" depends on !BR2_PACKAGE_DAQ depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \ || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/daq3/daq3.hash ================================================ # Locally computed: sha256 a376c7625d1442ddb7e3c75954c910cc9d64440e2f8f345981aa5fa6999ea206 daq3-3.0.4.tar.gz # Hash for license files: sha256 64601289158eddad72cb4de72652f9e64dc886942c910b38ddee93ba13b0db26 COPYING sha256 64601289158eddad72cb4de72652f9e64dc886942c910b38ddee93ba13b0db26 LICENSE ================================================ FILE: package/daq3/daq3.mk ================================================ ################################################################################ # # daq3 # ################################################################################ DAQ3_VERSION = 3.0.4 DAQ3_SITE = $(call github,snort3,libdaq,v$(DAQ3_VERSION)) DAQ3_LICENSE = GPL-2.0 DAQ3_LICENSE_FILES = COPYING LICENSE DAQ3_INSTALL_STAGING = YES DAQ3_DEPENDENCIES = host-pkgconf # From git DAQ3_AUTORECONF = YES ifeq ($(BR2_PACKAGE_LIBNETFILTER_QUEUE),y) DAQ3_DEPENDENCIES += libnetfilter_queue DAQ3_CONF_OPTS += --enable-nfq-module else DAQ3_CONF_OPTS += --disable-nfq-module endif ifeq ($(BR2_PACKAGE_LIBPCAP),y) DAQ3_DEPENDENCIES += libpcap DAQ3_CONF_OPTS += --enable-pcap-module else DAQ3_CONF_OPTS += --disable-pcap-module endif $(eval $(autotools-package)) ================================================ FILE: package/darkhttpd/0001-Declare-vars-outside-of-for-loop-for-std-c90.patch ================================================ From 81b491e60affd67f4ec2feccbee1cdf98dc57b81 Mon Sep 17 00:00:00 2001 From: Emil Mikulic Date: Sun, 21 Mar 2021 15:03:14 +1100 Subject: [PATCH] Declare vars outside of for() loop for -std=c90. Fixes #2. [Retrieved from: https://github.com/emikulic/darkhttpd/commit/81b491e60affd67f4ec2feccbee1cdf98dc57b81] Signed-off-by: Fabrice Fontaine --- darkhttpd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/darkhttpd.c b/darkhttpd.c index 219a8a3..268628a 100644 --- a/darkhttpd.c +++ b/darkhttpd.c @@ -966,8 +966,9 @@ static char *base64_encode(char *str) { char *encoded_data = malloc(output_length+1); if (encoded_data == NULL) return NULL; - for (int i = 0, j = 0; i < input_length;) { - + int i; + int j; + for (i = 0, j = 0; i < input_length;) { uint32_t octet_a = i < input_length ? (unsigned char)str[i++] : 0; uint32_t octet_b = i < input_length ? (unsigned char)str[i++] : 0; uint32_t octet_c = i < input_length ? (unsigned char)str[i++] : 0; @@ -981,7 +982,7 @@ static char *base64_encode(char *str) { } const int mod_table[] = {0, 2, 1}; - for (int i = 0; i < mod_table[input_length % 3]; i++) + for (i = 0; i < mod_table[input_length % 3]; i++) encoded_data[output_length - 1 - i] = '='; encoded_data[output_length] = '\0'; ================================================ FILE: package/darkhttpd/Config.in ================================================ config BR2_PACKAGE_DARKHTTPD bool "darkhttpd" depends on BR2_USE_MMU # fork() help Darkhttpd is a simple, fast HTTP 1.1 web server which only serves static content. It does not support PHP or CGI. The behavior of darkhttpd can be altered by setting some variables in /etc/default/darkhttpd: - DARKHTTPD_ROOT: path to the server document root. - DARKHTTPD_FLAGS: options to pass to darkhttpd. https://unix4lyfe.org/darkhttpd/ ================================================ FILE: package/darkhttpd/S50darkhttpd ================================================ #!/bin/sh # # Starts darkhttpd. # # Allow a few customizations from a config file test -r /etc/default/darkhttpd && . /etc/default/darkhttpd DARKHTTPD_PROG=/usr/sbin/darkhttpd DARKHTTPD_PIDFILE=/var/run/darkhttpd.pid DARKHTTPD_ARGS="${DARKHTTPD_ROOT:-/var/www} --log /var/log/darkhttpd.log $DARKHTTPD_FLAGS --chroot --uid nobody --gid www-data" start() { printf "Starting darkhttpd: " start-stop-daemon -S -q -b -p $DARKHTTPD_PIDFILE -m --exec $DARKHTTPD_PROG -- $DARKHTTPD_ARGS [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping darkhttpd: " start-stop-daemon -K -q -p $DARKHTTPD_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 $? ================================================ FILE: package/darkhttpd/darkhttpd.hash ================================================ # Locally generated sha256 1d88c395ac79ca9365aa5af71afe4ad136a4ed45099ca398168d4a2014dc0fc2 darkhttpd-1.13.tar.gz sha256 44e784df460954c7760e2eeae69aecb12a3d23ca1c0a4f6047c3c6452b2e2f49 darkhttpd.c ================================================ FILE: package/darkhttpd/darkhttpd.mk ================================================ ################################################################################ # # darkhttpd # ################################################################################ DARKHTTPD_VERSION = 1.13 DARKHTTPD_SITE = $(call github,emikulic,darkhttpd,v$(DARKHTTPD_VERSION)) DARKHTTPD_LICENSE = MIT DARKHTTPD_LICENSE_FILES = darkhttpd.c define DARKHTTPD_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define DARKHTTPD_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/darkhttpd \ $(TARGET_DIR)/usr/sbin/darkhttpd endef define DARKHTTPD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/darkhttpd/darkhttpd.service \ $(TARGET_DIR)/usr/lib/systemd/system/darkhttpd.service endef define DARKHTTPD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/darkhttpd/S50darkhttpd \ $(TARGET_DIR)/etc/init.d/S50darkhttpd endef $(eval $(generic-package)) ================================================ FILE: package/darkhttpd/darkhttpd.service ================================================ [Unit] Description=Darkhttpd Web Server After=syslog.target network.target auditd.service [Service] Environment="DARKHTTPD_ROOT=/var/www" EnvironmentFile=-/etc/default/darkhttpd ExecStart=/usr/sbin/darkhttpd $DARKHTTPD_ROOT $DARKHTTPD_FLAGS --chroot --uid nobody --gid www-data [Install] WantedBy=multi-user.target ================================================ FILE: package/dash/Config.in ================================================ config BR2_PACKAGE_DASH bool "dash" depends on BR2_USE_MMU # fork() depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help DASH is a POSIX-compliant implementation of /bin/sh that aims to be as small as possible. It does this without sacrificing speed where possible. In fact, it is significantly faster than bash (the GNU Bourne-Again SHell) for most tasks. http://gondor.apana.org.au/~herbert/dash ================================================ FILE: package/dash/dash.hash ================================================ # From http://gondor.apana.org.au/~herbert/dash/files/dash-0.5.11.5.tar.gz.sha512sum sha512 5387e213820eeb44d812bb4697543023fd4662b51a9ffd52a702810fed8b28d23fbe35a7f371e6686107de9f81902eff109458964b4622f4c5412d60190a66bf dash-0.5.11.5.tar.gz # Locally calculated sha256 254a7894923ff62e69184a991dcbccae97edee58a1105e8efbe78caf10595d72 COPYING ================================================ FILE: package/dash/dash.mk ================================================ ################################################################################ # # dash # ################################################################################ DASH_VERSION = 0.5.11.5 DASH_SITE = http://gondor.apana.org.au/~herbert/dash/files DASH_LICENSE = BSD-3-Clause, GPL-2.0+ (mksignames.c) DASH_LICENSE_FILES = COPYING # dash does not build in parallel DASH_MAKE = $(MAKE1) ifeq ($(BR2_PACKAGE_LIBEDIT),y) DASH_DEPENDENCIES += libedit host-pkgconf DASH_CONF_OPTS += --with-libedit DASH_CONF_ENV += LIBS=`pkg-config --libs libedit` # Enable line editing, Emacs style define DASH_INSTALL_PROFILE mkdir -p $(TARGET_DIR)/etc/profile.d echo 'set -E' > $(TARGET_DIR)/etc/profile.d/dash.sh endef DASH_POST_INSTALL_TARGET_HOOKS += DASH_INSTALL_PROFILE else DASH_CONF_OPTS += --without-libedit endif define DASH_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/src/dash $(TARGET_DIR)/bin/dash endef # Add /bin/dash to /etc/shells otherwise some login tools like dropbear # can reject the user connection. See man shells. define DASH_ADD_DASH_TO_SHELLS grep -qsE '^/bin/dash$$' $(TARGET_DIR)/etc/shells \ || echo "/bin/dash" >> $(TARGET_DIR)/etc/shells endef DASH_TARGET_FINALIZE_HOOKS += DASH_ADD_DASH_TO_SHELLS $(eval $(autotools-package)) ================================================ FILE: package/datatables/Config.in ================================================ config BR2_PACKAGE_DATATABLES bool "datatables" help Javascript library providing advanced interaction controls for your HTML tables. https://datatables.net ================================================ FILE: package/datatables/datatables.hash ================================================ # Locally computed: sha256 e2c79dd9d02caa04130ce888061bc922e18561e72e842ba0cb657d1812d9f1bf DataTables-1.10.20.zip sha256 c6a873f21550ed804f76013c36e14225704c1aa551fdb870e0c626eb91c19247 license.txt ================================================ FILE: package/datatables/datatables.mk ================================================ ################################################################################ # # datatables # ################################################################################ DATATABLES_VERSION = 1.10.20 DATATABLES_SITE = https://datatables.net/releases DATATABLES_SOURCE = DataTables-$(DATATABLES_VERSION).zip DATATABLES_LICENSE = MIT DATATABLES_LICENSE_FILES = license.txt define DATATABLES_EXTRACT_CMDS $(UNZIP) $(DATATABLES_DL_DIR)/$(DATATABLES_SOURCE) -d $(@D) mv $(@D)/DataTables-$(DATATABLES_VERSION)/* $(@D) rmdir $(@D)/DataTables-$(DATATABLES_VERSION) endef define DATATABLES_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/datatables/css $(TARGET_DIR)/var/www/datatables/js $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/datatables/css $(@D)/media/css/*.min.css $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/datatables/js $(@D)/media/js/*.min.js endef $(eval $(generic-package)) ================================================ FILE: package/datatables-buttons/Config.in ================================================ config BR2_PACKAGE_DATATABLES_BUTTONS bool "datatables-buttons" depends on BR2_PACKAGE_DATATABLES select BR2_PACKAGE_JSZIP help The Buttons library for DataTables provides a framework with common options and API that can be used with DataTables, but is also very extensible, recognising that you will likely want to use buttons which perform an action unique to your applications. https://datatables.net/extensions/buttons ================================================ FILE: package/datatables-buttons/datatables-buttons.hash ================================================ # Locally computed: sha256 427632c0245f488328edab83b53294545744c8de621a5eaa9dd3d257d7ed7775 Buttons-1.6.1.zip sha256 21fa7cbc3c00bcad1e0f3417d465e702bd470d7dc446a6deff80c8fc5eda9148 License.txt ================================================ FILE: package/datatables-buttons/datatables-buttons.mk ================================================ ################################################################################ # # datatables-buttons # ################################################################################ DATATABLES_BUTTONS_VERSION = 1.6.1 DATATABLES_BUTTONS_SITE = https://datatables.net/releases DATATABLES_BUTTONS_SOURCE = Buttons-$(DATATABLES_BUTTONS_VERSION).zip DATATABLES_BUTTONS_LICENSE = MIT DATATABLES_BUTTONS_LICENSE_FILES = License.txt define DATATABLES_BUTTONS_EXTRACT_CMDS $(UNZIP) $(DATATABLES_BUTTONS_DL_DIR)/$(DATATABLES_BUTTONS_SOURCE) -d $(@D) mv $(@D)/Buttons-$(DATATABLES_BUTTONS_VERSION)/* $(@D) rmdir $(@D)/Buttons-$(DATATABLES_BUTTONS_VERSION) endef define DATATABLES_BUTTONS_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/datatables-buttons/css $(TARGET_DIR)/var/www/datatables-buttons/js $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/datatables-buttons/css $(@D)/css/*.min.css $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/datatables-buttons/js $(@D)/js/*.min.js endef $(eval $(generic-package)) ================================================ FILE: package/datatables-fixedcolumns/Config.in ================================================ config BR2_PACKAGE_DATATABLES_FIXEDCOLUMNS bool "datatables-fixedcolumns" depends on BR2_PACKAGE_DATATABLES help When making use of DataTables' x-axis scrolling feature (scrollX), you may wish to fix the left or right most columns in place. This extension for DataTables provides exactly this option. https://datatables.net/extensions/fixedcolumns ================================================ FILE: package/datatables-fixedcolumns/datatables-fixedcolumns.hash ================================================ # Locally computed: sha256 53a7b20ea9dbb6498137cb7260bde8605989ec578e4b71787f5ebc4ef9910bd9 FixedColumns-3.3.0.zip sha256 e8e92f97216f9ea00cb2735b933a91ec8e3869bed37b6d63a90f76f41508f2de License.txt ================================================ FILE: package/datatables-fixedcolumns/datatables-fixedcolumns.mk ================================================ ################################################################################ # # datatables-fixedcolumns # ################################################################################ DATATABLES_FIXEDCOLUMNS_VERSION = 3.3.0 DATATABLES_FIXEDCOLUMNS_SITE = https://datatables.net/releases DATATABLES_FIXEDCOLUMNS_SOURCE = FixedColumns-$(DATATABLES_FIXEDCOLUMNS_VERSION).zip DATATABLES_FIXEDCOLUMNS_LICENSE = MIT DATATABLES_FIXEDCOLUMNS_LICENSE_FILES = License.txt define DATATABLES_FIXEDCOLUMNS_EXTRACT_CMDS $(UNZIP) $(DATATABLES_FIXEDCOLUMNS_DL_DIR)/$(DATATABLES_FIXEDCOLUMNS_SOURCE) -d $(@D) mv $(@D)/FixedColumns-$(DATATABLES_FIXEDCOLUMNS_VERSION)/* $(@D) rmdir $(@D)/FixedColumns-$(DATATABLES_FIXEDCOLUMNS_VERSION) endef define DATATABLES_FIXEDCOLUMNS_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/datatables-fixedcolumns/css $(TARGET_DIR)/var/www/datatables-fixedcolumns/js $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/datatables-fixedcolumns/css $(@D)/css/*.min.css $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/datatables-fixedcolumns/js $(@D)/js/*.min.js endef $(eval $(generic-package)) ================================================ FILE: package/datatables-responsive/Config.in ================================================ config BR2_PACKAGE_DATATABLES_RESPONSIVE bool "datatables-responsive" depends on BR2_PACKAGE_DATATABLES help In the modern world of responsive web design tables can often cause a particular problem for designers due to their row based layout. Responsive is an extension for DataTables that resolves that problem by optimising the table's layout for different screen sizes through the dynamic insertion and removal of columns from the table. https://datatables.net/extensions/responsive ================================================ FILE: package/datatables-responsive/datatables-responsive.hash ================================================ # Locally computed: sha256 47caf3b753dd2c537b8834816eaf38c4df214cb4e6a97144e0de4cf82ad24d02 Responsive-2.2.3.zip sha256 da4e1020ae97c095a14d7830c1a8a793e080c062e22d749ecd3fc3c075673dbf License.txt ================================================ FILE: package/datatables-responsive/datatables-responsive.mk ================================================ ################################################################################ # # datatables-responsive # ################################################################################ DATATABLES_RESPONSIVE_VERSION = 2.2.3 DATATABLES_RESPONSIVE_SITE = https://datatables.net/releases DATATABLES_RESPONSIVE_SOURCE = Responsive-$(DATATABLES_RESPONSIVE_VERSION).zip DATATABLES_RESPONSIVE_LICENSE = MIT DATATABLES_RESPONSIVE_LICENSE_FILES = License.txt define DATATABLES_RESPONSIVE_EXTRACT_CMDS $(UNZIP) $(DATATABLES_RESPONSIVE_DL_DIR)/$(DATATABLES_RESPONSIVE_SOURCE) -d $(@D) mv $(@D)/Responsive-$(DATATABLES_RESPONSIVE_VERSION)/* $(@D) rmdir $(@D)/Responsive-$(DATATABLES_RESPONSIVE_VERSION) endef define DATATABLES_RESPONSIVE_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/datatables-responsive/css $(TARGET_DIR)/var/www/datatables-responsive/js $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/datatables-responsive/css $(@D)/css/*.min.css $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/datatables-responsive/js $(@D)/js/*.min.js endef $(eval $(generic-package)) ================================================ FILE: package/dav1d/Config.in ================================================ config BR2_PACKAGE_DAV1D bool "dav1d" depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_TOOLCHAIN_HAS_THREADS # pthread help dav1d is a new AV1 cross-platform decoder, open-source, and focused on speed and correctness. https://code.videolan.org/videolan/dav1d comment "dav1d needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/dav1d/dav1d.hash ================================================ # Locally computed sha256 0d198c4fe63fe7f0395b1b17de75b21c8c4508cd3204996229355759efa30ef8 dav1d-0.9.2.tar.bz2 sha256 b327887de263238deaa80c34cdd2ff3e0ba1d35db585ce14a37ce3e74ee389e9 COPYING ================================================ FILE: package/dav1d/dav1d.mk ================================================ ################################################################################ # # dav1d # ################################################################################ DAV1D_VERSION = 0.9.2 DAV1D_SOURCE = dav1d-$(DAV1D_VERSION).tar.bz2 DAV1D_SITE = https://code.videolan.org/videolan/dav1d/-/archive/$(DAV1D_VERSION) DAV1D_LICENSE = BSD-2-Clause DAV1D_LICENSE_FILES = COPYING DAV1D_INSTALL_STAGING = YES DAV1D_CONF_OPTS = \ -Denable_tests=false \ -Denable_tools=false ifeq ($(BR2_i386)$(BR2_x86_64),y) DAV1D_DEPENDENCIES += host-nasm endif # ARM assembly requires v6+ ISA ifeq ($(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV7M),y) DAV1D_CONF_OPTS += -Denable_asm=false endif # Uses __atomic_fetch_add_4 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) DAV1D_LDFLAGS += -latomic endif $(eval $(meson-package)) ================================================ FILE: package/davfs2/0001-src-Makefile.am-do-not-hardcode-fstack-protector-str.patch ================================================ From d209ef650cf2f760ef8217748ab10716bd22d60d Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Sun, 24 Jun 2018 10:35:37 +0200 Subject: [PATCH] src/Makefile.am: do not hardcode -fstack-protector-strong davfs2 does not truly require -fstack-protector-strong, so do not hardcode it. Signed-off-by: Peter Korsgaard --- src/Makefile.am | 3 +-- src/Makefile.in | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index f083462..ed6b682 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -32,8 +32,7 @@ mount_davfs_SOURCES = cache.c dav_coda.c \ kernel_interface.h mount_davfs.h webdav.h umount_davfs_SOURCES = umount_davfs.c defaults.h -AM_CFLAGS = -Wall -Werror=format-security \ - -fstack-protector-strong --param=ssp-buffer-size=4 +AM_CFLAGS = -Wall -Werror=format-security DEFS = -DPROGRAM_NAME=\"mount.davfs\" \ -DDAV_SYS_CONF_DIR=\"$(pkgsysconfdir)\" \ -DDAV_LOCALSTATE_DIR=\"$(dav_localstatedir)\" \ diff --git a/src/Makefile.in b/src/Makefile.in index 9fee542..e98758d 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -315,8 +315,7 @@ mount_davfs_SOURCES = cache.c dav_coda.c \ kernel_interface.h mount_davfs.h webdav.h umount_davfs_SOURCES = umount_davfs.c defaults.h -AM_CFLAGS = -Wall -Werror=format-security \ - -fstack-protector-strong --param=ssp-buffer-size=4 +AM_CFLAGS = -Wall -Werror=format-security all: all-am -- 2.11.0 ================================================ FILE: package/davfs2/Config.in ================================================ comment "davfs2 needs a glibc or uClibc toolchain" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_USES_MUSL config BR2_PACKAGE_DAVFS2 bool "davfs2" depends on !BR2_TOOLCHAIN_USES_MUSL # error.h depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NEON select BR2_PACKAGE_NEON_XML help davfs2 is a Linux file system driver that allows to mount a WebDAV resource. WebDAV is an extension to HTTP/1.1 that allows remote collaborative authoring of Web resources. To use davfs2 via /etc/fstab, FEATURE_MOUNT_HELPERS must be selected in busybox configuration. http://savannah.nongnu.org/projects/davfs2 ================================================ FILE: package/davfs2/davfs2.hash ================================================ # Locally calculated sha256 2e6b675685bd917772be60f0999ae098c80f79ff20dc131e8fec4547cbb63b50 davfs2-1.6.0.tar.gz # License file, locally calculated sha256 0ae0485a5bd37a63e63603596417e4eb0e653334fa6c7f932ca3a0e85d4af227 COPYING ================================================ FILE: package/davfs2/davfs2.mk ================================================ ################################################################################ # # davfs2 # ################################################################################ DAVFS2_VERSION = 1.6.0 DAVFS2_SITE = http://download.savannah.nongnu.org/releases/davfs2 DAVFS2_LICENSE = GPL-3.0+ DAVFS2_LICENSE_FILES = COPYING DAVFS2_CPE_ID_VENDOR = werner_baumann DAVFS2_DEPENDENCIES = \ neon \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) \ $(TARGET_NLS_DEPENDENCIES) DAVFS2_CONF_ENV += \ ac_cv_path_NEON_CONFIG=$(STAGING_DIR)/usr/bin/neon-config \ LIBS=$(TARGET_NLS_LIBS) define DAVFS2_USERS davfs2 -1 davfs2 -1 * - - - davfs user endef $(eval $(autotools-package)) ================================================ FILE: package/davici/Config.in ================================================ comment "davici 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 config BR2_PACKAGE_DAVICI bool "davici" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_STATIC_LIBS select BR2_PACKAGE_STRONGSWAN help davici is an alternative implementation of the VICI client protocol, targeting better integration in other software stacks. https://github.com/strongswan/davici ================================================ FILE: package/davici/davici.hash ================================================ # Locally calculated sha256 b03c5a1aad905e962271d70246d6af6c337ffd00449d990082ea02161327bde8 davici-1.4.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/davici/davici.mk ================================================ ################################################################################ # # davici # ################################################################################ DAVICI_VERSION = 1.4 DAVICI_SITE = $(call github,strongswan,davici,v$(DAVICI_VERSION)) DAVICI_LICENSE = LGPL-2.1+ DAVICI_LICENSE_FILES = COPYING DAVICI_CPE_ID_VENDOR = strongswan DAVICI_DEPENDENCIES = strongswan DAVICI_INSTALL_STAGING = YES DAVICI_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/dawgdic/Config.in ================================================ config BR2_PACKAGE_DAWGDIC bool "dawgdic" depends on BR2_INSTALL_LIBSTDCPP # needs std::strtoll depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 help dawgdic provides a library for building and accessing dictionaries implemented with directed acyclic word graphs (DAWG). A dawg is constructed by minimizing a trie as a deterministic finite automaton (DFA), and thus the dawg has an advantage in memory usage. In addition, dawgdic uses a double-array as a base data structure, so its retrieval speed is as fast as that of Darts, a library for building and accessing double-array tries. https://github.com/stil/dawgdic comment "dawgdic needs a toolchain w/ C++, gcc >= 4.6" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 ================================================ FILE: package/dawgdic/dawgdic.hash ================================================ # Locally calculated sha256 54622a3e79ff3ad2c01a830ec52b997b42ead468b18af5acebab3a4ff32a5ad6 dawgdic-16ac537ba9883ff01b63b6d1fdc3072150c68fee.tar.gz sha256 3059f68686f1c5bc6ed0e9db415fc257c4e7618b6ac58ecce83986eb8a7cf501 COPYING ================================================ FILE: package/dawgdic/dawgdic.mk ================================================ ################################################################################ # # dawgdic # ################################################################################ DAWGDIC_VERSION = 16ac537ba9883ff01b63b6d1fdc3072150c68fee DAWGDIC_SITE = $(call github,stil,dawgdic,$(DAWGDIC_VERSION)) DAWGDIC_LICENSE = BSD-3-Clause DAWGDIC_LICENSE_FILES = COPYING DAWGDIC_AUTORECONF = YES DAWGDIC_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/dbus/Config.in ================================================ config BR2_PACKAGE_DBUS bool "dbus" depends on BR2_TOOLCHAIN_HAS_THREADS # uses fork() depends on BR2_USE_MMU select BR2_PACKAGE_EXPAT help The D-Bus message bus system. https://www.freedesktop.org/wiki/Software/dbus comment "dbus needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/dbus/S30dbus ================================================ #!/bin/sh # # messagebus: The D-BUS systemwide message bus # # chkconfig: 345 97 03 # description: This is a daemon which broadcasts notifications of system events \ # and other messages. See http://www.freedesktop.org/software/dbus/ # # processname: dbus-daemon # pidfile: /run/messagebus.pid # # Create needed directories. [ -d /run/dbus ] || mkdir -p /run/dbus [ -d /var/lock/subsys ] || mkdir -p /var/lock/subsys [ -d /tmp/dbus ] || mkdir -p /tmp/dbus RETVAL=0 start() { printf "Starting system message bus: " dbus-uuidgen --ensure dbus-daemon --system RETVAL=$? echo "done" [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dbus-daemon } stop() { printf "Stopping system message bus: " ## we don't want to kill all the per-user $processname, we want ## to use the pid file *only*; because we use the fake nonexistent ## program name "$servicename" that should be safe-ish killall dbus-daemon RETVAL=$? echo "done" if [ $RETVAL -eq 0 ]; then rm -f /var/lock/subsys/dbus-daemon rm -f /run/messagebus.pid fi } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; condrestart) if [ -f /var/lock/subsys/$servicename ]; then stop start fi ;; reload) echo "Message bus can't reload its configuration, you have to restart it" RETVAL=$? ;; *) echo "Usage: $0 {start|stop|restart|condrestart|reload}" ;; esac exit $RETVAL ================================================ FILE: package/dbus/dbus.hash ================================================ # Locally calculated after checking pgp signature # https://dbus.freedesktop.org/releases/dbus/dbus-1.12.20.tar.gz.asc # using key 36EC5A6448A4F5EF79BEFE98E05AE1478F814C4F sha256 f77620140ecb4cdc67f37fb444f8a6bea70b5b6461f12f1cbe2cec60fa7de5fe dbus-1.12.20.tar.gz # Locally calculated sha256 0e46f54efb12d04ab5c33713bacd0e140c9a35b57ae29e03c853203266e8f3a1 COPYING ================================================ FILE: package/dbus/dbus.mk ================================================ ################################################################################ # # dbus # ################################################################################ DBUS_VERSION = 1.12.20 DBUS_SITE = https://dbus.freedesktop.org/releases/dbus DBUS_LICENSE = AFL-2.1 or GPL-2.0+ (library, tools), GPL-2.0+ (tools) DBUS_LICENSE_FILES = COPYING DBUS_CPE_ID_VENDOR = d-bus_project DBUS_CPE_ID_PRODUCT = d-bus DBUS_INSTALL_STAGING = YES define DBUS_PERMISSIONS /usr/libexec/dbus-daemon-launch-helper f 4750 0 dbus - - - - - endef define DBUS_USERS dbus -1 dbus -1 * /run/dbus - dbus DBus messagebus user endef DBUS_DEPENDENCIES = host-pkgconf expat DBUS_SELINUX_MODULES = dbus DBUS_CONF_OPTS = \ --with-dbus-user=dbus \ --disable-tests \ --disable-asserts \ --disable-xml-docs \ --disable-doxygen-docs \ --with-system-socket=/run/dbus/system_bus_socket \ --with-system-pid-file=/run/messagebus.pid ifeq ($(BR2_STATIC_LIBS),y) DBUS_CONF_OPTS += LIBS='-pthread' endif ifeq ($(BR2_microblaze),y) # microblaze toolchain doesn't provide inotify_rm_* but does have sys/inotify.h DBUS_CONF_OPTS += --disable-inotify endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) DBUS_CONF_OPTS += --enable-selinux DBUS_DEPENDENCIES += libselinux else DBUS_CONF_OPTS += --disable-selinux endif ifeq ($(BR2_PACKAGE_AUDIT)$(BR2_PACKAGE_LIBCAP_NG),yy) DBUS_CONF_OPTS += --enable-libaudit DBUS_DEPENDENCIES += audit libcap-ng else DBUS_CONF_OPTS += --disable-libaudit endif ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) DBUS_CONF_OPTS += --with-x DBUS_DEPENDENCIES += xlib_libX11 ifeq ($(BR2_PACKAGE_XLIB_LIBSM),y) DBUS_DEPENDENCIES += xlib_libSM endif else DBUS_CONF_OPTS += --without-x endif ifeq ($(BR2_INIT_SYSTEMD),y) DBUS_CONF_OPTS += \ --enable-systemd \ --with-systemdsystemunitdir=/usr/lib/systemd/system DBUS_DEPENDENCIES += systemd else DBUS_CONF_OPTS += --disable-systemd endif # fix rebuild (dbus makefile errors out if /var/lib/dbus is a symlink) define DBUS_REMOVE_VAR_LIB_DBUS rm -rf $(TARGET_DIR)/var/lib/dbus endef DBUS_PRE_INSTALL_TARGET_HOOKS += DBUS_REMOVE_VAR_LIB_DBUS define DBUS_REMOVE_DEVFILES rm -rf $(TARGET_DIR)/usr/lib/dbus-1.0 endef DBUS_POST_INSTALL_TARGET_HOOKS += DBUS_REMOVE_DEVFILES define DBUS_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/dbus/S30dbus \ $(TARGET_DIR)/etc/init.d/S30dbus mkdir -p $(TARGET_DIR)/var/lib rm -rf $(TARGET_DIR)/var/lib/dbus ln -sf /tmp/dbus $(TARGET_DIR)/var/lib/dbus endef define DBUS_INSTALL_INIT_SYSTEMD mkdir -p $(TARGET_DIR)/var/lib/dbus ln -sf /etc/machine-id $(TARGET_DIR)/var/lib/dbus/machine-id endef HOST_DBUS_DEPENDENCIES = host-pkgconf host-expat HOST_DBUS_CONF_OPTS = \ --with-dbus-user=dbus \ --disable-tests \ --disable-asserts \ --disable-selinux \ --disable-xml-docs \ --disable-doxygen-docs \ --disable-systemd \ --without-x # dbus for the host DBUS_HOST_INTROSPECT = $(HOST_DBUS_DIR)/introspect.xml HOST_DBUS_GEN_INTROSPECT = \ $(HOST_DIR)/bin/dbus-daemon --introspect > $(DBUS_HOST_INTROSPECT) HOST_DBUS_POST_INSTALL_HOOKS += HOST_DBUS_GEN_INTROSPECT $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/dbus-cpp/0001-gcc4.7.patch ================================================ Fix build failure with gcc 4.7+ From bugtracker: http://sourceforge.net/p/dbus-cplusplus/patches/13/ Signed-off-by: Gustavo Zacarias diff --git a/include/dbus-c++/eventloop-integration.h b/include/dbus-c++/eventloop-integration.h index 1b0302e..3e44304 100644 --- a/include/dbus-c++/eventloop-integration.h +++ b/include/dbus-c++/eventloop-integration.h @@ -26,6 +26,7 @@ #define __DBUSXX_EVENTLOOP_INTEGRATION_H #include +#include #include "api.h" #include "dispatcher.h" #include "util.h" ================================================ FILE: package/dbus-cpp/0002-cross-compile-tools.patch ================================================ tools: just do proper cross-compile Those tools are not used during the build; besides, they are installed. So they don't need to not be cross-compiled. Signed-off-by: "Yann E. MORIN" --- Upstream status: not submitted, upstream is dead. diff -durN dbus-cpp-0.9.0.orig/tools/Makefile.am dbus-cpp-0.9.0/tools/Makefile.am --- dbus-cpp-0.9.0.orig/tools/Makefile.am 2017-03-21 21:48:57.013409423 +0100 +++ dbus-cpp-0.9.0/tools/Makefile.am 2017-03-21 21:49:35.329979798 +0100 @@ -1,7 +1,3 @@ -# hacky, but ... - -CXX = $(CXX_FOR_BUILD) - AM_CPPFLAGS = \ $(dbus_CFLAGS) \ $(xml_CFLAGS) \ @@ -9,11 +3,7 @@ -I$(top_builddir)/include \ -Wall -if CROSS_COMPILING -libdbus_cxx_la = $(BUILD_LIBDBUS_CXX_DIR)/src/libdbus-c++-1.la -else libdbus_cxx_la = $(top_builddir)/src/libdbus-c++-1.la -endif bin_PROGRAMS = dbusxx-xml2cpp dbusxx-introspect ================================================ FILE: package/dbus-cpp/0003-src-pipe.c-fix-build-error-with-gcc-7.x.patch ================================================ From 167042116f523f90911f3a28c4ec065918d56cc9 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 22 Aug 2017 00:02:52 +0200 Subject: [PATCH] src/pipe.c: fix build error with gcc 7.x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The write function takes a char* as argument, not a char. Fixes: pipe.cpp: In member function ‘void DBus::Pipe::signal()’: pipe.cpp:86:29: error: invalid conversion from ‘char’ to ‘const void*’ [-fpermissive] ::write(_fd_write, '\0', 1); ^ Signed-off-by: Thomas Petazzoni --- src/pipe.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pipe.cpp b/src/pipe.cpp index 01211b3..d0572c7 100644 --- a/src/pipe.cpp +++ b/src/pipe.cpp @@ -83,5 +83,5 @@ ssize_t Pipe::read(void *buffer, unsigned int &nbytes) void Pipe::signal() { // TODO: ignoring return of read/write generates warning; maybe relevant for eventloop work... - ::write(_fd_write, '\0', 1); + ::write(_fd_write, "\0", 1); } -- 2.9.4 ================================================ FILE: package/dbus-cpp/Config.in ================================================ config BR2_PACKAGE_DBUS_CPP bool "dbus-c++" depends on BR2_PACKAGE_DBUS depends on BR2_TOOLCHAIN_HAS_THREADS # dbus depends on BR2_USE_MMU # dbus depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_TOOLCHAIN_USES_MUSL # no PTHREAD_RECURSIVE_MUTEX_* select BR2_PACKAGE_EXPAT help dbus-c++ attempts to provide a C++ API for D-BUS. The library has a glib/gtk and an Ecore mainloop integration. It also offers an optional own main loop. http://sourceforge.net/projects/dbus-cplusplus/ 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 \ || BR2_TOOLCHAIN_USES_MUSL ================================================ FILE: package/dbus-cpp/dbus-cpp.hash ================================================ # Locally computed: sha256 bc11ac297b3cb010be904c72789695543ee3fdf3d75cdc8225fd371385af4e61 libdbus-c++-0.9.0.tar.gz sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING ================================================ FILE: package/dbus-cpp/dbus-cpp.mk ================================================ ################################################################################ # # dbus-cpp # ################################################################################ DBUS_CPP_VERSION = 0.9.0 DBUS_CPP_SITE = http://downloads.sourceforge.net/project/dbus-cplusplus/dbus-c++/$(DBUS_CPP_VERSION) DBUS_CPP_SOURCE = libdbus-c++-$(DBUS_CPP_VERSION).tar.gz DBUS_CPP_INSTALL_STAGING = YES # expat is required for the tools irrespective of dbus xml backend DBUS_CPP_DEPENDENCIES = host-dbus-cpp host-pkgconf dbus expat HOST_DBUS_CPP_DEPENDENCIES = host-pkgconf host-dbus host-expat DBUS_CPP_CONF_OPTS = \ --disable-examples \ --disable-tests \ --disable-doxygen-docs \ --with-build-libdbus-cxx=$(HOST_DBUS_CPP_BUILDDIR) HOST_DBUS_CPP_CONF_OPTS = \ --disable-examples \ --disable-tests \ --disable-doxygen-docs \ --disable-ecore \ --disable-glib DBUS_CPP_AUTORECONF = YES DBUS_CPP_LICENSE = LGPL-2.1+ DBUS_CPP_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_EFL),y) DBUS_CPP_CONF_OPTS += --enable-ecore DBUS_CPP_DEPENDENCIES += efl else DBUS_CPP_CONF_OPTS += --disable-ecore endif ifeq ($(BR2_PACKAGE_LIBGLIB2),y) DBUS_CPP_CONF_OPTS += --enable-glib DBUS_CPP_DEPENDENCIES += libglib2 else DBUS_CPP_CONF_OPTS += --disable-glib endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/dbus-glib/Config.in ================================================ config BR2_PACKAGE_DBUS_GLIB bool "dbus-glib" depends on BR2_PACKAGE_DBUS depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 select BR2_PACKAGE_LIBGLIB2 help GLib bindings for D-Bus. http://www.freedesktop.org/software/dbus comment "dbus-glib needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on BR2_PACKAGE_DBUS depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/dbus-glib/dbus-glib.hash ================================================ # Locally calculated after checking pgp signature sha256 7d550dccdfcd286e33895501829ed971eeb65c614e73aadb4a08aeef719b143a dbus-glib-0.112.tar.gz # Locally calculated sha256 589bc300214a8b9ecd121f51570fe6342617487fd8fc0fb1f4ec26a13d5b96f8 COPYING ================================================ FILE: package/dbus-glib/dbus-glib.mk ================================================ ################################################################################ # # dbus-glib # ################################################################################ DBUS_GLIB_VERSION = 0.112 DBUS_GLIB_SITE = http://dbus.freedesktop.org/releases/dbus-glib DBUS_GLIB_INSTALL_STAGING = YES DBUS_GLIB_LICENSE = AFL-2.1 or GPL-2.0+ DBUS_GLIB_LICENSE_FILES = COPYING DBUS_GLIB_CPE_ID_VENDOR = freedesktop DBUS_GLIB_CONF_ENV = \ ac_cv_have_abstract_sockets=yes \ ac_cv_func_posix_getpwnam_r=yes \ have_abstract_sockets=yes DBUS_GLIB_CONF_OPTS = \ --disable-tests \ --disable-xml-docs \ --with-introspect-xml=$(DBUS_HOST_INTROSPECT) \ --with-dbus-binding-tool=$(DBUS_GLIB_HOST_BINARY) \ --disable-bash-completion \ --disable-doxygen-docs \ --enable-asserts=yes DBUS_GLIB_DEPENDENCIES = host-pkgconf dbus host-dbus host-dbus-glib libglib2 expat HOST_DBUS_GLIB_DEPENDENCIES = host-dbus host-expat host-libglib2 HOST_DBUS_GLIB_CONF_OPTS = \ --disable-tests \ --disable-xml-docs \ --disable-bash-completion \ --disable-doxygen-docs \ --enable-asserts=yes $(eval $(autotools-package)) $(eval $(host-autotools-package)) # dbus-glib for the host DBUS_GLIB_HOST_BINARY = $(HOST_DIR)/bin/dbus-binding-tool ================================================ FILE: package/dbus-python/Config.in ================================================ config BR2_PACKAGE_DBUS_PYTHON bool "dbus-python" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_PACKAGE_DBUS depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_LIBGLIB2 # pyexpat: runtime dependency only select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 help Python bindings for D-Bus http://dbus.freedesktop.org/doc/dbus-python/ comment "dbus-python needs a toolchain w/ wchar, threads" depends on BR2_PACKAGE_DBUS && (BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3) depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/dbus-python/Config.in.host ================================================ config BR2_PACKAGE_HOST_DBUS_PYTHON bool "host dbus-python" help Python bindings for D-Bus http://dbus.freedesktop.org/doc/dbus-python/ ================================================ FILE: package/dbus-python/dbus-python.hash ================================================ # Locally calculated after checking pgp signature sha256 92bdd1e68b45596c833307a5ff4b217ee6929a1502f5341bae28fd120acf7260 dbus-python-1.2.18.tar.gz # Locally calculated sha256 1e4562245383fdb5203b1769789e5b28bba21af4923aea7e8b2614f7f93623c0 COPYING sha256 064523e3ab64d6f03904132b2cc4a1bd8500586edb4cd050c2ff2b96aed4c33b dbus-gmain/COPYING ================================================ FILE: package/dbus-python/dbus-python.mk ================================================ ################################################################################ # # dbus-python # ################################################################################ DBUS_PYTHON_VERSION = 1.2.18 DBUS_PYTHON_SITE = http://dbus.freedesktop.org/releases/dbus-python DBUS_PYTHON_INSTALL_STAGING = YES DBUS_PYTHON_LICENSE = MIT (dbus-python), AFL-2.1 or GPL-2.0+ (dbus-gmain) DBUS_PYTHON_LICENSE_FILES = COPYING dbus-gmain/COPYING DBUS_PYTHON_DEPENDENCIES = dbus libglib2 HOST_DBUS_PYTHON_DEPENDENCIES = host-dbus host-libglib2 ifeq ($(BR2_PACKAGE_PYTHON),y) DBUS_PYTHON_DEPENDENCIES += python host-python DBUS_PYTHON_CONF_ENV += \ PYTHON=$(HOST_DIR)/bin/python2 \ PYTHON_INCLUDES="`$(STAGING_DIR)/usr/bin/python2-config --includes`" \ PYTHON_LIBS="`$(STAGING_DIR)/usr/bin/python2-config --ldflags`" HOST_DBUS_PYTHON_DEPENDENCIES += host-python HOST_DBUS_PYTHON_CONF_ENV += \ PYTHON=$(HOST_DIR)/bin/python2 \ PYTHON_INCLUDES="`$(HOST_DIR)/usr/bin/python2-config --includes`" \ PYTHON_LIBS="`$(HOST_DIR)/usr/bin/python2-config --ldflags`" else DBUS_PYTHON_DEPENDENCIES += python3 host-python3 DBUS_PYTHON_CONF_ENV += \ PYTHON=$(HOST_DIR)/bin/python3 \ PYTHON_INCLUDES="`$(STAGING_DIR)/usr/bin/python3-config --includes`" \ PYTHON_LIBS="`$(STAGING_DIR)/usr/bin/python3-config --ldflags`" \ PYTHON_EXTRA_LIBS="`$(STAGING_DIR)/usr/bin/python3-config --libs --embed`" HOST_DBUS_PYTHON_DEPENDENCIES += host-python3 HOST_DBUS_PYTHON_CONF_ENV += \ PYTHON=$(HOST_DIR)/bin/python3 \ PYTHON_INCLUDES="`$(HOST_DIR)/usr/bin/python3-config --includes`" \ PYTHON_LIBS="`$(HOST_DIR)/usr/bin/python3-config --ldflags`" \ PYTHON_EXTRA_LIBS="`$(HOST_DIR)/usr/bin/python3-config --libs --embed`" endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/dbus-triggerd/Config.in ================================================ config BR2_PACKAGE_DBUS_TRIGGERD bool "dbus-triggerd" depends on BR2_USE_MMU # fork(), dbus depends on BR2_TOOLCHAIN_HAS_THREADS # dbus depends on BR2_PACKAGE_DBUS help dbus-triggerd is a tool to trigger shell-commands upon receiving a given dbus-signal. http://gareus.org/oss/dbustriggerd/start comment "dbus-triggerd needs a toolchain w/ threads" depends on BR2_USE_MMU depends on BR2_PACKAGE_DBUS depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/dbus-triggerd/dbus-triggerd.hash ================================================ # Locally computed sha256 930cccfe8bdff98cab0cff003d90f9421858850d2d00143108191b62b4ef5e5a dbus-triggerd-ba3dbec805cb707c94c54de21666bf18b79bcc09-br1.tar.gz sha256 30d135650639af9019633690fc1aecbfc150aeeef9446347d4286a58338d10b0 dbus-triggerd.c ================================================ FILE: package/dbus-triggerd/dbus-triggerd.mk ================================================ ################################################################################ # # dbus-triggerd # ################################################################################ DBUS_TRIGGERD_VERSION = ba3dbec805cb707c94c54de21666bf18b79bcc09 DBUS_TRIGGERD_SITE = git://rg42.org/dbustriggerd.git DBUS_TRIGGERD_LICENSE = GPL-2.0+ DBUS_TRIGGERD_LICENSE_FILES = dbus-triggerd.c DBUS_TRIGGERD_DEPENDENCIES = host-pkgconf dbus define DBUS_TRIGGERD_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) all endef define DBUS_TRIGGERD_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)" -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/dc3dd/0001-no_man.patch ================================================ Remove the man directory to the subdirs to prevent building the man pages Signed-off-by: Benoît Allard --- a/Makefile.am 2017-03-27 09:53:19.988820588 +0200 +++ b/Makefile.am 2017-03-27 09:54:14.325817466 +0200 @@ -15,7 +15,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -SUBDIRS = lib src man po +SUBDIRS = lib src po EXTRA_DIST = cfg.mk maint.mk \ .prev-version THANKS-to-translators THANKStt.in \ .version \ ================================================ FILE: package/dc3dd/0002-fix-autoreconf.patch ================================================ Remove use of AM_C_PROTOTYPES to fix autoreconf The AM_C_PROTOTYPES macro no longer exists since automake 1.12. It existed to support de-ANSI-fication of code using ansi2knr. It was simply removed from coreutils m4/jm-macros.m4 in commit 88873501cff9ed937edf969cedd693517ab0a293, but this change was not propagated to dc3dd, causing an autoreconf failure: configure.ac:45: error: automatic de-ANSI-fication support has been removed /home/peko/autobuild/instance-0/output/host/usr/share/aclocal-1.15/obsolete.m4:26: AM_C_PROTOTYPES is expanded from... m4/jm-macros.m4:124: gl_CHECK_ALL_TYPES is expanded from... m4/jm-macros.m4:22: coreutils_MACROS is expanded from... configure.ac:45: the top level Signed-off-by: Thomas Petazzoni Index: b/m4/jm-macros.m4 =================================================================== --- a/m4/jm-macros.m4 +++ b/m4/jm-macros.m4 @@ -128,11 +128,6 @@ dnl whether functions and headers are available, whether they work, etc. AC_REQUIRE([AC_SYS_LARGEFILE]) - dnl This test must precede tests of compiler characteristics like - dnl that for the inline keyword, since it may change the degree to - dnl which the compiler supports such features. - AC_REQUIRE([AM_C_PROTOTYPES]) - dnl Checks for typedefs, structures, and compiler characteristics. AC_REQUIRE([AC_C_BIGENDIAN]) AC_REQUIRE([AC_C_VOLATILE]) ================================================ FILE: package/dc3dd/0003-fix-for-glibc-2.28.patch ================================================ Fix build with glibc 2.28 glibc 2.28 hides a number of internal macros that used to be visible. gnulib relied on these macros. Add a patch based on upstream gnulib commit 4af4a4a71827c0 (fflush: adjust to glibc 2.28 libio.h removal) to fix the build. Signed-off-by: Baruch Siach --- Upstream status: gnulib commit 4af4a4a7182 diff -Nuar dc3dd-7.2.641.orig/lib/freadahead.c dc3dd-7.2.641/lib/freadahead.c --- dc3dd-7.2.641.orig/lib/freadahead.c 2012-11-06 23:42:58.000000000 +0200 +++ dc3dd-7.2.641/lib/freadahead.c 2018-10-26 08:46:36.612492230 +0300 @@ -24,7 +24,7 @@ size_t freadahead (FILE *fp) { -#if defined _IO_ferror_unlocked || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Linux libc5 */ +#if defined _IO_EOF_SEEN || defined _IO_ferror_unlocked || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Linux libc5 */ if (fp->_IO_write_ptr > fp->_IO_write_base) return 0; return (fp->_IO_read_end - fp->_IO_read_ptr) diff -Nuar dc3dd-7.2.641.orig/lib/freadptr.c dc3dd-7.2.641/lib/freadptr.c --- dc3dd-7.2.641.orig/lib/freadptr.c 2012-11-06 23:42:58.000000000 +0200 +++ dc3dd-7.2.641/lib/freadptr.c 2018-10-26 08:36:53.965310494 +0300 @@ -29,7 +29,7 @@ size_t size; /* Keep this code in sync with freadahead! */ -#if defined _IO_ferror_unlocked || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Linux libc5 */ +#if defined _IO_EOF_SEEN || defined _IO_ferror_unlocked || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Linux libc5 */ if (fp->_IO_write_ptr > fp->_IO_write_base) return NULL; size = fp->_IO_read_end - fp->_IO_read_ptr; diff -Nuar dc3dd-7.2.641.orig/lib/freadseek.c dc3dd-7.2.641/lib/freadseek.c --- dc3dd-7.2.641.orig/lib/freadseek.c 2012-11-06 23:42:58.000000000 +0200 +++ dc3dd-7.2.641/lib/freadseek.c 2018-10-26 08:49:35.387912087 +0300 @@ -34,7 +34,7 @@ freadptrinc (FILE *fp, size_t increment) { /* Keep this code in sync with freadptr! */ -#if defined _IO_ferror_unlocked || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Linux libc5 */ +#if defined _IO_EOF_SEEN || defined _IO_ferror_unlocked || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Linux libc5 */ fp->_IO_read_ptr += increment; #elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ fp_->_p += increment; diff -Nuar dc3dd-7.2.641.orig/lib/fseeko.c dc3dd-7.2.641/lib/fseeko.c --- dc3dd-7.2.641.orig/lib/fseeko.c 2012-11-06 23:42:58.000000000 +0200 +++ dc3dd-7.2.641/lib/fseeko.c 2018-10-26 08:51:02.841583936 +0300 @@ -44,7 +44,7 @@ #endif /* These tests are based on fpurge.c. */ -#if defined _IO_ferror_unlocked || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Linux libc5 */ +#if defined _IO_EOF_SEEN || defined _IO_ferror_unlocked || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Linux libc5 */ if (fp->_IO_read_end == fp->_IO_read_ptr && fp->_IO_write_ptr == fp->_IO_write_base && fp->_IO_save_base == NULL) diff -Nuar dc3dd-7.2.641.orig/lib/fseterr.c dc3dd-7.2.641/lib/fseterr.c --- dc3dd-7.2.641.orig/lib/fseterr.c 2012-11-06 23:42:58.000000000 +0200 +++ dc3dd-7.2.641/lib/fseterr.c 2018-10-26 08:47:51.209919605 +0300 @@ -29,7 +29,7 @@ /* Most systems provide FILE as a struct and the necessary bitmask in , because they need it for implementing getc() and putc() as fast macros. */ -#if defined _IO_ferror_unlocked || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Linux libc5 */ +#if defined _IO_EOF_SEEN || defined _IO_ferror_unlocked || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Linux libc5 */ fp->_flags |= _IO_ERR_SEEN; #elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ fp_->_flags |= __SERR; diff -Nuar dc3dd-7.2.641.orig/lib/stdio-impl.h dc3dd-7.2.641/lib/stdio-impl.h --- dc3dd-7.2.641.orig/lib/stdio-impl.h 2012-11-06 23:42:58.000000000 +0200 +++ dc3dd-7.2.641/lib/stdio-impl.h 2018-10-26 08:46:26.136291709 +0300 @@ -18,6 +18,12 @@ the same implementation of stdio extension API, except that some fields have different naming conventions, or their access requires some casts. */ +/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this + problem by defining it ourselves. FIXME: Do not rely on glibc + internals. */ +#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN +# define _IO_IN_BACKUP 0x100 +#endif /* BSD stdio derived implementations. */ ================================================ FILE: package/dc3dd/Config.in ================================================ config BR2_PACKAGE_DC3DD bool "dc3dd" depends on !BR2_RISCV_32 depends on !BR2_arc depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_TOOLCHAIN_USES_MUSL help dc3dd is a patch to the GNU dd program, this version has several features intended for forensic acquisition of data. Highlights include hashing on-the-fly, split output files, pattern writing, a progress meter, and file verification. https://sourceforge.net/projects/dc3dd/ comment "dc3dd needs a glibc or uClibc toolchain w/ threads" depends on !BR2_RISCV_32 depends on !BR2_arc depends on !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_TOOLCHAIN_USES_MUSL ================================================ FILE: package/dc3dd/dc3dd.hash ================================================ # From https://sourceforge.net/projects/dc3dd/files/dc3dd/7.2/ sha1 1bfe81a921a8473a6ecb46f328ecaab761afb55d dc3dd-7.2.641.tar.xz # Locally computed sha256 7f50aadc38649845ab11014d11013928411c9d2128c941e9630939d4c28cae6d dc3dd-7.2.641.tar.xz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/dc3dd/dc3dd.mk ================================================ ################################################################################ # # dc3dd # ################################################################################ DC3DD_VERSION_MAJOR = 7.2 DC3DD_VERSION = $(DC3DD_VERSION_MAJOR).641 DC3DD_SOURCE = dc3dd-$(DC3DD_VERSION).tar.xz DC3DD_SITE = https://downloads.sourceforge.net/project/dc3dd/dc3dd/$(DC3DD_VERSION_MAJOR) DC3DD_LICENSE = GPL-3.0+ DC3DD_LICENSE_FILES = COPYING # We are patching Makefile.am, so we need to autoreconf. We also need to # enable gettextize as dc3dd comes with an old gettext infra. DC3DD_AUTORECONF = YES DC3DD_GETTEXTIZE = YES $(eval $(autotools-package)) ================================================ FILE: package/dcron/0001-main.c-add-newline-to-logfile-openning-error-message.patch ================================================ From 2710bc67cd920323da9b23a3d60193577bd43d71 Mon Sep 17 00:00:00 2001 From: Carlos Santos Date: Sat, 20 Jul 2019 00:27:31 -0300 Subject: [PATCH] main.c: add newline to logfile openning error message Signed-off-by: Carlos Santos [Upstream status: https://github.com/dubiousjim/dcron/pull/22] --- main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.c b/main.c index 0eba280..2606db8 100644 --- a/main.c +++ b/main.c @@ -261,7 +261,7 @@ main(int ac, char **av) dup2(fd, 2); } else { int n = errno; - fdprintf(2, "failed to open logfile '%s', reason: %s", LogFile, strerror(n)); + fdprintf(2, "failed to open logfile '%s', reason: %s\n", LogFile, strerror(n)); exit(n); } } -- 2.18.1 ================================================ FILE: package/dcron/Config.in ================================================ 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 individual crontab files and executes commands on behalf of the users in question. Upon installation, this package will enable a system level cron daemon with hourly, daily, weekly and monthly crontabs. However, it doesn't allow non root users to create their own crontab file. This is because /var/spool/cron/crontabs is non user writable. Typically, a crontab group is created on the system and users allowed to create crontab entries are added into this group, while crontab executable is owned by root:crontab with sgid bit enabled. http://www.jimpryor.net/linux/dcron.html ================================================ FILE: package/dcron/S90dcron ================================================ #!/bin/sh case "$1" in start) printf "Starting cron ... " start-stop-daemon -S -q -m -b -p /var/run/dcron.pid --exec /usr/sbin/crond -- -f echo "done." ;; stop) printf "Stopping cron ..." start-stop-daemon -K -q -p /var/run/dcron.pid echo "done." ;; restart) $0 stop sleep 1 $0 start ;; *) echo "usage: $0 {start|stop|restart}" ;; esac ================================================ FILE: package/dcron/dcron.hash ================================================ # Locally calculated sha256 5a53930ba27b57c06c3b03635788cf569990283bde8ea9c1ee820e13f988288d dcron-1ba33c3325df48de46263276a43ed76cf9d81518.tar.gz sha256 640d90f6ee401241ff62834d0d1b33f83049e99b8bfdfa04ed1b0a1635dde3e7 COPYING ================================================ FILE: package/dcron/dcron.mk ================================================ ################################################################################ # # dcron # ################################################################################ DCRON_VERSION = 1ba33c3325df48de46263276a43ed76cf9d81518 DCRON_SITE = $(call github,dubiousjim,dcron,$(DCRON_VERSION)) DCRON_LICENSE = GPL-2.0+ DCRON_LICENSE_FILES = COPYING define DCRON_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) endef define DCRON_INSTALL_TARGET_CMDS $(INSTALL) -D -m0700 $(@D)/crond $(TARGET_DIR)/usr/sbin/crond $(INSTALL) -D -m4755 $(@D)/crontab $(TARGET_DIR)/usr/bin/crontab $(INSTALL) -D -m0644 $(@D)/extra/root.crontab $(TARGET_DIR)/etc/cron.d/system # 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 endef define DCRON_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/dcron/S90dcron $(TARGET_DIR)/etc/init.d/S90dcron endef define DCRON_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/dcron/dcron.service \ $(TARGET_DIR)/usr/lib/systemd/system/dcron.service endef $(eval $(generic-package)) ================================================ FILE: package/dcron/dcron.service ================================================ [Unit] Description=Task scheduler daemon After=syslog.target [Service] ExecStart=/usr/sbin/crond -S Type=forking [Install] WantedBy=multi-user.target ================================================ FILE: package/ddrescue/Config.in ================================================ config BR2_PACKAGE_DDRESCUE bool "ddrescue" depends on BR2_INSTALL_LIBSTDCPP help GNU ddrescue is a data recovery tool. It copies data from one file or block device (hard disc, cdrom, etc) to another, trying to rescue the good parts first in case of read errors. http://www.gnu.org/software/ddrescue/ddrescue.html comment "ddrescue needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/ddrescue/ddrescue.hash ================================================ # From https://lists.gnu.org/archive/html/info-gnu/2020-03/msg00002.html sha256 ce538ebd26a09f45da67d3ad3f7431932428231ceec7a2d255f716fa231a1063 ddrescue-1.25.tar.lz # Locally computed sha256 3d77c1a58fbde5ddba612d1fe09965e20a3804953eca12e8c1892298bb8a5eef COPYING ================================================ FILE: package/ddrescue/ddrescue.mk ================================================ ################################################################################ # # ddrescue # ################################################################################ DDRESCUE_VERSION = 1.25 DDRESCUE_SOURCE = ddrescue-$(DDRESCUE_VERSION).tar.lz DDRESCUE_SITE = http://download.savannah.gnu.org/releases/ddrescue DDRESCUE_LICENSE = GPL-2.0+ DDRESCUE_LICENSE_FILES = COPYING define DDRESCUE_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_MAKE_ENV) ./configure \ --prefix=/usr \ $(TARGET_CONFIGURE_OPTS) \ ) endef DDRESCUE_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) DDRESCUE_CXXFLAGS += -O0 endif define DDRESCUE_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CXXFLAGS="$(DDRESCUE_CXXFLAGS)" -C $(@D) endef define DDRESCUE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" install endef $(eval $(generic-package)) ================================================ FILE: package/debianutils/Config.in ================================================ 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. The specific utilities included are: add-shell installkernel ischroot remove-shell run-parts savelog tempfile which. https://tracker.debian.org/pkg/debianutils ================================================ FILE: package/debianutils/debianutils.hash ================================================ # From http://snapshot.debian.org/archive/debian/20200525T145753Z/pool/main/d/debianutils/debianutils_4.11.dsc sha256 bb5ce6290696b0d623377521ed217f484aa98f7346c5f7c48f9ae3e1acfb7151 debianutils_4.11.tar.xz # Locally calculated sha256 3c8b5112cb8f74ba959233291908d73f527afa6f1d96f93649aeb912b5884567 debian/copyright ================================================ FILE: package/debianutils/debianutils.mk ================================================ ################################################################################ # # debianutils # ################################################################################ DEBIANUTILS_VERSION = 4.11 DEBIANUTILS_SOURCE = debianutils_$(DEBIANUTILS_VERSION).tar.xz DEBIANUTILS_SITE = http://snapshot.debian.org/archive/debian/20200525T145753Z/pool/main/d/debianutils DEBIANUTILS_CONF_OPTS = --exec-prefix=/ DEBIANUTILS_LICENSE = GPL-2.0+, SMAIL (savelog) DEBIANUTILS_LICENSE_FILES = debian/copyright $(eval $(autotools-package)) ================================================ FILE: package/dehydrated/Config.in ================================================ config BR2_PACKAGE_DEHYDRATED bool "dehydrated" depends on BR2_USE_MMU # bash select BR2_PACKAGE_BASH select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBCURL_CURL select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_BIN if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBRESSL_BIN if BR2_PACKAGE_LIBRESSL help Dehydrated is a client for signing certificates with an ACME-server (e.g. Let's Encrypt) implemented as a relatively simple (zsh-compatible) bash-script. This client supports both ACME v1 and the new ACME v2 including support for wildcard certificates! To use this script in Buildroot: - Create /etc/dehydrated/domains.txt - Make sure that "dehydrated -c" is called regularly, e.g. from cron. - Make sure /etc/dehydrated is writable. - Configure the webserver to export the WELLKNOWN directory (/var/www/dehydrated) as /.well-known/acme-challenge - Configure the webserver to use the certificates under /etc/dehydrated/certs/ - Register a HOOK to reload the webserver after the certificates have been renewed. You probably need to install a custom /etc/dehydrated/config with the rootfs overlay. https://github.com/lukas2511/dehydrated ================================================ FILE: package/dehydrated/dehydrated.hash ================================================ # Locally computed after verifying # https://github.com/lukas2511/dehydrated/releases/download/v0.6.5/dehydrated-0.6.5.tar.gz.asc # with key 3C2F2605E078A1E18F4793909C4DBE6CF438F333 from https://keybase.io/lukas2511 sha256 10aabd0027450bc70a18e49acaca7a9697e0cfb92368d3e508b7a4d6d69bfa35 dehydrated-0.6.5.tar.gz # License, locally computed sha256 b4583b7dd07e3e2a08906de38e7e329d41f921ed9dcb6310b3886e013a6b8723 LICENSE ================================================ FILE: package/dehydrated/dehydrated.mk ================================================ ################################################################################ # # dehydrated # ################################################################################ DEHYDRATED_VERSION = 0.6.5 DEHYDRATED_SITE = https://github.com/lukas2511/dehydrated/releases/download/v$(DEHYDRATED_VERSION) DEHYDRATED_LICENSE = MIT DEHYDRATED_LICENSE_FILES = LICENSE define DEHYDRATED_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/dehydrated $(TARGET_DIR)/usr/bin/dehydrated $(INSTALL) -D -m 0644 $(@D)/docs/examples/config $(TARGET_DIR)/etc/dehydrated/config endef $(eval $(generic-package)) ================================================ FILE: package/dejavu/Config.in ================================================ config BR2_PACKAGE_DEJAVU bool "DejaVu fonts" help The DejaVu fonts are a font family based on the Vera Fonts. Its purpose is to provide a wider range of characters while maintaining the original look and feel through the process of collaborative development, under a Free license. http://dejavu-fonts.org if BR2_PACKAGE_DEJAVU config BR2_PACKAGE_DEJAVU_MONO bool "mono fonts" default y config BR2_PACKAGE_DEJAVU_SANS bool "sans fonts" default y config BR2_PACKAGE_DEJAVU_SERIF bool "serif fonts" default y config BR2_PACKAGE_DEJAVU_SANS_CONDENSED bool "sans condensed fonts" default y config BR2_PACKAGE_DEJAVU_SERIF_CONDENSED bool "serif condensed fonts" default y endif ================================================ FILE: package/dejavu/dejavu.hash ================================================ # From https://dejavu-fonts.github.io/Download.html sha256 fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7 dejavu-fonts-ttf-2.37.tar.bz2 # locally computed sha256 7a083b136e64d064794c3419751e5c7dd10d2f64c108fe5ba161eae5e5958a93 LICENSE ================================================ FILE: package/dejavu/dejavu.mk ================================================ ################################################################################ # # dejavu # ################################################################################ DEJAVU_VERSION = 2.37 DEJAVU_SITE = https://sourceforge.net/projects/dejavu/files/dejavu/$(DEJAVU_VERSION) DEJAVU_SOURCE = dejavu-fonts-ttf-$(DEJAVU_VERSION).tar.bz2 DEJAVU_LICENSE_FILES = LICENSE DEJAVU_FONTS_INSTALL = DEJAVU_FONTCONFIG_CONF_INSTALL = ifeq ($(BR2_PACKAGE_DEJAVU_MONO),y) DEJAVU_FONTS_INSTALL += DejaVuSansMono*.ttf DEJAVU_FONTCONFIG_CONF_INSTALL += \ 20-unhint-small-dejavu-sans-mono.conf \ 57-dejavu-sans-mono.conf endif ifeq ($(BR2_PACKAGE_DEJAVU_SANS),y) DEJAVU_FONTS_INSTALL += DejaVuSans.ttf DejaVuSans-*.ttf DEJAVU_FONTCONFIG_CONF_INSTALL += \ 20-unhint-small-dejavu-sans.conf \ 57-dejavu-sans.conf endif ifeq ($(BR2_PACKAGE_DEJAVU_SERIF),y) DEJAVU_FONTS_INSTALL += DejaVuSerif.ttf DejaVuSerif-*.ttf DEJAVU_FONTCONFIG_CONF_INSTALL += \ 20-unhint-small-dejavu-serif.conf \ 57-dejavu-serif.conf endif ifeq ($(BR2_PACKAGE_DEJAVU_SANS_CONDENSED),y) DEJAVU_FONTS_INSTALL += DejaVuSansCondensed*.ttf endif ifeq ($(BR2_PACKAGE_DEJAVU_SERIF_CONDENSED),y) DEJAVU_FONTS_INSTALL += DejaVuSerifCondensed*.ttf endif ifeq ($(BR2_PACKAGE_FONTCONFIG),y) define DEJAVU_FONTCONFIG_CONF_INSTALL_CMDS for i in $(DEJAVU_FONTCONFIG_CONF_INSTALL) ; do \ $(INSTALL) -D -m 0644 $(@D)/fontconfig/$$i \ $(TARGET_DIR)/usr/share/fontconfig/conf.avail/$$i || exit 1 ; \ done endef endif define DEJAVU_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/share/fonts/dejavu/ for i in $(DEJAVU_FONTS_INSTALL) ; do \ $(INSTALL) -m 0644 $(@D)/ttf/$$i \ $(TARGET_DIR)/usr/share/fonts/dejavu/ || exit 1 ; \ done $(DEJAVU_FONTCONFIG_CONF_INSTALL_CMDS) endef $(eval $(generic-package)) ================================================ FILE: package/delve/Config.in ================================================ # Supported architectures are listed in # pkg/proc/native/support_sentinel.go config BR2_PACKAGE_DELVE_ARCH_SUPPORTS bool default y if BR2_aarch64 default y if BR2_i386 default y if BR2_x86_64 depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS config BR2_PACKAGE_DELVE bool "delve" depends on BR2_PACKAGE_DELVE_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS help Delve is a debugger for the Go programming language. https://github.com/go-delve/delve comment "delve needs a toolchain w/ threads" depends on BR2_PACKAGE_DELVE_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/delve/delve.hash ================================================ # Locally calculated sha256 e73f7fc063632268d3bdf53486aeafd98cceb8f86f4af56903dedfebaefe690d delve-1.6.1.tar.gz sha256 778864b990007e8cef6633f8c372dd05bac1fada6cf67b008afb1483f83b38f5 LICENSE ================================================ FILE: package/delve/delve.mk ================================================ ################################################################################ # # delve # ################################################################################ DELVE_VERSION = 1.6.1 DELVE_SITE = $(call github,go-delve,delve,v$(DELVE_VERSION)) DELVE_LICENSE = MIT DELVE_LICENSE_FILES = LICENSE DELVE_DEPENDENCIES = host-pkgconf DELVE_TAGS = cgo DELVE_BUILD_TARGETS = cmd/dlv DELVE_INSTALL_BINS = $(notdir $(DELVE_BUILD_TARGETS)) $(eval $(golang-package)) ================================================ FILE: package/desktop-file-utils/desktop-file-utils.hash ================================================ # Locally calculated: sha256 b26dbde79ea72c8c84fb7f9d870ffd857381d049a86d25e0038c4cef4c747309 desktop-file-utils-0.26.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/desktop-file-utils/desktop-file-utils.mk ================================================ ################################################################################ # # desktop-file-utils # ################################################################################ DESKTOP_FILE_UTILS_VERSION = 0.26 DESKTOP_FILE_UTILS_SOURCE = desktop-file-utils-$(DESKTOP_FILE_UTILS_VERSION).tar.xz DESKTOP_FILE_UTILS_SITE = https://www.freedesktop.org/software/desktop-file-utils/releases DESKTOP_FILE_UTILS_LICENSE = GPL-2.0+ DESKTOP_FILE_UTILS_LICENSE_FILES = COPYING HOST_DESKTOP_FILE_UTILS_DEPENDENCIES = host-libglib2 $(eval $(host-meson-package)) ================================================ FILE: package/dfu-util/Config.in ================================================ config BR2_PACKAGE_DFU_UTIL bool "dfu-util" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Dfu-util is the host side implementation of the DFU 1.0 and DFU 1.1 specification of the USB forum. DFU is intended to download and upload firmware to devices connected over USB. http://dfu-util.sourceforge.net/ comment "dfu-util needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/dfu-util/Config.in.host ================================================ config BR2_PACKAGE_HOST_DFU_UTIL bool "host dfu-util" depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb help Dfu-util is the host side implementation of the DFU 1.0 and DFU 1.1 specification of the USB forum. DFU is intended to download and upload firmware to devices connected over USB. http://dfu-util.sourceforge.net/ comment "host dfu-util needs a toolchain w/ host gcc >= 4.9" depends on !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/dfu-util/dfu-util.hash ================================================ # From http://dfu-util.sourceforge.net/releases/dfu-util-0.11.tar.gz.md5 md5 31c983543a1fe8f03260ca4d56ad4f43 dfu-util-0.11.tar.gz # Locally computed sha256 b4b53ba21a82ef7e3d4c47df2952adf5fa494f499b6b0b57c58c5d04ae8ff19e dfu-util-0.11.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/dfu-util/dfu-util.mk ================================================ ################################################################################ # # dfu-util # ################################################################################ DFU_UTIL_VERSION = 0.11 DFU_UTIL_SITE = http://dfu-util.sourceforge.net/releases DFU_UTIL_LICENSE = GPL-2.0+, LGPL-3.0 DFU_UTIL_LICENSE_FILES = COPYING DFU_UTIL_DEPENDENCIES = libusb HOST_DFU_UTIL_DEPENDENCIES = host-libusb $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/dhcp/0001-WIP-Resolve-ISC-DHCP-does-not-build-with-gcc10.patch ================================================ From 129b7e402bd6e7278854e5a8935fce460552b5f4 Mon Sep 17 00:00:00 2001 From: Thomas Markwalder Date: Thu, 30 Jul 2020 10:01:36 -0400 Subject: [PATCH] [#117] Fixed gcc 10 compilation issues client/dhclient.c relay/dhcrelay.c extern'ed local_port,remote_port common/discover.c init local_port,remote_port to 0 server/mdb.c extern'ed dhcp_type_host server/mdb6.c create_prefix6() - eliminated memcpy string overflow error [Retrieved from: https://gitlab.isc.org/isc-projects/dhcp/-/merge_requests/60/diffs?commit_id=129b7e402bd6e7278854e5a8935fce460552b5f4] Signed-off-by: Fabrice Fontaine --- RELNOTES | 5 +++++ client/dhclient.c | 5 +++-- common/discover.c | 4 ++-- relay/dhcrelay.c | 4 ++-- server/mdb.c | 2 +- server/mdb6.c | 2 +- 6 files changed, 14 insertions(+), 8 deletions(-) diff --git a/RELNOTES b/RELNOTES index 9d0a0414..6919dba7 100644 --- a/RELNOTES +++ b/RELNOTES @@ -103,6 +103,11 @@ ISC DHCP is open source software maintained by Internet Systems Consortium. This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). + Changes since 4.4.2 (Bug Fixes) + +- Minor corrections to allow compilation under gcc 10. + [Gitlab #117] + Changes since 4.4.2b1 (Bug Fixes) - Added a clarification on DHCPINFORMs and server authority to diff --git a/client/dhclient.c b/client/dhclient.c index 189e5270..7a7837cb 100644 --- a/client/dhclient.c +++ b/client/dhclient.c @@ -83,8 +83,9 @@ static const char message [] = "Internet Systems Consortium DHCP Client"; static const char url [] = "For info, please visit https://www.isc.org/software/dhcp/"; #endif /* UNIT_TEST */ -u_int16_t local_port = 0; -u_int16_t remote_port = 0; +extern u_int16_t local_port; +extern u_int16_t remote_port; + #if defined(DHCPv6) && defined(DHCP4o6) int dhcp4o6_state = -1; /* -1 = stopped, 0 = polling, 1 = started */ #endif diff --git a/common/discover.c b/common/discover.c index ca4f4d55..22f09767 100644 --- a/common/discover.c +++ b/common/discover.c @@ -45,8 +45,8 @@ struct interface_info *fallback_interface = 0; int interfaces_invalidated; int quiet_interface_discovery; -u_int16_t local_port; -u_int16_t remote_port; +u_int16_t local_port = 0; +u_int16_t remote_port = 0; u_int16_t relay_port = 0; int dhcpv4_over_dhcpv6 = 0; int (*dhcp_interface_setup_hook) (struct interface_info *, struct iaddr *); diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c index 883d5058..7211e3bb 100644 --- a/relay/dhcrelay.c +++ b/relay/dhcrelay.c @@ -95,8 +95,8 @@ enum { forward_and_append, /* Forward and append our own relay option. */ forward_untouched, /* Forward without changes. */ discard } agent_relay_mode = forward_and_replace; -u_int16_t local_port; -u_int16_t remote_port; +extern u_int16_t local_port; +extern u_int16_t remote_port; /* Relay agent server list. */ struct server_list { diff --git a/server/mdb.c b/server/mdb.c index ff8a707f..8266d764 100644 --- a/server/mdb.c +++ b/server/mdb.c @@ -67,7 +67,7 @@ static host_id_info_t *host_id_info = NULL; int numclasseswritten; -omapi_object_type_t *dhcp_type_host; +extern omapi_object_type_t *dhcp_type_host; isc_result_t enter_class(cd, dynamicp, commit) struct class *cd; diff --git a/server/mdb6.c b/server/mdb6.c index da7baf6e..ebe01e56 100644 --- a/server/mdb6.c +++ b/server/mdb6.c @@ -1945,7 +1945,7 @@ create_prefix6(struct ipv6_pool *pool, struct iasubopt **pref, } new_ds.data = new_ds.buffer->data; memcpy(new_ds.buffer->data, ds.data, ds.len); - memcpy(new_ds.buffer->data + ds.len, &tmp, sizeof(tmp)); + memcpy(&new_ds.buffer->data[0] + ds.len, &tmp, sizeof(tmp)); data_string_forget(&ds, MDL); data_string_copy(&ds, &new_ds, MDL); data_string_forget(&new_ds, MDL); -- GitLab ================================================ FILE: package/dhcp/Config.in ================================================ config BR2_PACKAGE_DHCP bool "dhcp (ISC)" # fork() depends on BR2_USE_MMU depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_BIND help DHCP relay agent from the ISC DHCP distribution. https://www.isc.org/downloads/dhcp/ if BR2_PACKAGE_DHCP config BR2_PACKAGE_DHCP_SERVER bool "dhcp server" select BR2_PACKAGE_SYSTEMD_TMPFILES if BR2_PACKAGE_SYSTEMD help DHCP server from the ISC DHCP distribution. This also installs omshell, an interactive tool to connect to, query, and possibly change, the server's state via the Object Management API (OMAPI). config BR2_PACKAGE_DHCP_SERVER_DELAYED_ACK bool "Enable delayed ACK feature" depends on BR2_PACKAGE_DHCP_SERVER help Enable delayed ACK feature in the ISC DHCP server. config BR2_PACKAGE_DHCP_RELAY bool "dhcp relay" help DHCP relay agent from the ISC DHCP distribution. config BR2_PACKAGE_DHCP_CLIENT bool "dhcp client" help DHCP client from the ISC DHCP distribution. endif ================================================ FILE: package/dhcp/S80dhcp-relay ================================================ #!/bin/sh # # $Id: dhcp3-relay,v 1.1 2004/04/16 15:41:08 ml Exp $ # # What servers should the DHCP relay forward requests to? # e.g: SERVERS="192.168.0.1" SERVERS="" # On what interfaces should the DHCP relay (dhrelay) serve DHCP requests? INTERFACES="" # Additional options that are passed to the DHCP relay daemon? OPTIONS="" # Read configuration variable file if it is present CFG_FILE="/etc/default/dhcrelay" [ -r "${CFG_FILE}" ] && . "${CFG_FILE}" # Sanity checks test -f /usr/sbin/dhcrelay || exit 0 test -n "$INTERFACES" || exit 0 test -n "$SERVERS" || exit 0 # Build command line for interfaces (will be passed to dhrelay below.) IFCMD="" for I in $INTERFACES; do IFCMD=${IFCMD}"-i "${I}" " done DHCRELAYPID=/var/run/dhcrelay.pid case "$1" in start) printf "Starting DHCP relay: " start-stop-daemon -S -q -x /usr/sbin/dhcrelay -- -q $OPTIONS $IFCMD $SERVERS [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping DHCP relay: " start-stop-daemon -K -q -x /usr/sbin/dhcrelay [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart | force-reload) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart|force-reload}" exit 1 esac exit 0 ================================================ FILE: package/dhcp/S80dhcp-server ================================================ #!/bin/sh # # $Id: dhcp3-server.init.d,v 1.4 2003/07/13 19:12:41 mdz Exp $ # # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACES="" # Additional options that are passed to the DHCP server daemon? OPTIONS="" NAME="dhcpd" DAEMON="/usr/sbin/${NAME}" CFG_FILE="/etc/default/${NAME}" # Read configuration variable file if it is present [ -r "${CFG_FILE}" ] && . "${CFG_FILE}" # Sanity checks test -f /usr/sbin/dhcpd || exit 0 test -f /etc/dhcp/dhcpd.conf || exit 0 case "$1" in start) printf "Starting DHCP server: " test -d /var/lib/dhcp/ || mkdir -p /var/lib/dhcp/ test -f /var/lib/dhcp/dhcpd.leases || touch /var/lib/dhcp/dhcpd.leases start-stop-daemon -S -q -x ${DAEMON} -- -q $OPTIONS $INTERFACES [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping DHCP server: " start-stop-daemon -K -q -x ${DAEMON} [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart | force-reload) $0 stop $0 start if [ "$?" != "0" ]; then exit 1 fi ;; *) echo "Usage: $0 {start|stop|restart|force-reload}" exit 1 esac exit 0 ================================================ FILE: package/dhcp/dhclient-script ================================================ #!/bin/sh # dhclient-script from OpenWRT project # http://git.openwrt.org/?p=packages.git;a=blob;f=net/isc-dhcp/files/dhclient-script;h=4afebc0ad20ebac51c5baae5ed01c6713e3a0fd0;hb=HEAD make_resolv_conf() { if [ x"$new_domain_name_servers" != x ]; then cat /dev/null > /etc/resolv.conf.dhclient chmod 644 /etc/resolv.conf.dhclient if [ x"$new_domain_search" != x ]; then echo search $new_domain_search >> /etc/resolv.conf.dhclient elif [ x"$new_domain_name" != x ]; then # Note that the DHCP 'Domain Name Option' is really just a domain # name, and that this practice of using the domain name option as # a search path is both nonstandard and deprecated. echo search $new_domain_name >> /etc/resolv.conf.dhclient fi for nameserver in $new_domain_name_servers; do echo nameserver $nameserver >>/etc/resolv.conf.dhclient done elif [ "x${new_dhcp6_name_servers}" != x ] ; then cat /dev/null > /etc/resolv.conf.dhclient6 chmod 644 /etc/resolv.conf.dhclient6 if [ "x${new_dhcp6_domain_search}" != x ] ; then echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6 fi for nameserver in ${new_dhcp6_name_servers} ; do echo nameserver ${nameserver} >> /etc/resolv.conf.dhclient6 done fi # if both v4 and v6 clients are running, concatenate results cat /etc/resolv.conf.* > /etc/resolv.conf } # Must be used on exit. Invokes the local dhcp client exit hooks, if any. exit_with_hooks() { exit_status=$1 if [ -f /etc/dhclient-exit-hooks ]; then . /etc/dhclient-exit-hooks fi # probably should do something with exit status of the local script exit $exit_status } # Invoke the local dhcp client enter hooks, if they exist. if [ -f /etc/dhclient-enter-hooks ]; then exit_status=0 . /etc/dhclient-enter-hooks # allow the local script to abort processing of this state # local script must set exit_status variable to nonzero. if [ $exit_status -ne 0 ]; then exit $exit_status fi fi ### ### DHCPv4 Handlers ### if [ x$new_broadcast_address != x ]; then new_broadcast_arg="broadcast $new_broadcast_address" fi if [ x$new_subnet_mask != x ]; then new_subnet_arg="netmask $new_subnet_mask" fi if [ x$alias_subnet_mask != x ]; then alias_subnet_arg="netmask $alias_subnet_mask" fi if [ x$reason = xMEDIUM ]; then # Linux doesn't do mediums (ok, ok, media). exit_with_hooks 0 fi if [ x$reason = xPREINIT ]; then if [ x$alias_ip_address != x ]; then # Bring down alias interface. Its routes will disappear too. ifconfig $interface:0- 0.0.0.0 fi ifconfig $interface 0.0.0.0 up # We need to give the kernel some time to get the interface up. sleep 1 exit_with_hooks 0 fi if [ x$reason = xARPCHECK ] || [ x$reason = xARPSEND ]; then exit_with_hooks 0 fi if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \ [ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then current_hostname=`hostname` if [ x$current_hostname = x ] || \ [ x$current_hostname = x$old_host_name ]; then if [ x$current_hostname = x ] || \ [ x$new_host_name != x$old_host_name ]; then hostname $new_host_name fi fi if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \ [ x$alias_ip_address != x$old_ip_address ]; then # Possible new alias. Remove old alias. ifconfig $interface:0- 0.0.0.0 fi if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then # IP address changed. Bringing down the interface will delete all routes, # and clear the ARP cache. ifconfig $interface 0.0.0.0 down fi if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then ifconfig $interface $new_ip_address $new_subnet_arg \ $new_broadcast_arg for router in $new_routers; do if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then route add -host $router dev $interface fi route add default gw $router done fi if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ]; then ifconfig $interface:0- 0.0.0.0 ifconfig $interface:0 $alias_ip_address $alias_subnet_arg route add -host $alias_ip_address $interface:0 fi make_resolv_conf exit_with_hooks 0 fi if [ x$reason = xEXPIRE ] || [ x$reason = xFAIL ] || [ x$reason = xRELEASE ] \ || [ x$reason = xSTOP ]; then if [ x$alias_ip_address != x ]; then # Turn off alias interface. ifconfig $interface:0- 0.0.0.0 fi if [ x$old_ip_address != x ]; then # Shut down interface, which will delete routes and clear arp cache. ifconfig $interface 0.0.0.0 down fi if [ x$alias_ip_address != x ]; then ifconfig $interface:0 $alias_ip_address $alias_subnet_arg route add -host $alias_ip_address $interface:0 fi # remove v4 dns configuration for this interface rm /etc/resolv.conf.dhclient cat /etc/resolv.conf.* > /etc/resolv.conf exit_with_hooks 0 fi if [ x$reason = xTIMEOUT ]; then if [ x$alias_ip_address != x ]; then ifconfig $interface:0- 0.0.0.0 fi ifconfig $interface $new_ip_address $new_subnet_arg \ $new_broadcast_arg set $new_routers if ping -q -c 1 $1; then if [ x$new_ip_address != x$alias_ip_address ] && \ [ x$alias_ip_address != x ]; then ifconfig $interface:0 $alias_ip_address $alias_subnet_arg route add -host $alias_ip_address dev $interface:0 fi for router in $new_routers; do if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then route add -host $router dev $interface fi route add default gw $router done make_resolv_conf exit_with_hooks 0 fi ifconfig $interface 0.0.0.0 down exit_with_hooks 1 fi ### ### DHCPv6 Handlers ### if [ x$reason = xPREINIT6 ]; then # Ensure interface is up. ifconfig ${interface} up # Remove any stale addresses from aborted clients. ip -f inet6 addr flush dev ${interface} scope global exit_with_hooks 0 fi if [ x${old_ip6_prefix} != x ] || [ x${new_ip6_prefix} != x ] ; then echo Prefix ${reason} old=${old_ip6_prefix} new=${new_ip6_prefix} exit_with_hooks 0 fi if [ x$reason = xBOUND6 ]; then if [ x${new_ip6_address} = x ] || [ x${new_ip6_prefixlen} = x ] ; then exit_with_hooks 2; fi ifconfig ${interface} add ${new_ip6_address}/${new_ip6_prefixlen} # Check for nameserver options. make_resolv_conf ### << # Set up softwire tunnel if [ x${new_dhcp6_softwire} != x ] ; then /etc/init.d/dhclient stop ifconfig ${interface} 0.0.0.0 ip -6 tunnel add tun0 mode ipip6 \ remote ${new_dhcp6_softwire} \ local ${new_ip6_address} \ dev ${interface} encaplimit none ip link set tun0 up ip route add default dev tun0 fi ### >> exit_with_hooks 0 fi if [ x$reason = xRENEW6 ] || [ x$reason = xREBIND6 ]; then if [ x${new_ip6_address} = x ] || [ x${new_ip6_prefixlen} = x ] ; then exit_with_hooks 2; fi ifconfig ${interface} add ${new_ip6_address}/${new_ip6_prefixlen} # Make sure nothing has moved around on us. # Nameservers/domains/etc. if [ "x${new_dhcp6_name_servers}" != "x${old_dhcp6_name_servers}" ] || [ "x${new_dhcp6_domain_search}" != "x${old_dhcp6_domain_search}" ] ; then make_resolv_conf fi exit_with_hooks 0 fi if [ x$reason = xDEPREF6 ]; then if [ x${new_ip6_address} = x ] ; then exit_with_hooks 2; fi # Busybox ifconfig has no way to communicate this to the kernel, so ignore it exit_with_hooks 0 fi if [ x$reason = xEXPIRE6 -o x$reason = xRELEASE6 -o x$reason = xSTOP6 ]; then if [ x${old_ip6_address} = x ] || [ x${old_ip6_prefixlen} = x ] ; then exit_with_hooks 2; fi ifconfig ${interface} del ${old_ip6_address}/${old_ip6_prefixlen} # remove v6 dns configuration for this interface rm /etc/resolv.conf.dhclient6 cat /etc/resolv.conf.* > /etc/resolv.conf ### << # Tear down softwire tunnel if [ x${old_dhcp6_softwire} != x ] ; then ip link set tun0 down ip tunnel del tun0 fi ### >> exit_with_hooks 0 fi exit_with_hooks 0 ================================================ FILE: package/dhcp/dhclient.conf ================================================ # Configuration file for /sbin/dhclient, which is included in Debian's # dhcp3-client package. # # This is a sample configuration file for dhclient. See dhclient.conf's # man page for more information about the syntax of this file # and a more comprehensive list of the parameters understood by # dhclient. # # Normally, if the DHCP server provides reasonable information and does # not leave anything out (like the domain name, for example), then # few changes must be made to this file, if any. # #send host-name "andare.fugue.com"; #send dhcp-client-identifier 1:0:a0:24:ab:fb:9c; #send dhcp-lease-time 3600; #supersede domain-name "fugue.com home.vix.com"; #prepend domain-name-servers 127.0.0.1; request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope; #require subnet-mask, domain-name-servers; #timeout 60; #retry 60; #reboot 10; #select-timeout 5; #initial-interval 2; #script "/etc/dhcp3/dhclient-script"; #media "-link0 -link1 -link2", "link0 link1"; #reject 192.33.137.209; #alias { # interface "eth0"; # fixed-address 192.5.5.213; # option subnet-mask 255.255.255.255; #} #lease { # interface "eth0"; # fixed-address 192.33.137.200; # medium "link0 link1"; # option host-name "andare.swiftmedia.com"; # option subnet-mask 255.255.255.0; # option broadcast-address 192.33.137.255; # option routers 192.33.137.250; # option domain-name-servers 127.0.0.1; # renew 2 2000/1/12 00:00:01; # rebind 2 2000/1/12 00:00:01; # expire 2 2000/1/12 00:00:01; #} ================================================ FILE: package/dhcp/dhcp.hash ================================================ # Verified from https://ftp.isc.org/isc/dhcp/4.4.2-P1/dhcp-4.4.2-P1.tar.gz.sha256.asc sha256 b05e04337539545a8faa0d6ac518defc61a07e5aec66a857f455e7f218c85a1a dhcp-4.4.2-P1.tar.gz # Locally calculated sha256 9961fce0d83a6229b9084cdadedfa723a53274c63af610c9adb61b607e0f5a76 LICENSE ================================================ FILE: package/dhcp/dhcp.mk ================================================ ################################################################################ # # dhcp # ################################################################################ DHCP_VERSION = 4.4.2-P1 DHCP_SITE = http://ftp.isc.org/isc/dhcp/$(DHCP_VERSION) DHCP_INSTALL_STAGING = YES DHCP_LICENSE = MPL-2.0 DHCP_LICENSE_FILES = LICENSE DHCP_DEPENDENCIES = bind host-gawk DHCP_CPE_ID_VENDOR = isc # use libtool-enabled configure.ac define DHCP_LIBTOOL_AUTORECONF cp $(@D)/configure.ac+lt $(@D)/configure.ac endef DHCP_CONF_ENV = \ CPPFLAGS='-D_PATH_DHCPD_CONF=\"/etc/dhcp/dhcpd.conf\" \ -D_PATH_DHCLIENT_CONF=\"/etc/dhcp/dhclient.conf\"' \ CFLAGS='$(TARGET_CFLAGS) -DISC_CHECK_NONE=1' DHCP_CONF_ENV += ac_cv_prog_AWK=$(HOST_DIR)/bin/gawk DHCP_CONF_OPTS = \ --with-libbind=$(STAGING_DIR)/usr \ --with-randomdev=/dev/random \ --with-srv-lease-file=/var/lib/dhcp/dhcpd.leases \ --with-srv6-lease-file=/var/lib/dhcp/dhcpd6.leases \ --with-cli-lease-file=/var/lib/dhcp/dhclient.leases \ --with-cli6-lease-file=/var/lib/dhcp/dhclient6.leases \ --with-srv-pid-file=/var/run/dhcpd.pid \ --with-srv6-pid-file=/var/run/dhcpd6.pid \ --with-cli-pid-file=/var/run/dhclient.pid \ --with-cli6-pid-file=/var/run/dhclient6.pid \ --with-relay-pid-file=/var/run/dhcrelay.pid \ --with-relay6-pid-file=/var/run/dhcrelay6.pid ifeq ($(BR2_STATIC_LIBS),y) DHCP_CONF_ENV += LIBS="`$(STAGING_DIR)/usr/bin/bind9-config --libs bind9`" DHCP_CONF_OPTS += --disable-libtool else DHCP_POST_EXTRACT_HOOKS += DHCP_LIBTOOL_AUTORECONF DHCP_AUTORECONF = YES DHCP_CONF_OPTS += --enable-libtool endif ifeq ($(BR2_PACKAGE_DHCP_SERVER_DELAYED_ACK),y) DHCP_CONF_OPTS += --enable-delayed-ack endif define DHCP_INSTALL_LIBS $(MAKE) -C $(@D)/common install-exec DESTDIR=$(TARGET_DIR) $(MAKE) -C $(@D)/omapip install-exec DESTDIR=$(TARGET_DIR) endef ifeq ($(BR2_PACKAGE_DHCP_SERVER),y) define DHCP_INSTALL_CTL_LIBS $(MAKE) -C $(@D)/dhcpctl install-exec DESTDIR=$(TARGET_DIR) endef define DHCP_INSTALL_SERVER mkdir -p $(TARGET_DIR)/var/lib (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp) $(MAKE) -C $(@D)/server DESTDIR=$(TARGET_DIR) install-sbinPROGRAMS $(INSTALL) -m 0644 -D package/dhcp/dhcpd.conf \ $(TARGET_DIR)/etc/dhcp/dhcpd.conf endef endif ifeq ($(BR2_PACKAGE_DHCP_RELAY),y) define DHCP_INSTALL_RELAY mkdir -p $(TARGET_DIR)/var/lib (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp) $(MAKE) -C $(@D)/relay DESTDIR=$(TARGET_DIR) install-sbinPROGRAMS endef endif ifeq ($(BR2_PACKAGE_DHCP_CLIENT),y) define DHCP_INSTALL_CLIENT mkdir -p $(TARGET_DIR)/var/lib (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp) $(MAKE) -C $(@D)/client DESTDIR=$(TARGET_DIR) sbindir=/sbin \ install-sbinPROGRAMS $(INSTALL) -m 0644 -D package/dhcp/dhclient.conf \ $(TARGET_DIR)/etc/dhcp/dhclient.conf $(INSTALL) -m 0755 -D package/dhcp/dhclient-script \ $(TARGET_DIR)/sbin/dhclient-script endef endif # Options don't matter, scripts won't start if binaries aren't there define DHCP_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/dhcp/S80dhcp-server \ $(TARGET_DIR)/etc/init.d/S80dhcp-server $(INSTALL) -m 0755 -D package/dhcp/S80dhcp-relay \ $(TARGET_DIR)/etc/init.d/S80dhcp-relay endef ifeq ($(BR2_PACKAGE_DHCP_SERVER),y) define DHCP_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/dhcp/dhcpd.service \ $(TARGET_DIR)/usr/lib/systemd/system/dhcpd.service mkdir -p $(TARGET_DIR)/usr/lib/tmpfiles.d echo "d /var/lib/dhcp 0755 - - - -" > \ $(TARGET_DIR)/usr/lib/tmpfiles.d/dhcpd.conf echo "f /var/lib/dhcp/dhcpd.leases - - - - -" >> \ $(TARGET_DIR)/usr/lib/tmpfiles.d/dhcpd.conf endef endif define DHCP_INSTALL_TARGET_CMDS $(DHCP_INSTALL_LIBS) $(DHCP_INSTALL_CTL_LIBS) $(DHCP_INSTALL_RELAY) $(DHCP_INSTALL_SERVER) $(DHCP_INSTALL_CLIENT) endef $(eval $(autotools-package)) ================================================ FILE: package/dhcp/dhcpd.conf ================================================ # # Sample configuration file for ISC dhcpd for Debian # # $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $ # # The ddns-updates-style parameter controls whether or not the server will # attempt to do a DNS update when a lease is confirmed. We default to the # behavior of the version 2 packages ('none', since DHCP v2 didn't # have support for DDNS.) ddns-update-style none; # option definitions common to all supported networks... option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; default-lease-time 600; max-lease-time 7200; # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. #authoritative; # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7; # No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology. #subnet 10.152.187.0 netmask 255.255.255.0 { #} # This is a very basic subnet declaration. #subnet 10.254.239.0 netmask 255.255.255.224 { # range 10.254.239.10 10.254.239.20; # option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; #} # This declaration allows BOOTP clients to get dynamic addresses, # which we don't really recommend. #subnet 10.254.239.32 netmask 255.255.255.224 { # range dynamic-bootp 10.254.239.40 10.254.239.60; # option broadcast-address 10.254.239.31; # option routers rtr-239-32-1.example.org; #} # A slightly different configuration for an internal subnet. #subnet 10.5.5.0 netmask 255.255.255.224 { # range 10.5.5.26 10.5.5.30; # option domain-name-servers ns1.internal.example.org; # option domain-name "internal.example.org"; # option routers 10.5.5.1; # option broadcast-address 10.5.5.31; # default-lease-time 600; # max-lease-time 7200; #} # Hosts which require special configuration options can be listed in # host statements. If no address is specified, the address will be # allocated dynamically (if possible), but the host-specific information # will still come from the host declaration. #host passacaglia { # hardware ethernet 0:0:c0:5d:bd:95; # filename "vmunix.passacaglia"; # server-name "toccata.fugue.com"; #} # Fixed IP addresses can also be specified for hosts. These addresses # should not also be listed as being available for dynamic assignment. # Hosts for which fixed IP addresses have been specified can boot using # BOOTP or DHCP. Hosts for which no fixed address is specified can only # be booted with DHCP, unless there is an address range on the subnet # to which a BOOTP client is connected which has the dynamic-bootp flag # set. #host fantasia { # hardware ethernet 08:00:07:26:c0:a5; # fixed-address fantasia.fugue.com; #} # You can declare a class of clients and then do address allocation # based on that. The example below shows a case where all clients # in a certain class get addresses on the 10.17.224/24 subnet, and all # other clients get addresses on the 10.0.29/24 subnet. #class "foo" { # match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; #} #shared-network 224-29 { # subnet 10.17.224.0 netmask 255.255.255.0 { # option routers rtr-224.example.org; # } # subnet 10.0.29.0 netmask 255.255.255.0 { # option routers rtr-29.example.org; # } # pool { # allow members of "foo"; # range 10.17.224.10 10.17.224.250; # } # pool { # deny members of "foo"; # range 10.0.29.10 10.0.29.230; # } #} ================================================ FILE: package/dhcp/dhcpd.service ================================================ [Unit] Description=DHCP server After=network.target [Service] Type=forking PIDFile=/run/dhcpd.pid ExecStart=/usr/sbin/dhcpd -q -pf /run/dhcpd.pid $OPTIONS $INTERFACES KillSignal=SIGINT EnvironmentFile=-/etc/default/dhcpd [Install] WantedBy=multi-user.target ================================================ FILE: package/dhcpcd/Config.in ================================================ comment "dhcpcd needs a toolchain w/ headers >= 3.1" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 config BR2_PACKAGE_DHCPCD bool "dhcpcd" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 # sa_family_t in linux/socket.h help An RFC2131 compliant DHCP client http://roy.marples.name/projects/dhcpcd/ ================================================ FILE: package/dhcpcd/S41dhcpcd ================================================ #!/bin/sh # # Start/stop dhcpcd # DAEMON=/sbin/dhcpcd CONFIG=/etc/dhcpcd.conf PIDFILE=/var/run/dhcpcd.pid [ -f $CONFIG ] || exit 0 case "$1" in start) echo "Starting dhcpcd..." start-stop-daemon -S -x "$DAEMON" -p "$PIDFILE" -- -f "$CONFIG" ;; stop) echo "Stopping dhcpcd..." start-stop-daemon -K -x "$DAEMON" -p "$PIDFILE" -o ;; reload|force-reload) echo "Reloading dhcpcd configuration..." "$DAEMON" -s reload ;; restart) "$0" stop sleep 1 # Prevent race condition: ensure dhcpcd stops before start. "$0" start ;; *) echo "Usage: $0 {start|stop|restart|reload|force-reload}" exit 1 esac ================================================ FILE: package/dhcpcd/dhcpcd.hash ================================================ # sha256 from ftp://roy.marples.name/pub/dhcpcd/dhcpcd-9.4.1.tar.xz.distinfo sha256 819357634efed1ea5cf44ec01b24d3d3f8852fec8b4249925dcc5667c54e376c dhcpcd-9.4.1.tar.xz # Locally calculated sha256 4f21ce186859516dcab9b3197f3e9533a9bd1b87932015c87f539af4a48cd592 LICENSE ================================================ FILE: package/dhcpcd/dhcpcd.mk ================================================ ################################################################################ # # dhcpcd # ################################################################################ DHCPCD_VERSION = 9.4.1 DHCPCD_SOURCE = dhcpcd-$(DHCPCD_VERSION).tar.xz DHCPCD_SITE = http://roy.marples.name/downloads/dhcpcd DHCPCD_DEPENDENCIES = host-pkgconf DHCPCD_LICENSE = BSD-2-Clause DHCPCD_LICENSE_FILES = LICENSE DHCPCD_CPE_ID_VENDOR = dhcpcd_project DHCPCD_CONFIG_OPTS = \ --libexecdir=/lib/dhcpcd \ --os=linux \ --privsepuser=dhcpcd # AUDIT_ARCH_{OPENRISC,SH,SHEL,SH64,SHEL64} are only available with kernel >= 3.7 ifeq ($(BR2_or1k)$(BR2_sh):$(BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7),y:) DHCPCD_CONFIG_OPTS += --disable-privsep endif # AUDIT_ARCH_MICROBLAZE is only available with kernel >= 3.18 ifeq ($(BR2_microblazeel)$(BR2_microblazebe):$(BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18),y:) DHCPCD_CONFIG_OPTS += --disable-privsep endif # AUDIT_ARCH_XTENSA is only available with kernel >= 5.0 ifeq ($(BR2_xtensa):$(BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0),y:) DHCPCD_CONFIG_OPTS += --disable-privsep endif # AUDIT_ARCH_{ARCOMPACT,ARCV2,NDS32,NIOS2} are only available with kernel >= 5.2 ifeq ($(BR2_arceb)$(BR2_arcle)$(BR2_nds32)$(BR2_nios2):$(BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2),y:) DHCPCD_CONFIG_OPTS += --disable-privsep endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) DHCPCD_CONFIG_OPTS += --with-udev DHCPCD_DEPENDENCIES += udev else DHCPCD_CONFIG_OPTS += --without-udev endif ifeq ($(BR2_STATIC_LIBS),y) DHCPCD_CONFIG_OPTS += --enable-static endif ifeq ($(BR2_USE_MMU),) DHCPCD_CONFIG_OPTS += --disable-fork --disable-privsep endif define DHCPCD_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(DHCPCD_CONFIG_OPTS)) endef define DHCPCD_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) all endef define DHCPCD_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install DESTDIR=$(TARGET_DIR) endef # When network-manager is enabled together with dhcpcd, it will use # dhcpcd as a DHCP client, and will be in charge of running, so we # don't want the init script or service file to be installed. ifeq ($(BR2_PACKAGE_NETWORK_MANAGER),) define DHCPCD_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/dhcpcd/S41dhcpcd \ $(TARGET_DIR)/etc/init.d/S41dhcpcd endef define DHCPCD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/dhcpcd/dhcpcd.service \ $(TARGET_DIR)/usr/lib/systemd/system/dhcpcd.service endef endif define DHCPCD_USERS dhcpcd -1 dhcpcd -1 * - - - dhcpcd user endef # NOTE: Even though this package has a configure script, it is not generated # using the autotools, so we have to use the generic package infrastructure. $(eval $(generic-package)) ================================================ FILE: package/dhcpcd/dhcpcd.service ================================================ [Unit] Description=DHCP client After=network.target [Service] Type=forking EnvironmentFile=-/etc/default/dhcpcd PIDFile=/run/dhcpcd.pid ExecStart=/sbin/dhcpcd $DAEMON_ARGS Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/dhcpdump/0001-use-non-bsd-structures.patch ================================================ The udphdr structure has uh_* fields when _FAVOR_BSD is defined. Otherwise, the fields are just named source, dest, len and check. See . Signed-off-by: Thomas Petazzoni Index: dhcpdump-1.8/dhcpdump.c =================================================================== --- dhcpdump-1.8.orig/dhcpdump.c 2011-05-17 20:20:46.506980003 +0200 +++ dhcpdump-1.8/dhcpdump.c 2011-05-17 20:20:59.338979999 +0200 @@ -163,10 +163,10 @@ strcpy(ip_origin, (u_char *)inet_ntoa(ip->ip_src)); strcpy(ip_destination, (u_char *)inet_ntoa(ip->ip_dst)); - if (hmask && check_ch((u_char *)(sp + offset), ntohs(udp->uh_ulen))) + if (hmask && check_ch((u_char *)(sp + offset), ntohs(udp->len))) return; - printdata((u_char *)(sp + offset), ntohs(udp->uh_ulen)); + printdata((u_char *)(sp + offset), ntohs(udp->len)); } // check for matching CHADDR (Peter Apian-Bennewitz ) ================================================ FILE: package/dhcpdump/Config.in ================================================ config BR2_PACKAGE_DHCPDUMP bool "dhcpdump" select BR2_PACKAGE_LIBPCAP help A tool for monitoring dhcp requests using tcpdump. http://www.mavetju.org/unix/general.php ================================================ FILE: package/dhcpdump/dhcpdump.hash ================================================ # Locally calculated sha256 6d5eb9418162fb738bc56e4c1682ce7f7392dd96e568cc996e44c28de7f77190 dhcpdump-1.8.tar.gz sha256 bab6ca76b7e93885396513689b1248dfb0e8fd662695b8bd1b26784ef71a0192 LICENSE ================================================ FILE: package/dhcpdump/dhcpdump.mk ================================================ ################################################################################ # # dhcpdump # ################################################################################ DHCPDUMP_VERSION = 1.8 DHCPDUMP_SITE = http://www.mavetju.org/download DHCPDUMP_DEPENDENCIES = libpcap DHCPDUMP_LICENSE = BSD-2-Clause DHCPDUMP_LICENSE_FILES = LICENSE DHCPDUMP_LIBS = -lpcap ifeq ($(BR2_STATIC_LIBS),y) DHCPDUMP_LIBS += `$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs` endif # glibc, uclibc and musl have strsep() DHCPDUMP_CFLAGS = $(TARGET_CFLAGS) -DHAVE_STRSEP define DHCPDUMP_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CC="$(TARGET_CC) $(DHCPDUMP_CFLAGS) \ -D_GNU_SOURCE" LIBS="$(DHCPDUMP_LIBS)" dhcpdump endef define DHCPDUMP_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/dhcpdump $(TARGET_DIR)/usr/bin/dhcpdump endef $(eval $(generic-package)) ================================================ FILE: package/dhrystone/0001-cmdline-nruns.patch ================================================ let people specify the number of runs on the command line Patch by Vivi Li --- a/dhry_1.c +++ b/dhry_1.c @@ -66,7 +70,7 @@ /* end of variables for time measurement */ -main () +main(int argc, char *argv[]) /*****/ /* main program, corresponds to procedures */ @@ -101,6 +105,13 @@ /* Warning: With 16-Bit processors and Number_Of_Runs > 32000, */ /* overflow may occur for this array element. */ + Number_Of_Runs = 0; + if ( argc == 2 ) { + if (atoi(argv[1]) > 0) { + Number_Of_Runs = atoi(argv[1]); + } + } + printf ("\n"); printf ("Dhrystone Benchmark, Version 2.1 (Language: C)\n"); printf ("\n"); @@ -114,13 +125,17 @@ printf ("Program compiled without 'register' attribute\n"); printf ("\n"); } - printf ("Please give the number of runs through the benchmark: "); - { - int n; - scanf ("%d", &n); - Number_Of_Runs = n; + + if (!Number_Of_Runs) { + printf ("Please give the number of runs through the benchmark: "); + fflush (stdout); + { + int n; + scanf ("%d", &n); + Number_Of_Runs = n; + } + printf ("\n"); } - printf ("\n"); printf ("Execution starts, %d runs through Dhrystone\n", Number_Of_Runs); ================================================ FILE: package/dhrystone/0002-HZ.patch ================================================ Get HZ value from system rather than requiring via CPPFLAGS Patch by Robin Getz --- a/dhry.h +++ b/dhry.h @@ -359,6 +359,10 @@ /* for "times" */ #endif +#ifndef HZ +#include +#endif + #define Mic_secs_Per_Second 1000000.0 /* Berkeley UNIX C returns process times in seconds/HZ */ ================================================ FILE: package/dhrystone/0003-exit.patch ================================================ trust the exit status of the program Patch by Robin Getz --- a/dhry_1.c +++ b/dhry_1.c @@ -274,6 +289,7 @@ printf ("\n"); } + exit(0); } ================================================ FILE: package/dhrystone/0004-headers.patch ================================================ get prototypes for malloc/exit/strcpy Patch by Mike Frysinger --- a/dhry.h +++ b/dhry.h @@ -388,6 +388,8 @@ /* General definitions: */ #include +#include +#include /* for strcpy, strcmp */ #define Null 0 ================================================ FILE: package/dhrystone/0005-prototypes.patch ================================================ Avoid collision with C library using NO_PROTOTYPES found in code already Patch by Robin Getz --- a/dhry_1.c +++ b/dhry_1.c @@ -28,7 +28,9 @@ int Arr_1_Glob [50]; int Arr_2_Glob [50] [50]; +#ifndef NO_PROTOTYPES extern char *malloc (); +#endif Enumeration Func_1 (); /* forward declaration necessary since Enumeration may not simply be int */ @@ -45,14 +45,18 @@ #ifdef TIMES struct tms time_info; +#ifndef NO_PROTOTYPES extern int times (); /* see library function "times" */ +#endif #define Too_Small_Time 120 /* Measurements should last at least about 2 seconds */ #endif #ifdef TIME +#ifndef NO_PROTOTYPES extern long time(); /* see library function "time" */ +#endif #define Too_Small_Time 2 /* Measurements should last at least 2 seconds */ #endif ================================================ FILE: package/dhrystone/Config.in ================================================ config BR2_PACKAGE_DHRYSTONE bool "dhrystone" help easy-to-use integer benchmark http://www.netlib.org/benchmark/dhry-c ================================================ FILE: package/dhrystone/Makefile ================================================ CPPFLAGS += -DNO_PROTOTYPES=1 -DHZ=100 LDLIBS += -lm all: dhrystone dhrystone: dhry_1.o dhry_2.o $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) clean: rm -f *.o dhrystone .PHONY: all clean ================================================ FILE: package/dhrystone/dhrystone.hash ================================================ # Locally calculated sha256 038a7e9169787125c3451a6c941f3aca5db2d2f3863871afcdce154ef17f4e3e dhry-c ================================================ FILE: package/dhrystone/dhrystone.mk ================================================ ################################################################################ # # dhrystone # ################################################################################ DHRYSTONE_VERSION = 2 DHRYSTONE_SOURCE = dhry-c DHRYSTONE_SITE = http://www.netlib.org/benchmark define DHRYSTONE_EXTRACT_CMDS (cd $(@D) && $(SHELL) $(DHRYSTONE_DL_DIR)/$($(PKG)_SOURCE)) $(Q)cp package/dhrystone/Makefile $(@D)/ endef define DHRYSTONE_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define DHRYSTONE_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/dhrystone $(TARGET_DIR)/usr/bin/dhrystone endef $(eval $(generic-package)) ================================================ FILE: package/dialog/Config.in ================================================ config BR2_PACKAGE_DIALOG bool "dialog" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NCURSES select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help dialog - display dialog boxes from shell scripts This application provides a method of displaying several different types of dialog boxes from shell scripts. This allows a developer of a script to interact with the user in a much friendlier manner. http://invisible-island.net/dialog/dialog.html ================================================ FILE: package/dialog/dialog.hash ================================================ # Locally calculated after checking pgp signature sha256 466163e8b97c2b7709d00389199add3156bd813f60ccb0335d0a30f2d4a17f99 dialog-1.3-20200327.tgz # Locally computed sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING ================================================ FILE: package/dialog/dialog.mk ================================================ ################################################################################ # # dialog # ################################################################################ DIALOG_VERSION = 1.3-20200327 DIALOG_SOURCE = dialog-$(DIALOG_VERSION).tgz DIALOG_SITE = https://invisible-mirror.net/archives/dialog DIALOG_CONF_OPTS = --with-ncurses --with-curses-dir=$(STAGING_DIR)/usr \ --disable-rpath-hack DIALOG_DEPENDENCIES = host-pkgconf ncurses $(TARGET_NLS_DEPENDENCIES) DIALOG_LICENSE = LGPL-2.1 DIALOG_LICENSE_FILES = COPYING ifneq ($(BR2_ENABLE_LOCALE),y) DIALOG_DEPENDENCIES += libiconv endif DIALOG_CONF_OPTS += NCURSES_CONFIG=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS) $(eval $(autotools-package)) ================================================ FILE: package/dieharder/0001-Do-not-use-includedir-as-include-search-path-for-bui.patch ================================================ From fbc9b7c3b83a99ac996c0a268487d1f800630328 Mon Sep 17 00:00:00 2001 From: Julien Viard de Galbert Date: Wed, 8 Feb 2017 21:26:58 +0100 Subject: [PATCH] Do not use includedir as include search path for build --includedir is not used to specify where a program should look for headers of libraries, but to tell where it should install its own headers. Signed-off-by: Julien Viard de Galbert --- configure.ac | 6 +++--- dieharder/Makefile.am | 2 +- libdieharder/Makefile.am | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index b336115..91f7c64 100644 --- a/configure.ac +++ b/configure.ac @@ -96,9 +96,9 @@ AC_TYPE_SIZE_T AC_C_VOLATILE AC_C_INLINE -DIEHARDER_CFLAGS="-I$includedir" -dieharder_CFLAGS="-std=c99 -Wall -pedantic -I$includedir" -libdieharder_lo_CFLAGS="-Wall -pedantic -I$includedir" +DIEHARDER_CFLAGS="" +dieharder_CFLAGS="-std=c99 -Wall -pedantic" +libdieharder_lo_CFLAGS="-Wall -pedantic" DIEHARDER_LIBS="-L$libdir -ldieharder" ACLOCAL_AMFLAGS="-I m4" diff --git a/dieharder/Makefile.am b/dieharder/Makefile.am index e6fbff2..7bdac5c 100644 --- a/dieharder/Makefile.am +++ b/dieharder/Makefile.am @@ -64,7 +64,7 @@ DEFINES = -DVERSION=$(VERSION) # CC = gcc # Compile flags (use fairly standard -O3 as default) -AM_CPPFLAGS = -I ${top_srcdir}/include $(DEFINES) -I ${includedir} +AM_CPPFLAGS = -I ${top_srcdir}/include $(DEFINES) AM_CFLAGS = -O3 # Load flags (optional) diff --git a/libdieharder/Makefile.am b/libdieharder/Makefile.am index 5fd3396..0873f9c 100644 --- a/libdieharder/Makefile.am +++ b/libdieharder/Makefile.am @@ -114,7 +114,7 @@ DEFINES = -DVERSION=$(VERSION) -DLITTLE_ENDIAN=$(LITTLE_ENDIAN) # CC = gcc # Compile flags (use fairly standard -O3 as default) -AM_CPPFLAGS = $(DEFINES) -I ${top_srcdir}/include -I ${includedir} +AM_CPPFLAGS = $(DEFINES) -I ${top_srcdir}/include AM_CFLAGS = -O3 -Wall -pedantic -Wno-unused-variable #======================================================================== -- 2.1.4 ================================================ FILE: package/dieharder/0002-Fix-missing-type-intptr_t.patch ================================================ From 6f550841943f19612af064b3d3a1db134078e03c Mon Sep 17 00:00:00 2001 From: Julien Viard de Galbert Date: Sat, 14 Jan 2017 14:18:10 +0100 Subject: [PATCH] Fix missing type intptr_t With glibc-2.23 unistd.h need intptr_t when __USE_MISC is defined. Signed-off-by: Julien Viard de Galbert --- include/dieharder/libdieharder.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/dieharder/libdieharder.h b/include/dieharder/libdieharder.h index 2138ebf..d98b758 100644 --- a/include/dieharder/libdieharder.h +++ b/include/dieharder/libdieharder.h @@ -17,6 +17,7 @@ /* This turns on uint macro in c99 */ #define __USE_MISC 1 +#include #include #include #include -- 2.1.4 ================================================ FILE: package/dieharder/0003-Add-_GNU_SOURCE-for-uint-and-M_PI-with-musl-libc.patch ================================================ From 526510a27ef47a16699dd34a2373ad9b6bb5e8f3 Mon Sep 17 00:00:00 2001 From: Julien Viard de Galbert Date: Sat, 14 Jan 2017 14:19:47 +0100 Subject: [PATCH] Add _GNU_SOURCE for uint and M_PI with musl libc When building with musl libc _GNU_SOURCE need to be defined to provide uint type and M_PI macro Signed-off-by: Julien Viard de Galbert --- include/dieharder/libdieharder.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/dieharder/libdieharder.h b/include/dieharder/libdieharder.h index d98b758..c1a5023 100644 --- a/include/dieharder/libdieharder.h +++ b/include/dieharder/libdieharder.h @@ -17,6 +17,7 @@ /* This turns on uint macro in c99 */ #define __USE_MISC 1 +#define _GNU_SOURCE 1 #include #include #include -- 2.1.4 ================================================ FILE: package/dieharder/0004-Add-static-to-inline-functions.patch ================================================ From 9c71a211dcf20f53f747326f5bc3fee9fabe3f52 Mon Sep 17 00:00:00 2001 From: Julien Viard de Galbert Date: Tue, 27 Jun 2017 00:16:11 +0200 Subject: [PATCH] Add static to inline functions This is needed to avoid a link error where the inline functions appear missing at link time. From c99 standard inline function should either be declared static or have an extern instance in a c file for linking. This fix is necessary to build with gcc 7; for some reason it was not trigerred before. Signed-off-by: Julien Viard de Galbert --- libdieharder/dab_filltree.c | 4 ++-- libdieharder/dab_filltree2.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libdieharder/dab_filltree.c b/libdieharder/dab_filltree.c index 9cc5ce7..a377c3d 100644 --- a/libdieharder/dab_filltree.c +++ b/libdieharder/dab_filltree.c @@ -34,7 +34,7 @@ static double targetData[] = { 0.0, 0.0, 0.0, 0.0, 0.13333333, 0.20000000, 0.20634921, 0.17857143, 0.13007085, 0.08183633, 0.04338395, 0.01851828, 0.00617270, 0.00151193, 0.00023520, 0.00001680, 0.00000000, 0.00000000, 0.00000000, 0.00000000 }; -inline int insert(double x, double *array, unsigned int startVal); +static inline int insert(double x, double *array, unsigned int startVal); int dab_filltree(Test **test,int irun) { int size = (ntuple == 0) ? 32 : ntuple; @@ -105,7 +105,7 @@ int dab_filltree(Test **test,int irun) { } -inline int insert(double x, double *array, unsigned int startVal) { +static inline int insert(double x, double *array, unsigned int startVal) { uint d = (startVal + 1) / 2; uint i = startVal; while (d > 0) { diff --git a/libdieharder/dab_filltree2.c b/libdieharder/dab_filltree2.c index 1e33af2..59cbd52 100644 --- a/libdieharder/dab_filltree2.c +++ b/libdieharder/dab_filltree2.c @@ -92,7 +92,7 @@ static double targetData[128] = { // size=128, generated from 6e9 samples 0.00000000000e+00,0.00000000000e+00,0.00000000000e+00,0.00000000000e+00, }; -inline int insertBit(uint x, uchar *array, uint *i, uint *d); +static inline int insertBit(uint x, uchar *array, uint *i, uint *d); int dab_filltree2(Test **test, int irun) { int size = (ntuple == 0) ? 128 : ntuple; @@ -181,7 +181,7 @@ int dab_filltree2(Test **test, int irun) { * The function returns >= 0 if the path went too deep; the * returned value is the last position of the path. */ -inline int insertBit(uint x, uchar *array, uint *i, uint *d) { +static inline int insertBit(uint x, uchar *array, uint *i, uint *d) { if (x != 0) { *i += *d; } else { -- 2.13.2 ================================================ FILE: package/dieharder/Config.in ================================================ config BR2_PACKAGE_DIEHARDER bool "dieharder" select BR2_PACKAGE_GSL help dieharder is a fairly involved random number/uniform deviate generator tester. It is thus suitable for use in testing both software RNG's and hardware RNG's. http://www.phy.duke.edu/~rgb/General/dieharder.php ================================================ FILE: package/dieharder/dieharder.hash ================================================ # Locally computed: sha256 6cff0ff8394c553549ac7433359ccfc955fb26794260314620dfa5e4cd4b727f dieharder-3.31.1.tgz sha256 c475bcd1afa6fc15a65174e31c599c0d23706a34e4b9f2fcb03a4dad5438d53f COPYING ================================================ FILE: package/dieharder/dieharder.mk ================================================ ################################################################################ # # dieharder # ################################################################################ DIEHARDER_VERSION = 3.31.1 DIEHARDER_SITE = http://www.phy.duke.edu/~rgb/General/dieharder DIEHARDER_SOURCE = dieharder-$(DIEHARDER_VERSION).tgz DIEHARDER_STRIP_COMPONENTS = 2 DIEHARDER_LICENSE = GPL-2.0 with beverage clause DIEHARDER_LICENSE_FILES = COPYING DIEHARDER_DEPENDENCIES = gsl # The original configure does not use variables provided in the # environment so _CONF_ENV does not work. (_CONF_OPTS does). # # Finally, we patch configure.ac and some Makefile.am so we need to # autoreconf anyway DIEHARDER_AUTORECONF = YES # The m4/*.m4 files are symlinks to /usr/share, which clearly doesn't # work, and doing an autoreconf does not replace them. define DIEHARDER_M4_CLEAN rm -f $(@D)/m4/*.m4 endef DIEHARDER_POST_PATCH_HOOKS += DIEHARDER_M4_CLEAN # fix endianness detection ifeq ($(BR2_ENDIAN),"BIG") DIEHARDER_CONF_ENV = ac_cv_c_endian=big else DIEHARDER_CONF_ENV = ac_cv_c_endian=little endif # parallel build fail, disable it DIEHARDER_MAKE = $(MAKE1) # Too many fixes needed to build with -fno-common which is default since gcc 10 ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_10),y) DIEHARDER_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -fcommon" endif $(eval $(autotools-package)) ================================================ FILE: package/diffutils/0001-m4-stack-direction.m4-fix-build-on-microblazeel.patch ================================================ From 7fd9de7f12718db0ace575c15c3a0e061ef6c542 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 11 Nov 2021 09:46:41 +0100 Subject: [PATCH] m4/stack-direction.m4: fix build on microblazeel Fix the following build failure on microblazeel with diffutils raised since version 3.8 and https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=e54aa6196947ed22ff66bcd714e4fc7bd0c5c3b4 sigsegv.c: In function 'sigsegv_handler': sigsegv.c:979:28: error: 'struct vma_struct' has no member named 'is_near_this' 979 | : vma.is_near_this (addr, &vma)) | ^ Fixes: - http://autobuild.buildroot.org/results/5ecd55b7c72f9630a7acc72341ccb60e94ddb574 Signed-off-by: Fabrice Fontaine [Upstream status: sent to bug-gnulib@gnu.org] --- m4/stack-direction.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/m4/stack-direction.m4 b/m4/stack-direction.m4 index c90d69733..70286c8f5 100644 --- a/m4/stack-direction.m4 +++ b/m4/stack-direction.m4 @@ -37,7 +37,7 @@ AC_DEFUN([SV_STACK_DIRECTION], m68* | \ m88k | \ mcore | \ - microblaze | \ + microblaze* | \ mips* | \ mmix | \ mn10200 | \ -- 2.33.0 ================================================ FILE: package/diffutils/0002-sigsegv-fix-build-on-or1k.patch ================================================ From 496c1740e5475be85b65fdb2b143771f09ed27cb Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 11 Nov 2021 10:06:31 +0100 Subject: sigsegv: fix build on or1k Fix the following build failure on or1k with diffutils 3.8 https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=e54aa6196947ed22ff66bcd714e4fc7bd0c5c3b4 sigsegv.c:979:28: error: 'struct vma_struct' has no member named 'is_near_this' http://autobuild.buildroot.org/results/5427e52489d29ed4f18b4a70b3c36f0f7bb0ddd9 [Retrieved from: https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=496c1740e5475be85b65fdb2b143771f09ed27cb] Signed-off-by: Fabrice Fontaine --- m4/stack-direction.m4 | 1 + 1 file changed, 1 insertion(+) diff --git a/m4/stack-direction.m4 b/m4/stack-direction.m4 index 70286c8f5..29e398d77 100644 --- a/m4/stack-direction.m4 +++ b/m4/stack-direction.m4 @@ -45,6 +45,7 @@ AC_DEFUN([SV_STACK_DIRECTION], nios2 | \ nds32* | \ ns32k | \ + or1k | \ pdp11 | \ pj* | \ powerpc* | rs6000 | \ -- cgit v1.2.1 ================================================ FILE: package/diffutils/0003-sys_random-port-better-to-uClibc-1-0-35.patch ================================================ From 135414a7f543e4d40ad0a7cbd51885e159a6e0f4 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 30 Nov 2021 17:50:01 -0800 Subject: sys_random: port better to uClibc < 1.0.35 Problem reported by Fabrice Fontaine in: https://lists.gnu.org/r/bug-gnulib/2021-11/msg00043.html * lib/sys_random.in.h [HAVE_SYS_RANDOM_H && !__GLIBC__ && __UCLIBC__]: Include , in case this file is included before __UCLIBC__ is defined. [Retrieved (and backported to remove ChangeLog update) from: https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=135414a7f543e4d40ad0a7cbd51885e159a6e0f4] Signed-off-by: Fabrice Fontaine --- ChangeLog | 9 +++++++++ lib/sys_random.in.h | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/sys_random.in.h b/lib/sys_random.in.h index 1abd6c544..8b4b934a1 100644 --- a/lib/sys_random.in.h +++ b/lib/sys_random.in.h @@ -23,8 +23,10 @@ #if @HAVE_SYS_RANDOM_H@ -/* On uClibc, assumes prior inclusion of . */ -# if defined __UCLIBC__ +/* On uClibc < 1.0.35, assumes prior inclusion of . + Do not use __UCLIBC__ here, as it might not be defined yet. + But avoid namespace pollution on glibc systems. */ +# ifndef __GLIBC__ # include # endif /* On Mac OS X 10.5, assumes prior inclusion of . -- cgit v1.2.1 ================================================ FILE: package/diffutils/Config.in ================================================ config BR2_PACKAGE_DIFFUTILS bool "diffutils" depends on BR2_USE_WCHAR depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help GNU diff. Compare files per line. http://www.gnu.org/software/diffutils/diffutils.html comment "diffutils needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/diffutils/diffutils.hash ================================================ # Locally calculated after checking pgp signature sha256 a6bdd7d1b31266d11c4f4de6c1b748d4607ab0231af5188fc2533d0ae2438fec diffutils-3.8.tar.xz # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/diffutils/diffutils.mk ================================================ ################################################################################ # # diffutils # ################################################################################ DIFFUTILS_VERSION = 3.8 DIFFUTILS_SOURCE = diffutils-$(DIFFUTILS_VERSION).tar.xz DIFFUTILS_SITE = $(BR2_GNU_MIRROR)/diffutils DIFFUTILS_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) DIFFUTILS_LICENSE = GPL-3.0+ DIFFUTILS_LICENSE_FILES = COPYING # We're patching m4/stack-direction.m4 DIFFUTILS_AUTORECONF = YES # Since glibc >= 2.26, don't try to use getopt_long replacement bundled # with diffutils. It will conflict with the one from glibc. ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y) DIFFUTILS_CONF_ENV += gl_cv_func_getopt_gnu=yes endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/dillo/0001-usr-local-include.patch ================================================ Do not add (possibly poisoned) /usr/local/include and /usr/local/lib to gcc and ld search paths in configure. With BR2_COMPILER_PARANOID_UNSAFE_PATH enabled, poisoned paths result in hard errors, failing affected configure tests. Signed-off-by: Alex Suykov --- a/configure.ac +++ b/configure.ac @@ -57,16 +57,6 @@ AC_TYPE_INT32_T AC_TYPE_UINT32_T -dnl -------------------------------------- -dnl Check whether to add /usr/local or not -dnl (this is somewhat a religious problem) -dnl -------------------------------------- -dnl -if test "`$CPP -v < /dev/null 2>&1 | grep '/usr/local/include' 2>&1`" = ""; then - CPPFLAGS="$CPPFLAGS -I/usr/local/include" - LDFLAGS="$LDFLAGS -L/usr/local/lib" -fi - dnl ------------------------------------ dnl Check for socket libs (AIX, Solaris) dnl ------------------------------------ ================================================ FILE: package/dillo/0002-Fix-openssl-detection.patch ================================================ From 96dde9dedf806256cdc6cbf5cacbd5c8d74e6288 Mon Sep 17 00:00:00 2001 From: Jonathan Kimmitt Date: Thu, 9 Jan 2020 22:01:42 +0100 Subject: [PATCH] Fix openssl detection SSL_library_init is now a define, use OPENSSL_init_ssl instead. Signed-off-by: Jonathan Kimmitt Signed-off-by: Peter Seiderer --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 66b5e9f..206fd53 100644 --- a/configure.ac +++ b/configure.ac @@ -276,7 +276,7 @@ if test "x$enable_ssl" = "xyes"; then if test "x$ssl_ok" = "xyes"; then old_libs="$LIBS" - AC_CHECK_LIB(ssl, SSL_library_init, ssl_ok=yes, ssl_ok=no, -lcrypto) + AC_CHECK_LIB(ssl, OPENSSL_init_ssl, ssl_ok=yes, ssl_ok=no, -lcrypto) LIBS="$old_libs" fi -- 2.24.1 ================================================ FILE: package/dillo/0003-Support-OpenSSL-1.1.0.patch ================================================ From ff44d8b2d5211a502afdb3e612dae0e8133b5124 Mon Sep 17 00:00:00 2001 From: Johannes Hofmann Date: Thu, 9 Jan 2020 22:07:15 +0100 Subject: [PATCH] Support OpenSSL 1.1.0 taken-from: pkgsrc (Ryo ONODERA) submitted-by: Jun Ebihara Upstream: https://hg.dillo.org/dillo/rev/b171b8610400 Signed-off-by: Peter Seiderer --- dpi/https.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dpi/https.c b/dpi/https.c index 766b3af..025cfc4 100644 --- a/dpi/https.c +++ b/dpi/https.c @@ -476,7 +476,11 @@ static int handle_certificate_problem(SSL * ssl_connection) case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: /*Either self signed and untrusted*/ /*Extract CN from certificate name information*/ +#if OPENSSL_VERSION_NUMBER < 0x10100000L if ((cn = strstr(remote_cert->name, "/CN=")) == NULL) { +#else + if ((cn = strstr(X509_get_subject_name(remote_cert), "/CN=")) == NULL) { +#endif strcpy(buf, "(no CN given)"); } else { char *cn_end; -- 2.24.1 ================================================ FILE: package/dillo/0004-fix-build-with-gcc-10.patch ================================================ fix build with gcc 10 gcc 10 is now defaulting to -fno-common resulting in the following build failures: /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -g2 -D_FORTIFY_SOURCE=1 -DENABLE_IPV6 -DD_DNS_THREADED -D_REENTRANT -D_THREAD_SAFE -Wall -W -Wno-unused-parameter -Waggregate-return -o dpid dpi.o dpi_socket_dir.o dpid.o dpid_common.o main.o misc_new.o ../dpip/libDpip.a ../dlib/libDlib.a /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: dpi_socket_dir.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: dpid_common.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:64: multiple definition of `sock_set'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:64: first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:61: multiple definition of `services_list'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:61: first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:58: multiple definition of `dpi_attr_list'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:58: first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:55: multiple definition of `numsocks'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:55: first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:52: multiple definition of `numdpis'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:52: first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:31: multiple definition of `srs_fd'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:31: first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:28: multiple definition of `srs_name'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:28: first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: misc_new.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here So add missing extern for srs_fd, numdpis, numsocks, dpi_attr_list, services_list and sock_set Also remove srs_name which is never used and give a name to dpi_errno enum Fixes: - http://autobuild.buildroot.org/results/9c777af97fe50143c6a68f0170fc86c87d8ead3f Signed-off-by: Fabrice Fontaine [Upstream status: sent to jcid@dillo.org] diff -r f60d55c02567 dpid/dpid.c --- a/dpid/dpid.c Fri Oct 05 22:05:08 2018 +0200 +++ b/dpid/dpid.c Thu Aug 27 18:16:50 2020 +0200 @@ -38,6 +38,12 @@ #define QUEUE 5 +int srs_fd; +int numdpis; +int numsocks; +struct dp *dpi_attr_list; +Dlist *services_list; +fd_set sock_set; volatile sig_atomic_t caught_sigchld = 0; char *SharedKey = NULL; diff -r f60d55c02567 dpid/dpid.h --- a/dpid/dpid.h Fri Oct 05 22:05:08 2018 +0200 +++ b/dpid/dpid.h Thu Aug 27 18:16:50 2020 +0200 @@ -25,10 +25,9 @@ /*! \TODO: Should read this from dillorc */ #define SRS_NAME "dpid.srs" -char *srs_name; /*! dpid's service request socket file descriptor */ -int srs_fd; +extern int srs_fd; /*! plugin state information */ @@ -49,19 +48,19 @@ }; /*! Number of available plugins */ -int numdpis; +extern int numdpis; /*! Number of sockets being watched */ -int numsocks; +extern int numsocks; /*! State information for each plugin. */ -struct dp *dpi_attr_list; +extern struct dp *dpi_attr_list; /*! service served for each plugin */ -Dlist *services_list; +extern Dlist *services_list; /*! Set of sockets watched for connections */ -fd_set sock_set; +extern fd_set sock_set; /*! Set to 1 by the SIGCHLD handler dpi_sigchld */ extern volatile sig_atomic_t caught_sigchld; diff -r f60d55c02567 dpid/dpid_common.h --- a/dpid/dpid_common.h Fri Oct 05 22:05:08 2018 +0200 +++ b/dpid/dpid_common.h Thu Aug 27 18:16:50 2020 +0200 @@ -37,10 +37,10 @@ /*! Error codes for dpid */ -enum { +enum dpi_errno { no_errors, dpid_srs_addrinuse /* dpid service request socket address already in use */ -} dpi_errno; +}; /*! Intended for identifying dillo plugins * and related files diff -r f60d55c02567 dpid/main.c --- a/dpid/main.c Fri Oct 05 22:05:08 2018 +0200 +++ b/dpid/main.c Thu Aug 27 18:16:50 2020 +0200 @@ -231,7 +231,7 @@ /* this sleep used to unmask a race condition */ // sleep(2); - dpi_errno = no_errors; + enum dpi_errno error_code = no_errors; /* Get list of available dpis */ numdpis = register_all(&dpi_attr_list); @@ -254,7 +254,7 @@ /* Initialise sockets */ if ((numsocks = init_ids_srs_socket()) == -1) { - switch (dpi_errno) { + switch (error_code) { case dpid_srs_addrinuse: MSG_ERR("dpid refuses to start, possibly because:\n"); MSG_ERR("\t1) An instance of dpid is already running.\n"); ================================================ FILE: package/dillo/Config.in ================================================ config BR2_PACKAGE_DILLO bool "dillo" depends on BR2_PACKAGE_XORG7 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # fltk fork() select BR2_PACKAGE_FLTK select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_ZLIB help Dillo is a multi-platform graphical web browser known for its speed and small footprint. Enable openssl package to gain https support. http://www.dillo.org comment "dillo needs a toolchain w/ C++" depends on BR2_PACKAGE_XORG7 && BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/dillo/dillo.hash ================================================ # Locally calculated sha256 db1be16c1c5842ebe07b419aa7c6ef11a45603a75df2877f99635f4f8345148b dillo-3.0.5.tar.bz2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/dillo/dillo.mk ================================================ ################################################################################ # # dillo # ################################################################################ DILLO_VERSION = 3.0.5 DILLO_SOURCE = dillo-$(DILLO_VERSION).tar.bz2 DILLO_SITE = http://www.dillo.org/download DILLO_LICENSE = GPL-3.0+ DILLO_LICENSE_FILES = COPYING # configure.ac gets patched, so autoreconf is necessary DILLO_AUTORECONF = YES DILLO_DEPENDENCIES = fltk zlib \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) DILLO_CONF_ENV = ac_cv_path_FLTK_CONFIG=$(STAGING_DIR)/usr/bin/fltk-config ifeq ($(BR2_PACKAGE_OPENSSL),y) DILLO_CONF_OPTS += --enable-ssl DILLO_DEPENDENCIES += openssl else DILLO_CONF_OPTS += --disable-ssl endif ifeq ($(BR2_PACKAGE_LIBPNG),y) DILLO_CONF_OPTS += --enable-png DILLO_DEPENDENCIES += libpng DILLO_CONF_ENV += PNG_CONFIG=$(STAGING_DIR)/usr/bin/libpng-config else DILLO_CONF_OPTS += --disable-png endif ifeq ($(BR2_PACKAGE_JPEG),y) DILLO_CONF_OPTS += --enable-jpeg DILLO_DEPENDENCIES += jpeg else DILLO_CONF_OPTS += --disable-jpeg endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) DILLO_CONF_OPTS += --enable-threaded-dns else DILLO_CONF_OPTS += --disable-threaded-dns endif $(eval $(autotools-package)) ================================================ FILE: package/ding-libs/Config.in ================================================ config BR2_PACKAGE_DING_LIBS bool "ding-libs" select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help The ding-libs packages contain a set of libraries used by the System Security Services Daemon (SSSD) and other projects and provide functions to manipulate filesystem pathnames (libpath_utils), a hash table to manage storage and access time properties (libdhash), a data type to collect data in a hierarchical structure (libcollection), a dynamically growing, reference-counted array (libref_array), and a library to process configuration files in initialization format (INI) into a library collection data structure (libini_config). https://pagure.io/SSSD/ding-libs ================================================ FILE: package/ding-libs/ding-libs.hash ================================================ # Locally computed sha256 ad3c573641701f67d4b6bd8a5a71f0b65d45fd39fe961495ef5f5d3c57fc0963 ding-libs-ding_libs-0_6_1.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING sha256 6c57f43c939054fd4b831f271a14c97a488c38f98cdda5e887c5d396e3b3bc58 COPYING.LESSER ================================================ FILE: package/ding-libs/ding-libs.mk ================================================ ################################################################################ # # ding-libs # ################################################################################ DING_LIBS_VERSION = 0.6.1 DING_LIBS_SOURCE = ding-libs-ding_libs-$(subst .,_,$(DING_LIBS_VERSION)).tar.gz DING_LIBS_SITE = \ https://pagure.io/SSSD/ding-libs/archive/ding_libs-$(subst .,_,$(DING_LIBS_VERSION)) DING_LIBS_DEPENDENCIES = host-pkgconf \ $(TARGET_NLS_DEPENDENCIES) \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) DING_LIBS_INSTALL_STAGING = YES DING_LIBS_LICENSE = LGPL-3.0+ (library),GPL-3.0+ (test programs) DING_LIBS_LICENSE_FILES = COPYING COPYING.LESSER # autoconf/automake generated files not present in tarball DING_LIBS_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/directfb/0001-fix-missing-davinci-voodoo-header.patch ================================================ The archive of directfb-1.6.3 is still missing some header files against the tagged git tree of directfb. The following files are missing. gfxdrivers/davinci/davinci_c64x.h gfxdrivers/davinci/davincifb.h gfxdrivers/davinci/davinci_gfxdriver.h tests/voodoo/voodoo_test.h The headers of course are needed to be able to build every module of directfb. The headers are taken from the git tree of directfb http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=38b784549bc59bb07c58bb29667cb658695d39a7, tag DIRECTFB_1_6_3, SHA1ID 38b784549bc59bb07c58bb29667cb658695d39a7. Signed-off-by: Carsten Schoenert diff -puNr -Naur directfb-1.6.3-orig/gfxdrivers/davinci/davinci_c64x.h directfb-1.6.3/gfxdrivers/davinci/davinci_c64x.h --- directfb-1.6.3-orig/gfxdrivers/davinci/davinci_c64x.h 1970-01-01 01:00:00.000000000 +0100 +++ directfb-1.6.3/gfxdrivers/davinci/davinci_c64x.h 2013-04-07 21:33:25.928530187 +0200 @@ -0,0 +1,935 @@ +/* + TI Davinci driver - C64X+ DSP Library + + (c) Copyright 2008 directfb.org + (c) Copyright 2007 Telio AG + + Written by Denis Oliver Kropp and + Olaf Dreesen . + + All rights reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + version 2 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +*/ + +#ifndef __DAVINCI_C64X_H__ +#define __DAVINCI_C64X_H__ + +#include + +#include + +#include +#include + +#include + +#define mb() __asm__ __volatile__ ("" : : : "memory") + +/**********************************************************************************************************************/ + +typedef struct { + int magic; + + int fd; + c64xTaskControl *ctl; + void *mem; + + c64xTask *QueueL; +} DavinciC64x; + +typedef struct { + int magic; + unsigned int max_tasks; + unsigned int num_tasks; + c64xTask *tasks; +} DavinciC64xTasks; + +typedef enum { + C64X_TEF_NONE = 0x0000, + C64X_TEF_RESET = 0x0001 +} DavinciC64xEmitFlags; + +/**********************************************************************************************************************/ + +DFBResult davinci_c64x_open ( DavinciC64x *c64x ); + +DFBResult davinci_c64x_close ( DavinciC64x *c64x ); + +DFBResult davinci_c64x_wait_low( DavinciC64x *c64x ); + +/**********************************************************************************************************************/ + +DFBResult davinci_c64x_tasks_init ( DavinciC64xTasks *tasks, + unsigned int size ); + +DFBResult davinci_c64x_tasks_destroy( DavinciC64xTasks *tasks ); + +/**********************************************************************************************************************/ + +DFBResult davinci_c64x_emit_tasks( DavinciC64x *c64x, + DavinciC64xTasks *tasks, + DavinciC64xEmitFlags flags ); + +/**********************************************************************************************************************/ + +static const char *state_names[] = { "DONE", "ERROR", "TODO", "RUNNING" }; + +static inline c64xTask * +c64x_get_task( DavinciC64x *c64x ) +{ + c64xTaskControl *ctl = c64x->ctl; + uint32_t idx = ctl->QL_arm; + uint32_t next = (idx + 1) & C64X_QUEUE_MASK; + c64xTask *task = &c64x->QueueL[idx]; + int loops = 0; + uint32_t idle = 0; + + /* Wait for the entry (and next) to be processed by the DSP (rare case). */ + while (task->c64x_flags & C64X_FLAG_TODO || ctl->QL_dsp == next) { + if (loops > 666 || (idle && ctl->idlecounter - idle > 666)) { + c64xTask *dsp_task = &c64x->QueueL[ctl->QL_dsp]; + + D_PERROR( "Davinci/C64X+: Blocked! [DSP %d / %d (%s), ARM %d / %d (%s)]\n", + ctl->QL_dsp, + (dsp_task->c64x_function >> 2) & 0x3fff, + state_names[dsp_task->c64x_function & 3], + ctl->QL_arm, + (task->c64x_function >> 2) & 0x3fff, + state_names[task->c64x_function & 3] ); + + break; + } + + idle = ctl->idlecounter; + + /* Queue is full, waiting 10-20ms should not be too bad. */ + if (loops++ > 10) + usleep( 5000 ); + } + + return task; +} + +static inline void +c64x_submit_task( DavinciC64x *c64x, c64xTask *task ) +{ + c64xTaskControl *ctl = c64x->ctl; + uint32_t idx = ctl->QL_arm; + uint32_t next = (idx + 1) & C64X_QUEUE_MASK; + + mb(); + + ctl->QL_arm = next; + + mb(); +} + +/**********************************************************************************************************************/ + +static inline void +davinci_c64x_wb_inv_range( DavinciC64x *c64x, + unsigned long start, + u32 length, + u32 func ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = start; + task->c64x_arg[1] = length; + task->c64x_arg[2] = func; + + task->c64x_function = C64X_WB_INV_RANGE | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_write_back_all( DavinciC64x *c64x ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_function = C64X_WRITE_BACK_ALL | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +/**********************************************************************************************************************/ + +static inline void +davinci_c64x_load_block__L( DavinciC64xTasks *tasks, + unsigned long words, + u32 num, + u32 flags ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = words; + task->c64x_arg[1] = num; + task->c64x_arg[2] = flags; + + task->c64x_function = C64X_LOAD_BLOCK | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_load_block( DavinciC64x *c64x, + unsigned long words, + u32 num, + u32 flags ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = words; + task->c64x_arg[1] = num; + task->c64x_arg[2] = flags; + + task->c64x_function = C64X_LOAD_BLOCK | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_fetch_uyvy( DavinciC64x *c64x, + unsigned long dest, + unsigned long source, + u32 pitch, + u32 height, + u32 flags ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = source; + task->c64x_arg[2] = pitch; + task->c64x_arg[3] = height; + task->c64x_arg[4] = flags; + + task->c64x_function = C64X_FETCH_UYVY | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_mc( DavinciC64x *c64x, + unsigned long dest, + u32 dpitch, + unsigned long source0, + unsigned long source1, + u32 spitch, + u32 height, + int func ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = dpitch; + task->c64x_arg[2] = source0; + task->c64x_arg[3] = source1; + task->c64x_arg[4] = spitch; + task->c64x_arg[5] = height; + + task->c64x_function = func | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_put_idct_uyvy_16x16__L( DavinciC64xTasks *tasks, + unsigned long dest, + u32 pitch, + u32 flags ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = pitch; + task->c64x_arg[2] = flags; + + task->c64x_function = C64X_PUT_IDCT_UYVY_16x16 | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_put_idct_uyvy_16x16( DavinciC64x *c64x, + unsigned long dest, + u32 pitch, + u32 flags ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = pitch; + task->c64x_arg[2] = flags; + + task->c64x_function = C64X_PUT_IDCT_UYVY_16x16 | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_put_mc_uyvy_16x16__L( DavinciC64xTasks *tasks, + unsigned long dest, + u32 pitch, + u32 flags ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = pitch; + task->c64x_arg[2] = flags; + + task->c64x_function = C64X_PUT_MC_UYVY_16x16 | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_put_mc_uyvy_16x16( DavinciC64x *c64x, + unsigned long dest, + u32 pitch, + u32 flags ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = pitch; + task->c64x_arg[2] = flags; + + task->c64x_function = C64X_PUT_MC_UYVY_16x16 | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_put_sum_uyvy_16x16__L( DavinciC64xTasks *tasks, + unsigned long dest, + u32 pitch, + u32 flags ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = pitch; + task->c64x_arg[2] = flags; + + task->c64x_function = C64X_PUT_SUM_UYVY_16x16 | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_put_sum_uyvy_16x16( DavinciC64x *c64x, + unsigned long dest, + u32 pitch, + u32 flags ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = pitch; + task->c64x_arg[2] = flags; + + task->c64x_function = C64X_PUT_SUM_UYVY_16x16 | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_dva_begin_frame__L( DavinciC64xTasks *tasks, + u32 pitch, + unsigned long current, + unsigned long past, + unsigned long future, + u32 flags ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = pitch; + task->c64x_arg[1] = current; + task->c64x_arg[2] = past; + task->c64x_arg[3] = future; + task->c64x_arg[4] = flags; + + task->c64x_function = C64X_DVA_BEGIN_FRAME | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_dva_begin_frame( DavinciC64x *c64x, + u32 pitch, + unsigned long current, + unsigned long past, + unsigned long future, + u32 flags ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = pitch; + task->c64x_arg[1] = current; + task->c64x_arg[2] = past; + task->c64x_arg[3] = future; + task->c64x_arg[4] = flags; + + task->c64x_function = C64X_DVA_BEGIN_FRAME | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_dva_motion_block__L( DavinciC64xTasks *tasks, + unsigned long macroblock ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = macroblock; + + task->c64x_function = C64X_DVA_MOTION_BLOCK | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_dva_motion_block( DavinciC64x *c64x, + unsigned long macroblock ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = macroblock; + + task->c64x_function = C64X_DVA_MOTION_BLOCK | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +/**********************************************************************************************************************/ + +static inline void +davinci_c64x_dva_idct( DavinciC64x *c64x, + unsigned long dest, + u32 pitch, + unsigned long source ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = pitch; + task->c64x_arg[2] = source; + + task->c64x_function = C64X_DVA_IDCT | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +/**********************************************************************************************************************/ + +static inline void +davinci_c64x_put_uyvy_16x16( DavinciC64x *c64x, + unsigned long dest, + u32 pitch, + unsigned long source, + u32 flags ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = pitch; + task->c64x_arg[2] = source; + task->c64x_arg[3] = flags; + + task->c64x_function = C64X_PUT_UYVY_16x16 | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_dither_argb__L( DavinciC64xTasks *tasks, + unsigned long dst_rgb, + unsigned long dst_alpha, + u32 dst_pitch, + unsigned long source, + u32 src_pitch, + u32 width, + u32 height ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = dst_rgb; + task->c64x_arg[1] = dst_alpha; + task->c64x_arg[2] = dst_pitch; + task->c64x_arg[3] = source; + task->c64x_arg[4] = src_pitch; + task->c64x_arg[5] = width; + task->c64x_arg[6] = height; + + task->c64x_function = C64X_DITHER_ARGB | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_dither_argb( DavinciC64x *c64x, + unsigned long dst_rgb, + unsigned long dst_alpha, + u32 dst_pitch, + unsigned long source, + u32 src_pitch, + u32 width, + u32 height ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dst_rgb; + task->c64x_arg[1] = dst_alpha; + task->c64x_arg[2] = dst_pitch; + task->c64x_arg[3] = source; + task->c64x_arg[4] = src_pitch; + task->c64x_arg[5] = width; + task->c64x_arg[6] = height; + + task->c64x_function = C64X_DITHER_ARGB | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_fill_16__L( DavinciC64xTasks *tasks, + unsigned long dest, + u32 pitch, + u32 width, + u32 height, + u32 value ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = pitch; + task->c64x_arg[2] = width; + task->c64x_arg[3] = height; + task->c64x_arg[4] = value; + + task->c64x_function = C64X_FILL_16 | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_fill_16( DavinciC64x *c64x, + unsigned long dest, + u32 pitch, + u32 width, + u32 height, + u32 value ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = pitch; + task->c64x_arg[2] = width; + task->c64x_arg[3] = height; + task->c64x_arg[4] = value; + + task->c64x_function = C64X_FILL_16 | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_fill_32__L( DavinciC64xTasks *tasks, + unsigned long dest, + u32 pitch, + u32 width, + u32 height, + u32 value ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = pitch; + task->c64x_arg[2] = width; + task->c64x_arg[3] = height; + task->c64x_arg[4] = value; + + task->c64x_function = C64X_FILL_32 | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_fill_32( DavinciC64x *c64x, + unsigned long dest, + u32 pitch, + u32 width, + u32 height, + u32 value ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = pitch; + task->c64x_arg[2] = width; + task->c64x_arg[3] = height; + task->c64x_arg[4] = value; + + task->c64x_function = C64X_FILL_32 | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_blit_16__L( DavinciC64xTasks *tasks, + unsigned long dest, + u32 dpitch, + unsigned long src, + u32 spitch, + u32 width, + u32 height ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = dpitch; + task->c64x_arg[2] = src; + task->c64x_arg[3] = spitch; + task->c64x_arg[4] = width; + task->c64x_arg[5] = height; + + task->c64x_function = C64X_COPY_16 | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_blit_16( DavinciC64x *c64x, + unsigned long dest, + u32 dpitch, + unsigned long src, + u32 spitch, + u32 width, + u32 height ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = dpitch; + task->c64x_arg[2] = src; + task->c64x_arg[3] = spitch; + task->c64x_arg[4] = width; + task->c64x_arg[5] = height; + + task->c64x_function = C64X_COPY_16 | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_blit_32__L( DavinciC64xTasks *tasks, + unsigned long dest, + u32 dpitch, + unsigned long src, + u32 spitch, + u32 width, + u32 height ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = dpitch; + task->c64x_arg[2] = src; + task->c64x_arg[3] = spitch; + task->c64x_arg[4] = width; + task->c64x_arg[5] = height; + + task->c64x_function = C64X_COPY_32 | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_blit_32( DavinciC64x *c64x, + unsigned long dest, + u32 dpitch, + unsigned long src, + u32 spitch, + u32 width, + u32 height ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = dpitch; + task->c64x_arg[2] = src; + task->c64x_arg[3] = spitch; + task->c64x_arg[4] = width; + task->c64x_arg[5] = height; + + task->c64x_function = C64X_COPY_32 | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_stretch_32__L( DavinciC64xTasks *tasks, + unsigned long dest, + u32 dpitch, + unsigned long src, + u32 spitch, + u32 dw, + u32 dh, + u32 sw, + u32 sh, + const DFBRegion *clip ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = src; + task->c64x_arg[2] = dpitch | (spitch << 16); + task->c64x_arg[3] = dh | (dw << 16); + task->c64x_arg[4] = sh | (sw << 16); + task->c64x_arg[5] = clip->x2 | (clip->y2 << 16); + task->c64x_arg[6] = clip->x1 | (clip->y1 << 16); + + if (sw > dw && sh > dh) + task->c64x_function = C64X_STRETCH_32_down | C64X_FLAG_TODO; + else + task->c64x_function = C64X_STRETCH_32_up | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_stretch_32( DavinciC64x *c64x, + unsigned long dest, + u32 dpitch, + unsigned long src, + u32 spitch, + u32 dw, + u32 dh, + u32 sw, + u32 sh, + const DFBRegion *clip ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = src; + task->c64x_arg[2] = dpitch | (spitch << 16); + task->c64x_arg[3] = dh | (dw << 16); + task->c64x_arg[4] = sh | (sw << 16); + task->c64x_arg[5] = clip->x2 | (clip->y2 << 16); + task->c64x_arg[6] = clip->x1 | (clip->y1 << 16); + + if (sw > dw && sh > dh) + task->c64x_function = C64X_STRETCH_32_down | C64X_FLAG_TODO; + else + task->c64x_function = C64X_STRETCH_32_up | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_blit_blend_32__L( DavinciC64xTasks *tasks, + u32 sub_func, + unsigned long dest, + u32 dpitch, + unsigned long src, + u32 spitch, + u32 width, + u32 height, + u32 argb, + u8 alpha ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = dpitch; + task->c64x_arg[2] = src; + task->c64x_arg[3] = spitch; + task->c64x_arg[4] = width | (height << 16); + task->c64x_arg[5] = argb; + task->c64x_arg[6] = alpha; + + task->c64x_function = (sub_func << 16) | C64X_BLEND_32 | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_blit_blend_32( DavinciC64x *c64x, + u32 sub_func, + unsigned long dest, + u32 dpitch, + unsigned long src, + u32 spitch, + u32 width, + u32 height, + u32 argb, + u8 alpha ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = dpitch; + task->c64x_arg[2] = src; + task->c64x_arg[3] = spitch; + task->c64x_arg[4] = width | (height << 16); + task->c64x_arg[5] = argb; + task->c64x_arg[6] = alpha; + + task->c64x_function = (sub_func << 16) | C64X_BLEND_32 | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_blit_keyed_16__L( DavinciC64xTasks *tasks, + unsigned long dest, + u32 dpitch, + unsigned long src, + u32 spitch, + u32 width, + u32 height, + u32 key, + u32 mask ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff); + task->c64x_arg[2] = src; + task->c64x_arg[3] = width; + task->c64x_arg[4] = height; + task->c64x_arg[5] = key; + task->c64x_arg[6] = mask; + + task->c64x_function = C64X_COPY_KEYED_16 | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_blit_keyed_16( DavinciC64x *c64x, + unsigned long dest, + u32 dpitch, + unsigned long src, + u32 spitch, + u32 width, + u32 height, + u32 key, + u32 mask ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff); + task->c64x_arg[2] = src; + task->c64x_arg[3] = width; + task->c64x_arg[4] = height; + task->c64x_arg[5] = key; + task->c64x_arg[6] = mask; + + task->c64x_function = C64X_COPY_KEYED_16 | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +static inline void +davinci_c64x_blit_keyed_32__L( DavinciC64xTasks *tasks, + unsigned long dest, + u32 dpitch, + unsigned long src, + u32 spitch, + u32 width, + u32 height, + u32 key, + u32 mask ) +{ + c64xTask *task = &tasks->tasks[tasks->num_tasks]; + + D_ASSERT( tasks->num_tasks < tasks->max_tasks ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff); + task->c64x_arg[2] = src; + task->c64x_arg[3] = width; + task->c64x_arg[4] = height; + task->c64x_arg[5] = key; + task->c64x_arg[6] = mask; + + task->c64x_function = C64X_COPY_KEYED_32 | C64X_FLAG_TODO; + + tasks->num_tasks++; +} + +static inline void +davinci_c64x_blit_keyed_32( DavinciC64x *c64x, + unsigned long dest, + u32 dpitch, + unsigned long src, + u32 spitch, + u32 width, + u32 height, + u32 key, + u32 mask ) +{ + c64xTask *task = c64x_get_task( c64x ); + + task->c64x_arg[0] = dest; + task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff); + task->c64x_arg[2] = src; + task->c64x_arg[3] = width; + task->c64x_arg[4] = height; + task->c64x_arg[5] = key; + task->c64x_arg[6] = mask; + + task->c64x_function = C64X_COPY_KEYED_32 | C64X_FLAG_TODO; + + c64x_submit_task( c64x, task ); +} + +#endif + diff -puNr -Naur directfb-1.6.3-orig/gfxdrivers/davinci/davincifb.h directfb-1.6.3/gfxdrivers/davinci/davincifb.h --- directfb-1.6.3-orig/gfxdrivers/davinci/davincifb.h 1970-01-01 01:00:00.000000000 +0100 +++ directfb-1.6.3/gfxdrivers/davinci/davincifb.h 2013-04-07 21:33:21.488622184 +0200 @@ -0,0 +1,581 @@ +/* + * Copyright (C) 2006 Texas Instruments Inc + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 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 + * + * File: davincifb.h + */ + +#ifndef DAVINVI_VPBE_H +#define DAVINVI_VPBE_H + +/* include Linux files */ +#include + +/* define the custom FBIO_WAITFORVSYNC ioctl */ +#define FBIO_WAITFORVSYNC _IOW('F', 0x20, u_int32_t) +#define FBIO_SETATTRIBUTE _IOW('F', 0x21, struct fb_fillrect) + +/* Backported IOCTLS. */ +#define FBIO_SETPOSX _IOW('F', 0x22, u_int32_t) +#define FBIO_SETPOSY _IOW('F', 0x23, u_int32_t) +#define FBIO_SETZOOM _IOW('F', 0x24, struct zoom_params) +#define FBIO_GETSTD _IOR('F', 0x25, u_int32_t) +#define FBIO_RESIZER _IOW('F', 0x26, struct vpfe_resizer_params) +#define FBIO_SYNC _IOW('F', 0x27, u_int32_t) + +typedef struct zoom_params { + u_int32_t window_id; + u_int32_t zoom_h; + u_int32_t zoom_v; +} zoom_params_t; + +typedef struct vpfe_resizer_params +{ + u_int32_t rsz_cnt; //busy-lock + u_int32_t out_size; //busy-lock + u_int32_t in_start; //busy-lock + u_int32_t in_size; //busy-lock + u_int32_t sdr_inadd; //shadowed + u_int32_t sdr_inoff; //shadowed + u_int32_t sdr_outadd; //shadowed + u_int32_t sdr_outoff; //shadowed + u_int32_t hfilt[16]; //busy-lock + u_int32_t vfilt[16]; //busy-lock + u_int32_t yenh; //busy-lock +} vpfe_resizer_params_t; + +typedef struct fb_set_start { + int offset; /* offset from smem_start */ + unsigned long physical; /* absolute physical address when offset < 0 */ + + u_int64_t sync; /* input: target sync counter for change or 0 for no sync at all, + output: sync counter of actual change or 0 if still pending */ +} fb_set_start_t; + + +#ifdef _IOC_TYPECHECK +#undef _IOC_TYPECHECK +#define _IOC_TYPECHECK(x) (sizeof(x)) +#endif + +#define RAM_CLUT_SIZE 256*3 +#define FBIO_ENABLE_DISABLE_WIN \ + _IOW('F', 0x30, unsigned char) +#define FBIO_SET_BITMAP_BLEND_FACTOR \ + _IOW('F', 0x31, vpbe_bitmap_blend_params_t) +#define FBIO_SET_BITMAP_WIN_RAM_CLUT \ + _IOW('F', 0x32, unsigned char)*RAM_CLUT_SIZE) +#define FBIO_ENABLE_DISABLE_ATTRIBUTE_WIN \ + _IOW('F', 0x33, unsigned int) +#define FBIO_GET_BLINK_INTERVAL \ + _IOR('F', 0x34, vpbe_blink_option_t) +#define FBIO_SET_BLINK_INTERVAL \ + _IOW('F', 0x35, vpbe_blink_option_t) +#define FBIO_GET_VIDEO_CONFIG_PARAMS \ + _IOR('F', 0x36, vpbe_video_config_params_t) +#define FBIO_SET_VIDEO_CONFIG_PARAMS \ + _IOW('F', 0x37, vpbe_video_config_params_t) +#define FBIO_GET_BITMAP_CONFIG_PARAMS \ + _IOR('F', 0x38, vpbe_bitmap_config_params_t) +#define FBIO_SET_BITMAP_CONFIG_PARAMS \ + _IOW('F', 0x39, vpbe_bitmap_config_params_t) +#define FBIO_SET_DCLK \ + _IOW('F', 0x40, vpbe_dclk_t) +#define FBIO_SET_INTERFACE \ + _IOW('F', 0x41, unsigned char) +#define FBIO_GET_INTERFACE \ + _IOR('F', 0x42, unsigned char) +#define FBIO_QUERY_TIMING \ + _IOWR('F', 0x43, struct vpbe_mode_info) +#define FBIO_SET_TIMING \ + _IOW('F', 0x44, struct vpbe_fb_videomode) +#define FBIO_GET_TIMING \ + _IOR('F', 0x45, struct vpbe_fb_videomode) +#define FBIO_SET_VENC_CLK_SOURCE \ + _IOW('F', 0x46, unsigned char) +#define FBIO_SET_BACKG_COLOR \ + _IOW('F', 0x47, vpbe_backg_color_t) +#define FBIO_ENABLE_DISPLAY \ + _IOW('F', 0x48, unsigned char) +#define FBIO_SETPOS \ + _IOW('F', 0x49, u_int32_t) +#define FBIO_SET_CURSOR \ + _IOW('F', 0x50, struct fb_cursor) +#define FBIO_SET_START \ + _IOW('F', 0x66, struct fb_set_start) + +/* + * Defines and Constants + */ +#ifdef __KERNEL__ +#define DAVINCIFB_DEVICE "davincifb" +#define DAVINCIFB_DRIVER "davincifb" + +#define MULTIPLE_BUFFERING 1 + +#ifdef MULTIPLE_BUFFERING +#define DOUBLE_BUF 2 +#define TRIPLE_BUF 3 +#else +#define DOUBLE_BUF 1 +#define TRIPLE_BUF 1 +#endif + +/* usage: if (is_win(info->fix.id, OSD0)) ... */ +#define is_win(name, x) ((strcmp(name, x ## _FBNAME) == 0) ? 1 : 0) + +/* + * display controller register I/O routines + */ +u32 dispc_reg_in(u32 offset); +u32 dispc_reg_out(u32 offset, u32 val); +u32 dispc_reg_merge(u32 offset, u32 val, u32 mask); + +#endif /*__KERNEL__*/ + +/* Error return codes */ +#define VPBE_INVALID_PARA_VALUE 700 +#define VPBE_WRONG_WINDOW_ID 701 +#define VPBE_CURRENTLY_IN_REQUIRED_MODE 702 +#define VPBE_INSUFFICIENT_CLUT_VALUES 703 +#define VPBE_CLUT_WRITE_TIMEOUT 704 +#define VPBE_VID0_BUF_ADR_NULL 705 +#define VPBE_WINDOW_NOT_DISABLED 706 +#define VPBE_WINDOW_NOT_ENABLED 707 + +#ifndef __KERNEL__ +/* Window ID definations */ +#define OSD0 0 +#define VID0 1 +#define OSD1 2 +#define VID1 3 +#endif + +/* There are 4 framebuffers, each represented by an fb_info and + * a dm_win_info structure */ +#define OSD0_FBNAME "dm_osd0_fb" +#define OSD1_FBNAME "dm_osd1_fb" +#define VID0_FBNAME "dm_vid0_fb" +#define VID1_FBNAME "dm_vid1_fb" + +/* FIXME: Digital LCD RGB matrix coefficients */ +#define DLCD_DGY_VAL 0 +#define DLCD_DRV_VAL 0 +#define DLCD_DGU_VAL 0 +#define DLCD_DBU_VAL 0 + +/* Defines for bitmap format */ +#define VPBE_BITMAP_BIT_1 1 +#define VPBE_BITMAP_BIT_2 2 +#define VPBE_BITMAP_BIT_4 4 +#define VPBE_BITMAP_BIT_8 8 +#define VPBE_BITMAP_RGB565 16 +#define VPBE_VIDEO_YUV422 16 +#define VPBE_VIDEO_RGB888 24 + +/* Defines foe cursor parameter validation*/ +#define MAX_CURSOR_WIDTH 0x3FF +#define MAX_CURSOR_HEIGHT 0x1FF +#define MAX_CURSOR_LINEWIDTH 7 + +#define BASEX 0x80 +#define BASEY 0x12 +#define BASEX_DLCD 0x59 +#define BASEY_DLCD 0x22 + +/* + * Enumerations + */ +/* Enum for blending factor */ +typedef enum vpbe_blend_factor { + OSD_CONTRIBUTION_ZERO = 0, + OSD_CONTRIBUTION_1_BY_8 = 1, + OSD_CONTRIBUTION_2_BY_8 = 2, + OSD_CONTRIBUTION_3_BY_8 = 3, + OSD_CONTRIBUTION_4_BY_8 = 4, + OSD_CONTRIBUTION_5_BY_8 = 5, + OSD_CONTRIBUTION_6_BY_8 = 6, + OSD_CONTRIBUTION_ONE = 7 +} vpbe_blend_factor_t; + +/* Enum for Boolean variables */ +typedef enum { + SET_0 = 0, + SET_1 = 1 +} CB_CR_ORDER, ATTRIBUTE, ROM_RAM_CLUT; + +/* Defines for Display Interface */ +#define PRGB 0 +#define COMPOSITE 1 +#define SVIDEO 2 +#define COMPONENT 3 +#define RGB 4 +#define YCC16 5 +#define YCC8 6 +#define SRGB 7 +#define EPSON 8 +#define CASIO1G 9 +#define UDISP 10 +#define STN 11 +#define VPBE_MAX_INTERFACES 12 + +/* Defines for Display Mode */ +#define LCD 0 +#define NTSC 1 +#define PAL 2 +#define P525 3 +#define P625 4 + +#define DEFAULT_MODE 0 +#define P480 0 +#define P400 1 +#define P350 2 +#define NON_EXISTING_MODE 255 +/* Enable/Disable enum */ +typedef enum { + VPBE_DISABLE = 0, + VPBE_ENABLE = 1 +} ATTENUATION, TRANSPARENCY, EXPANSION, BLINKING; + +typedef enum clk_source { + CLK_SOURCE_CLK27 = 0, + CLK_SOURCE_CLK54 = 1, + CLK_SOURCE_VPBECLK = 2 +} CLK_SOURCE; + +/* + * Structures and Union Definitions + */ + +/* Structure for transparency and the blending factor for the bitmap window */ +typedef struct vpbe_bitmap_blend_params { + unsigned int colorkey; /* color key to be blend */ + unsigned int enable_colorkeying; /* enable color keying */ + unsigned int bf; /* valid range from 0 to 7 only. */ +} vpbe_bitmap_blend_params_t; + +/* Structure for window expansion */ +typedef struct vpbe_win_expansion { + EXPANSION horizontal; + EXPANSION vertical; /* 1: Enable 0:disable */ +} vpbe_win_expansion_t; + +/* Structure for OSD window blinking options */ +typedef struct vpbe_blink_option { + BLINKING blinking; /* 1: Enable blinking 0: Disable */ + unsigned int interval; /* Valid only if blinking is 1 */ +} vpbe_blink_option_t; + +/* Structure for DCLK parameters */ +typedef struct vpbe_dclk { + unsigned char dclk_pattern_width; + unsigned int dclk_pattern0; + unsigned int dclk_pattern1; + unsigned int dclk_pattern2; + unsigned int dclk_pattern3; +} vpbe_dclk_t; + +/* Structure for display format */ +typedef struct vpbe_display_format { + unsigned char interface; /* Output interface type */ + unsigned char mode; /* output mode */ +} vpbe_display_format_t; + +/* Structure for background color */ +typedef struct vpbe_backg_color { + unsigned char clut_select; /* 2: RAM CLUT 1:ROM1 CLUT 0:ROM0 CLUT */ + unsigned char color_offset; /* index of color */ +} vpbe_backg_color_t; + +/* Structure for Video window configurable parameters */ +typedef struct vpbe_video_config_params { + CB_CR_ORDER cb_cr_order; /*Cb/Cr order in input data for a pixel. */ + /* 0: cb cr 1: cr cb */ + vpbe_win_expansion_t exp_info; /* HZ/VT Expansion enable disable */ +} vpbe_video_config_params_t; + +/*Union of structures giving the CLUT index for the 1, 2, 4 bit bitmap values.*/ +typedef union vpbe_clut_idx { + struct _for_4bit_bimap { + unsigned char bitmap_val_0; + unsigned char bitmap_val_1; + unsigned char bitmap_val_2; + unsigned char bitmap_val_3; + unsigned char bitmap_val_4; + unsigned char bitmap_val_5; + unsigned char bitmap_val_6; + unsigned char bitmap_val_7; + unsigned char bitmap_val_8; + unsigned char bitmap_val_9; + unsigned char bitmap_val_10; + unsigned char bitmap_val_11; + unsigned char bitmap_val_12; + unsigned char bitmap_val_13; + unsigned char bitmap_val_14; + unsigned char bitmap_val_15; + } for_4bit_bimap; + struct _for_2bit_bimap { + unsigned char bitmap_val_0; + unsigned char dummy0[4]; + unsigned char bitmap_val_1; + unsigned char dummy1[4]; + unsigned char bitmap_val_2; + unsigned char dummy2[4]; + unsigned char bitmap_val_3; + } for_2bit_bimap; + struct _for_1bit_bimap { + unsigned char bitmap_val_0; + unsigned char dummy0[14]; + unsigned char bitmap_val_1; + } for_1bit_bimap; +} vpbe_clut_idx_t; + +/* Structure for bitmap window configurable parameters */ +typedef struct vpbe_bitmap_config_params { + /* Only for bitmap width = 1,2,4 bits */ + vpbe_clut_idx_t clut_idx; + /* Attenuation value for YUV o/p for bitmap window */ + unsigned char attenuation_enable; + /* 0: ROM DM270, 1:ROM DM320, 2:RAM CLUT */ + unsigned char clut_select; +} vpbe_bitmap_config_params_t; + +/* Unioun for video/OSD configuration parameters */ +typedef union vpbe_conf_params { + + struct vpbe_video_params { + CB_CR_ORDER cb_cr_order; + /* HZ/VT Expansion enable disable */ + vpbe_win_expansion_t exp_info; + } video_params; + + struct vpbe_bitmap_params { + /* Attenuation value for YUV o/p */ + ATTENUATION attenuation_enable; + /* 0: ROM DM270, 1: ROM DM320, 2:RAM CLUT */ + unsigned char clut_select; + /* Only for bitmap width = 1,2,4 bits */ + vpbe_clut_idx_t clut_idx; + /* 0: OSD window is bitmap window */ + /* 1: OSD window is attribute window */ + ATTRIBUTE enable_attribute; + /* To hold bps value. + Used to switch back from attribute to bitmap. */ + unsigned int stored_bits_per_pixel; + /* Blending information */ + vpbe_bitmap_blend_params_t blend_info; + /* OSD Blinking information */ + vpbe_blink_option_t blink_info; + } bitmap_params; + +} vpbe_conf_params_t; + +typedef struct vpbe_video_params vpbe_video_params_t; +typedef struct vpbe_bitmap_params vpbe_bitmap_params_t; + +/* Structure to hold window position */ +typedef struct vpbe_window_position { + unsigned int xpos; /* X position of the window */ + unsigned int ypos; /* Y position of the window */ +} vpbe_window_position_t; + +#ifdef __KERNEL__ +/* Structure for each window */ +typedef struct vpbe_dm_win_info { + struct fb_info info; + vpbe_window_position_t win_pos; /* X,Y position of window */ + /* Size of window is already there in var_info structure. */ + + dma_addr_t fb_base_phys; /*framebuffer area */ + unsigned int fb_base; /*window memory pointer */ + unsigned int fb_size; /*memory size */ + unsigned int pseudo_palette[17]; + int alloc_fb_mem; + /*flag to identify if framebuffer area is fixed or not */ + unsigned long sdram_address; + struct vpbe_dm_info *dm; + unsigned char window_enable; /*Additions for all windows */ + zoom_params_t zoom; /*Zooming parameters */ + unsigned char field_frame_select; /*To select Field or frame */ + unsigned char numbufs; /*Number of buffers valid 2 or 3 */ + vpbe_conf_params_t conf_params; + /*window configuration parameter union pointer */ +} vpbe_dm_win_info_t; +#endif /*__KERNEL__*/ + +/* + * Videmode structure for display interface and mode settings + */ +typedef struct vpbe_fb_videomode { + unsigned char name[10]; /* Mode name ( NTSC , PAL) */ + unsigned int vmode; /* FB_MODE_INTERLACED or FB_MODE_NON_INTERLACED */ + unsigned int xres; /* X Resolution of the display */ + unsigned int yres; /* Y Resolution of the display */ + unsigned int fps; /* frames per second */ + /* Timing Parameters applicable for std = 0 only */ + unsigned int left_margin; + unsigned int right_margin; + unsigned int upper_margin; + unsigned int lower_margin; + unsigned int hsync_len; + unsigned int vsync_len; + unsigned int sync; /* 0: hsync -ve/vsync -ve */ + /*1: hsync -ve/vsync +ve */ + /*2: hsync +ve/vsync -ve */ + /*3: hsync +ve/vsync +ve */ + unsigned int basepx; /* Display x,y start position */ + unsigned int basepy; +/* 1= Mode s available in modelist 0=Mode is not available in modelist */ + unsigned int std; +} vpbe_fb_videomode_t; + +/* Structure to interface videomode to application*/ +typedef struct vpbe_mode_info { + vpbe_fb_videomode_t vid_mode; + unsigned char interface; + unsigned char mode_idx; +} vpbe_mode_info_t; + +#ifdef __KERNEL__ +/* + * Structure for the driver holding information of windows, + * memory base addresses etc. + */ +typedef struct vpbe_dm_info { + vpbe_dm_win_info_t *osd0; + vpbe_dm_win_info_t *osd1; + vpbe_dm_win_info_t *vid0; + vpbe_dm_win_info_t *vid1; + +/* to map the registers */ + dma_addr_t mmio_base_phys; + unsigned int mmio_base; + unsigned int mmio_size; + + wait_queue_head_t vsync_wait; + unsigned int vsync_cnt; + int timeout; + + /* this is the function that configures the output device (NTSC/PAL/LCD) + * for the required output format (composite/s-video/component/rgb) + */ + void (*output_device_config) (void); + + struct device *dev; + + vpbe_backg_color_t backg; /* background color */ + vpbe_dclk_t dclk; /*DCLK parameters */ + vpbe_display_format_t display; /*Display interface and mode */ + vpbe_fb_videomode_t videomode; /*Cuurent videomode */ + char ram_clut[256][3]; /*RAM CLUT array */ + struct fb_cursor cursor; /* cursor config params from fb.h */ +/*Flag that indicates whether any of the display is enabled or not*/ + int display_enable; +} vpbe_dm_info_t; + +/* + * Functions Definitions for 'davincifb' module + */ +int vpbe_mem_alloc_window_buf(vpbe_dm_win_info_t *); +int vpbe_mem_release_window_buf(vpbe_dm_win_info_t *); +void init_display_function(vpbe_display_format_t *); +int vpbe_mem_alloc_struct(vpbe_dm_win_info_t **); +void set_vid0_default_conf(void); +void set_vid1_default_conf(void); +void set_osd0_default_conf(void); +void set_osd1_default_conf(void); +void set_cursor_default_conf(void); +void set_dm_default_conf(void); +void set_win_enable(char *, unsigned int); +int within_vid0_limits(u32, u32, u32, u32); +void vpbe_set_display_default(void); +#ifdef __KERNEL__ +void set_win_position(char *, u32, u32, u32, u32); +void change_win_param(int); +void set_interlaced(char *, unsigned int); +#endif /* __KERNEL__ */ + +/* + * Function definations for 'osd' module + */ + +int vpbe_enable_window(vpbe_dm_win_info_t *); +int vpbe_disable_window(vpbe_dm_win_info_t *); +int vpbe_vid_osd_select_field_frame(u8 *, u8); +int vpbe_bitmap_set_blend_factor(u8 *, vpbe_bitmap_blend_params_t *); +int vpbe_bitmap_set_ram_clut(void); +int vpbe_enable_disable_attribute_window(u32); +int vpbe_get_blinking(u8 *, vpbe_blink_option_t *); +int vpbe_set_blinking(u8 *, vpbe_blink_option_t *); +int vpbe_set_vid_params(u8 *, vpbe_video_config_params_t *); +int vpbe_get_vid_params(u8 *, vpbe_video_config_params_t *); +int vpbe_bitmap_get_params(u8 *, vpbe_bitmap_config_params_t *); +int vpbe_bitmap_set_params(u8 *, vpbe_bitmap_config_params_t *); +int vpbe_set_cursor_params(struct fb_cursor *); +int vpbe_set_vid_expansion(vpbe_win_expansion_t *); +int vpbe_set_dclk(vpbe_dclk_t *); +int vpbe_set_display_format(vpbe_display_format_t *); +int vpbe_set_backg_color(vpbe_backg_color_t *); +int vpbe_set_interface(u8); +int vpbe_query_mode(vpbe_mode_info_t *); +int vpbe_set_mode(struct vpbe_fb_videomode *); +int vpbe_set_venc_clk_source(u8); +void set_vid0_default_conf(void); +void set_osd0_default_conf(void); +void set_vid1_default_conf(void); +void set_osd1_default_conf(void); +void set_cursor_default_conf(void); +void set_dm_default_conf(void); +/* + * Function definations for 'venc' module + */ + +void davincifb_ntsc_composite_config(void); +void davincifb_ntsc_svideo_config(void); +void davincifb_ntsc_component_config(void); +void davincifb_pal_composite_config(void); +void davincifb_pal_svideo_config(void); +void davincifb_pal_component_config(void); + +void vpbe_davincifb_ntsc_rgb_config(void); +void vpbe_davincifb_pal_rgb_config(void); +void vpbe_davincifb_525p_component_config(void); +void vpbe_davincifb_625p_component_config(void); + +void vpbe_enable_venc(int); +void vpbe_enable_dacs(int); +/* + * Function definations for 'dlcd' module + */ +void vpbe_davincifb_480p_prgb_config(void); +void vpbe_davincifb_400p_prgb_config(void); +void vpbe_davincifb_350p_prgb_config(void); +void vpbe_set_display_timing(struct vpbe_fb_videomode *); + +void vpbe_enable_lcd(int); +/* + * Following functions are not implemented + */ +void vpbe_davincifb_default_ycc16_config(void); +void vpbe_davincifb_default_ycc8_config(void); +void vpbe_davincifb_default_srgb_config(void); +void vpbe_davincifb_default_epson_config(void); +void vpbe_davincifb_default_casio_config(void); +void vpbe_davincifb_default_UDISP_config(void); +void vpbe_davincifb_default_STN_config(void); +#endif /*__KERNEL__*/ + +#endif /* End of #ifndef DAVINCI_VPBE_H */ diff -puNr -Naur directfb-1.6.3-orig/gfxdrivers/davinci/davinci_gfxdriver.h directfb-1.6.3/gfxdrivers/davinci/davinci_gfxdriver.h --- directfb-1.6.3-orig/gfxdrivers/davinci/davinci_gfxdriver.h 1970-01-01 01:00:00.000000000 +0100 +++ directfb-1.6.3/gfxdrivers/davinci/davinci_gfxdriver.h 2013-04-07 21:33:19.560662133 +0200 @@ -0,0 +1,169 @@ +/* + TI Davinci driver - Graphics Driver + + (c) Copyright 2007 Telio AG + + Written by Denis Oliver Kropp + + Code is derived from VMWare driver. + + (c) Copyright 2001-2009 The world wide DirectFB Open Source Community (directfb.org) + (c) Copyright 2000-2004 Convergence (integrated media) GmbH + + All rights reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +*/ + +#ifndef __DAVINCI_GFXDRIVER_H__ +#define __DAVINCI_GFXDRIVER_H__ + +#include +#include + +#include + +#include "davincifb.h" + +#include "davinci_c64x.h" + + +typedef struct { + /* validation flags */ + int v_flags; + + /* cached/computed values */ + void *dst_addr; + unsigned long dst_phys; + unsigned int dst_size; + unsigned long dst_pitch; + DFBSurfacePixelFormat dst_format; + unsigned long dst_bpp; + + void *src_addr; + unsigned long src_phys; + unsigned long src_pitch; + DFBSurfacePixelFormat src_format; + unsigned long src_bpp; + + unsigned long source_mult; + + unsigned long fillcolor; + + int blit_blend_sub_function; + int draw_blend_sub_function; + + DFBColor color; + unsigned long color_argb; + unsigned long colorkey; + + DFBSurfaceBlittingFlags blitting_flags; + + DFBRegion clip; + + /** Add shared data here... **/ + struct fb_fix_screeninfo fix[4]; + + CoreSurfacePool *osd_pool; + CoreSurfacePool *video_pool; + + bool synced; +} DavinciDeviceData; + + +typedef struct { + int num; + int fd; + void *mem; + int size; +} DavinciFB; + +typedef struct { + DavinciDeviceData *ddev; + + CoreDFB *core; + + CoreScreen *screen; + CoreLayer *osd; + CoreLayer *video; + + DavinciFB fb[4]; + + DavinciC64x c64x; + bool c64x_present; + + DavinciC64xTasks tasks; +} DavinciDriverData; + + +static inline DFBResult +davincifb_pan_display( const DavinciFB *fb, + struct fb_var_screeninfo *var, + const CoreSurfaceBufferLock *lock, + DFBSurfaceFlipFlags flags, + int x, + int y ) +{ + int ret; + + if (lock) { +#ifdef FBIO_SET_START + CoreSurfaceBuffer *buffer = lock->buffer; + struct fb_set_start set_start; + + /* physical mode */ + set_start.offset = -1; + set_start.sync = (flags & DSFLIP_ONSYNC) ? 1 : 0; + + /* life's so easy */ + set_start.physical = lock->phys + DFB_BYTES_PER_LINE( buffer->format, x ) + y * lock->pitch; + + ret = ioctl( fb->fd, FBIO_SET_START, &set_start ); + if (ret < 0) + D_DEBUG( "FBIO_SET_START (0x%08lx, sync %llu) failed!\n", + set_start.physical, set_start.sync ); + + if (ret == 0) { + if (flags & DSFLIP_WAIT) + ioctl( fb->fd, FBIO_WAITFORVSYNC ); + + return DFB_OK; + } + + /* fallback */ +#endif + var->xoffset = x; /* poor version */ + var->yoffset = y + lock->offset / lock->pitch; + } + else { + var->xoffset = x; + var->yoffset = y; + } + + var->activate = /*(flags & DSFLIP_ONSYNC) ? FB_ACTIVATE_VBL :*/ FB_ACTIVATE_NOW; + + ret = ioctl( fb->fd, FBIOPAN_DISPLAY, var ); + if (ret) + D_PERROR( "Davinci/FB: FBIOPAN_DISPLAY (fb%d - %d,%d) failed!\n", + fb->num, var->xoffset, var->yoffset ); + + if (flags & DSFLIP_WAIT) + ioctl( fb->fd, FBIO_WAITFORVSYNC ); + + return DFB_OK; +} + +#endif diff -puNr -Naur directfb-1.6.3-orig/tests/voodoo/voodoo_test.h directfb-1.6.3/tests/voodoo/voodoo_test.h --- directfb-1.6.3-orig/tests/voodoo/voodoo_test.h 1970-01-01 01:00:00.000000000 +0100 +++ directfb-1.6.3/tests/voodoo/voodoo_test.h 2013-04-07 21:33:31.824408024 +0200 @@ -0,0 +1,10 @@ +#ifndef __VOODOO_TEST_H__ +#define __VOODOO_TEST_H__ + +typedef enum { + VOODOO_TEST_INCREASE, + VOODOO_TEST_QUERY +} VoodooTestCall; + +#endif + ================================================ FILE: package/directfb/0002-imlib2-config.patch ================================================ From 8352c434e515f19dd1ba36256bfcc3ec9480838d Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 5 Mar 2015 22:38:52 +0100 Subject: [PATCH] imlib2 config Call the imlib2-conf variable that are set by ac_cv_path_IMLIB2_CONFIG with the absolute path because the imlib2-config file is not covered by the PATH variable. This is important for cross compiler that need to get the staging settings instead of the host settings. Signed-off-by: Carsten Schoenert [ patch configure.in instead of configure to survive autoreconf ] Signed-off-by: Peter Seiderer --- configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index 38d7e78..fa5e87f 100644 --- a/configure.in +++ b/configure.in @@ -1094,8 +1094,8 @@ if test "x$enable_imlib2" = "xyes"; then AC_MSG_WARN([*** Imlib2 library not found, building without Imlib2 support ***]) imlib2="no" else - IMLIB2_CFLAGS=`imlib2-config --cflags` - IMLIB2_LIBS=`imlib2-config --libs` + IMLIB2_CFLAGS=`$IMLIB2_CONFIG --cflags` + IMLIB2_LIBS=`$IMLIB2_CONFIG --libs` imlib2="yes" fi fi -- 2.1.4 ================================================ FILE: package/directfb/0003-setregion-lock.patch ================================================ This patch fixes builderrors while using '--with-gfxdrivers' and '--with-inputdrivers' with the current DirectFB version 1.6.3. Patch is taken from http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/DirectFB/files/DirectFB-1.6.3-setregion.patch Signed-off-by: Carsten Schoenert Index: b/gfxdrivers/cyber5k/cyber5k.c =================================================================== --- a/gfxdrivers/cyber5k/cyber5k.c +++ b/gfxdrivers/cyber5k/cyber5k.c @@ -640,7 +640,8 @@ CoreLayerRegionConfigFlags updated, CoreSurface *surface, CorePalette *palette, - CoreSurfaceBufferLock *lock ) + CoreSurfaceBufferLock *left_lock, + CoreSurfaceBufferLock *right_lock ) { DFBResult ret; @@ -648,7 +649,7 @@ ret = oldPrimaryFuncs.SetRegion( layer, oldPrimaryDriverData, layer_data, region_data, config, updated, surface, - palette, lock ); + palette, left_lock, right_lock ); if (ret) return ret; Index: b/gfxdrivers/radeon/radeon_crtc1.c =================================================================== --- a/gfxdrivers/radeon/radeon_crtc1.c +++ b/gfxdrivers/radeon/radeon_crtc1.c @@ -147,14 +147,15 @@ CoreLayerRegionConfigFlags updated, CoreSurface *surface, CorePalette *palette, - CoreSurfaceBufferLock *lock ) + CoreSurfaceBufferLock *left_lock, + CoreSurfaceBufferLock *right_lock ) { if (updated & ~CLRCF_OPTIONS) { return OldPrimaryLayerFuncs.SetRegion( layer, OldPrimaryLayerDriverData, layer_data, region_data, - config, updated, surface, palette, lock ); + config, updated, surface, palette, left_lock, right_lock ); } return DFB_OK; Index: b/gfxdrivers/cle266/uc_primary.c =================================================================== --- a/gfxdrivers/cle266/uc_primary.c +++ b/gfxdrivers/cle266/uc_primary.c @@ -142,7 +142,8 @@ CoreLayerRegionConfigFlags updated, CoreSurface *surface, CorePalette *palette, - CoreSurfaceBufferLock *lock ) + CoreSurfaceBufferLock *left_lock, + CoreSurfaceBufferLock *right_lock ) { DFBResult ret; UcDriverData *ucdrv = (UcDriverData*) driver_data; @@ -151,7 +152,7 @@ ret = ucOldPrimaryFuncs.SetRegion( layer, ucOldPrimaryDriverData, layer_data, region_data, config, updated, surface, - palette, lock ); + palette, left_lock, right_lock ); if (ret) return ret; Index: b/gfxdrivers/unichrome/uc_primary.c =================================================================== --- a/gfxdrivers/unichrome/uc_primary.c +++ b/gfxdrivers/unichrome/uc_primary.c @@ -139,7 +139,8 @@ CoreLayerRegionConfigFlags updated, CoreSurface *surface, CorePalette *palette, - CoreSurfaceBufferLock *lock ) + CoreSurfaceBufferLock *left_lock, + CoreSurfaceBufferLock *right_lock ) { DFBResult ret; UcDriverData *ucdrv = (UcDriverData*) driver_data; @@ -148,7 +149,7 @@ ret = ucOldPrimaryFuncs.SetRegion( layer, ucOldPrimaryDriverData, layer_data, region_data, config, updated, surface, - palette, lock ); + palette, left_lock, right_lock ); if (ret) return ret; ================================================ FILE: package/directfb/0004-use-gcc-link.patch ================================================ Add patch to use 'gcc' instead of 'ld' for linking The patch has been sent upstream but it has not been merged yet Signed-off-by: Markos Chandras From 176ce06b40897a357fe76a558af517197325f188 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Wed, 28 Aug 2013 10:56:32 +0100 Subject: [PATCH] rules/libobject.make: Use gcc for linking Invoking 'ld' directly may miss some necessary linker flags which are usually passed by gcc. Therefore, use gcc for linking. Signed-off-by: Markos Chandras --- rules/libobject.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/libobject.make b/rules/libobject.make index bc670da..2cba658 100644 --- a/rules/libobject.make +++ b/rules/libobject.make @@ -3,7 +3,7 @@ if test -d $<.tmp; then rmdir $<.tmp; fi mkdir $<.tmp (cd $<.tmp && $(AR) x ../../$<) - $(LD) -o $@ -r $<.tmp/*.o + $(CC) -nostdlib -o $@ -r $<.tmp/*.o rm -f $<.tmp/*.o && rmdir $<.tmp .PHONY: $(LTLIBRARIES:%.la=.libs/%.a) -- 1.8.3.2 ================================================ FILE: package/directfb/0005-add-missing-idivine-header.patch ================================================ Add idivine.h, which is missing from DirectFB tarballs The idivine.h file was taken from the DirectFB Git repository. Signed-off-by: Thomas Petazzoni Index: b/lib/divine/idivine.h =================================================================== --- /dev/null +++ b/lib/divine/idivine.h @@ -0,0 +1,54 @@ +/* + (c) Copyright 2012-2013 DirectFB integrated media GmbH + (c) Copyright 2001-2013 The world wide DirectFB Open Source Community (directfb.org) + (c) Copyright 2000-2004 Convergence (integrated media) GmbH + + All rights reserved. + + Written by Denis Oliver Kropp , + Andreas Shimokawa , + Marek Pikarski , + Sven Neumann , + Ville Syrjälä and + Claudio Ciccani . + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +*/ + + + +#ifndef __IDIVINE_H__ +#define __IDIVINE_H__ + +#include + +/* + * private data struct of IDiVine + */ +typedef struct { + int ref; /* reference counter */ + + DiVine *divine; +} IDiVine_data; + +/* + * IDiVine constructor/destructor + */ +DFBResult IDiVine_Construct( IDiVine *thiz ); + +void IDiVine_Destruct ( IDiVine *thiz ); + +#endif ================================================ FILE: package/directfb/0006-fix-client-gfx_state-initialisation.patch ================================================ From 8e53c0b9cedb62b82e2b7680d793d433b647ae20 Mon Sep 17 00:00:00 2001 From: Andre McCurdy Date: Mon, 13 Jun 2016 13:32:44 -0700 Subject: [PATCH] fix client->gfx_state initialisation Shortly before the DirectFB 1.7.7 release, an optimisation was added to CoreGraphicsStateClient_Init() to avoid creating an extended Graphics State object if it will not later be required: 4d422fb Client: Create extended Graphics State object when needed for later usage Unfortunately the client->gfx_state variable used to track the extended Graphics State object is not initialised, which can lead to crashes etc due to creation of the Graphics State object erroneously being skipped. Upstream-Status: Pending Signed-off-by: Andre McCurdy Signed-off-by: Philippe Reynes --- src/core/CoreGraphicsStateClient.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core/CoreGraphicsStateClient.cpp b/src/core/CoreGraphicsStateClient.cpp index 5d46f0e..5007755 100644 --- a/src/core/CoreGraphicsStateClient.cpp +++ b/src/core/CoreGraphicsStateClient.cpp @@ -364,6 +364,7 @@ CoreGraphicsStateClient_Init( CoreGraphicsStateClient *client, client->renderer = NULL; client->requestor = NULL; client->throttle = NULL; + client->gfx_state = NULL; if (dfb_config->task_manager) { if (dfb_config->call_nodirect) { -- 1.9.1 ================================================ FILE: package/directfb/Config.in ================================================ config BR2_PACKAGE_DIRECTFB bool "directfb" depends on !BR2_RISCV_32 depends on !BR2_STATIC_LIBS # static link issues 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 depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_ZLIB help DirectFB (Direct Frame Buffer) is a set of graphics APIs implemented on top of the Linux Frame Buffer (fbdev) abstraction layer. It is an alternative to X11 with a smaller memory footprint that still has an integrated windowing system. As of 4 October 2015, DirectFB's website http://www.directfb.org/ is down. See alternative site listed below. http://elinux.org/DirectFB if BR2_PACKAGE_DIRECTFB config BR2_PACKAGE_DIRECTFB_MULTI bool "directfb multi application" depends on BR2_USE_MMU # madvise() depends on BR2_LINUX_KERNEL select BR2_PACKAGE_LINUX_FUSION help Enable use of multiple concurrent DirectFB applications comment "directfb multi application needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_DIRECTFB_DEBUG_SUPPORT bool "directfb debugging support" default y help Compile DirectFB with debugging support. It provides functions to print debug information, for DirectFB as well as external DirectFB drivers. When disabled, DirectFB does not print any debug information. The drivers will be installed to and loaded from /usr/lib/directfb--pure instead of /usr/lib/directfb-. config BR2_PACKAGE_DIRECTFB_DEBUG bool "directfb debugging" depends on BR2_PACKAGE_DIRECTFB_DEBUG_SUPPORT help Compile DirectFB with lots of debug output config BR2_PACKAGE_DIRECTFB_TRACE bool "directfb call trace support" help Enable call tracing for DirectFB applications config BR2_PACKAGE_DIRECTFB_DIVINE bool "divine" help Enable the DiVine feature (virtual input) config BR2_PACKAGE_DIRECTFB_SAWMAN bool "sawman" help Enable the SawMan feature (window manager) config BR2_PACKAGE_DIRECTFB_ATI128 bool "compile ati128 graphics driver" depends on BR2_i386 || BR2_x86_64 config BR2_PACKAGE_DIRECTFB_MATROX bool "compile matrox graphics driver" depends on BR2_i386 || BR2_x86_64 config BR2_PACKAGE_DIRECTFB_PXA3XX bool "compile pxa3xx graphics driver" depends on BR2_arm help The Marvell PXA3xx Processor Family is a system-on-chip based on XScale® microarchitecture. This option enables the graphic driver support for the PXA3xx processor family. http://www.marvell.com/application-processors/pxa-family/ config BR2_PACKAGE_DIRECTFB_EP9X bool "compile ep9x graphics driver" depends on BR2_arm help Enable the graphic driver support for the EP93xx ARMv9 based processors from Cirrus Logic. http://cirrus.com/en/products/arm9.html config BR2_PACKAGE_DIRECTFB_I830 bool "compile i830 graphics driver" depends on BR2_i386 || BR2_x86_64 config BR2_PACKAGE_DIRECTFB_LINUXINPUT bool "compile /dev/input/eventX input driver" default y config BR2_PACKAGE_DIRECTFB_KEYBOARD bool "compile keyboard input driver" default y config BR2_PACKAGE_DIRECTFB_PS2MOUSE bool "compile PS2 mouse input driver" default y config BR2_PACKAGE_DIRECTFB_SERIALMOUSE bool "compile serial mouse input driver" default y config BR2_PACKAGE_DIRECTFB_TSLIB bool "enable touchscreen support" default y select BR2_PACKAGE_TSLIB config BR2_PACKAGE_DIRECTFB_GIF bool "enable GIF support" default y config BR2_PACKAGE_DIRECTFB_TIFF bool "enable TIFF support" select BR2_PACKAGE_TIFF config BR2_PACKAGE_DIRECTFB_IMLIB2 bool "enable IMLIB2 support" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_IMLIB2 comment "imlib2 support needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_DIRECTFB_JPEG bool "enable JPEG support" default y select BR2_PACKAGE_JPEG config BR2_PACKAGE_DIRECTFB_PNG bool "enable PNG support" default y select BR2_PACKAGE_LIBPNG config BR2_PACKAGE_DIRECTFB_SVG bool "enable SVG support" default y select BR2_PACKAGE_LIBSVG_CAIRO config BR2_PACKAGE_DIRECTFB_DITHER_RGB16 bool "enable advanced dithering of RGB16 surfaces" help Enable dithering when loading images to RGB16 surfaces. This increases the data section by 64 KBytes. config BR2_PACKAGE_DIRECTFB_TESTS bool "build directfb tests" endif # BR2_PACKAGE_DIRECTFB comment "directfb needs a glibc or uClibc toolchain w/ C++, NPTL, gcc >= 4.5, dynamic library" depends on !BR2_RISCV_32 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || BR2_TOOLCHAIN_USES_MUSL || \ BR2_STATIC_LIBS ================================================ FILE: package/directfb/directfb.hash ================================================ # Locally computed sha256 b785c638dc31b8fe3a7c81be1475c89b2255ab3d67b777c747d3fbc52f8027a3 DirectFB-1.7.7.tar.gz sha256 512d2d21b6b3384ba64781abb0208a1b87740bc31e2df48e2b206ddb7e4d5779 COPYING ================================================ FILE: package/directfb/directfb.mk ================================================ ################################################################################ # # directfb # ################################################################################ DIRECTFB_VERSION_MAJOR = 1.7 DIRECTFB_VERSION = $(DIRECTFB_VERSION_MAJOR).7 DIRECTFB_SITE = http://www.directfb.org/downloads/Core/DirectFB-$(DIRECTFB_VERSION_MAJOR) DIRECTFB_SOURCE = DirectFB-$(DIRECTFB_VERSION).tar.gz DIRECTFB_LICENSE = LGPL-2.1+ DIRECTFB_LICENSE_FILES = COPYING DIRECTFB_INSTALL_STAGING = YES DIRECTFB_AUTORECONF = YES DIRECTFB_CONF_OPTS = \ --enable-zlib \ --enable-freetype \ --enable-fbdev \ --disable-sdl \ --disable-vnc \ --disable-osx \ --disable-video4linux \ --disable-video4linux2 \ --without-tools \ --disable-x11 ifeq ($(BR2_STATIC_LIBS),y) DIRECTFB_CONF_OPTS += --disable-dynload endif DIRECTFB_CONFIG_SCRIPTS = directfb-config DIRECTFB_DEPENDENCIES = freetype zlib ifeq ($(BR2_PACKAGE_DIRECTFB_MULTI),y) DIRECTFB_CONF_OPTS += --enable-multi --enable-multi-kernel DIRECTFB_DEPENDENCIES += linux-fusion else DIRECTFB_CONF_OPTS += --disable-multi --disable-multi-kernel endif ifeq ($(BR2_PACKAGE_DIRECTFB_DEBUG_SUPPORT),y) DIRECTFB_CONF_OPTS += --enable-debug-support ifeq ($(BR2_PACKAGE_DIRECTFB_DEBUG),y) DIRECTFB_CONF_OPTS += --enable-debug endif else DIRECTFB_CONF_OPTS += --disable-debug-support endif ifeq ($(BR2_PACKAGE_DIRECTFB_TRACE),y) DIRECTFB_CONF_OPTS += --enable-trace endif ifeq ($(BR2_PACKAGE_DIRECTFB_DIVINE),y) DIRECTFB_CONF_OPTS += --enable-divine else DIRECTFB_CONF_OPTS += --disable-divine endif ifeq ($(BR2_PACKAGE_DIRECTFB_SAWMAN),y) DIRECTFB_CONF_OPTS += --enable-sawman else DIRECTFB_CONF_OPTS += --disable-sawman endif DIRECTFB_GFX = \ $(if $(BR2_PACKAGE_DIRECTFB_ATI128),ati128) \ $(if $(BR2_PACKAGE_DIRECTFB_CYBER5K),cyber5k) \ $(if $(BR2_PACKAGE_DIRECTFB_MATROX),matrox) \ $(if $(BR2_PACKAGE_DIRECTFB_PXA3XX),pxa3xx) \ $(if $(BR2_PACKAGE_DIRECTFB_I830),i830) \ $(if $(BR2_PACKAGE_DIRECTFB_EP9X),ep9x) ifeq ($(strip $(DIRECTFB_GFX)),) DIRECTFB_CONF_OPTS += --with-gfxdrivers=none else DIRECTFB_CONF_OPTS += \ --with-gfxdrivers=$(subst $(space),$(comma),$(strip $(DIRECTFB_GFX))) endif DIRECTFB_INPUT = \ $(if $(BR2_PACKAGE_DIRECTFB_LINUXINPUT),linuxinput) \ $(if $(BR2_PACKAGE_DIRECTFB_KEYBOARD),keyboard) \ $(if $(BR2_PACKAGE_DIRECTFB_PS2MOUSE),ps2mouse) \ $(if $(BR2_PACKAGE_DIRECTFB_SERIALMOUSE),serialmouse) \ $(if $(BR2_PACKAGE_DIRECTFB_TSLIB),tslib) ifeq ($(BR2_PACKAGE_DIRECTFB_TSLIB),y) DIRECTFB_DEPENDENCIES += tslib endif ifeq ($(strip $(DIRECTFB_INPUT)),) DIRECTFB_CONF_OPTS += --with-inputdrivers=none else DIRECTFB_CONF_OPTS += \ --with-inputdrivers=$(subst $(space),$(comma),$(strip $(DIRECTFB_INPUT))) endif ifeq ($(BR2_PACKAGE_DIRECTFB_GIF),y) DIRECTFB_CONF_OPTS += --enable-gif else DIRECTFB_CONF_OPTS += --disable-gif endif ifeq ($(BR2_PACKAGE_DIRECTFB_TIFF),y) DIRECTFB_CONF_OPTS += --enable-tiff DIRECTFB_DEPENDENCIES += tiff else DIRECTFB_CONF_OPTS += --disable-tiff endif ifeq ($(BR2_PACKAGE_DIRECTFB_PNG),y) DIRECTFB_CONF_OPTS += --enable-png DIRECTFB_DEPENDENCIES += libpng DIRECTFB_CONF_ENV += ac_cv_path_LIBPNG_CONFIG=$(STAGING_DIR)/usr/bin/libpng-config else DIRECTFB_CONF_OPTS += --disable-png endif ifeq ($(BR2_PACKAGE_DIRECTFB_JPEG),y) DIRECTFB_CONF_OPTS += --enable-jpeg DIRECTFB_DEPENDENCIES += jpeg else DIRECTFB_CONF_OPTS += --disable-jpeg endif ifeq ($(BR2_PACKAGE_DIRECTFB_SVG),y) DIRECTFB_CONF_OPTS += --enable-svg # needs some help to find cairo includes DIRECTFB_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -I$(STAGING_DIR)/usr/include/cairo" DIRECTFB_DEPENDENCIES += libsvg-cairo else DIRECTFB_CONF_OPTS += --disable-svg endif ifeq ($(BR2_PACKAGE_DIRECTFB_IMLIB2),y) DIRECTFB_CONF_OPTS += --enable-imlib2 DIRECTFB_DEPENDENCIES += imlib2 DIRECTFB_CONF_ENV += ac_cv_path_IMLIB2_CONFIG=$(STAGING_DIR)/usr/bin/imlib2-config else DIRECTFB_CONF_OPTS += --disable-imlib2 endif ifeq ($(BR2_PACKAGE_DIRECTFB_DITHER_RGB16),y) DIRECTFB_CONF_OPTS += --with-dither-rgb16=advanced else DIRECTFB_CONF_OPTS += --with-dither-rgb16=none endif ifeq ($(BR2_PACKAGE_DIRECTFB_TESTS),y) DIRECTFB_CONF_OPTS += --with-tests endif HOST_DIRECTFB_DEPENDENCIES = host-pkgconf host-libpng HOST_DIRECTFB_CONF_OPTS = \ --disable-multi \ --enable-png \ --with-gfxdrivers=none \ --with-inputdrivers=none HOST_DIRECTFB_BUILD_CMDS = \ $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/tools directfb-csource HOST_DIRECTFB_INSTALL_CMDS = \ $(INSTALL) -m 0755 $(@D)/tools/directfb-csource $(HOST_DIR)/bin $(eval $(autotools-package)) $(eval $(host-autotools-package)) # directfb-csource for the host DIRECTFB_HOST_BINARY = $(HOST_DIR)/bin/directfb-csource ================================================ FILE: package/directfb-examples/0001-remove-bzero.patch ================================================ --- src/df_knuckles/matrix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: directfb-examples-1.2.0/src/df_knuckles/matrix.c =================================================================== --- directfb-examples-1.2.0.orig/src/df_knuckles/matrix.c +++ directfb-examples-1.2.0/src/df_knuckles/matrix.c @@ -19,7 +19,7 @@ static float Cosine[3600]; static float Sine[3600]; -#define M_CLEAR(m) bzero(m, MATRIX_SIZE) +#define M_CLEAR(m) memset(m, 0, MATRIX_SIZE) #define M_IDENTITY(m) memcpy(m, IdentityMatrix, MATRIX_SIZE) static void MultiplyMatrix(float *A, float *B) ================================================ FILE: package/directfb-examples/Config.in ================================================ config BR2_PACKAGE_DIRECTFB_EXAMPLES bool "directfb examples" depends on BR2_PACKAGE_DIRECTFB help The DirectFB-examples package contains a set of simple DirectFB applications that can be used to test and demonstrate various DirectFB features. http://directfb.org/downloads/Extras/README.DirectFB-examples ================================================ FILE: package/directfb-examples/directfb-examples.hash ================================================ # Locally computed sha256 9a2104cc4da8123c8371813551b66b943198979f745cbebc034bb5e10844122a DirectFB-examples-1.7.0.tar.gz sha256 f91483684678e8aa8ccc4ee0ede3140b0494f8305e162695c7e6e3f83e54f236 COPYING ================================================ FILE: package/directfb-examples/directfb-examples.mk ================================================ ################################################################################ # # directfb-examples # ################################################################################ DIRECTFB_EXAMPLES_VERSION = 1.7.0 DIRECTFB_EXAMPLES_SITE = http://www.directfb.org/downloads/Extras DIRECTFB_EXAMPLES_SOURCE = DirectFB-examples-$(DIRECTFB_EXAMPLES_VERSION).tar.gz DIRECTFB_EXAMPLES_LICENSE = MIT DIRECTFB_EXAMPLES_LICENSE_FILES = COPYING DIRECTFB_EXAMPLES_DEPENDENCIES = directfb ifeq ($(BR2_STATIC_LIBS),y) DIRECTFB_EXAMPLES_CONF_OPTS += LIBS=-lstdc++ endif $(eval $(autotools-package)) ================================================ FILE: package/dmalloc/0001-mips.patch ================================================ --- a/configure +++ b/configure @@ -7107,7 +7107,7 @@ echo $ECHO_N "checking return.h macros work... $ECHO_C" >&6 if test "$cross_compiling" = yes; then cat >>confdefs.h <<\_ACEOF -#define RETURN_MACROS_WORK 0 +#define RETURN_MACROS_WORK 1 _ACEOF echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 --- a/return.h +++ b/return.h @@ -106,26 +106,16 @@ /*************************************/ /* - * For DEC Mips machines running Ultrix + * For Mips machines running Linux */ #if __mips /* - * I have no idea how to get inline assembly with the default cc. - * Anyone know how? - */ - -#if 0 - -/* * NOTE: we assume here that file is global. * - * $31 is the frame pointer. $2 looks to be the return address but maybe - * not consistently. + * $31 is the return address. */ -#define GET_RET_ADDR(file) asm("sw $2, file") - -#endif +#define GET_RET_ADDR(file) asm("sw $31, %0" : "=m" (file)) #endif /* __mips */ ================================================ FILE: package/dmalloc/0002-fix-parallel-build.patch ================================================ Fix parallel build issue Missing dmallocc.o <- dmalloc.h dependency may break parallel builds. dmalloc.h is generated,and may not be around by the time gcc starts parsing dmallocc.cc. Signed-off-by: Alex Suykov --- a/Makefile.in +++ b/Makefile.in @@ -401,6 +401,7 @@ compat.o: compat.c conf.h settings.h dmalloc.h compat.h dmalloc_loc.h dmalloc.o: dmalloc.c conf.h settings.h dmalloc_argv.h dmalloc.h compat.h \ debug_tok.h dmalloc_loc.h env.h error_val.h version.h +dmallocc.o: dmallocc.cc dmalloc.h return.h conf.h settings.h dmalloc_argv.o: dmalloc_argv.c conf.h settings.h dmalloc_argv.h \ dmalloc_argv_loc.h compat.h dmalloc_fc_t.o: dmalloc_fc_t.c conf.h settings.h dmalloc.h dmalloc_argv.h \ ================================================ FILE: package/dmalloc/0003-fix-shlibs.patch ================================================ Fix shared library rules dmalloc uses ld -shared --whole-archive -o lib.so lib.a, but for some reason lists regular objects in addition to the archive, ending up with two copies of each symbol. Signed-off-by: Alex Suykov --- a/Makefile.in +++ b/Makefile.in @@ -257,7 +257,7 @@ shlib : $(BUILD_SL) # via: http://256.com/gray/email.html $(LIB_SL) : $(LIBRARY) rm -f $@ $@.t - @shlinkargs@ $(LIBRARY) $(OBJS) $(NORMAL_OBJS) + @shlinkargs@ $(LIBRARY) mv $@.t $@ $(LIBRARY) : $(OBJS) $(NORMAL_OBJS) @@ -270,7 +270,7 @@ $(LIB_TH) : $(OBJS) $(THREAD_OBJS) $(LIB_TH_SL) : $(LIB_TH) rm -f $@ $@.t - @shlinkargs@ $(LIB_TH) $(OBJS) $(THREAD_OBJS) + @shlinkargs@ $(LIB_TH) mv $@.t $@ $(LIB_CXX) : $(OBJS) $(NORMAL_OBJS) $(CXX_OBJS) @@ -279,7 +279,7 @@ $(LIB_CXX) : $(OBJS) $(NORMAL_OBJS) $(CXX_OBJS) $(LIB_CXX_SL) : $(LIB_CXX) rm -f $@ $@.t - @shlinkargs@ $(LIB_CXX) $(OBJS) $(NORMAL_OBJS) $(CXX_OBJS) + @shlinkargs@ $(LIB_CXX) mv $@.t $@ $(LIB_TH_CXX) : $(OBJS) $(THREAD_OBJS) $(CXX_OBJS) @@ -288,7 +288,7 @@ $(LIB_TH_CXX) : $(OBJS) $(THREAD_OBJS) $(CXX_OBJS) $(LIB_TH_CXX_SL) : $(LIB_TH_CXX) rm -f $@ $@.t - @shlinkargs@ $(LIB_TH_CXX) $(OBJS) $(THREAD_OBJS) $(CXX_OBJS) + @shlinkargs@ $(LIB_TH_CXX) mv $@.t $@ threadssl : $(LIB_TH_SL) ================================================ FILE: package/dmalloc/0004-fix-strdup.patch ================================================ From 59d73a473f1c1a31bcba90d314f956d0bcc3de95 Mon Sep 17 00:00:00 2001 From: Siana Gearz Date: Sat, 8 Sep 2012 22:55:17 +0200 Subject: [PATCH] Fix strdup [Retrieved from: https://github.com/siana/dmalloc/commit/59d73a473f1c1a31bcba90d314f956d0bcc3de95] Signed-off-by: Fabrice Fontaine --- dmalloc.h.3 | 1 + 1 file changed, 1 insertion(+) diff --git a/dmalloc.h.3 b/dmalloc.h.3 index d3d1c13..3fc573a 100644 --- a/dmalloc.h.3 +++ b/dmalloc.h.3 @@ -459,6 +459,7 @@ DMALLOC_PNT valloc(DMALLOC_SIZE size); * * string -> String we are duplicating. */ +#undef strdup extern char *strdup(const char *string); #endif /* ifndef DMALLOC_STRDUP_MACRO */ ================================================ FILE: package/dmalloc/0005-fix-strndup.patch ================================================ From 005d92c2cebbde5c8623daa29725f7a62b18df7c Mon Sep 17 00:00:00 2001 From: Siana Gearz Date: Sat, 8 Sep 2012 22:44:35 +0200 Subject: [PATCH] Fix strndup [Retrieved from: https://github.com/siana/dmalloc/commit/005d92c2cebbde5c8623daa29725f7a62b18df7c] Signed-off-by: Fabrice Fontaine --- dmalloc.h.3 | 1 + 1 file changed, 1 insertion(+) diff --git a/dmalloc.h.3 b/dmalloc.h.3 index 8bda997..fb538a8 100644 --- a/dmalloc.h.3 +++ b/dmalloc.h.3 @@ -429,6 +429,7 @@ char *strdup(const char *string); * * len -> Length of the string to duplicate. */ +#undef strndup extern char *strndup(const char *string, const DMALLOC_SIZE len); ================================================ FILE: package/dmalloc/Config.in ================================================ config BR2_PACKAGE_DMALLOC bool "dmalloc" help A debug memory allocation library which is a drop in replacement for the system's malloc, realloc, calloc, free and other memory management routines while providing powerful debugging facilities configurable at runtime. http://dmalloc.com/ ================================================ FILE: package/dmalloc/dmalloc.hash ================================================ # Locally computed: sha256 d3be5c6eec24950cb3bd67dbfbcdf036f1278fae5fd78655ef8cdf9e911e428a dmalloc-5.5.2.tgz sha256 8659d49ceeeb006288ad246164e504ccfe33f7a4c1680439fb6ff6a393b0722b dmalloc.h.1 ================================================ FILE: package/dmalloc/dmalloc.mk ================================================ ################################################################################ # # dmalloc # ################################################################################ DMALLOC_VERSION = 5.5.2 DMALLOC_SOURCE = dmalloc-$(DMALLOC_VERSION).tgz DMALLOC_SITE = http://dmalloc.com/releases DMALLOC_LICENSE = MIT-like # license is in each file, dmalloc.h.1 is the smallest one DMALLOC_LICENSE_FILES = dmalloc.h.1 DMALLOC_INSTALL_STAGING = YES DMALLOC_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_STATIC_LIBS),y) DMALLOC_CONF_OPTS += --disable-shlib else DMALLOC_CONF_OPTS += --enable-shlib DMALLOC_CFLAGS += -fPIC endif ifeq ($(BR2_INSTALL_LIBSTDCPP),y) DMALLOC_CONF_OPTS += --enable-cxx else DMALLOC_CONF_OPTS += --disable-cxx endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) DMALLOC_CONF_OPTS += --enable-threads else DMALLOC_CONF_OPTS += --disable-threads endif # dmalloc has some assembly function that are not present in thumb1 mode: # Error: lo register required -- `str lr,[sp,#4]' # so, we desactivate thumb mode ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y) DMALLOC_CFLAGS += -marm endif ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_63261),y) DMALLOC_CFLAGS += -O0 endif DMALLOC_CONF_ENV = CFLAGS="$(DMALLOC_CFLAGS)" define DMALLOC_POST_PATCH $(SED) 's/^ac_cv_page_size=0$$/ac_cv_page_size=12/' $(@D)/configure $(SED) 's/(ld -/($${LD-ld} -/' $(@D)/configure $(SED) 's/'\''ld -/"$${LD-ld}"'\'' -/' $(@D)/configure $(SED) 's/ar cr/$$(AR) cr/' $(@D)/Makefile.in endef DMALLOC_POST_PATCH_HOOKS += DMALLOC_POST_PATCH # both DESTDIR and PREFIX are ignored.. define DMALLOC_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) includedir="$(STAGING_DIR)/usr/include" \ bindir="$(STAGING_DIR)/usr/bin" \ libdir="$(STAGING_DIR)/usr/lib" \ shlibdir="$(STAGING_DIR)/usr/lib" \ infodir="$(STAGING_DIR)/usr/share/info/" \ -C $(@D) install endef 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 $(eval $(autotools-package)) ================================================ FILE: package/dmidecode/Config.in ================================================ config BR2_PACKAGE_DMIDECODE bool "dmidecode" depends on BR2_aarch64 || BR2_i386 || BR2_x86_64 help Dmidecode reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard. http://www.nongnu.org/dmidecode/ ================================================ FILE: package/dmidecode/dmidecode.hash ================================================ # Locally computed sha256 82c737a780614c38a783e8055340d295e332fb12c7f418b5d21a0797d3fb1455 dmidecode-3.3.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/dmidecode/dmidecode.mk ================================================ ################################################################################ # # dmidecode # ################################################################################ DMIDECODE_VERSION = 3.3 DMIDECODE_SOURCE = dmidecode-$(DMIDECODE_VERSION).tar.xz DMIDECODE_SITE = http://download.savannah.gnu.org/releases/dmidecode DMIDECODE_LICENSE = GPL-2.0+ DMIDECODE_LICENSE_FILES = LICENSE DMIDECODE_SELINUX_MODULES = dmidecode define DMIDECODE_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) endef define DMIDECODE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) prefix=/usr DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/dmraid/0001-fix-compilation-under-musl.patch ================================================ From 89c7fc15e064dd407e6d5ccefe78985b86b8a036 Mon Sep 17 00:00:00 2001 From: Brendan Heading Date: Tue, 1 Sep 2015 12:26:36 +0100 Subject: [PATCH 1/1] fix compilation under musl Patch borrowed from Void Linux : https://github.com/voidlinux/void-packages/blob/master/srcpkgs/dmraid/patches/25_musl-libc.patch Upstream package appears dormant, no mailing list and no maintainence releases since Nov 2010. Upstream-Status: dormant Signed-off-by: Brendan Heading --- 1.0.0.rc16-3/dmraid/include/dmraid/misc.h | 1 + 1.0.0.rc16-3/dmraid/lib/device/scan.c | 1 + 2 files changed, 2 insertions(+) diff --git a/1.0.0.rc16-3/dmraid/include/dmraid/misc.h b/1.0.0.rc16-3/dmraid/include/dmraid/misc.h index 247a68e..1b1dfdf 100644 --- a/1.0.0.rc16-3/dmraid/include/dmraid/misc.h +++ b/1.0.0.rc16-3/dmraid/include/dmraid/misc.h @@ -10,6 +10,7 @@ #ifndef _MISC_H_ #define _MISC_H_ +#include #define DM_ASSERT(__cond) do { if (!(__cond)) { printf("ASSERT file:%s line:%d fuction:%s cond: %s\n", __FILE__, __LINE__, __FUNCTION__, #__cond); } } while(0); diff --git a/1.0.0.rc16-3/dmraid/lib/device/scan.c b/1.0.0.rc16-3/dmraid/lib/device/scan.c index a040d53..6897146 100644 --- a/1.0.0.rc16-3/dmraid/lib/device/scan.c +++ b/1.0.0.rc16-3/dmraid/lib/device/scan.c @@ -10,6 +10,7 @@ # include # include #else +# include # include # include #endif -- 2.4.3 ================================================ FILE: package/dmraid/Config.in ================================================ config BR2_PACKAGE_DMRAID bool "dmraid" depends on BR2_TOOLCHAIN_HAS_THREADS # lvm2 depends on BR2_USE_MMU # lvm2 depends on !BR2_STATIC_LIBS # lvm2 select BR2_PACKAGE_LVM2 help dmraid discovers, activates, deactivates and displays properties of software RAID sets (eg, ATARAID) and contained DOS partitions. dmraid uses the Linux device-mapper to create devices with respective mappings for the ATARAID sets discovered. http://people.redhat.com/~heinzm/sw/dmraid/ comment "dmraid needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/dmraid/S20dmraid ================================================ #!/bin/sh set -e # try to load module in case that hasn't been done yet modprobe dm-mod >/dev/null 2>&1 case "$1" in start|"") echo "Setting up DMRAID devices..." /usr/sbin/dmraid --activate yes --ignorelocking --verbose ;; stop) echo "Shutting down DMRAID devices... " /usr/sbin/dmraid --activate no --ignorelocking --verbose ;; restart|force-reload) $0 stop sleep 1 $0 start ;; *) echo "Usage: dmraid {start|stop|restart|force-reload}" exit 1 ;; esac ================================================ FILE: package/dmraid/dmraid.hash ================================================ # From http://people.redhat.com/~heinzm/sw/dmraid/src/dmraid-1.0.0.rc16-3.tar.bz2.md5.sum md5 819338fcef98e8e25819f0516722beeb dmraid-1.0.0.rc16-3.tar.bz2 # locally computed sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 1.0.0.rc16-3/dmraid/LICENSE_GPL sha256 4bc391fcf852e03c3a7564cb146af6e47717562eed296b28bce123ee1b0396b8 1.0.0.rc16-3/dmraid/LICENSE ================================================ FILE: package/dmraid/dmraid.mk ================================================ ################################################################################ # # dmraid # ################################################################################ DMRAID_VERSION = 1.0.0.rc16-3 DMRAID_SOURCE = dmraid-$(DMRAID_VERSION).tar.bz2 DMRAID_SITE = http://people.redhat.com/~heinzm/sw/dmraid/src DMRAID_SUBDIR = $(DMRAID_VERSION)/dmraid # lib and tools race with parallel make DMRAID_MAKE = $(MAKE1) DMRAID_INSTALL_STAGING = YES DMRAID_LICENSE = GPL-2.0 DMRAID_LICENSE_FILES = $(DMRAID_SUBDIR)/LICENSE_GPL $(DMRAID_SUBDIR)/LICENSE DMRAID_DEPENDENCIES = lvm2 define DMRAID_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/dmraid/S20dmraid \ $(TARGET_DIR)/etc/init.d/S20dmraid endef $(eval $(autotools-package)) ================================================ FILE: package/dnsmasq/Config.in ================================================ config BR2_PACKAGE_DNSMASQ bool "dnsmasq" depends on BR2_USE_MMU # fork() help A lightweight DNS and DHCP server. It is intended to provide coupled DNS and DHCP service to a LAN. http://www.thekelleys.org.uk/dnsmasq/doc.html if BR2_PACKAGE_DNSMASQ config BR2_PACKAGE_DNSMASQ_TFTP bool "tftp support" default y help Enable TFTP support in dnsmasq. config BR2_PACKAGE_DNSMASQ_DHCP bool "dhcp support" default y help Enable DHCP server support in dnsmasq. config BR2_PACKAGE_DNSMASQ_DNSSEC bool "DNSSEC support" select BR2_PACKAGE_GMP select BR2_PACKAGE_NETTLE help Enable DNSSEC validation and caching support. config BR2_PACKAGE_DNSMASQ_IDN bool "IDN support" select BR2_PACKAGE_LIBIDN2 if !BR2_PACKAGE_LIBIDN help Enable IDN support in dnsmasq. This option is a big space taker since it pulls in many libraries. config BR2_PACKAGE_DNSMASQ_LUA bool "Lua scripting support" depends on BR2_PACKAGE_LUA help Enable Lua scripting for dnsmasq config BR2_PACKAGE_DNSMASQ_CONNTRACK bool "conntrack marking support" select BR2_PACKAGE_LIBNETFILTER_CONNTRACK help Enable DNS query connection marking in netfilter. endif ================================================ FILE: package/dnsmasq/S80dnsmasq ================================================ #!/bin/sh [ -f /etc/dnsmasq.conf ] || exit 0 case "$1" in start) printf "Starting dnsmasq: " start-stop-daemon -S -x /usr/sbin/dnsmasq [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping dnsmasq: " start-stop-daemon -K -q -x /usr/sbin/dnsmasq [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart|reload) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0 ================================================ FILE: package/dnsmasq/dnsmasq.hash ================================================ # Locally calculated after checking pgp signature # https://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.85.tar.xz.asc sha256 ad98d3803df687e5b938080f3d25c628fe41c878752d03fbc6199787fee312fa dnsmasq-2.85.tar.xz # Locally calculated sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING-v3 ================================================ FILE: package/dnsmasq/dnsmasq.mk ================================================ ################################################################################ # # dnsmasq # ################################################################################ DNSMASQ_VERSION = 2.85 DNSMASQ_SOURCE = dnsmasq-$(DNSMASQ_VERSION).tar.xz DNSMASQ_SITE = http://thekelleys.org.uk/dnsmasq DNSMASQ_MAKE_ENV = $(TARGET_MAKE_ENV) CC="$(TARGET_CC)" DNSMASQ_MAKE_OPTS = COPTS="$(DNSMASQ_COPTS)" PREFIX=/usr CFLAGS="$(TARGET_CFLAGS)" DNSMASQ_MAKE_OPTS += DESTDIR=$(TARGET_DIR) LDFLAGS="$(TARGET_LDFLAGS)" \ LIBS+=$(TARGET_NLS_LIBS) DNSMASQ_DEPENDENCIES = host-pkgconf $(TARGET_NLS_DEPENDENCIES) DNSMASQ_LICENSE = GPL-2.0 or GPL-3.0 DNSMASQ_LICENSE_FILES = COPYING COPYING-v3 DNSMASQ_CPE_ID_VENDOR = thekelleys DNSMASQ_SELINUX_MODULES = dnsmasq DNSMASQ_I18N = $(if $(BR2_SYSTEM_ENABLE_NLS),-i18n) ifneq ($(BR2_PACKAGE_DNSMASQ_DHCP),y) DNSMASQ_COPTS += -DNO_DHCP endif ifeq ($(BR2_PACKAGE_DNSMASQ_DNSSEC),y) DNSMASQ_DEPENDENCIES += gmp nettle DNSMASQ_COPTS += -DHAVE_DNSSEC ifeq ($(BR2_STATIC_LIBS),y) DNSMASQ_COPTS += -DHAVE_DNSSEC_STATIC endif endif ifneq ($(BR2_PACKAGE_DNSMASQ_TFTP),y) DNSMASQ_COPTS += -DNO_TFTP endif ifeq ($(BR2_PACKAGE_DNSMASQ_IDN),y) ifeq ($(BR2_PACKAGE_LIBIDN2),y) DNSMASQ_DEPENDENCIES += libidn2 DNSMASQ_COPTS += -DHAVE_LIBIDN2 else DNSMASQ_DEPENDENCIES += libidn DNSMASQ_COPTS += -DHAVE_IDN endif endif ifeq ($(BR2_PACKAGE_DNSMASQ_CONNTRACK),y) DNSMASQ_DEPENDENCIES += libnetfilter_conntrack DNSMASQ_COPTS += -DHAVE_CONNTRACK endif ifeq ($(BR2_PACKAGE_DNSMASQ_LUA),y) DNSMASQ_DEPENDENCIES += lua DNSMASQ_COPTS += -DHAVE_LUASCRIPT # liblua uses dlopen when dynamically linked ifneq ($(BR2_STATIC_LIBS),y) DNSMASQ_MAKE_OPTS += LIBS+="-ldl" endif define DNSMASQ_TWEAK_LIBLUA $(SED) 's/lua5.2/lua/g' $(DNSMASQ_DIR)/Makefile endef endif ifeq ($(BR2_PACKAGE_DBUS),y) DNSMASQ_DEPENDENCIES += dbus DNSMASQ_COPTS += -DHAVE_DBUS define DNSMASQ_INSTALL_DBUS $(INSTALL) -m 0644 -D $(@D)/dbus/dnsmasq.conf \ $(TARGET_DIR)/etc/dbus-1/system.d/dnsmasq.conf endef endif ifeq ($(BR2_PACKAGE_UBUS),y) DNSMASQ_DEPENDENCIES += ubus DNSMASQ_COPTS += -DHAVE_UBUS endif define DNSMASQ_BUILD_CMDS $(DNSMASQ_TWEAK_LIBLUA) $(DNSMASQ_MAKE_ENV) $(MAKE) -C $(@D) $(DNSMASQ_MAKE_OPTS) all$(DNSMASQ_I18N) endef define DNSMASQ_INSTALL_TARGET_CMDS $(DNSMASQ_MAKE_ENV) $(MAKE) -C $(@D) $(DNSMASQ_MAKE_OPTS) install$(DNSMASQ_I18N) mkdir -p $(TARGET_DIR)/var/lib/misc/ $(DNSMASQ_INSTALL_DBUS) endef define DNSMASQ_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/dnsmasq/S80dnsmasq \ $(TARGET_DIR)/etc/init.d/S80dnsmasq endef $(eval $(generic-package)) ================================================ FILE: package/doc-asciidoc.mk ================================================ # we can't use suitable-host-package here because that's not available in # the context of 'make release' .PHONY: asciidoc-check-dependencies asciidoc-check-dependencies: $(Q)if [ -z "$(shell support/dependencies/check-host-asciidoc.sh)" ]; then \ echo "You need a sufficiently recent asciidoc on your host" \ "to generate documents"; \ exit 1; \ fi $(Q)if [ -z "`which w3m 2>/dev/null`" ]; then \ echo "You need w3m on your host to generate documents"; \ exit 1; \ fi asciidoc-check-dependencies-pdf: $(Q)if [ -z "`which dblatex 2>/dev/null`" ]; then \ echo "You need dblatex on your host to generate PDF documents"; \ exit 1; \ fi # PDF generation is broken because of a bug in xsltproc program provided # by libxslt <=1.1.28, which does not honor an option we need to set. # Fortunately, this bug is already fixed upstream: # https://gitorious.org/libxslt/libxslt/commit/5af7ad745323004984287e48b42712e7305de35c # # So, bail out when trying to build a PDF using a buggy version of the # xsltproc program. # # So, to overcome this issue and being able to build a PDF, you can # build xsltproc from its source repository, then run: # $ PATH=/path/to/custom-xsltproc/bin:${PATH} make manual GENDOC_XSLTPROC_IS_BROKEN = \ $(shell xsltproc --maxvars 0 >/dev/null 2>/dev/null || echo y) # Apply this configuration to all documents BR_ASCIIDOC_CONF = docs/conf/asciidoc.conf ################################################################################ # ASCIIDOC_INNER -- generates the make targets needed to build a specific type of # asciidoc documentation. # # argument 1 is the name of the document and the top-level asciidoc file must # have the same name # argument 2 is the uppercase name of the document # argument 3 is the directory containing the document # argument 4 is the type of document to generate (-f argument of a2x) # argument 5 is the document type as used in the make target # argument 6 is the output file extension for the document type # argument 7 is the human text for the document type # argument 8 (optional) are extra arguments for a2x # # The variable _SOURCES defines the dependencies. # # Since this function will be called from within an $(eval ...) # all variable references except the arguments must be $$-quoted. ################################################################################ define ASCIIDOC_INNER $(1): $(1)-$(5) .PHONY: $(1)-$(5) $(1)-$(5): $$(O)/docs/$(1)/$(1).$(6) asciidoc-check-dependencies-$(5): .PHONY: $(1)-check-dependencies-$(5) # Single line, because splitting a foreach is not easy... $(1)-check-dependencies-$(5): asciidoc-check-dependencies-$(5) $$(Q)$$(foreach hook,$$($(2)_CHECK_DEPENDENCIES_$$(call UPPERCASE,$(5))_HOOKS),$$(call $$(hook))$$(sep)) # Include Buildroot's AsciiDoc configuration first: # - generic configuration, # - then output-specific configuration ifneq ($$(wildcard $$(BR_ASCIIDOC_CONF)),) $(2)_$(4)_ASCIIDOC_OPTS += -f $$(BR_ASCIIDOC_CONF) endif BR_$(4)_ASCIIDOC_CONF = docs/conf/asciidoc-$(4).conf ifneq ($$(wildcard $$(BR_$(4)_ASCIIDOC_CONF)),) $(2)_$(4)_ASCIIDOC_OPTS += -f $$(BR_$(4)_ASCIIDOC_CONF) endif # Then include the document's AsciiDoc configuration: # - generic configuration, # - then output-specific configuration ifneq ($$(wildcard $$($(2)_ASCIIDOC_CONF)),) $(2)_$(4)_ASCIIDOC_OPTS += -f $$($(2)_ASCIIDOC_CONF) endif $(2)_$(4)_ASCIIDOC_CONF = $(3)/asciidoc-$(4).conf ifneq ($$(wildcard $$($(2)_$(4)_ASCIIDOC_CONF)),) $(2)_$(4)_ASCIIDOC_OPTS += -f $$($(2)_$(4)_ASCIIDOC_CONF) endif # Handle a2x warning about --destination-dir option only applicable to HTML # based outputs. So: # - use the --destination-dir option if possible (html and split-html), # - otherwise copy the generated document to the output directory $(2)_$(4)_A2X_OPTS = ifneq ($$(filter $(5),html split-html),) $(2)_$(4)_A2X_OPTS += --destination-dir="$$(@D)" else define $(2)_$(4)_INSTALL_CMDS $$(Q)cp -f $$(BUILD_DIR)/docs/$(1)/$(1).$(6) $$(@D) endef endif $$(O)/docs/$(1)/$(1).$(6): export TZ=UTC ifeq ($(6)-$$(GENDOC_XSLTPROC_IS_BROKEN),pdf-y) $$(O)/docs/$(1)/$(1).$(6): $$(warning PDF generation is disabled because of a bug in \ xsltproc. To be able to generate a PDF, you should \ build xsltproc from the libxslt sources >=1.1.29 and pass it \ to make through the command line: \ 'PATH=/path/to/custom-xsltproc/bin:$$$${PATH} make $(1)-pdf') else # -r $(@D) is there for documents that use external filters; those filters # generate code at the same location it finds the document's source files. $$(O)/docs/$(1)/$(1).$(6): $$($(2)_SOURCES) \ $(1)-check-dependencies \ $(1)-check-dependencies-$(5) \ $(1)-prepare-sources $$(Q)$$(call MESSAGE,"Generating $(7) $(1)...") $$(Q)mkdir -p $$(@D) $$(Q)a2x $(8) -f $(4) -d book -L \ $$(foreach r,$$($(2)_RESOURCES) $$(@D), \ --resource="$$(abspath $$(r))") \ $$($(2)_$(4)_A2X_OPTS) \ --asciidoc-opts="$$($(2)_$(4)_ASCIIDOC_OPTS)" \ $$(BUILD_DIR)/docs/$(1)/$(1).txt # install the generated document $$($(2)_$(4)_INSTALL_CMDS) endif endef ################################################################################ # ASCIIDOC -- generates the make targets needed to build asciidoc documentation. # # argument 1 is the lowercase name of the document; the document's main file # must have the same name, with the .txt extension # argument 2 is the uppercase name of the document # argument 3 is the directory containing the document's sources # # The variable _SOURCES defines the dependencies. # The variable _RESOURCES defines where the document's # resources, such as images, are located; must be an absolute path. ################################################################################ define ASCIIDOC # Single line, because splitting a foreach is not easy... .PHONY: $(1)-check-dependencies $(1)-check-dependencies: asciidoc-check-dependencies $$($(2)_DEPENDENCIES) $$(Q)$$(foreach hook,$$($(2)_CHECK_DEPENDENCIES_HOOKS),$$(call $$(hook))$$(sep)) # Single line, because splitting a foreach is not easy... # Do not touch the stamp file, so we get to rsync again every time we build # the document. $$(BUILD_DIR)/docs/$(1)/.stamp_doc_rsynced: $$(Q)$$(call MESSAGE,"Preparing the $(1) sources...") $$(Q)mkdir -p $$(@D) $$(Q)rsync -a $(3) $$(@D) $$(Q)$$(foreach hook,$$($(2)_POST_RSYNC_HOOKS),$$(call $$(hook))$$(sep)) .PHONY: $(1)-prepare-sources $(1)-prepare-sources: $$(BUILD_DIR)/docs/$(1)/.stamp_doc_rsynced $(2)_ASCIIDOC_CONF = $(3)/asciidoc.conf $(call ASCIIDOC_INNER,$(1),$(2),$(3),xhtml,html,html,HTML,\ --xsltproc-opts "--stringparam toc.section.depth 1") $(call ASCIIDOC_INNER,$(1),$(2),$(3),chunked,split-html,chunked,split HTML,\ --xsltproc-opts "--stringparam toc.section.depth 1") # dblatex needs to pass the '--maxvars ...' option to xsltproc to prevent it # from reaching the template recursion limit when processing the (long) target # package table and bailing out. $(call ASCIIDOC_INNER,$(1),$(2),$(3),pdf,pdf,pdf,PDF,\ --dblatex-opts "-P latex.output.revhistory=0 -x '--maxvars 100000'") $(call ASCIIDOC_INNER,$(1),$(2),$(3),text,text,text,text) $(call ASCIIDOC_INNER,$(1),$(2),$(3),epub,epub,epub,ePUB) clean: $(1)-clean $(1)-clean: $$(Q)$$(RM) -rf $$(BUILD_DIR)/docs/$(1) .PHONY: $(1) $(1)-clean endef ################################################################################ # asciidoc-document -- the target generator macro for asciidoc documents ################################################################################ asciidoc-document = $(call ASCIIDOC,$(pkgname),$(call UPPERCASE,$(pkgname)),$(pkgdir)) ================================================ FILE: package/docker/Config.in ================================================ config BR2_PACKAGE_DOCKER bool "docker" depends on BR2_PACKAGE_XORG7 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_XLIB_LIBX11 help a system tray dock for X http://icculus.org/openbox/2/docker comment "docker needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on BR2_PACKAGE_XORG7 depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/docker/docker.hash ================================================ # Locally calculated sha256 47629578e89d96d1541c91d040aec4316f03ad6d01dc3eecb8f82a33445c1e4e docker-1.5.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING sha256 fd82a1ac93bfe0a5afcf28cfb5342dd02015555fc23529a87bd77a7b271d3262 README ================================================ FILE: package/docker/docker.mk ================================================ ################################################################################ # # docker # ################################################################################ DOCKER_VERSION = 1.5 DOCKER_SITE = http://icculus.org/openbox/2/docker DOCKER_DEPENDENCIES = host-pkgconf libglib2 xlib_libX11 DOCKER_LICENSE = GPL-2.0+ # The 'or later' is specified at the end of the README, so include that one too. DOCKER_LICENSE_FILES = COPYING README define DOCKER_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ XLIBPATH=$(STAGING_DIR)/usr/lib endef define DOCKER_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ XLIBPATH=$(STAGING_DIR)/usr/lib PREFIX=$(TARGET_DIR)/usr install endef $(eval $(generic-package)) ================================================ FILE: package/docker-cli/Config.in ================================================ config BR2_PACKAGE_DOCKER_CLI bool "docker-cli" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_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/cli if BR2_PACKAGE_DOCKER_CLI config BR2_PACKAGE_DOCKER_CLI_STATIC bool "build static client" depends on !BR2_STATIC_LIBS help Build a static docker client. endif comment "docker-cli needs a toolchain w/ threads" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/docker-cli/docker-cli.hash ================================================ # Locally calculated sha256 37bc1c71a782fc10d35aa6708c1b3c90a71f3947c33665cb0de68df25dc14d94 docker-cli-23.0.1.tar.gz sha256 2d81ea060825006fc8f3fe28aa5dc0ffeb80faf325b612c955229157b8c10dc0 LICENSE ================================================ FILE: package/docker-cli/docker-cli.mk ================================================ ################################################################################ # # docker-cli # ################################################################################ DOCKER_CLI_VERSION = 23.0.1 DOCKER_CLI_SITE = $(call github,docker,cli,v$(DOCKER_CLI_VERSION)) DOCKER_CLI_LICENSE = Apache-2.0 DOCKER_CLI_LICENSE_FILES = LICENSE DOCKER_CLI_DEPENDENCIES = host-pkgconf DOCKER_CLI_CPE_ID_VENDOR = docker DOCKER_CLI_CPE_ID_PRODUCT = docker DOCKER_CLI_TAGS = autogen DOCKER_CLI_BUILD_TARGETS = cmd/docker DOCKER_CLI_GOMOD = github.com/docker/cli DOCKER_CLI_LDFLAGS = \ -X $(DOCKER_CLI_GOMOD)/cli/version.GitCommit=$(DOCKER_CLI_VERSION) \ -X $(DOCKER_CLI_GOMOD)/cli/version.Version=$(DOCKER_CLI_VERSION) ifeq ($(BR2_PACKAGE_DOCKER_CLI_STATIC),y) DOCKER_CLI_LDFLAGS += -extldflags '-static' DOCKER_CLI_TAGS += osusergo netgo DOCKER_CLI_GO_ENV = CGO_ENABLED=no endif # create the go.mod file with language version go1.19 # remove the conflicting vendor/modules.txt # https://github.com/moby/moby/issues/44618#issuecomment-1343565705 define DOCKER_CLI_FIX_VENDORING printf "module $(DOCKER_CLI_GOMOD)\n\ngo 1.19\n" > $(@D)/go.mod rm -f $(@D)/vendor/modules.txt endef DOCKER_CLI_POST_EXTRACT_HOOKS += DOCKER_CLI_FIX_VENDORING DOCKER_CLI_INSTALL_BINS = $(notdir $(DOCKER_CLI_BUILD_TARGETS)) $(eval $(golang-package)) ================================================ FILE: package/docker-compose/Config.in ================================================ config BR2_PACKAGE_DOCKER_COMPOSE bool "docker-compose" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_DOCKER_CLI help Multi-container applications with the Docker CLI. https://github.com/docker/compose comment "docker-compose needs docker-cli and a toolchain w/ threads" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_DOCKER_CLI ================================================ FILE: package/docker-compose/docker-compose.hash ================================================ # Locally computed sha256 105328838a48dad4a305903c5ae98b928e8a4ea3546e1711690e9eef7e0232be docker-compose-2.26.1.tar.gz sha256 58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd LICENSE ================================================ FILE: package/docker-compose/docker-compose.mk ================================================ ################################################################################ # # docker-compose # ################################################################################ DOCKER_COMPOSE_VERSION = 2.26.1 DOCKER_COMPOSE_SITE = $(call github,docker,compose,v$(DOCKER_COMPOSE_VERSION)) DOCKER_COMPOSE_LICENSE = Apache-2.0 DOCKER_COMPOSE_LICENSE_FILES = LICENSE DOCKER_COMPOSE_BUILD_TARGETS = cmd DOCKER_COMPOSE_GOMOD = github.com/docker/compose/v2 DOCKER_COMPOSE_LDFLAGS = \ -X github.com/docker/compose/v2/internal.Version=$(DOCKER_COMPOSE_VERSION) define DOCKER_COMPOSE_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/bin/cmd \ $(TARGET_DIR)/usr/lib/docker/cli-plugins/docker-compose endef $(eval $(golang-package)) ================================================ FILE: package/docker-engine/Config.in ================================================ config BR2_PACKAGE_DOCKER_ENGINE bool "docker-engine" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_TOOLCHAIN_USES_UCLIBC # containerd -> runc depends on BR2_USE_MMU # containerd depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS # libseccomp depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # libseccomp select BR2_PACKAGE_CGROUPFS_MOUNT if !BR2_PACKAGE_SYSTEMD # runtime dependency select BR2_PACKAGE_CONTAINERD # runtime dependency select BR2_PACKAGE_DOCKER_PROXY # runtime dependency select BR2_PACKAGE_IPTABLES # runtime dependency select BR2_PACKAGE_LIBSECCOMP 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_EXPERIMENTAL bool "build experimental features" config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_BTRFS bool "btrfs filesystem driver" 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 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 depends on !BR2_STATIC_LIBS # gvfs select BR2_PACKAGE_GVFS help Build the vfs filesystem driver for Docker. endif comment "docker-engine needs a glibc or musl toolchain w/ threads, headers >= 3.17" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_TOOLCHAIN_USES_UCLIBC || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 depends on BR2_USE_MMU ================================================ FILE: package/docker-engine/S60dockerd ================================================ #!/bin/sh NAME=dockerd DAEMON=/usr/bin/$NAME PIDFILE=/var/run/$NAME.pid DAEMON_ARGS="" [ -r /etc/default/$NAME ] && . /etc/default/$NAME $1 do_start() { echo -n "Starting $NAME: " start-stop-daemon --start --quiet --background --make-pidfile \ --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS \ && echo "OK" || echo "FAIL" } do_stop() { echo -n "Stopping $NAME: " start-stop-daemon --stop --quiet --pidfile $PIDFILE \ && echo "OK" || echo "FAIL" } case "$1" in start) do_start ;; stop) do_stop ;; restart) do_stop sleep 1 do_start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: package/docker-engine/docker-engine.hash ================================================ # Locally calculated sha256 f502eba135828ae52cefb12f1c74092c8865e39cb94f5daed0f3f6717a8d50a3 docker-engine-23.0.5.tar.gz sha256 7c87873291f289713ac5df48b1f2010eb6963752bbd6b530416ab99fc37914a8 LICENSE ================================================ FILE: package/docker-engine/docker-engine.mk ================================================ ################################################################################ # # docker-engine # ################################################################################ DOCKER_ENGINE_VERSION = 23.0.5 DOCKER_ENGINE_SITE = $(call github,moby,moby,v$(DOCKER_ENGINE_VERSION)) DOCKER_ENGINE_LICENSE = Apache-2.0 DOCKER_ENGINE_LICENSE_FILES = LICENSE DOCKER_ENGINE_DEPENDENCIES = host-pkgconf libseccomp DOCKER_ENGINE_GOMOD = github.com/docker/docker DOCKER_ENGINE_CPE_ID_VENDOR = docker DOCKER_ENGINE_CPE_ID_PRODUCT = docker DOCKER_ENGINE_LDFLAGS = \ -X $(DOCKER_ENGINE_GOMOD)/dockerversion.BuildTime="" \ -X $(DOCKER_ENGINE_GOMOD)/dockerversion.GitCommit="buildroot" \ -X $(DOCKER_ENGINE_GOMOD)/dockerversion.IAmStatic="false" \ -X $(DOCKER_ENGINE_GOMOD)/dockerversion.InitCommitID="" \ -X $(DOCKER_ENGINE_GOMOD)/dockerversion.Version="$(DOCKER_ENGINE_VERSION)" DOCKER_ENGINE_TAGS = cgo exclude_graphdriver_zfs DOCKER_ENGINE_BUILD_TARGETS = cmd/dockerd ifeq ($(BR2_PACKAGE_LIBAPPARMOR),y) DOCKER_ENGINE_DEPENDENCIES += libapparmor endif ifeq ($(BR2_INIT_SYSTEMD),y) DOCKER_ENGINE_DEPENDENCIES += systemd DOCKER_ENGINE_TAGS += systemd journald endif ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_EXPERIMENTAL),y) DOCKER_ENGINE_TAGS += experimental endif ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_BTRFS),y) DOCKER_ENGINE_DEPENDENCIES += btrfs-progs else DOCKER_ENGINE_TAGS += exclude_graphdriver_btrfs endif ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_DEVICEMAPPER),y) DOCKER_ENGINE_DEPENDENCIES += lvm2 else DOCKER_ENGINE_TAGS += exclude_graphdriver_devicemapper endif ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_VFS),y) DOCKER_ENGINE_DEPENDENCIES += gvfs else DOCKER_ENGINE_TAGS += exclude_graphdriver_vfs endif # create the go.mod file with language version go1.19 # remove the conflicting vendor/modules.txt # https://github.com/moby/moby/issues/44618#issuecomment-1343565705 define DOCKER_ENGINE_FIX_VENDORING printf "module $(DOCKER_ENGINE_GOMOD)\n\ngo 1.19\n" > $(@D)/go.mod rm -f $(@D)/vendor/modules.txt endef DOCKER_ENGINE_POST_EXTRACT_HOOKS += DOCKER_ENGINE_FIX_VENDORING DOCKER_ENGINE_INSTALL_BINS = $(notdir $(DOCKER_ENGINE_BUILD_TARGETS)) 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 endef define DOCKER_ENGINE_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/docker-engine/S60dockerd \ $(TARGET_DIR)/etc/init.d/S60dockerd endef define DOCKER_ENGINE_USERS - - docker -1 * - - - Docker Application Container Framework endef ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_BTRFS),y) define DOCKER_ENGINE_DRIVER_BTRFS_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_BTRFS_FS) $(call KCONFIG_ENABLE_OPT,CONFIG_BTRFS_FS_POSIX_ACL) endef endif ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_DEVICEMAPPER),y) define DOCKER_ENGINE_DRIVER_DM_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_MD) $(call KCONFIG_ENABLE_OPT,CONFIG_BLK_DEV_DM) $(call KCONFIG_ENABLE_OPT,CONFIG_MD_THIN_PROVISIONING) endef endif # based on contrib/check-config.sh define DOCKER_ENGINE_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_POSIX_MQUEUE) $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS) $(call KCONFIG_ENABLE_OPT,CONFIG_MEMCG) $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_SCHED) $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_FREEZER) $(call KCONFIG_ENABLE_OPT,CONFIG_CPUSETS) $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_DEVICE) $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_CPUACCT) $(call KCONFIG_ENABLE_OPT,CONFIG_NAMESPACES) $(call KCONFIG_ENABLE_OPT,CONFIG_UTS_NS) $(call KCONFIG_ENABLE_OPT,CONFIG_IPC_NS) $(call KCONFIG_ENABLE_OPT,CONFIG_PID_NS) $(call KCONFIG_ENABLE_OPT,CONFIG_NET_NS) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_ADVANCED) $(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE_NETFILTER) $(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XTABLES) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_ADDRTYPE) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_CONNTRACK) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_IPVS) $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_IPTABLES) $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_FILTER) $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_NAT) $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_TARGET_MASQUERADE) $(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE) $(call KCONFIG_ENABLE_OPT,CONFIG_NET_CORE) $(call KCONFIG_ENABLE_OPT,CONFIG_VETH) $(call KCONFIG_ENABLE_OPT,CONFIG_OVERLAY_FS) $(call KCONFIG_ENABLE_OPT,CONFIG_KEYS) $(DOCKER_ENGINE_DRIVER_BTRFS_LINUX_CONFIG_FIXUPS) $(DOCKER_ENGINE_DRIVER_DM_LINUX_CONFIG_FIXUPS) endef $(eval $(golang-package)) ================================================ FILE: package/docker-proxy/Config.in ================================================ config BR2_PACKAGE_DOCKER_PROXY bool "docker-proxy" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS help Libnetwork is a Container Network Model that provides a consistent programming interface and the required network abstractions for applications. This package provides docker-proxy, a run-time dependency of Docker. https://github.com/docker/libnetwork comment "docker-proxy needs a toolchain w/ threads" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/docker-proxy/docker-proxy.hash ================================================ # Locally calculated sha256 866c8d196b9396a383b437b0d775476459ed7c11f527c4f6bbf1fd08524b461d docker-proxy-55685ba49593e67f5e1c8180539379b16736c25e.tar.gz sha256 cb5e8e7e5f4a3988e1063c142c60dc2df75605f4c46515e776e3aca6df976e14 LICENSE ================================================ FILE: package/docker-proxy/docker-proxy.mk ================================================ ################################################################################ # # docker-proxy # ################################################################################ DOCKER_PROXY_VERSION = 55685ba49593e67f5e1c8180539379b16736c25e DOCKER_PROXY_SITE = $(call github,docker,libnetwork,$(DOCKER_PROXY_VERSION)) DOCKER_PROXY_LICENSE = Apache-2.0 DOCKER_PROXY_LICENSE_FILES = LICENSE DOCKER_PROXY_DEPENDENCIES = host-pkgconf DOCKER_PROXY_BUILD_TARGETS = cmd/proxy define DOCKER_PROXY_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/bin/proxy $(TARGET_DIR)/usr/bin/docker-proxy endef $(eval $(golang-package)) ================================================ FILE: package/domoticz/Config.in ================================================ config BR2_PACKAGE_DOMOTICZ bool "domoticz" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_6 # C++14 # pthread_condattr_setclock depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # mosquitto depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_PACKAGE_LUA_5_3 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_ATOMIC select BR2_PACKAGE_BOOST_DATE_TIME select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_THREAD select BR2_PACKAGE_CEREAL select BR2_PACKAGE_FMT select BR2_PACKAGE_JSONCPP 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.3 and a toolchain w/ C++, gcc >= 6, NPTL, wchar, dynamic library" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_6 || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ !BR2_USE_WCHAR || BR2_STATIC_LIBS || \ !BR2_PACKAGE_LUA_5_3 comment "domoticz needs exception_ptr" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/domoticz/S99domoticz ================================================ #!/bin/sh DAEMON="domoticz" PIDFILE="/var/run/$DAEMON.pid" DOMOTICZ_ARGS="-daemon -www 8080 -sslwww 443" [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/opt/domoticz/$DAEMON" \ -- $DOMOTICZ_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/domoticz/domoticz.hash ================================================ # Locally computed: sha256 d8e99e0f96873aa105b57f73656ef7a14c89e0acf2649b2d4ef1167b14bab4b2 domoticz-2021.1-br1.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 License.txt ================================================ FILE: package/domoticz/domoticz.mk ================================================ ################################################################################ # # domoticz # ################################################################################ DOMOTICZ_VERSION = 2021.1 DOMOTICZ_SITE = https://github.com/domoticz/domoticz DOMOTICZ_SITE_METHOD = git DOMOTICZ_GIT_SUBMODULES = YES DOMOTICZ_LICENSE = GPL-3.0 DOMOTICZ_LICENSE_FILES = License.txt DOMOTICZ_CPE_ID_VENDOR = domoticz DOMOTICZ_DEPENDENCIES = \ boost \ cereal \ fmt \ host-pkgconf \ jsoncpp \ libcurl \ lua \ mosquitto \ openssl \ sqlite \ zlib # Disable precompiled header as it needs cmake >= 3.16 DOMOTICZ_CONF_OPTS = -DUSE_PRECOMPILED_HEADER=OFF # Due to the dependency on mosquitto, domoticz depends on # !BR2_STATIC_LIBS so set USE_STATIC_BOOST and USE_OPENSSL_STATIC to OFF DOMOTICZ_CONF_OPTS += \ -DUSE_STATIC_BOOST=OFF \ -DUSE_OPENSSL_STATIC=OFF # Do not use any built-in libraries which are enabled by default for # jsoncpp, fmt, sqlite and mqtt DOMOTICZ_CONF_OPTS += \ -DUSE_BUILTIN_JSONCPP=OFF \ -DUSE_BUILTIN_LIBFMT=OFF \ -DUSE_BUILTIN_SQLITE=OFF \ -DUSE_BUILTIN_MQTT=OFF ifeq ($(BR2_PACKAGE_LIBUSB),y) DOMOTICZ_DEPENDENCIES += libusb DOMOTICZ_CONF_OPTS += -DWITH_LIBUSB=ON else DOMOTICZ_CONF_OPTS += -DWITH_LIBUSB=OFF 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 ifeq ($(BR2_PACKAGE_PYTHON3),y) DOMOTICZ_DEPENDENCIES += python3 DOMOTICZ_CONF_OPTS += -DUSE_PYTHON=ON else DOMOTICZ_CONF_OPTS += -DUSE_PYTHON=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 endef $(eval $(cmake-package)) ================================================ FILE: package/domoticz/domoticz.service ================================================ [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 ================================================ FILE: package/doom-wad/Config.in ================================================ config BR2_PACKAGE_DOOM_WAD bool "shareware Doom WAD file" depends on BR2_PACKAGE_CHOCOLATE_DOOM || BR2_PACKAGE_PRBOOM help This will install the shareware wad data file for the doom game. The wad file will be placed in the /usr/share/games/doom directory. https://doomwiki.org/wiki/DOOM1.WAD ================================================ FILE: package/doom-wad/doom-wad.hash ================================================ # Locally computed sha256 cacf0142b31ca1af00796b4a0339e07992ac5f21bc3f81e7532fe1b5e1b486e6 doom19s.zip ================================================ FILE: package/doom-wad/doom-wad.mk ================================================ ################################################################################ # # doom-wad # ################################################################################ DOOM_WAD_VERSION = 1.9 DOOM_WAD_SOURCE = doom$(subst .,,$(DOOM_WAD_VERSION))s.zip # Official server currently unavailable # DOOM_WAD_SITE = ftp://ftp.idsoftware.com/idstuff/doom DOOM_WAD_SITE = http://www.jbserver.com/downloads/games/doom/misc/shareware define DOOM_WAD_EXTRACT_CMDS $(UNZIP) -p $(DOOM_WAD_DL_DIR)/$($(PKG)_SOURCE) 'DOOMS_19.[12]' > \ $(@D)/doom-$(DOOM_WAD_VERSION).zip $(UNZIP) -d $(@D) $(@D)/doom-$(DOOM_WAD_VERSION).zip DOOM1.WAD endef define DOOM_WAD_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/DOOM1.WAD \ $(TARGET_DIR)/usr/share/games/doom/doom1.wad endef $(eval $(generic-package)) ================================================ FILE: package/dos2unix/Config.in ================================================ config BR2_PACKAGE_DOS2UNIX bool "dos2unix" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help dos2unix converts text file line endings between CRLF and LF http://waterlan.home.xs4all.nl/dos2unix.html ================================================ FILE: package/dos2unix/Config.in.host ================================================ config BR2_PACKAGE_HOST_DOS2UNIX bool "host dos2unix" help dos2unix converts text file line endings between CRLF and LF http://waterlan.home.xs4all.nl/dos2unix.html ================================================ FILE: package/dos2unix/dos2unix.hash ================================================ # Locally calculated after checking pgp signature # https://waterlan.home.xs4all.nl/dos2unix/dos2unix-7.4.2.tar.gz.asc sha256 6035c58df6ea2832e868b599dfa0d60ad41ca3ecc8aa27822c4b7a9789d3ae01 dos2unix-7.4.2.tar.gz sha256 db8888b7d1454348aca0c6ca851327245ef60e57afa8a6555761c8b95d24af77 COPYING.txt ================================================ FILE: package/dos2unix/dos2unix.mk ================================================ ################################################################################ # # dos2unix # ################################################################################ DOS2UNIX_VERSION = 7.4.2 DOS2UNIX_SITE = http://waterlan.home.xs4all.nl/dos2unix DOS2UNIX_LICENSE = BSD-2-Clause DOS2UNIX_LICENSE_FILES = COPYING.txt DOS2UNIX_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) DOS2UNIX_MAKE_OPTS += ENABLE_NLS=1 DOS2UNIX_MAKE_OPTS += LIBS_EXTRA=$(TARGET_NLS_LIBS) else # Should be defined to empty to disable NLS support DOS2UNIX_MAKE_OPTS += ENABLE_NLS= endif ifeq ($(BR2_USE_WCHAR),) DOS2UNIX_MAKE_OPTS += UCS= endif ifeq ($(BR2_STATIC_LIBS),y) DOS2UNIX_MAKE_OPTS += LDFLAGS_USER=-static endif define DOS2UNIX_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(DOS2UNIX_MAKE_OPTS) endef define DOS2UNIX_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) \ $(DOS2UNIX_MAKE_OPTS) install endef define HOST_DOS2UNIX_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) ENABLE_NLS= endef define HOST_DOS2UNIX_INSTALL_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) prefix=$(HOST_DIR) ENABLE_NLS= \ install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/dosfstools/Config.in ================================================ config BR2_PACKAGE_DOSFSTOOLS bool "dosfstools" depends on BR2_USE_WCHAR select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Tools for creating and checking DOS FAT filesystems. https://github.com/dosfstools/dosfstools if BR2_PACKAGE_DOSFSTOOLS config BR2_PACKAGE_DOSFSTOOLS_FATLABEL bool "fatlabel" help Get or set the DOS FAT filesystem label. config BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT bool "fsck.fat" help Check a DOS FAT filesystem. config BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT bool "mkfs.fat" help Creates a DOS FAT filesystem on a device. endif comment "dosfstools needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/dosfstools/Config.in.host ================================================ config BR2_PACKAGE_HOST_DOSFSTOOLS bool "host dosfstools" help Tools for creating and checking DOS FAT filesystems. https://github.com/dosfstools/dosfstools ================================================ FILE: package/dosfstools/dosfstools.hash ================================================ # Locally calculated after checking pgp signature from # https://github.com/dosfstools/dosfstools/releases/download/v4.2/dosfstools-4.2.tar.gz.sig sha256 64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527 dosfstools-4.2.tar.gz # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/dosfstools/dosfstools.mk ================================================ ################################################################################ # # dosfstools # ################################################################################ DOSFSTOOLS_VERSION = 4.2 DOSFSTOOLS_SITE = https://github.com/dosfstools/dosfstools/releases/download/v$(DOSFSTOOLS_VERSION) DOSFSTOOLS_LICENSE = GPL-3.0+ DOSFSTOOLS_LICENSE_FILES = COPYING DOSFSTOOLS_CPE_ID_VENDOR = dosfstools_project DOSFSTOOLS_CONF_OPTS = --enable-compat-symlinks --exec-prefix=/ HOST_DOSFSTOOLS_CONF_OPTS = --enable-compat-symlinks 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 endif ifeq ($(BR2_PACKAGE_DOSFSTOOLS_FATLABEL),y) define DOSFSTOOLS_INSTALL_FATLABEL $(INSTALL) -D -m 0755 $(@D)/src/fatlabel $(TARGET_DIR)/sbin/fatlabel ln -sf fatlabel $(TARGET_DIR)/sbin/dosfslabel endef endif ifeq ($(BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT),y) define DOSFSTOOLS_INSTALL_FSCK_FAT $(INSTALL) -D -m 0755 $(@D)/src/fsck.fat $(TARGET_DIR)/sbin/fsck.fat ln -sf fsck.fat $(TARGET_DIR)/sbin/fsck.vfat ln -sf fsck.fat $(TARGET_DIR)/sbin/fsck.msdos ln -sf fsck.fat $(TARGET_DIR)/sbin/dosfsck endef endif ifeq ($(BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT),y) define DOSFSTOOLS_INSTALL_MKFS_FAT $(INSTALL) -D -m 0755 $(@D)/src/mkfs.fat $(TARGET_DIR)/sbin/mkfs.fat ln -sf mkfs.fat $(TARGET_DIR)/sbin/mkdosfs ln -sf mkfs.fat $(TARGET_DIR)/sbin/mkfs.msdos ln -sf mkfs.fat $(TARGET_DIR)/sbin/mkfs.vfat endef endif define DOSFSTOOLS_INSTALL_TARGET_CMDS $(call DOSFSTOOLS_INSTALL_FATLABEL) $(call DOSFSTOOLS_INSTALL_FSCK_FAT) $(call DOSFSTOOLS_INSTALL_MKFS_FAT) endef $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/dovecot/Config.in ================================================ config BR2_PACKAGE_DOVECOT bool "dovecot" depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help Dovecot is an open source IMAP and POP3 email server for Linux/UNIX- like systems, written with security primarily in mind. Dovecot is an excellent choice for both small and large installations. It's fast, simple to set up, requires no special administration and it uses very little memory. http://www.dovecot.org if BR2_PACKAGE_DOVECOT config BR2_PACKAGE_DOVECOT_MYSQL bool "mysql support" depends on BR2_INSTALL_LIBSTDCPP # mysql depends on BR2_TOOLCHAIN_HAS_THREADS # mysql select BR2_PACKAGE_MYSQL help Enable MySQL support. comment "mysql support needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_DOVECOT_SQLITE bool "sqlite support" select BR2_PACKAGE_SQLITE help Enable SQLite support. source package/dovecot-pigeonhole/Config.in endif # BR2_PACKAGE_DOVECOT comment "dovecot needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/dovecot/dovecot.hash ================================================ # Locally computed after checking signature sha256 03a71d53055bd9ec528d55e07afaf15c09dec9856cba734904bfd05acbc6cf12 dovecot-2.3.16.tar.gz sha256 319a9830aab406109cd67cb45496587566a8123203d66d037b209ca3e13de02a COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPL sha256 52b8c95fabb19575281874b661ef7968ea47e8f5d74ba0dd40ce512e52b3fc97 COPYING.MIT ================================================ FILE: package/dovecot/dovecot.mk ================================================ ################################################################################ # # dovecot # ################################################################################ DOVECOT_VERSION_MAJOR = 2.3 DOVECOT_VERSION = $(DOVECOT_VERSION_MAJOR).16 DOVECOT_SITE = https://dovecot.org/releases/$(DOVECOT_VERSION_MAJOR) DOVECOT_INSTALL_STAGING = YES DOVECOT_LICENSE = LGPL-2.1, MIT, Public Domain, BSD-3-Clause, Unicode-DFS-2015 DOVECOT_LICENSE_FILES = COPYING COPYING.LGPL COPYING.MIT DOVECOT_CPE_ID_VENDOR = dovecot DOVECOT_SELINUX_MODULES = dovecot DOVECOT_DEPENDENCIES = \ host-pkgconf \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) \ openssl # CVE-2016-4983 is an issue in a postinstall script in the dovecot rpm, which # is part of the Red Hat packaging and not part of upstream dovecot DOVECOT_IGNORE_CVES += CVE-2016-4983 DOVECOT_CONF_ENV = \ RPCGEN=__disable_RPCGEN_rquota \ i_cv_epoll_works=yes \ i_cv_inotify_works=yes \ i_cv_posix_fallocate_works=no \ i_cv_signed_size_t=no \ i_cv_gmtime_max_time_t=32 \ i_cv_signed_time_t=yes \ i_cv_mmap_plays_with_write=yes \ i_cv_fd_passing=yes \ i_cv_c99_vsnprintf=yes \ lib_cv_va_copy=yes \ lib_cv___va_copy=yes \ lib_cv_va_val_copy=yes DOVECOT_CONF_OPTS = --without-docs --with-ssl=openssl ifeq ($(BR2_PACKAGE_DOVECOT_MYSQL)$(BR2_PACKAGE_DOVECOT_SQLITE),) DOVECOT_CONF_OPTS += --without-sql endif ifeq ($(BR2_PACKAGE_BZIP2),y) DOVECOT_CONF_OPTS += --with-bzlib DOVECOT_DEPENDENCIES += bzip2 else DOVECOT_CONF_OPTS += --without-bzlib endif ifeq ($(BR2_PACKAGE_ICU),y) DOVECOT_CONF_OPTS += --with-icu DOVECOT_DEPENDENCIES += icu else DOVECOT_CONF_OPTS += --without-icu endif ifeq ($(BR2_PACKAGE_LIBCAP),y) DOVECOT_CONF_OPTS += --with-libcap DOVECOT_DEPENDENCIES += libcap else DOVECOT_CONF_OPTS += --without-libcap endif ifeq ($(BR2_PACKAGE_LIBSODIUM),y) DOVECOT_CONF_OPTS += --with-sodium DOVECOT_DEPENDENCIES += libsodium else DOVECOT_CONF_OPTS += --without-sodium endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) DOVECOT_CONF_OPTS += --with-pam DOVECOT_DEPENDENCIES += linux-pam else DOVECOT_CONF_OPTS += --without-pam endif ifeq ($(BR2_PACKAGE_DOVECOT_MYSQL),y) DOVECOT_CONF_ENV += MYSQL_CONFIG="$(STAGING_DIR)/usr/bin/mysql_config" DOVECOT_CONF_OPTS += --with-mysql DOVECOT_DEPENDENCIES += mysql else DOVECOT_CONF_OPTS += --without-mysql endif ifeq ($(BR2_PACKAGE_DOVECOT_SQLITE),y) DOVECOT_CONF_OPTS += --with-sqlite DOVECOT_DEPENDENCIES += sqlite else DOVECOT_CONF_OPTS += --without-sqlite endif ifeq ($(BR2_PACKAGE_LZ4),y) DOVECOT_CONF_OPTS += --with-lz4 DOVECOT_DEPENDENCIES += lz4 else DOVECOT_CONF_OPTS += --without-lz4 endif ifeq ($(BR2_PACKAGE_XZ),y) DOVECOT_CONF_OPTS += --with-lzma DOVECOT_DEPENDENCIES += xz else DOVECOT_CONF_OPTS += --without-lzma endif ifeq ($(BR2_PACKAGE_ZLIB),y) DOVECOT_CONF_OPTS += --with-zlib DOVECOT_DEPENDENCIES += zlib else DOVECOT_CONF_OPTS += --without-zlib endif # fix paths to avoid using /usr/lib/dovecot define DOVECOT_POST_CONFIGURE for i in $$(find $(@D) -name "Makefile"); do \ $(SED) 's%^pkglibdir =.*%pkglibdir = \$$(libdir)%' $$i; \ $(SED) 's%^pkglibexecdir =.*%pkglibexecdir = \$$(libexecdir)%' $$i; \ done endef DOVECOT_POST_CONFIGURE_HOOKS += DOVECOT_POST_CONFIGURE # dovecot installs dovecot-config in usr/lib/, therefore # DOVECOT_CONFIG_SCRIPTS can not be used to rewrite paths define DOVECOT_FIX_STAGING_DOVECOT_CONFIG $(SED) 's,^LIBDOVECOT_INCLUDE=.*$$,LIBDOVECOT_INCLUDE=\"-I$(STAGING_DIR)/usr/include/dovecot\",' $(STAGING_DIR)/usr/lib/dovecot-config $(SED) 's,^LIBDOVECOT=.*$$,LIBDOVECOT=\"-L$(STAGING_DIR)/usr/lib -ldovecot\",' $(STAGING_DIR)/usr/lib/dovecot-config endef DOVECOT_POST_INSTALL_STAGING_HOOKS += DOVECOT_FIX_STAGING_DOVECOT_CONFIG $(eval $(autotools-package)) ================================================ FILE: package/dovecot-pigeonhole/Config.in ================================================ config BR2_PACKAGE_DOVECOT_PIGEONHOLE bool "dovecot-pigeonhole" help Pigeonhole is the name of the project that adds support for the Sieve language (RFC 5228) and the ManageSieve protocol (RFC 5804) to the Dovecot Secure IMAP Server. http://pigeonhole.dovecot.org ================================================ FILE: package/dovecot-pigeonhole/dovecot-pigeonhole.hash ================================================ # Locally computed after checking signature sha256 5ca36780e23b99e6206440f1b3fe3c6598eda5b699b99cebb15d418ba3c6e938 dovecot-2.3-pigeonhole-0.5.16.tar.gz sha256 fc9e9522216f2a9a28b31300e3c73c1df56acc27dfae951bf516e7995366b51a COPYING ================================================ FILE: package/dovecot-pigeonhole/dovecot-pigeonhole.mk ================================================ ################################################################################ # # dovecot-pigeonhole # ################################################################################ DOVECOT_PIGEONHOLE_VERSION = 0.5.16 DOVECOT_PIGEONHOLE_SOURCE = dovecot-2.3-pigeonhole-$(DOVECOT_PIGEONHOLE_VERSION).tar.gz DOVECOT_PIGEONHOLE_SITE = https://pigeonhole.dovecot.org/releases/2.3 DOVECOT_PIGEONHOLE_LICENSE = LGPL-2.1 DOVECOT_PIGEONHOLE_LICENSE_FILES = COPYING DOVECOT_PIGEONHOLE_CPE_ID_VENDOR = dovecot DOVECOT_PIGEONHOLE_CPE_ID_PRODUCT = pigeonhole DOVECOT_PIGEONHOLE_DEPENDENCIES = dovecot DOVECOT_PIGEONHOLE_CONF_OPTS = --with-dovecot=$(STAGING_DIR)/usr/lib ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y) define DOVECOT_PIGEONHOLE_FIXUP_DOVECOT_CONFIG $(SED) 's,$(PER_PACKAGE_DIR)/dovecot/,$(PER_PACKAGE_DIR)/dovecot-pigeonhole/,g' \ $(STAGING_DIR)/usr/lib/dovecot-config endef DOVECOT_PIGEONHOLE_PRE_CONFIGURE_HOOKS = DOVECOT_PIGEONHOLE_FIXUP_DOVECOT_CONFIG endif $(eval $(autotools-package)) ================================================ FILE: package/doxygen/Config.in.host ================================================ config BR2_PACKAGE_HOST_DOXYGEN bool "host doxygen" depends on BR2_HOST_GCC_AT_LEAST_4_9 # C++14 help Doxygen is the de facto standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D. http://www.doxygen.nl/ ================================================ FILE: package/doxygen/doxygen.hash ================================================ # Computed locally sha256 18173d9edc46d2d116c1f92a95d683ec76b6b4b45b817ac4f245bb1073d00656 doxygen-1.8.18.src.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/doxygen/doxygen.mk ================================================ ################################################################################ # # doxygen # ################################################################################ DOXYGEN_VERSION = 1.8.18 DOXYGEN_SOURCE = doxygen-$(DOXYGEN_VERSION).src.tar.gz DOXYGEN_SITE = http://doxygen.nl/files DOXYGEN_LICENSE = GPL-2.0 DOXYGEN_LICENSE_FILES = LICENSE DOXYGEN_CPE_ID_VENDOR = doxygen HOST_DOXYGEN_DEPENDENCIES = host-flex host-bison HOST_DOXYGEN_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF $(eval $(host-cmake-package)) ================================================ FILE: package/drbd-utils/Config.in ================================================ config BR2_PACKAGE_DRBD_UTILS bool "drbd-utils" depends on BR2_USE_MMU # needs fork() help DRBD utilities to manage the DRBD kernel module. http://oss.linbit.com/drbd/ ================================================ FILE: package/drbd-utils/drbd-utils.hash ================================================ # Locally calculated sha256 3827bfed6630f8784ec558a8ac3de68175d544876d897c0810ad141a61487cad drbd-utils-9.19.0.tar.gz sha256 1ca3e8f71b7de618968e7ea9fe47822d9e704dc476aef8544033abedec355225 COPYING ================================================ FILE: package/drbd-utils/drbd-utils.mk ================================================ ################################################################################ # # drbd-utils # ################################################################################ DRBD_UTILS_VERSION = 9.19.0 DRBD_UTILS_SITE = http://pkg.linbit.com/downloads/drbd/utils DRBD_UTILS_LICENSE = GPL-2.0+ DRBD_UTILS_LICENSE_FILES = COPYING DRBD_UTILS_SELINUX_MODULES = drbd DRBD_UTILS_DEPENDENCIES = host-flex DRBD_UTILS_CONF_OPTS = --with-distro=generic --without-manual ifeq ($(BR2_INIT_SYSTEMD),y) DRBD_UTILS_CONF_OPTS += --with-initscripttype=systemd DRBD_UTILS_DEPENDENCIES += systemd else DRBD_UTILS_CONF_OPTS += --with-initscripttype=sysv endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) DRBD_UTILS_CONF_OPTS += --with-udev=yes DRBD_UTILS_DEPENDENCIES += udev else DRBD_UTILS_CONF_OPTS += --with-udev=no endif $(eval $(autotools-package)) ================================================ FILE: package/dropbear/Config.in ================================================ config BR2_PACKAGE_DROPBEAR bool "dropbear" select BR2_PACKAGE_ZLIB if !BR2_PACKAGE_DROPBEAR_SMALL select BR2_PACKAGE_LIBTOMCRYPT if !BR2_PACKAGE_DROPBEAR_SMALL help A small SSH 2 server designed for small memory environments. Note that dropbear requires a per-device unique host key. The key will be generated when dropbear starts, but it is not persistent over reboot (if you have a read-only rootfs) or upgrade (if you have a read-write rootfs). To make the key persistent, replace /etc/dropbear with a symlink to a directory on a persistent, writeable filesystem. Alternatively, mount a persistent unionfs over your root filesystem. https://matt.ucc.asn.au/dropbear/dropbear.html if BR2_PACKAGE_DROPBEAR config BR2_PACKAGE_DROPBEAR_CLIENT bool "client programs" default y help Provides the programs: dbclient, ssh Note that the following programs are also used server-side and are therefore always build regardless this setting: dropbear, dropbearkey, dropbearconvert, scp config BR2_PACKAGE_DROPBEAR_DISABLE_REVERSEDNS bool "disable reverse DNS lookups" help Disable reverse DNS lookups on connection. This can be handy on systems without working DNS, as connections otherwise stall until DNS times out. config BR2_PACKAGE_DROPBEAR_SMALL bool "optimize for size" default y help Compile dropbear for the smallest possible binary size. Tradeoffs are slower hashes and ciphers, and disabling of the blowfish cipher and zlib. config BR2_PACKAGE_DROPBEAR_WTMP bool "log dropbear access to wtmp" help Enable logging of dropbear access to wtmp. Notice that Buildroot does not generate wtmp by default. config BR2_PACKAGE_DROPBEAR_LASTLOG bool "log dropbear access to lastlog" help Enable logging of dropbear access to lastlog. Notice that Buildroot does not generate lastlog by default. config BR2_PACKAGE_DROPBEAR_LEGACY_CRYPTO bool "enable legacy crypto" help Enable legacy and possibly insecure algorithms: 3DES encryption SHA1-96 message integrity CBC encryption mode DSA public keys Diffie-Hellman Group1 key exchange config BR2_PACKAGE_DROPBEAR_LOCALOPTIONS_FILE string "path to custom localoptions.h definitions file" help Path to a file whose contents will be appended to Dropbear localoptions.h. It can be used to tweak the Dropbear configuration. endif ================================================ FILE: package/dropbear/S50dropbear ================================================ #!/bin/sh # # Starts dropbear sshd. # # Allow a few customizations from a config file test -r /etc/default/dropbear && . /etc/default/dropbear start() { DROPBEAR_ARGS="$DROPBEAR_ARGS -R" # If /etc/dropbear is a symlink to /var/run/dropbear, and # - the filesystem is RO (i.e. we can not rm the symlink), # create the directory pointed to by the symlink. # - the filesystem is RW (i.e. we can rm the symlink), # replace the symlink with an actual directory if [ -L /etc/dropbear \ -a "$(readlink /etc/dropbear)" = "/var/run/dropbear" ] then if rm -f /etc/dropbear >/dev/null 2>&1; then mkdir -p /etc/dropbear else echo "No persistent location to store SSH host keys. New keys will be" echo "generated at each boot. Are you sure this is what you want to do?" mkdir -p "$(readlink /etc/dropbear)" fi fi printf "Starting dropbear sshd: " umask 077 start-stop-daemon -S -q -p /var/run/dropbear.pid \ --exec /usr/sbin/dropbear -- $DROPBEAR_ARGS [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping dropbear sshd: " start-stop-daemon -K -q -p /var/run/dropbear.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 $? ================================================ FILE: package/dropbear/dropbear.hash ================================================ # From https://matt.ucc.asn.au/dropbear/releases/SHA256SUM.asc sha256 48235d10b37775dbda59341ac0c4b239b82ad6318c31568b985730c788aac53b dropbear-2020.81.tar.bz2 # License file, locally computed sha256 a99ce657d790b761c132ee7e0de18edb437ae6361e536d991c6a12f36e770445 LICENSE sha256 8f196cb13afd271f5e267fd29543fc454596382ad580e7592709492843996ac8 libtomcrypt/LICENSE sha256 2fa64b163659f41965c9815882a8296d3d03ff546b76153e11445f9bdecf955a libtommath/LICENSE ================================================ FILE: package/dropbear/dropbear.mk ================================================ ################################################################################ # # dropbear # ################################################################################ DROPBEAR_VERSION = 2020.81 DROPBEAR_SITE = https://matt.ucc.asn.au/dropbear/releases DROPBEAR_SOURCE = dropbear-$(DROPBEAR_VERSION).tar.bz2 DROPBEAR_LICENSE = MIT, BSD-2-Clause, Public domain DROPBEAR_LICENSE_FILES = LICENSE DROPBEAR_TARGET_BINS = dropbearkey dropbearconvert scp DROPBEAR_PROGRAMS = dropbear $(DROPBEAR_TARGET_BINS) DROPBEAR_CPE_ID_VENDOR = dropbear_ssh_project DROPBEAR_CPE_ID_PRODUCT = dropbear_ssh # Disable hardening flags added by dropbear configure.ac, and let # Buildroot add them when the relevant options are enabled. This # prevents dropbear from using SSP support when not available. DROPBEAR_CONF_OPTS = --disable-harden ifeq ($(BR2_PACKAGE_DROPBEAR_CLIENT),y) # Build dbclient, and create a convenience symlink named ssh DROPBEAR_PROGRAMS += dbclient DROPBEAR_TARGET_BINS += dbclient ssh endif DROPBEAR_MAKE = \ $(MAKE) MULTI=1 SCPPROGRESS=1 \ PROGRAMS="$(DROPBEAR_PROGRAMS)" # With BR2_SHARED_STATIC_LIBS=y the generic infrastructure adds a # --enable-static flags causing dropbear to be built as a static # binary. Adding a --disable-static reverts this ifeq ($(BR2_SHARED_STATIC_LIBS),y) DROPBEAR_CONF_OPTS += --disable-static endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) define DROPBEAR_SVR_PAM_AUTH echo '#define DROPBEAR_SVR_PASSWORD_AUTH 0' >> $(@D)/localoptions.h echo '#define DROPBEAR_SVR_PAM_AUTH 1' >> $(@D)/localoptions.h endef define DROPBEAR_INSTALL_PAM_CONF $(INSTALL) -D -m 644 package/dropbear/etc-pam.d-sshd $(TARGET_DIR)/etc/pam.d/sshd endef DROPBEAR_DEPENDENCIES += linux-pam DROPBEAR_CONF_OPTS += --enable-pam DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_SVR_PAM_AUTH DROPBEAR_POST_INSTALL_TARGET_HOOKS += DROPBEAR_INSTALL_PAM_CONF else # Ensure that dropbear doesn't use crypt() when it's not available define DROPBEAR_SVR_PASSWORD_AUTH echo '#if !HAVE_CRYPT' >> $(@D)/localoptions.h echo '#define DROPBEAR_SVR_PASSWORD_AUTH 0' >> $(@D)/localoptions.h echo '#endif' >> $(@D)/localoptions.h endef DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_SVR_PASSWORD_AUTH endif ifeq ($(BR2_PACKAGE_DROPBEAR_LEGACY_CRYPTO),y) define DROPBEAR_ENABLE_LEGACY_CRYPTO echo '#define DROPBEAR_3DES 1' >> $(@D)/localoptions.h echo '#define DROPBEAR_ENABLE_CBC_MODE 1' >> $(@D)/localoptions.h echo '#define DROPBEAR_SHA1_96_HMAC 1' >> $(@D)/localoptions.h endef DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_ENABLE_LEGACY_CRYPTO else define DROPBEAR_DISABLE_LEGACY_CRYPTO echo '#define DROPBEAR_DSS 0' >> $(@D)/localoptions.h echo '#define DROPBEAR_DH_GROUP1 0' >> $(@D)/localoptions.h endef DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_DISABLE_LEGACY_CRYPTO endif ifeq ($(BR2_PACKAGE_DROPBEAR_DISABLE_REVERSEDNS),) define DROPBEAR_ENABLE_REVERSE_DNS echo '#define DO_HOST_LOOKUP 1' >> $(@D)/localoptions.h endef DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_ENABLE_REVERSE_DNS endif ifeq ($(BR2_PACKAGE_DROPBEAR_SMALL),y) DROPBEAR_LICENSE += , Unlicense, WTFPL DROPBEAR_LICENSE_FILES += libtommath/LICENSE libtomcrypt/LICENSE DROPBEAR_CONF_OPTS += --disable-zlib --enable-bundled-libtom else define DROPBEAR_BUILD_FEATURED echo '#define DROPBEAR_SMALL_CODE 0' >> $(@D)/localoptions.h echo '#define DROPBEAR_TWOFISH128 1' >> $(@D)/localoptions.h echo '#define DROPBEAR_TWOFISH256 1' >> $(@D)/localoptions.h endef DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_BUILD_FEATURED DROPBEAR_DEPENDENCIES += zlib libtomcrypt DROPBEAR_CONF_OPTS += --disable-bundled-libtom endif define DROPBEAR_CUSTOM_PATH echo '#define DEFAULT_PATH $(BR2_SYSTEM_DEFAULT_PATH)' >>$(@D)/localoptions.h endef DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_CUSTOM_PATH define DROPBEAR_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/dropbear/dropbear.service \ $(TARGET_DIR)/usr/lib/systemd/system/dropbear.service endef ifeq ($(BR2_USE_MMU),y) define DROPBEAR_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/dropbear/S50dropbear \ $(TARGET_DIR)/etc/init.d/S50dropbear endef else define DROPBEAR_DISABLE_STANDALONE echo '#define NON_INETD_MODE 0' >> $(@D)/localoptions.h endef DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_DISABLE_STANDALONE endif ifneq ($(BR2_PACKAGE_DROPBEAR_WTMP),y) DROPBEAR_CONF_OPTS += --disable-wtmp endif ifneq ($(BR2_PACKAGE_DROPBEAR_LASTLOG),y) DROPBEAR_CONF_OPTS += --disable-lastlog endif DROPBEAR_LOCALOPTIONS_FILE = $(call qstrip,$(BR2_PACKAGE_DROPBEAR_LOCALOPTIONS_FILE)) ifneq ($(DROPBEAR_LOCALOPTIONS_FILE),) define DROPBEAR_APPEND_LOCALOPTIONS_FILE cat $(DROPBEAR_LOCALOPTIONS_FILE) >> $(@D)/localoptions.h endef DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_APPEND_LOCALOPTIONS_FILE endif define DROPBEAR_INSTALL_TARGET_CMDS $(INSTALL) -m 755 $(@D)/dropbearmulti $(TARGET_DIR)/usr/sbin/dropbear for f in $(DROPBEAR_TARGET_BINS); do \ ln -snf ../sbin/dropbear $(TARGET_DIR)/usr/bin/$$f ; \ done ln -snf /var/run/dropbear $(TARGET_DIR)/etc/dropbear endef $(eval $(autotools-package)) ================================================ FILE: package/dropbear/dropbear.service ================================================ [Unit] Description=Dropbear SSH daemon After=syslog.target network.target auditd.service [Service] # If /etc/dropbear is a symlink to /var/run/dropbear, and # - the filesystem is RO (i.e. we can not rm the symlink), # create the directory pointed to by the symlink. # - the filesystem is RW (i.e. we can rm the symlink), # replace the symlink with an actual directory ExecStartPre=/bin/sh -c '\ if [ -L /etc/dropbear \ -a "$(readlink /etc/dropbear)" = "/var/run/dropbear" ]; then \ if rm -f /etc/dropbear >/dev/null 2>&1; then \ mkdir -p /etc/dropbear; \ else \ echo "No persistent location to store SSH host keys. New keys will be"; \ echo "generated at each boot. Are you sure this is what you want to do?"; \ mkdir -p "$(readlink /etc/dropbear)"; \ fi; \ fi' EnvironmentFile=-/etc/default/dropbear ExecStart=/usr/sbin/dropbear -F -R $DROPBEAR_ARGS ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target ================================================ FILE: package/dropbear/etc-pam.d-sshd ================================================ #%PAM-1.0 auth required pam_unix.so shadow nodelay account required pam_nologin.so account required pam_unix.so password required pam_unix.so shadow nullok use_authtok session required pam_unix.so session required pam_limits.so ================================================ FILE: package/dropwatch/Config.in ================================================ config BR2_PACKAGE_DROPWATCH bool "dropwatch" depends on BR2_TOOLCHAIN_HAS_THREADS # libnl select BR2_PACKAGE_READLINE select BR2_PACKAGE_LIBNL select BR2_PACKAGE_LIBPCAP help Dropwatch is an interactive utility for monitoring and recording packets that are dropped by the kernel https://github.com/nhorman/dropwatch comment "dropwatch needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/dropwatch/dropwatch.hash ================================================ # Locally calculated sha256 b748b66a816c1f94531446c0451da5461a4a31b0949244bb867d741c6ac0148b dropwatch-1.5.3.tar.gz sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING ================================================ FILE: package/dropwatch/dropwatch.mk ================================================ ################################################################################ # # dropwatch # ################################################################################ DROPWATCH_VERSION = 1.5.3 DROPWATCH_SITE = $(call github,nhorman,dropwatch,v$(DROPWATCH_VERSION)) DROPWATCH_DEPENDENCIES = libnl readline libpcap host-pkgconf $(TARGET_NLS_DEPENDENCIES) DROPWATCH_LICENSE = GPL-2.0+ DROPWATCH_LICENSE_FILES = COPYING # From git DROPWATCH_AUTORECONF = YES DROPWATCH_CONF_OPTS = --without-bfd DROPWATCH_MAKE_OPTS = LIBS=$(TARGET_NLS_LIBS) $(eval $(autotools-package)) ================================================ FILE: package/dstat/Config.in ================================================ config BR2_PACKAGE_DSTAT bool "dstat" depends on BR2_USE_WCHAR # python depends on BR2_USE_MMU # python depends on BR2_TOOLCHAIN_HAS_THREADS # python depends on !BR2_STATIC_LIBS # python select BR2_PACKAGE_PYTHON3 if !BR2_PACKAGE_PYTHON help Dstat, written in Python, is a versatile replacement for vmstat, iostat, netstat and ifstat. Dstat overcomes some of their limitations and adds some extra features, more counters and flexibility. Dstat is handy for monitoring systems during performance tuning tests, benchmarks or troubleshooting. Dstat allows you to view all of your system resources in real-time, you can e.g. compare disk utilization in combination with interrupts from your IDE controller, or compare the network bandwidth numbers directly with the disk throughput (in the same interval). Note that to get proper output, your terminal size should be known by the termios subsystem. This can be done by running the 'resize' utility of busybox. http://dag.wieers.com/home-made/dstat/ comment "dstat 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 ================================================ FILE: package/dstat/dstat.hash ================================================ # Locally computed: sha256 4fbd58f3461c86d09a3ab97472aa204de37aa33d31a0493a3e5ed86a2045abea dstat-0.7.4.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/dstat/dstat.mk ================================================ ################################################################################ # # dstat # ################################################################################ DSTAT_VERSION = 0.7.4 DSTAT_SITE = $(call github,dagwieers,dstat,v$(DSTAT_VERSION)) DSTAT_LICENSE = GPL-2.0 DSTAT_LICENSE_FILES = COPYING define DSTAT_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/dt/0001-adjust-os-symlink.patch ================================================ 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) ================================================ FILE: package/dt/0002-dt-default-source-define.patch ================================================ 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; ================================================ FILE: package/dt/Config.in ================================================ 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 ================================================ FILE: package/dt/dt.hash ================================================ # 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 # Locally calculated sha256 10d164676e918a4d07f233bcd11e4cb6bfd1052c996182cd1827ccd0c063fcc6 dt-source-v18.32.tar.gz sha256 49f47f20de4b44dc3505ed0cc55bfbfe0fc3e41956ab546f1eeedcf554def54c LICENSE ================================================ FILE: package/dt/dt.mk ================================================ ################################################################################ # # dt # ################################################################################ DT_VERSION = 18.32 DT_SITE = http://pkgs.fedoraproject.org/repo/pkgs/dt/$(DT_SOURCE)/3054aeaaba047a1dbe90c2132a382ee2 DT_SOURCE = dt-source-v$(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)) ================================================ FILE: package/dt-utils/Config.in ================================================ config BR2_PACKAGE_DT_UTILS bool "dt-utils" depends on BR2_PACKAGE_HAS_UDEV help Tools for flattened device-tree dumping and barebox state manipulation. https://git.pengutronix.de/cgit/tools/dt-utils/ comment "dt-utils needs udev /dev management" depends on !BR2_PACKAGE_HAS_UDEV ================================================ FILE: package/dt-utils/dt-utils.hash ================================================ # Locally computed sha256 8b29d3a8799170afdb1b077e655528bf4e6afe0c789107b1eec8fff9d4482771 dt-utils-v2021.03.0-br1.tar.gz sha256 a45932c79317d15116eadbf1c9c6fc59117ec3c4621db3a876066defa723963b COPYING ================================================ FILE: package/dt-utils/dt-utils.mk ================================================ ################################################################################ # # dt-utils # ################################################################################ DT_UTILS_VERSION = v2021.03.0 DT_UTILS_SITE = https://git.pengutronix.de/git/tools/dt-utils DT_UTILS_SITE_METHOD = git DT_UTILS_LICENSE = GPL-2.0 DT_UTILS_LICENSE_FILES = COPYING DT_UTILS_DEPENDENCIES = udev DT_UTILS_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/dtach/Config.in ================================================ config BR2_PACKAGE_DTACH bool "dtach" depends on BR2_USE_MMU # fork() help dtach is a tiny program that emulates the detach feature of screen, allowing you to run a program in an environment that is protected from the controlling terminal and attach to it later. http://dtach.sourceforge.net/ ================================================ FILE: package/dtach/dtach.hash ================================================ # Locally computed: sha256 5f7e8c835ee49a9e6dcf89f4e8ccbe724b061c0fc8565b504dd8b3e67ab79f82 dtach-0.9.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/dtach/dtach.mk ================================================ ################################################################################ # # dtach # ################################################################################ DTACH_VERSION = 0.9 DTACH_SITE = $(call github,crigler,dtach,v$(DTACH_VERSION)) DTACH_LICENSE = GPL-2.0+ DTACH_LICENSE_FILES = COPYING # The Makefile does not have an install target. define DTACH_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/dtach $(TARGET_DIR)/usr/bin/dtach endef $(eval $(autotools-package)) ================================================ FILE: package/dtbocfg/Config.in ================================================ config BR2_PACKAGE_DTBOCFG bool "dtbocfg" depends on BR2_LINUX_KERNEL help dtbocfg, which stands for Device Tree Blob Overlay Configuration File System, was developed to serve as a userspace API of Device Tree Overlay. https://github.com/ikwzm/dtbocfg comment "dtbocfg needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL ================================================ FILE: package/dtbocfg/dtbocfg.hash ================================================ # Locally computed: sha256 faa53aefd7f7636c65e2b56bec223d2bc7676354e3ad9b5c1691aca349b9bbb8 dtbocfg-0.0.9.tar.gz sha256 e57cb9f2ed607cd95bf1b64371325c505c1ac8fe640a8c9933e7fe7637a38567 LICENSE ================================================ FILE: package/dtbocfg/dtbocfg.mk ================================================ ################################################################################ # # dtbocfg # ################################################################################ DTBOCFG_VERSION = 0.0.9 DTBOCFG_SITE = $(call github,ikwzm,dtbocfg,v$(DTBOCFG_VERSION)) DTBOCFG_LICENSE = BSD-2-Clause DTBOCFG_LICENSE_FILES = LICENSE define DTBOCFG_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_OF_OVERLAY) $(call KCONFIG_ENABLE_OPT,CONFIG_CONFIGFS_FS) endef $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/dtc/0001-Fix-include-guards-for-older-kernel-u-boot-sources.patch ================================================ From 086283ed7f1886de05407bc75dd4c070c78a6f50 Mon Sep 17 00:00:00 2001 From: Lothar Felten Date: Mon, 8 Oct 2018 13:29:44 +0200 Subject: [PATCH] Fix include guards for older kernel/u-boot sources Linux kernels before 4.17 and U-Boot versions before 2018.07 use libfdt include guards with leading underscores. Those have been removed in dtc-1.4.7. This patch handles both include guard types and allows the compilation of older Linux kernel and u-boot sources. Signed-off-by: Lothar Felten [ThomasDS: also update fdt.h which has the same issue, seen on U-Boot 2011.03] Signed-off-by: Thomas De Schampheleire [SB: Updated to match context change in v1.5.1] Signed-off-by: Sam Bobroff --- libfdt/fdt.h | 4 ++++ libfdt/libfdt.h | 4 ++++ libfdt/libfdt_env.h | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/libfdt/fdt.h b/libfdt/fdt.h index f2e6880..0f1dc4d 100644 --- a/libfdt/fdt.h +++ b/libfdt/fdt.h @@ -1,4 +1,8 @@ /* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */ +#ifdef _FDT_H +#warning "Please consider updating your kernel and/or u-boot version" +#define FDT_H +#endif #ifndef FDT_H #define FDT_H /* diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h index 8037f39..7668432 100644 --- a/libfdt/libfdt.h +++ b/libfdt/libfdt.h @@ -1,4 +1,8 @@ /* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */ +#ifdef _LIBFDT_H +#warning "Please consider updating your kernel and/or u-boot version" +#define LIBFDT_H +#endif #ifndef LIBFDT_H #define LIBFDT_H /* diff --git a/libfdt/libfdt_env.h b/libfdt/libfdt_env.h index 73b6d40..b95a287 100644 --- a/libfdt/libfdt_env.h +++ b/libfdt/libfdt_env.h @@ -1,4 +1,8 @@ /* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */ +#ifdef _LIBFDT_ENV_H +#warning "Please consider updating your kernel and/or u-boot version" +#define LIBFDT_ENV_H +#endif #ifndef LIBFDT_ENV_H #define LIBFDT_ENV_H /* -- 2.22.0.216.g00a2a96fc9 ================================================ FILE: package/dtc/Config.in ================================================ config BR2_PACKAGE_DTC bool "dtc (libfdt)" depends on !BR2_STATIC_LIBS help The Device Tree Compiler, dtc, takes as input a device-tree in a given format and outputs a device-tree in another format. Note that only the library is installed. If you want the programs, say 'y' here, and to "dtc programs", below. https://git.kernel.org/cgit/utils/dtc/dtc.git if BR2_PACKAGE_DTC config BR2_PACKAGE_DTC_PROGRAMS bool "dtc programs" help Say 'y' here if you also want the programs on the target: - convert-dtsv0 convert from version 0 to version 1 - dtc the device tree compiler - dtdiff compare two device trees (needs bash) - fdtdump print a readable version of a flat device tree - fdtget read values from device tree - fdtput write a property value to a device tree Note: dtdiff requires bash, so if bash is not selected, dtdiff will be removed from the target file system. Enable bash if you need dtdiff on the target. comment "dtdiff will not be installed: it requires bash" depends on BR2_PACKAGE_DTC_PROGRAMS depends on !BR2_PACKAGE_BASH endif comment "dtc needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/dtc/Config.in.host ================================================ config BR2_PACKAGE_HOST_DTC bool "host dtc" help The Device Tree Compiler, dtc, takes as input a device-tree in a given format and outputs a device-tree in another format. Install host tools: dtc, convert-dtsv0, fdtdump, fdtget and fdtput. https://git.kernel.org/cgit/utils/dtc/dtc.git ================================================ FILE: package/dtc/dtc.hash ================================================ # from https://www.kernel.org/pub/software/utils/dtc/sha256sums.asc sha256 65cec529893659a49a89740bb362f507a3b94fc8cd791e76a8d6a2b6f3203473 dtc-1.6.1.tar.xz # Hash for license files sha256 78e1e1ce5728a990d59c7de61d4741c49185d5129daf783b386380a214328d68 README.license sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 GPL sha256 6313108c23efffa36948f8b2cff1560a5935373b527b0e1a837cc77e6ed1bacd BSD-2-Clause ================================================ FILE: package/dtc/dtc.mk ================================================ ################################################################################ # # dtc # ################################################################################ DTC_VERSION = 1.6.1 DTC_SOURCE = dtc-$(DTC_VERSION).tar.xz DTC_SITE = https://www.kernel.org/pub/software/utils/dtc DTC_LICENSE = GPL-2.0+ or BSD-2-Clause (library) DTC_LICENSE_FILES = README.license GPL BSD-2-Clause DTC_CPE_ID_VENDOR = dtc_project DTC_INSTALL_STAGING = YES DTC_DEPENDENCIES = host-bison host-flex host-pkgconf HOST_DTC_DEPENDENCIES = host-bison host-flex host-pkgconf DTC_MAKE_OPTS = \ PREFIX=/usr \ NO_PYTHON=1 \ NO_VALGRIND=1 # For the host, we install headers in a special subdirectory to avoid # conflicts with the in-kernel libfdt copy. HOST_DTC_MAKE_OPTS = \ PREFIX=$(HOST_DIR) \ INCLUDEDIR=$(HOST_DIR)/include/libfdt \ NO_PYTHON=1 \ NO_VALGRIND=1 \ NO_YAML=1 ifeq ($(BR2_PACKAGE_LIBYAML),y) DTC_DEPENDENCIES += libyaml else DTC_MAKE_OPTS += NO_YAML=1 endif define DTC_POST_INSTALL_TARGET_RM_DTDIFF rm -f $(TARGET_DIR)/usr/bin/dtdiff endef ifeq ($(BR2_PACKAGE_DTC_PROGRAMS),y) DTC_LICENSE += , GPL-2.0+ (programs) DTC_INSTALL_GOAL = install ifeq ($(BR2_PACKAGE_BASH),) DTC_POST_INSTALL_TARGET_HOOKS += DTC_POST_INSTALL_TARGET_RM_DTDIFF endif else # $(BR2_PACKAGE_DTC_PROGRAMS) != y DTC_INSTALL_GOAL = install-lib endif # $(BR2_PACKAGE_DTC_PROGRAMS) != y define DTC_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) EXTRA_CFLAGS="$(TARGET_CFLAGS) -fPIC" -C $(@D) $(DTC_MAKE_OPTS) endef # For staging, only the library is needed define DTC_INSTALL_STAGING_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) $(DTC_MAKE_OPTS) install-lib \ install-includes endef define DTC_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) $(DTC_MAKE_OPTS) $(DTC_INSTALL_GOAL) endef # host build define HOST_DTC_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) EXTRA_CFLAGS="$(HOST_CFLAGS) -fPIC" -C $(@D) $(HOST_DTC_MAKE_OPTS) endef define HOST_DTC_INSTALL_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(HOST_DTC_MAKE_OPTS) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/dtv-scan-tables/Config.in ================================================ config BR2_PACKAGE_DTV_SCAN_TABLES bool "dtv-scan-tables" help The Digital TV scan tables. http://git.linuxtv.org/dtv-scan-tables.git ================================================ FILE: package/dtv-scan-tables/dtv-scan-tables.hash ================================================ # Locally computed sha256 fc65b1f85195ab3d877f7ce802dc62b8c70b3a1815fa6e6a69de19a9d354c19a dtv-scan-tables-6d019038cd04e837d9dd58701202c15924c1c654-br1.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING sha256 4fd46f32582c29007657e2daad8d0a6d954cf4e9d2e47bae8f8d8c32765fc987 COPYING.LGPL ================================================ FILE: package/dtv-scan-tables/dtv-scan-tables.mk ================================================ ################################################################################ # # dtv-scan-tables # ################################################################################ DTV_SCAN_TABLES_VERSION = 6d019038cd04e837d9dd58701202c15924c1c654 DTV_SCAN_TABLES_SITE = https://git.linuxtv.org/dtv-scan-tables.git DTV_SCAN_TABLES_SITE_METHOD = git # This package only contains the transponders data. This is not a 'work' # as per traditional copyright, but just a collection of 'facts', so there's # probably no license to apply to these data files. # However, the package prominently contains the COPYING and COPYING.LIB # license files (respectively for the GPL-2.0 and the LGPL-2.1), so we use # that as the licensing information. DTV_SCAN_TABLES_LICENSE = GPL-2.0, LGPL-2.1 DTV_SCAN_TABLES_LICENSE_FILES = COPYING COPYING.LGPL define DTV_SCAN_TABLES_INSTALL_TARGET_CMDS for f in atsc dvb-c dvb-s dvb-t; do \ $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/share/dvb/$$f; \ $(INSTALL) $(@D)/$$f/* $(TARGET_DIR)/usr/share/dvb/$$f; \ done endef $(eval $(generic-package)) ================================================ FILE: package/duktape/Config.in ================================================ config BR2_PACKAGE_DUKTAPE bool "duktape" depends on !BR2_STATIC_LIBS help Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint. Duktape is easy to integrate into a C/C++ project: add duktape.c, duktape.h, and duk_config.h to your build, and use the Duktape API to call Ecmascript functions from C code and vice versa. http://www.duktape.org comment "duktape needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/duktape/duktape.hash ================================================ # Locally computed: sha256 96f4a05a6c84590e53b18c59bb776aaba80a205afbbd92b82be609ba7fe75fa7 duktape-2.6.0.tar.xz sha256 5b42d02dbd084fd6d7e61d93f52e02b596f25400e54e0f86d5780045e5b754c8 LICENSE.txt ================================================ FILE: package/duktape/duktape.mk ================================================ ################################################################################ # # duktape # ################################################################################ DUKTAPE_VERSION = 2.6.0 DUKTAPE_SOURCE = duktape-$(DUKTAPE_VERSION).tar.xz DUKTAPE_SITE = \ https://github.com/svaarala/duktape/releases/download/v$(DUKTAPE_VERSION) DUKTAPE_LICENSE = MIT DUKTAPE_LICENSE_FILES = LICENSE.txt DUKTAPE_INSTALL_STAGING = YES define DUKTAPE_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) -f Makefile.sharedlibrary endef define DUKTAPE_INSTALL_STAGING_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) -f Makefile.sharedlibrary \ INSTALL_PREFIX=$(STAGING_DIR)/usr install $(INSTALL) -D -m 0644 $(DUKTAPE_PKGDIR)/duktape.pc.in \ $(STAGING_DIR)/usr/lib/pkgconfig/duktape.pc $(SED) 's/@VERSION@/$(DUKTAPE_VERSION)/g;' \ $(STAGING_DIR)/usr/lib/pkgconfig/duktape.pc endef define DUKTAPE_INSTALL_TARGET_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) -f Makefile.sharedlibrary \ INSTALL_PREFIX=$(TARGET_DIR)/usr install endef $(eval $(generic-package)) ================================================ FILE: package/duktape/duktape.pc.in ================================================ prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: duktape Description: Embeddable Javascript engine Version: @VERSION@ Libs: -L${libdir} -lduktape Cflags: -I${includedir}/ ================================================ FILE: package/duma/0001-fix-cross-compilation.patch ================================================ Allow cross compilation. Adapted from crosstool-ng. Signed-off-by: Baruch Siach Index: b/GNUmakefile =================================================================== --- a/GNUmakefile +++ b/GNUmakefile @@ -93,10 +93,6 @@ # also define 'WIN32' # some defaults: -CC=gcc -CXX=g++ -AR=ar -RANLIB=ranlib INSTALL=install RM=rm RMFORCE=rm -f @@ -471,7 +467,7 @@ createconf$(EXEPOSTFIX): createconf.o - $(RMFORCE) createconf$(EXEPOSTFIX) - $(CC) $(CFLAGS) $(DUMA_OPTIONS) createconf.o -o createconf$(EXEPOSTFIX) + $(CC_FOR_BUILD) $(HOST_CFLAGS) $(DUMA_OPTIONS) createconf.o -o createconf$(EXEPOSTFIX) tstheap$(EXEPOSTFIX): libduma.a tstheap.o - $(RMFORCE) tstheap$(EXEPOSTFIX) @@ -532,7 +528,7 @@ # define rules how to build objects for createconf # createconf.o: - $(CC) $(CFLAGS) $(DUMA_OPTIONS) -c createconf.c -o $@ + $(CC_FOR_BUILD) $(HOST_CFLAGS) $(DUMA_OPTIONS) -c createconf.c -o $@ # ================================================ FILE: package/duma/0002-no-tests.patch ================================================ Do not build test programs Biulding test programs does not work when we want to do a static link, because duma.a redefines memcpy and strcpy, so the link fails. Signed-off-by: "Yann E. MORIN" diff -durN duma-2.5.15.orig/GNUmakefile duma-2.5.15/GNUmakefile --- duma-2.5.15.orig/GNUmakefile 2014-11-16 14:47:05.874448560 +0100 +++ duma-2.5.15/GNUmakefile 2014-11-16 14:54:50.792048921 +0100 @@ -294,7 +294,7 @@ SO_OBJECTS=dumapp_so.o duma_so.o sem_inc_so.o print_so.o # Make all the top-level targets the makefile knows about. -all: libduma.a tstheap$(EXEPOSTFIX) dumatest$(EXEPOSTFIX) thread-test$(EXEPOSTFIX) testmt$(EXEPOSTFIX) dumatestpp$(EXEPOSTFIX) testoperators$(EXEPOSTFIX) $(DUMA_DYN_DEPS) +all: libduma.a $(DUMA_DYN_DEPS) # Perform self tests on the program this makefile builds. check test: ================================================ FILE: package/duma/0003-fix-C++14.patch ================================================ 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" ================================================ FILE: package/duma/0004-Fix-build-with-latest-glibc.patch ================================================ Fix build with latest glibc Fixes: - http://autobuild.buildroot.net/results/c7de1a1d01edced2098a804ad87dcb67b5dc6832 Signed-off-by: Fabrice Fontaine diff -durN duma_2_5_15.orig/print.c duma_2_5_15/print.c --- duma_2_5_15.orig/print.c 2019-10-28 10:21:14.080149620 +0100 +++ duma_2_5_15/print.c 2019-10-28 10:22:01.256151561 +0100 @@ -326,9 +326,9 @@ if(DUMA_OUTPUT_FILE != NULL) { #if defined(WIN32) && !defined(__CYGWIN__) - fd = _open(DUMA_OUTPUT_FILE, _O_APPEND|_O_CREAT|_O_WRONLY); + fd = _open(DUMA_OUTPUT_FILE, _O_APPEND|_O_CREAT|_O_WRONLY, 0600); #else - fd = open(DUMA_OUTPUT_FILE, O_APPEND|O_CREAT|O_WRONLY); + fd = open(DUMA_OUTPUT_FILE, O_APPEND|O_CREAT|O_WRONLY, 0600); #endif if ( fd >= 0 ) { ================================================ FILE: package/duma/Config.in ================================================ config BR2_PACKAGE_DUMA bool "duma" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # By design, duma uses page mapping to isolate # allocations. Non-MMU platforms cannot perform such # things. depends on BR2_USE_MMU # duma works using LD_PRELOAD, so it always needs to build a # shared library depends on !BR2_STATIC_LIBS help D.U.M.A. - Detect Unintended Memory Access. A fork of the Electric Fence library. Detects buffer overflow and underflow, and also memory leaks. http://duma.sourceforge.net if BR2_PACKAGE_DUMA config BR2_PACKAGE_DUMA_NO_LEAKDETECTION bool "disable memory leak detection" endif # BR2_PACKAGE_DUMA comment "duma needs a toolchain w/ C++, threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS ================================================ FILE: package/duma/duma.hash ================================================ # Locally computed: sha256 baaf794854e3093ad1bddadbfb8ad4b220a7117d70359ee216bd59e353734e17 duma_2_5_15.tar.gz sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING-GPL sha256 a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7 COPYING-LGPL ================================================ FILE: package/duma/duma.mk ================================================ ################################################################################ # # duma # ################################################################################ DUMA_VERSION = 2.5.15 DUMA_SOURCE = duma_$(subst .,_,$(DUMA_VERSION)).tar.gz DUMA_SITE = http://downloads.sourceforge.net/project/duma/duma/$(DUMA_VERSION) DUMA_LICENSE = GPL-2.0+, LGPL-2.1+ DUMA_LICENSE_FILES = COPYING-GPL COPYING-LGPL DUMA_INSTALL_STAGING = YES DUMA_OPTIONS = \ $(if $(BR2_PACKAGE_DUMA_NO_LEAKDETECTION),-DDUMA_LIB_NO_LEAKDETECTION) # The dependency of some source files in duma_config.h, which is generated at # build time, is not specified in the Makefile. Force non-parallel build. define DUMA_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) $(TARGET_CONFIGURE_OPTS) \ OS=linux \ DUMA_OPTIONS="$(DUMA_OPTIONS)" \ CPPFLAGS="$(TARGET_CXXFLAGS) -std=c++11" -C $(@D) endef define DUMA_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) OS=linux prefix=$(STAGING_DIR)/usr install -C $(@D) endef define DUMA_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) OS=linux prefix=$(TARGET_DIR)/usr install -C $(@D) endef $(eval $(generic-package)) ================================================ FILE: package/dump1090/0001-dump1090.h-fix-build-with-gcc-10.patch ================================================ From 02153cb0b2d1083dcd587798d9ef7ce963739622 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 19 Aug 2020 18:46:17 +0200 Subject: [PATCH] dump1090.h: fix build with gcc 10 Fix the following build failures on gcc 10 (where -fno-common is enabled by default): /home/test/autobuild/run/instance-0/output-1/per-package/dump1090/host/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: interactive.o:/home/test/autobuild/run/instance-0/output-1/build/dump1090-bff92c4ad772a0a8d433f788d39dae97e00e4dbe/dump1090.h:373: multiple definition of `Modes'; /home/test/autobuild/run/instance-0/output-1/per-package/dump1090/host/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: interactive.o:/home/test/autobuild/run/instance-0/output-1/build/dump1090-bff92c4ad772a0a8d433f788d39dae97e00e4dbe/dump1090.h:373: multiple definition of `Modes'; dump1090.o:/home/test/autobuild/run/instance-0/output-1/build/dump1090-bff92c4ad772a0a8d433f788d39dae97e00e4dbe/dump1090.h:373: first defined here /home/test/autobuild/run/instance-0/output-1/per-package/dump1090/host/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: interactive.o:/home/test/autobuild/run/instance-0/output-1/build/dump1090-bff92c4ad772a0a8d433f788d39dae97e00e4dbe/dump1090.h:238: multiple definition of `tDF'; dump1090.o:/home/test/autobuild/run/instance-0/output-1/build/dump1090-bff92c4ad772a0a8d433f788d39dae97e00e4dbe/dump1090.h:238: first defined here /home/test/autobuild/run/instance-0/output-1/per-package/dump1090/host/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: view1090.o:/home/test/autobuild/run/instance-0/output-1/build/dump1090-bff92c4ad772a0a8d433f788d39dae97e00e4dbe/dump1090.h:373: first defined here Fixes: - http://autobuild.buildroot.org/results/88dc97fcaa649014edb3b54a5dd4bd8ec4715bbd Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/MalcolmRobb/dump1090/pull/96] --- dump1090.c | 3 +++ dump1090.h | 4 ++-- view1090.c | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/dump1090.c b/dump1090.c index 60882fc..1482224 100644 --- a/dump1090.c +++ b/dump1090.c @@ -29,6 +29,9 @@ // #include "coaa.h" #include "dump1090.h" + +struct modes Modes; + // // ============================= Utility functions ========================== // diff --git a/dump1090.h b/dump1090.h index 9ad4de0..283e760 100644 --- a/dump1090.h +++ b/dump1090.h @@ -235,10 +235,10 @@ struct stDF { uint64_t llTimestamp; // Timestamp at which the this packet was received uint32_t addr; // Timestamp at which the this packet was received unsigned char msg[MODES_LONG_MSG_BYTES]; // the binary -} tDF; +}; // Program global state -struct { // Internal state +extern struct modes { // Internal state pthread_t reader_thread; pthread_mutex_t data_mutex; // Mutex to synchronize buffer access diff --git a/view1090.c b/view1090.c index 0b9b8b9..cc072fc 100644 --- a/view1090.c +++ b/view1090.c @@ -29,6 +29,9 @@ // #include "coaa.h" #include "view1090.h" + +struct modes Modes; + // // ============================= Utility functions ========================== // -- 2.27.0 ================================================ FILE: package/dump1090/Config.in ================================================ config BR2_PACKAGE_DUMP1090 bool "dump1090" depends on BR2_TOOLCHAIN_HAS_THREADS # librtlsdr depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # librtlsdr -> libusb select BR2_PACKAGE_LIBRTLSDR help Dump1090 is a simple Mode S decoder for RTLSDR devices https://github.com/MalcolmRobb/dump1090 comment "dump1090 needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/dump1090/dump1090.hash ================================================ # Locally computed sha256 72c1a94f3e6788af1e72b8cac13bb53e0989fe02cd13e191133f5519d2a2fefb dump1090-bff92c4ad772a0a8d433f788d39dae97e00e4dbe.tar.gz sha256 29046ef7ee0b7b127bcc64faf135035820906dea2b379b2efcfc119131a39f7a anet.h ================================================ FILE: package/dump1090/dump1090.mk ================================================ ################################################################################ # # dump1090 # ################################################################################ DUMP1090_VERSION = bff92c4ad772a0a8d433f788d39dae97e00e4dbe DUMP1090_SITE = $(call github,MalcolmRobb,dump1090,$(DUMP1090_VERSION)) DUMP1090_LICENSE = BSD-3-Clause # no real license file DUMP1090_LICENSE_FILES = anet.h DUMP1090_DEPENDENCIES = host-pkgconf librtlsdr define DUMP1090_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) PREFIX=/usr -C $(@D) endef define DUMP1090_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/dump1090 $(TARGET_DIR)/usr/bin/dump1090 $(INSTALL) -m 0755 -D $(@D)/view1090 $(TARGET_DIR)/usr/bin/view1090 $(INSTALL) -d $(TARGET_DIR)/usr/share/dump1090 cp -r $(@D)/public_html/* $(TARGET_DIR)/usr/share/dump1090 endef $(eval $(generic-package)) ================================================ FILE: package/dvb-apps/0001-Fix-generate-keynames.patch ================================================ Fix generate-keynames.sh script for cross-compilation generate-keynames.sh reads /usr/include/linux to find the keyname symbols. However, when cross-compiling, the include path points somewhere else. Allow the user to pass CROSS_ROOT to point to the root of the cross-compilation environment. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- diff -rup dvb-apps-83c746462ccb.orig/util/av7110_loadkeys/generate-keynames.sh dvb-apps-83c746462ccb/util/av7110_loadkeys/generate-keynames.sh --- dvb-apps-83c746462ccb.orig/util/av7110_loadkeys/generate-keynames.sh 2012-12-06 10:38:07.000000000 +0100 +++ dvb-apps-83c746462ccb/util/av7110_loadkeys/generate-keynames.sh 2013-08-29 21:47:09.717991439 +0200 @@ -18,7 +18,7 @@ echo "};" >> $1 echo >> $1 echo >> $1 echo "static struct input_key_name key_name [] = {" >> $1 -for x in $(cat /usr/include/linux/input.h input_fake.h | \ +for x in $(cat ${CROSS_ROOT}/usr/include/linux/input.h input_fake.h | \ egrep "#define[ \t]+KEY_" | grep -v KEY_MAX | \ cut -f 1 | cut -f 2 -d " " | sort -u) ; do echo " { \"$(echo $x | cut -b 5-)\", $x }," >> $1 @@ -26,7 +26,7 @@ done echo "};" >> $1 echo >> $1 echo "static struct input_key_name btn_name [] = {" >> $1 -for x in $(cat /usr/include/linux/input.h input_fake.h | \ +for x in $(cat ${CROSS_ROOT}/usr/include/linux/input.h input_fake.h | \ egrep "#define[ \t]+BTN_" | \ cut -f 1 | cut -f 2 -d " " | sort -u) ; do echo " { \"$(echo $x | cut -b 5-)\", $x }," >> $1 ================================================ FILE: package/dvb-apps/0002-Fix-compiler-warning-flags.patch ================================================ From 9b8f1df41f7579da63c27763ff184d351e4c7fef Mon Sep 17 00:00:00 2001 From: Simon Dawson Date: Sun, 4 Jan 2015 12:06:18 +0100 Subject: [PATCH] Fix compiler warning flags When building for bfin, the build fails as follows. cc1: error: unrecognized command line option "-Wno-packed-bitfield-compat" An example of an autobuild failure arising from this is the following. http://autobuild.buildroot.net/results/92e/92e472004812a3616f62d766a9ea07a997a66e89/ http://autobuild.buildroot.net/results/6e7/6e7b48ad9768349d983985c3067c4267cde80541/ Clearly, not all toolchains provide a gcc that understands the -Wno-packed-bitfield-compat flag; remove usage of this flag. Wno-packed-bitfield-compat option was added in gcc 4.4. [Romain: - This patch is also needed for bfin toolchains which use gcc 4.3.5 - Add a link to bfin build failure] Signed-off-by: Simon Dawson Signed-off-by: Romain Naour --- util/scan/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/scan/Makefile b/util/scan/Makefile index d48c478..88667c5 100644 --- a/util/scan/Makefile +++ b/util/scan/Makefile @@ -14,7 +14,7 @@ inst_bin = $(binaries) removing = atsc_psip_section.c atsc_psip_section.h -CPPFLAGS += -Wno-packed-bitfield-compat -D__KERNEL_STRICT_NAMES +CPPFLAGS += -D__KERNEL_STRICT_NAMES .PHONY: all -- 1.9.3 ================================================ FILE: package/dvb-apps/0003-handle-static-shared-only-build.patch ================================================ From a826c7c722db40bfedf00e51ce38411550ae8216 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Thu, 25 Dec 2014 19:22:16 +0100 Subject: [PATCH] Make.rules: Handle static/shared only build Do not build .a library when enable_static is set to "no" Do not build .so library when enable_shared is set to "no" Signed-off-by: Romain Naour --- Make.rules | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Make.rules b/Make.rules index 3410d7b..d274e16 100644 --- a/Make.rules +++ b/Make.rules @@ -9,7 +9,13 @@ ifneq ($(lib_name),) CFLAGS_LIB ?= -fPIC CFLAGS += $(CFLAGS_LIB) -libraries = $(lib_name).so $(lib_name).a +ifneq ($(enable_static),no) +libraries += $(lib_name).a +endif + +ifneq ($(enable_shared),no) +libraries += $(lib_name).so +endif .PHONY: library @@ -23,7 +29,7 @@ prerequisites = $(subst .o,.d,$(objects)) $(addsuffix .d,$(binaries)) .PHONY: clean install -ifeq ($(static),1) +ifneq ($(enable_static),no) LDFLAGS += -static endif -- 1.9.3 ================================================ FILE: package/dvb-apps/0004-Makefile-remove-test.patch ================================================ From c578772d6abc5fdf3ec83f632c371373e5baf9f1 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Fri, 26 Dec 2014 01:04:58 +0100 Subject: [PATCH] Makefile: remove test Tests needs static libraries, remove them for shared only build. Signed-off-by: Romain Naour --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 65a2273..105c460 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,6 @@ DVB_API_MINOR := $(word 3, $(shell grep -m1 "DVB_API_VERSION_MINOR" $(VERSION_FI all clean install: $(MAKE) -C lib $@ - $(MAKE) -C test $@ $(MAKE) -C util $@ update: -- 1.9.3 ================================================ FILE: package/dvb-apps/0005-utils-fix-build-with-kernel-headers-4.14.patch ================================================ # HG changeset patch # User "Yann E. MORIN" # Date 1511772629 -3600 # Mon Nov 27 09:50:29 2017 +0100 # Branch yem/fixes # Node ID 0848fa96c6eb13cf37249d317eff12cbd2f59ff7 # Parent 3d43b280298c39a67d1d889e01e173f52c12da35 utils: fix build with kernel headers >= 4.14 In kernel 4.14, CA_SET_PID was removed, in commit 833ff5e7feda (media: ca.h: get rid of CA_SET_PID). Fix dst-util to not fail the build when this is missing. Fiuxes build failures such as: http://autobuild.buildroot.org/results/708/708f11809b2cafc2a3375dc515803c87b376ed4d/build-end.log http://autobuild.buildroot.org/results/e39/e3939d44376e92e8a35fb179d9890510334d8304/build-end.log Signed-off-by: "Yann E. MORIN" diff --git a/util/dst-utils/dst_test.c b/util/dst-utils/dst_test.c --- a/util/dst-utils/dst_test.c +++ b/util/dst-utils/dst_test.c @@ -111,6 +111,7 @@ return 0; } +#if defined CA_SET_PID static int dst_set_pid(int cafd) { if ((ioctl(cafd, CA_SET_PID)) < 0) { @@ -120,6 +121,7 @@ return 0; } +#endif static int dst_get_descr(int cafd) { @@ -230,8 +232,12 @@ dst_reset(cafd); break; case 'p': +#if defined CA_SET_PID printf("%s: PID\n", __FUNCTION__); dst_set_pid(cafd); +#else + printf("%s: PID not supported\n", __FUNCTION__); +#endif break; case 'g': printf("%s: Get Desc\n", __FUNCTION__); ================================================ FILE: package/dvb-apps/0006-fix-glibc-2.31.patch ================================================ dvbdate: fix compilation error with glibc 2.31 as stime func doesn't exists anymore in newer versions of glibc >= 2.31 due to obseletion, a replacment with clock_settime is inorder to fix the issue. Signed-off-by: Dagg Stompler --- a/util/dvbdate/dvbdate.c +++ b/util/dvbdate/dvbdate.c @@ -309,7 +309,10 @@ */ int set_time(time_t * new_time) { - if (stime(new_time)) { + struct timespec s = {0}; + s.tv_sec = new_time; + + if (clock_settime(CLOCK_REALTIME, &s)) { perror("Unable to set time"); return -1; } ================================================ FILE: package/dvb-apps/Config.in ================================================ config BR2_PACKAGE_DVB_APPS bool "dvb-apps" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Install a small number of DVB test and utility programs, including szap and dvbscan. http://linuxtv.org/projects.php http://linuxtv.org/hg/dvb-apps comment "dvb-apps utils needs a toolchain w/ threads, headers >= 3.3" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 ================================================ FILE: package/dvb-apps/dvb-apps.hash ================================================ # Locally computed: sha256 926208b7e711b4bab1a909ff9bf4e6ae54acdd30a46f5d5bd700ecb088fe1f57 dvb-apps-3d43b280298c39a67d1d889e01e173f52c12da35.tar.gz # Hash for license files: sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING sha256 4fd46f32582c29007657e2daad8d0a6d954cf4e9d2e47bae8f8d8c32765fc987 COPYING.LGPL ================================================ FILE: package/dvb-apps/dvb-apps.mk ================================================ ################################################################################ # # dvb-apps # ################################################################################ DVB_APPS_VERSION = 3d43b280298c39a67d1d889e01e173f52c12da35 DVB_APPS_SITE = http://linuxtv.org/hg/dvb-apps DVB_APPS_SITE_METHOD = hg DVB_APPS_LICENSE = GPL-2.0, GPL-2.0+, LGPL-2.1+ DVB_APPS_LICENSE_FILES = COPYING COPYING.LGPL ifeq ($(BR2_ENABLE_LOCALE),) DVB_APPS_DEPENDENCIES += libiconv DVB_APPS_LDLIBS += -liconv endif DVB_APPS_MAKE_OPTS = PERL5LIB=$(@D)/util/scan ifeq ($(BR2_STATIC_LIBS),y) DVB_APPS_MAKE_OPTS += enable_shared=no else ifeq ($(BR2_SHARED_LIBS),y) DVB_APPS_MAKE_OPTS += enable_static=no endif DVB_APPS_INSTALL_STAGING = YES define DVB_APPS_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) LDLIBS="$(DVB_APPS_LDLIBS)" \ $(MAKE1) -C $(@D) CROSS_ROOT=$(STAGING_DIR) \ $(DVB_APPS_MAKE_OPTS) endef define DVB_APPS_INSTALL_STAGING_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(DVB_APPS_MAKE_OPTS) DESTDIR=$(STAGING_DIR) install endef define DVB_APPS_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(DVB_APPS_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/dvblast/0001-missing-lm.patch ================================================ dvblast: fix static linking dvblast links to -lev, wihch uses functions from the maths library, like floor(). When linking to a shared libev.so, that dependency is automatically pulled in because libev as a DT_NEEDED ELF tag on libm.so. But when lnking to the static libev.a, since there is no way to express such dependencies in static libraries, libm is not pulled in, which leads to build failures such as; http://autobuild.buildroot.org/results/1f0/1f02f84fb926839a1adbe3af457bb909fdc44433/build-end.log Fix that by always linking to -lm (which must come *after* -lev). Signed-off-by: "Yann E. MORIN" diff -durN dvblast-3.0.orig/Makefile dvblast-3.0/Makefile --- dvblast-3.0.orig/Makefile 2015-10-05 17:51:14.000000000 +0200 +++ dvblast-3.0/Makefile 2015-10-30 15:57:19.547123894 +0100 @@ -28,7 +28,7 @@ LDLIBS += -lstreammaster endif -LDLIBS_DVBLAST += -lpthread -lev +LDLIBS_DVBLAST += -lpthread -lev -lm OBJ_DVBLAST = dvblast.o util.o dvb.o udp.o asi.o demux.o output.o en50221.o comm.o mrtg-cnt.o asi-deltacast.o OBJ_DVBLASTCTL = util.o dvblastctl.o ================================================ FILE: package/dvblast/0002-fix-int-types.patch ================================================ Standard integer types are uintXX_t not u_intXX_t This fixes the build with the musl C library. Signed-off-by: "Yann E. MORIN" diff -durN dvblast-3.0.orig/dvblast.h dvblast-3.0/dvblast.h --- dvblast-3.0.orig/dvblast.h 2015-10-05 17:51:14.000000000 +0200 +++ dvblast-3.0/dvblast.h 2015-10-30 16:29:25.586125193 +0100 @@ -49,10 +49,10 @@ * Raw udp packet structure with flexible-array payload *****************************************************************************/ struct udpheader { // FAVOR_BSD hell ... - u_int16_t source; - u_int16_t dest; - u_int16_t len; - u_int16_t check; + uint16_t source; + uint16_t dest; + uint16_t len; + uint16_t check; }; #if defined(__FreeBSD__) || defined(__APPLE__) ================================================ FILE: package/dvblast/Config.in ================================================ config BR2_PACKAGE_DVBLAST bool "dvblast" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_BITSTREAM select BR2_PACKAGE_LIBEV select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE 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" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/dvblast/dvblast.hash ================================================ # From https://get.videolan.org/dvblast/3.4/dvblast-3.4.tar.bz2.md5 md5 148a26e1207e111f905461cfb1cd106a dvblast-3.4.tar.bz2 # From https://get.videolan.org/dvblast/3.4/dvblast-3.4.tar.bz2.sha256 sha256 7abd45aff738544017350af87ec7ebad00fcfb4e4effd04f35023d504d9b6f44 dvblast-3.4.tar.bz2 # Locally computed sha256 94f68aec169fb6c9937eade757251714d38a56812be5dbfc3973914a71ad8d2d COPYING sha256 2c1bea2f338d46ee6f2712f2c2bf05b874327ca0bec5eb0b7b4fbe208a23677f COPYING.WTFPL ================================================ FILE: package/dvblast/dvblast.mk ================================================ ################################################################################ # # dvblast # ################################################################################ DVBLAST_VERSION = 3.4 DVBLAST_SOURCE = dvblast-$(DVBLAST_VERSION).tar.bz2 DVBLAST_SITE = https://get.videolan.org/dvblast/$(DVBLAST_VERSION) DVBLAST_LICENSE = GPL-2.0+, WTFPL DVBLAST_LICENSE_FILES = COPYING COPYING.WTFPL DVBLAST_DEPENDENCIES = bitstream libev DVBLAST_MAKE_ENV = $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) ifeq ($(BR2_PACKAGE_LIBICONV),y) DVBLAST_DEPENDENCIES += libiconv DVBLAST_MAKE_ENV += LDLIBS=-liconv endif define DVBLAST_BUILD_CMDS $(DVBLAST_MAKE_ENV) $(MAKE) -C $(@D) endef define DVBLAST_INSTALL_TARGET_CMDS $(DVBLAST_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr install endef $(eval $(generic-package)) ================================================ FILE: package/dvbsnoop/0001-musl-types-h.patch ================================================ Fix musl build Signed-off-by: Bernd Kuhls diff -uNr dvbsnoop-1.4.50.org/src/misc/helper.h dvbsnoop-1.4.50/src/misc/helper.h --- dvbsnoop-1.4.50.org/src/misc/helper.h 2006-01-02 20:04:56.000000000 +0100 +++ dvbsnoop-1.4.50/src/misc/helper.h 2016-01-24 14:35:02.000000000 +0100 @@ -16,6 +16,7 @@ #ifndef __HELPER_H #define __HELPER_H +#include u_long outBit_Sx (int verbosity, const char *text, u_char *buf, int startbit, int bitlen); u_long outBit_Sx_NL (int verbosity, const char *text, u_char *buf, int startbit, int bitlen); ================================================ FILE: package/dvbsnoop/Config.in ================================================ config BR2_PACKAGE_DVBSNOOP bool "dvbsnoop" help Dvbsnoop is just a simple tool to analyze, view or debug a transport stream (TS), program elementary stream (PES) or even a program stream (PS). Dvbsnoop is trying to get input mostly direct from a frontend (satellite or cable tuner inside a set-top box for example) via DVB APIv3 to view into a TS, or a demux to view PES or PS (also mostly inside the set-top box or even PCI Card or USB Plug) but also from a file (recorded TS). Dvbsnoop is working well on SD transport streams but may have some limited functionality on HD transport streams (DVB-{C,S,T}2 because of missing knowledge how to handle it. Dvbsnoop itself doesn't do the tuning on the frontend, this has to be done by external helpers or manually driver call. The dvbsnoop tool was written while developing the software Neutrino on the set-top box DBox2. http://dvbsnoop.sourceforge.net http://en.wikipedia.org/wiki/DBox2 ================================================ FILE: package/dvbsnoop/dvbsnoop.hash ================================================ # Locally computed: sha256 7658498b26a5d2a0242e81f0cfafa0e43a2bec56f8674e7ac197dfc310866ec6 dvbsnoop-1.4.50.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/dvbsnoop/dvbsnoop.mk ================================================ ################################################################################ # # dvbsnoop # ################################################################################ DVBSNOOP_VERSION = 1.4.50 DVBSNOOP_SITE = http://downloads.sourceforge.net/project/dvbsnoop/dvbsnoop/dvbsnoop-$(DVBSNOOP_VERSION) DVBSNOOP_LICENSE = GPL-2.0 DVBSNOOP_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/dvdauthor/Config.in ================================================ config BR2_PACKAGE_DVDAUTHOR bool "dvdauthor" select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_LIBPNG help DVDAuthor is a set of tools to help you author the file and directory structure of a DVD-Video disc, including programmatic commands for implementing interactive behaviour. It is driven by command lines and XML control files, though there are other programs that provide GUI-based front ends if you prefer http://dvdauthor.sourceforge.net if BR2_PACKAGE_DVDAUTHOR config BR2_PACKAGE_DVDAUTHOR_DVDUNAUTHOR bool "dvdunauthor" select BR2_PACKAGE_LIBDVDREAD help This option enables the dvdunauthor program, which requires libdvdread. endif ================================================ FILE: package/dvdauthor/dvdauthor.hash ================================================ # From https://sourceforge.net/projects/dvdauthor/files md5 1173dcb8d40e74fc90c0f3a25dbd642d dvdauthor-0.7.2.tar.gz sha1 0e605642140576bfb3e963414d77630d1c073a51 dvdauthor-0.7.2.tar.gz # Locally computed sha256 3020a92de9f78eb36f48b6f22d5a001c47107826634a785a62dfcd080f612eb7 dvdauthor-0.7.2.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/dvdauthor/dvdauthor.mk ================================================ ################################################################################ # # dvdauthor # ################################################################################ DVDAUTHOR_VERSION = 0.7.2 DVDAUTHOR_SITE = https://sourceforge.net/projects/dvdauthor/files DVDAUTHOR_DEPENDENCIES = host-pkgconf libxml2 freetype libpng DVDAUTHOR_LICENSE = GPL-2.0+ DVDAUTHOR_LICENSE_FILES = COPYING DVDAUTHOR_CONF_ENV = \ ac_cv_prog_FREETYPECONFIG=$(STAGING_DIR)/usr/bin/freetype-config \ ac_cv_path_XML2_CONFIG=$(STAGING_DIR)/usr/bin/xml2-config \ ac_cv_prog_GMAGICKCONFIG= ifeq ($(BR2_PACKAGE_IMAGEMAGICK),y) DVDAUTHOR_DEPENDENCIES += imagemagick DVDAUTHOR_CONF_ENV += \ ac_cv_prog_MAGICKCONFIG=$(STAGING_DIR)/usr/bin/Magick-config else DVDAUTHOR_CONF_ENV += \ ac_cv_prog_MAGICKCONFIG= endif # Automatically detected by dvdauthor configure script, no way to # disable. ifeq ($(BR2_PACKAGE_FONTCONFIG),y) DVDAUTHOR_DEPENDENCIES += fontconfig endif ifeq ($(BR2_PACKAGE_LIBFRIBIDI),y) DVDAUTHOR_DEPENDENCIES += libfribidi 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 endif $(eval $(autotools-package)) ================================================ FILE: package/dvdrw-tools/0001-limits.h.patch ================================================ transport.hxx: add limits.h include now needed because of kernel changes Signed-off-by: Steve Kenton diff -pruN dvd+rw-tools-7.1.ori/transport.hxx dvd+rw-tools-7.1/transport.hxx --- dvd+rw-tools-7.1.ori/transport.hxx 2008-03-01 04:34:43.000000000 -0600 +++ dvd+rw-tools-7.1/transport.hxx 2015-01-18 15:47:24.245863631 -0600 @@ -9,6 +9,7 @@ #if defined(__unix) || defined(__unix__) #include #include +#include #include #include #include @@ -40,6 +41,7 @@ inline long getmsecs() #include #include #include +#include #define ssize_t LONG_PTR #define off64_t __int64 ================================================ FILE: package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch ================================================ growisofs.c: include sysmacros.h to compile with glibc-2.28 Signed-off-by: Giulio Benetti diff -urpN dvd+rw-tools-7.1.orig/growisofs.c dvd+rw-tools-7.1/growisofs.c --- dvd+rw-tools-7.1.orig/growisofs.c 2018-09-08 01:56:11.686656819 +0200 +++ dvd+rw-tools-7.1/growisofs.c 2018-09-08 02:11:45.868778471 +0200 @@ -441,6 +441,7 @@ #include #include #include +#include #include #include "mp.h" ================================================ FILE: package/dvdrw-tools/Config.in ================================================ comment "dvdrw-tools needs a toolchain w/ threads, C++, wchar" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_USE_WCHAR config BR2_PACKAGE_DVDRW_TOOLS bool "dvdrw-tools" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR help The dvd+rw-tools are used to master Blu-ray Disc and DVD Disc media, both +RW/+R and -RW/-R. Note: The +RW in the name is a historical artifact. This package contains the widely used growisofs program. Buildroot does not support packages with a '+' sign in their name, which explains why it is named dvdrw-tools and not dvd+rw-tools. Because dvd+rw-tools does not directly interact with disc media it uses a separate media backend program. The usual backend is mkisofs from the cdrtools package. However, cdrtools is not currently part of buildroot. The Linux From Scratch project uses uses xorriso for the media backend and Ubuntu uses cdrkit for the backend. Choose the one which seems most appropriate for your use. NOTE: xorriso does not currently support UDF. http://fy.chalmers.se/~appro/linux/DVD+RW/tools if BR2_PACKAGE_DVDRW_TOOLS choice prompt "Media Backend" help Choose which media backend program to use. config BR2_PACKAGE_DVDRW_TOOLS_CDRKIT_BACKEND bool "cdrkit" select BR2_PACKAGE_CDRKIT help Symlink mkisofs to genisoimage from the cdrkit package. config BR2_PACKAGE_DVDRW_TOOLS_XORRISO_BACKEND bool "xorriso" select BR2_PACKAGE_XORRISO help Symlink mkisofs to xorrisofs from the xorriso package. endchoice endif ================================================ FILE: package/dvdrw-tools/dvdrw-tools.hash ================================================ # Locally computed using sha256sum sha256 f8d60f822e914128bcbc5f64fbe3ed131cbff9045dca7e12c5b77b26edde72ca dvd+rw-tools-7.1.tar.gz sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad LICENSE ================================================ FILE: package/dvdrw-tools/dvdrw-tools.mk ================================================ ################################################################################ # # dvdrw-tools # ################################################################################ DVDRW_TOOLS_VERSION = 7.1 DVDRW_TOOLS_SOURCE = dvd+rw-tools-$(DVDRW_TOOLS_VERSION).tar.gz DVDRW_TOOLS_SITE = http://fy.chalmers.se/~appro/linux/DVD+RW/tools DVDRW_TOOLS_LICENSE = GPL-2.0 DVDRW_TOOLS_LICENSE_FILES = LICENSE DVDRW_TOOLS_DEPENDENCIES = host-m4 define DVDRW_TOOLS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef ifeq ($(BR2_PACKAGE_DVDRW_TOOLS_CDRKIT_BACKEND),y) DVDRW_TOOLS_BACKEND = genisoimage DVDRW_TOOLS_DEPENDENCIES += cdrkit else ifeq ($(BR2_PACKAGE_DVDRW_TOOLS_XORRISO_BACKEND),y) DVDRW_TOOLS_BACKEND = xorrisofs DVDRW_TOOLS_DEPENDENCIES += xorriso endif define DVDRW_TOOLS_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/dvd-ram-control $(TARGET_DIR)/usr/bin/dvd-ram-control $(INSTALL) -m 0755 -D $(@D)/dvd+rw-booktype $(TARGET_DIR)/usr/bin/dvd+rw-booktype $(INSTALL) -m 0755 -D $(@D)/dvd+rw-format $(TARGET_DIR)/usr/bin/dvd+rw-format $(INSTALL) -m 0755 -D $(@D)/dvd+rw-mediainfo $(TARGET_DIR)/usr/bin/dvd+rw-mediainfo $(INSTALL) -m 0755 -D $(@D)/growisofs $(TARGET_DIR)/usr/bin/growisofs ln -s -f $(DVDRW_TOOLS_BACKEND) $(TARGET_DIR)/usr/bin/mkisofs endef $(eval $(generic-package)) ================================================ FILE: package/e2fsprogs/Config.in ================================================ menuconfig BR2_PACKAGE_E2FSPROGS bool "e2fsprogs" depends on BR2_USE_MMU # util-linux/libblkid select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBUUID help The EXT2 file system utilities. The following programs are always built and installed: badblocks chattr debugfs dumpe2fs e2freefrag e2fsck e2image e2undo e4crypt e4defrag filefrag fsck fuse2fs logsave lsattr mke2fs mklost+found resize2fs tune2fs The uuid utilities (uuidd, uuidgen) are not built. Use the ones from util-linux, instead. Other programs can be selected individually. http://e2fsprogs.sourceforge.net if BR2_PACKAGE_E2FSPROGS config BR2_PACKAGE_E2FSPROGS_DEBUGFS bool "debugfs" help ext2/ext3/ext4 file system debugger config BR2_PACKAGE_E2FSPROGS_E2IMAGE bool "e2image" help Save critical ext2/ext3/ext4 filesystem metadata to a file config BR2_PACKAGE_E2FSPROGS_E2SCRUB bool "e2scrub" depends on BR2_PACKAGE_BASH # runtime depends on BR2_PACKAGE_COREUTILS # runtime depends on BR2_PACKAGE_LVM2 # runtime depends on BR2_PACKAGE_UTIL_LINUX # runtime help Check the contents of a mounted ext[234] filesystem comment "e2scrub needs bash, coreutils, lvm2, and util-linux" depends on !BR2_PACKAGE_BASH || !BR2_PACKAGE_COREUTILS \ || !BR2_PACKAGE_LVM2 || !BR2_PACKAGE_UTIL_LINUX config BR2_PACKAGE_E2FSPROGS_E4DEFRAG bool "e4defrag" depends on !BR2_nios2 # fallocate not implemented depends on !BR2_TOOLCHAIN_USES_UCLIBC # sync_file_range not impl help Online defragmenter for ext4 filesystem comment "e4defrag needs a glibc or musl toolchain" depends on !BR2_nios2 depends on BR2_TOOLCHAIN_USES_UCLIBC config BR2_PACKAGE_E2FSPROGS_FSCK bool "fsck" default y depends on !BR2_PACKAGE_UTIL_LINUX_FSCK help Check and repair a Linux file system. This is a wrapper around the filesystem-specific fsck tools. config BR2_PACKAGE_E2FSPROGS_FUSE2FS bool "fuse2fs" depends on !BR2_STATIC_LIBS # libfuse depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse select BR2_PACKAGE_LIBFUSE help FUSE file system client for ext2/ext3/ext4 file systems comment "fuse2fs needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS config BR2_PACKAGE_E2FSPROGS_RESIZE2FS bool "resize2fs" help ext2/ext3/ext4 file system resizer endif ================================================ FILE: package/e2fsprogs/Config.in.host ================================================ config BR2_PACKAGE_HOST_E2FSPROGS bool "host e2fsprogs" select BR2_PACKAGE_HOST_UTIL_LINUX help The EXT2/3/4 file system utilities. http://e2fsprogs.sourceforge.net ================================================ FILE: package/e2fsprogs/e2fsprogs.hash ================================================ # From https://mirrors.edge.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.46.3/sha256sums.asc sha256 b11042533c1b1dcf17512f0da48e05b0c573dada1dd8b762864d10f4dc399713 e2fsprogs-1.46.4.tar.xz # Locally calculated sha256 5da5ef153e559c1d990d4c3eedbedd4442db892d37eae1f35fff069de8ec9020 NOTICE sha256 032989b508f1a72ebee5b3417e55d06d473f9ee203e45ab11864a7e49cdec63d lib/ss/mit-sipb-copyright.h sha256 47182fe6631a32f271a15bbe210751b3825b7199f588879aac7d4804fc8b4b8f lib/et/internal.h ================================================ FILE: package/e2fsprogs/e2fsprogs.mk ================================================ ################################################################################ # # e2fsprogs # ################################################################################ E2FSPROGS_VERSION = 1.46.4 E2FSPROGS_SOURCE = e2fsprogs-$(E2FSPROGS_VERSION).tar.xz E2FSPROGS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/people/tytso/e2fsprogs/v$(E2FSPROGS_VERSION) E2FSPROGS_LICENSE = GPL-2.0, MIT-like with advertising clause (libss and libet) E2FSPROGS_LICENSE_FILES = NOTICE lib/ss/mit-sipb-copyright.h lib/et/internal.h E2FSPROGS_CPE_ID_VENDOR = e2fsprogs_project E2FSPROGS_INSTALL_STAGING = YES # Use libblkid and libuuid from util-linux for host and target packages. # This prevents overriding them with e2fsprogs' ones, which may cause # problems for other packages. E2FSPROGS_DEPENDENCIES = host-pkgconf util-linux HOST_E2FSPROGS_DEPENDENCIES = host-pkgconf host-util-linux E2FSPROGS_SELINUX_MODULES = fstools # e4defrag doesn't build on older systems like RHEL5.x, and we don't # need it on the host anyway. # Disable fuse2fs as well to avoid carrying over deps, and it's unused HOST_E2FSPROGS_CONF_OPTS = \ --disable-defrag \ --disable-e2initrd-helper \ --disable-fuse2fs \ --disable-fsck \ --disable-libblkid \ --disable-libuuid \ --disable-testio-debug \ --enable-symlink-install \ --enable-elf-shlibs \ --with-crond-dir=no \ --with-udev-rules-dir=no \ --with-systemd-unit-dir=no # Set the binary directories to "/bin" and "/sbin", as busybox does, # so that we do not end up with two versions of e2fs tools. E2FSPROGS_CONF_OPTS = \ --bindir=/bin \ --sbindir=/sbin \ $(if $(BR2_STATIC_LIBS),--disable-elf-shlibs,--enable-elf-shlibs) \ $(if $(BR2_PACKAGE_E2FSPROGS_DEBUGFS),--enable-debugfs,--disable-debugfs) \ $(if $(BR2_PACKAGE_E2FSPROGS_E2IMAGE),--enable-imager,--disable-imager) \ $(if $(BR2_PACKAGE_E2FSPROGS_E4DEFRAG),--enable-defrag,--disable-defrag) \ $(if $(BR2_PACKAGE_E2FSPROGS_FSCK),--enable-fsck,--disable-fsck) \ $(if $(BR2_PACKAGE_E2FSPROGS_RESIZE2FS),--enable-resizer,--disable-resizer) \ --disable-uuidd \ --disable-libblkid \ --disable-libuuid \ --disable-e2initrd-helper \ --disable-testio-debug \ --disable-rpath \ --enable-symlink-install 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 E2FSPROGS_CONF_ENV += ac_cv_path_LDCONFIG=true HOST_E2FSPROGS_CONF_ENV += ac_cv_path_LDCONFIG=true E2FSPROGS_INSTALL_STAGING_OPTS = \ DESTDIR=$(STAGING_DIR) \ install-libs # e2scrub has no associated --enable/disable option ifneq ($(BR2_PACKAGE_E2FSPROGS_E2SCRUB),y) E2FSPROGS_MAKE_OPTS += E2SCRUB_DIR= endif E2FSPROGS_INSTALL_TARGET_OPTS = \ $(E2FSPROGS_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) \ install # Package does not build in parallel due to improper make rules define HOST_E2FSPROGS_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) install install-libs endef # Remove compile_et which raises a build failure with samba4 define HOST_E2FSPROGS_REMOVE_COMPILE_ET $(RM) $(HOST_DIR)/bin/compile_et endef HOST_E2FSPROGS_POST_INSTALL_HOOKS += HOST_E2FSPROGS_REMOVE_COMPILE_ET $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/e2tools/Config.in ================================================ config BR2_PACKAGE_E2TOOLS bool "e2tools" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR # uses wchar_t depends on BR2_USE_MMU # e2fsprogs select BR2_PACKAGE_E2FSPROGS help E2tools is a simple set of GPL'ed utilities to read, write, and manipulate files in an ext2/ext3 filesystem. These utilities access a filesystem directly using the ext2fs library. https://github.com/ndim/e2tools comment "e2tools needs a toolchain w/ threads, wchar" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR depends on BR2_USE_MMU ================================================ FILE: package/e2tools/Config.in.host ================================================ config BR2_PACKAGE_HOST_E2TOOLS bool "host e2tools" select BR2_PACKAGE_HOST_E2FSPROGS help E2tools is a simple set of GPL'ed utilities to read, write, and manipulate files in an ext2/ext3 filesystem. These utilities access a filesystem directly using the ext2fs library. https://github.com/ndim/e2tools ================================================ FILE: package/e2tools/e2tools.hash ================================================ # Locally calculated sha256 1d06ca71f01483ad6d9a514e31466e7d2357b3465de2813d667a8b2f9638544e e2tools-0.0.16.4.tar.gz sha256 0e79fd282723e1eb3f7381d41233a83ed20cf3e8c83aa53e6847bf7ffe781583 COPYING ================================================ FILE: package/e2tools/e2tools.mk ================================================ ################################################################################ # # e2tools # ################################################################################ E2TOOLS_VERSION = 0.0.16.4 E2TOOLS_SITE = $(call github,ndim,e2tools,v$(E2TOOLS_VERSION)) # Source coming from GitHub, no configure included. E2TOOLS_AUTORECONF = YES E2TOOLS_LICENSE = GPL-2.0 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)) $(eval $(host-autotools-package)) ================================================ FILE: package/earlyoom/Config.in ================================================ config BR2_PACKAGE_EARLYOOM bool "earlyoom" depends on BR2_USE_MMU help Early OOM daemon for Linux. User space daemon for triggering Linux OOM killer before running out of memory, avoiding situations where the machine becomes unresponsive from out of control swapping. https://github.com/rfjakob/earlyoom ================================================ FILE: package/earlyoom/S02earlyoom ================================================ #!/bin/sh DAEMON="earlyoom" PIDFILE="/var/run/$DAEMON.pid" EARLYOOM_ARGS="" [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf() 'Starting %s: ' "$DAEMON" start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/bin/$DAEMON" \ -- $EARLYOOM_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop start } case "$1" in start|stop|restart) "$1";; reload) restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/earlyoom/earlyoom.hash ================================================ # locally calculated sha256 227234cf9e77831c21c748bd361e1a7c415e158b96034eacd59e70586779bb6c earlyoom-1.6.2.tar.gz # License files, locally calculated sha256 e730b3ec729de46d987ae73f30ed337e4cbe832f09205330acfa71848c6e0087 LICENSE ================================================ FILE: package/earlyoom/earlyoom.mk ================================================ ################################################################################ # # earlyoom # ################################################################################ EARLYOOM_VERSION = 1.6.2 EARLYOOM_SITE = $(call github,rfjakob,earlyoom,v$(EARLYOOM_VERSION)) EARLYOOM_LICENSE = MIT EARLYOOM_LICENSE_FILES = LICENSE EARLYOOM_BUILD_TARGETS = earlyoom.service earlyoom EARLYOOM_INSTALL_TARGETS = install-default install-bin EARLYOOM_CFLAGS = '$(TARGET_CFLAGS) -std=gnu99 -DVERSION=\"1.6\"' EARLYOOM_MAKE_OPTS = \ $(TARGET_CONFIGURE_OPTS) \ PREFIX=/usr define EARLYOOM_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(EARLYOOM_MAKE_OPTS) -C $(@D) \ $(EARLYOOM_BUILD_TARGETS) CFLAGS=$(EARLYOOM_CFLAGS) endef define EARLYOOM_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(EARLYOOM_MAKE_OPTS) -C $(@D) \ $(EARLYOOM_INSTALL_TARGETS) DESTDIR=$(TARGET_DIR) endef define EARLYOOM_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 $(EARLYOOM_PKGDIR)/S02earlyoom \ $(TARGET_DIR)/etc/init.d/S02earlyoom endef define EARLYOOM_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(@D)/earlyoom.service \ $(TARGET_DIR)/usr/lib/systemd/system/earlyoom.service endef $(eval $(generic-package)) ================================================ FILE: package/easy-rsa/Config.in ================================================ config BR2_PACKAGE_EASY_RSA bool "easy-rsa" select BR2_PACKAGE_OPENSSL # runtime select BR2_PACKAGE_LIBOPENSSL_BIN if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBRESSL_BIN if BR2_PACKAGE_LIBRESSL help Simple shell based CA utility This package eases the creation of certificates, for example for openvpn clients. This was formerly part of the openvpn package. easy-rsa is a wrapper script around OpenSSL binaries. https://github.com/OpenVPN/easy-rsa ================================================ FILE: package/easy-rsa/easy-rsa.hash ================================================ # Locally computed: (after verifying gpg sig) sha512 fd2cde4725cffd60c6af1b6aeaff0dbf15f31f0f322c9df75c22838e2297ba9dc3bba610d956464c8227bd74b3e63840e2a3da41fbc5ee1c79c1e7f5350adc94 EasyRSA-3.0.8.tgz # Hash for license files sha256 7c4a4fc71745d93a87278801f1bca555562ca23f21e18293add64b9e6f6b7bf1 COPYING.md sha256 640d90f6ee401241ff62834d0d1b33f83049e99b8bfdfa04ed1b0a1635dde3e7 gpl-2.0.txt ================================================ FILE: package/easy-rsa/easy-rsa.mk ================================================ ################################################################################ # # easy-rsa # ################################################################################ EASY_RSA_VERSION = 3.0.8 EASY_RSA_SOURCE = EasyRSA-$(EASY_RSA_VERSION).tgz EASY_RSA_SITE = https://github.com/OpenVPN/easy-rsa/releases/download/v$(EASY_RSA_VERSION) EASY_RSA_LICENSE = GPL-2.0 EASY_RSA_LICENSE_FILES = COPYING.md gpl-2.0.txt # shell script, so no build step define EASY_RSA_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/easyrsa $(TARGET_DIR)/usr/bin/easyrsa $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/easy-rsa/x509-types $(INSTALL) -m 0644 -t $(TARGET_DIR)/etc/easy-rsa/x509-types $(@D)/x509-types/* $(INSTALL) -D -m 0644 $(@D)/openssl-easyrsa.cnf $(TARGET_DIR)/etc/easy-rsa/openssl-easyrsa.cnf $(INSTALL) -D -m 0644 $(@D)/vars.example $(TARGET_DIR)/etc/easy-rsa/vars endef $(eval $(generic-package)) ================================================ FILE: package/easydbus/Config.in ================================================ config BR2_PACKAGE_EASYDBUS bool "easydbus" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 depends on !BR2_PACKAGE_LUA_5_4 select BR2_PACKAGE_LIBGLIB2 help Easy to use DBus library for Lua. https://github.com/mniestroj/easydbus comment "easydbus needs a toolchain w/ wchar, threads, Lua <= 5.3" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_PACKAGE_LUA_5_4 ================================================ FILE: package/easydbus/easydbus.hash ================================================ # Locally calculated sha256 8cec24bff40f056d4874ed9d6fb73c9f1efbc5eff14528e1b49f1a162b197f26 easydbus-0.1.0.tar.gz sha256 dec3b3103cd6889045da86fc7da22bd25545966e5bd7c214791b922dec19588b LICENSE ================================================ FILE: package/easydbus/easydbus.mk ================================================ ################################################################################ # # easydbus # ################################################################################ EASYDBUS_VERSION = 0.1.0 EASYDBUS_SITE = $(call github,mniestroj,easydbus,v$(EASYDBUS_VERSION)) EASYDBUS_DEPENDENCIES = luainterpreter libglib2 EASYDBUS_LICENSE = MIT EASYDBUS_LICENSE_FILES = LICENSE $(eval $(cmake-package)) ================================================ FILE: package/easyframes/0001-CMakesLists.txt-fix-static-build-with-pcap.patch ================================================ From 89ad9c143825b13d028c2f1713d55e83135d5c0f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 5 Sep 2020 15:38:33 +0200 Subject: [PATCH] CMakesLists.txt: fix static build with pcap Use pkg-config to find the dependencies of pcap such as libnl otherwise a static-only build will fail on: [100%] Linking C executable ef /srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /srv/storage/autobuild/run/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libpcap.a(pcap-linux.o): in function `nl80211_init': pcap-linux.c:(.text+0x460): undefined reference to `nl_socket_alloc' /srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: pcap-linux.c:(.text+0x498): undefined reference to `genl_connect' Fixes: - http://autobuild.buildroot.org/results/99062bfc8c21c32bc835acae675aede7c9cf0c90 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/microchip-ung/easyframes/pull/2] --- CMakeLists.txt | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a62a950..5be128c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,13 +7,21 @@ include_directories(src) set(_LIBPCAP "") -FIND_PATH(PCAP_INCLUDE_DIR NAMES pcap/pcap.h) -FIND_LIBRARY(PCAP_LIBRARY NAMES pcap) - -if (PCAP_LIBRARY) +find_package(PkgConfig) +pkg_check_modules(PCAP libpcap) +if (PCAP_FOUND) add_definitions(-DHAS_LIBPCAP) - include_directories(${PCAP_INCLUDE_DIR}) - set(_LIBPCAP ${PCAP_LIBRARY}) + include_directories(${PCAP_INCLUDE_DIRS}) + set(_LIBPCAP ${PCAP_LIBRARIES}) +else() + FIND_PATH(PCAP_INCLUDE_DIR NAMES pcap/pcap.h) + FIND_LIBRARY(PCAP_LIBRARY NAMES pcap) + + if (PCAP_LIBRARY) + add_definitions(-DHAS_LIBPCAP) + include_directories(${PCAP_INCLUDE_DIR}) + set(_LIBPCAP ${PCAP_LIBRARY}) + endif() endif() add_library(libef STATIC -- 2.28.0 ================================================ FILE: package/easyframes/0002-Fix-different-compiling-issues.patch ================================================ From d3d179c3c39ec10ec636b325325ad8e18ae9542f Mon Sep 17 00:00:00 2001 From: Horatiu Vultur Date: Tue, 1 Sep 2020 13:03:47 +0200 Subject: [PATCH] Fix different compiling issues [Retrieved from: https://github.com/microchip-ung/easyframes/commit/d3d179c3c39ec10ec636b325325ad8e18ae9542f] Signed-off-by: Fabrice Fontaine --- src/ef-exec.c | 4 ++-- src/ef-parse-bytes.c | 8 ++++++-- src/ef.h | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/ef-exec.c b/src/ef-exec.c index 3d184a0..824164e 100644 --- a/src/ef-exec.c +++ b/src/ef-exec.c @@ -108,7 +108,7 @@ int ring_wait_for_init(tpacket_ring *ring) { int raw_socket(cmd_socket_t *cmd_socket) { - int s, res, val, ifidx; + int s, res, val, ifidx, i; struct sockaddr_ll sa = {}; struct packet_mreq mr = {}; @@ -194,7 +194,7 @@ int raw_socket(cmd_socket_t *cmd_socket) { // // TODO: This does not seem to be needed, if we uses a RX ring buffer // instead (atleast that seems to work for libpcap) - for (int i = 0; i < 10000; ++i) { + for (i = 0; i < 10000; ++i) { struct msghdr msg = { 0 }; int res = recvmsg(s, &msg, MSG_DONTWAIT); if (res < 0) diff --git a/src/ef-parse-bytes.c b/src/ef-parse-bytes.c index 1dd590f..1785f45 100644 --- a/src/ef-parse-bytes.c +++ b/src/ef-parse-bytes.c @@ -2,6 +2,7 @@ #include #include #include +#include #include struct start_with { @@ -212,7 +213,9 @@ buf_t *parse_bytes(const char *s, int bytes) { for (s = data_begin; *s; ++s) { int match_found = 0; for (i = 0; i < sizeof(has_chars)/sizeof(has_chars[0]); ++i) { - for (const char *set_i = has_chars[i].char_set; *set_i; ++set_i) { + const char *set_i; + + for (set_i = has_chars[i].char_set; *set_i; ++set_i) { if (*s == *set_i) { has_mask |= has_chars[i].mask; match_found = 1; @@ -313,6 +316,7 @@ buf_t *parse_bytes(const char *s, int bytes) { ((has_mask & ~(HAS_HEX_COL)) == 0) && (has_mask & HAS_COLON)) { // This will be treated as a mac-address uint8_t m[6] = {}; + const char *x; // We want to be able to write something like this (like we RFC2373 // specifies for IPv6): @@ -334,7 +338,7 @@ buf_t *parse_bytes(const char *s, int bytes) { //po("line: %d data_begin: %s\n", __LINE__, data_begin); - for (const char *x = data_begin; *x; ++x) { + for (x = data_begin; *x; ++x) { int colon = 0; int val = 0; diff --git a/src/ef.h b/src/ef.h index 8926c25..f4c1629 100644 --- a/src/ef.h +++ b/src/ef.h @@ -59,8 +59,8 @@ void bl_check(buf_list_t *b); void bl_reset(buf_list_t *b); void bset_value(buf_t *b, uint8_t v); -inline void bl_init(buf_list_t *b) { bl_reset(b); } -inline void bl_destroy(buf_list_t *b) { bl_reset(b); } +static inline void bl_init(buf_list_t *b) { bl_reset(b); } +static inline void bl_destroy(buf_list_t *b) { bl_reset(b); } int bl_printf_append(buf_list_t *b, const char *format, ...) __attribute__ ((format (printf, 2, 3))); ================================================ FILE: package/easyframes/Config.in ================================================ config BR2_PACKAGE_EASYFRAMES bool "easyframes" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBPCAP help This is a small and simple command-line tool for network testing. The tool makes it simple to compose a frame, inject and express what and where frames are expected to be received. https://github.com/microchip-ung/easyframes ================================================ FILE: package/easyframes/easyframes.hash ================================================ # locally calculated sha256 3c0449b3129c29b5ecf67b689f1a75ffc65fde3c5f62811e2f0439ce4f4af392 easyframes-0.3.tar.gz sha256 24f37598e822a1411fb7164ce7eb3ef120aea8279016399abc282c2381ce3f57 COPYING ================================================ FILE: package/easyframes/easyframes.mk ================================================ ################################################################################ # # easyframes # ################################################################################ EASYFRAMES_VERSION = 0.3 EASYFRAMES_SITE = $(call github,microchip-ung,easyframes,v$(EASYFRAMES_VERSION)) EASYFRAMES_DEPENDENCIES = host-pkgconf libpcap EASYFRAMES_LICENSE = MIT EASYFRAMES_LICENSE_FILES = COPYING $(eval $(cmake-package)) ================================================ FILE: package/ebtables/0001-replace-ebtables-save-perl-script-with-bash.patch ================================================ From 73536d15c80be96049289d96fc32122467c56b1d Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Mon, 16 Dec 2019 13:27:30 -0600 Subject: [PATCH] ebtables: replace ebtables-save perl script with bash rewrite Fedora provides a bash replacement for the default ebtables-save perl script. Using it allows the ebtables run-time dependency on perl to be replaced with a runtime dependency on bash - which is lower overhead and more likely to be present on typical embedded systems already. https://bugzilla.redhat.com/show_bug.cgi?id=746040 http://pkgs.fedoraproject.org/cgit/rpms/ebtables.git/tree/ebtables-save Upstream: https://github.com/openembedded/meta-openembedded/commit/7f723007364ba79de05447671e83d4eefb3097dc Signed-off-by: Matthew Weber [ryanbarnett3@gmail.com: - changed EBTABLES executable to /usr/sbin/ebtables-legacy ] Signed-off-by: Ryan Barnett --- ebtables-save.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 ebtables-save.sh diff --git a/ebtables-save.sh b/ebtables-save.sh new file mode 100644 index 0000000..2d7fc4e --- /dev/null +++ b/ebtables-save.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +EBTABLES="/usr/sbin/ebtables-legacy" + +[ -x "$EBTABLES" ] || exit 1 + +echo "# Generated by ebtables-save v1.0 on $(date)" + +cnt="" +[ "x$EBTABLES_SAVE_COUNTER" = "xyes" ] && cnt="--Lc" + +for table_name in $(grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//); do + table=$($EBTABLES -t $table_name -L $cnt) + [ $? -eq 0 ] || { echo "$table"; exit -1; } + + chain="" + rules="" + while read line; do + [ -z "$line" ] && continue + + case "$line" in + Bridge\ table:\ *) + echo "*${line:14}" + ;; + Bridge\ chain:\ *) + chain="${line:14}" + chain="${chain%%,*}" + policy="${line##*policy: }" + echo ":$chain $policy" + ;; + *) + if [ "$cnt" = "--Lc" ]; then + line=${line/, pcnt \=/ -c} + line=${line/-- bcnt \=/} + fi + rules="$rules-A $chain $line\n" + ;; + esac + done < Date: Wed, 24 Mar 2021 11:27:14 +0100 Subject: [PATCH] ebtables.h: restore KERNEL_64_USERSPACE_32 checks Commit e6359eedfbf497e52d52451072aea4713ed80a88 replaced the file ebtables.h but removed the usage of KERNEL_64_USERSPACE_32. This breaks boards where such flag is relevant, with following messages: [ 6364.971346] kernel msg: ebtables bug: please report to author: Standard target size too big Unable to update the kernel. Two possible causes: 1. Multiple ebtables programs were executing simultaneously. The ebtables userspace tool doesn't by default support multiple ebtables programs running concurrently. The ebtables option --concurrent or a tool like flock can be used to support concurrent scripts that update the ebtables kernel tables. 2. The kernel doesn't support a certain ebtables extension, consider recompiling your kernel or insmod the extension. Analysis shows that the structure 'ebt_replace' passed from userspace ebtables to the kernel, is too small, i.e 80 bytes instead of 120 in case of 64-bit kernel. Note that the ebtables build system seems to assume that 'sparc64' is the only case where KERNEL_64_USERSPACE_32 is relevant, but this is not true. This situation can happen on many architectures, especially in embedded systems. For example, an Aarch64 processor with kernel in 64-bit but userland build for 32-bit Arm. Or a 64-bit MIPS Octeon III processor, with userland running in the 'n32' ABI. Signed-off-by: Thomas De Schampheleire Upstream-Status: http://patchwork.ozlabs.org/project/netfilter-devel/patch/20210518181730.13436-1-patrickdepinguin@gmail.com/ --- include/linux/netfilter_bridge/ebtables.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/include/linux/netfilter_bridge/ebtables.h b/include/linux/netfilter_bridge/ebtables.h index 5be75f2..3c2b61e 100644 --- a/include/linux/netfilter_bridge/ebtables.h +++ b/include/linux/netfilter_bridge/ebtables.h @@ -49,12 +49,21 @@ struct ebt_replace { /* total size of the entries */ unsigned int entries_size; /* start of the chains */ +#ifdef KERNEL_64_USERSPACE_32 + uint64_t hook_entry[NF_BR_NUMHOOKS]; +#else struct ebt_entries *hook_entry[NF_BR_NUMHOOKS]; +#endif /* nr of counters userspace expects back */ unsigned int num_counters; /* where the kernel will put the old counters */ +#ifdef KERNEL_64_USERSPACE_32 + uint64_t counters; + uint64_t entries; +#else struct ebt_counter *counters; char *entries; +#endif }; struct ebt_replace_kernel { @@ -129,6 +138,9 @@ struct ebt_entry_match { } u; /* size of data */ unsigned int match_size; +#ifdef KERNEL_64_USERSPACE_32 + unsigned int pad; +#endif unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); }; @@ -142,6 +154,9 @@ struct ebt_entry_watcher { } u; /* size of data */ unsigned int watcher_size; +#ifdef KERNEL_64_USERSPACE_32 + unsigned int pad; +#endif unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); }; @@ -155,6 +170,9 @@ struct ebt_entry_target { } u; /* size of data */ unsigned int target_size; +#ifdef KERNEL_64_USERSPACE_32 + unsigned int pad; +#endif unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); }; @@ -162,6 +180,9 @@ struct ebt_entry_target { struct ebt_standard_target { struct ebt_entry_target target; int verdict; +#ifdef KERNEL_64_USERSPACE_32 + unsigned int pad; +#endif }; /* one entry */ -- 2.26.2 ================================================ FILE: package/ebtables/0003-configure.ac-add-option-enable-kernel-64-userland-32.patch ================================================ From ebf0236270b977a62c522bc32810bc9f8edc72d1 Mon Sep 17 00:00:00 2001 From: Thomas De Schampheleire Date: Wed, 24 Mar 2021 13:40:14 +0100 Subject: [PATCH] configure.ac: add option --enable-kernel-64-userland-32 The ebtables build system seems to assume that 'sparc64' is the only case where KERNEL_64_USERSPACE_32 is relevant, but this is not true. This situation can happen on many architectures, especially in embedded systems. For example, an Aarch64 processor with kernel in 64-bit but userland build for 32-bit Arm. Or a 64-bit MIPS Octeon III processor, with userland running in the 'n32' ABI. While it is possible to set CFLAGS in the environment when calling the configure script, the caller would need to know to not only specify KERNEL_64_USERSPACE_32 but also the EBT_MIN_ALIGN value. Instead, add a configure option. All internal details can then be handled by the configure script. Signed-off-by: Thomas De Schampheleire Upstream-Status: http://patchwork.ozlabs.org/project/netfilter-devel/patch/20210518181730.13436-2-patrickdepinguin@gmail.com/ --- configure.ac | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index c24ede3..3e89c0c 100644 --- a/configure.ac +++ b/configure.ac @@ -15,10 +15,17 @@ AS_IF([test "x$LOCKFILE" = x], [LOCKFILE="/var/lib/ebtables/lock"]) regular_CFLAGS="-Wall -Wunused" regular_CPPFLAGS="" + case "$host" in sparc64-*) - regular_CPPFLAGS="$regular_CPPFLAGS -DEBT_MIN_ALIGN=8 -DKERNEL_64_USERSPACE_32";; + enable_kernel_64_userland_32=yes ;; esac +AC_ARG_ENABLE([kernel-64-userland-32], + AC_HELP_STRING([--enable-kernel-64-userland-32], [indicate that ebtables will be built as a 32-bit application but run under a 64-bit kernel]) +) +AS_IF([test "x$enable_kernel_64_userland_32" = xyes], + [regular_CPPFLAGS="$regular_CPPFLAGS -DEBT_MIN_ALIGN=8 -DKERNEL_64_USERSPACE_32"] +) AC_SUBST([regular_CFLAGS]) AC_SUBST([regular_CPPFLAGS]) -- 2.26.2 ================================================ FILE: package/ebtables/Config.in ================================================ config BR2_PACKAGE_EBTABLES bool "ebtables" depends on BR2_USE_MMU # fork() help Ethernet bridge frame table administration http://ebtables.netfilter.org/ if BR2_PACKAGE_EBTABLES config BR2_PACKAGE_EBTABLES_UTILS_SAVE bool "ebtables save" select BR2_PACKAGE_BASH # runtime select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash help Install the ebtables-legacy-save tool config BR2_PACKAGE_EBTABLES_UTILS_RESTORE bool "ebtables restore" help Install the ebtables-legacy-restore tool endif ================================================ FILE: package/ebtables/ebtables.hash ================================================ # ftp://ftp.netfilter.org/pub/ebtables/ebtables-2.0.11.tar.gz.sha256sum sha256 b71f654784a726329f88b412ef7b96b4e5d786ed2bd28193ed7b4c0d677dfd2a ebtables-2.0.11.tar.gz # Locally computed sha256 ebdb8ae564c952792017ec680e2edd30443642216eb9f8a3d8fa166c0cb628c1 COPYING ================================================ FILE: package/ebtables/ebtables.mk ================================================ ################################################################################ # # ebtables # ################################################################################ EBTABLES_VERSION = 2.0.11 EBTABLES_SITE = http://ftp.netfilter.org/pub/ebtables EBTABLES_LICENSE = GPL-2.0+ EBTABLES_LICENSE_FILES = COPYING EBTABLES_CPE_ID_VENDOR = netfilter EBTABLES_SELINUX_MODULES = iptables # for 0003-configure.ac-add-option-enable-kernel-64-userland-32.patch EBTABLES_AUTORECONF = YES ifeq ($(BR2_KERNEL_64_USERLAND_32),y) EBTABLES_CONF_OPTS += --enable-kernel-64-userland-32 endif ifeq ($(BR2_PACKAGE_EBTABLES_UTILS_SAVE),y) define EBTABLES_INSTALL_TARGET_UTILS_SAVE $(INSTALL) -m 0755 -D $(@D)/ebtables-save.sh $(TARGET_DIR)/usr/sbin/ebtables-legacy-save endef EBTABLES_POST_INSTALL_TARGET_HOOKS += EBTABLES_INSTALL_TARGET_UTILS_SAVE else # ebtables-legacy-save is installed by default, thus remove it from target define EBTABLES_REMOVE_UTILS_SAVE $(RM) -f $(TARGET_DIR)/usr/sbin/ebtables-legacy-save endef EBTABLES_POST_INSTALL_TARGET_HOOKS += EBTABLES_REMOVE_UTILS_SAVE endif # ebtables-legacy-restore is installed by default, thus remove it if not # selected ifeq ($(BR2_PACKAGE_EBTABLES_UTILS_RESTORE),) define EBTABLES_REMOVE_UTILS_RESTORE $(RM) -f $(TARGET_DIR)/usr/sbin/ebtables-legacy-restore endef EBTABLES_POST_INSTALL_TARGET_HOOKS += EBTABLES_REMOVE_UTILS_RESTORE endif ifeq ($(BR2_PACKAGE_IPTABLES_NFTABLES),) define EBTABLES_INSTALL_LEGACY_SYMLINK ln -sf /usr/sbin/ebtables-legacy $(TARGET_DIR)/sbin/ebtables endef EBTABLES_POST_INSTALL_TARGET_HOOKS += EBTABLES_INSTALL_LEGACY_SYMLINK endif $(eval $(autotools-package)) ================================================ FILE: package/ecryptfs-utils/0001-musl.patch ================================================ fix musl build Patch inspired by https://github.com/kraj/meta-musl/blob/master/recipes-core/util-linux/util-linux-2.25/0001-switch_root-use-typeof-instead-of-__SWORD_TYPE-for-s.patch Signed-off-by: Bernd Kuhls diff -uNr ecryptfs-utils-109.org/src/utils/mount.ecryptfs_private.c ecryptfs-utils-109/src/utils/mount.ecryptfs_private.c --- ecryptfs-utils-109.org/src/utils/mount.ecryptfs_private.c 2016-01-22 17:04:52.000000000 +0100 +++ ecryptfs-utils-109/src/utils/mount.ecryptfs_private.c 2016-01-24 16:52:37.000000000 +0100 @@ -224,6 +224,7 @@ static int check_cwd_f_type() { + struct statfs buf; /** * This is *not* a list of compatible lower filesystems list for * eCryptfs. This is a list of filesystems that we reasonably expect to @@ -235,7 +236,7 @@ * deceive other programs with a crafted /proc/self/*. See * https://launchpad.net/bugs/1530566 for more details. */ - __SWORD_TYPE f_type_whitelist[] = { + typeof(buf.f_type) f_type_whitelist[] = { 0x61756673 /* AUFS_SUPER_MAGIC */, 0x9123683E /* BTRFS_SUPER_MAGIC */, 0x00C36400 /* CEPH_SUPER_MAGIC */, @@ -259,7 +260,6 @@ 0x58465342 /* XFS_SB_MAGIC */, 0x2FC12FC1 /* ZFS_SUPER_MAGIC */, }; - struct statfs buf; size_t i, whitelist_len; if (statfs(".", &buf) != 0) { ================================================ FILE: package/ecryptfs-utils/0002-openssl110.patch ================================================ Fix build with OpenSSL 1.1.x Downloaded from upstream commit https://code.launchpad.net/~jelle-vdwaa/ecryptfs/ecryptfs/+merge/319746 Signed-off-by: Bernd Kuhls === modified file 'src/key_mod/ecryptfs_key_mod_openssl.c' --- a/src/key_mod/ecryptfs_key_mod_openssl.c 2013-10-25 19:45:09 +0000 +++ b/src/key_mod/ecryptfs_key_mod_openssl.c 2017-06-02 18:27:28 +0000 @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -55,6 +56,19 @@ char *passphrase; }; +#if OPENSSL_VERSION_NUMBER < 0x10100000L +static void RSA_get0_key(const RSA *r, + const BIGNUM **n, const BIGNUM **e, const BIGNUM **d) +{ + if (n != NULL) + *n = r->n; + if (e != NULL) + *e = r->e; + if (d != NULL) + *d = r->d; +} +#endif + static void ecryptfs_openssl_destroy_openssl_data(struct openssl_data *openssl_data) { @@ -142,6 +156,7 @@ { int len, nbits, ebits, i; int nbytes, ebytes; + const BIGNUM *key_n, *key_e; unsigned char *hash; unsigned char *data = NULL; int rc = 0; @@ -152,11 +167,13 @@ rc = -ENOMEM; goto out; } - nbits = BN_num_bits(key->n); + RSA_get0_key(key, &key_n, NULL, NULL); + nbits = BN_num_bits(key_n); nbytes = nbits / 8; if (nbits % 8) nbytes++; - ebits = BN_num_bits(key->e); + RSA_get0_key(key, NULL, &key_e, NULL); + ebits = BN_num_bits(key_e); ebytes = ebits / 8; if (ebits % 8) ebytes++; @@ -179,11 +196,13 @@ data[i++] = '\02'; data[i++] = (nbits >> 8); data[i++] = nbits; - BN_bn2bin(key->n, &(data[i])); + RSA_get0_key(key, &key_n, NULL, NULL); + BN_bn2bin(key_n, &(data[i])); i += nbytes; data[i++] = (ebits >> 8); data[i++] = ebits; - BN_bn2bin(key->e, &(data[i])); + RSA_get0_key(key, NULL, &key_e, NULL); + BN_bn2bin(key_e, &(data[i])); i += ebytes; SHA1(data, len + 3, hash); to_hex(sig, (char *)hash, ECRYPTFS_SIG_SIZE); @@ -278,7 +297,9 @@ BIO *in = NULL; int rc; + #if OPENSSL_VERSION_NUMBER < 0x10100000L CRYPTO_malloc_init(); + #endif ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); ENGINE_load_builtin_engines(); === modified file 'src/key_mod/ecryptfs_key_mod_pkcs11_helper.c' --- a/src/key_mod/ecryptfs_key_mod_pkcs11_helper.c 2013-10-25 19:45:09 +0000 +++ b/src/key_mod/ecryptfs_key_mod_pkcs11_helper.c 2017-06-02 18:27:28 +0000 @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -77,6 +78,19 @@ typedef const unsigned char *__pkcs11_openssl_d2i_t; #endif +#if OPENSSL_VERSION_NUMBER < 0x10100000L +static void RSA_get0_key(const RSA *r, + const BIGNUM **n, const BIGNUM **e, const BIGNUM **d) +{ + if (n != NULL) + *n = r->n; + if (e != NULL) + *e = r->e; + if (d != NULL) + *d = r->d; +} +#endif + /** * ecryptfs_pkcs11h_deserialize * @pkcs11h_data: The deserialized version of the key module data; @@ -282,7 +296,11 @@ goto out; } + #if OPENSSL_VERSION_NUMBER < 0x10100000L if (pubkey->type != EVP_PKEY_RSA) { + #else + if (EVP_PKEY_base_id(pubkey) != EVP_PKEY_RSA) { + #endif syslog(LOG_ERR, "PKCS#11: Invalid public key algorithm"); rc = -EIO; goto out; @@ -318,6 +336,7 @@ int nbytes, ebytes; char *hash = NULL; char *data = NULL; + const BIGNUM *rsa_n, *rsa_e; int rc; if ((rc = ecryptfs_pkcs11h_get_public_key(&rsa, blob))) { @@ -331,11 +350,13 @@ rc = -ENOMEM; goto out; } - nbits = BN_num_bits(rsa->n); + RSA_get0_key(rsa, &rsa_n, NULL, NULL); + nbits = BN_num_bits(rsa_n); nbytes = nbits / 8; if (nbits % 8) nbytes++; - ebits = BN_num_bits(rsa->e); + RSA_get0_key(rsa, NULL, &rsa_e, NULL); + ebits = BN_num_bits(rsa_e); ebytes = ebits / 8; if (ebits % 8) ebytes++; @@ -358,11 +379,13 @@ data[i++] = '\02'; data[i++] = (char)(nbits >> 8); data[i++] = (char)nbits; - BN_bn2bin(rsa->n, &(data[i])); + RSA_get0_key(rsa, &rsa_n, NULL, NULL); + BN_bn2bin(rsa_n, &(data[i])); i += nbytes; data[i++] = (char)(ebits >> 8); data[i++] = (char)ebits; - BN_bn2bin(rsa->e, &(data[i])); + RSA_get0_key(rsa, NULL, &rsa_e, NULL); + BN_bn2bin(rsa_e, &(data[i])); i += ebytes; SHA1(data, len + 3, hash); to_hex(sig, hash, ECRYPTFS_SIG_SIZE); ================================================ FILE: package/ecryptfs-utils/0003-fix-parallel-build-issue.patch ================================================ fix parallel build issue Build randomly fails since December 2017 on buildroot (http://autobuild.buildroot.org/?reason=ecryptfs-utils-111): make[5]: Entering directory '/home/buildroot/autobuild/instance-2/output-1/build/ecryptfs-utils-111/src/utils' /bin/mkdir -p '/home/buildroot/autobuild/instance-2/output-1/target/sbin' /bin/bash ../../libtool --mode=install /usr/bin/install -c mount.ecryptfs umount.ecryptfs mount.ecryptfs_private '/home/buildroot/autobuild/instance-2/output-1/target/sbin' libtool: install: /usr/bin/install -c mount.ecryptfs /home/buildroot/autobuild/instance-2/output-1/target/sbin/mount.ecryptfs /usr/bin/install: cannot create regular file '/home/buildroot/autobuild/instance-2/output-1/target/sbin/mount.ecryptfs': File exists Makefile:832: recipe for target 'install-rootsbinPROGRAMS' failed make[5]: *** [install-rootsbinPROGRAMS] Error 1 As spotted by Thomas Petazzoni, build failure happens because of the following line in src/utils/Makefile.am: install-exec-hook: install-rootsbinPROGRAMS -rm -f "$(DESTDIR)/$(rootsbindir)/umount.ecryptfs_private" $(LN_S) "mount.ecryptfs_private" "$(DESTDIR)/$(rootsbindir)/umount.ecryptfs_private" The install-exec-hook target should not have a dependency on install-rootsbinPROGRAMS. From https://www.gnu.org/software/automake/manual/html_node/Extending.html#Extending: """ In contrast, some rules also have a way to run another rule, called a hook; hooks are always executed after the main rule’s work is done. The hook is named after the principal target, with ‘-hook’ appended. The targets allowing hooks are install-data, install-exec, uninstall, dist, and distcheck. For instance, here is how to create a hard link to an installed program: install-exec-hook: ln $(DESTDIR)$(bindir)/program$(EXEEXT) \ $(DESTDIR)$(bindir)/proglink$(EXEEXT) """ So, they explicitly say that these hooks are run after the main rule work is done, which means the dependency on install-rootsbinPROGRAMS is not needed. And the example they use to illustrate is *exactly* the situation of ecryptfs-utils: creating a link to a program that was installed. Signed-off-by: Fabrice Fontaine [Upstream status: https://bugs.launchpad.net/ecryptfs/+bug/1857622] diff -Nuar ecryptfs-utils-111-orig/src/utils/Makefile.in ecryptfs-utils-111/src/utils/Makefile.in --- ecryptfs-utils-111-orig/src/utils/Makefile.in 2019-12-26 15:14:16.656146065 +0100 +++ ecryptfs-utils-111/src/utils/Makefile.in 2019-12-26 17:36:07.108496164 +0100 @@ -1522,7 +1522,7 @@ .PRECIOUS: Makefile -install-exec-hook: install-rootsbinPROGRAMS +install-exec-hook: -rm -f "$(DESTDIR)/$(rootsbindir)/umount.ecryptfs_private" $(LN_S) "mount.ecryptfs_private" "$(DESTDIR)/$(rootsbindir)/umount.ecryptfs_private" ================================================ FILE: package/ecryptfs-utils/Config.in ================================================ config BR2_PACKAGE_ECRYPTFS_UTILS bool "ecryptfs-utils" depends on BR2_USE_WCHAR # gettext depends on BR2_USE_MMU # keyutils depends on BR2_TOOLCHAIN_HAS_THREADS # libnss -> libnspr depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT # libnss -> libnspr depends on !BR2_MIPS_NABI32 # libnss depends on !BR2_STATIC_LIBS # libnss, keyutils select BR2_PACKAGE_KEYUTILS select BR2_PACKAGE_LIBNSS # runtime dependency only, some scripts are using the # 'gettext' program to get translations select BR2_PACKAGE_GETTEXT # runtime dependency only select BR2_PACKAGE_GETENT help eCryptfs is a POSIX-compliant enterprise cryptographic filesystem for Linux. It is stacked on top of any other Linux filesystem, it stores cryptographic metadata in the header of each file written. The eCryptfs kernel module is available in all Linux kernels since version 2.6.19. This package provides userspace utilities needed to mount eCryptfs. Files are encrypted using a passphrase. Consider building openssl for another method. http://ecryptfs.org comment "ecryptfs-utils needs a toolchain w/ threads, wchar, dynamic library" depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ BR2_STATIC_LIBS ================================================ FILE: package/ecryptfs-utils/ecryptfs-utils.hash ================================================ # From https://launchpad.net/ecryptfs/trunk/111/+download/ecryptfs-utils_111.orig.tar.gz/+md5 md5 83513228984f671930752c3518cac6fd ecryptfs-utils_111.orig.tar.gz # Locally computed sha256 112cb3e37e81a1ecd8e39516725dec0ce55c5f3df6284e0f4cc0f118750a987f ecryptfs-utils_111.orig.tar.gz sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/ecryptfs-utils/ecryptfs-utils.mk ================================================ ################################################################################ # # ecryptfs-utils # ################################################################################ ECRYPTFS_UTILS_VERSION = 111 ECRYPTFS_UTILS_SOURCE = ecryptfs-utils_$(ECRYPTFS_UTILS_VERSION).orig.tar.gz ECRYPTFS_UTILS_SITE = https://launchpad.net/ecryptfs/trunk/$(ECRYPTFS_UTILS_VERSION)/+download ECRYPTFS_UTILS_LICENSE = GPL-2.0+ ECRYPTFS_UTILS_LICENSE_FILES = COPYING ECRYPTFS_UTILS_CPE_ID_VENDOR = ecryptfs ECRYPTFS_UTILS_DEPENDENCIES = keyutils libnss host-intltool ECRYPTFS_UTILS_CONF_OPTS = --disable-pywrap #Needed for build system to find pk11func.h and libnss3.so ECRYPTFS_UTILS_CONF_ENV = \ ac_cv_path_POD2MAN=true \ NSS_CFLAGS="-I$(STAGING_DIR)/usr/include/nss -I$(STAGING_DIR)/usr/include/nspr" \ NSS_LIBS="-lnss3" ifeq ($(BR2_PACKAGE_LINUX_PAM),y) ECRYPTFS_UTILS_CONF_OPTS += --enable-pam ECRYPTFS_UTILS_DEPENDENCIES += linux-pam else ECRYPTFS_UTILS_CONF_OPTS += --disable-pam endif ifeq ($(BR2_PACKAGE_OPENSSL),y) ECRYPTFS_UTILS_CONF_OPTS += --enable-openssl ECRYPTFS_UTILS_DEPENDENCIES += openssl else ECRYPTFS_UTILS_CONF_OPTS += --disable-openssl endif $(eval $(autotools-package)) ================================================ FILE: package/ed/Config.in ================================================ config BR2_PACKAGE_ED bool "ed" help A line-oriented text editor. Used to create, display, modify, and otherwise manipulate text files. Often used in scripts rather than invoked directly. http://www.gnu.org/software/ed/ ================================================ FILE: package/ed/ed.hash ================================================ # From https://lists.gnu.org/archive/html/bug-ed/2020-02/msg00002.html sha256 cfc07a14ab048a758473ce222e784fbf031485bcd54a76f74acfee1f390d8b2c ed-1.16.tar.lz # Locally calculated sha256 f03a12bef9dfb7281864a0dd965166d4f4ec7a66633df2bc72fa4363e57de02c COPYING ================================================ FILE: package/ed/ed.mk ================================================ ################################################################################ # # ed # ################################################################################ ED_VERSION = 1.16 ED_SITE = $(BR2_GNU_MIRROR)/ed ED_SOURCE = ed-$(ED_VERSION).tar.lz ED_LICENSE = GPL-3.0+ ED_LICENSE_FILES = COPYING ED_CPE_ID_VENDOR = gnu define ED_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_MAKE_ENV) ./configure \ --prefix=/usr \ $(TARGET_CONFIGURE_OPTS) \ ) endef define ED_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define ED_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" install endef $(eval $(generic-package)) ================================================ FILE: package/edid-decode/Config.in ================================================ config BR2_PACKAGE_EDID_DECODE bool "edid-decode" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 help Decode EDID data in human-readable format. https://git.linuxtv.org/edid-decode.git/ comment "edid-decode needs a toolchain w/ C++, gcc >= 4.7" depends on !!BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/edid-decode/edid-decode.hash ================================================ # Locally computed sha256 c1a6222083c59f0499b3e43c159aee7e4c6c07d33b790d490a13fd62942fa9b5 edid-decode-188950472c19492547e298b27f9da0d72cf826df-br1.tar.gz sha256 9bc7ab961e9a07dc84eaa0210af388def56d024357e79671fb89fe27d073eed7 LICENSE ================================================ FILE: package/edid-decode/edid-decode.mk ================================================ ################################################################################ # # edid-decode # ################################################################################ EDID_DECODE_VERSION = 188950472c19492547e298b27f9da0d72cf826df EDID_DECODE_SITE = git://linuxtv.org/edid-decode.git EDID_DECODE_LICENSE = MIT EDID_DECODE_LICENSE_FILES = LICENSE define EDID_DECODE_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ CFLAGS="$(TARGET_CXXFLAGS) -std=c++11" endef define EDID_DECODE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ DESTDIR="$(TARGET_DIR)" install endef $(eval $(generic-package)) ================================================ FILE: package/edk2-platforms/Config.in ================================================ config BR2_PACKAGE_EDK2_PLATFORMS bool help EDK2 description files for all supported platforms. The main EDK2 bootloader package will depend on these description files while building firmware for some platforms. https://github.com/tianocore/edk2-platforms ================================================ FILE: package/edk2-platforms/edk2-platforms.hash ================================================ # Locally calculated sha256 dfdc34fea86e5037a3a6cbd2a83b1f655f16b4c9ab4f5ff9da91e45a358c9a14 edk2-platforms-db922e1253cb6f1fc456805bc42fb7d401eed5c2.tar.gz sha256 50ce20c9cfdb0e19ee34fe0a51fc0afe961f743697b068359ab2f862b494df80 License.txt ================================================ FILE: package/edk2-platforms/edk2-platforms.mk ================================================ ################################################################################ # # edk2-platforms # ################################################################################ # Keep in sync with latest commit as of the release date for boot/edk2 EDK2_PLATFORMS_VERSION = db922e1253cb6f1fc456805bc42fb7d401eed5c2 EDK2_PLATFORMS_SITE = $(call github,tianocore,edk2-platforms,$(EDK2_PLATFORMS_VERSION)) EDK2_PLATFORMS_LICENSE = BSD-2-Clause EDK2_PLATFORMS_LICENSE_FILE = License.txt EDK2_PLATFORMS_INSTALL_TARGET = NO EDK2_PLATFORMS_INSTALL_STAGING = YES # There is nothing to build for edk2-platforms. All we need to do is to copy # all description files to staging, for other packages to build with. define EDK2_PLATFORMS_INSTALL_STAGING_CMDS mkdir -p $(STAGING_DIR)/usr/share/edk2-platforms cp -rf $(@D)/*/ $(STAGING_DIR)/usr/share/edk2-platforms/ endef $(eval $(generic-package)) ================================================ FILE: package/efibootmgr/0001-Allow-build-with-uClibc.patch ================================================ From bbfcc60497c326576bb23cb01d90115ef3cf6947 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Fri, 25 Nov 2016 20:26:52 +0200 Subject: [PATCH] Remove unneeded include This fixes the build with uClibc. Signed-off-by: Andy Shevchenko --- src/efibootdump.c | 1 - src/eficonman.c | 1 - 2 files changed, 2 deletions(-) diff --git a/src/efibootdump.c b/src/efibootdump.c index 6ff8360..7c5a1c5 100644 --- a/src/efibootdump.c +++ b/src/efibootdump.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include "error.h" diff --git a/src/eficonman.c b/src/eficonman.c index 2c2be38..9bfae79 100644 --- a/src/eficonman.c +++ b/src/eficonman.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #define _(String) gettext (String) -- 2.10.2 ================================================ FILE: package/efibootmgr/0002-remove-extra-decl.patch ================================================ From 99b578501643377e0b1994b2a068b790d189d5ad Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 13 Jun 2018 09:41:01 -0400 Subject: [PATCH] remove extra decl Downloaded from upstream commit https://github.com/rhboot/efibootmgr/commit/99b578501643377e0b1994b2a068b790d189d5ad Signed-off-by: Peter Jones Signed-off-by: Bernd Kuhls --- src/efibootmgr.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/efibootmgr.c b/src/efibootmgr.c index de38f01..4e1a680 100644 --- a/src/efibootmgr.c +++ b/src/efibootmgr.c @@ -1536,9 +1536,6 @@ parse_opts(int argc, char **argv) "invalid numeric value %s\n", optarg); } - /* XXX efivar-36 accidentally doesn't have a public - * header for this */ - extern int efi_set_verbose(int verbosity, FILE *errlog); efi_set_verbose(opts.verbose - 2, stderr); break; case 'V': ================================================ FILE: package/efibootmgr/Config.in ================================================ config BR2_PACKAGE_EFIBOOTMGR bool "efibootmgr" depends on BR2_PACKAGE_EFIVAR_ARCH_SUPPORTS # efivar depends on !BR2_STATIC_LIBS # efivar depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 # efivar depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # efivar depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS select BR2_PACKAGE_EFIVAR select BR2_PACKAGE_POPT 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/rhboot/efibootmgr comment "efibootmgr needs a toolchain w/ dynamic library, headers >= 3.12, gcc >= 4.9" depends on BR2_PACKAGE_EFIVAR_ARCH_SUPPORTS depends on BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS ================================================ FILE: package/efibootmgr/efibootmgr.hash ================================================ # locally computed hash sha256 22a95ebe0d5c9fb2915b3a100450f8f37484d1dbb8b296f55b343cc84f10397d efibootmgr-17.tar.gz sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING ================================================ FILE: package/efibootmgr/efibootmgr.mk ================================================ ################################################################################ # # efibootmgr # ################################################################################ EFIBOOTMGR_VERSION = 17 EFIBOOTMGR_SITE = $(call github,rhboot,efibootmgr,$(EFIBOOTMGR_VERSION)) EFIBOOTMGR_LICENSE = GPL-2.0+ EFIBOOTMGR_LICENSE_FILES = COPYING EFIBOOTMGR_DEPENDENCIES = host-pkgconf efivar popt $(TARGET_NLS_DEPENDENCIES) EFIBOOTMGR_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) EFIBOOTMGR_MAKE_ARGS = EFIDIR=buildroot define EFIBOOTMGR_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \ LDFLAGS="$(EFIBOOTMGR_LDFLAGS)" $(MAKE1) -C $(@D) \ $(EFIBOOTMGR_MAKE_ARGS) endef define EFIBOOTMGR_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(EFIBOOTMGR_MAKE_ARGS) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/efivar/0001-Allow-build-with-uClibc.patch ================================================ From f1f24eb486c4376066884bae3c31f1c455a79836 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Fri, 25 Nov 2016 19:42:27 +0200 Subject: [PATCH] Allow build with uClibc Basically this replaces type definitions in . Signed-off-by: Andy Shevchenko --- src/export.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/export.c b/src/export.c index 8321bd3..ef36add 100644 --- a/src/export.c +++ b/src/export.c @@ -23,10 +23,16 @@ #include #include #include -#include #include "efivar.h" +#ifdef __UCLIBC__ +typedef int_least16_t char16_t; +typedef int_least32_t char32_t; +#else +#include +#endif + #define EFIVAR_MAGIC 0xf3df1597 #define ATTRS_UNSET 0xa5a5a5a5a5a5a5a5 -- 2.20.1 ================================================ FILE: package/efivar/0002-dp.h-make-format_guid-handle-misaligned-guid-pointer.patch ================================================ From b98ba8921010d03f46704a476c69861515deb1ca Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Jan 2019 10:30:59 -0500 Subject: [PATCH] dp.h: make format_guid() handle misaligned guid pointers safely. GCC 9 adds -Werror=address-of-packed-member, which causes us to see the build error reported at https://bugzilla.opensuse.org/show_bug.cgi?id=1120862 . That bug report shows us the following: In file included from dp.c:26: dp.h: In function 'format_vendor_helper': dp.h:120:37: error: taking address of packed member of 'struct ' may result in an unaligned pointer value [-Werror=address-of-packed-member] 120 | format_guid(buf, size, off, label, &dp->hw_vendor.vendor_guid); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ dp.h:74:25: note: in definition of macro 'format_guid' 74 | _rc = efi_guid_to_str(guid, &_guidstr); \ | ^~~~ cc1: all warnings being treated as errors This patch makes format_guid() use a local variable as a bounce buffer in the case that the guid we're passed is aligned as chaotic neutral. Note that this only fixes this instance and there may be others that bz didn't show because it exited too soon, and I don't have a gcc 9 build in front of me right now. Signed-off-by: Peter Jones [james.hilliard1@gmail.com: backport from upstream commit b98ba8921010d03f46704a476c69861515deb1ca] Signed-off-by: James Hilliard --- src/dp.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/dp.h b/src/dp.h index aa4e390..20cb608 100644 --- a/src/dp.h +++ b/src/dp.h @@ -70,8 +70,15 @@ #define format_guid(buf, size, off, dp_type, guid) ({ \ int _rc; \ char *_guidstr = NULL; \ - \ - _rc = efi_guid_to_str(guid, &_guidstr); \ + efi_guid_t _guid; \ + const efi_guid_t * const _guid_p = \ + likely(__alignof__(guid) == sizeof(guid)) \ + ? guid \ + : &_guid; \ + \ + if (unlikely(__alignof__(guid) == sizeof(guid))) \ + memmove(&_guid, guid, sizeof(_guid)); \ + _rc = efi_guid_to_str(_guid_p, &_guidstr); \ if (_rc < 0) { \ efi_error("could not build %s GUID DP string", \ dp_type); \ -- 2.20.1 ================================================ FILE: package/efivar/0003-Fix-all-the-places-Werror-address-of-packed-member-c.patch ================================================ From c3c553db85ff10890209d0fe48fb4856ad68e4e0 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 21 Feb 2019 15:20:12 -0500 Subject: [PATCH] Fix all the places -Werror=address-of-packed-member catches. This gets rid of all the places GCC 9's -Werror=address-of-packed-member flags as problematic. Fixes github issue #123 Signed-off-by: Peter Jones [james.hilliard1@gmail.com: backport from upstream commit c3c553db85ff10890209d0fe48fb4856ad68e4e0] Signed-off-by: James Hilliard --- src/dp-message.c | 6 ++++-- src/dp.h | 12 ++++-------- src/guid.c | 2 +- src/include/efivar/efivar.h | 2 +- src/ucs2.h | 27 +++++++++++++++++++-------- 5 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/dp-message.c b/src/dp-message.c index 3724e5f..9f96466 100644 --- a/src/dp-message.c +++ b/src/dp-message.c @@ -620,11 +620,13 @@ _format_message_dn(char *buf, size_t size, const_efidp dp) ) / sizeof(efi_ip_addr_t); format(buf, size, off, "Dns", "Dns("); for (int i=0; i < end; i++) { - const efi_ip_addr_t *addr = &dp->dns.addrs[i]; + efi_ip_addr_t addr; + + memcpy(&addr, &dp->dns.addrs[i], sizeof(addr)); if (i != 0) format(buf, size, off, "Dns", ","); format_ip_addr(buf, size, off, "Dns", - dp->dns.is_ipv6, addr); + dp->dns.is_ipv6, &addr); } format(buf, size, off, "Dns", ")"); break; diff --git a/src/dp.h b/src/dp.h index 20cb608..1f921d5 100644 --- a/src/dp.h +++ b/src/dp.h @@ -71,13 +71,9 @@ int _rc; \ char *_guidstr = NULL; \ efi_guid_t _guid; \ - const efi_guid_t * const _guid_p = \ - likely(__alignof__(guid) == sizeof(guid)) \ - ? guid \ - : &_guid; \ - \ - if (unlikely(__alignof__(guid) == sizeof(guid))) \ - memmove(&_guid, guid, sizeof(_guid)); \ + const efi_guid_t * const _guid_p = &_guid; \ + \ + memmove(&_guid, guid, sizeof(_guid)); \ _rc = efi_guid_to_str(_guid_p, &_guidstr); \ if (_rc < 0) { \ efi_error("could not build %s GUID DP string", \ @@ -86,7 +82,7 @@ _guidstr = onstack(_guidstr, \ strlen(_guidstr)+1); \ _rc = format(buf, size, off, dp_type, "%s", \ - _guidstr); \ + _guidstr); \ } \ _rc; \ }) diff --git a/src/guid.c b/src/guid.c index 306c9ff..3156b3b 100644 --- a/src/guid.c +++ b/src/guid.c @@ -31,7 +31,7 @@ extern const efi_guid_t efi_guid_zero; int NONNULL(1, 2) PUBLIC -efi_guid_cmp(const efi_guid_t *a, const efi_guid_t *b) +efi_guid_cmp(const void * const a, const void * const b) { return memcmp(a, b, sizeof (efi_guid_t)); } diff --git a/src/include/efivar/efivar.h b/src/include/efivar/efivar.h index 316891c..ad6449d 100644 --- a/src/include/efivar/efivar.h +++ b/src/include/efivar/efivar.h @@ -128,7 +128,7 @@ extern int efi_symbol_to_guid(const char *symbol, efi_guid_t *guid) extern int efi_guid_is_zero(const efi_guid_t *guid); extern int efi_guid_is_empty(const efi_guid_t *guid); -extern int efi_guid_cmp(const efi_guid_t *a, const efi_guid_t *b); +extern int efi_guid_cmp(const void * const a, const void * const b); /* import / export functions */ typedef struct efi_variable efi_variable_t; diff --git a/src/ucs2.h b/src/ucs2.h index dbb5900..edd8367 100644 --- a/src/ucs2.h +++ b/src/ucs2.h @@ -23,16 +23,21 @@ (((val) & ((mask) << (shift))) >> (shift)) static inline size_t UNUSED -ucs2len(const uint16_t * const s, ssize_t limit) +ucs2len(const void *vs, ssize_t limit) { ssize_t i; - for (i = 0; i < (limit >= 0 ? limit : i+1) && s[i] != (uint16_t)0; i++) + const uint16_t *s = vs; + const uint8_t *s8 = vs; + + for (i = 0; + i < (limit >= 0 ? limit : i+1) && s8[0] != 0 && s8[1] != 0; + i++, s8 += 2, s++) ; return i; } static inline size_t UNUSED -ucs2size(const uint16_t * const s, ssize_t limit) +ucs2size(const void *s, ssize_t limit) { size_t rc = ucs2len(s, limit); rc *= sizeof (uint16_t); @@ -69,10 +74,11 @@ utf8size(uint8_t *s, ssize_t limit) } static inline unsigned char * UNUSED -ucs2_to_utf8(const uint16_t * const chars, ssize_t limit) +ucs2_to_utf8(const void * const voidchars, ssize_t limit) { ssize_t i, j; unsigned char *ret; + const uint16_t * const chars = voidchars; if (limit < 0) limit = ucs2len(chars, -1); @@ -124,10 +130,12 @@ ucs2_to_utf8(const uint16_t * const chars, ssize_t limit) } static inline ssize_t UNUSED NONNULL(4) -utf8_to_ucs2(uint16_t *ucs2, ssize_t size, int terminate, uint8_t *utf8) +utf8_to_ucs2(void *ucs2void, ssize_t size, int terminate, uint8_t *utf8) { ssize_t req; ssize_t i, j; + uint16_t *ucs2 = ucs2void; + uint16_t val16; if (!ucs2 && size > 0) { errno = EINVAL; @@ -162,10 +170,13 @@ utf8_to_ucs2(uint16_t *ucs2, ssize_t size, int terminate, uint8_t *utf8) val = utf8[i] & 0x7f; i += 1; } - ucs2[j] = val; + val16 = val; + ucs2[j] = val16; + } + if (terminate) { + val16 = 0; + ucs2[j++] = val16; } - if (terminate) - ucs2[j++] = (uint16_t)0; return j; }; -- 2.20.1 ================================================ FILE: package/efivar/0004-Fix-another-error-of-Werror-address-of-packed-member.patch ================================================ From 0dad6d78a7fb5f6c5fb4a1d646040539db6cf865 Mon Sep 17 00:00:00 2001 From: Chih-Wei Huang Date: Tue, 26 Feb 2019 18:42:20 +0800 Subject: [PATCH] Fix another error of -Werror=address-of-packed-member Android 9 clang complains: external/efivar/src/dp-message.c:367:24: error: taking address of packed member '' of class or structure 'efidp_infiniband' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member] (efi_guid_t *)&dp->infiniband.ioc_guid); ^~~~~~~~~~~~~~~~~~~~~~~ external/efivar/src/dp.h:76:19: note: expanded from macro 'format_guid' memmove(&_guid, guid, sizeof(_guid)); \ ^~~~ 1 error generated. Since commit c3c553d the fifth parameter of format_guid() is treated as a const void *. The casting is unnecessary. Signed-off-by: Chih-Wei Huang [james.hilliard1@gmail.com: backport from upstream commit 0dad6d78a7fb5f6c5fb4a1d646040539db6cf865] Signed-off-by: James Hilliard --- src/dp-media.c | 3 +-- src/dp-message.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/dp-media.c b/src/dp-media.c index 96a576f..be691c4 100644 --- a/src/dp-media.c +++ b/src/dp-media.c @@ -46,8 +46,7 @@ _format_media_dn(char *buf, size_t size, const_efidp dp) break; case EFIDP_HD_SIGNATURE_GUID: format(buf, size, off, "HD", "GPT,"); - format_guid(buf, size, off, "HD", - (efi_guid_t *)dp->hd.signature); + format_guid(buf, size, off, "HD", dp->hd.signature); format(buf, size, off, "HD", ",0x%"PRIx64",0x%"PRIx64")", dp->hd.start, dp->hd.size); diff --git a/src/dp-message.c b/src/dp-message.c index 9f96466..6b8e907 100644 --- a/src/dp-message.c +++ b/src/dp-message.c @@ -364,7 +364,7 @@ _format_message_dn(char *buf, size_t size, const_efidp dp) dp->infiniband.port_gid[1], dp->infiniband.port_gid[0]); format_guid(buf, size, off, "Infiniband", - (efi_guid_t *)&dp->infiniband.ioc_guid); + &dp->infiniband.ioc_guid); format(buf, size, off, "Infiniband", ",%"PRIu64",%"PRIu64")", dp->infiniband.target_port_id, -- 2.20.1 ================================================ FILE: package/efivar/0005-ucs2.h-remove-unused-variable.patch ================================================ From fdb803402fb32fa6d020bac57a40c7efe4aabb7d Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 5 Mar 2019 17:23:24 +0100 Subject: [PATCH] ucs2.h: remove unused variable The const uint16_t pointer is not used since now the two bytes of the UCS-2 chars are checked to know if is the termination of the string. Signed-off-by: Javier Martinez Canillas Signed-off-by: Peter Korsgaard --- src/ucs2.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/ucs2.h b/src/ucs2.h index edd8367..e0390c3 100644 --- a/src/ucs2.h +++ b/src/ucs2.h @@ -26,12 +26,11 @@ static inline size_t UNUSED ucs2len(const void *vs, ssize_t limit) { ssize_t i; - const uint16_t *s = vs; const uint8_t *s8 = vs; for (i = 0; i < (limit >= 0 ? limit : i+1) && s8[0] != 0 && s8[1] != 0; - i++, s8 += 2, s++) + i++, s8 += 2) ; return i; } -- 2.20.1 ================================================ FILE: package/efivar/0006-ucs2.h-fix-logic-that-checks-for-UCS-2-string-termin.patch ================================================ From 4e04afc2df9bbc26e5ab524b53a6f4f1e61d7c9e Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 5 Mar 2019 17:23:32 +0100 Subject: [PATCH] ucs2.h: fix logic that checks for UCS-2 string termination Currently the loop to count the lenght of the UCS-2 string ends if either of the two bytes are 0, but 0 is a valid value for UCS-2 character codes. So only break the loop when 0 is the value for both UCS-2 char bytes. Signed-off-by: Javier Martinez Canillas Signed-off-by: Peter Korsgaard --- src/ucs2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ucs2.h b/src/ucs2.h index e0390c3..fd8b056 100644 --- a/src/ucs2.h +++ b/src/ucs2.h @@ -29,7 +29,7 @@ ucs2len(const void *vs, ssize_t limit) const uint8_t *s8 = vs; for (i = 0; - i < (limit >= 0 ? limit : i+1) && s8[0] != 0 && s8[1] != 0; + i < (limit >= 0 ? limit : i+1) && !(s8[0] == 0 && s8[1] == 0); i++, s8 += 2) ; return i; -- 2.20.1 ================================================ FILE: package/efivar/0007-gcc.specs-drop-Werror.patch ================================================ From 8d5cf3347cce9d644f670ffd1d48e71d74635481 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 22 Mar 2021 07:52:34 +0100 Subject: [PATCH] gcc.specs: drop -Werror Build with -Werror raises the following build failure with gcc 10: /home/buildroot/autobuild/run/instance-1/output-1/host/bin/aarch64-none-linux-gnu-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -I/home/buildroot/autobuild/run/instance-1/output-1/build/efivar-37/src/include/ -specs=/home/buildroot/autobuild/run/instance-1/output-1/build/efivar-37/gcc.specs -L. -fPIC -Wl,-z,muldefs -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o efivar efivar.c -lefivar -ldl In file included from efivar.h:28, from efivar.c:40: In function 'text_to_guid', inlined from 'parse_name.constprop' at efivar.c:157:8: guid.h:106:2: error: 'strncpy' output may be truncated copying 8 bytes from a string of length 38 [-Werror=stringop-truncation] 106 | strncpy(eightbytes, text, 8); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors Fixes: - http://autobuild.buildroot.org/results/fcba72d359f4128515560e9105384cd4deff5043 Signed-off-by: Fabrice Fontaine [Upstream status: not upstreamable as Makefiles were reworked and a new ERRORS parameter was added: https://github.com/rhboot/efivar/commit/998f617cec92d526e1fadb745673ceef63fa1483] --- gcc.specs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc.specs b/gcc.specs index 45d43d1..1baf11a 100644 --- a/gcc.specs +++ b/gcc.specs @@ -2,7 +2,7 @@ + -D_GNU_SOURCE *efivar_cpp_options: - -Werror -Wall -std=gnu11 -Wextra + -Wall -std=gnu11 -Wextra *cpp_options: + %(efivar_cpp_options) -- 2.30.1 ================================================ FILE: package/efivar/Config.in ================================================ config BR2_PACKAGE_EFIVAR_ARCH_SUPPORTS bool default y depends on BR2_arm || BR2_aarch64 || BR2_i386 || BR2_x86_64 \ || BR2_powerpc64le || BR2_mipsel || BR2_mips64el config BR2_PACKAGE_EFIVAR bool "efivar" depends on BR2_PACKAGE_EFIVAR_ARCH_SUPPORTS depends on !BR2_STATIC_LIBS # dlfcn.h 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 the efivar source handles 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 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 help Tools and libraries to manipulate EFI variables https://github.com/rhboot/efivar comment "efivar needs a toolchain w/ dynamic library, headers >= 3.12, gcc >= 4.9" depends on BR2_PACKAGE_EFIVAR_ARCH_SUPPORTS depends on BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS ================================================ FILE: package/efivar/efivar.hash ================================================ # locally computed hash sha256 74c52b4f479120fb6639e753e71163ba3f557a7a67c0be225593f9f05b253f36 efivar-37.tar.gz sha256 91df770634adc2755e78cae33a0d01e702ce2f69046408ae93d0d934ff29691b COPYING ================================================ FILE: package/efivar/efivar.mk ================================================ ################################################################################ # # efivar # ################################################################################ EFIVAR_VERSION = 37 EFIVAR_SITE = $(call github,rhboot,efivar,$(EFIVAR_VERSION)) EFIVAR_LICENSE = LGPL-2.1 EFIVAR_LICENSE_FILES = COPYING EFIVAR_INSTALL_STAGING = YES # -fPIC is needed at least on MIPS, otherwise fails to build shared # -library. EFIVAR_MAKE_OPTS = \ libdir=/usr/lib \ LDFLAGS="$(TARGET_LDFLAGS) -fPIC" 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)) ================================================ FILE: package/efl/0001-ecore_evas-engines-drm-meson.build-use-gl_deps-as-en.patch ================================================ From 51dfe1863ddc8c5dd576405a9bbb8bca875c1142 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sat, 1 Aug 2020 02:25:47 +0200 Subject: [PATCH] ecore_evas/engines/drm/meson.build: use "gl_deps" as engine dependencies Meson trigger an error since "engine_gl_drm" variable doesn't exist. src/modules/ecore_evas/engines/drm/meson.build:10:2: ERROR: Unknown variable "engine_gl_drm". Instead use "gl_deps" as engine dependencies. Upstream status: https://sourceforge.net/p/enlightenment/mailman/message/37075016/ Signed-off-by: Romain Naour --- src/modules/ecore_evas/engines/drm/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/ecore_evas/engines/drm/meson.build b/src/modules/ecore_evas/engines/drm/meson.build index 58071010d0..0741d7fccd 100644 --- a/src/modules/ecore_evas/engines/drm/meson.build +++ b/src/modules/ecore_evas/engines/drm/meson.build @@ -3,7 +3,7 @@ engine_deps = [ecore_drm2, ecore_input, eeze, elput, libdrm, engine_drm] if get_option('opengl') != 'none' config_h.set('BUILD_ECORE_EVAS_GL_DRM', '1') - engine_deps += [engine_gl_drm] + engine_deps += [gl_deps] endif engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'drm')) -- 2.25.4 ================================================ FILE: package/efl/0002-ecore_evas-engines-drm-meson.build-fix-gl_drm-includ.patch ================================================ From 8548b02c487ba7e9d78489c6db58812ee5cfb197 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sat, 1 Aug 2020 01:01:00 +0200 Subject: [PATCH] ecore_evas/engines/drm/meson.build: fix "gl_drm" include directory The Evas_Engine_GL_Drm.h file is in "gl_drm" directory, not "drm". ../src/modules/ecore_evas/engines/drm/ecore_evas_drm.c:23:11: fatal error: Evas_Engine_GL_Drm.h: No such file or directory 23 | # include | ^~~~~~~~~~~~~~~~~~~~~~ compilation terminated. Upstream status: https://sourceforge.net/p/enlightenment/mailman/message/37075004/ Signed-off-by: Romain Naour --- src/modules/ecore_evas/engines/drm/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/ecore_evas/engines/drm/meson.build b/src/modules/ecore_evas/engines/drm/meson.build index 0741d7fccd..edda1abd71 100644 --- a/src/modules/ecore_evas/engines/drm/meson.build +++ b/src/modules/ecore_evas/engines/drm/meson.build @@ -6,7 +6,7 @@ if get_option('opengl') != 'none' engine_deps += [gl_deps] endif -engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'drm')) +engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'gl_drm')) shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir], -- 2.25.4 ================================================ FILE: package/efl/0003-ecore_fb-fix-build-with-tslib.patch ================================================ From 9a785396a7940ec541cf4793f9c9f92548c99d4c Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 10 Jul 2021 22:38:03 +0200 Subject: [PATCH] ecore_fb: fix build with tslib Build with tslib is broken since version 1.25.0 and https://git.enlightenment.org/core/efl.git/commit/?id=8e3606698eb439eecd7302a885504365aca7e564: /data/buildroot-autobuilder/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/powerpc-buildroot-linux-uclibc/9.3.0/../../../../powerpc-buildroot-linux-uclibc/bin/ld: src/lib/ecore_fb/libecore_fb.so.1.25.1.p/ecore_fb_ts.c.o: in function `_ecore_fb_ts_fd_handler': ecore_fb_ts.c:(.text+0x4c): undefined reference to `ts_read_raw' Fixes: - http://autobuild.buildroot.org/results/fa111306b95316eed54771550474dae804fa261e Signed-off-by: Fabrice Fontaine --- src/lib/ecore_fb/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ecore_fb/meson.build b/src/lib/ecore_fb/meson.build index 6d50e0f146..7c7f6786c3 100644 --- a/src/lib/ecore_fb/meson.build +++ b/src/lib/ecore_fb/meson.build @@ -22,7 +22,7 @@ ecore_fb_src = files([ ecore_fb_lib = library('ecore_fb', ecore_fb_src, pub_eo_file_target, c_args : package_c_args, - dependencies: ecore_fb_pub_deps + ecore_fb_deps, + dependencies: ecore_fb_pub_deps + ecore_fb_deps + ecore_fb_ext_deps, include_directories : config_dir, install: true, version : meson.project_version() -- 2.30.2 ================================================ FILE: package/efl/Config.in ================================================ config BR2_PACKAGE_EFL bool "efl" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-efl depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # untested without threads depends on BR2_USE_MMU depends on BR2_USE_WCHAR # use wchar_t depends on !BR2_STATIC_LIBS # dlfcn.h # https://phab.enlightenment.org/T2728 depends on BR2_PACKAGE_LUAJIT select BR2_PACKAGE_DBUS select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_GIFLIB select BR2_PACKAGE_JPEG # Emile needs libjpeg select BR2_PACKAGE_LIBCURL # Ecore_con_url, runtime dependency select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_OPENSSL if !(BR2_PACKAGE_GNUTLS && BR2_PACKAGE_LIBGCRYPT) select BR2_PACKAGE_LZ4 select BR2_PACKAGE_ZLIB help Enlightenment Foundation Libraries https://enlightenment.org if BR2_PACKAGE_EFL config BR2_PACKAGE_EFL_BULLET bool "Enable bullet support" select BR2_PACKAGE_BULLET help If you have chosen to disable physics support, this disables lots of core functionality and is effectively never tested. You are going to find features that suddenly don't work and as a result cause a series of breakages. This is simply not tested so you are on your own in terms of ensuring everything works if you do this. config BR2_PACKAGE_EFL_EEZE bool "Enable eeze (udev) support (recommended)" default y depends on BR2_PACKAGE_HAS_UDEV # libudev help Eeze is EFL's hardware abstraction layer on top of udev. Having it off will disable some hardware detection, such as 'drm' graphics engine or 'elput', as well as mounting removable media. comment "eeze needs udev /dev management" depends on !BR2_PACKAGE_HAS_UDEV config BR2_PACKAGE_EFL_FONTCONFIG bool "Enable fontconfig support (recommended)" default y select BR2_PACKAGE_FONTCONFIG help If fontconfig is disabled, this is going to make general font searching not work, and only some very direct 'load /path/file.ttf' will work alongside some old-school ttf file path searching. This is very likely not what you want, so highly reconsider turning fontconfig off. Having it off will lead to visual problems like missing text in many UI areas etc... config BR2_PACKAGE_EFL_GSTREAMER1 bool "Enable gstreamer1 support (recommended)" default y select BR2_PACKAGE_GSTREAMER1 select BR2_PACKAGE_GST1_PLUGINS_BASE help If Gstreamer 1.x support is disabled, it will heavily limit your media support options and render some functionality as useless, leading to visible application bugs. config BR2_PACKAGE_EFL_LIBFRIBIDI bool "Enable libfribidi support (recommended)" default y select BR2_PACKAGE_LIBFRIBIDI help Fribidi is used for handling right-to-left text (like Arabic, Hebrew, Farsi, Persian etc.) and is very likely not a feature you want to disable unless you know for absolute certain you will never encounter and have to display such scripts. Also note that we don't test with fribidi disabled so you may also trigger code paths with bugs that are never normally used. config BR2_PACKAGE_EFL_LIBSNDFILE bool "Enable libsndfile support (recommended)" default y select BR2_PACKAGE_LIBSNDFILE help If you disabled audio support in Ecore, this is not tested and may create bugs for you due to it creating untested code paths. Reconsider disabling audio. config BR2_PACKAGE_EFL_PULSEAUDIO bool "Enable pulseaudio support (recommended)" default y depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU select BR2_PACKAGE_PULSEAUDIO help The only audio output method supported by Ecore right now is via Pulseaudio. You have disabled that and likely have broken a whole bunch of things in the process. Reconsider your configure options. NOTE: multisense support is automatically enabled with pulseaudio. config BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT bool "Enable libmount support (recommended)" default y depends on BR2_PACKAGE_EFL_EEZE select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT # libblkid is part of required tools, see EFL's README. select BR2_PACKAGE_UTIL_LINUX_LIBBLKID help Libmount is used heavily inside Eeze for support of removable devices etc... and disabling this will hurt support for Enlightenment and its filemanager. comment "efl's libmount support needs udev /dev management (eeze)" depends on !BR2_PACKAGE_EFL_EEZE config BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG bool default y if BR2_PACKAGE_EFL_EEZE && \ BR2_PACKAGE_EFL_FONTCONFIG && \ BR2_PACKAGE_EFL_GSTREAMER1 && \ BR2_PACKAGE_EFL_LIBFRIBIDI && \ BR2_PACKAGE_EFL_LIBSNDFILE && \ BR2_PACKAGE_EFL_PULSEAUDIO && \ BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT 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" 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 "libecore video support" config BR2_PACKAGE_EFL_FB bool "FB support" config BR2_PACKAGE_EFL_X_XLIB bool "X11 support (xlib)" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXCOMPOSITE select BR2_PACKAGE_XLIB_LIBXCURSOR select BR2_PACKAGE_XLIB_LIBXDAMAGE select BR2_PACKAGE_XLIB_LIBXINERAMA select BR2_PACKAGE_XLIB_LIBXRANDR select BR2_PACKAGE_XLIB_LIBXRENDER select BR2_PACKAGE_XLIB_LIBXSCRNSAVER select BR2_PACKAGE_XLIB_LIBXTST select BR2_PACKAGE_XORGPROTO config BR2_PACKAGE_EFL_WAYLAND bool "Wayland support" depends on BR2_PACKAGE_WAYLAND depends on BR2_TOOLCHAIN_HAS_THREADS # Evas DRM Engine -> libdrm depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # Evas DRM Engine depends on BR2_PACKAGE_EFL_EEZE # efl drm depends on BR2_PACKAGE_EFL_OPENGLES # OpenGL ES with EGL support only depends on BR2_ENABLE_LOCALE # efl-drm <- efl-elput <- linput select BR2_PACKAGE_EFL_DRM select BR2_PACKAGE_WAYLAND_PROTOCOLS comment "Wayland support needs udev /dev management (eeze), OpenGL ES w/ EGL, threads, locales" depends on BR2_PACKAGE_WAYLAND depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL \ || !BR2_PACKAGE_EFL_OPENGLES || !BR2_PACKAGE_EFL_EEZE \ || !BR2_ENABLE_LOCALE choice bool "OpenGL support" help libevas can be configured to use HW acceleration with OpenGL or OpenGL ES. config BR2_PACKAGE_EFL_OPENGL bool "OpenGL" depends on BR2_PACKAGE_HAS_LIBGL depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_EFL_X_XLIB comment "OpenGL support needs X11 and an OpenGL provider" depends on !BR2_PACKAGE_HAS_LIBGL || !BR2_PACKAGE_XORG7 config BR2_PACKAGE_EFL_OPENGLES bool "OpenGL ES (w/ EGL)" depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBGLES comment "OpenGL ES support needs an OpenGL ES w/ EGL provider" depends on !BR2_PACKAGE_HAS_LIBGLES || !BR2_PACKAGE_HAS_LIBEGL config BR2_PACKAGE_EFL_OPENGL_NONE bool "none" endchoice # OpenGL support config BR2_PACKAGE_EFL_DRM bool "Evas DRM Engine" depends on BR2_PACKAGE_EFL_EEZE depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # require libgbm from mesa3d select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBINPUT # For elput select BR2_PACKAGE_LIBXKBCOMMON help This option enable building support for the Evas DRM Engine. Since efl 1.23.x, the drm option enable the elput library which is an efl abstraction for the libinput library which can be used by various other subsystems (ecore_fb, ecore_drm, etc) to handle interfacing with libinput without having to duplicate the code in each subsystem. comment "Evas DRM Engine needs udev /dev management (eeze), mesa3d w/ EGL support, threads" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_MESA3D_OPENGL_EGL \ || !BR2_PACKAGE_EFL_EEZE comment "libevas loaders" config BR2_PACKAGE_EFL_JPEG bool "libevas jpeg loader" select BR2_PACKAGE_OPENJPEG help This enables the loader code that loads jpeg files using libjpeg. config BR2_PACKAGE_EFL_TIFF bool "libevas tiff loader" select BR2_PACKAGE_TIFF help This enables the loader code that loads tiff files. config BR2_PACKAGE_EFL_WEBP bool "libevas webp image loader" select BR2_PACKAGE_WEBP select BR2_PACKAGE_WEBP_DEMUX help This enables the loader code that loads images using WebP. config BR2_PACKAGE_EFL_LIBRAW bool "libraw loader" depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libraw select BR2_PACKAGE_LIBRAW help This option enables the Evas generic Libraw loader config BR2_PACKAGE_EFL_SVG bool "SVG loader" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # librsvg depends on BR2_TOOLCHAIN_HAS_SYNC_4 # librsvg -> pango -> harfbuzz select BR2_PACKAGE_LIBRSVG select BR2_PACKAGE_CAIRO help This option enables the Evas generic SVG loader endif # BR2_PACKAGE_EFL comment "efl needs a toolchain w/ C++, dynamic library, gcc >= 4.9, host gcc >= 4.9, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \ || !BR2_HOST_GCC_AT_LEAST_4_9 || BR2_STATIC_LIBS \ || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR depends on BR2_USE_MMU ================================================ FILE: package/efl/efl.hash ================================================ # From https://download.enlightenment.org/rel/libs/efl/efl-1.25.1.tar.xz.sha256sum sha256 351ca0211ca000234527a503585f039f985607ec9439e34b49d8b8bbf35a7e6b efl-1.25.1.tar.xz sha256 d666b6b2df9f5b791f85c299c65516cb55528b02a807603de246f65f4918ae22 COMPLIANCE sha256 5bceb52d65debe420bc520f2992807740dc928b7fdc3c2e9a74b5889177ddf4c COPYING sha256 e5133b4034a4749a781e2220ffb230b60a282b88861f1124d69a58abd5143994 COPYING.images sha256 c95bae1d1ce0235ecccd3560b772ec1efb97f348a79f0fbe0a634f0c2ccefe2c licenses/COPYING.ASL sha256 af4ffe7ed1795a6e9cd3b3ce8747fdc45da449ff58cf35b8027c0699a66fd5cf licenses/COPYING.BSD sha256 e60d07dfb2c5264f9f405fa52bf0d4f85429dd9ae1bc2ffcff8af1924ef720d1 licenses/COPYING.FTL sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 licenses/COPYING.GPL sha256 ae2d99bf2a8e8310281bdbe5e8b78cbe5e89bfead8c01e67a8c68b530efcf25a licenses/COPYING.LGPL sha256 2996a1c43ee757f9c997a829d82bdd584052323e73cf02ff8126c6fbd95c2d87 licenses/COPYING.NGINX-MIT sha256 d847c749aa38b8d864665fc4e5c80e2f2a505e414fafe9712e85b5154e908218 licenses/COPYING.SMALL ================================================ FILE: package/efl/efl.mk ================================================ ################################################################################ # # efl # ################################################################################ EFL_VERSION = 1.25.1 EFL_SOURCE = efl-$(EFL_VERSION).tar.xz EFL_SITE = http://download.enlightenment.org/rel/libs/efl EFL_LICENSE = BSD-2-Clause, LGPL-2.1+, GPL-2.0+, FTL, MIT EFL_LICENSE_FILES = \ COMPLIANCE \ COPYING \ COPYING.images \ licenses/COPYING.ASL \ licenses/COPYING.BSD \ licenses/COPYING.FTL \ licenses/COPYING.GPL \ licenses/COPYING.LGPL \ licenses/COPYING.NGINX-MIT \ licenses/COPYING.SMALL EFL_INSTALL_STAGING = YES EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \ giflib jpeg libpng luajit lz4 zlib $(TARGET_NLS_DEPENDENCIES) # Configure options: # elua=true: build elua for the target. # sdl=false: disable sdl2 support. # embedded-lz4=false: use liblz4 from lz4 package. # native-arch-optimization=false: avoid optimization flags added by meson. # network-backend=none: disable connman networkmanager. EFL_CONF_OPTS = \ -Davahi=false \ -Dbuild-examples=false \ -Dbuild-tests=false \ -Ddotnet=false \ -Decore-imf-loaders-disabler=ibus,scim,xim \ -Delua=true \ -Dembedded-lz4=false \ -Dlua-interpreter=luajit \ -Dnative-arch-optimization=false \ -Dnetwork-backend=none \ -Dpixman=false \ -Dsdl=false \ -Dvnc-server=false ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) EFL_CONF_OPTS += -Dnls=true else EFL_CONF_OPTS += -Dnls=false endif EFL_BINDINGS = lua ifeq ($(BR2_PACKAGE_EFL_EOLIAN_CPP),y) EFL_BINDINGS += cxx endif EFL_CONF_OPTS += -Dbindings=$(subst $(space),$(comma),$(EFL_BINDINGS)) ifeq ($(BR2_PACKAGE_EFL_EEZE),y) EFL_DEPENDENCIES += udev EFL_CONF_OPTS += -Deeze=true else EFL_CONF_OPTS += -Deeze=false endif ifeq ($(BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT),y) EFL_DEPENDENCIES += util-linux EFL_CONF_OPTS += -Dlibmount=true else EFL_CONF_OPTS += -Dlibmount=false endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) EFL_CONF_OPTS += -Dsystemd=true EFL_DEPENDENCIES += systemd else EFL_CONF_OPTS += -Dsystemd=false endif ifeq ($(BR2_PACKAGE_FONTCONFIG),y) EFL_CONF_OPTS += -Dfontconfig=true EFL_DEPENDENCIES += fontconfig else EFL_CONF_OPTS += -Dfontconfig=false endif ifeq ($(BR2_PACKAGE_LIBFRIBIDI),y) EFL_CONF_OPTS += -Dfribidi=true EFL_DEPENDENCIES += libfribidi else EFL_CONF_OPTS += -Dfribidi=false endif ifeq ($(BR2_PACKAGE_GSTREAMER1)$(BR2_PACKAGE_GST1_PLUGINS_BASE),yy) EFL_CONF_OPTS += -Dgstreamer=true EFL_DEPENDENCIES += gstreamer1 gst1-plugins-base else EFL_CONF_OPTS += -Dgstreamer=false endif ifeq ($(BR2_PACKAGE_BULLET),y) EFL_CONF_OPTS += -Dphysics=true EFL_DEPENDENCIES += bullet else EFL_CONF_OPTS += -Dphysics=false endif ifeq ($(BR2_PACKAGE_LIBSNDFILE),y) EFL_CONF_OPTS += -Daudio=true EFL_DEPENDENCIES += libsndfile else EFL_CONF_OPTS += -Daudio=false endif ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) EFL_CONF_OPTS += -Dpulseaudio=true EFL_DEPENDENCIES += pulseaudio else EFL_CONF_OPTS += -Dpulseaudio=false endif ifeq ($(BR2_PACKAGE_HARFBUZZ),y) EFL_DEPENDENCIES += harfbuzz EFL_CONF_OPTS += -Dharfbuzz=true else EFL_CONF_OPTS += -Dharfbuzz=false endif ifeq ($(BR2_PACKAGE_TSLIB),y) EFL_DEPENDENCIES += tslib EFL_CONF_OPTS += -Dtslib=true else EFL_CONF_OPTS += -Dtslib=false endif ifeq ($(BR2_PACKAGE_LIBGLIB2),y) EFL_DEPENDENCIES += libglib2 EFL_CONF_OPTS += -Dglib=true else EFL_CONF_OPTS += -Dglib=false endif # Prefer openssl (the default) over gnutls. ifeq ($(BR2_PACKAGE_OPENSSL),y) EFL_DEPENDENCIES += openssl EFL_CONF_OPTS += -Dcrypto=openssl else EFL_DEPENDENCIES += gnutls libgcrypt EFL_CONF_OPTS += -Dcrypto=gnutls endif ifeq ($(BR2_PACKAGE_EFL_FB),y) EFL_CONF_OPTS += -Dfb=true else EFL_CONF_OPTS += -Dfb=false endif ifeq ($(BR2_PACKAGE_EFL_X_XLIB),y) EFL_CONF_OPTS += -Dx11=true \ -Dxinput2=true \ -Dxinput22=true EFL_DEPENDENCIES += \ xlib_libX11 \ xlib_libXcomposite \ xlib_libXcursor \ xlib_libXdamage \ xlib_libXext \ xlib_libXinerama \ xlib_libXrandr \ xlib_libXrender \ xlib_libXScrnSaver \ xlib_libXtst else EFL_CONF_OPTS += -Dx11=false endif ifeq ($(BR2_PACKAGE_EFL_OPENGL),y) EFL_CONF_OPTS += -Dopengl=full EFL_DEPENDENCIES += libgl # OpenGL ES requires EGL else ifeq ($(BR2_PACKAGE_EFL_OPENGLES),y) EFL_CONF_OPTS += -Dopengl=es-egl EFL_DEPENDENCIES += libegl libgles else ifeq ($(BR2_PACKAGE_EFL_OPENGL_NONE),y) EFL_CONF_OPTS += -Dopengl=none endif ifeq ($(BR2_PACKAGE_EFL_DRM),y) EFL_CONF_OPTS += -Ddrm=true EFL_DEPENDENCIES += libdrm libegl libinput mesa3d else EFL_CONF_OPTS += -Ddrm=false endif ifeq ($(BR2_PACKAGE_EFL_WAYLAND),y) EFL_DEPENDENCIES += wayland wayland-protocols EFL_CONF_OPTS += -Dwl=true else EFL_CONF_OPTS += -Dwl=false endif EFL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBXKBCOMMON),libxkbcommon) # json evas loader is disabled by default by upstream. # Disable libspectre (ps). # Keep all other evas loader enabled or handled below. EFL_EVAS_LOADERS_DISABLER = avif gst json ps # efl already depends on jpeg. ifeq ($(BR2_PACKAGE_EFL_JPEG),y) EFL_DEPENDENCIES += openjpeg else EFL_EVAS_LOADERS_DISABLER += jp2k endif ifeq ($(BR2_PACKAGE_EFL_TIFF),y) EFL_DEPENDENCIES += tiff else EFL_EVAS_LOADERS_DISABLER += tiff endif ifeq ($(BR2_PACKAGE_EFL_WEBP),y) EFL_DEPENDENCIES += webp else EFL_EVAS_LOADERS_DISABLER += webp endif ifeq ($(BR2_PACKAGE_POPPLER),y) # poppler needs c++11 EFL_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" EFL_DEPENDENCIES += poppler else EFL_EVAS_LOADERS_DISABLER += pdf endif ifeq ($(BR2_PACKAGE_EFL_LIBRAW),y) EFL_DEPENDENCIES += libraw else EFL_EVAS_LOADERS_DISABLER += raw endif ifeq ($(BR2_PACKAGE_EFL_SVG),y) EFL_DEPENDENCIES += librsvg cairo else EFL_EVAS_LOADERS_DISABLER += rsvg endif EFL_CONF_OPTS += -Devas-loaders-disabler=$(subst $(space),$(comma),$(EFL_EVAS_LOADERS_DISABLER)) ifeq ($(BR2_PACKAGE_UPOWER),) # upower ecore system module is only useful if upower # dbus service is available. # It's not essential, only used to notify applications # of power state, such as low battery or AC power, so # they can adapt their power consumption. define EFL_HOOK_REMOVE_UPOWER rm -fr $(TARGET_DIR)/usr/lib/ecore/system/upower endef EFL_POST_INSTALL_TARGET_HOOKS = EFL_HOOK_REMOVE_UPOWER endif ifeq ($(BR2_PACKAGE_LIBUNWIND),y) EFL_DEPENDENCIES += libunwind endif $(eval $(meson-package)) ################################################################################ # # host-efl # ################################################################################ # We want to build only some host tools used later in the build. # 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-giflib, host-libjpeg, host-libpng: for libevas image loader # * host-luajit for Elua tool for the host # * host-openssl: cryptography backends. HOST_EFL_DEPENDENCIES = \ host-pkgconf \ host-dbus \ host-freetype \ host-giflib \ host-libglib2 \ host-libjpeg \ host-libpng \ host-luajit \ host-openssl \ host-zlib # Configure options: # audio=false: remove libsndfile dependency. # eeze=false: remove libudev dependency. # libmount=false: remove dependency on host-util-linux libmount. # elua=true: build elua for the host. # physics=false: remove Bullet dependency. # network-backend=none: remove network-backend (connman). # embedded-lz4=true: use lz4 bundled in efl. HOST_EFL_CONF_OPTS += \ -Daudio=false \ -Davahi=false \ -Dbuild-examples=false \ -Dbuild-tests=false \ -Dcrypto=openssl \ -Ddotnet=false \ -Decore-imf-loaders-disabler=ibus,scim,xim \ -Dedje-sound-and-video=false \ -Deeze=false \ -Delua=true \ -Dembedded-lz4=true \ -Dfontconfig=false \ -Dfribidi=false \ -Dglib=true \ -Dgstreamer=false \ -Dharfbuzz=false \ -Dlibmount=false \ -Dlua-interpreter=luajit \ -Dnetwork-backend=none \ -Dnls=false \ -Dopengl=none \ -Dphysics=false \ -Dpixman=false \ -Dpulseaudio=false \ -Dsdl=false \ -Dsystemd=false \ -Dv4l2=false \ -Dvnc-server=false \ -Dx11=false \ -Dxinput22=false # List of modular image/vector loaders to disable in efl HOST_EFL_EVAS_LOADERS_DISABLER = avif bmp dds eet generic gst ico json \ jp2k pdf pmaps ps psd raw rsvg tga tgv tiff wbmp webp xcf xpm HOST_EFL_CONF_OPTS += -Devas-loaders-disabler=$(subst $(space),$(comma),$(HOST_EFL_EVAS_LOADERS_DISABLER)) HOST_EFL_BINDINGS = lua # 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_BINDINGS += cxx endif HOST_EFL_CONF_OPTS += -Dbindings=$(subst $(space),$(comma),$(HOST_EFL_BINDINGS)) # Always disable upower system module from host as it's # not useful and would try to use the output/host/var # system bus which is non-existent and does not contain # any upower service in it. define HOST_EFL_HOOK_REMOVE_UPOWER rm -fr $(HOST_DIR)/lib/ecore/system/upower endef HOST_EFL_POST_INSTALL_HOOKS = HOST_EFL_HOOK_REMOVE_UPOWER $(eval $(host-meson-package)) ================================================ FILE: package/eigen/Config.in ================================================ config BR2_PACKAGE_EIGEN bool "eigen" depends on BR2_INSTALL_LIBSTDCPP help Eigen is a C++ template library for linear algebra: vectors, matrices, and related algorithms. It is versatile, fast, elegant and works on many platforms (OS/Compilers). This package only installs header files to the include path. If you just want to use Eigen, you can use the header files right away. There is no binary to link to. Eigen is a pure template library defined in the headers. http://eigen.tuxfamily.org/ comment "eigen needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/eigen/eigen.hash ================================================ # Locally computed sha256 685adf14bd8e9c015b78097c1dc22f2f01343756f196acdc76a678e1ae352e11 eigen-3.3.7.tar.bz2 sha256 4f877e5ae4672568ef82cfd0023e2cef4a7cf55d867ab249efc9569a7eb9e5b1 COPYING.BSD sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.GPL sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPL sha256 f5b330efdad110cdd84d585ec61220b0650461fa599e36b13e1726c9346dcfb9 COPYING.MINPACK sha256 fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85 COPYING.MPL2 sha256 c83230b770f17ef1386ea1fd3681271dd98aa93646bdbfb5bff3a1b7050fff9d COPYING.README ================================================ FILE: package/eigen/eigen.mk ================================================ ################################################################################ # # eigen # ################################################################################ EIGEN_VERSION = 3.3.7 EIGEN_SOURCE = eigen-$(EIGEN_VERSION).tar.bz2 EIGEN_SITE = $(call gitlab,libeigen,eigen,$(EIGEN_VERSION)) EIGEN_LICENSE = MPL2, BSD-3-Clause, LGPL-2.1 EIGEN_LICENSE_FILES = COPYING.MPL2 COPYING.BSD COPYING.LGPL COPYING.README EIGEN_INSTALL_STAGING = YES EIGEN_INSTALL_TARGET = NO EIGEN_SUPPORTS_IN_SOURCE_BUILD = NO # Default Eigen CMake installs .pc file in /usr/share/pkgconfig # change it to /usr/lib/pkgconfig, to be consistent with other packages. EIGEN_CONF_OPTS = -DPKGCONFIG_INSTALL_DIR=/usr/lib/pkgconfig \ -DCMAKE_Fortran_COMPILER=$(TARGET_FC) $(eval $(cmake-package)) ================================================ FILE: package/ejabberd/0001-Makefile.in-do-not-download-or-compile-dependencies.patch ================================================ From cb583beba1acba55112fbb4636c1c73d9ae691a0 Mon Sep 17 00:00:00 2001 From: Johan Oudinet Date: Fri, 20 Nov 2020 00:33:30 +0100 Subject: [PATCH] Makefile.in: do not download or compile dependencies Signed-off-by: Johan Oudinet --- Makefile.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.in b/Makefile.in index abd64835..06f876bb 100644 --- a/Makefile.in +++ b/Makefile.in @@ -97,7 +97,7 @@ ifneq ($(INSTALLGROUP),) G_USER=-g $(INSTALLGROUP) endif -all: deps src +all: src deps: deps/.got @@ -111,7 +111,7 @@ deps/.built: deps/.got $(REBAR) configure-deps $(REBAR) compile && :> deps/.built -src: deps/.built +src: $(REBAR) skip_deps=true compile update: -- 2.29.2 ================================================ FILE: package/ejabberd/0002-fix-ejabberdctl.patch ================================================ From 4283f675f21d3923e200092cec6418014a03ad52 Mon Sep 17 00:00:00 2001 From: Johan Oudinet Date: Thu, 26 Dec 2019 17:06:34 +0100 Subject: [PATCH] fix ejabberdctl Change default values so ejabberdctl run commands as ejabberd user. Signed-off-by: Johan Oudinet --- ejabberdctl.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ejabberdctl.template b/ejabberdctl.template index a940c3df7..5166e5a27 100755 --- a/ejabberdctl.template +++ b/ejabberdctl.template @@ -15,7 +15,7 @@ SCRIPT_DIR=$(cd "${0%/*}" && pwd) ERL="{{erl}}" IEX="{{bindir}}/iex" EPMD="{{epmd}}" -INSTALLUSER="{{installuser}}" +INSTALLUSER=ejabberd # check the proper system user is used case $(id -un) in -- 2.20.1 ================================================ FILE: package/ejabberd/Config.in ================================================ config BR2_PACKAGE_EJABBERD bool "ejabberd" depends on BR2_PACKAGE_ERLANG depends on BR2_INSTALL_LIBSTDCPP # jiffy, stringprep select BR2_PACKAGE_ERLANG_EIMP select BR2_PACKAGE_ERLANG_IDNA # runtime select BR2_PACKAGE_ERLANG_JIFFY # runtime select BR2_PACKAGE_ERLANG_JOSE # runtime select BR2_PACKAGE_ERLANG_LAGER select BR2_PACKAGE_ERLANG_P1_ACME # runtime select BR2_PACKAGE_ERLANG_P1_CACHE_TAB select BR2_PACKAGE_ERLANG_P1_MQTREE # runtime select BR2_PACKAGE_ERLANG_P1_OAUTH2 # runtime select BR2_PACKAGE_ERLANG_P1_PKIX # runtime select BR2_PACKAGE_ERLANG_P1_SIP select BR2_PACKAGE_ERLANG_P1_STRINGPREP select BR2_PACKAGE_ERLANG_P1_STUN select BR2_PACKAGE_ERLANG_P1_TLS select BR2_PACKAGE_ERLANG_P1_UTILS select BR2_PACKAGE_ERLANG_P1_XML select BR2_PACKAGE_ERLANG_P1_XMPP select BR2_PACKAGE_ERLANG_P1_YAML select BR2_PACKAGE_ERLANG_P1_YCONF # runtime select BR2_PACKAGE_ERLANG_P1_ZLIB select BR2_PACKAGE_GETENT select BR2_PACKAGE_OPENSSL help Ejabberd is a Jabber/XMPP instant messaging server, written in Erlang/OTP. Among other features, ejabberd is cross-platform, fault-tolerant, clusterable and modular. http://www.ejabberd.im comment "ejabberd needs erlang, toolchain w/ C++" depends on !BR2_PACKAGE_ERLANG || !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/ejabberd/S50ejabberd ================================================ #!/bin/sh # # Start/stop ejabberd # CTL=/usr/sbin/ejabberdctl DEFAULT=/etc/ejabberd/ejabberdctl.cfg INSTALLUSER=ejabberd RUNDIR=/var/run/ejabberd # Read default configuration file if present. [ -r "$DEFAULT" ] && . "$DEFAULT" # Create RUNDIR. mkrundir() { install -d -o "$INSTALLUSER" -g "$INSTALLUSER" "$RUNDIR" } case "$1" in start) mkrundir || exit 1 printf "Starting ejabberd... " "$CTL" start # Wait until ejabberd is up and running. if "$CTL" started; then echo "done" else echo "failed" fi ;; stop) printf "Stopping ejabberd... " "$CTL" stop > /dev/null if [ $? -eq 3 ] || "$CTL" stopped; then echo "OK" else echo "failed" fi ;; status) "$CTL" status ;; restart|force-reload) "$0" stop || true "$0" start ;; live) mkrundir || exit 1 "$CTL" live ;; *) echo "Usage: $0 {start|stop|status|restart|force-reload|live}" exit 1 esac ================================================ FILE: package/ejabberd/check-erlang-lib ================================================ #!/bin/sh -e # Helper to bypass AC_ERLANG_CHECK_LIB # # Ejabberd releases do not download specific versions of its erlang # dependencies. Instead, it clones the master branch of a git # repository and asks erl to provide the library version. However, # the target erl program cannot be called from the host. So, this # script aims at finding the library version installed on the target, # without calling erlang. usage() { cat <&2 exit 1 } if [ $# -ne 1 ]; then usage exit 0 else library="$1" fi target_dir="${TARGET_DIR:-output/target}" [ -d "$target_dir" ] || die "TARGET_DIR is not a directory. Please \ specify the TARGET_DIR environment variable." case "$(ls -1d -- "$target_dir/usr/lib/erlang/lib/$library-"* | wc -l)" in 0) echo "not found" ;; 1) echo "$target_dir/usr/lib/erlang/lib/$library-"* \ | sed -e "s,^$target_dir,," ;; *) die "Several versions of $library have been found. Please \ remove the unused ones." ;; esac ================================================ FILE: package/ejabberd/ejabberd.hash ================================================ # Locally computed sha256 9e922b938458ae9d72d4e5fdd2d08a1fbad651aae47c9a9d15b79d0bbd1e11f8 ejabberd-20.07.tgz sha256 469bb8cfa3ef22c102875ff31932450c075e6908ff3f7d36893485c0c30898eb COPYING ================================================ FILE: package/ejabberd/ejabberd.mk ================================================ ################################################################################ # # ejabberd # ################################################################################ EJABBERD_VERSION = 20.07 EJABBERD_SOURCE = ejabberd-$(EJABBERD_VERSION).tgz EJABBERD_SITE = https://static.process-one.net/ejabberd/downloads/$(EJABBERD_VERSION) EJABBERD_LICENSE = GPL-2.0+ with OpenSSL exception EJABBERD_LICENSE_FILES = COPYING EJABBERD_CPE_ID_VENDOR = process-one EJABBERD_DEPENDENCIES = getent openssl erlang-eimp host-erlang-lager \ erlang-lager erlang-p1-cache-tab erlang-p1-sip \ erlang-p1-stringprep erlang-p1-stun erlang-p1-tls \ erlang-p1-utils erlang-p1-xml erlang-p1-xmpp erlang-p1-yaml \ erlang-p1-zlib host-erlang-p1-utils host-erlang-p1-xmpp # 0001-remove-make-targets-for-deps.patch updates Makefile.in EJABBERD_USE_AUTOCONF = YES EJABBERD_AUTORECONF = YES ifeq ($(BR2_PACKAGE_LINUX_PAM),y) EJABBERD_DEPENDENCIES += linux-pam endif EJABBERD_ERLANG_LIBS = sasl public_key mnesia inets compiler # Guess answers for these tests, configure will bail out otherwise # saying error: cannot run test program while cross compiling. EJABBERD_CHECK_LIB = $(TOPDIR)/$(EJABBERD_PKGDIR)/check-erlang-lib EJABBERD_CONF_ENV = \ ac_cv_erlang_root_dir="$(HOST_DIR)/lib/erlang" \ $(foreach lib,$(EJABBERD_ERLANG_LIBS), \ ac_cv_erlang_lib_dir_$(lib)="`$(EJABBERD_CHECK_LIB) $(lib)`") EJABBERD_CONF_OPTS = \ --enable-system-deps \ --disable-erlang-version-check define EJABBERD_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) install -C $(@D) endef # Replace HOST_DIR prefix to /usr in environment variables of # ejabberctl script. define EJABBERD_FIX_EJABBERDCTL $(SED) 's,="$(HOST_DIR),="/usr,' '$(TARGET_DIR)/usr/sbin/ejabberdctl' endef EJABBERD_POST_INSTALL_TARGET_HOOKS += EJABBERD_FIX_EJABBERDCTL define EJABBERD_USERS ejabberd -1 ejabberd -1 * /var/lib/ejabberd /bin/sh - ejabberd daemon endef define EJABBERD_PERMISSIONS /etc/ejabberd r 750 root ejabberd - - - - - /usr/sbin/ejabberdctl f 750 root ejabberd - - - - - endef define EJABBERD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/ejabberd/S50ejabberd \ $(TARGET_DIR)/etc/init.d/S50ejabberd endef $(eval $(rebar-package)) ================================================ FILE: package/elf2flt/0001-ld-elf2flt-behave-properly-when-called-with-a-name-d.patch ================================================ From b31e9b1bff6832063816b972395179859d1d4619 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 13 Aug 2017 16:03:20 +0200 Subject: [PATCH] ld-elf2flt: behave properly when called with a name different from TARGET_ALIAS ld-elf2flt currently handles two cases: 1 It is called as the wrapper for -ld, generally installed in the bin/ directory of a toolchain. 2 It is called as the wrapper for "ld", generally installed in the TARGET_ALIAS/bin/ directory of a toolchain. Unfortunately, if for some reason it gets called using a FOOBAR-ld name that is different from -ld, it assumes it is in case (2), while it really is in case (1). Due to this, the path mangling logic doesn't work, and it doesn't find ld.real. This happens for example when the binary program in bin/ is named arm-buildroot-uclinux-uclibcgnueabi-ld, but also has a simpler symlink named arm-linux-ld. In this case, arm-buildroot-uclinux-uclibcgnueabi-ld is recognized by ld-elf2flt as containing TARGET_ALIAS, and therefore the proper logic to find ld.real is applied. However, when arm-linux-ld is used, ld-elf2flt doesn't find TARGET_ALIAS, and therefore assumes we're being called as TARGET_ALIAS/bin/ld.. and searches for a program called ld.real in bin/, which doesn't exist. See: $ ./output/host/bin/arm-buildroot-uclinux-uclibcgnueabi-ld /home/thomas/buildroot/buildroot/output/host/bin/../arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: no input files $ ./output/host/bin/arm-linux-ld arm-linux-ld (ld-elf2flt): error trying to exec '/home/thomas/buildroot/buildroot/output/host/bin/ld.real': execvp: No such file or directory $ ./output/host/arm-buildroot-uclinux-uclibcgnueabi/bin/ld /home/thomas/buildroot/buildroot/output/host/arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: no input files This commit fixes that by inverting the logic: if we're being called as just "ld", then we assume it's the program in TARGET_ALIAS/bin/. Otherwise, we're called through some variant of TARGET-ld. Signed-off-by: Thomas Petazzoni Submitted-upstream: https://github.com/uclinux-dev/elf2flt/pull/8 --- ld-elf2flt.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ld-elf2flt.c b/ld-elf2flt.c index de39fe0..c187c2e 100644 --- a/ld-elf2flt.c +++ b/ld-elf2flt.c @@ -506,15 +506,15 @@ int main(int argc, char *argv[]) the host while those in /lib are for the target. Make bindir point to the bin dir for bin/-foo. Make tooldir point to the bin dir for /bin/foo. */ - if (streqn(elf2flt_progname, TARGET_ALIAS)) { - tmp = concat(argv0_dir, "../" TARGET_ALIAS "/bin", NULL); + if (streqn(elf2flt_progname, "ld")) { + tmp = concat(argv0_dir, "../../bin", NULL); if (stat(tmp, &buf) == 0 && S_ISDIR(buf.st_mode)) { - tooldir = concat(tmp, "/", NULL); + bindir = concat(tmp, "/", NULL); } } else { - tmp = concat(argv0_dir, "../../bin", NULL); + tmp = concat(argv0_dir, "../" TARGET_ALIAS "/bin", NULL); if (stat(tmp, &buf) == 0 && S_ISDIR(buf.st_mode)) { - bindir = concat(tmp, "/", NULL); + tooldir = concat(tmp, "/", NULL); } } -- 2.9.4 ================================================ FILE: package/elf2flt/0002-elf2flt.c-add-new-relocation-types-for-xtensa.patch ================================================ From d7eb73163bcea31168c438fc132a0967ac172e3d Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Thu, 7 May 2020 21:11:43 -0700 Subject: [PATCH] elf2flt.c: add new relocation types for xtensa Xtensa have added new relocation types R_XTENSA_[NP]DIFF{8,16,32} with the same properties as the existing types R_XTENSA_DIFF{8,16,32}. Add them to the list of ignored relocation types. This fixes the following error when invoking elf2flt on xtensa binaries built with the recent binutils: ERROR: reloc type R_XTENSA_PDIFF32 unsupported in this context Reported-by: Romain Naour Signed-off-by: Max Filippov Backported from: d7eb73163bcea31168c438fc132a0967ac172e3d --- Makefile.in | 3 ++- configure | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 14 ++++++++++++ elf2flt.c | 8 +++++++ 4 files changed, 88 insertions(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index 52b3347d7f43..0529c7f0a25a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -30,7 +30,8 @@ DEFS = @DEFS@ \ -DNO_GOT_CHECK=@got_check@ \ -DUSE_EMIT_RELOCS=@emit_relocs@ \ -DEMIT_CTOR_DTOR=@emit_ctor_dtor@ \ - -DALWAYS_RELOC_TEXT=@always_reloc_text@ + -DALWAYS_RELOC_TEXT=@always_reloc_text@ \ + -DHAVE_BFD_XTENSA_PDIFF_RELOCS=@HAVE_BFD_XTENSA_PDIFF_RELOCS@ EXEEXT = @EXEEXT@ OBJEXT = @OBJEXT@ diff --git a/configure b/configure index bb8e33f9cb28..bca38c34247e 100755 --- a/configure +++ b/configure @@ -621,6 +621,7 @@ ac_includes_default="\ ac_subst_vars='LTLIBOBJS LIBOBJS +HAVE_BFD_XTENSA_PDIFF_RELOCS SYMBOL_PREFIX always_reloc_text emit_ctor_dtor @@ -1729,6 +1730,52 @@ fi } # ac_fn_c_try_link +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_decl + # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly @@ -4272,6 +4319,22 @@ $as_echo "#define const /**/" >>confdefs.h fi +HAVE_BFD_XTENSA_PDIFF_RELOCS=0 +case $target in + xtensa*) + OLD_CPPFLAGS=$CPPFLAGS + CPPFLAGS="-I$bfd_include_dir -I$binutils_include_dir $CPPFLAGS" + ac_fn_c_check_decl "$LINENO" "R_XTENSA_PDIFF8" "ac_cv_have_decl_R_XTENSA_PDIFF8" "#include \"bfd.h\" + #include \"elf/xtensa.h\" +" +if test "x$ac_cv_have_decl_R_XTENSA_PDIFF8" = xyes; then : + HAVE_BFD_XTENSA_PDIFF_RELOCS=1 +fi + + CPPFLAGS=$OLD_CPPFLAGS + ;; +esac + for ac_func in vprintf do : ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" @@ -4333,6 +4396,7 @@ fi + ac_config_files="$ac_config_files ld-elf2flt.sh:ld-elf2flt.in Makefile elf2flt.ld" cat >confcache <<\_ACEOF diff --git a/configure.ac b/configure.ac index d6b4119eb18a..19969b1045f6 100644 --- a/configure.ac +++ b/configure.ac @@ -202,6 +202,19 @@ AC_CHECK_HEADERS(fcntl.h unistd.h bfd.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST +HAVE_BFD_XTENSA_PDIFF_RELOCS=0 +case $target in + xtensa*) + AS_VAR_COPY([OLD_CPPFLAGS], [CPPFLAGS]) + AS_VAR_SET([CPPFLAGS], ["-I$bfd_include_dir -I$binutils_include_dir $CPPFLAGS"]) + AC_CHECK_DECL([R_XTENSA_PDIFF8], + [HAVE_BFD_XTENSA_PDIFF_RELOCS=1],, + [#include "bfd.h" + #include "elf/xtensa.h"]) + AS_VAR_COPY([CPPFLAGS], [OLD_CPPFLAGS]) + ;; +esac + dnl Checks for library functions. AC_FUNC_VPRINTF @@ -235,6 +248,7 @@ AC_SUBST(emit_relocs) AC_SUBST(emit_ctor_dtor) AC_SUBST(always_reloc_text) AC_SUBST(SYMBOL_PREFIX) +AC_SUBST(HAVE_BFD_XTENSA_PDIFF_RELOCS) AC_OUTPUT(ld-elf2flt.sh:ld-elf2flt.in Makefile elf2flt.ld) diff --git a/elf2flt.c b/elf2flt.c index b7c4a490df02..961534973f56 100644 --- a/elf2flt.c +++ b/elf2flt.c @@ -776,6 +776,14 @@ output_relocs ( case R_XTENSA_DIFF8: case R_XTENSA_DIFF16: case R_XTENSA_DIFF32: +#if HAVE_BFD_XTENSA_PDIFF_RELOCS + case R_XTENSA_PDIFF8: + case R_XTENSA_PDIFF16: + case R_XTENSA_PDIFF32: + case R_XTENSA_NDIFF8: + case R_XTENSA_NDIFF16: + case R_XTENSA_NDIFF32: +#endif case R_XTENSA_32_PCREL: continue; case R_XTENSA_32: -- 2.20.1 ================================================ FILE: package/elf2flt/0003-elf2flt-handle-binutils-2.34.patch ================================================ From 26165906f85d82f0a4456f34b5c60fcaaef48535 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Wed, 5 Feb 2020 10:31:32 +0100 Subject: [PATCH] elf2flt: handle binutils >= 2.34 The latest Binutils release (2.34) is not compatible with elf2flt due to a change in bfd_section_* macros [1]. The issue has been reported to the Binutils mailing list but Alan Modra recommend to bundle libbfd library sources into each projects using it [2]. That's because the API is not stable over the time without any backward compatibility guaranties. On the other hand, the elf2flt tools needs to support modified version of binutils for specific arch/target [3]. Add two tests in the configure script to detect this API change in order to support binutils < 2.34 and binutils >= 2.34. Upstream status: [4] [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=fd3619828e94a24a92cddec42cbc0ab33352eeb4 [2] https://sourceware.org/ml/binutils/2020-02/msg00044.html [3] https://github.com/uclinux-dev/elf2flt/issues/14 [4] https://github.com/uclinux-dev/elf2flt/pull/15 Signed-off-by: Romain Naour --- configure.ac | 16 +++++++++++ elf2flt.c | 81 +++++++++++++++++++++++++++++----------------------- 2 files changed, 61 insertions(+), 36 deletions(-) diff --git a/configure.ac b/configure.ac index e82eb1d..cf7dea8 100644 --- a/configure.ac +++ b/configure.ac @@ -229,6 +229,22 @@ AC_CHECK_FUNCS([ \ strsignal \ ]) +dnl Various bfd section macros and functions like bfd_section_size() have been +dnl modified starting with binutils >= 2.34. +dnl Check if the prototypes take a bfd argument. +if test "$binutils_build_dir" != "NONE"; then + CFLAGS="-I$binutils_include_dir -I$bfd_include_dir $CFLAGS" +fi + +AC_TRY_COMPILE([#include ], + [const asection *sec; bfd_section_size(sec);], + bfd_section_api_takes_bfd=no, + bfd_section_api_takes_bfd=yes) +if test "$bfd_section_api_takes_bfd" = "yes" ; then + AC_DEFINE(HAVE_BFD_SECTION_API_TAKES_BFD, 1, + [define to 1 for binutils < 2.34]) +fi + if test "$GCC" = yes ; then CFLAGS="-Wall $CFLAGS" if test "$werror" = 1 ; then diff --git a/elf2flt.c b/elf2flt.c index b93aecd..3bcf4fe 100644 --- a/elf2flt.c +++ b/elf2flt.c @@ -149,6 +149,17 @@ const char *elf2flt_progname; #define O_BINARY 0 #endif +/* + * The bfd parameter isn't actually used by any of the bfd_section funcs and + * have been removed since binutils 2.34. + */ +#ifdef HAVE_BFD_SECTION_API_TAKES_BFD +#define elf2flt_bfd_section_size(s) bfd_section_size(NULL, s) +#define elf2flt_bfd_section_vma(s) bfd_section_vma(NULL, s) +#else +#define elf2flt_bfd_section_size(s) bfd_section_size(s) +#define elf2flt_bfd_section_vma(s) bfd_section_vma(s) +#endif /* Extra output when running. */ static int verbose = 0; @@ -323,10 +334,8 @@ compare_relocs (const void *pa, const void *pb) else if (!rb->sym_ptr_ptr || !*rb->sym_ptr_ptr) return 1; - a_vma = bfd_section_vma(compare_relocs_bfd, - (*(ra->sym_ptr_ptr))->section); - b_vma = bfd_section_vma(compare_relocs_bfd, - (*(rb->sym_ptr_ptr))->section); + a_vma = elf2flt_bfd_section_vma((*(ra->sym_ptr_ptr))->section); + b_vma = elf2flt_bfd_section_vma((*(rb->sym_ptr_ptr))->section); va = (*(ra->sym_ptr_ptr))->value + a_vma + ra->addend; vb = (*(rb->sym_ptr_ptr))->value + b_vma + rb->addend; return va - vb; @@ -403,7 +412,7 @@ output_relocs ( } for (a = abs_bfd->sections; (a != (asection *) NULL); a = a->next) { - section_vma = bfd_section_vma(abs_bfd, a); + section_vma = elf2flt_bfd_section_vma(a); if (verbose) printf("SECTION: %s [%p]: flags=0x%x vma=0x%"PRIx32"\n", @@ -442,7 +451,7 @@ output_relocs ( continue; if (verbose) printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%"BFD_VMA_FMT"x\n", - r->name, r, r->flags, bfd_section_vma(abs_bfd, r)); + r->name, r, r->flags, elf2flt_bfd_section_vma(r)); if ((r->flags & SEC_RELOC) == 0) continue; relsize = bfd_get_reloc_upper_bound(rel_bfd, r); @@ -694,7 +703,7 @@ output_relocs ( case R_BFIN_RIMM16: case R_BFIN_LUIMM16: case R_BFIN_HUIMM16: - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; if (weak_und_symbol(sym_section->name, (*(q->sym_ptr_ptr)))) @@ -727,7 +736,7 @@ output_relocs ( break; case R_BFIN_BYTE4_DATA: - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; if (weak_und_symbol (sym_section->name, (*(q->sym_ptr_ptr)))) @@ -885,7 +894,7 @@ output_relocs ( #if defined(TARGET_m68k) case R_68K_32: relocation_needed = 1; - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; break; case R_68K_PC16: @@ -910,7 +919,7 @@ output_relocs ( q->address, sym_addr, (*p)->howto->rightshift, *(uint32_t *)r_mem); - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; break; case R_ARM_GOT32: @@ -938,7 +947,7 @@ output_relocs ( #ifdef TARGET_v850 case R_V850_ABS32: relocation_needed = 1; - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; break; case R_V850_ZDA_16_16_OFFSET: @@ -960,7 +969,7 @@ output_relocs ( sym_addr = (*(q->sym_ptr_ptr))->value; q->address -= 1; r_mem -= 1; /* tracks q->address */ - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; sym_addr |= (*(unsigned char *)r_mem<<24); break; @@ -973,7 +982,7 @@ output_relocs ( /* Absolute symbol done not relocation */ relocation_needed = !bfd_is_abs_section(sym_section); sym_addr = (*(q->sym_ptr_ptr))->value; - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; break; case R_H8_DIR32: @@ -986,7 +995,7 @@ output_relocs ( } relocation_needed = 1; sym_addr = (*(q->sym_ptr_ptr))->value; - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; break; case R_H8_PCREL16: @@ -1012,7 +1021,7 @@ output_relocs ( #ifdef TARGET_microblaze case R_MICROBLAZE_64: /* work out the relocation */ - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; /* Write relocated pointer back */ r_mem[2] = (sym_addr >> 24) & 0xff; @@ -1026,7 +1035,7 @@ output_relocs ( pflags = 0x80000000; break; case R_MICROBLAZE_32: - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; relocation_needed = 1; break; @@ -1058,7 +1067,7 @@ output_relocs ( case R_NIOS2_BFD_RELOC_32: relocation_needed = 1; pflags = (FLAT_NIOS2_R_32 << 28); - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; /* modify target, in target order */ *(unsigned long *)r_mem = htoniosl(sym_addr); @@ -1068,7 +1077,7 @@ output_relocs ( unsigned long exist_val; relocation_needed = 1; pflags = (FLAT_NIOS2_R_CALL26 << 28); - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; /* modify target, in target order */ @@ -1099,7 +1108,7 @@ output_relocs ( ? FLAT_NIOS2_R_HIADJ_LO : FLAT_NIOS2_R_HI_LO; pflags <<= 28; - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; /* modify high 16 bits, in target order */ @@ -1132,7 +1141,7 @@ output_relocs ( goto NIOS2_RELOC_ERR; } /* _gp holds a absolute value, otherwise the ld cannot generate correct code */ - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); //printf("sym=%x, %d, _gp=%x, %d\n", sym_addr+sym_vma, sym_addr+sym_vma, gp, gp); sym_addr += sym_vma + q->addend; sym_addr -= gp; @@ -1213,7 +1222,7 @@ NIOS2_RELOC_ERR: case R_SPARC_32: case R_SPARC_UA32: relocation_needed = 1; - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; break; case R_SPARC_PC22: @@ -1232,7 +1241,7 @@ NIOS2_RELOC_ERR: case R_SPARC_HI22: relocation_needed = 1; pflags = 0x80000000; - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; sym_addr |= ( htonl(*(uint32_t *)r_mem) @@ -1242,7 +1251,7 @@ NIOS2_RELOC_ERR: case R_SPARC_LO10: relocation_needed = 1; pflags = 0x40000000; - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; sym_addr &= 0x000003ff; sym_addr |= ( @@ -1256,7 +1265,7 @@ NIOS2_RELOC_ERR: #ifdef TARGET_sh case R_SH_DIR32: relocation_needed = 1; - sym_vma = bfd_section_vma(abs_bfd, sym_section); + sym_vma = elf2flt_bfd_section_vma(sym_section); sym_addr += sym_vma + q->addend; break; case R_SH_REL32: @@ -1288,7 +1297,7 @@ NIOS2_RELOC_ERR: case R_E1_CONST31: relocation_needed = 1; DBG_E1("Handling Reloc \n"); - sec_vma = bfd_section_vma(abs_bfd, sym_section); + sec_vma = elf2flt_bfd_section_vma(sym_section); DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n", sec_vma, sym_addr, q->address); sym_addr = sec_vma + sym_addr; @@ -1303,7 +1312,7 @@ NIOS2_RELOC_ERR: relocation_needed = 0; DBG_E1("Handling Reloc \n"); DBG_E1("DONT RELOCATE AT LOADING\n"); - sec_vma = bfd_section_vma(abs_bfd, sym_section); + sec_vma = elf2flt_bfd_section_vma(sym_section); DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n", sec_vma, sym_addr, q->address); sym_addr = sec_vma + sym_addr; @@ -1330,7 +1339,7 @@ NIOS2_RELOC_ERR: relocation_needed = 0; DBG_E1("Handling Reloc \n"); DBG_E1("DONT RELOCATE AT LOADING\n"); - sec_vma = bfd_section_vma(abs_bfd, sym_section); + sec_vma = elf2flt_bfd_section_vma(sym_section); DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n", sec_vma, sym_addr, q->address); sym_addr = sec_vma + sym_addr; @@ -1363,7 +1372,7 @@ NIOS2_RELOC_ERR: DBG_E1("Handling Reloc \n"); DIS29_RELOCATION: relocation_needed = 1; - sec_vma = bfd_section_vma(abs_bfd, sym_section); + sec_vma = elf2flt_bfd_section_vma(sym_section); DBG_E1("sec_vma : [0x%x], sym_addr : [0x%08x]\n", sec_vma, sym_addr); sym_addr = sec_vma + sym_addr; @@ -1380,7 +1389,7 @@ DIS29_RELOCATION: relocation_needed = 0; DBG_E1("Handling Reloc \n"); DBG_E1("DONT RELOCATE AT LOADING\n"); - sec_vma = bfd_section_vma(abs_bfd, sym_section); + sec_vma = elf2flt_bfd_section_vma(sym_section); DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n", sec_vma, sym_addr); sym_addr = sec_vma + sym_addr; @@ -1406,7 +1415,7 @@ DIS29_RELOCATION: case R_E1_IMM32: relocation_needed = 1; DBG_E1("Handling Reloc \n"); - sec_vma = bfd_section_vma(abs_bfd, sym_section); + sec_vma = elf2flt_bfd_section_vma(sym_section); DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n", sec_vma, sym_addr); sym_addr = sec_vma + sym_addr; @@ -1422,7 +1431,7 @@ DIS29_RELOCATION: case R_E1_WORD: relocation_needed = 1; DBG_E1("Handling Reloc \n"); - sec_vma = bfd_section_vma(abs_bfd, sym_section); + sec_vma = elf2flt_bfd_section_vma(sym_section); DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n", sec_vma, sym_addr); sym_addr = sec_vma + sym_addr; @@ -1449,7 +1458,7 @@ DIS29_RELOCATION: } sprintf(&addstr[0], "+0x%lx", sym_addr - (*(q->sym_ptr_ptr))->value - - bfd_section_vma(abs_bfd, sym_section)); + elf2flt_bfd_section_vma(sym_section)); /* @@ -1887,8 +1896,8 @@ int main(int argc, char *argv[]) } else continue; - sec_size = bfd_section_size(abs_bfd, s); - sec_vma = bfd_section_vma(abs_bfd, s); + sec_size = elf2flt_bfd_section_size(s); + sec_vma = elf2flt_bfd_section_vma(s); if (sec_vma < *vma) { if (*len > 0) @@ -1913,7 +1922,7 @@ int main(int argc, char *argv[]) if (s->flags & SEC_CODE) if (!bfd_get_section_contents(abs_bfd, s, text + (s->vma - text_vma), 0, - bfd_section_size(abs_bfd, s))) + elf2flt_bfd_section_size(s))) { fatal("read error section %s", s->name); } @@ -1939,7 +1948,7 @@ int main(int argc, char *argv[]) if (s->flags & SEC_DATA) if (!bfd_get_section_contents(abs_bfd, s, data + (s->vma - data_vma), 0, - bfd_section_size(abs_bfd, s))) + elf2flt_bfd_section_size(s))) { fatal("read error section %s", s->name); } -- 2.25.4 ================================================ FILE: package/elf2flt/0004-elf2flt-add-riscv-64-bits-support.patch ================================================ From 1dea576eac4289602adc4a37f48c80330bf82e63 Mon Sep 17 00:00:00 2001 From: Damien Le Moal Date: Wed, 9 Sep 2020 17:31:33 +0900 Subject: [PATCH] elf2flt: add riscv 64-bits support Add support for riscv 64bits ISA by defining the relocation types R_RISCV_32_PCREL, R_RISCV_ADD32, R_RISCV_SUB32, R_RISCV_32 and R_RISCV_64. riscv64 support also needs the __global_pointer$ symbol to be defined right after the relocation tables in the data section. Furthermore, the .got and .got.plt sections must be reversed. These 2 requirements are handled with runtime modifications of the default linker script using the append_sed() function. (1) For the .got.plt and .got sections order swap, append_sed() is used to rename "(.got.plt)" to "(.got.tmp)" and to rename "(.got)" to "(.got.plt)". A last call finalize the name swap by replacing "(.got.tmp)" with "(.got)" (2) For the global pointer synbol, a definition line starting with "RISCV_GP" is added. The "RISCV_GP" string is removed if the target CPU type is riscv64. The definition line is dropped for other CPU types. With these changes, buildroot/busybox builds and run on NOMMU systems with kernel 5.13. Tested on Canaan Kendryte K210 boards. This patch is based on earlier work by Christoph Hellwig . Signed-off-by: Damien Le Moal --- elf2flt.c | 23 +++++++++++++++++++++++ elf2flt.ld.in | 9 +++++---- ld-elf2flt.c | 16 ++++++++++++++++ 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/elf2flt.c b/elf2flt.c index f87f1fc..dbce467 100644 --- a/elf2flt.c +++ b/elf2flt.c @@ -80,6 +80,8 @@ const char *elf2flt_progname; #include #elif defined(TARGET_xtensa) #include +#elif defined(TARGET_riscv64) +#include #endif #if defined(__MINGW32__) @@ -122,6 +124,8 @@ const char *elf2flt_progname; #define ARCH "nios2" #elif defined(TARGET_xtensa) #define ARCH "xtensa" +#elif defined(TARGET_riscv64) +#define ARCH "riscv64" #else #error "Don't know how to support your CPU architecture??" #endif @@ -797,6 +801,16 @@ output_relocs ( goto good_32bit_resolved_reloc; default: goto bad_resolved_reloc; +#elif defined(TARGET_riscv64) + case R_RISCV_32_PCREL: + case R_RISCV_ADD32: + case R_RISCV_SUB32: + continue; + case R_RISCV_32: + case R_RISCV_64: + goto good_32bit_resolved_reloc; + default: + goto bad_resolved_reloc; #else default: /* The default is to assume that the @@ -1806,6 +1820,15 @@ int main(int argc, char *argv[]) if (!load_to_ram && !pfile) load_to_ram = 1; +#if defined(TARGET_riscv64) + /* + * riscv only supports loading text and data contiguously. + * So fail if load_to_ram is false. + */ + if (!load_to_ram) + fatal("Loading to RAM ('-r' option) is required"); +#endif + fname = argv[argc-1]; if (pfile) { diff --git a/elf2flt.ld.in b/elf2flt.ld.in index ec1fe6f..c0c44b8 100644 --- a/elf2flt.ld.in +++ b/elf2flt.ld.in @@ -70,10 +70,11 @@ W_RODAT *(.gnu.linkonce.r*) . = ALIGN(0x20) ; LONG(-1) . = ALIGN(0x20) ; -R_RODAT *(.rodata) -R_RODAT *(.rodata1) -R_RODAT *(.rodata.*) -R_RODAT *(.gnu.linkonce.r*) +RISCV_GP: __global_pointer$ = . + 0x800 ; +R_RODAT *(.rodata) +R_RODAT *(.rodata1) +R_RODAT *(.rodata.*) +R_RODAT *(.gnu.linkonce.r*) *(.data) *(.data1) *(.data.*) diff --git a/ld-elf2flt.c b/ld-elf2flt.c index e5de506..31b565f 100644 --- a/ld-elf2flt.c +++ b/ld-elf2flt.c @@ -324,6 +324,22 @@ static int do_final_link(void) append_option(&other_options, concat(got_offset, "=", buf, NULL)); } + if (streq(TARGET_CPU, "riscv64")) { + /* + * The .got section must come before the .got.plt section + * (gcc/ld bug ?). + */ + append_sed(&sed, "(.got.plt)", "(.got.tmp)"); + append_sed(&sed, "(.got.plt)", "(.got)"); + append_sed(&sed, "(.got.tmp)", "(.got.plt)"); + + /* The global pointer symbol is defined after the GOT. */ + append_sed(&sed, "^RISCV_GP:", ""); + } else { + /* Get rid of the global pointer definition. */ + append_sed(&sed, "^RISCV_GP:", NULL); + } + /* Locate the default linker script, if we don't have one provided. */ if (!linker_script) linker_script = concat(ldscriptpath, "/elf2flt.ld", NULL); -- 2.31.1 ================================================ FILE: package/elf2flt/Config.in.host ================================================ config BR2_PACKAGE_HOST_ELF2FLT bool "Enable elf2flt support?" depends on BR2_arm || BR2_sh || BR2_sparc || BR2_xtensa || BR2_RISCV_64 depends on !BR2_USE_MMU help uCLinux uses a Binary Flat format commonly known as BFLT. It is a relatively simple and lightweight executable format based on the original a.out format. This option compiles the required tools and makes the required modifications on your toolchain (linker). https://github.com/uclinux-dev/elf2flt ================================================ FILE: package/elf2flt/elf2flt.hash ================================================ # Locally calculated sha256 d63baae6fe0d7fcc50a635be151a6f9e1e83dba30568046a869a395c15bf6284 elf2flt-7e33f28df198c46764021ed14408bd262751e148.tar.gz sha256 f20bc5007904094e3a4e9fbcc3526cdd40893f91d458c3139b308e5c4c0899c6 LICENSE.TXT ================================================ FILE: package/elf2flt/elf2flt.mk ================================================ ################################################################################ # # elf2flt # ################################################################################ ELF2FLT_VERSION = 7e33f28df198c46764021ed14408bd262751e148 ELF2FLT_SITE = $(call github,uclinux-dev,elf2flt,$(ELF2FLT_VERSION)) ELF2FLT_LICENSE = GPL-2.0+ ELF2FLT_LICENSE_FILES = LICENSE.TXT HOST_ELF2FLT_DEPENDENCIES = host-binutils host-zlib # 0003-elf2flt-handle-binutils-2.34.patch HOST_ELF2FLT_AUTORECONF = YES # It is not exactly a host variant, but more a cross variant, which is # why we pass a special --target option. HOST_ELF2FLT_CONF_OPTS = \ --with-bfd-include-dir=$(HOST_BINUTILS_DIR)/bfd/ \ --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) \ --disable-werror HOST_ELF2FLT_LIBS = -lz ifeq ($(BR2_GCC_ENABLE_LTO),y) HOST_ELF2FLT_LIBS += -ldl endif HOST_ELF2FLT_CONF_ENV = LIBS="$(HOST_ELF2FLT_LIBS)" # Hardlinks between binaries in different directories cause a problem # with rpath fixup, so we de-hardlink those binaries, and replace them # with copies instead. Note that elf2flt will rename ld to ld.real # before installing its own ld, but we already took care of the # original ld from binutils so that it is already de-hardlinked. So # ld is now the one from elf2flt, and we want to de-hardlinke it. ELF2FLT_TOOLS = elf2flt flthdr ld define HOST_ELF2FLT_FIXUP_HARDLINKS $(foreach tool,$(ELF2FLT_TOOLS),\ rm -f $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/$(tool) && \ cp -a $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-$(tool) \ $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/$(tool) ) endef HOST_ELF2FLT_POST_INSTALL_HOOKS += HOST_ELF2FLT_FIXUP_HARDLINKS $(eval $(host-autotools-package)) ================================================ FILE: package/elftosb/0001-fixes-includes.patch ================================================ This patch uses system include files instead of a hard coded system path to fixe potential compilation failure on systems that do not populate system header files in /usr/include/.. Signed-off-by: Eric Jarrige --- Index: host-elftosb-10.12.01/common/stdafx.h =================================================================== --- host-elftosb-10.12.01.orig/common/stdafx.h 2012-01-30 12:43:35.000000000 +0100 +++ host-elftosb-10.12.01/common/stdafx.h 2012-01-30 12:43:54.000000000 +0100 @@ -27,7 +27,7 @@ // For Linux systems only, types.h only defines the signed // integer types. This is not professional code. // Update: They are defined in the header files in the more recent version of redhat enterprise gcc. -#include "/usr/include/sys/types.h" +#include #include //typedef unsigned long uint32_t; //typedef unsigned short uint16_t; ================================================ FILE: package/elftosb/0002-force-cxx-compiler.patch ================================================ Subject: [PATCH 1/1] elftosb: force host C++ compiler Because Freescale provides *.cpp sources and elftosb links again libstdc++, force to use the host c++ compiler. This patch avoids the following error occurs: gcc AESKey.o Blob.o crc.o DataSource.o DataTarget.o ELFSourceFile.o EncoreBootImage.o EvalContext.o GHSSecInfo.o GlobMatcher.o HexValues.o Logging.o Operation.o OptionDictionary.o options.o OutputSection.o Random.o RijndaelCBCMAC.o rijndael.o SHA1.o SourceFile.o SRecordSourceFile.o stdafx.o StELFFile.o StExecutableImage.o StSRecordFile.o Value.o Version.o format_string.o ExcludesListMatcher.o SearchPath.o DataSourceImager.o IVTDataSource.o BootImageGenerator.o ConversionController.o ElftosbAST.o elftosb.o elftosb_lexer.o ElftosbLexer.o elftosb_parser.tab.o EncoreBootImageGenerator.o -lstdc++ -o elftosb /usr/bin/ld: ElftosbAST.o: undefined reference to symbol 'powf@@GLIBC_2.2.5' /usr/bin/ld: note: 'powf@@GLIBC_2.2.5' is defined in DSO /lib64/libm.so.6 so try adding it to the linker command line /lib64/libm.so.6: could not read symbols: Invalid operation collect2: error: ld returned 1 exit status When compiling with gcc and linking against libstdc++, ld uses libc instead of libstdc++. However, libc does not provide all functions libstdc++ does. Indeed, maths functions are provided by libm, not libc. Thus, elftosb should either: - use gcc and link against libc and libm; - or use g++ and link against libstdc++. Because elftosb is written in C++, this patch implement the sencond option, using g++ and linking against libstdc++. Signed-off-by: Samuel Martin --- Index: host-elftosb-10.12.01/makefile.rules =================================================================== --- host-elftosb-10.12.01.orig/makefile.rules 2012-06-09 21:12:23.557526100 +0200 +++ host-elftosb-10.12.01/makefile.rules 2012-06-09 21:15:21.659894571 +0200 @@ -15,6 +15,8 @@ # UNAMES is going to be set to either "Linux" or "CYGWIN_NT-5.1" UNAMES = $(shell uname -s) +CXX ?= g++ + #******************************************************************************* # Directories @@ -37,9 +39,9 @@ #******************************************************************************* # Build flags -# gcc Compiler flags +# Compiler flags # -g : Produce debugging information. -CFLAGS = -g $(INC_PATH) -D${UNAMES} +CXXFLAGS = -g $(INC_PATH) -D${UNAMES} #******************************************************************************* # File lists @@ -137,13 +139,13 @@ clean: ${EXEC_FILE_ELFTOSB2} ${EXEC_FILE_SBTOOL} ${EXEC_FILE_KEYGEN} elftosb: ${OBJ_FILES_ELFTOSB2} - gcc ${OBJ_FILES_ELFTOSB2} ${LIBS} -o ${EXEC_FILE_ELFTOSB2} + $(CXX) ${OBJ_FILES_ELFTOSB2} ${LIBS} -o ${EXEC_FILE_ELFTOSB2} sbtool: ${OBJ_FILES_SBTOOL} - gcc ${OBJ_FILES_SBTOOL} ${LIBS} -o ${EXEC_FILE_SBTOOL} + $(CXX) ${OBJ_FILES_SBTOOL} ${LIBS} -o ${EXEC_FILE_SBTOOL} keygen: ${OBJ_FILES_KEYGEN} - gcc ${OBJ_FILES_KEYGEN} ${LIBS} -o ${EXEC_FILE_KEYGEN} + $(CXX) ${OBJ_FILES_KEYGEN} ${LIBS} -o ${EXEC_FILE_KEYGEN} #ifeq ("${UNAMES}", "Linux") @@ -153,10 +155,10 @@ keygen: ${OBJ_FILES_KEYGEN} .SUFFIXES : .c .cpp .c.o : - gcc ${CFLAGS} -c $< + $(CC) ${CXXFLAGS} -c $< .cpp.o : - gcc ${CFLAGS} -c $< + $(CXX) ${CXXFLAGS} -c $< #endif @@ -165,13 +167,13 @@ keygen: ${OBJ_FILES_KEYGEN} %.d: %.c @set -e; \ - $(CC) -MM $(CFLAGS) $< | \ + $(CC) -MM $(CXXFLAGS) $< | \ sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \ [ -s $@ ] || rm -f $@ %.d: %.cpp @set -e; \ - $(CC) -MM $(CFLAGS) $< | \ + $(CXX) -MM $(CXXFLAGS) $< | \ sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \ [ -s $@ ] || rm -f $@ ================================================ FILE: package/elftosb/elftosb.hash ================================================ # From http://repository.timesys.com/buildsources/e/elftosb/elftosb-10.12.01/elftosb-10.12.01.tar.gz.md5sum md5 e8005d606c1e0bb3507c82f6eceb3056 elftosb-10.12.01.tar.gz # locally computed sha256 c861c25936b7bc0cf180023d540f2b0d0f5892edd27fd00efef4b6234c1df27a COPYING ================================================ FILE: package/elftosb/elftosb.mk ================================================ ################################################################################ # # elftosb # ################################################################################ ELFTOSB_VERSION = 10.12.01 ELFTOSB_SITE = http://repository.timesys.com/buildsources/e/elftosb/elftosb-$(ELFTOSB_VERSION) ELFTOSB_LICENSE = BSD-3-Clause ELFTOSB_LICENSE_FILES = COPYING define HOST_ELFTOSB_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) all endef define HOST_ELFTOSB_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/bld/linux/elftosb $(HOST_DIR)/bin/elftosb $(INSTALL) -D -m 0755 $(@D)/bld/linux/keygen $(HOST_DIR)/bin/keygen $(INSTALL) -D -m 0755 $(@D)/bld/linux/sbtool $(HOST_DIR)/bin/sbtool endef $(eval $(host-generic-package)) ================================================ FILE: package/elfutils/0001-Add-a-enable-disable-progs-configure-option.patch ================================================ From 73e4da5ca780196d23db8029dcd28f87a0402711 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Mon, 29 May 2017 23:03:48 +0300 Subject: [PATCH] Add a --{enable,disable}-progs configure option Add a --{enable,disable}-progs configuration option to elfutils. This allows to selectively disable the compilation of the elfutils programs (in which case only the libraries are built and installed). This is useful because the programs are often not needed, and also because building the programs against uClibc causes several issues (lack of obstack_printf() in uClibc for example). Based on the former patch by Thomas Petazzoni. [Vincent: tweak patch for 0.166] [Bernd: rebased patch for 0.177] Signed-off-by: Thomas Petazzoni Signed-off-by: Vicente Olivert Riera Signed-off-by: Bernd Kuhls [Rebased on 0.183] Signed-off-by: Peter Seiderer [Fabrice: don't error out if obstack is not found] Signed-off-by: Fabrice Fontaine --- Makefile.am | 6 +++++- configure.ac | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 9c47afa..edf8dfc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -26,8 +26,12 @@ AM_MAKEFLAGS = --no-print-directory pkginclude_HEADERS = version.h +if ENABLE_PROGS +PROGS_SUBDIR = src +endif + SUBDIRS = config lib libelf libcpu backends libebl libdwelf libdwfl libdw \ - libasm debuginfod src po doc tests + libasm debuginfod $(PROGS_SUBDIR) po doc tests EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \ COPYING COPYING-GPLV2 COPYING-LGPLV3 diff --git a/configure.ac b/configure.ac index d345495..0dd4b1e 100644 --- a/configure.ac +++ b/configure.ac @@ -393,6 +393,12 @@ AS_HELP_STRING([--enable-tests-rpath],[build $ORIGIN-using rpath into tests]), [tests_use_rpath=$enableval], [tests_use_rpath=no]) AM_CONDITIONAL(TESTS_RPATH, test "$tests_use_rpath" = yes) +AC_ARG_ENABLE([progs], + AS_HELP_STRING([--enable-progs], [enable progs]), + enable_progs=$enableval, + enable_progs=yes) +AM_CONDITIONAL(ENABLE_PROGS, test "$enable_progs" = yes) + dnl zlib is mandatory. save_LIBS="$LIBS" LIBS= @@ -579,7 +585,7 @@ saved_LIBS="$LIBS" AC_SEARCH_LIBS([_obstack_free], [obstack]) LIBS="$saved_LIBS" case "$ac_cv_search__obstack_free" in - no) AC_MSG_FAILURE([failed to find _obstack_free]) ;; + no) obstack_LIBS= ;; -l*) obstack_LIBS="$ac_cv_search__obstack_free" ;; *) obstack_LIBS= ;; esac -- 2.30.1 ================================================ FILE: package/elfutils/0002-Really-make-Werror-conditional-to-BUILD_WERROR.patch ================================================ From 2688a0238eaf825d6659c16c012db0c16f07e197 Mon Sep 17 00:00:00 2001 From: Vicente Olivert Riera Date: Mon, 29 May 2017 23:24:42 +0300 Subject: [PATCH] Really make -Werror conditional to BUILD_WERROR Otherwise it will fail with an error message like this one: elf_getarsym.c:290:9: error: 'n' may be used uninitialized in this function [-Werror=maybe-uninitialized] arsym[n].as_name = NULL; ^ cc1: all warnings being treated as errors [Vincent: tweak patch for 0.166] [Bernd: rebased patch for 0.177] Signed-off-by: "Yann E. MORIN" Signed-off-by: Vicente Olivert Riera Signed-off-by: Bernd Kuhls --- config/eu.am | 1 - 1 file changed, 1 deletion(-) diff --git a/config/eu.am b/config/eu.am index c2cc349ce876..99b368e09060 100644 --- a/config/eu.am +++ b/config/eu.am @@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ -Wold-style-definition -Wstrict-prototypes -Wtrampolines \ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ - $(if $($(*F)_no_Werror),,-Werror) \ $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ -- 2.17.1 ================================================ FILE: package/elfutils/Config.in ================================================ comment "elfutils needs a uClibc or glibc toolchain w/ wchar, dynamic library, threads" depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS \ || !BR2_TOOLCHAIN_HAS_THREADS \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) config BR2_PACKAGE_ELFUTILS bool "elfutils" depends on BR2_USE_WCHAR depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS # Only glibc and uClibc implement the myriad of required GNUisms depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_ZLIB select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC select BR2_PACKAGE_MUSL_FTS if !BR2_TOOLCHAIN_USES_GLIBC help Libraries/utilities to handle ELF objects (drop in replacement for libelf). Note that this option only installs the libraries, and not the programs. https://sourceware.org/elfutils/ if BR2_PACKAGE_ELFUTILS config BR2_PACKAGE_ELFUTILS_PROGS bool "Install programs" depends on BR2_TOOLCHAIN_USES_GLIBC help This option tells elfutils to not only install the libelf libraries, but also the elfutils programs. endif ================================================ FILE: package/elfutils/elfutils.hash ================================================ # From https://sourceware.org/elfutils/ftp/0.184/sha512.sum sha512 5920c354edd6b28bb7e713d674bf6f2221e8ee91b90d582de39b1f45446aea1e7e3d4b6671024c391675b5e7530fe952c1320d730bb625c02d4c647ceb938bc8 elfutils-0.184.tar.bz2 # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING-GPLV2 sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING-LGPLV3 ================================================ FILE: package/elfutils/elfutils.mk ================================================ ################################################################################ # # elfutils # ################################################################################ ELFUTILS_VERSION = 0.184 ELFUTILS_SOURCE = elfutils-$(ELFUTILS_VERSION).tar.bz2 ELFUTILS_SITE = https://sourceware.org/elfutils/ftp/$(ELFUTILS_VERSION) ELFUTILS_INSTALL_STAGING = YES ELFUTILS_LICENSE = GPL-2.0+ or LGPL-3.0+ (library) ELFUTILS_LICENSE_FILES = COPYING COPYING-GPLV2 COPYING-LGPLV3 ELFUTILS_CPE_ID_VENDOR = elfutils_project ELFUTILS_DEPENDENCIES = host-pkgconf zlib $(TARGET_NLS_DEPENDENCIES) HOST_ELFUTILS_DEPENDENCIES = host-pkgconf host-zlib host-bzip2 host-xz # We patch configure.ac ELFUTILS_AUTORECONF = YES HOST_ELFUTILS_AUTORECONF = YES # Pass a custom program prefix to avoid a naming conflict between # elfutils binaries and binutils binaries. ELFUTILS_CONF_OPTS += \ --program-prefix="eu-" HOST_ELFUTILS_CONF_OPTS = \ --with-bzlib \ --with-lzma \ --without-zstd \ --disable-progs # 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_CONF_ENV += \ CFLAGS="$(ELFUTILS_CFLAGS)" \ CPPFLAGS="$(ELFUTILS_CPPFLAGS)" ELFUTILS_LDFLAGS = $(TARGET_LDFLAGS) \ $(TARGET_NLS_LIBS) ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) ELFUTILS_LDFLAGS += -latomic endif ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),) ELFUTILS_DEPENDENCIES += musl-fts ELFUTILS_LDFLAGS += -lfts endif # disable for now, needs "distro" support ELFUTILS_CONF_OPTS += --disable-libdebuginfod --disable-debuginfod HOST_ELFUTILS_CONF_OPTS += --disable-libdebuginfod --disable-debuginfod ELFUTILS_CONF_ENV += \ LDFLAGS="$(ELFUTILS_LDFLAGS)" ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) ELFUTILS_DEPENDENCIES += argp-standalone ELFUTILS_CONF_OPTS += --disable-symbol-versioning endif ifeq ($(BR2_PACKAGE_BZIP2),y) ELFUTILS_DEPENDENCIES += bzip2 ELFUTILS_CONF_OPTS += --with-bzlib else ELFUTILS_CONF_OPTS += --without-bzlib endif ifeq ($(BR2_PACKAGE_XZ),y) ELFUTILS_DEPENDENCIES += xz ELFUTILS_CONF_OPTS += --with-lzma else ELFUTILS_CONF_OPTS += --without-lzma endif ifeq ($(BR2_PACKAGE_ZSTD),y) ELFUTILS_DEPENDENCIES += zstd ELFUTILS_CONF_OPTS += --with-zstd else ELFUTILS_CONF_OPTS += --without-zstd endif ifeq ($(BR2_PACKAGE_ELFUTILS_PROGS),y) ELFUTILS_CONF_OPTS += --enable-progs ELFUTILS_LICENSE += , GPL-3.0+ (programs) ELFUTILS_LICENSE_FILES += COPYING else ELFUTILS_CONF_OPTS += --disable-progs endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/elixir/elixir.hash ================================================ # Computed locally sha256 f3465d8a8e386f3e74831bf9594ee39e6dfde6aa430fe9260844cfe46aa10139 elixir-1.9.4.tar.gz sha256 a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 LICENSE ================================================ FILE: package/elixir/elixir.mk ================================================ ################################################################################ # # elixir # ################################################################################ ELIXIR_VERSION = 1.9.4 ELIXIR_SITE = $(call github,elixir-lang,elixir,v$(ELIXIR_VERSION)) ELIXIR_LICENSE = Apache-2.0 ELIXIR_LICENSE_FILES = LICENSE HOST_ELIXIR_DEPENDENCIES = host-erlang define HOST_ELIXIR_BUILD_CMDS $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) compile endef define HOST_ELIXIR_INSTALL_CMDS $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) PREFIX="$(HOST_DIR)" -C $(@D) install endef $(eval $(host-generic-package)) ================================================ FILE: package/ell/Config.in ================================================ config BR2_PACKAGE_ELL bool "ell" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 depends on BR2_USE_WCHAR help Embedded Linux library (ell) https://01.org/ell comment "ell needs a toolchain w/ wchar, headers >= 4.12" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 ================================================ FILE: package/ell/ell.hash ================================================ # From https://mirrors.edge.kernel.org/pub/linux/libs/ell/sha256sums.asc sha256 41a6f8fa4d285b52cb7a5a87bda3e7370ecaac02d94aaa7ec1a23f0480b8bc3f ell-0.44.tar.xz # License files sha256 ec60b993835e2c6b79e6d9226345f4e614e686eb57dc13b6420c15a33a8996e5 COPYING ================================================ FILE: package/ell/ell.mk ================================================ ################################################################################ # # ell # ################################################################################ ELL_VERSION = 0.44 ELL_SOURCE = ell-$(ELL_VERSION).tar.xz ELL_SITE = $(BR2_KERNEL_MIRROR)/linux/libs/ell ELL_LICENSE = LGPL-2.1+ ELL_LICENSE_FILES = COPYING ELL_INSTALL_STAGING = YES ELL_DEPENDENCIES = host-pkgconf # disable ell/glib main loop example ELL_CONF_OPTS = --disable-glib $(eval $(autotools-package)) ================================================ FILE: package/emlog/Config.in ================================================ config BR2_PACKAGE_EMLOG bool "emlog" depends on BR2_LINUX_KERNEL help emlog is a Linux kernel module that makes it easy to access the most recent (and only the most recent) output from a process. It works just like "tail -f" on a log file, except that the storage required never grows. This can be useful in embedded systems where there isn't enough memory or disk space for keeping complete log files, but the most recent debugging messages are sometimes needed (e.g., after an error is observed). https://github.com/nicupavel/emlog comment "emlog needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL ================================================ FILE: package/emlog/emlog.hash ================================================ # Locally calculated sha256 76082cf981b0865c8a1b300d4641c790a6556461901bbb63700df38300277271 emlog-0.70.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/emlog/emlog.mk ================================================ ################################################################################ # # emlog # ################################################################################ EMLOG_VERSION = 0.70 EMLOG_SITE = $(call github,nicupavel,emlog,emlog-$(EMLOG_VERSION)) EMLOG_LICENSE = GPL-2.0 EMLOG_LICENSE_FILES = COPYING # CVE-2019-16868 and CVE-2019-17073 are misclassified (by our CVE tracker) as # affecting emlog, while in fact it affects http://www.emlog.net. EMLOG_IGNORE_CVES += CVE-2019-16868 CVE-2019-17073 define EMLOG_BUILD_CMDS $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) nbcat endef # make install tries to strip, so install manually. define EMLOG_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/nbcat $(TARGET_DIR)/usr/bin/nbcat endef $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/empty/0001-respect-LDFLAGS.patch ================================================ downloaded from http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-misc/empty/files/empty-respect-LDFLAGS.patch?view=markup Reported on the Gentoo bug tracker https://bugs.gentoo.org/show_bug.cgi?id=429664 and reported upstream https://sourceforge.net/tracker/?func=detail&aid=3554236&group_id=136798&atid=736886 Signed-off-by: Bernd Kuhls --- empty-0.6.18b/Makefile +++ empty-0.6.18b/Makefile @@ -16,7 +16,7 @@ PREFIX = /usr/local all: - ${CC} ${CFLAGS} -Wall ${LIBS} -o empty empty.c + ${CC} ${CFLAGS} ${LDFLAGS} empty.c ${LIBS} -o empty FreeBSD: all NetBSD: all ================================================ FILE: package/empty/Config.in ================================================ config BR2_PACKAGE_EMPTY bool "empty" depends on BR2_USE_MMU # uses fork() help Run processes and applications under pseudo-terminal (PTY) sessions. http://empty.sourceforge.net/ ================================================ FILE: package/empty/empty.hash ================================================ # Locally computed: sha256 2fccd0faa1b3deaec1add679cbde3f34250e45872ad5df463badd4bb4edeb797 empty-0.6.21b.tgz sha256 f01dbe3c624084900b9df1393d9062518b2bc0487acd6a3300ebd6e71352d112 COPYRIGHT ================================================ FILE: package/empty/empty.mk ================================================ ################################################################################ # # empty # ################################################################################ EMPTY_VERSION = 0.6.21b EMPTY_SOURCE = empty-$(EMPTY_VERSION).tgz EMPTY_SITE = http://downloads.sourceforge.net/project/empty/empty/empty-$(EMPTY_VERSION) EMPTY_LICENSE = BSD-3-Clause EMPTY_LICENSE_FILES = COPYRIGHT EMPTY_STRIP_COMPONENTS = 0 define EMPTY_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all endef define EMPTY_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/empty $(TARGET_DIR)/usr/bin/empty endef $(eval $(generic-package)) ================================================ FILE: package/enchant/Config.in ================================================ config BR2_PACKAGE_ENCHANT bool "enchant" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 select BR2_PACKAGE_LIBGLIB2 help Enchant is a spell-checking library that provides a consistent API across a number of spell-checking system backends. https://abiword.github.io/enchant/ comment "enchant needs a toolchain w/ C++, threads, wchar" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/enchant/enchant.hash ================================================ # locally computed sha256 3b0f2215578115f28e2a6aa549b35128600394304bd79d6f28b0d3b3d6f46c03 enchant-2.2.15.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB ================================================ FILE: package/enchant/enchant.mk ================================================ ################################################################################ # # enchant # ################################################################################ ENCHANT_VERSION = 2.2.15 ENCHANT_SITE = \ https://github.com/AbiWord/enchant/releases/download/v$(ENCHANT_VERSION) ENCHANT_INSTALL_STAGING = YES ENCHANT_DEPENDENCIES = libglib2 host-pkgconf ENCHANT_LICENSE = LGPL-2.1+ ENCHANT_LICENSE_FILES = COPYING.LIB $(eval $(autotools-package)) ================================================ FILE: package/enet/Config.in ================================================ config BR2_PACKAGE_ENET bool "enet" help ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol).The primary feature it provides is optional reliable, in-order delivery of packets. ENet omits certain higher level networking features such as authentication, lobbying, server discovery, encryption, or other similar tasks that are particularly application specific so that the library remains flexible, portable, and easily embeddable. http://enet.bespin.org ================================================ FILE: package/enet/enet.hash ================================================ # Locally computed sha256 a38f0f194555d558533b8b15c0c478e946310022d0ec7b34334e19e4574dcedc enet-1.3.17.tar.gz sha256 77f94e3be39938801163844b8bf9a4f12badcc0da136e9886e7da14a816d74d3 LICENSE ================================================ FILE: package/enet/enet.mk ================================================ ################################################################################ # # enet # ################################################################################ ENET_VERSION = 1.3.17 ENET_SITE = http://enet.bespin.org/download ENET_LICENSE = MIT ENET_LICENSE_FILES = LICENSE ENET_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/enlightenment/Config.in ================================================ config BR2_PACKAGE_ENLIGHTENMENT bool "enlightenment" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # efl svg -> librsvg # libevas-generic-loaders-svg -> librsvg -> glib2 / pango depends on BR2_USE_WCHAR depends on BR2_INSTALL_LIBSTDCPP # libedbus -> dbus # libedbus -> glib2, libevas depends on BR2_TOOLCHAIN_HAS_THREADS # libedbus -> dbus, efl libraries depends on BR2_USE_MMU depends on BR2_PACKAGE_EFL depends on BR2_PACKAGE_HAS_UDEV # efl (eeze) -> libudev depends on BR2_PACKAGE_XORG7 # libevas-generic-loaders-svg -> librsvg -> pango -> harfbuzz depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 select BR2_PACKAGE_EFL_X_XLIB select BR2_PACKAGE_EFL_EEZE select BR2_PACKAGE_EFL_JPEG # needed at runtime by enlightenment_start select BR2_PACKAGE_EFL_SVG select BR2_PACKAGE_XCB_UTIL_KEYSYMS help Enlightenment, also known simply as E, is a stacking window manager for the X Window System which can be used alone or in conjunction with a desktop environment such as GNOME or KDE. Enlightenment can be used as a substitute for a full desktop environment. http://www.enlightenment.org/ comment "enlightenment needs udev /dev management and a toolchain w/ wchar, C++, threads, gcc >= 4.8" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_EFL && BR2_PACKAGE_XORG7 && BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \ !BR2_PACKAGE_HAS_UDEV depends on BR2_TOOLCHAIN_HAS_SYNC_4 ================================================ FILE: package/enlightenment/enlightenment.hash ================================================ # From https://www.enlightenment.org/news/e24.2 sha256 be18e2f18d6c0b058f633e769863d3cbc4c07b629058ae670dec74cd7906dff1 enlightenment-0.24.2.tar.xz sha256 17dda7902d3e1a743f91cf2545f474be93f612768a9e9022593d788ecc83935a COPYING sha256 f4ba47ef8f4ff588202e721ab10f0208a3fa678147e7f928e6b2820f2e646e13 src/modules/wl_weekeyboard/themes/default/fonts/LICENSE.txt ================================================ FILE: package/enlightenment/enlightenment.mk ================================================ ################################################################################ # # enlightenment # ################################################################################ ENLIGHTENMENT_VERSION = 0.24.2 ENLIGHTENMENT_SOURCE = enlightenment-$(ENLIGHTENMENT_VERSION).tar.xz ENLIGHTENMENT_SITE = http://download.enlightenment.org/rel/apps/enlightenment ENLIGHTENMENT_LICENSE = BSD-2-Clause, OFL-1.1 (font) ENLIGHTENMENT_LICENSE_FILES = COPYING \ src/modules/wl_weekeyboard/themes/default/fonts/LICENSE.txt ENLIGHTENMENT_CPE_ID_VENDOR = enlightenment ENLIGHTENMENT_DEPENDENCIES = \ host-pkgconf \ host-efl \ efl \ xcb-util-keysyms ENLIGHTENMENT_CONF_OPTS = \ -Dedje-cc=$(HOST_DIR)/bin/edje_cc \ -Deet=$(HOST_DIR)/bin/eet \ -Deldbus-codegen=$(HOST_DIR)/bin/eldbus-codegen \ -Dpam=false \ -Dpolkit=false # enlightenment.pc and /usr/lib/enlightenment/modules/*.so ENLIGHTENMENT_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_SYSTEMD),y) ENLIGHTENMENT_CONF_OPTS += -Dsystemd=true ENLIGHTENMENT_DEPENDENCIES += systemd else ENLIGHTENMENT_CONF_OPTS += -Dsystemd=false endif # alsa backend needs mixer support ifeq ($(BR2_PACKAGE_ALSA_LIB)$(BR2_PACKAGE_ALSA_LIB_MIXER),yy) ENLIGHTENMENT_CONF_OPTS += -Dmixer=true ENLIGHTENMENT_DEPENDENCIES += alsa-lib else ENLIGHTENMENT_CONF_OPTS += -Dmixer=false endif ifeq ($(BR2_PACKAGE_XKEYBOARD_CONFIG),y) ENLIGHTENMENT_DEPENDENCIES += xkeyboard-config endif define ENLIGHTENMENT_REMOVE_DOCUMENTATION rm -rf $(TARGET_DIR)/usr/share/enlightenment/doc/ rm -f $(TARGET_DIR)/usr/share/enlightenment/COPYING rm -f $(TARGET_DIR)/usr/share/enlightenment/AUTHORS endef ENLIGHTENMENT_POST_INSTALL_TARGET_HOOKS += ENLIGHTENMENT_REMOVE_DOCUMENTATION $(eval $(meson-package)) ================================================ FILE: package/enscript/Config.in ================================================ config BR2_PACKAGE_ENSCRIPT bool "enscript" help GNU Enscript is a free replacement for Adobe's enscript program. GNU Enscript converts ASCII files to PostScript, HTML, or RTF and stores generated output to a file or sends it directly to the printer. It includes features for `pretty-printing' (language-sensitive code highlighting) in several programming languages. http://www.gnu.org/software/enscript ================================================ FILE: package/enscript/enscript.hash ================================================ # Locally calculated after checking pgp signature sha256 6d56bada6934d055b34b6c90399aa85975e66457ac5bf513427ae7fc77f5c0bb enscript-1.6.6.tar.gz # Locally computed sha256 fc82ca8b6fdb18d4e3e85cfd8ab58d1bcd3f1b29abe782895abd91d64763f8e7 COPYING ================================================ FILE: package/enscript/enscript.mk ================================================ ################################################################################ # # enscript # ################################################################################ ENSCRIPT_VERSION = 1.6.6 ENSCRIPT_SITE = $(BR2_GNU_MIRROR)/enscript ENSCRIPT_LICENSE = GPL-3.0+ ENSCRIPT_LICENSE_FILES = COPYING ENSCRIPT_CPE_ID_VENDOR = gnu # Enable pthread threads if toolchain supports threads ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) ENSCRIPT_CONF_OPTS += --enable-threads=pth else ENSCRIPT_CONF_OPTS += --disable-threads endif $(eval $(autotools-package)) ================================================ FILE: package/environment-setup/Config.in.host ================================================ config BR2_PACKAGE_HOST_ENVIRONMENT_SETUP bool "host environment-setup" help Install an helper script to setup a build environment based on Buildroot. It's useful when you export an sdk and want to use Buildroot to build an external project. ================================================ FILE: package/environment-setup/environment-setup ================================================ cat <<'EOF' _ _ _ _ _ | |__ _ _(_) | __| |_ __ ___ ___ | |_ | '_ \| | | | | |/ _` | '__/ _ \ / _ \| __| | |_) | |_| | | | (_| | | | (_) | (_) | |_ |_.__/ \__,_|_|_|\__,_|_| \___/ \___/ \__| Making embedded Linux easy! Some tips: * PATH now contains the SDK utilities * Standard autotools variables (CC, LD, CFLAGS) are exported * Kernel compilation variables (ARCH, CROSS_COMPILE, KERNELDIR) are exported * To configure do "./configure $CONFIGURE_FLAGS" or use the "configure" alias * To build CMake-based projects, use the "cmake" alias EOF if [ x"$BASH_VERSION" != x"" ] ; then SDK_PATH=$(dirname $(realpath "${BASH_SOURCE[0]}")) elif [ x"$ZSH_VERSION" != x"" ] ; then SDK_PATH=$(dirname $(realpath $0)) else echo "unsupported shell" fi ================================================ FILE: package/environment-setup/environment-setup.mk ================================================ ################################################################################ # # environment-setup # ################################################################################ ENVIRONMENT_SETUP_FILE = $(HOST_DIR)/environment-setup define HOST_ENVIRONMENT_SETUP_INSTALL_CMDS cp package/environment-setup/environment-setup $(ENVIRONMENT_SETUP_FILE) for var in $(TARGET_CONFIGURE_OPTS); do \ printf "export \"$$var\"\n" >> $(ENVIRONMENT_SETUP_FILE); \ done printf "export \"ARCH=$(KERNEL_ARCH)\"\n" >> $(ENVIRONMENT_SETUP_FILE) printf "export \"CROSS_COMPILE=$(TARGET_CROSS)\"\n" >> $(ENVIRONMENT_SETUP_FILE) printf "export \"CONFIGURE_FLAGS=--target=$(GNU_TARGET_NAME) \ --host=$(GNU_TARGET_NAME) \ --build=$(GNU_HOST_NAME) \ --prefix=/usr \ --exec-prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --program-prefix=\"\n" >> $(ENVIRONMENT_SETUP_FILE) printf "alias configure=\"./configure \$${CONFIGURE_FLAGS}\"\n" \ >> $(ENVIRONMENT_SETUP_FILE) printf "alias cmake=\"cmake \ -DCMAKE_TOOLCHAIN_FILE=$(HOST_DIR)/share/buildroot/toolchainfile.cmake \ -DCMAKE_INSTALL_PREFIX=/usr\"\n" >> $(ENVIRONMENT_SETUP_FILE) $(SED) 's%$(HOST_DIR)/bin/%%g' \ -e 's%$(HOST_DIR)%\$$SDK_PATH%g' \ -e '/^export "PATH=/c\' \ $(ENVIRONMENT_SETUP_FILE) printf "export \"PATH=\$$SDK_PATH/bin:\$$SDK_PATH/sbin:\$$PATH\"\n" \ >> $(ENVIRONMENT_SETUP_FILE) $(if $(BR2_LINUX_KERNEL),\ printf "export \"KERNELDIR=$(LINUX_BUILDDIR)\"\n" \ >> $(ENVIRONMENT_SETUP_FILE),) endef $(eval $(host-generic-package)) ================================================ FILE: package/erlang/0001-erts-ethread-instruct-libatomic_ops-we-do-require-CA.patch ================================================ From 439fa2eae78a8900bda120072335be19d626498c Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 28 Dec 2014 23:39:40 +0100 Subject: [PATCH] erts/ethread: instruct libatomic_ops we do require CAS We do require compare-and-swap (CAS), so we must instruct libatomic_ops to provide it, even if the architecture does not have instructions for it. For example, on ARM, LDREX is required for fast CAS. But LDREX is only available on ARMv6, so by default libatomic_ops will not have CAS for anything below, like ARMv5. But ARMv5 is always UP, so using an emulated CAS (that is signal-asyn-safe) is still possible (albeit much slower). Tell libatomic_ops to provide CAS, even if the hardware is not capable of it, by using emulated CAS, as per libatomic_ops dosc: https://github.com/ivmai/libatomic_ops/blob/master/doc/README.txt#L28 If this is included after defining AO_REQUIRE_CAS, then the package will make an attempt to emulate compare-and-swap in a way that (at least on Linux) should still be async-signal-safe. Thanks go to Thomas for all this insight! :-) Thanks go to Frank for reporting the issue! :-) Signed-off-by: "Yann E. MORIN" Cc: Thomas Petazzoni Cc: Frank Hunleth --- erts/include/internal/libatomic_ops/ethread.h | 1 + 1 file changed, 1 insertion(+) diff --git a/erts/include/internal/libatomic_ops/ethread.h b/erts/include/internal/libatomic_ops/ethread.h index d65ee19..71d3598 100644 --- a/erts/include/internal/libatomic_ops/ethread.h +++ b/erts/include/internal/libatomic_ops/ethread.h @@ -35,6 +35,7 @@ #define ETHR_NATIVE_IMPL__ "libatomic_ops" +#define AO_REQUIRE_CAS #include "atomic_ops.h" #include "ethr_membar.h" #include "ethr_atomic.h" diff --git a/erts/aclocal.m4 b/erts/aclocal.m4 index d65ee19..71d3598 100644 --- a/erts/aclocal.m4 +++ b/erts/aclocal.m4 @@ -1414,7 +1414,8 @@ fi;; esac ethr_have_libatomic_ops=no - AC_TRY_LINK([#include "atomic_ops.h"], + AC_TRY_LINK([#define AO_REQUIRE_CAS + #include "atomic_ops.h"], [ volatile AO_t x; AO_t y; @@ -1455,6 +1455,7 @@ AC_CHECK_SIZEOF(AO_t, , [ #include + #define AO_REQUIRE_CAS #include "atomic_ops.h" ]) AC_DEFINE_UNQUOTED(ETHR_SIZEOF_AO_T, $ac_cv_sizeof_AO_t, [Define to the size of AO_t if libatomic_ops is used]) -- 1.9.1 ================================================ FILE: package/erlang/0002-erts-emulator-reorder-inclued-headers-paths.patch ================================================ From 85a3e5b4f65e5284e59dcdd90e92ea7d50ef6907 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 8 Feb 2015 17:23:13 +0100 Subject: [PATCH] erts/emulator: reorder inclued headers paths If the Perl Compatible Regular Expressions is installed on the host and the path to the headers is added to the CFLAGS, the pcre.h from the host is used instead of the one provided by erlang. Erlang use an old version of this file which is incompatible with the upstream one. Move INCLUDES before CFLAGS to use pcre.h from erlang. http://autobuild.buildroot.net/results/cbd/cbd8b54eef535f19d7d400fd269af1b3571d6143/build-end.log Signed-off-by: Romain Naour [Bernd: rebased for erlang-21.0] Signed-off-by: Bernd Kuhls --- erts/emulator/Makefile.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erts/emulator/Makefile.in b/erts/emulator/Makefile.in index 7145824..d079487 100644 --- a/erts/emulator/Makefile.in +++ b/erts/emulator/Makefile.in @@ -712,7 +712,7 @@ # Usually the same as the default rule, but certain platforms (e.g. win32) mix # different compilers $(OBJDIR)/beam_emu.o: beam/beam_emu.c - $(V_EMU_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_EMU_CC) $(INCLUDES) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) -c $< -o $@ $(OBJDIR)/beam_emu.S: beam/beam_emu.c $(V_EMU_CC) -S -fverbose-asm $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ @@ -765,7 +765,7 @@ # General targets # $(OBJDIR)/%.o: beam/%.c - $(V_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) $(INCLUDES) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) -c $< -o $@ $(OBJDIR)/%.o: $(TARGET)/%.c $(V_CC) $(CFLAGS) $(INCLUDES) -Idrivers/common -c $< -o $@ ================================================ FILE: package/erlang/Config.in ================================================ config BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS bool default y if BR2_HOSTARCH = "x86_64" default y if BR2_HOSTARCH = "x86" config BR2_PACKAGE_ERLANG_ARCH_SUPPORTS bool # see HOWTO/INSTALL.md for Erlang's supported platforms # when using its native atomic ops implementation or gcc's # __atomic_* builtins default y if BR2_i386 || BR2_x86_64 || BR2_powerpc || \ BR2_sparc_v9 || BR2_arm || BR2_aarch64 || BR2_mipsel || \ BR2_RISCV_64 # erlang needs host-erlang depends on BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS comment "erlang needs a toolchain w/ dynamic library, threads" depends on BR2_USE_MMU # fork() depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_ERLANG bool "erlang" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS select BR2_PACKAGE_ZLIB help Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance. http://www.erlang.org if BR2_PACKAGE_ERLANG config BR2_PACKAGE_ERLANG_MEGACO bool "install megaco application" help The Megaco application is a framework for building applications on top of the Megaco/H.248 protocol. It is approximately 14MB in size so if you do not need it then it is recommended not to enable it. endif # BR2_PACKAGE_ERLANG ================================================ FILE: package/erlang/erlang.hash ================================================ # md5 from http://www.erlang.org/download/MD5, sha256 locally computed md5 d6660705f01afbe3466c0a5de21ab361 otp_src_23.3.tar.gz sha256 3c888d8f46124e134b75a9ba5d845f079020b7198ed2de64411e183d07e9002a otp_src_23.3.tar.gz sha256 809fa1ed21450f59827d1e9aec720bbc4b687434fa22283c6cb5dd82a47ab9c0 LICENSE.txt ================================================ FILE: package/erlang/erlang.mk ================================================ ################################################################################ # # erlang # ################################################################################ # See note below when updating Erlang ERLANG_VERSION = 23.3 ERLANG_SITE = http://www.erlang.org/download ERLANG_SOURCE = otp_src_$(ERLANG_VERSION).tar.gz ERLANG_DEPENDENCIES = host-erlang ERLANG_LICENSE = Apache-2.0 ERLANG_LICENSE_FILES = LICENSE.txt ERLANG_CPE_ID_VENDOR = erlang ERLANG_CPE_ID_PRODUCT = erlang\/otp ERLANG_INSTALL_STAGING = YES # windows specific issue: https://nvd.nist.gov/vuln/detail/CVE-2021-29221 ERLANG_IGNORE_CVES += CVE-2021-29221 # Remove the leftover deps directory from the ssl app # See https://bugs.erlang.org/browse/ERL-1168 define ERLANG_REMOVE_SSL_DEPS rm -rf $(@D)/lib/ssl/src/deps endef ERLANG_POST_PATCH_HOOKS += ERLANG_REMOVE_SSL_DEPS # Patched erts/aclocal.m4 define ERLANG_RUN_AUTOCONF cd $(@D) && PATH=$(BR_PATH) ./otp_build autoconf endef ERLANG_DEPENDENCIES += host-autoconf ERLANG_PRE_CONFIGURE_HOOKS += ERLANG_RUN_AUTOCONF HOST_ERLANG_DEPENDENCIES += host-autoconf HOST_ERLANG_PRE_CONFIGURE_HOOKS += ERLANG_RUN_AUTOCONF # 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 = 4.0.2 # The configure checks for these functions fail incorrectly ERLANG_CONF_ENV = ac_cv_func_isnan=yes ac_cv_func_isinf=yes # Set erl_xcomp variables. See xcomp/erl-xcomp.conf.template # for documentation. ERLANG_CONF_ENV += erl_xcomp_sysroot=$(STAGING_DIR) ERLANG_CONF_OPTS = --without-javac # Force ERL_TOP to the downloaded source directory. This prevents # Erlang's configure script from inadvertantly using files from # a version of Erlang installed on the host. ERLANG_CONF_ENV += ERL_TOP=$(@D) HOST_ERLANG_CONF_ENV += ERL_TOP=$(@D) # 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 HOST_ERLANG_CONF_OPTS = --without-javac --with-ssl=$(HOST_DIR) HOST_ERLANG_CONF_OPTS += --without-termcap ifeq ($(BR2_PACKAGE_NCURSES),y) ERLANG_CONF_OPTS += --with-termcap ERLANG_DEPENDENCIES += ncurses else ERLANG_CONF_OPTS += --without-termcap endif ifeq ($(BR2_PACKAGE_OPENSSL),y) ERLANG_CONF_OPTS += --with-ssl ERLANG_DEPENDENCIES += openssl else ERLANG_CONF_OPTS += --without-ssl endif ifeq ($(BR2_PACKAGE_UNIXODBC),y) ERLANG_DEPENDENCIES += unixodbc ERLANG_CONF_OPTS += --with-odbc else ERLANG_CONF_OPTS += --without-odbc endif # Always use Buildroot's zlib ERLANG_CONF_OPTS += --disable-builtin-zlib ERLANG_DEPENDENCIES += zlib # 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_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 \ rm -rf $(TARGET_DIR)/usr/lib/erlang/lib/$${package}-*; \ done endef 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)) ================================================ FILE: package/erlang-base64url/Config.in ================================================ config BR2_PACKAGE_ERLANG_BASE64URL bool "erlang-base64url" help URL safe base64-compatible codec. https://github.com/dvv/base64url ================================================ FILE: package/erlang-base64url/erlang-base64url.hash ================================================ # Locally calculated sha256 7ef7210effd25ac1f82f190fcfaef53e49d7bc40bb94112c4aa07266c32a851b erlang-base64url-1.0.1.tar.gz sha256 d59dff2fa4c39f05188ee533fbf06479eef1b47f8cad6353f8ab3726cc6923bc LICENSE.txt ================================================ FILE: package/erlang-base64url/erlang-base64url.mk ================================================ ################################################################################ # # erlang-base64url # ################################################################################ ERLANG_BASE64URL_VERSION = 1.0.1 ERLANG_BASE64URL_SITE = $(call github,dvv,base64url,$(ERLANG_BASE64URL_VERSION)) ERLANG_BASE64URL_LICENSE = MIT ERLANG_BASE64URL_LICENSE_FILES = LICENSE.txt $(eval $(rebar-package)) ================================================ FILE: package/erlang-eimp/Config.in ================================================ config BR2_PACKAGE_ERLANG_EIMP bool "erlang-eimp" select BR2_PACKAGE_ERLANG_P1_UTILS select BR2_PACKAGE_GD select BR2_PACKAGE_GD_WEBPNG select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_WEBP help Erlang Image Manipulation Process https://github.com/processone/eimp ================================================ FILE: package/erlang-eimp/erlang-eimp.hash ================================================ # Locally calculated sha256 1a529fa6e8264d3cad43861db417a1e841b28c0601aa847857fa0d6a81935922 erlang-eimp-1.0.17.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/erlang-eimp/erlang-eimp.mk ================================================ ################################################################################ # # erlang-eimp # ################################################################################ ERLANG_EIMP_VERSION = 1.0.17 ERLANG_EIMP_SITE = $(call github,processone,eimp,$(ERLANG_EIMP_VERSION)) ERLANG_EIMP_LICENSE = Apache-2.0 ERLANG_EIMP_LICENSE_FILES = LICENSE.txt ERLANG_EIMP_DEPENDENCIES = erlang-p1-utils gd jpeg libpng webp $(eval $(rebar-package)) ================================================ FILE: package/erlang-goldrush/Config.in ================================================ config BR2_PACKAGE_ERLANG_GOLDRUSH bool "erlang-goldrush" help Goldrush is a small Erlang app that provides fast event stream processing. https://github.com/DeadZen/goldrush ================================================ FILE: package/erlang-goldrush/erlang-goldrush.hash ================================================ # Locally calculated sha256 6fb8ac6345d940396ecf89d4ce6b9b809039f336d85d7a54239e85106a807612 erlang-goldrush-0.1.9.tar.gz sha256 335dd315c1bf12bd9bde777666c45e92652c9fe633101b12fc6f927b88433b6f LICENSE ================================================ FILE: package/erlang-goldrush/erlang-goldrush.mk ================================================ ################################################################################ # # erlang-goldrush # ################################################################################ ERLANG_GOLDRUSH_VERSION = 0.1.9 ERLANG_GOLDRUSH_SITE = $(call github,DeadZen,goldrush,$(ERLANG_GOLDRUSH_VERSION)) ERLANG_GOLDRUSH_LICENSE = ISC ERLANG_GOLDRUSH_LICENSE_FILES = LICENSE ERLANG_GOLDRUSH_INSTALL_STAGING = YES $(eval $(rebar-package)) $(eval $(host-rebar-package)) ================================================ FILE: package/erlang-idna/Config.in ================================================ config BR2_PACKAGE_ERLANG_IDNA bool "erlang-idna" help A pure Erlang IDNA implementation that follows RFC5891. https://github.com/benoitc/erlang-idna ================================================ FILE: package/erlang-idna/erlang-idna.hash ================================================ # Locally calculated sha256 d57e20ee88018ff0431e0275e91ada5915782870c9981fc798bcd05589031d6f erlang-idna-6.0.0.tar.gz sha256 95f5c9410a95332b0833c4606028ee00008cd8c497336e230df3144d1a720bda LICENSE ================================================ FILE: package/erlang-idna/erlang-idna.mk ================================================ ################################################################################ # # erlang-idna # ################################################################################ ERLANG_IDNA_VERSION = 6.0.0 ERLANG_IDNA_SITE = $(call github,benoitc,erlang-idna,$(ERLANG_IDNA_VERSION)) ERLANG_IDNA_LICENSE = MIT ERLANG_IDNA_LICENSE_FILES = LICENSE $(eval $(rebar-package)) ================================================ FILE: package/erlang-jiffy/Config.in ================================================ comment "erlang-jiffy needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_ERLANG_JIFFY bool "erlang-jiffy" depends on BR2_INSTALL_LIBSTDCPP help JSON NIFs for Erlang. https://github.com/davisp/jiffy ================================================ FILE: package/erlang-jiffy/erlang-jiffy.hash ================================================ # Locally computed sha256 7cf67840c58b8732e12c84c8a3b714774da2601ae5e6a57f286273e25b205516 erlang-jiffy-1.0.6.tar.gz sha256 0fa8afad2f02c08850a16e36fe55376ee19732b3a116a0207f2a73c857777a49 LICENSE ================================================ FILE: package/erlang-jiffy/erlang-jiffy.mk ================================================ ################################################################################ # # erlang-jiffy # ################################################################################ ERLANG_JIFFY_VERSION = 1.0.6 ERLANG_JIFFY_SITE = $(call github,davisp,jiffy,$(ERLANG_JIFFY_VERSION)) ERLANG_JIFFY_LICENSE = MIT (core), \ BSD-3-Clause (Google double conversion library), \ BSD-3-Clause (tests) ERLANG_JIFFY_LICENSE_FILES = LICENSE $(eval $(rebar-package)) ================================================ FILE: package/erlang-jose/Config.in ================================================ config BR2_PACKAGE_ERLANG_JOSE bool "erlang-jose" select BR2_PACKAGE_ERLANG_BASE64URL help JSON Object Signing and Encryption (JOSE) for Erlang and Elixir. https://github.com/potatosalad/erlang-jose ================================================ FILE: package/erlang-jose/erlang-jose.hash ================================================ # Locally calculated sha256 d55a9d3a1697833fed555a21f1aeb2727af88193995cb6ffa945d4b6749d0e8d erlang-jose-1.9.0.tar.gz sha256 6397e2bd9a35a64c1bb798b937071fbe49d90667f717e65c74a0d0fe93d5c1be LICENSE.md ================================================ FILE: package/erlang-jose/erlang-jose.mk ================================================ ################################################################################ # # erlang-jose # ################################################################################ ERLANG_JOSE_VERSION = 1.9.0 ERLANG_JOSE_SITE = $(call github,potatosalad,erlang-jose,$(ERLANG_JOSE_VERSION)) ERLANG_JOSE_LICENSE = MIT ERLANG_JOSE_LICENSE_FILES = LICENSE.md ERLANG_JOSE_DEPENDENCIES = erlang-base64url $(eval $(rebar-package)) ================================================ FILE: package/erlang-lager/Config.in ================================================ config BR2_PACKAGE_ERLANG_LAGER bool "erlang-lager" select BR2_PACKAGE_ERLANG_GOLDRUSH help Lager (as in the beer) is a logging framework for Erlang. Its purpose is to provide a more traditional way to perform logging in an erlang application that plays nicely with traditional UNIX logging tools like logrotate and syslog. https://github.com/basho/lager ================================================ FILE: package/erlang-lager/erlang-lager.hash ================================================ # Locally calculated sha256 c5bb4ba6f918e90d2e6671c3996d72c61f2a589b65c151b3df8011d046362981 erlang-lager-3.6.10.tar.gz sha256 809fa1ed21450f59827d1e9aec720bbc4b687434fa22283c6cb5dd82a47ab9c0 LICENSE ================================================ FILE: package/erlang-lager/erlang-lager.mk ================================================ ################################################################################ # # erlang-lager # ################################################################################ ERLANG_LAGER_VERSION = 3.6.10 ERLANG_LAGER_SITE = $(call github,erlang-lager,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)) ================================================ FILE: package/erlang-p1-acme/0001-rebar.config.script-remove-extra-dependency-to-base6.patch ================================================ From a2422fdf4097d1f5f8c8f88bbe08b9a0f3c35fe6 Mon Sep 17 00:00:00 2001 From: Johan Oudinet Date: Wed, 25 Nov 2020 22:38:22 +0100 Subject: [PATCH] rebar.config.script: remove extra dependency to base64url Signed-off-by: Johan Oudinet --- rebar.config.script | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rebar.config.script b/rebar.config.script index a63895e..41b2970 100644 --- a/rebar.config.script +++ b/rebar.config.script @@ -62,7 +62,7 @@ Cfg2 = case IsRebar3 of [{plugin_dir, filename:join([filename:dirname(SCRIPT),"plugins"])}, {plugins, [override_deps_versions]}] ++ ModCfg(CONFIG, [deps], fun(V) -> - V ++ [{base64url, ".*", {git, "git://github.com/dvv/base64url.git", {tag, "v1.0"}}}] + V end, []) end, -- 2.29.2 ================================================ FILE: package/erlang-p1-acme/Config.in ================================================ config BR2_PACKAGE_ERLANG_P1_ACME bool "erlang-p1-acme" depends on BR2_INSTALL_LIBSTDCPP # erlang-jiffy select BR2_PACKAGE_ERLANG_IDNA select BR2_PACKAGE_ERLANG_JIFFY select BR2_PACKAGE_ERLANG_JOSE select BR2_PACKAGE_ERLANG_P1_YCONF help ACME client library for Erlang. https://github.com/processone/p1_acme comment "erlang-p1-acme needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/erlang-p1-acme/erlang-p1-acme.hash ================================================ # Locally calculated sha256 e17ba49f45b72200470bc2f176b315bec1028d07a4817859052f98c0a7259632 erlang-p1-acme-1.0.9.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/erlang-p1-acme/erlang-p1-acme.mk ================================================ ################################################################################ # # erlang-p1-acme # ################################################################################ ERLANG_P1_ACME_VERSION = 1.0.9 ERLANG_P1_ACME_SITE = $(call github,processone,p1_acme,$(ERLANG_P1_ACME_VERSION)) ERLANG_P1_ACME_LICENSE = Apache-2.0 ERLANG_P1_ACME_LICENSE_FILES = LICENSE.txt ERLANG_P1_ACME_DEPENDENCIES = erlang-idna erlang-jiffy erlang-jose erlang-p1-yconf $(eval $(rebar-package)) ================================================ FILE: package/erlang-p1-cache-tab/Config.in ================================================ config BR2_PACKAGE_ERLANG_P1_CACHE_TAB bool "erlang-p1-cache-tab" select BR2_PACKAGE_ERLANG_P1_UTILS help Erlang library implementing cache tables https://github.com/processone/cache_tab ================================================ FILE: package/erlang-p1-cache-tab/erlang-p1-cache-tab.hash ================================================ # Locally calculated sha256 32cb3a3017f53e66bd1c2b75f60a2c4a14f00f375582a3c511ea39266b2385b9 erlang-p1-cache-tab-1.0.25.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/erlang-p1-cache-tab/erlang-p1-cache-tab.mk ================================================ ################################################################################ # # erlang-p1-cache-tab # ################################################################################ ERLANG_P1_CACHE_TAB_VERSION = 1.0.25 ERLANG_P1_CACHE_TAB_SITE = $(call github,processone,cache_tab,$(ERLANG_P1_CACHE_TAB_VERSION)) 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)) ================================================ FILE: package/erlang-p1-mqtree/Config.in ================================================ config BR2_PACKAGE_ERLANG_P1_MQTREE bool "erlang-p1-mqtree" select BR2_PACKAGE_ERLANG_P1_UTILS help Index tree for MQTT topic filters. https://github.com/processone/mqtree ================================================ FILE: package/erlang-p1-mqtree/erlang-p1-mqtree.hash ================================================ # Locally calculated sha256 4f86e272a97152d3f5166dad583dc1b5bda9582f6777f6294fb8328def8b2189 erlang-p1-mqtree-1.0.10.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/erlang-p1-mqtree/erlang-p1-mqtree.mk ================================================ ################################################################################ # # erlang-p1-mqtree # ################################################################################ ERLANG_P1_MQTREE_VERSION = 1.0.10 ERLANG_P1_MQTREE_SITE = $(call github,processone,mqtree,$(ERLANG_P1_MQTREE_VERSION)) ERLANG_P1_MQTREE_LICENSE = Apache-2.0 ERLANG_P1_MQTREE_LICENSE_FILES = LICENSE ERLANG_P1_MQTREE_DEPENDENCIES = erlang-p1-utils $(eval $(rebar-package)) ================================================ FILE: package/erlang-p1-oauth2/Config.in ================================================ config BR2_PACKAGE_ERLANG_P1_OAUTH2 bool "erlang-p1-oauth2" help OAuth2 library for Erlang https://github.com/processone/p1_oauth2 ================================================ FILE: package/erlang-p1-oauth2/erlang-p1-oauth2.hash ================================================ # Locally calculated sha256 c5cf0d2a9f5874c289cc6044945f4771a79007bda812e5269dea3a4c92fc8811 erlang-p1-oauth2-0.6.7.tar.gz sha256 0ecddd0a5e35b7fcdab451f54c5bb688fac8365cdf6b0da0ac64b7895a0770f3 LICENSE ================================================ FILE: package/erlang-p1-oauth2/erlang-p1-oauth2.mk ================================================ ################################################################################ # # erlang-p1-oauth2 # ################################################################################ ERLANG_P1_OAUTH2_VERSION = 0.6.7 ERLANG_P1_OAUTH2_SITE = $(call github,processone,p1_oauth2,$(ERLANG_P1_OAUTH2_VERSION)) ERLANG_P1_OAUTH2_LICENSE = MIT ERLANG_P1_OAUTH2_LICENSE_FILES = LICENSE ERLANG_P1_OAUTH2_INSTALL_STAGING = YES $(eval $(rebar-package)) ================================================ FILE: package/erlang-p1-pkix/Config.in ================================================ config BR2_PACKAGE_ERLANG_P1_PKIX bool "erlang-p1-pkix" help PKIX certificates management library for Erlang. https://github.com/processone/pkix ================================================ FILE: package/erlang-p1-pkix/erlang-p1-pkix.hash ================================================ # Locally calculated sha256 3a39c4ca74f93efa0e4de4c37f9e4d073b1aeb142ad669f12588ad2b3c39724e erlang-p1-pkix-1.0.6.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/erlang-p1-pkix/erlang-p1-pkix.mk ================================================ ################################################################################ # # erlang-p1-pkix # ################################################################################ ERLANG_P1_PKIX_VERSION = 1.0.6 ERLANG_P1_PKIX_SITE = $(call github,processone,pkix,$(ERLANG_P1_PKIX_VERSION)) ERLANG_P1_PKIX_LICENSE = Apache-2.0 ERLANG_P1_PKIX_LICENSE_FILES = LICENSE $(eval $(rebar-package)) ================================================ FILE: package/erlang-p1-sip/0001-correct-include.patch ================================================ From 5ad4f871df7cbbc973708cb7380c3410b20bde1c Mon Sep 17 00:00:00 2001 From: Philipp Huebner Date: Tue, 1 Dec 2020 23:07:51 +0100 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. Author: Philipp Huebner Signed-off-by: Johan Oudinet --- src/esip_socket.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/esip_socket.erl b/src/esip_socket.erl index 4154faa..db5fa92 100644 --- a/src/esip_socket.erl +++ b/src/esip_socket.erl @@ -37,7 +37,7 @@ -include("esip.hrl"). -include("esip_lib.hrl"). --include_lib("stun/include/stun.hrl"). +-include_lib("p1_stun/include/stun.hrl"). -define(TCP_SEND_TIMEOUT, 15000). -define(CONNECT_TIMEOUT, 20000). -- 2.28.0 ================================================ FILE: package/erlang-p1-sip/Config.in ================================================ config BR2_PACKAGE_ERLANG_P1_SIP bool "erlang-p1-sip" select BR2_PACKAGE_ERLANG_P1_STUN select BR2_PACKAGE_ERLANG_P1_TLS select BR2_PACKAGE_ERLANG_P1_UTILS help SIP library for Erlang https://github.com/processone/p1_sip ================================================ FILE: package/erlang-p1-sip/erlang-p1-sip.hash ================================================ # Locally calculated sha256 b46349a7077d8e5f36a216ada4a5c0b51ef3d66005606beb0ea3962069f215a7 erlang-p1-sip-1.0.38.tar.gz sha256 6cd4871db940d055cf272c12c10e0c08febdc94362e404390758fde34b4ce01a LICENSE.txt ================================================ FILE: package/erlang-p1-sip/erlang-p1-sip.mk ================================================ ################################################################################ # # erlang-p1-sip # ################################################################################ ERLANG_P1_SIP_VERSION = 1.0.38 ERLANG_P1_SIP_SITE = $(call github,processone,esip,$(ERLANG_P1_SIP_VERSION)) ERLANG_P1_SIP_LICENSE = Apache-2.0 ERLANG_P1_SIP_LICENSE_FILES = LICENSE.txt ERLANG_P1_SIP_DEPENDENCIES = erlang-p1-stun erlang-p1-tls erlang-p1-utils ERLANG_P1_SIP_INSTALL_STAGING = YES $(eval $(rebar-package)) ================================================ FILE: package/erlang-p1-stringprep/Config.in ================================================ 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 https://github.com/processone/stringprep ================================================ FILE: package/erlang-p1-stringprep/erlang-p1-stringprep.hash ================================================ # Locally calculated sha256 47f9f8ee901f47b7f62c5140ea09f113efe7fedd5e8ffb92d50f51c5e11fb67f erlang-p1-stringprep-1.0.23.tar.gz sha256 f44415631770cb818de6d92f3961fdfe6e407a5154f84b87cc06ac27323e919c LICENSE.ALL sha256 42aef2a1337ef1f45ae2832aa5aa268c79b2560fb1f3ebab519629372cb24ffe LICENSE.TCL sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/erlang-p1-stringprep/erlang-p1-stringprep.mk ================================================ ################################################################################ # # erlang-p1-stringprep # ################################################################################ ERLANG_P1_STRINGPREP_VERSION = 1.0.23 ERLANG_P1_STRINGPREP_SITE = $(call github,processone,stringprep,$(ERLANG_P1_STRINGPREP_VERSION)) 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)) ================================================ FILE: package/erlang-p1-stun/Config.in ================================================ config BR2_PACKAGE_ERLANG_P1_STUN bool "erlang-p1-stun" select BR2_PACKAGE_ERLANG_P1_TLS select BR2_PACKAGE_ERLANG_P1_UTILS help STUN library for Erlang https://github.com/processone/stun ================================================ FILE: package/erlang-p1-stun/erlang-p1-stun.hash ================================================ # Locally calculated sha256 05d2f31f172883d2301a93cd141e6b930dfdd01e10b6aacf806becc3674973d8 erlang-p1-stun-1.0.39.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/erlang-p1-stun/erlang-p1-stun.mk ================================================ ################################################################################ # # erlang-p1-stun # ################################################################################ ERLANG_P1_STUN_VERSION = 1.0.39 ERLANG_P1_STUN_SITE = $(call github,processone,stun,$(ERLANG_P1_STUN_VERSION)) ERLANG_P1_STUN_LICENSE = Apache-2.0 ERLANG_P1_STUN_LICENSE_FILES = LICENSE.txt ERLANG_P1_STUN_DEPENDENCIES = erlang-p1-tls erlang-p1-utils ERLANG_P1_STUN_INSTALL_STAGING = YES $(eval $(rebar-package)) ================================================ FILE: package/erlang-p1-tls/Config.in ================================================ config BR2_PACKAGE_ERLANG_P1_TLS bool "erlang-p1-tls" select BR2_PACKAGE_ERLANG_P1_UTILS select BR2_PACKAGE_OPENSSL help Erlang interface to OpenSSL https://github.com/processone/tls ================================================ FILE: package/erlang-p1-tls/erlang-p1-tls.hash ================================================ # Locally calculated sha256 97fd0a398751fc63b28df016e92a08ea98d083f7d5e3f32380a92de1ee86ca0e erlang-p1-tls-1.1.9.tar.gz sha256 6cd4871db940d055cf272c12c10e0c08febdc94362e404390758fde34b4ce01a LICENSE.txt ================================================ FILE: package/erlang-p1-tls/erlang-p1-tls.mk ================================================ ################################################################################ # # erlang-p1-tls # ################################################################################ ERLANG_P1_TLS_VERSION = 1.1.9 ERLANG_P1_TLS_SITE = $(call github,processone,fast_tls,$(ERLANG_P1_TLS_VERSION)) ERLANG_P1_TLS_LICENSE = Apache-2.0 ERLANG_P1_TLS_LICENSE_FILES = LICENSE.txt ERLANG_P1_TLS_INSTALL_STAGING = YES ERLANG_P1_TLS_DEPENDENCIES = openssl erlang-p1-utils $(eval $(rebar-package)) ================================================ FILE: package/erlang-p1-utils/Config.in ================================================ config BR2_PACKAGE_ERLANG_P1_UTILS bool "erlang-p1-utils" help Set of small Erlang libraries https://github.com/processone/p1_utils ================================================ FILE: package/erlang-p1-utils/erlang-p1-utils.hash ================================================ # Locally calculated sha256 234b88227f61ef03a6177d97ed062c62a22760b6fd189a5a24d2fd1599d95ac9 erlang-p1-utils-1.0.20.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/erlang-p1-utils/erlang-p1-utils.mk ================================================ ################################################################################ # # erlang-p1-utils # ################################################################################ ERLANG_P1_UTILS_VERSION = 1.0.20 ERLANG_P1_UTILS_SITE = $(call github,processone,p1_utils,$(ERLANG_P1_UTILS_VERSION)) ERLANG_P1_UTILS_LICENSE = Apache-2.0 ERLANG_P1_UTILS_LICENSE_FILES = LICENSE.txt ERLANG_P1_UTILS_INSTALL_STAGING = YES $(eval $(rebar-package)) $(eval $(host-rebar-package)) ================================================ FILE: package/erlang-p1-xml/Config.in ================================================ 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 https://github.com/processone/xml ================================================ FILE: package/erlang-p1-xml/erlang-p1-xml.hash ================================================ # Locally calculated sha256 739f37a161a570071469ab1f3d8fc232f004ea616700fe7e46b6d8afa9d03a60 erlang-p1-xml-1.1.44.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/erlang-p1-xml/erlang-p1-xml.mk ================================================ ################################################################################ # # erlang-p1-xml # ################################################################################ ERLANG_P1_XML_VERSION = 1.1.44 ERLANG_P1_XML_SITE = $(call github,processone,fast_xml,$(ERLANG_P1_XML_VERSION)) ERLANG_P1_XML_LICENSE = Apache-2.0 ERLANG_P1_XML_LICENSE_FILES = LICENSE.txt ERLANG_P1_XML_DEPENDENCIES = expat erlang-p1-utils HOST_ERLANG_P1_XML_DEPENDENCIES = host-expat host-erlang-p1-utils ERLANG_P1_XML_INSTALL_STAGING = YES ERLANG_P1_XML_USE_AUTOCONF = YES $(eval $(rebar-package)) $(eval $(host-rebar-package)) ================================================ FILE: package/erlang-p1-xmpp/0001-fix-includes.patch ================================================ Without this patch, rebar fails to find include file fxml.hrl. Signed-off-by: Christophe Romain diff --git a/include/xmpp.hrl b/include/xmpp.hrl index afa5f61..678858e 100644 --- a/include/xmpp.hrl +++ b/include/xmpp.hrl @@ -25,7 +25,7 @@ -include("ns.hrl"). -include("jid.hrl"). -include("xmpp_codec.hrl"). --include_lib("fast_xml/include/fxml.hrl"). +-include_lib("p1_xml/include/fxml.hrl"). -type stanza() :: iq() | presence() | message(). ================================================ FILE: package/erlang-p1-xmpp/Config.in ================================================ comment "erlang-p1-xmpp needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_ERLANG_P1_XMPP bool "erlang-p1-xmpp" depends on BR2_INSTALL_LIBSTDCPP # erlang-p1-stringprep select BR2_PACKAGE_ERLANG_P1_XML select BR2_PACKAGE_ERLANG_P1_STRINGPREP select BR2_PACKAGE_ERLANG_P1_TLS select BR2_PACKAGE_ERLANG_P1_UTILS select BR2_PACKAGE_ERLANG_P1_ZLIB help XMPP library for Erlang. https://github.com/processone/xmpp ================================================ FILE: package/erlang-p1-xmpp/erlang-p1-xmpp.hash ================================================ # Locally calculated sha256 65c73ffaf8faab5d6fc7d42ada0b5a380f20f3e46056ad98614d81922322d9a2 erlang-p1-xmpp-1.4.10.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/erlang-p1-xmpp/erlang-p1-xmpp.mk ================================================ ################################################################################ # # erlang-p1-xmpp # ################################################################################ ERLANG_P1_XMPP_VERSION = 1.4.10 ERLANG_P1_XMPP_SITE = $(call github,processone,xmpp,$(ERLANG_P1_XMPP_VERSION)) ERLANG_P1_XMPP_LICENSE = Apache-2.0 ERLANG_P1_XMPP_LICENSE_FILES = LICENSE.txt ERLANG_P1_XMPP_INSTALL_STAGING = YES ERLANG_P1_XMPP_DEPENDENCIES = erlang-p1-xml erlang-p1-stringprep \ erlang-p1-tls erlang-p1-utils erlang-p1-zlib host-erlang-p1-xml HOST_ERLANG_P1_XMPP_DEPENDENCIES = host-erlang-p1-xml $(eval $(rebar-package)) $(eval $(host-rebar-package)) ================================================ FILE: package/erlang-p1-yaml/Config.in ================================================ 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 https://github.com/processone/p1_yaml ================================================ FILE: package/erlang-p1-yaml/erlang-p1-yaml.hash ================================================ # Locally calculated sha256 8f53308438e4d1613562acb586b4c4540569d8305097508c40e6f261fe4216cd erlang-p1-yaml-1.0.28.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/erlang-p1-yaml/erlang-p1-yaml.mk ================================================ ################################################################################ # # erlang-p1-yaml # ################################################################################ ERLANG_P1_YAML_VERSION = 1.0.28 ERLANG_P1_YAML_SITE = $(call github,processone,fast_yaml,$(ERLANG_P1_YAML_VERSION)) ERLANG_P1_YAML_LICENSE = Apache-2.0 ERLANG_P1_YAML_LICENSE_FILES = LICENSE.txt ERLANG_P1_YAML_DEPENDENCIES = libyaml erlang-p1-utils $(eval $(rebar-package)) ================================================ FILE: package/erlang-p1-yconf/Config.in ================================================ config BR2_PACKAGE_ERLANG_P1_YCONF bool "erlang-p1-yconf" select BR2_PACKAGE_ERLANG_P1_YAML help YAML configuration processor. ================================================ FILE: package/erlang-p1-yconf/erlang-p1-yconf.hash ================================================ # Locally calculated sha256 ab0f7462b8d03d18be1587fa9cfb227923055f765fca4459b4bb42ccef971329 erlang-p1-yconf-1.0.8.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/erlang-p1-yconf/erlang-p1-yconf.mk ================================================ ################################################################################ # # erlang-p1-yconf # ################################################################################ ERLANG_P1_YCONF_VERSION = 1.0.8 ERLANG_P1_YCONF_SITE = $(call github,processone,yconf,$(ERLANG_P1_YCONF_VERSION)) ERLANG_P1_YCONF_LICENSE = Apache-2.0 ERLANG_P1_YCONF_LICENSE_FILES = LICENSE ERLANG_P1_YCONF_DEPENDENCIES = erlang-p1-yaml $(eval $(rebar-package)) ================================================ FILE: package/erlang-p1-zlib/Config.in ================================================ config BR2_PACKAGE_ERLANG_P1_ZLIB bool "erlang-p1-zlib" select BR2_PACKAGE_ZLIB help Erlang interface to zlib https://github.com/processone/zlib ================================================ FILE: package/erlang-p1-zlib/erlang-p1-zlib.hash ================================================ # Locally calculated sha256 f0ac60336b2ddf55ac4f58934580cb8f02dba440d68feb607be312dd35d91269 erlang-p1-zlib-1.0.9.tar.gz sha256 6cd4871db940d055cf272c12c10e0c08febdc94362e404390758fde34b4ce01a LICENSE.txt ================================================ FILE: package/erlang-p1-zlib/erlang-p1-zlib.mk ================================================ ################################################################################ # # erlang-p1-zlib # ################################################################################ ERLANG_P1_ZLIB_VERSION = 1.0.9 ERLANG_P1_ZLIB_SITE = $(call github,processone,ezlib,$(ERLANG_P1_ZLIB_VERSION)) ERLANG_P1_ZLIB_LICENSE = Apache-2.0 ERLANG_P1_ZLIB_LICENSE_FILES = LICENSE.txt ERLANG_P1_ZLIB_DEPENDENCIES = zlib $(eval $(rebar-package)) ================================================ FILE: package/erlang-rebar/erlang-rebar.hash ================================================ # Locally calculated sha256 577246bafa2eb2b2c3f1d0c157408650446884555bf87901508ce71d5cc0bd07 erlang-rebar-2.6.4.tar.gz sha256 809fa1ed21450f59827d1e9aec720bbc4b687434fa22283c6cb5dd82a47ab9c0 LICENSE ================================================ FILE: package/erlang-rebar/erlang-rebar.mk ================================================ ################################################################################ # # erlang-rebar # ################################################################################ ERLANG_REBAR_VERSION = 2.6.4 # 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 # gihub helper in this case. ERLANG_REBAR_SITE = $(call github,rebar,rebar,$(ERLANG_REBAR_VERSION)) # Although the file LICENSE state Apache-2.0, a lot (if not all) the files # in src/ bear the MIT licence. ERLANG_REBAR_LICENSE = Apache-2.0, MIT ERLANG_REBAR_LICENSE_FILES = LICENSE # We do not have a target variant, so just define the dependencies, # configure and build commands for the host variant. HOST_ERLANG_REBAR_DEPENDENCIES = host-erlang define HOST_ERLANG_REBAR_BUILD_CMDS cd $(@D) && $(HOST_MAKE_ENV) $(MAKE) endef define HOST_ERLANG_REBAR_INSTALL_CMDS $(INSTALL) -m 0755 -D $(@D)/rebar $(HOST_DIR)/bin/rebar endef $(eval $(host-generic-package)) ================================================ FILE: package/erofs-utils/0001-erofs-utils-manpage-only-install-erofsfuse.1-with-th.patch ================================================ From 7ab34000c672adca90388a8fcb1f70a7d391d35c Mon Sep 17 00:00:00 2001 From: David Michael Date: Thu, 3 Jun 2021 16:18:57 -0400 Subject: [PATCH] erofs-utils: manpage: only install erofsfuse.1 with the command Link: https://lore.kernel.org/r/87lf7q3dn2.fsf@gmail.com Reviewed-by: Gao Xiang Signed-off-by: David Michael Signed-off-by: Gao Xiang --- man/Makefile.am | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/man/Makefile.am b/man/Makefile.am index ffcf6f81c255..0df947b6fbf7 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -1,5 +1,9 @@ # SPDX-License-Identifier: GPL-2.0+ # Makefile.am -dist_man_MANS = mkfs.erofs.1 erofsfuse.1 +dist_man_MANS = mkfs.erofs.1 +EXTRA_DIST = erofsfuse.1 +if ENABLE_FUSE +man_MANS = erofsfuse.1 +endif -- 2.20.1 ================================================ FILE: package/erofs-utils/Config.in ================================================ config BR2_PACKAGE_EROFS_UTILS bool "erofs-utils" select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Userspace utilities for EROFS filesystem https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git if BR2_PACKAGE_EROFS_UTILS config BR2_PACKAGE_EROFS_UTILS_LZ4 bool "lz4 support" select BR2_PACKAGE_LZ4 help Support LZ4 compression algorithm config BR2_PACKAGE_EROFS_UTILS_EROFSFUSE bool "erofsfuse support" depends on BR2_USE_MMU # libfuse depends on !BR2_STATIC_LIBS # libfuse depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse select BR2_PACKAGE_LIBFUSE help FUSE file system client for EROFS comment "erofsfuse needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS endif ================================================ FILE: package/erofs-utils/Config.in.host ================================================ config BR2_PACKAGE_HOST_EROFS_UTILS bool "host erofs-utils" select BR2_PACKAGE_HOST_UTIL_LINUX help Userspace utilities for EROFS filesystem https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git ================================================ FILE: package/erofs-utils/erofs-utils.hash ================================================ # Locally computed sha256 132635740039bbe76d743aea72378bfae30dbf034e123929f5d794198d4c0b12 erofs-utils-1.3.tar.gz sha256 feee3b3157dcdf78d4f50edefbd5dd7adf8b6d52c11bfaaa746a85a373256713 COPYING ================================================ FILE: package/erofs-utils/erofs-utils.mk ================================================ ################################################################################ # # erofs-utils # ################################################################################ EROFS_UTILS_VERSION = 1.3 EROFS_UTILS_SITE = https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/snapshot EROFS_UTILS_LICENSE = GPL-2.0+ EROFS_UTILS_LICENSE_FILES = COPYING # From a git tree: no generated autotools files EROFS_UTILS_AUTORECONF = YES EROFS_UTILS_DEPENDENCIES = host-pkgconf util-linux ifeq ($(BR2_PACKAGE_EROFS_UTILS_LZ4),y) EROFS_UTILS_DEPENDENCIES += lz4 EROFS_UTILS_CONF_OPTS += --enable-lz4 else EROFS_UTILS_CONF_OPTS += --disable-lz4 endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) EROFS_UTILS_CONF_OPTS += --with-selinux EROFS_UTILS_DEPENDENCIES += libselinux else EROFS_UTILS_CONF_OPTS += --without-selinux endif ifeq ($(BR2_PACKAGE_EROFS_UTILS_EROFSFUSE),y) EROFS_UTILS_CONF_OPTS += --enable-fuse EROFS_UTILS_DEPENDENCIES += libfuse else EROFS_UTILS_CONF_OPTS += --disable-fuse endif HOST_EROFS_UTILS_DEPENDENCIES = host-pkgconf host-util-linux host-lz4 HOST_EROFS_UTILS_CONF_OPTS += --enable-lz4 --disable-fuse --without-selinux $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/espeak/0001-Fix-build-of-shared-library-on-architectures-needing.patch ================================================ From 08a464e2b6bd31bb2bf4e258ebfa9b9d65805abf Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 27 Nov 2015 15:17:02 +0100 Subject: [PATCH] Fix build of shared library on architectures needing -fPIC Certain architectures, like Sparc and Sparc64 require objects to be built with -fPIC (and not just -fpic) to be usable in shared libraries. On other architectures, -fPIC is the same as -fpic so this patch doesn't affect such architectures. Signed-off-by: Thomas Petazzoni --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 95fe549..c293611 100755 --- a/src/Makefile +++ b/src/Makefile @@ -110,7 +110,7 @@ $(BIN2_NAME): $(OBJS3) $(LIB_NAME) x_%.o: %.cpp - $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fpic -fvisibility=hidden -pedantic \ + $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fPIC -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o $(LIB_NAME): $(OBJS2) -- 2.6.3 ================================================ FILE: package/espeak/0002-tr_languages-cast-string_ordinal-init-values.patch ================================================ From 451330d09a6a3500b40bc4f5896ba790ab46cd6c Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 15 Jan 2017 19:37:31 +0100 Subject: [PATCH 2/2] tr_languages: cast string_ordinal init values On some architecture, "char" is signed (x86_64, nios2...) so the compiler try to convert int 0xc2 and 0xba to a signed char. This is an error since gcc6 (Wnarrowing). Fixes: http://autobuild.buildroot.net/results/bae/baef9888b1979d18171668a675985e3f3b45fda6 Signed-off-by: Romain Naour --- src/tr_languages.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index 5c80286..dbc6e36 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -200,7 +200,7 @@ static const unsigned short chars_ignore_zwnj_hyphen[] = { 0x200d, 1, // zero width joiner 0, 0 }; -const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8 +const char string_ordinal[] = {(char)0xc2,(char)0xba,0}; // masculine ordinal character, UTF-8 static Translator* NewTranslator(void) -- 2.9.3 ================================================ FILE: package/espeak/Config.in ================================================ comment "espeak needs a toolchain w/ C++, wchar, threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || BR2_STATIC_LIBS depends on BR2_USE_MMU config BR2_PACKAGE_ESPEAK bool "espeak" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() # does not properly support building only a static version depends on !BR2_STATIC_LIBS help espeak is a speech synthesizer software for English and other languages. http://espeak.sourceforge.net/ if BR2_PACKAGE_ESPEAK choice prompt "choose audio backend" default BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_NONE config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_NONE bool "No sound backend, only produce wav files" config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA bool "alsa via portaudio" # Selecting portaudio generates spurious "unmet dependencies" # warnings. Unless you are changing the dependencies of espeak # or portaudio, just ignore those spurious warnings. select BR2_PACKAGE_PORTAUDIO select BR2_PACKAGE_PORTAUDIO_CXX config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO bool "pulseaudio" depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC select BR2_PACKAGE_PULSEAUDIO endchoice endif # BR2_PACKAGE_ESPEAK ================================================ FILE: package/espeak/espeak.hash ================================================ # Locally computed: sha256 bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659 espeak-1.48.04-source.zip sha256 0bbca7a0ad5da4a6b0677f90d17817984edce7e42d300cae94ae93e4ccba9df7 License.txt ================================================ FILE: package/espeak/espeak.mk ================================================ ################################################################################ # # espeak # ################################################################################ ESPEAK_VERSION_MAJOR = 1.48 ESPEAK_VERSION = $(ESPEAK_VERSION_MAJOR).04 ESPEAK_SOURCE = espeak-$(ESPEAK_VERSION)-source.zip ESPEAK_SITE = http://downloads.sourceforge.net/project/espeak/espeak/espeak-$(ESPEAK_VERSION_MAJOR) ESPEAK_LICENSE = GPL-3.0+ ESPEAK_LICENSE_FILES = License.txt ifeq ($(BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA),y) ESPEAK_AUDIO_BACKEND = portaudio ESPEAK_DEPENDENCIES += portaudio endif ifeq ($(BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO),y) ESPEAK_AUDIO_BACKEND = pulseaudio ESPEAK_DEPENDENCIES += pulseaudio endif define ESPEAK_EXTRACT_CMDS $(UNZIP) -d $(@D) $(ESPEAK_DL_DIR)/$(ESPEAK_SOURCE) mv $(@D)/espeak-$(ESPEAK_VERSION)-source/* $(@D) $(RM) -r $(@D)/espeak-$(ESPEAK_VERSION)-source endef define ESPEAK_CONFIGURE_CMDS # Buildroot provides portaudio V19, see ReadMe file for more details. cp $(@D)/src/portaudio19.h $(@D)/src/portaudio.h endef define ESPEAK_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src $(TARGET_CONFIGURE_OPTS) \ AUDIO="$(ESPEAK_AUDIO_BACKEND)" all endef define ESPEAK_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src DESTDIR="$(TARGET_DIR)" install endef $(eval $(generic-package)) ================================================ FILE: package/ethtool/Config.in ================================================ config BR2_PACKAGE_ETHTOOL bool "ethtool" help ethtool is a small utility for examining and tuning your ethernet-based network interface. https://www.kernel.org/pub/software/network/ethtool/ config BR2_PACKAGE_ETHTOOL_PRETTY_PRINT bool "enable pretty printing" default y depends on BR2_PACKAGE_ETHTOOL help Enables ethtool's pretty printing for drivers and SFP modules. ================================================ FILE: package/ethtool/ethtool.hash ================================================ # From https://www.kernel.org/pub/software/network/ethtool/sha256sums.asc sha256 f5ddfa9c75053d8011b8c8c99ec4e2d3c83cd1972f638692d62e37fa3ef36f07 ethtool-5.12.tar.xz # Locally calculated sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 5d632934396f90c82dfebe3c9512648bbb6333b406113d0cd331b0e0aa2d34a1 LICENSE ================================================ FILE: package/ethtool/ethtool.mk ================================================ ################################################################################ # # ethtool # ################################################################################ ETHTOOL_VERSION = 5.12 ETHTOOL_SOURCE = ethtool-$(ETHTOOL_VERSION).tar.xz ETHTOOL_SITE = $(BR2_KERNEL_MIRROR)/software/network/ethtool ETHTOOL_LICENSE = GPL-2.0 ETHTOOL_LICENSE_FILES = LICENSE COPYING ETHTOOL_CPE_ID_VENDOR = kernel ETHTOOL_CONF_OPTS = \ $(if $(BR2_PACKAGE_ETHTOOL_PRETTY_PRINT),--enable-pretty-dump,--disable-pretty-dump) ifeq ($(BR2_PACKAGE_LIBMNL),y) ETHTOOL_DEPENDENCIES += host-pkgconf libmnl ETHTOOL_CONF_OPTS += --enable-netlink else ETHTOOL_CONF_OPTS += --disable-netlink endif $(eval $(autotools-package)) ================================================ FILE: package/eudev/0001-Only-use-pragma-for-ignoring-diagnostics-if-.patch ================================================ From dc8aa43b7b6d0cead7d8a0c1a151d289a5233a10 Mon Sep 17 00:00:00 2001 From: Eric Le Bihan Date: Wed, 2 Apr 2014 12:36:52 +0200 Subject: [PATCH] libudev: Only use #pragma for ignoring diagnostics if GCC version supports it. [Peter: update for 2.1.1, fix shared_assert issue] Signed-off-by: Eric Le Bihan --- src/shared/macro.h | 8 +++++ 1 file changed, 8 insertions(+) diff --git a/src/shared/macro.h b/src/shared/macro.h --- a/src/shared/macro.h +++ b/src/shared/macro.h @@ -38,6 +38,7 @@ #define _cleanup_(x) __attribute__((cleanup(x))) /* Temporarily disable some warnings */ +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) #define DISABLE_WARNING_DECLARATION_AFTER_STATEMENT \ _Pragma("GCC diagnostic push"); \ _Pragma("GCC diagnostic ignored \"-Wdeclaration-after-statement\"") @@ -48,6 +49,13 @@ #define REENABLE_WARNING \ _Pragma("GCC diagnostic pop") +#else +#define DISABLE_WARNING_DECLARATION_AFTER_STATEMENT +#define DISABLE_WARNING_FORMAT_NONLITERAL +#define REENABLE_WARNING +/* glibc unconditionally defines this, but it needs GCC 4.6+ */ +#undef static_assert +#endif #define XCONCATENATE(x, y) x ## y #define CONCATENATE(x, y) XCONCATENATE(x, y) -- 1.7.9.5 ================================================ FILE: package/eudev/Config.in ================================================ config BR2_PACKAGE_EUDEV bool "eudev" depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV depends on BR2_USE_MMU # uses fork() depends on BR2_USE_WCHAR # needs C99 compiler depends on !BR2_STATIC_LIBS # kmod select BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_UDEV_GENTOO_SCRIPTS if BR2_INIT_OPENRC select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBS select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_KMOD help 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. https://wiki.gentoo.org/wiki/Project:Eudev if BR2_PACKAGE_EUDEV config BR2_PACKAGE_PROVIDES_UDEV default "eudev" config BR2_PACKAGE_EUDEV_RULES_GEN bool "enable rules generator" help Enable persistent rules generator config BR2_PACKAGE_EUDEV_ENABLE_HWDB bool "enable hwdb installation" default y select BR2_PACKAGE_HOST_EUDEV # for udevadm, during target-finalize help Enables hardware database installation to /etc/udev/hwdb.bin endif comment "eudev needs eudev /dev management" depends on BR2_USE_MMU depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV comment "eudev needs a toolchain w/ wchar, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS ================================================ FILE: package/eudev/Config.in.host ================================================ # Select this if you need host eudev tools (e.g. udevadm) config BR2_PACKAGE_HOST_EUDEV bool ================================================ FILE: package/eudev/S10udev ================================================ #!/bin/sh # # udev This is a minimal non-LSB version of a UDEV startup script. It # was derived by stripping down the udev-058 LSB version for use # with buildroot on embedded hardware using Linux 2.6.34+ kernels. # # You may need to customize this for your system's resource limits # (including startup time!) and administration. For example, if # your early userspace has a custom initramfs or initrd you might # need /dev much earlier; or without hotpluggable busses (like USB, # PCMCIA, MMC/SD, and so on) your /dev might be static after boot. # # This script assumes your system boots right into the eventual root # filesystem, and that init runs this udev script before any programs # needing more device nodes than the bare-bones set -- /dev/console, # /dev/zero, /dev/null -- that's needed to boot and run this script. # # Check for config file and read it UDEV_CONFIG=/etc/udev/udev.conf test -r $UDEV_CONFIG || exit 6 . $UDEV_CONFIG case "$1" in start) printf "Populating %s using udev: " "${udev_root:-/dev}" [ -e /proc/sys/kernel/hotplug ] && printf '\000\000\000\000' > /proc/sys/kernel/hotplug /sbin/udevd -d || { echo "FAIL"; exit 1; } udevadm trigger --type=subsystems --action=add udevadm trigger --type=devices --action=add udevadm settle --timeout=30 || echo "udevadm settle failed" echo "done" ;; stop) # Stop execution of events udevadm control --stop-exec-queue killall udevd ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0 ================================================ FILE: package/eudev/eudev.hash ================================================ # From http://dev.gentoo.org/~blueness/eudev/ md5 60b135a189523f333cea5f71a3345c8d eudev-3.2.10.tar.gz # Locally calculated sha256 87bb028d470fd1b85169349b44c55d5b733733dc2d50ddf1196e026725ead034 eudev-3.2.10.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/eudev/eudev.mk ================================================ ################################################################################ # # eudev # ################################################################################ EUDEV_VERSION = 3.2.10 EUDEV_SITE = http://dev.gentoo.org/~blueness/eudev EUDEV_LICENSE = GPL-2.0+ (programs), LGPL-2.1+ (libraries) EUDEV_LICENSE_FILES = COPYING EUDEV_INSTALL_STAGING = YES EUDEV_CONF_OPTS = \ --disable-manpages \ --sbindir=/sbin \ --libexecdir=/lib \ --disable-introspection \ --enable-kmod \ --enable-blkid # eudev requires only the util-linux libraries at build time EUDEV_DEPENDENCIES = host-gperf host-pkgconf util-linux-libs kmod EUDEV_PROVIDES = udev ifeq ($(BR2_ROOTFS_MERGED_USR),) EUDEV_CONF_OPTS += --with-rootlibdir=/lib --enable-split-usr 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) EUDEV_CONF_OPTS += --enable-hwdb else EUDEV_CONF_OPTS += --disable-hwdb endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) EUDEV_CONF_OPTS += --enable-selinux EUDEV_DEPENDENCIES += libselinux else EUDEV_CONF_OPTS += --disable-selinux endif define EUDEV_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/eudev/S10udev $(TARGET_DIR)/etc/init.d/S10udev endef # Avoid installing S10udev with openrc, as the service is started by a unit # from the udev-gentoo-scripts package. define EUDEV_INSTALL_INIT_OPENRC @: endef HOST_EUDEV_DEPENDENCIES = host-gperf host-pkgconf HOST_EUDEV_SYSCONFDIR = $(if $(BR2_PACKAGE_SYSTEMD),/usr/lib,/etc) HOST_EUDEV_CONF_OPTS = \ --prefix=/usr \ --sbindir=/sbin \ --libexecdir=/lib \ --with-rootlibdir=/lib \ --sysconfdir=$(HOST_EUDEV_SYSCONFDIR) \ --disable-blkid \ --disable-introspection \ --disable-kmod \ --disable-manpages \ --disable-rule-generator \ --disable-selinux \ --enable-hwdb define HOST_EUDEV_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/src/udev/udevadm \ $(HOST_DIR)/bin/udevadm endef define HOST_EUDEV_BUILD_HWDB $(HOST_DIR)/bin/udevadm hwdb --update --root $(TARGET_DIR) endef HOST_EUDEV_TARGET_FINALIZE_HOOKS += HOST_EUDEV_BUILD_HWDB # Note: this will run in the filesystem context, so will use a copy # of tharget/, not the real one, so the files are still available on # re-builds (foo-rebuild, etc...) define HOST_EUDEV_RM_HWDB_SRC rm -rf $(TARGET_DIR)/$(HOST_EUDEV_SYSCONFDIR)/udev/hwdb.d/ endef HOST_EUDEV_ROOTFS_PRE_CMD_HOOKS += HOST_EUDEV_RM_HWDB_SRC $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/ev3dev-linux-drivers/Config.in ================================================ # Prompt-less option, because this package is not doing anything except # downloading the ev3dev driver sources. The real work is done by a Linux # extension. config BR2_PACKAGE_EV3DEV_LINUX_DRIVERS bool depends on BR2_LINUX_KERNEL help Linux drivers for LEGO MINDSTORMS EV3 This is only the download helper for the kernel patch. https://github.com/ev3dev/lego-linux-drivers ================================================ FILE: package/ev3dev-linux-drivers/ev3dev-linux-drivers.mk ================================================ ################################################################################ # # ev3dev Linux drivers # ################################################################################ EV3DEV_LINUX_DRIVERS_VERSION = 0e551eb25ae8600c1f178814781bfb42dc835496 EV3DEV_LINUX_DRIVERS_SITE = $(call github,ev3dev,lego-linux-drivers,$(EV3DEV_LINUX_DRIVERS_VERSION)) EV3DEV_LINUX_DRIVERS_LICENSE = GPL-2.0 $(eval $(generic-package)) ================================================ FILE: package/ev3dev-linux-drivers/lego-linux-drivers.hash ================================================ # locally computed sha256 9d2740b348c8d43e7e15fedc4cec99bf351a3a2ba8691f2a07c439a9c034bc04 lego-linux-drivers-0e551eb25ae8600c1f178814781bfb42dc835496.tar.gz ================================================ FILE: package/evemu/0001-Include-limits.h-for-PATH_MAX.patch ================================================ From e80a13776e6d6df29fd704cd63e0744200c3df1b Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Sun, 1 Oct 2017 19:54:53 +0200 Subject: [PATCH] Include limits.h for PATH_MAX. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes the following compile failure when building with musl: find_event_devices.c: In function ‘find_event_devices’: find_event_devices.c:60:14: error: ‘PATH_MAX’ undeclared (first use in this function) char fname[PATH_MAX]; ^~~~~~~~ Signed-off-by: Peter Seiderer --- tools/find_event_devices.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/find_event_devices.c b/tools/find_event_devices.c index 2a43d54..3a74096 100644 --- a/tools/find_event_devices.c +++ b/tools/find_event_devices.c @@ -24,6 +24,7 @@ #define _GNU_SOURCE #include +#include #include #include #include -- 2.14.2 ================================================ FILE: package/evemu/0002-evemu-Update-struct-input_event.patch ================================================ From 30973c0bc053b2198cafb1899a0843688d5bb541 Mon Sep 17 00:00:00 2001 From: Deepa Dinamani Date: Mon, 15 Jan 2018 17:18:49 -0800 Subject: [PATCH] evemu: Update struct input_event The struct input_event is not y2038 safe. Update the struct according to the kernel patch: https://lkml.org/lkml/2018/1/6/324 Signed-off-by: Deepa Dinamani Signed-off-by: Peter Hutterer [Retrieved from: https://gitlab.freedesktop.org/libevdev/evemu/-/commit/30973c0bc053b2198cafb1899a0843688d5bb541] Signed-off-by: Fabrice Fontaine --- src/evemu.c | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/src/evemu.c b/src/evemu.c index a8a949b..c7ff561 100644 --- a/src/evemu.c +++ b/src/evemu.c @@ -771,7 +771,7 @@ int evemu_write_event(FILE *fp, const struct input_event *ev) { int rc; rc = fprintf(fp, "E: %lu.%06u %04x %04x %04d ", - ev->time.tv_sec, (unsigned)ev->time.tv_usec, + ev->input_event_sec, (unsigned)ev->input_event_usec, ev->type, ev->code, ev->value); rc += write_event_desc(fp, ev); return rc; @@ -800,13 +800,19 @@ int evemu_record(FILE *fp, int fd, int ms) if (ret < 0) return ret; if (ret == sizeof(ev)) { + struct timeval tv; long time; + tv.tv_sec = ev.input_event_sec; + tv.tv_usec = ev.input_event_usec; + if (offset == 0) - offset = time_to_long(&ev.time) - 1; + offset = time_to_long(&tv) - 1; - time = time_to_long(&ev.time); - ev.time = long_to_time(time - offset); + time = time_to_long(&tv); + tv = long_to_time(time - offset); + ev.input_event_sec = tv.tv_sec; + ev.input_event_usec = tv.tv_usec; evemu_write_event(fp, &ev); fflush(fp); } @@ -839,8 +845,8 @@ int evemu_read_event(FILE *fp, struct input_event *ev) return -1; } - ev->time.tv_sec = sec; - ev->time.tv_usec = usec; + ev->input_event_sec = sec; + ev->input_event_usec = usec; ev->type = type; ev->code = code; ev->value = value; @@ -852,8 +858,8 @@ out: int evemu_create_event(struct input_event *ev, int type, int code, int value) { - ev->time.tv_sec = 0; - ev->time.tv_usec = 0; + ev->input_event_sec = 0; + ev->input_event_usec = 0; ev->type = type; ev->code = code; ev->value = value; @@ -873,6 +879,7 @@ static inline unsigned long us2s(unsigned long us) int evemu_read_event_realtime(FILE *fp, struct input_event *ev, struct timeval *evtime) { + struct timeval tv; unsigned long usec; const unsigned long ERROR_MARGIN = 150; /* µs */ int ret; @@ -882,14 +889,18 @@ int evemu_read_event_realtime(FILE *fp, struct input_event *ev, return ret; if (evtime) { - if (evtime->tv_sec == 0 && evtime->tv_usec == 0) - *evtime = ev->time; - usec = time_to_long(&ev->time) - time_to_long(evtime); + if (evtime->tv_sec == 0 && evtime->tv_usec == 0) { + evtime->tv_sec = ev->input_event_sec; + evtime->tv_usec = ev->input_event_usec; + } + tv.tv_sec = ev->input_event_sec; + tv.tv_usec = ev->input_event_usec; + usec = time_to_long(&tv) - time_to_long(evtime); if (usec > ERROR_MARGIN * 2) { if (usec > s2us(10)) error(INFO, "Sleeping for %lds.\n", us2s(usec)); usleep(usec - ERROR_MARGIN); - *evtime = ev->time; + *evtime = tv; } } -- 2.24.1 ================================================ FILE: package/evemu/0003-src-evemu.c-fix-build-with-kernels-4.16.patch ================================================ From fd204f628021c9bb13870a8c983d9c63e1a53ebb Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 23 Mar 2020 11:04:11 +0100 Subject: [PATCH] src/evemu.c: fix build with kernels >= 4.16 Commit 30973c0b forgot to update all occurences of input_event, this will result in the following build failure with kernel >= 4.16: evemu.c: In function 'write_event_desc': evemu.c:753:23: error: 'const struct input_event' has no member named 'time'; did you mean 'type'? time = millis(&ev->time); ^~~~ type Fixes: - http://autobuild.buildroot.org/results/487dd5056ec0a977d55b23417d5db2664dcc91fa Signed-off-by: Fabrice Fontaine [Retrieved from: https://gitlab.freedesktop.org/libevdev/evemu/-/commit/fd204f628021c9bb13870a8c983d9c63e1a53ebb] --- src/evemu.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/evemu.c b/src/evemu.c index c7ff561..42dbe1d 100644 --- a/src/evemu.c +++ b/src/evemu.c @@ -733,11 +733,6 @@ out: return rc; } -static inline unsigned long millis(const struct timeval *tv) -{ - return tv->tv_sec * 1000 + tv->tv_usec/1000; -} - static int write_event_desc(FILE *fp, const struct input_event *ev) { int rc; @@ -750,7 +745,7 @@ static int write_event_desc(FILE *fp, const struct input_event *ev) libevdev_event_code_get_name(ev->type, ev->code), ev->value); } else { - time = millis(&ev->time); + time = ev->input_event_sec * 1000 + ev->input_event_usec/1000; dt = time - last_ms; last_ms = time; rc = fprintf(fp, "# ------------ %s (%d) ---------- %+ldms\n", -- 2.24.1 ================================================ FILE: package/evemu/0004-src-evemu.c-fix-build-with-kernels-4.16.patch ================================================ From 1babf63444b7b7f3c84e2561fbdecd5fd5a0e36f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 24 Mar 2020 09:06:29 +0100 Subject: [PATCH] src/evemu.c: fix build with kernels < 4.16 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit 30973c0b fixed the build with kernels >= 4.16 but as a side effect, build with kernels < 4.16 is now failing on: evemu.c:892:18: error: ‘struct input_event’ has no member named ‘input_event_usec’ tv.tv_usec = ev->input_event_usec; ^~ Fix this error by defining input_event_sec and input_event_usec if needed Signed-off-by: Fabrice Fontaine [Retrieved from: https://gitlab.freedesktop.org/libevdev/evemu/-/commit/1babf63444b7b7f3c84e2561fbdecd5fd5a0e36f] --- src/evemu.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/evemu.c b/src/evemu.c index 42dbe1d..2f457c1 100644 --- a/src/evemu.c +++ b/src/evemu.c @@ -63,6 +63,14 @@ #define SYSCALL(call) while (((call) == -1) && (errno == EINTR)) +#ifndef input_event_sec +#define input_event_sec time.tv_sec +#endif + +#ifndef input_event_usec +#define input_event_usec time.tv_usec +#endif + enum error_level { INFO, WARNING, -- 2.24.1 ================================================ FILE: package/evemu/Config.in ================================================ config BR2_PACKAGE_EVEMU bool "evemu" select BR2_PACKAGE_LIBEVDEV help evemu records and replays device descriptions and events http://www.freedesktop.org/wiki/Evemu/ ================================================ FILE: package/evemu/evemu.hash ================================================ # From https://lists.freedesktop.org/archives/input-tools/2017-September/001416.html sha256 78c9400d55eeeb5ab75161360543f9376438c4da4934cb34cdda5b46021ae379 evemu-2.7.0.tar.xz # locally computed sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING ================================================ FILE: package/evemu/evemu.mk ================================================ ################################################################################ # # evemu # ################################################################################ EVEMU_VERSION = 2.7.0 EVEMU_SITE = http://www.freedesktop.org/software/evemu EVEMU_SOURCE = evemu-$(EVEMU_VERSION).tar.xz EVEMU_LICENSE = LGPL-3.0 (library), GPL-3.0 (tools) EVEMU_LICENSE_FILES = COPYING # asciidoc used to generate manpages, which we don't need, and if it's # present on the build host, it ends getting called with our host-python # which doesn't have all the needed modules enabled, breaking the build EVEMU_CONF_ENV = ac_cv_path_ASCIIDOC="" # disable tests generation because of C++ dependency EVEMU_CONF_OPTS += --disable-tests # Uses PKG_CHECK_MODULES() in configure.ac EVEMU_DEPENDENCIES = host-pkgconf libevdev # Check for target python ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y) EVEMU_CONF_OPTS += --enable-python-bindings EVEMU_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON3),python3,python) else EVEMU_CONF_OPTS += --disable-python-bindings endif $(eval $(autotools-package)) ================================================ FILE: package/evtest/0001-Add-missing-limits.h-include.patch ================================================ From 7d7c5a81b0e2f3321d269b7acc450d1eec7a910b Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Sun, 18 Aug 2019 09:57:23 +0300 Subject: [PATCH] Add missing limits.h include MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes build with musl libc that does not include limits.h indirectly via other headers. evtest.c: In function ‘scan_devices’: evtest.c:886:14: error: ‘PATH_MAX’ undeclared (first use in this function); did you mean INT8_MAX’? char fname[PATH_MAX]; ^~~~~~~~ Signed-off-by: Baruch Siach --- Upstream status: sent to input-tools@lists.freedesktop.org (moderated) evtest.c | 1 + 1 file changed, 1 insertion(+) diff --git a/evtest.c b/evtest.c index 37d4f8540333..548c203564d3 100644 --- a/evtest.c +++ b/evtest.c @@ -56,6 +56,7 @@ #include #include #include +#include #include #include #include -- 2.23.0.rc1 ================================================ FILE: package/evtest/0002-Fix-build-on-32bit-arches-with-64bit-time_t.patch ================================================ From 70c5dd9e858ed577a4bbe7ec8920934c89df08fc Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 30 Nov 2019 11:58:58 -0800 Subject: [PATCH] Fix build on 32bit arches with 64bit time_t time element is deprecated on new input_event structure in kernel's input.h [1] [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f Signed-off-by: Khem Raj Signed-off-by: Baruch Siach --- Upstream status: commit 648f5c1a9e0 evtest.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/evtest.c b/evtest.c index 548c203564d3..8d592f42bdca 100644 --- a/evtest.c +++ b/evtest.c @@ -61,6 +61,11 @@ #include #include +#ifndef input_event_sec +#define input_event_sec time.tv_sec +#define input_event_usec time.tv_usec +#endif + #define BITS_PER_LONG (sizeof(long) * 8) #define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1) #define OFF(x) ((x)%BITS_PER_LONG) @@ -1140,7 +1145,7 @@ static int print_events(int fd) type = ev[i].type; code = ev[i].code; - printf("Event: time %ld.%06ld, ", ev[i].time.tv_sec, ev[i].time.tv_usec); + printf("Event: time %ld.%06ld, ", ev[i].input_event_sec, ev[i].input_event_usec); if (type == EV_SYN) { if (code == SYN_MT_REPORT) -- 2.25.1 ================================================ FILE: package/evtest/Config.in ================================================ config BR2_PACKAGE_EVTEST bool "evtest" help evtest displays information on the input device specified on the command line, including all the events supported by the device. It then monitors the device and displays all the events layer events generated. https://gitlab.freedesktop.org/libevdev/evtest ================================================ FILE: package/evtest/evtest.hash ================================================ # locally computed sha256 0e7a2eeff380af796e5e9b21b6f48fd706c58c931162c151c2c1074bdfeb85c6 evtest-evtest-1.34.tar.gz # License files sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/evtest/evtest.mk ================================================ ################################################################################ # # evtest # ################################################################################ EVTEST_VERSION = 1.34 EVTEST_SOURCE = evtest-evtest-$(EVTEST_VERSION).tar.gz EVTEST_SITE = https://gitlab.freedesktop.org/libevdev/evtest/-/archive/evtest-$(EVTEST_VERSION) EVTEST_LICENSE = GPL-2.0+ EVTEST_LICENSE_FILES = COPYING EVTEST_DEPENDENCIES = host-pkgconf # needed because source package contains no generated files EVTEST_AUTORECONF = YES # asciidoc used to generate manpages, which we don't need, and if it's # present on the build host, it ends getting called with our host-python # which doesn't have all the needed modules enabled, breaking the build EVTEST_CONF_ENV = ac_cv_path_ASCIIDOC="" $(eval $(autotools-package)) ================================================ FILE: package/execline/Config.in ================================================ config BR2_PACKAGE_EXECLINE bool "execline" depends on BR2_USE_MMU # skalibs select BR2_PACKAGE_SKALIBS help execline is a (non-interactive) scripting language, like sh; but its syntax is quite different from a traditional shell syntax. The execlineb program is meant to be used as an interpreter for a text file; the other commands are essentially useful inside an execlineb script. http://skarnet.org/software/execline/ ================================================ FILE: package/execline/execline.hash ================================================ # Locally generated sha256 a373f497d2335905d750e2f3be2ba47a028c11c4a7d5595dca9965c161e53aed execline-2.8.0.1.tar.gz sha256 adecb8bedfaae27fcfe65ecb3ef0e2e71aa2a2b49dc21886a200bc677d93e6ec COPYING ================================================ FILE: package/execline/execline.mk ================================================ ################################################################################ # # execline # ################################################################################ EXECLINE_VERSION = 2.8.0.1 EXECLINE_SITE = http://skarnet.org/software/execline EXECLINE_LICENSE = ISC EXECLINE_LICENSE_FILES = COPYING EXECLINE_INSTALL_STAGING = YES EXECLINE_DEPENDENCIES = skalibs EXECLINE_CONF_OPTS = \ --prefix=/ \ --with-sysdeps=$(STAGING_DIR)/lib/skalibs/sysdeps \ --with-include=$(STAGING_DIR)/include \ --with-dynlib=$(STAGING_DIR)/lib \ --with-lib=$(STAGING_DIR)/lib/skalibs \ $(if $(BR2_STATIC_LIBS),,--disable-allstatic) \ $(SHARED_STATIC_LIBS_OPTS) define EXECLINE_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(EXECLINE_CONF_OPTS)) endef define EXECLINE_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define EXECLINE_REMOVE_STATIC_LIB_DIR rm -rf $(TARGET_DIR)/usr/lib/execline endef EXECLINE_POST_INSTALL_TARGET_HOOKS += EXECLINE_REMOVE_STATIC_LIB_DIR define EXECLINE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef define EXECLINE_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef HOST_EXECLINE_DEPENDENCIES = host-skalibs # Set --shebangdir to /usr/bin, as this value is used by the host variant of # s6-rc when generating execline scripts for the target. HOST_EXECLINE_CONF_OPTS = \ --prefix=$(HOST_DIR) \ --shebangdir=/usr/bin \ --with-sysdeps=$(HOST_DIR)/lib/skalibs/sysdeps \ --with-include=$(HOST_DIR)/include \ --with-dynlib=$(HOST_DIR)/lib \ --disable-static \ --enable-shared \ --disable-allstatic define HOST_EXECLINE_CONFIGURE_CMDS (cd $(@D); $(HOST_CONFIGURE_OPTS) ./configure $(HOST_EXECLINE_CONF_OPTS)) endef define HOST_EXECLINE_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_EXECLINE_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/exempi/Config.in ================================================ config BR2_PACKAGE_EXEMPI bool "exempi" depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR select BR2_PACKAGE_EXPAT select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_ZLIB help Exempi is an implementation of XMP (Extensible Metadata Platform). Version 2.x is based on Adobe XMP SDK. http://libopenraw.freedesktop.org/wiki/Exempi comment "exempi needs a toolchain w/ C++, dynamic library, threads, wchar" depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR ================================================ FILE: package/exempi/exempi.hash ================================================ # Locally calculated sha256 52f54314aefd45945d47a6ecf4bd21f362e6467fa5d0538b0d45a06bc6eaaed5 exempi-2.5.2.tar.bz2 sha256 3d3c3593c15e0d35bdae0df7c642106250f6be3adc61477419413900f23ae607 COPYING ================================================ FILE: package/exempi/exempi.mk ================================================ ################################################################################ # # exempi # ################################################################################ EXEMPI_VERSION = 2.5.2 EXEMPI_SOURCE = exempi-$(EXEMPI_VERSION).tar.bz2 EXEMPI_SITE = https://libopenraw.freedesktop.org/download EXEMPI_INSTALL_STAGING = YES EXEMPI_CONF_OPTS = --disable-unittest EXEMPI_DEPENDENCIES = host-pkgconf expat zlib \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) EXEMPI_LICENSE = BSD-3-Clause EXEMPI_LICENSE_FILES = COPYING EXEMPI_CPE_ID_VENDOR = exempi_project $(eval $(autotools-package)) ================================================ FILE: package/exfat/Config.in ================================================ config BR2_PACKAGE_EXFAT bool "exFAT (FUSE)" depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse depends on BR2_USE_MMU # libfuse depends on BR2_USE_WCHAR depends on !BR2_STATIC_LIBS # libfuse select BR2_PACKAGE_LIBFUSE help A full-featured exFAT file system implementation for GNU/Linux and other Unix-like systems as a FUSE module. https://github.com/relan/exfat comment "exfat needs a toolchain w/ wchar, threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || BR2_STATIC_LIBS ================================================ FILE: package/exfat/exfat.hash ================================================ # Locally calculated sha256 07652136064da5e4d32df5555f88c138ffa4835a23b88a5bae2015f21006e0d3 fuse-exfat-1.3.0.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/exfat/exfat.mk ================================================ ################################################################################ # # exfat # ################################################################################ EXFAT_VERSION = 1.3.0 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 EXFAT_LICENSE = GPL-2.0+ EXFAT_LICENSE_FILES = COPYING EXFAT_CPE_ID_VENDOR = exfat_project EXFAT_CFLAGS = $(TARGET_CFLAGS) -std=c99 EXFAT_CONF_OPTS += --exec-prefix=/ $(eval $(autotools-package)) ================================================ FILE: package/exfat-utils/Config.in ================================================ config BR2_PACKAGE_EXFAT_UTILS bool "exfat-utils" depends on BR2_USE_WCHAR help exFAT filesystem utilities. This is the set of user-space utilities that go together with the FUSE-based exfat driver from package/exfat. If you're using the exfat driver from the official Linux kernel (merged as of Linux 5.7), you must use the user-space utilities from package/exfatprogs. https://github.com/relan/exfat comment "exfat-utils needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/exfat-utils/exfat-utils.hash ================================================ # Locally calculated sha256 dfebd07a7b907e2d603d3a9626e6440bd43ec6c4e8c07ccfc57ce9502b724835 exfat-utils-1.3.0.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/exfat-utils/exfat-utils.mk ================================================ ################################################################################ # # exfat-utils # ################################################################################ EXFAT_UTILS_VERSION = 1.3.0 EXFAT_UTILS_SITE = https://github.com/relan/exfat/releases/download/v$(EXFAT_UTILS_VERSION) EXFAT_UTILS_LICENSE = GPL-2.0+ EXFAT_UTILS_LICENSE_FILES = COPYING EXFAT_UTILS_CONF_OPTS += --exec-prefix=/ $(eval $(autotools-package)) ================================================ FILE: package/exfatprogs/Config.in ================================================ config BR2_PACKAGE_EXFATPROGS bool "exfatprogs" depends on BR2_USE_WCHAR help exFAT filesystem userspace utilities. This is the set of tools that works together with the exfat driver in the official Linux kernel (merged in Linux 5.7). If you're using the FUSE-based exfat support (from package/exfat), you must use the corresponding user-space programs in package/exfat-utils. https://github.com/exfatprogs/exfatprogs comment "exfatprogs needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/exfatprogs/Config.in.host ================================================ config BR2_PACKAGE_HOST_EXFATPROGS bool "host exfatprogs" help exFAT filesystem userspace utilities This is the set of tools that works together with the exfat driver in the official Linux kernel (merged in Linux 5.7). If you're using the FUSE-based exfat support (from package/exfat), you must use the corresponding user-space programs in package/exfat-utils. https://github.com/exfatprogs/exfatprogs ================================================ FILE: package/exfatprogs/exfatprogs.hash ================================================ # From https://github.com/exfatprogs/exfatprogs/releases/download/1.1.0/exfatprogs-1.1.0.tar.xz.sha256 sha256 69e2cf6430fc1d083c6ae0aea5eb80bf1b8e9775ed833bcd8331aef0fcacaf85 exfatprogs-1.1.0.tar.xz # Hash for license file sha256 576540abf5e95029ad4ad90e32071385a5e95b2c30708c706116f3eb87b9a3de COPYING ================================================ FILE: package/exfatprogs/exfatprogs.mk ================================================ ################################################################################ # # exfatprogs # ################################################################################ EXFATPROGS_VERSION = 1.1.0 EXFATPROGS_SOURCE = exfatprogs-$(EXFATPROGS_VERSION).tar.xz EXFATPROGS_SITE = https://github.com/exfatprogs/exfatprogs/releases/download/$(EXFATPROGS_VERSION) EXFATPROGS_LICENSE = GPL-2.0+ EXFATPROGS_LICENSE_FILES = COPYING EXFATPROGS_DEPENDENCIES = host-pkgconf HOST_EXFATPROGS_DEPENDENCIES = host-pkgconf $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/exim/0001-Build-buildconfig-for-the-host.patch ================================================ buildconfig is meant to be executed on the host, so it has to be compiled using $(HOSTCC), not $(CC). Signed-off-by: Luca Ceresoli --- OS/Makefile-Base | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/OS/Makefile-Base b/OS/Makefile-Base index 29a6ad3..420ba60 100644 --- a/OS/Makefile-Base +++ b/OS/Makefile-Base @@ -114,8 +114,8 @@ allexim: config.h $(EXIM_MONITOR) exicyclog exinext exiwhat \ # Targets for special-purpose configuration header builders buildconfig: buildconfig.c - @echo "$(CC) buildconfig.c" - $(FE)$(CC) $(CFLAGS) $(INCLUDE) -o buildconfig buildconfig.c $(LIBS) + @echo "$(HOSTCC) buildconfig.c" + $(FE)$(HOSTCC) $(HOSTCFLAGS) $(INCLUDE) -o buildconfig buildconfig.c # Target for the exicyclog utility script ================================================ FILE: package/exim/0002-Don-t-make-backup-copies-of-installed-files.patch ================================================ If exim had already been installed, the install script makes backup copies of the pre-existing executables with a ".0" suffix. This leads to useless duplicated files on the target, so disable this piece of code. Signed-off-by: Luca Ceresoli --- scripts/exim_install | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/exim_install b/scripts/exim_install index 616ab3c..e68e7d5 100755 --- a/scripts/exim_install +++ b/scripts/exim_install @@ -344,15 +344,15 @@ while [ $# -gt 0 ]; do else if ../scripts/newer ${name} ${BIN_DIRECTORY}/${name}; then - if [ -f ${BIN_DIRECTORY}/${name} ]; then - echo ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O - ${real} ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O - if [ $? -ne 0 ]; then - echo $com "" - echo $com "*** Exim installation ${ver}failed ***" - exit 1 - fi - fi +# if [ -f ${BIN_DIRECTORY}/${name} ]; then +# echo ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O +# ${real} ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O +# if [ $? -ne 0 ]; then +# echo $com "" +# echo $com "*** Exim installation ${ver}failed ***" +# exit 1 +# fi +# fi echo ${CP} ${name} ${BIN_DIRECTORY} ${real} ${CP} ${name} ${BIN_DIRECTORY} if [ $? -ne 0 ]; then ================================================ FILE: package/exim/0003-Skip-version-check-and-symlink-installation.patch ================================================ The exim install script installs a binary named exim-, plus a symlink to it named exim. In order to achieve this "feature" (of dubious usefulness) it runs the executable (on the host) and then filters its output to grab the version number. This clearly cannot work if the executable is cross-compiled, so get rid of all of it and just install an executable file called exim. Inspired by: http://patch-tracker.debian.org/patch/series/view/exim4/4.76-2/35_install.dpatch Signed-off-by: Luca Ceresoli (rebased against exim 4.89) Signed-off-by: Bernd Kuhls --- scripts/exim_install | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/exim_install b/scripts/exim_install index e68e7d5..487a4e1 100755 --- a/scripts/exim_install +++ b/scripts/exim_install @@ -58,6 +58,8 @@ shift done +do_symlink=no + # Get the values of BIN_DIRECTORY, CONFIGURE_FILE, INFO_DIRECTORY, NO_SYMLINK, # SYSTEM_ALIASES_FILE, and EXE from the global Makefile (in the build # directory). EXE is empty except in the Cygwin environment. In each case, keep @@ -217,9 +219,7 @@ # The exim binary is handled specially if [ $name = exim${EXE} ]; then - exim="./exim -bV -C /dev/null" - version=exim-`$exim 2>/dev/null | \ - awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE} + version=exim if [ "${version}" = "exim-${EXE}" ]; then echo $com "" ================================================ FILE: package/exim/0004-Fix-uClibc-build.patch ================================================ From 68ea4fc7ca53bf010e5ec738ad078452f0eaa639 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Tue, 23 Jul 2019 18:48:06 +0200 Subject: [PATCH] Fix uClibc build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit structs.h:757:18: error: ‘NS_MAXMSG’ undeclared here (not in a function); did you mean ‘N_MASC’? uschar answer[NS_MAXMSG]; /* the answer itself */ Patch sent upstream: https://github.com/Exim/exim/pull/70 Signed-off-by: Bernd Kuhls --- OS/os.h-Linux | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OS/os.h-Linux b/OS/os.h-Linux index 63cf9babd..1d82e9bad 100644 --- a/OS/os.h-Linux +++ b/OS/os.h-Linux @@ -87,5 +87,9 @@ then change the 0 to 1 in the next block. */ # define TCPI_OPT_SYN_DATA 32 #endif +/* Needed for uClibc */ +#ifndef NS_MAXMSG +# define NS_MAXMSG 65535 +#endif /* End */ -- 2.20.1 ================================================ FILE: package/exim/0005-exim_lock-fix-lstat-related-build-errors.patch ================================================ From bbcf4320134efd8a01ce5a02bb9af62019ca05f6 Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Tue, 4 Feb 2020 15:57:48 +0100 Subject: [PATCH] exim_lock: fix lstat-related build errors exim_lock fails to cross-compile with the Sourcery CodeBench ARM 2014.05 toolchain due the a missing include of sys/types.h, needed for the constants used by fstat() and lstat(). Discovered when cross-compiling with the Buildroot embedded Linux buildsystem. Fixes: exim_lock.c:427:30: error: 'S_IFMT' undeclared (first use in this function) if ((statbuf.st_mode & S_IFMT) == S_IFLNK) ^ exim_lock.c:427:30: note: each undeclared identifier is reported only once for each function it appears in exim_lock.c:427:41: error: 'S_IFLNK' undeclared (first use in this function) if ((statbuf.st_mode & S_IFMT) == S_IFLNK) ^ Signed-off-by: Luca Ceresoli Upstream-status: https://bugs.exim.org/show_bug.cgi?id=2523 --- src/exim_lock.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/exim_lock.c b/src/exim_lock.c index 068216816054..cb140aff6436 100644 --- a/src/exim_lock.c +++ b/src/exim_lock.c @@ -13,6 +13,8 @@ Argument: the name of the lock file Copyright (c) The Exim Maintainers 2016 */ +#define _XOPEN_SOURCE + #include "os.h" #include @@ -26,6 +28,7 @@ Copyright (c) The Exim Maintainers 2016 #include #include #include +#include #include #include #include -- 2.25.0 ================================================ FILE: package/exim/0006-sieve-fix-build-errors.patch ================================================ From e9d0b5b022df172d3615e9e2875506c74e6d7cd1 Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Wed, 5 Feb 2020 17:13:57 +0100 Subject: [PATCH] sieve: fix build errors sieve fails to cross-compile with the Sourcery CodeBench ARM 2014.05 toolchain with a huge number of errors, including: .../sysroot/usr/include/arpa/nameser.h:115:2: error: unknown type name 'u_char' const u_char *_msg, *_eom; ^ .../sysroot/usr/include/arpa/nameser.h:474:1: error: unknown type name 'u_long' u_long ns_get32 (const u_char *) __THROW; ^ .../sysroot/usr/include/arpa/nameser.h:475:31: error: expected ')' before '*' token void ns_put16 (u_int, u_char *) __THROW; ^ Discovered when cross-compiling with the Buildroot embedded Linux buildsystem. Signed-off-by: Luca Ceresoli Upstream-status: https://bugs.exim.org/show_bug.cgi?id=2523 --- src/sieve.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/sieve.c b/src/sieve.c index 5e8d1e6f4776..9632f2d43810 100644 --- a/src/sieve.c +++ b/src/sieve.c @@ -12,6 +12,8 @@ /* Sieve mail filter. */ +#define _BSD_SOURCE + #include #include #include -- 2.25.0 ================================================ FILE: package/exim/Config.in ================================================ comment "exim needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_EXIM bool "exim" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_PCRE select BR2_PACKAGE_BERKELEYDB help Exim is a message transfer agent (MTA) developed at the University of Cambridge for use on Unix systems connected to the Internet. http://www.exim.org/ if BR2_PACKAGE_EXIM config BR2_PACKAGE_EXIM_CUSTOM_CONFIG_FILE string "Custom configuration file" help By default, when this option is left empty, Buildroot generates a configuration file for exim with reasonable settings. If you want to override the configuration file generated by Buildroot with a customized file, set here the path to your configuration file with this option. This file shall comply with the syntax defined in the exim documentation (http://www.exim.org/docs.html). Buildroot will generate a configuration file composed of the content of the file you provide plus the toolchain-related settings needed for cross-compilation. endif ================================================ FILE: package/exim/S86exim ================================================ #!/bin/sh # # Start/stop exim # PIDFILE=/var/run/exim/exim.pid case "$1" in start) echo "Starting exim..." if [ ! -d /var/log/exim ]; then mkdir -p /var/log/exim chown exim:mail /var/log/exim fi if [ ! -d /var/run/exim ]; then mkdir -p /var/run/exim chown root:mail /var/run/exim fi start-stop-daemon -S -x exim -- -bd ;; stop) printf "Stopping exim..." start-stop-daemon -K -o -p $PIDFILE ;; restart|reload) "$0" stop "$0" start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/exim/exim.hash ================================================ # From https://ftp.exim.org/pub/exim/exim4/00-sha256sums.txt sha256 cc9cb653fff2ea947c3702680b59c99ac0bd1bbf19976d37e22a463cd804f167 exim-4.95.tar.xz # From https://ftp.exim.org/pub/exim/exim4/00-sha512sums.txt sha512 93d09c20d99f27da5edbe3e6dc7d25aa4548faa2b67ca26f2cc0b4aeaf58398dd468e0263714fcf0df97531f05d16fcd3f1f0e9d0656ead7858a66b248a44a65 exim-4.95.tar.xz # Locally calculated sha256 49240db527b7e55b312a46fc59794fde5dd006422e422257f4f057bfd27b3c8f LICENCE ================================================ FILE: package/exim/exim.mk ================================================ ################################################################################ # # exim # ################################################################################ EXIM_VERSION = 4.95 EXIM_SOURCE = exim-$(EXIM_VERSION).tar.xz EXIM_SITE = https://ftp.exim.org/pub/exim/exim4 EXIM_LICENSE = GPL-2.0+ EXIM_LICENSE_FILES = LICENCE EXIM_CPE_ID_VENDOR = exim EXIM_SELINUX_MODULES = exim mta EXIM_DEPENDENCIES = host-berkeleydb host-pcre pcre berkeleydb host-pkgconf # Modify a variable value. It must already exist in the file, either # commented or not. define exim-config-change # variable-name, variable-value $(SED) 's,^[#[:space:]]*$1[[:space:]]*=.*$$,$1=$2,' \ $(@D)/Local/Makefile endef # Comment-out a variable. Has no effect if it does not exits. define exim-config-unset # variable-name $(SED) 's,^\([[:space:]]*$1[[:space:]]*=.*$$\),# \1,' \ $(@D)/Local/Makefile endef # Add a variable definition. It must not already exist in the file, # otherwise it would be defined twice with potentially different values. define exim-config-add # variable-name, variable-value echo "$1=$2" >>$(@D)/Local/Makefile endef define EXIM_USE_CUSTOM_CONFIG_FILE $(INSTALL) -m 0644 $(BR2_PACKAGE_EXIM_CUSTOM_CONFIG_FILE) \ $(@D)/Local/Makefile endef define EXIM_USE_DEFAULT_CONFIG_FILE $(INSTALL) -m 0644 $(@D)/src/EDITME $(@D)/Local/Makefile $(call exim-config-change,BIN_DIRECTORY,/usr/sbin) $(call exim-config-change,CONFIGURE_FILE,/etc/exim/configure) $(call exim-config-change,LOG_FILE_PATH,/var/log/exim/exim_%slog) $(call exim-config-change,PID_FILE_PATH,/var/run/exim/exim.pid) $(call exim-config-change,EXIM_USER,ref:exim) $(call exim-config-change,EXIM_GROUP,mail) $(call exim-config-change,TRANSPORT_LMTP,yes) $(call exim-config-change,PCRE_LIBS,-lpcre) $(call exim-config-change,PCRE_CONFIG,no) $(call exim-config-change,HAVE_ICONV,no) $(call exim-config-unset,EXIM_MONITOR) $(call exim-config-change,AUTH_PLAINTEXT,yes) $(call exim-config-change,AUTH_CRAM_MD5,yes) $(call exim-config-unset,SUPPORT_DANE) endef ifeq ($(BR2_PACKAGE_DOVECOT),y) EXIM_DEPENDENCIES += dovecot define EXIM_USE_DEFAULT_CONFIG_FILE_DOVECOT $(call exim-config-change,AUTH_DOVECOT,yes) endef endif ifeq ($(BR2_PACKAGE_CLAMAV),y) EXIM_DEPENDENCIES += clamav define EXIM_USE_DEFAULT_CONFIG_FILE_CLAMAV $(call exim-config-change,WITH_CONTENT_SCAN,yes) endef endif ifeq ($(BR2_PACKAGE_OPENSSL),y) EXIM_DEPENDENCIES += host-openssl openssl define EXIM_USE_DEFAULT_CONFIG_FILE_OPENSSL $(call exim-config-change,USE_OPENSSL,yes) $(call exim-config-change,USE_OPENSSL_PC,openssl) endef else define EXIM_USE_DEFAULT_CONFIG_FILE_OPENSSL $(call exim-config-change,DISABLE_TLS,yes) endef endif # musl does not provide struct ip_options nor struct ip_opts (but it is # available with both glibc and uClibc) ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) define EXIM_FIX_IP_OPTIONS_FOR_MUSL $(SED) 's/#define GLIBC_IP_OPTIONS/#define DARWIN_IP_OPTIONS/' \ $(@D)/OS/os.h-Linux endef endif define EXIM_CONFIGURE_TOOLCHAIN $(call exim-config-add,CC,$(TARGET_CC)) $(call exim-config-add,CFLAGS,$(TARGET_CFLAGS)) $(call exim-config-add,AR,$(TARGET_AR) cq) $(call exim-config-add,RANLIB,$(TARGET_RANLIB)) $(call exim-config-add,HOSTCC,$(HOSTCC)) $(call exim-config-add,HOSTCFLAGS,$(HOSTCFLAGS)) $(EXIM_FIX_IP_OPTIONS_FOR_MUSL) endef ifneq ($(call qstrip,$(BR2_PACKAGE_EXIM_CUSTOM_CONFIG_FILE)),) define EXIM_CONFIGURE_CMDS $(EXIM_USE_CUSTOM_CONFIG_FILE) $(EXIM_CONFIGURE_TOOLCHAIN) endef else # CUSTOM_CONFIG define EXIM_CONFIGURE_CMDS $(EXIM_USE_DEFAULT_CONFIG_FILE) $(EXIM_USE_DEFAULT_CONFIG_FILE_DOVECOT) $(EXIM_USE_DEFAULT_CONFIG_FILE_CLAMAV) $(EXIM_USE_DEFAULT_CONFIG_FILE_OPENSSL) $(EXIM_CONFIGURE_TOOLCHAIN) endef endif # CUSTOM_CONFIG # exim needs a bit of love to build statically ifeq ($(BR2_STATIC_LIBS),y) EXIM_STATIC_FLAGS = LFLAGS="-pthread --static" endif # We need the host version of macro_predef during the build, before # building it we need to prepare the makefile. define EXIM_BUILD_CMDS $(TARGET_MAKE_ENV) build=br $(MAKE) -C $(@D) makefile $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/build-br macro_predef \ CC="$(HOSTCC)" \ LNCC="$(HOSTCC)" \ CFLAGS="-std=c99 $(HOST_CFLAGS)" \ LFLAGS="-fPIC $(HOST_LDFLAGS)" $(TARGET_MAKE_ENV) build=br $(MAKE) -C $(@D) $(EXIM_STATIC_FLAGS) \ CFLAGS="-std=c99 $(TARGET_CFLAGS)" endef # Need to replicate the LFLAGS in install, as exim still wants to build # something when installing... define EXIM_INSTALL_TARGET_CMDS DESTDIR=$(TARGET_DIR) INSTALL_ARG="-no_chown -no_symlink" build=br \ $(MAKE) -C $(@D) $(EXIM_STATIC_FLAGS) \ CFLAGS="-std=c99 $(TARGET_CFLAGS)" \ install chmod u+s $(TARGET_DIR)/usr/sbin/exim endef define EXIM_USERS exim 88 mail 8 * - - - exim endef define EXIM_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/exim/S86exim \ $(TARGET_DIR)/etc/init.d/S86exim endef define EXIM_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/exim/exim.service \ $(TARGET_DIR)/usr/lib/systemd/system/exim.service endef $(eval $(generic-package)) ================================================ FILE: package/exim/exim.service ================================================ [Unit] Description=Exim MTA After=syslog.target network.target [Service] User=exim Group=mail LogsDirectory=exim RuntimeDirectory=exim ExecStart=/usr/sbin/exim -bdf Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/exiv2/0001-add-BUILD_WITH_STACK_PROTECTOR-option.patch ================================================ From 4bb57da5fb0bb0d7e747b9e325e9ec0876ffc1f9 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 31 Jul 2021 16:36:50 +0200 Subject: [PATCH] add BUILD_WITH_STACK_PROTECTOR option Add BUILD_WITH_STACK_PROTECTOR to avoid the following build failure with toolchains that don't support stack-protector: /home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/mipsel-buildroot-linux-uclibc/9.3.0/../../../../mipsel-buildroot-linux-uclibc/bin/ld: utils.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag]+0xd0): undefined reference to `__stack_chk_fail' Indeed, support for -fstack-protector-strong can't be detected through check_cxx_compiler_flag as some toolchains need to link with -lssp to enable SSP support Fixes: - http://autobuild.buildroot.org/results/ae4635899124c602c70d2b342a76f95c34aa4a3d Upstream: https://github.com/Exiv2/exiv2/commit/f31c0eba098889899d29b7b0da830aee2b62a7b8 Signed-off-by: Fabrice Fontaine --- CMakeLists.txt | 1 + cmake/compilerFlags.cmake | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f0da06a..0746ee14 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,6 +47,7 @@ mark_as_advanced( EXIV2_TEAM_USE_SANITIZERS ) +option( BUILD_WITH_STACK_PROTECTOR "Build with stack protector" ON ) option( BUILD_WITH_CCACHE "Use ccache to speed up compilations" OFF ) option( BUILD_WITH_COVERAGE "Add compiler flags to generate coverage stats" OFF ) diff --git a/cmake/compilerFlags.cmake b/cmake/compilerFlags.cmake index 35faf501..0a646e50 100644 --- a/cmake/compilerFlags.cmake +++ b/cmake/compilerFlags.cmake @@ -33,8 +33,8 @@ if ( MINGW OR UNIX OR MSYS ) # MINGW, Linux, APPLE, CYGWIN endif() if(HAS_FCF_PROTECTION) add_compile_options(-fcf-protection) - endif() - if(HAS_FSTACK_PROTECTOR_STRONG) + endif() + if(BUILD_WITH_STACK_PROTECTOR AND HAS_FSTACK_PROTECTOR_STRONG) add_compile_options(-fstack-protector-strong) endif() endif() -- 2.31.1 ================================================ FILE: package/exiv2/Config.in ================================================ comment "exiv2 needs a uClibc or glibc toolchain w/ C++, wchar, dynamic library, threads" depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP \ || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS \ || BR2_TOOLCHAIN_USES_MUSL config BR2_PACKAGE_EXIV2 bool "exiv2" depends on !BR2_STATIC_LIBS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_TOOLCHAIN_USES_MUSL # PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP depends on BR2_USE_WCHAR help Exiv2 is a C++ library and a command line utility to manage image metadata. It provides fast and easy read and write access to the Exif, IPTC and XMP metadata of images in various formats. http://www.exiv2.org/ if BR2_PACKAGE_EXIV2 config BR2_PACKAGE_EXIV2_PNG bool "PNG image support" select BR2_PACKAGE_ZLIB help Build with PNG image support config BR2_PACKAGE_EXIV2_XMP bool "XMP support" select BR2_PACKAGE_EXPAT help Build with XMP support config BR2_PACKAGE_EXIV2_LENSDATA bool "Nikon lens name database" help Integrate Nikon lens name database. This database comes from a thirdparty and is free to use in non-commercial, GPL or open source software only. For more informations src/nikonmn_int.cpp. endif ================================================ FILE: package/exiv2/exiv2.hash ================================================ # Locally calculated sha256 35a58618ab236a901ca4928b0ad8b31007ebdc0386d904409d825024e45ea6e2 exiv2-0.27.5-Source.tar.gz sha256 a7ba75cb966aca374711e2af49e5f3aea6a4443a803440f5d93e73a5a1222f66 COPYING ================================================ FILE: package/exiv2/exiv2.mk ================================================ ################################################################################ # # exiv2 # ################################################################################ EXIV2_VERSION = 0.27.5 EXIV2_SOURCE = exiv2-$(EXIV2_VERSION)-Source.tar.gz EXIV2_SITE = https://exiv2.org/builds EXIV2_INSTALL_STAGING = YES EXIV2_LICENSE = GPL-2.0+ EXIV2_LICENSE_FILES = COPYING EXIV2_CPE_ID_VENDOR = exiv2 EXIV2_CONF_OPTS += \ -DBUILD_WITH_STACK_PROTECTOR=OFF \ -DEXIV2_BUILD_SAMPLES=OFF ifeq ($(BR2_PACKAGE_EXIV2_LENSDATA),y) EXIV2_CONF_OPTS += -DEXIV2_ENABLE_LENSDATA=ON else EXIV2_CONF_OPTS += -DEXIV2_ENABLE_LENSDATA=OFF endif ifeq ($(BR2_PACKAGE_EXIV2_PNG),y) EXIV2_CONF_OPTS += -DEXIV2_ENABLE_PNG=ON EXIV2_DEPENDENCIES += zlib else EXIV2_CONF_OPTS += -DEXIV2_ENABLE_PNG=OFF endif ifeq ($(BR2_PACKAGE_EXIV2_XMP),y) EXIV2_CONF_OPTS += -DEXIV2_ENABLE_XMP=ON EXIV2_DEPENDENCIES += expat else EXIV2_CONF_OPTS += -DEXIV2_ENABLE_XMP=OFF endif EXIV2_DEPENDENCIES += $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) EXIV2_CONF_OPTS += -DEXIV2_ENABLE_NLS=ON else EXIV2_CONF_OPTS += -DEXIV2_ENABLE_NLS=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/expat/Config.in ================================================ config BR2_PACKAGE_EXPAT bool "expat" help The Expat XML Parser. http://expat.sourceforge.net ================================================ FILE: package/expat/expat.hash ================================================ # From https://sourceforge.net/projects/expat/files/expat/2.4.1/ md5 a4fb91a9441bcaec576d4c4a56fa3aa6 expat-2.4.1.tar.xz sha1 7988e4df355162500f09837aa95cbb48e6754420 expat-2.4.1.tar.xz # Locally calculated sha256 cf032d0dba9b928636548e32b327a2d66b1aab63c4f4a13dd132c2d1d2f2fb6a expat-2.4.1.tar.xz sha256 8c6b5b6de8fae20b317f4992729abc0e520bfba4c7606cd1e9eeb87418eebdec COPYING ================================================ FILE: package/expat/expat.mk ================================================ ################################################################################ # # expat # ################################################################################ EXPAT_VERSION = 2.4.1 EXPAT_SITE = http://downloads.sourceforge.net/project/expat/expat/$(EXPAT_VERSION) EXPAT_SOURCE = expat-$(EXPAT_VERSION).tar.xz EXPAT_INSTALL_STAGING = YES EXPAT_DEPENDENCIES = host-pkgconf HOST_EXPAT_DEPENDENCIES = host-pkgconf EXPAT_LICENSE = MIT EXPAT_LICENSE_FILES = COPYING EXPAT_CPE_ID_VENDOR = libexpat_project EXPAT_CPE_ID_PRODUCT = libexpat EXPAT_CONF_OPTS = --without-docbook HOST_EXPAT_CONF_OPTS = --without-docbook $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/expect/0001-enable-cross-compilation.patch ================================================ From: Andrew Ruder Subject: [PATCH] enable cross compilation for expect This patch was created by running ./configure on a modern Linux machine and inserting the results into the cross compilation section of each AC_MSG_CHECKING that bombed out with an error. Signed-off-by: Andrew Ruder --- Index: expect-5.45/configure.in =================================================================== --- expect-5.45.orig/configure.in 2013-11-14 07:59:58.732100595 -0600 +++ expect-5.45/configure.in 2013-11-14 07:59:58.732100595 -0600 @@ -481,7 +481,7 @@ , AC_MSG_RESULT(no) , - AC_MSG_ERROR([Expect can't be cross compiled]) + AC_MSG_RESULT(no) ) AC_MSG_CHECKING([if any value exists for WNOHANG]) @@ -506,7 +506,8 @@ AC_MSG_RESULT(no) AC_DEFINE(WNOHANG_BACKUP_VALUE, 1) , - AC_MSG_ERROR([Expect can't be cross compiled]) + AC_MSG_RESULT(yes) + AC_DEFINE(WNOHANG_BACKUP_VALUE, 1) ) # @@ -574,7 +575,7 @@ AC_DEFINE(REARM_SIG) , AC_MSG_RESULT(no) -, AC_MSG_WARN([Expect can't be cross compiled]) +, AC_MSG_RESULT(no) ) # HPUX7 has trouble with the big cat so split it @@ -725,7 +726,7 @@ , AC_MSG_RESULT(no) , - AC_MSG_ERROR([Expect can't be cross compiled]) + AC_MSG_RESULT(no) ) # mach systems have include files for unimplemented features @@ -749,7 +750,9 @@ , AC_MSG_RESULT(no) , - AC_MSG_ERROR([Expect can't be cross compiled]) + AC_DEFINE(HAVE_TERMIO) + PTY_TYPE=termios + AC_MSG_RESULT(yes) ) # now check for the new style ttys (not yet posix) @@ -771,7 +774,9 @@ , AC_MSG_RESULT(no) , - AC_MSG_ERROR([Expect can't be cross compiled]) + AC_DEFINE(HAVE_TERMIOS) + PTY_TYPE=termios + AC_MSG_RESULT(yes) ) fi @@ -794,7 +799,7 @@ , AC_MSG_RESULT(no) , - AC_MSG_ERROR([Expect can't be cross compiled]) + AC_MSG_RESULT(no) ) AC_MSG_CHECKING([if TIOCGWINSZ in termios.h]) @@ -816,7 +821,7 @@ , AC_MSG_RESULT(no) , - AC_MSG_ERROR([Expect can't be cross compiled]) + AC_MSG_RESULT(no) ) # finally check for Cray style ttys @@ -837,7 +842,7 @@ , AC_MSG_RESULT(no) , - AC_MSG_ERROR([Expect can't be cross compiled]) + AC_MSG_RESULT(no) ) # @@ -869,7 +874,9 @@ AC_HAVE_FUNCS(getpty) # following test sets SETPGRP_VOID if setpgrp takes 0 args, else takes 2 -AC_FUNC_SETPGRP +cat >>expect_cf.h <<\_ACEOF +#define SETPGRP_VOID 1 +_ACEOF # # check for timezones @@ -889,7 +896,7 @@ AC_MSG_RESULT(yes), AC_MSG_RESULT(no) , - AC_MSG_ERROR([Expect can't be cross compiled]) + AC_MSG_RESULT(yes) ) ================================================ FILE: package/expect/0002-allow-tcl-build-directory.patch ================================================ From: Andrew Ruder Subject: [PATCH] Allow tcl build directory for linking Some small changes to use TCL_BUILD_LIB_SPEC instead of TCL_LIB_SPEC for linking against tcl directly out of its build directory. Signed-off-by: Andrew Ruder --- Index: expect-5.45/Makefile.in =================================================================== --- expect-5.45.orig/Makefile.in 2013-11-14 07:59:58.732100595 -0600 +++ expect-5.45/Makefile.in 2013-11-14 07:59:58.732100595 -0600 @@ -393,7 +393,7 @@ @LDFLAGS_DEFAULT@ \ -o expect exp_main_exp.o \ @EXP_BUILD_LIB_SPEC@ \ - @TCL_LIB_SPEC@ \ + @TCL_BUILD_LIB_SPEC@ \ @TCL_DL_LIBS@ @PKG_LIBS@ @MATH_LIBS@ \ @TCL_CC_SEARCH_FLAGS@ \ @EXP_CC_SEARCH_FLAGS@ Index: expect-5.45/tclconfig/tcl.m4 =================================================================== --- expect-5.45.orig/tclconfig/tcl.m4 2010-11-09 13:42:10.000000000 -0600 +++ expect-5.45/tclconfig/tcl.m4 2013-11-14 08:02:08.424100580 -0600 @@ -412,6 +412,7 @@ AC_SUBST(TCL_LIB_FILE) AC_SUBST(TCL_LIB_FLAG) AC_SUBST(TCL_LIB_SPEC) + AC_SUBST(TCL_BUILD_LIB_SPEC) AC_SUBST(TCL_STUB_LIB_FILE) AC_SUBST(TCL_STUB_LIB_FLAG) ================================================ FILE: package/expect/Config.in ================================================ config BR2_PACKAGE_EXPECT bool "expect" help Expect is a tool for automating interactive applications such as telnet, ftp, passwd, fsck, rlogin, ssh, tip, etc. http://expect.sourceforge.net/ ================================================ FILE: package/expect/expect.hash ================================================ # From https://sourceforge.net/projects/expect/files/Expect/5.45.4/expect5.45.4.tar.gz.SHA256 sha256 49a7da83b0bdd9f46d04a04deec19c7767bb9a323e40c4781f89caf760b92c34 expect5.45.4.tar.gz # Locally calculated sha256 b2415b17dc8d9a287f4509047ef5ac3436baef7ba7c50faef5222dcdf61a2bab README ================================================ FILE: package/expect/expect.mk ================================================ ################################################################################ # # expect # ################################################################################ EXPECT_VERSION = 5.45.4 EXPECT_SITE = https://sourceforge.net/projects/expect/files/Expect/$(EXPECT_VERSION) EXPECT_SOURCE = expect$(EXPECT_VERSION).tar.gz EXPECT_LICENSE = Public domain EXPECT_LICENSE_FILES = README # 0001-enable-cross-compilation.patch EXPECT_AUTORECONF = YES EXPECT_DEPENDENCIES = tcl EXPECT_CONF_OPTS = --with-tcl=$(BUILD_DIR)/tcl-$(TCL_VERSION)/unix # Since we don't want examples installed EXPECT_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-binaries $(eval $(autotools-package)) ================================================ FILE: package/explorercanvas/Config.in ================================================ config BR2_PACKAGE_EXPLORERCANVAS bool "explorercanvas" help Modern browsers like Firefox, Safari, Chrome and Opera support the HTML5 canvas tag to allow 2D command-based drawing. ExplorerCanvas brings the same functionality to Internet Explorer ( Date: Mon, 14 Sep 2015 22:25:12 +0200 Subject: [PATCH] sha2.c: explicitly include endian.h for BYTE_ORDER macro Fixes a build issue with the musl C library, which doesn't indirectly include endian.h from any of the included system headers: http://autobuild.buildroot.net/results/17b/17bde543db253c008079b04c5e341f804160f59c/build-end.log Upstream-Status: submitted (https://github.com/ffainelli/faifa/pull/12) Signed-off-by: Peter Korsgaard --- sha2.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sha2.c b/sha2.c index f2f5132..4c8a72d 100644 --- a/sha2.c +++ b/sha2.c @@ -40,6 +40,7 @@ #include #include +#include "endian.h" #include "sha2.h" /* -- 2.1.4 ================================================ FILE: package/faifa/0002-hpav_cfg.c-do-not-include-linux-if_ether.h-for-musl-.patch ================================================ From 36eed08a3783df6bb8d92d3c80cd47d0660eeb12 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sat, 30 Jan 2016 16:27:37 +0100 Subject: [PATCH 1/1] hpav_cfg.c: do not include linux/if_ether.h for musl compatibility Fixes a build issue with the musl C library http://autobuild.buildroot.net/results/dc6/dc6e4d7327d2031ef921cccd814605dec73a0f9c/build-end.log Patch sent upstream: https://github.com/ffainelli/faifa/pull/13 Signed-off-by: Bernd Kuhls --- hpav_cfg.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/hpav_cfg.c b/hpav_cfg.c index 7cc53af..45d3f0a 100644 --- a/hpav_cfg.c +++ b/hpav_cfg.c @@ -53,8 +53,6 @@ #include #include -#include - #include "homeplug_av.h" #include "crypto.h" -- 2.7.0.rc3 ================================================ FILE: package/faifa/0003-Makefile.in-fix-asbolute-symlink-of-libfaifa.so.patch ================================================ From d16abf61049947c451a6411a13fc15dda32feb47 Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Sat, 6 Sep 2014 11:23:02 -0700 Subject: [PATCH] Makefile.in: fix asbolute symlink of libfaifa.so Fixes #7 Signed-off-by: Florian Fainelli [Upstream: da2e279fd736d05bcd0ee6e4609c44fece017ba8] Signed-off-by: Thomas Petazzoni --- Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index ba65bee..9dec7ee 100644 --- a/Makefile.in +++ b/Makefile.in @@ -98,9 +98,9 @@ install: installman strip $(INSTALL) -m0755 hpav_cfg $(DESTDIR)$(sbindir) $(INSTALL) -d $(DESTDIR)$(libdir) $(INSTALL) -m0644 $(LIB_SONAME) $(DESTDIR)$(libdir) - ln -sf $(DESTDIR)$(libdir)/$(LIB_SONAME) $(DESTDIR)$(libdir)/$(LIB_SHARED_SO) $(INSTALL) -d $(DESTDIR)$(includedir)/faifa cp $(HEADERS) $(DESTDIR)$(includedir)/faifa + cd $(DESTDIR)$(libdir) && ln -sf $(LIB_SONAME) $(LIB_SHARED_SO) strip: $(STRIP) $(APP) -- 2.23.0 ================================================ FILE: package/faifa/Config.in ================================================ config BR2_PACKAGE_FAIFA bool "faifa" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBPCAP help Faifa can configure any Intellon-based Power Line Communication device using Intellon INT5000 and INT6000 series chips (6000 and 6300 chips). It supports all Intellon-specific management and control frames as well as standard management frames. https://github.com/ffainelli/faifa comment "faifa needs a toolchain w/ dynamic library, threads" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/faifa/faifa.hash ================================================ # locally computed sha256 6eada81f3d21f80b5848338b627784981064d728f8e377e5cf973d31640d4489 faifa-0.1.tar.gz sha256 9b62e4601b2b9cd5719a393e88ed71a8304048862502db765ed9d6ff8cf38c5e COPYING ================================================ FILE: package/faifa/faifa.mk ================================================ ################################################################################ # # faifa # ################################################################################ FAIFA_VERSION = 0.1 FAIFA_SITE = $(call github,ffainelli,faifa,v$(FAIFA_VERSION)) FAIFA_INSTALL_STAGING = YES FAIFA_DEPENDENCIES = libpcap host-autoconf FAIFA_LICENSE = BSD-3-Clause FAIFA_LICENSE_FILES = COPYING FAIFA_MAKE_OPTS += GIT_REV=$(FAIFA_VERSION) # This package uses autoconf, but not automake, so we need to call # their special autogen.sh script, and have custom target and staging # installation commands. define FAIFA_RUN_AUTOGEN cd $(@D) && PATH=$(BR_PATH) ./autogen.sh endef FAIFA_PRE_CONFIGURE_HOOKS += FAIFA_RUN_AUTOGEN define FAIFA_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ PREFIX=/usr \ STRIP=/bin/true \ DESTDIR=$(TARGET_DIR) \ install endef define FAIFA_INSTALL_STAGING_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ PREFIX=/usr \ STRIP=/bin/true \ DESTDIR=$(STAGING_DIR) \ install endef $(eval $(autotools-package)) ================================================ FILE: package/fail2ban/0001-fixed-possible-RCE-vulnerability-unset-escape-variable.patch ================================================ From 410a6ce5c80dd981c22752da034f2529b5eee844 Mon Sep 17 00:00:00 2001 From: sebres Date: Mon, 21 Jun 2021 17:12:53 +0200 Subject: [PATCH] fixed possible RCE vulnerability, unset escape variable (default tilde) stops consider "~" char after new-line as composing escape sequence [Retrieved from: https://github.com/fail2ban/fail2ban/commit/410a6ce5c80dd981c22752da034f2529b5eee844] Signed-off-by: Fabrice Fontaine --- config/action.d/complain.conf | 2 +- config/action.d/dshield.conf | 2 +- config/action.d/mail-buffered.conf | 8 ++++---- config/action.d/mail-whois-lines.conf | 2 +- config/action.d/mail-whois.conf | 6 +++--- config/action.d/mail.conf | 6 +++--- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/config/action.d/complain.conf b/config/action.d/complain.conf index 3a5f882c9f..4d73b05859 100644 --- a/config/action.d/complain.conf +++ b/config/action.d/complain.conf @@ -102,7 +102,7 @@ logpath = /dev/null # Notes.: Your system mail command. Is passed 2 args: subject and recipient # Values: CMD # -mailcmd = mail -s +mailcmd = mail -E 'set escape' -s # Option: mailargs # Notes.: Additional arguments to mail command. e.g. for standard Unix mail: diff --git a/config/action.d/dshield.conf b/config/action.d/dshield.conf index c128bef348..3d5a7a53a9 100644 --- a/config/action.d/dshield.conf +++ b/config/action.d/dshield.conf @@ -179,7 +179,7 @@ tcpflags = # Notes.: Your system mail command. Is passed 2 args: subject and recipient # Values: CMD # -mailcmd = mail -s +mailcmd = mail -E 'set escape' -s # Option: mailargs # Notes.: Additional arguments to mail command. e.g. for standard Unix mail: diff --git a/config/action.d/mail-buffered.conf b/config/action.d/mail-buffered.conf index 325f185b2f..79b841049c 100644 --- a/config/action.d/mail-buffered.conf +++ b/config/action.d/mail-buffered.conf @@ -17,7 +17,7 @@ actionstart = printf %%b "Hi,\n The jail has been started successfully.\n Output will be buffered until lines are available.\n Regards,\n - Fail2Ban"|mail -s "[Fail2Ban] : started on " + Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] : started on " # Option: actionstop # Notes.: command executed at the stop of jail (or at the end of Fail2Ban) @@ -28,13 +28,13 @@ actionstop = if [ -f ]; then These hosts have been banned by Fail2Ban.\n `cat ` Regards,\n - Fail2Ban"|mail -s "[Fail2Ban] : Summary from " + Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] : Summary from " rm fi printf %%b "Hi,\n The jail has been stopped.\n Regards,\n - Fail2Ban"|mail -s "[Fail2Ban] : stopped on " + Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] : stopped on " # Option: actioncheck # Notes.: command executed once before each actionban command @@ -55,7 +55,7 @@ actionban = printf %%b "`date`: ( failures)\n" >> These hosts have been banned by Fail2Ban.\n `cat ` \nRegards,\n - Fail2Ban"|mail -s "[Fail2Ban] : Summary" + Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] : Summary" rm fi diff --git a/config/action.d/mail-whois-lines.conf b/config/action.d/mail-whois-lines.conf index 3a3e56b2c7..d2818cb9b9 100644 --- a/config/action.d/mail-whois-lines.conf +++ b/config/action.d/mail-whois-lines.conf @@ -72,7 +72,7 @@ actionunban = # Notes.: Your system mail command. Is passed 2 args: subject and recipient # Values: CMD # -mailcmd = mail -s +mailcmd = mail -E 'set escape' -s # Default name of the chain # diff --git a/config/action.d/mail-whois.conf b/config/action.d/mail-whois.conf index 7fea34c40d..ab33b616dc 100644 --- a/config/action.d/mail-whois.conf +++ b/config/action.d/mail-whois.conf @@ -20,7 +20,7 @@ norestored = 1 actionstart = printf %%b "Hi,\n The jail has been started successfully.\n Regards,\n - Fail2Ban"|mail -s "[Fail2Ban] : started on " + Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] : started on " # Option: actionstop # Notes.: command executed at the stop of jail (or at the end of Fail2Ban) @@ -29,7 +29,7 @@ actionstart = printf %%b "Hi,\n actionstop = printf %%b "Hi,\n The jail has been stopped.\n Regards,\n - Fail2Ban"|mail -s "[Fail2Ban] : stopped on " + Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] : stopped on " # Option: actioncheck # Notes.: command executed once before each actionban command @@ -49,7 +49,7 @@ actionban = printf %%b "Hi,\n Here is more information about :\n `%(_whois_command)s`\n Regards,\n - Fail2Ban"|mail -s "[Fail2Ban] : banned from " + Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] : banned from " # Option: actionunban # Notes.: command executed when unbanning an IP. Take care that the diff --git a/config/action.d/mail.conf b/config/action.d/mail.conf index 5d8c0e154c..f4838ddcb6 100644 --- a/config/action.d/mail.conf +++ b/config/action.d/mail.conf @@ -16,7 +16,7 @@ norestored = 1 actionstart = printf %%b "Hi,\n The jail has been started successfully.\n Regards,\n - Fail2Ban"|mail -s "[Fail2Ban] : started on " + Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] : started on " # Option: actionstop # Notes.: command executed at the stop of jail (or at the end of Fail2Ban) @@ -25,7 +25,7 @@ actionstart = printf %%b "Hi,\n actionstop = printf %%b "Hi,\n The jail has been stopped.\n Regards,\n - Fail2Ban"|mail -s "[Fail2Ban] : stopped on " + Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] : stopped on " # Option: actioncheck # Notes.: command executed once before each actionban command @@ -43,7 +43,7 @@ actionban = printf %%b "Hi,\n The IP has just been banned by Fail2Ban after attempts against .\n Regards,\n - Fail2Ban"|mail -s "[Fail2Ban] : banned from " + Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] : banned from " # Option: actionunban # Notes.: command executed when unbanning an IP. Take care that the ================================================ FILE: package/fail2ban/Config.in ================================================ config BR2_PACKAGE_FAIL2BAN bool "fail2ban" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SYSTEMD if BR2_PACKAGE_SYSTEMD help Fail2ban scans log files (e.g. /var/log/apache/error_log) and bans IPs that show the malicious signs -- too many password failures, seeking for exploits, etc. Out of the box Fail2Ban comes with filters for various services (apache, courier, ssh, etc). Fail2Ban is able to reduce the rate of incorrect authentications attempts however it cannot eliminate the risk that weak authentication presents. https://www.fail2ban.org ================================================ FILE: package/fail2ban/S60fail2ban ================================================ #!/bin/sh case "$1" in start) printf "Starting fail2ban: " start-stop-daemon -S -q -m -p /var/run/fail2ban.pid \ -b -x fail2ban-server -- -xf start [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping fail2ban: " start-stop-daemon -K -q -p /var/run/fail2ban.pid [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart) "$0" stop sleep 1 "$0" start ;; *) echo "Usage: $0 {start|stop|restart}" ;; esac ================================================ FILE: package/fail2ban/fail2ban.hash ================================================ # sha256 locally computed sha256 383108e5f8644cefb288537950923b7520f642e7e114efb843f6e7ea9268b1e0 fail2ban-0.11.2.tar.gz sha256 a75fec0260742fe6275d63ff6a5d97b924b28766558306b3fa4069763096929b COPYING ================================================ FILE: package/fail2ban/fail2ban.mk ================================================ ################################################################################ # # fail2ban # ################################################################################ FAIL2BAN_VERSION = 0.11.2 FAIL2BAN_SITE = $(call github,fail2ban,fail2ban,$(FAIL2BAN_VERSION)) FAIL2BAN_LICENSE = GPL-2.0+ FAIL2BAN_LICENSE_FILES = COPYING FAIL2BAN_CPE_ID_VENDOR = fail2ban FAIL2BAN_SELINUX_MODULES = fail2ban FAIL2BAN_SETUP_TYPE = distutils # 0001-fixed-possible-RCE-vulnerability-unset-escape-variable.patch FAIL2BAN_IGNORE_CVES += CVE-2021-32749 ifeq ($(BR2_PACKAGE_PYTHON3),y) define FAIL2BAN_PYTHON_2TO3 $(HOST_DIR)/bin/2to3 --write --nobackups --no-diffs $(@D)/bin/* $(@D)/fail2ban endef FAIL2BAN_DEPENDENCIES += host-python3 # We can't use _POST_PATCH_HOOKS because dependencies are not guaranteed # to build and install before _POST_PATCH_HOOKS run. FAIL2BAN_PRE_CONFIGURE_HOOKS += FAIL2BAN_PYTHON_2TO3 endif define FAIL2BAN_FIX_DEFAULT_CONFIG $(SED) '/^socket/c\socket = /run/fail2ban.sock' $(TARGET_DIR)/etc/fail2ban/fail2ban.conf $(SED) '/^pidfile/c\pidfile = /run/fail2ban.pid' $(TARGET_DIR)/etc/fail2ban/fail2ban.conf $(SED) '/^dbfile/c\dbfile = None' $(TARGET_DIR)/etc/fail2ban/fail2ban.conf endef FAIL2BAN_POST_INSTALL_TARGET_HOOKS += FAIL2BAN_FIX_DEFAULT_CONFIG # fail2ban-python points to host python define FAIL2BAN_FIX_FAIL2BAN_PYTHON_SYMLINK ln -snf $(if $(BR2_PACKAGE_PYTHON),python,python3) \ $(TARGET_DIR)/usr/bin/fail2ban-python endef FAIL2BAN_POST_INSTALL_TARGET_HOOKS += FAIL2BAN_FIX_FAIL2BAN_PYTHON_SYMLINK define FAIL2BAN_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/fail2ban/S60fail2ban \ $(TARGET_DIR)/etc/init.d/S60fail2ban endef define FAIL2BAN_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 $(@D)/files/fail2ban.service.in \ $(TARGET_DIR)/usr/lib/systemd/system/fail2ban.service $(SED) 's,@BINDIR@,/usr/bin,g' $(TARGET_DIR)/usr/lib/systemd/system/fail2ban.service $(SED) '/^PIDFile/c\PIDFile=/run/fail2ban.pid' $(TARGET_DIR)/usr/lib/systemd/system/fail2ban.service endef $(eval $(python-package)) ================================================ FILE: package/fakedate/fakedate ================================================ #!/bin/bash # vim: set sw=4 expandtab: # # 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 # # Copyright (C) 2016 Jérôme Pouiller # DATE_BIN=false # Do not call any 'date' before us in the PATH, or that would create # an infinite recursion. for date in $(which -a date |tac); do if [ "${date}" -ef "$0" ]; then break fi DATE_BIN="${date}" done if [ -n "$SOURCE_DATE_EPOCH" ]; then FORCE_EPOCH=1 for i in "$@"; do # Use of --date, --file and --reference (and their short option counter # parts) is incompatible with SOURCE_DATE_EPOCH. # -u and -R are the only short options without argument. So they could # appear between '-' and option we want to match. if echo "$i" | grep -qE '^-([uR]*d|-date|[uR]*f|-file|[uR]*r|--reference)'; then FORCE_EPOCH=0 break; fi done if [ $FORCE_EPOCH -eq 1 ]; then echo "date: Warning: using \$SOURCE_DATE_EPOCH instead of true time" >&2 ARGS="-d @$SOURCE_DATE_EPOCH" fi fi exec $DATE_BIN $ARGS "$@" ================================================ FILE: package/fakedate/fakedate.mk ================================================ ################################################################################ # # fakedate # ################################################################################ # source included in buildroot HOST_FAKEDATE_LICENSE = GPL-2.0+ define HOST_FAKEDATE_INSTALL_CMDS $(INSTALL) -D -m 755 package/fakedate/fakedate $(HOST_DIR)/bin/date endef $(eval $(host-generic-package)) ================================================ FILE: package/fakeroot/fakeroot.hash ================================================ # From https://deb.debian.org/debian/pool/main/f/fakeroot/fakeroot_1.30.1-1.dsc sha256 32ebb1f421aca0db7141c32a8c104eb95d2b45c393058b9435fbf903dd2b6a75 fakeroot_1.30.1.orig.tar.gz # License files, locally calculated sha256 fc82ca8b6fdb18d4e3e85cfd8ab58d1bcd3f1b29abe782895abd91d64763f8e7 COPYING ================================================ FILE: package/fakeroot/fakeroot.mk ================================================ ################################################################################ # # fakeroot # ################################################################################ FAKEROOT_VERSION = 1.30.1 FAKEROOT_SOURCE = fakeroot_$(FAKEROOT_VERSION).orig.tar.gz FAKEROOT_SITE = https://snapshot.debian.org/archive/debian/20221120T030258Z/pool/main/f/fakeroot HOST_FAKEROOT_DEPENDENCIES = host-acl # Force capabilities detection off # For now these are process capabilities (faked) rather than file # so they're of no real use HOST_FAKEROOT_CONF_ENV = \ ac_cv_header_sys_capability_h=no \ ac_cv_func_capset=no FAKEROOT_LICENSE = GPL-3.0+ FAKEROOT_LICENSE_FILES = COPYING $(eval $(host-autotools-package)) ================================================ FILE: package/faketime/Config.in.host ================================================ config BR2_PACKAGE_HOST_FAKETIME bool "host faketime" help Faketime reports faked system time to programs without having to change the system-wide time. https://github.com/wolfcw/libfaketime ================================================ FILE: package/faketime/faketime.hash ================================================ # Locally calculated sha256 57d0181150361c0a9b5c8eef05b11392f6134ada2c2d998e92e63daed639647c faketime-0.9.9.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/faketime/faketime.mk ================================================ ################################################################################ # # libfaketime # ################################################################################ FAKETIME_VERSION = 0.9.9 FAKETIME_SITE = $(call github,wolfcw,libfaketime,v$(FAKETIME_VERSION)) FAKETIME_LICENSE = GPL-2.0 FAKETIME_LICENSE_FILES = COPYING define HOST_FAKETIME_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) PREFIX=$(HOST_DIR) endef define HOST_FAKETIME_INSTALL_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) PREFIX=$(HOST_DIR) install endef $(eval $(host-generic-package)) ================================================ FILE: package/fan-ctrl/Config.in ================================================ config BR2_PACKAGE_FAN_CTRL bool "fan-ctrl" depends on BR2_USE_MMU # fork() help Fan-ctrl is a little daemon that controls the speed of one or more system or CPU fans. It does so by monitoring temperature inputs and selecting a fan speed from an array of available speeds based on a set of temperature thresholds. http://fan-ctrl.sourceforge.net/ ================================================ FILE: package/fan-ctrl/fan-ctrl.hash ================================================ # Locally computed sha1 d8ba5bac15e90c36a4e908ca1c98fac83bf702ea fan-ctrl.c?revision=1.3 ================================================ FILE: package/fan-ctrl/fan-ctrl.mk ================================================ ################################################################################ # # fan-ctrl # ################################################################################ # no release, so grab .c file directly from viewvc FAN_CTRL_VERSION = 1.3 FAN_CTRL_SOURCE = fan-ctrl.c?revision=$(FAN_CTRL_VERSION) FAN_CTRL_SITE = http://fan-ctrl.cvs.sourceforge.net/viewvc/fan-ctrl/fan-ctrl FAN_CTRL_LICENSE = GPL-2.0+ FAN_CTRL_LICENSE_FILES = fan-ctrl.c define FAN_CTRL_EXTRACT_CMDS cp $(FAN_CTRL_DL_DIR)/$(FAN_CTRL_SOURCE) $(@D)/fan-ctrl.c endef define FAN_CTRL_BUILD_CMDS $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \ $(@D)/fan-ctrl.c -o $(@D)/fan-ctrl endef define FAN_CTRL_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/fan-ctrl $(TARGET_DIR)/usr/sbin/fan-ctrl endef $(eval $(generic-package)) ================================================ FILE: package/fastd/Config.in ================================================ config BR2_PACKAGE_FASTD bool "fastd" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # libuecc select BR2_PACKAGE_LIBUECC select BR2_PACKAGE_LIBSODIUM select BR2_PACKAGE_LIBSODIUM_FULL help Fast and Secure Tunneling Daemon https://github.com/NeoRaider/fastd/wiki if BR2_PACKAGE_FASTD config BR2_PACKAGE_FASTD_STATUS_SOCKET bool "status socket support" default y depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c select BR2_PACKAGE_JSON_C help Enable support for a socket to get fastd's status. config BR2_PACKAGE_FASTD_OFFLOAD_L2TP bool "l2tp offload support" select BR2_PACKAGE_LIBMNL help L2TP can be offloaded to the Linux kernel, significantly increasing throughput. endif comment "fastd needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS \ || BR2_STATIC_LIBS ================================================ FILE: package/fastd/fastd.hash ================================================ # computed locally sha256 19750b88705d66811b7c21b672537909c19ae6b21350688cbd1a3a54d08a8951 fastd-22.tar.xz sha256 adf08b42f1b890b89e998360a864cb4f8441a0a57c9e95e2ce1bfdfc24c49976 COPYRIGHT ================================================ FILE: package/fastd/fastd.mk ================================================ ################################################################################ # # fastd # ################################################################################ FASTD_VERSION = 22 FASTD_SITE = https://github.com/NeoRaider/fastd/releases/download/v$(FASTD_VERSION) FASTD_SOURCE = fastd-$(FASTD_VERSION).tar.xz FASTD_LICENSE = BSD-2-Clause FASTD_LICENSE_FILES = COPYRIGHT FASTD_CPE_ID_VERSION = $(FASTD_VERSION).0 FASTD_DEPENDENCIES = host-bison host-pkgconf libuecc libsodium ifeq ($(BR2_PACKAGE_LIBCAP),y) FASTD_CONF_OPTS += -Dcapabilities=enabled FASTD_DEPENDENCIES += libcap else FASTD_CONF_OPTS += -Dcapabilities=disabled endif ifeq ($(BR2_PACKAGE_OPENSSL),y) FASTD_CONF_OPTS += -Dcipher_aes128-ctr=enabled FASTD_DEPENDENCIES += openssl else FASTD_CONF_OPTS += -Dcipher_aes128-ctr=disabled endif ifeq ($(BR2_PACKAGE_FASTD_STATUS_SOCKET),y) FASTD_CONF_OPTS += -Dstatus_socket=enabled FASTD_DEPENDENCIES += json-c else FASTD_CONF_OPTS += -Dstatus_socket=disabled endif ifeq ($(BR2_PACKAGE_FASTD_OFFLOAD_L2TP),y) FASTD_CONF_OPTS += -Doffload_l2tp=enabled -Dlibmnl_builtin=false FASTD_DEPENDENCIES += libmnl else FASTD_CONF_OPTS += -Doffload_l2tp=disabled endif ifeq ($(BR2_INIT_SYSTEMD),y) FASTD_CONF_OPTS += -Dsystemd=enabled else FASTD_CONF_OPTS += -Dsystemd=disabled endif ifeq ($(BR2_GCC_ENABLE_LTO),y) FASTD_CONF_OPTS += -Db_lto=true else FASTD_CONF_OPTS += -Db_lto=false endif $(eval $(meson-package)) ================================================ FILE: package/fatcat/Config.in.host ================================================ config BR2_PACKAGE_HOST_FATCAT bool "host fatcat" help Fatcat is designed to manipulate FAT filesystems, in order to explore, extract, repair, recover and forensic them. It currently supports FAT12, FAT16 and FAT32. https://github.com/Gregwar/fatcat ================================================ FILE: package/fatcat/fatcat.hash ================================================ # Locally computed: sha256 303efe2aa73cbfe6fbc5d8af346d0f2c70b3f996fc891e8859213a58b95ad88c fatcat-1.1.0.tar.gz sha256 3ea03755e32cf7f5b12981de92a0fdad396448195fe0024990c9cbc388e9866c LICENSE ================================================ FILE: package/fatcat/fatcat.mk ================================================ ################################################################################ # # fatcat # ################################################################################ FATCAT_VERSION = 1.1.0 FATCAT_SITE = $(call github,Gregwar,fatcat,v$(FATCAT_VERSION)) FATCAT_LICENSE = MIT FATCAT_LICENSE_FILES = LICENSE $(eval $(host-cmake-package)) ================================================ FILE: package/fb-test-app/Config.in ================================================ config BR2_PACKAGE_FB_TEST_APP bool "fb-test-app" help Test suite for Linux framebuffer. https://github.com/prpplague/fb-test-app ================================================ FILE: package/fb-test-app/fb-test-app.hash ================================================ # Locally calculated sha256 45d490ed78a6e4425d9a760e81e99dc503af01704e17ab5bf186b87a31c5e3db fb-test-app-1.1.1.tar.gz sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING ================================================ FILE: package/fb-test-app/fb-test-app.mk ================================================ ################################################################################ # # fb-test-app # ################################################################################ FB_TEST_APP_VERSION = 1.1.1 FB_TEST_APP_SITE = $(call github,andy-shev,fb-test-app,rosetta-$(FB_TEST_APP_VERSION)) FB_TEST_APP_LICENSE = GPL-2.0 FB_TEST_APP_LICENSE_FILES = COPYING define FB_TEST_APP_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all endef define FB_TEST_APP_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/perf $(TARGET_DIR)/usr/bin/fb-test-perf $(INSTALL) -D -m 0755 $(@D)/rect $(TARGET_DIR)/usr/bin/fb-test-rect $(INSTALL) -D -m 0755 $(@D)/fb-test $(TARGET_DIR)/usr/bin/fb-test $(INSTALL) -D -m 0755 $(@D)/offset $(TARGET_DIR)/usr/bin/fb-test-offset $(INSTALL) -D -m 0755 $(@D)/fb-string $(TARGET_DIR)/usr/bin/fb-test-string endef $(eval $(generic-package)) ================================================ FILE: package/fbdump/Config.in ================================================ config BR2_PACKAGE_FBDUMP bool "fbdump (Framebuffer Capture Tool)" help fbdump is a simple tool to capture snapshots from the Linux kernel framebuffer device and write them out as a PPM file. Currently, most packed-pixel framebuffer formats and the vga16 framebuffer are supported. http://www.rcdrummond.net/fbdump ================================================ FILE: package/fbdump/fbdump.hash ================================================ # Locally calculated sha256 c4d521a86229b3106cf69786008ad94f899da5288a19a067deae84951880722d fbdump-0.4.2.tar.gz sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/fbdump/fbdump.mk ================================================ ################################################################################ # # fbdump # ################################################################################ FBDUMP_VERSION = 0.4.2 FBDUMP_SITE = http://www.rcdrummond.net/fbdump FBDUMP_LICENSE = GPL-2.0 FBDUMP_LICENSE_FILES = COPYING # The VGA16 specific feature of fbdump doesn't make much sense outside # of the x86/x86-64 architectures, and causes build problems on some # architectures as outw() is not always available. ifeq ($(BR2_i386)$(BR2_x86_64),y) FBDUMP_CONF_OPTS += --enable-vga16fb else FBDUMP_CONF_OPTS += --disable-vga16fb endif $(eval $(autotools-package)) ================================================ FILE: package/fbgrab/0001-fix-static-build.patch ================================================ Fix static build fbgrab links against libpng, which depends on libm. For shared library builds, there is nothing special to do about this, but for static library builds, it is necessary to pass -lm when linking fbgrab. Signed-off-by: Thomas Petazzoni Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ all: fbgrab fbgrab.1.gz fbgrab: fbgrab.c - $(CC) -g -Wall $(CFLAGS) $(LDFLAGS) $< -lpng -lz -o $@ + $(CC) -g -Wall $(CFLAGS) $(LDFLAGS) $< -lpng -lz -lm -o $@ fbgrab.1.gz: fbgrab.1.man $(GZIP) $(GZIPFLAGS) $< > $@ ================================================ FILE: package/fbgrab/Config.in ================================================ config BR2_PACKAGE_FBGRAB bool "fbgrab" select BR2_PACKAGE_LIBPNG help FBGrab is a framebuffer screenshot program, capturing the linux frambuffer and converting it to a png-picture. https://github.com/GunnarMonell/fbgrab ================================================ FILE: package/fbgrab/fbgrab.hash ================================================ # Locally calculated sha256 0202a9c4fb430eee4d8f566d09ab5f6e35c50804a192ba106046e54eb886f8f1 fbgrab-1.5.tar.gz sha256 fa5fc1d1eec39532ea517518eeefd7b6e3c14341a55e5880a0e2a49eee47a5b7 COPYING ================================================ FILE: package/fbgrab/fbgrab.mk ================================================ ################################################################################ # # fbgrab # ################################################################################ FBGRAB_VERSION = 1.5 FBGRAB_SITE = $(call github,GunnarMonell,fbgrab,$(FBGRAB_VERSION)) FBGRAB_DEPENDENCIES = libpng FBGRAB_LICENSE = GPL-2.0 FBGRAB_LICENSE_FILES = COPYING define FBGRAB_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) fbgrab endef define FBGRAB_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/fbgrab $(TARGET_DIR)/usr/bin/fbgrab endef $(eval $(generic-package)) ================================================ FILE: package/fbset/0001-Fix-musl-compile.patch ================================================ 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 ================================================ FILE: package/fbset/Config.in ================================================ 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 interface to access different kinds of graphic displays. http://users.telenet.be/geertu/Linux/fbdev/ ================================================ FILE: package/fbset/fbset.hash ================================================ # Locally calculated sha256 40ff4ab0247b75138a0887ed40f81c1a6184f340b77126c16d074b1075b41c20 fbset-2.1.tar.gz sha256 c3285709a0840899a789faefae1704e87f96f757e905a38a1931a9d4fde95ddd fbset.c ================================================ FILE: package/fbset/fbset.mk ================================================ ################################################################################ # # fbset # ################################################################################ FBSET_VERSION = 2.1 FBSET_SITE = http://users.telenet.be/geertu/Linux/fbdev FBSET_DEPENDENCIES = host-bison host-flex FBSET_LICENSE = GPL-2.0 FBSET_LICENSE_FILES = fbset.c define FBSET_BUILD_CMDS $(MAKE1) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define FBSET_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/fbset $(TARGET_DIR)/usr/sbin/fbset endef $(eval $(generic-package)) ================================================ FILE: package/fbterm/0001-fbio.cpp-improxy.cpp-fbterm.cpp-fix-musl-compile.patch ================================================ From 1072d60c6c8f1f51feb740527a8a056bfead9318 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 8 Oct 2015 19:53:47 +0200 Subject: [PATCH] fbio.cpp, improxy.cpp, fbterm.cpp: fix musl compile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - add missing include, fixes: fbio.cpp:33:8: error: ‘fd_set’ does not name a type static fd_set fds; improxy.cpp:439:3: error: ‘fd_set’ was not declared in this scope - add missing WAIT_ANY define, fixes: fbterm.cpp: In member function ‘void FbTerm::processSignal(u32)’: fbterm.cpp:212:22: error: ‘WAIT_ANY’ was not declared in this scope s32 pid = waitpid(WAIT_ANY, 0, WNOHANG); Signed-off-by: Peter Seiderer --- src/fbio.cpp | 1 + src/fbterm.cpp | 4 ++++ src/improxy.cpp | 1 + 3 files changed, 6 insertions(+) diff --git a/src/fbio.cpp b/src/fbio.cpp index e5afc44..88c632c 100644 --- a/src/fbio.cpp +++ b/src/fbio.cpp @@ -30,6 +30,7 @@ #define NR_EPOLL_FDS 10 s32 epollFd; #else +#include static fd_set fds; static u32 maxfd = 0; #endif diff --git a/src/fbterm.cpp b/src/fbterm.cpp index 38d4014..60288e4 100644 --- a/src/fbterm.cpp +++ b/src/fbterm.cpp @@ -37,6 +37,10 @@ #include "input_key.h" #include "mouse.h" +#ifndef WAIT_ANY +#define WAIT_ANY (-1) +#endif + #ifdef HAVE_SIGNALFD // offered by some systems has bug with g++ #include "signalfd.h" diff --git a/src/improxy.cpp b/src/improxy.cpp index 3d03e66..4e046d2 100644 --- a/src/improxy.cpp +++ b/src/improxy.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include "improxy.h" #include "immessage.h" -- 2.1.4 ================================================ FILE: package/fbterm/0002-mouse.cpp-fix-musl-compile.patch ================================================ From a34dba99aff2994269ee347da67feb7ede9b1a67 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 18 Feb 2016 22:32:38 +0100 Subject: [PATCH] mouse.cpp: fix musl compile Add missing include, fixes: mouse.cpp:58:37: error: 'memset' was not declared in this scope mouse.cpp:60:64: error: 'strncpy' was not declared in this scope Signed-off-by: Peter Seiderer --- src/mouse.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mouse.cpp b/src/mouse.cpp index 0435dd9..f173137 100644 --- a/src/mouse.cpp +++ b/src/mouse.cpp @@ -27,6 +27,7 @@ DEFINE_INSTANCE(Mouse) #include #include #include +#include #include #include #include -- 2.1.4 ================================================ FILE: package/fbterm/0003-C++11-compliance.patch ================================================ 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, }; ================================================ FILE: package/fbterm/0004-iconv.patch ================================================ Fix building against libiconv Downloaded from https://github.com/kyak/openwrt-packages/blob/master/fbterm/patches/001-iconv.patch Signed-off-by: Bernd Kuhls --- a/src/lib/io.cpp +++ b/src/lib/io.cpp @@ -119,10 +119,10 @@ void IoPipe::setCodec(const s8 *up, cons if (!strcasecmp(up, down)) return; mCodecRead = iconv_open(up, down); - if (mCodecRead == (void*)-1) mCodecRead = 0; + if (mCodecRead == (iconv_t)(-1)) mCodecRead = 0; mCodecWrite = iconv_open(down, up); - if (mCodecWrite == (void*)-1) mCodecWrite = 0; + if (mCodecWrite == (iconv_t)(-1)) mCodecWrite = 0; } #define BUF_SIZE 10240 --- a/src/lib/io.h +++ b/src/lib/io.h @@ -23,6 +23,7 @@ #include "type.h" #include "instance.h" +#include class IoPipe { public: @@ -47,7 +48,7 @@ private: void writeIo(s8 *buf, u32 len); s32 mFd; - void *mCodecRead, *mCodecWrite; + iconv_t mCodecRead, mCodecWrite; s8 mBufRead[16], mBufWrite[16]; u32 mBufLenRead, mBufLenWrite; }; ================================================ FILE: package/fbterm/Config.in ================================================ config BR2_PACKAGE_FBTERM bool "fbterm" 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 fbterm is a fast terminal emulator for Linux with frame buffer device or VESA video card. https://code.google.com/archive/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) ================================================ FILE: package/fbterm/fbterm.hash ================================================ # From http://code.google.com/p/fbterm/downloads/detail?name=fbterm-1.7.0.tar.gz&can=2&q= sha1 dc7b7ff29212c1551f35bf7a50967454d3b8c67c fbterm-1.7.0.tar.gz # locally computed sha256 b2b961f07e97c4fb78074276da304ea36b85dc299aae5efb79080cedaea3d5ac COPYING ================================================ FILE: package/fbterm/fbterm.mk ================================================ ################################################################################ # # fbterm # ################################################################################ FBTERM_VERSION = 1.7.0 FBTERM_SITE = https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/fbterm FBTERM_LICENSE = GPL-2.0+ FBTERM_LICENSE_FILES = COPYING FBTERM_DEPENDENCIES = fontconfig liberation ifeq ($(BR2_PACKAGE_GPM),y) FBTERM_DEPENDENCIES += gpm FBTERM_CONF_OPTS += --enable-gpm else FBTERM_CONF_OPTS += --disable-gpm endif $(eval $(autotools-package)) ================================================ FILE: package/fbtft/Config.in ================================================ # Prompt-less option, because this package is not doing anything # except downloading the FB TFT sources. The real work is done by a # Linux extension. config BR2_PACKAGE_FBTFT bool depends on BR2_LINUX_KERNEL help Linux Framebuffer drivers for small TFT LCD display modules, e.g. Adafruit PiTFT displays for Raspberry Pi. This is only the download helper for the kernel patch. https://github.com/notro/fbtft ================================================ FILE: package/fbtft/fbtft.hash ================================================ # locally computed sha256 0e81de89fdd7ab810716fc0549e767527f342e829309dee5c2cca1e9d1728770 fbtft-274035404701245e7491c0c6471c5b72ade4d491.tar.gz sha256 a9ca80d65a5ef10fe614a6c1e8c8d4d3b96637e8855a96c7cf0fa438526097a7 fbtft-core.c ================================================ FILE: package/fbtft/fbtft.mk ================================================ ################################################################################ # # fbtft # ################################################################################ FBTFT_VERSION = 274035404701245e7491c0c6471c5b72ade4d491 FBTFT_SITE = $(call github,notro,fbtft,$(FBTFT_VERSION)) FBTFT_LICENSE = GPL-2.0 FBTFT_LICENSE_FILES = fbtft-core.c $(eval $(generic-package)) ================================================ FILE: package/fbv/0002-cross.patch ================================================ diff -urpN fbv-1.0b.orig/configure fbv-1.0b/configure --- fbv-1.0b.orig/configure 2004-09-07 13:29:27.000000000 +0200 +++ fbv-1.0b/configure 2008-04-24 10:52:37.000000000 +0200 @@ -80,6 +80,7 @@ while true ; do esac done +[ -z "$CC" ] && CC=cc [ -z "$prefix" ] && prefix="/usr/local" [ -z "$bindir" ] && bindir="${prefix}/bin" [ -z "$mandir" ] && mandir="${prefix}/man" @@ -106,12 +107,12 @@ xdir="/usr/X11R6" ungif="no" echo "libungif check" >>./config.log echo " 1st:" >>./config.log -cc 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif $libs +$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif $libs if [ -e \$\$~test ]; then libs="-lungif $libs" ; ungif="yes" else echo " 2nd: -lX11 -L$xdir/lib" >>./config.log - cc 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif -lX11 -L$xdir/lib $libs + $CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif -lX11 -L$xdir/lib $libs if [ -e \$\$~test ]; then libs="-lungif -lX11 -L$xdir/lib $libs" ; ungif="yes" fi @@ -124,7 +125,7 @@ echo "libungif: $ungif" >> ./config.log echo -n "checking for libjpeg presence... " if [ "$jpeg" != "disabled" ]; then jpeg="no" -cc 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -ljpeg $libs +$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -ljpeg $libs if [ -e \$\$~test ]; then libs="-ljpeg $libs" ; jpeg="yes" fi @@ -135,7 +136,7 @@ echo "libjpeg: $jpeg" >> ./config.log echo -n "checking for libpng presence... " if [ "$png" != "disabled" ]; then png="no" -cc 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lpng $libs +$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lpng $libs if [ -e \$\$~test ]; then libs="-lpng $libs" ; png="yes" fi ================================================ FILE: package/fbv/0003-fix-24bpp-support-on-big-endian.patch ================================================ diff -upr a/fb_display.c b/fb_display.c --- a/fb_display.c 2007-06-01 16:52:45.000000000 +0200 +++ b/fb_display.c 2007-06-01 16:51:43.000000000 +0200 @@ -307,7 +307,7 @@ void* convertRGB2FB(int fh, unsigned cha { unsigned long i; void *fbbuff = NULL; - u_int8_t *c_fbbuff; + u_int8_t *c_fbbuff; u_int16_t *s_fbbuff; u_int32_t *i_fbbuff; @@ -335,6 +335,16 @@ void* convertRGB2FB(int fh, unsigned cha fbbuff = (void *) s_fbbuff; break; case 24: + *cpp = 3; + c_fbbuff = (unsigned char *) malloc(count * 3 * sizeof(unsigned char)); + for(i = 0; i < (3 * count); i += 3) { + /* Big endian framebuffer. */ + c_fbbuff[i] = rgbbuff[i+2]; + c_fbbuff[i+1] = rgbbuff[i+1]; + c_fbbuff[i+2] = rgbbuff[i]; + } + fbbuff = (void *) c_fbbuff; + break; case 32: *cpp = 4; i_fbbuff = (unsigned int *) malloc(count * sizeof(unsigned int)); Only in build_avr32/fbv-1.0b-modified: .fb_display.c.swp Binary files build_avr32/fbv-1.0b/fb_display.o and build_avr32/fbv-1.0b-modified/fb_display.o differ Binary files build_avr32/fbv-1.0b/fbv and build_avr32/fbv-1.0b-modified/fbv differ ================================================ FILE: package/fbv/0004-fix-bgr555.patch ================================================ [PATCH] fbv: support bgr555 format Signed-off-by: Josh.Wu diff -Naur fbv-1.0b-ori/fb_display.c fbv-1.0b/fb_display.c --- fbv-1.0b-ori/fb_display.c 2010-04-02 09:38:15.000000000 +0800 +++ fbv-1.0b/fb_display.c 2010-04-01 18:54:15.000000000 +0800 @@ -297,6 +297,14 @@ ((b >> 3) & 31) ); } +inline static unsigned short make15color_bgr(unsigned char r, unsigned char g, unsigned char b) +{ + return ( + (((b >> 3) & 31) << 10) | + (((g >> 3) & 31) << 5) | + ((r >> 3) & 31) ); +} + inline static unsigned short make16color(unsigned char r, unsigned char g, unsigned char b) { return ( @@ -313,6 +321,14 @@ u_int16_t *s_fbbuff; u_int32_t *i_fbbuff; + int is_bgr555 = 0; + struct fb_var_screeninfo var; + getVarScreenInfo(fh, &var); + if(var.red.offset == 0 && + var.green.offset == 5 && + var.blue.offset == 10) + is_bgr555 = 1; + switch(bpp) { case 8: @@ -325,15 +341,23 @@ case 15: *cpp = 2; s_fbbuff = (unsigned short *) malloc(count * sizeof(unsigned short)); - for(i = 0; i < count ; i++) - s_fbbuff[i] = make15color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]); + if(is_bgr555) + for(i = 0; i < count ; i++) + s_fbbuff[i] = make15color_bgr(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]); + else + for(i = 0; i < count ; i++) + s_fbbuff[i] = make15color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]); fbbuff = (void *) s_fbbuff; break; case 16: *cpp = 2; s_fbbuff = (unsigned short *) malloc(count * sizeof(unsigned short)); - for(i = 0; i < count ; i++) - s_fbbuff[i] = make16color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]); + if(is_bgr555) + for(i = 0; i < count ; i++) + s_fbbuff[i] = make15color_bgr(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]); + else + for(i = 0; i < count ; i++) + s_fbbuff[i] = make16color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]); fbbuff = (void *) s_fbbuff; break; case 24: ================================================ FILE: package/fbv/0005-giflib.patch ================================================ Adjust source code to work with giflib 5.1x Downloaded patch for gif.c from https://projects.archlinux.org/svntogit/community.git/plain/trunk/giflib-5.1.patch?h=packages/fbv Signed-off-by: Bernd Kuhls diff -wbBur fbv-1.0b/gif.c fbv-1.0b.my/gif.c --- fbv-1.0b/gif.c 2003-08-25 00:23:02.000000000 +0400 +++ fbv-1.0b.my/gif.c 2014-05-29 18:39:41.337332872 +0400 @@ -31,10 +31,10 @@ #include #define min(a,b) ((a) < (b) ? (a) : (b)) #define gflush return(FH_ERROR_FILE); -#define grflush { DGifCloseFile(gft); return(FH_ERROR_FORMAT); } -#define mgrflush { free(lb); free(slb); DGifCloseFile(gft); return(FH_ERROR_FORMAT); } +#define grflush { DGifCloseFile(gft, NULL); return(FH_ERROR_FORMAT); } +#define mgrflush { free(lb); free(slb); DGifCloseFile(gft, NULL); return(FH_ERROR_FORMAT); } #define agflush return(FH_ERROR_FORMAT); -#define agrflush { DGifCloseFile(gft); return(FH_ERROR_FORMAT); } +#define agrflush { DGifCloseFile(gft, NULL); return(FH_ERROR_FORMAT); } int fh_gif_id(char *name) @@ -81,7 +81,7 @@ ColorMapObject *cmap; int cmaps; - gft=DGifOpenFileName(name); + gft=DGifOpenFileName(name, NULL); if(gft==NULL){printf("err5\n"); gflush;} ////////// do { @@ -170,7 +170,7 @@ } } while( rt!= TERMINATE_RECORD_TYPE ); - DGifCloseFile(gft); + DGifCloseFile(gft, NULL); return(FH_ERROR_OK); } @@ -184,7 +184,7 @@ int extcode; GifRecordType rt; - gft=DGifOpenFileName(name); + gft=DGifOpenFileName(name, NULL); if(gft==NULL) gflush; do { @@ -197,7 +197,7 @@ px=gft->Image.Width; py=gft->Image.Height; *x=px; *y=py; - DGifCloseFile(gft); + DGifCloseFile(gft, NULL); return(FH_ERROR_OK); break; case EXTENSION_RECORD_TYPE: @@ -210,7 +210,7 @@ } } while( rt!= TERMINATE_RECORD_TYPE ); - DGifCloseFile(gft); + DGifCloseFile(gft, NULL); return(FH_ERROR_FORMAT); } #endif diff -uNr fbv-1.0b.org/configure fbv-1.0b/configure --- fbv-1.0b.org/configure 2004-09-07 13:29:27.000000000 +0200 +++ fbv-1.0b/configure 2015-01-29 19:58:30.374599874 +0100 @@ -106,9 +106,9 @@ ungif="no" echo "libungif check" >>./config.log echo " 1st:" >>./config.log -$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif $libs +$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lgif $libs if [ -e \$\$~test ]; then - libs="-lungif $libs" ; ungif="yes" + libs="-lgif $libs" ; ungif="yes" else echo " 2nd: -lX11 -L$xdir/lib" >>./config.log $CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif -lX11 -L$xdir/lib $libs ================================================ FILE: package/fbv/0006-include.patch ================================================ diff -urpN fbv-1.0b.orig/fb_display.c fbv-1.0b/fb_display.c --- fbv-1.0b.orig/fb_display.c 2004-09-07 14:09:43.000000000 +0200 +++ fbv-1.0b/fb_display.c 2008-04-24 10:48:29.000000000 +0200 @@ -18,8 +18,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include - #include #include #include @@ -31,6 +29,7 @@ #include #include #include +#include #include "config.h" /* Public Use Functions: * ================================================ FILE: package/fbv/0007-libpng15.patch ================================================ Support for libpng 1.5+ shamelessly taken from Gentoo. Signed-off-by: Gustavo Zacarias --- a/png.c +++ b/png.c @@ -69,7 +69,7 @@ fclose(fh); return(FH_ERROR_FORMAT); } rp=0; - if (setjmp(png_ptr->jmpbuf)) + if (setjmp(png_jmpbuf(png_ptr))) { png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); if(rp) free(rp); @@ -161,7 +161,7 @@ fclose(fh); return(FH_ERROR_FORMAT); } rp=0; - if (setjmp(png_ptr->jmpbuf)) + if (setjmp(png_jmpbuf(png_ptr))) { png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); if(rp) free(rp); ================================================ FILE: package/fbv/Config.in ================================================ config BR2_PACKAGE_FBV bool "fbv" help fbv is a very simple graphic file viewer for the framebuffer console, capable of displaying GIF, JPEG, PNG and BMP files using libungif, libjpeg and libpng. http://freshmeat.net/projects/fbv/ if BR2_PACKAGE_FBV config BR2_PACKAGE_FBV_PNG bool "PNG support" default y select BR2_PACKAGE_LIBPNG help Enable support for PNG using libpng. config BR2_PACKAGE_FBV_JPEG bool "JPEG support" default y select BR2_PACKAGE_JPEG help Enable support for JPEG using IJG's libjpeg. config BR2_PACKAGE_FBV_GIF bool "GIF support" default y select BR2_PACKAGE_GIFLIB help Enable support for GIF using giflib. endif # BR2_PACKAGE_FBV ================================================ FILE: package/fbv/fbv.hash ================================================ # Locally calculated sha256 9b55b9dafd5eb01562060d860e267e309a1876e8ba5ce4d3303484b94129ab3c fbv-1.0b.tar.gz sha256 bf21d97bafcaacb5d6bc3d5502030c340f0e0593614078ab017af91e950083af COPYING ================================================ FILE: package/fbv/fbv.mk ================================================ ################################################################################ # # fbv # ################################################################################ FBV_VERSION = 1.0b FBV_SITE = http://s-tech.elsat.net.pl/fbv FBV_LICENSE = GPL-2.0 FBV_LICENSE_FILES = COPYING ### image format dependencies and configure options FBV_DEPENDENCIES = # empty FBV_CONFIGURE_OPTS = # empty ifeq ($(BR2_PACKAGE_FBV_PNG),y) FBV_DEPENDENCIES += libpng # libpng in turn depends on other libraries ifeq ($(BR2_STATIC_LIBS),y) FBV_CONFIGURE_OPTS += "--libs=`$(PKG_CONFIG_HOST_BINARY) --libs libpng`" endif else FBV_CONFIGURE_OPTS += --without-libpng endif ifeq ($(BR2_PACKAGE_FBV_JPEG),y) FBV_DEPENDENCIES += jpeg else FBV_CONFIGURE_OPTS += --without-libjpeg endif ifeq ($(BR2_PACKAGE_FBV_GIF),y) FBV_DEPENDENCIES += giflib else FBV_CONFIGURE_OPTS += --without-libungif endif #fbv doesn't support cross-compilation define FBV_CONFIGURE_CMDS (cd $(FBV_DIR); rm -f config.cache; \ $(TARGET_CONFIGURE_OPTS) \ $(TARGET_CONFIGURE_ARGS) \ ./configure \ --prefix=/usr \ $(FBV_CONFIGURE_OPTS) \ ) endef define FBV_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define FBV_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/fbv $(TARGET_DIR)/usr/bin/fbv endef $(eval $(autotools-package)) ================================================ FILE: package/fcgiwrap/0001-use-LIBS-from-configure.patch ================================================ Makefile.in: Use LIBS from configure rather than specifying -lfcgi manually. libfcgi needs libm and fcgiwrap does not use libtool or pkgconf to detect libfcgi, so we need to add -lm explicitely when using static libs. Buildroot does this by providing LIBS=-lm to configure when needed. However fcgiwrap does not use Automake and its Makefile.in ignores LIBS from configure. Fix it with this patch. Signed-off-by: Thomas Claveirole diff -ur a/Makefile.in b/Makefile.in --- a/Makefile.in 2013-02-03 14:25:17.000000000 +0100 +++ b/Makefile.in 2015-05-29 16:33:23.895280138 +0200 @@ -16,7 +16,7 @@ install -m 644 systemd/fcgiwrap.service $(DESTDIR)@systemdsystemunitdir@ endif -LDLIBS = -lfcgi @systemd_LIBS@ +LDLIBS = @LIBS@ @systemd_LIBS@ CFLAGS = @AM_CFLAGS@ fcgiwrap: fcgiwrap.c ================================================ FILE: package/fcgiwrap/0002-link-with-libsystemd-instead-of-libsystemd-daemon.patch ================================================ 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) ================================================ FILE: package/fcgiwrap/Config.in ================================================ config BR2_PACKAGE_FCGIWRAP bool "fcgiwrap" depends on BR2_USE_MMU # libfcgi select BR2_PACKAGE_LIBFCGI help fcgiwrap is a simple server for running CGI applications over FastCGI. It hopes to provide clean CGI support to Nginx (and other web servers that may need it). https://github.com/gnosek/fcgiwrap ================================================ FILE: package/fcgiwrap/fcgiwrap.hash ================================================ # Locally calculated sha256 c72f2933669ebd21605975c5a11f26b9739e32e4f9d324fb9e1a1925e9c2ae88 fcgiwrap-99c942c90063c73734e56bacaa65f947772d9186.tar.gz sha256 1504c301f6d417f2626085337e5c3bb3dc0282265089396ab36bfe1942feef1c COPYING ================================================ FILE: package/fcgiwrap/fcgiwrap.mk ================================================ ################################################################################ # # fcgiwrap # ################################################################################ FCGIWRAP_VERSION = 99c942c90063c73734e56bacaa65f947772d9186 FCGIWRAP_SITE = $(call github,gnosek,fcgiwrap,$(FCGIWRAP_VERSION)) FCGIWRAP_DEPENDENCIES = host-pkgconf libfcgi FCGIWRAP_LICENSE = MIT FCGIWRAP_LICENSE_FILES = COPYING FCGIWRAP_AUTORECONF = YES FCGIWRAP_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -Wno-error" ifeq ($(BR2_PACKAGE_SYSTEMD),y) FCGIWRAP_DEPENDENCIES += systemd FCGIWRAP_CONF_OPTS += --with-systemd else FCGIWRAP_CONF_OPTS += --without-systemd endif # libfcgi needs libm and fcgiwrap does not use libtool or pkgconf to # detect libfcgi, so we need to add -lm explicitely when using static # libs. ifeq ($(BR2_STATIC_LIBS),y) FCGIWRAP_CONF_OPTS += LIBS=-lm endif # fcgiwrap uses Autoconf, but not Automake, so we need to provide # these to make. FCGIWRAP_MAKE_ENV = $(TARGET_CONFIGURE_OPTS) $(eval $(autotools-package)) ================================================ FILE: package/fconfig/Config.in ================================================ config BR2_PACKAGE_FCONFIG bool "fconfig" help fconfig - get/set RedBoot configuration parameters from Linux. http://andrzejekiert.ovh.org/software.html.en ================================================ FILE: package/fconfig/fconfig.hash ================================================ # Locally computed sha256 4ff0e8f07e35e46b705c0dbe9d9544ede01ea092a69e3f7db03e55a3f2bb8eb7 fconfig-20080329.tar.gz sha256 e698a9ea4d6dab0a15d3d6fd354b97b820629244f946529cc7f42b2b8e8f16d0 fconfig.c ================================================ FILE: package/fconfig/fconfig.mk ================================================ ################################################################################ # # fconfig # ################################################################################ FCONFIG_VERSION = 20080329 # Real upstream location has been disabled # FCONFIG_SITE = http://andrzejekiert.ovh.org/software/fconfig FCONFIG_SITE = http://sources.buildroot.net FCONFIG_LICENSE = GPL-2.0+ FCONFIG_LICENSE_FILES = fconfig.c define FCONFIG_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define FCONFIG_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/fconfig $(TARGET_DIR)/sbin/fconfig endef $(eval $(generic-package)) ================================================ FILE: package/fdk-aac/Config.in ================================================ # These are the architectures supported by FDK AAC config BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS bool default y if BR2_aarch64 default y if BR2_arm || BR2_armeb default y if BR2_i386 || BR2_x86_64 default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_powerpc default y if BR2_sh config BR2_PACKAGE_FDK_AAC bool "fdk-aac" depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP help The Fraunhofer FDK AAC Codec Library for Android ("FDK AAC Codec") is software that implements the MPEG Advanced Audio Coding ("AAC") encoding and decoding scheme for digital audio http://sourceforge.net/projects/opencore-amr/files/fdk-aac/ comment "fdk-aac needs a toolchain w/ C++" depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/fdk-aac/fdk-aac.hash ================================================ # From https://sourceforge.net/projects/opencore-amr/files/fdk-aac/ sha1 579b34e8174b4feb21a9c598695f5ff4a7ceef8c fdk-aac-2.0.2.tar.gz md5 b41222194b31f570b3132bd622a9aef6 fdk-aac-2.0.2.tar.gz # Locally computed: sha256 c9e8630cf9d433f3cead74906a1520d2223f89bcd3fa9254861017440b8eb22f fdk-aac-2.0.2.tar.gz sha256 95ec80da40b4af12ad4c4f3158c9cfb80f2479f3246e4260cb600827cc8c7836 NOTICE ================================================ FILE: package/fdk-aac/fdk-aac.mk ================================================ ################################################################################ # # fdk-aac # ################################################################################ FDK_AAC_VERSION = 2.0.2 FDK_AAC_SITE = http://downloads.sourceforge.net/project/opencore-amr/fdk-aac FDK_AAC_LICENSE = fdk-aac license FDK_AAC_LICENSE_FILES = NOTICE FDK_AAC_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/feh/Config.in ================================================ config BR2_PACKAGE_FEH bool "feh" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_IMLIB2 select BR2_PACKAGE_IMLIB2_PNG select BR2_PACKAGE_IMLIB2_JPEG select BR2_PACKAGE_IMLIB2_X help feh is an X11 image viewer aimed mostly at console users. http://feh.finalrewind.org/ ================================================ FILE: package/feh/feh.hash ================================================ # Locally calculated after checking pgp signature sha256 57ab1ca61f57c96595878069f550d36f518530f88fa31b74cc39cd739f9258b6 feh-3.7.1.tar.bz2 sha256 2c3a31327dc3cc3331aa6e759d378e4f66d0ece7174a0d5aa137f3cba4bf0509 COPYING ================================================ FILE: package/feh/feh.mk ================================================ ################################################################################ # # feh # ################################################################################ FEH_VERSION = 3.7.1 FEH_SOURCE = feh-$(FEH_VERSION).tar.bz2 FEH_SITE = http://feh.finalrewind.org FEH_DEPENDENCIES = imlib2 libpng xlib_libXt FEH_LICENSE = MIT FEH_LICENSE_FILES = COPYING FEH_CPE_ID_VENDOR = feh_project ifeq ($(BR2_PACKAGE_LIBCURL),y) FEH_DEPENDENCIES += libcurl FEH_MAKE_OPTS += curl=1 else FEH_MAKE_OPTS += curl=0 endif ifeq ($(BR2_PACKAGE_LIBEXIF),y) FEH_DEPENDENCIES += libexif FEH_MAKE_OPTS += exif=1 else FEH_MAKE_OPTS += exif=0 endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) FEH_DEPENDENCIES += xlib_libXinerama FEH_MAKE_OPTS += xinerama=1 else FEH_MAKE_OPTS += xinerama=0 endif define FEH_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -std=gnu99" \ $(MAKE) $(FEH_MAKE_OPTS) -C $(@D) all endef define FEH_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(FEH_MAKE_OPTS) PREFIX=/usr \ DESTDIR=$(TARGET_DIR) -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/fetchmail/Config.in ================================================ config BR2_PACKAGE_FETCHMAIL bool "fetchmail" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_CA_CERTIFICATES select BR2_PACKAGE_OPENSSL help Fetchmail - the mail-retrieval daemon Client daemon to move mail from POP and IMAP to your local computer http://www.fetchmail.info/ ================================================ FILE: package/fetchmail/fetchmail.hash ================================================ # From https://sourceforge.net/p/fetchmail/mailman/message/37376434/ sha256 5f7a5e13731431134a2ca535bbced7adc666d3aeb93169a0830945d91f492300 fetchmail-6.4.23.tar.xz # Locally computed: sha256 001d1b8d111a83e3bab8b4d511ea4767d37d3bd0583560fccece630df1ba8f3c COPYING ================================================ FILE: package/fetchmail/fetchmail.mk ================================================ ################################################################################ # # fetchmail # ################################################################################ FETCHMAIL_VERSION_MAJOR = 6.4 FETCHMAIL_VERSION = $(FETCHMAIL_VERSION_MAJOR).23 FETCHMAIL_SOURCE = fetchmail-$(FETCHMAIL_VERSION).tar.xz FETCHMAIL_SITE = http://downloads.sourceforge.net/project/fetchmail/branch_$(FETCHMAIL_VERSION_MAJOR) FETCHMAIL_LICENSE = GPL-2.0; some exceptions are mentioned in COPYING FETCHMAIL_LICENSE_FILES = COPYING FETCHMAIL_CPE_ID_VENDOR = fetchmail FETCHMAIL_SELINUX_MODULES = fetchmail mta FETCHMAIL_CONF_OPTS = \ --with-ssl=$(STAGING_DIR)/usr FETCHMAIL_DEPENDENCIES = \ ca-certificates \ host-pkgconf \ openssl \ $(TARGET_NLS_DEPENDENCIES) $(eval $(autotools-package)) ================================================ FILE: package/ffmpeg/0001-swscale-x86-yuv2rgb-Fix-build-without-SSSE3.patch ================================================ From bf8eae2d30a205bb76ac625e04c0351106981b9e Mon Sep 17 00:00:00 2001 From: Parker Ernest <@> Date: Sun, 23 Feb 2020 13:22:42 +0100 Subject: [PATCH] swscale/x86/yuv2rgb: Fix build without SSSE3 commit fc6a5883d6af8cae0e96af84dda0ad74b360a084 breaks build on x86_64 CPUs which do not have SSSE3, e.g. AMD Phenom-II Signed-off-by: Michael Niedermayer [bernd.kuhls@t-online.de: - retrieved from upstream patchwork: https://patchwork.ffmpeg.org/project/ffmpeg/patch/20200223122256.23402-1-michael@niedermayer.cc/ ] Signed-off-by: Bernd Kuhls [yann.morin.1998@free.fr: fix reference top patchwork and SoB order] Signed-off-by: Yann E. MORIN --- libswscale/x86/yuv2rgb.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libswscale/x86/yuv2rgb.c b/libswscale/x86/yuv2rgb.c index c12e88cbb5..4791e5b93a 100644 --- a/libswscale/x86/yuv2rgb.c +++ b/libswscale/x86/yuv2rgb.c @@ -83,6 +83,7 @@ av_cold SwsFunc ff_yuv2rgb_init_x86(SwsContext *c) #if HAVE_X86ASM int cpu_flags = av_get_cpu_flags(); +#if HAVE_SSSE3 if (EXTERNAL_SSSE3(cpu_flags)) { switch (c->dstFormat) { case AV_PIX_FMT_RGB32: @@ -111,6 +112,7 @@ av_cold SwsFunc ff_yuv2rgb_init_x86(SwsContext *c) return yuv420_rgb15_ssse3; } } +#endif if (EXTERNAL_MMXEXT(cpu_flags)) { switch (c->dstFormat) { -- 2.26.2 ================================================ FILE: package/ffmpeg/0002-avcodec-vaapi_h264-skip-decode-if-pic-has-no-slices.patch ================================================ From 2c6b3f357331e203ad87214984661c40704aceb7 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 26 Jan 2019 19:48:35 +0100 Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368. It was hit frequently when watching h264 channels received via DVB-X. Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704 Downloaded from Kodi ffmpeg repo: https://github.com/xbmc/FFmpeg/commit/2c6b3f357331e203ad87214984661c40704aceb7 Patch was sent upstream: http://ffmpeg.org/pipermail/ffmpeg-devel/2019-March/240863.html Signed-off-by: Bernd Kuhls --- libavcodec/vaapi_h264.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c index dd2a6571604..e521a05c4ff 100644 --- a/libavcodec/vaapi_h264.c +++ b/libavcodec/vaapi_h264.c @@ -314,6 +314,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx) H264SliceContext *sl = &h->slice_ctx[0]; int ret; + if (pic->nb_slices == 0) { + ret = AVERROR_INVALIDDATA; + goto finish; + } + ret = ff_vaapi_decode_issue(avctx, pic); if (ret < 0) goto finish; ================================================ FILE: package/ffmpeg/0003-libavutil-Fix-mips-build.patch ================================================ From 6e8daf0d502a2a822f1f08f42368d7d676dc1a9e Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sun, 6 Jun 2021 08:54:53 +0200 Subject: [PATCH] libavutil: Fix mips build Check for sys/auxv.h because not all toolchains contain this header. Fixes https://trac.ffmpeg.org/ticket/9138 Patch sent upstream: http://ffmpeg.org/pipermail/ffmpeg-devel/2021-June/281272.html Signed-off-by: Bernd Kuhls --- configure | 2 ++ libavutil/mips/cpu.c | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 6bfd98b384..773a7d516c 100755 --- a/configure +++ b/configure @@ -2161,6 +2161,7 @@ HEADERS_LIST=" opencv2_core_core_c_h OpenGL_gl3_h poll_h + sys_auxv_h sys_param_h sys_resource_h sys_select_h @@ -6218,6 +6219,7 @@ check_func_headers VideoToolbox/VTCompressionSession.h VTCompressionSessionPrepa check_headers windows.h check_headers X11/extensions/XvMClib.h check_headers asm/types.h +check_headers sys/auxv.h # it seems there are versions of clang in some distros that try to use the # gcc headers, which explodes for stdatomic diff --git a/libavutil/mips/cpu.c b/libavutil/mips/cpu.c index 59619d54de..19196de50b 100644 --- a/libavutil/mips/cpu.c +++ b/libavutil/mips/cpu.c @@ -19,7 +19,7 @@ #include "libavutil/cpu.h" #include "libavutil/cpu_internal.h" #include "config.h" -#if defined __linux__ || defined __ANDROID__ +#if (defined __linux__ || defined __ANDROID__) && HAVE_SYS_AUXV_H #include #include #include @@ -28,7 +28,7 @@ #include "libavutil/avstring.h" #endif -#if defined __linux__ || defined __ANDROID__ +#if (defined __linux__ || defined __ANDROID__) && HAVE_SYS_AUXV_H #define HWCAP_LOONGSON_CPUCFG (1 << 14) @@ -105,7 +105,7 @@ static int cpu_flags_cpuinfo(void) int ff_get_cpu_flags_mips(void) { -#if defined __linux__ || defined __ANDROID__ +#if (defined __linux__ || defined __ANDROID__) && HAVE_SYS_AUXV_H if (cpucfg_available()) return cpu_flags_cpucfg(); else -- 2.29.2 ================================================ FILE: package/ffmpeg/0004-configure-add-extralibs-to-extralibs_xxx.patch ================================================ From 0c288853630b7b4e004774c39945d4a804afcfa8 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 6 Aug 2021 09:17:20 +0200 Subject: [PATCH] configure: add extralibs to extralibs_xxx Add extralibs to extralibs_xxx (e.g. extralibs_avformat) to allow applications such as motion to retrieve ffmpeg dependencies such as -latomic through pkg-config Signed-off-by: Fabrice Fontaine [Upstream status: not upstreamable] --- configure | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/configure b/configure index 0bb3a7cf2b..3bda99e415 100755 --- a/configure +++ b/configure @@ -7602,15 +7602,15 @@ rpath=$(enabled rpath && echo "-Wl,-rpath,\${libdir}") source_path=${source_path} LIBPREF=${LIBPREF} LIBSUF=${LIBSUF} -extralibs_avutil="$avutil_extralibs" -extralibs_avcodec="$avcodec_extralibs" -extralibs_avformat="$avformat_extralibs" -extralibs_avdevice="$avdevice_extralibs" -extralibs_avfilter="$avfilter_extralibs" -extralibs_avresample="$avresample_extralibs" -extralibs_postproc="$postproc_extralibs" -extralibs_swscale="$swscale_extralibs" -extralibs_swresample="$swresample_extralibs" +extralibs_avutil="$avutil_extralibs $extralibs" +extralibs_avcodec="$avcodec_extralibs $extralibs" +extralibs_avformat="$avformat_extralibs $extralibs" +extralibs_avdevice="$avdevice_extralibs $extralibs" +extralibs_avfilter="$avfilter_extralibs $extralibs" +extralibs_avresample="$avresample_extralibs $extralibs" +extralibs_postproc="$postproc_extralibs $extralibs" +extralibs_swscale="$swscale_extralibs $extralibs" +extralibs_swresample="$swresample_extralibs $extralibs" EOF for lib in $LIBRARY_LIST; do -- 2.30.2 ================================================ FILE: package/ffmpeg/Config.in ================================================ config BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS bool default y # fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2 depends on !BR2_nios2 # No support for ARMv7-M in the ARM assembly logic depends on !BR2_ARM_CPU_ARMV7M # m68k coldfire causes a build failure, because the check for # atomics (atomic_store) succeeds, which causes ffmpeg to # think atomic intrinsics are available, while they are # not. See https://patchwork.ozlabs.org/patch/756664/ and # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68467 for more # details. depends on !BR2_m68k_cf # assertion fail in binutils depends on !(BR2_or1k && !BR2_TOOLCHAIN_GCC_AT_LEAST_9) menuconfig BR2_PACKAGE_FFMPEG bool "ffmpeg" depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS help FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. http://www.ffmpeg.org if BR2_PACKAGE_FFMPEG config BR2_PACKAGE_FFMPEG_GPL bool "Enable GPL code" help allow use of GPL code, the resulting libs and binaries will be under GPL config BR2_PACKAGE_FFMPEG_NONFREE bool "Enable nonfree code" help allow use of nonfree code, the resulting libs and binaries will be unredistributable config BR2_PACKAGE_FFMPEG_FFMPEG bool "Build ffmpeg (the command line application)" default y help FFmpeg is a very fast video and audio converter. It can also grab from a live audio/video source. It is not needed if you want to link the FFmpeg libraries to your application. config BR2_PACKAGE_FFMPEG_FFPLAY bool "Build ffplay" depends on !BR2_STATIC_LIBS # sdl2 select BR2_PACKAGE_FFMPEG_SWSCALE select BR2_PACKAGE_SDL2 help FFplay is a very simple and portable media player using the FFmpeg libraries and the SDL library. It is mostly used as a testbed for the various FFmpeg APIs. comment "ffplay needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_FFMPEG_FFPROBE bool "Build ffprobe" help FFprobe is a utility to determine the audio and video characteristics of a container file. config BR2_PACKAGE_FFMPEG_XCBGRAB bool "Build X11 screen grabbing" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_LIBXCB help X11 screen grabbing using libxcb. config BR2_PACKAGE_FFMPEG_AVRESAMPLE bool "Build libavresample" help Avresample is a audio conversion library for compatibility. config BR2_PACKAGE_FFMPEG_POSTPROC bool "Build libpostproc" depends on BR2_PACKAGE_FFMPEG_GPL help Postproc is a library of video postprocessing routines. config BR2_PACKAGE_FFMPEG_SWSCALE bool "Build libswscale" help Swscale is a library of video scaling routines. config BR2_PACKAGE_FFMPEG_ENCODERS string "Enabled encoders" default "all" help Space-separated list of encoders to build in FFmpeg, or "all" to build all of them. Run ./configure --list-encoders in the ffmpeg sources directory to know the available options. config BR2_PACKAGE_FFMPEG_DECODERS string "Enabled decoders" default "all" help Space-separated list of decoders to build in FFmpeg, or "all" to build all of them. Run ./configure --list-decoders in the ffmpeg sources directory to know the available options. config BR2_PACKAGE_FFMPEG_MUXERS string "Enabled muxers" default "all" help Space-separated list of muxers to build in FFmpeg, or "all" to build all of them. Run ./configure --list-muxers in the ffmpeg sources directory to know the available options. config BR2_PACKAGE_FFMPEG_DEMUXERS string "Enabled demuxers" default "all" help Space-separated list of demuxers to build in FFmpeg, or "all" to build all of them. Run ./configure --list-demuxers in the ffmpeg sources directory to know the available options. config BR2_PACKAGE_FFMPEG_PARSERS string "Enabled parsers" default "all" help Space-separated list of parsers to build in FFmpeg, or "all" to build all of them. Run ./configure --list-parsers in the ffmpeg sources directory to know the available options. config BR2_PACKAGE_FFMPEG_BSFS string "Enabled bitstreams" default "all" help Space-separated list of bitstream filters to build in FFmpeg, or "all" to build all of them. Run ./configure --list-bsfs in the ffmpeg sources directory to know the available options. config BR2_PACKAGE_FFMPEG_PROTOCOLS string "Enabled protocols" default "all" help Space-separated list of protocols to build in FFmpeg, or "all" to build all of them. Run ./configure --list-protocols in the ffmpeg sources directory to know the available options. config BR2_PACKAGE_FFMPEG_FILTERS string "Enabled filters" default "all" help Space-separated list of filters to build in FFmpeg, or "all" to build all of them. Run ./configure --list-filters in the ffmpeg sources directory to know the available options. config BR2_PACKAGE_FFMPEG_INDEVS bool "Enable input devices" default y config BR2_PACKAGE_FFMPEG_OUTDEVS bool "Enable output devices" default y config BR2_PACKAGE_FFMPEG_EXTRACONF string "Additional parameters for ./configure" default "" help Extra parameters that will be appended to FFmpeg's ./configure commandline. endif ================================================ FILE: package/ffmpeg/ffmpeg.hash ================================================ # Locally calculated sha256 eadbad9e9ab30b25f5520fbfde99fae4a92a1ae3c0257a8d68569a4651e30e02 ffmpeg-4.4.1.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING.GPLv2 sha256 b634ab5640e258563c536e658cad87080553df6f34f62269a21d554844e58bfe COPYING.LGPLv2.1 sha256 cb48bf09a11f5fb576cddb0431c8f5ed0a60157a9ec942adffc13907cbe083f2 LICENSE.md ================================================ FILE: package/ffmpeg/ffmpeg.mk ================================================ ################################################################################ # # ffmpeg # ################################################################################ FFMPEG_VERSION = 4.4.1 FFMPEG_SOURCE = ffmpeg-$(FFMPEG_VERSION).tar.xz FFMPEG_SITE = http://ffmpeg.org/releases FFMPEG_INSTALL_STAGING = YES FFMPEG_LICENSE = LGPL-2.1+, libjpeg license FFMPEG_LICENSE_FILES = LICENSE.md COPYING.LGPLv2.1 ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y) FFMPEG_LICENSE += and GPL-2.0+ FFMPEG_LICENSE_FILES += COPYING.GPLv2 endif FFMPEG_CPE_ID_VENDOR = ffmpeg FFMPEG_CONF_OPTS = \ --prefix=/usr \ --enable-avfilter \ --disable-version3 \ --enable-logging \ --enable-optimizations \ --disable-extra-warnings \ --enable-avdevice \ --enable-avcodec \ --enable-avformat \ --enable-network \ --disable-gray \ --enable-swscale-alpha \ --disable-small \ --enable-dct \ --enable-fft \ --enable-mdct \ --enable-rdft \ --disable-crystalhd \ --disable-dxva2 \ --enable-runtime-cpudetect \ --disable-hardcoded-tables \ --disable-mipsdsp \ --disable-mipsdspr2 \ --disable-msa \ --enable-hwaccels \ --disable-cuda \ --disable-cuvid \ --disable-nvenc \ --disable-avisynth \ --disable-frei0r \ --disable-libopencore-amrnb \ --disable-libopencore-amrwb \ --disable-libdc1394 \ --disable-libgsm \ --disable-libilbc \ --disable-libvo-amrwbenc \ --disable-symver \ --disable-doc FFMPEG_DEPENDENCIES += host-pkgconf ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y) FFMPEG_CONF_OPTS += --enable-gpl else FFMPEG_CONF_OPTS += --disable-gpl endif ifeq ($(BR2_PACKAGE_FFMPEG_NONFREE),y) FFMPEG_CONF_OPTS += --enable-nonfree else FFMPEG_CONF_OPTS += --disable-nonfree endif ifeq ($(BR2_PACKAGE_FFMPEG_FFMPEG),y) FFMPEG_CONF_OPTS += --enable-ffmpeg else FFMPEG_CONF_OPTS += --disable-ffmpeg endif ifeq ($(BR2_PACKAGE_FFMPEG_FFPLAY),y) FFMPEG_DEPENDENCIES += sdl2 FFMPEG_CONF_OPTS += --enable-ffplay FFMPEG_CONF_ENV += SDL_CONFIG=$(STAGING_DIR)/usr/bin/sdl2-config else FFMPEG_CONF_OPTS += --disable-ffplay endif ifeq ($(BR2_PACKAGE_LIBV4L),y) FFMPEG_DEPENDENCIES += libv4l FFMPEG_CONF_OPTS += --enable-libv4l2 else FFMPEG_CONF_OPTS += --disable-libv4l2 endif ifeq ($(BR2_PACKAGE_FFMPEG_AVRESAMPLE),y) FFMPEG_CONF_OPTS += --enable-avresample else FFMPEG_CONF_OPTS += --disable-avresample endif ifeq ($(BR2_PACKAGE_FFMPEG_FFPROBE),y) FFMPEG_CONF_OPTS += --enable-ffprobe else FFMPEG_CONF_OPTS += --disable-ffprobe endif ifeq ($(BR2_PACKAGE_FFMPEG_XCBGRAB),y) FFMPEG_CONF_OPTS += \ --enable-libxcb \ --enable-libxcb-shape \ --enable-libxcb-shm \ --enable-libxcb-xfixes FFMPEG_DEPENDENCIES += libxcb else FFMPEG_CONF_OPTS += --disable-libxcb endif ifeq ($(BR2_PACKAGE_FFMPEG_POSTPROC),y) FFMPEG_CONF_OPTS += --enable-postproc else FFMPEG_CONF_OPTS += --disable-postproc endif ifeq ($(BR2_PACKAGE_FFMPEG_SWSCALE),y) FFMPEG_CONF_OPTS += --enable-swscale else FFMPEG_CONF_OPTS += --disable-swscale endif ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_ENCODERS)),all) FFMPEG_CONF_OPTS += --disable-encoders \ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_ENCODERS)),--enable-encoder=$(x)) endif ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_DECODERS)),all) FFMPEG_CONF_OPTS += --disable-decoders \ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_DECODERS)),--enable-decoder=$(x)) endif ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_MUXERS)),all) FFMPEG_CONF_OPTS += --disable-muxers \ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_MUXERS)),--enable-muxer=$(x)) endif ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_DEMUXERS)),all) FFMPEG_CONF_OPTS += --disable-demuxers \ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_DEMUXERS)),--enable-demuxer=$(x)) endif ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_PARSERS)),all) FFMPEG_CONF_OPTS += --disable-parsers \ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_PARSERS)),--enable-parser=$(x)) endif ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_BSFS)),all) FFMPEG_CONF_OPTS += --disable-bsfs \ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_BSFS)),--enable-bsf=$(x)) endif ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_PROTOCOLS)),all) FFMPEG_CONF_OPTS += --disable-protocols \ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_PROTOCOLS)),--enable-protocol=$(x)) endif ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_FILTERS)),all) FFMPEG_CONF_OPTS += --disable-filters \ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_FILTERS)),--enable-filter=$(x)) endif ifeq ($(BR2_PACKAGE_FFMPEG_INDEVS),y) FFMPEG_CONF_OPTS += --enable-indevs ifeq ($(BR2_PACKAGE_ALSA_LIB),y) FFMPEG_CONF_OPTS += --enable-alsa FFMPEG_DEPENDENCIES += alsa-lib else FFMPEG_CONF_OPTS += --disable-alsa endif else FFMPEG_CONF_OPTS += --disable-indevs endif ifeq ($(BR2_PACKAGE_FFMPEG_OUTDEVS),y) FFMPEG_CONF_OPTS += --enable-outdevs ifeq ($(BR2_PACKAGE_ALSA_LIB),y) FFMPEG_DEPENDENCIES += alsa-lib endif else FFMPEG_CONF_OPTS += --disable-outdevs endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) FFMPEG_CONF_OPTS += --enable-pthreads else FFMPEG_CONF_OPTS += --disable-pthreads endif ifeq ($(BR2_PACKAGE_ZLIB),y) FFMPEG_CONF_OPTS += --enable-zlib FFMPEG_DEPENDENCIES += zlib else FFMPEG_CONF_OPTS += --disable-zlib endif ifeq ($(BR2_PACKAGE_BZIP2),y) FFMPEG_CONF_OPTS += --enable-bzlib FFMPEG_DEPENDENCIES += bzip2 else FFMPEG_CONF_OPTS += --disable-bzlib endif ifeq ($(BR2_PACKAGE_FDK_AAC)$(BR2_PACKAGE_FFMPEG_NONFREE),yy) FFMPEG_CONF_OPTS += --enable-libfdk-aac FFMPEG_DEPENDENCIES += fdk-aac else FFMPEG_CONF_OPTS += --disable-libfdk-aac endif ifeq ($(BR2_PACKAGE_FFMPEG_GPL)$(BR2_PACKAGE_LIBCDIO_PARANOIA),yy) FFMPEG_CONF_OPTS += --enable-libcdio FFMPEG_DEPENDENCIES += libcdio-paranoia else FFMPEG_CONF_OPTS += --disable-libcdio endif ifeq ($(BR2_PACKAGE_GNUTLS),y) FFMPEG_CONF_OPTS += --enable-gnutls --disable-openssl FFMPEG_DEPENDENCIES += gnutls else FFMPEG_CONF_OPTS += --disable-gnutls ifeq ($(BR2_PACKAGE_OPENSSL),y) # openssl isn't license compatible with GPL ifeq ($(BR2_PACKAGE_FFMPEG_GPL)x$(BR2_PACKAGE_FFMPEG_NONFREE),yx) FFMPEG_CONF_OPTS += --disable-openssl else FFMPEG_CONF_OPTS += --enable-openssl FFMPEG_DEPENDENCIES += openssl endif else FFMPEG_CONF_OPTS += --disable-openssl endif endif ifeq ($(BR2_PACKAGE_FFMPEG_GPL)$(BR2_PACKAGE_LIBEBUR128),yy) FFMPEG_DEPENDENCIES += libebur128 endif ifeq ($(BR2_PACKAGE_LIBDRM),y) FFMPEG_CONF_OPTS += --enable-libdrm FFMPEG_DEPENDENCIES += libdrm else FFMPEG_CONF_OPTS += --disable-libdrm endif ifeq ($(BR2_PACKAGE_LIBOPENH264),y) FFMPEG_CONF_OPTS += --enable-libopenh264 FFMPEG_DEPENDENCIES += libopenh264 else FFMPEG_CONF_OPTS += --disable-libopenh264 endif ifeq ($(BR2_PACKAGE_LIBVORBIS),y) FFMPEG_DEPENDENCIES += libvorbis FFMPEG_CONF_OPTS += \ --enable-libvorbis \ --enable-muxer=ogg \ --enable-encoder=libvorbis endif ifeq ($(BR2_PACKAGE_LIBVA),y) FFMPEG_CONF_OPTS += --enable-vaapi FFMPEG_DEPENDENCIES += libva 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_RPI_USERLAND),y) FFMPEG_CONF_OPTS += --enable-mmal --enable-omx --enable-omx-rpi \ --extra-cflags=-I$(STAGING_DIR)/usr/include/IL FFMPEG_DEPENDENCIES += rpi-userland else FFMPEG_CONF_OPTS += --disable-mmal --disable-omx --disable-omx-rpi endif # To avoid a circular dependency only use opencv if opencv itself does # not depend on ffmpeg. ifeq ($(BR2_PACKAGE_OPENCV3_LIB_IMGPROC)x$(BR2_PACKAGE_OPENCV3_WITH_FFMPEG),yx) FFMPEG_CONF_OPTS += --enable-libopencv FFMPEG_DEPENDENCIES += opencv3 else FFMPEG_CONF_OPTS += --disable-libopencv endif ifeq ($(BR2_PACKAGE_OPUS),y) FFMPEG_CONF_OPTS += --enable-libopus FFMPEG_DEPENDENCIES += opus else FFMPEG_CONF_OPTS += --disable-libopus endif ifeq ($(BR2_PACKAGE_LIBVPX),y) FFMPEG_CONF_OPTS += --enable-libvpx FFMPEG_DEPENDENCIES += libvpx else FFMPEG_CONF_OPTS += --disable-libvpx endif ifeq ($(BR2_PACKAGE_LIBASS),y) FFMPEG_CONF_OPTS += --enable-libass FFMPEG_DEPENDENCIES += libass else FFMPEG_CONF_OPTS += --disable-libass endif ifeq ($(BR2_PACKAGE_LIBBLURAY),y) FFMPEG_CONF_OPTS += --enable-libbluray FFMPEG_DEPENDENCIES += libbluray else FFMPEG_CONF_OPTS += --disable-libbluray endif ifeq ($(BR2_PACKAGE_INTEL_MEDIASDK),y) FFMPEG_CONF_OPTS += --enable-libmfx FFMPEG_DEPENDENCIES += intel-mediasdk else FFMPEG_CONF_OPTS += --disable-libmfx endif ifeq ($(BR2_PACKAGE_RTMPDUMP),y) FFMPEG_CONF_OPTS += --enable-librtmp FFMPEG_DEPENDENCIES += rtmpdump else FFMPEG_CONF_OPTS += --disable-librtmp endif ifeq ($(BR2_PACKAGE_LAME),y) FFMPEG_CONF_OPTS += --enable-libmp3lame FFMPEG_DEPENDENCIES += lame else FFMPEG_CONF_OPTS += --disable-libmp3lame endif ifeq ($(BR2_PACKAGE_LIBMODPLUG),y) FFMPEG_CONF_OPTS += --enable-libmodplug FFMPEG_DEPENDENCIES += libmodplug else FFMPEG_CONF_OPTS += --disable-libmodplug endif ifeq ($(BR2_PACKAGE_SPEEX),y) FFMPEG_CONF_OPTS += --enable-libspeex FFMPEG_DEPENDENCIES += speex else FFMPEG_CONF_OPTS += --disable-libspeex endif ifeq ($(BR2_PACKAGE_LIBTHEORA),y) FFMPEG_CONF_OPTS += --enable-libtheora FFMPEG_DEPENDENCIES += libtheora else FFMPEG_CONF_OPTS += --disable-libtheora endif ifeq ($(BR2_PACKAGE_LIBICONV),y) FFMPEG_CONF_OPTS += --enable-iconv FFMPEG_DEPENDENCIES += libiconv else FFMPEG_CONF_OPTS += --disable-iconv endif # ffmpeg freetype support require fenv.h which is only # available/working on glibc. # The microblaze variant doesn't provide the needed exceptions ifeq ($(BR2_PACKAGE_FREETYPE)$(BR2_TOOLCHAIN_USES_GLIBC)x$(BR2_microblaze),yyx) FFMPEG_CONF_OPTS += --enable-libfreetype FFMPEG_DEPENDENCIES += freetype else FFMPEG_CONF_OPTS += --disable-libfreetype endif ifeq ($(BR2_PACKAGE_FONTCONFIG),y) FFMPEG_CONF_OPTS += --enable-fontconfig FFMPEG_DEPENDENCIES += fontconfig else FFMPEG_CONF_OPTS += --disable-fontconfig endif ifeq ($(BR2_PACKAGE_OPENJPEG),y) FFMPEG_CONF_OPTS += --enable-libopenjpeg FFMPEG_DEPENDENCIES += openjpeg else FFMPEG_CONF_OPTS += --disable-libopenjpeg endif ifeq ($(BR2_PACKAGE_X264)$(BR2_PACKAGE_FFMPEG_GPL),yy) FFMPEG_CONF_OPTS += --enable-libx264 FFMPEG_DEPENDENCIES += x264 else FFMPEG_CONF_OPTS += --disable-libx264 endif ifeq ($(BR2_PACKAGE_X265)$(BR2_PACKAGE_FFMPEG_GPL),yy) FFMPEG_CONF_OPTS += --enable-libx265 FFMPEG_DEPENDENCIES += x265 else FFMPEG_CONF_OPTS += --disable-libx265 endif ifeq ($(BR2_PACKAGE_DAV1D),y) FFMPEG_CONF_OPTS += --enable-libdav1d FFMPEG_DEPENDENCIES += dav1d else FFMPEG_CONF_OPTS += --disable-libdav1d endif ifeq ($(BR2_X86_CPU_HAS_MMX),y) FFMPEG_CONF_OPTS += --enable-x86asm FFMPEG_DEPENDENCIES += host-nasm else FFMPEG_CONF_OPTS += --disable-x86asm FFMPEG_CONF_OPTS += --disable-mmx endif ifeq ($(BR2_X86_CPU_HAS_SSE),y) FFMPEG_CONF_OPTS += --enable-sse else FFMPEG_CONF_OPTS += --disable-sse endif ifeq ($(BR2_X86_CPU_HAS_SSE2),y) FFMPEG_CONF_OPTS += --enable-sse2 else FFMPEG_CONF_OPTS += --disable-sse2 endif ifeq ($(BR2_X86_CPU_HAS_SSE3),y) FFMPEG_CONF_OPTS += --enable-sse3 else FFMPEG_CONF_OPTS += --disable-sse3 endif ifeq ($(BR2_X86_CPU_HAS_SSSE3),y) FFMPEG_CONF_OPTS += --enable-ssse3 else FFMPEG_CONF_OPTS += --disable-ssse3 endif ifeq ($(BR2_X86_CPU_HAS_SSE4),y) FFMPEG_CONF_OPTS += --enable-sse4 else FFMPEG_CONF_OPTS += --disable-sse4 endif ifeq ($(BR2_X86_CPU_HAS_SSE42),y) FFMPEG_CONF_OPTS += --enable-sse42 else FFMPEG_CONF_OPTS += --disable-sse42 endif ifeq ($(BR2_X86_CPU_HAS_AVX),y) FFMPEG_CONF_OPTS += --enable-avx else FFMPEG_CONF_OPTS += --disable-avx endif ifeq ($(BR2_X86_CPU_HAS_AVX2),y) FFMPEG_CONF_OPTS += --enable-avx2 else FFMPEG_CONF_OPTS += --disable-avx2 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) FFMPEG_CONF_OPTS += --disable-armv5te endif ifeq ($(BR2_ARM_CPU_ARMV6)$(BR2_ARM_CPU_ARMV7A),y) FFMPEG_CONF_OPTS += --enable-armv6 else FFMPEG_CONF_OPTS += --disable-armv6 --disable-armv6t2 endif ifeq ($(BR2_ARM_CPU_HAS_VFPV2),y) FFMPEG_CONF_OPTS += --enable-vfp else FFMPEG_CONF_OPTS += --disable-vfp endif ifeq ($(BR2_ARM_CPU_HAS_NEON),y) FFMPEG_CONF_OPTS += --enable-neon else ifeq ($(BR2_aarch64),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 else FFMPEG_CONF_OPTS += --enable-mipsfpu endif # Fix build failure on several missing assembly instructions FFMPEG_CONF_OPTS += --disable-asm endif # MIPS ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y) FFMPEG_CONF_OPTS += --enable-altivec else FFMPEG_CONF_OPTS += --disable-altivec endif # Uses __atomic_fetch_add_4 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) FFMPEG_CONF_OPTS += --extra-libs=-latomic endif ifeq ($(BR2_STATIC_LIBS),) FFMPEG_CONF_OPTS += --enable-pic else FFMPEG_CONF_OPTS += --disable-pic endif # Default to --cpu=generic for MIPS architecture, in order to avoid a # warning from ffmpeg's configure script. ifeq ($(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y) FFMPEG_CONF_OPTS += --cpu=generic else ifneq ($(GCC_TARGET_CPU),) FFMPEG_CONF_OPTS += --cpu="$(GCC_TARGET_CPU)" else ifneq ($(GCC_TARGET_ARCH),) FFMPEG_CONF_OPTS += --cpu="$(GCC_TARGET_ARCH)" endif FFMPEG_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) FFMPEG_CONF_OPTS += --disable-optimizations FFMPEG_CFLAGS += -O0 endif FFMPEG_CONF_ENV += CFLAGS="$(FFMPEG_CFLAGS)" FFMPEG_CONF_OPTS += $(call qstrip,$(BR2_PACKAGE_FFMPEG_EXTRACONF)) # Override FFMPEG_CONFIGURE_CMDS: FFmpeg does not support --target and others define FFMPEG_CONFIGURE_CMDS (cd $(FFMPEG_SRCDIR) && rm -rf config.cache && \ $(TARGET_CONFIGURE_OPTS) \ $(TARGET_CONFIGURE_ARGS) \ $(FFMPEG_CONF_ENV) \ ./configure \ --enable-cross-compile \ --cross-prefix=$(TARGET_CROSS) \ --sysroot=$(STAGING_DIR) \ --host-cc="$(HOSTCC)" \ --arch=$(BR2_ARCH) \ --target-os="linux" \ --disable-stripping \ --pkg-config="$(PKG_CONFIG_HOST_BINARY)" \ $(SHARED_STATIC_LIBS_OPTS) \ $(FFMPEG_CONF_OPTS) \ ) endef define FFMPEG_REMOVE_EXAMPLE_SRC_FILES rm -rf $(TARGET_DIR)/usr/share/ffmpeg/examples endef FFMPEG_POST_INSTALL_TARGET_HOOKS += FFMPEG_REMOVE_EXAMPLE_SRC_FILES $(eval $(autotools-package)) ================================================ FILE: package/fftw/Config.in ================================================ config BR2_PACKAGE_FFTW bool "fftw" select BR2_PACKAGE_FFTW_DOUBLE if !BR2_PACKAGE_FFTW_SINGLE \ && !BR2_PACKAGE_FFTW_LONG_DOUBLE && !BR2_PACKAGE_FFTW_QUAD help Library for computing Fast Fourier Transforms. This library computes Fast Fourier Transforms (FFT) in one or more dimensions. It is extremely fast. This package contains the shared library version of the fftw libraries in double precision. http://www.fftw.org if BR2_PACKAGE_FFTW source "package/fftw/fftw-single/Config.in" source "package/fftw/fftw-double/Config.in" source "package/fftw/fftw-long-double/Config.in" source "package/fftw/fftw-quad/Config.in" config BR2_PACKAGE_FFTW_FAST bool "optimise for speed over accuracy" help Optimise for fast math functions, at the expense of accuracy. Say 'y' if you need speed and can live with inaccuracies in the results. Say 'n' (the default) if accuracy is of utmost importance. This basically uses gcc's -Ofast optimisation level, which in turn is basically using gcc's -ffast-math. See the gcc manual for what this means. endif ================================================ FILE: package/fftw/fftw-double/Config.in ================================================ config BR2_PACKAGE_FFTW_DOUBLE bool "fftw-double" help Compile fftw in double precision (the default), i.e. use 'double' for floating point type. ================================================ FILE: package/fftw/fftw-double/fftw-double.mk ================================================ ################################################################################ # # fftw-double # ################################################################################ FFTW_DOUBLE_VERSION = $(FFTW_VERSION) FFTW_DOUBLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz FFTW_DOUBLE_SITE = $(FFTW_SITE) FFTW_DOUBLE_DL_SUBDIR = fftw FFTW_DOUBLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING) FFTW_DOUBLE_LICENSE = $(FFTW_LICENSE) FFTW_DOUBLE_LICENSE_FILES = $(FFTW_LICENSE_FILES) FFTW_DOUBLE_CONF_ENV = $(FFTW_COMMON_CONF_ENV) FFTW_DOUBLE_CONF_OPTS = \ $(FFTW_COMMON_CONF_OPTS) \ CFLAGS="$(FFTW_COMMON_CFLAGS)" \ $(if $(BR2_X86_CPU_HAS_SSE2),--enable,--disable)-sse2 $(eval $(autotools-package)) ================================================ FILE: package/fftw/fftw-long-double/Config.in ================================================ config BR2_PACKAGE_FFTW_LONG_DOUBLE bool "fftw-long-double" # long-double precision require long-double trigonometric routines depends on !(BR2_TOOLCHAIN_USES_UCLIBC && \ (BR2_arm || BR2_mips || BR2_mipsel)) help Compile fftw in long double precision, i.e. use 'long double' for floating point type. ================================================ FILE: package/fftw/fftw-long-double/fftw-long-double.mk ================================================ ################################################################################ # # fftw-long-double # ################################################################################ FFTW_LONG_DOUBLE_VERSION = $(FFTW_VERSION) FFTW_LONG_DOUBLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz FFTW_LONG_DOUBLE_SITE = $(FFTW_SITE) FFTW_LONG_DOUBLE_DL_SUBDIR = fftw FFTW_LONG_DOUBLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING) FFTW_LONG_DOUBLE_LICENSE = $(FFTW_LICENSE) FFTW_LONG_DOUBLE_LICENSE_FILES = $(FFTW_LICENSE_FILES) FFTW_LONG_DOUBLE_CONF_ENV = $(FFTW_COMMON_CONF_ENV) FFTW_LONG_DOUBLE_CONF_OPTS = \ $(FFTW_COMMON_CONF_OPTS) \ CFLAGS="$(FFTW_COMMON_CFLAGS)" \ --enable-long-double $(eval $(autotools-package)) ================================================ FILE: package/fftw/fftw-quad/Config.in ================================================ config BR2_PACKAGE_FFTW_QUAD bool "fftw-quad" # quad-precision needs to have a gcc with libquadmath depends on BR2_TOOLCHAIN_HAS_LIBQUADMATH && BR2_USE_WCHAR help Compile fftw in quadruple precision, i.e. use '__float128' for floating point type. ================================================ FILE: package/fftw/fftw-quad/fftw-quad.mk ================================================ ################################################################################ # # fftw-quad # ################################################################################ FFTW_QUAD_VERSION = $(FFTW_VERSION) FFTW_QUAD_SOURCE = fftw-$(FFTW_VERSION).tar.gz FFTW_QUAD_SITE = $(FFTW_SITE) FFTW_QUAD_DL_SUBDIR = fftw FFTW_QUAD_INSTALL_STAGING = $(FFTW_INSTALL_STAGING) FFTW_QUAD_LICENSE = $(FFTW_LICENSE) FFTW_QUAD_LICENSE_FILES = $(FFTW_LICENSE_FILES) FFTW_QUAD_CONF_ENV = $(FFTW_COMMON_CONF_ENV) FFTW_QUAD_CONF_OPTS = \ $(FFTW_COMMON_CONF_OPTS) \ CFLAGS="$(FFTW_COMMON_CFLAGS)" \ --enable-quad-precision $(eval $(autotools-package)) ================================================ FILE: package/fftw/fftw-single/Config.in ================================================ config BR2_PACKAGE_FFTW_SINGLE bool "fftw-single" help Compile fftw in single precision, i.e. use 'float' for floating point type. ================================================ FILE: package/fftw/fftw-single/fftw-single.mk ================================================ ################################################################################ # # fftw-single # ################################################################################ FFTW_SINGLE_VERSION = $(FFTW_VERSION) FFTW_SINGLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz FFTW_SINGLE_SITE = $(FFTW_SITE) FFTW_SINGLE_DL_SUBDIR = fftw FFTW_SINGLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING) FFTW_SINGLE_LICENSE = $(FFTW_LICENSE) FFTW_SINGLE_LICENSE_FILES = $(FFTW_LICENSE_FILES) FFTW_SINGLE_CONF_ENV = $(FFTW_COMMON_CONF_ENV) FFTW_SINGLE_CONF_OPTS = \ $(FFTW_COMMON_CONF_OPTS) \ CFLAGS="$(FFTW_SINGLE_CFLAGS)" \ --enable-single FFTW_SINGLE_CFLAGS = $(FFTW_COMMON_CFLAGS) # x86 optimisations FFTW_SINGLE_CONF_OPTS += \ $(if $(BR2_X86_CPU_HAS_SSE),--enable,--disable)-sse \ $(if $(BR2_X86_CPU_HAS_SSE2),--enable,--disable)-sse2 # ARM optimisations ifeq ($(BR2_ARM_CPU_HAS_NEON):$(BR2_ARM_SOFT_FLOAT),y:) FFTW_SINGLE_CONF_OPTS += --enable-neon FFTW_SINGLE_CFLAGS += -mfpu=neon else FFTW_SINGLE_CONF_OPTS += --disable-neon endif $(eval $(autotools-package)) ================================================ FILE: package/fftw/fftw.hash ================================================ # From http://www.fftw.org/fftw-3.3.8.tar.gz.md5sum md5 8aac833c943d8e90d51b697b27d4384d fftw-3.3.8.tar.gz # Locally computed sha256 6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303 fftw-3.3.7.tar.gz sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/fftw/fftw.mk ================================================ ################################################################################ # # fftw # ################################################################################ FFTW_VERSION = 3.3.8 FFTW_SITE = http://www.fftw.org FFTW_INSTALL_STAGING = YES FFTW_LICENSE = GPL-2.0+ FFTW_LICENSE_FILES = COPYING # fortran support only enables generation and installation of fortran sources ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),y) FFTW_COMMON_CONF_OPTS += --enable-fortran FFTW_COMMON_CONF_ENV += FLIBS="-lgfortran -lm" else FFTW_COMMON_CONF_OPTS += --disable-fortran endif FFTW_COMMON_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_PACKAGE_FFTW_FAST),y) FFTW_COMMON_CFLAGS += -O3 -ffast-math endif # Generic optimisations ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) FFTW_COMMON_CONF_OPTS += --enable-threads FFTW_COMMON_CONF_OPTS += $(if $(BR2_TOOLCHAIN_HAS_OPENMP),--without,--with)-combined-threads else FFTW_COMMON_CONF_OPTS += --disable-threads endif FFTW_COMMON_CONF_OPTS += $(if $(BR2_TOOLCHAIN_HAS_OPENMP),--enable,--disable)-openmp include $(sort $(wildcard package/fftw/*/*.mk)) ================================================ FILE: package/ficl/0001-fix-Makefile.patch ================================================ 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) -- ================================================ FILE: package/ficl/Config.in ================================================ 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 ================================================ FILE: package/ficl/ficl.hash ================================================ # Locally computed: sha256 4daf74f3d3d6f8b86ea7cb47bc24931d50b4809b50ba34ca32e0ca1e972bd3a3 ficl-4.1.0.tar.gz sha256 1d1dd1f1cde52e8b607c5ccb6a2e5de878fd1719b8c5a4d31b9cdb343c203d0d ReadMe.txt ================================================ FILE: package/ficl/ficl.mk ================================================ ################################################################################ # # 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-2-Clause 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) -fgnu89-inline -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)) ================================================ FILE: package/file/0001-Add-libmagic.pc.patch ================================================ From d079cac1110cc2761417f0dcb0a142b217eb1eda Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 31 Jan 2020 20:26:29 +0100 Subject: [PATCH] Add libmagic.pc libmagic can optionally depends on xz (for lzma) or bzip2 since version 5.38 and https://github.com/file/file/commit/b259a07ea95827f565faa20f0316e5b2704064f7 so add libmagic.pc so package (such as gerbera) that links with libmagic will be able to use pkg-config to retrieve those static dependencies For example, this will avoid the following build failure: [100%] Linking CXX executable gerbera /home/br-user/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/br-user/autobuild/run/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libmagic.a(compress.o): in function `uncompressbuf': compress.c:(.text+0x69c): undefined reference to `BZ2_bzDecompressInit' /home/br-user/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: compress.c:(.text+0x710): undefined reference to `BZ2_bzDecompress' /home/br-user/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: compress.c:(.text+0x730): undefined reference to `BZ2_bzDecompressEnd' /home/br-user/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: compress.c:(.text+0x7bc): undefined reference to `lzma_auto_decoder' /home/br-user/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: compress.c:(.text+0x828): undefined reference to `lzma_code' /home/br-user/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: compress.c:(.text+0x848): undefined reference to `lzma_end' Fixes: - http://autobuild.buildroot.org/results/37b1ef54dc41100689f311fbc31fc9300dc6ae63 Signed-off-by: Fabrice Fontaine [Upstream status: https://bugs.astron.com/view.php?id=136] --- Makefile.am | 5 +++++ configure.ac | 2 +- libmagic.pc.in | 10 ++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 libmagic.pc.in diff --git a/Makefile.am b/Makefile.am index 8bd927d9..2ab67ed7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,3 +3,8 @@ ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = MAINT SUBDIRS = src magic tests doc python + +# This variable must have 'exec' in its name, in order to be installed +# by 'install-exec' target (instead of default 'install-data') +pkgconfigexecdir = $(libdir)/pkgconfig +pkgconfigexec_DATA = libmagic.pc diff --git a/configure.ac b/configure.ac index ac37fccd..b2e2e5b8 100644 --- a/configure.ac +++ b/configure.ac @@ -217,5 +217,5 @@ if test "$ac_cv_header_lzma_h$ac_cv_lib_lzma_lzma_stream_decoder" = "yesyes"; t AC_DEFINE([XZLIBSUPPORT], 1, [Enable xzlib compression support]) fi -AC_CONFIG_FILES([Makefile src/Makefile magic/Makefile tests/Makefile doc/Makefile python/Makefile]) +AC_CONFIG_FILES([Makefile src/Makefile magic/Makefile tests/Makefile doc/Makefile python/Makefile libmagic.pc]) AC_OUTPUT diff --git a/libmagic.pc.in b/libmagic.pc.in new file mode 100644 index 00000000..3ad1290b --- /dev/null +++ b/libmagic.pc.in @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libmagic +Description: Magic number recognition library +Version: @VERSION@ +Libs: -L${libdir} -lmagic +Libs.private: @LIBS@ -- 2.24.1 ================================================ FILE: package/file/Config.in ================================================ config BR2_PACKAGE_FILE bool "file" help Program to identify a file's format by scanning binary data for known patterns. http://www.darwinsys.com/file/ ================================================ FILE: package/file/file.hash ================================================ # Locally calculated after verifying signature # ftp://ftp.astron.com/pub/file/file-5.38.tar.gz.asc # using key BE04995BA8F90ED0C0C176C471112AB16CB33B3A sha256 593c2ffc2ab349c5aea0f55fedfe4d681737b6b62376a9b3ad1e77b2cc19fa34 file-5.38.tar.gz sha256 0bfa856a9930bddadbef95d1be1cf4e163c0be618e76ea3275caaf255283e274 COPYING sha256 4ccb60d623884ef637af4a5bc16b2cb350163e2135e967655837336019a64462 src/mygetopt.h sha256 58b5932aca6c10f2194290a3b26088ec9ba07ef6b52cc9bb2dd638cc634db6f1 src/vasprintf.c ================================================ FILE: package/file/file.mk ================================================ ################################################################################ # # file # ################################################################################ FILE_VERSION = 5.38 FILE_SITE = ftp://ftp.astron.com/pub/file FILE_DEPENDENCIES = host-file HOST_FILE_DEPENDENCIES = host-zlib FILE_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' FILE_INSTALL_STAGING = YES FILE_LICENSE = BSD-2-Clause, BSD-4-Clause (one file), BSD-3-Clause (one file) FILE_LICENSE_FILES = COPYING src/mygetopt.h src/vasprintf.c FILE_CPE_ID_VENDOR = file_project # We're patching configure.ac FILE_AUTORECONF = YES HOST_FILE_CONF_OPTS = --disable-libseccomp ifeq ($(BR2_PACKAGE_BZIP2),y) FILE_CONF_OPTS += --enable-bzlib FILE_DEPENDENCIES += bzip2 else FILE_CONF_OPTS += --disable-bzlib endif ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) FILE_CONF_OPTS += --enable-libseccomp FILE_DEPENDENCIES += libseccomp else FILE_CONF_OPTS += --disable-libseccomp endif ifeq ($(BR2_PACKAGE_XZ),y) FILE_CONF_OPTS += --enable-xzlib FILE_DEPENDENCIES += xz else FILE_CONF_OPTS += --disable-xzlib endif ifeq ($(BR2_PACKAGE_ZLIB),y) FILE_CONF_OPTS += --enable-zlib FILE_DEPENDENCIES += zlib else FILE_CONF_OPTS += --disable-zlib endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/filemq/Config.in ================================================ config BR2_PACKAGE_FILEMQ bool "filemq" depends on BR2_INSTALL_LIBSTDCPP # zeromq depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq depends on BR2_USE_MMU # czmq select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_CZMQ select BR2_PACKAGE_ZEROMQ help FileMQ is a publish-subscribe file service based on 0MQ. http://github.com/zeromq/filemq comment "filemq needs a toolchain w/ C++, threads" depends on BR2_USE_MMU depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS) ================================================ FILE: package/filemq/filemq.hash ================================================ # Locally calculated sha256 bdec8584a181e1c9a1d9be567768bcf8c3f7132ea701dd1829f74370c6536991 filemq-af4768dcaf2fcb8083a32bad107a22ecb7a5d954.tar.gz sha256 60222c28c1a7f6a92c7df98e5c5f4459e624e6e285e0b9b94467af5f6ab3343d LICENSE ================================================ FILE: package/filemq/filemq.mk ================================================ ################################################################################ # # filemq # ################################################################################ FILEMQ_VERSION = af4768dcaf2fcb8083a32bad107a22ecb7a5d954 FILEMQ_SITE = $(call github,zeromq,filemq,$(FILEMQ_VERSION)) FILEMQ_AUTORECONF = YES FILEMQ_CONF_ENV = filemq_have_asciidoc=no FILEMQ_INSTALL_STAGING = YES FILEMQ_DEPENDENCIES = czmq openssl zeromq FILEMQ_LICENSE = MPL-2.0 FILEMQ_LICENSE_FILES = LICENSE define FILEMQ_CREATE_CONFIG_DIR mkdir -p $(@D)/config endef FILEMQ_POST_PATCH_HOOKS += FILEMQ_CREATE_CONFIG_DIR $(eval $(autotools-package)) ================================================ FILE: package/findutils/Config.in ================================================ 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. http://www.gnu.org/software/findutils/findutils.html comment "findutils needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/findutils/findutils.hash ================================================ # Locally calculated after checking pgp signature sha256 57127b7e97d91282c6ace556378d5455a9509898297e46e10443016ea1387164 findutils-4.8.0.tar.xz # Hash for license file sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 COPYING ================================================ FILE: package/findutils/findutils.mk ================================================ ################################################################################ # # findutils # ################################################################################ FINDUTILS_VERSION = 4.8.0 FINDUTILS_SOURCE = findutils-$(FINDUTILS_VERSION).tar.xz FINDUTILS_SITE = $(BR2_GNU_MIRROR)/findutils FINDUTILS_LICENSE = GPL-3.0+ FINDUTILS_LICENSE_FILES = COPYING FINDUTILS_CPE_ID_VENDOR = gnu FINDUTILS_CONF_ENV = \ gl_cv_func_stdin=yes \ ac_cv_func_working_mktime=yes \ gl_cv_func_wcwidth_works=yes $(eval $(autotools-package)) ================================================ FILE: package/fio/Config.in ================================================ config BR2_PACKAGE_FIO bool "fio" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C11/stdatomic.h depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_TOOLCHAIN_HAS_THREADS # fio uses fallocate() which becomes fallocate64() while compiling with # largefile support, but fallocate64() is not available on nios2 depends on !BR2_nios2 help fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. http://git.kernel.dk/?p=fio.git;a=summary comment "fio needs a toolchain w/ dynamic library, threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_nios2 depends on BR2_USE_MMU ================================================ FILE: package/fio/fio.hash ================================================ # Locally computed sha256 859dca5241e5494d86c4aa1531a984cc556789c78e56b30d6070acfbdd193a8c fio-3.28.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 8a240c1ad13d1fe3e58588643d81d0695899be4a669fe6d8fafa76ca6a89db2c MORAL-LICENSE ================================================ FILE: package/fio/fio.mk ================================================ ################################################################################ # # fio # ################################################################################ FIO_VERSION = 3.28 FIO_SITE = http://brick.kernel.dk/snaps FIO_LICENSE = GPL-2.0 FIO_LICENSE_FILES = COPYING MORAL-LICENSE ifeq ($(BR2_PACKAGE_LIBAIO),y) FIO_DEPENDENCIES += libaio endif ifeq ($(BR2_PACKAGE_LIBNFS),y) FIO_DEPENDENCIES += libnfs 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); $(TARGET_MAKE_ENV) ./configure --cc="$(TARGET_CC)" --extra-cflags="$(TARGET_CFLAGS)") endef define FIO_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define FIO_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/fio $(TARGET_DIR)/usr/bin/fio endef $(eval $(generic-package)) ================================================ FILE: package/firmware-utils/Config.in ================================================ config BR2_PACKAGE_FIRMWARE_UTILS bool "firmware-utils" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_ZLIB help Firmware utils are tools that can be used for managing platform / device / vendor specific firmware images. Depending on a specific tool it may be possible to read information, extract data, modify or build an image from a scratch. A common target usage of firmware utils is to upgrade kernel and / or rootfs. Depending on device it may be required to extract a part of firmware image and flash it. https://git.openwrt.org/?p=project/firmware-utils.git;a=summary comment "firmware-utils needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/firmware-utils/Config.in.host ================================================ config BR2_PACKAGE_HOST_FIRMWARE_UTILS bool "host firmware-utils" help Firmware utils are tools that can be used for managing platform / device / vendor specific firmware images. Depending on a specific tool it may be possible to read information, extract data, modify or build an image from a scratch. A common host usage of firmware utils is to build a bootloader supported image. https://git.openwrt.org/?p=project/firmware-utils.git;a=summary ================================================ FILE: package/firmware-utils/firmware-utils.hash ================================================ # Locally calculated sha256 0df1b7912d68822025f9bb6a7ddfdf9675e2116d34c3c74bbdc83defcefe203c firmware-utils-86739f2b3ae9502368b89ef37fa6f31c42aad6f4-br1.tar.gz ================================================ FILE: package/firmware-utils/firmware-utils.mk ================================================ ################################################################################ # # firmware-utils # ################################################################################ FIRMWARE_UTILS_VERSION = 86739f2b3ae9502368b89ef37fa6f31c42aad6f4 FIRMWARE_UTILS_SITE = git://git.openwrt.org/project/firmware-utils.git FIRMWARE_UTILS_LICENSE = \ BSD-2-Clause (tplink-safeloader), \ BSD-3-Clause (seama), \ GPL-2.0 (add_header, bcmalgo, buffalo-enc, buffalo-lib, buffalo-tag, \ buffalo-tftp, dgfirmware, dns313-header, edimax_fw_header, \ fix-u-media-header, hcsmakeimage, mkbrncmdline, mkbrnimg, \ mkbuffaloimg, mkcameofw, mkcasfw, mkdapimg, mkdapimg2, \ mkdhpimg, mkdniimg, mkhilinkfw, mkmerakifw-old, mkmerakifw, \ mkplanexfw, mkporayfw, mkrasimage, mkrtn56uimg, mksenaofw, \ mksercommfw, mktitanimg, mktplinkfw-lib, mktplinkfw, \ mktplinkfw2, mkwrggimg, mkwrgimg, mkzcfw, mkzynfw, \ mkzyxelzldfw osbridge-crc, pc1crypt, srec2bin, trx2edips, \ uimage_padhdr, wrt400n, zyimage, zytrx), \ GPL-2.0+ (addpattern, asustrx, bcm4908asus, bcm4908kernel, dgn3500sum, \ encode_crc, jcgimage, lzma2eva, makeamitbin, mkchkimg, \ mkcsysimg, mkdlinkfw-lib, mkdlinkfw, mkedimaximg, mkfwimage, \ mkfwimage2, mkheader_gemtek, mkmylofw, motorola-bin, \ nec-enc, oseama, otrx, ptgen, sign_dlink_ru, spw303v, trx, \ uimage_sgehdr, xiaomifw, xorimage, zyxbcm), \ GPL-2.0 OR GPL-3.0 (nand_ecc), \ GPL-2.0+ OR MIT (lxlfw), \ UNKNOWN (imagetag, trx2usr) # No explicit license file. We could use the source files, but that would mean # we need to use all of them. If we need to do that, we can just as well leave # it to the integrator to get them from the sources FIRMWARE_UTILS_DEPENDENCIES = openssl zlib HOST_FIRMWARE_UTILS_DEPENDENCIES = host-openssl host-zlib $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/flac/0001-configure.ac-check-for-sys-auxv.h-before-defining-FL.patch ================================================ From 14a0713389fbfef59225d027ea466ebb478a8c6b Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 19 Sep 2019 21:18:04 +0200 Subject: [PATCH] configure.ac: check for sys/auxv.h before defining FLAC__CPU_PPC Upstream: https://github.com/xiph/flac/pull/142 Signed-off-by: Peter Seiderer --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 0228a12..64cb3f2 100644 --- a/configure.ac +++ b/configure.ac @@ -144,7 +144,7 @@ case "$host_cpu" in powerpc64|powerpc64le) cpu_ppc64=true cpu_ppc=true - AC_DEFINE(FLAC__CPU_PPC) + AC_CHECK_HEADER(sys/auxv.h, AC_DEFINE(FLAC__CPU_PPC)) AH_TEMPLATE(FLAC__CPU_PPC, [define if building for PowerPC]) AC_DEFINE(FLAC__CPU_PPC64) AH_TEMPLATE(FLAC__CPU_PPC64, [define if building for PowerPC64]) @@ -152,7 +152,7 @@ case "$host_cpu" in ;; powerpc|powerpcle) cpu_ppc=true - AC_DEFINE(FLAC__CPU_PPC) + AC_CHECK_HEADER(sys/auxv.h, AC_DEFINE(FLAC__CPU_PPC)) AH_TEMPLATE(FLAC__CPU_PPC, [define if building for PowerPC]) asm_optimisation=$asm_opt ;; -- 2.23.0 ================================================ FILE: package/flac/Config.in ================================================ config BR2_PACKAGE_FLAC bool "flac" depends on BR2_USE_WCHAR help FLAC is an Open Source lossless audio codec. http://flac.sourceforge.net/ comment "flac needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/flac/flac.hash ================================================ # From https://ftp.osuosl.org/pub/xiph/releases/flac/MD5SUMS md5 26703ed2858c1fc9ffc05136d13daa69 flac-1.3.3.tar.xz # From https://ftp.osuosl.org/pub/xiph/releases/flac/SHA1SUMS sha1 6ac2e8f1dd18c9b0214c4d81bd70cdc1e943cffe flac-1.3.3.tar.xz # From http://downloads.xiph.org/releases/flac/SHA256SUMS.txt sha256 213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748 flac-1.3.3.tar.xz # Locally computed sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING.GPL sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING.LGPL sha256 fa27cb11f13f97b0c5f3ff363b1e2610c6efe87ed175779cb2a78e44eb19d34c COPYING.Xiph ================================================ FILE: package/flac/flac.mk ================================================ ################################################################################ # # flac # ################################################################################ FLAC_VERSION = 1.3.3 FLAC_SITE = http://downloads.xiph.org/releases/flac FLAC_SOURCE = flac-$(FLAC_VERSION).tar.xz FLAC_INSTALL_STAGING = YES FLAC_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv) FLAC_LICENSE = Xiph BSD-like (libFLAC), GPL-2.0+ (tools), LGPL-2.1+ (other libraries) FLAC_LICENSE_FILES = COPYING.Xiph COPYING.GPL COPYING.LGPL FLAC_CPE_ID_VENDOR = flac_project # patch touching configure.ac FLAC_AUTORECONF = YES FLAC_CONF_OPTS = \ $(if $(BR2_INSTALL_LIBSTDCPP),--enable-cpplibs,--disable-cpplibs) \ --disable-xmms-plugin \ --disable-altivec ifeq ($(BR2_PACKAGE_LIBOGG),y) FLAC_CONF_OPTS += --with-ogg=$(STAGING_DIR)/usr FLAC_DEPENDENCIES += libogg else FLAC_CONF_OPTS += --disable-ogg endif ifeq ($(BR2_X86_CPU_HAS_SSE),y) FLAC_DEPENDENCIES += host-nasm FLAC_CONF_OPTS += --enable-sse else FLAC_CONF_OPTS += --disable-sse endif $(eval $(autotools-package)) ================================================ FILE: package/flann/0001-src-cpp-fix-cmake-3.11-build.patch ================================================ From fa5ec96a94646492a3f908e12905b3e48a8e800b Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Wed, 18 Apr 2018 20:24:13 +0200 Subject: [PATCH] src/cpp: fix cmake >= 3.11 build CMake < 3.11 doesn't support add_library() without any source file (i.e add_library(foo SHARED)). But flann CMake use a trick that use an empty string "" as source list (i.e add_library(foo SHARED "")). This look like a bug in CMake < 3.11. With CMake >= 3.11, the new behaviour of add_library() break the existing flann CMake code. From CMake Changelog [1]: "add_library() and add_executable() commands can now be called without any sources and will not complain as long as sources are added later via the target_sources() command." Note: flann CMake code doesn't use target_sources() since no source file are provided intentionally since the flann shared library is created by linking with the flann_cpp_s static library with this line: target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive) If you try to use "add_library(flann_cpp SHARED ${CPP_SOURCES})" (as it should be normally done), the link fail due to already defined symbol. They are building the shared version using the static library "to speedup the build time" [3] This issue is already reported upstream [2] with a proposed solution. Upstream status: Pending Fixes: http://autobuild.buildroot.net/results/b2f/b2febfaf8c44ce477b3e4a5b9b976fd25e8d7454 [1] https://cmake.org/cmake/help/v3.11/release/3.11.html [2] https://github.com/mariusmuja/flann/issues/369 [3] https://github.com/mariusmuja/flann/commit/0fd62b43be2fbb0b8d791ee36290791224dc030c Signed-off-by: Romain Naour --- src/cpp/CMakeLists.txt | 4 ++-- src/cpp/empty.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 src/cpp/empty.cpp diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt index b44a735..a816863 100644 --- a/src/cpp/CMakeLists.txt +++ b/src/cpp/CMakeLists.txt @@ -29,7 +29,7 @@ if (BUILD_CUDA_LIB) endif() if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC) - add_library(flann_cpp SHARED "") + add_library(flann_cpp SHARED "empty.cpp") set_target_properties(flann_cpp PROPERTIES LINKER_LANGUAGE CXX) target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive) @@ -85,7 +85,7 @@ if (BUILD_C_BINDINGS) set_property(TARGET flann_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC) if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC) - add_library(flann SHARED "") + add_library(flann SHARED "empty.cpp") set_target_properties(flann PROPERTIES LINKER_LANGUAGE CXX) target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive) else() diff --git a/src/cpp/empty.cpp b/src/cpp/empty.cpp new file mode 100644 index 0000000..40a8c17 --- /dev/null +++ b/src/cpp/empty.cpp @@ -0,0 +1 @@ +/* empty */ -- 2.14.3 ================================================ FILE: package/flann/Config.in ================================================ config BR2_PACKAGE_FLANN bool "flann" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS help FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces. It contains a collection of algorithms we found to work best for nearest neighbor search and a system for automatically choosing the best algorithm and optimum parameters depending on the dataset. http://www.cs.ubc.ca/research/flann/ if BR2_PACKAGE_FLANN config BR2_PACKAGE_FLANN_EXAMPLES bool "flann examples" help Build and install flann example applications. endif comment "flann needs a toolchain w/ C++, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS ================================================ FILE: package/flann/flann.hash ================================================ # Locally calculated sha256 b23b5f4e71139faa3bcb39e6bbcc76967fbaf308c4ee9d4f5bfbeceaa76cc5d3 flann-1.9.1.tar.gz sha256 3993f339cc56506c62aa1eb2fb76f240ee93b738d857832899c1e207b1dc069a COPYING ================================================ FILE: package/flann/flann.mk ================================================ ################################################################################ # # flann # ################################################################################ FLANN_VERSION = 1.9.1 FLANN_SITE = $(call github,mariusmuja,flann,$(FLANN_VERSION)) FLANN_INSTALL_STAGING = YES FLANN_LICENSE = BSD-3-Clause FLANN_LICENSE_FILES = COPYING FLANN_CONF_OPTS = \ -DBUILD_C_BINDINGS=ON \ -DBUILD_PYTHON_BINDINGS=OFF \ -DBUILD_MATLAB_BINDINGS=OFF \ -DBUILD_EXAMPLES=$(if $(BR2_PACKAGE_FLANN_EXAMPLES),ON,OFF) \ -DUSE_OPENMP=$(if $(BR2_TOOLCHAIN_HAS_OPENMP),ON,OFF) \ -DPYTHON_EXECUTABLE=OFF \ -DCMAKE_DISABLE_FIND_PACKAGE_HDF5=TRUE FLANN_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) FLANN_CXXFLAGS += -O0 endif FLANN_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(FLANN_CXXFLAGS)" $(eval $(cmake-package)) ================================================ FILE: package/flannel/Config.in ================================================ comment "flannel needs a toolchain w/ threads" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_FLANNEL bool "flannel" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_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/flannel-io/flannel ================================================ FILE: package/flannel/flannel.hash ================================================ # Locally computed: sha256 e17164db3b158d13ce5e40bb7b233790cb186762d929fa4f626baf586d4d63ca v0.14.0.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/flannel/flannel.mk ================================================ ################################################################################ # # flannel # ################################################################################ FLANNEL_VERSION = 0.14.0 FLANNEL_SITE = https://github.com/flannel-io/flannel/archive FLANNEL_SOURCE = v$(FLANNEL_VERSION).tar.gz FLANNEL_LICENSE = Apache-2.0 FLANNEL_LICENSE_FILES = LICENSE FLANNEL_LDFLAGS = -X github.com/flannel-io/flannel/version.Version=$(FLANNEL_VERSION) # Install flannel to its well known location. define FLANNEL_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/bin/flannel $(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 $(golang-package)) ================================================ FILE: package/flare-engine/Config.in ================================================ config BR2_PACKAGE_FLARE_ENGINE bool "flare-engine" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS # SDL2 select BR2_PACKAGE_LIBPNG # SDL2_IMAGE needs libpng support select BR2_PACKAGE_SDL2 select BR2_PACKAGE_SDL2_IMAGE select BR2_PACKAGE_SDL2_MIXER select BR2_PACKAGE_SDL2_TTF help Flare (Free Libre Action Roleplaying Engine) is a simple game engine built to handle a very specific kind of game: single-player 2D action RPGs. Flare is not a reimplementation of an existing game or engine. It is a tribute to and exploration of the action RPG genre. http://flarerpg.org comment "flare-engine needs a toolchain w/ C++, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS ================================================ FILE: package/flare-engine/flare-engine.hash ================================================ # Locally calculated sha256 035ffd936d9e120dc2eb792779a0b7ff64574d4a29a1124946deaf7946d1059d flare-engine-1.11.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/flare-engine/flare-engine.mk ================================================ ################################################################################ # # flare-engine # ################################################################################ FLARE_ENGINE_VERSION = 1.11 FLARE_ENGINE_SITE = $(call github,flareteam,flare-engine,v$(FLARE_ENGINE_VERSION)) FLARE_ENGINE_LICENSE = GPL-3.0+ FLARE_ENGINE_LICENSE_FILES = COPYING FLARE_ENGINE_DEPENDENCIES += sdl2 sdl2_image sdl2_mixer sdl2_ttf # Don't use /usr/games and /usr/share/games FLARE_ENGINE_CONF_OPTS += -DBINDIR=bin -DDATADIR=share/flare # CMAKE_BUILD_TYPE is only used to set optimization and debug flags, all of # which we want Buildroot to steer explicitly. Explicitly set a fake build type # to get this control. FLARE_ENGINE_CONF_OPTS += -DCMAKE_BUILD_TYPE=Buildroot ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) FLARE_ENGINE_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) -O0" endif $(eval $(cmake-package)) ================================================ FILE: package/flare-game/Config.in ================================================ config BR2_PACKAGE_FLARE_GAME bool "flare-game" depends on BR2_PACKAGE_FLARE_ENGINE help Flare is an open source, 2D action RPG licensed under the GPL3 license. Its game play can be likened to the games in the Diablo series. This package, flare-game, only contains the game data. The game engine itself is part of a separate package, flame-engine. http://flarerpg.org ================================================ FILE: package/flare-game/flare-game.hash ================================================ # Locally calculated sha256 c13231c7dd021252487f6cf117f7f2bb24bbda40af0a2b2902d72b5e2d4c242a flare-game-1.11.tar.gz sha256 3f941b3b89cf7b8370ceb83cc76d2120d471b58735d8ca60238a751a48d7f72f LICENSE.txt ================================================ FILE: package/flare-game/flare-game.mk ================================================ ################################################################################ # # flare-game # ################################################################################ FLARE_GAME_VERSION = 1.11 FLARE_GAME_SITE = $(call github,flareteam,flare-game,v$(FLARE_GAME_VERSION)) FLARE_GAME_LICENSE = CC-BY-SA-3.0 (data files), GPL-2.0 (GNU Unifont), \ OFL-1.1 (Liberation Sans) FLARE_GAME_LICENSE_FILES = README FLARE_GAME_DEPENDENCIES = flare-engine # Don't use /usr/share/games FLARE_GAME_CONF_OPTS += -DDATADIR=share/flare $(eval $(cmake-package)) ================================================ FILE: package/flashbench/Config.in ================================================ config BR2_PACKAGE_FLASHBENCH bool "flashbench" help Flashbench - Identify characteristics of flash media. This is the tool used to identify the properties of SD cards and other media for the Linaro flash memory survey. https://git.linaro.org/people/arnd.bergmann/flashbench.git ================================================ FILE: package/flashbench/flashbench.hash ================================================ # Locally computed sha256 422860966ad3528a7fd1dc88e4aa0b2bd91f11fa6429523b9acd21dc5beb6a19 flashbench-2e30b1968a66147412f21002ea844122a0d5e2f0-br1.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/flashbench/flashbench.mk ================================================ ################################################################################ # # flashbench # ################################################################################ FLASHBENCH_VERSION = 2e30b1968a66147412f21002ea844122a0d5e2f0 FLASHBENCH_SITE = git://git.linaro.org/people/arnd/flashbench.git FLASHBENCH_LICENSE = GPL-2.0 FLASHBENCH_LICENSE_FILES = COPYING define FLASHBENCH_BUILD_CMDS $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS) -lrt" endef define FLASHBENCH_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -D $(@D)/flashbench $(TARGET_DIR)/usr/bin/flashbench $(INSTALL) -m 755 -D $(@D)/erase $(TARGET_DIR)/usr/bin/erase endef $(eval $(generic-package)) ================================================ FILE: package/flashrom/0001-Makefile-Fix-building-on-AArch64-NixOS.patch ================================================ From da6b3b70cb852dd8e9f9e21aef95fa83e7f7ab0d Mon Sep 17 00:00:00 2001 From: Pyry Kontio Date: Mon, 6 Jul 2020 12:57:35 +0900 Subject: [PATCH] Makefile: Fix building on AArch64 NixOS The parsing of the output of archtest.c produced an unexpected value on AArch64 NixOS. For example, the make variable ARCH was set to: ``` bit outside of fd_set selected arm ``` This made the arch and OS checks fail. This commit simplifies the parsing, making it more robust. The C files archtest.c, endiantest.c and os.h used to set the TARGET_OS, ARCH and ENDIAN variables, respectively, output the result of the test as the final line, so just extracting the final line and removing double quoting is enough. This commit also fixes a bug with debug_shell lacking escaping single quotes, which prevented using the single quote in the debug_shell calls. It used to work by accident before this fix; the line in the call happened to contain a balanced pair of double quotes and lacked other characters that needed escaping, which didn't break the debug_shell, but this was accidental and very brittle. Signed-off-by: Pyry Kontio Change-Id: Iaa4477a71e758cf9ecad2c22f3b77bc6508a3510 Reviewed-on: https://review.coreboot.org/c/flashrom/+/43140 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons [Retrieved from: https://github.com/flashrom/flashrom/commit/da6b3b70cb852dd8e9f9e21aef95fa83e7f7ab0d] Signed-off-by: Fabrice Fontaine --- Makefile | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index f3f7717e2..e475cbdbd 100644 --- a/Makefile +++ b/Makefile @@ -83,7 +83,8 @@ dummy_for_make_3_80:=$(shell printf "Build started on %s\n\n" "$$(date)" >$(BUIL # Provide an easy way to execute a command, print its output to stdout and capture any error message on stderr # in the build details file together with the original stdout output. -debug_shell = $(shell export LC_ALL=C ; { echo 'exec: export LC_ALL=C ; { $(1) ; }' >&2; { $(1) ; } | tee -a $(BUILD_DETAILS_FILE) ; echo >&2 ; } 2>>$(BUILD_DETAILS_FILE)) +debug_shell = $(shell export LC_ALL=C ; { echo 'exec: export LC_ALL=C ; { $(subst ','\'',$(1)) ; }' >&2; \ + { $(1) ; } | tee -a $(BUILD_DETAILS_FILE) ; echo >&2 ; } 2>>$(BUILD_DETAILS_FILE)) ############################################################################### # General OS-specific settings. @@ -106,7 +107,8 @@ endif # IMPORTANT: The following line must be placed before TARGET_OS is ever used # (of course), but should come after any lines setting CC because the line # below uses CC itself. -override TARGET_OS := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E os.h 2>/dev/null | grep -v '^\#' | grep '"' | cut -f 2 -d'"')) +override TARGET_OS := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E os.h 2>/dev/null \ + | tail -1 | cut -f 2 -d'"')) ifeq ($(TARGET_OS), Darwin) override CPPFLAGS += -I/opt/local/include -I/usr/local/include @@ -490,8 +492,10 @@ endif # IMPORTANT: The following line must be placed before ARCH is ever used # (of course), but should come after any lines setting CC because the line # below uses CC itself. -override ARCH := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E archtest.c 2>/dev/null | grep -v '^\#' | grep '"' | cut -f 2 -d'"')) -override ENDIAN := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E endiantest.c 2>/dev/null | grep -v '^\#')) +override ARCH := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E archtest.c 2>/dev/null \ + | tail -1 | cut -f 2 -d'"')) +override ENDIAN := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E endiantest.c 2>/dev/null \ + | tail -1)) # Disable the internal programmer on unsupported architectures (everything but x86 and mipsel) ifneq ($(ARCH)-little, $(filter $(ARCH),x86 mips)-$(ENDIAN)) @@ -1299,12 +1303,12 @@ compiler: featuresavailable @printf "Target arch is " @# FreeBSD wc will output extraneous whitespace. @echo $(ARCH)|wc -w|grep -q '^[[:blank:]]*1[[:blank:]]*$$' || \ - ( echo "unknown. Aborting."; exit 1) + ( echo "unknown (\"$(ARCH)\"). Aborting."; exit 1) @printf "%s\n" '$(ARCH)' @printf "Target OS is " @# FreeBSD wc will output extraneous whitespace. @echo $(TARGET_OS)|wc -w|grep -q '^[[:blank:]]*1[[:blank:]]*$$' || \ - ( echo "unknown. Aborting."; exit 1) + ( echo "unknown (\"$(TARGET_OS)\"). Aborting."; exit 1) @printf "%s\n" '$(TARGET_OS)' ifeq ($(TARGET_OS), libpayload) @$(CC) --version 2>&1 | grep -q coreboot || \ ================================================ FILE: package/flashrom/Config.in ================================================ config BR2_PACKAGE_FLASHROM_ARCH_SUPPORTS bool default y if BR2_aarch64 || BR2_aarch64_be default y if BR2_arc default y if BR2_arm || BR2_armeb default y if BR2_i386 || BR2_x86_64 default y if BR2_m68k default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le default y if BR2_riscv default y if BR2_sh default y if BR2_sparc || BR2_sparc64 config BR2_PACKAGE_FLASHROM bool "flashrom" depends on BR2_PACKAGE_FLASHROM_ARCH_SUPPORTS help flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips. It is designed to flash BIOS/EFI/coreboot/firmware/optionROM images on mainboards, network/graphics/storage controller cards, and various other programmer devices. http://flashrom.org/ ================================================ FILE: package/flashrom/flashrom.hash ================================================ # Locally computed after checking pgp signature # https://download.flashrom.org/releases/flashrom-v1.2.tar.bz2.asc sha256 e1f8d95881f5a4365dfe58776ce821dfcee0f138f75d0f44f8a3cd032d9ea42b flashrom-v1.2.tar.bz2 sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/flashrom/flashrom.mk ================================================ ################################################################################ # # flashrom # ################################################################################ FLASHROM_VERSION = 1.2 FLASHROM_SOURCE = flashrom-v$(FLASHROM_VERSION).tar.bz2 FLASHROM_SITE = https://download.flashrom.org/releases FLASHROM_LICENSE = GPL-2.0+ FLASHROM_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_LIBFTDI),y) FLASHROM_DEPENDENCIES += host-pkgconf libftdi FLASHROM_MAKE_OPTS += \ CONFIG_FT2232_SPI=yes \ CONFIG_USBBLASTER_SPI=yes else FLASHROM_MAKE_OPTS += \ CONFIG_FT2232_SPI=no \ CONFIG_USBBLASTER_SPI=no endif ifeq ($(BR2_PACKAGE_LIBUSB),y) FLASHROM_DEPENDENCIES += host-pkgconf libusb FLASHROM_MAKE_OPTS += CONFIG_ENABLE_LIBUSB1_PROGRAMMERS=yes else FLASHROM_MAKE_OPTS += CONFIG_ENABLE_LIBUSB1_PROGRAMMERS=no endif ifeq ($(BR2_PACKAGE_PCIUTILS),y) FLASHROM_DEPENDENCIES += pciutils FLASHROM_MAKE_OPTS += CONFIG_ENABLE_LIBPCI_PROGRAMMERS=yes else FLASHROM_MAKE_OPTS += CONFIG_ENABLE_LIBPCI_PROGRAMMERS=no endif define FLASHROM_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS) -DHAVE_STRNLEN" \ $(FLASHROM_MAKE_OPTS) -C $(@D) endef define FLASHROM_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/flashrom $(TARGET_DIR)/usr/sbin/flashrom endef $(eval $(generic-package)) ================================================ FILE: package/flatbuffers/0001-include-flatbuffers-base.h-fix-build-on-musl.patch ================================================ From 0315cef04a5a8a953072691faa48af9acb6009bd Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 10 Aug 2021 13:39:58 +0200 Subject: [PATCH] include/flatbuffers/base.h: fix build on musl Build of applications using flatbuffers such as snort3 are broken on musl since version 1.11.0 and https://github.com/google/flatbuffers/commit/5f32f948102e65eaeea461b44f3b43f96c7a7a5a because strtoll_l (and strtoull_l) are not available on musl. flatbuffers checks for the availability of strtoull_l in CMakeLists.txt so flatbuffers builds successfully but for applications using flatbuffers, the result of this check is not available and FLATBUFFERS_LOCALE_INDEPENDENT is set to 1 resulting in the following build failure: In file included from /tmp/instance-0/output-1/host/x86_64-buildroot-linux-musl/sysroot/usr/include/flatbuffers/flexbuffers.h:24, from /tmp/instance-0/output-1/host/x86_64-buildroot-linux-musl/sysroot/usr/include/flatbuffers/idl.h:26, from /tmp/instance-0/output-1/build/snort3-3.1.6.0/src/network_inspectors/perf_monitor/fbs_formatter.cc:29: /tmp/instance-0/output-1/host/x86_64-buildroot-linux-musl/sysroot/usr/include/flatbuffers/util.h: In function 'void flatbuffers::strtoval_impl(int64_t*, const char*, char**, int)': /tmp/instance-0/output-1/host/x86_64-buildroot-linux-musl/sysroot/usr/include/flatbuffers/util.h:258:12: error: 'strtoll_l' was not declared in this scope; did you mean 'strcoll_l'? 258 | *val = __strtoll_impl(str, endptr, base); | ^~~~~~~~~~~~~~ Fix this failure by checking if __GNUC__ is defined before setting FLATBUFFERS_LOCALE_INDEPENDENT to 1. Fixes: - http://autobuild.buildroot.org/results/68045b83e94f8caa337b1af7ed5f493ac1a55c47 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/google/flatbuffers/pull/6773] --- include/flatbuffers/base.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index de7898dc..101c7598 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -266,7 +266,7 @@ namespace flatbuffers { #ifndef FLATBUFFERS_LOCALE_INDEPENDENT // Enable locale independent functions {strtof_l, strtod_l,strtoll_l, strtoull_l}. #if ((defined(_MSC_VER) && _MSC_VER >= 1800) || \ - (defined(_XOPEN_VERSION) && (_XOPEN_VERSION>=700)) && (!defined(__ANDROID_API__) || (defined(__ANDROID_API__) && (__ANDROID_API__>=21)))) + (defined(__GLIBC__) && defined(_XOPEN_VERSION) && (_XOPEN_VERSION>=700)) && (!defined(__ANDROID_API__) || (defined(__ANDROID_API__) && (__ANDROID_API__>=21)))) #define FLATBUFFERS_LOCALE_INDEPENDENT 1 #else #define FLATBUFFERS_LOCALE_INDEPENDENT 0 -- 2.30.2 ================================================ FILE: package/flatbuffers/Config.in ================================================ config BR2_PACKAGE_FLATBUFFERS bool "flatbuffers" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 depends on BR2_INSTALL_LIBSTDCPP help FlatBuffers is an efficient cross platform serialization library for C++, C#, C, Go, Java, JavaScript, PHP, and Python. It was originally created at Google for game development and other performance-critical applications. http://google.github.io/flatbuffers/ comment "flatbuffers needs a toolchain w/ C++, gcc >= 4.7" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/flatbuffers/flatbuffers.hash ================================================ # Locally computed: sha256 9ddb9031798f4f8754d00fca2f1a68ecf9d0f83dfac7239af1311e4fd9a565c4 flatbuffers-2.0.0.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/flatbuffers/flatbuffers.mk ================================================ ################################################################################ # # flatbuffers # ################################################################################ FLATBUFFERS_VERSION = 2.0.0 FLATBUFFERS_SITE = $(call github,google,flatbuffers,v$(FLATBUFFERS_VERSION)) FLATBUFFERS_LICENSE = Apache-2.0 FLATBUFFERS_LICENSE_FILES = LICENSE.txt FLATBUFFERS_CPE_ID_VENDOR = google FLATBUFFERS_INSTALL_STAGING = YES FLATBUFFERS_CONF_OPTS += \ -DCMAKE_CXX_FLAGS="-std=c++11" \ -DFLATBUFFERS_BUILD_TESTS=OFF ifeq ($(BR2_STATIC_LIBS),y) FLATBUFFERS_CONF_OPTS += -DFLATBUFFERS_BUILD_SHAREDLIB=OFF else FLATBUFFERS_CONF_OPTS += -DFLATBUFFERS_BUILD_SHAREDLIB=ON endif HOST_FLATBUFFERS_CONF_OPTS += \ -DCMAKE_CXX_FLAGS="-std=c++11" \ -DFLATBUFFERS_BUILD_FLATLIB=OFF \ -DFLATBUFFERS_BUILD_FLATC=ON \ -DFLATBUFFERS_BUILD_FLATHASH=OFF \ -DFLATBUFFERS_BUILD_GRPCTEST=OFF \ -DFLATBUFFERS_BUILD_SHAREDLIB=OFF \ -DFLATBUFFERS_BUILD_TESTS=OFF $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/flatcc/Config.in ================================================ config BR2_PACKAGE_FLATCC bool "flatcc" help flatcc is C language implementation of Google Flatbuffers. It consists of both a library for the target as well as a flatbuffer compiler tool for the host. https://github.com/dvidelabs/flatcc ================================================ FILE: package/flatcc/flatcc.hash ================================================ # Locally calculated sha256 a92da3566d11e19bb807a83554b1a2c644a5bd91c9d9b088514456bb56e1c666 flatcc-0.6.0.tar.gz sha256 c8f0d9c1f92c658d87ebd854ee7447a3d3912d2c3a5c78c117787be5d5da8af3 LICENSE ================================================ FILE: package/flatcc/flatcc.mk ================================================ ################################################################################ # # FLATCC # ################################################################################ FLATCC_VERSION = 0.6.0 FLATCC_SITE = $(call github,dvidelabs,flatcc,v$(FLATCC_VERSION)) FLATCC_LICENSE = Apache-2.0 FLATCC_LICENSE_FILES = LICENSE FLATCC_INSTALL_STAGING = YES FLATCC_DEPENDENCIES = host-flatcc FLATCC_CONF_OPTS = -DFLATCC_ALLOW_WERROR=OFF HOST_FLATCC_CONF_OPTS = -DFLATCC_ALLOW_WERROR=OFF # Disable build of tests and samples FLATCC_CONF_OPTS += -DFLATCC_TEST=OFF HOST_FLATCC_CONF_OPTS += -DFLATCC_TEST=OFF # Enable install targets FLATCC_CONF_OPTS += -DFLATCC_INSTALL=ON HOST_FLATCC_CONF_OPTS += -DFLATCC_INSTALL=ON # compiler is named flatcc or flatcc_d depending on BR2_ENABLE_DEBUG value define FLATCC_TARGET_REMOVE_FLATCC_COMPILER rm $(TARGET_DIR)/usr/bin/flatcc* endef FLATCC_POST_INSTALL_TARGET_HOOKS += FLATCC_TARGET_REMOVE_FLATCC_COMPILER $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/flex/0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch ================================================ From ffa886a580929f26fd5e5a40c9c5334955c48553 Mon Sep 17 00:00:00 2001 From: Explorer09 Date: Mon, 4 Sep 2017 10:47:33 +0800 Subject: [PATCH] build: AC_USE_SYSTEM_EXTENSIONS in configure.ac. This would, e.g. define _GNU_SOURCE in config.h, enabling the reallocarray() prototype in glibc 2.26+ on Linux systems with that version of glibc. Fixes #241. Backported from: 24fd0551333e7eded87b64dd36062da3df2f6380 Signed-off-by: Adrian Perez de Castro --- configure.ac | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configure.ac b/configure.ac index 55e774b..c879fe1 100644 --- a/configure.ac +++ b/configure.ac @@ -25,8 +25,10 @@ # autoconf requirements and initialization AC_INIT([the fast lexical analyser generator],[2.6.4],[flex-help@lists.sourceforge.net],[flex]) +AC_PREREQ([2.60]) AC_CONFIG_SRCDIR([src/scan.l]) AC_CONFIG_AUX_DIR([build-aux]) +AC_USE_SYSTEM_EXTENSIONS LT_INIT AM_INIT_AUTOMAKE([1.11.3 -Wno-portability foreign check-news std-options dist-lzip parallel-tests subdir-objects]) AC_CONFIG_HEADER([src/config.h]) -- 2.14.1 ================================================ FILE: package/flex/0002-build-make-it-possible-to-disable-the-build-of-the-f.patch ================================================ From da21733178b34eea303964db5a05e8a3ee4095b4 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 26 Aug 2017 15:17:06 +0200 Subject: [PATCH] build: make it possible to disable the build of the flex program The flex program uses fork(), which isn't available on noMMU systems. However, the libfl library does not use fork(), and be used by other programs/libraries. Therefore, it makes sense to provide an option to disable the build of the flex program. Signed-off-by: Thomas Petazzoni Signed-off-by: "Yann E. MORIN" --- Submitted-upstream: https://github.com/westes/flex/pull/256 Refused. We'll have to adapt when they do a new release... --- Makefile.am | 2 ++ configure.ac | 6 ++++++ doc/Makefile.am | 4 ++++ src/Makefile.am | 3 +++ 4 files changed, 15 insertions(+) diff --git a/Makefile.am b/Makefile.am index e790e9d..8b57bc9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -62,8 +62,10 @@ ChangeLog: $(srcdir)/tools/git2cl indent: cd src && $(MAKE) $(AM_MAKEFLAGS) indent +if ENABLE_PROGRAM install-exec-hook: cd $(DESTDIR)$(bindir) && \ $(LN_S) -f flex$(EXEEXT) flex++$(EXEEXT) +endif .PHONY: ChangeLog indent diff --git a/configure.ac b/configure.ac index 8882016..f49872b 100644 --- a/configure.ac +++ b/configure.ac @@ -75,6 +75,12 @@ AC_ARG_ENABLE([libfl], [], [enable_libfl=yes]) AM_CONDITIONAL([ENABLE_LIBFL], [test "x$enable_libfl" = xyes]) +AC_ARG_ENABLE([program], + [AS_HELP_STRING([--disable-program], + [do not build the flex program, only the libfl library])], + [], [enable_program=yes]) +AM_CONDITIONAL([ENABLE_PROGRAM], [test "x$enable_program" = xyes]) + # --disable-bootstrap is intended only to workaround problems with bootstrap # (e.g. when cross-compiling flex or when bootstrapping has bugs). # Ideally we should be able to bootstrap even when cross-compiling. diff --git a/src/Makefile.am b/src/Makefile.am index 0d13a5a..c73bc17 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -4,7 +4,10 @@ LIBS = @LIBS@ m4 = @M4@ +if ENABLE_PROGRAM bin_PROGRAMS = flex +endif + if ENABLE_BOOTSTRAP noinst_PROGRAMS = stage1flex endif -- 2.9.4 ================================================ FILE: package/flex/0003-build-make-it-possible-to-disable-the-build-of-the-d.patch ================================================ From b89b8475a5b2f9444c32f7d254b35968da3c8a23 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Fri, 29 Sep 2017 18:03:51 +0200 Subject: [PATCH] build: make it possible to disable the build of the documentation When targetting embedded evices, the documentation is not needed. Building the documentation default to whether the program is built. Signed-off-by: "Yann E. MORIN" Cc: Thomas Petazzoni --- Makefile.am | 8 +++++++- configure.ac | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index fce30b2..ee75b64 100644 --- a/Makefile.am +++ b/Makefile.am @@ -41,9 +41,15 @@ EXTRA_DIST = \ .indent.pro \ autogen.sh +MAYBE_SUBDIRS = + +if ENABLE_DOC +MAYBE_SUBDIRS += doc +endif + SUBDIRS = \ src \ - doc \ + $(MAYBE_SUBDIRS) \ examples \ po \ tests \ diff --git a/configure.ac b/configure.ac index c54e98f..b3ae450 100644 --- a/configure.ac +++ b/configure.ac @@ -80,6 +80,12 @@ AC_ARG_ENABLE([program], [], [enable_program=yes]) AM_CONDITIONAL([ENABLE_PROGRAM], [test "x$enable_program" = xyes]) +AC_ARG_ENABLE([doc], + [AS_HELP_STRING([--disable-doc], + [do not build the documentation])], + [], [enable_doc=${enable_program}]) +AM_CONDITIONAL([ENABLE_DOC], [test "x$enable_doc" = xyes -a "x$enable_program" = xyes]) + # --disable-bootstrap is intended only to workaround problems with bootstrap # (e.g. when cross-compiling flex or when bootstrapping has bugs). # Ideally we should be able to bootstrap even when cross-compiling. -- 2.11.0 ================================================ FILE: package/flex/Config.in ================================================ config BR2_PACKAGE_FLEX bool "flex" help A fast lexical analyser generator. A tool for generating programs that perform pattern-matching on text. Only the library is available. https://github.com/westes/flex/ ================================================ FILE: package/flex/flex.hash ================================================ # Locally computed: sha256 e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995 flex-2.6.4.tar.gz # License files, locally calculated sha256 97fd685958d93be7f8dab939bb8161dbd6afb0718c63bfc337c24321aea44273 COPYING ================================================ FILE: package/flex/flex.mk ================================================ ################################################################################ # # flex # ################################################################################ FLEX_VERSION = 2.6.4 FLEX_SITE = https://github.com/westes/flex/files/981163 FLEX_INSTALL_STAGING = YES FLEX_LICENSE = FLEX FLEX_LICENSE_FILES = COPYING FLEX_CPE_ID_VENDOR = flex_project # bug does not cause stack overflows in the generated code and has been # noted upstream as a bug in the code generator FLEX_IGNORE_CVES = CVE-2019-6293 FLEX_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) host-m4 HOST_FLEX_DEPENDENCIES = host-m4 # 0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch # 0002-build-make-it-possible-to-disable-the-build-of-the-f.patch # 0003-build-make-it-possible-to-disable-the-build-of-the-d.patch FLEX_AUTORECONF = YES FLEX_GETTEXTIZE = YES FLEX_CONF_ENV = ac_cv_path_M4=/usr/bin/m4 \ ac_cv_func_reallocarray=no # Don't enable programs, they are not needed on the target, and # require MMU support. # Don't enable the doc, it's not needed on the target and requires # special tools (help2man) to build. FLEX_CONF_OPTS += --disable-program --disable-doc HOST_FLEX_CONF_OPTS = --disable-doc $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/flickcurl/Config.in ================================================ config BR2_PACKAGE_FLICKCURL bool "flickcurl" select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBXML2 # Ensure that libcurl is built with crypto support, since # flickcurl must access https:// URLs. select BR2_PACKAGE_OPENSSL if !(BR2_PACKAGE_GNUTLS || BR2_PACKAGE_LIBNSS) select BR2_PACKAGE_CA_CERTIFICATES # runtime help Flickcurl is a C library for the Flickr API, handling creating the requests, signing, token management, calling the API, marshalling request parameters and decoding responses. http://librdf.org/flickcurl/ config BR2_PACKAGE_FLICKCURL_UTILS bool "flickcurl utilities" depends on BR2_PACKAGE_FLICKCURL help Install flickcurl utilites (flickcurl + flickrdf) to target. ================================================ FILE: package/flickcurl/flickcurl.hash ================================================ # Locally calculated after checking pgp signature sha256 ff42a36c7c1c7d368246f6bc9b7d792ed298348e5f0f5d432e49f6803562f5a3 flickcurl-1.26.tar.gz # Locally computed sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING.LIB sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE-2.0.txt sha256 3590f30b0fb9446a1f0a7ea5bcbb5786fa66fa362800f53d2575875d74b91909 LICENSE.html ================================================ FILE: package/flickcurl/flickcurl.mk ================================================ ################################################################################ # # flickcurl # ################################################################################ FLICKCURL_VERSION = 1.26 FLICKCURL_SITE = http://download.dajobe.org/flickcurl FLICKCURL_LICENSE = LGPL-2.1+ or GPL-2.0+ or Apache-2.0+ FLICKCURL_LICENSE_FILES = COPYING COPYING.LIB LICENSE-2.0.txt LICENSE.html FLICKCURL_INSTALL_STAGING = YES FLICKCURL_CONFIG_SCRIPTS = flickcurl-config FLICKCURL_CONF_OPTS = --without-curl-config --without-xml2-config --without-raptor FLICKCURL_DEPENDENCIES = libcurl libxml2 host-pkgconf ifeq ($(BR2_PACKAGE_FLICKCURL_UTILS),) define FLICKCURL_REMOVE_UTILS rm -f $(TARGET_DIR)/usr/bin/flickcurl $(TARGET_DIR)/usr/bin/flickrdf endef FLICKCURL_POST_INSTALL_TARGET_HOOKS += FLICKCURL_REMOVE_UTILS endif $(eval $(autotools-package)) ================================================ FILE: package/flite/0001-fix-alsa-static.patch ================================================ Use pkg-config to determine alsa link flags. This fixes static linking. Signed-off-by: Baruch Siach diff -Nuar flite-1.4-release.orig/configure.in flite-1.4-release/configure.in --- flite-1.4-release.orig/configure.in 2009-08-14 23:46:38.000000000 +0300 +++ flite-1.4-release/configure.in 2014-04-30 18:52:33.253297236 +0300 @@ -275,7 +275,10 @@ #endif], [AUDIODRIVER="alsa" AUDIODEFS=-DCST_AUDIO_ALSA - AUDIOLIBS=-lasound]) + AUDIOLIBS=`pkg-config --libs alsa` + if test "$shared" = false; then + AUDIOLIBS=`pkg-config --libs --static alsa` + fi]) AC_CHECK_HEADER(mmsystem.h, [AUDIODRIVER="wince" AUDIODEFS=-DCST_AUDIO_WINCE ================================================ FILE: package/flite/Config.in ================================================ config BR2_PACKAGE_FLITE bool "flite" depends on BR2_USE_WCHAR help Flite: a small, fast run time synthesis engine. Flite (festival-lite) is a small, fast run-time synthesis engine developed at CMU and primarily designed for small embedded machines and/or large servers. Flite is designed as an alternative synthesis engine to Festival for voices built using the FestVox suite of voice building tools. http://www.festvox.org/flite comment "flite needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/flite/flite.hash ================================================ # locally computed hash sha256 ab1555fe5adc3f99f1d4a1a0eb1596d329fd6d74f1464a0097c81f53c0cf9e5c flite-2.2.tar.gz # License files, locally calculated sha256 d31bceaf2823d56a8c9400f7bde3b17140e739e991eb4f203bdcf9827754ab59 COPYING ================================================ FILE: package/flite/flite.mk ================================================ ################################################################################ # # flite # ################################################################################ FLITE_VERSION = 2.2 FLITE_SITE = $(call github,festvox,flite,v$(FLITE_VERSION)) FLITE_LICENSE = BSD-4-Clause FLITE_LICENSE_FILES = COPYING FLITE_INSTALL_STAGING = YES # Patching configure.in FLITE_AUTORECONF = YES FLITE_DEPENDENCIES = host-pkgconf # Sadly, Flite does not support parallel build, especially when building its # shared libraries. FLITE_MAKE = $(MAKE1) ifeq ($(BR2_PACKAGE_ALSA_LIB),y) FLITE_DEPENDENCIES += alsa-lib FLITE_CONF_OPTS += --with-audio=alsa else FLITE_CONF_OPTS += --with-audio=oss endif $(eval $(autotools-package)) ================================================ FILE: package/flot/Config.in ================================================ config BR2_PACKAGE_FLOT bool "flot" select BR2_PACKAGE_JQUERY help Flot is a pure Javascript plotting library for jQuery. It produces graphical plots of arbitrary datasets on-the-fly client-side. The focus is on simple usage (all settings are optional), attractive looks and interactive features like zooming and mouse tracking. The plugin works with Internet Explorer 6+, Firefox 2.x+, Safari 3.0+, Opera 9.5+ and Konqueror 4.x+ with the HTML canvas tag. http://www.flotcharts.org/ if BR2_PACKAGE_FLOT comment "flot plugins" config BR2_PACKAGE_FLOT_CANVAS bool "canvas" help Flot plugin to render axis tick labels directly to the canvas config BR2_PACKAGE_FLOT_CATEGORIES bool "categories" help Flot plugin for plotting textual data or categories config BR2_PACKAGE_FLOT_CROSSHAIR bool "crosshair" help Flot plugin for showing crosshairs when the mouse hovers over the plot config BR2_PACKAGE_FLOT_ERRORBARS bool "errorbars" help Flot plugin for plotting error bars config BR2_PACKAGE_FLOT_FILLBETWEEN bool "fillbetween" help Flot plugin for computing bottoms for filled line and bar charts config BR2_PACKAGE_FLOT_IMAGE bool "image" help Flot plugin for plotting images config BR2_PACKAGE_FLOT_NAVIGATE bool "navigate" help Flot plugin for adding panning and zooming capabilities to a plot config BR2_PACKAGE_FLOT_PIE bool "pie" help Flot plugin for rendering pie charts config BR2_PACKAGE_FLOT_RESIZE bool "resize" help Flot plugin for automatically redrawing plots when the placeholder size changes. config BR2_PACKAGE_FLOT_SELECTION bool "selection" help Flot plugin for selecting regions config BR2_PACKAGE_FLOT_STACK bool "stack" help Flot plugin for stacking data sets config BR2_PACKAGE_FLOT_SYMBOL bool "symbol" help Flot plugin that adds some extra symbols for plotting points config BR2_PACKAGE_FLOT_THRESHOLD bool "threshold" help Flot plugin for thresholding data config BR2_PACKAGE_FLOT_TIME bool "time" help Flot plugin for handling time axes endif ================================================ FILE: package/flot/flot.hash ================================================ # Locally calculated sha256 ef9a873befe3ff5ea42ebf1c3657887265a1717744ca8ed0c2bd3dd736d16b21 flot-0.8.3.tar.gz sha256 52cb566b16d84314b92b91361ed072eaaf166e8d3dfa3d0fd3577613925f205c LICENSE.txt ================================================ FILE: package/flot/flot.mk ================================================ ################################################################################ # # flot # ################################################################################ FLOT_VERSION = 0.8.3 FLOT_SITE = http://www.flotcharts.org/downloads FLOT_LICENSE = MIT FLOT_LICENSE_FILES = LICENSE.txt FLOT_FILES = jquery.flot $(addprefix jquery.flot.,\ $(if $(BR2_PACKAGE_FLOT_CANVAS),canvas) \ $(if $(BR2_PACKAGE_FLOT_CATEGORIES),categories) \ $(if $(BR2_PACKAGE_FLOT_CROSSHAIR),crosshair) \ $(if $(BR2_PACKAGE_FLOT_ERRORBARS),errorbars) \ $(if $(BR2_PACKAGE_FLOT_FILLBETWEEN),fillbetween) \ $(if $(BR2_PACKAGE_FLOT_IMAGE),image) \ $(if $(BR2_PACKAGE_FLOT_NAVIGATE),navigate) \ $(if $(BR2_PACKAGE_FLOT_PIE),pie) \ $(if $(BR2_PACKAGE_FLOT_RESIZE),resize) \ $(if $(BR2_PACKAGE_FLOT_SELECTION),selection) \ $(if $(BR2_PACKAGE_FLOT_STACK),stack) \ $(if $(BR2_PACKAGE_FLOT_SYMBOL),symbol) \ $(if $(BR2_PACKAGE_FLOT_THRESHOLD),threshold) \ $(if $(BR2_PACKAGE_FLOT_TIME),time) \ ) define FLOT_INSTALL_TARGET_CMDS for i in $(FLOT_FILES); do \ $(INSTALL) -m 0644 -D $(@D)/$$i.min.js $(TARGET_DIR)/var/www/$$i.js || exit 1; \ done endef $(eval $(generic-package)) ================================================ FILE: package/fltk/0001-disable-tests.patch ================================================ Disable tests, slower to build and would need host-fltk. Signed-off-by: Gustavo Zacarias diff -Nura fltk-1.3.2.orig/Makefile fltk-1.3.2/Makefile --- fltk-1.3.2.orig/Makefile 2013-10-27 18:19:39.693208127 -0300 +++ fltk-1.3.2/Makefile 2013-10-27 18:20:08.032136885 -0300 @@ -18,7 +18,7 @@ include makeinclude -DIRS = $(IMAGEDIRS) src $(CAIRODIR) fluid test documentation +DIRS = $(IMAGEDIRS) src $(CAIRODIR) fluid documentation all: makeinclude fltk-config for dir in $(DIRS); do\ ================================================ FILE: package/fltk/Config.in ================================================ config BR2_PACKAGE_FLTK bool "fltk" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU # fork() select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT help A cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. http://www.fltk.org/ comment "fltk needs a toolchain w/ C++" depends on BR2_USE_MMU && BR2_PACKAGE_XORG7 depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/fltk/fltk.hash ================================================ # From http://www.fltk.org/software.php?VERSION=1.3.7 md5 b28470d0509d00633d21bee9b65167f8 fltk-1.3.7-source.tar.bz2 # Locally generated sha256 5ff1e90766ff4216e78e9a19a9bf527e6258f04accccd4429e9bb829b01d690d fltk-1.3.7-source.tar.bz2 sha256 57dd381e713fb309fb7dd85c3c38b274557ecb333475d0f1d65a5f06ad85c9a6 COPYING ================================================ FILE: package/fltk/fltk.mk ================================================ ################################################################################ # # fltk # ################################################################################ FLTK_VERSION = 1.3.7 FLTK_SOURCE = fltk-$(FLTK_VERSION)-source.tar.bz2 FLTK_SITE = http://fltk.org/pub/fltk/$(FLTK_VERSION) FLTK_INSTALL_STAGING = YES # We force --libdir=/usr/lib, because by default, it is set to # ${exec_prefix}/lib, which doesn't match the condition used by the # fltk build system to decide whether it should pass a -rpath,/usr/lib # or not. Since this rpath breaks the build, we want the fltk build # system to not pass it, which requires having --libdir set to # /usr/lib. FLTK_CONF_OPTS = --enable-threads --with-x --disable-gl \ --disable-localjpeg --disable-localpng --disable-localzlib \ --libdir=/usr/lib FLTK_DEPENDENCIES = jpeg libpng xlib_libX11 xlib_libXext xlib_libXt FLTK_CONFIG_SCRIPTS = fltk-config FLTK_LICENSE = LGPL-2.0 with exceptions FLTK_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_CAIRO),y) FLTK_CONF_OPTS += --enable-cairo FLTK_DEPENDENCIES += cairo endif ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) FLTK_DEPENDENCIES += xlib_libXcursor FLTK_CONF_OPTS += --enable-xcursor else FLTK_CONF_OPTS += --disable-xcursor endif ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y) FLTK_DEPENDENCIES += xlib_libXfixes FLTK_CONF_OPTS += --enable-xfixes else FLTK_CONF_OPTS += --disable-xfixes endif ifeq ($(BR2_PACKAGE_XLIB_LIBXFT),y) FLTK_CONF_ENV += ac_cv_path_FTCONFIG=$(STAGING_DIR)/usr/bin/freetype-config FLTK_DEPENDENCIES += xlib_libXft else FLTK_CONF_OPTS += --disable-xft endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) FLTK_DEPENDENCIES += xlib_libXinerama else FLTK_CONF_OPTS += --disable-xinerama endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y) FLTK_DEPENDENCIES += xlib_libXrender FLTK_CONF_OPTS += --enable-xrender else FLTK_CONF_OPTS += --disable-xrender endif $(eval $(autotools-package)) ================================================ FILE: package/fluid-soundfont/Config.in ================================================ config BR2_PACKAGE_FLUID_SOUNDFONT bool "fluid-soundfont" help FluidR3 is the third release of Frank Wen's pro-quality GM/GS soundfont. The soundfont has lots of excellent samples, including all the GM instruments along side with the GS instruments that are recycled and reprogrammed versions of the GM presets. This package contains Fluid General Midi (GM) soundfont in soundfont 2.0 (.sf2) format. This soundfont can be used with the FluidSynth real-time software synthesizer. http://www.hammersound.net ================================================ FILE: package/fluid-soundfont/fluid-soundfont.hash ================================================ # Locally calculated sha256 2621acaa1c78e4abdb24bdd163230cc577e61276936d6aa6e3180582142f0343 fluid-soundfont_3.1.orig.tar.gz sha256 8ef830b65c97a976b86e34bb5fde08d99dfb1db13c4149b5b20bc837ac6c4568 COPYING ================================================ FILE: package/fluid-soundfont/fluid-soundfont.mk ================================================ ################################################################################ # # fluid-soundfont # ################################################################################ FLUID_SOUNDFONT_VERSION = 3.1 FLUID_SOUNDFONT_SOURCE = fluid-soundfont_$(FLUID_SOUNDFONT_VERSION).orig.tar.gz # The http://www.hammersound.net archive site seems unreliable (show HTTP 500 # error), and also publish the file in the sfArk format, which is inconvenient # to be used in automated build. We use here the Debian mirror publishing the # file in a more convenient format (inative sf2 in a tar.gz archive). FLUID_SOUNDFONT_SITE = http://http.debian.net/debian/pool/main/f/fluid-soundfont FLUID_SOUNDFONT_LICENSE = MIT FLUID_SOUNDFONT_LICENSE_FILES = COPYING define FLUID_SOUNDFONT_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0644 $(@D)/FluidR3_GM.sf2 $(TARGET_DIR)/usr/share/soundfonts/FluidR3_GM.sf2 endef $(eval $(generic-package)) ================================================ FILE: package/fluidsynth/Config.in ================================================ config BR2_PACKAGE_FLUIDSYNTH bool "fluidsynth" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 # the .pc file installed by fluidsynth does not mention its # indirect dependencies in Libs.private. depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBGLIB2 help FluidSynth is a real-time software synthesizer based on the SoundFont 2 specifications and has reached widespread distribution. FluidSynth itself does not have a graphical user interface, but due to its powerful API several applications utilize it and it has even found its way onto embedded systems and is used in some mobile apps. http://www.fluidsynth.org/ if BR2_PACKAGE_FLUIDSYNTH comment "Output support" config BR2_PACKAGE_FLUIDSYNTH_ALSA_LIB bool "alsa" default y depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_RAWMIDI select BR2_PACKAGE_ALSA_LIB_SEQ help Enable alsa support. comment "alsa support needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_FLUIDSYNTH_JACK2 bool "jack2" # See: https://sourceware.org/bugzilla/show_bug.cgi?id=19908 depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS depends on BR2_TOOLCHAIN_HAS_THREADS # jack2 depends on BR2_USE_MMU # jack2 depends on BR2_INSTALL_LIBSTDCPP # jack2 depends on !BR2_STATIC_LIBS # jack2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # jack2 select BR2_PACKAGE_JACK2 help Enable jack support. comment "jack support needs a toolchain w/ dynamic library, threads, C++" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_FLUIDSYNTH_LIBSNDFILE bool "libsndfile" select BR2_PACKAGE_LIBSNDFILE help Enable libsndfile support, for writing output to WAV files. config BR2_PACKAGE_FLUIDSYNTH_PORTAUDIO bool "portaudio" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_PORTAUDIO help Enable portaudio support. comment "portaudio support needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_FLUIDSYNTH_PULSEAUDIO bool "pulseaudio" # See: https://sourceware.org/bugzilla/show_bug.cgi?id=19908 depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC # pulseaudio depends on BR2_USE_WCHAR # pulseaudio depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio depends on !BR2_STATIC_LIBS # pulseaudio depends on BR2_USE_MMU # pulseaudio select BR2_PACKAGE_PULSEAUDIO help Enable PulseAudio support. comment "pulseaudio support needs a toolchain w/ dynamic library, wchar, threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC depends on BR2_STATIC_LIBS || !BR2_USE_MMU || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_FLUIDSYNTH_SDL2 bool "sdl2" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_SDL2 help Enable SDL2 audio support. comment "SDL2 audio support needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS comment "Misc options" config BR2_PACKAGE_FLUIDSYNTH_DBUS bool "dbus" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU select BR2_PACKAGE_DBUS help Enable dbus support. comment "dbus support needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_FLUIDSYNTH_FLOATS bool "32-bit single precision float" help Enable 32-bit single precision float support, instead of 64-bit double precision floats for DSP samples. config BR2_PACKAGE_FLUIDSYNTH_READLINE bool "readline" select BR2_PACKAGE_READLINE help Enable readline support, for better line editing in FluidSynth shell. endif # BR2_PACKAGE_FLUIDSYNTH comment "fluidsynth needs a toolchain w/ threads, wchar, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS ================================================ FILE: package/fluidsynth/fluidsynth.hash ================================================ # Locally computed sha256 b31807cb0f88e97f3096e2b378c9815a6acfdc20b0b14f97936d905b536965c4 fluidsynth-2.2.3.tar.gz sha256 9b872a8a070b8ad329c4bd380fb1bf0000f564c75023ec8e1e6803f15364b9e9 LICENSE ================================================ FILE: package/fluidsynth/fluidsynth.mk ================================================ ################################################################################ # # fluidsynth # ################################################################################ FLUIDSYNTH_VERSION = 2.2.3 FLUIDSYNTH_SITE = $(call github,FluidSynth,fluidsynth,v$(FLUIDSYNTH_VERSION)) FLUIDSYNTH_LICENSE = LGPL-2.1+ FLUIDSYNTH_LICENSE_FILES = LICENSE FLUIDSYNTH_CPE_ID_VENDOR = fluidsynth FLUIDSYNTH_INSTALL_STAGING = YES FLUIDSYNTH_DEPENDENCIES = libglib2 ifeq ($(BR2_PACKAGE_FLUIDSYNTH_ALSA_LIB),y) FLUIDSYNTH_CONF_OPTS += -Denable-alsa=1 FLUIDSYNTH_DEPENDENCIES += alsa-lib else FLUIDSYNTH_CONF_OPTS += -Denable-alsa=0 endif ifeq ($(BR2_PACKAGE_FLUIDSYNTH_DBUS),y) FLUIDSYNTH_CONF_OPTS += -Denable-dbus=1 FLUIDSYNTH_DEPENDENCIES += dbus else FLUIDSYNTH_CONF_OPTS += -Denable-dbus=0 endif ifeq ($(BR2_PACKAGE_FLUIDSYNTH_FLOATS),y) FLUIDSYNTH_CONF_OPTS += -Denable-floats=1 else FLUIDSYNTH_CONF_OPTS += -Denable-floats=0 endif ifeq ($(BR2_PACKAGE_FLUIDSYNTH_JACK2),y) FLUIDSYNTH_CONF_OPTS += -Denable-jack=1 FLUIDSYNTH_DEPENDENCIES += jack2 else FLUIDSYNTH_CONF_OPTS += -Denable-jack=0 endif ifeq ($(BR2_PACKAGE_FLUIDSYNTH_LIBSNDFILE),y) FLUIDSYNTH_CONF_OPTS += -Denable-libsndfile=1 FLUIDSYNTH_DEPENDENCIES += libsndfile else FLUIDSYNTH_CONF_OPTS += -Denable-libsndfile=0 endif ifeq ($(BR2_PACKAGE_FLUIDSYNTH_PORTAUDIO),y) FLUIDSYNTH_CONF_OPTS += -Denable-portaudio=1 FLUIDSYNTH_DEPENDENCIES += portaudio else FLUIDSYNTH_CONF_OPTS += -Denable-portaudio=0 endif ifeq ($(BR2_PACKAGE_FLUIDSYNTH_PULSEAUDIO),y) FLUIDSYNTH_CONF_OPTS += -Denable-pulseaudio=1 FLUIDSYNTH_DEPENDENCIES += pulseaudio else FLUIDSYNTH_CONF_OPTS += -Denable-pulseaudio=0 endif ifeq ($(BR2_PACKAGE_FLUIDSYNTH_READLINE),y) FLUIDSYNTH_CONF_OPTS += -Denable-readline=1 FLUIDSYNTH_DEPENDENCIES += readline else FLUIDSYNTH_CONF_OPTS += -Denable-readline=0 endif ifeq ($(BR2_PACKAGE_FLUIDSYNTH_SDL2),y) FLUIDSYNTH_CONF_OPTS += -Denable-sdl2=1 FLUIDSYNTH_DEPENDENCIES += sdl2 else FLUIDSYNTH_CONF_OPTS += -Denable-sdl2=0 endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) FLUIDSYNTH_CONF_OPTS += -Denable-systemd=1 FLUIDSYNTH_DEPENDENCIES += systemd else FLUIDSYNTH_CONF_OPTS += -Denable-systemd=0 endif $(eval $(cmake-package)) ================================================ FILE: package/fluxbox/0001-fixes-bug-1138.patch ================================================ From 22866c4d30f5b289c429c5ca88d800200db4fc4f Mon Sep 17 00:00:00 2001 From: John Sennesael Date: Mon, 2 Nov 2015 15:14:32 -0600 Subject: [PATCH] fixes bug #1138 [Retrieved from: https://github.com/fluxbox/fluxbox/commit/22866c4d30f5b289c429c5ca88d800200db4fc4f] Signed-off-by: Fabrice Fontaine --- util/fluxbox-remote.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/fluxbox-remote.cc b/util/fluxbox-remote.cc index 59852e6a..504015b5 100644 --- a/util/fluxbox-remote.cc +++ b/util/fluxbox-remote.cc @@ -73,7 +73,7 @@ int main(int argc, char **argv) { if (strcmp(cmd, "result") == 0) { XTextProperty text_prop; if (XGetTextProperty(disp, root, &text_prop, atom_result) != 0 - && text_prop.value > 0 + && text_prop.value != 0 && text_prop.nitems > 0) { printf("%s", text_prop.value); ================================================ FILE: package/fluxbox/Config.in ================================================ config BR2_PACKAGE_FLUXBOX bool "fluxbox" depends on BR2_PACKAGE_XORG7 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBX11 # Runtime dependency, needed by startup script select BR2_PACKAGE_XAPP_XMODMAP help The Fluxbox lightweight window manager for X http://fluxbox.org comment "fluxbox needs a toolchain w/ C++" depends on BR2_USE_MMU depends on BR2_PACKAGE_XORG7 && !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/fluxbox/fluxbox.hash ================================================ # Locally computed: sha256 fc8c75fe94c54ed5a5dd3fd4a752109f8949d6df67a48e5b11a261403c382ec0 fluxbox-1.3.7.tar.xz sha256 d445b8c8b3cedd8b9ebb7f450524cf658d4a199b3a89a9f2af4255cc589c6253 COPYING ================================================ FILE: package/fluxbox/fluxbox.mk ================================================ ################################################################################ # # fluxbox # ################################################################################ FLUXBOX_VERSION = 1.3.7 FLUXBOX_SOURCE = fluxbox-$(FLUXBOX_VERSION).tar.xz FLUXBOX_SITE = http://downloads.sourceforge.net/project/fluxbox/fluxbox/$(FLUXBOX_VERSION) FLUXBOX_LICENSE = MIT FLUXBOX_LICENSE_FILES = COPYING FLUXBOX_CONF_OPTS = \ --x-includes=$(STAGING_DIR)/usr/include/X11 \ --x-libraries=$(STAGING_DIR)/usr/lib FLUXBOX_DEPENDENCIES = xlib_libX11 $(if $(BR2_PACKAGE_LIBICONV),libiconv) ifeq ($(BR2_PACKAGE_FREETYPE),y) FLUXBOX_CONF_OPTS += --enable-freetype2 FLUXBOX_DEPENDENCIES += freetype else FLUXBOX_CONF_OPTS += --disable-freetype2 endif ifeq ($(BR2_PACKAGE_IMLIB2_X),y) FLUXBOX_CONF_OPTS += --enable-imlib2 FLUXBOX_DEPENDENCIES += imlib2 else FLUXBOX_CONF_OPTS += --disable-imlib2 endif ifeq ($(BR2_PACKAGE_LIBFRIBIDI),y) FLUXBOX_CONF_OPTS += --enable-fribidi FLUXBOX_DEPENDENCIES += libfribidi else FLUXBOX_CONF_OPTS += --disable-fribidi endif ifeq ($(BR2_PACKAGE_XLIB_LIBXFT),y) FLUXBOX_CONF_OPTS += --enable-xft FLUXBOX_DEPENDENCIES += xlib_libXft else FLUXBOX_CONF_OPTS += --disable-xft endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y) FLUXBOX_CONF_OPTS += --enable-xrender FLUXBOX_DEPENDENCIES += xlib_libXrender else FLUXBOX_CONF_OPTS += --disable-xrender endif ifeq ($(BR2_PACKAGE_XLIB_LIBXPM),y) FLUXBOX_CONF_OPTS += --enable-xpm FLUXBOX_DEPENDENCIES += xlib_libXpm else FLUXBOX_CONF_OPTS += --disable-xpm endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) FLUXBOX_CONF_OPTS += --enable-xinerama FLUXBOX_DEPENDENCIES += xlib_libXinerama else FLUXBOX_CONF_OPTS += --disable-xinerama endif ifeq ($(BR2_PACKAGE_XLIB_LIBXEXT),y) FLUXBOX_CONF_OPTS += --enable-xext FLUXBOX_DEPENDENCIES += xlib_libXext else FLUXBOX_CONF_OPTS += --disable-xext endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) FLUXBOX_CONF_OPTS += --enable-xrandr FLUXBOX_DEPENDENCIES += xlib_libXrandr else FLUXBOX_CONF_OPTS += --disable-xrandr endif define FLUXBOX_INSTALL_XSESSION_FILE $(INSTALL) -m 0755 -D package/fluxbox/xsession \ $(TARGET_DIR)/root/.xsession endef FLUXBOX_POST_INSTALL_TARGET_HOOKS += FLUXBOX_INSTALL_XSESSION_FILE $(eval $(autotools-package)) ================================================ FILE: package/fluxbox/xsession ================================================ #!/bin/sh exec startfluxbox ================================================ FILE: package/fmc/Config.in ================================================ comment "fmc needs a toolchain w/ C++" 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 || BR2_powerpc_e6500 depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_FMC bool "fmc" depends on BR2_powerpc_e500mc || BR2_powerpc_e6500 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_LINUX_KERNEL # fmlib select BR2_PACKAGE_TCLAP select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_FMLIB help The Frame Manager Configuration tool is Freescale PowerPC platform software package whose primary purpose is converting Parse-Classify-Police-Distribute (PCD) descriptions of network packets flow into hardware configuration. The tool provides an abstraction layer between the end customer's vision of the PCD task definition and real hardware implementation. http://cache.freescale.com/files/32bit/doc/app_note/AN4760.pdf ================================================ FILE: package/fmc/fmc.hash ================================================ # Locally calculated sha256 cb896ec1fac2fe9a3a9bb8be2221b79acf5f9b75841609a681db0d9e7bec02a0 fmc-fsl-sdk-v2.0-br1.tar.gz sha256 f92862ceb95db5492f50a59d7c799c9395b714db88db92d11891dc0233e2ac42 COPYING ================================================ FILE: package/fmc/fmc.mk ================================================ ################################################################################ # # fmc # ################################################################################ FMC_VERSION = fsl-sdk-v2.0 FMC_SITE = https://source.codeaurora.org/external/qoriq/qoriq-yocto-sdk/fmc FMC_SITE_METHOD = git FMC_LICENSE = MIT FMC_LICENSE_FILES = COPYING FMC_DEPENDENCIES = libxml2 tclap fmlib FMC_MAKE_OPTS = \ CC="$(TARGET_CC)" \ CXX="$(TARGET_CXX)" \ FMD_USPACE_HEADER_PATH="$(STAGING_DIR)/usr/include/fmd" \ FMD_USPACE_LIB_PATH="$(STAGING_DIR)/usr/lib" \ 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 define FMC_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/source/fmc $(TARGET_DIR)/usr/sbin/fmc cp -dpfr $(@D)/etc/fmc $(TARGET_DIR)/etc/ endef $(eval $(generic-package)) ================================================ FILE: package/fmlib/Config.in ================================================ comment "fmlib needs a Linux kernel to be built" depends on BR2_powerpc_e500mc || BR2_powerpc_e6500 depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_FMLIB bool "fmlib" depends on BR2_powerpc_e500mc || BR2_powerpc_e6500 depends on BR2_LINUX_KERNEL help The Frame Manager library provides Freescale PowerPC platforms an API on top of the Frame Manager driver ioctl calls, that provides a user space application with a simple way to configure driver 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 ================================================ FILE: package/fmlib/fmlib.hash ================================================ # Locally computed sha256 59415d346af1d22f510f2785be4c7e3606dc3181476a666e832270550f7d44a6 fmlib-fsl-sdk-v2.0-br1.tar.gz sha256 837559e20d83910a005e7883b876cc5c42805fe4abcf7e5c5b3c8d036b7f61c8 COPYING ================================================ FILE: package/fmlib/fmlib.mk ================================================ ################################################################################ # # fmlib # ################################################################################ FMLIB_VERSION = fsl-sdk-v2.0 FMLIB_SITE = https://source.codeaurora.org/external/qoriq/qoriq-yocto-sdk/fmlib FMLIB_SITE_METHOD = git FMLIB_LICENSE = BSD-3-Clause, GPL-2.0+ FMLIB_LICENSE_FILES = COPYING FMLIB_DEPENDENCIES = linux FMLIB_INSTALL_STAGING = YES # This package installs a static library only, so there's # nothing to install to the target FMLIB_INSTALL_TARGET = NO FMLIB_MAKE_OPTS = \ CC="$(TARGET_CC)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ KERNEL_SRC="$(LINUX_DIR)" \ PREFIX="$(STAGING_DIR)/usr" 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 $(TARGET_MAKE_ENV) $(MAKE) $(FMLIB_MAKE_OPTS) -C $(@D) install-libfm-$(FMLIB_ARCHTYPE) endef $(eval $(generic-package)) ================================================ FILE: package/fmt/Config.in ================================================ config BR2_PACKAGE_FMT bool "fmt" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR help fmt is an open-source formatting library for C++. It can be used as a safe alternative to printf or as a fast alternative to IOStreams. https://fmt.dev comment "fmt needs a toolchain w/ C++, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR ================================================ FILE: package/fmt/fmt.hash ================================================ # Locally calculated sha256 a627a56eab9554fc1e5dd9a623d0768583b3a383ff70a4312ba68f94c9d415bf fmt-8.0.1.zip sha256 825c9324e70f8c839c8ba910543dd4a7daee243b86ef960594c11381a19980b8 LICENSE.rst ================================================ FILE: package/fmt/fmt.mk ================================================ ################################################################################ # # fmt # ################################################################################ FMT_VERSION = 8.0.1 FMT_SITE = https://github.com/fmtlib/fmt/releases/download/$(FMT_VERSION) FMT_SOURCE = fmt-$(FMT_VERSION).zip FMT_LICENSE = MIT with exception FMT_LICENSE_FILES = LICENSE.rst FMT_CPE_ID_VENDOR = fmt FMT_INSTALL_STAGING = YES FMT_CONF_OPTS = \ -DFMT_INSTALL=ON \ -DFMT_TEST=OFF define FMT_EXTRACT_CMDS $(UNZIP) -d $(BUILD_DIR) $(FMT_DL_DIR)/$(FMT_SOURCE) endef $(eval $(cmake-package)) ================================================ FILE: package/fmtools/Config.in ================================================ config BR2_PACKAGE_FMTOOLS bool "fmtools" help fmtools is a pair of simple command-line utilities for "video4linux2" radio tuner cards under Linux. It includes fm for power control, tuning, and volume and fmscan for scanning for stations. http://benpfaff.org/fmtools/ ================================================ FILE: package/fmtools/fmtools.hash ================================================ # Locally calculated after checking pgp signature sha256 75174e07d8cde6d4a8a5d7bbaa3a3b0760a850e7f6840cb7c6246227b18f5a39 fmtools-2.0.7.tar.gz # locally computed sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/fmtools/fmtools.mk ================================================ ################################################################################ # # fmtools # ################################################################################ FMTOOLS_VERSION = 2.0.7 FMTOOLS_SITE = http://benpfaff.org/fmtools FMTOOLS_LICENSE = GPL-2.0+ FMTOOLS_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/font-awesome/Config.in ================================================ 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 ================================================ FILE: package/font-awesome/font-awesome.hash ================================================ # Locally computed sha256 de512ba0e1dead382bbfce372cde74b3f18971d876fffb635ee9333f0db05d43 font-awesome-4.7.0.tar.gz ================================================ FILE: package/font-awesome/font-awesome.mk ================================================ ################################################################################ # # font-awesome # ################################################################################ FONT_AWESOME_VERSION = 4.7.0 FONT_AWESOME_SITE = $(call github,FortAwesome,Font-Awesome,v$(FONT_AWESOME_VERSION)) FONT_AWESOME_LICENSE = OFL-1.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)) ================================================ FILE: package/fontconfig/0001-Fix-the-build-issue-with-enable-static.patch ================================================ From 8208f99fa1676c42bfd8d74de3e9dac5366c150c Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Mon, 3 Sep 2018 04:56:16 +0000 Subject: [PATCH] Fix the build issue with --enable-static Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/109 Signed-off-by: Fabrice Fontaine [Retrieved from: https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/8208f99fa1676c42bfd8d74de3e9dac5366c150c] --- doc/fcstring.fncs | 12 ++++++++++++ fontconfig/fontconfig.h | 4 ++++ src/fcint.h | 4 ---- test/test-bz106632.c | 35 ++++++++++++----------------------- 4 files changed, 28 insertions(+), 27 deletions(-) diff --git a/doc/fcstring.fncs b/doc/fcstring.fncs index 0412bbd..d5ec043 100644 --- a/doc/fcstring.fncs +++ b/doc/fcstring.fncs @@ -223,6 +223,18 @@ This is just a wrapper around free(3) which helps track memory usage of strings within the fontconfig library. @@ +@RET@ FcChar8 * +@FUNC@ FcStrBuildFilename +@TYPE1@ const FcChar8 * @ARG1@ path +@TYPE2@ ... +@PURPOSE@ Concatenate strings as a file path +@DESC@ +Creates a filename from the given elements of strings as file paths +and concatenate them with the appropriate file separator. +Arguments must be null-terminated. +This returns a newly-allocated memory which should be freed when no longer needed. +@@ + @RET@ FcChar8 * @FUNC@ FcStrDirname @TYPE1@ const FcChar8 * @ARG1@ file diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h index bac1dda..af870d0 100644 --- a/fontconfig/fontconfig.h +++ b/fontconfig/fontconfig.h @@ -1076,6 +1076,10 @@ FcUtf16Len (const FcChar8 *string, int *nchar, int *wchar); +FcPublic FcChar8 * +FcStrBuildFilename (const FcChar8 *path, + ...); + FcPublic FcChar8 * FcStrDirname (const FcChar8 *file); diff --git a/src/fcint.h b/src/fcint.h index de78cd8..a9d075a 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -1282,10 +1282,6 @@ FcStrUsesHome (const FcChar8 *s); FcPrivate FcBool FcStrIsAbsoluteFilename (const FcChar8 *s); -FcPrivate FcChar8 * -FcStrBuildFilename (const FcChar8 *path, - ...); - FcPrivate FcChar8 * FcStrLastSlash (const FcChar8 *path); diff --git a/test/test-bz106632.c b/test/test-bz106632.c index daa0c1e..2d67c2e 100644 --- a/test/test-bz106632.c +++ b/test/test-bz106632.c @@ -25,25 +25,26 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif +#include #include +#include #include +#include +#include #ifndef HAVE_STRUCT_DIRENT_D_TYPE #include #include -#include #endif -#include "fcstr.c" -#undef FcConfigBuildFonts -#undef FcConfigCreate -#undef FcConfigGetCurrent -#undef FcConfigParseAndLoadFromMemory -#undef FcConfigUptoDate -#undef FcFontList -#undef FcInitReinitialize -#undef FcPatternCreate -#undef FcPatternDestroy #include +#ifdef _WIN32 +# define FC_DIR_SEPARATOR '\\' +# define FC_DIR_SEPARATOR_S "\\" +#else +# define FC_DIR_SEPARATOR '/' +# define FC_DIR_SEPARATOR_S "/" +#endif + #ifdef HAVE_MKDTEMP #define fc_mkdtemp mkdtemp #else @@ -154,18 +155,6 @@ unlink_dirs (const char *dir) return ret; } -FcChar8 * -FcLangNormalize (const FcChar8 *lang) -{ - return NULL; -} - -FcChar8 * -FcConfigHome (void) -{ - return NULL; -} - int main (void) { -- 2.18.1 ================================================ FILE: package/fontconfig/0002-add-pthread-as-a-dependency-of-a-static-lib.patch ================================================ From 40ec04a8bf36dd8d0aa3da98b167792ce2dcd114 Mon Sep 17 00:00:00 2001 From: Silvan Scherrer Date: Sun, 20 Sep 2020 12:52:08 +0200 Subject: [PATCH] add pthread as a dependency of a static lib Downloaded from https://trac.netlabs.org/ports/changeset/2220 Patch sent upstream: https://gitlab.freedesktop.org/fontconfig/fontconfig/-/merge_requests/121 Signed-off-by: Bernd Kuhls --- configure.ac | 2 ++ fontconfig.pc.in | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index f3189a7..594d6fd 100644 --- a/configure.ac +++ b/configure.ac @@ -690,6 +690,8 @@ fi have_pthread=false if test "$os_win32" = no; then AX_PTHREAD([have_pthread=true]) + AC_SUBST(PTHREAD_CFLAGS) + AC_SUBST(PTHREAD_LIBS) fi if $have_pthread; then LIBS="$PTHREAD_LIBS $LIBS" diff --git a/fontconfig.pc.in b/fontconfig.pc.in index 61b35fb..f823bac 100644 --- a/fontconfig.pc.in +++ b/fontconfig.pc.in @@ -14,5 +14,5 @@ Version: @VERSION@ Requires: @PKGCONFIG_REQUIRES@ Requires.private: @PKGCONFIG_REQUIRES_PRIVATELY@ Libs: -L${libdir} -lfontconfig -Libs.private: @ICONV_LIBS@ @PKG_EXPAT_LIBS@ -Cflags: -I${includedir} @ICONV_CFLAGS@ @PKG_EXPAT_CFLAGS@ +Libs.private: @ICONV_LIBS@ @PKG_EXPAT_LIBS@ @PTHREAD_LIBS@ +Cflags: -I${includedir} @ICONV_CFLAGS@ @PKG_EXPAT_CFLAGS@ @PTHREAD_CFLAGS@ -- 2.27.0 ================================================ FILE: package/fontconfig/Config.in ================================================ config BR2_PACKAGE_FONTCONFIG bool "fontconfig" select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_EXPAT select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Fontconfig is a library for configuring and customizing font access. http://www.fontconfig.org/ ================================================ FILE: package/fontconfig/fontconfig.hash ================================================ # From https://lists.freedesktop.org/archives/fontconfig/2018-August/006324.html sha256 f655dd2a986d7aa97e052261b36aa67b0a64989496361eca8d604e6414006741 fontconfig-2.13.1.tar.bz2 # Locally calculated sha256 fa4cd9ab005185e10cd8f7504518856c7dd36c01e766c2bac87f4fc638e9f886 COPYING ================================================ FILE: package/fontconfig/fontconfig.mk ================================================ ################################################################################ # # fontconfig # ################################################################################ FONTCONFIG_VERSION = 2.13.1 FONTCONFIG_SITE = http://fontconfig.org/release FONTCONFIG_SOURCE = fontconfig-$(FONTCONFIG_VERSION).tar.bz2 # 0002-add-pthread-as-a-dependency-of-a-static-lib.patch FONTCONFIG_AUTORECONF = YES FONTCONFIG_INSTALL_STAGING = YES FONTCONFIG_DEPENDENCIES = freetype expat host-pkgconf host-gperf \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBS),util-linux-libs,util-linux) \ $(TARGET_NLS_DEPENDENCIES) HOST_FONTCONFIG_DEPENDENCIES = \ host-freetype host-expat host-pkgconf host-gperf host-util-linux \ host-gettext FONTCONFIG_LICENSE = fontconfig license FONTCONFIG_LICENSE_FILES = COPYING FONTCONFIG_CPE_ID_VENDOR = fontconfig_project FONTCONFIG_CONF_OPTS = \ --with-arch=$(GNU_TARGET_NAME) \ --with-cache-dir=/var/cache/fontconfig \ --disable-docs HOST_FONTCONFIG_CONF_OPTS = \ --disable-static $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/fping/Config.in ================================================ config BR2_PACKAGE_FPING bool "fping" help fping is a program to send ICMP echo probes to network hosts, similar to ping, but much better performing when pinging multiple hosts. http://fping.org/ ================================================ FILE: package/fping/fping.hash ================================================ # Locally calculated sha256 ed38c0b9b64686a05d1b3bc1d66066114a492e04e44eef1821d43b1263cd57b8 fping-5.0.tar.gz # Hash for license file sha256 6051b27e4b4a648f7bc8b329024da53a6e95ce88fcf0ccc259c371a74b741757 COPYING ================================================ FILE: package/fping/fping.mk ================================================ ################################################################################ # # fping # ################################################################################ FPING_VERSION = 5.0 FPING_SITE = http://fping.org/dist FPING_LICENSE = BSD-like FPING_LICENSE_FILES = COPYING FPING_SELINUX_MODULES = netutils $(eval $(autotools-package)) ================================================ FILE: package/freeradius-client/0001-fix-for-nettle.patch ================================================ lib/rc-md5: fix build when nettle is enabled rc-md5 uses size_t, which is defined in string.h. This include is missing when built against nettle. Just add it. Signed-off-by: "Yann E. MORIN" diff -durN freeradius-client-1.1.7.orig/lib/rc-md5.h freeradius-client-1.1.7/lib/rc-md5.h --- freeradius-client-1.1.7.orig/lib/rc-md5.h 2015-01-19 17:18:26.000000000 +0100 +++ freeradius-client-1.1.7/lib/rc-md5.h 2015-01-25 22:56:07.815626476 +0100 @@ -13,6 +13,7 @@ #ifdef HAVE_NETTLE +#include /* size_t */ #include #else ================================================ FILE: package/freeradius-client/Config.in ================================================ config BR2_PACKAGE_FREERADIUS_CLIENT bool "freeradius-client" help FreeRADIUS Client is a framework and library for writing RADIUS Clients. http://wiki.freeradius.org/project/Radiusclient ================================================ FILE: package/freeradius-client/freeradius-client.hash ================================================ # Locally computed sha256 eada2861b8f4928e3ac6b5bbfe11e92cd6cdcacfce40cae1085e77c1b6add0e9 freeradius-client-1.1.7.tar.gz sha256 e579878de7971b2224ae2263bbc61f6c465fe40e884a9068d5fa9d17fbfd2ebe COPYRIGHT ================================================ FILE: package/freeradius-client/freeradius-client.mk ================================================ ################################################################################ # # freeradius-client # ################################################################################ FREERADIUS_CLIENT_VERSION = 1.1.7 FREERADIUS_CLIENT_SITE = ftp://ftp.freeradius.org/pub/freeradius FREERADIUS_CLIENT_LICENSE = BSD-2-Clause FREERADIUS_CLIENT_LICENSE_FILES = COPYRIGHT FREERADIUS_CLIENT_INSTALL_STAGING = YES FREERADIUS_CLIENT_DEPENDENCIES = host-pkgconf ifeq ($(BR2_PACKAGE_NETTLE),y) FREERADIUS_CLIENT_DEPENDENCIES += nettle FREERADIUS_CLIENT_CONF_OPTS += --with-nettle=yes else FREERADIUS_CLIENT_CONF_OPTS += --with-nettle=no endif $(eval $(autotools-package)) ================================================ FILE: package/freerdp/0001-Fix-variable-declaration-in-loop.patch ================================================ From ddde652460350b962d32036981ff8ed77ed2f1ed Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Wed, 16 Sep 2020 09:30:37 +0200 Subject: [PATCH] Fix variable declaration in loop [Retrieved from: https://github.com/FreeRDP/FreeRDP/commit/ddde652460350b962d32036981ff8ed77ed2f1ed] Signed-off-by: Fabrice Fontaine --- client/X11/xf_graphics.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/X11/xf_graphics.c b/client/X11/xf_graphics.c index 76fbef5bd6..bf71b563c3 100644 --- a/client/X11/xf_graphics.c +++ b/client/X11/xf_graphics.c @@ -386,6 +386,7 @@ static BOOL xf_Pointer_New(rdpContext* context, rdpPointer* pointer) static void xf_Pointer_Free(rdpContext* context, rdpPointer* pointer) { #ifdef WITH_XCURSOR + UINT32 i; xfContext* xfc = (xfContext*)context; xfPointer* xpointer = (xfPointer*)pointer; @@ -395,7 +396,7 @@ static void xf_Pointer_Free(rdpContext* context, rdpPointer* pointer) free(xpointer->cursorWidths); free(xpointer->cursorHeights); - for (int i = 0; i < xpointer->nCursors; i++) + for (i = 0; i < xpointer->nCursors; i++) { XFreeCursor(xfc->display, xpointer->cursors[i]); } ================================================ FILE: package/freerdp/0002-Fixed-variable-declaration-in-loop.patch ================================================ From 4f8a48d96e472e43a5f856c449f61669792ce9fa Mon Sep 17 00:00:00 2001 From: akallabeth Date: Tue, 22 Sep 2020 07:43:56 +0200 Subject: [PATCH] Fixed variable declaration in loop [Retrieved from: https://github.com/FreeRDP/FreeRDP/commit/4f8a48d96e472e43a5f856c449f61669792ce9fa] Signed-off-by: Fabrice Fontaine --- client/X11/xf_graphics.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/X11/xf_graphics.c b/client/X11/xf_graphics.c index bf71b563c3..c50726c8e4 100644 --- a/client/X11/xf_graphics.c +++ b/client/X11/xf_graphics.c @@ -240,7 +240,7 @@ static BOOL _xf_Pointer_GetCursorForCurrentScale(rdpContext* context, const rdpP double xscale; double yscale; size_t size; - int cursorIndex = -1; + int cursorIndex = -1, i; if (!context || !pointer || !context->gdi) return FALSE; @@ -255,7 +255,7 @@ static BOOL _xf_Pointer_GetCursorForCurrentScale(rdpContext* context, const rdpP xTargetSize = pointer->width * xscale; yTargetSize = pointer->height * yscale; - for (int i = 0; i < xpointer->nCursors; i++) + for (i = 0; i < xpointer->nCursors; i++) { if (xpointer->cursorWidths[i] == xTargetSize && xpointer->cursorHeights[i] == yTargetSize) { ================================================ FILE: package/freerdp/0003-winpr-include-winpr-file.h-fix-build-on-uclibc.patch ================================================ From 21036304f909eae9f7506f48703ba1c74724342b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 31 Jul 2021 09:49:27 +0200 Subject: [PATCH] winpr/include/winpr/file.h: fix build on uclibc Include stdio.h to fix the following build failure with uclibc raised since version 2.4.0 and https://github.com/FreeRDP/FreeRDP/commit/eb6777ea69b022c9e43a1576a2192a1cb807b1e6: In file included from /tmp/instance-0/output-1/build/freerdp-2.4.0/winpr/libwinpr/utils/lodepng/lodepng.c:30: /tmp/instance-0/output-1/build/freerdp-2.4.0/winpr/include/winpr/file.h:524:11: error: unknown type name 'FILE' WINPR_API FILE* winpr_fopen(const char* path, const char* mode); ^~~~ Fixes: - http://autobuild.buildroot.org/results/31e770a330158035e24b7b952bec0030138482b7 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/FreeRDP/FreeRDP/pull/7205] --- winpr/include/winpr/file.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/winpr/include/winpr/file.h b/winpr/include/winpr/file.h index 48a29f9f5..79c9b392c 100644 --- a/winpr/include/winpr/file.h +++ b/winpr/include/winpr/file.h @@ -30,6 +30,8 @@ #ifndef _WIN32 +#include + #ifndef MAX_PATH #define MAX_PATH 260 #endif -- 2.30.2 ================================================ FILE: package/freerdp/Config.in ================================================ config BR2_PACKAGE_FREERDP bool "freerdp" # FreeRDP does not have a single C++ source file, however it # insists on having a C++ compiler. Removing that requirement # is a bit too much involving, so we just depend on it... depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on !BR2_STATIC_LIBS # uses dlfcn.h depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # libglib2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4 if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_ZLIB select BR2_PACKAGE_LIBGLIB2 help FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license This only installs the freerdp libraries. http://www.freerdp.com/ Note: this also installs a key and certificate in /etc/freerdp/keys/ . These are publicly-known, as they are present in FreeRDP's source tree. It is strongly suggested that you overwrite them with your own set, either in an overlay rootfs or in a post-build script. if BR2_PACKAGE_FREERDP config BR2_PACKAGE_FREERDP_GSTREAMER1 bool "gstreamer support" depends on BR2_PACKAGE_GSTREAMER1 depends on BR2_PACKAGE_XORG7 # xlib-libxrandr # gstreamer-1.x dependencies already dependencies of FreeRDP select BR2_PACKAGE_GST1_PLUGINS_BASE select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP select BR2_PACKAGE_XLIB_LIBXRANDR comment "gstreamer support needs X.Org" depends on !BR2_PACKAGE_XORG7 depends on BR2_PACKAGE_GSTREAMER1 config BR2_PACKAGE_FREERDP_SERVER bool "server" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXDAMAGE select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXFIXES config BR2_PACKAGE_FREERDP_CLIENT_X11 bool "X11 client" default y depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT comment "server and X11 client need X.Org" depends on !BR2_PACKAGE_XORG7 config BR2_PACKAGE_FREERDP_CLIENT_WL bool "wayland client" default y depends on BR2_PACKAGE_WAYLAND select BR2_PACKAGE_LIBXKBCOMMON endif comment "freerdp needs a toolchain w/ wchar, dynamic library, threads, C++" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS \ || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/freerdp/freerdp.hash ================================================ # From https://pub.freerdp.com/releases/freerdp-2.4.1.tar.gz.sha256 sha256 ef75c87926643a0d0041f6556e343ac037380d4260c64885e7cdd20da0147edf freerdp-2.4.1.tar.gz # Locally calculated sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/freerdp/freerdp.mk ================================================ ################################################################################ # # freerdp # ################################################################################ FREERDP_VERSION = 2.4.1 FREERDP_SITE = https://pub.freerdp.com/releases FREERDP_DEPENDENCIES = libglib2 openssl zlib FREERDP_LICENSE = Apache-2.0 FREERDP_LICENSE_FILES = LICENSE FREERDP_CPE_ID_VENDOR = freerdp FREERDP_INSTALL_STAGING = YES FREERDP_CONF_OPTS = -DWITH_MANPAGES=OFF -Wno-dev -DWITH_GSTREAMER_0_10=OFF ifeq ($(BR2_PACKAGE_FREERDP_GSTREAMER1),y) FREERDP_CONF_OPTS += -DWITH_GSTREAMER_1_0=ON FREERDP_DEPENDENCIES += gstreamer1 gst1-plugins-base else FREERDP_CONF_OPTS += -DWITH_GSTREAMER_1_0=OFF endif ifeq ($(BR2_PACKAGE_CUPS),y) FREERDP_CONF_OPTS += -DWITH_CUPS=ON FREERDP_DEPENDENCIES += cups else FREERDP_CONF_OPTS += -DWITH_CUPS=OFF endif ifeq ($(BR2_PACKAGE_FFMPEG),y) FREERDP_CONF_OPTS += -DWITH_FFMPEG=ON FREERDP_DEPENDENCIES += ffmpeg else FREERDP_CONF_OPTS += -DWITH_FFMPEG=OFF endif ifeq ($(BR2_PACKAGE_ALSA_LIB_MIXER),y) FREERDP_CONF_OPTS += -DWITH_ALSA=ON FREERDP_DEPENDENCIES += alsa-lib else FREERDP_CONF_OPTS += -DWITH_ALSA=OFF endif ifeq ($(BR2_PACKAGE_LIBUSB),y) FREERDP_CONF_OPTS += -DCHANNEL_URBDRC=ON FREERDP_DEPENDENCIES += libusb else FREERDP_CONF_OPTS += -DCHANNEL_URBDRC=OFF endif ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) FREERDP_CONF_OPTS += -DWITH_PULSE=ON FREERDP_DEPENDENCIES += pulseaudio else FREERDP_CONF_OPTS += -DWITH_PULSE=OFF endif # For the systemd journal ifeq ($(BR2_PACKAGE_SYSTEMD),y) FREERDP_CONF_OPTS += -DWITH_LIBSYSTEMD=ON FREERDP_DEPENDENCIES += systemd else FREERDP_CONF_OPTS += -DWITH_LIBSYSTEMD=OFF endif ifeq ($(BR2_ARM_CPU_HAS_NEON),y) FREERDP_CONF_OPTS += -DWITH_NEON=ON else FREERDP_CONF_OPTS += -DWITH_NEON=OFF endif ifeq ($(BR2_X86_CPU_HAS_SSE2),y) FREERDP_CONF_OPTS += -DWITH_SSE2=ON else FREERDP_CONF_OPTS += -DWITH_SSE2=OFF endif ifeq ($(BR2_arm)$(BR2_armeb),y) FREERDP_CONF_OPTS += -DARM_FP_ABI=$(GCC_TARGET_FLOAT_ABI) endif #--------------------------------------- # Enabling server and/or client # Clients and server interface must always be enabled to build the # corresponding libraries. FREERDP_CONF_OPTS += -DWITH_SERVER_INTERFACE=ON FREERDP_CONF_OPTS += -DWITH_CLIENT_INTERFACE=ON ifeq ($(BR2_PACKAGE_FREERDP_SERVER),y) FREERDP_CONF_OPTS += -DWITH_SERVER=ON endif ifneq ($(BR2_PACKAGE_FREERDP_CLIENT_X11)$(BR2_PACKAGE_FREERDP_CLIENT_WL),) FREERDP_CONF_OPTS += -DWITH_CLIENT=ON endif #--------------------------------------- # Libraries for client and/or server # The FreeRDP buildsystem uses non-orthogonal options. For example it # is not possible to build the server and the wayland client without # also building the X client. That's because the dependencies of the # server (the X libraries) are a superset of those of the X client. # So, as soon as FreeRDP is configured for the server and the wayland # client, it will believe it also has to build the X client, because # the libraries it needs are enabled. # # Furthermore, the shadow server is always built, even if there's nothing # it can serve (i.e. the X libs are disabled). # # So, we do not care whether we build too much; we remove, as # post-install hooks, whatever we do not want. # If Xorg is enabled, and the server or the X client are, then libX11 # and libXext are forcibly enabled at the Kconfig level. However, if # Xorg is enabled but neither the server nor the X client are, then # there's nothing that guarantees those two libs are enabled. So we # really must check for them. ifeq ($(BR2_PACKAGE_XLIB_LIBX11)$(BR2_PACKAGE_XLIB_LIBXEXT),yy) FREERDP_DEPENDENCIES += xlib_libX11 xlib_libXext FREERDP_CONF_OPTS += -DWITH_X11=ON else FREERDP_CONF_OPTS += -DWITH_X11=OFF endif # The following libs are either optional or mandatory only for either # the server or the client. A mandatory library for either one is # selected from Kconfig, so we can make it conditional here ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) FREERDP_CONF_OPTS += -DWITH_XCURSOR=ON FREERDP_DEPENDENCIES += xlib_libXcursor else FREERDP_CONF_OPTS += -DWITH_XCURSOR=OFF endif ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y) FREERDP_CONF_OPTS += -DWITH_XDAMAGE=ON FREERDP_DEPENDENCIES += xlib_libXdamage else FREERDP_CONF_OPTS += -DWITH_XDAMAGE=OFF endif ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y) FREERDP_CONF_OPTS += -DWITH_XFIXES=ON FREERDP_DEPENDENCIES += xlib_libXfixes else FREERDP_CONF_OPTS += -DWITH_XFIXES=OFF endif ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y) FREERDP_CONF_OPTS += -DWITH_XI=ON FREERDP_DEPENDENCIES += xlib_libXi else FREERDP_CONF_OPTS += -DWITH_XI=OFF endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) FREERDP_CONF_OPTS += -DWITH_XINERAMA=ON FREERDP_DEPENDENCIES += xlib_libXinerama else FREERDP_CONF_OPTS += -DWITH_XINERAMA=OFF endif ifeq ($(BR2_PACKAGE_XLIB_LIBXKBFILE),y) FREERDP_CONF_OPTS += -DWITH_XKBFILE=ON FREERDP_DEPENDENCIES += xlib_libxkbfile else FREERDP_CONF_OPTS += -DWITH_XKBFILE=OFF endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) FREERDP_CONF_OPTS += -DWITH_XRANDR=ON FREERDP_DEPENDENCIES += xlib_libXrandr else FREERDP_CONF_OPTS += -DWITH_XRANDR=OFF endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y) FREERDP_CONF_OPTS += -DWITH_XRENDER=ON FREERDP_DEPENDENCIES += xlib_libXrender else FREERDP_CONF_OPTS += -DWITH_XRENDER=OFF endif ifeq ($(BR2_PACKAGE_XLIB_LIBXTST),y) FREERDP_CONF_OPTS += -DWITH_XTEST=ON FREERDP_DEPENDENCIES += xlib_libXtst else FREERDP_CONF_OPTS += -DWITH_XTEST=OFF endif ifeq ($(BR2_PACKAGE_XLIB_LIBXV),y) FREERDP_CONF_OPTS += -DWITH_XV=ON FREERDP_DEPENDENCIES += xlib_libXv else FREERDP_CONF_OPTS += -DWITH_XV=OFF endif ifeq ($(BR2_PACKAGE_FREERDP_CLIENT_WL),y) FREERDP_DEPENDENCIES += wayland libxkbcommon FREERDP_CONF_OPTS += \ -DWITH_WAYLAND=ON \ -DWAYLAND_SCANNER=$(HOST_DIR)/bin/wayland-scanner else FREERDP_CONF_OPTS += -DWITH_WAYLAND=OFF endif #--------------------------------------- # Post-install hooks to cleanup and install missing stuff # Shadow server is always installed, no matter what, so we manually # remove it if the user does not want the server. ifeq ($(BR2_PACKAGE_FREERDP_SERVER),) define FREERDP_RM_SHADOW_SERVER rm -f $(TARGET_DIR)/usr/bin/freerdp-shadow endef FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_RM_SHADOW_SERVER endif # ! server # X client is always built as soon as a client is enabled and the # necessary libs are enabled (e.g. because of the server), so manually # remove it if the user does not want it. ifeq ($(BR2_PACKAGE_FREERDP_CLIENT_X11),) define FREERDP_RM_CLIENT_X11 rm -f $(TARGET_DIR)/usr/bin/xfreerdp rm -f $(TARGET_DIR)/usr/lib/libxfreerdp-client* endef FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_RM_CLIENT_X11 define FREERDP_RM_CLIENT_X11_LIB rm -f $(STAGING_DIR)/usr/lib/libxfreerdp-client* endef FREERDP_POST_INSTALL_STAGING_HOOKS += FREERDP_RM_CLIENT_X11_LIB endif # ! X client # Wayland client is always built as soon as wayland is enabled, so # manually remove it if the user does not want it. ifeq ($(BR2_PACKAGE_FREERDP_CLIENT_WL),) define FREERDP_RM_CLIENT_WL rm -f $(TARGET_DIR)/usr/bin/wlfreerdp endef FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_RM_CLIENT_WL endif # Remove static libraries in unusual dir define FREERDP_CLEANUP rm -rf $(TARGET_DIR)/usr/lib/freerdp endef FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_CLEANUP # Install the server key and certificate, so that a client can connect. # A user can override them with its own in a post-build script, if needed. # We install them even if the server is not enabled, since another server # can be built and linked with libfreerdp (e.g. weston with the RDP # backend). Key and cert are installed world-readable, so non-root users # can start a server. define FREERDP_INSTALL_KEYS $(INSTALL) -m 0644 -D $(@D)/server/Sample/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 endef FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_INSTALL_KEYS $(eval $(cmake-package)) ================================================ FILE: package/freescale-imx/Config.in ================================================ menuconfig BR2_PACKAGE_FREESCALE_IMX bool "Freescale i.MX libraries" depends on BR2_arm || BR2_aarch64 help Those packages provide hardware acceleration for GPU or VPU, hardware optimization or some hardware tools for Freescale i.MX platforms. if BR2_PACKAGE_FREESCALE_IMX choice prompt "i.MX platform" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK bool "imx25-3stack" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS bool "imx27ads" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX37_3STACK bool "imx37-3stack" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX50 bool "imx50" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 bool "imx51" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53 bool "imx53" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q bool "imx6q/imx6dl" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S bool "imx6sl/imx6sx" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL bool "imx6ul/imx6ull" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 bool "imx7d/imx7ulp" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 bool "imx8" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M bool "imx8m" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM bool "imx8mm" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN bool "imx8mn" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP bool "imx8mp" config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X bool "imx8x" endchoice config BR2_PACKAGE_FREESCALE_IMX_PLATFORM string default "IMX25_3STACK" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK default "IMX27ADS" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS default "IMX37_3STACK" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX37_3STACK default "IMX50" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX50 default "IMX51" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 default "IMX53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53 default "IMX6Q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q default "IMX6S" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S default "IMX6UL" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL default "IMX7" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 default "IMX8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 default "IMX8MQ" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M default "IMX8MM" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM default "IMX8MN" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN default "IMX8MP" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP 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 config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO bool default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \ BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM || \ BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU bool default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q || \ BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S || \ BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \ BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 || \ BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \ BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM || \ BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN || \ BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP || \ BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X source "package/freescale-imx/imx-alsa-plugins/Config.in" 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-m4fwloader/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-vpu-hantro/Config.in" source "package/freescale-imx/imx-vpuwrap/Config.in" source "package/freescale-imx/firmware-imx/Config.in" source "package/freescale-imx/imx-sc-firmware/Config.in" source "package/freescale-imx/imx-seco/Config.in" source "package/freescale-imx/imx-vpu-hantro-vc/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" source "package/freescale-imx/libz160/Config.in" endif if BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU source "package/freescale-imx/imx-gpu-g2d/Config.in" source "package/freescale-imx/imx-gpu-viv/Config.in" source "package/freescale-imx/kernel-module-imx-gpu-viv/Config.in" endif endif ================================================ FILE: package/freescale-imx/firmware-imx/Config.in ================================================ config BR2_PACKAGE_FIRMWARE_IMX bool "firmware-imx" depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX help Firmware blobs for the Freescale i.MX SoCs. It contains blobs for SDMA, VPU, HDMI, EDPC, and DDR training. This library is provided by Freescale as-is and doesn't have an upstream. if BR2_PACKAGE_FIRMWARE_IMX config BR2_PACKAGE_FIRMWARE_IMX_SDMA_FW_NAME string default "imx25" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK default "imx51" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 default "imx53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53 default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP config BR2_PACKAGE_FIRMWARE_IMX_VPU_FW_NAME string default "imx27" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS default "imx51" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 default "imx53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53 default "imx6" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q default "imx8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 default "imx8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW bool default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_EPDC_FW bool default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW bool default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP if BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW choice bool "DDR training binaries" default BR2_PACKAGE_FIRMWARE_IMX_LPDDR4 help Choose the DDR training binaries to be used depending on the kind of memory that is available on the target board (DDR4, LPDDR4, etc...). config BR2_PACKAGE_FIRMWARE_IMX_LPDDR4 bool "lpddr4" help Use LPDDR4 binaries (i.e.: lpddr4_pmu_train_*.bin) config BR2_PACKAGE_FIRMWARE_IMX_DDR4 bool "DDR4" help Use DDR4 binaries (i.e.: ddr4_*_201810.bin). endchoice # DDR training FW config BR2_PACKAGE_FIRMWARE_IMX_IMEM_LEN hex "(LP)DDR IMEM padding length" default 0x8000 help The IMEM firmware will be padded to this length config BR2_PACKAGE_FIRMWARE_IMX_DMEM_LEN hex "(LP)DDR DMEM padding length" default 0x4000 help The DMEM firmware will be padded to this length endif # BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW endif # BR2_PACKAGE_FIRMWARE_IMX ================================================ FILE: package/freescale-imx/firmware-imx/firmware-imx.hash ================================================ # Locally calculated sha256 6b6747bf36ecc53e385234afdce01f69c5775adf0d6685c885281ca6e4e322ef firmware-imx-8.12.bin sha256 ea58636bf34f589048fcd46e38497c47229fde8498df086ff5fb52f9ef8e15ee COPYING sha256 50099e283cfd307f84f159aeb1a6f462351320273dbcdb80d7f2c9db0494b71c EULA ================================================ FILE: package/freescale-imx/firmware-imx/firmware-imx.mk ================================================ ################################################################################ # # firmware-imx # ################################################################################ FIRMWARE_IMX_VERSION = 8.12 FIRMWARE_IMX_SITE = $(FREESCALE_IMX_SITE) FIRMWARE_IMX_SOURCE = firmware-imx-$(FIRMWARE_IMX_VERSION).bin FIRMWARE_IMX_LICENSE = NXP Semiconductor Software License Agreement FIRMWARE_IMX_LICENSE_FILES = EULA COPYING FIRMWARE_IMX_REDISTRIBUTE = NO FIRMWARE_IMX_INSTALL_IMAGES = YES define FIRMWARE_IMX_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(FIRMWARE_IMX_DL_DIR)/$(FIRMWARE_IMX_SOURCE)) endef # # DDR firmware # define FIRMWARE_IMX_PREPARE_DDR_FW $(TARGET_OBJCOPY) -I binary -O binary \ --pad-to $(BR2_PACKAGE_FIRMWARE_IMX_IMEM_LEN) --gap-fill=0x0 \ $(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(1)).bin \ $(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(1))_pad.bin $(TARGET_OBJCOPY) -I binary -O binary \ --pad-to $(BR2_PACKAGE_FIRMWARE_IMX_DMEM_LEN) --gap-fill=0x0 \ $(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(2)).bin \ $(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(2))_pad.bin cat $(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(1))_pad.bin \ $(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(2))_pad.bin > \ $(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(3)).bin endef ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_LPDDR4),y) FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys define FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW # Create padded versions of lpddr4_pmu_* and generate lpddr4_pmu_train_fw.bin. # lpddr4_pmu_train_fw.bin is needed when generating imx8-boot-sd.bin # which is done in post-image script. $(call FIRMWARE_IMX_PREPARE_DDR_FW, \ lpddr4_pmu_train_1d_imem,lpddr4_pmu_train_1d_dmem,lpddr4_pmu_train_1d_fw) $(call FIRMWARE_IMX_PREPARE_DDR_FW, \ lpddr4_pmu_train_2d_imem,lpddr4_pmu_train_2d_dmem,lpddr4_pmu_train_2d_fw) cat $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_1d_fw.bin \ $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_2d_fw.bin > \ $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin ln -sf $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin $(BINARIES_DIR)/ddr_fw.bin # U-Boot supports creation of the combined flash.bin image. To make # sure that U-Boot can access all available files copy them to # the binary dir. cp $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4*.bin $(BINARIES_DIR)/ endef endif ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_DDR4),y) FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys define FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW # Create padded versions of ddr4_* and generate ddr4_fw.bin. # ddr4_fw.bin is needed when generating imx8-boot-sd.bin # which is done in post-image script. $(call FIRMWARE_IMX_PREPARE_DDR_FW, \ ddr4_imem_1d_201810,ddr4_dmem_1d_201810,ddr4_1d_201810_fw) $(call FIRMWARE_IMX_PREPARE_DDR_FW, \ ddr4_imem_2d_201810,ddr4_dmem_2d_201810,ddr4_2d_201810_fw) cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_1d_201810_fw.bin \ $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_2d_201810_fw.bin > \ $(BINARIES_DIR)/ddr4_201810_fw.bin ln -sf $(BINARIES_DIR)/ddr4_201810_fw.bin $(BINARIES_DIR)/ddr_fw.bin # U-Boot supports creation of the combined flash.bin image. To make # sure that U-Boot can access all available files copy them to # the binary dir. cp $(FIRMWARE_IMX_DDRFW_DIR)/ddr4*.bin $(BINARIES_DIR)/ endef endif # # HDMI firmware # ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW),y) define FIRMWARE_IMX_INSTALL_IMAGE_HDMI_FW cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \ $(BINARIES_DIR)/signed_hdmi_imx8m.bin endef endif # # EPDC firmware # ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_EPDC_FW),y) define FIRMWARE_IMX_INSTALL_TARGET_EPDC_FW mkdir -p $(TARGET_DIR)/lib/firmware/imx 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 endef endif # # SDMA firmware # FIRMWARE_IMX_SDMA_FW_NAME = $(call qstrip,$(BR2_PACKAGE_FIRMWARE_IMX_SDMA_FW_NAME)) ifneq ($(FIRMWARE_IMX_SDMA_FW_NAME),) define FIRMWARE_IMX_INSTALL_TARGET_SDMA_FW mkdir -p $(TARGET_DIR)/lib/firmware/imx/sdma cp -r $(@D)/firmware/sdma/sdma-$(FIRMWARE_IMX_SDMA_FW_NAME)*.bin \ $(TARGET_DIR)/lib/firmware/imx/sdma/ endef endif # # VPU firmware # FIRMWARE_IMX_VPU_FW_NAME = $(call qstrip,$(BR2_PACKAGE_FIRMWARE_IMX_VPU_FW_NAME)) ifneq ($(FIRMWARE_IMX_VPU_FW_NAME),) define FIRMWARE_IMX_INSTALL_TARGET_VPU_FW mkdir -p $(TARGET_DIR)/lib/firmware/vpu for i in $$(find $(@D)/firmware/vpu/vpu_fw_$(FIRMWARE_IMX_VPU_FW_NAME)*.bin); do \ cp $$i $(TARGET_DIR)/lib/firmware/vpu/ ; \ ln -sf vpu/$$(basename $$i) $(TARGET_DIR)/lib/firmware/$$(basename $$i) ; \ done endef endif define FIRMWARE_IMX_INSTALL_IMAGES_CMDS $(FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW) $(FIRMWARE_IMX_INSTALL_IMAGE_HDMI_FW) endef define FIRMWARE_IMX_INSTALL_TARGET_CMDS $(FIRMWARE_IMX_INSTALL_TARGET_EPDC_FW) $(FIRMWARE_IMX_INSTALL_TARGET_SDMA_FW) $(FIRMWARE_IMX_INSTALL_TARGET_VPU_FW) endef $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/freescale-imx.mk ================================================ ################################################################################ # # freescale-imx # ################################################################################ FREESCALE_IMX_SITE = http://www.nxp.com/lgfiles/NMG/MAD/YOCTO # Helper for self-extracting binaries distributed by Freescale. # # The --force option makes sure it doesn't fail if the source # directory already exists. The --auto-accept skips the license check, # as it is not needed in Buildroot because we have legal-info. Since # there's a EULA in the binary file, we extract it in this macro, and # it should therefore be added to the LICENSE_FILES variable of # packages using this macro. Also, remember to set REDISTRIBUTE to # "NO". Indeed, this is a legal minefield: the EULA specifies that the # Board Support Package includes software and hardware (sic!) for # which a separate license is needed... # # $(1): full path to the archive file # define FREESCALE_IMX_EXTRACT_HELPER awk 'BEGIN { start = 0; } \ /^EOEULA/ { start = 0; } \ { if (start) print; } \ /< $(@D)/EULA cd $(@D) && sh $(1) --force --auto-accept find $(@D)/$(basename $(notdir $(1))) -mindepth 1 -maxdepth 1 -exec mv {} $(@D) \; rmdir $(@D)/$(basename $(notdir $(1))) endef include $(sort $(wildcard package/freescale-imx/*/*.mk)) ================================================ FILE: package/freescale-imx/gpu-amd-bin-mx51/Config.in ================================================ 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 config BR2_PACKAGE_GPU_AMD_BIN_MX51 bool "gpu-amd-bin-mx51 (also imx53)" depends on BR2_ARM_EABI depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBGLES select BR2_PACKAGE_HAS_LIBOPENVG help Freescale libraries, headers and executables for the AMD GPU on i.MX5x, containing OpenGL/ES, OpenVG and EGL support. if BR2_PACKAGE_GPU_AMD_BIN_MX51 choice prompt "Output option" help There are two versions of this library: one for direct framebuffer access, one for X11 rendering. Choose here which version to install. config BR2_PACKAGE_GPU_AMD_BIN_MX51_OUTPUT_X11 bool "X11" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_LIBXCB select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXRENDER select BR2_PACKAGE_XLIB_LIBXDMCP select BR2_PACKAGE_XLIB_LIBXAU comment "X11 backend needs X.org enabled" depends on !BR2_PACKAGE_XORG7 config BR2_PACKAGE_GPU_AMD_BIN_MX51_OUTPUT_FB bool "Framebuffer" endchoice config BR2_PACKAGE_PROVIDES_LIBEGL default "gpu-amd-bin-mx51" config BR2_PACKAGE_PROVIDES_LIBGLES default "gpu-amd-bin-mx51" config BR2_PACKAGE_PROVIDES_LIBOPENVG default "gpu-amd-bin-mx51" config BR2_PACKAGE_GPU_AMD_BIN_MX51_EXAMPLES bool "install examples" help Copy the examples to the target. endif ================================================ FILE: package/freescale-imx/gpu-amd-bin-mx51/egl.pc ================================================ prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: egl Description: Freescale amd-gpu-bin-mx51 implementation of EGL Version: 7.11.0 Libs: -L${libdir} -lEGL Cflags: -I${includedir} ================================================ FILE: package/freescale-imx/gpu-amd-bin-mx51/glesv2.pc ================================================ prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: glesv2 Description: Freescale amd-gpu-bin-mx51 implementation of OpenGL ESv2 Version: 7.11.0 Libs: -L${libdir} -lGLESv2 Cflags: -I${includedir} ================================================ FILE: package/freescale-imx/gpu-amd-bin-mx51/gpu-amd-bin-mx51.hash ================================================ # locally computed sha256 c7a6fa03b7aa2a375556c59908876554ba720c1e744baba2debb84a408f790db amd-gpu-x11-bin-mx51-11.09.01.bin sha256 f0db68a764b5fb199729e7435f606b8d12b61ca97990336c647b7e81f4a584d9 amd-gpu-bin-mx51-11.09.01.bin ================================================ FILE: package/freescale-imx/gpu-amd-bin-mx51/gpu-amd-bin-mx51.mk ================================================ ################################################################################ # # gpu-amd-bin-mx51 # ################################################################################ GPU_AMD_BIN_MX51_SITE = $(FREESCALE_IMX_SITE) GPU_AMD_BIN_MX51_BASE_VERSION = 11.09.01 ifeq ($(BR2_PACKAGE_GPU_AMD_BIN_MX51_OUTPUT_FB),y) GPU_AMD_BIN_MX51_VERSION = $(GPU_AMD_BIN_MX51_BASE_VERSION)-fb GPU_AMD_BIN_MX51_SOURCE = amd-gpu-bin-mx51-$(GPU_AMD_BIN_MX51_BASE_VERSION).bin else GPU_AMD_BIN_MX51_VERSION = $(GPU_AMD_BIN_MX51_BASE_VERSION)-x11 GPU_AMD_BIN_MX51_SOURCE = amd-gpu-x11-bin-mx51-$(GPU_AMD_BIN_MX51_BASE_VERSION).bin GPU_AMD_BIN_MX51_DEPENDENCIES += libxcb xlib_libX11 xlib_libXext \ xlib_libXrender xlib_libXau xlib_libXdmcp endif GPU_AMD_BIN_MX51_PROVIDES = libegl libgles libopenvg GPU_AMD_BIN_MX51_INSTALL_STAGING = YES GPU_AMD_BIN_MX51_LICENSE = Freescale Semiconductor Software License Agreement GPU_AMD_BIN_MX51_LICENSE_FILES = EULA GPU_AMD_BIN_MX51_REDISTRIBUTE = NO define GPU_AMD_BIN_MX51_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(GPU_AMD_BIN_MX51_DL_DIR)/$(GPU_AMD_BIN_MX51_SOURCE)) endef # Upstream headers need to be compiled with -D_LINUX. It is more convenient # to rely on __linux__ which is defined in compiler itself define GPU_AMD_BIN_MX51_FIXUP_HEADERS $(SED) 's/_LINUX/__linux__/g' $(@D)/usr/include/*/*.h endef GPU_AMD_BIN_MX51_POST_PATCH_HOOKS += GPU_AMD_BIN_MX51_FIXUP_HEADERS # eglplatform_1.4.h contains X11 compatible headers ifeq ($(BR2_PACKAGE_GPU_AMD_BIN_MX51_OUTPUT_X11),y) define GPU_AMD_BIN_MX51_FIXUP_EGL_HEADERS mv $(STAGING_DIR)/usr/include/EGL/eglplatform_1.4.h $(STAGING_DIR)/usr/include/EGL/eglplatform.h endef endif define GPU_AMD_BIN_MX51_INSTALL_STAGING_CMDS $(INSTALL) -d $(STAGING_DIR)/usr/lib/pkgconfig $(INSTALL) -m 644 package/freescale-imx/gpu-amd-bin-mx51/*.pc $(STAGING_DIR)/usr/lib/pkgconfig/ $(INSTALL) -m 755 $(@D)/usr/lib/lib* $(STAGING_DIR)/usr/lib/ cp -r $(@D)/usr/include/* $(STAGING_DIR)/usr/include $(GPU_AMD_BIN_MX51_FIXUP_EGL_HEADERS) endef ifeq ($(BR2_PACKAGE_GPU_AMD_BIN_MX51_EXAMPLES),y) define GPU_AMD_BIN_MX51_INSTALL_EXAMPLES $(INSTALL) -d $(TARGET_DIR)/usr/share/examples/gpu_amd_samples $(INSTALL) -m 755 $(@D)/usr/bin/* $(TARGET_DIR)/usr/share/examples/gpu_amd_samples endef endif define GPU_AMD_BIN_MX51_INSTALL_TARGET_CMDS $(INSTALL) -m 755 $(@D)/usr/lib/lib*so* $(TARGET_DIR)/usr/lib/ $(GPU_AMD_BIN_MX51_INSTALL_EXAMPLES) endef define GPU_AMD_BIN_MX51_DEVICES /dev/gsl_kmod c 640 0 0 249 0 1 4 endef $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/gpu-amd-bin-mx51/vg.pc ================================================ prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: vg Description: Freescale amd-gpu-bin-mx51 implementation of OpenVG Version: 1.1 Libs: -L${libdir} -lOpenVG Cflags: -I${includedir}/ ================================================ FILE: package/freescale-imx/imx-alsa-plugins/Config.in ================================================ config BR2_PACKAGE_IMX_ALSA_PLUGINS bool "imx-alsa-plugins" depends on BR2_arm # Only relevant for i.MX depends on BR2_LINUX_KERNEL depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib select BR2_PACKAGE_ALSA_LIB help ALSA plugins specific for the Freescale i.MX platform. It requires a kernel that includes the i.MX specific headers to be built. The following plugins are provided so far: * Rate Converter Plugin Using Freescale ASRC Hardware Resampler (i.MX53 and most i.MX6) comment "imx-alsa-libs needs an imx-specific Linux kernel to be built" depends on BR2_arm depends on !BR2_LINUX_KERNEL comment "imx-alsa-libs needs a toolchain w/ threads" depends on BR2_arm depends on BR2_LINUX_KERNEL && !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/freescale-imx/imx-alsa-plugins/imx-alsa-plugins.hash ================================================ # Locally calculated: sha256 a9a5ef408a7329c2c5fa2a084ae7824afbfbebed68612bd72509488ccb0b94b3 imx-alsa-plugins-rel_imx_4.9.x_1.0.0_ga-br1.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING.GPL ================================================ FILE: package/freescale-imx/imx-alsa-plugins/imx-alsa-plugins.mk ================================================ ################################################################################ # # imx-alsa-plugins # ################################################################################ IMX_ALSA_PLUGINS_VERSION = rel_imx_4.9.x_1.0.0_ga IMX_ALSA_PLUGINS_SITE = https://source.codeaurora.org/external/imx/imx-alsa-plugins IMX_ALSA_PLUGINS_SITE_METHOD = git IMX_ALSA_PLUGINS_LICENSE = GPL-2.0+ IMX_ALSA_PLUGINS_LICENSE_FILES = COPYING.GPL IMX_ALSA_PLUGINS_DEPENDENCIES = host-pkgconf alsa-lib # git, no configure IMX_ALSA_PLUGINS_AUTORECONF = YES # needs access to imx-specific kernel headers IMX_ALSA_PLUGINS_DEPENDENCIES += linux IMX_ALSA_PLUGINS_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -idirafter $(LINUX_DIR)/include/uapi" $(eval $(autotools-package)) ================================================ FILE: package/freescale-imx/imx-codec/Config.in ================================================ config BR2_PACKAGE_IMX_CODEC bool "imx-codec" depends on BR2_arm || BR2_aarch64 # 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 || BR2_aarch64 depends on !BR2_TOOLCHAIN_USES_GLIBC ================================================ FILE: package/freescale-imx/imx-codec/imx-codec.hash ================================================ # locally computed sha256 6bb54f91c3ca18567e14d95d3858022dc9be00dc86e9edfdb544d1240a3b2b04 imx-codec-4.3.5.bin sha256 78696664f7afe7f2b081c99af60082d6403fab935b1b10056ed41aec123ff7fa COPYING sha256 fc93f26e4197b9240c327ce26ae6e02123f022423d4704c7b0448a37372cf2a2 EULA ================================================ FILE: package/freescale-imx/imx-codec/imx-codec.mk ================================================ ################################################################################ # # imx-codec # ################################################################################ IMX_CODEC_VERSION = 4.3.5 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-3-Clause (flac, ogg headers) IMX_CODEC_LICENSE_FILES = EULA COPYING IMX_CODEC_REDISTRIBUTE = NO ifeq ($(BR2_aarch64),y) IMX_CODEC_CONF_OPTS += --enable-armv8 endif 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,$(IMX_CODEC_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)) ================================================ FILE: package/freescale-imx/imx-gpu-g2d/Config.in ================================================ comment "imx-gpu-g2d needs a glibc toolchain with armhf enabled" depends on BR2_arm depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_ARM_EABIHF comment "imx-gpu-g2d needs a glibc toolchain" depends on BR2_aarch64 depends on !BR2_TOOLCHAIN_USES_GLIBC config BR2_PACKAGE_IMX_GPU_G2D bool "imx-gpu-g2d" # Pre-built binaries only available for ARM EABIhf depends on (BR2_arm && BR2_ARM_EABIHF) || BR2_aarch64 # Library binaries are linked against libc.so.6 depends on BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_IMX_GPU_VIV help Userspace 2D libraries for Vivante GPU on i.MX platforms. This library is provided by NXP as-is and doesn't have an upstream. if BR2_PACKAGE_IMX_GPU_G2D config BR2_PACKAGE_IMX_GPU_G2D_EXAMPLES bool "install examples" help Copy the Vivante G2D examples to the target. endif ================================================ FILE: package/freescale-imx/imx-gpu-g2d/imx-gpu-g2d.hash ================================================ # Locally calculated sha256 39fe307916e19a0892a514621121086e276a43858af90230372a1344852116a2 imx-gpu-g2d-6.4.3.p2.0-arm.bin sha256 2642a49e088daae4cf568a150d01e7c095995e8a6ff1883c02c3fa6d26d254b3 imx-gpu-g2d-6.4.3.p2.0-aarch64.bin sha256 ea58636bf34f589048fcd46e38497c47229fde8498df086ff5fb52f9ef8e15ee COPYING sha256 50099e283cfd307f84f159aeb1a6f462351320273dbcdb80d7f2c9db0494b71c EULA ================================================ FILE: package/freescale-imx/imx-gpu-g2d/imx-gpu-g2d.mk ================================================ ################################################################################ # # imx-gpu-g2d # ################################################################################ ifeq ($(BR2_aarch64),y) IMX_GPU_G2D_VERSION = 6.4.3.p2.0-aarch64 else IMX_GPU_G2D_VERSION = 6.4.3.p2.0-arm endif IMX_GPU_G2D_SITE = $(FREESCALE_IMX_SITE) IMX_GPU_G2D_SOURCE = imx-gpu-g2d-$(IMX_GPU_G2D_VERSION).bin IMX_GPU_G2D_DEPENDENCIES = imx-gpu-viv IMX_GPU_G2D_INSTALL_STAGING = YES IMX_GPU_G2D_LICENSE = NXP Semiconductor Software License Agreement IMX_GPU_G2D_LICENSE_FILES = EULA COPYING IMX_GPU_G2D_REDISTRIBUTE = NO define IMX_GPU_G2D_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_GPU_G2D_DL_DIR)/$(IMX_GPU_G2D_SOURCE)) endef define IMX_GPU_G2D_INSTALL_STAGING_CMDS cp -a $(@D)/g2d/usr/* $(STAGING_DIR)/usr endef ifeq ($(BR2_PACKAGE_IMX_GPU_G2D_EXAMPLES),y) define IMX_GPU_G2D_INSTALL_EXAMPLES mkdir -p $(TARGET_DIR)/usr/share/examples/ cp -a $(@D)/gpu-demos/opt/* $(TARGET_DIR)/usr/share/examples/ endef endif define IMX_GPU_G2D_INSTALL_TARGET_CMDS $(IMX_GPU_G2D_INSTALL_EXAMPLES) cp -a $(@D)/g2d/usr/lib $(TARGET_DIR)/usr endef $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/imx-gpu-viv/Config.in ================================================ comment "imx-gpu-viv needs a glibc toolchain with armhf enabled" depends on BR2_arm depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_ARM_EABIHF comment "imx-gpu-viv needs a glibc toolchain" depends on BR2_aarch64 depends on !BR2_TOOLCHAIN_USES_GLIBC config BR2_PACKAGE_IMX_GPU_VIV bool "imx-gpu-viv" # Pre-built binaries only available for ARM EABIhf depends on (BR2_arm && BR2_ARM_EABIHF) || BR2_aarch64 # Library binaries are linked against libc.so.6 depends on BR2_TOOLCHAIN_USES_GLIBC # Library binaries are linked against libdrm.so.2, except framebuffer # output on ARM select BR2_PACKAGE_LIBDRM if !(BR2_arm && BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB) select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBGLES select BR2_PACKAGE_HAS_LIBOPENCL select BR2_PACKAGE_HAS_LIBOPENVG help Userspace libraries for Vivante GPU on i.MX platforms It contains libraries and headers for GLES, OpenCL, and OpenVG. It also contains a DRI plugin for X11. It also contains a plugin for DirectFB-1.4.0, but that doesn't work together with buildroot's DirectFB version. This library is provided by Freescale as-is and doesn't have an upstream. if BR2_PACKAGE_IMX_GPU_VIV choice prompt "Output option" help There are two versions of this library: one for direct framebuffer access, one for X11 rendering. Choose here which version to install. config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11 bool "X11" depends on BR2_PACKAGE_XORG7 # The i.MX8 blob doesn't support X11 output depends on !BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M select BR2_PACKAGE_XLIB_LIBXDAMAGE select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXFIXES comment "X11 backend needs Xorg package" depends on !BR2_PACKAGE_XORG7 depends on !BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB bool "Framebuffer" # The i.MX8 blob doesn't support FB output depends on !BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL bool "Wayland" select BR2_PACKAGE_WAYLAND select BR2_PACKAGE_HAS_LIBEGL_WAYLAND endchoice config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT string default "x11" if BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11 default "fb" if BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB default "wayland" if BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL config BR2_PACKAGE_PROVIDES_LIBEGL default "imx-gpu-viv" config BR2_PACKAGE_PROVIDES_LIBGLES default "imx-gpu-viv" config BR2_PACKAGE_PROVIDES_LIBOPENCL default "imx-gpu-viv" config BR2_PACKAGE_PROVIDES_LIBOPENVG default "imx-gpu-viv" config BR2_PACKAGE_IMX_GPU_VIV_EXAMPLES bool "install examples" # example binaries are linked against libstdc++.so.6 depends on BR2_INSTALL_LIBSTDCPP help Copy the Vivante examples to the target. Warning: examples take approximately 150 MB of disk space. comment "imx-gpu-viv-examples need a toolchain w/ C++ support" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_IMX_GPU_VIV_GMEM_INFO bool "install gmem_info tool" help Copy the gmem_info tool to the target which provides information about GPU memory consumption. endif ================================================ FILE: package/freescale-imx/imx-gpu-viv/imx-gpu-viv.hash ================================================ # Locally calculated sha256 1324b1aaf190110b80ad9a6f6533f4f50dce9e9ab8d49d8503f59764b151d219 imx-gpu-viv-6.4.3.p2.0-aarch32.bin sha256 003c30baefb1655790b475c3cdfa5cefbf81ea89ef37c6649b64f151dd23a52e imx-gpu-viv-6.4.3.p2.0-aarch64.bin sha256 ea58636bf34f589048fcd46e38497c47229fde8498df086ff5fb52f9ef8e15ee COPYING sha256 50099e283cfd307f84f159aeb1a6f462351320273dbcdb80d7f2c9db0494b71c EULA ================================================ FILE: package/freescale-imx/imx-gpu-viv/imx-gpu-viv.mk ================================================ ################################################################################ # # imx-gpu-viv # ################################################################################ ifeq ($(BR2_aarch64),y) IMX_GPU_VIV_VERSION = 6.4.3.p2.0-aarch64 else IMX_GPU_VIV_VERSION = 6.4.3.p2.0-aarch32 endif 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 = NXP Semiconductor Software License Agreement IMX_GPU_VIV_LICENSE_FILES = EULA COPYING IMX_GPU_VIV_REDISTRIBUTE = NO IMX_GPU_VIV_PROVIDES = libegl libgles libopencl libopenvg IMX_GPU_VIV_LIB_TARGET = $(call qstrip,$(BR2_PACKAGE_IMX_GPU_VIV_OUTPUT)) ifeq ($(IMX_GPU_VIV_LIB_TARGET),x11) # The libGAL.so library provided by imx-gpu-viv uses X functions. Packages # may want to link against libGAL.so (QT5 Base with OpenGL and X support # does so). For this to work we need build dependencies to libXdamage, # libXext and libXfixes so that X functions used in libGAL.so are referenced. IMX_GPU_VIV_DEPENDENCIES += xlib_libXdamage xlib_libXext xlib_libXfixes endif # Libraries are linked against libdrm, except framebuffer output on ARM ifneq ($(IMX_GPU_VIV_LIB_TARGET)$(BR2_arm),fby) IMX_GPU_VIV_DEPENDENCIES += libdrm endif ifeq ($(IMX_GPU_VIV_LIB_TARGET),wayland) IMX_GPU_VIV_DEPENDENCIES += wayland endif define IMX_GPU_VIV_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_GPU_VIV_DL_DIR)/$(IMX_GPU_VIV_SOURCE)) endef ifeq ($(IMX_GPU_VIV_LIB_TARGET),fb) define IMX_GPU_VIV_FIXUP_PKGCONFIG ln -sf egl_linuxfb.pc $(@D)/gpu-core/usr/lib/pkgconfig/egl.pc endef else ifeq ($(IMX_GPU_VIV_LIB_TARGET),wayland) define IMX_GPU_VIV_FIXUP_PKGCONFIG ln -sf egl_wayland.pc $(@D)/gpu-core/usr/lib/pkgconfig/egl.pc endef else ifeq ($(IMX_GPU_VIV_LIB_TARGET),x11) define IMX_GPU_VIV_FIXUP_PKGCONFIG $(foreach lib,egl gbm glesv1_cm glesv2 vg, \ ln -sf $(lib)_x11.pc $(@D)/gpu-core/usr/lib/pkgconfig/$(lib).pc ) endef endif # Instead of building, we fix up the inconsistencies that exist # in the upstream archive here. We also remove unused backend files. # Make sure these commands are idempotent. define IMX_GPU_VIV_BUILD_CMDS cp -dpfr $(@D)/gpu-core/usr/lib/$(IMX_GPU_VIV_LIB_TARGET)/* $(@D)/gpu-core/usr/lib/ $(foreach backend,fb x11 wayland, \ $(RM) -r $(@D)/gpu-core/usr/lib/$(backend) ) $(IMX_GPU_VIV_FIXUP_PKGCONFIG) endef define IMX_GPU_VIV_INSTALL_STAGING_CMDS cp -r $(@D)/gpu-core/usr/* $(STAGING_DIR)/usr endef ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_EXAMPLES),y) define IMX_GPU_VIV_INSTALL_EXAMPLES mkdir -p $(TARGET_DIR)/usr/share/examples/ cp -r $(@D)/gpu-demos/opt/* $(TARGET_DIR)/usr/share/examples/ endef endif ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_GMEM_INFO),y) define IMX_GPU_VIV_INSTALL_GMEM_INFO cp -dpfr $(@D)/gpu-tools/gmem-info/usr/bin/* $(TARGET_DIR)/usr/bin/ endef endif define IMX_GPU_VIV_INSTALL_TARGET_CMDS $(IMX_GPU_VIV_INSTALL_EXAMPLES) $(IMX_GPU_VIV_INSTALL_GMEM_INFO) cp -a $(@D)/gpu-core/usr/lib $(TARGET_DIR)/usr $(INSTALL) -D -m 0644 $(@D)/gpu-core/etc/Vivante.icd $(TARGET_DIR)/etc/OpenCL/vendors/Vivante.icd endef $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/imx-kobs/0001-Fix-musl-build.patch ================================================ [PATCH] Fix musl build Signed-off-by: Gary Bisson --- src/mtd.c | 1 + src/mtd.h | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/mtd.c b/src/mtd.c index 1edc441..6d2264c 100644 --- a/src/mtd.c +++ b/src/mtd.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include diff --git a/src/mtd.h b/src/mtd.h index bd21add..debfc84 100644 --- a/src/mtd.h +++ b/src/mtd.h @@ -31,6 +31,11 @@ #include "BootControlBlocks.h" #include "rom_nand_hamming_code_ecc.h" +// musl library doesn't define loff_t +#if !defined(__GLIBC__) && !defined(__UCLIBC__) +#define loff_t off_t +#endif + //------------------------------------------------------------------------------ // Re-definitions of true and false, because the standard ones aren't good // enough? -- 2.5.1 ================================================ FILE: package/freescale-imx/imx-kobs/0002-Fix-build-for-recent-toolchains.patch ================================================ [PATCH] Fix build for recent toolchains Starting with Linux 4.4 headers, mtd-user.h isn't including stdint.h anymore which breaks the build. Signed-off-by: Gary Bisson --- src/BootControlBlocks.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/BootControlBlocks.h b/src/BootControlBlocks.h index 192eb61..aacdb64 100644 --- a/src/BootControlBlocks.h +++ b/src/BootControlBlocks.h @@ -20,6 +20,8 @@ #ifndef BOOTCONTROLBLOCKS_H_ #define BOOTCONTROLBLOCKS_H_ +#include + #define NCB_FINGERPRINT1 0x504d5453 //!< 'STMP' #define NCB_FINGERPRINT2 0x2042434e //!< 'NCB' - NAND Control Block #define NCB_FINGERPRINT3 0x4e494252 //!< 'RBIN' - ROM Boot Image Block - N -- 2.6.4 ================================================ FILE: package/freescale-imx/imx-kobs/Config.in ================================================ config BR2_PACKAGE_IMX_KOBS bool "imx-kobs" depends on BR2_arm # Only relevant for i.MX help The imx-kobs tool is used for writing images to NAND on i.MX platforms. This library is provided by Freescale as-is and doesn't have an upstream. ================================================ FILE: package/freescale-imx/imx-kobs/imx-kobs.hash ================================================ # Locally computed sha256 5855c8964f908ad30e5d4500180ee57c51af68186289ef1bdf8553ee60d3b1f5 imx-kobs-a0e9adce2fb7fcd57e794d7f9a5deba0f94f521b.tar.gz sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/freescale-imx/imx-kobs/imx-kobs.mk ================================================ ################################################################################ # # imx-kobs # ################################################################################ IMX_KOBS_VERSION = a0e9adce2fb7fcd57e794d7f9a5deba0f94f521b IMX_KOBS_SITE = $(call github,codeauroraforum,imx-kobs,$(IMX_KOBS_VERSION)) IMX_KOBS_LICENSE = GPL-2.0+ IMX_KOBS_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/freescale-imx/imx-lib/Config.in ================================================ comment "imx-lib needs an imx-specific Linux kernel to be built" depends on BR2_arm && !BR2_LINUX_KERNEL config BR2_PACKAGE_IMX_LIB bool "imx-lib" depends on BR2_LINUX_KERNEL depends on BR2_arm # Only relevant for i.MX help Library of userspace helpers specific for the Freescale i.MX platform. It wraps the kernel interfaces for some i.MX platform specific drivers. It requires a kernel that includes the i.MX specific headers to be built. This library is provided by Freescale as-is and doesn't have an upstream. ================================================ FILE: package/freescale-imx/imx-lib/imx-lib.hash ================================================ # locally computed sha256 cad7823568cbd367ed8525e01c8c11a2393fc2dc481425273cb7919385367c61 imx-lib-3f777974c0c146817e2ff5cb0340ca66a1f99e57-br1.tar.gz sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING-LGPL-2.1 ================================================ FILE: package/freescale-imx/imx-lib/imx-lib.mk ================================================ ################################################################################ # # imx-lib # ################################################################################ IMX_LIB_VERSION = 3f777974c0c146817e2ff5cb0340ca66a1f99e57 IMX_LIB_SITE = https://source.codeaurora.org/external/imx/imx-lib IMX_LIB_SITE_METHOD = git IMX_LIB_LICENSE = LGPL-2.1+ IMX_LIB_LICENSE_FILES = COPYING-LGPL-2.1 IMX_LIB_INSTALL_STAGING = YES # imx-lib needs access to imx-specific kernel headers IMX_LIB_DEPENDENCIES += linux IMX_LIB_INCLUDE = \ -idirafter $(LINUX_DIR)/include/uapi IMX_LIB_MAKE_ENV = \ $(TARGET_MAKE_ENV) \ $(TARGET_CONFIGURE_OPTS) \ CROSS_COMPILE="$(TARGET_CROSS)" \ PLATFORM=$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM) \ INCLUDE="$(IMX_LIB_INCLUDE)" define IMX_LIB_BUILD_CMDS $(IMX_LIB_MAKE_ENV) $(MAKE1) -C $(@D) endef define IMX_LIB_INSTALL_STAGING_CMDS $(IMX_LIB_MAKE_ENV) $(MAKE1) -C $(@D) DEST_DIR=$(STAGING_DIR) install endef define IMX_LIB_INSTALL_TARGET_CMDS $(IMX_LIB_MAKE_ENV) $(MAKE1) -C $(@D) DEST_DIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/imx-m4fwloader/Config.in ================================================ config BR2_PACKAGE_IMX_M4FWLOADER bool "imx-m4fwloader" depends on BR2_arm # Only relevant for i.MX help This package provides a tool to load a firmware to the Cortex-M4 core available in some i.MX processors. https://github.com/codeauroraforum/imx-m4fwloader ================================================ FILE: package/freescale-imx/imx-m4fwloader/imx-m4fwloader.hash ================================================ # Locally computed sha256 fb6334900972fe389e808845417dd9045fb0f7eb47952fc22a00f4cdaf94af1a imx-m4fwloader-8cf4d17a09ba23250d43381b49ba00d92406fad9.tar.gz sha256 c03cea027b4b40e4402fabd08557736727ec3d5bc54ad64ab6472de432198cad LICENSE ================================================ FILE: package/freescale-imx/imx-m4fwloader/imx-m4fwloader.mk ================================================ ################################################################################ # # imx-m4fwloader # ################################################################################ IMX_M4FWLOADER_VERSION = 8cf4d17a09ba23250d43381b49ba00d92406fad9 IMX_M4FWLOADER_SITE = $(call github,codeauroraforum,imx-m4fwloader,$(IMX_M4FWLOADER_VERSION)) IMX_M4FWLOADER_LICENSE = GPL-2.0+ IMX_M4FWLOADER_LICENSE_FILES = LICENSE define IMX_M4FWLOADER_BUILD_CMDS $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $(@D)/imx-m4fwloader \ $(@D)/m4fwloader.c endef define IMX_M4FWLOADER_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/imx-m4fwloader \ $(TARGET_DIR)/usr/sbin/imx-m4fwloader endef $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/imx-parser/Config.in ================================================ config BR2_PACKAGE_IMX_PARSER bool "imx-parser" depends on BR2_arm || BR2_aarch64 # 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. ================================================ FILE: package/freescale-imx/imx-parser/imx-parser.hash ================================================ # locally computed sha256 9cd8c49a0bb1050afcfbcc7a677a348443fda4ecacb621cc6e38897619e27c67 imx-parser-4.3.5.bin sha256 78696664f7afe7f2b081c99af60082d6403fab935b1b10056ed41aec123ff7fa COPYING sha256 fc93f26e4197b9240c327ce26ae6e02123f022423d4704c7b0448a37372cf2a2 EULA ================================================ FILE: package/freescale-imx/imx-parser/imx-parser.mk ================================================ ################################################################################ # # imx-parser # ################################################################################ IMX_PARSER_VERSION = 4.3.5 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_aarch64),y) IMX_PARSER_CONF_OPTS += --enable-armv8 endif 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,$(IMX_PARSER_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)) ================================================ FILE: package/freescale-imx/imx-sc-firmware/Config.in ================================================ config BR2_PACKAGE_IMX_SC_FIRMWARE bool "imx-sc-firmware" depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 || \ BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X help System Control Unit Firmware blobs for the Freescale i.MX8 SoCs. This library is provided by Freescale as-is and doesn't have an upstream. ================================================ FILE: package/freescale-imx/imx-sc-firmware/imx-sc-firmware.hash ================================================ # Locally calculated sha256 24a647237c0077ce0172563d67fcbc5e8f231bad7cf55a2436848c89579c5a06 imx-sc-firmware-1.8.0.bin sha256 a07e8df685161553d7e0b78b8b93ebe9086d95bb8635abff0ed3247992181e85 EULA sha256 4f3cc2dcbe3b7369bd4a51df749f432b69d8189fc2bde88f9fadbec73c686683 COPYING ================================================ FILE: package/freescale-imx/imx-sc-firmware/imx-sc-firmware.mk ================================================ ################################################################################ # # imx-sc-firmware # ################################################################################ IMX_SC_FIRMWARE_VERSION = 1.8.0 IMX_SC_FIRMWARE_SITE = $(FREESCALE_IMX_SITE) IMX_SC_FIRMWARE_SOURCE = imx-sc-firmware-$(IMX_SC_FIRMWARE_VERSION).bin IMX_SC_FIRMWARE_LICENSE = NXP Semiconductor Software License Agreement IMX_SC_FIRMWARE_LICENSE_FILES = EULA COPYING IMX_SC_FIRMWARE_REDISTRIBUTE = NO define IMX_SC_FIRMWARE_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_SC_FIRMWARE_DL_DIR)/$(IMX_SC_FIRMWARE_SOURCE)) endef IMX_SC_FIRMWARE_INSTALL_IMAGES = YES # SCFW firmware is needed when generating imx8-boot-sd.bin which is # done in post-image script. ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y) define IMX_SC_FIRMWARE_INSTALL_IMAGES_CMDS cp $(@D)/mx8qx-mek-scfw-tcm.bin $(BINARIES_DIR)/mx8qx-mek-scfw-tcm.bin cp $(@D)/mx8qx-val-scfw-tcm.bin $(BINARIES_DIR)/mx8qx-val-scfw-tcm.bin endef else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8),y) define IMX_SC_FIRMWARE_INSTALL_IMAGES_CMDS cp $(@D)/mx8qm-*-scfw-tcm.bin $(BINARIES_DIR)/ endef endif $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/imx-seco/Config.in ================================================ config BR2_PACKAGE_IMX_SECO bool "imx-seco" depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 || \ BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X help Firmware file for the i.MX8 and i.MX8X Security Controller. This library is provided by Freescale as-is and doesn't have an upstream. if BR2_PACKAGE_IMX_SECO choice prompt "i.MX Seco Firmware Release" default BR2_PACKAGE_IMX_SECO_MX8QMB0 if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 default BR2_PACKAGE_IMX_SECO_MX8QXC0 if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X help Select the appropriate ahab container image to install to match the iMX asics revision. Note - mismatches result in a failure to boot config BR2_PACKAGE_IMX_SECO_MX8DXLA0 bool "imx-seco-mx8dxla0" depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 config BR2_PACKAGE_IMX_SECO_MX8DXLA1 bool "imx-seco-mx8dxla1" depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 config BR2_PACKAGE_IMX_SECO_MX8QMB0 bool "imx-seco-mx8qmb0" depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 config BR2_PACKAGE_IMX_SECO_MX8QXB0 bool "imx-seco-mx8qxb0" depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X config BR2_PACKAGE_IMX_SECO_MX8QXC0 bool "imx-seco-mx8qxc0" depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X endchoice config BR2_PACKAGE_IMX_SECO_AHAB_CONTAINER_IMAGE string default "mx8dxla0-ahab-container.img" if BR2_PACKAGE_IMX_SECO_MX8DXLA0 default "mx8dxla1-ahab-container.img" if BR2_PACKAGE_IMX_SECO_MX8DXLA1 default "mx8qmb0-ahab-container.img" if BR2_PACKAGE_IMX_SECO_MX8QMB0 default "mx8qxb0-ahab-container.img" if BR2_PACKAGE_IMX_SECO_MX8QXB0 default "mx8qxc0-ahab-container.img" if BR2_PACKAGE_IMX_SECO_MX8QXC0 endif ================================================ FILE: package/freescale-imx/imx-seco/imx-seco.hash ================================================ # Locally calculated sha256 08cf25a4be6841ca7264a50b29c311b386eae1c02fced8a3b55fd04213acb4bc imx-seco-3.7.5.bin sha256 72edc2072c86d93aa1993d15d4d19d96270af3749b0108995ad50c81d1461f52 EULA sha256 9c16421e7c702f56756650b8ac954d34556327e598a8666e6e8f4eb3a1aa95f1 COPYING ================================================ FILE: package/freescale-imx/imx-seco/imx-seco.mk ================================================ ################################################################################ # # imx-seco # ################################################################################ IMX_SECO_VERSION = 3.7.5 IMX_SECO_SITE = $(FREESCALE_IMX_SITE) IMX_SECO_SOURCE = imx-seco-$(IMX_SECO_VERSION).bin IMX_SECO_LICENSE = NXP Semiconductor Software License Agreement IMX_SECO_LICENSE_FILES = EULA COPYING IMX_SECO_REDISTRIBUTE = NO define IMX_SECO_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_SECO_DL_DIR)/$(IMX_SECO_SOURCE)) endef IMX_SECO_INSTALL_IMAGES = YES # SECO firmware is needed when generating imx8-boot-sd.bin which # is done in post-image script. IMX_SECO_AHAB_CONTAINER_IMAGE = $(call qstrip,$(BR2_PACKAGE_IMX_SECO_AHAB_CONTAINER_IMAGE)) define IMX_SECO_INSTALL_IMAGES_CMDS cp $(@D)/firmware/seco/$(IMX_SECO_AHAB_CONTAINER_IMAGE) \ $(BINARIES_DIR)/ahab-container.img endef $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/imx-uuc/Config.in ================================================ config BR2_PACKAGE_IMX_UUC bool "imx-uuc" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 # usb_functionfs_descs_head_v2 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, headers >= 3.18" depends on BR2_arm depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 ================================================ FILE: package/freescale-imx/imx-uuc/S80imx-uuc ================================================ #!/bin/sh NAME=uuc DAEMON=/usr/bin/$NAME case "$1" in start) printf "Starting $NAME: " start-stop-daemon -S -q -b -m -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 $? ================================================ FILE: package/freescale-imx/imx-uuc/imx-uuc.hash ================================================ # Locally computed sha256 7f4d4838d4bf489932ef4a242677db30ad8d9ffd76065e07f4ddee3e6c35db82 imx-uuc-d6afb27e55d73d7ad08cd2dd51c784d8ec9694dc.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/freescale-imx/imx-uuc/imx-uuc.mk ================================================ ################################################################################ # # imx-uuc # ################################################################################ IMX_UUC_VERSION = d6afb27e55d73d7ad08cd2dd51c784d8ec9694dc IMX_UUC_SITE = $(call github,NXPmicro,imx-uuc,$(IMX_UUC_VERSION)) IMX_UUC_LICENSE = GPL-2.0+ 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) $(TARGET_CONFIGURE_OPTS) 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 $(INSTALL) -D -m 755 $(@D)/ufb $(TARGET_DIR)/usr/bin/ufb dd if=/dev/zero of=$(TARGET_DIR)/fat bs=1M count=1 $(HOST_DIR)/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 endef $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/imx-uuc/imx-uuc.service ================================================ [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 ================================================ FILE: package/freescale-imx/imx-vpu/Config.in ================================================ comment "imx-vpu needs an i.MX platform with VPU support" depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU config BR2_PACKAGE_IMX_VPU bool "imx-vpu" depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU select BR2_PACKAGE_FIRMWARE_IMX help Library of userspace helpers specific for the NXP i.MX SoC integrating a Chips&Media CODA Video Processing Unit (VPU) such as the i.MX27/i.MX5x/i.MX6x. This library is provided by NXP as-is and doesn't have an upstream. ================================================ FILE: package/freescale-imx/imx-vpu/imx-vpu.hash ================================================ # Locally computed sha256 87cb799a57df654db29403cb74a75ca5185a1517022d3a4a16b8d69056c36127 imx-vpu-5.4.39.3.bin sha256 2ceab29de5ea533b86f570bcc4e9ddbfb5fe85a1da4978a8613ff3fd9bed781d COPYING sha256 7ffad92e72e5f6b23027e7cf93a770a4acef00a92dcf79f22701ed401c5478c0 EULA ================================================ FILE: package/freescale-imx/imx-vpu/imx-vpu.mk ================================================ ################################################################################ # # imx-vpu # ################################################################################ IMX_VPU_VERSION = 5.4.39.3 IMX_VPU_SITE = $(FREESCALE_IMX_SITE) IMX_VPU_SOURCE = imx-vpu-$(IMX_VPU_VERSION).bin IMX_VPU_INSTALL_STAGING = YES IMX_VPU_MAKE_ENV = \ $(TARGET_MAKE_ENV) \ $(TARGET_CONFIGURE_OPTS) \ CROSS_COMPILE="$(TARGET_CROSS)" \ PLATFORM=$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM) IMX_VPU_LICENSE = NXP Semiconductor Software License Agreement IMX_VPU_LICENSE_FILES = EULA COPYING IMX_VPU_REDISTRIBUTE = NO define IMX_VPU_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_VPU_DL_DIR)/$(IMX_VPU_SOURCE)) endef define IMX_VPU_BUILD_CMDS $(IMX_VPU_MAKE_ENV) $(MAKE1) -C $(@D) endef define IMX_VPU_INSTALL_STAGING_CMDS $(IMX_VPU_MAKE_ENV) $(MAKE1) -C $(@D) DEST_DIR=$(STAGING_DIR) install endef define IMX_VPU_INSTALL_TARGET_CMDS $(IMX_VPU_MAKE_ENV) $(MAKE1) -C $(@D) DEST_DIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/imx-vpu-hantro/0001-Fix-ion.h-header-inclusion-to-be-standard.patch ================================================ From dfe8ef9123936d2c1d5da34f63f661849171d5ef Mon Sep 17 00:00:00 2001 From: Gary Bisson Date: Sun, 3 Oct 2021 16:39:29 -0700 Subject: [PATCH] Fix ion.h header inclusion to be standard NXP "solution" was to manually copy the header to include/linux. Let's point the Makefile to the proper (mainline) location instead: https://elixir.bootlin.com/linux/v4.17/source/drivers/staging/android/uapi/ion.h Signed-off-by: Gary Bisson Signed-off-by: Chris Dimich --- Makefile_G1G2 | 4 ++-- Makefile_H1 | 4 ++-- decoder_sw/software/linux/dwl/dwl_linux.c | 2 +- h1_encoder/software/linux_reference/ewl/ewl_x280_common.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Makefile_G1G2 b/Makefile_G1G2 index 8f83391..25884fa 100755 --- a/Makefile_G1G2 +++ b/Makefile_G1G2 @@ -10,8 +10,8 @@ INCLUDE_HEADERS = -I./decoder_sw -I$(SOURCE_ROOT)/source/inc -I$(SOURCE_ROOT)/so INCLUDE_HEADERS += -I$(SOURCE_ROOT)/linux/memalloc #INCLUDE_HEADERS += -I$(SOURCE_ROOT)/linux/ldriver -#INCLUDE_HEADERS += -I$(LINUX_KERNEL_ROOT)/include/uapi -I$(LINUX_KERNEL_ROOT)/include -INCLUDE_HEADERS += -I$(SDKTARGETSYSROOT)/usr/include/imx +INCLUDE_HEADERS += -I$(LINUX_KERNEL_ROOT)/include/uapi -I$(LINUX_KERNEL_ROOT)/include +INCLUDE_HEADERS += -I$(LINUX_KERNEL_ROOT)/drivers/staging/android/uapi CFLAGS += -DDEC_MODULE_PATH=\"/dev/mxc_hantro\" -DUSE_FAKE_RFC_TABLE -DFIFO_DATATYPE=void* -DNDEBUG -DDOWN_SCALER \ -DUSE_EXTERNAL_BUFFER -DUSE_FAST_EC -DUSE_VP9_EC -DGET_FREE_BUFFER_NON_BLOCK \ diff --git a/Makefile_H1 b/Makefile_H1 index 0979571..479940a 100755 --- a/Makefile_H1 +++ b/Makefile_H1 @@ -17,8 +17,8 @@ ENV = -DENC_MODULE_PATH=\\\"/dev/mxc_hantro_h1\\\" #ENV += -DSDRAM_LM_BASE=0x00000000 ENV += -DEWL_NO_HW_TIMEOUT ENV += -DUSE_ION -#ENV += -I$(LINUX_KERNEL_ROOT)/include/uapi -I$(LINUX_KERNEL_ROOT)/include -ENV += -I$(SDKTARGETSYSROOT)/usr/include/imx +ENV += -I$(LINUX_KERNEL_ROOT)/include/uapi -I$(LINUX_KERNEL_ROOT)/include +ENV += -I$(LINUX_KERNEL_ROOT)/drivers/staging/android/uapi ifeq ($(CFG_SECURE_DATA_PATH), y) ENV += -DCFG_SECURE_DATA_PATH diff --git a/decoder_sw/software/linux/dwl/dwl_linux.c b/decoder_sw/software/linux/dwl/dwl_linux.c index 7d5e33b..c0e5727 100755 --- a/decoder_sw/software/linux/dwl/dwl_linux.c +++ b/decoder_sw/software/linux/dwl/dwl_linux.c @@ -50,7 +50,7 @@ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0) #include #else -#include +#include #endif #ifdef ANDROID #include diff --git a/h1_encoder/software/linux_reference/ewl/ewl_x280_common.c b/h1_encoder/software/linux_reference/ewl/ewl_x280_common.c index 312e4cc..70630c3 100755 --- a/h1_encoder/software/linux_reference/ewl/ewl_x280_common.c +++ b/h1_encoder/software/linux_reference/ewl/ewl_x280_common.c @@ -52,7 +52,7 @@ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0) #include #else -#include +#include #endif #include #include -- 2.31.1 ================================================ FILE: package/freescale-imx/imx-vpu-hantro/0002-Fix-build-with-uclibc-toolchain.patch ================================================ From 4f51b0a6b9a36cc56fa06eb0f76596d8e387f980 Mon Sep 17 00:00:00 2001 From: Gary Bisson Date: Fri, 27 Mar 2020 23:17:30 +0100 Subject: [PATCH] Fix build with uclibc toolchain From: Laurent Gauthier (OSS) By default, backtrace support is disabled in uclibc. In that case the execinfo.h header file is missing, producing a build error. Signed-off-by: Laurent Gauthier (OSS) Signed-off-by: Gary Bisson --- openmax_il/source/dbgmacros.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/openmax_il/source/dbgmacros.h b/openmax_il/source/dbgmacros.h index 3771c91..37ae09f 100755 --- a/openmax_il/source/dbgmacros.h +++ b/openmax_il/source/dbgmacros.h @@ -50,13 +50,6 @@ # define __USE_GNU #endif -#ifndef ANDROID -#include -#include -#endif -#include -#include - /***************** ** DEBUG FLAGS ** *****************/ @@ -76,6 +69,13 @@ #define TRACE_FILE "trace.log" #endif +#ifndef ANDROID +#include +#include +#endif +#include +#include + #ifdef LOG_IN_FILE #define TRACE(...) \ { \ -- 2.25.1 ================================================ FILE: package/freescale-imx/imx-vpu-hantro/Config.in ================================================ comment "imx-vpu-hantro needs an i.MX-specific Linux kernel to be built" depends on !BR2_LINUX_KERNEL comment "imx-vpu-hantro needs an i.MX platform with Hantro VPU" depends on BR2_LINUX_KERNEL depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO config BR2_PACKAGE_IMX_VPU_HANTRO bool "imx-vpu-hantro" depends on BR2_LINUX_KERNEL depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO help Library of userspace helpers specific for the NXP i.MX SoC integrating a Hantro Video Processing Unit (VPU) such as the i.MX8MQ/i.MX8MM. It requires a kernel that includes the i.MX specific headers to be built. This library is provided by NXP as-is and doesn't have an upstream. ================================================ FILE: package/freescale-imx/imx-vpu-hantro/imx-vpu-hantro.hash ================================================ # Locally computed: sha256 03c61dfb268b31a0d25a4d1387cb3ad0261029ad5de801f72224602e2b37da00 imx-vpu-hantro-1.22.0.bin sha256 ea58636bf34f589048fcd46e38497c47229fde8498df086ff5fb52f9ef8e15ee COPYING sha256 50099e283cfd307f84f159aeb1a6f462351320273dbcdb80d7f2c9db0494b71c EULA ================================================ FILE: package/freescale-imx/imx-vpu-hantro/imx-vpu-hantro.mk ================================================ ################################################################################ # # imx-vpu-hantro # ################################################################################ IMX_VPU_HANTRO_VERSION = 1.22.0 IMX_VPU_HANTRO_SITE = $(FREESCALE_IMX_SITE) IMX_VPU_HANTRO_SOURCE = imx-vpu-hantro-$(IMX_VPU_HANTRO_VERSION).bin IMX_VPU_HANTRO_DEPENDENCIES = linux IMX_VPU_HANTRO_INSTALL_STAGING = YES IMX_VPU_HANTRO_MAKE_ENV = \ $(TARGET_MAKE_ENV) \ $(TARGET_CONFIGURE_OPTS) \ CROSS_COMPILE="$(TARGET_CROSS)" \ SDKTARGETSYSROOT=$(STAGING_DIR) \ LINUX_KERNEL_ROOT=$(LINUX_DIR) \ PLATFORM=$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM) IMX_VPU_HANTRO_LICENSE = NXP Semiconductor Software License Agreement IMX_VPU_HANTRO_LICENSE_FILES = EULA COPYING IMX_VPU_HANTRO_REDISTRIBUTE = NO define IMX_VPU_HANTRO_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_VPU_HANTRO_DL_DIR)/$(IMX_VPU_HANTRO_SOURCE)) endef define IMX_VPU_HANTRO_BUILD_CMDS $(IMX_VPU_HANTRO_MAKE_ENV) $(MAKE1) -C $(@D) endef define IMX_VPU_HANTRO_INSTALL_STAGING_CMDS $(IMX_VPU_HANTRO_MAKE_ENV) $(MAKE1) -C $(@D) \ DEST_DIR=$(STAGING_DIR) libdir=/usr/lib install endef define IMX_VPU_HANTRO_INSTALL_TARGET_CMDS $(IMX_VPU_HANTRO_MAKE_ENV) $(MAKE1) -C $(@D) \ DEST_DIR=$(TARGET_DIR) libdir=/usr/lib install endef $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/imx-vpu-hantro-vc/Config.in ================================================ comment "imx-vpu-hantro-vc needs an i.MX-specific Linux kernel to be built" depends on !BR2_LINUX_KERNEL comment "imx-vpu-hantro-vc needs an i.MX platform with Hantro VPU" depends on BR2_LINUX_KERNEL depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO config BR2_PACKAGE_IMX_VPU_HANTRO_VC bool "imx-vpu-hantro-vc" depends on BR2_LINUX_KERNEL depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO help i.MX VC8000E Encoder library. Intended for the i.MX 8M Plus processor. ================================================ FILE: package/freescale-imx/imx-vpu-hantro-vc/imx-vpu-hantro-vc.hash ================================================ # Locally computed: sha256 d5efae484c4271c098286d007590d6bf40c272d4f35702ff65625f2362715ab3 imx-vpu-hantro-vc-1.4.0.bin sha256 ea58636bf34f589048fcd46e38497c47229fde8498df086ff5fb52f9ef8e15ee COPYING sha256 50099e283cfd307f84f159aeb1a6f462351320273dbcdb80d7f2c9db0494b71c EULA ================================================ FILE: package/freescale-imx/imx-vpu-hantro-vc/imx-vpu-hantro-vc.mk ================================================ ################################################################################ # # imx-vpu-hantro-vc # ################################################################################ IMX_VPU_HANTRO_VC_VERSION = 1.4.0 IMX_VPU_HANTRO_VC_SITE = $(FREESCALE_IMX_SITE) IMX_VPU_HANTRO_VC_SOURCE = imx-vpu-hantro-vc-$(IMX_VPU_HANTRO_VC_VERSION).bin IMX_VPU_HANTRO_VC_DEPENDENCIES = linux IMX_VPU_HANTRO_VC_LICENSE = NXP Semiconductor Software License Agreement IMX_VPU_HANTRO_VC_LICENSE_FILES = EULA COPYING IMX_VPU_HANTRO_VC_REDISTRIBUTE = NO define IMX_VPU_HANTRO_VC_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_VPU_HANTRO_VC_DL_DIR)/$(IMX_VPU_HANTRO_VC_SOURCE)) endef define IMX_VPU_HANTRO_VC_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/usr/lib/libhantro_vc8000e.so $(TARGET_DIR)/usr/lib/libhantro_vc8000e.so $(INSTALL) -D -m 0755 $(@D)/usr/lib/libhantro_vc8000e.so.1 $(TARGET_DIR)/usr/lib/libhantro_vc8000e.so.1 endef $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/imx-vpuwrap/Config.in ================================================ comment "imx-vpuwrap needs an imx-specific Linux kernel to be built" depends on !BR2_LINUX_KERNEL comment "imx-vpuwrap needs an i.MX platform with VPU support" depends on BR2_LINUX_KERNEL depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU && !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO config BR2_PACKAGE_IMX_VPUWRAP bool "imx-vpuwrap" depends on BR2_LINUX_KERNEL depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU || BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO select BR2_PACKAGE_IMX_VPU if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU select BR2_PACKAGE_IMX_VPU_HANTRO if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO 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. ================================================ FILE: package/freescale-imx/imx-vpuwrap/imx-vpuwrap.hash ================================================ # locally computed sha256 5c08b4b7c771404c998779f0e27a75564b57958d463e2df152c910d76cca9e44 imx-vpuwrap-4.3.5.bin sha256 78696664f7afe7f2b081c99af60082d6403fab935b1b10056ed41aec123ff7fa COPYING sha256 fc93f26e4197b9240c327ce26ae6e02123f022423d4704c7b0448a37372cf2a2 EULA ================================================ FILE: package/freescale-imx/imx-vpuwrap/imx-vpuwrap.mk ================================================ ################################################################################ # # imx-vpuwrap # ################################################################################ IMX_VPUWRAP_VERSION = 4.3.5 IMX_VPUWRAP_SITE = $(FREESCALE_IMX_SITE) IMX_VPUWRAP_SOURCE = imx-vpuwrap-$(IMX_VPUWRAP_VERSION).bin IMX_VPUWRAP_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_IMX_VPU),y) IMX_VPUWRAP_DEPENDENCIES += imx-vpu endif ifeq ($(BR2_PACKAGE_IMX_VPU_HANTRO),y) IMX_VPUWRAP_DEPENDENCIES += imx-vpu-hantro endif 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,$(IMX_VPUWRAP_DL_DIR)/$(IMX_VPUWRAP_SOURCE)) endef $(eval $(autotools-package)) ================================================ FILE: package/freescale-imx/kernel-module-imx-gpu-viv/Config.in ================================================ comment "kernel-module-imx-gpu-viv needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV bool "kernel-module-imx-gpu-viv" depends on BR2_LINUX_KERNEL help Kernel loadable module for Vivante GPU. This package uses an exact copy of the GPU kernel driver source code of the same version as base and include fixes and improvements developed by FSL Community. This module is only meant for NXP-based kernel. https://github.com/Freescale/kernel-module-imx-gpu-viv ================================================ FILE: package/freescale-imx/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv.hash ================================================ # locally computed sha256 257c6cd8b01cfb6543827cbeb78409e6a2ad4ae321891751dcea1abc47d89379 kernel-module-imx-gpu-viv-ae0f3be0b7240f11cca191a3e2bdd4a445ee46e5.tar.gz sha256 b499eddebda05a8859e32b820a64577d91f1de2b52efa2a1575a2cb4000bc259 COPYING ================================================ FILE: package/freescale-imx/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv.mk ================================================ ################################################################################ # # kernel-module-imx-gpu-viv # ################################################################################ KERNEL_MODULE_IMX_GPU_VIV_VERSION = ae0f3be0b7240f11cca191a3e2bdd4a445ee46e5 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 = GPL-2.0 KERNEL_MODULE_IMX_GPU_VIV_LICENSE_FILES = COPYING KERNEL_MODULE_IMX_GPU_VIV_MODULE_MAKE_OPTS = \ AQROOT=$(@D)/kernel-module-imx-gpu-viv-src \ KERNEL_DIR=$(LINUX_DIR) KERNEL_MODULE_IMX_GPU_VIV_MODULE_SUBDIRS = kernel-module-imx-gpu-viv-src define KERNEL_MODULE_IMX_GPU_VIV_LINUX_CONFIG_FIXUPS $(call KCONFIG_DISABLE_OPT,CONFIG_MXC_GPU_VIV) endef $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/freescale-imx/libz160/Config.in ================================================ config BR2_PACKAGE_LIBZ160 bool "libz160" depends on BR2_ARM_EABI depends on BR2_TOOLCHAIN_USES_GLIBC help 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/ glibc" depends on !BR2_ARM_EABI || !BR2_TOOLCHAIN_USES_GLIBC ================================================ FILE: package/freescale-imx/libz160/libz160.hash ================================================ # locally computed sha256 08767eb269a0a30ca0aa3d3b5aa9a53a2d17ed1c24651b7e8cefc7704b883f19 libz160-bin-11.09.01.bin sha256 6d7a2fefc2f7ce888f9eb74919b852aed5a1087b2e84345be90cadbebe1b6578 EULA ================================================ FILE: package/freescale-imx/libz160/libz160.mk ================================================ ################################################################################ # # libz160 # ################################################################################ LIBZ160_VERSION = 11.09.01 LIBZ160_SOURCE = libz160-bin-$(LIBZ160_VERSION).bin LIBZ160_SITE = $(FREESCALE_IMX_SITE) LIBZ160_INSTALL_STAGING = YES # See freescale-imx LIBZ160_LICENSE = Freescale Semiconductor Software License Agreement LIBZ160_LICENSE_FILES = EULA LIBZ160_REDISTRIBUTE = NO define LIBZ160_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(LIBZ160_DL_DIR)/$(LIBZ160_SOURCE)) endef define LIBZ160_INSTALL_STAGING_CMDS $(INSTALL) -D -m 755 $(@D)/usr/lib/libz160.so $(STAGING_DIR)/usr/lib/libz160.so $(INSTALL) -D -m 644 $(@D)/usr/include/z160.h $(STAGING_DIR)/usr/include/z160.h endef define LIBZ160_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/usr/lib/libz160.so $(TARGET_DIR)/usr/lib/libz160.so endef $(eval $(generic-package)) ================================================ FILE: package/freeswitch/0001-src-mod-applications-mod_cv-mod_cv.cpp-fix-build-wit.patch ================================================ From 575409a14e62f73e83309daf8ff6642a235f250c Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 16 Oct 2020 23:06:36 +0200 Subject: [PATCH] src/mod/applications/mod_cv/mod_cv.cpp: fix build with opencv 3.4.9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use cvScalar instead of CV_RGB to avoid the following build failure with opencv 3.4.9: mod_cv.cpp:693:24: error: conversion from ‘cv::Scalar {aka cv::Scalar_}’ to non-scalar type ‘CvScalar’ requested CvScalar col = CV_RGB((float)255 * object_neighbors / max_neighbors, 0, 0); ^ Indeed, CV_RGB is defined as cv::Scalar instead of cvScalar since version 3.4.2 and https://github.com/opencv/opencv/commit/7f9253ea0a9fe2635926379420002dbf0c3fce0f It should be noted that CV_RGB(r,g,b) = cvScalar(b,g,r,0) Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/signalwire/freeswitch/pull/914] --- src/mod/applications/mod_cv/mod_cv.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/applications/mod_cv/mod_cv.cpp b/src/mod/applications/mod_cv/mod_cv.cpp index 582f925abf..bbec755e91 100644 --- a/src/mod/applications/mod_cv/mod_cv.cpp +++ b/src/mod/applications/mod_cv/mod_cv.cpp @@ -690,7 +690,7 @@ void detectAndDraw(cv_context_t *context) //printf("WTF %d\n", object_neighbors); //cout << "Detected " << object_neighbors << " object neighbors" << endl; const int rect_height = cvRound((float)img.rows * object_neighbors / max_neighbors); - CvScalar col = CV_RGB((float)255 * object_neighbors / max_neighbors, 0, 0); + CvScalar col = cvScalar(0, 0, (float)255 * object_neighbors / max_neighbors, 0); rectangle(img, cvPoint(0, img.rows), cvPoint(img.cols/10, img.rows - rect_height), col, -1); parse_stats(&context->nestDetected, nestedObjects.size(), context->skip); -- 2.28.0 ================================================ FILE: package/freeswitch/Config.in ================================================ 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 # uses wchar_t 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_OPENCV3_LIB_HIGHGUI if BR2_PACKAGE_OPENCV3 select BR2_PACKAGE_OPENCV3_LIB_IMGPROC if BR2_PACKAGE_OPENCV3 select BR2_PACKAGE_OPENCV3_LIB_OBJDETECT if BR2_PACKAGE_OPENCV3 select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_PCRE select BR2_PACKAGE_SOFIA_SIP select BR2_PACKAGE_SPANDSP select BR2_PACKAGE_SPEEX select BR2_PACKAGE_SPEEXDSP select BR2_PACKAGE_SQLITE select BR2_PACKAGE_TIFF 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 ================================================ FILE: package/freeswitch/freeswitch.hash ================================================ # From https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.6.-release.tar.xz.sha256 sha256 9a08d4e184e6d715e1c12c43a0f901597151752ef236f0a37e40996272b5c38d freeswitch-1.10.6.-release.tar.xz # Locally computed sha256 75c933202f40939cdc3827fce20a1efdaa38291e2b5a65d234eb16e2cffda66a COPYING sha256 c3e3388768dae8bf4edcc4108f95be815b8a05c0b0aef6e4c3d8df81affdfa34 docs/OPENH264_BINARY_LICENSE.txt sha256 e8e26b16da14aa3e6ed5c22c705fdc1f45d6225fca461ea9f7314bcdfdc414c4 libs/apr/LICENSE sha256 1eefb2ea1db0af7729a9d8a27d7c65d8a37ab185393f935b029aac6828ce315a libs/apr-util/LICENSE sha256 8267348d5af1262c11d1a08de2f5afc77457755f1ac658627dd9acf71011d615 libs/libvpx/LICENSE sha256 2b2cc1180c7e6988328ad2033b04b80117419db9c4c584918bbb3cfec7e9364f libs/libyuv/LICENSE sha256 7d72a8aee2c4b1a084200487992a5d86f5df6b535727a14c1874918e99d24600 libs/libzrtp/src/zrtp_legal.c sha256 8e19d42a1eec9561f3f347253ddf2e385c55f392f025bb0fd41b88dbf38db5ae libs/srtp/LICENSE sha256 ab00a482b6a3902e40211b43c5d0441962ea99b6cc7c25c0f243fa270b78d482 src/mod/codecs/mod_isac/LICENSE ================================================ FILE: package/freeswitch/freeswitch.mk ================================================ ################################################################################ # # freeswitch # ################################################################################ FREESWITCH_VERSION = 1.10.6 FREESWITCH_SOURCE = freeswitch-$(FREESWITCH_VERSION).-release.tar.xz FREESWITCH_SITE = https://files.freeswitch.org/freeswitch-releases # External modules need headers/libs from staging FREESWITCH_INSTALL_STAGING = YES FREESWITCH_LICENSE = MPL-1.1, \ GPL-3.0+ with font exception (fonts), \ Apache-2.0 (apr, apr-util), \ BSD-3-Clause (libsrtp) FREESWITCH_LICENSE_FILES = \ COPYING \ libs/apr/LICENSE \ libs/apr-util/LICENSE \ libs/srtp/LICENSE FREESWITCH_CPE_ID_VENDOR = freeswitch # required dependencies FREESWITCH_DEPENDENCIES = \ host-pkgconf \ jpeg \ libcurl \ openssl \ pcre \ spandsp \ sofia-sip \ speex \ sqlite \ tiff \ util-linux \ zlib # disable display of ClueCon banner in fs_cli FREESWITCH_CONF_ENV += \ disable_cc=yes # 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 \ 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 \ timers/mod_timerfd \ 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 += , BSD-3-Clause (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 # Use the pass-through g729 module provided by freeswitch instead of # the external mod_bcg729 provided by freeswitch-mod-bcg729. ifeq ($(BR2_PACKAGE_FREESWITCH_MOD_BCG729),) FREESWITCH_ENABLED_MODULES += codecs/mod_g729 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_LIBOPENH264),y) FREESWITCH_LICENSE += , BSD-2-Clause (libopenh264) FREESWITCH_LICENSE_FILES += docs/OPENH264_BINARY_LICENSE.txt FREESWITCH_DEPENDENCIES += libopenh264 FREESWITCH_ENABLED_MODULES += codecs/mod_openh264 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_OPENCV3),y) FREESWITCH_DEPENDENCIES += opencv3 FREESWITCH_ENABLED_MODULES += applications/mod_cv endif ifeq ($(BR2_PACKAGE_POSTGRESQL),y) FREESWITCH_CONF_ENV += \ ac_cv_path_PG_CONFIG=$(STAGING_DIR)/usr/bin/pg_config FREESWITCH_DEPENDENCIES += postgresql FREESWITCH_ENABLED_MODULES += databases/mod_pgsql 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 += , BSD-3-Clause (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) # Freeswitch's buildsystem forgets to pass important environment # variables and config options when it configures libvpx, so # pre-build libvpx manually, so Freeswitch does not attempt to run # its flawed commands... # Freeswitch only ever uses the static libtrary, that's hard-coded, # we can't do anything about that... # From package/libvpx/libvpx.mk: # - this is not a true autotools package. It is based on the ffmpeg # build system. # - ld is being used with cc options. therefore, pretend ld is cc. define FREESWITCH_BUILD_LIBVPX cd $(@D)/libs/libvpx && \ $(TARGET_CONFIGURE_OPTS) \ $(TARGET_CONFIGURE_ARGS) \ LD="$(TARGET_CC)" \ CROSS=$(GNU_TARGET_NAME) \ ./configure \ --target=generic-gnu \ --enable-pic \ --prefix=/usr \ --disable-shared --enable-static \ --disable-examples \ --disable-docs \ --disable-unit-tests && \ $(TARGET_MAKE_ENV) \ $(LIBVPX_MAKE_ENV) \ $(MAKE) \ -C $(@D)/libs/libvpx \ all endef FREESWITCH_PRE_BUILD_HOOKS += FREESWITCH_BUILD_LIBVPX else FREESWITCH_CONF_OPTS += --disable-libvpx --disable-libyuv endif $(eval $(autotools-package)) ================================================ FILE: package/freeswitch-mod-bcg729/Config.in ================================================ config BR2_PACKAGE_FREESWITCH_MOD_BCG729 bool "freeswitch-mod-bcg729" depends on BR2_PACKAGE_FREESWITCH depends on !BR2_STATIC_LIBS # freeswitch select BR2_PACKAGE_BCG729 help FreeSWITCH G.729A module using the opensource bcg729 implementation by Belledonne Communications. https://github.com/xadhoom/mod_bcg729 ================================================ FILE: package/freeswitch-mod-bcg729/freeswitch-mod-bcg729.hash ================================================ # Locally computed sha256 ada0640094b5b3b4a767ec360213bfed624e698c9932b2f9ceb76eb1c0f5a246 freeswitch-mod-bcg729-1.0.5.tar.gz sha256 bb4680b13c3190429464a8308a07d7d891e6454349fb7be856e02405b25b1195 LICENSE ================================================ FILE: package/freeswitch-mod-bcg729/freeswitch-mod-bcg729.mk ================================================ ################################################################################ # # freeswitch-mod-bcg729 # ################################################################################ FREESWITCH_MOD_BCG729_VERSION = 1.0.5 FREESWITCH_MOD_BCG729_SITE = $(call github,xadhoom,mod_bcg729,v$(FREESWITCH_MOD_BCG729_VERSION)) FREESWITCH_MOD_BCG729_LICENSE = MPL-1.1 FREESWITCH_MOD_BCG729_LICENSE_FILES = LICENSE FREESWITCH_MOD_BCG729_DEPENDENCIES = freeswitch bcg729 # instead of patching the not cross-compile friendly Makefile from # upstream we issue the necessary build commands ourselves define FREESWITCH_MOD_BCG729_BUILD_CMDS $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \ -I$(STAGING_DIR)/usr/include/freeswitch \ -fPIC -fomit-frame-pointer -fno-exceptions \ -c $(@D)/mod_bcg729.c -o $(@D)/mod_bcg729.o $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \ -fPIC -fomit-frame-pointer -fno-exceptions \ -shared -Xlinker -x -lm -lbcg729 -Wl,-Bdynamic \ -o $(@D)/mod_bcg729.so $(@D)/mod_bcg729.o endef define FREESWITCH_MOD_BCG729_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 $(@D)/mod_bcg729.so $(TARGET_DIR)/usr/lib/freeswitch/mod/mod_bcg729.so endef $(eval $(generic-package)) ================================================ FILE: package/freetype/Config.in ================================================ config BR2_PACKAGE_FREETYPE bool "freetype" help a free, high-quality and portable font engine. https://www.freetype.org/ ================================================ FILE: package/freetype/freetype.hash ================================================ # From https://sourceforge.net/projects/freetype/files/freetype2/2.10.4/ sha1 0181862673f7216ad2b5074f95fc131209e30b27 freetype-2.10.4.tar.xz # Locally calculated sha256 86a854d8905b19698bbc8f23b860bc104246ce4854dcea8e3b0fb21284f75784 freetype-2.10.4.tar.xz sha256 fd056de4196903a676208ef58cfddafc7d583d1f28fa2e44c309cf84a59e62fb docs/LICENSE.TXT sha256 08c135755dd589039470f1fdbb400daaabaaa50d0b366d19cebff4d22986baa1 docs/FTL.TXT sha256 c4120c6752c910c299e3bd9cb3a46ff262c268303ca2069b61f92f10a5656c18 docs/GPLv2.TXT ================================================ FILE: package/freetype/freetype.mk ================================================ ################################################################################ # # freetype # ################################################################################ FREETYPE_VERSION = 2.10.4 FREETYPE_SOURCE = freetype-$(FREETYPE_VERSION).tar.xz FREETYPE_SITE = http://download.savannah.gnu.org/releases/freetype FREETYPE_INSTALL_STAGING = YES FREETYPE_MAKE_OPTS = CCexe="$(HOSTCC)" FREETYPE_LICENSE = Dual FTL/GPL-2.0+ FREETYPE_LICENSE_FILES = docs/LICENSE.TXT docs/FTL.TXT docs/GPLv2.TXT FREETYPE_CPE_ID_VENDOR = freetype FREETYPE_DEPENDENCIES = host-pkgconf FREETYPE_CONFIG_SCRIPTS = freetype-config # harfbuzz already depends on freetype so disable harfbuzz in freetype to avoid # a circular dependency FREETYPE_CONF_OPTS = --without-harfbuzz HOST_FREETYPE_DEPENDENCIES = host-pkgconf HOST_FREETYPE_CONF_OPTS = \ --without-brotli \ --without-bzip2 \ --without-harfbuzz \ --without-png \ --without-zlib # since 2.9.1 needed for freetype-config install FREETYPE_CONF_OPTS += --enable-freetype-config HOST_FREETYPE_CONF_OPTS += --enable-freetype-config ifeq ($(BR2_PACKAGE_ZLIB),y) FREETYPE_DEPENDENCIES += zlib FREETYPE_CONF_OPTS += --with-zlib else FREETYPE_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_BROTLI),y) FREETYPE_DEPENDENCIES += brotli FREETYPE_CONF_OPTS += --with-brotli else FREETYPE_CONF_OPTS += --without-brotli endif ifeq ($(BR2_PACKAGE_BZIP2),y) FREETYPE_DEPENDENCIES += bzip2 FREETYPE_CONF_OPTS += --with-bzip2 else FREETYPE_CONF_OPTS += --without-bzip2 endif ifeq ($(BR2_PACKAGE_LIBPNG),y) FREETYPE_DEPENDENCIES += libpng FREETYPE_CONF_OPTS += --with-png else FREETYPE_CONF_OPTS += --without-png endif # Extra fixing since includedir and libdir are expanded from configure values define FREETYPE_FIX_CONFIG_FILE $(SED) 's:^includedir=.*:includedir="$${prefix}/include":' \ -e 's:^libdir=.*:libdir="$${exec_prefix}/lib":' \ $(STAGING_DIR)/usr/bin/freetype-config endef FREETYPE_POST_INSTALL_STAGING_HOOKS += FREETYPE_FIX_CONFIG_FILE $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/frotz/Config.in ================================================ config BR2_PACKAGE_FROTZ bool "frotz" select BR2_PACKAGE_NCURSES help Frotz is an interpreter for old Infocom adventure games and other Z-code games. Note that frotz cannot be run as root. You must add a normal user to your buildroot configuration to be able to use it. https://661.org/proj/if/frotz/ ================================================ FILE: package/frotz/frotz.hash ================================================ # Locally calculated sha256 8da558828dd74d6d6ee30483bb32276ef918b8b72b7f6e89b4f7cb27e7abf58b frotz-2.53.tar.bz2 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/frotz/frotz.mk ================================================ ################################################################################ # # Frotz # ################################################################################ FROTZ_VERSION = 2.53 FROTZ_SOURCE = frotz-$(FROTZ_VERSION).tar.bz2 FROTZ_SITE = $(call gitlab,DavidGriffith,frotz,$(FROTZ_VERSION)) FROTZ_DEPENDENCIES = host-pkgconf ncurses FROTZ_LICENSE = GPL-2.0+ FROTZ_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) FROTZ_CURSES=ncursesw FROTZ_UTF8=yes else FROTZ_CURSES=ncurses endif define FROTZ_BUILD_CMDS $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) PREFIX=/usr CONFIG_DIR=/etc \ SOUND_TYPE=none CURSES="$(FROTZ_CURSES)" USE_UTF8=$(FROTZ_UTF8) \ CFLAGS="$(TARGET_CFLAGS) -std=c99" endef define FROTZ_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/frotz $(TARGET_DIR)/usr/bin/frotz endef $(eval $(generic-package)) ================================================ FILE: package/frr/Config.in ================================================ config BR2_PACKAGE_FRR bool "frr" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # libyang depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c select BR2_PACKAGE_BASH select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash select BR2_PACKAGE_C_ARES select BR2_PACKAGE_LIBYANG select BR2_PACKAGE_LIBNL select BR2_PACKAGE_READLINE select BR2_PACKAGE_JSON_C help The FRRouting Protocol Suite. FRR is free software that implements and manages various IPv4 and IPv6 routing protocols. https://frrouting.org comment "frr needs a toolchain w/ threads, dynamic library" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/frr/S50frr ================================================ #!/bin/sh DAEMON="frr" [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { install -m 755 -o frr -g frr -d /var/run/frr install -m 755 -o frr -g frr -d /var/log/frr printf 'Starting %s: ' "$DAEMON" /usr/sbin/frrinit.sh start status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" /usr/sbin/frrinit.sh stop status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: package/frr/frr.hash ================================================ # Locally calculated sha256 030d4e66f577726dfea13bd3a9c669fd41d8fd89b25953a36b5b0966d406ff28 frr-7.5.1.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/frr/frr.mk ================================================ ################################################################################ # # frr # ################################################################################ FRR_VERSION = 7.5.1 FRR_SITE = $(call github,FRRouting,frr,frr-$(FRR_VERSION)) FRR_LICENSE = GPL-2.0 FRR_LICENSE_FILES = COPYING FRR_CPE_ID_VENDOR = linuxfoundation FRR_CPE_ID_PRODUCT = free_range_routing FRR_AUTORECONF = YES FRR_DEPENDENCIES = host-frr readline json-c \ libyang libnl c-ares HOST_FRR_DEPENDENCIES = host-flex host-bison host-python3 FRR_CONF_OPTS = --with-clippy=$(HOST_DIR)/bin/clippy \ --sysconfdir=/etc/frr \ --localstatedir=/var/run/frr \ --with-moduledir=/usr/lib/frr/modules \ --enable-configfile-mask=0640 \ --enable-logfile-mask=0640 \ --enable-multipath=256 \ --disable-ospfclient \ --enable-shell-access \ --enable-user=frr \ --enable-group=frr \ --enable-vty-group=frrvty \ --disable-capabilities \ --enable-fpm HOST_FRR_CONF_OPTS = --enable-clippy-only ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) FRR_CONF_ENV += LIBS=-latomic endif define HOST_FRR_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/lib/clippy $(HOST_DIR)/bin/clippy endef define FRR_INSTALL_CONFIG_FILES $(foreach f,daemons daemons.conf frr.conf vtysh.conf support_bundle_commands.conf,\ $(INSTALL) -D -m 0640 $(@D)/tools/etc/frr/$(f) \ $(TARGET_DIR)/etc/frr/$(f) ) $(RM) $(TARGET_DIR)/etc/frr/*.sample endef FRR_POST_INSTALL_TARGET_HOOKS += FRR_INSTALL_CONFIG_FILES define FRR_PERMISSIONS /etc/frr/daemons f 640 frr frr - - - - - /etc/frr/daemons.conf f 640 frr frr - - - - - /etc/frr/frr.conf f 640 frr frr - - - - - /etc/frr/vtysh.conf f 640 frr frrvty - - - - - /etc/frr/support_bundle_commands.conf f 640 frr frr endef define FRR_USERS frr -1 frr -1 * /var/run/frr - frrvty FRR user priv endef define FRR_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 $(FRR_PKGDIR)/S50frr \ $(TARGET_DIR)/etc/init.d/S50frr endef $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/fscryptctl/Config.in ================================================ config BR2_PACKAGE_FSCRYPTCTL bool "fscryptctl" help fscryptctl is a low-level tool written in C that handles raw keys and manages policies for Linux filesystem encryption. Notice: Fscrypt support on EXT4 requires a kernel with CONFIG_EXT4_ENCRYPTION=y and a file system with the encryption option and block size equal to CPU page size (BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS="-O encrypt -b 4096") https://github.com/google/fscryptctl ================================================ FILE: package/fscryptctl/fscryptctl.hash ================================================ # Locally calculated sha256 970a8febbcbf315313711d8a7ee3d954dea593d8087744d3cba65f6cb4bebcc1 fscryptctl-f037dcf4354ce8f25d0f371b58dfe7a7ac27576f.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/fscryptctl/fscryptctl.mk ================================================ ################################################################################ # # fscryptctl # ################################################################################ FSCRYPTCTL_VERSION = f037dcf4354ce8f25d0f371b58dfe7a7ac27576f FSCRYPTCTL_SITE = $(call github,google,fscryptctl,$(FSCRYPTCTL_VERSION)) FSCRYPTCTL_LICENSE = Apache-2.0 FSCRYPTCTL_LICENSE_FILES = LICENSE define FSCRYPTCTL_BUILD_CMDS $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) fscryptctl endef define FSCRYPTCTL_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/fscryptctl $(TARGET_DIR)/usr/bin/fscryptctl endef $(eval $(generic-package)) ================================================ FILE: package/fstrcmp/0001-disable-rpath.patch ================================================ Remove rpath from linking command Fixes build error: lib/.libs/libfstrcmp.so: undefined reference to `__ctype_b_loc@GLIBC_2.3' lib/.libs/libfstrcmp.so: undefined reference to `mbstowcs@GLIBC_2.2.5' lib/.libs/libfstrcmp.so: undefined reference to `printf@GLIBC_2.2.5' lib/.libs/libfstrcmp.so: undefined reference to `readlink@GLIBC_2.2.5' lib/.libs/libfstrcmp.so: undefined reference to `malloc@GLIBC_2.2.5' lib/.libs/libfstrcmp.so: undefined reference to `memcmp@GLIBC_2.2.5' lib/.libs/libfstrcmp.so: undefined reference to `wcslen@GLIBC_2.2.5' Signed-off-by: Bernd Kuhls --- fstrcmp-0.7.D001/Makefile.in.orig 2014-03-05 01:13:45.000000000 +0100 +++ fstrcmp-0.7.D001/Makefile.in 2019-04-07 13:55:07.817689231 +0200 @@ -507,7 +507,7 @@ lib/libfstrcmp.la: $(lib_obj) rm -f $@ $(LIBTOOL) --mode=link --tag=CC $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) \ - -o $@ $(lib_obj) $(LIBS) -rpath $(libdir) -version-info 6:0:6 + -o $@ $(lib_obj) $(LIBS) -version-info 6:0:6 # # The install of the *.la file automatically causes "$(LIBTOOL) --mode=install" ================================================ FILE: package/fstrcmp/Config.in ================================================ config BR2_PACKAGE_FSTRCMP bool "fstrcmp" depends on BR2_USE_WCHAR help The fstrcmp project provides a library that is used to make fuzzy comparisons of strings and byte arrays, including multi- byte character strings. http://fstrcmp.sourceforge.net/ comment "fstrcmp needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/fstrcmp/fstrcmp.hash ================================================ # From https://sourceforge.net/projects/fstrcmp/files/fstrcmp/0.7/ md5 9c440bbdfcad9fd22e38f2388715b0cc fstrcmp-0.7.D001.tar.gz sha1 bb848118fb157dc624ae9fac0566a64cc85f2ef2 fstrcmp-0.7.D001.tar.gz # Locally computed sha256 e4018e850f80700acee8da296e56e15b1eef711ab15157e542e7d7e1237c3476 fstrcmp-0.7.D001.tar.gz sha256 5352e426b563eda9252d76be92337b49f7b5cfdd1302a1e8d99389840c0e46be LICENSE ================================================ FILE: package/fstrcmp/fstrcmp.mk ================================================ ################################################################################ # # fstrcmp # ################################################################################ FSTRCMP_VERSION_MAJOR = 0.7 FSTRCMP_VERSION = $(FSTRCMP_VERSION_MAJOR).D001 FSTRCMP_SITE = https://sourceforge.net/projects/fstrcmp/files/fstrcmp/$(FSTRCMP_VERSION_MAJOR) FSTRCMP_LICENSE = GPL-3.0+ FSTRCMP_LICENSE_FILES = LICENSE FSTRCMP_INSTALL_STAGING = YES FSTRCMP_DEPENDENCIES = host-libtool FSTRCMP_CONF_ENV = LIBTOOL="$(HOST_DIR)/bin/libtool" FSTRCMP_MAKE_OPTS = all-bin libdir/pkgconfig/fstrcmp.pc # We need to install the package files ourselves due to upstream trying # to install a .lai file which is missing because of rpath removal define FSTRCMP_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install-include $(INSTALL) -D -m 755 $(@D)/lib/.libs/libfstrcmp.a $(STAGING_DIR)/usr/lib/libfstrcmp.a $(INSTALL) -D -m 755 $(@D)/lib/libfstrcmp.la $(STAGING_DIR)/usr/lib/libfstrcmp.la $(INSTALL) -D -m 755 $(@D)/libdir/pkgconfig/fstrcmp.pc $(STAGING_DIR)/usr/lib/pkgconfig/fstrcmp.pc endef define FSTRCMP_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/bin/fstrcmp $(TARGET_DIR)/usr/bin/fstrcmp endef $(eval $(autotools-package)) ================================================ FILE: package/fswebcam/Config.in ================================================ config BR2_PACKAGE_FSWEBCAM bool "fswebcam" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS select BR2_PACKAGE_GD select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBPNG help fswebcam is a neat and simple webcam app. It captures images from a V4L1/V4L2 compatible device or file, averages them to reduce noise and draws a caption using the GD Graphics Library which also handles compressing the image to PNG or JPEG. The resulting image is saved to a file or sent to stdio where it can be piped to something like ncftpput or scp. https://www.sanslogic.co.uk/fswebcam/ comment "fswebcam needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/fswebcam/fswebcam.hash ================================================ # Locally calculated sha256 5702771cee6e3fa0f2bbbb72ecf3e5a253ff458c1f648f7e7c0d477e39f0ec80 fswebcam-e9f8094b6a3d1a49f99b2abec4e6ab4df33e2e33.tar.gz sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 LICENSE ================================================ FILE: package/fswebcam/fswebcam.mk ================================================ ################################################################################ # # fswebcam # ################################################################################ FSWEBCAM_VERSION = e9f8094b6a3d1a49f99b2abec4e6ab4df33e2e33 FSWEBCAM_SITE = $(call github,fsphil,fswebcam,$(FSWEBCAM_VERSION)) FSWEBCAM_LICENSE = GPL-2.0 FSWEBCAM_LICENSE_FILES = LICENSE FSWEBCAM_DEPENDENCIES += freetype jpeg libpng gd $(eval $(autotools-package)) ================================================ FILE: package/ftop/0001-overflow.patch ================================================ Set tmp_buf and rate_buf to something ridiculously high to fix a buffer overflow when COLUMNS is large. - JeR (Taken from gentoo portage) Signed-off-by: Gustavo Zacarias --- a/src/ftop.c 2009-02-16 07:00:00.000000000 +0100 +++ b/src/ftop.c 2013-09-06 14:42:41.788852952 +0200 @@ -736,7 +736,7 @@ { size_t i, j, bytes, bar_total; char more_procs_ch, more_files_ch, expanded_ch; - char tmp_buf[80], rate_buf[80]; + char tmp_buf[2048], rate_buf[2048]; char *tmp_str; snapshot *s, *s_prev; file_info *tmp_file; ================================================ FILE: package/ftop/Config.in ================================================ config BR2_PACKAGE_FTOP bool "ftop" select BR2_PACKAGE_NCURSES help Ftop is to files what top is to processes. The progress of all open files and file systems can be monitored. https://sourceforge.net/projects/ftop/ ================================================ FILE: package/ftop/ftop.hash ================================================ # From https://sourceforge.net/projects/ftop/files/ftop/1.0/ md5 57c68b6e7431f4219d9eddaebcb395da ftop-1.0.tar.bz2 sha1 d3ef1b74825f50c7c442d299b29d23c2478f199b ftop-1.0.tar.bz2 # Locally computed sha256 3a705f4f291384344cd32c3dd5f5f6a7cd7cea7624c83cb7e923966dbcd47f82 ftop-1.0.tar.bz2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/ftop/ftop.mk ================================================ ################################################################################ # # ftop # ################################################################################ FTOP_VERSION = 1.0 FTOP_SOURCE = ftop-$(FTOP_VERSION).tar.bz2 FTOP_SITE = https://sourceforge.net/projects/ftop/files/ftop/$(FTOP_VERSION) FTOP_DEPENDENCIES = ncurses FTOP_LICENSE = GPL-3.0+ FTOP_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/fuse-overlayfs/Config.in ================================================ config BR2_PACKAGE_FUSE_OVERLAYFS bool "fuse-overlayfs" depends on BR2_USE_MMU # libfuse3 depends on !BR2_STATIC_LIBS # libfuse3 depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse3 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 select BR2_PACKAGE_LIBFUSE3 help FUSE-overlayfs is an implementation of overlay+shiftfs in FUSE, intended to be used for rootless containers. http://github.com/containers/fuse-overlayfs comment "fuse-overlayfs needs a toolchain w/ threads, dynamic library, headers >= 3.15" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 ================================================ FILE: package/fuse-overlayfs/fuse-overlayfs.hash ================================================ # Locally computed sha256 6c81b65b71067b303aaa9871f512c2cabc23e2b793f19c6c854d01a492b5a923 fuse-overlayfs-1.5.0.tar.gz # Locally computed sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/fuse-overlayfs/fuse-overlayfs.mk ================================================ ################################################################################ # # fuse-overlayfs # ################################################################################ FUSE_OVERLAYFS_VERSION = 1.5.0 FUSE_OVERLAYFS_SITE = $(call github,containers,fuse-overlayfs,v$(FUSE_OVERLAYFS_VERSION)) FUSE_OVERLAYFS_LICENSE = GPL-3.0 FUSE_OVERLAYFS_LICENSE_FILES = COPYING FUSE_OVERLAYFS_AUTORECONF = YES FUSE_OVERLAYFS_DEPENDENCIES = libfuse3 host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/fwts/0001-build-do-not-use-Werror.patch ================================================ From e481c2f990ffa71f205d4b9daf0823e71269a7f3 Mon Sep 17 00:00:00 2001 From: Erico Nunes Date: Fri, 12 Aug 2016 23:11:56 +0200 Subject: [PATCH] fwts: do not use -Werror MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: Erico Nunes [Fabrice: updated for 20.08.00] Signed-off-by: Fabrice Fontaine [Vincent: rebased onto V21.05.00] Signed-off-by: Vincent Stehlé --- configure.ac | 2 +- src/Makefile.am | 2 +- src/lib/src/Makefile.am | 2 +- src/utilities/Makefile.am | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index f40c3678..0ff5025b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_INIT([fwts],[0.1],[fwts-devel@lists.ubuntu.com]) - AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) + AM_INIT_AUTOMAKE([-Wall foreign subdir-objects]) m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) AC_CANONICAL_HOST AC_CONFIG_MACRO_DIR([m4]) diff --git a/src/Makefile.am b/src/Makefile.am index cdabb386..7c2e5730 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -12,7 +12,7 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/acpica/source/compiler \ -I$(top_srcdir)/efi_runtime \ -pthread `pkg-config --cflags glib-2.0 gio-2.0` \ - -Wall -Werror -Wextra \ + -Wall -Wextra \ -Wno-address-of-packed-member \ -Wfloat-equal -Wmissing-declarations \ -Wno-long-long -Wredundant-decls -Wshadow \ diff --git a/src/lib/src/Makefile.am b/src/lib/src/Makefile.am index 55c52b41..50efa97a 100644 --- a/src/lib/src/Makefile.am +++ b/src/lib/src/Makefile.am @@ -25,7 +25,7 @@ AM_CPPFLAGS = \ `pkg-config --silence-errors --cflags json-c` \ `pkg-config --cflags glib-2.0 gio-2.0` \ -DDATAROOTDIR=\"$(datarootdir)\" \ - -Wall -Werror -Wextra \ + -Wall -Wextra \ -Wno-address-of-packed-member pkglib_LTLIBRARIES = libfwts.la diff --git a/src/utilities/Makefile.am b/src/utilities/Makefile.am index 1fc0fc02..53614e33 100644 --- a/src/utilities/Makefile.am +++ b/src/utilities/Makefile.am @@ -16,7 +16,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # -AM_CPPFLAGS = -Wall -Werror -Wextra -DDATAROOTDIR=\"$(datarootdir)\" \ +AM_CPPFLAGS = -Wall -Wextra -DDATAROOTDIR=\"$(datarootdir)\" \ -I$(srcdir)/../lib/include bin_PROGRAMS = kernelscan -- 2.30.2 ================================================ FILE: package/fwts/Config.in ================================================ config BR2_PACKAGE_FWTS bool "fwts" depends on BR2_i386 || BR2_x86_64 || BR2_aarch64 depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS # libbsd depends on BR2_USE_MMU # libglib2 depends on BR2_USE_WCHAR # libglib2, libbsd depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2, libbsd depends on !BR2_STATIC_LIBS # libbsd depends on BR2_TOOLCHAIN_USES_GLIBC # execinfo.h select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBBSD help Firmware Test Suite (FWTS) is a test suite that performs sanity checks on firmware. It is intended to identify BIOS and ACPI errors and if appropriate it will try to explain the errors and give advice to help workaround or fix firmware bugs. dtc (libfdt) is an optional dependency for fdt related tests. https://wiki.ubuntu.com/FirmwareTestSuite if BR2_PACKAGE_FWTS config BR2_PACKAGE_FWTS_EFI_RUNTIME_MODULE bool "efi_runtime module" depends on BR2_LINUX_KERNEL help Firmware Test Suite (FWTS) provides a EFI runtime kernel module required to run UEFI tests. comment "efi_runtime module needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL endif comment "fwts needs a glibc toolchain w/ wchar, threads, dynamic library" depends on BR2_i386 || BR2_x86_64 || BR2_aarch64 depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS # libbsd depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_USES_GLIBC || BR2_STATIC_LIBS ================================================ FILE: package/fwts/fwts.hash ================================================ # Hash from: http://fwts.ubuntu.com/release/SHA256SUMS sha256 e2d6e8b0704eba859a567fb8764e5dc5385793fc26bd00ecc70e7af03fd2568d fwts-V21.05.00.tar.gz # Hash for license file sha256 2003f5c8a1e40d7882f1499bd7adb7bc748c9656851abb28647a3d297c2e8e23 debian/copyright ================================================ FILE: package/fwts/fwts.mk ================================================ ################################################################################ # # fwts # ################################################################################ FWTS_VERSION = 21.05.00 FWTS_SOURCE = fwts-V$(FWTS_VERSION).tar.gz FWTS_SITE = http://fwts.ubuntu.com/release FWTS_STRIP_COMPONENTS = 0 FWTS_LICENSE = GPL-2.0, LGPL-2.1, Custom FWTS_LICENSE_FILES = debian/copyright FWTS_AUTORECONF = YES FWTS_DEPENDENCIES = host-bison host-flex host-pkgconf libglib2 libbsd \ $(if $(BR2_PACKAGE_BASH_COMPLETION),bash-completion) \ $(if $(BR2_PACKAGE_DTC),dtc) ifdef BR2_PACKAGE_FWTS_EFI_RUNTIME_MODULE FWTS_MODULE_SUBDIRS = efi_runtime $(eval $(kernel-module)) endif $(eval $(autotools-package)) ================================================ FILE: package/fwup/Config.in ================================================ 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 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 ================================================ FILE: package/fwup/Config.in.host ================================================ 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 ================================================ FILE: package/fwup/fwup.hash ================================================ # Locally calculated sha256 9890f0328796f4315e6c1188df5c103855c530fbc14fbc8c12f4b24066c975f1 fwup-1.8.0.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/fwup/fwup.mk ================================================ ################################################################################ # # fwup # ################################################################################ FWUP_VERSION = 1.8.0 FWUP_SITE = $(call github,fhunleth,fwup,v$(FWUP_VERSION)) FWUP_LICENSE = Apache-2.0 FWUP_LICENSE_FILES = LICENSE FWUP_DEPENDENCIES = host-pkgconf libconfuse libarchive HOST_FWUP_DEPENDENCIES = host-pkgconf host-libconfuse host-libarchive FWUP_AUTORECONF = YES FWUP_CONF_ENV = ac_cv_path_HELP2MAN="" $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/fxload/Config.in ================================================ config BR2_PACKAGE_FXLOAD bool "fxload" help This program is conveniently able to download firmware into FX, FX2, and FX2LP EZ-USB devices, as well as the original AnchorChips EZ-USB. It is intended to be invoked by hotplug scripts when the unprogrammed device appears on the bus. http://sourceforge.net/projects/linux-hotplug/ ================================================ FILE: package/fxload/fxload.hash ================================================ # Locally computed: sha256 0cc8bfd2a7cbba2f68e0c5767477634922287943c91dd9fcf029fc8b9d577858 fxload-2008_10_13.tar.gz sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING ================================================ FILE: package/fxload/fxload.mk ================================================ ################################################################################ # # fxload # ################################################################################ FXLOAD_VERSION = 2008_10_13 FXLOAD_SITE = http://downloads.sourceforge.net/project/linux-hotplug/fxload/$(FXLOAD_VERSION) FXLOAD_LICENSE = GPL-2.0+ FXLOAD_LICENSE_FILES = COPYING FXLOAD_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_63261),y) FXLOAD_CFLAGS += -O0 endif define FXLOAD_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(FXLOAD_CFLAGS)" -C $(@D) all endef define FXLOAD_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) prefix=$(TARGET_DIR) -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/gamin/0001-no-abstract-sockets.patch ================================================ [PATCH]: Remove abstract socket namespace check breaking cross compilation Taken from openembedded: http://git.openembedded.org/cgit.cgi/openembedded/tree/recipes/gamin/files/no-abstract-sockets.patch Signed-off-by: Peter Korsgaard --- /tmp/configure.in 2007-04-30 13:08:49.000000000 +0200 +++ gamin-0.1.8/configure.in 2007-04-30 13:10:53.285251000 +0200 @@ -354,51 +354,6 @@ AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure]) fi -#### Abstract sockets - -AC_MSG_CHECKING(abstract socket namespace) -AC_LANG_PUSH(C) -AC_RUN_IFELSE([AC_LANG_PROGRAM( -[[ -#include -#include -#include -#include -#include -#include -#include -]], -[[ - int listen_fd; - struct sockaddr_un addr; - - listen_fd = socket (PF_UNIX, SOCK_STREAM, 0); - - if (listen_fd < 0) - { - fprintf (stderr, "socket() failed: %s\n", strerror (errno)); - exit (1); - } - - memset (&addr, '\0', sizeof (addr)); - addr.sun_family = AF_UNIX; - strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test"); - addr.sun_path[0] = '\0'; /* this is what makes it abstract */ - - if (bind (listen_fd, (struct sockaddr*) &addr, SUN_LEN (&addr)) < 0) - { - fprintf (stderr, "Abstract socket namespace bind() failed: %s\n", - strerror (errno)); - exit (1); - } - else - exit (0); -]])], - [have_abstract_sockets=yes], - [have_abstract_sockets=no]) -AC_LANG_POP(C) -AC_MSG_RESULT($have_abstract_sockets) - if test x$enable_abstract_sockets = xyes; then if test x$have_abstract_sockets = xno; then AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.]) ================================================ FILE: package/gamin/0002-no-const-return.patch ================================================ G_CONST_RETURN is deprecated in glib 2.30 so remove to to avoid build failures. Upstream-Status: Pending Index: gamin-0.1.10/server/gam_node.c =================================================================== --- gamin-0.1.10.orig/server/gam_node.c 2011-10-12 15:25:45.217178314 +0100 +++ gamin-0.1.10/server/gam_node.c 2011-10-12 15:26:17.807178293 +0100 @@ -122,7 +122,7 @@ * it has finished with the string. If it must keep it longer, it * should makes its own copy. The returned string must not be freed. */ -G_CONST_RETURN char * +const char * gam_node_get_path(GamNode * node) { g_assert(node); Index: gamin-0.1.10/server/gam_node.h =================================================================== --- gamin-0.1.10.orig/server/gam_node.h 2011-10-12 15:25:46.857178269 +0100 +++ gamin-0.1.10/server/gam_node.h 2011-10-12 15:26:28.637178297 +0100 @@ -58,7 +58,7 @@ void gam_node_set_is_dir (GamNode *node, gboolean is_dir); -G_CONST_RETURN char *gam_node_get_path (GamNode *node); +const char *gam_node_get_path (GamNode *node); GList *gam_node_get_subscriptions (GamNode *node); Index: gamin-0.1.10/server/gam_subscription.c =================================================================== --- gamin-0.1.10.orig/server/gam_subscription.c 2011-10-12 15:25:40.497177525 +0100 +++ gamin-0.1.10/server/gam_subscription.c 2011-10-12 15:26:39.867178304 +0100 @@ -141,7 +141,7 @@ * @param sub the GamSubscription * @returns The path being monitored. It should not be freed. */ -G_CONST_RETURN char * +const char * gam_subscription_get_path(GamSubscription * sub) { if (sub == NULL) Index: gamin-0.1.10/server/gam_subscription.h =================================================================== --- gamin-0.1.10.orig/server/gam_subscription.h 2011-10-12 15:25:28.507178266 +0100 +++ gamin-0.1.10/server/gam_subscription.h 2011-10-12 15:25:58.817178285 +0100 @@ -21,7 +21,7 @@ int gam_subscription_get_reqno (GamSubscription *sub); -G_CONST_RETURN char *gam_subscription_get_path (GamSubscription *sub); +const char *gam_subscription_get_path (GamSubscription *sub); GamListener *gam_subscription_get_listener (GamSubscription *sub); ================================================ FILE: package/gamin/0003-fix-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch ================================================ 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); ================================================ FILE: package/gamin/Config.in ================================================ config BR2_PACKAGE_GAMIN bool "gamin" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # glib2 select BR2_PACKAGE_LIBGLIB2 help the File Alteration Monitor http://www.gnome.org/~veillard/gamin/sources comment "gamin needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/gamin/gamin.hash ================================================ # Locally calculated sha256 28085f0ae8be10eab582ff186af4fb0be92cc6c62b5cc19cd09b295c7c2899a1 gamin-0.1.10.tar.gz sha256 7f9ffc38883325f011f331a9d6074ffd0175fbcecd57f69c577fb3845f333876 COPYING ================================================ FILE: package/gamin/gamin.mk ================================================ ################################################################################ # # gamin # ################################################################################ GAMIN_VERSION = 0.1.10 GAMIN_SITE = http://www.gnome.org/~veillard/gamin/sources GAMIN_AUTORECONF = YES GAMIN_INSTALL_STAGING = YES GAMIN_LICENSE = LGPL-2.0+ GAMIN_LICENSE_FILES = COPYING # python support broken GAMIN_CONF_OPTS += --without-python GAMIN_CONF_ENV = have_abstract_sockets=no GAMIN_DEPENDENCIES = libglib2 $(eval $(autotools-package)) ================================================ FILE: package/gauche/Config.in ================================================ # Architecture dependency from the bundled bdwgc. config BR2_PACKAGE_GAUCHE_ARCH_SUPPORTS bool default y if BR2_arm || BR2_armeb || BR2_i386 || BR2_m68k || \ BR2_mips || BR2_mipsel || BR2_mips64 || \ BR2_mips64el || BR2_powerpc || BR2_powerpc64 || \ BR2_powerpc64le || BR2_sh || BR2_x86_64 config BR2_PACKAGE_GAUCHE bool "gauche" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_USE_MMU # fork() depends on BR2_PACKAGE_GAUCHE_ARCH_SUPPORTS depends on !BR2_STATIC_LIBS help Gauche is an R7RS Scheme implementation developed to be a handy script interpreter, which allows programmers and system administrators to write small to large scripts for their daily chores. Quick startup, built-in system interface, native multilingual support are some of its goals. http://practical-scheme.net/gauche/ comment "gauche needs a toolchain w/ NPTL, dynamic library" depends on BR2_USE_MMU depends on BR2_PACKAGE_GAUCHE_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS ================================================ FILE: package/gauche/gauche.hash ================================================ # From https://sourceforge.net/projects/gauche/files/Gauche/ sha1 ad5e15021764b733ec913cca8b77c9a53d4ee997 Gauche-0.9.9.tgz md5 20d8ed835ae0bc97cceed78a71f9857b Gauche-0.9.9.tgz # Locally calculated sha256 4ca9325322a7efadb9680d156eb7b53521321c9ca4955c4cbe738bc2e1d7f7fb Gauche-0.9.9.tgz sha256 13cb582677dbcdc5b34313c59b4a014e74ef2f5fd80e514a0bd98fd8a4e45bed COPYING ================================================ FILE: package/gauche/gauche.mk ================================================ ################################################################################ # # gauche # ################################################################################ GAUCHE_VERSION = 0.9.9 GAUCHE_SOURCE = Gauche-$(GAUCHE_VERSION).tgz GAUCHE_SITE = http://downloads.sourceforge.net/project/gauche/Gauche GAUCHE_LICENSE = BSD-3-Clause, Boehm-gc, SRFI (srfi-11.scm), reload (reload.scm) GAUCHE_LICENSE_FILES = COPYING GAUCHE_DEPENDENCIES = host-gauche # We're patching configure.ac GAUCHE_AUTORECONF = YES HOST_GAUCHE_CONF_OPTS = --without-zlib GAUCHE_CONF_OPTS = --without-libatomic-ops # Enable embedded axTLS GAUCHE_TLS_LIBS = axtls ifeq ($(BR2_PACKAGE_MBEDTLS),y) GAUCHE_TLS_LIBS += mbedtls GAUCHE_DEPENDENCIES += mbedtls endif GAUCHE_CONF_OPTS += --with-tls="$(GAUCHE_TLS_LIBS)" ifeq ($(BR2_PACKAGE_ZLIB),y) GAUCHE_CONF_OPTS += --with-zlib=$(STAGING_DIR) GAUCHE_DEPENDENCIES += zlib else GAUCHE_CONF_OPTS += --without-zlib endif # Detection of c99 support in configure fails without WCHAR. To enable # automatic detection of c99 support by configure, we need to enable # WCHAR in toolchain. But actually we do not need WCHAR at gauche # runtime. So reuesting WCHAR in toolchain just for automatic detection # will be overkill. To solve this, explicitly -std=gnu99 is specified # here. GAUCHE_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -std=gnu99" $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/gawk/0001-no-versioned.patch ================================================ Disabled versioned installation of binaries to save space. Signed-off-by: Gustavo Zacarias [Gustavo: update for 4.1.2] diff -Nura gawk-4.1.2.orig/Makefile.in gawk-4.1.2/Makefile.in --- gawk-4.1.2.orig/Makefile.in 2015-04-29 16:11:09.367925925 -0300 +++ gawk-4.1.2/Makefile.in 2015-04-29 16:11:25.308466495 -0300 @@ -1173,6 +1173,7 @@ # (This is done universally, which may not always be right, but # there's no easy way to distinguish GNU from non-GNU systems.) install-exec-hook: +foo: (cd $(DESTDIR)$(bindir); \ $(LN) gawk$(EXEEXT) gawk-$(VERSION)$(EXEEXT) 2>/dev/null ; \ if [ ! -f awk$(EXEEXT) ]; \ ================================================ FILE: package/gawk/Config.in ================================================ config BR2_PACKAGE_GAWK bool "gawk" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() 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 with just a few lines of code. http://www.gnu.org/software/gawk/ comment "gawk needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/gawk/gawk.hash ================================================ # Locally calculated after checking pgp signature # https://ftp.gnu.org/gnu/gawk/gawk-5.1.0.tar.xz.sig # Primary key fingerprint: D196 7C63 7887 1317 7D86 1ED7 DF59 7815 937E C0D2 sha256 cf5fea4ac5665fd5171af4716baab2effc76306a9572988d5ba1078f196382bd gawk-5.1.0.tar.xz # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/gawk/gawk.mk ================================================ ################################################################################ # # gawk # ################################################################################ GAWK_VERSION = 5.1.0 GAWK_SOURCE = gawk-$(GAWK_VERSION).tar.xz GAWK_SITE = $(BR2_GNU_MIRROR)/gawk GAWK_DEPENDENCIES = host-gawk GAWK_LICENSE = GPL-3.0+ GAWK_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_LIBSIGSEGV),y) GAWK_DEPENDENCIES += libsigsegv endif # --with-mpfr requires an argument so just let # configure find it automatically ifeq ($(BR2_PACKAGE_MPFR),y) GAWK_DEPENDENCIES += mpfr else GAWK_CONF_OPTS += --without-mpfr endif # --with-readline requires an argument so just let # configure find it automatically ifeq ($(BR2_PACKAGE_READLINE),y) GAWK_DEPENDENCIES += readline else GAWK_CONF_OPTS += --without-readline endif HOST_GAWK_CONF_OPTS = --without-readline --without-mpfr define GAWK_CREATE_SYMLINK ln -sf gawk $(TARGET_DIR)/usr/bin/awk endef GAWK_POST_INSTALL_TARGET_HOOKS += GAWK_CREATE_SYMLINK define HOST_GAWK_CREATE_SYMLINK ln -sf gawk $(HOST_DIR)/usr/bin/awk endef HOST_GAWK_POST_INSTALL_HOOKS += HOST_GAWK_CREATE_SYMLINK $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/gcc/10.3.0/0001-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch ================================================ From 0824d6819857f306583592bce96315893f91bd84 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Wed, 20 Jan 2021 23:26:29 +0100 Subject: [PATCH] Revert "re PR target/92095 (internal error with -O1 -mcpu=niagara2 -fPIE)" This reverts commit 0a83f1a441d7aaadecb368c237b6ee70bd7b91d6. Building the Buildroot defconfig qemu_sparc_ss10_defconfig using gcc 8.4, 9.3 and 10 produce a broken rootfs that trigger illegal instruction messages. gcc 8.3, 9.2 are the latest working gcc version. git bisect between gcc 8.4 and 8.4 allowed to identify the commit that introcuce the regression. Reverting this patch allowed to produce a working rootfs. Reported to gcc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98784 Signed-off-by: Romain Naour Cc: Eric Botcazou --- gcc/config/sparc/sparc-protos.h | 1 - gcc/config/sparc/sparc.c | 121 +++++++----------- gcc/config/sparc/sparc.md | 5 +- .../gcc.c-torture/compile/20191108-1.c | 14 -- gcc/testsuite/gcc.target/sparc/overflow-3.c | 2 +- gcc/testsuite/gcc.target/sparc/overflow-4.c | 2 +- gcc/testsuite/gcc.target/sparc/overflow-5.c | 2 +- 7 files changed, 53 insertions(+), 94 deletions(-) delete mode 100644 gcc/testsuite/gcc.c-torture/compile/20191108-1.c diff --git a/gcc/config/sparc/sparc-protos.h b/gcc/config/sparc/sparc-protos.h index 5f9999a669c..37452b06415 100644 --- a/gcc/config/sparc/sparc-protos.h +++ b/gcc/config/sparc/sparc-protos.h @@ -69,7 +69,6 @@ extern void sparc_split_reg_mem (rtx, rtx, machine_mode); extern void sparc_split_mem_reg (rtx, rtx, machine_mode); extern int sparc_split_reg_reg_legitimate (rtx, rtx); extern void sparc_split_reg_reg (rtx, rtx, machine_mode); -extern const char *output_load_pcrel_sym (rtx *); extern const char *output_ubranch (rtx, rtx_insn *); extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *); extern const char *output_return (rtx_insn *); diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index d0843102148..14d112d8ca8 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -4157,6 +4157,13 @@ eligible_for_sibcall_delay (rtx_insn *trial) static bool sparc_cannot_force_const_mem (machine_mode mode, rtx x) { + /* After IRA has run in PIC mode, it is too late to put anything into the + constant pool if the PIC register hasn't already been initialized. */ + if ((lra_in_progress || reload_in_progress) + && flag_pic + && !crtl->uses_pic_offset_table) + return true; + switch (GET_CODE (x)) { case CONST_INT: @@ -4192,11 +4199,9 @@ sparc_cannot_force_const_mem (machine_mode mode, rtx x) } /* Global Offset Table support. */ -static GTY(()) rtx got_symbol_rtx = NULL_RTX; -static GTY(()) rtx got_register_rtx = NULL_RTX; static GTY(()) rtx got_helper_rtx = NULL_RTX; - -static GTY(()) bool got_helper_needed = false; +static GTY(()) rtx got_register_rtx = NULL_RTX; +static GTY(()) rtx got_symbol_rtx = NULL_RTX; /* Return the SYMBOL_REF for the Global Offset Table. */ @@ -4209,6 +4214,27 @@ sparc_got (void) return got_symbol_rtx; } +#ifdef HAVE_GAS_HIDDEN +# define USE_HIDDEN_LINKONCE 1 +#else +# define USE_HIDDEN_LINKONCE 0 +#endif + +static void +get_pc_thunk_name (char name[32], unsigned int regno) +{ + const char *reg_name = reg_names[regno]; + + /* Skip the leading '%' as that cannot be used in a + symbol name. */ + reg_name += 1; + + if (USE_HIDDEN_LINKONCE) + sprintf (name, "__sparc_get_pc_thunk.%s", reg_name); + else + ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno); +} + /* Wrapper around the load_pcrel_sym{si,di} patterns. */ static rtx @@ -4228,78 +4254,30 @@ gen_load_pcrel_sym (rtx op0, rtx op1, rtx op2) return insn; } -/* Output the load_pcrel_sym{si,di} patterns. */ - -const char * -output_load_pcrel_sym (rtx *operands) -{ - if (flag_delayed_branch) - { - output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands); - output_asm_insn ("call\t%a2", operands); - output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands); - } - else - { - output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands); - output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands); - output_asm_insn ("call\t%a2", operands); - output_asm_insn (" nop", NULL); - } - - if (operands[2] == got_helper_rtx) - got_helper_needed = true; - - return ""; -} - -#ifdef HAVE_GAS_HIDDEN -# define USE_HIDDEN_LINKONCE 1 -#else -# define USE_HIDDEN_LINKONCE 0 -#endif - /* Emit code to load the GOT register. */ void load_got_register (void) { - rtx insn; + if (!got_register_rtx) + got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM); if (TARGET_VXWORKS_RTP) - { - if (!got_register_rtx) - got_register_rtx = pic_offset_table_rtx; - - insn = gen_vxworks_load_got (); - } + emit_insn (gen_vxworks_load_got ()); else { - if (!got_register_rtx) - got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM); - /* The GOT symbol is subject to a PC-relative relocation so we need a helper function to add the PC value and thus get the final value. */ if (!got_helper_rtx) { char name[32]; - - /* Skip the leading '%' as that cannot be used in a symbol name. */ - if (USE_HIDDEN_LINKONCE) - sprintf (name, "__sparc_get_pc_thunk.%s", - reg_names[REGNO (got_register_rtx)] + 1); - else - ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", - REGNO (got_register_rtx)); - + get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM); got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name)); } - insn - = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx); + emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (), + got_helper_rtx)); } - - emit_insn (insn); } /* Ensure that we are not using patterns that are not OK with PIC. */ @@ -5464,7 +5442,7 @@ save_local_or_in_reg_p (unsigned int regno, int leaf_function) return true; /* GOT register (%l7) if needed. */ - if (got_register_rtx && regno == REGNO (got_register_rtx)) + if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx) return true; /* If the function accesses prior frames, the frame pointer and the return @@ -12507,9 +12485,10 @@ static void sparc_file_end (void) { /* If we need to emit the special GOT helper function, do so now. */ - if (got_helper_needed) + if (got_helper_rtx) { const char *name = XSTR (got_helper_rtx, 0); + const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM]; #ifdef DWARF2_UNWIND_INFO bool do_cfi; #endif @@ -12546,22 +12525,17 @@ sparc_file_end (void) #ifdef DWARF2_UNWIND_INFO do_cfi = dwarf2out_do_cfi_asm (); if (do_cfi) - output_asm_insn (".cfi_startproc", NULL); + fprintf (asm_out_file, "\t.cfi_startproc\n"); #endif if (flag_delayed_branch) - { - output_asm_insn ("jmp\t%%o7+8", NULL); - output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx); - } + fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n", + reg_name, reg_name); else - { - output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx); - output_asm_insn ("jmp\t%%o7+8", NULL); - output_asm_insn (" nop", NULL); - } + fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n", + reg_name, reg_name); #ifdef DWARF2_UNWIND_INFO if (do_cfi) - output_asm_insn (".cfi_endproc", NULL); + fprintf (asm_out_file, "\t.cfi_endproc\n"); #endif } @@ -13056,10 +13030,7 @@ sparc_init_pic_reg (void) edge entry_edge; rtx_insn *seq; - /* In PIC mode, we need to always initialize the PIC register if optimization - is enabled, because we are called from IRA and LRA may later force things - to the constant pool for optimization purposes. */ - if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize)) + if (!crtl->uses_pic_offset_table) return; start_sequence (); diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index 6e9ccb4ecfd..8fb0fa11aed 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -1601,7 +1601,10 @@ (clobber (reg:P O7_REG))] "REGNO (operands[0]) == INTVAL (operands[3])" { - return output_load_pcrel_sym (operands); + if (flag_delayed_branch) + return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0"; + else + return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop"; } [(set (attr "type") (const_string "multi")) (set (attr "length") diff --git a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c b/gcc/testsuite/gcc.c-torture/compile/20191108-1.c deleted file mode 100644 index 7929751bb06..00000000000 --- a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c +++ /dev/null @@ -1,14 +0,0 @@ -/* PR target/92095 */ -/* Testcase by Sergei Trofimovich */ - -typedef union { - double a; - int b[2]; -} c; - -double d(int e) -{ - c f; - (&f)->b[0] = 15728640; - return e ? -(&f)->a : (&f)->a; -} diff --git a/gcc/testsuite/gcc.target/sparc/overflow-3.c b/gcc/testsuite/gcc.target/sparc/overflow-3.c index 52d6ab2b688..86dddfb09e6 100644 --- a/gcc/testsuite/gcc.target/sparc/overflow-3.c +++ b/gcc/testsuite/gcc.target/sparc/overflow-3.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target lp64 } */ -/* { dg-options "-O -fno-pie" } */ +/* { dg-options "-O" } */ #include #include diff --git a/gcc/testsuite/gcc.target/sparc/overflow-4.c b/gcc/testsuite/gcc.target/sparc/overflow-4.c index c6121b958c3..019feee335c 100644 --- a/gcc/testsuite/gcc.target/sparc/overflow-4.c +++ b/gcc/testsuite/gcc.target/sparc/overflow-4.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target lp64 } */ -/* { dg-options "-O -fno-pie -mno-vis3 -mno-vis4" } */ +/* { dg-options "-O -mno-vis3 -mno-vis4" } */ #include #include diff --git a/gcc/testsuite/gcc.target/sparc/overflow-5.c b/gcc/testsuite/gcc.target/sparc/overflow-5.c index f00283f6e7b..67d4ac38095 100644 --- a/gcc/testsuite/gcc.target/sparc/overflow-5.c +++ b/gcc/testsuite/gcc.target/sparc/overflow-5.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target lp64 } */ -/* { dg-options "-O -fno-pie -mvis3" } */ +/* { dg-options "-O -mvis3" } */ #include #include -- 2.30.2 ================================================ FILE: package/gcc/10.3.0/0002-or1k-Add-mcmodel-option-to-handle-large-GOTs.patch ================================================ From 1dad3f95ffcd1871ca670a13a06fbedb1c3ce509 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:11:44 +0900 Subject: [PATCH] or1k: Add mcmodel option to handle large GOTs When building libgeos we get an error with: linux-uclibc/9.3.0/crtbeginS.o: in function `__do_global_dtors_aux': crtstuff.c:(.text+0x118): relocation truncated to fit: R_OR1K_GOT16 against symbol `__cxa_finalize' defined in .text section in /home/shorne/work/openrisc/3eb9f9d0f6d8274b2d19753c006bd83f7d536e3c/output/host/or1k-buildroot-linux-uclibc/sysroot/lib/libc.so. This is caused by GOT code having a limit of 64k. In OpenRISC this looks to be the only relocation code pattern to be limited to 64k. This patch allows specifying a new option -mcmodel=large which can be used to generate 2 more instructions to construct 32-bit addresses for up to 4G GOTs. gcc/ChangeLog: PR 99783 * config/or1k/or1k-opts.h: New file. * config/or1k/or1k.c (or1k_legitimize_address_1, print_reloc): Support generating gotha relocations if -mcmodel=large is specified. * config/or1k/or1k.h (TARGET_CMODEL_SMALL, TARGET_CMODEL_LARGE): New macros. * config/or1k/or1k.opt (mcmodel=): New option. * doc/invoke.text (OpenRISC Options): Document mcmodel. Signed-off-by: Giulio Benetti --- gcc/config/or1k/or1k-opts.h | 30 ++++++++++++++++++++++++++++++ gcc/config/or1k/or1k.c | 11 +++++++++-- gcc/config/or1k/or1k.h | 7 +++++++ gcc/config/or1k/or1k.opt | 19 +++++++++++++++++++ gcc/doc/invoke.texi | 12 +++++++++++- 5 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 gcc/config/or1k/or1k-opts.h diff --git a/gcc/config/or1k/or1k-opts.h b/gcc/config/or1k/or1k-opts.h new file mode 100644 index 00000000000..f791b894fdd --- /dev/null +++ b/gcc/config/or1k/or1k-opts.h @@ -0,0 +1,30 @@ +/* Definitions for option handling for OpenRISC. + Copyright (C) 2021 Free Software Foundation, Inc. + Contributed by Stafford Horne. + + 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 + . */ + +#ifndef GCC_OR1K_OPTS_H +#define GCC_OR1K_OPTS_H + +/* The OpenRISC code generation models available. */ +enum or1k_cmodel_type { + CMODEL_SMALL, + CMODEL_LARGE +}; + +#endif /* GCC_OR1K_OPTS_H */ diff --git a/gcc/config/or1k/or1k.c b/gcc/config/or1k/or1k.c index 5fa5425aa2b..88613f9596b 100644 --- a/gcc/config/or1k/or1k.c +++ b/gcc/config/or1k/or1k.c @@ -750,7 +750,14 @@ or1k_legitimize_address_1 (rtx x, rtx scratch) { base = gen_sym_unspec (base, UNSPEC_GOT); crtl->uses_pic_offset_table = 1; - t2 = gen_rtx_LO_SUM (Pmode, pic_offset_table_rtx, base); + if (TARGET_CMODEL_LARGE) + { + emit_insn (gen_rtx_SET (t1, gen_rtx_HIGH (Pmode, base))); + emit_insn (gen_add3_insn (t1, t1, pic_offset_table_rtx)); + t2 = gen_rtx_LO_SUM (Pmode, t1, base); + } + else + t2 = gen_rtx_LO_SUM (Pmode, pic_offset_table_rtx, base); t2 = gen_const_mem (Pmode, t2); emit_insn (gen_rtx_SET (t1, t2)); base = t1; @@ -1089,7 +1096,7 @@ print_reloc (FILE *stream, rtx x, HOST_WIDE_INT add, reloc_kind kind) no special markup. */ static const char * const relocs[RKIND_MAX][RTYPE_MAX] = { { "lo", "got", "gotofflo", "tpofflo", "gottpofflo", "tlsgdlo" }, - { "ha", NULL, "gotoffha", "tpoffha", "gottpoffha", "tlsgdhi" }, + { "ha", "gotha", "gotoffha", "tpoffha", "gottpoffha", "tlsgdhi" }, }; reloc_type type = RTYPE_DIRECT; diff --git a/gcc/config/or1k/or1k.h b/gcc/config/or1k/or1k.h index 23db771d8fb..f1646d16dfd 100644 --- a/gcc/config/or1k/or1k.h +++ b/gcc/config/or1k/or1k.h @@ -21,6 +21,8 @@ #ifndef GCC_OR1K_H #define GCC_OR1K_H +#include "config/or1k/or1k-opts.h" + /* Names to predefine in the preprocessor for this target machine. */ #define TARGET_CPU_CPP_BUILTINS() \ do \ @@ -35,6 +37,11 @@ } \ while (0) +#define TARGET_CMODEL_SMALL \ + (or1k_code_model == CMODEL_SMALL) +#define TARGET_CMODEL_LARGE \ + (or1k_code_model == CMODEL_LARGE) + /* Storage layout. */ #define DEFAULT_SIGNED_CHAR 1 diff --git a/gcc/config/or1k/or1k.opt b/gcc/config/or1k/or1k.opt index 03c9b8d0bba..8e035075f8a 100644 --- a/gcc/config/or1k/or1k.opt +++ b/gcc/config/or1k/or1k.opt @@ -21,6 +21,9 @@ ; See the GCC internals manual (options.texi) for a description of ; this file's format. +HeaderInclude +config/or1k/or1k-opts.h + mhard-div Target RejectNegative InverseMask(SOFT_DIV) Enable generation of hardware divide (l.div, l.divu) instructions. This is the @@ -63,6 +66,22 @@ When -mhard-float is selected, enables generation of unordered floating point compare and set flag (lf.sfun*) instructions. By default functions from libgcc are used to perform unordered floating point compare and set flag operations. +mcmodel= +Target RejectNegative Joined Enum(or1k_cmodel_type) Var(or1k_code_model) Init(CMODEL_SMALL) +Specify the code model used for accessing memory addresses. Specifying large +enables generating binaries with large global offset tables. By default the +value is small. + +Enum +Name(or1k_cmodel_type) Type(enum or1k_cmodel_type) +Known code model types (for use with the -mcmodel= option): + +EnumValue +Enum(or1k_cmodel_type) String(small) Value(CMODEL_SMALL) + +EnumValue +Enum(or1k_cmodel_type) String(large) Value(CMODEL_LARGE) + mcmov Target RejectNegative Mask(CMOV) Enable generation of conditional move (l.cmov) instructions. By default the diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index eabeec944e7..eda350c99ec 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1102,7 +1102,8 @@ Objective-C and Objective-C++ Dialects}. @gccoptlist{-mboard=@var{name} -mnewlib -mhard-mul -mhard-div @gol -msoft-mul -msoft-div @gol -msoft-float -mhard-float -mdouble-float -munordered-float @gol --mcmov -mror -mrori -msext -msfimm -mshftimm} +-mcmov -mror -mrori -msext -msfimm -mshftimm @gol +-mcmodel=@var{code-model}} @emph{PDP-11 Options} @gccoptlist{-mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 @gol @@ -25111,6 +25112,15 @@ Enable generation of shift with immediate (@code{l.srai}, @code{l.srli}, @code{l.slli}) instructions. By default extra instructions will be generated to store the immediate to a register first. +@item -mcmodel=small +@opindex mcmodel=small +Generate OpenRISC code for the small model: The GOT is limited to 64k. This is +the default model. + +@item -mcmodel=large +@opindex mcmodel=large +Generate OpenRISC code for the large model: The GOT may grow up to 4G in size. + @end table -- 2.25.1 ================================================ FILE: package/gcc/10.3.0/0003-or1k-Use-cmodel-large-when-building-crtstuff.patch ================================================ From 0354e007a6235df81e208fa89cbf1571a8b56975 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:11:45 +0900 Subject: [PATCH] or1k: Use cmodel=large when building crtstuff When linking gcc runtime objects into large binaries the link may fail with the below errors. This will happen even if we are building with -mcmodel=large. /home/shorne/work/openrisc/output/host/lib/gcc/or1k-buildroot-linux-uclibc/10.3.0/crtbeginS.o: in function `deregister_tm_clones': crtstuff.c:(.text+0x3c): relocation truncated to fit: R_OR1K_GOT16 against undefined symbol `_ITM_deregisterTMCloneTable' /home/shorne/work/openrisc/output/host/lib/gcc/or1k-buildroot-linux-uclibc/10.3.0/crtbeginS.o: in function `register_tm_clones': crtstuff.c:(.text+0xc0): relocation truncated to fit: R_OR1K_GOT16 against undefined symbol `_ITM_registerTMCloneTable' This patch builds the gcc crtstuff binaries always with the -mcmodel=large option to ensure they can be linked into large binaries. libgcc/ChangeLog: PR 99783 * config.host (or1k-*, tmake_file): Add or1k/t-crtstuff. * config/or1k/t-crtstuff: New file. Signed-off-by: Giulio Benetti --- libgcc/config.host | 4 ++-- libgcc/config/or1k/t-crtstuff | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 libgcc/config/or1k/t-crtstuff diff --git a/libgcc/config.host b/libgcc/config.host index c529cc40f0c..ddf0033e28c 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -1127,12 +1127,12 @@ nios2-*-*) extra_parts="$extra_parts crti.o crtn.o" ;; or1k-*-linux*) - tmake_file="$tmake_file or1k/t-or1k" + tmake_file="$tmake_file or1k/t-or1k or1k/t-crtstuff" tmake_file="$tmake_file t-softfp-sfdf t-softfp" md_unwind_header=or1k/linux-unwind.h ;; or1k-*-*) - tmake_file="$tmake_file or1k/t-or1k" + tmake_file="$tmake_file or1k/t-or1k or1k/t-crtstuff" tmake_file="$tmake_file t-softfp-sfdf t-softfp" ;; pdp11-*-*) diff --git a/libgcc/config/or1k/t-crtstuff b/libgcc/config/or1k/t-crtstuff new file mode 100644 index 00000000000..dcae7f3498e --- /dev/null +++ b/libgcc/config/or1k/t-crtstuff @@ -0,0 +1,2 @@ +# Compile crtbeginS.o and crtendS.o with -mcmodel=large +CRTSTUFF_T_CFLAGS_S += -mcmodel=large -- 2.25.1 ================================================ FILE: package/gcc/10.3.0/0004-Remove-cyclades-from-libsanitizer.patch ================================================ From 745dae5923aba02982563481d75a21595df22ff8 Mon Sep 17 00:00:00 2001 From: Tamar Christina Date: Fri, 21 May 2021 10:30:59 +0100 Subject: [PATCH] libsanitizer: Remove cyclades from libsanitizer The Linux kernel has removed the interface to cyclades from the latest kernel headers[1] due to them being orphaned for the past 13 years. libsanitizer uses this header when compiling against glibc, but glibcs itself doesn't seem to have any references to cyclades. Further more it seems that the driver is broken in the kernel and the firmware doesn't seem to be available anymore. As such since this is breaking the build of libsanitizer (and so the GCC bootstrap[2]) I propose to remove this. [1] https://lkml.org/lkml/2021/3/2/153 [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100379 (cherry picked from commit f7c5351552387bd43f6ca3631016d7f0dfe0f135) libsanitizer/ChangeLog: PR sanitizer/100379 * sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Cherry-pick llvm-project revision f7c5351552387bd43f6ca3631016d7f0dfe0f135. * sanitizer_common/sanitizer_platform_limits_posix.cpp: Likewise. * sanitizer_common/sanitizer_platform_limits_posix.h: Likewise. Signed-off-by: Maxim Kochetkov --- .../sanitizer_common_interceptors_ioctl.inc | 9 --------- .../sanitizer_platform_limits_posix.cpp | 11 ----------- .../sanitizer_platform_limits_posix.h | 10 ---------- 3 files changed, 30 deletions(-) diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc index 7f181258eab..b7da6598755 100644 --- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc @@ -370,15 +370,6 @@ static void ioctl_table_fill() { #if SANITIZER_GLIBC // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE - _(CYGETDEFTHRESH, WRITE, sizeof(int)); - _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); - _(CYGETMON, WRITE, struct_cyclades_monitor_sz); - _(CYGETTHRESH, WRITE, sizeof(int)); - _(CYGETTIMEOUT, WRITE, sizeof(int)); - _(CYSETDEFTHRESH, NONE, 0); - _(CYSETDEFTIMEOUT, NONE, 0); - _(CYSETTHRESH, NONE, 0); - _(CYSETTIMEOUT, NONE, 0); _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp index 35a690cba5c..6e5c330b98e 100644 --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp @@ -143,7 +143,6 @@ typedef struct user_fpregs elf_fpregset_t; # include #endif #include -#include #include #include #include @@ -460,7 +459,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); #if SANITIZER_GLIBC unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); - unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); #if EV_VERSION > (0x010000) unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); #else @@ -824,15 +822,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); #endif // SANITIZER_LINUX #if SANITIZER_LINUX && !SANITIZER_ANDROID - unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; - unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; - unsigned IOCTL_CYGETMON = CYGETMON; - unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; - unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; - unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; - unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; - unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; - unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h index ad358eef8b7..cba41ba5494 100644 --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h @@ -983,7 +983,6 @@ extern unsigned struct_vt_mode_sz; #if SANITIZER_LINUX && !SANITIZER_ANDROID extern unsigned struct_ax25_parms_struct_sz; -extern unsigned struct_cyclades_monitor_sz; extern unsigned struct_input_keymap_entry_sz; extern unsigned struct_ipx_config_data_sz; extern unsigned struct_kbdiacrs_sz; @@ -1328,15 +1327,6 @@ extern unsigned IOCTL_VT_WAITACTIVE; #endif // SANITIZER_LINUX #if SANITIZER_LINUX && !SANITIZER_ANDROID -extern unsigned IOCTL_CYGETDEFTHRESH; -extern unsigned IOCTL_CYGETDEFTIMEOUT; -extern unsigned IOCTL_CYGETMON; -extern unsigned IOCTL_CYGETTHRESH; -extern unsigned IOCTL_CYGETTIMEOUT; -extern unsigned IOCTL_CYSETDEFTHRESH; -extern unsigned IOCTL_CYSETDEFTIMEOUT; -extern unsigned IOCTL_CYSETTHRESH; -extern unsigned IOCTL_CYSETTIMEOUT; extern unsigned IOCTL_EQL_EMANCIPATE; extern unsigned IOCTL_EQL_ENSLAVE; extern unsigned IOCTL_EQL_GETMASTRCFG; -- 2.27.0 ================================================ FILE: package/gcc/11.2.0/0001-or1k-Add-mcmodel-option-to-handle-large-GOTs.patch ================================================ From eff8110674ef193481d3657456a262beeb9951ff Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Tue, 6 Apr 2021 05:47:17 +0900 Subject: [PATCH] or1k: Add mcmodel option to handle large GOTs When building libgeos we get an error with: linux-uclibc/9.3.0/crtbeginS.o: in function `__do_global_dtors_aux': crtstuff.c:(.text+0x118): relocation truncated to fit: R_OR1K_GOT16 against symbol `__cxa_finalize' defined in .text section in /home/shorne/work/openrisc/3eb9f9d0f6d8274b2d19753c006bd83f7d536e3c/output/host/or1k-buildroot-linux-uclibc/sysroot/lib/libc.so. This is caused by GOT code having a limit of 64k. In OpenRISC this looks to be the only relocation code pattern to be limited to 64k. This patch allows specifying a new option -mcmodel=large which can be used to generate 2 more instructions to construct 32-bit addresses for up to 4G GOTs. gcc/ChangeLog: PR target/99783 * config/or1k/or1k-opts.h: New file. * config/or1k/or1k.c (or1k_legitimize_address_1, print_reloc): Support generating gotha relocations if -mcmodel=large is specified. * config/or1k/or1k.h (TARGET_CMODEL_SMALL, TARGET_CMODEL_LARGE): New macros. * config/or1k/or1k.opt (mcmodel=): New option. * doc/invoke.texi (OpenRISC Options): Document mcmodel. Signed-off-by: Giulio Benetti --- gcc/config/or1k/or1k-opts.h | 30 ++++++++++++++++++++++++++++++ gcc/config/or1k/or1k.c | 11 +++++++++-- gcc/config/or1k/or1k.h | 7 +++++++ gcc/config/or1k/or1k.opt | 19 +++++++++++++++++++ gcc/doc/invoke.texi | 12 +++++++++++- 5 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 gcc/config/or1k/or1k-opts.h diff --git a/gcc/config/or1k/or1k-opts.h b/gcc/config/or1k/or1k-opts.h new file mode 100644 index 00000000000..f791b894fdd --- /dev/null +++ b/gcc/config/or1k/or1k-opts.h @@ -0,0 +1,30 @@ +/* Definitions for option handling for OpenRISC. + Copyright (C) 2021 Free Software Foundation, Inc. + Contributed by Stafford Horne. + + 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 + . */ + +#ifndef GCC_OR1K_OPTS_H +#define GCC_OR1K_OPTS_H + +/* The OpenRISC code generation models available. */ +enum or1k_cmodel_type { + CMODEL_SMALL, + CMODEL_LARGE +}; + +#endif /* GCC_OR1K_OPTS_H */ diff --git a/gcc/config/or1k/or1k.c b/gcc/config/or1k/or1k.c index e772a7addea..27d3fa17995 100644 --- a/gcc/config/or1k/or1k.c +++ b/gcc/config/or1k/or1k.c @@ -750,7 +750,14 @@ or1k_legitimize_address_1 (rtx x, rtx scratch) { base = gen_sym_unspec (base, UNSPEC_GOT); crtl->uses_pic_offset_table = 1; - t2 = gen_rtx_LO_SUM (Pmode, pic_offset_table_rtx, base); + if (TARGET_CMODEL_LARGE) + { + emit_insn (gen_rtx_SET (t1, gen_rtx_HIGH (Pmode, base))); + emit_insn (gen_add3_insn (t1, t1, pic_offset_table_rtx)); + t2 = gen_rtx_LO_SUM (Pmode, t1, base); + } + else + t2 = gen_rtx_LO_SUM (Pmode, pic_offset_table_rtx, base); t2 = gen_const_mem (Pmode, t2); emit_insn (gen_rtx_SET (t1, t2)); base = t1; @@ -1089,7 +1096,7 @@ print_reloc (FILE *stream, rtx x, HOST_WIDE_INT add, reloc_kind kind) no special markup. */ static const char * const relocs[RKIND_MAX][RTYPE_MAX] = { { "lo", "got", "gotofflo", "tpofflo", "gottpofflo", "tlsgdlo" }, - { "ha", NULL, "gotoffha", "tpoffha", "gottpoffha", "tlsgdhi" }, + { "ha", "gotha", "gotoffha", "tpoffha", "gottpoffha", "tlsgdhi" }, }; reloc_type type = RTYPE_DIRECT; diff --git a/gcc/config/or1k/or1k.h b/gcc/config/or1k/or1k.h index fe01ab81ead..669907e7e74 100644 --- a/gcc/config/or1k/or1k.h +++ b/gcc/config/or1k/or1k.h @@ -21,6 +21,8 @@ #ifndef GCC_OR1K_H #define GCC_OR1K_H +#include "config/or1k/or1k-opts.h" + /* Names to predefine in the preprocessor for this target machine. */ #define TARGET_CPU_CPP_BUILTINS() \ do \ @@ -37,6 +39,11 @@ } \ while (0) +#define TARGET_CMODEL_SMALL \ + (or1k_code_model == CMODEL_SMALL) +#define TARGET_CMODEL_LARGE \ + (or1k_code_model == CMODEL_LARGE) + /* Storage layout. */ #define DEFAULT_SIGNED_CHAR 1 diff --git a/gcc/config/or1k/or1k.opt b/gcc/config/or1k/or1k.opt index 6bd0f3eee6d..cc23e3b8856 100644 --- a/gcc/config/or1k/or1k.opt +++ b/gcc/config/or1k/or1k.opt @@ -21,6 +21,9 @@ ; See the GCC internals manual (options.texi) for a description of ; this file's format. +HeaderInclude +config/or1k/or1k-opts.h + mhard-div Target RejectNegative InverseMask(SOFT_DIV) Enable generation of hardware divide (l.div, l.divu) instructions. This is the @@ -63,6 +66,22 @@ When -mhard-float is selected, enables generation of unordered floating point compare and set flag (lf.sfun*) instructions. By default functions from libgcc are used to perform unordered floating point compare and set flag operations. +mcmodel= +Target RejectNegative Joined Enum(or1k_cmodel_type) Var(or1k_code_model) Init(CMODEL_SMALL) +Specify the code model used for accessing memory addresses. Specifying large +enables generating binaries with large global offset tables. By default the +value is small. + +Enum +Name(or1k_cmodel_type) Type(enum or1k_cmodel_type) +Known code model types (for use with the -mcmodel= option): + +EnumValue +Enum(or1k_cmodel_type) String(small) Value(CMODEL_SMALL) + +EnumValue +Enum(or1k_cmodel_type) String(large) Value(CMODEL_LARGE) + mcmov Target RejectNegative Mask(CMOV) Enable generation of conditional move (l.cmov) instructions. By default the diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 57b97a0838c..d8a6b0b60c9 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1141,7 +1141,8 @@ Objective-C and Objective-C++ Dialects}. @gccoptlist{-mboard=@var{name} -mnewlib -mhard-mul -mhard-div @gol -msoft-mul -msoft-div @gol -msoft-float -mhard-float -mdouble-float -munordered-float @gol --mcmov -mror -mrori -msext -msfimm -mshftimm} +-mcmov -mror -mrori -msext -msfimm -mshftimm @gol +-mcmodel=@var{code-model}} @emph{PDP-11 Options} @gccoptlist{-mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 @gol @@ -26684,6 +26685,15 @@ Enable generation of shift with immediate (@code{l.srai}, @code{l.srli}, @code{l.slli}) instructions. By default extra instructions will be generated to store the immediate to a register first. +@item -mcmodel=small +@opindex mcmodel=small +Generate OpenRISC code for the small model: The GOT is limited to 64k. This is +the default model. + +@item -mcmodel=large +@opindex mcmodel=large +Generate OpenRISC code for the large model: The GOT may grow up to 4G in size. + @end table -- 2.25.1 ================================================ FILE: package/gcc/11.2.0/0002-or1k-Use-cmodel-large-when-building-crtstuff.patch ================================================ From da8a9d695b3c4b9397b5d9a27660bfa48af8d707 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Wed, 21 Apr 2021 05:33:15 +0900 Subject: [PATCH] or1k: Use cmodel=large when building crtstuff When linking gcc runtime objects into large binaries the link may fail with the below errors. This will happen even if we are building with -mcmodel=large. /home/shorne/work/openrisc/output/host/lib/gcc/or1k-buildroot-linux-uclibc/10.3.0/crtbeginS.o: in function `deregister_tm_clones': crtstuff.c:(.text+0x3c): relocation truncated to fit: R_OR1K_GOT16 against undefined symbol `_ITM_deregisterTMCloneTable' /home/shorne/work/openrisc/output/host/lib/gcc/or1k-buildroot-linux-uclibc/10.3.0/crtbeginS.o: in function `register_tm_clones': crtstuff.c:(.text+0xc0): relocation truncated to fit: R_OR1K_GOT16 against undefined symbol `_ITM_registerTMCloneTable' This patch builds the gcc crtstuff binaries always with the -mcmodel=large option to ensure they can be linked into large binaries. libgcc/ChangeLog: PR target/99783 * config.host (or1k-*, tmake_file): Add or1k/t-crtstuff. * config/or1k/t-crtstuff: New file. Signed-off-by: Giulio Benetti --- libgcc/config.host | 4 ++-- libgcc/config/or1k/t-crtstuff | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 libgcc/config/or1k/t-crtstuff diff --git a/libgcc/config.host b/libgcc/config.host index 50f00062232..8ca7a00082a 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -1119,12 +1119,12 @@ nios2-*-*) extra_parts="$extra_parts crti.o crtn.o" ;; or1k-*-linux*) - tmake_file="$tmake_file or1k/t-or1k" + tmake_file="$tmake_file or1k/t-or1k or1k/t-crtstuff" tmake_file="$tmake_file t-softfp-sfdf t-softfp" md_unwind_header=or1k/linux-unwind.h ;; or1k-*-*) - tmake_file="$tmake_file or1k/t-or1k" + tmake_file="$tmake_file or1k/t-or1k or1k/t-crtstuff" tmake_file="$tmake_file t-softfp-sfdf t-softfp" ;; pdp11-*-*) diff --git a/libgcc/config/or1k/t-crtstuff b/libgcc/config/or1k/t-crtstuff new file mode 100644 index 00000000000..dcae7f3498e --- /dev/null +++ b/libgcc/config/or1k/t-crtstuff @@ -0,0 +1,2 @@ +# Compile crtbeginS.o and crtendS.o with -mcmodel=large +CRTSTUFF_T_CFLAGS_S += -mcmodel=large -- 2.25.1 ================================================ FILE: package/gcc/8.4.0/0001-xtensa-fix-PR-target-91880.patch ================================================ From 28623c81b50663e946790649352cb1b3ed23954d Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Tue, 24 Sep 2019 04:15:17 -0700 Subject: [PATCH] xtensa: fix PR target/91880 Xtensa hwloop_optimize segfaults when zero overhead loop is about to be inserted as the first instruction of the function. Insert zero overhead loop instruction into new basic block before the loop when basic block that precedes the loop is empty. 2019-09-26 Max Filippov gcc/ * config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead loop instruction into new basic block before the loop when basic block that precedes the loop is empty. Signed-off-by: Max Filippov [Romain: rebase on gcc 8.4.0] Signed-off-by: Romain Naour --- Backported from: r276166 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 08f9f7c7a8f..de206527810 100644 --- a/gcc/config/xtensa/xtensa.c +++ b/gcc/config/xtensa/xtensa.c @@ -4232,7 +4232,9 @@ hwloop_optimize (hwloop_info loop) seq = get_insns (); - if (!single_succ_p (entry_bb) || vec_safe_length (loop->incoming) > 1) + entry_after = BB_END (entry_bb); + if (!single_succ_p (entry_bb) || vec_safe_length (loop->incoming) > 1 + || !entry_after) { basic_block new_bb; edge e; @@ -4253,7 +4255,6 @@ hwloop_optimize (hwloop_info loop) } else { - entry_after = BB_END (entry_bb); while (DEBUG_INSN_P (entry_after) || (NOTE_P (entry_after) && NOTE_KIND (entry_after) != NOTE_INSN_BASIC_BLOCK)) -- 2.24.1 ================================================ FILE: package/gcc/8.4.0/0002-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch ================================================ From bb9b71752267444b4360442b89129bfc0ae938d3 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Wed, 20 Jan 2021 23:06:07 +0100 Subject: [PATCH] Revert "re PR target/92095 (internal error with -O1 -mcpu=niagara2 -fPIE)" This reverts commit 3fcce773f0f914c0499b130c6e9efa0e45ee54a0. Building the Buildroot defconfig qemu_sparc_ss10_defconfig using gcc 8.4, 9.3 and 10 produce a broken rootfs that trigger illegal instruction messages. gcc 8.3, 9.2 are the latest working gcc version. git bisect between gcc 8.4 and 8.4 allowed to identify the commit that introcuce the regression. Reverting this patch allowed to produce a working rootfs. Signed-off-by: Romain Naour Cc: Eric Botcazou --- gcc/config/sparc/sparc-protos.h | 1 - gcc/config/sparc/sparc.c | 121 +++++++----------- gcc/config/sparc/sparc.md | 5 +- .../gcc.c-torture/compile/20191108-1.c | 14 -- gcc/testsuite/gcc.target/sparc/overflow-3.c | 2 +- gcc/testsuite/gcc.target/sparc/overflow-4.c | 2 +- gcc/testsuite/gcc.target/sparc/overflow-5.c | 2 +- 7 files changed, 53 insertions(+), 94 deletions(-) delete mode 100644 gcc/testsuite/gcc.c-torture/compile/20191108-1.c diff --git a/gcc/config/sparc/sparc-protos.h b/gcc/config/sparc/sparc-protos.h index b3f73c2f2bf..71a067e871c 100644 --- a/gcc/config/sparc/sparc-protos.h +++ b/gcc/config/sparc/sparc-protos.h @@ -69,7 +69,6 @@ extern void sparc_split_reg_mem (rtx, rtx, machine_mode); extern void sparc_split_mem_reg (rtx, rtx, machine_mode); extern int sparc_split_reg_reg_legitimate (rtx, rtx); extern void sparc_split_reg_reg (rtx, rtx, machine_mode); -extern const char *output_load_pcrel_sym (rtx *); extern const char *output_ubranch (rtx, rtx_insn *); extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *); extern const char *output_return (rtx_insn *); diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 73032d33596..db1b428db90 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -4200,6 +4200,13 @@ eligible_for_sibcall_delay (rtx_insn *trial) static bool sparc_cannot_force_const_mem (machine_mode mode, rtx x) { + /* After IRA has run in PIC mode, it is too late to put anything into the + constant pool if the PIC register hasn't already been initialized. */ + if ((lra_in_progress || reload_in_progress) + && flag_pic + && !crtl->uses_pic_offset_table) + return true; + switch (GET_CODE (x)) { case CONST_INT: @@ -4235,11 +4242,9 @@ sparc_cannot_force_const_mem (machine_mode mode, rtx x) } /* Global Offset Table support. */ -static GTY(()) rtx got_symbol_rtx = NULL_RTX; -static GTY(()) rtx got_register_rtx = NULL_RTX; static GTY(()) rtx got_helper_rtx = NULL_RTX; - -static GTY(()) bool got_helper_needed = false; +static GTY(()) rtx got_register_rtx = NULL_RTX; +static GTY(()) rtx got_symbol_rtx = NULL_RTX; /* Return the SYMBOL_REF for the Global Offset Table. */ @@ -4252,6 +4257,27 @@ sparc_got (void) return got_symbol_rtx; } +#ifdef HAVE_GAS_HIDDEN +# define USE_HIDDEN_LINKONCE 1 +#else +# define USE_HIDDEN_LINKONCE 0 +#endif + +static void +get_pc_thunk_name (char name[32], unsigned int regno) +{ + const char *reg_name = reg_names[regno]; + + /* Skip the leading '%' as that cannot be used in a + symbol name. */ + reg_name += 1; + + if (USE_HIDDEN_LINKONCE) + sprintf (name, "__sparc_get_pc_thunk.%s", reg_name); + else + ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno); +} + /* Wrapper around the load_pcrel_sym{si,di} patterns. */ static rtx @@ -4271,78 +4297,30 @@ gen_load_pcrel_sym (rtx op0, rtx op1, rtx op2) return insn; } -/* Output the load_pcrel_sym{si,di} patterns. */ - -const char * -output_load_pcrel_sym (rtx *operands) -{ - if (flag_delayed_branch) - { - output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands); - output_asm_insn ("call\t%a2", operands); - output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands); - } - else - { - output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands); - output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands); - output_asm_insn ("call\t%a2", operands); - output_asm_insn (" nop", NULL); - } - - if (operands[2] == got_helper_rtx) - got_helper_needed = true; - - return ""; -} - -#ifdef HAVE_GAS_HIDDEN -# define USE_HIDDEN_LINKONCE 1 -#else -# define USE_HIDDEN_LINKONCE 0 -#endif - /* Emit code to load the GOT register. */ void load_got_register (void) { - rtx insn; + if (!got_register_rtx) + got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM); if (TARGET_VXWORKS_RTP) - { - if (!got_register_rtx) - got_register_rtx = pic_offset_table_rtx; - - insn = gen_vxworks_load_got (); - } + emit_insn (gen_vxworks_load_got ()); else { - if (!got_register_rtx) - got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM); - /* The GOT symbol is subject to a PC-relative relocation so we need a helper function to add the PC value and thus get the final value. */ if (!got_helper_rtx) { char name[32]; - - /* Skip the leading '%' as that cannot be used in a symbol name. */ - if (USE_HIDDEN_LINKONCE) - sprintf (name, "__sparc_get_pc_thunk.%s", - reg_names[REGNO (got_register_rtx)] + 1); - else - ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", - REGNO (got_register_rtx)); - + get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM); got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name)); } - insn - = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx); + emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (), + got_helper_rtx)); } - - emit_insn (insn); } /* Ensure that we are not using patterns that are not OK with PIC. */ @@ -5494,7 +5472,7 @@ save_local_or_in_reg_p (unsigned int regno, int leaf_function) return true; /* GOT register (%l7) if needed. */ - if (got_register_rtx && regno == REGNO (got_register_rtx)) + if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx) return true; /* If the function accesses prior frames, the frame pointer and the return @@ -12475,9 +12453,10 @@ static void sparc_file_end (void) { /* If we need to emit the special GOT helper function, do so now. */ - if (got_helper_needed) + if (got_helper_rtx) { const char *name = XSTR (got_helper_rtx, 0); + const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM]; #ifdef DWARF2_UNWIND_INFO bool do_cfi; #endif @@ -12514,22 +12493,17 @@ sparc_file_end (void) #ifdef DWARF2_UNWIND_INFO do_cfi = dwarf2out_do_cfi_asm (); if (do_cfi) - output_asm_insn (".cfi_startproc", NULL); + fprintf (asm_out_file, "\t.cfi_startproc\n"); #endif if (flag_delayed_branch) - { - output_asm_insn ("jmp\t%%o7+8", NULL); - output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx); - } + fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n", + reg_name, reg_name); else - { - output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx); - output_asm_insn ("jmp\t%%o7+8", NULL); - output_asm_insn (" nop", NULL); - } + fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n", + reg_name, reg_name); #ifdef DWARF2_UNWIND_INFO if (do_cfi) - output_asm_insn (".cfi_endproc", NULL); + fprintf (asm_out_file, "\t.cfi_endproc\n"); #endif } @@ -13035,10 +13009,7 @@ sparc_init_pic_reg (void) edge entry_edge; rtx_insn *seq; - /* In PIC mode, we need to always initialize the PIC register if optimization - is enabled, because we are called from IRA and LRA may later force things - to the constant pool for optimization purposes. */ - if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize)) + if (!crtl->uses_pic_offset_table) return; start_sequence (); diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index 468e2cc5d3b..25134bd1148 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -1601,7 +1601,10 @@ (clobber (reg:P O7_REG))] "REGNO (operands[0]) == INTVAL (operands[3])" { - return output_load_pcrel_sym (operands); + if (flag_delayed_branch) + return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0"; + else + return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop"; } [(set (attr "type") (const_string "multi")) (set (attr "length") diff --git a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c b/gcc/testsuite/gcc.c-torture/compile/20191108-1.c deleted file mode 100644 index 7929751bb06..00000000000 --- a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c +++ /dev/null @@ -1,14 +0,0 @@ -/* PR target/92095 */ -/* Testcase by Sergei Trofimovich */ - -typedef union { - double a; - int b[2]; -} c; - -double d(int e) -{ - c f; - (&f)->b[0] = 15728640; - return e ? -(&f)->a : (&f)->a; -} diff --git a/gcc/testsuite/gcc.target/sparc/overflow-3.c b/gcc/testsuite/gcc.target/sparc/overflow-3.c index 18253bb6e5e..8cb24f52f7b 100644 --- a/gcc/testsuite/gcc.target/sparc/overflow-3.c +++ b/gcc/testsuite/gcc.target/sparc/overflow-3.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O -fno-pie" } */ +/* { dg-options "-O" } */ /* { dg-require-effective-target lp64 } */ #include diff --git a/gcc/testsuite/gcc.target/sparc/overflow-4.c b/gcc/testsuite/gcc.target/sparc/overflow-4.c index fb30877efb9..868edea2b9e 100644 --- a/gcc/testsuite/gcc.target/sparc/overflow-4.c +++ b/gcc/testsuite/gcc.target/sparc/overflow-4.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O -fno-pie -mno-vis3" } */ +/* { dg-options "-O -mno-vis3" } */ /* { dg-require-effective-target lp64 } */ #include diff --git a/gcc/testsuite/gcc.target/sparc/overflow-5.c b/gcc/testsuite/gcc.target/sparc/overflow-5.c index 509d957715d..501ce04f7a1 100644 --- a/gcc/testsuite/gcc.target/sparc/overflow-5.c +++ b/gcc/testsuite/gcc.target/sparc/overflow-5.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O -fno-pie -mvis3" } */ +/* { dg-options "-O -mvis3" } */ /* { dg-require-effective-target lp64 } */ #include -- 2.25.4 ================================================ FILE: package/gcc/8.4.0/0003-libsanitizer-Remove-cyclades-from-libsanitizer.patch ================================================ From 29210b168cc458480f71b242ad964ecd79214e38 Mon Sep 17 00:00:00 2001 From: Tamar Christina Date: Fri, 21 May 2021 12:16:56 +0100 Subject: [PATCH] libsanitizer: Remove cyclades from libsanitizer The Linux kernel has removed the interface to cyclades from the latest kernel headers[1] due to them being orphaned for the past 13 years. libsanitizer uses this header when compiling against glibc, but glibcs itself doesn't seem to have any references to cyclades. Further more it seems that the driver is broken in the kernel and the firmware doesn't seem to be available anymore. As such since this is breaking the build of libsanitizer (and so the GCC bootstrap[2]) I propose to remove this. [1] https://lkml.org/lkml/2021/3/2/153 [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100379 libsanitizer/ChangeLog: PR sanitizer/100379 * sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Cherry-pick llvm-project revision f7c5351552387bd43f6ca3631016d7f0dfe0f135. * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise. * sanitizer_common/sanitizer_platform_limits_posix.h: Likewise. Signed-off-by: Maxim Kochetkov --- .../sanitizer_common_interceptors_ioctl.inc | 9 --------- .../sanitizer_platform_limits_posix.cc | 11 ----------- .../sanitizer_platform_limits_posix.h | 10 ---------- 3 files changed, 30 deletions(-) diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc index a68534c5a0a..85ab53e7430 100755 --- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc @@ -361,15 +361,6 @@ static void ioctl_table_fill() { #if SANITIZER_LINUX && !SANITIZER_ANDROID // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE - _(CYGETDEFTHRESH, WRITE, sizeof(int)); - _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); - _(CYGETMON, WRITE, struct_cyclades_monitor_sz); - _(CYGETTHRESH, WRITE, sizeof(int)); - _(CYGETTIMEOUT, WRITE, sizeof(int)); - _(CYSETDEFTHRESH, NONE, 0); - _(CYSETDEFTIMEOUT, NONE, 0); - _(CYSETTHRESH, NONE, 0); - _(CYSETTIMEOUT, NONE, 0); _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc index 5c720b2e700..17f2c78b389 100644 --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc @@ -157,7 +157,6 @@ typedef struct user_fpregs elf_fpregset_t; # include #endif #include -#include #include #include #include @@ -464,7 +463,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); #if SANITIZER_LINUX && !SANITIZER_ANDROID unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); - unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); #if EV_VERSION > (0x010000) unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); #else @@ -831,15 +829,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); #endif // SANITIZER_LINUX || SANITIZER_FREEBSD #if SANITIZER_LINUX && !SANITIZER_ANDROID - unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; - unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; - unsigned IOCTL_CYGETMON = CYGETMON; - unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; - unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; - unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; - unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; - unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; - unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h index 9c1429623ab..9f05c4e9ea7 100644 --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h @@ -1004,7 +1004,6 @@ struct __sanitizer_cookie_io_functions_t { #if SANITIZER_LINUX && !SANITIZER_ANDROID extern unsigned struct_ax25_parms_struct_sz; - extern unsigned struct_cyclades_monitor_sz; extern unsigned struct_input_keymap_entry_sz; extern unsigned struct_ipx_config_data_sz; extern unsigned struct_kbdiacrs_sz; @@ -1349,15 +1348,6 @@ struct __sanitizer_cookie_io_functions_t { #endif // SANITIZER_LINUX || SANITIZER_FREEBSD #if SANITIZER_LINUX && !SANITIZER_ANDROID - extern unsigned IOCTL_CYGETDEFTHRESH; - extern unsigned IOCTL_CYGETDEFTIMEOUT; - extern unsigned IOCTL_CYGETMON; - extern unsigned IOCTL_CYGETTHRESH; - extern unsigned IOCTL_CYGETTIMEOUT; - extern unsigned IOCTL_CYSETDEFTHRESH; - extern unsigned IOCTL_CYSETDEFTIMEOUT; - extern unsigned IOCTL_CYSETTHRESH; - extern unsigned IOCTL_CYSETTIMEOUT; extern unsigned IOCTL_EQL_EMANCIPATE; extern unsigned IOCTL_EQL_ENSLAVE; extern unsigned IOCTL_EQL_GETMASTRCFG; -- 2.31.1 ================================================ FILE: package/gcc/9.4.0/0001-or1k-Fix-issue-with-set_got-clobbering-LR-r9.patch ================================================ From 014db5e5febec94e35c13ce89ee6b389328873a1 Mon Sep 17 00:00:00 2001 From: shorne Date: Sat, 31 Aug 2019 06:00:56 +0000 Subject: [PATCH] or1k: Fix issue with set_got clobbering LR (r9) When compiling glibc we found that the GOT register was being allocated r9 when the instruction was still set_got_tmp. That is a problem because r9 is the Link Register (LR) in OpenRISC which is used/clobbered in set_got. We cannot use r9 as the GOT register. Also, we cannot simply say set_got_tmp clobbers r9 as this is the reason for having the temporary set_got_tmp. Fix by using a register class constraint that does not allow r9 during register allocation. gcc/ChangeLog: * config/or1k/constraints.md (t): New constraint. * config/or1k/or1k.h (GOT_REGS): New register class. * config/or1k/or1k.md (set_got_tmp, set_got): Use t contraint. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@275242 138bc75d-0d04-0410-961f-82ee72b054a4 (cherry picked from commit 5b9471ffca25d39635680516ba2ff85295480fc3) Signed-off-by: Romain Naour --- gcc/config/or1k/constraints.md | 4 ++++ gcc/config/or1k/or1k.h | 3 +++ gcc/config/or1k/or1k.md | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/config/or1k/constraints.md b/gcc/config/or1k/constraints.md index 93da8c058c6..a16b749008f 100644 --- a/gcc/config/or1k/constraints.md +++ b/gcc/config/or1k/constraints.md @@ -24,6 +24,7 @@ ; We use: ; c - sibcall registers +; t - got address registers (excludes LR (r9) which is clobbered by set_got) ; I - constant signed 16-bit ; K - constant unsigned 16-bit ; M - constant signed 16-bit shifted left 16-bits (l.movhi) @@ -32,6 +33,9 @@ (define_register_constraint "c" "SIBCALL_REGS" "Registers which can hold a sibling call address") +(define_register_constraint "t" "GOT_REGS" + "Registers which can be used to store the Global Offset Table (GOT) address.") + ;; Immediates (define_constraint "I" "A signed 16-bit immediate in the range -32768 to 32767." diff --git a/gcc/config/or1k/or1k.h b/gcc/config/or1k/or1k.h index 6dda230f217..feee702d89c 100644 --- a/gcc/config/or1k/or1k.h +++ b/gcc/config/or1k/or1k.h @@ -189,6 +189,7 @@ enum reg_class { NO_REGS, SIBCALL_REGS, + GOT_REGS, GENERAL_REGS, FLAG_REGS, ALL_REGS, @@ -200,6 +201,7 @@ enum reg_class #define REG_CLASS_NAMES { \ "NO_REGS", \ "SIBCALL_REGS", \ + "GOT_REGS", \ "GENERAL_REGS", \ "FLAG_REGS", \ "ALL_REGS" } @@ -212,6 +214,7 @@ enum reg_class #define REG_CLASS_CONTENTS \ { { 0x00000000, 0x00000000 }, \ { SIBCALL_REGS_MASK, 0 }, \ + { 0xfffffdff, 0x00000000 }, \ { 0xffffffff, 0x00000003 }, \ { 0x00000000, 0x00000004 }, \ { 0xffffffff, 0x00000007 } \ diff --git a/gcc/config/or1k/or1k.md b/gcc/config/or1k/or1k.md index 2dad51cd46b..88f3f02630f 100644 --- a/gcc/config/or1k/or1k.md +++ b/gcc/config/or1k/or1k.md @@ -595,7 +595,7 @@ ;; set_got pattern below. This works because the set_got_tmp insn is the ;; first insn in the stream and that it isn't moved during RA. (define_insn "set_got_tmp" - [(set (match_operand:SI 0 "register_operand" "=r") + [(set (match_operand:SI 0 "register_operand" "=t") (unspec_volatile:SI [(const_int 0)] UNSPECV_SET_GOT))] "" { @@ -604,7 +604,7 @@ ;; The insn to initialize the GOT. (define_insn "set_got" - [(set (match_operand:SI 0 "register_operand" "=r") + [(set (match_operand:SI 0 "register_operand" "=t") (unspec:SI [(const_int 0)] UNSPEC_SET_GOT)) (clobber (reg:SI LR_REGNUM))] "" -- 2.31.1 ================================================ FILE: package/gcc/9.4.0/0002-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch ================================================ From f80e9941739fb3973b61fc6a5abddef5ad2faf73 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Fri, 27 Mar 2020 21:23:53 +0100 Subject: [PATCH] gcc: define _REENTRANT for OpenRISC when -pthread is passed The detection of pthread support fails on OpenRISC unless _REENTRANT is defined. Added the CPP_SPEC definition to correct this. Patch sent upstream: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94372 Signed-off-by: Bernd Kuhls --- gcc/config/or1k/linux.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gcc/config/or1k/linux.h b/gcc/config/or1k/linux.h index cbdc781418f..36303af892c 100644 --- a/gcc/config/or1k/linux.h +++ b/gcc/config/or1k/linux.h @@ -32,6 +32,8 @@ #undef MUSL_DYNAMIC_LINKER #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-or1k.so.1" +#define CPP_SPEC "%{pthread:-D_REENTRANT}" + #undef LINK_SPEC #define LINK_SPEC "%{h*} \ %{static:-Bstatic} \ -- 2.31.1 ================================================ FILE: package/gcc/9.4.0/0003-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch ================================================ From 1107ecc3e8af31adc7bbd4e08c0614836bd1cebd Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Wed, 20 Jan 2021 23:22:16 +0100 Subject: [PATCH] Revert "re PR target/92095 (internal error with -O1 -mcpu=niagara2 -fPIE)" This reverts commit 6bf2990842388101897b6f465524cbc295ee8cf9. Building the Buildroot defconfig qemu_sparc_ss10_defconfig using gcc 8.4, 9.3 and 10 produce a broken rootfs that trigger illegal instruction messages. gcc 8.3, 9.2 are the latest working gcc version. git bisect between gcc 8.4 and 8.4 allowed to identify the commit that introcuce the regression. Reverting this patch allowed to produce a working rootfs. Signed-off-by: Romain Naour Cc: Eric Botcazou --- gcc/config/sparc/sparc-protos.h | 1 - gcc/config/sparc/sparc.c | 121 +++++++----------- gcc/config/sparc/sparc.md | 5 +- .../gcc.c-torture/compile/20191108-1.c | 14 -- gcc/testsuite/gcc.target/sparc/overflow-3.c | 2 +- gcc/testsuite/gcc.target/sparc/overflow-4.c | 2 +- gcc/testsuite/gcc.target/sparc/overflow-5.c | 2 +- 7 files changed, 53 insertions(+), 94 deletions(-) delete mode 100644 gcc/testsuite/gcc.c-torture/compile/20191108-1.c diff --git a/gcc/config/sparc/sparc-protos.h b/gcc/config/sparc/sparc-protos.h index f1c120c4860..f4b6f00a7b1 100644 --- a/gcc/config/sparc/sparc-protos.h +++ b/gcc/config/sparc/sparc-protos.h @@ -69,7 +69,6 @@ extern void sparc_split_reg_mem (rtx, rtx, machine_mode); extern void sparc_split_mem_reg (rtx, rtx, machine_mode); extern int sparc_split_reg_reg_legitimate (rtx, rtx); extern void sparc_split_reg_reg (rtx, rtx, machine_mode); -extern const char *output_load_pcrel_sym (rtx *); extern const char *output_ubranch (rtx, rtx_insn *); extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *); extern const char *output_return (rtx_insn *); diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 0553dc501e6..516dcf96d7b 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -4170,6 +4170,13 @@ eligible_for_sibcall_delay (rtx_insn *trial) static bool sparc_cannot_force_const_mem (machine_mode mode, rtx x) { + /* After IRA has run in PIC mode, it is too late to put anything into the + constant pool if the PIC register hasn't already been initialized. */ + if ((lra_in_progress || reload_in_progress) + && flag_pic + && !crtl->uses_pic_offset_table) + return true; + switch (GET_CODE (x)) { case CONST_INT: @@ -4205,11 +4212,9 @@ sparc_cannot_force_const_mem (machine_mode mode, rtx x) } /* Global Offset Table support. */ -static GTY(()) rtx got_symbol_rtx = NULL_RTX; -static GTY(()) rtx got_register_rtx = NULL_RTX; static GTY(()) rtx got_helper_rtx = NULL_RTX; - -static GTY(()) bool got_helper_needed = false; +static GTY(()) rtx got_register_rtx = NULL_RTX; +static GTY(()) rtx got_symbol_rtx = NULL_RTX; /* Return the SYMBOL_REF for the Global Offset Table. */ @@ -4222,6 +4227,27 @@ sparc_got (void) return got_symbol_rtx; } +#ifdef HAVE_GAS_HIDDEN +# define USE_HIDDEN_LINKONCE 1 +#else +# define USE_HIDDEN_LINKONCE 0 +#endif + +static void +get_pc_thunk_name (char name[32], unsigned int regno) +{ + const char *reg_name = reg_names[regno]; + + /* Skip the leading '%' as that cannot be used in a + symbol name. */ + reg_name += 1; + + if (USE_HIDDEN_LINKONCE) + sprintf (name, "__sparc_get_pc_thunk.%s", reg_name); + else + ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno); +} + /* Wrapper around the load_pcrel_sym{si,di} patterns. */ static rtx @@ -4241,78 +4267,30 @@ gen_load_pcrel_sym (rtx op0, rtx op1, rtx op2) return insn; } -/* Output the load_pcrel_sym{si,di} patterns. */ - -const char * -output_load_pcrel_sym (rtx *operands) -{ - if (flag_delayed_branch) - { - output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands); - output_asm_insn ("call\t%a2", operands); - output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands); - } - else - { - output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands); - output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands); - output_asm_insn ("call\t%a2", operands); - output_asm_insn (" nop", NULL); - } - - if (operands[2] == got_helper_rtx) - got_helper_needed = true; - - return ""; -} - -#ifdef HAVE_GAS_HIDDEN -# define USE_HIDDEN_LINKONCE 1 -#else -# define USE_HIDDEN_LINKONCE 0 -#endif - /* Emit code to load the GOT register. */ void load_got_register (void) { - rtx insn; + if (!got_register_rtx) + got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM); if (TARGET_VXWORKS_RTP) - { - if (!got_register_rtx) - got_register_rtx = pic_offset_table_rtx; - - insn = gen_vxworks_load_got (); - } + emit_insn (gen_vxworks_load_got ()); else { - if (!got_register_rtx) - got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM); - /* The GOT symbol is subject to a PC-relative relocation so we need a helper function to add the PC value and thus get the final value. */ if (!got_helper_rtx) { char name[32]; - - /* Skip the leading '%' as that cannot be used in a symbol name. */ - if (USE_HIDDEN_LINKONCE) - sprintf (name, "__sparc_get_pc_thunk.%s", - reg_names[REGNO (got_register_rtx)] + 1); - else - ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", - REGNO (got_register_rtx)); - + get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM); got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name)); } - insn - = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx); + emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (), + got_helper_rtx)); } - - emit_insn (insn); } /* Ensure that we are not using patterns that are not OK with PIC. */ @@ -5477,7 +5455,7 @@ save_local_or_in_reg_p (unsigned int regno, int leaf_function) return true; /* GOT register (%l7) if needed. */ - if (got_register_rtx && regno == REGNO (got_register_rtx)) + if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx) return true; /* If the function accesses prior frames, the frame pointer and the return @@ -12520,9 +12498,10 @@ static void sparc_file_end (void) { /* If we need to emit the special GOT helper function, do so now. */ - if (got_helper_needed) + if (got_helper_rtx) { const char *name = XSTR (got_helper_rtx, 0); + const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM]; #ifdef DWARF2_UNWIND_INFO bool do_cfi; #endif @@ -12559,22 +12538,17 @@ sparc_file_end (void) #ifdef DWARF2_UNWIND_INFO do_cfi = dwarf2out_do_cfi_asm (); if (do_cfi) - output_asm_insn (".cfi_startproc", NULL); + fprintf (asm_out_file, "\t.cfi_startproc\n"); #endif if (flag_delayed_branch) - { - output_asm_insn ("jmp\t%%o7+8", NULL); - output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx); - } + fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n", + reg_name, reg_name); else - { - output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx); - output_asm_insn ("jmp\t%%o7+8", NULL); - output_asm_insn (" nop", NULL); - } + fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n", + reg_name, reg_name); #ifdef DWARF2_UNWIND_INFO if (do_cfi) - output_asm_insn (".cfi_endproc", NULL); + fprintf (asm_out_file, "\t.cfi_endproc\n"); #endif } @@ -13080,10 +13054,7 @@ sparc_init_pic_reg (void) edge entry_edge; rtx_insn *seq; - /* In PIC mode, we need to always initialize the PIC register if optimization - is enabled, because we are called from IRA and LRA may later force things - to the constant pool for optimization purposes. */ - if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize)) + if (!crtl->uses_pic_offset_table) return; start_sequence (); diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index d9ef79c13cc..6dbd054f1c7 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -1601,7 +1601,10 @@ (clobber (reg:P O7_REG))] "REGNO (operands[0]) == INTVAL (operands[3])" { - return output_load_pcrel_sym (operands); + if (flag_delayed_branch) + return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0"; + else + return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop"; } [(set (attr "type") (const_string "multi")) (set (attr "length") diff --git a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c b/gcc/testsuite/gcc.c-torture/compile/20191108-1.c deleted file mode 100644 index 7929751bb06..00000000000 --- a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c +++ /dev/null @@ -1,14 +0,0 @@ -/* PR target/92095 */ -/* Testcase by Sergei Trofimovich */ - -typedef union { - double a; - int b[2]; -} c; - -double d(int e) -{ - c f; - (&f)->b[0] = 15728640; - return e ? -(&f)->a : (&f)->a; -} diff --git a/gcc/testsuite/gcc.target/sparc/overflow-3.c b/gcc/testsuite/gcc.target/sparc/overflow-3.c index 52d6ab2b688..86dddfb09e6 100644 --- a/gcc/testsuite/gcc.target/sparc/overflow-3.c +++ b/gcc/testsuite/gcc.target/sparc/overflow-3.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target lp64 } */ -/* { dg-options "-O -fno-pie" } */ +/* { dg-options "-O" } */ #include #include diff --git a/gcc/testsuite/gcc.target/sparc/overflow-4.c b/gcc/testsuite/gcc.target/sparc/overflow-4.c index c6121b958c3..019feee335c 100644 --- a/gcc/testsuite/gcc.target/sparc/overflow-4.c +++ b/gcc/testsuite/gcc.target/sparc/overflow-4.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target lp64 } */ -/* { dg-options "-O -fno-pie -mno-vis3 -mno-vis4" } */ +/* { dg-options "-O -mno-vis3 -mno-vis4" } */ #include #include diff --git a/gcc/testsuite/gcc.target/sparc/overflow-5.c b/gcc/testsuite/gcc.target/sparc/overflow-5.c index f00283f6e7b..67d4ac38095 100644 --- a/gcc/testsuite/gcc.target/sparc/overflow-5.c +++ b/gcc/testsuite/gcc.target/sparc/overflow-5.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target lp64 } */ -/* { dg-options "-O -fno-pie -mvis3" } */ +/* { dg-options "-O -mvis3" } */ #include #include -- 2.31.1 ================================================ FILE: package/gcc/9.4.0/0004-or1k-Add-mcmodel-option-to-handle-large-GOTs.patch ================================================ From 90b202b59fa2bdb68314a23471b32d3e16602bc8 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:11:44 +0900 Subject: [PATCH] or1k: Add mcmodel option to handle large GOTs When building libgeos we get an error with: linux-uclibc/9.3.0/crtbeginS.o: in function `__do_global_dtors_aux': crtstuff.c:(.text+0x118): relocation truncated to fit: R_OR1K_GOT16 against symbol `__cxa_finalize' defined in .text section in /home/shorne/work/openrisc/3eb9f9d0f6d8274b2d19753c006bd83f7d536e3c/output/host/or1k-buildroot-linux-uclibc/sysroot/lib/libc.so. This is caused by GOT code having a limit of 64k. In OpenRISC this looks to be the only relocation code pattern to be limited to 64k. This patch allows specifying a new option -mcmodel=large which can be used to generate 2 more instructions to construct 32-bit addresses for up to 4G GOTs. gcc/ChangeLog: PR 99783 * config/or1k/or1k-opts.h: New file. * config/or1k/or1k.c (or1k_legitimize_address_1, print_reloc): Support generating gotha relocations if -mcmodel=large is specified. * config/or1k/or1k.h (TARGET_CMODEL_SMALL, TARGET_CMODEL_LARGE): New macros. * config/or1k/or1k.opt (mcmodel=): New option. * doc/invoke.text (OpenRISC Options): Document mcmodel. Signed-off-by: Giulio Benetti --- gcc/config/or1k/or1k-opts.h | 30 ++++++++++++++++++++++++++++++ gcc/config/or1k/or1k.c | 11 +++++++++-- gcc/config/or1k/or1k.h | 7 +++++++ gcc/config/or1k/or1k.opt | 19 +++++++++++++++++++ gcc/doc/invoke.texi | 13 ++++++++++++- 5 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 gcc/config/or1k/or1k-opts.h diff --git a/gcc/config/or1k/or1k-opts.h b/gcc/config/or1k/or1k-opts.h new file mode 100644 index 00000000000..f791b894fdd --- /dev/null +++ b/gcc/config/or1k/or1k-opts.h @@ -0,0 +1,30 @@ +/* Definitions for option handling for OpenRISC. + Copyright (C) 2021 Free Software Foundation, Inc. + Contributed by Stafford Horne. + + 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 + . */ + +#ifndef GCC_OR1K_OPTS_H +#define GCC_OR1K_OPTS_H + +/* The OpenRISC code generation models available. */ +enum or1k_cmodel_type { + CMODEL_SMALL, + CMODEL_LARGE +}; + +#endif /* GCC_OR1K_OPTS_H */ diff --git a/gcc/config/or1k/or1k.c b/gcc/config/or1k/or1k.c index fc10fcfabde..df67d72b139 100644 --- a/gcc/config/or1k/or1k.c +++ b/gcc/config/or1k/or1k.c @@ -750,7 +750,14 @@ or1k_legitimize_address_1 (rtx x, rtx scratch) { base = gen_sym_unspec (base, UNSPEC_GOT); crtl->uses_pic_offset_table = 1; - t2 = gen_rtx_LO_SUM (Pmode, pic_offset_table_rtx, base); + if (TARGET_CMODEL_LARGE) + { + emit_insn (gen_rtx_SET (t1, gen_rtx_HIGH (Pmode, base))); + emit_insn (gen_add3_insn (t1, t1, pic_offset_table_rtx)); + t2 = gen_rtx_LO_SUM (Pmode, t1, base); + } + else + t2 = gen_rtx_LO_SUM (Pmode, pic_offset_table_rtx, base); t2 = gen_const_mem (Pmode, t2); emit_insn (gen_rtx_SET (t1, t2)); base = t1; @@ -1097,7 +1104,7 @@ print_reloc (FILE *stream, rtx x, HOST_WIDE_INT add, reloc_kind kind) no special markup. */ static const char * const relocs[RKIND_MAX][RTYPE_MAX] = { { "lo", "got", "gotofflo", "tpofflo", "gottpofflo", "tlsgdlo" }, - { "ha", NULL, "gotoffha", "tpoffha", "gottpoffha", "tlsgdhi" }, + { "ha", "gotha", "gotoffha", "tpoffha", "gottpoffha", "tlsgdhi" }, }; reloc_type type = RTYPE_DIRECT; diff --git a/gcc/config/or1k/or1k.h b/gcc/config/or1k/or1k.h index feee702d89c..dbaf0d0fe4c 100644 --- a/gcc/config/or1k/or1k.h +++ b/gcc/config/or1k/or1k.h @@ -21,6 +21,8 @@ #ifndef GCC_OR1K_H #define GCC_OR1K_H +#include "config/or1k/or1k-opts.h" + /* Names to predefine in the preprocessor for this target machine. */ #define TARGET_CPU_CPP_BUILTINS() \ do \ @@ -35,6 +37,11 @@ } \ while (0) +#define TARGET_CMODEL_SMALL \ + (or1k_code_model == CMODEL_SMALL) +#define TARGET_CMODEL_LARGE \ + (or1k_code_model == CMODEL_LARGE) + /* Storage layout. */ #define DEFAULT_SIGNED_CHAR 1 diff --git a/gcc/config/or1k/or1k.opt b/gcc/config/or1k/or1k.opt index 7bdbd842dd4..116524c3441 100644 --- a/gcc/config/or1k/or1k.opt +++ b/gcc/config/or1k/or1k.opt @@ -23,6 +23,9 @@ ; Please try to keep this file in ASCII collating order. +HeaderInclude +config/or1k/or1k-opts.h + mhard-div Target RejectNegative InverseMask(SOFT_DIV) Use hardware divide instructions, use -msoft-div for emulation. @@ -31,6 +34,22 @@ mhard-mul Target RejectNegative InverseMask(SOFT_MUL). Use hardware multiply instructions, use -msoft-mul for emulation. +mcmodel= +Target RejectNegative Joined Enum(or1k_cmodel_type) Var(or1k_code_model) Init(CMODEL_SMALL) +Specify the code model used for accessing memory addresses. Specifying large +enables generating binaries with large global offset tables. By default the +value is small. + +Enum +Name(or1k_cmodel_type) Type(enum or1k_cmodel_type) +Known code model types (for use with the -mcmodel= option): + +EnumValue +Enum(or1k_cmodel_type) String(small) Value(CMODEL_SMALL) + +EnumValue +Enum(or1k_cmodel_type) String(large) Value(CMODEL_LARGE) + mcmov Target RejectNegative Mask(CMOV) Allows generation of binaries which use the l.cmov instruction. If your target diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 7b5f6e03d9f..683c64417af 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1032,7 +1032,9 @@ Objective-C and Objective-C++ Dialects}. @emph{OpenRISC Options} @gccoptlist{-mboard=@var{name} -mnewlib -mhard-mul -mhard-div @gol -msoft-mul -msoft-div @gol --mcmov -mror -msext -msfimm -mshftimm} +-mcmov -mror -mrori -msext -msfimm -mshftimm @gol +-mcmodel=@var{code-model}} + @emph{PDP-11 Options} @gccoptlist{-mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 @gol @@ -27462,6 +27464,15 @@ MWAITX, SHA, CLZERO, AES, PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, and 64-bit instruction set extensions.) +@item -mcmodel=small +@opindex mcmodel=small +Generate OpenRISC code for the small model: The GOT is limited to 64k. This is +the default model. + +@item -mcmodel=large +@opindex mcmodel=large +Generate OpenRISC code for the large model: The GOT may grow up to 4G in size. + @item btver1 CPUs based on AMD Family 14h cores with x86-64 instruction set support. (This -- 2.31.1 ================================================ FILE: package/gcc/9.4.0/0005-or1k-Use-cmodel-large-when-building-crtstuff.patch ================================================ From d64a757040fe36b0d9dc65d24107c656f66bc8e5 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 2 May 2021 06:11:45 +0900 Subject: [PATCH] or1k: Use cmodel=large when building crtstuff When linking gcc runtime objects into large binaries the link may fail with the below errors. This will happen even if we are building with -mcmodel=large. /home/shorne/work/openrisc/output/host/lib/gcc/or1k-buildroot-linux-uclibc/10.3.0/crtbeginS.o: in function `deregister_tm_clones': crtstuff.c:(.text+0x3c): relocation truncated to fit: R_OR1K_GOT16 against undefined symbol `_ITM_deregisterTMCloneTable' /home/shorne/work/openrisc/output/host/lib/gcc/or1k-buildroot-linux-uclibc/10.3.0/crtbeginS.o: in function `register_tm_clones': crtstuff.c:(.text+0xc0): relocation truncated to fit: R_OR1K_GOT16 against undefined symbol `_ITM_registerTMCloneTable' This patch builds the gcc crtstuff binaries always with the -mcmodel=large option to ensure they can be linked into large binaries. libgcc/ChangeLog: PR 99783 * config.host (or1k-*, tmake_file): Add or1k/t-crtstuff. * config/or1k/t-crtstuff: New file. Signed-off-by: Giulio Benetti --- libgcc/config.host | 4 ++-- libgcc/config/or1k/t-crtstuff | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 libgcc/config/or1k/t-crtstuff diff --git a/libgcc/config.host b/libgcc/config.host index bdbf77a3e62..bfb45a90630 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -1061,12 +1061,12 @@ nios2-*-*) extra_parts="$extra_parts crti.o crtn.o" ;; or1k-*-linux*) - tmake_file="$tmake_file or1k/t-or1k" + tmake_file="$tmake_file or1k/t-or1k or1k/t-crtstuff" tmake_file="$tmake_file t-softfp-sfdf t-softfp" md_unwind_header=or1k/linux-unwind.h ;; or1k-*-*) - tmake_file="$tmake_file or1k/t-or1k" + tmake_file="$tmake_file or1k/t-or1k or1k/t-crtstuff" tmake_file="$tmake_file t-softfp-sfdf t-softfp" ;; pdp11-*-*) diff --git a/libgcc/config/or1k/t-crtstuff b/libgcc/config/or1k/t-crtstuff new file mode 100644 index 00000000000..dcae7f3498e --- /dev/null +++ b/libgcc/config/or1k/t-crtstuff @@ -0,0 +1,2 @@ +# Compile crtbeginS.o and crtendS.o with -mcmodel=large +CRTSTUFF_T_CFLAGS_S += -mcmodel=large -- 2.31.1 ================================================ FILE: package/gcc/Config.in.host ================================================ comment "GCC Options" choice prompt "GCC compiler Version" default BR2_GCC_VERSION_ARC if BR2_arc default BR2_GCC_VERSION_POWERPC_SPE if BR2_powerpc_SPE default BR2_GCC_VERSION_10_X help Select the version of gcc you wish to use. config BR2_GCC_VERSION_ARC bool "gcc arc (10.x)" # Only supported architecture depends on BR2_arc select BR2_TOOLCHAIN_GCC_AT_LEAST_9 config BR2_GCC_VERSION_POWERPC_SPE bool "gcc powerpc spe" # powerpc spe support has been deprecated since gcc 8.x. # https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html depends on BR2_powerpc_SPE select BR2_TOOLCHAIN_GCC_AT_LEAST_8 config BR2_GCC_VERSION_9_X bool "gcc 9.x" depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_10 # powerpc spe support has been deprecated since gcc 8.x. # https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html depends on !BR2_powerpc_SPE # C-SKY sk610 needs abiv1, which is not supported in # upstream gcc. C-SKY gcc upstream support not tested # with upstream binutils and glibc. depends on !BR2_csky select BR2_TOOLCHAIN_GCC_AT_LEAST_9 config BR2_GCC_VERSION_10_X bool "gcc 10.x" depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_11 # powerpc spe support has been deprecated since gcc 8.x. # https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html depends on !BR2_powerpc_SPE # C-SKY sk610 needs abiv1, which is not supported in # upstream gcc. C-SKY gcc upstream support not tested # with upstream binutils and glibc. depends on !BR2_csky select BR2_TOOLCHAIN_GCC_AT_LEAST_10 config BR2_GCC_VERSION_11_X bool "gcc 11.x" # powerpc spe support has been deprecated since gcc 8.x. # https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html depends on !BR2_powerpc_SPE # uClibc-ng broken on sparc due to recent gcc changes # that need to be reverted since gcc 8.4, 9.3 and 10.1. # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98784 depends on !BR2_sparc select BR2_TOOLCHAIN_GCC_AT_LEAST_11 endchoice # libcilkrts was introduced in gcc 4.9 and removed in gcc 8.x config BR2_GCC_SUPPORTS_LIBCILKRTS bool default y if !BR2_TOOLCHAIN_GCC_AT_LEAST_8 config BR2_GCC_SUPPORTS_DLANG bool default y if BR2_aarch64 default y if BR2_arm default y if BR2_i386 default y if BR2_mips || BR2_mipsel default y if BR2_mips64 || BR2_mips64el default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le default y if BR2_x86_64 default y if BR2_riscv && !BR2_RISCV_64 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 depends on BR2_TOOLCHAIN_USES_GLIBC config BR2_GCC_VERSION string default "8.4.0" if BR2_GCC_VERSION_POWERPC_SPE default "9.4.0" if BR2_GCC_VERSION_9_X default "10.3.0" if BR2_GCC_VERSION_10_X default "11.2.0" if BR2_GCC_VERSION_11_X default "arc-2020.09-release" if BR2_GCC_VERSION_ARC config BR2_EXTRA_GCC_CONFIG_OPTIONS string "Additional gcc options" default "" help Any additional gcc configure options you may want to include. Those options are applied for all of the gcc initial, gcc intermediate and gcc final passes. config BR2_TOOLCHAIN_BUILDROOT_CXX bool "Enable C++ support" select BR2_INSTALL_LIBSTDCPP help Enable this option if you want your toolchain to support the 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 installed on your target system. config BR2_TOOLCHAIN_BUILDROOT_DLANG bool "Enable D language support" depends on BR2_GCC_SUPPORTS_DLANG select BR2_TOOLCHAIN_HAS_DLANG help Enable this option if you want your toolchain to support the D language and you want D libraries to be installed on your target system. config BR2_GCC_ENABLE_LTO bool "Enable compiler link-time-optimization support" select BR2_BINUTILS_ENABLE_LTO help This option enables link-time optimization (LTO) support in gcc. config BR2_GCC_ENABLE_OPENMP bool "Enable compiler OpenMP support" depends on !BR2_PTHREADS_NONE && !BR2_arc && !BR2_microblaze select BR2_TOOLCHAIN_HAS_OPENMP help Enable OpenMP support for the compiler config BR2_GCC_ENABLE_GRAPHITE bool "Enable graphite support" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 help This option enables the graphite optimizations in the compiler. comment "graphite support needs gcc >= 5.x" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_5 ================================================ FILE: package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch ================================================ From b92c22b144d063c4436a6693045ceb57d344c495 Mon Sep 17 00:00:00 2001 From: Claudiu Zissulescu Date: Wed, 11 Nov 2020 12:31:10 +0200 Subject: [PATCH] arc: Refurbish adc/sbc patterns The adc/sbc patterns were unecessary spliting, remove that and associated functions. gcc/ChangeLog: 2020-10-11 Claudiu Zissulescu * config/arc/arc-protos.h (arc_scheduling_not_expected): Remove it. (arc_sets_cc_p): Likewise. (arc_need_delay): Likewise. * config/arc/arc.c (arc_sets_cc_p): Likewise. (arc_need_delay): Likewise. (arc_scheduling_not_expected): Likewise. * config/arc/arc.md: Convert adc/sbc patterns to simple instruction definitions. Signed-off-by: Claudiu Zissulescu Downloaded from upstream commit https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/b92c22b144d063c4436a6693045ceb57d344c495 Signed-off-by: Bernd Kuhls --- gcc/config/arc/arc-protos.h | 3 -- gcc/config/arc/arc.c | 53 --------------------- gcc/config/arc/arc.md | 95 +++++++++++-------------------------- 3 files changed, 29 insertions(+), 122 deletions(-) diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h index c72d78e3b9e..de4cf47c818 100644 --- a/gcc/config/arc/arc-protos.h +++ b/gcc/config/arc/arc-protos.h @@ -90,10 +90,7 @@ extern void split_subsi (rtx *); extern void arc_split_move (rtx *); extern const char *arc_short_long (rtx_insn *insn, const char *, const char *); extern rtx arc_regno_use_in (unsigned int, rtx); -extern bool arc_scheduling_not_expected (void); -extern bool arc_sets_cc_p (rtx_insn *insn); extern int arc_label_align (rtx_insn *label); -extern bool arc_need_delay (rtx_insn *insn); extern bool arc_text_label (rtx_insn *insn); extern bool arc_short_comparison_p (rtx, int); diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c index 5a7b0cb6696..c3ee9181f93 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -10341,59 +10341,6 @@ arc_attr_type (rtx_insn *insn) return get_attr_type (insn); } -/* Return true if insn sets the condition codes. */ - -bool -arc_sets_cc_p (rtx_insn *insn) -{ - if (NONJUMP_INSN_P (insn)) - if (rtx_sequence *seq = dyn_cast (PATTERN (insn))) - insn = seq->insn (seq->len () - 1); - return arc_attr_type (insn) == TYPE_COMPARE; -} - -/* Return true if INSN is an instruction with a delay slot we may want - to fill. */ - -bool -arc_need_delay (rtx_insn *insn) -{ - rtx_insn *next; - - if (!flag_delayed_branch) - return false; - /* The return at the end of a function needs a delay slot. */ - if (NONJUMP_INSN_P (insn) && GET_CODE (PATTERN (insn)) == USE - && (!(next = next_active_insn (insn)) - || ((!NONJUMP_INSN_P (next) || GET_CODE (PATTERN (next)) != SEQUENCE) - && arc_attr_type (next) == TYPE_RETURN)) - && (!TARGET_PAD_RETURN - || (prev_active_insn (insn) - && prev_active_insn (prev_active_insn (insn)) - && prev_active_insn (prev_active_insn (prev_active_insn (insn)))))) - return true; - if (NONJUMP_INSN_P (insn) - ? (GET_CODE (PATTERN (insn)) == USE - || GET_CODE (PATTERN (insn)) == CLOBBER - || GET_CODE (PATTERN (insn)) == SEQUENCE) - : JUMP_P (insn) - ? (GET_CODE (PATTERN (insn)) == ADDR_VEC - || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC) - : !CALL_P (insn)) - return false; - return num_delay_slots (insn) != 0; -} - -/* Return true if the scheduling pass(es) has/have already run, - i.e. where possible, we should try to mitigate high latencies - by different instruction selection. */ - -bool -arc_scheduling_not_expected (void) -{ - return cfun->machine->arc_reorg_started; -} - /* Code has a minimum p2 alignment of 1, which we must restore after an ADDR_DIFF_VEC. */ diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md index f91adbc0d94..c635b69ddd5 100644 --- a/gcc/config/arc/arc.md +++ b/gcc/config/arc/arc.md @@ -2847,43 +2847,25 @@ archs4x, archs4xd" (set_attr "type" "compare") (set_attr "length" "4,4,8")]) -; w/c/c comes first (rather than w/0/C_0) to prevent the middle-end -; needlessly prioritizing the matching constraint. -; Rcw/0/C_0 comes before w/c/L so that the lower latency conditional -; execution is used where possible. -(define_insn_and_split "adc" - [(set (match_operand:SI 0 "dest_reg_operand" "=w,Rcw,w,Rcw,w") - (plus:SI (plus:SI (ltu:SI (reg:CC_C CC_REG) (const_int 0)) - (match_operand:SI 1 "nonmemory_operand" - "%c,0,c,0,cCal")) - (match_operand:SI 2 "nonmemory_operand" "c,C_0,L,I,cCal")))] +(define_insn "adc" + [(set (match_operand:SI 0 "register_operand" "=r, r,r,r, r,r") + (plus:SI + (plus:SI + (ltu:SI (reg:CC_C CC_REG) (const_int 0)) + (match_operand:SI 1 "nonmemory_operand" "%r, 0,r,0,Cal,r")) + (match_operand:SI 2 "nonmemory_operand" "r,C_0,L,I, r,Cal")))] "register_operand (operands[1], SImode) || register_operand (operands[2], SImode)" "@ - adc %0,%1,%2 - add.cs %0,%1,1 - adc %0,%1,%2 - adc %0,%1,%2 - adc %0,%1,%2" - ; if we have a bad schedule after sched2, split. - "reload_completed - && !optimize_size && (!TARGET_ARC600_FAMILY) - && arc_scheduling_not_expected () - && arc_sets_cc_p (prev_nonnote_insn (insn)) - /* If next comes a return or other insn that needs a delay slot, - expect the adc to get into the delay slot. */ - && next_nonnote_insn (insn) - && !arc_need_delay (next_nonnote_insn (insn)) - /* Restore operands before emitting. */ - && (extract_insn_cached (insn), 1)" - [(set (match_dup 0) (match_dup 3)) - (cond_exec - (ltu (reg:CC_C CC_REG) (const_int 0)) - (set (match_dup 0) (plus:SI (match_dup 0) (const_int 1))))] - "operands[3] = simplify_gen_binary (PLUS, SImode, operands[1], operands[2]);" + adc\\t%0,%1,%2 + add.cs\\t%0,%1,1 + adc\\t%0,%1,%2 + adc\\t%0,%1,%2 + adc\\t%0,%1,%2 + adc\\t%0,%1,%2" [(set_attr "cond" "use") (set_attr "type" "cc_arith") - (set_attr "length" "4,4,4,4,8")]) + (set_attr "length" "4,4,4,4,8,8")]) ; combiner-splitter cmp / scc -> cmp / adc (define_split @@ -3015,7 +2997,7 @@ archs4x, archs4xd" DONE; } emit_insn (gen_sub_f (l0, l1, l2)); - emit_insn (gen_sbc (h0, h1, h2, gen_rtx_REG (CCmode, CC_REG))); + emit_insn (gen_sbc (h0, h1, h2)); DONE; ") @@ -3030,44 +3012,25 @@ archs4x, archs4xd" (set_attr "type" "cc_arith") (set_attr "length" "4")]) -; w/c/c comes first (rather than Rcw/0/C_0) to prevent the middle-end -; needlessly prioritizing the matching constraint. -; Rcw/0/C_0 comes before w/c/L so that the lower latency conditional execution -; is used where possible. -(define_insn_and_split "sbc" - [(set (match_operand:SI 0 "dest_reg_operand" "=w,Rcw,w,Rcw,w") - (minus:SI (minus:SI (match_operand:SI 1 "nonmemory_operand" - "c,0,c,0,cCal") - (ltu:SI (match_operand:CC_C 3 "cc_use_register") - (const_int 0))) - (match_operand:SI 2 "nonmemory_operand" "c,C_0,L,I,cCal")))] +(define_insn "sbc" + [(set (match_operand:SI 0 "dest_reg_operand" "=r,r,r,r,r,r") + (minus:SI + (minus:SI + (match_operand:SI 1 "nonmemory_operand" "r, 0,r,0, r,Cal") + (ltu:SI (reg:CC_C CC_REG) (const_int 0))) + (match_operand:SI 2 "nonmemory_operand" "r,C_0,L,I,Cal,r")))] "register_operand (operands[1], SImode) || register_operand (operands[2], SImode)" "@ - sbc %0,%1,%2 - sub.cs %0,%1,1 - sbc %0,%1,%2 - sbc %0,%1,%2 - sbc %0,%1,%2" - ; if we have a bad schedule after sched2, split. - "reload_completed - && !optimize_size && (!TARGET_ARC600_FAMILY) - && arc_scheduling_not_expected () - && arc_sets_cc_p (prev_nonnote_insn (insn)) - /* If next comes a return or other insn that needs a delay slot, - expect the adc to get into the delay slot. */ - && next_nonnote_insn (insn) - && !arc_need_delay (next_nonnote_insn (insn)) - /* Restore operands before emitting. */ - && (extract_insn_cached (insn), 1)" - [(set (match_dup 0) (match_dup 4)) - (cond_exec - (ltu (reg:CC_C CC_REG) (const_int 0)) - (set (match_dup 0) (plus:SI (match_dup 0) (const_int -1))))] - "operands[4] = simplify_gen_binary (MINUS, SImode, operands[1], operands[2]);" + sbc\\t%0,%1,%2 + sub.cs\\t%0,%1,1 + sbc\\t%0,%1,%2 + sbc\\t%0,%1,%2 + sbc\\t%0,%1,%2 + sbc\\t%0,%1,%2" [(set_attr "cond" "use") (set_attr "type" "cc_arith") - (set_attr "length" "4,4,4,4,8")]) + (set_attr "length" "4,4,4,4,8,8")]) (define_insn "sub_f" [(set (reg:CC CC_REG) ================================================ FILE: package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch ================================================ From 1557c3d919623a95c2aa090d3018c31401f63f88 Mon Sep 17 00:00:00 2001 From: Tamar Christina Date: Fri, 21 May 2021 12:16:56 +0100 Subject: [PATCH] libsanitizer: Remove cyclades from libsanitizer The Linux kernel has removed the interface to cyclades from the latest kernel headers[1] due to them being orphaned for the past 13 years. libsanitizer uses this header when compiling against glibc, but glibcs itself doesn't seem to have any references to cyclades. Further more it seems that the driver is broken in the kernel and the firmware doesn't seem to be available anymore. As such since this is breaking the build of libsanitizer (and so the GCC bootstrap[2]) I propose to remove this. [1] https://lkml.org/lkml/2021/3/2/153 [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100379 libsanitizer/ChangeLog: PR sanitizer/100379 * sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Cherry-pick llvm-project revision f7c5351552387bd43f6ca3631016d7f0dfe0f135. * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise. * sanitizer_common/sanitizer_platform_limits_posix.h: Likewise. --- .../sanitizer_common_interceptors_ioctl.inc | 9 --------- .../sanitizer_platform_limits_posix.cpp | 11 ----------- .../sanitizer_platform_limits_posix.h | 10 ---------- 3 files changed, 30 deletions(-) diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc index 490a04b2181..42e43a04441 100644 --- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc @@ -366,15 +366,6 @@ static void ioctl_table_fill() { #if SANITIZER_LINUX && !SANITIZER_ANDROID // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE - _(CYGETDEFTHRESH, WRITE, sizeof(int)); - _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); - _(CYGETMON, WRITE, struct_cyclades_monitor_sz); - _(CYGETTHRESH, WRITE, sizeof(int)); - _(CYGETTIMEOUT, WRITE, sizeof(int)); - _(CYSETDEFTHRESH, NONE, 0); - _(CYSETDEFTIMEOUT, NONE, 0); - _(CYSETTHRESH, NONE, 0); - _(CYSETTIMEOUT, NONE, 0); _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp index aa845df4dde..badf6a401cc 100644 --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp @@ -130,7 +130,6 @@ typedef struct user_fpregs elf_fpregset_t; # include #endif #include -#include #include #include #include @@ -443,7 +442,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); #if SANITIZER_LINUX && !SANITIZER_ANDROID unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); - unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); #if EV_VERSION > (0x010000) unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); #else @@ -809,15 +807,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); #endif // SANITIZER_LINUX #if SANITIZER_LINUX && !SANITIZER_ANDROID - unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; - unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; - unsigned IOCTL_CYGETMON = CYGETMON; - unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; - unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; - unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; - unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; - unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; - unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h index d82fd5e4005..dc6423bc297 100644 --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h @@ -974,7 +974,6 @@ extern unsigned struct_vt_mode_sz; #if SANITIZER_LINUX && !SANITIZER_ANDROID extern unsigned struct_ax25_parms_struct_sz; -extern unsigned struct_cyclades_monitor_sz; extern unsigned struct_input_keymap_entry_sz; extern unsigned struct_ipx_config_data_sz; extern unsigned struct_kbdiacrs_sz; @@ -1319,15 +1318,6 @@ extern unsigned IOCTL_VT_WAITACTIVE; #endif // SANITIZER_LINUX #if SANITIZER_LINUX && !SANITIZER_ANDROID -extern unsigned IOCTL_CYGETDEFTHRESH; -extern unsigned IOCTL_CYGETDEFTIMEOUT; -extern unsigned IOCTL_CYGETMON; -extern unsigned IOCTL_CYGETTHRESH; -extern unsigned IOCTL_CYGETTIMEOUT; -extern unsigned IOCTL_CYSETDEFTHRESH; -extern unsigned IOCTL_CYSETDEFTIMEOUT; -extern unsigned IOCTL_CYSETTHRESH; -extern unsigned IOCTL_CYSETTIMEOUT; extern unsigned IOCTL_EQL_EMANCIPATE; extern unsigned IOCTL_EQL_ENSLAVE; extern unsigned IOCTL_EQL_GETMASTRCFG; -- 2.31.1 ================================================ FILE: package/gcc/arc-2020.09-release/0100-uclibc-conf.patch ================================================ From 326b880b20e5f8187dbda736b4c4c662cbfb00ca Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Tue, 2 May 2017 22:36:15 +0200 Subject: [PATCH] uclibc-conf [Romain: convert to git patch] Signed-off-by: Romain Naour --- contrib/regression/objs-gcc.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contrib/regression/objs-gcc.sh b/contrib/regression/objs-gcc.sh index 60b0497..6dc7ead 100755 --- a/contrib/regression/objs-gcc.sh +++ b/contrib/regression/objs-gcc.sh @@ -106,6 +106,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-gnu ] then make all-gdb all-dejagnu all-ld || exit 1 make install-gdb install-dejagnu install-ld || exit 1 +elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ] + then + make all-gdb all-dejagnu all-ld || exit 1 + make install-gdb install-dejagnu install-ld || exit 1 elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then make bootstrap || exit 1 make install || exit 1 -- 2.9.3 ================================================ FILE: package/gcc/gcc-final/gcc-final.mk ================================================ ################################################################################ # # gcc-final # ################################################################################ GCC_FINAL_VERSION = $(GCC_VERSION) GCC_FINAL_SITE = $(GCC_SITE) GCC_FINAL_SOURCE = $(GCC_SOURCE) HOST_GCC_FINAL_DL_SUBDIR = gcc HOST_GCC_FINAL_DEPENDENCIES = \ $(HOST_GCC_COMMON_DEPENDENCIES) \ $(BR_LIBC) HOST_GCC_FINAL_EXCLUDES = $(HOST_GCC_EXCLUDES) ifneq ($(ARCH_XTENSA_OVERLAY_FILE),) HOST_GCC_FINAL_POST_EXTRACT_HOOKS += HOST_GCC_XTENSA_OVERLAY_EXTRACT HOST_GCC_FINAL_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) endif HOST_GCC_FINAL_POST_PATCH_HOOKS += HOST_GCC_APPLY_PATCHES # gcc doesn't support in-tree build, so we create a 'build' # subdirectory in the gcc sources, and build from there. HOST_GCC_FINAL_SUBDIR = build HOST_GCC_FINAL_PRE_CONFIGURE_HOOKS += HOST_GCC_CONFIGURE_SYMLINK # We want to always build the static variants of all the gcc libraries, # of which libstdc++, libgomp, libmudflap... # To do so, we can not just pass --enable-static to override the generic # --disable-static flag, otherwise gcc fails to build some of those # libraries, see; # http://lists.busybox.net/pipermail/buildroot/2013-October/080412.html # # So we must completely override the generic commands and provide our own. # define HOST_GCC_FINAL_CONFIGURE_CMDS (cd $(HOST_GCC_FINAL_SRCDIR) && rm -rf config.cache; \ $(HOST_CONFIGURE_OPTS) \ CFLAGS="$(HOST_CFLAGS)" \ LDFLAGS="$(HOST_LDFLAGS)" \ $(HOST_GCC_FINAL_CONF_ENV) \ ./configure \ --prefix="$(HOST_DIR)" \ --sysconfdir="$(HOST_DIR)/etc" \ --enable-static \ $(QUIET) $(HOST_GCC_FINAL_CONF_OPTS) \ ) endef # Languages supported by the cross-compiler GCC_FINAL_CROSS_LANGUAGES-y = c GCC_FINAL_CROSS_LANGUAGES-$(BR2_INSTALL_LIBSTDCPP) += c++ GCC_FINAL_CROSS_LANGUAGES-$(BR2_TOOLCHAIN_BUILDROOT_DLANG) += d GCC_FINAL_CROSS_LANGUAGES-$(BR2_TOOLCHAIN_BUILDROOT_FORTRAN) += fortran GCC_FINAL_CROSS_LANGUAGES = $(subst $(space),$(comma),$(GCC_FINAL_CROSS_LANGUAGES-y)) HOST_GCC_FINAL_CONF_OPTS = \ $(HOST_GCC_COMMON_CONF_OPTS) \ --enable-languages=$(GCC_FINAL_CROSS_LANGUAGES) \ --with-build-time-tools=$(HOST_DIR)/$(GNU_TARGET_NAME)/bin # The kernel wants to use the -m4-nofpu option to make sure that it # doesn't use floating point operations. ifeq ($(BR2_sh4)$(BR2_sh4eb),y) HOST_GCC_FINAL_CONF_OPTS += "--with-multilib-list=m4,m4-nofpu" HOST_GCC_FINAL_GCC_LIB_DIR = $(HOST_DIR)/$(GNU_TARGET_NAME)/lib/!m4* else ifeq ($(BR2_sh4a)$(BR2_sh4aeb),y) HOST_GCC_FINAL_CONF_OPTS += "--with-multilib-list=m4a,m4a-nofpu" HOST_GCC_FINAL_GCC_LIB_DIR = $(HOST_DIR)/$(GNU_TARGET_NAME)/lib/!m4* else HOST_GCC_FINAL_GCC_LIB_DIR = $(HOST_DIR)/$(GNU_TARGET_NAME)/lib* endif ifeq ($(BR2_GCC_SUPPORTS_LIBCILKRTS),y) # libcilkrts does not support v8 ifeq ($(BR2_sparc),y) HOST_GCC_FINAL_CONF_OPTS += --disable-libcilkrts endif # Pthreads are required to build libcilkrts ifeq ($(BR2_PTHREADS_NONE),y) HOST_GCC_FINAL_CONF_OPTS += --disable-libcilkrts endif ifeq ($(BR2_STATIC_LIBS),y) # disable libcilkrts as there is no static version HOST_GCC_FINAL_CONF_OPTS += --disable-libcilkrts endif endif # BR2_GCC_SUPPORTS_LIBCILKRTS # 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 else HOST_GCC_FINAL_CONF_OPTS += --enable-shared endif ifeq ($(BR2_GCC_ENABLE_OPENMP),y) HOST_GCC_FINAL_CONF_OPTS += --enable-libgomp else HOST_GCC_FINAL_CONF_OPTS += --disable-libgomp endif # End with user-provided options, so that they can override previously # defined options. HOST_GCC_FINAL_CONF_OPTS += \ $(call qstrip,$(BR2_EXTRA_GCC_CONFIG_OPTIONS)) HOST_GCC_FINAL_CONF_ENV = \ $(HOST_GCC_COMMON_CONF_ENV) HOST_GCC_FINAL_MAKE_OPTS += $(HOST_GCC_COMMON_MAKE_OPTS) # Make sure we have 'cc' define HOST_GCC_FINAL_CREATE_CC_SYMLINKS if [ ! -e $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-cc ]; then \ ln -f $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-gcc \ $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-cc; \ fi endef HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_CREATE_CC_SYMLINKS HOST_GCC_FINAL_TOOLCHAIN_WRAPPER_ARGS += $(HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS) HOST_GCC_FINAL_POST_BUILD_HOOKS += TOOLCHAIN_WRAPPER_BUILD HOST_GCC_FINAL_POST_INSTALL_HOOKS += TOOLCHAIN_WRAPPER_INSTALL # Note: this must be done after CREATE_CC_SYMLINKS, otherwise the # -cc symlink to the wrapper is not created. HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS # 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 -cp -dpf $(HOST_GCC_FINAL_GCC_LIB_DIR)/libgcc_s* \ $(STAGING_DIR)/lib/ -cp -dpf $(HOST_GCC_FINAL_GCC_LIB_DIR)/libgcc_s* \ $(TARGET_DIR)/lib/ endef HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_INSTALL_LIBGCC define HOST_GCC_FINAL_INSTALL_LIBATOMIC -cp -dpf $(HOST_GCC_FINAL_GCC_LIB_DIR)/libatomic* \ $(STAGING_DIR)/lib/ -cp -dpf $(HOST_GCC_FINAL_GCC_LIB_DIR)/libatomic* \ $(TARGET_DIR)/lib/ endef HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_INSTALL_LIBATOMIC # Handle the installation of libraries in /usr/lib HOST_GCC_FINAL_USR_LIBS = ifeq ($(BR2_INSTALL_LIBSTDCPP),y) HOST_GCC_FINAL_USR_LIBS += libstdc++ endif ifeq ($(BR2_TOOLCHAIN_BUILDROOT_DLANG),y) HOST_GCC_FINAL_USR_LIBS += libgdruntime libgphobos 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) HOST_GCC_FINAL_USR_LIBS += libgomp endif HOST_GCC_FINAL_USR_LIBS += $(call qstrip,$(BR2_TOOLCHAIN_EXTRA_LIBS)) ifneq ($(HOST_GCC_FINAL_USR_LIBS),) define HOST_GCC_FINAL_INSTALL_STATIC_LIBS for i in $(HOST_GCC_FINAL_USR_LIBS) ; do \ cp -dpf $(HOST_GCC_FINAL_GCC_LIB_DIR)/$${i}.a \ $(STAGING_DIR)/usr/lib/ ; \ done endef ifeq ($(BR2_STATIC_LIBS),) define HOST_GCC_FINAL_INSTALL_SHARED_LIBS for i in $(HOST_GCC_FINAL_USR_LIBS) ; do \ cp -dpf $(HOST_GCC_FINAL_GCC_LIB_DIR)/$${i}.so* \ $(STAGING_DIR)/usr/lib/ ; \ cp -dpf $(HOST_GCC_FINAL_GCC_LIB_DIR)/$${i}.so* \ $(TARGET_DIR)/usr/lib/ ; \ done endef endif define HOST_GCC_FINAL_INSTALL_USR_LIBS mkdir -p $(TARGET_DIR)/usr/lib $(HOST_GCC_FINAL_INSTALL_STATIC_LIBS) $(HOST_GCC_FINAL_INSTALL_SHARED_LIBS) endef HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_INSTALL_USR_LIBS endif $(eval $(host-autotools-package)) ================================================ FILE: package/gcc/gcc-initial/gcc-initial.mk ================================================ ################################################################################ # # gcc-initial # ################################################################################ GCC_INITIAL_VERSION = $(GCC_VERSION) GCC_INITIAL_SITE = $(GCC_SITE) GCC_INITIAL_SOURCE = $(GCC_SOURCE) # We do not have a 'gcc' package per-se; we only have two incarnations, # gcc-initial and gcc-final. gcc-initial is just am internal step that # users should not care about, while gcc-final is the one they shall see. HOST_GCC_INITIAL_DL_SUBDIR = gcc HOST_GCC_INITIAL_DEPENDENCIES = $(HOST_GCC_COMMON_DEPENDENCIES) HOST_GCC_INITIAL_EXCLUDES = $(HOST_GCC_EXCLUDES) ifneq ($(ARCH_XTENSA_OVERLAY_FILE),) HOST_GCC_INITIAL_POST_EXTRACT_HOOKS += HOST_GCC_XTENSA_OVERLAY_EXTRACT HOST_GCC_INITIAL_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) endif HOST_GCC_INITIAL_POST_PATCH_HOOKS += HOST_GCC_APPLY_PATCHES # gcc doesn't support in-tree build, so we create a 'build' # subdirectory in the gcc sources, and build from there. HOST_GCC_INITIAL_SUBDIR = build HOST_GCC_INITIAL_PRE_CONFIGURE_HOOKS += HOST_GCC_CONFIGURE_SYMLINK HOST_GCC_INITIAL_CONF_OPTS = \ $(HOST_GCC_COMMON_CONF_OPTS) \ --enable-languages=c \ --disable-shared \ --without-headers \ --disable-threads \ --with-newlib \ --disable-largefile \ $(call qstrip,$(BR2_EXTRA_GCC_CONFIG_OPTIONS)) HOST_GCC_INITIAL_CONF_ENV = \ $(HOST_GCC_COMMON_CONF_ENV) HOST_GCC_INITIAL_MAKE_OPTS = $(HOST_GCC_COMMON_MAKE_OPTS) all-gcc all-target-libgcc HOST_GCC_INITIAL_INSTALL_OPTS = install-gcc install-target-libgcc HOST_GCC_INITIAL_TOOLCHAIN_WRAPPER_ARGS += $(HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS) HOST_GCC_INITIAL_POST_BUILD_HOOKS += TOOLCHAIN_WRAPPER_BUILD HOST_GCC_INITIAL_POST_INSTALL_HOOKS += TOOLCHAIN_WRAPPER_INSTALL HOST_GCC_INITIAL_POST_INSTALL_HOOKS += HOST_GCC_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS $(eval $(host-autotools-package)) ================================================ FILE: package/gcc/gcc.hash ================================================ # From ftp://gcc.gnu.org/pub/gcc/releases/gcc-8.4.0/sha512.sum sha512 6de904f552a02de33b11ef52312bb664396efd7e1ce3bbe37bfad5ef617f133095b3767b4804bc7fe78df335cb53bc83f1ac055baed40979ce4c2c3e46b70280 gcc-8.4.0.tar.xz # From ftp://gcc.gnu.org/pub/gcc/releases/gcc-9.4.0/sha512.sum sha512 dfd3500bf21784b8351a522d53463cf362ede66b0bc302edf350bb44e94418497a8b4b797b6af8ca9b2eeb746b3b115d9c3698381b989546e9151b4496415624 gcc-9.4.0.tar.xz # From ftp://gcc.gnu.org/pub/gcc/releases/gcc-10.3.0/sha512.sum sha512 2b2dd7453d48a398c29eaebd1422b70341001b8c90a62aee51e83344e7fdd8a8e45f82a4a9165bd7edc76dada912c932f4b6632c5636760fec4c5d7e402b3f86 gcc-10.3.0.tar.xz # From ftp://gcc.gnu.org/pub/gcc/releases/gcc-11.2.0/sha512.sum sha512 d53a0a966230895c54f01aea38696f818817b505f1e2bfa65e508753fcd01b2aedb4a61434f41f3a2ddbbd9f41384b96153c684ded3f0fa97c82758d9de5c7cf gcc-11.2.0.tar.xz # Locally calculated (fetched from Github) sha512 b0853e2b1c5998044392023fa653e399e74118c46e616504ac59e1a2cf27620f94434767ce06b6cf4ca3dfb57f81d6eda92752befaf095ea5e564a9181b4659c gcc-arc-2020.09-release.tar.gz # Locally calculated (fetched from Github) sha512 2de7cf47333a4092b02d3bb98f4206f14966f1d139a724d09cf3b22f8a43ae0c704f33e6477d6367a03c29b265480dc900169e9d417006c5d46f0ae446b8c6f1 gcc-or1k-musl-5.4.0-20170218.tar.gz ================================================ FILE: package/gcc/gcc.mk ================================================ ################################################################################ # # Common variables for the gcc-initial and gcc-final packages. # ################################################################################ # # Version, site and source # GCC_VERSION = $(call qstrip,$(BR2_GCC_VERSION)) ifeq ($(BR2_GCC_VERSION_ARC),y) GCC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,gcc,$(GCC_VERSION)) GCC_SOURCE = gcc-$(GCC_VERSION).tar.gz else GCC_SITE = $(BR2_GNU_MIRROR:/=)/gcc/gcc-$(GCC_VERSION) GCC_SOURCE = gcc-$(GCC_VERSION).tar.xz endif # # Xtensa special hook # define HOST_GCC_XTENSA_OVERLAY_EXTRACT $(call arch-xtensa-overlay-extract,$(@D),gcc) endef # # Apply patches # # 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 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 HOST_GCC_EXCLUDES = \ libjava/* libgo/* # # Create 'build' directory and configure symlink # define HOST_GCC_CONFIGURE_SYMLINK mkdir -p $(@D)/build ln -sf ../configure $(@D)/build/configure endef # # Common configuration options # HOST_GCC_COMMON_DEPENDENCIES = \ host-binutils \ host-gmp \ host-mpc \ host-mpfr \ $(if $(BR2_BINFMT_FLAT),host-elf2flt) HOST_GCC_COMMON_CONF_OPTS = \ --target=$(GNU_TARGET_NAME) \ --with-sysroot=$(STAGING_DIR) \ --enable-__cxa_atexit \ --with-gnu-ld \ --disable-libssp \ --disable-multilib \ --disable-decimal-float \ --with-gmp=$(HOST_DIR) \ --with-mpc=$(HOST_DIR) \ --with-mpfr=$(HOST_DIR) \ --with-pkgversion="Buildroot $(BR2_VERSION_FULL)" \ --with-bugurl="http://bugs.buildroot.net/" \ --without-zstd # Don't build documentation. It takes up extra space / build time, # and sometimes needs specific makeinfo versions to work HOST_GCC_COMMON_CONF_ENV = \ MAKEINFO=missing GCC_COMMON_TARGET_CFLAGS = $(TARGET_CFLAGS) GCC_COMMON_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS) # used to fix ../../../../libsanitizer/libbacktrace/../../libbacktrace/elf.c:772:21: error: 'st.st_mode' may be used uninitialized in this function [-Werror=maybe-uninitialized] ifeq ($(BR2_ENABLE_DEBUG),y) GCC_COMMON_TARGET_CFLAGS += -Wno-error endif # Make sure libgcc & libstdc++ always get built with -matomic on ARC700 ifeq ($(GCC_TARGET_CPU):$(BR2_ARC_ATOMIC_EXT),arc700:y) GCC_COMMON_TARGET_CFLAGS += -matomic GCC_COMMON_TARGET_CXXFLAGS += -matomic 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)" # libitm needs sparc V9+ ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y) HOST_GCC_COMMON_CONF_OPTS += --disable-libitm endif # libmpx uses secure_getenv and struct _libc_fpstate not present in musl ifeq ($(BR2_TOOLCHAIN_BUILDROOT_MUSL)$(BR2_TOOLCHAIN_GCC_AT_LEAST_6),yy) HOST_GCC_COMMON_CONF_OPTS += --disable-libmpx endif # 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 --disable-libquadmath-support endif # libsanitizer requires wordexp, not in default uClibc config. Also # doesn't build properly with musl. ifeq ($(BR2_TOOLCHAIN_BUILDROOT_UCLIBC)$(BR2_TOOLCHAIN_BUILDROOT_MUSL),y) HOST_GCC_COMMON_CONF_OPTS += --disable-libsanitizer endif # libsanitizer is broken for SPARC # https://bugs.busybox.net/show_bug.cgi?id=7951 ifeq ($(BR2_sparc)$(BR2_sparc64),y) HOST_GCC_COMMON_CONF_OPTS += --disable-libsanitizer endif # The logic in libbacktrace/configure.ac to detect if __sync builtins # are available assumes they are as soon as target_subdir is not # empty, i.e when cross-compiling. However, some platforms do not have # __sync builtins, so help the configure script a bit. ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_4),) HOST_GCC_COMMON_CONF_ENV += target_configargs="libbacktrace_cv_sys_sync=no" endif # TLS support is not needed on uClibc/no-thread and # uClibc/linux-threads, otherwise, for all other situations (glibc, # musl and uClibc/NPTL), we need it. ifeq ($(BR2_TOOLCHAIN_BUILDROOT_UCLIBC)$(BR2_PTHREADS)$(BR2_PTHREADS_NONE),yy) HOST_GCC_COMMON_CONF_OPTS += --disable-tls else HOST_GCC_COMMON_CONF_OPTS += --enable-tls endif ifeq ($(BR2_GCC_ENABLE_LTO),y) HOST_GCC_COMMON_CONF_OPTS += --enable-plugins --enable-lto endif ifeq ($(BR2_PTHREADS_NONE),y) HOST_GCC_COMMON_CONF_OPTS += \ --disable-threads \ --disable-libitm \ --disable-libatomic else HOST_GCC_COMMON_CONF_OPTS += --enable-threads endif # gcc 5 doesn't need cloog any more, see # https://gcc.gnu.org/gcc-5/changes.html and we don't support graphite # on GCC 4.9.x, so only isl is needed. ifeq ($(BR2_GCC_ENABLE_GRAPHITE),y) HOST_GCC_COMMON_DEPENDENCIES += host-isl HOST_GCC_COMMON_CONF_OPTS += --with-isl=$(HOST_DIR) else HOST_GCC_COMMON_CONF_OPTS += --without-isl --without-cloog endif ifeq ($(BR2_arc),y) HOST_GCC_COMMON_DEPENDENCIES += host-flex host-bison endif ifeq ($(BR2_SOFT_FLOAT),y) # only mips*-*-*, arm*-*-* and sparc*-*-* accept --with-float # powerpc seems to be needing it as well ifeq ($(BR2_arm)$(BR2_armeb)$(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el)$(BR2_powerpc)$(BR2_sparc),y) HOST_GCC_COMMON_CONF_OPTS += --with-float=soft endif endif # Determine arch/tune/abi/cpu options ifneq ($(GCC_TARGET_ARCH),) HOST_GCC_COMMON_CONF_OPTS += --with-arch="$(GCC_TARGET_ARCH)" endif ifneq ($(GCC_TARGET_ABI),) HOST_GCC_COMMON_CONF_OPTS += --with-abi="$(GCC_TARGET_ABI)" endif ifeq ($(BR2_TOOLCHAIN_HAS_MNAN_OPTION),y) ifneq ($(GCC_TARGET_NAN),) HOST_GCC_COMMON_CONF_OPTS += --with-nan="$(GCC_TARGET_NAN)" endif endif ifneq ($(GCC_TARGET_FP32_MODE),) HOST_GCC_COMMON_CONF_OPTS += --with-fp-32="$(GCC_TARGET_FP32_MODE)" endif ifneq ($(GCC_TARGET_CPU),) HOST_GCC_COMMON_CONF_OPTS += --with-cpu=$(GCC_TARGET_CPU) endif ifneq ($(GCC_TARGET_FPU),) HOST_GCC_COMMON_CONF_OPTS += --with-fpu=$(GCC_TARGET_FPU) endif ifneq ($(GCC_TARGET_FLOAT_ABI),) HOST_GCC_COMMON_CONF_OPTS += --with-float=$(GCC_TARGET_FLOAT_ABI) endif ifneq ($(GCC_TARGET_MODE),) HOST_GCC_COMMON_CONF_OPTS += --with-mode=$(GCC_TARGET_MODE) endif # Enable proper double/long double for SPE ABI ifeq ($(BR2_powerpc_SPE),y) HOST_GCC_COMMON_CONF_OPTS += \ --enable-obsolete \ --enable-e500_double \ --with-long-double-128 endif # Set default to Secure-PLT to prevent run-time # generation of PLT stubs (supports RELRO and # SELinux non-exemem capabilities) ifeq ($(BR2_powerpc)$(BR2_powerpc64),y) HOST_GCC_COMMON_CONF_OPTS += --enable-secureplt endif # PowerPC64 big endian by default uses the elfv1 ABI, and PowerPC 64 # little endian by default uses the elfv2 ABI. However, musl has # decided to use the elfv2 ABI for both, so we force the elfv2 ABI for # Power64 big endian when the selected C library is musl. ifeq ($(BR2_TOOLCHAIN_USES_MUSL)$(BR2_powerpc64),yy) HOST_GCC_COMMON_CONF_OPTS += \ --with-abi=elfv2 \ --without-long-double-128 endif # Since glibc >= 2.26, poerpc64le requires double/long double which # requires at least gcc 6.2. # See sysdeps/powerpc/powerpc64le/configure.ac ifeq ($(BR2_TOOLCHAIN_USES_GLIBC)$(BR2_TOOLCHAIN_GCC_AT_LEAST_6)$(BR2_powerpc64le),yyy) HOST_GCC_COMMON_CONF_OPTS += \ --with-long-double-128 endif ifeq ($(BR2_s390x),y) HOST_GCC_COMMON_CONF_OPTS += \ --with-long-double-128 endif HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_CROSS_PATH_SUFFIX='".br_real"' # 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 # hasn't been built yet. # # For gcc-final, the gcc logic to detect whether SSP support is # available or not in the C library is not working properly for # uClibc, so let's be explicit as well. HOST_GCC_COMMON_MAKE_OPTS = \ gcc_cv_libc_provides_ssp=$(if $(BR2_TOOLCHAIN_HAS_SSP),yes,no) ifeq ($(BR2_CCACHE),y) HOST_GCC_COMMON_CCACHE_HASH_FILES += $(GCC_DL_DIR)/$(GCC_SOURCE) # 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 /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 += $(ARCH_XTENSA_OVERLAY_TAR) endif # _CONF_OPTS contains some references to the absolute path of $(HOST_DIR) # and a reference to the Buildroot git revision (BR2_VERSION_FULL), # so substitute those away. HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_CCACHE_HASH=\"`\ printf '%s\n' $(subst $(HOST_DIR),@HOST_DIR@,\ $(subst --with-pkgversion="Buildroot $(BR2_VERSION_FULL)",,$($(PKG)_CONF_OPTS))) \ | sha256sum - $(HOST_GCC_COMMON_CCACHE_HASH_FILES) \ | cut -c -64 | tr -d '\n'`\" endif # BR2_CCACHE # 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 # 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 $(Q)cd $(HOST_DIR)/bin; \ for i in $(GNU_TARGET_NAME)-*; do \ case "$$i" in \ *.br_real) \ ;; \ *-ar|*-ranlib|*-nm) \ ln -snf $$i $(ARCH)-linux$${i##$(GNU_TARGET_NAME)}; \ ;; \ *cc|*cc-*|*++|*++-*|*cpp|*-gfortran|*-gdc) \ rm -f $$i.br_real; \ mv $$i $$i.br_real; \ ln -sf toolchain-wrapper $$i; \ ln -sf toolchain-wrapper $(ARCH)-linux$${i##$(GNU_TARGET_NAME)}; \ ln -snf $$i.br_real $(ARCH)-linux$${i##$(GNU_TARGET_NAME)}.br_real; \ ;; \ *) \ ln -snf $$i $(ARCH)-linux$${i##$(GNU_TARGET_NAME)}; \ ;; \ esac; \ done endef include $(sort $(wildcard package/gcc/*/*.mk)) ================================================ FILE: package/gcnano-binaries/Config.in ================================================ comment "gcnano-binaries needs a Linux kernel to be built" depends on BR2_arm depends on !BR2_LINUX_KERNEL comment "gcnano-binaries needs a glibc toolchain w/ threads, dynamic library" depends on BR2_arm depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_TOOLCHAIN_HAS_THREADS \ || BR2_STATIC_LIBS config BR2_PACKAGE_GCNANO_BINARIES bool "gcnano-binaries" depends on BR2_arm depends on BR2_LINUX_KERNEL depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm, wayland depends on !BR2_STATIC_LIBS select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBGBM select BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT select BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF select BR2_PACKAGE_HAS_LIBGLES select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_WAYLAND help Driver and libaries for stm vivante gcnano gpu. https://github.com/STMicroelectronics/gcnano-binaries/ if BR2_PACKAGE_GCNANO_BINARIES config BR2_PACKAGE_PROVIDES_LIBEGL default "gcnano-binaries" config BR2_PACKAGE_PROVIDES_LIBGBM default "gcnano-binaries" config BR2_PACKAGE_PROVIDES_LIBGLES default "gcnano-binaries" endif ================================================ FILE: package/gcnano-binaries/gcnano-binaries.hash ================================================ # Locally calculated sha256 afec2ba2f524821452d561b56afd2fc241293ea4a6e8598d1663f58e5d16800f gcnano-binaries-1534c3eaabb5ae545a8f97e95f853531365a13fc.tar.gz sha256 7d209718473d18f69f75adb7caf9cb5d4b0a31da068756aa011bea617de3dc57 EULA ================================================ FILE: package/gcnano-binaries/gcnano-binaries.mk ================================================ ################################################################################ # # gcnano-binaries # ################################################################################ GCNANO_BINARIES_LIB_VERSION = 6.4 GCNANO_BINARIES_LIB_REVISION = 3 GCNANO_BINARIES_LIB_FULL_VERSION = $(GCNANO_BINARIES_LIB_VERSION).$(GCNANO_BINARIES_LIB_REVISION) GCNANO_BINARIES_DRIVER_VERSION = $(GCNANO_BINARIES_LIB_FULL_VERSION) GCNANO_BINARIES_USERLAND_VERSION = $(GCNANO_BINARIES_LIB_FULL_VERSION)-20200902 GCNANO_BINARIES_VERSION = 1534c3eaabb5ae545a8f97e95f853531365a13fc GCNANO_BINARIES_SITE = $(call github,STMicroelectronics,gcnano-binaries,$(GCNANO_BINARIES_VERSION)) GCNANO_BINARIES_LICENSE = MIT, Vivante End User Software License Terms GCNANO_BINARIES_LICENSE_FILES = EULA GCNANO_BINARIES_REDISTRIBUTE = NO GCNANO_BINARIES_DEPENDENCIES = linux wayland libdrm GCNANO_BINARIES_INSTALL_STAGING = YES GCNANO_BINARIES_PROVIDES = libegl libgles libgbm # The Github repository doesn't contain the source code as-is: it # contains a tarball with the kernel driver source code, and a # self-extractible binary for the user-space parts. So we extract both # below, and also extract the EULA text from the self-extractible binary define GCNANO_BINARIES_EXTRACT_HELPER tar --strip-components=1 -xJf $(@D)/gcnano-driver-$(GCNANO_BINARIES_DRIVER_VERSION).tar.xz -C $(@D) awk 'BEGIN { start = 0; } \ /^EOEULA/ { start = 0; } \ { if (start) print; } \ /< $(@D)/EULA cd $(@D) && sh gcnano-userland-multi-$(GCNANO_BINARIES_USERLAND_VERSION).bin --auto-accept endef GCNANO_BINARIES_POST_EXTRACT_HOOKS += GCNANO_BINARIES_EXTRACT_HELPER GCNANO_BINARIES_MODULE_MAKE_OPTS = \ KERNEL_DIR=$(LINUX_DIR) \ SOC_PLATFORM=st-st \ AQROOT=$(@D) \ DEBUG=0 GCNANO_BINARIES_LIBRARIES = \ libgbm_viv libEGL libGAL libgbm libGLESv1_CM \ libGLESv2 libGLSLC libOpenVG libVSC GCNANO_BINARIES_USERLAND_SUBDIR = gcnano-userland-multi-$(GCNANO_BINARIES_USERLAND_VERSION) GCNANO_BINARIES_PKG_CONFIGS = egl gbm glesv1_cm glesv2 vg define GCNANO_BINARIES_INSTALL $(foreach lib,$(GCNANO_BINARIES_LIBRARIES), \ $(INSTALL) -D -m 0755 $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/lib/$(lib).$(GCNANO_BINARIES_LIB_VERSION).multi.release.so \ $(1)/usr/lib/$(lib).$(GCNANO_BINARIES_LIB_VERSION).multi.release.so ; \ cp -a $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/lib/$(lib).so* $(1)/usr/lib ) mkdir -p $(1)/usr/include cp -a $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/include/* $(1)/usr/include/ $(foreach pkgconfig,$(GCNANO_BINARIES_PKG_CONFIGS), \ $(INSTALL) -D -m 0644 $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/lib/pkgconfig/$(pkgconfig).pc \ $(1)/usr/lib/pkgconfig/$(pkgconfig).pc ) endef define GCNANO_BINARIES_INSTALL_TARGET_CMDS $(call GCNANO_BINARIES_INSTALL,$(TARGET_DIR)) endef define GCNANO_BINARIES_INSTALL_STAGING_CMDS $(call GCNANO_BINARIES_INSTALL,$(STAGING_DIR)) endef $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/gconf/Config.in ================================================ config BR2_PACKAGE_GCONF bool "gconf" depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2 depends on BR2_USE_MMU # dbus, libglib2 depends on BR2_USE_WCHAR # libglib2 depends on !BR2_STATIC_LIBS select BR2_PACKAGE_DBUS select BR2_PACKAGE_DBUS_GLIB select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBXML2 help GConf was a system used by the GNOME desktop environment for storing configuration settings for the desktop and applications. It is similar to the Windows Registry. https://projects.gnome.org/gconf/ comment "gconf needs a toolchain w/ threads, wchar, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR \ || BR2_STATIC_LIBS ================================================ FILE: package/gconf/gconf.hash ================================================ # http://ftp.acc.umu.se/pub/gnome/sources/GConf/3.2/GConf-3.2.6.sha256sum sha256 1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4e0cfa51a04d784c GConf-3.2.6.tar.xz # License files, locally calculated sha256 94b03f1a60a7fd5007149530626a895a6ef5a8b9342abfd56860c5f3956f5d23 COPYING ================================================ FILE: package/gconf/gconf.mk ================================================ ################################################################################ # # gconf # ################################################################################ GCONF_VERSION = 3.2.6 GCONF_SOURCE = GConf-$(GCONF_VERSION).tar.xz GCONF_SITE = http://ftp.gnome.org/pub/gnome/sources/GConf/3.2 GCONF_CONF_OPTS = --disable-orbit GCONF_DEPENDENCIES = dbus dbus-glib libglib2 libxml2 \ host-intltool $(TARGET_NLS_DEPENDENCIES) GCONF_LICENSE = LGPL-2.0+ GCONF_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) GCONF_CONF_OPTS += --enable-introspection GCONF_DEPENDENCIES += gobject-introspection else GCONF_CONF_OPTS += --disable-introspection endif $(eval $(autotools-package)) ================================================ FILE: package/gcr/Config.in ================================================ 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 depends on !BR2_STATIC_LIBS # p11-kit select BR2_PACKAGE_GNUPG2 # runtime select BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_P11_KIT help Library for cryptographic UIs and accessing PKCS#11 modules. https://developer.gnome.org/gcr/ comment "gcr 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 ================================================ FILE: package/gcr/gcr.hash ================================================ # From http://ftp.acc.umu.se/pub/gnome/sources/gcr/3.40/gcr-3.40.0.sha256sum sha256 b9d3645a5fd953a54285cc64d4fc046736463dbd4dcc25caf5c7b59bed3027f5 gcr-3.40.0.tar.xz sha256 94b03f1a60a7fd5007149530626a895a6ef5a8b9342abfd56860c5f3956f5d23 COPYING ================================================ FILE: package/gcr/gcr.mk ================================================ ################################################################################ # # gcr # ################################################################################ GCR_VERSION_MAJOR = 3.40 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 GCR_DEPENDENCIES = \ host-pkgconf \ libgcrypt \ libglib2 \ p11-kit \ $(TARGET_NLS_DEPENDENCIES) GCR_INSTALL_STAGING = YES GCR_CONF_OPTS = \ -Dgpg_path=/usr/bin/gpg2 \ -Dgtk_doc=false # Even though COPYING is v2 the code states v2.1+ GCR_LICENSE = LGPL-2.1+ GCR_LICENSE_FILES = COPYING GCR_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) GCR_DEPENDENCIES += gobject-introspection host-libxslt host-vala GCR_CONF_OPTS += -Dintrospection=true else GCR_CONF_OPTS += -Dintrospection=false endif # Only the X11 backend is supported for the simple GUI ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) GCR_DEPENDENCIES += libgtk3 GCR_CONF_OPTS += -Dgtk=true else GCR_CONF_OPTS += -Dgtk=false endif $(eval $(meson-package)) ================================================ FILE: package/gd/Config.in ================================================ menuconfig BR2_PACKAGE_GD bool "gd" help GD is a graphics library. It allows your code to quickly draw images complete with lines, arcs, text, multiple colours, cut and paste from other images, flood fills, and write out the result as a PNG file. This is particularly useful in World Wide Web applications, where PNG is one of the formats accepted for inline images by most browsers. https://libgd.github.io/ if BR2_PACKAGE_GD config BR2_PACKAGE_GD_ANNOTATE bool "annotate" config BR2_PACKAGE_GD_BDFTOGD bool "bdftogd" depends on BR2_PACKAGE_PERL config BR2_PACKAGE_GD_GD2COPYPAL bool "gd2copypal" config BR2_PACKAGE_GD_GD2TOGIF bool "gd2togif" config BR2_PACKAGE_GD_GD2TOPNG bool "gd2topng" select BR2_PACKAGE_LIBPNG config BR2_PACKAGE_GD_GDCMPGIF bool "gdcmpgif" config BR2_PACKAGE_GD_GDPARTTOPNG bool "gdparttopng" select BR2_PACKAGE_LIBPNG config BR2_PACKAGE_GD_GDTOPNG bool "gdtopng" select BR2_PACKAGE_LIBPNG config BR2_PACKAGE_GD_GIFTOGD2 bool "giftogd2" config BR2_PACKAGE_GD_PNGTOGD bool "pngtogd" select BR2_PACKAGE_LIBPNG config BR2_PACKAGE_GD_PNGTOGD2 bool "pngtogd2" select BR2_PACKAGE_LIBPNG config BR2_PACKAGE_GD_WEBPNG bool "webpng" select BR2_PACKAGE_LIBPNG endif ================================================ FILE: package/gd/gd.hash ================================================ # Locally calculated sha256 3fe822ece20796060af63b7c60acb151e5844204d289da0ce08f8fdf131e5a61 libgd-2.3.3.tar.xz sha256 005f4b6b0141d1bd11d371bbf7d4f67947f85a4906b7f5465f942204cf918ba3 COPYING ================================================ FILE: package/gd/gd.mk ================================================ ################################################################################ # # gd # ################################################################################ GD_VERSION = 2.3.3 GD_SOURCE = libgd-$(GD_VERSION).tar.xz GD_SITE = https://github.com/libgd/libgd/releases/download/gd-$(GD_VERSION) GD_INSTALL_STAGING = YES GD_LICENSE = GD license GD_LICENSE_FILES = COPYING GD_CPE_ID_VENDOR = libgd GD_CPE_ID_PRODUCT = libgd GD_CONF_OPTS = --without-x --disable-rpath --disable-werror GD_DEPENDENCIES = host-pkgconf # gd forgets to link utilities with -pthread even though it uses # pthreads, causing linking errors with static linking ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) GD_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -pthread" endif ifeq ($(BR2_PACKAGE_FONTCONFIG),y) GD_DEPENDENCIES += fontconfig GD_CONF_OPTS += --with-fontconfig endif ifeq ($(BR2_PACKAGE_FREETYPE),y) GD_DEPENDENCIES += freetype GD_CONF_OPTS += --with-freetype=$(STAGING_DIR)/usr else GD_CONF_OPTS += --without-freetype endif ifeq ($(BR2_PACKAGE_LIBICONV),y) GD_DEPENDENCIES += libiconv # not strictly needed for gd, but ensures -liconv ends up in gdlib.pc GD_CONF_ENV += LIBS_PRIVATES="-liconv" endif ifeq ($(BR2_PACKAGE_JPEG),y) GD_DEPENDENCIES += jpeg GD_CONF_OPTS += --with-jpeg endif ifeq ($(BR2_PACKAGE_LIBPNG),y) GD_DEPENDENCIES += libpng GD_CONF_OPTS += --with-png else GD_CONF_OPTS += --without-png endif ifeq ($(BR2_PACKAGE_WEBP),y) GD_DEPENDENCIES += webp GD_CONF_OPTS += --with-webp else GD_CONF_OPTS += --without-webp endif ifeq ($(BR2_PACKAGE_TIFF),y) GD_DEPENDENCIES += tiff GD_CONF_OPTS += --with-tiff else GD_CONF_OPTS += --without-tiff endif ifeq ($(BR2_PACKAGE_XLIB_LIBXPM),y) GD_DEPENDENCIES += xlib_libXpm GD_CONF_OPTS += --with-xpm endif ifeq ($(BR2_PACKAGE_ZLIB),y) GD_DEPENDENCIES += zlib endif GD_TOOLS_$(BR2_PACKAGE_GD_ANNOTATE) += annotate GD_TOOLS_$(BR2_PACKAGE_GD_BDFTOGD) += bdftogd GD_TOOLS_$(BR2_PACKAGE_GD_GD2COPYPAL) += gd2copypal GD_TOOLS_$(BR2_PACKAGE_GD_GD2TOGIF) += gd2togif GD_TOOLS_$(BR2_PACKAGE_GD_GD2TOPNG) += gd2topng GD_TOOLS_$(BR2_PACKAGE_GD_GDCMPGIF) += gdcmpgif GD_TOOLS_$(BR2_PACKAGE_GD_GDPARTTOPNG) += gdparttopng GD_TOOLS_$(BR2_PACKAGE_GD_GDTOPNG) += gdtopng GD_TOOLS_$(BR2_PACKAGE_GD_GIFTOGD2) += giftogd2 GD_TOOLS_$(BR2_PACKAGE_GD_PNGTOGD) += pngtogd GD_TOOLS_$(BR2_PACKAGE_GD_PNGTOGD2) += pngtogd2 GD_TOOLS_$(BR2_PACKAGE_GD_WEBPNG) += webpng define GD_REMOVE_TOOLS rm -f $(addprefix $(TARGET_DIR)/usr/bin/,$(GD_TOOLS_)) endef GD_POST_INSTALL_TARGET_HOOKS += GD_REMOVE_TOOLS $(eval $(autotools-package)) ================================================ FILE: package/gdb/10.2/0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch ================================================ From 64b8ab56118d2fea027adfb7ebbc01668b29528e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 6 Aug 2016 17:32:50 -0700 Subject: [PATCH] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC systems Upstream-Status: Pending Signed-off-by: Khem Raj Signed-off-by: Thomas Petazzoni [Rebase on gdb 8.3] Signed-off-by: Romain Naour --- gdb/nat/ppc-linux.h | 6 ++++++ gdbserver/linux-ppc-low.cc | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h index d937a65b69c..1fd54b4a0e0 100644 --- a/gdb/nat/ppc-linux.h +++ b/gdb/nat/ppc-linux.h @@ -18,7 +18,13 @@ #ifndef NAT_PPC_LINUX_H #define NAT_PPC_LINUX_H +#if !defined(__GLIBC__) +# define pt_regs uapi_pt_regs +#endif #include +#if !defined(__GLIBC__) +# undef pt_regs +#endif #include /* This sometimes isn't defined. */ diff --git a/gdbserver/linux-ppc-low.cc b/gdbserver/linux-ppc-low.cc index 337d555aee7..5d518f37268 100644 --- a/gdbserver/linux-ppc-low.cc +++ b/gdbserver/linux-ppc-low.cc @@ -23,7 +23,13 @@ #include "elf/common.h" #include #include +#if !defined(__GLIBC__) +# define pt_regs uapi_pt_regs +#endif #include +#if !defined(__GLIBC__) +# undef pt_regs +#endif #include "arch/ppc-linux-common.h" #include "arch/ppc-linux-tdesc.h" -- 2.29.2 ================================================ FILE: package/gdb/10.2/0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch ================================================ From d205f398e1e36f9673f50f368a3f29fd1dfaa794 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 3 Jun 2017 21:23:52 +0200 Subject: [PATCH] sh/ptrace: Define pt_{dsp,}regs uapi_pt_{dsp,}regs on !GLIBC systems Fixes a pt_{dsp,}regs redefinition when building with the musl C library on SuperH. Inspired by http://git.yoctoproject.org/clean/cgit.cgi/poky/plain/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch, adapted for SuperH. Signed-off-by: Thomas Petazzoni [Rebase on gdb 8.0] Signed-off-by: Romain Naour --- gdbserver/linux-sh-low.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gdbserver/linux-sh-low.cc b/gdbserver/linux-sh-low.cc index a6d3fc60047..b83cce6b9fe 100644 --- a/gdbserver/linux-sh-low.cc +++ b/gdbserver/linux-sh-low.cc @@ -76,7 +76,15 @@ extern const struct target_desc *tdesc_sh; #include #endif +#if !defined(__GLIBC__) +# define pt_regs uapi_pt_regs +# define pt_dspregs uapi_pt_dspregs +#endif #include +#if !defined(__GLIBC__) +# undef pt_regs +# undef pt_dspregs +#endif #define sh_num_regs 41 -- 2.29.2 ================================================ FILE: package/gdb/10.2/0003-use-asm-sgidefs.h.patch ================================================ From 65acc8800dba7e10da882871d4648241805c47ce Mon Sep 17 00:00:00 2001 From: Andre McCurdy Date: Sat, 30 Apr 2016 15:29:06 -0700 Subject: [PATCH] use Build fix for MIPS with musl libc The MIPS specific header is provided by glibc and uclibc but not by musl. Regardless of the libc, the kernel headers provide which provides the same definitions, so use that instead. Upstream-Status: Pending [Vincent: Taken from: https://sourceware.org/bugzilla/show_bug.cgi?id=21070] Signed-off-by: Andre McCurdy Signed-off-by: Khem Raj Signed-off-by: Vicente Olivert Riera --- gdb/mips-linux-nat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c index 38ff461a35b..b6cf194b2bf 100644 --- a/gdb/mips-linux-nat.c +++ b/gdb/mips-linux-nat.c @@ -31,7 +31,7 @@ #include "gdb_proc_service.h" #include "gregset.h" -#include +#include #include "nat/gdb_ptrace.h" #include #include "inf-ptrace.h" -- 2.29.2 ================================================ FILE: package/gdb/10.2/0004-gdbserver-fix-build-for-m68k.patch ================================================ From 90ebe548922538b854de52e8b687384f44360984 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Fri, 22 Jun 2018 22:40:26 +0200 Subject: [PATCH] gdbserver: fix build for m68k MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As for strace [1], when is included after , the build fails on m68k with the following diagnostics: In file included from ./../nat/linux-ptrace.h:28:0, from linux-low.h:27, from linux-m68k-low.c:20: [...]/usr/include/sys/reg.h:26:3: error: expected identifier before numeric constant PT_D1 = 0, ^ [...]usr/include/sys/reg.h:26:3: error: expected « } » before numeric constant [...]usr/include/sys/reg.h:26:3: error: expected unqualified-id before numeric constant In file included from linux-m68k-low.c:27:0: [...]usr/include/sys/reg.h:99:1: error: expected declaration before « } » token }; ^ Fix this by moving on top of "linux-low.h". [1] https://github.com/strace/strace/commit/6ebf6c4f9e5ebca123a5b5f24afe67cf0473cf92 Signed-off-by: Romain Naour --- gdbserver/linux-m68k-low.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gdbserver/linux-m68k-low.cc b/gdbserver/linux-m68k-low.cc index 838ba353b0b..36679682b9a 100644 --- a/gdbserver/linux-m68k-low.cc +++ b/gdbserver/linux-m68k-low.cc @@ -17,6 +17,11 @@ along with this program. If not, see . */ #include "server.h" + +#ifdef HAVE_SYS_REG_H +#include +#endif + #include "linux-low.h" /* Linux target op definitions for the m68k architecture. */ @@ -80,10 +85,6 @@ m68k_target::low_decr_pc_after_break () void init_registers_m68k (void); extern const struct target_desc *tdesc_m68k; -#ifdef HAVE_SYS_REG_H -#include -#endif - #define m68k_num_regs 29 #define m68k_num_gregs 18 -- 2.29.2 ================================================ FILE: package/gdb/10.2/0005-nat-fork-inferior-include-linux-ptrace.h.patch ================================================ From c8454711eca2e79437e17ed1e1e68b48b4c8d927 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 24 Jun 2018 23:33:55 +0200 Subject: [PATCH] nat/fork-inferior: include linux-ptrace.h To decide whether fork() or vfork() should be used, fork-inferior.c uses the following test: #if !(defined(__UCLIBC__) && defined(HAS_NOMMU)) However, HAS_NOMMU is never defined, because it gets defined in linux-ptrace.h, which is not included by fork-inferior.c. Due to this, gdbserver fails to build on noMMU architectures. This commit fixes that by simply including linux-ptrace.h. This bug was introduced by commit 2090129c36c7e582943b7d300968d19b46160d84 ("Share fork_inferior et al with gdbserver"). Indeed, the same fork()/vfork() selection was done, but in another file where linux-ptrace.h was included. Fixes the following build issue: ../nat/fork-inferior.c: In function 'pid_t fork_inferior(const char*, const string&, char**, void (*)(), void (*)(int), void (*)(), const char*, void (*)(const char*, char* const*, char* const*))': ../nat/fork-inferior.c:376:11: error: 'fork' was not declared in this scope pid = fork (); ^~~~ ../nat/fork-inferior.c:376:11: note: suggested alternative: 'vfork' pid = fork (); ^~~~ vfork Signed-off-by: Thomas Petazzoni [Romain: rebase on gdb 8.3] Signed-off-by: Romain Naour --- gdb/nat/fork-inferior.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gdb/nat/fork-inferior.c b/gdb/nat/fork-inferior.c index 7ba0126871d..53e1ec72f09 100644 --- a/gdb/nat/fork-inferior.c +++ b/gdb/nat/fork-inferior.c @@ -27,6 +27,7 @@ #include "gdbsupport/pathstuff.h" #include "gdbsupport/signals-state-save-restore.h" #include "gdbsupport/gdb_tilde_expand.h" +#include "linux-ptrace.h" #include extern char **environ; -- 2.29.2 ================================================ FILE: package/gdb/10.2/0006-Fix-getrandom-compile-for-uclibc-v1.0.35.patch ================================================ From bb894a9cfb1c3cf0e0a174c496ad848f589ee7da Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Sat, 6 Nov 2021 10:06:25 +0100 Subject: [PATCH] Fix getrandom compile for uclibc < v1.0.35 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fix getrandom compile for uclibc < v1.0.35, add missing stddef.h include (fixed in uclibc since v1.0.35, see [1]) Fixes: .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:35: error: unknown type name ‘size_t’ 27 | extern int getrandom(void *__buf, size_t count, unsigned int flags) | ^~~~~~ [1] https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/commit/?id=00972c02c2b6e0a95d5def4a71bdfb188e091782t Signed-off-by: Peter Seiderer --- gnulib/import/getrandom.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gnulib/import/getrandom.c b/gnulib/import/getrandom.c index 030a78b..7b24350 100644 --- a/gnulib/import/getrandom.c +++ b/gnulib/import/getrandom.c @@ -19,6 +19,7 @@ #include +#include #include #include -- 2.33.1 ================================================ FILE: package/gdb/10.2/0007-fix-musl-build-on-riscv.patch ================================================ From c3fdbc0a24c83246f951ba79c7167547da979ae5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 10 Nov 2021 23:14:54 +0100 Subject: [PATCH] fix musl build on riscv Fix the following build failure raised with musl: ../../gdbserver/linux-riscv-low.cc: In function 'void riscv_fill_fpregset(regcache*, void*)': ../../gdbserver/linux-riscv-low.cc:140:19: error: 'ELF_NFPREG' was not declared in this scope; did you mean 'ELF_NGREG'? 140 | for (i = 0; i < ELF_NFPREG - 1; i++, regbuf += flen) | ^~~~~~~~~~ | ELF_NGREG musl fixed the issue with https://git.musl-libc.org/cgit/musl/commit/?id=e5d2823631bbfebacf48e1a34ed28f28d7cb2570 Fixes: - http://autobuild.buildroot.org/results/16b19198980ce9c81a618b3f6e8dc9fe28247a28 Signed-off-by: Fabrice Fontaine --- gdb/nat/riscv-linux-tdesc.c | 5 +++++ gdbserver/linux-riscv-low.cc | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/gdb/nat/riscv-linux-tdesc.c b/gdb/nat/riscv-linux-tdesc.c index 837b1707e0f..667c013006a 100644 --- a/gdb/nat/riscv-linux-tdesc.c +++ b/gdb/nat/riscv-linux-tdesc.c @@ -31,6 +31,11 @@ # define NFPREG 33 #endif +/* Work around musl breakage since version 1.1.24. */ +#ifndef ELF_NFPREG +# define ELF_NFPREG 33 +#endif + /* See nat/riscv-linux-tdesc.h. */ struct riscv_gdbarch_features diff --git a/gdbserver/linux-riscv-low.cc b/gdbserver/linux-riscv-low.cc index 8bf97ea4aa3..1142dbc7b16 100644 --- a/gdbserver/linux-riscv-low.cc +++ b/gdbserver/linux-riscv-low.cc @@ -30,6 +30,11 @@ # define NFPREG 33 #endif +/* Work around musl breakage since version 1.1.24. */ +#ifndef ELF_NFPREG +# define ELF_NFPREG 33 +#endif + /* Linux target op definitions for the RISC-V architecture. */ class riscv_target : public linux_process_target -- 2.33.0 ================================================ FILE: package/gdb/10.2/0008-gdbserver-Makefile.in-fix-NLS-build.patch ================================================ From c098500aee945ee7a3021649eb0a2655b004103c Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 18 Nov 2021 22:52:08 +0100 Subject: [PATCH] gdbserver/Makefile.in: fix NLS build Fix the following build failure raised since gdb version 10.1 and https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=9a665d62266e75f0519f3a663784c458885b5c63: CXXLD libinproctrace.so /home/buildroot/autobuild/instance-2/output-1/host/opt/ext-toolchain/bin/../lib/gcc/i586-buildroot-linux-musl/9.3.0/../../../../i586-buildroot-linux-musl/bin/ld: gdbsupport/tdesc-ipa.o: in function `print_xml_feature::visit(tdesc_type_builtin const*)': /home/buildroot/autobuild/instance-2/output-1/build/gdb-10.2/build/gdbserver/../../gdbserver/../gdbsupport/tdesc.cc:310: undefined reference to `libintl_gettext' Fixes: - http://autobuild.buildroot.org/results/faacc874fe9d32b74cb3d3dea988ef661cb0e3d0 Signed-off-by: Fabrice Fontaine [Upstream status: https://sourceware.org/pipermail/gdb-patches/2021-November/183580.html] --- gdbserver/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in index 71c3c4ad959..e69fbc4dae4 100644 --- a/gdbserver/Makefile.in +++ b/gdbserver/Makefile.in @@ -383,7 +383,7 @@ $(IPA_LIB): $(sort $(IPA_OBJS)) ${CDEPS} $(SILENCE) rm -f $(IPA_LIB) $(ECHO_CXXLD) $(CC_LD) -shared -fPIC -Wl,--soname=$(IPA_LIB) \ -Wl,--no-undefined $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) \ - -o $(IPA_LIB) ${IPA_OBJS} -ldl -pthread + -o $(IPA_LIB) ${IPA_OBJS} -ldl -pthread $(INTL) # Put the proper machine-specific files first, so M-. on a machine # specific routine gets the one for the correct machine. -- 2.33.0 ================================================ FILE: package/gdb/11.1/0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch ================================================ From 64b8ab56118d2fea027adfb7ebbc01668b29528e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 6 Aug 2016 17:32:50 -0700 Subject: [PATCH] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC systems Upstream-Status: Pending Signed-off-by: Khem Raj Signed-off-by: Thomas Petazzoni [Rebase on gdb 8.3] Signed-off-by: Romain Naour --- gdb/nat/ppc-linux.h | 6 ++++++ gdbserver/linux-ppc-low.cc | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h index d937a65b69c..1fd54b4a0e0 100644 --- a/gdb/nat/ppc-linux.h +++ b/gdb/nat/ppc-linux.h @@ -18,7 +18,13 @@ #ifndef NAT_PPC_LINUX_H #define NAT_PPC_LINUX_H +#if !defined(__GLIBC__) +# define pt_regs uapi_pt_regs +#endif #include +#if !defined(__GLIBC__) +# undef pt_regs +#endif #include /* This sometimes isn't defined. */ diff --git a/gdbserver/linux-ppc-low.cc b/gdbserver/linux-ppc-low.cc index 337d555aee7..5d518f37268 100644 --- a/gdbserver/linux-ppc-low.cc +++ b/gdbserver/linux-ppc-low.cc @@ -23,7 +23,13 @@ #include "elf/common.h" #include #include +#if !defined(__GLIBC__) +# define pt_regs uapi_pt_regs +#endif #include +#if !defined(__GLIBC__) +# undef pt_regs +#endif #include "arch/ppc-linux-common.h" #include "arch/ppc-linux-tdesc.h" -- 2.29.2 ================================================ FILE: package/gdb/11.1/0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch ================================================ From d205f398e1e36f9673f50f368a3f29fd1dfaa794 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 3 Jun 2017 21:23:52 +0200 Subject: [PATCH] sh/ptrace: Define pt_{dsp,}regs uapi_pt_{dsp,}regs on !GLIBC systems Fixes a pt_{dsp,}regs redefinition when building with the musl C library on SuperH. Inspired by http://git.yoctoproject.org/clean/cgit.cgi/poky/plain/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch, adapted for SuperH. Signed-off-by: Thomas Petazzoni [Rebase on gdb 8.0] Signed-off-by: Romain Naour --- gdbserver/linux-sh-low.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gdbserver/linux-sh-low.cc b/gdbserver/linux-sh-low.cc index a6d3fc60047..b83cce6b9fe 100644 --- a/gdbserver/linux-sh-low.cc +++ b/gdbserver/linux-sh-low.cc @@ -76,7 +76,15 @@ extern const struct target_desc *tdesc_sh; #include #endif +#if !defined(__GLIBC__) +# define pt_regs uapi_pt_regs +# define pt_dspregs uapi_pt_dspregs +#endif #include +#if !defined(__GLIBC__) +# undef pt_regs +# undef pt_dspregs +#endif #define sh_num_regs 41 -- 2.29.2 ================================================ FILE: package/gdb/11.1/0003-use-asm-sgidefs.h.patch ================================================ From 65acc8800dba7e10da882871d4648241805c47ce Mon Sep 17 00:00:00 2001 From: Andre McCurdy Date: Sat, 30 Apr 2016 15:29:06 -0700 Subject: [PATCH] use Build fix for MIPS with musl libc The MIPS specific header is provided by glibc and uclibc but not by musl. Regardless of the libc, the kernel headers provide which provides the same definitions, so use that instead. Upstream-Status: Pending [Vincent: Taken from: https://sourceware.org/bugzilla/show_bug.cgi?id=21070] Signed-off-by: Andre McCurdy Signed-off-by: Khem Raj Signed-off-by: Vicente Olivert Riera --- gdb/mips-linux-nat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c index 38ff461a35b..b6cf194b2bf 100644 --- a/gdb/mips-linux-nat.c +++ b/gdb/mips-linux-nat.c @@ -31,7 +31,7 @@ #include "gdb_proc_service.h" #include "gregset.h" -#include +#include #include "nat/gdb_ptrace.h" #include #include "inf-ptrace.h" -- 2.29.2 ================================================ FILE: package/gdb/11.1/0004-gdbserver-fix-build-for-m68k.patch ================================================ From 90ebe548922538b854de52e8b687384f44360984 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Fri, 22 Jun 2018 22:40:26 +0200 Subject: [PATCH] gdbserver: fix build for m68k MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As for strace [1], when is included after , the build fails on m68k with the following diagnostics: In file included from ./../nat/linux-ptrace.h:28:0, from linux-low.h:27, from linux-m68k-low.c:20: [...]/usr/include/sys/reg.h:26:3: error: expected identifier before numeric constant PT_D1 = 0, ^ [...]usr/include/sys/reg.h:26:3: error: expected « } » before numeric constant [...]usr/include/sys/reg.h:26:3: error: expected unqualified-id before numeric constant In file included from linux-m68k-low.c:27:0: [...]usr/include/sys/reg.h:99:1: error: expected declaration before « } » token }; ^ Fix this by moving on top of "linux-low.h". [1] https://github.com/strace/strace/commit/6ebf6c4f9e5ebca123a5b5f24afe67cf0473cf92 Signed-off-by: Romain Naour --- gdbserver/linux-m68k-low.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gdbserver/linux-m68k-low.cc b/gdbserver/linux-m68k-low.cc index 838ba353b0b..36679682b9a 100644 --- a/gdbserver/linux-m68k-low.cc +++ b/gdbserver/linux-m68k-low.cc @@ -17,6 +17,11 @@ along with this program. If not, see . */ #include "server.h" + +#ifdef HAVE_SYS_REG_H +#include +#endif + #include "linux-low.h" /* Linux target op definitions for the m68k architecture. */ @@ -80,10 +85,6 @@ m68k_target::low_decr_pc_after_break () void init_registers_m68k (void); extern const struct target_desc *tdesc_m68k; -#ifdef HAVE_SYS_REG_H -#include -#endif - #define m68k_num_regs 29 #define m68k_num_gregs 18 -- 2.29.2 ================================================ FILE: package/gdb/11.1/0005-nat-fork-inferior-include-linux-ptrace.h.patch ================================================ From c8454711eca2e79437e17ed1e1e68b48b4c8d927 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 24 Jun 2018 23:33:55 +0200 Subject: [PATCH] nat/fork-inferior: include linux-ptrace.h To decide whether fork() or vfork() should be used, fork-inferior.c uses the following test: #if !(defined(__UCLIBC__) && defined(HAS_NOMMU)) However, HAS_NOMMU is never defined, because it gets defined in linux-ptrace.h, which is not included by fork-inferior.c. Due to this, gdbserver fails to build on noMMU architectures. This commit fixes that by simply including linux-ptrace.h. This bug was introduced by commit 2090129c36c7e582943b7d300968d19b46160d84 ("Share fork_inferior et al with gdbserver"). Indeed, the same fork()/vfork() selection was done, but in another file where linux-ptrace.h was included. Fixes the following build issue: ../nat/fork-inferior.c: In function 'pid_t fork_inferior(const char*, const string&, char**, void (*)(), void (*)(int), void (*)(), const char*, void (*)(const char*, char* const*, char* const*))': ../nat/fork-inferior.c:376:11: error: 'fork' was not declared in this scope pid = fork (); ^~~~ ../nat/fork-inferior.c:376:11: note: suggested alternative: 'vfork' pid = fork (); ^~~~ vfork Signed-off-by: Thomas Petazzoni [Romain: rebase on gdb 8.3] Signed-off-by: Romain Naour --- gdb/nat/fork-inferior.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gdb/nat/fork-inferior.c b/gdb/nat/fork-inferior.c index 7ba0126871d..53e1ec72f09 100644 --- a/gdb/nat/fork-inferior.c +++ b/gdb/nat/fork-inferior.c @@ -27,6 +27,7 @@ #include "gdbsupport/pathstuff.h" #include "gdbsupport/signals-state-save-restore.h" #include "gdbsupport/gdb_tilde_expand.h" +#include "linux-ptrace.h" #include extern char **environ; -- 2.29.2 ================================================ FILE: package/gdb/11.1/0006-sim-filter-out-SIGSTKSZ-PR-sim-28302.patch ================================================ From 7b3df9b8938357c2b0dcf2624e599a76fc4edc02 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 3 Oct 2021 12:02:53 -0400 Subject: [PATCH] sim: filter out SIGSTKSZ [PR sim/28302] We map target signals to host signals so we can propagate signals between the host & simulated worlds. That means we need to know the symbolic names & values of all signals that might be sent. The tools that generate that list use signal.h and include all symbols that start with "SIG" so as to automatically include any new symbols that the C library might add. Unfortunately, this also picks up "SIGSTKSZ" which is not actually a signal itself, but a signal related setting -- it's the size of the stack when a signal is handled. By itself this doesn't super matter as we will never see a signal with that same value (since the range of valid signals tend to be way less than 1024, and the size of the default signal stack will never be that small). But with recent glibc changes that make this into a dynamic value instead of a compile-time constant, some users see build failures when building the sim. As suggested by Adam Sampson, update our scripts to ignore this symbol to simplify everything and avoid the build failure. Bug: https://sourceware.org/PR28302 [Upstream: https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=39d53d04357606a15efd400147fa7369d71baf2c] Signed-off-by: Peter Seiderer --- sim/bfin/linux-targ-map.h | 5 +---- sim/common/gennltvals.py | 6 ++++-- sim/common/nltvals.def | 1 - 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/sim/bfin/linux-targ-map.h b/sim/bfin/linux-targ-map.h index e9c8c8f..0340ed5 100644 --- a/sim/bfin/linux-targ-map.h +++ b/sim/bfin/linux-targ-map.h @@ -30,6 +30,7 @@ echo # XXX: nothing uses this ? echo '#include ' | \ bfin-uclinux-gcc -E -dD -P - | \ +grep -v SIGSTKSZ | \ sed -r -n \ -e '1istatic CB_TARGET_DEFS_MAP cb_linux_signal_map[] = {' \ -e '$i\ \ { 0, -1, -1 }\n};' \ @@ -1987,10 +1988,6 @@ static CB_TARGET_DEFS_MAP cb_linux_signal_map[] = #ifdef SIG_SETMASK # define TARGET_LINUX_SIG_SETMASK 2 { "SIG_SETMASK", SIG_SETMASK, TARGET_LINUX_SIG_SETMASK }, -#endif -#ifdef SIGSTKSZ -# define TARGET_LINUX_SIGSTKSZ 8192 - { "SIGSTKSZ", SIGSTKSZ, TARGET_LINUX_SIGSTKSZ }, #endif { 0, -1, -1 } }; diff --git a/sim/common/gennltvals.py b/sim/common/gennltvals.py index b3e558d..bd4d7e9 100755 --- a/sim/common/gennltvals.py +++ b/sim/common/gennltvals.py @@ -67,6 +67,7 @@ FILE_HEADER = f"""\ def gentvals(output: TextIO, cpp: str, srctype: str, srcdir: Path, headers: Iterable[str], pattern: str, + filter: str = r'^$', target: str = None): """Extract constants from the specified files using a regular expression. @@ -94,12 +95,13 @@ def gentvals(output: TextIO, cpp: str, srctype: str, srcdir: Path, srcfile = ''.join(f'#include <{x}>\n' for x in headers) syms = set() define_pattern = re.compile(r'^#\s*define\s+(' + pattern + ')') + filter_pattern = re.compile(filter) for header in headers: with open(srcdir / header, 'r', encoding='utf-8') as fp: data = fp.read() for line in data.splitlines(): m = define_pattern.match(line) - if m: + if m and not filter_pattern.search(line): syms.add(m.group(1)) for sym in sorted(syms): srcfile += f'#ifdef {sym}\nDEFVAL {{ "{sym}", {sym} }},\n#endif\n' @@ -129,7 +131,7 @@ def gen_common(output: TextIO, newlib: Path, cpp: str): ('errno.h', 'sys/errno.h'), 'E[A-Z0-9]*') gentvals(output, cpp, 'signal', newlib / 'newlib/libc/include', - ('signal.h', 'sys/signal.h'), r'SIG[A-Z0-9]*') + ('signal.h', 'sys/signal.h'), r'SIG[A-Z0-9]*', filter=r'SIGSTKSZ') gentvals(output, cpp, 'open', newlib / 'newlib/libc/include', ('fcntl.h', 'sys/fcntl.h', 'sys/_default_fcntl.h'), r'O_[A-Z0-9]*') diff --git a/sim/common/nltvals.def b/sim/common/nltvals.def index 8ae8839..8bc6ae5 100644 --- a/sim/common/nltvals.def +++ b/sim/common/nltvals.def @@ -116,7 +116,6 @@ { "SIGPROF", 27 }, { "SIGQUIT", 3 }, { "SIGSEGV", 11 }, - { "SIGSTKSZ", 8192 }, { "SIGSTOP", 17 }, { "SIGSYS", 12 }, { "SIGTERM", 15 }, -- 2.33.1 ================================================ FILE: package/gdb/11.1/0007-Fix-getrandom-compile-for-uclibc-v1.0.35.patch ================================================ From 879008ef9a48aa1363671f5c1736b49f30c5a379 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Sat, 6 Nov 2021 10:06:25 +0100 Subject: [PATCH] Fix getrandom compile for uclibc < v1.0.35 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fix getrandom compile for uclibc < v1.0.35, add missing stddef.h include (fixed in uclibc since v1.0.35, see [1]) Fixes: .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:35: error: unknown type name ‘size_t’ 27 | extern int getrandom(void *__buf, size_t count, unsigned int flags) | ^~~~~~ [1] https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/commit/?id=00972c02c2b6e0a95d5def4a71bdfb188e091782t Signed-off-by: Peter Seiderer --- gnulib/import/getrandom.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gnulib/import/getrandom.c b/gnulib/import/getrandom.c index 41212fb..0ad3f96 100644 --- a/gnulib/import/getrandom.c +++ b/gnulib/import/getrandom.c @@ -19,6 +19,7 @@ #include +#include #include #include -- 2.33.1 ================================================ FILE: package/gdb/11.1/0007-fix-musl-build-on-riscv.patch ================================================ From c3fdbc0a24c83246f951ba79c7167547da979ae5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 10 Nov 2021 23:14:54 +0100 Subject: [PATCH] fix musl build on riscv Fix the following build failure raised with musl: ../../gdbserver/linux-riscv-low.cc: In function 'void riscv_fill_fpregset(regcache*, void*)': ../../gdbserver/linux-riscv-low.cc:140:19: error: 'ELF_NFPREG' was not declared in this scope; did you mean 'ELF_NGREG'? 140 | for (i = 0; i < ELF_NFPREG - 1; i++, regbuf += flen) | ^~~~~~~~~~ | ELF_NGREG musl fixed the issue with https://git.musl-libc.org/cgit/musl/commit/?id=e5d2823631bbfebacf48e1a34ed28f28d7cb2570 Fixes: - http://autobuild.buildroot.org/results/16b19198980ce9c81a618b3f6e8dc9fe28247a28 Signed-off-by: Fabrice Fontaine --- gdb/nat/riscv-linux-tdesc.c | 5 +++++ gdbserver/linux-riscv-low.cc | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/gdb/nat/riscv-linux-tdesc.c b/gdb/nat/riscv-linux-tdesc.c index 837b1707e0f..667c013006a 100644 --- a/gdb/nat/riscv-linux-tdesc.c +++ b/gdb/nat/riscv-linux-tdesc.c @@ -31,6 +31,11 @@ # define NFPREG 33 #endif +/* Work around musl breakage since version 1.1.24. */ +#ifndef ELF_NFPREG +# define ELF_NFPREG 33 +#endif + /* See nat/riscv-linux-tdesc.h. */ struct riscv_gdbarch_features diff --git a/gdbserver/linux-riscv-low.cc b/gdbserver/linux-riscv-low.cc index 8bf97ea4aa3..1142dbc7b16 100644 --- a/gdbserver/linux-riscv-low.cc +++ b/gdbserver/linux-riscv-low.cc @@ -30,6 +30,11 @@ # define NFPREG 33 #endif +/* Work around musl breakage since version 1.1.24. */ +#ifndef ELF_NFPREG +# define ELF_NFPREG 33 +#endif + /* Linux target op definitions for the RISC-V architecture. */ class riscv_target : public linux_process_target -- 2.33.0 ================================================ FILE: package/gdb/11.1/0008-Fix-build-on-rhES5.patch ================================================ From db3aaeda1d6b156100d969edb8c0e674bca6b201 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 12 May 2021 12:39:22 -0600 Subject: [PATCH] Fix build on rhES5 The rhES5 build failed due to an upstream import a while back. The bug here is that, while the 'personality' function exists, ADDR_NO_RANDOMIZE is only defined in , not . However, does not declare the 'personality' function, and and cannot both be included. This patch restores one of the removed configure checks and updates the code to check it. We had this as a local patch at AdaCore, because it seemed like there was no interest upstream. However, now it turns out that this fixes PR build/28555, so I'm sending it now. [Upstream: https://sourceware.org/git?p=binutils-gdb.git;h=0b03c6f03d51f441d999e0cee92f81af543d9373] Signed-off-by: Peter Seiderer --- gdb/config.in | 4 ++++ gdb/configure | 16 ++++++++++++++++ gdb/nat/linux-personality.c | 4 ++++ gdbserver/config.in | 4 ++++ gdbserver/configure | 16 ++++++++++++++++ gdbsupport/common.m4 | 5 +++++ gdbsupport/config.in | 4 ++++ gdbsupport/configure | 16 ++++++++++++++++ 8 files changed, 69 insertions(+) diff --git a/gdb/config.in b/gdb/config.in index 2c30504..776bee9 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -96,6 +96,10 @@ /* define if the compiler supports basic C++11 syntax */ #undef HAVE_CXX11 +/* Define to 1 if you have the declaration of `ADDR_NO_RANDOMIZE', and to 0 if + you don't. */ +#undef HAVE_DECL_ADDR_NO_RANDOMIZE + /* Define to 1 if you have the declaration of `asprintf', and to 0 if you don't. */ #undef HAVE_DECL_ASPRINTF diff --git a/gdb/configure b/gdb/configure index 5d89635..27e3194 100755 --- a/gdb/configure +++ b/gdb/configure @@ -13838,6 +13838,22 @@ fi done + # This is needed for RHEL 5 and uclibc-ng < 1.0.39. + # These did not define ADDR_NO_RANDOMIZE in sys/personality.h, + # only in linux/personality.h. + ac_fn_c_check_decl "$LINENO" "ADDR_NO_RANDOMIZE" "ac_cv_have_decl_ADDR_NO_RANDOMIZE" "#include +" +if test "x$ac_cv_have_decl_ADDR_NO_RANDOMIZE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_ADDR_NO_RANDOMIZE $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "strstr" "ac_cv_have_decl_strstr" "$ac_includes_default" if test "x$ac_cv_have_decl_strstr" = xyes; then : ac_have_decl=1 diff --git a/gdb/nat/linux-personality.c b/gdb/nat/linux-personality.c index 9ce345b..27999fd 100644 --- a/gdb/nat/linux-personality.c +++ b/gdb/nat/linux-personality.c @@ -22,6 +22,10 @@ #include +# if !HAVE_DECL_ADDR_NO_RANDOMIZE +# define ADDR_NO_RANDOMIZE 0x0040000 +# endif /* ! HAVE_DECL_ADDR_NO_RANDOMIZE */ + /* See comment on nat/linux-personality.h. */ maybe_disable_address_space_randomization:: diff --git a/gdbserver/config.in b/gdbserver/config.in index cf06c56..c9258b3 100644 --- a/gdbserver/config.in +++ b/gdbserver/config.in @@ -31,6 +31,10 @@ /* define if the compiler supports basic C++11 syntax */ #undef HAVE_CXX11 +/* Define to 1 if you have the declaration of `ADDR_NO_RANDOMIZE', and to 0 if + you don't. */ +#undef HAVE_DECL_ADDR_NO_RANDOMIZE + /* Define to 1 if you have the declaration of `asprintf', and to 0 if you don't. */ #undef HAVE_DECL_ASPRINTF diff --git a/gdbserver/configure b/gdbserver/configure index b227167..d399d71 100755 --- a/gdbserver/configure +++ b/gdbserver/configure @@ -7131,6 +7131,22 @@ fi done + # This is needed for RHEL 5 and uclibc-ng < 1.0.39. + # These did not define ADDR_NO_RANDOMIZE in sys/personality.h, + # only in linux/personality.h. + ac_fn_c_check_decl "$LINENO" "ADDR_NO_RANDOMIZE" "ac_cv_have_decl_ADDR_NO_RANDOMIZE" "#include +" +if test "x$ac_cv_have_decl_ADDR_NO_RANDOMIZE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_ADDR_NO_RANDOMIZE $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "strstr" "ac_cv_have_decl_strstr" "$ac_includes_default" if test "x$ac_cv_have_decl_strstr" = xyes; then : ac_have_decl=1 diff --git a/gdbsupport/common.m4 b/gdbsupport/common.m4 index 901c454..56a355e 100644 --- a/gdbsupport/common.m4 +++ b/gdbsupport/common.m4 @@ -55,6 +55,11 @@ AC_DEFUN([GDB_AC_COMMON], [ ptrace64 sbrk setns sigaltstack sigprocmask \ setpgid setpgrp getrusage getauxval sigtimedwait]) + # This is needed for RHEL 5 and uclibc-ng < 1.0.39. + # These did not define ADDR_NO_RANDOMIZE in sys/personality.h, + # only in linux/personality.h. + AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include ]) + AC_CHECK_DECLS([strstr]) # ----------------------- # diff --git a/gdbsupport/config.in b/gdbsupport/config.in index f46e261..6945a62 100644 --- a/gdbsupport/config.in +++ b/gdbsupport/config.in @@ -28,6 +28,10 @@ /* define if the compiler supports basic C++11 syntax */ #undef HAVE_CXX11 +/* Define to 1 if you have the declaration of `ADDR_NO_RANDOMIZE', and to 0 if + you don't. */ +#undef HAVE_DECL_ADDR_NO_RANDOMIZE + /* Define to 1 if you have the declaration of `asprintf', and to 0 if you don't. */ #undef HAVE_DECL_ASPRINTF diff --git a/gdbsupport/configure b/gdbsupport/configure index a9dd02c..243a03f 100755 --- a/gdbsupport/configure +++ b/gdbsupport/configure @@ -8144,6 +8144,22 @@ fi done + # This is needed for RHEL 5 and uclibc-ng < 1.0.39. + # These did not define ADDR_NO_RANDOMIZE in sys/personality.h, + # only in linux/personality.h. + ac_fn_c_check_decl "$LINENO" "ADDR_NO_RANDOMIZE" "ac_cv_have_decl_ADDR_NO_RANDOMIZE" "#include +" +if test "x$ac_cv_have_decl_ADDR_NO_RANDOMIZE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_ADDR_NO_RANDOMIZE $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "strstr" "ac_cv_have_decl_strstr" "$ac_includes_default" if test "x$ac_cv_have_decl_strstr" = xyes; then : ac_have_decl=1 -- 2.33.1 ================================================ FILE: package/gdb/11.1/0009-gdbserver-Makefile.in-fix-NLS-build.patch ================================================ From c098500aee945ee7a3021649eb0a2655b004103c Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 18 Nov 2021 22:52:08 +0100 Subject: [PATCH] gdbserver/Makefile.in: fix NLS build Fix the following build failure raised since gdb version 10.1 and https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=9a665d62266e75f0519f3a663784c458885b5c63: CXXLD libinproctrace.so /home/buildroot/autobuild/instance-2/output-1/host/opt/ext-toolchain/bin/../lib/gcc/i586-buildroot-linux-musl/9.3.0/../../../../i586-buildroot-linux-musl/bin/ld: gdbsupport/tdesc-ipa.o: in function `print_xml_feature::visit(tdesc_type_builtin const*)': /home/buildroot/autobuild/instance-2/output-1/build/gdb-10.2/build/gdbserver/../../gdbserver/../gdbsupport/tdesc.cc:310: undefined reference to `libintl_gettext' Fixes: - http://autobuild.buildroot.org/results/faacc874fe9d32b74cb3d3dea988ef661cb0e3d0 Signed-off-by: Fabrice Fontaine [Upstream status: https://sourceware.org/pipermail/gdb-patches/2021-November/183580.html] --- gdbserver/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in index 71c3c4ad959..e69fbc4dae4 100644 --- a/gdbserver/Makefile.in +++ b/gdbserver/Makefile.in @@ -383,7 +383,7 @@ $(IPA_LIB): $(sort $(IPA_OBJS)) ${CDEPS} $(ECHO_CXXLD) $(CC_LD) -shared -fPIC -Wl,--soname=$(IPA_LIB) \ -Wl,--no-undefined $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) \ $(CXXFLAGS) \ - -o $(IPA_LIB) ${IPA_OBJS} $(LIBIBERTY_FOR_SHLIB) -ldl -pthread + -o $(IPA_LIB) ${IPA_OBJS} $(LIBIBERTY_FOR_SHLIB) -ldl -pthread $(INTL) # Put the proper machine-specific files first, so M-. on a machine # specific routine gets the one for the correct machine. -- 2.33.0 ================================================ FILE: package/gdb/4ecb98fbc2f94dbe01b69384afbc515107de73df/0001-Fix-Python3.9-related-runtime-problems.patch ================================================ From 8342feee01e4e8d38affcf35e47ad900567f42e0 Mon Sep 17 00:00:00 2001 From: Kevin Buettner Date: Wed, 27 May 2020 20:05:40 -0700 Subject: [PATCH] Fix Python3.9 related runtime problems Python3.9b1 is now available on Rawhide. GDB w/ Python 3.9 support can be built using the configure switch -with-python=/usr/bin/python3.9. Attempting to run gdb/Python3.9 segfaults on startup: #0 0x00007ffff7b0582c in PyEval_ReleaseLock () from /lib64/libpython3.9.so.1.0 #1 0x000000000069ccbf in do_start_initialization () at worktree-test1/gdb/python/python.c:1789 #2 _initialize_python () at worktree-test1/gdb/python/python.c:1877 #3 0x00000000007afb0a in initialize_all_files () at init.c:237 ... Consulting the the documentation... https://docs.python.org/3/c-api/init.html ...we find that PyEval_ReleaseLock() has been deprecated since version 3.2. It recommends using PyEval_SaveThread or PyEval_ReleaseThread() instead. In do_start_initialization, in gdb/python/python.c, we can replace the calls to PyThreadState_Swap() and PyEval_ReleaseLock() with a single call to PyEval_SaveThread. (Thanks to Keith Seitz for working this out.) With that in place, GDB gets a little bit further. It still dies on startup, but the backtrace is different: #0 0x00007ffff7b04306 in PyOS_InterruptOccurred () from /lib64/libpython3.9.so.1.0 #1 0x0000000000576e86 in check_quit_flag () at worktree-test1/gdb/extension.c:776 #2 0x0000000000576f8a in set_active_ext_lang (now_active=now_active@entry=0x983c00 ) at worktree-test1/gdb/extension.c:705 #3 0x000000000069d399 in gdbpy_enter::gdbpy_enter (this=0x7fffffffd2d0, gdbarch=0x0, language=0x0) at worktree-test1/gdb/python/python.c:211 #4 0x0000000000686e00 in python_new_inferior (inf=0xddeb10) at worktree-test1/gdb/python/py-inferior.c:251 #5 0x00000000005d9fb9 in std::function::operator()(inferior*) const (__args#0=, this=0xccad20) at /usr/include/c++/10/bits/std_function.h:617 #6 gdb::observers::observable::notify (args#0=0xddeb10, this=) at worktree-test1/gdb/../gdbsupport/observable.h:106 #7 add_inferior_silent (pid=0) at worktree-test1/gdb/inferior.c:113 #8 0x00000000005dbcb8 in initialize_inferiors () at worktree-test1/gdb/inferior.c:947 ... We checked with some Python Developers and were told that we should acquire the GIL prior to calling any Python C API function. We definitely don't have the GIL for calls of PyOS_InterruptOccurred(). I moved class_gdbpy_gil earlier in the file and use it in gdbpy_check_quit_flag() to acquire (and automatically release) the GIL. With those changes in place, I was able to run to a GDB prompt. But, when trying to quit, it segfaulted again due to due to some other problems with gdbpy_check_quit_flag(): Thread 1 "gdb" received signal SIGSEGV, Segmentation fault. 0x00007ffff7bbab0c in new_threadstate () from /lib64/libpython3.9.so.1.0 (top-gdb) bt 8 #0 0x00007ffff7bbab0c in new_threadstate () from /lib64/libpython3.9.so.1.0 #1 0x00007ffff7afa5ea in PyGILState_Ensure.cold () from /lib64/libpython3.9.so.1.0 #2 0x000000000069b58c in gdbpy_gil::gdbpy_gil (this=) at worktree-test1/gdb/python/python.c:278 #3 gdbpy_check_quit_flag (extlang=) at worktree-test1/gdb/python/python.c:278 #4 0x0000000000576e96 in check_quit_flag () at worktree-test1/gdb/extension.c:776 #5 0x000000000057700c in restore_active_ext_lang (previous=0xe9c050) at worktree-test1/gdb/extension.c:729 #6 0x000000000088913a in do_my_cleanups ( pmy_chain=0xc31870 , old_chain=0xae5720 ) at worktree-test1/gdbsupport/cleanups.cc:131 #7 do_final_cleanups () at worktree-test1/gdbsupport/cleanups.cc:143 In this case, we're trying to call a Python C API function after Py_Finalize() has been called from finalize_python(). I made finalize_python set gdb_python_initialized to false and then cause check_quit_flag() to return early when it's false. With these changes in place, GDB seems to be working again with Python3.9b1. I think it likely that there are other problems lurking. I wouldn't be surprised to find that there are other calls into Python where we don't first make sure that we have the GIL. Further changes may well be needed. I see no regressions testing on Rawhide using a GDB built with the default Python version (3.8.3) versus one built using Python 3.9b1. I've also tested on Fedora 28, 29, 30, 31, and 32 (all x86_64) using the default (though updated) system installed versions of Python on those OSes. This means that I've tested against Python versions 2.7.15, 2.7.17, 2.7.18, 3.7.7, 3.8.2, and 3.8.3. In each case GDB still builds without problem and shows no regressions after applying this patch. gdb/ChangeLog: 2020-MM-DD Kevin Buettner Keith Seitz * python/python.c (do_start_initialization): For Python 3.9 and later, call PyEval_SaveThread instead of PyEval_ReleaseLock. (class gdbpy_gil): Move to earlier in file. (finalize_python): Set gdb_python_initialized. (gdbpy_check_quit_flag): Acquire GIL via gdbpy_gil. Return early when not initialized. [import into Buildroot, removing ChangeLog change to avoid conflict] Signed-off-by: Thomas De Schampheleire --- gdb/python/python.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/gdb/python/python.c b/gdb/python/python.c index b00b70be85b..0eee3f0397c 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -268,6 +268,30 @@ ensure_python_env (struct gdbarch *gdbarch, return make_cleanup (restore_python_env, env); } +/* A helper class to save and restore the GIL, but without touching + the other globals that are handled by gdbpy_enter. */ + +class gdbpy_gil +{ +public: + + gdbpy_gil () + : m_state (PyGILState_Ensure ()) + { + } + + ~gdbpy_gil () + { + PyGILState_Release (m_state); + } + + DISABLE_COPY_AND_ASSIGN (gdbpy_gil); + +private: + + PyGILState_STATE m_state; +}; + /* Set the quit flag. */ static void @@ -281,6 +305,10 @@ gdbpy_set_quit_flag (const struct extension_language_defn *extlang) static int gdbpy_check_quit_flag (const struct extension_language_defn *extlang) { + if (!gdb_python_initialized) + return 0; + + gdbpy_gil gil; return PyOS_InterruptOccurred (); } @@ -1620,6 +1648,7 @@ finalize_python (void *ignore) Py_Finalize (); + gdb_python_initialized = false; restore_active_ext_lang (previous_active); } #endif @@ -1854,8 +1883,7 @@ message == an error message without a stack will be printed."), goto fail; /* Release the GIL while gdb runs. */ - PyThreadState_Swap (NULL); - PyEval_ReleaseLock (); + PyEval_SaveThread (); make_final_cleanup (finalize_python, NULL); -- 2.31.1 ================================================ FILE: package/gdb/9.2/0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch ================================================ From 72ee19f54fd35595465b2e35eccf1f3d65fe21c6 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 6 Aug 2016 17:32:50 -0700 Subject: [PATCH] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC systems Upstream-Status: Pending Signed-off-by: Khem Raj Signed-off-by: Thomas Petazzoni [Rebase on gdb 8.3] Signed-off-by: Romain Naour --- gdb/gdbserver/linux-ppc-low.c | 6 ++++++ gdb/nat/ppc-linux.h | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdb/gdbserver/linux-ppc-low.c index 1b695e53fe9..1978347c02c 100644 --- a/gdb/gdbserver/linux-ppc-low.c +++ b/gdb/gdbserver/linux-ppc-low.c @@ -23,7 +23,13 @@ #include "elf/common.h" #include #include +#if !defined(__GLIBC__) +# define pt_regs uapi_pt_regs +#endif #include +#if !defined(__GLIBC__) +# undef pt_regs +#endif #include "arch/ppc-linux-common.h" #include "arch/ppc-linux-tdesc.h" diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h index f1561b3b357..40399361c09 100644 --- a/gdb/nat/ppc-linux.h +++ b/gdb/nat/ppc-linux.h @@ -18,7 +18,13 @@ #ifndef NAT_PPC_LINUX_H #define NAT_PPC_LINUX_H +#if !defined(__GLIBC__) +# define pt_regs uapi_pt_regs +#endif #include +#if !defined(__GLIBC__) +# undef pt_regs +#endif #include /* This sometimes isn't defined. */ -- 2.21.0 ================================================ FILE: package/gdb/9.2/0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch ================================================ From ef630288fdc2d4d22651702672f9d5c9cd767e5b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 3 Jun 2017 21:23:52 +0200 Subject: [PATCH] sh/ptrace: Define pt_{dsp,}regs uapi_pt_{dsp,}regs on !GLIBC systems Fixes a pt_{dsp,}regs redefinition when building with the musl C library on SuperH. Inspired by http://git.yoctoproject.org/clean/cgit.cgi/poky/plain/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch, adapted for SuperH. Signed-off-by: Thomas Petazzoni [Rebase on gdb 8.0] Signed-off-by: Romain Naour --- gdb/gdbserver/linux-sh-low.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gdb/gdbserver/linux-sh-low.c b/gdb/gdbserver/linux-sh-low.c index 0953721a190..c331c1382f7 100644 --- a/gdb/gdbserver/linux-sh-low.c +++ b/gdb/gdbserver/linux-sh-low.c @@ -27,7 +27,15 @@ extern const struct target_desc *tdesc_sh; #include #endif +#if !defined(__GLIBC__) +# define pt_regs uapi_pt_regs +# define pt_dspregs uapi_pt_dspregs +#endif #include +#if !defined(__GLIBC__) +# undef pt_regs +# undef pt_dspregs +#endif #define sh_num_regs 41 -- 2.21.0 ================================================ FILE: package/gdb/9.2/0003-use-asm-sgidefs.h.patch ================================================ From 19a0f664809b6858e69aa98188eb739415de044c Mon Sep 17 00:00:00 2001 From: Andre McCurdy Date: Sat, 30 Apr 2016 15:29:06 -0700 Subject: [PATCH] use Build fix for MIPS with musl libc The MIPS specific header is provided by glibc and uclibc but not by musl. Regardless of the libc, the kernel headers provide which provides the same definitions, so use that instead. Upstream-Status: Pending [Vincent: Taken from: https://sourceware.org/bugzilla/show_bug.cgi?id=21070] Signed-off-by: Andre McCurdy Signed-off-by: Khem Raj Signed-off-by: Vicente Olivert Riera --- gdb/mips-linux-nat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c index e68ed1e4da9..bc42aa59685 100644 --- a/gdb/mips-linux-nat.c +++ b/gdb/mips-linux-nat.c @@ -31,7 +31,7 @@ #include "gdb_proc_service.h" #include "gregset.h" -#include +#include #include "nat/gdb_ptrace.h" #include #include "inf-ptrace.h" -- 2.21.0 ================================================ FILE: package/gdb/9.2/0004-gdbserver-fix-build-for-m68k.patch ================================================ From 448e481aab86c823d908530038e20a14213db0a2 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Fri, 22 Jun 2018 22:40:26 +0200 Subject: [PATCH] gdbserver: fix build for m68k MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As for strace [1], when is included after , the build fails on m68k with the following diagnostics: In file included from ./../nat/linux-ptrace.h:28:0, from linux-low.h:27, from linux-m68k-low.c:20: [...]/usr/include/sys/reg.h:26:3: error: expected identifier before numeric constant PT_D1 = 0, ^ [...]usr/include/sys/reg.h:26:3: error: expected « } » before numeric constant [...]usr/include/sys/reg.h:26:3: error: expected unqualified-id before numeric constant In file included from linux-m68k-low.c:27:0: [...]usr/include/sys/reg.h:99:1: error: expected declaration before « } » token }; ^ Fix this by moving on top of "linux-low.h". [1] https://github.com/strace/strace/commit/6ebf6c4f9e5ebca123a5b5f24afe67cf0473cf92 Signed-off-by: Romain Naour --- gdb/gdbserver/linux-m68k-low.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gdb/gdbserver/linux-m68k-low.c b/gdb/gdbserver/linux-m68k-low.c index 16f639d02fc..969d9973737 100644 --- a/gdb/gdbserver/linux-m68k-low.c +++ b/gdb/gdbserver/linux-m68k-low.c @@ -17,16 +17,17 @@ along with this program. If not, see . */ #include "server.h" + +#ifdef HAVE_SYS_REG_H +#include +#endif + #include "linux-low.h" /* Defined in auto-generated file reg-m68k.c. */ void init_registers_m68k (void); extern const struct target_desc *tdesc_m68k; -#ifdef HAVE_SYS_REG_H -#include -#endif - #define m68k_num_regs 29 #define m68k_num_gregs 18 -- 2.21.0 ================================================ FILE: package/gdb/9.2/0005-nat-fork-inferior-include-linux-ptrace.h.patch ================================================ From d84ecfa3a8c8fbade89229ac66c09f2a97ab00fb Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 24 Jun 2018 23:33:55 +0200 Subject: [PATCH] nat/fork-inferior: include linux-ptrace.h To decide whether fork() or vfork() should be used, fork-inferior.c uses the following test: #if !(defined(__UCLIBC__) && defined(HAS_NOMMU)) However, HAS_NOMMU is never defined, because it gets defined in linux-ptrace.h, which is not included by fork-inferior.c. Due to this, gdbserver fails to build on noMMU architectures. This commit fixes that by simply including linux-ptrace.h. This bug was introduced by commit 2090129c36c7e582943b7d300968d19b46160d84 ("Share fork_inferior et al with gdbserver"). Indeed, the same fork()/vfork() selection was done, but in another file where linux-ptrace.h was included. Fixes the following build issue: ../nat/fork-inferior.c: In function 'pid_t fork_inferior(const char*, const string&, char**, void (*)(), void (*)(int), void (*)(), const char*, void (*)(const char*, char* const*, char* const*))': ../nat/fork-inferior.c:376:11: error: 'fork' was not declared in this scope pid = fork (); ^~~~ ../nat/fork-inferior.c:376:11: note: suggested alternative: 'vfork' pid = fork (); ^~~~ vfork Signed-off-by: Thomas Petazzoni [Romain: rebase on gdb 8.3] Signed-off-by: Romain Naour --- gdb/nat/fork-inferior.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gdb/nat/fork-inferior.c b/gdb/nat/fork-inferior.c index fe9360a5039..626fe7c1fbf 100644 --- a/gdb/nat/fork-inferior.c +++ b/gdb/nat/fork-inferior.c @@ -27,6 +27,7 @@ #include "gdbsupport/pathstuff.h" #include "gdbsupport/signals-state-save-restore.h" #include "gdbsupport/gdb_tilde_expand.h" +#include "linux-ptrace.h" #include extern char **environ; -- 2.21.0 ================================================ FILE: package/gdb/9.2/0006-sim-ppc-Fix-linker-error-with-fno-common.patch ================================================ From ad8464f799a4c96c7ab8bdfec3f95846cf54f9b0 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 1 Jul 2020 19:29:55 +0200 Subject: [PATCH] sim/ppc: Fix linker error with -fno-common GCC 10 enables -fno-common by default. This resulted in a multiple definition linker error since global variables were declared and defined in a header file: ld: ld-insn.o:sim/ppc/ld-insn.h:221: multiple definition of `max_model_fields_len'; igen.o:sim/ppc/ld-insn.h:221: first defined here sim/ppc * ld-insn.h (last_model, last_model_data, last_model_function, last_model_internal, last_model_macro, last_model_static): Delete. (max_model_fields_len, model_data, model_functions, model_internal, model_macros, model_static, models): Declare, but do not define. * ld-insn.c (last_model, last_model_data, last_model_function, last_model_internal, last_model_macro, last_model_static, max_model_fields_len, model_data, model_functions, model_internal, model_macros, model_static, models): Define. Signed-off-by: Maxim Kochetkov Fetch from: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=ad8464f799a4c96c7ab8bdfec3f95846cf54f9b0 --- sim/ppc/ld-insn.c | 18 ++++++++++++++++++ sim/ppc/ld-insn.h | 24 +++++++----------------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/sim/ppc/ld-insn.c b/sim/ppc/ld-insn.c index e39131ca133..585071a861f 100644 --- a/sim/ppc/ld-insn.c +++ b/sim/ppc/ld-insn.c @@ -28,6 +28,24 @@ #include "igen.h" +static model *last_model; + +static insn *last_model_macro; +static insn *last_model_function; +static insn *last_model_internal; +static insn *last_model_static; +static insn *last_model_data; + +model *models; + +insn *model_macros; +insn *model_functions; +insn *model_internal; +insn *model_static; +insn *model_data; + +int max_model_fields_len; + static void update_depth(insn_table *entry, lf *file, diff --git a/sim/ppc/ld-insn.h b/sim/ppc/ld-insn.h index 88318ffa2b3..52baeaa2d84 100644 --- a/sim/ppc/ld-insn.h +++ b/sim/ppc/ld-insn.h @@ -200,25 +200,15 @@ extern insn_table *load_insn_table table_include *includes, cache_table **cache_rules); -model *models; -model *last_model; +extern model *models; -insn *model_macros; -insn *last_model_macro; +extern insn *model_macros; +extern insn *model_functions; +extern insn *model_internal; +extern insn *model_static; +extern insn *model_data; -insn *model_functions; -insn *last_model_function; - -insn *model_internal; -insn *last_model_internal; - -insn *model_static; -insn *last_model_static; - -insn *model_data; -insn *last_model_data; - -int max_model_fields_len; +extern int max_model_fields_len; extern void insn_table_insert_insn (insn_table *table, -- 2.18.4 ================================================ FILE: package/gdb/9.2/0007-Fix-Python3.9-related-runtime-problems.patch ================================================ From c47bae859a5af0d95224d90000df0e529f7c5aa0 Mon Sep 17 00:00:00 2001 From: Kevin Buettner Date: Wed, 27 May 2020 20:05:40 -0700 Subject: [PATCH] Fix Python3.9 related runtime problems Python3.9b1 is now available on Rawhide. GDB w/ Python 3.9 support can be built using the configure switch -with-python=/usr/bin/python3.9. Attempting to run gdb/Python3.9 segfaults on startup: #0 0x00007ffff7b0582c in PyEval_ReleaseLock () from /lib64/libpython3.9.so.1.0 #1 0x000000000069ccbf in do_start_initialization () at worktree-test1/gdb/python/python.c:1789 #2 _initialize_python () at worktree-test1/gdb/python/python.c:1877 #3 0x00000000007afb0a in initialize_all_files () at init.c:237 ... Consulting the the documentation... https://docs.python.org/3/c-api/init.html ...we find that PyEval_ReleaseLock() has been deprecated since version 3.2. It recommends using PyEval_SaveThread or PyEval_ReleaseThread() instead. In do_start_initialization, in gdb/python/python.c, we can replace the calls to PyThreadState_Swap() and PyEval_ReleaseLock() with a single call to PyEval_SaveThread. (Thanks to Keith Seitz for working this out.) With that in place, GDB gets a little bit further. It still dies on startup, but the backtrace is different: #0 0x00007ffff7b04306 in PyOS_InterruptOccurred () from /lib64/libpython3.9.so.1.0 #1 0x0000000000576e86 in check_quit_flag () at worktree-test1/gdb/extension.c:776 #2 0x0000000000576f8a in set_active_ext_lang (now_active=now_active@entry=0x983c00 ) at worktree-test1/gdb/extension.c:705 #3 0x000000000069d399 in gdbpy_enter::gdbpy_enter (this=0x7fffffffd2d0, gdbarch=0x0, language=0x0) at worktree-test1/gdb/python/python.c:211 #4 0x0000000000686e00 in python_new_inferior (inf=0xddeb10) at worktree-test1/gdb/python/py-inferior.c:251 #5 0x00000000005d9fb9 in std::function::operator()(inferior*) const (__args#0=, this=0xccad20) at /usr/include/c++/10/bits/std_function.h:617 #6 gdb::observers::observable::notify (args#0=0xddeb10, this=) at worktree-test1/gdb/../gdbsupport/observable.h:106 #7 add_inferior_silent (pid=0) at worktree-test1/gdb/inferior.c:113 #8 0x00000000005dbcb8 in initialize_inferiors () at worktree-test1/gdb/inferior.c:947 ... We checked with some Python Developers and were told that we should acquire the GIL prior to calling any Python C API function. We definitely don't have the GIL for calls of PyOS_InterruptOccurred(). I moved class_gdbpy_gil earlier in the file and use it in gdbpy_check_quit_flag() to acquire (and automatically release) the GIL. With those changes in place, I was able to run to a GDB prompt. But, when trying to quit, it segfaulted again due to due to some other problems with gdbpy_check_quit_flag(): Thread 1 "gdb" received signal SIGSEGV, Segmentation fault. 0x00007ffff7bbab0c in new_threadstate () from /lib64/libpython3.9.so.1.0 (top-gdb) bt 8 #0 0x00007ffff7bbab0c in new_threadstate () from /lib64/libpython3.9.so.1.0 #1 0x00007ffff7afa5ea in PyGILState_Ensure.cold () from /lib64/libpython3.9.so.1.0 #2 0x000000000069b58c in gdbpy_gil::gdbpy_gil (this=) at worktree-test1/gdb/python/python.c:278 #3 gdbpy_check_quit_flag (extlang=) at worktree-test1/gdb/python/python.c:278 #4 0x0000000000576e96 in check_quit_flag () at worktree-test1/gdb/extension.c:776 #5 0x000000000057700c in restore_active_ext_lang (previous=0xe9c050) at worktree-test1/gdb/extension.c:729 #6 0x000000000088913a in do_my_cleanups ( pmy_chain=0xc31870 , old_chain=0xae5720 ) at worktree-test1/gdbsupport/cleanups.cc:131 #7 do_final_cleanups () at worktree-test1/gdbsupport/cleanups.cc:143 In this case, we're trying to call a Python C API function after Py_Finalize() has been called from finalize_python(). I made finalize_python set gdb_python_initialized to false and then cause check_quit_flag() to return early when it's false. With these changes in place, GDB seems to be working again with Python3.9b1. I think it likely that there are other problems lurking. I wouldn't be surprised to find that there are other calls into Python where we don't first make sure that we have the GIL. Further changes may well be needed. I see no regressions testing on Rawhide using a GDB built with the default Python version (3.8.3) versus one built using Python 3.9b1. I've also tested on Fedora 28, 29, 30, 31, and 32 (all x86_64) using the default (though updated) system installed versions of Python on those OSes. This means that I've tested against Python versions 2.7.15, 2.7.17, 2.7.18, 3.7.7, 3.8.2, and 3.8.3. In each case GDB still builds without problem and shows no regressions after applying this patch. gdb/ChangeLog: 2020-MM-DD Kevin Buettner Keith Seitz * python/python.c (do_start_initialization): For Python 3.9 and later, call PyEval_SaveThread instead of PyEval_ReleaseLock. (class gdbpy_gil): Move to earlier in file. (finalize_python): Set gdb_python_initialized. (gdbpy_check_quit_flag): Acquire GIL via gdbpy_gil. Return early when not initialized. [import into Buildroot, removing ChangeLog change to avoid conflict] Signed-off-by: Thomas De Schampheleire --- gdb/ChangeLog | 10 ++++++++ gdb/python/python.c | 56 ++++++++++++++++++++++++--------------------- 2 files changed, 40 insertions(+), 26 deletions(-) diff --git a/gdb/python/python.c b/gdb/python/python.c index 67f362b852d..4bdd2201abc 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -238,6 +238,30 @@ gdbpy_enter::~gdbpy_enter () PyGILState_Release (m_state); } +/* A helper class to save and restore the GIL, but without touching + the other globals that are handled by gdbpy_enter. */ + +class gdbpy_gil +{ +public: + + gdbpy_gil () + : m_state (PyGILState_Ensure ()) + { + } + + ~gdbpy_gil () + { + PyGILState_Release (m_state); + } + + DISABLE_COPY_AND_ASSIGN (gdbpy_gil); + +private: + + PyGILState_STATE m_state; +}; + /* Set the quit flag. */ static void @@ -251,6 +275,10 @@ gdbpy_set_quit_flag (const struct extension_language_defn *extlang) static int gdbpy_check_quit_flag (const struct extension_language_defn *extlang) { + if (!gdb_python_initialized) + return 0; + + gdbpy_gil gil; return PyOS_InterruptOccurred (); } @@ -943,30 +971,6 @@ gdbpy_source_script (const struct extension_language_defn *extlang, /* Posting and handling events. */ -/* A helper class to save and restore the GIL, but without touching - the other globals that are handled by gdbpy_enter. */ - -class gdbpy_gil -{ -public: - - gdbpy_gil () - : m_state (PyGILState_Ensure ()) - { - } - - ~gdbpy_gil () - { - PyGILState_Release (m_state); - } - - DISABLE_COPY_AND_ASSIGN (gdbpy_gil); - -private: - - PyGILState_STATE m_state; -}; - /* A single event. */ struct gdbpy_event { @@ -1616,6 +1620,7 @@ finalize_python (void *ignore) Py_Finalize (); + gdb_python_initialized = false; restore_active_ext_lang (previous_active); } @@ -1785,8 +1790,7 @@ do_start_initialization () return false; /* Release the GIL while gdb runs. */ - PyThreadState_Swap (NULL); - PyEval_ReleaseLock (); + PyEval_SaveThread (); make_final_cleanup (finalize_python, NULL); -- 2.26.3 ================================================ FILE: package/gdb/9.2/0007-gdb-configure.tgt-build-gdbserver-with-m68k-and-ucli.patch ================================================ From 808601f075fe3dd8ca101e31c9121a4e87f0bfc7 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 6 May 2021 07:45:00 +0200 Subject: [PATCH] gdb/configure.tgt: build gdbserver with m68k and uclibc Allow to build gdbserver with m68k and uclibc: checking whether gdbserver is supported on this host... no configure: error: Automatic gdbserver build is not supported for this configuration Fixes: - http://autobuild.buildroot.org/results/f4d6d9d8418c0da48a3db4ad5a82e19bd16eae34 Signed-off-by: Fabrice Fontaine --- gdb/configure.tgt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gdb/configure.tgt b/gdb/configure.tgt index caa42be1c01..8666bc5d0bf 100644 --- a/gdb/configure.tgt +++ b/gdb/configure.tgt @@ -372,12 +372,12 @@ m68hc11*-*-*|m6811*-*-*) gdb_sim=../sim/m68hc11/libsim.a ;; -m68*-*-aout* | m68*-*-coff* | m68*-*-elf* | m68*-*-rtems* | m68*-*-uclinux* | \ +m68*-*-aout* | m68*-*-coff* | m68*-*-elf* | m68*-*-rtems* | \ fido-*-elf*) # Target: Motorola m68k embedded gdb_target_obs="m68k-tdep.o" ;; -m68*-*-linux*) +m68*-*-*linux*) # Target: Motorola m68k with a.out and ELF gdb_target_obs="m68k-tdep.o m68k-linux-tdep.o solib-svr4.o \ linux-tdep.o glibc-tdep.o symfile-mem.o" -- 2.30.2 ================================================ FILE: package/gdb/Config.in ================================================ config BR2_PACKAGE_GDB_ARCH_SUPPORTS bool default y depends on !((BR2_arm || BR2_armeb) && BR2_BINFMT_FLAT) depends on !BR2_microblaze depends on !BR2_or1k depends on !BR2_nds32 comment "gdb/gdbserver needs a toolchain w/ threads, threads debug" depends on BR2_PACKAGE_GDB_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_THREADS_DEBUG comment "gdb/gdbserver >= 8.x needs a toolchain w/ C++, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 config BR2_PACKAGE_GDB bool "gdb" depends on BR2_TOOLCHAIN_HAS_THREADS && BR2_TOOLCHAIN_HAS_THREADS_DEBUG depends on BR2_PACKAGE_GDB_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_INSTALL_LIBSTDCPP # When the external toolchain gdbserver is copied to the # target, we don't allow building a separate gdbserver. The # one from the external toolchain should be used. select BR2_PACKAGE_GDB_SERVER if \ (!BR2_PACKAGE_GDB_DEBUGGER && !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY) help GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes -- or what another program was doing at the moment it crashed. This option allows to build gdbserver and/or the gdb debugger for the target. For embedded development, the most common solution is to build only 'gdbserver' for the target, and use a cross-gdb on the host. See BR2_PACKAGE_HOST_GDB in the Toolchain menu to enable one. Notice that external toolchains often provide their own pre-built cross-gdb and gdbserver binaries. http://www.gnu.org/software/gdb/ if BR2_PACKAGE_GDB config BR2_PACKAGE_GDB_SERVER bool "gdbserver" depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY help Build the gdbserver stub to run on the target. A full gdb is needed to debug the progam. config BR2_PACKAGE_GDB_DEBUGGER bool "full debugger" depends on BR2_USE_WCHAR depends on !BR2_sh depends on !BR2_csky select BR2_PACKAGE_GMP if BR2_GDB_VERSION_11 select BR2_PACKAGE_NCURSES comment "full gdb on target needs a toolchain w/ wchar" depends on !BR2_sh depends on !BR2_USE_WCHAR if BR2_PACKAGE_GDB_DEBUGGER config BR2_PACKAGE_GDB_TUI bool "TUI support" help This option enables terminal user interface (TUI) for gdb "The GDB Text User Interface (TUI) is a terminal interface which uses the curses library to show the source file, the assembly output, the program registers and GDB commands in separate text windows." https://sourceware.org/gdb/current/onlinedocs/gdb/TUI.html config BR2_PACKAGE_GDB_PYTHON bool "Python support" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 help This option enables Python support in the target gdb. endif endif ================================================ FILE: package/gdb/Config.in.host ================================================ config BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS bool default y depends on !((BR2_arm || BR2_armeb) && BR2_BINFMT_FLAT) depends on !BR2_microblaze depends on !BR2_or1k depends on !BR2_nds32 comment "Host GDB Options" depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY depends on BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS config BR2_PACKAGE_HOST_GDB bool "Build cross gdb for the host" # When the external toolchain gdbserver is used, we shouldn't # allow to build a cross-gdb, as the one of the external # toolchain should be used. depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY depends on BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS help Build a cross gdb that runs on the host machine and debugs programs running on the target. It requires 'gdbserver' installed on the target, see BR2_PACKAGE_GDB_SERVER to enable it. if BR2_PACKAGE_HOST_GDB config BR2_PACKAGE_HOST_GDB_TUI bool "TUI support" help This option enables terminal user interface (TUI) for gdb choice prompt "Python support" default BR2_PACKAGE_HOST_GDB_NOPYTHON help Select the version of Python you wish to use config BR2_PACKAGE_HOST_GDB_NOPYTHON bool "None" help This option disables Python support in the cross gdb. config BR2_PACKAGE_HOST_GDB_PYTHON bool "Python 2" help This option enables the Python 2 support in the cross gdb. config BR2_PACKAGE_HOST_GDB_PYTHON3 bool "Python 3" help This option enables the Python 3 support in the cross gdb. endchoice 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" default BR2_GDB_VERSION_10 depends on !BR2_arc depends on !BR2_csky help Select the version of gdb you wish to use. config BR2_GDB_VERSION_9_2 bool "gdb 9.2.x" # gdbserver support missing depends on !BR2_riscv config BR2_GDB_VERSION_10 bool "gdb 10.x" config BR2_GDB_VERSION_11 bool "gdb 11.x" endchoice endif # If cross-gdb is not enabled, the latest stable version is chosen. config BR2_GDB_VERSION string default "arc-2020.09-release-gdb" if BR2_arc default "4ecb98fbc2f94dbe01b69384afbc515107de73df" if BR2_csky default "9.2" if BR2_GDB_VERSION_9_2 default "10.2" if BR2_GDB_VERSION_10 || !BR2_PACKAGE_HOST_GDB default "11.1" if BR2_GDB_VERSION_11 depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB # recent gdb versions (>= 10) have gdbserver moved at the top-level, # which requires a different build logic. config BR2_PACKAGE_GDB_TOPLEVEL bool default y if BR2_arc default y if BR2_GDB_VERSION_10 default y if BR2_GDB_VERSION_11 default y if !BR2_PACKAGE_HOST_GDB depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB ================================================ FILE: package/gdb/gdb-python-config ================================================ #!/bin/sh # This shell script is used to fake Python. Gdb wants to be passed a # Python interpreter, to run its own python-config.py program, which # uses sysconfig. However, when cross-compiling, this doesn't work # well since we would have to use the host Python, whose sysconfig # module would return host values. # # As recommended at # https://sourceware.org/gdb/wiki/CrossCompilingWithPythonSupport, # this wrapper shell script can be used as a replacement. It ignores # the python-config.py script passed as first arguments, and # "emulates" its behavior. if [ $# -ne 2 ] ; then echo "Bad # args." >&2 exit 1 fi if [ -z "${BR_PYTHON_VERSION}" ]; then echo "Environment variable BR_PYTHON_VERSION not set." >&2 exit 1 fi # The first argument is the path to python-config.py, ignore it. case "$2" in --includes) echo "-I${STAGING_DIR}/usr/include/python${BR_PYTHON_VERSION}" ;; --ldflags) echo "-lpthread -ldl -lutil -lm -lpython${BR_PYTHON_VERSION}" ;; --exec-prefix) echo "/usr" ;; *) echo "Bad arg $2." >&2 exit 1 ;; esac ================================================ FILE: package/gdb/gdb.hash ================================================ # From ftp://gcc.gnu.org/pub/gdb/releases/sha512.sum sha512 73635f00f343117aa5e2436f1e1597099e2bfb31ef7bb162b273fa1ea282c3fa9b0f52762e70bfc7ad0334addb8d159e9ac7cbe5998ca4f755ea8cf90714d274 gdb-9.2.tar.xz sha512 3653762ac008e065c37cd641653184c9ff7ce51ee2222ade1122bec9d6cc64dffd4fb74888ef11ac1942064a08910e96b7865112ad37f4602eb0a16bed074caa gdb-10.2.tar.xz sha512 c40bf970e2f7c2107b29c5aa6a7150daa709d75ddadb73ac20742419d4637d158e3063a4c6ff6e47fae8ca8e1d36253973f85ea15445d004be6d5d7a2dd9bd46 gdb-11.1.tar.xz # Locally calculated (fetched from Github) sha512 5a2acf2fd33ab2ff589e1037ca40abda54328997dcff26b2b49b874bd3be980be5a63342962254f3c3bda98e32ce7a33af704d37353352833dee193135600458 gdb-arc-2020.09-release-gdb.tar.gz # Locally calculated (fetched from https://github.com/c-sky/binutils-gdb) sha512 c421e1f3c0d6cfb3c04544573c0c4b0075c8d8e3d563c6c234fcc1e4c2167ab203d1e57aec3b58abd348dc46f8cf9b47b753d3a43dba3ea970c9c9a6bd78c07b gdb-4ecb98fbc2f94dbe01b69384afbc515107de73df.tar.gz ================================================ FILE: package/gdb/gdb.mk ================================================ ################################################################################ # # gdb # ################################################################################ GDB_VERSION = $(call qstrip,$(BR2_GDB_VERSION)) GDB_SITE = $(BR2_GNU_MIRROR)/gdb 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_csky),y) GDB_SITE = $(call github,c-sky,binutils-gdb,$(GDB_VERSION)) GDB_SOURCE = gdb-$(GDB_VERSION).tar.gz GDB_FROM_GIT = y endif GDB_LICENSE = GPL-2.0+, LGPL-2.0+, GPL-3.0+, LGPL-3.0+ GDB_LICENSE_FILES = COPYING COPYING.LIB COPYING3 COPYING3.LIB GDB_CPE_ID_VENDOR = gnu # On gdb < 10, if you want to build only gdbserver, you need to # configure only gdb/gdbserver. ifeq ($(BR2_PACKAGE_GDB_DEBUGGER)$(BR2_PACKAGE_GDB_TOPLEVEL),) GDB_SUBDIR = gdb/gdbserver # When we want to build the full gdb, or for very recent versions of # gdb with gdbserver at the top-level, out of tree build is mandatory, # so we create a 'build' subdirectory in the gdb sources, and build # from there. else GDB_SUBDIR = build define GDB_CONFIGURE_SYMLINK mkdir -p $(@D)/$(GDB_SUBDIR) ln -sf ../configure $(@D)/$(GDB_SUBDIR)/configure endef GDB_PRE_CONFIGURE_HOOKS += GDB_CONFIGURE_SYMLINK endif # For the host variant, we really want to build with XML support, # which is needed to read XML descriptions of target architectures. We # also need ncurses. # As for libiberty, gdb may use a system-installed one if present, so # we must ensure ours is installed first. HOST_GDB_DEPENDENCIES = host-expat host-libiberty host-ncurses # Disable building documentation GDB_MAKE_OPTS += MAKEINFO=true GDB_INSTALL_TARGET_OPTS += MAKEINFO=true DESTDIR=$(TARGET_DIR) install HOST_GDB_MAKE_OPTS += MAKEINFO=true HOST_GDB_INSTALL_OPTS += MAKEINFO=true install # Apply the Xtensa specific patches ifneq ($(ARCH_XTENSA_OVERLAY_FILE),) define GDB_XTENSA_OVERLAY_EXTRACT $(call arch-xtensa-overlay-extract,$(@D),gdb) endef GDB_POST_EXTRACT_HOOKS += GDB_XTENSA_OVERLAY_EXTRACT GDB_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) HOST_GDB_POST_EXTRACT_HOOKS += GDB_XTENSA_OVERLAY_EXTRACT HOST_GDB_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) endif ifeq ($(GDB_FROM_GIT),y) GDB_DEPENDENCIES += host-flex host-bison HOST_GDB_DEPENDENCIES += host-flex host-bison endif # When BR2_GDB_VERSION_11=y, we're going to build gdb 11.x for the # host (if enabled), so we add the necessary gmp dependency. ifeq ($(BR2_GDB_VERSION_11),y) HOST_GDB_DEPENDENCIES += host-gmp endif # When BR2_GDB_VERSION_11=y (because it's enabled for the host) and # we're building the full gdb for the target, we need gmp as a # dependency. For now the default gdb version in Buildroot doesn't # require gmp. ifeq ($(BR2_GDB_VERSION_11)$(BR2_PACKAGE_GDB_DEBUGGER),yy) GDB_DEPENDENCIES += gmp endif # When gdb sources are fetched from the binutils-gdb repository, they # also contain the binutils sources, but binutils shouldn't be built, # so we disable it (additionally the option --disable-install-libbfd # prevents the un-wanted installation of libobcodes.so and libbfd.so). GDB_DISABLE_BINUTILS_CONF_OPTS = \ --disable-binutils \ --disable-install-libbfd \ --disable-ld \ --disable-gas \ --disable-gprof GDB_CONF_ENV = \ ac_cv_type_uintptr_t=yes \ gt_cv_func_gettext_libintl=yes \ ac_cv_func_dcgettext=yes \ gdb_cv_func_sigsetjmp=yes \ bash_cv_func_strcoll_broken=no \ bash_cv_must_reinstall_sighandlers=no \ bash_cv_func_sigsetjmp=present \ bash_cv_have_mbstate_t=yes \ gdb_cv_func_sigsetjmp=yes # 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. It needs to be passed to GDB_CONF_ENV to build # gdbserver only but also to GDB_MAKE_ENV, because otherwise it does # not get passed to the configure script of nested packages while # building gdbserver with full debugger. GDB_CONF_ENV += gl_cv_func_gettimeofday_clobber=no GDB_MAKE_ENV += gl_cv_func_gettimeofday_clobber=no # Similarly, starting with gdb 8.1, the bundled gnulib tries to use # rpl_strerror. Let's tell gnulib the C library implementation works # well enough. GDB_CONF_ENV += \ gl_cv_func_working_strerror=yes \ gl_cv_func_strerror_0_works=yes GDB_MAKE_ENV += \ gl_cv_func_working_strerror=yes \ gl_cv_func_strerror_0_works=yes # Starting with glibc 2.25, the proc_service.h header has been copied # from gdb to glibc so other tools can use it. However, that makes it # necessary to make sure that declaration of prfpregset_t declaration # is consistent between gdb and glibc. In gdb, however, there is a # workaround for a broken prfpregset_t declaration in glibc 2.3 which # uses AC_TRY_RUN to detect if it's needed, which doesn't work in # cross-compilation. So pass the cache option to configure. # It needs to be passed to GDB_CONF_ENV to build gdbserver only but # also to GDB_MAKE_ENV, because otherwise it does not get passed to the # configure script of nested packages while building gdbserver with full # debugger. GDB_CONF_ENV += gdb_cv_prfpregset_t_broken=no GDB_MAKE_ENV += gdb_cv_prfpregset_t_broken=no # The shared only build is not supported by gdb, so enable static build for # build-in libraries with --enable-static. GDB_CONF_OPTS = \ --without-uiout \ --disable-gdbtk \ --without-x \ --disable-sim \ $(GDB_DISABLE_BINUTILS_CONF_OPTS) \ --without-included-gettext \ --disable-werror \ --enable-static \ --without-mpfr ifeq ($(BR2_PACKAGE_GDB_DEBUGGER),y) GDB_CONF_OPTS += \ --enable-gdb \ --with-curses GDB_DEPENDENCIES += ncurses \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) else GDB_CONF_OPTS += \ --disable-gdb \ --without-curses endif ifeq ($(BR2_PACKAGE_GDB_SERVER),y) GDB_CONF_OPTS += --enable-gdbserver GDB_DEPENDENCIES += $(TARGET_NLS_DEPENDENCIES) else GDB_CONF_OPTS += --disable-gdbserver endif # When gdb is built as C++ application for ARC it segfaults at runtime # So we pass --disable-build-with-cxx config option to force gdb not to # be built as C++ app. ifeq ($(BR2_arc),y) GDB_CONF_OPTS += --disable-build-with-cxx endif # gdb 7.12+ by default builds with a C++ compiler, which doesn't work # when we don't have C++ support in the toolchain ifneq ($(BR2_INSTALL_LIBSTDCPP),y) GDB_CONF_OPTS += --disable-build-with-cxx endif # inprocess-agent can't be built statically ifeq ($(BR2_STATIC_LIBS),y) GDB_CONF_OPTS += --disable-inprocess-agent endif ifeq ($(BR2_PACKAGE_GDB_TUI),y) GDB_CONF_OPTS += --enable-tui else GDB_CONF_OPTS += --disable-tui endif ifeq ($(BR2_PACKAGE_GDB_PYTHON),y) ifeq ($(BR2_PACKAGE_PYTHON3),y) # CONF_ENV: for top-level configure; MAKE_ENV: for sub-projects' configure. GDB_CONF_ENV += BR_PYTHON_VERSION=$(PYTHON3_VERSION_MAJOR) GDB_MAKE_ENV += BR_PYTHON_VERSION=$(PYTHON3_VERSION_MAJOR) GDB_DEPENDENCIES += python3 else # CONF_ENV: for top-level configure; MAKE_ENV: for sub-projects' configure. GDB_CONF_ENV += BR_PYTHON_VERSION=$(PYTHON_VERSION_MAJOR) GDB_MAKE_ENV += BR_PYTHON_VERSION=$(PYTHON_VERSION_MAJOR) GDB_DEPENDENCIES += python endif GDB_CONF_OPTS += --with-python=$(TOPDIR)/package/gdb/gdb-python-config else GDB_CONF_OPTS += --without-python endif ifeq ($(BR2_PACKAGE_EXPAT),y) GDB_CONF_OPTS += --with-expat GDB_CONF_OPTS += --with-libexpat-prefix=$(STAGING_DIR)/usr GDB_DEPENDENCIES += expat else GDB_CONF_OPTS += --without-expat 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 endif ifeq ($(BR2_PACKAGE_ZLIB),y) GDB_CONF_OPTS += --with-zlib GDB_DEPENDENCIES += zlib else GDB_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_GDB_PYTHON),) # This removes some unneeded Python scripts and XML target description # files that are not useful for a normal usage of the debugger. define GDB_REMOVE_UNNEEDED_FILES $(RM) -rf $(TARGET_DIR)/usr/share/gdb endef GDB_POST_INSTALL_TARGET_HOOKS += GDB_REMOVE_UNNEEDED_FILES endif # This installs the gdbserver somewhere into the $(HOST_DIR) so that # it becomes an integral part of the SDK, if the toolchain generated # by Buildroot is later used as an external toolchain. We install it # in debug-root/usr/bin/gdbserver so that it matches what Crosstool-NG # does. define GDB_SDK_INSTALL_GDBSERVER $(INSTALL) -D -m 0755 $(TARGET_DIR)/usr/bin/gdbserver \ $(HOST_DIR)/$(GNU_TARGET_NAME)/debug-root/usr/bin/gdbserver endef ifeq ($(BR2_PACKAGE_GDB_SERVER),y) GDB_POST_INSTALL_TARGET_HOOKS += GDB_SDK_INSTALL_GDBSERVER endif # A few notes: # * --target, because we're doing a cross build rather than a real # host build. # * --enable-static because gdb really wants to use libbfd.a HOST_GDB_CONF_OPTS = \ --target=$(GNU_TARGET_NAME) \ --enable-static \ --without-uiout \ --disable-gdbtk \ --without-x \ --enable-threads \ --disable-werror \ --without-included-gettext \ --with-curses \ --without-mpfr \ $(GDB_DISABLE_BINUTILS_CONF_OPTS) ifeq ($(BR2_PACKAGE_HOST_GDB_TUI),y) HOST_GDB_CONF_OPTS += --enable-tui else HOST_GDB_CONF_OPTS += --disable-tui endif ifeq ($(BR2_PACKAGE_HOST_GDB_PYTHON),y) HOST_GDB_CONF_OPTS += --with-python=$(HOST_DIR)/bin/python2 HOST_GDB_DEPENDENCIES += host-python else ifeq ($(BR2_PACKAGE_HOST_GDB_PYTHON3),y) HOST_GDB_CONF_OPTS += --with-python=$(HOST_DIR)/bin/python3 HOST_GDB_DEPENDENCIES += host-python3 else HOST_GDB_CONF_OPTS += --without-python endif ifeq ($(BR2_PACKAGE_HOST_GDB_SIM),y) HOST_GDB_CONF_OPTS += --enable-sim else HOST_GDB_CONF_OPTS += --disable-sim endif # Since gdb 9, in-tree builds for GDB are not allowed anymore, # so we create a 'build' subdirectory in the gdb sources, and # build from there. HOST_GDB_SUBDIR = build define HOST_GDB_CONFIGURE_SYMLINK mkdir -p $(@D)/build ln -sf ../configure $(@D)/build/configure endef HOST_GDB_PRE_CONFIGURE_HOOKS += HOST_GDB_CONFIGURE_SYMLINK # legacy $arch-linux-gdb symlink define HOST_GDB_ADD_SYMLINK cd $(HOST_DIR)/bin && \ ln -snf $(GNU_TARGET_NAME)-gdb $(ARCH)-linux-gdb endef HOST_GDB_POST_INSTALL_HOOKS += HOST_GDB_ADD_SYMLINK HOST_GDB_POST_INSTALL_HOOKS += gen_gdbinit_file $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/gdbm/Config.in ================================================ config BR2_PACKAGE_GDBM bool "gdbm" depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR help GNU dbm is a set of database routines that use extensible hashing. It works similar to the standard UNIX dbm routines. https://www.gnu.org/software/gdbm/gdbm.html comment "gdbm needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR ================================================ FILE: package/gdbm/gdbm.hash ================================================ # From https://www.gnu.org.ua/software/gdbm/download.html md5 a285c6e2dfed78668664c0555a7d202b gdbm-1.21.tar.gz sha1 f6eec6113f04a4b5fd2c1cfead10e7d65c8f3d89 gdbm-1.21.tar.gz # Locally computed sha256 b0b7dbdefd798de7ddccdd8edf6693a30494f7789777838042991ef107339cc2 gdbm-1.21.tar.gz sha256 690d762f2e8e149ab1e2d6a409a3853b6151a2533b2382fae549a176d6bedecf COPYING ================================================ FILE: package/gdbm/gdbm.mk ================================================ ################################################################################ # # gdbm # ################################################################################ GDBM_VERSION = 1.21 GDBM_SITE = $(BR2_GNU_MIRROR)/gdbm GDBM_LICENSE = GPL-3.0+ GDBM_LICENSE_FILES = COPYING GDBM_INSTALL_STAGING = YES GDBM_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_PACKAGE_READLINE),y) GDBM_CONF_OPTS += --with-readline GDBM_DEPENDENCIES += readline else GDBM_CONF_OPTS += --without-readline endif $(eval $(autotools-package)) ================================================ FILE: package/gdk-pixbuf/Config.in ================================================ config BR2_PACKAGE_GDK_PIXBUF bool "gdk-pixbuf" 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_LIBICONV if !BR2_ENABLE_LOCALE help Gdk-Pixbuf is an image loader and scaler. It uses GObject and the GLib, to integrate well with GNOME applications. https://www.gtk.org/ comment "gdk-pixbuf needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/gdk-pixbuf/gdk-pixbuf.hash ================================================ # From https://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.42/gdk-pixbuf-2.42.4.sha256sum sha256 fe9c5dd88f486194ea2bc09b8814c1ed895bb6c530f37cbbf259757c4e482e4d gdk-pixbuf-2.42.4.tar.xz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/gdk-pixbuf/gdk-pixbuf.mk ================================================ ################################################################################ # # gdk-pixbuf # ################################################################################ GDK_PIXBUF_VERSION_MAJOR = 2.42 GDK_PIXBUF_VERSION = $(GDK_PIXBUF_VERSION_MAJOR).4 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 = LGPL-2.1+ GDK_PIXBUF_LICENSE_FILES = COPYING GDK_PIXBUF_CPE_ID_VENDOR = gnome 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_OPTS = \ -Dgio_sniffing=false \ -Dinstalled_tests=false \ -Dman=false HOST_GDK_PIXBUF_CONF_OPTS = \ -Dgio_sniffing=false \ -Dinstalled_tests=false \ -Dintrospection=disabled \ -Dman=false ifeq ($(BR2_STATIC_LIBS),y) GDK_PIXBUF_CONF_OPTS += -Dbuiltin_loaders=all endif ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) GDK_PIXBUF_CONF_OPTS += -Dintrospection=enabled GDK_PIXBUF_DEPENDENCIES += gobject-introspection else GDK_PIXBUF_CONF_OPTS += -Dintrospection=disabled endif ifeq ($(BR2_PACKAGE_LIBPNG),y) GDK_PIXBUF_CONF_OPTS += -Dpng=true GDK_PIXBUF_DEPENDENCIES += libpng else GDK_PIXBUF_CONF_OPTS += -Dpng=false endif ifeq ($(BR2_PACKAGE_JPEG),y) GDK_PIXBUF_CONF_OPTS += -Djpeg=true HOST_GDK_PIXBUF_CONF_OPTS += -Djpeg=true GDK_PIXBUF_DEPENDENCIES += jpeg HOST_GDK_PIXBUF_DEPENDENCIES += host-libjpeg else GDK_PIXBUF_CONF_OPTS += -Djpeg=false HOST_GDK_PIXBUF_CONF_OPTS += -Djpeg=false endif ifeq ($(BR2_PACKAGE_TIFF),y) GDK_PIXBUF_CONF_OPTS += -Dtiff=true HOST_GDK_PIXBUF_CONF_OPTS += -Dtiff=true GDK_PIXBUF_DEPENDENCIES += tiff HOST_GDK_PIXBUF_DEPENDENCIES += host-tiff else GDK_PIXBUF_CONF_OPTS += -Dtiff=false HOST_GDK_PIXBUF_CONF_OPTS += -Dtiff=false endif # 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)/lib/gdk-pixbuf-2.0/2.10.0/loaders \ $(HOST_DIR)/bin/gdk-pixbuf-query-loaders \ > $(TARGET_DIR)/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache $(SED) "s,$(HOST_DIR)/lib,/usr/lib,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 # Target gdk-pixbuf needs loaders.cache populated to build for the # thumbnailer. Use the host-built since it matches the target options # regarding mime types (which is the used information). define GDK_PIXBUF_COPY_LOADERS_CACHE cp -f $(HOST_DIR)/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache \ $(@D)/gdk-pixbuf endef GDK_PIXBUF_PRE_BUILD_HOOKS += GDK_PIXBUF_COPY_LOADERS_CACHE $(eval $(meson-package)) $(eval $(host-meson-package)) ================================================ FILE: package/genext2fs/Config.in ================================================ config BR2_PACKAGE_GENEXT2FS bool "genext2fs" help genext2fs generates an ext2 filesystem as a normal (non-root) user. It does not require you to mount the image file to copy files on it, nor does it require that you become the superuser to make device nodes. http://genext2fs.sourceforge.net/ ================================================ FILE: package/genext2fs/Config.in.host ================================================ config BR2_PACKAGE_HOST_GENEXT2FS bool "host genext2fs" help genext2fs generates an ext2 filesystem as a normal (non-root) user. It does not require you to mount the image file to copy files on it, nor does it require that you become the superuser to make device nodes. http://genext2fs.sourceforge.net/ ================================================ FILE: package/genext2fs/genext2fs.hash ================================================ # Locally computed: sha256 d3861e4fe89131bd21fbd25cf0b683b727b5c030c4c336fadcd738ada830aab0 genext2fs-1.5.0.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/genext2fs/genext2fs.mk ================================================ ################################################################################ # # genext2fs # ################################################################################ GENEXT2FS_VERSION = 1.5.0 GENEXT2FS_SITE = $(call github,bestouff,genext2fs,v$(GENEXT2FS_VERSION)) GENEXT2FS_LICENSE = GPL-2.0 GENEXT2FS_LICENSE_FILES = COPYING # From git GENEXT2FS_AUTORECONF = YES $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/gengetopt/0001-configure.ac-add-disable-doc-option.patch ================================================ From 250bee9e02546846d70dbe88ac36bb83c6a7ebdf Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 22 Sep 2019 09:27:24 +0200 Subject: [PATCH] configure.ac: add --disable-doc option Add --disable-doc option to allow the user to disable documentation Signed-off-by: Fabrice Fontaine [Sent upstream: https://savannah.gnu.org/bugs/index.php?56931] --- Makefile.am | 6 +++++- configure.ac | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index dbb5719..2db307a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -18,6 +18,10 @@ ACLOCAL_AMFLAGS = -I m4 -I gl/m4 EXTRA_DIST = configure TODO LICENSE gl/m4/gnulib-cache.m4 -SUBDIRS = gl src doc tests +SUBDIRS = gl src tests + +if ENABLE_DOC +SUBDIRS += doc +endif gengetoptdoc_DATA = ChangeLog COPYING NEWS THANKS INSTALL README LICENSE diff --git a/configure.ac b/configure.ac index 0ee89db..915706c 100644 --- a/configure.ac +++ b/configure.ac @@ -61,6 +61,13 @@ AC_ARG_ENABLE( AC_COMPILE_WARNINGS ) +AC_ARG_ENABLE( + [doc], + [--enable-doc enable documentation], + [enable_doc=$enableval], + [enable_doc=yes]) +AM_CONDITIONAL(ENABLE_DOC, test x"$enable_doc" = xyes) + AC_ARG_WITH( [gengen], [ --with-gengen=mygengen gengen to use], -- 2.23.0 ================================================ FILE: package/gengetopt/gengetopt.hash ================================================ # Locally computed sha256 b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab807584ac gengetopt-2.23.tar.xz sha256 afab96ff35204960631dc05506034f9efc01e6d696f0ac93718d6bd43512cda7 COPYING sha256 72a43351233d6a581f891cdfff78b7b7d5f2a12522523929c5f7e8f674c2f6fc LICENSE ================================================ FILE: package/gengetopt/gengetopt.mk ================================================ ################################################################################ # # gengetopt # ################################################################################ GENGETOPT_VERSION = 2.23 GENGETOPT_SOURCE = gengetopt-$(GENGETOPT_VERSION).tar.xz GENGETOPT_SITE = $(BR2_GNU_MIRROR)/gengetopt GENGETOPT_LICENSE = GPL-3.0+ GENGETOPT_LICENSE_FILES = COPYING LICENSE # We're patching configure.ac HOST_GENGETOPT_AUTORECONF = YES $(eval $(host-autotools-package)) ================================================ FILE: package/genimage/Config.in.host ================================================ config BR2_PACKAGE_HOST_GENIMAGE bool "host genimage" help genimage is a tool to generate multiple filesystem and flash images from a given root filesystem tree. genimage is intended to be run in a fakeroot environment. Configuration is done in a config file parsed by libconfuse. Options like the path to tools can be given in environment variables, the config file or commandline switches. https://github.com/pengutronix/genimage ================================================ FILE: package/genimage/genimage.hash ================================================ # Locally calculated sha256 9d1d53b33309fe24ea367ea057eb689bdb8ea33cb99d796de31127ca44ccf44c genimage-14.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/genimage/genimage.mk ================================================ ################################################################################ # # genimage # ################################################################################ GENIMAGE_VERSION = 14 GENIMAGE_SOURCE = genimage-$(GENIMAGE_VERSION).tar.xz GENIMAGE_SITE = https://github.com/pengutronix/genimage/releases/download/v$(GENIMAGE_VERSION) HOST_GENIMAGE_DEPENDENCIES = host-pkgconf host-libconfuse GENIMAGE_LICENSE = GPL-2.0 GENIMAGE_LICENSE_FILES = COPYING $(eval $(host-autotools-package)) ================================================ FILE: package/genpart/0001-fix-return-code.patch ================================================ genpart: return 0 if partition writen OK, with no do_magic If do_magic is false, we don't won't write the 0xaa55 magic. However, if we succesfully wrote the partition entry, we still want to return 0 to indicate success. Signed-off-by: "Yann E. MORIN" Cc: Robert Schwebel -- Patch sent upstream, but no mailing list. Status: accepted upstream, not yet released. diff -durN host-genpart-1.0.2.orig/src/genpart.c host-genpart-1.0.2/src/genpart.c --- host-genpart-1.0.2.orig/src/genpart.c 2009-12-20 21:54:56.000000000 +0100 +++ host-genpart-1.0.2/src/genpart.c 2013-01-22 23:13:24.109752579 +0100 @@ -92,6 +92,8 @@ if (do_magic) { if (fwrite(&magic, 2, 1, stdout) > 0) rc=0; + } else { + rc=0; } } return rc; ================================================ FILE: package/genpart/Config.in ================================================ config BR2_PACKAGE_GENPART bool "genpart" help Generate a 16 byte partition table entry defined by command line arguments and dump it to stdout. No CHS magic is done, only lba entries are filled out. http://www.pengutronix.de/software/genpart/index_en.html ================================================ FILE: package/genpart/Config.in.host ================================================ config BR2_PACKAGE_HOST_GENPART bool "host genpart" help Generate a 16 byte partition table entry defined by command line arguments and dump it to stdout. No CHS magic is done, only lba entries are filled out. http://www.pengutronix.de/software/genpart/index_en.html ================================================ FILE: package/genpart/genpart.hash ================================================ # Locally calculated sha256 bfb39434f31d10f1b8c7b6bc6ec612309838c2819022561541c4d2d5a424e3f2 genpart-1.0.2.tar.bz2 ================================================ FILE: package/genpart/genpart.mk ================================================ ################################################################################ # # genpart # ################################################################################ GENPART_VERSION = 1.0.2 GENPART_SOURCE = genpart-$(GENPART_VERSION).tar.bz2 GENPART_SITE = http://www.pengutronix.de/software/genpart/download # genpart has no license embedded in its source release. # However, their project page mentions: # > This community portal offers an overview about our own OSS # > projects and projects Pengutronix is or was involved with. # We can thus assume genpart is under a FLOSS license. # So, until the authors have clarified the licensing terms: GENPART_LICENSE = Unknown (clarification has been asked to the authors) $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/genromfs/0001-build-system.patch ================================================ --- Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) Index: genromfs-0.5.2/Makefile =================================================================== --- genromfs-0.5.2.orig/Makefile +++ genromfs-0.5.2/Makefile @@ -6,8 +6,6 @@ PACKAGE = genromfs VERSION = 0.5.2 CC = gcc -CFLAGS = -O2 -Wall -DVERSION=\"$(VERSION)\"#-g# -LDFLAGS = -s#-g DISTDIR = $(PACKAGE)-$(VERSION) @@ -24,7 +22,7 @@ $(CC) $(LDFLAGS) genromfs.o -o genromfs .c.o: - $(CC) $(CFLAGS) $< -c -o $@ + $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" $< -c -o $@ clean: rm -f genromfs *.o ================================================ FILE: package/genromfs/Config.in ================================================ config BR2_PACKAGE_GENROMFS bool "genromfs" help Tool to generate a ROMFS filesystem. http://romfs.sourceforge.net/ ================================================ FILE: package/genromfs/genromfs.hash ================================================ # Locally computed: sha256 30f37fc734572c1dbaa2504585bc23ba6b8fd7df767ae7155995b2ca0ebed960 genromfs-0.5.2.tar.gz sha256 cc2a6651c315b233ebc110b49ea3c6452eff9a28f8bc051ffd2bb92a8dcfa3d2 COPYING ================================================ FILE: package/genromfs/genromfs.mk ================================================ ################################################################################ # # genromfs # ################################################################################ GENROMFS_VERSION = 0.5.2 GENROMFS_SITE = http://downloads.sourceforge.net/project/romfs/genromfs/$(GENROMFS_VERSION) GENROMFS_LICENSE = GPL-2.0+ GENROMFS_LICENSE_FILES = COPYING define GENROMFS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ CC="$(TARGET_CC)" \ CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" endef # "PREFIX" is the equivalent of DESTDIR in autotools, "prefix" is the # traditional prefix. "prefix" defaults to /usr so no need to set it. define GENROMFS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) PREFIX=$(TARGET_DIR) install endef define HOST_GENROMFS_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_GENROMFS_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) prefix=$(HOST_DIR) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/gensio/Config.in ================================================ config BR2_PACKAGE_GENSIO bool "gensio" depends on BR2_USE_MMU # fork() help A library to abstract stream I/O like serial port, TCP, telnet, UDP, SSL, IPMI SOL, etc. https://github.com/cminyard/gensio ================================================ FILE: package/gensio/gensio.hash ================================================ # From https://sourceforge.net/projects/ser2net/files/ser2net/ md5 45cd3a4d9058816e50351b0700a035ad gensio-2.2.9.tar.gz sha1 4bb34517931f5be4dc5982f6e7a567cf6fdc41b8 gensio-2.2.9.tar.gz # Locally computed: sha256 3609f66e61c98cce181ec1b37508b727b636d7cfffdb6edd4c254d2f6097a000 gensio-2.2.9.tar.gz sha256 501f3108e6c03e5a0a5585ebaaa369171aead5319cd0a7a4dc1f66211c1f09f1 COPYING sha256 dcac7d447dd81ab96d28dce00a07a6486e623f7ded94e2a2a8e83312405cdf89 COPYING.LIB ================================================ FILE: package/gensio/gensio.mk ================================================ ################################################################################ # # gensio # ################################################################################ GENSIO_VERSION = 2.2.9 GENSIO_SITE = http://downloads.sourceforge.net/project/ser2net/ser2net GENSIO_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (tools) GENSIO_LICENSE_FILES = COPYING.LIB COPYING GENSIO_INSTALL_STAGING = YES GENSIO_CONF_OPTS = \ --without-openipmi \ --without-swig \ --without-python ifeq ($(BR2_PACKAGE_OPENSSL),y) GENSIO_DEPENDENCIES += host-pkgconf openssl GENSIO_CONF_OPTS += --with-openssl else GENSIO_CONF_OPTS += --without-openssl endif ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) GENSIO_CONF_ENV += LIBS=-latomic endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) GENSIO_CONF_OPTS += --with-pthreads else GENSIO_CONF_OPTS += --without-pthreads endif $(eval $(autotools-package)) ================================================ FILE: package/geoip/Config.in ================================================ config BR2_PACKAGE_GEOIP bool "geoip" help GeoIP is a C library that enables the user to find geographical and network information of an IP address. To use this library, you need to download MaxMind's free GeoLite or commercial GeoIP binary databases into the target's /usr/share/GeoIP directory in uncompressed form. Note that GeoIP2 / GeoLite2 are not supported by this library. https://github.com/maxmind/geoip-api-c ================================================ FILE: package/geoip/geoip.hash ================================================ # Locally calculated sha256 1dfb748003c5e4b7fd56ba8c4cd786633d5d6f409547584f6910398389636f80 GeoIP-1.6.12.tar.gz sha256 36b6d3fa47916943fd5fec313c584784946047ec1337a78b440e5992cb595f89 COPYING ================================================ FILE: package/geoip/geoip.mk ================================================ ################################################################################ # # geoip # ################################################################################ GEOIP_VERSION = 1.6.12 GEOIP_SOURCE = GeoIP-$(GEOIP_VERSION).tar.gz GEOIP_SITE = https://github.com/maxmind/geoip-api-c/releases/download/v$(GEOIP_VERSION) GEOIP_INSTALL_STAGING = YES GEOIP_LICENSE = LGPL-2.1+ GEOIP_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/gerbera/Config.in ================================================ config BR2_PACKAGE_GERBERA bool "gerbera" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # C++17 filesystem depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR # fmt select BR2_PACKAGE_FMT select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBUPNP if !BR2_PACKAGE_LIBNPUPNP select BR2_PACKAGE_PUGIXML select BR2_PACKAGE_PUGIXML_XPATH_SUPPORT select BR2_PACKAGE_SPDLOG select BR2_PACKAGE_SQLITE select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_ZLIB help A free media server. Stream your media to devices on your home network. Select BR2_PACKAGE_DUKTAPE if you want to enable JavaScript for scripting. https://gerbera.io comment "gerbera needs a toolchain w/ C++, dynamic library, threads, wchar, gcc >= 8" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_8 ================================================ FILE: package/gerbera/S99gerbera ================================================ #!/bin/sh DAEMON="gerbera" PIDFILE="/var/run/$DAEMON.pid" GERBERA_ARGS="-c /etc/gerbera/config.xml -l /var/log/gerbera.log" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" # (Re)create home directory mkdir -p /var/lib/$DAEMON start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -m -b -p "$PIDFILE" -x "/usr/bin/$DAEMON" \ -- $GERBERA_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/gerbera/config.xml ================================================ Gerbera uuid:ac20d9b6-5c82-48e6-80de-436965fbe1d7 /var/lib/gerbera /usr/share/gerbera/web 1800 gerbera.db * video audio/mpeg no yes no video/mpeg yes yes yes ================================================ FILE: package/gerbera/gerbera.hash ================================================ # Locally computed: sha256 dee562cc5d22e8442e2fe1620b073bda612c80f9c4a8333311c647db06c1c4cd gerbera-1.9.2.tar.gz sha256 cae4138373be41fd2be75faf41ce7efbcf49fb17d0e05ad1c51cc01ac335b9b6 LICENSE.md ================================================ FILE: package/gerbera/gerbera.mk ================================================ ################################################################################ # # gerbera # ################################################################################ GERBERA_VERSION = 1.9.2 GERBERA_SITE = $(call github,gerbera,gerbera,v$(GERBERA_VERSION)) GERBERA_LICENSE = GPL-2.0 GERBERA_LICENSE_FILES = LICENSE.md GERBERA_DEPENDENCIES = \ fmt \ host-pkgconf \ pugixml \ spdlog \ sqlite \ util-linux \ zlib GERBERA_CONF_OPTS = -DWITH_DEBUG=OFF ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_9)$(BR2_OPTIMIZE_S),yy) GERBERA_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) -O2" endif # Uses __atomic_fetch_add_4 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) GERBERA_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif ifeq ($(BR2_PACKAGE_DUKTAPE),y) GERBERA_DEPENDENCIES += duktape GERBERA_CONF_OPTS += -DWITH_JS=ON else GERBERA_CONF_OPTS += -DWITH_JS=OFF endif ifeq ($(BR2_PACKAGE_EXIV2),y) GERBERA_DEPENDENCIES += exiv2 GERBERA_CONF_OPTS += -DWITH_EXIV2=ON else GERBERA_CONF_OPTS += -DWITH_EXIV2=OFF endif ifeq ($(BR2_PACKAGE_FFMPEG),y) GERBERA_DEPENDENCIES += ffmpeg GERBERA_CONF_OPTS += -DWITH_AVCODEC=ON else GERBERA_CONF_OPTS += -DWITH_AVCODEC=OFF endif ifeq ($(BR2_PACKAGE_FILE),y) GERBERA_DEPENDENCIES += file GERBERA_CONF_OPTS += -DWITH_MAGIC=ON else GERBERA_CONF_OPTS += -DWITH_MAGIC=OFF endif ifeq ($(BR2_PACKAGE_LIBCURL),y) GERBERA_DEPENDENCIES += libcurl GERBERA_CONF_OPTS += -DWITH_CURL=ON else GERBERA_CONF_OPTS += -DWITH_CURL=OFF endif ifeq ($(BR2_PACKAGE_LIBEXIF),y) GERBERA_DEPENDENCIES += libexif GERBERA_CONF_OPTS += -DWITH_EXIF=ON else GERBERA_CONF_OPTS += -DWITH_EXIF=OFF endif ifeq ($(BR2_PACKAGE_LIBICONV),y) GERBERA_DEPENDENCIES += libiconv endif ifeq ($(BR2_PACKAGE_LIBMATROSKA),y) GERBERA_DEPENDENCIES += libmatroska GERBERA_CONF_OPTS += -DWITH_MATROSKA=ON else GERBERA_CONF_OPTS += -DWITH_MATROSKA=OFF endif # Either libupnp or libnpupnp are guranteed to be enabled ifeq ($(BR2_PACKAGE_LIBNPUPNP),y) GERBERA_DEPENDENCIES += libnpupnp GERBERA_CONF_OPTS += -DWITH_NPUPNP=ON else GERBERA_DEPENDENCIES += libupnp GERBERA_CONF_OPTS += -DWITH_NPUPNP=OFF endif ifeq ($(BR2_PACKAGE_MYSQL),y) GERBERA_DEPENDENCIES += mysql GERBERA_CONF_OPTS += -DWITH_MYSQL=ON else GERBERA_CONF_OPTS += -DWITH_MYSQL=OFF endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) GERBERA_DEPENDENCIES += systemd GERBERA_CONF_OPTS += -DWITH_SYSTEMD=ON else GERBERA_CONF_OPTS += -DWITH_SYSTEMD=OFF endif ifeq ($(BR2_PACKAGE_TAGLIB),y) GERBERA_DEPENDENCIES += taglib GERBERA_CONF_OPTS += -DWITH_TAGLIB=ON else GERBERA_CONF_OPTS += -DWITH_TAGLIB=OFF endif # gerbera does not provide a default configuration file, it can be # created during run time through --create-config: # http://docs.gerbera.io/en/latest/config-overview.html#generating-configuration # However, to have a correct home directory and UDN, install it ourself define GERBERA_INSTALL_CONFIGURATION $(INSTALL) -D -m 0644 package/gerbera/config.xml \ $(TARGET_DIR)/etc/gerbera/config.xml endef GERBERA_POST_INSTALL_TARGET_HOOKS += GERBERA_INSTALL_CONFIGURATION define GERBERA_USERS gerbera -1 gerbera -1 * /var/lib/gerbera - - Gerbera user endef define GERBERA_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/gerbera/S99gerbera \ $(TARGET_DIR)/etc/init.d/S99gerbera endef $(eval $(cmake-package)) ================================================ FILE: package/gesftpserver/0001-Change-order-of-v3-attributes-according-to-draft-iet.patch ================================================ From 4b5c7eb63894bd2b1fedeb2a8e9bd16bf3c8c555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernd=20Holzm=C3=BCller?= Date: Mon, 11 Feb 2019 23:57:01 +0100 Subject: [PATCH] Change order of v3-attributes according to draft-ietf-secsh-filexfer-00/02 [yann.morin.1998@free.fr: backport from upstream] Signed-off-by: "Yann E. MORIN" --- v3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v3.c b/v3.c index 57cc31e..1fd86ad 100644 --- a/v3.c +++ b/v3.c @@ -121,8 +121,8 @@ static void v3_sendattrs(struct sftpjob *job, const struct sftpattr *attrs) { fatal("sending out-of-range mtime"); if(a != attrs->atime.seconds) fatal("sending out-of-range mtime"); - sftp_send_uint32(job->worker, m); sftp_send_uint32(job->worker, a); + sftp_send_uint32(job->worker, m); } /* Note that we just discard unknown bits rather than reporting errors. */ } -- 2.14.1 ================================================ FILE: package/gesftpserver/Config.in ================================================ config BR2_PACKAGE_GESFTPSERVER bool "gesftpserver" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Green End SFTP Server This is an SFTP server supporting up to protocol version 6. It is possible to use it as a drop-in replacement for the OpenSSH server, or to provide sftp support for Dropbear. http://www.greenend.org.uk/rjk/sftpserver/ comment "gesftpserver needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/gesftpserver/gesftpserver.hash ================================================ # Locally calculated sha256 4963b85787de3485085a5356c671c58b8b33125f528ff1b2fe8b534ed8a0c1bd sftpserver-1.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/gesftpserver/gesftpserver.mk ================================================ ################################################################################ # # gesftpserver # ################################################################################ GESFTPSERVER_VERSION = 1 GESFTPSERVER_SOURCE = sftpserver-$(GESFTPSERVER_VERSION).tar.gz GESFTPSERVER_SITE = http://www.greenend.org.uk/rjk/sftpserver GESFTPSERVER_LICENSE = GPL-2.0+ GESFTPSERVER_LICENSE_FILES = COPYING # "Missing prototype" warning treated as error GESFTPSERVER_CONF_OPTS = --disable-warnings-as-errors GESFTPSERVER_CPE_ID_VENDOR = green_end GESFTPSERVER_CPE_ID_PRODUCT = sftpserver # forgets to link against pthread when cross compiling GESFTPSERVER_CONF_ENV = LIBS=-lpthread # overwrite openssh version if enabled GESFTPSERVER_DEPENDENCIES += \ $(if $(BR2_ENABLE_LOCALE),,libiconv) \ $(if $(BR2_PACKAGE_OPENSSH),openssh) # Python on the host is only used for tests, which we don't use in # Buildroot GESFTPSERVER_CONF_ENV += rjk_cv_python24=false # openssh/dropbear looks here define GESFTPSERVER_ADD_SYMLINK ln -sf gesftpserver $(TARGET_DIR)/usr/libexec/sftp-server endef GESFTPSERVER_POST_INSTALL_TARGET_HOOKS += GESFTPSERVER_ADD_SYMLINK $(eval $(autotools-package)) ================================================ FILE: package/getent/Config.in ================================================ config BR2_PACKAGE_GETENT bool "getent" help This package installs the 'getent' utility, which allows to get entries from Name Service Switch libraries. For glibc toolchains, it's the real getent program from the C library that gets installed, which is NSS-capable. For uclibc and musl toolchains, it's a simple wrapper script that emulates getent's behavior, since there is no NSS support in uclibc and musl. ================================================ FILE: package/getent/getent ================================================ #!/bin/sh # $Header: /var/cvs/uClibc/extra/scripts/getent,v 1.2 2005/02/02 14:18:01 solar Exp $ # # Closely (not perfectly) emulate the behavior of glibc's getent utility # #passwd|shadow|group|aliases|hosts|networks|ethers|netgroup|protocols|services|rpc # only returns the first match (by design) # dns based search is not supported (hosts,networks) # case-insensitive matches not supported (ethers; others?) # may return false-positives (hosts,protocols,rpc,services,ethers) # # Taken from uClibc 0.9.33. export PATH="${PATH}:/bin:/usr/bin" file="/etc/$1" case $1 in passwd|group) match="^$2:\|^[^:]*:[^:]*:$2:" ;; shadow) match="^$2:" ;; networks|netgroup) match="^[[:space:]]*$2\>" ;; hosts|protocols|rpc|services|ethers) match="\<$2\>" ;; aliases) match="^[[:space:]]*$2[[:space:]]*:" ;; ""|-h|--help) echo "USAGE: $0 database [key]" exit 0 ;; *) echo "$0: Unknown database: $1" 1>&2 exit 1 ;; esac if [ ! -f "$file" ] ; then echo "$0: Could not find database file for $1" 1>&2 exit 1 fi if [ $# -eq 1 ] ; then exec cat "$file" else sed "s/#.*//; /$match/q; d" "$file" | grep . || exit 2 fi ================================================ FILE: package/getent/getent.mk ================================================ ################################################################################ # # getent # ################################################################################ GETENT_LICENSE = LGPL-2.1+ # For glibc toolchains, we use the getent program built/installed by # the C library. For other toolchains, we use the wrapper script # included in this package. ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y) # Sourcery toolchains install it in sysroot/usr/lib/bin # Buildroot toolchains install it in sysroot/usr/bin GETENT_LOCATION = $(firstword $(wildcard \ $(STAGING_DIR)/usr/bin/getent \ $(STAGING_DIR)/usr/lib/bin/getent)) else GETENT_LOCATION = package/getent/getent endif define GETENT_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(GETENT_LOCATION) $(TARGET_DIR)/usr/bin/getent endef $(eval $(generic-package)) ================================================ FILE: package/gettext/Config.in ================================================ config BR2_PACKAGE_GETTEXT bool "gettext" select BR2_PACKAGE_GETTEXT_GNU if BR2_SYSTEM_ENABLE_NLS select BR2_PACKAGE_GETTEXT_TINY if !BR2_SYSTEM_ENABLE_NLS config BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL bool default y if BR2_SYSTEM_ENABLE_NLS depends on !BR2_TOOLCHAIN_HAS_FULL_GETTEXT config BR2_PACKAGE_HAS_GETTEXT bool config BR2_PACKAGE_PROVIDES_GETTEXT string config BR2_PACKAGE_PROVIDES_HOST_GETTEXT string ================================================ FILE: package/gettext/gettext.mk ================================================ ################################################################################ # # gettext # ################################################################################ GETTEXTIZE = $(HOST_CONFIGURE_OPTS) AUTOM4TE=$(HOST_DIR)/bin/autom4te $(HOST_DIR)/bin/gettextize -f $(eval $(virtual-package)) $(eval $(host-virtual-package)) ================================================ FILE: package/gettext-gnu/0001-error_print_progname.patch ================================================ [Updated to apply cleanly with 0.20.1] Signed-off-by: Adam Duskett --- diff --git a/gettext-tools/gnulib-lib/error.h b/gettext-tools/gnulib-lib/error.h index 61771cc..4221684 100644 --- a/gettext-tools/gnulib-lib/error.h +++ b/gettext-tools/gnulib-lib/error.h @@ -68,7 +68,10 @@ extern void error_at_line (int __status, int __errnum, const char *__fname, /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this function without parameters instead. */ -extern DLL_VARIABLE void (*error_print_progname) (void); +#ifndef __UCLIBC__ +extern DLL_VARIABLE +#endif +void (*error_print_progname) (void); /* This variable is incremented each time 'error' is called. */ extern DLL_VARIABLE unsigned int error_message_count; -- ================================================ FILE: package/gettext-gnu/0002-restore-the-ability-to-buld-gettext-tools-seperately-part1.patch ================================================ From e4b3a3f56fa6fc2a51769e286545f0631bb4837c Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 18 May 2019 23:33:06 +0200 Subject: [PATCH] build: Restore the ability to build gettext-tools separately, part 1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reported by Hanspeter Niederstrasser in . Code based on patch by Miguel Ángel Arruga Vivas . * autogen.sh: Copy libtextstyle.m4 for use by gettext-tools. * gettext-tools/configure.ac: New option --with-installed-libtextstyle. (USE_INSTALLED_LIBTEXTSTYLE): New conditional. * gettext-tools/src/Makefile.am (textstyle.h): Disable rule if USE_INSTALLED_LIBTEXTSTYLE is true. (LT_LIBTEXTSTYLE): New variable. (libgettextsrc_la_LDFLAGS): Use it instead of hardcoding a relative filename of libtextstyle.la. * configure.ac: Filter out --with-installed-libtextstyle from inherited --help output. * Makefile.am (distcheck-hook): Compare different copies of libtextstyle.m4. * PACKAGING: Document that gettext-tools's configure needs to be invoked with --with-installed-libtextstyle. Upstream-status: committed. https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commitdiff;h=e4b3a3f56fa6fc2a51769e286545f0631bb4837c Signed-off-by: Bruno Haible [Backported to 0.20.1] Signed-off-by: Adam Duskett --- PACKAGING | 2 +- autogen.sh | 1 + configure.ac | 2 +- gettext-tools/configure.ac | 16 ++++++++++++++++ gettext-tools/src/Makefile.am | 8 +++++++- 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/PACKAGING b/PACKAGING index a8ce979..52b80ac 100644 --- a/PACKAGING +++ b/PACKAGING @@ -42,7 +42,7 @@ The 'libtextstyle' binary package can be installed by doing The 'gettext-tools' binary package can be installed by doing cd gettext-tools - ./configure + ./configure --with-installed-libtextstyle make make install diff --git a/autogen.sh b/autogen.sh index 5c28b6f..2ccf373 100755 --- a/autogen.sh +++ b/autogen.sh @@ -268,6 +268,7 @@ if ! $skip_gnulib; then $GNULIB_TOOL --dir=gettext-tools --lib=libgettextlib --source-base=gnulib-lib --m4-base=gnulib-m4 --tests-base=gnulib-tests --makefile-name=Makefile.gnulib --libtool --with-tests --local-dir=gnulib-local --local-symlink \ --import --avoid=array-list-tests --avoid=linkedhash-list-tests --avoid=hash-tests --avoid=fdutimensat-tests --avoid=futimens-tests --avoid=utime-tests --avoid=utimens-tests --avoid=utimensat-tests \ `for m in $GNULIB_MODULES_TOOLS_LIBUNISTRING_TESTS; do echo --avoid=$m; done` $GNULIB_MODULES_TOOLS_FOR_SRC $GNULIB_MODULES_TOOLS_FOR_SRC_COMMON_DEPENDENCIES $GNULIB_MODULES_TOOLS_OTHER || exit $? + $GNULIB_TOOL --copy-file m4/libtextstyle.m4 gettext-tools/gnulib-m4/libtextstyle.m4 || exit $? # In gettext-tools/libgrep: GNULIB_MODULES_TOOLS_FOR_LIBGREP=' mbrlen diff --git a/configure.ac b/configure.ac index 38db6fd..0c84bdd 100644 --- a/configure.ac +++ b/configure.ac @@ -49,7 +49,7 @@ AC_CANONICAL_HOST dnl Optional Features: AC_ARG_ENABLE calls dnl Optional Packages: AC_ARG_WITH calls dnl Some influential environment variables: AC_ARG_VAR calls -esyscmd([{ cd gettext-runtime && autoconf --trace=AC_ARG_ENABLE:'$n([$1],[$2])' --trace=AC_ARG_WITH:'$n([$1],[$2])' --trace=AC_ARG_VAR:'$n($@)' && cd ..; cd libtextstyle && autoconf --trace=AC_ARG_ENABLE:'$n([$1],[$2])' --trace=AC_ARG_WITH:'$n([$1],[$2])' --trace=AC_ARG_VAR:'$n($@)' && cd ..; cd gettext-tools && autoconf --trace=AC_ARG_ENABLE:'$n([$1],[$2])' --trace=AC_ARG_WITH:'$n([$1],[$2])' --trace=AC_ARG_VAR:'$n($@)' && cd ..; } | sed -f build-aux/ac-help.sed ]) +esyscmd([{ cd gettext-runtime && autoconf --trace=AC_ARG_ENABLE:'$n([$1],[$2])' --trace=AC_ARG_WITH:'$n([$1],[$2])' --trace=AC_ARG_VAR:'$n($@)' && cd ..; cd libtextstyle && autoconf --trace=AC_ARG_ENABLE:'$n([$1],[$2])' --trace=AC_ARG_WITH:'$n([$1],[$2])' --trace=AC_ARG_VAR:'$n($@)' && cd ..; { cd gettext-tools && autoconf --trace=AC_ARG_ENABLE:'$n([$1],[$2])' --trace=AC_ARG_WITH:'$n([$1],[$2])' --trace=AC_ARG_VAR:'$n($@)' && cd ..; } | grep -v installed.libtextstyle; } | sed -f build-aux/ac-help.sed ]) AC_CONFIG_FILES([Makefile]) diff --git a/gettext-tools/configure.ac b/gettext-tools/configure.ac index cf1dd73..a6816b8 100644 --- a/gettext-tools/configure.ac +++ b/gettext-tools/configure.ac @@ -121,6 +121,22 @@ AM_CONDITIONAL([PACKAGE_IS_GETTEXT_TOOLS], [true]) AM_CONDITIONAL([PRELOADABLE_LIBINTL], [test $USE_INCLUDED_LIBINTL = no && test $GLIBC2 = yes]) +dnl This option allows to build gettext-tools without (re)building libtextstyle. +AC_ARG_WITH([installed-libtextstyle], + [AS_HELP_STRING([--with-installed-libtextstyle], + [Use an already installed libtextstyle.])], + [gt_use_installed_libtextstyle=$withval], + [gt_use_installed_libtextstyle=no]) +if test "$gt_use_installed_libtextstyle" != no; then + gl_LIBTEXTSTYLE +else + test -f ../libtextstyle/Makefile || { + AC_MSG_ERROR([When building the gettext-tools package without building the entire gettext package, you need to pass the --with-installed-libtextstyle option to configure.]) + } +fi +AM_CONDITIONAL([USE_INSTALLED_LIBTEXTSTYLE], + [test "$gt_use_installed_libtextstyle" != no]) + dnl This line internationalizes the bison generated parsers. BISON_I18N diff --git a/gettext-tools/src/Makefile.am b/gettext-tools/src/Makefile.am index b98b7ab..af3dcee 100644 --- a/gettext-tools/src/Makefile.am +++ b/gettext-tools/src/Makefile.am @@ -250,6 +250,9 @@ cldr_plurals_SOURCES = cldr-plural.y cldr-plural-exp.c cldr-plurals.c cldr_plurals_CFLAGS = $(AM_CFLAGS) $(INCXML) cldr_plurals_LDADD = libgettextsrc.la $(LDADD) +if USE_INSTALLED_LIBTEXTSTYLE +LT_LIBTEXTSTYLE = @LTLIBTEXTSTYLE@ +else # How to get the include files of libtextstyle. textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h: here=`pwd`; \ @@ -257,6 +260,9 @@ textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h: $(MAKE) install-nobase_includeHEADERS install-nobase_nodist_includeHEADERS includedir="$$here" BUILT_SOURCES += textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h MOSTLYCLEANFILES += textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h +# Where to find the built libtextstyle library. +LT_LIBTEXTSTYLE = ../../libtextstyle/lib/libtextstyle.la +endif # How to build libgettextsrc.la. # Need ../gnulib-lib/libgettextlib.la. @@ -268,7 +274,7 @@ MOSTLYCLEANFILES += textstyle.h textstyle/stdbool.h textstyle/version.h textstyl # use iconv(). libgettextsrc_la_LDFLAGS = \ -release @VERSION@ \ - ../gnulib-lib/libgettextlib.la $(LTLIBUNISTRING) ../../libtextstyle/lib/libtextstyle.la @LTLIBINTL@ @LTLIBICONV@ -lc -no-undefined + ../gnulib-lib/libgettextlib.la $(LTLIBUNISTRING) $(LT_LIBTEXTSTYLE) @LTLIBINTL@ @LTLIBICONV@ -lc -no-undefined # OS/2 does not support a DLL name longer than 8 characters. if OS2 -- 2.24.1 ================================================ FILE: package/gettext-gnu/Config.in ================================================ config BR2_PACKAGE_GETTEXT_GNU bool depends on BR2_USE_WCHAR select BR2_PACKAGE_HAS_GETTEXT help The GNU `gettext' utilities are a set of tools that provide a framework to help other GNU packages produce multi-lingual messages. Only the libintl library will be installed in the target. The full gettext suite, including tools, will be installed in the staging directory. http://www.gnu.org/software/gettext/ if BR2_PACKAGE_GETTEXT_GNU config BR2_PACKAGE_PROVIDES_GETTEXT default "gettext-gnu" endif config BR2_PACKAGE_PROVIDES_HOST_GETTEXT default "host-gettext-gnu" if BR2_SYSTEM_ENABLE_NLS ================================================ FILE: package/gettext-gnu/gettext-gnu.hash ================================================ # From https://lists.gnu.org/archive/html/info-gnu/2019-05/msg00011.html sha1 62f4a6a2fd5f80bfd0e66c497a04094fa3e07b90 gettext-0.20.1.tar.xz # Locally calculated sha256 53f02fbbec9e798b0faaf7c73272f83608e835c6288dd58be6c9bb54624a3800 gettext-0.20.1.tar.xz sha256 e79e9c8a0c85d735ff98185918ec94ed7d175efc377012787aebcf3b80f0d90b COPYING sha256 3fe5361f24b7c49ba12911c08f5a33f9cb18871d95d9fb881f5b8a4793e04288 gettext-runtime/intl/COPYING.LIB ================================================ FILE: package/gettext-gnu/gettext-gnu.mk ================================================ ################################################################################ # # gettext-gnu # ################################################################################ # Please keep in sync with package/libtextstyle/libtextstyle.mk GETTEXT_GNU_VERSION = 0.20.1 GETTEXT_GNU_SITE = $(BR2_GNU_MIRROR)/gettext GETTEXT_GNU_SOURCE = gettext-$(GETTEXT_GNU_VERSION).tar.xz GETTEXT_GNU_INSTALL_STAGING = YES GETTEXT_GNU_LICENSE = LGPL-2.1+ (libintl), GPL-3.0+ (the rest) GETTEXT_GNU_LICENSE_FILES = COPYING gettext-runtime/intl/COPYING.LIB GETTEXT_GNU_CPE_ID_VENDOR = gnu GETTEXT_GNU_CPE_ID_PRODUCT = gettext # 0002-restore-the-ability-to-buld-gettext-tools-seperately-part1.patch GETTEXT_GNU_AUTORECONF = YES GETTEXT_GNU_PROVIDES = gettext GETTEXT_GNU_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv) # Avoid using the bundled subset of libxml2 HOST_GETTEXT_GNU_DEPENDENCIES = host-libxml2 host-libtextstyle GETTEXT_GNU_CONF_OPTS += \ --disable-libasprintf \ --disable-acl \ --disable-openmp \ --disable-rpath \ --disable-java \ --disable-native-java \ --disable-csharp \ --disable-relocatable \ --without-emacs HOST_GETTEXT_GNU_CONF_OPTS = \ --disable-libasprintf \ --disable-acl \ --disable-openmp \ --disable-rpath \ --disable-java \ --disable-native-java \ --disable-csharp \ --disable-relocatable \ --without-emacs \ --with-installed-libtextstyle # Force the build of libintl, even if the C library provides a stub # gettext implementation ifeq ($(BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL),y) GETTEXT_GNU_CONF_OPTS += --with-included-gettext else GETTEXT_GNU_CONF_OPTS += --without-included-gettext endif # For the target version, we only need the runtime, and for the host # version, we only need the tools. GETTEXT_GNU_SUBDIR = gettext-runtime HOST_GETTEXT_GNU_SUBDIR = gettext-tools # Disable the build of documentation and examples of gettext-tools, # and the build of documentation and tests of gettext-runtime. define HOST_GETTEXT_GNU_DISABLE_UNNEEDED $(SED) '/^SUBDIRS/s/ doc //;/^SUBDIRS/s/examples$$//' $(@D)/gettext-tools/Makefile.in $(SED) '/^SUBDIRS/s/ doc //;/^SUBDIRS/s/tests$$//' $(@D)/gettext-runtime/Makefile.in endef GETTEXT_GNU_POST_PATCH_HOOKS += HOST_GETTEXT_GNU_DISABLE_UNNEEDED HOST_GETTEXT_GNU_POST_PATCH_HOOKS += HOST_GETTEXT_GNU_DISABLE_UNNEEDED define GETTEXT_GNU_REMOVE_UNNEEDED $(RM) -rf $(TARGET_DIR)/usr/share/gettext/ABOUT-NLS rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/usr/share/gettext endef GETTEXT_GNU_POST_INSTALL_TARGET_HOOKS += GETTEXT_GNU_REMOVE_UNNEEDED # 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 # instead select BR2_PACKAGE_GETTEXT_GNU. Those packages need to be # fixed before we can remove the following 3 lines... :-( ifeq ($(BR2_ENABLE_LOCALE),) GETTEXT_GNU_CONF_OPTS += --enable-nls endif # Disable interactive confirmation in host gettextize for package fixups define HOST_GETTEXT_GNU_GETTEXTIZE_CONFIRMATION $(SED) '/read dummy/d' $(HOST_DIR)/bin/gettextize endef HOST_GETTEXT_GNU_POST_INSTALL_HOOKS += HOST_GETTEXT_GNU_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_GNU_ADD_ABOUT_NLS $(INSTALL) -m 0644 $(@D)/$(HOST_GETTEXT_GNU_SUBDIR)/ABOUT-NLS \ $(HOST_DIR)/share/gettext/ABOUT-NLS endef HOST_GETTEXT_GNU_POST_INSTALL_HOOKS += HOST_GETTEXT_GNU_ADD_ABOUT_NLS $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/gettext-tiny/Config.in ================================================ config BR2_PACKAGE_GETTEXT_TINY bool select BR2_PACKAGE_HAS_GETTEXT help Stub and/or lightweight replacements of the gnu gettext suite; because the GNU one takes ages to compile. https://github.com/sabotage-linux/gettext-tiny if BR2_PACKAGE_GETTEXT_TINY config BR2_PACKAGE_PROVIDES_GETTEXT default "gettext-tiny" endif config BR2_PACKAGE_PROVIDES_HOST_GETTEXT default "host-gettext-tiny" if !BR2_SYSTEM_ENABLE_NLS ================================================ FILE: package/gettext-tiny/gettext-tiny.hash ================================================ # Locally Computed: sha256 29cc165e27e83d2bb3760118c2368eadab550830d962d758e51bd36eb860f383 gettext-tiny-0.3.2.tar.gz sha256 4c938aa3d8fa3c184bba5e87a8a2febc89560627c9d0567536879e3eca1a7b4f LICENSE sha256 e79e9c8a0c85d735ff98185918ec94ed7d175efc377012787aebcf3b80f0d90b extra/COPYING # From https://lists.gnu.org/archive/html/info-gnu/2019-05/msg00011.html sha1 62f4a6a2fd5f80bfd0e66c497a04094fa3e07b90 gettext-0.20.1.tar.xz ================================================ FILE: package/gettext-tiny/gettext-tiny.mk ================================================ ################################################################################ # # gettext-tiny # ################################################################################ GETTEXT_TINY_VERSION = 0.3.2 GETTEXT_TINY_SITE = $(call github,sabotage-linux,gettext-tiny,v$(GETTEXT_TINY_VERSION)) GETTEXT_TINY_LICENSE = MIT, GPL-3.0+ (extra gettext) GETTEXT_TINY_INSTALL_STAGING = YES GETTEXT_TINY_LICENSE_FILES = LICENSE HOST_GETTEXT_TINY_LICENSE_FILES = LICENSE extra/COPYING GETTEXT_TINY_PROVIDES = gettext # needed for gettextize GETTEXT_TINY_ARCHIVE_VERSION = 0.20.1 GETTEXT_TINY_EXTRA_GETTEXT_FILES = \ gettext-tools/misc/gettextize.in \ gettext-tools/po/Makevars.template \ gettext-runtime/po/boldquot.sed \ gettext-runtime/po/en@boldquot.header \ gettext-runtime/po/en@quot.header \ gettext-runtime/po/insert-header.sin \ gettext-runtime/po/quot.sed \ gettext-runtime/po/remove-potcdate.sin \ gettext-runtime/po/Rules-quot \ gettext-runtime/po/Makefile.in.in \ COPYING HOST_GETTEXT_TINY_EXTRA_DOWNLOADS = $(GETTEXT_GNU_SITE)/$(GETTEXT_GNU_SOURCE) define HOST_GETTEXT_TINY_EXTRACT_GNU_GETTEXT mkdir -p $(@D)/gettext-gnu $(call suitable-extractor,$(GETTEXT_GNU_SOURCE)) \ $(GETTEXT_TINY_DL_DIR)/$(GETTEXT_GNU_SOURCE) | \ $(TAR) --strip-components=1 -C $(@D)/gettext-gnu $(TAR_OPTIONS) - endef HOST_GETTEXT_TINY_POST_EXTRACT_HOOKS += HOST_GETTEXT_TINY_EXTRACT_GNU_GETTEXT define HOST_GETTEXT_TINY_COPY_EXTRA_FILES $(foreach f,$(GETTEXT_TINY_EXTRA_GETTEXT_FILES),\ $(INSTALL) -D -m 0644 $(@D)/gettext-gnu/$(f) $(@D)/extra/$(notdir $(f)) ) $(INSTALL) -D -m 0755 $(@D)/gettext-gnu/build-aux/config.rpath \ $(@D)/build-aux/config.rpath endef HOST_GETTEXT_TINY_POST_PATCH_HOOKS += HOST_GETTEXT_TINY_COPY_EXTRA_FILES define HOST_GETTEXT_TINY_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) \ $(HOST_CONFIGURE_OPTS) \ prefix=$(HOST_DIR) \ CFLAGS="$(HOST_CFLAGS) -fPIC" \ LIBINTL=NONE cp $(@D)/extra/gettextize.in $(@D)/gettextize $(SED) 's,@PACKAGE@,gettext-tools,g;' $(@D)/gettextize $(SED) 's,@VERSION@,$(GETTEXT_GNU_VERSION),g;' $(@D)/gettextize $(SED) 's,@ARCHIVE_VERSION@,$(GETTEXT_TINY_ARCHIVE_VERSION),' $(@D)/gettextize $(SED) 's,@prefix@,$(HOST_DIR),g;' $(@D)/gettextize $(SED) 's,@datarootdir@,$${prefix}/share,g;' $(@D)/gettextize $(SED) 's,@datadir@,$${prefix}/share,g;' $(@D)/gettextize $(SED) 's,@PATH_SEPARATOR@,:,g;' $(@D)/gettextize $(SED) 's,@RELOCATABLE@,no,g;' $(@D)/gettextize $(SED) 's,@exec_prefix@,$${prefix},g;' $(@D)/gettextize $(SED) 's,@bindir@,$${exec_prefix}/bin,g;' $(@D)/gettextize endef define HOST_GETTEXT_TINY_INSTALL_CMDS $(Q)mkdir -p $(HOST_DIR)/share/gettext-tiny/po $(Q)mkdir -p $(HOST_DIR)/share/gettext-tiny/m4 $(HOST_MAKE_ENV) $(MAKE) -C $(@D) \ $(HOST_CONFIGURE_OPTS) \ prefix=$(HOST_DIR) \ LIBINTL=NONE install $(SED) '/read dummy/d' $(@D)/gettextize $(INSTALL) -m 0755 -D $(@D)/gettextize $(HOST_DIR)/bin/gettextize $(INSTALL) -m 0644 -D $(@D)/build-aux/config.rpath $(HOST_DIR)/share/gettext-tiny/config.rpath $(INSTALL) -m 0644 -D $(@D)/extra/Makefile.in.in $(HOST_DIR)/share/gettext-tiny/po/Makefile.in.in $(INSTALL) -m 0644 -D $(@D)/extra/boldquot.sed $(HOST_DIR)/share/gettext-tiny/po/boldquot.sed $(INSTALL) -m 0644 -D $(@D)/extra/en@boldquot.header $(HOST_DIR)/share/gettext-tiny/po/en@boldquot.header $(INSTALL) -m 0644 -D $(@D)/extra/en@quot.header $(HOST_DIR)/share/gettext-tiny/po/en@quot.header $(INSTALL) -m 0644 -D $(@D)/extra/insert-header.sin $(HOST_DIR)/share/gettext-tiny/po/insert-header.sin $(INSTALL) -m 0644 -D $(@D)/extra/quot.sed $(HOST_DIR)/share/gettext-tiny/po/quot.sed $(INSTALL) -m 0644 -D $(@D)/extra/remove-potcdate.sin $(HOST_DIR)/share/gettext-tiny/po/remove-potcdate.sin $(INSTALL) -m 0644 -D $(@D)/extra/Rules-quot $(HOST_DIR)/share/gettext-tiny/po/Rules-quot $(INSTALL) -m 0644 -D $(@D)/extra/Makevars.template $(HOST_DIR)/share/gettext-tiny/po/Makevars.template $(Q)touch $(HOST_DIR)/share/gettext-tiny/ABOUT-NLS # for gettextize ln -sf $(HOST_DIR)/usr/share/gettext-tiny $(HOST_DIR)/usr/share/gettext endef # Install simple echo wrapper for gettext tool define GETTEXT_TINY_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(GETTEXT_TINY_PKGDIR)/gettext-wrapper $(TARGET_DIR)/usr/bin/gettext endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/gettext-tiny/gettext-wrapper ================================================ #!/bin/sh # # Thanks to "Yann E. MORIN" # for this gettext replacement. while [ ${#} -ne 0 ]; do case "${1}" in (-h) printf "no help\n"; return 0;; (-V) printf "0.0.0\n"; return 0;; (-d|--domain) shift 2;; (-d*|--domain=*) shift 1;; (-e|-E|-n) shift 1;; (-s) shift 1;; # Ignore? (-*) printf "invalid option '%s'\n" "${1}" >&2; return 1;; (*) break;; esac done case ${#} in (0) printf "missing arguments\n" >&2; return 1;; (1) printf "%s" "${1}";; (2) printf "%s" "${2}";; (*) printf "too many arguments\n" >&2; return 1;; esac ================================================ FILE: package/gflags/Config.in ================================================ config BR2_PACKAGE_GFLAGS bool "gflags" depends on BR2_INSTALL_LIBSTDCPP help The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used. https://github.com/gflags/gflags comment "gflags needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/gflags/gflags.hash ================================================ # Locally computed sha256 34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf gflags-2.2.2.tar.gz # Hash for license file: sha256 90d1f3701813c3cd65eee2dc736746fe46b465918f3f7d6d31463a2018b33fa5 COPYING.txt ================================================ FILE: package/gflags/gflags.mk ================================================ ################################################################################ # # gflags # ################################################################################ GFLAGS_VERSION = 2.2.2 GFLAGS_SITE = $(call github,gflags,gflags,v$(GFLAGS_VERSION)) GFLAGS_INSTALL_STAGING = YES GFLAGS_LICENSE = BSD-3-Clause GFLAGS_LICENSE_FILES = COPYING.txt # Force Release otherwise libraries will be suffixed by _debug which will raise # unexpected build failures with packages that use gflags (e.g. rocksdb) GFLAGS_CONF_OPTS = -DCMAKE_BUILD_TYPE=Release ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),) GFLAGS_CONF_OPTS += -DBUILD_gflags_LIB=OFF \ -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) -DNO_THREADS" endif $(eval $(cmake-package)) ================================================ FILE: package/ghostscript/0001-bug-702985-drop-use-of-FT_CALLBACK_DEF.patch ================================================ From 41ef9a0bc36b9db7115fbe9623f989bfb47bbade Mon Sep 17 00:00:00 2001 From: Chris Liddell Date: Tue, 20 Oct 2020 09:49:45 +0100 Subject: [PATCH] Bug 702985: drop use of FT_CALLBACK_DEF() def From 2.10.3, Freetype disappeared the FT_CALLBACK_DEF() macro, which is what we used when defining our callbacks from Freetype. No guidance forthcoming from the Freetype developer who made those changes, so change to explicitly declaring the callbacks file static. Should fix the reported build failures. Downloaded from upstream commit: https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=41ef9a0bc36b Signed-off-by: Bernd Kuhls --- base/fapi_ft.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/base/fapi_ft.c b/base/fapi_ft.c index 65fa6dcf4..21aef2f06 100644 --- a/base/fapi_ft.c +++ b/base/fapi_ft.c @@ -125,7 +125,7 @@ static void delete_inc_int_info(gs_fapi_server * a_server, FT_IncrementalRec * a_inc_int_info); -FT_CALLBACK_DEF(void *) +static void * FF_alloc(FT_Memory memory, long size) { gs_memory_t *mem = (gs_memory_t *) memory->user; @@ -133,7 +133,7 @@ FF_alloc(FT_Memory memory, long size) return (gs_malloc(mem, size, 1, "FF_alloc")); } -FT_CALLBACK_DEF(void *) +static void * FF_realloc(FT_Memory memory, long cur_size, long new_size, void *block) { gs_memory_t *mem = (gs_memory_t *) memory->user; @@ -153,7 +153,7 @@ FT_CALLBACK_DEF(void *) return (tmp); } -FT_CALLBACK_DEF(void) +static void FF_free(FT_Memory memory, void *block) { gs_memory_t *mem = (gs_memory_t *) memory->user; -- 2.17.1 ================================================ FILE: package/ghostscript/0002-Bug-704342-Include-device-specifier-strings-in-acces.patch ================================================ From a9bd3dec9fde03327a4a2c69dad1036bf9632e20 Mon Sep 17 00:00:00 2001 From: Chris Liddell Date: Tue, 7 Sep 2021 20:36:12 +0100 Subject: [PATCH] Bug 704342: Include device specifier strings in access validation for the "%pipe%", %handle%" and %printer% io devices. We previously validated only the part after the "%pipe%" Postscript device specifier, but this proved insufficient. This rebuilds the original file name string, and validates it complete. The slight complication for "%pipe%" is it can be reached implicitly using "|" so we have to check both prefixes. Addresses CVE-2021-3781 Signed-off-by: Peter Korsgaard --- base/gdevpipe.c | 22 +++++++++++++++- base/gp_mshdl.c | 11 +++++++- base/gp_msprn.c | 10 ++++++- base/gp_os2pr.c | 13 +++++++++- base/gslibctx.c | 69 ++++++++++--------------------------------------- 5 files changed, 65 insertions(+), 60 deletions(-) diff --git a/base/gdevpipe.c b/base/gdevpipe.c index 96d71f5d8..5bdc485be 100644 --- a/base/gdevpipe.c +++ b/base/gdevpipe.c @@ -72,8 +72,28 @@ pipe_fopen(gx_io_device * iodev, const char *fname, const char *access, #else gs_lib_ctx_t *ctx = mem->gs_lib_ctx; gs_fs_list_t *fs = ctx->core->fs; + /* The pipe device can be reached in two ways, explicltly with %pipe% + or implicitly with "|", so we have to check for both + */ + char f[gp_file_name_sizeof]; + const char *pipestr = "|"; + const size_t pipestrlen = strlen(pipestr); + const size_t preflen = strlen(iodev->dname); + const size_t nlen = strlen(fname); + int code1; + + if (preflen + nlen >= gp_file_name_sizeof) + return_error(gs_error_invalidaccess); + + memcpy(f, iodev->dname, preflen); + memcpy(f + preflen, fname, nlen + 1); + + code1 = gp_validate_path(mem, f, access); + + memcpy(f, pipestr, pipestrlen); + memcpy(f + pipestrlen, fname, nlen + 1); - if (gp_validate_path(mem, fname, access) != 0) + if (code1 != 0 && gp_validate_path(mem, f, access) != 0 ) return gs_error_invalidfileaccess; /* diff --git a/base/gp_mshdl.c b/base/gp_mshdl.c index 2b964ed74..8d87ceadc 100644 --- a/base/gp_mshdl.c +++ b/base/gp_mshdl.c @@ -95,8 +95,17 @@ mswin_handle_fopen(gx_io_device * iodev, const char *fname, const char *access, long hfile; /* Correct for Win32, may be wrong for Win64 */ gs_lib_ctx_t *ctx = mem->gs_lib_ctx; gs_fs_list_t *fs = ctx->core->fs; + char f[gp_file_name_sizeof]; + const size_t preflen = strlen(iodev->dname); + const size_t nlen = strlen(fname); - if (gp_validate_path(mem, fname, access) != 0) + if (preflen + nlen >= gp_file_name_sizeof) + return_error(gs_error_invalidaccess); + + memcpy(f, iodev->dname, preflen); + memcpy(f + preflen, fname, nlen + 1); + + if (gp_validate_path(mem, f, access) != 0) return gs_error_invalidfileaccess; /* First we try the open_handle method. */ diff --git a/base/gp_msprn.c b/base/gp_msprn.c index ed4827968..746a974f7 100644 --- a/base/gp_msprn.c +++ b/base/gp_msprn.c @@ -168,8 +168,16 @@ mswin_printer_fopen(gx_io_device * iodev, const char *fname, const char *access, uintptr_t *ptid = &((tid_t *)(iodev->state))->tid; gs_lib_ctx_t *ctx = mem->gs_lib_ctx; gs_fs_list_t *fs = ctx->core->fs; + const size_t preflen = strlen(iodev->dname); + const size_t nlen = strlen(fname); - if (gp_validate_path(mem, fname, access) != 0) + if (preflen + nlen >= gp_file_name_sizeof) + return_error(gs_error_invalidaccess); + + memcpy(pname, iodev->dname, preflen); + memcpy(pname + preflen, fname, nlen + 1); + + if (gp_validate_path(mem, pname, access) != 0) return gs_error_invalidfileaccess; /* First we try the open_printer method. */ diff --git a/base/gp_os2pr.c b/base/gp_os2pr.c index f852c71fc..ba54cde66 100644 --- a/base/gp_os2pr.c +++ b/base/gp_os2pr.c @@ -107,9 +107,20 @@ os2_printer_fopen(gx_io_device * iodev, const char *fname, const char *access, FILE ** pfile, char *rfname, uint rnamelen) { os2_printer_t *pr = (os2_printer_t *)iodev->state; - char driver_name[256]; + char driver_name[gp_file_name_sizeof]; gs_lib_ctx_t *ctx = mem->gs_lib_ctx; gs_fs_list_t *fs = ctx->core->fs; + const size_t preflen = strlen(iodev->dname); + const int size_t = strlen(fname); + + if (preflen + nlen >= gp_file_name_sizeof) + return_error(gs_error_invalidaccess); + + memcpy(driver_name, iodev->dname, preflen); + memcpy(driver_name + preflen, fname, nlen + 1); + + if (gp_validate_path(mem, driver_name, access) != 0) + return gs_error_invalidfileaccess; /* First we try the open_printer method. */ /* Note that the loop condition here ensures we don't diff --git a/base/gslibctx.c b/base/gslibctx.c index 6dfed6cd5..318039fad 100644 --- a/base/gslibctx.c +++ b/base/gslibctx.c @@ -655,82 +655,39 @@ rewrite_percent_specifiers(char *s) int gs_add_outputfile_control_path(gs_memory_t *mem, const char *fname) { - char *fp, f[gp_file_name_sizeof]; - const int pipe = 124; /* ASCII code for '|' */ - const int len = strlen(fname); - int i, code; + char f[gp_file_name_sizeof]; + int code; /* Be sure the string copy will fit */ - if (len >= gp_file_name_sizeof) + if (strlen(fname) >= gp_file_name_sizeof) return gs_error_rangecheck; strcpy(f, fname); - fp = f; /* Try to rewrite any %d (or similar) in the string */ rewrite_percent_specifiers(f); - for (i = 0; i < len; i++) { - if (f[i] == pipe) { - fp = &f[i + 1]; - /* Because we potentially have to check file permissions at two levels - for the output file (gx_device_open_output_file and the low level - fopen API, if we're using a pipe, we have to add both the full string, - (including the '|', and just the command to which we pipe - since at - the pipe_fopen(), the leading '|' has been stripped. - */ - code = gs_add_control_path(mem, gs_permit_file_writing, f); - if (code < 0) - return code; - code = gs_add_control_path(mem, gs_permit_file_control, f); - if (code < 0) - return code; - break; - } - if (!IS_WHITESPACE(f[i])) - break; - } - code = gs_add_control_path(mem, gs_permit_file_control, fp); + + code = gs_add_control_path(mem, gs_permit_file_control, f); if (code < 0) return code; - return gs_add_control_path(mem, gs_permit_file_writing, fp); + return gs_add_control_path(mem, gs_permit_file_writing, f); } int gs_remove_outputfile_control_path(gs_memory_t *mem, const char *fname) { - char *fp, f[gp_file_name_sizeof]; - const int pipe = 124; /* ASCII code for '|' */ - const int len = strlen(fname); - int i, code; + char f[gp_file_name_sizeof]; + int code; /* Be sure the string copy will fit */ - if (len >= gp_file_name_sizeof) + if (strlen(fname) >= gp_file_name_sizeof) return gs_error_rangecheck; strcpy(f, fname); - fp = f; /* Try to rewrite any %d (or similar) in the string */ - for (i = 0; i < len; i++) { - if (f[i] == pipe) { - fp = &f[i + 1]; - /* Because we potentially have to check file permissions at two levels - for the output file (gx_device_open_output_file and the low level - fopen API, if we're using a pipe, we have to add both the full string, - (including the '|', and just the command to which we pipe - since at - the pipe_fopen(), the leading '|' has been stripped. - */ - code = gs_remove_control_path(mem, gs_permit_file_writing, f); - if (code < 0) - return code; - code = gs_remove_control_path(mem, gs_permit_file_control, f); - if (code < 0) - return code; - break; - } - if (!IS_WHITESPACE(f[i])) - break; - } - code = gs_remove_control_path(mem, gs_permit_file_control, fp); + rewrite_percent_specifiers(f); + + code = gs_remove_control_path(mem, gs_permit_file_control, f); if (code < 0) return code; - return gs_remove_control_path(mem, gs_permit_file_writing, fp); + return gs_remove_control_path(mem, gs_permit_file_writing, f); } int -- 2.20.1 ================================================ FILE: package/ghostscript/Config.in ================================================ config BR2_PACKAGE_GHOSTSCRIPT bool "ghostscript" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_GHOSTSCRIPT_FONTS select BR2_PACKAGE_JPEG select BR2_PACKAGE_LCMS2 select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_TIFF help Ghostscript is an interpreter for PostScript and Portable Document Format (PDF) files. http://ghostscript.com ================================================ FILE: package/ghostscript/ghostscript.hash ================================================ # From https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9533/SHA512SUMS sha512 c142ef9d83896aa8fd18c8e412220fe8f4950614be00d327d27ab051fe85e16524bf2ee00f46c2aca7a352ce47bc3acf2c4de0f7bbea7e4c55474b8af6cdc0a6 ghostscript-9.53.3.tar.gz # Hash for license file: sha256 6f852249f975287b3efd43a5883875e47fa9f3125e2f1b18b5c09517ac30ecf2 LICENSE ================================================ FILE: package/ghostscript/ghostscript.mk ================================================ ################################################################################ # # ghostscript # ################################################################################ GHOSTSCRIPT_VERSION = 9.53.3 GHOSTSCRIPT_SITE = https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs$(subst .,,$(GHOSTSCRIPT_VERSION)) GHOSTSCRIPT_LICENSE = AGPL-3.0 GHOSTSCRIPT_LICENSE_FILES = LICENSE GHOSTSCRIPT_CPE_ID_VENDOR = artifex GHOSTSCRIPT_DEPENDENCIES = \ host-lcms2 \ host-libjpeg \ host-pkgconf \ host-zlib \ fontconfig \ ghostscript-fonts \ jpeg \ lcms2 \ libpng \ tiff # 0002-Bug-704342-Include-device-specifier-strings-in-acces.patch GHOSTSCRIPT_IGNORE_CVES += CVE-2021-3781 # Ghostscript includes (old) copies of several libraries, delete them. # Inspired by linuxfromscratch: # http://www.linuxfromscratch.org/blfs/view/svn/pst/gs.html define GHOSTSCRIPT_REMOVE_LIBS rm -rf $(@D)/freetype $(@D)/ijs $(@D)/jbig2dec $(@D)/jpeg \ $(@D)/lcms2mt $(@D)/libpng $(@D)/openjpeg $(@D)/tiff \ $(@D)/zlib endef GHOSTSCRIPT_POST_PATCH_HOOKS += GHOSTSCRIPT_REMOVE_LIBS GHOSTSCRIPT_CONF_ENV = \ CCAUX="$(HOSTCC)" \ CFLAGSAUX="$(HOST_CFLAGS) $(HOST_LDFLAGS)" \ PKGCONFIG="$(PKG_CONFIG_HOST_BINARY)" GHOSTSCRIPT_CONF_OPTS = \ --disable-compile-inits \ --enable-fontconfig \ --with-fontpath=/usr/share/fonts \ --enable-freetype \ --disable-gtk \ --without-libpaper \ --with-system-libtiff ifeq ($(BR2_PACKAGE_JBIG2DEC),y) GHOSTSCRIPT_DEPENDENCIES += jbig2dec GHOSTSCRIPT_CONF_OPTS += --with-jbig2dec else GHOSTSCRIPT_CONF_OPTS += --without-jbig2dec endif ifeq ($(BR2_PACKAGE_LIBIDN),y) GHOSTSCRIPT_DEPENDENCIES += libidn GHOSTSCRIPT_CONF_OPTS += --with-libidn else GHOSTSCRIPT_CONF_OPTS += --without-libidn endif ifeq ($(BR2_PACKAGE_OPENJPEG),y) GHOSTSCRIPT_DEPENDENCIES += openjpeg GHOSTSCRIPT_CONF_OPTS += --enable-openjpeg else GHOSTSCRIPT_CONF_OPTS += --disable-openjpeg endif ifeq ($(BR2_PACKAGE_CUPS),y) GHOSTSCRIPT_DEPENDENCIES += cups GHOSTSCRIPT_CONF_OPTS += \ CUPSCONFIG=$(STAGING_DIR)/usr/bin/cups-config \ --enable-cups else GHOSTSCRIPT_CONF_OPTS += --disable-cups endif ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) GHOSTSCRIPT_DEPENDENCIES += xlib_libX11 GHOSTSCRIPT_CONF_OPTS += --with-x else GHOSTSCRIPT_CONF_OPTS += --without-x endif $(eval $(autotools-package)) ================================================ FILE: package/ghostscript-fonts/Config.in ================================================ config BR2_PACKAGE_GHOSTSCRIPT_FONTS bool "ghostscript-fonts" help Fonts and font metrics customarily distributed with Ghostscript. Currently includes the 35 standard PostScript fonts and a grab-bag of others. http://sourceforge.net/projects/gs-fonts ================================================ FILE: package/ghostscript-fonts/ghostscript-fonts.hash ================================================ # From http://sourceforge.net/projects/gs-fonts/files/gs-fonts/8.11%20%28base%2035%2C%20GPL%29/ sha1 2a7198e8178b2e7dba87cb5794da515200b568f5 ghostscript-fonts-std-8.11.tar.gz # Locally computed sha256 0eb6f356119f2e49b2563210852e17f57f9dcc5755f350a69a46a0d641a0c401 ghostscript-fonts-std-8.11.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/ghostscript-fonts/ghostscript-fonts.mk ================================================ ################################################################################ # # ghostscript-fonts # ################################################################################ GHOSTSCRIPT_FONTS_VERSION = 8.11 GHOSTSCRIPT_FONTS_SITE = http://downloads.sourceforge.net/project/gs-fonts/gs-fonts/8.11%20%28base%2035%2C%20GPL%29 GHOSTSCRIPT_FONTS_SOURCE = ghostscript-fonts-std-$(GHOSTSCRIPT_FONTS_VERSION).tar.gz GHOSTSCRIPT_FONTS_LICENSE = GPL-2.0 GHOSTSCRIPT_FONTS_LICENSE_FILES = COPYING GHOSTSCRIPT_FONTS_TARGET_DIR = $(TARGET_DIR)/usr/share/fonts/gs define GHOSTSCRIPT_FONTS_INSTALL_TARGET_CMDS mkdir -p $(GHOSTSCRIPT_FONTS_TARGET_DIR) $(INSTALL) -m 644 $(@D)/*.afm $(GHOSTSCRIPT_FONTS_TARGET_DIR) $(INSTALL) -m 644 $(@D)/*.pfb $(GHOSTSCRIPT_FONTS_TARGET_DIR) endef $(eval $(generic-package)) ================================================ FILE: package/giblib/0001-fix-imlib2-detection.patch ================================================ configure.ac + Makefile.am: fix the imlib2 detection Although imlib2 is correctly checked for, the variables used to get the CFLAGS and LIBS are wrong (perhaps a remnant of the pre-imlib2 era, when giblib was using imlib). Signed-off-by: "Yann E. MORIN" diff --git a/configure.ac b/configure.ac index 6807d86..c8874f0 100644 --- a/configure.ac +++ b/configure.ac @@ -18,16 +18,10 @@ AM_MAINTAINER_MODE AM_WITH_DMALLOC AC_PATH_GENERIC(imlib2, 1.0.0, [ - AC_SUBST(IMLIB_LIBS) - AC_SUBST(IMLIB_CFLAGS) ], + AC_SUBST(IMLIB2_LIBS) + AC_SUBST(IMLIB2_CFLAGS) ], AC_MSG_ERROR(Cannot find imlib2: Is imlib2-config in the path?) ) -dnl the above doesn't work for some reason :/ -IMLIB_LIBS=`imlib2-config --libs` -IMLIB_CFLAGS=`imlib2-config --cflags` -AC_SUBST(IMLIB_LIBS) -AC_SUBST(IMLIB_CFLAGS) - LIBS="$LIBS -lm" CFLAGS="$CFLAGS -Wall" @@ -48,7 +42,7 @@ $PACKAGE $VERSION Configuration: -------------- -Imlib2 libs: $IMLIB_LIBS -Imlib2 cflags: $IMLIB_CFLAGS +Imlib2 libs: $IMLIB2_LIBS +Imlib2 cflags: $IMLIB2_CFLAGS CFLAGS: $CFLAGS " diff --git a/configure.in b/configure.in index 432cb16..6999095 100644 --- a/configure.in +++ b/configure.in @@ -17,16 +17,10 @@ AM_MAINTAINER_MODE AM_WITH_DMALLOC AC_PATH_GENERIC(imlib2, 1.0.0, [ - AC_SUBST(IMLIB_LIBS) - AC_SUBST(IMLIB_CFLAGS) ], + AC_SUBST(IMLIB2_LIBS) + AC_SUBST(IMLIB2_CFLAGS) ], AC_MSG_ERROR(Cannot find imlib2: Is imlib2-config in the path?) ) -dnl the above doesn't work for some reason :/ -IMLIB_LIBS=`imlib2-config --libs` -IMLIB_CFLAGS=`imlib2-config --cflags` -AC_SUBST(IMLIB_LIBS) -AC_SUBST(IMLIB_CFLAGS) - LIBS="$LIBS -lm" CFLAGS="$CFLAGS -Wall" @@ -45,7 +39,7 @@ $PACKAGE $VERSION Configuration: -------------- -Imlib2 libs: $IMLIB_LIBS -Imlib2 cflags: $IMLIB_CFLAGS +Imlib2 libs: $IMLIB2_LIBS +Imlib2 cflags: $IMLIB2_CFLAGS CFLAGS: $CFLAGS " diff --git a/giblib-config.in b/giblib-config.in index f3a7db6..cef1620 100644 --- a/giblib-config.in +++ b/giblib-config.in @@ -42,11 +42,11 @@ while test $# -gt 0; do if test @includedir@ != /usr/include ; then includes=-I@includedir@ fi - echo $includes -I$prefix/include/giblib @IMLIB_CFLAGS@ + echo $includes -I$prefix/include/giblib @IMLIB2_CFLAGS@ ;; --libs) libdirs=-L@libdir@ - echo $libdirs -lgiblib @LDFLAGS@ @IMLIB_LIBS@ + echo $libdirs -lgiblib @LDFLAGS@ @IMLIB2_LIBS@ ;; *) echo "${usage}" 1>&2 diff --git a/giblib.pc.in b/giblib.pc.in index df520ae..783e6e1 100644 --- a/giblib.pc.in +++ b/giblib.pc.in @@ -6,6 +6,6 @@ includedir=@includedir@ Name: giblib Description: wrapper library for imlib2, and other stuff Version: @VERSION@ -Libs: -L${libdir} -lgiblib @LDFLAGS@ @IMLIB_LIBS@ -Cflags: -I${includedir} -I${includedir}/giblib @IMLIB_CFLAGS@ +Libs: -L${libdir} -lgiblib @LDFLAGS@ @IMLIB2_LIBS@ +Cflags: -I${includedir} -I${includedir}/giblib @IMLIB2_CFLAGS@ diff --git a/giblib/Makefile.am b/giblib/Makefile.am index d1edc09..49d8ac4 100644 --- a/giblib/Makefile.am +++ b/giblib/Makefile.am @@ -3,7 +3,7 @@ MAINTAINERCLEANFILES = Makefile.in INCLUDES = \ -I. -I$(top_srcdir) \ --DPREFIX=\""$(prefix)"\" @IMLIB_CFLAGS@ +-DPREFIX=\""$(prefix)"\" @IMLIB2_CFLAGS@ lib_LTLIBRARIES = libgiblib.la @@ -24,7 +24,7 @@ libgiblib_la_SOURCES = \ gib_utils.c gib_utils.h \ gib_queue.c gib_queue.h -libgiblib_la_LIBADD = @IMLIB_LIBS@ +libgiblib_la_LIBADD = @IMLIB2_LIBS@ libgiblib_la_DEPENDENCIES = giblib_config.h libgiblib_la_LDFLAGS = -version-info 1:6:0 ================================================ FILE: package/giblib/Config.in ================================================ config BR2_PACKAGE_GIBLIB bool "giblib" depends on BR2_PACKAGE_XORG7 depends on !BR2_STATIC_LIBS select BR2_PACKAGE_IMLIB2 select BR2_PACKAGE_IMLIB2_X help Giblib is a simple library which wraps imlib2. http://linuxbrit.co.uk/giblib/ comment "giblib support needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/giblib/giblib.hash ================================================ # Locally calculated sha256 176611c4d88d742ea4013991ad54c2f9d2feefbc97a28434c0f48922ebaa8bac giblib-1.2.4.tar.gz sha256 8601e2dacede853fe325f7fd3a11f93b1753d576db60426f1b0ff4e68f41ff07 COPYING ================================================ FILE: package/giblib/giblib.mk ================================================ ################################################################################ # # giblib # ################################################################################ GIBLIB_VERSION = 1.2.4 GIBLIB_SITE = http://linuxbrit.co.uk/downloads GIBLIB_INSTALL_STAGING = YES GIBLIB_DEPENDENCIES = imlib2 GIBLIB_AUTORECONF = YES GIBLIB_CONF_OPTS = \ --with-imlib2-prefix=$(STAGING_DIR)/usr \ --with-imlib2-exec-prefix=$(STAGING_DIR)/usr GIBLIB_CONFIG_SCRIPTS = giblib-config GIBLIB_LICENSE = MIT GIBLIB_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/giflib/0001-Makefile-add-targets-to-manage-static-building.patch ================================================ From 487407d722714f13e8a06d1a9d89f48a5738191e Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 12 Jul 2019 12:20:38 +0200 Subject: [PATCH] Makefile: add targets to manage static building Add static-lib, shared-lib, install-static-lib and install-shared-lib targets to allow the user to build giflib when dynamic library support is not available or enable on the toolchain Signed-off-by: Fabrice Fontaine [Upstream status: https://sourceforge.net/p/giflib/code/merge-requests/7] --- Makefile | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index b2bf6de..111f52f 100644 --- a/Makefile +++ b/Makefile @@ -61,10 +61,17 @@ UTILS = $(INSTALLABLE) \ LDLIBS=libgif.a -lm -all: libgif.so libgif.a libutil.so libutil.a $(UTILS) +SHARED_LIBS = libgif.so libutil.so +STATIC_LIBS = libgif.a libutil.a + +all: shared-lib static-lib $(UTILS) $(MAKE) -C doc -$(UTILS):: libgif.a libutil.a +$(UTILS):: $(STATIC_LIBS) + +shared-lib: $(SHARED_LIBS) + +static-lib: $(STATIC_LIBS) libgif.so: $(OBJECTS) $(HEADERS) $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS) @@ -79,7 +86,7 @@ libutil.a: $(UOBJECTS) $(UHEADERS) $(AR) rcs libutil.a $(UOBJECTS) clean: - rm -f $(UTILS) $(TARGET) libgetarg.a libgif.a libgif.so libutil.a libutil.so *.o + rm -f $(UTILS) $(TARGET) libgetarg.a $(SHARED_LIBS) $(STATIC_LIBS) *.o rm -f libgif.so.$(LIBMAJOR).$(LIBMINOR).$(LIBPOINT) rm -f libgif.so.$(LIBMAJOR) rm -fr doc/*.1 *.html doc/staging @@ -96,12 +103,15 @@ install-bin: $(INSTALLABLE) install-include: $(INSTALL) -d "$(DESTDIR)$(INCDIR)" $(INSTALL) -m 644 gif_lib.h "$(DESTDIR)$(INCDIR)" -install-lib: +install-static-lib: $(INSTALL) -d "$(DESTDIR)$(LIBDIR)" $(INSTALL) -m 644 libgif.a "$(DESTDIR)$(LIBDIR)/libgif.a" +install-shared-lib: + $(INSTALL) -d "$(DESTDIR)$(LIBDIR)" $(INSTALL) -m 755 libgif.so "$(DESTDIR)$(LIBDIR)/libgif.so.$(LIBVER)" ln -sf libgif.so.$(LIBVER) "$(DESTDIR)$(LIBDIR)/libgif.so.$(LIBMAJOR)" ln -sf libgif.so.$(LIBMAJOR) "$(DESTDIR)$(LIBDIR)/libgif.so" +install-lib: install-static-lib install-shared-lib install-man: $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man1" $(INSTALL) -m 644 doc/*.1 "$(DESTDIR)$(MANDIR)/man1" -- 2.20.1 ================================================ FILE: package/giflib/Config.in ================================================ config BR2_PACKAGE_GIFLIB bool "giflib" help giflib is a library for reading and writing gif images. http://sourceforge.net/projects/giflib ================================================ FILE: package/giflib/giflib.hash ================================================ # From http://sourceforge.net/projects/giflib/files md5 6f03aee4ebe54ac2cc1ab3e4b0a049e5 giflib-5.2.1.tar.gz sha1 c3f774dcbdf26afded7788979c8081d33c6426dc giflib-5.2.1.tar.gz # Locally computed sha256 0c9b7990ecdca88b676db232c226548ac408b279f550d424d996f0d83591dd8e COPYING ================================================ FILE: package/giflib/giflib.mk ================================================ ################################################################################ # # giflib # ################################################################################ GIFLIB_VERSION = 5.2.1 GIFLIB_SITE = http://downloads.sourceforge.net/project/giflib GIFLIB_INSTALL_STAGING = YES GIFLIB_LICENSE = MIT GIFLIB_LICENSE_FILES = COPYING GIFLIB_CPE_ID_VENDOR = giflib_project ifeq ($(BR2_STATIC_LIBS),y) GIFLIB_BUILD_LIBS = static-lib GIFLIB_INSTALL_LIBS = install-static-lib else ifeq ($(BR2_SHARED_LIBS),y) GIFLIB_BUILD_LIBS = shared-lib GIFLIB_INSTALL_LIBS = install-shared-lib else GIFLIB_BUILD_LIBS = static-lib shared-lib GIFLIB_INSTALL_LIBS = install-lib endif define GIFLIB_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(GIFLIB_BUILD_LIBS) endef define HOST_GIFLIB_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define GIFLIB_INSTALL_STAGING_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) \ PREFIX=/usr install-include $(GIFLIB_INSTALL_LIBS) endef define GIFLIB_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) \ PREFIX=/usr install-include $(GIFLIB_INSTALL_LIBS) endef define HOST_GIFLIB_INSTALL_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(HOST_DIR) \ PREFIX=/usr install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/git/0001-Fix-build-without-threads.patch ================================================ From 07d66af3b0800764087c4151d4f6562d4f8cce05 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 14 Dec 2020 23:00:33 +0100 Subject: [PATCH] Fix build without threads Build without threads is broken since version 2.29.0 and https://github.com/git/git/commit/15b52a44e0c92a0658e891194a5b0610d1f53afc: In file included from cache.h:4, from blame.c:1: git-compat-util.h:1238:20: error: static declaration of 'flockfile' follows non-static declaration static inline void flockfile(FILE *fh) ^~~~~~~~~ In file included from git-compat-util.h:168, from cache.h:4, from blame.c:1: /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/stdio.h:806:13: note: previous declaration of 'flockfile' was here extern void flockfile (FILE *__stream) __THROW; ^~~~~~~~~ In file included from cache.h:4, from blame.c:1: git-compat-util.h:1242:20: error: static declaration of 'funlockfile' follows non-static declaration static inline void funlockfile(FILE *fh) ^~~~~~~~~~~ In file included from git-compat-util.h:168, from cache.h:4, from blame.c:1: /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/stdio.h:813:13: note: previous declaration of 'funlockfile' was here extern void funlockfile (FILE *__stream) __THROW; ^~~~~~~~~~~ To avoid this build failure, check if flockfile is available before defining flockfile, funlockfile and getc_unlocked Fixes: - http://autobuild.buildroot.org/results/d41638d1ad8e78dd6f654367c905996b838ee649 Signed-off-by: Fabrice Fontaine --- Makefile | 5 +++++ configure.ac | 6 ++++++ git-compat-util.h | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6fb86c5862..58d0893a12 100644 --- a/Makefile +++ b/Makefile @@ -232,6 +232,8 @@ all:: # Define NO_STRUCT_ITIMERVAL if you don't have struct itimerval # This also implies NO_SETITIMER # +# Define NO_FLOCKFILE if you don't have flockfile() +# # Define NO_FAST_WORKING_DIRECTORY if accessing objects in pack files is # generally faster on your platform than accessing the working directory. # @@ -1638,6 +1640,9 @@ endif ifdef NO_SETITIMER COMPAT_CFLAGS += -DNO_SETITIMER endif +ifdef NO_FLOCKFILE + COMPAT_CFLAGS += -DNO_FLOCKFILE +endif ifdef NO_PREAD COMPAT_CFLAGS += -DNO_PREAD COMPAT_OBJS += compat/pread.o diff --git a/configure.ac b/configure.ac index 66aedb9288..d4295b5c69 100644 --- a/configure.ac +++ b/configure.ac @@ -1132,6 +1132,12 @@ GIT_CHECK_FUNC(setitimer, [NO_SETITIMER=YesPlease]) GIT_CONF_SUBST([NO_SETITIMER]) # +# Define NO_FLOCKFILE if you don't have flockfile. +GIT_CHECK_FUNC(flockfile, +[NO_FLOCKFILE=], +[NO_FLOCKFILE=YesPlease]) +GIT_CONF_SUBST([NO_FLOCKFILE]) +# # Define NO_STRCASESTR if you don't have strcasestr. GIT_CHECK_FUNC(strcasestr, [NO_STRCASESTR=], diff --git a/git-compat-util.h b/git-compat-util.h index 7d509c5022..279cdd941e 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -1236,7 +1236,7 @@ int warn_on_fopen_errors(const char *path); # define SHELL_PATH "/bin/sh" #endif -#ifndef _POSIX_THREAD_SAFE_FUNCTIONS +#if !defined(_POSIX_THREAD_SAFE_FUNCTIONS) && defined(NO_FLOCKFILE) static inline void flockfile(FILE *fh) { ; /* nothing */ -- 2.29.2 ================================================ FILE: package/git/Config.in ================================================ config BR2_PACKAGE_GIT bool "git" depends on BR2_USE_MMU # uses fork() select BR2_PACKAGE_ZLIB select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Git is a free and open source distributed version control system designed to handle everything from small to very large projects. http://git-scm.com ================================================ FILE: package/git/git.hash ================================================ # From: https://www.kernel.org/pub/software/scm/git/sha256sums.asc sha256 9f61417a44d5b954a5012b6f34e526a3336dcf5dd720e2bb7ada92ad8b3d6680 git-2.31.1.tar.xz # Locally calculated sha256 5b2198d1645f767585e8a88ac0499b04472164c0d2da22e75ecf97ef443ab32e COPYING sha256 1922f45d2c49e390032c9c0ba6d7cac904087f7cec51af30c2b2ad022ce0e76a LGPL-2.1 ================================================ FILE: package/git/git.mk ================================================ ################################################################################ # # git # ################################################################################ GIT_VERSION = 2.31.1 GIT_SOURCE = git-$(GIT_VERSION).tar.xz GIT_SITE = $(BR2_KERNEL_MIRROR)/software/scm/git GIT_LICENSE = GPL-2.0, LGPL-2.1+ GIT_LICENSE_FILES = COPYING LGPL-2.1 GIT_CPE_ID_VENDOR = git-scm GIT_SELINUX_MODULES = apache git GIT_DEPENDENCIES = zlib $(TARGET_NLS_DEPENDENCIES) # We're patching configure.ac GIT_AUTORECONF = YES ifeq ($(BR2_PACKAGE_OPENSSL),y) GIT_DEPENDENCIES += host-pkgconf openssl GIT_CONF_OPTS += --with-openssl GIT_MAKE_OPTS += LIB_4_CRYPTO="`$(PKG_CONFIG_HOST_BINARY) --libs libssl libcrypto`" else GIT_CONF_OPTS += --without-openssl endif ifeq ($(BR2_PACKAGE_PCRE2),y) GIT_DEPENDENCIES += pcre2 GIT_CONF_OPTS += --with-libpcre2 else GIT_CONF_OPTS += --without-libpcre2 endif ifeq ($(BR2_PACKAGE_LIBCURL),y) GIT_DEPENDENCIES += libcurl GIT_CONF_OPTS += --with-curl GIT_CONF_ENV += \ ac_cv_prog_CURL_CONFIG=$(STAGING_DIR)/usr/bin/$(LIBCURL_CONFIG_SCRIPTS) else GIT_CONF_OPTS += --without-curl endif ifeq ($(BR2_PACKAGE_EXPAT),y) GIT_DEPENDENCIES += expat GIT_CONF_OPTS += --with-expat else GIT_CONF_OPTS += --without-expat endif ifeq ($(BR2_PACKAGE_LIBICONV),y) GIT_DEPENDENCIES += libiconv GIT_CONF_ENV_LIBS += -liconv GIT_CONF_OPTS += --with-iconv=/usr/lib else GIT_CONF_OPTS += --without-iconv endif ifeq ($(BR2_PACKAGE_TCL),y) GIT_DEPENDENCIES += tcl GIT_CONF_OPTS += --with-tcltk else GIT_CONF_OPTS += --without-tcltk endif ifeq ($(BR2_SYSTEM_ENABLE_NLS),) GIT_MAKE_OPTS += NO_GETTEXT=1 endif GIT_CFLAGS = $(TARGET_CFLAGS) ifneq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180)$(BR2_TOOLCHAIN_HAS_GCC_BUG_93847),) GIT_CFLAGS += -O0 endif GIT_CONF_OPTS += CFLAGS="$(GIT_CFLAGS)" GIT_INSTALL_TARGET_OPTS = $(GIT_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install # assume yes for these tests, configure will bail out otherwise # saying error: cannot run test program while cross compiling GIT_CONF_ENV += \ ac_cv_fread_reads_directories=yes \ ac_cv_snprintf_returns_bogus=yes LIBS='$(GIT_CONF_ENV_LIBS)' $(eval $(autotools-package)) ================================================ FILE: package/git-crypt/Config.in ================================================ config BR2_PACKAGE_GIT_CRYPT bool "git-crypt" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr depends on BR2_USE_MMU # git select BR2_PACKAGE_GIT # runtime select BR2_PACKAGE_OPENSSL help git-crypt enables transparent encryption and decryption of files in a git repository. https://www.agwa.name/projects/git-crypt/ comment "git-crypt needs a toolchain w/ C++, gcc >= 4.9" depends on !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_USE_MMU comment "git-crypt needs a toolchain not affected by GCC bug 64735" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/git-crypt/git-crypt.hash ================================================ # Locally calculated after checking pgp signature sha256 6d30fcd99442d50f4b3c8d554067ff1d980cdf9f3120ee774131172dba98fd6f git-crypt-0.6.0.tar.gz # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING sha256 506657e7a381165550e6c33e35b3b03bbef3e1feb68ba5529e264bd75ed2dc64 parse_options.hpp ================================================ FILE: package/git-crypt/git-crypt.mk ================================================ ################################################################################ # # git-crypt # ################################################################################ GIT_CRYPT_VERSION = 0.6.0 GIT_CRYPT_SITE = https://www.agwa.name/projects/git-crypt/downloads GIT_CRYPT_DEPENDENCIES = host-pkgconf openssl GIT_CRYPT_LICENSE = GPL-3.0+, MIT GIT_CRYPT_LICENSE_FILES = COPYING parse_options.hpp GIT_CRYPT_LIBS = `$(PKG_CONFIG_HOST_BINARY) --libs openssl` define GIT_CRYPT_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) \ LDFLAGS="$(TARGET_LDFLAGS) $(GIT_CRYPT_LIBS)" \ CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" PREFIX=/usr endef define GIT_CRYPT_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) \ PREFIX=/usr install endef $(eval $(generic-package)) ================================================ FILE: package/gkrellm/Config.in ================================================ config BR2_PACKAGE_GKRELLM bool "gkrellm" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_GKRELLM_SERVER if !BR2_PACKAGE_GKRELLM_CLIENT select BR2_PACKAGE_LIBGLIB2 help GKrellM is a single process stack of system monitors which supports applying themes to match its appearance to your window manager, Gtk, or any other theme. http://gkrellm.srcbox.net/ if BR2_PACKAGE_GKRELLM config BR2_PACKAGE_GKRELLM_SERVER bool "server" help Enable gkrellm server. config BR2_PACKAGE_GKRELLM_CLIENT bool "client" depends on BR2_PACKAGE_XORG7 # libgtk2 depends on BR2_INSTALL_LIBSTDCPP # libgtk2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # libgtk2 select BR2_PACKAGE_LIBGTK2 select BR2_PACKAGE_XLIB_LIBSM help Enable gkrellm client. comment "client needs a toolchain w/ C++, gcc >= 4.8" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_PACKAGE_XORG7 depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 endif # BR2_PACKAGE_GKRELLM comment "gkrellm needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/gkrellm/gkrellm.hash ================================================ # Locally computed sha256 1ee0643ed9ed99f88c1504c89d9ccb20780cf29319c904b68e80a8e7c8678c06 gkrellm-2.3.11.tar.bz2 sha256 691de85c3c6eeda5b6982c751548575344739ce4b4418d78905e599359f6c435 COPYING sha256 b81e0c0c3fb2a58f25377388484a1f729abb367f5f2b43e335a6ed3272ce8536 COPYRIGHT ================================================ FILE: package/gkrellm/gkrellm.mk ================================================ ################################################################################ # # gkrellm # ################################################################################ GKRELLM_VERSION = 2.3.11 GKRELLM_SITE = http://gkrellm.srcbox.net/releases GKRELLM_SOURCE = gkrellm-$(GKRELLM_VERSION).tar.bz2 GKRELLM_LICENSE = GPL-3.0+ GKRELLM_LICENSE_FILES = COPYING COPYRIGHT GKRELLM_DEPENDENCIES = host-pkgconf libglib2 $(TARGET_NLS_DEPENDENCIES) GKRELLM_BUILD_OPTS = \ STRIP="" \ SYS_LIBS=$(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_LM_SENSORS),y) GKRELLM_DEPENDENCIES += lm-sensors else GKRELLM_BUILD_OPTS += without-libsensors=yes endif ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) GKRELLM_BUILD_OPTS += enable_nls=1 else GKRELLM_BUILD_OPTS += enable_nls=0 endif ifeq ($(BR2_PACKAGE_GKRELLM_SERVER)$(BR2_PACKAGE_GKRELLM_CLIENT),yy) GKRELLM_BUILD_DIR = $(@D) else ifeq ($(BR2_PACKAGE_GKRELLM_SERVER),y) GKRELLM_BUILD_DIR = $(@D)/server else GKRELLM_BUILD_DIR = $(@D)/src endif ifeq ($(BR2_PACKAGE_GKRELLM_CLIENT),y) GKRELLM_DEPENDENCIES += libgtk2 xlib_libSM GKRELLM_BUILD_OPTS += X11_LIBS="-lX11 -lSM -lICE" GKRELLM_LICENSE += GPL (base64.c), Public Domain (md5.h, md5c.c) endif define GKRELLM_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) \ -C $(GKRELLM_BUILD_DIR) $(GKRELLM_BUILD_OPTS) endef define GKRELLM_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) \ -C $(GKRELLM_BUILD_DIR) $(GKRELLM_BUILD_OPTS) \ INSTALLROOT=$(TARGET_DIR)/usr install endef $(eval $(generic-package)) ================================================ FILE: package/gli/0001-Optional-building-tests.patch ================================================ From 629fc81ce73114a5925484937df796467adbe8c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pereira?= Date: Fri, 22 Mar 2019 22:58:17 +0000 Subject: [PATCH] Optional building tests [Retrieved from: https://github.com/g-truc/gli/commit/629fc81ce73114a5925484937df796467adbe8c7] Signed-off-by: Fabrice Fontaine --- CMakeLists.txt | 1 + test/CMakeLists.txt | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6eb1a68b..bcff7ef0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,7 @@ include(GNUInstallDirs) include(CMakePackageConfigHelpers) enable_testing() +option(GLI_TEST_ENABLE "Build unit tests" ON) add_definitions(-D_CRT_SECURE_NO_WARNINGS) add_definitions(-DSOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6b1d4826..e51a3181 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -19,10 +19,12 @@ function(glmCreateTestGTC NAME) set(SAMPLE_NAME test-${NAME}) add_executable(${SAMPLE_NAME} ${NAME}.cpp) target_link_libraries(${SAMPLE_NAME} gli) - add_test( + add_test( NAME ${SAMPLE_NAME} COMMAND $ ) endfunction() -add_subdirectory(bug) -add_subdirectory(core) +if(GLI_TEST_ENABLE) + add_subdirectory(bug) + add_subdirectory(core) +endif() ================================================ FILE: package/gli/Config.in ================================================ config BR2_PACKAGE_GLI bool "gli" depends on BR2_INSTALL_LIBSTDCPP help OpenGL Image (GLI) http://gli.g-truc.net comment "gli needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/gli/gli.hash ================================================ # Locally calculated sha256 9374f3cf6441dac0154f7e5ae9ad9ae99f4c4a36f8eb6de23f54a1996b9f2769 gli-559cbe1ec38878e182507d331e0780fbae5baf15.tar.gz sha256 e26459f62353e631d18379668c82b85f9fd2fd993f2818277e4fce21e957f87a manual.md ================================================ FILE: package/gli/gli.mk ================================================ ################################################################################ # # gli # ################################################################################ GLI_VERSION = 559cbe1ec38878e182507d331e0780fbae5baf15 GLI_SITE = $(call github,g-truc,gli,$(GLI_VERSION)) GLI_LICENSE = MIT GLI_LICENSE_FILES = manual.md # GLI is a header-only library, it only makes sense # to have it installed into the staging directory. GLI_INSTALL_STAGING = YES GLI_INSTALL_TARGET = NO GLI_CONF_OPTS = -DGLI_TEST_ENABLE=OFF $(eval $(cmake-package)) ================================================ FILE: package/glib-networking/Config.in ================================================ config BR2_PACKAGE_GLIB_NETWORKING bool "glib-networking" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_GNUTLS help Network-related GIO modules for glib. https://gitlab.gnome.org/GNOME/glib-networking comment "glib-networking 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 ================================================ FILE: package/glib-networking/glib-networking.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/glib-networking/2.66/glib-networking-2.66.0.sha256sum sha256 c5d7be2437fdd196eebfb70c4517b96d3ba7ec13bd496318b8f02dea383e0099 glib-networking-2.66.0.tar.xz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/glib-networking/glib-networking.mk ================================================ ################################################################################ # # glib-networking # ################################################################################ GLIB_NETWORKING_VERSION_MAJOR = 2.66 GLIB_NETWORKING_VERSION = $(GLIB_NETWORKING_VERSION_MAJOR).0 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 GLIB_NETWORKING_DEPENDENCIES = \ $(TARGET_NLS_DEPENDENCIES) \ host-pkgconf \ libglib2 GLIB_NETWORKING_CONF_OPTS = \ -Dlibproxy=disabled \ -Dgnome_proxy=disabled GLIB_NETWORKING_LICENSE = LGPL-2.0+ GLIB_NETWORKING_LICENSE_FILES = COPYING GLIB_NETWORKING_CPE_ID_VENDOR = gnome GLIB_NETWORKING_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) \ GIO_MODULE_DIR=/usr/lib/gio/modules install ifeq ($(BR2_PACKAGE_GNUTLS),y) GLIB_NETWORKING_DEPENDENCIES += gnutls GLIB_NETWORKING_CONF_OPTS += -Dgnutls=enabled else GLIB_NETWORKING_CONF_OPTS += -Dgnutls=disabled endif ifeq ($(BR2_PACKAGE_OPENSSL),y) GLIB_NETWORKING_DEPENDENCIES += openssl GLIB_NETWORKING_CONF_OPTS += -Dopenssl=enabled else GLIB_NETWORKING_CONF_OPTS += -Dopenssl=disabled endif $(eval $(meson-package)) ================================================ FILE: package/glibc/2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/glibc.hash ================================================ # Locally calculated (fetched from Github) sha256 1c7ed0f69ed268bd66f9754d0cb8fb65e0dafc1f9a1048ea50d1e96d60399686 glibc-2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4.tar.gz # Hashes for license files sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB sha256 b33d0bd9f685b46853548814893a6135e74430d12f6d94ab3eba42fc591f83bc LICENSES ================================================ FILE: package/glibc/Config.in ================================================ if BR2_TOOLCHAIN_BUILDROOT_GLIBC comment "Glibc Options" config BR2_PACKAGE_GLIBC bool default y select BR2_PACKAGE_LINUX_HEADERS select BR2_TOOLCHAIN_HAS_SSP if BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI help https://www.gnu.org/software/libc/ config BR2_PACKAGE_GLIBC_UTILS bool "Install glibc utilities" help Enabling this option will compile and install the getconf, ldconfig, ldd and locale glibc utilities for the target. endif # BR2_TOOLCHAIN_BUILDROOT_GLIBC ================================================ FILE: package/glibc/glibc.hash ================================================ # This hash file is not used; instead, update the # hash files in the per-version sub-directories. ================================================ FILE: package/glibc/glibc.mk ================================================ ################################################################################ # # glibc # ################################################################################ # Generate version string using: # git describe --match 'glibc-*' --abbrev=40 origin/release/MAJOR.MINOR/master | cut -d '-' -f 2- # When updating the version, please also update localedef GLIBC_VERSION = 2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4 # Upstream doesn't officially provide an https download link. # There is one (https://sourceware.org/git/glibc.git) but it's not reliable, # sometimes the connection times out. So use an unofficial github mirror. # When updating the version, check it on the official repository; # *NEVER* decide on a version string by looking at the mirror. # Then check that the mirror has been synced already (happens once a day.) GLIBC_SITE = $(call github,bminor,glibc,$(GLIBC_VERSION)) GLIBC_LICENSE = GPL-2.0+ (programs), LGPL-2.1+, BSD-3-Clause, MIT (library) GLIBC_LICENSE_FILES = COPYING COPYING.LIB LICENSES GLIBC_CPE_ID_VENDOR = gnu # glibc is part of the toolchain so disable the toolchain dependency GLIBC_ADD_TOOLCHAIN_DEPENDENCY = NO # Before glibc is configured, we must have the first stage # cross-compiler and the kernel headers GLIBC_DEPENDENCIES = host-gcc-initial linux-headers host-bison host-gawk \ $(BR2_MAKE_HOST_DEPENDENCY) $(BR2_PYTHON3_HOST_DEPENDENCY) GLIBC_SUBDIR = build GLIBC_INSTALL_STAGING = YES GLIBC_INSTALL_STAGING_OPTS = install_root=$(STAGING_DIR) install # Thumb build is broken, build in ARM mode ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y) GLIBC_EXTRA_CFLAGS += -marm endif # MIPS64 defaults to n32 so pass the correct -mabi if # we are using a different ABI. OABI32 is also used # in MIPS so we pass -mabi=32 in this case as well # even though it's not strictly necessary. ifeq ($(BR2_MIPS_NABI64),y) GLIBC_EXTRA_CFLAGS += -mabi=64 else ifeq ($(BR2_MIPS_OABI32),y) GLIBC_EXTRA_CFLAGS += -mabi=32 endif ifeq ($(BR2_ENABLE_DEBUG),y) GLIBC_EXTRA_CFLAGS += -g endif # The stubs.h header is not installed by install-headers, but is # needed for the gcc build. An empty stubs.h will work, as explained # in http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html. The same trick # is used by Crosstool-NG. ifeq ($(BR2_TOOLCHAIN_BUILDROOT_GLIBC),y) define GLIBC_ADD_MISSING_STUB_H mkdir -p $(STAGING_DIR)/usr/include/gnu touch $(STAGING_DIR)/usr/include/gnu/stubs.h endef endif GLIBC_CONF_ENV = \ ac_cv_path_BASH_SHELL=/bin/$(if $(BR2_PACKAGE_BASH),bash,sh) \ libc_cv_forced_unwind=yes \ libc_cv_ssp=no # POSIX shell does not support localization, so remove the corresponding # syntax from ldd if bash is not selected. ifeq ($(BR2_PACKAGE_BASH),) define GLIBC_LDD_NO_BASH $(SED) 's/$$"/"/g' $(@D)/elf/ldd.bash.in endef GLIBC_POST_PATCH_HOOKS += GLIBC_LDD_NO_BASH endif # Override the default library locations of /lib64/ and # /usr/lib64// for RISC-V. ifeq ($(BR2_riscv),y) ifeq ($(BR2_RISCV_64),y) GLIBC_CONF_ENV += libc_cv_slibdir=/lib64 libc_cv_rtlddir=/lib else GLIBC_CONF_ENV += libc_cv_slibdir=/lib32 libc_cv_rtlddir=/lib endif endif # glibc requires make >= 4.0 since 2.28 release. # https://www.sourceware.org/ml/libc-alpha/2018-08/msg00003.html GLIBC_MAKE = $(BR2_MAKE) GLIBC_CONF_ENV += ac_cv_prog_MAKE="$(BR2_MAKE)" # Even though we use the autotools-package infrastructure, we have to # override the default configure commands for several reasons: # # 1. We have to build out-of-tree, but we can't use the same # 'symbolic link to configure' used with the gcc packages. # # 2. We have to execute the configure script with bash and not sh. # # Note that as mentionned in # 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 # Do the configuration (cd $(@D)/build; \ $(TARGET_CONFIGURE_OPTS) \ CFLAGS="-O2 $(GLIBC_EXTRA_CFLAGS)" CPPFLAGS="" \ CXXFLAGS="-O2 $(GLIBC_EXTRA_CFLAGS)" \ $(GLIBC_CONF_ENV) \ $(SHELL) $(@D)/configure \ --target=$(GNU_TARGET_NAME) \ --host=$(GNU_TARGET_NAME) \ --build=$(GNU_HOST_NAME) \ --prefix=/usr \ --enable-shared \ $(if $(BR2_x86_64),--enable-lock-elision) \ --with-pkgversion="Buildroot" \ --disable-profile \ --disable-werror \ --without-gd \ --enable-kernel=$(call qstrip,$(BR2_TOOLCHAIN_HEADERS_AT_LEAST)) \ --with-headers=$(STAGING_DIR)/usr/include) $(GLIBC_ADD_MISSING_STUB_H) endef # # We also override the install to target commands since we only want # to install the libraries, and nothing more. # GLIBC_LIBS_LIB = \ ld*.so.* libanl.so.* libc.so.* libcrypt.so.* libdl.so.* libgcc_s.so.* \ libm.so.* libpthread.so.* libresolv.so.* librt.so.* \ libutil.so.* libnss_files.so.* libnss_dns.so.* libmvec.so.* ifeq ($(BR2_PACKAGE_GDB),y) GLIBC_LIBS_LIB += libthread_db.so.* endif ifeq ($(BR2_PACKAGE_GLIBC_UTILS),y) GLIBC_TARGET_UTILS_USR_BIN = posix/getconf elf/ldd GLIBC_TARGET_UTILS_SBIN = elf/ldconfig ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) GLIBC_TARGET_UTILS_USR_BIN += locale/locale endif endif define GLIBC_INSTALL_TARGET_CMDS for libpattern in $(GLIBC_LIBS_LIB); do \ $(call copy_toolchain_lib_root,$$libpattern) ; \ done $(foreach util,$(GLIBC_TARGET_UTILS_USR_BIN), \ $(INSTALL) -D -m 0755 $(@D)/build/$(util) $(TARGET_DIR)/usr/bin/$(notdir $(util)) ) $(foreach util,$(GLIBC_TARGET_UTILS_SBIN), \ $(INSTALL) -D -m 0755 $(@D)/build/$(util) $(TARGET_DIR)/sbin/$(notdir $(util)) ) endef $(eval $(autotools-package)) ================================================ FILE: package/glibc/nsswitch.conf ================================================ # /etc/nsswitch.conf passwd: files group: files shadow: files hosts: files dns networks: files dns protocols: files services: files ethers: files rpc: files ================================================ FILE: package/glibmm/Config.in ================================================ config BR2_PACKAGE_GLIBMM bool "glibmm" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # regex_replace depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBSIGC help The GLibmm package is a set of C++ bindings for GLib. http://www.gtkmm.org/ comment "glibmm needs a toolchain w/ C++, wchar, threads, gcc >= 4.9" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_USE_WCHAR \ || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/glibmm/glibmm.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/glibmm/2.66/glibmm-2.66.0.sha256sum sha256 9e1db7d43d2e2d4dfa2771354e21a69a6beec7c446b711619cf8c779e13a581e glibmm-2.66.0.tar.xz # License files, locally calculated sha256 3ea7fa7c5d9a3a113e950eca9cfb85107f096270d8e4dd99daa9d8abdebc60e7 COPYING sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING.tools ================================================ FILE: package/glibmm/glibmm.mk ================================================ ################################################################################ # # glibmm # ################################################################################ GLIBMM_VERSION_MAJOR = 2.66 GLIBMM_VERSION = $(GLIBMM_VERSION_MAJOR).0 GLIBMM_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (tools) GLIBMM_LICENSE_FILES = COPYING COPYING.tools GLIBMM_SOURCE = glibmm-$(GLIBMM_VERSION).tar.xz GLIBMM_SITE = http://ftp.gnome.org/pub/gnome/sources/glibmm/$(GLIBMM_VERSION_MAJOR) GLIBMM_INSTALL_STAGING = YES GLIBMM_DEPENDENCIES = libglib2 libsigc host-pkgconf GLIBMM_CONF_OPTS = -Dbuild-examples=false GLIBMM_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) GLIBMM_CXXFLAGS += -O0 endif $(eval $(meson-package)) ================================================ FILE: package/glm/Config.in ================================================ config BR2_PACKAGE_GLM bool "glm" depends on BR2_INSTALL_LIBSTDCPP help OpenGL Mathematics (GLM) http://glm.g-truc.net comment "glm needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/glm/glm.hash ================================================ # Locally calculated sha256 5e33b6131cea6a904339734b015110d4342b7dc02d995164fdb86332d28a5aa4 glm-0.9.9.5.tar.gz sha256 337130631a714eeae017556cad101d5324c2961214120b6214741d3d43667086 manual.md ================================================ FILE: package/glm/glm.mk ================================================ ################################################################################ # # glm # ################################################################################ GLM_VERSION = 0.9.9.5 GLM_SITE = $(call github,g-truc,glm,$(GLM_VERSION)) GLM_LICENSE = MIT GLM_LICENSE_FILES = manual.md # GLM is a header-only library, it only makes sense # to have it installed into the staging directory. GLM_INSTALL_STAGING = YES GLM_INSTALL_TARGET = NO # Don't build libraries as GLM is header-only GLM_CONF_OPTS = \ -DGLM_TEST_ENABLE=OFF \ -DBUILD_SHARED_LIBS=OFF \ -DBUILD_STATIC_LIBS=OFF $(eval $(cmake-package)) ================================================ FILE: package/glmark2/0001-wscript-use-find_program-to-find-wayland-scanner.patch ================================================ From 303d5c4fef1760ede5786bc62c7012dd7ae93722 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 8 Nov 2020 23:46:49 +0100 Subject: [PATCH] wscript: use find_program to find wayland-scanner Use find_program instead of check_cfg to find wayland-scanner. This will fix the following build failure when cross-compiling: [ 3/73] Compiling doc/glmark2.1.in /bin/sh: 1: /usr/bin/wayland-scanner: not found Fixes: - http://autobuild.buildroot.org/results//361dc40e558e2646cb93f405c7b1f621d400fea3 Signed-off-by: Fabrice Fontaine --- src/wscript_build | 2 +- wscript | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/wscript_build b/src/wscript_build index bbe7a77..ed3e8d6 100644 --- a/src/wscript_build +++ b/src/wscript_build @@ -51,7 +51,7 @@ else: if 'WAYLAND_SCANNER_wayland_scanner' in bld.env.keys(): def wayland_scanner_cmd(arg, src): - return '%s %s < %s > ${TGT}' % (bld.env['WAYLAND_SCANNER_wayland_scanner'], arg, src) + return '%s %s < %s > ${TGT}' % (bld.env['WAYLAND_SCANNER_wayland_scanner'][0], arg, src) def wayland_proto_src_path(proto, ver): wp_dir = bld.env['WAYLAND_PROTOCOLS_pkgdatadir'] diff --git a/wscript b/wscript index e09fa78..fe2494f 100644 --- a/wscript +++ b/wscript @@ -227,8 +227,7 @@ def configure_linux(ctx): # wayland-protocols >= 1.12 required for xdg-shell stable ctx.check_cfg(package = 'wayland-protocols', atleast_version = '1.12', variables = ['pkgdatadir'], uselib_store = 'WAYLAND_PROTOCOLS') - ctx.check_cfg(package = 'wayland-scanner', variables = ['wayland_scanner'], - uselib_store = 'WAYLAND_SCANNER') + ctx.find_program('wayland-scanner', var = 'WAYLAND_SCANNER_wayland_scanner') # Prepend CXX flags so that they can be overriden by the # CXXFLAGS environment variable -- 2.28.0 ================================================ FILE: package/glmark2/Config.in ================================================ config BR2_PACKAGE_GLMARK2_FLAVOR_ANY bool config BR2_PACKAGE_GLMARK2_FLAVOR_DRM_GLESV2 bool default y depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBGBM depends on BR2_PACKAGE_HAS_LIBGLES depends on BR2_PACKAGE_HAS_UDEV depends on BR2_TOOLCHAIN_HAS_THREADS # libpthread-stubs -> libdrm select BR2_PACKAGE_GLMARK2_FLAVOR_ANY config BR2_PACKAGE_GLMARK2_FLAVOR_DRM_GL bool default y depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBGL depends on BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_GLMARK2_FLAVOR_ANY config BR2_PACKAGE_GLMARK2_FLAVOR_WAYLAND_GLESV2 bool default y depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBGLES depends on BR2_PACKAGE_WAYLAND select BR2_PACKAGE_GLMARK2_FLAVOR_ANY config BR2_PACKAGE_GLMARK2_FLAVOR_WAYLAND_GL bool default y depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBGL depends on BR2_PACKAGE_WAYLAND select BR2_PACKAGE_GLMARK2_FLAVOR_ANY config BR2_PACKAGE_GLMARK2_FLAVOR_X11_GLESV2 bool default y depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBGLES depends on BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_GLMARK2_FLAVOR_ANY config BR2_PACKAGE_GLMARK2_FLAVOR_X11_GL bool default y depends on BR2_PACKAGE_HAS_LIBGL depends on BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_GLMARK2_FLAVOR_ANY comment "glmark2 needs a toolchain w/ C++, gcc >= 4.9" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 comment "glmark2 needs an OpenGL or an openGL ES and EGL backend" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 && BR2_INSTALL_LIBSTDCPP depends on !BR2_PACKAGE_GLMARK2_FLAVOR_ANY config BR2_PACKAGE_GLMARK2 bool "glmark2" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14 depends on BR2_PACKAGE_GLMARK2_FLAVOR_ANY select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_GLMARK2_FLAVOR_DRM_GLESV2 select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_WAYLAND_PROTOCOLS if BR2_PACKAGE_GLMARK2_FLAVOR_WAYLAND_GL select BR2_PACKAGE_WAYLAND_PROTOCOLS if BR2_PACKAGE_GLMARK2_FLAVOR_WAYLAND_GLESV2 help glmark2 is an OpenGL 2.0 and ES 2.0 benchmark. https://github.com/glmark2/glmark2 ================================================ FILE: package/glmark2/glmark2.hash ================================================ # Locally computed sha256 12aef3ce80406bc723542979b9818886a28d0a4c93f62379eaadfd830974790d glmark2-06e78b67702b5413335ecdf1ae816da9c20f6ed9.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING sha256 16fbc228292bd774b263b212ae422c524cbf3b2078bcf21b22f8bdd4373be617 COPYING.SGI ================================================ FILE: package/glmark2/glmark2.mk ================================================ ################################################################################ # # glmark2 # ################################################################################ GLMARK2_VERSION = 06e78b67702b5413335ecdf1ae816da9c20f6ed9 GLMARK2_SITE = $(call github,glmark2,glmark2,$(GLMARK2_VERSION)) GLMARK2_LICENSE = GPL-3.0+, SGIv1 GLMARK2_LICENSE_FILES = COPYING COPYING.SGI GLMARK2_DEPENDENCIES = host-pkgconf jpeg libegl libpng ifeq ($(BR2_PACKAGE_GLMARK2_FLAVOR_DRM_GLESV2),y) GLMARK2_DEPENDENCIES += libdrm libgbm libgles udev GLMARK2_FLAVORS += drm-glesv2 endif ifeq ($(BR2_PACKAGE_GLMARK2_FLAVOR_DRM_GL),y) GLMARK2_DEPENDENCIES += libgl udev GLMARK2_FLAVORS += drm-gl endif ifeq ($(BR2_PACKAGE_GLMARK2_FLAVOR_X11_GLESV2),y) GLMARK2_DEPENDENCIES += libgles xlib_libX11 GLMARK2_FLAVORS += x11-glesv2 endif ifeq ($(BR2_PACKAGE_GLMARK2_FLAVOR_X11_GL),y) GLMARK2_DEPENDENCIES += libgl xlib_libX11 GLMARK2_FLAVORS += x11-gl endif ifeq ($(BR2_PACKAGE_GLMARK2_FLAVOR_WAYLAND_GLESV2),y) GLMARK2_DEPENDENCIES += libgles wayland wayland-protocols GLMARK2_FLAVORS += wayland-glesv2 endif ifeq ($(BR2_PACKAGE_GLMARK2_FLAVOR_WAYLAND_GL),y) GLMARK2_DEPENDENCIES += libgl wayland wayland-protocols GLMARK2_FLAVORS += wayland-gl endif GLMARK2_CONF_OPTS += \ --prefix=/usr \ --with-flavors=$(subst $(space),$(comma),$(GLMARK2_FLAVORS)) $(eval $(waf-package)) ================================================ FILE: package/glog/0001-src-symbolize.cc-fix-build-without-dlfcn.h.patch ================================================ From f71e0899439aaa0e6172243a0862bf8a72a241fc Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 28 Oct 2019 18:21:55 +0100 Subject: [PATCH] src/symbolize.cc: fix build without dlfcn.h Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/google/glog/pull/475] --- src/symbolize.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/symbolize.cc b/src/symbolize.cc index 1ffc607..ff027f2 100644 --- a/src/symbolize.cc +++ b/src/symbolize.cc @@ -110,7 +110,9 @@ _END_GOOGLE_NAMESPACE_ #if defined(__ELF__) +#if defined(HAVE_DLFCN_H) #include +#endif #if defined(OS_OPENBSD) #include #else @@ -832,7 +834,7 @@ static ATTRIBUTE_NOINLINE bool SymbolizeAndDemangle(void *pc, char *out, _END_GOOGLE_NAMESPACE_ -#elif defined(OS_MACOSX) && defined(HAVE_DLADDR) +#elif defined(OS_MACOSX) && defined(HAVE_DLADDR) && defined(HAVE_DLFCN_H) #include #include -- 2.23.0 ================================================ FILE: package/glog/0002-src-utilities-fix-build-without-pthread.patch ================================================ From 9630e0e848da22e27b346c38d9b05f0a16cbf7b3 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 31 Oct 2019 19:27:16 +0100 Subject: [PATCH] src/utilities: fix build without pthread - Remove is_default_thread function which is an internal and not used function - Remove g_main_thread_id as it was used only by is_default_thread Fixes: - http://autobuild.buildroot.net/results/5320bbe1205e782e3516d9bead8d1ed825bcbaad Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/google/glog/commit/9630e0e848da22e27b346c38d9b05f0a16cbf7b3] --- src/utilities.cc | 16 +++------------- src/utilities.h | 2 -- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/src/utilities.cc b/src/utilities.cc index d463b33b..9a1e35d0 100644 --- a/src/utilities.cc +++ b/src/utilities.cc @@ -61,7 +61,6 @@ using std::string; _START_GOOGLE_NAMESPACE_ static const char* g_program_invocation_short_name = NULL; -static pthread_t g_main_thread_id; _END_GOOGLE_NAMESPACE_ @@ -181,16 +180,6 @@ bool IsGoogleLoggingInitialized() { return g_program_invocation_short_name != NULL; } -bool is_default_thread() { - if (g_program_invocation_short_name == NULL) { - // InitGoogleLogging() not yet called, so unlikely to be in a different - // thread - return true; - } else { - return pthread_equal(pthread_self(), g_main_thread_id); - } -} - #ifdef OS_WINDOWS struct timeval { long tv_sec, tv_usec; @@ -276,9 +265,11 @@ pid_t GetTID() { return getpid(); // Linux: getpid returns thread ID when gettid is absent #elif defined OS_WINDOWS && !defined OS_CYGWIN return GetCurrentThreadId(); -#else +#elif defined(HAVE_PTHREAD) // If none of the techniques above worked, we use pthread_self(). return (pid_t)(uintptr_t)pthread_self(); +#else + return -1; #endif } @@ -350,7 +341,6 @@ void InitGoogleLoggingUtilities(const char* argv0) { if (!slash) slash = strrchr(argv0, '\\'); #endif g_program_invocation_short_name = slash ? slash + 1 : argv0; - g_main_thread_id = pthread_self(); #ifdef HAVE_STACKTRACE InstallFailureFunction(&DumpStackTraceAndExit); diff --git a/src/utilities.h b/src/utilities.h index ca21cfb3..c66f9146 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -163,8 +163,6 @@ const char* ProgramInvocationShortName(); bool IsGoogleLoggingInitialized(); -bool is_default_thread(); - int64 CycleClock_Now(); int64 UsecToCycles(int64 usec); ================================================ FILE: package/glog/Config.in ================================================ config BR2_PACKAGE_GLOG bool "glog" # __ELF__ not defined on Microblaze depends on !BR2_microblaze depends on BR2_INSTALL_LIBSTDCPP help C++ implementation of the Google logging module https://github.com/google/glog comment "glog needs a toolchain w/ C++" depends on !BR2_microblaze depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/glog/glog.hash ================================================ # Locally computed sha256 f28359aeba12f30d73d9e4711ef356dc842886968112162bc73002645139c39c glog-0.4.0.tar.gz # Hash for License file: sha256 0fc497129c5c69ff6f22da6933c7e4aaef082fde8437fd57680c2780100772a4 COPYING ================================================ FILE: package/glog/glog.mk ================================================ ################################################################################ # # glog # ################################################################################ GLOG_VERSION = 0.4.0 GLOG_SITE = $(call github,google,glog,v$(GLOG_VERSION)) GLOG_INSTALL_STAGING = YES GLOG_LICENSE = BSD-3-Clause GLOG_LICENSE_FILES = COPYING GLOG_CONF_OPTS = \ $(if $(BR2_TOOLCHAIN_HAS_THREADS),-DWITH_THREADS=ON, -DWITH_THREADS=OFF) ifeq ($(BR2_PACKAGE_GFLAGS),y) GLOG_DEPENDENCIES += gflags GLOG_CONF_OPTS += -DWITH_GFLAGS=ON else GLOG_CONF_OPTS += -DWITH_GFLAGS=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/gloox/0001-src-connectiontcpserver-cpp-fix-musl.patch ================================================ src/connectiontcpserver.cpp: fix musl build Build on musl fails on: connectiontcpserver.cpp:131:13: error: 'strerror' was not declared in this scope + strerror( err ) + " (errno: " + util::int2string( err ) + ")"; ^~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/a61a91bb6e1156eff5fb756f9dccfc2bb6c0f277 Signed-off-by: Fabrice Fontaine [Upstream status: https://bugs.camaya.net/ticket/?id=291] diff -Nuar gloox-1.0.23-orig/src/connectiontcpserver.cpp gloox-1.0.23/src/connectiontcpserver.cpp --- gloox-1.0.23-orig/src/connectiontcpserver.cpp 2020-06-05 23:22:59.624018949 +0200 +++ gloox-1.0.23/src/connectiontcpserver.cpp 2020-06-05 23:26:20.708027221 +0200 @@ -36,6 +36,7 @@ # include # include # include +# include # include # include # include ================================================ FILE: package/gloox/Config.in ================================================ config BR2_PACKAGE_GLOOX bool "gloox" depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_MPC help gloox is a portable high-level Jabber/XMPP library for C++. It is fully compliant with the XMPP RFCs, supports all of the XMPP features (including SRV lookups, TLS, SASL, roster management, and privacy lists), and implements several XEPs that make it ideal for writing any kind of Jabber/XMPP client or component. https://camaya.net/gloox/ comment "gloox needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/gloox/gloox.hash ================================================ # Locally calculated sha256 ae1462be2a2eb8fe5cd054825143617c53c2c9c7195606cb5a5ba68c0f68f9c9 gloox-1.0.24.tar.bz2 sha256 40a20c41c8dabb8ba61bea983fa8f2f6989e67fac56bb62c2249053807fd26af LICENSE ================================================ FILE: package/gloox/gloox.mk ================================================ ################################################################################ # # gloox # ################################################################################ GLOOX_VERSION = 1.0.24 GLOOX_SOURCE = gloox-$(GLOOX_VERSION).tar.bz2 GLOOX_SITE = https://camaya.net/download GLOOX_LICENSE = GPL-3.0 with OpenSSL exception GLOOX_LICENSE_FILES = LICENSE GLOOX_INSTALL_STAGING = YES GLOOX_DEPENDENCIES = mpc GLOOX_CONF_OPTS = \ --without-libidn \ --enable-getaddrinfo \ --without-examples \ --without-tests GLOOX_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) GLOOX_CXXFLAGS += -O0 endif GLOOX_CONF_ENV += CXXFLAGS="$(GLOOX_CXXFLAGS)" ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) GLOOX_CONF_ENV += LIBS=-latomic endif ifeq ($(BR2_PACKAGE_ZLIB),y) GLOOX_CONF_OPTS += --with-zlib GLOOX_DEPENDENCIES += zlib else GLOOX_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_OPENSSL),y) GLOOX_CONF_OPTS += --with-openssl --without-gnutls GLOOX_DEPENDENCIES += openssl else ifeq ($(BR2_PACKAGE_GNUTLS),y) GLOOX_CONF_OPTS += --with-gnutls --without-openssl GLOOX_DEPENDENCIES += gnutls else GLOOX_CONF_OPTS += --without-gnutls --without-openssl endif $(eval $(autotools-package)) ================================================ FILE: package/glorytun/Config.in ================================================ config BR2_PACKAGE_GLORYTUN bool "glorytun" select BR2_PACKAGE_LIBSODIUM help A small, simple and secure VPN. https://github.com/angt/glorytun ================================================ FILE: package/glorytun/glorytun.hash ================================================ sha256 137d9c525a05bb605163df0465367d36e943715ca773ce43d5ea66f0597600a3 glorytun-0.3.4.tar.gz sha256 3d9ddddb8807c305287d9dbab58473e5307e9c91651c43c654a0828855d2b373 LICENSE ================================================ FILE: package/glorytun/glorytun.mk ================================================ ################################################################################ # # glorytun # ################################################################################ GLORYTUN_VERSION = 0.3.4 GLORYTUN_SITE = https://github.com/angt/glorytun/releases/download/v$(GLORYTUN_VERSION) GLORYTUN_DEPENDENCIES = libsodium host-pkgconf GLORYTUN_LICENSE = BSD-2-Clause GLORYTUN_LICENSE_FILES = LICENSE $(eval $(autotools-package)) ================================================ FILE: package/glslsandbox-player/Config.in ================================================ config BR2_PACKAGE_GLSLSANDBOX_PLAYER bool "glslsandbox-player" depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBGLES # Doesn't really depend on threads, but this makes sure we have at least # one native windowing system available, and is good enough in practice. depends on BR2_TOOLCHAIN_HAS_THREADS help GLSL Sandbox standalone player allow one to run and render (most of) nice shaders available online on the http://glslsandbox.com/ website, but without the need of an Internet connection, a web browser or any of its dependencies. Instead, the only requirement of glslsandbox-player is a working EGL and GLESv2 libraries. This package is useful for stressing and testing GLES shader compiler in GPU drivers. https://github.com/jolivain/glslsandbox-player if BR2_PACKAGE_GLSLSANDBOX_PLAYER config BR2_PACKAGE_GLSLSANDBOX_PLAYER_PNG bool "Enable PNG support" select BR2_PACKAGE_LIBPNG help Enable PNG texture loading support config BR2_PACKAGE_GLSLSANDBOX_PLAYER_TESTING bool "Enable testing" help Generate and install test suite on target config BR2_PACKAGE_GLSLSANDBOX_PLAYER_SCRIPTS bool "Install scripts" depends on !BR2_PACKAGE_PYTHON # python3 depends on !BR2_STATIC_LIBS # python3 depends on BR2_TOOLCHAIN_HAS_THREADS # python3 depends on BR2_USE_MMU # bash, python3 depends on BR2_USE_WCHAR # python3 select BR2_PACKAGE_BASH # runtime select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS if BR2_PACKAGE_BUSYBOX # bash select BR2_PACKAGE_COREUTILS # runtime (timeout) select BR2_PACKAGE_LIBCURL_CURL # runtime select BR2_PACKAGE_IMAGEMAGICK # runtime select BR2_PACKAGE_JPEG # runtime select BR2_PACKAGE_LIBCURL # runtime select BR2_PACKAGE_LIBOPENSSL_BIN if BR2_PACKAGE_LIBOPENSSL # runtime select BR2_PACKAGE_LIBRESSL_BIN if BR2_PACKAGE_LIBRESSL # runtime select BR2_PACKAGE_MAKE # runtime select BR2_PACKAGE_OPENSSL # runtime select BR2_PACKAGE_PYTHON3 # runtime help Install additional helper scripts choice prompt "Native windowing system" default BR2_PACKAGE_GLSLSANDBOX_PLAYER_MALI if BR2_PACKAGE_SUNXI_MALI_MAINLINE default BR2_PACKAGE_GLSLSANDBOX_PLAYER_MALI_T76X if BR2_PACKAGE_MALI_T76X default BR2_PACKAGE_GLSLSANDBOX_PLAYER_RPI if BR2_PACKAGE_RPI_USERLAND default BR2_PACKAGE_GLSLSANDBOX_PLAYER_SDL2 if BR2_PACKAGE_SDL2_OPENGLES default BR2_PACKAGE_GLSLSANDBOX_PLAYER_TISGX if BR2_PACKAGE_TI_SGX_UM default BR2_PACKAGE_GLSLSANDBOX_PLAYER_VIVFB if BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB default BR2_PACKAGE_GLSLSANDBOX_PLAYER_WL if BR2_PACKAGE_WAYLAND default BR2_PACKAGE_GLSLSANDBOX_PLAYER_X11 if BR2_PACKAGE_XORG7 help Select the native windowing system you wish to use. config BR2_PACKAGE_GLSLSANDBOX_PLAYER_KMS bool "KMS/DRM/GBM" depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm select BR2_PACKAGE_LIBDRM config BR2_PACKAGE_GLSLSANDBOX_PLAYER_MALI bool "Allwinner ARM/Mali Frame Buffer" depends on BR2_PACKAGE_SUNXI_MALI_MAINLINE config BR2_PACKAGE_GLSLSANDBOX_PLAYER_MALI_T76X bool "ARM/Mali T76x Frame Buffer" depends on BR2_PACKAGE_MALI_T76X config BR2_PACKAGE_GLSLSANDBOX_PLAYER_RPI bool "RaspberryPI Frame Buffer" depends on BR2_PACKAGE_RPI_USERLAND config BR2_PACKAGE_GLSLSANDBOX_PLAYER_SDL2 bool "SDL2" depends on BR2_PACKAGE_SDL2_OPENGLES config BR2_PACKAGE_GLSLSANDBOX_PLAYER_TISGX bool "TI/SGX Frame Buffer" depends on BR2_PACKAGE_TI_SGX_UM config BR2_PACKAGE_GLSLSANDBOX_PLAYER_VIVFB bool "Vivante Frame Buffer" depends on BR2_PACKAGE_IMX_GPU_VIV config BR2_PACKAGE_GLSLSANDBOX_PLAYER_WL bool "Wayland" depends on BR2_PACKAGE_WAYLAND config BR2_PACKAGE_GLSLSANDBOX_PLAYER_X11 bool "X11" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBX11 endchoice if BR2_PACKAGE_GLSLSANDBOX_PLAYER_WL config BR2_PACKAGE_GLSLSANDBOX_PLAYER_WL_IVI bool "Wayland IVI shell support" endif endif comment "glslsandbox-player needs a toolchain w/ threads and an openGL ES and EGL driver" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_HAS_LIBGLES ================================================ FILE: package/glslsandbox-player/glslsandbox-player.hash ================================================ # Locally calculated sha256 b4af34889faa6d3a904e980f23aeb720dfb614d50aa01b9b1874fc2ae77dbcf4 glslsandbox-player-2021.08.24.tar.gz sha256 970d45d8a3dfd042d303008294f49db8c0c464f7687aa6e28a01b0926e74df85 LICENSE ================================================ FILE: package/glslsandbox-player/glslsandbox-player.mk ================================================ ################################################################################ # # glslsandbox-player # ################################################################################ GLSLSANDBOX_PLAYER_VERSION = 2021.08.24 GLSLSANDBOX_PLAYER_SITE = $(call github,jolivain,glslsandbox-player,v$(GLSLSANDBOX_PLAYER_VERSION)) GLSLSANDBOX_PLAYER_AUTORECONF = YES GLSLSANDBOX_PLAYER_DEPENDENCIES = libegl libgles host-pkgconf GLSLSANDBOX_PLAYER_LICENSE = BSD-2-Clause GLSLSANDBOX_PLAYER_LICENSE_FILES = LICENSE ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_PNG),y) GLSLSANDBOX_PLAYER_DEPENDENCIES += libpng GLSLSANDBOX_PLAYER_CONF_OPTS += --with-libpng else GLSLSANDBOX_PLAYER_CONF_OPTS += --without-libpng endif ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_TESTING),y) GLSLSANDBOX_PLAYER_CONF_OPTS += \ --with-shader-list=shader-tests.list \ --enable-testing \ --enable-install-testsuite else GLSLSANDBOX_PLAYER_CONF_OPTS += \ --with-shader-list=shader-local.list \ --disable-testing endif ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_SCRIPTS),y) GLSLSANDBOX_PLAYER_CONF_OPTS += --enable-install-scripts else GLSLSANDBOX_PLAYER_CONF_OPTS += --disable-install-scripts endif ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_KMS),y) # gbm dependency is not needed, as it is normally packaged with # libegl/libgles drivers. GLSLSANDBOX_PLAYER_DEPENDENCIES += libdrm GLSLSANDBOX_PLAYER_CONF_OPTS += --with-native-gfx=kms else ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_MALI),y) GLSLSANDBOX_PLAYER_DEPENDENCIES += sunxi-mali-mainline GLSLSANDBOX_PLAYER_CONF_OPTS += --with-native-gfx=mali else ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_MALI_T76X),y) GLSLSANDBOX_PLAYER_DEPENDENCIES += mali-t76x GLSLSANDBOX_PLAYER_CONF_OPTS += --with-native-gfx=nullws else ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_RPI),y) GLSLSANDBOX_PLAYER_DEPENDENCIES += rpi-userland GLSLSANDBOX_PLAYER_CONF_OPTS += --with-native-gfx=rpi else ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_SDL2),y) GLSLSANDBOX_PLAYER_DEPENDENCIES += sdl2 GLSLSANDBOX_PLAYER_CONF_OPTS += --with-native-gfx=sdl2 else ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_TISGX),y) GLSLSANDBOX_PLAYER_DEPENDENCIES += ti-sgx-um GLSLSANDBOX_PLAYER_CONF_OPTS += --with-native-gfx=tisgx else ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_VIVFB),y) GLSLSANDBOX_PLAYER_DEPENDENCIES += imx-gpu-viv GLSLSANDBOX_PLAYER_CONF_OPTS += --with-native-gfx=vivfb else ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_WL),y) GLSLSANDBOX_PLAYER_DEPENDENCIES += wayland GLSLSANDBOX_PLAYER_CONF_OPTS += --with-native-gfx=wl ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_WL_IVI),y) GLSLSANDBOX_PLAYER_CONF_OPTS += --enable-ivi else GLSLSANDBOX_PLAYER_CONF_OPTS += --disable-ivi endif else ifeq ($(BR2_PACKAGE_GLSLSANDBOX_PLAYER_X11),y) GLSLSANDBOX_PLAYER_DEPENDENCIES += xlib_libX11 GLSLSANDBOX_PLAYER_CONF_OPTS += --with-native-gfx=x11 endif $(eval $(autotools-package)) ================================================ FILE: package/gmp/0001-mpz-inp_raw.c-Avoid-bit-size-overflows.patch ================================================ # HG changeset patch # User Marco Bodrato # Date 1634836009 -7200 # Node ID 561a9c25298e17bb01896801ff353546c6923dbd # Parent e1fd9db13b475209a864577237ea4b9105b3e96e mpz/inp_raw.c: Avoid bit size overflows [Retrieved from: https://gmplib.org/repo/gmp-6.2/rev/561a9c25298e] Signed-off-by: Fabrice Fontaine diff -r e1fd9db13b47 -r 561a9c25298e mpz/inp_raw.c --- a/mpz/inp_raw.c Tue Dec 22 23:49:51 2020 +0100 +++ b/mpz/inp_raw.c Thu Oct 21 19:06:49 2021 +0200 @@ -88,8 +88,11 @@ abs_csize = ABS (csize); + if (UNLIKELY (abs_csize > ~(mp_bitcnt_t) 0 / 8)) + return 0; /* Bit size overflows */ + /* round up to a multiple of limbs */ - abs_xsize = BITS_TO_LIMBS (abs_csize*8); + abs_xsize = BITS_TO_LIMBS ((mp_bitcnt_t) abs_csize * 8); if (abs_xsize != 0) { ================================================ FILE: package/gmp/Config.in ================================================ config BR2_PACKAGE_GMP bool "gmp" help GNU Multiple Precision Arithmetic Library. http://gmplib.org/ ================================================ FILE: package/gmp/gmp.hash ================================================ # Locally calculated after checking pgp signature sha256 fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2 gmp-6.2.1.tar.xz # Locally calculated sha256 a853c2ffec17057872340eee242ae4d96cbf2b520ae27d903e1b2fef1a5f9d1c COPYING.LESSERv3 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYINGv2 ================================================ FILE: package/gmp/gmp.mk ================================================ ################################################################################ # # gmp # ################################################################################ GMP_VERSION = 6.2.1 GMP_SITE = $(BR2_GNU_MIRROR)/gmp GMP_SOURCE = gmp-$(GMP_VERSION).tar.xz GMP_INSTALL_STAGING = YES GMP_LICENSE = LGPL-3.0+ or GPL-2.0+ GMP_LICENSE_FILES = COPYING.LESSERv3 COPYINGv2 GMP_CPE_ID_VENDOR = gmplib GMP_DEPENDENCIES = host-m4 HOST_GMP_DEPENDENCIES = host-m4 # 0001-mpz-inp_raw.c-Avoid-bit-size-overflows.patch GMP_IGNORE_CVES += CVE-2021-43618 # 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_CPU_MIPS32R6)$(BR2_MIPS_CPU_MIPS64R6)$(BR2_ARM_CPU_ARMV7M),y) GMP_CONF_OPTS += --disable-assembly endif ifeq ($(BR2_INSTALL_LIBSTDCPP),y) GMP_CONF_OPTS += --enable-cxx else GMP_CONF_OPTS += --disable-cxx endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/gmpc/Config.in ================================================ config BR2_PACKAGE_GMPC bool "gmpc" depends on BR2_PACKAGE_LIBGTK2 depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBMPD select BR2_PACKAGE_LIBSOUP select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_SQLITE select BR2_PACKAGE_XLIB_LIBICE select BR2_PACKAGE_XLIB_LIBSM select BR2_PACKAGE_XLIB_LIBX11 help Gnome Music Player Client is a GNOME/GTK2.2 client for Music Player Daemon. http://gmpcwiki.sarine.nl/index.php?title=GMPC comment "gmpc needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on BR2_PACKAGE_XORG7 && BR2_PACKAGE_LIBGTK2 depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/gmpc/gmpc.hash ================================================ # Locally calculated sha256 a69414f35396846733632ca9619921d7acda537ffd6d49bd84b444945cb76b2c gmpc-11.8.16.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/gmpc/gmpc.mk ================================================ ################################################################################ # # gmpc # ################################################################################ GMPC_VERSION = 11.8.16 GMPC_SITE = http://download.sarine.nl/Programs/gmpc/$(GMPC_VERSION) GMPC_CONF_ENV = ac_cv_path_GOB2=$(GOB2_HOST_BINARY) GMPC_CONF_OPTS = --disable-mmkeys --disable-unique GMPC_LICENSE = GPL-2.0+ GMPC_LICENSE_FILES = COPYING GMPC_DEPENDENCIES = host-gob2 host-intltool host-pkgconf host-vala \ libglib2 libgtk2 libmpd libsoup sqlite \ xlib_libICE xlib_libSM xlib_libX11 \ $(TARGET_NLS_DEPENDENCIES) $(eval $(autotools-package)) ================================================ FILE: package/gmrender-resurrect/0001-Drop-UpnpInit.patch ================================================ From dc8c4d4dc234311b3099e7f1efadf5d9733c81e9 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 21 Aug 2020 21:29:00 +0200 Subject: [PATCH] Drop UpnpInit UpnpInit has been dropped from libupnp 1.14.x as it can't be fixed against CallStranger a.k.a. CVE-2020-12695 so replace it by UpnpInit2 which is available since version 1.6.7 and https://github.com/pupnp/pupnp/commit/2bcbdffd89a70364147d345ec5e70a3fce5cbc29 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/hzeller/gmrender-resurrect/pull/214] --- dist-scripts/centos7/README.md | 2 +- dist-scripts/debian/gmediarender.1 | 8 ++------ dist-scripts/fedora/README.md | 2 +- src/main.c | 13 ++++--------- src/upnp_device.c | 18 +++++++++--------- src/upnp_device.h | 2 +- 6 files changed, 18 insertions(+), 27 deletions(-) diff --git a/dist-scripts/centos7/README.md b/dist-scripts/centos7/README.md index 278d777..ed82fb6 100644 --- a/dist-scripts/centos7/README.md +++ b/dist-scripts/centos7/README.md @@ -45,7 +45,7 @@ Additional configuration is also recommended, sice there's no configuration file # vi /etc/systemd/system/gmediarender.service.d/customize.conf # or nano, or emacs, or whatever editor you like [Service] ExecStart= - ExecStart=/usr/bin/gmediarender --port=49494 --ip-address= -f "DLNA Renderer GMediaRender" + ExecStart=/usr/bin/gmediarender --port=49494 --interface-name= -f "DLNA Renderer GMediaRender" # systemctl daemon-reload # systemctl start gmediarender.service diff --git a/dist-scripts/debian/gmediarender.1 b/dist-scripts/debian/gmediarender.1 index 96123ff..b2b1359 100644 --- a/dist-scripts/debian/gmediarender.1 +++ b/dist-scripts/debian/gmediarender.1 @@ -50,12 +50,8 @@ Usually, it is desirable for the renderer to show up on controllers under a recognisable and unique name. This is the option to set that name. .TP -.B \-I, \-\-ip\-address \fI\\fP -The local IP address the service is running and advertised on. - -This can -only be a single address, and must be explicitly specified (i.e. not -0.0.0.0). +.B \-I, \-\-interface\-name \fI\\fP +The local interface name the service is running and advertised on. .TP .B \-p, \-\-port \fI\\fP Port to listen to. [49152..65535]. diff --git a/dist-scripts/fedora/README.md b/dist-scripts/fedora/README.md index 7b9ea4b..45aa536 100644 --- a/dist-scripts/fedora/README.md +++ b/dist-scripts/fedora/README.md @@ -43,7 +43,7 @@ Additional configuration is also recommended, sice there's no configuration file # vi /etc/systemd/system/gmediarender.service.d/customize.conf # or nano, or emacs, or whatever editor you like [Service] ExecStart= - ExecStart=/usr/bin/gmediarender --port=49494 --ip-address= -f "DLNA Renderer GMediaRender" + ExecStart=/usr/bin/gmediarender --port=49494 --interface-name= -f "DLNA Renderer GMediaRender" # systemctl daemon-reload # systemctl start gmediarender.service diff --git a/src/main.c b/src/main.c index ef720e3..2030c49 100644 --- a/src/main.c +++ b/src/main.c @@ -69,11 +69,7 @@ static gboolean show_transport_scpd = FALSE; static gboolean show_outputs = FALSE; static gboolean daemon_mode = FALSE; -// IP-address seems strange in libupnp: they actually don't bind to -// that address, but to INADDR_ANY (miniserver.c in upnp library). -// Apparently they just use this for the advertisement ? Anyway, 0.0.0.0 would -// not work. -static const gchar *ip_address = NULL; +static const gchar *interface_name = NULL; static int listen_port = 49494; #ifdef GMRENDER_UUID @@ -92,9 +88,8 @@ static const gchar *mime_filter = NULL; static GOptionEntry option_entries[] = { { "version", 0, 0, G_OPTION_ARG_NONE, &show_version, "Output version information and exit", NULL }, - { "ip-address", 'I', 0, G_OPTION_ARG_STRING, &ip_address, - "The local IP address the service is running and advertised " - "(only one, 0.0.0.0 won't work)", NULL }, + { "interface-name", 'I', 0, G_OPTION_ARG_STRING, &interface_name, + "The local interface name the service is running and advertised", NULL }, // The following is not very reliable, as libupnp does not set // SO_REUSEADDR by default, so it might increment (sending patch). { "port", 'p', 0, G_OPTION_ARG_INT, &listen_port, @@ -302,7 +297,7 @@ int main(int argc, char **argv) listen_port); return EXIT_FAILURE; } - device = upnp_device_init(upnp_renderer, ip_address, listen_port); + device = upnp_device_init(upnp_renderer, interface_name, listen_port); if (device == NULL) { Log_error("main", "ERROR: Failed to initialize UPnP device"); return EXIT_FAILURE; diff --git a/src/upnp_device.c b/src/upnp_device.c index db65e4f..3151238 100644 --- a/src/upnp_device.c +++ b/src/upnp_device.c @@ -416,13 +416,13 @@ static UPNP_CALLBACK(event_handler, EventType, event, userdata) static gboolean initialize_device(struct upnp_device_descriptor *device_def, struct upnp_device *result_device, - const char *ip_address, + const char *interface_name, unsigned short port) { int rc; char *buf; - rc = UpnpInit(ip_address, port); + rc = UpnpInit2(interface_name, port); /* There have been situations reported in which UPNP had issues * initializing right after network came up. #129 */ @@ -430,13 +430,13 @@ static gboolean initialize_device(struct upnp_device_descriptor *device_def, static const int kRetryTimeMs = 1000; while (rc != UPNP_E_SUCCESS && retries_left--) { usleep(kRetryTimeMs * 1000); - Log_error("upnp", "UpnpInit(ip=%s, port=%d) Error: %s (%d). Retrying... (%ds)", - ip_address, port, UpnpGetErrorMessage(rc), rc, retries_left); - rc = UpnpInit(ip_address, port); + Log_error("upnp", "UpnpInit2(interface=%s, port=%d) Error: %s (%d). Retrying... (%ds)", + interface_name, port, UpnpGetErrorMessage(rc), rc, retries_left); + rc = UpnpInit2(interface_name, port); } if (UPNP_E_SUCCESS != rc) { - Log_error("upnp", "UpnpInit(ip=%s, port=%d) Error: %s (%d). Giving up.", - ip_address, port, UpnpGetErrorMessage(rc), rc); + Log_error("upnp", "UpnpInit2(interface=%s, port=%d) Error: %s (%d). Giving up.", + interface_name, port, UpnpGetErrorMessage(rc), rc); return FALSE; } Log_info("upnp", "Registered IP=%s port=%d\n", @@ -483,7 +483,7 @@ static gboolean initialize_device(struct upnp_device_descriptor *device_def, } struct upnp_device *upnp_device_init(struct upnp_device_descriptor *device_def, - const char *ip_address, + const char *interface_name, unsigned short port) { int rc; @@ -516,7 +516,7 @@ struct upnp_device *upnp_device_init(struct upnp_device_descriptor *device_def, webserver_register_buf(srv->scpd_url, buf, "text/xml"); } - if (!initialize_device(device_def, result_device, ip_address, port)) { + if (!initialize_device(device_def, result_device, interface_name, port)) { UpnpFinish(); free(result_device); return NULL; diff --git a/src/upnp_device.h b/src/upnp_device.h index 3e635e1..8c8e783 100644 --- a/src/upnp_device.h +++ b/src/upnp_device.h @@ -49,7 +49,7 @@ struct upnp_device; struct action_event; struct upnp_device *upnp_device_init(struct upnp_device_descriptor *device_def, - const char *ip_address, + const char *interface_name, unsigned short port); void upnp_device_shutdown(struct upnp_device *device); ================================================ FILE: package/gmrender-resurrect/Config.in ================================================ 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 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 toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/gmrender-resurrect/gmrender-resurrect.hash ================================================ # Locally calculated sha256 1f0cef76e4543879c9cd31cad73d6c4f778b965884c586405efcf63f2bdbb06f gmrender-resurrect-0.0.8.tar.gz sha256 c38aee9e3c8c4d5d594ff548a1be05453023016d6286931f6512db215ec1fd42 COPYING ================================================ FILE: package/gmrender-resurrect/gmrender-resurrect.mk ================================================ ################################################################################ # # gmrender-resurrect # ################################################################################ GMRENDER_RESURRECT_VERSION = 0.0.8 GMRENDER_RESURRECT_SITE = $(call github,hzeller,gmrender-resurrect,v$(GMRENDER_RESURRECT_VERSION)) # Original distribution does not have default configure, # so we need to autoreconf: GMRENDER_RESURRECT_AUTORECONF = YES GMRENDER_RESURRECT_LICENSE = GPL-2.0+ GMRENDER_RESURRECT_LICENSE_FILES = COPYING GMRENDER_RESURRECT_DEPENDENCIES = \ gstreamer1 \ libupnp $(eval $(autotools-package)) ================================================ FILE: package/gnu-efi/0001-Make.defaults-don-t-override-ARCH-when-cross-compili.patch ================================================ From 3452721eafae90749f4af63264c412f398460b15 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 20 Jan 2019 21:07:11 +0100 Subject: [PATCH] Make.defaults: don't override ARCH when cross-compiling Don't override the user-provided ARCH when cross-compiling otherwise ARCH won't be correct for armv5, aarch64 and x86_64 Fixes: - http://autobuild.buildroot.org/results/2dfc0e10da25a8382a43557420d7dc3444c02dbb Signed-off-by: Fabrice Fontaine --- Make.defaults | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Make.defaults b/Make.defaults index ba743f1..a0e5632 100755 --- a/Make.defaults +++ b/Make.defaults @@ -67,7 +67,7 @@ ARCH ?= $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[345678 # Get ARCH from the compiler if cross compiling ifneq ($(CROSS_COMPILE),) - override ARCH := $(shell $(CC) -dumpmachine | cut -f1 -d-| sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' ) + ARCH := $(shell $(CC) -dumpmachine | cut -f1 -d-| sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' ) endif # FreeBSD (and possibly others) reports amd64 instead of x86_64 -- 2.14.1 ================================================ FILE: package/gnu-efi/0002-Revert-efilink-fix-build-with-gcc-4.8.patch ================================================ From 1f7b2e5bd6603b30202a66b6317a41e2be85742b Mon Sep 17 00:00:00 2001 From: Esben Haabendal Date: Tue, 26 Mar 2019 13:37:02 +0100 Subject: [PATCH] Revert "efilink: fix build with gcc 4.8" This reverts commit 6335e5c697c57d8b5854b8202de3733bcb151ca6, as it breaks gcc builds with '-nostdinc' flag. The fix in 1a53d8f88a452847b25f9689f9a08dbcf82c86e4 (Fix for problem with undeclared intptr_t type), which is also merged fixes the same problem, without causing breakage. Signed-off-by: Esben Haabendal Signed-off-by: James Hilliard [Upstream status: https://sourceforge.net/p/gnu-efi/code/merge-requests/6/] --- inc/efilink.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/inc/efilink.h b/inc/efilink.h index b69a6fd..cc5aa2d 100644 --- a/inc/efilink.h +++ b/inc/efilink.h @@ -1,10 +1,6 @@ #ifndef _EFI_LINK_H #define _EFI_LINK_H -#if defined(__GNUC__) -#include -#endif - /*++ Copyright (c) 1998 Intel Corporation -- 2.20.1 ================================================ FILE: package/gnu-efi/Config.in ================================================ config BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS bool default y if BR2_ARM_CPU_HAS_ARM default y if BR2_aarch64 default y if BR2_aarch64_be default y if BR2_i386 default y if BR2_x86_64 config BR2_PACKAGE_GNU_EFI bool "gnu-efi" depends on BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS help Develop EFI applications for ARM-64, ARM-32, x86_64, IA-64 (IPF), IA-32 (x86), and MIPS platforms using the GNU toolchain and the EFI development environment. http://gnu-efi.sourceforge.net/ ================================================ FILE: package/gnu-efi/gnu-efi.hash ================================================ # From http://sourceforge.net/projects/gnu-efi/files md5 960a8379b6f95ee73d7778b70bf2a089 gnu-efi-3.0.10.tar.bz2 sha1 a51b81eda97c0acbf3ac86123f298d3c0e396ce5 gnu-efi-3.0.10.tar.bz2 # Locally computed sha256 f12082a3a5f0c3e38c67262a9f34245d139ac2cdfc0a0bdcf03c9b1f56fa4fed gnu-efi-3.0.10.tar.bz2 sha256 42d352e9c28dd446fd0209cd6f75588c8e41f0934540bb382bbd61c752360265 README.efilib ================================================ FILE: package/gnu-efi/gnu-efi.mk ================================================ ################################################################################ # # gnu-efi # ################################################################################ GNU_EFI_VERSION = 3.0.10 GNU_EFI_SOURCE = gnu-efi-$(GNU_EFI_VERSION).tar.bz2 GNU_EFI_SITE = http://downloads.sourceforge.net/project/gnu-efi GNU_EFI_INSTALL_STAGING = YES GNU_EFI_LICENSE = BSD-3-Clause and/or GPL-2.0+ (gnuefi), BSD-3-Clause (efilib) GNU_EFI_LICENSE_FILES = README.efilib # gnu-efi is a set of library and header files used to build # standalone EFI applications such as bootloaders. There is no point # in installing these libraries to the target. GNU_EFI_INSTALL_TARGET = NO ifeq ($(BR2_i386),y) GNU_EFI_PLATFORM = ia32 else ifeq ($(BR2_x86_64),y) GNU_EFI_PLATFORM = x86_64 else ifeq ($(BR2_arm)$(BR2_armeb),y) GNU_EFI_PLATFORM = arm else ifeq ($(BR2_aarch64)$(BR2_aarch64_be),y) GNU_EFI_PLATFORM = aarch64 endif GNU_EFI_MAKE_OPTS = \ ARCH=$(GNU_EFI_PLATFORM) \ CROSS_COMPILE="$(TARGET_CROSS)" \ PREFIX=/usr define GNU_EFI_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(GNU_EFI_MAKE_OPTS) endef define GNU_EFI_INSTALL_STAGING_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(GNU_EFI_MAKE_OPTS) \ INSTALLROOT=$(STAGING_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/gnuchess/Config.in ================================================ config BR2_PACKAGE_GNUCHESS bool "gnuchess" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_FLEX help GNU Chess lets most modern computers play a full game of chess. http://ftp.gnu.org/pub/gnu/chess comment "gnuchess needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/gnuchess/gnuchess.hash ================================================ # sha256 locally computed sha256 d50446cda8012240321da39cddbb4df4d08458a8d538a4738882814139583847 gnuchess-6.2.8.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/gnuchess/gnuchess.mk ================================================ ################################################################################ # # gnuchess # ################################################################################ GNUCHESS_VERSION = 6.2.8 GNUCHESS_SITE = $(BR2_GNU_MIRROR)/chess GNUCHESS_LICENSE = GPL-3.0+ GNUCHESS_LICENSE_FILES = COPYING GNUCHESS_CPE_ID_VENDOR = gnu GNUCHESS_CPE_ID_PRODUCT = chess GNUCHESS_DEPENDENCIES = host-flex flex GNUCHESS_DEPENDENCIES += $(if $(BR2_PACKAGE_READLINE),readline) \ $(TARGET_NLS_DEPENDENCIES) $(eval $(autotools-package)) ================================================ FILE: package/gnupg/0001-build-Always-use-EXTERN_UNLESS_MAIN_MODULE-pattern.patch ================================================ From 45ef4455a60929932d1499cf718c1c9f59af9f26 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 26 May 2020 22:57:05 +0200 Subject: [PATCH] build: Always use EXTERN_UNLESS_MAIN_MODULE pattern This patch is loosely based on upstream commit 6aff8a132815a84bab69401c1e7de96ec549fbf2 ("build: Always use EXTERN_UNLESS_MAIN_MODULE pattern."). However, this upstream commit applies to gnupg2, and the code base has changed quite significantly compared to gnupg 1.x, so upstream's patch cannot be applied as-is. The goal of the patch is to make sure each variable is only defined once, ass gcc 10 now default to -fno-common. Essentially, this patch mainly fixes the EXTERN_UNLESS_MAIN_MODULE define so that it really expands to "extern" when INCLUDED_BY_MAIN_MODULE is not defined, even on non-RiscOS systems. Contrary to upstream's patch we however do not factorize the multiple EXTERN_UNLESS_MAIN_MODULE definitions into a single place as it requires too many changes: instead we simply fix the few definitions of this macro. Once the macro is fixed, two places need to define INCLUDED_BY_MAIN_MODULE: tools/bftest.c and tools/mpicalc.c so that when they include the common headers, their variables are at least defined once. The iobuf.{c,h} case is handled differently: iobuf.h gains an unconditional "extern", with the variable being added to iobuf.c. This is identical to what upstream's 6aff8a132815a84bab69401c1e7de96ec549fbf2 is doing. Signed-off-by: Thomas Petazzoni --- g10/options.h | 3 +-- include/cipher.h | 2 +- include/iobuf.h | 9 +-------- include/memory.h | 2 +- include/mpi.h | 2 +- tools/bftest.c | 1 + tools/mpicalc.c | 1 + util/iobuf.c | 2 ++ 8 files changed, 9 insertions(+), 13 deletions(-) diff --git a/g10/options.h b/g10/options.h index 0ac6e7755..bae19e9e3 100644 --- a/g10/options.h +++ b/g10/options.h @@ -26,8 +26,7 @@ #include "packet.h" #ifndef EXTERN_UNLESS_MAIN_MODULE -/* Norcraft can't cope with common symbols */ -#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE) +#if !defined (INCLUDED_BY_MAIN_MODULE) #define EXTERN_UNLESS_MAIN_MODULE extern #else #define EXTERN_UNLESS_MAIN_MODULE diff --git a/include/cipher.h b/include/cipher.h index dd4af18cb..6ef6e6829 100644 --- a/include/cipher.h +++ b/include/cipher.h @@ -115,7 +115,7 @@ struct gcry_md_context { typedef struct gcry_md_context *MD_HANDLE; #ifndef EXTERN_UNLESS_MAIN_MODULE -#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE) +#if !defined (INCLUDED_BY_MAIN_MODULE) #define EXTERN_UNLESS_MAIN_MODULE extern #else #define EXTERN_UNLESS_MAIN_MODULE diff --git a/include/iobuf.h b/include/iobuf.h index 030f8c8e9..b4d26b7e1 100644 --- a/include/iobuf.h +++ b/include/iobuf.h @@ -69,14 +69,7 @@ struct iobuf_struct { } unget; }; -#ifndef EXTERN_UNLESS_MAIN_MODULE -#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE) -#define EXTERN_UNLESS_MAIN_MODULE extern -#else -#define EXTERN_UNLESS_MAIN_MODULE -#endif -#endif -EXTERN_UNLESS_MAIN_MODULE int iobuf_debug_mode; +extern int iobuf_debug_mode; void iobuf_enable_special_filenames ( int yes ); int iobuf_is_pipe_filename (const char *fname); diff --git a/include/memory.h b/include/memory.h index d414a9b2e..6698337e3 100644 --- a/include/memory.h +++ b/include/memory.h @@ -91,7 +91,7 @@ unsigned secmem_get_flags(void); #define DBG_MEMSTAT memory_stat_debug_mode #ifndef EXTERN_UNLESS_MAIN_MODULE -#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE) +#if !defined (INCLUDED_BY_MAIN_MODULE) #define EXTERN_UNLESS_MAIN_MODULE extern #else #define EXTERN_UNLESS_MAIN_MODULE diff --git a/include/mpi.h b/include/mpi.h index a4c16f5af..7a45ff805 100644 --- a/include/mpi.h +++ b/include/mpi.h @@ -36,7 +36,7 @@ #include "memory.h" #ifndef EXTERN_UNLESS_MAIN_MODULE -#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE) +#if !defined (INCLUDED_BY_MAIN_MODULE) #define EXTERN_UNLESS_MAIN_MODULE extern #else #define EXTERN_UNLESS_MAIN_MODULE diff --git a/tools/bftest.c b/tools/bftest.c index 8a1572c2b..5afd7e125 100644 --- a/tools/bftest.c +++ b/tools/bftest.c @@ -26,6 +26,7 @@ #include #endif +#define INCLUDED_BY_MAIN_MODULE #include "util.h" #include "cipher.h" #include "i18n.h" diff --git a/tools/mpicalc.c b/tools/mpicalc.c index 46e5fc824..31acd82a4 100644 --- a/tools/mpicalc.c +++ b/tools/mpicalc.c @@ -31,6 +31,7 @@ #include #include +#define INCLUDED_BY_MAIN_MODULE #include "util.h" #include "mpi.h" #include "i18n.h" diff --git a/util/iobuf.c b/util/iobuf.c index c8442929a..0d9ee4cec 100644 --- a/util/iobuf.c +++ b/util/iobuf.c @@ -113,6 +113,8 @@ typedef struct { static CLOSE_CACHE close_cache; #endif +int iobuf_debug_mode; + #ifdef _WIN32 typedef struct { int sock; -- 2.26.2 ================================================ FILE: package/gnupg/Config.in ================================================ config BR2_PACKAGE_GNUPG bool "gnupg" depends on !BR2_PACKAGE_GNUPG2 select BR2_PACKAGE_ZLIB help GnuPG is the GNU project's complete and free implementation of the OpenPGP standard as defined by RFC4880. GnuPG allows to encrypt and sign your data and communication, features a versatile key management system as well as access modules for all kinds of public key directories. GnuPG, also known as GPG, is a command line tool with features for easy integration with other applications. http://gnupg.org/ if BR2_PACKAGE_GNUPG config BR2_PACKAGE_GNUPG_AES bool "AES support" help Support for the AES cipher config BR2_PACKAGE_GNUPG_RSA bool "RSA support" help Support for RSA public key algorithm config BR2_PACKAGE_GNUPG_GPGV bool "gpgv" help gpgv is an OpenPGP signature verification tool. This program is actually a stripped-down version of gpg which is only able to check signatures. It is somewhat smaller than the fully-blown gpg and uses a different (and simpler) way to check that the public keys used to make the signature are valid. There are no configuration files and only a few options are implemented. config BR2_PACKAGE_GNUPG_GPGSPLIT bool "gpgsplit" help gpgsplit splits an OpenPGP message into packets. endif ================================================ FILE: package/gnupg/Config.in.host ================================================ config BR2_PACKAGE_HOST_GNUPG bool "host gnupg" help GnuPG is the GNU project's complete and free implementation of the OpenPGP standard as defined by RFC4880. GnuPG allows to encrypt and sign your data and communication, features a versatile key management system as well as access modules for all kinds of public key directories. GnuPG, also known as GPG, is a command line tool with features for easy integration with other applications. http://gnupg.org/ ================================================ FILE: package/gnupg/gnupg.hash ================================================ # Locally computed based on signature # https://gnupg.org/ftp/gcrypt/gnupg/gnupg-1.4.23.tar.bz2.sig sha256 c9462f17e651b6507848c08c430c791287cd75491f8b5a8b50c6ed46b12678ba gnupg-1.4.23.tar.bz2 # locally computed sha256 fc82ca8b6fdb18d4e3e85cfd8ab58d1bcd3f1b29abe782895abd91d64763f8e7 COPYING ================================================ FILE: package/gnupg/gnupg.mk ================================================ ################################################################################ # # gnupg # ################################################################################ GNUPG_VERSION = 1.4.23 GNUPG_SOURCE = gnupg-$(GNUPG_VERSION).tar.bz2 GNUPG_SITE = https://gnupg.org/ftp/gcrypt/gnupg GNUPG_LICENSE = GPL-3.0+ GNUPG_LICENSE_FILES = COPYING GNUPG_DEPENDENCIES = zlib $(if $(BR2_PACKAGE_LIBICONV),libiconv) GNUPG_CPE_ID_VENDOR = gnupg GNUPG_CONF_ENV = ac_cv_sys_symbol_underscore=no GNUPG_CONF_OPTS = \ --disable-rpath \ --enable-minimal \ --disable-regex \ --enable-sha256 \ --enable-sha512 HOST_GNUPG_DEPENDENCIES = host-zlib HOST_GNUPG_CONF_OPTS = \ --disable-rpath \ --enable-minimal \ --disable-regex \ --enable-sha256 \ --enable-sha512 \ --enable-aes \ --enable-rsa \ --without-libcurl \ --without-readline # 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 endif ifeq ($(BR2_PACKAGE_LIBCURL),y) GNUPG_CONF_ENV += ac_cv_path__libcurl_config=$(STAGING_DIR)/usr/bin/curl-config GNUPG_DEPENDENCIES += libcurl else GNUPG_CONF_OPTS += --without-libcurl endif ifeq ($(BR2_PACKAGE_READLINE),y) GNUPG_DEPENDENCIES += readline else GNUPG_CONF_OPTS += --without-readline endif ifeq ($(BR2_PACKAGE_GNUPG_AES),y) GNUPG_CONF_OPTS += --enable-aes else GNUPG_CONF_OPTS += --disable-aes endif ifeq ($(BR2_PACKAGE_GNUPG_RSA),y) GNUPG_CONF_OPTS += --enable-rsa else GNUPG_CONF_OPTS += --disable-rsa endif ifneq ($(BR2_PACKAGE_GNUPG_GPGV),y) define GNUPG_REMOVE_GPGV rm -f $(TARGET_DIR)/usr/bin/gpgv endef GNUPG_POST_INSTALL_TARGET_HOOKS += GNUPG_REMOVE_GPGV endif ifneq ($(BR2_PACKAGE_GNUPG_GPGSPLIT),y) define GNUPG_REMOVE_GPGSPLIT rm -f $(TARGET_DIR)/usr/bin/gpgsplit endef GNUPG_POST_INSTALL_TARGET_HOOKS += GNUPG_REMOVE_GPGSPLIT endif define GNUPG_FIXUP_GPG_ZIP test -f $(TARGET_DIR)/usr/bin/gpg-zip && \ $(SED) 's%^TAR=.*%TAR=/bin/tar%' $(TARGET_DIR)/usr/bin/gpg-zip endef GNUPG_POST_INSTALL_TARGET_HOOKS += GNUPG_FIXUP_GPG_ZIP $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/gnupg2/Config.in ================================================ comment "gnupg2 needs a toolchain w/ threads and dynamic library support" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_GNUPG2 bool "gnupg2" depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error depends on BR2_TOOLCHAIN_HAS_THREADS # libnpth depends on BR2_USE_MMU # libassuan, libnpth depends on !BR2_STATIC_LIBS select BR2_PACKAGE_ZLIB select BR2_PACKAGE_LIBGPG_ERROR select BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_LIBASSUAN select BR2_PACKAGE_LIBKSBA select BR2_PACKAGE_LIBNPTH select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help GnuPG is the GNU project's complete and free implementation of the OpenPGP standard as defined by RFC4880. GnuPG allows to encrypt and sign your data and communication, features a versatile key management system as well as access modules for all kinds of public key directories. GnuPG, also known as GPG, is a command line tool with features for easy integration with other applications. http://gnupg.org/ if BR2_PACKAGE_GNUPG2 config BR2_PACKAGE_GNUPG2_GPGV bool "gpgv" help gpgv is an OpenPGP signature verification tool. This program is actually a stripped-down version of gpg which is only able to check signatures. It is somewhat smaller than the fully-blown gpg and uses a different (and simpler) way to check that the public keys used to make the signature are valid. There are no configuration files and only a few options are implemented. endif ================================================ FILE: package/gnupg2/gnupg2.hash ================================================ # From https://lists.gnupg.org/pipermail/gnupg-announce/2021q2/000460.html sha1 81684626720c91060ae9920936c768df9fc8b2f6 gnupg-2.2.32.tar.bz2 # Calculated based on the hash above and signature # https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.32.tar.bz2.sig # using key 6DAA6E64A76D2840571B4902528897B826403ADA sha256 b2571b35f82c63e7d278aa6a1add0d73453dc14d3f0854be490c844fca7e0614 gnupg-2.2.32.tar.bz2 sha256 bc2d6664f6276fa0a72d57633b3ae68dc7dcb677b71018bf08c8e93e509f1357 COPYING ================================================ FILE: package/gnupg2/gnupg2.mk ================================================ ################################################################################ # # gnupg2 # ################################################################################ GNUPG2_VERSION = 2.2.32 GNUPG2_SOURCE = gnupg-$(GNUPG2_VERSION).tar.bz2 GNUPG2_SITE = https://gnupg.org/ftp/gcrypt/gnupg GNUPG2_LICENSE = GPL-3.0+ GNUPG2_LICENSE_FILES = COPYING GNUPG2_CPE_ID_VENDOR = gnupg GNUPG2_CPE_ID_PRODUCT = gnupg GNUPG2_DEPENDENCIES = zlib libgpg-error libgcrypt libassuan libksba libnpth \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) host-pkgconf GNUPG2_CONF_OPTS = \ --disable-rpath --disable-regex \ --with-libgpg-error-prefix=$(STAGING_DIR)/usr \ --with-libgcrypt-prefix=$(STAGING_DIR)/usr \ --with-libassuan-prefix=$(STAGING_DIR)/usr \ --with-ksba-prefix=$(STAGING_DIR)/usr \ --with-npth-prefix=$(STAGING_DIR)/usr ifneq ($(BR2_PACKAGE_GNUPG2_GPGV),y) define GNUPG2_REMOVE_GPGV rm -f $(TARGET_DIR)/usr/bin/gpgv endef GNUPG2_POST_INSTALL_TARGET_HOOKS += GNUPG2_REMOVE_GPGV endif ifeq ($(BR2_PACKAGE_BZIP2),y) GNUPG2_CONF_OPTS += --enable-bzip2 --with-bzip2=$(STAGING_DIR) GNUPG2_DEPENDENCIES += bzip2 else GNUPG2_CONF_OPTS += --disable-bzip2 endif ifeq ($(BR2_PACKAGE_GNUTLS),y) GNUPG2_CONF_OPTS += --enable-gnutls GNUPG2_DEPENDENCIES += gnutls else GNUPG2_CONF_OPTS += --disable-gnutls endif ifeq ($(BR2_PACKAGE_LIBUSB),y) GNUPG2_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -I$(STAGING_DIR)/usr/include/libusb-1.0" GNUPG2_CONF_OPTS += --enable-ccid-driver GNUPG2_DEPENDENCIES += libusb else GNUPG2_CONF_OPTS += --disable-ccid-driver endif ifeq ($(BR2_PACKAGE_READLINE),y) GNUPG2_CONF_OPTS += --with-readline=$(STAGING_DIR) GNUPG2_DEPENDENCIES += readline else GNUPG2_CONF_OPTS += --without-readline endif ifeq ($(BR2_PACKAGE_SQLITE),y) GNUPG2_CONF_OPTS += --enable-sqlite GNUPG2_DEPENDENCIES += sqlite else GNUPG2_CONF_OPTS += --disable-sqlite endif $(eval $(autotools-package)) ================================================ FILE: package/gnuplot/0001-configure-add-without-demo-option.patch ================================================ Add options to enable/disable docs and demos Originally written by Anthony Viallard . Signed-off-by: Thomas Petazzoni [Vincent: adapt patch to 5.0.5 version] Signed-off-by: Vicente Olivert Riera [Michael: adapt patch to 5.4.0 version] Signed-off-by: Michael Fischer diff -Naur a/configure.ac b/configure.ac --- a/configure.ac 2020-07-12 02:29:47.000000000 +0200 +++ b/configure.ac 2020-08-06 14:21:17.918756893 +0200 @@ -713,6 +713,17 @@ [ Define if you want to read .gnuplot from current directory (SECURITY RISK!).]) fi +dnl Whether we want to build the doc files +dnl Does nothing here, is passed on to the doc subdir +AC_ARG_ENABLE(doc,dnl +[ --disable-doc do not build doc files]) + +dnl Whether we want to build the demo files +dnl Does nothing here, is passed on to the demo subdir +AC_ARG_ENABLE(demo,dnl +[ --disable-demo do not build demo files]) + + dnl Sort help/subtopic tables by row or column AC_ARG_WITH(row-help,dnl [ --with-row-help format help and subtopic tables by row (default) @@ -1095,6 +1106,24 @@ AC_DEFINE_UNQUOTED([DIST_CONTACT],["$DIST_CONTACT"],[Contact address for modified and binary distributed gnuplot versions]) fi +dnl build doc files +if test "$enable_doc" != no; then + AC_CONFIG_SUBDIRS(docs) + DOCSUBDIR=docs +else + DOCSUBDIR= +fi +AC_SUBST(DOCSUBDIR) + +dnl build demo files +if test "$enable_demo" != no; then + AC_CONFIG_SUBDIRS(demo) + DEMOSUBDIR=demo +else + DEMOSUBDIR= +fi +AC_SUBST(DEMOSUBDIR) + dnl Substitute variables AC_SUBST(PACKAGE) AC_SUBST(VERSION_MAJOR) diff -Naur a/Makefile.am b/Makefile.am --- a/Makefile.am 2020-03-31 19:28:16.000000000 +0200 +++ b/Makefile.am 2020-08-06 14:34:12.995097799 +0200 @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -*-Makefile-*- AUTOMAKE_OPTIONS = foreign -SUBDIRS = config m4 term src docs man demo share +SUBDIRS = config m4 term src $(DOCSUBDIR) man $(DEMOSUBDIR) share EXTRA_DIST = BUGS Copyright FAQ.pdf INSTALL INSTALL.gnu \ PATCHLEVEL PGPKEYS README RELEASE_NOTES \ ================================================ FILE: package/gnuplot/Config.in ================================================ config BR2_PACKAGE_GNUPLOT bool "gnuplot" help A portable command-line driven graphing utility. http://www.gnuplot.info/ ================================================ FILE: package/gnuplot/gnuplot.hash ================================================ # From https://sourceforge.net/projects/gnuplot/files/gnuplot/5.4.2/ md5 2050ca477199a591543bc968aba7d899 gnuplot-5.4.2.tar.gz sha1 2e076b29f38bfcb841cb5eb3377fd1a469ced1ac gnuplot-5.4.2.tar.gz # Locally computed sha256 e57c75e1318133951d32a83bcdc4aff17fed28722c4e71f2305cfc2ae1cae7ba gnuplot-5.4.2.tar.gz sha256 895928ec0735cca1c8cec42656c7e314a065d0242813bb8693c0c1bf61fd4e4d Copyright ================================================ FILE: package/gnuplot/gnuplot.mk ================================================ ################################################################################ # # gnuplot # ################################################################################ GNUPLOT_VERSION = 5.4.2 GNUPLOT_SITE = http://downloads.sourceforge.net/project/gnuplot/gnuplot/$(GNUPLOT_VERSION) GNUPLOT_LICENSE = gnuplot license (open source) GNUPLOT_LICENSE_FILES = Copyright GNUPLOT_CPE_ID_VENDOR = gnuplot_project GNUPLOT_AUTORECONF = YES GNUPLOT_CONF_OPTS = \ --without-x \ --disable-raise-console \ --disable-mouse \ --without-tutorial \ --disable-demo \ --without-row-help \ --disable-history-file \ --disable-wxwidgets \ --without-lua \ --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 += host-pkgconf gd else GNUPLOT_CONF_OPTS += --without-gd endif ifeq ($(BR2_PACKAGE_READLINE),y) GNUPLOT_CONF_OPTS += --with-readline=gnu GNUPLOT_DEPENDENCIES += readline else GNUPLOT_CONF_OPTS += --without-readline endif # Remove Javascript scripts, lua scripts, PostScript files define GNUPLOT_REMOVE_UNNEEDED_FILES $(RM) -rf $(TARGET_DIR)/usr/share/gnuplot endef GNUPLOT_POST_INSTALL_TARGET_HOOKS += GNUPLOT_REMOVE_UNNEEDED_FILES $(eval $(autotools-package)) ================================================ FILE: package/gnuradio/0001-gr-digital-glfsr.h-drop-boost-cstdint.hpp-and-use-cs.patch ================================================ From f643bc12100c67288adda3699a9e61d6a66fb529 Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Fri, 7 Feb 2020 16:49:30 +0100 Subject: [PATCH] gr-digital:glfsr.h: drop boost/cstdint.hpp and use cstdint gr-digital/glfsr.h include boost/cstdint.hpp to have uintxx_t. These types are in boost namespace but nor using namespace xxx, nor boost:: are used. The result is : In file included from /home/buildroot/autobuild/instance-0/output-1/build/gnuradio-3.8.0.0/gr-digital/lib/glfsr.cc:23: /home/buildroot/autobuild/instance-0/output-1/build/gnuradio-3.8.0.0/gr-digital/lib/../include/gnuradio/digital/glfsr.h:42:5: error: 'uint32_t' does not name a type; did you mean 'u_int32_t'? uint32_t d_shift_register; ^~~~~~~~ u_int32_t Since Gnuradio policy is Less boost == better and C++11 is used, use cstdint instead of boost/cstdint.hpp. [backported from 475e4a156b516c089175afb998acdc80b740b437] Signed-off-by: Gwenhael Goavec-Merou --- gr-digital/include/gnuradio/digital/glfsr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gr-digital/include/gnuradio/digital/glfsr.h b/gr-digital/include/gnuradio/digital/glfsr.h index 0b5141f1f..1003bcd01 100644 --- a/gr-digital/include/gnuradio/digital/glfsr.h +++ b/gr-digital/include/gnuradio/digital/glfsr.h @@ -24,7 +24,7 @@ #define INCLUDED_DIGITAL_GLFSR_H #include -#include +#include namespace gr { namespace digital { -- 2.24.1 ================================================ FILE: package/gnuradio/0002-boost_qualify_placeholders_with_their_full_namespace.patch ================================================ From 5d4c317a372c77aa70df6ab3403d161cd41a7d17 Mon Sep 17 00:00:00 2001 From: ponce Date: Sun, 17 May 2020 14:02:57 +0200 Subject: [PATCH] boost: qualify placeholders with their full namespace. This is needed with boost >= 1.73.0. [Upstream status: https://github.com/gnuradio/gnuradio/pull/3566] Signed-off-by: ponce Signed-off-by: Gwenhael Goavec-Merou --- .../(exported from wiki) Message Passing.txt | 8 +++--- gnuradio-runtime/lib/block.cc | 3 ++- gr-blocks/lib/copy_impl.cc | 4 ++- gr-blocks/lib/message_debug_impl.cc | 13 +++++++--- gr-blocks/lib/message_strobe_impl.cc | 5 ++-- gr-blocks/lib/message_strobe_random_impl.cc | 5 ++-- gr-blocks/lib/multiply_matrix_impl.cc | 11 +++++--- gr-blocks/lib/mute_impl.cc | 5 ++-- gr-blocks/lib/nop_impl.cc | 5 ++-- gr-blocks/lib/pdu_filter_impl.cc | 5 ++-- gr-blocks/lib/pdu_remove_impl.cc | 5 ++-- gr-blocks/lib/pdu_set_impl.cc | 4 ++- gr-blocks/lib/random_pdu_impl.cc | 5 ++-- gr-blocks/lib/repeat_impl.cc | 5 ++-- gr-blocks/lib/socket_pdu_impl.cc | 18 ++++++++----- .../lib/tagged_stream_multiply_length_impl.cc | 7 +++--- gr-blocks/lib/tuntap_pdu_impl.cc | 3 ++- gr-digital/lib/chunks_to_symbols_impl.cc | 5 ++-- .../lib/constellation_receiver_cb_impl.cc | 14 ++++++----- gr-digital/lib/costas_loop_cc_impl.cc | 4 ++- gr-digital/lib/crc32_async_bb_impl.cc | 8 ++++-- gr-digital/lib/header_payload_demux_impl.cc | 7 +++--- .../lib/protocol_formatter_async_impl.cc | 4 ++- gr-fec/lib/async_decoder_impl.cc | 8 ++++-- gr-fec/lib/async_encoder_impl.cc | 8 ++++-- gr-fec/lib/depuncture_bb_impl.cc | 4 ++- gr-fec/lib/puncture_bb_impl.cc | 4 ++- gr-fec/lib/puncture_ff_impl.cc | 4 ++- gr-filter/lib/freq_xlating_fir_filter_impl.cc | 2 +- gr-filter/lib/mmse_resampler_cc_impl.cc | 5 ++-- gr-filter/lib/mmse_resampler_ff_impl.cc | 5 ++-- gr-qtgui/lib/const_sink_c_impl.cc | 5 ++-- gr-qtgui/lib/edit_box_msg_impl.cc | 4 ++- gr-qtgui/lib/freq_sink_c_impl.cc | 12 ++++++--- gr-qtgui/lib/freq_sink_f_impl.cc | 12 ++++++--- gr-qtgui/lib/histogram_sink_f_impl.cc | 5 ++-- gr-qtgui/lib/sink_c_impl.cc | 4 ++- gr-qtgui/lib/sink_f_impl.cc | 4 ++- gr-qtgui/lib/time_raster_sink_b_impl.cc | 4 ++- gr-qtgui/lib/time_raster_sink_f_impl.cc | 4 ++- gr-qtgui/lib/time_sink_c_impl.cc | 4 ++- gr-qtgui/lib/time_sink_f_impl.cc | 4 ++- gr-qtgui/lib/waterfall_sink_c_impl.cc | 13 +++++++--- gr-qtgui/lib/waterfall_sink_f_impl.cc | 13 +++++++--- gr-uhd/lib/usrp_block_impl.cc | 25 ++++++++++++------- gr-uhd/lib/usrp_source_impl.cc | 5 ++-- gr-zeromq/lib/pub_msg_sink_impl.cc | 4 ++- gr-zeromq/lib/push_msg_sink_impl.cc | 4 ++- 48 files changed, 213 insertions(+), 106 deletions(-) diff --git a/docs/usage-manual/(exported from wiki) Message Passing.txt b/docs/usage-manual/(exported from wiki) Message Passing.txt index 4654bd5da..551e71022 100644 --- a/docs/usage-manual/(exported from wiki) Message Passing.txt +++ b/docs/usage-manual/(exported from wiki) Message Passing.txt @@ -94,7 +94,7 @@ must then bind this port to the message handler. For this, we use Boost's 'bind' function: set_msg_handler(pmt::pmt_t port_id, - boost::bind(&block_class::message_handler_function, this, _1)); + boost::bind(&block_class::message_handler_function, this, boost::placeholders::_1)); In Python: @@ -241,15 +241,15 @@ The constructor of this block looks like this: { message_port_register_in(pmt::mp("print")); set_msg_handler(pmt::mp("print"), - boost::bind(&message_debug_impl::print, this, _1)); + boost::bind(&message_debug_impl::print, this, boost::placeholders::_1)); message_port_register_in(pmt::mp("store")); set_msg_handler(pmt::mp("store"), - boost::bind(&message_debug_impl::store, this, _1)); + boost::bind(&message_debug_impl::store, this, boost::placeholders::_1)); message_port_register_in(pmt::mp("print_pdu")); set_msg_handler(pmt::mp("print_pdu"), - boost::bind(&message_debug_impl::print_pdu, this, _1)); + boost::bind(&message_debug_impl::print_pdu, this, boost::placeholders::_1)); } diff --git a/gnuradio-runtime/lib/block.cc b/gnuradio-runtime/lib/block.cc index 591428390..fca4cab97 100644 --- a/gnuradio-runtime/lib/block.cc +++ b/gnuradio-runtime/lib/block.cc @@ -61,7 +61,8 @@ block::block(const std::string& name, { global_block_registry.register_primitive(alias(), this); message_port_register_in(d_system_port); - set_msg_handler(d_system_port, boost::bind(&block::system_handler, this, _1)); + set_msg_handler(d_system_port, + boost::bind(&block::system_handler, this, boost::placeholders::_1)); configure_default_loggers(d_logger, d_debug_logger, symbol_name()); } diff --git a/gr-blocks/lib/copy_impl.cc b/gr-blocks/lib/copy_impl.cc index c377e57b1..b55196c24 100644 --- a/gr-blocks/lib/copy_impl.cc +++ b/gr-blocks/lib/copy_impl.cc @@ -44,7 +44,9 @@ copy_impl::copy_impl(size_t itemsize) d_enabled(true) { message_port_register_in(pmt::mp("en")); - set_msg_handler(pmt::mp("en"), boost::bind(©_impl::handle_enable, this, _1)); + set_msg_handler( + pmt::mp("en"), + boost::bind(©_impl::handle_enable, this, boost::placeholders::_1)); } copy_impl::~copy_impl() {} diff --git a/gr-blocks/lib/message_debug_impl.cc b/gr-blocks/lib/message_debug_impl.cc index a8c84aa50..916f97ca3 100644 --- a/gr-blocks/lib/message_debug_impl.cc +++ b/gr-blocks/lib/message_debug_impl.cc @@ -90,14 +90,19 @@ message_debug_impl::message_debug_impl() : block("message_debug", io_signature::make(0, 0, 0), io_signature::make(0, 0, 0)) { message_port_register_in(pmt::mp("print")); - set_msg_handler(pmt::mp("print"), boost::bind(&message_debug_impl::print, this, _1)); + set_msg_handler( + pmt::mp("print"), + boost::bind(&message_debug_impl::print, this, boost::placeholders::_1)); message_port_register_in(pmt::mp("store")); - set_msg_handler(pmt::mp("store"), boost::bind(&message_debug_impl::store, this, _1)); + set_msg_handler( + pmt::mp("store"), + boost::bind(&message_debug_impl::store, this, boost::placeholders::_1)); message_port_register_in(pmt::mp("print_pdu")); - set_msg_handler(pmt::mp("print_pdu"), - boost::bind(&message_debug_impl::print_pdu, this, _1)); + set_msg_handler( + pmt::mp("print_pdu"), + boost::bind(&message_debug_impl::print_pdu, this, boost::placeholders::_1)); } message_debug_impl::~message_debug_impl() {} diff --git a/gr-blocks/lib/message_strobe_impl.cc b/gr-blocks/lib/message_strobe_impl.cc index 038eeae5a..d131b8166 100644 --- a/gr-blocks/lib/message_strobe_impl.cc +++ b/gr-blocks/lib/message_strobe_impl.cc @@ -53,8 +53,9 @@ message_strobe_impl::message_strobe_impl(pmt::pmt_t msg, long period_ms) message_port_register_out(d_port); message_port_register_in(pmt::mp("set_msg")); - set_msg_handler(pmt::mp("set_msg"), - boost::bind(&message_strobe_impl::set_msg, this, _1)); + set_msg_handler( + pmt::mp("set_msg"), + boost::bind(&message_strobe_impl::set_msg, this, boost::placeholders::_1)); } message_strobe_impl::~message_strobe_impl() {} diff --git a/gr-blocks/lib/message_strobe_random_impl.cc b/gr-blocks/lib/message_strobe_random_impl.cc index 0ab5d6adc..53e641fba 100644 --- a/gr-blocks/lib/message_strobe_random_impl.cc +++ b/gr-blocks/lib/message_strobe_random_impl.cc @@ -74,8 +74,9 @@ message_strobe_random_impl::message_strobe_random_impl( new gr::thread::thread(boost::bind(&message_strobe_random_impl::run, this))); message_port_register_in(pmt::mp("set_msg")); - set_msg_handler(pmt::mp("set_msg"), - boost::bind(&message_strobe_random_impl::set_msg, this, _1)); + set_msg_handler( + pmt::mp("set_msg"), + boost::bind(&message_strobe_random_impl::set_msg, this, boost::placeholders::_1)); } long message_strobe_random_impl::next_delay() diff --git a/gr-blocks/lib/multiply_matrix_impl.cc b/gr-blocks/lib/multiply_matrix_impl.cc index e1b9c746c..e38953bab 100644 --- a/gr-blocks/lib/multiply_matrix_impl.cc +++ b/gr-blocks/lib/multiply_matrix_impl.cc @@ -235,9 +235,10 @@ multiply_matrix_impl::multiply_matrix_impl( pmt::pmt_t port_name = pmt::string_to_symbol("set_A"); message_port_register_in(port_name); - set_msg_handler( - port_name, - boost::bind(&multiply_matrix_impl::msg_handler_A, this, _1)); + set_msg_handler(port_name, + boost::bind(&multiply_matrix_impl::msg_handler_A, + this, + boost::placeholders::_1)); } template <> @@ -257,7 +258,9 @@ multiply_matrix_impl::multiply_matrix_impl( pmt::pmt_t port_name = pmt::string_to_symbol("set_A"); message_port_register_in(port_name); set_msg_handler(port_name, - boost::bind(&multiply_matrix_impl::msg_handler_A, this, _1)); + boost::bind(&multiply_matrix_impl::msg_handler_A, + this, + boost::placeholders::_1)); } diff --git a/gr-blocks/lib/mute_impl.cc b/gr-blocks/lib/mute_impl.cc index bd65ce207..5c732f8f4 100644 --- a/gr-blocks/lib/mute_impl.cc +++ b/gr-blocks/lib/mute_impl.cc @@ -47,8 +47,9 @@ mute_impl::mute_impl(bool mute) d_mute(mute) { this->message_port_register_in(pmt::intern("set_mute")); - this->set_msg_handler(pmt::intern("set_mute"), - boost::bind(&mute_impl::set_mute_pmt, this, _1)); + this->set_msg_handler( + pmt::intern("set_mute"), + boost::bind(&mute_impl::set_mute_pmt, this, boost::placeholders::_1)); } template diff --git a/gr-blocks/lib/nop_impl.cc b/gr-blocks/lib/nop_impl.cc index db216d97a..e9baee587 100644 --- a/gr-blocks/lib/nop_impl.cc +++ b/gr-blocks/lib/nop_impl.cc @@ -44,8 +44,9 @@ nop_impl::nop_impl(size_t sizeof_stream_item) { // Arrange to have count_received_msgs called when messages are received. message_port_register_in(pmt::mp("port")); - set_msg_handler(pmt::mp("port"), - boost::bind(&nop_impl::count_received_msgs, this, _1)); + set_msg_handler( + pmt::mp("port"), + boost::bind(&nop_impl::count_received_msgs, this, boost::placeholders::_1)); } nop_impl::~nop_impl() {} diff --git a/gr-blocks/lib/pdu_filter_impl.cc b/gr-blocks/lib/pdu_filter_impl.cc index b0748eec0..63cfe47e4 100644 --- a/gr-blocks/lib/pdu_filter_impl.cc +++ b/gr-blocks/lib/pdu_filter_impl.cc @@ -44,8 +44,9 @@ pdu_filter_impl::pdu_filter_impl(pmt::pmt_t k, pmt::pmt_t v, bool invert) { message_port_register_out(pdu::pdu_port_id()); message_port_register_in(pdu::pdu_port_id()); - set_msg_handler(pdu::pdu_port_id(), - boost::bind(&pdu_filter_impl::handle_msg, this, _1)); + set_msg_handler( + pdu::pdu_port_id(), + boost::bind(&pdu_filter_impl::handle_msg, this, boost::placeholders::_1)); } void pdu_filter_impl::handle_msg(pmt::pmt_t pdu) diff --git a/gr-blocks/lib/pdu_remove_impl.cc b/gr-blocks/lib/pdu_remove_impl.cc index 19cc4dc76..2b97f827b 100644 --- a/gr-blocks/lib/pdu_remove_impl.cc +++ b/gr-blocks/lib/pdu_remove_impl.cc @@ -42,8 +42,9 @@ pdu_remove_impl::pdu_remove_impl(pmt::pmt_t k) { message_port_register_out(pdu::pdu_port_id()); message_port_register_in(pdu::pdu_port_id()); - set_msg_handler(pdu::pdu_port_id(), - boost::bind(&pdu_remove_impl::handle_msg, this, _1)); + set_msg_handler( + pdu::pdu_port_id(), + boost::bind(&pdu_remove_impl::handle_msg, this, boost::placeholders::_1)); } void pdu_remove_impl::handle_msg(pmt::pmt_t pdu) diff --git a/gr-blocks/lib/pdu_set_impl.cc b/gr-blocks/lib/pdu_set_impl.cc index 40fbc3cd8..af59ef70f 100644 --- a/gr-blocks/lib/pdu_set_impl.cc +++ b/gr-blocks/lib/pdu_set_impl.cc @@ -43,7 +43,9 @@ pdu_set_impl::pdu_set_impl(pmt::pmt_t k, pmt::pmt_t v) { message_port_register_out(pdu::pdu_port_id()); message_port_register_in(pdu::pdu_port_id()); - set_msg_handler(pdu::pdu_port_id(), boost::bind(&pdu_set_impl::handle_msg, this, _1)); + set_msg_handler( + pdu::pdu_port_id(), + boost::bind(&pdu_set_impl::handle_msg, this, boost::placeholders::_1)); } void pdu_set_impl::handle_msg(pmt::pmt_t pdu) diff --git a/gr-blocks/lib/random_pdu_impl.cc b/gr-blocks/lib/random_pdu_impl.cc index 75d825aef..6c142c353 100644 --- a/gr-blocks/lib/random_pdu_impl.cc +++ b/gr-blocks/lib/random_pdu_impl.cc @@ -52,8 +52,9 @@ random_pdu_impl::random_pdu_impl(int min_items, { message_port_register_out(pdu::pdu_port_id()); message_port_register_in(pmt::mp("generate")); - set_msg_handler(pmt::mp("generate"), - boost::bind(&random_pdu_impl::generate_pdu, this, _1)); + set_msg_handler( + pmt::mp("generate"), + boost::bind(&random_pdu_impl::generate_pdu, this, boost::placeholders::_1)); if (length_modulo < 1) throw std::runtime_error("length_module must be >= 1"); if (max_items < length_modulo) diff --git a/gr-blocks/lib/repeat_impl.cc b/gr-blocks/lib/repeat_impl.cc index 189fbc894..d6569625d 100644 --- a/gr-blocks/lib/repeat_impl.cc +++ b/gr-blocks/lib/repeat_impl.cc @@ -44,8 +44,9 @@ repeat_impl::repeat_impl(size_t itemsize, int interp) d_interp(interp) { message_port_register_in(pmt::mp("interpolation")); - set_msg_handler(pmt::mp("interpolation"), - boost::bind(&repeat_impl::msg_set_interpolation, this, _1)); + set_msg_handler( + pmt::mp("interpolation"), + boost::bind(&repeat_impl::msg_set_interpolation, this, boost::placeholders::_1)); } void repeat_impl::msg_set_interpolation(pmt::pmt_t msg) diff --git a/gr-blocks/lib/socket_pdu_impl.cc b/gr-blocks/lib/socket_pdu_impl.cc index df69f07ad..163eec3a6 100644 --- a/gr-blocks/lib/socket_pdu_impl.cc +++ b/gr-blocks/lib/socket_pdu_impl.cc @@ -101,7 +101,9 @@ socket_pdu_impl::socket_pdu_impl(std::string type, start_tcp_accept(); set_msg_handler(pdu::pdu_port_id(), - boost::bind(&socket_pdu_impl::tcp_server_send, this, _1)); + boost::bind(&socket_pdu_impl::tcp_server_send, + this, + boost::placeholders::_1)); } else if (type == "TCP_CLIENT") { boost::system::error_code error = boost::asio::error::host_not_found; d_tcp_socket.reset(new boost::asio::ip::tcp::socket(d_io_service)); @@ -111,7 +113,9 @@ socket_pdu_impl::socket_pdu_impl(std::string type, d_tcp_socket->set_option(boost::asio::ip::tcp::no_delay(d_tcp_no_delay)); set_msg_handler(pdu::pdu_port_id(), - boost::bind(&socket_pdu_impl::tcp_client_send, this, _1)); + boost::bind(&socket_pdu_impl::tcp_client_send, + this, + boost::placeholders::_1)); d_tcp_socket->async_read_some( boost::asio::buffer(d_rxbuf), @@ -130,8 +134,9 @@ socket_pdu_impl::socket_pdu_impl(std::string type, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred)); - set_msg_handler(pdu::pdu_port_id(), - boost::bind(&socket_pdu_impl::udp_send, this, _1)); + set_msg_handler( + pdu::pdu_port_id(), + boost::bind(&socket_pdu_impl::udp_send, this, boost::placeholders::_1)); } else if (type == "UDP_CLIENT") { d_udp_socket.reset( new boost::asio::ip::udp::socket(d_io_service, d_udp_endpoint)); @@ -143,8 +148,9 @@ socket_pdu_impl::socket_pdu_impl(std::string type, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred)); - set_msg_handler(pdu::pdu_port_id(), - boost::bind(&socket_pdu_impl::udp_send, this, _1)); + set_msg_handler( + pdu::pdu_port_id(), + boost::bind(&socket_pdu_impl::udp_send, this, boost::placeholders::_1)); } else throw std::runtime_error("gr::blocks:socket_pdu: unknown socket type"); diff --git a/gr-blocks/lib/tagged_stream_multiply_length_impl.cc b/gr-blocks/lib/tagged_stream_multiply_length_impl.cc index 30f4c46dc..34b95d647 100644 --- a/gr-blocks/lib/tagged_stream_multiply_length_impl.cc +++ b/gr-blocks/lib/tagged_stream_multiply_length_impl.cc @@ -49,9 +49,10 @@ tagged_stream_multiply_length_impl::tagged_stream_multiply_length_impl( set_tag_propagation_policy(TPP_DONT); set_relative_rate(1, 1); message_port_register_in(pmt::intern("set_scalar")); - set_msg_handler( - pmt::intern("set_scalar"), - boost::bind(&tagged_stream_multiply_length_impl::set_scalar_pmt, this, _1)); + set_msg_handler(pmt::intern("set_scalar"), + boost::bind(&tagged_stream_multiply_length_impl::set_scalar_pmt, + this, + boost::placeholders::_1)); } tagged_stream_multiply_length_impl::~tagged_stream_multiply_length_impl() {} diff --git a/gr-blocks/lib/tuntap_pdu_impl.cc b/gr-blocks/lib/tuntap_pdu_impl.cc index 4343ae1dc..0d9d7e28c 100644 --- a/gr-blocks/lib/tuntap_pdu_impl.cc +++ b/gr-blocks/lib/tuntap_pdu_impl.cc @@ -96,7 +96,8 @@ tuntap_pdu_impl::tuntap_pdu_impl(std::string dev, int MTU, bool istunflag) // set up input message port message_port_register_in(pdu::pdu_port_id()); - set_msg_handler(pdu::pdu_port_id(), boost::bind(&tuntap_pdu_impl::send, this, _1)); + set_msg_handler(pdu::pdu_port_id(), + boost::bind(&tuntap_pdu_impl::send, this, boost::placeholders::_1)); } int tuntap_pdu_impl::tun_alloc(char* dev, int flags) diff --git a/gr-digital/lib/chunks_to_symbols_impl.cc b/gr-digital/lib/chunks_to_symbols_impl.cc index 26d590a66..a6810a69e 100644 --- a/gr-digital/lib/chunks_to_symbols_impl.cc +++ b/gr-digital/lib/chunks_to_symbols_impl.cc @@ -53,8 +53,9 @@ chunks_to_symbols_impl::chunks_to_symbols_impl( this->message_port_register_in(pmt::mp("set_symbol_table")); this->set_msg_handler( pmt::mp("set_symbol_table"), - boost::bind( - &chunks_to_symbols_impl::handle_set_symbol_table, this, _1)); + boost::bind(&chunks_to_symbols_impl::handle_set_symbol_table, + this, + boost::placeholders::_1)); } template diff --git a/gr-digital/lib/constellation_receiver_cb_impl.cc b/gr-digital/lib/constellation_receiver_cb_impl.cc index 7fb7559d5..7e216ece5 100644 --- a/gr-digital/lib/constellation_receiver_cb_impl.cc +++ b/gr-digital/lib/constellation_receiver_cb_impl.cc @@ -61,14 +61,16 @@ constellation_receiver_cb_impl::constellation_receiver_cb_impl( "This receiver only works with constellations of dimension 1."); message_port_register_in(pmt::mp("set_constellation")); - set_msg_handler( - pmt::mp("set_constellation"), - boost::bind(&constellation_receiver_cb_impl::handle_set_constellation, this, _1)); + set_msg_handler(pmt::mp("set_constellation"), + boost::bind(&constellation_receiver_cb_impl::handle_set_constellation, + this, + boost::placeholders::_1)); message_port_register_in(pmt::mp("rotate_phase")); - set_msg_handler( - pmt::mp("rotate_phase"), - boost::bind(&constellation_receiver_cb_impl::handle_rotate_phase, this, _1)); + set_msg_handler(pmt::mp("rotate_phase"), + boost::bind(&constellation_receiver_cb_impl::handle_rotate_phase, + this, + boost::placeholders::_1)); } constellation_receiver_cb_impl::~constellation_receiver_cb_impl() {} diff --git a/gr-digital/lib/costas_loop_cc_impl.cc b/gr-digital/lib/costas_loop_cc_impl.cc index c3b30834e..e1229e6f4 100644 --- a/gr-digital/lib/costas_loop_cc_impl.cc +++ b/gr-digital/lib/costas_loop_cc_impl.cc @@ -82,7 +82,9 @@ costas_loop_cc_impl::costas_loop_cc_impl(float loop_bw, int order, bool use_snr) message_port_register_in(pmt::mp("noise")); set_msg_handler(pmt::mp("noise"), - boost::bind(&costas_loop_cc_impl::handle_set_noise, this, _1)); + boost::bind(&costas_loop_cc_impl::handle_set_noise, + this, + boost::placeholders::_1)); } costas_loop_cc_impl::~costas_loop_cc_impl() {} diff --git a/gr-digital/lib/crc32_async_bb_impl.cc b/gr-digital/lib/crc32_async_bb_impl.cc index bffbb2a73..66143866c 100644 --- a/gr-digital/lib/crc32_async_bb_impl.cc +++ b/gr-digital/lib/crc32_async_bb_impl.cc @@ -48,9 +48,13 @@ crc32_async_bb_impl::crc32_async_bb_impl(bool check) message_port_register_out(d_out_port); if (check) - set_msg_handler(d_in_port, boost::bind(&crc32_async_bb_impl::check, this, _1)); + set_msg_handler( + d_in_port, + boost::bind(&crc32_async_bb_impl::check, this, boost::placeholders::_1)); else - set_msg_handler(d_in_port, boost::bind(&crc32_async_bb_impl::calc, this, _1)); + set_msg_handler( + d_in_port, + boost::bind(&crc32_async_bb_impl::calc, this, boost::placeholders::_1)); } crc32_async_bb_impl::~crc32_async_bb_impl() {} diff --git a/gr-digital/lib/header_payload_demux_impl.cc b/gr-digital/lib/header_payload_demux_impl.cc index 98c805fb2..7cc1e0a4e 100644 --- a/gr-digital/lib/header_payload_demux_impl.cc +++ b/gr-digital/lib/header_payload_demux_impl.cc @@ -150,9 +150,10 @@ header_payload_demux_impl::header_payload_demux_impl( } set_tag_propagation_policy(TPP_DONT); message_port_register_in(msg_port_id()); - set_msg_handler( - msg_port_id(), - boost::bind(&header_payload_demux_impl::parse_header_data_msg, this, _1)); + set_msg_handler(msg_port_id(), + boost::bind(&header_payload_demux_impl::parse_header_data_msg, + this, + boost::placeholders::_1)); for (size_t i = 0; i < special_tags.size(); i++) { d_special_tags.push_back(pmt::string_to_symbol(special_tags[i])); d_special_tags_last_value.push_back(pmt::PMT_NIL); diff --git a/gr-digital/lib/protocol_formatter_async_impl.cc b/gr-digital/lib/protocol_formatter_async_impl.cc index 84b693745..c08bbb9ae 100644 --- a/gr-digital/lib/protocol_formatter_async_impl.cc +++ b/gr-digital/lib/protocol_formatter_async_impl.cc @@ -55,7 +55,9 @@ protocol_formatter_async_impl::protocol_formatter_async_impl( message_port_register_out(d_pld_port); set_msg_handler(d_in_port, - boost::bind(&protocol_formatter_async_impl::append, this, _1)); + boost::bind(&protocol_formatter_async_impl::append, + this, + boost::placeholders::_1)); } protocol_formatter_async_impl::~protocol_formatter_async_impl() {} diff --git a/gr-fec/lib/async_decoder_impl.cc b/gr-fec/lib/async_decoder_impl.cc index e7a668c83..5d68d13ae 100644 --- a/gr-fec/lib/async_decoder_impl.cc +++ b/gr-fec/lib/async_decoder_impl.cc @@ -65,10 +65,14 @@ async_decoder_impl::async_decoder_impl(generic_decoder::sptr my_decoder, if (d_packed) { d_pack = new blocks::kernel::pack_k_bits(8); set_msg_handler(d_in_port, - boost::bind(&async_decoder_impl::decode_packed, this, _1)); + boost::bind(&async_decoder_impl::decode_packed, + this, + boost::placeholders::_1)); } else { set_msg_handler(d_in_port, - boost::bind(&async_decoder_impl::decode_unpacked, this, _1)); + boost::bind(&async_decoder_impl::decode_unpacked, + this, + boost::placeholders::_1)); } // The maximum frame size is set by the initial frame size of the decoder. diff --git a/gr-fec/lib/async_encoder_impl.cc b/gr-fec/lib/async_encoder_impl.cc index 811d55601..506ae5c7e 100644 --- a/gr-fec/lib/async_encoder_impl.cc +++ b/gr-fec/lib/async_encoder_impl.cc @@ -64,7 +64,9 @@ async_encoder_impl::async_encoder_impl(generic_encoder::sptr my_encoder, if (d_packed) { set_msg_handler(d_in_port, - boost::bind(&async_encoder_impl::encode_packed, this, _1)); + boost::bind(&async_encoder_impl::encode_packed, + this, + boost::placeholders::_1)); d_unpack = new blocks::kernel::unpack_k_bits(8); @@ -74,7 +76,9 @@ async_encoder_impl::async_encoder_impl(generic_encoder::sptr my_encoder, } else { set_msg_handler(d_in_port, - boost::bind(&async_encoder_impl::encode_unpacked, this, _1)); + boost::bind(&async_encoder_impl::encode_unpacked, + this, + boost::placeholders::_1)); } if (d_packed || (strncmp(d_encoder->get_input_conversion(), "pack", 4) == 0)) { diff --git a/gr-fec/lib/depuncture_bb_impl.cc b/gr-fec/lib/depuncture_bb_impl.cc index 27d00bb5b..f64dad45f 100644 --- a/gr-fec/lib/depuncture_bb_impl.cc +++ b/gr-fec/lib/depuncture_bb_impl.cc @@ -74,7 +74,9 @@ depuncture_bb_impl::depuncture_bb_impl(int puncsize, int puncpat, int delay, cha set_fixed_rate(true); set_relative_rate((uint64_t)d_puncsize, (uint64_t)(d_puncsize - d_puncholes)); set_output_multiple(d_puncsize); - // set_msg_handler(boost::bind(&depuncture_bb_impl::catch_msg, this, _1)); + // set_msg_handler(boost::bind(&depuncture_bb_impl::catch_msg, + // this, + // boost::placeholders::_1)); } depuncture_bb_impl::~depuncture_bb_impl() {} diff --git a/gr-fec/lib/puncture_bb_impl.cc b/gr-fec/lib/puncture_bb_impl.cc index a365d6a69..f2078d8c5 100644 --- a/gr-fec/lib/puncture_bb_impl.cc +++ b/gr-fec/lib/puncture_bb_impl.cc @@ -72,7 +72,9 @@ puncture_bb_impl::puncture_bb_impl(int puncsize, int puncpat, int delay) set_fixed_rate(true); set_relative_rate((uint64_t)(d_puncsize - d_puncholes), (uint64_t)d_puncsize); set_output_multiple(d_puncsize - d_puncholes); - // set_msg_handler(boost::bind(&puncture_bb_impl::catch_msg, this, _1)); + // set_msg_handler(boost::bind(&puncture_bb_impl::catch_msg, + // this, + // boost::placeholders::_1)); } puncture_bb_impl::~puncture_bb_impl() {} diff --git a/gr-fec/lib/puncture_ff_impl.cc b/gr-fec/lib/puncture_ff_impl.cc index c95288d69..95fb649a8 100644 --- a/gr-fec/lib/puncture_ff_impl.cc +++ b/gr-fec/lib/puncture_ff_impl.cc @@ -72,7 +72,9 @@ puncture_ff_impl::puncture_ff_impl(int puncsize, int puncpat, int delay) set_fixed_rate(true); set_relative_rate((uint64_t)(d_puncsize - d_puncholes), (uint64_t)d_puncsize); set_output_multiple(d_puncsize - d_puncholes); - // set_msg_handler(boost::bind(&puncture_ff_impl::catch_msg, this, _1)); + // set_msg_handler(boost::bind(&puncture_ff_impl::catch_msg, + // this, + // boost::placeholders::_1)); } puncture_ff_impl::~puncture_ff_impl() {} diff --git a/gr-filter/lib/freq_xlating_fir_filter_impl.cc b/gr-filter/lib/freq_xlating_fir_filter_impl.cc index 8ddc967ba..50ec58947 100644 --- a/gr-filter/lib/freq_xlating_fir_filter_impl.cc +++ b/gr-filter/lib/freq_xlating_fir_filter_impl.cc @@ -72,7 +72,7 @@ freq_xlating_fir_filter_impl::freq_xlating_fir_filter_impl( boost::bind( &freq_xlating_fir_filter_impl::handle_set_center_freq, this, - _1)); + boost::placeholders::_1)); } template diff --git a/gr-filter/lib/mmse_resampler_cc_impl.cc b/gr-filter/lib/mmse_resampler_cc_impl.cc index 59f9eacfa..bdce51716 100644 --- a/gr-filter/lib/mmse_resampler_cc_impl.cc +++ b/gr-filter/lib/mmse_resampler_cc_impl.cc @@ -52,8 +52,9 @@ mmse_resampler_cc_impl::mmse_resampler_cc_impl(float phase_shift, float resamp_r set_inverse_relative_rate(d_mu_inc); message_port_register_in(pmt::intern("msg_in")); - set_msg_handler(pmt::intern("msg_in"), - boost::bind(&mmse_resampler_cc_impl::handle_msg, this, _1)); + set_msg_handler( + pmt::intern("msg_in"), + boost::bind(&mmse_resampler_cc_impl::handle_msg, this, boost::placeholders::_1)); } mmse_resampler_cc_impl::~mmse_resampler_cc_impl() { delete d_resamp; } diff --git a/gr-filter/lib/mmse_resampler_ff_impl.cc b/gr-filter/lib/mmse_resampler_ff_impl.cc index 342d9f767..3d7272711 100644 --- a/gr-filter/lib/mmse_resampler_ff_impl.cc +++ b/gr-filter/lib/mmse_resampler_ff_impl.cc @@ -53,8 +53,9 @@ mmse_resampler_ff_impl::mmse_resampler_ff_impl(float phase_shift, float resamp_r set_inverse_relative_rate(d_mu_inc); message_port_register_in(pmt::intern("msg_in")); - set_msg_handler(pmt::intern("msg_in"), - boost::bind(&mmse_resampler_ff_impl::handle_msg, this, _1)); + set_msg_handler( + pmt::intern("msg_in"), + boost::bind(&mmse_resampler_ff_impl::handle_msg, this, boost::placeholders::_1)); } mmse_resampler_ff_impl::~mmse_resampler_ff_impl() { delete d_resamp; } diff --git a/gr-qtgui/lib/const_sink_c_impl.cc b/gr-qtgui/lib/const_sink_c_impl.cc index 852f6ee10..04d421d03 100644 --- a/gr-qtgui/lib/const_sink_c_impl.cc +++ b/gr-qtgui/lib/const_sink_c_impl.cc @@ -69,8 +69,9 @@ const_sink_c_impl::const_sink_c_impl(int size, // setup PDU handling input port message_port_register_in(pmt::mp("in")); - set_msg_handler(pmt::mp("in"), - boost::bind(&const_sink_c_impl::handle_pdus, this, _1)); + set_msg_handler( + pmt::mp("in"), + boost::bind(&const_sink_c_impl::handle_pdus, this, boost::placeholders::_1)); for (int i = 0; i < d_nconnections; i++) { d_residbufs_real.push_back( diff --git a/gr-qtgui/lib/edit_box_msg_impl.cc b/gr-qtgui/lib/edit_box_msg_impl.cc index 8713aa820..39546cbf3 100644 --- a/gr-qtgui/lib/edit_box_msg_impl.cc +++ b/gr-qtgui/lib/edit_box_msg_impl.cc @@ -158,7 +158,9 @@ edit_box_msg_impl::edit_box_msg_impl(data_type_t type, message_port_register_out(d_port); message_port_register_in(pmt::mp("val")); - set_msg_handler(pmt::mp("val"), boost::bind(&edit_box_msg_impl::set_value, this, _1)); + set_msg_handler( + pmt::mp("val"), + boost::bind(&edit_box_msg_impl::set_value, this, boost::placeholders::_1)); } edit_box_msg_impl::~edit_box_msg_impl() diff --git a/gr-qtgui/lib/freq_sink_c_impl.cc b/gr-qtgui/lib/freq_sink_c_impl.cc index 3a34df6ec..fe231699f 100644 --- a/gr-qtgui/lib/freq_sink_c_impl.cc +++ b/gr-qtgui/lib/freq_sink_c_impl.cc @@ -82,17 +82,23 @@ freq_sink_c_impl::freq_sink_c_impl(int fftsize, // setup bw input port message_port_register_in(d_port_bw); - set_msg_handler(d_port_bw, boost::bind(&freq_sink_c_impl::handle_set_bw, this, _1)); + set_msg_handler( + d_port_bw, + boost::bind(&freq_sink_c_impl::handle_set_bw, this, boost::placeholders::_1)); // setup output message port to post frequency when display is // double-clicked message_port_register_out(d_port); message_port_register_in(d_port); - set_msg_handler(d_port, boost::bind(&freq_sink_c_impl::handle_set_freq, this, _1)); + set_msg_handler( + d_port, + boost::bind(&freq_sink_c_impl::handle_set_freq, this, boost::placeholders::_1)); // setup PDU handling input port message_port_register_in(pmt::mp("in")); - set_msg_handler(pmt::mp("in"), boost::bind(&freq_sink_c_impl::handle_pdus, this, _1)); + set_msg_handler( + pmt::mp("in"), + boost::bind(&freq_sink_c_impl::handle_pdus, this, boost::placeholders::_1)); d_main_gui = NULL; diff --git a/gr-qtgui/lib/freq_sink_f_impl.cc b/gr-qtgui/lib/freq_sink_f_impl.cc index c14bfc31f..7090d8699 100644 --- a/gr-qtgui/lib/freq_sink_f_impl.cc +++ b/gr-qtgui/lib/freq_sink_f_impl.cc @@ -82,17 +82,23 @@ freq_sink_f_impl::freq_sink_f_impl(int fftsize, // setup bw input port message_port_register_in(d_port_bw); - set_msg_handler(d_port_bw, boost::bind(&freq_sink_f_impl::handle_set_bw, this, _1)); + set_msg_handler( + d_port_bw, + boost::bind(&freq_sink_f_impl::handle_set_bw, this, boost::placeholders::_1)); // setup output message port to post frequency when display is // double-clicked message_port_register_out(d_port); message_port_register_in(d_port); - set_msg_handler(d_port, boost::bind(&freq_sink_f_impl::handle_set_freq, this, _1)); + set_msg_handler( + d_port, + boost::bind(&freq_sink_f_impl::handle_set_freq, this, boost::placeholders::_1)); // setup PDU handling input port message_port_register_in(pmt::mp("in")); - set_msg_handler(pmt::mp("in"), boost::bind(&freq_sink_f_impl::handle_pdus, this, _1)); + set_msg_handler( + pmt::mp("in"), + boost::bind(&freq_sink_f_impl::handle_pdus, this, boost::placeholders::_1)); d_main_gui = NULL; diff --git a/gr-qtgui/lib/histogram_sink_f_impl.cc b/gr-qtgui/lib/histogram_sink_f_impl.cc index d16de932c..1602d1896 100644 --- a/gr-qtgui/lib/histogram_sink_f_impl.cc +++ b/gr-qtgui/lib/histogram_sink_f_impl.cc @@ -81,8 +81,9 @@ histogram_sink_f_impl::histogram_sink_f_impl(int size, // setup PDU handling input port message_port_register_in(pmt::mp("in")); - set_msg_handler(pmt::mp("in"), - boost::bind(&histogram_sink_f_impl::handle_pdus, this, _1)); + set_msg_handler( + pmt::mp("in"), + boost::bind(&histogram_sink_f_impl::handle_pdus, this, boost::placeholders::_1)); // +1 for the PDU buffer for (int i = 0; i < d_nconnections + 1; i++) { diff --git a/gr-qtgui/lib/sink_c_impl.cc b/gr-qtgui/lib/sink_c_impl.cc index d3feb9d16..73136e789 100644 --- a/gr-qtgui/lib/sink_c_impl.cc +++ b/gr-qtgui/lib/sink_c_impl.cc @@ -96,7 +96,9 @@ sink_c_impl::sink_c_impl(int fftsize, // double-clicked message_port_register_out(d_port); message_port_register_in(d_port); - set_msg_handler(d_port, boost::bind(&sink_c_impl::handle_set_freq, this, _1)); + set_msg_handler( + d_port, + boost::bind(&sink_c_impl::handle_set_freq, this, boost::placeholders::_1)); d_main_gui = NULL; diff --git a/gr-qtgui/lib/sink_f_impl.cc b/gr-qtgui/lib/sink_f_impl.cc index 418b630b7..d31023a51 100644 --- a/gr-qtgui/lib/sink_f_impl.cc +++ b/gr-qtgui/lib/sink_f_impl.cc @@ -95,7 +95,9 @@ sink_f_impl::sink_f_impl(int fftsize, // double-clicked message_port_register_out(d_port); message_port_register_in(d_port); - set_msg_handler(d_port, boost::bind(&sink_f_impl::handle_set_freq, this, _1)); + set_msg_handler( + d_port, + boost::bind(&sink_f_impl::handle_set_freq, this, boost::placeholders::_1)); d_main_gui = NULL; diff --git a/gr-qtgui/lib/time_raster_sink_b_impl.cc b/gr-qtgui/lib/time_raster_sink_b_impl.cc index 045c216b0..3aa503ccf 100644 --- a/gr-qtgui/lib/time_raster_sink_b_impl.cc +++ b/gr-qtgui/lib/time_raster_sink_b_impl.cc @@ -84,7 +84,9 @@ time_raster_sink_b_impl::time_raster_sink_b_impl(double samp_rate, // setup PDU handling input port message_port_register_in(pmt::mp("in")); set_msg_handler(pmt::mp("in"), - boost::bind(&time_raster_sink_b_impl::handle_pdus, this, _1)); + boost::bind(&time_raster_sink_b_impl::handle_pdus, + this, + boost::placeholders::_1)); d_scale = 1.0f; diff --git a/gr-qtgui/lib/time_raster_sink_f_impl.cc b/gr-qtgui/lib/time_raster_sink_f_impl.cc index d186f319d..b3516e5be 100644 --- a/gr-qtgui/lib/time_raster_sink_f_impl.cc +++ b/gr-qtgui/lib/time_raster_sink_f_impl.cc @@ -84,7 +84,9 @@ time_raster_sink_f_impl::time_raster_sink_f_impl(double samp_rate, // setup PDU handling input port message_port_register_in(pmt::mp("in")); set_msg_handler(pmt::mp("in"), - boost::bind(&time_raster_sink_f_impl::handle_pdus, this, _1)); + boost::bind(&time_raster_sink_f_impl::handle_pdus, + this, + boost::placeholders::_1)); d_icols = static_cast(ceil(d_cols)); d_tmpflt = (float*)volk_malloc(d_icols * sizeof(float), volk_get_alignment()); diff --git a/gr-qtgui/lib/time_sink_c_impl.cc b/gr-qtgui/lib/time_sink_c_impl.cc index b73a1c1ad..83fbda298 100644 --- a/gr-qtgui/lib/time_sink_c_impl.cc +++ b/gr-qtgui/lib/time_sink_c_impl.cc @@ -80,7 +80,9 @@ time_sink_c_impl::time_sink_c_impl(int size, // setup PDU handling input port message_port_register_in(pmt::mp("in")); - set_msg_handler(pmt::mp("in"), boost::bind(&time_sink_c_impl::handle_pdus, this, _1)); + set_msg_handler( + pmt::mp("in"), + boost::bind(&time_sink_c_impl::handle_pdus, this, boost::placeholders::_1)); // +2 for the PDU message buffers for (unsigned int n = 0; n < d_nconnections + 2; n++) { diff --git a/gr-qtgui/lib/time_sink_f_impl.cc b/gr-qtgui/lib/time_sink_f_impl.cc index df13998d7..dd5ed12c8 100644 --- a/gr-qtgui/lib/time_sink_f_impl.cc +++ b/gr-qtgui/lib/time_sink_f_impl.cc @@ -80,7 +80,9 @@ time_sink_f_impl::time_sink_f_impl(int size, // setup PDU handling input port message_port_register_in(pmt::mp("in")); - set_msg_handler(pmt::mp("in"), boost::bind(&time_sink_f_impl::handle_pdus, this, _1)); + set_msg_handler( + pmt::mp("in"), + boost::bind(&time_sink_f_impl::handle_pdus, this, boost::placeholders::_1)); // +1 for the PDU buffer for (unsigned int n = 0; n < d_nconnections + 1; n++) { diff --git a/gr-qtgui/lib/waterfall_sink_c_impl.cc b/gr-qtgui/lib/waterfall_sink_c_impl.cc index fcf2ed98b..da38d32ba 100644 --- a/gr-qtgui/lib/waterfall_sink_c_impl.cc +++ b/gr-qtgui/lib/waterfall_sink_c_impl.cc @@ -118,19 +118,24 @@ waterfall_sink_c_impl::waterfall_sink_c_impl(int fftsize, // setup bw input port message_port_register_in(d_port_bw); set_msg_handler(d_port_bw, - boost::bind(&waterfall_sink_c_impl::handle_set_bw, this, _1)); + boost::bind(&waterfall_sink_c_impl::handle_set_bw, + this, + boost::placeholders::_1)); // setup output message port to post frequency when display is // double-clicked message_port_register_out(d_port); message_port_register_in(d_port); set_msg_handler(d_port, - boost::bind(&waterfall_sink_c_impl::handle_set_freq, this, _1)); + boost::bind(&waterfall_sink_c_impl::handle_set_freq, + this, + boost::placeholders::_1)); // setup PDU handling input port message_port_register_in(pmt::mp("in")); - set_msg_handler(pmt::mp("in"), - boost::bind(&waterfall_sink_c_impl::handle_pdus, this, _1)); + set_msg_handler( + pmt::mp("in"), + boost::bind(&waterfall_sink_c_impl::handle_pdus, this, boost::placeholders::_1)); } waterfall_sink_c_impl::~waterfall_sink_c_impl() diff --git a/gr-qtgui/lib/waterfall_sink_f_impl.cc b/gr-qtgui/lib/waterfall_sink_f_impl.cc index aa1037a47..d4231a564 100644 --- a/gr-qtgui/lib/waterfall_sink_f_impl.cc +++ b/gr-qtgui/lib/waterfall_sink_f_impl.cc @@ -116,19 +116,24 @@ waterfall_sink_f_impl::waterfall_sink_f_impl(int fftsize, // setup bw input port message_port_register_in(d_port_bw); set_msg_handler(d_port_bw, - boost::bind(&waterfall_sink_f_impl::handle_set_bw, this, _1)); + boost::bind(&waterfall_sink_f_impl::handle_set_bw, + this, + boost::placeholders::_1)); // setup output message port to post frequency when display is // double-clicked message_port_register_out(d_port); message_port_register_in(d_port); set_msg_handler(d_port, - boost::bind(&waterfall_sink_f_impl::handle_set_freq, this, _1)); + boost::bind(&waterfall_sink_f_impl::handle_set_freq, + this, + boost::placeholders::_1)); // setup PDU handling input port message_port_register_in(pmt::mp("in")); - set_msg_handler(pmt::mp("in"), - boost::bind(&waterfall_sink_f_impl::handle_pdus, this, _1)); + set_msg_handler( + pmt::mp("in"), + boost::bind(&waterfall_sink_f_impl::handle_pdus, this, boost::placeholders::_1)); } waterfall_sink_f_impl::~waterfall_sink_f_impl() diff --git a/gr-uhd/lib/usrp_block_impl.cc b/gr-uhd/lib/usrp_block_impl.cc index 4f030159f..697d633c1 100644 --- a/gr-uhd/lib/usrp_block_impl.cc +++ b/gr-uhd/lib/usrp_block_impl.cc @@ -137,12 +137,18 @@ usrp_block_impl::usrp_block_impl(const ::uhd::device_addr_t& device_addr, // Set up message ports: message_port_register_in(pmt::mp("command")); set_msg_handler(pmt::mp("command"), - boost::bind(&usrp_block_impl::msg_handler_command, this, _1)); + boost::bind(&usrp_block_impl::msg_handler_command, + this, + boost::placeholders::_1)); // cuz we lazy: -#define REGISTER_CMD_HANDLER(key, _handler) \ - register_msg_cmd_handler(key, \ - boost::bind(&usrp_block_impl::_handler, this, _1, _2, _3)) +#define REGISTER_CMD_HANDLER(key, _handler) \ + register_msg_cmd_handler(key, \ + boost::bind(&usrp_block_impl::_handler, \ + this, \ + boost::placeholders::_1, \ + boost::placeholders::_2, \ + boost::placeholders::_3)) // Register default command handlers: REGISTER_CMD_HANDLER(cmd_freq_key(), _cmd_handler_freq); REGISTER_CMD_HANDLER(cmd_gain_key(), _cmd_handler_gain); @@ -257,11 +263,12 @@ bool usrp_block_impl::_check_mboard_sensors_locked() } else if (_dev->get_clock_source(mboard_index) == "mimo") { sensor_name = "mimo_locked"; } - if (not _wait_for_locked_sensor( - get_mboard_sensor_names(mboard_index), - sensor_name, - boost::bind( - &usrp_block_impl::get_mboard_sensor, this, _1, mboard_index))) { + if (not _wait_for_locked_sensor(get_mboard_sensor_names(mboard_index), + sensor_name, + boost::bind(&usrp_block_impl::get_mboard_sensor, + this, + boost::placeholders::_1, + mboard_index))) { GR_LOG_WARN( d_logger, boost::format( diff --git a/gr-uhd/lib/usrp_source_impl.cc b/gr-uhd/lib/usrp_source_impl.cc index a2ff0821b..5e6bd4328 100644 --- a/gr-uhd/lib/usrp_source_impl.cc +++ b/gr-uhd/lib/usrp_source_impl.cc @@ -57,8 +57,9 @@ usrp_source_impl::usrp_source_impl(const ::uhd::device_addr_t& device_addr, _samp_rate = this->get_samp_rate(); _samps_per_packet = 1; - register_msg_cmd_handler(cmd_tag_key(), - boost::bind(&usrp_source_impl::_cmd_handler_tag, this, _1)); + register_msg_cmd_handler( + cmd_tag_key(), + boost::bind(&usrp_source_impl::_cmd_handler_tag, this, boost::placeholders::_1)); } usrp_source_impl::~usrp_source_impl() {} diff --git a/gr-zeromq/lib/pub_msg_sink_impl.cc b/gr-zeromq/lib/pub_msg_sink_impl.cc index b5da7421e..957cfa411 100644 --- a/gr-zeromq/lib/pub_msg_sink_impl.cc +++ b/gr-zeromq/lib/pub_msg_sink_impl.cc @@ -62,7 +62,9 @@ pub_msg_sink_impl::pub_msg_sink_impl(char* address, int timeout, bool bind) } message_port_register_in(pmt::mp("in")); - set_msg_handler(pmt::mp("in"), boost::bind(&pub_msg_sink_impl::handler, this, _1)); + set_msg_handler( + pmt::mp("in"), + boost::bind(&pub_msg_sink_impl::handler, this, boost::placeholders::_1)); } pub_msg_sink_impl::~pub_msg_sink_impl() diff --git a/gr-zeromq/lib/push_msg_sink_impl.cc b/gr-zeromq/lib/push_msg_sink_impl.cc index 4140781ab..7d07d3a30 100644 --- a/gr-zeromq/lib/push_msg_sink_impl.cc +++ b/gr-zeromq/lib/push_msg_sink_impl.cc @@ -62,7 +62,9 @@ push_msg_sink_impl::push_msg_sink_impl(char* address, int timeout, bool bind) } message_port_register_in(pmt::mp("in")); - set_msg_handler(pmt::mp("in"), boost::bind(&push_msg_sink_impl::handler, this, _1)); + set_msg_handler( + pmt::mp("in"), + boost::bind(&push_msg_sink_impl::handler, this, boost::placeholders::_1)); } push_msg_sink_impl::~push_msg_sink_impl() -- 2.26.2 ================================================ FILE: package/gnuradio/0003-gnuradio-runtime_pmt-dont-hardcode-INTERFACE_INCLUDE_DIRECTORIES.patch ================================================ From 84dea8284c521f08508bb2dcbc99db3b5d3438fd Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Thu, 27 Aug 2020 17:32:09 +0200 Subject: [PATCH] gnuradio-runtime_pmt: dont hardcode INTERFACE_INCLUDE_DIRECTORIES gnuradio-runtimeTargets.cmake and gnuradio-pmtTargets.cmake are filled using CMAKE_INSTALL_PREFIX for INSTALL_INTERFACE. Since CMAKE_INSTALL_PREFIX, in buildroot, is set to /usr, these files contains path to host system. With BR2_COMPILER_PARANOID_UNSAFE_PATH package using gnuradio fails with: arm-linux-gnueabihf-g++: ERROR: unsafe header/library path used in cross-compilation: '-isystem' '/usr/include' By simply providing 'include', produced .cmake contains: INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" instead of INTERFACE_INCLUDE_DIRECTORIES "/usr/include" [Upstream status: https://github.com/gnuradio/gnuradio/pull/3737] Signed-off-by: Gwenhael Goavec-Merou --- gnuradio-runtime/lib/CMakeLists.txt | 2 +- gnuradio-runtime/lib/pmt/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gnuradio-runtime/lib/CMakeLists.txt b/gnuradio-runtime/lib/CMakeLists.txt index 5aa90a5e1..fc32f473b 100644 --- a/gnuradio-runtime/lib/CMakeLists.txt +++ b/gnuradio-runtime/lib/CMakeLists.txt @@ -214,7 +214,7 @@ target_link_libraries(gnuradio-runtime PUBLIC target_include_directories(gnuradio-runtime PUBLIC - $ + $ $ $ PRIVATE diff --git a/gnuradio-runtime/lib/pmt/CMakeLists.txt b/gnuradio-runtime/lib/pmt/CMakeLists.txt index 9fb98d0fc..6dfcd945c 100644 --- a/gnuradio-runtime/lib/pmt/CMakeLists.txt +++ b/gnuradio-runtime/lib/pmt/CMakeLists.txt @@ -33,7 +33,7 @@ target_link_libraries(gnuradio-pmt target_include_directories(gnuradio-pmt PUBLIC - $ + $ $ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/ ) -- 2.26.2 ================================================ FILE: package/gnuradio/0004-gr-qtgui-dont-t-add-examples-c-subdirectory-when-gr-.patch ================================================ From 268b1a599304f58bd56c86ff09041b5912c24a0c Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Sun, 1 Nov 2020 17:24:36 +0100 Subject: [PATCH] gr-qtgui: dont't add examples/c++ subdirectory when gr-analog is disabled gr-qtgui examples needs to have gr-analog enabled, without this dependency compile crash with: In file included from /x/output/build/gnuradio-3.8.1.0/gr-qtgui/examples/c++/display_qt.cc:22: /x/output/build/gnuradio-3.8.1.0/gr-qtgui/examples/c++/display_qt.h:24:10: fatal error: gnuradio/analog/noise_source.h: No such file or directory 24 | #include | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[3]: *** [gr-qtgui/examples/c++/CMakeFiles/display_qt.dir/build.make:67: gr-qtgui/examples/c++/CMakeFiles/display_qt.dir/display_qt.cc.o] Error 1 make[3]: *** Waiting for unfinished jobs.... In file included from /somewhere/gnuradio/build/gr-qtgui/examples/c++/moc_display_qt.cpp:10: /somewhere/gnuradio/build/gr-qtgui/examples/c++/../../../../gr-qtgui/examples/c++/display_qt.h:24:10: fatal error: gnuradio/analog/noise_source.h: No such file or directory 24 | #include | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. GR_ANALOG is not an explicit dependency of GR_QTGUI, so disable c++ examples if user has not selected this option. [backported from 7470a7a3771dd90defb826b464dfe62977cb1eb6] Signed-off-by: Gwenhael Goavec-Merou --- gr-qtgui/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gr-qtgui/CMakeLists.txt b/gr-qtgui/CMakeLists.txt index 8831f3ad9..561186fbd 100644 --- a/gr-qtgui/CMakeLists.txt +++ b/gr-qtgui/CMakeLists.txt @@ -68,7 +68,9 @@ if(ENABLE_GR_QTGUI) add_subdirectory(include/gnuradio/qtgui) add_subdirectory(lib) add_subdirectory(docs) -add_subdirectory(examples/c++) +if (ENABLE_GR_ANALOG) + add_subdirectory(examples/c++) +endif(ENABLE_GR_ANALOG) if(ENABLE_PYTHON) add_subdirectory(swig) add_subdirectory(python/qtgui) -- 2.26.2 ================================================ FILE: package/gnuradio/0005-boost-remove-deprecated-math-common_factor.hpp.patch ================================================ From 2c767bb260a25b415e8c9c4b3ea37280b2127cec Mon Sep 17 00:00:00 2001 From: japm48 Date: Fri, 10 Apr 2020 23:35:30 +0200 Subject: [PATCH] boost: remove deprecated math/common_factor.hpp Remove deprecation warning and prefer using std::{lcm,gcd} to Boost. Fixes #2712. [Retrieved from: https://github.com/gnuradio/gnuradio/commit/2c767bb260a25b415e8c9c4b3ea37280b2127cec] Signed-off-by: Fabrice Fontaine --- .../include/gnuradio/CMakeLists.txt | 1 + .../include/gnuradio/integer_math.h | 35 +++++++++++++++++++ gnuradio-runtime/lib/buffer.cc | 19 ++-------- gr-digital/lib/symbol_sync_cc_impl.cc | 4 +-- gr-digital/lib/symbol_sync_ff_impl.cc | 4 +-- 5 files changed, 43 insertions(+), 20 deletions(-) create mode 100644 gnuradio-runtime/include/gnuradio/integer_math.h diff --git a/gnuradio-runtime/include/gnuradio/CMakeLists.txt b/gnuradio-runtime/include/gnuradio/CMakeLists.txt index 8d718e87b5b..056af5d6f48 100644 --- a/gnuradio-runtime/include/gnuradio/CMakeLists.txt +++ b/gnuradio-runtime/include/gnuradio/CMakeLists.txt @@ -31,6 +31,7 @@ install(FILES gr_complex.h hier_block2.h high_res_timer.h + integer_math.h io_signature.h logger.h math.h diff --git a/gnuradio-runtime/include/gnuradio/integer_math.h b/gnuradio-runtime/include/gnuradio/integer_math.h new file mode 100644 index 00000000000..15141049fa4 --- /dev/null +++ b/gnuradio-runtime/include/gnuradio/integer_math.h @@ -0,0 +1,35 @@ +/* -*- c++ -*- */ +/* + * Copyright 2020 Free Software Foundation, Inc. + * + * This file is part of GNU Radio + * + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ +#ifndef INCLUDED_GR_INTEGER_MATH_H +#define INCLUDED_GR_INTEGER_MATH_H + +#if (__cplusplus >= 201703L) + +// Prefer C++17 goodness. +#include +#define GR_GCD std::gcd +#define GR_LCM std::lcm + +#elif (BOOST_VERSION >= 105800) + +// Fallback: newer boost API (introduced in Boost 1.58.0). +#include +#define GR_GCD boost::integer::gcd +#define GR_LCM boost::integer::lcm + +#else + +// Last resort: old deprecated boost API. +#include +#define GR_GCD boost::math::gcd +#define GR_LCM boost::math::lcm + +#endif /* __cplusplus >= 201703L */ +#endif /* INCLUDED_GR_INTEGER_MATH_H */ diff --git a/gnuradio-runtime/lib/buffer.cc b/gnuradio-runtime/lib/buffer.cc index 720c72c4ee8..46d704542b1 100644 --- a/gnuradio-runtime/lib/buffer.cc +++ b/gnuradio-runtime/lib/buffer.cc @@ -13,22 +13,13 @@ #endif #include "vmcircbuf.h" #include +#include #include #include #include #include #include -// the following header is deprecated as of Boost 1.66.0, and the -// other API was introduced in Boost 1.58.0. Since we still support -// Boost back to 1.54.0, use the older API if pre-1.5.80 and otherwise -// use the newer API. -#if (BOOST_VERSION < 105800) -#include -#else -#include -#endif - namespace gr { static long s_buffer_count = 0; // counts for debugging storage mgmt @@ -68,13 +59,9 @@ static long s_buffer_reader_count = 0; * * type_size * nitems == k * page_size */ -static long minimum_buffer_items(long type_size, long page_size) +static inline long minimum_buffer_items(long type_size, long page_size) { -#if (BOOST_VERSION < 105800) - return page_size / boost::math::gcd(type_size, page_size); -#else - return page_size / boost::integer::gcd(type_size, page_size); -#endif + return page_size / GR_GCD(type_size, page_size); } diff --git a/gr-digital/lib/symbol_sync_cc_impl.cc b/gr-digital/lib/symbol_sync_cc_impl.cc index 55f85e7c6a7..55f162dc727 100644 --- a/gr-digital/lib/symbol_sync_cc_impl.cc +++ b/gr-digital/lib/symbol_sync_cc_impl.cc @@ -13,9 +13,9 @@ #endif #include "symbol_sync_cc_impl.h" +#include #include #include -#include #include namespace gr { @@ -95,7 +95,7 @@ symbol_sync_cc_impl::symbol_sync_cc_impl(enum ted_type detector_type, throw std::runtime_error("unable to create interpolating_resampler_ccf"); // Block Internal Clocks - d_interps_per_symbol_n = boost::math::lcm(d_ted->inputs_per_symbol(), d_osps_n); + d_interps_per_symbol_n = GR_LCM(d_ted->inputs_per_symbol(), d_osps_n); d_interps_per_ted_input_n = d_interps_per_symbol_n / d_ted->inputs_per_symbol(); d_interps_per_output_sample_n = d_interps_per_symbol_n / d_osps_n; diff --git a/gr-digital/lib/symbol_sync_ff_impl.cc b/gr-digital/lib/symbol_sync_ff_impl.cc index d0ec32ab192..1172c1b4f8a 100644 --- a/gr-digital/lib/symbol_sync_ff_impl.cc +++ b/gr-digital/lib/symbol_sync_ff_impl.cc @@ -13,9 +13,9 @@ #endif #include "symbol_sync_ff_impl.h" +#include #include #include -#include #include namespace gr { @@ -97,7 +97,7 @@ symbol_sync_ff_impl::symbol_sync_ff_impl(enum ted_type detector_type, throw std::runtime_error("unable to create interpolating_resampler_fff"); // Block Internal Clocks - d_interps_per_symbol_n = boost::math::lcm(d_ted->inputs_per_symbol(), d_osps_n); + d_interps_per_symbol_n = GR_LCM(d_ted->inputs_per_symbol(), d_osps_n); d_interps_per_ted_input_n = d_interps_per_symbol_n / d_ted->inputs_per_symbol(); d_interps_per_output_sample_n = d_interps_per_symbol_n / d_osps_n; ================================================ FILE: package/gnuradio/Config.in ================================================ comment "gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS comment "gnuradio needs a toolchain not affected by GCC bug 43744 and 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_43744 depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 config BR2_PACKAGE_GNURADIO bool "gnuradio" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_USE_MMU # use fork() depends on BR2_USE_WCHAR # boost depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic, boost-filesystem depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_43744 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_ATOMIC select BR2_PACKAGE_BOOST_DATE_TIME select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS select BR2_PACKAGE_BOOST_REGEX select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_THREAD select BR2_PACKAGE_LOG4CPP select BR2_PACKAGE_GMP help GNU Radio is a free & open-source software development toolkit that provides signal processing blocks to implement software radios. It can be used with readily-available low-cost external RF hardware to create software-defined radios, or without hardware in a simulation-like environment. It is widely used in hobbyist, academic and commercial environments to support both wireless communications research and real-world radio systems. http://gnuradio.org/ if BR2_PACKAGE_GNURADIO config BR2_PACKAGE_GNURADIO_AUDIO bool "gr-audio" select BR2_PACKAGE_ALSA_LIB if !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_DTV bool "gr-dtv support" select BR2_PACKAGE_GNURADIO_ANALOG select BR2_PACKAGE_GNURADIO_FEC select BR2_PACKAGE_GNURADIO_FILTER help various digital television standards blocks config BR2_PACKAGE_GNURADIO_FEC bool "gr-fec support" select BR2_PACKAGE_GNURADIO_BLOCKS select BR2_PACKAGE_GSL help FEC signal processing blocks config BR2_PACKAGE_GNURADIO_PYTHON bool "python support" depends on BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy select BR2_PACKAGE_BOOST_PYTHON select BR2_PACKAGE_PYTHON_NUMPY # runtime select BR2_PACKAGE_PYTHON_SIX # runtime help Enable python component comment "python support needs glibc or musl" depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) config BR2_PACKAGE_GNURADIO_UTILS bool "gr-utils support" depends on BR2_PACKAGE_GNURADIO_PYTHON help Misc python utilities config BR2_PACKAGE_GNURADIO_ZEROMQ bool "gr-zeromq support" select BR2_PACKAGE_CPPZMQ select BR2_PACKAGE_PYTHON_PYZMQ if BR2_PACKAGE_GNURADIO_PYTHON help zeromq communication support config BR2_PACKAGE_GNURADIO_ANALOG bool "gr-analog support" select BR2_PACKAGE_GNURADIO_FILTER help Analog communications blocks config BR2_PACKAGE_GNURADIO_CHANNELS bool "gr-channels support" select BR2_PACKAGE_GNURADIO_ANALOG help Channel model blocks config BR2_PACKAGE_GNURADIO_DIGITAL bool "gr-digital support" select BR2_PACKAGE_GNURADIO_ANALOG help Digital communications blocks config BR2_PACKAGE_GNURADIO_FFT bool "gr-fft support" select BR2_PACKAGE_FFTW select BR2_PACKAGE_FFTW_SINGLE select BR2_PACKAGE_GNURADIO_BLOCKS help FFT signal processing blocks config BR2_PACKAGE_GNURADIO_FILTER bool "gr-filter support" select BR2_PACKAGE_GNURADIO_FFT help Filter signal processing blocks config BR2_PACKAGE_GNURADIO_QTGUI bool "gr-qtgui" depends on BR2_PACKAGE_GNURADIO_PYTHON depends on BR2_PACKAGE_QT5 select BR2_PACKAGE_GNURADIO_FFT select BR2_PACKAGE_GNURADIO_FILTER select BR2_PACKAGE_PYTHON_PYQT5 select BR2_PACKAGE_QT5BASE_FONTCONFIG # runtime select BR2_PACKAGE_QT5BASE_GUI # runtime select BR2_PACKAGE_QT5BASE_WIDGETS # runtime select BR2_PACKAGE_QWT help GNU Radio Qt scopes config BR2_PACKAGE_GNURADIO_TRELLIS bool "gr-trellis support" select BR2_PACKAGE_GNURADIO_DIGITAL help Trellis coded modulation blocks config BR2_PACKAGE_GNURADIO_UHD bool "gr-uhd support" select BR2_PACKAGE_UHD select BR2_PACKAGE_GNURADIO_ANALOG select BR2_PACKAGE_GNURADIO_BLOCKS select BR2_PACKAGE_GNURADIO_FILTER help UHD support endif ================================================ FILE: package/gnuradio/gnuradio.hash ================================================ # Locally computed sha256 3e293541a9ac8d78660762bae8b80c0f6195b3494e1c50c01a9fd79cc60bb624 gnuradio-3.8.2.0.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/gnuradio/gnuradio.mk ================================================ ################################################################################ # # gnuradio # ################################################################################ GNURADIO_VERSION = 3.8.2.0 GNURADIO_SITE = https://github.com/gnuradio/gnuradio/releases/download/v$(GNURADIO_VERSION) GNURADIO_LICENSE = GPL-3.0+ GNURADIO_LICENSE_FILES = COPYING GNURADIO_SUPPORTS_IN_SOURCE_BUILD = NO # needed to determine site-packages path ifeq ($(BR2_PACKAGE_PYTHON),y) GNURADIO_PYVER = $(PYTHON_VERSION_MAJOR) else ifeq ($(BR2_PACKAGE_PYTHON3),y) GNURADIO_PYVER = $(PYTHON3_VERSION_MAJOR) endif # host-python-mako and host-python-six are needed for volk to compile GNURADIO_DEPENDENCIES = \ host-python3 \ host-python-mako \ host-python-six \ host-swig \ boost \ log4cpp \ gmp GNURADIO_CONF_OPTS = \ -DPYTHON_EXECUTABLE=$(HOST_DIR)/bin/python \ -DENABLE_DEFAULT=OFF \ -DENABLE_VOLK=ON \ -DENABLE_GNURADIO_RUNTIME=ON \ -DENABLE_TESTING=OFF \ -DXMLTO_EXECUTABLE=NOTFOUND # For third-party blocks, the gnuradio libraries are mandatory at # compile time. GNURADIO_INSTALL_STAGING = YES ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) GNURADIO_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif ifeq ($(BR2_PACKAGE_ORC),y) GNURADIO_DEPENDENCIES += orc GNURADIO_CONF_OPTS += -DENABLE_ORC=ON else GNURADIO_CONF_OPTS += -DENABLE_ORC=OFF endif ifeq ($(BR2_PACKAGE_GNURADIO_ANALOG),y) GNURADIO_CONF_OPTS += -DENABLE_GR_ANALOG=ON 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 GNURADIO_CONF_OPTS += -DENABLE_GR_BLOCKS=OFF endif ifeq ($(BR2_PACKAGE_GNURADIO_CHANNELS),y) GNURADIO_CONF_OPTS += -DENABLE_GR_CHANNELS=ON 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 GNURADIO_CONF_OPTS += -DENABLE_GR_DIGITAL=OFF endif ifeq ($(BR2_PACKAGE_GNURADIO_DTV),y) GNURADIO_CONF_OPTS += -DENABLE_GR_DTV=ON else GNURADIO_CONF_OPTS += -DENABLE_GR_DTV=OFF endif ifeq ($(BR2_PACKAGE_GNURADIO_FEC),y) GNURADIO_DEPENDENCIES += gsl GNURADIO_CONF_OPTS += -DENABLE_GR_FEC=ON else GNURADIO_CONF_OPTS += -DENABLE_GR_FEC=OFF endif ifeq ($(BR2_PACKAGE_GNURADIO_FFT),y) GNURADIO_DEPENDENCIES += fftw-single GNURADIO_CONF_OPTS += -DENABLE_GR_FFT=ON else GNURADIO_CONF_OPTS += -DENABLE_GR_FFT=OFF endif ifeq ($(BR2_PACKAGE_GNURADIO_FILTER),y) GNURADIO_CONF_OPTS += -DENABLE_GR_FILTER=ON else GNURADIO_CONF_OPTS += -DENABLE_GR_FILTER=OFF endif ifeq ($(BR2_PACKAGE_GNURADIO_PYTHON),y) GNURADIO_DEPENDENCIES += python3 GNURADIO_CONF_OPTS += -DENABLE_PYTHON=ON # mandatory to install python modules in site-packages and to use # correct path for python libraries GNURADIO_CONF_OPTS += -DGR_PYTHON_RELATIVE=ON \ -DGR_PYTHON_DIR=lib/python$(GNURADIO_PYVER)/site-packages else GNURADIO_CONF_OPTS += -DENABLE_PYTHON=OFF endif ifeq ($(BR2_PACKAGE_GNURADIO_QTGUI),y) GNURADIO_DEPENDENCIES += qt5base python-pyqt5 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 GNURADIO_CONF_OPTS += -DENABLE_GR_TRELLIS=OFF endif ifeq ($(BR2_PACKAGE_GNURADIO_UHD),y) GNURADIO_DEPENDENCIES += uhd GNURADIO_CONF_OPTS += -DENABLE_GR_UHD=ON else GNURADIO_CONF_OPTS += -DENABLE_GR_UHD=OFF endif ifeq ($(BR2_PACKAGE_GNURADIO_UTILS),y) GNURADIO_CONF_OPTS += -DENABLE_GR_UTILS=ON else GNURADIO_CONF_OPTS += -DENABLE_GR_UTILS=OFF endif ifeq ($(BR2_PACKAGE_GNURADIO_ZEROMQ),y) GNURADIO_DEPENDENCIES += cppzmq ifeq ($(BR2_PACKAGE_GNURADIO_PYTHON),y) GNURADIO_DEPENDENCIES += python-pyzmq endif GNURADIO_CONF_OPTS += -DENABLE_GR_ZEROMQ=ON else GNURADIO_CONF_OPTS += -DENABLE_GR_ZEROMQ=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/gnutls/Config.in ================================================ config BR2_PACKAGE_GNUTLS bool "gnutls" # https://gitlab.com/gnutls/gnutls/issues/203 depends on !BR2_STATIC_LIBS # gnulib requires a library that implements wctomb(). # This is noticed only when linking with libgnutls.so. depends on BR2_USE_WCHAR select BR2_PACKAGE_LIBTASN1 select BR2_PACKAGE_NETTLE select BR2_PACKAGE_PCRE help GnuTLS is a secure communications library implementing the SSL and TLS protocols and technologies around them. https://www.gnutls.org/ if BR2_PACKAGE_GNUTLS config BR2_PACKAGE_GNUTLS_OPENSSL bool "OpenSSL compatibility library" help Install OpenSSL compatibility library. config BR2_PACKAGE_GNUTLS_TOOLS bool "install tools" help Install GnuTLS command line tools for various cryptographic tasks. endif comment "gnutls needs a toolchain w/ wchar, dynamic library" depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS ================================================ FILE: package/gnutls/gnutls.hash ================================================ # Locally calculated after checking pgp signature # https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-3.7.2.tar.xz.sig sha256 646e6c5a9a185faa4cea796d378a1ba8e1148dbb197ca6605f95986a25af2752 gnutls-3.7.2.tar.xz # Locally calculated sha256 e79e9c8a0c85d735ff98185918ec94ed7d175efc377012787aebcf3b80f0d90b doc/COPYING sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 doc/COPYING.LESSER ================================================ FILE: package/gnutls/gnutls.mk ================================================ ################################################################################ # # gnutls # ################################################################################ GNUTLS_VERSION_MAJOR = 3.7 GNUTLS_VERSION = $(GNUTLS_VERSION_MAJOR).2 GNUTLS_SOURCE = gnutls-$(GNUTLS_VERSION).tar.xz GNUTLS_SITE = https://www.gnupg.org/ftp/gcrypt/gnutls/v$(GNUTLS_VERSION_MAJOR) GNUTLS_LICENSE = LGPL-2.1+ (core library) GNUTLS_LICENSE_FILES = doc/COPYING.LESSER ifeq ($(BR2_PACKAGE_GNUTLS_OPENSSL),y) GNUTLS_LICENSE += , GPL-3.0+ (gnutls-openssl library) GNUTLS_LICENSE_FILES += doc/COPYING endif GNUTLS_DEPENDENCIES = host-pkgconf libtasn1 nettle pcre GNUTLS_CPE_ID_VENDOR = gnu GNUTLS_CONF_OPTS = \ --disable-doc \ --disable-guile \ --disable-libdane \ --disable-rpath \ --disable-tests \ --enable-local-libopts \ --enable-openssl-compatibility \ --with-librt-prefix=$(STAGING_DIR) \ --without-tpm \ $(if $(BR2_PACKAGE_GNUTLS_OPENSSL),--enable,--disable)-openssl-compatibility \ $(if $(BR2_PACKAGE_GNUTLS_TOOLS),--enable-tools,--disable-tools) GNUTLS_CONF_ENV = gl_cv_socket_ipv6=yes \ ac_cv_header_wchar_h=$(if $(BR2_USE_WCHAR),yes,no) \ gt_cv_c_wchar_t=$(if $(BR2_USE_WCHAR),yes,no) \ gt_cv_c_wint_t=$(if $(BR2_USE_WCHAR),yes,no) \ gl_cv_func_gettimeofday_clobber=no GNUTLS_INSTALL_STAGING = YES # libpthread autodetection poison the linkpath GNUTLS_CONF_OPTS += $(if $(BR2_TOOLCHAIN_HAS_THREADS),--with-libpthread-prefix=$(STAGING_DIR)/usr) # gnutls needs libregex, but pcre can be used too # The check isn't cross-compile friendly GNUTLS_CONF_ENV += libopts_cv_with_libregex=yes GNUTLS_CONF_OPTS += \ --with-regex-header=pcreposix.h \ --with-libregex-cflags="`$(PKG_CONFIG_HOST_BINARY) libpcreposix --cflags`" \ --with-libregex-libs="`$(PKG_CONFIG_HOST_BINARY) libpcreposix --libs`" ifeq ($(BR2_PACKAGE_CRYPTODEV_LINUX),y) GNUTLS_CONF_OPTS += --enable-cryptodev GNUTLS_DEPENDENCIES += cryptodev-linux endif ifeq ($(BR2_PACKAGE_LIBIDN2),y) GNUTLS_CONF_OPTS += --with-idn GNUTLS_DEPENDENCIES += libidn2 else GNUTLS_CONF_OPTS += --without-idn endif ifeq ($(BR2_PACKAGE_P11_KIT),y) GNUTLS_CONF_OPTS += --with-p11-kit GNUTLS_DEPENDENCIES += p11-kit else GNUTLS_CONF_OPTS += --without-p11-kit endif ifeq ($(BR2_PACKAGE_LIBUNISTRING),y) GNUTLS_CONF_OPTS += --with-libunistring-prefix=$(STAGING_DIR)/usr GNUTLS_DEPENDENCIES += libunistring else GNUTLS_CONF_OPTS += --with-included-unistring endif # Provide a default CA cert location ifeq ($(BR2_PACKAGE_P11_KIT),y) GNUTLS_CONF_OPTS += --with-default-trust-store-pkcs11=pkcs11:model=p11-kit-trust else ifeq ($(BR2_PACKAGE_CA_CERTIFICATES),y) GNUTLS_CONF_OPTS += --with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt endif ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) GNUTLS_LIBS += -latomic endif GNUTLS_CONF_ENV += LIBS="$(GNUTLS_LIBS)" $(eval $(autotools-package)) ================================================ FILE: package/go/0001-build.go-explicit-option-for-crosscompilation.patch ================================================ From 6aed475557032a7ff9009e9b4b691b40b561876a Mon Sep 17 00:00:00 2001 From: Angelo Compagnucci Date: Tue, 8 May 2018 16:08:44 +0200 Subject: [PATCH] build.go: explicit option for crosscompilation Actually if GOHOSTOS == GOOS || GOHOSTARCH == GOARCH the go build system assume it's not cross compiling and uses the same toolchain also for the bootstrap. This is a problem in case the cross compilation mandates a different toolchain for bootstrap and target. This patch adds GO_ASSUME_CROSSCOMPILING varible to assure that in case of cross compilation CC_FOR_TARGET can be different from CC. Signed-off-by: Angelo Compagnucci Signed-off-by: Anisse Astier --- src/cmd/dist/build.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go index 7c44c4a605..03500920c4 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -286,12 +286,13 @@ func xinit() { // $CC_FOR_goos_goarch, if set, applies only to goos/goarch. func compilerEnv(envName, def string) map[string]string { m := map[string]string{"": def} + crosscompiling := os.Getenv("GO_ASSUME_CROSSCOMPILING") if env := os.Getenv(envName); env != "" { m[""] = env } if env := os.Getenv(envName + "_FOR_TARGET"); env != "" { - if gohostos != goos || gohostarch != goarch { + if gohostos != goos || gohostarch != goarch || crosscompiling == "1" { m[gohostos+"/"+gohostarch] = m[""] } m[""] = env -- 2.35.1 ================================================ FILE: package/go/0002-cmd-dist-set-buildvcs-false-when-building-go-bootstr.patch ================================================ From 6b05378097c6a386ed9912d2471976dc39504e86 Mon Sep 17 00:00:00 2001 From: Christian Stewart Date: Thu, 27 Jul 2023 21:28:47 -0700 Subject: [PATCH] cmd/dist: set buildvcs=false when building go-bootstrap When building go-bootstrap as part of the make.bash process, the cmd/dist invokes the bootstrap Go compiler to build the go_bootstrap tool: ${GOROOT_BOOTSTRAP}/bin/go install -tags=math_big_pure_go compiler_bootstrap purego bootstrap/cmd/... If there is an invalid .git directory in a parent of ${GOROOT_BOOTSTRAP}, make.bash will fail. Reproduction of the issue: mkdir go-issue-61620 cd ./go-issue-61620 wget https://go.dev/dl/go1.19.11.src.tar.gz mkdir go-bootstrap tar -xf go1.19.11.src.tar.gz -C ./go-bootstrap --strip-components=1 cd ./go-bootstrap/src/ bash make.bash cd ../../ wget https://go.dev/dl/go1.20.6.src.tar.gz mkdir go tar -xf go1.20.6.src.tar.gz -C ./go/ --strip-components=1 printf "gitdir: ../../does/not/exist/.git" > ./.git cd ./go/src/ GOROOT_BOOTSTRAP=$(pwd)/../../go-bootstrap/ bash make.bash The build fails with the following error: Building Go toolchain1 using [snip]/go-1.19.10. error obtaining VCS status: exit status 128 Use -buildvcs=false to disable VCS stamping. go tool dist: FAILED: [snip]/go-1.19.10/bin/go install -tags=math_big_pure_go \ compiler_bootstrap purego bootstrap/cmd/...: exit status 1 This change unconditionally sets -buildvcs=false when compiling go-bootstrap. We don't need the revision information in those binaries anyway. Setting this flag was previously not done as we were unsure if the go-bootstrap compiler would be new enough to support the buildvcs build flag. Since Go 1.20.x, Go 1.19.x is the minimum version for go-bootstrap, and supports -buildvcs=false. We can now set -buildvcs=false without worrying about compatibility. Related: https://github.com/golang/go/issues/54852 Fixes: https://github.com/golang/go/issues/61620 --- Upstream: https://github.com/golang/go/pull/61621 Signed-off-by: Christian Stewart --- src/cmd/dist/buildtool.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cmd/dist/buildtool.go b/src/cmd/dist/buildtool.go index a528d7aa76..3b411d6ebb 100644 --- a/src/cmd/dist/buildtool.go +++ b/src/cmd/dist/buildtool.go @@ -221,6 +221,9 @@ func bootstrapBuildTools() { cmd := []string{ pathf("%s/bin/go", goroot_bootstrap), "install", + // Fixes cases where an invalid .git is present in a parent of GOROOT_BOOTSTRAP. + // See: https://github.com/golang/go/issues/61620 + "-buildvcs=false", "-tags=math_big_pure_go compiler_bootstrap purego", } if vflag > 0 { -- 2.41.0 ================================================ FILE: package/go/Config.in.host ================================================ # Target go packages should depend on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS config BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS bool default y depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE2_ARCH_SUPPORTS # See https://go.dev/doc/install/source#environment # See src/go/build/syslist.go for the list of supported architectures depends on (BR2_arm && BR2_TOOLCHAIN_SUPPORTS_PIE) || BR2_aarch64 \ || BR2_i386 || BR2_x86_64 || BR2_powerpc64le \ || BR2_mips64 || BR2_mips64el || BR2_riscv || BR2_s390x depends on !BR2_ARM_CPU_ARMV4 # MIPS R6 support in Go has not yet been developed. depends on !BR2_MIPS_CPU_MIPS64R6 # Go doesn't support Risc-v 32-bit. depends on !BR2_RISCV_32 # Go requires the following Risc-v General (G) features: depends on !BR2_riscv || (BR2_RISCV_ISA_RVI && \ BR2_RISCV_ISA_RVM && BR2_RISCV_ISA_RVA && \ BR2_RISCV_ISA_RVF && BR2_RISCV_ISA_RVD) config BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS bool default y depends on BR2_PACKAGE_HOST_GO_TARGET_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 # Host go packages should depend on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS config BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS bool default y depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE2_ARCH_SUPPORTS ================================================ FILE: package/go/go.hash ================================================ # From https://go.dev/dl sha256 dc806cf75a87e1414b5b4c3dcb9dd3e9cc98f4cfccec42b7af617d5a658a3c43 go1.21.8.src.tar.gz sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 LICENSE ================================================ FILE: package/go/go.mk ================================================ ################################################################################ # # go # ################################################################################ GO_VERSION = 1.21.8 GO_SITE = https://storage.googleapis.com/golang GO_SOURCE = go$(GO_VERSION).src.tar.gz GO_LICENSE = BSD-3-Clause GO_LICENSE_FILES = LICENSE GO_CPE_ID_VENDOR = golang HOST_GO_DEPENDENCIES = host-go-bootstrap-stage2 HOST_GO_GOPATH = $(HOST_DIR)/share/go-path HOST_GO_HOST_CACHE = $(HOST_DIR)/share/host-go-cache HOST_GO_ROOT = $(HOST_DIR)/lib/go HOST_GO_TARGET_CACHE = $(HOST_DIR)/share/go-cache # We pass an empty GOBIN, otherwise "go install: cannot install # cross-compiled binaries when GOBIN is set" HOST_GO_COMMON_ENV = \ GO111MODULE=on \ GOFLAGS=-mod=vendor \ GOROOT="$(HOST_GO_ROOT)" \ GOPATH="$(HOST_GO_GOPATH)" \ GOCACHE="$(HOST_GO_TARGET_CACHE)" \ GOMODCACHE="$(HOST_GO_GOPATH)/pkg/mod" \ GOPROXY=off \ GOTOOLCHAIN=local \ PATH=$(BR_PATH) \ GOBIN= \ CGO_ENABLED=$(HOST_GO_CGO_ENABLED) ifeq ($(BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS),y) 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 else ifeq ($(BR2_ARM_CPU_ARMV8A),y) # Go doesn't support 32-bit GOARM=8 (https://github.com/golang/go/issues/29373) # but can still benefit from armv7 optimisations GO_GOARM = 7 endif else ifeq ($(BR2_aarch64),y) GO_GOARCH = arm64 else ifeq ($(BR2_i386),y) GO_GOARCH = 386 # i386: use softfloat if no SSE2: https://golang.org/doc/go1.16#386 ifneq ($(BR2_X86_CPU_HAS_SSE2),y) GO_GO386 = softfloat endif 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 else ifeq ($(BR2_riscv),y) GO_GOARCH = riscv64 else ifeq ($(BR2_s390x),y) GO_GOARCH = s390x endif # For the convienience of target packages. HOST_GO_TOOLDIR = $(HOST_GO_ROOT)/pkg/tool/linux_$(GO_GOARCH) HOST_GO_TARGET_ENV = \ $(HOST_GO_COMMON_ENV) \ GOOS="linux" \ GOARCH=$(GO_GOARCH) \ CC="$(TARGET_CC)" \ CXX="$(TARGET_CXX)" \ CGO_CFLAGS="$(TARGET_CFLAGS)" \ CGO_CXXFLAGS="$(TARGET_CXXFLAGS)" \ CGO_LDFLAGS="$(TARGET_LDFLAGS)" \ 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_DEPENDENCIES += toolchain HOST_GO_CGO_ENABLED = 1 else HOST_GO_CGO_ENABLED = 0 endif HOST_GO_CROSS_ENV = \ CC_FOR_TARGET="$(TARGET_CC)" \ CXX_FOR_TARGET="$(TARGET_CXX)" \ GOOS="linux" \ GOARCH=$(GO_GOARCH) \ $(if $(GO_GO386),GO386=$(GO_GO386)) \ $(if $(GO_GOARM),GOARM=$(GO_GOARM)) \ GO_ASSUME_CROSSCOMPILING=1 else # !BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS # host-go can still be used to build packages for the host. No need to set all # the arch stuff since we will not be cross-compiling. HOST_GO_CGO_ENABLED = 1 endif # BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS # For the convenience of host golang packages HOST_GO_HOST_ENV = \ $(HOST_GO_COMMON_ENV) \ GOOS="" \ GOARCH="" \ GOCACHE="$(HOST_GO_HOST_CACHE)" \ CC="$(HOSTCC_NOCCACHE)" \ CXX="$(HOSTCXX_NOCCACHE)" \ CGO_CFLAGS="$(HOST_CFLAGS)" \ CGO_CXXFLAGS="$(HOST_CXXFLAGS)" \ CGO_LDFLAGS="$(HOST_LDFLAGS)" # 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 = \ GO111MODULE=off \ GOCACHE=$(HOST_GO_HOST_CACHE) \ GOROOT_BOOTSTRAP=$(HOST_GO_BOOTSTRAP_STAGE2_ROOT) \ GOROOT_FINAL=$(HOST_GO_ROOT) \ GOROOT="$(@D)" \ GOBIN="$(@D)/bin" \ GOOS=linux \ CC=$(HOSTCC_NOCCACHE) \ CXX=$(HOSTCXX_NOCCACHE) \ CGO_ENABLED=$(HOST_GO_CGO_ENABLED) \ $(HOST_GO_CROSS_ENV) define HOST_GO_BUILD_CMDS cd $(@D)/src && \ $(HOST_GO_MAKE_ENV) ./make.bash $(if $(VERBOSE),-v) endef define HOST_GO_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/bin/go $(HOST_GO_ROOT)/bin/go $(INSTALL) -D -m 0755 $(@D)/bin/gofmt $(HOST_GO_ROOT)/bin/gofmt mkdir -p $(HOST_DIR)/bin ln -sf ../lib/go/bin/go $(HOST_DIR)/bin/ ln -sf ../lib/go/bin/gofmt $(HOST_DIR)/bin/ cp -a $(@D)/lib $(HOST_GO_ROOT)/ mkdir -p $(HOST_GO_ROOT)/pkg cp -a $(@D)/pkg/include $(HOST_GO_ROOT)/pkg/ cp -a $(@D)/pkg/tool $(HOST_GO_ROOT)/pkg/ # The Go sources must be installed to the host/ tree for the Go stdlib. cp -a $(@D)/src $(HOST_GO_ROOT)/ # Set file timestamps to prevent the Go compiler from rebuilding the stdlib # when compiling other programs. find $(HOST_GO_ROOT) -type f -exec touch -r $(@D)/bin/go {} \; endef $(eval $(host-generic-package)) ================================================ FILE: package/go-bootstrap-stage1/Config.in.host ================================================ config BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE1_ARCH_SUPPORTS bool # See src/cmd/dist/unix.c for the list of supported architectures default y if BR2_HOSTARCH = "x86" default y if BR2_HOSTARCH = "x86_64" default y if BR2_HOSTARCH = "arm" ================================================ FILE: package/go-bootstrap-stage1/go-bootstrap-stage1.hash ================================================ # Locally computed: sha256 f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52 go1.4-bootstrap-20171003.tar.gz sha256 dd26a7abddd02e2d0aba97805b31f248ef7835d9e10da289b22e3b8ab78b324d LICENSE ================================================ FILE: package/go-bootstrap-stage1/go-bootstrap-stage1.mk ================================================ ################################################################################ # # go-bootstrap-stage1 # ################################################################################ # Use last C-based Go compiler: v1.4.x # See https://golang.org/doc/install/source#bootstrapFromSource GO_BOOTSTRAP_STAGE1_VERSION = 1.4-bootstrap-20171003 GO_BOOTSTRAP_STAGE1_SITE = https://dl.google.com/go GO_BOOTSTRAP_STAGE1_SOURCE = go$(GO_BOOTSTRAP_STAGE1_VERSION).tar.gz GO_BOOTSTRAP_STAGE1_LICENSE = BSD-3-Clause GO_BOOTSTRAP_STAGE1_LICENSE_FILES = LICENSE HOST_GO_BOOTSTRAP_STAGE1_ROOT = $(HOST_DIR)/lib/go-$(GO_BOOTSTRAP_STAGE1_VERSION) # The go build system is not compatible with ccache, so use # HOSTCC_NOCCACHE. See https://github.com/golang/go/issues/11685. HOST_GO_BOOTSTRAP_STAGE1_MAKE_ENV = \ GOOS=linux \ GOROOT_FINAL="$(HOST_GO_BOOTSTRAP_STAGE1_ROOT)" \ GOROOT="$(@D)" \ GOBIN="$(@D)/bin" \ CC=$(HOSTCC_NOCCACHE) \ CGO_ENABLED=0 define HOST_GO_BOOTSTRAP_STAGE1_BUILD_CMDS cd $(@D)/src && $(HOST_GO_BOOTSTRAP_STAGE1_MAKE_ENV) ./make.bash endef define HOST_GO_BOOTSTRAP_STAGE1_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/bin/go $(HOST_GO_BOOTSTRAP_STAGE1_ROOT)/bin/go $(INSTALL) -D -m 0755 $(@D)/bin/gofmt $(HOST_GO_BOOTSTRAP_STAGE1_ROOT)/bin/gofmt cp -a $(@D)/lib $(HOST_GO_BOOTSTRAP_STAGE1_ROOT)/ cp -a $(@D)/pkg $(HOST_GO_BOOTSTRAP_STAGE1_ROOT)/ # The Go sources must be installed to the host/ tree for the Go stdlib. cp -a $(@D)/src $(HOST_GO_BOOTSTRAP_STAGE1_ROOT)/ endef $(eval $(host-generic-package)) ================================================ FILE: package/go-bootstrap-stage2/Config.in.host ================================================ config BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE2_ARCH_SUPPORTS bool default y depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE1_ARCH_SUPPORTS ================================================ FILE: package/go-bootstrap-stage2/go-bootstrap-stage2.hash ================================================ # From https://go.dev/dl sha256 13755bcce529747d5f2930dee034730c86d02bd3e521ab3e2bbede548d3b953f go1.19.10.src.tar.gz sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 LICENSE ================================================ FILE: package/go-bootstrap-stage2/go-bootstrap-stage2.mk ================================================ ################################################################################ # # go-bootstrap-stage2 # ################################################################################ # Use last Go version that go-bootstrap-stage1 can build: v1.19.x # See https://golang.org/doc/install/source#bootstrapFromSource GO_BOOTSTRAP_STAGE2_VERSION = 1.19.10 GO_BOOTSTRAP_STAGE2_SITE = https://storage.googleapis.com/golang GO_BOOTSTRAP_STAGE2_SOURCE = go$(GO_BOOTSTRAP_STAGE2_VERSION).src.tar.gz GO_BOOTSTRAP_STAGE2_LICENSE = BSD-3-Clause GO_BOOTSTRAP_STAGE2_LICENSE_FILES = LICENSE # Use go-bootstrap-stage1 to bootstrap. HOST_GO_BOOTSTRAP_STAGE2_DEPENDENCIES = host-go-bootstrap-stage1 HOST_GO_BOOTSTRAP_STAGE2_ROOT = $(HOST_DIR)/lib/go-$(GO_BOOTSTRAP_STAGE2_VERSION) # The go build system is not compatible with ccache, so use # HOSTCC_NOCCACHE. See https://github.com/golang/go/issues/11685. HOST_GO_BOOTSTRAP_STAGE2_MAKE_ENV = \ GO111MODULE=off \ GOROOT_BOOTSTRAP=$(HOST_GO_BOOTSTRAP_STAGE1_ROOT) \ GOROOT_FINAL=$(HOST_GO_BOOTSTRAP_STAGE2_ROOT) \ GOROOT="$(@D)" \ GOBIN="$(@D)/bin" \ GOOS=linux \ CC=$(HOSTCC_NOCCACHE) \ CXX=$(HOSTCXX_NOCCACHE) \ CGO_ENABLED=0 define HOST_GO_BOOTSTRAP_STAGE2_BUILD_CMDS cd $(@D)/src && \ $(HOST_GO_BOOTSTRAP_STAGE2_MAKE_ENV) ./make.bash $(if $(VERBOSE),-v) endef define HOST_GO_BOOTSTRAP_STAGE2_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/bin/go $(HOST_GO_BOOTSTRAP_STAGE2_ROOT)/bin/go $(INSTALL) -D -m 0755 $(@D)/bin/gofmt $(HOST_GO_BOOTSTRAP_STAGE2_ROOT)/bin/gofmt cp -a $(@D)/lib $(HOST_GO_BOOTSTRAP_STAGE2_ROOT)/ mkdir -p $(HOST_GO_BOOTSTRAP_STAGE2_ROOT)/pkg cp -a $(@D)/pkg/include $(@D)/pkg/linux_* $(HOST_GO_BOOTSTRAP_STAGE2_ROOT)/pkg/ cp -a $(@D)/pkg/tool $(HOST_GO_BOOTSTRAP_STAGE2_ROOT)/pkg/ # The Go sources must be installed to the host/ tree for the Go stdlib. cp -a $(@D)/src $(HOST_GO_BOOTSTRAP_STAGE2_ROOT)/ endef $(eval $(host-generic-package)) ================================================ FILE: package/gob2/0001-dont-include-from-prefix.patch ================================================ [PATCH] Don't search $prefix/include for header files Don't add $prefix/include to the header file search path, as that breaks cross compilation (build $prefix/include isn't the same as target $prefix/include). Signed-off-by: Peter Korsgaard --- src/Makefile.am | 3 +-- src/Makefile.in | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) Index: gob2-2.0.15/src/Makefile.am =================================================================== --- gob2-2.0.15.orig/src/Makefile.am +++ gob2-2.0.15/src/Makefile.am @@ -17,8 +17,7 @@ INCLUDES = \ -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ - -I$(top_srcdir)/src \ - -I$(includedir) + -I$(top_srcdir)/src if NOINSTGOB noinst_PROGRAMS = @NOINSTGOB@ Index: gob2-2.0.15/src/Makefile.in =================================================================== --- gob2-2.0.15.orig/src/Makefile.in +++ gob2-2.0.15/src/Makefile.in @@ -193,8 +193,7 @@ INCLUDES = \ -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ - -I$(top_srcdir)/src \ - -I$(includedir) + -I$(top_srcdir)/src @NOINSTGOB_TRUE@noinst_PROGRAMS = @NOINSTGOB@ @NOINSTGOB_FALSE@bin_PROGRAMS = @INSTGOB@ ================================================ FILE: package/gob2/gob2.hash ================================================ # Locally calculated sha256 f7ee84c07ca88ae96e5a60461957cc4dd0aa69d61804433d1c85de3d50be8026 gob2-2.0.20.tar.xz sha256 b8a2f73f743dc1a51aff23f1aacbca4b868564db52496fa3c0caba755bfd1eaf COPYING sha256 7222386392eecf784e2f0c406f412f238cb6d25865a8447ae0947b32bb569889 COPYING.generated-code ================================================ FILE: package/gob2/gob2.mk ================================================ ################################################################################ # # gob2 # ################################################################################ GOB2_VERSION = 2.0.20 GOB2_SOURCE = gob2-$(GOB2_VERSION).tar.xz GOB2_SITE = http://ftp.5z.com/pub/gob GOB2_LICENSE = GPL-2.0+ GOB2_LICENSE_FILES = COPYING COPYING.generated-code HOST_GOB2_DEPENDENCIES = host-bison host-flex host-libglib2 $(eval $(host-autotools-package)) # gob2 for the host GOB2_HOST_BINARY = $(HOST_DIR)/bin/gob2 ================================================ FILE: package/gobject-introspection/0001-disable-tests.patch ================================================ From 473b4288d8f4e891d0d21f7b60ef8053c5cd7af9 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Mon, 3 Feb 2020 10:07:15 -0800 Subject: [PATCH] disable tests If introspection data on the host is not built, meson throws the error: "Unknown variable "typelibs". Because tests are not required, removing the subdir tests alltogether fixes this issue. Signed-off-by: Adam Duskett --- meson.build | 6 ------ 1 file changed, 6 deletions(-) diff --git a/meson.build b/meson.build index eed4d6b..5058664 100644 --- a/meson.build +++ b/meson.build @@ -222,12 +222,6 @@ if get_option('build_introspection_data') == true endif subdir('docs') -# The tests will also run, which is not possible if they -# were built for a different architecture. -if not meson.is_cross_build() - subdir('tests') -endif - install_data('Makefile.introspection', install_dir: join_paths(get_option('datadir'), 'gobject-introspection-1.0')) install_data('m4/introspection.m4', install_dir: join_paths(get_option('datadir'), 'aclocal')) -- 2.24.1 ================================================ FILE: package/gobject-introspection/0002-Add-rpath-links-to-ccompiler.patch ================================================ From 72a427bc50daee8f1ded0e9221e53dbbf2a80f08 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Wed, 14 Mar 2018 12:07:10 -0400 Subject: [PATCH] Add rpath links to ccompiler This patch allows gobject-introspection to process extra paths passed to the compiler via the GIR_EXTRA_LIBS_PATH variable. Signed-off-by: Adam Duskett --- giscanner/ccompiler.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/giscanner/ccompiler.py b/giscanner/ccompiler.py index a8bd5b1..51bb9bc 100644 --- a/giscanner/ccompiler.py +++ b/giscanner/ccompiler.py @@ -231,6 +231,8 @@ class CCompiler(object): for envvar in runtime_path_envvar: if envvar in os.environ: + for envvar_path in os.environ[envvar].split(':'): + args.append("-Wl,-rpath-link," + envvar_path) os.environ[envvar] = \ os.pathsep.join(runtime_paths + [os.environ[envvar]]) else: -- 2.14.3 ================================================ FILE: package/gobject-introspection/0003-ignore-error-return-codes-from-ldd-wrapper.patch ================================================ From f742da8b3913f4818d3f419117076afe62f4dbf4 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 5 Sep 2018 16:46:52 +0200 Subject: [PATCH] giscanner: ignore error return codes from ldd-wrapper prelink-rtld, which we use instead of ldd returns 127 when it can't find a library. It is not an error per se, but it breaks subprocess.check_output(). Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin Signed-off-by: Adam Duskett --- giscanner/shlibs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py index d67df95..80352a6 100644 --- a/giscanner/shlibs.py +++ b/giscanner/shlibs.py @@ -103,7 +103,7 @@ def _resolve_non_libtool(options, binary, libraries): args.extend(['otool', '-L', binary.args[0]]) else: args.extend(['ldd', binary.args[0]]) - output = subprocess.check_output(args) + output = subprocess.run(args, check=False, stdout=subprocess.PIPE).stdout if isinstance(output, bytes): output = output.decode("utf-8", "replace") ================================================ FILE: package/gobject-introspection/Config.in ================================================ config BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS bool default y depends on BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS config BR2_PACKAGE_GOBJECT_INTROSPECTION bool "gobject-introspection" depends on BR2_USE_MMU # python3, libglib2 depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS # While gcc 4.8 might be compatible with gobject-introspection, # The autobuilders use some toolchains from codesourcery which # have gcc 4.8 and a very old version of glibc, which will cause # compile errors with locale.c. As such, require 4.9 until this # can be verified. depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_HOST_GCC_AT_LEAST_8 # host-qemu depends on BR2_TOOLCHAIN_USES_GLIBC # gobject-introspection does not require python3 to run on the # target; however, because the tools run in a qemu wrapper, a # cross-compiled python3 must be installed to staging. As there # is no current mechanism to tell Buildroot only to install # python to staging, then python must also be installed # unconditionally to the target when building # gobject-introspection. depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_HOST_QEMU select BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE select BR2_PACKAGE_LIBFFI select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_ZLIB help GObject introspection is a middleware layer between C libraries (using GObject) and language bindings. The C library can be scanned at compile time and generate a metadata file, in addition to the actual native C library. Then at runtime, language bindings can read this metadata and automatically provide bindings to call into the C library. https://wiki.gnome.org/action/show/Projects/GObjectIntrospection comment "gobject-introspection needs python3" depends on !BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS comment "gobject-introspection needs a glibc toolchain, gcc >= 4.9, host gcc >= 8" depends on BR2_USE_MMU depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_8 ================================================ FILE: package/gobject-introspection/g-ir-compiler.in ================================================ #!/usr/bin/env sh "$(dirname "$0")"/g-ir-scanner-qemuwrapper "$(dirname "$0")"/g-ir-compiler.real "$@" ================================================ FILE: package/gobject-introspection/g-ir-scanner-lddwrapper.in ================================================ #!/usr/bin/env sh "${HOST_DIR}"/sbin/prelink-rtld --root="$(dirname "$0")/../../" "$@" ================================================ FILE: package/gobject-introspection/g-ir-scanner-qemuwrapper.in ================================================ #!/usr/bin/env sh GOI_LIBRARY_PATH="${GIR_EXTRA_LIBS_PATH:+${GIR_EXTRA_LIBS_PATH}:}.libs:$(dirname "$0")/../lib:$(dirname "$0")/../../lib" # Pass -r to qemu-user as to trick glibc into not erroring out if the host kernel # is older than the target kernel. # Use a modules directory which does not exist so we don't load random things # which may then get deleted (or their dependencies) and potentially segfault GIO_MODULE_DIR="$(dirname "$0")/../lib/gio/modules-dummy" \ @QEMU_USER@ -r @TOOLCHAIN_HEADERS_VERSION@ \ @QEMU_USERMODE_ARGS@ \ -L "$(dirname "$0")/../../" \ -E LD_LIBRARY_PATH="${GOI_LIBRARY_PATH}" \ "$@" # shellcheck disable=SC2181 if [ $? -ne 0 ]; then echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the .mk file should help." # shellcheck disable=SC2016 echo 'Typically like this: PKG_MAKE_ENV += GIR_EXTRA_LIBS_PATH="$(@D)/.libs"' exit 1 fi ================================================ FILE: package/gobject-introspection/g-ir-scanner.in ================================================ #!/usr/bin/env sh # These environment variables are empty by default, and as such ccompiler.py # defaults to either using the system tools (CC, CXX, and CPP) or leaving # the variables blank (LDFLAGS, CFLAGS, and CPPFLAGS.) # Export these variables to ensure all build systems can generate .gir and # .typelib files properly. export CPP="${CPP:-${HOST_DIR}/bin/@BASENAME_TARGET_CPP@}" export CC="${CC:-${HOST_DIR}/bin/@BASENAME_TARGET_CC@}" export CXX="${CXX:-${HOST_DIR}/bin/@BASENAME_TARGET_CXX@}" export CPPFLAGS="${CPPFLAGS:-@TARGET_CPPFLAGS@}" export CFLAGS="${CFLAGS:-@TARGET_CFLAGS@}" export CXXFLAGS="${CXXFLAGS:-@TARGET_CXXFLAGS@}" export LDFLAGS="${LDFLAGS:-@TARGET_LDFLAGS@}" export GI_SCANNER_DISABLE_CACHE=1 "${HOST_DIR}"/bin/g-ir-scanner \ --lib-dirs-envvar=GIR_EXTRA_LIBS_PATH \ --use-binary-wrapper="$(dirname "$0")"/g-ir-scanner-qemuwrapper \ --use-ldd-wrapper="$(dirname "$0")"/g-ir-scanner-lddwrapper \ --add-include-path="$(dirname "$0")"/../share/gir-1.0 "$@" ================================================ FILE: package/gobject-introspection/gobject-introspection.hash ================================================ #From http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/1.68/gobject-introspection-1.68.0.sha256sum sha256 d229242481a201b84a0c66716de1752bca41db4133672cfcfb37c93eb6e54a27 gobject-introspection-1.68.0.tar.xz sha256 d245807f90032872d1438d741ed21e2490e1175dc8aa3afa5ddb6c8e529b58e5 COPYING.LGPL sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING.GPL sha256 ad35e98ae9342a3539c36f2171e84d175394ddcff625887290c751302cb02983 giscanner/scannerlexer.l ================================================ FILE: package/gobject-introspection/gobject-introspection.mk ================================================ ################################################################################ # # gobject-introspection # ################################################################################ GOBJECT_INTROSPECTION_VERSION_MAJOR = 1.68 GOBJECT_INTROSPECTION_VERSION = $(GOBJECT_INTROSPECTION_VERSION_MAJOR).0 GOBJECT_INTROSPECTION_SITE = http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/$(GOBJECT_INTROSPECTION_VERSION_MAJOR) GOBJECT_INTROSPECTION_SOURCE = gobject-introspection-$(GOBJECT_INTROSPECTION_VERSION).tar.xz GOBJECT_INTROSPECTION_INSTALL_STAGING = YES GOBJECT_INTROSPECTION_AUTORECONF = YES GOBJECT_INTROSPECTION_LICENSE = LGPL-2.0+, GPL-2.0+, BSD-2-Clause GOBJECT_INTROSPECTION_LICENSE_FILES = COPYING.LGPL COPYING.GPL giscanner/scannerlexer.l GOBJECT_INTROSPECTION_DEPENDENCIES = \ host-autoconf-archive \ host-gobject-introspection \ host-prelink-cross \ host-qemu \ libffi \ libglib2 \ python3 \ zlib HOST_GOBJECT_INTROSPECTION_DEPENDENCIES = \ host-bison \ host-flex \ host-libglib2 \ host-python3 # g-ir-scanner will default to /usr/bin/ld for linking if this is not set. GOBJECT_INTROSPECTION_NINJA_ENV += \ CC="$(TARGET_CC)" # When building, gobject-introspection uses tools/g-ir-scanner to build several # .gir and .typelib files. g-ir-scanner does not use LDFLAGS, and by default, # links to the system-installed libglib2 path. To remedy this issue, defining # LD_LIBRARY_PATH forces g-ir-scanner to use our host installed libglib2 files. HOST_GOBJECT_INTROSPECTION_NINJA_ENV += \ LD_LIBRARY_PATH="$(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)$(HOST_DIR)/lib" # Use the host gi-scanner to prevent the scanner from generating incorrect # elf classes. GOBJECT_INTROSPECTION_CONF_OPTS = \ -Dgi_cross_use_prebuilt_gi=true \ -Dgi_cross_binary_wrapper="$(STAGING_DIR)/usr/bin/g-ir-scanner-qemuwrapper" \ -Dgi_cross_ldd_wrapper="$(STAGING_DIR)/usr/bin/g-ir-scanner-lddwrapper" \ -Dbuild_introspection_data=true \ -Ddoctool=disabled ifeq ($(BR2_PACKAGE_CAIRO),y) GOBJECT_INTROSPECTION_DEPENDENCIES += cairo GOBJECT_INTROSPECTION_CONF_OPTS += -Dcairo=enabled else GOBJECT_INTROSPECTION_CONF_OPTS += -Dcairo=disabled endif # GI_SCANNER_DISABLE_CACHE=1 prevents g-ir-scanner from writing cache data to ${HOME} GOBJECT_INTROSPECTION_CONF_ENV = \ GI_SCANNER_DISABLE_CACHE=1 HOST_GOBJECT_INTROSPECTION_CONF_ENV = \ GI_SCANNER_DISABLE_CACHE=1 # Make sure g-ir-tool-template uses the host python. define GOBJECT_INTROSPECTION_FIX_TOOLS_PYTHON_PATH $(SED) '1s%#!.*%#!$(HOST_DIR)/bin/python3%' $(@D)/tools/g-ir-tool-template.in endef HOST_GOBJECT_INTROSPECTION_PRE_CONFIGURE_HOOKS += GOBJECT_INTROSPECTION_FIX_TOOLTEMPLATE_PYTHON_PATH # Perform the following: # - Just as above, Ensure that g-ir-tool-template.in uses the host python. # - Install all of the wrappers needed to build gobject-introspection. # - Create a safe modules directory which does not exist so we don't load random things # which may then get deleted (or their dependencies) and potentially segfault define GOBJECT_INTROSPECTION_INSTALL_PRE_WRAPPERS $(SED) '1s%#!.*%#!$(HOST_DIR)/bin/python3%' $(@D)/tools/g-ir-tool-template.in $(INSTALL) -D -m 755 $(GOBJECT_INTROSPECTION_PKGDIR)/g-ir-scanner-lddwrapper.in \ $(STAGING_DIR)/usr/bin/g-ir-scanner-lddwrapper $(INSTALL) -D -m 755 $(GOBJECT_INTROSPECTION_PKGDIR)/g-ir-scanner-qemuwrapper.in \ $(STAGING_DIR)/usr/bin/g-ir-scanner-qemuwrapper $(SED) "s%@QEMU_USER@%$(QEMU_USER)%g" \ $(STAGING_DIR)/usr/bin/g-ir-scanner-qemuwrapper $(SED) "s%@QEMU_USERMODE_ARGS@%$(call qstrip,$(BR2_PACKAGE_HOST_QEMU_USER_MODE_ARGS))%g" \ $(STAGING_DIR)/usr/bin/g-ir-scanner-qemuwrapper $(SED) "s%@TOOLCHAIN_HEADERS_VERSION@%$(BR2_TOOLCHAIN_HEADERS_AT_LEAST)%g" \ $(STAGING_DIR)/usr/bin/g-ir-scanner-qemuwrapper # Use a modules directory which does not exist so we don't load random things # which may then get deleted (or their dependencies) and potentially segfault mkdir -p $(STAGING_DIR)/usr/lib/gio/modules-dummy endef GOBJECT_INTROSPECTION_PRE_CONFIGURE_HOOKS += GOBJECT_INTROSPECTION_INSTALL_PRE_WRAPPERS # Move the real compiler and scanner to .real, and replace them with the wrappers. # Using .real has the following advantages: # - There is no need to change the logic for other packages. # - The wrappers call the .real files using qemu. define GOBJECT_INTROSPECTION_INSTALL_WRAPPERS # Move the real binaries to their names.real, then replace them with # the wrappers. $(foreach w,g-ir-compiler g-ir-scanner, mv $(STAGING_DIR)/usr/bin/$(w) $(STAGING_DIR)/usr/bin/$(w).real $(INSTALL) -D -m 755 \ $(GOBJECT_INTROSPECTION_PKGDIR)/$(w).in $(STAGING_DIR)/usr/bin/$(w) ) $(SED) "s%@BASENAME_TARGET_CPP@%$(notdir $(TARGET_CPP))%g" \ -e "s%@BASENAME_TARGET_CC@%$(notdir $(TARGET_CC))%g" \ -e "s%@BASENAME_TARGET_CXX@%$(notdir $(TARGET_CXX))%g" \ -e "s%@TARGET_CPPFLAGS@%$(TARGET_CPPFLAGS)%g" \ -e "s%@TARGET_CFLAGS@%$(TARGET_CFLAGS)%g" \ -e "s%@TARGET_CXXFLAGS@%$(TARGET_CXXFLAGS)%g" \ -e "s%@TARGET_LDFLAGS@%$(TARGET_LDFLAGS)%g" \ $(STAGING_DIR)/usr/bin/g-ir-scanner # Gobject-introspection installs Makefile.introspection in # $(STAGING_DIR)/usr/share which is needed for autotools-based programs to # build .gir and .typelib files. Unfortunately, gobject-introspection-1.0.pc # uses $(prefix)/share as the directory, which # causes the host /usr/share being used instead of $(STAGING_DIR)/usr/share. # Change datadir to $(libdir)/../share which will prefix $(STAGING_DIR) # to the correct location. $(SED) "s%^datadir=.*%datadir=\$${libdir}/../share%g" \ $(STAGING_DIR)/usr/lib/pkgconfig/gobject-introspection-1.0.pc # By default, girdir and typelibdir use datadir and libdir as their prefix, # of which pkg-config appends the sysroot directory. This results in files # being installed in $(STAGING_DIR)/$(STAGING_DIR)/path/to/files. # Changing the prefix to prefix prevents this error. $(SED) "s%girdir=.*%girdir=\$${prefix}/share/gir-1.0%g" \ $(STAGING_DIR)/usr/lib/pkgconfig/gobject-introspection-1.0.pc $(SED) "s%typelibdir=.*%typelibdir=\$${prefix}/lib/girepository-1.0%g" \ $(STAGING_DIR)/usr/lib/pkgconfig/gobject-introspection-1.0.pc # Set includedir to $(STAGING_DIR)/usr/share/gir-1.0 instead of . or # g-ir-compiler won't find .gir files resulting in a build failure for # autotools-based based programs $(SED) "s%includedir=.%includedir=$(STAGING_DIR)/usr/share/gir-1.0%g" \ $(STAGING_DIR)/usr/share/gobject-introspection-1.0/Makefile.introspection endef GOBJECT_INTROSPECTION_POST_INSTALL_STAGING_HOOKS += GOBJECT_INTROSPECTION_INSTALL_WRAPPERS # Only .typelib files are needed to run. define GOBJECT_INTROSPECTION_REMOVE_DEVELOPMENT_FILES find $(TARGET_DIR)/usr/share \( -iname "*.gir" -o -iname \*.rnc \) -delete endef GOBJECT_INTROSPECTION_TARGET_FINALIZE_HOOKS += GOBJECT_INTROSPECTION_REMOVE_DEVELOPMENT_FILES $(eval $(meson-package)) $(eval $(host-meson-package)) ================================================ FILE: package/google-breakpad/0001-add-missing-asm-ptrace-include.patch ================================================ Include to get necessary definitions on AArch64 In glibc commit https://sourceware.org/git/?p=glibc.git;a=commit;h=7d05a8168b45c0580e1f9a79c2dd26c8f0d31fca, including from on AArch64 has been removed. So the Google Breakpad code, which used to build fine on glibc 2.18 (CodeSourcery toolchain for example), no longer builds with glibc 2.19 (Linaro toolchain for example). To fix this, this patch adds the missing include (for AArch64 only, to be conservative). This patch has not been submitted upstream, since more recent versions of Google Breakpad have completely changed this part of the code. Signed-off-by: Thomas Petazzoni Index: b/src/client/linux/minidump_writer/linux_dumper.h =================================================================== --- a/src/client/linux/minidump_writer/linux_dumper.h +++ b/src/client/linux/minidump_writer/linux_dumper.h @@ -43,6 +43,9 @@ #include #include #include +#if defined(__aarch64__) +#include +#endif #include "common/memory.h" #include "google_breakpad/common/minidump_format.h" ================================================ FILE: package/google-breakpad/0002-Replace-remaining-references-to-struct-ucontext-with.patch ================================================ From 7975a962e1d6dbad5a46792a54e647abd7caf5f1 Mon Sep 17 00:00:00 2001 From: Mark Mentovai Date: Tue, 19 Sep 2017 22:48:30 -0400 Subject: [PATCH] Replace remaining references to 'struct ucontext' with 'ucontext_t' This relands https://chromium.googlesource.com/breakpad/breakpad/src/+/e3035bc406cee8a4d765e59ad46eb828705f17f4, which was accidentally committed to breakpad/breakpad/src, the read-only mirror of src in breakpad/breakpad. (Well, it should have been read-only.) See https://crbug.com/766164. This fixes issues with glibc-2.26. See https://bugs.gentoo.org/show_bug.cgi?id=628782 , https://sourceware.org/git/?p=glibc.git;h=251287734e89a52da3db682a8241eb6bccc050c9 , and https://sourceware.org/ml/libc-alpha/2017-08/msg00010.html for context. Change-Id: Id66f474d636dd2afa450bab925c5514a800fdd6f Reviewed-on: https://chromium-review.googlesource.com/674304 Reviewed-by: Mark Mentovai (cherry picked from commit bddcc58860f522a0d4cbaa7e9d04058caee0db9d) [Romain: backport from upstream] Signed-off-by: Romain Naour --- .../linux/dump_writer_common/ucontext_reader.cc | 32 +++++++++++----------- .../linux/dump_writer_common/ucontext_reader.h | 14 +++++----- src/client/linux/handler/exception_handler.cc | 10 +++---- src/client/linux/handler/exception_handler.h | 6 ++-- .../linux/microdump_writer/microdump_writer.cc | 2 +- .../linux/minidump_writer/minidump_writer.cc | 2 +- 6 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/client/linux/dump_writer_common/ucontext_reader.cc b/src/client/linux/dump_writer_common/ucontext_reader.cc index c80724d..052ce37 100644 --- a/src/client/linux/dump_writer_common/ucontext_reader.cc +++ b/src/client/linux/dump_writer_common/ucontext_reader.cc @@ -36,19 +36,19 @@ namespace google_breakpad { // Minidump defines register structures which are different from the raw // structures which we get from the kernel. These are platform specific -// functions to juggle the ucontext and user structures into minidump format. +// functions to juggle the ucontext_t and user structures into minidump format. #if defined(__i386__) -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { +uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { return uc->uc_mcontext.gregs[REG_ESP]; } -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { +uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { return uc->uc_mcontext.gregs[REG_EIP]; } -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, +void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, const struct _libc_fpstate* fp) { const greg_t* regs = uc->uc_mcontext.gregs; @@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, #elif defined(__x86_64) -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { +uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { return uc->uc_mcontext.gregs[REG_RSP]; } -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { +uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { return uc->uc_mcontext.gregs[REG_RIP]; } -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, +void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, const struct _libc_fpstate* fpregs) { const greg_t* regs = uc->uc_mcontext.gregs; @@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, #elif defined(__ARM_EABI__) -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { +uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { return uc->uc_mcontext.arm_sp; } -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { +uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { return uc->uc_mcontext.arm_pc; } -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { +void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { out->context_flags = MD_CONTEXT_ARM_FULL; out->iregs[0] = uc->uc_mcontext.arm_r0; @@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { #elif defined(__aarch64__) -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { +uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { return uc->uc_mcontext.sp; } -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { +uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { return uc->uc_mcontext.pc; } -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, +void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, const struct fpsimd_context* fpregs) { out->context_flags = MD_CONTEXT_ARM64_FULL; @@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, #elif defined(__mips__) -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { +uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]; } -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { +uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { return uc->uc_mcontext.pc; } -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { +void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { #if _MIPS_SIM == _ABI64 out->context_flags = MD_CONTEXT_MIPS64_FULL; #elif _MIPS_SIM == _ABIO32 diff --git a/src/client/linux/dump_writer_common/ucontext_reader.h b/src/client/linux/dump_writer_common/ucontext_reader.h index b6e77b4..2de80b7 100644 --- a/src/client/linux/dump_writer_common/ucontext_reader.h +++ b/src/client/linux/dump_writer_common/ucontext_reader.h @@ -39,23 +39,23 @@ namespace google_breakpad { -// Wraps platform-dependent implementations of accessors to ucontext structs. +// Wraps platform-dependent implementations of accessors to ucontext_t structs. struct UContextReader { - static uintptr_t GetStackPointer(const struct ucontext* uc); + static uintptr_t GetStackPointer(const ucontext_t* uc); - static uintptr_t GetInstructionPointer(const struct ucontext* uc); + static uintptr_t GetInstructionPointer(const ucontext_t* uc); - // Juggle a arch-specific ucontext into a minidump format + // Juggle a arch-specific ucontext_t into a minidump format // out: the minidump structure // info: the collection of register structures. #if defined(__i386__) || defined(__x86_64) - static void FillCPUContext(RawContextCPU *out, const ucontext *uc, + static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, const struct _libc_fpstate* fp); #elif defined(__aarch64__) - static void FillCPUContext(RawContextCPU *out, const ucontext *uc, + static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, const struct fpsimd_context* fpregs); #else - static void FillCPUContext(RawContextCPU *out, const ucontext *uc); + static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc); #endif }; diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc index b63f973..3d809b8 100644 --- a/src/client/linux/handler/exception_handler.cc +++ b/src/client/linux/handler/exception_handler.cc @@ -439,9 +439,9 @@ bool ExceptionHandler::HandleSignal(int sig, siginfo_t* info, void* uc) { // Fill in all the holes in the struct to make Valgrind happy. memset(&g_crash_context_, 0, sizeof(g_crash_context_)); memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t)); - memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext)); + memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t)); #if defined(__aarch64__) - struct ucontext* uc_ptr = (struct ucontext*)uc; + ucontext_t* uc_ptr = (ucontext_t*)uc; struct fpsimd_context* fp_ptr = (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved; if (fp_ptr->head.magic == FPSIMD_MAGIC) { @@ -450,9 +450,9 @@ bool ExceptionHandler::HandleSignal(int sig, siginfo_t* info, void* uc) { } #elif !defined(__ARM_EABI__) && !defined(__mips__) // FP state is not part of user ABI on ARM Linux. - // In case of MIPS Linux FP state is already part of struct ucontext + // In case of MIPS Linux FP state is already part of ucontext_t // and 'float_state' is not a member of CrashContext. - struct ucontext* uc_ptr = (struct ucontext*)uc; + ucontext_t* uc_ptr = (ucontext_t*)uc; if (uc_ptr->uc_mcontext.fpregs) { memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs, sizeof(g_crash_context_.float_state)); @@ -476,7 +476,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) { // ExceptionHandler::HandleSignal(). siginfo.si_code = SI_USER; siginfo.si_pid = getpid(); - struct ucontext context; + ucontext_t context; getcontext(&context); return HandleSignal(sig, &siginfo, &context); } diff --git a/src/client/linux/handler/exception_handler.h b/src/client/linux/handler/exception_handler.h index 591c310..42f4055 100644 --- a/src/client/linux/handler/exception_handler.h +++ b/src/client/linux/handler/exception_handler.h @@ -191,11 +191,11 @@ class ExceptionHandler { struct CrashContext { siginfo_t siginfo; pid_t tid; // the crashing thread. - struct ucontext context; + ucontext_t context; #if !defined(__ARM_EABI__) && !defined(__mips__) // #ifdef this out because FP state is not part of user ABI for Linux ARM. - // In case of MIPS Linux FP state is already part of struct - // ucontext so 'float_state' is not required. + // In case of MIPS Linux FP state is already part of ucontext_t so + // 'float_state' is not required. fpstate_t float_state; #endif }; diff --git a/src/client/linux/microdump_writer/microdump_writer.cc b/src/client/linux/microdump_writer/microdump_writer.cc index 6f5b435..a508667 100644 --- a/src/client/linux/microdump_writer/microdump_writer.cc +++ b/src/client/linux/microdump_writer/microdump_writer.cc @@ -571,7 +571,7 @@ class MicrodumpWriter { void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); } - const struct ucontext* const ucontext_; + const ucontext_t* const ucontext_; #if !defined(__ARM_EABI__) && !defined(__mips__) const google_breakpad::fpstate_t* const float_state_; #endif diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc index 86009b9..f2aec73 100644 --- a/src/client/linux/minidump_writer/minidump_writer.cc +++ b/src/client/linux/minidump_writer/minidump_writer.cc @@ -1248,7 +1248,7 @@ class MinidumpWriter { const int fd_; // File descriptor where the minidum should be written. const char* path_; // Path to the file where the minidum should be written. - const struct ucontext* const ucontext_; // also from the signal handler + const ucontext_t* const ucontext_; // also from the signal handler #if !defined(__ARM_EABI__) && !defined(__mips__) const google_breakpad::fpstate_t* const float_state_; // ditto #endif -- 2.9.5 ================================================ FILE: package/google-breakpad/0003-src-client-linux-handler-exception_handler.cc-rename.patch ================================================ From 2fa414c8655c421e7eb0bb1719928babb0ecf7c6 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 26 Dec 2019 22:21:33 +0100 Subject: [PATCH] src/client/linux/handler/exception_handler.cc: rename tgkill to BreakpadTgkill() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since glibc 2.30, a tgkill() function was added in the C library, and its definition obviously conflicts with the internal definition of google-breakpad, causing build failures: src/client/linux/handler/exception_handler.cc:109:12: error: ‘int tgkill(pid_t, pid_t, int)’ was declared ‘extern’ and later ‘static’ [-fpermissive] 109 | static int tgkill(pid_t tgid, pid_t tid, int sig) { | ^~~~~~ In file included from /usr/include/signal.h:374, from ./src/client/linux/handler/exception_handler.h:33, from src/client/linux/handler/exception_handler.cc:66: /usr/include/bits/signal_ext.h:29:12: note: previous declaration of ‘int tgkill(__pid_t, __pid_t, int)’ 29 | extern int tgkill (__pid_t __tgid, __pid_t __tid, int __signal); | ^~~~~~ Upstream google-breakpad simply dropped the use of the internal tgkill() in commit https://chromium.googlesource.com/breakpad/breakpad/+/7e3c165000d44fa153a3270870ed500bc8bbb461. However, this is not realistic for Buildroot, since we do support old systems where the system C library will not necessarily provide tgkill(). Signed-off-by: Thomas Petazzoni --- src/client/linux/handler/exception_handler.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc index b63f973b..b4c279b8 100644 --- a/src/client/linux/handler/exception_handler.cc +++ b/src/client/linux/handler/exception_handler.cc @@ -106,7 +106,7 @@ #endif // A wrapper for the tgkill syscall: send a signal to a specific thread. -static int tgkill(pid_t tgid, pid_t tid, int sig) { +static int BreakpadTgkill(pid_t tgid, pid_t tid, int sig) { return syscall(__NR_tgkill, tgid, tid, sig); return 0; } @@ -387,7 +387,7 @@ void ExceptionHandler::SignalHandler(int sig, siginfo_t* info, void* uc) { // In order to retrigger it, we have to queue a new signal by calling // kill() ourselves. The special case (si_pid == 0 && sig == SIGABRT) is // due to the kernel sending a SIGABRT from a user request via SysRQ. - if (tgkill(getpid(), syscall(__NR_gettid), sig) < 0) { + if (BreakpadTgkill(getpid(), syscall(__NR_gettid), sig) < 0) { // If we failed to kill ourselves (e.g. because a sandbox disallows us // to do so), we instead resort to terminating our process. This will // result in an incorrect exit code. -- 2.24.1 ================================================ FILE: package/google-breakpad/0004-Fix-for-non-constant-SIGSTKSZ.patch ================================================ From 4a332d01186b09a9d46390b845024d914d9149cb Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Sun, 21 Mar 2021 13:17:00 -0700 Subject: [PATCH] Fix for non-constant SIGSTKSZ On glibc > 2.33, `SIGSTKSZ` might not be constant (in which case it expands to a call to `sysconf` which returns a `long int`); see http://sourceware-org.1504.n7.nabble.com/PATCH-sysconf-Add-SC-MINSIGSTKSZ-SC-SIGSTKSZ-BZ-20305-td650948.html Cast the two arguments to `max` to `unsigned`, which is the type of the variable we're storing the result in anyway, so that it works both with the old-style constant `SIGSTKSZ` and the new configurable one. Signed-off-by: Michel Alexandre Salim Change-Id: I3d87048561a87c6b9fcdbb14b3d53dd45b0a00f0 [Retrieved from: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2776379] Signed-off-by: Fabrice Fontaine --- diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc index ca353c4..3788829 100644 --- a/src/client/linux/handler/exception_handler.cc +++ b/src/client/linux/handler/exception_handler.cc @@ -138,7 +138,7 @@ // SIGSTKSZ may be too small to prevent the signal handlers from overrunning // the alternative stack. Ensure that the size of the alternative stack is // large enough. - static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ); + static const unsigned kSigStackSize = std::max((unsigned) 16384, (unsigned) SIGSTKSZ); // Only set an alternative stack if there isn't already one, or if the current // one is too small. ================================================ FILE: package/google-breakpad/Config.in ================================================ config BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS bool default y if BR2_i386 || BR2_x86_64 || BR2_arm || BR2_aarch64 || \ BR2_mips || BR2_mipsel config BR2_PACKAGE_GOOGLE_BREAKPAD bool "google-breakpad" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC) depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS select BR2_PACKAGE_LINUX_SYSCALL_SUPPORT help Google-Breakpad is 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. You may want to set BR2_ENABLE_DEBUG, in order to get useful results. This target package installs a static library named libbreakpad_client.a which should be linked into programs willing to use Google Breakpad. A host variant of this package is also available, and provides the different tools needed to extract the debugging symbols from target binaries. https://chromium.googlesource.com/breakpad/breakpad comment "google-breakpad requires a glibc or uClibc toolchain w/ wchar, thread, C++, gcc >= 4.8" depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC) || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/google-breakpad/Config.in.host ================================================ config BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS bool default y if BR2_HOSTARCH = "x86_64" default y if BR2_HOSTARCH = "x86" default y if BR2_HOSTARCH = "arm" default y if BR2_HOSTARCH = "aarch64" default y if BR2_HOSTARCH = "mips" default y if BR2_HOSTARCH = "mipsel" ================================================ FILE: package/google-breakpad/gen-syms.sh ================================================ #!/bin/sh NAME="${0##*/}" STAGING_DIR="${1}" TARGET_DIR="${2}" shift 2 SYMBOLS_DIR="${STAGING_DIR}/usr/share/google-breakpad-symbols" rm -rf "${SYMBOLS_DIR}" mkdir -p "${SYMBOLS_DIR}" error() { fmt="${1}"; shift printf "%s: ${fmt}" "${NAME}" "${@}" >&2 exit 1 } for FILE in ${@}; do f="${TARGET_DIR}${FILE}" if [ ! -e "${f}" ]; then error "%s: No such file or directory\n" "${FILE}" fi if [ -d "${f}" ]; then error "%s: Is a directory\n" "${FILE}" fi if dump_syms "${f}" > "${SYMBOLS_DIR}/tmp.sym" 2>/dev/null; then hash=$(head -n1 "${SYMBOLS_DIR}/tmp.sym" | cut -d ' ' -f 4); filename=$(basename "${FILE}"); mkdir -p "${SYMBOLS_DIR}/${filename}/${hash}" mv "${SYMBOLS_DIR}/tmp.sym" "${SYMBOLS_DIR}/${filename}/${hash}/${filename}.sym"; else error "Error dumping symbols for: '%s'\n" "${FILE}" fi done rm -rf "${SYMBOLS_DIR}/tmp" ================================================ FILE: package/google-breakpad/google-breakpad.hash ================================================ # Locally calculated sha256 3504639ee5d7536e7f7939b80520dfcb98863e9b50673dd577d0ab2a07105acb google-breakpad-7515ab13768c7edc09f0f2ec2354dc6c928239a6-br1.tar.gz sha256 f9752a0a4ac5215eaa3a4f0ec29cd52563c883de5d7870525cc0bc3a21cb8e15 LICENSE ================================================ FILE: package/google-breakpad/google-breakpad.mk ================================================ ################################################################################ # # google-breakpad # ################################################################################ GOOGLE_BREAKPAD_VERSION = 7515ab13768c7edc09f0f2ec2354dc6c928239a6 GOOGLE_BREAKPAD_SITE = https://chromium.googlesource.com/breakpad/breakpad GOOGLE_BREAKPAD_SITE_METHOD = git GOOGLE_BREAKPAD_CONF_OPTS = --disable-processor --disable-tools # Only a static library is installed GOOGLE_BREAKPAD_INSTALL_TARGET = NO GOOGLE_BREAKPAD_INSTALL_STAGING = YES GOOGLE_BREAKPAD_LICENSE = BSD-3-Clause GOOGLE_BREAKPAD_LICENSE_FILES = LICENSE GOOGLE_BREAKPAD_DEPENDENCIES = host-google-breakpad linux-syscall-support HOST_GOOGLE_BREAKPAD_DEPENDENCIES = host-linux-syscall-support # Avoid using depot-tools to download this file. define HOST_GOOGLE_BREAKPAD_LSS $(INSTALL) -D -m 0644 \ $(HOST_DIR)/include/linux_syscall_support.h \ $(@D)/src/third_party/lss/linux_syscall_support.h endef HOST_GOOGLE_BREAKPAD_PRE_CONFIGURE_HOOKS += HOST_GOOGLE_BREAKPAD_LSS define GOOGLE_BREAKPAD_LSS $(INSTALL) -D -m 0644 \ $(STAGING_DIR)/usr/include/linux_syscall_support.h \ $(@D)/src/third_party/lss/linux_syscall_support.h endef GOOGLE_BREAKPAD_PRE_CONFIGURE_HOOKS += GOOGLE_BREAKPAD_LSS 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 GOOGLE_BREAKPAD_TARGET_FINALIZE_HOOKS += GOOGLE_BREAKPAD_EXTRACT_SYMBOLS $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/google-material-design-icons/Config.in ================================================ config BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS bool "google-material-design-icons" help Material design icons are the official icon set from Google that are designed under the material design guidelines. https://github.com/google/material-design-icons if BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS config BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS_TYPE_PNG bool "Install PNG icons" help Use PNG icon types. The default. Traditional format; simplicity and compatibility. config BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS_TYPE_SVG bool "Install SVG icons" help Use SVG icon types. Vector format that is limitlessly scalable. config BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS_FONT bool "Install TrueType font" help Install the Material TrueType font (ttf) on the target system. config BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS_SPRITES_CSS bool "Install CSS sprites" help Install CSS (PNG) spritesheets. config BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS_SPRITES_SVG bool "Install SVG sprites" help Install SVG spritesheets. endif ================================================ FILE: package/google-material-design-icons/google-material-design-icons.hash ================================================ # Locally calculated sha256 769547061a51f81623bf5174767c08fc587fd6946339592fbd6cd0dd45f56b4c 2.2.3.tar.gz sha256 8ae9438818c26e4873b91d8c6ad620526c011e27e125677f13031eda903f007c LICENSE ================================================ FILE: package/google-material-design-icons/google-material-design-icons.mk ================================================ ################################################################################ # # google-material-design-icons # ################################################################################ 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 = \ https://github.com/google/material-design-icons/archive GOOGLE_MATERIAL_DESIGN_ICONS_LICENSE = CC-BY-4.0 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 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 $(foreach family,$(GOOGLE_MATERIAL_DESIGN_ICONS_LIST),\ $(INSTALL) -d $(TARGET_DIR)/usr/share/google-material/$(family) \ || exit 1; \ $(if $(BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS_TYPE_PNG), \ $(INSTALL) -D -m 0644 $(@D)/$(family)/1x_web/*.png \ $(TARGET_DIR)/usr/share/google-material/$(family) || exit 1;) \ $(if $(BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS_TYPE_SVG), \ $(INSTALL) -D -m 0644 $(@D)/$(family)/svg/production/*.svg \ $(TARGET_DIR)/usr/share/google-material/$(family) || exit 1;) \ ) endef endif ifeq ($(BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS_FONT),y) define GOOGLE_MATERIAL_DESIGN_ICONS_INSTALL_ICONS_FONT $(INSTALL) -D -m 0644 $(@D)/iconfont/MaterialIcons-Regular.ttf \ $(TARGET_DIR)/usr/share/fonts/google-material/MaterialIcons-Regular.ttf \ || exit 1 endef endif define GOOGLE_MATERIAL_DESIGN_ICONS_INSTALL_ICONS_SPRITES $(if $(BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS_SPRITES_CSS), \ $(INSTALL) -d $(TARGET_DIR)/usr/share/google-material/css-sprite \ || exit 1; \ $(INSTALL) -D -m 0644 $(@D)/sprites/css-sprite/* \ $(TARGET_DIR)/usr/share/google-material/css-sprite || exit 1) $(if $(BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS_SPRITES_SVG), \ $(INSTALL) -d $(TARGET_DIR)/usr/share/google-material/svg-sprite \ || exit 1; \ $(INSTALL) -D -m 0644 $(@D)/sprites/svg-sprite/* \ $(TARGET_DIR)/usr/share/google-material/svg-sprite || exit 1) endef define GOOGLE_MATERIAL_DESIGN_ICONS_INSTALL_TARGET_CMDS $(GOOGLE_MATERIAL_DESIGN_ICONS_INSTALL_ICONS_FONT) $(GOOGLE_MATERIAL_DESIGN_ICONS_INSTALL_ICONS_IMAGES) $(GOOGLE_MATERIAL_DESIGN_ICONS_INSTALL_ICONS_SPRITES) endef $(eval $(generic-package)) ================================================ FILE: package/googlefontdirectory/Config.in ================================================ config BR2_PACKAGE_GOOGLEFONTDIRECTORY bool "Google font directory" help Font files available from Google Fonts https://github.com/google/fonts if BR2_PACKAGE_GOOGLEFONTDIRECTORY config BR2_PACKAGE_GOOGLEFONTDIRECTORY_FONTS string "List of fonts to install" default "ufl/ubuntu" help Specify a space-separated list of fonts to install. They correspond to the path of the font directory within Google Font directory code base. For example: ufl/ubuntu, apache/kranky or ofl/gleego. endif ================================================ FILE: package/googlefontdirectory/googlefontdirectory.hash ================================================ # Locally calculated sha256 ec2ddbeee673cce1b0796e3b20fbff5fd836ce9ba6d88deed8b59154fa255f06 googlefontdirectory-94dff3eaa9301b6640cccc63c56d6ff33d82882c.tar.gz # Locally calculated with # for i in $(find apache/ ofl/ ufl/ -name 'LICENSE.txt' -o -name 'OFL.txt' -o -name 'LICENCE.txt') ; do printf "sha256 %s\n" "$(sha256sum $i)" ; done sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/robotocondensed/LICENSE.txt sha256 3ddf9be5c28fe27dad143a5dc76eea25222ad1dd68934a047064e56ed2fa40c5 apache/opensanscondensed/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/walterturncoat/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/fontdinerswanky/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/aclonica/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/sunshiney/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/ultra/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/unkempt/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/slackey/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/satisfy/LICENSE.txt sha256 3ddf9be5c28fe27dad143a5dc76eea25222ad1dd68934a047064e56ed2fa40c5 apache/opensans/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/montez/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/kranky/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/arimo/LICENSE.txt sha256 3ddf9be5c28fe27dad143a5dc76eea25222ad1dd68934a047064e56ed2fa40c5 apache/opensanshebrew/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/tinos/LICENSE.txt sha256 3ddf9be5c28fe27dad143a5dc76eea25222ad1dd68934a047064e56ed2fa40c5 apache/opensanshebrewcondensed/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/justanotherhand/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/robotoslab/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/homemadeapple/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/craftygirls/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/crushed/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/robotomono/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/maidenorange/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/roboto/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/rochester/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/rocksalt/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/creepstercaps/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/nokora/LICENSE.txt sha256 3ddf9be5c28fe27dad143a5dc76eea25222ad1dd68934a047064e56ed2fa40c5 apache/mountainsofchristmas/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/cousine/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/syncopate/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/specialelite/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/luckiestguy/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/rancho/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/smokum/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/redressed/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/irishgrover/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/comingsoon/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/cherrycreamsoda/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/schoolbell/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/yellowtail/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/calligraffitti/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/permanentmarker/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache/chewy/LICENSE.txt sha256 0fc8e6675568c02aac6b41dd3cccaf2264fc5969601effe68e09b26635879b2c ofl/ranchers/OFL.txt sha256 ff72e4d89860e64ee38ccf8a5a7e9dc085d5e36115b096a6c7f8bc988e9bec61 ofl/kumarone/OFL.txt sha256 643c63caf03855ae29be68035d8888e95eadc767a1d92f163d686da1b0a1cd3c ofl/cantarell/OFL.txt sha256 1d242ab6fbb2dfbba2e7119b00a6328bc59cb2faf7299b844e9b92a2f12c0d8b ofl/adventpro/OFL.txt sha256 01af2625d6247ecd2430d1d1603c579f85989d43b2d9129e08e0ac0df8909918 ofl/tienne/OFL.txt sha256 5fb0694694dc307d1eb0121689395e634b6329ff545acc53f55ad66a716b3cf1 ofl/baloobhaina/OFL.txt sha256 f3bc8767749fc133d9b35e84ca024b82f1ac4d1b38deca0adcf8300892303022 ofl/faustina/OFL.txt sha256 69c34ca1873308c667ddde663cbf59c0d1cf14cbb945ad010f71d21264249e24 ofl/aubrey/OFL.txt sha256 4febcc8d6e539db3e0c652da87bc8704f6d48e71e07f8ddb0974094a3de8da81 ofl/flavors/OFL.txt sha256 d24ff874133ecd133e55d7c4070d2edab14d3933477c2bccb3a0d8d1cc9c33bf ofl/muktavaani/OFL.txt sha256 ab5499b975c2dc82f533c6f13c5fca589df4d57c7c400db5f6ca8565ad9c2fd3 ofl/butchermancaps/OFL.txt sha256 6a28d4d5d8b4d1ea89ace5a047ac6e0de182acdb8bfa22897bf7702102094f69 ofl/shadowsintolighttwo/OFL.txt sha256 7a1d085067cd589026b256dd85af1eaa1087fa0f3d468192724c5138cc14d894 ofl/copse/OFL.txt sha256 fd17f80dc48ff767d91d0dd9f821eebfd8b73ee82f55537a9052b6b0107622c8 ofl/voces/OFL.txt sha256 186d750eb496a4c17a76385f82be6aea2ac1cf2de074a811d63786cf374ea73f ofl/barlowsemicondensed/OFL.txt sha256 4aa1da66597f4c5cfde67790992ee55926ef6aaa87b9a10d529ab35e8b91070c ofl/asapcondensed/OFL.txt sha256 301f77908df2b00141b4dcea50cc1a586c3afcee78843bd811088e8263623f9d ofl/amaticsc/OFL.txt sha256 6b6c6721a30480a323cf33acf6a7703dfce46b846827a65f8ee96230060e3c3e ofl/homenaje/OFL.txt sha256 393d494f9ebb5db6a3552ffa03a4c6f3746c22808b40d011b391681da55ca3f6 ofl/kellyslab/OFL.txt sha256 ca19ac21c7656f493189093eca52b4239fcc5eacc15ab2e3d67cfbfc0e6e443b ofl/sirinstencil/OFL.txt sha256 980c2b058d331f3c5ca4a1223e549511b71630e4f4a5533879d436d583cb5665 ofl/arbutus/OFL.txt sha256 2758cf7a872827f39661cf8cc24188113c030447aefb5ca7145993650076ca8c ofl/ptsans/OFL.txt sha256 7527e73a61f742a0dd050ab2fc7333de71ac7886023c100bca66a0a93b37498e ofl/headlandone/OFL.txt sha256 39b26527bf9ed27b4c85b86341eceea0579f3550bcf448cf06345eaadf947ec9 ofl/rugeboogie/OFL.txt sha256 2ac164969308ac200eefc516151934701044f0db5695ae2acc15df2a8d22e5cb ofl/anaheim/OFL.txt sha256 88d3abd47414e7912d0d2eb44ca89e0b1bd7c43cc2ebe58a8a75281ad75a0f60 ofl/stardosstencil/OFL.txt sha256 01003114b77326df223f291c48cdf12e95f6a5937437f164347919f2bbde12d4 ofl/josefinslab/OFL.txt sha256 83aa5adca2418f091b732a19cc7c30dcb5c00c217051a58f34f5eecb19be0cd3 ofl/average/OFL.txt sha256 585c6d2da8bcd8ffa651e0016f2e992a6891b625143a46a1dacf00699a817d9a ofl/monoton/OFL.txt sha256 96e65d9c227a972e38035b849bba1e8b7879eecbb52f278be1e71dd481187f02 ofl/domine/OFL.txt sha256 d1bf0acea511ad1f4de53e942cffb8ab0e67c03c6203d6f390d71105d52c33f0 ofl/missfajardose/OFL.txt sha256 131d19126a0e7ddd25540fd6bee219cebbc8aee7e8374882998ee6c2f4ff6cf4 ofl/mergeone/OFL.txt sha256 042a570b306ab893c6168be7e6e79bbceae46097141357ad0af7ef8bb179ed7b ofl/goblinone/OFL.txt sha256 91c25c350d3cac39da2736d74f7ba37ef648f5237a4e330a240615bc8d8c4360 ofl/ibmplexserif/OFL.txt sha256 bc80ea18223ea0db2ed73ab5bfd0cd601906a2b7a163183c6c4ea333be309ce4 ofl/baumans/OFL.txt sha256 5f5dbf452c1657370d9280b50d647212a53c80acae6d78e0b5e8c2b26dc62b09 ofl/puritan/OFL.txt sha256 90bd333a5cf0ed09264fc3e559d44979373f6c3d983b0f65cc46e952b4eb61f0 ofl/contrailone/OFL.txt sha256 1d08c63944e639bbfe8a1b81e3c6a63836806c126b3573b9cda0db83fd27ffe9 ofl/taviraj/OFL.txt sha256 62fab0ba1d5593782cbf048da193f4b1edc16b817577a99d707827513ad80e9a ofl/overlock/OFL.txt sha256 75798d56e448ba4d2aec3ef5f3c2d805d9c6fe2ba688cd3d7162b2dd31e9cf48 ofl/textmeone/OFL.txt sha256 eef925ad6afcbba33f7989f5ad826fd68d50cc1ab4d679c52927c8afd40bddf0 ofl/sedansc/OFL.txt sha256 466aaa3bbd245e4c91c4e82c0828efe9fcfd913f5b020d75f0918516c2540fa8 ofl/spicyrice/OFL.txt sha256 88ac81fcd30e64f6e6b91b61b159c9b700bb3dd59012b72ec61629abcfc7fba1 ofl/medulaone/OFL.txt sha256 1d567f7c5f579d9031ae5edfb0108b4681bdd2e036249b228cc2843d3f052a0f ofl/redactedscript/OFL.txt sha256 ce78cc8de3f6edd2738e8c02f2079db7086c9a74314baa5854675f83c33954ff ofl/kenia/OFL.txt sha256 76af3e9e5d8768b17647813a443fcf5df3eb3ced017ee285796625e714d5ea2c ofl/ruslandisplay/OFL.txt sha256 6e54fc004ebeb61322ecab1d86334ebf69e7051632d48eca489beee505d70762 ofl/hermeneusone/OFL.txt sha256 8586a7e75681c7297af4cc0641eb2b29e882c5187fe189a1160eceb4e95d4163 ofl/fenix/OFL.txt sha256 d8eb8611f8c98d20cbf18a28425652d6022dc2a5cca15026b920f1f2bc92a612 ofl/deliusunicase/OFL.txt sha256 197c3f48cff4df3d768230e0bbdbc4305d8b8b9041ea6fb5e00872af66adc5ae ofl/novamono/OFL.txt sha256 08fba9df5c9890f3ab00ee63f63e005ad93a23746f7484f5fe9501a1ad32730e ofl/allerta/OFL.txt sha256 af88d31020bb48a1f78f4384249814d04a44d22feeede2ff4ae79fbb4fcf74da ofl/rammettoone/OFL.txt sha256 397e83b05703a4240be51e2c3a2be1d0d7693d7a2d8b1ff367c26a2b9afc013e ofl/singleday/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/cedarvillecursive/OFL.txt sha256 d416bc9437e1d7d8aba0613395ee49c95ce72d680672e910c6205b545cfcbad8 ofl/cherryswash/OFL.txt sha256 513346ac60af1dde9d4a7bcfad3f39909d5697373a8aa1a6ee4376e6d22d3cdf ofl/niramit/OFL.txt sha256 0b1bada9befa95a40d55830fe83fc7f8064e245fea33bdf0f96f57848f3866fa ofl/coda/OFL.txt sha256 2a7b0a41ef401e4e0e955280b07c0a2698932d56aad3181089bdbbaad5760491 ofl/habibi/OFL.txt sha256 2d62278530348951887211d79d1dba04acebd6ed3b1c413f6154702efea3ea62 ofl/iceberg/OFL.txt sha256 a20db45220b6c4dc9776f24c77dc9ec7a98977d8b3c65b03aabe66b2d08e0791 ofl/cabincondensed/OFL.txt sha256 fc1e501d419d84a8f1a800adae092045002d7141241f498237611dbb8ea763d7 ofl/stintultracondensed/OFL.txt sha256 9a51726e5f247cb1f07bb8f49c163bc3e9ddee5f367bb5a1871d09b854ed1b7c ofl/basic/OFL.txt sha256 ce0023bc03e1428feb5abfaa939b601d2d827ee5a6c84a2657993a7b16c5290a ofl/diplomatasc/OFL.txt sha256 e30f893523e50ebbe07acd783ae29c7d604e6208cae7646d993e8528ce13e35a ofl/federo/OFL.txt sha256 9d96f445b6e9c701428811d0177f894874f8d6f07ecc30d568c506542368f3ff ofl/sharetechmono/OFL.txt sha256 46239ba6485d28553fd944da4ad32a00d9c403aa1c3e111676b0b96fe458d1d4 ofl/averiasanslibre/OFL.txt sha256 5951473ab31533bfe1452bbcece47f237a5546c7e7d45ff1aec0289619623294 ofl/fugazone/OFL.txt sha256 aa5d677391db4e54ad324b6888792e533c5d800de7ab713302a2fc8bff2f4f6e ofl/miltonian/OFL.txt sha256 e0cde1a4993ed689d463d5e2401f4a60c54cc48a14253ab0f8012d722c417038 ofl/mavenpro/OFL.txt sha256 c1eed37b6d213df4edf8f92ec7d1e972f751abd68ecd649b4f0b8e5d8e8561f6 ofl/yrsa/OFL.txt sha256 5bbeae56b9db61a9bf85b64d5ed9a74cfcf9ee3e9b005bc2906859ddecd5eaa1 ofl/esteban/OFL.txt sha256 7b826efb1b74a50b1c1aef0a1ba4530925b993ceadc3016d1d787c68a61649dd ofl/tenorsans/OFL.txt sha256 28c6d2887c3dfa42488c5418c6c16ead580d33ff0afe60c05159689201f9ec63 ofl/jollylodger/OFL.txt sha256 ce0023bc03e1428feb5abfaa939b601d2d827ee5a6c84a2657993a7b16c5290a ofl/diplomata/OFL.txt sha256 8f2e5a9b52cf355023104413827e17dd7126c5a3656492d45eaa1ceb270aa4f1 ofl/yantramanav/OFL.txt sha256 fe079cdbbad0f6520eb0a8235bce65b21596dd0c4c5a2694b3325cc87313b618 ofl/shortstack/OFL.txt sha256 018d17b5e04c0a217a21979fa6b6d77bd5a143a5f06ea2ea102e427abd1ebfa2 ofl/tradewinds/OFL.txt sha256 31c59bcdd538c113ef5c048f56827439facb12b7e5cfd158b04c83727edc453b ofl/salsa/OFL.txt sha256 eeacf16032901d0ed0456876ec77b8f0fda6b3fecec7d972f8543eb602e6c30f ofl/nanumpenscript/OFL.txt sha256 ddf311c28ddf5a5ad9747649837346b67bed9d356789c3072bb27dbce49e514d ofl/ptserifcaption/OFL.txt sha256 c867d1a613bebc4932cf28c060fefb3bcfba3be56ed498b873c79f4eb786af1d ofl/librebaskerville/OFL.txt sha256 694282197de3d750a43689dc64a8116cd19578cd516e7b2490c7b5362c064dbe ofl/kameron/OFL.txt sha256 cb30d3086a8b3ce0b9e3690bf48d6620402b61160bc658076f95180ccd9e9dae ofl/sourcecodepro/OFL.txt sha256 a40c3a6d0c968d3a10b17a2614606de6f20178deccc2447305f31fb106a57fb0 ofl/fresca/OFL.txt sha256 5d3457831b42632d958fe1a14a09706d8acb006486a5ca5b2b419cd61cb22e32 ofl/chelaone/OFL.txt sha256 6b53fb03a50914cc382f4d025ee595c17c43f24ae870f840bc51969d3e316c7e ofl/limelight/OFL.txt sha256 574430e571a6928624f4bdf044420f7547a26309b7ebf6962296d33294e0a1e0 ofl/combo/OFL.txt sha256 fd20b82eb12d16ec31a58fc44f7e6c533b14b425b569d83f616a1f7a9a401e75 ofl/gochihand/OFL.txt sha256 0e74984817cdd51dbfbd8309022aa75f733e80dff0cb1d26ad2157e90446ba97 ofl/enriqueta/OFL.txt sha256 ddf311c28ddf5a5ad9747649837346b67bed9d356789c3072bb27dbce49e514d ofl/ptserif/OFL.txt sha256 4e69611ba5017f1fde74c31d342f5c85604814b1b45387b9ab46205996dec38e ofl/astloch/OFL.txt sha256 013e33b6b2919fd0ffbdde6080a1c0f4521689fdce0f4876a59cf49ff8ae31c0 ofl/geostarfill/OFL.txt sha256 14b3fbd06078a869cf2ba96e6dacb852d373703c86ca7ad54a4cdd6e20fbab19 ofl/knewave/OFL.txt sha256 a8103c045a88bf9b28dcd7eb60a6662008f49afc0f3721bc46aaf761fc0409e7 ofl/englebert/OFL.txt sha256 bd22e766af8f8e58eb520cb4fa73538826d04f7371b45e82295d22d1e32a4e58 ofl/gidugu/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/justmeagaindownhere/OFL.txt sha256 5fba78215eb4e42aed6cb0b5c5df52e0f71246281a866cd4493dfcfcbcab9518 ofl/playball/OFL.txt sha256 e75230ee246a04912366cd8d759d081200d80fb0756766c96dd52f73e8b40bed ofl/romanesco/OFL.txt sha256 39de3de5f1873f89bca4af37823ab22e28e88d0d8f7fe2f07e82e9e6e9bf7b70 ofl/gamjaflower/OFL.txt sha256 244ca4ef7b106d8c660e9a00cecf5d581b6a222f447d7d59a8f61711b2ad3400 ofl/uncialantiqua/OFL.txt sha256 36e2f1debc9778bac79fac1a0cb5a5ef51c102f00b58ef7d8a05324144b68166 ofl/didactgothic/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/giveyouglory/OFL.txt sha256 638774cdf8233b5ddaf9ebee1821e9de1d5d59c335d8ee3ba0b47fb17833b502 ofl/glegoo/OFL.txt sha256 842b4f4605b32518a1269c4d030d719ea2c4c317d699fc4441d0219658e18893 ofl/seoulnamsan/OFL.txt sha256 a10a07aaa150c147fa3cb22e845013f38e6c2b45fe5ba32a74ed1be9d4c417ae ofl/odormeanchey/OFL.txt sha256 a74380bba78a364ec70b3a5fb6a1161b83cb05cc3e75a0910afbd1b5aff4f9c8 ofl/jaldi/OFL.txt sha256 9b8405bf5f503f92401fc990f372b34d469670ab60041d5298d1015d3d0b45f8 ofl/thabit/OFL.txt sha256 7c05152b2380228795cb474819744653fb03ddbfe5990b912ec7d9a41387230d ofl/asap/OFL.txt sha256 ca9fe3a0e10bbb082f83ecdc07f5f04845c4bd689c46456da3e6bae23e11aae2 ofl/inder/OFL.txt sha256 5b158abb3406e69b7408b562b7199f6ff55a41ea56e260b87176d693b0095e47 ofl/piedra/OFL.txt sha256 b7eae5e3c3447f70caa14e0c43f5e0d953f54ee59df406f6362863bcee1a0a95 ofl/almendradisplay/OFL.txt sha256 87b7d831a81fe8b37e7e6c672937493f710ff81883eee3adec7b5423297efd16 ofl/sharetech/OFL.txt sha256 4ec46c3e4469afa19f0156bac6917472974f9c85c189f9220cf8735d3e810401 ofl/kristi/OFL.txt sha256 93f60741563b4f51f2fcdb207fde72b2b23292a47022c729aecd998b360d8038 ofl/bilbo/OFL.txt sha256 4b255eb44f613a8e426e195f0d0b7e10fcba1af7eb6047d9a7f4f3c449940e19 ofl/hindcolombo/OFL.txt sha256 afc1b710d644c1262e1765d2401abcf93a545a4cb051955e2243fbabb8164e25 ofl/carroisgothicsc/OFL.txt sha256 930fed5b06a415736dc3b4e5f4f01585523b672717564bf677f93966bcd57636 ofl/lustria/OFL.txt sha256 9a536e5a3b55c2605b0a553eed383cd3efa42ba48dc45cc6f0635b3c53ee791e ofl/warnes/OFL.txt sha256 879ec56fcc9a961937fd24d542b3b7b3f2b8cb3236b7351e62d16719e25de14c ofl/griffy/OFL.txt sha256 29cca754098468057880970c604e55c4e2bcb8479742e4130c94f2ddc0363f9c ofl/sixcaps/OFL.txt sha256 67261c7ceb3e627da5c94d6617dac6da29bf36b910bee304a7680ad62e2c8b46 ofl/changaone/OFL.txt sha256 327bac41d89cf9f32e0efe353228018e1661cff458a5d4905714958514df7bd5 ofl/lalezar/OFL.txt sha256 525411e604e7a1d85a4cd42641869f94388f04a6ed77829d6c4edd7fd740ceab ofl/ramaraja/OFL.txt sha256 3d08baba63f1f2427fd96dee8da30b1ef6c1421b3be0e1f07cc2a78abb27c91d ofl/seaweedscript/OFL.txt sha256 4c0a1150a363b42bd8681ff4a00315ac49510a944c4c9978237ff8b90a8920a5 ofl/grandhotel/OFL.txt sha256 bc4c7eb365ea342b1a027fb8417fb0152f5d482a2e31c012fbfa29b668827b04 ofl/cutivemono/OFL.txt sha256 1818771d183d203703c4b134f028527b535810e2a0666c8fe2785354ddbef686 ofl/battambang/OFL.txt sha256 b7eae5e3c3447f70caa14e0c43f5e0d953f54ee59df406f6362863bcee1a0a95 ofl/almendra/OFL.txt sha256 9e0d3db586ba0abf5ca398683809dacdf4c81b2960f592bd085fbf206a67ddb0 ofl/sansitaone/OFL.txt sha256 fb1dbf3725bbdd389b2c569e0eed5091d8d10eed2833ec7efacfc3542e408615 ofl/scheherazade/OFL.txt sha256 9134ca6996bd33ea2022e109f13f20e29dee1dcd8b2e8878aad576d2ca334e9f ofl/cormorant/OFL.txt sha256 156ea6985861158c7dea63ecaac4c78ab0ed737d168ddffc3e34c687985a033b ofl/sansation/OFL.txt sha256 a9b3e7e1cf5735dc49d802b88b1858a2a50307ba2a877ddf3f0b27d8b1d0abc5 ofl/blackandwhitepicture/OFL.txt sha256 5fe7f3c9410c29534ddd9dfaf64d3994ed4236096d0d543ae69eacc3b25632b1 ofl/bitter/OFL.txt sha256 f6f60d5d4cf4f4b1fc4e41353c897a2f5a16e6396c0cd8fa8bdfd2f4586a9a68 ofl/alegreya/OFL.txt sha256 e88691a5e0a8a3f788f31db959701ec90a1d5e7505f1cc53c5663180a7d23c81 ofl/lohitbengali/OFL.txt sha256 ac55580be2df22a06d29a47501e2ae11e1d399620f5a779e17a66f016ba6d5ff ofl/portersansblock/OFL.txt sha256 27d9af34210253e7ca1251fbace86c6f65b40031d6ce1a75493a1b2093631298 ofl/vt323/OFL.txt sha256 9452ef55386e77bd284ca466587d72802337621d7f10aa700e449753883b3397 ofl/trocchi/OFL.txt sha256 a9b3e7e1cf5735dc49d802b88b1858a2a50307ba2a877ddf3f0b27d8b1d0abc5 ofl/stylish/OFL.txt sha256 4b255eb44f613a8e426e195f0d0b7e10fcba1af7eb6047d9a7f4f3c449940e19 ofl/hindkochi/OFL.txt sha256 3173acd82f8c6159b5b1037b539fcbd4edff68e65c2ea8b9412b5a5ca97b08ff ofl/archivoblack/OFL.txt sha256 c832a4230a713d080aa2f2544d9a298ed911f689b2c48f7f276a0196b16d2b8a ofl/cookie/OFL.txt sha256 ae28423a5e63cb65e651ccf62c9091b322fff1d2d4e87ad9f98b1096c2e7abb5 ofl/metrophobic/OFL.txt sha256 4b255eb44f613a8e426e195f0d0b7e10fcba1af7eb6047d9a7f4f3c449940e19 ofl/hindsiliguri/OFL.txt sha256 8c22fb3866eaebd77a2cb8e8ecbb095381ff32300db57758326fef35a26132f5 ofl/ranga/OFL.txt sha256 d2875ded3e44e9ae53ea2b35e825dafffa19e82c5d14addb9f1150fcd7a3463d ofl/mina/OFL.txt sha256 8242e7737bce317f7a7f2b887ac87f5bb21305ab96bee92aadc3febac16c35bf ofl/voltaire/OFL.txt sha256 fca01a37b10879d7685c7d03fc5a04086b15cdb2cb4f870cb687aa5a9a0a1361 ofl/jimnightshade/OFL.txt sha256 2492bb8645caaf622bdc3e880cdc9b069921e7341346d7b193666c866a1935d0 ofl/condiment/OFL.txt sha256 e6ac721b16f309c89fb443680afda427ea34968bad190a80edf281d01d65fa99 ofl/andadasc/OFL.txt sha256 1e5d6660366ddcfca4f2fc10e2acfba9fa4d97d40aec80d7dbfd41d730a420ae ofl/cinzeldecorative/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/coveredbyyourgrace/OFL.txt sha256 4b255eb44f613a8e426e195f0d0b7e10fcba1af7eb6047d9a7f4f3c449940e19 ofl/hindvadodara/OFL.txt sha256 5c36e7ec460b285185ea23847aa1f508708d9ce15d5c055279defd022972f836 ofl/rakkas/OFL.txt sha256 0b7eae990329ac175a2e1c329060b3a4d6876e4e0cd7e5235511578352f7b191 ofl/biorhyme/OFL.txt sha256 c54957d55e7c9e66c28e474cd39de75dc044e8f69056788cae44eb78841ceef1 ofl/montserratsubrayada/OFL.txt sha256 fccf4916b5f84ef5f88d93fec464421aaf4121d11d4be8d74ee2d032f7661d6c ofl/padauk/OFL.txt sha256 9ca8b9e5db7184105da255bb110023cf1cce6caa56186341bb7b09ba97b20ba5 ofl/prociono/OFL.txt sha256 0c3f4763f49c2cd37757a2856ad470aec6a416981ac6d6e3f900c1128be39de7 ofl/elsie/OFL.txt sha256 0d5fa0cce86012de872273700eef4fd162459e7c24a6a314911380627391071b ofl/bigshotone/OFL.txt sha256 ca64dee162bf239c7b92d854d388bcd30552edc3ae1ef5e31714acda34c988db ofl/jomhuria/OFL.txt sha256 bd77eae571de83ba3884c74c7983e8ac5cdf858badc36906179346dcd7e82454 ofl/gentiumbookbasic/OFL.txt sha256 2ce1c4fcf4ab9c8474d0824434497d4afa4425db4de5629103698b170ac4ee74 ofl/bungeehairline/OFL.txt sha256 9c56b4e2e4e922cc37e19e1a9e2e1128beaa17a812e1b67c8ac371b0fb57ae03 ofl/kopubbatang/OFL.txt sha256 f62ef357d3a1c3d27edd35a6e1ba350e8a8d13499797964eeadefbf0b3b15d1f ofl/tillana/OFL.txt sha256 486c4d5b9baf0d0ba5546ef3c43fcfe22c062299ab6948045a43efffe4b0f74b ofl/italiana/OFL.txt sha256 4539710406c656519f8ddc789056a7cd6f4fe66b44cc2f52ebca6e251bb26e13 ofl/imprima/OFL.txt sha256 7f55affd2bce8ed9be13297ba8df1a4a7e9835c2a006126dc2a1eb4ce75a7943 ofl/muli/OFL.txt sha256 867b506cb023eae20c1accde77b2e0abf7d8a9e2620da8dbebac9f7b1117ca0b ofl/cantoraone/OFL.txt sha256 aa72b0185d828cb2fafa62a154e84bd3e20c88ada30326089bb20542b6363aaa ofl/manuale/OFL.txt sha256 4664e83780a263c53dbab95d3590a5a9db914aeb9a3c78f7e7ad451f9151c998 ofl/spacemono/OFL.txt sha256 fc59ca3cd3bcb47bd4df597519111ec130c25cabcc57a8808dd2d243cdcec6ae ofl/oldenburg/OFL.txt sha256 43c372f43d145c22e654781860506a75cb85b086dc76028a62a28a446506d253 ofl/italianno/OFL.txt sha256 a7fe1f3d23034092b015aaeb53d2ecbc9e592be96b10bdfbcf8700ec6a6ffc97 ofl/fascinateinline/OFL.txt sha256 d13a278247ce39695f5ea6b721103faa668083022c5280b78c6392263e473929 ofl/bonbon/OFL.txt sha256 f0be7437bbb8b91ad4a4f7a5f3d0020368e494a803d892df03e8886d51f2db3a ofl/candal/OFL.txt sha256 a68d8ec6bea7f277053ae93bf563d4b97c233f09f8e79f86ffe5db66f31fdddf ofl/prozalibre/OFL.txt sha256 b00c646b7d04a6da1665a148815b8c589c1e05ed7e1febf7ccbd91758747cb03 ofl/quattrocentosans/OFL.txt sha256 a3deaae17ab9a15dc3c2778126aa6f80d41d567741853f84b16a9e1318ed799a ofl/koulen/OFL.txt sha256 50f7b09af5ff677f611a96cdf5eb916307c59b29f2e8144942718cb432a9bf6f ofl/margarine/OFL.txt sha256 72a22b6dd29b6b0cdcc98de30701b46532c9f7314ee095df3063d10775dd70c3 ofl/trochut/OFL.txt sha256 325e890b8b26fe0a683c3ba24c506d902bdd7034d9c47bd7fa2bb72b5433b9c9 ofl/shrikhand/OFL.txt sha256 62fab0ba1d5593782cbf048da193f4b1edc16b817577a99d707827513ad80e9a ofl/overlocksc/OFL.txt sha256 d941aa56e280b4f204272c4b1add01a8ebc7af3e8e69ba8ba9118aa2a5306dde ofl/berkshireswash/OFL.txt sha256 9134ca6996bd33ea2022e109f13f20e29dee1dcd8b2e8878aad576d2ca334e9f ofl/cormorantsc/OFL.txt sha256 36c285c5472c625901d4a13da7e31c5ea6126678d31d56cf95572c49f27c8950 ofl/passionone/OFL.txt sha256 fbc351e1b5428e4f45834647dc23a5f8aaa3e744e2f4117ca03c44f640b9a3a2 ofl/stintultraexpanded/OFL.txt sha256 021d5f1df697848da51620394659187be77cbe382ff2f896bc84ffb89c0c2d52 ofl/portlligatsans/OFL.txt sha256 85b700bfba1250a6f8bdf930cd7113faf3d8e9dc52cd89eb98c3ac8a038a4aa9 ofl/londrinasketch/OFL.txt sha256 c972795e48b096b6d4e3a947b0bb21c1baf1922a6e07ff9ada587c058f228740 ofl/coustard/OFL.txt sha256 eb4a7a082fb0e7dde0a8f975d33f02907ccbe40751c8115e790cf3679787d01c ofl/strait/OFL.txt sha256 9b1cfccef4a7e19f90e2901f808f3aec4335d3cc81f978453ad0c8ded14447a0 ofl/novascript/OFL.txt sha256 43c89012c2b640187aae7e0c83d5ffa8381a0368c00e8426594358d44d3811e3 ofl/nunitosans/OFL.txt sha256 fdecdad755f4e5e95bee491c7521f31625dc08283562ea8579543c90430eb269 ofl/karlatamilinclined/OFL.txt sha256 5e80642a11aff2ead815949a8a929aff3fb7b9b6a24391406068a1b204dcc8ba ofl/abeezee/OFL.txt sha256 bd77eae571de83ba3884c74c7983e8ac5cdf858badc36906179346dcd7e82454 ofl/gentiumbasic/OFL.txt sha256 f2fcbde4b8968400d661e7dcc23052b1885815c8e3b45323b26cbb833352f5de ofl/timmana/OFL.txt sha256 c8af073a60e30b55ef5d0e4f80cea168e06dd65bdee7ec18c1ea8de8f7228780 ofl/strong/OFL.txt sha256 2ce1c4fcf4ab9c8474d0824434497d4afa4425db4de5629103698b170ac4ee74 ofl/bungeeinline/OFL.txt sha256 013e33b6b2919fd0ffbdde6080a1c0f4521689fdce0f4876a59cf49ff8ae31c0 ofl/geostar/OFL.txt sha256 e55c615ed00ce0054bd356041a41e5942b4a8cadceac1e32696ba2ef5f06f748 ofl/andika/OFL.txt sha256 4705fc9bceb299b2a951d23c321d31f3679871bb99ceadb978907704d211f4f2 ofl/pacifico/OFL.txt sha256 2887c5bb38abbde9ccc608c4dcc4b0dba0fefc0c74eec011033bcfbd3ffcb235 ofl/jacquesfrancois/OFL.txt sha256 99d67fff016522688b8f913377f8ae9f6da6ffeae42cf67c0e5e87cfb0928d33 ofl/unna/OFL.txt sha256 bba4a13f03d0fd5b476cc148feda6895dd8d65f34b2107ba9d010ad9539d6c0a ofl/faunaone/OFL.txt sha256 842b4f4605b32518a1269c4d030d719ea2c4c317d699fc4441d0219658e18893 ofl/seoulhangang/OFL.txt sha256 58bbdbe5c48dd1d7cfd658425a455c29811181873d3a46a4932c29e5b0ec16e6 ofl/euphoriascript/OFL.txt sha256 f62ef357d3a1c3d27edd35a6e1ba350e8a8d13499797964eeadefbf0b3b15d1f ofl/laila/OFL.txt sha256 17b90cece30db64934b7299fd76b033a3774c8a990e78badc74c59a5be8e0727 ofl/cairo/OFL.txt sha256 5f8ff4a3f951c104e99245bdb952be08c73369222048bbf19fa3bf7170d10949 ofl/sanchez/OFL.txt sha256 8eb1c1019fe7fe6d0b6e7d7bbbba1d9cbdd969d8c5f26455708f6cfb8a77284c ofl/nanummyeongjo/OFL.txt sha256 942d51cf079299e83e9dd7a9a37eb92260524e8d1d576b2f0b3f7ca207c53f8e ofl/newrocker/OFL.txt sha256 117fa195cff980e3b10fd8e8e21658c6ec954b0886647970a03c9694d3553b69 ofl/galindo/OFL.txt sha256 1d08c63944e639bbfe8a1b81e3c6a63836806c126b3573b9cda0db83fd27ffe9 ofl/athiti/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/annieuseyourtelescope/OFL.txt sha256 f2ab7e5c5c750fa03a8d8f64c72a089ed86fbd3dc172440fcc704b27816d5957 ofl/noticiatext/OFL.txt sha256 9a33b452a3107542c35fc5fcee80e4d8798c82aca071c2f6f58a0f8dc5ad61fe ofl/cevicheone/OFL.txt sha256 5fb0694694dc307d1eb0121689395e634b6329ff545acc53f55ad66a716b3cf1 ofl/balootammudu/OFL.txt sha256 8f24842e9174beda18a556c2ae7d54f5dc444340c19a3a9ef77e23bca366adbd ofl/firasansextracondensed/OFL.txt sha256 746b384383888d9325ed2fa9c40d2456b458aa190dd2b8c515ed4f02a1075bb7 ofl/magra/OFL.txt sha256 8f24842e9174beda18a556c2ae7d54f5dc444340c19a3a9ef77e23bca366adbd ofl/firasanscondensed/OFL.txt sha256 fe9183a0b7c1ae626b14004cd533c89ec7c192aba017f81ab71ede910256abb2 ofl/abhayalibre/OFL.txt sha256 876db27db250a9b9c03fc2ef30a5efe1f37c2ed2686d368c3779583bdf746912 ofl/balthazar/OFL.txt sha256 4342add6f0f2261f8579f31c10a55938930559703eed18be4a33b74eb749d298 ofl/doppioone/OFL.txt sha256 d8eb8611f8c98d20cbf18a28425652d6022dc2a5cca15026b920f1f2bc92a612 ofl/deliusswashcaps/OFL.txt sha256 16a8be6ac4b009ba1dd1e17cea48762f4915609ea5dca1303f716cf63998739d ofl/adamina/OFL.txt sha256 1d567f7c5f579d9031ae5edfb0108b4681bdd2e036249b228cc2843d3f052a0f ofl/redacted/OFL.txt sha256 866669fde730bf2785f44905ec162f05f2b8d9f6dcf366aca99360fedbfe502c ofl/dancingscript/OFL.txt sha256 008445a4d53fbd71bff9cf733bdfd841a1b15fb58ef3473f7bab4c456e3b2930 ofl/ovo/OFL.txt sha256 b7eae5e3c3447f70caa14e0c43f5e0d953f54ee59df406f6362863bcee1a0a95 ofl/almendrasc/OFL.txt sha256 2a3ca501fc4d5efcad9798531e3e06962b1e20c60e464f6cbd6c17630112c773 ofl/imfellgreatprimersc/OFL.txt sha256 95d23e4559ea8c6a36aa04fab56e1dca0780f5d93734072d4501023296543102 ofl/archivo/OFL.txt sha256 3747fdcbfe4f51d6a2f101c35105bacde3715b3c32b34b6b03e5fb37983f89fc ofl/quando/OFL.txt sha256 38a83f1f8b6efc3ab354b8b6eed22e8524dc71280844dc24811d95ae27b34952 ofl/khyay/OFL.txt sha256 b8fb5cd1bafb52e652c733fdb75ee20c763e97acb0398f6b4bbe1d8ada0c07e5 ofl/misssaintdelafield/OFL.txt sha256 a3b0977c5c25101d45054cf9199b9127b05fddc79d4da7dcf400821824e5a6d0 ofl/radley/OFL.txt sha256 41f82bb4d24b304f30f7136bc47abdd083782e4265c984160f5649d1e78ea49c ofl/montserratalternates/OFL.txt sha256 7c05152b2380228795cb474819744653fb03ddbfe5990b912ec7d9a41387230d ofl/asapvfbeta/OFL.txt sha256 d3909465d5838d9d1c72b975ff1ed4f410a85dccd43801be525bf2b2bde89f92 ofl/snippet/OFL.txt sha256 2ee5e8e47cd7d08f60bb9555f72b25912c9e81b13f5bc9a0551ddf943da6ca98 ofl/mukta/OFL.txt sha256 f323edc1e5a6d8fa16120aa15367cdfb15468474cc621f9bda1a2f73c5d08d73 ofl/sedgwickavedisplay/OFL.txt sha256 eef925ad6afcbba33f7989f5ad826fd68d50cc1ab4d679c52927c8afd40bddf0 ofl/sedan/OFL.txt sha256 4281c00ab5b8f672fc8d686f48cb886ffbe900c8c9ee22473ca7e72e7cef8fbe ofl/wellfleet/OFL.txt sha256 8b89f3af5fd02216793ff3dfe9a04dc22dfe5c213422ae21558ff1da6a1e94dd ofl/cabinvfbeta/OFL.txt sha256 4bf7256c8ee73577ee5e26643d3247ec77017ca04489befd3e0f3412827729c7 ofl/laomuangdon/OFL.txt sha256 399b33eb38cdfc76b8665defa5f81d52e8193d630ad5858c893db6bc20031bc9 ofl/rye/OFL.txt sha256 aa5d677391db4e54ad324b6888792e533c5d800de7ab713302a2fc8bff2f4f6e ofl/miltoniantattoo/OFL.txt sha256 8594350034ab1cb85a1946ef8852e69290255816c311450a66fed6eeda9d6292 ofl/anonymouspro/OFL.txt sha256 1e5d6660366ddcfca4f2fc10e2acfba9fa4d97d40aec80d7dbfd41d730a420ae ofl/cinzel/OFL.txt sha256 351740da2d452b48193483f22f64918a6dfd64a7abe225c6187ad3f36e0d9cd8 ofl/postnobillsjaffna/OFL.txt sha256 64a73da7af818283168543e24bd214aded1bfec06f013bf9cebc20064a8560c5 ofl/elmessiri/OFL.txt sha256 4fece81b541808b40293b0cd3f5b1990274e1100e1c20455dc2987cd96639d3f ofl/metamorphous/OFL.txt sha256 8d325681662a30f58f57c92ab656dcbc9679deb78a493e4c0eab75321b2df6c3 ofl/worksans/OFL.txt sha256 2887c5bb38abbde9ccc608c4dcc4b0dba0fefc0c74eec011033bcfbd3ffcb235 ofl/jacquesfrancoisshadow/OFL.txt sha256 aac8f0cda6159b7251d1034651bcb42e07611495bc8cd764c89d22f3123032f8 ofl/aladin/OFL.txt sha256 81d0973236b5b5709a80a217a330db36eabedf57bf4031de46b4660b69901234 ofl/leaguescript/OFL.txt sha256 5454dc5cf2f46a2005f42f13ee2a998c7d0afd7f556f32fda208c72b266f7adc ofl/cambo/OFL.txt sha256 b2d4b0c773afce947728ab99fca43b242b7edb0da26fe29f60c7c2d5094ec23e ofl/suwannaphum/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/labelleaurore/OFL.txt sha256 6939af7114f0a33c7e6142d4c1320d1bbde11aebe6d8f3c48fc5fb3e0f676a7b ofl/jejumyeongjo/OFL.txt sha256 cbdf9d35f32a9a2f02fb23c8b89c115a5a8e45feaaa2266920c4594c83dd5ed4 ofl/tenaliramakrishna/OFL.txt sha256 95d23e4559ea8c6a36aa04fab56e1dca0780f5d93734072d4501023296543102 ofl/archivovfbeta/OFL.txt sha256 967d75b89eef1f8a0ba1f5ee7dfb13427621f9116c6e7878ca04da8c9aa8641b ofl/mrssheppards/OFL.txt sha256 8af83da84dd4299842f871285a88049352ab301ffa1f233d2595b29506158635 ofl/blackopsone/OFL.txt sha256 548890e4083028f04e5feba04b6e00554654d840aab81c8664eb66c2216a571b ofl/palanquin/OFL.txt sha256 c4cd9f38c3246ee6a68c264f017320dc1af09677d386166d8cda806d9a12e0d2 ofl/jockeyone/OFL.txt sha256 a36ab46c8b1a74a480a1c51d6a5af08b643e870c6d247f233bc97c97c8ad2098 ofl/tuffy/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/nothingyoucoulddo/OFL.txt sha256 b5c776129b160163c84620b35fd45dea45edf49789cda5a94c2290c230581e0b ofl/scopeone/OFL.txt sha256 dd028a807788d5e22e9f8cc18f026cda23369954673658f2ecc7d30bdb364b89 ofl/sintony/OFL.txt sha256 8928e999ff156e35852ab41d7a906598a8285acd3bcd81dff67213a6cd98d43e ofl/mallanna/OFL.txt sha256 473c5e3123102434d05c66a9fc8b19cf285a3bf71cd8a91a41acef44d1448e62 ofl/sevillana/OFL.txt sha256 22d1914919d3fe08b179dc31169fc743ca7eede7827b91a5d48c23c8cdc7cb81 ofl/anticslab/OFL.txt sha256 026610186158060ad351fb20cd1452def5d35b2531634c090ce8cd1d9e9aeaf2 ofl/michroma/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/shadowsintolight/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/architectsdaughter/OFL.txt sha256 61056041809e0ba18bf8b9d637a375ab1c725025428533d74d668d88b2cb8b89 ofl/simonetta/OFL.txt sha256 0a852a06f0256a6684662663ccb1d8e08d131abd1f70cf8d972a344cf31aa381 ofl/scada/OFL.txt sha256 f46c3ea04f38ea73c0731d73dfba3d7361d4b38970feb31a3558bd1b75e0656a ofl/lobstertwo/OFL.txt sha256 f30a7045e4e21201182b2b9fc4e4b96189aaeaceb2c8e9b68d8bd3dc4e3c5a27 ofl/greatvibes/OFL.txt sha256 9bc1eb1c679510b32d2e3f5f4f3b47726b1657aa121494aa68ba0b124a3c3a53 ofl/ewert/OFL.txt sha256 1103d0731f1360eb156b0047a1337b2d62266fadcef1015d06f6263719c0200b ofl/librebarcode39/OFL.txt sha256 359671bf16c00cae69cb66d041296b2adc7a4becd73a463cb8c5e101d97c7986 ofl/arvo/OFL.txt sha256 c09e3b81d9cfeec46bc29a3374000e8ad013d694bdf24a288088491dd4cd5c69 ofl/creepster/OFL.txt sha256 29bd0cfd0fb2a45f9b057c834a057724bae1f63b525a8ac83d3e7525706d9f80 ofl/inconsolata/OFL.txt sha256 85814924eca98e1fa530901cc5167d0012aaf31122f9570d7e9755443dd9335b ofl/siamreap/OFL.txt sha256 223fa23e8419ee762c662e0faf912dfcf386fa7093ac9ff690e380ce1993ba55 ofl/asar/OFL.txt sha256 a0369b1d5f654110f2fe101db56a02d02806f1e609ab233368bc573ec45050e5 ofl/butcherman/OFL.txt sha256 4f8b437578b20bff261adfe6c02f63bcf7dbb6a45ab37804b3547e5d5f44927b ofl/nosifercaps/OFL.txt sha256 793891edf1f4f4f35b52fcc9706b03f779c7ea18ab8e9e441242d63ef0279488 ofl/autourone/OFL.txt sha256 842b4f4605b32518a1269c4d030d719ea2c4c317d699fc4441d0219658e18893 ofl/seoulhangangcondensed/OFL.txt sha256 1c023b4aca0e441c55c45c86cdff57fa524a96778f291d9a29a4ad777b70e2e3 ofl/arbutusslab/OFL.txt sha256 de61c87e08286ad3215398340e9403125ab03c91b33bdf29de6d3e8a386d2d28 ofl/dangrek/OFL.txt sha256 53ad6a474f68ddfc3fe72449de3ede4d3f033b2f24b77833b1d56edf505486d2 ofl/sura/OFL.txt sha256 247edbf968c0a5b8defd6a9e420080a8bbca6ea002bfb326d12a472a6f95637b ofl/cuprum/OFL.txt sha256 0623888cc2391c6c9853c04eafa7f687fef1a8328bbb848feab05d9e2a98764d ofl/emilyscandy/OFL.txt sha256 1c43e70c49ef7a9b35fcb3758fec8ec5969ff1274c4834b4466b9014f3b9f55f ofl/volkhov/OFL.txt sha256 cc31fe974951d56d542f33782d07b2d5577a4afdddba89744e6bd69bcbf3a853 ofl/karlatamilupright/OFL.txt sha256 cd354a6084383c50398fae709ebe3a5dd98b947c486c1fe9de5f89caf81f980c ofl/snowburstone/OFL.txt sha256 8a59454b7f1cc0b1fa29805781769047e5c269aa629e3422c2d7fc04b89e5c1f ofl/rosarivo/OFL.txt sha256 de71817dafdecfee21268b8c4f106146e1d00988c4fd6546b10445eb26b24cc0 ofl/expletussans/OFL.txt sha256 d1829ff3455bbf3b9d13dfb0a57758a863107c9108aab48558f26f37f1094180 ofl/firamono/OFL.txt sha256 f62ef357d3a1c3d27edd35a6e1ba350e8a8d13499797964eeadefbf0b3b15d1f ofl/rajdhani/OFL.txt sha256 26e4c39c4905bd7f1068b0bab008f5a4a9b945e2d7fda31e52719fc5aa9655bf ofl/vibur/OFL.txt sha256 49f2a11271968a2ce019a43bf5401d1593652a18f27ea59037ff5e39856d2df7 ofl/changa/OFL.txt sha256 1d08c63944e639bbfe8a1b81e3c6a63836806c126b3573b9cda0db83fd27ffe9 ofl/maitree/OFL.txt sha256 2758cf7a872827f39661cf8cc24188113c030447aefb5ca7145993650076ca8c ofl/ptsanscaption/OFL.txt sha256 4b255eb44f613a8e426e195f0d0b7e10fcba1af7eb6047d9a7f4f3c449940e19 ofl/hindmadurai/OFL.txt sha256 f354ef1e7256644b320c5e1d9a07a819c2e2b930166003c96680894f9fba81be ofl/mrssaintdelafield/OFL.txt sha256 5c289da4a19f054ace8e31a144a6a254601898cd7faf9eaa301141afda0adbbe ofl/coiny/OFL.txt sha256 0886960207bb5bcf81a46ce663bab6c52a742dad80ee2cff5cbcda6f1df88568 ofl/rhodiumlibre/OFL.txt sha256 8f94e5901c371537043e0c762c827ce33963e7bd186fbea0abafc035ef7120a7 ofl/emblemaone/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/gloriahallelujah/OFL.txt sha256 24af1fb3ab8dfeddc83162b7f3b6c1104149b6c3022f1aa948ef4f8ff7e6bf7c ofl/poetsenone/OFL.txt sha256 f3ee3eb20a9d565bee2bbc0d616de382a113327d7506565b2f3d3bee5f489375 ofl/bowlbyone/OFL.txt sha256 70f664de65e7bb62e1ac728f20a9bb28de7fdc18be594186137a9e15ce9dcee5 ofl/niconne/OFL.txt sha256 e604b133509815768e6ec4738bb04844ce9a23e80099d2b61e5d75ef46acbeb0 ofl/ruluko/OFL.txt sha256 42ad5a49e171bec80308a1c9e8e66b03e638b3ea65af7fafa6fc0e42f45e7626 ofl/suravaram/OFL.txt sha256 4fe81901e6f84cfce1145c715e931352a9a12aa7ac75cc193eb523c0cb0e5eb5 ofl/lohitdevanagari/OFL.txt sha256 2937c7789b0e4fdeda6eafe93164a2ab36e20386704c4cb6f87b1deb620ec0da ofl/leckerlione/OFL.txt sha256 91c25c350d3cac39da2736d74f7ba37ef648f5237a4e330a240615bc8d8c4360 ofl/ibmplexmono/OFL.txt sha256 fce9f9e2fb268507a89fceea0b3eccc044f39fc3492968a04fd9e04df5ae95fa ofl/sourcesanspro/OFL.txt sha256 e12a3e737fa75c0ee072d965b6185710f35e38a4f7a0793ebc66ba14a216109b ofl/meiescript/OFL.txt sha256 d2f9c74aba2716333b0a3d283083f9fdc93b2e060c5ae094c79e97e8cba9d7e6 ofl/squadaone/OFL.txt sha256 5d6517d497bea6116ed35079b30374043f6d90b19c8d97fc4e5ec48520d1e08b ofl/zcoolkuaile/OFL.txt sha256 f8a20490ee8ad3adb2205ea44b279b19099a3a1d6b62849e90b4db20a77deeb8 ofl/brunoace/OFL.txt sha256 75b2a5f39a53b4cf9286eb3d2cc1f895a8f3442680013c77124121bc347a6448 ofl/lemonada/OFL.txt sha256 715ba72697e14daa9b29a333545f69bde7c497b9f77d0a2a4c4a5a752d961801 ofl/marcellus/OFL.txt sha256 1103d0731f1360eb156b0047a1337b2d62266fadcef1015d06f6263719c0200b ofl/librebarcode128text/OFL.txt sha256 eba176d3ae86af6b41e9b744e4d18fb56e2a6ad671381bddb61fabb86b1d39c1 ofl/croissantone/OFL.txt sha256 12404fcefccc3cb964cb2406510ba679b30f7d7ae689db08df5b455ae24b3feb ofl/paytoneone/OFL.txt sha256 e2a176ce310235bf281f1124454e21331390ae1b4c429a2d80ae642d333a5a7f ofl/frankruhllibre/OFL.txt sha256 2d83a49d05906b5e23285168e72c0d019fc15e3ad110376f640feeeda34c27d1 ofl/hennypenny/OFL.txt sha256 d7d8074c2dd46804990c184e25849947ab76c5ac7607fbf3966543455769bb73 ofl/yeonsung/OFL.txt sha256 13831d02389d917d22fcfa6c79f98f8acbf61d230add0e73a4d4dc5f3bfb9e56 ofl/chakrapetch/OFL.txt sha256 c39e284759a441660d4c4d852c537e271d0fd5c301fe46d065a972b6ee144ba8 ofl/aksarabaligalang/OFL.txt sha256 4b255eb44f613a8e426e195f0d0b7e10fcba1af7eb6047d9a7f4f3c449940e19 ofl/hindmysuru/OFL.txt sha256 0da6a3e5b24a9fa04085c20a2a1d3101eeb1e0bff56a2291f407187e1b2adcf2 ofl/mrdafoe/OFL.txt sha256 a815f65bc72d90494b01842d3171f7cb0f9f935e023d9cc260904d221ef1064a ofl/b612/OFL.txt sha256 e2f2dc7a667954c16a919acff5351e8ea89813d10f5a7504e1f4668fffbfa14b ofl/barrio/OFL.txt sha256 8c495ddd455def58a45310376a747bb61bf86e4b071cc527b3618bccd3ef00fa ofl/chauphilomeneone/OFL.txt sha256 b687f920fe20fe48d8f7709421e5deeb4becea295c80ce62aadcffc54132fa1b ofl/stalinone/OFL.txt sha256 a90a8ebe28f3c2905a44557166010a3d219ffcce1703c3c3280ea8728d5e2ebd ofl/heebo/OFL.txt sha256 c267a00c9476c78a2336d7b372b536885b8b24173a29ed53496f67a742c14961 ofl/alefhebrew/OFL.txt sha256 2cd51b11e821dad2fb7acc54d68bd9a139fc7a1207e17c432ba9ce49bba3d493 ofl/fasterone/OFL.txt sha256 ca424122f42a8d8442bc4cfd902f5f027ea67b5417705f5af1d1235927781720 ofl/amethysta/OFL.txt sha256 bb8fac04b8535d39fb9851c9d886248d25bc0c82000066c92dd577c3369f512b ofl/chenla/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/lovedbytheking/OFL.txt sha256 53a9ce47085d9fef613c7ecb3730dc80d25962510bbea231b89564f58240f251 ofl/gaegu/OFL.txt sha256 9d96f445b6e9c701428811d0177f894874f8d6f07ecc30d568c506542368f3ff ofl/share/OFL.txt sha256 9465823369fbe1ae0b5a3065021d53ef8c56e113e664229455dc80b237fa6a07 ofl/nobile/OFL.txt sha256 0dd8e32457e18621737b593ab0fac49905cd948a078ed0e64f4890df714a1dfb ofl/amita/OFL.txt sha256 791936b10381b512512317572fb5eee91bf503344d52c37335e402fc1cf19992 ofl/reemkufi/OFL.txt sha256 898a9cf80636e86d6b6009b96795fda29e431ee701c28c36f274a7e8a7d8246b ofl/rubik/OFL.txt sha256 5fb0694694dc307d1eb0121689395e634b6329ff545acc53f55ad66a716b3cf1 ofl/baloothambi/OFL.txt sha256 382232d1add5623ba5b06394afa071f4eeecccb6d2b2bd02cfecff4a8a45065a ofl/fondamento/OFL.txt sha256 0c3f4763f49c2cd37757a2856ad470aec6a416981ac6d6e3f900c1128be39de7 ofl/elsieswashcaps/OFL.txt sha256 d849309d514833fe3d7a610e10f6cd5d99b4f9552bfa304969acbf89c66e4422 ofl/smythe/OFL.txt sha256 53f9c99fa3d47f7d632a42ee7bab4a834a60a744f6026d676c3a223cef2b2ef3 ofl/vollkorn/OFL.txt sha256 a1077580b649c7b0e05ea0e9369d48687b4ab1c585573bf86b0dcce7dde177c0 ofl/junge/OFL.txt sha256 a9b40759b5821a0c2ad07cbd2c2a61dca4b3e222e6370a7d5bfb6b373bf4fb10 ofl/sunflower/OFL.txt sha256 4b255eb44f613a8e426e195f0d0b7e10fcba1af7eb6047d9a7f4f3c449940e19 ofl/hindguntur/OFL.txt sha256 84b11cc0aac8fdb93af94872bc4b8f015caabf4919db63ab7f916ccff8e52f56 ofl/josefinsans/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/dawningofanewday/OFL.txt sha256 f27cbf1055db7b9dd80bce5cd12b462f2d9ed7313d84dd8bfef1ddd2b61bdfc5 ofl/chicle/OFL.txt sha256 aba8997e16b1e3888c6e855ba883c70d96bd4375bff8cb9c7ce0f097200f74b8 ofl/abrilfatface/OFL.txt sha256 8f24842e9174beda18a556c2ae7d54f5dc444340c19a3a9ef77e23bca366adbd ofl/firasans/OFL.txt sha256 d484e0dce424a9e360adabb568b6773db5f1566df71ce3e9dcd66a6cc2c38d33 ofl/ericaone/OFL.txt sha256 1b3b78123c94dcbc9fd4ec174317336c8c93423da62dc946b8852553cb13ddee ofl/economica/OFL.txt sha256 74584d937293a9cacdcd2eb05851b71aa1527901c18b87961d2f877c77a1b486 ofl/kanit/OFL.txt sha256 a6a74417db7c37f69495da556a3eb86a22a784ffb0131e3e0a5a47ce8d7fa5fb ofl/shanti/OFL.txt sha256 2a3ca501fc4d5efcad9798531e3e06962b1e20c60e464f6cbd6c17630112c773 ofl/imfelldoublepicasc/OFL.txt sha256 963f283b5410c7df62067a35cd7def0802c583a880e7cd7e326832ec3985ec87 ofl/spectral/OFL.txt sha256 11bdf9c7abd81f46a88b0b017d78a0e51f451e9dc0c2272813aa9f456ee886ca ofl/kiteone/OFL.txt sha256 6827fa45930d5847fca5b3d3898b3d87a229fba772a5b6c5bc33bf73ec83478d ofl/khmer/OFL.txt sha256 5ae0cfa62a70251d9a2c3c5430ed3bafa480005f23e4b9525488f2318e5c10ca ofl/mrbedfort/OFL.txt sha256 34b8afbcab7508bea23847288332a8c05a507364ca6f0c8756ce560d7d59d506 ofl/mada/OFL.txt sha256 b67eed9578defb59cc4ff4b58428fb816786e499e84cdeafca54723b055c169e ofl/viga/OFL.txt sha256 afc1cda4eedcfe27c8cf30fe3e9879587cb43cc2882d4cb91dd3e3fc9eecd0bf ofl/farsan/OFL.txt sha256 cc8c0c3e81cf543e190f128b83ba7c30959f15865c14dd972fca4917faeceec1 ofl/encodesanscondensed/OFL.txt sha256 9ca8b9e5db7184105da255bb110023cf1cce6caa56186341bb7b09ba97b20ba5 ofl/lindenhill/OFL.txt sha256 a89ac8075be60f2beba79bed3fa253415a373dbdc3bb108b23f4854d0dd495b8 ofl/pathwaygothicone/OFL.txt sha256 4b255eb44f613a8e426e195f0d0b7e10fcba1af7eb6047d9a7f4f3c449940e19 ofl/hindjalandhar/OFL.txt sha256 f22a2beea88d631a620b15683fd03e79f13ad3297ad97fa5e42283c0b1a3a038 ofl/marckscript/OFL.txt sha256 faf47a1ceab38b07205b9d58fbbf9ac39772ea47cc731aca7816276da7226a22 ofl/terminaldosis/OFL.txt sha256 2a3ca501fc4d5efcad9798531e3e06962b1e20c60e464f6cbd6c17630112c773 ofl/imfellgreatprimer/OFL.txt sha256 d2f87f90d108a947f98c030d9d8e4bf27e761ce83f222453b9a7230c5fb309e1 ofl/novaflat/OFL.txt sha256 2da0fa5707f1fab1c802969b098fd1b92ca0b3b233a80e27fca416647c064dfc ofl/exo/OFL.txt sha256 f9e5dfcdb2947c0db70465668706b0617cd052b6f86e582dff8741d9e5cded0a ofl/yinmar/OFL.txt sha256 bcb0bda74430ccc281a616a81d0a287fed5a423815b00b222e0b7f603f85b26f ofl/caesardressing/OFL.txt sha256 a94cfd8d1f5c33f9a7506def359b907f3313f7008bb57fc893985963cd342f8f ofl/arsenal/OFL.txt sha256 52caec7d90533523fa7da64e95faf90ea32a663ce21847a39234b61e18d25044 ofl/bokor/OFL.txt sha256 ef0bdccd20de76d517fb3939161d05ecd5808382fb8fa82cde5fcdb3adcb8029 ofl/engagement/OFL.txt sha256 0d75673e4c98de3e11337dbd90b05d0232edfcade5c1c02fbc0118c85aea25da ofl/macondo/OFL.txt sha256 9cd20277e2c89d47e3997435e3a16539d20173d850fbb42474990f71642e473e ofl/matesc/OFL.txt sha256 a7ba785ad99b6eae0444ab89910e512d4af9865937fddbcb5c72c4f59f55d6ad ofl/merriweather/OFL.txt sha256 010cb216e8f3fbb2836fa3f38787a412b749352de546797f57c03c3bcfe46b1f ofl/nunito/OFL.txt sha256 91c25c350d3cac39da2736d74f7ba37ef648f5237a4e330a240615bc8d8c4360 ofl/ibmplexsans/OFL.txt sha256 cb8bbf7a86eefa8c146f24ae5be74fffa887ba83719ab3c87036be8e3d0191e2 ofl/montaga/OFL.txt sha256 1103d0731f1360eb156b0047a1337b2d62266fadcef1015d06f6263719c0200b ofl/librebarcode128/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/overtherainbow/OFL.txt sha256 3621f156cc7a26e0a9cb413332e0bb35a0e76b36dbfe0b1c885b565a7bf3051e ofl/drsugiyama/OFL.txt sha256 fbb941b371c6348ee2572ce8c78fb66128a61885f960dec1906c4e44ca4b4d3c ofl/reeniebeanie/OFL.txt sha256 9e19c0d2e7e7adcbe9dfd0749e34dda41e7e356e0f2cc082d61d2fc9b6e0cef7 ofl/gfsdidot/OFL.txt sha256 812fc4af0c63d31e0e81cc153af74e397407b0630e918b8b965bcbb192bc0656 ofl/artifika/OFL.txt sha256 e8ad3f3de5baeff6bac6e711d8c406e0a6b8a61d2944741532d8965d893a2681 ofl/pirataone/OFL.txt sha256 9134ca6996bd33ea2022e109f13f20e29dee1dcd8b2e8878aad576d2ca334e9f ofl/cormorantupright/OFL.txt sha256 65f43260cf7e66b57ddca8d148384a6602e2c06edd389a8b3cf388045127b47d ofl/lusitana/OFL.txt sha256 518962c41d4a5e96b0016bd8d8acc965413ea1a0102467e4955931e702b14a0d ofl/iceland/OFL.txt sha256 2171558d2482764644a2f793696fa2e48c361730ecc87686b9a29082d6daeb10 ofl/khula/OFL.txt sha256 d336c098ea798bf14de111cd90dff7d6bc340852405246511345d0f8564fe76e ofl/fingerpaint/OFL.txt sha256 ea274e87939d38032b31fb741af75bff9fa3f8d4a8b652265f9e0ce1ad7e9f80 ofl/asul/OFL.txt sha256 eb1992aec1cf892ec94ffc116d79b62c7cb03dc108141b94a57a4195d210b514 ofl/meddon/OFL.txt sha256 9b584984f9db0ee30347391a76eff9c0a6b03dc450c3c6afe3757a2cb3a4db87 ofl/tajawal/OFL.txt sha256 1dd84b611f4bed7f9ff9089e76a96337b187e6f283a4ab33bcb987f844f2c4db ofl/parisienne/OFL.txt sha256 f62ef357d3a1c3d27edd35a6e1ba350e8a8d13499797964eeadefbf0b3b15d1f ofl/hind/OFL.txt sha256 2a3ca501fc4d5efcad9798531e3e06962b1e20c60e464f6cbd6c17630112c773 ofl/imfelldwpica/OFL.txt sha256 de08ff7a460541753999b1208f1254f1d31f16b421312aca4d4b8179d997de38 ofl/aleo/OFL.txt sha256 7706a84d7e49e2273877106334a1eded8ae89fb5839fb81e0f2bb27c846f667e ofl/lora/OFL.txt sha256 cc31fe974951d56d542f33782d07b2d5577a4afdddba89744e6bd69bcbf3a853 ofl/karla/OFL.txt sha256 0409c6582424508453ce41648067efaacf0c790622918493d8f1d934bc5329a0 ofl/bigelowrules/OFL.txt sha256 9e2d92fb24b4a548ab030c509ba88267e224f2523728ee9bb35cf334811106bd ofl/exo2/OFL.txt sha256 f480fd19e7018942ecaf460f7a4ab9ccee0aec579abcb07d559dbede913864c6 ofl/alikeangular/OFL.txt sha256 6ea7a3ef1d07feb592693f3f22c26d0b09321ff81814292b49be99888d0da9d7 ofl/ponnala/OFL.txt sha256 0b7eae990329ac175a2e1c329060b3a4d6876e4e0cd7e5235511578352f7b191 ofl/biorhymeexpanded/OFL.txt sha256 21b54eb0d7513524798a00dfbaf99a02c003a0012a728cc5f0e02d24c50482fb ofl/caveat/OFL.txt sha256 adadb8d5d34fe2218dca0f4a4919a9b6f81dfaebb289e5446ac7b3063d6965e9 ofl/tangerine/OFL.txt sha256 16741ac498178f645283cfb45b7a487b6d361b5de5730c5ea729f056f414f6b0 ofl/ropasans/OFL.txt sha256 1e5bf8207a40678bc401e2e5456d0db1f2a183b550a30976b48dcdd6a4e4c46c ofl/caudex/OFL.txt sha256 6f9e3a1c51f617e7b110862426204ec7a56d8c6d2f731373b5de6b8d069099b6 ofl/ebgaramond/OFL.txt sha256 c2368518f12463a93cfed44e1460f36085dc60df06f415ee9b0319809987ccce ofl/frijole/OFL.txt sha256 5f247fad3e8a86b6c0779dff09277047c1ce2b0b7580a1093347a8af755352ba ofl/sawarabigothic/OFL.txt sha256 6627b9c2c8ff8e0c6ef23f1b0125dd5b293320c10c916d402fef64916c296d0e ofl/kreon/OFL.txt sha256 723764a50d4e6985dfcbd75fcb40dbd3abab37ba25ae626486d4a32084854487 ofl/kdamthmor/OFL.txt sha256 846ce83956a732edd57b74d9ba988d58abc8c8e6d0926859559318ce6aed139d ofl/mclaren/OFL.txt sha256 ba01480319f922ecebbc73f1a523e7f8876e92b16553a32c494bcd3f6f5a27fa ofl/ledger/OFL.txt sha256 c3bfad2900a83f571d5c984d490d51c56aef14806c28dde38125593e1e71daca ofl/mrdehaviland/OFL.txt sha256 12af42b715a3901bfa7add1351e45b6ce22f3061555d52db45e963274c349360 ofl/arimamadurai/OFL.txt sha256 aa8a8196a3e22c3bd985e33cd3245ae9a38accba5e79fc0e3b292612a8d6b337 ofl/miriamlibre/OFL.txt sha256 3169e7e0e87168908218f11d660a52c0b81b5952fd73918a596e70721d68d3e5 ofl/inika/OFL.txt sha256 e711c816f7de931244976f51166baa15446fc307e5d0ea04fdca1bc2c04afb1c ofl/nixieone/OFL.txt sha256 1ba345a91338581e5f8fccc3e37e447ddea5b99ec9caec1b76c7c39492387d2f ofl/signika/OFL.txt sha256 b01cec9e5e2035b70a6aeb61c673d1f6d5c91539845be07733bd9880fddeb9f0 ofl/kadwa/OFL.txt sha256 d7577acbab1d70f2e6bd1b21d8f61db189d6aabe6375bc2d96564b8d94031664 ofl/stalemate/OFL.txt sha256 5946eec3a7d3bda02825930156e4716198e7753641dd3303a3e8c386c8011909 ofl/eatercaps/OFL.txt sha256 ae6de2f6fc00f76cc7eb0d97c1ae5e0b7ec734f20ad7f58cf4c74738dc822d21 ofl/chelseamarket/OFL.txt sha256 860cbfdc9dbc3f0e8d35af80c31e8f20945bff393d4f483dfc157469e01d321c ofl/gorditas/OFL.txt sha256 9a2d8c5a3de0a6e62432322115dce136139948411dba33cd86525c0a02749fb8 ofl/unicaone/OFL.txt sha256 4fe01b13ffb41faa8f030d84843a95dab32792dfeeca7c072abbfd3f4d6896ad ofl/audiowide/OFL.txt sha256 173ea2d0bdda981829719623c35699e8c0e4aa508e0af12817ad7ccbfa4c6137 ofl/originalsurfer/OFL.txt sha256 1d08c63944e639bbfe8a1b81e3c6a63836806c126b3573b9cda0db83fd27ffe9 ofl/trirong/OFL.txt sha256 58bdc69f4c6177125c6e7cdbc78f710f5f9952f11bba7bd5b17bd7ef169d731f ofl/goudybookletter1911/OFL.txt sha256 2950994bcfb8e903f0539d28a8ec4af077e0aa1fa7946c33c912d2d6969c2971 ofl/glassantiqua/OFL.txt sha256 7344b8b8c97c4f88c0ff8bb72bb024bba72f404be1c740b6596a73ed15d28df3 ofl/vampiroone/OFL.txt sha256 cacad5bf45bf5c81f4b6cbd114261bc8a08f6110b66a4c6fad8bbc16618a3096 ofl/daysone/OFL.txt sha256 0677891e6a143f297350d260ad766ad33bfc18ed5fa4f213acf648d6b597ec1a ofl/alegreyasanssc/OFL.txt sha256 c8155eb9337078a9ea9f1e576ac813a03030ca43e2694593e90cd4fee6fce937 ofl/sumana/OFL.txt sha256 95803fae1b063e592c67b5867f1f36df1df526e5ebf33c6cd4d4afa31a9d5586 ofl/sitara/OFL.txt sha256 c254ae01c407f4a2bd0ad163e4c1a795d57ddfa8967c21b8a28c250b44d13963 ofl/sawarabimincho/OFL.txt sha256 2a3ca501fc4d5efcad9798531e3e06962b1e20c60e464f6cbd6c17630112c773 ofl/imfellfrenchcanon/OFL.txt sha256 25995bcf8e8ddea1aafa5449870567cbbeae7e26b27ba30aca5642f2c02e9757 ofl/quantico/OFL.txt sha256 455755e2e7ce9dbac6beb3729c97c57d6f74a638dcb5be548ec953021fbdbfb3 ofl/ntr/OFL.txt sha256 ad6f73fa3edb7aea340aadbc63c0d7ef7663abed82664432ae09a6b377fa313f ofl/librefranklin/OFL.txt sha256 581f08727777cb2a1a1ec95c0f981ce64fb1ad4354f78a0ac4f3481afa605577 ofl/moulpali/OFL.txt sha256 4bf7256c8ee73577ee5e26643d3247ec77017ca04489befd3e0f3412827729c7 ofl/laomuangkhong/OFL.txt sha256 08fdc7cbd92b9bbc4d41d0945ae7f25450d91c5fc8c66c68df331af3505e4ec3 ofl/rougescript/OFL.txt sha256 694d5c15c1dac5e26653e18b94394d911e471549ec9b7d6247ade62e486b4915 ofl/asset/OFL.txt sha256 bddfe669338d0dbc24c15ccd31dbf5c101a213da38049c24baca9ccb7fde45a4 ofl/wallpoet/OFL.txt sha256 2758cf7a872827f39661cf8cc24188113c030447aefb5ca7145993650076ca8c ofl/ptsansnarrow/OFL.txt sha256 3cbf579238e4eacd90ad67883d971aa346ce8990d658635f78f98d608a6830a2 ofl/zillaslabhighlight/OFL.txt sha256 87000f71a897c8c130c7777d058c5868f84316f99a32644b3bf595cd11edeb12 ofl/sancreek/OFL.txt sha256 08fba9df5c9890f3ab00ee63f63e005ad93a23746f7484f5fe9501a1ad32730e ofl/allertastencil/OFL.txt sha256 9608d22ae5c586628c9904e773b7c6a6520fc16e1492ebcb5ea55d9523399964 ofl/anton/OFL.txt sha256 f3758ee70600ecd5450f01ea373204b202e048d0454c9db2d1175c5a5dd1e92f ofl/vesperlibre/OFL.txt sha256 e43f121c788cca4a14049e58864e28021174b055710ba38e0964e816dbf905af ofl/fruktur/OFL.txt sha256 5e0da210fb04058a8c0087985d2d456b931c2579811a49655721d3cf0c36b6d6 ofl/notoserif/OFL.txt sha256 a1580ba69a8d706bd95e1e72ee0b5cfda0a478fbbab6a4af13b4a9e1b28faac0 ofl/revalia/OFL.txt sha256 f323edc1e5a6d8fa16120aa15367cdfb15468474cc621f9bda1a2f73c5d08d73 ofl/sedgwickave/OFL.txt sha256 2a3ca501fc4d5efcad9798531e3e06962b1e20c60e464f6cbd6c17630112c773 ofl/imfellfrenchcanonsc/OFL.txt sha256 0836fd874230b17f840efcf7d3bb529f5a7b5befbfeef94478519cfe2d8551c2 ofl/courgette/OFL.txt sha256 e3ed3ad6cb257e16dc1789900707c5cd1cdef2d60d155389342604991cf693f9 ofl/bahiana/OFL.txt sha256 391ac3126dacc95b92a8f3408467879edb3245344bc411530a30d5aada52df92 ofl/gugi/OFL.txt sha256 88dcde7d08e509a3eec64886292a36cbd58ed9bb52f37f91f55656fb9d21ddb8 ofl/supermercadoone/OFL.txt sha256 41423e9e1d0ea79d0e78bd5fe9e0b27f4c23140706f5dfbfe116839c83aae91c ofl/charm/OFL.txt sha256 43186c592361336474683e302dcc988831a53857bef188c4466f6b45dc238f84 ofl/fredokaone/OFL.txt sha256 a21fa252efb7a1ff84de6a36df4386959668aa046f28161b4047829f7d9cd1b5 ofl/damion/OFL.txt sha256 842b4f4605b32518a1269c4d030d719ea2c4c317d699fc4441d0219658e18893 ofl/seoulnamsancondensed/OFL.txt sha256 bfc205682f5454b42a732ec857b665293ab8bc6f0ee901a0967219ba7ffdb190 ofl/gfsneohellenic/OFL.txt sha256 59b91c9912b80714852a43897cbc9414d6457e22072dc99a4cea6e2bb4f3c65c ofl/freehand/OFL.txt sha256 8b89f3af5fd02216793ff3dfe9a04dc22dfe5c213422ae21558ff1da6a1e94dd ofl/cabin/OFL.txt sha256 b598b7fddfd578950aa1fe6e0e2607b779abfaa686b83af8ec65c860f646b2cd ofl/rumraisin/OFL.txt sha256 2bd35914efa381c80f9fb62d6ea7d736d3c0739196a3783c3122593c3408392c ofl/gurajada/OFL.txt sha256 5625e91bd7c2a45c8b9f59106d587bd025470b462ea901df691defe0099621e1 ofl/taprom/OFL.txt sha256 37d5360d8d2433689e78302a93cd88e9add8a2294046476625edada2d4328deb ofl/averagesans/OFL.txt sha256 f8e2b58dd7a8c8e21e5d744b45876bce7e010a647c071c1ed42ff0e618d4ea59 ofl/frederickathegreat/OFL.txt sha256 5fb0694694dc307d1eb0121689395e634b6329ff545acc53f55ad66a716b3cf1 ofl/balootamma/OFL.txt sha256 09685e225ba9b697b2ccd2d4098cac5ecbed0679960605258a271af60749887b ofl/francoisone/OFL.txt sha256 39de3de5f1873f89bca4af37823ab22e28e88d0d8f7fe2f07e82e9e6e9bf7b70 ofl/himelody/OFL.txt sha256 08a12877eda24767239f26b527bfce0c515efaf623c66da6baad92a6d5315e9a ofl/content/OFL.txt sha256 0e2ccc5da1dd979f08ba82bca2fb61592506a1e58d3cbfc26d904f0db71bd812 ofl/saira/OFL.txt sha256 d8eb8611f8c98d20cbf18a28425652d6022dc2a5cca15026b920f1f2bc92a612 ofl/delius/OFL.txt sha256 1d08c63944e639bbfe8a1b81e3c6a63836806c126b3573b9cda0db83fd27ffe9 ofl/pridi/OFL.txt sha256 c1eed37b6d213df4edf8f92ec7d1e972f751abd68ecd649b4f0b8e5d8e8561f6 ofl/rasa/OFL.txt sha256 4e66943af352059c059dd658774f25fbc831f1ad478f9f0890c06ecc2dd324c7 ofl/metalmania/OFL.txt sha256 f5b03ea0b27c7f5afb9702771ee57679ae8ba6b471b6ba9e62d985d3256f1929 ofl/playfairdisplay/OFL.txt sha256 593f0bc55c75b673772b378eaee314f128283745c4bb1cfdb9b8012a3b6c46fe ofl/skranji/OFL.txt sha256 46239ba6485d28553fd944da4ad32a00d9c403aa1c3e111676b0b96fe458d1d4 ofl/averiagruesalibre/OFL.txt sha256 14d28541780d90f6577bb7abcc6f005bf6969614294e75c82abb8758a696ad46 ofl/quicksand/OFL.txt sha256 5fb0694694dc307d1eb0121689395e634b6329ff545acc53f55ad66a716b3cf1 ofl/baloochettan/OFL.txt sha256 35dca6122235851d236bd861124f4a893d409eba021cd8c6a292a19df0f4640d ofl/codystar/OFL.txt sha256 ab721b35816e470fb11619ad3705f75d08dccd0864505e3d782e94fd937f6620 ofl/allan/OFL.txt sha256 d9cdb075679d15a99bab2a8541b9c4fdc71347502111fbe9affd1d462219d96b ofl/indieflower/OFL.txt sha256 1313ae342eae4e1810304b6cd32f6815dd11b8e45812a2af98e58b6960684fa0 ofl/petrona/OFL.txt sha256 1e4015251ca58d4f349b4ac930259c6f3d6381ce68f8b4b27d54d53f8f63f972 ofl/angkor/OFL.txt sha256 46239ba6485d28553fd944da4ad32a00d9c403aa1c3e111676b0b96fe458d1d4 ofl/averialibre/OFL.txt sha256 8e28b778b6e1a7ff9ca72f4dee2d53120aa2856dc1bfd0be44307e365b0e45bb ofl/cardo/OFL.txt sha256 a02e8715fcdf3325c474b7209399f50230897bfa828fe4eea2639ced1a1d574b ofl/blackhansans/OFL.txt sha256 d530c14e9cc263c567b47742ef20df2a41374f00732ba4f290f52adad428b1a2 ofl/meerainimai/OFL.txt sha256 2e2fe5f1d8916a5160060594a96c1a5116406d26847afdbd09618481e2abd6fc ofl/denkone/OFL.txt sha256 56c4ff36faaaf336bc5fee659ff6fab2413d67499cc22acc29079b3892d8931b ofl/miniver/OFL.txt sha256 0d75673e4c98de3e11337dbd90b05d0232edfcade5c1c02fbc0118c85aea25da ofl/macondoswashcaps/OFL.txt sha256 742a6a4386db47a2987c7c3b4aeedfb5adedfb3356c118de450a664735686535 ofl/graduate/OFL.txt sha256 9e53298e3629e00ae4c31531cca09051ddaa654a5de4f7b55e596132fff86e1f ofl/dhurjati/OFL.txt sha256 df9fcd8f62ae79aba7fa5b0563a08dfede1fa0909d668287d70c395d88f5fe02 ofl/fjordone/OFL.txt sha256 02faa476b17db0044d0c502a3ce12fdc81eeeb9bd618e6a005407c79d6081bbb ofl/monofett/OFL.txt sha256 1edecf3f971a11dcfd777cbda6f08c0f9a77bf57a0a2a89d8142fb933894ce16 ofl/amiri/OFL.txt sha256 6e6efa9b0556d100cfe60690cff5d9be7144df77adabfd2c278dbfee451351ea ofl/phetsarath/OFL.txt sha256 2348c4852e6322105d130aa2addbe24c962e330094ad6dfbfd9fbd2281d76b0b ofl/bellefair/OFL.txt sha256 3bbcf1617d93d3a949a10da78ae91c58be536fb04567ab4b5b9fd207126f1db5 ofl/buenard/OFL.txt sha256 faf47a1ceab38b07205b9d58fbbf9ac39772ea47cc731aca7816276da7226a22 ofl/dosis/OFL.txt sha256 3ac1301549523d9861fedca12871f24e575fbd26d520632fc00ba849b471d275 ofl/russoone/OFL.txt sha256 44b51296985184d9b27fc2c8e5b317906c5d65d9dc834e81c07902d3e5e1cf1a ofl/brawler/OFL.txt sha256 afb8c471158619593df0fb501453bd39fda42396e2cc3911e2a0a471c11b863c ofl/sarala/OFL.txt sha256 de985adf63cff6b1bcb7c5cb55f1c5850fb1d36289d20a0e26d97a281bfcf956 ofl/aldrich/OFL.txt sha256 194e25172d0144f29aff4b6fb2931ff0be0139448a5cd867db37863c9179330a ofl/stalinistone/OFL.txt sha256 ae05f8781a5ef38380ef3efe8cad86783610b6a780c6c278d7472f95310fccee ofl/oswald/OFL.txt sha256 2dab153a33dcb2101bba3f194d27d953c848a0fabf2e336650a81f84a0c33b3f ofl/pragatinarrow/OFL.txt sha256 9d61931b909f9a738964f8fb311eb8fa40dba1ef9f1688b36039ebb15ee1805e ofl/questrial/OFL.txt sha256 e315abc82a78710c7242e2f2e6529651fd631d4d50e6ad98ea194f9b54c3d701 ofl/alfaslabone/OFL.txt sha256 4653c63a4bab99aa50de5190853fa21ea6c0a25d69d49f5a42cd51f0f67665e0 ofl/boogaloo/OFL.txt sha256 bd8323cd1d2b6bbdfbbf99cb41ec1156d0352ced170de4aa3a96d95e6e20bf5b ofl/amiko/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/sueellenfrancisco/OFL.txt sha256 ed93e9833f18acc2775380a28139fd88d3ebf82df7cb814042498467be3463bb ofl/lemon/OFL.txt sha256 1f00d1f970b4ea469b6936e599b599bb217edaab792e586658ef2e71cf438685 ofl/itim/OFL.txt sha256 fa28ba897eb819768d6bc00c30aa03ef560e80e5f6fb872eaea089c66992f502 ofl/notable/OFL.txt sha256 96199bf9ff12dd471a66911dee95440737b437e7f5a6fd30e9e950c16d66e8df ofl/unifrakturmaguntia/OFL.txt sha256 36e2f1debc9778bac79fac1a0cb5a5ef51c102f00b58ef7d8a05324144b68166 ofl/judson/OFL.txt sha256 ad4f6ede2e8a017255822a6abee8d10717f1d34c20223de80285ff59e28a1cba ofl/bangers/OFL.txt sha256 f8779e6871bbab04e0a1ddd9997f4d8173b56792a1e7f8b9d691d967a49c7dc3 ofl/andada/OFL.txt sha256 49b9214f7b40024abec2fc89a32bdda380f2174ba7005d7636e6ea340157c5a6 ofl/jomolhari/OFL.txt sha256 a815f65bc72d90494b01842d3171f7cb0f9f935e023d9cc260904d221ef1064a ofl/b612mono/OFL.txt sha256 5eca89cdd576df5e4b7c694e0425b126a9ca839aa067df85fab33904a8187076 ofl/amaranth/OFL.txt sha256 e0cde1a4993ed689d463d5e2401f4a60c54cc48a14253ab0f8012d722c417038 ofl/mavenprovfbeta/OFL.txt sha256 eeacf16032901d0ed0456876ec77b8f0fda6b3fecec7d972f8543eb602e6c30f ofl/nanumgothiccoding/OFL.txt sha256 0fbae33ac3aa455c8c0d598347c87f1abfac0d215483f40f5a0e8dd08076df1b ofl/librebarcode39extended/OFL.txt sha256 3670ddaf348c62ada22a2f606158dedcd9ca5fd5422a6173d6593204a8f53d4f ofl/varta/OFL.txt sha256 ab592d1abca19428b89d851706fa7815ec25139c6affb45d366577ca63fb91b7 ofl/yesevaone/OFL.txt sha256 e8dd8f53b2fa502ace0636debbe7e357c4888d8d02b8b41d6a9a22d3058a63dc ofl/peralta/OFL.txt sha256 cdf5fc4014abe91588666a9592ec86200e5a4d743b4b6e05d28d47e850bbe5fa ofl/digitalnumbers/OFL.txt sha256 f8c2225a5fdb50e2e75f98cf6e69f198571f605f1b7f6f7eacc0947e2fcdbe8d ofl/sreekrushnadevaraya/OFL.txt sha256 a80ee908b60f5bec9c10b135d3da93730e2194107d1f7fd3f61bd8c1a97b3e0c ofl/yesteryear/OFL.txt sha256 6d216cec166b6e139adaa599053dd49720c053e1f2adb4845de3cc9c3704344d ofl/play/OFL.txt sha256 46751a31966477e3f038d1e5ff1146a33234a3a523a0e6a21be3221cba082a34 ofl/muktamahee/OFL.txt sha256 505bb8f3c30f2006b4e02d250fda31ed94b651a35f1124a201ca1c405ce989af ofl/biryani/OFL.txt sha256 5641212407f956b828bf632afc4bbb3344f461f82255ab56756d9e3e8604c7b1 ofl/martelsans/OFL.txt sha256 1ed119b01f03187dbe2f5f89c95431b9a4ca46db604fd263164d8b4055189f46 ofl/lateef/OFL.txt sha256 4938e917ac54665be1dd862f54634d991b39c5d1eef69345d66a5089e401bfb4 ofl/creteround/OFL.txt sha256 9263f9488a9ed1d5f4218581b642e0f054f9a20d208f1a53c19c9f7dbd27eaf2 ofl/peddana/OFL.txt sha256 e75ed24435d1711de0bebfaa621c3eb5564798c88cc0c1d1f8d529bbaae703a9 ofl/yanonekaffeesatz/OFL.txt sha256 708e33bed791c40638926a7577bcef8ff8748f84045f3825277540cbb8d483ba ofl/poiretone/OFL.txt sha256 f1d1a3536fa4b9c71d04fe4c8d8bbfc0cc5c457d6883f45086b04d0bc07ed12d ofl/vastshadow/OFL.txt sha256 f9f28345ffcd6cea6e3c6699e4579cd1948053d80fe89a6a5a2ecb269afc95f8 ofl/nikukyu/OFL.txt sha256 c1bcd16ffc9d095822fd6b7fa1a24c7918b24815ed05711421f804293d2efa62 ofl/actor/OFL.txt sha256 ae629d13b06d9afc5cf3c07d585f3192b89b7decaffc5c4dfcfa7ce11a2a2b11 ofl/raviprakash/OFL.txt sha256 bdce62dd98db969b73f93f8e8e2151004c20ad871ceb15ad9bfcbdf2cf939dba ofl/pompiere/OFL.txt sha256 39de3de5f1873f89bca4af37823ab22e28e88d0d8f7fe2f07e82e9e6e9bf7b70 ofl/poorstory/OFL.txt sha256 757f49d04406c93c40d1781e7867fd85a1f9fdfbfe03a5ae332900da802fffc6 ofl/harmattan/OFL.txt sha256 f62ef357d3a1c3d27edd35a6e1ba350e8a8d13499797964eeadefbf0b3b15d1f ofl/khand/OFL.txt sha256 74ba064d03f1f1c4a952da936c3eb71866c34404916734de3cae73b34357e59e ofl/lato/OFL.txt sha256 94625b91cba99cf9c8e580febf5e738b2e3c7cde9034a16bcfb7538b672137e5 ofl/zcoolxiaowei/OFL.txt sha256 3e908f3a95680bdf3c8456bfbf76392605b34cb3fba109e46441056ab966cb35 ofl/modernantiqua/OFL.txt sha256 6a809aeba8af2115ca4b4c3597b1fbeb836a45f0489070f330f9c2dff870da8d ofl/galada/OFL.txt sha256 2c3737ea83b48d48624068d1bbd1d9f8049eb7cf2e1f67435e420375c42e0686 ofl/spirax/OFL.txt sha256 92f750829545386017c3418d890769778b76fd01dfb41c62fcbb0d42ba0303eb ofl/dorsa/OFL.txt sha256 656a20870fbcb8f559f1c6308c1df90ac93d7cd0279aab49b43a43b5e58534e6 ofl/neucha/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/zeyada/OFL.txt sha256 4bf7256c8ee73577ee5e26643d3247ec77017ca04489befd3e0f3412827729c7 ofl/laosanspro/OFL.txt sha256 33e3a83e377c6a41149044bd919f50d9a971d801052d4e0c0a98cb417b42ae38 ofl/risque/OFL.txt sha256 b4fc1d55ce610f255c5712f8169543f9610536d002deb99bbc99bfbba9f8a560 ofl/pangolin/OFL.txt sha256 511125dc85198375795fdbc109d088654d3b7f9dbd3ccb7bf93d844aef0b153c ofl/ptmono/OFL.txt sha256 819e3b25f9b50f12299a3db1638be3813efc6b938f2b86693a218d20ec4e3209 ofl/londrinashadow/OFL.txt sha256 e3ea566dbf689a9110b2094f9f2e5d16d7ec31720147651efc1005ca20420dd4 ofl/flamenco/OFL.txt sha256 186d750eb496a4c17a76385f82be6aea2ac1cf2de074a811d63786cf374ea73f ofl/barlowcondensed/OFL.txt sha256 705960c3281a5765ecc0b59bd4ed7ca59eed165748076bc2fc3e8fdbfeb944b0 ofl/pressstart2p/OFL.txt sha256 7e896665d0863d2a17a671001dbe2528a5f9302f1dff9222af8b0834e9088d0c ofl/kiranghaerang/OFL.txt sha256 5f1f5510eff7922864bf326ffa1d4a62f01add5193e9367b542378e5a808b500 ofl/handlee/OFL.txt sha256 3173acd82f8c6159b5b1037b539fcbd4edff68e65c2ea8b9412b5a5ca97b08ff ofl/archivonarrow/OFL.txt sha256 82831e8f12ecb6deb2f4d9919a04049895b4619e0301fa6b699c861bd7311c54 ofl/kavoon/OFL.txt sha256 1a5e3792a425687a523fc7c0f8ab5d01d58bf853149d57f3dec4b4fc6932fcf6 ofl/hanuman/OFL.txt sha256 7f91d7d8854e5cb4fc630807c0f4d57c07777769dc597173fe0aef5e58f0992c ofl/qwigley/OFL.txt sha256 354b4be0340cd58e381fdf58793a108897bf944a7f8faf9e877c476ed6c730d1 ofl/convergence/OFL.txt sha256 1e20933206ca06421c7c378184da5476d195314cf4bcda2bf122cd45d69a956e ofl/oxygenmono/OFL.txt sha256 a7fe1f3d23034092b015aaeb53d2ecbc9e592be96b10bdfbcf8700ec6a6ffc97 ofl/fascinate/OFL.txt sha256 4dbbe5c21b46f2647d227dde69b971a1b46de1435e0752a9eda1ce120725a93c ofl/norican/OFL.txt sha256 1f581506286e960436548dba0701aab278f7e67f2adc6bdae2958923867d1e64 ofl/hanalei/OFL.txt sha256 56edbe5fff7981dae6f6eff32f61ba04cd54324e5abfa44b1257b2a307ea561c ofl/poly/OFL.txt sha256 59bda6b53e28d388de5eac7bbb8f3e65889dc8489be3d922f95a525354110c0e ofl/tharlon/OFL.txt sha256 3fa0ceff4b9a2d28dde43bc63cde3acfb5e6e92d13a53e484ca0e501e18c7e2e ofl/lekton/OFL.txt sha256 ad9ce814ff266b57d3c4698d3fadca4b41a6f942a0ddd215db5cc66abf92d668 ofl/mako/OFL.txt sha256 c4afe82f49c05689c40dd4e262803b29c6e611e7b4efd3a0418f574b2be79d9a ofl/carterone/OFL.txt sha256 f62ef357d3a1c3d27edd35a6e1ba350e8a8d13499797964eeadefbf0b3b15d1f ofl/karma/OFL.txt sha256 d38acce513eccb51d7ac34ca47be279e1fcfdeca1ed088bdd2d281dc6ca939ee ofl/badscript/OFL.txt sha256 31eb7046f4c80e0f96944c4b40b0772de68b34783b794fc13aab3f54c2ef6d9b ofl/thasadith/OFL.txt sha256 06c79c896894160a5810d869a822fa7d02a0e2ccffd97920b8cf3b880380f6e5 ofl/amstelvaralpha/OFL.txt sha256 4faa2d9e2ce0a4b5b37e62ee6fafe474a539b31578f7214ed97cc3503aeb8ebd ofl/oldstandardtt/OFL.txt sha256 1e511bb01d29562932157365418c02d954d8faeef794bcd54729177fb2b03db0 ofl/istokweb/OFL.txt sha256 846e8cc6dc69bf685d2db14cfa758ff3d9d771d54c9e0d3b511f0ecb97ac0e8a ofl/cambay/OFL.txt sha256 6c181f5a0045e8f414e1c232c35972ab83ea084ac44825f517ba001628d97b21 ofl/kronaone/OFL.txt sha256 d7f96801a28ea11eaa51bc4a9c87fd91f2133bc298068e6e2847a15ddda23089 ofl/librecaslontext/OFL.txt sha256 1f00d1f970b4ea469b6936e599b599bb217edaab792e586658ef2e71cf438685 ofl/sriracha/OFL.txt sha256 22c4588bdc14621220ba14515d52041d1312541e034a15d1f5c2a88fc6075276 ofl/merriweathersans/OFL.txt sha256 1103d0731f1360eb156b0047a1337b2d62266fadcef1015d06f6263719c0200b ofl/librebarcode39text/OFL.txt sha256 5b26c88d163b1430561f53fd3d9021d6057f3c67d25534a5d8d232cfbf8ee2a4 ofl/wireone/OFL.txt sha256 57f8d60cfe9212b971f07253e303746128edd06b21e3a0e4e188308e569f03e5 ofl/orienta/OFL.txt sha256 c87702d8b70f714fbefb554660e8ca57a43ef62a59089d11cbf0c6bd51d56928 ofl/lohittamil/OFL.txt sha256 6939af7114f0a33c7e6142d4c1320d1bbde11aebe6d8f3c48fc5fb3e0f676a7b ofl/jejuhallasan/OFL.txt sha256 9437c26410bcd543607a6775e7d0e359c1df3926d68c92dbaceb26ce79cc0fd3 ofl/bevan/OFL.txt sha256 50265d2b41f8ad2dd350532d2286509aa694021b4aa0490b06f0068e4ed78c27 ofl/herrvonmuellerhoff/OFL.txt sha256 9acc45e5ba18b5b38868fad1f51c03df4f5d7a43061d46314843de45c4444233 ofl/ribeyemarrow/OFL.txt sha256 1fac7a3e4e43b091c2d31aef7a375d2b969c42b2d5fce8e2d40b5f7b1233ddb7 ofl/moul/OFL.txt sha256 331c71cbd8f1d8a70cd6eec3d55553b64e6261a9bb0982fa12e6e48baca827c5 ofl/philosopher/OFL.txt sha256 1e20933206ca06421c7c378184da5476d195314cf4bcda2bf122cd45d69a956e ofl/oxygen/OFL.txt sha256 89418a3c7b5726c3f8828a7b7c3f1cad661cf5b7a1be3d2bd9ea243f8d9890c8 ofl/sniglet/OFL.txt sha256 5fb0694694dc307d1eb0121689395e634b6329ff545acc53f55ad66a716b3cf1 ofl/balooda/OFL.txt sha256 89d9d01291eeb91074ccf1f7ce07e7a1d9d421ec1191f8e84d440cb50830ed92 ofl/purplepurse/OFL.txt sha256 5fb0694694dc307d1eb0121689395e634b6329ff545acc53f55ad66a716b3cf1 ofl/baloopaaji/OFL.txt sha256 9acc45e5ba18b5b38868fad1f51c03df4f5d7a43061d46314843de45c4444233 ofl/ribeye/OFL.txt sha256 f938d4076b66a13cf984ce88d92a07ff9802e8ae5e1f4a28cdc43fad122ae611 ofl/spinnaker/OFL.txt sha256 89bf0833b785c49b0f271273ab440bdc20c85bf0322537dc901df940bf1579da ofl/amarante/OFL.txt sha256 377f4f9c19e935228552478eb68cc2ed82910988a60ba60e2ac73b09f32d02d1 ofl/patrickhand/OFL.txt sha256 684ef102ca4c5ff61cf1c1e5c2c6326f3c26f848446f98b8862dcca716a87601 ofl/quattrocento/OFL.txt sha256 f62ef357d3a1c3d27edd35a6e1ba350e8a8d13499797964eeadefbf0b3b15d1f ofl/rozhaone/OFL.txt sha256 61be7c29f4835e2be7243db12213d75d53ff028f29f4b493212a1688b1d3a1ba ofl/titanone/OFL.txt sha256 9df0700fcd0ef48abd74459a8650d35f59397fbaa00c5b00527e57cc155689c0 ofl/durusans/OFL.txt sha256 b1958132ff727bd74409aa37ec0abbe4be13b1b379e1210e6fb77fc608c607d5 ofl/kodchasan/OFL.txt sha256 f1888ed385b528866a472d02f4e06ef0873aca5b3c63ff1f6116cbb150dc9a13 ofl/metal/OFL.txt sha256 e36d420a3b382b337c386338d8abc3635e10de5dfca7f822fc63ac659a0dcfc3 ofl/amaticasc/OFL.txt sha256 8fbe530adcbe30c658393c3f2b5a4785d6765afcefdfe47f594730131f3a0abd ofl/oleoscript/OFL.txt sha256 60ddc0ee6e443b78940b5f92bcbab76c98ec6965e0da9fbdaf267383ab72bba8 ofl/anticdidone/OFL.txt sha256 afc1b710d644c1262e1765d2401abcf93a545a4cb051955e2243fbabb8164e25 ofl/carroisgothic/OFL.txt sha256 3184f6a99f589c78740fbff6ddaaabb43b8cc2f3852da36e60aeb024ea8d6f00 ofl/eaglelake/OFL.txt sha256 f62ef357d3a1c3d27edd35a6e1ba350e8a8d13499797964eeadefbf0b3b15d1f ofl/halant/OFL.txt sha256 9a9f089005f389717106bb3ba427cda9bd51b8a477078644566543f2a60ca85d ofl/rambla/OFL.txt sha256 99d2f30e282d6174af8ff68597f58bb53c0dcb2b104a4c1b8d19da49021d00d3 ofl/unifrakturcook/OFL.txt sha256 2bb0c0200723d923f8e20d08b8bd1c7af7f5cef8bb2d63ce44bd268b54334621 ofl/fjallaone/OFL.txt sha256 72afba97d1ac9409a9fd3bb91a02a639427ca1988977909dad273e293a508d7e ofl/staatliches/OFL.txt sha256 88aece7d90f2bb7049719f11619a560af22af3451af141f12aa4f46bb157a99b ofl/lobster/OFL.txt sha256 955655cafa13f187f45a79dcf451942fd1118a8426abc5a25ffc5dbb00709da6 ofl/juliussansone/OFL.txt sha256 9e1c955538817c3fab7160cb3110501e73ce109eeb58c4992a14e8323d900849 ofl/pecita/OFL.txt sha256 96d82a96abc02fb457ddde0227833dbde9d1d02876c91f0a4e27845ca0d692fa ofl/atomicage/OFL.txt sha256 7729f005b7a087368e2cf61fc4b65cdc85988e47d0e6e38c93a72de345e86b41 ofl/newscycle/OFL.txt sha256 336fab6956d78eb34b50cd7bc6b16116c44735fbd0bf9f4def769ca4d8e218a9 ofl/sofia/OFL.txt sha256 b26cae1321380296ba8311b632a397d5eac11b47197f9d0aa0b9310f1531ad60 ofl/sarabun/OFL.txt sha256 aa8a8196a3e22c3bd985e33cd3245ae9a38accba5e79fc0e3b292612a8d6b337 ofl/suezone/OFL.txt sha256 d3711c90a7deda6210d30e41b945f16bdaa00662b30ee0b7c36abfee82525bfe ofl/kokoro/OFL.txt sha256 513b7871a360a6eccd426bab59743fbff36764588f47381423f04ad6b3d821d9 ofl/alexbrush/OFL.txt sha256 67f64c5509e5151796599e3ad47c3131cbe0c80c4f9430b90236a1249c2eacc9 ofl/roundedmplus1c/OFL.txt sha256 4a7d2f227b91046ef7a54f8f735668d86e45f4fd4089268de292a6e9de108253 ofl/bentham/OFL.txt sha256 3c187c861dc291b9f7f96f655656f9ac2d57b33da425bd5962810be728344f57 ofl/brunoacesc/OFL.txt sha256 869e4c29978c318b33c2e5c7c8f24d2e947f249071bb1471620036a9d1ba87ad ofl/k2d/OFL.txt sha256 6383249ddffbd87f2bbd7878ceba2dee0f1a2193cd7a4f41c00aaceb8e6d8b5b ofl/meriendaone/OFL.txt sha256 ed50ebe2fa922554980909192526fe94966556626d6d440a462c8e7eaed74cdc ofl/sortsmillgoudy/OFL.txt sha256 d64c91b0306b53fabed08762068eea8b918d654fb0721c288f13cefa4aaf088c ofl/butterflykids/OFL.txt sha256 bc1175730d609233043cde47e48f69831f012e85537c5ec1a2cf4836757c1540 ofl/mali/OFL.txt sha256 fe5e822667a4b2e083b8fdd7a37546163f26f6481b58742236abffdcfb3e6c71 ofl/baijamjuree/OFL.txt sha256 b0316f404a7b291e40921c605160181065791a5010a2d2d5691fc7e28cdbdff2 ofl/underdog/OFL.txt sha256 c026db4c1a557cae47e6930876965f9cbc05758eb1f5d6f59b6b61c8f342a57f ofl/alice/OFL.txt sha256 aad1e82802172d4c1d22dd015a5b8b4275e5665a49c1df54ed64716fca7ae194 ofl/corben/OFL.txt sha256 878aec7282ab41d058cedbf90e14512bcb4fbd0658496de8c2dfc592ed1f0cd0 ofl/lilyscriptone/OFL.txt sha256 2a3ca501fc4d5efcad9798531e3e06962b1e20c60e464f6cbd6c17630112c773 ofl/imfellenglishsc/OFL.txt sha256 f62ef357d3a1c3d27edd35a6e1ba350e8a8d13499797964eeadefbf0b3b15d1f ofl/sarpanch/OFL.txt sha256 aff3cea99bf300b4b29f4dc04867cf9b49d83de8c5ecaf991c446d506b56173e ofl/wendyone/OFL.txt sha256 b054962de0af1397d5350fddb4d6bb20f5f2e073b543eeeb694c7c3b27144fc5 ofl/chivo/OFL.txt sha256 19849b33c59d0cffeaad0dbdc38db767e95e03cd36fbbfe6b67a9878aa5758df ofl/fasthand/OFL.txt sha256 a57810cbca0b4715ae8610dd7a268260cebbdd4fd76d304e371517f828150669 ofl/stoke/OFL.txt sha256 47a0b7e315bc56ca0326fca46302d87d48a61e3528d4196e966b62f5bf0243f2 ofl/armata/OFL.txt sha256 eeacf16032901d0ed0456876ec77b8f0fda6b3fecec7d972f8543eb602e6c30f ofl/nanumgothic/OFL.txt sha256 616e75d879831bedfa7725c078e09bb56f8a17f40b194e16691b12251bb42b3e ofl/majormonodisplay/OFL.txt sha256 75c7ccf4f537a7a3ebbedd299c1d2542e13d3b27aaf76a0a2d9fa91a2a8fcd3a ofl/felipa/OFL.txt sha256 ee2c069b30f3e9a5aaf52357117ee3443ee27f17c29a2ec68861db283379905c ofl/dynalight/OFL.txt sha256 fbe0442a6b1ce162c95e241df76cab5ef2daf6a5ac84ae1a7a6749f32c051098 ofl/breeserif/OFL.txt sha256 43d530580461a574f6dfed9e15af6a74e95f7c04d9bfa1174a63ff036e8eee07 ofl/rubikmonoone/OFL.txt sha256 40bd3f35477284c021978816e9d3b8723ff2283fd7065fafaa5bb3004e41b237 ofl/songmyung/OFL.txt sha256 460966d12f306a007930575c3b8bc336fe0c32f880d622af6d3b745a06ca79a4 ofl/benchnine/OFL.txt sha256 f6f60d5d4cf4f4b1fc4e41353c897a2f5a16e6396c0cd8fa8bdfd2f4586a9a68 ofl/alegreyasc/OFL.txt sha256 0c922e2d65050677c26ae8dc501bc9ad3e0059c4b10df2fc9717d7bdacdfeb6d ofl/ramabhadra/OFL.txt sha256 548890e4083028f04e5feba04b6e00554654d840aab81c8664eb66c2216a571b ofl/palanquindark/OFL.txt sha256 e39d6ec64a37ed1523a59940695a61ea5e7882d9bbe0e7eb11653fda4b04fc79 ofl/kottaone/OFL.txt sha256 1bfe7d2aca99042eabf37079152fef8abdda2c36dad454ae89b858a3cb1078c5 ofl/forum/OFL.txt sha256 5505d1a010ee0f2eeecdf624984d2a6170480adab3091170abbcedd85361f1b9 ofl/novacut/OFL.txt sha256 715ba72697e14daa9b29a333545f69bde7c497b9f77d0a2a4c4a5a752d961801 ofl/marcellussc/OFL.txt sha256 0786594992757ea0290ae4a490ab9249728f372adb13959c0c8ae4fec83057ff ofl/quintessential/OFL.txt sha256 ca13e9cd1faaa6afb9e43dcb534a8984cec3218993fb4b436468a79a1657ee19 ofl/keaniaone/OFL.txt sha256 760fb433c515570f6b77ebc60299c2c91d5f03848c659452a9d2458b28935768 ofl/numans/OFL.txt sha256 9134ca6996bd33ea2022e109f13f20e29dee1dcd8b2e8878aad576d2ca334e9f ofl/cormorantunicase/OFL.txt sha256 1d1b7f3480c8d9b65c26d205e41dcbfa85731588d6ea50bccfa78e91f242d629 ofl/loversquarrel/OFL.txt sha256 1d08c63944e639bbfe8a1b81e3c6a63836806c126b3573b9cda0db83fd27ffe9 ofl/prompt/OFL.txt sha256 eb6c70cb6b575ad22df022d454df7a20582915e6e8da19b579c6cbef37a26bb5 ofl/gafata/OFL.txt sha256 93f60741563b4f51f2fcdb207fde72b2b23292a47022c729aecd998b360d8038 ofl/bilboswashcaps/OFL.txt sha256 4579982a484a9745864de2cda666fd7b5017f9182b74dbb4cd53d84c1d1b2231 ofl/gruppo/OFL.txt sha256 cd059851dc2abcd2865ae318e8b949736f958794210acb90316530fd100fc904 ofl/geo/OFL.txt sha256 af9b97696048d509e3d70f8108b7c4381084f95c8fedd97acaa76b0b287668be ofl/molle/OFL.txt sha256 6958d8c61b6b223f81bdc2109941e5d0004996dde61e197d628e0293f4f1bc58 ofl/miama/OFL.txt sha256 7e98b49a12b51240c85b04eb0d9919a6fec7dbd491bef6cbddc22d3f851bd1f1 ofl/marmelad/OFL.txt sha256 b9d592c3bf421197d9b7e353416b8e2ec81584988824b43d38c86d997a08b868 ofl/myanmarsanspro/OFL.txt sha256 e414e07f7a4da16ed47ebec80d52dd79f21d3ca42bc92385a755d8078a038814 ofl/playfairdisplaysc/OFL.txt sha256 0e2ccc5da1dd979f08ba82bca2fb61592506a1e58d3cbfc26d904f0db71bd812 ofl/sairaextracondensed/OFL.txt sha256 bc85bae0b512b799bbfb2b916e4d0a34cfd963d09778cd783e248b479e67760a ofl/comfortaa/OFL.txt sha256 caa697668c3cf3e622753fb202c6c2e29648b94a3499dc7b869a14192e38c553 ofl/sourceserifpro/OFL.txt sha256 81d6c3788a6b641cb9f543389d9d5c0cd3bf94fbb5639be19c102b9274c34291 ofl/mousememoirs/OFL.txt sha256 dd028a807788d5e22e9f8cc18f026cda23369954673658f2ecc7d30bdb364b89 ofl/arya/OFL.txt sha256 53f9c99fa3d47f7d632a42ee7bab4a834a60a744f6026d676c3a223cef2b2ef3 ofl/vollkornsc/OFL.txt sha256 6506b2fa2a14259a8859608a6148a4591d67bbaef4d8e1948b43c4078561b0e5 ofl/tauri/OFL.txt sha256 6cca1abc09d677cf00a55674ce2775e0eeb6dc5c0137b0401816680b9e500f81 ofl/marvel/OFL.txt sha256 e98ce988fba1c138f4e7c0c5120809706ab1b24a3c29638ca83ab2ff082e08db ofl/chango/OFL.txt sha256 0e2ccc5da1dd979f08ba82bca2fb61592506a1e58d3cbfc26d904f0db71bd812 ofl/sairasemicondensed/OFL.txt sha256 42e7b456fee0d0dc86927579b3d2626d42bb0f4cc9778f3a92ca8ada4e46348e ofl/novaslim/OFL.txt sha256 1b8eef90c567309fef17962cc969dd9ed1de69176517238e744018bb983e7c1c ofl/mandali/OFL.txt sha256 9e262d6d7fb789aab6a8ecc53fc9c78387eeb9f935dcd289282d8e751b6bf743 ofl/antonio/OFL.txt sha256 07dbf75115edfc1fd75580aa19c4c730201a099e8f86a9869887dfbed0547266 ofl/offside/OFL.txt sha256 f177d98c67b84250ec87a03ca6ad161e84cab15b435e960039b971797a065f4a ofl/martel/OFL.txt sha256 bb3e8082faf86b1474a6b042125ef0f83669d28110b72f70416a7587b7b9f144 ofl/unlock/OFL.txt sha256 c4955dfe15a5db10326aa58ef767460c42cd12a3acdb3e698eee2704eb373d94 ofl/electrolize/OFL.txt sha256 cf6dd07485d67d20f105afb9981dffdb6b180b59af45a228839cf3fb0277c9fb ofl/arapey/OFL.txt sha256 87e8d9aca71dbe0481ba8611fc90d7e3aebfa3e2546420c403e7078898b0c484 ofl/allura/OFL.txt sha256 55e13d77a4457aa9c60f10c5b97baea3343d3bac30960d49554a033cb9eaff7c ofl/sail/OFL.txt sha256 1c5bc055869d5e9151ec7774082727db720ec4293c65be67f91a4bdcaeb02998 ofl/righteous/OFL.txt sha256 de5ff32211a4340b01477af39ee339d639438955e409f79b666d4b9207f3c92c ofl/dohyeon/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/waitingforthesunrise/OFL.txt sha256 2a3ca501fc4d5efcad9798531e3e06962b1e20c60e464f6cbd6c17630112c773 ofl/imfellenglish/OFL.txt sha256 44a7c6e4c5572392ae122d3b1d8c6ba6fd640a7797e675384585d947f2773e3c ofl/jua/OFL.txt sha256 1ba345a91338581e5f8fccc3e37e447ddea5b99ec9caec1b76c7c39492387d2f ofl/signikanegative/OFL.txt sha256 9134ca6996bd33ea2022e109f13f20e29dee1dcd8b2e8878aad576d2ca334e9f ofl/cormorantgaramond/OFL.txt sha256 9ee6b2ec20a06c599a07412690876eb457bf192c10e886e60d8bdffb80bc21a3 ofl/sahitya/OFL.txt sha256 dcc832bd71ea62cbf97f06327a1b5442905b49ea446801421d71f7d1362db215 ofl/dokdo/OFL.txt sha256 8aa063e3a1299c5e1821f386f5ca8bc157ac561bd12c739ffa81c6f0821450c0 ofl/donegalone/OFL.txt sha256 e588abf45ca2b19c340c4b27349c9b6b6e5e198316fd965128ed9f4422942cbe ofl/raleway/OFL.txt sha256 9860b97028024085855e503e32c1971bfd603374641cd018c136433ebcf5a338 ofl/gravitasone/OFL.txt sha256 ee9d043332991eb6bf2bd56fb04db3c558c1ee2f0cb9aa7b18366c77e34fef30 ofl/jura/OFL.txt sha256 15b1a21c3fa37a475ba6b0c0cfe289c7952548caf6e432068ddaf98d139ce419 ofl/belleza/OFL.txt sha256 c5a77946a56488790364d060628385d51226da62a18f30d2be0181d82ee62b00 ofl/suranna/OFL.txt sha256 36e2f1debc9778bac79fac1a0cb5a5ef51c102f00b58ef7d8a05324144b68166 ofl/megrim/OFL.txt sha256 0fbae33ac3aa455c8c0d598347c87f1abfac0d215483f40f5a0e8dd08076df1b ofl/librebarcode39extendedtext/OFL.txt sha256 f62ef357d3a1c3d27edd35a6e1ba350e8a8d13499797964eeadefbf0b3b15d1f ofl/teko/OFL.txt sha256 d324289a26909a519fb16c3d468a56ab909ad6d9070cac5742e5d59ad9bd9815 ofl/gildadisplay/OFL.txt sha256 c0bcb72e68dd416db0bb9fcec7a7fa62321b0147cde00d8c8f82748e33aefd34 ofl/novasquare/OFL.txt sha256 794d72ffdd25e8f7ca8e1d68db088c30ddbf2fdb369b6cc8217d4fa5fa6dc62f ofl/adobeblank/OFL.txt sha256 806cb93632b8091cd36554642a96b2752bab50015da6a2b456d786c1f9aef5a5 ofl/carme/OFL.txt sha256 0677891e6a143f297350d260ad766ad33bfc18ed5fa4f213acf648d6b597ec1a ofl/alegreyasans/OFL.txt sha256 08b6f5cceaefcf2881eb009adeb78edd0fabf9c8f0eaf8b88f07a690222227e6 ofl/varelaround/OFL.txt sha256 3f0f27931c92453994176af3b1e7954f9aac39fe145374d6d08c47c822e82e59 ofl/princesssofia/OFL.txt sha256 2ce1c4fcf4ab9c8474d0824434497d4afa4425db4de5629103698b170ac4ee74 ofl/bungeeoutline/OFL.txt sha256 455397ca15d39e9178bbbf4b485a29187751d60f7ceb7829980a521d5ab6848d ofl/sofadione/OFL.txt sha256 b7574cd4c76770e5e3915d16bd93f09663bd77cb041a4ec09d824c52b540529a ofl/germaniaone/OFL.txt sha256 39de3de5f1873f89bca4af37823ab22e28e88d0d8f7fe2f07e82e9e6e9bf7b70 ofl/eastseadokdo/OFL.txt sha256 520a0c239d39b379b61c4de5f8e3b02db20b0dfc137481843eac01f02c41f4a2 ofl/aguafinascript/OFL.txt sha256 ffaf7bc750bdaa0b95b09eb80e419748bfaf46268c6612860f0a5e19e17abb12 ofl/orbitron/OFL.txt sha256 c6b9c7322fe0203d4d8a0f98541136d8d76da76b92c79d206b09991b98338cc8 ofl/gemunulibre/OFL.txt sha256 2f871c2e81de6d0c72c981615002c30bc9f1637003d6d3d4c3f0149886b70569 ofl/mervalescript/OFL.txt sha256 5fb0694694dc307d1eb0121689395e634b6329ff545acc53f55ad66a716b3cf1 ofl/baloobhaijaan/OFL.txt sha256 842b4f4605b32518a1269c4d030d719ea2c4c317d699fc4441d0219658e18893 ofl/seoulnamsanvertical/OFL.txt sha256 00a6fe8dfdc48d6206bcc4f10a765515a73433dfba7255eff966963beb26facb ofl/dhyana/OFL.txt sha256 cd2dea62cd4b0c5fb335cf07ff04fd5c4bacb49b8d6c2bbbef9766c663d79b1c ofl/patuaone/OFL.txt sha256 c0a8947de199b422d30c16137e4decd5362e3a1d504422880d69c02bd6046dac ofl/cagliostro/OFL.txt sha256 c267a00c9476c78a2336d7b372b536885b8b24173a29ed53496f67a742c14961 ofl/alef/OFL.txt sha256 2cc926050c4c6ccd9a0288b7792e2fcf93e5629ee6269e35986f092275e5a1b9 ofl/sarina/OFL.txt sha256 f1bce31b817dee01c1e4ef8bc45d8ecb95f01f4abbf0a985007cb3cd0fd8123d ofl/zcoolqingkehuangyou/OFL.txt sha256 9788e3b3e67f22ab5846a0bb867a230e7df2468c3cd20f730a5d9c34e673d090 ofl/rubikone/OFL.txt sha256 f3bc8767749fc133d9b35e84ca024b82f1ac4d1b38deca0adcf8300892303022 ofl/faustinavfbeta/OFL.txt sha256 ee81f11dd1970e9749afd2a572256f8eefce65532872762a4d7a3d5daa0812c8 ofl/shojumaru/OFL.txt sha256 4f4bc3806a1e55789c6ef75ca5fc628297b05292f74966474dc0d40324abc609 ofl/abel/OFL.txt sha256 064539f87826887d2062b7823b2b97b7625d68b642f6c945c99c0b8dc8084195 ofl/rationale/OFL.txt sha256 a345b13576140008a697ac66ca8c76cd63b1dd076712bc30a0f5e97dcc53cc83 ofl/markoone/OFL.txt sha256 203693528d6d2e8dc5e639c6ea42b3e825b59dd6447294e37b306fe734650091 ofl/arizonia/OFL.txt sha256 9ca8b9e5db7184105da255bb110023cf1cce6caa56186341bb7b09ba97b20ba5 ofl/fanwoodtext/OFL.txt sha256 3997621a219c7758e31dbafdd3cbd2bcb0b6144a41d1ca068d04dbcc4bafcde6 ofl/milonga/OFL.txt sha256 2ce1c4fcf4ab9c8474d0824434497d4afa4425db4de5629103698b170ac4ee74 ofl/bungeeshade/OFL.txt sha256 162a3b5c72cba845280a6f887c11d02984540b924510138c8b1eb473bcdafb6a ofl/concertone/OFL.txt sha256 21b54eb0d7513524798a00dfbaf99a02c003a0012a728cc5f0e02d24c50482fb ofl/caveatbrush/OFL.txt sha256 186d750eb496a4c17a76385f82be6aea2ac1cf2de074a811d63786cf374ea73f ofl/barlow/OFL.txt sha256 9551ade371e7bcb1f6d9959273bbf1fed3bdf398efb5c57cc1fd85d6a13e9e5e ofl/londrinaoutline/OFL.txt sha256 f15a9a3a9a665c2d17655b8fedad86d9a8f30081d46bb91236beb1bc7294a589 ofl/akronim/OFL.txt sha256 76a55594c9a18b7d94b8119de838237eb834bae4e8c646d6d363aee587b7b427 ofl/slabo13px/OFL.txt sha256 0e2ccc5da1dd979f08ba82bca2fb61592506a1e58d3cbfc26d904f0db71bd812 ofl/sairacondensed/OFL.txt sha256 96b7bc175186cd0153a9682a1c9bb1da7103ab13a83abef8026bc64582ca616f ofl/oregano/OFL.txt sha256 6fc386ac48a529b85c21f90a6c8d2111c6271b3063f9ddd78e92645db5259510 ofl/tulpenone/OFL.txt sha256 13e862ac3f67130f58bd4bebb61c588d147b5a555b1ac6959570799c4f648cd0 ofl/capriola/OFL.txt sha256 d24ff874133ecd133e55d7c4070d2edab14d3933477c2bccb3a0d8d1cc9c33bf ofl/muktamalar/OFL.txt sha256 85814924eca98e1fa530901cc5167d0012aaf31122f9570d7e9755443dd9335b ofl/siemreap/OFL.txt sha256 f76c1013cffb3e0de0e7dad19ee5b4b7849c7ab10b67218515e39cfd87e554a7 ofl/julee/OFL.txt sha256 c264f64bb2b91ca0dfdeab75d71719120271fa6a30035396416af235ef481c1e ofl/merienda/OFL.txt sha256 d102f22055cfa31a9659228483de3c726010f0b3b416b78e3cbefcb54816e812 ofl/galdeano/OFL.txt sha256 2db02cb5d05d5f8a003ffefce36a32a16520ad4cab9ed90635ff953b583e4e82 ofl/sigmarone/OFL.txt sha256 cdcc959c42ab255b4cea4bd82f2db5c24a2da7ecabe615d02d5a5dba3716e446 ofl/racingsansone/OFL.txt sha256 c88333734ad7cd30540ec6614d12aa829a0395715de30e336d22ddfa3005db42 ofl/catamaran/OFL.txt sha256 26daffa24723bb188643085cfc5423f9d78d22a395df4a7928380e430545a201 ofl/bubblegumsans/OFL.txt sha256 de2246895f0ac21fe05b095d586d36cbc9f987ebcaed1e050c61e69667caf1c6 ofl/hannari/OFL.txt sha256 b54d54664cddcbf05f5b4ea3aec7e89317eb917cf465920969e7b22361e0f4a5 ofl/seymourone/OFL.txt sha256 46239ba6485d28553fd944da4ad32a00d9c403aa1c3e111676b0b96fe458d1d4 ofl/averiaseriflibre/OFL.txt sha256 91c25c350d3cac39da2736d74f7ba37ef648f5237a4e330a240615bc8d8c4360 ofl/ibmplexsanscondensed/OFL.txt sha256 5802c9e3509199c7aa9a13ea410ae27febbc0cdea184bf7d227170fac703bba8 ofl/passeroone/OFL.txt sha256 2400b30a72d2b1555255b81625576dfb552584a19a9c85ad8d43ff77bceab13b ofl/plaster/OFL.txt sha256 4bed7eaae70cab1bdf2bcf9b1cb562fcd9cc26d1c3533c4ade0ec70516dfb3a4 ofl/trykker/OFL.txt sha256 45b1f44d2cb859ea4b7be2f322c57b8ff7be55075c336744e62b5550cd0a97eb ofl/medievalsharp/OFL.txt sha256 19c6ecf65a6b0687dd324b093ced5f1020a1fcabfc8ddaaeca6906cd05153e23 ofl/overpass/OFL.txt sha256 ff1f38ac4e694a4ad5bd3d7a5146cd8bd73fd57aae794ced76a24b0d68e41206 ofl/pinyonscript/OFL.txt sha256 6aa923334ec515d26b1a61bb978a0bb5bd8884de7529add1625beef2f4a53f74 ofl/nicomoji/OFL.txt sha256 cc8c0c3e81cf543e190f128b83ba7c30959f15865c14dd972fca4917faeceec1 ofl/encodesansexpanded/OFL.txt sha256 38fab5a643fa935a4e11edae2d7b2bbe9866b4f4828c2be2f41451b3f27cb67a ofl/paprika/OFL.txt sha256 a5fc033225d145b43fd7391482ae7689825414ce29a01614d651a3012b57c81e ofl/monsieurladoulaise/OFL.txt sha256 ecc91fac753ad9ba5bb7e7819a5c59ee1e3cf89032133c6b4b0318d63c35933b ofl/alike/OFL.txt sha256 6939af7114f0a33c7e6142d4c1320d1bbde11aebe6d8f3c48fc5fb3e0f676a7b ofl/jejugothic/OFL.txt sha256 2a3ca501fc4d5efcad9798531e3e06962b1e20c60e464f6cbd6c17630112c773 ofl/imfelldoublepica/OFL.txt sha256 9cd20277e2c89d47e3997435e3a16539d20173d850fbb42474990f71642e473e ofl/mate/OFL.txt sha256 351740da2d452b48193483f22f64918a6dfd64a7abe225c6187ad3f36e0d9cd8 ofl/postnobillscolombo/OFL.txt sha256 aa8a8196a3e22c3bd985e33cd3245ae9a38accba5e79fc0e3b292612a8d6b337 ofl/secularone/OFL.txt sha256 cc8c0c3e81cf543e190f128b83ba7c30959f15865c14dd972fca4917faeceec1 ofl/encodesans/OFL.txt sha256 136a256d6050ed32bbf96736d70b9099c6359e83dabeb6847cdf6b8ef84319cc ofl/kantumruy/OFL.txt sha256 72060253bd481a8dc18664bb9117072dc07c0f0270a40617c230654821774850 ofl/pattaya/OFL.txt sha256 56d9c3529facf93873a2a1626dd038054d244b3af30a1e3ffe0e78bbda1c7622 ofl/preahvihear/OFL.txt sha256 1a2debd5ad8e656b26bb3b29213caa8f7e557a2f31454b11ebb6c3e3b59aa5d4 ofl/cutefont/OFL.txt sha256 f62ef357d3a1c3d27edd35a6e1ba350e8a8d13499797964eeadefbf0b3b15d1f ofl/kalam/OFL.txt sha256 d941c5b788d47aa469ee54e30f4c12d6a43c45a295f10c568bdf9772f2893b7b ofl/oranienbaum/OFL.txt sha256 5e0da210fb04058a8c0087985d2d456b931c2579811a49655721d3cf0c36b6d6 ofl/notosans/OFL.txt sha256 5ae0cfa62a70251d9a2c3c5430ed3bafa480005f23e4b9525488f2318e5c10ca ofl/mrbedford/OFL.txt sha256 0acef93ca37cf19eeb83a1c6a29b78b08377a211c8d80cd27626e210176828da ofl/kavivanar/OFL.txt sha256 c0562e066174197902a4a10606673d189f067970ef89c6013943b9cf182aadbc ofl/titilliumweb/OFL.txt sha256 f8fbefb5b1004615e6d1e84b1c75e68520d91196f600cb1b07620dd2748eff64 ofl/cantataone/OFL.txt sha256 2e2cb5a98da665f2ab82a9fd01fb18c2337f845761b0c163f690ed65f3b94677 ofl/sacramento/OFL.txt sha256 251f65282ff48a7e8ef3fb661fc99254d9b3b0c368427c98b1edbfe4ca66e888 ofl/katibeh/OFL.txt sha256 31bc966c36352bfd33717382786d0458c38ecf540628ab134e0ce35fde801d28 ofl/poppins/OFL.txt sha256 f016385cb4b360e7698d22a48c6b58c0634b1ed5c9c17df78515d43887511df6 ofl/yaldevicolombo/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/swankyandmoomoo/OFL.txt sha256 b712dacdda5da76c0213f8478886f893b855665c1153ae438bc3e55a7dc525ef ofl/kurale/OFL.txt sha256 74584d937293a9cacdcd2eb05851b71aa1527901c18b87961d2f877c77a1b486 ofl/chonburi/OFL.txt sha256 8f187da1eb4f23e3fe7ba68b1cb2e92881a415dd34c46489698454517e273c4f ofl/krub/OFL.txt sha256 3336bf5d4e7eedba48ecb831f37bf676e901c39f2e6a422cceadd9d2ffa55be8 ofl/kaushanscript/OFL.txt sha256 bb655534b6c7bf3e547c1368a68a5b1032d0e96fd08b5cc75f3d7a78528784ef ofl/novaoval/OFL.txt sha256 04b895d77ccec5034191e953e8e5884637269be15fe0675fc25039014eb46349 ofl/monda/OFL.txt sha256 d724dea493d89a7a9681186e2fb462b7cd551674960ee4142ae6b325261b5115 ofl/hanna/OFL.txt sha256 64ecb0c6bf5cd80c3da76035c00671272966afbd32ffbdbcad95a8b56501fb08 ofl/decovaralpha/OFL.txt sha256 0cf28cdcf1cdfd35054352816b2d8c81bd6d6f73632198b61507f26dd4dcbeea ofl/sansita/OFL.txt sha256 d69bcd35f4a121b312a64f7e8eb15bed61c9056e9e9cdaa8d513366142c8e005 ofl/rosario/OFL.txt sha256 b4cff421cb89d1e32036e818f291f8ab0d3294ada70b5883d5bcc6470b869702 ofl/eczar/OFL.txt sha256 ecb52bab55d8d6185712fe8fd2fd98300f5c8c07fad0d0a97b1e579462b0dd3f ofl/bayon/OFL.txt sha256 ed95c33f80ccca002e3a360b683c43368f9c5eb024e5b992abb51af3c10b59bc ofl/gothica1/OFL.txt sha256 66b5c49d384cba754806a891ebd52f2ca08dd05c0eb3c56170192da466a00a20 ofl/londrinasolid/OFL.txt sha256 284a5a26e6db9a04259a5690ad57d52c56a4c515ca2ece1943d950f99e709dcd ofl/belgrano/OFL.txt sha256 6cbe0f55c154b5dee71ca4f2418d69e4e916448ef2ab52dc4541197b292efa24 ofl/sonsieone/OFL.txt sha256 255d5debbb80eb2ea762644311f266a279e8778f00156655a516e2b7781a63e1 ofl/lilitaone/OFL.txt sha256 490b8f3acbce2331adc9b9d3e75ee6fe07946fb29af429a300c7d066b1250b2d ofl/crimsontext/OFL.txt sha256 eeacf16032901d0ed0456876ec77b8f0fda6b3fecec7d972f8543eb602e6c30f ofl/nanumbrushscript/OFL.txt sha256 f2c0dfa02d6f5c444b4babd7bc0b43be77ea85706e8524342516bc41e43c2f01 ofl/fahkwang/OFL.txt sha256 4398885e6b303830d81eea03444aae6fb08a44f41b6acd193c88a2f8cd17606e ofl/srisakdi/OFL.txt sha256 c1f8e0feb0babaacf774b971bcfd791e44125b9d61ff074e4c20924e9661556e ofl/antic/OFL.txt sha256 6a73f9541c2de74158c0e7cf6b0a58ef774f5a780bf191f2d7ec9cc53efe2bf2 ofl/notosanstamil/OFL.txt sha256 0b1bada9befa95a40d55830fe83fc7f8064e245fea33bdf0f96f57848f3866fa ofl/codacaption/OFL.txt sha256 b41b99f35b507564e54f6b2f5162ad1c21f94a16837c632da6632b376a341f42 ofl/nosifer/OFL.txt sha256 e8d0118fa9d640543e7f6848d1d93f47313c7f56b64f73f37291d859cd5932bf ofl/souliyo/OFL.txt sha256 bff4e5087ece354afccd073621197bbb7dd9349943b5ee6aa12b1adf0b133081 ofl/happymonkey/OFL.txt sha256 1f581506286e960436548dba0701aab278f7e67f2adc6bdae2958923867d1e64 ofl/hanaleifill/OFL.txt sha256 03082243ebc53e2090bc59987f693982ccee83b30516457b11f6a2349b78f5f8 ofl/rokkitt/OFL.txt sha256 1152ca18eaa6159634f1eb209c60df360c1c09a52991e392f8033702036634d4 ofl/assistant/OFL.txt sha256 012b1870f81b0d97ca756edd9eea315c7fc22657ac2f1cbdfcb6772fed3e20f3 ofl/bhavuka/OFL.txt sha256 ce1108854c91696a8549bb21459f1dc74e8a1ec11664d712c3868c40042f1a8a ofl/rufina/OFL.txt sha256 bac36a7fcafc5702d9d928bb81c7de9f8739eaa820e546c3d2cc52730b652af4 ofl/devonshire/OFL.txt sha256 ac987f9cbc5b18d3239d88adb57a4e134049811d24ddda2f6383faa589fd2727 ofl/holtwoodonesc/OFL.txt sha256 f3ee3eb20a9d565bee2bbc0d616de382a113327d7506565b2f3d3bee5f489375 ofl/bowlbyonesc/OFL.txt sha256 965bd2c907f7bb6f36da4f85e83f29aea8b2f720783deebd7ed7b40678e67672 ofl/mysteryquest/OFL.txt sha256 cc8c0c3e81cf543e190f128b83ba7c30959f15865c14dd972fca4917faeceec1 ofl/encodesanssemiexpanded/OFL.txt sha256 19e186a088a50835b38b59409a76b8df2d0252ce114a99e79e306231bbe253b7 ofl/dellarespira/OFL.txt sha256 aa36087ecd7e9085e5a1439b0a6d0ee35966e8cd2ccaa649bebe62cae5815e82 ofl/lifesavers/OFL.txt sha256 2a3ca501fc4d5efcad9798531e3e06962b1e20c60e464f6cbd6c17630112c773 ofl/imfelldwpicasc/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/loveyalikeasister/OFL.txt sha256 a9ef1db03f660130790beeb3b5d91b68536a44a98ec2db3097d02a1c5f91c599 ofl/buda/OFL.txt sha256 de318dcb99e332a746edb9f83180ee206fc3bce74ff96ad7d1cb219967ec74af ofl/pollerone/OFL.txt sha256 315a576cbc7ab61c9e347b5725893bc8498fdcb8fc10831793c6864bc2cefba8 ofl/gudea/OFL.txt sha256 41f82bb4d24b304f30f7136bc47abdd083782e4265c984160f5649d1e78ea49c ofl/montserrat/OFL.txt sha256 5866fd437bf701cd93f2c41ca2a8b33786975c947bee27882d256b408c9b424a ofl/podkovavfbeta/OFL.txt sha256 377f4f9c19e935228552478eb68cc2ed82910988a60ba60e2ac73b09f32d02d1 ofl/patrickhandsc/OFL.txt sha256 ec1d7de447a90e4b6d8f2b4f95c7f89a70e315fdb41969bc716059e4f2461fa4 ofl/clickerscript/OFL.txt sha256 7039124ec9c84f9d637637da9f80158f0d3681c82d4e6a811053467f7c33d587 ofl/prostoone/OFL.txt sha256 16f8621a8dda01f044b8a58489334dbaadfad44ef2fa1d5ce0864cc2f309df01 ofl/inknutantiqua/OFL.txt sha256 ae30055f1e31d12f6235802c25a8872bb7053fca8ed4a604c530f4b2ee83e572 ofl/pontanosans/OFL.txt sha256 f1ef4c3ef43322403f5c30e4fb46496969cb5c34a2a6e7247b507254b69caa6a ofl/novaround/OFL.txt sha256 cf5c4103b0ecf3c38e7c26768b5caf05e1b3e16d4d87b32d859b3c19ce7c216c ofl/petitformalscript/OFL.txt sha256 ed80dd9539708a531313f98fb081aeeaa395ab5726931a433845d667b019c855 ofl/abyssinicasil/OFL.txt sha256 1404cc9279d4ad713a372a5e1e1d20d7b9b000d2397c8529aeb3df5402446600 ofl/cutive/OFL.txt sha256 19c6ecf65a6b0687dd324b093ced5f1020a1fcabfc8ddaaeca6906cd05153e23 ofl/overpassmono/OFL.txt sha256 0878e7d6e842bc3c45154059a1c2812de0d31dca343fe6bc16abc9afdee3e3de ofl/koho/OFL.txt sha256 636d62f04d7bda9fcf9354f258f6244e7e18288cae036b95122e204f1acbec80 ofl/neuton/OFL.txt sha256 5fb0694694dc307d1eb0121689395e634b6329ff545acc53f55ad66a716b3cf1 ofl/baloo/OFL.txt sha256 5866fd437bf701cd93f2c41ca2a8b33786975c947bee27882d256b408c9b424a ofl/podkova/OFL.txt sha256 2ce1c4fcf4ab9c8474d0824434497d4afa4425db4de5629103698b170ac4ee74 ofl/bungee/OFL.txt sha256 dc35123e99a857674b3e8807e9d7df82220d298423d9fc50ce084fbcdecf602d ofl/jotione/OFL.txt sha256 76a55594c9a18b7d94b8119de838237eb834bae4e8c646d6d363aee587b7b427 ofl/slabo27px/OFL.txt sha256 ed50ebe2fa922554980909192526fe94966556626d6d440a462c8e7eaed74cdc ofl/oflsortsmillgoudytt/OFL.txt sha256 d7b108fc1f23fb016a47bb40c63d6f6e04cc35a1edfb991638d7f03621bf7f33 ofl/terminaldosislight/OFL.txt sha256 71e5222c549d85a1403b6e709b4328b81d7b51ba021b8bd20df89550da80c087 ofl/yatraone/OFL.txt sha256 f139d6f43d2a63a8fb3ded48b8ec747d9d59a7fbb13d077d9b96ac88580bc1ad ofl/dekko/OFL.txt sha256 84b11cc0aac8fdb93af94872bc4b8f015caabf4919db63ab7f916ccff8e52f56 ofl/josefinsansstdlight/OFL.txt sha256 8fbe530adcbe30c658393c3f2b5a4785d6765afcefdfe47f594730131f3a0abd ofl/oleoscriptswashcaps/OFL.txt sha256 64dc6a7e2a77aa340c49c3e0829703f540f8d64afa506f44eaa6741580716d0f ofl/gabriela/OFL.txt sha256 17d7a7f5d9f0139535ecec516988c4c73a2ec0f225987288f3fd6ee2622d4450 ofl/federant/OFL.txt sha256 c0a7efe98e77cbfcf1a5ca43e874e25cf53d9185c56295bc3b5c407f95dae638 ofl/nats/OFL.txt sha256 2ee5e8e47cd7d08f60bb9555f72b25912c9e81b13f5bc9a0551ddf943da6ca98 ofl/ekmukta/OFL.txt sha256 e5ccbfc32e4d7fae98b467a9af310ac8d2efd5d90e684426cd24f3eb36090a2c ofl/acme/OFL.txt sha256 5fb0694694dc307d1eb0121689395e634b6329ff545acc53f55ad66a716b3cf1 ofl/modak/OFL.txt sha256 75a77451968e55a1ab404bd953bd8778983e21116d507b890fbcf838e58c8e8b ofl/pavanam/OFL.txt sha256 36931b77dd81fa96fffad91b6acb54931e600845eb81f91ecf1b4459012c621a ofl/vidaloka/OFL.txt sha256 5fb0694694dc307d1eb0121689395e634b6329ff545acc53f55ad66a716b3cf1 ofl/baloobhai/OFL.txt sha256 1c45059cea5c6798c8591b0a17961a30328747d44214ff9b8f9c62a683bd6598 ofl/ruda/OFL.txt sha256 0e441ae9f18ad0c294cc5b6ae3974c2db1614cab220598578b1b58c4cc334485 ofl/thegirlnextdoor/OFL.txt sha256 4dee45deee99672fbe342b2f4b7aa75b0cd12de18a68f9732c77f096bab47e0e ofl/molengo/OFL.txt sha256 5a5cf278190adf8be3e9905c2b21460241cb376c600bdfd6eb7aceb66036c4bf ofl/telex/OFL.txt sha256 bb49cbf811dafcb11e0de081efcdc8385e45ccc85a5bfc3231ec4861d444dc42 ofl/ruthie/OFL.txt sha256 b5c3d12a3085b96011fee65555234bb9d31fa7444cf6f8d5ae6b1f5771394399 ofl/lakkireddy/OFL.txt sha256 23b896f4937eac954a383340c92dfcac1c6e05ec21cc08ec6de47d30ad8496a3 ofl/charmonman/OFL.txt sha256 39602407e30d466bf169f46d690aaae4f5f039258e5642f91a80bb132ce6e14a ofl/bubblerone/OFL.txt sha256 e31de7000a2a13b2e54ad01e788fd29e979fe05ea1fded44d6e71cc06e33bb2b ofl/ralewaydots/OFL.txt sha256 8218df19bcd9786311bf1126815e8d591027aaf7611ef031af5a31c3fd66e928 ofl/arefruqaa/OFL.txt sha256 e37fcc467040ecd81bf4cf59c99ef56b20f57918995e82b3de1d5b4e931bc2e6 ofl/portlligatslab/OFL.txt sha256 60fea3a0da19167a3efb9c3792a3a15dc9235405d01bbec1233fdf3e79c74296 ofl/freckleface/OFL.txt sha256 da15da6b1496d4de18f97e2ad1b722ef8a1c121149c2c93b2cf7eac6ac27b35c ofl/mplus1p/OFL.txt sha256 d51f3341fd7b3dfa1114d3ef0bdabbe57f60eef86a1458019e0077d676fa1fcb ofl/lancelot/OFL.txt sha256 9134ca6996bd33ea2022e109f13f20e29dee1dcd8b2e8878aad576d2ca334e9f ofl/cormorantinfant/OFL.txt sha256 cc8c0c3e81cf543e190f128b83ba7c30959f15865c14dd972fca4917faeceec1 ofl/encodesanssemicondensed/OFL.txt sha256 5946eec3a7d3bda02825930156e4716198e7753641dd3303a3e8c386c8011909 ofl/eater/OFL.txt sha256 b43e2530c7af69fe1800f180d210b6d2745915ed4e0e404495038c861bb6dbf7 ofl/hammersmithone/OFL.txt sha256 5a8751bef5a4fc867ae015099267905034345260f14060fa276aac4051ddd8b4 ofl/varela/OFL.txt sha256 f6fc9fbae062e4efc1b0306e27715d43cd64a48b8ffba81c22034b8efee4fce2 ofl/cabinsketch/OFL.txt sha256 2f0015108d68627bd788d313f529c21ff4da2c2c42a5e1f3883acc83480f9002 ufl/ubuntucondensed/LICENCE.txt sha256 2f0015108d68627bd788d313f529c21ff4da2c2c42a5e1f3883acc83480f9002 ufl/ubuntumono/LICENCE.txt sha256 2f0015108d68627bd788d313f529c21ff4da2c2c42a5e1f3883acc83480f9002 ufl/ubuntu/LICENCE.txt ================================================ FILE: package/googlefontdirectory/googlefontdirectory.mk ================================================ ################################################################################ # # googlefontdirectory # ################################################################################ GOOGLEFONTDIRECTORY_VERSION = 94dff3eaa9301b6640cccc63c56d6ff33d82882c GOOGLEFONTDIRECTORY_SITE = $(call github,google,fonts,$(GOOGLEFONTDIRECTORY_VERSION)) GOOGLEFONTDIRECTORY_FONTS = \ $(call qstrip,$(BR2_PACKAGE_GOOGLEFONTDIRECTORY_FONTS)) ifneq ($(filter apache/%,$(GOOGLEFONTDIRECTORY_FONTS)),) GOOGLEFONTDIRECTORY_ALL_LICENSES += Apache-2.0 GOOGLEFONTDIRECTORY_LICENSE_FILES += $(addsuffix /LICENSE.txt,$(filter apache/%,$(GOOGLEFONTDIRECTORY_FONTS))) endif ifneq ($(filter ofl/%,$(GOOGLEFONTDIRECTORY_FONTS)),) GOOGLEFONTDIRECTORY_ALL_LICENSES += OFL-1.1 GOOGLEFONTDIRECTORY_LICENSE_FILES += $(addsuffix /OFL.txt,$(filter ofl/%,$(GOOGLEFONTDIRECTORY_FONTS))) endif ifneq ($(filter ufl/%,$(GOOGLEFONTDIRECTORY_FONTS)),) GOOGLEFONTDIRECTORY_ALL_LICENSES += UFL-1.1 GOOGLEFONTDIRECTORY_LICENSE_FILES += $(addsuffix /LICENCE.txt,$(filter ufl/%,$(GOOGLEFONTDIRECTORY_FONTS))) endif GOOGLEFONTDIRECTORY_LICENSE = $(subst $(space),$(comma)$(space),$(GOOGLEFONTDIRECTORY_ALL_LICENSES)) define GOOGLEFONTDIRECTORY_INSTALL_TARGET_CMDS $(foreach d,$(GOOGLEFONTDIRECTORY_FONTS), \ mkdir -p $(TARGET_DIR)/usr/share/fonts/$(notdir $(d)) $(INSTALL) -m 0644 -t $(TARGET_DIR)/usr/share/fonts/$(notdir $(d)) $(@D)/$(d)/*.ttf ) endef $(eval $(generic-package)) ================================================ FILE: package/gperf/Config.in ================================================ config BR2_PACKAGE_GPERF bool "gperf" depends on BR2_INSTALL_LIBSTDCPP help A 'perfect hash function' generator http://www.gnu.org/software/gperf/ comment "gperf needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/gperf/gperf.hash ================================================ # Locally calculated after checking pgp signature # https://ftp.gnu.org/pub/gnu/gperf/gperf-3.1.tar.gz.sig # with key 93C08C88471097CD sha256 588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2 gperf-3.1.tar.gz # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/gperf/gperf.mk ================================================ ################################################################################ # # gperf # ################################################################################ GPERF_VERSION = 3.1 GPERF_SITE = $(BR2_GNU_MIRROR)/gperf GPERF_LICENSE = GPL-3.0+ GPERF_LICENSE_FILES = COPYING GPERF_CPE_ID_VENDOR = gperftools_project GPERF_CPE_ID_PRODUCT = gperftools $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/gpm/0001-Added-musl-support-to-libgpm-and-the-daemon.patch ================================================ From eb0e14f8a5c414603b2e882df54b9fec138104ec Mon Sep 17 00:00:00 2001 From: Dima Krasner Date: Wed, 12 Nov 2014 23:06:46 +0200 Subject: [PATCH] Added musl support to libgpm and the daemon. [Upstream patch backported from the github repository, https://github.com/telmich/gpm/commit/d88fb1de5803c366ab62f7de9ee5d83207fb2afe.] Signed-off-by: Thomas Petazzoni --- src/daemon/open_console.c | 1 + src/prog/display-buttons.c | 1 + src/prog/display-coords.c | 1 + src/prog/gpm-root.y | 4 ++-- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/daemon/open_console.c b/src/daemon/open_console.c index 98297c9..4d6c0af 100644 --- a/src/daemon/open_console.c +++ b/src/daemon/open_console.c @@ -21,6 +21,7 @@ #include /* open and co. */ #include /* stat() */ +#include /* major() */ #include /* ioctl */ /* Linux specific (to be outsourced in gpm2 */ diff --git a/src/prog/display-buttons.c b/src/prog/display-buttons.c index de8e5b2..38d2f11 100644 --- a/src/prog/display-buttons.c +++ b/src/prog/display-buttons.c @@ -36,6 +36,7 @@ #include /* printf() */ #include /* time() */ #include /* errno */ +#include /* fd_set and FD_* */ #include /* gpm information */ /* display resulting data */ diff --git a/src/prog/display-coords.c b/src/prog/display-coords.c index ed15c8a..411283a 100644 --- a/src/prog/display-coords.c +++ b/src/prog/display-coords.c @@ -37,6 +37,7 @@ #include /* printf() */ #include /* time() */ #include /* errno */ +#include /* fd_set and FD_* */ #include /* gpm information */ /* display resulting data */ diff --git a/src/prog/gpm-root.y b/src/prog/gpm-root.y index 069d801..188ae35 100644 --- a/src/prog/gpm-root.y +++ b/src/prog/gpm-root.y @@ -1199,9 +1199,9 @@ int main(int argc, char **argv) #if defined(__GLIBC__) __sigemptyset(&childaction.sa_mask); #else /* __GLIBC__ */ - childaction.sa_mask=0; + sigemptyset(&childaction.sa_mask); #endif /* __GLIBC__ */ - childaction.sa_flags=SA_INTERRUPT; /* need to break the select() call */ + childaction.sa_flags=0; sigaction(SIGCHLD,&childaction,NULL); /*....................................... Connect and get your buffer */ -- 2.1.0 ================================================ FILE: package/gpm/0002-Install-unversioned-solibrary.patch ================================================ From 06b00d53d8bd513ad5d262dc94a016c6fbf2d3aa Mon Sep 17 00:00:00 2001 From: Kamil Rytarowski Date: Sat, 4 May 2013 01:30:17 +0200 Subject: [PATCH] Install unversioned solibrary Unversioned solibraries are shipped with -devel packages in Linux distros. Generate and install it for the consistency. [Upstream patch backported from the github repository, https://github.com/telmich/gpm/commit/06b00d53d8bd513ad5d262dc94a016c6fbf2d3aa] Signed-off-by: Bernd Kuhls --- src/Makefile.in | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Makefile.in b/src/Makefile.in index 6b60ad3..7e9e2ef 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -79,7 +79,7 @@ prog/%: prog/%.o # | $(SED) '\''s/\($*\)\.o\([ :]*\)/\1.o \1.lo\2/g'\'' > $(DEPDIR)/$@' # Do it all! -all: gpm lib/libgpm.so.@abi_lev@ @LIBGPM_A@ $(PROG) +all: gpm lib/libgpm.so.@abi_lev@ lib/libgpm.so @LIBGPM_A@ $(PROG) gpm: $(GOBJ) $(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $(GOBJ) @LIBS@ $(LIBS) -lm @@ -168,9 +168,8 @@ lib/libgpm.so.@abi_full@: $(PICS) @LDFLAGS@ $(LDFLAGS) -o lib/libgpm.so.@abi_full@ $^ @LIBS@ @SHARED_LIBS@ $(LIBS) lib/libgpm.so.@abi_lev@: lib/libgpm.so.@abi_full@ $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so.@abi_lev@ -# unneeded, isn't it? -#lib/libgpm.so: lib/libgpm.so.@abi_full@ -# $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so +lib/libgpm.so: lib/libgpm.so.@abi_full@ + $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so include $(DEPFILE) ================================================ FILE: package/gpm/0003-src-Makefile.in-Really-install-unversioned-solibrary.patch ================================================ From 445be05fba32c512fd87a0c98b4e9936629ef95e Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sat, 20 Feb 2016 17:59:52 +0100 Subject: [PATCH 1/1] src/Makefile.in: Really install unversioned solibrary This commit is a follow-up to https://github.com/telmich/gpm/commit/06b00d53d8bd513ad5d262dc94a016c6fbf2d3aa which created libgpm.so but failed to include it in the install target. Patch sent upstream: https://github.com/telmich/gpm/pull/11 Signed-off-by: Bernd Kuhls --- src/Makefile.in | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Makefile.in b/src/Makefile.in index 7e9e2ef..bca226f 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -115,6 +115,7 @@ install: check if test "x@SHLIB@" != "x" ; then \ $(INSTALL_DATA) -m 755 lib/libgpm.so.@abi_full@ $(libdir)/libgpm.so.@abi_full@ ; \ cd $(libdir) && $(LN_S) -f libgpm.so.@abi_full@ libgpm.so.@abi_lev@ ; \ + cd $(libdir) && $(LN_S) -f libgpm.so.@abi_full@ libgpm.so ; \ echo "WARNING: We installed a lib, you should now call ldconfig" ; \ echo "f.i.: ldconfig -n -l $(libdir)/libgpm.so.@abi_full@" ; \ echo "Or to update everything just type ldconfig" ; \ -- 2.7.0 ================================================ FILE: package/gpm/0004-Use-sigemptyset-API-instead-of-__sigemptyset.patch ================================================ From fdc42770596e25749f7e2ce0ea97882177397167 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 25 Jun 2017 07:25:33 -0700 Subject: [PATCH] Use sigemptyset API instead of __sigemptyset __sigemptyset has been removed from glibc public API headers in upcoming (2.26) release onwards Signed-off-by: Khem Raj Signed-off-by: Petr Vorel --- src/prog/gpm-root.y | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/prog/gpm-root.y b/src/prog/gpm-root.y index 5126c65..76c896c 100644 --- a/src/prog/gpm-root.y +++ b/src/prog/gpm-root.y @@ -1196,11 +1196,7 @@ int main(int argc, char **argv) LOG_DAEMON : LOG_USER); /* reap your zombies */ childaction.sa_handler=reap_children; -#if defined(__GLIBC__) - __sigemptyset(&childaction.sa_mask); -#else /* __GLIBC__ */ sigemptyset(&childaction.sa_mask); -#endif /* __GLIBC__ */ childaction.sa_flags=0; sigaction(SIGCHLD,&childaction,NULL); -- 2.14.2 ================================================ FILE: package/gpm/0005-fix-building-w-newer-glibc.patch ================================================ From b350aee4ea5785a75cb6ad770f6b768c506ebb70 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 14 Mar 2016 15:39:54 -0400 Subject: [PATCH] fix building w/newer glibc Linux C libraries are looking to disentangle sysmacros.h from the sys/types.h include, so make sure we pull in the header when it is found. Signed-off-by: Giulio Benetti --- src/daemon/open_console.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/daemon/open_console.c b/src/daemon/open_console.c index 4d6c0af..6dd43e6 100644 --- a/src/daemon/open_console.c +++ b/src/daemon/open_console.c @@ -24,6 +24,10 @@ #include /* major() */ #include /* ioctl */ +#ifdef HAVE_SYS_SYSMACROS_H +#include /* major() w/newer glibc */ +#endif + /* Linux specific (to be outsourced in gpm2 */ #include /* for serial console check */ #include /* for serial console check */ -- 2.17.1 ================================================ FILE: package/gpm/0006-src-headers-daemon.h-avoid-redefinition-of-last_sele.patch ================================================ From f04f24dd5ca5c1c13608b144ab66e2ccd47f106a Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 19 Jan 2020 19:53:41 +0000 Subject: [PATCH] src/headers/daemon.h: avoid redefinition of 'last_selection_time' Noticed build failure on gcc-10 as: ``` gcc -L/home/slyfox/dev/git/gpm/src -o gpm mice.o ... report.o tools.o -lm ld: twiddler.o:gpm/src/headers/daemon.h:183: multiple definition of `last_selection_time'; mice.o:gpm/src/headers/daemon.h:183: first defined here ld: synaptics.o:git/gpm/src/headers/daemon.h:183: multiple definition of `last_selection_time'; mice.o:git/gpm/src/headers/daemon.h:183: first defined here ``` gcc-10 will change the default from -fcommon to fno-common: https://gcc.gnu.org/PR85678. The error also happens if CFLAGS=-fno-common passed explicitly. Signed-off-by: Sergei Trofimovich Signed-off-by: Heiko Thiery --- src/headers/daemon.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/headers/daemon.h b/src/headers/daemon.h index a8936ad..24a1a97 100644 --- a/src/headers/daemon.h +++ b/src/headers/daemon.h @@ -180,7 +180,7 @@ extern struct mouse_features mouse_table[3], extern Gpm_Type mice[]; extern Gpm_Type *repeated_type; -time_t last_selection_time; +extern time_t last_selection_time; -- 2.20.1 ================================================ FILE: package/gpm/Config.in ================================================ config BR2_PACKAGE_GPM bool "gpm" depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # fork() help "gpm" means general purpose mouse (server) and provides mouse support for Linux virtual consoles. gpm-root (to draw menus in current virtual console; config file in /etc/gpm-root.conf) and disable-paste (to disable paste buffer for security reasons), will also be installed. http://www.nico.schottelius.org/software/gpm/ if BR2_PACKAGE_GPM config BR2_PACKAGE_GPM_INSTALL_TEST_TOOLS bool "install test tools" help Install gpm test tools (get-versions, mev, hltest, mouse-test, display-buttons & display-coords). endif comment "gpm mouse server needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS depends on BR2_USE_MMU ================================================ FILE: package/gpm/gpm.hash ================================================ # Locally computed: sha256 a955053b36556ffa7c628ce18fd6de7d625966573fa412fb08869533d8f7385c gpm-1.20.7.tar.lzma sha256 1b2a567f289f66a143c56353e7b3d4fa5862514a5e3c5cfdf8b02ee5e5aaa953 COPYING ================================================ FILE: package/gpm/gpm.mk ================================================ ################################################################################ # # gpm # ################################################################################ GPM_VERSION = 1.20.7 GPM_SOURCE = gpm-$(GPM_VERSION).tar.lzma GPM_SITE = http://www.nico.schottelius.org/software/gpm/archives GPM_LICENSE = GPL-2.0+ GPM_LICENSE_FILES = COPYING GPM_SELINUX_MODULES = gpm GPM_INSTALL_STAGING = YES GPM_DEPENDENCIES = host-bison # if not already installed in staging dir, gpm Makefile may fail to find some # of the headers needed to generate build dependencies, the first time it is # built. CPPFLAGS is used to pass the right include path to dependency rules. GPM_CONF_ENV = \ CPPFLAGS="$(TARGET_CPPFLAGS) -I$(@D)/src/headers/" \ ac_cv_path_emacs=no # For some reason, Microblaze gcc does not define __ELF__, which gpm # configure script uses to determine whether the architecture uses ELF # binaries and therefore can build shared libraries. We fix this by # telling GPM that ELF is used on Microblaze. ifeq ($(BR2_microblaze),y) GPM_CONF_ENV += itz_cv_sys_elf=yes endif # gpm and ncurses have a circular dependency. As gpm function GPM_Wgetch() # (requiring ncurses) is not recommended for use by ncurses people themselves # and as it's better to have gpm support in ncurses that the contrary, we force # gpm to not look after ncurses explicitly. # http://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_lib GPM_CONF_OPTS = --without-curses # configure is missing but gpm seems not compatible with our autoreconf # mechanism so we have to do it manually instead of using GPM_AUTORECONF = YES define GPM_RUN_AUTOGEN cd $(@D) && PATH=$(BR_PATH) ./autogen.sh endef GPM_PRE_CONFIGURE_HOOKS += GPM_RUN_AUTOGEN GPM_DEPENDENCIES += host-automake host-autoconf host-libtool # gpm tries to build/install .info doc even if makeinfo isn't installed on the # host, so we have to disable global doc installation to prevent autobuild # errors. define GPM_DISABLE_DOC_INSTALL $(SED) 's/SUBDIRS = src doc contrib/SUBDIRS = src contrib/' \ $(@D)/Makefile.in endef GPM_POST_PATCH_HOOKS += GPM_DISABLE_DOC_INSTALL ifeq ($(BR2_PACKAGE_GPM_INSTALL_TEST_TOOLS),) define GPM_REMOVE_TEST_TOOLS_FROM_TARGET for tools in mev hltest mouse-test display-buttons \ get-versions display-coords; do \ rm -f $(TARGET_DIR)/usr/bin/$$tools ; \ done endef GPM_POST_INSTALL_TARGET_HOOKS += GPM_REMOVE_TEST_TOOLS_FROM_TARGET endif define GPM_INSTALL_GPM_ROOT_CONF_ON_TARGET $(INSTALL) -m 0644 -D $(@D)/conf/gpm-root.conf $(TARGET_DIR)/etc/ endef GPM_POST_INSTALL_TARGET_HOOKS += GPM_INSTALL_GPM_ROOT_CONF_ON_TARGET $(eval $(autotools-package)) ================================================ FILE: package/gpsd/Config.in ================================================ comment "gpsd needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS menuconfig BR2_PACKAGE_GPSD bool "gpsd" # Uses fork() depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_THREADS # Always tries to build a shared library depends on !BR2_STATIC_LIBS help gpsd is a service daemon that monitors one or more GPSes or AIS receivers attached to a host computer through serial or USB ports, making all data on the location/course/velocity of the sensors available to be queried on TCP port 2947 of the host computer. The D-Bus interface is included if dbus-glib is enabled. https://gpsd.gitlab.io/gpsd if BR2_PACKAGE_GPSD config BR2_PACKAGE_GPSD_DEVICES string "Where to look for GPSes" default "/dev/ttyS1" comment "Features" config BR2_PACKAGE_GPSD_CLIENT_DEBUG bool "client debugging support" config BR2_PACKAGE_GPSD_OLDSTYLE bool "oldstyle (pre-JSON) protocol support" config BR2_PACKAGE_GPSD_PROFILING bool "profiling support" depends on BR2_TOOLCHAIN_USES_GLIBC depends on !BR2_aarch64 # Needs glibc for ARC arc-2018.03-eng007+ for correct __mcount linking depends on !BR2_arc comment "profiling support not available with uClibc-based toolchain" depends on !BR2_TOOLCHAIN_USES_GLIBC config BR2_PACKAGE_GPSD_USER bool "GPSD privilege revocation user" config BR2_PACKAGE_GPSD_USER_VALUE 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 "group to run as" default "nobody" depends on BR2_PACKAGE_GPSD_GROUP config BR2_PACKAGE_GPSD_MAX_CLIENT bool "compile with limited maximum clients" config BR2_PACKAGE_GPSD_MAX_CLIENT_VALUE 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 int "maximum allowed devices" default "2" depends on BR2_PACKAGE_GPSD_MAX_DEV config BR2_PACKAGE_GPSD_SQUELCH bool "squelch gpsd_report and gpsd_hexdump to save cpu" config BR2_PACKAGE_GPSD_PYTHON bool "build Python support and modules" depends on BR2_USE_WCHAR # python select BR2_PACKAGE_PYTHON3 if !BR2_PACKAGE_PYTHON help Python libraries and tools for the gpsd service daemon including gpsfake test harness. comment "GPSD python support not available with toolchain w/o wide characters support" depends on !BR2_USE_WCHAR comment "Protocols" config BR2_PACKAGE_GPSD_AIVDM bool "Aivdm" help Aivdm support config BR2_PACKAGE_GPSD_ASHTECH bool "Ashtech" help Ashtech support config BR2_PACKAGE_GPSD_EARTHMATE bool "Earthmate" help DeLorme EarthMate Zodiac support config BR2_PACKAGE_GPSD_EVERMORE bool "EverMore" help EverMore binary support config BR2_PACKAGE_GPSD_FURY bool "Fury" help Jackson Labs Fury and Firefly support config BR2_PACKAGE_GPSD_FV18 bool "FV-18" help San Jose Navigation FV-18 support config BR2_PACKAGE_GPSD_GARMIN bool "Garmin (kernel)" help Garmin kernel driver support config BR2_PACKAGE_GPSD_GARMIN_SIMPLE_TXT bool "Garmin (simple text)" help Garmin Simple Text support config BR2_PACKAGE_GPSD_GEOSTAR bool "Geostar" help Geostar Protocol support config BR2_PACKAGE_GPSD_GPSCLOCK bool "GPSClock" help GPSClock support config BR2_PACKAGE_GPSD_GREIS bool "Greis" help Greis support config BR2_PACKAGE_GPSD_ISYNC bool "iSync" help Spectratime iSync LNRClok/GRCLOK support config BR2_PACKAGE_GPSD_ITRAX bool "iTrax" help iTrax support config BR2_PACKAGE_GPSD_MTK3301 bool "MTK-3301" help Mediatek MTK-3301 support config BR2_PACKAGE_GPSD_NAVCOM bool "Navcom" help Navcom binary support config BR2_PACKAGE_GPSD_NMEA bool "NMEA" default y help Generic NMEA support config BR2_PACKAGE_GPSD_NMEA2000 bool "NMEA2000" select BR2_PACKAGE_GPSD_NAVCOM select BR2_PACKAGE_GPSD_AIVDM help NMEA2000/CAN support config BR2_PACKAGE_GPSD_NTRIP bool "NTRIP" help NTRIP support config BR2_PACKAGE_GPSD_OCEANSERVER bool "OceanServer" help OceanServer Digital Compass support config BR2_PACKAGE_GPSD_ONCORE bool "OnCore" help OnCore support config BR2_PACKAGE_GPSD_RTCM104V2 bool "RTCM104 v2" help RTCM104 v2 support config BR2_PACKAGE_GPSD_RTCM104V3 bool "RTCM104 v3" help RTCM104 v3 support config BR2_PACKAGE_GPSD_SIRF bool "SiRF" help SiRF binary support config BR2_PACKAGE_GPSD_SKYTRAQ bool "Skytraq" help Skytraq support config BR2_PACKAGE_GPSD_SUPERSTAR2 bool "SuperStarII" help Novatel SuperStarII binary support config BR2_PACKAGE_GPSD_TRIMBLE_TSIP bool "Trimble TSIP" help Trimble TSIP support config BR2_PACKAGE_GPSD_TRIPMATE bool "TripMate" help Delorme TripMate support config BR2_PACKAGE_GPSD_TRUE_NORTH bool "True North Technologies" help True North Technologies support config BR2_PACKAGE_GPSD_UBX bool "UBX" help uBlox UBX binary support endif ================================================ FILE: package/gpsd/S50gpsd ================================================ #!/bin/sh # # Starts the gps daemon. # NAME=gpsd DAEMON=/usr/sbin/$NAME DEVICES=/dev/ttyS1 PIDFILE=/var/run/$NAME.pid start() { printf "Starting $NAME: " start-stop-daemon -S -q -p $PIDFILE --exec $DAEMON -- -P $PIDFILE $DEVICES && echo "OK" || echo "Failed" } stop() { printf "Stopping $NAME: " start-stop-daemon -K -q -p $PIDFILE && echo "OK" || echo "Failed" rm -f $PIDFILE } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/gpsd/gpsd.hash ================================================ # Locally calculated sha256 0b991ce9a46538c4ea450f7a8ee428ff44fb4f8d665fddf2ffe40fe0ae9a6c09 gpsd-3.23.1.tar.gz sha256 fdf339997bbca9eaf507476b82fbcac608fc39a3d89b86b51e16db4c9f933716 COPYING ================================================ FILE: package/gpsd/gpsd.mk ================================================ ################################################################################ # # gpsd # ################################################################################ GPSD_VERSION = 3.23.1 GPSD_SITE = http://download-mirror.savannah.gnu.org/releases/gpsd GPSD_LICENSE = BSD-2-Clause GPSD_LICENSE_FILES = COPYING GPSD_CPE_ID_VENDOR = gpsd_project GPSD_SELINUX_MODULES = gpsd GPSD_INSTALL_STAGING = YES GPSD_DEPENDENCIES = host-python3 host-scons host-pkgconf GPSD_LDFLAGS = $(TARGET_LDFLAGS) GPSD_CFLAGS = $(TARGET_CFLAGS) GPSD_CXXFLAGS = $(TARGET_CXXFLAGS) GPSD_SCONS_ENV = $(TARGET_CONFIGURE_OPTS) GPSD_SCONS_OPTS = \ arch=$(ARCH) \ manbuild=no \ prefix=/usr \ sysroot=$(STAGING_DIR) \ strip=no \ qt=no \ systemd=$(if $(BR2_INIT_SYSTEMD),yes,no) ifeq ($(BR2_PACKAGE_NCURSES),y) GPSD_DEPENDENCIES += ncurses else GPSD_SCONS_OPTS += ncurses=no endif # Build libgpsmm if we've got C++ ifeq ($(BR2_INSTALL_LIBSTDCPP),y) GPSD_LDFLAGS += -lstdc++ GPSD_CFLAGS += -std=gnu++98 GPSD_CXXFLAGS += -std=gnu++98 GPSD_SCONS_OPTS += libgpsmm=yes else GPSD_SCONS_OPTS += libgpsmm=no endif ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) GPSD_CFLAGS += -O0 GPSD_CXXFLAGS += -O0 endif # If libusb is available build it before so the package can use it ifeq ($(BR2_PACKAGE_LIBUSB),y) GPSD_DEPENDENCIES += libusb else GPSD_SCONS_OPTS += usb=no endif # If bluetooth is available build it before so the package can use it ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS),y) GPSD_DEPENDENCIES += bluez5_utils else GPSD_SCONS_OPTS += bluez=no endif # If pps-tools is available, build it before so the package can use it # (HAVE_SYS_TIMEPPS_H). ifeq ($(BR2_PACKAGE_PPS_TOOLS),y) GPSD_DEPENDENCIES += pps-tools endif ifeq ($(BR2_PACKAGE_DBUS_GLIB),y) GPSD_SCONS_OPTS += dbus_export=yes GPSD_DEPENDENCIES += dbus-glib endif # Protocol support ifneq ($(BR2_PACKAGE_GPSD_ASHTECH),y) GPSD_SCONS_OPTS += ashtech=no endif ifneq ($(BR2_PACKAGE_GPSD_AIVDM),y) GPSD_SCONS_OPTS += aivdm=no endif ifneq ($(BR2_PACKAGE_GPSD_EARTHMATE),y) GPSD_SCONS_OPTS += earthmate=no endif ifneq ($(BR2_PACKAGE_GPSD_EVERMORE),y) GPSD_SCONS_OPTS += evermore=no endif ifneq ($(BR2_PACKAGE_GPSD_FURY),y) GPSD_SCONS_OPTS += fury=no endif ifneq ($(BR2_PACKAGE_GPSD_FV18),y) GPSD_SCONS_OPTS += fv18=no endif ifneq ($(BR2_PACKAGE_GPSD_GARMIN),y) GPSD_SCONS_OPTS += garmin=no endif ifneq ($(BR2_PACKAGE_GPSD_GARMIN_SIMPLE_TXT),y) GPSD_SCONS_OPTS += garmintxt=no endif ifneq ($(BR2_PACKAGE_GPSD_GEOSTAR),y) GPSD_SCONS_OPTS += geostar=no endif ifneq ($(BR2_PACKAGE_GPSD_GPSCLOCK),y) GPSD_SCONS_OPTS += gpsclock=no endif ifneq ($(BR2_PACKAGE_GPSD_GREIS),y) GPSD_SCONS_OPTS += greis=no endif ifneq ($(BR2_PACKAGE_GPSD_ISYNC),y) GPSD_SCONS_OPTS += isync=no endif ifneq ($(BR2_PACKAGE_GPSD_ITRAX),y) GPSD_SCONS_OPTS += itrax=no endif ifneq ($(BR2_PACKAGE_GPSD_MTK3301),y) GPSD_SCONS_OPTS += mtk3301=no endif ifneq ($(BR2_PACKAGE_GPSD_NMEA),y) GPSD_SCONS_OPTS += nmea0183=no endif ifneq ($(BR2_PACKAGE_GPSD_NTRIP),y) GPSD_SCONS_OPTS += ntrip=no endif ifneq ($(BR2_PACKAGE_GPSD_NAVCOM),y) GPSD_SCONS_OPTS += navcom=no endif ifneq ($(BR2_PACKAGE_GPSD_NMEA2000),y) GPSD_SCONS_OPTS += nmea2000=no endif ifneq ($(BR2_PACKAGE_GPSD_OCEANSERVER),y) GPSD_SCONS_OPTS += oceanserver=no endif ifneq ($(BR2_PACKAGE_GPSD_ONCORE),y) GPSD_SCONS_OPTS += oncore=no endif ifneq ($(BR2_PACKAGE_GPSD_RTCM104V2),y) GPSD_SCONS_OPTS += rtcm104v2=no endif ifneq ($(BR2_PACKAGE_GPSD_RTCM104V3),y) GPSD_SCONS_OPTS += rtcm104v3=no endif ifneq ($(BR2_PACKAGE_GPSD_SIRF),y) GPSD_SCONS_OPTS += sirf=no endif ifneq ($(BR2_PACKAGE_GPSD_SKYTRAQ),y) GPSD_SCONS_OPTS += skytraq=no endif ifneq ($(BR2_PACKAGE_GPSD_SUPERSTAR2),y) GPSD_SCONS_OPTS += superstar2=no endif ifneq ($(BR2_PACKAGE_GPSD_TRIMBLE_TSIP),y) GPSD_SCONS_OPTS += tsip=no endif ifneq ($(BR2_PACKAGE_GPSD_TRIPMATE),y) GPSD_SCONS_OPTS += tripmate=no endif ifneq ($(BR2_PACKAGE_GPSD_TRUE_NORTH),y) GPSD_SCONS_OPTS += tnt=no endif ifneq ($(BR2_PACKAGE_GPSD_UBX),y) GPSD_SCONS_OPTS += ublox=no endif # Features ifeq ($(BR2_PACKAGE_GPSD_SQUELCH),y) GPSD_SCONS_OPTS += squelch=yes endif ifneq ($(BR2_PACKAGE_GPSD_OLDSTYLE),y) GPSD_SCONS_OPTS += oldstyle=no endif ifeq ($(BR2_PACKAGE_GPSD_PROFILING),y) GPSD_SCONS_OPTS += profiling=yes endif ifneq ($(BR2_PACKAGE_GPSD_CLIENT_DEBUG),y) GPSD_SCONS_OPTS += clientdebug=no endif ifeq ($(BR2_PACKAGE_GPSD_USER),y) GPSD_SCONS_OPTS += gpsd_user=$(BR2_PACKAGE_GPSD_USER_VALUE) endif ifeq ($(BR2_PACKAGE_GPSD_GROUP),y) GPSD_SCONS_OPTS += gpsd_group=$(BR2_PACKAGE_GPSD_GROUP_VALUE) endif ifeq ($(BR2_PACKAGE_GPSD_MAX_CLIENT),y) GPSD_SCONS_OPTS += max_clients=$(BR2_PACKAGE_GPSD_MAX_CLIENT_VALUE) endif ifeq ($(BR2_PACKAGE_GPSD_MAX_DEV),y) GPSD_SCONS_OPTS += max_devices=$(BR2_PACKAGE_GPSD_MAX_DEV_VALUE) endif ifeq ($(BR2_PACKAGE_PYTHON3),y) GPSD_SCONS_OPTS += \ python=yes \ python_libdir="/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages" else ifeq ($(BR2_PACKAGE_PYTHON),y) GPSD_SCONS_OPTS += \ python=yes \ python_libdir="/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages" else GPSD_SCONS_OPTS += python=no endif GPSD_SCONS_ENV += \ LDFLAGS="$(GPSD_LDFLAGS)" \ CFLAGS="$(GPSD_CFLAGS)" \ CCFLAGS="$(GPSD_CFLAGS)" \ CXXFLAGS="$(GPSD_CXXFLAGS)" define GPSD_BUILD_CMDS (cd $(@D); \ $(GPSD_SCONS_ENV) \ $(HOST_DIR)/bin/python3 $(SCONS) \ $(GPSD_SCONS_OPTS)) endef define GPSD_INSTALL_TARGET_CMDS (cd $(@D); \ $(GPSD_SCONS_ENV) \ DESTDIR=$(TARGET_DIR) \ $(HOST_DIR)/bin/python3 $(SCONS) \ $(GPSD_SCONS_OPTS) \ $(if $(BR2_PACKAGE_HAS_UDEV),udev-install,install)) endef define GPSD_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/gpsd/S50gpsd $(TARGET_DIR)/etc/init.d/S50gpsd $(SED) 's,^DEVICES=.*,DEVICES=$(BR2_PACKAGE_GPSD_DEVICES),' $(TARGET_DIR)/etc/init.d/S50gpsd endef # systemd unit files are installed automatically, but need to update the # /usr/local path references in the provided files to /usr. define GPSD_INSTALL_INIT_SYSTEMD $(SED) 's%/usr/local%/usr%' \ $(TARGET_DIR)/usr/lib/systemd/system/gpsd.service \ $(TARGET_DIR)/usr/lib/systemd/system/gpsdctl@.service endef define GPSD_INSTALL_STAGING_CMDS (cd $(@D); \ $(GPSD_SCONS_ENV) \ DESTDIR=$(STAGING_DIR) \ $(HOST_DIR)/bin/python3 $(SCONS) \ $(GPSD_SCONS_OPTS) \ install) endef # After the udev rule is installed, make it writable so that this # package can be re-built/re-installed. ifeq ($(BR2_PACKAGE_HAS_UDEV),y) define GPSD_INSTALL_UDEV_RULES chmod u+w $(TARGET_DIR)/lib/udev/rules.d/25-gpsd.rules endef GPSD_POST_INSTALL_TARGET_HOOKS += GPSD_INSTALL_UDEV_RULES endif $(eval $(generic-package)) ================================================ FILE: package/gptfdisk/0001-gptcurses-partially-revert-Tweaks-for-building-on-th.patch ================================================ From 22e69d77d745b42ca85fefdf8c9f7625b852b964 Mon Sep 17 00:00:00 2001 From: Pierre-Jean Texier Date: Wed, 26 Feb 2020 22:08:28 +0100 Subject: [PATCH] gptcurses: partially revert "Tweaks for building on the latest XCode for macOS" This partially reverts commit bbd6b4cc67ffcdf7b2a6bd5008d28006cb147393. Fixes: | gptcurses.cc:29:10: fatal error: ncursesw/ncurses.h: No such file or directory | 29 | #include | | ^~~~~~~~~~~~~~~~~~~~ Signed-off-by: Pierre-Jean Texier [Retrieved from: https://sourceforge.net/u/texierp/gptfdisk/ci/22e69d77d745b42ca85fefdf8c9f7625b852b964 Upstream status (with meson build system): https://sourceforge.net/p/gptfdisk/code/merge-requests/21] --- gptcurses.cc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/gptcurses.cc b/gptcurses.cc index 1b18cf2..4ebfde1 100644 --- a/gptcurses.cc +++ b/gptcurses.cc @@ -23,11 +23,7 @@ #include #include #include -#if defined (__APPLE__) || (__FreeBSD__) #include -#else -#include -#endif #include "gptcurses.h" #include "support.h" -- 2.26.2 ================================================ FILE: package/gptfdisk/Config.in ================================================ comment "gptfdisk needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_GPTFDISK bool "gptfdisk" depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_GPTFDISK_GDISK if \ !(BR2_PACKAGE_GPTFDISK_SGDISK || BR2_PACKAGE_GPTFDISK_CGDISK) 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. http://www.rodsbooks.com/gdisk/ if BR2_PACKAGE_GPTFDISK config BR2_PACKAGE_GPTFDISK_GDISK bool "interactive gdisk" help Install the interactive GUID partition table (GPT) manipulator /usr/sbin/gdisk which is modelled after and quite similar in use to the traditional MBR based fdisk tool. config BR2_PACKAGE_GPTFDISK_SGDISK bool "command line sgdisk" select BR2_PACKAGE_POPT help Install the command-line GUID partition table (GPT) manipulator /usr/sbin/sgdisk which is named after the traditional MBR based sfdisk tool albeit with an entirely different option syntax. config BR2_PACKAGE_GPTFDISK_CGDISK bool "ncurses cgdisk" depends on BR2_USE_WCHAR # ncurses wchar select BR2_PACKAGE_NCURSES select BR2_PACKAGE_NCURSES_WCHAR # needed because of UTF-16 help Install the ncurses-based GUID partition table (GPT) manipulator /usr/sbin/cgdisk. endif ================================================ FILE: package/gptfdisk/Config.in.host ================================================ 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. http://www.rodsbooks.com/gdisk/ ================================================ FILE: package/gptfdisk/gptfdisk.hash ================================================ # From http://sourceforge.net/projects/gptfdisk/files/gptfdisk/1.0.8/ sha1 c8824e779056158fa32887e415f5399a8646c3c5 gptfdisk-1.0.8.tar.gz # Locally computed sha256 95d19856f004dabc4b8c342b2612e8d0a9eebdd52004297188369f152e9dc6df gptfdisk-1.0.8.tar.gz sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/gptfdisk/gptfdisk.mk ================================================ ################################################################################ # # gptfdisk # ################################################################################ GPTFDISK_VERSION = 1.0.8 GPTFDISK_SITE = http://downloads.sourceforge.net/sourceforge/gptfdisk GPTFDISK_LICENSE = GPL-2.0+ GPTFDISK_LICENSE_FILES = COPYING GPTFDISK_TARGETS_$(BR2_PACKAGE_GPTFDISK_GDISK) += gdisk GPTFDISK_TARGETS_$(BR2_PACKAGE_GPTFDISK_SGDISK) += sgdisk GPTFDISK_TARGETS_$(BR2_PACKAGE_GPTFDISK_CGDISK) += cgdisk GPTFDISK_DEPENDENCIES += util-linux ifeq ($(BR2_PACKAGE_GPTFDISK_SGDISK),y) GPTFDISK_DEPENDENCIES += popt endif ifeq ($(BR2_PACKAGE_GPTFDISK_CGDISK),y) GPTFDISK_DEPENDENCIES += ncurses endif ifeq ($(BR2_STATIC_LIBS),y) # gptfdisk dependencies may link against libiconv, so we need to do so # as well when linking statically ifeq ($(BR2_PACKAGE_LIBICONV),y) GPTFDISK_DEPENDENCIES += libiconv GPTFDISK_LDLIBS += -liconv endif endif define GPTFDISK_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ LDLIBS='$(GPTFDISK_LDLIBS)' $(GPTFDISK_TARGETS_y) endef define GPTFDISK_INSTALL_TARGET_CMDS for i in $(GPTFDISK_TARGETS_y); do \ $(INSTALL) -D -m 0755 $(@D)/$$i $(TARGET_DIR)/usr/sbin/$$i || exit 1; \ done endef HOST_GPTFDISK_DEPENDENCIES = host-util-linux host-popt define HOST_GPTFDISK_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) sgdisk endef define HOST_GPTFDISK_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/sgdisk $(HOST_DIR)/sbin/sgdisk endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/gqrx/Config.in ================================================ comment "gqrx needs a toolchain w/ C++, threads, wchar, dynamic library" depends on BR2_USE_MMU # gnuradio depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_USE_WCHAR || BR2_STATIC_LIBS comment "gqrx needs qt5" depends on !BR2_PACKAGE_QT5 comment "gqrx needs a toolchain not affected by GCC bug 43744 and 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_43744 || BR2_TOOLCHAIN_HAS_GCC_BUG_64735 config BR2_PACKAGE_GQRX bool "gqrx" depends on BR2_USE_MMU # gnuradio depends on !BR2_STATIC_LIBS # gnuradio depends on BR2_INSTALL_LIBSTDCPP # boost depends on BR2_TOOLCHAIN_HAS_THREADS # boost depends on BR2_USE_WCHAR # boost depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_PACKAGE_QT5 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # gnuradio -> boost-atomic depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_43744 # gnuradio depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # gnuradio select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_GNURADIO select BR2_PACKAGE_GNURADIO_ANALOG select BR2_PACKAGE_GNURADIO_AUDIO select BR2_PACKAGE_GNURADIO_BLOCKS select BR2_PACKAGE_GNURADIO_DIGITAL select BR2_PACKAGE_GNURADIO_FFT select BR2_PACKAGE_GNURADIO_FILTER select BR2_PACKAGE_GR_OSMOSDR select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_WIDGETS select BR2_PACKAGE_QT5SVG help Gqrx is an open source software defined radio (SDR) receiver implemented using GNU Radio and the Qt GUI toolkit. Currently it works on Linux and Mac with hardware supported by gr-osmosdr, including Funcube Dongle, RTL-SDR, Airspy, HackRF, BladeRF, RFSpace, USRP and SoapySDR. Gqrx can operate as an AM/FM/SSB receiver with audio output or as an FFT-only instrument. There are also various hooks for interacting with external application using network sockets. http://gqrx.dk/ ================================================ FILE: package/gqrx/gqrx.hash ================================================ # Locally calculated: sha256 aec35c77ebde9c71a5f973c509eec3d6aa2f18a6e052b180fcd9029d88273e5b gqrx-2.14.4.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING sha256 7cc22ce5ee61df62e427ec43b8130de149edee3cafb5af4f18d59b6dc3958faf LICENSE-CTK ================================================ FILE: package/gqrx/gqrx.mk ================================================ ################################################################################ # # gqrx # ################################################################################ GQRX_VERSION = 2.14.4 GQRX_SITE = $(call github,csete,gqrx,v$(GQRX_VERSION)) GQRX_LICENSE = GPL-3.0+, Apache-2.0 GQRX_LICENSE_FILES = COPYING LICENSE-CTK GQRX_DEPENDENCIES = boost gnuradio gr-osmosdr qt5base qt5svg GQRX_CONF_OPTS = -DLINUX_AUDIO_BACKEND=Gr-audio # gqrx can use __atomic builtins, so we need to link with # libatomic when available ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) GQRX_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif $(eval $(cmake-package)) ================================================ FILE: package/gr-osmosdr/Config.in ================================================ config BR2_PACKAGE_GR_OSMOSDR bool "gr-osmosdr" depends on BR2_PACKAGE_GNURADIO select BR2_PACKAGE_GNURADIO_BLOCKS select BR2_PACKAGE_GNURADIO_FFT select BR2_PACKAGE_GNURADIO_FILTER help GNU Radio block for interfacing with various radio hardware http://osmocom.org/projects/osmosdr if BR2_PACKAGE_GR_OSMOSDR config BR2_PACKAGE_GR_OSMOSDR_PYTHON bool "python support" depends on BR2_PACKAGE_GNURADIO_PYTHON depends on BR2_PACKAGE_PYTHON3 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" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # librtlsdr -> libusb select BR2_PACKAGE_LIBRTLSDR help Enable Osmocom RTLSDR support comment "Osmocom RTLSDR support needs a toolchain w/ gcc >= 4.9" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 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 ================================================ FILE: package/gr-osmosdr/gr-osmosdr.hash ================================================ # Locally calculated: sha256 11b1eb13725ced5ded9121a10aaf7bccf2430c5c69d020791408219968665b71 gr-osmosdr-0.2.3.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/gr-osmosdr/gr-osmosdr.mk ================================================ ################################################################################ # # gr-osmosdr # ################################################################################ GR_OSMOSDR_VERSION = 0.2.3 GR_OSMOSDR_SITE = $(call github,osmocom,gr-osmosdr,v$(GR_OSMOSDR_VERSION)) GR_OSMOSDR_LICENSE = GPL-3.0+ 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 host-python3 GR_OSMOSDR_CONF_OPTS = \ -DENABLE_DEFAULT=OFF \ -DENABLE_DOXYGEN=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 += python3 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)) ================================================ FILE: package/granite/Config.in ================================================ 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://github.com/elementary/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 ================================================ FILE: package/granite/granite.hash ================================================ # Locally computed sha256 c62d8d29e8bb59a5fa2d9006a9c13196aea9159410a7c86e3d51fa10d0f9dcc0 granite-6.0.0.tar.gz sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING ================================================ FILE: package/granite/granite.mk ================================================ ################################################################################ # # granite # ################################################################################ GRANITE_VERSION = 6.0.0 GRANITE_SITE = $(call github,elementary,granite,$(GRANITE_VERSION)) GRANITE_DEPENDENCIES = \ host-pkgconf \ host-vala \ libgee \ libglib2 \ libgtk3 \ $(TARGET_NLS_DEPENDENCIES) GRANITE_INSTALL_STAGING = YES GRANITE_LICENSE = LGPL-3.0+ GRANITE_LICENSE_FILES = COPYING GRANITE_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) GRANITE_CONF_OPTS += -Dintrospection=true GRANITE_DEPENDENCIES += gobject-introspection else GRANITE_CONF_OPTS += -Dintrospection=false endif $(eval $(meson-package)) ================================================ FILE: package/grantlee/Config.in ================================================ config BR2_PACKAGE_GRANTLEE bool "grantlee" 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 ================================================ FILE: package/grantlee/grantlee.hash ================================================ # Locally calculated sha256 139acee5746b957bdf1327ec0d97c604d4c0b9be42aec5d584297cb5ed6a990a grantlee-5.2.0.tar.gz # Hash for license file sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING.LIB ================================================ FILE: package/grantlee/grantlee.mk ================================================ ################################################################################ # # grantlee # ################################################################################ GRANTLEE_VERSION = 5.2.0 GRANTLEE_SITE = $(call github,steveire,grantlee,v$(GRANTLEE_VERSION)) GRANTLEE_INSTALL_STAGING = YES GRANTLEE_LICENSE = LGPL-2.1+ GRANTLEE_LICENSE_FILES = COPYING.LIB GRANTLEE_DEPENDENCIES = qt5base qt5script $(eval $(cmake-package)) ================================================ FILE: package/graphicsmagick/Config.in ================================================ config BR2_PACKAGE_GRAPHICSMAGICK bool "graphicsmagick" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS help GraphicsMagick is the swiss army knife of image processing. It provides a robust and efficient collection of tools and libraries which support reading, writing, and manipulating an image in over 89 major formats including important formats like DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM, TIFF, and WebP. http://www.graphicsmagick.org/ comment "graphicsmagick needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/graphicsmagick/graphicsmagick.hash ================================================ # Locally computed: sha256 5d5b3fde759cdfc307aaf21df9ebd8c752e3f088bb051dd5df8aac7ba7338f46 GraphicsMagick-1.3.36.tar.xz sha256 aed5bd8e28cbce601cbe2ca2267b663ccd63152965f2d5caea1311bf0039c325 Copyright.txt ================================================ FILE: package/graphicsmagick/graphicsmagick.mk ================================================ ################################################################################ # # graphicsmagick # ################################################################################ GRAPHICSMAGICK_VERSION = 1.3.36 GRAPHICSMAGICK_SOURCE = GraphicsMagick-$(GRAPHICSMAGICK_VERSION).tar.xz GRAPHICSMAGICK_SITE = https://downloads.sourceforge.net/project/graphicsmagick/graphicsmagick/$(GRAPHICSMAGICK_VERSION) GRAPHICSMAGICK_LICENSE = MIT GRAPHICSMAGICK_LICENSE_FILES = Copyright.txt GRAPHICSMAGICK_CPE_ID_VENDOR = graphicsmagick GRAPHICSMAGICK_INSTALL_STAGING = YES GRAPHICSMAGICK_CONFIG_SCRIPTS = GraphicsMagick-config GraphicsMagickWand-config ifeq ($(BR2_INSTALL_LIBSTDCPP),y) GRAPHICSMAGICK_CONFIG_SCRIPTS += GraphicsMagick++-config endif GRAPHICSMAGICK_CONF_OPTS = \ --without-dps \ --without-fpx \ --without-jbig \ --without-perl \ --without-trio \ --without-wmf \ --without-x \ --with-gs-font-dir=/usr/share/fonts/gs GRAPHICSMAGICK_DEPENDENCIES = host-pkgconf ifeq ($(BR2_TOOLCHAIN_HAS_OPENMP),y) GRAPHICSMAGICK_CONF_OPTS += --enable-openmp else GRAPHICSMAGICK_CONF_OPTS += --disable-openmp endif ifeq ($(BR2_PACKAGE_FREETYPE),y) GRAPHICSMAGICK_CONF_OPTS += --with-ttf GRAPHICSMAGICK_CONF_ENV += ac_cv_path_freetype_config=$(STAGING_DIR)/usr/bin/freetype-config GRAPHICSMAGICK_DEPENDENCIES += freetype else GRAPHICSMAGICK_CONF_OPTS += --without-ttf endif ifeq ($(BR2_PACKAGE_JPEG),y) GRAPHICSMAGICK_CONF_OPTS += --with-jpeg GRAPHICSMAGICK_DEPENDENCIES += jpeg else GRAPHICSMAGICK_CONF_OPTS += --without-jpeg endif ifeq ($(BR2_PACKAGE_OPENJPEG),y) GRAPHICSMAGICK_CONF_OPTS += --with-jp2 GRAPHICSMAGICK_DEPENDENCIES += openjpeg else GRAPHICSMAGICK_CONF_OPTS += --without-jp2 endif ifeq ($(BR2_PACKAGE_LCMS2),y) GRAPHICSMAGICK_CONF_OPTS += --with-lcms2 GRAPHICSMAGICK_DEPENDENCIES += lcms2 else GRAPHICSMAGICK_CONF_OPTS += --without-lcms2 endif ifeq ($(BR2_PACKAGE_LIBPNG),y) GRAPHICSMAGICK_CONF_OPTS += --with-png GRAPHICSMAGICK_DEPENDENCIES += libpng else GRAPHICSMAGICK_CONF_OPTS += --without-png endif ifeq ($(BR2_PACKAGE_LIBXML2),y) GRAPHICSMAGICK_CONF_OPTS += --with-xml GRAPHICSMAGICK_CONF_ENV += ac_cv_path_xml2_config=$(STAGING_DIR)/usr/bin/xml2-config GRAPHICSMAGICK_DEPENDENCIES += libxml2 else GRAPHICSMAGICK_CONF_OPTS += --without-xml endif ifeq ($(BR2_PACKAGE_TIFF),y) GRAPHICSMAGICK_CONF_OPTS += --with-tiff GRAPHICSMAGICK_DEPENDENCIES += tiff else GRAPHICSMAGICK_CONF_OPTS += --without-tiff endif ifeq ($(BR2_PACKAGE_WEBP_MUX),y) GRAPHICSMAGICK_CONF_OPTS += --with-webp GRAPHICSMAGICK_DEPENDENCIES += webp else GRAPHICSMAGICK_CONF_OPTS += --without-webp endif ifeq ($(BR2_PACKAGE_XZ),y) GRAPHICSMAGICK_CONF_OPTS += --with-lzma GRAPHICSMAGICK_DEPENDENCIES += xz else GRAPHICSMAGICK_CONF_OPTS += --without-lzma endif ifeq ($(BR2_PACKAGE_ZLIB),y) GRAPHICSMAGICK_CONF_OPTS += --with-zlib GRAPHICSMAGICK_DEPENDENCIES += zlib else GRAPHICSMAGICK_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_BZIP2),y) GRAPHICSMAGICK_CONF_OPTS += --with-bzlib GRAPHICSMAGICK_DEPENDENCIES += bzip2 else GRAPHICSMAGICK_CONF_OPTS += --without-bzlib endif ifeq ($(BR2_PACKAGE_ZSTD),y) GRAPHICSMAGICK_CONF_OPTS += --with-zstd GRAPHICSMAGICK_DEPENDENCIES += zstd else GRAPHICSMAGICK_CONF_OPTS += --without-zstd endif $(eval $(autotools-package)) ================================================ FILE: package/graphite2/0001-don-t-install-a-libtool-file-with-static-library.patch ================================================ From 3edb88b55c0870989778c670d555aa159a2c3abc Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 31 Aug 2020 20:56:43 +0200 Subject: [PATCH] don't install a libtool file with static library Static library is supported since version 1.3.11 and https://github.com/silnrsi/graphite/commit/2f143c04da5caa43ddf4dba437b2f2bc26bf4238 However, graphite2 is still installing libgraphite2.la which contains incorrect information (i.e. dlname set to libgraphite2.so and old_library set to ''): dlname='libgraphite2.so' library_names='libgraphite2.so.3.2.1 libgraphite2.so.3 libgraphite2.so' old_library='' dependency_libs='' This will result in the following build failure with any applications using this file such as harfbuzz: arm-linux-g++.br_real: error: /home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgraphite2.so: No such file or directory make[5]: *** [main] Error 1 Instead of trying to fix this libtool file, just disable it when building a static library as it is not needed Fixes: - http://autobuild.buildroot.org/results/9ebe1d11e80755d59190ef2aae82bbba5cc45e44 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/silnrsi/graphite/pull/65] --- src/CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b6ac26bf..a7ace040 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -131,7 +131,9 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") nolib_test(stdc++ $) endif () set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") - CREATE_LIBTOOL_FILE(graphite2 "/lib${LIB_SUFFIX}") + if (BUILD_SHARED_LIBS) + CREATE_LIBTOOL_FILE(graphite2 "/lib${LIB_SUFFIX}") + endif() endif() if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") @@ -146,7 +148,9 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") include(Graphite) nolib_test(stdc++ $) set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") - CREATE_LIBTOOL_FILE(graphite2 "/lib${LIB_SUFFIX}") + if (BUILD_SHARED_LIBS) + CREATE_LIBTOOL_FILE(graphite2 "/lib${LIB_SUFFIX}") + endif() endif() if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") -- 2.28.0 ================================================ FILE: package/graphite2/Config.in ================================================ config BR2_PACKAGE_GRAPHITE2 bool "graphite2" depends on BR2_INSTALL_LIBSTDCPP help Graphite is a project within SIL's scripts and software dev groups to provide cross-platform rendering for complex writing systems. https://github.com/silnrsi/graphite comment "graphite2 needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/graphite2/graphite2.hash ================================================ # From https://github.com/silnrsi/graphite/releases/download/1.3.14/graphite2-1.3.14.sha256sum sha256 f99d1c13aa5fa296898a181dff9b82fb25f6cc0933dbaa7a475d8109bd54209d graphite2-1.3.14.tgz # Locally computed sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 LICENSE ================================================ FILE: package/graphite2/graphite2.mk ================================================ ################################################################################ # # graphite2 # ################################################################################ GRAPHITE2_VERSION = 1.3.14 GRAPHITE2_SOURCE = graphite2-$(GRAPHITE2_VERSION).tgz GRAPHITE2_SITE = \ https://github.com/silnrsi/graphite/releases/download/$(GRAPHITE2_VERSION) GRAPHITE2_INSTALL_STAGING = YES GRAPHITE2_LICENSE = LGPL-2.1+ GRAPHITE2_LICENSE_FILES = LICENSE GRAPHITE2_CPE_ID_VENDOR = sil # Avoid building docs and tests to save time define GRAPHITE2_DISABLE_TESTS_DOC $(SED) '/^add_subdirectory(doc)/d' \ -e '/^add_subdirectory(tests)/d' \ -e '/add_subdirectory(gr2fonttest)/d' \ $(@D)/CMakeLists.txt endef GRAPHITE2_POST_PATCH_HOOKS += GRAPHITE2_DISABLE_TESTS_DOC $(eval $(cmake-package)) ================================================ FILE: package/grep/Config.in ================================================ config BR2_PACKAGE_GREP bool "grep" depends on BR2_USE_WCHAR depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help The GNU regular expression matcher. egrep/fgrep aliases need /bin/sh to be available. http://www.gnu.org/software/grep/grep.html comment "grep needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/grep/grep.hash ================================================ # Locally calculated after checking signature # http://ftp.gnu.org/gnu/grep/grep-3.6.tar.xz.sig # using key 155D3FC500C834486D1EEA677FD9FCCB000BEEEE sha256 667e15e8afe189e93f9f21a7cd3a7b3f776202f417330b248c2ad4f997d9373e grep-3.6.tar.xz sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 COPYING ================================================ FILE: package/grep/grep.mk ================================================ ################################################################################ # # grep # ################################################################################ GREP_VERSION = 3.6 GREP_SITE = $(BR2_GNU_MIRROR)/grep GREP_SOURCE = grep-$(GREP_VERSION).tar.xz GREP_LICENSE = GPL-3.0+ GREP_LICENSE_FILES = COPYING GREP_CPE_ID_VENDOR = gnu GREP_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) # install into /bin like busybox grep GREP_CONF_OPTS = --exec-prefix=/ ifeq ($(BR2_SYSTEM_BIN_SH_NONE),y) define GREP_REMOVE_ALIAS $(RM) $(TARGET_DIR)/bin/[fe]grep endef GREP_POST_INSTALL_TARGET_HOOKS += GREP_REMOVE_ALIAS else # ensure egrep/fgrep shell wrappers use #!/bin/sh define GREP_FIXUP_SHEBANG $(SED) 's/bash$$/sh/' $(TARGET_DIR)/bin/[fe]grep endef GREP_POST_INSTALL_TARGET_HOOKS += GREP_FIXUP_SHEBANG endif # link with iconv if enabled ifeq ($(BR2_PACKAGE_LIBICONV),y) GREP_CONF_ENV += LIBS=-liconv GREP_DEPENDENCIES += libiconv endif # link with pcre if enabled ifeq ($(BR2_PACKAGE_PCRE),y) GREP_CONF_OPTS += --enable-perl-regexp GREP_DEPENDENCIES += pcre else GREP_CONF_OPTS += --disable-perl-regexp endif $(eval $(autotools-package)) ================================================ FILE: package/grpc/0001-Properly-detect-the-availability-of-pthread_setname_.patch ================================================ From 0dfb289a3b362b082ac3608d887e42f09dadc0d2 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Mon, 31 Dec 2018 16:22:07 +0100 Subject: [PATCH] Properly detect the availability of pthread_setname_np() This commit adds a CMake check for the availability of pthread_setname_np(), and only uses it on Linux when available. Indeed, some C libraries, such as uClibc, do not provide this non-POSIX function in all cases. Upstream: https://github.com/grpc/grpc/pull/17610 Signed-off-by: Thomas Petazzoni --- CMakeLists.txt | 6 ++++++ include/grpc/impl/codegen/port_platform.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 45c2fcb..0b2be4f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -208,6 +208,12 @@ if (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE) endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") +include(CheckSymbolExists) +check_symbol_exists(pthread_setname_np pthread.h HAVE_PTHREAD_SETNAME_NP) +if (HAVE_PTHREAD_SETNAME_NP) + add_definitions(-DHAVE_PTHREAD_SETNAME_NP) +endif () + if(MSVC) include(cmake/msvc_static_runtime.cmake) add_definitions(-D_WIN32_WINNT=0x600 -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS) diff --git a/include/grpc/impl/codegen/port_platform.h b/include/grpc/impl/codegen/port_platform.h index 4f213ff..55ecd9d 100644 --- a/include/grpc/impl/codegen/port_platform.h +++ b/include/grpc/impl/codegen/port_platform.h @@ -168,7 +168,9 @@ #endif /* _LP64 */ #ifdef __GLIBC__ #define GPR_POSIX_CRASH_HANDLER 1 +#if defined(HAVE_PTHREAD_SETNAME_NP) #define GPR_LINUX_PTHREAD_NAME 1 +#endif /* HAVE_PTHREAD_SETNAME_NP */ #include #else /* musl libc */ #define GPR_MUSL_LIBC_COMPAT 1 -- 2.26.63 ================================================ FILE: package/grpc/0002-wrap_memcpy.cc-add-GPR_DISABLE_WRAPPED_MEMCPY.patch ================================================ From be030314805137cd63b46ea6eaa702b608669910 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 2 Jun 2019 17:45:47 +0200 Subject: [PATCH] wrap_memcpy.cc: add GPR_DISABLE_WRAPPED_MEMCPY Add GPR_DISABLE_WRAPPED_MEMCPY to allow the user to disable wrapped memcpy. This will fix build on x86_64 on musl/uclibc without changing the cpu behavior. Fixes: - http://autobuild.buildroot.org/results/20d6f2489a4e291a53bd514da66105eb607e1014 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/grpc/grpc/pull/19207] --- src/core/lib/gpr/wrap_memcpy.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/lib/gpr/wrap_memcpy.cc b/src/core/lib/gpr/wrap_memcpy.cc index 9b8608e056..38b76acf95 100644 --- a/src/core/lib/gpr/wrap_memcpy.cc +++ b/src/core/lib/gpr/wrap_memcpy.cc @@ -29,7 +29,7 @@ extern "C" { #ifdef __linux__ #if defined(__x86_64__) && !defined(GPR_MUSL_LIBC_COMPAT) && \ - !defined(__ANDROID__) + !defined(__ANDROID__) && !defined(GPR_DISABLE_WRAPPED_MEMCPY) __asm__(".symver memcpy,memcpy@GLIBC_2.2.5"); void* __wrap_memcpy(void* destination, const void* source, size_t num) { return memcpy(destination, source, num); -- 2.20.1 ================================================ FILE: package/grpc/Config.in ================================================ config BR2_PACKAGE_GRPC bool "grpc" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf, re2 depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # protobuf depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # protobuf, re2, libabseil-cpp depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libabseil-cpp depends on !BR2_STATIC_LIBS # protobuf, libabseil-cpp depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS select BR2_PACKAGE_C_ARES select BR2_PACKAGE_LIBABSEIL_CPP select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_PROTOBUF select BR2_PACKAGE_RE2 select BR2_PACKAGE_ZLIB help A language-neutral, platform-neutral, open source, remote procedure call (RPC) system initially developed at Google. http://github.com/grpc/grpc comment "grpc needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.9, host gcc >= 4.9" depends on BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \ || !BR2_HOST_GCC_AT_LEAST_4_9 depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS ================================================ FILE: package/grpc/grpc.hash ================================================ # Locally computed sha256 e5fb30aae1fa1cffa4ce00aa0bbfab908c0b899fcf0bbc30e268367d660d8656 grpc-1.41.0.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/grpc/grpc.mk ================================================ ################################################################################ # # grpc # ################################################################################ GRPC_VERSION = 1.41.0 GRPC_SITE = $(call github,grpc,grpc,v$(GRPC_VERSION)) GRPC_LICENSE = Apache-2.0 GRPC_LICENSE_FILES = LICENSE GRPC_CPE_ID_VENDOR = grpc GRPC_INSTALL_STAGING = YES # Need to use host grpc_cpp_plugin during cross compilation. GRPC_DEPENDENCIES = c-ares host-grpc libabseil-cpp openssl protobuf re2 zlib HOST_GRPC_DEPENDENCIES = host-c-ares host-libabseil-cpp host-openssl host-protobuf \ host-re2 host-zlib # gRPC_CARES_PROVIDER=package won't work because it requires c-ares to have # installed a cmake config file, but buildroot uses c-ares' autotools build, # which doesn't do this. These CARES settings trick the gRPC cmake code into # not looking for c-ares at all and yet still linking with the library. GRPC_CONF_OPTS = \ -DgRPC_ABSL_PROVIDER=package \ -D_gRPC_CARES_LIBRARIES=cares \ -DgRPC_CARES_PROVIDER=none \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_BUILD_GRPC_CPP_PLUGIN=OFF \ -DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF \ -DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF \ -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF \ -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \ -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF \ -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF # grpc can use __atomic builtins, so we need to link with # libatomic when available ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) GRPC_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif GRPC_CFLAGS = $(TARGET_CFLAGS) GRPC_CXXFLAGS = $(TARGET_CXXFLAGS) # Set GPR_DISABLE_WRAPPED_MEMCPY otherwise build will fail on x86_64 with uclibc # because grpc tries to link with memcpy@GLIBC_2.2.5 ifeq ($(BR2_x86_64):$(BR2_TOOLCHAIN_USES_GLIBC),y:) GRPC_CFLAGS += -DGPR_DISABLE_WRAPPED_MEMCPY GRPC_CXXFLAGS += -DGPR_DISABLE_WRAPPED_MEMCPY endif ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) GRPC_CFLAGS += -O0 GRPC_CXXFLAGS += -O0 endif # Toolchains older than gcc5 will fail to compile with -0s due to: # error: failure memory model cannot be stronger than success memory model for # '__atomic_compare_exchange', so we use -O2 in these cases ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_5):$(BR2_OPTIMIZE_S),:y) GRPC_CFLAGS += -O2 GRPC_CXXFLAGS += -O2 endif GRPC_CONF_OPTS += \ -DCMAKE_C_FLAGS="$(GRPC_CFLAGS)" \ -DCMAKE_CXX_FLAGS="$(GRPC_CXXFLAGS)" HOST_GRPC_CONF_OPTS = \ -DgRPC_ABSL_PROVIDER=package \ -D_gRPC_CARES_LIBRARIES=cares \ -DgRPC_CARES_PROVIDER=none \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/gsettings-desktop-schemas/Config.in ================================================ 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 ================================================ FILE: package/gsettings-desktop-schemas/gsettings-desktop-schemas.hash ================================================ # From http://ftp.acc.umu.se/pub/gnome/sources/gsettings-desktop-schemas/3.36/gsettings-desktop-schemas-3.36.1.sha256sum sha256 004bdbe43cf8290f2de7d8537e14d8957610ca479a4fa368e34dbd03f03ec9d9 gsettings-desktop-schemas-3.36.1.tar.xz # Hash for license file sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/gsettings-desktop-schemas/gsettings-desktop-schemas.mk ================================================ ################################################################################ # # gsettings-desktop-schemas # ################################################################################ GSETTINGS_DESKTOP_SCHEMAS_VERSION_MAJOR = 3.36 GSETTINGS_DESKTOP_SCHEMAS_VERSION = $(GSETTINGS_DESKTOP_SCHEMAS_VERSION_MAJOR).1 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-pkgconf libglib2 GSETTINGS_DESKTOP_SCHEMAS_LICENSE = LGPL-2.1+ GSETTINGS_DESKTOP_SCHEMAS_LICENSE_FILES = COPYING GSETTINGS_DESKTOP_SCHEMAS_CONF_OPTS = -Dintrospection=false $(eval $(meson-package)) ================================================ FILE: package/gsl/Config.in ================================================ config BR2_PACKAGE_GSL bool "gsl" help The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite. http://www.gnu.org/software/gsl ================================================ FILE: package/gsl/gsl.hash ================================================ # Locally calculated after checking pgp signature sha256 b782339fc7a38fe17689cb39966c4d821236c28018b6593ddb6fd59ee40786a8 gsl-2.6.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/gsl/gsl.mk ================================================ ################################################################################ # # gsl # ################################################################################ GSL_VERSION = 2.6 GSL_SITE = $(BR2_GNU_MIRROR)/gsl GSL_INSTALL_STAGING = YES GSL_LICENSE = GPL-3.0 GSL_LICENSE_FILES = COPYING GSL_CONFIG_SCRIPTS = gsl-config # uClibc pretends to have fenv support as it installs , but in # practice, it only implements it for i386. Problem reported upstream # at: http://lists.busybox.net/pipermail/uclibc/2012-October/047067.html. # So we tell gsl that fenv related functions are not available in this # case. ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) ifneq ($(BR2_i386),y) GSL_CONF_ENV = \ ac_cv_have_decl_feenableexcept=no \ ac_cv_have_decl_fesettrapenable=no endif endif $(eval $(autotools-package)) ================================================ FILE: package/gssdp/Config.in ================================================ config BR2_PACKAGE_GSSDP bool "gssdp" depends on BR2_USE_WCHAR # glib2, libsoup depends on BR2_TOOLCHAIN_HAS_THREADS # glib2, libsoup depends on BR2_USE_MMU # glib2, libsoup select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBSOUP help GSSDP implements resource discovery and announcement over SSDP. http://www.gupnp.org comment "gssdp needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/gssdp/gssdp.hash ================================================ # Hash from: http://ftp.gnome.org/pub/gnome/sources/gssdp/1.3/gssdp-1.3.1.sha256sum: sha256 affbf145c26e02dda9d31f9da9fd5182bd2cc36565ab8ee2e877567b2fd206cd gssdp-1.3.1.tar.xz # Hash for license file: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/gssdp/gssdp.mk ================================================ ################################################################################ # # gssdp # ################################################################################ GSSDP_VERSION_MAJOR = 1.3 GSSDP_VERSION = $(GSSDP_VERSION_MAJOR).1 GSSDP_SOURCE = gssdp-$(GSSDP_VERSION).tar.xz GSSDP_SITE = http://ftp.gnome.org/pub/gnome/sources/gssdp/$(GSSDP_VERSION_MAJOR) GSSDP_LICENSE = LGPL-2.1+ GSSDP_LICENSE_FILES = COPYING GSSDP_INSTALL_STAGING = YES GSSDP_DEPENDENCIES = host-pkgconf libglib2 libsoup GSSDP_CONF_OPTS = -Dexamples=false -Dgtk_doc=false -Dsniffer=false ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) GSSDP_CONF_OPTS += -Dintrospection=true -Dvapi=true GSSDP_DEPENDENCIES += host-vala gobject-introspection else GSSDP_CONF_OPTS += -Dintrospection=false -Dvapi=false endif $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/Config.in ================================================ # Gstreamer 1.x & Plugins source "package/gstreamer1/gstreamer1/Config.in" if BR2_PACKAGE_GSTREAMER1 source "package/gstreamer1/gstreamer1-mm/Config.in" source "package/gstreamer1/gst1-plugins-base/Config.in" source "package/gstreamer1/gst1-plugins-bayer2rgb-neon/Config.in" source "package/gstreamer1/gst1-plugins-good/Config.in" source "package/gstreamer1/gst1-plugins-bad/Config.in" source "package/gstreamer1/gst1-plugins-ugly/Config.in" source "package/gstreamer1/gst1-devtools/Config.in" source "package/gstreamer1/gst1-imx/Config.in" source "package/gstreamer1/gst1-interpipe/Config.in" source "package/gstreamer1/gst1-libav/Config.in" source "package/gstreamer1/gst1-python/Config.in" source "package/gstreamer1/gst1-rtsp-server/Config.in" source "package/gstreamer1/gst1-shark/Config.in" source "package/gstreamer1/gst1-vaapi/Config.in" source "package/gstreamer1/gst-omx/Config.in" source "package/gstreamer1/gstd/Config.in" source "package/gstreamer1/gstreamer1-editing-services/Config.in" endif ================================================ FILE: package/gstreamer1/gst-omx/Config.in ================================================ config BR2_PACKAGE_GST_OMX bool "gst-omx" depends on BR2_PACKAGE_HAS_LIBOPENMAX select BR2_PACKAGE_GST1_PLUGINS_BASE help GStreamer plug-in to use OpenMAX API. https://cgit.freedesktop.org/gstreamer/gst-omx comment "gst-omx requires a OpenMAX implementation" depends on !BR2_PACKAGE_HAS_LIBOPENMAX ================================================ FILE: package/gstreamer1/gst-omx/gst-omx.hash ================================================ # From https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-1.18.5.tar.xz.sha256sum sha256 2cd457c1e8deb1a9b39608048fb36a44f6c9a864a6b6115b1453a32e7be93b42 gst-omx-1.18.5.tar.xz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/gstreamer1/gst-omx/gst-omx.mk ================================================ ################################################################################ # # gst-omx # ################################################################################ GST_OMX_VERSION = 1.18.5 GST_OMX_SOURCE = gst-omx-$(GST_OMX_VERSION).tar.xz GST_OMX_SITE = https://gstreamer.freedesktop.org/src/gst-omx GST_OMX_LICENSE = LGPL-2.1 GST_OMX_LICENSE_FILES = COPYING GST_OMX_CONF_OPTS = \ -Dexamples=disabled \ -Dtests=disabled \ -Dtools=disabled \ -Ddoc=disabled ifeq ($(BR2_PACKAGE_RPI_USERLAND),y) GST_OMX_VARIANT = rpi GST_OMX_CONF_OPTS += -Dheader_path=$(STAGING_DIR)/usr/include/IL else GST_OMX_VARIANT = generic endif GST_OMX_CONF_OPTS += -Dtarget=$(GST_OMX_VARIANT) GST_OMX_DEPENDENCIES = gstreamer1 gst1-plugins-base libopenmax # adjust library paths to where buildroot installs them define GST_OMX_FIXUP_CONFIG_PATHS find $(@D)/config -name gstomx.conf | \ xargs $(SED) 's|/usr/local|/usr|g' -e 's|/opt/vc|/usr|g' endef GST_OMX_POST_PATCH_HOOKS += GST_OMX_FIXUP_CONFIG_PATHS $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gst1-devtools/Config.in ================================================ config BR2_PACKAGE_GST1_DEVTOOLS bool "gst1-devtools" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_GSTREAMER1_CHECK select BR2_PACKAGE_GST1_PLUGINS_BASE select BR2_PACKAGE_JSON_GLIB select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 # cairo is autodetected but needs PNG support select BR2_PACKAGE_CAIRO_PNG if BR2_PACKAGE_CAIRO help GStreamer development tools (gst-validate). https://gstreamer.freedesktop.org comment "gst1-devtools depends on python" depends on !BR2_PACKAGE_PYTHON depends on !BR2_PACKAGE_PYTHON3 ================================================ FILE: package/gstreamer1/gst1-devtools/gst1-devtools.hash ================================================ # From https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-1.18.5.tar.xz.sha256sum sha256 fecffc86447daf5c2a06843c757a991d745caa2069446a0d746e99b13f7cb079 gst-devtools-1.18.5.tar.xz sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 validate/COPYING ================================================ FILE: package/gstreamer1/gst1-devtools/gst1-devtools.mk ================================================ ################################################################################ # # gst1-devtools # ################################################################################ GST1_DEVTOOLS_VERSION = 1.18.5 GST1_DEVTOOLS_SOURCE = gst-devtools-$(GST1_DEVTOOLS_VERSION).tar.xz GST1_DEVTOOLS_SITE = https://gstreamer.freedesktop.org/src/gst-devtools GST1_DEVTOOLS_LICENSE = LGPL-2.1+ GST1_DEVTOOLS_LICENSE_FILES = validate/COPYING GST1_DEVTOOLS_INSTALL_STAGING = YES GST1_DEVTOOLS_DEPENDENCIES = \ gstreamer1 \ gst1-plugins-base \ json-glib \ $(if $(BR2_PACKAGE_CAIRO),cairo) ifeq ($(BR2_PACKAGE_PYTHON3),y) GST1_DEVTOOLS_DEPENDENCIES += host-python3 python3 else GST1_DEVTOOLS_DEPENDENCIES += host-python python endif ifeq ($(BR2_PACKAGE_GST1_RTSP_SERVER),y) GST1_DEVTOOLS_DEPENDENCIES += gst1-rtsp-server endif GST1_DEVTOOLS_CONF_OPTS = \ -Dvalidate=enabled \ -Ddebug_viewer=disabled \ -Dintrospection=disabled \ -Dtests=disabled \ -Ddoc=disabled $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gst1-imx/Config.in ================================================ comment "gst1-imx needs a toolchain w/ dynamic library" depends on BR2_arm depends on BR2_STATIC_LIBS menuconfig BR2_PACKAGE_GST1_IMX bool "gst1-imx" depends on BR2_arm # Only relevant for i.MX 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.MX platforms, which make use of the i.MX multimedia capabilities. https://github.com/Freescale/gstreamer-imx if BR2_PACKAGE_GST1_IMX config BR2_PACKAGE_GST1_IMX_EGLVISINK bool "imxeglvivsink" depends on BR2_PACKAGE_IMX_GPU_VIV help Elements leveraging the 3D GPU comment "imxeglvivsink needs the Vivante 3D libraries" depends on !BR2_PACKAGE_IMX_GPU_VIV config BR2_PACKAGE_GST1_IMX_G2D bool "imxg2d" depends on BR2_PACKAGE_IMX_GPU_G2D help Elements leveraging the 2D GPU comment "imxg2d needs the G2D libraries" depends on !BR2_PACKAGE_IMX_GPU_G2D config BR2_PACKAGE_GST1_IMX_IPU bool "imxipu" depends on BR2_LINUX_KERNEL help Elements leveraging the IPU comment "imxipu needs an imx-specific Linux kernel to be built" depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_GST1_IMX_MP3ENCODER bool "mp3encoder" depends on BR2_PACKAGE_IMX_CODEC help Elements for MP3 encoding comment "mp3encoder needs the i.MX codec binaries" depends on !BR2_PACKAGE_IMX_CODEC config BR2_PACKAGE_GST1_IMX_PXP bool "imxpxp" depends on BR2_LINUX_KERNEL help Elements leveraging the PXP comment "imxpxp needs an imx-specific Linux kernel to be built" depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_GST1_IMX_UNIAUDIODEC bool "uniaudiodec" depends on BR2_PACKAGE_IMX_CODEC help Elements for audio decoding comment "uniaudiodec needs the i.MX codec binaries" depends on !BR2_PACKAGE_IMX_CODEC config BR2_PACKAGE_GST1_IMX_VPU bool "imxvpu" depends on BR2_PACKAGE_LIBIMXVPUAPI help Elements leveraging the VPU comment "imxvpu needs the VPU imxvpuapi library" depends on !BR2_PACKAGE_LIBIMXVPUAPI config BR2_PACKAGE_GST1_IMX_V4L2VIDEOSRC bool "imxv4l2videosrc" select BR2_PACKAGE_GST1_PLUGINS_BAD help Elements for V4L2 capture config BR2_PACKAGE_GST1_IMX_V4L2VIDEOSINK bool "imxv4l2videosink" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 # V4L2_COLORSPACE_DEFAULT select BR2_PACKAGE_GST1_PLUGINS_BAD help Elements for V4L2 output comment "imxv4l2videosink needs a toolchain w/ headers >= 4.2" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 endif ================================================ FILE: package/gstreamer1/gst1-imx/gst1-imx.hash ================================================ # locally computed hash sha256 21feb24130c18e4a1f8cc4f72d575903d1f9134dd0604e41e91b5e783d81e320 gst1-imx-0.13.1.tar.gz sha256 94b03f1a60a7fd5007149530626a895a6ef5a8b9342abfd56860c5f3956f5d23 LICENSE ================================================ FILE: package/gstreamer1/gst1-imx/gst1-imx.mk ================================================ ################################################################################ # # gst1-imx # ################################################################################ GST1_IMX_VERSION = 0.13.1 GST1_IMX_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX_VERSION)) GST1_IMX_LICENSE = LGPL-2.0+ GST1_IMX_LICENSE_FILES = LICENSE GST1_IMX_INSTALL_STAGING = YES GST1_IMX_NEEDS_EXTERNAL_WAF = YES GST1_IMX_DEPENDENCIES += \ host-pkgconf \ gstreamer1 \ gst1-plugins-base 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 += --kernel-headers="$(LINUX_DIR)/include" endif ifeq ($(BR2_PACKAGE_IMX_CODEC),y) GST1_IMX_DEPENDENCIES += imx-codec endif ifeq ($(BR2_PACKAGE_IMX_GPU_VIV),y) GST1_IMX_DEPENDENCIES += imx-gpu-viv endif ifeq ($(BR2_PACKAGE_IMX_GPU_G2D),y) GST1_IMX_DEPENDENCIES += imx-gpu-g2d endif ifeq ($(BR2_PACKAGE_GST1_IMX_EGLVISINK),y) # There's no --enable-eglvivsink option ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) GST1_IMX_DEPENDENCIES += xlib_libX11 GST1_IMX_CONF_OPTS += --egl-platform=x11 else ifeq ($(BR2_PACKAGE_WAYLAND),y) GST1_IMX_DEPENDENCIES += wayland GST1_IMX_CONF_OPTS += --egl-platform=wayland else GST1_IMX_CONF_OPTS += --egl-platform=fb endif endif else GST1_IMX_CONF_OPTS += --disable-eglvivsink endif # There's no --enable-g2d option ifeq ($(BR2_PACKAGE_GST1_IMX_G2D),) GST1_IMX_CONF_OPTS += --disable-g2d endif # There's no --enable-ipu option ifeq ($(BR2_PACKAGE_GST1_IMX_IPU),) GST1_IMX_CONF_OPTS += --disable-ipu endif # There's no --enable-mp3encoder option ifeq ($(BR2_PACKAGE_GST1_IMX_MP3ENCODER),) GST1_IMX_CONF_OPTS += --disable-mp3encoder endif # There's no --enable-pxp option ifeq ($(BR2_PACKAGE_GST1_IMX_PXP),) GST1_IMX_CONF_OPTS += --disable-pxp endif # There's no --enable-uniaudiodec option ifeq ($(BR2_PACKAGE_GST1_IMX_UNIAUDIODEC),) GST1_IMX_CONF_OPTS += --disable-uniaudiodec endif ifeq ($(BR2_PACKAGE_GST1_IMX_VPU),y) # There's no --enable-vpu option GST1_IMX_DEPENDENCIES += libimxvpuapi else GST1_IMX_CONF_OPTS += --disable-vpu endif ifeq ($(BR2_PACKAGE_GST1_IMX_V4L2VIDEOSRC),y) # There's no --enable-imxv4l2videosrc option GST1_IMX_DEPENDENCIES += gst1-plugins-bad else GST1_IMX_CONF_OPTS += --disable-imxv4l2videosrc endif ifeq ($(BR2_PACKAGE_GST1_IMX_V4L2VIDEOSINK),y) # There's no --enable-imxv4l2videosink option GST1_IMX_DEPENDENCIES += gst1-plugins-bad else GST1_IMX_CONF_OPTS += --disable-imxv4l2videosink endif $(eval $(waf-package)) ================================================ FILE: package/gstreamer1/gst1-interpipe/Config.in ================================================ config BR2_PACKAGE_GST1_INTERPIPE bool "gst1-interpipe" select BR2_PACKAGE_GSTREAMER1_CHECK select BR2_PACKAGE_GST1_PLUGINS_BASE select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP help GstInterpipe is a Gstreamer plug-in that allows communication between two independent pipelines. https://github.com/RidgeRun/gst-interpipe ================================================ FILE: package/gstreamer1/gst1-interpipe/gst1-interpipe.hash ================================================ # locally computed hash sha256 0fd29d3cba623163dd5852989d7ca21eee9033da9d14a467ccd5e527e3b4297b gst1-interpipe-1.1.7-br1.tar.gz # Hashes for license files: sha256 16d7caa6cabbfd0ca47e064a7b48cb446d013e84ca88c854d6470851752136d5 COPYING ================================================ FILE: package/gstreamer1/gst1-interpipe/gst1-interpipe.mk ================================================ ################################################################################ # # gst1-interpipe # ################################################################################ GST1_INTERPIPE_VERSION = 1.1.7 GST1_INTERPIPE_SITE = https://github.com/RidgeRun/gst-interpipe GST1_INTERPIPE_SITE_METHOD = git # fetch gst-interpipe/common sub module GST1_INTERPIPE_GIT_SUBMODULES = YES GST1_INTERPIPE_LICENSE = LGPL-2.1 GST1_INTERPIPE_LICENSE_FILES = COPYING GST1_INTERPIPE_DEPENDENCIES = host-pkgconf gstreamer1 gst1-plugins-base GST1_INTERPIPE_CONF_OPTS = \ -Dtests=disabled \ -Denable-gtk-doc=false $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gst1-libav/Config.in ================================================ 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). 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. https://gstreamer.freedesktop.org/ ================================================ FILE: package/gstreamer1/gst1-libav/gst1-libav.hash ================================================ # From https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.18.5.tar.xz.sha256sum sha256 822e008a910e9dd13aedbdd8dc63fedef4040c0ee2e927bab3112e9de693a548 gst-libav-1.18.5.tar.xz sha256 f445dc78b88496f7e20c7a2a461b95baba5865c8919b8289ac24ac0a80c6ce7a COPYING ================================================ FILE: package/gstreamer1/gst1-libav/gst1-libav.mk ================================================ ################################################################################ # # gst1-libav # ################################################################################ GST1_LIBAV_VERSION = 1.18.5 GST1_LIBAV_SOURCE = gst-libav-$(GST1_LIBAV_VERSION).tar.xz GST1_LIBAV_SITE = https://gstreamer.freedesktop.org/src/gst-libav GST1_LIBAV_LICENSE = LGPL-2.0+ GST1_LIBAV_LICENSE_FILES = COPYING GST1_LIBAV_DEPENDENCIES = host-pkgconf ffmpeg gstreamer1 gst1-plugins-base GST1_LIBAV_CONF_OPTS = -Ddoc=disabled $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gst1-plugins-bad/Config.in ================================================ menuconfig BR2_PACKAGE_GST1_PLUGINS_BAD bool "gst1-plugins-bad" select BR2_PACKAGE_GST1_PLUGINS_BASE help A set of plug-ins for GStreamer that may be of poor quality or lacking some features. https://gstreamer.freedesktop.org/ if BR2_PACKAGE_GST1_PLUGINS_BAD comment "dependency-less plugins" config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ACCURIP bool "accurip" help Accurip plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ADPCMDEC bool "adpcmdec" help ADPCM decoder config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ADPCMENC bool "adpcmenc" help ADPCM encoder config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AIFF bool "aiff" help Create and parse Audio interchange File Format (AIFF) files config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ASFMUX bool "asfmux" help ASF Muxer Plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOBUFFERSPLIT bool "audiobuffersplit" help Audio buffersplit plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOFXBAD bool "audiofxbad" help Audio filters plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOLATENCY bool "audiolatency" help Audio latency plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXMATRIX bool "audiomixmatrix" help Audio N:M mixer plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOVISUALIZERS bool "audiovisualizers" help Creates video visualizations of audio input config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUTOCONVERT bool "autoconvert" help Selects convertor element based on caps config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_BAYER bool "bayer" help Elements to convert Bayer images config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CAMERABIN2 bool "camerabin2" help Take image snapshots and record movies from camera config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_COLOREFFECTS bool "coloreffects" help Color Look-up Table filters config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DEBUGUTILS bool "debugutils" help Collection of elements that may or may not be useful for debugging config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVBSUBENC bool "dvbsubenc" help DVB subpicture encoding support config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVBSUBOVERLAY bool "dvbsuboverlay" help DVB subtitle renderer plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVDSPU bool "dvdspu" help DVD Sub-picture Overlay element config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FACEOVERLAY bool "faceoverlay" config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FESTIVAL bool "festival" help Synthesizes plain text into audio config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FIELDANALYSIS bool "fieldanalysis" help Video field analysis config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FREEVERB bool "freeverb" help Reverberation/room effect config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FREI0R bool "frei0r" help frei0r plugin library config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GAUDIEFFECTS bool "gaudieffects" help Gaudi video effects config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GEOMETRICTRANSFORM bool "geometrictransform" help Various geometric image transform elements config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GDP bool "gdp" help Payload/depayload GDP packets config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ID3TAG bool "id3tag" help ID3 v1 and v2 muxing plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_INTER bool "inter" help plugin for inter-pipeline communication config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_INTERLACE bool "interlace" help Create an interlaced video stream config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IVFPARSE bool "ivfparse" config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IVTC bool "ivtc" help Inverse Telecine plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_JP2KDECIMATOR bool "jp2kdecimator" config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_JPEGFORMAT bool "jpegformat" help JPEG interchange format plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBRFB bool "librfb" help Connects to a VNC server and decodes RFB stream config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MIDI bool "midi" help MIDI plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGDEMUX bool "mpegdemux" help MPEG-PS demuxer config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX bool "mpegtsdemux" help MPEG TS demuxer config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSMUX bool "mpegtsmux" help MPEG-TS muxer config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGPSMUX bool "mpegpsmux" help MPEG-PS muxer config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MXF bool "mxf" help MXF plugin library config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NETSIM bool "netsim" config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ONVIF bool "onvif" config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PCAPPARSE bool "pcapparse" help Element parsing raw pcap streams config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PNM bool "pnm" help PNM plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PROXY bool "proxy" help Proxy plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE bool "rawparse" help Parses byte streams into raw frames config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_REMOVESILENCE bool "removesilence" help Removes silence from an audio stream config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RIST bool "rist" help RIST streaming config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTMP2 bool "rtmp2" help RTMP sink/source (rtmp2sink, rtmp2src) config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTP2 bool "rtp" help RTP (rtpsrc/rtpsink) config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTMP bool "rtmp" select BR2_PACKAGE_RTMPDUMP help RTMP plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDP bool "sdp" help configure streaming sessions using SDP config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SEGMENTCLIP bool "segmentclip" help Segment clip elements config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SIREN bool "siren" help Siren encoder/decoder/payloader/depayloader plugins config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SMOOTH bool "smooth" help Apply a smooth filter to an image config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SPEED bool "speed" help Set speed/pitch on audio/raw streams (resampler) config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SUBENC bool "subenc" help subtitle encoders config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SWITCHBIN bool "switchbin" help Switching between paths based on input caps config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TIMECODE bool "timecode" config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOFILTERS bool "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_VIDEOPARSERS bool "videoparsers" help videoparsers config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOSIGNAL bool "videosignal" config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VMNC bool "vmnc" config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_Y4M bool "y4m" help Demuxes/decodes YUV4MPEG streams comment "plugins with external dependencies" config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ASSRENDER bool "assrender" depends on BR2_INSTALL_LIBSTDCPP # libass -> harfbuzz depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libass -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # libass -> harfbuzz select BR2_PACKAGE_LIBASS comment "assrender plugin needs a toolchain w/ C++, gcc => 4.8" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_BLUEZ bool "bluez" depends on BR2_USE_WCHAR # bluez5_utils -> libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # bluez5_utils -> dbus, libglib2 depends on BR2_USE_MMU # bluez5_utils -> dbus depends on !BR2_STATIC_LIBS # bluez5_utils -> uses dlfcn depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # bluez5_utils depends on BR2_TOOLCHAIN_HAS_SYNC_4 # bluez5_utils select BR2_PACKAGE_BLUEZ5_UTILS select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO # runtime help Bluetooth audio A2DP/AVDTP sink, AVDTP source plugin comment "bluez plugin needs a toolchain w/ wchar, threads, headers >= 3.4, dynamic library" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 || BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_MMU config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_BZ2 bool "bz2" select BR2_PACKAGE_BZIP2 help Compress or decompress streams config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CURL bool "curl" select BR2_PACKAGE_LIBCURL help libcurl-based elements config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DASH bool "dash" select BR2_PACKAGE_LIBXML2 help DASH demuxer plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DECKLINK bool "decklink" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS # help Blackmagic Decklink plugin comment "decklink needs a toolchain w/ C++, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DIRECTFB bool "directfb" default y depends on BR2_PACKAGE_DIRECTFB config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVB bool "dvb" # FEC_2_5 / QAM_4_NR definitions depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 select BR2_PACKAGE_DTV_SCAN_TABLES help DVB elements 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" select BR2_PACKAGE_FAAD2 help Free AAC Decoder (FAAD) config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FBDEV bool "fbdev" help Linux framebuffer video sink config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FDK_AAC bool "fdk-aac" depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_FDK_AAC help MPEG AAC encoder/decoder comment "fdk-aac needs a toolchain w/ C++" depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FLUIDSYNTH bool "fluidsynth" depends on !BR2_STATIC_LIBS # fluidsynth depends on BR2_USE_WCHAR # fluidsynth depends on BR2_TOOLCHAIN_HAS_THREADS # fluidsynth depends on BR2_USE_MMU # fluidsynth select BR2_PACKAGE_FLUIDSYNTH help Fluidsynth MIDI decoder plugin comment "fluidsynth needs a toolchain w/ threads, wchar, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL bool "gl" default y depends on BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL comment "gl needs the gst1-plugins-base opengl library" depends on !BR2_PACKAGE_GST1_PLUGINS_BASE_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_KMS bool "kmssink" depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm -> libpthread-stubs select BR2_PACKAGE_LIBDRM help KMS video sink config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBMMS bool "libmms" depends on BR2_USE_WCHAR # libmms -> libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libmms -> libglib2 select BR2_PACKAGE_LIBMMS help Microsoft Multi Media Server streaming protocol support comment "libmms needs a toolchain w/ wchar, threads" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DTLS bool "dtls" select BR2_PACKAGE_OPENSSL help DTLS plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TTML bool "ttml" depends on BR2_USE_WCHAR # pango -> glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # pango -> glib2 depends on BR2_INSTALL_LIBSTDCPP # pango -> freetype depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz select BR2_PACKAGE_CAIRO select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_PANGO help Timed Text Markup Language (TTML) subtitle plugin comment "ttml needs a toolchain w/ wchar, threads, C++" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEG2ENC bool "mpeg2enc" depends on BR2_USE_MMU # fork depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBMPEG2 select BR2_PACKAGE_MJPEGTOOLS help High-quality MPEG-1/2 video encoder comment "mpeg2enc needs a toolchain w/ threads, C++" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MUSEPACK bool "musepack" select BR2_PACKAGE_MUSEPACK config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NEON bool "neon" select BR2_PACKAGE_NEON help lib neon http client src config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENAL bool "openal" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_PAKCAGE_OPENAL_ARCH_SUPPORTS select BR2_PACKAGE_OPENAL comment "openal plugin needs a toolchain w/ NPTL, C++, gcc >= 4.9" depends on BR2_PAKCAGE_OPENAL_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL \ || !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENH264 bool "openh264" depends on BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP # libopenh264 depends on !BR2_STATIC_LIBS # libopenh264 depends on BR2_TOOLCHAIN_HAS_THREADS # libopenh264 select BR2_PACKAGE_LIBOPENH264 help OpenH264 based encoding/decoding plugin comment "openh264 plugin needs a toolchain w/ C++, dynamic library, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS depends on BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENJPEG bool "openjpeg" select BR2_PACKAGE_OPENJPEG help GStreamer OpenJPEG plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPUS bool "opus" select BR2_PACKAGE_OPUS help OPUS plugin library config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RSVG bool "rsvg" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # librsvg depends on BR2_INSTALL_LIBSTDCPP # librsvg -> pango depends on BR2_TOOLCHAIN_HAS_SYNC_4 # librsvg -> pango -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # librsvg -> pango -> harfbuzz select BR2_PACKAGE_LIBRSVG help RSVG plugin library comment "rsvg plugin needs a toolchain w/ C++, gcc >= 4.8" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_HAS_SYNC_4 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SBC bool "sbc" select BR2_PACKAGE_SBC config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SCTP bool "sctp" depends on BR2_TOOLCHAIN_HAS_SYNC_4 # __sync_*_4 intrinsics 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_SRTP bool "srtp" select BR2_PACKAGE_LIBSRTP config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VOAACENC bool "voaacenc" select BR2_PACKAGE_VO_AACENC config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WAYLAND bool "wayland" default y depends on BR2_PACKAGE_WAYLAND depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm -> libpthread-stubs select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_WAYLAND_PROTOCOLS help 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_WEBRTC bool "webrtc" depends on !BR2_STATIC_LIBS # libnice -> gnutls select BR2_PACKAGE_GST1_PLUGINS_BASE # libgstsdp select BR2_PACKAGE_LIBNICE help WebRTC plugins (webrtcbin - a bin for webrtc connections) comment "webrtc needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTCDSP bool "webrtcdsp" # All depends from webrtc-audio-processing depends on BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING help WebRTC echo-cancellation, gain control and noise suppression comment "webrtcdsp needs a toolchain w/ C++, NPTL, gcc >= 4.8" depends on BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WPE bool "wpe" default y depends on BR2_PACKAGE_WPEWEBKIT depends on BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL depends on !BR2_PACKAGE_WPEWEBKIT_MEDIA_STREAM comment "wpe needs the gst1-plugins-base opengl library and wpewebkit" depends on !BR2_PACKAGE_WPEWEBKIT \ || !BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL comment "wpe is incompatible w/ wpewebkit media-stream support" depends on BR2_PACKAGE_WPEWEBKIT depends on BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL depends on BR2_PACKAGE_WPEWEBKIT_MEDIA_STREAM config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_V4L2CODECS bool "v4l2codecs" depends on BR2_PACKAGE_HAS_UDEV # libgudev select BR2_PACKAGE_LIBGUDEV help Video4Linux Stateless CODECs support 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 comment "x265 needs a toolchain w/ C++, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS config BR2_PACKAGE_GST1_PLUGINS_BAD_ZBAR bool "zbar" depends on BR2_TOOLCHAIN_HAS_THREADS # zbar-> libv4l depends on BR2_USE_MMU # zbar-> libv4l depends on BR2_INSTALL_LIBSTDCPP # zbar-> libv4l depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # zbar -> libv4l select BR2_PACKAGE_ZBAR comment "zbar plugin needs a toolchain w/ threads, C++ and headers >= 3.0" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 endif ================================================ FILE: package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.hash ================================================ # From https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.18.5.tar.xz.sha256sum sha256 a164923b94f0d08578a6fcaeaac6e0c05da788a46903a1086870e9ca45ad678e gst-plugins-bad-1.18.5.tar.xz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk ================================================ ################################################################################ # # gst1-plugins-bad # ################################################################################ GST1_PLUGINS_BAD_VERSION = 1.18.5 GST1_PLUGINS_BAD_SOURCE = gst-plugins-bad-$(GST1_PLUGINS_BAD_VERSION).tar.xz GST1_PLUGINS_BAD_SITE = https://gstreamer.freedesktop.org/src/gst-plugins-bad GST1_PLUGINS_BAD_INSTALL_STAGING = YES # Additional plugin licenses will be appended to GST1_PLUGINS_BAD_LICENSE and # GST1_PLUGINS_BAD_LICENSE_FILES if enabled. GST1_PLUGINS_BAD_LICENSE_FILES = COPYING GST1_PLUGINS_BAD_LICENSE = LGPL-2.0+ GST1_PLUGINS_BAD_CPE_ID_VENDOR = freedesktop GST1_PLUGINS_BAD_CPE_ID_PRODUCT = gst-plugins-bad GST1_PLUGINS_BAD_CFLAGS = $(TARGET_CFLAGS) -std=c99 -D_GNU_SOURCE GST1_PLUGINS_BAD_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) GST1_PLUGINS_BAD_CONF_OPTS = \ -Dexamples=disabled \ -Dtests=disabled \ -Ddirectsound=disabled \ -Dd3dvideosink=disabled \ -Dwinks=disabled \ -Dandroidmedia=disabled \ -Dapplemedia=disabled \ -Dgobject-cast-checks=disabled \ -Dglib-asserts=disabled \ -Dglib-checks=disabled \ -Dextra-checks=disabled \ -Ddoc=disabled # Options which require currently unpackaged libraries GST1_PLUGINS_BAD_CONF_OPTS += \ -Davtp=disabled \ -Dopensles=disabled \ -Duvch264=disabled \ -Dmsdk=disabled \ -Dvoamrwbenc=disabled \ -Dbs2b=disabled \ -Dchromaprint=disabled \ -Dd3d11=disabled \ -Ddc1394=disabled \ -Ddts=disabled \ -Dresindvd=disabled \ -Dfaac=disabled \ -Dflite=disabled \ -Dgsm=disabled \ -Dkate=disabled \ -Dladspa=disabled \ -Dlv2=disabled \ -Dmediafoundation=disabled \ -Dmicrodns=disabled \ -Dlibde265=disabled \ -Dmodplug=disabled \ -Dmplex=disabled \ -Dofa=disabled \ -Dopenexr=disabled \ -Dopenni2=disabled \ -Dteletext=disabled \ -Dwildmidi=disabled \ -Dsmoothstreaming=disabled \ -Dsoundtouch=disabled \ -Dgme=disabled \ -Dspandsp=disabled \ -Dsvthevcenc=disabled \ -Dtranscode=disabled \ -Dwasapi2=disabled \ -Dzxing=disabled \ -Dmagicleap=disabled \ -Diqa=disabled \ -Dopencv=disabled GST1_PLUGINS_BAD_DEPENDENCIES = gst1-plugins-base gstreamer1 ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dintrospection=enabled GST1_PLUGINS_BAD_DEPENDENCIES += gobject-introspection else GST1_PLUGINS_BAD_CONF_OPTS += -Dintrospection=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WAYLAND),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dwayland=enabled GST1_PLUGINS_BAD_DEPENDENCIES += libdrm wayland wayland-protocols else GST1_PLUGINS_BAD_CONF_OPTS += -Dwayland=disabled endif ifeq ($(BR2_PACKAGE_ORC),y) GST1_PLUGINS_BAD_DEPENDENCIES += orc GST1_PLUGINS_BAD_CONF_OPTS += -Dorc=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dorc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_BLUEZ),y) GST1_PLUGINS_BAD_DEPENDENCIES += bluez5_utils GST1_PLUGINS_BAD_CONF_OPTS += -Dbluez=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dbluez=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ACCURIP),y) GST1_PLUGINS_BAD_CONF_OPTS += -Daccurip=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Daccurip=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ADPCMDEC),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dadpcmdec=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dadpcmdec=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ADPCMENC),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dadpcmenc=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dadpcmenc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AIFF),y) GST1_PLUGINS_BAD_CONF_OPTS += -Daiff=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Daiff=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ASFMUX),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dasfmux=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dasfmux=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOBUFFERSPLIT),y) GST1_PLUGINS_BAD_CONF_OPTS += -Daudiobuffersplit=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Daudiobuffersplit=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOFXBAD),y) GST1_PLUGINS_BAD_CONF_OPTS += -Daudiofxbad=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Daudiofxbad=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOLATENCY),y) GST1_PLUGINS_BAD_CONF_OPTS += -Daudiolatency=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Daudiolatency=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXMATRIX),y) GST1_PLUGINS_BAD_CONF_OPTS += -Daudiomixmatrix=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Daudiomixmatrix=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOVISUALIZERS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Daudiovisualizers=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Daudiovisualizers=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUTOCONVERT),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dautoconvert=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dautoconvert=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_BAYER),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dbayer=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dbayer=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CAMERABIN2),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dcamerabin2=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dcamerabin2=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_COLOREFFECTS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dcoloreffects=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dcoloreffects=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DEBUGUTILS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Ddebugutils=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Ddebugutils=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVBSUBENC),y) GST1_PLUGINS_BAD_CONF_OPTS += -Ddvbsubenc=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Ddvbsubenc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVBSUBOVERLAY),y) GST1_PLUGINS_BAD_CONF_OPTS += -Ddvbsuboverlay=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Ddvbsuboverlay=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVDSPU),y) GST1_PLUGINS_BAD_CONF_OPTS += -Ddvdspu=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Ddvdspu=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FACEOVERLAY),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dfaceoverlay=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dfaceoverlay=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FESTIVAL),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dfestival=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dfestival=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FIELDANALYSIS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dfieldanalysis=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dfieldanalysis=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FREEVERB),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dfreeverb=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dfreeverb=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FREI0R),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dfrei0r=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dfrei0r=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GAUDIEFFECTS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dgaudieffects=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dgaudieffects=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GEOMETRICTRANSFORM),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dgeometrictransform=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dgeometrictransform=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GDP),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dgdp=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dgdp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ID3TAG),y) GST1_PLUGINS_BAD_CONF_OPTS += -Did3tag=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Did3tag=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_INTER),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dinter=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dinter=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_INTERLACE),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dinterlace=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dinterlace=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IVFPARSE),y) GST1_PLUGINS_BAD_CONF_OPTS += -Divfparse=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Divfparse=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IVTC),y) GST1_PLUGINS_BAD_CONF_OPTS += -Divtc=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Divtc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_JP2KDECIMATOR),y) GST1_PLUGINS_BAD_CONF_OPTS += -Djp2kdecimator=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Djp2kdecimator=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_JPEGFORMAT),y) GST1_PLUGINS_BAD_CONF_OPTS += -Djpegformat=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Djpegformat=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBRFB),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dlibrfb=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dlibrfb=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MIDI),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dmidi=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dmidi=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGDEMUX),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dmpegdemux=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dmpegdemux=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGPSMUX),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dmpegpsmux=enabled GST1_PLUGINS_BAD_HAS_UNKNOWN_LICENSE = y else GST1_PLUGINS_BAD_CONF_OPTS += -Dmpegpsmux=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSMUX),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dmpegtsmux=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dmpegtsmux=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dmpegtsdemux=enabled GST1_PLUGINS_BAD_HAS_UNKNOWN_LICENSE = y else GST1_PLUGINS_BAD_CONF_OPTS += -Dmpegtsdemux=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MXF),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dmxf=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dmxf=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NETSIM),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dnetsim=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dnetsim=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ONVIF),y) GST1_PLUGINS_BAD_CONF_OPTS += -Donvif=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Donvif=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PCAPPARSE),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dpcapparse=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dpcapparse=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PNM),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dpnm=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dpnm=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PROXY),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dproxy=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dproxy=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE),y) GST1_PLUGINS_BAD_CONF_OPTS += -Drawparse=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Drawparse=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_REMOVESILENCE),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dremovesilence=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dremovesilence=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RIST),y) GST1_PLUGINS_BAD_CONF_OPTS += -Drist=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Drist=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTMP2),y) GST1_PLUGINS_BAD_CONF_OPTS += -Drtmp2=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Drtmp2=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTP2),y) GST1_PLUGINS_BAD_CONF_OPTS += -Drtp=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Drtp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTMP),y) GST1_PLUGINS_BAD_CONF_OPTS += -Drtmp=enabled GST1_PLUGINS_BAD_DEPENDENCIES += rtmpdump else GST1_PLUGINS_BAD_CONF_OPTS += -Drtmp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDP),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dsdp=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dsdp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SEGMENTCLIP),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dsegmentclip=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dsegmentclip=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SIREN),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dsiren=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dsiren=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SMOOTH),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dsmooth=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dsmooth=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SPEED),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dspeed=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dspeed=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SUBENC),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dsubenc=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dsubenc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SWITCHBIN),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dswitchbin=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dswitchbin=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TIMECODE),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dtimecode=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dtimecode=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOFILTERS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dvideofilters=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dvideofilters=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOFRAME_AUDIOLEVEL),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dvideoframe_audiolevel=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dvideoframe_audiolevel=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOPARSERS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dvideoparsers=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dvideoparsers=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOSIGNAL),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dvideosignal=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dvideosignal=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VMNC),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dvmnc=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dvmnc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_Y4M),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dy4m=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dy4m=disabled endif # Plugins with dependencies ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ASSRENDER),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dassrender=enabled GST1_PLUGINS_BAD_DEPENDENCIES += libass else GST1_PLUGINS_BAD_CONF_OPTS += -Dassrender=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_BZ2),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dbz2=enabled GST1_PLUGINS_BAD_DEPENDENCIES += bzip2 else GST1_PLUGINS_BAD_CONF_OPTS += -Dbz2=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CURL),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dcurl=enabled GST1_PLUGINS_BAD_DEPENDENCIES += libcurl else GST1_PLUGINS_BAD_CONF_OPTS += -Dcurl=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DASH),y) GST1_PLUGINS_BAD_CONF_OPTS += -Ddash=enabled GST1_PLUGINS_BAD_DEPENDENCIES += libxml2 else GST1_PLUGINS_BAD_CONF_OPTS += -Ddash=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DECKLINK),y) GST1_PLUGINS_BAD_CONF_OPTS += -Ddecklink=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Ddecklink=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DIRECTFB),y) GST1_PLUGINS_BAD_CONF_OPTS += -Ddirectfb=enabled GST1_PLUGINS_BAD_DEPENDENCIES += directfb else GST1_PLUGINS_BAD_CONF_OPTS += -Ddirectfb=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVB),y) GST1_PLUGINS_BAD_CONF_OPTS += -Ddvb=enabled GST1_PLUGINS_BAD_DEPENDENCIES += dtv-scan-tables else GST1_PLUGINS_BAD_CONF_OPTS += -Ddvb=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FAAD),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dfaad=enabled GST1_PLUGINS_BAD_DEPENDENCIES += faad2 GST1_PLUGINS_BAD_HAS_GPL_LICENSE = y else GST1_PLUGINS_BAD_CONF_OPTS += -Dfaad=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FBDEV),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dfbdev=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dfbdev=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FDK_AAC),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dfdkaac=enabled GST1_PLUGINS_BAD_DEPENDENCIES += fdk-aac else GST1_PLUGINS_BAD_CONF_OPTS += -Dfdkaac=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FLUIDSYNTH),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dfluidsynth=enabled GST1_PLUGINS_BAD_DEPENDENCIES += fluidsynth else GST1_PLUGINS_BAD_CONF_OPTS += -Dfluidsynth=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dgl=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dgl=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HLS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dhls=enabled ifeq ($(BR2_PACKAGE_NETTLE),y) GST1_PLUGINS_BAD_DEPENDENCIES += nettle GST1_PLUGINS_BAD_CONF_OPTS += -Dhls-crypto='nettle' else ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) GST1_PLUGINS_BAD_DEPENDENCIES += libgcrypt GST1_PLUGINS_BAD_CONF_OPTS += -Dhls-crypto='libgcrypt' else GST1_PLUGINS_BAD_DEPENDENCIES += openssl GST1_PLUGINS_BAD_CONF_OPTS += -Dhls-crypto='openssl' endif else GST1_PLUGINS_BAD_CONF_OPTS += -Dhls=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_KMS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dkms=enabled GST1_PLUGINS_BAD_DEPENDENCIES += libdrm else GST1_PLUGINS_BAD_CONF_OPTS += -Dkms=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBMMS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dlibmms=enabled GST1_PLUGINS_BAD_DEPENDENCIES += libmms else GST1_PLUGINS_BAD_CONF_OPTS += -Dlibmms=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DTLS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Ddtls=enabled GST1_PLUGINS_BAD_DEPENDENCIES += openssl GST1_PLUGINS_BAD_HAS_BSD2C_LICENSE = y else GST1_PLUGINS_BAD_CONF_OPTS += -Ddtls=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TTML),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dttml=enabled GST1_PLUGINS_BAD_DEPENDENCIES += cairo libxml2 pango else GST1_PLUGINS_BAD_CONF_OPTS += -Dttml=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEG2ENC),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dmpeg2enc=enabled GST1_PLUGINS_BAD_DEPENDENCIES += libmpeg2 mjpegtools GST1_PLUGINS_BAD_HAS_GPL_LICENSE = y else GST1_PLUGINS_BAD_CONF_OPTS += -Dmpeg2enc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MUSEPACK),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dmusepack=enabled GST1_PLUGINS_BAD_DEPENDENCIES += musepack else GST1_PLUGINS_BAD_CONF_OPTS += -Dmusepack=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NEON),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dneon=enabled GST1_PLUGINS_BAD_DEPENDENCIES += neon else GST1_PLUGINS_BAD_CONF_OPTS += -Dneon=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENAL),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dopenal=enabled GST1_PLUGINS_BAD_DEPENDENCIES += openal else GST1_PLUGINS_BAD_CONF_OPTS += -Dopenal=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENH264),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dopenh264=enabled GST1_PLUGINS_BAD_DEPENDENCIES += libopenh264 GST1_PLUGINS_BAD_HAS_BSD2C_LICENSE = y else GST1_PLUGINS_BAD_CONF_OPTS += -Dopenh264=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENJPEG),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dopenjpeg=enabled GST1_PLUGINS_BAD_DEPENDENCIES += openjpeg else GST1_PLUGINS_BAD_CONF_OPTS += -Dopenjpeg=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPUS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dopus=enabled GST1_PLUGINS_BAD_DEPENDENCIES += opus else GST1_PLUGINS_BAD_CONF_OPTS += -Dopus=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RSVG),y) GST1_PLUGINS_BAD_CONF_OPTS += -Drsvg=enabled GST1_PLUGINS_BAD_DEPENDENCIES += librsvg else GST1_PLUGINS_BAD_CONF_OPTS += -Drsvg=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SBC),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dsbc=enabled GST1_PLUGINS_BAD_DEPENDENCIES += sbc else GST1_PLUGINS_BAD_CONF_OPTS += -Dsbc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SCTP),y) GST1_PLUGINS_BAD_CONF_OPTS += \ -Dsctp=enabled \ -Dsctp-internal-usrsctp=enabled else GST1_PLUGINS_BAD_CONF_OPTS += \ -Dsctp=disabled \ -Dsctp-internal-usrsctp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SHM),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dshm=enabled else GST1_PLUGINS_BAD_CONF_OPTS += -Dshm=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SNDFILE),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dsndfile=enabled GST1_PLUGINS_BAD_DEPENDENCIES += libsndfile else GST1_PLUGINS_BAD_CONF_OPTS += -Dsndfile=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SRTP),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dsrtp=enabled GST1_PLUGINS_BAD_DEPENDENCIES += libsrtp else GST1_PLUGINS_BAD_CONF_OPTS += -Dsrtp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VOAACENC),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dvoaacenc=enabled GST1_PLUGINS_BAD_DEPENDENCIES += vo-aacenc else GST1_PLUGINS_BAD_CONF_OPTS += -Dvoaacenc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBP),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dwebp=enabled GST1_PLUGINS_BAD_DEPENDENCIES += webp else GST1_PLUGINS_BAD_CONF_OPTS += -Dwebp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTC),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dwebrtc=enabled GST1_PLUGINS_BAD_DEPENDENCIES += gst1-plugins-base libnice else GST1_PLUGINS_BAD_CONF_OPTS += -Dwebrtc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTCDSP),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dwebrtcdsp=enabled GST1_PLUGINS_BAD_DEPENDENCIES += webrtc-audio-processing else GST1_PLUGINS_BAD_CONF_OPTS += -Dwebrtcdsp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WPE),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dwpe=enabled GST1_PLUGINS_BAD_DEPENDENCIES += libwpe wpewebkit wpebackend-fdo else GST1_PLUGINS_BAD_CONF_OPTS += -Dwpe=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_V4L2CODECS),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dv4l2codecs=enabled GST1_PLUGINS_BAD_DEPENDENCIES += libgudev else GST1_PLUGINS_BAD_CONF_OPTS += -Dv4l2codecs=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_X265),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dx265=enabled GST1_PLUGINS_BAD_DEPENDENCIES += x265 GST1_PLUGINS_BAD_HAS_GPL_LICENSE = y else GST1_PLUGINS_BAD_CONF_OPTS += -Dx265=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_ZBAR),y) GST1_PLUGINS_BAD_CONF_OPTS += -Dzbar=enabled GST1_PLUGINS_BAD_DEPENDENCIES += zbar else GST1_PLUGINS_BAD_CONF_OPTS += -Dzbar=disabled endif # Add GPL license if GPL licensed plugins enabled. ifeq ($(GST1_PLUGINS_BAD_HAS_GPL_LICENSE),y) GST1_PLUGINS_BAD_LICENSE += , GPL-2.0+ GST1_PLUGINS_BAD_LICENSE_FILES += COPYING endif # Add BSD license if BSD licensed plugins enabled. ifeq ($(GST1_PLUGINS_BAD_HAS_BSD2C_LICENSE),y) GST1_PLUGINS_BAD_LICENSE += , BSD-2-Clause endif # Add Unknown license if Unknown licensed plugins enabled. ifeq ($(GST1_PLUGINS_BAD_HAS_UNKNOWN_LICENSE),y) GST1_PLUGINS_BAD_LICENSE += , UNKNOWN endif # Use the following command to extract license info for plugins. # # find . -name 'plugin-*.xml' | xargs grep license $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gst1-plugins-base/0001-gst-libs-gst-video-gstvideoaggregator.c-fix-build-wi.patch ================================================ From 012ca1bcd234ee02f576dd58b1f09baba18b89b0 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 14 Dec 2020 07:42:55 +0100 Subject: [PATCH] gst-libs/gst/video/gstvideoaggregator.c: fix build with gcc 4.8 Fix the following build failure with gcc 4.8 which has been added with https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/commit/d268c193ad39fb970351ed62898be806ebd0a71e: ../gst-libs/gst/video/gstvideoaggregator.c: In function 'gst_video_aggregator_init': ../gst-libs/gst/video/gstvideoaggregator.c:2762:3: error: 'for' loop initial declarations are only allowed in C99 mode for (gint i = 0; i < gst_caps_get_size (src_template); i++) { ^ Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/974] --- gst-libs/gst/video/gstvideoaggregator.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c index 2e3d813be..04dad6563 100644 --- a/gst-libs/gst/video/gstvideoaggregator.c +++ b/gst-libs/gst/video/gstvideoaggregator.c @@ -2786,6 +2786,7 @@ gst_video_aggregator_init (GstVideoAggregator * vagg, { GstCaps *src_template; GstPadTemplate *pad_template; + gint i; vagg->priv = gst_video_aggregator_get_instance_private (vagg); vagg->priv->current_caps = NULL; @@ -2800,7 +2801,7 @@ gst_video_aggregator_init (GstVideoAggregator * vagg, pad_template = gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "src"); src_template = gst_pad_template_get_caps (pad_template); - for (gint i = 0; i < gst_caps_get_size (src_template); i++) { + for (i = 0; i < gst_caps_get_size (src_template); i++) { const GValue *v = gst_structure_get_value (gst_caps_get_structure (src_template, i), "format"); -- 2.29.2 ================================================ FILE: package/gstreamer1/gst1-plugins-base/Config.in ================================================ menuconfig BR2_PACKAGE_GST1_PLUGINS_BASE bool "gst1-plugins-base" select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXV if BR2_PACKAGE_XORG7 help A basic set of well-supported plug-ins for GStreamer. https://gstreamer.freedesktop.org/ if BR2_PACKAGE_GST1_PLUGINS_BASE config BR2_PACKAGE_GST1_PLUGINS_BASE_INSTALL_TOOLS bool "install tools" help Install the gst-discoverer, gst-device-monitor and gst-play tools. comment "dependency-less plugins" config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ADDER bool "adder" help Adds multiple streams config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP bool "app" help Elements used to communicate with applications config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT bool "audioconvert (mandatory for audio playback)" default y help Convert audio to different formats config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOMIXER bool "audiomixer" help Audio mixer plugin config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORATE bool "audiorate" help Adjusts audio frames config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOTESTSRC bool "audiotestsrc" help Creates audio test signals of given frequency and volume config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_COMPOSITOR bool "compositor" help Video compositor plugin config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ENCODING bool "encoding" help various encoding-related elements config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT bool "videoconvert" help Colorspace conversion config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_GIO bool "gio" help GIO elements config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_GIO_TYPEFINDER bool "gio-typefinder" help GIO typefinder elements config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OVERLAYCOMPOSITION bool "overlaycomposition" help Overlaycomposition plugin. config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PLAYBACK bool "playback" default y select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_TYPEFIND help various playback elements config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE bool "audioresample (mandatory for audio playback)" default y help Resamples audio config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_RAWPARSE bool "rawparse" help Parses byte streams into raw frames config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_SUBPARSE bool "subparse" help Subtitle parsing config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_TCP bool "tcp" help transfer data over the network via TCP config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_TYPEFIND bool "typefind" default y help default typefind functions config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOTESTSRC bool "videotestsrc" help Creates a test video stream config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEORATE bool "videorate" help Adjusts video frames config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE bool "videoscale (mandatory for video playback)" default y help Resizes video config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME bool "volume (mandatory for audio playback)" default y help plugin for controlling audio volume comment "plugins with external dependencies" menuconfig BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL bool "opengl" depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES if BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL config BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL def_bool BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_WINDOW comment "The opengl library needs an API, a platform and a window system" depends on !BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL comment "APIs" config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API bool config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL bool "opengl" default y depends on BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_LIBGLU select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API comment "opengl needs an OpenGL backend" depends on !BR2_PACKAGE_HAS_LIBGL config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_GLES2 bool "gles2" default y depends on BR2_PACKAGE_HAS_LIBGLES select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API comment "gles2 needs an OpenGL ES backend" depends on !BR2_PACKAGE_HAS_LIBGLES comment "Platforms" config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM bool config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_GLX bool "glx" default y depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL depends on BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR # mesa needs big X depends on !BR2_PACKAGE_RPI_USERLAND # x11 select BR2_PACKAGE_XLIB_LIBXRENDER select BR2_PACKAGE_XORGPROTO select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_X11 select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM help OpenGL Extension to the X Window System comment "glx not supported with rpi-userland" depends on BR2_PACKAGE_RPI_USERLAND comment "glx needs the opengl API and modular X.org" depends on !BR2_PACKAGE_RPI_USERLAND && \ (!BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL || \ !BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR) config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL bool "egl" default y depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API depends on BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM comment "egl needs an API and an EGL backend" depends on !BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API || \ !BR2_PACKAGE_HAS_LIBEGL comment "Window systems" config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_WINDOW bool config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_X11 bool "x11" default y depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM depends on !BR2_PACKAGE_RPI_USERLAND depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_WINDOW comment "x11 not supported with rpi-userland" depends on BR2_PACKAGE_RPI_USERLAND comment "x11 needs a platform and X.org" depends on !BR2_PACKAGE_RPI_USERLAND && \ (!BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM || \ !BR2_PACKAGE_XORG7) config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_WAYLAND bool "wayland" default y depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL depends on BR2_PACKAGE_WAYLAND select BR2_PACKAGE_WAYLAND_PROTOCOLS select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_WINDOW comment "wayland needs the egl platform and the wayland package" depends on !BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL || \ !BR2_PACKAGE_WAYLAND config BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_DISPMANX bool "dispmanx" default y depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL depends on BR2_PACKAGE_RPI_USERLAND select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_WINDOW help Raspberry Pi's Dispmanx windowing system comment "dispmanx needs the egl platform and rpi-userland" depends on !BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL || \ !BR2_PACKAGE_RPI_USERLAND endif comment "opengl needs an OpenGL or OpenGL ES backend" depends on !BR2_PACKAGE_HAS_LIBGL && !BR2_PACKAGE_HAS_LIBGLES config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA bool "alsa (mandatory for audio playback)" 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 config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_TREMOR bool "tremor" select BR2_PACKAGE_TREMOR help Vorbis Tremor decoder config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OGG bool "ogg (*.ogg audio/video)" select BR2_PACKAGE_LIBOGG 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 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # pango -> harfbuzz select BR2_PACKAGE_PANGO help Pango-based text rendering and overlay comment "pango plugin needs a toolchain w/ C++, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_HAS_SYNC_4 config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_THEORA bool "theora (*.ogg video)" select BR2_PACKAGE_LIBTHEORA help Theora plugin library config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VORBIS bool "vorbis (*.ogg audio)" select BR2_PACKAGE_LIBVORBIS help Vorbis plugin library endif ================================================ FILE: package/gstreamer1/gst1-plugins-base/gst1-plugins-base.hash ================================================ # From https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.18.5.tar.xz.sha256sum sha256 960b7af4585700db0fdd5b843554e11e2564fed9e061f591fae88a7be6446fa3 gst-plugins-base-1.18.5.tar.xz sha256 f445dc78b88496f7e20c7a2a461b95baba5865c8919b8289ac24ac0a80c6ce7a COPYING ================================================ FILE: package/gstreamer1/gst1-plugins-base/gst1-plugins-base.mk ================================================ ################################################################################ # # gst1-plugins-base # ################################################################################ GST1_PLUGINS_BASE_VERSION = 1.18.5 GST1_PLUGINS_BASE_SOURCE = gst-plugins-base-$(GST1_PLUGINS_BASE_VERSION).tar.xz GST1_PLUGINS_BASE_SITE = https://gstreamer.freedesktop.org/src/gst-plugins-base GST1_PLUGINS_BASE_INSTALL_STAGING = YES GST1_PLUGINS_BASE_LICENSE_FILES = COPYING GST1_PLUGINS_BASE_LICENSE = LGPL-2.0+, LGPL-2.1+ GST1_PLUGINS_BASE_CONF_OPTS = \ -Dexamples=disabled \ -Dtests=disabled \ -Dgobject-cast-checks=disabled \ -Dglib-asserts=disabled \ -Dglib-checks=disabled \ -Ddoc=disabled # Options which require currently unpackaged libraries GST1_PLUGINS_BASE_CONF_OPTS += \ -Dcdparanoia=disabled \ -Dlibvisual=disabled \ -Diso-codes=disabled ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_INSTALL_TOOLS),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dtools=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dtools=disabled endif GST1_PLUGINS_BASE_DEPENDENCIES = gstreamer1 $(TARGET_NLS_DEPENDENCIES) GST1_PLUGINS_BASE_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) # These plugins are listed in the order from ./configure --help ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dintrospection=enabled GST1_PLUGINS_BASE_DEPENDENCIES += gobject-introspection else GST1_PLUGINS_BASE_CONF_OPTS += -Dintrospection=disabled endif ifeq ($(BR2_PACKAGE_ORC),y) GST1_PLUGINS_BASE_DEPENDENCIES += orc GST1_PLUGINS_BASE_CONF_OPTS += -Dorc=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dorc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API)$(BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM)$(BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_WINDOW),yyy) GST1_PLUGINS_BASE_CONF_OPTS += -Dgl=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dgl=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL),y) GST1_PLUGINS_BASE_GL_API_LIST = opengl GST1_PLUGINS_BASE_DEPENDENCIES += libgl libglu endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_GLES2),y) GST1_PLUGINS_BASE_GL_API_LIST += gles2 GST1_PLUGINS_BASE_DEPENDENCIES += libgles endif GST1_PLUGINS_BASE_CONF_OPTS += -Dgl_api='$(subst $(space),$(comma),$(GST1_PLUGINS_BASE_GL_API_LIST))' ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_GLX),y) GST1_PLUGINS_BASE_GL_PLATFORM_LIST += glx GST1_PLUGINS_BASE_DEPENDENCIES += xorgproto xlib_libXrender endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL),y) GST1_PLUGINS_BASE_GL_PLATFORM_LIST += egl GST1_PLUGINS_BASE_DEPENDENCIES += libegl endif GST1_PLUGINS_BASE_CONF_OPTS += -Dgl_platform='$(subst $(space),$(comma),$(GST1_PLUGINS_BASE_GL_PLATFORM_LIST))' ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_X11),y) GST1_PLUGINS_BASE_WINSYS_LIST += x11 GST1_PLUGINS_BASE_DEPENDENCIES += xlib_libX11 xlib_libXext endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_WAYLAND),y) GST1_PLUGINS_BASE_WINSYS_LIST += wayland GST1_PLUGINS_BASE_DEPENDENCIES += wayland wayland-protocols endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_DISPMANX),y) GST1_PLUGINS_BASE_WINSYS_LIST += dispmanx GST1_PLUGINS_BASE_DEPENDENCIES += rpi-userland endif GST1_PLUGINS_BASE_CONF_OPTS += -Dgl_winsys='$(subst $(space),$(comma),$(GST1_PLUGINS_BASE_WINSYS_LIST))' ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ADDER),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dadder=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dadder=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dapp=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dapp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT),y) GST1_PLUGINS_BASE_CONF_OPTS += -Daudioconvert=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Daudioconvert=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOMIXER),y) GST1_PLUGINS_BASE_CONF_OPTS += -Daudiomixer=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Daudiomixer=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORATE),y) GST1_PLUGINS_BASE_CONF_OPTS += -Daudiorate=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Daudiorate=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOTESTSRC),y) GST1_PLUGINS_BASE_CONF_OPTS += -Daudiotestsrc=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Daudiotestsrc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_COMPOSITOR),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dcompositor=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dcompositor=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ENCODING),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dencoding=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dencoding=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dvideoconvert=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dvideoconvert=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_GIO),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dgio=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dgio=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_GIO_TYPEFINDER),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dgio-typefinder=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dgio-typefinder=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OVERLAYCOMPOSITION),y) GST1_PLUGINS_BASE_CONF_OPTS += -Doverlaycomposition=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Doverlaycomposition=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PLAYBACK),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dplayback=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dplayback=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE),y) GST1_PLUGINS_BASE_CONF_OPTS += -Daudioresample=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Daudioresample=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_RAWPARSE),y) GST1_PLUGINS_BASE_CONF_OPTS += -Drawparse=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Drawparse=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_SUBPARSE),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dsubparse=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dsubparse=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_TCP),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dtcp=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dtcp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_TYPEFIND),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dtypefind=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dtypefind=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOTESTSRC),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dvideotestsrc=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dvideotestsrc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEORATE),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dvideorate=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dvideorate=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dvideoscale=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dvideoscale=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dvolume=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dvolume=disabled endif # Zlib is checked for headers and is not an option. ifeq ($(BR2_PACKAGE_ZLIB),y) GST1_PLUGINS_BASE_DEPENDENCIES += zlib endif ifeq ($(BR2_PACKAGE_XORG7),y) GST1_PLUGINS_BASE_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXv GST1_PLUGINS_BASE_CONF_OPTS += \ -Dx11=enabled \ -Dxshm=enabled \ -Dxvideo=enabled else GST1_PLUGINS_BASE_CONF_OPTS += \ -Dx11=disabled \ -Dxshm=disabled \ -Dxvideo=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA),y) GST1_PLUGINS_BASE_DEPENDENCIES += alsa-lib GST1_PLUGINS_BASE_CONF_OPTS += -Dalsa=enabled else GST1_PLUGINS_BASE_CONF_OPTS += -Dalsa=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_TREMOR),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dtremor=enabled GST1_PLUGINS_BASE_DEPENDENCIES += tremor else GST1_PLUGINS_BASE_CONF_OPTS += -Dtremor=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OPUS),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dopus=enabled GST1_PLUGINS_BASE_DEPENDENCIES += opus else GST1_PLUGINS_BASE_CONF_OPTS += -Dopus=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OGG),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dogg=enabled GST1_PLUGINS_BASE_DEPENDENCIES += libogg else GST1_PLUGINS_BASE_CONF_OPTS += -Dogg=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PANGO),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dpango=enabled GST1_PLUGINS_BASE_DEPENDENCIES += pango else GST1_PLUGINS_BASE_CONF_OPTS += -Dpango=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_THEORA),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dtheora=enabled GST1_PLUGINS_BASE_DEPENDENCIES += libtheora else GST1_PLUGINS_BASE_CONF_OPTS += -Dtheora=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VORBIS),y) GST1_PLUGINS_BASE_CONF_OPTS += -Dvorbis=enabled GST1_PLUGINS_BASE_DEPENDENCIES += libvorbis else GST1_PLUGINS_BASE_CONF_OPTS += -Dvorbis=disabled endif $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gst1-plugins-bayer2rgb-neon/Config.in ================================================ menuconfig BR2_PACKAGE_GST1_PLUGINS_BAYER2RGB_NEON bool "gst1-plugins-bayer2rgb-neon" depends on (BR2_arm && BR2_ARM_CPU_HAS_NEON) || BR2_aarch64 # bayer2rgb-neon depends on !BR2_STATIC_LIBS # bayer2rgb-neon depends on BR2_INSTALL_LIBSTDCPP # bayer2rgb-neon depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # bayer2rgb-neon select BR2_PACKAGE_GST1_PLUGINS_BASE select BR2_PACKAGE_BAYER2RGB_NEON help gst1-plugins-bayer2rgb-neon is a gstreamer1 plugin which uses bayer2rgb-neon library to decode raw camera bayer to RGB using NEON hardware acceleration. https://gitlab-ext.sigma-chemnitz.de/ensc/gst-bayer2rgb-neon comment "gst1-plugins-bayer2rgb-neon needs a toolchain w/ C++, dynamic library, gcc >= 4.9" depends on BR2_arm && BR2_ARM_CPU_HAS_NEON depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/gstreamer1/gst1-plugins-bayer2rgb-neon/gst1-plugins-bayer2rgb-neon.hash ================================================ # Locally calculated sha256 76b2135a23f465f789ccb86bd3a8190a1e30f86cdb28abfac4d9a2cdece63fa2 gst1-plugins-bayer2rgb-neon-b630798efcd611879e7cb1c246052e5ba1acc41d-br1.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/gstreamer1/gst1-plugins-bayer2rgb-neon/gst1-plugins-bayer2rgb-neon.mk ================================================ ################################################################################ # # gst1-plugins-bayer2rgb-neon # ################################################################################ GST1_PLUGINS_BAYER2RGB_NEON_VERSION = b630798efcd611879e7cb1c246052e5ba1acc41d GST1_PLUGINS_BAYER2RGB_NEON_SITE = https://gitlab-ext.sigma-chemnitz.de/ensc/gst-bayer2rgb-neon.git GST1_PLUGINS_BAYER2RGB_NEON_SITE_METHOD = git GST1_PLUGINS_BAYER2RGB_NEON_LICENSE = GPL-3.0 GST1_PLUGINS_BAYER2RGB_NEON_LICENSE_FILES = COPYING GST1_PLUGINS_BAYER2RGB_NEON_INSTALL_STAGING = YES GST1_PLUGINS_BAYER2RGB_NEON_DEPENDENCIES = \ host-pkgconf \ gstreamer1 \ gst1-plugins-base \ bayer2rgb-neon GST1_PLUGINS_BAYER2RGB_NEON_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/gstreamer1/gst1-plugins-good/Config.in ================================================ menuconfig BR2_PACKAGE_GST1_PLUGINS_GOOD bool "gst1-plugins-good" select BR2_PACKAGE_GST1_PLUGINS_BASE select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXV if BR2_PACKAGE_XORG7 help A set of well-supported plug-ins for GStreamer under the preferred license. https://gstreamer.freedesktop.org/ if BR2_PACKAGE_GST1_PLUGINS_GOOD config BR2_PACKAGE_GST1_PLUGINS_GOOD_JPEG bool "jpeg (JPEG support)" select BR2_PACKAGE_JPEG help JPeg plugin library config BR2_PACKAGE_GST1_PLUGINS_GOOD_PNG bool "png (PNG support)" select BR2_PACKAGE_LIBPNG help PNG plugin library config BR2_PACKAGE_GST1_PLUGINS_GOOD_BZ2 bool "bz2 support" depends on BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA select BR2_PACKAGE_BZIP2 help Enable bz2 support for the following plugins: matroska comment "dependency-less plugins" config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ALPHA bool "alpha" help adds an alpha channel to video - constant or via chroma-keying config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_APETAG bool "apetag" help APEv1/2 tag reader config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOFX bool "audiofx" help Audio effects plugin config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOPARSERS bool "audioparsers" help Parsers for various audio formats config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUPARSE bool "auparse" help parses au streams config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUTODETECT bool "autodetect" help Plugin contains auto-detection plugins for video/audio in- and outputs config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AVI bool "avi (*.avi video)" default y help AVI stream handling config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_CUTTER bool "cutter" help Audio Cutter to split audio into non-silent bits config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DEBUGUTILS bool "debugutils" help elements for testing and debugging config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DEINTERLACE bool "deinterlace" help Deinterlacer config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DTMF bool "dtmf" help DTMF plugin config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_EFFECTV bool "effectv" help effect plugins from the effectv project config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_EQUALIZER bool "equalizer" help GStreamer audio equalizers config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLV bool "flv" help FLV muxing and demuxing plugin config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLX bool "flx" help FLC/FLI/FLX video decoder config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_GOOM bool "goom" help GOOM visualization filter config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_GOOM2K1 bool "goom2k1" help GOOM 2k1 visualization filter config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ICYDEMUX bool "icydemux" help Demux ICY tags from a stream config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ID3DEMUX bool "id3demux (*.mp3 audio)" help Demux ID3v1 and ID3v2 tags from a file config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_IMAGEFREEZE bool "imagefreeze" help Still frame stream generator config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_INTERLEAVE bool "interleave" help Audio interleaver/deinterleaver config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ISOMP4 bool "isomp4" default y help ISO base media file format support (mp4, 3gpp, qt, mj2) config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LAW bool "law" config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LEVEL bool "level" help Audio level plugin config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA bool "matroska" help Matroska and WebM stream handling config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MONOSCOPE bool "monoscope" help Monoscope visualization config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MULTIFILE bool "multifile" help Reads/Writes buffers from/to sequentially named files config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MULTIPART bool "multipart" help multipart stream manipulation config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_REPLAYGAIN bool "replaygain" help ReplayGain volume normalization config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTP bool "rtp" help Real-time protocol plugins config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTPMANAGER bool "rtpmanager" help RTP session management plugin library config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTSP bool "rtsp" help transfer data via RTSP config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SHAPEWIPE bool "shapewipe" help Shape Wipe transition filter config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SMPTE bool "smpte" help Apply the standard SMPTE transitions on video images config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SPECTRUM bool "spectrum" help Run an FFT on the audio signal, output spectrum data config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_UDP bool "udp" help transfer data via UDP config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOBOX bool "videobox" help resizes a video by adding borders or cropping config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOCROP bool "videocrop" help Crops video into a user-defined region config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOFILTER bool "videofilter" help Video filters plugin config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOMIXER bool "videomixer" help Video mixer config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_WAVENC bool "wavenc" help Encode raw audio into WAV config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_WAVPARSE bool "wavparse (*.wav audio)" default y help Parse a .wav file into raw audio config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_Y4M bool "y4m" help Encodes a YUV frame into the yuv4mpeg format (mjpegtools) comment "plugins with external dependencies" config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LAME bool "lame (*.mp3 audio encoder)" select BR2_PACKAGE_LAME help Encode MP3s with LAME config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MPG123 bool "mpg123 (*.mp3 audio)" select BR2_PACKAGE_MPG123 help mp3 decoding based on the mpg123 library config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS bool "ossaudio (OSS audio)" help OSS (Open Sound System) support for GStreamer config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4 bool "oss4 (Open Sound System 4)" help Open Sound System (OSS) version 4 support for GStreamer config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL bool "qmlgl (qt5)" depends on BR2_PACKAGE_QT5 depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative depends on BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL select BR2_PACKAGE_QT5BASE_WIDGETS select BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_QT5DECLARATIVE_QUICK select BR2_PACKAGE_QT5X11EXTRAS if BR2_PACKAGE_QT5BASE_XCB help QT5 plugin which includes elements qmlglsrc and qmlglsink comment "qmlgl (qt5) needs the gst1-plugins-base opengl library" depends on !BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SHOUT2 bool "shout2" select BR2_PACKAGE_LIBSHOUT help Elements to send data to an icecast server using libshout2 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2 bool "v4l2" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # multi planar api select BR2_PACKAGE_LIBGUDEV if BR2_PACKAGE_HAS_UDEV help elements for Video 4 Linux 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 select BR2_PACKAGE_CAIRO_PNG help Cairo-based elements config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLAC bool "flac (libFLAC)" depends on BR2_USE_WCHAR # flac select BR2_PACKAGE_FLAC help The FLAC Lossless compressor Codec comment "flac needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_GDKPIXBUF bool "gdkpixbuf" depends on BR2_USE_WCHAR # gdk-pixbuf -> libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # gdk-pixbuf -> libglib2 select BR2_PACKAGE_GDK_PIXBUF help GdkPixbuf-based image decoder, overlay and sink comment "gdkpixbuf needs a toolchain w/ wchar, threads" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_JACK bool "jack" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_JACK2 help JACK audio source/sink plugin comment "jack needs a toolchain w/ C++, dynamic library" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE bool "pulseaudio" depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio depends on BR2_USE_MMU # pulseaudio depends on !BR2_STATIC_LIBS # pulseaudio depends on BR2_USE_WCHAR # pulseaudio depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC # pulseaudio select BR2_PACKAGE_PULSEAUDIO help PulseAudio plugin library comment "pulseaudio support needs a toolchain w/ threads, wchar, dynamic library" depends on BR2_USE_MMU depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || !BR2_USE_WCHAR config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC bool "souphttpsrc (http client)" depends on BR2_USE_WCHAR # libsoup -> glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libsoup -> glib2 select BR2_PACKAGE_LIBSOUP help libsoup HTTP client src/sink comment "souphttpsrc needs a toolchain w/ wchar, threads" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SPEEX bool "speex" select BR2_PACKAGE_SPEEX help Speex plugin library config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_TAGLIB bool "taglib" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR select BR2_PACKAGE_TAGLIB help Taglib tagging plugin library comment "taglib needs a toolchain w/ C++, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_TWOLAME bool "twolame" select BR2_PACKAGE_TWOLAME help twolame mp2 audio encoder plugin config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VPX bool "vpx (webm)" depends on BR2_TOOLCHAIN_HAS_THREADS # libvpx select BR2_PACKAGE_LIBVPX help VP8 plugin comment "libvpx needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_WAVPACK bool "wavpack (*.wv audio)" select BR2_PACKAGE_WAVPACK help Wavpack lossless/lossy audio format handling endif ================================================ FILE: package/gstreamer1/gst1-plugins-good/gst1-plugins-good.hash ================================================ # From https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.18.5.tar.xz.sha256sum sha256 3aaeeea7765fbf8801acce4a503a9b05f73f04e8a35352e9d00232cfd555796b gst-plugins-good-1.18.5.tar.xz sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING ================================================ FILE: package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk ================================================ ################################################################################ # # gst1-plugins-good # ################################################################################ GST1_PLUGINS_GOOD_VERSION = 1.18.5 GST1_PLUGINS_GOOD_SOURCE = gst-plugins-good-$(GST1_PLUGINS_GOOD_VERSION).tar.xz GST1_PLUGINS_GOOD_SITE = https://gstreamer.freedesktop.org/src/gst-plugins-good GST1_PLUGINS_GOOD_LICENSE_FILES = COPYING GST1_PLUGINS_GOOD_LICENSE = LGPL-2.1+ GST1_PLUGINS_GOOD_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) GST1_PLUGINS_GOOD_CONF_OPTS = \ -Dexamples=disabled \ -Dtests=disabled \ -Dgobject-cast-checks=disabled \ -Dglib-asserts=disabled \ -Dglib-checks=disabled \ -Dasm=disabled \ -Ddirectsound=disabled \ -Dwaveform=disabled \ -Drpicamsrc=disabled \ -Dosxaudio=disabled \ -Dosxvideo=disabled \ -Daalib=disabled \ -Dlibcaca=disabled \ -Ddoc=disabled # Options which require currently unpackaged libraries GST1_PLUGINS_GOOD_CONF_OPTS += \ -Ddv=disabled \ -Ddv1394=disabled GST1_PLUGINS_GOOD_DEPENDENCIES = \ gstreamer1 \ gst1-plugins-base \ $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_JACK),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Djack=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += jack2 else GST1_PLUGINS_GOOD_CONF_OPTS += -Djack=disabled endif ifeq ($(BR2_PACKAGE_LIBV4L),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dv4l2-libv4l2=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += libv4l else GST1_PLUGINS_GOOD_CONF_OPTS += -Dv4l2-libv4l2=disabled endif ifeq ($(BR2_PACKAGE_ORC),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dorc=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += orc endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ALPHA),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dalpha=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dalpha=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_APETAG),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dapetag=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dapetag=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOFX),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Daudiofx=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Daudiofx=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOPARSERS),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Daudioparsers=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Daudioparsers=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUPARSE),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dauparse=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dauparse=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUTODETECT),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dautodetect=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dautodetect=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AVI),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Davi=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Davi=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_CUTTER),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dcutter=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dcutter=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DEBUGUTILS),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Ddebugutils=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Ddebugutils=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DEINTERLACE),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Ddeinterlace=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Ddeinterlace=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DTMF),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Ddtmf=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Ddtmf=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_EFFECTV),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Deffectv=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Deffectv=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_EQUALIZER),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dequalizer=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dequalizer=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLV),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dflv=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dflv=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLX),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dflx=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dflx=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_GOOM),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dgoom=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dgoom=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_GOOM2K1),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dgoom2k1=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dgoom2k1=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ICYDEMUX),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dicydemux=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dicydemux=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ID3DEMUX),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Did3demux=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Did3demux=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_IMAGEFREEZE),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dimagefreeze=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dimagefreeze=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_INTERLEAVE),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dinterleave=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dinterleave=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ISOMP4),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Disomp4=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Disomp4=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LAME),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dlame=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += lame else GST1_PLUGINS_GOOD_CONF_OPTS += -Dlame=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MPG123),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dmpg123=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += mpg123 else GST1_PLUGINS_GOOD_CONF_OPTS += -Dmpg123=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LAW),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dlaw=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dlaw=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LEVEL),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dlevel=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dlevel=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dmatroska=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dmatroska=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MONOSCOPE),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dmonoscope=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dmonoscope=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MULTIFILE),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dmultifile=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dmultifile=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MULTIPART),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dmultipart=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dmultipart=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_REPLAYGAIN),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dreplaygain=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dreplaygain=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTP),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Drtp=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Drtp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTPMANAGER),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Drtpmanager=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Drtpmanager=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTSP),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Drtsp=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Drtsp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SHAPEWIPE),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dshapewipe=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dshapewipe=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SMPTE),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dsmpte=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dsmpte=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SPECTRUM),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dspectrum=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dspectrum=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_UDP),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dudp=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dudp=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOBOX),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dvideobox=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dvideobox=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOCROP),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dvideocrop=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dvideocrop=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOFILTER),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dvideofilter=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dvideofilter=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOMIXER),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dvideomixer=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dvideomixer=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_WAVENC),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dwavenc=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dwavenc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_WAVPARSE),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dwavparse=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dwavparse=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_Y4M),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dy4m=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dy4m=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Doss=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Doss=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Doss4=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Doss4=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dqt5=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += qt5declarative ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y) GST1_PLUGINS_GOOD_DEPENDENCIES += qt5x11extras endif else GST1_PLUGINS_GOOD_CONF_OPTS += -Dqt5=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SHOUT2),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dshout2=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += libshout else GST1_PLUGINS_GOOD_CONF_OPTS += -Dshout2=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dv4l2=enabled # Enable use of gudev if available, for device probing and monitoring. ifeq ($(BR2_PACKAGE_LIBGUDEV),y) GST1_PLUGINS_GOOD_DEPENDENCIES += libgudev GST1_PLUGINS_GOOD_CONF_OPTS += -Dv4l2-gudev=enabled else GST1_PLUGINS_GOOD_CONF_OPTS += -Dv4l2-gudev=disabled endif else GST1_PLUGINS_GOOD_CONF_OPTS += -Dv4l2=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2_PROBE),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dv4l2-probe=true else GST1_PLUGINS_GOOD_CONF_OPTS += -Dv4l2-probe=false endif ifeq ($(BR2_PACKAGE_XORG7),y) GST1_PLUGINS_GOOD_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXv GST1_PLUGINS_GOOD_CONF_OPTS += -Dximagesrc=enabled ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y) GST1_PLUGINS_GOOD_DEPENDENCIES += xlib_libXfixes GST1_PLUGINS_GOOD_CONF_OPTS += -Dximagesrc-xfixes=enabled endif ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y) GST1_PLUGINS_GOOD_DEPENDENCIES += xlib_libXdamage GST1_PLUGINS_GOOD_CONF_OPTS += -Dximagesrc-xdamage=enabled endif else GST1_PLUGINS_GOOD_CONF_OPTS += \ -Dximagesrc=disabled \ -Dximagesrc-xfixes=disabled \ -Dximagesrc-xdamage=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_CAIRO),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dcairo=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += cairo else GST1_PLUGINS_GOOD_CONF_OPTS += -Dcairo=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLAC),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dflac=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += flac else GST1_PLUGINS_GOOD_CONF_OPTS += -Dflac=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_GDKPIXBUF),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dgdk-pixbuf=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += gdk-pixbuf else GST1_PLUGINS_GOOD_CONF_OPTS += -Dgdk-pixbuf=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_JPEG),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Djpeg=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += jpeg else GST1_PLUGINS_GOOD_CONF_OPTS += -Djpeg=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PNG),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dpng=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += libpng else GST1_PLUGINS_GOOD_CONF_OPTS += -Dpng=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dpulse=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += pulseaudio else GST1_PLUGINS_GOOD_CONF_OPTS += -Dpulse=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dsoup=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += libsoup else GST1_PLUGINS_GOOD_CONF_OPTS += -Dsoup=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SPEEX),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dspeex=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += speex else GST1_PLUGINS_GOOD_CONF_OPTS += -Dspeex=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_TAGLIB),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dtaglib=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += taglib else GST1_PLUGINS_GOOD_CONF_OPTS += -Dtaglib=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_TWOLAME),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dtwolame=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += twolame else GST1_PLUGINS_GOOD_CONF_OPTS += -Dtwolame=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VPX),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dvpx=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += libvpx else GST1_PLUGINS_GOOD_CONF_OPTS += -Dvpx=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_WAVPACK),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dwavpack=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += wavpack else GST1_PLUGINS_GOOD_CONF_OPTS += -Dwavpack=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_ZLIB),y) GST1_PLUGINS_GOOD_DEPENDENCIES += zlib endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_BZ2),y) GST1_PLUGINS_GOOD_CONF_OPTS += -Dbz2=enabled GST1_PLUGINS_GOOD_DEPENDENCIES += bzip2 else GST1_PLUGINS_GOOD_CONF_OPTS += -Dbz2=disabled endif $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gst1-plugins-ugly/Config.in ================================================ menuconfig BR2_PACKAGE_GST1_PLUGINS_UGLY bool "gst1-plugins-ugly" select BR2_PACKAGE_GST1_PLUGINS_BASE help A set of well-supported plug-ins for GStreamer, but might pose problems for distributors. https://gstreamer.freedesktop.org/ if BR2_PACKAGE_GST1_PLUGINS_UGLY comment "dependency-less plugins" config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_ASFDEMUX bool "asfdemux" help Demuxes and muxes audio and video in Microsofts ASF format config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_DVDLPCMDEC bool "dvdlpcmdec" help Decode DVD LPCM frames into standard PCM config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_DVDSUB bool "dvdsub" help DVD subtitle parser and decoder config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_XINGMUX bool "xingmux" help Add XING tags to mpeg audio files config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_REALMEDIA bool "realmedia" help RealMedia support plugins comment "plugins with external dependencies (there may be more available)" config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_DVDREAD bool "dvdread" select BR2_PACKAGE_LIBDVDREAD help Access a DVD with dvdread config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPEG2DEC bool "mpeg2dec" select BR2_PACKAGE_LIBMPEG2 help LibMpeg2 decoder config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_X264 bool "x264" select BR2_PACKAGE_X264 help x264 encoder # Note: to get descriptions use the following. # # find . -name 'plugin-*.xml' | xargs grep -m 1 description endif ================================================ FILE: package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.hash ================================================ # From https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.18.5.tar.xz.sha256sum sha256 df32803e98f8a9979373fa2ca7e05e62f977b1097576d3a80619d9f5c69f66d9 gst-plugins-ugly-1.18.5.tar.xz sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING ================================================ FILE: package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.mk ================================================ ################################################################################ # # gst1-plugins-ugly # ################################################################################ GST1_PLUGINS_UGLY_VERSION = 1.18.5 GST1_PLUGINS_UGLY_SOURCE = gst-plugins-ugly-$(GST1_PLUGINS_UGLY_VERSION).tar.xz GST1_PLUGINS_UGLY_SITE = https://gstreamer.freedesktop.org/src/gst-plugins-ugly GST1_PLUGINS_UGLY_LICENSE_FILES = COPYING # GPL licensed plugins will append to GST1_PLUGINS_UGLY_LICENSE if enabled. GST1_PLUGINS_UGLY_LICENSE = LGPL-2.1+ GST1_PLUGINS_UGLY_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) GST1_PLUGINS_UGLY_CONF_OPTS += \ -Dtests=disabled \ -Ddoc=disabled GST1_PLUGINS_UGLY_CONF_OPTS += \ -Da52dec=disabled \ -Damrnb=disabled \ -Damrwbdec=disabled \ -Dcdio=disabled \ -Dsidplay=disabled GST1_PLUGINS_UGLY_DEPENDENCIES = gstreamer1 gst1-plugins-base ifeq ($(BR2_PACKAGE_ORC),y) GST1_PLUGINS_UGLY_CONF_OPTS += -Dorc=enabled GST1_PLUGINS_UGLY_DEPENDENCIES += orc else GST1_PLUGINS_UGLY_CONF_OPTS += -Dorc=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_ASFDEMUX),y) GST1_PLUGINS_UGLY_CONF_OPTS += -Dasfdemux=enabled else GST1_PLUGINS_UGLY_CONF_OPTS += -Dasfdemux=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_DVDLPCMDEC),y) GST1_PLUGINS_UGLY_CONF_OPTS += -Ddvdlpcmdec=enabled else GST1_PLUGINS_UGLY_CONF_OPTS += -Ddvdlpcmdec=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_DVDSUB),y) GST1_PLUGINS_UGLY_CONF_OPTS += -Ddvdsub=enabled else GST1_PLUGINS_UGLY_CONF_OPTS += -Ddvdsub=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_XINGMUX),y) GST1_PLUGINS_UGLY_CONF_OPTS += -Dxingmux=enabled else GST1_PLUGINS_UGLY_CONF_OPTS += -Dxingmux=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_REALMEDIA),y) GST1_PLUGINS_UGLY_CONF_OPTS += -Drealmedia=enabled else GST1_PLUGINS_UGLY_CONF_OPTS += -Drealmedia=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_DVDREAD),y) GST1_PLUGINS_UGLY_CONF_OPTS += -Ddvdread=enabled GST1_PLUGINS_UGLY_DEPENDENCIES += libdvdread GST1_PLUGINS_UGLY_HAS_GPL_LICENSE = y else GST1_PLUGINS_UGLY_CONF_OPTS += -Ddvdread=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPEG2DEC),y) GST1_PLUGINS_UGLY_CONF_OPTS += -Dmpeg2dec=enabled GST1_PLUGINS_UGLY_DEPENDENCIES += libmpeg2 GST1_PLUGINS_UGLY_HAS_GPL_LICENSE = y else GST1_PLUGINS_UGLY_CONF_OPTS += -Dmpeg2dec=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_X264),y) GST1_PLUGINS_UGLY_CONF_OPTS += -Dx264=enabled GST1_PLUGINS_UGLY_DEPENDENCIES += x264 GST1_PLUGINS_UGLY_HAS_GPL_LICENSE = y else GST1_PLUGINS_UGLY_CONF_OPTS += -Dx264=disabled endif # Add GPL license if GPL plugins enabled. ifeq ($(GST1_PLUGINS_UGLY_HAS_GPL_LICENSE),y) GST1_PLUGINS_UGLY_LICENSE += , GPL-2.0 endif # Use the following command to extract license info for plugins. # # find . -name 'plugin-*.xml' | xargs grep license $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gst1-python/Config.in ================================================ config BR2_PACKAGE_GST1_PYTHON bool "gst1-python" depends on BR2_USE_MMU # libglib2, gobject-introspection depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS # gobject-introspection depends on BR2_HOST_GCC_AT_LEAST_8 # gobject-introspection -> host-qemu depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # gobject-introspection depends on BR2_TOOLCHAIN_USES_GLIBC # gobject-introspection depends on BR2_PACKAGE_PYTHON3 # gobject-introspection select BR2_PACKAGE_GOBJECT_INTROSPECTION select BR2_PACKAGE_GST1_PLUGINS_BASE select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_PYTHON_GOBJECT help GStreamer python overrides for the gobject-introspection-based pygst bindings. https://gstreamer.freedesktop.org/modules/gst-python.html comment "gst1-python needs python3" depends on !BR2_PACKAGE_PYTHON3 comment "gst1-python needs a glibc toolchain, gcc >= 4.9, host gcc >= 8" depends on BR2_USE_MMU depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_HOST_GCC_AT_LEAST_8 ================================================ FILE: package/gstreamer1/gst1-python/gst1-python.hash ================================================ # From https://gstreamer.freedesktop.org/src/gst-python/gst-python-1.18.5.tar.xz.sha256sum sha256 533685871305959d6db89507f3b3aa6c765c2f2b0dacdc32c5a6543e72e5bc52 gst-python-1.18.5.tar.xz sha256 ea3ad127610e5ded2210b3a86a46314f2b3b28e438eccffdae19a4d6fbcdb0c2 COPYING ================================================ FILE: package/gstreamer1/gst1-python/gst1-python.mk ================================================ ################################################################################ # # gst1-python # ################################################################################ GST1_PYTHON_VERSION = 1.18.5 GST1_PYTHON_SOURCE = gst-python-$(GST1_PYTHON_VERSION).tar.xz GST1_PYTHON_SITE = https://gstreamer.freedesktop.org/src/gst-python GST1_PYTHON_INSTALL_STAGING = YES GST1_PYTHON_LICENSE_FILES = COPYING GST1_PYTHON_LICENSE = LGPL-2.1+ GST1_PYTHON_DEPENDENCIES = \ gst1-plugins-base \ gstreamer1 \ python-gobject # A sysconfigdata_name must be manually specified or the resulting .so # will have a x86_64 prefix, which causes "from gi.repository import Gst" # to fail. A pythonpath must be specified or the host python path will be # used resulting in a "not a valid python" error. GST1_PYTHON_CONF_ENV += \ _PYTHON_SYSCONFIGDATA_NAME=$(PKG_PYTHON_SYSCONFIGDATA_NAME) \ PYTHONPATH=$(PYTHON3_PATH) # Due to the CONF_ENV options, libpython-dir must be set manually # or else the error: "Python dynamic library path could not be determined" # occurs. We set the libpython-dir to /usr/lib as this path is hard-coded # into the resulting .so file as /usr/lib/python3.$(PYTHON3_VERSION_MAJOR).so. # Because we provide PYTHONPATH=$(PYTHON3_PATH) above, the logic in the meson # file uses the above python path to determine if /usr/lib/ has the proper .so # file. Because Buildroot provides the appropriate paths, the meson file finds # the correct .so file, and the resulting compiled library has the appropriate # path of /usr/lib/python3.$(PYTHON3_VERSION_MAJOR).so GST1_PYTHON_CONF_OPTS += \ -Dlibpython-dir=/usr/lib/ $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gst1-rtsp-server/Config.in ================================================ config BR2_PACKAGE_GST1_RTSP_SERVER bool "gst1-rtsp-server" select BR2_PACKAGE_GST1_PLUGINS_BASE select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP # runtime select BR2_PACKAGE_GST1_PLUGINS_GOOD select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTP # runtime select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTPMANAGER # runtime select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_UDP # runtime help RTSP server library based on GStreamer. https://gstreamer.freedesktop.org/ ================================================ FILE: package/gstreamer1/gst1-rtsp-server/gst1-rtsp-server.hash ================================================ # From https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-1.18.5.tar.xz.sha256sum sha256 04d63bf48816c6f41c73f6de0f912a7cef0aab39c44162a7bcece1923dfc9d1f gst-rtsp-server-1.18.5.tar.xz sha256 f445dc78b88496f7e20c7a2a461b95baba5865c8919b8289ac24ac0a80c6ce7a COPYING sha256 f445dc78b88496f7e20c7a2a461b95baba5865c8919b8289ac24ac0a80c6ce7a COPYING.LIB ================================================ FILE: package/gstreamer1/gst1-rtsp-server/gst1-rtsp-server.mk ================================================ ################################################################################ # # gst1-rtsp-server # ################################################################################ GST1_RTSP_SERVER_VERSION = 1.18.5 GST1_RTSP_SERVER_SOURCE = gst-rtsp-server-$(GST1_RTSP_SERVER_VERSION).tar.xz GST1_RTSP_SERVER_SITE = http://gstreamer.freedesktop.org/src/gst-rtsp-server GST1_RTSP_SERVER_LICENSE = LGPL-2.0+ GST1_RTSP_SERVER_LICENSE_FILES = COPYING COPYING.LIB GST1_RTSP_SERVER_CPE_ID_VENDOR = gstreamer_project GST1_RTSP_SERVER_CPE_ID_PRODUCT = gst-rtsp-server GST1_RTSP_SERVER_INSTALL_STAGING = YES GST1_RTSP_SERVER_DEPENDENCIES = \ host-pkgconf \ gstreamer1 \ gst1-plugins-base \ gst1-plugins-good GST1_RTSP_SERVER_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) GST1_RTSP_SERVER_CONF_OPTS = \ -Dexamples=disabled \ -Dtests=disabled \ -Ddoc=disabled GST1_RTSP_SERVER_CONF_OPTS += \ -Dexamples=disabled \ -Dtests=disabled \ -Dgobject-cast-checks=disabled \ -Dglib-asserts=disabled \ -Dglib-checks=disabled ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) GST1_RTSP_SERVER_CONF_OPTS += -Dintrospection=enabled GST1_RTSP_SERVER_DEPENDENCIES += gobject-introspection else GST1_RTSP_SERVER_CONF_OPTS += -Dintrospection=disabled endif ifeq ($(BR2_PACKAGE_LIBCGROUP),y) GST1_RTSP_SERVER_DEPENDENCIES += libcgroup endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD),y) GST1_RTSP_SERVER_DEPENDENCIES += gst1-plugins-bad endif $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gst1-shark/Config.in ================================================ config BR2_PACKAGE_GST1_SHARK bool "gst1-shark" select BR2_PACKAGE_GSTREAMER1_CHECK select BR2_PACKAGE_GST1_PLUGINS_BASE select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP select BR2_PACKAGE_GSTREAMER1_GST_DEBUG # gst_debug_log_valist, GST_CAT_STATES help GstShark leverages GStreamers newest instrumentation subsystem by installing a set of custom hooks to the trace points. A variety of data analytics are extracted and presented to the user in a graphical, friendly way. https://github.com/RidgeRun/gst-shark ================================================ FILE: package/gstreamer1/gst1-shark/gst1-shark.hash ================================================ # locally computed hash sha256 689e60b4e10635a4f3af795b53045c6e90643896fa07b61e164a96158a79bdcf gst1-shark-v0.7.3-br1.tar.gz # Hashes for license files: sha256 6d191b8f1fa03cabced18b8e48fddbf960a19f965bed8491e76ed62238f92f0b COPYING ================================================ FILE: package/gstreamer1/gst1-shark/gst1-shark.mk ================================================ ################################################################################ # # gst1-shark # ################################################################################ GST1_SHARK_VERSION = v0.7.3 GST1_SHARK_SITE = https://github.com/RidgeRun/gst-shark.git GST1_SHARK_SITE_METHOD = git GST1_SHARK_GIT_SUBMODULES = YES GST1_SHARK_LICENSE = LGPL-2.1+ GST1_SHARK_LICENSE_FILES = COPYING GST1_SHARK_AUTORECONF = YES GST1_SHARK_DEPENDENCIES = host-pkgconf gstreamer1 gst1-plugins-base GST1_SHARK_CONF_OPTS = --disable-graphviz $(eval $(autotools-package)) ================================================ FILE: package/gstreamer1/gst1-vaapi/Config.in ================================================ config BR2_PACKAGE_GST1_VAAPI bool "gst1-vaapi" depends on !BR2_STATIC_LIBS # dlopen(), libva depends on BR2_TOOLCHAIN_HAS_THREADS # libva, libdrm depends on BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_LIBVA select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_GST1_PLUGINS_BASE select BR2_PACKAGE_GST1_PLUGINS_BAD # gstreamer-codecparsers help gstreamer-vaapi consists in a collection of VA-API based plugins for GStreamer and helper libraries. vaapidec is used to decode JPEG, MPEG-2, MPEG-4:2, H.264 AVC, H.264 MVC, VP8, VC-1, WMV3, HEVC videos to VA surfaces, depending on the actual value of and the underlying hardware capabilities. This plugin is also able to implicitly download the decoded surface to raw YUV buffers. vaapienc is used to encode into MPEG-2, H.264 AVC, H.264 MVC, JPEG, VP8, HEVC videos, depending on the actual value of (mpeg2, h264, etc.) and the hardware capabilities. By default, raw format bitstreams are generated, so the result may be piped to a muxer, e.g. qtmux for MP4 containers. vaapipostproc is used to filter VA surfaces, for e.g. scaling, deinterlacing (bob, motion-adaptive, motion-compensated), noise reduction or sharpening. This plugin is also used to upload raw YUV pixels into VA surfaces. vaapisink is used to render VA surfaces to an X11 or Wayland display. This plugin also features a "headless" mode (DRM) more suited to remote transcode scenarios, with faster throughput. https://cgit.freedesktop.org/gstreamer/gstreamer-vaapi if BR2_PACKAGE_GST1_VAAPI config BR2_PACKAGE_GST1_VAAPI_ENCODERS bool "enable encoders" endif comment "gst1-vaapi needs udev /dev management and a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_PACKAGE_HAS_UDEV ================================================ FILE: package/gstreamer1/gst1-vaapi/gst1-vaapi.hash ================================================ # From https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-1.18.5.tar.xz.sha256sum sha256 4a460fb95559f41444eb24864ad2d9e37922b6eea941510310319fc3e0ba727b gstreamer-vaapi-1.18.5.tar.xz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB ================================================ FILE: package/gstreamer1/gst1-vaapi/gst1-vaapi.mk ================================================ ################################################################################ # # gst1-vaapi # ################################################################################ GST1_VAAPI_VERSION = 1.18.5 GST1_VAAPI_SITE = https://gstreamer.freedesktop.org/src/gstreamer-vaapi GST1_VAAPI_SOURCE = gstreamer-vaapi-$(GST1_VAAPI_VERSION).tar.xz GST1_VAAPI_LICENSE = LGPL-2.1+ GST1_VAAPI_LICENSE_FILES = COPYING.LIB GST1_VAAPI_DEPENDENCIES += \ gstreamer1 \ gst1-plugins-base \ gst1-plugins-bad \ libva \ libdrm GST1_VAAPI_CONF_OPTS += \ -Dwith_drm=yes \ -Dwith_x11=no \ -Dwith_glx=no \ -Dwith_wayland=no \ -Dwith_egl=no \ -Dexamples=disabled \ -Dtests=disabled \ -Ddoc=disabled ifeq ($(BR2_PACKAGE_GST1_VAAPI_ENCODERS),y) GST1_VAAPI_CONF_OPTS += -Dwith_encoders=yes else GST1_VAAPI_CONF_OPTS += -Dwith_encoders=no endif $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gstd/0001-Fix-gstd_chmod.sh-DESTDIR-path.patch ================================================ From f1c953b9077619a83ab21c24dc343c7e21cd220d Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Tue, 14 Sep 2021 01:46:25 -0600 Subject: [PATCH] Fix gstd_chmod.sh DESTDIR path. This should fix the chmod path when cross compiling. Signed-off-by: James Hilliard [Upstream status: https://github.com/RidgeRun/gstd-1.x/pull/247] --- gstd/gstd_chmod.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gstd/gstd_chmod.sh b/gstd/gstd_chmod.sh index 8e58bce..fa7fa80 100755 --- a/gstd/gstd_chmod.sh +++ b/gstd/gstd_chmod.sh @@ -3,4 +3,4 @@ # $1 mode # $2 file -chmod $1 $2 +chmod $1 ${DESTDIR}/$2 -- 2.25.1 ================================================ FILE: package/gstreamer1/gstd/0002-Don-t-require-gstreamer-check-1.0-unless-tests-are-e.patch ================================================ From 586bb97459e72da30bd9991c228b6b8e9251c68b Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Tue, 14 Sep 2021 01:49:49 -0600 Subject: [PATCH] Don't require gstreamer-check-1.0 unless tests are enabled. Signed-off-by: James Hilliard [Upstream status: https://github.com/RidgeRun/gstd-1.x/pull/248] --- meson.build | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 1d9ce9d..76990a0 100644 --- a/meson.build +++ b/meson.build @@ -22,10 +22,12 @@ gio_unix_dep = dependency('gio-unix-2.0', version : '>=2.44.1') json_glib_dep = dependency('json-glib-1.0', version : '>=0.16.2') libd_dep = dependency('libdaemon', version : '>=0.14') jansson_dep = dependency('jansson', version : '>=2.7') -gst_check_dep = dependency('gstreamer-check-1.0',version : '>=1.0.5') thread_dep = dependency('threads') libsoup_dep = dependency('libsoup-2.4', version : '>=2.4') +gst_check_required = get_option('enable-tests').enabled() +gst_check_dep = dependency('gstreamer-check-1.0', required : gst_check_required, version : '>=1.0.5') + systemd_required = get_option('enable-systemd').enabled() systemd_dep = dependency('systemd', required : systemd_required, version : '>=232') -- 2.25.1 ================================================ FILE: package/gstreamer1/gstd/0003-Use-relative-symlink-for-gstd-gst-client-exe.patch ================================================ From a670beca8dcc76171dcfe3f10970d76c6f0439be Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Tue, 14 Sep 2021 02:49:10 -0600 Subject: [PATCH] Use relative symlink for gstd/gst-client exe. This should fix the symlink path when cross compiling. Signed-off-by: James Hilliard [Upstream status: https://github.com/RidgeRun/gstd-1.x/pull/249] --- gst_client/gst_client_symbolic_link.sh | 2 +- gstd/gstd_symbolic_link.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gst_client/gst_client_symbolic_link.sh b/gst_client/gst_client_symbolic_link.sh index d8d7617..b87dd12 100755 --- a/gst_client/gst_client_symbolic_link.sh +++ b/gst_client/gst_client_symbolic_link.sh @@ -4,4 +4,4 @@ # $1: target # $2: link name rm -f ${DESTDIR}${MESON_INSTALL_PREFIX}/$2 -ln -s ${DESTDIR}${MESON_INSTALL_PREFIX}/$1 ${DESTDIR}${MESON_INSTALL_PREFIX}/$2 +ln -s --relative ${DESTDIR}${MESON_INSTALL_PREFIX}/$1 ${DESTDIR}${MESON_INSTALL_PREFIX}/$2 diff --git a/gstd/gstd_symbolic_link.sh b/gstd/gstd_symbolic_link.sh index d8d7617..b87dd12 100755 --- a/gstd/gstd_symbolic_link.sh +++ b/gstd/gstd_symbolic_link.sh @@ -4,4 +4,4 @@ # $1: target # $2: link name rm -f ${DESTDIR}${MESON_INSTALL_PREFIX}/$2 -ln -s ${DESTDIR}${MESON_INSTALL_PREFIX}/$1 ${DESTDIR}${MESON_INSTALL_PREFIX}/$2 +ln -s --relative ${DESTDIR}${MESON_INSTALL_PREFIX}/$1 ${DESTDIR}${MESON_INSTALL_PREFIX}/$2 -- 2.25.1 ================================================ FILE: package/gstreamer1/gstd/0004-Don-t-require-gstd-check-user-xenv.sh-for-systemd-se.patch ================================================ From 05ae5237b1bc23399898f9c06463cfe2b5bba499 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Tue, 14 Sep 2021 17:48:03 -0600 Subject: [PATCH] Don't require gstd-check-user-xenv.sh for systemd service The gstd-check-user-xenv.sh script does not appear to be required for running the gstd service so we shouldn't require it for the service to start. Note that the non-systemd init script already does not require this. Signed-off-by: James Hilliard [Upstream status: https://github.com/RidgeRun/gstd-1.x/pull/251] --- init/gstd.service.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init/gstd.service.in b/init/gstd.service.in index 3d20ecd..9125983 100644 --- a/init/gstd.service.in +++ b/init/gstd.service.in @@ -6,7 +6,7 @@ StartLimitIntervalSec=30 [Service] Restart=on-failure RestartSec=5s -ExecStartPre=@GSTD_SYSTEMD_DIR@/gstd-check-user-xenv.sh +ExecStartPre=-@GSTD_SYSTEMD_DIR@/gstd-check-user-xenv.sh ExecStart=@prefix@/bin/gstd [Install] -- 2.25.1 ================================================ FILE: package/gstreamer1/gstd/0005-Use-native-meson-python-module-for-python-install.patch ================================================ From 1067f6138e947d18fd835e4a39f229ae2293f864 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Tue, 14 Sep 2021 23:37:03 -0600 Subject: [PATCH] Use native meson python module for python install. Signed-off-by: James Hilliard [upstreeam: https://github.com/RidgeRun/gstd-1.x/pull/253] Signed-off-by: Yann E. MORIN --- libgstc/meson.build | 4 +++- libgstc/python/meson.build | 26 +++++++++++++++++++++++++- meson_options.txt | 2 ++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/libgstc/meson.build b/libgstc/meson.build index e94dcd1..582cbb8 100644 --- a/libgstc/meson.build +++ b/libgstc/meson.build @@ -1,2 +1,4 @@ subdir('c') -subdir('python') +if not get_option('enable-python').disabled() + subdir('python') +endif diff --git a/libgstc/python/meson.build b/libgstc/python/meson.build index 057114b..24e3242 100644 --- a/libgstc/python/meson.build +++ b/libgstc/python/meson.build @@ -1 +1,25 @@ -run_command('pip3', 'install', '.') +pymod = import('python') +python = pymod.find_installation( + get_option('with-python-version'), + required : get_option('enable-python').enabled(), + disabler : true +) + +pythonver = python.language_version() +if pythonver.version_compare('<3.7') + error('Python @0@ is not supported anymore, please port your code to python3.7 or newer.'.format(python.language_version())) +endif + +pygstc_src_files = [ + 'pygstc/__init__.py', + 'pygstc/gstc.py', + 'pygstc/gstcerror.py', + 'pygstc/logger.py', + 'pygstc/tcp.py' +] + +python.install_sources( + pygstc_src_files, + subdir : 'pygstc', + pure : true +) diff --git a/meson_options.txt b/meson_options.txt index f50e540..25292e6 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -4,6 +4,7 @@ option('enable-examples', type : 'feature', value : 'auto', yield : true, descri option('enable-gtk-doc', type : 'boolean', value : false, description : 'Use gtk-doc to build documentation') option('enable-systemd', type : 'feature', value : 'auto', description : 'Enable systemd gstd.service install') option('enable-initd', type : 'feature', value : 'disabled', description : 'Enable init script install') +option('enable-python', type : 'feature', value : 'auto', description : 'Install the pygstc library') # String options option('with-gstd-runstatedir', type : 'string', value : '${prefix}/var/run/gstd', description : 'Specify the location of the gstd\'s PID file') @@ -11,6 +12,7 @@ option('with-gstd-logstatedir', type : 'string', value : '${prefix}/var/log/gstd option('with-gstd-systemddir', type : 'string', value : 'Systemd default systemduserunitdir', description : 'Specify the location of gstd.service file') option('with-gstd-initddir', type : 'string', value : '${sysconfdir}/init.d', description : 'Specify the location of gstd init script') option('with-statedir-owner', type : 'string', value : 'root', description : 'Specify the owner of gstd\'s run and log dirs created by the initd script') +option('with-python-version', type : 'string', value : 'python3', description : 'Specify the python version for pygstc installation') # Common options option('package-name', type : 'string', yield : true, -- 2.25.1 ================================================ FILE: package/gstreamer1/gstd/Config.in ================================================ config BR2_PACKAGE_GSTD bool "gstd" depends on BR2_USE_WCHAR # libglib2 -> gettext, libsoup depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2, libsoup depends on BR2_USE_MMU # libdaemon, libglib2 select BR2_PACKAGE_GSTREAMER1_GST_DEBUG # gst_debug_bin_to_dot_data select BR2_PACKAGE_JANSSON select BR2_PACKAGE_JSON_GLIB select BR2_PACKAGE_LIBDAEMON select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBSOUP select BR2_PACKAGE_READLINE help GStreamer Daemon, also called gstd, is a GStreamer framework for controlling audio and video streaming using an InterProcess Communication protocol. https://developer.ridgerun.com/wiki/index.php?title=GStreamer_Daemon ================================================ FILE: package/gstreamer1/gstd/gstd.hash ================================================ # Locally calculated sha256 94c10c798d3618b63cc68cbe053fabd19335a57f982a47b3d66c27c37d325da3 gstd-0.13.0.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/gstreamer1/gstd/gstd.mk ================================================ ################################################################################ # # gstd # ################################################################################ GSTD_VERSION = 0.13.0 GSTD_SITE = $(call github,RidgeRun,gstd-1.x,v$(GSTD_VERSION)) GSTD_LICENSE_FILES = COPYING GSTD_LICENSE = GPL-2.0+ GSTD_DEPENDENCIES = \ $(BR2_COREUTILS_HOST_DEPENDENCY) \ gstreamer1 \ jansson \ json-glib \ libdaemon \ libglib2 \ libsoup \ readline GSTD_CONF_OPTS = \ -Denable-tests=disabled \ -Denable-examples=disabled \ -Denable-gtk-doc=false \ -Denable-python=disabled \ -Dwith-gstd-runstatedir=/var/run/gstd \ -Dwith-gstd-logstatedir=/var/log/gstd \ -Dwith-gstd-systemddir=/usr/lib/systemd/system ifeq ($(BR2_PACKAGE_SYSTEMD),y) GSTD_CONF_OPTS += -Denable-systemd=enabled -Denable-initd=disabled GSTD_DEPENDENCIES += systemd else GSTD_CONF_OPTS += -Denable-systemd=disabled -Denable-initd=enabled endif $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gstreamer1/Config.in ================================================ comment "gstreamer 1.x needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_GSTREAMER1 bool "gstreamer 1.x" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 select BR2_PACKAGE_LIBGLIB2 help GStreamer is an open source multimedia framework. This 1.x version of Gstreamer is incompatible with Gstreamer 0.10.x. https://gstreamer.freedesktop.org/ if BR2_PACKAGE_GSTREAMER1 config BR2_PACKAGE_GSTREAMER1_CHECK bool "enable unit test libraries" help Enable building unit test libraries for gstreamer. config BR2_PACKAGE_GSTREAMER1_PARSE bool "enable command-line parser" default y help Enable command line parser for gstreamer. This may increase the CPU overhead by a small amount. config BR2_PACKAGE_GSTREAMER1_TRACE bool "enable tracing subsystem" default y help Enable the tracing subsystem within gstreamer. This may increase CPU overhead by a small amount. config BR2_PACKAGE_GSTREAMER1_GST_DEBUG bool "enable gst-debug trace support" default y help Enable support for the gst-debug tracing functionality in gstreamer. This has limited CPU overhead, but does increase the rootfs size somewhat. config BR2_PACKAGE_GSTREAMER1_PLUGIN_REGISTRY bool "enable plugin registry" default y help Enable support for the GStreamer plugin registry. This may increase the launch-time for a GStreamer application. config BR2_PACKAGE_GSTREAMER1_INSTALL_TOOLS bool "install tools" default y help Install the gst-inspect, gst-launch, gst-stats and gst-typefind tools. This will take up additional space on the target. endif ================================================ FILE: package/gstreamer1/gstreamer1/gstreamer1.hash ================================================ # From https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.18.5.tar.xz.sha256sum sha256 55862232a63459bbf56abebde3085ca9aec211b478e891dacea4d6df8cafe80a gstreamer-1.18.5.tar.xz sha256 f445dc78b88496f7e20c7a2a461b95baba5865c8919b8289ac24ac0a80c6ce7a COPYING ================================================ FILE: package/gstreamer1/gstreamer1/gstreamer1.mk ================================================ ################################################################################ # # gstreamer1 # ################################################################################ GSTREAMER1_VERSION = 1.18.5 GSTREAMER1_SOURCE = gstreamer-$(GSTREAMER1_VERSION).tar.xz GSTREAMER1_SITE = https://gstreamer.freedesktop.org/src/gstreamer GSTREAMER1_INSTALL_STAGING = YES GSTREAMER1_LICENSE_FILES = COPYING GSTREAMER1_LICENSE = LGPL-2.0+, LGPL-2.1+ GSTREAMER1_CPE_ID_VENDOR = gstreamer_project GSTREAMER1_CPE_ID_PRODUCT = gstreamer GSTREAMER1_CONF_OPTS = \ -Dexamples=disabled \ -Dtests=disabled \ -Dbenchmarks=disabled \ -Dtools=$(if $(BR2_PACKAGE_GSTREAMER1_INSTALL_TOOLS),enabled,disabled) \ -Dgtk_doc=disabled \ -Dgobject-cast-checks=disabled \ -Dglib-asserts=disabled \ -Dglib-checks=disabled \ -Dextra-checks=disabled \ -Dcheck=$(if $(BR2_PACKAGE_GSTREAMER1_CHECK),enabled,disabled) \ -Dtracer_hooks=$(if $(BR2_PACKAGE_GSTREAMER1_TRACE),true,false) \ -Doption-parsing=$(if $(BR2_PACKAGE_GSTREAMER1_PARSE),true,false) \ -Dgst_debug=$(if $(BR2_PACKAGE_GSTREAMER1_GST_DEBUG),true,false) \ -Dgst_parse=true \ -Dregistry=$(if $(BR2_PACKAGE_GSTREAMER1_PLUGIN_REGISTRY),true,false) \ -Ddoc=disabled GSTREAMER1_DEPENDENCIES = \ host-bison \ host-flex \ host-pkgconf \ libglib2 \ $(if $(BR2_PACKAGE_LIBUNWIND),libunwind) \ $(if $(BR2_PACKAGE_VALGRIND),valgrind) \ $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) GSTREAMER1_CONF_OPTS += -Dintrospection=enabled GSTREAMER1_DEPENDENCIES += gobject-introspection else GSTREAMER1_CONF_OPTS += -Dintrospection=disabled endif GSTREAMER1_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) # By default, girdir uses datadir as its prefix of which pkg-config will not # append the sysroot directory. This results in a build failure with # gst1-plugins-base. Changing prefix to ${libdir}/../share prevents this error. define GSTREAMER1_FIX_GIRDIR $(SED) "s%girdir=.*%girdir=\$${libdir}/../share/gir-1.0%g" \ $(STAGING_DIR)/usr/lib/pkgconfig/gstreamer-1.0.pc \ $(STAGING_DIR)/usr/lib/pkgconfig/gstreamer-base-1.0.pc endef GSTREAMER1_POST_INSTALL_STAGING_HOOKS += GSTREAMER1_FIX_GIRDIR $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gstreamer1-editing-services/Config.in ================================================ config BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES bool "gstreamer1-editing-services" select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_GST1_PLUGINS_BASE select BR2_PACKAGE_GST1_PLUGINS_GOOD select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT # runtime select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOMIXER # runtime select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE # runtime select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT # runtime select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOTESTSRC # runtime select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE # runtime select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME # runtime select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_IMAGEFREEZE # runtime help GStreamer Editing Services is a high-level library for facilitating the creation of audio/video non-linear editors. https://gstreamer.freedesktop.org ================================================ FILE: package/gstreamer1/gstreamer1-editing-services/gstreamer1-editing-services.hash ================================================ # From https://gstreamer.freedesktop.org/src/gstreamer-editing-services/gst-editing-services-1.18.5.tar.xz.sha256sum sha256 8af4a8394d051f3e18280686db49a6efaccc95c0c59a17f0f564e32000590df5 gst-editing-services-1.18.5.tar.xz # Hashes for license files: sha256 f445dc78b88496f7e20c7a2a461b95baba5865c8919b8289ac24ac0a80c6ce7a COPYING sha256 f445dc78b88496f7e20c7a2a461b95baba5865c8919b8289ac24ac0a80c6ce7a COPYING.LIB ================================================ FILE: package/gstreamer1/gstreamer1-editing-services/gstreamer1-editing-services.mk ================================================ ################################################################################ # # gstreamer1-editing-services # ################################################################################ GSTREAMER1_EDITING_SERVICES_VERSION = 1.18.5 GSTREAMER1_EDITING_SERVICES_SOURCE = gst-editing-services-$(GSTREAMER1_EDITING_SERVICES_VERSION).tar.xz GSTREAMER1_EDITING_SERVICES_SITE = https://gstreamer.freedesktop.org/src/gstreamer-editing-services GSTREAMER1_EDITING_SERVICES_LICENSE = LGPL-2.0+ GSTREAMER1_EDITING_SERVICES_LICENSE_FILES = COPYING COPYING.LIB GSTREAMER1_EDITING_SERVICES_INSTALL_STAGING = YES GSTREAMER1_EDITING_SERVICES_DEPENDENCIES = \ host-pkgconf \ gstreamer1 \ gst1-plugins-base \ gst1-plugins-good \ libxml2 GSTREAMER1_EDITING_SERVICES_CONF_OPTS = \ -Ddoc=disabled \ -Dexamples=disabled \ -Dintrospection=disabled \ -Dtests=disabled \ -Dtools=enabled \ -Dbash-completion=disabled \ -Dxptv=disabled \ -Dpython=disabled ifeq ($(BR2_PACKAGE_GST1_DEVTOOLS),y) GSTREAMER1_EDITING_SERVICES_DEPENDENCIES += gst1-devtools GSTREAMER1_EDITING_SERVICES_CONF_OPTS += -Dvalidate=enabled else GSTREAMER1_EDITING_SERVICES_CONF_OPTS += -Dvalidate=disabled endif $(eval $(meson-package)) ================================================ FILE: package/gstreamer1/gstreamer1-mm/0001-Fix-build-against-glib-2-68.patch ================================================ From 0c0b5f8cef3b1f0a06f56c34340e210e0f23d1b0 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Tue, 13 Jul 2021 10:32:30 +0000 Subject: [PATCH] Fix build against glib 2.68 volatile has been misused in the past [Retrieved from: https://gitlab.gnome.org/GNOME/gstreamermm/-/merge_requests/4] Signed-off-by: Fabrice Fontaine --- gstreamer/gstreamermm/register.h | 2 +- tests/integration/test-integration-seekonstartup.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gstreamer/gstreamermm/register.h b/gstreamer/gstreamermm/register.h index db66d172..a7ab3a63 100644 --- a/gstreamer/gstreamermm/register.h +++ b/gstreamer/gstreamermm/register.h @@ -110,7 +110,7 @@ register_mm_type(const gchar * type_name) /* The typedef for GType may be gulong or gsize, depending on the * system and whether the compiler is c++ or not. The g_once_init_* * functions always take a gsize * though ... */ - static volatile gsize gonce_data = 0; + static gsize gonce_data = 0; if (g_once_init_enter (&gonce_data)) { GTypeInfo info; diff --git a/tests/integration/test-integration-seekonstartup.cc b/tests/integration/test-integration-seekonstartup.cc index 247ac499..cd43a125 100644 --- a/tests/integration/test-integration-seekonstartup.cc +++ b/tests/integration/test-integration-seekonstartup.cc @@ -18,7 +18,7 @@ RefPtr mainloop; RefPtr bus; RefPtr pipeline; RefPtr sink_pad; -static volatile gint counter; +static gint counter; bool prerolled = false; gboolean was_check = 0; -- GitLab ================================================ FILE: package/gstreamer1/gstreamer1-mm/Config.in ================================================ config BR2_PACKAGE_GSTREAMER1_MM bool "gstreamer1-mm" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # glibmm depends on BR2_INSTALL_LIBSTDCPP # glibmm depends on BR2_USE_WCHAR # glibmm -> libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # glibmm -> libglib2 select BR2_PACKAGE_GLIBMM select BR2_PACKAGE_GSTREAMER1_CHECK select BR2_PACKAGE_GST1_PLUGINS_BASE help gstreamermm provides C++ bindings for the GStreamer streaming multimedia library (http://gstreamer.freedesktop.org). With gstreamermm it is possible to develop applications that work with multimedia in C++. gstreamermm is developed over glibmm, libsigc++ and libxml++ and the functionalities they provide. This means that, among other things, referencing and unreferencing of GObjects is handled automatically via glibmm's automatic pointer class, Glib::RefPtr, and libsigc++'s slots are used for callbacks and signals. https://gstreamer.freedesktop.org/bindings/cplusplus.html comment "gstreamer1-mm needs a toolchain w/ C++, wchar, threads, gcc >= 4.9" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_USE_WCHAR \ || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/gstreamer1/gstreamer1-mm/gstreamer1-mm.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/gstreamermm/1.10/gstreamermm-1.10.0.sha256sum sha256 be58fe9ef7d7e392568ec85e80a84f4730adbf91fb0355ff7d7c616675ea8d60 gstreamermm-1.10.0.tar.xz # Locally computed sha256 7c78a8d7fc6781d51402d5a6036bedda9cffb0e5d28757e25d54d6eacbb1949f COPYING sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING.examples ================================================ FILE: package/gstreamer1/gstreamer1-mm/gstreamer1-mm.mk ================================================ ################################################################################ # # gstreamer1-mm # ################################################################################ GSTREAMER1_MM_VERSION_MAJOR = 1.10 GSTREAMER1_MM_VERSION = $(GSTREAMER1_MM_VERSION_MAJOR).0 GSTREAMER1_MM_SITE = http://ftp.gnome.org/pub/gnome/sources/gstreamermm/$(GSTREAMER1_MM_VERSION_MAJOR) GSTREAMER1_MM_SOURCE = gstreamermm-$(GSTREAMER1_MM_VERSION).tar.xz GSTREAMER1_MM_LICENSE = LGPL-2.1+ (library), GPL-2.0 (examples) GSTREAMER1_MM_LICENSE_FILES = COPYING COPYING.examples GSTREAMER1_MM_INSTALL_STAGING = YES GSTREAMER1_MM_DEPENDENCIES += \ glibmm \ gstreamer1 \ gst1-plugins-base GSTREAMER1_MM_CONF_OPTS += \ --disable-gl \ --enable-unittests=no \ --disable-deprecated-api $(eval $(autotools-package)) ================================================ FILE: package/gstreamer1/gstreamer1.mk ================================================ include $(sort $(wildcard package/gstreamer1/*/*.mk)) ================================================ FILE: package/gtest/0001-pkg-config-fix-gtest.pc-gmock.pc-library-names-for-t.patch ================================================ From cf5a3177159ca832470e7f876cab0a1923fa666f Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Fri, 22 Oct 2021 20:17:36 +0200 Subject: [PATCH] pkg-config: fix gtest.pc/gmock.pc library names for the debug build In case CMAKE_BUILD_TYPE is set to Debug the gtest library is name libgtestd.a but the link command returned from gtest.pc is '-lgtest' (without the debug d) and so the linking of dependent packages fails (see [1] for a buildroot failure example). Enhance the gtest.pc ang gmock.pc generation to honour the debug 'd'. [1] http://lists.busybox.net/pipermail/buildroot/2021-October/626382.html [Upstream: https://github.com/google/googletest/pull/3625] Signed-off-by: Peter Seiderer --- googlemock/cmake/gmock.pc.in | 2 +- googletest/cmake/gtest.pc.in | 2 +- googletest/cmake/internal_utils.cmake | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/googlemock/cmake/gmock.pc.in b/googlemock/cmake/gmock.pc.in index 23c67b5c..0f469857 100644 --- a/googlemock/cmake/gmock.pc.in +++ b/googlemock/cmake/gmock.pc.in @@ -6,5 +6,5 @@ Description: GoogleMock (without main() function) Version: @PROJECT_VERSION@ URL: https://github.com/google/googletest Requires: gtest = @PROJECT_VERSION@ -Libs: -L${libdir} -lgmock @CMAKE_THREAD_LIBS_INIT@ +Libs: -L${libdir} -lgmock@DEBUG_POSTFIX@ @CMAKE_THREAD_LIBS_INIT@ Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@ diff --git a/googletest/cmake/gtest.pc.in b/googletest/cmake/gtest.pc.in index b4148fae..225bba81 100644 --- a/googletest/cmake/gtest.pc.in +++ b/googletest/cmake/gtest.pc.in @@ -5,5 +5,5 @@ Name: gtest Description: GoogleTest (without main() function) Version: @PROJECT_VERSION@ URL: https://github.com/google/googletest -Libs: -L${libdir} -lgtest @CMAKE_THREAD_LIBS_INIT@ +Libs: -L${libdir} -lgtest@DEBUG_POSTFIX@ @CMAKE_THREAD_LIBS_INIT@ Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@ diff --git a/googletest/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake index 58fc9bfb..fd81b825 100644 --- a/googletest/cmake/internal_utils.cmake +++ b/googletest/cmake/internal_utils.cmake @@ -335,6 +335,9 @@ function(install_project) # Configure and install pkgconfig files. foreach(t ${ARGN}) set(configured_pc "${generated_dir}/${t}.pc") + if(CMAKE_BUILD_TYPE MATCHES Debug) + set(DEBUG_POSTFIX "d") + endif() configure_file("${PROJECT_SOURCE_DIR}/cmake/${t}.pc.in" "${configured_pc}" @ONLY) install(FILES "${configured_pc}" -- 2.33.1 ================================================ FILE: package/gtest/Config.in ================================================ config BR2_PACKAGE_GTEST bool "gtest" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on BR2_USE_MMU # fork() help Google's framework for writing C++ tests on a variety of platforms (Linux, Mac OS X, Windows, Cygwin, Windows CE, and Symbian). Based on the xUnit architecture. Supports automatic test discovery, a rich set of assertions, user-defined assertions, death tests, fatal and non-fatal failures, value- and type-parameterized tests, various options for running the tests, and XML test report generation. Gtest also allows to easily build testsuites for C programs. This package allows running testsuites on the target which might be advantageous in certain cases. https://github.com/google/googletest if BR2_PACKAGE_GTEST config BR2_PACKAGE_GTEST_GMOCK bool "gmock" help Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s specifics in mind, Google C++ Mocking Framework (or Google Mock for short) is a library for writing and using C++ mock classes. Google Mock: * lets you create mock classes trivially using simple macros, supports a rich set of matchers and actions, * handles unordered, partially ordered, or completely ordered expectations, * is extensible by users, and * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and Symbian. There are both host and target packages. The target one has include files required to compile the tests and the static libraries required to link/run them. The host package installs gmock_gen, a Python script used to generate code mocks. endif # BR2_PACKAGE_GTEST comment "gtest needs a toolchain w/ C++, wchar, threads, gcc >= 4.9" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/gtest/gtest.hash ================================================ # Locally computed: sha256 b4870bf121ff7795ba20d20bcdd8627b8e088f2d1dab299a031c1034eddc93d5 gtest-1.11.0.tar.gz sha256 9702de7e4117a8e2b20dafab11ffda58c198aede066406496bef670d40a22138 LICENSE ================================================ FILE: package/gtest/gtest.mk ================================================ ################################################################################ # # gtest # ################################################################################ GTEST_VERSION = 1.11.0 GTEST_SITE = $(call github,google,googletest,release-$(GTEST_VERSION)) GTEST_INSTALL_STAGING = YES GTEST_INSTALL_TARGET = NO GTEST_LICENSE = BSD-3-Clause GTEST_LICENSE_FILES = LICENSE GTEST_CPE_ID_VENDOR = google GTEST_CPE_ID_PRODUCT = google_test ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y) GTEST_DEPENDENCIES += host-gtest endif HOST_GTEST_LICENSE = Apache-2.0 HOST_GTEST_LICENSE_FILES = googlemock/scripts/generator/LICENSE ifeq ($(BR2_PACKAGE_PYTHON3),y) HOST_GTEST_PYTHON_VERSION = $(PYTHON3_VERSION_MAJOR) HOST_GTEST_DEPENDENCIES += host-python3 else HOST_GTEST_PYTHON_VERSION = $(PYTHON_VERSION_MAJOR) HOST_GTEST_DEPENDENCIES += host-python endif HOST_GTEST_GMOCK_PYTHONPATH = \ $(HOST_DIR)/lib/python$(HOST_GTEST_PYTHON_VERSION)/site-packages # While it is possible to build gtest as shared library, using this gtest shared # library requires to set some special configure option in the project using # gtest. # So, force to build gtest as a static library. # # For further details, refer to the explaination given in the README file from # the gtest sources. GTEST_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF # Ensure that GTest is compiled with -fPIC to allow linking the static # libraries with dynamically linked programs. This is not a requirement # for most architectures but is mandatory for ARM. ifeq ($(BR2_STATIC_LIBS),) GTEST_CONF_OPTS += -DCMAKE_POSITION_INDEPENDENT_CODE=ON endif ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y) GTEST_CONF_OPTS += -DBUILD_GMOCK=ON else GTEST_CONF_OPTS += -DBUILD_GMOCK=OFF endif define HOST_GTEST_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/googlemock/scripts/generator/gmock_gen.py \ $(HOST_DIR)/bin/gmock_gen cp -rp $(@D)/googlemock/scripts/generator/cpp \ $(HOST_GTEST_GMOCK_PYTHONPATH) endef $(eval $(cmake-package)) # The host package does not build anything, just installs gmock_gen stuff, so # it does not need to be a host-cmake-package. $(eval $(host-generic-package)) ================================================ FILE: package/gtk2-engines/Config.in ================================================ config BR2_PACKAGE_GTK2_ENGINES bool "gtk engines" depends on BR2_PACKAGE_LIBGTK2 help A collection of basic theme engines for GTK+. ================================================ FILE: package/gtk2-engines/gtk2-engines.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/gtk-engines/2.20/gtk-engines-2.20.2.sha256sum sha256 15b680abca6c773ecb85253521fa100dd3b8549befeecc7595b10209d62d66b5 gtk-engines-2.20.2.tar.bz2 # Locally computed sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING ================================================ FILE: package/gtk2-engines/gtk2-engines.mk ================================================ ################################################################################ # # gtk2-engines # ################################################################################ GTK2_ENGINES_VERSION_MAJOR = 2.20 GTK2_ENGINES_VERSION = $(GTK2_ENGINES_VERSION_MAJOR).2 GTK2_ENGINES_SOURCE = gtk-engines-$(GTK2_ENGINES_VERSION).tar.bz2 GTK2_ENGINES_SITE = http://ftp.gnome.org/pub/GNOME/sources/gtk-engines/$(GTK2_ENGINES_VERSION_MAJOR) GTK2_ENGINES_DEPENDENCIES = libgtk2 host-intltool GTK2_ENGINES_LICENSE = LGPL-2.1+ GTK2_ENGINES_LICENSE_FILES = COPYING GTK2_ENGINES_CONF_ENV = \ ac_cv_func_posix_getpwuid_r=yes \ glib_cv_stack_grows=no \ glib_cv_uscore=no \ ac_cv_func_strtod=yes \ ac_fsusage_space=yes \ fu_cv_sys_stat_statfs2_bsize=yes \ ac_cv_func_closedir_void=no \ ac_cv_func_getloadavg=no \ ac_cv_lib_util_getloadavg=no \ ac_cv_lib_getloadavg_getloadavg=no \ ac_cv_func_getgroups=yes \ ac_cv_func_getgroups_works=yes \ ac_cv_func_chown_works=yes \ ac_cv_have_decl_euidaccess=no \ ac_cv_func_euidaccess=no \ ac_cv_have_decl_strnlen=yes \ ac_cv_func_strnlen_working=yes \ ac_cv_func_lstat_dereferences_slashed_symlink=yes \ ac_cv_func_lstat_empty_string_bug=no \ ac_cv_func_stat_empty_string_bug=no \ vb_cv_func_rename_trailing_slash_bug=no \ ac_cv_have_decl_nanosleep=yes \ jm_cv_func_nanosleep_works=yes \ gl_cv_func_working_utimes=yes \ ac_cv_func_utime_null=yes \ ac_cv_have_decl_strerror_r=yes \ ac_cv_func_strerror_r_char_p=no \ jm_cv_func_svid_putenv=yes \ ac_cv_func_getcwd_null=yes \ ac_cv_func_getdelim=yes \ ac_cv_func_mkstemp=yes \ utils_cv_func_mkstemp_limitations=no \ utils_cv_func_mkdir_trailing_slash_bug=no \ jm_cv_func_gettimeofday_clobber=no \ gl_cv_func_working_readdir=yes \ jm_ac_cv_func_link_follows_symlink=no \ utils_cv_localtime_cache=no \ ac_cv_struct_st_mtim_nsec=no \ gl_cv_func_tzset_clobber=no \ gl_cv_func_getcwd_null=yes \ gl_cv_func_getcwd_path_max=yes \ ac_cv_func_fnmatch_gnu=yes \ am_getline_needs_run_time_check=no \ am_cv_func_working_getline=yes \ gl_cv_func_mkdir_trailing_slash_bug=no \ gl_cv_func_mkstemp_limitations=no \ ac_cv_func_working_mktime=yes \ jm_cv_func_working_re_compile_pattern=yes \ ac_use_included_regex=no \ gl_cv_c_restrict=no \ ac_cv_path_CUPS_CONFIG=no GTK2_ENGINES_CONF_OPTS = \ --with-x \ --x-includes=$(STAGING_DIR)/usr/include/X11 \ --x-libraries=$(STAGING_DIR)/usr/lib \ --disable-glibtest \ --enable-explicit-deps=no \ --enable-clearlooks \ --disable-crux \ --disable-hc \ --disable-industrial \ --disable-mist \ --disable-redmond \ --disable-smooth \ --disable-glide \ --disable-thinice \ --enable-animation \ --disable-development \ --disable-paranoia \ --disable-deprecated $(eval $(autotools-package)) ================================================ FILE: package/gtkmm3/Config.in ================================================ comment "gtkmm3 needs libgtk3 and a toolchain w/ C++, wchar, threads, gcc >= 4.9" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !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, # revisit when they are upgraded with at least Binutils >= 2.26 # and GCC >= 5.3. # https://sourceware.org/bugzilla/show_bug.cgi?id=19405 depends on !BR2_nios2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pangomm, libgtk3 -> pango -> harfbuzz depends on BR2_INSTALL_LIBSTDCPP # glibmm, libpangomm -> glibmm/pango depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 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_LIBSIGC select BR2_PACKAGE_PANGOMM help The gtkmm3 package is a set of C++ bindings for GTK 3. http://www.gtkmm.org/ ================================================ FILE: package/gtkmm3/gtkmm3.hash ================================================ # From http://ftp.gnome.org/pub/GNOME/sources/gtkmm/3.22/gtkmm-3.22.0.sha256sum sha256 05da4d4b628fb20c8384630ddf478a3b5562952b2d6181fe28d58f6cbc0514f5 gtkmm-3.22.0.tar.xz # Locally computed sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING.tools ================================================ FILE: package/gtkmm3/gtkmm3.mk ================================================ ################################################################################ # # gtkmm3 # ################################################################################ GTKMM3_VERSION_MAJOR = 3.22 GTKMM3_VERSION = $(GTKMM3_VERSION_MAJOR).0 GTKMM3_SOURCE = gtkmm-$(GTKMM3_VERSION).tar.xz GTKMM3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtkmm/$(GTKMM3_VERSION_MAJOR) GTKMM3_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (tools) GTKMM3_LICENSE_FILES = COPYING COPYING.tools GTKMM3_INSTALL_STAGING = YES GTKMM3_DEPENDENCIES = atkmm cairomm glibmm libgtk3 libsigc pangomm host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/gtkperf/Config.in ================================================ config BR2_PACKAGE_GTKPERF bool "gtkperf (performance test for GTK2)" depends on BR2_PACKAGE_LIBGTK2 help GtkPerf is an application designed to test GTK+ performance. The point is to create common testing platform to run predefined GTK+ widgets e.g. (opening comboboxes, toggling buttons, scrolling text yms.) and this way define the speed of device/platform. http://gtkperf.sourceforge.net/ ================================================ FILE: package/gtkperf/gtkperf.hash ================================================ # Locally computed: sha256 9704344e732038eecbd007dd996a56293a6b027b5b76f3f036273a3fae1ab27b gtkperf_0.40.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/gtkperf/gtkperf.mk ================================================ ################################################################################ # # gtkperf # ################################################################################ GTKPERF_VERSION = 0.40 GTKPERF_SOURCE = gtkperf_$(GTKPERF_VERSION).tar.gz GTKPERF_SITE = http://downloads.sourceforge.net/project/gtkperf/gtkperf/$(GTKPERF_VERSION) GTKPERF_DEPENDENCIES = libgtk2 $(TARGET_NLS_DEPENDENCIES) GTKPERF_LICENSE = GPL-2.0 GTKPERF_LICENSE_FILES = COPYING GTKPERF_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) $(eval $(autotools-package)) ================================================ FILE: package/gtksourceview/Config.in ================================================ 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 ================================================ FILE: package/gtksourceview/gtksourceview.hash ================================================ # Hash from: http://ftp.gnome.org/pub/gnome/sources/gtksourceview/3.24/gtksourceview-3.24.7.sha256sum: sha256 a5c20d3a6347533689358f3ea52486409f6dd41d5a69c65eab7570cfaffee8e6 gtksourceview-3.24.7.tar.xz # Locally computed: sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING ================================================ FILE: package/gtksourceview/gtksourceview.mk ================================================ ################################################################################ # # gtksourceview # ################################################################################ GTKSOURCEVIEW_VERSION_MAJOR = 3.24 GTKSOURCEVIEW_VERSION = $(GTKSOURCEVIEW_VERSION_MAJOR).7 GTKSOURCEVIEW_SOURCE = gtksourceview-$(GTKSOURCEVIEW_VERSION).tar.xz GTKSOURCEVIEW_SITE = \ http://ftp.gnome.org/pub/gnome/sources/gtksourceview/$(GTKSOURCEVIEW_VERSION_MAJOR) GTKSOURCEVIEW_LICENSE = LGPL-2.1+ GTKSOURCEVIEW_LICENSE_FILES = COPYING GTKSOURCEVIEW_INSTALL_STAGING = YES GTKSOURCEVIEW_DEPENDENCIES = host-pkgconf libglib2 libxml2 libgtk3 $(eval $(autotools-package)) ================================================ FILE: package/guile/0001-fix_arm_endianness.patch ================================================ Fix support for ARM endianness, otherwise it gives the error "unknown CPU endianness" Signed-off-by: Pedro Aguilar diff -Nau guile-2.0.11.orig/module/system/base/target.scm guile-2.0.11/module/system/base/target.scm --- guile-2.0.11.orig/module/system/base/target.scm 2013-02-28 09:42:45.000000000 +0100 +++ guile-2.0.11/module/system/base/target.scm 2014-11-03 23:05:01.789338997 +0100 @@ -70,7 +70,15 @@ ((member cpu '("sparc" "sparc64" "powerpc" "powerpc64" "spu" "mips" "mips64")) (endianness big)) - ((string-match "^arm.*el" cpu) + ((string-match "^arm.*el" cpu) + (endianness little)) + ((string-match "^arm.*eb" cpu) + (endianness big)) + ((string-prefix? "arm" cpu) ;ARMs are LE by default + (endianness little)) + ((string-match "^aarch64.*be" cpu) + (endianness big)) + ((string=? "aarch64" cpu) (endianness little)) (else (error "unknown CPU endianness" cpu))))) ================================================ FILE: package/guile/0002-calculate-csqrt_manually.patch ================================================ Avoid using scm_from_complex_double(csqrt()) when building with uclibc. Signed-off-by: Pedro Aguilar diff -Nau guile-2.0.11.orig/configure.ac guile-2.0.11/configure.ac --- guile-2.0.11.orig/configure.ac 2014-03-12 14:36:02.000000000 +0100 +++ guile-2.0.11/configure.ac 2014-11-03 23:59:51.897267207 +0100 @@ -862,7 +862,7 @@ }]])], [guile_cv_use_csqrt=yes], [guile_cv_use_csqrt="no, glibc 2.3 bug"], - [guile_cv_use_csqrt="yes, hopefully (cross-compiling)"])]) + [guile_cv_use_csqrt="no (cross-compiling)"])]) case $guile_cv_use_csqrt in yes*) AC_DEFINE([HAVE_USABLE_CSQRT], 1, [Define to 1 if csqrt is bug-free]) ================================================ FILE: package/guile/0003-Makefile.am-fix-build-without-makeinfo.patch ================================================ From 9304ad88a5f4b083d348563c5de00da53b34cf46 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 6 Mar 2020 23:20:39 +0100 Subject: [PATCH] Makefile.am: fix build without makeinfo Don't build doc subdir if makeinfo is not available otherwise build fails on: make[4]: Entering directory '/nvmedata/autobuild/instance-7/output-1/build/host-guile-2.0.14/doc/ref' MAKEINFO guile.info /nvmedata/autobuild/instance-7/output-1/build/host-guile-2.0.14/build-aux/missing: line 81: makeinfo: command not found WARNING: 'makeinfo' is missing on your system. You should only need it if you modified a '.texi' file, or any other file indirectly affecting the aspect of the manual. You might want to install the Texinfo package: The spurious makeinfo call might also be the consequence of using a buggy 'make' (AIX, DU, IRIX), in which case you might want to install GNU make: Fixes: - http://autobuild.buildroot.org/results/9605aac6f760bfff190d0ab95fa50f65486ffe90 Signed-off-by: Fabrice Fontaine [Upstream status: sent to bug-guile@gnu.org] --- Makefile.am | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index ebbf6d476..2270afb9f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -38,8 +38,12 @@ SUBDIRS = \ test-suite \ benchmark-suite \ gc-benchmarks \ - am \ + am + +if HAVE_MAKEINFO +SUBDIRS += \ doc +endif DIST_SUBDIRS = $(SUBDIRS) prebuilt -- 2.25.0 ================================================ FILE: package/guile/0004-module-system-base-target.scm-support-riscv32.patch ================================================ From 6142350d7c0562b0525462abdd41309ae0faa2eb Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 6 Aug 2021 19:49:37 +0200 Subject: [PATCH] module/system/base/target.scm: support riscv32 Fix the following build failure on riscv32: system/base/target.scm:132:16: In procedure triplet-pointer-size: unknown CPU word size "riscv32" Fixes: - http://autobuild.buildroot.org/results/6705630c1484239ec8b73d57ebc2e2570fbfc8f8 Signed-off-by: Fabrice Fontaine --- module/system/base/target.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/module/system/base/target.scm b/module/system/base/target.scm index 2088cd866..dba46664d 100644 --- a/module/system/base/target.scm +++ b/module/system/base/target.scm @@ -116,6 +116,7 @@ ((string-match "^x86_64-.*-gnux32" triplet) 4) ; x32 + ((string-match "32$" cpu) 4) ((string-match "64$" cpu) 8) ((string-match "64_?[lbe][lbe]$" cpu) 8) ((member cpu '("sparc" "powerpc" "mips" "mipsel" "nios2" "m68k" "sh3" "sh4")) 4) -- 2.30.2 ================================================ FILE: package/guile/Config.in ================================================ config BR2_PACKAGE_GUILE bool "guile" depends on !BR2_TOOLCHAIN_USES_MUSL # no strtol_l depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS # bdwgc depends on BR2_USE_WCHAR # libunistring depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBUNISTRING select BR2_PACKAGE_LIBFFI select BR2_PACKAGE_GMP select BR2_PACKAGE_BDWGC select BR2_PACKAGE_LIBTOOL help Guile is an interpreter and compiler for the Scheme programming language, a clean and elegant dialect of Lisp. http://www.gnu.org/software/guile 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 ================================================ FILE: package/guile/guile.hash ================================================ # Locally calculated after checking pgp signature sha256 6b7947dc2e3d115983846a268b8f5753c12fd5547e42fbf2b97d75a3b79f0d31 guile-3.0.4.tar.xz # Locally computed sha256 b51c6f20e6d029cb5b3e5bf235ac562c9a188c5bdc4ffcdc663897772d6e0260 LICENSE sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING sha256 9ccf26cfe845e0eb8bb58053e47366e7ab6b697ae010f7650978d4b71b7d1fc1 COPYING.LESSER ================================================ FILE: package/guile/guile.mk ================================================ ################################################################################ # # guile # ################################################################################ GUILE_VERSION = 3.0.4 GUILE_SOURCE = guile-$(GUILE_VERSION).tar.xz GUILE_SITE = $(BR2_GNU_MIRROR)/guile GUILE_INSTALL_STAGING = YES # For 0002-calculate-csqrt_manually.patch and # 0003-Makefile.am-fix-build-without-makeinfo.patch GUILE_AUTORECONF = YES GUILE_LICENSE = LGPL-3.0+ GUILE_LICENSE_FILES = LICENSE COPYING COPYING.LESSER GUILE_CPE_ID_VENDOR = gnu # libtool dependency is needed because guile uses libltdl GUILE_DEPENDENCIES = host-guile libunistring libffi gmp bdwgc host-pkgconf libtool HOST_GUILE_DEPENDENCIES = host-libunistring host-libffi host-gmp host-bdwgc host-flex host-pkgconf host-gettext # The HAVE_GC* CFLAGS specify that we will use internal callbacks # instead of the ones provided by # bdwgc. Eg. HAVE_GC_SET_FINALIZER_NOTIFIER specifies that we won't # use bdwgc's GC_finalizer_notifier callback. Trying to use these # specific bdwgc's callbacks breaks guile's building. GUILE_CFLAGS = \ -DHAVE_GC_SET_FINALIZER_NOTIFIER \ -DHAVE_GC_GET_HEAP_USAGE_SAFE \ -DHAVE_GC_GET_FREE_SPACE_DIVISOR \ -DHAVE_GC_SET_FINALIZE_ON_DEMAND ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) GUILE_CONF_ENV += LIBS=-latomic endif ifeq ($(BR2_STATIC_LIBS),y) GUILE_CFLAGS += -DGC_NO_DLOPEN endif # Triggers assembler error with -Os ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM)$(BR2_OPTIMIZE_S),yy) GUILE_CFLAGS += -O2 endif # jit triggers build failures with gcc < 5 ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_5),) GUILE_CONF_OPTS += --disable-jit endif ifeq ($(BR2_HOST_GCC_AT_LEAST_5),) HOST_GUILE_CONF_OPTS += --disable-jit endif # It can use readline, but on the condition that it was build against # ncurses. If both aren't present disable readline support since the # host readline/ncurses support can poison the build. ifeq ($(BR2_PACKAGE_NCURSES)$(BR2_PACKAGE_READLINE),yy) GUILE_CONF_OPTS += --with-libreadline-prefix=$(STAGING_DIR)/usr GUILE_DEPENDENCIES += readline else GUILE_CONF_OPTS += --without-libreadline-prefix endif GUILE_CONF_ENV += GUILE_FOR_BUILD=$(HOST_DIR)/bin/guile \ CFLAGS="$(TARGET_CFLAGS) $(GUILE_CFLAGS)" GUILE_CONF_OPTS += \ --with-libltdl-prefix=$(STAGING_DIR)/usr/lib \ --with-libgmp-prefix=$(STAGING_DIR)/usr/lib \ --with-libunistring-prefix=$(STAGING_DIR)/usr/lib $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/gumbo-parser/0001-configure.ac-fix-build-without-C.patch ================================================ From 968975107af5f4382e3e9410a635e32c14cea75f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 21 Jul 2021 23:47:26 +0200 Subject: [PATCH] configure.ac: fix build without C++ Fix the following build failure raised on toolchains without C++: checking whether the C++ compiler works... no configure: error: in `/home/buildroot/autobuild/run/instance-0/output-1/build/gumbo-parser-0.10.1': configure: error: C++ compiler cannot create executables Fixes: - http://autobuild.buildroot.org/results/a32b5d3b959433fd5c3543661c37f80d27fbd010 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/google/gumbo-parser/pull/426] --- Makefile.am | 2 ++ configure.ac | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index cb62459..5bebd92 100644 --- a/Makefile.am +++ b/Makefile.am @@ -105,7 +105,9 @@ gumbo_test_DEPENDENCIES += check-local gumbo_test_LDADD += gtest/lib/libgtest.la gtest/lib/libgtest_main.la endif +if HAVE_EXAMPLES noinst_PROGRAMS = clean_text find_links get_title positions_of_class benchmark serialize prettyprint +endif LDADD = libgumbo.la AM_CPPFLAGS = -I"$(srcdir)/src" diff --git a/configure.ac b/configure.ac index 32dc9b9..172a36b 100644 --- a/configure.ac +++ b/configure.ac @@ -9,8 +9,8 @@ AC_CONFIG_SRCDIR([src/parser.c]) AC_CONFIG_FILES([Makefile gumbo.pc]) # Checks for programs. -AC_PROG_CXX AC_PROG_CC_C99 +AC_PROG_CXX # Checks for libraries. @@ -27,6 +27,10 @@ AC_CHECK_LIB([gtest_main], AM_CONDITIONAL(HAVE_SHARED_LIBGTEST, [true]), AM_CONDITIONAL(HAVE_SHARED_LIBGTEST, [false])) +AC_ARG_ENABLE([examples], + AS_HELP_STRING([--disable-examples], [Disable examples])) +AM_CONDITIONAL([HAVE_EXAMPLES], [test "x$enable_examples" != "xno"]) + # Init Automake & libtool AM_INIT_AUTOMAKE([foreign subdir-objects]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- 2.30.2 ================================================ FILE: package/gumbo-parser/Config.in ================================================ config BR2_PACKAGE_GUMBO_PARSER bool "gumbo-parser" help Gumbo is an implementation of the HTML5 parsing algorithm implemented as a pure C99 library with no outside dependencies. It's designed to serve as a building block for other tools and libraries such as linters, validators, templating languages, and refactoring and analysis tools. https://github.com/google/gumbo-parser ================================================ FILE: package/gumbo-parser/gumbo-parser.hash ================================================ # Locally computed: sha256 28463053d44a5dfbc4b77bcf49c8cee119338ffa636cc17fc3378421d714efad gumbo-parser-0.10.1.tar.gz # Hash for license files: sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 COPYING ================================================ FILE: package/gumbo-parser/gumbo-parser.mk ================================================ ################################################################################ # # gumbo-parser # ################################################################################ GUMBO_PARSER_VERSION = 0.10.1 GUMBO_PARSER_SITE = $(call github,google,gumbo-parser,v$(GUMBO_PARSER_VERSION)) GUMBO_PARSER_LICENSE = Apache-2.0 GUMBO_PARSER_LICENSE_FILES = COPYING GUMBO_PARSER_INSTALL_STAGING = YES GUMBO_PARSER_AUTORECONF = YES GUMBO_PARSER_CONF_OPTS = --disable-examples $(eval $(autotools-package)) ================================================ FILE: package/gupnp/Config.in ================================================ config BR2_PACKAGE_GUPNP bool "gupnp" depends on BR2_USE_WCHAR # glib2, gssdp depends on BR2_TOOLCHAIN_HAS_THREADS # glib2, gssdp depends on BR2_USE_MMU # glib2, gssdp select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_GSSDP select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help GUPnP implements the UPnP specification: resource announcement and discovery, description, control, event notification, and presentation. http://www.gupnp.org/ comment "gupnp needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/gupnp/gupnp.hash ================================================ # Hash from: http://ftp.gnome.org/pub/gnome/sources/gupnp/1.3/gupnp-1.3.1.sha256sum: sha256 df70fe8321bfc53cadb6860edcff2e0dc456ec81899b463f41723684803d1408 gupnp-1.3.1.tar.xz # Hash for license file: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/gupnp/gupnp.mk ================================================ ################################################################################ # # gupnp # ################################################################################ GUPNP_VERSION_MAJOR = 1.3 GUPNP_VERSION = $(GUPNP_VERSION_MAJOR).1 GUPNP_SOURCE = gupnp-$(GUPNP_VERSION).tar.xz GUPNP_SITE = http://ftp.gnome.org/pub/gnome/sources/gupnp/$(GUPNP_VERSION_MAJOR) GUPNP_LICENSE = LGPL-2.1+ GUPNP_LICENSE_FILES = COPYING GUPNP_CPE_ID_VENDOR = gnome GUPNP_INSTALL_STAGING = YES GUPNP_DEPENDENCIES = host-pkgconf libglib2 libxml2 gssdp util-linux GUPNP_CONF_OPTS = -Dexamples=false ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) GUPNP_CONF_OPTS += -Dintrospection=true -Dvapi=true GUPNP_DEPENDENCIES += host-vala gobject-introspection else GUPNP_CONF_OPTS += -Dintrospection=false -Dvapi=false endif $(eval $(meson-package)) ================================================ FILE: package/gupnp-av/Config.in ================================================ config BR2_PACKAGE_GUPNP_AV bool "gupnp-av" depends on BR2_USE_WCHAR # glib2, gupnp depends on BR2_TOOLCHAIN_HAS_THREADS # glib2, gupnp depends on BR2_USE_MMU # glib2, gupnp select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_GUPNP select BR2_PACKAGE_LIBXML2 help GUPnP-AV is a collection of helpers for building AV (audio/video) applications using GUPnP. http://www.gupnp.org/ comment "gupnp-av needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/gupnp-av/gupnp-av.hash ================================================ # Hash from: http://ftp.gnome.org/pub/gnome/sources/gupnp-av/0.13/gupnp-av-0.13.0.sha256sum: sha256 578b8f562b0f7e908416a41efbe2b7e6b892cd2ed7eac61ac63c48fdc8d7e6c8 gupnp-av-0.13.0.tar.xz # Hash for license file: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/gupnp-av/gupnp-av.mk ================================================ ################################################################################ # # gupnp-av # ################################################################################ GUPNP_AV_VERSION_MAJOR = 0.13 GUPNP_AV_VERSION = $(GUPNP_AV_VERSION_MAJOR).0 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 = LGPL-2.1+ GUPNP_AV_LICENSE_FILES = COPYING GUPNP_AV_INSTALL_STAGING = YES GUPNP_AV_DEPENDENCIES = host-pkgconf libglib2 libxml2 gupnp ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) GUPNP_AV_CONF_OPTS += -Dintrospection=true -Dvapi=true GUPNP_AV_DEPENDENCIES += host-vala gobject-introspection else GUPNP_AV_CONF_OPTS += -Dintrospection=false -Dvapi=false endif $(eval $(meson-package)) ================================================ FILE: package/gupnp-dlna/Config.in ================================================ 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 ================================================ FILE: package/gupnp-dlna/gupnp-dlna.hash ================================================ # 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 # Locally computed: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/gupnp-dlna/gupnp-dlna.mk ================================================ ################################################################################ # # 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 LGPL-2.1 but all source files contain LPGL-2.0+ GUPNP_DLNA_LICENSE = LGPL-2.0+ GUPNP_DLNA_LICENSE_FILES = COPYING GUPNP_DLNA_INSTALL_STAGING = YES GUPNP_DLNA_DEPENDENCIES = host-pkgconf libglib2 libxml2 GUPNP_DLNA_CONF_OPTS = \ --disable-introspection \ --disable-legacy-gstreamer-metadata-backend 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)) ================================================ FILE: package/gupnp-tools/0001-src-meson.build-upload-needs-gupnp-av.patch ================================================ From 0831f77e990e363f78e3f6a5c461084988824f7b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 2 Jul 2019 23:48:12 +0200 Subject: [PATCH] src/meson.build: upload needs gupnp-av Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.gnome.org/GNOME/gupnp-tools/merge_requests/3] --- src/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/meson.build b/src/meson.build index 84b2ca2..6601f45 100644 --- a/src/meson.build +++ b/src/meson.build @@ -2,9 +2,9 @@ subdir('common') if get_option('av-tools') and gupnp_av.found() subdir('av-cp') + subdir('upload') endif subdir('discover') subdir('network-light') subdir('universal-cp') -subdir('upload') -- 2.20.1 ================================================ FILE: package/gupnp-tools/Config.in ================================================ config BR2_PACKAGE_GUPNP_TOOLS bool "gupnp-tools" depends on BR2_PACKAGE_LIBGTK3 # 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 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 ================================================ FILE: package/gupnp-tools/gupnp-tools.hash ================================================ # Hash from: http://ftp.gnome.org/pub/gnome/sources/gupnp-tools/0.10/gupnp-tools-0.10.0.sha256sum: sha256 41da7ff5ba8e2425adcb64ca5e04c81f57ca20ec6fdb84923939fdad42c6a18d gupnp-tools-0.10.0.tar.xz # Locally computed: sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/gupnp-tools/gupnp-tools.mk ================================================ ################################################################################ # # gupnp-tools # ################################################################################ GUPNP_TOOLS_VERSION_MAJOR = 0.10 GUPNP_TOOLS_VERSION = $(GUPNP_TOOLS_VERSION_MAJOR).0 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 = GPL-2.0+ GUPNP_TOOLS_LICENSE_FILES = COPYING GUPNP_TOOLS_INSTALL_STAGING = YES GUPNP_TOOLS_DEPENDENCIES = \ host-pkgconf \ libglib2 \ libxml2 \ gssdp \ gupnp \ libsoup \ libgtk3 \ $(TARGET_NLS_DEPENDENCIES) GUPNP_TOOLS_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_GUPNP_AV),y) GUPNP_TOOLS_CONF_OPTS += -Dav-tools=true GUPNP_TOOLS_DEPENDENCIES += gupnp-av else GUPNP_TOOLS_CONF_OPTS += -Dav-tools=false endif ifeq ($(BR2_PACKAGE_GTKSOURCEVIEW),y) GUPNP_TOOLS_DEPENDENCIES += gtksourceview endif $(eval $(meson-package)) ================================================ FILE: package/gutenprint/0001-use-pregen-xmli18n-header.patch ================================================ src/xml: use preg-gen xmli18n_tmp.h if specified Ideally, the programs needed at build-time should be built with CC_FOR_BUILD, and not with CC_FOR_HOST. Unfortunately, this program wants to link against the gutenprint libs, so we would also need to build them with CC_FOR_HOST, that is build them twice, once for build, once for host. Instead, in the Buildroot context, we first build gutenprint for the build system, use that to generate the incriminated header, and then re-use that header to build the gutenprint for the host. It is not possible to have such constructs in Makefile.am: ifeq ($(FOO),) bar: bla cat $< >$@ else bar: echo $(FOO) >$@ endif as autoreconf will yell loudly that there is an 'endif' without an 'if'. Sigh... :-( Signed-off-by: "Yann E. MORIN" diff -durN gutenprint-5.2.9.orig/src/xml/Makefile.am gutenprint-5.2.9/src/xml/Makefile.am --- gutenprint-5.2.9.orig/src/xml/Makefile.am 2011-03-30 02:43:24.000000000 +0200 +++ gutenprint-5.2.9/src/xml/Makefile.am 2013-03-24 17:08:08.435918773 +0100 @@ -52,10 +52,13 @@ xmli18n-tmp.h: xml-stamp extract-strings - -rm -f $@ $@.tmp - ./extract-strings `cat xml-stamp | sed -e 's;^;$(srcdir)/;'` > $@.tmp - mv $@.tmp $@ - + if [ -z "$(BR2_USE_PREGEN_XMLI18N_TMP_H)" ]; then \ + rm -f $@ $@.tmp; \ + ./extract-strings `cat xml-stamp | sed -e 's;^;$(srcdir)/;'` > $@.tmp; \ + mv $@.tmp $@; \ + else \ + cp $(BR2_USE_PREGEN_XMLI18N_TMP_H) $@; \ + fi dist-hook: xmli18n-tmp.h xml-stamp # xmli18n-tmp.h is needed by po/POTFILES.in at dist time ================================================ FILE: package/gutenprint/0002-cups-support-replaces-static-with-static-libtool-lib.patch ================================================ From 08a5d355160eb2ac8346ae1b94591418343217f9 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 17 Aug 2014 23:43:20 +0200 Subject: [PATCH 1/1] cups support: replaces -static with -static-libtool-libs gutenprint rely on the original behaviour of -static, but since commit in buildroot "support/libtool: make -static behave like -all-static" [1], the build of genppd is broken. genppd need to be build statically otherwise the following warning appears: ***WARNING: Use of --disable-static-genppd or --disable-static when building CUPS is very dangerous. The build may fail when building the PPD files, or may *SILENTLY* build incorrect PPD files or cause other problems. Please review the README and release notes carefully! [1] http://git.buildroot.net/buildroot/commit/?id=97703978ac870ce2b14ad144f8e082de82aa2c64 Signed-off-by: Romain Naour --- src/cups/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cups/Makefile.am b/src/cups/Makefile.am index 1e27ae0..d711b70 100644 --- a/src/cups/Makefile.am +++ b/src/cups/Makefile.am @@ -84,7 +84,7 @@ noinst_SCRIPTS=test-rastertogutenprint endif if BUILD_GENPPD_STATIC -STATIC_LDOPTS=-static -export-dynamic +STATIC_LDOPTS=-static-libtool-libs -export-dynamic endif cups_calibrate_SOURCES = cups-calibrate.c -- 1.9.3 ================================================ FILE: package/gutenprint/Config.in ================================================ config BR2_PACKAGE_GUTENPRINT bool "gutenprint" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_CUPS select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Gutenprint, formerly named Gimp-Print, is a suite of printer drivers that may be used with most common UNIX print spooling systems, including CUPS, lpr, LPRng, or others http://gimp-print.sourceforge.net/ comment "gutenprint needs a toolchain w/ C++" depends on BR2_PACKAGE_CUPS depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/gutenprint/gutenprint.hash ================================================ # Locally computed: sha256 45bf0766f196a764c113bfad7ab1ea748f1d5ff9ebb0d3a2206705fe52e82389 gutenprint-5.2.14.tar.bz2 sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/gutenprint/gutenprint.mk ================================================ ################################################################################ # # gutenprint # ################################################################################ GUTENPRINT_VERSION_MAJOR = 5.2 GUTENPRINT_VERSION = $(GUTENPRINT_VERSION_MAJOR).14 GUTENPRINT_SITE = http://downloads.sourceforge.net/project/gimp-print/gutenprint-$(GUTENPRINT_VERSION_MAJOR)/$(GUTENPRINT_VERSION) GUTENPRINT_SOURCE = gutenprint-$(GUTENPRINT_VERSION).tar.bz2 GUTENPRINT_LICENSE = GPL-2.0+ GUTENPRINT_LICENSE_FILES = COPYING GUTENPRINT_CPE_ID_VENDOR = gutenprint_project # Needed, as we touch Makefile.am GUTENPRINT_AUTORECONF = YES # Needed by autoreconf define GUTENPRINT_CREATE_M4_DIR mkdir -p $(@D)/m4local endef GUTENPRINT_POST_PATCH_HOOKS += GUTENPRINT_CREATE_M4_DIR HOST_GUTENPRINT_POST_PATCH_HOOKS += GUTENPRINT_CREATE_M4_DIR GUTENPRINT_DEPENDENCIES = \ cups host-pkgconf \ $(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 # so we need to build both a host package and a target package GUTENPRINT_DEPENDENCIES += host-gutenprint GUTENPRINT_CONF_ENV = \ ac_cv_path_CUPS_CONFIG=$(STAGING_DIR)/usr/bin/cups-config \ ac_cv_path_IJS_CONFIG="" GUTENPRINT_CONF_OPTS = \ --disable-libgutenprintui2 \ --disable-samples \ --without-doc \ --without-gimp2 \ --disable-escputil \ --disable-test \ --disable-testpattern \ --with-cups="/usr" \ --with-sysroot="$(STAGING_DIR)" \ --disable-cups-ppds # USE_PREGEN_XMLI18N_TMP_H is added by our patch GUTENPRINT_MAKE_ENV = BR2_USE_PREGEN_XMLI18N_TMP_H=$(HOST_DIR)/include/xmli18n-tmp.h HOST_GUTENPRINT_DEPENDENCIES = host-pkgconf # The host-gutenprint shall create the required header HOST_GUTENPRINT_MAKE_ENV = # Even with --without-cups, gutenprint will still add the output of # cups-config --cflags / --ldflags to it's compiler/linker flags if # available on host. # Notice: Because of the configure logic, it needs to be set to the # empty string to to disable this, not just to /bin/false like elsewhere. HOST_GUTENPRINT_CONF_ENV = ac_cv_path_CUPS_CONFIG='' HOST_GUTENPRINT_CONF_OPTS = \ --disable-libgutenprintui2 \ --disable-samples \ --without-gimp2 \ --without-doc \ --without-foomatic \ --without-foomatic3 \ --disable-escputil \ --disable-test \ --disable-testpattern \ --without-cups define HOST_GUTENPRINT_POST_BUILD_INSTAL_TMP_HEADER cp $(@D)/src/xml/xmli18n-tmp.h $(HOST_DIR)/include endef HOST_GUTENPRINT_POST_BUILD_HOOKS += HOST_GUTENPRINT_POST_BUILD_INSTAL_TMP_HEADER define GUTENPRINT_POST_INSTALL_TARGET_FIXUP mkdir -p $(TARGET_DIR)/usr/share/gutenprint/5.2 cp -rf $(HOST_DIR)/share/gutenprint/5.2/xml $(TARGET_DIR)/usr/share/gutenprint/5.2 endef GUTENPRINT_POST_INSTALL_TARGET_HOOKS += GUTENPRINT_POST_INSTALL_TARGET_FIXUP $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/gvfs/0001-meson.build-fix-linking-with-libmetadata.patch ================================================ From 731256d7517f0d9cf0b999bb22f864080d5e8690 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 18 Jul 2020 10:00:50 +0200 Subject: [PATCH] meson.build: fix linking with libmetadata libmetadata is built as a static library and depends on libgvfscommon so change the dependencies order to put libgvfscommon_dep after libmetadata_dep or gvfsd-metadata will fail to link on: FAILED: metadata/gvfsd-metadata /home/naourr/work/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -o metadata/gvfsd-metadata 'metadata/45447b7@@gvfsd-metadata@exe/meta-daemon.c.o' -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -Wl,--start-group common/libgvfscommon.so metadata/libmetadata.a /home/naourr/work/instance-3/output-1/host/arm-buildroot-linux-gnueabi/sysroot/usr/lib/libgio-2.0.so /home/naourr/work/instance-3/output-1/host/arm-buildroot-linux-gnueabi/sysroot/usr/lib/libgobject-2.0.so /home/naourr/work/instance-3/output-1/host/arm-buildroot-linux-gnueabi/sysroot/usr/lib/libglib-2.0.so -Wl,--end-group '-Wl,-rpath,$ORIGIN/../common:$ORIGIN/' -Wl,-rpath-link,/home/naourr/work/instance-3/output-1/build/gvfs-1.44.1/build/common -Wl,-rpath-link,/home/naourr/work/instance-3/output-1/build/gvfs-1.44.1/build/metadata metadata/libmetadata.a(metatree.c.o): In function `safe_open': metatree.c:(.text+0x9c8): undefined reference to `gvfs_randomize_string' collect2: error: ld returned 1 exit status Apply this change in the whole source code and not only for gvfsd-metadata to avoid any other build failures. Fixes: - http://autobuild.buildroot.org/results//fa892c41b6b9285839a0164b000e37fb04dcc194 Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.gnome.org/GNOME/gvfs/-/merge_requests/92] --- client/meson.build | 2 +- metadata/meson.build | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/client/meson.build b/client/meson.build index 8f57d0d3..1d251481 100644 --- a/client/meson.build +++ b/client/meson.build @@ -33,8 +33,8 @@ sources = uri_parser_sources + uri_utils + files( deps = [ gio_unix_dep, - libgvfscommon_dep, libmetadata_dep, + libgvfscommon_dep, ] cflags = [ diff --git a/metadata/meson.build b/metadata/meson.build index 4e120d18..5699e6f2 100644 --- a/metadata/meson.build +++ b/metadata/meson.build @@ -72,8 +72,8 @@ libmetadata_dep = declare_dependency( ) deps = [ - libgvfscommon_dep, libmetadata_dep, + libgvfscommon_dep, ] if enable_gudev @@ -105,8 +105,8 @@ if enable_devel_utils app + '.c', include_directories: top_inc, dependencies: [ - libgvfscommon_dep, libmetadata_dep, + libgvfscommon_dep, ], c_args: cflags, ) @@ -119,6 +119,7 @@ if enable_devel_utils include_directories: top_inc, dependencies: [ libmetadata_dep, + libgvfscommon_dep, libxml_dep, ], c_args: cflags, -- 2.27.0 ================================================ FILE: package/gvfs/Config.in ================================================ config BR2_PACKAGE_GVFS bool "gvfs" depends on BR2_USE_WCHAR # glib2 depends on BR2_USE_MMU # dbus, glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, glib2 depends on !BR2_STATIC_LIBS select BR2_PACKAGE_GSETTINGS_DESKTOP_SCHEMAS select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_DBUS select BR2_PACKAGE_SHARED_MIME_INFO help gvfs is a userspace virtual filesystem where mount runs as a separate processes which you talk to via D-Bus. It also contains a gio module that seamlessly adds gvfs support to all applications using the gio API. It also supports exposing the gvfs mounts to non-gio applications using fuse. https://wiki.gnome.org/action/show/Projects/gvfs comment "gvfs 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 ================================================ FILE: package/gvfs/gvfs.hash ================================================ # From http://ftp.gnome.org/pub/GNOME/sources/gvfs/1.44/gvfs-1.44.1.sha256sum sha256 50ef3245d1b03666a40455109169a2a1bd51419fd2d51f9fa6cfd4f89f04fb46 gvfs-1.44.1.tar.xz # Hash for license file sha256 45cf336e2e48176993babc5aabf44437390f40e6a86a472c6abfc7ce9c035db4 COPYING ================================================ FILE: package/gvfs/gvfs.mk ================================================ ################################################################################ # # gvfs # ################################################################################ GVFS_VERSION_MAJOR = 1.44 GVFS_VERSION = $(GVFS_VERSION_MAJOR).1 GVFS_SOURCE = gvfs-$(GVFS_VERSION).tar.xz GVFS_SITE = http://ftp.gnome.org/pub/GNOME/sources/gvfs/$(GVFS_VERSION_MAJOR) GVFS_INSTALL_STAGING = YES GVFS_DEPENDENCIES = \ host-pkgconf \ host-libglib2 \ dbus \ gsettings-desktop-schemas \ libglib2 \ shared-mime-info \ $(TARGET_NLS_DEPENDENCIES) GVFS_LICENSE = LGPL-2.0+ GVFS_LICENSE_FILES = COPYING GVFS_CPE_ID_VENDOR = gnome GVFS_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) # Most of these are missing library support GVFS_CONF_OPTS = \ -Dafc=false \ -Dgoa=false \ -Dgoogle=false \ -Dmtp=false \ -Dsftp=false \ -Dudisks2=false ifeq ($(BR2_PACKAGE_AVAHI),y) GVFS_DEPENDENCIES += avahi GVFS_CONF_OPTS += -Ddnssd=true else GVFS_CONF_OPTS += -Ddnssd=false endif ifeq ($(BR2_PACKAGE_GCR),y) GVFS_DEPENDENCIES += gcr GVFS_CONF_OPTS += -Dgcr=true else GVFS_CONF_OPTS += -Dgcr=false endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) GVFS_DEPENDENCIES += udev endif ifeq ($(BR2_PACKAGE_LIBGUDEV),y) GVFS_DEPENDENCIES += libgudev GVFS_CONF_OPTS += -Dgudev=true else GVFS_CONF_OPTS += -Dgudev=false endif ifeq ($(BR2_PACKAGE_LIBARCHIVE),y) GVFS_DEPENDENCIES += libarchive GVFS_CONF_OPTS += -Darchive=true else GVFS_CONF_OPTS += -Darchive=false endif ifeq ($(BR2_PACKAGE_LIBBLURAY),y) GVFS_DEPENDENCIES += libbluray GVFS_CONF_OPTS += -Dbluray=true else GVFS_CONF_OPTS += -Dbluray=false endif ifeq ($(BR2_PACKAGE_LIBCAP)$(BR2_PACKAGE_POLKIT),yy) GVFS_DEPENDENCIES += libcap polkit GVFS_CONF_OPTS += -Dadmin=true else GVFS_CONF_OPTS += -Dadmin=false endif ifeq ($(BR2_PACKAGE_LIBCDIO_PARANOIA)$(BR2_PACKAGE_LIBGUDEV),yy) GVFS_DEPENDENCIES += libcdio-paranoia libgudev GVFS_CONF_OPTS += -Dcdda=true else GVFS_CONF_OPTS += -Dcdda=false endif ifeq ($(BR2_PACKAGE_LIBFUSE3),y) GVFS_DEPENDENCIES += libfuse3 GVFS_CONF_OPTS += -Dfuse=true else GVFS_CONF_OPTS += -Dfuse=false endif # AFP support is anon-only without libgcrypt which isn't very useful ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) GVFS_CONF_OPTS += \ -Dafp=true \ -Dgcrypt=true GVFS_DEPENDENCIES += libgcrypt else GVFS_CONF_OPTS += \ -Dafp=false \ -Dgcrypt=false endif ifeq ($(BR2_PACKAGE_LIBGPHOTO2)$(BR2_PACKAGE_LIBGUDEV),yy) GVFS_DEPENDENCIES += libgphoto2 libgudev GVFS_CONF_OPTS += -Dgphoto2=true else GVFS_CONF_OPTS += -Dgphoto2=false endif ifeq ($(BR2_PACKAGE_LIBNFS),y) GVFS_CONF_OPTS += -Dnfs=true GVFS_DEPENDENCIES += libnfs else GVFS_CONF_OPTS += -Dnfs=false endif ifeq ($(BR2_PACKAGE_LIBSECRET),y) GVFS_DEPENDENCIES += libsecret GVFS_CONF_OPTS += -Dkeyring=true else GVFS_CONF_OPTS += -Dkeyring=false endif ifeq ($(BR2_PACKAGE_LIBSOUP)$(BR2_PACKAGE_LIBXML2),yy) GVFS_DEPENDENCIES += libsoup libxml2 GVFS_CONF_OPTS += -Dhttp=true else GVFS_CONF_OPTS += -Dhttp=false endif ifeq ($(BR2_PACKAGE_LIBUSB),y) GVFS_DEPENDENCIES += libusb GVFS_CONF_OPTS += -Dlibusb=true else GVFS_CONF_OPTS += -Dlibusb=false endif ifeq ($(BR2_PACKAGE_SAMBA4),y) GVFS_DEPENDENCIES += samba4 GVFS_CONF_OPTS += -Dsmb=true else GVFS_CONF_OPTS += -Dsmb=false endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) GVFS_DEPENDENCIES += systemd GVFS_CONF_OPTS += -Dlogind=true else GVFS_CONF_OPTS += \ -Dlogind=false \ -Dsystemduserunitdir=no \ -Dtmpfilesdir=no endif define GVFS_REMOVE_TARGET_SCHEMAS rm $(TARGET_DIR)/usr/share/glib-2.0/schemas/*.xml endef define GVFS_COMPILE_SCHEMAS $(HOST_DIR)/bin/glib-compile-schemas --targetdir=$(TARGET_DIR)/usr/share/glib-2.0/schemas $(STAGING_DIR)/usr/share/glib-2.0/schemas endef GVFS_POST_INSTALL_TARGET_HOOKS += \ GVFS_REMOVE_TARGET_SCHEMAS \ GVFS_COMPILE_SCHEMAS $(eval $(meson-package)) ================================================ FILE: package/gzip/Config.in ================================================ 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... http://www.gnu.org/software/gzip/gzip.html comment "gzip needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/gzip/gzip.hash ================================================ # Locally calculated after checking pgp signature # https://ftp.gnu.org/gnu/gzip/gzip-1.10.tar.xz.sig # using key 155D3FC500C834486D1EEA677FD9FCCB000BEEEE sha256 8425ccac99872d544d4310305f915f5ea81e04d0f437ef1a230dc9d1c819d7c0 gzip-1.10.tar.xz # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/gzip/gzip.mk ================================================ ################################################################################ # # gzip # ################################################################################ GZIP_VERSION = 1.10 GZIP_SOURCE = gzip-$(GZIP_VERSION).tar.xz GZIP_SITE = $(BR2_GNU_MIRROR)/gzip # Some other tools expect it to be in /bin GZIP_CONF_OPTS = --exec-prefix=/ GZIP_LICENSE = GPL-3.0+ GZIP_LICENSE_FILES = COPYING GZIP_CPE_ID_VENDOR = gnu GZIP_CONF_ENV += gl_cv_func_fflush_stdin=yes HOST_GZIP_CONF_ENV += gl_cv_func_fflush_stdin=yes # configure substitutes $(SHELL) for the shell shebang in scripts like # gzexe. Unfortunately, the same $(SHELL) variable will also be used by # make to run its commands. Fortunately, /bin/sh is always a POSIX shell # on both the target and host systems that we support. Even with this, # the configure check is slightly broken and prints a bogus warning: # "using /bin/sh, even though it may have file descriptor bugs" GZIP_CONF_ENV += ac_cv_path_shell=/bin/sh $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/hackrf/0001-Don-t-require-a-C-compiler.patch ================================================ From 8b0a8b2be8cf2e4a76c03d3bcdf99bff5025ba22 Mon Sep 17 00:00:00 2001 From: "Arnout Vandecappelle (Essensium/Mind)" Date: Sat, 31 Mar 2018 22:50:37 +0200 Subject: [PATCH] Don't require a C++ compiler By default, CMake assumes that the project is using both C and C++. By explicitly passing 'C' as argument of the project() macro, we tell CMake that only C is used, which prevents CMake from erroring out if a C++ compiler doesn't exist. Upstream status: https://github.com/mossmann/hackrf/pull/469 This patch differs from upstream because: - project name upstream has been changed into HackRF; - in Buildroot, we are only interested in host, not firmware. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- host/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt index 874163f..d9cbe31 100644 --- a/host/CMakeLists.txt +++ b/host/CMakeLists.txt @@ -1,7 +1,7 @@ #top dir cmake project for libhackrf + tools cmake_minimum_required(VERSION 2.8) -project (hackrf_all) +project (hackrf_all C) add_subdirectory(libhackrf) add_subdirectory(hackrf-tools) -- 2.16.3 ================================================ FILE: package/hackrf/Config.in ================================================ config BR2_PACKAGE_HACKRF bool "hackrf" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_FFTW select BR2_PACKAGE_FFTW_SINGLE select BR2_PACKAGE_LIBUSB help Library and tools for accessing HackRF SDR boards. https://github.com/mossmann/hackrf/tree/master/host comment "hackrf needs a toolchain w/ threads, dynamic library, gcc >= 4.9" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/hackrf/hackrf.hash ================================================ # Locally calculated sha256 a89badc09a1d2fa18367b3b2c974580ad5f6ce93aaa4e54557dc3d013c029d14 hackrf-2018.01.1.tar.xz sha256 49b60a6288f90f49074228cc1fae0fb16871ba36b756013abdf7c2fc92f01fad COPYING ================================================ FILE: package/hackrf/hackrf.mk ================================================ ################################################################################ # # hackrf # ################################################################################ HACKRF_VERSION = 2018.01.1 HACKRF_SITE = https://github.com/mossmann/hackrf/releases/download/v$(HACKRF_VERSION) HACKRF_SOURCE = hackrf-$(HACKRF_VERSION).tar.xz HACKRF_LICENSE = GPL-2.0+ BSD-3-Clause HACKRF_LICENSE_FILES = COPYING HACKRF_DEPENDENCIES = fftw-single libusb HACKRF_SUBDIR = host HACKRF_INSTALL_STAGING = YES HACKRF_CONF_OPTS += -DBUILD_HACKRF_TOOLS=ON ifeq ($(BR2_PACKAGE_HAS_UDEV),y) HACKRF_CONF_OPTS += \ -DINSTALL_UDEV_RULES=ON \ -DUDEV_RULES_GROUP=plugdev else HACKRF_CONF_OPTS += -DINSTALL_UDEV_RULES=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/hans/Config.in ================================================ comment "hans needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_HANS bool "hans" depends on BR2_INSTALL_LIBSTDCPP help Hans makes it possible to tunnel IPv4 through ICMP echo packets, so you could call it a ping tunnel. This can be useful when you find yourself in the situation that your Internet access is firewalled, but pings are allowed. http://code.gerade.org/hans/ ================================================ FILE: package/hans/hans.hash ================================================ # From http://sourceforge.net/projects/hanstunnel/files/source/ md5 8628393ec1b61a6c3a47a0a3dcb455b3 hans-1.0.tar.gz sha1 0bc857df109af222732cb95c861a0f0a6dd53dee hans-1.0.tar.gz # Locally computed sha256 f8f70cf22ba14d9223695c9e9a2d75289d8360f61f533b83ee538836f29a458e hans-1.0.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE ================================================ FILE: package/hans/hans.mk ================================================ ################################################################################ # # hans # ################################################################################ HANS_VERSION = 1.0 HANS_SITE = http://downloads.sourceforge.net/project/hanstunnel/source HANS_LICENSE = GPL-3.0+ HANS_LICENSE_FILES = LICENSE define HANS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) GCC="$(TARGET_CC)" GPP="$(TARGET_CXX)" -C $(@D) endef define HANS_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -D $(@D)/hans $(TARGET_DIR)/usr/sbin/hans endef $(eval $(generic-package)) ================================================ FILE: package/haproxy/Config.in ================================================ config BR2_PACKAGE_HAPROXY_ARCH_SUPPORTS bool default y # src/proto_http.c:6330:1: internal compiler error: Segmentation fault depends on !BR2_nios2 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60040 depends on !(BR2_sh4 && !BR2_TOOLCHAIN_GCC_AT_LEAST_7) config BR2_PACKAGE_HAPROXY bool "haproxy" depends on BR2_PACKAGE_HAPROXY_ARCH_SUPPORTS depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_SYNC_1 && BR2_TOOLCHAIN_HAS_SYNC_4 help HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. http://www.haproxy.org ================================================ FILE: package/haproxy/haproxy.hash ================================================ # From: http://www.haproxy.org/download/2.4/src/haproxy-2.4.7.tar.gz.sha256 sha256 52af97f72f22ffd8a7a995fafc696291d37818feda50a23caef7dc0622421845 haproxy-2.4.7.tar.gz # Locally computed: sha256 0717ca51fceaa25ac9e5ccc62e0c727dcf27796057201fb5fded56a25ff6ca28 LICENSE sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a doc/lgpl.txt sha256 ddb9db7630752f8fdc6898f7c99a99eaeeac5213627ecb093df9c82f56175dc7 doc/gpl.txt ================================================ FILE: package/haproxy/haproxy.mk ================================================ ################################################################################ # # haproxy # ################################################################################ HAPROXY_VERSION_MAJOR = 2.4 HAPROXY_VERSION = $(HAPROXY_VERSION_MAJOR).7 HAPROXY_SITE = http://www.haproxy.org/download/$(HAPROXY_VERSION_MAJOR)/src HAPROXY_LICENSE = GPL-2.0+ and LGPL-2.1+ with exceptions HAPROXY_LICENSE_FILES = LICENSE doc/lgpl.txt doc/gpl.txt HAPROXY_CPE_ID_VENDOR = haproxy HAPROXY_MAKE_OPTS = \ LD=$(TARGET_CC) \ PREFIX=/usr \ TARGET=custom ifeq ($(BR2_STATIC_LIBS),) HAPROXY_MAKE_OPTS += USE_DL=1 endif ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) HAPROXY_LIBS += -latomic endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),y) # threads uses atomics on gcc >= 4.7 and sync otherwise (see # include/common/hathreads.h) ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_4_7):$(BR2_TOOLCHAIN_HAS_ATOMIC),y:y) HAPROXY_MAKE_OPTS += USE_THREAD=1 else ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_4_7):$(BR2_TOOLCHAIN_HAS_SYNC_4),:y) HAPROXY_MAKE_OPTS += USE_THREAD=1 endif endif ifeq ($(BR2_PACKAGE_LUA_5_3),y) HAPROXY_DEPENDENCIES += lua HAPROXY_MAKE_OPTS += \ LUA_LIB_NAME=lua \ USE_LUA=1 endif ifeq ($(BR2_PACKAGE_OPENSSL),y) HAPROXY_DEPENDENCIES += openssl HAPROXY_MAKE_OPTS += USE_OPENSSL=1 ifeq ($(BR2_STATIC_LIBS),y) HAPROXY_LIBS += -lz endif endif # pcre and pcre2 can't be enabled at the same time so prefer pcre2 ifeq ($(BR2_PACKAGE_PCRE2),y) HAPROXY_DEPENDENCIES += pcre2 HAPROXY_MAKE_OPTS += \ PCRE2_CONFIG=$(STAGING_DIR)/usr/bin/pcre2-config \ USE_PCRE2=1 else ifeq ($(BR2_PACKAGE_PCRE),y) HAPROXY_DEPENDENCIES += pcre HAPROXY_MAKE_OPTS += \ PCRE_CONFIG=$(STAGING_DIR)/usr/bin/pcre-config \ USE_PCRE=1 endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) HAPROXY_DEPENDENCIES += systemd HAPROXY_MAKE_OPTS += USE_SYSTEMD=1 endif ifeq ($(BR2_PACKAGE_ZLIB),y) HAPROXY_DEPENDENCIES += zlib HAPROXY_MAKE_OPTS += USE_ZLIB=1 endif HAPROXY_MAKE_OPTS += ADDLIB="$(HAPROXY_LIBS)" HAPROXY_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_90620),y) HAPROXY_CFLAGS += -O0 endif define HAPROXY_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ $(HAPROXY_MAKE_OPTS) CFLAGS="$(HAPROXY_CFLAGS)" -C $(@D) endef define HAPROXY_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ $(HAPROXY_MAKE_OPTS) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/harfbuzz/0001-meson.build-check-for-pthread.h.patch ================================================ From 96bbf3a3af45d86f790afdf91a6686c37421e92b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 15 Nov 2020 10:57:37 +0100 Subject: [PATCH] meson.build: check for pthread.h Check for pthread.h otherwise the build will fail with some toolchains that have libphtread.so but not pthread.h: Run-time dependency threads found: YES ../src/hb-mutex.hh:53:10: fatal error: pthread.h: No such file or directory #include ^~~~~~~~~~~ Moreover, fix detection of pthread fallback Fixes: - http://autobuild.buildroot.org/results/70c98e89b1d5e5b651d1f6928dc53f465103f57a Signed-off-by: Fabrice Fontaine --- meson.build | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index bf3925db..6d263d48 100644 --- a/meson.build +++ b/meson.build @@ -281,7 +281,9 @@ endif # threads thread_dep = null_dep if host_machine.system() != 'windows' - thread_dep = dependency('threads', required: false) + if cpp.has_header('pthread.h') + thread_dep = dependency('threads', required: false) + endif if thread_dep.found() conf.set('HAVE_PTHREAD', 1) -- 2.29.2 ================================================ FILE: package/harfbuzz/Config.in ================================================ config BR2_PACKAGE_HARFBUZZ bool "harfbuzz" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 help HarfBuzz is an OpenType text shaping engine https://harfbuzz.github.io/ Harfbuzz can make optional use of cairo, freetype, glib2 and icu packages if they are selected. comment "harfbuzz needs a toolchain w/ C++, gcc >= 4.8" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/harfbuzz/harfbuzz.hash ================================================ # Locally computed sha256 036b0ee118451539783ec7864148bb4106be42a2eb964df4e83e6703ec46f3d9 harfbuzz-3.0.0.tar.xz sha256 4345e1735f8bc6d812fed5180cabb5a5e88a4109d332652f2a45c13cfa5ee692 COPYING ================================================ FILE: package/harfbuzz/harfbuzz.mk ================================================ ################################################################################ # # harfbuzz # ################################################################################ HARFBUZZ_VERSION = 3.0.0 HARFBUZZ_SITE = https://github.com/harfbuzz/harfbuzz/releases/download/$(HARFBUZZ_VERSION) HARFBUZZ_SOURCE = harfbuzz-$(HARFBUZZ_VERSION).tar.xz HARFBUZZ_LICENSE = MIT, ISC (ucdn library) HARFBUZZ_LICENSE_FILES = COPYING HARFBUZZ_CPE_ID_VENDOR = harfbuzz_project HARFBUZZ_INSTALL_STAGING = YES HARFBUZZ_CONF_OPTS = \ -Dgdi=disabled \ -Ddirectwrite=disabled \ -Dcoretext=disabled \ -Dtests=disabled \ -Ddocs=disabled \ -Dbenchmark=disabled \ -Dicu_builtin=false \ -Dexperimental_api=false \ -Dfuzzer_ldflags="" # freetype & glib2 support required by host-pango HOST_HARFBUZZ_DEPENDENCIES = \ host-freetype \ host-libglib2 HOST_HARFBUZZ_CONF_OPTS = \ -Dglib=enabled \ -Dgobject=disabled \ -Dcairo=disabled \ -Dicu=disabled \ -Dgraphite=disabled \ -Dfreetype=enabled \ -Dgdi=disabled \ -Ddirectwrite=disabled \ -Dcoretext=disabled \ -Dtests=disabled \ -Dintrospection=disabled \ -Ddocs=disabled \ -Dbenchmark=disabled \ -Dicu_builtin=false \ -Dexperimental_api=false \ -Dfuzzer_ldflags="" ifeq ($(BR2_PACKAGE_CAIRO),y) HARFBUZZ_DEPENDENCIES += cairo HARFBUZZ_CONF_OPTS += -Dcairo=enabled else HARFBUZZ_CONF_OPTS += -Dcairo=disabled endif ifeq ($(BR2_PACKAGE_FREETYPE),y) HARFBUZZ_DEPENDENCIES += freetype HARFBUZZ_CONF_OPTS += -Dfreetype=enabled else HARFBUZZ_CONF_OPTS += -Dfreetype=disabled endif ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) HARFBUZZ_DEPENDENCIES += gobject-introspection HARFBUZZ_CONF_OPTS += \ -Dgobject=enabled \ -Dintrospection=enabled else HARFBUZZ_CONF_OPTS += \ -Dgobject=disabled \ -Dintrospection=disabled endif ifeq ($(BR2_PACKAGE_GRAPHITE2),y) HARFBUZZ_DEPENDENCIES += graphite2 HARFBUZZ_CONF_OPTS += -Dgraphite=enabled else HARFBUZZ_CONF_OPTS += -Dgraphite=disabled endif ifeq ($(BR2_PACKAGE_LIBGLIB2),y) HARFBUZZ_DEPENDENCIES += libglib2 HARFBUZZ_CONF_OPTS += -Dglib=enabled else HARFBUZZ_CONF_OPTS += -Dglib=disabled endif ifeq ($(BR2_PACKAGE_ICU),y) HARFBUZZ_DEPENDENCIES += icu HARFBUZZ_CONF_OPTS += -Dicu=enabled else HARFBUZZ_CONF_OPTS += -Dicu=disabled endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),) HARFBUZZ_CXXFLAGS += $(TARGET_CXXFLAGS) -DHB_NO_MT endif ifeq ($(BR2_GCC_VERSION_ARC),y) HARFBUZZ_CXXFLAGS += -O0 endif $(eval $(meson-package)) $(eval $(host-meson-package)) ================================================ FILE: package/haserl/0001-add-haserl_lualib.inc.patch ================================================ [HACK] add preprocessed lualib file so host-lua isn't needed Haserl no longer ships with haserl_lualib.inc, causing lua2c (which needs host-lua support) to be built to generate it. Re-add .inc file from 0.9.33 so we don't need host-lua. Signed-off-by: Peter Korsgaard Signed-off-by: Max Filippov --- src/Makefile.in | 3 - src/haserl_lualib.inc | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 2 deletions(-) Index: haserl-0.9.33/src/haserl_lualib.inc =================================================================== --- /dev/null +++ haserl-0.9.33/src/haserl_lualib.inc @@ -0,0 +1,109 @@ +/* This file was automatically generated from haserl_lualib.lua. DO NOT EDIT */ + +static const unsigned char haserl_lualib[] = { + 27, 76,117, 97, 81, 0, 1, 4, 8, 4, 8, 0, 19, 0, 0, 0, + 0, 0, 0, 0, 64,104, 97,115,101,114,108, 95,108,117, 97,108, + 105, 98, 46,108,117, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 7, 24, 0, 0, 0, 10, 0, 0, 0, 74, 0, 0, 0,138, + 0, 0, 0,202, 0, 0, 0, 10, 1, 0, 0, 74, 1, 0, 0,138, + 1, 0, 0,135,129, 1, 0, 71, 65, 1, 0, 7, 1, 1, 0,199, + 192, 0, 0,135,128, 0, 0, 71, 64, 0, 0, 7, 0, 0, 0, 5, + 0, 0, 0,100, 0, 0, 0, 9, 64,128,131, 5, 0, 0, 0,100, + 64, 0, 0, 9, 64, 0,132, 5, 0, 0, 0,100,128, 0, 0, 9, + 64,128,132, 30, 0,128, 0, 10, 0, 0, 0, 4, 7, 0, 0, 0, + 0, 0, 0, 0,104, 97,115,101,114,108, 0, 4, 5, 0, 0, 0, + 0, 0, 0, 0, 70, 79, 82, 77, 0, 4, 4, 0, 0, 0, 0, 0, + 0, 0, 69, 78, 86, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 67, + 79, 79, 75, 73, 69, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 72, + 65, 83, 69, 82, 76, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 71, + 69, 84, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 80, 79, 83, 84, + 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,115,101,116,102,105,101, + 108,100, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,103,101,116,102, + 105,101,108,100, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,109,121, + 112,117,116,101,110,118, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 25, 0, 0, 0, 39, 0, 0, 0, 0, 2, 0, 10, 29, + 0, 0, 0,133, 0, 0, 0,197, 64, 0, 0,198,128,192, 1, 0, + 1, 0, 0, 65,193, 0, 0,220, 0,129, 1, 22,128, 4,128, 5, + 2, 1, 0, 64, 2, 0, 3, 28,130, 0, 1, 26, 2, 0, 0, 22, + 192, 0,128, 5, 2, 1, 0, 64, 2, 0, 3, 28,130, 0, 1,128, + 1, 0, 4, 23, 64,193, 3, 22,128, 1,128, 6,130, 1, 1, 26, + 66, 0, 0, 22, 0, 0,128, 10, 2, 0, 0,137, 0, 2, 3,134, + 128, 1, 1, 22, 0, 0,128,137, 64, 0, 3,225,128, 0, 0, 22, + 128,250,127, 30, 0,128, 0, 6, 0, 0, 0, 4, 3, 0, 0, 0, + 0, 0, 0, 0, 95, 71, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, + 115,116,114,105,110,103, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, + 103,109, 97,116, 99,104, 0, 4, 15, 0, 0, 0, 0, 0, 0, 0, + 40, 91, 37,119, 95, 37, 45, 93, 43, 41, 40, 46, 63, 41, 0, 4, + 9, 0, 0, 0, 0, 0, 0, 0,116,111,110,117,109, 98,101,114, + 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, + 29, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, + 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, + 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, + 29, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, + 30, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, + 33, 0, 0, 0, 33, 0, 0, 0, 33, 0, 0, 0, 33, 0, 0, 0, + 34, 0, 0, 0, 34, 0, 0, 0, 36, 0, 0, 0, 28, 0, 0, 0, + 37, 0, 0, 0, 39, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0,102, 0, 0, 0, 0, 0, 28, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 0, 0, 28, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0,116, 0, 1, 0, 0, 0, 28, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 40,102,111,114, 32,103, + 101,110,101,114, 97,116,111,114, 41, 0, 6, 0, 0, 0, 28, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 40,102,111,114, 32,115, + 116, 97,116,101, 41, 0, 6, 0, 0, 0, 28, 0, 0, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 40,102,111,114, 32, 99,111,110,116,114, + 111,108, 41, 0, 6, 0, 0, 0, 28, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0,119, 0, 7, 0, 0, 0, 26, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0,100, 0, 7, 0, 0, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, + 47, 0, 0, 0, 0, 1, 0, 8, 12, 0, 0, 0, 69, 0, 0, 0, + 133, 64, 0, 0,134,128, 64, 1,192, 0, 0, 0, 1,193, 0, 0, + 156, 0,129, 1, 22, 0, 0,128, 70, 64,129, 0,161, 64, 0, 0, + 22, 0,255,127, 94, 0, 0, 1, 30, 0,128, 0, 4, 0, 0, 0, + 4, 3, 0, 0, 0, 0, 0, 0, 0, 95, 71, 0, 4, 7, 0, 0, + 0, 0, 0, 0, 0,115,116,114,105,110,103, 0, 4, 7, 0, 0, + 0, 0, 0, 0, 0,103,109, 97,116, 99,104, 0, 4, 7, 0, 0, + 0, 0, 0, 0, 0, 91, 37,119, 95, 93, 43, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, + 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, + 44, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 46, 0, 0, 0, + 47, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 11, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0,118, 0, 1, 0, 0, 0, 11, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 40,102,111,114, 32,103,101,110,101,114, 97,116, + 111,114, 41, 0, 6, 0, 0, 0, 10, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 40,102,111,114, 32,115,116, 97,116,101, 41, 0, + 6, 0, 0, 0, 10, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, + 40,102,111,114, 32, 99,111,110,116,114,111,108, 41, 0, 6, 0, + 0, 0, 10, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,119, 0, + 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 0, 0, 0, 55, 0, 0, 0, 0, 2, 0, 6, + 20, 0, 0, 0,133, 0, 0, 0,134, 64, 64, 1,192, 0, 0, 0, + 1,129, 0, 0, 65,193, 0, 0,156,128, 0, 2, 0, 0, 0, 1, + 133, 0, 0, 0,134, 64, 64, 1,192, 0, 0, 0, 1, 1, 1, 0, + 65,193, 0, 0,156,128, 0, 2, 0, 0, 0, 1,133, 64, 1, 0, + 134,128, 65, 1,192, 0, 0, 0, 0, 1,128, 0,156, 64,128, 1, + 30, 0,128, 0, 7, 0, 0, 0, 4, 7, 0, 0, 0, 0, 0, 0, + 0,115,116,114,105,110,103, 0, 4, 5, 0, 0, 0, 0, 0, 0, + 0,103,115,117, 98, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 91, + 92, 93, 92, 91, 93, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 46, + 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 91, 92, 46, 93, 43, 0, + 4, 7, 0, 0, 0, 0, 0, 0, 0,104, 97,115,101,114,108, 0, + 4, 9, 0, 0, 0, 0, 0, 0, 0,115,101,116,102,105,101,108, + 100, 0, 0, 0, 0, 0, 20, 0, 0, 0, 51, 0, 0, 0, 51, 0, + 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 51, 0, + 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, + 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, + 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, + 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 2, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0,107,101,121, 0, 0, 0, 0, 0, 19, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,118, 97,108,117,101, 0, + 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, + 23, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, + 23, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, + 23, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, + 23, 0, 0, 0, 23, 0, 0, 0, 25, 0, 0, 0, 39, 0, 0, 0, + 25, 0, 0, 0, 41, 0, 0, 0, 47, 0, 0, 0, 41, 0, 0, 0, + 49, 0, 0, 0, 55, 0, 0, 0, 49, 0, 0, 0, 55, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; Index: haserl-0.9.29/src/Makefile.in =================================================================== --- haserl-0.9.29.orig/src/Makefile.in +++ haserl-0.9.29/src/Makefile.in @@ -32,7 +32,6 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -@USE_LUA_TRUE@noinst_PROGRAMS = lua2c$(EXEEXT) @INCLUDE_LUASHELL_TRUE@@USE_LUA_TRUE@am__append_1 = h_lua.c h_lua.h @INCLUDE_LUACSHELL_TRUE@@USE_LUA_TRUE@am__append_2 = h_luac.c h_luac.h bin_PROGRAMS = haserl$(EXEEXT) @@ -515,7 +514,7 @@ @USE_LUA_TRUE@ $(CC_FOR_BUILD) $(CFLAGS) $(LDFLAGS) $(lua2c_LDFLAGS) \ @USE_LUA_TRUE@ -o $@ $^ $(LIBS) -@USE_LUA_TRUE@haserl_lualib.inc : haserl_lualib.lua lua2c +@USE_LUA_TRUE@haserl_lualib.inc : @USE_LUA_TRUE@ if ! ./lua2c haserl_lualib haserl_lualib.lua >$@; then \ @USE_LUA_TRUE@ rm $@; \ @USE_LUA_TRUE@ exit 1 ;\ ================================================ FILE: package/haserl/Config.in ================================================ config BR2_PACKAGE_HASERL bool "haserl" depends on BR2_USE_MMU # fork() help Haserl is a small cgi wrapper that enables shell scripts to be embedded into html documents. It is intended for environments where something like PHP is too big. http://haserl.sourceforge.net/ config BR2_PACKAGE_HASERL_WITH_LUA bool "Lua support" depends on BR2_PACKAGE_HASERL depends on BR2_PACKAGE_LUA help Enable Lua support for haserl ================================================ FILE: package/haserl/haserl.hash ================================================ # From http://sourceforge.net/projects/haserl/files/haserl-devel/ md5 b94cd201a82b410b7f93fe3a31416cff haserl-0.9.36.tar.gz sha1 a6244b496f06e1fea70581cb02c04bc1f0ffcbc3 haserl-0.9.36.tar.gz # Locally computed sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/haserl/haserl.mk ================================================ ################################################################################ # # haserl # ################################################################################ HASERL_VERSION = 0.9.36 HASERL_SITE = http://downloads.sourceforge.net/project/haserl/haserl-devel HASERL_LICENSE = GPL-2.0 HASERL_LICENSE_FILES = COPYING HASERL_CPE_ID_VENDOR = haserl_project HASERL_DEPENDENCIES = host-pkgconf ifeq ($(BR2_PACKAGE_HASERL_WITH_LUA),y) HASERL_CONF_OPTS += --with-lua HASERL_DEPENDENCIES += lua # liblua uses dlopen when dynamically linked ifneq ($(BR2_STATIC_LIBS),y) HASERL_CONF_ENV += LIBS="-ldl" endif else HASERL_CONF_OPTS += --without-lua endif define HASERL_REMOVE_EXAMPLES rm -rf $(TARGET_DIR)/usr/share/haserl endef HASERL_POST_INSTALL_TARGET_HOOKS += HASERL_REMOVE_EXAMPLES $(eval $(autotools-package)) ================================================ FILE: package/haveged/0001-Check-for-sys-auxv.h-before-using-it.patch ================================================ From 676abde95bab10e1d26e91682772514010143343 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Sun, 21 Mar 2021 17:00:08 +0100 Subject: [PATCH] Check for sys/auxv.h before using it. - fixes uclibc-ng compile (does not provide sys/auxv.h header file) Fixes: haveged.c:22:10: fatal error: sys/auxv.h: No such file or directory 22 | #include | ^~~~~~~~~~~~ [Upstream: https://github.com/jirka-h/haveged/pull/59] Signed-off-by: Peter Seiderer --- configure.ac | 1 + src/haveged.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/configure.ac b/configure.ac index c172a10..a0263f5 100644 --- a/configure.ac +++ b/configure.ac @@ -125,6 +125,7 @@ AC_CHECK_HEADERS(stdio.h) AC_CHECK_HEADERS(stdlib.h) AC_CHECK_HEADERS(string.h) AC_CHECK_HEADERS(sys/ioctl.h) +AC_CHECK_HEADERS(sys/auxv.h) AC_CHECK_HEADERS(sys/mman.h) AC_CHECK_HEADERS(sys/types.h) AC_CHECK_HEADERS(sys/socket.h) diff --git a/src/haveged.c b/src/haveged.c index b9cb77b..dad3072 100644 --- a/src/haveged.c +++ b/src/haveged.c @@ -19,7 +19,9 @@ ** along with this program. If not, see . */ #include "config.h" +#if defined(HAVE_SYS_AUXV_H) #include +#endif #include #include #include @@ -135,8 +137,10 @@ int main(int argc, char **argv) { volatile char *path = strdup(argv[0]); volatile char *arg0 = argv[0]; +#if defined(HAVE_SYS_AUXV_H) if (path[0] != '/') path = (char*)getauxval(AT_EXECFN); +#endif static const char* cmds[] = { "b", "buffer", "1", SETTINGR("Buffer size [KW], default: ",COLLECT_BUFSIZE), "d", "data", "1", SETTINGR("Data cache size [KB], with fallback to: ", GENERIC_DCACHE ), -- 2.30.2 ================================================ FILE: package/haveged/Config.in ================================================ config BR2_PACKAGE_HAVEGED bool "haveged" depends on BR2_USE_MMU # fork() help The haveged project is an attempt to provide an easy-to-use, unpredictable random number generator based upon an adaptation of the HAVEGE algorithm. http://www.issihosts.com/haveged/ ================================================ FILE: package/haveged/S21haveged ================================================ #!/bin/sh case "$1" in start) printf "Starting haveged: " start-stop-daemon -S -x /usr/sbin/haveged -- -w 1024 -r 0 [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping haveged: " start-stop-daemon -K -x /usr/sbin/haveged [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart|reload) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0 ================================================ FILE: package/haveged/haveged.hash ================================================ # Locally calculated sha256 938cb494bcad7e4f24e61eb50fab4aa0acbc3240c80f3ad5c6cf7e6e922618c3 haveged-1.9.14.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/haveged/haveged.mk ================================================ ################################################################################ # # haveged # ################################################################################ HAVEGED_VERSION = 1.9.14 HAVEGED_SITE = $(call github,jirka-h,haveged,v$(HAVEGED_VERSION)) HAVEGED_LICENSE = GPL-3.0+ HAVEGED_LICENSE_FILES = COPYING HAVEGED_SELINUX_MODULES = entropyd # patch touching configure.ac HAVEGED_AUTORECONF = YES # '--disable-init' as buildroot ships its own sysv/systemd init files HAVEGED_CONF_OPTS = \ --enable-daemon \ --disable-diagnostic \ --disable-init \ --disable-nistest \ --disable-enttest \ --disable-olt \ --enable-tune ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y) HAVEGED_CONF_OPTS += --enable-clock_gettime endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) HAVEGED_CONF_OPTS += --enable-threads else HAVEGED_CONF_OPTS += --disable-threads endif define HAVEGED_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/haveged/S21haveged \ $(TARGET_DIR)/etc/init.d/S21haveged endef define HAVEGED_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/haveged/haveged.service \ $(TARGET_DIR)/usr/lib/systemd/system/haveged.service endef $(eval $(autotools-package)) ================================================ FILE: package/haveged/haveged.service ================================================ [Unit] # inspiration from upstream init.d/service.fedora Description=Entropy Daemon based on the HAVEGE algorithm Documentation=man:haveged(8) http://www.issihosts.com/haveged/ DefaultDependencies=no # This would wait for filesystems, but we only need /dev/random, which # is certainly available after systemd initialised # After=systemd-tmpfiles-setup-dev.service Before=sysinit.target shutdown.target systemd-journald.service [Service] ExecStart=/usr/sbin/haveged -w 1024 -v 1 --Foreground Restart=always SuccessExitStatus=137 143 # Only simple isolation methods that don't pull in dependencies CapabilityBoundingSet=CAP_SYS_ADMIN SecureBits=noroot-locked ProtectSystem=full [Install] WantedBy=sysinit.target ================================================ FILE: package/hdparm/Config.in ================================================ config BR2_PACKAGE_HDPARM bool "hdparm" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help hdparm - get/set ATA/SATA drive parameters under Linux https://sourceforge.net/projects/hdparm/ ================================================ FILE: package/hdparm/hdparm.hash ================================================ # From https://sourceforge.net/projects/hdparm/files/hdparm/ sha1 100b9a5551b71d87b446b415d56c5d45ac41d131 hdparm-9.62.tar.gz # Locally computed sha256 2c0f9d75cdbeda928a25a128cd3d0b7120445ec0910c0b29d4c1038ed1be777f hdparm-9.62.tar.gz sha256 eae572b06d2733f5c65fbe81680ce2b8a109afee2bdd1a161343c772af0e82e1 LICENSE.TXT ================================================ FILE: package/hdparm/hdparm.mk ================================================ ################################################################################ # # hdparm # ################################################################################ HDPARM_VERSION = 9.62 HDPARM_SITE = https://downloads.sourceforge.net/project/hdparm/hdparm HDPARM_LICENSE = BSD-Style HDPARM_LICENSE_FILES = LICENSE.TXT define HDPARM_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \ STRIP=/bin/true endef define HDPARM_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/hdparm $(TARGET_DIR)/sbin/hdparm endef $(eval $(generic-package)) ================================================ FILE: package/heimdal/heimdal.hash ================================================ # From https://github.com/heimdal/heimdal/releases sha1 5dd16703be7255f66a4d65440f0c622aeeca60d9 heimdal-7.7.0.tar.gz sha256 f02d3314d634cc55eb9cf04a1eae0d96b293e45a1f837de9d894e800161b7d1b heimdal-7.7.0.tar.gz # Locally computed sha256 0c4b07bf5b98f7a1d01f8e60722d6c6747ef052c2aa6d2043daf690d4e1b0a7f LICENSE ================================================ FILE: package/heimdal/heimdal.mk ================================================ ################################################################################ # # heimdal # ################################################################################ HEIMDAL_VERSION = 7.7.0 HEIMDAL_SITE = https://github.com/heimdal/heimdal/releases/download/heimdal-$(HEIMDAL_VERSION) HOST_HEIMDAL_DEPENDENCIES = host-e2fsprogs host-ncurses host-pkgconf HEIMDAL_INSTALL_STAGING = YES HEIMDAL_MAKE = $(MAKE1) # static because of -fPIC issues with e2fsprogs on x86_64 host HOST_HEIMDAL_CONF_OPTS = \ --disable-shared \ --enable-static \ --without-openldap \ --without-capng \ --with-db-type-preference= \ --without-sqlite3 \ --without-libintl \ --without-openssl \ --without-berkeley-db \ --without-readline \ --without-libedit \ --without-hesiod \ --without-x \ --disable-mdb-db \ --disable-ndbm-db \ --disable-heimdal-documentation # Don't use compile_et from e2fsprogs as it raises a build failure with samba4 HOST_HEIMDAL_CONF_ENV = ac_cv_prog_COMPILE_ET=no MAKEINFO=true HEIMDAL_LICENSE = BSD-3-Clause HEIMDAL_LICENSE_FILES = LICENSE HEIMDAL_CPE_ID_VENDOR = heimdal_project # We need compile_et for samba4 define HOST_HEIMDAL_INSTALL_COMPILE_ET $(INSTALL) -m 0755 $(@D)/lib/com_err/compile_et \ $(HOST_DIR)/bin/compile_et endef # We need asn1_compile in the PATH for samba4 define HOST_HEIMDAL_MAKE_SYMLINK ln -sf $(HOST_DIR)/libexec/heimdal/asn1_compile \ $(HOST_DIR)/bin/asn1_compile endef HOST_HEIMDAL_POST_INSTALL_HOOKS += \ HOST_HEIMDAL_INSTALL_COMPILE_ET \ HOST_HEIMDAL_MAKE_SYMLINK $(eval $(host-autotools-package)) ================================================ FILE: package/heirloom-mailx/0001-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch ================================================ From: Hilko Bengen Date: Wed, 27 Apr 2011 00:18:42 +0200 Subject: Patched out SSL2 support since it is no longer supported by OpenSSL. Now that openssl has dropped SSLv2 support we need to patch it out. Patch picked up from debian patchseries 5. Signed-off-by: Gustavo Zacarias --- mailx.1 | 2 +- openssl.c | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/mailx.1 b/mailx.1 index 417ea04..a02e430 100644 --- a/mailx.1 +++ b/mailx.1 @@ -3575,7 +3575,7 @@ Only applicable if SSL/TLS support is built using OpenSSL. .TP .B ssl-method Selects a SSL/TLS protocol version; -valid values are `ssl2', `ssl3', and `tls1'. +valid values are `ssl3', and `tls1'. If unset, the method is selected automatically, if possible. .TP diff --git a/openssl.c b/openssl.c index b4e33fc..44fe4e5 100644 --- a/openssl.c +++ b/openssl.c @@ -216,9 +216,7 @@ ssl_select_method(const char *uhp) cp = ssl_method_string(uhp); if (cp != NULL) { - if (equal(cp, "ssl2")) - method = SSLv2_client_method(); - else if (equal(cp, "ssl3")) + if (equal(cp, "ssl3")) method = SSLv3_client_method(); else if (equal(cp, "tls1")) method = TLSv1_client_method(); ================================================ FILE: package/heirloom-mailx/0002-fix-libressl-support.patch ================================================ From aad28d30af6c3a74c522dd61943788e908860c84 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Fri, 4 Aug 2017 07:22:47 -0400 Subject: [PATCH] fix libressl support heirloom-mailx has two small issues when compiling against LibreSSL: - RAND_egd is used (LibreSSL does not support RAND_egd) Solution: "Guard" the code calling RAND_egd - SSLv3_client_method function is used (LibreSSL does not support SSLv3) Solution: "Guard" the code with #ifndef OPENSSL_NO_SSL3 Signed-off-by: Adam Duskett --- openssl.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openssl.c b/openssl.c index 44fe4e5..c4a1bb7 100644 --- a/openssl.c +++ b/openssl.c @@ -137,11 +137,13 @@ ssl_rand_init(void) if ((cp = value("ssl-rand-egd")) != NULL) { cp = expand(cp); +#ifndef OPENSSL_NO_EGD if (RAND_egd(cp) == -1) { fprintf(stderr, catgets(catd, CATSET, 245, "entropy daemon at \"%s\" not available\n"), cp); } else +#endif state = 1; } else if ((cp = value("ssl-rand-file")) != NULL) { cp = expand(cp); @@ -216,10 +218,15 @@ ssl_select_method(const char *uhp) cp = ssl_method_string(uhp); if (cp != NULL) { + #ifndef OPENSSL_NO_SSL3 if (equal(cp, "ssl3")) method = SSLv3_client_method(); else if (equal(cp, "tls1")) method = TLSv1_client_method(); + #else + if (equal(cp, "tls1")) + method = TLSv1_client_method(); + #endif else { fprintf(stderr, catgets(catd, CATSET, 244, "Invalid SSL method \"%s\"\n"), cp); -- 2.13.3 ================================================ FILE: package/heirloom-mailx/Config.in ================================================ config BR2_PACKAGE_HEIRLOOM_MAILX bool "heirloom-mailx" # uses fork() depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RC2 if BR2_PACKAGE_LIBOPENSSL help Heirloom mailx (previously known as nail) is a mail user agent for Unix systems. It can be used as a command-line mail reader, but also more importantly on embedded systems, as a mail composition program and SMTP client, in order to send e-mail from shell scripts. It supports SMTP authentication (login, plain, cram-md5), SMTPS, MIME encoding of attachements, and more. http://heirloom.sourceforge.net/mailx.html comment "heirloom-mailx needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS depends on BR2_USE_MMU ================================================ FILE: package/heirloom-mailx/heirloom-mailx.hash ================================================ # From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-3.dsc sha256 015ba4209135867f37a0245d22235a392b8bbed956913286b887c2e2a9a421ad heirloom-mailx_12.5.orig.tar.gz # Locally computed sha256 5ddc00aed98a0cf75fc7edfd9f3aeb1e919ae0ad5e9ff55d61f643d62d802b07 COPYING ================================================ FILE: package/heirloom-mailx/heirloom-mailx.mk ================================================ ################################################################################ # # heirloom-mailx # ################################################################################ HEIRLOOM_MAILX_VERSION = 12.5 HEIRLOOM_MAILX_SOURCE = heirloom-mailx_$(HEIRLOOM_MAILX_VERSION).orig.tar.gz HEIRLOOM_MAILX_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/h/heirloom-mailx HEIRLOOM_MAILX_LICENSE = BSD-4-Clause, Bellcore (base64), OpenVision (imap_gssapi), RSA Data Security (md5), Network Working Group (hmac), MPL-1.1 (nss) HEIRLOOM_MAILX_LICENSE_FILES = COPYING HEIRLOOM_MAILX_CPE_ID_VENDOR = heirloom HEIRLOOM_MAILX_CPE_ID_PRODUCT = mailx ifeq ($(BR2_PACKAGE_OPENSSL),y) HEIRLOOM_MAILX_DEPENDENCIES += openssl endif define HEIRLOOM_MAILX_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) $(SHELL) ./makeconfig) endef HEIRLOOM_MAILX_CFLAGS = $(TARGET_CFLAGS) # -fPIC is needed to build with NIOS2 toolchains. HEIRLOOM_MAILX_CFLAGS += -fPIC ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_101916),y) HEIRLOOM_MAILX_CFLAGS += -O0 endif define HEIRLOOM_MAILX_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) \ CFLAGS="$(HEIRLOOM_MAILX_CFLAGS)" \ -C $(@D) endef define HEIRLOOM_MAILX_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ PREFIX=/usr \ UCBINSTALL=$(INSTALL) \ STRIP=/bin/true \ DESTDIR=$(TARGET_DIR) \ install endef $(eval $(generic-package)) ================================================ FILE: package/hiawatha/Config.in ================================================ comment "hiawatha 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 config BR2_PACKAGE_HIAWATHA bool "hiawatha" # needs fork() depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 # __sync_*_4 intrisics depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS select BR2_PACKAGE_ZLIB help Hiawatha is a webserver for Unix and has been built with security in mind. This resulted in a highly secure webserver, in both code and features. This webserver runs on Linux, BSD, MacOS X and Windows. Although it can run any kind of CGI / FastCGI application, it has been optimized for usage with PHP. Most well known PHP frameworks and CMS applications have been tested with Hiawatha and ran without a problem. Hiawatha supports many web and HTTP features such as CGI/FastCGI, HTTP authentication, virtual host support, request pipelining, keep alive connections, URL rewriting and many more. http://www.hiawatha-webserver.org/ if BR2_PACKAGE_HIAWATHA config BR2_PACKAGE_HIAWATHA_SSL bool "hiawatha TLS support" select BR2_PACKAGE_MBEDTLS endif ================================================ FILE: package/hiawatha/hiawatha.hash ================================================ # Locally calculated sha256 79d85d165d68dd7043bbd337f5bc7dd10d8632d68ba61d0e557f84bd687c9727 hiawatha-10.11.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 LICENSE ================================================ FILE: package/hiawatha/hiawatha.mk ================================================ ################################################################################ # # hiawatha # ################################################################################ HIAWATHA_VERSION = 10.11 HIAWATHA_SITE = https://www.hiawatha-webserver.org/files HIAWATHA_DEPENDENCIES = zlib HIAWATHA_LICENSE = GPL-2.0 HIAWATHA_LICENSE_FILES = LICENSE HIAWATHA_CPE_ID_VENDOR = hiawatha-webserver HIAWATHA_CONF_OPTS = \ -DENABLE_TOOLKIT=OFF \ -DCONFIG_DIR=/etc/hiawatha \ -DLOG_DIR=/var/log \ -DPID_DIR=/var/run \ -DWEBROOT_DIR=/var/www/hiawatha \ -DWORK_DIR=/var/lib/hiawatha ifeq ($(BR2_PACKAGE_HIAWATHA_SSL),y) HIAWATHA_CONF_OPTS += -DUSE_SYSTEM_MBEDTLS=ON HIAWATHA_DEPENDENCIES += mbedtls else HIAWATHA_CONF_OPTS += -DENABLE_TLS=OFF endif ifeq ($(BR2_PACKAGE_LIBXSLT),y) HIAWATHA_CONF_OPTS += -DENABLE_XSLT=ON HIAWATHA_DEPENDENCIES += libxslt else HIAWATHA_CONF_OPTS += -DENABLE_XSLT=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/hicolor-icon-theme/Config.in ================================================ config BR2_PACKAGE_HICOLOR_ICON_THEME bool "hicolor icon theme" help Freedesktop Hicolor icon theme This is the fallback icon theme, which only creates the standard directory structure for storing icons of third-party applications (i.e. the ones not available in usual icon themes). https://www.freedesktop.org/wiki/Software/icon-theme/ ================================================ FILE: package/hicolor-icon-theme/hicolor-icon-theme.hash ================================================ # Locally calculated sha256 317484352271d18cbbcfac3868eab798d67fff1b8402e740baa6ff41d588a9d8 hicolor-icon-theme-0.17.tar.xz sha256 b0a64377d4ee87b7dbcf418ce4fb33ec3b2d7081b6732890e4af06b8118c4526 COPYING ================================================ FILE: package/hicolor-icon-theme/hicolor-icon-theme.mk ================================================ ################################################################################ # # hicolor-icon-theme # ################################################################################ HICOLOR_ICON_THEME_VERSION = 0.17 HICOLOR_ICON_THEME_SITE = http://icon-theme.freedesktop.org/releases HICOLOR_ICON_THEME_SOURCE = hicolor-icon-theme-$(HICOLOR_ICON_THEME_VERSION).tar.xz HICOLOR_ICON_THEME_LICENSE = GPL-2.0 HICOLOR_ICON_THEME_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/hidapi/Config.in ================================================ config BR2_PACKAGE_HIDAPI bool "hidapi" depends on BR2_PACKAGE_HAS_UDEV depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBGUDEV select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE # runtime UTF conversion support select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC help HIDAPI is a multi-platform library which allows an application to interface with USB and Bluetooth HID-Class devices on Windows, Linux, and Mac OS X. http://github.com/libusb/hidapi/ comment "hidapi needs udev /dev management and a toolchain w/ NPTL, threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ !BR2_PACKAGE_HAS_UDEV || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/hidapi/hidapi.hash ================================================ # Locally calculated sha256 391d8e52f2d6a5cf76e2b0c079cfefe25497ba1d4659131297081fc0cd744632 hidapi-0.11.0.tar.gz sha256 7d3b087c34f35d4d538e3bcddd1ff8f66e92f9ef336881999482800ddf840913 LICENSE.txt sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE-gpl3.txt sha256 30eb1bef29b46f8ba7ab8b416035dbd93cb034a45481dd97815b944284582cd2 LICENSE-bsd.txt sha256 fb5436aa63d1b71a8dfbf74ecaf1a5b4e1ec4df7f80074d11fec99284f69ca5f LICENSE-orig.txt ================================================ FILE: package/hidapi/hidapi.mk ================================================ ################################################################################ # # hidapi # ################################################################################ HIDAPI_VERSION = 0.11.0 HIDAPI_SITE = $(call github,libusb,hidapi,hidapi-$(HIDAPI_VERSION)) HIDAPI_INSTALL_STAGING = YES # No configure provided, so we need to autoreconf. HIDAPI_AUTORECONF = YES HIDAPI_LICENSE = GPL-3.0 or BSD-3-Clause or HIDAPI license HIDAPI_LICENSE_FILES = LICENSE.txt LICENSE-gpl3.txt LICENSE-bsd.txt LICENSE-orig.txt HIDAPI_DEPENDENCIES = libusb libgudev ifeq ($(BR2_PACKAGE_LIBICONV),y) HIDAPI_DEPENDENCIES += libiconv HIDAPI_CONF_ENV += LIBS="-liconv" endif $(eval $(autotools-package)) ================================================ FILE: package/hiredis/0001-CMakeLists.txt-do-not-force-SHARED.patch ================================================ From 0ce382c275b087e866517c003e565f8cc4855bdd Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 29 Aug 2020 23:19:26 +0200 Subject: [PATCH] CMakeLists.txt: do not force SHARED Allow the user to build static libraries by removing SHARED from ADD_LIBRARY calls. Here is an extract of https://cmake.org/cmake/help/latest/command/add_library.html: "If no type is given explicitly the type is STATIC or SHARED based on whether the current value of the variable BUILD_SHARED_LIBS is ON." Signed-off-by: Fabrice Fontaine [Upstream status: probably not upstreamable as is because it will conflict with https://github.com/redis/hiredis/pull/851. So, this patch will probably have to be reworked for 1.0.x] --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1beccc6..fed79fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,7 @@ IF(WIN32) ADD_COMPILE_DEFINITIONS(_CRT_SECURE_NO_WARNINGS WIN32_LEAN_AND_MEAN) ENDIF() -ADD_LIBRARY(hiredis SHARED ${hiredis_sources}) +ADD_LIBRARY(hiredis ${hiredis_sources}) SET_TARGET_PROPERTIES(hiredis PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE @@ -97,7 +97,7 @@ IF(ENABLE_SSL) FIND_PACKAGE(OpenSSL REQUIRED) SET(hiredis_ssl_sources ssl.c) - ADD_LIBRARY(hiredis_ssl SHARED + ADD_LIBRARY(hiredis_ssl ${hiredis_ssl_sources}) IF (APPLE) -- 2.28.0 ================================================ FILE: package/hiredis/0002-CMakeLists.txt-allow-building-without-a-C-compiler.patch ================================================ From bb4a8937411a9e6ac2e5c12c0e7eeaa7dab251ba Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 5 Sep 2020 12:54:21 +0200 Subject: [PATCH] CMakeLists.txt: allow building without a C++ compiler Define hiredis as a C project (and use a single PROJECT statement) to avoid the following build failure if a C++ compiler is not found: CMake Error at CMakeLists.txt:3 (PROJECT): The CMAKE_CXX_COMPILER: /srv/storage/autobuild/run/instance-1/output-1/host/bin/arm-linux-g++ is not a full path to an existing compiler tool. Tell CMake where to find the compiler by setting either the environment variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. The only cpp source file is examples/example-qt.cpp which is never compiled with cmake buildsystem. This file is compiled only with the Makefile buildsystem so perhaps it should be removed. If it is added to the cmake buildsystem, a call to enable_language(CXX) will have to be added. Fixes: - http://autobuild.buildroot.org/results/830ec3398cd29b9fc5cde06a225ef531d7a9d850 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/redis/hiredis/pull/872] --- CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4cbd438..9d65b7f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,5 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.4.0) INCLUDE(GNUInstallDirs) -PROJECT(hiredis) OPTION(ENABLE_SSL "Build hiredis_ssl for SSL support" OFF) OPTION(DISABLE_TESTS "If tests should be compiled or not" OFF) @@ -20,7 +19,7 @@ getVersionBit(HIREDIS_SONAME) SET(VERSION "${HIREDIS_MAJOR}.${HIREDIS_MINOR}.${HIREDIS_PATCH}") MESSAGE("Detected version: ${VERSION}") -PROJECT(hiredis VERSION "${VERSION}") +PROJECT(hiredis LANGUAGES "C" VERSION "${VERSION}") # Hiredis requires C99 SET(CMAKE_C_STANDARD 99) -- 2.28.0 ================================================ FILE: package/hiredis/0003-Explicitly-set-c99-in-CMake.patch ================================================ From 13a35bdb64615e381c5e1151cdd4e78bba71a6db Mon Sep 17 00:00:00 2001 From: michael-grunder Date: Fri, 28 Aug 2020 12:35:01 -0700 Subject: [PATCH] Explicitly set c99 in CMake See #869 [Retrieved from: https://github.com/redis/hiredis/commit/13a35bdb64615e381c5e1151cdd4e78bba71a6db] Signed-off-by: Fabrice Fontaine --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1beccc69a..4cbd438d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,6 +22,9 @@ MESSAGE("Detected version: ${VERSION}") PROJECT(hiredis VERSION "${VERSION}") +# Hiredis requires C99 +SET(CMAKE_C_STANDARD 99) + SET(ENABLE_EXAMPLES OFF CACHE BOOL "Enable building hiredis examples") SET(hiredis_sources ================================================ FILE: package/hiredis/Config.in ================================================ config BR2_PACKAGE_HIREDIS bool "hiredis" help Minimalistic C client for Redis >= 1.2 It is minimalistic because it just adds minimal support for the protocol, but at the same time it uses a high level printf-alike API in order to make it much higher level than otherwise suggested by its minimal code base and the lack of explicit bindings for every Redis command. https://github.com/redis/hiredis ================================================ FILE: package/hiredis/hiredis.hash ================================================ # Locally computed: sha256 e0ab696e2f07deb4252dda45b703d09854e53b9703c7d52182ce5a22616c3819 hiredis-1.0.2.tar.gz sha256 dca05ce8fc87a8261783b4aed0deef8becc9350b6aa770bc714d0c1833b896eb COPYING ================================================ FILE: package/hiredis/hiredis.mk ================================================ ################################################################################ # # hiredis # ################################################################################ HIREDIS_VERSION_MAJOR = 1.0 HIREDIS_VERSION = $(HIREDIS_VERSION_MAJOR).2 HIREDIS_SITE = $(call github,redis,hiredis,v$(HIREDIS_VERSION)) HIREDIS_LICENSE = BSD-3-Clause HIREDIS_LICENSE_FILES = COPYING HIREDIS_CPE_ID_VENDOR = redislabs HIREDIS_INSTALL_STAGING = YES HIREDIS_CONF_OPTS = -DDISABLE_TESTS=ON ifeq ($(BR2_PACKAGE_OPENSSL)$(BR2_TOOLCHAIN_HAS_THREADS),yy) HIREDIS_CONF_OPTS += -DENABLE_SSL=ON HIREDIS_DEPENDENCIES += openssl else HIREDIS_CONF_OPTS += -DENABLE_SSL=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/hostapd/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch ================================================ From 8c07fa9eda13e835f3f968b2e1c9a8be3a851ff9 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Thu, 29 Aug 2019 11:52:04 +0300 Subject: [PATCH] AP: Silently ignore management frame from unexpected source address Do not process any received Management frames with unexpected/invalid SA so that we do not add any state for unexpected STA addresses or end up sending out frames to unexpected destination. This prevents unexpected sequences where an unprotected frame might end up causing the AP to send out a response to another device and that other device processing the unexpected response. In particular, this prevents some potential denial of service cases where the unexpected response frame from the AP might result in a connected station dropping its association. Signed-off-by: Jouni Malinen Signed-off-by: Fabrice Fontaine [Retrieved from: https://w1.fi/security/2019-7/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch] --- src/ap/drv_callbacks.c | 13 +++++++++++++ src/ap/ieee802_11.c | 12 ++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c index 31587685fe3b..34ca379edc3d 100644 --- a/src/ap/drv_callbacks.c +++ b/src/ap/drv_callbacks.c @@ -131,6 +131,19 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr, "hostapd_notif_assoc: Skip event with no address"); return -1; } + + if (is_multicast_ether_addr(addr) || + is_zero_ether_addr(addr) || + os_memcmp(addr, hapd->own_addr, ETH_ALEN) == 0) { + /* Do not process any frames with unexpected/invalid SA so that + * we do not add any state for unexpected STA addresses or end + * up sending out frames to unexpected destination. */ + wpa_printf(MSG_DEBUG, "%s: Invalid SA=" MACSTR + " in received indication - ignore this indication silently", + __func__, MAC2STR(addr)); + return 0; + } + random_add_randomness(addr, ETH_ALEN); hostapd_logger(hapd, addr, HOSTAPD_MODULE_IEEE80211, diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c index c85a28db44b7..e7065372e158 100644 --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c @@ -4626,6 +4626,18 @@ int ieee802_11_mgmt(struct hostapd_data *hapd, const u8 *buf, size_t len, fc = le_to_host16(mgmt->frame_control); stype = WLAN_FC_GET_STYPE(fc); + if (is_multicast_ether_addr(mgmt->sa) || + is_zero_ether_addr(mgmt->sa) || + os_memcmp(mgmt->sa, hapd->own_addr, ETH_ALEN) == 0) { + /* Do not process any frames with unexpected/invalid SA so that + * we do not add any state for unexpected STA addresses or end + * up sending out frames to unexpected destination. */ + wpa_printf(MSG_DEBUG, "MGMT: Invalid SA=" MACSTR + " in received frame - ignore this frame silently", + MAC2STR(mgmt->sa)); + return 0; + } + if (stype == WLAN_FC_STYPE_BEACON) { handle_beacon(hapd, mgmt, len, fi); return 1; -- 2.20.1 ================================================ FILE: package/hostapd/0002-ASN.1-Validate-DigestAlgorithmIdentifier-parameters.patch ================================================ From a0541334a6394f8237a4393b7372693cd7e96f15 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 13 Mar 2021 18:19:31 +0200 Subject: [PATCH] ASN.1: Validate DigestAlgorithmIdentifier parameters The supported hash algorithms do not use AlgorithmIdentifier parameters. However, there are implementations that include NULL parameters in addition to ones that omit the parameters. Previous implementation did not check the parameters value at all which supported both these cases, but did not reject any other unexpected information. Use strict validation of digest algorithm parameters and reject any unexpected value when validating a signature. This is needed to prevent potential forging attacks. Signed-off-by: Jouni Malinen Signed-off-by: Peter Korsgaard --- src/tls/pkcs1.c | 21 +++++++++++++++++++++ src/tls/x509v3.c | 20 ++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/tls/pkcs1.c b/src/tls/pkcs1.c index bbdb0d72d..5761dfed0 100644 --- a/src/tls/pkcs1.c +++ b/src/tls/pkcs1.c @@ -244,6 +244,8 @@ int pkcs1_v15_sig_ver(struct crypto_public_key *pk, os_free(decrypted); return -1; } + wpa_hexdump(MSG_MSGDUMP, "PKCS #1: DigestInfo", + hdr.payload, hdr.length); pos = hdr.payload; end = pos + hdr.length; @@ -265,6 +267,8 @@ int pkcs1_v15_sig_ver(struct crypto_public_key *pk, os_free(decrypted); return -1; } + wpa_hexdump(MSG_MSGDUMP, "PKCS #1: DigestAlgorithmIdentifier", + hdr.payload, hdr.length); da_end = hdr.payload + hdr.length; if (asn1_get_oid(hdr.payload, hdr.length, &oid, &next)) { @@ -273,6 +277,23 @@ int pkcs1_v15_sig_ver(struct crypto_public_key *pk, os_free(decrypted); return -1; } + wpa_hexdump(MSG_MSGDUMP, "PKCS #1: Digest algorithm parameters", + next, da_end - next); + + /* + * RFC 5754: The correct encoding for the SHA2 algorithms would be to + * omit the parameters, but there are implementation that encode these + * as a NULL element. Allow these two cases and reject anything else. + */ + if (da_end > next && + (asn1_get_next(next, da_end - next, &hdr) < 0 || + !asn1_is_null(&hdr) || + hdr.payload + hdr.length != da_end)) { + wpa_printf(MSG_DEBUG, + "PKCS #1: Unexpected digest algorithm parameters"); + os_free(decrypted); + return -1; + } if (!asn1_oid_equal(&oid, hash_alg)) { char txt[100], txt2[100]; diff --git a/src/tls/x509v3.c b/src/tls/x509v3.c index a8944dd2f..df337ec4d 100644 --- a/src/tls/x509v3.c +++ b/src/tls/x509v3.c @@ -1964,6 +1964,7 @@ int x509_check_signature(struct x509_certificate *issuer, os_free(data); return -1; } + wpa_hexdump(MSG_MSGDUMP, "X509: DigestInfo", hdr.payload, hdr.length); pos = hdr.payload; end = pos + hdr.length; @@ -1985,6 +1986,8 @@ int x509_check_signature(struct x509_certificate *issuer, os_free(data); return -1; } + wpa_hexdump(MSG_MSGDUMP, "X509: DigestAlgorithmIdentifier", + hdr.payload, hdr.length); da_end = hdr.payload + hdr.length; if (asn1_get_oid(hdr.payload, hdr.length, &oid, &next)) { @@ -1992,6 +1995,23 @@ int x509_check_signature(struct x509_certificate *issuer, os_free(data); return -1; } + wpa_hexdump(MSG_MSGDUMP, "X509: Digest algorithm parameters", + next, da_end - next); + + /* + * RFC 5754: The correct encoding for the SHA2 algorithms would be to + * omit the parameters, but there are implementation that encode these + * as a NULL element. Allow these two cases and reject anything else. + */ + if (da_end > next && + (asn1_get_next(next, da_end - next, &hdr) < 0 || + !asn1_is_null(&hdr) || + hdr.payload + hdr.length != da_end)) { + wpa_printf(MSG_DEBUG, + "X509: Unexpected digest algorithm parameters"); + os_free(data); + return -1; + } if (x509_sha1_oid(&oid)) { if (signature->oid.oid[6] != 5 /* sha-1WithRSAEncryption */) { -- 2.20.1 ================================================ FILE: package/hostapd/0003-Include-stdbool.h-to-allow-C99-bool-to-be-used.patch ================================================ From 99cf89555313056d3a8fa54b21d02dc880b363e1 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Mon, 20 Apr 2020 20:29:31 +0300 Subject: [PATCH] Include stdbool.h to allow C99 bool to be used We have practically started requiring some C99 features, so might as well finally go ahead and bring in the C99 bool as well. Signed-off-by: Jouni Malinen [geomatsi@gmail.com: backport from upstream] Signed-off-by: Sergey Matyukevich [yann.morin.1998@free.fr: keep upstream sha1 in header, drop numbering] Signed-off-by: Yann E. MORIN --- src/utils/includes.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/utils/includes.h b/src/utils/includes.h index 75513fc8c..741fc9c14 100644 --- a/src/utils/includes.h +++ b/src/utils/includes.h @@ -18,6 +18,7 @@ #include #include +#include #include #include #include -- 2.25.1 ================================================ FILE: package/hostapd/0004-ASN.1-Add-helper-functions-for-recognizing-tag-value.patch ================================================ From 9a990e8c4eb92dd64e0ec483599820e45c35ac23 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 13 Mar 2021 23:14:23 +0200 Subject: [PATCH] ASN.1: Add helper functions for recognizing tag values Signed-off-by: Jouni Malinen [geomatsi@gmail.com: backport asn1_is_null() from upstream 9a990e8c4eb9] Signed-off-by: Sergey Matyukevich [yann.morin.1998@free.fr: - reformat, keep the upstream sha1 and title, - drop numbering ] Signed-off-by: Yann E. MORIN --- src/tls/asn1.h | 102 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/src/tls/asn1.h b/src/tls/asn1.h index de3430adb..a4d1be473 100644 --- a/src/tls/asn1.h +++ b/src/tls/asn1.h @@ -66,6 +66,12 @@ struct wpabuf * asn1_build_alg_id(const struct asn1_oid *oid, unsigned long asn1_bit_string_to_long(const u8 *buf, size_t len); int asn1_oid_equal(const struct asn1_oid *a, const struct asn1_oid *b); +static inline bool asn1_is_null(const struct asn1_hdr *hdr) +{ + return hdr->class == ASN1_CLASS_UNIVERSAL && + hdr->tag == ASN1_TAG_NULL; +} + extern struct asn1_oid asn1_sha1_oid; extern struct asn1_oid asn1_sha256_oid; -- 2.25.1 ================================================ FILE: package/hostapd/Config.in ================================================ config BR2_PACKAGE_HOSTAPD bool "hostapd" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 if BR2_PACKAGE_LIBOPENSSL help User space daemon for wireless access points. It implements IEEE 802.11 access point management, IEEE 802.1X/WPA/WPA2/EAP authenticators, RADIUS client, EAP server and RADIUS authentication server. http://w1.fi/hostapd/ if BR2_PACKAGE_HOSTAPD config BR2_PACKAGE_HOSTAPD_DRIVER_HOSTAP bool "Enable hostap driver" default y select BR2_PACKAGE_HOSTAPD_HAS_WIFI_DRIVERS help Enable support for Host AP driver. config BR2_PACKAGE_HOSTAPD_DRIVER_NL80211 bool "Enable nl80211 driver" default y depends on BR2_TOOLCHAIN_HAS_THREADS # libnl select BR2_PACKAGE_LIBNL select BR2_PACKAGE_HOSTAPD_HAS_WIFI_DRIVERS help Enable support for drivers using the nl80211 kernel interface. comment "nl80211 driver needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_HOSTAPD_DRIVER_WIRED bool "Enable wired driver" help Enable support for wired authenticator. config BR2_PACKAGE_HOSTAPD_DRIVER_NONE bool default y depends on !BR2_PACKAGE_HOSTAPD_DRIVER_HOSTAP depends on !BR2_PACKAGE_HOSTAPD_DRIVER_NL80211 depends on !BR2_PACKAGE_HOSTAPD_DRIVER_WIRED config BR2_PACKAGE_HOSTAPD_HAS_WIFI_DRIVERS bool config BR2_PACKAGE_HOSTAPD_ACS bool "Enable ACS" default y depends on BR2_PACKAGE_HOSTAPD_DRIVER_NL80211 help Enable support for standard ACS (Automatic Channel Selection). Some propietary drivers use a custom algorithm which requires channel to be set to '0' (which enables ACS in the config), causing hostapd to use the standard one which doesn't work for those cases. comment "ACS is currently only supported through the nl80211 driver" depends on !BR2_PACKAGE_HOSTAPD_DRIVER_NL80211 config BR2_PACKAGE_HOSTAPD_EAP bool "Enable EAP" depends on !BR2_STATIC_LIBS help Enable support for EAP and RADIUS. comment "hostapd EAP needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_HOSTAPD_WPS bool "Enable WPS" help Enable support for Wi-Fi Protected Setup. config BR2_PACKAGE_HOSTAPD_WPA3 bool "Enable WPA3 support" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL help Enable WPA3 support including OWE, SAE, DPP config BR2_PACKAGE_HOSTAPD_VLAN bool "Enable VLAN support" default y help Enable support for VLANs. if BR2_PACKAGE_HOSTAPD_VLAN config BR2_PACKAGE_HOSTAPD_VLAN_DYNAMIC bool "Enable dynamic VLAN support" default y help Enable support for fully dynamic VLANs. This enables hostapd to automatically create bridge and VLAN interfaces if necessary. config BR2_PACKAGE_HOSTAPD_VLAN_NETLINK bool "Use netlink-based API for VLAN operations" default y depends on BR2_TOOLCHAIN_HAS_THREADS # libnl select BR2_PACKAGE_LIBNL help Use netlink-based kernel API for VLAN operations instead of ioctl(). comment "netlink-based VLAN support needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS endif # BR2_PACKAGE_HOSTAPD_VLAN endif ================================================ FILE: package/hostapd/hostapd.hash ================================================ # Locally calculated sha256 881d7d6a90b2428479288d64233151448f8990ab4958e0ecaca7eeb3c9db2bd7 hostapd-2.9.tar.gz sha256 2d9a5b9d616f1b4aa4a22b967cee866e2f69b798b0b46803a7928c8559842bd7 0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch sha256 49feb35a5276279b465f6836d6fa2c6b34d94dc979e8b840d1918865c04260de 0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch sha256 a8212a2d89a5bab2824d22b6047e7740553df163114fcec94832bfa9c5c5d78a 0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch sha256 7f40cfec5faf5e927ea9028ab9392cd118685bde7229ad24210caf0a8f6e9611 0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch sha256 9da5dd0776da266b180b915e460ff75c6ff729aca1196ab396529510f24f3761 README ================================================ FILE: package/hostapd/hostapd.mk ================================================ ################################################################################ # # hostapd # ################################################################################ HOSTAPD_VERSION = 2.9 HOSTAPD_SITE = http://w1.fi/releases HOSTAPD_SUBDIR = hostapd HOSTAPD_CONFIG = $(HOSTAPD_DIR)/$(HOSTAPD_SUBDIR)/.config HOSTAPD_PATCH = \ https://w1.fi/security/2020-1/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch \ https://w1.fi/security/2020-1/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch \ https://w1.fi/security/2020-1/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch \ https://w1.fi/security/2021-1/0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch HOSTAPD_DEPENDENCIES = host-pkgconf HOSTAPD_CFLAGS = $(TARGET_CFLAGS) HOSTAPD_LICENSE = BSD-3-Clause HOSTAPD_LICENSE_FILES = README # 0001-AP-Silently-ignore-management-frame-from-unexpected-.patch HOSTAPD_IGNORE_CVES += CVE-2019-16275 # 0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch HOSTAPD_IGNORE_CVES += CVE-2020-12695 # 0002-ASN.1-Validate-DigestAlgorithmIdentifier-parameters.patch HOSTAPD_IGNORE_CVES += CVE-2021-30004 # 0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch HOSTAPD_IGNORE_CVES += CVE-2021-27803 HOSTAPD_CPE_ID_VENDOR = w1.fi HOSTAPD_SELINUX_MODULES = hostapd HOSTAPD_CONFIG_SET = HOSTAPD_CONFIG_ENABLE = \ CONFIG_INTERNAL_LIBTOMMATH \ CONFIG_DEBUG_FILE \ CONFIG_DEBUG_SYSLOG HOSTAPD_CONFIG_DISABLE = # Try to use openssl if it's already available ifeq ($(BR2_PACKAGE_LIBOPENSSL),y) HOSTAPD_DEPENDENCIES += host-pkgconf libopenssl HOSTAPD_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs openssl` HOSTAPD_CONFIG_EDITS += 's/\#\(CONFIG_TLS=openssl\)/\1/' else HOSTAPD_CONFIG_DISABLE += CONFIG_EAP_PWD CONFIG_EAP_TEAP HOSTAPD_CONFIG_EDITS += 's/\#\(CONFIG_TLS=\).*/\1internal/' endif ifeq ($(BR2_PACKAGE_HOSTAPD_DRIVER_HOSTAP),) HOSTAPD_CONFIG_DISABLE += CONFIG_DRIVER_HOSTAP endif ifeq ($(BR2_PACKAGE_HOSTAPD_DRIVER_NL80211),) HOSTAPD_CONFIG_DISABLE += CONFIG_DRIVER_NL80211 endif ifeq ($(BR2_PACKAGE_HOSTAPD_DRIVER_WIRED),y) HOSTAPD_CONFIG_ENABLE += CONFIG_DRIVER_WIRED endif ifeq ($(BR2_PACKAGE_HOSTAPD_DRIVER_NONE),y) HOSTAPD_CONFIG_ENABLE += CONFIG_DRIVER_NONE endif # Add options for wireless drivers ifeq ($(BR2_PACKAGE_HOSTAPD_HAS_WIFI_DRIVERS),y) HOSTAPD_CONFIG_ENABLE += \ CONFIG_HS20 \ CONFIG_IEEE80211AC \ CONFIG_IEEE80211N \ CONFIG_IEEE80211R \ CONFIG_INTERWORKING endif ifeq ($(BR2_PACKAGE_HOSTAPD_ACS),y) HOSTAPD_CONFIG_ENABLE += CONFIG_ACS endif ifeq ($(BR2_PACKAGE_HOSTAPD_EAP),y) HOSTAPD_CONFIG_ENABLE += \ CONFIG_EAP \ CONFIG_RADIUS_SERVER # Enable both TLS v1.1 (CONFIG_TLSV11) and v1.2 (CONFIG_TLSV12) HOSTAPD_CONFIG_ENABLE += CONFIG_TLSV1 else HOSTAPD_CONFIG_DISABLE += CONFIG_EAP HOSTAPD_CONFIG_ENABLE += \ CONFIG_NO_ACCOUNTING \ CONFIG_NO_RADIUS endif ifeq ($(BR2_PACKAGE_HOSTAPD_WPS),y) HOSTAPD_CONFIG_ENABLE += CONFIG_WPS endif ifeq ($(BR2_PACKAGE_HOSTAPD_WPA3),y) HOSTAPD_CONFIG_SET += \ CONFIG_DPP \ CONFIG_SAE HOSTAPD_CONFIG_ENABLE += \ CONFIG_OWE else HOSTAPD_CONFIG_DISABLE += \ CONFIG_OWE endif ifeq ($(BR2_PACKAGE_HOSTAPD_VLAN),) HOSTAPD_CONFIG_ENABLE += CONFIG_NO_VLAN endif ifeq ($(BR2_PACKAGE_HOSTAPD_VLAN_DYNAMIC),y) HOSTAPD_CONFIG_ENABLE += CONFIG_FULL_DYNAMIC_VLAN HOSTAPD_CONFIG_SET += NEED_LINUX_IOCTL endif ifeq ($(BR2_PACKAGE_HOSTAPD_VLAN_NETLINK),y) HOSTAPD_CONFIG_ENABLE += CONFIG_VLAN_NETLINK endif # Options for building with libnl ifeq ($(BR2_PACKAGE_LIBNL),y) HOSTAPD_DEPENDENCIES += libnl HOSTAPD_CFLAGS += -I$(STAGING_DIR)/usr/include/libnl3/ HOSTAPD_CONFIG_ENABLE += CONFIG_LIBNL32 # libnl-3 needs -lm (for rint) and -lpthread if linking statically # And library order matters hence stick -lnl-3 first since it's appended # in the hostapd Makefiles as in LIBS+=-lnl-3 ... thus failing ifeq ($(BR2_STATIC_LIBS),y) HOSTAPD_LIBS += -lnl-3 -lm -lpthread endif endif define HOSTAPD_CONFIGURE_CMDS cp $(@D)/hostapd/defconfig $(HOSTAPD_CONFIG) sed -i $(patsubst %,-e 's/^#\(%\)/\1/',$(HOSTAPD_CONFIG_ENABLE)) \ $(patsubst %,-e 's/^\(%\)/#\1/',$(HOSTAPD_CONFIG_DISABLE)) \ $(patsubst %,-e '1i%=y',$(HOSTAPD_CONFIG_SET)) \ $(patsubst %,-e %,$(HOSTAPD_CONFIG_EDITS)) \ $(HOSTAPD_CONFIG) endef define HOSTAPD_BUILD_CMDS $(TARGET_MAKE_ENV) CFLAGS="$(HOSTAPD_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" LIBS="$(HOSTAPD_LIBS)" \ $(MAKE) CC="$(TARGET_CC)" -C $(@D)/$(HOSTAPD_SUBDIR) endef define HOSTAPD_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/$(HOSTAPD_SUBDIR)/hostapd \ $(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)) ================================================ FILE: package/hplip/0001-build-use-pkg-config-to-discover-libusb.patch ================================================ From 1eed2b65eff4c66b80eab0ec46c6705de19bdb9d Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 21 Jan 2016 23:54:03 +0100 Subject: [PATCH] build: use pkg-config to discover libusb This allows to remove hardcoded paths to libusb headers. Signed-off-by: Thomas Petazzoni --- Makefile.am | 4 ++-- configure.in | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Makefile.am b/Makefile.am index 73fed2e..3a4e899 100644 --- a/Makefile.am +++ b/Makefile.am @@ -92,8 +92,8 @@ libhpmud_la_SOURCES += io/hpmud/musb_libusb01.c libhpmud_la_LDFLAGS += -lusb else libhpmud_la_SOURCES += io/hpmud/musb.c -libhpmud_la_CFLAGS += -I/usr/include/libusb-1.0 -libhpmud_la_LDFLAGS += -lusb-1.0 +libhpmud_la_CFLAGS += $(LIBUSB_CFLAGS) +libhpmud_la_LDFLAGS += $(LIBUSB_LIBS) endif if NETWORK_BUILD diff --git a/configure.in b/configure.in index 3706645..8b06428 100755 --- a/configure.in +++ b/configure.in @@ -542,8 +542,7 @@ if test "$hpijs_only_build" = "no" && test "$hpcups_only_build" = "no"; then AC_CHECK_LIB([usb], [usb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb support], 2)]) AC_CHECK_HEADERS(usb.h, ,[AC_MSG_ERROR([cannot find libusb-devel support], 11)]) else - AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb 1.0 support], 2)]) - AC_CHECK_HEADERS(libusb-1.0/libusb.h, ,[AC_MSG_ERROR([cannot find libusb-1.0-devel support], 11)]) + PKG_CHECK_MODULES([LIBUSB], [libusb-1.0]) fi fi -- 2.6.4 ================================================ FILE: package/hplip/0002-configure.in-fix-AM_INIT_AUTOMAKE-call.patch ================================================ From a2de7e834417de68db10dc6f09d5810b06e6cbc8 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 21 Jan 2016 23:54:50 +0100 Subject: [PATCH] configure.in: fix AM_INIT_AUTOMAKE call Uncomment the appropriate call to AM_INIT_AUTOMAKE so that the "foreign" option is passed, which avoids the need for creating various unneeded files when autoreconfiguring. Add the subdir-objects options since the main Makefile.am references files in subdirectories. This allows to silence a huge amount of warning when autoreconfiguring. Signed-off-by: Thomas Petazzoni --- configure.in | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/configure.in b/configure.in index 8b06428..680cad5 100755 --- a/configure.in +++ b/configure.in @@ -27,8 +27,7 @@ #AC_PREREQ(2.59) AC_INIT([HP Linux Imaging and Printing], [3.17.10], [3.17.10], [hplip]) -#AM_INIT_AUTOMAKE([1.9 foreign]) -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([1.9 foreign subdir-objects]) AC_DISABLE_STATIC # Checks for programs. -- 2.6.4 ================================================ FILE: package/hplip/Config.in ================================================ config BR2_PACKAGE_HPLIP bool "hplip" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_CUPS depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb depends on !BR2_STATIC_LIBS # libdl select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_JPEG help HP Linux Imaging and Printing (HPLIP) HPLIP is an HP-developed solution for printing, scanning, and faxing with HP inkjet and laser based printers in Linux. The HPLIP project provides printing support for 2,211 printer models, including Deskjet, Officejet, Photosmart, PSC (Print Scan Copy), Business Inkjet, LaserJet, Edgeline MFP, and LaserJet MFP. http://hplipopensource.com/ comment "hplip needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.9" depends on BR2_PACKAGE_CUPS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/hplip/hplip.hash ================================================ # Locally computed: sha256 0f7344174672f63a98a22f3c109005b6eb89fe738b7d466316bf2c53d083476c hplip-3.17.10.tar.gz sha256 8af0e85fc6b88aec25200bcb4f604d886818482bd2c5cc81038f4c6a311c913a COPYING ================================================ FILE: package/hplip/hplip.mk ================================================ ################################################################################ # # hplip # ################################################################################ HPLIP_VERSION = 3.17.10 HPLIP_SITE = http://downloads.sourceforge.net/hplip/hplip HPLIP_AUTORECONF = YES HPLIP_DEPENDENCIES = cups libusb jpeg host-pkgconf HPLIP_LICENSE = GPL-2.0, BSD-3-Clause, MIT HPLIP_LICENSE_FILES = COPYING HPLIP_CPE_ID_VENDOR = hp HPLIP_CPE_ID_PRODUCT = linux_imaging_and_printing_project HPLIP_CONF_OPTS = \ --disable-qt4 \ --disable-scan-build \ --disable-gui-build \ --disable-doc-build \ --disable-network-build \ --enable-hpcups-install \ --disable-hpijs-install \ --enable-cups-ppd-install \ --enable-cups-drv-install \ --disable-foomatic-ppd-install \ --disable-foomatic-drv-install \ --disable-foomatic-rip-hplip-install \ --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 else HPLIP_CONF_OPTS += --disable-dbus-build endif define HPLIP_POST_INSTALL_TARGET_FIXUP mkdir -p $(TARGET_DIR)/usr/share/hplip/data/models cp $(@D)/data/models/* $(TARGET_DIR)/usr/share/hplip/data/models endef HPLIP_POST_INSTALL_TARGET_HOOKS += HPLIP_POST_INSTALL_TARGET_FIXUP $(eval $(autotools-package)) ================================================ FILE: package/htop/Config.in ================================================ config BR2_PACKAGE_HTOP bool "htop" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # dlopen() select BR2_PACKAGE_NCURSES help htop is an interactive text-mode process viewer for Linux. It aims to be a better top. https://htop.dev/ comment "htop needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/htop/htop.hash ================================================ # Locally calculated sha256 b52280ad05a535ec632fbcd47e8e2c40a9376a9ddbd7caa00b38b9d6bb87ced6 htop-3.1.1.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/htop/htop.mk ================================================ ################################################################################ # # htop # ################################################################################ HTOP_VERSION = 3.1.1 HTOP_SITE = $(call github,htop-dev,htop,$(HTOP_VERSION)) HTOP_DEPENDENCIES = ncurses HTOP_AUTORECONF = YES # Prevent htop build system from searching the host paths HTOP_CONF_ENV = HTOP_NCURSES_CONFIG_SCRIPT=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS) HTOP_LICENSE = GPL-2.0+ HTOP_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_HWLOC),y) HTOP_CONF_OPTS += --enable-hwloc HTOP_DEPENDENCIES += hwloc else HTOP_CONF_OPTS += --disable-hwloc endif ifeq ($(BR2_PACKAGE_LIBCAP),y) HTOP_CONF_OPTS += --enable-capabilities HTOP_DEPENDENCIES += libcap else HTOP_CONF_OPTS += --disable-capabilities endif ifeq ($(BR2_PACKAGE_LM_SENSORS),y) HTOP_CONF_OPTS += --with-sensors HTOP_DEPENDENCIES += lm-sensors else HTOP_CONF_OPTS += --without-sensors endif ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) HTOP_CONF_OPTS += --enable-unicode else HTOP_CONF_OPTS += --disable-unicode endif $(eval $(autotools-package)) ================================================ FILE: package/htpdate/Config.in ================================================ config BR2_PACKAGE_HTPDATE bool "htpdate" depends on BR2_USE_MMU # fork() help The HTTP Time Protocol (HTP) is used to synchronize a computer's time with web servers as reference time source. https://github.com/angeloc/htpdate ================================================ FILE: package/htpdate/S43htpdate ================================================ #!/bin/sh DAEMON="htpdate" PIDFILE="/var/run/$DAEMON.pid" HTPDATE_ARGS="-a -s -t https://google.com" test -r "/etc/default/$DAEMON" && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -x "/usr/bin/$DAEMON" \ -- -D -i "$PIDFILE" $HTPDATE_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/htpdate/htpdate.hash ================================================ # Locally calculated: sha256 d2cff522b8f53b00769dcca77d8025b19238ed35d702a4739dc05e387f718909 htpdate-1.2.6.tar.gz sha256 b1c8d41afde943cacedab52cbb44ef7ffb7026e738b9c891009e89559fe31c20 LICENSE ================================================ FILE: package/htpdate/htpdate.mk ================================================ ################################################################################ # # htpdate # ################################################################################ HTPDATE_VERSION = 1.2.6 HTPDATE_SITE = $(call github,angeloc,htpdate,v$(HTPDATE_VERSION)) HTPDATE_LICENSE = GPL-2.0+ HTPDATE_LICENSE_FILES = LICENSE ifeq ($(BR2_PACKAGE_OPENSSL),y) HTPDATE_BUILD_OPTS = ENABLE_HTTPS=1 HTPDATE_DEPENDENCIES += openssl host-pkgconf endif define HTPDATE_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(HTPDATE_BUILD_OPTS) endef define HTPDATE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef define HTPDATE_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/htpdate/S43htpdate \ $(TARGET_DIR)/etc/init.d/S43htpdate endef define HTPDATE_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/htpdate/htpdate.service \ $(TARGET_DIR)/usr/lib/systemd/system/htpdate.service endef $(eval $(generic-package)) ================================================ FILE: package/htpdate/htpdate.service ================================================ [Unit] Description=htpdate daemon After=network.target [Service] Type=forking PIDFile=/run/htpdate.pid Environment=HTPDATE_ARGS="-a -s -t https://www.google.com" EnvironmentFile=-/etc/default/htpdate ExecStart=/usr/bin/htpdate -D -i /run/htpdate.pid $HTPDATE_ARGS [Install] WantedBy=multi-user.target ================================================ FILE: package/httping/0001-fix-math-library-linking.patch ================================================ Move LDFLAGS+=-lm option to the end. The order of the math library directive '-lm' matters. Signed-off-by: Yuvaraj Patil --- diff -Nurp httping-2.3.4_orig/Makefile httping-2.3.4/Makefile --- httping-2.3.4_orig/Makefile 2014-07-23 16:16:36.495546288 +0530 +++ httping-2.3.4/Makefile 2014-07-23 16:18:42.547541002 +0530 @@ -37,7 +37,6 @@ DEBUG=yes WFLAGS=-Wall -W OFLAGS= CFLAGS+=$(WFLAGS) $(OFLAGS) -DVERSION=\"$(VERSION)\" -DLOCALEDIR=\"$(LOCALEDIR)\" -LDFLAGS+=-lm PACKAGE=$(TARGET)-$(VERSION) PREFIX?=/usr @@ -97,6 +96,8 @@ ifeq ($(ARM),yes) CC=arm-linux-gcc endif +LDFLAGS+=-lm + all: $(TARGET) $(TRANSLATIONS) $(TARGET): $(OBJS) ================================================ FILE: package/httping/0002-Makefile-allow-build-without-gettext.patch ================================================ From fe7d6c5a0e5dfe129f228498037393d23d6ae890 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Tue, 18 Jul 2017 19:09:03 +0300 Subject: [PATCH] Makefile: allow build without gettext The msgfmt command is part of the gettext package, and is used to generate binary translation files. When gettext is not installed, build fails. Translation files are not always needed on size constrained embedded targets. Add an option to disable translation files generation using the NO_GETTEXT variable. Signed-off-by: Baruch Siach --- Upstream status: https://github.com/flok99/httping/pull/36 Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile b/Makefile index 46127f4cdde1..160cc1794ec8 100644 --- a/Makefile +++ b/Makefile @@ -55,7 +55,9 @@ MKDIR=/bin/mkdir ARCHIVE=/bin/tar cf - COMPRESS=/bin/gzip -9 +ifneq ($(NO_GETTEXT),yes) TRANSLATIONS=nl.mo ru.mo +endif OBJS=gen.o http.o io.o error.o utils.o main.o tcp.o res.o socks5.o kalman.o cookies.o help.o colors.o @@ -118,10 +120,12 @@ install: $(TARGET) $(TRANSLATIONS) ifneq ($(DEBUG),yes) $(STRIP) $(DESTDIR)/$(BINDIR)/$(TARGET) endif +ifneq ($(NO_GETTEXT),yes) mkdir -p $(DESTDIR)/$(PREFIX)/share/locale/nl/LC_MESSAGES cp nl.mo $(DESTDIR)/$(PREFIX)/share/locale/nl/LC_MESSAGES/httping.mo mkdir -p $(DESTDIR)/$(PREFIX)/share/locale/ru/LC_MESSAGES cp ru.mo $(DESTDIR)/$(PREFIX)/share/locale/ru/LC_MESSAGES/httping.mo +endif makefile.inc: -- 2.13.2 ================================================ FILE: package/httping/Config.in ================================================ comment "httping needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR config BR2_PACKAGE_HTTPING bool "httping" depends on BR2_USE_WCHAR help Httping is like 'ping' but for http-requests. Give it an url, and it'll show you how long it takes to connect, send a request and retrieve the reply (only the headers). Be aware that the transmission across the network also takes time! So it measures the latency of the webserver + network. http://www.vanheusden.com/httping/ if BR2_PACKAGE_HTTPING config BR2_PACKAGE_HTTPING_TFO bool "TCP Fast Open (TFO) support" endif ================================================ FILE: package/httping/httping.hash ================================================ # Locally calculated sha256 3e895a0a6d7bd79de25a255a1376d4da88eb09c34efdd0476ab5a907e75bfaf8 httping-2.5.tgz sha256 c5db2e5b9a692fcdf2bd370f1533529063fbcf8947a8f5ee9d4b050a14e0566d license.txt ================================================ FILE: package/httping/httping.mk ================================================ ################################################################################ # # httping # ################################################################################ HTTPING_VERSION = 2.5 HTTPING_SOURCE = httping-$(HTTPING_VERSION).tgz HTTPING_SITE = http://www.vanheusden.com/httping HTTPING_LICENSE = GPL-2.0 HTTPING_LICENSE_FILES = license.txt HTTPING_LDFLAGS = $(TARGET_LDFLAGS) \ $(TARGET_NLS_LIBS) \ $(if $(BR2_PACKAGE_LIBICONV),-liconv) HTTPING_DEPENDENCIES = \ $(TARGET_NLS_DEPENDENCIES) \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) \ $(if $(BR2_PACKAGE_NCURSES_WCHAR),ncurses) \ $(if $(BR2_PACKAGE_OPENSSL),openssl) \ $(if $(BR2_PACKAGE_FFTW_DOUBLE),fftw-double) HTTPING_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS) \ FW=$(if $(BR2_PACKAGE_FFTW_DOUBLE),yes,no) \ NC=$(if $(BR2_PACKAGE_NCURSES_WCHAR),yes,no) \ SSL=$(if $(BR2_PACKAGE_OPENSSL),yes,no) \ TFO=$(if $(BR2_PACKAGE_HTTPING_TFO),yes,no) \ NO_GETTEXT=$(if $(BR2_SYSTEM_ENABLE_NLS),no,yes) define HTTPING_BUILD_CMDS $(HTTPING_MAKE_OPTS) LDFLAGS="$(HTTPING_LDFLAGS)" \ $(MAKE) DEBUG=no -C $(@D) endef define HTTPING_INSTALL_TARGET_CMDS $(HTTPING_MAKE_OPTS) $(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/hwdata/Config.in ================================================ config BR2_PACKAGE_HWDATA bool "hwdata" help Various hardware identification and configuration data - Individual Address Block (IAB) and Organizationally Unique Identifier (OUI) databases, from IEEE Registration Authority - PCI ID database - PNP ID database (from Microsoft) - USB ID database https://github.com/vcrhonek/hwdata if BR2_PACKAGE_HWDATA config BR2_PACKAGE_HWDATA_IAB_OUI_TXT bool "install iab.txt and oui.txt" help Install iab.txt and oui.txt config BR2_PACKAGE_HWDATA_PCI_IDS bool "install pci.ids" default y help Install pci.ids config BR2_PACKAGE_HWDATA_PNP_IDS bool "install pnp.ids" help Install pnp.ids config BR2_PACKAGE_HWDATA_USB_IDS bool "install usb.ids" default y help Install usb.ids endif ================================================ FILE: package/hwdata/hwdata.hash ================================================ # Locally calculated sha256 fafcc97421ba766e08a2714ccc3eebb0daabc99e67d53c2d682721dd01ccf7a7 hwdata-0.345.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 21d0406f93e884a050426ebc21931839a45d56bfcbcbfdda7686d583f36f107f LICENSE ================================================ FILE: package/hwdata/hwdata.mk ================================================ ################################################################################ # # hwdata # ################################################################################ HWDATA_VERSION = 0.345 HWDATA_SITE = $(call github,vcrhonek,hwdata,v$(HWDATA_VERSION)) HWDATA_LICENSE = GPL-2.0+, BSD-3-Clause, XFree86 1.0 HWDATA_LICENSE_FILES = COPYING LICENSE HWDATA_FILES = \ $(if $(BR2_PACKAGE_HWDATA_IAB_OUI_TXT),iab.txt oui.txt) \ $(if $(BR2_PACKAGE_HWDATA_PCI_IDS),pci.ids) \ $(if $(BR2_PACKAGE_HWDATA_PNP_IDS),pnp.ids) \ $(if $(BR2_PACKAGE_HWDATA_USB_IDS),usb.ids) ifneq ($(strip $(HWDATA_FILES)),) define HWDATA_INSTALL_TARGET_CMDS $(INSTALL) -d -m 755 $(TARGET_DIR)/usr/share/hwdata $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/share/hwdata \ $(addprefix $(@D)/,$(HWDATA_FILES)) endef endif $(eval $(generic-package)) ================================================ FILE: package/hwloc/Config.in ================================================ config BR2_PACKAGE_HWLOC bool "hwloc" depends on BR2_TOOLCHAIN_HAS_THREADS help Portable Hardware Locality Provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. http://www.open-mpi.org/projects/hwloc/ comment "hwloc needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/hwloc/hwloc.hash ================================================ # From https://www.open-mpi.org/software/hwloc/v2.4/ sha256 392421e69f26120c8ab95d151fe989f2b4b69dab3c7735741c4e0a6d7de5de63 hwloc-2.4.1.tar.bz2 # Locally computed sha256 d79a936a42f3c6cb7c8375a023d43f4435f4664d3a5a2ea6b4623cff83c7fc06 COPYING ================================================ FILE: package/hwloc/hwloc.mk ================================================ ################################################################################ # # hwloc # ################################################################################ HWLOC_VERSION_MAJOR = 2.4 HWLOC_VERSION = $(HWLOC_VERSION_MAJOR).1 HWLOC_SOURCE = hwloc-$(HWLOC_VERSION).tar.bz2 HWLOC_SITE = https://download.open-mpi.org/release/hwloc/v$(HWLOC_VERSION_MAJOR) HWLOC_LICENSE = BSD-3-Clause HWLOC_LICENSE_FILES = COPYING HWLOC_DEPENDENCIES = host-pkgconf HWLOC_INSTALL_STAGING = YES HWLOC_SELINUX_MODULES = hwloc # ac_cv_prog_cc_c99 is required for BR2_USE_WCHAR=n because the C99 test # provided by autoconf relies on wchar_t. HWLOC_CONF_ENV = ac_cv_prog_cc_c99=-std=gnu99 HWLOC_CONF_OPTS = \ --disable-opencl \ --disable-cuda \ --disable-nvml \ --disable-gl \ --disable-cairo \ --disable-doxygen ifeq ($(BR2_PACKAGE_HAS_UDEV),y) HWLOC_CONF_OPTS += --enable-libudev HWLOC_DEPENDENCIES += udev else HWLOC_CONF_OPTS += --disable-libudev endif ifeq ($(BR2_PACKAGE_LIBPCIACCESS),y) HWLOC_CONF_OPTS += --enable-pci HWLOC_DEPENDENCIES += libpciaccess else HWLOC_CONF_OPTS += --disable-pci endif ifeq ($(BR2_PACKAGE_LIBXML2),y) HWLOC_CONF_OPTS += --enable-libxml2 HWLOC_DEPENDENCIES += libxml2 else HWLOC_CONF_OPTS += --disable-libxml2 endif ifeq ($(BR2_PACKAGE_NCURSES),y) HWLOC_DEPENDENCIES += ncurses endif ifeq ($(BR2_PACKAGE_NUMACTL),y) HWLOC_DEPENDENCIES += numactl endif $(eval $(autotools-package)) ================================================ FILE: package/i2c-tools/Config.in ================================================ config BR2_PACKAGE_I2C_TOOLS bool "i2c-tools" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Heterogeneous set of I2C tools for Linux This package contains a heterogeneous set of I2C tools for Linux: a bus probing tool, a chip dumper, register-level access helpers, EEPROM decoding scripts, and more. https://i2c.wiki.kernel.org/index.php/I2C_Tools ================================================ FILE: package/i2c-tools/i2c-tools.hash ================================================ # From https://www.kernel.org/pub/software/utils/i2c-tools/sha256sums.asc sha256 1f899e43603184fac32f34d72498fc737952dbc9c97a8dd9467fadfdf4600cf9 i2c-tools-4.3.tar.xz # License files sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPL sha256 2293b6e9076984d02184ff620baac557143e16cfa47d88f0a791d05a1271742c README ================================================ FILE: package/i2c-tools/i2c-tools.mk ================================================ ################################################################################ # # i2c-tools # ################################################################################ I2C_TOOLS_VERSION = 4.3 I2C_TOOLS_SOURCE = i2c-tools-$(I2C_TOOLS_VERSION).tar.xz I2C_TOOLS_SITE = https://www.kernel.org/pub/software/utils/i2c-tools I2C_TOOLS_LICENSE = GPL-2.0+, GPL-2.0 (py-smbus), LGPL-2.1+ (libi2c) I2C_TOOLS_LICENSE_FILES = COPYING COPYING.LGPL README I2C_TOOLS_CPE_ID_VENDOR = i2c-tools_project I2C_TOOLS_MAKE_OPTS = EXTRA=eeprog I2C_TOOLS_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_PYTHON),y) I2C_TOOLS_DEPENDENCIES += python endif ifeq ($(BR2_PACKAGE_PYTHON3),y) I2C_TOOLS_DEPENDENCIES += python3 endif ifeq ($(BR2_STATIC_LIBS),y) I2C_TOOLS_MAKE_OPTS += BUILD_DYNAMIC_LIB=0 USE_STATIC_LIB=1 endif ifeq ($(BR2_SHARED_LIBS),y) I2C_TOOLS_MAKE_OPTS += BUILD_STATIC_LIB=0 endif # Build/install steps mirror the distutil python package type in the python package # infrastructure ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y) # BASE_ENV taken from PKG_PYTHON_DISTUTILS_ENV in package/pkg-python.mk I2C_TOOLS_PYTHON_BASE_ENV = \ $(PKG_PYTHON_DISTUTILS_ENV) \ CFLAGS="$(TARGET_CFLAGS) -I../include" define I2C_TOOLS_BUILD_PYSMBUS (cd $(@D)/py-smbus; \ $(I2C_TOOLS_PYTHON_BASE_ENV) \ $(HOST_DIR)/bin/python setup.py build \ $(PKG_PYTHON_DISTUTILS_BUILD_OPTS)) endef define I2C_TOOLS_INSTALL_PYSMBUS (cd $(@D)/py-smbus; \ $(I2C_TOOLS_PYTHON_BASE_ENV) \ $(HOST_DIR)/bin/python setup.py install \ $(PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS)) endef endif # BR2_PACKAGE_PYTHON define I2C_TOOLS_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) $(I2C_TOOLS_MAKE_OPTS) -C $(@D) $(I2C_TOOLS_BUILD_PYSMBUS) endef define I2C_TOOLS_INSTALL_TARGET_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) $(I2C_TOOLS_MAKE_OPTS) \ DESTDIR="$(TARGET_DIR)" PREFIX=/usr -C $(@D) install $(I2C_TOOLS_INSTALL_PYSMBUS) endef define I2C_TOOLS_INSTALL_STAGING_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) $(I2C_TOOLS_MAKE_OPTS) \ DESTDIR="$(STAGING_DIR)" PREFIX=/usr -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/i2pd/Config.in ================================================ config BR2_PACKAGE_I2PD bool "i2pd" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_ATOMIC # pthread_condattr_setclock depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # boost depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_DATE_TIME select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help i2pd (I2P Daemon) is a full-featured C++ implementation of I2P client. I2P (Invisible Internet Protocol) is a universal anonymous network layer. All communications over I2P are anonymous and end-to-end encrypted, participants don't reveal their real IP addresses. http://i2pd.website comment "i2pd needs a toolchain w/ C++, NPTL, wchar" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_USE_WCHAR comment "i2pd needs exception_ptr" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/i2pd/S99i2pd ================================================ #!/bin/sh NAME=i2pd PIDFILE=/var/run/$NAME.pid DAEMON=/usr/bin/$NAME DAEMON_ARGS="--conf=/etc/i2pd/i2pd.conf --tunconf=/etc/i2pd/tunnels.conf --pidfile=/var/run/i2pd.pid --logfile=/var/log/i2pd.log --daemon --service" 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 $? ================================================ FILE: package/i2pd/i2pd.hash ================================================ # From https://github.com/PurpleI2P/i2pd/releases/download/2.39.0/SHA512SUMS sha512 6b38e6e2e763e94ffe9d11eb2f9a0e9554560bb4fec95891240adf5bc0a9639f879dac4ff3712a9f8e00895b7bbeabc854887e61fe9f9755c33f96899e20aa76 i2pd-2.39.0.tar.gz # Locally computed: sha256 9c87aff490b272254d716475e3c4973f5f64af1d18f9f6962c1e61e252e1ad9a LICENSE ================================================ FILE: package/i2pd/i2pd.mk ================================================ ################################################################################ # # i2pd # ################################################################################ I2PD_VERSION = 2.39.0 I2PD_SITE = $(call github,PurpleI2P,i2pd,$(I2PD_VERSION)) I2PD_LICENSE = BSD-3-Clause I2PD_LICENSE_FILES = LICENSE I2PD_SUBDIR = build I2PD_DEPENDENCIES = \ boost \ openssl \ zlib I2PD_CONF_OPTS += -DWITH_GUI=OFF ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) I2PD_CONF_OPTS += \ -DHAVE_CXX_ATOMICS_WITHOUT_LIB=OFF \ -DHAVE_CXX_ATOMICS64_WITHOUT_LIB=OFF endif ifeq ($(BR2_STATIC_LIBS),y) I2PD_CONF_OPTS += -DWITH_STATIC=ON else I2PD_CONF_OPTS += -DWITH_STATIC=OFF endif ifeq ($(BR2_PACKAGE_LIBMINIUPNPC),y) I2PD_DEPENDENCIES += libminiupnpc I2PD_CONF_OPTS += -DWITH_UPNP=ON else I2PD_CONF_OPTS += -DWITH_UPNP=OFF endif define I2PD_INSTALL_CONFIGURATION_FILES $(INSTALL) -D -m 644 $(@D)/contrib/i2pd.conf \ $(TARGET_DIR)/etc/i2pd/i2pd.conf $(INSTALL) -D -m 644 $(@D)/contrib/tunnels.conf \ $(TARGET_DIR)/etc/i2pd/tunnels.conf mkdir -p $(TARGET_DIR)/var/lib/i2pd cp -a $(@D)/contrib/certificates $(TARGET_DIR)/var/lib/i2pd endef define I2PD_USERS i2pd -1 i2pd -1 * /var/lib/i2pd - - I2P Daemon endef define I2PD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/i2pd/S99i2pd \ $(TARGET_DIR)/etc/init.d/S99i2pd endef define I2PD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/i2pd/i2pd.service \ $(TARGET_DIR)/usr/lib/systemd/system/i2pd.service endef $(eval $(cmake-package)) ================================================ FILE: package/i2pd/i2pd.service ================================================ [Unit] Description=I2P Router written in C++ After=network.target [Service] User=i2pd Group=i2pd RuntimeDirectory=i2pd RuntimeDirectoryMode=0700 LogsDirectory=i2pd LogsDirectoryMode=0700 Type=simple ExecStart=/usr/bin/i2pd --conf=/etc/i2pd/i2pd.conf --tunconf=/etc/i2pd/tunnels.conf --pidfile=/run/i2pd/i2pd.pid --logfile=/var/log/i2pd/i2pd.log --daemon --service ExecReload=/bin/kill -HUP $MAINPID PIDFile=/run/i2pd/i2pd.pid ### Uncomment, if auto restart needed #Restart=on-failure ### Use SIGINT for graceful stop daemon. # i2pd stops accepting new tunnels and waits ~10 min while old ones do not die. KillSignal=SIGINT TimeoutStopSec=10m # If you have problems with hanging i2pd, you can try enable this #LimitNOFILE=4096 PrivateDevices=yes [Install] WantedBy=multi-user.target ================================================ FILE: package/i7z/0001-fix-build-with-gcc-10.patch ================================================ From 6e4e407a374512b5bcb5a7c184258653e472ef9f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 19 Jan 2021 07:47:58 +0100 Subject: [PATCH] fix build with gcc 10 Fix the following build failure with gcc 10 (which defaults to -fno-common): /home/buildroot/autobuild/instance-2/output-1/host/bin/x86_64-linux-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -fno-schedule-insns2 -fno-schedule-insns -fno-inline-small-functions -fno-caller-saves -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DBUILD_MAIN -Wimplicit-function-declaration -Dx64_BIT -o i7z i7z.o helper_functions.o i7z_Single_Socket.o i7z_Dual_Socket.o -lncurses -lpthread -lrt -lm /home/buildroot/autobuild/instance-2/output-1/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-gnu/10.2.0/../../../../x86_64-buildroot-linux-gnu/bin/ld: i7z_Dual_Socket.o:(.bss+0x0): multiple definition of `global_ts'; i7z_Single_Socket.o:(.bss+0x0): first defined here Fixes: - http://autobuild.buildroot.org/results/1a433611ba8676cf1ca276fccaf3633971bd562e Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/ajaiantilal/i7z/pull/27] --- i7z.c | 1 + i7z_Dual_Socket.c | 2 +- i7z_Single_Socket.c | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/i7z.c b/i7z.c index 61e2757..910a608 100644 --- a/i7z.c +++ b/i7z.c @@ -34,6 +34,7 @@ int Dual_Socket(); int socket_0_num=0, socket_1_num=1; bool use_ncurses = true; +struct timespec global_ts; /////////////////////LOGGING TO FILE//////////////////////////////////////// FILE *fp_log_file_freq; diff --git a/i7z_Dual_Socket.c b/i7z_Dual_Socket.c index 1388339..ceafdce 100644 --- a/i7z_Dual_Socket.c +++ b/i7z_Dual_Socket.c @@ -37,7 +37,7 @@ float Read_Voltage_CPU(int cpu_num); extern struct program_options prog_options; FILE *fp_log_file; -struct timespec global_ts; +extern struct timespec global_ts; extern FILE *fp_log_file_freq_1, *fp_log_file_freq_2; extern char* CPU_FREQUENCY_LOGGING_FILE_single; diff --git a/i7z_Single_Socket.c b/i7z_Single_Socket.c index 16e98c1..b7266e6 100644 --- a/i7z_Single_Socket.c +++ b/i7z_Single_Socket.c @@ -35,7 +35,7 @@ int Read_Thermal_Status_CPU(int cpu_num); extern struct program_options prog_options; extern FILE *fp_log_file_freq; -struct timespec global_ts; +extern struct timespec global_ts; extern char* CPU_FREQUENCY_LOGGING_FILE_single; extern char* CPU_FREQUENCY_LOGGING_FILE_dual; -- 2.29.2 ================================================ FILE: package/i7z/Config.in ================================================ 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 ================================================ FILE: package/i7z/i7z.hash ================================================ # Locally computed: sha256 e127bddf850e7febd39cef2d2b13dca5fe19cc2a1bb1099d72b683be5d8bd1c0 i7z-5023138d7c35c4667c938b853e5ea89737334e92.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/i7z/i7z.mk ================================================ ################################################################################ # # i7z # ################################################################################ I7Z_VERSION = 5023138d7c35c4667c938b853e5ea89737334e92 I7Z_SITE = $(call github,ajaiantilal,i7z,$(I7Z_VERSION)) I7Z_LICENSE = GPL-2.0 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)) ================================================ FILE: package/ibm-sw-tpm2/0001-Use-LONG_BIT-to-define-RADIX_BITS.patch ================================================ From 7ea7fe229ea6195938d9eadbe783cb1aa74380ba Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 26 Apr 2020 15:33:39 +0200 Subject: [PATCH] Use LONG_BIT to define RADIX_BITS This allows to avoid having to support each CPU architecture individually. Also, add the necessary defines in the makefile to expose LONG_BIT. Adding those defines end up requiring using as we're now using >= POSIX.1-2001 definitions of fd_set and friends. Signed-off-by: Thomas Petazzoni Signed-off-by: Vincent Fazio --- src/LibSupport.h | 21 +++------------------ src/TcpServerPosix.c | 1 + src/makefile | 2 ++ 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/src/LibSupport.h b/src/LibSupport.h index 5055560..48b1e16 100644 --- a/src/LibSupport.h +++ b/src/LibSupport.h @@ -64,24 +64,9 @@ #ifndef _LIB_SUPPORT_H_ #define _LIB_SUPPORT_H_ -/* kgold added power and s390 */ -#ifndef RADIX_BITS -# if defined(__x86_64__) || defined(__x86_64) \ - || defined(__amd64__) || defined(__amd64) \ - || defined(_WIN64) || defined(_M_X64) \ - || defined(_M_ARM64) || defined(__aarch64__) \ - || defined(__powerpc64__) || defined(__PPC64__) || defined(__ppc64__) \ - || defined(__s390x__) -# define RADIX_BITS 64 -# elif defined(__i386__) || defined(__i386) || defined(i386) \ - || defined(_WIN32) || defined(_M_IX86) \ - || defined(_M_ARM) || defined(__arm__) || defined(__thumb__) \ - || defined(__powerpc__) || defined(__PPC__) -# define RADIX_BITS 32 -# else -# error Unable to determine RADIX_BITS from compiler environment -# endif -#endif // RADIX_BITS +#include + +#define RADIX_BITS LONG_BIT // These macros use the selected libraries to the proper include files. #define LIB_QUOTE(_STRING_) #_STRING_ diff --git a/src/TcpServerPosix.c b/src/TcpServerPosix.c index cad0402..6293cdd 100644 --- a/src/TcpServerPosix.c +++ b/src/TcpServerPosix.c @@ -66,6 +66,7 @@ #include #include +#include #include #include #include diff --git a/src/makefile b/src/makefile index f124e78..6ee128e 100644 --- a/src/makefile +++ b/src/makefile @@ -46,6 +46,8 @@ CCFLAGS = -Wall \ -c -ggdb -O0 \ -DTPM_POSIX \ -D_POSIX_ \ + -D_DEFAULT_SOURCE \ + -D_XOPEN_SOURCE=500 \ -DTPM_NUVOTON # add this line for big endian platforms -- 2.17.1 ================================================ FILE: package/ibm-sw-tpm2/Config.in ================================================ config BR2_PACKAGE_IBM_SW_TPM2 bool "ibm-sw-tpm2" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # ibm-sw-tpm2 select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL help This project is an implementation of the TCG TPM 2.0 specification. It is based on the TPM specification Parts 3 and 4 source code donated by Microsoft, with additional files to complete the implementation. https://sourceforge.net/projects/ibmswtpm2/ comment "ibm-sw-tpm2 needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/ibm-sw-tpm2/ibm-sw-tpm2.hash ================================================ # from https://sourceforge.net/projects/ibmswtpm2/files sha1 a2a5335024a2edc1739f08b99e716fa355be627d ibmtpm1563.tar.gz md5 13013612b3a13dc935fefe1a5684179c ibmtpm1563.tar.gz # Locally computed: sha256 55145928ad2b24f34be6a0eacf9fb492e10e0ea919b8428c721fa970e85d6147 ibmtpm1661.tar.gz sha256 dd2d31b560011ea673e197251e710e52669d911367d83cd3cfd018f8ed58bde9 LICENSE ================================================ FILE: package/ibm-sw-tpm2/ibm-sw-tpm2.mk ================================================ ################################################################################ # # ibm-sw-tpm2 # ################################################################################ IBM_SW_TPM2_VERSION = 1661 IBM_SW_TPM2_SOURCE = ibmtpm$(IBM_SW_TPM2_VERSION).tar.gz IBM_SW_TPM2_SITE = https://sourceforge.net/projects/ibmswtpm2/files IBM_SW_TPM2_LICENSE = BSD-3-Clause IBM_SW_TPM2_LICENSE_FILES = LICENSE IBM_SW_TPM2_DEPENDENCIES = openssl define IBM_SW_TPM2_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src $(TARGET_CONFIGURE_OPTS) endef define IBM_SW_TPM2_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src $(TARGET_CONFIGURE_OPTS) install \ DESTDIR=$(TARGET_DIR) endef $(eval $(generic-package)) ================================================ FILE: package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch ================================================ From d667b13a87cf3207599a19eb981a893a1d7a67ee Mon Sep 17 00:00:00 2001 From: Brendan Heading Date: Mon, 14 Sep 2015 23:25:52 +0100 Subject: [PATCH 1/1] ibrcommon/data/File.cpp: support POSIX basename call Firstly, and somewhat strangely, musl chooses not to provide a basename(3) prototype within whenever __cplusplus is defined. This can be solved by including the header defined by POSIX 1003.1 whenever __GLIBC__ is not defined. However, this leads to a second problem. POSIX defines the function as char* basename(char*) and this is the only version supported by musl. However, the std::string.cstr() method returns a const char*. POSIX says that the string parameter can be modified. However the GNU implementation never modifies it. glibc therefore supports an extension when compiling under C++ by also supplying const char* basename(const char*). This extension is not present on musl which is the cause of the failure. The solution is reasonably straightforward; test if __GLIBC__ is defined before calling basename. If not, use the fallback already provided for other platforms whereby basename() is called on a temporary copy. Signed-off-by: Brendan Heading Upstream-status: pending --- ibrcommon/data/File.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ibrcommon/data/File.cpp b/ibrcommon/data/File.cpp index 31af4ae..68e9b4f 100644 --- a/ibrcommon/data/File.cpp +++ b/ibrcommon/data/File.cpp @@ -35,7 +35,7 @@ #include #include -#if !defined(HAVE_FEATURES_H) || defined(ANDROID) +#if !defined(HAVE_FEATURES_H) || !defined(__GLIBC__) || defined(ANDROID) #include #endif @@ -225,7 +225,7 @@ namespace ibrcommon std::string File::getBasename() const { -#if !defined(ANDROID) && defined(HAVE_FEATURES_H) +#if !defined(ANDROID) && defined(HAVE_FEATURES_H) && defined(__GLIBC__) return std::string(basename(_path.c_str())); #else char path[_path.length()+1]; -- 2.4.3 ================================================ FILE: package/ibrcommon/0002-ibrcommon-added-openssl-1.1-compatibility-264.patch ================================================ From a801d10a081e3130e24042256a43190c9eb6c112 Mon Sep 17 00:00:00 2001 From: Eneas Queiroz <35331380+cotequeiroz@users.noreply.github.com> Date: Wed, 23 May 2018 03:09:02 -0300 Subject: [PATCH] ibrcommon: added openssl 1.1 compatibility (#264) This patch adds compatibility to openssl 1.1.0. Backported from master branch: https://github.com/ibrdtn/ibrdtn/commit/a801d10a081e3130e24042256a43190c9eb6c112 Signed-off-by: Eneas U de Queiroz Signed-off-by: Bernd Kuhls --- ibrcommon/ibrcommon/ssl/HMacStream.cpp | 11 +++--- ibrcommon/ibrcommon/ssl/HMacStream.h | 2 +- ibrcommon/ibrcommon/ssl/RSASHA256Stream.cpp | 28 +++++++------ ibrcommon/ibrcommon/ssl/RSASHA256Stream.h | 2 +- ibrcommon/ibrcommon/ssl/iostreamBIO.cpp | 44 ++++++++++++++++----- ibrcommon/ibrcommon/ssl/openssl_compat.h | 38 ++++++++++++++++++ 6 files changed, 95 insertions(+), 30 deletions(-) create mode 100644 ibrcommon/ibrcommon/ssl/openssl_compat.h diff --git a/ibrcommon/ssl/HMacStream.cpp b/ibrcommon/ssl/HMacStream.cpp index e5d317e3..66d8ce42 100644 --- a/ibrcommon/ssl/HMacStream.cpp +++ b/ibrcommon/ssl/HMacStream.cpp @@ -20,29 +20,30 @@ */ #include "ibrcommon/ssl/HMacStream.h" +#include "openssl_compat.h" namespace ibrcommon { HMacStream::HMacStream(const unsigned char * const key, const int key_size) : HashStream(EVP_MAX_MD_SIZE, BUFF_SIZE), key_(key), key_size_(key_size) { - HMAC_CTX_init(&ctx_); - HMAC_Init_ex(&ctx_, key_, key_size_, EVP_sha1(), NULL); + ctx_ = HMAC_CTX_new(); + HMAC_Init_ex(ctx_, key_, key_size_, EVP_sha1(), NULL); } HMacStream::~HMacStream() { - HMAC_CTX_cleanup(&ctx_); + HMAC_CTX_free(ctx_); } void HMacStream::update(char *buf, const size_t size) { // hashing - HMAC_Update(&ctx_, (unsigned char*)buf, size); + HMAC_Update(ctx_, (unsigned char*)buf, size); } void HMacStream::finalize(char * hash, unsigned int &size) { - HMAC_Final(&ctx_, (unsigned char*)hash, &size); + HMAC_Final(ctx_, (unsigned char*)hash, &size); } } diff --git a/ibrcommon/ssl/HMacStream.h b/ibrcommon/ssl/HMacStream.h index 7dcea168..d04bceb8 100644 --- a/ibrcommon/ssl/HMacStream.h +++ b/ibrcommon/ssl/HMacStream.h @@ -44,7 +44,7 @@ namespace ibrcommon const unsigned char * const key_; const int key_size_; - HMAC_CTX ctx_; + HMAC_CTX* ctx_; }; } diff --git a/ibrcommon/ssl/RSASHA256Stream.cpp b/ibrcommon/ssl/RSASHA256Stream.cpp index d94430ed..d25c5d2f 100644 --- a/ibrcommon/ssl/RSASHA256Stream.cpp +++ b/ibrcommon/ssl/RSASHA256Stream.cpp @@ -21,6 +21,7 @@ #include "ibrcommon/ssl/RSASHA256Stream.h" #include "ibrcommon/Logger.h" +#include "openssl_compat.h" #include namespace ibrcommon @@ -30,11 +31,11 @@ namespace ibrcommon { // Initialize get pointer. This should be zero so that underflow is called upon first read. setp(&out_buf_[0], &out_buf_[BUFF_SIZE - 1]); - EVP_MD_CTX_init(&_ctx); + _ctx = EVP_MD_CTX_new(); if (!_verify) { - if (!EVP_SignInit_ex(&_ctx, EVP_sha256(), NULL)) + if (!EVP_SignInit_ex(_ctx, EVP_sha256(), NULL)) { IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to initialize the signature function" << IBRCOMMON_LOGGER_ENDL; ERR_print_errors_fp(stderr); @@ -42,7 +43,7 @@ namespace ibrcommon } else { - if (!EVP_VerifyInit_ex(&_ctx, EVP_sha256(), NULL)) + if (!EVP_VerifyInit_ex(_ctx, EVP_sha256(), NULL)) { IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to initialize the verification function" << IBRCOMMON_LOGGER_ENDL; ERR_print_errors_fp(stderr); @@ -52,18 +53,19 @@ namespace ibrcommon RSASHA256Stream::~RSASHA256Stream() { - EVP_MD_CTX_cleanup(&_ctx); + EVP_MD_CTX_free(_ctx); } void RSASHA256Stream::reset() { - EVP_MD_CTX_cleanup(&_ctx); - - EVP_MD_CTX_init(&_ctx); +#if OPENSSL_VERSION_NUMBER < 0x10100000L + EVP_MD_CTX_cleanup(_ctx); +#endif + EVP_MD_CTX_init(_ctx); if (!_verify) { - if (!EVP_SignInit_ex(&_ctx, EVP_sha256(), NULL)) + if (!EVP_SignInit_ex(_ctx, EVP_sha256(), NULL)) { IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to initialize the signature function" << IBRCOMMON_LOGGER_ENDL; ERR_print_errors_fp(stderr); @@ -71,7 +73,7 @@ namespace ibrcommon } else { - if (!EVP_VerifyInit_ex(&_ctx, EVP_sha256(), NULL)) + if (!EVP_VerifyInit_ex(_ctx, EVP_sha256(), NULL)) { IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to initialize the verfication function" << IBRCOMMON_LOGGER_ENDL; ERR_print_errors_fp(stderr); @@ -91,7 +93,7 @@ namespace ibrcommon std::vector sign(EVP_PKEY_size(_pkey)); unsigned int size = EVP_PKEY_size(_pkey); - _return_code = EVP_SignFinal(&_ctx, &sign[0], &size, _pkey); + _return_code = EVP_SignFinal(_ctx, &sign[0], &size, _pkey); _sign = std::string((const char*)&sign[0], size); @@ -107,7 +109,7 @@ namespace ibrcommon if (!_sign_valid) { sync(); - _return_code = EVP_VerifyFinal(&_ctx, reinterpret_cast(their_sign.c_str()), static_cast(their_sign.size()), _pkey); + _return_code = EVP_VerifyFinal(_ctx, reinterpret_cast(their_sign.c_str()), static_cast(their_sign.size()), _pkey); _sign_valid = true; } return _return_code; @@ -145,7 +147,7 @@ namespace ibrcommon if (!_verify) // hashing { - if (!EVP_SignUpdate(&_ctx, &out_buf_[0], iend - ibegin)) + if (!EVP_SignUpdate(_ctx, &out_buf_[0], iend - ibegin)) { IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to feed data into the signature function" << IBRCOMMON_LOGGER_ENDL; ERR_print_errors_fp(stderr); @@ -153,7 +155,7 @@ namespace ibrcommon } else { - if (!EVP_VerifyUpdate(&_ctx, &out_buf_[0], iend - ibegin)) + if (!EVP_VerifyUpdate(_ctx, &out_buf_[0], iend - ibegin)) { IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to feed data into the verification function" << IBRCOMMON_LOGGER_ENDL; ERR_print_errors_fp(stderr); diff --git a/ibrcommon/ssl/RSASHA256Stream.h b/ibrcommon/ssl/RSASHA256Stream.h index 344f8e10..6f3a1168 100644 --- a/ibrcommon/ssl/RSASHA256Stream.h +++ b/ibrcommon/ssl/RSASHA256Stream.h @@ -106,7 +106,7 @@ namespace ibrcommon /** the context in which the streamed data will be feed into for calculation of the hash/signature */ - EVP_MD_CTX _ctx; + EVP_MD_CTX * _ctx; /** tells if the context needs to be finalized to get a valid signature or verification */ diff --git a/ibrcommon/ssl/iostreamBIO.cpp b/ibrcommon/ssl/iostreamBIO.cpp index 18c1b55c..ea6c63eb 100644 --- a/ibrcommon/ssl/iostreamBIO.cpp +++ b/ibrcommon/ssl/iostreamBIO.cpp @@ -23,6 +23,7 @@ #include "ibrcommon/Logger.h" +#include "openssl_compat.h" #include namespace ibrcommon @@ -42,7 +43,20 @@ static int create(BIO *bio); //static int destroy(BIO *bio); //static long (*callback_ctrl)(BIO *, int, bio_info_cb *); - +#if OPENSSL_VERSION_NUMBER >= 0x10100000L +BIO_METHOD * BIO_iostream_method() +{ + static BIO_METHOD *iostream_method = NULL; + if (iostream_method) { + iostream_method = BIO_meth_new(iostreamBIO::type, iostreamBIO::name); + BIO_meth_set_write(iostream_method, bwrite); + BIO_meth_set_read(iostream_method, bread); + BIO_meth_set_ctrl(iostream_method, ctrl); + BIO_meth_set_create(iostream_method, create); + } + return iostream_method; +} +#else static BIO_METHOD iostream_method = { iostreamBIO::type, @@ -56,12 +70,17 @@ static BIO_METHOD iostream_method = NULL,//destroy, NULL//callback_ctrl }; +BIO_METHOD * BIO_iostream_method() +{ + return &iostream_method; +} +#endif iostreamBIO::iostreamBIO(iostream *stream) : _stream(stream) { /* create BIO */ - _bio = BIO_new(&iostream_method); + _bio = BIO_new(BIO_iostream_method()); if(!_bio){ /* creation failed, throw exception */ char err_buf[ERR_BUF_SIZE]; @@ -72,7 +91,7 @@ iostreamBIO::iostreamBIO(iostream *stream) } /* save the iostream in the bio object */ - _bio->ptr = stream; + BIO_set_data(_bio, (void *) stream); } BIO * iostreamBIO::getBIO(){ @@ -81,10 +100,10 @@ BIO * iostreamBIO::getBIO(){ static int create(BIO *bio) { - bio->ptr = NULL; - /* (from openssl memory bio) */ - bio->shutdown=1; - bio->init=1; + BIO_set_data(bio, NULL); + BIO_set_shutdown(bio, 1); + BIO_set_init(bio, 1); +#if OPENSSL_VERSION_NUMBER < 0x10100000L /* from bss_mem.c (openssl): * bio->num is used to hold the value to return on 'empty', if it is * 0, should_retry is not set @@ -93,6 +112,7 @@ static int create(BIO *bio) * it is set to 0 since the underlying stream is blocking */ bio->num= 0; +#endif return 1; } @@ -102,7 +122,7 @@ static int create(BIO *bio) static long ctrl(BIO *bio, int cmd, long num, void *) { long ret; - iostream *stream = reinterpret_cast(bio->ptr); + iostream *stream = reinterpret_cast(BIO_get_data(bio)); IBRCOMMON_LOGGER_DEBUG_TAG("iostreamBIO", 90) << "ctrl called, cmd: " << cmd << ", num: " << num << "." << IBRCOMMON_LOGGER_ENDL; @@ -147,8 +167,12 @@ static long ctrl(BIO *bio, int cmd, long num, void *) static int bread(BIO *bio, char *buf, int len) { - iostream *stream = reinterpret_cast(bio->ptr); + iostream *stream = reinterpret_cast(BIO_get_data(bio)); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + int num_bytes = 0; +#else int num_bytes = bio->num; +#endif try{ /* make sure to read at least 1 byte and then read as much as we can */ @@ -170,7 +194,7 @@ static int bwrite(BIO *bio, const char *buf, int len) if(len == 0){ return 0; } - iostream *stream = reinterpret_cast(bio->ptr); + iostream *stream = reinterpret_cast(BIO_get_data(bio)); /* write the data */ try{ diff --git a/ibrcommon/ssl/openssl_compat.h b/ibrcommon/ssl/openssl_compat.h new file mode 100644 index 00000000..e491677f --- /dev/null +++ b/ibrcommon/ssl/openssl_compat.h @@ -0,0 +1,38 @@ +#ifndef OPENSSL_COMPAT_H +#define OPENSSL_COMPAT_H + +#include +#if OPENSSL_VERSION_NUMBER < 0x10100000L + +#include +#include + +static inline EVP_MD_CTX * EVP_MD_CTX_new() +{ + EVP_MD_CTX *ctx; + + ctx = (EVP_MD_CTX *) OPENSSL_malloc(sizeof(EVP_MD_CTX)); + EVP_MD_CTX_init(ctx); + return ctx; +} +#define EVP_MD_CTX_free(c) if (c != NULL) OPENSSL_free(c) + +static inline HMAC_CTX * HMAC_CTX_new() +{ + HMAC_CTX *ctx; + + ctx = (HMAC_CTX *) OPENSSL_malloc(sizeof(HMAC_CTX)); + HMAC_CTX_init(ctx); + return ctx; +} +#define HMAC_CTX_free(c) if (c != NULL) OPENSSL_free(c) + +#define BIO_get_data(b) b->ptr +#define BIO_set_data(b, v) b->ptr=v +#define BIO_set_shutdown(b, v) b->shutdown=v +#define BIO_set_init(b, v) b->init=v + +#endif /* OPENSSL_VERSION_NUMBER */ + +#endif /* OPENSSL_COMPAT_H */ + -- 2.18.0 ================================================ FILE: package/ibrcommon/0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch ================================================ From 8118c43a53271ba2dd31ce3913a3cd21bc7dcca7 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 16 Feb 2019 11:58:34 +0100 Subject: [PATCH] ibrcommon/ssl/gcm: fix static build with openssl gf_mul is already defined in libcrypto (openssl) so rename it into ibrdtn_gf_mul to fix following build failure: /home/buildroot/autobuild/instance-3/output/host/bin/../arm-buildroot-uclinux-uclibcgnueabi/sysroot/usr/lib/libcrypto.a(f_impl.o): In function `gf_mul': f_impl.c:(.text+0x0): multiple definition of `gf_mul' /home/buildroot/autobuild/instance-3/output/host/arm-buildroot-uclinux-uclibcgnueabi/sysroot/usr/lib/libibrcommon.a(gf128mul.o):gf128mul.cpp:(.text+0x30): first defined here collect2: error: ld returned 1 exit status Makefile:560: recipe for target 'dtnd' failed Fixes: - http://autobuild.buildroot.org/results/1d3b4b6cf043a3e185ce758b617a0a18c3d36cdb Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/ibrdtn/ibrdtn/pull/269] --- ibrcommon/ibrcommon/ssl/gcm/gcm.cpp | 10 +++++----- ibrcommon/ibrcommon/ssl/gcm/gf128mul.cpp | 2 +- ibrcommon/ibrcommon/ssl/gcm/gf128mul.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ibrcommon/ssl/gcm/gcm.cpp b/ibrcommon/ssl/gcm/gcm.cpp index 8a5745b4..6097b43e 100644 --- a/ibrcommon/ssl/gcm/gcm.cpp +++ b/ibrcommon/ssl/gcm/gcm.cpp @@ -89,7 +89,7 @@ ret_type gcm_init_and_key( /* initialise mode and set key #elif defined( TABLES_256 ) #define gf_mul_hh(a, ctx, scr) gf_mul_256(a, ctx->gf_t256, scr) #else -#define gf_mul_hh(a, ctx, scr) gf_mul(a, ui8_ptr(ctx->ghash_h)) +#define gf_mul_hh(a, ctx, scr) ibrdtn_gf_mul(a, ui8_ptr(ctx->ghash_h)) #endif ret_type gcm_init_message( /* initialise a new message */ @@ -334,9 +334,9 @@ ret_type gcm_compute_tag( /* compute authentication tag memcpy(tbuf, ctx->ghash_h, BLOCK_SIZE); for( ; ; ) { - if(ln & 1) gf_mul(ui8_ptr(ctx->hdr_ghv), tbuf); + if(ln & 1) ibrdtn_gf_mul(ui8_ptr(ctx->hdr_ghv), tbuf); if(!(ln >>= 1)) break; - gf_mul(tbuf, tbuf); + ibrdtn_gf_mul(tbuf, tbuf); } } #else /* this one seems slower on x86 and x86_64 :-( */ @@ -348,12 +348,12 @@ ret_type gcm_compute_tag( /* compute authentication tag tbuf[0] = 0x80; while(i) { - gf_mul(tbuf, tbuf); + ibrdtn_gf_mul(tbuf, tbuf); if(i & ln) gf_mul_hh(tbuf, ctx, scratch); i >>= 1; } - gf_mul(ui8_ptr(ctx->hdr_ghv), tbuf); + ibrdtn_gf_mul(ui8_ptr(ctx->hdr_ghv), tbuf); } #endif i = BLOCK_SIZE; ln = (uint_32t)(ctx->txt_acnt << 3); diff --git a/ibrcommon/ssl/gcm/gf128mul.cpp b/ibrcommon/ssl/gcm/gf128mul.cpp index a553a044..d0c460c3 100644 --- a/ibrcommon/ssl/gcm/gf128mul.cpp +++ b/ibrcommon/ssl/gcm/gf128mul.cpp @@ -103,7 +103,7 @@ const unsigned short gf_tab[256] = gf_dat(xda); -void gf_mul(void *a, const void* b) +void ibrdtn_gf_mul(void *a, const void* b) { uint_32t r[GF_BYTE_LEN >> 2], p[8][GF_BYTE_LEN >> 2]; int i; diff --git a/ibrcommon/ssl/gcm/gf128mul.h b/ibrcommon/ssl/gcm/gf128mul.h index 4645c7fe..65fba54b 100644 --- a/ibrcommon/ssl/gcm/gf128mul.h +++ b/ibrcommon/ssl/gcm/gf128mul.h @@ -619,7 +619,7 @@ gf_inline void mul_x(void *r, const void *x) /* A slow generic version of gf_mul (a = a * b) */ -void gf_mul(void *a, const void* b); +void ibrdtn_gf_mul(void *a, const void* b); /* This version uses 64k bytes of table space on the stack. A 16 byte buffer has to be multiplied by a 16 byte key -- 2.14.1 ================================================ FILE: package/ibrcommon/Config.in ================================================ config BR2_PACKAGE_IBRCOMMON bool "ibrcommon" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS help IBR-DTN is a small dtn application that supports: Bundle Protocol RFC 5050 Bundle Security Protocol RFC 6257 http://trac.ibr.cs.tu-bs.de/project-cm-2012-ibrdtn comment "ibrcommon needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/ibrcommon/ibrcommon.hash ================================================ # Locally calculated sha256 9c457c1ebc01e6216524636628c647bef34ab11bd96f0e0788be8749374fdc20 ibrcommon-1.0.1.tar.gz sha256 1a0b57773a46d9d4cc2f0d1780a17acc38af506bb1e0234aaa85f8ccd6dc0b92 COPYING sha256 9b8a430c2136ebcf76bd37f50da7d7a80ede413ec6604cc4694ea536e779854c README ================================================ FILE: package/ibrcommon/ibrcommon.mk ================================================ ################################################################################ # # ibrcommon # ################################################################################ IBRCOMMON_VERSION = 1.0.1 IBRCOMMON_SITE = https://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases IBRCOMMON_INSTALL_STAGING = YES IBRCOMMON_LICENSE = Apache-2.0 IBRCOMMON_LICENSE_FILES = COPYING README IBRCOMMON_DEPENDENCIES = host-pkgconf IBRCOMMON_CONF_ENV = CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" ifeq ($(BR2_PACKAGE_OPENSSL),y) IBRCOMMON_DEPENDENCIES += openssl IBRCOMMON_CONF_OPTS += --with-openssl else IBRCOMMON_CONF_OPTS += --without-openssl endif ifeq ($(BR2_PACKAGE_LIBNL),y) IBRCOMMON_DEPENDENCIES += libnl IBRCOMMON_CONF_OPTS += --with-lowpan else IBRCOMMON_CONF_OPTS += --without-lowpan endif ifeq ($(BR2_PACKAGE_LIBXML2),y) IBRCOMMON_DEPENDENCIES += libxml2 IBRCOMMON_CONF_OPTS += --with-xml else IBRCOMMON_CONF_OPTS += --without-xml endif $(eval $(autotools-package)) ================================================ FILE: package/ibrdtn/Config.in ================================================ config BR2_PACKAGE_IBRDTN bool "ibrdtn" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_IBRCOMMON help IBR-DTN is a small dtn application that supports: Bundle Protocol RFC 5050 Bundle Security Protocol RFC 6257 This package contains the ibrdtn library. http://trac.ibr.cs.tu-bs.de/project-cm-2012-ibrdtn comment "ibrdtn needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/ibrdtn/ibrdtn.hash ================================================ # Locally calculated sha256 288b14ccbaefb5e3234065c2778c247797ccb3c7afbb6746bb37dc12c620d360 ibrdtn-1.0.1.tar.gz sha256 809fa1ed21450f59827d1e9aec720bbc4b687434fa22283c6cb5dd82a47ab9c0 COPYING ================================================ FILE: package/ibrdtn/ibrdtn.mk ================================================ ################################################################################ # # ibrdtn # ################################################################################ IBRDTN_VERSION = 1.0.1 IBRDTN_SITE = https://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases IBRDTN_INSTALL_STAGING = YES IBRDTN_LICENSE = Apache-2.0 IBRDTN_LICENSE_FILES = COPYING IBRDTN_DEPENDENCIES = ibrcommon host-pkgconf IBRDTN_CONF_ENV = CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" ifeq ($(BR2_PACKAGE_ZLIB),y) IBRDTN_CONF_OPTS += --with-compression IBRDTN_DEPENDENCIES += zlib else IBRDTN_CONF_OPTS += --without-compression endif ifeq ($(BR2_PACKAGE_LIBGLIB2),y) IBRDTN_CONF_OPTS += --with-glib IBRDTN_DEPENDENCIES += libglib2 else IBRDTN_CONF_OPTS += --without-glib endif $(eval $(autotools-package)) ================================================ FILE: package/ibrdtn-tools/Config.in ================================================ config BR2_PACKAGE_IBRDTN_TOOLS bool "ibrdtn-tools" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_IBRCOMMON select BR2_PACKAGE_IBRDTN help IBR-DTN is a small dtn application that supports: Bundle Protocol RFC 5050 Bundle Security Protocol RFC 6257 http://trac.ibr.cs.tu-bs.de/project-cm-2012-ibrdtn comment "ibrdtn-tools needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/ibrdtn-tools/ibrdtn-tools.hash ================================================ # Locally calculated sha256 eab066cf15f9c322d769c6c9c58adfb474cba7d446fd12e8de5ff6344376795b ibrdtn-tools-1.0.1.tar.gz sha256 809fa1ed21450f59827d1e9aec720bbc4b687434fa22283c6cb5dd82a47ab9c0 COPYING ================================================ FILE: package/ibrdtn-tools/ibrdtn-tools.mk ================================================ ################################################################################ # # ibrdtn-tools # ################################################################################ IBRDTN_TOOLS_VERSION = 1.0.1 IBRDTN_TOOLS_SITE = https://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases IBRDTN_TOOLS_LICENSE = Apache-2.0 IBRDTN_TOOLS_LICENSE_FILES = COPYING IBRDTN_TOOLS_DEPENDENCIES = ibrcommon ibrdtn host-pkgconf IBRDTN_TOOLS_CONF_ENV = CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" ifeq ($(BR2_STATIC_LIBS),y) IBRDTN_TOOLS_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -pthread" endif ifeq ($(BR2_PACKAGE_LIBDAEMON),y) IBRDTN_TOOLS_CONF_OPTS += --with-libdaemon IBRDTN_TOOLS_DEPENDENCIES += libdaemon else IBRDTN_TOOLS_CONF_OPTS += --without-libdaemon endif ifeq ($(BR2_PACKAGE_LIBARCHIVE),y) IBRDTN_TOOLS_CONF_OPTS += --with-libarchive IBRDTN_TOOLS_DEPENDENCIES += libarchive else IBRDTN_TOOLS_CONF_OPTS += --without-libarchive endif $(eval $(autotools-package)) ================================================ FILE: package/ibrdtnd/0001-ibrdtnd-added-openssl-compatibility.patch ================================================ From 8785fe0be66c8d6eaa94ffde921909a7ec220123 Mon Sep 17 00:00:00 2001 From: Eneas U de Queiroz Date: Sat, 26 May 2018 23:44:54 -0300 Subject: [PATCH] ibrdtnd: added openssl compatibility This patch adds compatibility with openssl 1.1.0 to ibrdtnd. Upstream: https://github.com/ibrdtn/ibrdtn/pull/265 Signed-off-by: Eneas U de Queiroz Signed-off-by: Matthew Weber --- src/security/exchange/DHProtocol.cpp | 36 ++++++++++--- src/security/exchange/Makefile.am | 2 + src/security/exchange/openssl_compat.cpp | 62 ++++++++++++++++++++++ src/security/exchange/openssl_compat.h | 13 +++++ 4 files changed, 107 insertions(+), 6 deletions(-) create mode 100644 src/security/exchange/openssl_compat.cpp create mode 100644 src/security/exchange/openssl_compat.h diff --git a/src/security/exchange/DHProtocol.cpp b/src/security/exchange/DHProtocol.cpp index e94c502..3e0ad71 100644 --- a/src/security/exchange/DHProtocol.cpp +++ b/src/security/exchange/DHProtocol.cpp @@ -30,6 +30,7 @@ #include #include +#include "openssl_compat.h" #define DH_KEY_LENGTH 1024 @@ -132,6 +133,7 @@ namespace dtn void DHProtocol::begin(KeyExchangeSession &session, KeyExchangeData &data) { + const BIGNUM *pub_key, *p, *g; // get session state DHState &state = session.getState(); @@ -159,9 +161,12 @@ namespace dtn // prepare request KeyExchangeData request(KeyExchangeData::REQUEST, session); - write(request, state.dh->pub_key); - write(request, state.dh->p); - write(request, state.dh->g); + DH_get0_pqg(state.dh, &p, NULL, &g); + DH_get0_key(state.dh, &pub_key, NULL); + + write(request, pub_key); + write(request, p); + write(request, g); manager.submit(session, request); } @@ -177,6 +182,15 @@ namespace dtn { if (data.getAction() == KeyExchangeData::REQUEST) { + BIGNUM *p = BN_new(); + BIGNUM *g = BN_new(); + if (p == NULL || g == NULL) + { + BN_free(p); + BN_free(g); + throw ibrcommon::Exception("Error while allocating space for DH parameters"); + } + BIGNUM* pub_key = BN_new(); read(data, &pub_key); @@ -184,8 +198,16 @@ namespace dtn state.dh = DH_new(); // read p and g paramter from message - read(data, &state.dh->p); - read(data, &state.dh->g); + read(data, &p); + read(data, &g); + + if (DH_set0_pqg(state.dh, p, NULL, g)) + { + BN_free(p); + BN_free(g); + BN_free(pub_key); + throw ibrcommon::Exception("Error while setting DH parameters"); + } int codes; if (!DH_check(state.dh, &codes)) @@ -213,7 +235,9 @@ namespace dtn state.secret.assign((const char*)secret, length); KeyExchangeData response(KeyExchangeData::RESPONSE, session); - write(response, state.dh->pub_key); + const BIGNUM *state_dh_pub_key; + DH_get0_key(state.dh, &state_dh_pub_key, NULL); + write(response, state_dh_pub_key); manager.submit(session, response); diff --git a/src/security/exchange/Makefile.am b/src/security/exchange/Makefile.am index a6b2f83..71ed836 100644 --- a/src/security/exchange/Makefile.am +++ b/src/security/exchange/Makefile.am @@ -22,6 +22,8 @@ exchange_SOURCES += \ NFCProtocol.cpp \ NoneProtocol.h \ NoneProtocol.cpp \ + openssl_compat.h \ + openssl_compat.cpp \ QRCodeProtocol.h \ QRCodeProtocol.cpp diff --git a/src/security/exchange/openssl_compat.cpp b/src/security/exchange/openssl_compat.cpp new file mode 100644 index 0000000..e3baba0 --- /dev/null +++ b/src/security/exchange/openssl_compat.cpp @@ -0,0 +1,62 @@ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "openssl_compat.h" + +#if OPENSSL_VERSION_NUMBER < 0x10100000L + +void DH_get0_pqg(const DH *dh, + const BIGNUM **p, const BIGNUM **q, const BIGNUM **g) +{ + if (p != NULL) + *p = dh->p; + if (q != NULL) + *q = dh->q; + if (g != NULL) + *g = dh->g; +} + +int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g) +{ + /* If the fields p and g in d are NULL, the corresponding input + * parameters MUST be non-NULL. q may remain NULL. + */ + if ((dh->p == NULL && p == NULL) + || (dh->g == NULL && g == NULL)) + return 0; + + if (p != NULL) { + BN_free(dh->p); + dh->p = p; + } + if (q != NULL) { + BN_free(dh->q); + dh->q = q; + } + if (g != NULL) { + BN_free(dh->g); + dh->g = g; + } + + if (q != NULL) { + dh->length = BN_num_bits(q); + } + + return 1; +} + +void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key) +{ + if (pub_key != NULL) + *pub_key = dh->pub_key; + if (priv_key != NULL) + *priv_key = dh->priv_key; +} + +#endif /* OPENSSL_VERSION_NUMBER */ diff --git a/src/security/exchange/openssl_compat.h b/src/security/exchange/openssl_compat.h new file mode 100644 index 0000000..29e7d41 --- /dev/null +++ b/src/security/exchange/openssl_compat.h @@ -0,0 +1,13 @@ +#ifndef LIBCRYPTO_COMPAT_H +#define LIBCRYPTO_COMPAT_H + +#if OPENSSL_VERSION_NUMBER < 0x10100000L + +#include + +void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); +int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); +void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key); + +#endif /* OPENSSL_VERSION_NUMBER */ +#endif /* LIBCRYPTO_COMPAT_H */ -- 1.9.1 ================================================ FILE: package/ibrdtnd/0002-SecurityCertificateManager.cpp-include-cstring-267.patch ================================================ From 9458a8627ed73600488a6d8a0ce2ce1d123da583 Mon Sep 17 00:00:00 2001 From: bkuhls Date: Sun, 19 Aug 2018 11:23:48 +0200 Subject: [PATCH] SecurityCertificateManager.cpp: include cstring (#267) Fixes build with gcc-8.2.0. Upstream: https://github.com/ibrdtn/ibrdtn/commit/122fa8ed49f896abf6a389505f3d0b66d49d1e77 Signed-off-by: Matthew Weber --- src/security/SecurityCertificateManager.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/security/SecurityCertificateManager.cpp b/src/security/SecurityCertificateManager.cpp index 5fba703..f2bbb01 100644 --- a/src/security/SecurityCertificateManager.cpp +++ b/src/security/SecurityCertificateManager.cpp @@ -22,6 +22,7 @@ #include "security/SecurityCertificateManager.h" #include "Configuration.h" +#include #include #include -- 1.9.1 ================================================ FILE: package/ibrdtnd/Config.in ================================================ config BR2_PACKAGE_IBRDTND bool "ibrdtnd" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_IBRDTN select BR2_PACKAGE_IBRCOMMON help IBR-DTN is a small dtn application that supports: Bundle Protocol RFC 5050 Bundle Security Protocol RFC 6257 http://trac.ibr.cs.tu-bs.de/project-cm-2012-ibrdtn comment "ibrdtnd needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/ibrdtnd/ibrdtnd.hash ================================================ # Locally calculated sha256 9bd79636154093ab6bf4fd10d6c62d67c6db45141460847b19def327c93771ed ibrdtnd-1.0.1.tar.gz sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 COPYING ================================================ FILE: package/ibrdtnd/ibrdtnd.mk ================================================ ################################################################################ # # ibrdtnd # ################################################################################ IBRDTND_VERSION = 1.0.1 IBRDTND_SITE = https://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases IBRDTND_LICENSE = Apache-2.0 IBRDTND_LICENSE_FILES = COPYING IBRDTND_DEPENDENCIES = ibrdtn ibrcommon host-pkgconf # Disable features that don't have the necessary dependencies in # Buildroot IBRDTND_CONF_OPTS = \ --disable-dtndht \ --without-wifip2p \ --without-vmime # don't build documentation IBRDTND_CONF_ENV = \ PDFLATEX='no' \ CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" ifeq ($(BR2_PACKAGE_LIBDAEMON),y) IBRDTND_CONF_OPTS += --enable-libdaemon IBRDTND_DEPENDENCIES += libdaemon else IBRDTND_CONF_OPTS += --disable-libdaemon endif ifeq ($(BR2_PACKAGE_LIBCURL),y) IBRDTND_CONF_OPTS += --with-curl IBRDTND_DEPENDENCIES += libcurl else IBRDTND_CONF_OPTS += --without-curl endif ifeq ($(BR2_PACKAGE_SQLITE),y) IBRDTND_CONF_OPTS += --with-sqlite IBRDTND_DEPENDENCIES += sqlite else IBRDTND_CONF_OPTS += --without-sqlite endif ifeq ($(BR2_PACKAGE_OPENSSL),y) IBRDTND_CONF_OPTS += --with-tls IBRDTND_DEPENDENCIES += openssl else IBRDTND_CONF_OPTS += --without-tls endif $(eval $(autotools-package)) ================================================ FILE: package/icu/0001-dont-build-static-dynamic-twice.patch ================================================ Don't build object files twice When passed --enable-static and --enable-shared, icu will generate both a shared and a static version of its libraries. However, in order to do so, it builds each and every object file twice: once with -fPIC (for the shared library), and once without -fPIC (for the static library). While admittedly building -fPIC for a static library generates a slightly suboptimal code, this is what all the autotools-based project are doing. They build each object file once, and they use it for both the static and shared libraries. icu builds the object files for the shared library as .o files, and the object files for static library as .ao files. By simply changing the suffix of object files used for static libraries to ".o", we tell icu to use the ones built for the shared library (i.e, with -fPIC), and avoid the double build of icu. On a fast build server, this brings the target icu build from 3m41.302s down to 1m43.926s (approximate numbers: some other builds are running on the system at the same time). Signed-off-by: Thomas Petazzoni Index: b/source/config/mh-linux =================================================================== --- a/source/config/mh-linux +++ b/source/config/mh-linux @@ -35,7 +35,7 @@ ## Shared object suffix SO = so ## Non-shared intermediate object suffix -STATIC_O = ao +STATIC_O = o ## Compilation rules %.$(STATIC_O): $(srcdir)/%.c ================================================ FILE: package/icu/0002-workaround-toolchain-bugs.patch ================================================ Workaround toolchain bugs Many of ARM Sourcery CodeBench toolchain have a bug when compiling icu's translit.cpp source file. The bug is trigerred when there is a combination of "-W -Wall" and "-Os", and causes an internal compiler error. The bug has been reported to Mentor Graphics. Even though it is clearly a toolchain bug, having a workaround for it is trivial in this case. So it will avoid our users falling into this internal compiler error, and allow our autobuilders to test more packages using this Sourcery CodeBench toolchain.qq [Gustavo: update for ICU4C 54.1] Signed-off-by: Thomas Petazzoni Signed-off-by: Gustavo Zacarias diff -Nura icu.orig/source/configure icu/source/configure --- icu.orig/source/configure 2014-12-18 15:49:43.038628644 -0300 +++ icu/source/configure 2014-12-18 15:51:23.183083232 -0300 @@ -4323,7 +4323,7 @@ ;; esac - CFLAGS="$CFLAGS -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings" + CFLAGS="$CFLAGS -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings" else case "${host}" in *-*-cygwin) @@ -4337,7 +4337,7 @@ fi if test "$GXX" = yes then - CXXFLAGS="$CXXFLAGS -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long" + CXXFLAGS="$CXXFLAGS -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long" else case "${host}" in *-*-cygwin) ================================================ FILE: package/icu/0003-link-icudata-as-data-only.patch ================================================ From d5d0c4bb7cc9aa4a132ec0bea13255aee50c1cf9 Mon Sep 17 00:00:00 2001 From: Maxime Hadjinlian Date: Fri, 6 Jun 2014 14:55:58 +0200 Subject: [PATCH] Don't link icudata as a data only library This patch cames straight from Debian. It fixes an issue when libicudata would not have some flags indicating it's EABIhf, causing applications linked against libicudata to not start on EABIhf systems. Getting rid of the -nodefaultlibs -nostdlib flags solves the problem, and is the solution that is used by Debian, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653457. Signed-off-by: Maxime Hadjinlian --- source/config/mh-linux | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/config/mh-linux b/source/config/mh-linux index 531a3b2..5a2a7c4 100644 --- a/source/config/mh-linux +++ b/source/config/mh-linux @@ -21,7 +21,9 @@ LD_RPATH= -Wl,-zorigin,-rpath,'$$'ORIGIN LD_RPATH_PRE = -Wl,-rpath, ## These are the library specific LDFLAGS -LDFLAGSICUDT=-nodefaultlibs -nostdlib +#LDFLAGSICUDT=-nodefaultlibs -nostdlib +# Debian change: linking icudata as data only causes too many problems. +LDFLAGSICUDT= ## Compiler switch to embed a library name # The initial tab in the next line is to prevent icu-config from reading it. -- 2.0.0.rc2 ================================================ FILE: package/icu/0004-fix-static-linking-with-icu-uc.patch ================================================ From ffff12fd321c7a056e796e74cc508726b0626ae0 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Wed, 22 Jul 2015 22:43:25 +0200 Subject: [PATCH] fix static linking with icu-uc During static linking with a C application and libicuuc.a, -lstdc++ is required. Add -lstdc++ in Libs.private of icu-uc.pc. Fixes: http://autobuild.buildroot.net/results/210/2107f9dfb39eeb6559fb4271c7af8b39aef521ca/ Signed-off-by: Romain Naour --- source/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Makefile.in b/source/Makefile.in index 9db6c52..ca48e16 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -264,7 +264,7 @@ config/icu-uc.pc: config/icu.pc Makefile icudefs.mk @echo "Description: $(PACKAGE_ICU_DESCRIPTION): Common and Data libraries" >> $@ @echo "Name: $(PACKAGE)-uc" >> $@ @echo "Libs:" '-L$${libdir}' "${ICULIBS_UC}" "${ICULIBS_DT}" >> $@ - @echo "Libs.private:" '$${baselibs}' >> $@ + @echo "Libs.private:" '$${baselibs}' -lstdc++ >> $@ @echo $@ updated. config/icu-i18n.pc: config/icu.pc Makefile icudefs.mk -- 2.4.3 ================================================ FILE: package/icu/0005-ICU-21587-Fix-memory-bug-w-baseName.patch ================================================ From 2dc5bea9061b4fb05cd03e21b775dd944a0eb81d Mon Sep 17 00:00:00 2001 From: Frank Tang Date: Tue, 13 Apr 2021 15:16:50 -0700 Subject: [PATCH] ICU-21587 Fix memory bug w/ baseName Edge cases not fixed in assign and move assign operator while the locale is long and call setKeywordValue with incorrect keyword/values. Signed-off-by: Peter Korsgaard [Peter: Fixes CVE-2021-30535, adjust paths for tarball] --- source/common/locid.cpp | 11 +++++++++-- source/test/intltest/loctest.cpp | 26 ++++++++++++++++++++++++++ source/test/intltest/loctest.h | 2 ++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/source/common/locid.cpp b/source/common/locid.cpp index 02cd82a7b8..3c6e5b0669 100644 --- a/source/common/locid.cpp +++ b/source/common/locid.cpp @@ -469,14 +469,18 @@ Locale& Locale::operator=(Locale&& other) U_NOEXCEPT { if ((baseName != fullName) && (baseName != fullNameBuffer)) uprv_free(baseName); if (fullName != fullNameBuffer) uprv_free(fullName); - if (other.fullName == other.fullNameBuffer) { + if (other.fullName == other.fullNameBuffer || other.baseName == other.fullNameBuffer) { uprv_strcpy(fullNameBuffer, other.fullNameBuffer); + } + if (other.fullName == other.fullNameBuffer) { fullName = fullNameBuffer; } else { fullName = other.fullName; } - if (other.baseName == other.fullName) { + if (other.baseName == other.fullNameBuffer) { + baseName = fullNameBuffer; + } else if (other.baseName == other.fullName) { baseName = fullName; } else { baseName = other.baseName; @@ -2681,6 +2685,9 @@ Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErro if (fullName != fullNameBuffer) { // if full Name is already on the heap, need to free it. uprv_free(fullName); + if (baseName == fullName) { + baseName = newFullName; // baseName should not point to freed memory. + } } fullName = newFullName; status = U_ZERO_ERROR; diff --git a/source/test/intltest/loctest.cpp b/source/test/intltest/loctest.cpp index ce41a4c00e..5503b008b0 100644 --- a/source/test/intltest/loctest.cpp +++ b/source/test/intltest/loctest.cpp @@ -284,6 +284,8 @@ void LocaleTest::runIndexedTest( int32_t index, UBool exec, const char* &name, c TESTCASE_AUTO(TestSetUnicodeKeywordValueNullInLongLocale); TESTCASE_AUTO(TestCanonicalize); TESTCASE_AUTO(TestLeak21419); + TESTCASE_AUTO(TestLongLocaleSetKeywordAssign); + TESTCASE_AUTO(TestLongLocaleSetKeywordMoveAssign); TESTCASE_AUTO_END; } @@ -6520,6 +6522,30 @@ void LocaleTest::TestSetUnicodeKeywordValueInLongLocale() { } } +void LocaleTest::TestLongLocaleSetKeywordAssign() { + IcuTestErrorCode status(*this, "TestLongLocaleSetKeywordAssign"); + // A long base name, with an illegal keyword and copy constructor + icu::Locale l("de_AAAAAAA1_AAAAAAA2_AAAAAAA3_AAAAAAA4_AAAAAAA5_AAAAAAA6_" + "AAAAAAA7_AAAAAAA8_AAAAAAA9_AAAAAA10_AAAAAA11_AAAAAA12_" + "AAAAAA13_AAAAAA14_AAAAAA15_AAAAAA16_AAAAAA17_AAAAAA18"); + Locale l2; + l.setUnicodeKeywordValue("co", "12", status); // Cause an error + status.reset(); + l2 = l; // copy operator on such bogus locale. +} + +void LocaleTest::TestLongLocaleSetKeywordMoveAssign() { + IcuTestErrorCode status(*this, "TestLongLocaleSetKeywordMoveAssign"); + // A long base name, with an illegal keyword and copy constructor + icu::Locale l("de_AAAAAAA1_AAAAAAA2_AAAAAAA3_AAAAAAA4_AAAAAAA5_AAAAAAA6_" + "AAAAAAA7_AAAAAAA8_AAAAAAA9_AAAAAA10_AAAAAA11_AAAAAA12_" + "AAAAAA13_AAAAAA14_AAAAAA15_AAAAAA16_AAAAAA17"); + Locale l2; + l.setUnicodeKeywordValue("co", "12", status); // Cause an error + status.reset(); + Locale l3 = std::move(l); // move assign +} + void LocaleTest::TestSetUnicodeKeywordValueNullInLongLocale() { IcuTestErrorCode status(*this, "TestSetUnicodeKeywordValueNullInLongLocale"); const char *exts[] = {"cf", "cu", "em", "kk", "kr", "ks", "kv", "lb", "lw", diff --git a/source/test/intltest/loctest.h b/source/test/intltest/loctest.h index 05be4037bd..12a93bde53 100644 --- a/source/test/intltest/loctest.h +++ b/source/test/intltest/loctest.h @@ -156,6 +156,8 @@ class LocaleTest: public IntlTest { void TestSetUnicodeKeywordValueInLongLocale(); void TestSetUnicodeKeywordValueNullInLongLocale(); void TestLeak21419(); + void TestLongLocaleSetKeywordAssign(); + void TestLongLocaleSetKeywordMoveAssign(); private: void _checklocs(const char* label, -- 2.20.1 ================================================ FILE: package/icu/Config.in ================================================ config BR2_PACKAGE_ICU bool "icu" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_HOST_GCC_AT_LEAST_4_9 # C++11 PR56019 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 PR56019 depends on BR2_TOOLCHAIN_HAS_THREADS # icu does some funky things by generating by itself an ELF # file, and it cannot easily be changed to generate FLAT # format. depends on !BR2_BINFMT_FLAT help International Components for Unicode. http://site.icu-project.org/ if BR2_PACKAGE_ICU config BR2_PACKAGE_ICU_CUSTOM_DATA_PATH string "Path to custom data library file" help This option allows to define the path to a custom data library generated with http://apps.icu-project.org/datacustom/ Make sure you select the appropiate version to match the one provided by buildroot. Leave empty to not use this functionality. endif comment "icu needs a toolchain w/ C++, wchar, threads, gcc >= 4.9, host gcc >= 4.9" depends on !BR2_BINFMT_FLAT depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/icu/icu.hash ================================================ # Locally computed sha256 4cba7b7acd1d3c42c44bb0c14be6637098c7faf2b330ce876bc5f3b915d09745 icu4c-69_1-src.tgz sha256 7915b19db903070778581ae05d8bf4ea241b34a05deb51ca4f5cbb15ea1cbba3 LICENSE ================================================ FILE: package/icu/icu.mk ================================================ ################################################################################ # # icu # ################################################################################ # Git tags (and therefore versions on release-monitoring.org) use the # XX-Y format, but the tarballs are named XX_Y and the containing # directories XX.Y. ICU_VERSION = 69-1 ICU_SOURCE = icu4c-$(subst -,_,$(ICU_VERSION))-src.tgz ICU_SITE = \ https://github.com/unicode-org/icu/releases/download/release-$(ICU_VERSION) ICU_LICENSE = ICU License ICU_LICENSE_FILES = LICENSE ICU_CPE_ID_VENDOR = icu-project ICU_CPE_ID_PRODUCT = international_components_for_unicode ICU_CPE_ID_VERSION = $(subst -,.,$(ICU_VERSION)) # 0005-ICU-21587-Fix-memory-bug-w-baseName.patch ICU_IGNORE_CVES += CVE-2021-30535 ICU_DEPENDENCIES = host-icu ICU_INSTALL_STAGING = YES ICU_CONFIG_SCRIPTS = icu-config ICU_CONF_OPTS = \ --with-cross-build=$(HOST_ICU_DIR)/source \ --disable-samples \ --disable-tests # 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_HAS_LIBATOMIC),y) ICU_CONF_ENV += LIBS="-latomic" endif # strtod_l() is not supported by musl; also xlocale.h is missing ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) ICU_CONF_ENV += ac_cv_func_strtod_l=no endif HOST_ICU_CONF_OPTS = \ --disable-samples \ --disable-tests \ --disable-extras \ --disable-icuio \ --disable-layout ICU_SUBDIR = source HOST_ICU_SUBDIR = source ICU_CUSTOM_DATA_PATH = $(call qstrip,$(BR2_PACKAGE_ICU_CUSTOM_DATA_PATH)) ifneq ($(ICU_CUSTOM_DATA_PATH),) define ICU_COPY_CUSTOM_DATA cp $(ICU_CUSTOM_DATA_PATH) $(@D)/source/data/in/ 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)) ================================================ FILE: package/ifenslave/Config.in ================================================ config BR2_PACKAGE_IFENSLAVE bool "ifenslave" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Configure network interfaces for parallel routing (bonding) https://salsa.debian.org/debian/ifenslave ================================================ FILE: package/ifenslave/ifenslave.hash ================================================ # From http://snapshot.debian.org/archive/debian/20170102T091407Z/pool/main/i/ifenslave/ifenslave_2.9.dsc sha1 a17e88fa298ef337e872c8aa5d7a390921239d1a ifenslave_2.9.tar.xz sha256 e5666c0b61347bd06f2394c16eca6895fcb5e5cc83d0a1c596a975274de5a3c9 ifenslave_2.9.tar.xz # Locally computed sha256 299e00f3afc0e6ea0685340df73ad444e58e6fe0229989ba0983f5f33e275c41 debian/copyright ================================================ FILE: package/ifenslave/ifenslave.mk ================================================ ################################################################################ # # ifenslave # ################################################################################ IFENSLAVE_VERSION = 2.9 IFENSLAVE_SOURCE = ifenslave_$(IFENSLAVE_VERSION).tar.xz IFENSLAVE_SITE = http://snapshot.debian.org/archive/debian/20170102T091407Z/pool/main/i/ifenslave IFENSLAVE_LICENSE = GPL-3.0+ IFENSLAVE_LICENSE_FILES = debian/copyright # shell script, so nothing to build define IFENSLAVE_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/ifenslave $(TARGET_DIR)/sbin/ifenslave endef $(eval $(generic-package)) ================================================ FILE: package/ifmetric/0001-Fix-issue-NETLINK-Packet-too-small-or-truncated-92-1.patch ================================================ From 0c80f9ead3eb1d938b3e8e68165c91e62db72de3 Mon Sep 17 00:00:00 2001 From: Damjan Georgievski Date: Wed, 15 Aug 2012 00:54:38 +0200 Subject: [PATCH] Fix issue: NETLINK: Packet too small or truncated! 92!=16!=244 As reported in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=514197#22 Signed-off-by: Peter Korsgaard --- src/nlrequest.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nlrequest.c b/src/nlrequest.c index 99fd3d0..3a1f794 100644 --- a/src/nlrequest.c +++ b/src/nlrequest.c @@ -44,7 +44,7 @@ int netlink_request(int s, struct nlmsghdr *n, int (*callback) (struct nlmsghdr for (;;) { int bytes; - char replybuf[2048]; + char replybuf[4096]; struct nlmsghdr *p = (struct nlmsghdr *) replybuf; if ((bytes = recv(s, &replybuf, sizeof(replybuf), 0)) < 0) { -- 2.11.0 ================================================ FILE: package/ifmetric/Config.in ================================================ config BR2_PACKAGE_IFMETRIC bool "ifmetric" help Ifmetric is a Linux tool for setting the metrics of all IPv4 routes attached to a given network interface at once. This may be used to change the priority of routing IPv4 traffic over the interface. Lower metrics correlate with higher priorities. http://0pointer.de/lennart/projects/ifmetric/ ================================================ FILE: package/ifmetric/ifmetric.hash ================================================ # Locally calculated sha256 0fa8510a4e34e555f136f9df81d26618313f2d69a4880c0fb5967f19502f1aec ifmetric-0.3.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 LICENSE sha256 1e33d5a8750b4b3c2cb4fb89a916463f3c838f8eb361abbf72faf244c7dde771 README ================================================ FILE: package/ifmetric/ifmetric.mk ================================================ ################################################################################ # # ifmetric # ################################################################################ IFMETRIC_VERSION = 0.3 IFMETRIC_SITE = http://0pointer.de/lennart/projects/ifmetric IFMETRIC_LICENSE = GPL-2.0+ IFMETRIC_LICENSE_FILES = LICENSE README # do not generate documentation IFMETRIC_CONF_OPTS = --disable-lynx --disable-xmltoman $(eval $(autotools-package)) ================================================ FILE: package/ifplugd/0001-cross.patch ================================================ --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: ifplugd-0.28/configure =================================================================== --- ifplugd-0.28.orig/configure +++ ifplugd-0.28/configure @@ -5430,7 +5430,7 @@ echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then - ac_cv_func_malloc_0_nonnull=no + ac_cv_func_malloc_0_nonnull=yes else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ ================================================ FILE: package/ifplugd/0002-fix-headers.patch ================================================ --- src/interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: ifplugd-0.28/src/interface.c =================================================================== --- ifplugd-0.28.orig/src/interface.c +++ ifplugd-0.28/src/interface.c @@ -23,7 +23,6 @@ #endif #include -#include #include #include #include @@ -32,6 +31,7 @@ #include #include #include +#include #include #include #include ================================================ FILE: package/ifplugd/0003-no-cxx.patch ================================================ [PATCH] ifplugd: configure: don't check for C++ compiler The configure script was checking for a C++ compiler (and erroring out if not found), even though it isn't used for anything. Signed-off-by: Peter Korsgaard diff -urpN ifplugd-0.28/configure.ac ifplugd-0.28.new/configure.ac --- ifplugd-0.28/configure.ac 2005-06-04 21:21:51.000000000 +0200 +++ ifplugd-0.28.new/configure.ac 2008-12-13 20:31:13.000000000 +0100 @@ -33,7 +33,6 @@ if type -p stow > /dev/null && test -d / fi # Checks for programs. -AC_PROG_CXX AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL ================================================ FILE: package/ifplugd/0004-musl-fix-types.patch ================================================ The musl C library does not define type names such as `__uint32_t`. Instead we use the integer types declared in the ISO C standard header file . Signed-off-by: Jörg Krause diff -purN ifplugd-0.28.orig/src/ethtool-local.h ifplugd-0.28/src/ethtool-local.h --- ifplugd-0.28.orig/src/ethtool-local.h 2015-08-01 18:43:47.360916834 +0200 +++ ifplugd-0.28/src/ethtool-local.h 2015-08-01 18:44:24.256037746 +0200 @@ -21,10 +21,12 @@ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include + typedef unsigned long long u64; -typedef __uint32_t u32; -typedef __uint16_t u16; -typedef __uint8_t u8; +typedef uint32_t u32; +typedef uint16_t u16; +typedef uint8_t u8; #include "ethtool-kernel.h" ================================================ FILE: package/ifplugd/0005-src-interface.h-fix-build-with-gcc-10.patch ================================================ From 4ce42974267dd969a597a7357d6c98ccbe8140f8 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 17 Aug 2020 20:41:29 +0200 Subject: [PATCH] src/interface.h: fix build with gcc 10 This will fix the following build failure: /home/buildroot/autobuild/instance-1/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -D_REENTRANT -DSYSCONFDIR="\"/etc\"" -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -pipe -W -Wall -Wno-unused-parameter -o ifplugstatus ifplugstatus.o interface.o -L/home/buildroot/autobuild/instance-1/output-1/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -ldaemon /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: interface.o:(.bss+0x0): multiple definition of `interface_do_message'; ifplugstatus.o:(.bss+0xc): first defined here /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: interface.o:(.bss+0x4): multiple definition of `interface_auto_up'; ifplugstatus.o:(.bss+0x4): first defined here Fixes: - http://autobuild.buildroot.org/results/63f7c6fc4a2a30c8eb0298856a2615f816d50299 Signed-off-by: Fabrice Fontaine [Upstream status: sent to Lennart Poettering ] --- src/interface.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/interface.h b/src/interface.h index 2f35a84..e603844 100644 --- a/src/interface.h +++ b/src/interface.h @@ -21,8 +21,8 @@ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -int interface_auto_up; -int interface_do_message; +extern int interface_auto_up; +extern int interface_do_message; typedef enum { IFSTATUS_UP, IFSTATUS_DOWN, IFSTATUS_ERR } interface_status_t; -- 2.27.0 ================================================ FILE: package/ifplugd/Config.in ================================================ 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 ethernet device when a cable is plugged in and automatically de-configure it if the cable is pulled out. This is useful on laptops with onboard network adapters, since it will only configure the interface when a cable is really connected. http://0pointer.de/lennart/projects/ifplugd/ ================================================ FILE: package/ifplugd/ifplugd.hash ================================================ # Locally calculated sha256 474754ac4ab32d738cbf2a4a3e87ee0a2c71b9048a38bdcd7df1e4f9fd6541f0 ifplugd-0.28.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 LICENSE ================================================ FILE: package/ifplugd/ifplugd.mk ================================================ ################################################################################ # # ifplugd # ################################################################################ IFPLUGD_VERSION = 0.28 IFPLUGD_SITE = http://0pointer.de/lennart/projects/ifplugd IFPLUGD_LICENSE = GPL-2.0+ IFPLUGD_LICENSE_FILES = LICENSE IFPLUGD_SELINUX_MODULES = ifplugd IFPLUGD_AUTORECONF = YES # install-strip unconditionally overwrites $(TARGET_DIR)/etc/ifplugd/ifplugd.* IFPLUGD_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-exec IFPLUGD_CONF_OPTS = --disable-lynx --with-initdir=/etc/init.d/ IFPLUGD_DEPENDENCIES = libdaemon define IFPLUGD_INSTALL_FIXUP $(INSTALL) -D -m 0644 $(@D)/conf/ifplugd.conf $(TARGET_DIR)/etc/ifplugd/ifplugd.conf; \ $(SED) 's^\(ARGS=.*\)w^\1^' $(TARGET_DIR)/etc/ifplugd/ifplugd.conf; \ $(INSTALL) -D -m 0755 $(@D)/conf/ifplugd.action \ $(TARGET_DIR)/etc/ifplugd/ifplugd.action endef IFPLUGD_POST_INSTALL_TARGET_HOOKS += IFPLUGD_INSTALL_FIXUP define IFPLUGD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 $(@D)/conf/ifplugd.init \ $(TARGET_DIR)/etc/init.d/S45ifplugd # don't use bash for init script $(SED) 's^/bin/bash^/bin/sh^g' $(TARGET_DIR)/etc/init.d/S45ifplugd endef $(eval $(autotools-package)) ================================================ FILE: package/iftop/0001-ui_common.h-fix-build-with-gcc-10.patch ================================================ From 18a9f7732944bfe45023f9dd7528295e7d43e678 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 12 Aug 2020 22:31:33 +0200 Subject: [PATCH] ui_common.h: fix build with gcc 10 Define global variables as extern in header to fix the build with gcc 10 which default to -fno-common: https://gcc.gnu.org/gcc-10/porting_to.html Fixes: - http://autobuild.buildroot.org/results/55a8581f11e776439782c228441ef1c8c1243386 Signed-off-by: Fabrice Fontaine [Upstream status: sent to iftop-users@lists.beasts.org] --- ui_common.c | 6 ++++++ ui_common.h | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ui_common.c b/ui_common.c index dcf6646..b1027ec 100644 --- a/ui_common.c +++ b/ui_common.c @@ -17,6 +17,12 @@ #include "ui_common.h" +sorted_list_type screen_list; +host_pair_line totals; +int peaksent, peakrecv, peaktotal; +hash_type* screen_hash; +hash_type* service_hash; + /* 2, 10 and 40 seconds */ int history_divs[HISTORY_DIVISIONS] = {1, 5, 20}; diff --git a/ui_common.h b/ui_common.h index 63ae5bb..add72fe 100644 --- a/ui_common.h +++ b/ui_common.h @@ -33,12 +33,12 @@ typedef struct host_pair_line_tag { extern options_t options; -sorted_list_type screen_list; -host_pair_line totals; -int peaksent, peakrecv, peaktotal; +extern sorted_list_type screen_list; +extern host_pair_line totals; +extern int peaksent, peakrecv, peaktotal; extern history_type history_totals; -hash_type* screen_hash; -hash_type* service_hash; +extern hash_type* screen_hash; +extern hash_type* service_hash; void analyse_data(void); void screen_list_init(void); -- 2.27.0 ================================================ FILE: package/iftop/0002-Rename-pcap_filter-to-iftop_pcap_filter.patch ================================================ From 64a185ce2017e4523f4bc39a36c7aebd6d68549a Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 2 Jun 2021 08:21:04 +0200 Subject: [PATCH] Rename pcap_filter to iftop_pcap_filter Rename pcap_filter to iftop_pcap_filter to fix the following static build failure: /home/buildroot/autobuild/run/instance-3/output-1/host/bin/riscv64-linux-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -static -static -o iftop addr_hash.o edline.o hash.o iftop.o ns_hash.o options.o resolver.o screenfilter.o serv_hash.o sorted_list.o threadprof.o ui_common.o ui.o tui.o util.o addrs_ioctl.o addrs_dlpi.o dlcommon.o stringmap.o cfgfile.o vector.o -lpcap -lpcap -L/home/buildroot/autobuild/run/instance-3/output-1/host/riscv64-buildroot-linux-musl/sysroot/usr/bin/../../../../bin/../riscv64-buildroot-linux-musl/sysroot/usr/lib -lnl-genl-3 -lnl-3 -lpthread -lcurses /home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/riscv64-buildroot-linux-musl/10.2.0/../../../../riscv64-buildroot-linux-musl/bin/ld: /home/buildroot/autobuild/run/instance-3/output-1/host/riscv64-buildroot-linux-musl/sysroot/usr/bin/../../../../bin/../riscv64-buildroot-linux-musl/sysroot/usr/lib/libpcap.a(bpf_filter.o): in function `pcap_filter': bpf_filter.c:(.text+0x4a8): multiple definition of `pcap_filter'; iftop.o:iftop.c:(.bss+0x1a8): first defined here Fixes: - http://autobuild.buildroot.org/results/eb53ff6b031c654daec57050dec376b5c9134a81 Signed-off-by: Fabrice Fontaine --- iftop.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/iftop.c b/iftop.c index aaec6aa..f89eee3 100644 --- a/iftop.c +++ b/iftop.c @@ -74,7 +74,7 @@ int history_len = 1; pthread_mutex_t tick_mutex; pcap_t* pd; /* pcap descriptor */ -struct bpf_program pcap_filter; +struct bpf_program iftop_pcap_filter; pcap_handler packet_handler; sig_atomic_t foad; @@ -679,12 +679,12 @@ char *set_filter_code(const char *filter) { sprintf(x, "(%s) and (ip or ip6)", filter); } else x = xstrdup("ip or ip6"); - if (pcap_compile(pd, &pcap_filter, x, 1, 0) == -1) { + if (pcap_compile(pd, &iftop_pcap_filter, x, 1, 0) == -1) { xfree(x); return pcap_geterr(pd); } xfree(x); - if (pcap_setfilter(pd, &pcap_filter) == -1) + if (pcap_setfilter(pd, &iftop_pcap_filter) == -1) return pcap_geterr(pd); else return NULL; -- 2.30.2 ================================================ FILE: package/iftop/Config.in ================================================ config BR2_PACKAGE_IFTOP bool "iftop" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_NCURSES select BR2_PACKAGE_LIBPCAP help iftop does for network usage what top(1) does for CPU usage. It listens to network traffic on a named interface and displays a table of current bandwidth usage by pairs of hosts. Handy for answering the question "why is our ADSL link so slow?". http://www.ex-parrot.com/pdw/iftop/ comment "iftop needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/iftop/iftop.hash ================================================ # Locally calculated sha256 f733eeea371a7577f8fe353d86dd88d16f5b2a2e702bd96f5ffb2c197d9b4f97 iftop-1.0pre4.tar.gz sha256 c00d1408e080e7f14615c7c2e0fbd079f1b2c19e93fc6eab819bdee8d5fdfbc4 COPYING ================================================ FILE: package/iftop/iftop.mk ================================================ ################################################################################ # # iftop # ################################################################################ IFTOP_VERSION = 1.0pre4 IFTOP_SITE = http://www.ex-parrot.com/pdw/iftop/download IFTOP_DEPENDENCIES = ncurses libpcap IFTOP_LICENSE = GPL-2.0+ IFTOP_LICENSE_FILES = COPYING IFTOP_LIBS = -lpcap ifeq ($(BR2_STATIC_LIBS),y) IFTOP_LIBS += `$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs` endif IFTOP_CONF_ENV += LIBS+="$(IFTOP_LIBS)" $(eval $(autotools-package)) ================================================ FILE: package/ifupdown/0001-dont-use-dpkg-architecture.patch ================================================ Drop the need for dpkg-architecture, we only build for linux. Thanks to Károly Kasza for catching this one. Signed-off-by: Gustavo Zacarias diff -Nura ifupdown.orig/defn2c.pl ifupdown/defn2c.pl --- ifupdown.orig/defn2c.pl 2014-11-18 16:39:28.878772655 -0300 +++ ifupdown/defn2c.pl 2014-11-18 16:43:41.120456676 -0300 @@ -2,7 +2,7 @@ use strict; -my $DEB_HOST_ARCH_OS = `dpkg-architecture -qDEB_HOST_ARCH_OS`; +my $DEB_HOST_ARCH_OS = "linux"; $DEB_HOST_ARCH_OS =~ s/\n//; ================================================ FILE: package/ifupdown/Config.in ================================================ config BR2_PACKAGE_IFUPDOWN bool "ifupdown" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # iproute2 depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # runtime for ip binary select BR2_PACKAGE_IPROUTE2 if !BR2_PACKAGE_BUSYBOX # runtime for run-parts select BR2_PACKAGE_DEBIANUTILS if !BR2_PACKAGE_BUSYBOX help High level tools to configure network interfaces. https://tracker.debian.org/pkg/ifupdown comment "ifupdown needs a toolchain w/ headers >= 3.4" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/ifupdown/ifupdown.hash ================================================ # From http://ftp.de.debian.org/debian/pool/main/i/ifupdown/ifupdown_0.8.16.dsc sha256 601416c12e39ac29022951a2867aed5c607f732ac57fd51517bfba92a4cc4fb0 ifupdown_0.8.16.tar.xz # Locally computed sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/ifupdown/ifupdown.mk ================================================ ################################################################################ # # ifupdown # ################################################################################ IFUPDOWN_VERSION = 0.8.16 IFUPDOWN_SOURCE = ifupdown_$(IFUPDOWN_VERSION).tar.xz IFUPDOWN_SITE = http://snapshot.debian.org/archive/debian/20160922T165503Z/pool/main/i/ifupdown IFUPDOWN_LICENSE = GPL-2.0+ IFUPDOWN_LICENSE_FILES = COPYING IFUPDOWN_CPE_ID_VENDOR = debian define IFUPDOWN_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS) -std=gnu99 -D'IFUPDOWN_VERSION=\"$(IFUPDOWN_VERSION)\"'" \ -C $(@D) endef # install doesn't overwrite define IFUPDOWN_INSTALL_TARGET_CMDS $(RM) $(TARGET_DIR)/sbin/{ifdown,ifquery} $(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)) ================================================ FILE: package/ifupdown-scripts/Config.in ================================================ config BR2_PACKAGE_IFUPDOWN_SCRIPTS bool "ifupdown scripts" default y if BR2_ROOTFS_SKELETON_DEFAULT depends on !BR2_PACKAGE_SYSTEMD_NETWORKD && !BR2_PACKAGE_NETIFRC help Set of scripts used by ifupdown (either the standalone one, or the busybox one) to bring network up, or tear it down. ================================================ FILE: package/ifupdown-scripts/S40network ================================================ #!/bin/sh # # Start the network.... # # Debian ifupdown needs the /run/network lock directory mkdir -p /run/network case "$1" in start) printf "Starting network: " /sbin/ifup -a [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping network: " /sbin/ifdown -a [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart|reload) "$0" stop "$0" start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/ifupdown-scripts/ifupdown-scripts.mk ================================================ ################################################################################ # # ifupdown-scripts # ################################################################################ define IFUPDOWN_SCRIPTS_PREAMBLE echo "# interface file auto-generated by buildroot" \ > $(TARGET_DIR)/etc/network/interfaces endef define IFUPDOWN_SCRIPTS_LOCALHOST ( \ echo ; \ echo "auto lo"; \ echo "iface lo inet loopback"; \ ) >> $(TARGET_DIR)/etc/network/interfaces endef IFUPDOWN_SCRIPTS_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP)) ifneq ($(IFUPDOWN_SCRIPTS_DHCP_IFACE),) define IFUPDOWN_SCRIPTS_DHCP ( \ echo ; \ echo "auto $(IFUPDOWN_SCRIPTS_DHCP_IFACE)"; \ echo "iface $(IFUPDOWN_SCRIPTS_DHCP_IFACE) inet dhcp"; \ echo " pre-up /etc/network/nfs_check"; \ echo " wait-delay 15"; \ echo " hostname \$$(hostname)"; \ ) >> $(TARGET_DIR)/etc/network/interfaces endef define IFUPDOWN_SCRIPTS_DHCP_OPENRC echo "ifup $(IFUPDOWN_SCRIPTS_DHCP_IFACE)" \ > $(TARGET_DIR)/etc/ifup.$(IFUPDOWN_SCRIPTS_DHCP_IFACE) echo "ifdown $(IFUPDOWN_SCRIPTS_DHCP_IFACE)" \ > $(TARGET_DIR)/etc/ifdown.$(IFUPDOWN_SCRIPTS_DHCP_IFACE) endef endif define IFUPDOWN_SCRIPTS_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(IFUPDOWN_SCRIPTS_PKGDIR)/nfs_check \ $(TARGET_DIR)/etc/network/nfs_check $(call SYSTEM_RSYNC,$(IFUPDOWN_SCRIPTS_PKGDIR)/network,$(TARGET_DIR)/etc/network) endef define IFUPDOWN_SCRIPTS_INSTALL_INIT_OPENRC $(IFUPDOWN_SCRIPTS_PREAMBLE) $(IFUPDOWN_SCRIPTS_DHCP) $(IFUPDOWN_SCRIPTS_DHCP_OPENRC) endef define IFUPDOWN_SCRIPTS_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 $(IFUPDOWN_SCRIPTS_PKGDIR)/S40network \ $(TARGET_DIR)/etc/init.d/S40network $(IFUPDOWN_SCRIPTS_PREAMBLE) $(IFUPDOWN_SCRIPTS_LOCALHOST) $(IFUPDOWN_SCRIPTS_DHCP) endef # ifupdown-scripts can not be selected when systemd-networkd is # enabled, so if we are enabled with systemd, we must install our # own service file. define IFUPDOWN_SCRIPTS_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(IFUPDOWN_SCRIPTS_PKGDIR)/network.service \ $(TARGET_DIR)/etc/systemd/system/network.service $(IFUPDOWN_SCRIPTS_PREAMBLE) $(IFUPDOWN_SCRIPTS_LOCALHOST) $(IFUPDOWN_SCRIPTS_DHCP) endef $(eval $(generic-package)) ================================================ FILE: package/ifupdown-scripts/network/if-down.d/.empty ================================================ ================================================ FILE: package/ifupdown-scripts/network/if-post-down.d/.empty ================================================ ================================================ FILE: package/ifupdown-scripts/network/if-pre-up.d/wait_iface ================================================ #!/bin/sh # In case we have a slow-to-appear interface (e.g. eth-over-USB), # and we need to configure it, wait until it appears, but not too # long either. IF_WAIT_DELAY is in seconds. if [ "${IF_WAIT_DELAY}" -a ! -e "/sys/class/net/${IFACE}" ]; then printf "Waiting for interface %s to appear" "${IFACE}" while [ ${IF_WAIT_DELAY} -gt 0 ]; do if [ -e "/sys/class/net/${IFACE}" ]; then printf "\n" exit 0 fi sleep 1 printf "." : $((IF_WAIT_DELAY -= 1)) done printf " timeout!\n" exit 1 fi ================================================ FILE: package/ifupdown-scripts/network/if-up.d/.empty ================================================ ================================================ FILE: package/ifupdown-scripts/network.service ================================================ [Unit] Description=Network Connectivity Wants=network.target Before=network.target [Service] Type=oneshot RemainAfterExit=yes # lo is brought up earlier, which will cause the upcoming "ifup -a" to fail # with exit code 1, due to an "ip: RTNETLINK answers: File exists" error during # its "ip addr add ..." command, subsequently causing this unit to fail even # though it is a benign error. Flushing the lo address with the command below # before ifup prevents this failure. ExecStart=/sbin/ip addr flush dev lo ExecStart=/sbin/ifup -a ExecStop=/sbin/ifdown -a [Install] WantedBy=multi-user.target ================================================ FILE: package/ifupdown-scripts/nfs_check ================================================ #!/bin/sh # This allows NFS booting to work while also being able to configure # the network interface via DHCP when not NFS booting. Otherwise, a # NFS booted system will likely hang during DHCP configuration. # Attempting to configure the network interface used for NFS will # initially bring that network down. Since the root filesystem is # accessed over this network, the system hangs. # This script is run by ifup and will attempt to detect if a NFS root # mount uses the interface to be configured (IFACE), and if so does # not configure it. This should allow the same build to be disk/flash # booted or NFS booted. nfsip=`sed -n '/^[^ ]*:.* \/ nfs.*[ ,]addr=\([0-9.]\+\).*/s//\1/p' /proc/mounts` if [ -n "$nfsip" ] && ip route get to "$nfsip" | grep -q "dev $IFACE"; then echo Skipping $IFACE, used for NFS from $nfsip exit 1 fi ================================================ FILE: package/igd2-for-linux/Config.in ================================================ 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/Orange-OpenSource/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 ================================================ FILE: package/igd2-for-linux/S99upnpd ================================================ #!/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 $? ================================================ FILE: package/igd2-for-linux/igd2-for-linux.hash ================================================ # Locally computed: sha256 843f2b0a7597e6cc7af85da099a7cce3401a334cbb4a6ae9d38ce252311db9b9 igd2-for-linux-2.1.tar.gz sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 linuxigd2/doc/LICENSE sha256 c8b99423cad48bb44e2cf52a496361404290865eac259a82da6d1e4331ececb3 linuxigd2/src/threadutil/COPYING ================================================ FILE: package/igd2-for-linux/igd2-for-linux.mk ================================================ ################################################################################ # # igd2-for-linux # ################################################################################ IGD2_FOR_LINUX_VERSION = 2.1 IGD2_FOR_LINUX_SITE = \ $(call github,Orange-OpenSource,igd2-for-linux,v$(IGD2_FOR_LINUX_VERSION)) IGD2_FOR_LINUX_LICENSE = GPL-2.0, BSD-3-Clause IGD2_FOR_LINUX_LICENSE_FILES = linuxigd2/doc/LICENSE linuxigd2/src/threadutil/COPYING IGD2_FOR_LINUX_DEPENDENCIES = libupnp # From git IGD2_FOR_LINUX_AUTORECONF = YES IGD2_FOR_LINUX_SUBDIR = linuxigd2 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 endef $(eval $(autotools-package)) ================================================ FILE: package/igd2-for-linux/upnpd.service ================================================ [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 ================================================ FILE: package/igh-ethercat/Config.in ================================================ comment "igh-ethercat needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_IGH_ETHERCAT bool "igh-ethercat" depends on BR2_LINUX_KERNEL help IgH EtherCAT Master for Linux. http://www.etherlab.org/en/ethercat/index.php if BR2_PACKAGE_IGH_ETHERCAT config BR2_PACKAGE_IGH_ETHERCAT_8139TOO bool "8139too driver" config BR2_PACKAGE_IGH_ETHERCAT_E100 bool "e100 driver" config BR2_PACKAGE_IGH_ETHERCAT_E1000 bool "e1000 driver" config BR2_PACKAGE_IGH_ETHERCAT_E1000E bool "e1000e driver" config BR2_PACKAGE_IGH_ETHERCAT_R8169 bool "r8169 driver" endif ================================================ FILE: package/igh-ethercat/igh-ethercat.hash ================================================ # From http://etherlab.org/download/ethercat/ethercat-1.5.2.tar.bz2.md5 md5 6b4001f8d975865d74a0b108b3bdda3d ethercat-1.5.2.tar.bz2 # Locally computed sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LESSER ================================================ FILE: package/igh-ethercat/igh-ethercat.mk ================================================ ################################################################################ # # igh-ethercat # ################################################################################ IGH_ETHERCAT_VERSION = 1.5.2 IGH_ETHERCAT_SITE = http://etherlab.org/download/ethercat IGH_ETHERCAT_SOURCE = ethercat-$(IGH_ETHERCAT_VERSION).tar.bz2 IGH_ETHERCAT_LICENSE = GPL-2.0 (IgH EtherCAT master), LGPL-2.1 (libraries) IGH_ETHERCAT_LICENSE_FILES = COPYING COPYING.LESSER IGH_ETHERCAT_INSTALL_STAGING = YES IGH_ETHERCAT_CONF_OPTS = \ --with-linux-dir=$(LINUX_DIR) IGH_ETHERCAT_CONF_OPTS += $(if $(BR2_PACKAGE_IGH_ETHERCAT_8139TOO),--enable-8139too,--disable-8139too) IGH_ETHERCAT_CONF_OPTS += $(if $(BR2_PACKAGE_IGH_ETHERCAT_E100),--enable-e100,--disable-e100) IGH_ETHERCAT_CONF_OPTS += $(if $(BR2_PACKAGE_IGH_ETHERCAT_E1000),--enable-e1000,--disable-e1000) IGH_ETHERCAT_CONF_OPTS += $(if $(BR2_PACKAGE_IGH_ETHERCAT_E1000E),--enable-e1000e,--disable-e1000e) IGH_ETHERCAT_CONF_OPTS += $(if $(BR2_PACKAGE_IGH_ETHERCAT_R8169),--enable-r8169,--disable-r8169) $(eval $(kernel-module)) $(eval $(autotools-package)) ================================================ FILE: package/igmpproxy/Config.in ================================================ config BR2_PACKAGE_IGMPPROXY bool "igmpproxy" depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR help A simple dynamic Multicast Routing Daemon using only IGMP signalling. It's intended for simple forwarding of Multicast traffic between networks. http://sourceforge.net/projects/igmpproxy/ comment "igmpproxy needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR ================================================ FILE: package/igmpproxy/igmpproxy.hash ================================================ # Locally computed: sha256 d1fc244cb2fbbf99f720bda3e841fe59ece9b6919073790b4b892739b1b844eb igmpproxy-0.3.tar.gz sha256 be3d05af93dbbc4650f8d641d8e1bec220af4a729e07ba71e949c25b93a1b4f6 COPYING sha256 c4f65d5d396ad518a37d30b83fe33897661858dc174ff64a15d0461630ce64e4 GPL.txt sha256 4328a21f0822caa9976356623118bcdcc9970c7a0f9a3deeba23c779b7cfb5d1 Stanford.txt ================================================ FILE: package/igmpproxy/igmpproxy.mk ================================================ ################################################################################ # # igmpproxy # ################################################################################ IGMPPROXY_VERSION = 0.3 IGMPPROXY_SITE = \ https://github.com/pali/igmpproxy/releases/download/$(IGMPPROXY_VERSION) IGMPPROXY_AUTORECONF = YES IGMPPROXY_LICENSE = GPL-2.0+, BSD-3-Clause (mrouted) IGMPPROXY_LICENSE_FILES = COPYING GPL.txt Stanford.txt $(eval $(autotools-package)) ================================================ FILE: package/ijs/Config.in ================================================ config BR2_PACKAGE_IJS bool "ijs" depends on BR2_USE_MMU # fork() help The IJS package contains a library which implements a protocol for transmission of raster page images. http://www.openprinting.org/ ================================================ FILE: package/ijs/ijs.hash ================================================ # Locally computed: sha256 11a5f5084488c480f3ff5a24d64d7147bb64272bf60a0ba51330a56c5b50cab9 ijs-0.35.tar.bz2 sha256 f723390b7ee019eccf07763dcb5744acf8bb43034bc3ba3d6f1c94440e365b4f README ================================================ FILE: package/ijs/ijs.mk ================================================ ################################################################################ # # ijs # ################################################################################ IJS_VERSION = 0.35 IJS_SOURCE = ijs-$(IJS_VERSION).tar.bz2 IJS_SITE = http://www.openprinting.org/download/ijs/download IJS_LICENSE = MIT IJS_LICENSE_FILES = README # Buildroot libtool patch does not apply, so we autoreconf the # package. IJS_AUTORECONF = YES IJS_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/ima-evm-utils/Config.in ================================================ config BR2_PACKAGE_IMA_EVM_UTILS bool "ima-evm-utils" depends on BR2_USE_MMU # keyutils depends on !BR2_STATIC_LIBS # keyutils, tpm2-tss select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_KEYUTILS select BR2_PACKAGE_TPM2_TSS help Linux Integrity Measurement Architecture (IMA) Extended Verification Module (EVM) tools. https://sourceforge.net/p/linux-ima/wiki/Home/ comment "ima-evm-utils needs dynamic library support" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/ima-evm-utils/ima-evm-utils.hash ================================================ # sha1 from sourceforge, sha256 locally computed sha1 034d163533ae5f9c06001b375ec7e5a1b09a3853 ima-evm-utils-1.3.2.tar.gz sha256 c2b206e7f9fbe62a938b7ae59e31906fefae4d5351fe01db739bd8346b75d4a7 ima-evm-utils-1.3.2.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/ima-evm-utils/ima-evm-utils.mk ================================================ ################################################################################ # # ima-evm-utils # ################################################################################ IMA_EVM_UTILS_VERSION = 1.3.2 IMA_EVM_UTILS_SITE = http://downloads.sourceforge.net/project/linux-ima/ima-evm-utils IMA_EVM_UTILS_LICENSE = GPL-2.0 IMA_EVM_UTILS_LICENSE_FILES = COPYING IMA_EVM_UTILS_DEPENDENCIES = host-pkgconf keyutils openssl tpm2-tss # Tarball doesn't contain configure IMA_EVM_UTILS_AUTORECONF = YES # Build and install in the src subdirectory. This avoids building the # documentation, which requires asciidoc and xsltproc. Note that configure still # needs to be run from the top dir, so _SUBDIR can't be used. define IMA_EVM_UTILS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src all endef define IMA_EVM_UTILS_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(STAGING_DIR)" -C $(@D)/src install endef define IMA_EVM_UTILS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)" -C $(@D)/src install endef $(eval $(autotools-package)) ================================================ FILE: package/imagemagick/Config.in ================================================ config BR2_PACKAGE_IMAGEMAGICK bool "imagemagick" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS help ImageMagick(R) is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves. http://www.imagemagick.org/ comment "imagemagick needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/imagemagick/Config.in.host ================================================ config BR2_PACKAGE_HOST_IMAGEMAGICK bool "host imagemagick" depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS # host-librsvg help ImageMagick(R) is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves. http://www.imagemagick.org/ if BR2_PACKAGE_HOST_IMAGEMAGICK config BR2_PACKAGE_HOST_IMAGEMAGICK_SVG bool "SVG support" help Say 'y' here is you need ImageMagick tools (like convert) to support SVG. This is not enabled by default, as it brings quite a few extra dependencies, and thus extra build time. endif ================================================ FILE: package/imagemagick/imagemagick.hash ================================================ # Locally computed sha256 fc454be622724c6224fa6c8230bb9c50191a05fbf05b9c9c25aa3e5497090b83 imagemagick-7.0.11-13.tar.gz sha256 040badb77b659e751ea16113490a937e1e01f3f5d32181e966b8982413533fb2 LICENSE ================================================ FILE: package/imagemagick/imagemagick.mk ================================================ ################################################################################ # # imagemagick # ################################################################################ IMAGEMAGICK_VERSION = 7.0.11-13 IMAGEMAGICK_SITE = $(call github,ImageMagick,ImageMagick,$(IMAGEMAGICK_VERSION)) IMAGEMAGICK_LICENSE = Apache-2.0 IMAGEMAGICK_LICENSE_FILES = LICENSE IMAGEMAGICK_CPE_ID_VENDOR = imagemagick IMAGEMAGICK_INSTALL_STAGING = YES IMAGEMAGICK_CONFIG_SCRIPTS = \ $(addsuffix -config,MagickCore MagickWand) ifeq ($(BR2_INSTALL_LIBSTDCPP)$(BR2_USE_WCHAR),yy) IMAGEMAGICK_CONFIG_SCRIPTS += Magick++-config endif IMAGEMAGICK_CONF_ENV = \ ac_cv_sys_file_offset_bits=64 \ ax_cv_check_cl_libcl=no IMAGEMAGICK_CONF_OPTS = \ --program-transform-name='s,,,' \ --disable-opencl \ --disable-openmp \ --without-djvu \ --without-dps \ --without-flif \ --without-fpx \ --without-gslib \ --without-gvc \ --without-heic \ --without-jbig \ --without-jxl \ --without-lqr \ --without-openexr \ --without-openjp2 \ --without-perl \ --without-raqm \ --without-wmf \ --without-x \ --with-gs-font-dir=/usr/share/fonts/gs IMAGEMAGICK_DEPENDENCIES = host-pkgconf ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) # Like postgreSQL, imagemagick does not build against uClibc with # locales enabled, due to an uClibc bug, see # http://lists.uclibc.org/pipermail/uclibc/2014-April/048326.html # so overwrite automatic detection and disable locale support IMAGEMAGICK_CONF_ENV += ac_cv_func_newlocale=no endif ifeq ($(BR2_PACKAGE_FONTCONFIG),y) IMAGEMAGICK_CONF_OPTS += --with-fontconfig IMAGEMAGICK_DEPENDENCIES += fontconfig else IMAGEMAGICK_CONF_OPTS += --without-fontconfig endif ifeq ($(BR2_PACKAGE_FREETYPE),y) IMAGEMAGICK_CONF_OPTS += --with-freetype IMAGEMAGICK_CONF_ENV += \ ac_cv_path_freetype_config=$(STAGING_DIR)/usr/bin/freetype-config IMAGEMAGICK_DEPENDENCIES += freetype else IMAGEMAGICK_CONF_OPTS += --without-freetype endif ifeq ($(BR2_PACKAGE_JPEG),y) IMAGEMAGICK_CONF_OPTS += --with-jpeg IMAGEMAGICK_DEPENDENCIES += jpeg else IMAGEMAGICK_CONF_OPTS += --without-jpeg endif ifeq ($(BR2_PACKAGE_LCMS2),y) IMAGEMAGICK_CONF_OPTS += --with-lcms IMAGEMAGICK_DEPENDENCIES += lcms2 else IMAGEMAGICK_CONF_OPTS += --without-lcms endif ifeq ($(BR2_PACKAGE_LIBPNG),y) IMAGEMAGICK_CONF_OPTS += --with-png IMAGEMAGICK_DEPENDENCIES += libpng else IMAGEMAGICK_CONF_OPTS += --without-png endif ifeq ($(BR2_PACKAGE_LIBRAW),y) IMAGEMAGICK_CONF_OPTS += --with-raw IMAGEMAGICK_DEPENDENCIES += libraw else IMAGEMAGICK_CONF_OPTS += --without-raw endif ifeq ($(BR2_PACKAGE_LIBRSVG),y) IMAGEMAGICK_CONF_OPTS += --with-rsvg IMAGEMAGICK_DEPENDENCIES += librsvg else IMAGEMAGICK_CONF_OPTS += --without-rsvg endif ifeq ($(BR2_PACKAGE_LIBXML2),y) IMAGEMAGICK_CONF_OPTS += --with-xml IMAGEMAGICK_CONF_ENV += ac_cv_path_xml2_config=$(STAGING_DIR)/usr/bin/xml2-config IMAGEMAGICK_DEPENDENCIES += libxml2 else IMAGEMAGICK_CONF_OPTS += --without-xml endif ifeq ($(BR2_PACKAGE_LIBZIP),y) IMAGEMAGICK_CONF_OPTS += --with-zip IMAGEMAGICK_DEPENDENCIES += libzip else IMAGEMAGICK_CONF_OPTS += --without-zip endif ifeq ($(BR2_PACKAGE_ZSTD),y) IMAGEMAGICK_CONF_OPTS += --with-zstd IMAGEMAGICK_DEPENDENCIES += zstd else IMAGEMAGICK_CONF_OPTS += --without-zstd 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 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_DOUBLE),y) # configure script misdetects these leading to build errors IMAGEMAGICK_CONF_ENV += ac_cv_func_creal=yes ac_cv_func_cimag=yes IMAGEMAGICK_CONF_OPTS += --with-fftw IMAGEMAGICK_DEPENDENCIES += fftw-double else IMAGEMAGICK_CONF_OPTS += --without-fftw endif ifeq ($(BR2_PACKAGE_WEBP),y) IMAGEMAGICK_CONF_OPTS += --with-webp IMAGEMAGICK_DEPENDENCIES += webp else IMAGEMAGICK_CONF_OPTS += --without-webp endif ifeq ($(BR2_PACKAGE_ZLIB),y) IMAGEMAGICK_CONF_OPTS += --with-zlib IMAGEMAGICK_DEPENDENCIES += zlib else IMAGEMAGICK_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_BZIP2),y) IMAGEMAGICK_CONF_OPTS += --with-bzlib IMAGEMAGICK_DEPENDENCIES += bzip2 else IMAGEMAGICK_CONF_OPTS += --without-bzlib endif HOST_IMAGEMAGICK_CONF_OPTS = \ --disable-opencl \ --disable-openmp \ --without-djvu \ --without-dps \ --without-flif \ --without-fpx \ --without-gslib \ --without-gvc \ --without-heic \ --without-jbig \ --without-jxl \ --without-lqr \ --without-openexr \ --without-openjp2 \ --without-perl \ --without-raqm \ --without-raw \ --without-wmf \ --without-x \ --without-zip \ --without-zstd \ --without-bzlib \ --without-fftw \ --without-lcms \ --without-lzma \ --without-tiff \ --without-webp \ --with-jpeg \ --with-png \ --with-zlib # uses clock_gettime, which was provided by librt in glibc < 2.17 HOST_IMAGEMAGICK_CONF_ENV = \ LIBS="-lrt" \ ax_cv_check_cl_libcl=no HOST_IMAGEMAGICK_DEPENDENCIES = \ host-libjpeg \ host-libpng \ host-pkgconf \ host-zlib ifeq ($(BR2_PACKAGE_HOST_IMAGEMAGICK_SVG),y) HOST_IMAGEMAGICK_DEPENDENCIES += \ host-fontconfig \ host-freetype \ host-librsvg \ host-libxml2 \ host-pango HOST_IMAGEMAGICK_CONF_ENV += ac_cv_path_xml2_config=$(HOST_DIR)/bin/xml2-config HOST_IMAGEMAGICK_CONF_OPTS += \ --with-fontconfig \ --with-freetype \ --with-pango \ --with-rsvg \ --with-xml else HOST_IMAGEMAGICK_CONF_OPTS += \ --without-fontconfig \ --without-freetype \ --without-pango \ --without-rsvg \ --without-xml endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/imlib2/Config.in ================================================ comment "imlib2 needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_IMLIB2 bool "imlib2" depends on !BR2_STATIC_LIBS # dlopen() select BR2_PACKAGE_FREETYPE help Imlib 2 is the successor to Imlib. This library provides routines to load, save and render images in various formats. http://freshmeat.net/projects/imlib2/ if BR2_PACKAGE_IMLIB2 config BR2_PACKAGE_IMLIB2_JPEG bool "JPEG support" select BR2_PACKAGE_JPEG config BR2_PACKAGE_IMLIB2_PNG bool "PNG support" select BR2_PACKAGE_LIBPNG config BR2_PACKAGE_IMLIB2_GIF bool "GIF support" select BR2_PACKAGE_GIFLIB config BR2_PACKAGE_IMLIB2_TIFF bool "TIFF support" select BR2_PACKAGE_TIFF config BR2_PACKAGE_IMLIB2_ID3 bool "ID3 support" select BR2_PACKAGE_LIBID3TAG config BR2_PACKAGE_IMLIB2_X bool "X support" default y depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBX11 endif ================================================ FILE: package/imlib2/imlib2.hash ================================================ # From https://sourceforge.net/projects/enlightenment/files/imlib2-src/1.7.3/ md5 1e79055a0b8fe27d208b6f8bb1bde60c imlib2-1.7.3.tar.bz2 sha1 3d55965f946d0b2754a84c8e57c78ddc227252c6 imlib2-1.7.3.tar.bz2 # Locally computed sha256 158d0b8c20bc11221af9e77a64a116fca7051b03cdea2c4f31d31f469382f997 imlib2-1.7.3.tar.bz2 sha256 fb70339dd33a77b6213c7ae067fccf93d04af44ff3f937c61f8863f7970e73f6 COPYING sha256 8c9a2e92ed4937e2d30c2ea95439c36ed3002fc47e34efee43455a460fee8ef5 COPYING-PLAIN ================================================ FILE: package/imlib2/imlib2.mk ================================================ ################################################################################ # # imlib2 # ################################################################################ IMLIB2_VERSION = 1.7.3 IMLIB2_SOURCE = imlib2-$(IMLIB2_VERSION).tar.bz2 IMLIB2_SITE = http://downloads.sourceforge.net/project/enlightenment/imlib2-src/$(IMLIB2_VERSION) IMLIB2_LICENSE = Imlib2 IMLIB2_LICENSE_FILES = COPYING COPYING-PLAIN IMLIB2_CPE_ID_VENDOR = enlightenment IMLIB2_INSTALL_STAGING = YES IMLIB2_DEPENDENCIES = host-pkgconf freetype IMLIB2_CONF_OPTS = --with-freetype-config=$(STAGING_DIR)/usr/bin/freetype-config IMLIB2_CONFIG_SCRIPTS = imlib2-config ifeq ($(BR2_PACKAGE_IMLIB2_X),y) IMLIB2_CONF_OPTS += --with-x IMLIB2_DEPENDENCIES += xlib_libX11 xlib_libXext else IMLIB2_CONF_OPTS += --without-x endif ifeq ($(BR2_PACKAGE_IMLIB2_JPEG),y) IMLIB2_CONF_OPTS += --with-jpeg IMLIB2_DEPENDENCIES += jpeg else IMLIB2_CONF_OPTS += --without-jpeg endif ifeq ($(BR2_PACKAGE_IMLIB2_PNG),y) IMLIB2_CONF_OPTS += --with-png IMLIB2_DEPENDENCIES += libpng else IMLIB2_CONF_OPTS += --without-png endif ifeq ($(BR2_PACKAGE_IMLIB2_GIF),y) IMLIB2_CONF_OPTS += --with-gif IMLIB2_DEPENDENCIES += giflib else IMLIB2_CONF_OPTS += --without-gif endif ifeq ($(BR2_PACKAGE_IMLIB2_TIFF),y) IMLIB2_CONF_OPTS += --with-tiff IMLIB2_DEPENDENCIES += tiff else IMLIB2_CONF_OPTS += --without-tiff endif ifeq ($(BR2_PACKAGE_IMLIB2_ID3),y) IMLIB2_CONF_OPTS += --with-id3 IMLIB2_DEPENDENCIES += libid3tag else IMLIB2_CONF_OPTS += --without-id3 endif # drop -L from linker flags define IMLIB2_FIXUP_IMLIB2_CONFIG $(SED) 's/-L[^ ]*//g' $(STAGING_DIR)/usr/bin/imlib2-config endef IMLIB2_POST_INSTALL_STAGING_HOOKS += IMLIB2_FIXUP_IMLIB2_CONFIG $(eval $(autotools-package)) ================================================ FILE: package/imx-mkimage/0001-Add-support-for-overriding-BL32-and-BL33-not-only-BL.patch ================================================ From 4870df3d70e94f9f0d6c06f610cea2d88cd6edb5 Mon Sep 17 00:00:00 2001 From: Erik Larsson Date: Thu, 8 Mar 2018 19:04:37 +0100 Subject: [PATCH] Add support for overriding BL32 and BL33 not only BL31 Signed-off-by: Erik Larsson Signed-off-by: Christopher Dahlberg Signed-off-by: Marcus Folkesson --- iMX8M/mkimage_fit_atf.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/iMX8M/mkimage_fit_atf.sh b/iMX8M/mkimage_fit_atf.sh index 95749b1..c1aa902 100755 --- a/iMX8M/mkimage_fit_atf.sh +++ b/iMX8M/mkimage_fit_atf.sh @@ -18,23 +18,23 @@ if [ ! -f $BL31 ]; then echo "ERROR: BL31 file $BL31 NOT found" >&2 exit 0 else - echo "bl31.bin size: " >&2 - ls -lct bl31.bin | awk '{print $5}' >&2 + echo "$BL31 size: " >&2 + ls -lct $BL31 | awk '{print $5}' >&2 fi -BL32="tee.bin" +[ -z "$BL32" ] && BL32="tee.bin" LOADABLES="\"atf@1\"" if [ ! -f $BL32 ]; then BL32=/dev/null else echo "Building with TEE support, make sure your bl31 is compiled with spd. If you do not want tee, please delete tee.bin" >&2 - echo "tee.bin size: " >&2 - ls -lct tee.bin | awk '{print $5}' >&2 + echo "$BL32 size: " >&2 + ls -lct $BL32 | awk '{print $5}' >&2 LOADABLES="$LOADABLES, \"tee@1\"" fi -BL33="u-boot-nodtb.bin" +[ -z "$BL33" ] && BL33="u-boot-nodtb.bin" DEK_BLOB="dek_blob_fit_dummy.bin" if [ ! -f $DEK_BLOB ]; then @@ -49,8 +49,8 @@ if [ ! -f $BL33 ]; then exit 0 else - echo "u-boot-nodtb.bin size: " >&2 - ls -lct u-boot-nodtb.bin | awk '{print $5}' >&2 + echo "$BL33 size: " >&2 + ls -lct $BL33 | awk '{print $5}' >&2 fi for dtname in $* -- 2.25.1 ================================================ FILE: package/imx-mkimage/0002-Add-LDFLAGS-to-link-step.patch ================================================ From 3ef9f773ce1a402607957fa73775d2e0a591a1a5 Mon Sep 17 00:00:00 2001 From: Erik Larsson Date: Tue, 6 Mar 2018 12:28:39 +0100 Subject: [PATCH] Add LDFLAGS to link step Signed-off-by: Erik Larsson --- iMX8M/soc.mak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iMX8M/soc.mak b/iMX8M/soc.mak index d714259..aecf84b 100644 --- a/iMX8M/soc.mak +++ b/iMX8M/soc.mak @@ -67,7 +67,7 @@ FW_DIR = imx-boot/imx-boot-tools/$(PLAT) $(MKIMG): mkimage_imx8.c @echo "PLAT="$(PLAT) "HDMI="$(HDMI) @echo "Compiling mkimage_imx8" - $(CC) $(CFLAGS) mkimage_imx8.c -o $(MKIMG) -lz + $(CC) $(CFLAGS) mkimage_imx8.c -o $(MKIMG) $(LDFLAGS) -lz u-boot-spl-ddr.bin: u-boot-spl.bin lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_2d_imem.bin lpddr4_pmu_train_2d_dmem.bin @objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_imem_pad.bin -- 2.25.1 ================================================ FILE: package/imx-mkimage/0003-Add-unused-fake-version.patch ================================================ From b25b4324be4c0dd9ee5fecdf2981d291fb187686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hentschel?= Date: Mon, 25 Feb 2019 22:15:55 +0100 Subject: [PATCH] Add unused fake version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Makefile makes the assumption that the build process runs from a Git clone of the source code. We can safely add a fake version here, because the code to print it is broken anyway. Signed-off-by: André Hentschel --- Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 49ef486..b966399 100644 --- a/Makefile +++ b/Makefile @@ -37,9 +37,7 @@ $(MKIMG): src/build_info.h $(SRCS) bin: $(MKIMG) src/build_info.h: - @echo -n '#define MKIMAGE_COMMIT 0x' > src/build_info.h - @git rev-parse --short=8 HEAD >> src/build_info.h - @echo '' >> src/build_info.h + @echo '#define MKIMAGE_COMMIT 0xdeadbeef' > src/build_info.h help: @echo $(CURR_DIR) -- 2.25.1 ================================================ FILE: package/imx-mkimage/Config.in.host ================================================ config BR2_PACKAGE_HOST_IMX_MKIMAGE bool "host imx-mkimage" help imx-mkimage is used to combine input images and generate final boot image with appropriate IVT set. https://source.codeaurora.org/external/imx/imx-mkimage ================================================ FILE: package/imx-mkimage/imx-mkimage.hash ================================================ # Locally calculated sha256 2746136aa5ed79ba24cfbe877d29022a2a33f6614b1bba728e95d1b2f0448196 imx-mkimage-rel_imx_5.4.70_2.3.0-br1.tar.gz sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/imx-mkimage/imx-mkimage.mk ================================================ ################################################################################ # # imx-mkimage # ################################################################################ IMX_MKIMAGE_VERSION = rel_imx_5.4.70_2.3.0 IMX_MKIMAGE_SITE = https://source.codeaurora.org/external/imx/imx-mkimage IMX_MKIMAGE_SITE_METHOD = git IMX_MKIMAGE_LICENSE = GPL-2.0+ IMX_MKIMAGE_LICENSE_FILES = COPYING HOST_IMX_MKIMAGE_DEPENDENCIES = host-zlib ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP),y) # i.MX8M needs a different binary define HOST_IMX_MKIMAGE_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) \ CFLAGS="$(HOST_CFLAGS) -std=c99" \ -C $(@D)/iMX8M -f soc.mak mkimage_imx8 endef define HOST_IMX_MKIMAGE_INSTALL_CMDS $(INSTALL) -D -m 755 $(@D)/iMX8M/mkimage_imx8 $(HOST_DIR)/bin/mkimage_imx8 $(INSTALL) -D -m 755 $(@D)/iMX8M/mkimage_fit_atf.sh $(HOST_DIR)/bin/mkimage_fit_atf.sh endef else # i.MX8 and i.MX8X define HOST_IMX_MKIMAGE_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) \ CFLAGS="$(HOST_CFLAGS) -std=c99" \ -C $(@D) MKIMG=mkimage_imx8 mkimage_imx8 endef define HOST_IMX_MKIMAGE_INSTALL_CMDS $(INSTALL) -D -m 755 $(@D)/mkimage_imx8 $(HOST_DIR)/bin/mkimage_imx8 endef endif $(eval $(host-generic-package)) ================================================ FILE: package/imx-usb-loader/Config.in ================================================ config BR2_PACKAGE_IMX_USB_LOADER bool "imx-usb-loader" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help This package contains tools to download and execute code on Freescale i.MX5/i.MX6 and Vybrid SoCs through the Serial Download Protocol. https://github.com/boundarydevices/imx_usb_loader comment "imx-usb-loader needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/imx-usb-loader/Config.in.host ================================================ config BR2_PACKAGE_HOST_IMX_USB_LOADER bool "host imx-usb-loader" depends on BR2_arm || BR2_aarch64 depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb help This package contains tools to download and execute code on Freescale i.MX5x/6x/7x/8x and Vybrid SoCs through the Serial Download Protocol. https://github.com/boundarydevices/imx_usb_loader comment "host imx-usb-loader needs a toolchain w/ host gcc >= 4.9" depends on BR2_arm || BR2_aarch64 depends on !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/imx-usb-loader/imx-usb-loader.hash ================================================ # locally computed sha256 4357907c9669874d3ccbf00395bf0b1733c26e6daea85d721f1c0cd897f4162c imx-usb-loader-30b43d69770cd69e84c045dc9dcabb1f3e9d975a.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/imx-usb-loader/imx-usb-loader.mk ================================================ ################################################################################ # # imx-usb-loader # ################################################################################ IMX_USB_LOADER_VERSION = 30b43d69770cd69e84c045dc9dcabb1f3e9d975a IMX_USB_LOADER_SITE = $(call github,boundarydevices,imx_usb_loader,$(IMX_USB_LOADER_VERSION)) IMX_USB_LOADER_LICENSE = LGPL-2.1+ IMX_USB_LOADER_LICENSE_FILES = COPYING IMX_USB_LOADER_DEPENDENCIES = libusb host-pkgconf HOST_IMX_USB_LOADER_DEPENDENCIES = host-libusb host-pkgconf define IMX_USB_LOADER_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define HOST_IMX_USB_LOADER_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define IMX_USB_LOADER_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) prefix=$(TARGET_DIR)/usr install endef define HOST_IMX_USB_LOADER_INSTALL_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) prefix=$(HOST_DIR) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/inadyn/Config.in ================================================ config BR2_PACKAGE_INADYN bool "inadyn" depends on BR2_USE_MMU # Uses fork() depends on !BR2_STATIC_LIBS # dlopen() select BR2_PACKAGE_LIBCONFUSE help INADYN is a free DynDNS client. It gives the possibility to have your own fixed hostname registered on the internet, although your IP might be changing. https://github.com/troglobit/inadyn comment "inadyn needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS depends on BR2_USE_MMU ================================================ FILE: package/inadyn/S70inadyn ================================================ #!/bin/sh # # Start & stop the inadyn client # CONFIG=/etc/inadyn.conf # check if CONFIG exists, print message & exit if it doesn't [ ! -f $CONFIG ] && ( echo "The config file "$CONFIG" is missing...exiting now." && exit 2 ) # Allow a few customizations from a config file. Especially inadyn # must be explicitly enabled by adding ENABLED="yes" in this file. test -r /etc/default/inadyn && . /etc/default/inadyn case "$1" in start) printf "Starting inadyn: " if test "${ENABLED}" != "yes" ; then echo "SKIPPED" exit 0 fi start-stop-daemon -b -q -S -p /var/run/inadyn.pid -x /usr/sbin/inadyn [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping inadyn: " if test "${ENABLED}" != "yes" ; then echo "SKIPPED" exit 0 fi start-stop-daemon -q -K -p /var/run/inadyn.pid -x /usr/sbin/inadyn [ $? = 0 ] && echo "OK" || echo "FAIL" rm -f /var/run/inadyn.pid ;; restart) "$0" stop "$0" start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/inadyn/inadyn.conf ================================================ # Basic configuration file for inadyn # # /etc/inadyn.conf iface = eth0 period = 300 provider default@dyndns.org { username = test password = test hostname = test } ================================================ FILE: package/inadyn/inadyn.hash ================================================ # From https://github.com/troglobit/inadyn/releases/download/v2.8.1/inadyn-2.8.1.tar.xz.sha256 sha256 1185a9fb165bfc5f5b5f66f0dd8a695c9bd78d4b20cd162273eeea77f2d2e685 inadyn-2.8.1.tar.xz # Locally computed sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/inadyn/inadyn.mk ================================================ ################################################################################ # # inadyn # ################################################################################ INADYN_VERSION = 2.8.1 INADYN_SITE = https://github.com/troglobit/inadyn/releases/download/v$(INADYN_VERSION) INADYN_SOURCE = inadyn-$(INADYN_VERSION).tar.xz INADYN_LICENSE = GPL-2.0+ INADYN_LICENSE_FILES = COPYING INADYN_DEPENDENCIES = host-pkgconf libconfuse ifeq ($(BR2_PACKAGE_OPENSSL),y) INADYN_CONF_OPTS += --enable-openssl INADYN_DEPENDENCIES += openssl else ifeq ($(BR2_PACKAGE_GNUTLS),y) INADYN_DEPENDENCIES += gnutls else INADYN_CONF_OPTS += --disable-ssl endif define INADYN_INSTALL_SAMPLE_CONFIG $(INSTALL) -D -m 0600 package/inadyn/inadyn.conf \ $(TARGET_DIR)/etc/inadyn.conf endef INADYN_POST_INSTALL_TARGET_HOOKS += INADYN_INSTALL_SAMPLE_CONFIG define INADYN_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/inadyn/S70inadyn \ $(TARGET_DIR)/etc/init.d/S70inadyn endef define INADYN_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/inadyn/inadyn.service \ $(TARGET_DIR)/usr/lib/systemd/system/inadyn.service endef $(eval $(autotools-package)) ================================================ FILE: package/inadyn/inadyn.service ================================================ [Unit] Description=DDNS client After=syslog.target network.target [Service] ExecStart=/usr/bin/inadyn Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/inconsolata/Config.in ================================================ config BR2_PACKAGE_INCONSOLATA bool "inconsolata" help Inconsolata is a monospace font, designed for code listings and the like. http://www.google.com/fonts/specimen/Inconsolata ================================================ FILE: package/inconsolata/inconsolata.hash ================================================ # From http://snapshot.debian.org/archive/debian/20091207T044352Z/pool/main/t/ttf-inconsolata/ttf-inconsolata_001.010-2.dsc sha256 ecf8ba44911fcb3c9683aef1ca2b3cfbafa119a3e93c682f448850e1ae08ce93 ttf-inconsolata_001.010.orig.tar.gz # Locally computed sha256 8bbed014d1c85a9e3f36703816833c9538e140fea88c2bc3a745ce2449dc18ab OFL.txt ================================================ FILE: package/inconsolata/inconsolata.mk ================================================ ################################################################################ # # inconsolata # ################################################################################ INCONSOLATA_VERSION = 001.010 INCONSOLATA_SITE = http://snapshot.debian.org/archive/debian/20090524T155154Z/pool/main/t/ttf-inconsolata INCONSOLATA_SOURCE = ttf-inconsolata_$(INCONSOLATA_VERSION).orig.tar.gz INCONSOLATA_TARGET_DIR = $(TARGET_DIR)/usr/share/fonts/inconsolata INCONSOLATA_LICENSE = OFL-1.0 INCONSOLATA_LICENSE_FILES = OFL.txt define INCONSOLATA_INSTALL_TARGET_CMDS mkdir -p $(INCONSOLATA_TARGET_DIR) $(INSTALL) -m 644 $(@D)/*.otf $(INCONSOLATA_TARGET_DIR) endef $(eval $(generic-package)) ================================================ FILE: package/inih/Config.in ================================================ config BR2_PACKAGE_INIH bool "inih" help inih (INI Not Invented Here) is a simple .INI file parser written in C. https://github.com/benhoyt/inih/ ================================================ FILE: package/inih/inih.hash ================================================ # Locally computed sha256 01b0366fdfdf6363efc070c2f856f1afa33e7a6546548bada5456ad94a516241 inih-53.tar.gz sha256 9ae3b39e83e9158e44b67733baa3bb2d84e80efdcfb14a5820210a42c7abdf7f LICENSE.txt ================================================ FILE: package/inih/inih.mk ================================================ ################################################################################ # # inih # ################################################################################ INIH_VERSION = 53 INIH_SITE = $(call github,benhoyt,inih,r$(INIH_VERSION)) INIH_INSTALL_STAGING = YES INIH_LICENSE = BSD-3-Clause INIH_LICENSE_FILES = LICENSE.txt INIH_CONF_OPTS = -Ddistro_install=true ifeq ($(BR2_INSTALL_LIBSTDCPP),y) INIH_CONF_OPTS += -Dwith_INIReader=true else INIH_CONF_OPTS += -Dwith_INIReader=false endif $(eval $(meson-package)) ================================================ FILE: package/initscripts/Config.in ================================================ config BR2_PACKAGE_INITSCRIPTS bool help The basics startup scripts for both SysV and Busybox ================================================ FILE: package/initscripts/init.d/rcK ================================================ #!/bin/sh # Stop all init scripts in /etc/init.d # executing them in reversed numerical order. # for i in $(ls -r /etc/init.d/S??*) ;do # Ignore dangling symlinks (if any). [ ! -f "$i" ] && continue case "$i" in *.sh) # Source shell script for speed. ( trap - INT QUIT TSTP set stop . $i ) ;; *) # No sh extension, so fork subprocess. $i stop ;; esac done ================================================ FILE: package/initscripts/init.d/rcS ================================================ #!/bin/sh # Start all init scripts in /etc/init.d # executing them in numerical order. # for i in /etc/init.d/S??* ;do # Ignore dangling symlinks (if any). [ ! -f "$i" ] && continue case "$i" in *.sh) # Source shell script for speed. ( trap - INT QUIT TSTP set start . $i ) ;; *) # No sh extension, so fork subprocess. $i start ;; esac done ================================================ FILE: package/initscripts/initscripts.mk ================================================ ################################################################################ # # initscripts # ################################################################################ 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/ endef $(eval $(generic-package)) ================================================ FILE: package/inotify-tools/Config.in ================================================ config BR2_PACKAGE_INOTIFY_TOOLS bool "inotify-tools" depends on BR2_USE_MMU # fork() help inotify-tools is a C library and a set of command-line programs for Linux providing a simple interface to inotify. These programs can be used to monitor and act upon filesystem events. Provides the 'inotifywait' and 'inotifywatch' binaries. https://github.com/inotify-tools/inotify-tools ================================================ FILE: package/inotify-tools/inotify-tools.hash ================================================ # Locally computed sha256 c5b018567814ea555d716f518b6e3ae243c733f7bd3e8585d81748a6da286f3c inotify-tools-3.20.2.2.tar.gz sha256 e41fc126320a79ed53b5aa3386f059f7d10770856d6fd714ab80a96ce6bd09d6 COPYING ================================================ FILE: package/inotify-tools/inotify-tools.mk ================================================ ################################################################################ # # inotify-tools # ################################################################################ INOTIFY_TOOLS_VERSION = 3.20.2.2 INOTIFY_TOOLS_SITE = https://github.com/inotify-tools/inotify-tools/releases/download/$(INOTIFY_TOOLS_VERSION) INOTIFY_TOOLS_LICENSE = GPL-2.0+ INOTIFY_TOOLS_LICENSE_FILES = COPYING INOTIFY_TOOLS_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/input-event-daemon/Config.in ================================================ config BR2_PACKAGE_INPUT_EVENT_DAEMON bool "input-event-daemon" # Uses fork() depends on BR2_USE_MMU help input-event-daemon is a daemon which executes a user-defined command on input events, such as keys, mouse buttons and switches. http://github.com/gandro/input-event-daemon ================================================ FILE: package/input-event-daemon/S99input-event-daemon ================================================ #! /bin/sh [ -f /usr/bin/input-event-daemon ] || exit 0 start() { printf "Starting input-event-daemon: " input-event-daemon echo "done" } stop() { printf "Stopping input-event-daemon: " killall input-event-daemon echo "done" } restart() { stop start } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; *) echo "Usage: $0 {start|stop|reload|restart}" exit 1 esac exit $? ================================================ FILE: package/input-event-daemon/input-event-daemon.hash ================================================ # Locally calculated sha256 1d9a44160aead88080093f74be9d709fbbc2637f982958e2673d80aedacd0a65 input-event-daemon-0.1.3.tar.gz sha256 56f6614c63a023e4d486332968bfa7933f06ea7c785ef85f403448022ae7f912 README ================================================ FILE: package/input-event-daemon/input-event-daemon.mk ================================================ ################################################################################ # # input-event-daemon # ################################################################################ INPUT_EVENT_DAEMON_VERSION = 0.1.3 INPUT_EVENT_DAEMON_SITE = $(call github,gandro,input-event-daemon,v$(INPUT_EVENT_DAEMON_VERSION)) INPUT_EVENT_DAEMON_LICENSE = input-event-daemon license INPUT_EVENT_DAEMON_LICENSE_FILES = README define INPUT_EVENT_DAEMON_BUILD_CMDS touch $(@D)/input-event-table.h $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" -C $(@D) endef define INPUT_EVENT_DAEMON_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -D $(@D)/input-event-daemon \ $(TARGET_DIR)/usr/bin/input-event-daemon $(INSTALL) -m 644 -D $(@D)/docs/sample.conf \ $(TARGET_DIR)/etc/input-event-daemon.conf endef define INPUT_EVENT_DAEMON_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/input-event-daemon/S99input-event-daemon \ $(TARGET_DIR)/etc/init.d/S99input-event-daemon endef define INPUT_EVENT_DAEMON_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/input-event-daemon/input-event-daemon.service \ $(TARGET_DIR)/usr/lib/systemd/system/input-event-daemon.service endef $(eval $(generic-package)) ================================================ FILE: package/input-event-daemon/input-event-daemon.service ================================================ [Unit] Description=Input Event Daemon [Service] ExecStart=/usr/bin/input-event-daemon --no-daemon Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/intel-gmmlib/0001-Drop-hardening-related-flags.patch ================================================ From 1528980ee15e9589a7e27ec6d12a33cd8aab57b4 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Tue, 8 Jun 2021 07:51:40 +0200 Subject: [PATCH] Drop hardening-related flags These will be set by Buildroot depending on toolchain capabilities and global Buildroot options. Signed-off-by: Bernd Kuhls --- Source/GmmLib/Linux.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/Source/GmmLib/Linux.cmake b/Source/GmmLib/Linux.cmake index 1a09bc4..b28fc1b 100644 --- a/Source/GmmLib/Linux.cmake +++ b/Source/GmmLib/Linux.cmake @@ -62,7 +62,6 @@ SET (GMMLIB_COMPILER_FLAGS_COMMON -DUSE_SSE3 -DUSE_SSSE3 # Other common flags - -fstack-protector -fdata-sections -ffunction-sections -fmessage-length=0 -- 2.29.2 ================================================ FILE: package/intel-gmmlib/Config.in ================================================ config BR2_PACKAGE_INTEL_GMMLIB bool "intel-gmmlib" depends on BR2_x86_64 depends on !BR2_STATIC_LIBS help The Intel(R) Graphics Memory Management Library provides device specific and buffer management for the Intel(R) Graphics Compute Runtime for OpenCL(TM) and the Intel(R) Media Driver for VAAPI. https://github.com/intel/gmmlib comment "intel-gmmlib needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/intel-gmmlib/intel-gmmlib.hash ================================================ # Locally computed sha256 d26a6512a1b3ca604dabe035ddaf47b4b445bd503eac69a59e4acb2d1f54634b intel-gmmlib-21.3.1.tar.gz sha256 8b7446825df3f8b0268307e272aa6aaaf78351c83161d860d02c913c22666c48 LICENSE.md ================================================ FILE: package/intel-gmmlib/intel-gmmlib.mk ================================================ ################################################################################ # # intel-gmmlib # ################################################################################ INTEL_GMMLIB_VERSION = 21.3.1 INTEL_GMMLIB_SITE = https://github.com/intel/gmmlib/archive INTEL_GMMLIB_LICENSE = MIT INTEL_GMMLIB_LICENSE_FILES = LICENSE.md INTEL_GMMLIB_INSTALL_STAGING = YES INTEL_GMMLIB_SUPPORTS_IN_SOURCE_BUILD = NO INTEL_GMMLIB_CONF_OPTS = -DRUN_TEST_SUITE=OFF $(eval $(cmake-package)) ================================================ FILE: package/intel-mediadriver/0001-Add-MEDIA-BUILD-HARDENING-option.patch ================================================ From 103c00c8d74a1cd87686850212bd93c0e4d59fc9 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 11 Aug 2021 21:34:59 +0200 Subject: [PATCH] Add MEDIA_BUILD_HARDENING option Add MEDIA_BUILD_HARDENING option to allow the user to disable hardening options such as stack-protector-all or FORTIFY SOURCE 2 which are not always available (e.g. fortify source 2 is only available on glibc >= 6 and not musl/uclibc-ng) Patch sent upstream: https://github.com/intel/media-driver/pull/1242 Signed-off-by: Fabrice Fontaine Signed-off-by: Bernd Kuhls --- cmrtlib/linux/CMakeLists.txt | 14 ++++++++++---- .../cmake/linux/media_compile_flags_linux.cmake | 12 ++++++++++-- media_driver/media_top_cmake.cmake | 8 +++++++- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/cmrtlib/linux/CMakeLists.txt b/cmrtlib/linux/CMakeLists.txt index 65f71ceef..b066138d9 100644 --- a/cmrtlib/linux/CMakeLists.txt +++ b/cmrtlib/linux/CMakeLists.txt @@ -32,12 +32,18 @@ else() endif() # Set up compile options that will be used for the Linux build -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CPP_STANDARD_OPTION} -fPIC -fpermissive -fstack-protector-all") -set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fno-strict-aliasing -D_FORTIFY_SOURCE=2") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CPP_STANDARD_OPTION} -fPIC -fpermissive") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fno-strict-aliasing") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG -D__DEBUG -O0") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CPP_STANDARD_OPTION} -fPIC -fpermissive -fstack-protector-all") -set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fno-strict-aliasing -D_FORTIFY_SOURCE=2") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CPP_STANDARD_OPTION} -fPIC -fpermissive") +set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fno-strict-aliasing") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG -D__DEBUG -O0") +if(MEDIA_BUILD_HARDENING) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS} -fstack-protector-all") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D_FORTIFY_SOURCE=2") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS} -fstack-protector-all") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D_FORTIFY_SOURCE=2") +endif() if(MEDIA_BUILD_FATAL_WARNINGS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS} -Werror") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS} -Werror") diff --git a/media_driver/cmake/linux/media_compile_flags_linux.cmake b/media_driver/cmake/linux/media_compile_flags_linux.cmake index 7a2bd64b6..98896b131 100755 --- a/media_driver/cmake/linux/media_compile_flags_linux.cmake +++ b/media_driver/cmake/linux/media_compile_flags_linux.cmake @@ -47,7 +47,6 @@ set(MEDIA_COMPILER_FLAGS_COMMON # Other common flags -fmessage-length=0 -fvisibility=hidden - -fstack-protector -fdata-sections -ffunction-sections -Wl,--gc-sections @@ -64,6 +63,11 @@ set(MEDIA_COMPILER_FLAGS_COMMON -g ) +if(MEDIA_BUILD_HARDENING) + set(MEDIA_COMPILER_FLAGS_COMMON + ${MEDIA_COMPILER_FLAGS_COMMON} + -fstack-protector) +endif() if(${UFO_MARCH} STREQUAL "slm") set(MEDIA_COMPILER_FLAGS_COMMON @@ -119,9 +123,13 @@ if(${UFO_VARIANT} STREQUAL "default") set(MEDIA_COMPILER_FLAGS_RELEASE ${MEDIA_COMPILER_FLAGS_RELEASE} -O2 - -D_FORTIFY_SOURCE=2 -fno-omit-frame-pointer ) + if(MEDIA_BUILD_HARDENING) + set(MEDIA_COMPILER_FLAGS_RELEASE + ${MEDIA_COMPILER_FLAGS_RELEASE} + -D_FORTIFY_SOURCE=2) + endif() endif() if(NOT ${PLATFORM} STREQUAL "android") diff --git a/media_driver/media_top_cmake.cmake b/media_driver/media_top_cmake.cmake index f089ea45f..b0b428914 100755 --- a/media_driver/media_top_cmake.cmake +++ b/media_driver/media_top_cmake.cmake @@ -111,7 +111,13 @@ if(MEDIA_BUILD_FATAL_WARNINGS) set_target_properties(${LIB_NAME_OBJ} PROPERTIES COMPILE_FLAGS "-Werror") endif() -set_target_properties(${LIB_NAME} PROPERTIES LINK_FLAGS "-Wl,--no-as-needed -Wl,--gc-sections -z relro -z now -fstack-protector -fPIC") +set(MEDIA_LINK_FLAGS "-Wl,--no-as-needed -Wl,--gc-sections -z relro -z now -fPIC") +option(MEDIA_BUILD_HARDENING "Enable hardening (stack-protector, fortify source)" ON) +if(MEDIA_BUILD_HARDENING) + set(MEDIA_LINK_FLAGS "${MEDIA_LINK_FLAGS} -fstack-protector") +endif() +set_target_properties(${LIB_NAME} PROPERTIES LINK_FLAGS ${MEDIA_LINK_FLAGS}) + set_target_properties(${LIB_NAME} PROPERTIES PREFIX "") set_target_properties(${LIB_NAME_STATIC} PROPERTIES PREFIX "") ================================================ FILE: package/intel-mediadriver/Config.in ================================================ config BR2_PACKAGE_INTEL_MEDIADRIVER bool "intel-mediadriver" depends on BR2_x86_64 depends on !BR2_STATIC_LIBS # mesa3d, libva depends on BR2_INSTALL_LIBSTDCPP # mesa3d depends on BR2_TOOLCHAIN_HAS_SYNC_1 # mesa3d depends on BR2_TOOLCHAIN_HAS_THREADS # libva depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # mesa3d select BR2_PACKAGE_INTEL_GMMLIB select BR2_PACKAGE_LIBPCIACCESS select BR2_PACKAGE_LIBVA select BR2_PACKAGE_MESA3D help The Intel(R) Media Driver for VAAPI is a new VA-API (Video Acceleration API) user mode driver supporting hardware accelerated decoding, encoding, and video post processing for GEN based graphics hardware. https://github.com/intel/media-driver comment "intel-mediadriver needs a toolchain w/ dynamic library, C++, NPTL" depends on BR2_x86_64 && BR2_TOOLCHAIN_HAS_SYNC_1 depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL ================================================ FILE: package/intel-mediadriver/intel-mediadriver.hash ================================================ # Locally computed sha256 182925ed21c0a9843a63865e34dc35bf713294260d14ceb29e8de0de2e34733f intel-media-21.3.5.tar.gz sha256 74979d5aaee78b8da82e3aafd415a216b6131dfff6d95d6930927c8a4e3bded3 LICENSE.md ================================================ FILE: package/intel-mediadriver/intel-mediadriver.mk ================================================ ################################################################################ # # intel-mediadriver # ################################################################################ # based on https://software.intel.com/en-us/articles/build-and-debug-open-source-media-stack INTEL_MEDIADRIVER_VERSION = 21.3.5 INTEL_MEDIADRIVER_SITE = http://github.com/intel/media-driver/archive INTEL_MEDIADRIVER_SOURCE= intel-media-$(INTEL_MEDIADRIVER_VERSION).tar.gz INTEL_MEDIADRIVER_LICENSE = MIT, BSD-3-Clause INTEL_MEDIADRIVER_LICENSE_FILES = LICENSE.md INTEL_MEDIADRIVER_DEPENDENCIES = \ intel-gmmlib \ libpciaccess \ libva \ mesa3d ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) INTEL_MEDIADRIVER_DEPENDENCIES += xlib_libX11 endif INTEL_MEDIADRIVER_SUPPORTS_IN_SOURCE_BUILD = NO # hardening is disabled here, so that the top-level Buildroot options # control which hardening features are enabled INTEL_MEDIADRIVER_CONF_OPTS = \ -DINSTALL_DRIVER_SYSCONF=OFF \ -DMEDIA_BUILD_FATAL_WARNINGS=OFF \ -DMEDIA_RUN_TEST_SUITE=OFF \ -DMEDIA_BUILD_HARDENING=OFF $(eval $(cmake-package)) ================================================ FILE: package/intel-mediasdk/0001-Don-t-force-fstack-protector.patch ================================================ From 28ca7393c08cb54b87d11c1ca92821e48f54781b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Mon, 15 Apr 2019 23:09:33 +0200 Subject: [PATCH] Don't force -fstack-protector This allows the environment to decide whether SSP should be used or not, for example to support toolchains that don't have SSP support. Signed-off-by: Thomas Petazzoni [Bernd: rebased for 21.2.3] Signed-off-by: Bernd Kuhls --- api/mfx_dispatch/linux/CMakeLists.txt | 2 +- builder/FindPackages.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/mfx_dispatch/linux/CMakeLists.txt b/api/mfx_dispatch/linux/CMakeLists.txt index 15a4bd9a..4415f840 100644 --- a/api/mfx_dispatch/linux/CMakeLists.txt +++ b/api/mfx_dispatch/linux/CMakeLists.txt @@ -101,7 +101,7 @@ target_link_libraries(mfx dl) get_api_version(MFX_VERSION_MAJOR MFX_VERSION_MINOR) set_target_properties( mfx PROPERTIES LINK_FLAGS - "-Wl,--no-undefined,-z,relro,-z,now,-z,noexecstack -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libmfx.map -fstack-protector") + "-Wl,--no-undefined,-z,relro,-z,now,-z,noexecstack -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libmfx.map") set_target_properties( mfx PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIB_DIR}/${CMAKE_BUILD_TYPE} FOLDER mfx ) set_target_properties( mfx PROPERTIES VERSION ${MFX_VERSION_MAJOR}.${MFX_VERSION_MINOR}) set_target_properties( mfx PROPERTIES SOVERSION ${MFX_VERSION_MAJOR}) diff --git a/builder/FindPackages.cmake b/builder/FindPackages.cmake index 7e36ae2d..5b8b9b9d 100644 --- a/builder/FindPackages.cmake +++ b/builder/FindPackages.cmake @@ -83,7 +83,7 @@ function( configure_build_variant_linux target variant ) return() # should not occur; just in case endif() set( link_flags_list "-Wl,--no-undefined,-z,relro,-z,now,-z,noexecstack -Wl,--no-as-needed -ldl") - append_property( ${ARGV0} LINK_FLAGS "${link_flags_list} ${MFX_LDFLAGS} -fstack-protector" ) + append_property( ${ARGV0} LINK_FLAGS "${link_flags_list} ${MFX_LDFLAGS}" ) # message( STATUS "Libva located at: ${PKG_LIBVA_LIBRARY_DIRS}" ) if( ARGV1 MATCHES hw AND Linux ) @@ -445,7 +445,7 @@ function(configure_dependencies target dependencies variant) endforeach() set(SCOPE_CFLAGS ${SCOPE_CFLAGS} PARENT_SCOPE) - set(SCOPE_LINKFLAGS "${SCOPE_LINKFLAGS} -Wl,--no-undefined,-z,relro,-z,now,-z,noexecstack -fstack-protector" PARENT_SCOPE) + set(SCOPE_LINKFLAGS "${SCOPE_LINKFLAGS} -Wl,--no-undefined,-z,relro,-z,now,-z,noexecstack" PARENT_SCOPE) set(SCOPE_LIBS ${SCOPE_LIBS} PARENT_SCOPE) endfunction() -- 2.20.1 ================================================ FILE: package/intel-mediasdk/Config.in ================================================ config BR2_PACKAGE_INTEL_MEDIASDK bool "intel-mediasdk" depends on BR2_x86_64 depends on !BR2_STATIC_LIBS # intel-mediadriver depends on BR2_INSTALL_LIBSTDCPP # intel-mediadriver depends on BR2_TOOLCHAIN_HAS_SYNC_1 # intel-mediadriver depends on BR2_TOOLCHAIN_HAS_THREADS # intel-mediadriver depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # intel-mediadriver select BR2_PACKAGE_INTEL_MEDIADRIVER select BR2_PACKAGE_LIBDRM_INTEL help Intel(R) Media SDK provides an API to access hardware-accelerated video decode, encode and filtering on Intel® platforms with integrated graphics. Supported video encoders: HEVC, AVC, MPEG-2, JPEG Supported Video decoders: HEVC, AVC, VP8, MPEG-2, VC1, JPEG Supported video pre-processing filters: Color Conversion, Deinterlace, Denoise, Resize, Rotate, Composition http://mediasdk.intel.com/ comment "intel-mediasdk needs a toolchain w/ dynamic library, C++, NPTL" depends on BR2_x86_64 && BR2_TOOLCHAIN_HAS_SYNC_1 depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL ================================================ FILE: package/intel-mediasdk/intel-mediasdk.hash ================================================ # Locally computed sha256 3f13869298d3946d7d91e58846e274ef62cd5af2473f59f36b57b2c27ebfd87c intel-mediasdk-21.3.5.tar.gz sha256 dfd67773578903698f9ff4a61eb8f2d84810cbecd56f3f3cee8c649f813b6ea6 LICENSE ================================================ FILE: package/intel-mediasdk/intel-mediasdk.mk ================================================ ################################################################################ # # intel-mediasdk # ################################################################################ INTEL_MEDIASDK_VERSION = 21.3.5 INTEL_MEDIASDK_SITE = http://github.com/Intel-Media-SDK/MediaSDK/archive INTEL_MEDIASDK_LICENSE = MIT INTEL_MEDIASDK_LICENSE_FILES = LICENSE INTEL_MEDIASDK_INSTALL_STAGING = YES INTEL_MEDIASDK_DEPENDENCIES = intel-mediadriver INTEL_MEDIASDK_CONF_OPTS = \ -DBUILD_SAMPLES=OFF \ -DBUILD_TUTORIALS=OFF \ -DMFX_INCLUDE="$(@D)/api/include" $(eval $(cmake-package)) ================================================ FILE: package/intel-microcode/Config.in ================================================ config BR2_PACKAGE_INTEL_MICROCODE bool "intel-microcode" depends on BR2_x86_64 || BR2_i386 help This package provides an Intel microcode data file that can be used to correct processor errors. The iucode-tool package and proper kernel support are required to upload the microcode. https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files config BR2_PACKAGE_INTEL_MICROCODE_INSTALL_TARGET bool "install microcode files to /lib/firmware in target" default y depends on BR2_PACKAGE_INTEL_MICROCODE help Select this option to have the microcode files installed to /lib/firmware/intel-ucode in the target root filesystem, in addition to the images directory. ================================================ FILE: package/intel-microcode/intel-microcode.hash ================================================ # Locally computed sha256 fd85b6b769efd029dec6a2c07106fd18fb4dcb548b7bc4cde09295a8344ef6d7 intel-microcode-20210608.tar.gz sha256 03efb1491c7e899feb2665fa299363e64035e5444c1b8bc1f6ebed30de964e12 license ================================================ FILE: package/intel-microcode/intel-microcode.mk ================================================ ################################################################################ # # intel-microcode # ################################################################################ INTEL_MICROCODE_VERSION = 20210608 INTEL_MICROCODE_SITE = $(call github,intel,Intel-Linux-Processor-Microcode-Data-Files,microcode-$(INTEL_MICROCODE_VERSION)) INTEL_MICROCODE_LICENSE = PROPRIETARY INTEL_MICROCODE_LICENSE_FILES = license INTEL_MICROCODE_REDISTRIBUTE = NO INTEL_MICROCODE_INSTALL_IMAGES = YES define INTEL_MICROCODE_INSTALL_IMAGES_CMDS mkdir -p $(BINARIES_DIR)/intel-ucode $(INSTALL) -m 0644 -t $(BINARIES_DIR)/intel-ucode \ $(@D)/intel-ucode/* endef ifeq ($(BR2_PACKAGE_INTEL_MICROCODE_INSTALL_TARGET),y) define INTEL_MICROCODE_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/lib/firmware/intel-ucode $(INSTALL) -m 0644 -t $(TARGET_DIR)/lib/firmware/intel-ucode \ $(@D)/intel-ucode/* endef else INTEL_MICROCODE_INSTALL_TARGET = NO endif define INTEL_MICROCODE_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_MICROCODE) $(call KCONFIG_ENABLE_OPT,CONFIG_MICROCODE_INTEL) endef $(eval $(generic-package)) ================================================ FILE: package/intltool/0001-perl-5.26-compatibility.patch ================================================ Fix regex errors thrown by Perl 5.26: Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/^(.*)\${ <-- HERE ?([A-Z_]+)}?(.*)$/ at $BUILDROOT/host/usr/bin/intltool-update line 1065. Fetched from: https://github.com/Alexpux/MSYS2-packages/blob/master/intltool/perl-5.22-compatibility.patch Reported upstream: https://bugs.launchpad.net/intltool/+bug/1696658 Signed-off-by: Jörg Krause --- intltool-0.51.0.orig/intltool-update.in 2015-03-09 02:39:54.000000000 +0100 +++ intltool-0.51.0.orig/intltool-update.in 2015-06-19 01:52:07.171228154 +0200 @@ -1062,7 +1062,7 @@ } } - if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/) + if ($str =~ /^(.*)\$\{?([A-Z_]+)}?(.*)$/) { my $rest = $3; my $untouched = $1; @@ -1190,10 +1190,10 @@ $name =~ s/\(+$//g; $version =~ s/\(+$//g; - $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); - $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); - $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); - $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); + $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/); + $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/); + $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/); + $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/); } if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)[,]?([^,\)]+)?/m) @@ -1219,11 +1219,11 @@ $version =~ s/\(+$//g; $bugurl =~ s/\(+$//g if (defined $bugurl); - $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); - $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); - $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); - $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); - $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\${?\w+}?/); + $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/); + $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/); + $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/); + $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/); + $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\$\{?\w+}?/); } # \s makes this not work, why? ================================================ FILE: package/intltool/intltool.hash ================================================ # From https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz/+md5 md5 12e517cac2b57a0121cda351570f1e63 intltool-0.51.0.tar.gz # Locally calculated sha256 67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd intltool-0.51.0.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/intltool/intltool.mk ================================================ ################################################################################ # # intltool # ################################################################################ INTLTOOL_VERSION = 0.51.0 INTLTOOL_SITE = https://launchpad.net/intltool/trunk/$(INTLTOOL_VERSION)/+download INTLTOOL_LICENSE = GPL-2.0+ INTLTOOL_LICENSE_FILES = COPYING HOST_INTLTOOL_DEPENDENCIES = host-gettext host-libxml-parser-perl $(eval $(host-autotools-package)) ================================================ FILE: package/iodine/0001-disable-systemd-and-selinux.patch ================================================ Disable selinux and systemd support since they check for host headers. Signed-off-by: Gustavo Zacarias diff -Nura iodine-0.7.0.orig/src/osflags iodine-0.7.0/src/osflags --- iodine-0.7.0.orig/src/osflags 2015-02-20 14:59:00.799958145 -0300 +++ iodine-0.7.0/src/osflags 2015-02-20 15:05:54.791135141 -0300 @@ -18,8 +18,8 @@ ;; Linux) FLAGS=""; - [ -e /usr/include/selinux/selinux.h ] && FLAGS="$FLAGS -lselinux"; - [ -e /usr/include/systemd/sd-daemon.h ] && FLAGS="$FLAGS -lsystemd-daemon"; + #[ -e /usr/include/selinux/selinux.h ] && FLAGS="$FLAGS -lselinux"; + #[ -e /usr/include/systemd/sd-daemon.h ] && FLAGS="$FLAGS -lsystemd-daemon"; echo $FLAGS; ;; esac @@ -34,8 +34,8 @@ ;; Linux) FLAGS="-D_GNU_SOURCE" - [ -e /usr/include/selinux/selinux.h ] && FLAGS="$FLAGS -DHAVE_SETCON"; - [ -e /usr/include/systemd/sd-daemon.h ] && FLAGS="$FLAGS -DHAVE_SYSTEMD"; + #[ -e /usr/include/selinux/selinux.h ] && FLAGS="$FLAGS -DHAVE_SETCON"; + #[ -e /usr/include/systemd/sd-daemon.h ] && FLAGS="$FLAGS -DHAVE_SYSTEMD"; echo $FLAGS; ;; esac ================================================ FILE: package/iodine/Config.in ================================================ config BR2_PACKAGE_IODINE bool "iodine" select BR2_PACKAGE_ZLIB help iodine lets you tunnel IPv4 data through a DNS server. This can be usable in different situations where internet access is firewalled, but DNS queries are allowed. http://code.kryo.se/iodine/ ================================================ FILE: package/iodine/iodine.hash ================================================ # From http://code.kryo.se/iodine/ md5 fdbf3b81cd69caf5230d76a8b039fd99 iodine-0.7.0.tar.gz # Locally computed sha256 f41a252b2218759aa351270b7ad9791bdd323836b940e35c0614837a5d24dcb7 README ================================================ FILE: package/iodine/iodine.mk ================================================ ################################################################################ # # iodine # ################################################################################ IODINE_VERSION = 0.7.0 IODINE_SITE = http://code.kryo.se/iodine IODINE_DEPENDENCIES = zlib IODINE_LICENSE = MIT IODINE_LICENSE_FILES = README IODINE_CPE_ID_VENDOR = kryo IODINE_SELINUX_MODULES = iodine IODINE_CFLAGS = $(TARGET_CFLAGS) # iodine contains a local implementation of daemon(3) for older # systems, unless __GLIBC__ is defined. Musl does provide it, but # unlike uClibc it doesn't define __GLIBC__. Work around it by # pretending to be glibc as we otherwise end up with symbol conflicts. ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) IODINE_CFLAGS += -D__GLIBC__ endif define IODINE_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) CFLAGS="$(IODINE_CFLAGS)" \ $(MAKE) ARCH=$(BR2_ARCH) -C $(@D) endef define IODINE_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) install DESTDIR="$(TARGET_DIR)" prefix=/usr endef $(eval $(generic-package)) ================================================ FILE: package/iotop/0001-Fix-build-error-with-Python-3.patch ================================================ Status: upstream http://repo.or.cz/w/iotop.git/commit/99c8d7cedce81f17b851954d94bfa73787300599 Signed-off-by: Christophe Vu-Brugier From 99c8d7cedce81f17b851954d94bfa73787300599 Mon Sep 17 00:00:00 2001 From: Christophe Vu-Brugier Date: Fri, 17 Oct 2014 13:49:31 +0200 Subject: [PATCH] Fix build error with Python 3 caused by itervalues() in setup.py The itervalues() method is not available in Python 3. As a consequence, this patch replaces the call to itervalues() in setup.py with a call to values() which works on both Python 2 and Python 3. Signed-off-by: Christophe Vu-Brugier Signed-off-by: Paul Wise --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 7150102..9de6068 100755 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ from iotop.version import VERSION # Dirty hack to make setup.py install the iotop script to sbin/ instead of bin/ # while still honoring the choice of installing into local/ or not. if hasattr(distutils_install, 'INSTALL_SCHEMES'): - for d in distutils_install.INSTALL_SCHEMES.itervalues(): + for d in distutils_install.INSTALL_SCHEMES.values(): if d.get('scripts', '').endswith('/bin'): d['scripts'] = d['scripts'][:-len('/bin')] + '/sbin' -- 2.1.4 ================================================ FILE: package/iotop/Config.in ================================================ comment "iotop depends on python or python3" depends on !BR2_PACKAGE_PYTHON && !BR2_PACKAGE_PYTHON3 config BR2_PACKAGE_IOTOP bool "iotop" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_CURSES if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_CURSES if BR2_PACKAGE_PYTHON3 help iotop does for I/O usage what top does for CPU usage. http://guichaz.free.fr/iotop/ ================================================ FILE: package/iotop/iotop.hash ================================================ # Locally calculated sha256 1a7c02fd3758bb048d8af861c5f8735eb3ee9abadeaa787f27b8af2b1eaee8ce iotop-0.6.tar.gz sha256 c38aee9e3c8c4d5d594ff548a1be05453023016d6286931f6512db215ec1fd42 COPYING ================================================ FILE: package/iotop/iotop.mk ================================================ ################################################################################ # # iotop # ################################################################################ IOTOP_VERSION = 0.6 IOTOP_SITE = http://guichaz.free.fr/iotop/files IOTOP_LICENSE = GPL-2.0+ IOTOP_LICENSE_FILES = COPYING IOTOP_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/iozone/0001-Add-new-targets-for-iozone.patch ================================================ From 5b1e973b2333e838624abf195b3ba9716591f304 Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Sun, 10 Oct 2021 10:15:26 +0200 Subject: [PATCH] Add new targets for iozone: linux-noaio is for linux targets without AIO (use case: uClibc) linux-noth is for linux target without threads or AIO And make largefile support optional via CFLAGS. Signed-off-by: Gustavo Zacarias Signed-off-by: Gilles Talis --- src/current/makefile | 56 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 9 deletions(-) diff --git a/src/current/makefile b/src/current/makefile index 3a54701..3b17b1b 100644 --- a/src/current/makefile +++ b/src/current/makefile @@ -172,10 +172,28 @@ hpux_no_ansi: iozone_hpux_no.o libbif.o # GNU 'C' compiler Linux build with threads, largefiles, async I/O # linux: iozone_linux.o libasync.o libbif.o fileop_linux.o pit_server.o - $(CC) -O3 $(CFLAGS) iozone_linux.o libasync.o libbif.o -lpthread \ + $(CC) $(CFLAGS) $(LDFLAGS) iozone_linux.o libasync.o libbif.o \ + -lpthread -lrt -o iozone + $(CC) $(CFLAGS) -Dlinux fileop_linux.o -o fileop + $(CC) $(CFLAGS) -Dlinux pit_server.o -o pit_server + +# +# GNU 'C' compiler Linux build with threads, largefiles +# +linux-noaio: iozone_linux-noaio.o libbif.o fileop_linux.o pit_server.o + $(CC) $(CFLAGS) $(LDFLAGS) iozone_linux-noaio.o libbif.o \ + -lpthread -lrt -o iozone + $(CC) $(CFLAGS) -Dlinux fileop_linux.o -o fileop + $(CC) $(CFLAGS) -Dlinux pit_server.o -o pit_server + +# +# GNU 'C' compiler Linux build with largefiles +# +linux-noth: iozone_linux-noth.o libbif.o fileop_linux.o pit_server.o + $(CC) $(CFLAGS) $(LDFLAGS) iozone_linux-noth.o libbif.o \ -lrt -o iozone - $(CC) -O3 $(CFLAGS) -Dlinux fileop_linux.o -o fileop - $(CC) -O3 $(CFLAGS) -Dlinux pit_server.o -o pit_server + $(CC) $(CFLAGS) -Dlinux fileop_linux.o -o fileop + $(CC) $(CFLAGS) -Dlinux pit_server.o -o pit_server # # GNU 'C' compiler Linux build for powerpc chip with threads, largefiles, async I/O @@ -841,13 +859,33 @@ iozone_linux.o: iozone.c libbif.c libasync.c @echo "" @echo "Building iozone for Linux" @echo "" - $(CC) -Wmissing-prototypes -Wall -c -O3 -Dunix -DHAVE_ANSIC_C -DASYNC_IO -DHAVE_PREAD \ - -DSHARED_MEM -Dlinux -D_LARGEFILE64_SOURCE $(CFLAGS) iozone.c \ + $(CC) -Wmissing-prototypes -Wall -c -Dunix -DHAVE_ANSIC_C -DASYNC_IO -DHAVE_PREAD \ + -DSHARED_MEM -Dlinux $(CFLAGS) iozone.c \ -DNAME='"linux"' -o iozone_linux.o - $(CC) -Wmissing-prototypes -Wall -c -O3 -Dunix -DHAVE_ANSIC_C -DASYNC_IO -D_LARGEFILE64_SOURCE \ + $(CC) -Wmissing-prototypes -Wall -c -Dunix -DHAVE_ANSIC_C -DASYNC_IO \ + -DSHARED_MEM -Dlinux $(CFLAGS) libbif.c -o libbif.o + $(CC) -Wmissing-prototypes -Wall -c -Dunix -Dlinux -DHAVE_ANSIC_C -DASYNC_IO \ + $(CFLAGS) libasync.c -o libasync.o + +iozone_linux-noaio.o: iozone.c libbif.c + @echo "" + @echo "Building iozone for Linux no AIO" + @echo "" + $(CC) -Wmissing-prototypes -Wall -c -Dunix -DHAVE_ANSIC_C -DHAVE_PREAD \ + -DSHARED_MEM -Dlinux $(CFLAGS) iozone.c \ + -DNAME='"linux"' -o iozone_linux-noaio.o + $(CC) -Wmissing-prototypes -Wall -c -Dunix -DHAVE_ANSIC_C \ + -DSHARED_MEM -Dlinux $(CFLAGS) libbif.c -o libbif.o + +iozone_linux-noth.o: iozone.c libbif.c + @echo "" + @echo "Building iozone for Linux with no threads" + @echo "" + $(CC) -Wmissing-prototypes -Wall -c -Dunix -DHAVE_ANSIC_C -DNO_THREADS -DHAVE_PREAD \ + -DSHARED_MEM -Dlinux $(CFLAGS) iozone.c \ + -DNAME='"linux"' -o iozone_linux-noth.o + $(CC) -Wmissing-prototypes -Wall -c -Dunix -DHAVE_ANSIC_C -DNO_THREADS \ -DSHARED_MEM -Dlinux $(CFLAGS) libbif.c -o libbif.o - $(CC) -Wmissing-prototypes -Wall -c -O3 -Dunix -Dlinux -DHAVE_ANSIC_C -DASYNC_IO \ - -D_LARGEFILE64_SOURCE $(CFLAGS) libasync.c -o libasync.o fileop_AIX.o: fileop.c @echo "" @@ -951,7 +989,7 @@ fileop_linux.o: fileop.c @echo "" @echo "Building fileop for Linux" @echo "" - $(CC) -Wall -c -O3 $(CFLAGS) fileop.c -o fileop_linux.o + $(CC) -Wall -c $(CFLAGS) fileop.c -o fileop_linux.o fileop_openbsd.o: fileop.c @echo "" -- 2.27.0 ================================================ FILE: package/iozone/Config.in ================================================ config BR2_PACKAGE_IOZONE bool "iozone" depends on BR2_USE_MMU # fork() 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 ================================================ FILE: package/iozone/iozone.hash ================================================ # Locally calculated sha256 93c9142d61e6a71ea43b0a266bad7f49f07ce5f5d31b36f8edf4dd386795c483 iozone3_492.tgz ================================================ FILE: package/iozone/iozone.mk ================================================ ################################################################################ # # iozone # ################################################################################ IOZONE_VERSION = 3.492 IOZONE_SOURCE = iozone$(subst .,_,$(IOZONE_VERSION)).tgz 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 # AIO support not available on uClibc, use the linux (non-aio) target. ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) IOZONE_TARGET = linux-noaio else IOZONE_TARGET = linux endif define IOZONE_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) $(IOZONE_TARGET) -C $(@D)/src/current endef define IOZONE_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/src/current/iozone \ $(TARGET_DIR)/usr/bin/iozone $(INSTALL) -D -m 755 $(@D)/src/current/fileop \ $(TARGET_DIR)/usr/bin/fileop endef $(eval $(generic-package)) ================================================ FILE: package/ipcalc/Config.in ================================================ config BR2_PACKAGE_IPCALC bool "ipcalc" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help A modern IPv4/IPv6 ipcalc tool, assisting in network calculations in command line and as a tool for scripts. https://gitlab.com/ipcalc/ipcalc ================================================ FILE: package/ipcalc/ipcalc.hash ================================================ # Locally calculated sha256 dac080c0773cc14c1d6f818899351d2286cace85751dd9dc704944e54c2c3565 ipcalc-1.0.1.tar.bz2 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/ipcalc/ipcalc.mk ================================================ ################################################################################ # # ipcalc # ################################################################################ IPCALC_VERSION = 1.0.1 IPCALC_SITE = $(call gitlab,ipcalc,ipcalc,$(IPCALC_VERSION)) IPCALC_SOURCE = ipcalc-$(IPCALC_VERSION).tar.bz2 IPCALC_LICENSE = GPL-2.0+ IPCALC_LICENSE_FILES = COPYING ifeq ($(BR2_STATIC_LIBS),y) IPCALC_CONF_OPTS += -Duse_runtime_linking=disabled else IPCALC_CONF_OPTS += -Duse_runtime_linking=enabled endif ifeq ($(BR2_PACKAGE_GEOIP),y) IPCALC_CONF_OPTS += -Duse_geoip=enabled IPCALC_DEPENDENCIES += host-pkgconf geoip else IPCALC_CONF_OPTS += -Duse_geoip=disabled endif ifeq ($(BR2_PACKAGE_LIBMAXMINDDB),y) IPCALC_CONF_OPTS += -Duse_maxminddb=enabled IPCALC_DEPENDENCIES += host-pkgconf libmaxminddb else IPCALC_CONF_OPTS += -Duse_maxminddb=disabled endif $(eval $(meson-package)) ================================================ FILE: package/iperf/0001-Fix-build-with-musl-libc.patch ================================================ From 6766ab322a9eb8c73f8276be9cdea356eb124de0 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Thu, 11 Nov 2021 07:58:10 +0200 Subject: [PATCH] Fix build with musl libc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit musl libc defines its own struct ethhdr that conflicts with the kernel define one. The kernel headers provide a way to suppress its struct ethhdr. For that to work the libc headers must precede the kernel. Move the kernel linux/if_tun.h include below libc net/ethernet.h. That fixes the following build failure: In file included from .../arm-buildroot-linux-musleabihf/sysroot/usr/include/net/ethernet.h:10, from ../include/headers.h:117, from Thread.c:72: .../arm-buildroot-linux-musleabihf/sysroot/usr/include/netinet/if_ether.h:116:8: error: redefinition of ‘struct ethhdr’ 116 | struct ethhdr { | ^~~~~~ In file included from .../arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/if_tun.h:20, from ../include/headers.h:110, from Thread.c:72: .../arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/if_ether.h:148:8: note: originally defined here 148 | struct ethhdr { | ^~~~~~ Fixes bug #157. Signed-off-by: Baruch Siach --- Upstream status: sent to Robert McMahon include/headers.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/headers.h b/include/headers.h index 00e0ea0dba42..887490475381 100644 --- a/include/headers.h +++ b/include/headers.h @@ -106,11 +106,6 @@ typedef bool _Bool; #include #endif -#if ((HAVE_TUNTAP_TAP) || (HAVE_TUNTAP_TUN)) -#include -#include -#endif - // AF_PACKET HEADERS #if defined(HAVE_LINUX_FILTER_H) && defined(HAVE_AF_PACKET) @@ -146,6 +141,11 @@ typedef bool _Bool; #define IPV6HDRLEN 40 #endif // HAVE_AF_PACKET +#if ((HAVE_TUNTAP_TAP) || (HAVE_TUNTAP_TUN)) +#include +#include +#endif + #ifdef WIN32 /* Windows config file */ -- 2.33.0 ================================================ FILE: package/iperf/Config.in ================================================ config BR2_PACKAGE_IPERF bool "iperf" depends on BR2_INSTALL_LIBSTDCPP # uses fork() depends on BR2_USE_MMU help Internet Protocol bandwidth measuring tool for measuring TCP/UDP performance. https://sourceforge.net/projects/iperf2/ comment "iperf needs a toolchain w/ C++" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/iperf/iperf.hash ================================================ # From https://sourceforge.net/projects/iperf2/files/ sha1 f1b7835eb74094b1a1849faeafe35b7c362f4ab5 iperf-2.1.4.tar.gz # Locally computed: sha256 062b392e87b8e227aca74fef0a99b04fe0382d4518957041b508a56885b4d4f9 iperf-2.1.4.tar.gz sha256 5f9f5c4feca3347c3b3c0ada8b16b4e6b698aac4e6f016a24adf61a5915336d1 COPYING ================================================ FILE: package/iperf/iperf.mk ================================================ ################################################################################ # # iperf # ################################################################################ IPERF_VERSION = 2.1.4 IPERF_SITE = http://downloads.sourceforge.net/project/iperf2 IPERF_LICENSE = MIT-like IPERF_LICENSE_FILES = COPYING IPERF_CPE_ID_VENDOR = iperf2_project IPERF_CPE_ID_PRODUCT = iperf2 IPERF_CONF_OPTS = \ --disable-web100 $(eval $(autotools-package)) ================================================ FILE: package/iperf3/Config.in ================================================ config BR2_PACKAGE_IPERF3 bool "iperf3" depends on BR2_TOOLCHAIN_HAS_THREADS help iperf is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, protocols, and buffers. For each test it reports the bandwidth, loss, and other parameters. It's a redesign of the NLANR/DAST iperf(2) and is not backward compatible. http://software.es.net/iperf/index.html comment "iperf3 needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/iperf3/iperf3.hash ================================================ # From https://downloads.es.net/pub/iperf/iperf-3.10.1.tar.gz.sha256 sha256 03bc9760cc54a245191d46bfc8edaf8a4750f0e87abca6764486972044d6715a iperf-3.10.1.tar.gz # Locally computed sha256 0e1cb1921904626f0d3e86cacc0e28333140f0f9957267cff0b9d185645743ed LICENSE ================================================ FILE: package/iperf3/iperf3.mk ================================================ ################################################################################ # # iperf3 # ################################################################################ IPERF3_VERSION = 3.10.1 IPERF3_SITE = https://downloads.es.net/pub/iperf IPERF3_SOURCE = iperf-$(IPERF3_VERSION).tar.gz IPERF3_LICENSE = BSD-3-Clause, BSD-2-Clause, MIT IPERF3_LICENSE_FILES = LICENSE IPERF3_CPE_ID_VENDOR = es IPERF3_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" ifeq ($(BR2_PACKAGE_OPENSSL),y) # We intentionally don't pass --with-openssl, otherwise pkg-config is # not used, and indirect libraries are not picked up when static # linking. IPERF3_DEPENDENCIES += host-pkgconf openssl else IPERF3_CONF_OPTS += --without-openssl endif $(eval $(autotools-package)) ================================================ FILE: package/ipmitool/0001-Fix-missing-stddef.h-include.patch ================================================ From 04d489936191e685123978a1ca370f9cc30e6a06 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 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/imb/imbapi.h b/src/plugins/imb/imbapi.h index 6ba4121..6b39b47 100644 --- a/src/plugins/imb/imbapi.h +++ b/src/plugins/imb/imbapi.h @@ -33,6 +33,9 @@ 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 + #ifndef _WINDEFS_H #define _WINDEFS_H #ifndef FALSE -- 2.10.2 ================================================ FILE: package/ipmitool/0002-ID-461-OpenSSL-1.1-compatibility-error-storage-size-.patch ================================================ From 1ad09f56d461e78ad83c77b654fb65467a68388b Mon Sep 17 00:00:00 2001 From: Dennis Schridde Date: Wed, 30 Nov 2016 17:33:00 +0100 Subject: [PATCH] ID:461 - OpenSSL 1.1 compatibility - "error: storage size of 'ctx' isn't known" In OpenSSL 1.1 EVP_CIPHER_CTX became opaque, cf. `man 3ssl EVP_EncryptInit` Fixes: ID:461 Upstream: https://github.com/ipmitool/ipmitool/commit/b57487e360916ab3eaa50aa6d021c73b6337a4a0 Signed-off-by: Matthew Weber --- src/plugins/lanplus/lanplus_crypt_impl.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c index d5fac37..3c0df23 100644 --- a/src/plugins/lanplus/lanplus_crypt_impl.c +++ b/src/plugins/lanplus/lanplus_crypt_impl.c @@ -164,10 +164,10 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv, uint8_t * output, uint32_t * bytes_written) { - EVP_CIPHER_CTX ctx; - EVP_CIPHER_CTX_init(&ctx); - EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv); - EVP_CIPHER_CTX_set_padding(&ctx, 0); + EVP_CIPHER_CTX* ctx; + EVP_CIPHER_CTX_init(ctx); + EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); + EVP_CIPHER_CTX_set_padding(ctx, 0); *bytes_written = 0; @@ -191,7 +191,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv, assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0); - if(!EVP_EncryptUpdate(&ctx, output, (int *)bytes_written, input, input_length)) + if(!EVP_EncryptUpdate(ctx, output, (int *)bytes_written, input, input_length)) { /* Error */ *bytes_written = 0; @@ -201,7 +201,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv, { uint32_t tmplen; - if(!EVP_EncryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen)) + if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen)) { *bytes_written = 0; return; /* Error */ @@ -210,7 +210,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv, { /* Success */ *bytes_written += tmplen; - EVP_CIPHER_CTX_cleanup(&ctx); + EVP_CIPHER_CTX_cleanup(ctx); } } } @@ -239,10 +239,10 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv, uint8_t * output, uint32_t * bytes_written) { - EVP_CIPHER_CTX ctx; - EVP_CIPHER_CTX_init(&ctx); - EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv); - EVP_CIPHER_CTX_set_padding(&ctx, 0); + EVP_CIPHER_CTX* ctx; + EVP_CIPHER_CTX_init(ctx); + EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); + EVP_CIPHER_CTX_set_padding(ctx, 0); if (verbose >= 5) @@ -266,7 +266,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv, assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0); - if (!EVP_DecryptUpdate(&ctx, output, (int *)bytes_written, input, input_length)) + if (!EVP_DecryptUpdate(ctx, output, (int *)bytes_written, input, input_length)) { /* Error */ lprintf(LOG_DEBUG, "ERROR: decrypt update failed"); @@ -277,7 +277,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv, { uint32_t tmplen; - if (!EVP_DecryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen)) + if (!EVP_DecryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen)) { char buffer[1000]; ERR_error_string(ERR_get_error(), buffer); @@ -290,7 +290,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv, { /* Success */ *bytes_written += tmplen; - EVP_CIPHER_CTX_cleanup(&ctx); + EVP_CIPHER_CTX_cleanup(ctx); } } -- 1.9.1 ================================================ FILE: package/ipmitool/0003-ID-461-Make-compiler-happier-about-changes-related-t.patch ================================================ From ccc85e4fd67423e770901ec59975e84b07eed883 Mon Sep 17 00:00:00 2001 From: Zdenek Styblik Date: Sun, 15 Jan 2017 15:11:25 +0100 Subject: [PATCH] ID:461 - Make compiler happier about changes related to OpenSSL 1.1 Complaint was that ctx isn't initialized. Upstream: https://github.com/ipmitool/ipmitool/commit/77fe5635037ebaf411cae46cf5045ca819b5c145 Signed-off-by: Matthew Weber --- src/plugins/lanplus/lanplus_crypt_impl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c index 3c0df23..d12d0e3 100644 --- a/src/plugins/lanplus/lanplus_crypt_impl.c +++ b/src/plugins/lanplus/lanplus_crypt_impl.c @@ -164,7 +164,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv, uint8_t * output, uint32_t * bytes_written) { - EVP_CIPHER_CTX* ctx; + EVP_CIPHER_CTX *ctx = NULL; EVP_CIPHER_CTX_init(ctx); EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); EVP_CIPHER_CTX_set_padding(ctx, 0); @@ -239,7 +239,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv, uint8_t * output, uint32_t * bytes_written) { - EVP_CIPHER_CTX* ctx; + EVP_CIPHER_CTX *ctx = NULL; EVP_CIPHER_CTX_init(ctx); EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); EVP_CIPHER_CTX_set_padding(ctx, 0); -- 1.9.1 ================================================ FILE: package/ipmitool/0004-ID-480-ipmitool-coredumps-in-EVP_CIPHER_CTX_init.patch ================================================ From 72df3eadb27161a292f35b1d97178f70f41e50f6 Mon Sep 17 00:00:00 2001 From: Zdenek Styblik Date: Sun, 12 Mar 2017 14:00:35 +0100 Subject: [PATCH] ID:480 - ipmitool coredumps in EVP_CIPHER_CTX_init IPMI tool coredumps due to changes introduced in ID:461. This shouldn't be surprise as a NULL pointer is passed to init. Commit addresses this issue by calling EVP_CIPHER_CTX_new() instead of EVP_CIPHER_CTX_init(), which is deprecated, and by checking return value of call to former function. Upstream: https://github.com/ipmitool/ipmitool/commit/f004b4b7197fc83e7d47ec8cbcaefffa9a922717 Signed-off-by: Matthew Weber --- src/plugins/lanplus/lanplus_crypt_impl.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c index d12d0e3..0e330c1 100644 --- a/src/plugins/lanplus/lanplus_crypt_impl.c +++ b/src/plugins/lanplus/lanplus_crypt_impl.c @@ -165,10 +165,13 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv, uint32_t * bytes_written) { EVP_CIPHER_CTX *ctx = NULL; - EVP_CIPHER_CTX_init(ctx); + ctx = EVP_CIPHER_CTX_new(); + if (ctx == NULL) { + *bytes_written = 0; + return; + } EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); EVP_CIPHER_CTX_set_padding(ctx, 0); - *bytes_written = 0; @@ -240,11 +243,14 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv, uint32_t * bytes_written) { EVP_CIPHER_CTX *ctx = NULL; - EVP_CIPHER_CTX_init(ctx); + ctx = EVP_CIPHER_CTX_new(); + if (ctx == NULL) { + *bytes_written = 0; + return; + } EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); EVP_CIPHER_CTX_set_padding(ctx, 0); - if (verbose >= 5) { printbuf(iv, 16, "decrypting with this IV"); -- 1.9.1 ================================================ FILE: package/ipmitool/0005-ID-480-Call-EVP_CIPHER_CTX_free-instead-of-EVP_CIPHE.patch ================================================ From d9d6e0bff831da03f4448f0cdb82fc3d143662c8 Mon Sep 17 00:00:00 2001 From: Holger Liebig Date: Tue, 4 Apr 2017 20:43:05 +0200 Subject: [PATCH] ID:480 - Call EVP_CIPHER_CTX_free() instead of EVP_CIPHER_CTX_cleanup() Call EVP_CIPHER_CTX_free() instead of EVP_CIPHER_CTX_cleanup() to fix memory leak. Upstream: https://github.com/ipmitool/ipmitool/commit/1664902525a1c3771b4d8b3ccab7ea1ba6b2bdd1 Signed-off-by: Matthew Weber --- src/plugins/lanplus/lanplus_crypt_impl.c | 44 +++++++++++++++++--------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c index 0e330c1..9652a5e 100644 --- a/src/plugins/lanplus/lanplus_crypt_impl.c +++ b/src/plugins/lanplus/lanplus_crypt_impl.c @@ -165,13 +165,6 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv, uint32_t * bytes_written) { EVP_CIPHER_CTX *ctx = NULL; - ctx = EVP_CIPHER_CTX_new(); - if (ctx == NULL) { - *bytes_written = 0; - return; - } - EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); - EVP_CIPHER_CTX_set_padding(ctx, 0); *bytes_written = 0; @@ -185,6 +178,14 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv, printbuf(input, input_length, "encrypting this data"); } + ctx = EVP_CIPHER_CTX_new(); + if (ctx == NULL) { + lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed"); + return; + } + EVP_CIPHER_CTX_init(ctx); + EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); + EVP_CIPHER_CTX_set_padding(ctx, 0); /* * The default implementation adds a whole block of padding if the input @@ -198,7 +199,6 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv, { /* Error */ *bytes_written = 0; - return; } else { @@ -206,16 +206,17 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv, if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen)) { + /* Error */ *bytes_written = 0; - return; /* Error */ } else { /* Success */ *bytes_written += tmplen; - EVP_CIPHER_CTX_cleanup(ctx); } } + /* performs cleanup and free */ + EVP_CIPHER_CTX_free(ctx); } @@ -243,13 +244,6 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv, uint32_t * bytes_written) { EVP_CIPHER_CTX *ctx = NULL; - ctx = EVP_CIPHER_CTX_new(); - if (ctx == NULL) { - *bytes_written = 0; - return; - } - EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); - EVP_CIPHER_CTX_set_padding(ctx, 0); if (verbose >= 5) { @@ -258,12 +252,20 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv, printbuf(input, input_length, "decrypting this data"); } - *bytes_written = 0; if (input_length == 0) return; + ctx = EVP_CIPHER_CTX_new(); + if (ctx == NULL) { + lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed"); + return; + } + EVP_CIPHER_CTX_init(ctx); + EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); + EVP_CIPHER_CTX_set_padding(ctx, 0); + /* * The default implementation adds a whole block of padding if the input * data is perfectly aligned. We would like to keep that from happening. @@ -277,7 +279,6 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv, /* Error */ lprintf(LOG_DEBUG, "ERROR: decrypt update failed"); *bytes_written = 0; - return; } else { @@ -285,20 +286,21 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv, if (!EVP_DecryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen)) { + /* Error */ char buffer[1000]; ERR_error_string(ERR_get_error(), buffer); lprintf(LOG_DEBUG, "the ERR error %s", buffer); lprintf(LOG_DEBUG, "ERROR: decrypt final failed"); *bytes_written = 0; - return; /* Error */ } else { /* Success */ *bytes_written += tmplen; - EVP_CIPHER_CTX_cleanup(ctx); } } + /* performs cleanup and free */ + EVP_CIPHER_CTX_free(ctx); if (verbose >= 5) { -- 1.9.1 ================================================ FILE: package/ipmitool/0006-lanplus-Fix-compile-with-deprecated-APIs-disabled.patch ================================================ From fc2136969adfb926eed610b8ed0a74b2030b48ed Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Tue, 21 Aug 2018 19:29:07 -0700 Subject: [PATCH] lanplus: Fix compile with deprecated APIs disabled. From the man page: EVP_CIPHER_CTX was made opaque in OpenSSL 1.1.0. As a result, EVP_CIPHER_CTX_reset() appeared and EVP_CIPHER_CTX_cleanup() disappeared. EVP_CIPHER_CTX_init() remains as an alias for EVP_CIPHER_CTX_reset(). Upstream: https://github.com/ipmitool/ipmitool/commit/a8862d7508fb138b1c286eea958700cca63c9476 Signed-off-by: Rosen Penev Signed-off-by: Matthew Weber --- src/plugins/lanplus/lanplus_crypt_impl.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c index 9652a5e..e94401e 100644 --- a/src/plugins/lanplus/lanplus_crypt_impl.c +++ b/src/plugins/lanplus/lanplus_crypt_impl.c @@ -183,7 +183,11 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv, lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed"); return; } +#if OPENSSL_VERSION_NUMBER < 0x10100000L EVP_CIPHER_CTX_init(ctx); +#else + EVP_CIPHER_CTX_reset(ctx); +#endif EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); EVP_CIPHER_CTX_set_padding(ctx, 0); @@ -262,7 +266,11 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv, lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed"); return; } +#if OPENSSL_VERSION_NUMBER < 0x10100000L EVP_CIPHER_CTX_init(ctx); +#else + EVP_CIPHER_CTX_reset(ctx); +#endif EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); EVP_CIPHER_CTX_set_padding(ctx, 0); -- 1.9.1 ================================================ FILE: package/ipmitool/0007-hpmfwupg-move-variable-definition-to-c-file.patch ================================================ From c3939dac2c060651361fc71516806f9ab8c38901 Mon Sep 17 00:00:00 2001 From: Vaclav Dolezal Date: Thu, 23 Jan 2020 11:26:32 +0100 Subject: [PATCH] hpmfwupg: move variable definition to .c file Signed-off-by: Vaclav Dolezal [Retrieved from: https://github.com/ipmitool/ipmitool/commit/c3939dac2c060651361fc71516806f9ab8c38901] Signed-off-by: Fabrice Fontaine --- include/ipmitool/ipmi_hpmfwupg.h | 2 +- lib/ipmi_hpmfwupg.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/ipmitool/ipmi_hpmfwupg.h b/include/ipmitool/ipmi_hpmfwupg.h index de65292b..07f597be 100644 --- a/include/ipmitool/ipmi_hpmfwupg.h +++ b/include/ipmitool/ipmi_hpmfwupg.h @@ -800,7 +800,7 @@ typedef struct _VERSIONINFO { char descString[HPMFWUPG_DESC_STRING_LENGTH + 1]; }VERSIONINFO, *PVERSIONINFO; -VERSIONINFO gVersionInfo[HPMFWUPG_COMPONENT_ID_MAX]; +extern VERSIONINFO gVersionInfo[HPMFWUPG_COMPONENT_ID_MAX]; #define TARGET_VER (0x01) #define ROLLBACK_VER (0x02) diff --git a/lib/ipmi_hpmfwupg.c b/lib/ipmi_hpmfwupg.c index 4aa8cecd..d63d2c15 100644 --- a/lib/ipmi_hpmfwupg.c +++ b/lib/ipmi_hpmfwupg.c @@ -50,6 +50,8 @@ extern int verbose; +VERSIONINFO gVersionInfo[HPMFWUPG_COMPONENT_ID_MAX]; + int HpmfwupgUpgrade(struct ipmi_intf *intf, char *imageFilename, int activate, int, int); int HpmfwupgValidateImageIntegrity(struct HpmfwupgUpgradeCtx *pFwupgCtx); ================================================ FILE: package/ipmitool/0008-fru-Fix-buffer-overflow-vulnerabilities.patch ================================================ From d615cb6c39d401a569941be2a615176191afa7ac Mon Sep 17 00:00:00 2001 From: Chrostoper Ertl Date: Thu, 28 Nov 2019 16:33:59 +0000 Subject: [PATCH] fru: Fix buffer overflow vulnerabilities Partial fix for CVE-2020-5208, see https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp The `read_fru_area_section` function only performs size validation of requested read size, and falsely assumes that the IPMI message will not respond with more than the requested amount of data; it uses the unvalidated response size to copy into `frubuf`. If the response is larger than the request, this can result in overflowing the buffer. The same issue affects the `read_fru_area` function. [Retrieve from https://github.com/ipmitool/ipmitool/commit/e824c23316ae50beb7f7488f2055ac65e8b341f2] Signed-off-by: Heiko Thiery --- lib/ipmi_fru.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c index cf00eff..af99aa9 100644 --- a/lib/ipmi_fru.c +++ b/lib/ipmi_fru.c @@ -615,7 +615,10 @@ int read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id, uint32_t offset, uint32_t length, uint8_t *frubuf) { - uint32_t off = offset, tmp, finish; + uint32_t off = offset; + uint32_t tmp; + uint32_t finish; + uint32_t size_left_in_buffer; struct ipmi_rs * rsp; struct ipmi_rq req; uint8_t msg_data[4]; @@ -628,10 +631,12 @@ read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id, finish = offset + length; if (finish > fru->size) { + memset(frubuf + fru->size, 0, length - fru->size); finish = fru->size; lprintf(LOG_NOTICE, "Read FRU Area length %d too large, " "Adjusting to %d", offset + length, finish - offset); + length = finish - offset; } memset(&req, 0, sizeof(req)); @@ -667,6 +672,7 @@ read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id, } } + size_left_in_buffer = length; do { tmp = fru->access ? off >> 1 : off; msg_data[0] = id; @@ -707,9 +713,18 @@ read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id, } tmp = fru->access ? rsp->data[0] << 1 : rsp->data[0]; + if(rsp->data_len < 1 + || tmp > rsp->data_len - 1 + || tmp > size_left_in_buffer) + { + printf(" Not enough buffer size"); + return -1; + } + memcpy(frubuf, rsp->data + 1, tmp); off += tmp; frubuf += tmp; + size_left_in_buffer -= tmp; /* sometimes the size returned in the Info command * is too large. return 0 so higher level function * still attempts to parse what was returned */ @@ -742,7 +757,9 @@ read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id, uint32_t offset, uint32_t length, uint8_t *frubuf) { static uint32_t fru_data_rqst_size = 20; - uint32_t off = offset, tmp, finish; + uint32_t off = offset; + uint32_t tmp, finish; + uint32_t size_left_in_buffer; struct ipmi_rs * rsp; struct ipmi_rq req; uint8_t msg_data[4]; @@ -755,10 +772,12 @@ read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id, finish = offset + length; if (finish > fru->size) { + memset(frubuf + fru->size, 0, length - fru->size); finish = fru->size; lprintf(LOG_NOTICE, "Read FRU Area length %d too large, " "Adjusting to %d", offset + length, finish - offset); + length = finish - offset; } memset(&req, 0, sizeof(req)); @@ -773,6 +792,8 @@ read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id, if (fru->access && fru_data_rqst_size > 16) #endif fru_data_rqst_size = 16; + + size_left_in_buffer = length; do { tmp = fru->access ? off >> 1 : off; msg_data[0] = id; @@ -804,8 +825,16 @@ read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id, } tmp = fru->access ? rsp->data[0] << 1 : rsp->data[0]; + if(rsp->data_len < 1 + || tmp > rsp->data_len - 1 + || tmp > size_left_in_buffer) + { + printf(" Not enough buffer size"); + return -1; + } memcpy((frubuf + off)-offset, rsp->data + 1, tmp); off += tmp; + size_left_in_buffer -= tmp; /* sometimes the size returned in the Info command * is too large. return 0 so higher level function -- 2.20.1 ================================================ FILE: package/ipmitool/0009-fru-Fix-buffer-overflow-in-ipmi_spd_print_fru.patch ================================================ From 879f57c3b1ff17b1ca0dbdc8aac9c7a814e876fc Mon Sep 17 00:00:00 2001 From: Chrostoper Ertl Date: Thu, 28 Nov 2019 16:44:18 +0000 Subject: [PATCH] fru: Fix buffer overflow in ipmi_spd_print_fru Partial fix for CVE-2020-5208, see https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp The `ipmi_spd_print_fru` function has a similar issue as the one fixed by the previous commit in `read_fru_area_section`. An initial request is made to get the `fru.size`, which is used as the size for the allocation of `spd_data`. Inside a loop, further requests are performed to get the copy sizes which are not checked before being used as the size for a copy into the buffer. [Retrieve from: https://github.com/ipmitool/ipmitool/commit/840fb1cbb4fb365cb9797300e3374d4faefcdb10] Signed-off-by: Heiko Thiery --- lib/dimm_spd.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/dimm_spd.c b/lib/dimm_spd.c index 41e30db..68f3b4f 100644 --- a/lib/dimm_spd.c +++ b/lib/dimm_spd.c @@ -1621,7 +1621,7 @@ ipmi_spd_print_fru(struct ipmi_intf * intf, uint8_t id) struct ipmi_rq req; struct fru_info fru; uint8_t *spd_data, msg_data[4]; - int len, offset; + uint32_t len, offset; msg_data[0] = id; @@ -1697,6 +1697,13 @@ ipmi_spd_print_fru(struct ipmi_intf * intf, uint8_t id) } len = rsp->data[0]; + if(rsp->data_len < 1 + || len > rsp->data_len - 1 + || len > fru.size - offset) + { + printf(" Not enough buffer size"); + return -1; + } memcpy(&spd_data[offset], rsp->data + 1, len); offset += len; } while (offset < fru.size); -- 2.20.1 ================================================ FILE: package/ipmitool/0010-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch ================================================ From cd785a7fe4f42ab59bcefcf01b9175f039af29b5 Mon Sep 17 00:00:00 2001 From: Chrostoper Ertl Date: Thu, 28 Nov 2019 16:51:49 +0000 Subject: [PATCH] session: Fix buffer overflow in ipmi_get_session_info Partial fix for CVE-2020-5208, see https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp The `ipmi_get_session_info` function does not properly check the response `data_len`, which is used as a copy size, allowing stack buffer overflow. [Retrieve from: https://github.com/ipmitool/ipmitool/commit/41d7026946fafbd4d1ec0bcaca3ea30a6e8eed22] Signed-off-by: Heiko Thiery --- lib/ipmi_session.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/ipmi_session.c b/lib/ipmi_session.c index 141f0f4..b9af1fd 100644 --- a/lib/ipmi_session.c +++ b/lib/ipmi_session.c @@ -309,8 +309,10 @@ ipmi_get_session_info(struct ipmi_intf * intf, } else { - memcpy(&session_info, rsp->data, rsp->data_len); - print_session_info(&session_info, rsp->data_len); + memcpy(&session_info, rsp->data, + __min(rsp->data_len, sizeof(session_info))); + print_session_info(&session_info, + __min(rsp->data_len, sizeof(session_info))); } break; @@ -341,8 +343,10 @@ ipmi_get_session_info(struct ipmi_intf * intf, break; } - memcpy(&session_info, rsp->data, rsp->data_len); - print_session_info(&session_info, rsp->data_len); + memcpy(&session_info, rsp->data, + __min(rsp->data_len, sizeof(session_info))); + print_session_info(&session_info, + __min(rsp->data_len, sizeof(session_info))); } while (i <= session_info.session_slot_count); break; -- 2.20.1 ================================================ FILE: package/ipmitool/0011-channel-Fix-buffer-overflow.patch ================================================ From 1d479fc61feacc64adea64da9601f3dfcf6f74b3 Mon Sep 17 00:00:00 2001 From: Chrostoper Ertl Date: Thu, 28 Nov 2019 16:56:38 +0000 Subject: [PATCH] channel: Fix buffer overflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Partial fix for CVE-2020-5208, see https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp The `ipmi_get_channel_cipher_suites` function does not properly check the final response’s `data_len`, which can lead to stack buffer overflow on the final copy. [Retrieve from: https://github.com/ipmitool/ipmitool/commit/9452be87181a6e83cfcc768b3ed8321763db50e4 The patch is slightly modified manually. The define (MAX_CIPHER_SUITE_DATA_LEN) was introduced upstream in another patch. Replace the define by the value 0x10.] Signed-off-by: Heiko Thiery --- lib/ipmi_channel.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/ipmi_channel.c b/lib/ipmi_channel.c index fab2e54..59ac227 100644 --- a/lib/ipmi_channel.c +++ b/lib/ipmi_channel.c @@ -413,7 +413,10 @@ ipmi_get_channel_cipher_suites(struct ipmi_intf *intf, const char *payload_type, lprintf(LOG_ERR, "Unable to Get Channel Cipher Suites"); return -1; } - if (rsp->ccode > 0) { + if (rsp->ccode + || rsp->data_len < 1 + || rsp->data_len > sizeof(uint8_t) + 0x10) + { lprintf(LOG_ERR, "Get Channel Cipher Suites failed: %s", val2str(rsp->ccode, completion_code_vals)); return -1; -- 2.20.1 ================================================ FILE: package/ipmitool/0012-lanp-Fix-buffer-overflows-in-get_lan_param_select.patch ================================================ From ceebf5998b71e11c81133680560b498977d3d3cd Mon Sep 17 00:00:00 2001 From: Chrostoper Ertl Date: Thu, 28 Nov 2019 17:06:39 +0000 Subject: [PATCH] lanp: Fix buffer overflows in get_lan_param_select MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Partial fix for CVE-2020-5208, see https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp The `get_lan_param_select` function is missing a validation check on the response’s `data_len`, which it then returns to caller functions, where stack buffer overflow can occur. [Retrieve from: https://github.com/ipmitool/ipmitool/commit/d45572d71e70840e0d4c50bf48218492b79c1a10] Signed-off-by: Heiko Thiery --- lib/ipmi_lanp.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/ipmi_lanp.c b/lib/ipmi_lanp.c index 65d881b..022c7f1 100644 --- a/lib/ipmi_lanp.c +++ b/lib/ipmi_lanp.c @@ -1809,7 +1809,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert, if (p == NULL) { return (-1); } - memcpy(data, p->data, p->data_len); + memcpy(data, p->data, __min(p->data_len, sizeof(data))); /* set new ipaddr */ memcpy(data+3, temp, 4); printf("Setting LAN Alert %d IP Address to %d.%d.%d.%d\n", alert, @@ -1824,7 +1824,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert, if (p == NULL) { return (-1); } - memcpy(data, p->data, p->data_len); + memcpy(data, p->data, __min(p->data_len, sizeof(data))); /* set new macaddr */ memcpy(data+7, temp, 6); printf("Setting LAN Alert %d MAC Address to " @@ -1838,7 +1838,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert, if (p == NULL) { return (-1); } - memcpy(data, p->data, p->data_len); + memcpy(data, p->data, __min(p->data_len, sizeof(data))); if (strncasecmp(argv[1], "def", 3) == 0 || strncasecmp(argv[1], "default", 7) == 0) { @@ -1864,7 +1864,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert, if (p == NULL) { return (-1); } - memcpy(data, p->data, p->data_len); + memcpy(data, p->data, __min(p->data_len, sizeof(data))); if (strncasecmp(argv[1], "on", 2) == 0 || strncasecmp(argv[1], "yes", 3) == 0) { @@ -1889,7 +1889,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert, if (p == NULL) { return (-1); } - memcpy(data, p->data, p->data_len); + memcpy(data, p->data, __min(p->data_len, sizeof(data))); if (strncasecmp(argv[1], "pet", 3) == 0) { printf("Setting LAN Alert %d destination to PET Trap\n", alert); @@ -1917,7 +1917,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert, if (p == NULL) { return (-1); } - memcpy(data, p->data, p->data_len); + memcpy(data, p->data, __min(p->data_len, sizeof(data))); if (str2uchar(argv[1], &data[2]) != 0) { lprintf(LOG_ERR, "Invalid time: %s", argv[1]); @@ -1933,7 +1933,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert, if (p == NULL) { return (-1); } - memcpy(data, p->data, p->data_len); + memcpy(data, p->data, __min(p->data_len, sizeof(data))); if (str2uchar(argv[1], &data[3]) != 0) { lprintf(LOG_ERR, "Invalid retry: %s", argv[1]); -- 2.20.1 ================================================ FILE: package/ipmitool/0013-fru-sdr-Fix-id_string-buffer-overflows.patch ================================================ From bf3ded3a474d85da99eb717acdcd8ff4f89f9879 Mon Sep 17 00:00:00 2001 From: Chrostoper Ertl Date: Thu, 28 Nov 2019 17:13:45 +0000 Subject: [PATCH] fru, sdr: Fix id_string buffer overflows Final part of the fixes for CVE-2020-5208, see https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp 9 variants of stack buffer overflow when parsing `id_string` field of SDR records returned from `CMD_GET_SDR` command. SDR record structs have an `id_code` field, and an `id_string` `char` array. The length of `id_string` is calculated as `(id_code & 0x1f) + 1`, which can be larger than expected 16 characters (if `id_code = 0xff`, then length will be `(0xff & 0x1f) + 1 = 32`). In numerous places, this can cause stack buffer overflow when copying into fixed buffer of size `17` bytes from this calculated length. [Retrieve from: https://github.com/ipmitool/ipmitool/commit/7ccea283dd62a05a320c1921e3d8d71a87772637] Signed-off-by: Heiko Thiery --- lib/ipmi_fru.c | 2 +- lib/ipmi_sdr.c | 40 ++++++++++++++++++++++++---------------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c index af99aa9..98bc984 100644 --- a/lib/ipmi_fru.c +++ b/lib/ipmi_fru.c @@ -3062,7 +3062,7 @@ ipmi_fru_print(struct ipmi_intf * intf, struct sdr_record_fru_locator * fru) return 0; memset(desc, 0, sizeof(desc)); - memcpy(desc, fru->id_string, fru->id_code & 0x01f); + memcpy(desc, fru->id_string, __min(fru->id_code & 0x01f, sizeof(desc))); desc[fru->id_code & 0x01f] = 0; printf("FRU Device Description : %s (ID %d)\n", desc, fru->device_id); diff --git a/lib/ipmi_sdr.c b/lib/ipmi_sdr.c index 2a9cbe3..62aac08 100644 --- a/lib/ipmi_sdr.c +++ b/lib/ipmi_sdr.c @@ -2084,7 +2084,7 @@ ipmi_sdr_print_sensor_eventonly(struct ipmi_intf *intf, return -1; memset(desc, 0, sizeof (desc)); - snprintf(desc, (sensor->id_code & 0x1f) + 1, "%s", sensor->id_string); + snprintf(desc, sizeof(desc), "%.*s", (sensor->id_code & 0x1f) + 1, sensor->id_string); if (verbose) { printf("Sensor ID : %s (0x%x)\n", @@ -2135,7 +2135,7 @@ ipmi_sdr_print_sensor_mc_locator(struct ipmi_intf *intf, return -1; memset(desc, 0, sizeof (desc)); - snprintf(desc, (mc->id_code & 0x1f) + 1, "%s", mc->id_string); + snprintf(desc, sizeof(desc), "%.*s", (mc->id_code & 0x1f) + 1, mc->id_string); if (verbose == 0) { if (csv_output) @@ -2228,7 +2228,7 @@ ipmi_sdr_print_sensor_generic_locator(struct ipmi_intf *intf, char desc[17]; memset(desc, 0, sizeof (desc)); - snprintf(desc, (dev->id_code & 0x1f) + 1, "%s", dev->id_string); + snprintf(desc, sizeof(desc), "%.*s", (dev->id_code & 0x1f) + 1, dev->id_string); if (!verbose) { if (csv_output) @@ -2285,7 +2285,7 @@ ipmi_sdr_print_sensor_fru_locator(struct ipmi_intf *intf, char desc[17]; memset(desc, 0, sizeof (desc)); - snprintf(desc, (fru->id_code & 0x1f) + 1, "%s", fru->id_string); + snprintf(desc, sizeof(desc), "%.*s", (fru->id_code & 0x1f) + 1, fru->id_string); if (!verbose) { if (csv_output) @@ -2489,35 +2489,43 @@ ipmi_sdr_print_name_from_rawentry(struct ipmi_intf *intf, uint16_t id, int rc =0; char desc[17]; + const char *id_string; + uint8_t id_code; memset(desc, ' ', sizeof (desc)); switch ( type) { case SDR_RECORD_TYPE_FULL_SENSOR: record.full = (struct sdr_record_full_sensor *) raw; - snprintf(desc, (record.full->id_code & 0x1f) +1, "%s", - (const char *)record.full->id_string); + id_code = record.full->id_code; + id_string = record.full->id_string; break; + case SDR_RECORD_TYPE_COMPACT_SENSOR: record.compact = (struct sdr_record_compact_sensor *) raw ; - snprintf(desc, (record.compact->id_code & 0x1f) +1, "%s", - (const char *)record.compact->id_string); + id_code = record.compact->id_code; + id_string = record.compact->id_string; break; + case SDR_RECORD_TYPE_EVENTONLY_SENSOR: record.eventonly = (struct sdr_record_eventonly_sensor *) raw ; - snprintf(desc, (record.eventonly->id_code & 0x1f) +1, "%s", - (const char *)record.eventonly->id_string); - break; + id_code = record.eventonly->id_code; + id_string = record.eventonly->id_string; + break; + case SDR_RECORD_TYPE_MC_DEVICE_LOCATOR: record.mcloc = (struct sdr_record_mc_locator *) raw ; - snprintf(desc, (record.mcloc->id_code & 0x1f) +1, "%s", - (const char *)record.mcloc->id_string); + id_code = record.mcloc->id_code; + id_string = record.mcloc->id_string; break; + default: rc = -1; - break; - } + } + if (!rc) { + snprintf(desc, sizeof(desc), "%.*s", (id_code & 0x1f) + 1, id_string); + } - lprintf(LOG_INFO, "ID: 0x%04x , NAME: %-16s", id, desc); + lprintf(LOG_INFO, "ID: 0x%04x , NAME: %-16s", id, desc); return rc; } -- 2.20.1 ================================================ FILE: package/ipmitool/Config.in ================================================ config BR2_PACKAGE_IPMITOOL bool "ipmitool" depends on BR2_USE_MMU # fork() help IPMItool provides a simple command-line interface to IPMI-enabled devices. http://sourceforge.net/projects/ipmitool/ if BR2_PACKAGE_IPMITOOL config BR2_PACKAGE_IPMITOOL_LANPLUS bool "enable lanplus interface" select BR2_PACKAGE_OPENSSL help Enables the IPMI v2.0 RMCP+ LAN interface typically used to send IPMI commands to the BMC of a remote server. Not needed if you only want to communicate with the local BMC of your device using the OpenIPMI ipmi_si kernel module, or if using the legacy IPMI v1.5 RMCP LAN interface. config BR2_PACKAGE_IPMITOOL_USB bool "enable usb interface" help Enables the IPMI USB interface typically used to send inband IPMI commands to the BMC of a server. config BR2_PACKAGE_IPMITOOL_IPMIEVD bool "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 ================================================ FILE: package/ipmitool/ipmitool.hash ================================================ # Locally computed: sha256 0c1ba3b1555edefb7c32ae8cd6a3e04322056bc087918f07189eeedfc8b81e01 ipmitool-1.8.18.tar.bz2 sha256 b7e2382a8be43b5f6cb092f2d2bda163bf1a1938be9300f821a845cbcd535f56 COPYING ================================================ FILE: package/ipmitool/ipmitool.mk ================================================ ################################################################################ # # ipmitool # ################################################################################ IPMITOOL_VERSION = 1.8.18 IPMITOOL_SOURCE = ipmitool-$(IPMITOOL_VERSION).tar.bz2 IPMITOOL_SITE = http://downloads.sourceforge.net/project/ipmitool/ipmitool/$(IPMITOOL_VERSION) IPMITOOL_LICENSE = BSD-3-Clause IPMITOOL_LICENSE_FILES = COPYING IPMITOOL_CPE_ID_VENDOR = ipmitool_project # 0008-fru-Fix-buffer-overflow-vulnerabilities.patch # 0009-fru-Fix-buffer-overflow-in-ipmi_spd_print_fru.patch # 0010-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch # 0011-channel-Fix-buffer-overflow.patch # 0012-lanp-Fix-buffer-overflows-in-get_lan_param_select.patch # 0013-fru-sdr-Fix-id_string-buffer-overflows.patch IPMITOOL_IGNORE_CVES += CVE-2020-5208 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_IPMITOOL_USB),y) IPMITOOL_CONF_OPTS += --enable-intf-usb else IPMITOOL_CONF_OPTS += --disable-intf-usb endif 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),) define IPMITOOL_REMOVE_IPMIEVD $(RM) -f $(TARGET_DIR)/usr/sbin/ipmievd endef IPMITOOL_POST_INSTALL_TARGET_HOOKS += IPMITOOL_REMOVE_IPMIEVD endif $(eval $(autotools-package)) ================================================ FILE: package/ipmiutil/Config.in ================================================ config BR2_PACKAGE_IPMIUTIL bool "ipmiutil" depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_x86_64 || BR2_i386 help The ipmiutil package provides easy-to-use utilities to view the SEL, perform an IPMI chassis reset, set up the IPMI LAN and Platform Event Filter entries to allow SNMP alerts, Serial-Over-LAN console, event daemon, and other IPMI tasks. http://ipmiutil.sourceforge.net/ comment "ipmiutil needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS depends on BR2_x86_64 || BR2_i386 ================================================ FILE: package/ipmiutil/ipmiutil.hash ================================================ # From https://sourceforge.net/projects/ipmiutil/files/ md5 fab260bc834a0f3f9324a6365fc26eca ipmiutil-3.1.7.tar.gz sha1 a0cd29820b15166120eb4a51e6239bfa6f9c65dd ipmiutil-3.1.7.tar.gz # Locally computed sha256 911fd6f8b33651b98863d57e678d2fc593bc43fcd2a21f5dc7d5db8f92128a9a ipmiutil-3.1.7.tar.gz sha256 7e0ec8238aa1431e95a4950032a4483fe33fec3fac348eaade5856cdc5ae3e39 COPYING ================================================ FILE: package/ipmiutil/ipmiutil.mk ================================================ ################################################################################ # # ipmiutil # ################################################################################ IPMIUTIL_VERSION = 3.1.7 IPMIUTIL_SITE = https://sourceforge.net/projects/ipmiutil/files IPMIUTIL_LICENSE = BSD-3-Clause IPMIUTIL_LICENSE_FILES = COPYING IPMIUTIL_MAKE = $(MAKE1) # aclocal.m4 is newer than config.h.in. Touch the latter to avoid autoreconf define IPMIUTIL_TOUCH_CONFIG_H_IN touch $(@D)/config.h.in endef IPMIUTIL_PRE_CONFIGURE_HOOKS += IPMIUTIL_TOUCH_CONFIG_H_IN # forgets to link against libcrypto dependencies breaking static link ifeq ($(BR2_PACKAGE_OPENSSL)x$(BR2_STATIC_LIBS),yx) # tests against distro libcrypto so it might get a false positive when # the openssl version is old, so force it off # SKIP_MD2 can be used only if ALLOW_GNU is defined. IPMIUTIL_CONF_OPTS += CPPFLAGS="$(TARGET_CPPFLAGS) -DALLOW_GNU -DSKIP_MD2 -DSSL11" IPMIUTIL_DEPENDENCIES += openssl else IPMIUTIL_CONF_OPTS += --disable-lanplus endif $(eval $(autotools-package)) ================================================ FILE: package/iproute2/Config.in ================================================ config BR2_PACKAGE_IPROUTE2 bool "iproute2" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # __kernel_{u,}long_t help Kernel routing and traffic control utilities. Provides things like ip and tc. http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 comment "iproute2 needs a toolchain w/ headers >= 3.4" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 ================================================ FILE: package/iproute2/iproute2.hash ================================================ # From https://kernel.org/pub/linux/utils/net/iproute2/sha256sums.asc sha256 210fa785a52f3763c4287fd5ae63e246f6311bfaa48c424baab6d383bb7591d4 iproute2-5.14.0.tar.xz sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING ================================================ FILE: package/iproute2/iproute2.mk ================================================ ################################################################################ # # iproute2 # ################################################################################ IPROUTE2_VERSION = 5.14.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 \ $(if $(BR2_PACKAGE_LIBMNL),libmnl) IPROUTE2_LICENSE = GPL-2.0+ IPROUTE2_LICENSE_FILES = COPYING IPROUTE2_CPE_ID_VENDOR = iproute2_project ifeq ($(BR2_PACKAGE_ELFUTILS),y) IPROUTE2_DEPENDENCIES += elfutils endif ifeq ($(BR2_PACKAGE_LIBCAP),y) IPROUTE2_DEPENDENCIES += libcap endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) IPROUTE2_DEPENDENCIES += libselinux endif ifeq ($(BR2_PACKAGE_IPTABLES)x$(BR2_STATIC_LIBS),yx) IPROUTE2_DEPENDENCIES += iptables else define IPROUTE2_DISABLE_IPTABLES # m_xt.so is built unconditionally echo "TC_CONFIG_XT:=n" >>$(@D)/config.mk endef endif ifeq ($(BR2_PACKAGE_BERKELEYDB_COMPAT185),y) IPROUTE2_DEPENDENCIES += berkeleydb endif define IPROUTE2_CONFIGURE_CMDS cd $(@D) && $(TARGET_CONFIGURE_OPTS) ./configure $(IPROUTE2_DISABLE_IPTABLES) endef define IPROUTE2_BUILD_CMDS $(TARGET_MAKE_ENV) LDFLAGS="$(TARGET_LDFLAGS)" \ CFLAGS="$(TARGET_CFLAGS) -DXT_LIB_DIR=\\\"/usr/lib/xtables\\\"" \ CBUILD_CFLAGS="$(HOST_CFLAGS)" $(MAKE) V=1 LIBDB_LIBS=-lpthread \ DBM_INCLUDE="$(STAGING_DIR)/usr/include" \ SHARED_LIBS="$(if $(BR2_STATIC_LIBS),n,y)" -C $(@D) endef define IPROUTE2_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) DESTDIR="$(TARGET_DIR)" $(MAKE) -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/iprutils/0001-configure.ac-add-AC_USE_SYSTEM_EXTENSIONS.patch ================================================ From 068f37c100e105fd8edcae07762613e8e33c5282 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 18 Aug 2020 20:26:58 +0200 Subject: [PATCH] configure.ac: add AC_USE_SYSTEM_EXTENSIONS uint and alphasort come from glibc, and with ancient versions thereof, they were guarded behind different sets of feature-test macros (see manpage for scandir() for example), which were not default back then. In file included from iprdump.c:17:0: iprlib.h:1866:2: error: unknown type name 'uint' uint supported_with_min_ucode_level; ^ iprlib.c: In function 'ipr_get_pci_slots': iprlib.c:1999:48: error: 'alphasort' undeclared (first use in this function) num_slots = scandir(rootslot, &slotdir, NULL, alphasort); ^ Fix them by adding AC_USE_SYSTEM_EXTENSIONS in configure.ac Fixes: - http://autobuild.buildroot.org/results/41fde4aa06f7c025bb05aa594716643b9010358f [Upstream status: https://github.com/bjking1/iprutils/pull/4] Signed-off-by: Fabrice Fontaine [yann.morin.1998@free.fr: issue is with glibc, not gcc] Signed-off-by: Yann E. MORIN --- configure.ac | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac index 462a8b5..7f5fa7d 100644 --- a/configure.ac +++ b/configure.ac @@ -14,6 +14,7 @@ AC_INIT([iprutils], [2.4.19.1], [iprdd-devel@lists.sourceforge.net]) AM_INIT_AUTOMAKE([1.9 foreign]) AC_CONFIG_MACRO_DIR([build-aux]) +AC_USE_SYSTEM_EXTENSIONS # Checks for programs. AC_PROG_CC -- 2.27.0 ================================================ FILE: package/iprutils/Config.in ================================================ config BR2_PACKAGE_IPRUTILS bool "iprutils" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NCURSES select BR2_PACKAGE_LIBSYSFS select BR2_PACKAGE_PCIUTILS select BR2_PACKAGE_ZLIB help System utilities for IBM Power RAID devices http://sourceforge.net/projects/iprdd/ ================================================ FILE: package/iprutils/iprutils.hash ================================================ # From https://sourceforge.net/projects/iprdd/files/iprutils%20for%202.6%20kernels/2.4.18/ md5 df733f504dd4f96abf3272f679b25311 iprutils-2.4.18.1.tar.gz sha1 701a1a9af6890d333904a92f0b01c26b92f821fa iprutils-2.4.18.1.tar.gz # Locally computed: sha256 1c26aee3bf95517fcb844f35ff2711a39b46cbfb50619db1d792c93eeee6f43d iprutils-2.4.18.1.tar.gz sha256 59b4179e61248aff9cd2d6ee4cd1dbbd0ef48836fe2eeee19f4b16459785104a LICENSE ================================================ FILE: package/iprutils/iprutils.mk ================================================ ################################################################################ # # iprutils # ################################################################################ IPRUTILS_VERSION_MAJOR = 2.4.18 IPRUTILS_VERSION = $(IPRUTILS_VERSION_MAJOR).1 IPRUTILS_SITE = https://downloads.sourceforge.net/project/iprdd/iprutils%20for%202.6%20kernels/$(IPRUTILS_VERSION_MAJOR) IPRUTILS_DEPENDENCIES = ncurses libsysfs pciutils zlib IPRUTILS_LICENSE = Common Public License Version 1.0 IPRUTILS_LICENSE_FILES = LICENSE # We"re patching configure.ac IPRUTILS_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/ipset/Config.in ================================================ config BR2_PACKAGE_IPSET bool "ipset" select BR2_PACKAGE_LIBMNL help Utility to manage IP sets in the linux kernel. Requires a patched kernel or version >=2.6.39. http://ipset.netfilter.org/ ================================================ FILE: package/ipset/ipset.hash ================================================ # From https://ipset.netfilter.org/ipset-7.15.tar.bz2.sha512sum.txt sha512 0fc936d971c30a0925c585d506c8840e782fdaeec09bc8fd249e874fe838fa55a4dbb697f6e1423a6769abf07a1ce2195abc37cb641e8e4ad70f1b4c7130916a ipset-7.15.tar.bz2 # Locally calculated sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/ipset/ipset.mk ================================================ ################################################################################ # # ipset # ################################################################################ IPSET_VERSION = 7.15 IPSET_SOURCE = ipset-$(IPSET_VERSION).tar.bz2 IPSET_SITE = http://ipset.netfilter.org IPSET_DEPENDENCIES = libmnl host-pkgconf IPSET_CONF_OPTS = --with-kmod=no IPSET_LICENSE = GPL-2.0 IPSET_LICENSE_FILES = COPYING IPSET_CPE_ID_VENDOR = netfilter IPSET_INSTALL_STAGING = YES IPSET_SELINUX_MODULES = iptables $(eval $(autotools-package)) ================================================ FILE: package/iptables/Config.in ================================================ config BR2_PACKAGE_IPTABLES bool "iptables" help Linux kernel firewall, NAT, and packet mangling tools. http://www.netfilter.org/projects/iptables/index.html if BR2_PACKAGE_IPTABLES config BR2_PACKAGE_IPTABLES_BPF_NFSYNPROXY bool "bpfc and nfsynproxy" select BR2_PACKAGE_LIBPCAP help Build bpf compiler and nfsynproxy configuration tool. config BR2_PACKAGE_IPTABLES_NFTABLES bool "nftables compat" # uses dlfcn depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR 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.12" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 || \ !BR2_USE_WCHAR || BR2_STATIC_LIBS endif ================================================ FILE: package/iptables/S35iptables ================================================ #!/bin/sh DAEMON="iptables" IPTABLES_ARGS="" start() { printf 'Starting %s: ' "$DAEMON" iptables-restore /etc/iptables.conf status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" iptables -F status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } save() { printf 'Saving %s: ' "$DAEMON" iptables-save -f /etc/iptables.conf status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "SKIP (read-only file system detected)" fi return "$status" } case "$1" in start|stop|restart|save) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|save|reload}" exit 1 esac ================================================ FILE: package/iptables/iptables.hash ================================================ # From https://netfilter.org/projects/iptables/downloads.html sha256 c109c96bb04998cd44156622d36f8e04b140701ec60531a10668cfdff5e8d8f0 iptables-1.8.7.tar.bz2 # Locally calculated sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/iptables/iptables.mk ================================================ ################################################################################ # # iptables # ################################################################################ IPTABLES_VERSION = 1.8.7 IPTABLES_SOURCE = iptables-$(IPTABLES_VERSION).tar.bz2 IPTABLES_SITE = https://netfilter.org/projects/iptables/files IPTABLES_INSTALL_STAGING = YES IPTABLES_DEPENDENCIES = host-pkgconf \ $(if $(BR2_PACKAGE_LIBNETFILTER_CONNTRACK),libnetfilter_conntrack) IPTABLES_LICENSE = GPL-2.0 IPTABLES_LICENSE_FILES = COPYING IPTABLES_CPE_ID_VENDOR = netfilter IPTABLES_SELINUX_MODULES = iptables # Building static causes ugly warnings on some plugins IPTABLES_CONF_OPTS = --libexecdir=/usr/lib --with-kernel=$(STAGING_DIR)/usr \ $(if $(BR2_STATIC_LIBS),,--disable-static) # For connlabel match ifeq ($(BR2_PACKAGE_LIBNETFILTER_CONNTRACK),y) IPTABLES_DEPENDENCIES += libnetfilter_conntrack endif # For nfnl_osf ifeq ($(BR2_PACKAGE_LIBNFNETLINK),y) IPTABLES_DEPENDENCIES += libnfnetlink endif # For iptables-compat tools ifeq ($(BR2_PACKAGE_IPTABLES_NFTABLES),y) IPTABLES_CONF_OPTS += --enable-nftables IPTABLES_DEPENDENCIES += host-bison host-flex libmnl libnftnl else IPTABLES_CONF_OPTS += --disable-nftables endif # bpf compiler support and nfsynproxy tool ifeq ($(BR2_PACKAGE_IPTABLES_BPF_NFSYNPROXY),y) # libpcap is tricky for static-only builds and needs help ifeq ($(BR2_STATIC_LIBS),y) IPTABLES_LIBS_FOR_STATIC_LINK += `$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs` IPTABLES_CONF_OPTS += LIBS="$(IPTABLES_LIBS_FOR_STATIC_LINK)" endif IPTABLES_CONF_OPTS += --enable-bpf-compiler --enable-nfsynproxy IPTABLES_DEPENDENCIES += libpcap else IPTABLES_CONF_OPTS += --disable-bpf-compiler --disable-nfsynproxy endif define IPTABLES_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_IPTABLES) $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_FILTER) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XTABLES) endef define IPTABLES_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/iptables/S35iptables \ $(TARGET_DIR)/etc/init.d/S35iptables touch $(TARGET_DIR)/etc/iptables.conf endef $(eval $(autotools-package)) ================================================ FILE: package/iptraf-ng/Config.in ================================================ config BR2_PACKAGE_IPTRAF_NG bool "iptraf-ng" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 select BR2_PACKAGE_NCURSES help IPTraf-ng is a console-based network monitoring program for Linux that gathers displays information about IP traffic. https://github.com/iptraf-ng/iptraf-ng IPTraf-ng is a fork of original IPTraf v3.0.0 (http://iptraf.seul.org). comment "iptraf-ng needs a toolchain w/ kernel headers >= 3.14" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 ================================================ FILE: package/iptraf-ng/iptraf-ng.hash ================================================ # Locally computed sha256 9f5cef584065420dea1ba32c86126aede1fa9bd25b0f8362b0f9fd9754f00870 iptraf-ng-1.2.1.tar.gz sha256 4e49bef38f621aac4a870da4b30011c7b7abc7256b218daec1c425b08448ae1e LICENSE ================================================ FILE: package/iptraf-ng/iptraf-ng.mk ================================================ ################################################################################ # # iptraf-ng # ################################################################################ IPTRAF_NG_VERSION = 1.2.1 IPTRAF_NG_SITE = $(call github,iptraf-ng,iptraf-ng,v$(IPTRAF_NG_VERSION)) IPTRAF_NG_LICENSE = GPL-2.0+ IPTRAF_NG_LICENSE_FILES = LICENSE IPTRAF_NG_DEPENDENCIES = ncurses define IPTRAF_NG_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ NCURSES_LDFLAGS="-lpanel -lncurses" \ -C $(@D) endef define IPTRAF_NG_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ prefix=/usr DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/iputils/0001-meson-Make-tests-optional.patch ================================================ From 3163c49f9f4ad473a00d8a345ee334a028376011 Mon Sep 17 00:00:00 2001 From: Heiko Becker Date: Fri, 23 Jul 2021 16:32:46 +0200 Subject: [PATCH] meson: Make tests optional Now can be disabled with -DSKIP_TESTS=true. It allows to avoid meson error during build when ip isn't installed. Closes: #359 Reviewed-by: Petr Vorel Signed-off-by: Heiko Becker [ pvorel: Rename variable TEST => SKIP_TESTS, default false, adjust the description ] Signed-off-by: Petr Vorel [Retrieved from: https://github.com/iputils/iputils/commit/3163c49f9f4ad473a00d8a345ee334a028376011] Signed-off-by: Fabrice Fontaine --- meson_options.txt | 3 ++ ping/meson.build | 84 ++----------------------------------------- ping/test/meson.build | 81 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 82 deletions(-) create mode 100644 ping/test/meson.build diff --git a/meson_options.txt b/meson_options.txt index ac5f5d98..517667f4 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -72,3 +72,6 @@ option('INSTALL_SYSTEMD_UNITS', type: 'boolean', value: false, option('USE_GETTEXT', type: 'boolean', value: true, description: 'Enable I18N') + +option('SKIP_TESTS', type: 'boolean', value: false, + description: 'Skip tests during build') diff --git a/ping/meson.build b/ping/meson.build index 1e678ec8..83ea353c 100644 --- a/ping/meson.build +++ b/ping/meson.build @@ -27,86 +27,6 @@ if (setcap_ping) ) endif -##### TESTS ##### - -# TODO: ::1 generates DEPRECATION: ":" is not allowed in test name "ping -c1 ::1", it has been replaced with "_" - -# GitHub CI does not have working IPv6 -# https://github.com/actions/virtual-environments/issues/668 -ipv6_dst = [] -ipv6_switch = [] -r = run_command('ip', '-6', 'a') -if r.stdout().strip().contains('::1') - message('IPv6 enabled') - ipv6_dst = [ '::1' ] - ipv6_switch = [ '-6' ] -else - message('WARNING: IPv6 disabled') +if not get_option('SKIP_TESTS') + subdir('test') endif - -run_as_root = false -r = run_command('id', '-u') -if r.stdout().strip().to_int() == 0 - message('running as root') - run_as_root = true -else - message('running as normal user') -endif - -foreach dst : [ 'localhost', '127.0.0.1' ] + ipv6_dst - foreach switch : [ '', '-4' ] + ipv6_switch - args = [ '-c1', dst ] - should_fail = false - - if switch != '' - args = [switch] + args - if (switch == '-4' and dst == '::1') or (switch == '-6' and dst == '127.0.0.1') - should_fail = true - endif - endif - - name = 'ping ' + ' '.join(args) - test(name, ping, args : args, should_fail : should_fail) - endforeach -endforeach - -ping_tests_opt = [ - [ '-c1' ], - [ '-c5', '-i0.1' ], - [ '-c1', '-I', 'lo' ], - [ '-c1', '-w1' ], - [ '-c1', '-W1' ], - [ '-c1', '-W1.1' ], -] -foreach dst : [ '127.0.0.1' ] + ipv6_dst - foreach args : ping_tests_opt - args += [ dst ] - name = 'ping ' + ' '.join(args) - test(name, ping, args : args) - endforeach -endforeach - -ping_tests_opt_fail = [ - [ '-c1.1' ], - [ '-I', 'nonexisting' ], - [ '-w0.1' ], - [ '-w0,1' ], -] -foreach dst : [ '127.0.0.1' ] + ipv6_dst - foreach args : ping_tests_opt_fail - args += [ dst ] - name = 'ping ' + ' '.join(args) - test(name, ping, args : args, should_fail : true) - endforeach -endforeach - -ping_tests_user_fail = [ - [ '-c1', '-i0.001' ], # -c1 required to quit ping when running as root -] -foreach dst : [ '127.0.0.1' ] + ipv6_dst - foreach args : ping_tests_user_fail - args += [ dst ] - name = 'ping ' + ' '.join(args) - test(name, ping, args : args, should_fail : not run_as_root) - endforeach -endforeach diff --git a/ping/test/meson.build b/ping/test/meson.build new file mode 100644 index 00000000..43aed758 --- /dev/null +++ b/ping/test/meson.build @@ -0,0 +1,81 @@ +# TODO: ::1 generates DEPRECATION: ":" is not allowed in test name "ping -c1 ::1", it has been replaced with "_" + +# GitHub CI does not have working IPv6 +# https://github.com/actions/virtual-environments/issues/668 +ipv6_dst = [] +ipv6_switch = [] +r = run_command('ip', '-6', 'a') +if r.stdout().strip().contains('::1') + message('IPv6 enabled') + ipv6_dst = [ '::1' ] + ipv6_switch = [ '-6' ] +else + message('WARNING: IPv6 disabled') +endif + +run_as_root = false +r = run_command('id', '-u') +if r.stdout().strip().to_int() == 0 + message('running as root') + run_as_root = true +else + message('running as normal user') +endif + +foreach dst : [ 'localhost', '127.0.0.1' ] + ipv6_dst + foreach switch : [ '', '-4' ] + ipv6_switch + args = [ '-c1', dst ] + should_fail = false + + if switch != '' + args = [switch] + args + if (switch == '-4' and dst == '::1') or (switch == '-6' and dst == '127.0.0.1') + should_fail = true + endif + endif + + name = 'ping ' + ' '.join(args) + test(name, ping, args : args, should_fail : should_fail) + endforeach +endforeach + +ping_tests_opt = [ + [ '-c1' ], + [ '-c5', '-i0.1' ], + [ '-c1', '-I', 'lo' ], + [ '-c1', '-w1' ], + [ '-c1', '-W1' ], + [ '-c1', '-W1.1' ], +] +foreach dst : [ '127.0.0.1' ] + ipv6_dst + foreach args : ping_tests_opt + args += [ dst ] + name = 'ping ' + ' '.join(args) + test(name, ping, args : args) + endforeach +endforeach + +ping_tests_opt_fail = [ + [ '-c1.1' ], + [ '-I', 'nonexisting' ], + [ '-w0.1' ], + [ '-w0,1' ], +] +foreach dst : [ '127.0.0.1' ] + ipv6_dst + foreach args : ping_tests_opt_fail + args += [ dst ] + name = 'ping ' + ' '.join(args) + test(name, ping, args : args, should_fail : true) + endforeach +endforeach + +ping_tests_user_fail = [ + [ '-c1', '-i0.001' ], # -c1 required to quit ping when running as root +] +foreach dst : [ '127.0.0.1' ] + ipv6_dst + foreach args : ping_tests_user_fail + args += [ dst ] + name = 'ping ' + ' '.join(args) + test(name, ping, args : args, should_fail : not run_as_root) + endforeach +endforeach ================================================ FILE: package/iputils/Config.in ================================================ config BR2_PACKAGE_IPUTILS bool "iputils" depends on BR2_USE_MMU # fork() help This package is set of small useful utilities for Linux networking. It includes complete versions of ping, traceroute, etc. https://github.com/iputils/iputils if BR2_PACKAGE_IPUTILS config BR2_PACKAGE_IPUTILS_ARPING bool "arping" default y help Installs arping. config BR2_PACKAGE_IPUTILS_CLOCKDIFF bool "clockdiff" default y help Installs clockdiff. config BR2_PACKAGE_IPUTILS_PING bool "ping" default y help Installs ping. config BR2_PACKAGE_IPUTILS_RARPD bool "rarpd" help Installs rarpd. config BR2_PACKAGE_IPUTILS_RDISC bool "rdisc" default y help Installs rdisc. config BR2_PACKAGE_IPUTILS_RDISC_SERVER bool "rdisc (server code)" default y depends on BR2_PACKAGE_IPUTILS_RDISC help Builds rdisc with server code. config BR2_PACKAGE_IPUTILS_TFTPD bool "tftpd" help Installs tftpd. config BR2_PACKAGE_IPUTILS_TRACEPATH bool "tracepath" default y help Installs tracepath. config BR2_PACKAGE_IPUTILS_TRACEROUTE6 bool "traceroute6" default y help Installs traceroute6. config BR2_PACKAGE_IPUTILS_NINFOD bool "ninfod" default y depends on BR2_TOOLCHAIN_HAS_THREADS # ninfod requires help Installs ninfod. comment "ninfod needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS endif ================================================ FILE: package/iputils/iputils.hash ================================================ # https://github.com/iputils/iputils/releases/download/20210722/sha256sum.asc sha256 6d1a44b0682d3d4b64586dbaebe61dd61ae16d6e2f4dc0c43336d0e47a9db323 iputils-20210722.tar.gz # Locally computed sha256 b8ea785d12fa6a44916601104dd746216957e93f13a26d3eb858b3b5a4ad66ab LICENSE sha256 9acc4bc871a4742550158e3696dcb381953172ef808d04ca248184f9f6322712 Documentation/LICENSE.BSD3 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 Documentation/LICENSE.GPL2 ================================================ FILE: package/iputils/iputils.mk ================================================ ################################################################################ # # iputils # ################################################################################ # The original upstream was forked to the github repository in 2014 to # pull fixes from other distribution and centralize the changes after # the upstream seemed to have gone dormant. The fork contains the # latest changes including musl support, removing a libsysfs dependency # and IPv6 updates. # http://www.spinics.net/lists/netdev/msg279881.html IPUTILS_VERSION = 20210722 IPUTILS_SITE = $(call github,iputils,iputils,$(IPUTILS_VERSION)) IPUTILS_LICENSE = GPL-2.0+, BSD-3-Clause IPUTILS_LICENSE_FILES = LICENSE Documentation/LICENSE.BSD3 Documentation/LICENSE.GPL2 IPUTILS_CPE_ID_VENDOR = iputils_project IPUTILS_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) # Selectively build binaries IPUTILS_CONF_OPTS += \ -DBUILD_CLOCKDIFF=$(if $(BR2_PACKAGE_IPUTILS_CLOCKDIFF),true,false) \ -DBUILD_RARPD=$(if $(BR2_PACKAGE_IPUTILS_RARPD),true,false) \ -DBUILD_RDISC=$(if $(BR2_PACKAGE_IPUTILS_RDISC),true,false) \ -DENABLE_RDISC_SERVER=$(if $(BR2_PACKAGE_IPUTILS_RDISC_SERVER),true,false) \ -DBUILD_TRACEPATH=$(if $(BR2_PACKAGE_IPUTILS_TRACEPATH),true,false) \ -DBUILD_TRACEROUTE6=$(if $(BR2_PACKAGE_IPUTILS_TRACEROUTE6),true,false) \ -DBUILD_NINFOD=$(if $(BR2_PACKAGE_IPUTILS_NINFOD),true,false) \ -DSKIP_TESTS=true # Selectively select the appropriate SELinux refpolicy modules IPUTILS_SELINUX_MODULES = \ $(if $(BR2_PACKAGE_IPUTILS_ARPING),netutils) \ $(if $(BR2_PACKAGE_IPUTILS_PING),netutils) \ $(if $(BR2_PACKAGE_IPUTILS_TRACEPATH),netutils) \ $(if $(BR2_PACKAGE_IPUTILS_TRACEROUTE6),netutils) \ $(if $(BR2_PACKAGE_IPUTILS_RDISC),rdisc) \ $(if $(BR2_PACKAGE_IPUTILS_TFTPD),tftp) # # arping # ifeq ($(BR2_PACKAGE_IPUTILS_ARPING),y) IPUTILS_CONF_OPTS += -DBUILD_ARPING=true # move some binaries to the same location as where Busybox installs # the corresponding applets, so that we have a single version of the # tools (from iputils) define IPUTILS_MOVE_ARPING_BINARY mv $(TARGET_DIR)/usr/bin/arping $(TARGET_DIR)/usr/sbin/arping endef IPUTILS_POST_INSTALL_TARGET_HOOKS += IPUTILS_MOVE_ARPING_BINARY else IPUTILS_CONF_OPTS += -DBUILD_ARPING=false endif # # ping # ifeq ($(BR2_PACKAGE_IPUTILS_PING),y) IPUTILS_CONF_OPTS += -DBUILD_PING=true # same reason to move the ping binary as for arping ifeq ($(BR2_ROOTFS_MERGED_USR),) define IPUTILS_MOVE_PING_BINARY mv $(TARGET_DIR)/usr/bin/ping $(TARGET_DIR)/bin/ping endef IPUTILS_POST_INSTALL_TARGET_HOOKS += IPUTILS_MOVE_PING_BINARY endif # upstream requires distros to create symlink define IPUTILS_CREATE_PING6_SYMLINK ln -sf ping $(TARGET_DIR)/bin/ping6 endef IPUTILS_POST_INSTALL_TARGET_HOOKS += IPUTILS_CREATE_PING6_SYMLINK else IPUTILS_CONF_OPTS += -DBUILD_PING=false endif # # tftpd # ifeq ($(BR2_PACKAGE_IPUTILS_TFTPD),y) IPUTILS_CONF_OPTS += -DBUILD_TFTPD=true else IPUTILS_CONF_OPTS += -DBUILD_TFTPD=false endif # Handle libraries ifeq ($(BR2_PACKAGE_LIBCAP),y) IPUTILS_CONF_OPTS += -DUSE_CAP=true IPUTILS_DEPENDENCIES += libcap else IPUTILS_CONF_OPTS += -DUSE_CAP=false endif ifeq ($(BR2_PACKAGE_LIBIDN2),y) IPUTILS_CONF_OPTS += -DUSE_IDN=true IPUTILS_DEPENDENCIES += libidn2 else IPUTILS_CONF_OPTS += -DUSE_IDN=false endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) IPUTILS_DEPENDENCIES += systemd endif ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) IPUTILS_CONF_OPTS += -DUSE_GETTEXT=true else IPUTILS_CONF_OPTS += -DUSE_GETTEXT=false endif # XSL Stylesheets for DocBook 5 not packaged for buildroot IPUTILS_CONF_OPTS += -DBUILD_MANS=false -DBUILD_HTML_MANS=false # handle permissions ourselves IPUTILS_CONF_OPTS += -DNO_SETCAP_OR_SUID=true ifeq ($(BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES),y) define IPUTILS_PERMISSIONS $(if $(BR2_PACKAGE_IPUTILS_ARPING),\ /usr/sbin/arping f 755 0 0 - - - - -,) $(if $(BR2_PACKAGE_IPUTILS_CLOCKDIFF),\ /usr/bin/clockdiff f 755 0 0 - - - - - |xattr cap_net_raw+p,) $(if $(BR2_PACKAGE_IPUTILS_PING),\ /bin/ping f 755 0 0 - - - - - |xattr cap_net_raw+p,) $(if $(BR2_PACKAGE_IPUTILS_TRACEROUTE6),\ /usr/bin/traceroute6 f 755 0 0 - - - - - |xattr cap_net_raw+p,) endef else define IPUTILS_PERMISSIONS $(if $(BR2_PACKAGE_IPUTILS_ARPING),\ /usr/sbin/arping f 755 0 0 - - - - -,) $(if $(BR2_PACKAGE_IPUTILS_CLOCKDIFF),\ /usr/bin/clockdiff f 4755 0 0 - - - - -,) $(if $(BR2_PACKAGE_IPUTILS_PING),\ /bin/ping f 4755 0 0 - - - - -,) $(if $(BR2_PACKAGE_IPUTILS_TRACEROUTE6),\ /usr/bin/traceroute6 f 4755 0 0 - - - - -,) endef endif $(eval $(meson-package)) ================================================ FILE: package/irda-utils/0001-daemon.patch ================================================ written by Mike Frysinger https://sourceforge.net/tracker/?func=detail&aid=3132053&group_id=5616&atid=305616 Rather than using the fork function (which doesnt work on nommu systems), simply use the daemon() function instead (which does work). this should work the same before and after for all systems. --- a/irattach/util.c +++ b/irattach/util.c @@ -156,21 +156,10 @@ void fork_now(int ttyfd) { - int ret; int i; - if ((ret = fork()) > 0) - exit(0); - - if (ret == -1) - syslog(LOG_INFO, "forking: %m"); - if (setsid() < 0) - syslog(LOG_INFO, "detaching from tty: %m"); - - if ((ret = fork()) > 0) { - /* cleanup_files = 0; */ - exit(0); - } + if (daemon(1, 1)) + syslog(LOG_INFO, "daemon: %m"); /* Close all open inherited files! Except for ttyfd! */ for (i = 0; i < 64; i++) ================================================ FILE: package/irda-utils/0002-nommu.patch ================================================ written by Mike Frysinger https://sourceforge.net/tracker/?func=detail&aid=3132056&group_id=5616&atid=305616 nommu systems cannot fork() as the hardware cannot support it. irattach uses it as a minor optimization, but it isnt necessary for correct functioning of the utility. so add a NO_FORK define so we nommu peeps can do CFLAGS="... -DNO_FORK=1 ..." and use it in our embedded systems. --- a/irattach/irattach.c +++ b/irattach/irattach.c @@ -397,7 +397,11 @@ after_names[i]); /* Create a new instance for this other * interface */ +#ifdef NO_FORK + pid = -1; +#else pid = fork(); +#endif /* If in the child */ if(!pid) { /* Get the interface name */ ================================================ FILE: package/irda-utils/0003-subdir.patch ================================================ written by Mike Frysinger https://sourceforge.net/tracker/?func=detail&aid=3132051&group_id=5616&atid=305616 The top level makefile ignores build/install errors in subdirs which makes packaging a pain to verify. --- a/Makefile +++ b/Makefile @@ -31,11 +31,11 @@ CFLAGS= -O2 -W -Wall all: - @-(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done) + @(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done) install: - @-(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done) + @(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done) clean: ================================================ FILE: package/irda-utils/0004-musl.patch ================================================ Replace use of with . kernel headers already provides the needed definitions, moreover not all libc implementations provide if_packet.h e.g. musl Signed-off-by: Khem Raj Upstream-Status: Pending [From http://cgit.openembedded.org/openembedded-core/plain/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/musl.patch.] Signed-off-by: Bernd Kuhls Index: irda-utils-0.9.18/irdaping/irdaping.c =================================================================== --- irda-utils-0.9.18.orig/irdaping/irdaping.c +++ irda-utils-0.9.18/irdaping/irdaping.c @@ -33,7 +33,6 @@ #include #include #include /* For struct ifreq */ -#include /* For struct sockaddr_pkt */ #include /* For ARPHRD_IRDA */ #include /* For ETH_P_ALL */ #include /* For htons */ @@ -46,6 +45,7 @@ #include /* __cpu_to_le32 and co. */ #include /* For __u8 and co. */ +#include /* For struct sockaddr_pkt */ #include #ifndef AF_IRDA ================================================ FILE: package/irda-utils/Config.in ================================================ config BR2_PACKAGE_IRDA_UTILS bool "irda-utils" help user space utilities which control the IrDA stack http://irda.sourceforge.net/ if BR2_PACKAGE_IRDA_UTILS config BR2_PACKAGE_IRDA_UTILS_IRATTACH bool "irattach" config BR2_PACKAGE_IRDA_UTILS_IRDAPING bool "irdaping" config BR2_PACKAGE_IRDA_UTILS_IRNETD bool "irnetd" endif ================================================ FILE: package/irda-utils/irda-utils.hash ================================================ # Locally computed: sha256 61980551e46b2eaa9e17ad31cbc1a638074611fc33bff34163d10c7a67a9fdc6 irda-utils-0.9.18.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 man/COPYING ================================================ FILE: package/irda-utils/irda-utils.mk ================================================ ################################################################################ # # irda-utils # ################################################################################ IRDA_UTILS_VERSION = 0.9.18 IRDA_UTILS_SITE = http://downloads.sourceforge.net/project/irda/irda-utils/$(IRDA_UTILS_VERSION) IRDA_UTILS_LICENSE = GPL-2.0+ IRDA_UTILS_LICENSE_FILES = man/COPYING IRDA_UTILS_CFLAGS = $(TARGET_CFLAGS) -I. ifeq ($(BR2_USE_MMU),) IRDA_UTILS_CFLAGS += -DNO_FORK=1 endif define IRDA_UTILS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) \ CC="$(TARGET_CC)" \ CFLAGS="$(IRDA_UTILS_CFLAGS)" \ SYS_INCLUDES= \ DIRS="irattach irdaping irnetd" \ V=1 -C $(@D) endef IRDA_UTILS_SBINS- = IRDA_UTILS_SBINS-y = IRDA_UTILS_SBINS-$(BR2_PACKAGE_IRDA_UTILS_IRATTACH) += irattach IRDA_UTILS_SBINS-$(BR2_PACKAGE_IRDA_UTILS_IRDAPING) += irdaping IRDA_UTILS_SBINS-$(BR2_PACKAGE_IRDA_UTILS_IRNETD) += irnetd IRDA_UTILS_SBINS- += $(IRDA_UTILS_SBINS-y) define IRDA_UTILS_INSTALL_TARGET_CMDS for i in $(IRDA_UTILS_SBINS-y); do \ $(INSTALL) -m 0755 -D $(@D)/$$i/$$i $(TARGET_DIR)/usr/sbin/$$i || exit 1; \ done endef $(eval $(generic-package)) ================================================ FILE: package/irqbalance/0001-configure.ac-use-pkg-config-to-find-numa.patch ================================================ From 274cb8ea470a10ce46b783e77784b0eb08cf20d8 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 1 Aug 2021 23:26:01 +0200 Subject: [PATCH] configure.ac: use pkg-config to find numa Use pkg-config to find numa and fallback to current mechanism. Thanks to pkg-config, numa dependencies such as -latomic will be retrieved. Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/Irqbalance/irqbalance/pull/188] --- configure.ac | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index c45b9ce..50c62ba 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,14 @@ AC_CHECK_HEADERS([numa.h]) AC_CHECK_FUNCS(getopt_long) -AC_CHECK_LIB(numa, numa_available) +PKG_CHECK_MODULES([NUMA], [numa], [has_numa=yes], [AC_CHECK_LIB(numa, numa_available)]) +AS_IF([test "x$has_numa" = "xyes"], [ + AC_SUBST([NUMA_CFLAGS]) + AC_SUBST([NUMA_LIBS]) + LIBS="$LIBS $NUMA_LIBS" + AC_SUBST([LIBS]) +]) + AC_CHECK_LIB(m, floor) PKG_CHECK_MODULES([GLIB2], [glib-2.0], [], [AC_MSG_ERROR([glib-2.0 is required])]) -- 2.30.2 ================================================ FILE: package/irqbalance/Config.in ================================================ config BR2_PACKAGE_IRQBALANCE bool "irqbalance" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 help Irqbalance is a daemon to help balance the cpu load generated by interrupts across all of a systems cpus. Irqbalance identifies the highest volume interrupt sources, and isolates them to a single unique cpu, so that load is spread as much as possible over an entire processor set, while minimizing cache hit rates for irq handlers. https://github.com/Irqbalance/irqbalance comment "irqbalance needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/irqbalance/S13irqbalance ================================================ #!/bin/sh # # Starts irqbalance # EXEC="/usr/sbin/irqbalance" ARGS="" PID="/var/run/irqbalance.pid" case "$1" in start) printf "Starting irqbalance: " # for irqbalance socket /run/irqbalance/irqbalance.sock mkdir -p /run/irqbalance start-stop-daemon -S -q -x $EXEC -- $ARGS if [ $? != 0 ]; then echo "FAILED" exit 1 else echo "OK" fi pidof irqbalance > $PID ;; stop) printf "Stopping irqbalance: " start-stop-daemon -K -q -p $PID echo "OK" ;; restart|reload) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: package/irqbalance/irqbalance.hash ================================================ # Locally calculated sha256 2e7ddb9687a6a5cc1f41626659eac2ad9d6b5875629156b92f693bd404d8ae63 irqbalance-1.8.0.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/irqbalance/irqbalance.mk ================================================ ################################################################################ # # irqbalance # ################################################################################ IRQBALANCE_VERSION = 1.8.0 IRQBALANCE_SITE = $(call github,irqbalance,irqbalance,v$(IRQBALANCE_VERSION)) IRQBALANCE_LICENSE = GPL-2.0 IRQBALANCE_LICENSE_FILES = COPYING IRQBALANCE_SELINUX_MODULES = irqbalance IRQBALANCE_DEPENDENCIES = host-pkgconf libglib2 # Autoreconf needed because package is distributed without a configure script IRQBALANCE_AUTORECONF = YES ifeq ($(BR2_PACKAGE_LIBCAP_NG),y) IRQBALANCE_DEPENDENCIES += libcap-ng IRQBALANCE_CONF_OPTS += --with-libcap-ng else IRQBALANCE_CONF_OPTS += --without-libcap-ng endif ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) IRQBALANCE_DEPENDENCIES += ncurses IRQBALANCE_CONF_OPTS += --with-irqbalance-ui else IRQBALANCE_CONF_OPTS += --without-irqbalance-ui endif ifeq ($(BR2_PACKAGE_NUMACTL),y) IRQBALANCE_DEPENDENCIES += numactl IRQBALANCE_CONF_OPTS += --enable-numa else IRQBALANCE_CONF_OPTS += --disable-numa endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) IRQBALANCE_DEPENDENCIES += systemd IRQBALANCE_CONF_OPTS += --with-systemd else IRQBALANCE_CONF_OPTS += --without-systemd endif define IRQBALANCE_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/irqbalance/S13irqbalance \ $(TARGET_DIR)/etc/init.d/S13irqbalance endef define IRQBALANCE_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/irqbalance/irqbalance.service \ $(TARGET_DIR)/usr/lib/systemd/system/irqbalance.service endef $(eval $(autotools-package)) ================================================ FILE: package/irqbalance/irqbalance.service ================================================ [Unit] Description=irqbalance daemon After=syslog.target [Service] RuntimeDirectory=irqbalance ExecStart=/usr/sbin/irqbalance --foreground [Install] WantedBy=multi-user.target ================================================ FILE: package/irrlicht/0001-override-CPPFLAGS-CXXFLAGS-and-CFLAGS-in-Makefile.patch ================================================ From 5c5e6d0f469c8b4384bbe5d6c8f78069c182daf0 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 9 Apr 2017 19:56:55 +0200 Subject: [PATCH] override CPPFLAGS, CXXFLAGS and CFLAGS in Makefile When CPPFLAGS is passed on the command line, include paths for the bundled libraries are lost. Since the hand written Makefile want to use them unconditionally, we need to use the key word "override" before CPPFLAGS. Do the same for CXXFLAGS and CFLAGS otherwise -fPIC is lost. Signed-off-by: Romain Naour --- source/Irrlicht/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/Irrlicht/Makefile b/source/Irrlicht/Makefile index 0712b07..b334e9c 100644 --- a/source/Irrlicht/Makefile +++ b/source/Irrlicht/Makefile @@ -62,7 +62,7 @@ LINKOBJ = $(IRRMESHOBJ) $(IRROBJ) $(IRRPARTICLEOBJ) $(IRRANIMOBJ) \ ############### #Compiler flags CXXINCS = -I../../include -Izlib -Ijpeglib -Ilibpng -CPPFLAGS += $(CXXINCS) -DIRRLICHT_EXPORTS=1 +override CPPFLAGS += $(CXXINCS) -DIRRLICHT_EXPORTS=1 CXXFLAGS += -Wall -pipe -fno-exceptions -fno-rtti -fstrict-aliasing ifndef NDEBUG CXXFLAGS += -g -D_DEBUG @@ -74,8 +74,8 @@ CXXFLAGS += -pg endif CFLAGS := -O3 -fexpensive-optimizations -DPNG_THREAD_UNSAFE_OK -DPNG_NO_MMX_CODE -DPNG_NO_MNG_FEATURES -sharedlib sharedlib_osx: CXXFLAGS += -fPIC -sharedlib sharedlib_osx: CFLAGS += -fPIC +sharedlib sharedlib_osx: override CXXFLAGS += -fPIC +sharedlib sharedlib_osx: override CFLAGS += -fPIC #multilib handling ifeq ($(HOSTTYPE), x86_64) -- 2.9.3 ================================================ FILE: package/irrlicht/0002-remove-sys-sysctl.h.patch ================================================ From 5382142d37730f6758753b758c91e257ffd5892c Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 9 Apr 2017 22:20:19 +0200 Subject: [PATCH] remove sys/sysctl.h With musl irrlicht doesn't build due to missing sys/sysctl.h fatal error: sys/sysctl.h: No such file or directory From [1] "sysctl does not work, and NEVER worked. using it is bogus. it was a bogus experimental syscall that was deprecated before it was ever used (basically, a broken binary version of /proc/sys, without any stability between kernel versions for what the binary constants meant)." [1] https://devsonacid.wordpress.com/tag/musl/ Signed-off-by: Romain Naour --- source/Irrlicht/COSOperator.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/source/Irrlicht/COSOperator.cpp b/source/Irrlicht/COSOperator.cpp index 0899d1d..ccf5ef5 100644 --- a/source/Irrlicht/COSOperator.cpp +++ b/source/Irrlicht/COSOperator.cpp @@ -13,7 +13,6 @@ #include #ifndef _IRR_SOLARIS_PLATFORM_ #include -#include #endif #endif -- 2.9.3 ================================================ FILE: package/irrlicht/0003-makefile-override-LDFLAGS-and-remove-obsolete-X11R6-.patch ================================================ From 0ecb59c4dc575bb902c1955d8762f91ff79290a4 Mon Sep 17 00:00:00 2001 From: Bartosz Bilas Date: Tue, 23 Jun 2020 19:36:27 +0200 Subject: [PATCH] makefile: override LDFLAGS and remove obsolete X11R6 lib/include directories Add "override" keyword to LDFLAGS variable in order to link libraries using buildroot cross-compiler correctly and remove those non-supported paths to lib/includes that are not used and not available in buildroot and in addition point to the host system libraries in a result cause the following warning: /home/bartekk/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/9.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: warning: library search path "/usr/X11R6/lib" is unsafe for cross-compilation Signed-off-by: Bartosz Bilas --- source/Irrlicht/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/Irrlicht/Makefile b/source/Irrlicht/Makefile index 1a8277e..b323237 100644 --- a/source/Irrlicht/Makefile +++ b/source/Irrlicht/Makefile @@ -88,8 +88,7 @@ STATIC_LIB = libIrrlicht.a LIB_PATH = ../../lib/$(SYSTEM) INSTALL_DIR = /usr/local/lib sharedlib install: SHARED_LIB = libIrrlicht.so -sharedlib: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm -staticlib sharedlib: CXXINCS += -I/usr/X11R6/include +sharedlib: override LDFLAGS += -lGL -lXxf86vm #OSX specific options staticlib_osx sharedlib_osx install_osx: SYSTEM = MacOSX -- 2.27.0 ================================================ FILE: package/irrlicht/Config.in ================================================ config BR2_PACKAGE_IRRLICHT bool "irrlicht" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_XORG7 depends on BR2_PACKAGE_HAS_LIBGL # use GLX select BR2_PACKAGE_XLIB_LIBXXF86VM # libXxf86vm help An open source high performance realtime 3D graphics engine. http://irrlicht.sourceforge.net/ comment "irrlicht needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP comment "irrlicht needs X11 and an OpenGL provider" depends on !BR2_PACKAGE_HAS_LIBGL || !BR2_PACKAGE_XORG7 depends on BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/irrlicht/irrlicht.hash ================================================ # From https://sourceforge.net/projects/irrlicht/files/Irrlicht%20SDK/1.8/1.8.4 md5 9401cfff801395010b0912211f3cbb4f irrlicht-1.8.4.zip sha1 38bf0223fe868d243d6a39d0dc191c8df6e03b3b irrlicht-1.8.4.zip # Locally calculated sha256 f42b280bc608e545b820206fe2a999c55f290de5c7509a02bdbeeccc1bf9e433 irrlicht-1.8.4.zip sha256 cc86e0b830f9d48933feb198f2741a7d9bb7c34fe8a35302d8ce36b8e2ecb27b doc/aesGladman.txt sha256 e8a6b63336018eec09ac3a7cdfe5a80bda635641bc0397a77b8baa25bed03800 doc/bzip2-license.txt sha256 ca38f1ba4ab901111f6eee50009bd46dbd866e6beb98d592d843f7c162d73409 doc/irrlicht-license.txt sha256 67f098c29401646a0f52da432efc3bab0433c13f17effc3314e9fa523da51b75 doc/jpglib-license.txt sha256 e0f86c3e4acd285618faa55735ceedce46084a3cfb06b8f31d0d092bb68ae151 doc/libpng-license.txt ================================================ FILE: package/irrlicht/irrlicht.mk ================================================ ################################################################################ # # irrlicht # ################################################################################ IRRLICHT_VERSION_MAJOR = 1.8 IRRLICHT_VERSION = $(IRRLICHT_VERSION_MAJOR).4 IRRLICHT_SOURCE = irrlicht-$(IRRLICHT_VERSION).zip IRRLICHT_SITE = https://downloads.sourceforge.net/project/irrlicht/Irrlicht%20SDK/$(IRRLICHT_VERSION_MAJOR)/$(IRRLICHT_VERSION) IRRLICHT_INSTALL_STAGING = YES # Bundled libraries: bzip2, libaesGladman, libpng, lzma, zlib, # The handcrafted Makefile can only use bundled libraries. IRRLICHT_LICENSE = Zlib (irrlicht), BSD-3-Clause (libaesGladman), bzip2-1.0.5 (bzip2), IJG (libjpeg), Libpng (libpng) IRRLICHT_LICENSE_FILES = \ doc/aesGladman.txt \ doc/bzip2-license.txt \ doc/irrlicht-license.txt \ doc/jpglib-license.txt \ doc/libpng-license.txt IRRLICHT_SUBDIR = source/Irrlicht IRRLICHT_DEPENDENCIES = libgl xlib_libXxf86vm define IRRLICHT_EXTRACT_CMDS $(UNZIP) -d $(@D) $(IRRLICHT_DL_DIR)/$(IRRLICHT_SOURCE) mv $(@D)/irrlicht-$(IRRLICHT_VERSION)/* $(@D) $(RM) -r $(@D)/irrlicht-$(IRRLICHT_VERSION) endef IRRLICHT_CONF_OPTS = $(TARGET_CONFIGURE_OPTS) # Build a static library OR a shared library, otherwise we need to compile with -fPIC # "relocation R_X86_64_32S can not be used when making a shared object; recompile with -fPIC" ifeq ($(BR2_STATIC_LIBS),) IRRLICHT_CONF_OPTS += sharedlib endif # Irrlicht fail to detect properly the NEON support on aarch64 or ARM with NEON FPU support. # While linking an application with libIrrlicht.so, we get an undefined reference to # png_init_filter_functions_neon. # Some files are missing in the libpng bundled in Irrlicht, in particular arm/arm_init.c, # so disable NEON support completely. IRRLICHT_CONF_OPTS += CPPFLAGS="$(TARGET_CPPFLAGS) -DPNG_ARM_NEON_OPT=0" define IRRLICHT_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/$(IRRLICHT_SUBDIR) $(IRRLICHT_CONF_OPTS) endef define IRRLICHT_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) \ INSTALL_DIR=$(STAGING_DIR)/usr/lib \ -C $(@D)/$(IRRLICHT_SUBDIR) install endef define IRRLICHT_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) \ INSTALL_DIR=$(TARGET_DIR)/usr/lib \ -C $(@D)/$(IRRLICHT_SUBDIR) install endef $(eval $(generic-package)) ================================================ FILE: package/irssi/Config.in ================================================ config BR2_PACKAGE_IRSSI bool "irssi" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_NCURSES select BR2_PACKAGE_OPENSSL help Irssi is a terminal based IRC client for UNIX systems. http://irssi.org/ if BR2_PACKAGE_IRSSI config BR2_PACKAGE_IRSSI_PROXY bool "proxy module" help Build the irssi proxy module, which allows an IRC connection to be shared among multiple clients. config BR2_PACKAGE_IRSSI_TRUE_COLOR bool "true color support" help Build with true color support in terminal. endif comment "irssi needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/irssi/irssi.hash ================================================ # Locally calculated after checking pgp signature sha256 a647bfefed14d2221fa77b6edac594934dc672c4a560417b1abcbbc6b88d769f irssi-1.2.3.tar.xz # Locally calculated sha256 a1a27cb2ecee8d5378fbb3562f577104a445d6d66fee89286e16758305e63e2b COPYING ================================================ FILE: package/irssi/irssi.mk ================================================ ################################################################################ # # irssi # ################################################################################ IRSSI_VERSION = 1.2.3 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/irssi/releases/download/$(IRSSI_VERSION) IRSSI_LICENSE = GPL-2.0+ IRSSI_LICENSE_FILES = COPYING IRSSI_CPE_ID_VENDOR = irssi IRSSI_DEPENDENCIES = host-pkgconf libglib2 ncurses openssl IRSSI_CONF_OPTS = \ --disable-glibtest \ --without-perl ifeq ($(BR2_PACKAGE_IRSSI_PROXY),y) IRSSI_CONF_OPTS += --with-proxy # If shared libs are disabled, 'proxy' has to go in the list of built-in # modules. ifeq ($(BR2_STATIC_LIBS),y) IRSSI_CONF_OPTS += --with-modules=proxy endif else IRSSI_CONF_OPTS += --without-proxy endif # proxy ifeq ($(BR2_PACKAGE_IRSSI_TRUE_COLOR),y) IRSSI_CONF_OPTS += --enable-true-color else IRSSI_CONF_OPTS += --disable-true-color endif # Cross-compiling irssi with the perl interpreter enabled doesn't work # yet. So, remove scripts as they are useless in that case. define IRSSI_REMOVE_SCRIPTS rm -rf $(TARGET_DIR)/usr/share/irssi/scripts/ endef IRSSI_POST_INSTALL_TARGET_HOOKS += IRSSI_REMOVE_SCRIPTS $(eval $(autotools-package)) ================================================ FILE: package/isl/isl.hash ================================================ # Locally computed sha256 5efc53efaef151301f4e7dde3856b66812d8153dede24fab17673f801c8698f2 isl-0.23.tar.xz sha256 3a2c398103f6bca0f50a9a9465deca9230b370b0212af5fdf31ed88a36215c30 LICENSE ================================================ FILE: package/isl/isl.mk ================================================ ################################################################################ # # isl # ################################################################################ ISL_VERSION = 0.23 ISL_SOURCE = isl-$(ISL_VERSION).tar.xz ISL_SITE = https://libisl.sourceforge.io ISL_LICENSE = MIT ISL_LICENSE_FILES = LICENSE HOST_ISL_DEPENDENCIES = host-gmp $(eval $(host-autotools-package)) ================================================ FILE: package/iucode-tool/Config.in ================================================ config BR2_PACKAGE_IUCODE_TOOL bool "iucode-tool" depends on BR2_x86_64 || BR2_i386 select BR2_PACKAGE_INTEL_MICROCODE select BR2_PACKAGE_INTEL_MICROCODE_INSTALL_TARGET select BR2_PACKAGE_ARGP_STANDALONE \ if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL help Intel processor microcode tool https://gitlab.com/iucode-tool ================================================ FILE: package/iucode-tool/S00iucode-tool ================================================ #!/bin/sh # # Upload microcode into the processor. # MICROCODE_DIR="/lib/firmware/intel-ucode" start() { printf 'Starting iucode-tool: ' /usr/sbin/iucode_tool -q -k "$MICROCODE_DIR" status="$?" if [ "$status" = 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } case "$1" in start) start;; stop|restart|reload) ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/iucode-tool/iucode-tool.hash ================================================ # Locally computed sha256 12b88efa4d0d95af08db05a50b3dcb217c0eb2bfc67b483779e33d498ddb2f95 iucode-tool_2.3.1.tar.xz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/iucode-tool/iucode-tool.mk ================================================ ################################################################################ # # iucode-tool # ################################################################################ IUCODE_TOOL_VERSION = 2.3.1 IUCODE_TOOL_SOURCE = iucode-tool_$(IUCODE_TOOL_VERSION).tar.xz IUCODE_TOOL_SITE = https://gitlab.com/iucode-tool/releases/raw/master IUCODE_TOOL_DEPENDENCIES = $(if $(BR2_PACKAGE_ARGP_STANDALONE),argp-standalone) IUCODE_TOOL_LICENSE = GPL-2.0+ IUCODE_TOOL_LICENSE_FILES = COPYING IUCODE_TOOL_CPE_ID_VENDOR = iucode-tool_project define IUCODE_TOOL_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/iucode-tool/S00iucode-tool \ $(TARGET_DIR)/etc/init.d/S00iucode-tool endef define IUCODE_TOOL_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/iucode-tool/iucode.service \ $(TARGET_DIR)/usr/lib/systemd/system/iucode.service endef $(eval $(autotools-package)) ================================================ FILE: package/iucode-tool/iucode.service ================================================ [Unit] Description=Upload microcode into the processor [Service] Type=oneshot ExecStart=/usr/sbin/iucode_tool -k /usr/share/misc/intel-microcode.dat RemainAfterExit=yes [Install] WantedBy=multi-user.target ================================================ FILE: package/iw/Config.in ================================================ config BR2_PACKAGE_IW bool "iw" depends on BR2_TOOLCHAIN_HAS_THREADS # libnl select BR2_PACKAGE_LIBNL help Utility for wireless devices using the mac80211 kernel stack https://wireless.wiki.kernel.org/en/users/documentation/iw comment "iw needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/iw/iw.hash ================================================ # From https://www.kernel.org/pub/software/network/iw/sha256sums.asc sha256 293a07109aeb7e36267cf59e3ce52857e9ffae3a6666eb8ac77894b1839fe1f2 iw-5.9.tar.xz # Locally calculated sha256 5932fb70481e128940168a5fdf133e6454293c0865c7e757874b235cb6daa2af COPYING ================================================ FILE: package/iw/iw.mk ================================================ ################################################################################ # # iw # ################################################################################ IW_VERSION = 5.9 IW_SOURCE = iw-$(IW_VERSION).tar.xz IW_SITE = $(BR2_KERNEL_MIRROR)/software/network/iw IW_LICENSE = ISC IW_LICENSE_FILES = COPYING IW_CPE_ID_VENDOR = kernel IW_DEPENDENCIES = host-pkgconf libnl IW_MAKE_ENV = \ $(TARGET_MAKE_ENV) \ PKG_CONFIG="$(HOST_DIR)/bin/pkg-config" define IW_BUILD_CMDS $(IW_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define IW_INSTALL_TARGET_CMDS $(IW_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/iwd/0001-build-Add-reallocarray-to-missing-h.patch ================================================ From ec1c348b4fd67619fa0c2f55ae644f6a8014d971 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 19 Sep 2021 21:17:44 +0200 Subject: build: Add reallocarray to missing.h reallocarray has been added to glibc relatively recently (version 2.26, from 2017) and apparently not all users run new enough glibc. Moreover, reallocarray is not available with uclibc-ng. So use realloc if reallocarray is not available to avoid the following build failure raised since commit 891b78e9e892a3bcd800eb3a298e6380e9a15dd1: /home/giuliobenetti/autobuild/run/instance-3/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/10.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: src/sae.o: in function `sae_rx_authenticate': sae.c:(.text+0xd74): undefined reference to `reallocarray' Fixes: - http://autobuild.buildroot.org/results/c6d3f86282c44645b4f1c61882dc63ccfc8eb35a [Retrieved from: https://git.kernel.org/pub/scm/network/wireless/iwd.git/commit/?id=ec1c348b4fd67619fa0c2f55ae644f6a8014d971] Signed-off-by: Fabrice Fontaine --- configure.ac | 1 + src/missing.h | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/configure.ac b/configure.ac index c6250401..51d9da93 100644 --- a/configure.ac +++ b/configure.ac @@ -129,6 +129,7 @@ AC_DEFINE_UNQUOTED(WIRED_STORAGEDIR, "${wired_storagedir}", AC_CHECK_FUNCS(explicit_bzero) AC_CHECK_FUNCS(rawmemchr) +AC_CHECK_FUNCS(reallocarray) AC_CHECK_HEADERS(linux/types.h linux/if_alg.h) diff --git a/src/missing.h b/src/missing.h index 2cc80aee..a5b92952 100644 --- a/src/missing.h +++ b/src/missing.h @@ -37,3 +37,10 @@ _Pragma("GCC diagnostic ignored \"-Wstringop-overflow=\"") _Pragma("GCC diagnostic pop") } #endif + +#ifndef HAVE_REALLOCARRAY +static inline void *reallocarray(void *ptr, size_t nmemb, size_t size) +{ + return realloc(ptr, nmemb * size); +} +#endif -- cgit 1.2.3-1.el7 ================================================ FILE: package/iwd/0002-netconfig-Remove-usage-of-in6_addr__in6_u.patch ================================================ From 42bd5ba7c2665c5bf95ba102a8115c4cf01d31d7 Mon Sep 17 00:00:00 2001 From: Andrew Zaborowski Date: Thu, 16 Sep 2021 01:58:29 +0200 Subject: netconfig: Remove usage of in6_addr.__in6_u in6_addr.__in6_u.__u6_addr8 is glibc-specific and named differently in the headers shipped with musl libc for example. The POSIX compliant and universal way of accessing it is in6_addr.s6_addr. [Retrieved from: https://git.kernel.org/pub/scm/network/wireless/iwd.git/commit/?id=42bd5ba7c2665c5bf95ba102a8115c4cf01d31d7] Signed-off-by: Fabrice Fontaine --- src/netconfig.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/netconfig.c b/src/netconfig.c index ce95db0b..421270c9 100644 --- a/src/netconfig.c +++ b/src/netconfig.c @@ -171,7 +171,7 @@ static inline char *netconfig_ipv6_to_string(const uint8_t *addr) struct in6_addr in6_addr; char *addr_str = l_malloc(INET6_ADDRSTRLEN); - memcpy(in6_addr.__in6_u.__u6_addr8, addr, 16); + memcpy(in6_addr.s6_addr, addr, 16); if (L_WARN_ON(unlikely(!inet_ntop(AF_INET6, &in6_addr, addr_str, INET6_ADDRSTRLEN)))) { -- cgit 1.2.3-1.el7 ================================================ FILE: package/iwd/Config.in ================================================ config BR2_PACKAGE_IWD bool "iwd" depends on BR2_USE_MMU # dbus depends on BR2_TOOLCHAIN_HAS_THREADS # dbus depends on BR2_TOOLCHAIN_HAS_SYNC_4 # ell depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 # ell depends on BR2_USE_WCHAR # ell select BR2_PACKAGE_DBUS # runtime select BR2_PACKAGE_ELL select BR2_PACKAGE_OPENRESOLV if !BR2_PACKAGE_SYSTEMD_RESOLVED help iNet Wireless daemon (iwd) https://iwd.wiki.kernel.org/ comment "iwd needs a toolchain w/ threads, wchar, headers >= 4.12" depends on BR2_USE_MMU # dbus depends on BR2_TOOLCHAIN_HAS_SYNC_4 # ell depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 ================================================ FILE: package/iwd/S40iwd ================================================ #!/bin/sh DAEMON="/usr/libexec/iwd" PIDFILE="/var/run/iwd.pid" IWD_ARGS="" [ -r "/etc/default/iwd" ] && . "/etc/default/iwd" start() { printf "Starting iwd:" mkdir -p /tmp/iwd/hotspot start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "$DAEMON" \ -- $IWD_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf "Stopping iwd:" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } case "$1" in start|stop) "$1";; *) echo "Usage: $0 {start|stop}" exit 1 esac ================================================ FILE: package/iwd/iwd.hash ================================================ # From https://mirrors.edge.kernel.org/pub/linux/network/wireless/sha256sums.asc sha256 0225ab81579f027e0fcbf255517f432fcf355d14f3645c36813c71a441dfab55 iwd-1.18.tar.xz # License files sha256 ec60b993835e2c6b79e6d9226345f4e614e686eb57dc13b6420c15a33a8996e5 COPYING ================================================ FILE: package/iwd/iwd.mk ================================================ ################################################################################ # # iwd # ################################################################################ IWD_VERSION = 1.18 IWD_SOURCE = iwd-$(IWD_VERSION).tar.xz IWD_SITE = $(BR2_KERNEL_MIRROR)/linux/network/wireless IWD_LICENSE = LGPL-2.1+ IWD_LICENSE_FILES = COPYING IWD_CPE_ID_VENDOR = intel IWD_CPE_ID_PRODUCT = inet_wireless_daemon IWD_SELINUX_MODULES = networkmanager # We're patching configure.ac IWD_AUTORECONF = YES IWD_CONF_OPTS = \ --disable-manual-pages \ --enable-external-ell IWD_DEPENDENCIES = ell ifeq ($(BR2_PACKAGE_DBUS),y) IWD_CONF_OPTS += --enable-dbus-policy --with-dbus-datadir=/usr/share IWD_DEPENDENCIES += dbus else IWD_CONF_OPTS += --disable-dbus-policy endif ifeq ($(BR2_PACKAGE_READLINE),y) # iwd client depends on readline (GPL-3.0+) IWD_LICENSE += , GPL-3.0+ (client) IWD_CONF_OPTS += --enable-client IWD_DEPENDENCIES += readline else IWD_CONF_OPTS += --disable-client endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) IWD_CONF_OPTS += --enable-systemd-service IWD_DEPENDENCIES += systemd else IWD_CONF_OPTS += --disable-systemd-service endif ifeq ($(BR2_PACKAGE_SYSTEMD_RESOLVED),y) IWD_RESOLV_SERVICE = systemd else IWD_RESOLV_SERVICE = resolvconf endif define IWD_INSTALL_CONFIG_FILE $(INSTALL) -D -m 644 package/iwd/main.conf $(TARGET_DIR)/etc/iwd/main.conf $(SED) 's,__RESOLV_SERVICE__,$(IWD_RESOLV_SERVICE),' $(TARGET_DIR)/etc/iwd/main.conf endef IWD_POST_INSTALL_TARGET_HOOKS += IWD_INSTALL_CONFIG_FILE define IWD_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/iwd/S40iwd \ $(TARGET_DIR)/etc/init.d/S40iwd mkdir -p $(TARGET_DIR)/var/lib/iwd ln -sf /tmp/iwd/hotspot $(TARGET_DIR)/var/lib/iwd/hotspot endef $(eval $(autotools-package)) ================================================ FILE: package/iwd/main.conf ================================================ # use built-in dhcp client [General] EnableNetworkConfiguration=true [Network] NameResolvingService=__RESOLV_SERVICE__ ================================================ FILE: package/jack1/Config.in ================================================ config BR2_PACKAGE_JACK1 bool "jack1" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_PACKAGE_JACK2 select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_HWDEP select BR2_PACKAGE_ALSA_LIB_RAWMIDI select BR2_PACKAGE_ALSA_LIB_SEQ select BR2_PACKAGE_BERKELEYDB select BR2_PACKAGE_LIBSAMPLERATE select BR2_PACKAGE_LIBSNDFILE help JACK Audio Connection Kit (JACK 1 implementation). JACK is a low-latency sound server, allowing multiple applications to connect to one audio device, and to share audio between themselves. This package contains the daemon jackd as well as some example clients. http://jackaudio.org/ Another implementation (BR2_PACKAGE_JACK2) is also available, please consult the documentation to choose the right one: https://github.com/jackaudio/jackaudio.github.com/wiki/Differences-between-jack1-and-jack2 comment "jack1 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 ================================================ FILE: package/jack1/jack1.hash ================================================ # Locally computed sha256 3517b5bff82139a76b2b66fe2fd9a3b34b6e594c184f95a988524c575b11d444 jack-audio-connection-kit-0.125.0.tar.gz sha256 661fe53a7e3fce790b185e35c60b7ed80d7efdf25fd7df5af6814a9a215a538f COPYING sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING.GPL sha256 ad01ea5cd2755f6048383c8d54c88459cd6fcb17757c5c8892f8c5ea060f6140 COPYING.LGPL ================================================ FILE: package/jack1/jack1.mk ================================================ ################################################################################ # # jack1 # ################################################################################ JACK1_VERSION = 0.125.0 JACK1_SOURCE = jack-audio-connection-kit-$(JACK1_VERSION).tar.gz JACK1_SITE = http://jackaudio.org/downloads JACK1_LICENSE = GPL-2.0+ (jack server), LGPL-2.1+ (jack library) JACK1_LICENSE_FILES = COPYING COPYING.GPL COPYING.LGPL JACK1_INSTALL_STAGING = YES # Dependency to celt can't be met: jack1 requires celt >= 0.8.0 but we # only have 0.5.1.3 and we cannot upgrade. JACK1_DEPENDENCIES = host-pkgconf alsa-lib berkeleydb libsamplerate libsndfile ifeq ($(BR2_PACKAGE_READLINE),y) JACK1_DEPENDENCIES += readline endif JACK1_CONF_OPTS = --without-html-dir --disable-oss $(eval $(autotools-package)) ================================================ FILE: package/jack2/Config.in ================================================ config BR2_PACKAGE_JACK2 bool "jack2" depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib depends on BR2_USE_MMU # fork() depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_LIBSAMPLERATE select BR2_PACKAGE_LIBSNDFILE select BR2_PACKAGE_ALSA_LIB 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). JACK is a low-latency sound server, allowing multiple applications to connect to one audio device, and to share audio between themselves. This package contains the daemon jackd as well as some example clients. 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 depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ BR2_STATIC_LIBS ================================================ FILE: package/jack2/jack2.hash ================================================ # Locally calculated sha256 38f674bbc57852a8eb3d9faa1f96a0912d26f7d5df14c11005ad499c8ae352f2 jack2-1.9.17.tar.gz sha256 d8c320ffc0030d1b096ae4732b50d2b811cf95e9a9b7377c1127b2563e0a0388 COPYING ================================================ FILE: package/jack2/jack2.mk ================================================ ################################################################################ # # jack2 # ################################################################################ JACK2_VERSION = 1.9.17 JACK2_SITE = $(call github,jackaudio,jack2,v$(JACK2_VERSION)) JACK2_LICENSE = GPL-2.0+ (jack server), LGPL-2.1+ (jack library) JACK2_LICENSE_FILES = COPYING JACK2_CPE_ID_VENDOR = jackaudio JACK2_DEPENDENCIES = libsamplerate libsndfile alsa-lib JACK2_INSTALL_STAGING = YES JACK2_CONF_OPTS = --alsa ifeq ($(BR2_PACKAGE_OPUS),y) JACK2_DEPENDENCIES += opus endif 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 # 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. $(eval $(waf-package)) ================================================ FILE: package/jailhouse/Config.in ================================================ config BR2_PACKAGE_JAILHOUSE bool "jailhouse" depends on BR2_aarch64 || BR2_x86_64 depends on BR2_LINUX_KERNEL help The Jailhouse partitioning Hypervisor based on Linux. https://github.com/siemens/jailhouse if BR2_PACKAGE_JAILHOUSE config BR2_PACKAGE_JAILHOUSE_HELPER_SCRIPTS bool "helper scripts" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_MAKO # runtime help Python-based helpers for the Jailhouse Hypervisor. https://github.com/siemens/jailhouse comment "helper scripts require Python3" depends on !BR2_PACKAGE_PYTHON3 endif comment "jailhouse needs a Linux kernel to be built" depends on BR2_aarch64 || BR2_x86_64 depends on !BR2_LINUX_KERNEL ================================================ FILE: package/jailhouse/jailhouse.hash ================================================ # Locally computed: sha256 3777a553c2acb2b693843fe4d16ab80333879daedd47d9c9f3717c9644e6cf93 jailhouse-0.12.tar.gz sha256 3aafb31a2436178323663e00511f16d58fc36ea654b1457532e79d017205efd8 COPYING ================================================ FILE: package/jailhouse/jailhouse.mk ================================================ ################################################################################ # # jailhouse # ################################################################################ JAILHOUSE_VERSION = 0.12 JAILHOUSE_SITE = $(call github,siemens,jailhouse,v$(JAILHOUSE_VERSION)) JAILHOUSE_LICENSE = GPL-2.0 JAILHOUSE_LICENSE_FILES = COPYING JAILHOUSE_DEPENDENCIES = \ linux JAILHOUSE_MAKE_OPTS = \ CROSS_COMPILE="$(TARGET_CROSS)" \ ARCH="$(KERNEL_ARCH)" \ KDIR="$(LINUX_DIR)" \ DESTDIR="$(TARGET_DIR)" ifeq ($(BR2_PACKAGE_JAILHOUSE_HELPER_SCRIPTS),y) JAILHOUSE_DEPENDENCIES += \ host-python-mako \ host-python-setuptools JAILHOUSE_MAKE_OPTS += \ HAS_PYTHON_MAKO="yes" \ PYTHON_PIP_USABLE="yes" else JAILHOUSE_MAKE_OPTS += \ HAS_PYTHON_MAKO="no" \ PYTHON_PIP_USABLE="no" endif define JAILHOUSE_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(JAILHOUSE_MAKE_OPTS) -C $(@D) $(if $(BR2_PACKAGE_JAILHOUSE_HELPER_SCRIPTS), \ cd $(@D) && $(PKG_PYTHON_SETUPTOOLS_ENV) $(HOST_DIR)/bin/python setup.py build) endef define JAILHOUSE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(JAILHOUSE_MAKE_OPTS) -C $(@D) modules_install firmware_install tool_inmates_install $(TARGET_MAKE_ENV) $(MAKE) $(JAILHOUSE_MAKE_OPTS) -C $(@D)/tools src=$(@D)/tools install $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/jailhouse $(INSTALL) -D -m 0644 $(@D)/configs/*/*.cell $(TARGET_DIR)/etc/jailhouse $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/local/libexec/jailhouse/demos $(INSTALL) -D -m 0755 $(@D)/inmates/demos/*/*.bin $(TARGET_DIR)/usr/local/libexec/jailhouse/demos $(if $(BR2_PACKAGE_JAILHOUSE_HELPER_SCRIPTS), \ cd $(@D) && $(PKG_PYTHON_SETUPTOOLS_ENV) $(HOST_DIR)/bin/python setup.py install --no-compile $(PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS)) endef $(eval $(generic-package)) ================================================ FILE: package/janet/Config.in ================================================ config BR2_PACKAGE_JANET bool "janet" help Janet is a functional and imperative programming language. The entire language (core library, interpreter, compiler, assembler, PEG) is less than 1MB. You can also add Janet scripting to an application by embedding a single C file and two headers. https://janet-lang.org/ ================================================ FILE: package/janet/janet.hash ================================================ # Locally calculated sha256 bfc29c11a070cc175666f74eb99ea992276d6e269701ba9558a72cef05ac80b4 janet-1.18.1.tar.gz # Locally calculated sha256 e2d2ae8360d95386af751ac7d1a3da36ea8ceb230e5f0eba7eb762547b1c58c9 LICENSE ================================================ FILE: package/janet/janet.mk ================================================ ################################################################################ # # janet # ################################################################################ JANET_VERSION = 1.18.1 JANET_SITE = $(call github,janet-lang,janet,v$(JANET_VERSION)) JANET_LICENSE = MIT JANET_LICENSE_FILES = LICENSE JANET_INSTALL_STAGING = YES ifeq ($(BR2_STATIC_LIBS),y) JANET_CONF_OPTS += -Ddynamic_modules=false endif # Uses __atomic_fetch_add_4 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) JANET_LDFLAGS += $(TARGET_LDFLAGS) -latomic endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),) JANET_CONF_OPTS += -Dsingle_threaded=true endif $(eval $(meson-package)) ================================================ FILE: package/jansson/Config.in ================================================ config BR2_PACKAGE_JANSSON bool "jansson" help Jansson is a C library for encoding, decoding and manipulating JSON data. http://www.digip.org/jansson/ ================================================ FILE: package/jansson/jansson.hash ================================================ # Locally calculated after checking pgp signature sha256 f4f377da17b10201a60c1108613e78ee15df6b12016b116b6de42209f47a474f jansson-2.13.1.tar.gz sha256 1fff7d37d22157bcd81ab53b6c54da755d7c2f868f15807d9bde920f10730da0 LICENSE ================================================ FILE: package/jansson/jansson.mk ================================================ ################################################################################ # # jansson # ################################################################################ JANSSON_VERSION = 2.13.1 JANSSON_SITE = http://www.digip.org/jansson/releases JANSSON_LICENSE = MIT JANSSON_LICENSE_FILES = LICENSE JANSSON_CPE_ID_VENDOR = jansson_project JANSSON_INSTALL_STAGING = YES JANSSON_CONF_ENV = LIBS="-lm" $(eval $(autotools-package)) ================================================ FILE: package/janus-gateway/0001-disable-ssp.patch ================================================ From 4b02c8207adb888d35951bbc1c5b3029594f44c6 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Wed, 24 Apr 2019 13:56:27 -0400 Subject: [PATCH] Do not force SSP usage The toolchain may not support SSP, so do not enforce its usage, let 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 (rebased against v0.6.3) Signed-off-by: Adam Duskett --- configure.ac | 1 - 1 file changed, 1 deletion(-) diff --git a/configure.ac b/configure.ac index 257ea8c..ca17a29 100644 --- a/configure.ac +++ b/configure.ac @@ -20,7 +20,6 @@ LT_INIT # Common CFLAGS CFLAGS="$CFLAGS \ -fPIC \ - -fstack-protector-all \ -fstrict-aliasing \ -ggdb3 \ -pthread \ -- 2.20.1 ================================================ FILE: package/janus-gateway/0002-Add-test-for-Wunused-but-set-variable.patch ================================================ From c0f075bdee5edabf8f19b68e0880fbd249a89653 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 3 Jan 2015 15:09:59 +0100 Subject: [PATCH] Add test for -Wunused-but-set-variable The -Wunused-but-set-variable option does not exist in some old gcc versions (gcc 4.5.x), so using it unconditionally breaks the build with such compilers. This commit introduces the AX_CHECK_COMPILE_FLAG m4 macro taken from the autoconf-archive (http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_check_compile_flag.m4), 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 (rebased against v0.6.3) Signed-off-by: Adam Duskett --- Makefile.am | 1 + configure.ac | 6 ++- m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 m4/ax_check_compile_flag.m4 diff --git a/Makefile.am b/Makefile.am index f961fdb..3ddbe59 100644 --- a/Makefile.am +++ b/Makefile.am @@ -151,6 +151,7 @@ janus_CFLAGS = \ -DEVENTDIR=\"$(eventdir)\" \ -DLOGGERDIR=\"$(loggerdir)\" \ -DCONFDIR=\"$(confdir)\" \ + @GCC_WARN_UNUSED_BUT_SET@ \ $(BORINGSSL_CFLAGS) \ $(NULL) diff --git a/configure.ac b/configure.ac index ca17a29..beef91a 100644 --- a/configure.ac +++ b/configure.ac @@ -13,6 +13,9 @@ AM_SILENT_RULES([yes]) AC_USE_SYSTEM_EXTENSIONS AC_PROG_CC +AX_CHECK_COMPILE_FLAG([-Wunused-but-set-variable], + [GCC_WARN_UNUSED_BUT_SET=-Wunused-but-set-variable]) +AC_SUBST(GCC_WARN_UNUSED_BUT_SET) LT_PREREQ([2.2]) LT_INIT @@ -64,8 +67,7 @@ clang*) CFLAGS="$CFLAGS \ -Wcast-align \ -Wno-override-init \ - -Wunsafe-loop-optimizations \ - -Wunused-but-set-variable" + -Wunsafe-loop-optimizations" esac JANUS_VERSION=103 diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4 new file mode 100644 index 0000000..51df0c0 --- /dev/null +++ b/m4/ax_check_compile_flag.m4 @@ -0,0 +1,74 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the current language's compiler +# or gives an error. (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# 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 . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 3 + +AC_DEFUN([AX_CHECK_COMPILE_FLAG], +[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl +AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ + ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS + _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" + AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) +AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes], + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_COMPILE_FLAGS -- 2.20.1 ================================================ FILE: package/janus-gateway/0003-Fix-potential-Cross-site-Scripting-XSS-exploits-in-demos.patch ================================================ From ba166e9adebfe5343f826c6a9e02299d35414ffd Mon Sep 17 00:00:00 2001 From: Lorenzo Miniero Date: Thu, 25 Nov 2021 17:20:53 +0100 Subject: [PATCH] Fix potential Cross-site Scripting (XSS) exploits in demos (#2817) [Retrieved (and backported) from: https://github.com/meetecho/janus-gateway/commit/ba166e9adebfe5343f826c6a9e02299d35414ffd] Signed-off-by: Fabrice Fontaine --- html/audiobridgetest.js | 17 +++++++++++++---- html/recordplaytest.js | 13 +++++++++++-- html/screensharingtest.js | 11 ++++++++++- html/streamingtest.js | 13 +++++++++++-- html/textroomtest.js | 23 ++++++++++++++--------- html/videocalltest.js | 15 ++++++++++++--- html/videoroomtest.js | 13 +++++++++++-- html/vp9svctest.js | 13 +++++++++++-- 8 files changed, 93 insertions(+), 25 deletions(-) diff --git a/html/audiobridgetest.js b/html/audiobridgetest.js index 18e1cc1839..f757789708 100644 --- a/html/audiobridgetest.js +++ b/html/audiobridgetest.js @@ -178,7 +178,7 @@ $(document).ready(function() { Janus.debug("Got a list of participants:", list); for(var f in list) { var id = list[f]["id"]; - var display = list[f]["display"]; + var display = escapeXmlTags(list[f]["display"]); var setup = list[f]["setup"]; var muted = list[f]["muted"]; var spatial = list[f]["spatial_position"]; @@ -222,7 +222,7 @@ $(document).ready(function() { Janus.debug("Got a list of participants:", list); for(var f in list) { var id = list[f]["id"]; - var display = list[f]["display"]; + var display = escapeXmlTags(list[f]["display"]); var setup = list[f]["setup"]; var muted = list[f]["muted"]; var spatial = list[f]["spatial_position"]; @@ -267,7 +267,7 @@ $(document).ready(function() { Janus.debug("Got a list of participants:", list); for(var f in list) { var id = list[f]["id"]; - var display = list[f]["display"]; + var display = escapeXmlTags(list[f]["display"]); var setup = list[f]["setup"]; var muted = list[f]["muted"]; var spatial = list[f]["spatial_position"]; @@ -429,7 +429,7 @@ function registerUsername() { return; } var register = { request: "join", room: myroom, display: username }; - myusername = username; + myusername = escapeXmlTags(username); mixertest.send({ message: register}); } } @@ -448,3 +448,12 @@ function getQueryStringValue(name) { results = regex.exec(location.search); return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } + +// Helper to escape XML tags +function escapeXmlTags(value) { + if(value) { + var escapedValue = value.replace(new RegExp('<', 'g'), '<'); + escapedValue = escapedValue.replace(new RegExp('>', 'g'), '>'); + return escapedValue; + } +} diff --git a/html/recordplaytest.js b/html/recordplaytest.js index 74ee7bed95..52b5ccbc4c 100644 --- a/html/recordplaytest.js +++ b/html/recordplaytest.js @@ -423,11 +423,11 @@ function updateRecsList() { Janus.debug("Got a list of available recordings:", list); for(var mp in list) { Janus.debug(" >> [" + list[mp]["id"] + "] " + list[mp]["name"] + " (" + list[mp]["date"] + ")"); - $('#recslist').append("
  • " + list[mp]["name"] + " [" + list[mp]["date"] + "]" + "
  • "); + $('#recslist').append("
  • " + escapeXmlTags(list[mp]["name"]) + " [" + list[mp]["date"] + "]" + "
  • "); } $('#recslist a').unbind('click').click(function() { selectedRecording = $(this).attr("id"); - selectedRecordingInfo = $(this).text(); + selectedRecordingInfo = escapeXmlTags($(this).text()); $('#recset').html($(this).html()).parent().removeClass('open'); $('#play').removeAttr('disabled').click(startPlayout); return false; @@ -545,3 +545,12 @@ function getQueryStringValue(name) { results = regex.exec(location.search); return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } + +// Helper to escape XML tags +function escapeXmlTags(value) { + if(value) { + var escapedValue = value.replace(new RegExp('<', 'g'), '<'); + escapedValue = escapedValue.replace(new RegExp('>', 'g'), '>'); + return escapedValue; + } +} diff --git a/html/screensharingtest.js b/html/screensharingtest.js index 61eac70f43..c64d8dbd67 100644 --- a/html/screensharingtest.js +++ b/html/screensharingtest.js @@ -161,7 +161,7 @@ $(document).ready(function() { if(event === "joined") { myid = msg["id"]; $('#session').html(room); - $('#title').html(msg["description"]); + $('#title').html(escapeXmlTags(msg["description"])); Janus.log("Successfully joined room " + msg["room"] + " with ID " + myid); if(role === "publisher") { // This is our session, publish our stream @@ -514,3 +514,12 @@ function newRemoteFeed(id, display) { } }); } + +// Helper to escape XML tags +function escapeXmlTags(value) { + if(value) { + var escapedValue = value.replace(new RegExp('<', 'g'), '<'); + escapedValue = escapedValue.replace(new RegExp('>', 'g'), '>'); + return escapedValue; + } +} diff --git a/html/streamingtest.js b/html/streamingtest.js index 7dd2e1f681..3f9937f11c 100644 --- a/html/streamingtest.js +++ b/html/streamingtest.js @@ -323,7 +323,7 @@ function updateStreamsList() { Janus.debug(list); for(var mp in list) { Janus.debug(" >> [" + list[mp]["id"] + "] " + list[mp]["description"] + " (" + list[mp]["type"] + ")"); - $('#streamslist').append("
  • " + list[mp]["description"] + " (" + list[mp]["type"] + ")" + "
  • "); + $('#streamslist').append("
  • " + escapeXmlTags(list[mp]["description"]) + " (" + list[mp]["type"] + ")" + "
  • "); } $('#streamslist a').unbind('click').click(function() { selectedStream = $(this).attr("id"); @@ -345,7 +345,7 @@ function getStreamInfo() { var body = { request: "info", id: parseInt(selectedStream) || selectedStream }; streaming.send({ message: body, success: function(result) { if(result && result.info && result.info.metadata) { - $('#metadata').html(result.info.metadata); + $('#metadata').html(escapeXmlTags(result.info.metadata)); $('#info').removeClass('hide').show(); } }}); @@ -394,6 +394,15 @@ function stopStream() { simulcastStarted = false; } +// Helper to escape XML tags +function escapeXmlTags(value) { + if(value) { + var escapedValue = value.replace(new RegExp('<', 'g'), '<'); + escapedValue = escapedValue.replace(new RegExp('>', 'g'), '>'); + return escapedValue; + } +} + // Helpers to create Simulcast-related UI, if enabled function addSimulcastButtons() { $('#curres').parent().append( diff --git a/html/textroomtest.js b/html/textroomtest.js index 082ae44905..3d0697e35a 100644 --- a/html/textroomtest.js +++ b/html/textroomtest.js @@ -153,9 +153,7 @@ $(document).ready(function() { var what = json["textroom"]; if(what === "message") { // Incoming message: public or private? - var msg = json["text"]; - msg = msg.replace(new RegExp('<', 'g'), '<'); - msg = msg.replace(new RegExp('>', 'g'), '>'); + var msg = escapeXmlTags(json["text"]); var from = json["from"]; var dateString = getDateString(json["date"]); var whisper = json["whisper"]; @@ -170,9 +168,7 @@ $(document).ready(function() { } } else if(what === "announcement") { // Room announcement - var msg = json["text"]; - msg = msg.replace(new RegExp('<', 'g'), '<'); - msg = msg.replace(new RegExp('>', 'g'), '>'); + var msg = escapeXmlTags(json["text"]); var dateString = getDateString(json["date"]); $('#chatroom').append('

    [' + dateString + '] ' + msg + ''); $('#chatroom').get(0).scrollTop = $('#chatroom').get(0).scrollHeight; @@ -180,7 +176,7 @@ $(document).ready(function() { // Somebody joined var username = json["username"]; var display = json["display"]; - participants[username] = display ? display : username; + participants[username] = escapeXmlTags(display ? display : username); if(username !== myid && $('#rp' + username).length === 0) { // Add to the participants list $('#list').append('

  • ' + participants[username] + '
  • '); @@ -282,7 +278,7 @@ function registerUsername() { username: myid, display: username }; - myusername = username; + myusername = escapeXmlTags(username); transactions[transaction] = function(response) { if(response["textroom"] === "error") { // Something went wrong @@ -312,7 +308,7 @@ function registerUsername() { if(response.participants && response.participants.length > 0) { for(var i in response.participants) { var p = response.participants[i]; - participants[p.username] = p.display ? p.display : p.username; + participants[p.username] = escapeXmlTags(p.display ? p.display : p.username); if(p.username !== myid && $('#rp' + p.username).length === 0) { // Add to the participants list $('#list').append('
  • ' + participants[p.username] + '
  • '); @@ -418,3 +414,12 @@ function getQueryStringValue(name) { results = regex.exec(location.search); return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } + +// Helper to escape XML tags +function escapeXmlTags(value) { + if(value) { + var escapedValue = value.replace(new RegExp('<', 'g'), '<'); + escapedValue = escapedValue.replace(new RegExp('>', 'g'), '>'); + return escapedValue; + } +} diff --git a/html/videocalltest.js b/html/videocalltest.js index d1c1ab8d07..18ccbc2c47 100644 --- a/html/videocalltest.js +++ b/html/videocalltest.js @@ -148,7 +148,7 @@ $(document).ready(function() { } else if(result["event"]) { var event = result["event"]; if(event === 'registered') { - myusername = result["username"]; + myusername = escapeXmlTags(result["username"]); Janus.log("Successfully registered as " + myusername + "!"); $('#youok').removeClass('hide').show().html("Registered as '" + myusername + "'"); // Get a list of available peers, just for fun @@ -163,7 +163,7 @@ $(document).ready(function() { bootbox.alert("Waiting for the peer to answer..."); } else if(event === 'incomingcall') { Janus.log("Incoming call from " + result["username"] + "!"); - yourusername = result["username"]; + yourusername = escapeXmlTags(result["username"]); // Notify user bootbox.hideAll(); incoming = bootbox.dialog({ @@ -213,7 +213,7 @@ $(document).ready(function() { }); } else if(event === 'accepted') { bootbox.hideAll(); - var peer = result["username"]; + var peer = escapeXmlTags(result["username"]); if(!peer) { Janus.log("Call started!"); } else { @@ -598,6 +598,15 @@ function getQueryStringValue(name) { return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } +// Helper to escape XML tags +function escapeXmlTags(value) { + if(value) { + var escapedValue = value.replace(new RegExp('<', 'g'), '<'); + escapedValue = escapedValue.replace(new RegExp('>', 'g'), '>'); + return escapedValue; + } +} + // Helpers to create Simulcast-related UI, if enabled function addSimulcastButtons(temporal) { $('#curres').parent().append( diff --git a/html/videoroomtest.js b/html/videoroomtest.js index 6a566891d8..5a3ade9be9 100644 --- a/html/videoroomtest.js +++ b/html/videoroomtest.js @@ -400,7 +400,7 @@ function registerUsername() { ptype: "publisher", display: username }; - myusername = username; + myusername = escapeXmlTags(username); sfutest.send({ message: register }); } } @@ -530,7 +530,7 @@ function newRemoteFeed(id, display, audio, video) { } } remoteFeed.rfid = msg["id"]; - remoteFeed.rfdisplay = msg["display"]; + remoteFeed.rfdisplay = escapeXmlTags(msg["display"]); if(!remoteFeed.spinner) { var target = document.getElementById('videoremote'+remoteFeed.rfindex); remoteFeed.spinner = new Spinner({top:100}).spin(target); @@ -685,6 +685,15 @@ function getQueryStringValue(name) { return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } +// Helper to escape XML tags +function escapeXmlTags(value) { + if(value) { + var escapedValue = value.replace(new RegExp('<', 'g'), '<'); + escapedValue = escapedValue.replace(new RegExp('>', 'g'), '>'); + return escapedValue; + } +} + // Helpers to create Simulcast-related UI, if enabled function addSimulcastButtons(feed, temporal) { var index = feed; diff --git a/html/vp9svctest.js b/html/vp9svctest.js index eca0239c32..b22ccf3340 100644 --- a/html/vp9svctest.js +++ b/html/vp9svctest.js @@ -387,7 +387,7 @@ function registerUsername() { ptype: "publisher", display: username }; - myusername = username; + myusername = escapeXmlTags(username); sfutest.send({ message: register }); } } @@ -486,7 +486,7 @@ function newRemoteFeed(id, display, audio, video) { } } remoteFeed.rfid = msg["id"]; - remoteFeed.rfdisplay = msg["display"]; + remoteFeed.rfdisplay = escapeXmlTags(msg["display"]); if(!remoteFeed.spinner) { var target = document.getElementById('videoremote'+remoteFeed.rfindex); remoteFeed.spinner = new Spinner({top:100}).spin(target); @@ -630,6 +630,15 @@ function newRemoteFeed(id, display, audio, video) { }); } +// Helper to escape XML tags +function escapeXmlTags(value) { + if(value) { + var escapedValue = value.replace(new RegExp('<', 'g'), '<'); + escapedValue = escapedValue.replace(new RegExp('>', 'g'), '>'); + return escapedValue; + } +} + // Helpers to create SVC-related UI for a new viewer function addSvcButtons(feed) { var index = feed; ================================================ FILE: package/janus-gateway/Config.in ================================================ menuconfig BR2_PACKAGE_JANUS_GATEWAY bool "janus-gateway" depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_WCHAR # libnice -> libglib2 depends on BR2_USE_MMU # libnice depends on !BR2_STATIC_LIBS # dlopen select BR2_PACKAGE_JANSSON select BR2_PACKAGE_LIBCONFIG select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBNICE select BR2_PACKAGE_LIBSRTP select BR2_PACKAGE_OPENSSL help Janus is an open source, general purpose, WebRTC gateway designed and developed by Meetecho. https://github.com/meetecho/janus-gateway if BR2_PACKAGE_JANUS_GATEWAY config BR2_PACKAGE_JANUS_GATEWAY_DEMOS bool "HTML demos" help Install the demonstration website, as featured on https://janus.conf.meetecho.com/ comment "plugins" config BR2_PACKAGE_JANUS_GATEWAY_AUDIO_BRIDGE bool "audio bridge" select BR2_PACKAGE_OPUS config BR2_PACKAGE_JANUS_GATEWAY_ECHO_TEST bool "echo test" config BR2_PACKAGE_JANUS_GATEWAY_RECORDPLAY bool "record and play" config BR2_PACKAGE_JANUS_GATEWAY_SIP_GATEWAY bool "sip gateway" select BR2_PACKAGE_SOFIA_SIP config BR2_PACKAGE_JANUS_GATEWAY_STREAMING bool "streaming" # SO_REUSEPORT depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 comment "streaming plugin needs a toolchain w/ headers >= 3.9" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 config BR2_PACKAGE_JANUS_GATEWAY_TEXT_ROOM bool "text room" config BR2_PACKAGE_JANUS_GATEWAY_VIDEO_CALL bool "video call" config BR2_PACKAGE_JANUS_GATEWAY_VIDEO_ROOM bool "video room" config BR2_PACKAGE_JANUS_GATEWAY_VOICE_MAIL bool "voice mail" select BR2_PACKAGE_LIBOGG comment "transports" config BR2_PACKAGE_JANUS_GATEWAY_MQTT bool "MQTT" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_PAHO_MQTT_C comment "MQTT transport needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_JANUS_GATEWAY_RABBITMQ bool "RabbitMQ" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_RABBITMQ_C comment "RabbitMQ transport needs a toolchain w/ dynamic library, threads" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_JANUS_GATEWAY_REST bool "REST (HTTP/HTTPS)" select BR2_PACKAGE_LIBMICROHTTPD config BR2_PACKAGE_JANUS_GATEWAY_UNIX_SOCKETS bool "Unix Sockets" default y config BR2_PACKAGE_JANUS_GATEWAY_WEBSOCKETS bool "WebSockets" select BR2_PACKAGE_LIBWEBSOCKETS endif 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 ================================================ FILE: package/janus-gateway/janus-gateway.hash ================================================ # Locally computed sha256 21e2fc7dee4b20ed8d749a69577eccd961b0bfe5b863d42f39ddfcd2af903718 janus-gateway-0.10.10.tar.gz sha256 91d04c97fa1da3fcd28205873276358aafc071c5b00a9ea8c49dd06d487a9dc6 COPYING ================================================ FILE: package/janus-gateway/janus-gateway.mk ================================================ ################################################################################ # # janus-gateway # ################################################################################ JANUS_GATEWAY_VERSION = 0.10.10 JANUS_GATEWAY_SITE = $(call github,meetecho,janus-gateway,v$(JANUS_GATEWAY_VERSION)) JANUS_GATEWAY_LICENSE = GPL-3.0 with OpenSSL exception JANUS_GATEWAY_LICENSE_FILES = COPYING JANUS_GATEWAY_CPE_ID_VENDOR = meetecho JANUS_GATEWAY_CPE_ID_PRODUCT = janus # 0003-Fix-potential-Cross-site-Scripting-XSS-exploits-in-demos.patch JANUS_GATEWAY_IGNORE_CVES += CVE-2021-4020 # ding-libs provides the ini_config library JANUS_GATEWAY_DEPENDENCIES = host-pkgconf jansson libnice \ libsrtp host-gengetopt libglib2 openssl libconfig \ $(if $(BR2_PACKAGE_LIBOGG),libogg) # Straight out of the repository, no ./configure, and we also patch # configure.ac. JANUS_GATEWAY_AUTORECONF = YES JANUS_GATEWAY_CONF_OPTS = \ --disable-data-channels \ --disable-sample-event-handler ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_DEMOS),) define JANUS_GATEWAY_REMOVE_DEMOS $(RM) -fr $(TARGET_DIR)/usr/share/janus/demos/ endef JANUS_GATEWAY_POST_INSTALL_TARGET_HOOKS += JANUS_GATEWAY_REMOVE_DEMOS endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_AUDIO_BRIDGE),y) JANUS_GATEWAY_DEPENDENCIES += opus JANUS_GATEWAY_CONF_OPTS += --enable-plugin-audiobridge else JANUS_GATEWAY_CONF_OPTS += --disable-plugin-audiobridge endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_ECHO_TEST),y) JANUS_GATEWAY_CONF_OPTS += --enable-plugin-echotest else JANUS_GATEWAY_CONF_OPTS += --disable-plugin-echotest endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_RECORDPLAY),y) JANUS_GATEWAY_CONF_OPTS += --enable-plugin-recordplay else JANUS_GATEWAY_CONF_OPTS += --disable-plugin-recordplay endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_SIP_GATEWAY),y) JANUS_GATEWAY_DEPENDENCIES += sofia-sip JANUS_GATEWAY_CONF_OPTS += --enable-plugin-sip else JANUS_GATEWAY_CONF_OPTS += --disable-plugin-sip endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_STREAMING),y) JANUS_GATEWAY_CONF_OPTS += --enable-plugin-streaming else JANUS_GATEWAY_CONF_OPTS += --disable-plugin-streaming endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_TEXT_ROOM),y) JANUS_GATEWAY_CONF_OPTS += --enable-plugin-textroom else JANUS_GATEWAY_CONF_OPTS += --disable-plugin-textroom endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_VIDEO_CALL),y) JANUS_GATEWAY_CONF_OPTS += --enable-plugin-videocall else JANUS_GATEWAY_CONF_OPTS += --disable-plugin-videocall endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_VIDEO_ROOM),y) JANUS_GATEWAY_CONF_OPTS += --enable-plugin-videoroom else JANUS_GATEWAY_CONF_OPTS += --disable-plugin-videoroom endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_VOICE_MAIL),y) JANUS_GATEWAY_CONF_OPTS += --enable-plugin-voicemail else JANUS_GATEWAY_CONF_OPTS += --disable-plugin-voicemail endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_MQTT),y) JANUS_GATEWAY_DEPENDENCIES += paho-mqtt-c JANUS_GATEWAY_CONF_OPTS += --enable-mqtt else JANUS_GATEWAY_CONF_OPTS += --disable-mqtt endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_RABBITMQ),y) JANUS_GATEWAY_DEPENDENCIES += rabbitmq-c JANUS_GATEWAY_CONF_OPTS += --enable-rabbitmq else JANUS_GATEWAY_CONF_OPTS += --disable-rabbitmq endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_REST),y) JANUS_GATEWAY_DEPENDENCIES += libmicrohttpd JANUS_GATEWAY_CONF_OPTS += --enable-rest else JANUS_GATEWAY_CONF_OPTS += --disable-rest endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_UNIX_SOCKETS),y) JANUS_GATEWAY_CONF_OPTS += --enable-unix-sockets else JANUS_GATEWAY_CONF_OPTS += --disable-unix-sockets endif ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_WEBSOCKETS),y) JANUS_GATEWAY_DEPENDENCIES += libwebsockets JANUS_GATEWAY_CONF_OPTS += --enable-websockets else JANUS_GATEWAY_CONF_OPTS += --disable-websockets endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) JANUS_GATEWAY_DEPENDENCIES += systemd JANUS_GATEWAY_CONF_OPTS += --enable-systemd-sockets else JANUS_GATEWAY_CONF_OPTS += --disable-systemd-sockets endif $(eval $(autotools-package)) ================================================ FILE: package/jasper/Config.in ================================================ config BR2_PACKAGE_JASPER bool "jasper" help JPEG-2000 decoder http://www.ece.uvic.ca/~mdadams/jasper/ ================================================ FILE: package/jasper/jasper.hash ================================================ # Locally calculated sha256 6b4e5f682be0ab1a5acb0eeb6bf41d6ce17a658bb8e2dbda95de40100939cc88 jasper-2.0.28.tar.gz sha256 4ad1bb42aff888c4403d792e6e2c5f1716d6c279fea70b296333c9d577d30b81 LICENSE ================================================ FILE: package/jasper/jasper.mk ================================================ ################################################################################ # # jasper # ################################################################################ JASPER_VERSION = 2.0.28 JASPER_SITE = $(call github,jasper-software,jasper,version-$(JASPER_VERSION)) JASPER_INSTALL_STAGING = YES JASPER_LICENSE = JasPer-2.0 JASPER_LICENSE_FILES = LICENSE JASPER_CPE_ID_VENDOR = jasper_project JASPER_SUPPORTS_IN_SOURCE_BUILD = NO JASPER_CONF_OPTS = \ -DCMAKE_DISABLE_FIND_PACKAGE_DOXYGEN=TRUE \ -DCMAKE_DISABLE_FIND_PACKAGE_LATEX=TRUE ifeq ($(BR2_STATIC_LIBS),y) JASPER_CONF_OPTS += -DJAS_ENABLE_SHARED=OFF endif ifeq ($(BR2_PACKAGE_JPEG),y) JASPER_CONF_OPTS += -DJAS_ENABLE_LIBJPEG=ON JASPER_DEPENDENCIES += jpeg else JASPER_CONF_OPTS += -DJAS_ENABLE_LIBJPEG=OFF endif JASPER_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) JASPER_CFLAGS += -O0 endif JASPER_CONF_OPTS += -DCMAKE_C_FLAGS="$(JASPER_CFLAGS)" $(eval $(cmake-package)) ================================================ FILE: package/jbig2dec/Config.in ================================================ config BR2_PACKAGE_JBIG2DEC bool "jbig2dec" help jbig2dec is a decoder implementation of the JBIG2 image compression format. https://jbig2dec.com/ ================================================ FILE: package/jbig2dec/jbig2dec.hash ================================================ # https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9530/MD5SUMS # and SHA512SUMS are missing the hashes for this file. # Locally computed: sha256 279476695b38f04939aa59d041be56f6bade3422003a406a85e9792c27118a37 jbig2dec-0.19.tar.gz # Hash for license files: sha256 1bf5258afe453934484fd0cea97508b72301633a6a78b0ae8a9ee44ac78f26d9 LICENSE ================================================ FILE: package/jbig2dec/jbig2dec.mk ================================================ ################################################################################ # # jbig2dec # ################################################################################ JBIG2DEC_VERSION = 0.19 JBIG2DEC_SITE = \ https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9530 JBIG2DEC_LICENSE = AGPL-3.0+ JBIG2DEC_LICENSE_FILES = LICENSE JBIG2DEC_CPE_ID_VENDOR = artifex JBIG2DEC_INSTALL_STAGING = YES # tarball is missing install-sh, install.sh, or shtool JBIG2DEC_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/jemalloc/Config.in ================================================ config BR2_PACKAGE_JEMALLOC_ARCH_SUPPORTS bool # see include/jemalloc/internal/quantum.h 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_m68k default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_nios2 default y if BR2_or1k default y if BR2_powerpc default y if BR2_riscv default y if BR2_sh4 || BR2sh4eb || BR2_sh4a || BR2_sh4aeb default y if BR2_sparc64 config BR2_PACKAGE_JEMALLOC bool "jemalloc" depends on BR2_PACKAGE_JEMALLOC_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS help This library providing a malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support. http://jemalloc.net/ comment "jemalloc needs a toolchain w/ threads" depends on BR2_PACKAGE_JEMALLOC_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/jemalloc/jemalloc.hash ================================================ # Locally calculated sha256 34330e5ce276099e2e8950d9335db5a875689a4c6a56751ef3b1d8c537f887f6 jemalloc-5.2.1.tar.bz2 sha256 94aa2caa98c25d942f58b956c71dba6a99ff98fc3a31cbc669fe2a4cd0268b53 COPYING ================================================ FILE: package/jemalloc/jemalloc.mk ================================================ ################################################################################ # # jemalloc # ################################################################################ JEMALLOC_VERSION = 5.2.1 JEMALLOC_SOURCE = jemalloc-$(JEMALLOC_VERSION).tar.bz2 JEMALLOC_SITE = https://github.com/jemalloc/jemalloc/releases/download/$(JEMALLOC_VERSION) JEMALLOC_LICENSE = BSD-2-Clause JEMALLOC_LICENSE_FILES = COPYING JEMALLOC_INSTALL_STAGING = YES JEMALLOC_CONFIG_SCRIPTS = jemalloc-config # gcc bug internal compiler error: in merge_overlapping_regs, at # regrename.c:304. This bug is fixed since gcc 6. ifeq ($(BR2_or1k):$(BR2_TOOLCHAIN_GCC_AT_LEAST_6),y:) JEMALLOC_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -O0" endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/jh71xx-tools/Config.in.host ================================================ config BR2_PACKAGE_HOST_JH71XX_TOOLS bool "host jh71xx-tools" depends on BR2_riscv help Bootloader recovery and updater tool for StarFive JH7100 SoCs. https://github.com/kprasadvnsi/JH71xx-tools ================================================ FILE: package/jh71xx-tools/jh71xx-tools.hash ================================================ # Locally calculated sha256 0f16ea896164f6e8bfe0a03bbbd95ff14d474445ba6f045f9377d01282c9364f jh71xx-tools-7a29f4b9d2355aa39afa8680680909bb74e4991d.tar.gz sha256 cf03c59b41f6d8a5046f7bff4bbe3576075314299a4d0828d7855bf60af81001 LICENSE ================================================ FILE: package/jh71xx-tools/jh71xx-tools.mk ================================================ ################################################################################ # # jh71xx-tools # ################################################################################ JH71XX_TOOLS_VERSION = 7a29f4b9d2355aa39afa8680680909bb74e4991d JH71XX_TOOLS_SITE = $(call github,kprasadvnsi,JH71xx-tools,$(JH71XX_TOOLS_VERSION)) JH71XX_TOOLS_LICENSE = MIT JH71XX_TOOLS_LICENSE_FILES = LICENSE define HOST_JH71XX_TOOLS_BUILD_CMDS $(HOSTCC) -o $(@D)/jh7100-recover $(@D)/jh7100-recover.c endef define HOST_JH71XX_TOOLS_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/jh7100-recover $(HOST_DIR)/bin/jh7100-recover endef $(eval $(host-generic-package)) ================================================ FILE: package/jhead/Config.in ================================================ config BR2_PACKAGE_JHEAD bool "jhead" depends on BR2_USE_WCHAR help Jhead is a program for manipulating settings and thumbnails in Exif jpeg headers used by most Digital Cameras. http://www.sentex.net/~mwandel/jhead/ comment "jhead needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/jhead/jhead.hash ================================================ # Locally calculated from download (no sig, hash) sha256 5c5258c3d7a840bf831e22174e4a24cb1de3baf442f7cb73d5ab31b4ae0b0058 jhead-3.06.0.1.tar.gz sha256 8b709512c737fc0c1e1024800b9a44c54d14ab02132c636a66c3ac66955c3e95 readme.txt ================================================ FILE: package/jhead/jhead.mk ================================================ ################################################################################ # # jhead # ################################################################################ JHEAD_VERSION = 3.06.0.1 JHEAD_SITE = $(call github,Matthias-Wandel,jhead,$(JHEAD_VERSION)) JHEAD_LICENSE = Public Domain JHEAD_LICENSE_FILES = readme.txt JHEAD_CPE_ID_VENDOR = jhead_project define JHEAD_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define JHEAD_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/jhead $(TARGET_DIR)/usr/bin/jhead endef $(eval $(generic-package)) ================================================ FILE: package/jimtcl/Config.in ================================================ config BR2_PACKAGE_JIMTCL bool "jimtcl" help Jim Tcl is a small footprint reimplementation of the Tcl scripting language. The core language engine is compatible with Tcl 8.5+, while implementing a significant subset of the Tcl 8.6 command set, plus additional features available only in Jim Tcl. http://jim.tcl.tk ================================================ FILE: package/jimtcl/jimtcl.hash ================================================ # Locally computed sha256 9e79a960de925552eeb4df51121f0ea017e34409568117b1ac461f4c3071289e jimtcl-0.80.tar.gz sha256 419f1146334e57fb258d6c957d1f94d43455ec0d24b1b54c4447e5f61a353950 LICENSE ================================================ FILE: package/jimtcl/jimtcl.mk ================================================ ################################################################################ # # jimtcl # ################################################################################ JIMTCL_VERSION = 0.80 JIMTCL_SITE = $(call github,msteveb,jimtcl,$(JIMTCL_VERSION)) JIMTCL_INSTALL_STAGING = YES JIMTCL_LICENSE = BSD-2-Clause JIMTCL_LICENSE_FILES = LICENSE JIMTCL_HEADERS_TO_INSTALL = \ jim.h \ jim-eventloop.h \ jim-signal.h \ jim-subcmd.h \ jim-win32compat.h \ jim-config.h ifeq ($(BR2_PACKAGE_TCL),) define JIMTCL_LINK_TCLSH ln -sf jimsh $(TARGET_DIR)/usr/bin/tclsh endef endif ifeq ($(BR2_STATIC_LIBS),y) define JIMTCL_INSTALL_LIB $(INSTALL) -m 0644 -D $(@D)/libjim.a $(1)/usr/lib/libjim.a endef else JIMTCL_SHARED = --shared define JIMTCL_INSTALL_LIB $(INSTALL) -m 0755 -D $(@D)/libjim.so.$(JIMTCL_VERSION) \ $(1)/usr/lib/libjim.so.$(JIMTCL_VERSION) ln -sf libjim.so.$(JIMTCL_VERSION) $(1)/usr/lib/libjim.so endef endif # build system doesn't use autotools, but does use an old version of # gnuconfig which doesn't know all the architectures supported by # Buildroot, so update config.guess / config.sub like we do in # pkg-autotools.mk JIMTCL_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK HOST_JIMTCL_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK # jimtcl really wants to find a existing $CXX, so feed it false # when we do not have one. define JIMTCL_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_CONFIGURE_OPTS) \ CCACHE=none \ $(if $(BR2_INSTALL_LIBSTDCPP),,CXX=false) \ ./configure --prefix=/usr \ --host=$(GNU_TARGET_NAME) \ --build=$(GNU_HOST_NAME) \ $(JIMTCL_SHARED) \ ) endef # -fPIC is mandatory to build shared libraries on certain architectures # (e.g. SPARC) and causes no harm or drawbacks on other architectures define JIMTCL_BUILD_CMDS SH_CFLAGS="-fPIC" \ SHOBJ_CFLAGS="-fPIC" \ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define JIMTCL_INSTALL_STAGING_CMDS for i in $(JIMTCL_HEADERS_TO_INSTALL); do \ cp -a $(@D)/$$i $(STAGING_DIR)/usr/include/ || exit 1 ; \ done; \ $(call JIMTCL_INSTALL_LIB,$(STAGING_DIR)) endef define JIMTCL_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/jimsh $(TARGET_DIR)/usr/bin/jimsh $(call JIMTCL_INSTALL_LIB,$(TARGET_DIR)) $(JIMTCL_LINK_TCLSH) endef define HOST_JIMTCL_CONFIGURE_CMDS cd $(@D) && \ $(HOST_CONFIGURE_OPTS) \ CCACHE=none \ ./configure --prefix=$(HOST_DIR) --shared endef define HOST_JIMTCL_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_JIMTCL_INSTALL_CMDS for i in $(JIMTCL_HEADERS_TO_INSTALL); do \ cp -a $(@D)/$$i $(HOST_DIR)/usr/include/ || exit 1 ; \ done; $(INSTALL) -m 0755 -D $(@D)/libjim.so.$(JIMTCL_VERSION) \ $(HOST_DIR)/usr/lib/libjim.so.$(JIMTCL_VERSION) ln -sf libjim.so.$(JIMTCL_VERSION) $(HOST_DIR)/usr/lib/libjim.so endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/jitterentropy-library/0001-Makefile-cleanup-install.patch ================================================ From 060b9b4147f6e5ff386a8b017796118d783e59fa Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Tue, 22 Oct 2019 12:44:30 -0500 Subject: [PATCH] Makefile: cleanup install for rebuilds Support the ability to rebuild and redeploy without a clean. This required some force linking and man archive creation. Provide the ability to override the stripping of the shared lib for cases where a embedded target build may want to control stripping or provide cross arch tools. Signed-off-by: Matthew Weber Signed-off-by: Stephan Mueller [Retrieved from: https://github.com/smuellerDD/jitterentropy-library/commit/060b9b4147f6e5ff386a8b017796118d783e59fa] Signed-off-by: Fabrice Fontaine --- Makefile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 4ff069b..2e78607 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,8 @@ LIBDIR := lib # include target directory INCDIR := include +INSTALL_STRIP ?= install -s + NAME := jitterentropy LIBMAJOR=$(shell cat jitterentropy-base.c | grep define | grep MAJVERSION | awk '{print $$3}') LIBMINOR=$(shell cat jitterentropy-base.c | grep define | grep MINVERSION | awk '{print $$3}') @@ -58,15 +60,15 @@ cppcheck: install: install -d -m 0755 $(DESTDIR)$(PREFIX)/share/man/man3 install -m 644 doc/$(NAME).3 $(DESTDIR)$(PREFIX)/share/man/man3/ - gzip -9 $(DESTDIR)$(PREFIX)/share/man/man3/$(NAME).3 + gzip -f -9 $(DESTDIR)$(PREFIX)/share/man/man3/$(NAME).3 install -d -m 0755 $(DESTDIR)$(PREFIX)/$(LIBDIR) - install -m 0755 -s lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/ + $(INSTALL_STRIP) -m 0755 lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/ install -d -m 0755 $(DESTDIR)$(PREFIX)/$(INCDIR) install -m 0644 jitterentropy.h $(DESTDIR)$(PREFIX)/$(INCDIR)/ install -m 0644 jitterentropy-base-user.h $(DESTDIR)$(PREFIX)/$(INCDIR)/ $(RM) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR) - ln -s lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR) - ln -s lib$(NAME).so.$(LIBMAJOR) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so + ln -sf lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR) + ln -sf lib$(NAME).so.$(LIBMAJOR) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so clean: @- $(RM) $(NAME) ================================================ FILE: package/jitterentropy-library/0002-Makefile-add-additional-install-targets.patch ================================================ From d545d76cb3173cc98e1421604929248f2d882821 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 24 Oct 2019 18:48:47 +0200 Subject: [PATCH] Makefile: add additional install targets Add install-includes, install-man, install-shared and install-static targets to allow the user to configure what must be installed Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/smuellerDD/jitterentropy-library/pull/11] --- Makefile | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 2e78607..41bc4f7 100644 --- a/Makefile +++ b/Makefile @@ -57,19 +57,29 @@ scan: $(analyze_plists) cppcheck: cppcheck --force -q --enable=performance --enable=warning --enable=portability *.h *.c -install: +install: install-man install-shared install-includes + +install-man: install -d -m 0755 $(DESTDIR)$(PREFIX)/share/man/man3 install -m 644 doc/$(NAME).3 $(DESTDIR)$(PREFIX)/share/man/man3/ gzip -f -9 $(DESTDIR)$(PREFIX)/share/man/man3/$(NAME).3 + +install-shared: install -d -m 0755 $(DESTDIR)$(PREFIX)/$(LIBDIR) $(INSTALL_STRIP) -m 0755 lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/ - install -d -m 0755 $(DESTDIR)$(PREFIX)/$(INCDIR) - install -m 0644 jitterentropy.h $(DESTDIR)$(PREFIX)/$(INCDIR)/ - install -m 0644 jitterentropy-base-user.h $(DESTDIR)$(PREFIX)/$(INCDIR)/ $(RM) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR) ln -sf lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR) ln -sf lib$(NAME).so.$(LIBMAJOR) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so +install-includes: + install -d -m 0755 $(DESTDIR)$(PREFIX)/$(INCDIR) + install -m 0644 jitterentropy.h $(DESTDIR)$(PREFIX)/$(INCDIR)/ + install -m 0644 jitterentropy-base-user.h $(DESTDIR)$(PREFIX)/$(INCDIR)/ + +install-static: + install -d -m 0755 $(DESTDIR)$(PREFIX)/$(LIBDIR) + install -m 0755 lib$(NAME).a $(DESTDIR)$(PREFIX)/$(LIBDIR)/ + clean: @- $(RM) $(NAME) @- $(RM) $(OBJS) -- 2.23.0 ================================================ FILE: package/jitterentropy-library/0003-Makefile-allow-the-user-to-disable-stack-protector.patch ================================================ From 37e8a6a7e5875e20a8de07fbfbb69912f1964f7d Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 28 Oct 2019 09:47:49 +0100 Subject: [PATCH] Makefile: allow the user to disable stack protector Allow the user to disable stack-protector by overriding CFLAGS as it is not supported by all toolchains. Fixes: - http://autobuild.buildroot.net/results/cba1ae830c7a4d1740098fe67aec59b4dc2f9a03 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/smuellerDD/jitterentropy-library/pull/12] --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 41bc4f7..b0f20e2 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ # Compile Noise Source as user space application CC ?= gcc -CFLAGS +=-Wextra -Wall -pedantic -fPIC -O0 #Hardening -CFLAGS +=-fstack-protector-all -fwrapv --param ssp-buffer-size=4 +CFLAGS ?=-fstack-protector-all --param ssp-buffer-size=4 +CFLAGS +=-Wextra -Wall -pedantic -fPIC -O0 -fwrapv LDFLAGS +=-Wl,-z,relro,-z,now # Change as necessary -- 2.23.0 ================================================ FILE: package/jitterentropy-library/Config.in ================================================ config BR2_PACKAGE_JITTERENTROPY_LIBRARY bool "libjitterentropy" help Hardware RNG based on CPU timing jitter. https://github.com/smuellerDD/jitterentropy-library ================================================ FILE: package/jitterentropy-library/jitterentropy-library.hash ================================================ # Locally computed sha256 42d4bd1050b5f0d7b45b5453e5b6cfc45c0492bb428791f571d8f69b066351a4 jitterentropy-library-2.2.0.tar.gz sha256 96b5a6b49aaeeba9036f9b80e6e299d613a8eca158741a25a67dc78792413e23 COPYING sha256 13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239 COPYING.bsd sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING.gplv2 ================================================ FILE: package/jitterentropy-library/jitterentropy-library.mk ================================================ ################################################################################ # # jitterentropy-library # ################################################################################ JITTERENTROPY_LIBRARY_VERSION = 2.2.0 JITTERENTROPY_LIBRARY_SITE = $(call github,smuellerDD,$(JITTERENTROPY_LIBRARY_NAME),v$(JITTERENTROPY_LIBRARY_VERSION)) JITTERENTROPY_LIBRARY_LICENSE = GPL-2.0 or BSD-3-Clause JITTERENTROPY_LIBRARY_LICENSE_FILES = COPYING COPYING.bsd COPYING.gplv2 JITTERENTROPY_LIBRARY_INSTALL_STAGING = YES JITTERENTROPY_LIBRARY_INSTALL_TARGETS = install-includes JITTERENTROPY_LIBRARY_SELINUX_MODULES = entropyd ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y) JITTERENTROPY_LIBRARY_BUILD_TARGETS += jitterentropy-static JITTERENTROPY_LIBRARY_INSTALL_TARGETS += install-static endif ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) JITTERENTROPY_LIBRARY_BUILD_TARGETS += jitterentropy JITTERENTROPY_LIBRARY_INSTALL_TARGETS += install-shared endif define JITTERENTROPY_LIBRARY_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(JITTERENTROPY_LIBRARY_BUILD_TARGETS) endef define JITTERENTROPY_LIBRARY_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) \ INSTALL_STRIP="install" PREFIX=/usr \ $(JITTERENTROPY_LIBRARY_INSTALL_TARGETS) endef define JITTERENTROPY_LIBRARY_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) \ INSTALL_STRIP="install" PREFIX=/usr \ $(JITTERENTROPY_LIBRARY_INSTALL_TARGETS) endef $(eval $(generic-package)) ================================================ FILE: package/jo/Config.in ================================================ config BR2_PACKAGE_JO bool "jo" help Command-line processor to output JSON from a shell https://github.com/jpmens/jo ================================================ FILE: package/jo/jo.hash ================================================ # Locally computed sha256 24c64d2eb863900947f58f32b502c95fec8f086105fd31151b91f54b7b5256a2 jo-1.4.tar.gz sha256 41d8b23dc6e76731f4920b9ce42d0d4a248d243a510319e2441d174a115f35cf COPYING ================================================ FILE: package/jo/jo.mk ================================================ ################################################################################ # # jo # ################################################################################ JO_VERSION = 1.4 JO_SITE = https://github.com/jpmens/jo/releases/download/$(JO_VERSION) JO_LICENSE = MIT (json.[ch]), GPL-2.0+ (rest) JO_LICENSE_FILES = COPYING # don't build man pages JO_CONF_ENV = ac_cv_path_PANDOC='' $(eval $(autotools-package)) ================================================ FILE: package/joe/Config.in ================================================ config BR2_PACKAGE_JOE bool "joe" depends on BR2_USE_MMU # fork() help Joe's Own Editor JOE is an easy-to-use, full featured terminal-based screen editor. Its behavior is a blending of WordStar and GNU-EMACS (but it does not use code from either program). It is a great editor for new users or as an alternative to vi. http://joe-editor.sf.net config BR2_PACKAGE_JOE_FULL bool "full install of rc and syntax highlighting files" default y depends on BR2_PACKAGE_JOE help Install all rc and syntax highlighting files. Without this option only the joe binary is installed, which contains a default configuration. ================================================ FILE: package/joe/joe.hash ================================================ # From https://sourceforge.net/projects/joe-editor/files/JOE%20sources/joe-4.6/ sha1 da7712333f676cfb5ae9f3565fd2225c5a2185ca joe-4.6.tar.gz md5 9017484e6116830d846678b625ea5c43 joe-4.6.tar.gz # Locally computed: sha256 495a0a61f26404070fe8a719d80406dc7f337623788e445b92a9f6de512ab9de joe-4.6.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/joe/joe.mk ================================================ ################################################################################ # # joe # ################################################################################ JOE_VERSION = 4.6 JOE_SITE = http://downloads.sourceforge.net/project/joe-editor/JOE%20sources/joe-$(JOE_VERSION) JOE_LICENSE = GPL-2.0+ JOE_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_NCURSES),y) JOE_DEPENDENCIES += ncurses JOE_CONF_OPTS += --enable-curses else JOE_CONF_OPTS += --disable-curses endif ifneq ($(BR2_PACKAGE_JOE_FULL),y) define JOE_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/joe/joe $(TARGET_DIR)/usr/bin/joe endef endif $(eval $(autotools-package)) ================================================ FILE: package/jose/0001-lib-hsh.c-rename-hsh-local-variable.patch ================================================ From 591fc6da944ffc29936e0019b2bc225ddc81dbba Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Mon, 20 Nov 2017 22:48:33 +0100 Subject: [PATCH] lib/hsh.c: rename hsh local variable The hsh local variable name conflicts with the function prototype of hsh() in hsh.h, causing the following build issues with old compilers (gcc 4.7): hsh.c: In function 'hsh': hsh.c:28:21: error: declaration of 'hsh' shadows a global declaration [-Werror=shadow] hsh.c:26:1: error: shadowed declaration is here [-Werror=shadow] hsh.c: In function 'hsh_buf': hsh.c:60:21: error: declaration of 'hsh' shadows a global declaration [-Werror=shadow] hsh.c:26:1: error: shadowed declaration is here [-Werror=shadow] Therefore, we rename this local variable to _hsh. Submitted-upstream: https://github.com/latchset/jose/pull/51 Signed-off-by: Thomas Petazzoni --- lib/hsh.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/hsh.c b/lib/hsh.c index c59a95f..a2a891b 100644 --- a/lib/hsh.c +++ b/lib/hsh.c @@ -25,7 +25,7 @@ json_t * hsh(jose_cfg_t *cfg, const char *alg, const void *data, size_t dlen) { - jose_io_auto_t *hsh = NULL; + jose_io_auto_t *_hsh = NULL; jose_io_auto_t *enc = NULL; jose_io_auto_t *buf = NULL; char b[1024] = {}; @@ -33,8 +33,8 @@ hsh(jose_cfg_t *cfg, const char *alg, const void *data, size_t dlen) buf = jose_io_buffer(cfg, b, &l); enc = jose_b64_enc_io(buf); - hsh = hsh_io(cfg, alg, enc); - if (!buf || !enc || !hsh || !hsh->feed(hsh, data, dlen) || !hsh->done(hsh)) + _hsh = hsh_io(cfg, alg, enc); + if (!buf || !enc || !_hsh || !_hsh->feed(_hsh, data, dlen) || !_hsh->done(_hsh)) return NULL; return json_stringn(b, l); @@ -57,7 +57,7 @@ hsh_buf(jose_cfg_t *cfg, const char *alg, const void *data, size_t dlen, void *hash, size_t hlen) { const jose_hook_alg_t *a = NULL; - jose_io_auto_t *hsh = NULL; + jose_io_auto_t *_hsh = NULL; jose_io_auto_t *buf = NULL; a = jose_hook_alg_find(JOSE_HOOK_ALG_KIND_HASH, alg); @@ -71,8 +71,8 @@ hsh_buf(jose_cfg_t *cfg, const char *alg, return SIZE_MAX; buf = jose_io_buffer(cfg, hash, &hlen); - hsh = a->hash.hsh(a, cfg, buf); - if (!buf || !hsh || !hsh->feed(hsh, data, dlen) || !hsh->done(hsh)) + _hsh = a->hash.hsh(a, cfg, buf); + if (!buf || !_hsh || !_hsh->feed(_hsh, data, dlen) || !_hsh->done(_hsh)) return SIZE_MAX; return hlen; -- 2.13.6 ================================================ FILE: package/jose/0002-configure-fix-build-with-old-compilers.patch ================================================ From 98e9faa4d39cd5b6aaab882877e19ae394ba3810 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Mon, 20 Nov 2017 23:10:38 +0100 Subject: [PATCH] configure: fix build with old compilers Old gcc versions (gcc 4.7) do not support all warnings flags currently hard-coded by configure.ac. In order to fix this, we import the AX_CHECK_COMPILE_FLAG() macro from the autoconf-archive, and use it in the configure.ac to only use warning flags when the compiler supports them. Submitted-upstream: https://github.com/latchset/jose/pull/51 Signed-off-by: Thomas Petazzoni --- configure.ac | 46 +++++++++++++++------------- m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+), 22 deletions(-) create mode 100644 m4/ax_check_compile_flag.m4 diff --git a/configure.ac b/configure.ac index cf8c9a6..6fe4ded 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,6 @@ AC_PREREQ(2.62) AC_INIT(jose, 10) +AC_CONFIG_MACRO_DIRS([m4]) AC_CANONICAL_SYSTEM AC_PROG_CC_C99 @@ -18,27 +19,30 @@ PKG_CHECK_MODULES([libcrypto], [libcrypto >= 1.0.2]) AC_OPENMP AC_SUBST([OPENMP_CFLAGS]) -JOSE_CFLAGS="\ --Wall \ --Wextra \ --Werror \ --Wstrict-aliasing \ --Wchar-subscripts \ --Wformat-security \ --Wmissing-declarations \ --Wmissing-prototypes \ --Wnested-externs \ --Wpointer-arith \ --Wshadow \ --Wsign-compare \ --Wstrict-prototypes \ --Wtype-limits \ --Wunused-function \ --Wno-missing-field-initializers \ --Wno-unused-command-line-argument \ --Wno-unused-parameter \ --Wno-unknown-pragmas \ -" +for flag in \ + -Wall \ + -Wextra \ + -Werror \ + -Wstrict-aliasing \ + -Wchar-subscripts \ + -Wformat-security \ + -Wmissing-declarations \ + -Wmissing-prototypes \ + -Wnested-externs \ + -Wpointer-arith \ + -Wshadow \ + -Wsign-compare \ + -Wstrict-prototypes \ + -Wtype-limits \ + -Wunused-function \ + -Wno-missing-field-initializers \ + -Wno-unused-command-line-argument \ + -Wno-unused-parameter \ + -Wno-unknown-pragmas ; do + AX_CHECK_COMPILE_FLAG([${flag}], + [JOSE_CFLAGS="${JOSE_CFLAGS} ${flag}"]) +done + AC_SUBST([JOSE_CFLAGS]) AC_MSG_CHECKING([for linker script support]) diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4 new file mode 100644 index 0000000..dcabb92 --- /dev/null +++ b/m4/ax_check_compile_flag.m4 @@ -0,0 +1,74 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the current language's compiler +# or gives an error. (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# 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 . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 5 + +AC_DEFUN([AX_CHECK_COMPILE_FLAG], +[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl +AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ + ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS + _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" + AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) +AS_VAR_IF(CACHEVAR,yes, + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_COMPILE_FLAGS -- 2.13.6 ================================================ FILE: package/jose/Config.in ================================================ config BR2_PACKAGE_JOSE bool "jose" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_ZLIB select BR2_PACKAGE_JANSSON select BR2_PACKAGE_OPENSSL help C-language implementation of Javascript Object Signing and Encryption. https://github.com/latchset/jose comment "jose needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/jose/jose.hash ================================================ # Locally computed sha256 5c9cdcfb535c4d9f781393d7530521c72b1dd81caa9934cab6dd752cc7efcd72 jose-10.tar.bz2 sha256 09e8a9bcec8067104652c168685ab0931e7868f9c8284b66f5ae6edae5f1130b COPYING ================================================ FILE: package/jose/jose.mk ================================================ ################################################################################ # # jose # ################################################################################ JOSE_VERSION = 10 JOSE_SOURCE = jose-$(JOSE_VERSION).tar.bz2 JOSE_SITE = https://github.com/latchset/jose/releases/download/v$(JOSE_VERSION) JOSE_LICENSE = Apache-2.0 JOSE_LICENSE_FILES = COPYING # 0002-configure-fix-build-with-old-compilers.patch JOSE_AUTORECONF = YES JOSE_INSTALL_STAGING = YES JOSE_DEPENDENCIES = host-pkgconf zlib jansson openssl $(eval $(autotools-package)) ================================================ FILE: package/jpeg/Config.in ================================================ # jpeg-turbo has simd support for some architectures config BR2_PACKAGE_JPEG_SIMD_SUPPORT bool default y if BR2_X86_CPU_HAS_MMX default y if BR2_ARM_CPU_HAS_NEON default y if BR2_POWERPC_CPU_HAS_ALTIVEC default y if BR2_aarch64 || BR2_aarch64_be config BR2_PACKAGE_JPEG bool "jpeg support" help Select the desired JPEG library provider. if BR2_PACKAGE_JPEG choice prompt "jpeg variant" default BR2_PACKAGE_JPEG_TURBO if BR2_PACKAGE_JPEG_SIMD_SUPPORT help Select the normal libjpeg or libjpeg-turbo. config BR2_PACKAGE_LIBJPEG bool "jpeg" select BR2_PACKAGE_HAS_JPEG help The ubiquitous C library for manipulating JPEG images. http://www.ijg.org/ config BR2_PACKAGE_JPEG_TURBO bool "jpeg-turbo" select BR2_PACKAGE_HAS_JPEG help Libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression on x86, x86-64, and ARM systems. http://www.libjpeg-turbo.org # libjpeg from br2-external trees, if any source "$BR2_BASE_DIR/.br2-external.in.jpeg" endchoice source "package/jpeg-turbo/Config.in.options" config BR2_PACKAGE_HAS_JPEG bool config BR2_PACKAGE_PROVIDES_JPEG string default "libjpeg" if BR2_PACKAGE_LIBJPEG default "jpeg-turbo" if BR2_PACKAGE_JPEG_TURBO endif ================================================ FILE: package/jpeg/jpeg.mk ================================================ ################################################################################ # # jpeg # ################################################################################ $(eval $(virtual-package)) ================================================ FILE: package/jpeg-turbo/Config.in.options ================================================ if BR2_PACKAGE_JPEG_TURBO config BR2_PACKAGE_JPEG_TURBO_TOOLS bool "jpeg-turbo tools" help Libjpeg-turbo can also provide some tools like cjpeg, djpeg, jpegtran, rdjpgcom, tjbench and wrjpgcom. If you want to keep them enable this option. endif ================================================ FILE: package/jpeg-turbo/jpeg-turbo.hash ================================================ # From https://sourceforge.net/projects/libjpeg-turbo/files/2.0.6/ sha1 5406c7676d7df89fb4da791ad5af51202910fb25 libjpeg-turbo-2.0.6.tar.gz md5 4cada3f0bdc93d826fa31bf9e4469ef6 libjpeg-turbo-2.0.6.tar.gz # Locally computed sha256 d74b92ac33b0e3657123ddcf6728788c90dc84dcb6a52013d758af3c4af481bb libjpeg-turbo-2.0.6.tar.gz sha256 0b7a24c3906d26dfbe24e96e9415549b387c3227140dc6b7ab2fb924254e37a1 LICENSE.md sha256 01ccef626ec864773c681d4a4056f72af9052d619e0609df0d369117f8b3efdf README.ijg ================================================ FILE: package/jpeg-turbo/jpeg-turbo.mk ================================================ ################################################################################ # # jpeg-turbo # ################################################################################ JPEG_TURBO_VERSION = 2.0.6 JPEG_TURBO_SOURCE = libjpeg-turbo-$(JPEG_TURBO_VERSION).tar.gz JPEG_TURBO_SITE = https://downloads.sourceforge.net/project/libjpeg-turbo/$(JPEG_TURBO_VERSION) JPEG_TURBO_LICENSE = IJG (libjpeg), BSD-3-Clause (TurboJPEG), Zlib (SIMD) JPEG_TURBO_LICENSE_FILES = LICENSE.md README.ijg JPEG_TURBO_CPE_ID_VENDOR = libjpeg-turbo JPEG_TURBO_CPE_ID_PRODUCT = libjpeg-turbo JPEG_TURBO_INSTALL_STAGING = YES JPEG_TURBO_PROVIDES = jpeg JPEG_TURBO_DEPENDENCIES = host-pkgconf JPEG_TURBO_CONF_OPTS = -DWITH_JPEG8=ON ifeq ($(BR2_STATIC_LIBS),y) JPEG_TURBO_CONF_OPTS += -DENABLE_STATIC=ON -DENABLE_SHARED=OFF else ifeq ($(BR2_SHARED_STATIC_LIBS),y) JPEG_TURBO_CONF_OPTS += -DENABLE_STATIC=ON -DENABLE_SHARED=ON else ifeq ($(BR2_SHARED_LIBS),y) JPEG_TURBO_CONF_OPTS += -DENABLE_STATIC=OFF -DENABLE_SHARED=ON endif ifeq ($(BR2_PACKAGE_JPEG_SIMD_SUPPORT),y) JPEG_TURBO_CONF_OPTS += -DWITH_SIMD=ON # x86 simd support needs nasm JPEG_TURBO_DEPENDENCIES += $(if $(BR2_X86_CPU_HAS_MMX),host-nasm) else JPEG_TURBO_CONF_OPTS += -DWITH_SIMD=OFF endif # Ensure that jpeg-turbo is compiled with -fPIC to allow linking the static # libraries with dynamically linked programs. This is not a requirement # for most architectures but is mandatory for ARM. # This allow to avoid link issues with BR2_SSP_ALL: # jsimd_none.c.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against external symbol `__stack_chk_guard@@GLIBC_2.17' # can not be used when making a shared object; recompile with -fPIC ifeq ($(BR2_STATIC_LIBS),) JPEG_TURBO_CONF_OPTS += -DCMAKE_POSITION_INDEPENDENT_CODE=ON endif ifeq ($(BR2_PACKAGE_JPEG_TURBO_TOOLS),) define JPEG_TURBO_REMOVE_TOOLS rm -f $(addprefix $(TARGET_DIR)/usr/bin/,cjpeg djpeg jpegtran rdjpgcom tjbench wrjpgcom) endef JPEG_TURBO_POST_INSTALL_TARGET_HOOKS += JPEG_TURBO_REMOVE_TOOLS endif $(eval $(cmake-package)) ================================================ FILE: package/jq/Config.in ================================================ config BR2_PACKAGE_JQ bool "jq" depends on BR2_TOOLCHAIN_HAS_THREADS help jq is like sed for JSON data - you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text. http://stedolan.github.io/jq/ comment "jq needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/jq/Config.in.host ================================================ config BR2_PACKAGE_HOST_JQ bool "host jq" help jq is like sed for JSON data - you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text. As a host tool, jq can be useful to create/edit/merge/check JSON files from a post-build script. http://stedolan.github.io/jq/ ================================================ FILE: package/jq/jq.hash ================================================ # Locally calculated sha256 20249104d4df2247253df6df4a980b8be1f5232f03fef7cd41bacb7e6eab04fd jq-a17dd3248a666d01be75f6b16be37e80e20b0954.tar.gz sha256 c8437d414ca5b394718784c3bf5bdff7f01fee417625fabf1fb722ca263037da COPYING ================================================ FILE: package/jq/jq.mk ================================================ ################################################################################ # # jq # ################################################################################ JQ_VERSION = a17dd3248a666d01be75f6b16be37e80e20b0954 JQ_SITE = $(call github,stedolan,jq,$(JQ_VERSION)) JQ_LICENSE = MIT (code), ICU (decNumber), CC-BY-3.0 (documentation) JQ_LICENSE_FILES = COPYING JQ_CPE_ID_VENDOR = jq_project JQ_INSTALL_STAGING = YES # currently using git version directly JQ_AUTORECONF = YES # uses c99 specific features # _GNU_SOURCE added to fix gcc6+ host compilation # (https://github.com/stedolan/jq/issues/1598) JQ_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -std=c99 -D_GNU_SOURCE" HOST_JQ_CONF_ENV += CFLAGS="$(HOST_CFLAGS) -std=c99 -D_GNU_SOURCE" # jq explicitly enables maintainer mode, which we don't need/want JQ_CONF_OPTS += --disable-maintainer-mode HOST_JQ_CONF_OPTS += --disable-maintainer-mode --without-oniguruma ifeq ($(BR2_PACKAGE_ONIGURUMA),y) JQ_DEPENDENCIES += oniguruma JQ_CONF_OPTS += --with-oniguruma else JQ_CONF_OPTS += --without-oniguruma endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/jquery/Config.in ================================================ config BR2_PACKAGE_JQUERY bool "jQuery" help jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. http://jquery.com ================================================ FILE: package/jquery/jquery.hash ================================================ # Locally computed hashes, not provided by upstream sha256 f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d jquery-3.5.1.min.js ================================================ FILE: package/jquery/jquery.mk ================================================ ################################################################################ # # jquery # ################################################################################ JQUERY_VERSION = 3.5.1 JQUERY_SITE = http://code.jquery.com JQUERY_SOURCE = jquery-$(JQUERY_VERSION).min.js JQUERY_LICENSE = MIT JQUERY_CPE_ID_VENDOR = jquery define JQUERY_EXTRACT_CMDS cp $(JQUERY_DL_DIR)/$(JQUERY_SOURCE) $(@D) endef define JQUERY_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/$(JQUERY_SOURCE) \ $(TARGET_DIR)/var/www/jquery.js endef $(eval $(generic-package)) ================================================ FILE: package/jquery-datetimepicker/Config.in ================================================ config BR2_PACKAGE_JQUERY_DATETIMEPICKER bool "jquery-datetimepicker" help Use this plugin to unobtrusively add a datetimepicker, datepicker or timepicker dropdown to your forms. http://xdsoft.net/jqplugins/datetimepicker ================================================ FILE: package/jquery-datetimepicker/jquery-datetimepicker.hash ================================================ # Locally calculated sha256 2f362a8acd149d1487a9460942f135d1037f01ee0cbfecba8c352fa2f79c34c9 jquery-datetimepicker-2.4.5.tar.gz sha256 491add640b4678b78571d3b4c0840422b48a5b397e47e2104c1942ff1fce1a68 MIT-LICENSE.txt ================================================ FILE: package/jquery-datetimepicker/jquery-datetimepicker.mk ================================================ ################################################################################ # # jquery-datetimepicker # ################################################################################ JQUERY_DATETIMEPICKER_VERSION = 2.4.5 JQUERY_DATETIMEPICKER_SITE = $(call github,xdan,datetimepicker,$(JQUERY_DATETIMEPICKER_VERSION)) JQUERY_DATETIMEPICKER_LICENSE = MIT JQUERY_DATETIMEPICKER_LICENSE_FILES = MIT-LICENSE.txt define JQUERY_DATETIMEPICKER_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/jquery.datetimepicker.css \ $(TARGET_DIR)/var/www/jquery-plugins/datetimepicker/jquery.datetimepicker.css $(INSTALL) -m 0644 -D $(@D)/jquery.datetimepicker.js \ $(TARGET_DIR)/var/www/jquery-plugins/datetimepicker/jquery.datetimepicker.js endef $(eval $(generic-package)) ================================================ FILE: package/jquery-keyboard/Config.in ================================================ config BR2_PACKAGE_JQUERY_KEYBOARD bool "jquery-keyboard" select BR2_PACKAGE_JQUERY_UI help Virtual Keyboard using jQuery UI https://github.com/Mottie/Keyboard ================================================ FILE: package/jquery-keyboard/jquery-keyboard.hash ================================================ # Locally calculated sha256 6a20a1cdc9367c218048125eeb6f78d775175a964b3b9b781a931b63c0f98c66 jquery-keyboard-1.18.12.tar.gz sha256 0ad9a0e7291b45cdb5abe2a517d8b82282a816d41c9224660849792ce01fe983 README.markdown ================================================ FILE: package/jquery-keyboard/jquery-keyboard.mk ================================================ ################################################################################ # # jquery-keyboard # ################################################################################ JQUERY_KEYBOARD_VERSION = 1.18.12 JQUERY_KEYBOARD_SITE = $(call github,Mottie,Keyboard,v$(JQUERY_KEYBOARD_VERSION)) JQUERY_KEYBOARD_LICENSE = MIT WTFPL JQUERY_KEYBOARD_LICENSE_FILES = README.markdown define JQUERY_KEYBOARD_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/css/keyboard.css \ $(TARGET_DIR)/var/www/css/keyboard.css $(INSTALL) -m 0644 $(@D)/js/jquery.keyboard*.js \ $(TARGET_DIR)/var/www $(INSTALL) -m 0644 -D $(@D)/js/jquery.mousewheel.js \ $(TARGET_DIR)/var/www/jquery.mousewheel.js $(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/layouts $(INSTALL) -m 0644 $(@D)/layouts/*.js \ $(TARGET_DIR)/var/www/layouts endef $(eval $(generic-package)) ================================================ FILE: package/jquery-mobile/Config.in ================================================ config BR2_PACKAGE_JQUERY_MOBILE bool "jquery-mobile" help jQuery-Mobile is a unified, HTML5-based user interface system for all popular mobile device platforms, built on the rock-solid jQuery and jQuery UI foundation. Its lightweight code is built with progressive enhancement, and has a flexible, easily themeable design. http://jquerymobile.com if BR2_PACKAGE_JQUERY_MOBILE config BR2_PACKAGE_JQUERY_MOBILE_FULL bool "jquery-mobile development files" help Installs the development versions. config BR2_PACKAGE_JQUERY_MOBILE_DEMOS bool "jquery-mobile demo files" help Installs the demo files. The main demo page is http://hostname/demos/index.html endif ================================================ FILE: package/jquery-mobile/jquery-mobile.hash ================================================ # locally computed sha256 7ed156b191dc3e262e3f450aede43adfb738ff0085afed87eb18fe4f43dfc681 jquery.mobile-1.4.3.zip ================================================ FILE: package/jquery-mobile/jquery-mobile.mk ================================================ ################################################################################ # # jquery-mobile # ################################################################################ JQUERY_MOBILE_VERSION = 1.4.3 JQUERY_MOBILE_SITE = http://jquerymobile.com/resources/download JQUERY_MOBILE_SOURCE = jquery.mobile-$(JQUERY_MOBILE_VERSION).zip JQUERY_MOBILE_LICENSE = MIT define JQUERY_MOBILE_EXTRACT_CMDS $(UNZIP) -d $(@D) $(JQUERY_MOBILE_DL_DIR)/$(JQUERY_MOBILE_SOURCE) endef JQUERY_MOBILE_INSTALLED_FILES = \ jquery.mobile.structure-$(JQUERY_MOBILE_VERSION).min.css \ jquery.mobile.theme-$(JQUERY_MOBILE_VERSION).min.css \ jquery.mobile-$(JQUERY_MOBILE_VERSION).min.css \ jquery.mobile-$(JQUERY_MOBILE_VERSION).min.map \ jquery.mobile-$(JQUERY_MOBILE_VERSION).min.js ifeq ($(BR2_PACKAGE_JQUERY_MOBILE_FULL),y) JQUERY_MOBILE_INSTALLED_FILES += \ jquery.mobile.structure-$(JQUERY_MOBILE_VERSION).css \ jquery.mobile.theme-$(JQUERY_MOBILE_VERSION).css \ jquery.mobile-$(JQUERY_MOBILE_VERSION).css \ jquery.mobile-$(JQUERY_MOBILE_VERSION).js endif ifeq ($(BR2_PACKAGE_JQUERY_MOBILE_DEMOS),y) define JQUERY_MOBILE_INSTALL_DEMOS mkdir -p $(TARGET_DIR)/var/www/demos cp -r $(@D)/demos/* $(TARGET_DIR)/var/www/demos endef endif define JQUERY_MOBILE_INSTALL_TARGET_CMDS for f in $(JQUERY_MOBILE_INSTALLED_FILES) ; do \ $(INSTALL) -m 0644 -D $(@D)/$$f $(TARGET_DIR)/var/www/$$f || break ; \ done mkdir -p $(TARGET_DIR)/var/www/images cp -r $(@D)/images/* $(TARGET_DIR)/var/www/images $(JQUERY_MOBILE_INSTALL_DEMOS) endef $(eval $(generic-package)) ================================================ FILE: package/jquery-sidebar/Config.in ================================================ config BR2_PACKAGE_JQUERY_SIDEBAR bool "jquery-sidebar" help A stupid simple sidebar jQuery plugin. http://jillix.github.io/jQuery-sidebar/ ================================================ FILE: package/jquery-sidebar/jquery-sidebar.hash ================================================ # Locally computed sha256 c96e46439a87555f2200442f597cce64f21f81f94d7601ddfc3b837913ddb42f jquery-sidebar-3.3.2.tar.gz sha256 f3522370f4b6accf9c1344f520bdea35f2388f1cbb124c0c179d2ca2a6a94c76 LICENSE ================================================ FILE: package/jquery-sidebar/jquery-sidebar.mk ================================================ ################################################################################ # # jquery-sidebar # ################################################################################ JQUERY_SIDEBAR_VERSION = 3.3.2 JQUERY_SIDEBAR_SITE = $(call github,jillix,jQuery-sidebar,$(JQUERY_SIDEBAR_VERSION)) JQUERY_SIDEBAR_LICENSE = MIT JQUERY_SIDEBAR_LICENSE_FILES = LICENSE define JQUERY_SIDEBAR_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/src/jquery.sidebar.min.js \ $(TARGET_DIR)/var/www/jquery-plugins/sidebar/jquery.sidebar.min.js endef $(eval $(generic-package)) ================================================ FILE: package/jquery-sparkline/Config.in ================================================ config BR2_PACKAGE_JQUERY_SPARKLINE bool "jquery-sparkline" help This jQuery plugin generates sparklines (small inline charts) directly in the browser using data supplied either inline in the HTML, or via javascript. The plugin is compatible with most modern browsers and has been tested with Firefox 2+, Safari 3+, Opera 9, Google Chrome and Internet Explorer 6, 7 & 8. http://www.omnipotent.net/jquery.sparkline/ ================================================ FILE: package/jquery-sparkline/jquery-sparkline.hash ================================================ # locally computed sha256 06e0242da172ab85985db3774c54ac1b53391a5b447857a100c5118b8281a543 jquery.sparkline.min.js ================================================ FILE: package/jquery-sparkline/jquery-sparkline.mk ================================================ ################################################################################ # # jquery-sparkline # ################################################################################ JQUERY_SPARKLINE_VERSION = 2.1.2 JQUERY_SPARKLINE_SITE = http://www.omnipotent.net/jquery.sparkline/$(JQUERY_SPARKLINE_VERSION) JQUERY_SPARKLINE_SOURCE = jquery.sparkline.min.js JQUERY_SPARKLINE_LICENSE = BSD-3-Clause define JQUERY_SPARKLINE_EXTRACT_CMDS cp $(JQUERY_SPARKLINE_DL_DIR)/$(JQUERY_SPARKLINE_SOURCE) $(@D) endef define JQUERY_SPARKLINE_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/$(JQUERY_SPARKLINE_SOURCE) \ $(TARGET_DIR)/var/www/jquery.sparkline.js endef $(eval $(generic-package)) ================================================ FILE: package/jquery-ui/Config.in ================================================ config BR2_PACKAGE_JQUERY_UI bool "jquery-ui" help jQuery UI provides abstractions for low-level interaction and animation, advanced effects and high-level, themeable widgets, built on top of the jQuery JavaScript Library, that you can use to build highly interactive web applications. http://jqueryui.com/ ================================================ FILE: package/jquery-ui/jquery-ui.hash ================================================ # locally computed sha256 c76f349930245360f4d1dea672b9a587f8938b536a378e20eeff919f7263f99f jquery-ui-1.10.4.zip sha256 ef1fdd608b20fbea7ef269ed03bd24e637717cc193971798a394bf2fa983cd53 MIT-LICENSE.txt ================================================ FILE: package/jquery-ui/jquery-ui.mk ================================================ ################################################################################ # # jquery-ui # ################################################################################ JQUERY_UI_VERSION = 1.10.4 # Use buildroot mirror since upstream switched the zipfile and directory # structure without bumping/renaming. # Remember to switch back to jqueryui.com when bumping! JQUERY_UI_SITE = http://sources.buildroot.net JQUERY_UI_SOURCE = jquery-ui-$(JQUERY_UI_VERSION).zip JQUERY_UI_LICENSE = MIT JQUERY_UI_LICENSE_FILES = MIT-LICENSE.txt define JQUERY_UI_EXTRACT_CMDS $(UNZIP) -d $(@D) $(JQUERY_UI_DL_DIR)/$(JQUERY_UI_SOURCE) mv $(@D)/jquery-ui-$(JQUERY_UI_VERSION)/* $(@D) $(RM) -r $(@D)/jquery-ui-$(JQUERY_UI_VERSION) endef define JQUERY_UI_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/ui/minified/jquery-ui.min.js \ $(TARGET_DIR)/var/www/jquery-ui.js $(INSTALL) -m 0644 -D $(@D)/ui/minified/i18n/jquery-ui-i18n.min.js \ $(TARGET_DIR)/var/www/jquery-ui-i18n.js $(INSTALL) -m 0644 -D $(@D)/themes/base/minified/jquery-ui.min.css \ $(TARGET_DIR)/var/www/jquery-ui.css $(INSTALL) -d $(TARGET_DIR)/var/www/images $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/images \ $(@D)/themes/base/minified/images/*.png endef $(eval $(generic-package)) ================================================ FILE: package/jquery-ui-themes/Config.in ================================================ config BR2_PACKAGE_JQUERY_UI_THEMES bool "jquery-ui-themes" depends on BR2_PACKAGE_JQUERY_UI help Themes for jQuery UI. http://jqueryui.com/ if BR2_PACKAGE_JQUERY_UI_THEMES choice prompt "theme to install" help Specify the jQuery UI theme to install. config BR2_PACKAGE_JQUERY_UI_THEMES_BLACK_TIE bool "black-tie" config BR2_PACKAGE_JQUERY_UI_THEMES_BLITZER bool "blitzer" config BR2_PACKAGE_JQUERY_UI_THEMES_CUPERTINO bool "cupertino" config BR2_PACKAGE_JQUERY_UI_THEMES_DARK_HIVE bool "dark-hive" config BR2_PACKAGE_JQUERY_UI_THEMES_DOT_LUV bool "dot-luv" config BR2_PACKAGE_JQUERY_UI_THEMES_EGGPLANT bool "eggplant" config BR2_PACKAGE_JQUERY_UI_THEMES_EXCITE_BIKE bool "excite-bike" config BR2_PACKAGE_JQUERY_UI_THEMES_FLICK bool "flick" config BR2_PACKAGE_JQUERY_UI_THEMES_HOT_SNEAKS bool "hot-sneaks" config BR2_PACKAGE_JQUERY_UI_THEMES_HUMANITY bool "humanity" config BR2_PACKAGE_JQUERY_UI_THEMES_LE_FROG bool "le-frog" config BR2_PACKAGE_JQUERY_UI_THEMES_MINT_CHOC bool "mint-choc" config BR2_PACKAGE_JQUERY_UI_THEMES_OVERCAST bool "overcast" config BR2_PACKAGE_JQUERY_UI_THEMES_PEPPER_GRINDER bool "pepper-grinder" config BR2_PACKAGE_JQUERY_UI_THEMES_REDMOND bool "redmond" config BR2_PACKAGE_JQUERY_UI_THEMES_SMOOTHNESS bool "smoothness" config BR2_PACKAGE_JQUERY_UI_THEMES_SOUTH_STREET bool "south-street" config BR2_PACKAGE_JQUERY_UI_THEMES_START bool "start" config BR2_PACKAGE_JQUERY_UI_THEMES_SUNNY bool "sunny" config BR2_PACKAGE_JQUERY_UI_THEMES_SWANKY_PURSE bool "swanky-purse" config BR2_PACKAGE_JQUERY_UI_THEMES_TRONTASTIC bool "trontastic" config BR2_PACKAGE_JQUERY_UI_THEMES_UI_DARKNESS bool "ui-darkness" config BR2_PACKAGE_JQUERY_UI_THEMES_UI_LIGHTNESS bool "ui-lightness" config BR2_PACKAGE_JQUERY_UI_THEMES_VADER bool "vader" endchoice config BR2_PACKAGE_JQUERY_UI_THEMES_THEME string default "black-tie" if BR2_PACKAGE_JQUERY_UI_THEMES_BLACK_TIE default "blitzer" if BR2_PACKAGE_JQUERY_UI_THEMES_BLITZER default "cupertino" if BR2_PACKAGE_JQUERY_UI_THEMES_CUPERTINO default "dark-hive" if BR2_PACKAGE_JQUERY_UI_THEMES_DARK_HIVE default "dot-luv" if BR2_PACKAGE_JQUERY_UI_THEMES_DOT_LUV default "eggplant" if BR2_PACKAGE_JQUERY_UI_THEMES_EGGPLANT default "excite-bike" if BR2_PACKAGE_JQUERY_UI_THEMES_EXCITE_BIKE default "flick" if BR2_PACKAGE_JQUERY_UI_THEMES_FLICK default "hot-sneaks" if BR2_PACKAGE_JQUERY_UI_THEMES_HOT_SNEAKS default "humanity" if BR2_PACKAGE_JQUERY_UI_THEMES_HUMANITY default "le-frog" if BR2_PACKAGE_JQUERY_UI_THEMES_LE_FROG default "mint-choc" if BR2_PACKAGE_JQUERY_UI_THEMES_MINT_CHOC default "overcast" if BR2_PACKAGE_JQUERY_UI_THEMES_OVERCAST default "pepper-grinder" if BR2_PACKAGE_JQUERY_UI_THEMES_PEPPER_GRINDER default "redmond" if BR2_PACKAGE_JQUERY_UI_THEMES_REDMOND default "smoothness" if BR2_PACKAGE_JQUERY_UI_THEMES_SMOOTHNESS default "south-street" if BR2_PACKAGE_JQUERY_UI_THEMES_SOUTH_STREET default "start" if BR2_PACKAGE_JQUERY_UI_THEMES_START default "sunny" if BR2_PACKAGE_JQUERY_UI_THEMES_SUNNY default "swanky-purse" if BR2_PACKAGE_JQUERY_UI_THEMES_SWANKY_PURSE default "trontastic" if BR2_PACKAGE_JQUERY_UI_THEMES_TRONTASTIC default "ui-darkness" if BR2_PACKAGE_JQUERY_UI_THEMES_UI_DARKNESS default "ui-lightness" if BR2_PACKAGE_JQUERY_UI_THEMES_UI_LIGHTNESS default "vader" if BR2_PACKAGE_JQUERY_UI_THEMES_UI_VADER endif ================================================ FILE: package/jquery-ui-themes/jquery-ui-themes.hash ================================================ # locally computed sha256 90467a83abcb8d2471b0d53d21b4c09e2cf686d5350e10a6e84fa3f3616a840f jquery-ui-themes-1.10.4.zip sha256 ef1fdd608b20fbea7ef269ed03bd24e637717cc193971798a394bf2fa983cd53 MIT-LICENSE.txt ================================================ FILE: package/jquery-ui-themes/jquery-ui-themes.mk ================================================ ################################################################################ # # jquery-ui-themes # ################################################################################ JQUERY_UI_THEMES_VERSION = 1.10.4 JQUERY_UI_THEMES_SITE = http://jqueryui.com/resources/download JQUERY_UI_THEMES_SOURCE = jquery-ui-themes-$(JQUERY_UI_THEMES_VERSION).zip JQUERY_UI_THEMES_LICENSE = MIT JQUERY_UI_THEMES_LICENSE_FILES = MIT-LICENSE.txt JQUERY_UI_THEMES_DEPENDENCIES = jquery-ui define JQUERY_UI_THEMES_EXTRACT_CMDS $(UNZIP) -d $(@D) $(JQUERY_UI_THEMES_DL_DIR)/$(JQUERY_UI_THEMES_SOURCE) mv $(@D)/jquery-ui-themes-$(JQUERY_UI_THEMES_VERSION)/* $(@D) $(RM) -r $(@D)/jquery-ui-themes-$(JQUERY_UI_THEMES_VERSION) endef define JQUERY_UI_THEMES_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D \ $(@D)/themes/$(call qstrip,$(BR2_PACKAGE_JQUERY_UI_THEMES_THEME))/jquery-ui.css \ $(TARGET_DIR)/var/www/jquery-ui.css $(INSTALL) -d $(TARGET_DIR)/var/www/images cp -a $(@D)/themes/$(call qstrip,$(BR2_PACKAGE_JQUERY_UI_THEMES_THEME))/images/*.png \ $(TARGET_DIR)/var/www/images chmod 0644 $(TARGET_DIR)/var/www/images/*.png endef $(eval $(generic-package)) ================================================ FILE: package/jquery-validation/Config.in ================================================ config BR2_PACKAGE_JQUERY_VALIDATION bool "jquery-validation" help The jQuery Validation Plugin provides drop-in validation for your existing forms, while making all kinds of customizations to fit your application really easy. http://jqueryvalidation.org/ ================================================ FILE: package/jquery-validation/jquery-validation.hash ================================================ # Locally computed sha256 01ad2ef0a7f9cd413aeb51081651293916da47d20e5c0a59ec62587e58b03564 jquery-validation-1.19.3.zip sha256 3e5a99460077c16bf75f6821a30cdac9baa339119ebf63b2a6c49f4f50421ca4 README.md ================================================ FILE: package/jquery-validation/jquery-validation.mk ================================================ ################################################################################ # # jquery-validation # ################################################################################ JQUERY_VALIDATION_VERSION = 1.19.3 JQUERY_VALIDATION_SITE = https://github.com/jquery-validation/jquery-validation/releases/download/$(JQUERY_VALIDATION_VERSION) JQUERY_VALIDATION_SOURCE = jquery-validation-$(JQUERY_VALIDATION_VERSION).zip JQUERY_VALIDATION_LICENSE = MIT JQUERY_VALIDATION_LICENSE_FILES = README.md JQUERY_VALIDATION_CPE_ID_VENDOR = jqueryvalidation JQUERY_VALIDATION_CPE_ID_PRODUCT = jquery_validation define JQUERY_VALIDATION_EXTRACT_CMDS $(UNZIP) -d $(@D) $(JQUERY_VALIDATION_DL_DIR)/$(JQUERY_VALIDATION_SOURCE) endef define JQUERY_VALIDATION_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/dist/jquery.validate.min.js \ $(TARGET_DIR)/var/www/jquery.validate.js endef $(eval $(generic-package)) ================================================ FILE: package/jsmin/Config.in ================================================ config BR2_PACKAGE_JSMIN bool "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 ================================================ FILE: package/jsmin/Config.in.host ================================================ 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 ================================================ FILE: package/jsmin/jsmin.hash ================================================ # Locally calculated sha256 aae127bf7291a7b2592f36599e5ed6c6423eac7abe0cd5992f82d6d46fe9ed2d jsmin-1bf6ce5f74a9f8752ac7f5d115b8d7ccb31cfe1b.tar.gz sha256 b420f61778af09534adc836a5086f5625b8499124051c50baefa218e7c03a58c jsmin.c ================================================ FILE: package/jsmin/jsmin.mk ================================================ ################################################################################ # # jsmin # ################################################################################ JSMIN_VERSION = 1bf6ce5f74a9f8752ac7f5d115b8d7ccb31cfe1b JSMIN_SITE = $(call github,douglascrockford,JSMin,$(JSMIN_VERSION)) JSMIN_LICENSE = MIT JSMIN_LICENSE_FILES = jsmin.c define JSMIN_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) jsmin endef define JSMIN_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/jsmin $(TARGET_DIR)/usr/bin/jsmin endef define HOST_JSMIN_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) jsmin endef define HOST_JSMIN_INSTALL_CMDS $(INSTALL) -m 0755 -D $(@D)/jsmin $(HOST_DIR)/bin/jsmin endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/jsmn/Config.in ================================================ config BR2_PACKAGE_JSMN bool "jsmn" help jsmn (pronounced like 'jasmine') is a minimalistic JSON parser in C. It can be easily integrated into resource-limited or embedded projects. https://github.com/zserge/jsmn/ ================================================ FILE: package/jsmn/jsmn.hash ================================================ # Locally computed sha256 5f0913a10657fe7ec8d5794ccf00a01000e3e1f2f1e1f143c34a0f7b47edcb38 jsmn-1.1.0.tar.gz sha256 4675b94a50d2afe811c52785463c854f1156056632cce17cc7133939eac8ed55 LICENSE ================================================ FILE: package/jsmn/jsmn.mk ================================================ ################################################################################ # # jsmn # ################################################################################ JSMN_VERSION = 1.1.0 JSMN_SITE = $(call github,zserge,jsmn,v$(JSMN_VERSION)) JSMN_LICENSE = MIT JSMN_LICENSE_FILES = LICENSE # single-header, header-only library JSMN_INSTALL_STAGING = YES JSMN_INSTALL_TARGET = NO define JSMN_INSTALL_STAGING_CMDS $(INSTALL) -D -m 0644 $(@D)/jsmn.h $(STAGING_DIR)/usr/include/jsmn.h endef $(eval $(generic-package)) ================================================ FILE: package/json-c/Config.in ================================================ config BR2_PACKAGE_JSON_C bool "json-c" # uses __sync_val_compare_and_swap_4 depends on BR2_TOOLCHAIN_HAS_SYNC_4 help JSON-C - A JSON implementation in C JSON-C implements a reference counting object model that allows you to easily construct JSON objects in C, output them as JSON formatted strings and parse JSON formatted strings back into the C representation of JSON objects. https://github.com/json-c/json-c/ ================================================ FILE: package/json-c/json-c.hash ================================================ # From https://github.com/json-c/json-c/wiki sha256 b8d80a1ddb718b3ba7492916237bbf86609e9709fb007e7f7d4322f02341a4c6 json-c-0.15.tar.gz # Locally calculated sha256 74c1e6ca5eba76b54d0ad00d4815c8315c1b3bc45ff99de61d103dc92486284c COPYING ================================================ FILE: package/json-c/json-c.mk ================================================ ################################################################################ # # json-c # ################################################################################ JSON_C_VERSION = 0.15 JSON_C_SITE = https://s3.amazonaws.com/json-c_releases/releases JSON_C_INSTALL_STAGING = YES JSON_C_LICENSE = MIT JSON_C_LICENSE_FILES = COPYING JSON_C_CPE_ID_VENDOR = json-c_project $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/json-for-modern-cpp/Config.in ================================================ config BR2_PACKAGE_JSON_FOR_MODERN_CPP bool "json-for-modern-cpp" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on BR2_INSTALL_LIBSTDCPP help Json for modern c++ has the following desing goals in mind: - Intuitive syntax. In languages such as Python, JSON feels like a first class data type. All the operator magic of modern C++ is used to achieve the same feeling in c++. - Trivial integration. The whole code consists of a single header file json.hpp. That's it. No library, no subproject, no dependencies, no complex build system. The class is written in vanilla C++11. All in all, everything should require no adjustment of compiler flags or project settings. - Serious testing. The class is heavily unit-tested and covers 100% of the code, including all exceptional behavior. Furthermore, it is checked with Valgrind that there are no memory leaks. To maintain high quality, the project is following the Core Infrastructure Initiative (CII) best practices. https://github.com/nlohmann/json comment "json-for-modern-cpp needs a toolchain w/ C++, gcc >= 4.9" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/json-for-modern-cpp/json-for-modern-cpp.hash ================================================ # Locally computed sha256 e0d7c1b120cac47fa7f14a41d10a5d390f67d423d8e97b9d6834887285d6873c json-3.10.3.tar.gz sha256 c983d69523377819db3c377b390d5644f5ec53bec9b7c4a0f1ed893bb743d045 LICENSE.MIT ================================================ FILE: package/json-for-modern-cpp/json-for-modern-cpp.mk ================================================ ################################################################################ # # json-for-modern-cpp # ################################################################################ JSON_FOR_MODERN_CPP_VERSION = 3.10.3 JSON_FOR_MODERN_CPP_SOURCE = json-$(JSON_FOR_MODERN_CPP_VERSION).tar.gz JSON_FOR_MODERN_CPP_SITE = $(call github,nlohmann,json,v$(JSON_FOR_MODERN_CPP_VERSION)) JSON_FOR_MODERN_CPP_LICENSE = MIT JSON_FOR_MODERN_CPP_LICENSE_FILES = LICENSE.MIT JSON_FOR_MODERN_CPP_CPE_ID_VENDOR = json-for-modern-cpp_project JSON_FOR_MODERN_CPP_INSTALL_STAGING = YES # header only library JSON_FOR_MODERN_CPP_INSTALL_TARGET = NO JSON_FOR_MODERN_CPP_CONF_OPTS = -DJSON_BuildTests=OFF -DJSON_MultipleHeaders=ON $(eval $(cmake-package)) ================================================ FILE: package/json-glib/Config.in ================================================ config BR2_PACKAGE_JSON_GLIB bool "json-glib" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 select BR2_PACKAGE_LIBGLIB2 help JSON-GLib is a library providing serialization and deserialization support for the JavaScript Object Notation (JSON) format described by RFC 4627. https://live.gnome.org/JsonGlib/ comment "json-glib needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/json-glib/json-glib.hash ================================================ # From http://ftp.gnome.org/pub/GNOME/sources/json-glib/1.4/json-glib-1.4.4.sha256sum sha256 720c5f4379513dc11fd97dc75336eb0c0d3338c53128044d9fabec4374f4bc47 json-glib-1.4.4.tar.xz # Hash for license file: sha256 a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7 COPYING ================================================ FILE: package/json-glib/json-glib.mk ================================================ ################################################################################ # # json-glib # ################################################################################ JSON_GLIB_VERSION_MAJOR = 1.4 JSON_GLIB_VERSION = $(JSON_GLIB_VERSION_MAJOR).4 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 = LGPL-2.1+ JSON_GLIB_LICENSE_FILES = COPYING JSON_GLIB_INSTALL_STAGING = YES JSON_GLIB_DEPENDENCIES = \ $(TARGET_NLS_DEPENDENCIES) \ host-pkgconf \ libglib2 ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) JSON_GLIB_CONF_OPTS += -Dintrospection=true JSON_GLIB_DEPENDENCIES += gobject-introspection else JSON_GLIB_CONF_OPTS += -Dintrospection=false endif JSON_GLIB_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) $(eval $(meson-package)) ================================================ FILE: package/json-javascript/Config.in ================================================ config BR2_PACKAGE_JSON_JAVASCRIPT bool "json-javascript" help JSON in JavaScript https://github.com/douglascrockford/JSON-js/ ================================================ FILE: package/json-javascript/json-javascript.hash ================================================ # Locally calculated sha256 1a9dd4429e4bb4929dcb438f9591a3625bc8cc161f840b5f843d8b1d2c8dcfe5 json-javascript-3d7767b6b1f3da363c625ff54e63bbf20e9e83ac.tar.gz sha256 925947d3d711c4441a9db20f51215fbf5c119d2a3b51cadb2c9031907d8014b5 json2.js ================================================ FILE: package/json-javascript/json-javascript.mk ================================================ ################################################################################ # # json-javascript # ################################################################################ JSON_JAVASCRIPT_VERSION = 3d7767b6b1f3da363c625ff54e63bbf20e9e83ac JSON_JAVASCRIPT_SITE = $(call github,douglascrockford,JSON-js,$(JSON_JAVASCRIPT_VERSION)) JSON_JAVASCRIPT_LICENSE = Public Domain JSON_JAVASCRIPT_LICENSE_FILES = json2.js define JSON_JAVASCRIPT_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/json2.js $(TARGET_DIR)/var/www/json2.js endef $(eval $(generic-package)) ================================================ FILE: package/jsoncpp/Config.in ================================================ config BR2_PACKAGE_JSONCPP bool "jsoncpp" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 depends on BR2_INSTALL_LIBSTDCPP help JsonCpp is a C++ library that allows manipulating JSON values, including serialization and deserialization to and from strings. It can also preserve existing comment in unserialization/serialization steps, making it a convenient format to store user input files. https://github.com/open-source-parsers/jsoncpp comment "jsoncpp needs a toolchain w/ C++, gcc >= 4.7" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/jsoncpp/jsoncpp.hash ================================================ # Locally computed sha256 e34a628a8142643b976c7233ef381457efad79468c67cb1ae0b83a33d7493999 jsoncpp-1.9.4.tar.gz sha256 95039d77a20e75b428207740d9a8f97b2dce3c89da4b21f1ad862b5997160e0a LICENSE ================================================ FILE: package/jsoncpp/jsoncpp.mk ================================================ ################################################################################ # # jsoncpp # ################################################################################ JSONCPP_VERSION = 1.9.4 JSONCPP_SITE = $(call github,open-source-parsers,jsoncpp,$(JSONCPP_VERSION)) JSONCPP_LICENSE = Public Domain or MIT JSONCPP_LICENSE_FILES = LICENSE JSONCPP_CPE_ID_VENDOR = jsoncpp_project JSONCPP_INSTALL_STAGING = YES JSONCPP_CONF_OPTS = -Dtests=false $(eval $(meson-package)) ================================================ FILE: package/jszip/0001-fix-Use-a-null-prototype-object-for-this-files.patch ================================================ From 22357494f424178cb416cdb7d93b26dd4f824b36 Mon Sep 17 00:00:00 2001 From: Michael Aquilina Date: Mon, 14 Jun 2021 12:28:46 +0100 Subject: [PATCH] fix: Use a null prototype object for this.files This approach is taken to prevent overriding object methods that would exist on a normal object Object.create({}) [Retrieved from: https://github.com/Stuk/jszip/commit/22357494f424178cb416cdb7d93b26dd4f824b36] Signed-off-by: Fabrice Fontaine --- lib/index.js | 5 ++++- lib/object.js | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/index.js b/lib/index.js index b449877..b4c95ba 100644 --- a/lib/index.js +++ b/lib/index.js @@ -19,7 +19,10 @@ function JSZip() { // "folder/" : {...}, // "folder/data.txt" : {...} // } - this.files = {}; + // NOTE: we use a null prototype because we do not + // want filenames like "toString" coming from a zip file + // to overwrite methods and attributes in a normal Object. + this.files = Object.create(null); this.comment = null; diff --git a/lib/object.js b/lib/object.js index 1c9d8e8..aec3db7 100644 --- a/lib/object.js +++ b/lib/object.js @@ -179,16 +179,16 @@ var out = { */ forEach: function(cb) { var filename, relativePath, file; + /* jshint ignore:start */ + // ignore warning about unwanted properties because this.files is a null prototype object for (filename in this.files) { - if (!this.files.hasOwnProperty(filename)) { - continue; - } file = this.files[filename]; relativePath = filename.slice(this.root.length, filename.length); if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn... } } + /* jshint ignore:end */ }, /** ================================================ FILE: package/jszip/Config.in ================================================ config BR2_PACKAGE_JSZIP bool "jszip" help JSZip is a javascript library for creating, reading and editing .zip files, with a lovely and simple API. https://stuk.github.io/jszip ================================================ FILE: package/jszip/jszip.hash ================================================ # Locally computed: sha256 e5343decfb781b15c54c0df9ddedd6c8518c800a4667a0a95741c694a4f38d34 jszip-3.2.2.tar.gz sha256 14450c78405ad2a2173e25740b56406556779149df9c4c83523a8c63d0686210 LICENSE.markdown ================================================ FILE: package/jszip/jszip.mk ================================================ ################################################################################ # # jszip # ################################################################################ JSZIP_VERSION = 3.2.2 JSZIP_SITE = $(call github,Stuk,jszip,v$(JSZIP_VERSION)) JSZIP_LICENSE = MIT or GPL-3.0 JSZIP_LICENSE_FILES = LICENSE.markdown JSZIP_CPE_ID_VENDOR = jszip_project # 0001-fix-Use-a-null-prototype-object-for-this-files.patch JSZIP_IGNORE_CVES += CVE-2021-23413 define JSZIP_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/dist/jszip.min.js \ $(TARGET_DIR)/var/www/jszip/js/jszip.min.js endef $(eval $(generic-package)) ================================================ FILE: package/kbd/Config.in ================================================ config BR2_PACKAGE_KBD bool "kbd" # Uses fork() depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # _Generic help Keytable files and keyboard utilities. http://kernel.org/pub/linux/utils/kbd/ comment "kbd needs a toolchain w/ gcc >= 4.9" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/kbd/kbd.hash ================================================ # From https://www.kernel.org/pub/linux/utils/kbd/sha256sums.asc sha256 55f0740458cfd3a84e775e50d7e8b92dc01846db1edad8e2411ccc293ece9b9f kbd-2.4.0.tar.xz sha256 ddb9db7630752f8fdc6898f7c99a99eaeeac5213627ecb093df9c82f56175dc7 COPYING sha256 5a16340fe773f422144b436df90319114a2884933c56e9be6fad642e59be5e1f CREDITS ================================================ FILE: package/kbd/kbd.mk ================================================ ################################################################################ # # kbd # ################################################################################ KBD_VERSION = 2.4.0 KBD_SOURCE = kbd-$(KBD_VERSION).tar.xz KBD_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kbd KBD_CONF_OPTS = \ --disable-vlock \ --disable-tests KBD_DEPENDENCIES = \ $(TARGET_NLS_DEPENDENCIES) \ host-pkgconf KBD_LICENSE = GPL-2.0+ KBD_LICENSE_FILES = COPYING CREDITS KBD_INSTALL_TARGET_OPTS = MKINSTALLDIRS=$(@D)/config/mkinstalldirs DESTDIR=$(TARGET_DIR) install $(eval $(autotools-package)) ================================================ FILE: package/keepalived/0001-core-Fix-compiling-on-RHEL-9.patch ================================================ From 3fd0c21e4f63ac0a52b5d7a09575f0f364972e4d Mon Sep 17 00:00:00 2001 From: Quentin Armitage Date: Tue, 8 Jun 2021 08:57:45 +0100 Subject: [PATCH] core: Fix compiling on RHEL 9 Signed-off-by: Quentin Armitage [Retrieved from: https://github.com/acassen/keepalived/commit/3fd0c21e4f63ac0a52b5d7a09575f0f364972e4d] Signed-off-by: Fabrice Fontaine --- keepalived/core/layer4.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keepalived/core/layer4.c b/keepalived/core/layer4.c index d2cc971a3..fdca04913 100644 --- a/keepalived/core/layer4.c +++ b/keepalived/core/layer4.c @@ -27,13 +27,14 @@ #include #include #include +#include +#include #include #include #ifdef ERRQUEUE_NEEDS_SYS_TIME #include #endif #include -#include #include "layer4.h" #include "logger.h" ================================================ FILE: package/keepalived/Config.in ================================================ config BR2_PACKAGE_KEEPALIVED bool "keepalived" depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS # uses libdl select BR2_PACKAGE_OPENSSL help The main goal of the keepalived project is to add a strong & robust keepalive facility to the Linux Virtual Server project. It implements a multilayer TCP/IP stack checks. Keepalived implements a framework based on three family checks: Layer3, Layer4 & Layer5. This framework gives the daemon the ability of checking a LVS server pool states. Keepalived can be sumarize as a LVS driving daemon. http://www.keepalived.org/ comment "keepalived needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/keepalived/keepalived.hash ================================================ # Locally calculated sha256 245bf399e4320064996ac5507236a8896f545d005f6c4c3b91701bcbc5728c60 keepalived-2.1.4.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/keepalived/keepalived.mk ================================================ ################################################################################ # # keepalived # ################################################################################ KEEPALIVED_VERSION = 2.1.4 KEEPALIVED_SITE = http://www.keepalived.org/software KEEPALIVED_DEPENDENCIES = host-pkgconf openssl KEEPALIVED_LICENSE = GPL-2.0+ KEEPALIVED_LICENSE_FILES = COPYING KEEPALIVED_CPE_ID_VENDOR = keepalived KEEPALIVED_CONF_OPTS = --disable-hardening ifeq ($(BR2_PACKAGE_JSON_C),y) KEEPALIVED_DEPENDENCIES += json-c KEEPALIVED_CONF_OPTS += --enable-json else KEEPALIVED_CONF_OPTS += --disable-json endif ifeq ($(BR2_PACKAGE_LIBGLIB2),y) KEEPALIVED_DEPENDENCIES += libglib2 KEEPALIVED_CONF_OPTS += --enable-dbus else KEEPALIVED_CONF_OPTS += --disable-dbus endif ifeq ($(BR2_PACKAGE_LIBNL)$(BR2_PACKAGE_LIBNFNETLINK),yy) KEEPALIVED_DEPENDENCIES += libnl libnfnetlink KEEPALIVED_CONF_OPTS += --enable-libnl else KEEPALIVED_CONF_OPTS += --disable-libnl endif ifeq ($(BR2_PACKAGE_IPTABLES),y) KEEPALIVED_DEPENDENCIES += iptables KEEPALIVED_CONF_OPTS += --enable-iptables # ipset support only makes sense when iptables support is enabled. ifeq ($(BR2_PACKAGE_IPSET),y) KEEPALIVED_DEPENDENCIES += ipset KEEPALIVED_CONF_OPTS += --enable-libipset else KEEPALIVED_CONF_OPTS += --disable-libipset endif else KEEPALIVED_CONF_OPTS += --disable-iptables endif ifeq ($(BR2_PACKAGE_LIBNFTNL),y) KEEPALIVED_DEPENDENCIES += libnftnl KEEPALIVED_CONF_OPTS += --enable-nftables else KEEPALIVED_CONF_OPTS += --disable-nftables endif $(eval $(autotools-package)) ================================================ FILE: package/kexec/0001-kexec-tools-Remove-duplicate-definition-of-ramdisk.patch ================================================ From 5e7ce27626a44428c01e0e5ab3fe60ef98ca788c Mon Sep 17 00:00:00 2001 From: Petr Tesarik Date: Mon, 26 Apr 2021 15:29:51 +0200 Subject: kexec-tools: Remove duplicate definition of ramdisk The ramdisk variable is defined in kexec/arch/ppc/kexec-ppc.c. This other definition is not needed and breaks build with -fno-common. Signed-off-by: Petr Tesarik Signed-off-by: Simon Horman [Retrieved from: https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git/commit/?id=5e7ce27626a44428c01e0e5ab3fe60ef98ca788c] Signed-off-by: Fabrice Fontaine --- kexec/arch/ppc/kexec-elf-ppc.c | 1 - 1 file changed, 1 deletion(-) diff --git a/kexec/arch/ppc/kexec-elf-ppc.c b/kexec/arch/ppc/kexec-elf-ppc.c index ad43ad1..4a4886e 100644 --- a/kexec/arch/ppc/kexec-elf-ppc.c +++ b/kexec/arch/ppc/kexec-elf-ppc.c @@ -33,7 +33,6 @@ static const int probe_debug = 0; unsigned char reuse_initrd; -const char *ramdisk; int create_flatten_tree(struct kexec_info *, unsigned char **, unsigned long *, char *); -- cgit 1.2.3-1.el7 ================================================ FILE: package/kexec/Config.in ================================================ config BR2_PACKAGE_KEXEC bool "kexec" depends on BR2_i386 || BR2_x86_64 || BR2_arm || BR2_armeb || \ BR2_mips || BR2_mips64 || BR2_mipsel || BR2_mips64el || \ BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \ BR2_sh4 || BR2_sh4a || BR2_aarch64 || BR2_s390x help Kexec is a user space utility for loading another kernel and asking the currently running kernel to do something with it. https://www.kernel.org/pub/linux/utils/kernel/kexec/ if BR2_PACKAGE_KEXEC config BR2_PACKAGE_KEXEC_ZLIB bool "zlib support" select BR2_PACKAGE_ZLIB help Support for compressed kernel images endif ================================================ FILE: package/kexec/kexec.hash ================================================ # From https://www.kernel.org/pub/linux/utils/kernel/kexec/sha256sums.asc sha256 96c97f49ed86049f8b72722cb53e7fe3693e5a4f31e78a3a6249e3d18dac49c2 kexec-tools-2.0.22.tar.xz # locally calculated sha256 fa5fc1d1eec39532ea517518eeefd7b6e3c14341a55e5880a0e2a49eee47a5b7 COPYING ================================================ FILE: package/kexec/kexec.mk ================================================ ################################################################################ # # kexec # ################################################################################ KEXEC_VERSION = 2.0.22 KEXEC_SOURCE = kexec-tools-$(KEXEC_VERSION).tar.xz KEXEC_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kernel/kexec KEXEC_LICENSE = GPL-2.0 KEXEC_LICENSE_FILES = COPYING KEXEC_SELINUX_MODULES = kdump # Makefile expects $STRIP -o to work, so needed for !BR2_STRIP_strip KEXEC_MAKE_OPTS = STRIP="$(TARGET_CROSS)strip" ifeq ($(BR2_PACKAGE_KEXEC_ZLIB),y) KEXEC_CONF_OPTS += --with-zlib KEXEC_DEPENDENCIES += zlib else KEXEC_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_XZ),y) KEXEC_CONF_OPTS += --with-lzma KEXEC_DEPENDENCIES += xz else KEXEC_CONF_OPTS += --without-lzma endif define KEXEC_REMOVE_LIB_TOOLS rm -rf $(TARGET_DIR)/usr/lib/kexec-tools endef KEXEC_POST_INSTALL_TARGET_HOOKS += KEXEC_REMOVE_LIB_TOOLS $(eval $(autotools-package)) ================================================ FILE: package/kexec-lite/0001-clean-restart.patch ================================================ From 0a654c20e1b9324c57ba4116b52fb6ab33847e1d Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Thu, 8 Aug 2013 17:16:31 +0800 Subject: [PATCH] kexec: Implement clean restart for busybox init Signed-off-by: Jeremy Kerr --- kexec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kexec.c b/kexec.c index 2edb7df..b2a0c42 100644 --- a/kexec.c +++ b/kexec.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -818,7 +819,7 @@ int main(int argc, char *argv[]) sync(); exec_kexec(); } else { - execlp("shutdown", "shutdown", "-r", "now", NULL); + kill(1, SIGQUIT); } return -1; -- 1.7.10.4 ================================================ FILE: package/kexec-lite/Config.in ================================================ config BR2_PACKAGE_KEXEC_LITE bool "kexec-lite" depends on BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le depends on !BR2_STATIC_LIBS # dtc, elfutils depends on BR2_USE_WCHAR # elfutils depends on BR2_TOOLCHAIN_HAS_THREADS # elfutils depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils select BR2_PACKAGE_ELFUTILS select BR2_PACKAGE_DTC select BR2_PACKAGE_DTC_PROGRAMS help Kexec is a user space utiltity for loading another kernel and asking the currently running kernel to do something with it. This package is a tiny implementation of the kexec userspace components, for devicetree-based platforms. https://github.com/antonblanchard/kexec-lite comment "kexec-lite needs a uClibc or glibc toolchain w/ wchar, dynamic library, threads" depends on BR2_powerpc || BR2_powerpc64 depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR \ || !BR2_TOOLCHAIN_HAS_THREADS \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) ================================================ FILE: package/kexec-lite/kexec-lite.hash ================================================ # Locally calculated sha256 1027c69721e8ee21614273a540e1dd505370d8d814845c0adaf838496105a35d kexec-lite-6b0130b3c1ea489e061cda2805e6f8b68dc96a76.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/kexec-lite/kexec-lite.mk ================================================ ################################################################################ # # kexec-lite # ################################################################################ KEXEC_LITE_VERSION = 6b0130b3c1ea489e061cda2805e6f8b68dc96a76 KEXEC_LITE_SITE = $(call github,antonblanchard,kexec-lite,$(KEXEC_LITE_VERSION)) KEXEC_LITE_LICENSE = GPL-2.0+ KEXEC_LITE_LICENSE_FILES = COPYING KEXEC_LITE_DEPENDENCIES = elfutils dtc KEXEC_LITE_AUTORECONF = YES KEXEC_LITE_SELINUX_MODULES = kdump $(eval $(autotools-package)) ================================================ FILE: package/keyutils/0001-fix-install-rule.patch ================================================ Makefile: fix install rule Do not link the .so with an absolute path, otherwise it may point to the host library. Based on the former patch by Yann E. MORIN. Signed-off-by: Vicente Olivert Riera [baruch: update for 1.6] Signed-off-by: Baruch Siach --- keyutils-1.5.9/Makefile.orig 2014-09-22 16:13:41.593562765 +0100 +++ keyutils-1.5.9/Makefile 2014-09-22 16:14:05.377963952 +0100 @@ -200,7 +200,7 @@ ifeq ($(NO_SOLIB),0) $(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME) $(LNS) $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME) mkdir -p $(DESTDIR)$(USRLIBDIR) - $(LNS) $(LIBDIR)/$(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB) + $(LNS) $(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB) sed \ -e 's,@VERSION\@,$(VERSION),g' \ -e 's,@prefix\@,$(PREFIX),g' \ ================================================ FILE: package/keyutils/0002-cifs.patch ================================================ Patch vampirised from Debian's packaging of keyutils-1.4 Author: Marcus Meissner Description: Added 2 cifs helpers to request-key.conf (for CIFS DFS support) diff -Naurp keyutils.orig/request-key.conf keyutils/request-key.conf --- keyutils.orig/request-key.conf 2008-09-07 23:53:10.000000000 +0000 +++ keyutils/request-key.conf 2009-02-05 00:53:00.000000000 +0000 @@ -38,4 +38,6 @@ create user debug:* revoked /bin/keyctl reject %k 30 %c %S create user debug:loop:* * |/bin/cat create user debug:* * /usr/share/keyutils/request-key-debug.sh %k %d %c %S +create cifs.spnego * * /usr/sbin/cifs.upcall -c %k +create dns_resolver * * /usr/sbin/cifs.upcall %k negate * * * /bin/keyctl negate %k 30 %S ================================================ FILE: package/keyutils/Config.in ================================================ config BR2_PACKAGE_KEYUTILS bool "keyutils" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # dlopen help These tools are used to control the key management system built into the Linux kernel. https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/ comment "keyutils needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/keyutils/keyutils.hash ================================================ # Locally computed sha256 a61d5706136ae4c05bd48f86186bcfdbd88dd8bd5107e3e195c924cfc1b39bb4 keyutils-1.6.3.tar.gz sha256 f46409d4822b2457b39bbd0e7881eecb396130eb8320b7748fa7e9488970aa6d LICENCE.GPL sha256 0d15593e3a8ad90917f8509b5ac1e4b5e5d196434a68029aa9dc0858a4a4c521 LICENCE.LGPL ================================================ FILE: package/keyutils/keyutils.mk ================================================ ################################################################################ # # keyutils # ################################################################################ KEYUTILS_VERSION = 1.6.3 KEYUTILS_SITE = https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot KEYUTILS_LICENSE = GPL-2.0+, LGPL-2.1+ KEYUTILS_LICENSE_FILES = LICENCE.GPL LICENCE.LGPL KEYUTILS_INSTALL_STAGING = YES KEYUTILS_MAKE_PARAMS = \ INSTALL=$(INSTALL) \ LIBDIR=/usr/lib \ USRLIBDIR=/usr/lib \ CFLAGS="$(TARGET_CFLAGS)" \ CPPFLAGS="$(TARGET_CPPFLAGS) -I." \ LNS="$(HOSTLN) -sf" ifeq ($(BR2_SHARED_LIBS),y) KEYUTILS_MAKE_PARAMS += NO_ARLIB=1 endif # Touch cxx.stamp to avoid adding a C++ dependency define KEYUTILS_CONFIGURE_CMDS touch $(@D)/cxx.stamp endef define KEYUTILS_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) $(KEYUTILS_MAKE_PARAMS) -C $(@D) endef define KEYUTILS_INSTALL_STAGING_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) $(KEYUTILS_MAKE_PARAMS) -C $(@D) DESTDIR=$(STAGING_DIR) install endef define KEYUTILS_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) $(KEYUTILS_MAKE_PARAMS) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/kf5/Config.in ================================================ menuconfig BR2_PACKAGE_KF5 bool "KF5" depends on BR2_PACKAGE_QT5 help This option enables the KF5 KDE Frameworks. Sub-options allow to select which modules should be built. https://techbase.kde.org/KDE_Frameworks if BR2_PACKAGE_KF5 source "package/kf5/kf5-extra-cmake-modules/Config.in" source "package/kf5/kf5-kcoreaddons/Config.in" source "package/kf5/kf5-modemmanager-qt/Config.in" source "package/kf5/kf5-networkmanager-qt/Config.in" endif ================================================ FILE: package/kf5/kf5-extra-cmake-modules/Config.in ================================================ config BR2_PACKAGE_KF5_EXTRA_CMAKE_MODULES bool "kf5-extra-cmake-modules" help KF5 is a set of Qt framework addons, extending Qt in various ways, not only restricted in helping integration in KDE. This package corresponds to the extra CMake modules, required for most KF5 libraries. https://api.kde.org/frameworks/extra-cmake-modules/html/index.html ================================================ FILE: package/kf5/kf5-extra-cmake-modules/kf5-extra-cmake-modules.hash ================================================ # Locally calculated sha256 976d8bd15a0b929376bfaef34602a0fb9614229851c46fac3c4b28938f682195 extra-cmake-modules-5.47.0.tar.xz sha256 46cde7dc11e64c78d650b4851b88f6704b4665ff60f22a1caf68ceb15e217e5b COPYING-CMAKE-SCRIPTS ================================================ FILE: package/kf5/kf5-extra-cmake-modules/kf5-extra-cmake-modules.mk ================================================ ################################################################################ # # kf5-extra-cmake-modules # ################################################################################ KF5_EXTRA_CMAKE_MODULES_VERSION = $(KF5_VERSION) KF5_EXTRA_CMAKE_MODULES_SITE = $(KF5_SITE) KF5_EXTRA_CMAKE_MODULES_SOURCE = extra-cmake-modules-$(KF5_EXTRA_CMAKE_MODULES_VERSION).tar.xz KF5_EXTRA_CMAKE_MODULES_LICENSE = BSD-3-Clause KF5_EXTRA_CMAKE_MODULES_LICENSE_FILES = COPYING-CMAKE-SCRIPTS KF5_EXTRA_CMAKE_MODULES_DEPENDENCIES = host-pkgconf KF5_EXTRA_CMAKE_MODULES_INSTALL_STAGING = YES KF5_EXTRA_CMAKE_MODULES_INSTALL_TARGET = NO $(eval $(cmake-package)) ================================================ FILE: package/kf5/kf5-kcoreaddons/Config.in ================================================ config BR2_PACKAGE_KF5_KCOREADDONS bool "kf5-kcoreaddons" depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 select BR2_PACKAGE_KF5_EXTRA_CMAKE_MODULES select BR2_PACKAGE_QT5TOOLS select BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS help KF5 is a set of Qt framework addons, extending Qt in various ways, not only restricted in helping integration in KDE. This package contains KCoreAddons, a set of classes built on top of QtCore to perform various tasks. https://api.kde.org/frameworks/kcoreaddons/html/index.html ================================================ FILE: package/kf5/kf5-kcoreaddons/kf5-kcoreaddons.hash ================================================ # Locally calculated sha256 40ff04757e4ac19bc8448940fe18886c894a2069865966cc865fc55ff67b0b46 kcoreaddons-5.47.0.tar.xz sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING.LIB ================================================ FILE: package/kf5/kf5-kcoreaddons/kf5-kcoreaddons.mk ================================================ ################################################################################ # # kf5-kcoreaddons # ################################################################################ KF5_KCOREADDONS_VERSION = $(KF5_VERSION) KF5_KCOREADDONS_SITE = $(KF5_SITE) KF5_KCOREADDONS_SOURCE = kcoreaddons-$(KF5_KCOREADDONS_VERSION).tar.xz KF5_KCOREADDONS_LICENSE = LGPL-2.1 KF5_KCOREADDONS_LICENSE_FILES = COPYING.LIB KF5_KCOREADDONS_DEPENDENCIES = kf5-extra-cmake-modules qt5tools KF5_KCOREADDONS_INSTALL_STAGING = YES KF5_KCOREADDONS_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) KF5_KCOREADDONS_CXXFLAGS += -latomic endif KF5_KCOREADDONS_CONF_OPTS = -DCMAKE_CXX_FLAGS="$(KF5_KCOREADDONS_CXXFLAGS)" ifeq ($(BR2_microblaze),y) # Microblaze ld emits warnings, make warnings not to be treated as errors KF5_KCOREADDONS_CONF_OPTS += -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--no-fatal-warnings" endif $(eval $(cmake-package)) ================================================ FILE: package/kf5/kf5-modemmanager-qt/Config.in ================================================ config BR2_PACKAGE_KF5_MODEMMANAGER_QT bool "kf5-modemmanager-qt" depends on BR2_USE_MMU # qt5dbus depends on BR2_TOOLCHAIN_HAS_THREADS # qt5dbus depends on BR2_PACKAGE_MODEM_MANAGER select BR2_PACKAGE_QT5BASE_DBUS select BR2_PACKAGE_KF5_EXTRA_CMAKE_MODULES help KF5 is a set of Qt framework addons, extending Qt in various ways, not only restricted in helping integration in KDE. This package contains the ModemManager Qt5 bindings from the KF5 project. https://api.kde.org/frameworks/modemmanager-qt/html/index.html comment "kf5-modemmanager-qt needs toolchain w/ threads" depends on BR2_USE_MMU depends on BR2_PACKAGE_MODEM_MANAGER depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.hash ================================================ # Locally calculated sha256 8b6ab15ce82b7a30b26814178ac33380056ec4398707481aa5ce95cf09d39d03 modemmanager-qt-5.47.0.tar.xz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB ================================================ FILE: package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.mk ================================================ ################################################################################ # # kf5-modemmanager-qt # ################################################################################ KF5_MODEMMANAGER_QT_VERSION = $(KF5_VERSION) KF5_MODEMMANAGER_QT_SITE = $(KF5_SITE) KF5_MODEMMANAGER_QT_SOURCE = modemmanager-qt-$(KF5_MODEMMANAGER_QT_VERSION).tar.xz KF5_MODEMMANAGER_QT_LICENSE = LGPL-2.1+ KF5_MODEMMANAGER_QT_LICENSE_FILES = COPYING.LIB KF5_MODEMMANAGER_QT_DEPENDENCIES = kf5-extra-cmake-modules modem-manager qt5base KF5_MODEMMANAGER_QT_INSTALL_STAGING = YES # Uses __atomic_fetch_add_4 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) KF5_MODEMMANAGER_QT_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif $(eval $(cmake-package)) ================================================ FILE: package/kf5/kf5-networkmanager-qt/Config.in ================================================ config BR2_PACKAGE_KF5_NETWORKMANAGER_QT bool "kf5-networkmanager-qt" depends on BR2_USE_MMU # qt5dbus depends on BR2_TOOLCHAIN_HAS_THREADS # qt5dbus depends on BR2_PACKAGE_NETWORK_MANAGER select BR2_PACKAGE_QT5BASE_DBUS select BR2_PACKAGE_KF5_EXTRA_CMAKE_MODULES help KF5 is a set of Qt framework addons, extending Qt in various ways, not only restricted in helping integration in KDE. This package contains the NetworkManager Qt5 bindings from the KF5 project. https://api.kde.org/frameworks/networkmanager-qt/html/index.html comment "kf5-networkmanager-qt needs toolchain w/ threads" depends on BR2_USE_MMU depends on BR2_PACKAGE_NETWORK_MANAGER depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/kf5/kf5-networkmanager-qt/kf5-networkmanager-qt.hash ================================================ # Locally calculated sha256 d0b377500ee4cf4f029f4d04d6844bcf3d2d6734982b511a5fffab5165688209 networkmanager-qt-5.47.0.tar.xz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB ================================================ FILE: package/kf5/kf5-networkmanager-qt/kf5-networkmanager-qt.mk ================================================ ################################################################################ # # kf5-networkmanager-qt # ################################################################################ KF5_NETWORKMANAGER_QT_VERSION = $(KF5_VERSION) KF5_NETWORKMANAGER_QT_SITE = $(KF5_SITE) KF5_NETWORKMANAGER_QT_SOURCE = networkmanager-qt-$(KF5_NETWORKMANAGER_QT_VERSION).tar.xz KF5_NETWORKMANAGER_QT_LICENSE = LGPL-2.1+ KF5_NETWORKMANAGER_QT_LICENSE_FILES = COPYING.LIB KF5_NETWORKMANAGER_QT_DEPENDENCIES = kf5-extra-cmake-modules network-manager qt5base KF5_NETWORKMANAGER_QT_INSTALL_STAGING = YES $(eval $(cmake-package)) ================================================ FILE: package/kf5/kf5.mk ================================================ ################################################################################ # # kf5 # ################################################################################ KF5_VERSION_MAJOR = 5.47 KF5_VERSION = $(KF5_VERSION_MAJOR).0 KF5_SITE = https://download.kde.org/stable/frameworks/$(KF5_VERSION_MAJOR) include $(sort $(wildcard package/kf5/*/*.mk)) ================================================ FILE: package/kismet/Config.in ================================================ comment "kismet needs a toolchain w/ threads, C++, gcc >= 5" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" config BR2_PACKAGE_KISMET bool "kismet" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" # protobuf-c depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++14 select BR2_PACKAGE_LIBPCAP select BR2_PACKAGE_PROTOBUF_C select BR2_PACKAGE_SQLITE select BR2_PACKAGE_ZLIB help Kismet is a wireless network and device detector, sniffer, wardriving tool, and WIDS (wireless intrusion detection) framework. Kismet works with Wi-Fi interfaces, Bluetooth interfaces, some SDR (software defined radio) hardware like the RTLSDR, and other specialized capture hardware. http://www.kismetwireless.net if BR2_PACKAGE_KISMET config BR2_PACKAGE_KISMET_PYTHON_TOOLS bool "Install python tools" depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # protobuf depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS # python-numpy depends on BR2_PACKAGE_PYTHON3 depends on !BR2_STATIC_LIBS # protobuf depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy select BR2_PACKAGE_PROTOBUF select BR2_PACKAGE_PYTHON_NUMPY # runtime for RTLAMR and RTLADSB select BR2_PACKAGE_PYTHON_PROTOBUF # runtime select BR2_PACKAGE_PYTHON_SERIAL # runtime for Freaklabs Zigbee select BR2_PACKAGE_PYTHON_SETUPTOOLS help Enable Python and Python-related tools (RTL_433, RTLAMR, RTLADSB and Freaklabs Zigbee) comment "python tools needs python3" depends on !BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS comment "python tools needs a glibc or musl toolchain w/ dynamic library" depends on BR2_STATIC_LIBS depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) config BR2_PACKAGE_KISMET_SERVER bool "Install server" default y depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # protobuf depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_USE_WCHAR depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::future select BR2_PACKAGE_PROTOBUF comment "server needs a toolchain w/ dynamic library, wchar" depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR comment "server needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 endif ================================================ FILE: package/kismet/kismet.hash ================================================ # Locally computed sha256 1c8e31b1babdb0fc93ac38fd0772a24d4b40f865fbc292fa8ec7f4a18ced0135 kismet-2021-08-R1.tar.xz sha256 93c7f0d7e356b0abfb6f494ff3ea37f96abc84e9a5619b25d4e43f7553a55739 LICENSE ================================================ FILE: package/kismet/kismet.mk ================================================ ################################################################################ # # kismet # ################################################################################ KISMET_VERSION = 2021-08-R1 KISMET_SOURCE = kismet-$(KISMET_VERSION).tar.xz KISMET_SITE = http://www.kismetwireless.net/code KISMET_DEPENDENCIES = \ host-pkgconf \ libpcap \ $(if $(BR2_PACKAGE_LIBNL),libnl) \ $(if $(BR2_PACKAGE_PROTOBUF),protobuf) \ protobuf-c \ sqlite \ zlib KISMET_LICENSE = GPL-2.0+ KISMET_LICENSE_FILES = LICENSE KISMET_SELINUX_MODULES = kismet KISMET_CONF_OPTS = --disable-debuglibs KISMET_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) KISMET_CXXFLAGS += -O0 endif KISMET_CONF_ENV += CXXFLAGS="$(KISMET_CXXFLAGS)" ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) KISMET_CONF_ENV += LIBS=-latomic endif ifeq ($(BR2_PACKAGE_LIBCAP),y) KISMET_DEPENDENCIES += libcap KISMET_CONF_OPTS += --enable-libcap else KISMET_CONF_OPTS += --disable-libcap endif ifeq ($(BR2_PACKAGE_LIBUSB),y) KISMET_DEPENDENCIES += libusb KISMET_CONF_OPTS += --enable-libusb else KISMET_CONF_OPTS += --disable-libusb endif ifeq ($(BR2_PACKAGE_LIBWEBSOCKETS),y) KISMET_DEPENDENCIES += libwebsockets KISMET_CONF_OPTS += --enable-libwebsockets else KISMET_CONF_OPTS += --disable-libwebsockets endif ifeq ($(BR2_PACKAGE_LM_SENSORS),y) KISMET_DEPENDENCIES += lm-sensors KISMET_CONF_OPTS += --enable-lmsensors else KISMET_CONF_OPTS += --disable-lmsensors endif ifeq ($(BR2_PACKAGE_PCRE),y) KISMET_DEPENDENCIES += pcre KISMET_CONF_OPTS += --enable-pcre else KISMET_CONF_OPTS += --disable-pcre endif ifeq ($(BR2_PACKAGE_KISMET_PYTHON_TOOLS),y) KISMET_DEPENDENCIES += python3 python-setuptools KISMET_CONF_OPTS += \ --enable-python-tools \ --with-python-interpreter=$(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR) else KISMET_CONF_OPTS += --disable-python-tools endif KISMET_INSTALL_TARGET_OPTS += \ DESTDIR=$(TARGET_DIR) \ INSTUSR=$(shell id -u) \ INSTGRP=$(shell id -g) \ SUIDGROUP=$(shell id -g) ifeq ($(BR2_PACKAGE_KISMET_SERVER),y) KISMET_CONF_OPTS += --disable-capture-tools-only KISMET_INSTALL_TARGET_OPTS += install else KISMET_CONF_OPTS += --enable-capture-tools-only KISMET_INSTALL_TARGET_OPTS += binsuidinstall endif $(eval $(autotools-package)) ================================================ FILE: package/kmod/0001-fix-O_CLOEXEC.patch ================================================ From b39a62f6682463bcd47480348fac3dcd209a19a5 Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Wed, 22 Jan 2014 01:06:40 -0500 Subject: [PATCH] Add dummy definition of O_CLOEXEC O_CLOEXEC is introduced from Linux 2.6.23, so old kernel doesn't have it, we need check before use. This patch is much more like a workaround, since it may need fcntl() use FD_CLOEXEC to replace. This problem was reported by "Ting Liu " [Thomas De Schampheleire Signed-off-by: Vicente Olivert Riera Upstream-status: rejected, suggests to add in buildroot instead [1] [1] http://news.gmane.org/find-root.php?message_id=1412062906%2d27378%2d1%2dgit%2dsend%2demail%2dpatrickdepinguin%40gmail.com --- shared/missing.h | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/shared/missing.h b/shared/missing.h index 4c0d136..e123e98 100644 --- a/shared/missing.h +++ b/shared/missing.h @@ -19,6 +19,10 @@ # define __NR_finit_module -1 #endif +#ifndef O_CLOEXEC +#define O_CLOEXEC 0 +#endif + #ifndef HAVE_FINIT_MODULE #include -- 1.7.1 ================================================ FILE: package/kmod/Config.in ================================================ config BR2_PACKAGE_KMOD bool "kmod" depends on !BR2_STATIC_LIBS help handle kernel modules http://git.kernel.org/?p=utils/kernel/kmod/kmod.git if BR2_PACKAGE_KMOD config BR2_PACKAGE_KMOD_TOOLS bool "kmod utilities" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Install kmod module utilities (depmod, insmod, lsmod, modinfo, modprobe, rmmod). endif comment "kmod needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/kmod/Config.in.host ================================================ config BR2_PACKAGE_HOST_KMOD bool "host kmod" help kmod is a set of tools to handle common tasks with Linux kernel modules like insert, remove, list, check properties, resolve dependencies and aliases. if BR2_PACKAGE_HOST_KMOD config BR2_PACKAGE_HOST_KMOD_GZ bool "support gzip-compressed modules" config BR2_PACKAGE_HOST_KMOD_ZSTD bool "support zstd-compressed modules" config BR2_PACKAGE_HOST_KMOD_XZ bool "support xz-compressed modules" endif ================================================ FILE: package/kmod/kmod.hash ================================================ # From https://www.kernel.org/pub/linux/utils/kernel/kmod/sha256sums.asc sha256 0b80eea7aa184ac6fd20cafa2a1fdf290ffecc70869a797079e2cc5c6225a52a kmod-29.tar.xz # Locally calculated sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 libkmod/COPYING sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING ================================================ FILE: package/kmod/kmod.mk ================================================ ################################################################################ # # kmod # ################################################################################ KMOD_VERSION = 29 KMOD_SOURCE = kmod-$(KMOD_VERSION).tar.xz KMOD_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kernel/kmod KMOD_INSTALL_STAGING = YES KMOD_DEPENDENCIES = host-pkgconf HOST_KMOD_DEPENDENCIES = host-pkgconf # license info for libkmod only, conditionally add more below KMOD_LICENSE = LGPL-2.1+ (library) KMOD_LICENSE_FILES = libkmod/COPYING KMOD_CPE_ID_VENDOR = kernel # --gc-sections triggers binutils ld segfault # https://sourceware.org/bugzilla/show_bug.cgi?id=21180 ifeq ($(BR2_microblaze),y) KMOD_CONF_ENV += cc_cv_LDFLAGS__Wl___gc_sections=false endif # static linking not supported, see # https://git.kernel.org/cgit/utils/kernel/kmod/kmod.git/commit/?id=b7016153ec8 KMOD_CONF_OPTS = --disable-static --enable-shared KMOD_CONF_OPTS += --disable-manpages HOST_KMOD_CONF_OPTS = --disable-manpages ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y) KMOD_CONF_OPTS += --with-bashcompletiondir=/usr/share/bash-completion/completions endif ifeq ($(BR2_PACKAGE_ZLIB),y) KMOD_DEPENDENCIES += zlib KMOD_CONF_OPTS += --with-zlib else KMOD_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_ZSTD),y) KMOD_DEPENDENCIES += zstd KMOD_CONF_OPTS += --with-zstd else KMOD_CONF_OPTS += --without-zstd endif ifeq ($(BR2_PACKAGE_XZ),y) KMOD_DEPENDENCIES += xz KMOD_CONF_OPTS += --with-xz else KMOD_CONF_OPTS += --without-xz endif ifeq ($(BR2_PACKAGE_OPENSSL),y) KMOD_DEPENDENCIES += openssl KMOD_CONF_OPTS += --with-openssl else KMOD_CONF_OPTS += --without-openssl endif ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y) KMOD_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON),python,python3) KMOD_CONF_OPTS += --enable-python endif ifeq ($(BR2_PACKAGE_KMOD_TOOLS),y) # add license info for kmod tools KMOD_LICENSE += , GPL-2.0+ (tools) KMOD_LICENSE_FILES += COPYING # /sbin is really /usr/sbin with merged /usr, so adjust relative symlink ifeq ($(BR2_ROOTFS_MERGED_USR),y) KMOD_BIN_PATH = ../bin/kmod else KMOD_BIN_PATH = ../usr/bin/kmod endif define KMOD_INSTALL_TOOLS for i in depmod insmod lsmod modinfo modprobe rmmod; do \ ln -sf $(KMOD_BIN_PATH) $(TARGET_DIR)/sbin/$$i; \ done endef KMOD_POST_INSTALL_TARGET_HOOKS += KMOD_INSTALL_TOOLS else KMOD_CONF_OPTS += --disable-tools endif ifeq ($(BR2_PACKAGE_HOST_KMOD_GZ),y) HOST_KMOD_DEPENDENCIES += host-zlib HOST_KMOD_CONF_OPTS += --with-zlib else HOST_KMOD_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_HOST_KMOD_ZSTD),y) HOST_KMOD_DEPENDENCIES += host-zstd HOST_KMOD_CONF_OPTS += --with-zstd else HOST_KMOD_CONF_OPTS += --without-zstd endif ifeq ($(BR2_PACKAGE_HOST_KMOD_XZ),y) HOST_KMOD_DEPENDENCIES += host-xz HOST_KMOD_CONF_OPTS += --with-xz else HOST_KMOD_CONF_OPTS += --without-xz endif # We only install depmod, since that's the only tool used for the # host. define HOST_KMOD_INSTALL_TOOLS mkdir -p $(HOST_DIR)/sbin/ ln -sf ../bin/kmod $(HOST_DIR)/sbin/depmod endef HOST_KMOD_POST_INSTALL_HOOKS += HOST_KMOD_INSTALL_TOOLS $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/kmscube/Config.in ================================================ config BR2_PACKAGE_KMSCUBE bool "kmscube" depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBGBM depends on BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT depends on BR2_PACKAGE_HAS_LIBGLES depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm select BR2_PACKAGE_LIBDRM help kmscube is an application to test kms/drm drivers. https://cgit.freedesktop.org/mesa/kmscube/ comment "kmscube needs EGL, GBM and OpenGL ES, and a toolchain w/ thread support" depends on \ !BR2_PACKAGE_HAS_LIBEGL || \ !BR2_PACKAGE_HAS_LIBGBM || \ !BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT || \ !BR2_PACKAGE_HAS_LIBGLES || \ !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/kmscube/kmscube.hash ================================================ # Locally computed sha256 ec135069d8bee7f4fe38cb9dc96fbbd56e0057290fa25eff8b5b314ee473c502 kmscube-4660a7dca6512b6e658759d00cff7d4ad2a2059d.tar.gz sha256 f622099ab0d274133f6e62d5fccfe970b61134d80ed036f45f8cf1e90c3d5a05 COPYING ================================================ FILE: package/kmscube/kmscube.mk ================================================ ################################################################################ # # kmscube # ################################################################################ KMSCUBE_VERSION = 4660a7dca6512b6e658759d00cff7d4ad2a2059d KMSCUBE_SITE = https://gitlab.freedesktop.org/mesa/kmscube/-/archive/$(KMSCUBE_VERSION) KMSCUBE_LICENSE = MIT KMSCUBE_LICENSE_FILES = COPYING KMSCUBE_DEPENDENCIES = host-pkgconf libdrm libegl libgbm libgles $(eval $(meson-package)) ================================================ FILE: package/kmsxx/Config.in ================================================ config BR2_PACKAGE_KMSXX bool "kms++" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11 # linux/dma-buf.h depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm depends on BR2_USE_WCHAR # fmt select BR2_PACKAGE_FMT 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 >= 4.11, wchar" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11 \ || !BR2_USE_WCHAR ================================================ FILE: package/kmsxx/kmsxx.hash ================================================ # Locally calculated sha256 99759fe9334369ccd80ab0bbfe1110ee47e74f1e20abc2d7b2f028067ea0a0c3 kmsxx-824bbb1f4cd062d66b457faca50f904b34dfd96c.tar.gz sha256 fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85 LICENSE ================================================ FILE: package/kmsxx/kmsxx.mk ================================================ ################################################################################ # # kmsxx # ################################################################################ KMSXX_VERSION = 824bbb1f4cd062d66b457faca50f904b34dfd96c KMSXX_SITE = $(call github,tomba,kmsxx,$(KMSXX_VERSION)) KMSXX_LICENSE = MPL-2.0 KMSXX_LICENSE_FILES = LICENSE KMSXX_INSTALL_STAGING = YES KMSXX_DEPENDENCIES = fmt libdrm host-pkgconf KMSXX_CONF_OPTS = \ -Dkmscube=false \ -Dpykms=disabled \ -Domap=disabled \ -Dsystem-pybind11=enabled ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) KMSXX_CXXFLAGS += $(TARGET_CXXFLAGS) -O0 endif ifeq ($(BR2_PACKAGE_KMSXX_INSTALL_TESTS),y) KMSXX_CONF_OPTS += -Dutils=true # extra handling for some utils not installed by default KMSXX_EXTRA_UTILS = kmsview kmscapture omap-wbcap omap-wbm2m ifeq ($(BR2_PACKAGE_LIBEVDEV),y) KMSXX_DEPENDENCIES += libevdev KMSXX_EXTRA_UTILS += kmstouch endif define KMSXX_INSTALL_EXTRA_UTILS $(foreach t,$(KMSXX_EXTRA_UTILS),\ $(INSTALL) -D -m 0755 $(@D)/build/utils/$(t) \ $(TARGET_DIR)/usr/bin/$(t) ) endef KMSXX_POST_INSTALL_TARGET_HOOKS += KMSXX_INSTALL_EXTRA_UTILS else KMSXX_CONF_OPTS += -Dutils=false endif $(eval $(meson-package)) ================================================ FILE: package/knock/Config.in ================================================ config BR2_PACKAGE_KNOCK bool "knock" help A port knocking implementation. Provides a daemon and a user application. Port knocking can be used to run an arbitrary application, once the daemon detects a predefined sequence of incoming TCP/UDP packets on a network interface. This can be used, e.g. to open up ports in a firewall. http://www.zeroflux.org/projects/knock if BR2_PACKAGE_KNOCK config BR2_PACKAGE_KNOCK_KNOCKD bool "knockd" default y depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBPCAP help Enable knockd endif ================================================ FILE: package/knock/knock.hash ================================================ # locally computed hash sha256 7a82c276ca1540faa7f5bb25010f4a59d45323a31c44a30fbe4a6e484dd18b1a knock-0.8.tar.gz sha256 d747e19206e41702e40822dd91d37cbf40edd86f364ea416d667a0e3013f7189 COPYING ================================================ FILE: package/knock/knock.mk ================================================ ################################################################################ # # knock # ################################################################################ KNOCK_VERSION = 0.8 KNOCK_SITE = $(call github,jvinet,knock,v$(KNOCK_VERSION)) KNOCK_AUTORECONF = YES KNOCK_LICENSE = GPL-2.0+ KNOCK_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_KNOCK_KNOCKD),y) KNOCK_DEPENDENCIES += libpcap KNOCK_CONF_OPTS += --enable-knockd ifeq ($(BR2_STATIC_LIBS),y) KNOCK_CONF_OPTS += LIBS="`$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs`" endif else KNOCK_CONF_OPTS += --disable-knockd endif $(eval $(autotools-package)) ================================================ FILE: package/kodi/0001-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch ================================================ From 6604cce38fed748e98d3bd2bf9d0f368d67eeb3c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 29 Jul 2015 23:13:33 +0200 Subject: [PATCH] kodi-config.cmake: use CMAKE_FIND_ROOT_PATH to fix cross-compilation When cross-compiling, the location at build time of the libraries is not the same as the one at run-time. The CMAKE_FIND_ROOT_PATH variable is here to handle this difference, so use it in kodi-config.cmake. Upstream status: Reverted (PR 17616) Signed-off-by: Thomas Petazzoni (rebased and simplified for Kodi 17.0-Krypton) Signed-off-by: Bernd Kuhls (rebased for Kodi 19.0-Matrix) --- cmake/KodiConfig.cmake.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/KodiConfig.cmake.in b/cmake/KodiConfig.cmake.in index a06d889fca9d..ff299807ea44 100644 --- a/cmake/KodiConfig.cmake.in +++ b/cmake/KodiConfig.cmake.in @@ -9,7 +9,7 @@ if(NOT @APP_NAME_UC@_PREFIX) 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@) @@ -18,7 +18,7 @@ if(NOT @APP_NAME_UC@_DATA_DIR) set(@APP_NAME_UC@_DATA_DIR @APP_DATA_DIR@) endif() set(APP_RENDER_SYSTEM @APP_RENDER_SYSTEM@) -list(APPEND CMAKE_MODULE_PATH @APP_LIB_DIR@ @APP_DATA_DIR@/cmake) +list(APPEND CMAKE_MODULE_PATH ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@ ${CMAKE_FIND_ROOT_PATH}/@APP_DATA_DIR@/cmake) string(REPLACE ";" " " ARCH_DEFINES "@ARCH_DEFINES@") add_definitions(${ARCH_DEFINES} -DBUILD_KODI_ADDON) -- 2.5.0 ================================================ FILE: package/kodi/Config.in ================================================ config BR2_PACKAGE_KODI_ARCH_SUPPORTS bool default y if BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS # i386: needs sse (see upstream PR 10351) depends on !(BR2_i386 && !BR2_X86_CPU_HAS_SSE) depends on BR2_USE_MMU # libcdio, and others comment "kodi needs python3 w/ .py modules, a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 4.9" depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_USE_WCHAR || BR2_STATIC_LIBS \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \ || BR2_TOOLCHAIN_USES_MUSL \ || !BR2_PACKAGE_PYTHON3 \ || BR2_PACKAGE_PYTHON3_PYC_ONLY config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS bool config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM bool default y depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES depends on BR2_PACKAGE_MESA3D_GBM depends on BR2_PACKAGE_HAS_UDEV # libinput select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND bool default y depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND # waylandpp depends on BR2_HOST_GCC_AT_LEAST_4_9 # waylandpp depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # waylandpp depends on BR2_INSTALL_LIBSTDCPP # waylandpp depends on BR2_PACKAGE_WAYLAND # waylandpp select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11 bool default y depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS comment "kodi needs an OpenGL EGL backend with OpenGL or GLES support" depends on !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS menuconfig BR2_PACKAGE_KODI bool "kodi" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libass -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14 depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_TOOLCHAIN_USES_MUSL depends on BR2_USE_WCHAR depends on !BR2_STATIC_LIBS # gnutls, python3 and others depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS depends on BR2_PACKAGE_KODI_PLATFORM_SUPPORTS depends on BR2_PACKAGE_PYTHON3 depends on !BR2_PACKAGE_PYTHON3_PYC_ONLY select BR2_NEEDS_HOST_JAVA select BR2_PACKAGE_FFMPEG select BR2_PACKAGE_FFMPEG_GPL select BR2_PACKAGE_FFMPEG_POSTPROC select BR2_PACKAGE_FFMPEG_SWSCALE select BR2_PACKAGE_FLATBUFFERS select BR2_PACKAGE_FMT select BR2_PACKAGE_FONTCONFIG # needed for libass select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_FSTRCMP select BR2_PACKAGE_LIBASS select BR2_PACKAGE_LIBCDIO select BR2_PACKAGE_LIBCROSSGUID select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBFRIBIDI select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBICONV_EXTRA_ENCODINGS if !BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBPLIST select BR2_PACKAGE_LZO select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_PCRE select BR2_PACKAGE_PCRE_UCP select BR2_PACKAGE_PYTHON3_2TO3 select BR2_PACKAGE_PYTHON3_PYEXPAT select BR2_PACKAGE_PYTHON3_SQLITE select BR2_PACKAGE_PYTHON3_SSL select BR2_PACKAGE_PYTHON3_UNICODEDATA select BR2_PACKAGE_PYTHON3_ZLIB select BR2_PACKAGE_RAPIDJSON select BR2_PACKAGE_SPDLOG select BR2_PACKAGE_SQLITE select BR2_PACKAGE_TAGLIB select BR2_PACKAGE_TINYXML select BR2_PACKAGE_ZLIB select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC # runtime UTF conversion support select BR2_PACKAGE_LIBINPUT if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND select BR2_PACKAGE_WAYLANDPP if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11 help Kodi is an award-winning free and open source (GPL) software media player and entertainment hub for digital media. http://kodi.tv if BR2_PACKAGE_KODI config BR2_PACKAGE_KODI_ALSA_LIB bool "alsa" select BR2_PACKAGE_ALSA_LIB help Enable alsa support. config BR2_PACKAGE_KODI_AVAHI bool "avahi" select BR2_PACKAGE_AVAHI select BR2_PACKAGE_AVAHI_DAEMON help Enable Avahi support. Select this if you want Kodi to support Bonjour protocol. config BR2_PACKAGE_KODI_BLUEZ bool "bluetooth" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # bluez5_utils depends on BR2_TOOLCHAIN_HAS_SYNC_4 # bluez5_utils select BR2_PACKAGE_BLUEZ5_UTILS select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID help Enable bluetooth support config BR2_PACKAGE_KODI_DBUS bool "dbus" select BR2_PACKAGE_DBUS help Enable D-Bus support config BR2_PACKAGE_KODI_EVENTCLIENTS bool "eventclients" help Enable event clients support https://github.com/xbmc/xbmc/blob/master/tools/EventClients/README.txt config BR2_PACKAGE_KODI_LIBBLURAY bool "blu-ray" select BR2_PACKAGE_LIBBLURAY help Enable Blu-ray input support. Select this if you want to play back Blu-ray content. config BR2_PACKAGE_KODI_LIBCEC bool "hdmi cec" select BR2_PACKAGE_LIBCEC help Enable CEC (Consumer Electronics Control) support. Select this if you want Kodi to support HDMI CEC. config BR2_PACKAGE_KODI_LCMS2 bool "lcms2" select BR2_PACKAGE_LCMS2 help Enable color management support. config BR2_PACKAGE_KODI_LIBMICROHTTPD bool "web server" select BR2_PACKAGE_LIBMICROHTTPD help Enable webserver feature config BR2_PACKAGE_KODI_LIBNFS bool "nfs" # libnfs -> libtirpc depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBNFS help Enable NFS server support. 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 choice prompt "render system" default BR2_PACKAGE_KODI_RENDER_SYSTEM_GL config BR2_PACKAGE_KODI_RENDER_SYSTEM_GL bool "OpenGL" depends on BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_LIBGLU config BR2_PACKAGE_KODI_RENDER_SYSTEM_GLES bool "GLES" depends on BR2_PACKAGE_HAS_LIBGLES endchoice config BR2_PACKAGE_KODI_PULSEAUDIO bool "pulseaudio" depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC # Pulseaudio support in kodi needs glib support in Pulseaudio, # see FindPulseAudio.cmake. Kodi meets all dependencies of # libglib2, so there is no need to propagate them here. select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_PULSEAUDIO help Enable Pulseaudio support. config BR2_PACKAGE_KODI_LIBSHAIRPLAY bool "shairport" select BR2_PACKAGE_LIBSHAIRPLAY help Enable Shairport support. Select this if you want to stream content from an Apple device. config BR2_PACKAGE_KODI_LIBSMBCLIENT bool "samba" depends on BR2_PACKAGE_SAMBA4 help Enable Samba support 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 Enable libusb support. config BR2_PACKAGE_KODI_LIBVDPAU bool "vdpau" depends on BR2_PACKAGE_KODI_PLATFORM_X11 && \ BR2_PACKAGE_KODI_RENDER_SYSTEM_GL select BR2_PACKAGE_LIBVDPAU help Enable libvdpau support. comment "libvdpau support needs platform 'X11/OpenGL'" depends on !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11 || \ !BR2_PACKAGE_KODI_RENDER_SYSTEM_GL config BR2_PACKAGE_KODI_UPNP bool "upnp" help Enable UPnP support config BR2_PACKAGE_KODI_OPTICALDRIVE bool "optical drives" help Add support for optical drives, to read e.g. DVDs... menu "Audio decoder addons" source "package/kodi-audiodecoder-modplug/Config.in" source "package/kodi-audiodecoder-nosefart/Config.in" source "package/kodi-audiodecoder-sidplay/Config.in" source "package/kodi-audiodecoder-snesapu/Config.in" source "package/kodi-audiodecoder-stsound/Config.in" source "package/kodi-audiodecoder-timidity/Config.in" source "package/kodi-audiodecoder-vgmstream/Config.in" endmenu menu "Audio encoder addons" source "package/kodi-audioencoder-flac/Config.in" source "package/kodi-audioencoder-lame/Config.in" source "package/kodi-audioencoder-vorbis/Config.in" source "package/kodi-audioencoder-wav/Config.in" endmenu menu "Peripheral addons" source "package/kodi-peripheral-joystick/Config.in" source "package/kodi-peripheral-xarcade/Config.in" endmenu menu "Inputstream addons" source "package/kodi-inputstream-adaptive/Config.in" source "package/kodi-inputstream-ffmpegdirect/Config.in" source "package/kodi-inputstream-rtmp/Config.in" endmenu menu "PVR addons" source "package/kodi-pvr-argustv/Config.in" 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" source "package/kodi-pvr-mythtv/Config.in" source "package/kodi-pvr-nextpvr/Config.in" source "package/kodi-pvr-njoy/Config.in" source "package/kodi-pvr-octonet/Config.in" source "package/kodi-pvr-pctv/Config.in" source "package/kodi-pvr-stalker/Config.in" source "package/kodi-pvr-vbox/Config.in" source "package/kodi-pvr-vdr-vnsi/Config.in" source "package/kodi-pvr-vuplus/Config.in" source "package/kodi-pvr-wmc/Config.in" source "package/kodi-pvr-zattoo/Config.in" 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-greynetic/Config.in" source "package/kodi-screensaver-matrixtrails/Config.in" source "package/kodi-screensaver-pingpong/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 "Skins" source "package/kodi-skin-confluence/Config.in" endmenu menu "Virtual file systems" source "package/kodi-vfs-libarchive/Config.in" source "package/kodi-vfs-rar/Config.in" source "package/kodi-vfs-sftp/Config.in" endmenu menu "Visualisations" source "package/kodi-visualisation-fishbmc/Config.in" source "package/kodi-visualisation-goom/Config.in" source "package/kodi-visualisation-matrix/Config.in" source "package/kodi-visualisation-shadertoy/Config.in" source "package/kodi-visualisation-spectrum/Config.in" source "package/kodi-visualisation-starburst/Config.in" source "package/kodi-visualisation-waveform/Config.in" endmenu endif # BR2_PACKAGE_KODI ================================================ FILE: package/kodi/S50kodi ================================================ #!/bin/sh # # Starts Kodi # BIN=/usr/bin/br-kodi KODI=/usr/lib/kodi/kodi.bin KODI_ARGS="--standalone -fs -n" PIDFILE=/var/run/kodi.pid start() { printf "Starting Kodi: " start-stop-daemon -S -q -b -m -p $PIDFILE --exec $BIN -- $KODI $KODI_ARGS [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping Kodi: " 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 ================================================ FILE: package/kodi/br-kodi ================================================ #!/bin/sh # We're called with the real Kodi executable as # first argument, followed by any Kodi extra args KODI="${1}" shift # In case someone asked we terminate, just kill # the Kodi process trap_kill() { LOOP=0 killall "${KODI##*/}" } trap trap_kill INT QUIT TERM LOOP=1 while [ ${LOOP} -eq 1 ]; do # Hack: BusyBox ash does not catch signals while a non-builtin # is running, and only catches the signal when the non-builtin # command ends. So, we just background the Kodi binary, and wait # for it. But BusyBox' ash's wait builtin does not return the # exit code even if there was only one job (which is correct # for POSIX). So we explicitly wait for the Kodi job "${KODI}" "${@}" & wait %1 ret=$? case "${ret}" in 0) ;; 64) poweroff; LOOP=0;; 66) reboot; LOOP=0;; *) # Crash sleep 1 ;; esac done exit ${ret} ================================================ FILE: package/kodi/kodi.hash ================================================ # Locally computed sha256 440f47e475dd8a48e0a6d41349e83b74890f3fbe8275d3e401d3c50f5b9ea09b kodi-19.3-Matrix.tar.gz sha256 38816f8373e243bc5950449b4f3b18938c4e1c59348e3411e23f31db4072e40d kodi-libdvdcss-1.4.2-Leia-Beta-5.tar.gz sha256 071e414e61b795f2ff9015b21a85fc009dde967f27780d23092643916538a57a kodi-libdvdnav-6.0.0-Leia-Alpha-3.tar.gz sha256 a30b6aa0aad0f2c505bc77948af2d5531a80b6e68112addb4c123fca24d5d3bf kodi-libdvdread-6.0.0-Leia-Alpha-3.tar.gz sha256 9d2396ef3e091d3b82bc84143e070700412984e8589513570f54e0675d1e8851 LICENSE.md ================================================ FILE: package/kodi/kodi.mk ================================================ ################################################################################ # # kodi # ################################################################################ # When updating the version, please also update kodi-jsonschemabuilder # and kodi-texturepacker KODI_VERSION_MAJOR = 19.3 KODI_VERSION_NAME = Matrix KODI_VERSION = $(KODI_VERSION_MAJOR)-$(KODI_VERSION_NAME) KODI_SITE = $(call github,xbmc,xbmc,$(KODI_VERSION)) KODI_LICENSE = GPL-2.0 KODI_LICENSE_FILES = LICENSE.md KODI_CPE_ID_VENDOR = kodi KODI_CPE_ID_VERSION = $(KODI_VERSION_MAJOR) # needed for binary addons KODI_INSTALL_STAGING = YES # kodi recommends building out-of-source KODI_SUPPORTS_IN_SOURCE_BUILD = NO KODI_DEPENDENCIES = \ ffmpeg \ flatbuffers \ fmt \ fontconfig \ freetype \ fstrcmp \ host-flatbuffers \ host-gawk \ host-gettext \ host-gperf \ host-kodi-jsonschemabuilder \ host-kodi-texturepacker \ host-nasm \ host-swig \ host-xmlstarlet \ libass \ libcdio \ libcrossguid \ libcurl \ libdrm \ libegl \ libfribidi \ libplist \ lzo \ openssl \ pcre \ python3 \ rapidjson \ spdlog \ sqlite \ taglib \ tinyxml \ zlib # taken from tools/depends/target/*/*-VERSION KODI_LIBDVDCSS_VERSION = 1.4.2-Leia-Beta-5 KODI_LIBDVDNAV_VERSION = 6.0.0-Leia-Alpha-3 KODI_LIBDVDREAD_VERSION = 6.0.0-Leia-Alpha-3 KODI_EXTRA_DOWNLOADS += \ $(call github,xbmc,libdvdcss,$(KODI_LIBDVDCSS_VERSION))/kodi-libdvdcss-$(KODI_LIBDVDCSS_VERSION).tar.gz \ $(call github,xbmc,libdvdnav,$(KODI_LIBDVDNAV_VERSION))/kodi-libdvdnav-$(KODI_LIBDVDNAV_VERSION).tar.gz \ $(call github,xbmc,libdvdread,$(KODI_LIBDVDREAD_VERSION))/kodi-libdvdread-$(KODI_LIBDVDREAD_VERSION).tar.gz KODI_CONF_OPTS += \ -DCMAKE_C_FLAGS="$(TARGET_CFLAGS) $(KODI_C_FLAGS)" \ -DENABLE_APP_AUTONAME=OFF \ -DENABLE_CCACHE=OFF \ -DENABLE_DVDCSS=ON \ -DENABLE_INTERNAL_CROSSGUID=OFF \ -DWITH_FFMPEG=$(STAGING_DIR)/usr \ -DENABLE_INTERNAL_FLATBUFFERS=OFF \ -DFLATBUFFERS_FLATC_EXECUTABLE=$(HOST_DIR)/bin/flatc \ -DKODI_DEPENDSBUILD=OFF \ -DENABLE_LDGOLD=OFF \ -DNATIVEPREFIX=$(HOST_DIR) \ -DDEPENDS_PATH=$(STAGING_DIR)/usr \ -DENABLE_TESTING=OFF \ -DWITH_JSONSCHEMABUILDER=$(HOST_DIR)/bin/JsonSchemaBuilder \ -DWITH_TEXTUREPACKER=$(HOST_DIR)/bin/TexturePacker \ -DLIBDVDCSS_URL=$(KODI_DL_DIR)/kodi-libdvdcss-$(KODI_LIBDVDCSS_VERSION).tar.gz \ -DLIBDVDNAV_URL=$(KODI_DL_DIR)/kodi-libdvdnav-$(KODI_LIBDVDNAV_VERSION).tar.gz \ -DLIBDVDREAD_URL=$(KODI_DL_DIR)/kodi-libdvdread-$(KODI_LIBDVDREAD_VERSION).tar.gz ifeq ($(BR2_PACKAGE_KODI_RENDER_SYSTEM_GL),y) KODI_CONF_OPTS += -DAPP_RENDER_SYSTEM=gl KODI_DEPENDENCIES += libgl libglu else ifeq ($(BR2_PACKAGE_KODI_RENDER_SYSTEM_GLES),y) KODI_CONF_OPTS += -DAPP_RENDER_SYSTEM=gles KODI_DEPENDENCIES += libgles endif ifeq ($(BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM),y) KODI_CORE_PLATFORM_NAME += gbm KODI_DEPENDENCIES += libinput libxkbcommon mesa3d endif ifeq ($(BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND),y) KODI_CONF_OPTS += \ -DPC_WAYLANDPP_SCANNER=$(HOST_DIR)/bin/wayland-scanner \ -DPC_WAYLANDPP_SCANNER_FOUND=ON KODI_CORE_PLATFORM_NAME += wayland KODI_DEPENDENCIES += libxkbcommon waylandpp endif ifeq ($(BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11),y) KODI_CORE_PLATFORM_NAME += x11 KODI_DEPENDENCIES += \ xlib_libX11 \ xlib_libXext \ xlib_libXrandr endif KODI_CONF_OPTS += -DCORE_PLATFORM_NAME="$(KODI_CORE_PLATFORM_NAME)" ifeq ($(BR2_ENABLE_LOCALE),) KODI_DEPENDENCIES += libiconv endif ifeq ($(BR2_arceb)$(BR2_arcle),y) KODI_CONF_OPTS += -DWITH_ARCH=arc -DWITH_CPU=arc else ifeq ($(BR2_armeb),y) KODI_CONF_OPTS += -DWITH_ARCH=arm -DWITH_CPU=arm else ifeq ($(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y) KODI_CONF_OPTS += \ -DWITH_ARCH=mips$(if $(BR2_ARCH_IS_64),64) \ -DWITH_CPU=mips$(if $(BR2_ARCH_IS_64),64) else ifeq ($(BR2_powerpc)$(BR2_powerpc64le),y) KODI_CONF_OPTS += \ -DWITH_ARCH=powerpc$(if $(BR2_ARCH_IS_64),64) \ -DWITH_CPU=powerpc$(if $(BR2_ARCH_IS_64),64) else ifeq ($(BR2_powerpc64)$(BR2_sparc64)$(BR2_sh4)$(BR2_xtensa),y) KODI_CONF_OPTS += -DWITH_ARCH=$(BR2_ARCH) -DWITH_CPU=$(BR2_ARCH) else # Kodi auto-detects ARCH, tested: arm, aarch64, i386, x86_64 # see project/cmake/scripts/linux/ArchSetup.cmake KODI_CONF_OPTS += -DWITH_CPU=$(BR2_ARCH) endif ifeq ($(BR2_X86_CPU_HAS_SSE),y) KODI_CONF_OPTS += -D_SSE_OK=ON -D_SSE_TRUE=ON else KODI_CONF_OPTS += -D_SSE_OK=OFF -D_SSE_TRUE=OFF endif ifeq ($(BR2_X86_CPU_HAS_SSE2),y) KODI_CONF_OPTS += -D_SSE2_OK=ON -D_SSE2_TRUE=ON else KODI_CONF_OPTS += -D_SSE2_OK=OFF -D_SSE2_TRUE=OFF endif ifeq ($(BR2_X86_CPU_HAS_SSE3),y) KODI_CONF_OPTS += -D_SSE3_OK=ON -D_SSE3_TRUE=ON else KODI_CONF_OPTS += -D_SSE3_OK=OFF -D_SSE3_TRUE=OFF endif ifeq ($(BR2_X86_CPU_HAS_SSSE3),y) KODI_CONF_OPTS += -D_SSSE3_OK=ON -D_SSSE3_TRUE=ON else KODI_CONF_OPTS += -D_SSSE3_OK=OFF -D_SSSE3_TRUE=OFF endif ifeq ($(BR2_X86_CPU_HAS_SSE4),y) KODI_CONF_OPTS += -D_SSE41_OK=ON -D_SSE41_TRUE=ON else KODI_CONF_OPTS += -D_SSE41_OK=OFF -D_SSE41_TRUE=OFF endif ifeq ($(BR2_X86_CPU_HAS_SSE42),y) KODI_CONF_OPTS += -D_SSE42_OK=ON -D_SSE42_TRUE=ON else KODI_CONF_OPTS += -D_SSE42_OK=OFF -D_SSE42_TRUE=OFF endif ifeq ($(BR2_X86_CPU_HAS_AVX),y) KODI_CONF_OPTS += -D_AVX_OK=ON -D_AVX_TRUE=ON else KODI_CONF_OPTS += -D_AVX_OK=OFF -D_AVX_TRUE=OFF endif ifeq ($(BR2_X86_CPU_HAS_AVX2),y) KODI_CONF_OPTS += -D_AVX2_OK=ON -D_AVX2_TRUE=ON else KODI_CONF_OPTS += -D_AVX2_OK=OFF -D_AVX2_TRUE=OFF endif # mips: uses __atomic_load_8 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) KODI_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_5),) KODI_C_FLAGS += -std=gnu99 endif ifeq ($(BR2_PACKAGE_KODI_MYSQL),y) KODI_CONF_OPTS += -DENABLE_MYSQLCLIENT=ON KODI_DEPENDENCIES += mysql else KODI_CONF_OPTS += -DENABLE_MYSQLCLIENT=OFF endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) KODI_CONF_OPTS += -DENABLE_UDEV=ON KODI_DEPENDENCIES += udev else KODI_CONF_OPTS += -DENABLE_UDEV=OFF ifeq ($(BR2_PACKAGE_KODI_LIBUSB),y) KODI_CONF_OPTS += -DENABLE_LIBUSB=ON KODI_DEPENDENCIES += libusb-compat else KODI_CONF_OPTS += -DENABLE_LIBUSB=OFF endif endif ifeq ($(BR2_PACKAGE_LIBCAP),y) KODI_CONF_OPTS += -DENABLE_CAP=ON KODI_DEPENDENCIES += libcap else KODI_CONF_OPTS += -DENABLE_CAP=OFF endif ifeq ($(BR2_PACKAGE_LIBXML2)$(BR2_PACKAGE_LIBXSLT),yy) KODI_CONF_OPTS += -DENABLE_XSLT=ON KODI_DEPENDENCIES += libxml2 libxslt else KODI_CONF_OPTS += -DENABLE_XSLT=OFF endif ifeq ($(BR2_PACKAGE_KODI_BLUEZ),y) KODI_CONF_OPTS += -DENABLE_BLUETOOTH=ON KODI_DEPENDENCIES += bluez5_utils else KODI_CONF_OPTS += -DENABLE_BLUETOOTH=OFF endif ifeq ($(BR2_PACKAGE_KODI_DBUS),y) KODI_DEPENDENCIES += dbus KODI_CONF_OPTS += -DENABLE_DBUS=ON else KODI_CONF_OPTS += -DENABLE_DBUS=OFF endif ifeq ($(BR2_PACKAGE_KODI_EVENTCLIENTS),y) KODI_CONF_OPTS += -DENABLE_EVENTCLIENTS=ON else KODI_CONF_OPTS += -DENABLE_EVENTCLIENTS=OFF endif ifeq ($(BR2_PACKAGE_KODI_ALSA_LIB),y) KODI_CONF_OPTS += -DENABLE_ALSA=ON KODI_DEPENDENCIES += alsa-lib else KODI_CONF_OPTS += -DENABLE_ALSA=OFF endif ifeq ($(BR2_PACKAGE_KODI_LIBMICROHTTPD),y) KODI_CONF_OPTS += -DENABLE_MICROHTTPD=ON KODI_DEPENDENCIES += libmicrohttpd else KODI_CONF_OPTS += -DENABLE_MICROHTTPD=OFF endif ifeq ($(BR2_PACKAGE_KODI_LIBSMBCLIENT),y) KODI_DEPENDENCIES += samba4 KODI_CONF_OPTS += -DENABLE_SMBCLIENT=ON else KODI_CONF_OPTS += -DENABLE_SMBCLIENT=OFF endif ifeq ($(BR2_PACKAGE_KODI_LIBNFS),y) KODI_DEPENDENCIES += libnfs KODI_CONF_OPTS += -DENABLE_NFS=ON else KODI_CONF_OPTS += -DENABLE_NFS=OFF endif ifeq ($(BR2_PACKAGE_KODI_LIBBLURAY),y) KODI_DEPENDENCIES += libbluray KODI_CONF_OPTS += -DENABLE_BLURAY=ON else KODI_CONF_OPTS += -DENABLE_BLURAY=OFF endif ifeq ($(BR2_PACKAGE_KODI_LIBSHAIRPLAY),y) KODI_DEPENDENCIES += libshairplay KODI_CONF_OPTS += -DENABLE_AIRTUNES=ON else KODI_CONF_OPTS += -DENABLE_AIRTUNES=OFF endif ifeq ($(BR2_PACKAGE_KODI_AVAHI),y) KODI_DEPENDENCIES += avahi KODI_CONF_OPTS += -DENABLE_AVAHI=ON else KODI_CONF_OPTS += -DENABLE_AVAHI=OFF endif ifeq ($(BR2_PACKAGE_KODI_LIBCEC),y) KODI_DEPENDENCIES += libcec KODI_CONF_OPTS += -DENABLE_CEC=ON else KODI_CONF_OPTS += -DENABLE_CEC=OFF endif ifeq ($(BR2_PACKAGE_KODI_LCMS2),y) KODI_DEPENDENCIES += lcms2 KODI_CONF_OPTS += -DENABLE_LCMS2=ON else KODI_CONF_OPTS += -DENABLE_LCMS2=OFF endif ifeq ($(BR2_PACKAGE_LIRC_TOOLS),y) KODI_DEPENDENCIES += lirc-tools endif ifeq ($(BR2_PACKAGE_LIBVA),y) KODI_DEPENDENCIES += libva KODI_CONF_OPTS += -DENABLE_VAAPI=ON else KODI_CONF_OPTS += -DENABLE_VAAPI=OFF endif ifeq ($(BR2_PACKAGE_KODI_LIBVDPAU),y) KODI_DEPENDENCIES += libvdpau KODI_CONF_OPTS += -DENABLE_VDPAU=ON else KODI_CONF_OPTS += -DENABLE_VDPAU=OFF endif ifeq ($(BR2_PACKAGE_KODI_UPNP),y) KODI_CONF_OPTS += -DENABLE_UPNP=ON else KODI_CONF_OPTS += -DENABLE_UPNP=OFF endif ifeq ($(BR2_PACKAGE_KODI_OPTICALDRIVE),y) KODI_CONF_OPTS += -DENABLE_OPTICAL=ON else KODI_CONF_OPTS += -DENABLE_OPTICAL=OFF endif ifeq ($(BR2_PACKAGE_KODI_PULSEAUDIO),y) KODI_CONF_OPTS += -DENABLE_PULSEAUDIO=ON KODI_DEPENDENCIES += pulseaudio else KODI_CONF_OPTS += -DENABLE_PULSEAUDIO=OFF endif ifeq ($(BR2_PACKAGE_LIBUDFREAD),y) KODI_DEPENDENCIES += libudfread else KODI_CONF_OPTS += -DENABLE_INTERNAL_UDFREAD=OFF endif # Remove versioncheck addon, updating Kodi is done by building a new # buildroot image. KODI_ADDON_MANIFEST = $(TARGET_DIR)/usr/share/kodi/system/addon-manifest.xml define KODI_CLEAN_UNUSED_ADDONS rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/service.xbmc.versioncheck $(HOST_DIR)/bin/xml ed -L \ -d "/addons/addon[text()='service.xbmc.versioncheck']" \ $(KODI_ADDON_MANIFEST) endef KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_UNUSED_ADDONS define KODI_INSTALL_BR_WRAPPER $(INSTALL) -D -m 0755 package/kodi/br-kodi \ $(TARGET_DIR)/usr/bin/br-kodi endef KODI_POST_INSTALL_TARGET_HOOKS += KODI_INSTALL_BR_WRAPPER # When run from a startup script, Kodi has no $HOME where to store its # configuration, so ends up storing it in /.kodi (yes, at the root of # the rootfs). This is a problem for read-only filesystems. But we can't # easily change that, so create /.kodi as a symlink where we want the # config to eventually be. Add synlinks for the legacy XBMC name as well define KODI_INSTALL_CONFIG_DIR $(INSTALL) -d -m 0755 $(TARGET_DIR)/var/kodi ln -sf /var/kodi $(TARGET_DIR)/.kodi ln -sf /var/kodi $(TARGET_DIR)/var/xbmc ln -sf /var/kodi $(TARGET_DIR)/.xbmc endef KODI_POST_INSTALL_TARGET_HOOKS += KODI_INSTALL_CONFIG_DIR define KODI_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/kodi/S50kodi \ $(TARGET_DIR)/etc/init.d/S50kodi endef define KODI_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/kodi/kodi.service \ $(TARGET_DIR)/usr/lib/systemd/system/kodi.service endef $(eval $(cmake-package)) ================================================ FILE: package/kodi/kodi.service ================================================ [Unit] Description = Kodi Entertainment Center After = network.target [Service] Type = simple ExecStart = /usr/lib/kodi/kodi.bin --standalone -fs -n Restart = on-failure [Install] WantedBy = multi-user.target ================================================ FILE: package/kodi-audiodecoder-modplug/Config.in ================================================ config BR2_PACKAGE_KODI_AUDIODECODER_MODPLUG bool "kodi-audiodecoder-modplug" select BR2_PACKAGE_LIBMODPLUG help Modplug decoder addon for Kodi https://github.com/xbmc/audiodecoder.modplug ================================================ FILE: package/kodi-audiodecoder-modplug/kodi-audiodecoder-modplug.hash ================================================ # Locally computed sha256 ff3cb9816a30530d522f6a9a23eb49eb5301fb7880f402de6fc1dea31d3469f6 kodi-audiodecoder-modplug-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-audiodecoder-modplug/kodi-audiodecoder-modplug.mk ================================================ ################################################################################ # # kodi-audiodecoder-modplug # ################################################################################ KODI_AUDIODECODER_MODPLUG_VERSION = 19.0.0-Matrix KODI_AUDIODECODER_MODPLUG_SITE = $(call github,xbmc,audiodecoder.modplug,$(KODI_AUDIODECODER_MODPLUG_VERSION)) KODI_AUDIODECODER_MODPLUG_LICENSE = GPL-2.0+ KODI_AUDIODECODER_MODPLUG_LICENSE_FILES = LICENSE.md KODI_AUDIODECODER_MODPLUG_DEPENDENCIES = kodi libmodplug $(eval $(cmake-package)) ================================================ FILE: package/kodi-audiodecoder-nosefart/Config.in ================================================ config BR2_PACKAGE_KODI_AUDIODECODER_NOSEFART bool "kodi-audiodecoder-nosefart" help Nosefart decoder addon for Kodi https://github.com/xbmc/audiodecoder.nosefart ================================================ FILE: package/kodi-audiodecoder-nosefart/kodi-audiodecoder-nosefart.hash ================================================ # Locally computed sha256 4975c65b5acd002cf772707170e54bcbcc48d7898dd2e6b4239bab56636b44e7 kodi-audiodecoder-nosefart-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-audiodecoder-nosefart/kodi-audiodecoder-nosefart.mk ================================================ ################################################################################ # # kodi-audiodecoder-nosefart # ################################################################################ KODI_AUDIODECODER_NOSEFART_VERSION = 19.0.0-Matrix KODI_AUDIODECODER_NOSEFART_SITE = $(call github,xbmc,audiodecoder.nosefart,$(KODI_AUDIODECODER_NOSEFART_VERSION)) KODI_AUDIODECODER_NOSEFART_LICENSE = GPL-2.0+ KODI_AUDIODECODER_NOSEFART_LICENSE_FILES = LICENSE.md KODI_AUDIODECODER_NOSEFART_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-audiodecoder-sidplay/Config.in ================================================ config BR2_PACKAGE_KODI_AUDIODECODER_SIDPLAY bool "kodi-audiodecoder-sidplay" select BR2_PACKAGE_LIBSIDPLAY2 help Sidplay decoder addon for Kodi https://github.com/xbmc/audiodecoder.sidplay ================================================ FILE: package/kodi-audiodecoder-sidplay/kodi-audiodecoder-sidplay.hash ================================================ # Locally computed sha256 0da9327e99b18a4ab42f71709ec07ea4e58d9c5f677192c7fa6f5ebb4db5fd08 kodi-audiodecoder-sidplay-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-audiodecoder-sidplay/kodi-audiodecoder-sidplay.mk ================================================ ################################################################################ # # kodi-audiodecoder-sidplay # ################################################################################ KODI_AUDIODECODER_SIDPLAY_VERSION = 19.0.0-Matrix KODI_AUDIODECODER_SIDPLAY_SITE = $(call github,xbmc,audiodecoder.sidplay,$(KODI_AUDIODECODER_SIDPLAY_VERSION)) KODI_AUDIODECODER_SIDPLAY_LICENSE = GPL-2.0+ KODI_AUDIODECODER_SIDPLAY_LICENSE_FILES = LICENSE.md KODI_AUDIODECODER_SIDPLAY_DEPENDENCIES = host-pkgconf kodi libsidplay2 $(eval $(cmake-package)) ================================================ FILE: package/kodi-audiodecoder-snesapu/Config.in ================================================ config BR2_PACKAGE_KODI_AUDIODECODER_SNESAPU bool "kodi-audiodecoder-snesapu" help SPC decoder addon for Kodi https://github.com/xbmc/audiodecoder.snesapu ================================================ FILE: package/kodi-audiodecoder-snesapu/kodi-audiodecoder-snesapu.hash ================================================ # Locally computed sha256 8b4c75ccfbcf829922e9dbf10d9ec75c4312ac6ad1837d3cf39833395fb036be kodi-audiodecoder-snesapu-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-audiodecoder-snesapu/kodi-audiodecoder-snesapu.mk ================================================ ################################################################################ # # kodi-audiodecoder-snesapu # ################################################################################ KODI_AUDIODECODER_SNESAPU_VERSION = 19.0.0-Matrix KODI_AUDIODECODER_SNESAPU_SITE = $(call github,xbmc,audiodecoder.snesapu,$(KODI_AUDIODECODER_SNESAPU_VERSION)) KODI_AUDIODECODER_SNESAPU_LICENSE = GPL-2.0+ KODI_AUDIODECODER_SNESAPU_LICENSE_FILES = LICENSE.md KODI_AUDIODECODER_SNESAPU_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-audiodecoder-stsound/Config.in ================================================ config BR2_PACKAGE_KODI_AUDIODECODER_STSOUND bool "kodi-audiodecoder-stsound" help YM decoder addon for Kodi https://github.com/xbmc/audiodecoder.stsound ================================================ FILE: package/kodi-audiodecoder-stsound/kodi-audiodecoder-stsound.hash ================================================ # Locally computed sha256 dc168de296dafae86a83e36f687f4dd4fd41c3d3134afbb05415f860f750e779 kodi-audiodecoder-stsound-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-audiodecoder-stsound/kodi-audiodecoder-stsound.mk ================================================ ################################################################################ # # kodi-audiodecoder-stsound # ################################################################################ KODI_AUDIODECODER_STSOUND_VERSION = 19.0.0-Matrix KODI_AUDIODECODER_STSOUND_SITE = $(call github,xbmc,audiodecoder.stsound,$(KODI_AUDIODECODER_STSOUND_VERSION)) KODI_AUDIODECODER_STSOUND_LICENSE = GPL-2.0+ KODI_AUDIODECODER_STSOUND_LICENSE_FILES = LICENSE.md KODI_AUDIODECODER_STSOUND_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-audiodecoder-timidity/Config.in ================================================ config BR2_PACKAGE_KODI_AUDIODECODER_TIMIDITY bool "kodi-audiodecoder-timidity" help Timidity decoder addon for Kodi https://github.com/xbmc/audiodecoder.timidity ================================================ FILE: package/kodi-audiodecoder-timidity/kodi-audiodecoder-timidity.hash ================================================ # Locally computed sha256 c2a0701978e71102859c7cb308422fe26fb87741d0eab9656650eaea156c3d56 kodi-audiodecoder-timidity-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-audiodecoder-timidity/kodi-audiodecoder-timidity.mk ================================================ ################################################################################ # # kodi-audiodecoder-timidity # ################################################################################ KODI_AUDIODECODER_TIMIDITY_VERSION = 19.0.0-Matrix KODI_AUDIODECODER_TIMIDITY_SITE = $(call github,xbmc,audiodecoder.timidity,$(KODI_AUDIODECODER_TIMIDITY_VERSION)) KODI_AUDIODECODER_TIMIDITY_LICENSE = GPL-2.0+ KODI_AUDIODECODER_TIMIDITY_LICENSE_FILES = LICENSE.md KODI_AUDIODECODER_TIMIDITY_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-audiodecoder-vgmstream/Config.in ================================================ config BR2_PACKAGE_KODI_AUDIODECODER_VGMSTREAM bool "kodi-audiodecoder-vgmstream" help VGM decoder addon for Kodi https://github.com/xbmc/audiodecoder.vgmstream ================================================ FILE: package/kodi-audiodecoder-vgmstream/kodi-audiodecoder-vgmstream.hash ================================================ # Locally computed sha256 0e349225f35ce4bae3026c669b13c696cec2399ec34c0f7726527d19503e14d4 kodi-audiodecoder-vgmstream-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-audiodecoder-vgmstream/kodi-audiodecoder-vgmstream.mk ================================================ ################################################################################ # # kodi-audiodecoder-vgmstream # ################################################################################ KODI_AUDIODECODER_VGMSTREAM_VERSION = 19.0.0-Matrix KODI_AUDIODECODER_VGMSTREAM_SITE = $(call github,xbmc,audiodecoder.vgmstream,$(KODI_AUDIODECODER_VGMSTREAM_VERSION)) KODI_AUDIODECODER_VGMSTREAM_LICENSE = GPL-2.0+ KODI_AUDIODECODER_VGMSTREAM_LICENSE_FILES = LICENSE.md KODI_AUDIODECODER_VGMSTREAM_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-audioencoder-flac/Config.in ================================================ config BR2_PACKAGE_KODI_AUDIOENCODER_FLAC bool "kodi-audioencoder-flac" select BR2_PACKAGE_FLAC select BR2_PACKAGE_KODI_OPTICALDRIVE select BR2_PACKAGE_LIBOGG help An audioencoder addon for Kodi https://github.com/xbmc/audioencoder.flac ================================================ FILE: package/kodi-audioencoder-flac/kodi-audioencoder-flac.hash ================================================ # Locally computed sha256 9ee5ace606749d7d89b0fadf73432f900e4b51f83531f952b193a235e06d1e73 kodi-audioencoder-flac-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-audioencoder-flac/kodi-audioencoder-flac.mk ================================================ ################################################################################ # # kodi-audioencoder-flac # ################################################################################ KODI_AUDIOENCODER_FLAC_VERSION = 19.0.0-Matrix KODI_AUDIOENCODER_FLAC_SITE = $(call github,xbmc,audioencoder.flac,$(KODI_AUDIOENCODER_FLAC_VERSION)) KODI_AUDIOENCODER_FLAC_LICENSE = GPL-2.0+ KODI_AUDIOENCODER_FLAC_LICENSE_FILES = LICENSE.md KODI_AUDIOENCODER_FLAC_DEPENDENCIES = flac kodi libogg host-pkgconf $(eval $(cmake-package)) ================================================ FILE: package/kodi-audioencoder-lame/Config.in ================================================ config BR2_PACKAGE_KODI_AUDIOENCODER_LAME bool "kodi-audioencoder-lame" select BR2_PACKAGE_KODI_OPTICALDRIVE select BR2_PACKAGE_LAME help An audioencoder addon for Kodi https://github.com/xbmc/audioencoder.lame ================================================ FILE: package/kodi-audioencoder-lame/kodi-audioencoder-lame.hash ================================================ # Locally computed sha256 e2bdf17e5739cc025627a92421b967e5dda3cb35d2e4bb948a64ac97bf0e734e kodi-audioencoder-lame-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-audioencoder-lame/kodi-audioencoder-lame.mk ================================================ ################################################################################ # # kodi-audioencoder-lame # ################################################################################ KODI_AUDIOENCODER_LAME_VERSION = 19.0.0-Matrix KODI_AUDIOENCODER_LAME_SITE = $(call github,xbmc,audioencoder.lame,$(KODI_AUDIOENCODER_LAME_VERSION)) KODI_AUDIOENCODER_LAME_LICENSE = GPL-2.0+ KODI_AUDIOENCODER_LAME_LICENSE_FILES = LICENSE.md KODI_AUDIOENCODER_LAME_DEPENDENCIES = kodi lame KODI_AUDIOENCODER_LAME_CONF_OPTS += \ -DLAME_INCLUDE_DIRS=$(STAGING_DIR)/usr/include $(eval $(cmake-package)) ================================================ FILE: package/kodi-audioencoder-vorbis/Config.in ================================================ config BR2_PACKAGE_KODI_AUDIOENCODER_VORBIS bool "kodi-audioencoder-vorbis" select BR2_PACKAGE_KODI_OPTICALDRIVE select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_LIBVORBIS help An audioencoder addon for Kodi https://github.com/xbmc/audioencoder.vorbis ================================================ FILE: package/kodi-audioencoder-vorbis/kodi-audioencoder-vorbis.hash ================================================ # Locally computed sha256 e7c1f05a921cb2da21a49a1c8d4392b4e9337548481beee9f1f70c07806b1bd6 kodi-audioencoder-vorbis-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-audioencoder-vorbis/kodi-audioencoder-vorbis.mk ================================================ ################################################################################ # # kodi-audioencoder-vorbis # ################################################################################ KODI_AUDIOENCODER_VORBIS_VERSION = 19.0.0-Matrix KODI_AUDIOENCODER_VORBIS_SITE = $(call github,xbmc,audioencoder.vorbis,$(KODI_AUDIOENCODER_VORBIS_VERSION)) KODI_AUDIOENCODER_VORBIS_LICENSE = GPL-2.0+ KODI_AUDIOENCODER_VORBIS_LICENSE_FILES = LICENSE.md KODI_AUDIOENCODER_VORBIS_DEPENDENCIES = kodi libogg libvorbis host-pkgconf $(eval $(cmake-package)) ================================================ FILE: package/kodi-audioencoder-wav/Config.in ================================================ config BR2_PACKAGE_KODI_AUDIOENCODER_WAV bool "kodi-audioencoder-wav" select BR2_PACKAGE_KODI_OPTICALDRIVE help An audioencoder addon for Kodi https://github.com/xbmc/audioencoder.wav ================================================ FILE: package/kodi-audioencoder-wav/kodi-audioencoder-wav.hash ================================================ # Locally computed sha256 a0c5799e5010e560247517c1b8c847cb08f78e73f6d6144778a73a1836b534a9 kodi-audioencoder-wav-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-audioencoder-wav/kodi-audioencoder-wav.mk ================================================ ################################################################################ # # kodi-audioencoder-wav # ################################################################################ KODI_AUDIOENCODER_WAV_VERSION = 19.0.0-Matrix KODI_AUDIOENCODER_WAV_SITE = $(call github,xbmc,audioencoder.wav,$(KODI_AUDIOENCODER_WAV_VERSION)) KODI_AUDIOENCODER_WAV_LICENSE = GPL-2.0+ KODI_AUDIOENCODER_WAV_LICENSE_FILES = LICENSE.md KODI_AUDIOENCODER_WAV_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-inputstream-adaptive/Config.in ================================================ config BR2_PACKAGE_KODI_INPUTSTREAM_ADAPTIVE bool "kodi-inputstream-adaptive" # wvdecrypter/cdm/build/build_config.h depends on BR2_aarch64 || BR2_arm || BR2_i386 || BR2_mipsel \ || BR2_mips64el || BR2_x86_64 select BR2_PACKAGE_EXPAT help Kodi inputstream addon for several manifest types https://github.com/xbmc/inputstream.adaptive ================================================ FILE: package/kodi-inputstream-adaptive/kodi-inputstream-adaptive.hash ================================================ # Locally computed sha256 10d0e79a301094cdaa35b3e92c4da6b693fc0b5661ea3b459329245fcdfa2f65 kodi-inputstream-adaptive-19.0.0-Matrix.tar.gz sha256 89931c1fb1f3716694175763cf3221cfcd63d6935031cf6b4512d17ffe5d9860 LICENSE.GPL ================================================ FILE: package/kodi-inputstream-adaptive/kodi-inputstream-adaptive.mk ================================================ ################################################################################ # # kodi-inputstream-adaptive # ################################################################################ KODI_INPUTSTREAM_ADAPTIVE_VERSION = 19.0.0-Matrix KODI_INPUTSTREAM_ADAPTIVE_SITE = $(call github,xbmc,inputstream.adaptive,$(KODI_INPUTSTREAM_ADAPTIVE_VERSION)) KODI_INPUTSTREAM_ADAPTIVE_LICENSE = GPL-2.0+ KODI_INPUTSTREAM_ADAPTIVE_LICENSE_FILES = LICENSE.GPL KODI_INPUTSTREAM_ADAPTIVE_DEPENDENCIES = expat kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-inputstream-ffmpegdirect/Config.in ================================================ config BR2_PACKAGE_KODI_INPUTSTREAM_FFMPEGDIRECT bool "kodi-inputstream-ffmpegdirect" depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_FFMPEG select BR2_PACKAGE_FFMPEG_GPL select BR2_PACKAGE_FFMPEG_POSTPROC help This is a Kodi input stream addon for streams that can be opened by FFmpeg's libavformat, such as plain TS, HLS and DASH streams. https://github.com/xbmc/inputstream.ffmpegdirect ================================================ FILE: package/kodi-inputstream-ffmpegdirect/kodi-inputstream-ffmpegdirect.hash ================================================ # Locally computed sha256 47b920094d1ffaa8a6204ffb223cff94078a764c035a97384ae969e87a3f5e6e kodi-inputstream-ffmpegdirect-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-inputstream-ffmpegdirect/kodi-inputstream-ffmpegdirect.mk ================================================ ################################################################################ # # kodi-inputstream-ffmpegdirect # ################################################################################ KODI_INPUTSTREAM_FFMPEGDIRECT_VERSION = 19.0.0-Matrix KODI_INPUTSTREAM_FFMPEGDIRECT_SITE = $(call github,xbmc,inputstream.ffmpegdirect,$(KODI_INPUTSTREAM_FFMPEGDIRECT_VERSION)) KODI_INPUTSTREAM_FFMPEGDIRECT_LICENSE = GPL-2.0+ KODI_INPUTSTREAM_FFMPEGDIRECT_LICENSE_FILES = LICENSE.md KODI_INPUTSTREAM_FFMPEGDIRECT_DEPENDENCIES = bzip2 ffmpeg kodi KODI_INPUTSTREAM_FFMPEGDIRECT_CONF_OPTS = \ -DFFMPEG_PATH=$(STAGING_DIR)/usr $(eval $(cmake-package)) ================================================ FILE: package/kodi-inputstream-rtmp/Config.in ================================================ config BR2_PACKAGE_KODI_INPUTSTREAM_RTMP bool "kodi-inputstream-rtmp" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_RTMPDUMP select BR2_PACKAGE_ZLIB help RTMP input stream add-on for Kodi https://github.com/xbmc/inputstream.rtmp ================================================ FILE: package/kodi-inputstream-rtmp/kodi-inputstream-rtmp.hash ================================================ # Locally computed sha256 0e97aaeae7e1aaa16d97996651dcab45aeb6937dc5bf177529c5ad8aa2014b0e kodi-inputstream-rtmp-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-inputstream-rtmp/kodi-inputstream-rtmp.mk ================================================ ################################################################################ # # kodi-inputstream-rtmp # ################################################################################ KODI_INPUTSTREAM_RTMP_VERSION = 19.0.0-Matrix KODI_INPUTSTREAM_RTMP_SITE = $(call github,xbmc,inputstream.rtmp,$(KODI_INPUTSTREAM_RTMP_VERSION)) KODI_INPUTSTREAM_RTMP_LICENSE = GPL-2.0+ KODI_INPUTSTREAM_RTMP_LICENSE_FILES = LICENSE.md KODI_INPUTSTREAM_RTMP_DEPENDENCIES = kodi openssl rtmpdump zlib $(eval $(cmake-package)) ================================================ FILE: package/kodi-jsonschemabuilder/kodi-jsonschemabuilder.mk ================================================ ################################################################################ # # kodi-jsonschemabuilder # ################################################################################ # Not possible to directly refer to kodi variables, because of # first/second expansion trickery... KODI_JSONSCHEMABUILDER_VERSION = 19.3-Matrix KODI_JSONSCHEMABUILDER_SITE = $(call github,xbmc,xbmc,$(KODI_JSONSCHEMABUILDER_VERSION)) KODI_JSONSCHEMABUILDER_SOURCE = kodi-$(KODI_JSONSCHEMABUILDER_VERSION).tar.gz KODI_JSONSCHEMABUILDER_DL_SUBDIR = kodi KODI_JSONSCHEMABUILDER_LICENSE = GPL-2.0 KODI_JSONSCHEMABUILDER_LICENSE_FILES = LICENSE.md HOST_KODI_JSONSCHEMABUILDER_SUBDIR = tools/depends/native/JsonSchemaBuilder HOST_KODI_JSONSCHEMABUILDER_CONF_OPTS = \ -DCMAKE_MODULE_PATH=$(@D)/project/cmake/modules define HOST_KODI_JSONSCHEMABUILDER_INSTALL_CMDS $(INSTALL) -m 755 -D \ $(@D)/tools/depends/native/JsonSchemaBuilder/JsonSchemaBuilder \ $(HOST_DIR)/bin/JsonSchemaBuilder endef $(eval $(host-cmake-package)) ================================================ FILE: package/kodi-peripheral-joystick/Config.in ================================================ config BR2_PACKAGE_KODI_PERIPHERAL_JOYSTICK bool "kodi-peripheral-joystick" depends on BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_TINYXML help Kodi joystick support (drivers and button maps) https://github.com/xbmc/peripheral.joystick comment "kodi-peripheral-joystick needs udev /dev management" depends on !BR2_PACKAGE_HAS_UDEV ================================================ FILE: package/kodi-peripheral-joystick/kodi-peripheral-joystick.hash ================================================ # Locally computed sha256 85452cab5aa6e6dd426ca5df76c0832e1c9fa2d464973a16ad5e8c52d4533cc9 kodi-peripheral-joystick-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-peripheral-joystick/kodi-peripheral-joystick.mk ================================================ ################################################################################ # # kodi-peripheral-joystick # ################################################################################ KODI_PERIPHERAL_JOYSTICK_VERSION = 19.0.0-Matrix KODI_PERIPHERAL_JOYSTICK_SITE = $(call github,xbmc,peripheral.joystick,$(KODI_PERIPHERAL_JOYSTICK_VERSION)) KODI_PERIPHERAL_JOYSTICK_LICENSE = GPL-2.0+ KODI_PERIPHERAL_JOYSTICK_LICENSE_FILES = LICENSE.md KODI_PERIPHERAL_JOYSTICK_DEPENDENCIES = kodi tinyxml udev $(eval $(cmake-package)) ================================================ FILE: package/kodi-peripheral-xarcade/Config.in ================================================ config BR2_PACKAGE_KODI_PERIPHERAL_XARCADE bool "kodi-peripheral-xarcade" help X-Arcade Tankstick support for Kodi https://github.com/kodi-game/peripheral.xarcade ================================================ FILE: package/kodi-peripheral-xarcade/kodi-peripheral-xarcade.hash ================================================ # Locally computed sha256 b6d6161bdfd3cc4d60d3cd7f3452b1101fad48eea1816fed28865af4b985c244 kodi-peripheral-xarcade-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-peripheral-xarcade/kodi-peripheral-xarcade.mk ================================================ ################################################################################ # # kodi-peripheral-xarcade # ################################################################################ KODI_PERIPHERAL_XARCADE_VERSION = 19.0.0-Matrix KODI_PERIPHERAL_XARCADE_SITE = $(call github,kodi-game,peripheral.xarcade,$(KODI_PERIPHERAL_XARCADE_VERSION)) KODI_PERIPHERAL_XARCADE_LICENSE = GPL-2.0+ KODI_PERIPHERAL_XARCADE_LICENSE_FILES = LICENSE.md KODI_PERIPHERAL_XARCADE_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-argustv/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_ARGUSTV bool "kodi-pvr-argustv" select BR2_PACKAGE_JSONCPP help Kodi's ARGUS TV client addon https://github.com/kodi-pvr/pvr.argustv ================================================ FILE: package/kodi-pvr-argustv/kodi-pvr-argustv.hash ================================================ # Locally computed sha256 f918a526813f06ed522d8e12593556ced0282c9ff2d26a41bceba2ada68d3c6c kodi-pvr-argustv-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-argustv/kodi-pvr-argustv.mk ================================================ ################################################################################ # # kodi-pvr-argustv # ################################################################################ KODI_PVR_ARGUSTV_VERSION = 19.0.0-Matrix KODI_PVR_ARGUSTV_SITE = $(call github,kodi-pvr,pvr.argustv,$(KODI_PVR_ARGUSTV_VERSION)) KODI_PVR_ARGUSTV_LICENSE = GPL-2.0+ KODI_PVR_ARGUSTV_LICENSE_FILES = LICENSE.md KODI_PVR_ARGUSTV_DEPENDENCIES = jsoncpp kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-dvblink/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_DVBLINK bool "kodi-pvr-dvblink" select BR2_PACKAGE_TINYXML2 help Kodi's DVBLink client addon https://github.com/kodi-pvr/pvr.dvblink ================================================ FILE: package/kodi-pvr-dvblink/kodi-pvr-dvblink.hash ================================================ # Locally computed sha256 2bdd6475b9c848300c0058d4ffe284ee26b8af44df534ee45cfeeb51cc80a6ba kodi-pvr-dvblink-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-dvblink/kodi-pvr-dvblink.mk ================================================ ################################################################################ # # kodi-pvr-dvblink # ################################################################################ KODI_PVR_DVBLINK_VERSION = 19.0.0-Matrix KODI_PVR_DVBLINK_SITE = $(call github,kodi-pvr,pvr.dvblink,$(KODI_PVR_DVBLINK_VERSION)) KODI_PVR_DVBLINK_LICENSE = GPL-2.0+ KODI_PVR_DVBLINK_LICENSE_FILES = LICENSE.md KODI_PVR_DVBLINK_DEPENDENCIES = kodi tinyxml2 $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-dvbviewer/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_DVBVIEWER bool "kodi-pvr-dvbviewer" select BR2_PACKAGE_TINYXML help Kodi's DVBViewer client addon https://github.com/kodi-pvr/pvr.dvbviewer ================================================ FILE: package/kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.hash ================================================ # Locally computed sha256 5d2b2c47e8e7a80f6fd573a3bb6369eaa4d68f09c88b8bdad08b614708dfa3ca kodi-pvr-dvbviewer-19.0.1-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.mk ================================================ ################################################################################ # # kodi-pvr-dvbviewer # ################################################################################ KODI_PVR_DVBVIEWER_VERSION = 19.0.1-Matrix KODI_PVR_DVBVIEWER_SITE = $(call github,kodi-pvr,pvr.dvbviewer,$(KODI_PVR_DVBVIEWER_VERSION)) KODI_PVR_DVBVIEWER_LICENSE = GPL-2.0+ KODI_PVR_DVBVIEWER_LICENSE_FILES = LICENSE.md KODI_PVR_DVBVIEWER_DEPENDENCIES = kodi tinyxml $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-filmon/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_FILMON bool "kodi-pvr-filmon" select BR2_PACKAGE_JSONCPP help Filmon PVR client addon for Kodi https://github.com/kodi-pvr/pvr.filmon ================================================ FILE: package/kodi-pvr-filmon/kodi-pvr-filmon.hash ================================================ # Locally computed sha256 e4a28e6cd1785e8ea7b99f4ea0068470c998e8b8d5a55d095dabed75a29cd29f kodi-pvr-filmon-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-filmon/kodi-pvr-filmon.mk ================================================ ################################################################################ # # kodi-pvr-filmon # ################################################################################ KODI_PVR_FILMON_VERSION = 19.0.0-Matrix KODI_PVR_FILMON_SITE = $(call github,kodi-pvr,pvr.filmon,$(KODI_PVR_FILMON_VERSION)) KODI_PVR_FILMON_LICENSE = GPL-2.0+ KODI_PVR_FILMON_LICENSE_FILES = LICENSE.md KODI_PVR_FILMON_DEPENDENCIES = jsoncpp kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-hdhomerun/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_HDHOMERUN bool "kodi-pvr-hdhomerun" select BR2_PACKAGE_JSONCPP select BR2_PACKAGE_LIBHDHOMERUN help Kodi's HDHomeRun client addon https://github.com/kodi-pvr/pvr.hdhomerun ================================================ FILE: package/kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.hash ================================================ # Locally computed sha256 c3692e70b96f229115f3fc545232885066224a801ada052b8c20633c210e76bc kodi-pvr-hdhomerun-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.mk ================================================ ################################################################################ # # kodi-pvr-hdhomerun # ################################################################################ KODI_PVR_HDHOMERUN_VERSION = 19.0.0-Matrix KODI_PVR_HDHOMERUN_SITE = $(call github,kodi-pvr,pvr.hdhomerun,$(KODI_PVR_HDHOMERUN_VERSION)) KODI_PVR_HDHOMERUN_LICENSE = GPL-2.0+ KODI_PVR_HDHOMERUN_LICENSE_FILES = LICENSE.md KODI_PVR_HDHOMERUN_DEPENDENCIES = jsoncpp kodi libhdhomerun $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-hts/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_HTS bool "kodi-pvr-hts" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 help Tvheadend HTSP PVR client addon for Kodi https://github.com/kodi-pvr/pvr.hts comment "kodi-pvr-hts needs a toolchain w/ gcc >= 7" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_7 ================================================ FILE: package/kodi-pvr-hts/kodi-pvr-hts.hash ================================================ # Locally computed sha256 9aaa8933a23bcdcdc4b4be6dd10adc19f5f27b8915fa5c39f58202c5d1399dc9 kodi-pvr-hts-19.0.2-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-hts/kodi-pvr-hts.mk ================================================ ################################################################################ # # kodi-pvr-hts # ################################################################################ KODI_PVR_HTS_VERSION = 19.0.2-Matrix KODI_PVR_HTS_SITE = $(call github,kodi-pvr,pvr.hts,$(KODI_PVR_HTS_VERSION)) KODI_PVR_HTS_LICENSE = GPL-2.0+ KODI_PVR_HTS_LICENSE_FILES = LICENSE.md KODI_PVR_HTS_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-iptvsimple/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_IPTVSIMPLE bool "kodi-pvr-iptvsimple" # kodi-inputstream-adaptive depends on BR2_aarch64 || BR2_arm || BR2_i386 || BR2_mipsel \ || BR2_mips64el || BR2_x86_64 select BR2_PACKAGE_KODI_INPUTSTREAM_ADAPTIVE # runtime select BR2_PACKAGE_KODI_INPUTSTREAM_FFMPEGDIRECT # runtime select BR2_PACKAGE_KODI_INPUTSTREAM_RTMP # runtime select BR2_PACKAGE_PUGIXML select BR2_PACKAGE_XZ select BR2_PACKAGE_ZLIB help IPTV Live TV and Radio PVR client addon for Kodi https://github.com/kodi-pvr/pvr.iptvsimple ================================================ FILE: package/kodi-pvr-iptvsimple/kodi-pvr-iptvsimple.hash ================================================ # Locally computed sha256 f94ed09b9e54897936785f6bcf64a0adf40a9aa56fba4f5dff46a1846ce04c7c kodi-pvr-iptvsimple-19.0.1-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-iptvsimple/kodi-pvr-iptvsimple.mk ================================================ ################################################################################ # # kodi-pvr-iptvsimple # ################################################################################ KODI_PVR_IPTVSIMPLE_VERSION = 19.0.1-Matrix KODI_PVR_IPTVSIMPLE_SITE = $(call github,kodi-pvr,pvr.iptvsimple,$(KODI_PVR_IPTVSIMPLE_VERSION)) KODI_PVR_IPTVSIMPLE_LICENSE = GPL-2.0+ KODI_PVR_IPTVSIMPLE_LICENSE_FILES = LICENSE.md KODI_PVR_IPTVSIMPLE_DEPENDENCIES = kodi pugixml xz zlib $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-mediaportal-tvserver/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_MEDIAPORTAL_TVSERVER bool "kodi-pvr-mediaportal-tvserver" select BR2_PACKAGE_TINYXML help MediaPortal TVServer PVR client addon for Kodi https://github.com/kodi-pvr/pvr.mediaportal.tvserver ================================================ FILE: package/kodi-pvr-mediaportal-tvserver/kodi-pvr-mediaportal-tvserver.hash ================================================ # Locally computed sha256 05cc8722b7f35c230726941ae7e3082bbc13ed4d061775696fb8bad4abb7b847 kodi-pvr-mediaportal-tvserver-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-mediaportal-tvserver/kodi-pvr-mediaportal-tvserver.mk ================================================ ################################################################################ # # kodi-pvr-mediaportal-tvserver # ################################################################################ KODI_PVR_MEDIAPORTAL_TVSERVER_VERSION = 19.0.0-Matrix KODI_PVR_MEDIAPORTAL_TVSERVER_SITE = $(call github,kodi-pvr,pvr.mediaportal.tvserver,$(KODI_PVR_MEDIAPORTAL_TVSERVER_VERSION)) KODI_PVR_MEDIAPORTAL_TVSERVER_LICENSE = GPL-2.0+ KODI_PVR_MEDIAPORTAL_TVSERVER_LICENSE_FILES = LICENSE.md KODI_PVR_MEDIAPORTAL_TVSERVER_DEPENDENCIES = kodi tinyxml $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-mythtv/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_MYTHTV bool "kodi-pvr-mythtv" help MythTV PVR for Kodi https://github.com/kodi-pvr/pvr.mythtv ================================================ FILE: package/kodi-pvr-mythtv/kodi-pvr-mythtv.hash ================================================ # Locally computed sha256 14d76fda4b9c8e7ac068071e322432fe585357154a2b2bae23d051def766f06d kodi-pvr-mythtv-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-mythtv/kodi-pvr-mythtv.mk ================================================ ################################################################################ # # kodi-pvr-mythtv # ################################################################################ KODI_PVR_MYTHTV_VERSION = 19.0.0-Matrix KODI_PVR_MYTHTV_SITE = $(call github,janbar,pvr.mythtv,$(KODI_PVR_MYTHTV_VERSION)) KODI_PVR_MYTHTV_LICENSE = GPL-2.0+ KODI_PVR_MYTHTV_LICENSE_FILES = LICENSE.md KODI_PVR_MYTHTV_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-nextpvr/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_NEXTPVR bool "kodi-pvr-nextpvr" select BR2_PACKAGE_TINYXML2 help Kodi's NextPVR client addon https://github.com/kodi-pvr/pvr.nextpvr ================================================ FILE: package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.hash ================================================ # Locally computed sha256 64b47658c0027a98465755cf422241f3d15810113a0fa9d0b819fb7da6670f8c kodi-pvr-nextpvr-19.0.1-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.mk ================================================ ################################################################################ # # kodi-pvr-nextpvr # ################################################################################ KODI_PVR_NEXTPVR_VERSION = 19.0.1-Matrix KODI_PVR_NEXTPVR_SITE = $(call github,kodi-pvr,pvr.nextpvr,$(KODI_PVR_NEXTPVR_VERSION)) KODI_PVR_NEXTPVR_LICENSE = GPL-2.0+ KODI_PVR_NEXTPVR_LICENSE_FILES = LICENSE.md KODI_PVR_NEXTPVR_DEPENDENCIES = kodi tinyxml2 $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-njoy/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_NJOY bool "kodi-pvr-njoy" select BR2_PACKAGE_TINYXML help Kodi's Njoy N7 client addon https://github.com/kodi-pvr/pvr.njoy ================================================ FILE: package/kodi-pvr-njoy/kodi-pvr-njoy.hash ================================================ # Locally computed sha256 55644b3e7b09f0ae14ccbe55b569b5add782b72fb973e1545414f17c2613a4a8 kodi-pvr-njoy-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-njoy/kodi-pvr-njoy.mk ================================================ ################################################################################ # # kodi-pvr-njoy # ################################################################################ KODI_PVR_NJOY_VERSION = 19.0.0-Matrix KODI_PVR_NJOY_SITE = $(call github,kodi-pvr,pvr.njoy,$(KODI_PVR_NJOY_VERSION)) KODI_PVR_NJOY_LICENSE = GPL-2.0+ KODI_PVR_NJOY_LICENSE_FILES = LICENSE.md KODI_PVR_NJOY_DEPENDENCIES = kodi tinyxml $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-octonet/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_OCTONET bool "kodi-pvr-octonet" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # jsoncpp select BR2_PACKAGE_JSONCPP help DigitalDevices Octonet PVR client addon for Kodi https://github.com/DigitalDevices/pvr.octonet comment "kodi-pvr-octonet needs a toolchain w/ gcc >= 4.7" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/kodi-pvr-octonet/kodi-pvr-octonet.hash ================================================ # Locally computed sha256 7b95a4f1d7381ebee1c9be9fca582bb0b70144271a47223ba06fc046ea595aaa kodi-pvr-octonet-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-octonet/kodi-pvr-octonet.mk ================================================ ################################################################################ # # kodi-pvr-octonet # ################################################################################ KODI_PVR_OCTONET_VERSION = 19.0.0-Matrix KODI_PVR_OCTONET_SITE = $(call github,DigitalDevices,pvr.octonet,$(KODI_PVR_OCTONET_VERSION)) KODI_PVR_OCTONET_LICENSE = GPL-2.0+ KODI_PVR_OCTONET_LICENSE_FILES = LICENSE.md KODI_PVR_OCTONET_DEPENDENCIES = jsoncpp kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-pctv/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_PCTV bool "kodi-pvr-pctv" select BR2_PACKAGE_JSONCPP help PCTV PVR client addon for Kodi https://github.com/kodi-pvr/pvr.vdr.vnsi ================================================ FILE: package/kodi-pvr-pctv/kodi-pvr-pctv.hash ================================================ # Locally computed sha256 004d9f8801e9c5d2d76c0c84d0844c4560ede7e2ed02c4c43286991a54d720c9 kodi-pvr-pctv-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-pctv/kodi-pvr-pctv.mk ================================================ ################################################################################ # # kodi-pvr-pctv # ################################################################################ KODI_PVR_PCTV_VERSION = 19.0.0-Matrix KODI_PVR_PCTV_SITE = $(call github,kodi-pvr,pvr.pctv,$(KODI_PVR_PCTV_VERSION)) KODI_PVR_PCTV_LICENSE = GPL-2.0+ KODI_PVR_PCTV_LICENSE_FILES = LICENSE.md KODI_PVR_PCTV_DEPENDENCIES = jsoncpp kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-stalker/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_STALKER bool "kodi-pvr-stalker" select BR2_PACKAGE_JSONCPP select BR2_PACKAGE_LIBXML2 help A PVR Client that connects Kodi to Stalker Middleware https://github.com/kodi-pvr/pvr.stalker ================================================ FILE: package/kodi-pvr-stalker/kodi-pvr-stalker.hash ================================================ # Locally computed sha256 6161f0593feb67865e78f9aecc8c59019933ddda273e495ffadb0bdb42dde2a3 kodi-pvr-stalker-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-stalker/kodi-pvr-stalker.mk ================================================ ################################################################################ # # kodi-pvr-stalker # ################################################################################ KODI_PVR_STALKER_VERSION = 19.0.0-Matrix KODI_PVR_STALKER_SITE = $(call github,kodi-pvr,pvr.stalker,$(KODI_PVR_STALKER_VERSION)) KODI_PVR_STALKER_LICENSE = GPL-2.0+ KODI_PVR_STALKER_LICENSE_FILES = LICENSE.md KODI_PVR_STALKER_DEPENDENCIES = jsoncpp kodi libxml2 $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-vbox/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_VBOX bool "kodi-pvr-vbox" help Kodi PVR addon for interfacing with VBox Communications XTi TV Gateway https://github.com/kodi-pvr/pvr.vbox ================================================ FILE: package/kodi-pvr-vbox/kodi-pvr-vbox.hash ================================================ # Locally computed sha256 a87926702c51e52043e595ceae530a9101761cc15e8e3cadec85ac8cc9ba8f2b kodi-pvr-vbox-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-vbox/kodi-pvr-vbox.mk ================================================ ################################################################################ # # kodi-pvr-vbox # ################################################################################ KODI_PVR_VBOX_VERSION = 19.0.0-Matrix KODI_PVR_VBOX_SITE = $(call github,kodi-pvr,pvr.vbox,$(KODI_PVR_VBOX_VERSION)) KODI_PVR_VBOX_LICENSE = GPL-2.0+ KODI_PVR_VBOX_LICENSE_FILES = LICENSE.md KODI_PVR_VBOX_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-vdr-vnsi/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_VDR_VNSI bool "kodi-pvr-vdr-vnsi" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 help Kodi PVR addon VNSI https://github.com/kodi-pvr/pvr.vdr.vnsi comment "kodi-pvr-vdr-vnsi needs a toolchain w/ gcc >= 7" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_7 ================================================ FILE: package/kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.hash ================================================ # Locally computed sha256 ab7ba632438d12001cb1e10c2ccb75816be9a9181ec2fdb739bd8eb2f173cf7f kodi-pvr-vdr-vnsi-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.mk ================================================ ################################################################################ # # kodi-pvr-vdr-vnsi # ################################################################################ KODI_PVR_VDR_VNSI_VERSION = 19.0.0-Matrix KODI_PVR_VDR_VNSI_SITE = $(call github,kodi-pvr,pvr.vdr.vnsi,$(KODI_PVR_VDR_VNSI_VERSION)) KODI_PVR_VDR_VNSI_LICENSE = GPL-2.0+ KODI_PVR_VDR_VNSI_LICENSE_FILES = LICENSE.md KODI_PVR_VDR_VNSI_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-vuplus/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_VUPLUS bool "kodi-pvr-vuplus" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # json-for-modern-cpp select BR2_PACKAGE_JSON_FOR_MODERN_CPP select BR2_PACKAGE_TINYXML help VuPlus PVR client addon for Kodi https://github.com/kodi-pvr/pvr.vuplus comment "kodi-pvr-vuplus needs a toolchain w/ gcc >= 4.9" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/kodi-pvr-vuplus/kodi-pvr-vuplus.hash ================================================ # Locally computed sha256 59e8b63e3b5a6dd4500fd2c1426e021b5b243909d326e173e84804618a6c2fc6 kodi-pvr-vuplus-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-vuplus/kodi-pvr-vuplus.mk ================================================ ################################################################################ # # kodi-pvr-vuplus # ################################################################################ KODI_PVR_VUPLUS_VERSION = 19.0.0-Matrix KODI_PVR_VUPLUS_SITE = $(call github,kodi-pvr,pvr.vuplus,$(KODI_PVR_VUPLUS_VERSION)) KODI_PVR_VUPLUS_LICENSE = GPL-2.0+ KODI_PVR_VUPLUS_LICENSE_FILES = LICENSE.md KODI_PVR_VUPLUS_DEPENDENCIES = json-for-modern-cpp kodi tinyxml $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-wmc/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_WMC bool "kodi-pvr-wmc" help Kodi's Windows Media Center client addon https://github.com/kodi-pvr/pvr.wmc ================================================ FILE: package/kodi-pvr-wmc/kodi-pvr-wmc.hash ================================================ # Locally computed sha256 d3cfa954c01ddec0f69e6777a12fca6314ee579d770a4be8728657e323a8eb8c kodi-pvr-wmc-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-wmc/kodi-pvr-wmc.mk ================================================ ################################################################################ # # kodi-pvr-wmc # ################################################################################ KODI_PVR_WMC_VERSION = 19.0.0-Matrix KODI_PVR_WMC_SITE = $(call github,kodi-pvr,pvr.wmc,$(KODI_PVR_WMC_VERSION)) KODI_PVR_WMC_LICENSE = GPL-2.0+ KODI_PVR_WMC_LICENSE_FILES = LICENSE.md KODI_PVR_WMC_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-pvr-zattoo/Config.in ================================================ config BR2_PACKAGE_KODI_PVR_ZATTOO bool "kodi-pvr-zattoo" select BR2_PACKAGE_RAPIDJSON select BR2_PACKAGE_TINYXML2 help Kodi PVR-Addon for Zattoo https://github.com/rbuehlma/pvr.zattoo ================================================ FILE: package/kodi-pvr-zattoo/kodi-pvr-zattoo.hash ================================================ # Locally computed sha256 8cc02c4627b5108e39bb7b6a6f56f7ba5debbb1adf982c4f23395944aa7d2c8e kodi-pvr-zattoo-19.7.10-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-pvr-zattoo/kodi-pvr-zattoo.mk ================================================ ################################################################################ # # kodi-pvr-zattoo # ################################################################################ KODI_PVR_ZATTOO_VERSION = 19.7.10-Matrix KODI_PVR_ZATTOO_SITE = $(call github,rbuehlma,pvr.zattoo,$(KODI_PVR_ZATTOO_VERSION)) KODI_PVR_ZATTOO_LICENSE = GPL-2.0+ KODI_PVR_ZATTOO_LICENSE_FILES = LICENSE.md KODI_PVR_ZATTOO_DEPENDENCIES = kodi rapidjson tinyxml2 $(eval $(cmake-package)) ================================================ FILE: package/kodi-screensaver-asteroids/Config.in ================================================ config BR2_PACKAGE_KODI_SCREENSAVER_ASTEROIDS bool "kodi-screensaver-asteroids" select BR2_PACKAGE_GLM help Asteroids screensaver for Kodi https://github.com/xbmc/screensaver.asteroids ================================================ FILE: package/kodi-screensaver-asteroids/kodi-screensaver-asteroids.hash ================================================ # Locally computed sha256 cbe9f12e650cf81800f609ebab614e47e9366fbc8905e51d445646a75bc5a000 kodi-screensaver-asteroids-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-screensaver-asteroids/kodi-screensaver-asteroids.mk ================================================ ################################################################################ # # kodi-screensaver-asteroids # ################################################################################ KODI_SCREENSAVER_ASTEROIDS_VERSION = 19.0.0-Matrix KODI_SCREENSAVER_ASTEROIDS_SITE = $(call github,xbmc,screensaver.asteroids,$(KODI_SCREENSAVER_ASTEROIDS_VERSION)) KODI_SCREENSAVER_ASTEROIDS_LICENSE = GPL-2.0+ KODI_SCREENSAVER_ASTEROIDS_LICENSE_FILES = LICENSE.md KODI_SCREENSAVER_ASTEROIDS_DEPENDENCIES = glm kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-screensaver-asterwave/Config.in ================================================ config BR2_PACKAGE_KODI_SCREENSAVER_ASTERWAVE bool "kodi-screensaver-asterwave" select BR2_PACKAGE_GLM help AsterWave screensaver for Kodi https://github.com/xbmc/screensaver.asterwave ================================================ FILE: package/kodi-screensaver-asterwave/kodi-screensaver-asterwave.hash ================================================ # Locally computed sha256 90b60cb321db34de16a9b64068ab3b78ab81c0d44e62bda0d03535ddb4ae1ebc kodi-screensaver-asterwave-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-screensaver-asterwave/kodi-screensaver-asterwave.mk ================================================ ################################################################################ # # kodi-screensaver-asterwave # ################################################################################ KODI_SCREENSAVER_ASTERWAVE_VERSION = 19.0.0-Matrix KODI_SCREENSAVER_ASTERWAVE_SITE = $(call github,xbmc,screensaver.asterwave,$(KODI_SCREENSAVER_ASTERWAVE_VERSION)) KODI_SCREENSAVER_ASTERWAVE_LICENSE = GPL-2.0+ KODI_SCREENSAVER_ASTERWAVE_LICENSE_FILES = LICENSE.md KODI_SCREENSAVER_ASTERWAVE_DEPENDENCIES = glm kodi KODI_SCREENSAVER_ASTERWAVE_CONF_OPTS += \ -DCMAKE_C_FLAGS="$(TARGET_CFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags egl`" \ -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags egl`" $(eval $(cmake-package)) ================================================ FILE: package/kodi-screensaver-biogenesis/Config.in ================================================ config BR2_PACKAGE_KODI_SCREENSAVER_BIOGENESIS bool "kodi-screensaver-biogenesis" help BioGenesis screensaver for Kodi https://github.com/xbmc/screensaver.biogenesis ================================================ FILE: package/kodi-screensaver-biogenesis/kodi-screensaver-biogenesis.hash ================================================ # Locally computed sha256 11aceaa34851c7f400bb362d202289b767b3d1d45fbb4addeb151b6ea60ac37c kodi-screensaver-biogenesis-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-screensaver-biogenesis/kodi-screensaver-biogenesis.mk ================================================ ################################################################################ # # kodi-screensaver-biogenesis # ################################################################################ KODI_SCREENSAVER_BIOGENESIS_VERSION = 19.0.0-Matrix KODI_SCREENSAVER_BIOGENESIS_SITE = $(call github,xbmc,screensaver.biogenesis,$(KODI_SCREENSAVER_BIOGENESIS_VERSION)) KODI_SCREENSAVER_BIOGENESIS_LICENSE = GPL-2.0+ KODI_SCREENSAVER_BIOGENESIS_LICENSE_FILES = LICENSE.md KODI_SCREENSAVER_BIOGENESIS_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-screensaver-cpblobs/Config.in ================================================ config BR2_PACKAGE_KODI_SCREENSAVER_CPBLOBS bool "kodi-screensaver-cpblobs" select BR2_PACKAGE_GLM help CpBlobs screensaver for Kodi https://github.com/xbmc/screensaver.cpblobs ================================================ FILE: package/kodi-screensaver-cpblobs/kodi-screensaver-cpblobs.hash ================================================ # Locally computed sha256 947ce3bd4edd86da3e01e92ea2da804ca27ffef2fe2492dbf8b5fc8299c52890 kodi-screensaver-cpblobs-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-screensaver-cpblobs/kodi-screensaver-cpblobs.mk ================================================ ################################################################################ # # kodi-screensaver-cpblobs # ################################################################################ KODI_SCREENSAVER_CPBLOBS_VERSION = 19.0.0-Matrix KODI_SCREENSAVER_CPBLOBS_SITE = $(call github,xbmc,screensaver.cpblobs,$(KODI_SCREENSAVER_CPBLOBS_VERSION)) KODI_SCREENSAVER_CPBLOBS_LICENSE = GPL-2.0 KODI_SCREENSAVER_CPBLOBS_LICENSE_FILES = LICENSE.md KODI_SCREENSAVER_CPBLOBS_DEPENDENCIES = glm kodi KODI_SCREENSAVER_CPBLOBS_CONF_OPTS += \ -DCMAKE_C_FLAGS="$(TARGET_CFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags egl`" \ -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags egl`" $(eval $(cmake-package)) ================================================ FILE: package/kodi-screensaver-greynetic/Config.in ================================================ config BR2_PACKAGE_KODI_SCREENSAVER_GREYNETIC bool "kodi-screensaver-greynetic" select BR2_PACKAGE_GLM help Greynetic screensaver for Kodi https://github.com/xbmc/screensaver.greynetic ================================================ FILE: package/kodi-screensaver-greynetic/kodi-screensaver-greynetic.hash ================================================ # Locally computed sha256 c0643ea89202ab6bc384a4e6a59de2d09318fe3231d64fe244e81e75dd64827c kodi-screensaver-greynetic-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-screensaver-greynetic/kodi-screensaver-greynetic.mk ================================================ ################################################################################ # # kodi-screensaver-greynetic # ################################################################################ KODI_SCREENSAVER_GREYNETIC_VERSION = 19.0.0-Matrix KODI_SCREENSAVER_GREYNETIC_SITE = $(call github,xbmc,screensaver.greynetic,$(KODI_SCREENSAVER_GREYNETIC_VERSION)) KODI_SCREENSAVER_GREYNETIC_LICENSE = GPL-2.0+ KODI_SCREENSAVER_GREYNETIC_LICENSE_FILES = LICENSE.md KODI_SCREENSAVER_GREYNETIC_DEPENDENCIES = glm kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-screensaver-matrixtrails/Config.in ================================================ config BR2_PACKAGE_KODI_SCREENSAVER_MATRIXTRAILS bool "kodi-screensaver-matrixtrails" help Matrix trails screensaver for Kodi https://github.com/xbmc/screensaver.matrixtrails ================================================ FILE: package/kodi-screensaver-matrixtrails/kodi-screensaver-matrixtrails.hash ================================================ # Locally computed sha256 309e4808ad76989b4c50dd0b55b859bff00b952da0a9dcead7157f935a047fe6 kodi-screensaver-matrixtrails-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-screensaver-matrixtrails/kodi-screensaver-matrixtrails.mk ================================================ ################################################################################ # # kodi-screensaver-matrixtrails # ################################################################################ KODI_SCREENSAVER_MATRIXTRAILS_VERSION = 19.0.0-Matrix KODI_SCREENSAVER_MATRIXTRAILS_SITE = $(call github,xbmc,screensaver.matrixtrails,$(KODI_SCREENSAVER_MATRIXTRAILS_VERSION)) KODI_SCREENSAVER_MATRIXTRAILS_LICENSE = GPL-2.0+ KODI_SCREENSAVER_MATRIXTRAILS_LICENSE_FILES = LICENSE.md KODI_SCREENSAVER_MATRIXTRAILS_DEPENDENCIES = kodi KODI_SCREENSAVER_MATRIXTRAILS_CONF_OPTS += \ -DCMAKE_C_FLAGS="$(TARGET_CFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags egl`" \ -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags egl`" $(eval $(cmake-package)) ================================================ FILE: package/kodi-screensaver-pingpong/Config.in ================================================ config BR2_PACKAGE_KODI_SCREENSAVER_PINGPONG bool "kodi-screensaver-pingpong" select BR2_PACKAGE_GLM help Ping-pong screensaver for Kodi https://github.com/xbmc/screensaver.pingpong ================================================ FILE: package/kodi-screensaver-pingpong/kodi-screensaver-pingpong.hash ================================================ # Locally computed sha256 42d7a0b25dc1b8e1c9171efe066643a7b57162709fcba137f90eb9d24496d2e4 kodi-screensaver-pingpong-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-screensaver-pingpong/kodi-screensaver-pingpong.mk ================================================ ################################################################################ # # kodi-screensaver-pingpong # ################################################################################ KODI_SCREENSAVER_PINGPONG_VERSION = 19.0.0-Matrix KODI_SCREENSAVER_PINGPONG_SITE = $(call github,xbmc,screensaver.pingpong,$(KODI_SCREENSAVER_PINGPONG_VERSION)) KODI_SCREENSAVER_PINGPONG_LICENSE = GPL-2.0+ KODI_SCREENSAVER_PINGPONG_LICENSE_FILES = LICENSE.md KODI_SCREENSAVER_PINGPONG_DEPENDENCIES = glm kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-screensaver-pyro/Config.in ================================================ config BR2_PACKAGE_KODI_SCREENSAVER_PYRO bool "kodi-screensaver-pyro" help Pyro screensaver for Kodi https://github.com/xbmc/screensaver.pyro ================================================ FILE: package/kodi-screensaver-pyro/kodi-screensaver-pyro.hash ================================================ # Locally computed sha256 32dcdfd367d0bf0d7abf4f074fbb754d4c3813c8b2280338af6fddeabd75cade kodi-screensaver-pyro-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-screensaver-pyro/kodi-screensaver-pyro.mk ================================================ ################################################################################ # # kodi-screensaver-pyro # ################################################################################ KODI_SCREENSAVER_PYRO_VERSION = 19.0.0-Matrix KODI_SCREENSAVER_PYRO_SITE = $(call github,xbmc,screensaver.pyro,$(KODI_SCREENSAVER_PYRO_VERSION)) KODI_SCREENSAVER_PYRO_LICENSE = GPL-2.0+ KODI_SCREENSAVER_PYRO_LICENSE_FILES = LICENSE.md KODI_SCREENSAVER_PYRO_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-screensaver-rsxs/0001-impSurface.h-fix-build-with-gcc11.patch ================================================ From fb23e136f88a94aa497e8eb4369bb06435c2aaf8 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sun, 26 Sep 2021 15:59:29 +0200 Subject: [PATCH] impSurface.h: fix build with gcc11 lib/Implicit/impSurface.h:44:9: error: 'size_t' does not name a type 44 | size_t vertex_data_size; Signed-off-by: Bernd Kuhls Upstream status: https://github.com/xbmc/screensavers.rsxs/pull/52 --- lib/Implicit/impSurface.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/Implicit/impSurface.h b/lib/Implicit/impSurface.h index 388701aa..3319820e 100644 --- a/lib/Implicit/impSurface.h +++ b/lib/Implicit/impSurface.h @@ -21,6 +21,7 @@ #ifndef IMPSURFACE_H #define IMPSURFACE_H +#include #include #ifdef WIN32 -- 2.30.2 ================================================ FILE: package/kodi-screensaver-rsxs/Config.in ================================================ config BR2_PACKAGE_KODI_SCREENSAVER_RSXS bool "kodi-screensaver-rsxs" depends on BR2_PACKAGE_KODI_RENDER_SYSTEM_GL select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_GLI select BR2_PACKAGE_GLM help RSXS screensaver add-ons for Kodi https://github.com/xbmc/screensavers.rsxs comment "kodi-screensaver-rsxs needs OpenGL as Kodi render system" depends on !BR2_PACKAGE_KODI_RENDER_SYSTEM_GL ================================================ FILE: package/kodi-screensaver-rsxs/kodi-screensaver-rsxs.hash ================================================ # Locally computed sha256 d08570d45a7f5bcf43f737a89f2988ebb163590f1746a8f734995711cda0d3a6 kodi-screensaver-rsxs-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-screensaver-rsxs/kodi-screensaver-rsxs.mk ================================================ ################################################################################ # # kodi-screensaver-rsxs # ################################################################################ KODI_SCREENSAVER_RSXS_VERSION = 19.0.0-Matrix KODI_SCREENSAVER_RSXS_SITE = $(call github,xbmc,screensavers.rsxs,$(KODI_SCREENSAVER_RSXS_VERSION)) KODI_SCREENSAVER_RSXS_LICENSE = GPL-2.0+ KODI_SCREENSAVER_RSXS_LICENSE_FILES = LICENSE.md KODI_SCREENSAVER_RSXS_DEPENDENCIES = bzip2 gli glm kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-screensaver-stars/Config.in ================================================ config BR2_PACKAGE_KODI_SCREENSAVER_STARS bool "kodi-screensaver-stars" help Starfield screensaver for Kodi https://github.com/xbmc/screensaver.stars ================================================ FILE: package/kodi-screensaver-stars/kodi-screensaver-stars.hash ================================================ # Locally computed sha256 1c65bd9baa351ba4c5d443205b9e125303e341bd85e99aaf36793f95395372bf kodi-screensaver-stars-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-screensaver-stars/kodi-screensaver-stars.mk ================================================ ################################################################################ # # kodi-screensaver-stars # ################################################################################ KODI_SCREENSAVER_STARS_VERSION = 19.0.0-Matrix KODI_SCREENSAVER_STARS_SITE = $(call github,xbmc,screensaver.stars,$(KODI_SCREENSAVER_STARS_VERSION)) KODI_SCREENSAVER_STARS_LICENSE = GPL-2.0+ KODI_SCREENSAVER_STARS_LICENSE_FILES = LICENSE.md KODI_SCREENSAVER_STARS_DEPENDENCIES = kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-skin-confluence/Config.in ================================================ config BR2_PACKAGE_KODI_SKIN_CONFLUENCE bool "kodi-skin-confluence" help Kodi confluence skin https://github.com/xbmc/skin.confluence ================================================ FILE: package/kodi-skin-confluence/kodi-skin-confluence.hash ================================================ # Locally computed sha256 49ba4dcf4b512ac0a97bd1a4ebf14685d294d89a7a07c26ddda0fe730c8aa047 kodi-skin-confluence-37a196cdb58c0da87b5b22b047a5d44dc447f1ae.tar.gz sha256 89931c1fb1f3716694175763cf3221cfcd63d6935031cf6b4512d17ffe5d9860 LICENSE.txt ================================================ FILE: package/kodi-skin-confluence/kodi-skin-confluence.mk ================================================ ################################################################################ # # kodi-skin-confluence # ################################################################################ KODI_SKIN_CONFLUENCE_VERSION = 37a196cdb58c0da87b5b22b047a5d44dc447f1ae KODI_SKIN_CONFLUENCE_SITE = $(call github,xbmc,skin.confluence,$(KODI_SKIN_CONFLUENCE_VERSION)) KODI_SKIN_CONFLUENCE_LICENSE = GPL-2.0 KODI_SKIN_CONFLUENCE_LICENSE_FILES = LICENSE.txt KODI_SKIN_CONFLUENCE_DEPENDENCIES = kodi define KODI_SKIN_CONFLUENCE_BUILD_CMDS $(HOST_DIR)/bin/TexturePacker -input $(@D)/media/ -output $(@D)/media/Textures.xbt -dupecheck -use_none endef define KODI_SKIN_CONFLUENCE_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/share/kodi/addons/skin.confluence cp -dpfr $(@D)/* $(TARGET_DIR)/usr/share/kodi/addons/skin.confluence find $(TARGET_DIR)/usr/share/kodi/addons/skin.confluence/media -name *.jpg -delete find $(TARGET_DIR)/usr/share/kodi/addons/skin.confluence/media -name *.png -delete endef $(eval $(generic-package)) ================================================ FILE: package/kodi-texturepacker/0001-texturepacker.patch ================================================ Fix host compile Signed-off-by: Bernd Kuhls diff -uNr xbmc-656cba5d5c7c5edb166196b48560825b9b1f03fd.org/tools/depends/native/TexturePacker/Makefile xbmc-656cba5d5c7c5edb166196b48560825b9b1f03fd/tools/depends/native/TexturePacker/Makefile --- xbmc-656cba5d5c7c5edb166196b48560825b9b1f03fd.org/tools/depends/native/TexturePacker/Makefile 2015-01-25 09:00:48.000000000 +0100 +++ xbmc-656cba5d5c7c5edb166196b48560825b9b1f03fd/tools/depends/native/TexturePacker/Makefile 2015-01-25 13:03:23.606140953 +0100 @@ -36,7 +36,7 @@ -rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM) cd $(PLATFORM); cp -a $(SOURCE)/* . cd $(PLATFORM); ./autogen.sh - cd $(PLATFORM); ./configure --prefix=$(PREFIX) $(EXTRA_CONFIGURE) EXTRA_DEFINES="$(NATIVE_ARCH_DEFINES)" + cd $(PLATFORM); ./configure --prefix=$(PREFIX) EXTRA_DEFINES="$(NATIVE_ARCH_DEFINES)" $(APP): $(PLATFORM) ================================================ FILE: package/kodi-texturepacker/0002-fix-texture-packer-cmake-source-dir.patch ================================================ Fix stand-alone build CMake Error at CMakeLists.txt:40 (add_executable): Cannot find source file: /home/bernd/buildroot/output/build/host-kodi-texturepacker-18.4-Leia/tools/depends/native/TexturePacker/xbmc/guilib/XBTF.cpp Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx CMake Error at CMakeLists.txt:40 (add_executable): No SOURCES given to target: TexturePacker Downloaded from https://github.com/LibreELEC/LibreELEC.tv/blob/master/packages/mediacenter/kodi/patches/kodi-100.25-hack-fix-texture-packer-cmake-source-dir.patch Signed-off-by: Bernd Kuhls diff -Naur a/tools/depends/native/TexturePacker/CMakeLists.txt b/tools/depends/native/TexturePacker/CMakeLists.txt --- a/tools/depends/native/TexturePacker/CMakeLists.txt 2016-12-23 17:10:28.593185862 +0000 +++ b/tools/depends/native/TexturePacker/CMakeLists.txt 2016-12-23 17:10:39.469253011 +0000 @@ -1,3 +1,5 @@ +set(CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/../../../..) + list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) if(APPLE) ================================================ FILE: package/kodi-texturepacker/kodi-texturepacker.mk ================================================ ################################################################################ # # kodi-texturepacker # ################################################################################ # Not possible to directly refer to kodi variables, because of # first/second expansion trickery... KODI_TEXTUREPACKER_VERSION = 19.3-Matrix KODI_TEXTUREPACKER_SITE = $(call github,xbmc,xbmc,$(KODI_TEXTUREPACKER_VERSION)) KODI_TEXTUREPACKER_SOURCE = kodi-$(KODI_TEXTUREPACKER_VERSION).tar.gz KODI_TEXTUREPACKER_DL_SUBDIR = kodi KODI_TEXTUREPACKER_LICENSE = GPL-2.0 KODI_TEXTUREPACKER_LICENSE_FILES = LICENSE.md HOST_KODI_TEXTUREPACKER_SUBDIR = tools/depends/native/TexturePacker HOST_KODI_TEXTUREPACKER_DEPENDENCIES = \ host-giflib \ host-libjpeg \ host-libpng \ host-lzo HOST_KODI_TEXTUREPACKER_CXXFLAGS = \ $(HOST_CXXFLAGS) \ -std=c++0x \ -DTARGET_POSIX \ -DTARGET_LINUX \ -D_LINUX \ -I$(@D)/xbmc/linux HOST_KODI_TEXTUREPACKER_CONF_OPTS += \ -DCMAKE_CXX_FLAGS="$(HOST_KODI_TEXTUREPACKER_CXXFLAGS)" \ -DCMAKE_MODULE_PATH=$(@D)/cmake/modules \ -Wno-dev define HOST_KODI_TEXTUREPACKER_INSTALL_CMDS $(INSTALL) -m 755 -D \ $(@D)/tools/depends/native/TexturePacker/TexturePacker \ $(HOST_DIR)/bin/TexturePacker endef $(eval $(host-cmake-package)) ================================================ FILE: package/kodi-vfs-libarchive/Config.in ================================================ config BR2_PACKAGE_KODI_VFS_LIBARCHIVE bool "kodi-vfs-libarchive" select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_LIBARCHIVE select BR2_PACKAGE_LZ4 select BR2_PACKAGE_LZO select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_XZ select BR2_PACKAGE_ZLIB help Libarchive VFS add-on for Kodi https://github.com/xbmc/vfs.libarchive ================================================ FILE: package/kodi-vfs-libarchive/kodi-vfs-libarchive.hash ================================================ # Locally computed sha256 941dd675e84c2a6e964622fcc36664f011304d2b2e207196aad298167c713715 kodi-vfs-libarchive-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-vfs-libarchive/kodi-vfs-libarchive.mk ================================================ ################################################################################ # # kodi-vfs-libarchive # ################################################################################ KODI_VFS_LIBARCHIVE_VERSION = 19.0.0-Matrix KODI_VFS_LIBARCHIVE_SITE = $(call github,xbmc,vfs.libarchive,$(KODI_VFS_LIBARCHIVE_VERSION)) KODI_VFS_LIBARCHIVE_LICENSE = GPL-2.0+ KODI_VFS_LIBARCHIVE_LICENSE_FILES = LICENSE.md KODI_VFS_LIBARCHIVE_DEPENDENCIES = \ bzip2 \ kodi \ libarchive \ lz4 \ lzo \ openssl \ xz \ zlib $(eval $(cmake-package)) ================================================ FILE: package/kodi-vfs-rar/Config.in ================================================ config BR2_PACKAGE_KODI_VFS_RAR bool "kodi-vfs-rar" select BR2_PACKAGE_TINYXML help RAR VFS addon for Kodi https://github.com/xbmc/vfs.rar ================================================ FILE: package/kodi-vfs-rar/kodi-vfs-rar.hash ================================================ # Locally computed sha256 50f188649466752be3aada267a64252813bac6b975a65527b96a571bd3fb47f5 kodi-vfs-rar-19.0.0-Matrix.tar.gz # License files sha256 6ecc1687808b7d66b24f874755abfed7464d9751ed0001cd4e8e5d9bf397ff8a lib/UnrarXLib/license.txt sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-vfs-rar/kodi-vfs-rar.mk ================================================ ################################################################################ # # kodi-vfs-rar # ################################################################################ KODI_VFS_RAR_VERSION = 19.0.0-Matrix KODI_VFS_RAR_SITE = $(call github,xbmc,vfs.rar,$(KODI_VFS_RAR_VERSION)) KODI_VFS_RAR_LICENSE = unrar, GPL-2.0+ KODI_VFS_RAR_LICENSE_FILES = lib/UnrarXLib/license.txt LICENSE.md KODI_VFS_RAR_DEPENDENCIES = kodi tinyxml $(eval $(cmake-package)) ================================================ FILE: package/kodi-vfs-sftp/Config.in ================================================ config BR2_PACKAGE_KODI_VFS_SFTP bool "kodi-vfs-sftp" select BR2_PACKAGE_LIBSSH select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help SFTP VFS addon for Kodi https://github.com/xbmc/vfs.sftp ================================================ FILE: package/kodi-vfs-sftp/kodi-vfs-sftp.hash ================================================ # Locally computed sha256 06015d9c645642f92ed2b28d6c6e3c1c9b149e7fb1e212b66a02510d438b4947 kodi-vfs-sftp-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-vfs-sftp/kodi-vfs-sftp.mk ================================================ ################################################################################ # # kodi-vfs-sftp # ################################################################################ KODI_VFS_SFTP_VERSION = 19.0.0-Matrix KODI_VFS_SFTP_SITE = $(call github,xbmc,vfs.sftp,$(KODI_VFS_SFTP_VERSION)) KODI_VFS_SFTP_LICENSE = GPL-2.0+ KODI_VFS_SFTP_LICENSE_FILES = LICENSE.md KODI_VFS_SFTP_DEPENDENCIES = kodi libssh openssl zlib $(eval $(cmake-package)) ================================================ FILE: package/kodi-visualisation-fishbmc/Config.in ================================================ config BR2_PACKAGE_KODI_VISUALISATION_FISHBMC bool "kodi-visualisation-fishbmc" select BR2_PACKAGE_GLM help Fische visualiser for Kodi https://github.com/xbmc/visualization.fishbmc ================================================ FILE: package/kodi-visualisation-fishbmc/kodi-visualisation-fishbmc.hash ================================================ # Locally computed sha256 b8cb7793f29b3c3d097a5348831347af8fbed1e4ef44d37d9faeff83ff22a830 kodi-visualisation-fishbmc-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-visualisation-fishbmc/kodi-visualisation-fishbmc.mk ================================================ ################################################################################ # # kodi-visualisation-fishbmc # ################################################################################ KODI_VISUALISATION_FISHBMC_VERSION = 19.0.0-Matrix KODI_VISUALISATION_FISHBMC_SITE = $(call github,xbmc,visualization.fishbmc,$(KODI_VISUALISATION_FISHBMC_VERSION)) KODI_VISUALISATION_FISHBMC_LICENSE = GPL-2.0+ KODI_VISUALISATION_FISHBMC_LICENSE_FILES = LICENSE.md KODI_VISUALISATION_FISHBMC_DEPENDENCIES = glm kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-visualisation-goom/Config.in ================================================ config BR2_PACKAGE_KODI_VISUALISATION_GOOM bool "kodi-visualisation-goom" depends on BR2_PACKAGE_KODI_RENDER_SYSTEM_GL select BR2_PACKAGE_GLM help GOOM visualiser for Kodi https://github.com/notspiff/visualization.goom comment "kodi-visualization-goom needs OpenGL as Kodi render system" depends on !BR2_PACKAGE_KODI_RENDER_SYSTEM_GL ================================================ FILE: package/kodi-visualisation-goom/kodi-visualisation-goom.hash ================================================ # Locally computed sha256 03f4228421a1fe38d619d5599f31de04e2207647c5aae7ac83809e5324890437 kodi-visualisation-goom-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-visualisation-goom/kodi-visualisation-goom.mk ================================================ ################################################################################ # # kodi-visualisation-goom # ################################################################################ KODI_VISUALISATION_GOOM_VERSION = 19.0.0-Matrix KODI_VISUALISATION_GOOM_SITE = $(call github,xbmc,visualization.goom,$(KODI_VISUALISATION_GOOM_VERSION)) KODI_VISUALISATION_GOOM_LICENSE = GPL-2.0+ KODI_VISUALISATION_GOOM_LICENSE_FILES = LICENSE.md KODI_VISUALISATION_GOOM_DEPENDENCIES = glm kodi KODI_VISUALISATION_GOOM_CONF_OPTS += \ -DCMAKE_C_FLAGS="-std=c11" $(eval $(cmake-package)) ================================================ FILE: package/kodi-visualisation-matrix/Config.in ================================================ config BR2_PACKAGE_KODI_VISUALISATION_MATRIX bool "kodi-visualisation-matrix" select BR2_PACKAGE_GLM help Matrix themed visualization addon for Kodi https://github.com/xbmc/visualization.matrix ================================================ FILE: package/kodi-visualisation-matrix/kodi-visualisation-matrix.hash ================================================ # Locally computed sha256 e2cf98fa3cb9451dca595b2fad211ae34b5c449be07073c91aa73f182b208182 kodi-visualisation-matrix-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-visualisation-matrix/kodi-visualisation-matrix.mk ================================================ ################################################################################ # # kodi-visualisation-matrix # ################################################################################ KODI_VISUALISATION_MATRIX_VERSION = 19.0.0-Matrix KODI_VISUALISATION_MATRIX_SITE = $(call github,xbmc,visualization.matrix,$(KODI_VISUALISATION_MATRIX_VERSION)) KODI_VISUALISATION_MATRIX_LICENSE = GPL-2.0+ KODI_VISUALISATION_MATRIX_LICENSE_FILES = LICENSE.md KODI_VISUALISATION_MATRIX_DEPENDENCIES = glm kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-visualisation-shadertoy/Config.in ================================================ config BR2_PACKAGE_KODI_VISUALISATION_SHADERTOY bool "kodi-visualisation-shadertoy" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # jsoncpp select BR2_PACKAGE_GLM select BR2_PACKAGE_JSONCPP help Shadertoy visualiser for Kodi https://github.com/notspiff/visualization.shadertoy comment "kodi-visualisation-shadertoy needs a toolchain w/ gcc >= 4.7" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/kodi-visualisation-shadertoy/kodi-visualisation-shadertoy.hash ================================================ # Locally computed sha256 c556003a46ebf11595fb04343bf21a135365342f09e2280da2e7fd5e802944e7 kodi-visualisation-shadertoy-19.1.1-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-visualisation-shadertoy/kodi-visualisation-shadertoy.mk ================================================ ################################################################################ # # kodi-visualisation-shadertoy # ################################################################################ KODI_VISUALISATION_SHADERTOY_VERSION = 19.1.1-Matrix KODI_VISUALISATION_SHADERTOY_SITE = $(call github,xbmc,visualization.shadertoy,$(KODI_VISUALISATION_SHADERTOY_VERSION)) KODI_VISUALISATION_SHADERTOY_LICENSE = GPL-2.0+ KODI_VISUALISATION_SHADERTOY_LICENSE_FILES = LICENSE.md KODI_VISUALISATION_SHADERTOY_DEPENDENCIES = glm jsoncpp kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-visualisation-spectrum/Config.in ================================================ config BR2_PACKAGE_KODI_VISUALISATION_SPECTRUM bool "kodi-visualisation-spectrum" select BR2_PACKAGE_GLM help Spectrum visualiser for Kodi https://github.com/notspiff/visualization.spectrum ================================================ FILE: package/kodi-visualisation-spectrum/kodi-visualisation-spectrum.hash ================================================ # Locally computed sha256 32b130c26581c224e9b43672ccb5c947f2f4982e6d2ab12e389b41a9ceeb0e3f kodi-visualisation-spectrum-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-visualisation-spectrum/kodi-visualisation-spectrum.mk ================================================ ################################################################################ # # kodi-visualisation-spectrum # ################################################################################ KODI_VISUALISATION_SPECTRUM_VERSION = 19.0.0-Matrix KODI_VISUALISATION_SPECTRUM_SITE = $(call github,xbmc,visualization.spectrum,$(KODI_VISUALISATION_SPECTRUM_VERSION)) KODI_VISUALISATION_SPECTRUM_LICENSE = GPL-2.0+ KODI_VISUALISATION_SPECTRUM_LICENSE_FILES = LICENSE.md KODI_VISUALISATION_SPECTRUM_DEPENDENCIES = glm kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-visualisation-starburst/Config.in ================================================ config BR2_PACKAGE_KODI_VISUALISATION_STARBURST bool "kodi-visualisation-starburst" select BR2_PACKAGE_GLM help StarBurst visualization for Kodi https://github.com/xbmc/visualization.starburst ================================================ FILE: package/kodi-visualisation-starburst/kodi-visualisation-starburst.hash ================================================ # Locally computed sha256 b610919fd181dac638cbcea3f88b01a0b3522941415fde8fab51a17a88f536e2 kodi-visualisation-starburst-19.0.0-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-visualisation-starburst/kodi-visualisation-starburst.mk ================================================ ################################################################################ # # kodi-visualisation-starburst # ################################################################################ KODI_VISUALISATION_STARBURST_VERSION = 19.0.0-Matrix KODI_VISUALISATION_STARBURST_SITE = $(call github,xbmc,visualization.starburst,$(KODI_VISUALISATION_STARBURST_VERSION)) KODI_VISUALISATION_STARBURST_LICENSE = GPL-2.0+ KODI_VISUALISATION_STARBURST_LICENSE_FILES = LICENSE.md KODI_VISUALISATION_STARBURST_DEPENDENCIES = glm kodi $(eval $(cmake-package)) ================================================ FILE: package/kodi-visualisation-waveform/Config.in ================================================ config BR2_PACKAGE_KODI_VISUALISATION_WAVEFORM bool "kodi-visualisation-waveform" select BR2_PACKAGE_GLM help Waveform visualiser for Kodi https://github.com/notspiff/visualization.waveform ================================================ FILE: package/kodi-visualisation-waveform/kodi-visualisation-waveform.hash ================================================ # Locally computed sha256 5b025f3c1b15108b958a56ebbacf315865c7e527258778fe9580469876e4858c kodi-visualisation-waveform-19.0.1-Matrix.tar.gz sha256 310782e1abd43c4de6217c513e328bddf999d39302d67c6e05b10a59959827af LICENSE.md ================================================ FILE: package/kodi-visualisation-waveform/kodi-visualisation-waveform.mk ================================================ ################################################################################ # # kodi-visualisation-waveform # ################################################################################ KODI_VISUALISATION_WAVEFORM_VERSION = 19.0.1-Matrix KODI_VISUALISATION_WAVEFORM_SITE = $(call github,xbmc,visualization.waveform,$(KODI_VISUALISATION_WAVEFORM_VERSION)) KODI_VISUALISATION_WAVEFORM_LICENSE = GPL-2.0+ KODI_VISUALISATION_WAVEFORM_LICENSE_FILES = LICENSE.md KODI_VISUALISATION_WAVEFORM_DEPENDENCIES = glm kodi $(eval $(cmake-package)) ================================================ FILE: package/kompexsqlite/0001-Makefile-use-autoconf-CXX-for-proper-builds.patch ================================================ From 769693d9ddf63b04dd4aad6cad080f3cee3f997e Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Thu, 11 Jun 2015 14:08:38 -0300 Subject: [PATCH] Makefile: use autoconf CXX for proper builds Status: applied upstream. Signed-off-by: Gustavo Zacarias --- Makefile.in | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.in b/Makefile.in index 91fb8b2..fe862cd 100644 --- a/Makefile.in +++ b/Makefile.in @@ -23,6 +23,7 @@ mandir = $(prefix)/share/man/man3 headerdir = $(prefix)/include/kompex CC = @CC@ +CXX = @CXX@ CFLAGS = @CFLAGS@ CPPFLAGS = $(CFLAGS) @CPPFLAGS@ LDFLAGS = @LDFLAGS@ -- 2.3.6 ================================================ FILE: package/kompexsqlite/0002-append-to-cflags-and-cxxflags.patch ================================================ From 3eb064ffa9b43fb5f245b8abda48a1c152a6f2d7 Mon Sep 17 00:00:00 2001 From: me Date: Thu, 20 Nov 2014 14:37:34 -0700 Subject: [PATCH] Append to CFLAGS and CXXFLAGS as setup by ./configure. This can allow users to Customize the SQLite build process with compile time #defines rather than altering the sources. Signed-off-by: Max Filippov --- Backported from: 3eb064ffa9b43fb5f245b8abda48a1c152a6f2d7 Makefile-shared.mk | 4 ++-- Makefile-static.mk | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile-shared.mk b/Makefile-shared.mk index b2a4920..d15ce3c 100644 --- a/Makefile-shared.mk +++ b/Makefile-shared.mk @@ -12,10 +12,10 @@ OBJS= \ ${objsdir}/sqlite3.o # C Compiler Flags -CFLAGS= -fPIC -MMD -MP +CFLAGS+= -fPIC -MMD -MP # CC Compiler Flags -CPPFLAGS= -DKOMPEX_SQLITEWRAPPER_EXPORT -DKOMPEX_SQLITEWRAPPER_DYN -fPIC -MMD -MP -I${includedir} +CPPFLAGS+= -DKOMPEX_SQLITEWRAPPER_EXPORT -DKOMPEX_SQLITEWRAPPER_DYN -fPIC -MMD -MP -I${includedir} # Link Libraries and Options LDLIBSOPTIONS= -shared -fPIC diff --git a/Makefile-static.mk b/Makefile-static.mk index 429a4ff..0678681 100644 --- a/Makefile-static.mk +++ b/Makefile-static.mk @@ -12,10 +12,10 @@ OBJS= \ ${objsdir}/sqlite3.o # C Compiler Flags -CFLAGS= -MMD -MP +CFLAGS+= -MMD -MP # CC Compiler Flags -CPPFLAGS= -I${includedir} -MMD -MP +CPPFLAGS+= -I${includedir} -MMD -MP # Link Libraries and Options LDLIBSOPTIONS= ================================================ FILE: package/kompexsqlite/Config.in ================================================ config BR2_PACKAGE_KOMPEXSQLITE bool "kompexsqlite" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS help The Kompex SQLite Wrapper is an open source C++ wrapper library for SQLite. http://sqlitewrapper.kompex-online.com/index.php comment "kompexsqlite needs a toolchain w/ C++, wchar, threads, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/kompexsqlite/kompexsqlite.hash ================================================ # Locally calculated sha256 73bec94fe5dd3a24bd8668b3a131a84dbe39a992579eebab1236aa0e73b2c9cc kompexsqlite-1.10.12-1.tar.gz sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.txt ================================================ FILE: package/kompexsqlite/kompexsqlite.mk ================================================ ################################################################################ # # kompexsqlite # ################################################################################ KOMPEXSQLITE_VERSION = 1.10.12-1 KOMPEXSQLITE_SITE = \ $(call github,Aethelflaed,kompex-sqlite-wrapper,v$(KOMPEXSQLITE_VERSION)) KOMPEXSQLITE_INSTALL_STAGING = YES KOMPEXSQLITE_LICENSE = LGPL-3.0+ (wrapper), Public Domain (bundled sqlite) KOMPEXSQLITE_LICENSE_FILES = LICENSE.txt $(eval $(autotools-package)) ================================================ FILE: package/ktap/Config.in ================================================ config BR2_PACKAGE_KTAP bool "ktap" depends on BR2_LINUX_KERNEL depends on BR2_TOOLCHAIN_HAS_THREADS help ktap is a script-based dynamic tracing tool for Linux It uses a scripting language and lets users trace the Linux kernel dynamically. ktap is designed to give operational insights with interoperability that allows users to tune, troubleshoot and extend kernel and application. It's similar to Linux Systemtap and Solaris Dtrace. ktap doesn't support kernels older than 3.1. To be able to resolve symbols in DSO and for sdt, you need to enable elfutils. Your kernel must have CONFIG_EVENT_TRACING, CONFIG_PERF_EVENTS, and CONFIG_DEBUG_FS enabled to compile. Buildroot automatically enables these in the kernel configuration. http://www.ktap.org comment "ktap needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL comment "ktap needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/ktap/ktap.hash ================================================ # Locally calculated sha256 44a0808d57175cf9d15466f720e1e10d5ed1abc3497aedf9ddd6469545552345 ktap-23bc7a4a94bd9e4e1b8b7c06632e61c041d57b5f.tar.gz sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 LICENSE-GPL ================================================ FILE: package/ktap/ktap.mk ================================================ ################################################################################ # # ktap # ################################################################################ KTAP_VERSION = 23bc7a4a94bd9e4e1b8b7c06632e61c041d57b5f KTAP_SITE = $(call github,ktap,ktap,$(KTAP_VERSION)) KTAP_LICENSE = GPL-2.0 KTAP_LICENSE_FILES = LICENSE-GPL ifeq ($(BR2_PACKAGE_ELFUTILS),y) KTAP_DEPENDENCIES += elfutils else KTAP_FLAGS += NO_LIBELF=1 endif define KTAP_BUILD_CMDS $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) $(KTAP_FLAGS) ktap endef define KTAP_INSTALL_TARGET_CMDS $(INSTALL) -D -m755 $(@D)/ktap $(TARGET_DIR)/usr/bin/ktap endef KTAP_MODULE_MAKE_OPTS = KVERSION=$(LINUX_VERSION_PROBED) define KTAP_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_DEBUG_FS) $(call KCONFIG_ENABLE_OPT,CONFIG_ENABLE_DEFAULT_TRACERS) $(call KCONFIG_ENABLE_OPT,CONFIG_PERF_EVENTS) $(call KCONFIG_ENABLE_OPT,CONFIG_FUNCTION_TRACER) endef $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/kvazaar/Config.in ================================================ config BR2_PACKAGE_KVAZAAR bool "kvazaar" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HAS_SYNC_4 # use deprecated altivec vec_lvsl() depends on !BR2_powerpc && !BR2_powerpc64 && !BR2_powerpc64le help An open-source HEVC encoder licensed under LGPLv2.1 https://github.com/ultravideo/kvazaar comment "kvazaar needs a toolchain w/ C++, threads" depends on !BR2_powerpc && !BR2_powerpc64 && !BR2_powerpc64le depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/kvazaar/kvazaar.hash ================================================ # Locally calculated sha256 480ecfd9b4d2b7d21b355e4a35fcf47b4db7a3b0315b6219d93733db42392bd9 kvazaar-1.2.0.tar.gz sha256 531712277c3543b9ee86c4c4e0e424f531b893a44cc021c74a24b038d8de4d2a COPYING ================================================ FILE: package/kvazaar/kvazaar.mk ================================================ ################################################################################ # # kvazaar # ################################################################################ KVAZAAR_VERSION = 1.2.0 KVAZAAR_SITE = $(call github,ultravideo,kvazaar,v$(KVAZAAR_VERSION)) KVAZAAR_LICENSE = LGPL-2.1+ KVAZAAR_LICENSE_FILES = COPYING KVAZAAR_AUTORECONF = YES KVAZAAR_INSTALL_STAGING = YES KVAZAAR_DEPENDENCIES = host-pkgconf KVAZAAR_CONF_OPTS = --without-cryptopp $(eval $(autotools-package)) ================================================ FILE: package/kvm-unit-tests/0001-Makefile-remove-Werror-to-avoid-build-failures.patch ================================================ From 08e14a662b9e75daec29722e49150869952ba1b6 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Mon, 20 Nov 2017 22:09:39 +0100 Subject: [PATCH] Makefile: remove -Werror to avoid build failures Signed-off-by: Thomas Petazzoni [Matthew: Refactoring of Thomas Petazzoni's original.] Signed-off-by: Matthew Weber --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 7231334..d9ad42b 100644 --- a/Makefile +++ b/Makefile @@ -53,7 +53,6 @@ cc-option = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null \ COMMON_CFLAGS += -g $(autodepend-flags) COMMON_CFLAGS += -Wall -Wwrite-strings -Wclobbered -Wempty-body -Wuninitialized COMMON_CFLAGS += -Wignored-qualifiers -Wunused-but-set-parameter -COMMON_CFLAGS += -Werror frame-pointer-flag=-f$(if $(KEEP_FRAME_POINTER),no-,)omit-frame-pointer fomit_frame_pointer := $(call cc-option, $(frame-pointer-flag), "") fnostack_protector := $(call cc-option, -fno-stack-protector, "") -- 2.14.2 ================================================ FILE: package/kvm-unit-tests/0002-kvm-unit-tests-test-for-rdseed-rdrand.patch ================================================ From 8d9a62a5fa89001266352a929c5d40b28c0dda85 Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Fri, 12 Jan 2018 19:07:27 -0600 Subject: [PATCH v2] kvm-unit-tests: test for rdseed/rdrand The build fails when the host binutils isn't at least 2.23 (2.22.x introduced RDSEED). Fixes: http://autobuild.buildroot.net/results/c39/c3987a3cbd2960b0ff50f872636bdfd8d1a9c820/ Upstream: https://marc.info/?l=kvm&m=151580743523259&w=2 Signed-off-by: Matthew Weber --- Makefile | 2 +- configure | 18 ++++++++++++++++++ x86/vmx_tests.c | 6 ++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d9ad42b..799e9b5 100644 --- a/Makefile +++ b/Makefile @@ -50,7 +50,7 @@ include $(SRCDIR)/$(TEST_DIR)/Makefile cc-option = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null \ > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;) -COMMON_CFLAGS += -g $(autodepend-flags) +COMMON_CFLAGS += -g $(autodepend-flags) $(EXTRA_CFLAGS) COMMON_CFLAGS += -Wall -Wwrite-strings -Wclobbered -Wempty-body -Wuninitialized COMMON_CFLAGS += -Wignored-qualifiers -Wunused-but-set-parameter frame-pointer-flag=-f$(if $(KEEP_FRAME_POINTER),no-,)omit-frame-pointer diff --git a/configure b/configure index dd9d361..21c0219 100755 --- a/configure +++ b/configure @@ -171,6 +171,23 @@ mkdir -p lib ln -sf "$asm" lib/asm +cat > rd_test.c < +int main() { + uint16_t seed=0; + unsigned char ok; + asm volatile ("rdseed %0; setc %1" + : "=r" (seed), "=qm" (ok)); + return ok; +} +EOF +if $cross_prefix$cc -o /dev/null rd_test.c &> /dev/null; then + echo "Checking for rdseed/rdrand... Yes." +else + echo "Checking for rdseed/rdrand... No." + extra_cflags="-DNO_RDSEEDRAND" +fi + # create the config cat < config.mak SRCDIR=$srcdir @@ -181,6 +198,7 @@ ARCH_NAME=$arch_name PROCESSOR=$processor CC=$cross_prefix$cc CXX=$cross_prefix$cxx +EXTRA_CFLAGS=$extra_cflags LD=$cross_prefix$ld OBJCOPY=$cross_prefix$objcopy OBJDUMP=$cross_prefix$objdump diff --git a/x86/vmx_tests.c b/x86/vmx_tests.c index 4a3e94b..2cbe3eb 100644 --- a/x86/vmx_tests.c +++ b/x86/vmx_tests.c @@ -770,8 +770,10 @@ asm( "insn_sldt: sldt %ax;ret\n\t" "insn_lldt: xor %eax, %eax; lldt %ax;ret\n\t" "insn_str: str %ax;ret\n\t" +#ifndef NO_RDSEEDRAND "insn_rdrand: rdrand %rax;ret\n\t" "insn_rdseed: rdseed %rax;ret\n\t" +#endif ); extern void insn_hlt(); extern void insn_invlpg(); @@ -796,8 +798,10 @@ extern void insn_lldt(); extern void insn_str(); extern void insn_cpuid(); extern void insn_invd(); +#ifndef NO_RDSEEDRAND extern void insn_rdrand(); extern void insn_rdseed(); +#endif u32 cur_insn; u64 cr3; @@ -853,8 +857,10 @@ static struct insn_table insn_table[] = { {"DESC_TABLE (LLDT)", CPU_DESC_TABLE, insn_lldt, INSN_CPU1, 47, 0, 0, 0}, {"DESC_TABLE (STR)", CPU_DESC_TABLE, insn_str, INSN_CPU1, 47, 0, 0, 0}, /* LTR causes a #GP if done with a busy selector, so it is not tested. */ +#ifndef NO_RDSEEDRAND {"RDRAND", CPU_RDRAND, insn_rdrand, INSN_CPU1, VMX_RDRAND, 0, 0, 0}, {"RDSEED", CPU_RDSEED, insn_rdseed, INSN_CPU1, VMX_RDSEED, 0, 0, 0}, +#endif // Instructions always trap {"CPUID", 0, insn_cpuid, INSN_ALWAYS_TRAP, 10, 0, 0, 0}, {"INVD", 0, insn_invd, INSN_ALWAYS_TRAP, 13, 0, 0, 0}, -- 1.9.1 ================================================ FILE: package/kvm-unit-tests/0003-Makefile-fix-stack-protector-tests.patch ================================================ From 9bf9155804652c0b3a94af9723c79b6de430187b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 24 Feb 2020 00:04:06 +0100 Subject: [PATCH] Makefile: fix stack-protector tests Rename fnostack_protector into fno_stack_protector and fnostack_protector_all into fnostack_protector_all otherwise build will fail if -fstack-protector is passed by the toolchain Fixes: - http://autobuild.buildroot.org/results/ad689b08173548af21dd1fb0e827fd561de6dfef Signed-off-by: Fabrice Fontaine [Upstream status: sent to kvm@vger.kernel.org] --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 767b6c6..754ed65 100644 --- a/Makefile +++ b/Makefile @@ -55,8 +55,8 @@ COMMON_CFLAGS += -Wignored-qualifiers -Werror frame-pointer-flag=-f$(if $(KEEP_FRAME_POINTER),no-,)omit-frame-pointer fomit_frame_pointer := $(call cc-option, $(frame-pointer-flag), "") -fnostack_protector := $(call cc-option, -fno-stack-protector, "") -fnostack_protector_all := $(call cc-option, -fno-stack-protector-all, "") +fno_stack_protector := $(call cc-option, -fno-stack-protector, "") +fno_stack_protector_all := $(call cc-option, -fno-stack-protector-all, "") wno_frame_address := $(call cc-option, -Wno-frame-address, "") fno_pic := $(call cc-option, -fno-pic, "") no_pie := $(call cc-option, -no-pie, "") -- 2.25.0 ================================================ FILE: package/kvm-unit-tests/0004-Fix-powerpc-issue-with-the-linker-from-Fedora-32.patch ================================================ From 5126732d73aa75a0bc84f898042bfe35640624b8 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Wed, 13 May 2020 13:14:46 +0200 Subject: [PATCH] Fix powerpc issue with the linker from Fedora 32 The linker from Fedora 32 complains: powerpc64-linux-gnu-ld: powerpc/selftest.elf: error: PHDR segment not covered by LOAD segment Let's introduce some fake PHDRs to the linker script to get this working again. Message-Id: <20200514192626.9950-7-thuth@redhat.com> Signed-off-by: Thomas Huth Signed-off-by: Matthew Weber --- powerpc/flat.lds | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/powerpc/flat.lds b/powerpc/flat.lds index 53221e8..5eed368 100644 --- a/powerpc/flat.lds +++ b/powerpc/flat.lds @@ -1,7 +1,17 @@ +PHDRS +{ + text PT_LOAD FLAGS(5); + data PT_LOAD FLAGS(6); +} + SECTIONS { - .text : { *(.init) *(.text) *(.text.*) } + .text : { + *(.init) + *(.text) + *(.text.*) + } :text . = ALIGN(64K); etext = .; .opd : { *(.opd) } @@ -19,9 +29,12 @@ SECTIONS .data : { *(.data) *(.data.rel*) - } + } :data . = ALIGN(16); - .rodata : { *(.rodata) *(.rodata.*) } + .rodata : { + *(.rodata) + *(.rodata.*) + } :data . = ALIGN(16); .bss : { *(.bss) } . = ALIGN(256); -- 2.17.1 ================================================ FILE: package/kvm-unit-tests/Config.in ================================================ config BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS bool # On ARM, it uses virtualization extensions default y if BR2_cortex_a7 || BR2_cortex_a12 || \ BR2_cortex_a15 || BR2_cortex_a15_a7 || \ BR2_cortex_a17 || BR2_cortex_a17_a7 default y if BR2_i386 || BR2_x86_64 default y if BR2_powerpc64 || BR2_powerpc64le config BR2_PACKAGE_KVM_UNIT_TESTS bool "kvm-unit-tests" depends on BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS # on i386 and x86-64, __builtin_reachable is used, so we need # gcc 4.5 at least. on i386, we use the target gcc, while on # x86-64 we use the host gcc (see .mk file for details) depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || !BR2_i386 depends on BR2_HOSTARCH = "x86_64" || !BR2_x86_64 select BR2_HOSTARCH_NEEDS_IA32_COMPILER if BR2_x86_64=y help kvm-unit-tests is a project as old as KVM. As its name suggests, it's purpose is to provide unit tests for KVM. The unit tests are tiny guest operating systems that generally execute only tens of lines of C and assembler test code in order to obtain its PASS/FAIL result. Unit tests provide KVM and virt hardware functional testing by targeting the features through minimal implementations of their use per the hardware specification. The simplicity of unit tests make them easy to verify they are correct, easy to maintain, and easy to use in timing measurements. Unit tests are also often used for quick and dirty bug reproducers. The reproducers may then be kept as regression tests. It's strongly encouraged that patches implementing new KVM features are submitted with accompanying unit tests. http://www.linux-kvm.org/page/KVM-unit-tests comment "kvm-unit-tests needs a toolchain w/ gcc >= 4.5" depends on BR2_i386 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 ================================================ FILE: package/kvm-unit-tests/kvm-unit-tests.hash ================================================ # Locally computed sha256 e476443cd76c8f540734e075b419638b2f200ae002986d6fc14076d410f3751e kvm-unit-tests-kvm-unit-tests-20171020-br1.tar.gz sha256 d9bbb60891710d248f01c8bdac50ef7ad39188de512610437872e83112b38a1b COPYRIGHT ================================================ FILE: package/kvm-unit-tests/kvm-unit-tests.mk ================================================ ################################################################################ # # kvm-unit-tests # ################################################################################ KVM_UNIT_TESTS_VERSION = kvm-unit-tests-20171020 KVM_UNIT_TESTS_SITE = https://git.kernel.org/pub/scm/virt/kvm/kvm-unit-tests.git KVM_UNIT_TESTS_SITE_METHOD = git KVM_UNIT_TESTS_LICENSE = LGPL-2.0 KVM_UNIT_TESTS_LICENSE_FILES = COPYRIGHT ifeq ($(BR2_arm),y) KVM_UNIT_TESTS_ARCH = arm else ifeq ($(BR2_i386),y) KVM_UNIT_TESTS_ARCH = i386 else ifeq ($(BR2_powerpc64)$(BR2_powerpc64le),y) KVM_UNIT_TESTS_ARCH = ppc64 else ifeq ($(BR2_x86_64),y) KVM_UNIT_TESTS_ARCH = x86_64 endif ifeq ($(BR2_ENDIAN),"LITTLE") KVM_UNIT_TESTS_ENDIAN = little else KVM_UNIT_TESTS_ENDIAN = big endif KVM_UNIT_TESTS_CONF_OPTS =\ --arch="$(KVM_UNIT_TESTS_ARCH)" \ --processor="$(GCC_TARGET_CPU)" \ --endian="$(KVM_UNIT_TESTS_ENDIAN)" # For all architectures but x86-64, we use the target # compiler. However, for x86-64, we use the host compiler, as # kvm-unit-tests builds 32 bit code, which Buildroot toolchains for # x86-64 cannot do. ifeq ($(BR2_x86_64),) KVM_UNIT_TESTS_CONF_OPTS += --cross-prefix="$(TARGET_CROSS)" endif define KVM_UNIT_TESTS_CONFIGURE_CMDS cd $(@D) && ./configure $(KVM_UNIT_TESTS_CONF_OPTS) endef define KVM_UNIT_TESTS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(KVM_UNIT_TESTS_MAKE_OPTS) -C $(@D) \ standalone endef define KVM_UNIT_TESTS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(KVM_UNIT_TESTS_MAKE_OPTS) -C $(@D) \ DESTDIR=$(TARGET_DIR)/usr/share/kvm-unit-tests/ \ install endef # Does use configure script but not an autotools one $(eval $(generic-package)) ================================================ FILE: package/kvmtool/Config.in ================================================ config BR2_PACKAGE_KVMTOOL bool "kvmtool" depends on BR2_USE_MMU # guest simple init fork() # No MADV_HUGEPAGE define in uClibc(-ng) depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) # Only mips big-endian seems to be supported (build breaks) # Should work on powerpc64 but the build breaks with missing types depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 || \ BR2_mips || BR2_x86_64 # libfdt is only required for DT architectures... # ...but it's not able to build for static targets depends on !(BR2_STATIC_LIBS && (BR2_aarch64 || BR2_arm || BR2_armeb)) select BR2_PACKAGE_DTC if BR2_aarch64 || BR2_arm || BR2_armeb help kvmtool is a lightweight tool for hosting KVM guests. As a pure virtualization tool it only supports guests using the same architecture, though it supports running 32-bit guests on those 64-bit architectures that allow this. https://git.kernel.org/cgit/linux/kernel/git/will/kvmtool.git/tree/README 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 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) || \ BR2_STATIC_LIBS ================================================ FILE: package/kvmtool/kvmtool.hash ================================================ # Locally computed sha256 e2eb2cd8b31d24484e3095923cfe8c36d4b92741b76965cafaed6be3835369c6 kvmtool-f77d646ba01d04be5aad9449ac00719c043fe36e-br1.tar.gz sha256 0d5bf346df9e635a29dcdddf832dc5b002ca6cdc1c5c9c6c567d2a61bb0c5c15 COPYING ================================================ FILE: package/kvmtool/kvmtool.mk ================================================ ################################################################################ # # kvmtool # ################################################################################ KVMTOOL_VERSION = f77d646ba01d04be5aad9449ac00719c043fe36e KVMTOOL_SITE = https://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git KVMTOOL_SITE_METHOD = git KVMTOOL_DEPENDENCIES = \ $(if $(BR2_PACKAGE_BINUTILS),binutils) \ $(if $(BR2_PACKAGE_DTC),dtc) \ $(if $(BR2_PACKAGE_LIBAIO),libaio) \ $(if $(BR2_PACKAGE_LIBGTK3),libgtk3) \ $(if $(BR2_PACKAGE_LIBVNCSERVER),libvncserver) \ $(if $(BR2_PACKAGE_SDL),sdl) \ $(if $(BR2_PACKAGE_ZLIB),zlib) KVMTOOL_LICENSE = GPL-2.0 KVMTOOL_LICENSE_FILES = COPYING # Disable -Werror, otherwise musl is not happy KVMTOOL_MAKE_OPTS = \ CROSS_COMPILE="$(TARGET_CROSS)" \ LDFLAGS="$(TARGET_LDFLAGS) $(KVMTOOL_EXTRA_LDFLAGS)" \ WERROR=0 define KVMTOOL_BUILD_CMDS $(TARGET_MAKE_ENV) ARCH=$(KERNEL_ARCH) $(MAKE) -C $(@D) $(KVMTOOL_MAKE_OPTS) endef define KVMTOOL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) ARCH=$(KERNEL_ARCH) $(MAKE) -C $(@D) \ $(KVMTOOL_MAKE_OPTS) install DESTDIR=$(TARGET_DIR) prefix=/usr endef $(eval $(generic-package)) ================================================ FILE: package/kyua/Config.in ================================================ config BR2_PACKAGE_KYUA bool "kyua" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_HAS_LUAINTERPRETER # lutok depends on !BR2_PACKAGE_LUAJIT # lutok depends on !BR2_STATIC_LIBS # lutok depends on BR2_USE_MMU # atf select BR2_PACKAGE_ATF select BR2_PACKAGE_LUTOK select BR2_PACKAGE_SQLITE help Kyua is a testing framework for infrastructure software, originally designed to equip BSD-based operating systems with a test suite. This means that Kyua is lightweight and simple, and that Kyua integrates well with various build systems and continuous integration frameworks. https://github.com/jmmv/kyua comment "kyua needs a toolchain w/ C++, dynamic library and full Lua" depends on !BR2_INSTALL_LIBSTDCPP || BR2_PACKAGE_LUAJIT || BR2_STATIC_LIBS depends on BR2_PACKAGE_HAS_LUAINTERPRETER depends on BR2_USE_MMU ================================================ FILE: package/kyua/kyua.hash ================================================ # Locally calculated sha256 db6e5d341d5cf7e49e50aa361243e19087a00ba33742b0855d2685c0b8e721d6 kyua-0.13.tar.gz sha256 a6a8f43f6d2ed9b801978cc012cc816c4a9421a6dcea0579d3a40eab4b349674 LICENSE ================================================ FILE: package/kyua/kyua.mk ================================================ ################################################################################ # # kyua # ################################################################################ KYUA_VERSION = 0.13 KYUA_SITE = https://github.com/jmmv/kyua/releases/download/kyua-$(KYUA_VERSION) KYUA_DEPENDENCIES = host-pkgconf atf lutok sqlite KYUA_CONF_OPTS = --without-doxygen --without-atf KYUA_LICENSE = BSD-3-Clause KYUA_LICENSE_FILES = LICENSE KYUA_CONF_ENV = \ kyua_cv_attribute_noreturn=yes \ kyua_cv_getcwd_dyn=yes \ kyua_cv_lchmod_works=no \ kyua_cv_getopt_gnu=yes \ kyua_cv_getopt_optind_reset_value=0 \ kyua_cv_signals_lastno=15 define KYUA_INSTALL_CONFIG $(INSTALL) -D -m 644 $(@D)/examples/kyua.conf $(TARGET_DIR)/etc/kyua/kyua.conf endef KYUA_POST_INSTALL_HOOKS += KYUA_INSTALL_CONFIG $(eval $(autotools-package)) ================================================ FILE: package/lame/Config.in ================================================ config BR2_PACKAGE_LAME bool "lame" help LAME is a high quality MPEG Audio Layer III (MP3) encoder. http://lame.sourceforge.net/ ================================================ FILE: package/lame/lame.hash ================================================ # Locally computed: sha256 ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e lame-3.100.tar.gz sha256 bfe4a52dc4645385f356a8e83cc54216a293e3b6f1cb4f79f5fc0277abf937fd COPYING ================================================ FILE: package/lame/lame.mk ================================================ ################################################################################ # # lame # ################################################################################ LAME_VERSION = 3.100 LAME_SITE = http://downloads.sourceforge.net/project/lame/lame/$(LAME_VERSION) LAME_DEPENDENCIES = host-pkgconf LAME_INSTALL_STAGING = YES LAME_CONF_ENV = GTK_CONFIG=/bin/false LAME_CONF_OPTS = --enable-dynamic-frontends LAME_LICENSE = LGPL-2.0+ LAME_LICENSE_FILES = COPYING LAME_CPE_ID_VENDOR = lame_project ifeq ($(BR2_PACKAGE_LIBSNDFILE),y) LAME_DEPENDENCIES += libsndfile LAME_CONF_OPTS += --with-fileio=sndfile endif ifeq ($(BR2_PACKAGE_NCURSES),y) LAME_DEPENDENCIES += ncurses endif ifeq ($(BR2_ENDIAN),"BIG") define LAME_BIGENDIAN_ARCH echo "#define WORDS_BIGENDIAN 1" >>$(@D)/config.h endef endif LAME_POST_CONFIGURE_HOOKS += LAME_BIGENDIAN_ARCH $(eval $(autotools-package)) ================================================ FILE: package/lan951x-led-ctl/0001-fix-cross-compile.patch ================================================ diff -uNr lan951x-led-ctl-master/Makefile lan951x-led-ctl-fix/Makefile --- lan951x-led-ctl-master/Makefile 2017-02-11 22:50:52.000000000 +0200 +++ lan951x-led-ctl-fix/Makefile 2018-06-24 23:45:57.925879678 +0300 @@ -1,12 +1,12 @@ -ECHO = /bin/echo -e -SHELL = /bin/sh -RM = /bin/rm -f -CC = gcc -STRIP = strip +ECHO ?= /bin/echo -e +SHELL ?= /bin/sh +RM ?= /bin/rm -f +CC ?= gcc +STRIP ?= strip -CFLAGS = -g -Os -std=c11 -I./include -Wall -Wstrict-prototypes -Wconversion +CFLAGS ?= -g -Os -std=c11 -I./include -Wall -Wstrict-prototypes -Wconversion CFLAGS += -Wmissing-prototypes -Wshadow -Wextra -Wunused -LDFLAGS = -lusb-1.0 +LDFLAGS += -lusb-1.0 PROGS = lan951x-led-ctl ================================================ FILE: package/lan951x-led-ctl/Config.in ================================================ config BR2_PACKAGE_LAN951X_LED_CTL bool "lan951x-led-ctl" ================================================ FILE: package/lan951x-led-ctl/lan951x-led-ctl.mk ================================================ LAN951X_LED_CTL_VERSION = 0291b91702f5742fa56aa5e0942c28261777de7c LAN951X_LED_CTL_SITE = $(call github,dumpsite,lan951x-led-ctl,$(LAN951X_LED_CTL_VERSION)) LAN951X_LED_CTL_DEPENDENCIES = libusb define LAN951X_LED_CTL_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) CFLAGS="$(TARGET_CLFAGS) -Iinclude -std=c99" endef define LAN951X_LED_CTL_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/lan951x-led-ctl $(TARGET_DIR)/usr/bin/lan951x-led-ctl endef $(eval $(generic-package)) ================================================ FILE: package/lapack/Config.in ================================================ config BR2_PACKAGE_LAPACK_ARCH_SUPPORTS bool default y # _fpu_control is used on PowerPC, but not available with # uClibc or musl depends on !BR2_powerpc || BR2_TOOLCHAIN_USES_GLIBC comment "lapack/blas needs a glibc toolchain" depends on BR2_powerpc depends on !BR2_TOOLCHAIN_USES_GLIBC comment "lapack/blas needs a toolchain w/ fortran" depends on BR2_PACKAGE_LAPACK_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_FORTRAN config BR2_PACKAGE_LAPACK bool "lapack/blas" depends on BR2_PACKAGE_LAPACK_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_FORTRAN 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" default y depends on BR2_PACKAGE_LAPACK help Builds support for COMPLEX and COMPLEX16 data types. ================================================ FILE: package/lapack/lapack.hash ================================================ # Locally computed: sha256 106087f1bb5f46afdfba7f569d0cbe23dacb9a07cd24733765a0e89dbe1ad573 lapack-3.9.0.tar.gz sha256 d56bd4441b999b80c88df04faf0d8b3d7d3b2bd781cf91242c4188e8a6d0f8be LICENSE ================================================ FILE: package/lapack/lapack.mk ================================================ ################################################################################ # # lapack # ################################################################################ LAPACK_VERSION = 3.9.0 LAPACK_LICENSE = BSD-3-Clause LAPACK_LICENSE_FILES = LICENSE LAPACK_SITE = $(call github,Reference-LAPACK,lapack,v$(LAPACK_VERSION)) LAPACK_INSTALL_STAGING = YES LAPACK_SUPPORTS_IN_SOURCE_BUILD = NO 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)) ================================================ FILE: package/latencytop/0001-makefile.patch ================================================ Usee $(CC) to enable cross compiling and link to the right ncurses library. Signed-off-by: Qais Yousef --- latencytop-0.5/Makefile.old 2012-04-18 11:59:39.748084334 +0100 +++ latencytop-0.5/Makefile 2012-04-18 12:00:08.659112340 +0100 @@ -4,7 +4,7 @@ DESTDIR = SBINDIR = /usr/sbin XCFLAGS = -W -g `pkg-config --cflags glib-2.0` -D_FORTIFY_SOURCE=2 -Wno-sign-compare -LDF = -Wl,--as-needed `pkg-config --libs glib-2.0` -lncursesw +LDF = -Wl,--as-needed `pkg-config --libs glib-2.0` -lncurses OBJS= latencytop.o text_display.o translate.o fsync.o @@ -26,10 +26,10 @@ # We write explicity this "implicit rule" %.o : %.c - gcc -c $(CFLAGS) $(XCFLAGS) $< -o $@ + $(CC) -c $(CFLAGS) $(XCFLAGS) $< -o $@ latencytop: $(OBJS) latencytop.h Makefile - gcc $(CFLAGS) $(OBJS) $(LDF) -o latencytop + $(CC) $(CFLAGS) $(OBJS) $(LDF) -o latencytop clean: rm -f *~ latencytop DEADJOE *.o ================================================ FILE: package/latencytop/Config.in ================================================ config BR2_PACKAGE_LATENCYTOP bool "latencytop" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_NCURSES select BR2_PACKAGE_LIBGLIB2 help There are many types and causes of latency. LatencyTOP focuses on the type of latency that causes skips in audio, stutters in your desktop experience or that overloads your server (while you have plenty of CPU power left). LatencyTOP focuses on the cases where the applications want to run and execute useful code, but there's some resource that's not currently available (and the kernel then blocks the process). This is done both on a system level and on a per process level, so that you can see what's happening to the system, and which process is suffering and/or causing the delays. http://www.latencytop.org comment "latencytop needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/latencytop/latencytop.hash ================================================ # locally computed sha256 9e7f72fbea7bd918e71212a1eabaad8488d2c602205d2e3c95d62cd57e9203ef latencytop-0.5.tar.gz sha256 34d1db30ab21eaedb2c191b2787632a960090a0c63da9f5b481d84b23b98c438 latencytop.c ================================================ FILE: package/latencytop/latencytop.mk ================================================ ################################################################################ # # latencytop # ################################################################################ LATENCYTOP_VERSION = 0.5 LATENCYTOP_SITE = http://www.latencytop.org/download LATENCYTOP_DEPENDENCIES = libglib2 ncurses LATENCYTOP_LICENSE = GPL-2.0 LATENCYTOP_LICENSE_FILES = latencytop.c # NOTE: GTK is heavy weight, we intentionally build the text (ncurses) # version only define LATENCYTOP_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) HAS_GTK_GUI= endef define LATENCYTOP_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) install -C $(@D) DESTDIR=$(TARGET_DIR) HAS_GTK_GUI= endef $(eval $(generic-package)) ================================================ FILE: package/lbase64/0001-retro-compatible-with-Lua-5.1.patch ================================================ retro compatible with Lua 5.1 C/API Signed-off-by: Francois Perrad Index: b/lbase64.c =================================================================== --- a/lbase64.c +++ b/lbase64.c @@ -111,7 +111,11 @@ LUALIB_API int luaopen_base64(lua_State *L) { +#if LUA_VERSION_NUM >= 502 luaL_newlib(L,R); +#else + luaL_register(L,MYNAME,R); +#endif lua_pushliteral(L,"version"); /** version */ lua_pushliteral(L,MYVERSION); lua_settable(L,-3); ================================================ FILE: package/lbase64/Config.in ================================================ config BR2_PACKAGE_LBASE64 bool "lbase64" help A base64 library for Lua http://webserver2.tecgraf.puc-rio.br/~lhf/ftp/lua/#lbase64 ================================================ FILE: package/lbase64/lbase64.hash ================================================ # Locally calculated sha256 b83dbc87330a322e5222cd891a6e258b533f5b6c46e8f3c18fc0265e4c991aaa lbase64.tar.gz sha256 a2b4f2d25b56c40801ce4f403541cbc301313048acfaa59c9509024bec57b662 README ================================================ FILE: package/lbase64/lbase64.mk ================================================ ################################################################################ # # lbase64 # ################################################################################ LBASE64_VERSION = 20120820 LBASE64_SITE = http://webserver2.tecgraf.puc-rio.br/~lhf/ftp/lua/5.3 LBASE64_SOURCE = lbase64.tar.gz LBASE64_LICENSE = Public domain LBASE64_LICENSE_FILES = README LBASE64_DEPENDENCIES = luainterpreter define LBASE64_BUILD_CMDS $(MAKE1) $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS) -fPIC" -C $(@D) so endef define LBASE64_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/base64.so \ $(TARGET_DIR)/usr/lib/lua/$(LUAINTERPRETER_ABIVER)/base64.so endef $(eval $(generic-package)) ================================================ FILE: package/lbreakout2/Config.in ================================================ config BR2_PACKAGE_LBREAKOUT2 bool "LBreakout2" select BR2_PACKAGE_SDL select BR2_PACKAGE_LIBPNG help LBreakout2 is the successor to LBreakout, a breakout-style arcade game in the manner of Arkanoid. Requires SDL, libpng, and optionnally SDL_mixer/SDL_net. A display with minimum 640x480 resolution, a keyboard and a mouse are recommanded. http://lgames.sourceforge.net/index.php?project=LBreakout2 if BR2_PACKAGE_LBREAKOUT2 config BR2_PACKAGE_LBREAKOUT2_AUDIO bool "audio support" default y select BR2_PACKAGE_SDL_MIXER help Activates audio support in LBreakout2. Will add SDL_mixer. config BR2_PACKAGE_LBREAKOUT2_NET bool "network support" default y select BR2_PACKAGE_SDL_NET help Activates network support LBreakout2. Will add SDL_net. endif ================================================ FILE: package/lbreakout2/lbreakout2.hash ================================================ # From https://sourceforge.net/projects/lgames/files/lbreakout2/2.6/ md5 1a9238b83f9f13f09b7a4d53e00b4e84 lbreakout2-2.6.5.tar.gz sha1 d92326499165fd368be04378d633e13d42b4d2d7 lbreakout2-2.6.5.tar.gz # Locally computed: sha256 9104d6175553da3442dc6a5fc407a669e2f5aff3eedc5d30409eb003b7a78d6f lbreakout2-2.6.5.tar.gz sha256 67f82e045cf7acfef853ea0f426575a8359161a0a325e19f02b529a87c4b6c34 COPYING ================================================ FILE: package/lbreakout2/lbreakout2.mk ================================================ ################################################################################ # # lbreakout2 # ################################################################################ LBREAKOUT2_VERSION_MAJOR = 2.6 LBREAKOUT2_VERSION = $(LBREAKOUT2_VERSION_MAJOR).5 LBREAKOUT2_SITE = https://downloads.sourceforge.net/lgames/lbreakout2/$(LBREAKOUT2_VERSION_MAJOR) LBREAKOUT2_LICENSE = GPL-2.0+ LBREAKOUT2_LICENSE_FILES = COPYING LBREAKOUT2_DEPENDENCIES = sdl libpng $(TARGET_NLS_DEPENDENCIES) LBREAKOUT2_CONF_ENV = \ SDL_CONFIG="$(STAGING_DIR)/usr/bin/sdl-config" \ LIBS=$(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_LBREAKOUT2_AUDIO),y) LBREAKOUT2_DEPENDENCIES += sdl_mixer LBREAKOUT2_CONF_OPTS += --enable-audio=yes else LBREAKOUT2_CONF_OPTS += --disable-audio endif ifeq ($(BR2_PACKAGE_LBREAKOUT2_NET),y) LBREAKOUT2_DEPENDENCIES += sdl_net LBREAKOUT2_CONF_OPTS += --enable-network=yes else LBREAKOUT2_CONF_OPTS += --disable-network endif $(eval $(autotools-package)) ================================================ FILE: package/lcdapi/Config.in ================================================ config BR2_PACKAGE_LCDAPI bool "lcdapi" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS help C++ client API for lcdproc, containing a set of widget classes. https://github.com/spdawson/lcdapi comment "lcdapi needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/lcdapi/lcdapi.hash ================================================ # Locally computed sha256 6afdd4238af1fa7ea5f10378601381fc3f535a10504dc7d4ea8eab56e0dda091 lcdapi-0.11.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/lcdapi/lcdapi.mk ================================================ ################################################################################ # # lcdapi # ################################################################################ LCDAPI_VERSION = 0.11 LCDAPI_SITE = $(call github,spdawson,lcdapi,v$(LCDAPI_VERSION)) LCDAPI_LICENSE = LGPL-2.1+ LCDAPI_LICENSE_FILES = COPYING LCDAPI_AUTORECONF = YES LCDAPI_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/lcdproc/0001-LCDd.conf.patch ================================================ Fix the default LCDd configuration file, so that the DriverPath is set to the correct lcdproc library install path, rather than the dummy/default path. Signed-off-by: Simon Dawson --- --- lcdproc-0.5.3/LCDd.conf.orig 2009-06-20 14:48:34.000000000 +0100 +++ lcdproc-0.5.3/LCDd.conf 2010-05-11 10:02:21.000000000 +0100 @@ -34,7 +34,7 @@ # the driver modules and will thus not be able to # function properly. # NOTE: Always place a slash as last character ! -DriverPath=server/drivers/ +DriverPath=/usr/lib/lcdproc/ # Tells the server to load the given drivers. Multiple lines can be given. # The name of the driver is case sensitive and determines the section ================================================ FILE: package/lcdproc/0002-Add-missing-ioctl-header.patch ================================================ From 6267665454501512ac054202b38e4e6a72fa284b Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Fri, 8 Sep 2017 14:19:11 +0300 Subject: [PATCH] Add missing ioctl header The spidev.h header uses macros from linux/ioctl.h. Add this header explicitly since some libc, like musl, do not include it implicitly. This fixes the following build failure: In file included from .../sysroot/usr/include/sys/ioctl.h:7:0, from hd44780-spi.c:31: hd44780-spi.c: In function ‘spi_transfer’: hd44780-spi.c:89:24: error: ‘_IOC_SIZEBITS’ undeclared (first use in this function) status = ioctl(p->fd, SPI_IOC_MESSAGE(1), &xfer); ^ Signed-off-by: Baruch Siach --- Upstream status: https://github.com/lcdproc/lcdproc/pull/90 server/drivers/hd44780-pifacecad.c | 1 + server/drivers/hd44780-spi.c | 1 + 2 files changed, 2 insertions(+) diff --git a/server/drivers/hd44780-pifacecad.c b/server/drivers/hd44780-pifacecad.c index a73b9f9b1f82..55139124d852 100644 --- a/server/drivers/hd44780-pifacecad.c +++ b/server/drivers/hd44780-pifacecad.c @@ -54,6 +54,7 @@ #include #include #include +#include #include #include diff --git a/server/drivers/hd44780-spi.c b/server/drivers/hd44780-spi.c index 791156f87a26..74c85fb014aa 100644 --- a/server/drivers/hd44780-spi.c +++ b/server/drivers/hd44780-spi.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include -- 2.14.1 ================================================ FILE: package/lcdproc/0003-Fixcompilation-with-GCC-10-x.patch ================================================ From 084126b03f29b33ab3e657c66e8c6a439f27f8e1 Mon Sep 17 00:00:00 2001 From: Harald Geyer Date: Mon, 10 Feb 2020 13:15:10 +0100 Subject: [PATCH] Fix compilation with GCC >= 10.x Starting with GCC >= 10.x, -fno-common is used as default instead of -fcommon. This patch fixes the compilation. Closes: #148 Suggested-by: Conrad Kostecki Signed-off-by: Harald Geyer [Retrieved from: https://github.com/lcdproc/lcdproc/commit/084126b03f29b33ab3e657c66e8c6a439f27f8e1] Signed-off-by: Fabrice Fontaine --- clients/lcdproc/iface.c | 1 + clients/lcdproc/iface.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/clients/lcdproc/iface.c b/clients/lcdproc/iface.c index 40e50cb7..1ac355bd 100644 --- a/clients/lcdproc/iface.c +++ b/clients/lcdproc/iface.c @@ -32,6 +32,7 @@ #define UNSET_INT -1 #define UNSET_STR "\01" +IfaceInfo iface[MAX_INTERFACES]; static int iface_count = 0; /* number of interfaces */ static char unit_label[10] = "B"; /* default unit label is Bytes */ diff --git a/clients/lcdproc/iface.h b/clients/lcdproc/iface.h index cc6dbaaf..c1bd6b5b 100644 --- a/clients/lcdproc/iface.h +++ b/clients/lcdproc/iface.h @@ -18,7 +18,7 @@ /** max number of interfaces in multi-interface mode */ #define MAX_INTERFACES 3 -IfaceInfo iface[MAX_INTERFACES]; /* interface info */ +extern IfaceInfo iface[MAX_INTERFACES]; /* interface info */ /** Update screen content */ int iface_screen(int rep, int display, int *flags_ptr); ================================================ FILE: package/lcdproc/Config.in ================================================ comment "lcdproc needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_LCDPROC bool "lcdproc" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_NCURSES select BR2_PACKAGE_ZLIB help LCD display driver daemon and clients http://lcdproc.org/ if BR2_PACKAGE_LCDPROC config BR2_PACKAGE_LCDPROC_DRIVERS string "List of drivers to build" default "all" help Specify a comma-separated list of lcdproc drivers to be built config BR2_PACKAGE_LCDPROC_MENUS bool "Menu support" help Enable support for lcdproc menus endif ================================================ FILE: package/lcdproc/lcdproc.hash ================================================ # Locally computed: sha256 843007d377adc856529ed0c7c42c9a7563043f06b1b73add0372bba3a3029804 lcdproc-0.5.7.tar.gz sha256 d48a915496c96ff775b377d2222de3150ae5172bfb84a6ec9f9ceab962f97b83 lcdproc-0.5.9.tar.gz sha256 1b2a567f289f66a143c56353e7b3d4fa5862514a5e3c5cfdf8b02ee5e5aaa953 COPYING ================================================ FILE: package/lcdproc/lcdproc.mk ================================================ ################################################################################ # # lcdproc # ################################################################################ LCDPROC_VERSION = 0.5.9 LCDPROC_SITE = https://github.com/lcdproc/lcdproc/releases/download/v$(LCDPROC_VERSION) LCDPROC_LICENSE = GPL-2.0+ LCDPROC_LICENSE_FILES = COPYING LCDPROC_MAKE = $(MAKE1) LCDPROC_CONF_OPTS = --enable-drivers=$(BR2_PACKAGE_LCDPROC_DRIVERS) ifeq ($(BR2_PACKAGE_LCDPROC_MENUS),y) LCDPROC_CONF_OPTS += --enable-lcdproc-menus endif LCDPROC_DEPENDENCIES = freetype ncurses zlib LCDPROC_CONF_ENV += \ ac_cv_mtab_file=/etc/mtab \ ac_cv_path_FT2_CONFIG=$(STAGING_DIR)/usr/bin/freetype-config ifeq ($(BR2_PACKAGE_LIBPNG),y) LCDPROC_DEPENDENCIES += libpng LCDPROC_CONF_ENV += ac_cv_path__png_config=$(STAGING_DIR)/usr/bin/libpng-config LCDPROC_CONF_OPTS += --enable-libpng else LCDPROC_CONF_OPTS += --disable-libpng endif $(eval $(autotools-package)) ================================================ FILE: package/lcms2/Config.in ================================================ config BR2_PACKAGE_LCMS2 bool "lcms2" help Little Color Management Software (CMS) intends to be an OPEN SOURCE small-footprint color management engine, with special focus on accuracy and performance. It uses the International Color Consortium standard (ICC), which is the modern standard when regarding to color management. http://www.littlecms.com/ ================================================ FILE: package/lcms2/lcms2.hash ================================================ # From https://sourceforge.net/projects/lcms/files/lcms/2.12 sha1 3d0c0276fcd3930b80c424512ec0b1ed54ec1497 lcms2-2.12.tar.gz # Locally computed: sha256 18663985e864100455ac3e507625c438c3710354d85e5cbb7cd4043e11fe10f5 lcms2-2.12.tar.gz sha256 46d4e05af3bce75332a12d01f19bcce7e32b6bac544be28a64043d0231291e31 COPYING ================================================ FILE: package/lcms2/lcms2.mk ================================================ ################################################################################ # # lcms2 # ################################################################################ LCMS2_VERSION = 2.12 LCMS2_SITE = http://downloads.sourceforge.net/project/lcms/lcms/$(LCMS2_VERSION) LCMS2_LICENSE = MIT LCMS2_LICENSE_FILES = COPYING LCMS2_CPE_ID_VENDOR = littlecms LCMS2_CPE_ID_PRODUCT = little_cms LCMS2_INSTALL_STAGING = YES # tiff is only used by tificc sample LCMS2_CONF_OPTS = --without-tiff ifeq ($(BR2_PACKAGE_JPEG),y) LCMS2_CONF_OPTS += --with-jpeg LCMS2_DEPENDENCIES += jpeg else LCMS2_CONF_OPTS += --without-jpeg endif ifeq ($(BR2_PACKAGE_ZLIB),y) LCMS2_CONF_OPTS += --with-zlib LCMS2_DEPENDENCIES += zlib else LCMS2_CONF_OPTS += --without-zlib endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/leafnode2/0001-cross_makefile.patch ================================================ Fix cross-compilation issues - During target package compilation the host version of b_sortnl is needed. - Do not call a 'amiroot' program built for the target when cross-compiling. We're anyway not root, so simply remove the chown/chgrp dance. Signed-off-by: Bernd Kuhls Signed-off-by: Thomas Petazzoni Index: b/Makefile.in =================================================================== --- a/Makefile.in +++ b/Makefile.in @@ -1853,7 +1853,7 @@ configparam_data.c: $(srcdir)/config.table b_sortnl$(EXEEXT) genconfigparam_data.awk rm -f config.table.sorted - ./b_sortnl$(EXEEXT) <$(srcdir)/config.table >config.table.sorted + ./b_sortnl_host$(EXEEXT) <$(srcdir)/config.table >config.table.sorted $(AWK) -f $(srcdir)/genconfigparam_data.awk $@ \ || { rm -f $@ ; false ; } @@ -1868,13 +1868,7 @@ install-data-hook: $(INSTALL) -d -m 02770 $(DESTDIR)$(SPOOLDIR) $(INSTALL) -d -m 02770 $(DESTDIR)$(SPOOLDIR)/leaf.node - -./amiroot && chown $(RUNAS_USER) $(DESTDIR)$(SPOOLDIR) - -./amiroot && chown $(RUNAS_USER) $(DESTDIR)$(SPOOLDIR)/leaf.node - -./amiroot && chgrp $(RUNAS_GROUP) $(DESTDIR)$(SPOOLDIR) - -./amiroot && chgrp $(RUNAS_GROUP) $(DESTDIR)$(SPOOLDIR)/leaf.node rm -f $(DESTDIR)$(sbindir)/leafnode-version # now in $(bindir) - ./amiroot && p=$(DESTDIR)$(bindir)/newsq && chown 0 $$p \ - && chgrp $(RUNAS_GROUP) $$p && chmod 2111 $$p ; true @echo @echo "### If upgrading from leafnode before 1.6," @echo "### run: make update" ================================================ FILE: package/leafnode2/Config.in ================================================ config BR2_PACKAGE_LEAFNODE2 bool "leafnode2" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_PCRE help Leafnode-2 is a store-and-forward NNTP (or Usenet) proxy server designed for small sites with just a few active newsgroups. Leafnode-2 needs inetd, check chapter 14 of the documentation at: http://krusty.dt.e-technik.tu-dortmund.de/~ma/leafnode/beta/leafnode-readme.txt For example, you can add this line to inetd.conf: nntp stream tcp nowait news /usr/sbin/leafnode http://krusty.dt.e-technik.tu-dortmund.de/~ma/leafnode/beta ================================================ FILE: package/leafnode2/leafnode2.hash ================================================ # Locally calculated sha256 34eba2cbbb871b724c8d5dd402d1c358aeb21ba426beb5658e155ed0d7461075 leafnode-2.0.0.alpha20140727b.tar.bz2 sha256 59d37f745dc5a2d63a51dff344f4ad89f72e76f8c7b7d877f20880d838b1bec9 COPYING sha256 0c92246a9d3636e0aa6a244f6c481639b2e530fbbb25bc048ce7acd83e1fc5f6 COPYING.LGPL ================================================ FILE: package/leafnode2/leafnode2.mk ================================================ ################################################################################ # # leafnode2 # ################################################################################ LEAFNODE2_VERSION = 2.0.0.alpha20140727b LEAFNODE2_SOURCE = leafnode-$(LEAFNODE2_VERSION).tar.bz2 LEAFNODE2_SITE = http://krusty.dt.e-technik.tu-dortmund.de/~ma/leafnode/beta LEAFNODE2_LICENSE = LGPL-2.1 LEAFNODE2_LICENSE_FILES = COPYING COPYING.LGPL LEAFNODE2_DEPENDENCIES = host-pcre pcre LEAFNODE2_CONF_ENV = \ PCRECONFIG="$(STAGING_DIR)/usr/bin/pcre-config" # --enable-runas-user use 'news' as default but the configure stop # if news doesn't exist on the build host. # Use 'root' while cross-compiling LEAFNODE2_CONF_OPTS = \ --sysconfdir=/etc/leafnode2 \ --enable-spooldir=/var/spool/news \ --enable-runas-user=root # Leafnode2 needs the host version of b_sortnl during # compilation. Instead of creating a seperate host package and # installing b_sortnl to $(HOST_DIR) this binary is compiled # on-the-fly, host-pcre is needed for this define LEAFNODE2_BUILD_SORTNL_TOOL cd $(@D); \ $(HOSTCC) $(HOST_CFLAGS) -o b_sortnl_host \ arc4random.c mergesort.c b_sortnl.c critmem_malloc.c \ critmem_realloc.c -DHAVE_CONFIG_H -I$(HOST_DIR)/include \ -L $(HOST_DIR)/lib -Wl,-rpath,$(HOST_DIR)/lib -lpcre endef LEAFNODE2_PRE_BUILD_HOOKS += LEAFNODE2_BUILD_SORTNL_TOOL define LEAFNODE2_USERS news -1 news -1 * - - - Leafnode2 daemon endef $(eval $(autotools-package)) ================================================ FILE: package/leafpad/Config.in ================================================ config BR2_PACKAGE_LEAFPAD bool "leafpad" depends on BR2_PACKAGE_LIBGTK2 help GTK+ based simple text editor http://savannah.nongnu.org/download/leafpad ================================================ FILE: package/leafpad/leafpad.hash ================================================ # Locally calculated after checking pgp signature sha256 959d22ae07f22803bc66ff40d373a854532a6e4732680bf8a96a3fbcb9f80a2c leafpad-0.8.18.1.tar.gz # Locally computed sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/leafpad/leafpad.mk ================================================ ################################################################################ # # leafpad # ################################################################################ LEAFPAD_VERSION = 0.8.18.1 LEAFPAD_SITE = http://savannah.nongnu.org/download/leafpad LEAFPAD_DEPENDENCIES = libgtk2 host-intltool LEAFPAD_LICENSE = GPL-2.0+ LEAFPAD_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/lensfun/Config.in ================================================ config BR2_PACKAGE_LENSFUN bool "lensfun" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 help Lensfun itself is only a library for correcting several artefacts and a database for storing lens profiles. To actually use Lensfun to process your images you need an image editing application with Lensfun support. http://lensfun.sourceforge.net if BR2_PACKAGE_LENSFUN config BR2_PACKAGE_LENSFUN_TOOLS bool "lensfun tools" select BR2_PACKAGE_LIBPNG help Build 'lenstool'. endif comment "lensfun needs a toolchain w/ C++, threads, wchar" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_USE_WCHAR ================================================ FILE: package/lensfun/lensfun.hash ================================================ # From https://sourceforge.net/projects/lensfun/files/0.3.2 sha1 1d978b15aa7304d66a4931fa37ca9f8f89396c16 lensfun-0.3.2.tar.gz md5 247e59a0812ec451f6cd0d20b3379cb5 lensfun-0.3.2.tar.gz # Locally calculated sha256 ae8bcad46614ca47f5bda65b00af4a257a9564a61725df9c74cb260da544d331 lensfun-0.3.2.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 docs/gpl-3.0.txt sha256 a853c2ffec17057872340eee242ae4d96cbf2b520ae27d903e1b2fef1a5f9d1c docs/lgpl-3.0.txt ================================================ FILE: package/lensfun/lensfun.mk ================================================ ################################################################################ # # lensfun # ################################################################################ LENSFUN_VERSION = 0.3.2 LENSFUN_SITE = https://sourceforge.net/projects/lensfun/files/$(LENSFUN_VERSION) LENSFUN_LICENSE = LGPL-3.0+ (libraries), GPL-3.0+ (programs) LENSFUN_LICENSE_FILES = docs/gpl-3.0.txt docs/lgpl-3.0.txt LENSFUN_INSTALL_STAGING = YES LENSFUN_DEPENDENCIES = libglib2 # lensfun doesn't support in source build, it fail to build lensfun tools. LENSFUN_SUPPORTS_IN_SOURCE_BUILD = NO ifeq ($(BR2_X86_CPU_HAS_SSE),y) LENSFUN_CONF_OPTS += -DBUILD_FOR_SSE=ON else LENSFUN_CONF_OPTS += -DBUILD_FOR_SSE=OFF endif ifeq ($(BR2_X86_CPU_HAS_SSE2),y) LENSFUN_CONF_OPTS += -DBUILD_FOR_SSE2=ON else LENSFUN_CONF_OPTS += -DBUILD_FOR_SSE2=OFF endif ifeq ($(BR2_PACKAGE_LENSFUN_TOOLS),y) LENSFUN_DEPENDENCIES += libpng LENSFUN_CONF_OPTS += -DBUILD_LENSTOOL=ON # broken else LENSFUN_CONF_OPTS += -DBUILD_LENSTOOL=OFF endif ifeq ($(BR2_STATIC_LIBS),y) LENSFUN_CONF_OPTS += -DBUILD_STATIC=ON else LENSFUN_CONF_OPTS += -DBUILD_STATIC=OFF endif # Don't install helper scripts (which require python3 and gksudo). # Don't run setup.py on the host. LENSFUN_CONF_OPTS += -DINSTALL_HELPER_SCRIPTS=OFF -DPYTHON=OFF $(eval $(cmake-package)) ================================================ FILE: package/leptonica/Config.in ================================================ config BR2_PACKAGE_LEPTONICA bool "leptonica" help Leptonica is an image processing and image analysis library. http://www.leptonica.org/ ================================================ FILE: package/leptonica/leptonica.hash ================================================ # locally computed hash sha256 155302ee914668c27b6fe3ca9ff2da63b245f6d62f3061c8f27563774b8ae2d6 leptonica-1.82.0.tar.gz sha256 87829abb5bbb00b55a107365da89e9a33f86c4250169e5a1e5588505be7d5806 leptonica-license.txt ================================================ FILE: package/leptonica/leptonica.mk ================================================ ################################################################################ # # leptonica # ################################################################################ LEPTONICA_VERSION = 1.82.0 LEPTONICA_SITE = http://www.leptonica.org/source LEPTONICA_LICENSE = BSD-2-Clause LEPTONICA_LICENSE_FILES = leptonica-license.txt LEPTONICA_CPE_ID_VENDOR = leptonica LEPTONICA_INSTALL_STAGING = YES LEPTONICA_DEPENDENCIES = host-pkgconf LEPTONICA_CONF_OPTS += --disable-programs ifeq ($(BR2_PACKAGE_GIFLIB),y) LEPTONICA_DEPENDENCIES += giflib LEPTONICA_CONF_OPTS += --with-giflib else LEPTONICA_CONF_OPTS += --without-giflib endif ifeq ($(BR2_PACKAGE_JPEG),y) LEPTONICA_DEPENDENCIES += jpeg LEPTONICA_CONF_OPTS += --with-jpeg else LEPTONICA_CONF_OPTS += --without-jpeg endif ifeq ($(BR2_PACKAGE_LIBPNG),y) LEPTONICA_DEPENDENCIES += libpng LEPTONICA_CONF_OPTS += --with-libpng else LEPTONICA_CONF_OPTS += --without-libpng endif ifeq ($(BR2_PACKAGE_OPENJPEG),y) LEPTONICA_DEPENDENCIES += openjpeg LEPTONICA_CONF_OPTS += --with-libopenjpeg else LEPTONICA_CONF_OPTS += --without-libopenjpeg endif ifeq ($(BR2_PACKAGE_TIFF),y) LEPTONICA_DEPENDENCIES += tiff LEPTONICA_CONF_OPTS += --with-libtiff else LEPTONICA_CONF_OPTS += --without-libtiff endif ifeq ($(BR2_PACKAGE_WEBP),y) LEPTONICA_DEPENDENCIES += webp LEPTONICA_CONF_OPTS += --with-libwebp ifeq ($(BR2_PACKAGE_WEBP_DEMUX)$(BR2_PACKAGE_WEBP_MUX),yy) LEPTONICA_CONF_OPTS += --with-libwebpmux else LEPTONICA_CONF_OPTS += --without-libwebpmux endif else LEPTONICA_CONF_OPTS += \ --without-libwebp \ --without-libwebpmux endif ifeq ($(BR2_PACKAGE_ZLIB),y) LEPTONICA_DEPENDENCIES += zlib LEPTONICA_CONF_OPTS += --with-zlib else LEPTONICA_CONF_OPTS += --without-zlib endif $(eval $(autotools-package)) ================================================ FILE: package/less/Config.in ================================================ config BR2_PACKAGE_LESS bool "less" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_NCURSES help Excellent text file viewer. http://www.greenwoodsoftware.com/ ================================================ FILE: package/less/less.hash ================================================ # Locally calculated after checking pgp signature # using DSA key F153A7C833235259 # http://www.greenwoodsoftware.com/less/less-590.sig sha256 6aadf54be8bf57d0e2999a3c5d67b1de63808bb90deb8f77b028eafae3a08e10 less-590.tar.gz # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/less/less.mk ================================================ ################################################################################ # # less # ################################################################################ LESS_VERSION = 590 LESS_SITE = http://www.greenwoodsoftware.com/less LESS_LICENSE = GPL-3.0+ LESS_LICENSE_FILES = COPYING LESS_CPE_ID_VENDOR = gnu LESS_DEPENDENCIES = ncurses define LESS_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 $(@D)/less $(TARGET_DIR)/usr/bin/less endef $(eval $(autotools-package)) ================================================ FILE: package/lesstif/Config.in ================================================ config BR2_PACKAGE_LESSTIF bool "lesstif" depends on BR2_USE_MMU # fork() depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_FREETYPE help lesstif is the Hungry Programmers' version of OSF/Motif http://lesstif.sourceforge.net/ ================================================ FILE: package/lesstif/lesstif.hash ================================================ # Locally computed: sha256 eb4aa38858c29a4a3bcf605cfe7d91ca41f4522d78d770f69721e6e3a4ecf7e3 lesstif-0.95.2.tar.bz2 sha256 94b03f1a60a7fd5007149530626a895a6ef5a8b9342abfd56860c5f3956f5d23 COPYING.LIB ================================================ FILE: package/lesstif/lesstif.mk ================================================ ################################################################################ # # lesstif # ################################################################################ LESSTIF_VERSION = 0.95.2 LESSTIF_SOURCE = lesstif-$(LESSTIF_VERSION).tar.bz2 LESSTIF_SITE = http://downloads.sourceforge.net/project/lesstif/lesstif/$(LESSTIF_VERSION) LESSTIF_INSTALL_STAGING = YES LESSTIF_DEPENDENCIES = \ xlib_libXt \ xlib_libXext \ freetype LESSTIF_LICENSE = LGPL-2.0+ LESSTIF_LICENSE_FILES = COPYING.LIB LESSTIF_CONF_OPTS = \ --with-gnu-ld \ --with-freetype-config=$(STAGING_DIR)/usr/bin/freetype-config \ --enable-production=yes \ --enable-build-tests=no \ --no-recursion # Reduces the buggy makefile to the smallest possible (and working) thing define LESSTIF_NOMAN2HTML echo "all:" > $(@D)/doc/Makefile echo "" >> $(@D)/doc/Makefile echo "install:" >> $(@D)/doc/Makefile echo "" >> $(@D)/doc/Makefile echo "clean:" >> $(@D)/doc/Makefile endef # Prevents to copy ac_find_motif.m4 on target, it would else # be created at $(TARGET_DIR)/$(HOST_DIR)/share/aclocal/ac_find_motif.m4 define LESSTIF_FIXACLOCAL sed -i -e "/install-data-am: install-aclocalDATA/d" $(@D)/scripts/autoconf/Makefile endef LESSTIF_POST_CONFIGURE_HOOKS += LESSTIF_NOMAN2HTML LESSTIF_POST_CONFIGURE_HOOKS += LESSTIF_FIXACLOCAL $(eval $(autotools-package)) ================================================ FILE: package/let-me-create/0001-fix-build-with-musl-C-library.patch ================================================ From 93fbc53a727a49dd5061e44e3156ff2044e6e0b5 Mon Sep 17 00:00:00 2001 From: Rahul Bedarkar Date: Tue, 1 Aug 2017 22:44:22 +0530 Subject: [PATCH] fix build with musl C library With musl C library, we get following build error: /home/buildroot/autobuild/run/instance-3/output/build/let-me-create-v1.5.2/src/core/spi.c: In function 'spi_transfer': /home/buildroot/autobuild/run/instance-3/output/build/let-me-create-v1.5.2/src/core/spi.c:170:19: error: '_IOC_SIZEBITS' undeclared (first use in this function) if (ioctl(fd, SPI_IOC_MESSAGE(1), &tr) < 0) { ^ /home/buildroot/autobuild/run/instance-3/output/build/let-me-create-v1.5.2/src/core/spi.c:170:19: note: each undeclared identifier is reported only once for each function it appears in Include for musl C library compatibility. This build issue is detected by Buildroot autobuilder: http://autobuild.buildroot.net/results/af9/af946fa6fe05ee265e4ac97742b15afeb0cea1ab/ Signed-off-by: Rahul Bedarkar rahulbedarkar89@gmail.com --- Upstream status: https://github.com/CreatorDev/LetMeCreate/pull/29 src/core/spi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core/spi.c b/src/core/spi.c index 4d55cee..9ec7ea9 100644 --- a/src/core/spi.c +++ b/src/core/spi.c @@ -1,4 +1,5 @@ #include +#include #include #include #include -- 2.7.4 ================================================ FILE: package/let-me-create/Config.in ================================================ comment "let-me-create needs a toolchain w/ C++, threads, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ || BR2_STATIC_LIBS config BR2_PACKAGE_LET_ME_CREATE bool "let-me-create" # build issues in static libs configuration # see https://github.com/CreatorDev/LetMeCreate/issues/28 depends on !BR2_STATIC_LIBS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS help This library is collection of small wrappers for some interfaces on the Creator Ci40 board. It aims at making easier to develop on this platform. It also provides wrappers for a few clicks. https://github.com/CreatorDev/LetMeCreate if BR2_PACKAGE_LET_ME_CREATE config BR2_PACKAGE_LET_ME_CREATE_EXAMPLES bool "Build and install examples" help Build and install examples endif ================================================ FILE: package/let-me-create/let-me-create.hash ================================================ # Locally computed sha256 5f42858a2062f34d2578e9cb1aed3ccb8d2409d908aa4c41a924418666d5f2bd let-me-create-1.5.2.tar.gz sha256 8ffc162e1435e810845b09a4c0d534df057a030f4c107778677b6621dc203426 LICENSE ================================================ FILE: package/let-me-create/let-me-create.mk ================================================ ################################################################################ # # LetMeCreate # ################################################################################ LET_ME_CREATE_VERSION = 1.5.2 LET_ME_CREATE_SITE = $(call github,CreatorDev,LetMeCreate,v$(LET_ME_CREATE_VERSION)) LET_ME_CREATE_INSTALL_STAGING = YES LET_ME_CREATE_LICENSE = BSD-3-Clause LET_ME_CREATE_LICENSE_FILES = LICENSE # pure static build not supported ifeq ($(BR2_SHARED_LIBS),y) LET_ME_CREATE_CONF_OPTS += -DBUILD_STATIC=OFF -DBUILD_SHARED=ON else ifeq ($(BR2_SHARED_STATIC_LIBS),y) LET_ME_CREATE_CONF_OPTS += -DBUILD_STATIC=ON -DBUILD_SHARED=ON endif ifeq ($(BR2_PACKAGE_LET_ME_CREATE_EXAMPLES),y) LET_ME_CREATE_CONF_OPTS += -DBUILD_EXAMPLES=ON else LET_ME_CREATE_CONF_OPTS += -DBUILD_EXAMPLES=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/leveldb/0001-Fix-compilation-with-g-4.8.2.patch ================================================ From 8a8016f6d2af335ab205aa40d5274fc9b0c7a566 Mon Sep 17 00:00:00 2001 From: Steve James Date: Sun, 5 Apr 2015 16:29:51 +0200 Subject: [PATCH 1/2] Fix compilation with g++ 4.8.2 Where db_iter.cc fails to get a typedef for ssize_t when compiled by GCC. Upstream-Status: Submitted [https://github.com/google/leveldb/issues/233] Signed-off-by: Steve James Signed-off-by: Thomas Petazzoni --- db/db_iter.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/db/db_iter.cc b/db/db_iter.cc index 3b2035e..c2e5f35 100644 --- a/db/db_iter.cc +++ b/db/db_iter.cc @@ -13,6 +13,7 @@ #include "util/logging.h" #include "util/mutexlock.h" #include "util/random.h" +#include // for ssize_t namespace leveldb { -- 2.1.0 ================================================ FILE: package/leveldb/0002-CMake-install-libmemenv.a.patch ================================================ From 2fa960098e5b6f9daa9f7d6cab27188566859be8 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sat, 12 Oct 2019 14:43:46 +0200 Subject: [PATCH] CMake: install libmemenv.a Needed for qt5webkit https://git.busybox.net/buildroot/commit/?id=8a10d9ce311c6cb0490d76921cae55618c258354 https://git.busybox.net/buildroot/commit/?id=16f847340d07dce620e4c3fc0a099aa79898d86a Signed-off-by: Bernd Kuhls --- CMakeLists.txt | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a65afbf..83b2425 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -187,6 +187,30 @@ target_sources(leveldb "${LEVELDB_PUBLIC_INCLUDE_DIR}/write_batch.h" ) +set(libmemenv_a_sources + "${PROJECT_SOURCE_DIR}/helpers/memenv/memenv.cc" + "${PROJECT_SOURCE_DIR}/helpers/memenv/memenv.h" + ) +add_library(memenv STATIC ${libmemenv_a_sources}) +target_compile_definitions(memenv + PRIVATE + # Used by include/export.h when building shared libraries. + LEVELDB_COMPILE_LIBRARY + # Used by port/port.h. + ${LEVELDB_PLATFORM_NAME}=1 +) +if (NOT HAVE_CXX17_HAS_INCLUDE) + target_compile_definitions(memenv + PRIVATE + LEVELDB_HAS_PORT_CONFIG_H=1 + ) +endif(NOT HAVE_CXX17_HAS_INCLUDE) +target_include_directories(memenv + PUBLIC + $ + $ +) + if (WIN32) target_sources(leveldb PRIVATE @@ -418,7 +436,7 @@ endif(LEVELDB_BUILD_BENCHMARKS) if(LEVELDB_INSTALL) include(GNUInstallDirs) - install(TARGETS leveldb + install(TARGETS leveldb memenv EXPORT leveldbTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} @@ -444,6 +462,12 @@ if(LEVELDB_INSTALL) DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/leveldb ) + install( + FILES + "${PROJECT_SOURCE_DIR}/helpers/memenv/memenv.h" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/helpers/memenv + ) + include(CMakePackageConfigHelpers) write_basic_package_version_file( "${PROJECT_BINARY_DIR}/leveldbConfigVersion.cmake" -- 2.20.1 ================================================ FILE: package/leveldb/0003-CMakeLists.txt-check-for-atomic-library.patch ================================================ From 9e82eb57870ec7c01734b44ed4bb994362004df3 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 27 Dec 2019 10:20:53 +0100 Subject: [PATCH] CMakeLists.txt: check for atomic library On some architectures, atomic binutils are provided by the libatomic library from gcc. Linking with libatomic is therefore necessary, otherwise the build fails with: [100%] Linking CXX executable leveldbutil /home/fabrice/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/7.4.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: libleveldb.a(env_posix.cc.o): in function `leveldb::(anonymous namespace)::Limiter::Acquire()': env_posix.cc:(.text+0x124): undefined reference to `__atomic_fetch_sub_4' This is often for example the case on sparcv8 32 bit. Fixes: - http://autobuild.buildroot.org/results/01d5a50581ac9e9b46f40e6f9665f74897db5e6f Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/google/leveldb/pull/765] --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index be41ba4..9d6773f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,7 @@ include(CheckIncludeFile) check_include_file("unistd.h" HAVE_UNISTD_H) include(CheckLibraryExists) +check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_ATOMIC) check_library_exists(crc32c crc32c_value "" HAVE_CRC32C) check_library_exists(snappy snappy_compress "" HAVE_SNAPPY) check_library_exists(tcmalloc malloc "" HAVE_TCMALLOC) @@ -270,6 +271,9 @@ if(HAVE_CLANG_THREAD_SAFETY) -Werror -Wthread-safety) endif(HAVE_CLANG_THREAD_SAFETY) +if(HAVE_ATOMIC) + target_link_libraries(leveldb atomic) +endif(HAVE_ATOMIC) if(HAVE_CRC32C) target_link_libraries(leveldb crc32c) endif(HAVE_CRC32C) -- 2.24.0 ================================================ FILE: package/leveldb/0004-cmake-Use-find_package-to-find-Snappy.patch ================================================ From 450c1d88b3e1af34614294830b4dc0612d198d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Bylica?= Date: Wed, 8 May 2019 10:42:03 +0200 Subject: [PATCH] cmake: Use find_package() to find Snappy Upstream: https://github.com/google/leveldb/pull/686/commits/3e73a396a082efc76e065ae974fe18c3bb27219d [Thomas: this commit allows to fix the detection of the snappy library in static link configurations] Signed-off-by: Thomas Petazzoni --- CMakeLists.txt | 12 ++++++++---- cmake/FindSnappy.cmake | 31 +++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 cmake/FindSnappy.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 78fead6..2efccda 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,9 @@ cmake_minimum_required(VERSION 3.9) # Keep the version below in sync with the one in db.h project(leveldb VERSION 1.22.0 LANGUAGES C CXX) +# Include local CMake modules. +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) + # This project can use C11, but will gracefully decay down to C89. set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED OFF) @@ -31,13 +34,14 @@ option(LEVELDB_INSTALL "Install LevelDB's header and library" ON) include(TestBigEndian) test_big_endian(LEVELDB_IS_BIG_ENDIAN) +find_package(Snappy) + include(CheckIncludeFile) check_include_file("unistd.h" HAVE_UNISTD_H) include(CheckLibraryExists) check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_ATOMIC) check_library_exists(crc32c crc32c_value "" HAVE_CRC32C) -check_library_exists(snappy snappy_compress "" HAVE_SNAPPY) check_library_exists(tcmalloc malloc "" HAVE_TCMALLOC) include(CheckCXXSymbolExists) @@ -276,9 +280,9 @@ endif(HAVE_ATOMIC) if(HAVE_CRC32C) target_link_libraries(leveldb crc32c) endif(HAVE_CRC32C) -if(HAVE_SNAPPY) - target_link_libraries(leveldb snappy) -endif(HAVE_SNAPPY) +if(TARGET Snappy::snappy) + target_link_libraries(leveldb Snappy::snappy) +endif() if(HAVE_TCMALLOC) target_link_libraries(leveldb tcmalloc) endif(HAVE_TCMALLOC) diff --git a/cmake/FindSnappy.cmake b/cmake/FindSnappy.cmake new file mode 100644 index 0000000..88c1de9 --- /dev/null +++ b/cmake/FindSnappy.cmake @@ -0,0 +1,31 @@ +# Copyright 2019 The LevelDB Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. See the AUTHORS file for names of contributors. + +find_library(SNAPPY_LIBRARY + NAMES snappy + HINTS ${SNAPPY_ROOT_DIR}/lib +) + +find_path(SNAPPY_INCLUDE_DIR + NAMES snappy.h + HINTS ${SNAPPY_ROOT_DIR}/include +) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Snappy DEFAULT_MSG SNAPPY_LIBRARY SNAPPY_INCLUDE_DIR) + +mark_as_advanced(SNAPPY_LIBRARY SNAPPY_INCLUDE_DIR) + +if(SNAPPY_FOUND) + set(HAVE_SNAPPY TRUE) # For compatibity with generating port_config.h. + + # Add imported targets. + # Follow the package naming convetion 'Snappy::' from + # https://github.com/google/snappy/blob/master/CMakeLists.txt#L211. + add_library(Snappy::snappy UNKNOWN IMPORTED) + set_target_properties(Snappy::snappy PROPERTIES + IMPORTED_LOCATION ${SNAPPY_LIBRARY} + INTERFACE_INCLUDE_DIRECTORIES ${SNAPPY_INCLUDE_DIR} + ) +endif() -- 2.26.2 ================================================ FILE: package/leveldb/Config.in ================================================ config BR2_PACKAGE_LEVELDB bool "leveldb" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS help LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. https://github.com/google/leveldb comment "leveldb needs a toolchain w/ C++, threads, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/leveldb/leveldb.hash ================================================ # Locally calculated sha256 55423cac9e3306f4a9502c738a001e4a339d1a38ffbee7572d4a07d5d63949b2 leveldb-1.22.tar.gz sha256 ccc19f1da0798ed666609b65a5b44dd8b3abe6fc08b9c0592eb76e82e174db19 LICENSE ================================================ FILE: package/leveldb/leveldb.mk ================================================ ################################################################################ # # leveldb # ################################################################################ LEVELDB_VERSION = 1.22 LEVELDB_SITE = $(call github,google,leveldb,$(LEVELDB_VERSION)) LEVELDB_LICENSE = BSD-3-Clause LEVELDB_LICENSE_FILES = LICENSE LEVELDB_INSTALL_STAGING = YES LEVELDB_CONF_OPTS = \ -DLEVELDB_BUILD_BENCHMARKS=OFF \ -DLEVELDB_BUILD_TESTS=OFF ifeq ($(BR2_PACKAGE_SNAPPY),y) LEVELDB_DEPENDENCIES += snappy endif $(eval $(cmake-package)) ================================================ FILE: package/lft/Config.in ================================================ 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/ ================================================ FILE: package/lft/lft.hash ================================================ # From http://pwhois.org/lft/ md5 31b15aabc619707427a73657512560f8 lft-3.8.tar.gz # Locally calculated sha256 10f427e77b0f8207817329bd8ef0310078434612620073369264d15e6f97e990 lft-3.8.tar.gz sha256 e3b7634630e6800eccca6ecafb5d40153d4f8f7a20e2b2399bf3c0ea92f44614 COPYING ================================================ FILE: package/lft/lft.mk ================================================ ################################################################################ # # lft # ################################################################################ LFT_VERSION = 3.8 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)) ================================================ FILE: package/lftp/0001-Fix-build-with-LibreSSL-following-commit-537f37898.patch ================================================ From 0276d5c239c41b3a63f738a5dc47fd56ac389cf0 Mon Sep 17 00:00:00 2001 From: Ganael Laplanche Date: Thu, 20 Aug 2020 12:29:05 +0200 Subject: [PATCH] Fix build with LibreSSL (following commit 537f37898) Upstream status: https://github.com/lavv17/lftp/commit/0276d5c239c41b3a63f738a5dc47fd56ac389cf0 Signed-off-by: Artem Panfilov Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- src/lftp_ssl.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lftp_ssl.cc b/src/lftp_ssl.cc index 14a3b9d4..968d3fb2 100644 --- a/src/lftp_ssl.cc +++ b/src/lftp_ssl.cc @@ -34,7 +34,7 @@ #include "misc.h" #include "network.h" #include "buffer.h" -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER #define X509_STORE_CTX_get_by_subject X509_STORE_get_by_subject #endif extern "C" { @@ -840,7 +840,7 @@ lftp_ssl_openssl_instance::lftp_ssl_openssl_instance() ssl_ctx=SSL_CTX_new(); X509_set_default_verify_paths(ssl_ctx->cert); #else -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER SSLeay_add_ssl_algorithms(); #endif ssl_ctx=SSL_CTX_new(SSLv23_client_method()); @@ -1080,7 +1080,7 @@ void lftp_ssl_openssl::copy_sid(const lftp_ssl_openssl *o) const char *lftp_ssl_openssl::strerror() { -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER SSL_load_error_strings(); #endif int error=ERR_get_error(); -- 2.25.1 ================================================ FILE: package/lftp/Config.in ================================================ config BR2_PACKAGE_LFTP bool "lftp" depends on BR2_USE_WCHAR depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # fork() select BR2_PACKAGE_READLINE select BR2_PACKAGE_ZLIB select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_GNUTLS help LFTP is a sophisticated ftp/http client, and a file transfer program supporting a number of network protocols. Like BASH, it has job control and uses the readline library for input. It has bookmarks, a built-in mirror command, and can transfer several files in parallel. It was designed with reliability in mind. http://lftp.yar.ru/ if BR2_PACKAGE_LFTP comment "Commands" config BR2_PACKAGE_LFTP_CMD_MIRROR bool "Mirror command" default y help Enable mirror command config BR2_PACKAGE_LFTP_CMD_SLEEP bool "Sleep command" default y help Enable sleep command config BR2_PACKAGE_LFTP_CMD_TORRENT bool "Torrent command" help Enable torrent command comment "Protocols" config BR2_PACKAGE_LFTP_PROTO_FISH bool "FISH protocol" help Enable FISH protocol config BR2_PACKAGE_LFTP_PROTO_FTP bool "FTP protocol" default y help Enable FTP protocol config BR2_PACKAGE_LFTP_PROTO_HTTP bool "HTTP protocol" help Enable HTTP protocol config BR2_PACKAGE_LFTP_PROTO_SFTP bool "SFTP protocol" help Enable SFTP protocol endif # BR2_PACKAGE_LFTP comment "lftp requires a toolchain w/ C++, wchar" depends on BR2_USE_MMU depends on !(BR2_USE_WCHAR && BR2_INSTALL_LIBSTDCPP) ================================================ FILE: package/lftp/lftp.hash ================================================ # From http://lftp.yar.ru/ftp/lftp-4.9.2.md5sum md5 b3a272ecb7a2b60e3827776f90ffb2f3 lftp-4.9.2.tar.xz # Locally calculated after checking gpg signature sha256 c517c4f4f9c39bd415d7313088a2b1e313b2d386867fe40b7692b83a20f0670d lftp-4.9.2.tar.xz # Hash for license file: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/lftp/lftp.mk ================================================ ################################################################################ # # lftp # ################################################################################ LFTP_VERSION = 4.9.2 LFTP_SOURCE = lftp-$(LFTP_VERSION).tar.xz LFTP_SITE = http://lftp.yar.ru/ftp LFTP_LICENSE = GPL-3.0+ LFTP_LICENSE_FILES = COPYING LFTP_CPE_ID_VENDOR = lftp_project LFTP_DEPENDENCIES = readline zlib host-pkgconf # Help lftp finding readline and zlib LFTP_CONF_OPTS = \ --with-readline=$(STAGING_DIR)/usr \ --with-readline-lib="`$(PKG_CONFIG_HOST_BINARY) --libs readline`" \ --with-zlib=$(STAGING_DIR)/usr ifneq ($(BR2_STATIC_LIBS),y) LFTP_CONF_OPTS += --with-modules endif ifeq ($(BR2_PACKAGE_EXPAT)$(BR2_PACKAGE_LFTP_PROTO_HTTP),yy) LFTP_DEPENDENCIES += expat LFTP_CONF_OPTS += --with-expat=$(STAGING_DIR)/usr else LFTP_CONF_OPTS += --without-expat endif ifeq ($(BR2_PACKAGE_GNUTLS),y) LFTP_DEPENDENCIES += gnutls LFTP_CONF_OPTS += --with-gnutls else LFTP_CONF_OPTS += --without-gnutls endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LFTP_DEPENDENCIES += openssl LFTP_CONF_OPTS += --with-openssl else LFTP_CONF_OPTS += --without-openssl endif ifeq ($(BR2_PACKAGE_LIBIDN2),y) LFTP_DEPENDENCIES += libidn2 LFTP_CONF_OPTS += --with-libidn2=$(STAGING_DIR)/usr else LFTP_CONF_OPTS += --without-libidn2 endif # Remove /usr/share/lftp define LFTP_REMOVE_DATA $(RM) -fr $(TARGET_DIR)/usr/share/lftp endef LFTP_POST_INSTALL_TARGET_HOOKS += LFTP_REMOVE_DATA # Optional commands and protocols LFTP_MODULES_TO_REMOVE-$(BR2_PACKAGE_LFTP_CMD_MIRROR) += cmd-mirror.so LFTP_MODULES_TO_REMOVE-$(BR2_PACKAGE_LFTP_CMD_SLEEP) += cmd-sleep.so LFTP_MODULES_TO_REMOVE-$(BR2_PACKAGE_LFTP_CMD_TORRENT) += cmd-torrent.so LFTP_MODULES_TO_REMOVE-$(BR2_PACKAGE_LFTP_PROTO_FISH) += proto-fish.so LFTP_MODULES_TO_REMOVE-$(BR2_PACKAGE_LFTP_PROTO_FTP) += proto-ftp.so LFTP_MODULES_TO_REMOVE-$(BR2_PACKAGE_LFTP_PROTO_HTTP) += proto-http.so LFTP_MODULES_TO_REMOVE-$(BR2_PACKAGE_LFTP_PROTO_SFTP) += proto-sftp.so define LFTP_REMOVE_MODULES for f in $(LFTP_MODULES_TO_REMOVE-) ; do \ $(RM) -f $(TARGET_DIR)/usr/lib/lftp/$(LFTP_VERSION)/$$f ; \ done endef LFTP_POST_INSTALL_TARGET_HOOKS += LFTP_REMOVE_MODULES $(eval $(autotools-package)) ================================================ FILE: package/libaacs/0001-read_file.h-include-sys-types.h.patch ================================================ From 1fb08a352afada589f0b93af7a07c6fcd6da9bb8 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Mon, 21 Sep 2020 20:19:38 +0200 Subject: [PATCH] read_file.h: include sys/types.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes build error with uClibc and gcc-8.3.0: In file included from src/devtools/uk_dump.c:28: src/devtools/read_file.h:24:44: error: unknown type name ‘off_t’ static size_t _read_file(const char *name, off_t min_size, off_t max_size, uint8_t **pdata) Upstream status: pending Signed-off-by: Bernd Kuhls --- src/devtools/read_file.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/devtools/read_file.h b/src/devtools/read_file.h index 953b2ef..a5d185c 100644 --- a/src/devtools/read_file.h +++ b/src/devtools/read_file.h @@ -19,6 +19,7 @@ #include #include +#include #include static size_t _read_file(const char *name, off_t min_size, off_t max_size, uint8_t **pdata) -- 2.27.0 ================================================ FILE: package/libaacs/Config.in ================================================ 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 ================================================ FILE: package/libaacs/libaacs.hash ================================================ # From http://download.videolan.org/pub/videolan/libaacs/0.11.0/libaacs-0.11.0.tar.bz2.sha512 sha512 167edbb6f26599e41d6084908039bf902f69f57da1f64f1491734157d1568ad0b32c8ea3064e0706e383af8dc6007eef65170b2b47222bf3d363e395e0b60388 libaacs-0.11.0.tar.bz2 # Hash for license file: sha256 592987e8510228d546540b84a22444bde98e48d03078d3b2eefcd889bec5ce8c COPYING ================================================ FILE: package/libaacs/libaacs.mk ================================================ ################################################################################ # # libaacs # ################################################################################ LIBAACS_VERSION = 0.11.0 LIBAACS_SITE = http://download.videolan.org/pub/videolan/libaacs/$(LIBAACS_VERSION) LIBAACS_SOURCE = libaacs-$(LIBAACS_VERSION).tar.bz2 LIBAACS_LICENSE = LGPL-2.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)) ================================================ FILE: package/libabseil-cpp/0001-force-position-independent-code.patch ================================================ From d170b19e500d85381369e379771be8d7816bcc92 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Tue, 21 Jul 2020 13:08:50 -0700 Subject: [PATCH] force position independent code Without this option, programs building for arm64 or x86-64 will fail when attempting to link to the built libraries with the following (abbreviated) error: "relocation against `.rodata' can not be used when making a shared object; recompile with -fPIC." Because libabseil-cpp builds static libraries, it is better to set the POSITION_INDEPENDENT_CODE to ON instead of forcing fPIC, as forcing fPIC may cause relocation errors when shared libraries link against the built static libraries. Signed-off-by: Adam Duskett --- CMake/AbseilHelpers.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake index 86ff9eb..bdb7a89 100644 --- a/CMake/AbseilHelpers.cmake +++ b/CMake/AbseilHelpers.cmake @@ -209,6 +209,8 @@ function(absl_cc_library) set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD ${ABSL_CXX_STANDARD}) set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD_REQUIRED ON) + # Without this setting, other programs such as GRPC will fail when linking. + set_property(TARGET ${_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON) # When being installed, we lose the absl_ prefix. We want to put it back # to have properly named lib files. This is a no-op when we are not being # installed. -- 2.26.2 ================================================ FILE: package/libabseil-cpp/Config.in ================================================ # see absl/debugging/internal/examine_stack.cc for the list of # architectures that are supported, and for which ucontext is used. config BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS bool default y if BR2_aarch64 || BR2_aarch64_be default y if BR2_arm || BR2_armeb default y if BR2_i386 default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le default y if BR2_riscv default y if BR2_x86_64 depends on BR2_TOOLCHAIN_HAS_UCONTEXT config BR2_PACKAGE_LIBABSEIL_CPP bool "libabseil-cpp" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # uses dlfcn.h depends on BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS help Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives. https://github.com/abseil/abseil-cpp comment "libabseil-cpp needs a toolchain w/ gcc >= 4.9, C++, threads, dynamic library" depends on BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/libabseil-cpp/libabseil-cpp.hash ================================================ # Locally computed sha256 59b862f50e710277f8ede96f083a5bb8d7c9595376146838b9580be90374ee1f libabseil-cpp-20210324.2.tar.gz sha256 c79a7fea0e3cac04cd43f20e7b648e5a0ff8fa5344e644b0ee09ca1162b62747 LICENSE ================================================ FILE: package/libabseil-cpp/libabseil-cpp.mk ================================================ ################################################################################ # # libabseil-cpp # ################################################################################ LIBABSEIL_CPP_VERSION = 20210324.2 LIBABSEIL_CPP_SITE = $(call github,abseil,abseil-cpp,$(LIBABSEIL_CPP_VERSION)) LIBABSEIL_CPP_LICENSE = Apache-2.0 LIBABSEIL_CPP_LICENSE_FILES = LICENSE LIBABSEIL_CPP_INSTALL_STAGING = YES LIBABSEIL_CPP_CONF_OPTS = \ -DCMAKE_CXX_STANDARD=11 \ -DABSL_ENABLE_INSTALL=ON \ -DABSL_USE_GOOGLETEST_HEAD=OFF \ -DABSL_RUN_TESTS=OFF HOST_LIBABSEIL_CPP_CONF_OPTS = \ -DCMAKE_CXX_STANDARD=11 \ -DABSL_ENABLE_INSTALL=ON \ -DABSL_USE_GOOGLETEST_HEAD=OFF \ -DABSL_RUN_TESTS=OFF $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/libaio/Config.in ================================================ config BR2_PACKAGE_LIBAIO bool "libaio" help Library for doing asynchronous I/O https://pagure.io/libaio/ ================================================ FILE: package/libaio/libaio.hash ================================================ # From https://releases.pagure.org/libaio/CHECKSUMS sha256 ab0462f2c9d546683e5147b1ce9c195fe95d07fac5bf362f6c01637955c3b492 libaio-0.3.112.tar.gz # Hash for license file: sha256 5bbcbb737e60fe9deba08ecbd00920cfcc3403ba2e534c64fdeea49d6bb87509 COPYING ================================================ FILE: package/libaio/libaio.mk ================================================ ################################################################################ # # libaio # ################################################################################ LIBAIO_VERSION = 0.3.112 LIBAIO_SITE = https://releases.pagure.org/libaio LIBAIO_INSTALL_STAGING = YES LIBAIO_LICENSE = LGPL-2.1+ LIBAIO_LICENSE_FILES = COPYING LIBAIO_CONFIGURE_OPTS = $(TARGET_CONFIGURE_OPTS) ifeq ($(BR2_STATIC_LIBS),y) LIBAIO_CONFIGURE_OPTS += ENABLE_SHARED=0 endif define LIBAIO_BUILD_CMDS $(LIBAIO_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define LIBAIO_INSTALL_STAGING_CMDS $(LIBAIO_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef define LIBAIO_INSTALL_TARGET_CMDS $(LIBAIO_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef define HOST_LIBAIO_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_LIBAIO_INSTALL_CMDS $(HOST_CONFIGURE_OPTS) $(HOST_MAKE_ENV) $(MAKE) -C $(@D) prefix=$(HOST_DIR) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/libao/Config.in ================================================ config BR2_PACKAGE_LIBAO bool "libao" help Libao is a cross-platform audio library that allows programs to output audio using a simple API on a wide variety of platforms. http://www.xiph.org/ao/ ================================================ FILE: package/libao/libao.hash ================================================ # From http://downloads.xiph.org/releases/ao/SHA256SUMS.txt sha256 03ad231ad1f9d64b52474392d63c31197b0bc7bd416e58b1c10a329a5ed89caf libao-1.2.0.tar.gz # Hash for license file: sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/libao/libao.mk ================================================ ################################################################################ # # libao # ################################################################################ LIBAO_VERSION = 1.2.0 LIBAO_SITE = http://downloads.xiph.org/releases/ao LIBAO_DEPENDENCIES = host-pkgconf LIBAO_INSTALL_STAGING = YES LIBAO_LICENSE = GPL-2.0+ LIBAO_LICENSE_FILES = COPYING LIBAO_CPE_ID_VENDOR = xiph LIBAO_CONF_OPTS = \ --disable-esd \ --disable-wmm \ --disable-arts \ --disable-nas \ --disable-pulse \ --disable-broken-oss ifeq ($(BR2_PACKAGE_ALSA_LIB),y) LIBAO_DEPENDENCIES += alsa-lib LIBAO_CONF_OPTS += --enable-alsa --enable-alsa-mmap # Remove the OSS plugin if ALSA is enabled, as libao will prefer ALSA anyway define LIBAO_REMOVE_OSS_PLUGIN rm -f $(TARGET_DIR)/usr/lib/ao/plugins-4/liboss.so endef LIBAO_POST_INSTALL_TARGET_HOOKS += LIBAO_REMOVE_OSS_PLUGIN else LIBAO_CONF_OPTS += --disable-alsa endif $(eval $(autotools-package)) ================================================ FILE: package/libapparmor/Config.in ================================================ config BR2_PACKAGE_LIBAPPARMOR bool "libapparmor" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 help AppArmor is an effective and easy-to-use Linux application security system. AppArmor proactively protects the operating system and applications from external or internal threats, even zero-day attacks, by enforcing good behavior and preventing even unknown application flaws from being exploited. This package installs only the library. http://wiki.apparmor.net comment "libapparmor needs a toolchain w/ headers >= 3.16, threads" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 ================================================ FILE: package/libapparmor/libapparmor.hash ================================================ # From: https://gitlab.com/apparmor/apparmor/-/wikis/home#userspace sha256 153db05d8f491e0596022663c19fb1166806cb473b3c6f0a7279feda2ec25a59 apparmor-3.0.3.tar.gz # locally computed sha256 a7e0cdcbea5c14927cedfc600d46526bdcbb1eb0a4d951e2ea53c2a6de159cb4 LICENSE sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 libraries/libapparmor/COPYING.LGPL ================================================ FILE: package/libapparmor/libapparmor.mk ================================================ ################################################################################ # # libapparmor # ################################################################################ # When updating the version here, please also update the apparmor package LIBAPPARMOR_VERSION_MAJOR = 3.0 LIBAPPARMOR_VERSION = $(LIBAPPARMOR_VERSION_MAJOR).3 LIBAPPARMOR_SOURCE = apparmor-$(LIBAPPARMOR_VERSION).tar.gz LIBAPPARMOR_SITE = https://launchpad.net/apparmor/$(LIBAPPARMOR_VERSION_MAJOR)/$(LIBAPPARMOR_VERSION)/+download LIBAPPARMOR_LICENSE = LGPL-2.1 LIBAPPARMOR_LICENSE_FILES = LICENSE libraries/libapparmor/COPYING.LGPL LIBAPPARMOR_DEPENDENCIES = host-bison host-flex host-pkgconf LIBAPPARMOR_SUBDIR = libraries/libapparmor LIBAPPARMOR_INSTALL_STAGING = YES # Patches 0001 and 0002 touch Makefile.am and an m4 file LIBAPPARMOR_AUTORECONF = YES # Most AppArmor tools will want to link to the static lib. # ac_cv_prog_cc_c99 is required for BR2_USE_WCHAR=n because the C99 test # provided by autoconf relies on wchar_t. LIBAPPARMOR_CONF_OPTS = \ ac_cv_prog_cc_c99=-std=gnu99 \ --enable-static \ --disable-man-pages ifeq ($(BR2_PACKAGE_PYTHON3),y) LIBAPPARMOR_DEPENDENCIES += host-python3 host-swig python3 LIBAPPARMOR_CONF_OPTS += \ --with-python \ PYTHON=$(HOST_DIR)/usr/bin/python3 \ PYTHON_CONFIG=$(STAGING_DIR)/usr/bin/python3-config \ SWIG=$(SWIG) else LIBAPPARMOR_CONF_OPTS += --without-python endif define LIBAPPARMOR_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_AUDIT) $(call KCONFIG_ENABLE_OPT,CONFIG_SECURITY) $(call KCONFIG_ENABLE_OPT,CONFIG_SECURITY_APPARMOR) $(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_SECURITY_APPARMOR) endef $(eval $(autotools-package)) ================================================ FILE: package/libarchive/Config.in ================================================ comment "libarchive needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR config BR2_PACKAGE_LIBARCHIVE bool "libarchive" depends on BR2_USE_WCHAR help Libarchive is a reusable C library for reading and writing a variety of streaming archive formats. http://www.libarchive.org/ if BR2_PACKAGE_LIBARCHIVE config BR2_PACKAGE_LIBARCHIVE_BSDTAR bool "bsdtar" help The 'bsdtar' program is a full-featured 'tar' replacement built on libarchive. config BR2_PACKAGE_LIBARCHIVE_BSDCPIO bool "bsdcpio" help 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 ================================================ FILE: package/libarchive/libarchive.hash ================================================ # From https://www.libarchive.de/downloads/sha256sums sha256 f0b19ff39c3c9a5898a219497ababbadab99d8178acc980155c7e1271089b5a0 libarchive-3.5.2.tar.xz # Locally computed: sha256 b2cdf763345de2de34cebf54394df3c61a105c3b71288603c251f2fa638200ba COPYING ================================================ FILE: package/libarchive/libarchive.mk ================================================ ################################################################################ # # libarchive # ################################################################################ LIBARCHIVE_VERSION = 3.5.2 LIBARCHIVE_SOURCE = libarchive-$(LIBARCHIVE_VERSION).tar.xz LIBARCHIVE_SITE = https://www.libarchive.de/downloads LIBARCHIVE_INSTALL_STAGING = YES LIBARCHIVE_LICENSE = BSD-2-Clause, BSD-3-Clause, CC0-1.0, OpenSSL, Apache-2.0 LIBARCHIVE_LICENSE_FILES = COPYING LIBARCHIVE_CPE_ID_VENDOR = libarchive ifeq ($(BR2_PACKAGE_LIBARCHIVE_BSDTAR),y) ifeq ($(BR2_STATIC_LIBS),y) LIBARCHIVE_CONF_OPTS += --enable-bsdtar=static else LIBARCHIVE_CONF_OPTS += --enable-bsdtar=shared endif else LIBARCHIVE_CONF_OPTS += --disable-bsdtar endif ifeq ($(BR2_PACKAGE_LIBARCHIVE_BSDCPIO),y) ifeq ($(BR2_STATIC_LIBS),y) LIBARCHIVE_CONF_OPTS += --enable-bsdcpio=static else LIBARCHIVE_CONF_OPTS += --enable-bsdcpio=shared endif 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 LIBARCHIVE_CONF_OPTS += --disable-acl endif ifeq ($(BR2_PACKAGE_ATTR),y) LIBARCHIVE_DEPENDENCIES += attr else LIBARCHIVE_CONF_OPTS += --disable-xattr endif ifeq ($(BR2_PACKAGE_BZIP2),y) LIBARCHIVE_CONF_OPTS += --with-bz2lib LIBARCHIVE_DEPENDENCIES += bzip2 else LIBARCHIVE_CONF_OPTS += --without-bz2lib endif ifeq ($(BR2_PACKAGE_EXPAT),y) LIBARCHIVE_DEPENDENCIES += expat else LIBARCHIVE_CONF_OPTS += --without-expat endif ifeq ($(BR2_PACKAGE_LIBICONV),y) LIBARCHIVE_DEPENDENCIES += libiconv else LIBARCHIVE_CONF_OPTS += --without-libiconv-prefix endif ifeq ($(BR2_PACKAGE_LIBXML2),y) LIBARCHIVE_DEPENDENCIES += libxml2 LIBARCHIVE_CONF_ENV += XML2_CONFIG=$(STAGING_DIR)/usr/bin/xml2-config else LIBARCHIVE_CONF_OPTS += --without-xml2 endif ifeq ($(BR2_PACKAGE_LZ4),y) LIBARCHIVE_CONF_OPTS += --with-lz4 LIBARCHIVE_DEPENDENCIES += lz4 else LIBARCHIVE_CONF_OPTS += --without-lz4 endif ifeq ($(BR2_PACKAGE_LZO),y) LIBARCHIVE_DEPENDENCIES += lzo else LIBARCHIVE_CONF_OPTS += --without-lzo2 endif ifeq ($(BR2_PACKAGE_MBEDTLS),y) LIBARCHIVE_DEPENDENCIES += mbedtls LIBARCHIVE_CONF_OPTS += --with-mbedtls else LIBARCHIVE_CONF_OPTS += --without-mbedtls endif ifeq ($(BR2_PACKAGE_NETTLE),y) LIBARCHIVE_DEPENDENCIES += nettle LIBARCHIVE_CONF_OPTS += --with-nettle else LIBARCHIVE_CONF_OPTS += --without-nettle endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBARCHIVE_DEPENDENCIES += openssl else LIBARCHIVE_CONF_OPTS += --without-openssl endif ifeq ($(BR2_PACKAGE_ZLIB),y) LIBARCHIVE_DEPENDENCIES += zlib else LIBARCHIVE_CONF_OPTS += --without-zlib endif # 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 ifeq ($(BR2_PACKAGE_ZSTD),y) LIBARCHIVE_DEPENDENCIES += zstd LIBARCHIVE_CONF_OPTS += --with-zstd else LIBARCHIVE_CONF_OPTS += --without-zstd 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-lz4 \ --without-lzo2 \ --without-mbedtls \ --without-nettle \ --without-openssl \ --without-lzma \ --without-zstd $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libargon2/0001-libargon2-dont-fail-on-existing-symlink.patch ================================================ From b997b9e7d4744020409223afddc7299a771eb52d Mon Sep 17 00:00:00 2001 From: Pascal de Bruijn Date: Thu, 7 Nov 2019 09:55:32 +0100 Subject: [PATCH] Don't fail on existing symlink Signed-off-by: Pascal de Bruijn --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 837e7f7..7c116c9 100644 --- a/Makefile +++ b/Makefile @@ -238,7 +238,7 @@ install: $(RUN) libs $(INSTALL) -d $(INST_LIBRARY) $(INSTALL) -m 0644 $(LIBRARIES) $(INST_LIBRARY) ifdef LINKED_LIB_SH - cd $(INST_LIBRARY) && ln -s $(notdir $(LIB_SH) $(LINKED_LIB_SH)) + cd $(INST_LIBRARY) && ln -sf $(notdir $(LIB_SH) $(LINKED_LIB_SH)) endif $(INSTALL) -d $(INST_BINARY) $(INSTALL) $(RUN) $(INST_BINARY) ================================================ FILE: package/libargon2/Config.in ================================================ config BR2_PACKAGE_LIBARGON2 bool "libargon2" depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS help A modern password hashing algorithm https://password-hashing.net/#argon2 comment "libargon needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/libargon2/libargon2.hash ================================================ # Locally calculated sha256 daf972a89577f8772602bf2eb38b6a3dd3d922bf5724d45e7f9589b5e830442c libargon2-20190702.tar.gz sha256 220f8736a89ff51c92ef3d497f413b48e6cf1df3d6278bc909c6308c78e1718e LICENSE ================================================ FILE: package/libargon2/libargon2.mk ================================================ ################################################################################ # # libargon2 # ################################################################################ LIBARGON2_VERSION = 20190702 LIBARGON2_SITE = $(call github,P-H-C,phc-winner-argon2,$(LIBARGON2_VERSION)) LIBARGON2_LICENSE = CC0-1.0 or Apache-2.0 LIBARGON2_LICENSE_FILES = LICENSE LIBARGON2_INSTALL_STAGING = YES LIBARGON2_OPTS = LIBRARY_REL=lib # GCC_TARGET_ARCH is not defined for all architectures, but libargon2 # only uses it to detect if some x86 optimizations can be used, and # GCC_TARGET_ARCH is defined on x86. ifneq ($(GCC_TARGET_ARCH),) LIBARGON2_OPTS += OPTTARGET=$(GCC_TARGET_ARCH) endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),) LIBARGON2_OPTS += NO_THREADS=1 endif define LIBARGON2_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(LIBARGON2_OPTS) endef define LIBARGON2_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(LIBARGON2_OPTS) DESTDIR=$(STAGING_DIR) install endef define LIBARGON2_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(LIBARGON2_OPTS) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/libargtable2/Config.in ================================================ config BR2_PACKAGE_LIBARGTABLE2 bool "libargtable2" help A greatly simplified and yet quite robust argument parsing set of library calls. http://argtable.sourceforge.net/ ================================================ FILE: package/libargtable2/libargtable2.hash ================================================ # Locally computed: sha256 8f77e8a7ced5301af6e22f47302fdbc3b1ff41f2b83c43c77ae5ca041771ddbf argtable2-13.tar.gz sha256 d7bf9d064ac3e5840f9dd02422b7eeec4f1fd03f37fadbd043602be5e882304f COPYING ================================================ FILE: package/libargtable2/libargtable2.mk ================================================ ################################################################################ # # libargtable2 # ################################################################################ LIBARGTABLE2_MAJOR_VERSION = 2 LIBARGTABLE2_MINOR_VERSION = 13 LIBARGTABLE2_VERSION = $(LIBARGTABLE2_MAJOR_VERSION).$(LIBARGTABLE2_MINOR_VERSION) LIBARGTABLE2_SOURCE = argtable2-$(LIBARGTABLE2_MINOR_VERSION).tar.gz LIBARGTABLE2_SITE = http://downloads.sourceforge.net/project/argtable/argtable/argtable-$(LIBARGTABLE2_VERSION) LIBARGTABLE2_INSTALL_STAGING = YES LIBARGTABLE2_CONF_OPTS = \ --disable-example \ --disable-kernel-module \ --enable-lib \ --enable-util LIBARGTABLE2_LICENSE = LGPL-2.0+ LIBARGTABLE2_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libart/0001-art-config-cross.patch ================================================ diff -Nura libart_lgpl-2.3.21.orig/Makefile.am libart_lgpl-2.3.21/Makefile.am --- libart_lgpl-2.3.21.orig/Makefile.am 2011-02-01 10:07:39.687545397 -0300 +++ libart_lgpl-2.3.21/Makefile.am 2011-02-01 10:08:48.320545396 -0300 @@ -5,11 +5,6 @@ noinst_SCRIPTS = gen_art_config.sh -BUILT_SOURCES = art_config.h - -art_config.h: - ./gen_art_config.sh > art_config.h - EXTRA_DIST = \ libart.def \ libart-config.in \ diff -Nura libart_lgpl-2.3.21.orig/art_config.h libart_lgpl-2.3.21/art_config.h --- libart_lgpl-2.3.21.orig/art_config.h 2011-02-01 10:07:39.688545397 -0300 +++ libart_lgpl-2.3.21/art_config.h 2011-02-01 10:08:27.315545395 -0300 @@ -1,9 +1,15 @@ /* Automatically generated by gen_art_config */ +#include + #define ART_SIZEOF_CHAR 1 #define ART_SIZEOF_SHORT 2 #define ART_SIZEOF_INT 4 +#if LONG_MAX == 2147483647L #define ART_SIZEOF_LONG 4 +#else +#define ART_SIZEOF_LONG 8 +#endif typedef unsigned char art_u8; typedef unsigned short art_u16; ================================================ FILE: package/libart/Config.in ================================================ config BR2_PACKAGE_LIBART bool "libart" help Libart is a library for high-performance 2D graphics. It supports a very powerful imaging model, basically the same as SVG and the Java 2D API. It includes all PostScript imaging operations, and adds antialiasing and alpha-transparency. It is also highly tuned for incremental rendering. It contains data structures and algorithms suited to rapid, precise computation of Region of Interest, and a two-phase rendering pipeline optimized for interactive display. http://www.levien.com/libart/ ================================================ FILE: package/libart/libart.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/libart_lgpl/2.3/libart_lgpl-2.3.21.sha256sum sha256 2a10b1c884bb37c7bd5c5eba59dbd0d28bf68e64a42d7f2083c836f60f8e98fa libart_lgpl-2.3.21.tar.gz # Hash for license file: sha256 d245807f90032872d1438d741ed21e2490e1175dc8aa3afa5ddb6c8e529b58e5 COPYING ================================================ FILE: package/libart/libart.mk ================================================ ################################################################################ # # libart # ################################################################################ LIBART_VERSION_MAJOR = 2.3 LIBART_VERSION = $(LIBART_VERSION_MAJOR).21 LIBART_SOURCE = libart_lgpl-$(LIBART_VERSION).tar.gz LIBART_SITE = http://ftp.gnome.org/pub/gnome/sources/libart_lgpl/$(LIBART_VERSION_MAJOR) LIBART_AUTORECONF = YES LIBART_INSTALL_STAGING = YES LIBART_CONFIG_SCRIPTS = libart2-config LIBART_LICENSE = LGPL-2.0+ LIBART_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libasplib/0001-asplib_CPUTimer.h-Fix-time.h-include.patch ================================================ From 7291289ba0c052e45e2a0330642318798d6a4caf Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Fri, 27 Jan 2017 16:02:27 +0100 Subject: [PATCH 1/1] asplib_CPUTimer.h: Fix time.h include According to https://linux.die.net/man/3/clock_gettime time.h needs to be included instead of sys/time.h. This patch fixes a build error found by buildroot autobuilders: http://autobuild.buildroot.net/results/cc0/cc0b928ee24a526b7c82fd3f391e2be024a14578// /home/peko/autobuild/instance-1/output/build/libasplib-be7fac89218a84b75f7598e3d76625ece99296f2/asplib_modules/Timer/asplib/Timer/asplib_CPUTimer.cpp: In member function 'void asplib::CCPUTimer::start_Timer()': /home/peko/autobuild/instance-1/output/build/libasplib-be7fac89218a84b75f7598e3d76625ece99296f2/asplib_modules/Timer/asplib/Timer/asplib_CPUTimer.cpp:69:19: error: 'CLOCK_REALTIME' was not declared in this scope clock_gettime(CLOCK_REALTIME, &m_startTime); Patch sent upstream: https://github.com/AchimTuran/asplib/pull/34 Signed-off-by: Bernd Kuhls --- asplib_modules/Timer/asplib/Timer/asplib_CPUTimer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/asplib_modules/Timer/asplib/Timer/asplib_CPUTimer.h b/asplib_modules/Timer/asplib/Timer/asplib_CPUTimer.h index a61ff49..a9676e0 100644 --- a/asplib_modules/Timer/asplib/Timer/asplib_CPUTimer.h +++ b/asplib_modules/Timer/asplib/Timer/asplib_CPUTimer.h @@ -29,7 +29,7 @@ #include #include #elif defined(TARGET_LINUX) - #include + #include #endif namespace asplib -- 2.11.0 ================================================ FILE: package/libasplib/Config.in ================================================ config BR2_PACKAGE_LIBASPLIB bool "libasplib" depends on BR2_INSTALL_LIBSTDCPP help asplib (Achim's Signal Processing LIBrary), is a small and lightweight C++ library for digital signal processing. https://github.com/AchimTuran/asplib comment "asplib needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/libasplib/libasplib.hash ================================================ # Locally calculated sha256 68e117348fa17592dde7672477e927119a0e477103ced1d3a57d92e30880a147 libasplib-be7fac89218a84b75f7598e3d76625ece99296f2.tar.gz sha256 12ac5047f2af0522f06798b1589ffc4599bc29c91f954d7874e0320634e777c0 LICENSE ================================================ FILE: package/libasplib/libasplib.mk ================================================ ################################################################################ # # libasplib # ################################################################################ LIBASPLIB_VERSION = be7fac89218a84b75f7598e3d76625ece99296f2 LIBASPLIB_SITE = $(call github,AchimTuran,asplib,$(LIBASPLIB_VERSION)) LIBASPLIB_LICENSE = GPL-3.0+ LIBASPLIB_LICENSE_FILES = LICENSE LIBASPLIB_INSTALL_STAGING = YES LIBASPLIB_CONF_OPTS = \ -DASPLIB_MODULES_TO_BUILD=some \ -DBUILD_BIQUAD=ON \ -DBUILD_IIR=ON \ -DBUILD_LOGGER=ON \ -DBUILD_SIGNALS=ON \ -DBUILD_TIMER=ON $(eval $(cmake-package)) ================================================ FILE: package/libass/Config.in ================================================ config BR2_PACKAGE_LIBASS bool "libass" depends on BR2_INSTALL_LIBSTDCPP # harfbuzz depends on BR2_TOOLCHAIN_HAS_SYNC_4 # harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # harfbuzz select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_HARFBUZZ select BR2_PACKAGE_LIBFRIBIDI help libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format https://github.com/libass/libass comment "libass needs a toolchain w/ C++, gcc >= 4.8" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/libass/libass.hash ================================================ # Locally computed sha256 1be2df9c4485a57d78bb18c0a8ed157bc87a5a8dd48c661961c625cb112832fd libass-0.15.2.tar.xz sha256 f7e30699d02798351e7f839e3d3bfeb29ce65e44efa7735c225464c4fd7dfe9c COPYING ================================================ FILE: package/libass/libass.mk ================================================ ################################################################################ # # libass # ################################################################################ LIBASS_VERSION = 0.15.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. LIBASS_SITE = https://github.com/libass/libass/releases/download/$(LIBASS_VERSION) LIBASS_INSTALL_STAGING = YES LIBASS_LICENSE = ISC LIBASS_LICENSE_FILES = COPYING LIBASS_CPE_ID_VENDOR = libass_project LIBASS_DEPENDENCIES = \ host-pkgconf \ freetype \ harfbuzz \ libfribidi \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) # configure: WARNING: Install nasm for a significantly faster libass build. # only for Intel archs ifeq ($(BR2_i386)$(BR2_x86_64),y) LIBASS_DEPENDENCIES += host-nasm endif ifeq ($(BR2_PACKAGE_FONTCONFIG),y) LIBASS_DEPENDENCIES += fontconfig LIBASS_CONF_OPTS += --enable-fontconfig else LIBASS_CONF_OPTS += --disable-fontconfig --disable-require-system-font-provider endif $(eval $(autotools-package)) ================================================ FILE: package/libassuan/Config.in ================================================ 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 Libassuan is a small library implementing the so-called Assuan protocol. This protocol is used for IPC between most newer GnuPG components. Both, server and client side functions are provided. http://www.gnupg.org/related_software/libassuan/ ================================================ FILE: package/libassuan/libassuan.hash ================================================ # From https://www.gnupg.org/download/integrity_check.html sha1 ec4f67c0117ccd17007c748a392ded96dc1b1ae9 libassuan-2.5.5.tar.bz2 # Locally calculated after checking signature # https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.5.tar.bz2.sig # using key D8692123C4065DEA5E0F3AB5249B39D24F25E3B6 sha256 8e8c2fcc982f9ca67dcbb1d95e2dc746b1739a4668bc20b3a3c5be632edb34e4 libassuan-2.5.5.tar.bz2 sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING.LIB sha256 fc82ca8b6fdb18d4e3e85cfd8ab58d1bcd3f1b29abe782895abd91d64763f8e7 COPYING ================================================ FILE: package/libassuan/libassuan.mk ================================================ ################################################################################ # # libassuan # ################################################################################ LIBASSUAN_VERSION = 2.5.5 LIBASSUAN_SITE = ftp://ftp.gnupg.org/gcrypt/libassuan LIBASSUAN_SOURCE = libassuan-$(LIBASSUAN_VERSION).tar.bz2 LIBASSUAN_LICENSE = LGPL-2.1+ (library), GPL-3.0 (tests, doc) LIBASSUAN_LICENSE_FILES = COPYING.LIB COPYING LIBASSUAN_INSTALL_STAGING = YES LIBASSUAN_DEPENDENCIES = libgpg-error LIBASSUAN_CONF_OPTS = \ --with-gpg-error-prefix=$(STAGING_DIR)/usr LIBASSUAN_CONFIG_SCRIPTS = libassuan-config $(eval $(autotools-package)) ================================================ FILE: package/libatasmart/0001-strpool-cross-flags.patch ================================================ From 730158700ea7a554c37f24bfbf5f4985f7280f3e Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Wed, 6 Feb 2013 14:07:02 +0100 Subject: [PATCH] strpool: don't mix up host/build flags when cross compiling Submitted upstream as https://bugs.freedesktop.org/show_bug.cgi?id=60364 Commit b71035ce89 (build-sys: modernize build system) changed the strpool (which needs to be built for the build machine) compilation to use AM_CFLAGS / AM_LDFLAGS rather than CFLAGS / LDFLAGS. This is wrong, as The AM_ version is used TOGETHER with (the user supplied) CFLAGS/LDFLAGS, causing strpool to use both CFLAGS (for host) and CCFLAGS_FOR_BUILD (for build) flags, breaking cross compilation with errors like: cc1: error: unrecognized command line option "-mabi=spe" Instead overwrite the (user supplied) CFLAGS with the (user supplied) CFLAGS_FOR_BUILD (and similar for LDFLAGS) like we used to do. Signed-off-by: Peter Korsgaard --- strpool/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/strpool/Makefile.am b/strpool/Makefile.am index b041cea..5b335a5 100644 --- a/strpool/Makefile.am +++ b/strpool/Makefile.am @@ -17,8 +17,8 @@ # . CC = @CC_FOR_BUILD@ -AM_CFLAGS = @BUILD_CFLAGS@ -AM_LDFLAGS = @BUILD_LDFLAGS@ +CFLAGS = @BUILD_CFLAGS@ +LDFLAGS = @BUILD_LDFLAGS@ noinst_PROGRAMS = \ strpool -- 1.7.10.4 ================================================ FILE: package/libatasmart/Config.in ================================================ config BR2_PACKAGE_LIBATASMART bool "libatasmart" depends on BR2_PACKAGE_HAS_UDEV # libudev is configure dependency help The libatasmart package is a disk reporting library. It only supports a subset of the ATA S.M.A.R.T. functionality. http://0pointer.de/blog/projects/being-smart.html comment "libatasmart requires udev to be enabled" depends on !BR2_PACKAGE_HAS_UDEV ================================================ FILE: package/libatasmart/libatasmart.hash ================================================ # Locally calculated sha256 61f0ea345f63d28ab2ff0dc352c22271661b66bf09642db3a4049ac9dbdb0f8d libatasmart-0.19.tar.xz sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 LGPL ================================================ FILE: package/libatasmart/libatasmart.mk ================================================ ################################################################################ # # libatasmart # ################################################################################ LIBATASMART_VERSION = 0.19 LIBATASMART_SOURCE = libatasmart-$(LIBATASMART_VERSION).tar.xz LIBATASMART_SITE = http://0pointer.de/public LIBATASMART_LICENSE = LGPL-2.1 LIBATASMART_LICENSE_FILES = LGPL LIBATASMART_INSTALL_STAGING = YES # package doesn't include configure script LIBATASMART_AUTORECONF = YES LIBATASMART_DEPENDENCIES = udev $(eval $(autotools-package)) ================================================ FILE: package/libatomic_ops/Config.in ================================================ config BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS bool default y if BR2_aarch64 || BR2_arm || BR2_armeb default y if BR2_i386 || BR2_x86_64 default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_riscv default y if BR2_sparc || BR2_sparc64 # Unsupported for MIPS R6 depends on !BR2_MIPS_CPU_MIPS32R6 && !BR2_MIPS_CPU_MIPS64R6 config BR2_PACKAGE_LIBATOMIC_OPS bool "libatomic_ops" depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS help Atomic operations library https://github.com/ivmai/libatomic_ops ================================================ FILE: package/libatomic_ops/libatomic_ops.hash ================================================ # Locally calculated sha256 18091d5f3cb7008b0432016390ff437b9d1d76c10b92c8e63ff63f0c1331b030 libatomic_ops-7.6.12.tar.gz sha256 f0e630c0ca489767033da5a0c869fb4231db522c5ff479ce55a853a923a00f69 doc/LICENSING.txt sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/libatomic_ops/libatomic_ops.mk ================================================ ################################################################################ # # libatomic_ops # ################################################################################ LIBATOMIC_OPS_VERSION = 7.6.12 LIBATOMIC_OPS_SITE = $(call github,ivmai,libatomic_ops,v$(LIBATOMIC_OPS_VERSION)) LIBATOMIC_OPS_AUTORECONF = YES # From doc/LICENSING.txt: "Our intent is to make it easy to use # libatomic_ops, in both free and proprietary software. Hence most # code that we expect to be linked into a client application is # covered by an MIT-style license. A few library routines are covered # by the GNU General Public License. These are put into a separate # library, libatomic_ops_gpl.a." LIBATOMIC_OPS_LICENSE = MIT (main library) / GPL-2.0+ (gpl extension) LIBATOMIC_OPS_LICENSE_FILES = doc/LICENSING.txt COPYING LIBATOMIC_OPS_CPE_ID_VENDOR = libatomic_ops_project LIBATOMIC_OPS_INSTALL_STAGING = YES ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y) LIBATOMIC_OPS_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -DAO_NO_SPARC_V9" endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libavl/0001-fix-makefile.patch ================================================ makefile: fix compilation and installation This was originally taken from: https://sources.debian.org/data/main/liba/libavl/0.3.5-4/debian/patches/fix-makefile Unfortunately, the URL does not end in ".patch", therefore we cannot use it in the FOO_PATCH variable directly. Signed-off-by: Michael Walle --- a/GNUmakefile +++ b/GNUmakefile @@ -6,7 +6,8 @@ LDCONFIG ?= /sbin/ldconfig # Some suggestions: (-mcpu= generates i386 compatible code) -CFLAGS ?= -O2 -fomit-frame-pointer -pipe -mcpu=i686 -w +CFLAGS ?= -O2 -pipe -Wall -Werror +CFLAGS += -fPIC #CFLAGS = -O2 -fomit-frame-pointer -pipe -march=i586 -Wall -g #CFLAGS = -O6 -fomit-frame-pointer -pipe -march=i586 -Wall -ansi -pedantic #CFLAGS = -O6 -fomit-frame-pointer -pipe -march=i686 -Wall -ansi -pedantic @@ -34,20 +35,21 @@ $(CC) $(LDFLAGS) $^ -o $@ $(LIBS) $(LIBRARY): avl.o - $(CC) -nostdlib -shared -Wl,-soname,libavl.so.1 $^ -o $@ -lc + $(CC) $(LDFLAGS) -shared -Wl,-soname,libavl.so.1 $^ -o $@ -lc clean: $(RM) *.o $(PROGRAMS) libavl.* install: all $(INSTALL) -d $(DESTDIR)$(libdir) - $(INSTALL) avl.h $(DESTDIR)$(includedir) - $(INSTALL) $(LIBRARIES) $(DESTDIR)$(libdir) - for i in $(LIBRARIES); do\ + $(INSTALL) -d $(DESTDIR)$(includedir) + $(INSTALL) -m 644 avl.h $(DESTDIR)$(includedir) + $(INSTALL) -m 644 $(LIBRARY) $(DESTDIR)$(libdir) + for i in $(LIBRARY); do\ $(LN) -sf $$i $(DESTDIR)$(libdir)/$${i%.*};\ $(LN) -sf $${i%.*} $(DESTDIR)$(libdir)/$${i%.*.*};\ done - -$(LDCONFIG) + #-$(LDCONFIG) .PHONY: clean install all .PRECIOUS: %.h %.c ================================================ FILE: package/libavl/Config.in ================================================ config BR2_PACKAGE_LIBAVL bool "libavl" depends on !BR2_STATIC_LIBS help AVLTree is a small implementation of AVL trees for the C programming language. https://packages.debian.org/buster/libavl1 This is not the GNU AVL library by Ben Pfaff. comment "libavl needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libavl/libavl.hash ================================================ # From http://snapshot.debian.org/archive/debian/20160621T164030Z/pool/main/liba/libavl/libavl_0.3.5-4.dsc sha256 4497b9e22cdd61ae2fa893b9d5fd6213dc306726d7c4be08c29e173622dca8a0 libavl_0.3.5.orig.tar.gz # Locally computed sha256 767a9accfe3b110153b567983b98889469dfaae02899a632aeadbb81ad611293 COPYING ================================================ FILE: package/libavl/libavl.mk ================================================ ################################################################################ # # libavl # ################################################################################ LIBAVL_VERSION = 0.3.5 LIBAVL_SITE = http://snapshot.debian.org/archive/debian/20050312T000000Z/pool/main/liba/libavl LIBAVL_SOURCE = libavl_$(LIBAVL_VERSION).orig.tar.gz LIBAVL_LICENSE = LGPL-2.0+ LIBAVL_LICENSE_FILES = COPYING LIBAVL_INSTALL_STAGING = YES LIBAVL_CFLAGS = $(TARGET_CFLAGS) -fPIC HOST_LIBAVL_CFLAGS = $(HOST_CFLAGS) -fPIC define LIBAVL_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ CFLAGS="$(LIBAVL_CFLAGS)" endef define LIBAVL_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) install \ prefix=/usr DESTDIR=$(STAGING_DIR) endef define LIBAVL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) install \ prefix=/usr DESTDIR=$(TARGET_DIR) endef define HOST_LIBAVL_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) \ CFLAGS="$(HOST_LIBAVL_CFLAGS)" endef define HOST_LIBAVL_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) install \ prefix=$(HOST_DIR) endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/libb64/0001-Integer-overflows.patch ================================================ Fix integer overflows. Will not work on compilers with unsigned char as the default. Fetched from: https://sources.debian.org/patches/libb64/1.2-5/ Combined "integer overflows.diff" and "off by one.diff" and adapted for version 1.2.1. Signed-off-by: Mikael Eliasson diff --git a/src/cdecode.c b/src/cdecode.c index a6c0a42..45da4e1 100644 --- a/src/cdecode.c +++ b/src/cdecode.c @@ -9,10 +9,11 @@ For details, see http://sourceforge.net/projects/libb64 int base64_decode_value(char value_in) { - static const char decoding[] = {62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-2,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51}; + static const signed char decoding[] = {62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-2,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51}; static const char decoding_size = sizeof(decoding); + if (value_in < 43) return -1; value_in -= 43; - if (value_in < 0 || value_in >= decoding_size) return -1; + if (value_in >= decoding_size) return -1; return decoding[(int)value_in]; } @@ -26,7 +27,7 @@ int base64_decode_block(const char* code_in, const int length_in, char* plaintex { const char* codechar = code_in; char* plainchar = plaintext_out; - char fragment; + int fragment; *plainchar = state_in->plainchar; @@ -42,7 +43,7 @@ int base64_decode_block(const char* code_in, const int length_in, char* plaintex state_in->plainchar = *plainchar; return plainchar - plaintext_out; } - fragment = (char)base64_decode_value(*codechar++); + fragment = base64_decode_value(*codechar++); } while (fragment < 0); *plainchar = (fragment & 0x03f) << 2; case step_b: @@ -53,7 +54,7 @@ int base64_decode_block(const char* code_in, const int length_in, char* plaintex state_in->plainchar = *plainchar; return plainchar - plaintext_out; } - fragment = (char)base64_decode_value(*codechar++); + fragment = base64_decode_value(*codechar++); } while (fragment < 0); *plainchar++ |= (fragment & 0x030) >> 4; *plainchar = (fragment & 0x00f) << 4; @@ -65,7 +66,7 @@ int base64_decode_block(const char* code_in, const int length_in, char* plaintex state_in->plainchar = *plainchar; return plainchar - plaintext_out; } - fragment = (char)base64_decode_value(*codechar++); + fragment = base64_decode_value(*codechar++); } while (fragment < 0); *plainchar++ |= (fragment & 0x03c) >> 2; *plainchar = (fragment & 0x003) << 6; @@ -77,7 +78,7 @@ int base64_decode_block(const char* code_in, const int length_in, char* plaintex state_in->plainchar = *plainchar; return plainchar - plaintext_out; } - fragment = (char)base64_decode_value(*codechar++); + fragment = base64_decode_value(*codechar++); } while (fragment < 0); *plainchar++ |= (fragment & 0x03f); } ================================================ FILE: package/libb64/0002-Initialize-C++-objects.patch ================================================ Fixes uninitialized C++ encoder and decoder _state variable bug. Fetched from: https://sources.debian.org/patches/libb64/1.2-5/ initialize-coder-state.diff patch without modifications. Signed-off-by: Mikael Eliasson diff --git a/include/b64/decode.h b/include/b64/decode.h index 12b16ea..d3f7d60 100644 --- a/include/b64/decode.h +++ b/include/b64/decode.h @@ -24,7 +24,9 @@ namespace base64 decoder(int buffersize_in = BUFFERSIZE) : _buffersize(buffersize_in) - {} + { + base64_init_decodestate(&_state); + } int decode(char value_in) { diff --git a/include/b64/encode.h b/include/b64/encode.h index 5d807d9..49aafdc 100644 --- a/include/b64/encode.h +++ b/include/b64/encode.h @@ -24,7 +24,9 @@ namespace base64 encoder(int buffersize_in = BUFFERSIZE) : _buffersize(buffersize_in) - {} + { + base64_init_encodestate(&_state); + } int encode(char value_in) { ================================================ FILE: package/libb64/Config.in ================================================ config BR2_PACKAGE_LIBB64 bool "libb64" help libb64 is a library of ANSI C routines for fast encoding and decoding of data into and from a base64-encoded format. C++ wrappers are included, as well as the source code for standalone encoding and decoding executables. Base64 uses a subset of displayable ASCII characters, and is therefore a useful encoding for storing binary data in a text file, such as XML, or sending binary data over text-only email. http://libb64.sourceforge.net ================================================ FILE: package/libb64/libb64.hash ================================================ # sha1 from sourceforge, sha256 locally computed sha1 04b3e21b8c951d27f02fe91249ca3474554af0b9 libb64-1.2.1.zip sha256 20106f0ba95cfd9c35a13c71206643e3fb3e46512df3e2efb2fdbf87116314b2 libb64-1.2.1.zip # Hash for license file: sha256 834b7afa1b3c40289a3be775d3625016be1c0d7ea7a4a26c1eb207f53dc961d8 LICENSE ================================================ FILE: package/libb64/libb64.mk ================================================ ################################################################################ # # libb64 # ################################################################################ LIBB64_VERSION = 1.2.1 LIBB64_SOURCE = libb64-$(LIBB64_VERSION).zip LIBB64_SITE = https://downloads.sourceforge.net/project/libb64/libb64/libb64 LIBB64_LICENSE = Public Domain LIBB64_LICENSE_FILES = LICENSE LIBB64_INSTALL_STAGING = YES # Only static lib and headers LIBB64_INSTALL_TARGET = NO define LIBB64_EXTRACT_CMDS unzip $(LIBB64_DL_DIR)/$(LIBB64_SOURCE) -d $(BUILD_DIR) endef define LIBB64_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CCFLAGS="$(TARGET_CFLAGS)" -C $(@D) all_src endef define LIBB64_INSTALL_STAGING_CMDS $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/b64 $(INSTALL) -m 0644 $(@D)/include/b64/* $(STAGING_DIR)/usr/include/b64 $(INSTALL) -D -m 0755 $(@D)/src/libb64.a $(STAGING_DIR)/usr/lib endef $(eval $(generic-package)) ================================================ FILE: package/libbacktrace/Config.in ================================================ config BR2_PACKAGE_LIBBACKTRACE bool "libbacktrace" help A C library that may be linked into a C/C++ program to produce symbolic backtraces https://github.com/ianlancetaylor/libbacktrace ================================================ FILE: package/libbacktrace/libbacktrace.hash ================================================ # Locally computed: sha256 13072c499c76866c188beaf3d50f3dddbf2c27ed9fd72b33d1b857acd33b1cb5 libbacktrace-9b7f216e867916594d81e8b6118f092ac3fcf704.tar.gz sha256 ef8a9b3247488f8901ca60de9b17b745d7bd67e5ec1e622f80d62364572200d8 LICENSE ================================================ FILE: package/libbacktrace/libbacktrace.mk ================================================ ################################################################################ # # libbacktrace # ################################################################################ LIBBACKTRACE_VERSION = 9b7f216e867916594d81e8b6118f092ac3fcf704 LIBBACKTRACE_SITE = $(call github,ianlancetaylor,libbacktrace,$(LIBBACKTRACE_VERSION)) LIBBACKTRACE_LICENSE = BSD-3C-like LIBBACKTRACE_LICENSE_FILES = LICENSE LIBBACKTRACE_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libbdplus/Config.in ================================================ 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 ================================================ FILE: package/libbdplus/libbdplus.hash ================================================ # 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 # Hash for license file: sha256 592987e8510228d546540b84a22444bde98e48d03078d3b2eefcd889bec5ce8c COPYING ================================================ FILE: package/libbdplus/libbdplus.mk ================================================ ################################################################################ # # 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 = LGPL-2.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)) ================================================ FILE: package/libblockdev/0001-Provide-replacement-function-for-strerror_l.patch ================================================ From ccf93148aa3587dd98a02e253cdc42a7af14df1e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 29 Aug 2020 16:04:15 +0200 Subject: [PATCH] Provide replacement function for strerror_l() strerror_l() is not implemented in some C libraries, such as uClibc, so let's provide a simple replacement function that falls back on strerror(). Signed-off-by: Thomas Petazzoni --- configure.ac | 2 ++ src/plugins/crypto.c | 7 +++++++ src/utils/module.c | 8 ++++++++ 3 files changed, 17 insertions(+) diff --git a/configure.ac b/configure.ac index c2d22c2..36aeb51 100644 --- a/configure.ac +++ b/configure.ac @@ -137,6 +137,8 @@ AC_CHECK_HEADERS([dlfcn.h string.h unistd.h sys/fcntl.h sys/ioctl.h linux/random [LIBBLOCKDEV_SOFT_FAILURE([Header file $ac_header not found.])], []) +AC_CHECK_FUNCS([strerror_l]) + AC_ARG_WITH([bcache], AS_HELP_STRING([--with-bcache], [support bcache @<:@default=yes@:>@]), [], diff --git a/src/plugins/crypto.c b/src/plugins/crypto.c index f4a2e8f..c1bd7b5 100644 --- a/src/plugins/crypto.c +++ b/src/plugins/crypto.c @@ -52,6 +52,13 @@ #define UNUSED __attribute__((unused)) +#if !defined(HAVE_STRERROR_L) +static char *strerror_l(int errnum, locale_t locale UNUSED) +{ + return strerror(errnum); +} +#endif + /** * SECTION: crypto * @short_description: plugin for operations with encrypted devices diff --git a/src/utils/module.c b/src/utils/module.c index 9750e24..086bec0 100644 --- a/src/utils/module.c +++ b/src/utils/module.c @@ -27,6 +27,14 @@ #include "module.h" +#define UNUSED __attribute__((unused)) + +#if !defined(HAVE_STRERROR_L) +static char *strerror_l(int errnum, locale_t locale UNUSED) +{ + return strerror(errnum); +} +#endif /** * bd_utils_module_error_quark: (skip) -- 2.26.2 ================================================ FILE: package/libblockdev/Config.in ================================================ config BR2_PACKAGE_LIBBLOCKDEV bool "libblockdev" depends on !BR2_STATIC_LIBS # kmod depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 depends on BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_KMOD select BR2_PACKAGE_LIBGLIB2 help libblockdev is a C library supporting GObject introspection for manipulation of block devices. It has a plugin-based architecture where each technology (like LVM, Btrfs, MD RAID, Swap,...) is implemented in a separate plugin, possibly with multiple implementations. https://github.com/storaged-project/libblockdev/ if BR2_PACKAGE_LIBBLOCKDEV comment "plugins" config BR2_PACKAGE_LIBBLOCKDEV_CRYPTO bool "crypto" depends on BR2_TOOLCHAIN_HAS_SYNC_4 # cryptsetup -> json-c select BR2_PACKAGE_CRYPTSETUP config BR2_PACKAGE_LIBBLOCKDEV_FS bool "filesystem" depends on BR2_ENABLE_LOCALE # parted select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_PARTED comment "filesystem plugin needs a toolchain w/ locale" depends on !BR2_ENABLE_LOCALE config BR2_PACKAGE_LIBBLOCKDEV_LOOP bool "loop" config BR2_PACKAGE_LIBBLOCKDEV_LVM2 bool "lvm2" depends on BR2_ENABLE_LOCALE # parted select BR2_PACKAGE_PARTED select BR2_PACKAGE_LVM2 comment "lvm2 support needs a toolchain w/ locale" depends on !BR2_ENABLE_LOCALE config BR2_PACKAGE_LIBBLOCKDEV_MDRAID bool "mdraid" select BR2_PACKAGE_LIBBYTESIZE config BR2_PACKAGE_LIBBLOCKDEV_PART bool "part" depends on BR2_ENABLE_LOCALE # parted select BR2_PACKAGE_PARTED comment "part plugin needs a toolchain w/ locale" depends on !BR2_ENABLE_LOCALE config BR2_PACKAGE_LIBBLOCKDEV_SWAP bool "swap" select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBBLKID endif comment "libblockdev needs udev /dev management and a toolchain w/ wchar, threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_PACKAGE_HAS_UDEV || BR2_STATIC_LIBS || \ !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libblockdev/libblockdev.hash ================================================ # Locally calculated sha256 555aa42a2db39649ad83253bdc902ab5bd63d39c123e0c8055c4de7fe7571668 libblockdev-2.25.tar.gz sha256 97bdc721d875501b6243a456333fdfdb1ab64d31c4da2554de845caf4674b946 LICENSE ================================================ FILE: package/libblockdev/libblockdev.mk ================================================ ################################################################################ # # libblockdev # ################################################################################ LIBBLOCKDEV_VERSION = 2.25 LIBBLOCKDEV_SITE = https://github.com/storaged-project/libblockdev/releases/download/$(LIBBLOCKDEV_VERSION)-1 LIBBLOCKDEV_LICENSE = LGPL-2.1 LIBBLOCKDEV_LICENSE_FILES = LICENSE LIBBLOCKDEV_INSTALL_STAGING = YES LIBBLOCKDEV_DEPENDENCIES = host-pkgconf libglib2 kmod udev # 0001-Provide-replacement-function-for-strerror_l.patch LIBBLOCKDEV_AUTORECONF = YES LIBBLOCKDEV_CONF_OPTS = \ --disable-introspection \ --with-loop \ --without-bcache \ --without-btrfs \ --without-dm \ --without-dmraid \ --without-escrow \ --without-kbd \ --without-lvm_dbus \ --without-mpath \ --without-nvdimm \ --without-python2 \ --without-python3 \ --without-s390 \ --without-tools \ --without-vdo ifeq ($(BR2_PACKAGE_LIBBLOCKDEV_CRYPTO),y) LIBBLOCKDEV_DEPENDENCIES += cryptsetup LIBBLOCKDEV_CONF_OPTS += --with-crypto else LIBBLOCKDEV_CONF_OPTS += --without-crypto endif ifeq ($(BR2_PACKAGE_LIBBLOCKDEV_FS),y) LIBBLOCKDEV_DEPENDENCIES += parted util-linux LIBBLOCKDEV_CONF_OPTS += --with-fs else LIBBLOCKDEV_CONF_OPTS += --without-fs endif ifeq ($(BR2_PACKAGE_LIBBLOCKDEV_LOOP),y) LIBBLOCKDEV_CONF_OPTS += --with-loop else LIBBLOCKDEV_CONF_OPTS += --without-loop endif ifeq ($(BR2_PACKAGE_LIBBLOCKDEV_LVM2),y) LIBBLOCKDEV_DEPENDENCIES += lvm2 parted LIBBLOCKDEV_CONF_OPTS += --with-lvm else LIBBLOCKDEV_CONF_OPTS += --without-lvm endif ifeq ($(BR2_PACKAGE_LIBBLOCKDEV_MDRAID),y) LIBBLOCKDEV_DEPENDENCIES += libbytesize LIBBLOCKDEV_CONF_OPTS += --with-mdraid else LIBBLOCKDEV_CONF_OPTS += --without-mdraid endif ifeq ($(BR2_PACKAGE_LIBBLOCKDEV_PART),y) LIBBLOCKDEV_DEPENDENCIES += parted LIBBLOCKDEV_CONF_OPTS += --with-part else LIBBLOCKDEV_CONF_OPTS += --without-part endif ifeq ($(BR2_PACKAGE_LIBBLOCKDEV_SWAP),y) LIBBLOCKDEV_DEPENDENCIES += util-linux LIBBLOCKDEV_CONF_OPTS += --with-swap else LIBBLOCKDEV_CONF_OPTS += --without-swap endif $(eval $(autotools-package)) ================================================ FILE: package/libbluray/Config.in ================================================ config BR2_PACKAGE_LIBBLURAY bool "libbluray" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS help libbluray is a client library for accessing bluray disks. http://www.videolan.org/developers/libbluray.html comment "libbluray needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libbluray/libbluray.hash ================================================ # From http://download.videolan.org/pub/videolan/libbluray/1.3.0/libbluray-1.3.0.tar.bz2.sha512 sha512 3d5145e6fd7de099c07f937282112c7abb12a5590b7c0b965b00bddee3837ddfd1a30076aaa6d6278d07a5beee3856f602125983ae075ab30eceb6ac1bd9bcdc libbluray-1.3.0.tar.bz2 # Locally computed sha256 b3aa400aca6d2ba1f0bd03bd98d03d1fe7489a3bbb26969d72016360af8a5c9d COPYING ================================================ FILE: package/libbluray/libbluray.mk ================================================ ################################################################################ # # libbluray # ################################################################################ LIBBLURAY_VERSION = 1.3.0 LIBBLURAY_SITE = http://download.videolan.org/pub/videolan/libbluray/$(LIBBLURAY_VERSION) LIBBLURAY_SOURCE = libbluray-$(LIBBLURAY_VERSION).tar.bz2 LIBBLURAY_INSTALL_STAGING = YES LIBBLURAY_LICENSE = LGPL-2.1+ LIBBLURAY_LICENSE_FILES = COPYING LIBBLURAY_CPE_ID_VENDOR = videolan LIBBLURAY_DEPENDENCIES = host-pkgconf LIBBLURAY_CONF_OPTS = --disable-bdjava-jar ifeq ($(BR2_PACKAGE_LIBICONV),y) LIBBLURAY_DEPENDENCIES += libiconv endif ifeq ($(BR2_PACKAGE_LIBUDFREAD),y) LIBBLURAY_DEPENDENCIES += libudfread endif ifeq ($(BR2_PACKAGE_FREETYPE),y) LIBBLURAY_DEPENDENCIES += freetype LIBBLURAY_CONF_OPTS += --with-freetype else LIBBLURAY_CONF_OPTS += --without-freetype endif ifeq ($(BR2_PACKAGE_FONTCONFIG),y) LIBBLURAY_DEPENDENCIES += fontconfig LIBBLURAY_CONF_OPTS += --with-fontconfig else LIBBLURAY_CONF_OPTS += --without-fontconfig endif ifeq ($(BR2_PACKAGE_LIBXML2),y) LIBBLURAY_DEPENDENCIES += libxml2 LIBBLURAY_CONF_OPTS += --with-libxml2 else LIBBLURAY_CONF_OPTS += --without-libxml2 endif $(eval $(autotools-package)) ================================================ FILE: package/libbpf/Config.in ================================================ config BR2_PACKAGE_LIBBPF_ARCH_SUPPORTS bool # see src/bpf.c default y if BR2_arc default y if BR2_aarch64 || BR2_aarch64_be default y if BR2_i386 || BR2_x86_64 default y if BR2_sparc || BR2_sparc64 default y if BR2_s390x config BR2_PACKAGE_LIBBPF bool "libbpf" depends on BR2_PACKAGE_LIBBPF_ARCH_SUPPORTS depends on BR2_USE_WCHAR # elfutils depends on !BR2_STATIC_LIBS # elfutils depends on BR2_TOOLCHAIN_HAS_THREADS # elfutils depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13 depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils select BR2_PACKAGE_ELFUTILS select BR2_PACKAGE_ZLIB help libbpf library. A mirror of bpf-next linux tree bpf-next/tools/lib/bpf directory plus its supporting header files. The version of the package reflects the version of ABI. https://github.com/libbpf/libbpf comment "libbpf needs a uClibc or glibc toolchain w/ wchar, dynamic library, threads, headers >= 4.13" depends on BR2_PACKAGE_LIBBPF_ARCH_SUPPORTS depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS \ || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13 \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) ================================================ FILE: package/libbpf/libbpf.hash ================================================ # Locally calculated sha256 21cbee4df093e7fd29e76ed429650d3f3abe3a893f35e346ab9bc3484f6e68c0 libbpf-0.4.0.tar.gz sha256 847f4addbd56e2d5be20c4ea0845e972672fc07b755fadaae5f7abd35d71e349 LICENSE sha256 6313108c23efffa36948f8b2cff1560a5935373b527b0e1a837cc77e6ed1bacd LICENSE.BSD-2-Clause sha256 0b9a4febcdee6de55872501d5c1a8f5d8b0d1650cd4d5351995ceb22e889f8ca LICENSE.LGPL-2.1 ================================================ FILE: package/libbpf/libbpf.mk ================================================ ################################################################################ # # libbpf # ################################################################################ LIBBPF_VERSION = 0.4.0 LIBBPF_SITE = $(call github,libbpf,libbpf,v$(LIBBPF_VERSION)) LIBBPF_LICENSE = GPL-2.0, LGPL-2.1, BSD-2-Clause LIBBPF_LICENSE_FILES = LICENSE LICENSE.BSD-2-Clause LICENSE.LGPL-2.1 LIBBPF_DEPENDENCIES = host-bison host-flex host-pkgconf elfutils zlib LIBBPF_INSTALL_STAGING = YES define LIBBPF_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) \ -C $(@D)/src endef # bpf/bpf.h installed by libbpf uses bpf_iter_link_info that was added since # kernel 5.9, so we need to update some uapi headers in STAGING_DIR if the # toolchain is build with linux-headers < 5.9. # Otherwise bpf/bpf.h is broken due to out of date linux/bpf.h installed by the # toolchain. # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a5cbe05a6673b85bed2a63ffcfea6a96c6410cff ifeq ($(BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9),) LIBBPF_UPDATE_UAPI_HEADERS = install_uapi_headers endif define LIBBPF_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) \ -C $(@D)/src install $(LIBBPF_UPDATE_UAPI_HEADERS) \ DESTDIR=$(STAGING_DIR) endef define LIBBPF_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) \ -C $(@D)/src install DESTDIR=$(TARGET_DIR) endef $(eval $(generic-package)) ================================================ FILE: package/libbroadvoice/Config.in ================================================ config BR2_PACKAGE_LIBBROADVOICE bool "libbroadvoice" # broken with gcc <= 4.8 on arc # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59049 depends on !BR2_arc || BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 help broadvoice - a library for the BroadVoice 16 and 32 speech codecs https://www.broadcom.com/support/broadvoice ================================================ FILE: package/libbroadvoice/libbroadvoice.hash ================================================ # Locally computed sha256 777e5dccc3d189514b7f8e85b6c941d3b9d16d2d68d72cad055cbdfb571d3681 libbroadvoice-f65b0f50c8c767229fbf1758370880abc0d78564-br1.tar.gz sha256 2550586c993ce4a8c23c8b11968ea36192116a896a2504799cc65307d769c094 COPYING ================================================ FILE: package/libbroadvoice/libbroadvoice.mk ================================================ ################################################################################ # # libbroadvoice # ################################################################################ LIBBROADVOICE_VERSION = f65b0f50c8c767229fbf1758370880abc0d78564 # we use the FreeSwitch fork because (quoting README): # "This library is based on the Broadcom reference code, but has been # heavily modified so that it builds into a proper library, with a clean # usable interface, on a range of platforms." LIBBROADVOICE_SITE = https://freeswitch.org/stash/scm/sd/libbroadvoice.git LIBBROADVOICE_SITE_METHOD = git LIBBROADVOICE_LICENSE = LGPL-2.1 LIBBROADVOICE_LICENSE_FILES = COPYING LIBBROADVOICE_AUTORECONF = YES LIBBROADVOICE_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libbsd/Config.in ================================================ config BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS bool default y # libbsd does not support those architectures (see src/local-elf.h) depends on !BR2_microblaze depends on !BR2_arc depends on !BR2_xtensa depends on !BR2_nds32 config BR2_PACKAGE_LIBBSD bool "libbsd" depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR help This library provides useful functions commonly found on BSD systems, and lacking on others like GNU systems, thus making it easier to port projects with strong BSD origins, without needing to embed the same code over and over again on each project. http://libbsd.freedesktop.org/ comment "libbsd needs a toolchain w/ dynamic library, threads, wchar" depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_USE_WCHAR ================================================ FILE: package/libbsd/libbsd.hash ================================================ # From https://lists.freedesktop.org/archives/libbsd/2019-August/000229.html sha256 34b8adc726883d0e85b3118fa13605e179a62b31ba51f676136ecb2d0bc1a887 libbsd-0.10.0.tar.xz sha256 933d14a6bc89ee1fd7adbf5b6ec97f6ff0e002549d0b0c164f8a8895371d78f8 COPYING ================================================ FILE: package/libbsd/libbsd.mk ================================================ ################################################################################ # # libbsd # ################################################################################ LIBBSD_VERSION = 0.10.0 LIBBSD_SOURCE = libbsd-$(LIBBSD_VERSION).tar.xz LIBBSD_SITE = https://libbsd.freedesktop.org/releases LIBBSD_LICENSE = BSD-2-Clause, BSD-3-Clause, BSD-4-Clause, BSD-5-Clause, \ MIT, ISC, Beerware LIBBSD_LICENSE_FILES = COPYING LIBBSD_CPE_ID_VENDOR = freedesktop LIBBSD_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libbson/Config.in ================================================ config BR2_PACKAGE_LIBBSON bool "libbson" depends on BR2_TOOLCHAIN_HAS_THREADS help libbson is a library providing useful routines related to building, parsing, and iterating BSON documents. http://mongoc.org/libbson/ comment "libbson needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libbson/libbson.hash ================================================ # Locally calculated sha256 6bb51b863a4641d6d7729e4b55df8f4389ed534c34eb3a1cda906a53df11072c libbson-1.9.5.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 COPYING sha256 8dc5cb3146b026715e6c145621c7732f36c295d825b7b3a03076ad3f238db48e THIRD_PARTY_NOTICES ================================================ FILE: package/libbson/libbson.mk ================================================ ################################################################################ # # libbson # ################################################################################ LIBBSON_VERSION = 1.9.5 LIBBSON_SITE = https://github.com/mongodb/libbson/releases/download/$(LIBBSON_VERSION) LIBBSON_LICENSE = Apache-2.0, MIT (jsonl), ISC (b64), Zlib (md5) LIBBSON_LICENSE_FILES = COPYING THIRD_PARTY_NOTICES LIBBSON_CPE_ID_VENDOR = mongodb LIBBSON_CONF_OPTS = \ --disable-tests \ --disable-examples \ --disable-man-pages \ --disable-html-docs LIBBSON_INSTALL_STAGING = YES # Also has CMake support, but that forces shared+static libs and static # lib has a different name. $(eval $(autotools-package)) ================================================ FILE: package/libbytesize/Config.in ================================================ config BR2_PACKAGE_LIBBYTESIZE bool "libbytesize" select BR2_PACKAGE_GMP select BR2_PACKAGE_MPFR select BR2_PACKAGE_PCRE2 help A tiny library that facilitates the common operations with sizes in bytes https://github.com/storaged-project/libbytesize/ ================================================ FILE: package/libbytesize/libbytesize.hash ================================================ # Locally calculated sha256 6305addae2b7be313dbfc36b96094ec0544d5144859ab4a5685ca6d314d6fdda libbytesize-2.5.tar.gz sha256 97bdc721d875501b6243a456333fdfdb1ab64d31c4da2554de845caf4674b946 LICENSE ================================================ FILE: package/libbytesize/libbytesize.mk ================================================ ################################################################################ # # libbytesize # ################################################################################ LIBBYTESIZE_VERSION = 2.5 LIBBYTESIZE_SITE = https://github.com/storaged-project/libbytesize/releases/download/$(LIBBYTESIZE_VERSION) LIBBYTESIZE_LICENSE = LGPL-2.1+ LIBBYTESIZE_LICENSE_FILES = LICENSE LIBBYTESIZE_INSTALL_STAGING = YES LIBBYTESIZE_DEPENDENCIES = \ host-pkgconf \ host-gettext \ gmp \ mpfr \ pcre2 LIBBYTESIZE_CONF_OPTS += \ --without-python3 \ --without-tools $(eval $(autotools-package)) ================================================ FILE: package/libcamera/Config.in ================================================ config BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS bool default y # Invalid packing size of ControlValue struct on m68k depends on !BR2_m68k depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 menuconfig BR2_PACKAGE_LIBCAMERA bool "libcamera" depends on BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 depends on !BR2_STATIC_LIBS # gnutls depends on BR2_USE_WCHAR # gnutls select BR2_PACKAGE_GNUTLS select BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO if !BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE help libcamera provides a software stack to support complex devices that need heavy hardware image processing operations. http://www.libcamera.org/ if BR2_PACKAGE_LIBCAMERA config BR2_PACKAGE_LIBCAMERA_V4L2 bool "libcamera v4l2 compatibility layer" help libcamera v4l2 compatibility layer config BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE bool config BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3 bool "ipu3 pipeline" depends on BR2_i386 || BR2_x86_64 select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE help Pipeline for Intel IPU3. config BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI bool "raspberrypi pipeline" depends on BR2_arm || BR2_aarch64 depends on BR2_USE_WCHAR # boost (already enforced for gnutls) select BR2_PACKAGE_BOOST select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE help Pipeline for Raspberry Pi devices. config BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1 bool "rkisp1 pipeline" depends on BR2_arm || BR2_aarch64 select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE help Pipeline for Rockchip ISP1. config BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE bool "simple pipeline" select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE help Pipeline for simple pipelines. config BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO bool "uvcvideo pipeline" help Pipeline for uvcvideo devices. config BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC bool "vimc pipeline" select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE help Pipeline for the vimc device. config BR2_PACKAGE_LIBCAMERA_COMPLIANCE bool "lc-compliance test application" depends on BR2_USE_WCHAR # gtest depends on BR2_TOOLCHAIN_HAS_THREADS # gtest depends on BR2_INSTALL_LIBSTDCPP # gtest depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # gtest depends on BR2_USE_MMU # gtest select BR2_PACKAGE_GTEST select BR2_PACKAGE_LIBEVENT help lc-compliance test application comment "lc-compliance test application needs a toolchain w/ C++, wchar, threads, gcc >= 4.9" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 endif # BR2_PACKAGE_LIBCAMERA comment "libcamera needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 7" depends on BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || BR2_STATIC_LIBS || !BR2_USE_WCHAR ================================================ FILE: package/libcamera/libcamera.hash ================================================ sha256 305e6f458d2bf3d4b697ffe33e104b696db6b1492bb5422e2cce1937e58516f1 libcamera-40f5fddca7f774944a53f58eeaebc4db79c373d8-br1.tar.gz # license files sha256 fd38b2c053c0cce46d9c5ef3545a6e34d157a240ba99c9b8dca5d37a8147da6c LICENSES/BSD-2-Clause.txt sha256 e11af671c491efac2f94c1d752bea92f4308ca2450c7d11e582e4b48c40e4de1 LICENSES/BSD-3-Clause.txt sha256 6a573fb2f9082662978cf21fb153096df0a1981deaea7dbc10a11046fe005d9f LICENSES/CC0-1.0.txt sha256 ec3732087acf8c52429a020d6bba362ff578705bdb53365a21744485ec15b0e6 LICENSES/CC-BY-SA-4.0.txt sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSES/GPL-2.0-only.txt sha256 606aa26338f69ce178f1cbc648b7574aec4b5bbaeb20f4df36ff49010cb8fbbd LICENSES/GPL-2.0-or-later.txt sha256 1ccf09bf2f598308df4bed9cd8e9657dc5cd0973d2800318f2e241486e2edf3f LICENSES/LGPL-2.1-or-later.txt sha256 3f9e477523febab58de8b716ccfbcf02e6ef1c8e7728953905e8558637abe2a9 LICENSES/Linux-syscall-note.txt sha256 8f25018489d6fe0dec34a352314c38dc146247b7de65735790f4398a92afa84b LICENSES/MIT.txt ================================================ FILE: package/libcamera/libcamera.mk ================================================ ################################################################################ # # libcamera # ################################################################################ LIBCAMERA_SITE = https://git.linuxtv.org/libcamera.git LIBCAMERA_VERSION = 40f5fddca7f774944a53f58eeaebc4db79c373d8 LIBCAMERA_SITE_METHOD = git LIBCAMERA_DEPENDENCIES = \ host-openssl \ host-pkgconf \ host-python-jinja2 \ host-python3-ply \ host-python3-pyyaml \ gnutls LIBCAMERA_CONF_OPTS = \ -Dandroid=disabled \ -Ddocumentation=disabled \ -Dtest=false \ -Dwerror=false LIBCAMERA_INSTALL_STAGING = YES LIBCAMERA_LICENSE = \ LGPL-2.1+ (library), \ GPL-2.0+ (utils), \ MIT (qcam/assets/feathericons), \ BSD-2-Clause (raspberrypi), \ GPL-2.0 with Linux-syscall-note or BSD-3-Clause (linux kernel headers), \ CC0-1.0 (meson build system), \ CC-BY-SA-4.0 (doc) LIBCAMERA_LICENSE_FILES = \ LICENSES/LGPL-2.1-or-later.txt \ LICENSES/GPL-2.0-or-later.txt \ LICENSES/MIT.txt \ LICENSES/BSD-2-Clause.txt \ LICENSES/GPL-2.0-only.txt \ LICENSES/Linux-syscall-note.txt \ LICENSES/BSD-3-Clause.txt \ LICENSES/CC0-1.0.txt \ LICENSES/CC-BY-SA-4.0.txt ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_7),y) LIBCAMERA_CXXFLAGS = -faligned-new endif ifeq ($(BR2_PACKAGE_LIBCAMERA_V4L2),y) LIBCAMERA_CONF_OPTS += -Dv4l2=true else LIBCAMERA_CONF_OPTS += -Dv4l2=false endif LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3) += ipu3 ifeq ($(BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI),y) LIBCAMERA_PIPELINES-y += raspberrypi LIBCAMERA_DEPENDENCIES += boost endif LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1) += rkisp1 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE) += simple LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO) += uvcvideo LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC) += vimc LIBCAMERA_CONF_OPTS += -Dpipelines=$(subst $(space),$(comma),$(LIBCAMERA_PIPELINES-y)) ifeq ($(BR2_PACKAGE_LIBCAMERA_COMPLIANCE),y) LIBCAMERA_DEPENDENCIES += gtest libevent LIBCAMERA_CONF_OPTS += -Dlc-compliance=enabled else LIBCAMERA_CONF_OPTS += -Dlc-compliance=disabled endif # gstreamer-video-1.0, gstreamer-allocators-1.0 ifeq ($(BR2_PACKAGE_GSTREAMER1)$(BR2_PACKAGE_GST1_PLUGINS_BASE),yy) LIBCAMERA_CONF_OPTS += -Dgstreamer=enabled LIBCAMERA_DEPENDENCIES += gstreamer1 gst1-plugins-base endif ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS),y) LIBCAMERA_CONF_OPTS += -Dqcam=enabled LIBCAMERA_DEPENDENCIES += qt5base ifeq ($(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS),y) LIBCAMERA_DEPENDENCIES += qt5tools endif else LIBCAMERA_CONF_OPTS += -Dqcam=disabled endif ifeq ($(BR2_PACKAGE_TIFF),y) LIBCAMERA_DEPENDENCIES += tiff endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) LIBCAMERA_DEPENDENCIES += udev endif ifeq ($(BR2_PACKAGE_LTTNG_LIBUST),y) LIBCAMERA_CONF_OPTS += -Dtracing=enabled LIBCAMERA_DEPENDENCIES += lttng-libust else LIBCAMERA_CONF_OPTS += -Dtracing=disabled endif $(eval $(meson-package)) ================================================ FILE: package/libcap/0001-libcap-Makefile-don-t-overwrite-empty-when-generatin.patch ================================================ From dc507a812d931c24f1ac98c811fdd29bffa21da9 Mon Sep 17 00:00:00 2001 From: "Arnout Vandecappelle (Essensium/Mind)" Date: Tue, 24 Aug 2021 00:36:40 +0200 Subject: [PATCH] libcap/Makefile: don't overwrite 'empty' when generating loader.txt objcopy takes an input file and an output file as arguments. If the output file is left out, the input file will be overwritten. Since the objcopy command used to generate loader.txt only does a dump-section and no filtering, in practice there is no change to empty. However, as a side-effect, its timestamp is updated. The timestamp of empty and of loader.txt will be more or less the same; however, loader.txt is closed just before the output file is closed, so it's possible that the timestamp of loader.txt is just a little bit earlier. If this happens, it causes loader.txt to be rebuilt later, which in turn causes a number of other object files to be rebuilt. Usually that's harmless, but it sometimes causes the rebuild to happen during 'make install'. This is particularly annoying if 'make install' is done as root, since loader.txt becomes owned by root in that case. Fix this by specifying a harmless output file: /dev/null. While we're at it, take in an upstream change that removes the redundant redirect. Fixes: ee3b25c0a877fa74d1aec88f325ac45b09963c82 Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- libcap/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcap/Makefile b/libcap/Makefile index 47cf8f4..18e4f4f 100644 --- a/libcap/Makefile +++ b/libcap/Makefile @@ -105,7 +105,7 @@ empty: empty.c $(CC) -o $@ $< loader.txt: empty - $(OBJCOPY) --dump-section .interp=/dev/stdout $< > $@ + $(OBJCOPY) --dump-section .interp=$@ $< /dev/null cap_magic.o: execable.h execable.c loader.txt $(CC) $(CFLAGS) $(IPATH) -DLIBRARY_VERSION=\"$(LIBTITLE)-$(VERSION).$(MINOR)\" -DSHARED_LOADER=\"$(shell cat loader.txt)\" -c execable.c -o $@ -- 2.31.1 ================================================ FILE: package/libcap/Config.in ================================================ config BR2_PACKAGE_LIBCAP bool "libcap" depends on BR2_USE_MMU # fork() help This library implements the user-space interfaces to the POSIX 1003.1e capabilities available in Linux kernels. These capabilities are a partitioning of the all powerful root privilege into a set of distinct privileges. https://sites.google.com/site/fullycapable/ if BR2_PACKAGE_LIBCAP config BR2_PACKAGE_LIBCAP_TOOLS bool "install tools" help Install setcap, getcap, getpcaps and capsh tools. For these tools to run properly, you should enable, in your kernel configuration, extended file attributes/security labels support for the file system type used on target system (e.g. CONFIG_EXT2_FS_XATTR and CONFIG_EXT2_FS_SECURITY for ext2). endif ================================================ FILE: package/libcap/libcap.hash ================================================ # https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/sha256sums.asc sha256 a2faacd55ae5959db1b0c695f91f256ac4c5e6b10acaeaeaf508ea1ee887fa97 libcap-2.52.tar.xz # Hash for license file: sha256 f58c80bcce8c929db39a23c32e924876e3311f3ffa54f66076c38056d38fa59b License ================================================ FILE: package/libcap/libcap.mk ================================================ ################################################################################ # # libcap # ################################################################################ LIBCAP_VERSION = 2.52 LIBCAP_SITE = https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2 LIBCAP_SOURCE = libcap-$(LIBCAP_VERSION).tar.xz LIBCAP_LICENSE = GPL-2.0 or BSD-3-Clause LIBCAP_LICENSE_FILES = License LIBCAP_CPE_ID_VENDOR = libcap_project LIBCAP_DEPENDENCIES = host-libcap host-gperf LIBCAP_INSTALL_STAGING = YES HOST_LIBCAP_DEPENDENCIES = host-gperf LIBCAP_MAKE_FLAGS = \ CROSS_COMPILE="$(TARGET_CROSS)" \ BUILD_CC="$(HOSTCC)" \ BUILD_CFLAGS="$(HOST_CFLAGS)" \ lib=lib \ prefix=/usr \ SHARED=$(if $(BR2_STATIC_LIBS),,yes) \ PTHREADS=$(if $(BR2_TOOLCHAIN_HAS_THREADS),yes,) LIBCAP_MAKE_DIRS = libcap ifeq ($(BR2_PACKAGE_LIBCAP_TOOLS),y) LIBCAP_MAKE_DIRS += progs endif define LIBCAP_BUILD_CMDS $(foreach d,$(LIBCAP_MAKE_DIRS), \ $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/$(d) \ $(LIBCAP_MAKE_FLAGS) all ) endef define LIBCAP_INSTALL_STAGING_CMDS $(foreach d,$(LIBCAP_MAKE_DIRS), \ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/$(d) $(LIBCAP_MAKE_FLAGS) \ DESTDIR=$(STAGING_DIR) install ) endef define LIBCAP_INSTALL_TARGET_CMDS $(foreach d,$(LIBCAP_MAKE_DIRS), \ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/$(d) $(LIBCAP_MAKE_FLAGS) \ DESTDIR=$(TARGET_DIR) install ) endef HOST_LIBCAP_MAKE_FLAGS = \ DYNAMIC=yes \ GOLANG=no \ lib=lib \ prefix=$(HOST_DIR) \ RAISE_SETFCAP=no define HOST_LIBCAP_BUILD_CMDS $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(HOST_LIBCAP_MAKE_FLAGS) endef define HOST_LIBCAP_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_LIBCAP_MAKE_FLAGS) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/libcap-ng/Config.in ================================================ config BR2_PACKAGE_LIBCAP_NG bool "libcap-ng" help The libcap-ng library is intended to make programming with posix capabilities much easier than the traditional libcap library. It includes utilities that can analyse all currently running applications and print out any capabilities and whether or not it has an open ended bounding set. http://people.redhat.com/sgrubb/libcap-ng/ ================================================ FILE: package/libcap-ng/libcap-ng.hash ================================================ # Locally calculated sha256 52c083b77c2b0d8449dee141f9c3eba76e6d4c5ad44ef05df25891126cb85ae9 libcap-ng-0.8.2.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING sha256 f18a0811fa0e220ccbc42f661545e77f0388631e209585ed582a1c693029c6aa COPYING.LIB ================================================ FILE: package/libcap-ng/libcap-ng.mk ================================================ ################################################################################ # # libcap-ng # ################################################################################ LIBCAP_NG_VERSION = 0.8.2 LIBCAP_NG_SITE = http://people.redhat.com/sgrubb/libcap-ng LIBCAP_NG_LICENSE = GPL-2.0+ (programs), LGPL-2.1+ (library) LIBCAP_NG_LICENSE_FILES = COPYING COPYING.LIB LIBCAP_NG_CPE_ID_VENDOR = libcap-ng_project LIBCAP_NG_INSTALL_STAGING = YES LIBCAP_NG_CONF_ENV = ac_cv_prog_swig_found=no LIBCAP_NG_CONF_OPTS = --without-python HOST_LIBCAP_NG_CONF_ENV = ac_cv_prog_swig_found=no HOST_LIBCAP_NG_CONF_OPTS = --without-python $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libcdaudio/0001-libcdaudio-enable-autoreconf.patch ================================================ From 9c2873b1d9292bcf43c862b6777d41c40521424c Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Sun, 13 Jan 2019 22:27:42 +0100 Subject: [PATCH] libcdaudio: enable autoreconf Fixes the following two autoreconf errors (by simple removing of the two offending lines): configure.ac:20: error: automatic de-ANSI-fication support has been removed Makefile.am:2: error: automatic de-ANSI-fication support has been removed Signed-off-by: Peter Seiderer --- Makefile.am | 1 - configure.ac | 1 - 2 files changed, 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index f639dd8..a32cfe6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,4 @@ ## Process this file with automake to produce Makefile.in -AUTOMAKE_OPTIONS = ansi2knr SUBDIRS = src bin_SCRIPTS = libcdaudio-config diff --git a/configure.ac b/configure.ac index bbdd42d..6699ceb 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,6 @@ AM_CONFIG_HEADER(config.h) AC_PROG_AWK AC_PROG_CC AC_PROG_CPP -AM_C_PROTOTYPES AM_PROG_CC_STDC AC_PROG_INSTALL AC_PROG_LN_S -- 2.20.1 ================================================ FILE: package/libcdaudio/Config.in ================================================ config BR2_PACKAGE_LIBCDAUDIO bool "libcdaudio" # binutils assertion failure depends on !BR2_nios2 help libcdaudio is a library designed to provide functions to control operation of a CD-ROM when playing audio CDs. It also contains functions for CDDB and CD Index lookup. http://libcdaudio.sourceforge.net/ ================================================ FILE: package/libcdaudio/libcdaudio.hash ================================================ # Locally computed: sha256 5fdaf9af5ac4f75c0215d000b82b128fd054a582f81cc4f039a1e7fe69335ebb libcdaudio-0.99.12p2.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/libcdaudio/libcdaudio.mk ================================================ ################################################################################ # # libcdaudio # ################################################################################ LIBCDAUDIO_VERSION = 0.99.12p2 LIBCDAUDIO_SITE = http://downloads.sourceforge.net/project/libcdaudio/libcdaudio/$(LIBCDAUDIO_VERSION) LIBCDAUDIO_INSTALL_STAGING = YES LIBCDAUDIO_CONFIG_SCRIPTS = libcdaudio-config LIBCDAUDIO_LICENSE = GPL-2.0+ LIBCDAUDIO_LICENSE_FILES = COPYING # fix configure failure when the toolchain doesn't have C++ support LIBCDAUDIO_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/libcddb/Config.in ================================================ config BR2_PACKAGE_LIBCDDB bool "libcddb" select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Libcddb is a C library to access data on a CDDB server (freedb.org). It allows you to: * search the database for possible CD matches; * retrieve detailed information about a specific CD; * submit new CD entries to the database. http://libcddb.sourceforge.net/index.html if BR2_PACKAGE_LIBCDDB config BR2_PACKAGE_LIBCDDB_INSTALL_CDDB_QUERY bool "install cddb_query" help cddb_query is an optionnal libcddb test program. endif ================================================ FILE: package/libcddb/libcddb.hash ================================================ # Locally computed: sha256 35ce0ee1741ea38def304ddfe84a958901413aa829698357f0bee5bb8f0a223b libcddb-1.3.2.tar.bz2 sha256 7a4436f9ec37603356791c87de3bc444989befd2682d29efb3d97604e04c1852 COPYING ================================================ FILE: package/libcddb/libcddb.mk ================================================ ################################################################################ # # libcddb # ################################################################################ LIBCDDB_VERSION = 1.3.2 LIBCDDB_SOURCE = libcddb-$(LIBCDDB_VERSION).tar.bz2 LIBCDDB_SITE = http://downloads.sourceforge.net/libcddb LIBCDDB_LICENSE = LGPL-2.0+ LIBCDDB_LICENSE_FILES = COPYING LIBCDDB_INSTALL_STAGING = YES ifeq ($(BR2_ENABLE_LOCALE),) LIBCDDB_DEPENDENCIES += libiconv endif define LIBCDDB_REMOVE_CDDB_QUERY rm -f $(TARGET_DIR)/usr/bin/cddb_query endef ifeq ($(BR2_PACKAGE_LIBCDDB_INSTALL_CDDB_QUERY),) LIBCDDB_POST_INSTALL_TARGET_HOOKS += LIBCDDB_REMOVE_CDDB_QUERY endif $(eval $(autotools-package)) ================================================ FILE: package/libcdio/Config.in ================================================ config BR2_PACKAGE_LIBCDIO bool "libcdio" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help The GNU Compact Disc Input and Control library. http://www.gnu.org/software/libcdio/ ================================================ FILE: package/libcdio/libcdio.hash ================================================ # Locally calculated after checking signature sha256 8550e9589dbd594bfac93b81ecf129b1dc9d0d51e90f9696f1b2f9b2af32712b libcdio-2.1.0.tar.bz2 # Hash for license file: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/libcdio/libcdio.mk ================================================ ################################################################################ # # libcdio # ################################################################################ LIBCDIO_VERSION = 2.1.0 LIBCDIO_SOURCE = libcdio-$(LIBCDIO_VERSION).tar.bz2 LIBCDIO_SITE = $(BR2_GNU_MIRROR)/libcdio LIBCDIO_INSTALL_STAGING = YES LIBCDIO_LICENSE = GPL-3.0+ LIBCDIO_LICENSE_FILES = COPYING LIBCDIO_CPE_ID_VENDOR = gnu LIBCDIO_CONF_OPTS = --disable-example-progs --disable-cddb ifeq ($(BR2_ENABLE_LOCALE),) LIBCDIO_DEPENDENCIES += libiconv endif ifeq ($(BR2_INSTALL_LIBSTDCPP),) LIBCDIO_CONF_OPTS += --disable-cxx endif ifeq ($(BR2_PACKAGE_NCURSES),y) LIBCDIO_DEPENDENCIES += ncurses else LIBCDIO_CONF_OPTS += --without-cdda-player endif $(eval $(autotools-package)) ================================================ FILE: package/libcdio-paranoia/Config.in ================================================ config BR2_PACKAGE_LIBCDIO_PARANOIA bool "libcdio-paranoia" depends on BR2_USE_MMU # libcdio select BR2_PACKAGE_LIBCDIO help CD paranoia on top of libcdio http://www.gnu.org/software/libcdio/ ================================================ FILE: package/libcdio-paranoia/libcdio-paranoia.hash ================================================ # Locally computed: sha256 33b1cf305ccfbfd03b43936975615000ce538b119989c4bec469577570b60e8a libcdio-paranoia-10.2+2.0.1.tar.bz2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/libcdio-paranoia/libcdio-paranoia.mk ================================================ ################################################################################ # # libcdio-paranoia # ################################################################################ LIBCDIO_PARANOIA_VERSION = 10.2+2.0.1 LIBCDIO_PARANOIA_SOURCE = libcdio-paranoia-$(LIBCDIO_PARANOIA_VERSION).tar.bz2 LIBCDIO_PARANOIA_SITE = $(BR2_GNU_MIRROR)/libcdio LIBCDIO_PARANOIA_LICENSE = GPL-3.0+ LIBCDIO_PARANOIA_LICENSE_FILES = COPYING LIBCDIO_PARANOIA_INSTALL_STAGING = YES LIBCDIO_PARANOIA_DEPENDENCIES = host-pkgconf libcdio LIBCDIO_PARANOIA_CONF_OPTS = --disable-example-progs ifeq ($(BR2_INSTALL_LIBSTDCPP),) LIBCDIO_PARANOIA_CONF_OPTS += --disable-cxx endif $(eval $(autotools-package)) ================================================ FILE: package/libcec/Config.in ================================================ config BR2_PACKAGE_LIBCEC bool "libcec" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 select BR2_PACKAGE_LIBPLATFORM help libcec allows you in combination with the right hardware to control your home theater devices with your TV remote control utilizing existing HDMI cabling. http://libcec.pulse-eight.com comment "libcec needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 4.7" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \ BR2_STATIC_LIBS ================================================ FILE: package/libcec/libcec.hash ================================================ # Locally computed sha256 090696d7a4fb772d7acebbb06f91ab92e025531c7c91824046b9e4e71ecb3377 libcec-6.0.2.tar.gz sha256 0137261d24ce001fc5237aacddd267533e0f150ac23cf21acffea599f7358f7a COPYING ================================================ FILE: package/libcec/libcec.mk ================================================ ################################################################################ # # libcec # ################################################################################ LIBCEC_VERSION = 6.0.2 LIBCEC_SITE = $(call github,Pulse-Eight,libcec,libcec-$(LIBCEC_VERSION)) LIBCEC_LICENSE = GPL-2.0+ LIBCEC_LICENSE_FILES = COPYING LIBCEC_INSTALL_STAGING = YES LIBCEC_DEPENDENCIES = host-pkgconf libplatform ifeq ($(BR2_PACKAGE_LOCKDEV),y) LIBCEC_DEPENDENCIES += lockdev endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) LIBCEC_DEPENDENCIES += udev endif ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y) LIBCEC_DEPENDENCIES += host-swig $(if $(BR2_PACKAGE_PYTHON3),python3,python) endif ifeq ($(BR2_PACKAGE_RPI_USERLAND),y) LIBCEC_DEPENDENCIES += rpi-userland LIBCEC_CONF_OPTS += \ -DCMAKE_C_FLAGS="$(TARGET_CFLAGS) -lvcos -lvchiq_arm" \ -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) \ -I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux \ -I$(STAGING_DIR)/usr/include/interface/vcos/pthreads" endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) LIBCEC_DEPENDENCIES += xlib_libXrandr endif # Disable information about how libCEC is compiled. LIBCEC_CONF_OPTS += -DHAVE_GIT_BIN="" \ -DHAVE_DATE_BIN="" \ -DHAVE_WHOAMI_BIN="" \ -DHAVE_HOSTNAME_BIN="" \ -DHAVE_UNAME_BIN="" $(eval $(cmake-package)) ================================================ FILE: package/libcgi/Config.in ================================================ config BR2_PACKAGE_LIBCGI bool "libcgi" help LibCGI is a library written from scratch to easily make CGI applications in C. There are a lot of functions like string manipulation, session and cookie support, GET and POST methods manipulation etc..., to help you to quickly write powerful CGI programs. https://github.com/rafaelsteil/libcgi/ ================================================ FILE: package/libcgi/libcgi.hash ================================================ # From https://github.com/rafaelsteil/libcgi/releases/download/v1.3.0/libcgi-1.3.0.tar.gz.md5 md5 6efdc968bdf986832b7e220d1b914e57 libcgi-1.3.0.tar.gz # From https://github.com/rafaelsteil/libcgi/releases/download/v1.3.0/libcgi-1.3.0.tar.gz.sha256 sha256 d932f380b1a5dbfbddffaa76fac71bf505a9585d441c9ae86bfbf76033d9d8df libcgi-1.3.0.tar.gz # Hash for license file: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSES/LGPL-2.1.txt sha256 f32c31e26ec840753a8cd47cd2681e48be4cee853212d16a4b1d85ac4d677669 LICENSES/MIT.txt ================================================ FILE: package/libcgi/libcgi.mk ================================================ ################################################################################ # # libcgi # ################################################################################ LIBCGI_VERSION = 1.3.0 LIBCGI_SITE = https://github.com/rafaelsteil/libcgi/releases/download/v$(LIBCGI_VERSION) LIBCGI_INSTALL_STAGING = YES LIBCGI_LICENSE = LGPL-2.1+, MIT (base64.c) LIBCGI_LICENSE_FILES = LICENSES/LGPL-2.1.txt LICENSES/MIT.txt $(eval $(cmake-package)) ================================================ FILE: package/libcgicc/0001-disable-documentation-option.patch ================================================ Index: cgicc-3.2.9/Makefile.am =================================================================== --- cgicc-3.2.9.orig/Makefile.am 2010-02-25 16:34:06.000000000 +0100 +++ cgicc-3.2.9/Makefile.am 2010-02-25 16:34:14.000000000 +0100 @@ -8,9 +8,15 @@ DEMO = endif +if DOC +DOCDIR = doc +else +DOC = +endif + ACLOCAL_AMFLAGS= -SUBDIRS = cgicc doc support $(DEMO) +SUBDIRS = cgicc $(DOCDIR) support $(DEMO) CLEANFILES = *~ Index: cgicc-3.2.9/configure.ac =================================================================== --- cgicc-3.2.9.orig/configure.ac 2010-02-25 16:34:06.000000000 +0100 +++ cgicc-3.2.9/configure.ac 2010-02-25 16:45:46.000000000 +0100 @@ -17,9 +17,23 @@ AC_PROG_CXX AC_PROG_INSTALL AC_PROG_LIBTOOL -AC_CHECK_PROG(DOXYGEN, doxygen, doxygen, /bin/echo) +AC_ARG_ENABLE(doc, + [ --enable-doc build doc [[default=yes]]], + [case "${enableval}" in + yes) cgicc_doc=yes ;; + no) cgicc_doc=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-doc) ;; + esac], cgicc_doc=yes) + +if test "$cgicc_doc" = yes; then + AC_CHECK_PROG(DOXYGEN, doxygen, doxygen) + if test -z "$DOXYGEN" ; then + AC_MSG_ERROR([Doxygen is required to build the documentation]) + fi +fi +AM_CONDITIONAL(DOC, test "$cgicc_doc" = yes) dnl Determine host system type ================================================ FILE: package/libcgicc/Config.in ================================================ config BR2_PACKAGE_LIBCGICC bool "libcgicc" depends on BR2_INSTALL_LIBSTDCPP help GNU cgicc is a C++ class library that greatly simplifies the creation of CGI applications for the World Wide Web. http://www.cgicc.com comment "libcgicc needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/libcgicc/libcgicc.hash ================================================ # Locally calculated after checking pgp signature sha256 2a17b976248de03447f9e36d6ce18a80749990d8543e2dfeea09c413eb67f7f0 cgicc-3.2.19.tar.gz # Hash for license files: sha256 a2e480f5e8afd7c587a3c0ac2ed3b73ed4b10fa3a553dea26e7b661c7cedda72 COPYING.LIB sha256 0fd15977dc962abf3eced509b1cf5356f9784939742d67a635671141023a11da COPYING.DOC ================================================ FILE: package/libcgicc/libcgicc.mk ================================================ ################################################################################ # # libcgicc # ################################################################################ LIBCGICC_VERSION = 3.2.19 LIBCGICC_SITE = $(BR2_GNU_MIRROR)/cgicc LIBCGICC_SOURCE = cgicc-$(LIBCGICC_VERSION).tar.gz LIBCGICC_LICENSE = LGPL-3.0+ (library), GFDL-1.2+ (docs) LIBCGICC_LICENSE_FILES = COPYING.LIB COPYING.DOC LIBCGICC_INSTALL_STAGING = YES LIBCGICC_AUTORECONF = YES LIBCGICC_CONFIG_SCRIPTS = cgicc-config LIBCGICC_CONF_OPTS = \ --disable-demos \ --disable-doc $(eval $(autotools-package)) ================================================ FILE: package/libcgroup/Config.in ================================================ config BR2_PACKAGE_LIBCGROUP bool "libcgroup" depends on BR2_INSTALL_LIBSTDCPP # libcgroup uses which is not included by default in uClibc depends on BR2_TOOLCHAIN_USES_GLIBC help libcgroup is a library that abstracts the control group file system in Linux. http://libcg.sourceforge.net/ if BR2_PACKAGE_LIBCGROUP config BR2_PACKAGE_LIBCGROUP_TOOLS bool "install tools" help Include a set of command-line tools for managing cgroups. endif comment "libcgroup needs a glibc toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_USES_GLIBC ================================================ FILE: package/libcgroup/libcgroup.hash ================================================ # From https://github.com/libcgroup/libcgroup/releases/download/v0.42.2/libcgroup-0.42.2.tar.bz2.sha256 sha256 18939381324d418e11be4f5fdca37b01652c18917bfaf1f6b0c505f157e18d07 libcgroup-0.42.2.tar.bz2 # Hash for license file sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING ================================================ FILE: package/libcgroup/libcgroup.mk ================================================ ################################################################################ # # libcgroup # ################################################################################ LIBCGROUP_VERSION = 0.42.2 LIBCGROUP_SOURCE = libcgroup-$(LIBCGROUP_VERSION).tar.bz2 LIBCGROUP_SITE = https://github.com/libcgroup/libcgroup/releases/download/v$(LIBCGROUP_VERSION) LIBCGROUP_LICENSE = LGPL-2.1 LIBCGROUP_LICENSE_FILES = COPYING LIBCGROUP_CPE_ID_VENDOR = libcgroup_project LIBCGROUP_DEPENDENCIES = host-bison host-flex LIBCGROUP_INSTALL_STAGING = YES # Undefining _FILE_OFFSET_BITS here because of a "bug" with glibc fts.h # large file support. See https://bugzilla.redhat.com/show_bug.cgi?id=574992 # for more information. LIBCGROUP_CONF_ENV = \ CXXFLAGS="$(TARGET_CXXFLAGS) -U_FILE_OFFSET_BITS" \ CFLAGS="$(TARGET_CFLAGS) -U_FILE_OFFSET_BITS" LIBCGROUP_CONF_OPTS = \ --disable-daemon \ --disable-initscript-install ifeq ($(BR2_PACKAGE_LIBCGROUP_TOOLS),y) LIBCGROUP_CONF_OPTS += --enable-tools else LIBCGROUP_CONF_OPTS += --disable-tools endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) LIBCGROUP_DEPENDENCIES += linux-pam LIBCGROUP_CONF_OPTS += --enable-pam else LIBCGROUP_CONF_OPTS += --disable-pam endif $(eval $(autotools-package)) ================================================ FILE: package/libclc/Config.in ================================================ config BR2_PACKAGE_LIBCLC bool "libclc" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS help libclc is an open source, BSD licensed implementation of the library requirements of the OpenCL C programming language, as specified by the OpenCL 1.1 Specification. http://libclc.llvm.org/ ================================================ FILE: package/libclc/libclc.hash ================================================ # locally calculated sha256 54d7ae523aabf68d533011739d6c01546cae0c294442d0f44fd657c046cb707d libclc-d1cbc92e2ceee59963f5c3a576382e5bba31f060-br1.tar.gz sha256 3c536c052db9afd997809e38785c9f2a9e54e2892330fa7c5b438e18a7413479 LICENSE.TXT ================================================ FILE: package/libclc/libclc.mk ================================================ ################################################################################ # # libclc # ################################################################################ # Use the latest commit from release_90 branch. LIBCLC_VERSION = d1cbc92e2ceee59963f5c3a576382e5bba31f060 LIBCLC_SITE = https://github.com/llvm-mirror/libclc LIBCLC_SITE_METHOD = git LIBCLC_LICENSE = Apache-2.0 with exceptions or MIT LIBCLC_LICENSE_FILES = LICENSE.TXT LIBCLC_DEPENDENCIES = host-clang host-llvm LIBCLC_INSTALL_STAGING = YES # C++ compiler is used to build a small tool (prepare-builtins) for the host. # It must be built with the C++ compiler from the host. # # The headers are installed in /usr/share and not /usr/include, # because they are needed at runtime on the target to build the OpenCL # kernels. LIBCLC_CONF_OPTS = \ --with-llvm-config=$(HOST_DIR)/usr/bin/llvm-config \ --prefix=/usr \ --includedir=/usr/share \ --pkgconfigdir=/usr/lib/pkgconfig \ --with-cxx-compiler=$(HOSTCXX_NOCCACHE) define LIBCLC_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure.py $(LIBCLC_CONF_OPTS)) endef define LIBCLC_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define LIBCLC_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef define LIBCLC_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/libcli/Config.in ================================================ config BR2_PACKAGE_LIBCLI bool "libcli" help Libcli provides a shared library for including a Cisco-like command-line interface into other software. It's a telnet interface which supports command-line editing, history, authentication and callbacks for a user-definable function tree. https://github.com/dparrish/libcli ================================================ FILE: package/libcli/libcli.hash ================================================ # Locally calculated sha256 43efade6f3deb621e1e226b7854274a869fca57e12e74e61c5496d5dea7c445d libcli-1.10.4.tar.gz sha256 376b54d4c5f4aa99421823fa4da93e3ab73096fce2400e89858632aa7da24a14 COPYING ================================================ FILE: package/libcli/libcli.mk ================================================ ################################################################################ # # libcli # ################################################################################ LIBCLI_VERSION = 1.10.4 LIBCLI_SITE = $(call github,dparrish,libcli,V$(LIBCLI_VERSION)) LIBCLI_LICENSE = LGPL-2.1 LIBCLI_LICENSE_FILES = COPYING LIBCLI_INSTALL_STAGING = YES # We will pass optimisation level via CFLAGS so remove libcli default LIBCLI_MAKE_ARGS += OPTIM= # We can't run the test harness LIBCLI_MAKE_ARGS += TESTS= # Disable the static library for shared only build ifeq ($(BR2_SHARED_LIBS),y) LIBCLI_MAKE_ARGS += STATIC_LIB= endif # Disable the shared library for static only build ifeq ($(BR2_STATIC_LIBS),y) LIBCLI_MAKE_ARGS += DYNAMIC_LIB= endif define LIBCLI_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ $(LIBCLI_MAKE_ARGS) endef define LIBCLI_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ $(LIBCLI_MAKE_ARGS) DESTDIR=$(STAGING_DIR) PREFIX=/usr install endef define LIBCLI_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ $(LIBCLI_MAKE_ARGS) DESTDIR=$(TARGET_DIR) PREFIX=/usr install endef $(eval $(generic-package)) ================================================ FILE: package/libcoap/Config.in ================================================ 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 ================================================ FILE: package/libcoap/libcoap.hash ================================================ # Locally calculated sha256 29a0394a265d3febee41e5e2dc03d34292a0aede37f5f80334e529ac0dab2321 libcoap-4.2.1.tar.gz sha256 09dd86a017bad210527085008cbf706609c58210897b69845af14099577e7eb7 COPYING sha256 c51e85271aca3fbdd79bb4ee45dcfd854724538dad83b70afbbdfc62415e3e7f LICENSE ================================================ FILE: package/libcoap/libcoap.mk ================================================ ################################################################################ # # libcoap # ################################################################################ LIBCOAP_VERSION = 4.2.1 LIBCOAP_SITE = $(call github,obgm,libcoap,v$(LIBCOAP_VERSION)) LIBCOAP_INSTALL_STAGING = YES LIBCOAP_LICENSE = BSD-2-Clause LIBCOAP_LICENSE_FILES = COPYING LICENSE LIBCOAP_DEPENDENCIES = host-pkgconf LIBCOAP_CONF_OPTS = --disable-examples --without-tinydtls LIBCOAP_AUTORECONF = YES ifeq ($(BR2_PACKAGE_GNUTLS),y) LIBCOAP_DEPENDENCIES += gnutls LIBCOAP_CONF_OPTS += --enable-dtls --with-gnutls --without-openssl else ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBCOAP_DEPENDENCIES += openssl LIBCOAP_CONF_OPTS += --enable-dtls --without-gnutls --with-openssl else LIBCOAP_CONF_OPTS += --disable-dtls endif $(eval $(autotools-package)) ================================================ FILE: package/libcodec2/Config.in ================================================ config BR2_PACKAGE_LIBCODEC2 bool "libcodec2" help Codec2 is an open source low bit rate speech codec designed for communications quality speech between 700 and 3200 bit/s. http://rowetel.com/codec2.html if BR2_PACKAGE_LIBCODEC2 config BR2_PACKAGE_LIBCODEC2_EXAMPLES bool "libcodec2_examples" help Install Codec2 examples. endif ================================================ FILE: package/libcodec2/libcodec2.hash ================================================ # Locally computed sha256 19181a446f4df3e6d616b50cabdac4485abb9cd3242cf312a0785f892ed4c76c libcodec2-0.9.2.tar.gz sha256 9ebb6f82b7380a62ac74c5f0322c88e6744dedf2ebe1f54d6f088282b39844bf COPYING ================================================ FILE: package/libcodec2/libcodec2.mk ================================================ ################################################################################ # # libcodec2 # ################################################################################ LIBCODEC2_VERSION = 0.9.2 LIBCODEC2_SITE = $(call github,drowe67,codec2,v$(LIBCODEC2_VERSION)) LIBCODEC2_LICENSE = LGPL-2.1 LIBCODEC2_LICENSE_FILES = COPYING LIBCODEC2_INSTALL_STAGING = YES LIBCODEC2_SUPPORTS_IN_SOURCE_BUILD = NO LIBCODEC2_CONF_OPTS = -DUNITTEST=OFF ifeq ($(BR2_PACKAGE_LIBCODEC2_EXAMPLES),y) LIBCODEC2_CONF_OPTS += -DINSTALL_EXAMPLES=ON endif $(eval $(cmake-package)) ================================================ FILE: package/libcofi/Config.in ================================================ 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 ================================================ FILE: package/libcofi/libcofi.hash ================================================ # locally computed sha256 72ec89c19267612b316ec9c5835c07212b8f0a377c5b4c20b6e46e69a6e4a5e5 libcofi-7313fbe12b0593034d0a1b606bf33c7cf4ababce.tar.gz sha256 1a8203e5d11f0841235cf30265b1ffb19c0d9c4a6d2889554cbeccaf9f09b327 README.md ================================================ FILE: package/libcofi/libcofi.mk ================================================ ################################################################################ # # libcofi # ################################################################################ LIBCOFI_VERSION = 7313fbe12b0593034d0a1b606bf33c7cf4ababce LIBCOFI_SITE = $(call github,simonjhall,copies-and-fills,$(LIBCOFI_VERSION)) LIBCOFI_LICENSE = LGPL-2.1 LIBCOFI_LICENSE_FILES = README.md define LIBCOFI_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define LIBCOFI_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/libcofi_rpi.so $(TARGET_DIR)/usr/lib/libcofi_rpi.so endef $(eval $(generic-package)) ================================================ FILE: package/libconfig/Config.in ================================================ config BR2_PACKAGE_LIBCONFIG bool "libconfig" help Libconfig is a simple library for manipulating structured configuration files. The file format is more compact and more readable than XML. And unlike XML, it is type-aware, so it is not necessary to do string parsing in application code. https://hyperrealm.github.io/libconfig/ ================================================ FILE: package/libconfig/libconfig.hash ================================================ # Locally computed: sha256 545166d6cac037744381d1e9cc5a5405094e7bfad16a411699bcff40bbb31ee7 libconfig-1.7.3.tar.gz sha256 d80c9d084ebfb50ea1ed91bfbc2410d6ce542097a32c43b00781b83adcb8c77f COPYING.LIB ================================================ FILE: package/libconfig/libconfig.mk ================================================ ################################################################################ # # libconfig # ################################################################################ LIBCONFIG_VERSION = 1.7.3 LIBCONFIG_SITE = https://github.com/hyperrealm/libconfig/releases/download/v$(LIBCONFIG_VERSION) LIBCONFIG_LICENSE = LGPL-2.1+ LIBCONFIG_LICENSE_FILES = COPYING.LIB LIBCONFIG_INSTALL_STAGING = YES LIBCONFIG_CONF_OPTS = --disable-examples --disable-tests ifneq ($(BR2_INSTALL_LIBSTDCPP),y) LIBCONFIG_CONF_OPTS += --disable-cxx endif $(eval $(autotools-package)) ================================================ FILE: package/libconfuse/Config.in ================================================ config BR2_PACKAGE_LIBCONFUSE bool "libconfuse" help LibConfuse is a configuration file parser library written in C. It supports sections and (lists of) values (strings, integers, floats, booleans or other sections), as well as some other features (such as single/double-quoted strings, environment variable expansion, functions and nested include statements. https://github.com/martinh/libconfuse/ ================================================ FILE: package/libconfuse/libconfuse.hash ================================================ # From https://github.com/martinh/libconfuse/releases/download/v3.3/confuse-3.3.tar.xz.md5 md5 a183cef2cecdd3783436ff8de500d274 confuse-3.3.tar.xz # Locally computed sha256 1dd50a0320e135a55025b23fcdbb3f0a81913b6d0b0a9df8cc2fdf3b3dc67010 confuse-3.3.tar.xz sha256 dc3ff4b62f851dd2e94a151061ffeb7d28ddfc880a442068dc5283dbaa927306 LICENSE ================================================ FILE: package/libconfuse/libconfuse.mk ================================================ ################################################################################ # # libconfuse # ################################################################################ LIBCONFUSE_VERSION = 3.3 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_LICENSE = ISC LIBCONFUSE_LICENSE_FILES = LICENSE LIBCONFUSE_CPE_ID_VENDOR = libconfuse_project LIBCONFUSE_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libcorrect/0001-CMakeLists.txt-conditionally-use-Wpedantic.patch ================================================ From 8fc28b4c4c01581b25220fdbc1eeda196e399256 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 10 Oct 2018 09:28:00 +0200 Subject: [PATCH] CMakeLists.txt: conditionally use -Wpedantic -Wpedantic is only provided by gcc >= 4.8. Since showing pedantic warnings is not really mandatory, let's only use this option when the compiler supports it. Signed-off-by: Thomas Petazzoni Upstream: https://github.com/quiet/libcorrect/pull/25 --- CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 193f311..e570198 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,13 +3,18 @@ project(Correct C) include(CheckLibraryExists) include(CheckIncludeFiles) include(CheckCSourceCompiles) +include(CheckCCompilerFlag) if(MSVC) set(LIBM "") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4") else(MSVC) set(LIBM "m") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -std=c99 -Wpedantic -Wall") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -std=c99 -Wall") +check_c_compiler_flag(-Wpedantic COMPILER_SUPPORTS_WPEDANTIC) +if(COMPILER_SUPPORTS_WPEDANTIC) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpedantic") +endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3 -O0 -fsanitize=address") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-no_pie,") -- 2.14.4 ================================================ FILE: package/libcorrect/0002-CMakeLists.txt-conditionally-use-fsanitize-address.patch ================================================ From 1a3bb66608b2f96407d14fe13b782626990060f1 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 20 Nov 2018 08:20:13 +0100 Subject: [PATCH] CMakeLists.txt: conditionally use -fsanitize=address Check that compiler supports -fsanitize=address before using it Fixes: - http://autobuild.buildroot.net/results/221d6a418e75b39fe645c3a56cee676518d2cff6 Signed-off-by: Fabrice Fontaine --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e8e07e..c3f71ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,11 @@ if(COMPILER_SUPPORTS_WPEDANTIC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpedantic") endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3 -O0 -fsanitize=address") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3 -O0") + check_c_compiler_flag("-fsanitize=address -Werror" COMPILER_SUPPORTS_SANITIZE_ADDRESS) + if(COMPILER_SUPPORTS_SANITIZE_ADDRESS) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address") + endif() set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-no_pie,") else() if("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang") -- 2.14.1 ================================================ FILE: package/libcorrect/Config.in ================================================ config BR2_PACKAGE_LIBCORRECT bool "libcorrect" depends on !BR2_STATIC_LIBS help A C library for Forward Error Correction, providing convolutional codes and Reed-Solomon codes. It is part of the Quiet Modem Project. https://github.com/quiet/libcorrect comment "libcorrect needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libcorrect/libcorrect.hash ================================================ # Locally calculated sha256 79861750540fb3a1cc501ee217cb4d1febc4855f3fb82e5eb60906eec5379890 libcorrect-ce6c17f1f988765ae3695315d7cce1f2a2e6cf0d.tar.gz sha256 135138cd4304aa637836758dc5edfb5f21b7d09ecc637d25288d206b151a5768 LICENSE ================================================ FILE: package/libcorrect/libcorrect.mk ================================================ ################################################################################ # # libcorrect # ################################################################################ LIBCORRECT_VERSION = ce6c17f1f988765ae3695315d7cce1f2a2e6cf0d LIBCORRECT_SITE = $(call github,quiet,libcorrect,$(LIBCORRECT_VERSION)) LIBCORRECT_LICENSE = BSD-3-Clause LIBCORRECT_LICENSE_FILES = LICENSE LIBCORRECT_INSTALL_STAGING = YES $(eval $(cmake-package)) ================================================ FILE: package/libcpprestsdk/Config.in ================================================ config BR2_PACKAGE_LIBCPPRESTSDK bool "libcpprestsdk" depends on BR2_ENABLE_LOCALE depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # boost depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic, boost-filesystem depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_ATOMIC select BR2_PACKAGE_BOOST_CHRONO select BR2_PACKAGE_BOOST_DATE_TIME select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_RANDOM select BR2_PACKAGE_BOOST_REGEX select BR2_PACKAGE_BOOST_THREAD select BR2_PACKAGE_OPENSSL help The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services. https://github.com/Microsoft/cpprestsdk comment "libcpprestsdk needs a toolchain w/ NPTL, C++, wchar, locale" depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ !BR2_INSTALL_LIBSTDCPP || \ !BR2_USE_WCHAR || !BR2_ENABLE_LOCALE comment "libcpprestsdk needs exception_ptr" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/libcpprestsdk/libcpprestsdk.hash ================================================ # Locally calculated sha256 6bd74a637ff182144b6a4271227ea8b6b3ea92389f88b25b215e6f94fd4d41cb libcpprestsdk-2.10.18.tar.gz sha256 5c191789f502ac87df83b57008d2fc3e47fbf31315381b5bc4309f6602d0fe97 license.txt ================================================ FILE: package/libcpprestsdk/libcpprestsdk.mk ================================================ ################################################################################ # # libcpprestsdk # ################################################################################ LIBCPPRESTSDK_VERSION = 2.10.18 LIBCPPRESTSDK_SITE = $(call github,Microsoft,cpprestsdk,$(LIBCPPRESTSDK_VERSION)) LIBCPPRESTSDK_LICENSE = MIT LIBCPPRESTSDK_LICENSE_FILES = license.txt LIBCPPRESTSDK_SUBDIR = Release LIBCPPRESTSDK_INSTALL_STAGING = YES LIBCPPRESTSDK_DEPENDENCIES += host-pkgconf boost openssl LIBCPPRESTSDK_CONF_OPTS = -DWERROR=OFF -DBUILD_SAMPLES=OFF ifeq ($(BR2_STATIC_LIBS),y) LIBCPPRESTSDK_CONF_OPTS += \ -DBoost_USE_STATIC_LIBS=ON \ -DBoost_USE_STATIC_RUNTIME=ON endif LIBCPPRESTSDK_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) LIBCPPRESTSDK_CXXFLAGS += -latomic endif ifeq ($(BR2_PACKAGE_ZLIB),y) LIBCPPRESTSDK_DEPENDENCIES += zlib LIBCPPRESTSDK_CONF_OPTS += -DCPPREST_EXCLUDE_COMPRESSION=OFF # brotli needs compression ifeq ($(BR2_PACKAGE_BROTLI),y) LIBCPPRESTSDK_DEPENDENCIES += brotli LIBCPPRESTSDK_CONF_OPTS += -DCPPREST_EXCLUDE_BROTLI=OFF else LIBCPPRESTSDK_CONF_OPTS += -DCPPREST_EXCLUDE_BROTLI=ON endif else LIBCPPRESTSDK_CONF_OPTS += -DCPPREST_EXCLUDE_COMPRESSION=ON endif ifeq ($(BR2_PACKAGE_WEBSOCKETPP),y) LIBCPPRESTSDK_DEPENDENCIES += websocketpp LIBCPPRESTSDK_CONF_OPTS += -DCPPREST_EXCLUDE_WEBSOCKETS=OFF else LIBCPPRESTSDK_CONF_OPTS += -DCPPREST_EXCLUDE_WEBSOCKETS=ON endif ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) LIBCPPRESTSDK_CXXFLAGS += -O0 endif LIBCPPRESTSDK_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(LIBCPPRESTSDK_CXXFLAGS)" $(eval $(cmake-package)) ================================================ FILE: package/libcrossguid/Config.in ================================================ config BR2_PACKAGE_LIBCROSSGUID bool "libcrossguid" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Lightweight cross platform C++ GUID/UUID library https://github.com/graeme-hill/crossguid comment "libcrossguid needs a toolchain w/ C++, gcc >= 4.7" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/libcrossguid/libcrossguid.hash ================================================ # Locally calculated sha256 022c9f02cc36e865cd8fd0111a597ff2bd91988deeb348dbe2aba64aed1abd99 libcrossguid-8f399e8bd4252be9952f3dfa8199924cc8487ca4.tar.gz sha256 779e58787f966a1552f68d5ec041513cef68785dae4a519dbda7bc0b86eda20e LICENSE ================================================ FILE: package/libcrossguid/libcrossguid.mk ================================================ ################################################################################ # # libcrossguid # ################################################################################ LIBCROSSGUID_VERSION = 8f399e8bd4252be9952f3dfa8199924cc8487ca4 LIBCROSSGUID_SITE = $(call github,graeme-hill,crossguid,$(LIBCROSSGUID_VERSION)) LIBCROSSGUID_LICENSE = MIT LIBCROSSGUID_LICENSE_FILES = LICENSE LIBCROSSGUID_INSTALL_STAGING = YES # only a static library LIBCROSSGUID_INSTALL_TARGET = NO LIBCROSSGUID_DEPENDENCIES = util-linux define LIBCROSSGUID_BUILD_CMDS (cd $(@D); $(TARGET_CXX) $(TARGET_CXXFLAGS) -std=c++11 -DGUID_LIBUUID \ -c guid.cpp -o guid.o) (cd $(@D); $(TARGET_AR) rvs libcrossguid.a guid.o) endef define LIBCROSSGUID_INSTALL_STAGING_CMDS $(INSTALL) -D -m 644 $(@D)/libcrossguid.a \ $(STAGING_DIR)/usr/lib/libcrossguid.a $(INSTALL) -D -m 644 $(@D)/guid.h $(STAGING_DIR)/usr/include/guid.h endef $(eval $(generic-package)) ================================================ FILE: package/libcsv/Config.in ================================================ config BR2_PACKAGE_LIBCSV bool "libcsv" help libcsv is a small, simple and fast CSV library written in pure ANSI C89 that can read and write CSV data. It provides a straight-forward interface using callback functions to handle parsed fields and rows and can parse improperly formatted CSV files. https://sourceforge.net/projects/libcsv/ ================================================ FILE: package/libcsv/libcsv.hash ================================================ #locally computed sha256 d9c0431cb803ceb9896ce74f683e6e5a0954e96ae1d9e4028d6e0f967bebd7e4 libcsv-3.0.3.tar.gz sha256 6876b170378d38f65aadd271485f0a5c45beaa043a7d3de5e1636ec927922c83 COPYING.LESSER ================================================ FILE: package/libcsv/libcsv.mk ================================================ ################################################################################ # # libcsv # ################################################################################ LIBCSV_VERSION = 3.0.3 LIBCSV_SITE = http://sourceforge.net/projects/libcsv/files LIBCSV_LICENSE = LGPL-2.1+ LIBCSV_LICENSE_FILES = COPYING.LESSER LIBCSV_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libcue/Config.in ================================================ config BR2_PACKAGE_LIBCUE bool "libcue" select BR2_PACKAGE_FLEX help CUE Sheet Parser Library https://github.com/lipnitsk/libcue ================================================ FILE: package/libcue/libcue.hash ================================================ # Locally computed: sha256 f27bc3ebb2e892cd9d32a7bee6d84576a60f955f29f748b9b487b173712f1200 libcue-2.2.1.tar.gz sha256 c388d36583fa54e13b6d73ad924d0b68d073ed8a5771e17cb49104705df4504f LICENSE ================================================ FILE: package/libcue/libcue.mk ================================================ ################################################################################ # # libcue # ################################################################################ LIBCUE_VERSION = 2.2.1 LIBCUE_SITE = $(call github,lipnitsk,libcue,v$(LIBCUE_VERSION)) LIBCUE_LICENSE = GPL-2.0, BSD-2-Clause (rem.c) LIBCUE_LICENSE_FILES = LICENSE LIBCUE_DEPENDENCIES = host-bison host-flex flex LIBCUE_INSTALL_STAGING = YES $(eval $(cmake-package)) ================================================ FILE: package/libcuefile/0001-fix-static-link.patch ================================================ Fix static only build Make sure to build the shared library only if BUILD_SHARED_LIBS is ON. Normally, CMake takes care of this automatically, but libcuefile wants to build both the shared and static variants, so the normal logic of CMake doesn't apply. Signed-off-by: Thomas Petazzoni Index: b/src/CMakeLists.txt =================================================================== --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,7 +4,11 @@ add_library(cuefile-static STATIC cd cdtext cue_parse cue_print cue_scan cuefile time toc toc_parse toc_print toc_scan) set_target_properties(cuefile-static PROPERTIES OUTPUT_NAME cuefile CLEAN_DIRECT_OUTPUT 1) +if (BUILD_SHARED_LIBS) add_library(cuefile-shared SHARED cd cdtext cue_parse cue_print cue_scan cuefile time toc toc_parse toc_print toc_scan) set_target_properties(cuefile-shared PROPERTIES OUTPUT_NAME cuefile CLEAN_DIRECT_OUTPUT 1 VERSION 0.0.0 SOVERSION 0) install(TARGETS cuefile-static cuefile-shared LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}") +else (BUILD_SHARED_LIBS) +install(TARGETS cuefile-static LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}") +endif (BUILD_SHARED_LIBS) ================================================ FILE: package/libcuefile/Config.in ================================================ config BR2_PACKAGE_LIBCUEFILE bool "libcuefile" help Cue File library from Musepack http://www.musepack.net/ ================================================ FILE: package/libcuefile/libcuefile.hash ================================================ # From https://www.musepack.net/index.php?pg=src md5 1a6ac52e1080fd54f0f59372345f1e4e libcuefile_r475.tar.gz # Calculated based on the hash above sha256 b681ca6772b3f64010d24de57361faecf426ee6182f5969fcf29b3f649133fe7 libcuefile_r475.tar.gz # Hash for license file: sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/libcuefile/libcuefile.mk ================================================ ################################################################################ # # libcuefile # ################################################################################ LIBCUEFILE_VERSION = 475 LIBCUEFILE_SITE = http://files.musepack.net/source LIBCUEFILE_SOURCE = libcuefile_r$(LIBCUEFILE_VERSION).tar.gz LIBCUEFILE_INSTALL_STAGING = YES LIBCUEFILE_LICENSE = GPL-2.0+ LIBCUEFILE_LICENSE_FILES = COPYING define LIBCUEFILE_INSTALL_STAGING_INCLUDES cp -r $(@D)/include $(STAGING_DIR)/usr endef define LIBCUEFILE_INSTALL_TARGET_INCLUDES cp -r $(@D)/include $(TARGET_DIR)/usr endef LIBCUEFILE_POST_INSTALL_STAGING_HOOKS += LIBCUEFILE_INSTALL_STAGING_INCLUDES LIBCUEFILE_POST_INSTALL_TARGET_HOOKS += LIBCUEFILE_INSTALL_TARGET_INCLUDES $(eval $(cmake-package)) ================================================ FILE: package/libcurl/Config.in ================================================ config BR2_PACKAGE_LIBCURL bool "libcurl" help cURL is a tool for getting files from FTP, HTTP, Gopher, Telnet, and Dict servers, using any of the supported protocols. https://curl.se/ if BR2_PACKAGE_LIBCURL config BR2_PACKAGE_LIBCURL_CURL bool "curl binary" help Install curl binary as well config BR2_PACKAGE_LIBCURL_VERBOSE bool "verbose strings" help Enable verbose text strings config BR2_PACKAGE_LIBCURL_PROXY_SUPPORT bool "proxy support" default y help Enable proxy support. config BR2_PACKAGE_LIBCURL_COOKIES_SUPPORT bool "cookies support" default y help Enable support for cookies. config BR2_PACKAGE_LIBCURL_EXTRA_PROTOCOLS_FEATURES bool "enable extra protocols and features" default y help Enable the following extra protocols and features: - LDAP / LDAPS - POP3 / IMAP / SMTP - Telnet - TFTP - RTSP - SMB / CIFS - DICT - Gopher choice prompt "SSL/TLS library to use" config BR2_PACKAGE_LIBCURL_OPENSSL bool "OpenSSL" depends on BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL config BR2_PACKAGE_LIBCURL_BEARSSL bool "BearSSL" depends on BR2_PACKAGE_BEARSSL config BR2_PACKAGE_LIBCURL_GNUTLS bool "GnuTLS" depends on BR2_PACKAGE_GNUTLS config BR2_PACKAGE_LIBCURL_LIBNSS bool "NSS" depends on BR2_PACKAGE_LIBNSS config BR2_PACKAGE_LIBCURL_MBEDTLS bool "mbed TLS" depends on BR2_PACKAGE_MBEDTLS config BR2_PACKAGE_LIBCURL_WOLFSSL bool "WolfSSL" depends on BR2_PACKAGE_WOLFSSL select BR2_PACKAGE_WOLFSSL_ALL config BR2_PACKAGE_LIBCURL_TLS_NONE bool "None" endchoice endif ================================================ FILE: package/libcurl/libcurl.hash ================================================ # Locally calculated after checking pgp signature # https://curl.se/download/curl-7.81.0.tar.xz.asc # signed with key 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2 sha256 a067b688d1645183febc31309ec1f3cdce9213d02136b6a6de3d50f69c95a7d3 curl-7.81.0.tar.xz sha256 6fd1a1c008b5ef4c4741dd188c3f8af6944c14c25afa881eb064f98fb98358e7 COPYING ================================================ FILE: package/libcurl/libcurl.mk ================================================ ################################################################################ # # libcurl # ################################################################################ LIBCURL_VERSION = 7.81.0 LIBCURL_SOURCE = curl-$(LIBCURL_VERSION).tar.xz LIBCURL_SITE = https://curl.se/download LIBCURL_DEPENDENCIES = host-pkgconf \ $(if $(BR2_PACKAGE_ZLIB),zlib) \ $(if $(BR2_PACKAGE_RTMPDUMP),rtmpdump) LIBCURL_LICENSE = curl LIBCURL_LICENSE_FILES = COPYING LIBCURL_CPE_ID_VENDOR = haxx LIBCURL_CPE_ID_PRODUCT = libcurl LIBCURL_INSTALL_STAGING = YES # We disable NTLM support because it uses fork(), which doesn't work # on non-MMU platforms. Moreover, this authentication method is # probably almost never used. See # http://curl.se/docs/manpage.html#--ntlm. # Likewise, there is no compiler on the target, so libcurl-option (to # generate C code) isn't very useful LIBCURL_CONF_OPTS = --disable-manual --disable-ntlm-wb \ --enable-hidden-symbols --with-random=/dev/urandom --disable-curldebug \ --disable-libcurl-option --disable-ldap --disable-ldaps ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) LIBCURL_CONF_OPTS += --enable-threaded-resolver else LIBCURL_CONF_OPTS += --disable-threaded-resolver endif ifeq ($(BR2_PACKAGE_LIBCURL_VERBOSE),y) LIBCURL_CONF_OPTS += --enable-verbose else LIBCURL_CONF_OPTS += --disable-verbose endif LIBCURL_CONFIG_SCRIPTS = curl-config ifeq ($(BR2_PACKAGE_LIBCURL_OPENSSL),y) LIBCURL_DEPENDENCIES += openssl # configure adds the cross openssl dir to LD_LIBRARY_PATH which screws up # native stuff during the rest of configure when target == host. # Fix it by setting LD_LIBRARY_PATH to something sensible so those libs # are found first. LIBCURL_CONF_ENV += LD_LIBRARY_PATH=$(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)/lib:/usr/lib LIBCURL_CONF_OPTS += --with-ssl=$(STAGING_DIR)/usr \ --with-ca-path=/etc/ssl/certs else LIBCURL_CONF_OPTS += --without-ssl endif ifeq ($(BR2_PACKAGE_LIBCURL_BEARSSL),y) LIBCURL_CONF_OPTS += --with-bearssl=$(STAGING_DIR)/usr LIBCURL_DEPENDENCIES += bearssl else LIBCURL_CONF_OPTS += --without-bearssl endif ifeq ($(BR2_PACKAGE_LIBCURL_GNUTLS),y) LIBCURL_CONF_OPTS += --with-gnutls=$(STAGING_DIR)/usr \ --with-ca-fallback LIBCURL_DEPENDENCIES += gnutls else LIBCURL_CONF_OPTS += --without-gnutls endif ifeq ($(BR2_PACKAGE_LIBCURL_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 LIBCURL_CONF_OPTS += --without-nss endif ifeq ($(BR2_PACKAGE_LIBCURL_MBEDTLS),y) LIBCURL_CONF_OPTS += --with-mbedtls=$(STAGING_DIR)/usr LIBCURL_DEPENDENCIES += mbedtls else LIBCURL_CONF_OPTS += --without-mbedtls endif ifeq ($(BR2_PACKAGE_LIBCURL_WOLFSSL),y) LIBCURL_CONF_OPTS += --with-wolfssl=$(STAGING_DIR)/usr LIBCURL_DEPENDENCIES += wolfssl else LIBCURL_CONF_OPTS += --without-wolfssl endif ifeq ($(BR2_PACKAGE_C_ARES),y) LIBCURL_DEPENDENCIES += c-ares LIBCURL_CONF_OPTS += --enable-ares else LIBCURL_CONF_OPTS += --disable-ares endif ifeq ($(BR2_PACKAGE_LIBIDN2),y) LIBCURL_DEPENDENCIES += libidn2 LIBCURL_CONF_OPTS += --with-libidn2 else LIBCURL_CONF_OPTS += --without-libidn2 endif # Configure curl to support libssh2 ifeq ($(BR2_PACKAGE_LIBSSH2),y) LIBCURL_DEPENDENCIES += libssh2 LIBCURL_CONF_OPTS += --with-libssh2 else LIBCURL_CONF_OPTS += --without-libssh2 endif ifeq ($(BR2_PACKAGE_BROTLI),y) LIBCURL_DEPENDENCIES += brotli LIBCURL_CONF_OPTS += --with-brotli else LIBCURL_CONF_OPTS += --without-brotli endif ifeq ($(BR2_PACKAGE_NGHTTP2),y) LIBCURL_DEPENDENCIES += nghttp2 LIBCURL_CONF_OPTS += --with-nghttp2 else LIBCURL_CONF_OPTS += --without-nghttp2 endif ifeq ($(BR2_PACKAGE_LIBGSASL),y) LIBCURL_DEPENDENCIES += libgsasl LIBCURL_CONF_OPTS += --with-gsasl else LIBCURL_CONF_OPTS += --without-gsasl endif ifeq ($(BR2_PACKAGE_LIBCURL_COOKIES_SUPPORT),y) LIBCURL_CONF_OPTS += --enable-cookies else LIBCURL_CONF_OPTS += --disable-cookies endif ifeq ($(BR2_PACKAGE_LIBCURL_PROXY_SUPPORT),y) LIBCURL_CONF_OPTS += --enable-proxy else LIBCURL_CONF_OPTS += --disable-proxy endif ifeq ($(BR2_PACKAGE_LIBCURL_EXTRA_PROTOCOLS_FEATURES),y) LIBCURL_CONF_OPTS += \ --enable-dict \ --enable-gopher \ --enable-imap \ --enable-pop3 \ --enable-rtsp \ --enable-smb \ --enable-smtp \ --enable-telnet \ --enable-tftp else LIBCURL_CONF_OPTS += \ --disable-dict \ --disable-gopher \ --disable-imap \ --disable-pop3 \ --disable-rtsp \ --disable-smb \ --disable-smtp \ --disable-telnet \ --disable-tftp endif define LIBCURL_FIX_DOT_PC printf 'Requires: openssl\n' >>$(@D)/libcurl.pc.in endef LIBCURL_POST_PATCH_HOOKS += $(if $(BR2_PACKAGE_LIBCURL_OPENSSL),LIBCURL_FIX_DOT_PC) ifeq ($(BR2_PACKAGE_LIBCURL_CURL),) define LIBCURL_TARGET_CLEANUP rm -rf $(TARGET_DIR)/usr/bin/curl endef LIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_TARGET_CLEANUP endif HOST_LIBCURL_DEPENDENCIES = host-openssl HOST_LIBCURL_CONF_OPTS = \ --disable-manual \ --disable-ntlm-wb \ --disable-curldebug \ --with-ssl \ --without-gnutls \ --without-mbedtls \ --without-nss HOST_LIBCURL_POST_PATCH_HOOKS += LIBCURL_FIX_DOT_PC $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libcutl/libcutl.hash ================================================ # From https://www.codesynthesis.com/download/libcutl/1.10/libcutl-1.10.0.tar.bz2.sha1 sha1 2885b79529f8caeb13687d722f5c114186f56956 libcutl-1.10.0.tar.bz2 # Locally Computed sha256 125163c670e372b47d5626d54379ff8fbaded6ccd5db77ac0bf5912a4017121c libcutl-1.10.0.tar.bz2 sha256 c7aa98c5af3b67174f16b12a1fed4332a51cd524b82c69e85baa4c2c412da239 LICENSE ================================================ FILE: package/libcutl/libcutl.mk ================================================ ################################################################################ # # libcutl # ################################################################################ LIBCUTL_VERSION_MAJOR = 1.10 LIBCUTL_VERSION = $(LIBCUTL_VERSION_MAJOR).0 LIBCUTL_SOURCE = libcutl-$(LIBCUTL_VERSION).tar.bz2 LIBCUTL_SITE = https://www.codesynthesis.com/download/libcutl/$(LIBCUTL_VERSION_MAJOR) LIBCUTL_INSTALL_STAGING = YES LIBCUTL_LICENSE = MIT LIBCUTL_LICENSE_FILES = LICENSE HOST_LIBCUTL_CONF_ENV = CXXFLAGS="$(HOST_CXXFLAGS) -std=c++11" $(eval $(host-autotools-package)) ================================================ FILE: package/libdaemon/0001-testd-use-unistd-h-instead-of-sys-unistd-h.patch ================================================ examples/testd.c: As the C POSIX library recommends include the instead of . This removes an error when building libdaemon against the musl C library. Signed-off-by: Jörg Krause --- libdaemon-0.14.orig/examples/testd.c 2014-08-30 00:27:08.359832977 +0200 +++ libdaemon-0.14/examples/testd.c 2014-08-30 00:27:25.439832670 +0200 @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include ================================================ FILE: package/libdaemon/Config.in ================================================ config BR2_PACKAGE_LIBDAEMON bool "libdaemon" # needs fork() depends on BR2_USE_MMU help libdaemon is a lightweight C library that eases the writing of UNIX daemons. http://0pointer.de/lennart/projects/libdaemon/ ================================================ FILE: package/libdaemon/libdaemon.hash ================================================ # Locally calculated sha256 fd23eb5f6f986dcc7e708307355ba3289abe03cc381fc47a80bca4a50aa6b834 libdaemon-0.14.tar.gz sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 LICENSE ================================================ FILE: package/libdaemon/libdaemon.mk ================================================ ################################################################################ # # libdaemon # ################################################################################ LIBDAEMON_VERSION = 0.14 LIBDAEMON_SITE = http://0pointer.de/lennart/projects/libdaemon LIBDAEMON_LICENSE = LGPL-2.1+ LIBDAEMON_LICENSE_FILES = LICENSE LIBDAEMON_CPE_ID_VENDOR = libdaemon_project LIBDAEMON_INSTALL_STAGING = YES LIBDAEMON_CONF_ENV = ac_cv_func_setpgrp_void=no LIBDAEMON_CONF_OPTS = --disable-lynx LIBDAEMON_DEPENDENCIES = host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/libdbi/Config.in ================================================ config BR2_PACKAGE_LIBDBI bool "lidbi" help libdbi implements a database-independent abstraction layer in C, similar to the DBI/DBD layer in Perl. http://libdbi.sourceforge.net ================================================ FILE: package/libdbi/libdbi.hash ================================================ # Locally computed: sha256 958475e0010a3d8e43ce9ecd6a64d25eacca6ada46c39bc69f949dd70f92ab7a libdbi-88b8477d57153b9f736dd19d432d3b7ab1c49073-br1.tar.gz sha256 5bbcbb737e60fe9deba08ecbd00920cfcc3403ba2e534c64fdeea49d6bb87509 COPYING ================================================ FILE: package/libdbi/libdbi.mk ================================================ ################################################################################ # # libdbi # ################################################################################ LIBDBI_VERSION = 88b8477d57153b9f736dd19d432d3b7ab1c49073 LIBDBI_SITE = https://git.code.sf.net/p/libdbi/libdbi LIBDBI_SITE_METHOD = git LIBDBI_LICENSE = LGPL-2.1+ LIBDBI_LICENSE_FILES = COPYING LIBDBI_INSTALL_STAGING = YES # Fetched from git, with no configure script LIBDBI_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/libdbi-drivers/Config.in ================================================ config BR2_PACKAGE_LIBDBI_DRIVERS bool "libdbi-drivers" select BR2_PACKAGE_LIBDBI help The libdbi-drivers project provides the database-specific drivers for the libdbi framework. http://libdbi-drivers.sourceforge.net ================================================ FILE: package/libdbi-drivers/libdbi-drivers.hash ================================================ # Locally computed sha256 80a1befb044238a89b2d0dbd40881aa6c75bf99d3a7a6c016c657ea26df7792c libdbi-drivers-0bfae6c43134cf58dc89364328545982ca297abb-br1.tar.gz sha256 5bbcbb737e60fe9deba08ecbd00920cfcc3403ba2e534c64fdeea49d6bb87509 COPYING ================================================ FILE: package/libdbi-drivers/libdbi-drivers.mk ================================================ ################################################################################ # # libdbi-drivers # ################################################################################ LIBDBI_DRIVERS_VERSION = 0bfae6c43134cf58dc89364328545982ca297abb LIBDBI_DRIVERS_SITE = https://git.code.sf.net/p/libdbi-drivers/libdbi-drivers LIBDBI_DRIVERS_SITE_METHOD = git LIBDBI_DRIVERS_LICENSE = LGPL-2.1+ LIBDBI_DRIVERS_LICENSE_FILES = COPYING LIBDBI_DRIVERS_INSTALL_STAGING = YES LIBDBI_DRIVERS_DEPENDENCIES = libdbi host-pkgconf LIBDBI_DRIVERS_AUTORECONF = YES LIBDBI_DRIVERS_CONF_OPTS = --with-dbi-libdir=$(STAGING_DIR)/usr/lib ifeq ($(BR2_PACKAGE_MYSQL),y) LIBDBI_DRIVERS_DEPENDENCIES += mysql LIBDBI_DRIVERS_CONF_OPTS += --with-mysql LIBDBI_DRIVERS_CONF_ENV += MYSQL_CONFIG="$(STAGING_DIR)/usr/bin/mysql_config" else LIBDBI_DRIVERS_CONF_OPTS += --without-mysql endif ifeq ($(BR2_PACKAGE_POSTGRESQL),y) LIBDBI_DRIVERS_DEPENDENCIES += postgresql LIBDBI_DRIVERS_CONF_OPTS += --with-pgsql else LIBDBI_DRIVERS_CONF_OPTS += --without-pgsql endif LIBDBI_DRIVERS_CONF_OPTS += --without-sqlite ifeq ($(BR2_PACKAGE_SQLITE),y) LIBDBI_DRIVERS_DEPENDENCIES += sqlite LIBDBI_DRIVERS_CONF_OPTS += --with-sqlite3 else LIBDBI_DRIVERS_CONF_OPTS += --without-sqlite3 endif LIBDBI_DRIVERS_CONF_OPTS += --without-msql # MiniSQL LIBDBI_DRIVERS_CONF_OPTS += --without-oracle # Oracle OCI LIBDBI_DRIVERS_CONF_OPTS += --without-firebird # Firebird/Interbase LIBDBI_DRIVERS_CONF_OPTS += --without-freetds # Freetds LIBDBI_DRIVERS_CONF_OPTS += --without-ingres # Ingres LIBDBI_DRIVERS_CONF_OPTS += --without-db2 # IBM DB2 $(eval $(autotools-package)) ================================================ FILE: package/libdcadec/Config.in ================================================ config BR2_PACKAGE_LIBDCADEC bool "libdcadec" help dcadec is a free DTS Coherent Acoustics decoder with support for HD extensions. https://github.com/foo86/dcadec ================================================ FILE: package/libdcadec/libdcadec.hash ================================================ # Locally calculated sha256 ed9d207fde3e8d576f3af8b0d1235b3371e315175757173689104efcaebf0d44 libdcadec-0.2.0.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPLv2.1 ================================================ FILE: package/libdcadec/libdcadec.mk ================================================ ################################################################################ # # libdcadec # ################################################################################ LIBDCADEC_VERSION = 0.2.0 LIBDCADEC_SITE = $(call github,foo86,dcadec,v$(LIBDCADEC_VERSION)) LIBDCADEC_LICENSE = LGPL-2.1+ LIBDCADEC_LICENSE_FILES = COPYING.LGPLv2.1 LIBDCADEC_INSTALL_STAGING = YES ifeq ($(BR2_STATIC_LIBS),) LIBDCADEC_SHARED = CONFIG_SHARED=1 endif define LIBDCADEC_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS) -std=gnu99" \ $(LIBDCADEC_SHARED) -C $(@D) endef define LIBDCADEC_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ $(LIBDCADEC_SHARED) DESTDIR=$(STAGING_DIR) PREFIX=/usr install endef define LIBDCADEC_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ $(LIBDCADEC_SHARED) DESTDIR=$(TARGET_DIR) PREFIX=/usr install endef $(eval $(generic-package)) ================================================ FILE: package/libdmtx/Config.in ================================================ config BR2_PACKAGE_LIBDMTX bool "libdmtx" help libdmtx is a software library that enables programs to read and write Data Matrix barcodes of the modern ECC200 variety. https://github.com/dmtx/libdmtx ================================================ FILE: package/libdmtx/libdmtx.hash ================================================ # Locally computed: sha256 be0c5275695a732a5f434ded1fcc232aa63b1a6015c00044fe87f3a689b75f2e libdmtx-0.7.5.tar.gz sha256 fcc277b7302645322c63de22b9b0bdae2df3dfa7d6cbc0d5bed7a4d3f1a9af79 LICENSE ================================================ FILE: package/libdmtx/libdmtx.mk ================================================ ################################################################################ # # libdmtx # ################################################################################ LIBDMTX_VERSION = 0.7.5 LIBDMTX_SITE = $(call github,dmtx,libdmtx,v$(LIBDMTX_VERSION)) LIBDMTX_LICENSE = BSD-2-Clause or Special Permission LIBDMTX_LICENSE_FILES = LICENSE LIBDMTX_INSTALL_STAGING = YES # github tarball does not include configure LIBDMTX_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/libdnet/0001-python-gcc.patch ================================================ --- a/python/dnet.c 2006-01-19 18:08:23.000000000 +1100 +++ b/python/dnet.c 2008-09-03 16:30:47.000000000 +1000 @@ -2726,7 +2726,7 @@ PyObject *__pyx_3 = 0; unsigned short __pyx_4; Py_INCREF(__pyx_v_self); - ((PyObject*)__pyx_v_next) = Py_None; Py_INCREF(((PyObject*)__pyx_v_next)); + __pyx_v_next = (struct __pyx_obj_4dnet_addr*)Py_None; Py_INCREF(((PyObject*)__pyx_v_next)); /* "/Users/dugsong/projects/libdnet/python/./dnet.pyx":634 */ __pyx_1 = (((struct __pyx_obj_4dnet___addr_ip4_iter *)__pyx_v_self)->cur <= ((struct __pyx_obj_4dnet___addr_ip4_iter *)__pyx_v_self)->max); @@ -2738,7 +2739,7 @@ Py_DECREF(__pyx_2); __pyx_2 = 0; if (!__Pyx_TypeTest(__pyx_3, __pyx_ptype_4dnet_addr)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; goto __pyx_L1;} Py_DECREF(((PyObject *)__pyx_v_next)); - ((PyObject *)__pyx_v_next) = __pyx_3; + __pyx_v_next = (struct __pyx_obj_4dnet_addr*)__pyx_3; __pyx_3 = 0; /* "/Users/dugsong/projects/libdnet/python/./dnet.pyx":636 */ ================================================ FILE: package/libdnet/0002-python-makefile.patch ================================================ --- python/Makefile.am | 1 + 1 file changed, 1 insertion(+) Index: libdnet-1.11/python/Makefile.am =================================================================== --- libdnet-1.11.orig/python/Makefile.am +++ libdnet-1.11/python/Makefile.am @@ -11,6 +11,7 @@ pyrexc $(srcdir)/dnet.pyx python-build: $(srcdir)/dnet.c + CC="$(CC)" LDSHARED="$(CC) -shared" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" $(PYTHON) setup.py build_ext -I$(PYINCDIR) -L$(PYLIBDIR) $(PYTHON) setup.py build touch python-build ================================================ FILE: package/libdnet/Config.in ================================================ config BR2_PACKAGE_LIBDNET bool "libdnet" help libdnet - simplified interface to low-level networking routines. http://libdnet.sourceforge.net/ if BR2_PACKAGE_LIBDNET config BR2_PACKAGE_LIBDNET_PYTHON bool "libdnet python module" depends on BR2_PACKAGE_PYTHON help dnet module for python comment "dnet module for python requires python package" depends on !BR2_PACKAGE_PYTHON endif ================================================ FILE: package/libdnet/libdnet.hash ================================================ # Locally computed: sha256 0eb78415c8f2564c2f1e8ad36e98473348d9c94852f796a226360c716cc7ca53 libdnet-1.11.tar.gz sha256 1e94df12cb3701fa64e07eeb60284bb16a3544815d5a39860dacff7b86610584 LICENSE ================================================ FILE: package/libdnet/libdnet.mk ================================================ ################################################################################ # # libdnet # ################################################################################ LIBDNET_VERSION = 1.11 LIBDNET_SITE = http://downloads.sourceforge.net/project/libdnet/libdnet/libdnet-$(LIBDNET_VERSION) LIBDNET_LICENSE = BSD-3-Clause LIBDNET_LICENSE_FILES = LICENSE LIBDNET_INSTALL_STAGING = YES LIBDNET_AUTORECONF = YES LIBDNET_CONF_OPTS = \ --with-gnu-ld \ --with-check=no LIBDNET_CONFIG_SCRIPTS = dnet-config ifneq ($(BR2_PACKAGE_LIBDNET_PYTHON),) LIBDNET_DEPENDENCIES += python LIBDNET_CONF_OPTS += --with-python LIBDNET_MAKE_OPTS = PYINCDIR=$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR) PYLIBDIR=$(STAGING_DIR)/usr/lib LIBDNET_INSTALL_TARGET_OPTS = $(LIBDNET_MAKE_OPTS) DESTDIR=$(TARGET_DIR) INSTALL_STRIP_FLAG=-s install-exec LIBDNET_INSTALL_STAGING_OPTS = $(LIBDNET_MAKE_OPTS) DESTDIR=$(STAGING_DIR) install endif # Needed for autoreconf to work properly define LIBDNET_FIXUP_ACINCLUDE_M4 ln -sf config/acinclude.m4 $(@D) endef LIBDNET_POST_EXTRACT_HOOKS += LIBDNET_FIXUP_ACINCLUDE_M4 define LIBDNET_REMOVE_CONFIG_SCRIPT $(RM) -f $(TARGET_DIR)/usr/bin/dnet-config endef LIBDNET_POST_INSTALL_TARGET_HOOKS += LIBDNET_REMOVE_CONFIG_SCRIPT $(eval $(autotools-package)) ================================================ FILE: package/libdri2/Config.in ================================================ config BR2_PACKAGE_LIBDRI2 bool "libdri2" depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_XLIB_LIBXDAMAGE select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XORGPROTO help Library for the DRI2 extension to the X Window System. https://github.com/robclark/libdri2 comment "libdri2 needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libdri2/libdri2.hash ================================================ # Locally calculated sha256 7c427f5c3fbda3d1df1dc77129e87605f4af1f3ad2adf2653c560d1703aa4395 libdri2-4f1eef3183df2b270c3d5cbef07343ee5127a6a4.tar.gz sha256 4fac4d581d00f11c459d68b7cb970f3d4e5a5bbfb53784d85f59a90076280301 COPYING ================================================ FILE: package/libdri2/libdri2.mk ================================================ ################################################################################ # # libdri2 # ################################################################################ LIBDRI2_VERSION = 4f1eef3183df2b270c3d5cbef07343ee5127a6a4 LIBDRI2_SITE = $(call github,robclark,libdri2,$(LIBDRI2_VERSION)) LIBDRI2_DEPENDENCIES = xlib_libXext xlib_libXdamage xorgproto libdrm LIBDRI2_LICENSE = MIT LIBDRI2_LICENSE_FILES = COPYING LIBDRI2_INSTALL_STAGING = YES LIBDRI2_AUTORECONF = YES LIBDRI2_CONF_ENV = xorg_cv_malloc0_returns_null=true $(eval $(autotools-package)) ================================================ FILE: package/libdrm/0001-tests-meson.build-disable-nouveau-tests-for-static-b.patch ================================================ From c9036706b9f724f09ac6288f82b53f2e76264ec7 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Mon, 25 Nov 2019 15:59:15 +0100 Subject: [PATCH] tests/meson.build: disable nouveau tests for static build Signed-off-by: Peter Seiderer --- Notes: - the existing test/check for static build in meson.build does not catch this case because e.g. the buildroot toolchain br-arm-full-static-2019.05.1 provides an empty libdl.a 169 # Among others FreeBSD does not have a separate dl library. 170 if not cc.has_function('dlsym') 171 dep_dl = cc.find_library('dl', required : with_nouveau) 172 else 173 dep_dl = [] 174 endif --- tests/meson.build | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/meson.build b/tests/meson.build index 6c8ddd9..f7cb5f0 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -44,8 +44,11 @@ endif if with_etnaviv subdir('etnaviv') endif +lib_type = get_option('default_library') if with_nouveau - subdir('nouveau') + if lib_type != 'static' + subdir('nouveau') + endif endif drmsl = executable( -- 2.24.0 ================================================ FILE: package/libdrm/Config.in ================================================ menuconfig BR2_PACKAGE_LIBDRM bool "libdrm" depends on BR2_TOOLCHAIN_HAS_THREADS # libpthread-stubs select BR2_PACKAGE_LIBPTHREAD_STUBS help Direct Rendering Manager http://dri.freedesktop.org/libdrm/ if BR2_PACKAGE_LIBDRM config BR2_PACKAGE_LIBDRM_HAS_ATOMIC bool default y if BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS || \ BR2_TOOLCHAIN_HAS_SYNC_4 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" depends on BR2_i386 || BR2_x86_64 depends on BR2_PACKAGE_LIBDRM_HAS_ATOMIC select BR2_PACKAGE_LIBDRM_ENABLE_ATOMIC select BR2_PACKAGE_LIBPCIACCESS 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_USE_MMU # fork() 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. config BR2_PACKAGE_LIBDRM_VMWGFX bool "vmwgfx" depends on BR2_i386 || BR2_x86_64 help Installs Vmware graphics driver. 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. config BR2_PACKAGE_LIBDRM_ETNAVIV bool "etnaviv (experimental)" depends on BR2_PACKAGE_LIBDRM_HAS_ATOMIC select BR2_PACKAGE_LIBDRM_ENABLE_ATOMIC help Install the Etnaviv/Vivante driver using an experimental API. config BR2_PACKAGE_LIBDRM_EXYNOS bool "exynos (experimental)" depends on BR2_arm help Install Samsung Exynos driver using an experimental API. 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. config BR2_PACKAGE_LIBDRM_VC4 bool "vc4" depends on BR2_aarch64 || 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 comment "libdrm needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libdrm/libdrm.hash ================================================ # From https://lists.freedesktop.org/archives/dri-devel/2021-July/313594.html sha256 c554cef03b033636a975543eab363cc19081cb464595d3da1ec129f87370f888 libdrm-2.4.107.tar.xz sha512 c7542ba15c4c934519a6a1f3cb1ec21effa820a805a030d0175313bb1cc796cd311f39596ead883f9f251679d701e262894c5a297d5cf45093c80a6cd818def0 libdrm-2.4.107.tar.xz # Hash for license file sha256 7e952c6666ed17c99f91ee7af13c688b8769b0feaf6f4558bf6ad3e07512e1e6 xf86drm.c ================================================ FILE: package/libdrm/libdrm.mk ================================================ ################################################################################ # # libdrm # ################################################################################ LIBDRM_VERSION = 2.4.107 LIBDRM_SOURCE = libdrm-$(LIBDRM_VERSION).tar.xz LIBDRM_SITE = https://dri.freedesktop.org/libdrm LIBDRM_LICENSE = MIT LIBDRM_LICENSE_FILES = xf86drm.c LIBDRM_INSTALL_STAGING = YES LIBDRM_DEPENDENCIES = \ libpthread-stubs \ host-pkgconf LIBDRM_CONF_OPTS = \ -Dcairo-tests=false \ -Dman-pages=false ifeq ($(BR2_PACKAGE_LIBATOMIC_OPS),y) LIBDRM_DEPENDENCIES += libatomic_ops ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y) LIBDRM_CFLAGS = $(TARGET_CFLAGS) -DAO_NO_SPARC_V9 endif endif ifeq ($(BR2_PACKAGE_LIBDRM_INTEL),y) LIBDRM_CONF_OPTS += -Dintel=true LIBDRM_DEPENDENCIES += libpciaccess else LIBDRM_CONF_OPTS += -Dintel=false endif ifeq ($(BR2_PACKAGE_LIBDRM_RADEON),y) LIBDRM_CONF_OPTS += -Dradeon=true else LIBDRM_CONF_OPTS += -Dradeon=false endif ifeq ($(BR2_PACKAGE_LIBDRM_AMDGPU),y) LIBDRM_CONF_OPTS += -Damdgpu=true else LIBDRM_CONF_OPTS += -Damdgpu=false endif ifeq ($(BR2_PACKAGE_LIBDRM_NOUVEAU),y) LIBDRM_CONF_OPTS += -Dnouveau=true else LIBDRM_CONF_OPTS += -Dnouveau=false endif ifeq ($(BR2_PACKAGE_LIBDRM_VMWGFX),y) LIBDRM_CONF_OPTS += -Dvmwgfx=true else LIBDRM_CONF_OPTS += -Dvmwgfx=false endif ifeq ($(BR2_PACKAGE_LIBDRM_OMAP),y) LIBDRM_CONF_OPTS += -Domap=true else LIBDRM_CONF_OPTS += -Domap=false endif ifeq ($(BR2_PACKAGE_LIBDRM_ETNAVIV),y) LIBDRM_CONF_OPTS += -Detnaviv=true else LIBDRM_CONF_OPTS += -Detnaviv=false endif ifeq ($(BR2_PACKAGE_LIBDRM_EXYNOS),y) LIBDRM_CONF_OPTS += -Dexynos=true else LIBDRM_CONF_OPTS += -Dexynos=false endif ifeq ($(BR2_PACKAGE_LIBDRM_FREEDRENO),y) LIBDRM_CONF_OPTS += -Dfreedreno=true else LIBDRM_CONF_OPTS += -Dfreedreno=false endif ifeq ($(BR2_PACKAGE_LIBDRM_TEGRA),y) LIBDRM_CONF_OPTS += -Dtegra=true else LIBDRM_CONF_OPTS += -Dtegra=false endif ifeq ($(BR2_PACKAGE_LIBDRM_VC4),y) LIBDRM_CONF_OPTS += -Dvc4=true else LIBDRM_CONF_OPTS += -Dvc4=false endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) LIBDRM_CONF_OPTS += -Dudev=true LIBDRM_DEPENDENCIES += udev else LIBDRM_CONF_OPTS += -Dudev=false endif ifeq ($(BR2_PACKAGE_VALGRIND),y) LIBDRM_CONF_OPTS += -Dvalgrind=true LIBDRM_DEPENDENCIES += valgrind else LIBDRM_CONF_OPTS += -Dvalgrind=false endif ifeq ($(BR2_PACKAGE_LIBDRM_INSTALL_TESTS),y) LIBDRM_CONF_OPTS += -Dinstall-test-programs=true ifeq ($(BR2_PACKAGE_CUNIT),y) LIBDRM_DEPENDENCIES += cunit endif endif $(eval $(meson-package)) ================================================ FILE: package/libdvbcsa/0001-altivec-powerpc64.patch ================================================ Fix compile on powerpc64/powerpc64le w/ altivec Correct the type of some vectors passed to vec_slo() or vec_sro(), which only takes a char vector. Signed-off-by: Sam Bobroff --- a/src/dvbcsa_bs_altivec.h 2016-11-28 14:33:34.410021500 +1100 +++ b/src/dvbcsa_bs_altivec.h 2016-11-28 14:34:25.442238715 +1100 @@ -64,7 +64,7 @@ } case 0x29: { dvbcsa_bs_word_t x = vec_splat_u8(10); - return (dvbcsa_bs_word_t)vec_add(vec_splat_u8(0x1),vec_rl(x,x)); + return (dvbcsa_bs_word_t)vec_add((dvbcsa_bs_word_t)vec_splat_u8(0x1),vec_rl(x,x)); } case 0x40: { dvbcsa_bs_word_t x = vec_splat_u8(4); @@ -99,10 +99,10 @@ #define SHVAL_14 BS_VAL8(0e) #define SHVAL_7 BS_VAL8(07) -#define BS_SHL(a, n) ({ dvbcsa_bs_word_t x = SHVAL_##n; vec_sll(vec_slo((a), x), x); }) -#define BS_SHR(a, n) ({ dvbcsa_bs_word_t x = SHVAL_##n; vec_srl(vec_sro((a), x), x); }) -#define BS_SHL8(a, n) ({ dvbcsa_bs_word_t x = vec_splat_u8(n*2); x = vec_add(x,x); x = vec_add(x,x); vec_slo((a), x); }) -#define BS_SHR8(a, n) ({ dvbcsa_bs_word_t x = vec_splat_u8(n*2); x = vec_add(x,x); x = vec_add(x,x); vec_sro((a), x); }) +#define BS_SHL(a, n) ({ vector unsigned char x = SHVAL_##n; vec_sll(vec_slo((a), x), x); }) +#define BS_SHR(a, n) ({ vector unsigned char x = SHVAL_##n; vec_srl(vec_sro((a), x), x); }) +#define BS_SHL8(a, n) ({ vector unsigned char x = vec_splat_u8(n*2); x = vec_add(x,x); x = vec_add(x,x); vec_slo((a), x); }) +#define BS_SHR8(a, n) ({ vector unsigned char x = vec_splat_u8(n*2); x = vec_add(x,x); x = vec_add(x,x); vec_sro((a), x); }) #define BS_EXTRACT8(a, n) ((uint8_t*)&(a))[15 - (n)] ================================================ FILE: package/libdvbcsa/Config.in ================================================ config BR2_PACKAGE_LIBDVBCSA bool "libdvbcsa" help libdvbcsa is a free implementation of the DVB Common Scrambling Algorithm - DVB/CSA - with encryption and decryption capabilities As libdvbcsa implements a standard, it is completely legal to use it. http://www.videolan.org/developers/libdvbcsa.html ================================================ FILE: package/libdvbcsa/libdvbcsa.hash ================================================ # From http://download.videolan.org/pub/videolan/libdvbcsa/1.1.0/libdvbcsa-1.1.0.tar.gz.sha256 sha256 4db78af5cdb2641dfb1136fe3531960a477c9e3e3b6ba19a2754d046af3f456d libdvbcsa-1.1.0.tar.gz # From http://download.videolan.org/pub/videolan/libdvbcsa/1.1.0/libdvbcsa-1.1.0.tar.gz.sha1 sha1 5f4640a7e93ae6494f24a881414e5c343f803365 libdvbcsa-1.1.0.tar.gz # Hash for license file: sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/libdvbcsa/libdvbcsa.mk ================================================ ################################################################################ # # libdvbcsa # ################################################################################ LIBDVBCSA_VERSION = 1.1.0 LIBDVBCSA_SITE = http://get.videolan.org/libdvbcsa/$(LIBDVBCSA_VERSION) LIBDVBCSA_LICENSE = GPL-2.0+ LIBDVBCSA_LICENSE_FILES = COPYING LIBDVBCSA_INSTALL_STAGING = YES ifeq ($(BR2_X86_CPU_HAS_MMX),y) LIBDVBCSA_CONF_OPTS += --enable-mmx else LIBDVBCSA_CONF_OPTS += --disable-mmx endif ifeq ($(BR2_X86_CPU_HAS_SSE2),y) LIBDVBCSA_CONF_OPTS += --enable-sse2 else LIBDVBCSA_CONF_OPTS += --disable-sse2 endif ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y) LIBDVBCSA_CONF_OPTS += --enable-altivec LIBDVBCSA_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -flax-vector-conversions" else LIBDVBCSA_CONF_OPTS += --disable-altivec endif $(eval $(autotools-package)) ================================================ FILE: package/libdvbpsi/Config.in ================================================ config BR2_PACKAGE_LIBDVBPSI bool "libdvbpsi" depends on BR2_TOOLCHAIN_HAS_THREADS help libdvbpsi is a simple library designed for decoding and generation of MPEG TS and DVB PSI tables according to standards ISO/IEC 13818 and ITU-T H.222.0. http://www.videolan.org/developers/libdvbpsi.html comment "libdvbpsi needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libdvbpsi/libdvbpsi.hash ================================================ # From http://download.videolan.org/pub/libdvbpsi/1.3.3/libdvbpsi-1.3.3.tar.bz2.md5 md5 9b556ab08bb62a8bec61f5c1649bc9a8 libdvbpsi-1.3.3.tar.bz2 # From http://download.videolan.org/pub/libdvbpsi/1.3.3/libdvbpsi-1.3.3.tar.bz2.sha256 sha256 02b5998bcf289cdfbd8757bedd5987e681309b0a25b3ffe6cebae599f7a00112 libdvbpsi-1.3.3.tar.bz2 # Hash for license file: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/libdvbpsi/libdvbpsi.mk ================================================ ################################################################################ # # libdvbpsi # ################################################################################ LIBDVBPSI_VERSION = 1.3.3 LIBDVBPSI_SITE = http://download.videolan.org/pub/libdvbpsi/$(LIBDVBPSI_VERSION) LIBDVBPSI_SOURCE = libdvbpsi-$(LIBDVBPSI_VERSION).tar.bz2 LIBDVBPSI_LICENSE = LGPL-2.1+ LIBDVBPSI_LICENSE_FILES = COPYING LIBDVBPSI_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libdvbsi/Config.in ================================================ config BR2_PACKAGE_LIBDVBSI bool "libdvbsi" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS help C++ parsing library for Service Information (SI) in DVB systems. With libdvbsi++ you can convert raw DVB service information to a set of C++ objects, removing the need to parse data manually. http://www.saftware.de/ comment "libdvbsi++ needs a toolchain w/ C++, wchar, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libdvbsi/libdvbsi.hash ================================================ # Locally calculated sha256 a57949b842d94efedd895f2bd8e483c9f258e698092e35f1c3fdccb45b790953 libdvbsi++-0.3.9.tar.bz2 sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING ================================================ FILE: package/libdvbsi/libdvbsi.mk ================================================ ################################################################################ # # libdvbsi # ################################################################################ LIBDVBSI_VERSION = 0.3.9 LIBDVBSI_SOURCE = libdvbsi++-$(LIBDVBSI_VERSION).tar.bz2 LIBDVBSI_SITE = https://github.com/mtdcr/libdvbsi/releases/download/$(LIBDVBSI_VERSION) LIBDVBSI_INSTALL_STAGING = YES LIBDVBSI_LICENSE = LGPL-2.1 LIBDVBSI_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libdvdcss/Config.in ================================================ 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 ================================================ FILE: package/libdvdcss/libdvdcss.hash ================================================ # From http://download.videolan.org/pub/videolan/libdvdcss/1.4.3/libdvdcss-1.4.3.tar.bz2.sha1 sha1 fcea8b2749ead8183636e48300bea8791abc79ee libdvdcss-1.4.3.tar.bz2 # From http://download.videolan.org/pub/videolan/libdvdcss/1.4.3/libdvdcss-1.4.3.tar.bz2.sha256 sha256 233cc92f5dc01c5d3a96f5b3582be7d5cee5a35a52d3a08158745d3d86070079 libdvdcss-1.4.3.tar.bz2 # Hash for license file: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/libdvdcss/libdvdcss.mk ================================================ ################################################################################ # # libdvdcss # ################################################################################ LIBDVDCSS_VERSION = 1.4.3 LIBDVDCSS_SOURCE = libdvdcss-$(LIBDVDCSS_VERSION).tar.bz2 LIBDVDCSS_SITE = http://www.videolan.org/pub/videolan/libdvdcss/$(LIBDVDCSS_VERSION) LIBDVDCSS_INSTALL_STAGING = YES LIBDVDCSS_LICENSE = GPL-2.0+ LIBDVDCSS_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libdvdnav/Config.in ================================================ config BR2_PACKAGE_LIBDVDNAV bool "libdvdnav" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBDVDREAD help libdvdnav is a library that allows easy use of sophisticated DVD navigation features such as DVD menus, multiangle playback and even interactive DVD games. https://www.videolan.org/developers/libdvdnav.html comment "libdvdnav needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libdvdnav/libdvdnav.hash ================================================ # From http://download.videolan.org/pub/videolan/libdvdnav/6.1.1/libdvdnav-6.1.1.tar.bz2.sha1 sha1 7ac76aa95d046db715763da23b7053b65cbc7540 libdvdnav-6.1.1.tar.bz2 # From http://download.videolan.org/pub/videolan/libdvdnav/6.1.1/libdvdnav-6.1.1.tar.bz2.sha256 sha256 c191a7475947d323ff7680cf92c0fb1be8237701885f37656c64d04e98d18d48 libdvdnav-6.1.1.tar.bz2 # Hash for license file: sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/libdvdnav/libdvdnav.mk ================================================ ################################################################################ # # libdvdnav # ################################################################################ LIBDVDNAV_VERSION = 6.1.1 LIBDVDNAV_SOURCE = libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2 LIBDVDNAV_SITE = http://www.videolan.org/pub/videolan/libdvdnav/$(LIBDVDNAV_VERSION) LIBDVDNAV_INSTALL_STAGING = YES LIBDVDNAV_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -std=gnu99" LIBDVDNAV_DEPENDENCIES = libdvdread host-pkgconf LIBDVDNAV_LICENSE = GPL-2.0+ LIBDVDNAV_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libdvdread/Config.in ================================================ config BR2_PACKAGE_LIBDVDREAD bool "libdvdread" select BR2_PACKAGE_LIBDVDCSS help libdvdread provides a simple foundation for reading DVD-Video images. https://www.videolan.org/developers/libdvdnav.html ================================================ FILE: package/libdvdread/libdvdread.hash ================================================ # From http://download.videolan.org/pub/videolan/libdvdread/6.1.2/libdvdread-6.1.2.tar.bz2.sha1 sha1 789d0780fbdcd7d6dadf0fda3d4a4b6198c16393 libdvdread-6.1.2.tar.bz2 # From http://download.videolan.org/pub/videolan/libdvdread/6.1.2/libdvdread-6.1.2.tar.bz2.sha256 sha256 cc190f553758ced7571859e301f802cb4821f164d02bfacfd320c14a4e0da763 libdvdread-6.1.2.tar.bz2 # Hash for license file: sha256 d6cb0e9e560f51085556949a84af12b79a00f10ab8b66c752537faf7cd665572 COPYING ================================================ FILE: package/libdvdread/libdvdread.mk ================================================ ################################################################################ # # libdvdread # ################################################################################ LIBDVDREAD_VERSION = 6.1.2 LIBDVDREAD_SOURCE = libdvdread-$(LIBDVDREAD_VERSION).tar.bz2 LIBDVDREAD_SITE = http://www.videolan.org/pub/videolan/libdvdread/$(LIBDVDREAD_VERSION) LIBDVDREAD_INSTALL_STAGING = YES LIBDVDREAD_LICENSE = GPL-2.0+ LIBDVDREAD_LICENSE_FILES = COPYING LIBDVDREAD_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -std=gnu99" LIBDVDREAD_CONF_OPTS = --with-libdvdcss LIBDVDREAD_DEPENDENCIES = libdvdcss host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/libeXosip2/Config.in ================================================ config BR2_PACKAGE_LIBEXOSIP2 bool "libeXosip2" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBOSIP2 help eXosip is a library that hides the complexity of using the SIP protocol for multimedia session establishment. This protocol is mainly to be used by VoIP telephony applications (endpoints or conference server) but might be also useful for any application that wish to establish sessions like multiplayer games. eXosip is based in libosip. http://savannah.nongnu.org/projects/exosip/ ================================================ FILE: package/libeXosip2/libeXosip2.hash ================================================ # Locally calculated sha256 87256b45a406f3c038e1e75e31372d526820366527c2af3bb89329bafd87ec42 libexosip2-5.2.1.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/libeXosip2/libeXosip2.mk ================================================ ################################################################################ # # libexosip2 # ################################################################################ LIBEXOSIP2_VERSION = 5.2.1 # Since version 5.0, letter 'X' in library's name is in lower case LIBEXOSIP2_SOURCE = libexosip2-$(LIBEXOSIP2_VERSION).tar.gz LIBEXOSIP2_SITE = http://download.savannah.gnu.org/releases/exosip LIBEXOSIP2_INSTALL_STAGING = YES LIBEXOSIP2_LICENSE = GPL-2.0+ LIBEXOSIP2_LICENSE_FILES = COPYING LIBEXOSIP2_CPE_ID_VENDOR = gnu LIBEXOSIP2_CPE_ID_PRODUCT = exosip LIBEXOSIP2_DEPENDENCIES = host-pkgconf libosip2 ifeq ($(BR2_arc),y) # toolchain __arc__ define conflicts with libeXosip2 source LIBEXOSIP2_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -U__arc__" endif ifeq ($(BR2_PACKAGE_C_ARES),y) LIBEXOSIP2_DEPENDENCIES += c-ares endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBEXOSIP2_DEPENDENCIES += openssl LIBEXOSIP2_CONF_OPTS += --enable-openssl else LIBEXOSIP2_CONF_OPTS += --disable-openssl endif LIBEXOSIP2_CONF_OPTS += \ --enable-mt=$(if $(BR2_TOOLCHAIN_HAS_THREADS),yes,no) $(eval $(autotools-package)) ================================================ FILE: package/libeastl/Config.in ================================================ config BR2_PACKAGE_LIBEASTL_ARCH_SUPPORTS bool default y if BR2_i386 default y if BR2_x86_64 default y if BR2_aarch64 default y if BR2_powerpc default y if BR2_powerpc64 config BR2_PACKAGE_LIBEASTL bool "libeastl" depends on BR2_PACKAGE_LIBEASTL_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14 help EASTL stands for Electronic Arts Standard Template Library. EASTL stands for Electronic Arts Standard Template Library. It is a C++ template library of containers, algorithms, and iterators useful for runtime and tool development across multiple platforms. It is an extensive and robust implementation that has an emphasis on high performance. https://github.com/electronicarts/EASTL comment "libeastl needs a toolchain w/ C++, gcc >= 4.9" depends on BR2_PACKAGE_LIBEASTL_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/libeastl/libeastl.hash ================================================ sha256 9b3484553812b3ec3bad0857f7f675499c81f7cf4ac87e5f3b2acbe72e3a878a libeastl-45469730d641868ce05433fff2e199510c7d45c3.tar.gz sha256 82c0243a1a62b8af01dab3bce6ed2b0852604bd508b85a561ba7d32480e598e3 LICENSE ================================================ FILE: package/libeastl/libeastl.mk ================================================ ################################################################################ # # libeastl # ################################################################################ LIBEASTL_VERSION = 45469730d641868ce05433fff2e199510c7d45c3 LIBEASTL_SITE = $(call github,electronicarts,EASTL,$(LIBEASTL_VERSION)) LIBEASTL_LICENSE = BSD-3-Clause LIBEASTL_LICENSE_FILES = LICENSE LIBEASTL_INSTALL_STAGING = YES $(eval $(cmake-package)) ================================================ FILE: package/libebml/0001-include-appropriate-header-files-for-std-numeric_limits.patch ================================================ From f0bfd53647961e799a43d918c46cf3b6bff89806 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Sat, 27 Feb 2021 20:36:52 +0100 Subject: [PATCH] include appropriate header files for std::numeric_limits Fixes #80. [Retrieved (and updated to remove ChangeLog update) from: https://github.com/Matroska-Org/libebml/commit/f0bfd53647961e799a43d918c46cf3b6bff89806] Signed-off-by: Fabrice Fontaine --- ChangeLog | 4 ++++ src/EbmlString.cpp | 1 + src/EbmlUnicodeString.cpp | 1 + 3 files changed, 6 insertions(+) diff --git a/src/EbmlString.cpp b/src/EbmlString.cpp index 27e55fd..4c05fcf 100644 --- a/src/EbmlString.cpp +++ b/src/EbmlString.cpp @@ -34,6 +34,7 @@ \author Steve Lhomme */ #include +#include #include "ebml/EbmlString.h" diff --git a/src/EbmlUnicodeString.cpp b/src/EbmlUnicodeString.cpp index 496a16a..99fc073 100644 --- a/src/EbmlUnicodeString.cpp +++ b/src/EbmlUnicodeString.cpp @@ -36,6 +36,7 @@ */ #include +#include #include "ebml/EbmlUnicodeString.h" ================================================ FILE: package/libebml/Config.in ================================================ config BR2_PACKAGE_LIBEBML bool "libebml" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR help Access library for the EBML (Extensible Binary Meta Language, a binary derivative of XML) format. http://matroska.org comment "libebml needs a toolchain w/ C++, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR ================================================ FILE: package/libebml/libebml.hash ================================================ # Locally calculated sha256 41c7237ce05828fb220f62086018b080af4db4bb142f31bec0022c925889b9f2 libebml-1.4.2.tar.xz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSE.LGPL ================================================ FILE: package/libebml/libebml.mk ================================================ ################################################################################ # # libebml # ################################################################################ LIBEBML_VERSION = 1.4.2 LIBEBML_SOURCE = libebml-$(LIBEBML_VERSION).tar.xz LIBEBML_SITE = http://dl.matroska.org/downloads/libebml LIBEBML_INSTALL_STAGING = YES LIBEBML_LICENSE = LGPL-2.1+ LIBEBML_LICENSE_FILES = LICENSE.LGPL LIBEBML_CPE_ID_VENDOR = matroska $(eval $(cmake-package)) ================================================ FILE: package/libebur128/Config.in ================================================ 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 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 ================================================ FILE: package/libebur128/libebur128.hash ================================================ # Locally computed sha256 baa7fc293a3d4651e244d8022ad03ab797ca3c2ad8442c43199afe8059faa613 libebur128-1.2.6.tar.gz sha256 d6b4754bb67bdd08b97d5d11b2d7434997a371585a78fe77007149df3af8d09c COPYING ================================================ FILE: package/libebur128/libebur128.mk ================================================ ################################################################################ # # libebur128 # ################################################################################ LIBEBUR128_VERSION = 1.2.6 LIBEBUR128_SITE = $(call github,jiixyj,libebur128,v$(LIBEBUR128_VERSION)) LIBEBUR128_LICENSE = MIT LIBEBUR128_LICENSE_FILES = COPYING LIBEBUR128_INSTALL_STAGING = YES $(eval $(cmake-package)) ================================================ FILE: package/libedit/0001-check-bsd-functions-in-libbsd.patch ================================================ configure: on Linux, the BSD functions require linking against libbsd Signed-off-by: "Fabrice Fontaine" (Rebased against 20170329-3.1) Signed-off-by: "Yann E. MORIN" (Rebased against 20150325-3.1) Signed-off-by: Bernd Kuhls diff -durN libedit-20130712-3.1.orig/configure.ac libedit-20130712-3.1/configure.ac --- libedit-20130712-3.1.orig/configure.ac 2013-07-12 20:39:22.000000000 +0200 +++ libedit-20130712-3.1/configure.ac 2013-07-28 23:35:35.012676469 +0200 @@ -117,6 +117,10 @@ #AC_FUNC_REALLOC AC_TYPE_SIGNAL AC_FUNC_STAT + +# Search for libbsd for *vis functions +AC_CHECK_LIB([bsd], [vis]) + AC_CHECK_FUNCS([endpwent isascii memchr memset re_comp regcomp strcasecmp strchr strcspn strdup strerror strrchr strstr strtol issetugid wcsdup strlcpy strlcat getline vis strvis strunvis __secure_getenv secure_getenv]) # strlcpy ================================================ FILE: package/libedit/Config.in ================================================ config BR2_PACKAGE_LIBEDIT bool "libedit" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NCURSES help The editline library (from BSD) provides generic line editing and history functions. It slightly resembles GNU readline. The official homepage is at: http://ftp.netbsd.org/pub/NetBSD/NetBSD-release-5-0/src/lib/libedit/ Jess Thrysoee maintains an autotoolified package, which we use in Buildroot as it makes it much simpler than using the upstream sources which require pmake. http://www.thrysoee.dk/editline comment "libedit needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR ================================================ FILE: package/libedit/libedit.hash ================================================ # Locally computed sha256 dbb82cb7e116a5f8025d35ef5b4f7d4a3cdd0a3909a146a39112095a2d229071 libedit-20191231-3.1.tar.gz sha256 9da6c9c74987a36c84302982799d17d2f748ba1c1c0c471425716173c1d07649 COPYING ================================================ FILE: package/libedit/libedit.mk ================================================ ################################################################################ # # libedit # ################################################################################ LIBEDIT_VERSION = 20191231-3.1 LIBEDIT_SITE = http://www.thrysoee.dk/editline LIBEDIT_INSTALL_STAGING = YES LIBEDIT_DEPENDENCIES = ncurses LIBEDIT_LICENSE = BSD-3-Clause LIBEDIT_LICENSE_FILES = COPYING # We're patching configure.ac LIBEDIT_AUTORECONF = YES # musl is ISO 10646 compliant but doesn't define __STDC_ISO_10646__, # so let's define it manually ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) LIBEDIT_CONF_OPTS += CFLAGS="$(TARGET_CFLAGS) -D__STDC_ISO_10646__=201103L" endif # Note: libbsd required for *vis functions, but works only with a toolchain # with __progname; otherwise, some features are disabled, as if libbsd was # missing entirely. ifeq ($(BR2_PACKAGE_LIBBSD),y) LIBEDIT_DEPENDENCIES += libbsd endif $(eval $(autotools-package)) ================================================ FILE: package/libee/Config.in ================================================ config BR2_PACKAGE_LIBEE bool "libee" select BR2_PACKAGE_LIBESTR help An Event Expression Library inspired by CEE. CEE is an upcoming standard used to describe network events in a number of normalized formats. It's goal is to unify they currently many different representations that exist in the industry. The core idea of libee is to provide a small but hopefully convenient API layer above the CEE standard. However, CEE is not finished. At the time of this writing, CEE is under heavy development and even some of its core data structures (like the data dictionary and taxonmy) have not been fully specified. http://www.libee.org ================================================ FILE: package/libee/libee.hash ================================================ # From http://www.libee.org/download/libee-0-4-1/ md5 7bbf4160876c12db6193c06e2badedb2 libee-0.4.1.tar.gz # Hash for license file: sha256 275fecbf835387e042ba96884f0f05356a485a6ea8449b2c5295cc11652ad439 COPYING ================================================ FILE: package/libee/libee.mk ================================================ ################################################################################ # # libee # ################################################################################ LIBEE_VERSION = 0.4.1 LIBEE_SITE = http://www.libee.org/download/files/download LIBEE_LICENSE = LGPL-2.1+ LIBEE_LICENSE_FILES = COPYING LIBEE_DEPENDENCIES = libestr host-pkgconf LIBEE_INSTALL_STAGING = YES LIBEE_MAKE = $(MAKE1) $(eval $(autotools-package)) ================================================ FILE: package/libenca/Config.in ================================================ config BR2_PACKAGE_LIBENCA bool "libenca" help Extremely Naive Charset Analyser http://cihar.com/software/enca/ ================================================ FILE: package/libenca/libenca.hash ================================================ # Locally calculated sha256 3a487eca40b41021e2e4b7a6440b97d822e6532db5464471f572ecf77295e8b8 enca-1.19.tar.xz sha256 87f1bd4a52b4029476b684fcdd51fed3c6b2540e462d3c2d3bfc9be4558b2825 COPYING ================================================ FILE: package/libenca/libenca.mk ================================================ ################################################################################ # # libenca # ################################################################################ LIBENCA_VERSION = 1.19 LIBENCA_SITE = http://dl.cihar.com/enca LIBENCA_SOURCE = enca-$(LIBENCA_VERSION).tar.xz LIBENCA_INSTALL_STAGING = YES LIBENCA_LICENSE = GPL-2.0 LIBENCA_LICENSE_FILES = COPYING LIBENCA_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv) LIBENCA_CONF_ENV += \ ac_cv_file__dev_random=yes \ ac_cv_file__dev_urandom=yes \ ac_cv_file__dev_arandom=no \ ac_cv_file__dev_srandom=no define LIBENCA_MAKE_HOST_TOOL $(MAKE) -C $(@D)/tools $(HOST_CONFIGURE_OPTS) make_hash endef LIBENCA_PRE_BUILD_HOOKS += LIBENCA_MAKE_HOST_TOOL $(eval $(autotools-package)) ================================================ FILE: package/libepoxy/Config.in ================================================ config BR2_PACKAGE_LIBEPOXY bool "libepoxy" depends on BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_XUTIL_UTIL_MACROS 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 ================================================ FILE: package/libepoxy/libepoxy.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/libepoxy/1.5/libepoxy-1.5.9.sha256sum sha256 d168a19a6edfdd9977fef1308ccf516079856a4275cf876de688fb7927e365e4 libepoxy-1.5.9.tar.xz # Hashes for license files: sha256 8d5144666f9c4df9bbd69b8900086d5979259152a1060421cdcc0fb9061a1c12 COPYING ================================================ FILE: package/libepoxy/libepoxy.mk ================================================ ################################################################################ # # libepoxy # ################################################################################ LIBEPOXY_VERSION_MAJOR = 1.5 LIBEPOXY_VERSION = $(LIBEPOXY_VERSION_MAJOR).9 LIBEPOXY_SITE = http://ftp.gnome.org/pub/gnome/sources/libepoxy/$(LIBEPOXY_VERSION_MAJOR) LIBEPOXY_SOURCE = libepoxy-$(LIBEPOXY_VERSION).tar.xz LIBEPOXY_INSTALL_STAGING = YES LIBEPOXY_DEPENDENCIES = host-pkgconf xutil_util-macros LIBEPOXY_LICENSE = MIT LIBEPOXY_LICENSE_FILES = COPYING LIBEPOXY_CONF_OPTS += -Ddocs=false -Dtests=false ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y) LIBEPOXY_CONF_OPTS += -Degl=yes LIBEPOXY_DEPENDENCIES += libegl else LIBEPOXY_CONF_OPTS += -Degl=no endif ifeq ($(BR2_PACKAGE_HAS_LIBGL)$(BR2_PACKAGE_XLIB_LIBX11),yy) LIBEPOXY_CONF_OPTS += -Dglx=yes -Dx11=true LIBEPOXY_DEPENDENCIES += libgl xlib_libX11 else LIBEPOXY_CONF_OPTS += -Dglx=no -Dx11=false endif $(eval $(meson-package)) ================================================ FILE: package/liberation/Config.in ================================================ config BR2_PACKAGE_LIBERATION bool "Liberation (Free fonts)" help The Liberation Fonts are intended to be replacements for the three most commonly used fonts on Microsoft systems: Times New Roman, Arial, and Courier New. https://github.com/liberationfonts/liberation-fonts if BR2_PACKAGE_LIBERATION config BR2_PACKAGE_LIBERATION_MONO bool "mono fonts" default y config BR2_PACKAGE_LIBERATION_SANS bool "sans fonts" default y config BR2_PACKAGE_LIBERATION_SERIF bool "serif fonts" default y endif ================================================ FILE: package/liberation/liberation.hash ================================================ # Locally calculated sha256 7191c669bf38899f73a2094ed00f7b800553364f90e2637010a69c0e268f25d0 liberation-fonts-ttf-2.1.5.tar.gz sha256 93fed46019c38bbe566b479d22148e2e8a1e85ada614accb0211c37b2c61c19b LICENSE ================================================ FILE: package/liberation/liberation.mk ================================================ ################################################################################ # # liberation # ################################################################################ LIBERATION_VERSION = 2.1.5 LIBERATION_SITE = https://github.com/liberationfonts/liberation-fonts/files/7261482 LIBERATION_SOURCE = liberation-fonts-ttf-$(LIBERATION_VERSION).tar.gz LIBERATION_TARGET_DIR = $(TARGET_DIR)/usr/share/fonts/liberation LIBERATION_LICENSE = OFL-1.1 LIBERATION_LICENSE_FILES = LICENSE ifeq ($(BR2_PACKAGE_LIBERATION_MONO),y) define LIBERATION_INSTALL_MONO $(INSTALL) -m 644 $(@D)/LiberationMono*.ttf $(LIBERATION_TARGET_DIR) endef endif ifeq ($(BR2_PACKAGE_LIBERATION_SANS),y) define LIBERATION_INSTALL_SANS $(INSTALL) -m 644 $(@D)/LiberationSans*.ttf $(LIBERATION_TARGET_DIR) endef endif ifeq ($(BR2_PACKAGE_LIBERATION_SERIF),y) define LIBERATION_INSTALL_SERIF $(INSTALL) -m 644 $(@D)/LiberationSerif*.ttf $(LIBERATION_TARGET_DIR) endef endif define LIBERATION_INSTALL_TARGET_CMDS mkdir -p $(LIBERATION_TARGET_DIR) $(LIBERATION_INSTALL_MONO) $(LIBERATION_INSTALL_SANS) $(LIBERATION_INSTALL_SERIF) endef $(eval $(generic-package)) ================================================ FILE: package/libesmtp/Config.in ================================================ config BR2_PACKAGE_LIBESMTP bool "libesmtp" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 if BR2_PACKAGE_LIBOPENSSL help Library for sending emails through SMTP. https://libesmtp.github.io comment "libesmtp needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libesmtp/libesmtp.hash ================================================ # Locally calculated sha256 32bc3614ca12d21c7d933f32d43410e8744b6f91fdca7732da9877a385e4e6c3 libesmtp-1.1.0.tar.gz sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING.GPL sha256 20c17d8b8c48a600800dfd14f95d5cb9ff47066a9641ddeab48dc54aec96e331 LICENSE ================================================ FILE: package/libesmtp/libesmtp.mk ================================================ ################################################################################ # # libesmtp # ################################################################################ LIBESMTP_VERSION = 1.1.0 LIBESMTP_SITE = $(call github,libesmtp,libESMTP,v$(LIBESMTP_VERSION)) LIBESMTP_INSTALL_STAGING = YES LIBESMTP_LICENSE = GPL-2.0+ (examples), LGPL-2.1+ (library) LIBESMTP_LICENSE_FILES = COPYING.GPL LICENSE LIBESMTP_CPE_ID_VENDOR = libesmtp_project ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBESMTP_CONF_OPTS += -Dtls=enabled LIBESMTP_DEPENDENCIES += openssl else LIBESMTP_CONF_OPTS += -Dtls=disabled endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) LIBESMTP_CONF_OPTS += -Dpthreads=enabled else LIBESMTP_CONF_OPTS += -Dpthreads=disabled endif $(eval $(meson-package)) ================================================ FILE: package/libestr/Config.in ================================================ config BR2_PACKAGE_LIBESTR bool "libestr" help Some essentials for string handling (and a bit more) http://libestr.adiscon.com/ ================================================ FILE: package/libestr/libestr.hash ================================================ # From http://libestr.adiscon.com/download/libestr-0-1-11/ sha256 46632b2785ff4a231dcf241eeb0dcb5fc0c7d4da8ee49cf5687722cdbe8b2024 libestr-0.1.11.tar.gz # Hash for license file: sha256 835b4793da5cbb8965fbd63905b55a4cb4310b7d1b882077d23066b08f901ff8 COPYING ================================================ FILE: package/libestr/libestr.mk ================================================ ################################################################################ # # libestr # ################################################################################ LIBESTR_VERSION = 0.1.11 LIBESTR_SITE = http://libestr.adiscon.com/files/download LIBESTR_LICENSE = LGPL-2.1+ LIBESTR_LICENSE_FILES = COPYING LIBESTR_CPE_ID_VENDOR = adiscon LIBESTR_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libev/Config.in ================================================ config BR2_PACKAGE_LIBEV bool "libev" help Userspace library for handling asynchronous notifications http://software.schmorp.de/pkg/libev.html ================================================ FILE: package/libev/libev.hash ================================================ # Locally calculated sha256 2d5526fc8da4f072dd5c73e18fbb1666f5ef8ed78b73bba12e195cfdd810344e libev-4.27.tar.gz sha256 c4dd1a5bc38b041a320b93c5d6c08f5c41a63f2ce718ee16cfcb757fad448199 LICENSE ================================================ FILE: package/libev/libev.mk ================================================ ################################################################################ # # libev # ################################################################################ LIBEV_VERSION = 4.27 LIBEV_SITE = http://dist.schmorp.de/libev/Attic LIBEV_INSTALL_STAGING = YES LIBEV_LICENSE = BSD-2-Clause or GPL-2.0+ LIBEV_LICENSE_FILES = LICENSE # The 'compatibility' event.h header conflicts with libevent # It's completely unnecessary for BR packages so remove it define LIBEV_DISABLE_EVENT_H_INSTALL $(SED) 's/ event.h//' $(@D)/Makefile.in endef LIBEV_POST_PATCH_HOOKS += LIBEV_DISABLE_EVENT_H_INSTALL $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libevdev/Config.in ================================================ config BR2_PACKAGE_LIBEVDEV bool "libevdev" help libevdev is a wrapper library for evdev devices http://freedesktop.org/wiki/Software/libevdev/ ================================================ FILE: package/libevdev/libevdev.hash ================================================ # From https://lists.freedesktop.org/archives/input-tools/2021-February/001557.html sha256 63f4ea1489858a109080e0b40bd43e4e0903a1e12ea888d581db8c495747c2d0 libevdev-1.11.0.tar.xz sha512 b3c6b4a1532c5142f3684b920dcdd497a5368aec516e8c389e2c8f9d1eaba16c907b2a7f2c82a3c3ff89bb4d0ae5503c736098c095f9f1bc98f0668e99bf639d libevdev-1.11.0.tar.xz # Hash for license files: sha256 6f13de7ce28e4948ba95170e0723ee1254c1978ce1f127af82aeca597b567cb9 COPYING ================================================ FILE: package/libevdev/libevdev.mk ================================================ ################################################################################ # # libevdev # ################################################################################ LIBEVDEV_VERSION = 1.11.0 LIBEVDEV_SITE = http://www.freedesktop.org/software/libevdev LIBEVDEV_SOURCE = libevdev-$(LIBEVDEV_VERSION).tar.xz LIBEVDEV_LICENSE = MIT LIBEVDEV_LICENSE_FILES = COPYING LIBEVDEV_DEPENDENCIES = $(BR2_PYTHON3_HOST_DEPENDENCY) LIBEVDEV_INSTALL_STAGING = YES LIBEVDEV_CONF_OPTS += \ -Dtests=disabled \ -Ddocumentation=disabled \ -Dcoverity=false $(eval $(meson-package)) ================================================ FILE: package/libevent/Config.in ================================================ config BR2_PACKAGE_LIBEVENT bool "libevent" help Userspace library for handling asynchronous notifications http://libevent.org ================================================ FILE: package/libevent/libevent.hash ================================================ # locally computed sha1 cd55656a9b5bed630b08f05495230affb7996b21 libevent-2.1.12-stable.tar.gz sha256 92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb libevent-2.1.12-stable.tar.gz sha256 ff02effc9b331edcdac387d198691bfa3e575e7d244ad10cb826aa51ef085670 LICENSE ================================================ FILE: package/libevent/libevent.mk ================================================ ################################################################################ # # libevent # ################################################################################ LIBEVENT_VERSION = 2.1.12 LIBEVENT_SITE = https://github.com/libevent/libevent/releases/download/release-$(LIBEVENT_VERSION)-stable LIBEVENT_SOURCE = libevent-$(LIBEVENT_VERSION)-stable.tar.gz LIBEVENT_INSTALL_STAGING = YES LIBEVENT_LICENSE = BSD-3-Clause, OpenBSD LIBEVENT_LICENSE_FILES = LICENSE LIBEVENT_CPE_ID_VENDOR = libevent_project LIBEVENT_CONF_OPTS = \ --disable-libevent-regress \ --disable-samples HOST_LIBEVENT_CONF_OPTS = \ --disable-libevent-regress \ --disable-samples \ --disable-openssl define LIBEVENT_REMOVE_PYSCRIPT rm $(TARGET_DIR)/usr/bin/event_rpcgen.py endef # libevent installs a python script to target - get rid of it if we # don't have python support enabled ifneq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y) LIBEVENT_POST_INSTALL_TARGET_HOOKS += LIBEVENT_REMOVE_PYSCRIPT endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBEVENT_DEPENDENCIES += host-pkgconf openssl LIBEVENT_CONF_OPTS += --enable-openssl else LIBEVENT_CONF_OPTS += --disable-openssl endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libexif/0001-libexif-exif-gps-ifd.c-fix-build-with-gcc-4.8.patch ================================================ From 0c925491dea995ca96770159158bb8d57a48d84b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 15 Sep 2021 07:56:32 +0200 Subject: [PATCH] libexif/exif-gps-ifd.c: fix build with gcc 4.8 Fix the following build failure with gcc 4.8 raised since version 0.6.23 and https://github.com/libexif/libexif/commit/e12c3529813cd16d50bf0a1c759093e1039dffec: exif-gps-ifd.c: In function 'exif_get_gps_tag_info': exif-gps-ifd.c:62:3: error: 'for' loop initial declarations are only allowed in C99 mode for (int i = 0; i < sizeof(exif_gps_ifd_tags) / sizeof(ExifGPSIfdTagInfo); ++i) { ^ exif-gps-ifd.c:62:3: note: use option -std=c99 or -std=gnu99 to compile your code Fixes: - http://autobuild.buildroot.org/results/7dd222e06d1e6611449fb8fe7516817c9ad43d65 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/libexif/libexif/pull/72] --- libexif/exif-gps-ifd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libexif/exif-gps-ifd.c b/libexif/exif-gps-ifd.c index 9c9ba70..de5f950 100644 --- a/libexif/exif-gps-ifd.c +++ b/libexif/exif-gps-ifd.c @@ -59,7 +59,8 @@ const static struct ExifGPSIfdTagInfo exif_gps_ifd_tags[] = { }; const ExifGPSIfdTagInfo *exif_get_gps_tag_info(ExifTag tag) { - for (int i = 0; i < sizeof(exif_gps_ifd_tags) / sizeof(ExifGPSIfdTagInfo); ++i) { + int i; + for (i = 0; i < sizeof(exif_gps_ifd_tags) / sizeof(ExifGPSIfdTagInfo); ++i) { if (tag==exif_gps_ifd_tags[i].tag) return &exif_gps_ifd_tags[i]; } -- 2.33.0 ================================================ FILE: package/libexif/Config.in ================================================ config BR2_PACKAGE_LIBEXIF bool "libexif" help Most digital cameras produce EXIF files, which are JPEG files with extra tags that contain information about the image. The EXIF library allows you to parse an EXIF file and read the data from those tags. https://libexif.github.io ================================================ FILE: package/libexif/libexif.hash ================================================ # Locally computed: sha256 a740a99920eb81ae0aa802bb46e683ce6e0cde061c210f5d5bde5b8572380431 libexif-0.6.23.tar.xz sha256 36b6d3fa47916943fd5fec313c584784946047ec1337a78b440e5992cb595f89 COPYING ================================================ FILE: package/libexif/libexif.mk ================================================ ################################################################################ # # libexif # ################################################################################ LIBEXIF_VERSION = 0.6.23 LIBEXIF_SOURCE = libexif-$(LIBEXIF_VERSION).tar.xz LIBEXIF_SITE = \ https://github.com/libexif/libexif/releases/download/v$(LIBEXIF_VERSION) LIBEXIF_INSTALL_STAGING = YES LIBEXIF_DEPENDENCIES = host-pkgconf LIBEXIF_LICENSE = LGPL-2.1+ LIBEXIF_LICENSE_FILES = COPYING LIBEXIF_CPE_ID_VENDOR = libexif_project $(eval $(autotools-package)) ================================================ FILE: package/libfastjson/Config.in ================================================ 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/ ================================================ FILE: package/libfastjson/libfastjson.hash ================================================ # Locally calculated sha256 881f954633aa76931e4c756ece0bda6fd8a673c6e66955a3db3b2bb9d6bbff72 libfastjson-0.99.9.tar.gz sha256 b29370bbfa98816e1fca0901f18149d920736771bfd68b4ee0eb00c78b38d245 COPYING ================================================ FILE: package/libfastjson/libfastjson.mk ================================================ ################################################################################ # # libfastjson # ################################################################################ LIBFASTJSON_VERSION = 0.99.9 LIBFASTJSON_SITE = $(call github,rsyslog,libfastjson,v$(LIBFASTJSON_VERSION)) LIBFASTJSON_INSTALL_STAGING = YES LIBFASTJSON_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' # From git LIBFASTJSON_AUTORECONF = YES LIBFASTJSON_LICENSE = MIT LIBFASTJSON_LICENSE_FILES = COPYING LIBFASTJSON_CPE_ID_VENDOR = rsyslog $(eval $(autotools-package)) ================================================ FILE: package/libfcgi/0001-link-against-math.patch ================================================ Link libfcgi against the math library. Signed-off-by: Thomas Claveirole [Louis: rebase on top of 2.4.2] Signed-off-by: Louis Rannou Index: b/libfcgi/Makefile.am =================================================================== --- a/libfcgi/Makefile.am +++ b/libfcgi/Makefile.am @@ -18,4 +18,5 @@ os_@SYSTEM@.c libfcgi_la_CC = @PTHREAD_CC@ libfcgi_la_CFLAGS = @PTHREAD_CFLAGS@ +libfcgi_la_LIBADD = -lm libfcgi_la_LDFLAGS = @EXTRA_LIBS@ -no-undefined libfcgi___la_SOURCES = $(INCLUDE_FILES) \ ================================================ FILE: package/libfcgi/0002-disable-examples.patch ================================================ Common subdirectories: libfcgi-2.4.0.orig/cgi-fcgi and libfcgi-2.4.0/cgi-fcgi Common subdirectories: libfcgi-2.4.0.orig/doc and libfcgi-2.4.0/doc Common subdirectories: libfcgi-2.4.0.orig/examples and libfcgi-2.4.0/examples Common subdirectories: libfcgi-2.4.0.orig/images and libfcgi-2.4.0/images Common subdirectories: libfcgi-2.4.0.orig/include and libfcgi-2.4.0/include Common subdirectories: libfcgi-2.4.0.orig/java and libfcgi-2.4.0/java Common subdirectories: libfcgi-2.4.0.orig/libfcgi and libfcgi-2.4.0/libfcgi diff -du libfcgi-2.4.0.orig/Makefile.am libfcgi-2.4.0/Makefile.am --- libfcgi-2.4.0.orig/Makefile.am 2001-12-22 14:05:39.000000000 +0100 +++ libfcgi-2.4.0/Makefile.am 2014-07-19 16:56:21.935216540 +0200 @@ -4,7 +4,7 @@ # $Id: Makefile.am,v 1.7 2001/12/22 13:05:39 robs Exp $ # -SUBDIRS = libfcgi cgi-fcgi examples include +SUBDIRS = libfcgi cgi-fcgi include include_HEADERS = fcgi_config.h Common subdirectories: libfcgi-2.4.0.orig/perl and libfcgi-2.4.0/perl Common subdirectories: libfcgi-2.4.0.orig/Win32 and libfcgi-2.4.0/Win32 ================================================ FILE: package/libfcgi/Config.in ================================================ config BR2_PACKAGE_LIBFCGI bool "libfcgi" depends on BR2_USE_MMU # fork() help FCGI, a fastcgi developer library for C/C++ https://fastcgi-archives.github.io/ ================================================ FILE: package/libfcgi/libfcgi.hash ================================================ # Locally calculated sha256 1fe83501edfc3a7ec96bb1e69db3fd5ea1730135bd73ab152186fd0b437013bc libfcgi-2.4.2.tar.gz sha256 f0a8fe4513a43e8eebb24cdcf9d2e7efc52e4d8259178c6d76d3d84418397d81 LICENSE.TERMS ================================================ FILE: package/libfcgi/libfcgi.mk ================================================ ################################################################################ # # libfcgi # ################################################################################ LIBFCGI_VERSION = 2.4.2 LIBFCGI_SITE = $(call github,FastCGI-Archives,fcgi2,$(LIBFCGI_VERSION)) LIBFCGI_LICENSE = OML LIBFCGI_LICENSE_FILES = LICENSE.TERMS LIBFCGI_CPE_ID_VENDOR = fastcgi LIBFCGI_CPE_ID_PRODUCT = fcgi LIBFCGI_INSTALL_STAGING = YES LIBFCGI_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/libffi/0001-Fix-installation-location-of-libffi.patch ================================================ From 580f46a7bc6e9fea3a2227b5268cc3aed1d60e3b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 7 Feb 2013 22:26:56 +0100 Subject: [PATCH] Fix installation location of libffi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The libffi is currently declared as toolexeclib_LTLIBRARIES. In many cases, toolexeclib libraries will be installed in /usr/lib, so it doesn't make any difference. However, with multilib toolchains, they get installed in a subdirectory of /usr/lib/. For example, with a Sourcery CodeBench PowerPC toolchain, if the e500mc multilib variant is used, the libffi library gets installed in /usr/lib/te500mc/. This is due to the following code in the configure script: multi_os_directory=`$CC -print-multi-os-directory` case $multi_os_directory in .) ;; # Avoid trailing /. *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; esac Once the library is installed in /usr/lib/te500mc/, nothing works because this installation location is inconsistent with the installation location declared in libffi.pc. So, instead of using this bizarre toolexeclib_LTLIBRARIES, simply use the more standard lib_LTLIBRARIES, which ensures that the libffi library is always installed in /usr/lib. Signed-off-by: Thomas Petazzoni [unfuzz for 3.2.1] 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 0e40451..309474c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -104,7 +104,7 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS) MAKEOVERRIDES= -toolexeclib_LTLIBRARIES = libffi.la +lib_LTLIBRARIES = libffi.la noinst_LTLIBRARIES = libffi_convenience.la libffi_la_SOURCES = src/prep_cif.c src/types.c \ -- 2.5.3 ================================================ FILE: package/libffi/0002-Fix-use-of-compact-eh-frames-on-MIPS.patch ================================================ From 31b6b6bc14197cd4183bdbd311fddeb36b5ae100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krause?= Date: Sat, 19 Sep 2015 22:53:29 +0200 Subject: [PATCH] Fix use of compact eh frames on MIPS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Newer MIPS toolchains use a different (compact) eh_frame format. libffi don't like them, so we have to switch to the older format. This patch add -mno-compact-eh to CFLAGS when compiling for Mips and compiler support it. Signed-off-by: Jérôme Pouiller [unfuzz for 3.2.1] Signed-off-by: Jörg Krause --- configure.ac | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/configure.ac b/configure.ac index a7bf5ee..36cd0d4 100644 --- a/configure.ac +++ b/configure.ac @@ -469,6 +469,16 @@ esac AM_CONDITIONAL(FFI_EXEC_TRAMPOLINE_TABLE, test x$FFI_EXEC_TRAMPOLINE_TABLE = x1) AC_SUBST(FFI_EXEC_TRAMPOLINE_TABLE) +if test x$TARGET = xMIPS; then + save_CFLAGS="$CFLAGS" + CFLAGS=-mno-compact-eh + AC_MSG_CHECKING([whether the C compiler needs -mno-compact-eh]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], + [AC_MSG_RESULT([yes])]; [save_CFLAGS="$save_CFLAGS -mno-compact-eh"], + [AC_MSG_RESULT([no])]) + CFLAGS="$save_CFLAGS" +fi + if test x$TARGET = xX86_64; then AC_CACHE_CHECK([toolchain supports unwind section type], libffi_cv_as_x86_64_unwind_section_type, [ -- 2.5.3 ================================================ FILE: package/libffi/0003-libffi-enable-hardfloat-in-the-MIPS-assembly-code.patch ================================================ From 48bc37fabbc685b1e3293055bd33ca66c619305e Mon Sep 17 00:00:00 2001 From: Vicente Olivert Riera Date: Wed, 13 Jan 2016 14:49:59 +0000 Subject: [PATCH] libffi: enable hardfloat in the MIPS assembly code This way it will be possible to build it for soft-float. This is only a temporary fix. The package needs to be fixed properly. Signed-off-by: Vicente Olivert Riera [Update for 3.3-rc0] Signed-off-by: Fabrice Fontaine --- src/mips/n32.S | 1 + src/mips/o32.S | 1 + 2 files changed, 2 insertions(+) diff --git a/src/mips/n32.S b/src/mips/n32.S index c6985d3..dc842d5 100644 --- a/src/mips/n32.S +++ b/src/mips/n32.S @@ -44,6 +44,7 @@ #endif #if !defined(__mips_isa_rev) || (__mips_isa_rev<6) .set mips4 #endif + .set hardfloat .text .align 2 .globl ffi_call_N32 diff --git a/src/mips/o32.S b/src/mips/o32.S index eb27981..b653daf 100644 --- a/src/mips/o32.S +++ b/src/mips/o32.S @@ -42,6 +42,7 @@ #define RA_OFF (SIZEOF_FRAME - 1 * FFI_SIZEOF_ARG) .abicalls + .set hardfloat .text .align 2 .globl ffi_call_O32 -- 2.4.10 ================================================ FILE: package/libffi/Config.in ================================================ config BR2_PACKAGE_LIBFFI bool "libffi" depends on BR2_TOOLCHAIN_HAS_THREADS help The libffi library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at run-time. http://sourceware.org/libffi/ comment "libffi needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libffi/libffi.hash ================================================ # Locally calculated sha256 540fb721619a6aba3bdeef7d940d8e9e0e6d2c193595bc243241b77ff9e93620 libffi-3.4.2.tar.gz # License files, locally calculated sha256 a61d06e8f7be57928e71e800eb9273b05cb8868c484108afe41e4305bb320dde LICENSE ================================================ FILE: package/libffi/libffi.mk ================================================ ################################################################################ # # libffi # ################################################################################ LIBFFI_VERSION = 3.4.2 LIBFFI_SITE = \ https://github.com/libffi/libffi/releases/download/v$(LIBFFI_VERSION) LIBFFI_LICENSE = MIT LIBFFI_LICENSE_FILES = LICENSE LIBFFI_CPE_ID_VENDOR = libffi_project LIBFFI_INSTALL_STAGING = YES # We're patching Makefile.am LIBFFI_AUTORECONF = YES # The static exec trampolines is enabled by default since # libffi 3.4.2. However it doesn't work with gobject-introspection. LIBFFI_CONF_OPTS = --disable-exec-static-tramp $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libfm/0001-modules-fix-cross-compilation.patch ================================================ From 3bc935b732d1ff448727e90340e4be40ef6fc000 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 29 Apr 2018 20:22:29 +0200 Subject: [PATCH] modules: fix cross-compilation Do not add -L$(libdir) to AM_LDFLAGS Signed-off-by: Fabrice Fontaine --- src/modules/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/src/modules/Makefile.am b/src/modules/Makefile.am index e61f4e01..01c15bd4 100644 --- a/src/modules/Makefile.am +++ b/src/modules/Makefile.am @@ -11,7 +11,6 @@ AM_CPPFLAGS = \ # tell libtool we compile module not library AM_LDFLAGS = \ -no-undefined -module -avoid-version -shared -export-dynamic \ - -L$(libdir) \ $(GIO_LIBS) # the module should be linked only with libfm, not libfm-gtk or whatever -- 2.14.1 ================================================ FILE: package/libfm/Config.in ================================================ config BR2_PACKAGE_LIBFM bool "libfm" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 depends on BR2_INSTALL_LIBSTDCPP # libgtk2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # libgtk2 -> pango -> harfbuzz select BR2_PACKAGE_CAIRO select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBGTK2 if !BR2_PACKAGE_LIBGTK3_X11 select BR2_PACKAGE_MENU_CACHE help A glib/gio-based library providing some file management utilities and related-widgets missing in gtk+/glib. This is the core of PCManFM. The library is desktop independent (not LXDE specific) and has clean API. It can be used to develop other applications requiring file management functionality. For example, you can create your own file manager with facilities provided by libfm. http://wiki.lxde.org/en/Libfm comment "libfm needs X.org and a toolchain w/ wchar, threads, C++, gcc >= 4.8" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_XORG7 ================================================ FILE: package/libfm/libfm.hash ================================================ # From https://sourceforge.net/projects/pcmanfm/files/PCManFM%20%2B%20Libfm%20%28tarball%20release%29/LibFM/ md5 c87a0ff41ae77825079b2f785ec0741e libfm-1.3.2.tar.xz sha1 7c5c14dd0615b457687966ce4e55c2d054bf93e1 libfm-1.3.2.tar.xz # Locally computed: sha256 a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5 libfm-1.3.2.tar.xz sha256 d8c320ffc0030d1b096ae4732b50d2b811cf95e9a9b7377c1127b2563e0a0388 COPYING sha256 c3a3d93e111462f2b0292b56a6a7b87d342fd7156741d8b81b8b08723be4597e src/extra/fm-xml-file.c ================================================ FILE: package/libfm/libfm.mk ================================================ ################################################################################ # # libfm # ################################################################################ LIBFM_VERSION = 1.3.2 LIBFM_SOURCE = libfm-$(LIBFM_VERSION).tar.xz LIBFM_SITE = http://sourceforge.net/projects/pcmanfm/files LIBFM_DEPENDENCIES = menu-cache libglib2 cairo LIBFM_LICENSE = GPL-2.0+, LGPL-2.1+ LIBFM_LICENSE_FILES = COPYING src/extra/fm-xml-file.c LIBFM_INSTALL_STAGING = YES # We're patching src/modules/Makefile.am LIBFM_AUTORECONF = YES ifeq ($(BR2_PACKAGE_LIBEXIF),y) LIBFM_CONF_OPTS += --enable-exif LIBFM_DEPENDENCIES += libexif 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)) ================================================ FILE: package/libfm-extra/Config.in ================================================ config BR2_PACKAGE_LIBFM_EXTRA bool "libfm-extra" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 help The libfm-extra package contains a library and other files required by menu-cache-gen libexec of menu-cache http://wiki.lxde.org/en/Libfm comment "libfm-extra needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libfm-extra/libfm-extra.hash ================================================ # From https://sourceforge.net/projects/pcmanfm/files/PCManFM%20%2B%20Libfm%20%28tarball%20release%29/LibFM/ md5 c87a0ff41ae77825079b2f785ec0741e libfm-1.3.2.tar.xz sha1 7c5c14dd0615b457687966ce4e55c2d054bf93e1 libfm-1.3.2.tar.xz # Locally computed: sha256 a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5 libfm-1.3.2.tar.gz sha256 d8c320ffc0030d1b096ae4732b50d2b811cf95e9a9b7377c1127b2563e0a0388 COPYING sha256 c3a3d93e111462f2b0292b56a6a7b87d342fd7156741d8b81b8b08723be4597e src/extra/fm-xml-file.c ================================================ FILE: package/libfm-extra/libfm-extra.mk ================================================ ################################################################################ # # libfm-extra # ################################################################################ LIBFM_EXTRA_VERSION = 1.3.2 LIBFM_EXTRA_SOURCE = libfm-$(LIBFM_EXTRA_VERSION).tar.xz LIBFM_EXTRA_SITE = http://sourceforge.net/projects/pcmanfm/files LIBFM_EXTRA_DEPENDENCIES = libglib2 host-intltool LIBFM_EXTRA_LICENSE = GPL-2.0+, LGPL-2.1+ LIBFM_EXTRA_LICENSE_FILES = COPYING src/extra/fm-xml-file.c LIBFM_EXTRA_INSTALL_STAGING = YES LIBFM_EXTRA_CONF_OPTS = --with-extra-only --with-gtk=no $(eval $(autotools-package)) ================================================ FILE: package/libfreefare/Config.in ================================================ config BR2_PACKAGE_LIBFREEFARE bool "libfreefare" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBNFC help Library for high level manipulation of MIFARE cards. http://nfc-tools.org/index.php?title=Libfreefare ================================================ FILE: package/libfreefare/libfreefare.hash ================================================ # From https://github.com/nfc-tools/libfreefare/releases/download/libfreefare-0.4.0/libfreefare-0.4.0.tar.bz2 sha256 bfa31d14a99a1247f5ed49195d6373de512e3eb75bf1627658b40cf7f876bc64 libfreefare-0.4.0.tar.bz2 # Hash for license file: sha256 be6209dfd763a0ba77fbe990cfd2512804441d8b5f0cad927baa3341b50fcade COPYING ================================================ FILE: package/libfreefare/libfreefare.mk ================================================ ################################################################################ # # libfreefare # ################################################################################ LIBFREEFARE_VERSION = 0.4.0 LIBFREEFARE_SOURCE = libfreefare-$(LIBFREEFARE_VERSION).tar.bz2 # Do not use the github helper here, the generated tarball is *NOT* # the same as the one uploaded by upstream for the release. LIBFREEFARE_SITE = https://github.com/nfc-tools/libfreefare/releases/download/libfreefare-$(LIBFREEFARE_VERSION) LIBFREEFARE_DEPENDENCIES = host-pkgconf libnfc openssl LIBFREEFARE_LICENSE = LGPL-3.0+ with exception LIBFREEFARE_LICENSE_FILES = COPYING LIBFREEFARE_CONF_ENV += LIBS=`$(PKG_CONFIG_HOST_BINARY) --libs openssl` $(eval $(autotools-package)) ================================================ FILE: package/libfreeglut/0001-Work-around-for-an-issue-which-cropped-up-with-the-release-of-gcc-10.patch ================================================ From b9998bbc1e1c329f6bf69c24606a2be7a4973b8c Mon Sep 17 00:00:00 2001 From: jtsiomb Date: Fri, 21 Feb 2020 22:25:31 +0000 Subject: [PATCH] Work-around for an issue which cropped up with the release of gcc-10. In their infinite wisdom, they decided to build with -fno-common as default from now on, breaking every piece of C code which used to declare common symbols in header files, as was the convention since the dawn of time. We now have to duplicate all declarations to an arbitrary source file, and change the header-file ones to prefix them with extern. git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1863 7f0cb862-5218-0410-a997-914c9d46530a [Retrieved from: https://github.com/dcnieho/FreeGLUT/commit/b9998bbc1e1c329f6bf69c24606a2be7a4973b8c] Signed-off-by: Fabrice Fontaine --- freeglut/freeglut/src/fg_gl2.c | 14 ++++++++++++++ freeglut/freeglut/src/fg_gl2.h | 14 +++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/fg_gl2.c b/src/fg_gl2.c index 38b0acbb..54b4285b 100644 --- a/src/fg_gl2.c +++ b/src/fg_gl2.c @@ -27,6 +27,20 @@ #include "fg_internal.h" #include "fg_gl2.h" +#ifndef GL_ES_VERSION_2_0 +/* GLES2 has the corresponding entry points built-in, and these fgh-prefixed + * names are defined in fg_gl2.h header to reference them, for any other case, + * define them as function pointers here. + */ +FGH_PFNGLGENBUFFERSPROC fghGenBuffers; +FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; +FGH_PFNGLBINDBUFFERPROC fghBindBuffer; +FGH_PFNGLBUFFERDATAPROC fghBufferData; +FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; +FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; +FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; +#endif + void FGAPIENTRY glutSetVertexAttribCoord3(GLint attrib) { if (fgStructure.CurrentWindow != NULL) fgStructure.CurrentWindow->Window.attribute_v_coord = attrib; diff --git a/src/fg_gl2.h b/src/fg_gl2.h index ab8ba5c7..fb3d4676 100644 --- a/src/fg_gl2.h +++ b/src/fg_gl2.h @@ -67,13 +67,13 @@ typedef void (APIENTRY *FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); typedef void (APIENTRY *FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); typedef void (APIENTRY *FGH_PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -FGH_PFNGLGENBUFFERSPROC fghGenBuffers; -FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; -FGH_PFNGLBINDBUFFERPROC fghBindBuffer; -FGH_PFNGLBUFFERDATAPROC fghBufferData; -FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; -FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; -FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; +extern FGH_PFNGLGENBUFFERSPROC fghGenBuffers; +extern FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; +extern FGH_PFNGLBINDBUFFERPROC fghBindBuffer; +extern FGH_PFNGLBUFFERDATAPROC fghBufferData; +extern FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; +extern FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; +extern FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; # endif ================================================ FILE: package/libfreeglut/Config.in ================================================ config BR2_PACKAGE_LIBFREEGLUT bool "libfreeglut" depends on BR2_PACKAGE_HAS_LIBGL depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_LIBGLU select BR2_PACKAGE_XLIB_LIBXI select BR2_PACKAGE_XLIB_LIBXRANDR select BR2_PACKAGE_XLIB_LIBXXF86VM help FreeGLUT is a free-software/open-source alternative to the OpenGL Utility Toolkit (GLUT) library. GLUT (and hence FreeGLUT) takes care of all the system-specific chores required for creating windows, initializing OpenGL contexts, and handling input events, to allow for trully portable OpenGL programs. http://freeglut.sourceforge.net comment "libfreeglut depends on X.org and needs an OpenGL backend" depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_HAS_LIBGL ================================================ FILE: package/libfreeglut/libfreeglut.hash ================================================ # From http://sourceforge.net/projects/freeglut/files/freeglut/3.2.1/ md5 cd5c670c1086358598a6d4a9d166949d freeglut-3.2.1.tar.gz sha1 7a62e0d2caad92ff745bc5037592b2753f0b2f20 freeglut-3.2.1.tar.gz # Locally computed sha256 d4000e02102acaf259998c870e25214739d1f16f67f99cb35e4f46841399da68 freeglut-3.2.1.tar.gz sha256 b6593d5ec4c113a274abb85b10e8615895cb0ddb89f7912af5fe5aa8df38a275 COPYING ================================================ FILE: package/libfreeglut/libfreeglut.mk ================================================ ################################################################################ # # libfreeglut # ################################################################################ LIBFREEGLUT_VERSION = 3.2.1 LIBFREEGLUT_SOURCE = freeglut-$(LIBFREEGLUT_VERSION).tar.gz LIBFREEGLUT_SITE = http://downloads.sourceforge.net/freeglut LIBFREEGLUT_LICENSE = MIT LIBFREEGLUT_LICENSE_FILES = COPYING LIBFREEGLUT_INSTALL_STAGING = YES LIBFREEGLUT_DEPENDENCIES = \ libgl \ libglu \ xlib_libXi \ xlib_libXrandr \ xlib_libXxf86vm LIBFREEGLUT_CONF_OPTS = -DFREEGLUT_BUILD_DEMOS=OFF # package depends on X.org which depends on !BR2_STATIC_LIBS ifeq ($(BR2_SHARED_LIBS),y) LIBFREEGLUT_CONF_OPTS += \ -DFREEGLUT_BUILD_SHARED_LIBS=ON \ -DFREEGLUT_BUILD_STATIC_LIBS=OFF else ifeq ($(BR2_SHARED_STATIC_LIBS),y) LIBFREEGLUT_CONF_OPTS += \ -DFREEGLUT_BUILD_SHARED_LIBS=ON \ -DFREEGLUT_BUILD_STATIC_LIBS=ON endif $(eval $(cmake-package)) ================================================ FILE: package/libfreeimage/0001-no-root-install.patch ================================================ Makefile.gnu: allow non-root install by not enforcing root ownserhip Signed-off-by: Rémi Rérolle diff -ruN a/Makefile.gnu b/Makefile.gnu --- a/Makefile.gnu 2015-04-09 16:34:02.315316841 +0200 +++ b/Makefile.gnu 2015-04-09 16:34:28.875483201 +0200 @@ -71,9 +71,9 @@ install: install -d $(INCDIR) $(INSTALLDIR) - install -m 644 -o root -g root $(HEADER) $(INCDIR) - install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) - install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) + install -m 644 $(HEADER) $(INCDIR) + install -m 644 $(STATICLIB) $(INSTALLDIR) + install -m 755 $(SHAREDLIB) $(INSTALLDIR) ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME) ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) # ldconfig ================================================ FILE: package/libfreeimage/0002-fix-cpuid-x86.patch ================================================ Fix build issue caused by invalid register usage on x86 Patch taken from https://github.com/openexr/openexr/issues/128. Signed-off-by: Thomas Petazzoni Index: b/Source/OpenEXR/IlmImf/ImfSystemSpecific.cpp =================================================================== --- a/Source/OpenEXR/IlmImf/ImfSystemSpecific.cpp +++ b/Source/OpenEXR/IlmImf/ImfSystemSpecific.cpp @@ -40,21 +40,19 @@ namespace { #if defined(IMF_HAVE_SSE2) && defined(__GNUC__) - +#include // Helper functions for gcc + SSE enabled - void cpuid(int n, int &eax, int &ebx, int &ecx, int &edx) + void cpuid(unsigned int n, unsigned int &eax, unsigned int &ebx, + unsigned int &ecx, unsigned int &edx) { - __asm__ __volatile__ ( - "cpuid" - : /* Output */ "=a"(eax), "=b"(ebx), "=c"(ecx), "=d"(edx) - : /* Input */ "a"(n) - : /* Clobber */); + __get_cpuid(n, &eax, &ebx, &ecx, &edx); } #else // IMF_HAVE_SSE2 && __GNUC__ // Helper functions for generic compiler - all disabled - void cpuid(int n, int &eax, int &ebx, int &ecx, int &edx) + void cpuid(unsigned int n, unsigned int &eax, unsigned int &ebx, + unsigned int &ecx, unsigned int &edx) { eax = ebx = ecx = edx = 0; } @@ -64,7 +62,7 @@ #ifdef OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX - void xgetbv(int n, int &eax, int &edx) + void xgetbv(unsigned int n, unsigned int &eax, unsigned int &edx) { __asm__ __volatile__ ( "xgetbv" @@ -75,7 +73,7 @@ #else // OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX - void xgetbv(int n, int &eax, int &edx) + void xgetbv(unsigned int n, unsigned int &eax, unsigned int &edx) { eax = edx = 0; } @@ -94,8 +92,8 @@ f16c(false) { bool osxsave = false; - int max = 0; - int eax, ebx, ecx, edx; + unsigned int max = 0; + unsigned int eax, ebx, ecx, edx; cpuid(0, max, ebx, ecx, edx); if (max > 0) ================================================ FILE: package/libfreeimage/0003-fix-big-endian-os.patch ================================================ fixed PluginBMP, PluginDDS for compilation under Big Endian OS Downloaded from upstream commit: https://sourceforge.net/p/freeimage/svn/1809/ Signed-off-by: Bernd Kuhls diff -uNr FreeImage.orig/Source/FreeImage/PluginBMP.cpp FreeImage/Source/FreeImage/PluginBMP.cpp --- FreeImage.orig/Source/FreeImage/PluginBMP.cpp 2016-06-15 12:35:30.000000000 +0200 +++ FreeImage/Source/FreeImage/PluginBMP.cpp 2019-08-31 16:00:27.813378612 +0200 @@ -518,7 +518,7 @@ io->read_proc(FreeImage_GetPalette(dib), used_colors * sizeof(RGBQUAD), 1, handle); #if FREEIMAGE_COLORORDER == FREEIMAGE_COLORORDER_RGB RGBQUAD *pal = FreeImage_GetPalette(dib); - for(int i = 0; i < used_colors; i++) { + for(unsigned int i = 0; i < used_colors; i++) { INPLACESWAP(pal[i].rgbRed, pal[i].rgbBlue); } #endif @@ -1419,7 +1419,7 @@ free(buffer); #ifdef FREEIMAGE_BIGENDIAN - } else if (bpp == 16) { + } else if (dst_bpp == 16) { int padding = dst_pitch - dst_width * sizeof(WORD); WORD pad = 0; WORD pixel; @@ -1440,7 +1440,7 @@ } #endif #if FREEIMAGE_COLORORDER == FREEIMAGE_COLORORDER_RGB - } else if (bpp == 24) { + } else if (dst_bpp == 24) { int padding = dst_pitch - dst_width * sizeof(FILE_BGR); DWORD pad = 0; FILE_BGR bgr; @@ -1461,7 +1461,7 @@ } } } - } else if (bpp == 32) { + } else if (dst_bpp == 32) { FILE_BGRA bgra; for(unsigned y = 0; y < dst_height; y++) { BYTE *line = FreeImage_GetScanLine(dib, y); diff -uNr FreeImage.orig/Source/FreeImage/PluginDDS.cpp FreeImage/Source/FreeImage/PluginDDS.cpp --- FreeImage.orig/Source/FreeImage/PluginDDS.cpp 2018-07-31 17:04:58.000000000 +0200 +++ FreeImage/Source/FreeImage/PluginDDS.cpp 2019-08-31 16:00:39.213465120 +0200 @@ -356,14 +356,6 @@ for(int i=0; i<11; i++) { SwapLong(&header->surfaceDesc.dwReserved1[i]); } - SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwSize); - SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwFlags); - SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwFourCC); - SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwRGBBitCount); - SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwRBitMask); - SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwGBitMask); - SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwBBitMask); - SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwRGBAlphaBitMask); SwapLong(&header->surfaceDesc.ddsCaps.dwCaps1); SwapLong(&header->surfaceDesc.ddsCaps.dwCaps2); SwapLong(&header->surfaceDesc.ddsCaps.dwReserved[0]); ================================================ FILE: package/libfreeimage/Config.in ================================================ config BR2_PACKAGE_LIBFREEIMAGE bool "libfreeimage" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR # compiler issue: "Error: invalid register number `63'" depends on !BR2_arc help FreeImage is an Open Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others as needed by today's multimedia applications. http://freeimage.sourceforge.net comment "libfreeimage needs a toolchain w/ C++, dynamic library, wchar" depends on !BR2_arc depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR ================================================ FILE: package/libfreeimage/libfreeimage.hash ================================================ # From https://sourceforge.net/projects/freeimage/files/Source%20Distribution/3.18.0/ md5 f8ba138a3be233a3eed9c456e42e2578 FreeImage3180.zip sha1 38daa9d8f1bca2330a2eaa42ec66fbe6ede7dce9 FreeImage3180.zip # Locally computed sha256 f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd FreeImage3180.zip sha256 d51615a1a47f1ddbb027920d60d3fc30a00e1284c795a47857883e641349fadf license-gplv2.txt sha256 084be110e3e8757d8e6945cda1fbc7e5073bbe688dc19b92c0d8440155d8e282 license-gplv3.txt sha256 0bb9a3123297c73ae6e19c70459fb0e58f313f67ca63176fd43f8e77668b8243 license-fi.txt ================================================ FILE: package/libfreeimage/libfreeimage.mk ================================================ ################################################################################ # # libfreeimage # ################################################################################ LIBFREEIMAGE_VERSION = 3.18.0 LIBFREEIMAGE_SITE = http://downloads.sourceforge.net/freeimage LIBFREEIMAGE_SOURCE = FreeImage$(subst .,,$(LIBFREEIMAGE_VERSION)).zip LIBFREEIMAGE_LICENSE = GPL-2.0 or GPL-3.0 or FreeImage Public License LIBFREEIMAGE_LICENSE_FILES = license-gplv2.txt license-gplv3.txt license-fi.txt LIBFREEIMAGE_CPE_ID_VENDOR = freeimage_project LIBFREEIMAGE_CPE_ID_PRODUCT = freeimage LIBFREEIMAGE_INSTALL_STAGING = YES define LIBFREEIMAGE_EXTRACT_CMDS $(UNZIP) $(LIBFREEIMAGE_DL_DIR)/$(LIBFREEIMAGE_SOURCE) -d $(@D) mv $(@D)/FreeImage/* $(@D) rmdir $(@D)/FreeImage endef define LIBFREEIMAGE_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \ CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" $(MAKE) -C $(@D) endef define LIBFREEIMAGE_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef define LIBFREEIMAGE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/libfribidi/Config.in ================================================ config BR2_PACKAGE_LIBFRIBIDI bool "libfribidi" help GNU FriBidi is an implementation of the Unicode Bidirectional Algorithm (bidi). http://www.fribidi.org/ ================================================ FILE: package/libfribidi/libfribidi.hash ================================================ # Locally computed sha256 7f1c687c7831499bcacae5e8675945a39bacbad16ecaa945e9454a32df653c01 fribidi-1.0.10.tar.xz sha256 32434afcc8666ba060e111d715bfdb6c2d5dd8a35fa4d3ab8ad67d8f850d2f2b COPYING ================================================ FILE: package/libfribidi/libfribidi.mk ================================================ ################################################################################ # # libfribidi # ################################################################################ LIBFRIBIDI_VERSION = 1.0.10 LIBFRIBIDI_SOURCE = fribidi-$(LIBFRIBIDI_VERSION).tar.xz LIBFRIBIDI_SITE = https://github.com/fribidi/fribidi/releases/download/v$(LIBFRIBIDI_VERSION) LIBFRIBIDI_LICENSE = LGPL-2.1+ LIBFRIBIDI_LICENSE_FILES = COPYING LIBFRIBIDI_CPE_ID_VENDOR = gnu LIBFRIBIDI_CPE_ID_PRODUCT = fribidi LIBFRIBIDI_INSTALL_STAGING = YES LIBFRIBIDI_DEPENDENCIES = host-pkgconf $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libftdi/0001_pkgconfig_libusb.patch ================================================ --- configure.in | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) --- a/configure.in +++ b/configure.in @@ -8,30 +8,17 @@ AM_PROG_LIBTOOL AC_PROG_CXX -dnl check for libusb-config -AC_CHECK_TOOL(HAVELIBUSB, libusb-config) - -if test ! -z "$HAVELIBUSB"; then - LIBUSB_CFLAGS=`$HAVELIBUSB --cflags` - LIBUSB_LIBS=`$HAVELIBUSB --libs` - - CFLAGS="$CFLAGS $LIBUSB_CFLAGS" - LIBS="$LIBS $LIBUSB_LIBS" -else - AC_MSG_ERROR([*** libusb-config not found. You need a working libusb installation.]) -fi - -dnl check for version of libusb -AC_MSG_CHECKING([if libusb version is >= 0.1.7]) -libusb_version_needed="1007" -libusb_version=`$HAVELIBUSB --version | sed -e "s/libusb //" | awk 'BEGIN { FS = "."; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'` +dnl check for libusb +PKG_CHECK_MODULES(LIBUSB, libusb >= 0.1.11) +CFLAGS="$CFLAGS $LIBUSB_CFLAGS" +LIBS="$LIBS $LIBUSB_LIBS" -if test $libusb_version -lt $libusb_version_needed; then - AC_MSG_RESULT(no) - AC_MSG_ERROR([*** libusb is too old ($libusb_version). You need a libusb installation newer or equal to 0.1.7.]) -else - AC_MSG_RESULT(yes) -fi +dnl Check for recent pkg-config which supports Requires.private +case `$PKG_CONFIG --version` in +0.?|0.1[0-7]) PKGCONFIG_REQUIRES="Requires"; ;; +*) PKGCONFIG_REQUIRES="Requires.private"; ;; +esac +AC_SUBST(PKGCONFIG_REQUIRES) ENABLE_ASYNC_MODE=0 AC_ARG_WITH(async-mode, ================================================ FILE: package/libftdi/0002-libftdi.pc-requires-libusb-fix-static-build.patch ================================================ From d3d6ca63cb86727533d7d83c98e70002bb04f343 Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Wed, 21 Jan 2015 11:18:59 +0100 Subject: [PATCH] libftdi.pc: requires libusb (fix static build) --- libftdi.pc.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libftdi.pc.in b/libftdi.pc.in index 2061b91..57f0a09 100644 --- a/libftdi.pc.in +++ b/libftdi.pc.in @@ -5,8 +5,8 @@ includedir=@includedir@ Name: libftdi Description: Library to program and control the FTDI USB controller -Requires: +Requires: libusb Version: @VERSION@ -Libs: -L${libdir} -lftdi -lusb +Libs: -L${libdir} -lftdi Cflags: -I${includedir} -- 2.1.0 ================================================ FILE: package/libftdi/Config.in ================================================ config BR2_PACKAGE_LIBFTDI bool "libftdi" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT help Userspace access to FTDI USB interface chips http://www.intra2net.com/en/developer/libftdi/index.php if BR2_PACKAGE_LIBFTDI config BR2_PACKAGE_LIBFTDI_CPP bool "C++ bindings" depends on BR2_INSTALL_LIBSTDCPP 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_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP endif # BR2_PACKAGE_LIBFTDI comment "libftdi needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/libftdi/libftdi.hash ================================================ # Locally computed (after checking the signature from http://www.intra2net.com/en/developer/libftdi/download.php) sha256 3176d5b5986438f33f5208e690a8bfe90941be501cc0a72118ce3d338d4b838e libftdi-0.20.tar.gz # Hash for license files: sha256 6bd354f4b9beca001b1b5395be48cef1d749a3ed27dddb8114bf09eb0ab2d88c LICENSE sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING.GPL sha256 c340cbee4974bb96019e782f2279df016c92fb1e7f5299347e779d9acedbb991 COPYING.LIB ================================================ FILE: package/libftdi/libftdi.mk ================================================ ################################################################################ # # libftdi # ################################################################################ LIBFTDI_VERSION = 0.20 LIBFTDI_SITE = http://www.intra2net.com/en/developer/libftdi/download LIBFTDI_LICENSE = LGPL-2.1 (libftdi) LIBFTDI_LICENSE_FILES = LICENSE COPYING.LIB 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 LIBFTDI_CONF_OPTS = --without-examples # configure detect it automaticaly so we need to force it ifeq ($(BR2_PACKAGE_LIBFTDI_CPP),y) LIBFTDI_LICENSE += , GPL-2.0 with exception (ftdipp) LIBFTDI_LICENSE_FILES += COPYING.GPL LIBFTDI_DEPENDENCIES += boost LIBFTDI_CONF_OPTS += --enable-libftdipp else LIBFTDI_CONF_OPTS += --disable-libftdipp endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libftdi1/0001-cmake-use-the-standard-CMake-flag-to-drive-the-share.patch ================================================ From 7e57ff280b55b45e74329b9988279e8831d32eab Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Sun, 25 Jan 2015 09:45:04 +0100 Subject: [PATCH] cmake: use the standard CMake flag to drive the shared object build Remove the STATICLIBS CMake option (and the code handling it) and let the standard CMake flags drive the shared object build. Signed-off-by: Samuel Martin [Fabrice: update for 1.5] Signed-off-by: Fabrice Fontaine --- CMakeOptions.txt | 1 - ftdipp/CMakeLists.txt | 14 +------------- src/CMakeLists.txt | 13 +------------ 3 files changed, 2 insertions(+), 26 deletions(-) diff --git a/CMakeOptions.txt b/CMakeOptions.txt index 07b5887..b780ffd 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -1,4 +1,3 @@ -option ( STATICLIBS "Build static libraries" ON ) option ( BUILD_TESTS "Build unit tests with Boost Unit Test framework" OFF ) option ( DOCUMENTATION "Generate API documentation with Doxygen" OFF ) option ( EXAMPLES "Build example programs" ON ) diff --git a/ftdipp/CMakeLists.txt b/ftdipp/CMakeLists.txt index fac5bcc..a06edf1 100644 --- a/ftdipp/CMakeLists.txt +++ b/ftdipp/CMakeLists.txt @@ -12,7 +12,7 @@ include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR} include_directories(${Boost_INCLUDE_DIRS}) # Shared library -add_library(ftdipp1 SHARED ${cpp_sources}) +add_library(ftdipp1 ${cpp_sources}) math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1") # Compatibility with previous releases set_target_properties(ftdipp1 PROPERTIES VERSION ${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 3) @@ -29,18 +29,6 @@ install ( TARGETS ftdipp1 ARCHIVE DESTINATION lib${LIB_SUFFIX} ) -# Static library -if ( STATICLIBS ) - add_library(ftdipp1-static STATIC ${cpp_sources}) - set_target_properties(ftdipp1-static PROPERTIES OUTPUT_NAME "ftdipp1") - set_target_properties(ftdipp1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) - - install ( TARGETS ftdipp1-static - ARCHIVE DESTINATION lib${LIB_SUFFIX} - COMPONENT staticlibs - ) -endif () - install ( FILES ${cpp_headers} DESTINATION include/${PROJECT_NAME} COMPONENT headers diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 17b3617..ae4fc61 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -21,7 +21,7 @@ configure_file(ftdi_version_i.h.in "${CMAKE_CURRENT_BINARY_DIR}/ftdi_version_i.h set(c_sources ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.c ${CMAKE_CURRENT_SOURCE_DIR}/ftdi_stream.c CACHE INTERNAL "List of c sources" ) set(c_headers ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.h CACHE INTERNAL "List of c headers" ) -add_library(ftdi1 SHARED ${c_sources}) +add_library(ftdi1 ${c_sources}) math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1") # Compatibility with previous releases set_target_properties(ftdi1 PROPERTIES VERSION ${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 2) @@ -38,17 +38,6 @@ install ( TARGETS ftdi1 ARCHIVE DESTINATION lib${LIB_SUFFIX} ) -if ( STATICLIBS ) - add_library(ftdi1-static STATIC ${c_sources}) - target_link_libraries(ftdi1-static ${LIBUSB_LIBRARIES}) - set_target_properties(ftdi1-static PROPERTIES OUTPUT_NAME "ftdi1") - set_target_properties(ftdi1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) - install ( TARGETS ftdi1-static - ARCHIVE DESTINATION lib${LIB_SUFFIX} - COMPONENT staticlibs - ) -endif () - install ( FILES ${c_headers} DESTINATION include/${PROJECT_NAME} COMPONENT headers -- 2.27.0 ================================================ FILE: package/libftdi1/0002-CMakeLists.txt-fix-paths-when-FTDIPP-is-set.patch ================================================ From 3e68fd7da98a755403cf5719c3d7a3c2f4dcbb58 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 17 Jul 2020 21:04:45 +0200 Subject: [PATCH] CMakeLists.txt: fix paths when FTDIPP is set Use the same project name (i.e. libftdi1 and not libftdipp1) when FTDIPP is enabled as suggested by Aurelien Jarno in http://developer.intra2net.com/mailarchive/html/libftdi/2020/msg00044.html Without this change, the libftdi1.pc config file defines the include path as /usr/local/include/libftdipp1 while the ftdi.h file is actually installed in /usr/local/include/libftdi1 This is an issue for example for libsigrok which will fail on: In file included from src/hardware/asix-sigma/protocol.c:27: src/hardware/asix-sigma/protocol.h:28:10: fatal error: ftdi.h: No such file or directory 28 | #include | ^~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/1427f44e36752c337791597fab47a1889552a2fe Signed-off-by: Fabrice Fontaine [Upstream status: http://developer.intra2net.com/mailarchive/html/libftdi/2020/msg00045.html] --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5aecafc..3b0b87c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -136,7 +136,7 @@ endif () add_subdirectory(src) if ( FTDIPP ) - project(libftdipp1 C CXX) + project(libftdi1 C CXX) add_subdirectory(ftdipp) endif () if ( PYTHON_BINDINGS ) -- 2.27.0 ================================================ FILE: package/libftdi1/Config.in ================================================ config BR2_PACKAGE_LIBFTDI1 bool "libftdi1" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Userspace access to FTDI USB interface chips (version 1.x) http://www.intra2net.com/en/developer/libftdi/index.php if BR2_PACKAGE_LIBFTDI1 config BR2_PACKAGE_LIBFTDI1_LIBFTDIPP1 bool "libftdipp1" depends on BR2_INSTALL_LIBSTDCPP # boost depends on BR2_TOOLCHAIN_HAS_THREADS # boost depends on BR2_USE_WCHAR # boost select BR2_PACKAGE_BOOST help C++ bindings for libftdi comment "libftdipp1 needs a toolchain w/ C++, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR config BR2_PACKAGE_LIBFTDI1_PYTHON_BINDINGS bool "python bindings" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 help Python bindings for libftdi config BR2_PACKAGE_LIBFTDI1_FDTI_EEPROM bool "ftdi_eeprom tool" select BR2_PACKAGE_LIBCONFUSE endif # BR2_PACKAGE_LIBFTDI1 comment "libftdi1 needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/libftdi1/libftdi1.hash ================================================ # Locally computed after checking the signature # https://www.intra2net.com/en/developer/libftdi/download/libftdi1-1.5.tar.bz2.sig sha256 7c7091e9c86196148bd41177b4590dccb1510bfe6cea5bf7407ff194482eb049 libftdi1-1.5.tar.bz2 # Hash for license files: sha256 524f46428bf72bb8c6acfeca4909551fd2e0bdbb5305406d38382f4056095c56 LICENSE sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING.GPL sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c COPYING.LIB ================================================ FILE: package/libftdi1/libftdi1.mk ================================================ ################################################################################ # # libftdi1 # ################################################################################ LIBFTDI1_VERSION = 1.5 LIBFTDI1_SOURCE = libftdi1-$(LIBFTDI1_VERSION).tar.bz2 LIBFTDI1_SITE = http://www.intra2net.com/en/developer/libftdi/download LIBFTDI1_INSTALL_STAGING = YES LIBFTDI1_DEPENDENCIES = libusb LIBFTDI1_LICENSE = LGPL-2.1 (libftdi1), MIT (libftdi1) LIBFTDI1_LICENSE_FILES = LICENSE COPYING.LIB LIBFTDI1_CONFIG_SCRIPTS = libftdi1-config LIBFTDI1_CONF_OPTS = -DDOCUMENTATION=OFF -DEXAMPLES=OFF ifeq ($(BR2_PACKAGE_LIBFTDI1_LIBFTDIPP1),y) LIBFTDI1_LICENSE += , GPL-2.0 with exception (libftdipp1) LIBFTDI1_LICENSE_FILES += COPYING.GPL LIBFTDI1_DEPENDENCIES += boost LIBFTDI1_CONF_OPTS += -DFTDIPP=ON else LIBFTDI1_CONF_OPTS += -DFTDIPP=OFF endif ifeq ($(BR2_PACKAGE_LIBFTDI1_PYTHON_BINDINGS),y) LIBFTDI1_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON),python,python3) host-swig LIBFTDI1_CONF_OPTS += -DPYTHON_BINDINGS=ON else LIBFTDI1_CONF_OPTS += -DPYTHON_BINDINGS=OFF endif ifeq ($(BR2_PACKAGE_LIBFTDI1_FDTI_EEPROM),y) # ftdi_eeprom optionally depends on libintl LIBFTDI1_LICENSE += , GPL-2.0 (ftdi_eeprom) LIBFTDI1_LICENSE_FILES += COPYING.GPL LIBFTDI1_DEPENDENCIES += libconfuse $(TARGET_NLS_DEPENDENCIES) LIBFTDI1_CONF_OPTS += -DFTDI_EEPROM=ON else LIBFTDI1_CONF_OPTS += -DFTDI_EEPROM=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/libfuse/0001-fix-aarch64-build.patch ================================================ Fix build on the AArch64 platform Upstream-Status: Submitted Signed-off-by: Riku Voipio --- a/include/fuse_kernel.h +++ b/include/fuse_kernel.h @@ -88,12 +88,7 @@ #ifndef _LINUX_FUSE_H #define _LINUX_FUSE_H -#include -#define __u64 uint64_t -#define __s64 int64_t -#define __u32 uint32_t -#define __s32 int32_t -#define __u16 uint16_t +#include /* * Version negotiation: ================================================ FILE: package/libfuse/0002-util-ulockmgr_server-c-conditionally-define-closefrom-fix-glibc-2-34.patch ================================================ From 5a43d0f724c56f8836f3f92411e0de1b5f82db32 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sat, 24 Jul 2021 22:02:45 +0100 Subject: [PATCH] util/ulockmgr_server.c: conditionally define closefrom (fix glibc-2.34+) closefrom(3) has joined us in glibc-land from *BSD and Solaris. Since it's available in glibc 2.34+, we want to detect it and only define our fallback if the libc doesn't provide it. Bug: https://bugs.gentoo.org/803923 Signed-off-by: Sam James [Retrieved from: https://github.com/libfuse/libfuse/commit/5a43d0f724c56f8836f3f92411e0de1b5f82db32] Signed-off-by: Fabrice Fontaine --- configure.ac | 1 + util/ulockmgr_server.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/configure.ac b/configure.ac index 9946a0efa..a2d481aa9 100644 --- a/configure.ac +++ b/configure.ac @@ -55,6 +55,7 @@ fi AC_CHECK_FUNCS([fork setxattr fdatasync splice vmsplice utimensat]) AC_CHECK_FUNCS([posix_fallocate]) +AC_CHECK_FUNCS([closefrom]) AC_CHECK_MEMBERS([struct stat.st_atim]) AC_CHECK_MEMBERS([struct stat.st_atimespec]) diff --git a/util/ulockmgr_server.c b/util/ulockmgr_server.c index 273c7d923..a04dac5c6 100644 --- a/util/ulockmgr_server.c +++ b/util/ulockmgr_server.c @@ -22,6 +22,10 @@ #include #include +#ifdef HAVE_CONFIG_H + #include "config.h" +#endif + struct message { unsigned intr : 1; unsigned nofd : 1; @@ -124,6 +128,7 @@ static int receive_message(int sock, void *buf, size_t buflen, int *fdp, return res; } +#if !defined(HAVE_CLOSEFROM) static int closefrom(int minfd) { DIR *dir = opendir("/proc/self/fd"); @@ -141,6 +146,7 @@ static int closefrom(int minfd) } return 0; } +#endif static void send_reply(int cfd, struct message *msg) { ================================================ FILE: package/libfuse/Config.in ================================================ config BR2_PACKAGE_LIBFUSE bool "libfuse" # Really doesn't like static, see fuse/lib/fuse.c depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() help FUSE (Filesystem in UserSpacE) https://github.com/libfuse/libfuse comment "libfuse needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libfuse/libfuse.hash ================================================ # Locally calculated after checking pgp signature sha256 d0e69d5d608cc22ff4843791ad097f554dd32540ddc9bed7638cc6fea7c1b4b5 fuse-2.9.9.tar.gz # Hash for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB ================================================ FILE: package/libfuse/libfuse.mk ================================================ ################################################################################ # # libfuse # ################################################################################ LIBFUSE_VERSION = 2.9.9 LIBFUSE_SOURCE = fuse-$(LIBFUSE_VERSION).tar.gz LIBFUSE_SITE = https://github.com/libfuse/libfuse/releases/download/fuse-$(LIBFUSE_VERSION) LIBFUSE_LICENSE = GPL-2.0, LGPL-2.1 LIBFUSE_LICENSE_FILES = COPYING COPYING.LIB LIBFUSE_CPE_ID_VENDOR = libfuse_project LIBFUSE_INSTALL_STAGING = YES # We're patching configure.ac LIBFUSE_AUTORECONF = YES # add host-gettext for AM_ICONV macro LIBFUSE_DEPENDENCIES = \ host-gettext \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) LIBFUSE_CONF_OPTS = \ --disable-example \ --enable-lib \ --enable-util \ UDEV_RULES_PATH=/lib/udev/rules.d ifeq ($(BR2_PACKAGE_HAS_UDEV),y) define LIBFUSE_INSTALL_UDEV mkdir -p $(TARGET_DIR)/lib/udev/rules.d cp $(STAGING_DIR)/lib/udev/rules.d/*-fuse.rules $(TARGET_DIR)/lib/udev/rules.d endef LIBFUSE_POST_INSTALL_TARGET_HOOKS += LIBFUSE_INSTALL_UDEV endif define LIBFUSE_INSTALL_TARGET_CMDS cp -dpf $(STAGING_DIR)/usr/bin/fusermount $(TARGET_DIR)/usr/bin/ cp -dpf $(STAGING_DIR)/usr/lib/libfuse.so* $(TARGET_DIR)/usr/lib/ endef define LIBFUSE_DEVICES /dev/fuse c 666 0 0 10 229 0 0 - endef define LIBFUSE_PERMISSIONS /usr/bin/fusermount f 4755 0 0 - - - - - endef $(eval $(autotools-package)) ================================================ FILE: package/libfuse3/Config.in ================================================ config BR2_PACKAGE_LIBFUSE3 bool "libfuse3" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() help The reference implementation of the Linux FUSE (Filesystem in Userspace) interface. https://github.com/libfuse/libfuse comment "libfuse3 needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libfuse3/libfuse3.hash ================================================ # Locally calculated sha256 checksums sha256 e73f75e58da59a0e333d337c105093c496c0fd7356ef3a5a540f560697c9c4e6 libfuse3-3.10.5.tar.gz sha256 b8832d9caaa075bbbd2aef24efa09f8b7ab66a832812d88c602da0c7b4397fad LICENSE ================================================ FILE: package/libfuse3/libfuse3.mk ================================================ ################################################################################ # # libfuse3 # ################################################################################ LIBFUSE3_VERSION = 3.10.5 LIBFUSE3_SITE = $(call github,libfuse,libfuse,fuse-$(LIBFUSE3_VERSION)) LIBFUSE3_LICENSE = LGPL-2.1 LIBFUSE3_LICENSE_FILES = LICENSE LIBFUSE3_CPE_ID_VENDOR = libfuse_project LIBFUSE3_CPE_ID_PRODUCT = libfuse LIBFUSE3_INSTALL_STAGING = YES LIBFUSE3_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv) LIBFUSE3_CONF_OPTS = \ -Dexamples=false \ -Dudevrulesdir=/lib/udev/rules.d \ -Duseroot=false \ -Dtests=false define LIBFUSE3_DEVICES /dev/fuse c 666 0 0 10 229 0 0 - endef define LIBFUSE3_PERMISSIONS /usr/bin/fusermount3 f 4755 0 0 - - - - - endef define LIBFUSE3_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_FUSE_FS) endef $(eval $(meson-package)) ================================================ FILE: package/libg7221/Config.in ================================================ config BR2_PACKAGE_LIBG7221 bool "libg7221" help libg722_1 is a library for the ITU G.722.1 and Annex C wideband speech codecs. http://www.soft-switch.org ================================================ FILE: package/libg7221/libg7221.hash ================================================ # Locally computed sha256 7f00d6a4f435a91ab3bc96e6c95aa1334bd416f80d98843b4f178067239ee832 libg7221-dbfc29d4806ecdace50379a2f4d68a992a6fec34-br1.tar.gz sha256 26cc5f718279b45dbe34e25a2d29b2c8ca487bd9ab11b2d68c9318ff59d5c645 COPYING ================================================ FILE: package/libg7221/libg7221.mk ================================================ ################################################################################ # # libg7221 # ################################################################################ LIBG7221_VERSION = dbfc29d4806ecdace50379a2f4d68a992a6fec34 # we use the FreeSwitch fork because it contains pkgconf support LIBG7221_SITE = https://freeswitch.org/stash/scm/sd/libg7221.git LIBG7221_SITE_METHOD = git LIBG7221_LICENSE = Polycom LIBG7221_LICENSE_FILES = COPYING LIBG7221_AUTORECONF = YES LIBG7221_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libgcrypt/0001-configure.ac-add-an-option-to-disable-tests.patch ================================================ From 7fe1b8a53cc8c865c2a10dcd8f6cb4e51ccc6300 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 29 Jul 2019 12:19:10 +0200 Subject: [PATCH] configure.ac: add an option to disable tests Add an option to allow the user to disable tests, this can be useful for example when the toolchain does not provide thread. Indeed, in this case, libgcrypt fails to build t-lock: t-lock.c: In function 'run_test': t-lock.c:359:3: error: unknown type name 'pthread_t' pthread_t rthread; Fixes: - http://autobuild.buildroot.org/results/50a8ba572e3fafd3c6a39bd54bcfcaf78b5ad325 Signed-off-by: Fabrice Fontaine --- Makefile.am | 7 ++++++- configure.ac | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 7fa4fa4d..f0bd90e4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -40,9 +40,14 @@ else doc = endif +if BUILD_TESTS +tests = tests +else +tests = +endif DIST_SUBDIRS = m4 compat mpi cipher random src doc tests -SUBDIRS = compat mpi cipher random src $(doc) tests +SUBDIRS = compat mpi cipher random src $(doc) $(tests) EXTRA_DIST = autogen.sh autogen.rc README.GIT LICENSES \ ChangeLog-2011 build-aux/ChangeLog-2011 doc/ChangeLog-2011 \ diff --git a/configure.ac b/configure.ac index e8c8cd39..1a6b61e5 100644 --- a/configure.ac +++ b/configure.ac @@ -3198,6 +3198,16 @@ AC_ARG_ENABLE([doc], AC_HELP_STRING([--disable-doc], AM_CONDITIONAL([BUILD_DOC], [test "x$build_doc" != xno]) +# +# Option to disable building of tests +# +build_tests=yes +AC_ARG_ENABLE([tests], AC_HELP_STRING([--disable-tests], + [do not build tests]), + build_tests=$enableval, build_tests=yes) +AM_CONDITIONAL([BUILD_TESTS], [test "x$build_tests" != xno]) + + # # Provide information about the build. # -- 2.20.1 ================================================ FILE: package/libgcrypt/Config.in ================================================ 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. http://www.gnu.org/software/libgcrypt/ ================================================ FILE: package/libgcrypt/libgcrypt.hash ================================================ # From https://www.gnupg.org/download/integrity_check.html sha1 1bccc8393482fa1953323ff429c6b5ba5676eb1a libgcrypt-1.9.4.tar.bz2 # Locally calculated after checking signature # https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.9.4.tar.bz2.sig # using key 6DAA6E64A76D2840571B4902528897B826403ADA sha256 ea849c83a72454e3ed4267697e8ca03390aee972ab421e7df69dfe42b65caaf7 libgcrypt-1.9.4.tar.bz2 sha256 ca0061fc1381a3ab242310e4b3f56389f28e3d460eb2fd822ed7a21c6f030532 COPYING.LIB ================================================ FILE: package/libgcrypt/libgcrypt.mk ================================================ ################################################################################ # # libgcrypt # ################################################################################ LIBGCRYPT_VERSION = 1.9.4 LIBGCRYPT_SOURCE = libgcrypt-$(LIBGCRYPT_VERSION).tar.bz2 LIBGCRYPT_LICENSE = LGPL-2.1+ LIBGCRYPT_LICENSE_FILES = COPYING.LIB LIBGCRYPT_SITE = https://gnupg.org/ftp/gcrypt/libgcrypt LIBGCRYPT_INSTALL_STAGING = YES LIBGCRYPT_DEPENDENCIES = libgpg-error LIBGCRYPT_CONFIG_SCRIPTS = libgcrypt-config LIBGCRYPT_CPE_ID_VENDOR = gnupg # Patching configure.ac and Makefile.am in 0001 LIBGCRYPT_AUTORECONF = YES LIBGCRYPT_CONF_OPTS = \ --disable-tests \ --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))" endif $(eval $(autotools-package)) ================================================ FILE: package/libgdiplus/0001-Build-unit-tests-only-when-enable-unit-tests-is-pass.patch ================================================ From ae92a466e203c8aec43f682a3a7aa617b820c3ba Mon Sep 17 00:00:00 2001 From: Sergio Prado Date: Sat, 10 Apr 2021 11:03:38 -0300 Subject: [PATCH] Build unit tests only when --enable-unit-tests is passed Building unit tests by default requires all dependencies to be installed (jpeg, tiff, etc) and users may not want that. So let's disable the build of unit tests by default and introduce --enable-unit-tests configure option to enable it. Signed-off-by: Sergio Prado --- Makefile.am | 8 ++++++-- configure.ac | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index f40bdee0c2e9..152e0d64fdd9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,11 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = src tests -DIST_SUBDIRS = src tests +if BUILD_UNIT_TESTS +SUBDIRS_TESTS = tests +endif + +SUBDIRS = src $(SUBDIRS_TESTS) +DIST_SUBDIRS = src $(SUBDIRS_TESTS) pkgconfigdir = $(libdir)/pkgconfig diff --git a/configure.ac b/configure.ac index 098fd0a664bd..c126ff091e58 100644 --- a/configure.ac +++ b/configure.ac @@ -39,6 +39,10 @@ if test $warnaserror = "yes"; then GDIPLUS_CFLAGS="$GDIPLUS_CFLAGS -Werror -Wno-unknown-warning-option -Wno-clobbered -Wno-typedef-redefinition" fi +AC_ARG_ENABLE(unittests, AS_HELP_STRING([--enable-unittests],[Enable building unit tests.]),[unittests=yes],[unittests=no]) + +AM_CONDITIONAL([BUILD_UNIT_TESTS], [test x$unittests = xyes]) + AC_ARG_ENABLE(asan, AS_HELP_STRING([--enable-asan],[Enable address sanitizer.]),[asan=yes],[asan=no]) if test $asan = "yes"; then -- 2.17.1 ================================================ FILE: package/libgdiplus/Config.in ================================================ config BR2_PACKAGE_LIBGDIPLUS bool "libgdiplus" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_WCHAR # libglib2 -> gettext depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_XLIB_LIBXFT select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_CAIRO select BR2_PACKAGE_LIBPNG help An Open Source implementation of the GDI+ API. https://github.com/mono/libgdiplus comment "libgdiplus needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on BR2_PACKAGE_XORG7 depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libgdiplus/libgdiplus.hash ================================================ # Locally computed: sha256 1fd034f4b636214cc24e94c563cd10b3f3444d9f0660927b60e63fd4131d97fa libgdiplus-6.0.5.tar.gz sha256 81317bf837e02a116dc20b032fa1d0cbf9ec357621f141ff2c2daf26c17cbb5d LICENSE ================================================ FILE: package/libgdiplus/libgdiplus.mk ================================================ ################################################################################ # # libgdiplus # ################################################################################ LIBGDIPLUS_VERSION = 6.0.5 LIBGDIPLUS_SITE = $(call github,mono,libgdiplus,$(LIBGDIPLUS_VERSION)) LIBGDIPLUS_LICENSE = MIT LIBGDIPLUS_LICENSE_FILES = LICENSE LIBGDIPLUS_CPE_ID_VENDOR = mono-project LIBGDIPLUS_INSTALL_STAGING = YES # github tarball doesn't have configure LIBGDIPLUS_AUTORECONF = YES LIBGDIPLUS_DEPENDENCIES = xlib_libXft libglib2 cairo libpng host-pkgconf ifeq ($(BR2_PACKAGE_GIFLIB),y) LIBGDIPLUS_CONF_OPTS += --with-libgif LIBGDIPLUS_DEPENDENCIES += giflib else LIBGDIPLUS_CONF_OPTS += --without-libgif endif # there is a bug in the configure script that enables pango support # when passing --without-pango, so let's just not use it ifeq ($(BR2_PACKAGE_PANGO),y) LIBGDIPLUS_CONF_OPTS += --with-pango LIBGDIPLUS_DEPENDENCIES += pango endif ifeq ($(BR2_PACKAGE_LIBEXIF),y) LIBGDIPLUS_CONF_OPTS += --with-libexif LIBGDIPLUS_DEPENDENCIES += libexif else LIBGDIPLUS_CONF_OPTS += --without-libexif endif ifeq ($(BR2_PACKAGE_JPEG),y) LIBGDIPLUS_CONF_OPTS += --with-libjpeg=$(STAGING_DIR)/usr LIBGDIPLUS_DEPENDENCIES += jpeg else LIBGDIPLUS_CONF_OPTS += --without-libjpeg endif ifeq ($(BR2_PACKAGE_TIFF),y) LIBGDIPLUS_CONF_OPTS += --with-libtiff=$(STAGING_DIR)/usr LIBGDIPLUS_DEPENDENCIES += tiff else LIBGDIPLUS_CONF_OPTS += --without-libtiff endif $(eval $(autotools-package)) ================================================ FILE: package/libgee/0001-gee-Makefile.am-include-Makefile.introspection.patch ================================================ From d771e8ddb5e40f234459966e46880d10f34aaa1a Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 20 Nov 2021 23:57:33 +0100 Subject: [PATCH] gee/Makefile.am: include Makefile.introspection Include Makefile.introspection instead of using a custom rule which will result in the following build failure when cross-compiling on buildroot because of missing --includedir: /home/giuliobenetti/autobuild/run/instance-1/output-1/host/bin/../riscv32-buildroot-linux-gnu/sysroot/usr/bin/g-ir-compiler -l `/usr/bin/sed -nE "s/^dlname='([A-Za-z0-9.+-]+)'/\1/p" libgee-0.8.la` -o Gee-0.8.typelib Gee-0.8.gir libgee-0.8.la Could not find GIR file 'GObject-2.0.gir'; check XDG_DATA_DIRS or use --includedir error parsing file Gee-0.8.gir: Failed to parse included gir GObject-2.0 Fixes: - http://autobuild.buildroot.org/results/884faa0f84c8dc43ed1ca6cde9caf21c731a4b35 Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.gnome.org/GNOME/libgee/-/merge_requests/8] --- gee/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gee/Makefile.am b/gee/Makefile.am index 5634bcb..e0d950e 100644 --- a/gee/Makefile.am +++ b/gee/Makefile.am @@ -167,7 +167,8 @@ INTROSPECTION_COMPILER_ARGS= \ -l $(libgee_dlname) Gee-0.8.gir: libgee_0_8_la_vala.stamp Gee-0.8.typelib: Gee-0.8.gir libgee-0.8.la - @INTROSPECTION_COMPILER@ $(INTROSPECTION_COMPILER_ARGS) -o $@ $^ + +-include $(INTROSPECTION_MAKEFILE) endif MOSTLYCLEANFILES = \ -- 2.33.0 ================================================ FILE: package/libgee/Config.in ================================================ 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 ================================================ FILE: package/libgee/libgee.hash ================================================ # From http://ftp.acc.umu.se/pub/gnome/sources/libgee/0.20/libgee-0.20.4.sha256sum sha256 524c1bf390f9cdda4fbd9a47b269980dc64ab5280f0801b53bc69d782c72de0e libgee-0.20.4.tar.xz # Hash for license file: sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING ================================================ FILE: package/libgee/libgee.mk ================================================ ################################################################################ # # libgee # ################################################################################ LIBGEE_VERSION_MAJOR = 0.20 LIBGEE_VERSION = $(LIBGEE_VERSION_MAJOR).4 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 = LGPL-2.1+ LIBGEE_LICENSE_FILES = COPYING LIBGEE_CPE_ID_VENDOR = gnome # We're patching gee/Makefile.am LIBGEE_AUTORECONF = YES ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBGEE_CONF_OPTS += --enable-introspection LIBGEE_DEPENDENCIES += gobject-introspection else LIBGEE_CONF_OPTS += --disable-introspection endif $(eval $(autotools-package)) ================================================ FILE: package/libgeos/Config.in ================================================ config BR2_PACKAGE_LIBGEOS bool "libgeos" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464 depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 help GEOS (Geometry Engine - Open Source) is a C++ port of the JTS Topology Suite (JTS). It aims to contain the complete functionality of JTS in C++. This includes all the OpenGIS Simple Features for SQL spatial predicate functions and spatial operators, as well as specific JTS enhanced functions. https://trac.osgeo.org/geos comment "libgeos needs a toolchain w/ C++, wchar, not binutils bug 21464, 27597" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464 || \ BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 ================================================ FILE: package/libgeos/libgeos.hash ================================================ # Locally calculated sha256 7e630507dcac9dc07565d249a26f06a15c9f5b0c52dd29129a0e3d381d7e382a geos-3.9.1.tar.bz2 sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/libgeos/libgeos.mk ================================================ ################################################################################ # # libgeos # ################################################################################ LIBGEOS_VERSION = 3.9.1 LIBGEOS_SITE = http://download.osgeo.org/geos LIBGEOS_SOURCE = geos-$(LIBGEOS_VERSION).tar.bz2 LIBGEOS_LICENSE = LGPL-2.1 LIBGEOS_LICENSE_FILES = COPYING LIBGEOS_INSTALL_STAGING = YES LIBGEOS_CONFIG_SCRIPTS = geos-config LIBGEOS_CONF_OPTS = -DBUILD_BENCHMARKS=OFF LIBGEOS_CXXFLAGS = $(TARGET_CXXCFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) LIBGEOS_CXXFLAGS += -O0 endif ifeq ($(BR2_arm)$(BR2_armeb),y) LIBGEOS_CONF_OPTS += -DDISABLE_GEOS_INLINE=ON endif ifeq ($(BR2_or1k),y) LIBGEOS_CXXFLAGS += -mcmodel=large endif LIBGEOS_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(LIBGEOS_CXXFLAGS)" $(eval $(cmake-package)) ================================================ FILE: package/libgeotiff/Config.in ================================================ config BR2_PACKAGE_LIBGEOTIFF bool "libgeotiff" depends on BR2_INSTALL_LIBSTDCPP # proj depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # proj depends on BR2_TOOLCHAIN_HAS_THREADS # proj depends on BR2_USE_WCHAR # proj select BR2_PACKAGE_PROJ select BR2_PACKAGE_TIFF help Libgeotiff is an open source library normally hosted on top of libtiff for reading, and writing GeoTIFF information tags. https://github.com/OSGeo/libgeotiff comment "libgeotiff needs a toolchain w/ C++, gcc >= 4.7, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR ================================================ FILE: package/libgeotiff/libgeotiff.hash ================================================ # Locally computed sha256 9311017e5284cffb86f2c7b7a9df1fb5ebcdc61c30468fb2e6bca36e4272ebca libgeotiff-1.6.0.tar.gz sha256 6a22340b8293c50a34ce8e95589489bd3ec65bcb8b93e61cbda3daaafe498375 LICENSE ================================================ FILE: package/libgeotiff/libgeotiff.mk ================================================ ################################################################################ # # libgeotiff # ################################################################################ LIBGEOTIFF_VERSION = 1.6.0 LIBGEOTIFF_SITE = http://download.osgeo.org/geotiff/libgeotiff LIBGEOTIFF_LICENSE = X11-style, public domain LIBGEOTIFF_LICENSE_FILES = LICENSE LIBGEOTIFF_DEPENDENCIES = proj tiff host-pkgconf LIBGEOTIFF_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_ZLIB),y) LIBGEOTIFF_DEPENDENCIES += zlib LIBGEOTIFF_CONF_OPTS += --with-zlib else LIBGEOTIFF_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_JPEG),y) LIBGEOTIFF_DEPENDENCIES += jpeg LIBGEOTIFF_CONF_OPTS += --with-jpeg else LIBGEOTIFF_CONF_OPTS += --without-jpeg endif $(eval $(autotools-package)) ================================================ FILE: package/libgit2/Config.in ================================================ config BR2_PACKAGE_LIBGIT2 bool "libgit2" depends on !BR2_STATIC_LIBS # libhttpparser select BR2_PACKAGE_LIBHTTPPARSER select BR2_PACKAGE_ZLIB help libgit2 is a portable, pure C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. https://github.com/libgit2/libgit2 comment "libgit2 needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libgit2/libgit2.hash ================================================ # Locally calculated sha256 192eeff84596ff09efb6b01835a066f2df7cd7985e0991c79595688e6b36444e libgit2-1.3.0.tar.gz sha256 8b7e4f54f8bf210c8fe010a49571a1ee57463ef020cc43f051d4d3fbb74942af COPYING ================================================ FILE: package/libgit2/libgit2.mk ================================================ ################################################################################ # # libgit2 # ################################################################################ LIBGIT2_VERSION = 1.3.0 LIBGIT2_SITE = $(call github,libgit2,libgit2,v$(LIBGIT2_VERSION)) LIBGIT2_LICENSE = GPL-2.0 with linking exception, MIT (sha1), wildmatch license (wildmatch) LIBGIT2_LICENSE_FILES = COPYING LIBGIT2_CPE_ID_VENDOR = libgit2_project LIBGIT2_INSTALL_STAGING = YES LIBGIT2_CONF_OPTS = \ -DUSE_GSSAPI=OFF \ -DBUILD_CLAR=OFF \ -DUSE_ICONV=ON \ -DREGEX_BACKEND=regcomp \ -DUSE_HTTP_PARSER=system \ -DUSE_NTLMCLIENT=OFF \ -DTHREADSAFE=$(if $(BR2_TOOLCHAIN_HAS_THREADS),ON,OFF) LIBGIT2_DEPENDENCIES = zlib libhttpparser # If libiconv is available (for !locale toolchains), then we can use # it for iconv support. Note that USE_ICONV=ON is still correct even # without libiconv because (1) most toolchain have iconv support # without libiconv and (2) even if USE_ICONV=ON but iconv support is # not available, libgit2 simply avoids using iconv. ifeq ($(BR2_PACKAGE_LIBICONV),y) LIBGIT2_DEPENDENCIES += libiconv endif ifeq ($(BR2_PACKAGE_LIBSSH2),y) LIBGIT2_DEPENDENCIES += libssh2 LIBGIT2_CONF_OPTS += -DUSE_SSH=ON else LIBGIT2_CONF_OPTS += -DUSE_SSH=OFF endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBGIT2_DEPENDENCIES += openssl LIBGIT2_CONF_OPTS += -DUSE_HTTPS=OpenSSL else LIBGIT2_CONF_OPTS += -DUSE_HTTPS=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/libglade/Config.in ================================================ config BR2_PACKAGE_LIBGLADE bool "libglade" depends on BR2_PACKAGE_LIBGTK2 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_ATK select BR2_PACKAGE_LIBXML2 help Libglade allows you to load glade interface files in a program at runtime. It doesn't require GLADE to be used, but GLADE is by far the easiest way to create the interface files. http://ftp.gnome.org/pub/GNOME/sources/libglade/ comment "libglade needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on BR2_PACKAGE_LIBGTK2 depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libglade/libglade.hash ================================================ # From http://ftp.gnome.org/pub/GNOME/sources/libglade/2.6/libglade-2.6.4.sha256sum sha256 64361e7647839d36ed8336d992fd210d3e8139882269bed47dc4674980165dec libglade-2.6.4.tar.bz2 # Hash for license file: sha256 94b03f1a60a7fd5007149530626a895a6ef5a8b9342abfd56860c5f3956f5d23 COPYING ================================================ FILE: package/libglade/libglade.mk ================================================ ################################################################################ # # libglade # ################################################################################ LIBGLADE_VERSION_MAJOR = 2.6 LIBGLADE_VERSION = $(LIBGLADE_VERSION_MAJOR).4 LIBGLADE_SOURCE = libglade-$(LIBGLADE_VERSION).tar.bz2 LIBGLADE_SITE = http://ftp.gnome.org/pub/GNOME/sources/libglade/$(LIBGLADE_VERSION_MAJOR) LIBGLADE_INSTALL_STAGING = YES LIBGLADE_DEPENDENCIES = host-pkgconf libglib2 libgtk2 atk libxml2 LIBGLADE_LICENSE = LGPL-2.0+ LIBGLADE_LICENSE_FILES = COPYING define LIBGLADE_INSTALL_FIX rm -rf $(TARGET_DIR)/usr/share/xml/libglade \ $(TARGET_DIR)/usr/bin/libglade-convert endef LIBGLADE_POST_INSTALL_TARGET_HOOKS += LIBGLADE_INSTALL_FIX $(eval $(autotools-package)) ================================================ FILE: package/libglew/Config.in ================================================ config BR2_PACKAGE_LIBGLEW bool "libglew" depends on BR2_PACKAGE_XORG7 depends on BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXI select BR2_PACKAGE_XLIB_LIBXMU help The OpenGL Extension Wrangler Library (GLEW) is a cross-platform C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. https://github.com/nigels-com/glew comment "libglew depends on X.org and needs an OpenGL backend" depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_HAS_LIBGL ================================================ FILE: package/libglew/libglew.hash ================================================ # Locally computed: sha256 d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1 glew-2.2.0.tgz sha256 8991cd11befec7c6a63662700f03c0cc42e864b6e77c7e70b80297c951a7f0ff LICENSE.txt ================================================ FILE: package/libglew/libglew.mk ================================================ ################################################################################ # # libglew # ################################################################################ LIBGLEW_VERSION = 2.2.0 LIBGLEW_SOURCE = glew-$(LIBGLEW_VERSION).tgz LIBGLEW_SITE = https://github.com/nigels-com/glew/releases/download/glew-$(LIBGLEW_VERSION) LIBGLEW_LICENSE = BSD-3-Clause, MIT LIBGLEW_LICENSE_FILES = LICENSE.txt LIBGLEW_INSTALL_STAGING = YES LIBGLEW_DEPENDENCIES = libgl xlib_libX11 xlib_libXext xlib_libXi xlib_libXmu # using $TARGET_CONFIGURE_OPTS breaks compilation define LIBGLEW_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ GLEW_NO_GLU="-DGLEW_NO_GLU" \ GLEW_DEST="/usr" LIBDIR="/usr/lib" \ AR="$(TARGET_AR)" CC="$(TARGET_CC)" \ LD="$(TARGET_CC)" STRIP="$(TARGET_STRIP)" \ POPT="$(TARGET_CFLAGS)" LDFLAGS.EXTRA="$(TARGET_LDFLAGS)" endef define LIBGLEW_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ GLEW_NO_GLU="-DGLEW_NO_GLU" \ GLEW_DEST="$(STAGING_DIR)/usr" LIBDIR="$(STAGING_DIR)/usr/lib" \ $(TARGET_CONFIGURE_OPTS) install endef define LIBGLEW_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ GLEW_NO_GLU="-DGLEW_NO_GLU" \ GLEW_DEST="$(TARGET_DIR)/usr" LIBDIR="$(TARGET_DIR)/usr/lib" \ $(TARGET_CONFIGURE_OPTS) install endef $(eval $(generic-package)) ================================================ FILE: package/libglfw/Config.in ================================================ config BR2_PACKAGE_LIBGLFW bool "libglfw" depends on BR2_PACKAGE_XORG7 depends on BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_XLIB_LIBXCURSOR select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXI select BR2_PACKAGE_XLIB_LIBXINERAMA select BR2_PACKAGE_XLIB_LIBXRANDR help GLFW is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events. http://www.glfw.org comment "libglfw depends on X.org and needs an OpenGL backend" depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_HAS_LIBGL ================================================ FILE: package/libglfw/libglfw.hash ================================================ # Locally computed sha256 98768e12e615fbe9f3386f5bbfeb91b5a3b45a8c4c77159cef06b1f6ff749537 libglfw-3.3.2.tar.gz sha256 149704059b5d0bf551637e50042dd4de9c2cae921021f6636298911e3a5f9462 LICENSE.md ================================================ FILE: package/libglfw/libglfw.mk ================================================ ################################################################################ # # libglfw # ################################################################################ LIBGLFW_VERSION = 3.3.2 LIBGLFW_SITE = $(call github,glfw,glfw,$(LIBGLFW_VERSION)) LIBGLFW_INSTALL_STAGING = YES LIBGLFW_DEPENDENCIES = libgl xlib_libXcursor xlib_libXext \ xlib_libXi xlib_libXinerama xlib_libXrandr LIBGLFW_LICENSE = Zlib LIBGLFW_LICENSE_FILES = LICENSE.md LIBGLFW_CONF_OPTS += \ -DGLFW_BUILD_EXAMPLES=OFF \ -DGLFW_BUILD_TESTS=OFF \ -DGLFW_BUILD_DOCS=OFF ifeq ($(BR2_PACKAGE_XLIB_LIBXXF86VM),y) LIBGLFW_DEPENDENCIES += xlib_libXxf86vm endif $(eval $(cmake-package)) ================================================ FILE: package/libglib2/0001-fix-compile-time-atomic-detection.patch ================================================ From d5c628a6179b99705fa05ab87437321b132c81bc Mon Sep 17 00:00:00 2001 From: Brendan Heading Date: Wed, 21 Jun 2017 16:36:15 -0400 Subject: [PATCH] Fix compile time atomic detection Improved compile-time detection of atomic support in the compiler. Upstream-Status: 'Needs information' See : https://gitlab.gnome.org/GNOME/glib/issues/1063 Signed-off-by: Brendan Heading Signed-off-by: Adam Duskett Refresh for 2.68.1 --- glib/gthread-posix.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/glib/gthread-posix.c b/glib/gthread-posix.c index 71a6b7b..d09d029 100644 --- a/glib/gthread-posix.c +++ b/glib/gthread-posix.c @@ -72,8 +72,7 @@ #include #endif -#if defined(HAVE_FUTEX) && \ - (defined(HAVE_STDATOMIC_H) || defined(__ATOMIC_SEQ_CST)) +#if defined(HAVE_FUTEX) && defined(__ATOMIC_SEQ_CST) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) && !defined(__clang__) #define USE_NATIVE_MUTEX #endif -- 2.9.4 ================================================ FILE: package/libglib2/0002-remove-cpp-requirement.patch ================================================ From 2f168951df1feebeac549ada1ea44ea092484c54 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Mon, 16 Sep 2019 10:12:38 -0700 Subject: [PATCH] remove cpp requirement The c++ test is necessary to ensure libglib doesn't accidentally use C++ reserved keywords in public headers. Because this is just a test, it isn't necessary to have a C++ compiler to build libglib2. Signed-off-by: Adam Duskett Upstream status: Denied (Buildroot specific) https://gitlab.gnome.org/GNOME/glib/issues/1748 --- glib/glibconfig.h.in | 1 - meson.build | 18 +----------------- tests/meson.build | 5 ----- 3 files changed, 1 insertion(+), 23 deletions(-) diff --git a/glib/glibconfig.h.in b/glib/glibconfig.h.in index 7ef8c48..128e65d 100644 --- a/glib/glibconfig.h.in +++ b/glib/glibconfig.h.in @@ -117,7 +117,6 @@ typedef unsigned @glib_intptr_type_define@ guintptr; @glib_vacopy@ @g_have_iso_c_varargs@ -@g_have_iso_cxx_varargs@ /* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi * is passed ISO vararg support is turned off, and there is no work diff --git a/meson.build b/meson.build index 4bbf4c2..ac59f4e 100644 --- a/meson.build +++ b/meson.build @@ -1,4 +1,4 @@ -project('glib', 'c', 'cpp', +project('glib', 'c', version : '2.68.4', # NOTE: We keep this pinned at 0.49 because that's what Debian 10 ships meson_version : '>= 0.49.2', @@ -10,7 +10,6 @@ project('glib', 'c', 'cpp', ) cc = meson.get_compiler('c') -cxx = meson.get_compiler('cpp') cc_can_run = not meson.is_cross_build() or meson.has_exe_wrapper() @@ -1679,20 +1678,6 @@ if g_have_iso_c_varargs #endif''') endif -g_have_iso_cxx_varargs = cxx.compiles(''' - void some_func (void) { - int a(int p1, int p2, int p3); - #define call_a(...) a(1,__VA_ARGS__) - call_a(2,3); - }''', name : 'ISO C99 varargs macros in C++') - -if g_have_iso_cxx_varargs - glibconfig_conf.set('g_have_iso_cxx_varargs', ''' -#ifdef __cplusplus -# define G_HAVE_ISO_VARARGS 1 -#endif''') -endif - g_have_gnuc_varargs = cc.compiles(''' void some_func (void) { int a(int p1, int p2, int p3); @@ -2330,7 +2315,6 @@ subdir('gobject') subdir('gthread') subdir('gmodule') subdir('gio') -subdir('fuzzing') if build_tests subdir('tests') endif diff --git a/tests/meson.build b/tests/meson.build index e4ea226..7fd974c 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -55,11 +55,6 @@ tests = { 'source': 'module-test.c', 'c_args': ['-DMODULE_TYPE="plugin"'], }, - 'cxx-test' : { - 'source' : 'cxx-test.cpp', - 'include_directories' : gmoduleinc, - 'dependencies' : [libgio_dep], - }, } test_extra_programs = { -- 2.23.0 ================================================ FILE: package/libglib2/0003-Add-Wno-format-nonliteral-to-compiler-arguments.patch ================================================ From 9e0f11a4981737f98bac93a22b6f2ff1a3887b63 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Tue, 9 Apr 2019 13:03:51 -0400 Subject: [PATCH] Add '-Wno-format-nonliteral' to compiler arguments. This warning is a false positive on older versions of gcc. See https://gitlab.gnome.org/GNOME/glib/issues/1744 for more details. Signed-off-by: Adam Duskett Refresh for 2.68.1 --- meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/meson.build b/meson.build index 3c615b7..7cae4e8 100644 --- a/meson.build +++ b/meson.build @@ -431,6 +431,7 @@ if cc.get_id() == 'gcc' or cc.get_id() == 'clang' # building with -Wbad-function-cast. '-Wno-bad-function-cast', '-Wno-cast-function-type', + '-Wno-format-nonliteral', # Due to function casts through (void*) we cannot support -Wpedantic: # https://wiki.gnome.org/Projects/GLib/CompilerRequirements#Function_pointer_conversions. '-Wno-pedantic', -- 2.20.1 ================================================ FILE: package/libglib2/0004-meson.build-add-girdir-to-gio-2.0.pc-and-glib-2.0.pc.patch ================================================ From ff3db531608eb0f9de8a88c1bc34fe0f1d93121c Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 12 Nov 2021 18:01:05 +0100 Subject: [PATCH] meson.build: add girdir to gio-2.0.pc and glib-2.0.pc Add girdir to gio-2.0.pc and glib-2.0.pc to fix the following build failure with atk or libnice: /home/giuliobenetti/autobuild/run/instance-1/output-1/host/riscv32-buildroot-linux-gnu/sysroot/usr/bin/g-ir-compiler atk/Atk-1.0.gir --output atk/Atk-1.0.typelib --includedir=/usr/share/gir-1.0 Could not find GIR file 'GObject-2.0.gir'; check XDG_DATA_DIRS or use --includedir Fixes: - http://autobuild.buildroot.org/results/2716929db638977e6bf665352a08bd580e1dd0ae - http://autobuild.buildroot.org/results/3088ef32b03e0bb984291b1227b187f1ff816eb7 Signed-off-by: Fabrice Fontaine --- gio/meson.build | 1 + glib/meson.build | 1 + 2 files changed, 2 insertions(+) diff --git a/gio/meson.build b/gio/meson.build index 29473d26b..112d4ada9 100644 --- a/gio/meson.build +++ b/gio/meson.build @@ -831,6 +831,7 @@ pkg.generate(libgio, variables : ['datadir=' + join_paths('${prefix}', get_option('datadir')), 'schemasdir=' + join_paths('${datadir}', schemas_subdir), 'bindir=' + join_paths('${prefix}', get_option('bindir')), + 'girdir=' + join_paths('${libdir}', '../share/gir-1.0'), 'giomoduledir=' + pkgconfig_giomodulesdir, 'gio=' + join_paths('${bindir}', 'gio'), 'gio_querymodules=' + join_paths('${bindir}', 'gio-querymodules'), diff --git a/glib/meson.build b/glib/meson.build index f78f32969..6c5486699 100644 --- a/glib/meson.build +++ b/glib/meson.build @@ -377,6 +377,7 @@ pkg.generate(libglib, subdirs : ['glib-2.0'], extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags, variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')), + 'girdir=' + join_paths('${libdir}', '../share/gir-1.0'), 'glib_genmarshal=' + join_paths('${bindir}', 'glib-genmarshal'), 'gobject_query=' + join_paths('${bindir}', 'gobject-query'), 'glib_mkenums=' + join_paths('${bindir}', 'glib-mkenums')], -- 2.33.0 ================================================ FILE: package/libglib2/Config.in ================================================ config BR2_PACKAGE_LIBGLIB2 bool "libglib2" depends on BR2_USE_WCHAR # gettext depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBFFI select BR2_PACKAGE_PCRE select BR2_PACKAGE_PCRE_UCP select BR2_PACKAGE_ZLIB help Low-level core library that forms the basis of GTK+ and GNOME. http://www.gtk.org/ comment "libglib2 needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libglib2/libglib2.hash ================================================ # https://download.gnome.org/sources/glib/2.68/glib-2.68.4.sha256sum sha256 62fd061d08a75492617e625a73e2c05e259f831acbb8e1f8b9c81f23f7993a3b glib-2.68.4.tar.xz # License files, locally calculated sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/libglib2/libglib2.mk ================================================ ################################################################################ # # libglib2 # ################################################################################ LIBGLIB2_VERSION_MAJOR = 2.68 LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).4 LIBGLIB2_SOURCE = glib-$(LIBGLIB2_VERSION).tar.xz LIBGLIB2_SITE = http://ftp.gnome.org/pub/gnome/sources/glib/$(LIBGLIB2_VERSION_MAJOR) LIBGLIB2_LICENSE = LGPL-2.1+ LIBGLIB2_LICENSE_FILES = COPYING LIBGLIB2_CPE_ID_VENDOR = gnome LIBGLIB2_CPE_ID_PRODUCT = glib LIBGLIB2_INSTALL_STAGING = YES LIBGLIB2_CFLAGS = $(TARGET_CFLAGS) LIBGLIB2_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) # glib/valgrind.h contains inline asm not compatible with thumb1 ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y) LIBGLIB2_CFLAGS += -marm endif HOST_LIBGLIB2_CONF_OPTS = \ -Ddtrace=false \ -Dfam=false \ -Dglib_debug=disabled \ -Dlibelf=disabled \ -Dselinux=disabled \ -Dsystemtap=false \ -Dxattr=false \ -Dinternal_pcre=false \ -Dtests=false \ -Doss_fuzz=disabled LIBGLIB2_DEPENDENCIES = \ host-pkgconf host-libglib2 \ libffi pcre zlib $(TARGET_NLS_DEPENDENCIES) HOST_LIBGLIB2_DEPENDENCIES = \ host-gettext \ host-libffi \ host-pcre \ host-pkgconf \ host-util-linux \ host-zlib # We explicitly specify a giomodule-dir to avoid having a value # containing ${libdir} in gio-2.0.pc. Indeed, a value depending on # ${libdir} would be prefixed by the sysroot by pkg-config, causing a # bogus installation path once combined with $(DESTDIR). LIBGLIB2_CONF_OPTS = \ -Dglib_debug=disabled \ -Dinternal_pcre=false \ -Dlibelf=disabled \ -Dgio_module_dir=/usr/lib/gio/modules \ -Dtests=false \ -Doss_fuzz=disabled LIBGLIB2_MESON_EXTRA_PROPERTIES = \ have_c99_vsnprintf=true \ have_c99_snprintf=true \ have_unix98_printf=true ifneq ($(BR2_ENABLE_LOCALE),y) LIBGLIB2_DEPENDENCIES += libiconv endif ifeq ($(BR2_PACKAGE_ELFUTILS),y) LIBGLIB2_DEPENDENCIES += elfutils endif ifeq ($(BR2_PACKAGE_LIBICONV),y) LIBGLIB2_CONF_OPTS += -Diconv=external LIBGLIB2_DEPENDENCIES += libiconv endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) LIBGLIB2_CONF_OPTS += -Dselinux=enabled -Dxattr=true LIBGLIB2_DEPENDENCIES += libselinux else LIBGLIB2_CONF_OPTS += -Dselinux=disabled -Dxattr=false endif # 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 ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y) LIBGLIB2_CONF_OPTS += -Dlibmount=enabled ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBS),y) LIBGLIB2_DEPENDENCIES += util-linux-libs else LIBGLIB2_DEPENDENCIES += util-linux endif else LIBGLIB2_CONF_OPTS += -Dlibmount=disabled endif # Purge useless binaries from target define LIBGLIB2_REMOVE_DEV_FILES rm -rf $(TARGET_DIR)/usr/lib/glib-2.0 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 # Newer versions of libglib2 prefix glib-genmarshal, gobject-query, # glib-mkenums, glib_compile_schemas, glib_compile_resources and gdbus-codegen # with ${bindir}. Unfortunately, this will resolve to the host systems /bin/ # directory, which will cause compilation issues if the host does not have these # programs. By removing the ${bindir}/ prefix, these programs are resolved in # PATH instead. define LIBGLIB2_REMOVE_BINDIR_PREFIX_FROM_PC_FILE $(SED) 's%$${bindir}/%%g' $(addprefix $(STAGING_DIR)/usr/lib/pkgconfig/, glib-2.0.pc gio-2.0.pc) endef LIBGLIB2_POST_INSTALL_TARGET_HOOKS += LIBGLIB2_REMOVE_BINDIR_PREFIX_FROM_PC_FILE # 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 # 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)/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 $(meson-package)) $(eval $(host-meson-package)) LIBGLIB2_HOST_BINARY = $(HOST_DIR)/bin/glib-genmarshal ================================================ FILE: package/libglob/Config.in ================================================ config BR2_PACKAGE_LIBGLOB bool "libglob" help OpenBSD implementation of glob(3). https://github.com/void-linux/libglob ================================================ FILE: package/libglob/libglob.hash ================================================ # Locally calculated: sha256 4f1b204dad065689941c64828a92441fb316c9c7539b39525fa728125da65e22 libglob-1.0.tar.gz sha256 4cd4bac6ef90d4a91ee6e52df30f241045fb1a27fb53541ef4a9f8e47e6103ca LICENSE ================================================ FILE: package/libglob/libglob.mk ================================================ ################################################################################ # # libglob # ################################################################################ LIBGLOB_VERSION = 1.0 LIBGLOB_SITE = $(call github,voidlinux,libglob,$(LIBGLOB_VERSION)) LIBGLOB_LICENSE = BSD-3-Clause LIBGLOB_LICENSE_FILES = LICENSE LIBGLOB_INSTALL_STAGING = YES ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) LIBGLOB_MAKE_TARGETS += libglob.so # $1: destination directory define LIBGLOB_INSTALL_SHARED $(INSTALL) -m 0755 -D $(@D)/libglob.so.0.0.0 \ $(1)/usr/lib/libglob.so.0.0.0 ln -sf libglob.so.0.0.0 $(1)/usr/lib/libglob.so.0 ln -sf libglob.so.0.0.0 $(1)/usr/lib/libglob.so endef endif ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y) LIBGLOB_MAKE_TARGETS += libglob.a # $1: destination directory define LIBGLOB_INSTALL_STATIC $(INSTALL) -m 0644 -D $(@D)/libglob.a $(1)/usr/lib/libglob.a endef endif define LIBGLOB_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(LIBGLOB_MAKE_TARGETS) endef define LIBGLOB_INSTALL_STAGING_CMDS $(INSTALL) -m 0644 -D $(@D)/glob.h \ $(STAGING_DIR)/usr/include/libglob/glob.h $(call LIBGLOB_INSTALL_SHARED,$(STAGING_DIR)) $(call LIBGLOB_INSTALL_STATIC,$(STAGING_DIR)) endef define LIBGLOB_INSTALL_TARGET_CMDS $(call LIBGLOB_INSTALL_SHARED,$(TARGET_DIR)) endef $(eval $(generic-package)) ================================================ FILE: package/libglu/Config.in ================================================ config BR2_PACKAGE_LIBGLU bool "libglu" depends on BR2_PACKAGE_HAS_LIBGL help Mesa OpenGL Utility library http://cgit.freedesktop.org/mesa/glu/ comment "libglu needs an OpenGL backend" depends on !BR2_PACKAGE_HAS_LIBGL ================================================ FILE: package/libglu/libglu.hash ================================================ # From https://lists.freedesktop.org/archives/mesa-announce/2021-June/000634.html sha256 6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4 glu-9.0.2.tar.xz sha512 2517d7406bb643d12c017a95dcb5d8716f307344332638bcbdf274a90752a7c22165d34745f1b082ed916bb07d40e62d1d1d67d96426225be63166f3480d6f64 glu-9.0.2.tar.xz # locally computed sha256 3a9992ccc9d672cfdd07ea862431d943a992d04836570c638a733bf15ec62c54 include/GL/glu.h ================================================ FILE: package/libglu/libglu.mk ================================================ ################################################################################ # # libglu # ################################################################################ LIBGLU_VERSION = 9.0.2 LIBGLU_SITE = https://mesa.freedesktop.org/archive/glu LIBGLU_SOURCE = glu-$(LIBGLU_VERSION).tar.xz LIBGLU_LICENSE = SGI-B-2.0 LIBGLU_LICENSE_FILES = include/GL/glu.h LIBGLU_INSTALL_STAGING = YES LIBGLU_DEPENDENCIES = libgl host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/libgpg-error/0001-build-Fix-generation-of-lock-obj-pub.native.h-for-cr.patch ================================================ From 7350874f6f62314af4c8ec1973c91d305a6f4ddc Mon Sep 17 00:00:00 2001 From: David Michael Date: Fri, 26 Mar 2021 16:06:50 +0900 Subject: [PATCH] build: Fix generation of lock-obj-pub.native.h for cross build. * src/gen-lock-obj.sh: Capture echo output with quotes. -- Fixes-commit: 99ae862a96a569724f49a604ebb7d3f6d2c2d374 Signed-off-by: David Michael Upstream: 33593864cd54143db594c4237bba41e14179061c Signed-off-by: Thomas Petazzoni --- src/gen-lock-obj.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gen-lock-obj.sh b/src/gen-lock-obj.sh index a710f0c..258eec6 100755 --- a/src/gen-lock-obj.sh +++ b/src/gen-lock-obj.sh @@ -38,7 +38,7 @@ # AWK=gawk ./gen-lock-obj.sh # -if test -n `echo -n`; then +if test -n "`echo -n`"; then ECHO_C='\c' ECHO_N='' else -- 2.31.1 ================================================ FILE: package/libgpg-error/0002-build-Fix-disable-threads.patch ================================================ From 7ede0d4ce19e0ed14cd1cec81ba7df4e467f1eeb Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Mon, 21 Jun 2021 12:16:20 +0900 Subject: [PATCH] build: Fix --disable-threads. * src/gen-lock-obj.sh: Fix generating '}}}'. -- GnuPG-bug-id: 5495 Reported-by: Fabrice Fontaine Fixes-commit: 1fb90a7da186ee2ee098a666f6f3a35bb1720e59 Signed-off-by: NIIBE Yutaka [Retrieved from: https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=commit;h=220a427b4f997ef6af1b2d4e82ef1dc96e0cd6ff] Signed-off-by: Fabrice Fontaine --- src/gen-lock-obj.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gen-lock-obj.sh b/src/gen-lock-obj.sh index 258eec6..014667f 100755 --- a/src/gen-lock-obj.sh +++ b/src/gen-lock-obj.sh @@ -121,10 +121,10 @@ while test "$i" -lt $ac_mtx_size; do fi i=$(( i + 1 )) done +echo '}}}' fi cat <<'EOF' -}}} ## ## Local Variables: ## mode: c -- 2.31.1 ================================================ FILE: package/libgpg-error/Config.in ================================================ 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_RISCV_64 || \ BR2_RISCV_32 || BR2_s390x || 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. 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 "riscv32-unknown-linux-gnu" \ if BR2_RISCV_32 default "riscv64-unknown-linux-gnu" \ if BR2_RISCV_64 default "s390x-unknown-linux-gnu" \ if BR2_s390x 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-unknown-linux-gnu" \ if BR2_x86_64 ================================================ FILE: package/libgpg-error/libgpg-error.hash ================================================ # From https://www.gnupg.org/download/integrity_check.html sha1 5e620d71fc24d287a7ac2460b1d819074bb8b9bb libgpg-error-1.42.tar.bz2 # Locally calculated after checking pgp signature # https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.42.tar.bz2.sig # using key D8692123C4065DEA5E0F3AB5249B39D24F25E3B6 sha256 fc07e70f6c615f8c4f590a8e37a9b8dd2e2ca1e9408f8e60459c67452b925e23 libgpg-error-1.42.tar.bz2 # Locally calculated sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING.LIB ================================================ FILE: package/libgpg-error/libgpg-error.mk ================================================ ################################################################################ # # libgpg-error # ################################################################################ LIBGPG_ERROR_VERSION = 1.42 LIBGPG_ERROR_SITE = https://www.gnupg.org/ftp/gcrypt/libgpg-error LIBGPG_ERROR_SOURCE = libgpg-error-$(LIBGPG_ERROR_VERSION).tar.bz2 LIBGPG_ERROR_LICENSE = GPL-2.0+, LGPL-2.1+ LIBGPG_ERROR_LICENSE_FILES = COPYING COPYING.LIB LIBGPG_ERROR_CPE_ID_VENDOR = gnupg LIBGPG_ERROR_INSTALL_STAGING = YES LIBGPG_ERROR_CONFIG_SCRIPTS = gpg-error-config LIBGPG_ERROR_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) LIBGPG_ERROR_CONF_OPTS = --disable-tests \ --host=$(BR2_PACKAGE_LIBGPG_ERROR_SYSCFG) ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) LIBGPG_ERROR_CONF_OPTS += --enable-threads else LIBGPG_ERROR_CONF_OPTS += --disable-threads endif $(eval $(autotools-package)) ================================================ FILE: package/libgpgme/0001-core-Support-closefrom-also-for-glibc.patch ================================================ From 4b64774b6d13ffa4f59dddf947a97d61bcfa2f2e Mon Sep 17 00:00:00 2001 From: Jiri Kucera Date: Sun, 25 Jul 2021 11:35:54 +0200 Subject: [PATCH] core: Support closefrom also for glibc. * src/posix-io.c (_gpgme_io_spawn): Use glibc's closefrom. -- Since 2.34, glibc introduces closefrom (the implementation follows *BSD standard). Signed-off-by: Werner Koch [Retrieved from: https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=commit;h=4b64774b6d13ffa4f59dddf947a97d61bcfa2f2e] Signed-off-by: Fabrice Fontaine --- src/posix-io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/posix-io.c b/src/posix-io.c index e712ef28..2a3a81fc 100644 --- a/src/posix-io.c +++ b/src/posix-io.c @@ -570,7 +570,7 @@ _gpgme_io_spawn (const char *path, char *const argv[], unsigned int flags, if (fd_list[i].fd > fd) fd = fd_list[i].fd; fd++; -#if defined(__sun) || defined(__FreeBSD__) +#if defined(__sun) || defined(__FreeBSD__) || defined(__GLIBC__) closefrom (fd); max_fds = fd; #else /*!__sun */ -- 2.11.0 ================================================ FILE: package/libgpgme/Config.in ================================================ 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 select BR2_PACKAGE_LIBGPG_ERROR select BR2_PACKAGE_LIBASSUAN help GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG easier for applications. http://www.gnupg.org/related_software/gpgme/ ================================================ FILE: package/libgpgme/libgpgme.hash ================================================ # Locally calculated after checking pgp signature # https://gnupg.org/ftp/gcrypt/gpgme/gpgme-1.15.1.tar.bz2.sig # using key D8692123C4065DEA5E0F3AB5249B39D24F25E3B6 sha256 eebc3c1b27f1c8979896ff361ba9bb4778b508b2496c2fc10e3775a40b1de1ad gpgme-1.15.1.tar.bz2 # Locally calculated sha256 ca0061fc1381a3ab242310e4b3f56389f28e3d460eb2fd822ed7a21c6f030532 COPYING.LESSER ================================================ FILE: package/libgpgme/libgpgme.mk ================================================ ################################################################################ # # libgpgme # ################################################################################ LIBGPGME_VERSION = 1.15.1 LIBGPGME_SITE = https://gnupg.org/ftp/gcrypt/gpgme LIBGPGME_SOURCE = gpgme-$(LIBGPGME_VERSION).tar.bz2 LIBGPGME_LICENSE = LGPL-2.1+ LIBGPGME_LICENSE_FILES = COPYING.LESSER LIBGPGME_CPE_ID_VENDOR = gnupg LIBGPGME_CPE_ID_PRODUCT = gpgpme LIBGPGME_INSTALL_STAGING = YES LIBGPGME_DEPENDENCIES = libassuan libgpg-error LIBGPGME_CONFIG_SCRIPTS = gpgme-config LIBGPGME_LANGUAGE_BINDINGS = cl # C++ bindings require a C++11 capable gcc, and -Wsuggest-override support ifeq ($(BR2_INSTALL_LIBSTDCPP)$(BR2_TOOLCHAIN_GCC_AT_LEAST_5),yy) LIBGPGME_LANGUAGE_BINDINGS += cpp endif LIBGPGME_CONF_OPTS = \ --with-gpg-error-prefix=$(STAGING_DIR)/usr \ --with-libassuan-prefix=$(STAGING_DIR)/usr \ --disable-gpgsm-test \ --disable-gpgconf-test \ --disable-g13-test \ --disable-gpg-test \ --enable-languages=$(subst $(space),$(comma),$(LIBGPGME_LANGUAGE_BINDINGS)) # Handle argp-standalone or it errors out during build ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y) # 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 # MIPS N64 (re)introduced getdents64 in kernel version 3.10 ifeq ($(BR2_MIPS_NABI64)x$(BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10),yx) LIBGPGME_CONF_OPTS += --disable-linux-getdents endif $(eval $(autotools-package)) ================================================ FILE: package/libgphoto2/Config.in ================================================ config BR2_PACKAGE_LIBGPHOTO2 bool "libgphoto2" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBTOOL select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBXML2 help libgphoto2 is the core library designed to allow access to digital camera by external programs. http://gphoto.org/proj/libgphoto2/ comment "libgphoto needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/libgphoto2/libgphoto2.hash ================================================ # Locally calculated hash sha256 a7253bd18c6ef65352150ac36a668f883a5ad2634eb6455b3ca9aa6ac98d0073 libgphoto2-2.5.27.tar.xz sha256 ebc385a0b1d477be5177ed6d9129557aa59a3ad0f26ebe7dd97ee942a0fb68ee COPYING ================================================ FILE: package/libgphoto2/libgphoto2.mk ================================================ ################################################################################ # # libgphoto2 # ################################################################################ LIBGPHOTO2_VERSION = 2.5.27 LIBGPHOTO2_SOURCE = libgphoto2-$(LIBGPHOTO2_VERSION).tar.xz LIBGPHOTO2_SITE = https://github.com/gphoto/libgphoto2/releases/download/v$(LIBGPHOTO2_VERSION) LIBGPHOTO2_LICENSE = LGPL-2.1+, GPL-2.0 (adc65), GPL-2.0+ (some camlibs), \ LGPL-2.0 (sipix), LGPL-3.0+ (pentax), BSD-3-Clause (ax203/tinyjpeg) # There is a single license file for the LGPL-2.1, no license files # for other licenses LIBGPHOTO2_LICENSE_FILES = COPYING LIBGPHOTO2_INSTALL_STAGING = YES LIBGPHOTO2_DEPENDENCIES = libxml2 libusb libtool host-pkgconf LIBGPHOTO2_CONF_ENV = udevscriptdir=/lib/udev LIBGPHOTO2_CONF_OPTS += --without-rpmbuild --disable-gp2ddb --disable-internal-docs ifeq ($(BR2_PACKAGE_LIBUSB_COMPAT),y) # libusb-compat is not actually used, but it is detected, so add it # here to guarantee reproducible builds LIBGPHOTO2_DEPENDENCIES += libusb-compat endif ifeq ($(BR2_PACKAGE_LIBCURL),y) LIBGPHOTO2_DEPENDENCIES += libcurl LIBGPHOTO2_CONF_OPTS += --with-libcurl=auto else LIBGPHOTO2_CONF_OPTS += --with-libcurl=no endif ifeq ($(BR2_PACKAGE_LIBEXIF),y) LIBGPHOTO2_DEPENDENCIES += libexif LIBGPHOTO2_CONF_OPTS += --with-libexif=auto else LIBGPHOTO2_CONF_OPTS += --with-libexif=no endif ifeq ($(BR2_PACKAGE_JPEG),y) LIBGPHOTO2_DEPENDENCIES += jpeg LIBGPHOTO2_CONF_OPTS += --with-jpeg else LIBGPHOTO2_CONF_OPTS += --without-jpeg endif ifeq ($(BR2_PACKAGE_GD),y) LIBGPHOTO2_DEPENDENCIES += gd LIBGPHOTO2_CONF_OPTS += --with-gdlib=auto else LIBGPHOTO2_CONF_OPTS += --with-gdlib=no endif ifeq ($(BR2_PACKAGE_LOCKDEV),y) LIBGPHOTO2_DEPENDENCIES += lockdev endif $(eval $(autotools-package)) ================================================ FILE: package/libgpiod/0001-build-add-a-configure-switch-for-building-examples.patch ================================================ From 5e9e7223a3633ee82b557d21b1f18aa15becd450 Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Mon, 7 Dec 2020 20:38:30 +0100 Subject: build: add a configure switch for building examples Example code for bindings is currently always built if bindings are enabled. Make it conditional with a new configure switch. Signed-off-by: Bartosz Golaszewski Reviewed-by: Andy Shevchenko [Retrieved from: https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/commit/?id=5e9e7223a3633ee82b557d21b1f18aa15becd450] Signed-off-by: Fabrice Fontaine --- bindings/cxx/Makefile.am | 8 +++++++- bindings/python/Makefile.am | 10 ++++++++-- configure.ac | 6 ++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/bindings/cxx/Makefile.am b/bindings/cxx/Makefile.am index 5c40ceb..87463b0 100644 --- a/bindings/cxx/Makefile.am +++ b/bindings/cxx/Makefile.am @@ -18,10 +18,16 @@ include_HEADERS = gpiod.hpp pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libgpiodcxx.pc -SUBDIRS = . examples +SUBDIRS = . if WITH_TESTS SUBDIRS += tests endif + +if WITH_EXAMPLES + +SUBDIRS += examples + +endif diff --git a/bindings/python/Makefile.am b/bindings/python/Makefile.am index 124f152..5403bcb 100644 --- a/bindings/python/Makefile.am +++ b/bindings/python/Makefile.am @@ -6,8 +6,6 @@ # Copyright (C) 2017-2018 Bartosz Golaszewski # -SUBDIRS = . examples - pyexec_LTLIBRARIES = gpiod.la gpiod_la_SOURCES = gpiodmodule.c @@ -17,8 +15,16 @@ gpiod_la_CFLAGS += -Wall -Wextra -g -std=gnu89 $(PYTHON_CPPFLAGS) gpiod_la_LDFLAGS = -module -avoid-version gpiod_la_LIBADD = $(top_builddir)/lib/libgpiod.la $(PYTHON_LIBS) +SUBDIRS = . + if WITH_TESTS SUBDIRS += tests endif + +if WITH_EXAMPLES + +SUBDIRS += examples + +endif diff --git a/configure.ac b/configure.ac index 57c99a8..90a6324 100644 --- a/configure.ac +++ b/configure.ac @@ -155,6 +155,12 @@ then fi fi +AC_ARG_ENABLE([examples], + [AS_HELP_STRING([--enable-examples], [enable building code examples[default=no]])], + [if test "x$enableval" = xyes; then with_examples=true; fi], + [with_examples=false]) +AM_CONDITIONAL([WITH_EXAMPLES], [test "x$with_examples" = xtrue]) + AC_ARG_ENABLE([bindings-cxx], [AS_HELP_STRING([--enable-bindings-cxx],[enable C++ bindings [default=no]])], [if test "x$enableval" = xyes; then with_bindings_cxx=true; fi], -- cgit 1.2.3-1.el7 ================================================ FILE: package/libgpiod/Config.in ================================================ config BR2_PACKAGE_LIBGPIOD bool "libgpiod" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8 help This is a C library that abstracts the GPIO character device operations on linux. https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ if BR2_PACKAGE_LIBGPIOD config BR2_PACKAGE_LIBGPIOD_TOOLS bool "install tools" help Include a set of command-line tools for managing GPIOs. endif comment "libgpiod needs kernel headers >= 4.8" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8 ================================================ FILE: package/libgpiod/libgpiod.hash ================================================ # From https://www.kernel.org/pub/software/libs/libgpiod/sha256sums.asc sha256 841be9d788f00bab08ef22c4be5c39866f0e46cb100a3ae49ed816ac9c5dddc7 libgpiod-1.6.3.tar.xz # Hash for license file sha256 ce64d5f7b49ea6d80fdb6d4cdee6839d1a94274f7493dc797c3b55b65ec8e9ed COPYING ================================================ FILE: package/libgpiod/libgpiod.mk ================================================ ################################################################################ # # libgpiod # ################################################################################ # Be careful when bumping versions. # Dependency on kernel header versions may change. LIBGPIOD_VERSION = 1.6.3 LIBGPIOD_SOURCE = libgpiod-$(LIBGPIOD_VERSION).tar.xz LIBGPIOD_SITE = https://www.kernel.org/pub/software/libs/libgpiod LIBGPIOD_LICENSE = LGPL-2.1+ LIBGPIOD_LICENSE_FILES = COPYING LIBGPIOD_INSTALL_STAGING = YES LIBGPIOD_DEPENDENCIES = host-pkgconf host-autoconf-archive # We're patching configure.ac LIBGPIOD_AUTORECONF = YES LIBGPIOD_AUTORECONF_OPTS = --include=$(HOST_DIR)/share/autoconf-archive LIBGPIOD_CONF_OPTS = --disable-tests --disable-examples ifeq ($(BR2_PACKAGE_LIBGPIOD_TOOLS),y) LIBGPIOD_CONF_OPTS += --enable-tools else LIBGPIOD_CONF_OPTS += --disable-tools endif ifeq ($(BR2_INSTALL_LIBSTDCPP),y) LIBGPIOD_CONF_OPTS += --enable-bindings-cxx else LIBGPIOD_CONF_OPTS += --disable-bindings-cxx endif ifeq ($(BR2_PACKAGE_PYTHON3),y) LIBGPIOD_CONF_OPTS += --enable-bindings-python LIBGPIOD_DEPENDENCIES += python3 LIBGPIOD_CONF_ENV += \ PYTHON=$(HOST_DIR)/bin/python3 \ PYTHON_CPPFLAGS="`$(STAGING_DIR)/usr/bin/python3-config --includes`" \ PYTHON_LIBS="`$(STAGING_DIR)/usr/bin/python3-config --ldflags`" else LIBGPIOD_CONF_OPTS += --disable-bindings-python endif $(eval $(autotools-package)) ================================================ FILE: package/libgsasl/Config.in ================================================ config BR2_PACKAGE_LIBGSASL bool "libgsasl" depends on BR2_USE_WCHAR help Simple Authentication and Security Layer framework Library. GNU SASL is an implementation of the Simple Authentication and Security Layer framework and a few common SASL mechanisms. SASL is used by network servers (e.g., IMAP, SMTP) to request authentication from clients, and in clients to authenticate against servers. http://www.gnu.org/software/gsasl comment "libgsasl needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/libgsasl/libgsasl.hash ================================================ # From https://lists.gnu.org/archive/html/help-gsasl/2021-01/msg00007.html sha1 a16ff428bbf28fcfa681c7edd2cd2bb087bcc4e7 libgsasl-1.10.0.tar.gz sha224 20b37757fccb6a0f8b4c6fcb28f51a3b4b8a4b1fdb4736da07707a0b libgsasl-1.10.0.tar.gz # Locally calculated after checking pgp signature sha256 f1b553384dedbd87478449775546a358d6f5140c15cccc8fb574136fdc77329f libgsasl-1.10.0.tar.gz # Hash for license files: sha256 26e99818ca6ce79d8b2c461fabc72dc6e03483e6b0fd9692dcb07ab1b09bbac7 README sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/libgsasl/libgsasl.mk ================================================ ################################################################################ # # libgsasl # ################################################################################ LIBGSASL_VERSION = 1.10.0 LIBGSASL_SITE = $(BR2_GNU_MIRROR)/gsasl LIBGSASL_LICENSE = LGPL-2.1+ (library), GPL-3.0+ (programs) LIBGSASL_LICENSE_FILES = README COPYING.LIB COPYING LIBGSASL_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) LIBGSASL_CONF_OPTS = --with-libgcrypt-prefix=$(STAGING_DIR)/usr LIBGSASL_DEPENDENCIES += libgcrypt else LIBGSASL_CONF_OPTS = --without-libgcrypt endif ifeq ($(BR2_PACKAGE_LIBIDN),y) LIBGSASL_CONF_OPTS += --with-libidn-prefix=$(STAGING_DIR)/usr LIBGSASL_DEPENDENCIES += libidn else LIBGSASL_CONF_OPTS += --without-stringprep endif $(eval $(autotools-package)) ================================================ FILE: package/libgsm/0001-misc-fixes-from-archlinux.patch ================================================ From e8f43832d401ad1e071e6860b2bf4a1e796d4356 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Fri, 28 Jul 2017 08:18:22 -0400 Subject: [PATCH] Misc fixes from Archlinux Patch from: https://git.archlinux.org/svntogit/packages.git/plain/gsm/trunk/gsm.patch Signed-off-by: "Yann E. MORIN" Signed-off-by: Adam Duskett Refresh for 1.0.17 --- Makefile | 84 ++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/Makefile b/Makefile index d5c0c90..ef61bd5 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ WAV49 = -DWAV49 # CCFLAGS = -c -O CC = gcc -ansi -pedantic -CCFLAGS = -c -O2 -DNeedFunctionPrototypes=1 -Wall -Wno-comment +CCFLAGS = -c -O2 -fPIC -DNeedFunctionPrototypes=1 -Wall -Wno-comment LD = $(CC) @@ -96,11 +96,11 @@ TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/man/man1 # Other tools SHELL = /bin/sh -LN = ln +LN = ln -s -f BASENAME = basename AR = ar ARFLAGS = cr -RMFLAGS = +RMFLAGS = -f FIND = find COMPRESS = compress COMPRESSFLAGS = @@ -139,7 +139,7 @@ LFLAGS = $(LDFLAGS) $(LDINC) # Targets -LIBGSM = $(LIB)/libgsm.a +LIBGSMSO = $(LIB)/libgsm.so TOAST = $(BIN)/toast UNTOAST = $(BIN)/untoast @@ -257,7 +257,7 @@ STUFF = ChangeLog \ # Install targets GSM_INSTALL_TARGETS = \ - $(GSM_INSTALL_LIB)/libgsm.a \ + $(GSM_INSTALL_LIB)/libgsm.so \ $(GSM_INSTALL_INC)/gsm.h \ $(GSM_INSTALL_MAN)/gsm.3 \ $(GSM_INSTALL_MAN)/gsm_explode.3 \ @@ -279,7 +279,7 @@ TOAST_INSTALL_TARGETS = \ # Target rules -all: $(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST) +all: $(LIBGSMSO) $(TOAST) $(TCAT) $(UNTOAST) @-echo $(ROOT): Done. tst: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result @@ -299,24 +299,23 @@ install: toastinstall gsminstall # The basic API: libgsm -$(LIBGSM): $(LIB) $(GSM_OBJECTS) - -rm $(RMFLAGS) $(LIBGSM) - $(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS) - $(RANLIB) $(LIBGSM) - +$(LIBGSMSO): $(LIB) $(GSM_OBJECTS) + $(LD) -shared -Wl,-soname,libgsm.so.1 -o $@.1.0.13 $(GSM_OBJECTS) + $(LN) libgsm.so.1.0.13 $(LIBGSMSO).1 + $(LN) libgsm.so.1.0.13 $(LIBGSMSO) # Toast, Untoast and Tcat -- the compress-like frontends to gsm. -$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM) - $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB) +$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSMSO) + $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSMSO) $(LDLIB) $(UNTOAST): $(BIN) $(TOAST) -rm $(RMFLAGS) $(UNTOAST) - $(LN) $(TOAST) $(UNTOAST) + $(LN) toast $(UNTOAST) $(TCAT): $(BIN) $(TOAST) -rm $(RMFLAGS) $(TCAT) - $(LN) $(TOAST) $(TCAT) + $(LN) toast $(TCAT) # The local bin and lib directories @@ -351,53 +350,54 @@ toastuninstall: fi $(TOAST_INSTALL_BIN)/toast: $(TOAST) - -rm $@ + -rm $(RMFLAGS) $@ cp $(TOAST) $@ chmod 755 $@ $(TOAST_INSTALL_BIN)/untoast: $(TOAST_INSTALL_BIN)/toast - -rm $@ - ln $? $@ + -rm $(RMFLAGS) $@ + $(LN) toast $@ $(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTALL_BIN)/toast - -rm $@ - ln $? $@ + -rm $(RMFLAGS) $@ + $(LN) toast $@ $(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1 - -rm $@ + -rm $(RMFLAGS) $@ cp $? $@ chmod 444 $@ $(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3 - -rm $@ + -rm $(RMFLAGS) $@ cp $? $@ chmod 444 $@ $(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3 - -rm $@ + -rm $(RMFLAGS) $@ cp $? $@ chmod 444 $@ $(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3 - -rm $@ + -rm $(RMFLAGS) $@ cp $? $@ chmod 444 $@ $(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3 - -rm $@ + -rm $(RMFLAGS) $@ cp $? $@ chmod 444 $@ $(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h - -rm $@ - cp $? $@ - chmod 444 $@ - -$(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM) - -rm $@ + -rm $(RMFLAGS) $@ cp $? $@ chmod 444 $@ +$(GSM_INSTALL_LIB)/libgsm.so: $(LIBGSMSO) + -rm $(RMFLAGS) $@ $@.1 $@.1.0.13 + cp $?.1.0.13 $@.1.0.13 + chmod 755 $@.1.0.13 + $(LN) libgsm.so.1.0.13 $@ + $(LN) libgsm.so.1.0.13 $@.1 # Distribution @@ -425,7 +425,7 @@ semi-clean: -print | xargs rm $(RMFLAGS) clean: semi-clean - -rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add \ + -rm $(RMFLAGS) $(LIBGSMSO)* $(ADDTST)/add \ $(TOAST) $(TCAT) $(UNTOAST) \ $(ROOT)/gsm-1.0.tar.Z @@ -473,22 +473,22 @@ $(ADDTST)/add: $(ADDTST)/add_test.o $(TST)/test-result: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/run ( cd $(TST); ./run ) -$(TST)/lin2txt: $(TST)/lin2txt.o $(LIBGSM) +$(TST)/lin2txt: $(TST)/lin2txt.o $(LIBGSMSO) $(LD) $(LFLAGS) -o $(TST)/lin2txt \ - $(TST)/lin2txt.o $(LIBGSM) $(LDLIB) + $(TST)/lin2txt.o $(LIBGSMSO) $(LDLIB) -$(TST)/lin2cod: $(TST)/lin2cod.o $(LIBGSM) +$(TST)/lin2cod: $(TST)/lin2cod.o $(LIBGSMSO) $(LD) $(LFLAGS) -o $(TST)/lin2cod \ - $(TST)/lin2cod.o $(LIBGSM) $(LDLIB) + $(TST)/lin2cod.o $(LIBGSMSO) $(LDLIB) -$(TST)/gsm2cod: $(TST)/gsm2cod.o $(LIBGSM) +$(TST)/gsm2cod: $(TST)/gsm2cod.o $(LIBGSMSO) $(LD) $(LFLAGS) -o $(TST)/gsm2cod \ - $(TST)/gsm2cod.o $(LIBGSM) $(LDLIB) + $(TST)/gsm2cod.o $(LIBGSMSO) $(LDLIB) -$(TST)/cod2txt: $(TST)/cod2txt.o $(LIBGSM) +$(TST)/cod2txt: $(TST)/cod2txt.o $(LIBGSMSO) $(LD) $(LFLAGS) -o $(TST)/cod2txt \ - $(TST)/cod2txt.o $(LIBGSM) $(LDLIB) + $(TST)/cod2txt.o $(LIBGSMSO) $(LDLIB) -$(TST)/cod2lin: $(TST)/cod2lin.o $(LIBGSM) +$(TST)/cod2lin: $(TST)/cod2lin.o $(LIBGSMSO) $(LD) $(LFLAGS) -o $(TST)/cod2lin \ - $(TST)/cod2lin.o $(LIBGSM) $(LDLIB) + $(TST)/cod2lin.o $(LIBGSMSO) $(LDLIB) -- 2.13.3 ================================================ FILE: package/libgsm/Config.in ================================================ config BR2_PACKAGE_LIBGSM bool "libgsm" depends on !BR2_STATIC_LIBS help Shared libraries for GSM 06.10 lossy speech compression. http://www.quut.com/gsm comment "libgsm needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libgsm/libgsm.hash ================================================ # Locally computed sha256 4903652f68a8c04d0041f0d19b1eb713ddcd2aa011c5e595b3b8bca2755270f6 gsm-1.0.19.tar.gz sha256 81c68a3374937ed9b5e4929c709e81a2c4b35b5d1f450ecf8c473e2daea46ff6 COPYRIGHT ================================================ FILE: package/libgsm/libgsm.mk ================================================ ################################################################################ # # libgsm # ################################################################################ LIBGSM_VERSION = 1.0.19 LIBGSM_SOURCE = gsm-$(LIBGSM_VERSION).tar.gz LIBGSM_SITE = http://www.quut.com/gsm LIBGSM_LICENSE = gsm LIBGSM_LICENSE_FILES = COPYRIGHT LIBGSM_INSTALL_STAGING = YES define LIBGSM_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC=$(TARGET_CC) -C $(@D) endef # Install targets are not safe for parallel jobs. However, since there's # just only a bunch of files to install, just do it manually. Note that, # even though the package version is '1.0.16', the solib is generated as # '1.0.13' and its SONAME is just '1'. # # For staging, we install all the .so symlinks, and the header. define LIBGSM_INSTALL_STAGING_CMDS $(INSTALL) -D -m 0644 $(@D)/inc/gsm.h $(STAGING_DIR)/usr/include/gsm.h $(INSTALL) -D -m 0644 $(@D)/lib/libgsm.so.1.0.13 $(STAGING_DIR)/usr/lib/libgsm.so.1.0.13 ln -sf libgsm.so.1.0.13 $(STAGING_DIR)/usr/lib/libgsm.so.1 ln -sf libgsm.so.1.0.13 $(STAGING_DIR)/usr/lib/libgsm.so endef # Install targets are not safe for parallel jobs. However, since there's # just only a bunch of files to install, just do it manually. Note that, # even though the package version is '1.0.16', the solib is versioned as # '1.0.13' and its SONAME is just versioned with '1'. # # For target, we just need the library to be installed as its SONAME, and # the programs. define LIBGSM_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0644 $(@D)/lib/libgsm.so.1.0.13 $(TARGET_DIR)/usr/lib/libgsm.so.1 $(INSTALL) -D -m 0755 $(@D)/bin/toast $(TARGET_DIR)/usr/bin/toast $(INSTALL) -D -m 0755 $(@D)/bin/tcat $(TARGET_DIR)/usr/bin/tcat $(INSTALL) -D -m 0755 $(@D)/bin/untoast $(TARGET_DIR)/usr/bin/untoast endef $(eval $(generic-package)) ================================================ FILE: package/libgta/Config.in ================================================ config BR2_PACKAGE_LIBGTA bool "libgta" select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_ZLIB select BR2_PACKAGE_XZ help Libgta is a portable library that implements the Generic Tagged Array (GTA) file format. https://marlam.de/gta ================================================ FILE: package/libgta/libgta.hash ================================================ # Locally calculated sha256 d445667e145f755f0bc34ac89b63a6bfdce1eea943f87ee7a3f23dc0dcede8b1 libgta-1.2.1.tar.xz sha256 36b6d3fa47916943fd5fec313c584784946047ec1337a78b440e5992cb595f89 COPYING ================================================ FILE: package/libgta/libgta.mk ================================================ ################################################################################ # # libgta # ################################################################################ LIBGTA_VERSION = 1.2.1 LIBGTA_SITE = https://marlam.de/gta/releases LIBGTA_SOURCE = libgta-$(LIBGTA_VERSION).tar.xz LIBGTA_INSTALL_STAGING = YES LIBGTA_DEPENDENCIES = host-pkgconf bzip2 xz zlib LIBGTA_LICENSE = LGPL-2.1+ LIBGTA_LICENSE_FILES = COPYING LIBGTA_CONF_OPTS += -DGTA_BUILD_DOCUMENTATION=OFF ifeq ($(BR2_STATIC_LIBS),) LIBGTA_CONF_OPTS += -DGTA_BUILD_SHARED_LIB=ON else LIBGTA_CONF_OPTS += -DGTA_BUILD_SHARED_LIB=OFF endif ifeq ($(BR2_SHARED_LIBS),) LIBGTA_CONF_OPTS += -DGTA_BUILD_STATIC_LIB=ON else LIBGTA_CONF_OPTS += -DGTA_BUILD_STATIC_LIB=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/libgtk2/0001-reduce-dependencies.patch ================================================ Hack the configure.in file to add a "none" gdktarget which removes dependencies on graphic backends such as X.org or DirectFB. Gtk does not fully build in this mode, but it builds sufficiently to build the host tools that are needed to build the target Gtk. Changes: Ported to 2.24.18 Signed-off-by: Thomas Petazzoni Signed-off-by: Spenser Gilliland --- Index: libgtk2-2.24.18/configure.ac =================================================================== --- libgtk2-2.24.18.orig/configure.ac 2013-05-13 07:02:44.000000000 -0500 +++ libgtk2-2.24.18/configure.ac 2013-05-27 02:12:09.947030335 -0500 @@ -258,12 +258,12 @@ gdktarget=x11 fi -AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target], +AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/win32/quartz/directfb/none]] select non-default GDK target], gdktarget=$with_gdktarget) AC_SUBST(gdktarget) case $gdktarget in - x11|win32|quartz|directfb) ;; + x11|win32|quartz|directfb|none) ;; *) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz, directfb or win32.]);; esac @@ -372,11 +373,15 @@ ## annoying to construct PKG_CHECK_MODULES(BASE_DEPENDENCIES, [glib-2.0 >= glib_required_version dnl - atk >= atk_required_version dnl - pango >= pango_required_version dnl - cairo >= cairo_required_version dnl gdk-pixbuf-2.0 >= gdk_pixbuf_required_version]) +if test "x$gdktarget" != "xnone"; then + PKG_CHECK_MODULES(BASE_DEPENDENCIES, + [atk >= atk_required_version dnl + pango >= pango_required_version dnl + cairo >= cairo_required_version]) +fi + ## In addition to checking that cairo is present, we also need to ## check that the correct cairo backend is there. E.g. if the GDK ## target is win32 we need the cairo-win32 backend and so on. @@ -387,8 +392,11 @@ if test "x$cairo_backend" = "xx11"; then cairo_backend=xlib fi -PKG_CHECK_MODULES(CAIRO_BACKEND, - [cairo-$cairo_backend >= cairo_required_version]) + +if test "x$gdktarget" != "xnone"; then + PKG_CHECK_MODULES(CAIRO_BACKEND, + [cairo-$cairo_backend >= cairo_required_version]) +fi PKG_CHECK_MODULES(GMODULE, [gmodule-2.0]) @@ -1279,6 +1287,7 @@ AM_CONDITIONAL(USE_DIRECTFB, false) fi +if test "x$gdktarget" != "xnone"; then # Check for Pango flags @@ -1324,6 +1333,8 @@ GDK_PACKAGES="$PANGO_PACKAGES gio-2.0 gdk-pixbuf-2.0 cairo-$cairo_backend" fi +fi # gdktarget != none + GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PACKAGES` $MATH_LIB" GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PACKAGES` $GDK_EXTRA_CFLAGS" # @@ -1341,6 +1352,7 @@ AC_SUBST(GDK_DEP_LIBS) AC_SUBST(GDK_DEP_CFLAGS) +if test "x$gdktarget" != "xnone"; then ######################################## # Check for Accessibility Toolkit flags @@ -1372,6 +1384,10 @@ fi GTK_PACKAGES="atk cairo gdk-pixbuf-2.0 gio-2.0" +else # gdktarget != none +GTK_PACKAGES="gdk-pixbuf-2.0" +fi # gdktarget != none + if test "x$gdktarget" = "xx11"; then GTK_PACKAGES="$GTK_PACKAGES pangoft2" fi @@ -1533,6 +1549,8 @@ gtk_save_cppflags="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS $GDK_DEP_CFLAGS" +if test "x$gdktarget" != "xnone"; then + AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([ *** Can't find cairo-pdf.h. You must build Cairo with the pdf *** backend enabled.])) @@ -1547,6 +1565,8 @@ *** svg backend enabled.])) fi +fi # gdktarget != none + CPPFLAGS="$gtk_save_cppflags" ================================================ FILE: package/libgtk2/Config.in ================================================ config BR2_PACKAGE_LIBGTK2 bool "libgtk2" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 depends on BR2_INSTALL_LIBSTDCPP # pango depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # pango -> harfbuzz select BR2_PACKAGE_ATK select BR2_PACKAGE_CAIRO select BR2_PACKAGE_CAIRO_PS select BR2_PACKAGE_CAIRO_PDF select BR2_PACKAGE_CAIRO_SVG select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_PANGO select BR2_PACKAGE_GDK_PIXBUF select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXRENDER help The GTK+ version 2 graphical user interface library http://www.gtk.org/ if BR2_PACKAGE_LIBGTK2 config BR2_PACKAGE_LIBGTK2_DEMO bool "Install libgtk2 demo program" help The GTK+ source base contains a gtk-demo program. This option allows to install this program to the target. endif comment "libgtk2 needs a toolchain w/ wchar, threads, C++, gcc >= 4.8" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_PACKAGE_XORG7 depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \ !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libgtk2/libgtk2.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.33.sha256sum sha256 ac2ac757f5942d318a311a54b0c80b5ef295f299c2a73c632f6bfb1ff49cc6da gtk+-2.24.33.tar.xz # Hash for license file: sha256 d245807f90032872d1438d741ed21e2490e1175dc8aa3afa5ddb6c8e529b58e5 COPYING ================================================ FILE: package/libgtk2/libgtk2.mk ================================================ ################################################################################ # # libgtk2 # ################################################################################ LIBGTK2_VERSION_MAJOR = 2.24 LIBGTK2_VERSION = $(LIBGTK2_VERSION_MAJOR).33 LIBGTK2_SOURCE = gtk+-$(LIBGTK2_VERSION).tar.xz LIBGTK2_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK2_VERSION_MAJOR) LIBGTK2_INSTALL_STAGING = YES LIBGTK2_LICENSE = LGPL-2.0+ LIBGTK2_LICENSE_FILES = COPYING LIBGTK2_CPE_ID_VENDOR = gnome LIBGTK2_CPE_ID_PRODUCT = gtk # For 0001-reduce-dependencies.patch LIBGTK2_AUTORECONF = YES LIBGTK2_CONF_ENV = \ ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_DIR)/bin/gtk-update-icon-cache \ ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_DIR)/bin/gdk-pixbuf-csource \ DB2HTML=false LIBGTK2_CONF_OPTS = --disable-glibtest --enable-explicit-deps=no LIBGTK2_DEPENDENCIES = host-pkgconf host-libgtk2 libglib2 cairo pango atk \ gdk-pixbuf $(TARGET_NLS_DEPENDENCIES) LIBGTK2_MAKE_OPTS = LIBS=$(TARGET_NLS_LIBS) # Xorg dependencies LIBGTK2_CONF_OPTS += \ --with-x \ --x-includes=$(STAGING_DIR)/usr/include/X11 \ --x-libraries=$(STAGING_DIR)/usr/lib \ --with-gdktarget=x11 LIBGTK2_DEPENDENCIES += \ fontconfig xlib_libX11 xlib_libXext xlib_libXrender ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBGTK2_CONF_OPTS += --enable-introspection LIBGTK2_DEPENDENCIES += gobject-introspection else LIBGTK2_CONF_OPTS += --disable-introspection endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) LIBGTK2_CONF_OPTS += --enable-xinerama LIBGTK2_DEPENDENCIES += xlib_libXinerama else LIBGTK2_CONF_OPTS += --disable-xinerama endif ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y) LIBGTK2_CONF_OPTS += --with-xinput=yes LIBGTK2_DEPENDENCIES += xlib_libXi else LIBGTK2_CONF_OPTS += --with-xinput=no endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) LIBGTK2_DEPENDENCIES += xlib_libXrandr endif ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) LIBGTK2_DEPENDENCIES += xlib_libXcursor endif ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y) LIBGTK2_DEPENDENCIES += xlib_libXfixes endif ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y) LIBGTK2_DEPENDENCIES += xlib_libXcomposite endif ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y) LIBGTK2_DEPENDENCIES += xlib_libXdamage endif ifeq ($(BR2_PACKAGE_LIBPNG),y) LIBGTK2_DEPENDENCIES += libpng else LIBGTK2_CONF_OPTS += --without-libpng endif ifeq ($(BR2_PACKAGE_JPEG),y) LIBGTK2_DEPENDENCIES += jpeg else LIBGTK2_CONF_OPTS += --without-libjpeg endif ifeq ($(BR2_PACKAGE_TIFF),y) LIBGTK2_DEPENDENCIES += tiff else 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 endif ifeq ($(BR2_PACKAGE_LIBGTK2_DEMO),) define LIBGTK2_POST_INSTALL_TWEAKS rm -rf $(TARGET_DIR)/usr/share/gtk-2.0/demo $(TARGET_DIR)/usr/bin/gtk-demo endef LIBGTK2_POST_INSTALL_TARGET_HOOKS += LIBGTK2_POST_INSTALL_TWEAKS endif # We do not build a full version of libgtk2 for the host, because that # requires compiling Cairo, Pango, ATK and X.org for the # host. Therefore, we patch it to remove dependencies, and we hack the # build to only build gdk-pixbuf-from-source and # gtk-update-icon-cache, which are the host tools needed to build Gtk # for the target. HOST_LIBGTK2_DEPENDENCIES = host-libglib2 host-libpng host-gdk-pixbuf HOST_LIBGTK2_CONF_OPTS = \ --disable-static \ --disable-glibtest \ --without-libtiff \ --without-libjpeg \ --with-gdktarget=none \ --disable-cups define HOST_LIBGTK2_BUILD_CMDS $(HOST_MAKE_ENV) make -C $(@D)/gtk gtk-update-icon-cache endef define HOST_LIBGTK2_INSTALL_CMDS cp $(@D)/gtk/gtk-update-icon-cache $(HOST_DIR)/bin endef $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libgtk3/0001-no-gtk-doc.patch ================================================ Same patch as for systemd in commit http://git.buildroot.net/buildroot/commit/?id=7144f2f04b70553 Fix deactivation of gtk-doc The tarball contains the Makefile for building documentation with gtk-doc, Unfortunately the AM_CONDITIONAL variable is not the correct one, which results in an error when running autoreconf. This patch fixes this issue. Signed-off-by: Eric Le Bihan Signed-off-by: Hadrien Boutteville --- a/gtk-doc.make +++ b/gtk-doc.make @@ -300,7 +300,7 @@ # # Require gtk-doc when making dist # -if HAVE_GTK_DOC +if ENABLE_GTK_DOC dist-check-gtkdoc: docs else dist-check-gtkdoc: ================================================ FILE: package/libgtk3/0002-fix-introspection-check.patch ================================================ Fix HAVE_INTROSPECTION does not appear in AM_CONDITIONAL During autoreconf GOBJECT_INTROSPECTION_CHECK could not be resolved because we don't have introspection which provides its custom m4 macro. Reconfigure fails with: gdk/Makefile.am:196: error: HAVE_INTROSPECTION does not appear in AM_CONDITIONAL gtk/Makefile.am:1347: error: HAVE_INTROSPECTION does not appear in AM_CONDITIONAL We avoid to add a copy of introspection.m4 in the m4 directory of libgtk3 by adding a check, as performed in Systemd. Signed-off-by: Hadrien Boutteville --- a/configure.ac +++ b/configure.ac @@ -1650,7 +1650,10 @@ # GObject introspection ################################################## -GOBJECT_INTROSPECTION_CHECK(introspection_required_version) +m4_ifdef([GOBJECT_INTROSPECTION_CHECK], + [GOBJECT_INTROSPECTION_CHECK(introspection_required_version)], + [AM_CONDITIONAL([HAVE_INTROSPECTION], [false]) + enable_introspection=no]) ################################################## # colord module ================================================ FILE: package/libgtk3/0003-disable-atk-bridge.patch ================================================ Remove atk-bridge support. atk-bridge doesn't seem useful for now in Buildroot and requires to add two new packages just for it: at-spi2-core and at-spi2-atk. Signed-off-by: Hadrien Boutteville --- a/configure.ac +++ b/configure.ac @@ -1364,11 +1364,7 @@ # Check for Accessibility Toolkit flags ######################################## -if test x$enable_x11_backend = xyes; then - ATK_PACKAGES="atk atk-bridge-2.0" -else - ATK_PACKAGES="atk" -fi +ATK_PACKAGES="atk" PKG_CHECK_MODULES(ATK, $ATK_PACKAGES) --- a/gtk/a11y/gtkaccessibility.c +++ b/gtk/a11y/gtkaccessibility.c @@ -37,10 +37,6 @@ #include #include -#ifdef GDK_WINDOWING_X11 -#include -#endif - static gboolean gail_focus_watcher (GSignalInvocationHint *ihint, guint n_param_values, const GValue *param_values, @@ -988,9 +984,5 @@ _gtk_accessibility_override_atk_util (); do_window_event_initialization (); -#ifdef GDK_WINDOWING_X11 - atk_bridge_adaptor_init (NULL, NULL); -#endif - atk_misc_instance = g_object_new (GTK_TYPE_MISC_IMPL, NULL); } ================================================ FILE: package/libgtk3/0004-Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch ================================================ 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 ================================================ FILE: package/libgtk3/Config.in ================================================ comment "libgtk3 needs a toolchain w/ wchar, threads, C++, gcc >= 4.8" depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \ !BR2_TOOLCHAIN_HAS_THREADS comment "libgtk3 needs an OpenGL or an OpenGL-EGL/wayland backend" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_PACKAGE_HAS_LIBEGL_WAYLAND && \ !BR2_PACKAGE_HAS_LIBGL config BR2_PACKAGE_LIBGTK3 bool "libgtk3" depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS # host-libgtk3 -> host-librsvg depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 depends on BR2_INSTALL_LIBSTDCPP # pango depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # pango -> harfbuzz depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND || \ BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_ATK select BR2_PACKAGE_CAIRO 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 # At least one backend is required select BR2_PACKAGE_LIBGTK3_BROADWAY if \ !(BR2_PACKAGE_LIBGTK3_X11 || BR2_PACKAGE_LIBGTK3_WAYLAND) help The GTK+ version 3 graphical user interface library https://www.gtk.org/ if BR2_PACKAGE_LIBGTK3 config BR2_PACKAGE_LIBGTK3_BROADWAY 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. For example, to run gtk3-demo on a target which IP address is 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 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_HAS_LIBEGL_WAYLAND 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 select BR2_PACKAGE_HICOLOR_ICON_THEME help The GTK+ source base contains a demo program. This option allows to install this program to the target. config BR2_PACKAGE_LIBGTK3_TESTS bool "Install libgtk3 tests" help The GTK+ source base contains tests. This option allows to install them to the target. endif ================================================ FILE: package/libgtk3/libgtk3.hash ================================================ # From https://download.gnome.org/sources/gtk+/3.24/gtk+-3.24.30.sha256sum sha256 ba75bfff320ad1f4cfbee92ba813ec336322cc3c660d406aad014b07087a3ba9 gtk+-3.24.30.tar.xz # Hash for license file: sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c COPYING ================================================ FILE: package/libgtk3/libgtk3.mk ================================================ ################################################################################ # # libgtk3 # ################################################################################ LIBGTK3_VERSION_MAJOR = 3.24 LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).30 LIBGTK3_SOURCE = gtk+-$(LIBGTK3_VERSION).tar.xz LIBGTK3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK3_VERSION_MAJOR) LIBGTK3_LICENSE = LGPL-2.0+ LIBGTK3_LICENSE_FILES = COPYING LIBGTK3_CPE_ID_VENDOR = gnome LIBGTK3_CPE_ID_PRODUCT = gtk LIBGTK3_INSTALL_STAGING = YES LIBGTK3_AUTORECONF = YES LIBGTK3_CONF_ENV = \ ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_DIR)/bin/gtk-update-icon-cache \ ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_DIR)/bin/gdk-pixbuf-csource \ PKG_CONFIG_FOR_BUILD=$(HOST_DIR)/bin/pkgconf LIBGTK3_CONF_OPTS = \ --disable-glibtest \ --enable-explicit-deps=no HOST_LIBGTK3_CONF_OPTS = --disable-introspection # Override pkg-config pkgdatadir variable, it needs the prefix LIBGTK3_MAKE_OPTS = \ WAYLAND_PROTOCOLS_DATADIR=$(STAGING_DIR)/usr/share/wayland-protocols \ LIBS=$(TARGET_NLS_LIBS) LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 atk libglib2 cairo pango \ gdk-pixbuf libepoxy $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) LIBGTK3_DEPENDENCIES += fontconfig xlib_libX11 xlib_libXext xlib_libXrender xlib_libXi LIBGTK3_CONF_OPTS += \ --enable-x11-backend \ --x-includes=$(STAGING_DIR)/usr/include/X11 \ --x-libraries=$(STAGING_DIR)/usr/lib else LIBGTK3_CONF_OPTS += --disable-x11-backend endif ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBGTK3_CONF_OPTS += --enable-introspection LIBGTK3_DEPENDENCIES += gobject-introspection else LIBGTK3_CONF_OPTS += --disable-introspection endif ifeq ($(BR2_PACKAGE_LIBGTK3_WAYLAND),y) LIBGTK3_DEPENDENCIES += wayland wayland-protocols libxkbcommon LIBGTK3_CONF_OPTS += --enable-wayland-backend else LIBGTK3_CONF_OPTS += --disable-wayland-backend endif ifeq ($(BR2_PACKAGE_LIBGTK3_BROADWAY),y) LIBGTK3_CONF_OPTS += --enable-broadway-backend else LIBGTK3_CONF_OPTS += --disable-broadway-backend endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) LIBGTK3_CONF_OPTS += --enable-xinerama LIBGTK3_DEPENDENCIES += xlib_libXinerama else LIBGTK3_CONF_OPTS += --disable-xinerama endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) LIBGTK3_CONF_OPTS += --enable-xrandr LIBGTK3_DEPENDENCIES += xlib_libXrandr else LIBGTK3_CONF_OPTS += --disable-xrandr endif ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) LIBGTK3_DEPENDENCIES += xlib_libXcursor endif ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y) LIBGTK3_CONF_OPTS += --enable-xfixes LIBGTK3_DEPENDENCIES += xlib_libXfixes else LIBGTK3_CONF_OPTS += --disable-xfixes endif ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y) LIBGTK3_CONF_OPTS += --enable-xcomposite LIBGTK3_DEPENDENCIES += xlib_libXcomposite else LIBGTK3_CONF_OPTS += --disable-xcomposite endif ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y) LIBGTK3_CONF_OPTS += --enable-xdamage LIBGTK3_DEPENDENCIES += xlib_libXdamage else LIBGTK3_CONF_OPTS += --disable-xdamage endif ifeq ($(BR2_PACKAGE_XLIB_LIBXKBFILE),y) LIBGTK3_CONF_OPTS += --enable-xkb LIBGTK3_DEPENDENCIES += xlib_libxkbfile else LIBGTK3_CONF_OPTS += --disable-xkb endif ifeq ($(BR2_PACKAGE_CUPS),y) LIBGTK3_CONF_OPTS += --enable-cups LIBGTK3_CONF_ENV += ac_cv_path_CUPS_CONFIG=$(STAGING_DIR)/usr/bin/cups-config LIBGTK3_DEPENDENCIES += cups else LIBGTK3_CONF_OPTS += --disable-cups endif ifeq ($(BR2_PACKAGE_LIBGTK3_DEMO),y) LIBGTK3_DEPENDENCIES += hicolor-icon-theme shared-mime-info else define LIBGTK3_REMOVE_DEMOS $(RM) $(TARGET_DIR)/usr/bin/gtk3-demo \ $(TARGET_DIR)/usr/bin/gtk3-demo-application endef LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_REMOVE_DEMOS endif ifeq ($(BR2_PACKAGE_LIBGTK3_TESTS),y) LIBGTK3_CONF_OPTS += --enable-installed-tests else LIBGTK3_CONF_OPTS += --disable-installed-tests endif define LIBGTK3_COMPILE_GLIB_SCHEMAS $(HOST_DIR)/bin/glib-compile-schemas \ $(TARGET_DIR)/usr/share/glib-2.0/schemas endef LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_COMPILE_GLIB_SCHEMAS # gtk+ >= 3.10 can build a native version of gtk-update-icon-cache if # --enable-gtk2-dependency=no is set when invoking './configure'. # # Unfortunately, if the target toolchain is based on uClibc, the macro # AM_GLIB_GNU_GETTEXT will detect the libintl built for the target and # will add '-lintl' to the default list of libraries for the linker (used # 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. # # As a workaround, we build gtk-update-icon-cache on our own, set # --enable-gtk2-dependency=yes and force './configure' to use our version. HOST_LIBGTK3_DEPENDENCIES = \ host-libglib2 \ host-libpng \ host-gdk-pixbuf \ host-pkgconf \ host-librsvg HOST_LIBGTK3_CFLAGS = \ `$(HOST_MAKE_ENV) $(PKG_CONFIG_HOST_BINARY) --cflags --libs gdk-pixbuf-2.0` \ `$(HOST_MAKE_ENV) $(PKG_CONFIG_HOST_BINARY) --cflags --libs gio-2.0` define HOST_LIBGTK3_CONFIGURE_CMDS echo "#define GETTEXT_PACKAGE \"gtk30\"" >> $(@D)/gtk/config.h echo "#define HAVE_UNISTD_H 1" >> $(@D)/gtk/config.h echo "#define HAVE_FTW_H 1" >> $(@D)/gtk/config.h endef define HOST_LIBGTK3_BUILD_CMDS $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ $(@D)/gtk/updateiconcache.c \ $(HOST_LIBGTK3_CFLAGS) \ -o $(@D)/gtk/gtk-update-icon-cache $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ $(@D)/gtk/encodesymbolic.c \ $(HOST_LIBGTK3_CFLAGS) \ -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)/bin/gtk-update-icon-cache $(INSTALL) -D -m 0755 $(@D)/gtk/gtk-encode-symbolic-svg \ $(HOST_DIR)/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)/bin/gtk-update-icon-cache {} \; endef LIBGTK3_TARGET_FINALIZE_HOOKS += LIBGTK3_UPDATE_ICON_CACHE $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libgudev/Config.in ================================================ config BR2_PACKAGE_LIBGUDEV bool "libgudev" depends on BR2_PACKAGE_HAS_UDEV depends on BR2_USE_WCHAR # gettext depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBGLIB2 help This library provides GObject bindings for libudev. It was originally part of udev-extras, then udev, then systemd. It's now a project on its own. Required for building some programs that use udev, when using systemd. https://wiki.gnome.org/Projects/libgudev comment "libgudev needs udev /dev handling and a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_PACKAGE_HAS_UDEV ================================================ FILE: package/libgudev/libgudev.hash ================================================ # From http://ftp.gnome.org/pub/GNOME/sources/libgudev/236/libgudev-236.sha256sum sha256 e50369d06d594bae615eb7aeb787de304ebaad07a26d1043cef8e9c7ab7c9524 libgudev-236.tar.xz # Hash for license file: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/libgudev/libgudev.mk ================================================ ################################################################################ # # libgudev # ################################################################################ LIBGUDEV_VERSION = 236 LIBGUDEV_SOURCE = libgudev-$(LIBGUDEV_VERSION).tar.xz LIBGUDEV_SITE = http://ftp.gnome.org/pub/GNOME/sources/libgudev/$(LIBGUDEV_VERSION) LIBGUDEV_INSTALL_STAGING = YES LIBGUDEV_DEPENDENCIES = host-pkgconf udev libglib2 LIBGUDEV_LICENSE = LGPL-2.1+ LIBGUDEV_LICENSE_FILES = COPYING LIBGUDEV_CONF_OPTS = -Dtests=disabled -Dvapi=disabled ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBGUDEV_CONF_OPTS += -Dintrospection=enabled LIBGUDEV_DEPENDENCIES += gobject-introspection else LIBGUDEV_CONF_OPTS += -Dintrospection=disabled endif $(eval $(meson-package)) ================================================ FILE: package/libhdhomerun/0001-dont-strip.patch ================================================ Disable strip in Makefile. Patch downloaded from Gentoo: https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/libhdhomerun/files/dont-strip.patch Signed-off-by: Bernd Kuhls diff -Nur libhdhomerun/Makefile libhdhomerun.fix/Makefile --- libhdhomerun/Makefile 2012-08-30 15:46:27.000000000 -0500 +++ libhdhomerun.fix/Makefile 2013-03-24 14:47:08.740937164 -0500 @@ -42,7 +42,6 @@ hdhomerun_config$(BINEXT) : hdhomerun_config.c $(LIBSRCS) $(CC) $(CFLAGS) $+ $(LDFLAGS) -o $@ - $(STRIP) $@ libhdhomerun$(LIBEXT) : $(LIBSRCS) $(CC) $(CFLAGS) -fPIC -DDLL_EXPORT $(SHARED) $+ $(LDFLAGS) -o $@ ================================================ FILE: package/libhdhomerun/Config.in ================================================ config BR2_PACKAGE_LIBHDHOMERUN bool "libhdhomerun" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS help HDHomeRun is a network-attached digital television tuner box, produced by the company SiliconDust USA, Inc. http://www.silicondust.com comment "libhdhomerun needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libhdhomerun/libhdhomerun.hash ================================================ # Locally computed sha256 deaf463bbcc3eefa72f97199efb6213f7b0e2c8e91f1b3d2cbf52056a8715d15 libhdhomerun_20210624.tgz sha256 9b872a8a070b8ad329c4bd380fb1bf0000f564c75023ec8e1e6803f15364b9e9 LICENSE ================================================ FILE: package/libhdhomerun/libhdhomerun.mk ================================================ ################################################################################ # # libhdhomerun # ################################################################################ LIBHDHOMERUN_VERSION = 20210624 LIBHDHOMERUN_SOURCE = libhdhomerun_$(LIBHDHOMERUN_VERSION).tgz LIBHDHOMERUN_SITE = http://download.silicondust.com/hdhomerun LIBHDHOMERUN_LICENSE = LGPL-2.1+ LIBHDHOMERUN_LICENSE_FILES = LICENSE LIBHDHOMERUN_INSTALL_STAGING = YES define LIBHDHOMERUN_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) \ CROSS_COMPILE="$(TARGET_CROSS)" -C $(@D) endef define LIBHDHOMERUN_INSTALL_STAGING_CMDS $(INSTALL) -D -m 0755 $(@D)/libhdhomerun.so \ $(STAGING_DIR)/usr/lib/libhdhomerun.so mkdir -p $(STAGING_DIR)/usr/include/libhdhomerun/ $(INSTALL) -m 0644 $(@D)/*.h \ $(STAGING_DIR)/usr/include/libhdhomerun/ endef define LIBHDHOMERUN_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/libhdhomerun.so \ $(TARGET_DIR)/usr/lib/libhdhomerun.so endef $(eval $(generic-package)) ================================================ FILE: package/libhid/0001-dont-fiddle-with-debug-flags.patch ================================================ MD_CONF_DEBUGGING changes CFLAGS and CXXFLAGS with a horrible magic so disable it to prevent compilation errors. downloaded from http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/libhid/files/libhid-0.2.16-gentoo.patch?revision=1.1&view=markup Signed-off-by: Bernd Kuhls diff -uNr libhid-0.2.16.org/configure.ac libhid-0.2.16/configure.ac --- libhid-0.2.16.org/configure.ac 2007-04-01 22:32:10.000000000 +0200 +++ libhid-0.2.16/configure.ac 2014-10-19 21:31:00.550091947 +0200 @@ -78,7 +78,6 @@ AC_C_BIGENDIAN AC_C_STRINGIZE -MD_CONF_DEBUGGING MD_CONF_COMPILER AM_CONDITIONAL(OS_LINUX, test "$MD_OS" = "linux") AM_CONDITIONAL(OS_BSD, test "$MD_OS" = "bsd") ================================================ FILE: package/libhid/0002-no-newline-in-ldflags.patch ================================================ Fix improper usage of macro that introduces a wrong newline The MD_CONF_FLAGS() macro was used with a final newline that introduces an invalid newline in the middle of the macro expansion when defining LDFLAGS. Signed-off-by: Thomas Petazzoni Index: libhid-0.2.16/configure.ac =================================================================== --- libhid-0.2.16.orig/configure.ac 2007-04-01 22:32:10.000000000 +0200 +++ libhid-0.2.16/configure.ac 2012-12-12 20:24:03.000000000 +0100 @@ -102,8 +102,7 @@ [], [$OS_CFLAGS $LIBUSB_CFLAGS], [], - [$OS_LDFLAGS $LIBUSB_LIBS] -) + [$OS_LDFLAGS $LIBUSB_LIBS]) MD_CONF_DB2MAN ================================================ FILE: package/libhid/0003-uclinux.patch ================================================ Good old 'uclinux is also linux' Signed-off-by: Gustavo Zacarias diff -Nura libhid-0.2.16.orig/configure.ac libhid-0.2.16/configure.ac --- libhid-0.2.16.orig/configure.ac 2014-06-22 09:35:50.277261742 -0300 +++ libhid-0.2.16/configure.ac 2014-06-22 09:36:10.688951947 -0300 @@ -80,6 +80,7 @@ MD_CONF_DEBUGGING MD_CONF_COMPILER +AM_CONDITIONAL(OS_LINUX, test "$MD_OS" = "uclinux") AM_CONDITIONAL(OS_LINUX, test "$MD_OS" = "linux") AM_CONDITIONAL(OS_BSD, test "$MD_OS" = "bsd") AM_CONDITIONAL(OS_SOLARIS, test "$MD_OS" = "solaris") diff -Nura libhid-0.2.16.orig/m4/md_check_os.m4 libhid-0.2.16/m4/md_check_os.m4 --- libhid-0.2.16.orig/m4/md_check_os.m4 2014-06-22 09:35:50.275261675 -0300 +++ libhid-0.2.16/m4/md_check_os.m4 2014-06-22 09:46:17.651475891 -0300 @@ -3,7 +3,7 @@ AC_CANONICAL_HOST AC_MSG_CHECKING(for target OS) case $host in - *-linux*) + *-linux*|*-uclinux*) AC_DEFINE(OS_LINUX, [], [define to 1 if building for Linux]) AC_SUBST(OS_LINUX) MD_OS=linux ================================================ FILE: package/libhid/Config.in ================================================ config BR2_PACKAGE_LIBHID bool "libhid" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT help Userspace library for accessing USB HID devices https://directory.fsf.org/wiki/Libhid comment "libhid needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/libhid/libhid.hash ================================================ # locally computed sha256 f6809ab3b9c907cbb05ceba9ee6ca23a705f85fd71588518e14b3a7d9f2550e5 libhid-0.2.16.tar.gz sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/libhid/libhid.mk ================================================ ################################################################################ # # libhid # ################################################################################ LIBHID_VERSION = 0.2.16 LIBHID_SITE = http://sources.buildroot.net LIBHID_DEPENDENCIES = libusb-compat libusb LIBHID_INSTALL_STAGING = YES LIBHID_AUTORECONF = YES LIBHID_LICENSE = GPL-2.0 LIBHID_LICENSE_FILES = COPYING # configure runs libusb-config for cflags/ldflags. Ensure it picks up # the target version LIBHID_CONF_ENV = PATH=$(STAGING_DIR)/usr/bin:$(BR_PATH) LIBHID_CONF_OPTS = \ --disable-swig \ --disable-werror \ --without-doxygen \ --disable-package-config $(eval $(autotools-package)) ================================================ FILE: package/libhtp/Config.in ================================================ config BR2_PACKAGE_LIBHTP bool "libhtp" select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_ZLIB help LibHTP is a security-aware parser for the HTTP protocol and the related bits and pieces. https://github.com/OISF/libhtp ================================================ FILE: package/libhtp/libhtp.hash ================================================ # Locally computed: sha256 d5956b49314fc6a058864130fbcf040a12584ee1e38f3b6ea52aedfa99d4c14a libhtp-0.5.39.tar.gz sha256 87c93904e5434c81622ea690c2b90097b9f162aaa92a96542649a157dbf98d15 LICENSE ================================================ FILE: package/libhtp/libhtp.mk ================================================ ################################################################################ # # libhtp # ################################################################################ LIBHTP_VERSION = 0.5.39 LIBHTP_SITE = $(call github,OISF,libhtp,$(LIBHTP_VERSION)) LIBHTP_LICENSE = BSD-3-Clause LIBHTP_LICENSE_FILES = LICENSE LIBHTP_CPE_ID_VENDOR = oisf LIBHTP_DEPENDENCIES = \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) \ zlib LIBHTP_INSTALL_STAGING = YES # From git LIBHTP_AUTORECONF = YES # Let our gcc/wrapper handle SSP LIBHTP_CONF_ENV = NO_STACK_PROTECTOR=true $(eval $(autotools-package)) ================================================ FILE: package/libhttpparser/Config.in ================================================ config BR2_PACKAGE_LIBHTTPPARSER bool "libhttpparser" depends on !BR2_STATIC_LIBS help This is a parser for HTTP messages written in C. It parses both requests and responses. The parser is designed to be used in performance HTTP applications. It does not make any syscalls nor allocations, it does not buffer data, it can be interrupted at anytime. Depending on your architecture, it only requires about 40 bytes of data per message stream (in a web server that is per connection). https://github.com/nodejs/http-parser comment "libhttpparser needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libhttpparser/libhttpparser.hash ================================================ # Locally computed: sha256 467b9e30fd0979ee301065e70f637d525c28193449e1b13fbcb1b1fab3ad224f libhttpparser-2.9.4.tar.gz sha256 79e6ba8b687cb54786207342b9b6fcee0ac10218453ed9009b84d949b2233cc0 LICENSE-MIT ================================================ FILE: package/libhttpparser/libhttpparser.mk ================================================ ################################################################################ # # libhttpparser # ################################################################################ LIBHTTPPARSER_VERSION = 2.9.4 LIBHTTPPARSER_SITE = $(call github,nodejs,http-parser,v$(LIBHTTPPARSER_VERSION)) LIBHTTPPARSER_INSTALL_STAGING = YES LIBHTTPPARSER_LICENSE = MIT LIBHTTPPARSER_LICENSE_FILES = LICENSE-MIT define LIBHTTPPARSER_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) library package endef define LIBHTTPPARSER_INSTALL_STAGING_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) PREFIX=$(STAGING_DIR)/usr install $(INSTALL) -D -m 0644 $(@D)/libhttp_parser.a $(STAGING_DIR)/usr/lib/libhttp_parser.a endef define LIBHTTPPARSER_INSTALL_TARGET_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) PREFIX=$(TARGET_DIR)/usr install endef define HOST_LIBHTTPPARSER_BUILD_CMDS $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) library package endef define HOST_LIBHTTPPARSER_INSTALL_CMDS $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) PREFIX=$(HOST_DIR) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/libhttpserver/Config.in ================================================ config BR2_PACKAGE_LIBHTTPSERVER bool "libhttpserver" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++11 PR59526 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBMICROHTTPD help libhttpserver is a C++ library for building high performance RESTfuls web servers. libhttpserver is built upon libmicrohttpd to provide a simple API for developers to create HTTP services in C++. https://github.com/etr/libhttpserver comment "libhttpserver needs a toolchain w/ C++, threads, gcc >= 5" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 ================================================ FILE: package/libhttpserver/libhttpserver.hash ================================================ # Locally computed: sha256 1dfe548ac2add77fcb6c05bd00222c55650ffd02b209f4e3f133a6e3eb29c89d libhttpserver-0.18.2.tar.gz sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING.LESSER ================================================ FILE: package/libhttpserver/libhttpserver.mk ================================================ ################################################################################ # # libhttpserver # ################################################################################ LIBHTTPSERVER_VERSION = 0.18.2 LIBHTTPSERVER_SITE = $(call github,etr,libhttpserver,$(LIBHTTPSERVER_VERSION)) LIBHTTPSERVER_LICENSE = LGPL-2.1+ LIBHTTPSERVER_LICENSE_FILES = COPYING.LESSER LIBHTTPSERVER_INSTALL_STAGING = YES LIBHTTPSERVER_CONF_OPTS = \ --disable-examples \ --enable-same-directory-build LIBHTTPSERVER_AUTORECONF = YES LIBHTTPSERVER_DEPENDENCIES = libmicrohttpd $(eval $(autotools-package)) ================================================ FILE: package/libiberty/libiberty.hash ================================================ # From ftp://gcc.gnu.org/pub/binutils/releases/sha512.sum sha512 d326408f12a03d9a61a9de56584c2af12f81c2e50d2d7e835d51565df8314df01575724afa1e43bd0db45cfc9916b41519b67dfce03232aa4978704492a6994a binutils-2.32.tar.xz # Locally computed, same as binutils.hash sha256 56bdea73b6145ef6ac5259b3da390b981d840c24cb03b8e1cbc678de7ecfa18d COPYING.LIB ================================================ FILE: package/libiberty/libiberty.mk ================================================ ################################################################################ # # libiberty # ################################################################################ LIBIBERTY_VERSION = 2.32 LIBIBERTY_SOURCE = binutils-$(LIBIBERTY_VERSION).tar.xz LIBIBERTY_SITE = $(BR2_GNU_MIRROR)/binutils HOST_LIBIBERTY_DL_SUBDIR = binutils # We're only building libiberty here, not the full binutils suite LIBIBERTY_LICENSE = LGPL-2.1+ LIBIBERTY_LICENSE_FILES = COPYING.LIB LIBIBERTY_SUBDIR = libiberty # We explicitly disable multilib, as we do in binutils. # By default, libiberty installs nothing, so we must force it. HOST_LIBIBERTY_CONF_OPTS = \ --disable-multilib \ --enable-install-libiberty # Some packages (e.g. host-gdb) will pick this library and build shared # objects with it. But libiberty does not honour the --enable-shared and # --disable-static flags; it only ever builds a static library no matter # what. So we must force -fPIC in build flags. HOST_LIBIBERTY_CONF_ENV = \ CFLAGS="$(HOST_CFLAGS) -fPIC" \ LDFLAGS="$(HOST_LDFLAGS) -fPIC" $(eval $(host-autotools-package)) ================================================ FILE: package/libical/0001-no-tests.patch ================================================ Disable tests to avoid MMU dependency due to fork. Fixes CMakeFiles/regression.dir/regression.c.o: In function `_test_file_locks': /home/br/br4/output/build/libical-v1.0.1/src/test/regression.c:(.text+0x96d8): undefined reference to `_fork' Signed-off-by: Bernd Kuhls diff -uNr libical-1.0.1.org/src/CMakeLists.txt libical-1.0.1/src/CMakeLists.txt --- libical-1.0.1.org/src/CMakeLists.txt 2014-10-09 17:07:05.000000000 +0200 +++ libical-1.0.1/src/CMakeLists.txt 2015-04-25 17:41:22.657345548 +0200 @@ -1,7 +1,6 @@ add_subdirectory(libical) add_subdirectory(libicalss) add_subdirectory(libicalvcal) -add_subdirectory(test) if(MSVC) install(FILES ================================================ FILE: package/libical/0002-icaltypes-c-icalreqstattype_from_string-copy-the-reqstattype.patch ================================================ From 6b9438d746cec6e4e632d78c5244f4be6314d1c9 Mon Sep 17 00:00:00 2001 From: Allen Winter Date: Sun, 28 May 2017 12:51:10 -0400 Subject: [PATCH] icaltypes.c - icalreqstattype_from_string(), copy the reqstattype's debug string into its own memory in the ring buffer. Issue#253 Signed-off-by: Fabrice Fontaine [Retrieved (and backported) from: https://github.com/libical/libical/commit/6b9438d746cec6e4e632d78c5244f4be6314d1c9] --- src/libical/icaltypes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libical/icaltypes.c b/src/libical/icaltypes.c index 70c50d29..85c33545 100644 --- a/src/libical/icaltypes.c +++ b/src/libical/icaltypes.c @@ -140,7 +140,7 @@ struct icalreqstattype icalreqstattype_from_string(const char *str) p2 = strchr(p1+1,';'); if (p2 != 0 && *p2 != 0){ - stat.debug = p2+1; + stat.debug = icalmemory_tmp_copy(p2+1); } return stat; ================================================ FILE: package/libical/Config.in ================================================ config BR2_PACKAGE_LIBICAL bool "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. http://libical.github.io/libical comment "libical needs a toolchain w/ C++, dynamic library, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ BR2_STATIC_LIBS ================================================ FILE: package/libical/libical.hash ================================================ # Locally computed: sha256 089ce3c42d97fbd7a5d4b3c70adbdd82115dd306349c1f5c46a8fb3f8c949592 libical-1.0.1.tar.gz sha256 c393726f82e6f21df5262110215f6a4382b32046d10afdcfcc49338aa7a191f2 LICENSE ================================================ FILE: package/libical/libical.mk ================================================ ################################################################################ # # libical # ################################################################################ LIBICAL_VERSION = 1.0.1 LIBICAL_SITE = https://github.com/libical/libical/releases/download/v$(LIBICAL_VERSION) LIBICAL_INSTALL_STAGING = YES LIBICAL_LICENSE = MPL-1.0 or LGPL-2.1 LIBICAL_LICENSE_FILES = LICENSE LIBICAL_CPE_ID_VENDOR = libical_project # 0002-icaltypes-c-icalreqstattype_from_string-copy-the-reqstattype.patch LIBICAL_IGNORE_CVES += CVE-2016-9584 # 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)) ================================================ FILE: package/libiconv/Config.in ================================================ config BR2_PACKAGE_LIBICONV bool "libiconv" depends on !BR2_ENABLE_LOCALE help unicode conversion library http://ftp.gnu.org/pub/gnu/libiconv if BR2_PACKAGE_LIBICONV config BR2_PACKAGE_LIBICONV_EXTRA_ENCODINGS bool "extra encodings" help Provide support for a few extra encodings: European languages CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125} Semitic languages CP864 Japanese EUC-JISX0213, Shift_JISX0213, ISO-2022-JP-3 Chinese BIG5-2003 (experimental) Turkmen TDS565 Platform specifics ATARIST, RISCOS-LATIN1 endif ================================================ FILE: package/libiconv/libiconv.hash ================================================ # Locally calculated after checking pgp signature sha256 ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178 libiconv-1.15.tar.gz # Hash for license files: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING sha256 56bdea73b6145ef6ac5259b3da390b981d840c24cb03b8e1cbc678de7ecfa18d COPYING.LIB ================================================ FILE: package/libiconv/libiconv.mk ================================================ ################################################################################ # # libiconv # ################################################################################ LIBICONV_VERSION = 1.15 LIBICONV_SITE = $(BR2_GNU_MIRROR)/libiconv LIBICONV_INSTALL_STAGING = YES LIBICONV_LICENSE = GPL-3.0+ (iconv program), LGPL-2.0+ (library) LIBICONV_LICENSE_FILES = COPYING COPYING.LIB ifeq ($(BR2_PACKAGE_LIBICONV_EXTRA_ENCODINGS),y) LIBICONV_CONF_OPTS = --enable-extra-encodings endif # Don't build the preloadable library, as we don't need it (it's only # for LD_PRELOAD to replace glibc's iconv, but we never build libiconv # when glibc is used). And it causes problems for static only builds. define LIBICONV_DISABLE_PRELOAD $(SED) '/preload/d' $(@D)/Makefile.in endef LIBICONV_PRE_CONFIGURE_HOOKS += LIBICONV_DISABLE_PRELOAD $(eval $(autotools-package)) # Configurations where the toolchain supports locales and the libiconv # package is enabled are incorrect, because the toolchain already # provides libiconv functionality, and having both confuses packages. ifeq ($(BR2_PACKAGE_LIBICONV)$(BR2_ENABLE_LOCALE),yy) $(error Libiconv should never be enabled when the toolchain supports locales. Report this failure to Buildroot developers) endif ================================================ FILE: package/libid3tag/Config.in ================================================ config BR2_PACKAGE_LIBID3TAG bool "libid3tag" select BR2_PACKAGE_ZLIB help ID3 tag reading library from the MAD project. http://www.underbit.com/products/mad/ ================================================ FILE: package/libid3tag/id3tag.pc ================================================ prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: id3tag Description: ID3 tag reading library Version: 0.15.1b Requires: Libs: -L${libdir} -lid3tag Libs.private: -lz Cflags: -I${includedir} ================================================ FILE: package/libid3tag/libid3tag.hash ================================================ # From http://snapshot.debian.org/archive/debian/20190310T213528Z/pool/main/libi/libid3tag/libid3tag_0.15.1b-14.dsc sha256 63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151 libid3tag_0.15.1b.orig.tar.gz sha256 f174cafe02bef25a9ad8cb7f9ce80119147297a7036f50878e85ac0d7ae09c62 libid3tag_0.15.1b-14.debian.tar.xz # Hash for license files: sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING sha256 7f12ad28dc075763e91b91bfa60fad04062380011ddad8f6bac21dd7b1f44367 COPYRIGHT ================================================ FILE: package/libid3tag/libid3tag.mk ================================================ ################################################################################ # # libid3tag # ################################################################################ LIBID3TAG_VERSION = 0.15.1b LIBID3TAG_PATCH = libid3tag_$(LIBID3TAG_VERSION)-14.debian.tar.xz LIBID3TAG_SOURCE = libid3tag_$(LIBID3TAG_VERSION).orig.tar.gz LIBID3TAG_SITE = \ http://snapshot.debian.org/archive/debian/20190310T213528Z/pool/main/libi/libid3tag LIBID3TAG_LICENSE = GPL-2.0+ LIBID3TAG_LICENSE_FILES = COPYING COPYRIGHT LIBID3TAG_INSTALL_STAGING = YES LIBID3TAG_DEPENDENCIES = host-gperf zlib # debian/patches/10_utf16.dpatch LIBID3TAG_IGNORE_CVES += CVE-2004-2779 CVE-2017-11551 # debian/patches/11_unknown_encoding.dpatch LIBID3TAG_IGNORE_CVES += CVE-2017-11550 # Force autoreconf to be able to use a more recent libtool script, that # is able to properly behave in the face of a missing C++ compiler. LIBID3TAG_AUTORECONF = YES define LIBID3TAG_INSTALL_STAGING_PC $(INSTALL) -D package/libid3tag/id3tag.pc \ $(STAGING_DIR)/usr/lib/pkgconfig/id3tag.pc endef LIBID3TAG_POST_INSTALL_STAGING_HOOKS += LIBID3TAG_INSTALL_STAGING_PC $(eval $(autotools-package)) ================================================ FILE: package/libidn/Config.in ================================================ config BR2_PACKAGE_LIBIDN bool "libidn" help Libidn's purpose is to encode and decode internationalized domain names. http://www.gnu.org/software/libidn/ if BR2_PACKAGE_LIBIDN config BR2_PACKAGE_LIBIDN_BINARY bool "idn binary" help Install idn command line tool endif ================================================ FILE: package/libidn/libidn.hash ================================================ # Locally computed: sha256 de00b840f757cd3bb14dd9a20d5936473235ddcba06d4bc2da804654b8bbf0f6 libidn-1.38.tar.gz # Hash for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYINGv2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYINGv3 sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING.LESSERv3 ================================================ FILE: package/libidn/libidn.mk ================================================ ################################################################################ # # libidn # ################################################################################ LIBIDN_VERSION = 1.38 LIBIDN_SITE = $(BR2_GNU_MIRROR)/libidn LIBIDN_INSTALL_STAGING = YES LIBIDN_CONF_ENV = EMACS="no" MAKEINFO=true LIBIDN_CONF_OPTS = --disable-java --enable-csharp=no LIBIDN_DEPENDENCIES = host-pkgconf $(TARGET_NLS_DEPENDENCIES) $(if $(BR2_PACKAGE_LIBICONV),libiconv) LIBIDN_LICENSE = GPL-2.0+, GPL-3.0+, LGPL-3.0+ LIBIDN_LICENSE_FILES = COPYINGv2 COPYINGv3 COPYING.LESSERv3 LIBIDN_CPE_ID_VENDOR = gnu define LIBIDN_REMOVE_BINARY rm -f $(TARGET_DIR)/usr/bin/idn endef ifneq ($(BR2_PACKAGE_LIBIDN_BINARY),y) LIBIDN_POST_INSTALL_TARGET_HOOKS += LIBIDN_REMOVE_BINARY endif define LIBIDN_REMOVE_EMACS_STUFF rm -rf $(TARGET_DIR)/usr/share/emacs endef LIBIDN_POST_INSTALL_TARGET_HOOKS += LIBIDN_REMOVE_EMACS_STUFF $(eval $(autotools-package)) ================================================ FILE: package/libidn2/Config.in ================================================ config BR2_PACKAGE_LIBIDN2 bool "libidn2" help Libidn2 is an implementation of the IDNA2008 + TR46 specifications (RFC 5890, RFC 5891, RFC 5892, RFC 5893, TR 46). http://www.gnu.org/software/libidn/ if BR2_PACKAGE_LIBIDN2 config BR2_PACKAGE_LIBIDN2_BINARY bool "idn2 binary" help Install idn2 command line tool endif ================================================ FILE: package/libidn2/libidn2.hash ================================================ # Calculated locally after checking signature sha256 76940cd4e778e8093579a9d195b25fff5e936e9dc6242068528b437a76764f91 libidn2-2.3.2.tar.gz # Hash for license files: sha256 73483f797a83373fca1b968c11785b98c4fc4803cdc7d3210811ca8b075d6d76 COPYING sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYINGv2 sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING.LESSERv3 sha256 01d621eef165cf4d3d3dbb737aa0699178d94c6f18cf87e9dde6db3ca7790f46 COPYING.unicode ================================================ FILE: package/libidn2/libidn2.mk ================================================ ################################################################################ # # libidn2 # ################################################################################ LIBIDN2_VERSION = 2.3.2 LIBIDN2_SITE = $(BR2_GNU_MIRROR)/libidn LIBIDN2_LICENSE = GPL-2.0+ or LGPL-3.0+ (library) LIBIDN2_LICENSE_FILES = COPYING COPYINGv2 COPYING.LESSERv3 COPYING.unicode LIBIDN2_CPE_ID_VENDOR = gnu LIBIDN2_DEPENDENCIES = \ host-pkgconf \ $(TARGET_NLS_DEPENDENCIES) \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) LIBIDN2_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_LIBUNISTRING),y) LIBIDN2_DEPENDENCIES += libunistring endif ifeq ($(BR2_PACKAGE_LIBIDN2_BINARY),) define LIBIDN2_REMOVE_BINARY rm -f $(TARGET_DIR)/usr/bin/idn2 endef LIBIDN2_POST_INSTALL_TARGET_HOOKS += LIBIDN2_REMOVE_BINARY else LIBIDN2_LICENSE += , GPL-3.0+ (program) endif $(eval $(autotools-package)) ================================================ FILE: package/libiec61850/Config.in ================================================ config BR2_PACKAGE_LIBIEC61850 bool "libiec61850" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS help IEC 61850 is an international standard for communication systems in Substation Automation Systems (SAS) and management of Decentralized Energy Resources (DER). It is seen as one of the communication standards of the emerging Smart Grid. The project libIEC61850 provides a server and client library for the IEC 61850/MMS, IEC 61850/GOOSE and IEC 61850-9-2/Sampled Values communication protocols written in C. It is available under the GPLv3 license. http://libiec61850.com comment "libiec61850 needs a toolchain w/ C++, threads, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libiec61850/libiec61850.hash ================================================ # Locally computed sha256 7b832c195ae9f42faa1ccfe1b82b9ff187103155ce45aaca08881be98459d164 libiec61850-1.5.0.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/libiec61850/libiec61850.mk ================================================ ################################################################################ # # libiec61850 # ################################################################################ LIBIEC61850_VERSION = 1.5.0 LIBIEC61850_SITE = $(call github,mz-automation,libiec61850,v$(LIBIEC61850_VERSION)) LIBIEC61850_INSTALL_STAGING = YES LIBIEC61850_LICENSE = GPL-3.0+ LIBIEC61850_LICENSE_FILES = COPYING LIBIEC61850_CPE_ID_VENDOR = mz-automation LIBIEC61850_CONF_OPTS = -DBUILD_PYTHON_BINDINGS=OFF $(eval $(cmake-package)) ================================================ FILE: package/libiio/0001-C-public-fields-with-getters-setters-cannot-be-marked-readonly.patch ================================================ From 85bf9cd32138539252ed01c355cf766612cf47c9 Mon Sep 17 00:00:00 2001 From: Paul Cercueil Date: Thu, 2 Sep 2021 11:04:21 +0100 Subject: [PATCH] C#: public fields with getters/setters cannot be marked readonly MSVC would fail with the following error: error CS0106: The modifier 'readonly' is not valid for this item Reported-by: Raluca Chis Signed-off-by: Paul Cercueil [Retrieved from: https://github.com/analogdevicesinc/libiio/commit/85bf9cd32138539252ed01c355cf766612cf47c9] Signed-off-by: Fabrice Fontaine --- bindings/csharp/Device.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bindings/csharp/Device.cs b/bindings/csharp/Device.cs index 96214243f..6c8c8f4f3 100644 --- a/bindings/csharp/Device.cs +++ b/bindings/csharp/Device.cs @@ -208,7 +208,7 @@ public override void write(string str) public readonly string name; /// The label of this device. - public readonly string label { get; private set; } + public string label { get; private set; } /// A list of all the attributes that this device has. public readonly List attrs; ================================================ FILE: package/libiio/Config.in ================================================ config BR2_PACKAGE_LIBIIO bool "libiio" 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. http://wiki.analog.com/resources/tools-software/linux-software/libiio if BR2_PACKAGE_LIBIIO config BR2_PACKAGE_LIBIIO_LOCAL_BACKEND bool "Local backend" default y help Enable the local backend of the library. config BR2_PACKAGE_LIBIIO_XML_BACKEND bool "XML backend" default y select BR2_PACKAGE_LIBXML2 help Enable the XML backend of the library. config BR2_PACKAGE_LIBIIO_NETWORK_BACKEND bool "Network backend" default y select BR2_PACKAGE_LIBIIO_XML_BACKEND help Enable the network backend of the library. config BR2_PACKAGE_LIBIIO_USB_BACKEND bool "USB backend" default y depends on BR2_TOOLCHAIN_HAS_THREADS # from libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBIIO_XML_BACKEND select BR2_PACKAGE_LIBUSB help Enable the USB backend of the library. comment "The USB backend needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_PACKAGE_LIBIIO_SERIAL_BACKEND bool "Serial backend" default y select BR2_PACKAGE_LIBIIO_XML_BACKEND select BR2_PACKAGE_LIBSERIALPORT help Enable the serial backend of the library. config BR2_PACKAGE_LIBIIO_IIOD bool "IIO Daemon" default y depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBIIO_LOCAL_BACKEND help Install the IIO Daemon. config BR2_PACKAGE_LIBIIO_IIOD_USBD bool "USB support in the IIO Daemon (FunctionFS)" depends on BR2_PACKAGE_LIBIIO_IIOD depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 # usb_functionfs_descs_head_v2 select BR2_PACKAGE_LIBAIO help Add support for USB through FunctionFS with IIOD. comment "USB support in the IIO Daemon requires headers >= 3.18" depends on BR2_PACKAGE_LIBIIO_IIOD depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 comment "IIO Daemon needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_LIBIIO_TESTS bool "Install test programs" depends on BR2_TOOLCHAIN_HAS_THREADS help Install the test programs (iio_info, iio_genxml, iio_readdev). comment "IIO test programs need a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_LIBIIO_BINDINGS_CSHARP bool "Install C# bindings" depends on BR2_PACKAGE_MONO help Install the C# bindings. config BR2_PACKAGE_LIBIIO_BINDINGS_PYTHON bool "Install Python bindings" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 help Install the Python bindings. endif ================================================ FILE: package/libiio/S99iiod ================================================ #!/bin/sh # Server-side demuxing by default IIOD_OPTS=-D [ -r /etc/default/iiod ] && . /etc/default/iiod case "$1" in start) echo "Starting IIO Server Daemon" start-stop-daemon -S -b -q -m -p /var/run/iiod.pid -x /usr/sbin/iiod -- $IIOD_OPTS exit $? ;; stop) echo "Stopping IIO Server Daemon" start-stop-daemon -K -q -p /var/run/iiod.pid 2>/dev/null exit $? ;; restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: package/libiio/libiio.hash ================================================ # Locally calculated sha256 df1577740ea93dca732e7d7c04786600cb083117901dee793f3d38980754af00 libiio-0.23.tar.gz sha256 102900208eef27b766380135906d431dba87edaa7ec6aa72e6ebd3dd67f3a97b COPYING.txt ================================================ FILE: package/libiio/libiio.mk ================================================ ################################################################################ # # libiio # ################################################################################ LIBIIO_VERSION = 0.23 LIBIIO_SITE = $(call github,analogdevicesinc,libiio,v$(LIBIIO_VERSION)) LIBIIO_INSTALL_STAGING = YES LIBIIO_LICENSE = LGPL-2.1+ 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) \ -DINSTALL_UDEV_RULE=$(if $(BR2_PACKAGE_HAS_UDEV),ON,OFF) \ -DWITH_TESTS=$(if $(BR2_PACKAGE_LIBIIO_TESTS),ON,OFF) \ -DWITH_DOC=OFF ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) LIBIIO_CONF_OPTS += -DNO_THREADS=OFF else LIBIIO_CONF_OPTS += -DNO_THREADS=ON endif ifeq ($(BR2_PACKAGE_LIBIIO_XML_BACKEND),y) LIBIIO_DEPENDENCIES += libxml2 LIBIIO_CONF_OPTS += -DWITH_XML_BACKEND=ON else 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) LIBIIO_DEPENDENCIES += host-flex host-bison LIBIIO_CONF_OPTS += -DWITH_IIOD=ON else LIBIIO_CONF_OPTS += -DWITH_IIOD=OFF endif ifeq ($(BR2_PACKAGE_LIBIIO_IIOD_USBD),y) LIBIIO_DEPENDENCIES += libaio LIBIIO_CONF_OPTS += -DWITH_IIOD_USBD=ON else LIBIIO_CONF_OPTS += -DWITH_IIOD_USBD=OFF endif ifeq ($(BR2_PACKAGE_LIBAIO),y) LIBIIO_DEPENDENCIES += libaio LIBIIO_CONF_OPTS += -DWITH_AIO=ON else LIBIIO_CONF_OPTS += -DWITH_AIO=OFF endif # Avahi support in libiio requires avahi-client, which needs avahi-daemon and dbus ifeq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_DBUS),yy) LIBIIO_DEPENDENCIES += avahi LIBIIO_CONF_OPTS += -DHAVE_DNS_SD=ON else LIBIIO_CONF_OPTS += -DHAVE_DNS_SD=OFF endif ifeq ($(BR2_PACKAGE_LIBIIO_BINDINGS_PYTHON),y) ifeq ($(BR2_PACKAGE_PYTHON),y) LIBIIO_DEPENDENCIES += host-python-setuptools python else ifeq ($(BR2_PACKAGE_PYTHON3),y) LIBIIO_DEPENDENCIES += host-python3-setuptools python3 endif LIBIIO_CONF_OPTS += -DPYTHON_BINDINGS=ON else LIBIIO_CONF_OPTS += -DPYTHON_BINDINGS=OFF endif ifeq ($(BR2_PACKAGE_LIBIIO_BINDINGS_CSHARP),y) define LIBIIO_INSTALL_CSHARP_BINDINGS_TO_TARGET $(HOST_DIR)/bin/gacutil -root $(TARGET_DIR)/usr/lib -i \ $(TARGET_DIR)/usr/lib/cli/libiio-sharp-$(LIBIIO_VERSION)/libiio-sharp.dll endef define LIBIIO_INSTALL_CSHARP_BINDINGS_TO_STAGING $(HOST_DIR)/bin/gacutil -root $(STAGING_DIR)/usr/lib -i \ $(STAGING_DIR)/usr/lib/cli/libiio-sharp-$(LIBIIO_VERSION)/libiio-sharp.dll endef LIBIIO_POST_INSTALL_TARGET_HOOKS += LIBIIO_INSTALL_CSHARP_BINDINGS_TO_TARGET LIBIIO_POST_INSTALL_STAGING_HOOKS += LIBIIO_INSTALL_CSHARP_BINDINGS_TO_STAGING LIBIIO_DEPENDENCIES += mono LIBIIO_CONF_OPTS += -DCSHARP_BINDINGS=ON else LIBIIO_CONF_OPTS += -DCSHARP_BINDINGS=OFF endif ifeq ($(BR2_PACKAGE_LIBIIO_IIOD),y) define LIBIIO_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/libiio/S99iiod \ $(TARGET_DIR)/etc/init.d/S99iiod endef endif $(eval $(cmake-package)) ================================================ FILE: package/libilbc/Config.in ================================================ config BR2_PACKAGE_LIBILBC bool "libilbc" help iLBC (internet Low Bitrate Codec) is a FREE speech codec suitable for robust voice communication over IP. http://www.webrtc.org/license-rights/ilbc-freeware ================================================ FILE: package/libilbc/libilbc.hash ================================================ # Locally computed sha256 f97d8284776c95b31ed5d5441f13b519b8c7966b77a26aa06c29bb77e02cfe16 libilbc-829b08c7902ceb87a261279fabb36b6d523c6e07-br1.tar.gz sha256 b7f4cbb4a12cd11a3d1aeda9bd17c99f59b054de4b3ee53045531cd2fa74dd2a gips_iLBClicense.pdf ================================================ FILE: package/libilbc/libilbc.mk ================================================ ################################################################################ # # libilbc # ################################################################################ LIBILBC_VERSION = 829b08c7902ceb87a261279fabb36b6d523c6e07 LIBILBC_SITE = https://freeswitch.org/stash/scm/sd/libilbc.git LIBILBC_SITE_METHOD = git LIBILBC_LICENSE = Global IP Sound iLBC Public License v2.0 LIBILBC_LICENSE_FILES = gips_iLBClicense.pdf LIBILBC_AUTORECONF = YES LIBILBC_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libimxvpuapi/Config.in ================================================ 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 ================================================ FILE: package/libimxvpuapi/libimxvpuapi.hash ================================================ # locally computed hash sha256 7151e10a24929935bada1d3d87626f17e411575b3a4ac0d86440999ad0100a55 libimxvpuapi-0.10.3.tar.gz sha256 4bb33cc4cd956b56b779b501f18cae46a9e26f8c8500cca86ed758b8bc5e1788 LICENSE ================================================ FILE: package/libimxvpuapi/libimxvpuapi.mk ================================================ ################################################################################ # # libimxvpuapi # ################################################################################ LIBIMXVPUAPI_VERSION = 0.10.3 LIBIMXVPUAPI_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI_VERSION)) LIBIMXVPUAPI_LICENSE = LGPL-2.1+ LIBIMXVPUAPI_LICENSE_FILES = LICENSE LIBIMXVPUAPI_DEPENDENCIES = host-pkgconf host-python imx-vpu LIBIMXVPUAPI_INSTALL_STAGING = YES LIBIMXVPUAPI_NEEDS_EXTERNAL_WAF = YES $(eval $(waf-package)) ================================================ FILE: package/libinput/Config.in ================================================ config BR2_PACKAGE_LIBINPUT bool "libinput" depends on BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_LIBEVDEV select BR2_PACKAGE_MTDEV help libinput is a library to handle input devices in Wayland compositors and to provide a generic X.Org input driver. It provides device detection, device handling, input device event processing and abstraction so minimize the amount of custom input code compositors need to provide the common set of functionality that users expect. http://freedesktop.org/wiki/Software/libinput/ comment "libinput needs udev /dev management" depends on !BR2_PACKAGE_HAS_UDEV ================================================ FILE: package/libinput/libinput.hash ================================================ # From https://lists.freedesktop.org/archives/wayland-devel/2021-October/042003.html sha256 0fc39f0af3ee1a77c60c34bc45391a4d0879169f7c0f7bbbeb5eef590b98b883 libinput-1.19.2.tar.xz sha512 fc5244dc90ceb710f7b5bb76a3cafc7dd5a8d5fa05c51122412615bfc3a99435d6a1017b79c3ce73561139fc2f5959acaf16cb9500796ea2f3eb6cb95d1a1acb libinput-1.19.2.tar.xz # License files sha256 80de50b2022a840db044c56db804ca3565600a692c0714babface587acc6d1b0 COPYING ================================================ FILE: package/libinput/libinput.mk ================================================ ################################################################################ # # libinput # ################################################################################ LIBINPUT_VERSION = 1.19.2 LIBINPUT_SOURCE = libinput-$(LIBINPUT_VERSION).tar.xz LIBINPUT_SITE = http://www.freedesktop.org/software/libinput 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 = -Dtests=false -Dlibwacom=false -Ddocumentation=false ifeq ($(BR2_PACKAGE_LIBGTK3),y) LIBINPUT_CONF_OPTS += -Ddebug-gui=true LIBINPUT_DEPENDENCIES += libgtk3 ifeq ($(BR2_PACKAGE_WAYLAND),y) LIBINPUT_DEPENDENCIES += wayland endif ifeq ($(BR2_PACKAGE_WAYLAND_PROTOCOLS),y) LIBINPUT_DEPENDENCIES += wayland-protocols endif ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) LIBINPUT_DEPENDENCIES += xlib_libX11 endif else LIBINPUT_CONF_OPTS += -Ddebug-gui=false endif $(eval $(meson-package)) ================================================ FILE: package/libiqrf/0001-cmake-handle-static-library-and-find-required-thread.patch ================================================ From 46660112b76664473cc98b8ae6c863fd27c27d2d Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Fri, 29 Aug 2014 23:40:59 +0200 Subject: [PATCH 1/1] cmake: handle static library and find required thread module Signed-off-by: Samuel Martin --- CMakeLists.txt | 2 ++ src/CMakeLists.txt | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 79f644c..7779a2a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,9 @@ enable_testing() # use local module (for Findlibusb-1.0.cmake) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") +find_package(Threads REQUIRED) find_package(libusb-1.0 REQUIRED) + if (NOT LIBUSB_1_FOUND) message(FATAL_ERROR "libusb-1.0 not installed. (try apt-get install libusb-1.0-0-dev)") endif (NOT LIBUSB_1_FOUND) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 149d198..0597ccd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -18,8 +18,10 @@ set (iqrf_sources include_directories ("${LIBUSB_1_INCLUDE_DIRS}") -add_library(iqrf SHARED ${iqrf_sources} ${iqrf_headers}) +add_library(iqrf ${iqrf_sources} ${iqrf_headers}) + target_link_libraries(iqrf ${LIBUSB_1_LIBRARIES}) +target_link_libraries(iqrf ${CMAKE_THREAD_LIBS_INIT}) set_target_properties(iqrf PROPERTIES VERSION "${iqrf_version_major}.${iqrf_version_minor}" -- 2.1.0 ================================================ FILE: package/libiqrf/0002-use-only-c-language.patch ================================================ Use only the C language libirqf is written completely in C, but by default, CMake assumes that both C and C++ are used, and therefore verifies that a C++ compiler is installed. This may not necessarily be the case for a C-only package in Buildroot. Signed-off-by: Thomas Petazzoni Index: b/src/CMakeLists.txt =================================================================== --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,3 @@ -project(iqrf) - set (iqrf_version_major 0) set (iqrf_version_minor 1) set (iqrf_version_patch 2) Index: b/CMakeLists.txt =================================================================== --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,5 @@ +project(iqrf C) + cmake_minimum_required(VERSION 2.8.1) enable_testing() ================================================ FILE: package/libiqrf/Config.in ================================================ config BR2_PACKAGE_LIBIQRF bool "libiqrf" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help This library implement specific protocol which is used for communicating with iqrf devices (http://iqrf.org) over usb. For usb access is used libusb library. https://github.com/nandra/libiqrf comment "libiqrf needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/libiqrf/libiqrf.hash ================================================ # Locally calculated sha256 8111031dd9dd6093a1927eb32dd7476fe22cfee9190043aa8e4c88003c104b16 libiqrf-0.1.2.tar.gz sha256 11e0700d7c23604d86fa1e7c54c7caa778d79eeb0035be8f80b5a552224ef015 src/iqrf.c ================================================ FILE: package/libiqrf/libiqrf.mk ================================================ ################################################################################ # # libiqrf # ################################################################################ LIBIQRF_VERSION = 0.1.2 LIBIQRF_SITE = $(call github,nandra,libiqrf,v$(LIBIQRF_VERSION)) LIBIQRF_INSTALL_STAGING = YES LIBIQRF_DEPENDENCIES = libusb LIBIQRF_LICENSE = LGPL-2.1+ LIBIQRF_LICENSE_FILES = src/iqrf.c $(eval $(cmake-package)) ================================================ FILE: package/libiscsi/Config.in ================================================ config BR2_PACKAGE_LIBISCSI bool "libiscsi" depends on BR2_TOOLCHAIN_HAS_THREADS help Libiscsi is a client-side library to implement the iSCSI protocol that can be used to access resource of an iSCSI Target. The library is fully async with regards to iscsi commands and scsi tasks, but a sync layer is also provided for ease of use for simpler applications. https://github.com/sahlberg/libiscsi comment "libiscsi needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libiscsi/libiscsi.hash ================================================ # Locally computed: sha256 c7848ac722c8361d5064654bc6e926c2be61ef11dd3875020a63931836d806df libiscsi-1.19.0.tar.gz sha256 88e3eccc48722b2a0eaff456dda94b8e8e123848d01f631969bec8e3c6c6eb85 COPYING sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENCE-GPL-2.txt sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENCE-LGPL-2.1.txt ================================================ FILE: package/libiscsi/libiscsi.mk ================================================ ################################################################################ # # libiscsi # ################################################################################ LIBISCSI_VERSION = 1.19.0 LIBISCSI_SITE = $(call github,sahlberg,libiscsi,$(LIBISCSI_VERSION)) LIBISCSI_LICENSE = GPL-2.0+, LGPL-2.1+ LIBISCSI_LICENSE_FILES = COPYING LICENCE-GPL-2.txt LICENCE-LGPL-2.1.txt LIBISCSI_INSTALL_STAGING = YES LIBISCSI_AUTORECONF = YES LIBISCSI_CONF_OPTS = --disable-examples --disable-werror --disable-manpages \ --disable-test-tool --disable-tests $(eval $(autotools-package)) ================================================ FILE: package/libite/Config.in ================================================ config BR2_PACKAGE_LIBITE bool "libite" help Libite is a lightweight library of frog DNA. It can be used to fill the gaps in any dinosaur project. It holds useful functions and macros developed by both Finit and the OpenBSD project. Most notably the string functions: strlcpy(3), strlcat(3) and the highly useful *BSD sys/queue.h and sys/tree.h API's. Libite is the frog DNA missing in GNU libc. However, -lite does not aim to become another GLIB! One noticeable gap in GLIBC is the missing _SAFE macros in the BSD sys/queue.h API - highly recommended when traversing lists to delete/free nodes. https://github.com/troglobit/libite ================================================ FILE: package/libite/libite.hash ================================================ # Upstream .sha256 from GitHub sha256 5278fa0ca933727c78f4e05082cea58256d9302afac30bad0c3760cf2a18ef8f libite-2.5.1.tar.xz # Locally calculated sha256 20db0601195f708d68ff7907907b3cd3b25808efa8332e064b11f00c839a5d2f LICENSE sha256 c2882adb51555b836f35babc59f618d9ddceadcaa2d1dc80bbd4699614d2cd14 src/chomp.c sha256 bff7fa7b74324f13a24d56ebb8b49bc9c63ea01836a1c8b5a6afcbbabed62918 src/pidfile.c ================================================ FILE: package/libite/libite.mk ================================================ ################################################################################ # # libite # ################################################################################ LIBITE_VERSION = 2.5.1 LIBITE_SOURCE = libite-$(LIBITE_VERSION).tar.xz LIBITE_SITE = https://github.com/troglobit/libite/releases/download/v$(LIBITE_VERSION) LIBITE_LICENSE = MIT, X11, ISC, BSD-2-Clause LIBITE_LICENSE_FILES = LICENSE src/chomp.c src/pidfile.c LIBITE_INSTALL_STAGING = YES LIBITE_CONF_OPTS = --without-symlink $(eval $(autotools-package)) ================================================ FILE: package/libjpeg/libjpeg.hash ================================================ # locally computed hash sha256 99cb50e48a4556bc571dadd27931955ff458aae32f68c4d9c39d624693f69c32 jpegsrc.v9d.tar.gz sha256 3dc4e4a145c907a96bd6a0e40be3f722fecf061951909143cdff5365cba9c78c README ================================================ FILE: package/libjpeg/libjpeg.mk ================================================ ################################################################################ # # libjpeg # ################################################################################ LIBJPEG_VERSION = 9d # 9d was released 2020-01-12, but the tarball was replaced upstream circa # 2021-03, causing hash mismatch. Until there is a new version released, # use our cached copy from s.b.o. #LIBJPEG_SITE = http://www.ijg.org/files LIBJPEG_SITE = http://sources.buildroot.org/libjpeg LIBJPEG_SOURCE = jpegsrc.v$(LIBJPEG_VERSION).tar.gz LIBJPEG_LICENSE = IJG LIBJPEG_LICENSE_FILES = README LIBJPEG_INSTALL_STAGING = YES LIBJPEG_CPE_ID_VENDOR = ijg LIBJPEG_PROVIDES = jpeg define LIBJPEG_REMOVE_USELESS_TOOLS rm -f $(addprefix $(TARGET_DIR)/usr/bin/,cjpeg djpeg jpegtran rdjpgcom wrjpgcom) endef LIBJPEG_POST_INSTALL_TARGET_HOOKS += LIBJPEG_REMOVE_USELESS_TOOLS define LIBJPEG_INSTALL_STAGING_PC $(INSTALL) -D -m 0644 package/libjpeg/libjpeg.pc.in \ $(STAGING_DIR)/usr/lib/pkgconfig/libjpeg.pc version=`sed -e '/^PACKAGE_VERSION/!d;s/PACKAGE_VERSION = \(.*\)/\1/' $(@D)/Makefile` ; \ $(SED) "s/@PACKAGE_VERSION@/$${version}/" $(STAGING_DIR)/usr/lib/pkgconfig/libjpeg.pc endef LIBJPEG_POST_INSTALL_STAGING_HOOKS += LIBJPEG_INSTALL_STAGING_PC $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libjpeg/libjpeg.pc.in ================================================ prefix=/usr exec_prefix=/usr libdir=${exec_prefix}/lib includedir=${prefix}/include Name: libjpeg Description: A JPEG codec that provides the libjpeg API Version: @PACKAGE_VERSION@ Libs: -L${libdir} -ljpeg Cflags: -I${includedir} ================================================ FILE: package/libjson/0001-fix-broken-makefile.patch ================================================ Fix the broken libjson makefile. Signed-off-by: Simon Dawson diff -Nurp a/makefile b/makefile --- a/makefile 2012-05-30 10:15:42.000000000 +0100 +++ b/makefile 2013-03-27 18:45:34.814670534 +0000 @@ -170,7 +170,7 @@ include_path = $(prefix)/$(includedi # Usage check ifdef CXXFLAGS ifdef BUILD_TYPE - $(error CXXFLAGS and BUILD_TYPE are mutually exclusive) +$(error CXXFLAGS and BUILD_TYPE are mutually exclusive) endif endif ================================================ FILE: package/libjson/Config.in ================================================ config BR2_PACKAGE_LIBJSON bool "libjson" depends on BR2_INSTALL_LIBSTDCPP help A JSON reader and writer which is super-efficient and usually runs circles around other JSON libraries. http://sourceforge.net/projects/libjson/ comment "libjson needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/libjson/libjson.hash ================================================ # Locally computed: sha256 07267a3951038ee2e02d26cc41bf8e275668c38f751240d3e78dc979182e7376 libjson_7.6.1.zip sha256 bd62d605bef39ab7ae39f6fa333ba513edb93cfcd56c9c966f1d34e31ff7c69b License.txt ================================================ FILE: package/libjson/libjson.mk ================================================ ################################################################################ # # libjson # ################################################################################ LIBJSON_VERSION = 7.6.1 LIBJSON_SITE = http://downloads.sourceforge.net/project/libjson LIBJSON_SOURCE = libjson_$(LIBJSON_VERSION).zip LIBJSON_INSTALL_STAGING = YES LIBJSON_LICENSE = BSD-2-Clause LIBJSON_LICENSE_FILES = License.txt LIBJSON_CXXFLAGS = $(TARGET_CFLAGS) -DNDEBUG -std=c++11 ifeq ($(BR2_STATIC_LIBS),y) LIBJSON_MAKE_OPTS += SHARED=0 else LIBJSON_MAKE_OPTS += SHARED=1 LIBJSON_CXXFLAGS += -fPIC endif LIBJSON_MAKE_OPTS += BUILD_TYPE= CXXFLAGS="$(LIBJSON_CXXFLAGS)" define LIBJSON_EXTRACT_CMDS $(UNZIP) -d $(@D) $(LIBJSON_DL_DIR)/$(LIBJSON_SOURCE) mv $(@D)/libjson/* $(@D) $(RM) -r $(@D)/libjson $(SED) '/ldconfig/d' $(@D)/makefile endef define LIBJSON_BUILD_CMDS mkdir -p $(@D)/Objects_$(if $(BR2_STATIC_LIBS),static,shared) \ $(@D)/_internal/Source/Dependencies $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ $(LIBJSON_MAKE_OPTS) -C $(@D) endef define LIBJSON_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ $(LIBJSON_MAKE_OPTS) prefix=$(TARGET_DIR)/usr install -C $(@D) endef define LIBJSON_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ $(LIBJSON_MAKE_OPTS) prefix=$(STAGING_DIR)/usr install -C $(@D) endef $(eval $(generic-package)) ================================================ FILE: package/libkcapi/0001-Disable-use-of-__NR_io_getevents-when-not-defined.patch ================================================ From 455c4938f5822c017c7ff79dd2dca638b6410923 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 15 Nov 2020 18:05:48 -0800 Subject: [PATCH] Disable use of __NR_io_getevents when not defined Architectures like riscv32 do not define this syscall, therefore return ENOSYS on such architectures Upstream-Status: Pending Signed-off-by: Khem Raj Signed-off-by: Stephan Mueller [Retrieved from: https://github.com/smuellerDD/libkcapi/commit/455c4938f5822c017c7ff79dd2dca638b6410923] Signed-off-by: Fabrice Fontaine --- lib/internal.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/internal.h b/lib/internal.h index 1237827..f765461 100644 --- a/lib/internal.h +++ b/lib/internal.h @@ -325,10 +325,17 @@ static inline int io_submit(aio_context_t ctx, long n, struct iocb **iocb) return syscall(__NR_io_submit, ctx, n, iocb); } -static inline int io_getevents(aio_context_t ctx, long min, long max, - struct io_event *events, struct timespec *timeout) +static inline int io_getevents(__attribute__((unused)) aio_context_t ctx, + __attribute__((unused)) long min, + __attribute__((unused)) long max, + __attribute__((unused)) struct io_event *events, + __attribute__((unused)) struct timespec *timeout) { +#ifdef __NR_io_getevents return syscall(__NR_io_getevents, ctx, min, max, events, timeout); +#else + return -ENOSYS; +#endif } /************************************************************ ================================================ FILE: package/libkcapi/Config.in ================================================ config BR2_PACKAGE_LIBKCAPI bool "libkcapi" depends on BR2_TOOLCHAIN_HAS_SYNC_4 help Linux Kernel Crypto API userspace interface library http://www.chronox.de/libkcapi.html if BR2_PACKAGE_LIBKCAPI config BR2_PACKAGE_LIBKCAPI_ENCAPP bool "build enc application" config BR2_PACKAGE_LIBKCAPI_HASHER bool "build hasher application" depends on !BR2_STATIC_LIBS # dlfcn.h comment "hasher application needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_LIBKCAPI_RNGAPP bool "build rng read application" config BR2_PACKAGE_LIBKCAPI_SPEED bool "build speed-test program" config BR2_PACKAGE_LIBKCAPI_TEST bool "build test program" depends on BR2_USE_MMU # fork() endif ================================================ FILE: package/libkcapi/libkcapi.hash ================================================ # Locally calculated sha256 8a08dcbb4d05ede4357cdc9d61c7f2a7f2cd96b7ce2eb41b28e45b2e378267ad libkcapi-1.1.5.tar.xz sha256 c6b8402a68999b0f84560ab43cdf60f9ff33c4a9a8ced6a40db9d3b787ba5b4a COPYING sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING.gplv2 sha256 13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239 COPYING.bsd ================================================ FILE: package/libkcapi/libkcapi.mk ================================================ ################################################################################ # # libkcapi # ################################################################################ LIBKCAPI_VERSION = 1.1.5 LIBKCAPI_SOURCE = libkcapi-$(LIBKCAPI_VERSION).tar.xz LIBKCAPI_SITE = http://www.chronox.de/libkcapi LIBKCAPI_AUTORECONF = YES LIBKCAPI_INSTALL_STAGING = YES LIBKCAPI_LICENSE = BSD-3-Clause (library), BSD-3-Clause or GPL-2.0 (programs) LIBKCAPI_LICENSE_FILES = COPYING COPYING.gplv2 COPYING.bsd LIBKCAPI_CONF_ENV = \ ac_cv_path_DB2PDF="" \ ac_cv_path_DB2PS="" \ ac_cv_path_XMLTO="" ifeq ($(BR2_PACKAGE_LIBKCAPI_ENCAPP),y) LIBKCAPI_CONF_OPTS += --enable-kcapi-encapp else LIBKCAPI_CONF_OPTS += --disable-kcapi-encapp endif ifeq ($(BR2_PACKAGE_LIBKCAPI_HASHER),y) LIBKCAPI_CONF_OPTS += --enable-kcapi-hasher else LIBKCAPI_CONF_OPTS += --disable-kcapi-hasher endif ifeq ($(BR2_PACKAGE_LIBKCAPI_RNGAPP),y) LIBKCAPI_CONF_OPTS += --enable-kcapi-rngapp else LIBKCAPI_CONF_OPTS += --disable-kcapi-rngapp endif ifeq ($(BR2_PACKAGE_LIBKCAPI_SPEED),y) LIBKCAPI_CONF_OPTS += --enable-kcapi-speed else LIBKCAPI_CONF_OPTS += --disable-kcapi-speed endif ifeq ($(BR2_PACKAGE_LIBKCAPI_TEST),y) LIBKCAPI_CONF_OPTS += --enable-kcapi-test else LIBKCAPI_CONF_OPTS += --disable-kcapi-test endif $(eval $(autotools-package)) ================================================ FILE: package/libkrb5/0001-Fix-KDC-null-deref-on-TGS-inner-body-null-server.patch ================================================ From d775c95af7606a51bf79547a94fa52ddd1cb7f49 Mon Sep 17 00:00:00 2001 From: Greg Hudson Date: Tue, 3 Aug 2021 01:15:27 -0400 Subject: [PATCH] Fix KDC null deref on TGS inner body null server After the KDC decodes a FAST inner body, it does not check for a null server. Prior to commit 39548a5b17bbda9eeb63625a201cfd19b9de1c5b this would typically result in an error from krb5_unparse_name(), but with the addition of get_local_tgt() it results in a null dereference. Add a null check. Reported by Joseph Sutton of Catalyst. CVE-2021-37750: In MIT krb5 releases 1.14 and later, an authenticated attacker can cause a null dereference in the KDC by sending a FAST TGS request with no server field. ticket: 9008 (new) tags: pullup target_version: 1.19-next target_version: 1.18-next [Retrieved from: https://github.com/krb5/krb5/commit/d775c95af7606a51bf79547a94fa52ddd1cb7f49] Signed-off-by: Fabrice Fontaine --- src/kdc/do_tgs_req.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c index 582e497cc9..32dc65fa8e 100644 --- a/src/kdc/do_tgs_req.c +++ b/src/kdc/do_tgs_req.c @@ -204,6 +204,11 @@ process_tgs_req(krb5_kdc_req *request, krb5_data *pkt, status = "FIND_FAST"; goto cleanup; } + if (sprinc == NULL) { + status = "NULL_SERVER"; + errcode = KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN; + goto cleanup; + } errcode = get_local_tgt(kdc_context, &sprinc->realm, header_server, &local_tgt, &local_tgt_storage, &local_tgt_key); ================================================ FILE: package/libkrb5/Config.in ================================================ config BR2_PACKAGE_LIBKRB5 bool "libkrb5" # needs fork() depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4 if BR2_PACKAGE_LIBOPENSSL help Kerberos is a system for authenticating users and services on a network. Kerberos is a trusted third-party service. That means that there is a third party (the Kerberos server) that is trusted by all the entities on the network (users and services, usually called "principals"). This is the MIT reference implementation of Kerberos V5. https://web.mit.edu/kerberos/ comment "libkrb5 needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/libkrb5/libkrb5.hash ================================================ # Locally calculated after checking pgp signature sha256 66085e2f594751e77e82e0dbf7bbc344320fb48a9df2a633cfdd8f7d6da99fc8 krb5-1.18.4.tar.gz # Hash for license file: sha256 7fba8b076bdc2cfef1d0813c5d4067d76d5be60c32d84de22d5d1cf451744feb NOTICE ================================================ FILE: package/libkrb5/libkrb5.mk ================================================ ################################################################################ # # libkrb5 # ################################################################################ LIBKRB5_VERSION_MAJOR = 1.18 LIBKRB5_VERSION = $(LIBKRB5_VERSION_MAJOR).4 LIBKRB5_SITE = https://web.mit.edu/kerberos/dist/krb5/$(LIBKRB5_VERSION_MAJOR) LIBKRB5_SOURCE = krb5-$(LIBKRB5_VERSION).tar.gz LIBKRB5_SUBDIR = src LIBKRB5_LICENSE = MIT LIBKRB5_LICENSE_FILES = NOTICE LIBKRB5_CPE_ID_VENDOR = mit LIBKRB5_CPE_ID_PRODUCT = kerberos_5 LIBKRB5_DEPENDENCIES = host-bison $(TARGET_NLS_DEPENDENCIES) LIBKRB5_INSTALL_STAGING = YES # 0001-Fix-KDC-null-deref-on-TGS-inner-body-null-server.patch LIBKRB5_IGNORE_CVES += CVE-2021-37750 # The configure script uses AC_TRY_RUN tests to check for those values, # which doesn't work in a cross-compilation scenario. Therefore, # we feed the configure script with the correct answer for those tests LIBKRB5_CONF_ENV = \ ac_cv_printf_positional=yes \ ac_cv_func_regcomp=yes \ krb5_cv_attr_constructor_destructor=yes,yes \ LIBS=$(TARGET_NLS_LIBS) # Never use the host packages LIBKRB5_CONF_OPTS = \ --without-system-db \ --without-system-et \ --without-system-ss \ --without-system-verto \ --without-tcl \ --disable-rpath ifeq ($(BR2_PACKAGE_OPENLDAP),y) LIBKRB5_CONF_OPTS += --with-ldap LIBKRB5_DEPENDENCIES += openldap else LIBKRB5_CONF_OPTS += --without-ldap endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBKRB5_CONF_OPTS += \ --enable-pkinit \ --with-crypto-impl=openssl \ --with-spake-openssl \ --with-tls-impl=openssl LIBKRB5_DEPENDENCIES += openssl else LIBKRB5_CONF_OPTS += \ --disable-pkinit \ --with-crypto-impl=builtin \ --without-spake-openssl \ --without-tls-impl endif ifeq ($(BR2_PACKAGE_LIBEDIT),y) LIBKRB5_CONF_OPTS += --with-libedit LIBKRB5_DEPENDENCIES += host-pkgconf libedit else LIBKRB5_CONF_OPTS += --without-libedit endif ifeq ($(BR2_PACKAGE_READLINE),y) LIBKRB5_CONF_OPTS += --with-readline LIBKRB5_DEPENDENCIES += readline else LIBKRB5_CONF_OPTS += --without-readline endif ifneq ($(BR2_TOOLCHAIN_HAS_THREADS),y) LIBKRB5_CONF_OPTS += --disable-thread-support endif $(eval $(autotools-package)) ================================================ FILE: package/libksba/Config.in ================================================ 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 https://www.gnupg.org/related_software/libksba/ ================================================ FILE: package/libksba/libksba.hash ================================================ # Locally calculated after checking pgp signature sha256 dad683e6f2d915d880aa4bed5cea9a115690b8935b78a1bbe01669189307a48b libksba-1.6.0.tar.bz2 # Hash for license files: sha256 8f1b87e551d97b2b23b6d3403a5d598c63ea89824cb8ee351f631f6cab2beaa5 AUTHORS sha256 6197b98c6bf69838c624809c509d84333de1bc847155168c0e84527446a27076 COPYING sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING.GPLv2 sha256 0abbff814cd00e2b0b6d08395af2b419c1a92026c4b4adacbb65ccda45fa58cf COPYING.GPLv3 sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING.LGPLv3 ================================================ FILE: package/libksba/libksba.mk ================================================ ################################################################################ # # libksba # ################################################################################ LIBKSBA_VERSION = 1.6.0 LIBKSBA_SOURCE = libksba-$(LIBKSBA_VERSION).tar.bz2 LIBKSBA_SITE = ftp://ftp.gnupg.org/gcrypt/libksba LIBKSBA_LICENSE = LGPL-3.0+ or GPL-2.0+ (library, headers), GPL-3.0+ (manual, tests, build system) LIBKSBA_LICENSE_FILES = AUTHORS COPYING COPYING.GPLv2 COPYING.GPLv3 COPYING.LGPLv3 LIBKSBA_CPE_ID_VENDOR = libksba_project LIBKSBA_INSTALL_STAGING = YES LIBKSBA_DEPENDENCIES = libgpg-error LIBKSBA_CONF_OPTS = --with-gpg-error-prefix=$(STAGING_DIR)/usr $(eval $(autotools-package)) ================================================ FILE: package/libldns/Config.in ================================================ config BR2_PACKAGE_LIBLDNS bool "libldns" select BR2_PACKAGE_OPENSSL help The goal of ldns is to simplify DNS programming, it supports recent RFCs like the DNSSEC documents, and allows developers to easily create software conforming to current RFCs, and experimental software for current Internet Drafts. http://www.nlnetlabs.nl/projects/ldns ================================================ FILE: package/libldns/libldns.hash ================================================ # From http://www.nlnetlabs.nl/downloads/ldns/ldns-1.7.1.tar.gz.sha1 sha1 d075a08972c0f573101fb4a6250471daaa53cb3e ldns-1.7.1.tar.gz # From http://www.nlnetlabs.nl/downloads/ldns/ldns-1.7.1.tar.gz.sha256 sha256 8ac84c16bdca60e710eea75782356f3ac3b55680d40e1530d7cea474ac208229 ldns-1.7.1.tar.gz # Hash for license file: sha256 9e0b1505c358d1a7c79555ee8bd1acbe2985dbc74dd81f3697cebf2161e922e6 LICENSE ================================================ FILE: package/libldns/libldns.mk ================================================ ################################################################################ # # libldns # ################################################################################ LIBLDNS_VERSION = 1.7.1 LIBLDNS_SOURCE = ldns-$(LIBLDNS_VERSION).tar.gz LIBLDNS_SITE = http://www.nlnetlabs.nl/downloads/ldns LIBLDNS_LICENSE = BSD-3-Clause LIBLDNS_LICENSE_FILES = LICENSE LIBLDNS_CPE_ID_VENDOR = nlnetlabs LIBLDNS_CPE_ID_PRODUCT = ldns LIBLDNS_INSTALL_STAGING = YES LIBLDNS_DEPENDENCIES = openssl # --disable-dane-verify can be removed after openssl bump to 1.1.x LIBLDNS_CONF_OPTS = \ --with-ssl=$(STAGING_DIR)/usr \ --enable-dane \ --disable-dane-verify \ --enable-ecdsa \ --enable-gost \ --enable-sha2 \ --without-examples \ --without-p5-dns-ldns \ --without-pyldns \ --without-pyldnsx ifeq ($(BR2_STATIC_LIBS),y) LIBLDNS_DEPENDENCIES += host-pkgconf # missing -lz breaks configure, add it using pkgconf LIBLDNS_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs openssl`" endif # the linktest make target fails with static linking, and we are only # interested in the lib target anyway LIBLDNS_MAKE_OPTS = lib $(eval $(autotools-package)) ================================================ FILE: package/liblinear/0001-blas-don-t-overwrite-ar-options.patch ================================================ From cae4c3b80fee0f3637d70f6d33946888c8105637 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sat, 13 Dec 2014 17:16:58 +0100 Subject: [PATCH 1/1] blas: don't overwrite ar options ar's rcv options get lost when AR is passed on the command line. Signed-off-by: Romain Naour Signed-off-by: Fabrice Fontaine --- blas/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blas/Makefile b/blas/Makefile index 895fd24..78cec9a 100644 --- a/blas/Makefile +++ b/blas/Makefile @@ -1,4 +1,4 @@ -AR = ar rcv +AR = ar RANLIB = ranlib HEADERS = blas.h blasp.h @@ -8,7 +8,7 @@ CFLAGS = $(OPTFLAGS) FFLAGS = $(OPTFLAGS) blas: $(FILES) $(HEADERS) - $(AR) blas.a $(FILES) + $(AR) rcv blas.a $(FILES) $(RANLIB) blas.a clean: -- 1.9.3 ================================================ FILE: package/liblinear/0002-build-static-lib.patch ================================================ Makefile: add a rule to build a static library Signed-off-by: "Yann E. MORIN" [Fabrice: update for 2.43] Signed-off-by: Fabrice Fontaine diff -durN liblinear-1.96.orig/Makefile liblinear-1.96/Makefile --- liblinear-1.96.orig/Makefile 2014-11-15 07:50:23.000000000 +0100 +++ liblinear-1.96/Makefile 2014-12-14 00:23:00.135893956 +0100 @@ -16,6 +16,11 @@ fi; \ $(CXX) $${SHARED_LIB_FLAG} linear.o newton.o blas/blas.a -o liblinear.so.$(SHVER) +# Keeping blas/blas.a as a pre-requisite, to ensure all .o files are built +static-lib: linear.o newton.o blas/blas.a + $(AR) rcv liblinear.a linear.o newton.o blas/*.o + $(RANLIB) liblinear.a + train: newton.o linear.o train.c blas/blas.a $(CXX) $(CFLAGS) -o train train.c newton.o linear.o $(LIBS) ================================================ FILE: package/liblinear/Config.in ================================================ config BR2_PACKAGE_LIBLINEAR bool "liblinear" depends on BR2_INSTALL_LIBSTDCPP help liblinear is a linear classifier for data with millions of instances and features. http://www.csie.ntu.edu.tw/~cjlin/liblinear/ comment "liblinear needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/liblinear/liblinear.hash ================================================ # Locally calculated sha256 02bad43d745e2796f39a08ac9d117770e71939ef06b1ee7afc6ab7909e304807 liblinear-2.43.tar.gz sha256 c5c91211a0edaa4c77e352f6b27a8f9c6768afe27d48176d6094905c534eacb3 COPYRIGHT ================================================ FILE: package/liblinear/liblinear.mk ================================================ ################################################################################ # # liblinear # ################################################################################ LIBLINEAR_VERSION = 2.43 LIBLINEAR_SITE = http://www.csie.ntu.edu.tw/~cjlin/liblinear LIBLINEAR_LICENSE = BSD-3-Clause LIBLINEAR_LICENSE_FILES = COPYRIGHT LIBLINEAR_INSTALL_STAGING = YES LIBLINEAR_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) # $1: destination directory define LIBLINEAR_INSTALL_SHARED $(INSTALL) -m 0644 -D $(@D)/liblinear.so.4 $(1)/usr/lib/liblinear.so.4 ln -sf liblinear.so.4 $(1)/usr/lib/liblinear.so endef LIBLINEAR_CFLAGS += -fPIC endif ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y) # $1: destination directory define LIBLINEAR_INSTALL_STATIC $(INSTALL) -m 0644 -D $(@D)/liblinear.a $(1)/usr/lib/liblinear.a endef endif define LIBLINEAR_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(LIBLINEAR_CFLAGS)" -C $(@D) \ $(if $(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),lib) \ $(if $(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),static-lib) endef define LIBLINEAR_INSTALL_STAGING_CMDS $(INSTALL) -m 0644 -D $(@D)/linear.h $(STAGING_DIR)/usr/include/linear.h $(call LIBLINEAR_INSTALL_SHARED,$(STAGING_DIR)) $(call LIBLINEAR_INSTALL_STATIC,$(STAGING_DIR)) endef define LIBLINEAR_INSTALL_TARGET_CMDS $(call LIBLINEAR_INSTALL_SHARED,$(TARGET_DIR)) endef $(eval $(generic-package)) ================================================ FILE: package/libllcp/Config.in ================================================ config BR2_PACKAGE_LIBLLCP bool "libllcp" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBNFC help Library extending libnfc with support for Logical Link Control Protocol. https://github.com/nfc-tools/libllcp comment "libllcp needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libllcp/libllcp.hash ================================================ # Locally calculated sha256 4336533304a11ecb3041d211ccecd7759b7c7aad4f44037721803e2da1094d22 libllcp-05dfa8003433a7070bfd8ae02efdb0203bbf34aa.tar.gz sha256 9ccf26cfe845e0eb8bb58053e47366e7ab6b697ae010f7650978d4b71b7d1fc1 COPYING ================================================ FILE: package/libllcp/libllcp.mk ================================================ ################################################################################ # # libllcp # ################################################################################ LIBLLCP_VERSION = 05dfa8003433a7070bfd8ae02efdb0203bbf34aa LIBLLCP_SITE = $(call github,nfc-tools,libllcp,$(LIBLLCP_VERSION)) LIBLLCP_DEPENDENCIES = host-pkgconf libnfc # There's no ./configure in the repository, so we need to autoreconf LIBLLCP_AUTORECONF = YES LIBLLCP_INSTALL_STAGING = YES LIBLLCP_LICENSE = GPL-3.0+ LIBLLCP_LICENSE_FILES = COPYING # ensure graphviz isn't used LIBLLCP_CONF_ENV = ac_cv_path_DOT= $(eval $(autotools-package)) ================================================ FILE: package/liblo/Config.in ================================================ config BR2_PACKAGE_LIBLO bool "liblo" depends on BR2_TOOLCHAIN_HAS_THREADS help liblo is an implementation of the Open Sound Control protocol for POSIX systems http://liblo.sourceforge.net/ comment "liblo needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/liblo/liblo.hash ================================================ # From http://sourceforge.net/projects/liblo/files/liblo/0.31/ sha1 d188a62df51e29fa98861daec1db0fdae400410d liblo-0.31.tar.gz md5 14378c1e74c58e777fbb4fcf33ac5315 liblo-0.31.tar.gz # Locally computed sha256 2b4f446e1220dcd624ecd8405248b08b7601e9a0d87a0b94730c2907dbccc750 liblo-0.31.tar.gz sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING ================================================ FILE: package/liblo/liblo.mk ================================================ ################################################################################ # # liblo # ################################################################################ LIBLO_VERSION = 0.31 LIBLO_SITE = http://downloads.sourceforge.net/project/liblo/liblo/$(LIBLO_VERSION) LIBLO_LICENSE = LGPL-2.1+ LIBLO_LICENSE_FILES = COPYING LIBLO_INSTALL_STAGING = YES # IPv6 support broken, issue known upstream LIBLO_CONF_OPTS = --disable-ipv6 # Liblo uses atomic builtins, so we need to link with libatomic for # the architectures who explicitly need libatomic. ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) LIBLO_CONF_ENV += LIBS="-latomic" endif $(eval $(autotools-package)) ================================================ FILE: package/liblockfile/0001-Makefile.in-fix-cross-compilation.patch ================================================ From 7535d990645d867a6e491d16cd2548ea7e54958e Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 5 Apr 2021 16:21:32 +0200 Subject: [PATCH] Makefile.in: fix cross-compilation - Use DESTDIR to install each files instead of prepending prefix with it as this will result in dotlockfile being wrongly install in $(bindir) - Use -f when creating symlink to avoid an error if link already exists - Do not install files with root group as this will break cross-compilation Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/miquels/liblockfile/pull/11] --- Makefile.in | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Makefile.in b/Makefile.in index 9c74b35..5ce8153 100644 --- a/Makefile.in +++ b/Makefile.in @@ -10,7 +10,7 @@ CFLAGS = @CFLAGS@ -I. LDFLAGS = @LDFLAGS@ CC = @CC@ -prefix = $(DESTDIR)@prefix@ +prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ libdir = @libdir@ @@ -60,34 +60,34 @@ dlockfile.o: lockfile.c -c lockfile.c -o dlockfile.o install_static: static install_common - install -d -m 755 -g root -p $(libdir) - install -m 644 liblockfile.a $(libdir) + install -d -m 755 -p $(DESTDIR)$(libdir) + install -m 644 liblockfile.a $(DESTDIR)$(libdir) install_shared: shared install_static install_common - install -d -m 755 -g root -p $(libdir) + install -d -m 755 -p $(DESTDIR)$(libdir) install -m 755 liblockfile.so \ - $(libdir)/liblockfile.so.$(SOVER) - ln -s liblockfile.so.$(SOVER) $(libdir)/liblockfile.so.$(MAJOR) - ln -s liblockfile.so.$(SOVER) $(libdir)/liblockfile.so + $(DESTDIR)$(libdir)/liblockfile.so.$(SOVER) + ln -sf liblockfile.so.$(SOVER) $(DESTDIR)$(libdir)/liblockfile.so.$(MAJOR) + ln -sf liblockfile.so.$(SOVER) $(DESTDIR)$(libdir)/liblockfile.so if test "$(DESTDIR)" = ""; then @LDCONFIG@; fi install_common: - install -d -m 755 -g root -p $(includedir) - install -d -m 755 -g root -p $(bindir) - install -d -m 755 -g root -p $(mandir)/man1 - install -d -m 755 -g root -p $(mandir)/man3 - install -m 644 lockfile.h maillock.h $(includedir) + install -d -m 755 -p $(DESTDIR)$(includedir) + install -d -m 755 -p $(DESTDIR)$(bindir) + install -d -m 755 -p $(DESTDIR)$(mandir)/man1 + install -d -m 755 -p $(DESTDIR)$(mandir)/man3 + install -m 644 lockfile.h maillock.h $(DESTDIR)$(includedir) if [ "$(MAILGROUP)" != "" ]; then\ - install -g $(MAILGROUP) -m 2755 dotlockfile $(bindir);\ + install -g $(MAILGROUP) -m 2755 dotlockfile $(DESTDIR)$(bindir);\ else \ - install -g root -m 755 dotlockfile $(bindir); \ + install -m 755 dotlockfile $(DESTDIR)$(bindir); \ fi - install -m 644 *.1 $(mandir)/man1 - install -m 644 *.3 $(mandir)/man3 + install -m 644 *.1 $(DESTDIR)$(mandir)/man1 + install -m 644 *.3 $(DESTDIR)$(mandir)/man3 install_nfslib: nfslib - install -d -m 755 -g root -p $(nfslockdir) - install -m 755 nfslock.so.$(NFSVER) $(nfslockdir) + install -d -m 755 -p $(DESTDIR)$(nfslockdir) + install -m 755 nfslock.so.$(NFSVER) $(DESTDIR)$(nfslockdir) if test "$(DESTDIR)" = ""; then @LDCONFIG@; fi test: test-stamp ================================================ FILE: package/liblockfile/Config.in ================================================ config BR2_PACKAGE_LIBLOCKFILE bool "liblockfile" depends on BR2_USE_MMU # fork() help NFS-safe locking library. https://github.com/miquels/liblockfile ================================================ FILE: package/liblockfile/liblockfile.hash ================================================ # From https://snapshot.debian.org/archive/debian/20210128T210947Z/pool/main/libl/liblockfile/liblockfile_1.17-1.dsc sha256 6e937f3650afab4aac198f348b89b1ca42edceb17fb6bb0918f642143ccfd15e liblockfile_1.17.orig.tar.gz sha256 e3657c0e3facfeccb58900c0b48d56cd68ad5f9f24d1b4c6eaa69c26490fb673 liblockfile_1.17-1.debian.tar.bz2 # Locally computed sha256 3d080ab931103a823e6b9b788ccbc3e9d44797bd54546f3feebfd305f90de46a COPYRIGHT sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 licenses/GPL-2 sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c licenses/LGPL-2 ================================================ FILE: package/liblockfile/liblockfile.mk ================================================ ################################################################################ # # liblockfile # ################################################################################ LIBLOCKFILE_VERSION = 1.17 LIBLOCKFILE_SOURCE = liblockfile_$(LIBLOCKFILE_VERSION).orig.tar.gz LIBLOCKFILE_SITE = http://snapshot.debian.org/archive/debian/20210128T210947Z/pool/main/libl/liblockfile LIBLOCKFILE_PATCH = liblockfile_$(LIBLOCKFILE_VERSION)-1.debian.tar.bz2 LIBLOCKFILE_LICENSE = LGPL-2.0+, GPL-2.0+ (dotlockfile) LIBLOCKFILE_LICENSE_FILES = COPYRIGHT licenses/GPL-2 licenses/LGPL-2 # We're patching Makefile.in LIBLOCKFILE_AUTORECONF = YES LIBLOCKFILE_INSTALL_STAGING = YES LIBLOCKFILE_CONF_OPTS = --mandir=/usr/share/man $(eval $(autotools-package)) ================================================ FILE: package/liblog4c-localtime/0001-log4c.m4-fix-underquoted-definition-of-AM_PATH_LOG4C.patch ================================================ From b7290560082e91673431de79e1fa318c9fd90261 Mon Sep 17 00:00:00 2001 From: Danomi Manchego Date: Sat, 25 Oct 2014 19:42:38 +0200 Subject: [PATCH 1/5] log4c.m4: fix "underquoted definition of AM_PATH_LOG4C" warning When autoreconfiguring liblog4c-localtime, there is a warning from autoconf caused by an underquoted definition of AM_PATH_LOG4C. This patch fixes this warning. Submitted upstream: https://github.com/rcmadruga/log4c-localtime/pull/1 Signed-off-by: Danomi Manchego Signed-off-by: Thomas Petazzoni --- log4c.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/log4c.m4 b/log4c.m4 index 551a90d..96424c0 100644 --- a/log4c.m4 +++ b/log4c.m4 @@ -4,7 +4,7 @@ dnl AM_PATH_LOG4C([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Test for LOG4C, and define LOG4C_CFLAGS and LOG4C_LIBS dnl -AC_DEFUN(AM_PATH_LOG4C, +AC_DEFUN([AM_PATH_LOG4C], [dnl dnl Get the cflags and libraries from the log4c-config script dnl -- 2.0.0 ================================================ FILE: package/liblog4c-localtime/0002-Fix-linking-error-without-pthread.patch ================================================ From 435b28cd90973cc03a533e75e90a46cd9f197dff Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Sat, 25 Oct 2014 19:44:01 +0200 Subject: [PATCH 2/5] Fix linking error without pthread The rollingfile functionality only gets built if pthread support is available, but a call to these functions from log4c_fini() was outside the #if WITH_ROLLINGFILE conditional, causing linker errors when the library is used. Submitted upstream: https://github.com/rcmadruga/log4c-localtime/pull/1 Signed-off-by: Peter Korsgaard Signed-off-by: Thomas Petazzoni --- src/log4c/init.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/log4c/init.c b/src/log4c/init.c index 99883ea..7dd9eb4 100644 --- a/src/log4c/init.c +++ b/src/log4c/init.c @@ -267,10 +267,12 @@ extern int log4c_fini(void) log4c_layout_factory = NULL; } +#ifdef WITH_ROLLINGFILE if (log4c_rollingpolicy_factory) { sd_factory_delete(log4c_rollingpolicy_factory); log4c_rollingpolicy_factory = NULL; } +#endif #ifdef __SD_DEBUG__ if( getenv("SD_DEBUG")){ -- 2.0.0 ================================================ FILE: package/liblog4c-localtime/0003-Fix-debug-mode-build-with-uClibc.patch ================================================ From acbaee34bcb1881db97969dd2c411446f32ca4cc Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 25 Oct 2014 19:45:33 +0200 Subject: [PATCH 3/5] Fix debug mode build with uClibc When --enable-debug is passed, liblog4c-localtime wants to use . It takes the precaution of testing if __GLIBC__ is defined. But unfortunately, the uClibc C library pretends to be compatible with glibc by defining __GLIBC__, but it doesn't provide mcheck.h. To better support this situation, we add an AC_CHECK_HEADERS() check on mcheck.h, and then use HAVE_MCHECK_H were appropriate. Submitted upstream: https://github.com/rcmadruga/log4c-localtime/pull/1 Signed-off-by: Thomas Petazzoni --- configure.in | 2 +- src/log4c/init.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.in b/configure.in index 612ccbe..dbf11e9 100644 --- a/configure.in +++ b/configure.in @@ -115,7 +115,7 @@ AM_CONDITIONAL(TEST, test x$enable_test = xyes) AC_HEADER_STDC AC_CHECK_HEADERS([fcntl.h inttypes.h langinfo.h limits.h stddef.h stdint.h \ stdlib.h string.h sys/time.h syslog.h unistd.h stdarg.h varargs.h getopt.h \ -pthread.h]) +pthread.h mcheck.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST diff --git a/src/log4c/init.c b/src/log4c/init.c index 7dd9eb4..4b88210 100644 --- a/src/log4c/init.c +++ b/src/log4c/init.c @@ -35,7 +35,7 @@ static const char version[] = "$Id$"; #include #include -#if defined(__LOG4C_DEBUG__) && defined(__GLIBC__) +#if defined(__LOG4C_DEBUG__) && defined(HAVE_MCHECK_H) #include #endif @@ -100,7 +100,7 @@ extern int log4c_init(void) sd_debug("log4c_init["); /* activate GLIBC allocation debugging */ -#if defined(__LOG4C_DEBUG__) && defined(__GLIBC__) +#if defined(__LOG4C_DEBUG__) && defined(HAVE_MCHECK_H) mtrace(); #endif @@ -280,7 +280,7 @@ extern int log4c_fini(void) log4c_dump_all_instances(stderr); } #endif -#if defined(__LOG4C_DEBUG__) && defined(__GLIBC__) +#if defined(__LOG4C_DEBUG__) && defined(HAVE_MCHECK_H) muntrace(); #endif -- 2.0.0 ================================================ FILE: package/liblog4c-localtime/0004-Add-AC_CONFIG_MACRO_DIR-to-configure.in.patch ================================================ From a2553c203d8b8257dea1d2e2139b220935587144 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 25 Oct 2014 20:03:25 +0200 Subject: [PATCH 4/5] Add AC_CONFIG_MACRO_DIR to configure.in Without AC_CONFIG_MACRO_DIR, when autoreconfiguring the package, it cannot find AM_PATH_EXPAT which is defined in config/expat.m4. Submitted upstream: https://github.com/rcmadruga/log4c-localtime/pull/1 Signed-off-by: Thomas Petazzoni --- configure.in | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.in b/configure.in index dbf11e9..769b204 100644 --- a/configure.in +++ b/configure.in @@ -5,6 +5,7 @@ AC_PREREQ(2.57) AC_INIT AC_CONFIG_SRCDIR([configure.in]) AC_CONFIG_AUX_DIR(config) +AC_CONFIG_MACRO_DIR([config]) AM_CONFIG_HEADER(src/config.h) LOG4C_MAJOR_VERSION=1 -- 2.0.0 ================================================ FILE: package/liblog4c-localtime/0005-Fix-C-support.patch ================================================ From bdccec4c374a93480a7fd303d15e20810a5d5b7e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 25 Oct 2014 21:22:40 +0200 Subject: [PATCH 5/5] Fix C++ support Autoreconf fails with the following message: tests/log4c/Makefile.am: error: C++ source seen but 'CXX' is undefined So this commit adds the AC_PROG_CXX macro to configure.in, and ensures that the C++ test is only built if a C++ compiler is available. Submitted upstream: https://github.com/rcmadruga/log4c-localtime/pull/1 Signed-off-by: Thomas Petazzoni --- configure.in | 3 +++ tests/log4c/Makefile.am | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/configure.in b/configure.in index 769b204..ce75800 100644 --- a/configure.in +++ b/configure.in @@ -38,6 +38,7 @@ AC_DEFINE(_GNU_SOURCE,1,"POSIXandGNU extensions") #. AC_PROG_YACC AC_PROG_CC +AC_PROG_CXX AC_PROG_CPP AM_PROG_LEX AC_PROG_AWK @@ -47,6 +48,8 @@ AC_PROG_MAKE_SET AC_PROG_RANLIB AC_PROG_LIBTOOL +AM_CONDITIONAL([USE_CXX], [test "$ac_cv_prog_CXX" != "no"]) + # platform idioms case "$host" in *-hp-hpux*) diff --git a/tests/log4c/Makefile.am b/tests/log4c/Makefile.am index f647f27..b1b4ed6 100644 --- a/tests/log4c/Makefile.am +++ b/tests/log4c/Makefile.am @@ -3,7 +3,11 @@ INCLUDES = \ -DSRCDIR="\"$(srcdir)\"" noinst_PROGRAMS = test_category test_rc bench bench_fwrite \ - test_stream2 test_layout_r cpp_compile_test + test_stream2 test_layout_r + +if USE_CXX +noinst_PROGRAMS += cpp_compile_test +endif if WITH_ROLLINGFILE noinst_PROGRAMS += test_rollingfile_appender test_rollingfile_appender_mt -- 2.0.0 ================================================ FILE: package/liblog4c-localtime/Config.in ================================================ config BR2_PACKAGE_LIBLOG4C_LOCALTIME bool "liblog4c-localtime" select BR2_PACKAGE_EXPAT help Log4c is a library of C for flexible logging to files, syslog and other destinations. This version is with localtime patch, to make lib show times in local timezone. https://github.com/rcmadruga/log4c-localtime http://log4c.sourceforge.net/ ================================================ FILE: package/liblog4c-localtime/liblog4c-localtime.hash ================================================ # Locally calculated sha256 a1f68d8251509c0171f8bfea42f9e2a5255a4185f7dcbe67f584aa09709b2496 liblog4c-localtime-1.0.tar.gz sha256 a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7 COPYING ================================================ FILE: package/liblog4c-localtime/liblog4c-localtime.mk ================================================ ################################################################################ # # liblog4c-localtime # ################################################################################ LIBLOG4C_LOCALTIME_VERSION = 1.0 LIBLOG4C_LOCALTIME_SITE = $(call github,rcmadruga,log4c-localtime,v$(LIBLOG4C_LOCALTIME_VERSION)) LIBLOG4C_LOCALTIME_INSTALL_STAGING = YES LIBLOG4C_LOCALTIME_CONF_OPTS = --disable-expattest LIBLOG4C_LOCALTIME_DEPENDENCIES = expat LIBLOG4C_LOCALTIME_CONFIG_SCRIPTS = log4c-config LIBLOG4C_LOCALTIME_LICENSE = LGPL-2.1 LIBLOG4C_LOCALTIME_LICENSE_FILES = COPYING LIBLOG4C_LOCALTIME_AUTORECONF = YES define LIBLOG4C_LOCALTIME_FIX_CONFIGURE_PERMS chmod +x $(@D)/configure endef LIBLOG4C_LOCALTIME_PRE_CONFIGURE_HOOKS += LIBLOG4C_LOCALTIME_FIX_CONFIGURE_PERMS $(eval $(autotools-package)) ================================================ FILE: package/liblogging/Config.in ================================================ config BR2_PACKAGE_LIBLOGGING bool "liblogging" help Liblogging is an easy to use library for logging. It offers an enhanced replacement for the syslog() call, but retains its ease of use. https://www.rsyslog.com/liblogging/ ================================================ FILE: package/liblogging/liblogging.hash ================================================ # From http://www.liblogging.org/ sha256 338c6174e5c8652eaa34f956be3451f7491a4416ab489aef63151f802b00bf93 liblogging-1.0.6.tar.gz # Hash for license file: sha256 a5626f700d3ee92513673b5f43733af5b651d9e7a9157d4bd81ceb9c89ec04b0 COPYING ================================================ FILE: package/liblogging/liblogging.mk ================================================ ################################################################################ # # liblogging # ################################################################################ LIBLOGGING_VERSION = 1.0.6 LIBLOGGING_SITE = http://download.rsyslog.com/liblogging LIBLOGGING_LICENSE = BSD-2-Clause LIBLOGGING_LICENSE_FILES = COPYING LIBLOGGING_CPE_ID_VENDOR = adiscon LIBLOGGING_INSTALL_STAGING = YES LIBLOGGING_CONF_OPTS = --enable-cached-man-pages ifeq ($(BR2_INIT_SYSTEMD),y) LIBLOGGING_CONF_OPTS += --enable-journal LIBLOGGING_DEPENDENCIES += systemd else LIBLOGGING_CONF_OPTS += --disable-journal endif $(eval $(autotools-package)) ================================================ FILE: package/libloki/0001-allow-to-install-to-a-specific-location-using-DESTDI.patch ================================================ From 0b80e8beff68a0570fdc2d9281992060414475c1 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sat, 29 Apr 2017 22:13:54 +0200 Subject: [PATCH] allow to install to a specific location using DESTDIR DESTDIR is the autotools standard variable where to copy headers, libraries and binaries. It's not the same as "prefix". So while installing to Buildroot STAGING directory, use prefix=/usr and DESTOR=$(STAGING_DIR). Signed-off-by: Romain Naour Sigend-off-by: Corentin GUILLEVIC --- include/Makefile | 12 ++++++------ src/Makefile | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/Makefile b/include/Makefile index 26a8139..a8cf369 100644 --- a/include/Makefile +++ b/include/Makefile @@ -2,10 +2,10 @@ include ../Makefile.common .PHONY: install install: - mkdir -p $(prefix)/include/loki - mkdir -p $(prefix)/include/loki/flex - mkdir -p $(prefix)/include/loki/yasli + mkdir -p $(DESTDIR)$(prefix)/include/loki + mkdir -p $(DESTDIR)$(prefix)/include/loki/flex + mkdir -p $(DESTDIR)$(prefix)/include/loki/yasli - install -m 644 loki/*.h $(prefix)/include/loki - install -m 644 loki/flex/*.h $(prefix)/include/loki/flex - install -m 644 loki/yasli/*.h $(prefix)/include/loki/yasli + install -m 644 loki/*.h $(DESTDIR)$(prefix)/include/loki + install -m 644 loki/flex/*.h $(DESTDIR)$(prefix)/include/loki/flex + install -m 644 loki/yasli/*.h $(DESTDIR)$(prefix)/include/loki/yasli diff --git a/src/Makefile b/src/Makefile index b272929..054285e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -74,13 +74,13 @@ INSTALL_DATA := $(INSTALL) -m 644 install: install-static install-shared install-static: $(RESULT_DIR)$(STATIC_LIB) - mkdir -p $(prefix)/lib - $(INSTALL_DATA) $(RESULT_DIR)$(STATIC_LIB) $(prefix)/lib + mkdir -p $(DESTDIR)$(prefix)/lib + $(INSTALL_DATA) $(RESULT_DIR)$(STATIC_LIB) $(DESTDIR)$(prefix)/lib install-shared: $(RESULT_DIR)$(SHARED_LIB_VERSIONED) - mkdir -p $(prefix)/lib - $(INSTALL_DATA) $(RESULT_DIR)$(SHARED_LIB_VERSIONED) $(prefix)/lib - cd $(prefix)/lib; ln -s $(SHARED_LIB_VERSIONED) $(SHARED_LIB_BASE) + mkdir -p $(DESTDIR)$(prefix)/lib + $(INSTALL_DATA) $(RESULT_DIR)$(SHARED_LIB_VERSIONED) $(DESTDIR)$(prefix)/lib + cd $(DESTDIR)$(prefix)/lib; ln -s $(SHARED_LIB_VERSIONED) $(SHARED_LIB_BASE) %.lo : %.cpp $(CXX) -c $(CXXFLAGS) -fPIC $(CPPFLAGS) -o $@ $< -- 2.9.3 ================================================ FILE: package/libloki/0002-use-ln-snf.patch ================================================ From 7fcaa080ef3fddb3f7dcfaf2984bc397d7c9e96c Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sat, 29 Apr 2017 22:27:26 +0200 Subject: [PATCH] use ln -snf Otherwise the install step fail due to existing symlink. 'libloki.so': File exists Signed-off-by: Romain Naour Sigend-off-by: Corentin GUILLEVIC --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 054285e..2c169ab 100644 --- a/src/Makefile +++ b/src/Makefile @@ -80,7 +80,7 @@ install-static: $(RESULT_DIR)$(STATIC_LIB) install-shared: $(RESULT_DIR)$(SHARED_LIB_VERSIONED) mkdir -p $(DESTDIR)$(prefix)/lib $(INSTALL_DATA) $(RESULT_DIR)$(SHARED_LIB_VERSIONED) $(DESTDIR)$(prefix)/lib - cd $(DESTDIR)$(prefix)/lib; ln -s $(SHARED_LIB_VERSIONED) $(SHARED_LIB_BASE) + cd $(DESTDIR)$(prefix)/lib; ln -snf $(SHARED_LIB_VERSIONED) $(SHARED_LIB_BASE) %.lo : %.cpp $(CXX) -c $(CXXFLAGS) -fPIC $(CPPFLAGS) -o $@ $< -- 2.9.3 ================================================ FILE: package/libloki/Config.in ================================================ config BR2_PACKAGE_LIBLOKI bool "libloki" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS help A C++ library of designs, containing flexible implementations of common design patterns and idioms. http://sourceforge.net/projects/loki-lib comment "libloki needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libloki/libloki.hash ================================================ # From https://sourceforge.net/projects/loki-lib/files/Loki/Loki%200.1.7 md5 33a24bcbb99fa2ec8fcbbab65649f3f6 loki-0.1.7.tar.bz2 sha1 006c630217b1e1fd33015dc0597d2d743d8ee4e3 loki-0.1.7.tar.bz2 # locally computed sha256 07553754f6be2738559947db69b0718512665bf4a34015fa3a875b6eb1111198 loki-0.1.7.tar.bz2 ================================================ FILE: package/libloki/libloki.mk ================================================ ################################################################################ # # libloki # ################################################################################ LIBLOKI_VERSION = 0.1.7 LIBLOKI_SOURCE = loki-$(LIBLOKI_VERSION).tar.bz2 LIBLOKI_SITE = https://sourceforge.net/projects/loki-lib/files/Loki/Loki%20$(LIBLOKI_VERSION) LIBLOKI_LICENSE = MIT LIBLOKI_INSTALL_STAGING = YES ifeq ($(BR2_STATIC_LIBS),y) LIBLOKI_BUILD_TARGETS += build-static LIBLOKI_INSTALL_TARGETS += install-static else ifeq ($(BR2_SHARED_LIBS),y) LIBLOKI_BUILD_TARGETS += build-shared LIBLOKI_INSTALL_TARGETS += install-shared else ifeq ($(BR2_SHARED_STATIC_LIBS),y) LIBLOKI_BUILD_TARGETS += build-static build-shared LIBLOKI_INSTALL_TARGETS += install-static install-shared endif define LIBLOKI_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" \ -C $(@D) $(LIBLOKI_BUILD_TARGETS) endef define LIBLOKI_INSTALL_STAGING_CMDS $(MAKE) -C $(@D)/src DESTDIR=$(STAGING_DIR) $(LIBLOKI_INSTALL_TARGETS) $(MAKE) -C $(@D)/include DESTDIR=$(STAGING_DIR) install endef define LIBLOKI_INSTALL_TARGET_CMDS $(MAKE) -C $(@D)/src DESTDIR=$(TARGET_DIR) $(LIBLOKI_INSTALL_TARGETS) endef $(eval $(generic-package)) ================================================ FILE: package/libmad/0001-mips-h-constraint-removal.patch ================================================ http://patchwork.openembedded.org/patch/921/ diff -ur libmad-0.15.1b-orig/fixed.h libmad-0.15.1b/fixed.h --- libmad-0.15.1b-orig/fixed.h 2004-02-17 12:32:03.000000000 +1030 +++ libmad-0.15.1b/fixed.h 2009-08-05 10:46:30.000000000 +0930 @@ -299,6 +299,23 @@ # elif defined(FPM_MIPS) +/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */ +#if defined (__GNUC__) && defined (__GNUC_MINOR__) +#define __GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#else +#define __GNUC_PREREQ(maj, min) 0 +#endif + +#if __GNUC_PREREQ(4,4) + typedef unsigned int u64_di_t __attribute__ ((mode (DI))); +# define MAD_F_MLX(hi, lo, x, y) \ + do { \ + u64_di_t __ll = (u64_di_t) (x) * (y); \ + hi = __ll >> 32; \ + lo = __ll; \ + } while (0) +#else /* * This MIPS version is fast and accurate; the disposition of the least * significant bit depends on OPT_ACCURACY via mad_f_scale64(). @@ -328,6 +345,7 @@ : "%r" ((x) >> 12), "r" ((y) >> 16)) # define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo)) # endif +#endif /* __GNU_PREREQ(4,4) */ # if defined(OPT_SPEED) # define mad_f_scale64(hi, lo) \ diff -ur libmad-0.15.1b-orig/mad.h libmad-0.15.1b/mad.h --- libmad-0.15.1b-orig/mad.h 2004-02-17 13:25:44.000000000 +1030 +++ libmad-0.15.1b/mad.h 2009-08-05 10:42:40.000000000 +0930 @@ -344,6 +344,23 @@ # elif defined(FPM_MIPS) +/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */ +#if defined (__GNUC__) && defined (__GNUC_MINOR__) +#define __GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#else +#define __GNUC_PREREQ(maj, min) 0 +#endif + +#if __GNUC_PREREQ(4,4) + typedef unsigned int u64_di_t __attribute__ ((mode (DI))); +# define MAD_F_MLX(hi, lo, x, y) \ + do { \ + u64_di_t __ll = (u64_di_t) (x) * (y); \ + hi = __ll >> 32; \ + lo = __ll; \ + } while (0) +#else /* * This MIPS version is fast and accurate; the disposition of the least * significant bit depends on OPT_ACCURACY via mad_f_scale64(). @@ -373,6 +390,7 @@ : "%r" ((x) >> 12), "r" ((y) >> 16)) # define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo)) # endif +#endif /* __GNU_PREREQ(4,4) */ # if defined(OPT_SPEED) # define mad_f_scale64(hi, lo) \ ================================================ FILE: package/libmad/0002-configure-ac-automake-foreign.patch ================================================ configure.ac: don't require GNU-specific files when running automake Signed-off-by: Fabrice Fontaine diff -ur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac --- libmad-0.15.1b-orig/configure.ac 2019-01-17 21:24:52.259194527 +0100 +++ libmad-0.15.1b/configure.ac 2019-01-17 21:25:32.779481058 +0100 @@ -26,7 +26,7 @@ AC_CONFIG_SRCDIR([decoder.h]) -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([foreign]) AM_CONFIG_HEADER([config.h]) ================================================ FILE: package/libmad/Config.in ================================================ config BR2_PACKAGE_LIBMAD bool "libmad" help High-quality MPEG audio decoder. All computations are performed with fixed-point integer arithmetic, making it ideal for systems without a floating-point unit. http://www.underbit.com/products/mad/ if BR2_PACKAGE_LIBMAD choice prompt "Speed vs. accuracy" default BR2_PACKAGE_LIBMAD_OPTIMIZATION_DEFAULT config BR2_PACKAGE_LIBMAD_OPTIMIZATION_DEFAULT bool "Default" help Keep optimizations balanced between speed and accuracy. config BR2_PACKAGE_LIBMAD_OPTIMIZATION_SPEED bool "Optimize for speed over accuracy" help Compromise accuracy for speed. config BR2_PACKAGE_LIBMAD_OPTIMIZATION_ACCURACY bool "Optimize for accuracy over speed" help Compromise speed for accuracy. endchoice config BR2_PACKAGE_LIBMAD_SSO bool "Subband synthesis optimization" help Use the subband synthesis optimization, with reduced accuracy. config BR2_PACKAGE_LIBMAD_ASO bool "Architecture-specific optimizations" default y # arm optimization needs classic arm instructions support depends on !(BR2_arm && !BR2_ARM_CPU_HAS_ARM) help Use certain architecture-specific optimizations. config BR2_PACKAGE_LIBMAD_STRICT_ISO bool "Strict ISO/IEC interpretations" help Use strict ISO/IEC interpretations. endif ================================================ FILE: package/libmad/libmad.hash ================================================ # From http://snapshot.debian.org/archive/debian/20190310T213528Z/pool/main/libm/libmad/libmad_0.15.1b-10.dsc sha256 bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690 libmad_0.15.1b.orig.tar.gz sha256 dfeabd5d2398bf902660edc31f87ad40600f0aa732b946f864d8ee6bbf56a99c libmad_0.15.1b-10.diff.gz # Hash for license file: sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/libmad/libmad.mk ================================================ ################################################################################ # # libmad # ################################################################################ LIBMAD_VERSION = 0.15.1b LIBMAD_PATCH = libmad_$(LIBMAD_VERSION)-10.diff.gz LIBMAD_SOURCE = libmad_$(LIBMAD_VERSION).orig.tar.gz LIBMAD_SITE = \ http://snapshot.debian.org/archive/debian/20190310T213528Z/pool/main/libm/libmad LIBMAD_INSTALL_STAGING = YES LIBMAD_LICENSE = GPL-2.0+ LIBMAD_LICENSE_FILES = COPYING define LIBMAD_APPLY_DEBIAN_PATCHES if [ -d $(@D)/debian/patches ]; then \ $(APPLY_PATCHES) $(@D) $(@D)/debian/patches *.patch; \ fi endef LIBMAD_POST_PATCH_HOOKS += LIBMAD_APPLY_DEBIAN_PATCHES # debian/patches/md_size.diff LIBMAD_IGNORE_CVES += CVE-2017-8372 CVE-2017-8373 # debian/patches/length-check.patch LIBMAD_IGNORE_CVES += CVE-2017-8374 # Force autoreconf to be able to use a more recent libtool script, that # is able to properly behave in the face of a missing C++ compiler. LIBMAD_AUTORECONF = YES define LIBMAD_INSTALL_STAGING_PC $(INSTALL) -D package/libmad/mad.pc \ $(STAGING_DIR)/usr/lib/pkgconfig/mad.pc endef LIBMAD_POST_INSTALL_STAGING_HOOKS += LIBMAD_INSTALL_STAGING_PC LIBMAD_CONF_OPTS = \ --disable-debugging \ $(if $(BR2_PACKAGE_LIBMAD_OPTIMIZATION_SPEED),--enable-speed) \ $(if $(BR2_PACKAGE_LIBMAD_OPTIMIZATION_ACCURACY),--enable-accuracy) \ --$(if $(BR2_PACKAGE_LIBMAD_SSO),enable,disable)-sso \ --$(if $(BR2_PACKAGE_LIBMAD_ASO),enable,disable)-aso \ --$(if $(BR2_PACKAGE_LIBMAD_STRICT_ISO),enable,disable)-strict-iso $(eval $(autotools-package)) ================================================ FILE: package/libmad/mad.pc ================================================ prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: mad Description: MPEG Audio Decoder Requires: Version: 0.15.1b Libs: -L${libdir} -lmad Cflags: -I${includedir} ================================================ FILE: package/libmatroska/Config.in ================================================ config BR2_PACKAGE_LIBMATROSKA bool "libmatroska" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR select BR2_PACKAGE_LIBEBML help Extensible open standard audio/video container format access library. http://matroska.org comment "libmatroska needs a toolchain w/ C++, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR ================================================ FILE: package/libmatroska/libmatroska.hash ================================================ # Locally calculated sha256 daf91a63f58dd157ca340c457871e66260cb9c3333fefb008b318befbb0e081a libmatroska-1.6.3.tar.xz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSE.LGPL ================================================ FILE: package/libmatroska/libmatroska.mk ================================================ ################################################################################ # # libmatroska # ################################################################################ LIBMATROSKA_VERSION = 1.6.3 LIBMATROSKA_SOURCE = libmatroska-$(LIBMATROSKA_VERSION).tar.xz LIBMATROSKA_SITE = http://dl.matroska.org/downloads/libmatroska LIBMATROSKA_INSTALL_STAGING = YES LIBMATROSKA_LICENSE = LGPL-2.1+ LIBMATROSKA_LICENSE_FILES = LICENSE.LGPL LIBMATROSKA_CPE_ID_VENDOR = matroska LIBMATROSKA_DEPENDENCIES = libebml host-pkgconf $(eval $(cmake-package)) ================================================ FILE: package/libmaxminddb/Config.in ================================================ config BR2_PACKAGE_LIBMAXMINDDB bool "libmaxminddb" help C library for the MaxMind DB file format The libmaxminddb library provides a C library for reading MaxMind DB files, including the GeoIP2 databases from MaxMind. This is a custom binary format designed to facilitate fast lookups of IP addresses while allowing for great flexibility in the type of data associated with an address. The MaxMind DB format is an open format. The spec is available at http://maxmind.github.io/MaxMind-DB/. This spec is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. http://maxmind.github.io/libmaxminddb ================================================ FILE: package/libmaxminddb/libmaxminddb.hash ================================================ # Locally computed: sha256 7620ac187c591ce21bcd7bf352376a3c56a933e684558a1f6bef4bd4f3f98267 libmaxminddb-1.6.0.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/libmaxminddb/libmaxminddb.mk ================================================ ################################################################################ # # libmaxminddb # ################################################################################ LIBMAXMINDDB_VERSION = 1.6.0 LIBMAXMINDDB_SITE = \ https://github.com/maxmind/libmaxminddb/releases/download/$(LIBMAXMINDDB_VERSION) LIBMAXMINDDB_INSTALL_STAGING = YES LIBMAXMINDDB_LICENSE = Apache-2.0 LIBMAXMINDDB_LICENSE_FILES = LICENSE LIBMAXMINDDB_CPE_ID_VENDOR = maxmind LIBMAXMINDDB_CONF_OPTS = --disable-tests # mmdblookup binary depends on pthreads ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) LIBMAXMINDDB_CONF_OPTS += --enable-binaries else LIBMAXMINDDB_CONF_OPTS += --disable-binaries endif $(eval $(autotools-package)) ================================================ FILE: package/libmbim/0001-src-libmbim-glib-meson.build-fix-static-build.patch ================================================ From ff1f9d7c9bc163de3117383b7cea9cd99585462a Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 31 Jul 2021 23:42:35 +0200 Subject: [PATCH] src/libmbim-glib/meson.build: fix static build Replace shared_library by library to fix static build failure with toolchains that don't support dynamic library Fixes: - http://autobuild.buildroot.org/results/8553211d87a2c41d8b47b51bbb193736fce49714 Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.freedesktop.org/mobile-broadband/libmbim/-/merge_requests/83] --- src/libmbim-glib/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libmbim-glib/meson.build b/src/libmbim-glib/meson.build index e3337db..5de3564 100644 --- a/src/libmbim-glib/meson.build +++ b/src/libmbim-glib/meson.build @@ -76,7 +76,7 @@ version_header = configure_file( symbol_map = join_paths(meson.current_source_dir(), 'symbol.map') -libmbim_glib = shared_library( +libmbim_glib = library( libname, version: mbim_glib_version, sources: version_header, -- 2.30.2 ================================================ FILE: package/libmbim/Config.in ================================================ config BR2_PACKAGE_LIBMBIM bool "libmbim" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 help libmbim is a glib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol. http://www.freedesktop.org/wiki/Software/libmbim/ comment "libmbim needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libmbim/libmbim.hash ================================================ # Locally computed sha256 63b53db0196dadea673f04524b0683ce40282f25bfd513d398e2a10b992cac01 libmbim-1.26.0.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB ================================================ FILE: package/libmbim/libmbim.mk ================================================ ################################################################################ # # libmbim # ################################################################################ LIBMBIM_VERSION = 1.26.0 LIBMBIM_SITE = https://gitlab.freedesktop.org/mobile-broadband/libmbim/-/archive/$(LIBMBIM_VERSION) LIBMBIM_LICENSE = LGPL-2.0+ (library), GPL-2.0+ (programs) LIBMBIM_LICENSE_FILES = COPYING COPYING.LIB LIBMBIM_CPE_ID_VENDOR = freedesktop LIBMBIM_INSTALL_STAGING = YES LIBMBIM_DEPENDENCIES = libglib2 ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBMBIM_DEPENDENCIES += gobject-introspection LIBMBIM_CONF_OPTS += -Dintrospection=true else LIBMBIM_CONF_OPTS += -Dintrospection=false endif ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y) LIBMBIM_DEPENDENCIES += bash-completion LIBMBIM_CONF_OPTS += -Dbash_completion=true else LIBMBIM_CONF_OPTS += -Dbash_completion=false endif $(eval $(meson-package)) ================================================ FILE: package/libmbus/Config.in ================================================ config BR2_PACKAGE_LIBMBUS bool "libmbus" help libmbus is a library for communicating with energy metering devices. It supports TCP and RS232 M-bus gateways. (M-bus standard: http://www.m-bus.com/) http://www.rscada.se/libmbus/ ================================================ FILE: package/libmbus/libmbus.hash ================================================ # Locally calculated sha256 9fca42592da0ba75df66c6f885a4dbfa916d23e65e3d1ce6e38d940d2a2719a4 libmbus-0.8.0.tar.gz sha256 ea171a4ae443eca7186f564db2c3cc8b84c1ac343f227f92cd52ec6a948f4a74 COPYING ================================================ FILE: package/libmbus/libmbus.mk ================================================ ################################################################################ # # libmbus # ################################################################################ LIBMBUS_VERSION = 0.8.0 LIBMBUS_SITE = http://www.rscada.se/public-dist LIBMBUS_INSTALL_STAGING = YES LIBMBUS_LICENSE = BSD-3-Clause LIBMBUS_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libmdbx/Config.in ================================================ config BR2_PACKAGE_LIBMDBX bool "libmdbx" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 help One of the fastest compact key-value ACID database without WAL. libmdbx has a specific set of properties and capabilities, focused on creating unique lightweight solutions. libmdbx surpasses the legendary LMDB in terms of reliability, features and performance. https://github.com/erthink/libmdbx if BR2_PACKAGE_LIBMDBX config BR2_PACKAGE_LIBMDBX_TOOLS bool "install tools" help Install libmdbx tools for checking, dump, restore and show statistics of databases. config BR2_PACKAGE_LIBMDBX_CXX bool "C++ API" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 help Enable modern C++11/14/17/20 API for libmdbx. comment "libmdbx C++ support needs a toolchain w/ C++11, gcc >= 4.8 w/o bug#64735" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \ BR2_TOOLCHAIN_HAS_GCC_BUG_64735 endif comment "libmdbx needs MMU, a toolchain w/ threads, gcc >= 4.4 w/ 4-byte atomics" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HAS_SYNC_4 || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 ================================================ FILE: package/libmdbx/libmdbx.hash ================================================ # Hashes from: https://github.com/erthink/libmdbx/releases/ sha256 a8f2436c4d008886e044f568a22bda44329fb1c67f175d91a929ff8e2065340a libmdbx-amalgamated-0.10.3.tar.gz # Locally calculated sha256 310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569 LICENSE ================================================ FILE: package/libmdbx/libmdbx.mk ================================================ ################################################################################ # # libmdbx # ################################################################################ LIBMDBX_VERSION = 0.10.3 LIBMDBX_SOURCE = libmdbx-amalgamated-$(LIBMDBX_VERSION).tar.gz LIBMDBX_SITE = https://github.com/erthink/libmdbx/releases/download/v$(LIBMDBX_VERSION) LIBMDBX_SUPPORTS_IN_SOURCE_BUILD = NO LIBMDBX_LICENSE = OLDAP-2.8 LIBMDBX_LICENSE_FILES = LICENSE LIBMDBX_REDISTRIBUTE = YES LIBMDBX_STRIP_COMPONENTS = 0 LIBMDBX_INSTALL_STAGING = YES # Set CMAKE_BUILD_TYPE to Release to remove -Werror and avoid a build failure # with glibc < 2.12 LIBMDBX_CONF_OPTS = \ -DCMAKE_BUILD_TYPE=Release \ -DMDBX_INSTALL_MANPAGES=OFF \ -DBUILD_FOR_NATIVE_CPU=OFF \ -DMDBX_BUILD_CXX=$(if $(BR2_PACKAGE_LIBMDBX_CXX),ON,OFF) \ -DMDBX_BUILD_TOOLS=$(if $(BR2_PACKAGE_LIBMDBX_TOOLS),ON,OFF) ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y) LIBMDBX_CONF_OPTS += -DMDBX_INSTALL_STATIC=ON else LIBMDBX_CONF_OPTS += -DMDBX_INSTALL_STATIC=OFF endif ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) LIBMDBX_CONF_OPTS += \ -DMDBX_BUILD_SHARED_LIBRARY=ON \ -DMDBX_LINK_TOOLS_NONSTATIC=ON else LIBMDBX_CONF_OPTS += \ -DMDBX_BUILD_SHARED_LIBRARY=OFF \ -DMDBX_LINK_TOOLS_NONSTATIC=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/libmediaart/Config.in ================================================ comment "libmediaart needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_LIBMEDIAART bool "libmediaart" depends on BR2_USE_MMU # glib2 depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 select BR2_PACKAGE_LIBGLIB2 help Library tasked with managing, extracting and handling media art caches https://github.com/GNOME/libmediaart if BR2_PACKAGE_LIBMEDIAART choice prompt "media art backend" default BR2_PACKAGE_LIBMEDIAART_BACKEND_NONE config BR2_PACKAGE_LIBMEDIAART_BACKEND_NONE bool "none" help With no backend, libmediaart will not be able to process MP3 album art. config BR2_PACKAGE_LIBMEDIAART_BACKEND_GDK_PIXBUF bool "gdk-pixbuf" select BR2_PACKAGE_GDK_PIXBUF config BR2_PACKAGE_LIBMEDIAART_BACKEND_QT bool "Qt" depends on BR2_PACKAGE_QT5 select BR2_PACKAGE_QT5BASE_GUI comment "Qt backend depends on Qt5" depends on !BR2_PACKAGE_QT5 endchoice endif # BR2_PACKAGE_LIBMEDIAART ================================================ FILE: package/libmediaart/libmediaart.hash ================================================ # Hash from: http://ftp.gnome.org/pub/gnome/sources/libmediaart/1.9/libmediaart-1.9.4.sha256sum: sha256 a57be017257e4815389afe4f58fdacb6a50e74fd185452b23a652ee56b04813d libmediaart-1.9.4.tar.xz # Locally computed: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LESSER ================================================ FILE: package/libmediaart/libmediaart.mk ================================================ ################################################################################ # # libmediaart # ################################################################################ LIBMEDIAART_VERSION_MAJOR = 1.9 LIBMEDIAART_VERSION = $(LIBMEDIAART_VERSION_MAJOR).4 LIBMEDIAART_SOURCE = libmediaart-$(LIBMEDIAART_VERSION).tar.xz LIBMEDIAART_SITE = \ http://ftp.gnome.org/pub/gnome/sources/libmediaart/$(LIBMEDIAART_VERSION_MAJOR) LIBMEDIAART_LICENSE = LGPL-2.1+ LIBMEDIAART_LICENSE_FILES = COPYING.LESSER LIBMEDIAART_INSTALL_STAGING = YES LIBMEDIAART_DEPENDENCIES = libglib2 LIBMEDIAART_CONF_OPTS = --disable-unit-tests ifeq ($(BR2_PACKAGE_LIBMEDIAART_BACKEND_GDK_PIXBUF),y) LIBMEDIAART_DEPENDENCIES += gdk-pixbuf LIBMEDIAART_CONF_OPTS += \ --enable-gdkpixbuf \ --disable-qt else ifeq ($(BR2_PACKAGE_LIBMEDIAART_BACKEND_QT),y) # qt5 needs c++11 (since qt-5.7) LIBMEDIAART_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" LIBMEDIAART_DEPENDENCIES += qt5base LIBMEDIAART_CONF_OPTS += \ --disable-gdkpixbuf \ --enable-qt else ifeq ($(BR2_PACKAGE_LIBMEDIAART_BACKEND_NONE),y) LIBMEDIAART_CONF_OPTS += \ --disable-gdkpixbuf \ --disable-qt endif ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBMEDIAART_CONF_OPTS += --enable-introspection LIBMEDIAART_DEPENDENCIES += gobject-introspection else LIBMEDIAART_CONF_OPTS += --disable-introspection endif $(eval $(autotools-package)) ================================================ FILE: package/libmemcached/0001-disable-tests.patch ================================================ Disable the tests, cuts build time by half and avoids build issues with extra dependencies. Signed-off-by: Gustavo Zacarias diff -Nura libmemcached-1.0.18.orig/Makefile.am libmemcached-1.0.18/Makefile.am --- libmemcached-1.0.18.orig/Makefile.am 2014-07-19 09:24:45.246418899 -0300 +++ libmemcached-1.0.18/Makefile.am 2014-07-19 09:25:12.701349345 -0300 @@ -1,6 +1,6 @@ # vim:ft=automake -ACLOCAL_AMFLAGS= -I m4 -I libtest/m4 +ACLOCAL_AMFLAGS= -I m4 AM_YFLAGS= -d # includes append to these: @@ -45,8 +45,6 @@ include libmemcached-1.0/include.am else -include libtest/include.am - include libhashkit-1.0/include.am include libmemcached-1.0/include.am @@ -76,7 +74,6 @@ include libmemcachedinternal/util/include.am include rpm/include.mk include support/include.am -include tests/include.am include util/include.am include win32/include.am @@ -103,7 +100,7 @@ @echo "Files that need to be either removed or checked in:" @bzr unknowns -clean-local: clean-libtest-check clean-docs-check clean-rpm +clean-local: clean-docs-check clean-rpm lcov: lcov-clean check ================================================ FILE: package/libmemcached/0002-disable-sanitizer.patch ================================================ Disable sanitizer checks, they're busted. Signed-off-by: Gustavo Zacarias diff -Nura libmemcached-1.0.18.orig/m4/ax_harden_compiler_flags.m4 libmemcached-1.0.18/m4/ax_harden_compiler_flags.m4 --- libmemcached-1.0.18.orig/m4/ax_harden_compiler_flags.m4 2014-11-13 08:07:09.011614311 -0300 +++ libmemcached-1.0.18/m4/ax_harden_compiler_flags.m4 2014-11-13 08:07:52.406092440 -0300 @@ -222,8 +222,6 @@ # GCC 4.5 removed this. # _APPEND_COMPILE_FLAGS_ERROR([-Wunreachable-code]) - _SET_SANITIZE_FLAGS - AS_IF([test "x$ax_enable_debug" = xno], [AS_IF([test "x$ac_cv_vcs_checkout" = xyes], [AS_IF([test "x${host_os}" != "xmingw"], @@ -337,8 +335,6 @@ _APPEND_COMPILE_FLAGS_ERROR([-fstack-protector-all]) ])])])]) - _SET_SANITIZE_FLAGS - AS_IF([test "x$ac_cv_warnings_as_errors" = xyes], [AX_APPEND_FLAG([-Werror])]) AC_LANG_POP([C++]) ================================================ FILE: package/libmemcached/0003-move-ac_config_aux_dir.patch ================================================ Move AC_CONFIG_AUX_DIR up a few lines so the autotools can find it This patch is based on the same solution adopted by Debian: https://lists.debian.org/debian-release/2014/11/msg01231.html Signed-off-by: Vicente Olivert Riera diff -rup a/configure.ac b/configure.ac --- a/configure.ac 2014-02-09 11:52:42.000000000 +0000 +++ b/configure.ac 2015-01-06 15:07:10.003074775 +0000 @@ -13,11 +13,12 @@ m4_include([version.m4]) AC_PREREQ([2.61]) AC_INIT([libmemcached],VERSION_NUMBER,[http://libmemcached.org/]) +AC_CONFIG_AUX_DIR([build-aux]) + # Setup the compilers early on AC_PROG_CC([cc gcc clang]) AC_PROG_CXX([c++ g++ clang++]) -AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_HOST ================================================ FILE: package/libmemcached/0004-disable-doc-and-man.patch ================================================ From 6c01bd3562cc18fbafdf950bbeb73a399c1adcdd Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Tue, 12 May 2015 00:00:02 +0200 Subject: [PATCH] disable doc and man WARNING: master file /home/naourr/git/buildroot/test/libmemcached-bfin/build/libmemcached-1.0.18/docs/index.rst not found Exception occurred: File "/usr/lib/python2.7/site-packages/sphinx/environment.py", line 1213, in get_doctree f = open(doctree_filename, 'rb') IOError: [Errno 2] No such file or directory: '/home/naourr/buildroot-test/test/libmemcached-bfin/build/libmemcached-1.0.18/man/.doctrees/hashkit_create.doctree' The full traceback has been saved in /tmp/sphinx-err-JCIsnB.log, if you want to report the issue to the developers. Please also report this if it was a user error, so that a better error message can be provided next time. Either send bugs to the mailing list at , or report them in the tracker at . Thanks! Signed-off-by: Romain Naour --- Makefile.am | 2 -- 1 file changed, 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 7f44102..cb7d058 100644 --- a/Makefile.am +++ b/Makefile.am @@ -55,8 +55,6 @@ endif include libmemcachedutil-1.0/include.am include clients/include.am -include docs/include.am -include man/include.am if BUILD_LIBMEMCACHED_PROTOCOL include example/include.am -- 1.9.3 ================================================ FILE: package/libmemcached/0005-fix-pointer-comparaison.patch ================================================ Fix pointer comparaison opt_servers is a pointer, not a boolean, so testing against false to know if the pointer is NULL no longer works with the more strict gcc 7.x checks. [Taken from http://pkgs.fedoraproject.org/cgit/rpms/libmemcached.git/plain/libmemcached-build.patch.] Signed-off-by: Thomas Petazzoni diff -up ./clients/memflush.cc.old ./clients/memflush.cc --- ./clients/memflush.cc.old 2017-02-12 10:12:59.615209225 +0100 +++ ./clients/memflush.cc 2017-02-12 10:13:39.998382783 +0100 @@ -39,7 +39,7 @@ int main(int argc, char *argv[]) { options_parse(argc, argv); - if (opt_servers == false) + if (!opt_servers) { char *temp; @@ -48,7 +48,7 @@ int main(int argc, char *argv[]) opt_servers= strdup(temp); } - if (opt_servers == false) + if (!opt_servers) { std::cerr << "No Servers provided" << std::endl; exit(EXIT_FAILURE); ================================================ FILE: package/libmemcached/Config.in ================================================ config BR2_PACKAGE_LIBMEMCACHED bool "libmemcached" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS help libMemcached is an open source C/C++ client library and tools for the memcached server. It has been designed to be light on memory usage, thread safe, and provide full access to server side methods. http://libmemcached.org/libMemcached.html comment "libmemcached needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libmemcached/libmemcached.hash ================================================ # From https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz/+md5 md5 b3958716b4e53ddc5992e6c49d97e819 libmemcached-1.0.18.tar.gz # Hash for license file: sha256 4e9032d0f539276db05519ee3d09ca6167d2134ec91c556e8c80ef3efe633fd2 COPYING ================================================ FILE: package/libmemcached/libmemcached.mk ================================================ ################################################################################ # # libmemcached # ################################################################################ LIBMEMCACHED_VERSION_MAJOR = 1.0 LIBMEMCACHED_VERSION = $(LIBMEMCACHED_VERSION_MAJOR).18 LIBMEMCACHED_SITE = http://launchpad.net/libmemcached/$(LIBMEMCACHED_VERSION_MAJOR)/$(LIBMEMCACHED_VERSION)/+download LIBMEMCACHED_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' \ ax_cv_check_cflags__Werror__fmudflapth=no \ ax_cv_check_cxxflags__Werror__fmudflapth=no LIBMEMCACHED_CONF_OPTS = --disable-dtrace LIBMEMCACHED_INSTALL_STAGING = YES LIBMEMCACHED_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBEVENT),libevent) # For 0001-disable-tests.patch and 0002-disable-sanitizer.patch LIBMEMCACHED_AUTORECONF = YES LIBMEMCACHED_LICENSE = BSD-3-Clause LIBMEMCACHED_LICENSE_FILES = COPYING ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) LIBMEMCACHED_CONF_ENV += \ ax_cv_check_cflags__Werror__fPIE=no \ ax_cv_check_cflags__Werror__pie=no \ ax_cv_check_cxxflags__Werror__fPIE=no \ ax_cv_check_cxxflags__Werror__pie=no endif $(eval $(autotools-package)) ================================================ FILE: package/libmhash/Config.in ================================================ config BR2_PACKAGE_LIBMHASH bool "libmhash" help Mhash is a free (under GNU Lesser GPL) library which provides a uniform interface to a large number of hash algorithms. These algorithms can be used to compute checksums, message digests, and other signatures. http://mhash.sourceforge.net/ ================================================ FILE: package/libmhash/libmhash.hash ================================================ # Locally computed: sha256 56521c52a9033779154432d0ae47ad7198914785265e1f570cee21ab248dfef0 mhash-0.9.9.9.tar.bz2 sha256 d245807f90032872d1438d741ed21e2490e1175dc8aa3afa5ddb6c8e529b58e5 COPYING ================================================ FILE: package/libmhash/libmhash.mk ================================================ ################################################################################ # # libmhash # ################################################################################ LIBMHASH_VERSION = 0.9.9.9 LIBMHASH_SITE = http://downloads.sourceforge.net/project/mhash/mhash/$(LIBMHASH_VERSION) LIBMHASH_SOURCE = mhash-$(LIBMHASH_VERSION).tar.bz2 LIBMHASH_INSTALL_STAGING = YES LIBMHASH_LICENSE = LGPL-2.0 LIBMHASH_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libmicrohttpd/Config.in ================================================ config BR2_PACKAGE_LIBMICROHTTPD bool "libmicrohttpd" help GNU libmicrohttpd is a small C library that makes it easy to run an HTTP server as part of another application. http://www.gnu.org/software/libmicrohttpd/ if BR2_PACKAGE_LIBMICROHTTPD config BR2_PACKAGE_LIBMICROHTTPD_SSL bool "https support" depends on !BR2_STATIC_LIBS # gnutls depends on BR2_USE_WCHAR select BR2_PACKAGE_GNUTLS help Enable HTTPS (SSL) support. comment "libmicrohttpd https support needs a toolchain w/ wchar, dynamic library" depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS endif ================================================ FILE: package/libmicrohttpd/libmicrohttpd.hash ================================================ # Locally calculated sha256 a37b2f1b88fd1bfe74109586be463a434d34e773530fc2a74364cfcf734c032e libmicrohttpd-0.9.73.tar.gz sha256 7399547209438c93f9b90297954698773d4846cea44cde5ca982c84c45952a3b COPYING ================================================ FILE: package/libmicrohttpd/libmicrohttpd.mk ================================================ ################################################################################ # # libmicrohttpd # ################################################################################ LIBMICROHTTPD_VERSION = 0.9.73 LIBMICROHTTPD_SITE = $(BR2_GNU_MIRROR)/libmicrohttpd LIBMICROHTTPD_LICENSE_FILES = COPYING LIBMICROHTTPD_CPE_ID_VENDOR = gnu LIBMICROHTTPD_INSTALL_STAGING = YES LIBMICROHTTPD_CONF_OPTS = --disable-curl --disable-examples LIBMICROHTTPD_CFLAGS = $(TARGET_CFLAGS) -std=c99 LIBMICROHTTPD_CONF_ENV += CFLAGS="$(LIBMICROHTTPD_CFLAGS)" ifeq ($(BR2_PACKAGE_LIBMICROHTTPD_SSL),y) LIBMICROHTTPD_LICENSE = LGPL-2.1+ LIBMICROHTTPD_DEPENDENCIES += host-pkgconf gnutls LIBMICROHTTPD_CONF_OPTS += --enable-https --with-gnutls=$(STAGING_DIR)/usr else LIBMICROHTTPD_LICENSE = LGPL-2.1+ or eCos LIBMICROHTTPD_CONF_OPTS += --disable-https endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) LIBMICROHTTPD_CONF_OPTS += --with-threads=auto else LIBMICROHTTPD_CONF_OPTS += --with-threads=none endif $(eval $(autotools-package)) ================================================ FILE: package/libminiupnpc/Config.in ================================================ 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 ================================================ FILE: package/libminiupnpc/libminiupnpc.hash ================================================ # Locally computed sha256 69f72fe355f911b807915f78dcfc0af772c0f22bc7ab1157e70f334e37db7d39 miniupnpc-2.1.20201016.tar.gz sha256 0b476c395af6dd21eeb54c40a21d22e1c11a751fbd2dd17a41ce26e370be88d5 LICENSE ================================================ FILE: package/libminiupnpc/libminiupnpc.mk ================================================ ################################################################################ # # libminiupnpc # ################################################################################ LIBMINIUPNPC_VERSION_MAJOR = 2.1 LIBMINIUPNPC_VERSION_MINOR = 20201016 LIBMINIUPNPC_VERSION = $(LIBMINIUPNPC_VERSION_MAJOR).$(LIBMINIUPNPC_VERSION_MINOR) LIBMINIUPNPC_SOURCE = miniupnpc-$(LIBMINIUPNPC_VERSION).tar.gz LIBMINIUPNPC_SITE = http://miniupnp.free.fr/files LIBMINIUPNPC_INSTALL_STAGING = YES LIBMINIUPNPC_LICENSE = BSD-3-Clause LIBMINIUPNPC_LICENSE_FILES = LICENSE LIBMINIUPNPC_CPE_ID_VENDOR = miniupnp_project LIBMINIUPNPC_CPE_ID_PRODUCT = miniupnpc LIBMINIUPNPC_CPE_ID_VERSION = $(LIBMINIUPNPC_VERSION_MAJOR) LIBMINIUPNPC_CPE_ID_UPDATE = $(LIBMINIUPNPC_VERSION_MINOR) $(eval $(cmake-package)) ================================================ FILE: package/libmms/Config.in ================================================ config BR2_PACKAGE_LIBMMS bool "libmms" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 select BR2_PACKAGE_LIBGLIB2 help LibMMS is a common library for parsing mms:// and mmsh:// type network streams. These are commonly used to stream Windows Media Video content over the web. LibMMS itself is only for receiving MMS stream, it doesn't handle sending at all. http://launchpad.net/libmms comment "libmms needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libmms/libmms.hash ================================================ # Locally computed: sha256 3c05e05aebcbfcc044d9e8c2d4646cd8359be39a3f0ba8ce4e72a9094bee704f libmms-0.6.4.tar.gz sha256 d80c9d084ebfb50ea1ed91bfbc2410d6ce542097a32c43b00781b83adcb8c77f COPYING.LIB ================================================ FILE: package/libmms/libmms.mk ================================================ ################################################################################ # # libmms # ################################################################################ LIBMMS_VERSION = 0.6.4 LIBMMS_SITE = http://downloads.sourceforge.net/project/libmms/libmms/$(LIBMMS_VERSION) LIBMMS_INSTALL_STAGING = YES LIBMMS_DEPENDENCIES = host-pkgconf libglib2 LIBMMS_LICENSE = LGPL-2.1+ LIBMMS_LICENSE_FILES = COPYING.LIB LIBMMS_CPE_ID_VENDOR = libmms_project $(eval $(autotools-package)) ================================================ FILE: package/libmng/0001-jpeg-9a.patch ================================================ Adaptation from gentoo patch for libmng 2.0.3 See https://bugs.gentoo.org/show_bug.cgi?id=520906 Signed-off-by: Gustavo Zacarias diff -Nura libmng-2.0.3.orig/libmng_types.h libmng-2.0.3/libmng_types.h --- libmng-2.0.3.orig/libmng_types.h 2015-09-24 10:32:05.500984924 -0300 +++ libmng-2.0.3/libmng_types.h 2015-09-24 10:33:11.145254771 -0300 @@ -200,13 +200,6 @@ #undef FAR /* possibly defined by zlib or lcms */ #endif #define JPEG_INTERNAL_OPTIONS /* for RGB_PIXELSIZE */ -/* There has been a change in jpeg-9 : */ -#if !defined(HAVE_BOOLEAN) && !defined(_WIN32) -#define HAVE_BOOLEAN -#endif -#ifndef _WIN32 -typedef int boolean; -#endif /* For jpegsrc.v09a: */ #include #include ================================================ FILE: package/libmng/Config.in ================================================ config BR2_PACKAGE_LIBMNG bool "libmng" select BR2_PACKAGE_JPEG select BR2_PACKAGE_ZLIB help The reference library for reading, displaying, writing and examining Multiple-Image Network Graphics. http://sourceforge.net/projects/libmng/ ================================================ FILE: package/libmng/libmng.hash ================================================ # From http://sourceforge.net/projects/libmng/files/libmng-devel/2.0.3/ md5 e9e899adb1b681b17f14d91e261878c5 libmng-2.0.3.tar.xz sha1 0f141482ffcef6f8cd4413f945a59310ac2e49af libmng-2.0.3.tar.xz # Hash for license file: sha256 ba280734838eb3f22a85b92a7e62de357d4d4c325029dce723b0cb125c417c35 LICENSE ================================================ FILE: package/libmng/libmng.mk ================================================ ################################################################################ # # libmng # ################################################################################ LIBMNG_VERSION = 2.0.3 LIBMNG_SITE = http://downloads.sourceforge.net/project/libmng/libmng-devel/$(LIBMNG_VERSION) LIBMNG_SOURCE = libmng-$(LIBMNG_VERSION).tar.xz LIBMNG_DEPENDENCIES = jpeg zlib LIBMNG_CONF_OPTS = --without-lcms LIBMNG_INSTALL_STAGING = YES LIBMNG_LICENSE = libmng license LIBMNG_LICENSE_FILES = LICENSE ifeq ($(BR2_PACKAGE_LCMS2),y) LIBMNG_DEPDENDENCIES += lcms2 else LIBMNG_CONF_OPTS += --without-lcms2 endif $(eval $(autotools-package)) ================================================ FILE: package/libmnl/Config.in ================================================ config BR2_PACKAGE_LIBMNL bool "libmnl" help libmnl is a minimalistic user-space library oriented to Netlink developers. http://netfilter.org/projects/libmnl/ ================================================ FILE: package/libmnl/libmnl.hash ================================================ # From ftp://ftp.netfilter.org/pub/libmnl/libmnl-1.0.4.tar.bz2.{md5sum,sha1sum} md5 be9b4b5328c6da1bda565ac5dffadb2d libmnl-1.0.4.tar.bz2 sha1 2db40dea612e88c62fd321906be40ab5f8f1685a libmnl-1.0.4.tar.bz2 # Hash for license file: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/libmnl/libmnl.mk ================================================ ################################################################################ # # libmnl # ################################################################################ LIBMNL_VERSION = 1.0.4 LIBMNL_SOURCE = libmnl-$(LIBMNL_VERSION).tar.bz2 LIBMNL_SITE = http://netfilter.org/projects/libmnl/files LIBMNL_INSTALL_STAGING = YES LIBMNL_LICENSE = LGPL-2.1+ LIBMNL_LICENSE_FILES = COPYING LIBMNL_CPE_ID_VENDOR = netfilter $(eval $(autotools-package)) ================================================ FILE: package/libmodbus/Config.in ================================================ config BR2_PACKAGE_LIBMODBUS bool "libmodbus" help libmodbus is a free software library to send/receive data according to the Modbus protocol. This library is written in C and supports RTU (serial) and TCP (Ethernet) communications. http://libmodbus.org ================================================ FILE: package/libmodbus/libmodbus.hash ================================================ # Locally computed sha256 d7d9fa94a16edb094e5fdf5d87ae17a0dc3f3e3d687fead81835d9572cf87c16 libmodbus-3.1.6.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LESSER ================================================ FILE: package/libmodbus/libmodbus.mk ================================================ ################################################################################ # # libmodbus # ################################################################################ LIBMODBUS_VERSION = 3.1.6 LIBMODBUS_SITE = http://libmodbus.org/releases LIBMODBUS_LICENSE = LGPL-2.1+ LIBMODBUS_LICENSE_FILES = COPYING.LESSER LIBMODBUS_CPE_ID_VENDOR = libmodbus LIBMODBUS_INSTALL_STAGING = YES LIBMODBUS_CONF_OPTS = --without-documentation --disable-tests $(eval $(autotools-package)) ================================================ FILE: package/libmodplug/Config.in ================================================ config BR2_PACKAGE_LIBMODPLUG bool "libmodplug" depends on BR2_INSTALL_LIBSTDCPP help MOD music file decoder http://modplug-xmms.sourceforge.net/ comment "libmodplug needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/libmodplug/libmodplug.hash ================================================ # Locally computed: sha256 457ca5a6c179656d66c01505c0d95fafaead4329b9dbaa0f997d00a3508ad9de libmodplug-0.8.9.0.tar.gz sha256 49942e7b3b175f549e751feb08b5270ca6f6c5fb7a1be9f9517db275ec32c92e COPYING ================================================ FILE: package/libmodplug/libmodplug.mk ================================================ ################################################################################ # # libmodplug # ################################################################################ LIBMODPLUG_VERSION = 0.8.9.0 LIBMODPLUG_SITE = http://downloads.sourceforge.net/project/modplug-xmms/libmodplug/$(LIBMODPLUG_VERSION) LIBMODPLUG_INSTALL_STAGING = YES LIBMODPLUG_LICENSE = Public Domain LIBMODPLUG_LICENSE_FILES = COPYING LIBMODPLUG_CPE_ID_VENDOR = konstanty_bialkowski $(eval $(autotools-package)) ================================================ FILE: package/libmodsecurity/0001-configure.ac-drop-usage-of-git-at-configure-time.patch ================================================ From a2116312068b6b2c5732dfebde19b751cc81d4f3 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 1 Aug 2021 23:21:35 +0200 Subject: [PATCH] configure.ac: drop usage of git at configure time The usage of git is only to print some messages at configure time, which is not very useful, and causes a significant number of warning when regenerating the configure script. Signed-off-by: Thomas Petazzoni --- configure.ac | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/configure.ac b/configure.ac index 20163e1e..14e5892a 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,6 @@ # Get the hash of the last commit, to be used if it is not an # official release. -AC_DEFUN([MSC_GIT_HASH], m4_esyscmd_s(git log -1 --format="%h" --abbrev-commit)) AC_DEFUN([MSC_MAJOR], m4_esyscmd_s(cat headers/modsecurity/modsecurity.h | grep "define MODSECURITY_MAJOR " | awk {'print $3'} | sed 's/\"//g')) AC_DEFUN([MSC_MINOR], m4_esyscmd_s(cat headers/modsecurity/modsecurity.h | grep "define MODSECURITY_MINOR " | awk {'print $3'} | sed 's/\"//g')) AC_DEFUN([MSC_PATCHLEVEL], m4_esyscmd_s(cat headers/modsecurity/modsecurity.h | grep "define MODSECURITY_PATCHLEVEL " | awk {'print $3'} | sed 's/\"//g')) @@ -25,9 +24,6 @@ m4_define([msc_version], m4_define([msc_version_with_patchlevel], [msc_version_major.msc_version_minor.msc_version_patchlevel]) -m4_define([msc_version_git], - [m4_esyscmd_s(git describe)]) - m4_define([msc_version_info], [msc_version_c_plus_a:msc_version_patchlevel:msc_version_minor]) @@ -73,11 +69,6 @@ AC_MSG_ERROR([\ ]) fi -# Libinjection version -AC_DEFUN([LIBINJECTION_VERSION], m4_esyscmd_s(cd "others/libinjection" && git describe && cd ../..)) - -# SecLang test version -AC_DEFUN([SECLANG_TEST_VERSION], m4_esyscmd_s(cd "test/test-cases/secrules-language-tests" && git log -1 --format="%h" --abbrev-commit && cd ../../..)) # Check for yajl @@ -217,10 +208,6 @@ AC_SUBST([MSC_VERSION_WITH_PATCHLEVEL]) MSC_VERSION=msc_version AC_SUBST([MSC_VERSION]) -MSC_GIT_VERSION=msc_version_git -AC_SUBST([MSC_GIT_VERSION]) - - AC_ARG_ENABLE(debug-logs, [AC_HELP_STRING([--disable-debug-logs],[Turn off the SecDebugLog feature])], @@ -412,16 +399,6 @@ AC_OUTPUT # Print a fancy summary -echo " " -echo " " -echo "ModSecurity - ${MSC_GIT_VERSION} for $PLATFORM" -echo " " -echo " Mandatory dependencies" -echo -n " + libInjection ...." -echo LIBINJECTION_VERSION -echo -n " + SecLang tests ...." -echo SECLANG_TEST_VERSION - echo " " echo " Optional dependencies" -- 2.31.1 ================================================ FILE: package/libmodsecurity/0002-modsecurity.pc.in-add-lstdc.patch ================================================ From 1a84881b280eb08852d5495c57e44351a40d3f91 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 26 Jul 2021 00:24:57 +0200 Subject: [PATCH] modsecurity.pc.in: add -lstdc++ Add -lstdc++ to Libs.Private to avoid the following static build failure with nginx: /home/buildroot/autobuild/instance-2/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/10.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: /home/buildroot/autobuild/instance-2/output-1/host/bin/../xtensa-buildroot-linux-uclibc/sysroot/usr/lib/libmodsecurity.a(libmodsecurity_la-transaction.o): in function `std::basic_streambuf >::sbumpc() [clone .isra.0]': transaction.cc:(.text+0x40): undefined reference to `std::__cxx11::basic_string, std::allocator >::_M_dispose()' Fixes: - http://autobuild.buildroot.org/results/e5a9eb8448980f1c5cafe97180b7d1f48ddf02ca Signed-off-by: Fabrice Fontaine --- modsecurity.pc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modsecurity.pc.in b/modsecurity.pc.in index 96cdf5ca..7c895ddc 100644 --- a/modsecurity.pc.in +++ b/modsecurity.pc.in @@ -8,4 +8,4 @@ Description: ModSecurity API Version: @MSC_VERSION_WITH_PATCHLEVEL@ Cflags: -I@includedir@ Libs: -L@libdir@ -lmodsecurity -Libs.private: @CURL_LDADD@ @GEOIP_LDADD@ @MAXMIND_LDADD@ @GLOBAL_LDADD@ @LIBXML2_LDADD@ @LMDB_LDADD@ @LUA_LDADD@ @PCRE_LDADD@ @SSDEEP_LDADD@ @YAJL_LDADD@ +Libs.private: @CURL_LDADD@ @GEOIP_LDADD@ @MAXMIND_LDADD@ @GLOBAL_LDADD@ @LIBXML2_LDADD@ @LMDB_LDADD@ @LUA_LDADD@ @PCRE_LDADD@ @SSDEEP_LDADD@ @YAJL_LDADD@ -lstdc++ -- 2.30.2 ================================================ FILE: package/libmodsecurity/0003-Revert-Fix-maxminddb-link-on-FreeBSD.patch ================================================ From 6737dc133cb4811a000c02b4e0a92b72f0b220ee Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 16 Jul 2021 19:12:51 +0200 Subject: [PATCH] Revert "Fix maxminddb link on FreeBSD" This reverts commit 785958f9b5089b918c7d054cbcc2fe4a3c7b3788. Signed-off-by: Fabrice Fontaine --- build/libmaxmind.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/libmaxmind.m4 b/build/libmaxmind.m4 index 656fc250..02820b5a 100644 --- a/build/libmaxmind.m4 +++ b/build/libmaxmind.m4 @@ -10,7 +10,7 @@ dnl MAXMIND_VERSION AC_DEFUN([PROG_MAXMIND], [ # Possible names for the maxmind library/package (pkg-config) -MAXMIND_POSSIBLE_LIB_NAMES="maxminddb maxmind" +MAXMIND_POSSIBLE_LIB_NAMES="libmaxminddb maxminddb maxmind" # Possible extensions for the library MAXMIND_POSSIBLE_EXTENSIONS="so la sl dll dylib" -- 2.30.2 ================================================ FILE: package/libmodsecurity/Config.in ================================================ config BR2_PACKAGE_LIBMODSECURITY bool "libmodsecurity" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_PCRE help Libmodsecurity is one component of the ModSecurity v3 project. The library codebase serves as an interface to ModSecurity Connectors taking in web traffic and applying traditional ModSecurity processing. In general, it provides the capability to load/interpret rules written in the ModSecurity SecRules format and apply them to HTTP content provided by your application via Connectors. https://github.com/SpiderLabs/ModSecurity comment "libmodsecurity needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libmodsecurity/libmodsecurity.hash ================================================ # From https://github.com/SpiderLabs/ModSecurity/releases/download/v3.0.6/modsecurity-v3.0.6.tar.gz.sha256 sha256 06315d9a32fc830997178f30a69e933c9c2364b263a2f036959bebc4dde59a08 modsecurity-v3.0.6.tar.gz # Localy calculated sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE ================================================ FILE: package/libmodsecurity/libmodsecurity.mk ================================================ ################################################################################ # # libmodsecurity # ################################################################################ LIBMODSECURITY_VERSION = 3.0.6 LIBMODSECURITY_SOURCE = modsecurity-v$(LIBMODSECURITY_VERSION).tar.gz LIBMODSECURITY_SITE = https://github.com/SpiderLabs/ModSecurity/releases/download/v$(LIBMODSECURITY_VERSION) LIBMODSECURITY_INSTALL_STAGING = YES LIBMODSECURITY_LICENSE = Apache-2.0 LIBMODSECURITY_LICENSE_FILES = LICENSE LIBMODSECURITY_CPE_ID_VENDOR = trustwave LIBMODSECURITY_CPE_ID_PRODUCT = modsecurity # We're patching build/libmaxmind.m4 LIBMODSECURITY_AUTORECONF = YES LIBMODSECURITY_DEPENDENCIES = pcre LIBMODSECURITY_CONF_OPTS = \ --with-pcre="$(STAGING_DIR)/usr/bin/pcre-config" \ --disable-examples \ --without-lmdb \ --without-ssdeep \ --without-lua \ --without-yajl ifeq ($(BR2_PACKAGE_LIBXML2),y) LIBMODSECURITY_DEPENDENCIES += libxml2 LIBMODSECURITY_CONF_OPTS += --with-libxml="$(STAGING_DIR)/usr/bin/xml2-config" else LIBMODSECURITY_CONF_OPTS += --without-libxml endif ifeq ($(BR2_PACKAGE_LIBCURL),y) LIBMODSECURITY_DEPENDENCIES += libcurl LIBMODSECURITY_CONF_OPTS += --with-curl="$(STAGING_DIR)/usr/bin/curl-config" else LIBMODSECURITY_CONF_OPTS += --without-curl endif ifeq ($(BR2_PACKAGE_GEOIP),y) LIBMODSECURITY_DEPENDENCIES += geoip LIBMODSECURITY_CONF_OPTS += --with-geoip else LIBMODSECURITY_CONF_OPTS += --without-geoip endif ifeq ($(BR2_PACKAGE_LIBMAXMINDDB),y) LIBMODSECURITY_DEPENDENCIES += libmaxminddb LIBMODSECURITY_CONF_OPTS += --with-maxmind else LIBMODSECURITY_CONF_OPTS += --without-maxmind endif LIBMODSECURITY_CXXFLAGS = $(TARGET_CXXFLAGS) # m68k_cf can't use -fPIC that libmodsecurity forces to use, so we need # to disable it to avoid a build failure. ifeq ($(BR2_m68k_cf),y) LIBMODSECURITY_CXXFLAGS += -fno-PIC endif LIBMODSECURITY_CONF_OPTS += CXXFLAGS="$(LIBMODSECURITY_CXXFLAGS)" $(eval $(autotools-package)) ================================================ FILE: package/libmpd/0001-Fix-build-on-archlinux-missing-include.patch ================================================ From 4f946c01000fd97100e4a534b47f9c7ace0403df Mon Sep 17 00:00:00 2001 From: QC Date: Thu, 9 Oct 2014 19:51:50 +0200 Subject: [PATCH] Fix build on archlinux (missing include) Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/DaveDavenport/libmpd/commit/4f946c01000fd97100e4a534b47f9c7ace0403df] --- src/libmpd-internal.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libmpd-internal.h b/src/libmpd-internal.h index c84c3a4..30cdc85 100644 --- a/src/libmpd-internal.h +++ b/src/libmpd-internal.h @@ -21,6 +21,7 @@ #define __MPD_INTERNAL_LIB_ #include "libmpdclient.h" +#include struct _MpdData_real; typedef struct _MpdData_real { ================================================ FILE: package/libmpd/Config.in ================================================ config BR2_PACKAGE_LIBMPD bool "libmpd" 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_LIBICONV if !BR2_ENABLE_LOCALE help High-level client library for accessing Music Player Daemon. LibMpd is a library that provides high-level, callback-based access to Music Player Daemon (mpd). http://gmpcwiki.sarine.nl/index.php?title=Libmpd comment "libmpd needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libmpd/libmpd.hash ================================================ # Locally calculated sha256 fe20326b0d10641f71c4673fae637bf9222a96e1712f71f170fca2fc34bf7a83 libmpd-11.8.17.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/libmpd/libmpd.mk ================================================ ################################################################################ # # libmpd # ################################################################################ LIBMPD_VERSION_MAJOR = 11.8 LIBMPD_VERSION = $(LIBMPD_VERSION_MAJOR).17 LIBMPD_SITE = http://download.sarine.nl/Programs/gmpc/$(LIBMPD_VERSION_MAJOR) LIBMPD_INSTALL_STAGING = YES LIBMPD_DEPENDENCIES = libglib2 LIBMPD_LICENSE = GPL-2.0+ LIBMPD_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libmpdclient/Config.in ================================================ config BR2_PACKAGE_LIBMPDCLIENT bool "libmpdclient" help A stable, documented, asynchronous API library for interfacing MPD in the C, C++ & Objective C languages. http://www.musicpd.org/libs/libmpdclient/ ================================================ FILE: package/libmpdclient/libmpdclient.hash ================================================ # Verified against http://www.musicpd.org/download/libmpdclient/2/libmpdclient-2.19.tar.xz.sig, sha256 locally computed sha256 158aad4c2278ab08e76a3f2b0166c99b39fae00ee17231bd225c5a36e977a189 libmpdclient-2.19.tar.xz sha256 9574c3b0a9c31723cc3d5f32af4655a015fff5ec6ec8115b7906cd7d9623cf32 COPYING ================================================ FILE: package/libmpdclient/libmpdclient.mk ================================================ ################################################################################ # # libmpdclient # ################################################################################ LIBMPDCLIENT_VERSION_MAJOR = 2 LIBMPDCLIENT_VERSION = $(LIBMPDCLIENT_VERSION_MAJOR).19 LIBMPDCLIENT_SOURCE = libmpdclient-$(LIBMPDCLIENT_VERSION).tar.xz LIBMPDCLIENT_SITE = http://www.musicpd.org/download/libmpdclient/$(LIBMPDCLIENT_VERSION_MAJOR) LIBMPDCLIENT_INSTALL_STAGING = YES LIBMPDCLIENT_LICENSE = BSD-3-Clause LIBMPDCLIENT_LICENSE_FILES = COPYING $(eval $(meson-package)) ================================================ FILE: package/libmpeg2/0001-altivec.patch ================================================ [PATCH] fix altivec.h detection Patch from Gentoo: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-libs/libmpeg2/files/libmpeg2-0.5.1-altivec.patch?revision=1.1&view=markup Signed-off-by: Peter Korsgaard --- a/configure.ac.bak 2010-05-25 17:12:14.756245990 +0000 +++ b/configure.ac 2010-05-25 17:11:51.629581723 +0000 @@ -79,11 +79,10 @@ CFLAGS="$OPT_CFLAGS $TRY_CFLAGS $CFLAGS" AC_MSG_CHECKING([if is needed]) AC_TRY_COMPILE([], - [typedef vector int t; - vec_ld(0, (unsigned char *)0);], + [vector int t; t = vec_add(t,t);], [have_altivec=yes; AC_MSG_RESULT(no)], [AC_TRY_COMPILE([#include ], - [typedef vector int t; vec_ld(0, (unsigned char *)0);], + [vector int t; t = vec_add(t,t);], [AC_DEFINE([HAVE_ALTIVEC_H],, [Define to 1 if you have the header.]) have_altivec=yes; AC_MSG_RESULT(yes)], ================================================ FILE: package/libmpeg2/0002-armv4l.patch ================================================ Patch taken from gentoo. Signed-off-by: Gustavo Zacarias diff -urNp libmpeg2.orig/libmpeg2/motion_comp_arm_s.S libmpeg2/libmpeg2/motion_comp_arm_s.S --- libmpeg2.orig/libmpeg2/motion_comp_arm_s.S 2008-07-09 21:16:05.000000000 +0200 +++ libmpeg2/libmpeg2/motion_comp_arm_s.S 2009-11-20 19:55:22.000000000 +0100 @@ -19,6 +19,16 @@ @ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +@ Data preload is supported only by ARM V5TE and above + +#if (defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \ + || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \ + || defined (__ARM_ARCH_4T__) || defined (__ARM_ARCH_5__) \ + || defined (__ARM_ARCH_5T__)) +.macro pld reg +.endm +#endif + .text @ ---------------------------------------------------------------- ================================================ FILE: package/libmpeg2/0003-fix-arm-detection.patch ================================================ Improve the ARM detection to work on Thumb-only architecture The ARM-specific assembly code doesn't build on Thumb-only architectures such as ARMv7-M, but the configure script assumes that if the host tuple is arm*, then it can build and use the ARM optimized code. This patch improves the configure.ac detection logic, by building one of the instruction of the optimized assembly code, and using this to decide whether or not the optimizations should be enabled. Signed-off-by: Thomas Petazzoni Index: b/configure.ac =================================================================== --- a/configure.ac +++ b/configure.ac @@ -101,8 +101,10 @@ alpha*) AC_DEFINE([ARCH_ALPHA],,[alpha architecture]);; arm*) - arm_conditional=: - AC_DEFINE([ARCH_ARM],,[ARM architecture]);; + AC_TRY_LINK([], [asm(".syntax divided\nstmfd sp!,{r4-r11,lr}")], + [AC_DEFINE([ARCH_ARM],,[ARM architecture]) + use_arm_optimization=yes], + [use_arm_optimization=no]) esac elif test x"$CC" = x"tendracc"; then dnl TenDRA portability checking compiler @@ -122,7 +124,7 @@ esac fi -AM_CONDITIONAL(ARCH_ARM, ${arm_conditional}) +AM_CONDITIONAL(ARCH_ARM, test "${use_arm_optimization}" = "yes") dnl Checks for libtool - this must be done after we set cflags AC_LIBTOOL_WIN32_DLL ================================================ FILE: package/libmpeg2/0004-fix-sparc.patch ================================================ Do not use sparcv9 optimization flags for sparcv8 builds Signed-off-by: Waldemar Brodkorb diff -Nur libmpeg2-0.5.1.orig/configure.ac libmpeg2-0.5.1/configure.ac --- libmpeg2-0.5.1.orig/configure.ac 2008-07-18 16:30:17.000000000 +0200 +++ libmpeg2-0.5.1/configure.ac 2017-04-26 21:09:15.780838339 +0200 @@ -95,7 +95,7 @@ break fi done;; - sparc-* | sparc64-*) + sparc64-*) AC_DEFINE([ARCH_SPARC],,[sparc architecture]) TRY_CFLAGS="$OPT_CFLAGS -mcpu=ultrasparc -mvis" AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"]);; ================================================ FILE: package/libmpeg2/Config.in ================================================ config BR2_PACKAGE_LIBMPEG2 bool "libmpeg2" help MPEG1/MPEG2 video decoder library http://libmpeg2.sourceforge.net/ if BR2_PACKAGE_LIBMPEG2 config BR2_PACKAGE_LIBMPEG2_BINS bool "mpeg2 binaries" help Install mpeg2dec, corrupt_mpeg2 and extract_mpeg2 programs as well. endif ================================================ FILE: package/libmpeg2/libmpeg2.hash ================================================ # Locally computed: sha256 dee22e893cb5fc2b2b6ebd60b88478ab8556cb3b93f9a0d7ce8f3b61851871d4 libmpeg2-0.5.1.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/libmpeg2/libmpeg2.mk ================================================ ################################################################################ # # libmpeg2 # ################################################################################ LIBMPEG2_VERSION = 0.5.1 LIBMPEG2_SITE = http://libmpeg2.sourceforge.net/files LIBMPEG2_LICENSE = GPL-2.0+ LIBMPEG2_LICENSE_FILES = COPYING LIBMPEG2_INSTALL_STAGING = YES LIBMPEG2_AUTORECONF = YES LIBMPEG2_CONF_OPTS = --without-x --disable-directx ifeq ($(BR2_PACKAGE_SDL),y) LIBMPEG2_CONF_ENV += ac_cv_prog_SDLCONFIG=$(STAGING_DIR)/usr/bin/sdl-config LIBMPEG2_CONF_OPTS += --enable-sdl LIBMPEG2_DEPENDENCIES += sdl else LIBMPEG2_CONF_OPTS += --disable-sdl endif ifneq ($(BR2_PACKAGE_LIBMPEG2_BINS),y) define LIBMPEG2_REMOVE_BINS rm -f $(addprefix $(TARGET_DIR)/usr/bin/,\ mpeg2dec corrupt_mpeg2 extract_mpeg2) endef LIBMPEG2_POST_INSTALL_TARGET_HOOKS += LIBMPEG2_REMOVE_BINS endif $(eval $(autotools-package)) ================================================ FILE: package/libmspack/Config.in ================================================ config BR2_PACKAGE_LIBMSPACK bool "libmspack" help libmspack is a portable library for some loosely related Microsoft compression formats https://www.cabextract.org.uk/libmspack ================================================ FILE: package/libmspack/libmspack.hash ================================================ # Locally computed sha256 bac862dee6e0fc10d92c70212441d9f8ad9b0222edc9a708c3ead4adb1b24a8e libmspack-0.10.1alpha.tar.gz sha256 a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7 COPYING.LIB ================================================ FILE: package/libmspack/libmspack.mk ================================================ ################################################################################ # # libmspack # ################################################################################ LIBMSPACK_VERSION_MAJOR = 0.10.1 LIBMSPACK_VERSION_MINOR = alpha LIBMSPACK_VERSION = $(LIBMSPACK_VERSION_MAJOR)$(LIBMSPACK_VERSION_MINOR) LIBMSPACK_SITE = https://www.cabextract.org.uk/libmspack LIBMSPACK_LICENSE = LGPL-2.1 LIBMSPACK_LICENSE_FILES = COPYING.LIB LIBMSPACK_CPE_ID_VENDOR = kyzer LIBMSPACK_CPE_ID_VERSION = $(LIBMSPACK_VERSION_MAJOR) LIBMSPACK_CPE_ID_UPDATE = $(LIBMSPACK_VERSION_MINOR) LIBMSPACK_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libnatpmp/Config.in ================================================ 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 ================================================ FILE: package/libnatpmp/libnatpmp.hash ================================================ # Locally computed sha256 e1aa9c4c4219bc06943d6b2130f664daee213fb262fcb94dd355815b8f4536b0 libnatpmp-20150609.tar.gz sha256 e8d8277e1a101fcfedb0cd5a1cc76646522c0da69f3490dd5a4055fc87ea96a2 LICENSE ================================================ FILE: package/libnatpmp/libnatpmp.mk ================================================ ################################################################################ # # libnatpmp # ################################################################################ LIBNATPMP_VERSION = 20150609 LIBNATPMP_SITE = http://miniupnp.free.fr/files LIBNATPMP_INSTALL_STAGING = YES LIBNATPMP_LICENSE = BSD-3-Clause 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)) ================================================ FILE: package/libndp/Config.in ================================================ config BR2_PACKAGE_LIBNDP bool "libndp" help This package contains a library which provides a wrapper for IPv6 Neighbor Discovery Protocol. It also provides a tool named ndptool for sending and receiving NDP messages. https://github.com/jpirko/libndp ================================================ FILE: package/libndp/libndp.hash ================================================ # Locally calculated sha256 c3ea76e253def89869651686a827da75b56896fe94fabd87d8c14b1d4588fd05 libndp-1.8.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/libndp/libndp.mk ================================================ ################################################################################ # # libndp # ################################################################################ LIBNDP_VERSION = 1.8 LIBNDP_SITE = $(call github,jpirko,libndp,v$(LIBNDP_VERSION)) LIBNDP_LICENSE = LGPL-2.1+ LIBNDP_LICENSE_FILES = COPYING LIBNDP_CPE_ID_VENDOR = libndp LIBNDP_AUTORECONF = YES LIBNDP_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libnet/0001-Use-standard-int64_t-instead-of-__int64_t-for-mingw-cross-build.patch ================================================ From a1659e261888bdbed51803132d52d9a6c6803c8a Mon Sep 17 00:00:00 2001 From: Joachim Nilsson Date: Sat, 19 Oct 2019 12:26:26 +0200 Subject: [PATCH] Use standard int64_t instead of __int64_t for mingw cross build Signed-off-by: Joachim Nilsson [Retrieved from: https://github.com/libnet/libnet/commit/a1659e261888bdbed51803132d52d9a6c6803c8a] Signed-off-by: Fabrice Fontaine --- include/libnet/libnet-structures.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/libnet/libnet-structures.h b/include/libnet/libnet-structures.h index 6084caa..34fffc6 100644 --- a/include/libnet/libnet-structures.h +++ b/include/libnet/libnet-structures.h @@ -49,9 +49,9 @@ struct libnet_port_list_chain /* libnet statistics structure */ struct libnet_stats { - __int64_t packets_sent; /* packets sent */ - __int64_t packet_errors; /* packets errors */ - __int64_t bytes_written; /* bytes written */ + int64_t packets_sent; /* packets sent */ + int64_t packet_errors; /* packets errors */ + int64_t bytes_written; /* bytes written */ }; ================================================ FILE: package/libnet/Config.in ================================================ config BR2_PACKAGE_LIBNET bool "libnet" help libnet provides a portable framework for low-level network packet construction. https://github.com/libnet/libnet ================================================ FILE: package/libnet/libnet.hash ================================================ # From https://github.com/libnet/libnet/releases/download/v1.2/libnet-1.2.tar.gz.md5 md5 a36c669e0cdfda6a2aa3adfb1f6fe60a libnet-1.2.tar.gz # Locally computed sha256 caa4868157d9e5f32e9c7eac9461efeff30cb28357f7f6bf07e73933fb4edaa7 libnet-1.2.tar.gz sha256 a06f600f67f239898d85f083aeed82ce6015b1c57599ab1def00fb68787ef388 LICENSE ================================================ FILE: package/libnet/libnet.mk ================================================ ################################################################################ # # libnet # ################################################################################ LIBNET_VERSION = 1.2 LIBNET_SITE = \ https://github.com/libnet/libnet/releases/download/v$(LIBNET_VERSION) LIBNET_INSTALL_STAGING = YES # PF_PACKET is always available on Linux LIBNET_CONF_OPTS = libnet_cv_have_packet_socket=yes LIBNET_LICENSE = BSD-2-Clause, BSD-3-Clause LIBNET_LICENSE_FILES = LICENSE LIBNET_CPE_ID_VENDOR = libnet_project LIBNET_CONFIG_SCRIPTS = libnet-config $(eval $(autotools-package)) ================================================ FILE: package/libnetconf2/Config.in ================================================ config BR2_PACKAGE_LIBNETCONF2 bool "libnetconf2" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU select BR2_PACKAGE_LIBYANG help libnetconf2 is a NETCONF library in C intended for building NETCONF clients and servers. https://github.com/CESNET/libnetconf2 comment "libnetconf2 needs a toolchain w/ threads, dynamic libraray" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libnetconf2/libnetconf2.hash ================================================ # Locally calculated sha256 66139fc9e68aa89c82235f4135dba9e44f5db663541279c14c74131e22b7f571 libnetconf2-1.1.43.tar.gz sha256 bd962ab457c8a8cb8faaaa36c11484680f3c9a47dbc336507817ae8935384064 LICENSE ================================================ FILE: package/libnetconf2/libnetconf2.mk ================================================ ################################################################################ # # libnetconf2 # ################################################################################ LIBNETCONF2_VERSION = 1.1.43 LIBNETCONF2_SITE = $(call github,CESNET,libnetconf2,v$(LIBNETCONF2_VERSION)) LIBNETCONF2_INSTALL_STAGING = YES LIBNETCONF2_LICENSE = BSD-3-Clause LIBNETCONF2_LICENSE_FILES = LICENSE LIBNETCONF2_DEPENDENCIES = libyang HOST_LIBNETCONF2_DEPENDENCIES = host-libyang LIBNETCONF2_CONF_OPTS = \ -DENABLE_BUILD_TESTS=OFF \ -DENABLE_VALGRIND_TESTS=OFF ifeq ($(BR2_PACKAGE_LIBSSH_SERVER), y) LIBNETCONF2_CONF_OPTS += -DENABLE_SSH=ON LIBNETCONF2_DEPENDENCIES += libssh else LIBNETCONF2_CONF_OPTS += -DENABLE_SSH=OFF endif ifeq ($(BR2_PACKAGE_OPENSSL), y) LIBNETCONF2_CONF_OPTS += -DENABLE_TLS=ON LIBNETCONF2_DEPENDENCIES += openssl else LIBNETCONF2_CONF_OPTS += -DENABLE_TLS=OFF endif HOST_LIBNETCONF2_CONF_OPTS = \ -DENABLE_BUILD_TESTS=OFF \ -DENABLE_VALGRIND_TESTS=OFF \ -DENABLE_SSH=OFF \ -DENABLE_TLS=OFF $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/libnetfilter_acct/Config.in ================================================ config BR2_PACKAGE_LIBNETFILTER_ACCT bool "libnetfilter_acct" select BR2_PACKAGE_LIBMNL help libnetfilter_acct is the userspace library providing interface to extended accounting infrastructure. http://www.netfilter.org/projects/libnetfilter_acct/ ================================================ FILE: package/libnetfilter_acct/libnetfilter_acct.hash ================================================ # From ftp://ftp.netfilter.org/pub/libnetfilter_acct/libnetfilter_acct-1.0.3.tar.bz2.{md5sum,sha1sum} md5 814b2972b2f5c740ff87510bc109168b libnetfilter_acct-1.0.3.tar.bz2 sha1 4b9073e4aa989b0f000c8da1ab01b22fceed52b2 libnetfilter_acct-1.0.3.tar.bz2 # Hash for license file: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/libnetfilter_acct/libnetfilter_acct.mk ================================================ ################################################################################ # # libnetfilter_acct # ################################################################################ LIBNETFILTER_ACCT_VERSION = 1.0.3 LIBNETFILTER_ACCT_SOURCE = libnetfilter_acct-$(LIBNETFILTER_ACCT_VERSION).tar.bz2 LIBNETFILTER_ACCT_SITE = http://www.netfilter.org/projects/libnetfilter_acct/files LIBNETFILTER_ACCT_INSTALL_STAGING = YES LIBNETFILTER_ACCT_DEPENDENCIES = host-pkgconf libmnl LIBNETFILTER_ACCT_LICENSE = LGPL-2.1+ LIBNETFILTER_ACCT_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libnetfilter_conntrack/0001-libnetfilter_conntrack.pc.in-add-LIBMNL_LIBS-to-Libs.patch ================================================ From 93bbd7e56cefc8488a61892b3bf5df63a175d20d Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 12 Apr 2020 14:05:15 +0200 Subject: [PATCH] libnetfilter_conntrack.pc.in: add LIBMNL_LIBS to Libs.Private Since version 1.0.8 and commit c1c0f16c1fedb46547c2e104beeaaeac5933b214, libnetfilter_conntrack depends on libmnl so add it to Libs.Private. Otherwise, applications such as dnsmasq will fail to link on: /home/buildroot/autobuild/instance-0/output-1/host/bin/arm-linux-gcc -Wl,-elf2flt -static -o dnsmasq cache.o rfc1035.o util.o option.o forward.o network.o dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o helper.o tftp.o log.o conntrack.o dhcp6.o rfc3315.o dhcp-common.o outpacket.o radv.o slaac.o auth.o ipset.o domain.o dnssec.o blockdata.o tables.o loop.o inotify.o poll.o rrfilter.o edns0.o arp.o crypto.o dump.o ubus.o metrics.o -L/home/buildroot/autobuild/instance-0/output-1/host/bin/../arm-buildroot-uclinux-uclibcgnueabi/sysroot/usr/lib -lnetfilter_conntrack -L/home/buildroot/autobuild/instance-0/output-1/host/bin/../arm-buildroot-uclinux-uclibcgnueabi/sysroot/usr/lib -lnfnetlink /home/buildroot/autobuild/instance-0/output-1/host/opt/ext-toolchain/arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: /home/buildroot/autobuild/instance-0/output-1/host/bin/../arm-buildroot-uclinux-uclibcgnueabi/sysroot/usr/lib/libnetfilter_conntrack.a(api.o): in function `nfct_fill_hdr.constprop.4': api.c:(.text+0x34): undefined reference to `mnl_nlmsg_put_header' Fixes: - http://autobuild.buildroot.org/results/3fdc2cba20162eb86eaa5c49a056fb40fb18a392 Signed-off-by: Fabrice Fontaine [Upstream status: commit e94172f09e4d] --- libnetfilter_conntrack.pc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libnetfilter_conntrack.pc.in b/libnetfilter_conntrack.pc.in index 857f993..fbd7132 100644 --- a/libnetfilter_conntrack.pc.in +++ b/libnetfilter_conntrack.pc.in @@ -12,5 +12,5 @@ Version: @VERSION@ Requires: libnfnetlink Conflicts: Libs: -L${libdir} -lnetfilter_conntrack -Libs.private: @LIBNFNETLINK_LIBS@ +Libs.private: @LIBNFNETLINK_LIBS@ @LIBMNL_LIBS@ Cflags: -I${includedir} -- 2.25.1 ================================================ FILE: package/libnetfilter_conntrack/Config.in ================================================ config BR2_PACKAGE_LIBNETFILTER_CONNTRACK bool "libnetfilter_conntrack" select BR2_PACKAGE_LIBMNL select BR2_PACKAGE_LIBNFNETLINK help libnetfilter_conntrack is a userspace library providing a programming interface (API) to the in-kernel connection tracking state table. http://www.netfilter.org/projects/libnetfilter_conntrack/ ================================================ FILE: package/libnetfilter_conntrack/libnetfilter_conntrack.hash ================================================ # From ftp://ftp.netfilter.org/pub/libnetfilter_conntrack/libnetfilter_conntrack-1.0.8.tar.bz2.sha256sum sha256 0cd13be008923528687af6c6b860f35392d49251c04ee0648282d36b1faec1cf libnetfilter_conntrack-1.0.8.tar.bz2 # Hash for license file: sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/libnetfilter_conntrack/libnetfilter_conntrack.mk ================================================ ################################################################################ # # libnetfilter_conntrack # ################################################################################ LIBNETFILTER_CONNTRACK_VERSION = 1.0.8 LIBNETFILTER_CONNTRACK_SOURCE = libnetfilter_conntrack-$(LIBNETFILTER_CONNTRACK_VERSION).tar.bz2 LIBNETFILTER_CONNTRACK_SITE = http://www.netfilter.org/projects/libnetfilter_conntrack/files LIBNETFILTER_CONNTRACK_INSTALL_STAGING = YES LIBNETFILTER_CONNTRACK_DEPENDENCIES = host-pkgconf libnfnetlink libmnl LIBNETFILTER_CONNTRACK_LICENSE = GPL-2.0+ LIBNETFILTER_CONNTRACK_LICENSE_FILES = COPYING LIBNETFILTER_CONNTRACK_CPE_ID_VENDOR = netfilter $(eval $(autotools-package)) ================================================ FILE: package/libnetfilter_cthelper/0001-uclinux.patch ================================================ From d028334281b218209412ec6e1dba56ca96320bd9 Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Tue, 10 Sep 2013 16:08:29 -0300 Subject: [PATCH] configure: uclinux is also linux Signed-off-by: Gustavo Zacarias --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index d52b1ce..9389b70 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_DISABLE_STATIC LT_INIT CHECK_GCC_FVISIBILITY case "$host" in -*-*-linux*) ;; +*-*-linux* | *-*-uclinux*) ;; *) AC_MSG_ERROR([Linux only, dude!]);; esac -- 1.8.1.5 ================================================ FILE: package/libnetfilter_cthelper/Config.in ================================================ config BR2_PACKAGE_LIBNETFILTER_CTHELPER bool "libnetfilter_cthelper" select BR2_PACKAGE_LIBMNL help libnetfilter_cthelper is the userspace library that provides the programming interface to the user-space helper infrastructure available since Linux kernel 3.6. http://www.netfilter.org/projects/libnetfilter_cthelper/ ================================================ FILE: package/libnetfilter_cthelper/libnetfilter_cthelper.hash ================================================ # From ftp://ftp.netfilter.org/pub/libnetfilter_cthelper/libnetfilter_cthelper-1.0.0.tar.bz2.{md5sum,sha1sum} md5 b2efab1a3a198a5add448960ba011acd libnetfilter_cthelper-1.0.0.tar.bz2 sha1 5d0a82794bd46aafde20c16800edca23d563de66 libnetfilter_cthelper-1.0.0.tar.bz2 # Hash for license file: sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/libnetfilter_cthelper/libnetfilter_cthelper.mk ================================================ ################################################################################ # # libnetfilter_cthelper # ################################################################################ LIBNETFILTER_CTHELPER_VERSION = 1.0.0 LIBNETFILTER_CTHELPER_SOURCE = libnetfilter_cthelper-$(LIBNETFILTER_CTHELPER_VERSION).tar.bz2 LIBNETFILTER_CTHELPER_SITE = http://www.netfilter.org/projects/libnetfilter_cthelper/files LIBNETFILTER_CTHELPER_INSTALL_STAGING = YES LIBNETFILTER_CTHELPER_DEPENDENCIES = host-pkgconf libmnl LIBNETFILTER_CTHELPER_AUTORECONF = YES LIBNETFILTER_CTHELPER_LICENSE = GPL-2.0+ LIBNETFILTER_CTHELPER_LICENSE_FILES = COPYING LIBNETFILTER_CTHELPER_CPE_ID_VENDOR = netfilter $(eval $(autotools-package)) ================================================ FILE: package/libnetfilter_cttimeout/0001-uclinux.patch ================================================ From d8d2ec14bc192f998afae2b71c69248e73518ddf Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Tue, 10 Sep 2013 16:09:14 -0300 Subject: [PATCH] configure: uclinux is also linux Signed-off-by: Gustavo Zacarias --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index d79e941..aeb6ad0 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_DISABLE_STATIC LT_INIT CHECK_GCC_FVISIBILITY case "$host" in -*-*-linux*) ;; +*-*-linux* | *-*-uclinux*) ;; *) AC_MSG_ERROR([Linux only, dude!]);; esac -- 1.8.1.5 ================================================ FILE: package/libnetfilter_cttimeout/Config.in ================================================ config BR2_PACKAGE_LIBNETFILTER_CTTIMEOUT bool "libnetfilter_cttimeout" select BR2_PACKAGE_LIBMNL help libnetfilter_cttimeout is the userspace library that provides the programming interface to the fine-grain connection tracking timeout infrastructure. http://www.netfilter.org/projects/libnetfilter_cttimeout/ ================================================ FILE: package/libnetfilter_cttimeout/libnetfilter_cttimeout.hash ================================================ # From ftp://ftp.netfilter.org/pub/libnetfilter_cttimeout/libnetfilter_cttimeout-1.0.0.tar.bz2.{md5sum,sha1sum} md5 7697437fc9ebb6f6b83df56a633db7f9 libnetfilter_cttimeout-1.0.0.tar.bz2 sha1 24cba24b0371e80007be4ea0fa9d872df63b8a7a libnetfilter_cttimeout-1.0.0.tar.bz2 # Hash for license file: sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/libnetfilter_cttimeout/libnetfilter_cttimeout.mk ================================================ ################################################################################ # # libnetfilter_cttimeout # ################################################################################ LIBNETFILTER_CTTIMEOUT_VERSION = 1.0.0 LIBNETFILTER_CTTIMEOUT_SOURCE = libnetfilter_cttimeout-$(LIBNETFILTER_CTTIMEOUT_VERSION).tar.bz2 LIBNETFILTER_CTTIMEOUT_SITE = http://www.netfilter.org/projects/libnetfilter_cttimeout/files LIBNETFILTER_CTTIMEOUT_INSTALL_STAGING = YES LIBNETFILTER_CTTIMEOUT_DEPENDENCIES = host-pkgconf libmnl LIBNETFILTER_CTTIMEOUT_AUTORECONF = YES LIBNETFILTER_CTTIMEOUT_LICENSE = GPL-2.0+ LIBNETFILTER_CTTIMEOUT_LICENSE_FILES = COPYING LIBNETFILTER_CTTIMEOUT_CPE_ID_VENDOR = netfilter $(eval $(autotools-package)) ================================================ FILE: package/libnetfilter_log/0001-uclinux.patch ================================================ From e36a2377e7ec50f6f675eb41f79edcda6ddebe5c Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Tue, 10 Sep 2013 15:48:50 -0300 Subject: [PATCH] configure: uclinux is also linux Signed-off-by: Gustavo Zacarias --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index e6e1317..189a753 100644 --- a/configure.ac +++ b/configure.ac @@ -20,7 +20,7 @@ AC_PROG_INSTALL AC_PROG_LN_S case "$host" in -*-*-linux*) ;; +*-*-linux* | *-*-uclinux*) ;; *) AC_MSG_ERROR([Linux only, dude!]);; esac -- 1.8.1.5 ================================================ FILE: package/libnetfilter_log/0002-Add-include-needed-for-integer-type-definition.patch ================================================ From 7529487f70e244cd31ef84b037b1c32749c134a7 Mon Sep 17 00:00:00 2001 From: Eric Leblond Date: Sun, 4 Nov 2012 09:29:44 +0100 Subject: Add include needed for integer type definition. [Retrieved from: https://git.netfilter.org/libnetfilter_log/commit/?id=7529487f70e244cd31ef84b037b1c32749c134a7] Signed-off-by: Fabrice Fontaine --- include/libnetfilter_log/libnetfilter_log.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/libnetfilter_log/libnetfilter_log.h b/include/libnetfilter_log/libnetfilter_log.h index 6b0d3b0..a1331de 100644 --- a/include/libnetfilter_log/libnetfilter_log.h +++ b/include/libnetfilter_log/libnetfilter_log.h @@ -9,6 +9,7 @@ #ifndef __LIBNETFILTER_LOG_H #define __LIBNETFILTER_LOG_H +#include #include struct nflog_handle; -- cgit v1.2.3 ================================================ FILE: package/libnetfilter_log/0003-src-Use-stdint-types-everywhere.patch ================================================ From 42878e88e5b72d3120434564942417cae3723385 Mon Sep 17 00:00:00 2001 From: Felix Janda Date: Sat, 16 May 2015 14:01:00 +0200 Subject: src: Use stdint types everywhere Signed-off-by: Felix Janda Signed-off-by: Pablo Neira Ayuso [Retrieved from: https://git.netfilter.org/libnetfilter_log/commit/?id=42878e88e5b72d3120434564942417cae3723385] Signed-off-by: Fabrice Fontaine --- include/libnetfilter_log/libipulog.h | 5 +- include/libnetfilter_log/libnetfilter_log.h | 39 ++++++------ src/libipulog_compat.c | 10 ++-- src/libnetfilter_log.c | 92 ++++++++++++++--------------- utils/nfulnl_test.c | 6 +- 5 files changed, 77 insertions(+), 75 deletions(-) diff --git a/include/libnetfilter_log/libipulog.h b/include/libnetfilter_log/libipulog.h index 1093bdd..ee7890a 100644 --- a/include/libnetfilter_log/libipulog.h +++ b/include/libnetfilter_log/libipulog.h @@ -2,6 +2,7 @@ #define _LIBIPULOG_H #include +#include #include #include #include @@ -33,9 +34,9 @@ typedef struct ulog_packet_msg { 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/libnetfilter_log/libnetfilter_log.h b/include/libnetfilter_log/libnetfilter_log.h index a1331de..7812877 100644 --- a/include/libnetfilter_log/libnetfilter_log.h +++ b/include/libnetfilter_log/libnetfilter_log.h @@ -9,6 +9,7 @@ #ifndef __LIBNETFILTER_LOG_H #define __LIBNETFILTER_LOG_H +#include #include #include @@ -29,19 +30,19 @@ extern struct nflog_handle *nflog_open(void); extern struct nflog_handle *nflog_open_nfnl(struct nfnl_handle *nfnlh); extern int nflog_close(struct nflog_handle *h); -extern int nflog_bind_pf(struct nflog_handle *h, u_int16_t pf); -extern int nflog_unbind_pf(struct nflog_handle *h, u_int16_t pf); +extern int nflog_bind_pf(struct nflog_handle *h, uint16_t pf); +extern int nflog_unbind_pf(struct nflog_handle *h, uint16_t pf); extern struct nflog_g_handle *nflog_bind_group(struct nflog_handle *h, - u_int16_t num); + uint16_t num); extern int nflog_unbind_group(struct nflog_g_handle *gh); extern int nflog_set_mode(struct nflog_g_handle *gh, - u_int8_t mode, unsigned int len); -extern int nflog_set_timeout(struct nflog_g_handle *gh, u_int32_t timeout); -extern int nflog_set_flags(struct nflog_g_handle *gh, u_int16_t flags); -extern int nflog_set_qthresh(struct nflog_g_handle *gh, u_int32_t qthresh); -extern int nflog_set_nlbufsiz(struct nflog_g_handle *gh, u_int32_t nlbufsiz); + uint8_t mode, unsigned int len); +extern int nflog_set_timeout(struct nflog_g_handle *gh, uint32_t timeout); +extern int nflog_set_flags(struct nflog_g_handle *gh, uint16_t flags); +extern int nflog_set_qthresh(struct nflog_g_handle *gh, uint32_t qthresh); +extern int nflog_set_nlbufsiz(struct nflog_g_handle *gh, uint32_t nlbufsiz); extern int nflog_callback_register(struct nflog_g_handle *gh, nflog_callback *cb, void *data); @@ -50,23 +51,23 @@ extern int nflog_handle_packet(struct nflog_handle *h, char *buf, int len); extern struct nfulnl_msg_packet_hdr *nflog_get_msg_packet_hdr(struct nflog_data *nfad); -extern u_int16_t nflog_get_hwtype(struct nflog_data *nfad); -extern u_int16_t nflog_get_msg_packet_hwhdrlen(struct nflog_data *nfad); +extern uint16_t nflog_get_hwtype(struct nflog_data *nfad); +extern uint16_t nflog_get_msg_packet_hwhdrlen(struct nflog_data *nfad); extern char *nflog_get_msg_packet_hwhdr(struct nflog_data *nfad); -extern u_int32_t nflog_get_nfmark(struct nflog_data *nfad); +extern uint32_t nflog_get_nfmark(struct nflog_data *nfad); extern int nflog_get_timestamp(struct nflog_data *nfad, struct timeval *tv); -extern u_int32_t nflog_get_indev(struct nflog_data *nfad); -extern u_int32_t nflog_get_physindev(struct nflog_data *nfad); -extern u_int32_t nflog_get_outdev(struct nflog_data *nfad); -extern u_int32_t nflog_get_physoutdev(struct nflog_data *nfad); +extern uint32_t nflog_get_indev(struct nflog_data *nfad); +extern uint32_t nflog_get_physindev(struct nflog_data *nfad); +extern uint32_t nflog_get_outdev(struct nflog_data *nfad); +extern uint32_t nflog_get_physoutdev(struct nflog_data *nfad); extern struct nfulnl_msg_packet_hw *nflog_get_packet_hw(struct nflog_data *nfad); extern int nflog_get_payload(struct nflog_data *nfad, char **data); extern char *nflog_get_prefix(struct nflog_data *nfad); -extern int nflog_get_uid(struct nflog_data *nfad, u_int32_t *uid); -extern int nflog_get_gid(struct nflog_data *nfad, u_int32_t *gid); -extern int nflog_get_seq(struct nflog_data *nfad, u_int32_t *seq); -extern int nflog_get_seq_global(struct nflog_data *nfad, u_int32_t *seq); +extern int nflog_get_uid(struct nflog_data *nfad, uint32_t *uid); +extern int nflog_get_gid(struct nflog_data *nfad, uint32_t *gid); +extern int nflog_get_seq(struct nflog_data *nfad, uint32_t *seq); +extern int nflog_get_seq_global(struct nflog_data *nfad, uint32_t *seq); enum { NFLOG_XML_PREFIX = (1 << 0), diff --git a/src/libipulog_compat.c b/src/libipulog_compat.c index 64ca7f3..2d5b23a 100644 --- a/src/libipulog_compat.c +++ b/src/libipulog_compat.c @@ -20,7 +20,7 @@ struct ipulog_handle struct nlmsghdr *last_nlh; #if 0 int fd; - u_int8_t blocking; + uint8_t blocking; struct sockaddr_nl local; struct sockaddr_nl peer; #endif @@ -72,7 +72,7 @@ const 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) { @@ -83,8 +83,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) { int rv; struct ipulog_handle *h; @@ -155,7 +155,7 @@ next_msg: printf("next\n"); h->upmsg.hook = hdr->hook; if (tb[NFULA_MARK-1]) - h->upmsg.mark = ntohl(*(u_int32_t *)NFA_DATA(tb[NFULA_MARK-1])); + h->upmsg.mark = ntohl(*(uint32_t *)NFA_DATA(tb[NFULA_MARK-1])); else h->upmsg.mark = 0; diff --git a/src/libnetfilter_log.c b/src/libnetfilter_log.c index 76ed436..e92576b 100644 --- a/src/libnetfilter_log.c +++ b/src/libnetfilter_log.c @@ -72,7 +72,7 @@ struct nflog_g_handle { struct nflog_g_handle *next; struct nflog_handle *h; - u_int16_t id; + uint16_t id; nflog_callback *cb; void *data; @@ -111,7 +111,7 @@ static void add_gh(struct nflog_g_handle *gh) gh->h->gh_list = gh; } -static struct nflog_g_handle *find_gh(struct nflog_handle *h, u_int16_t group) +static struct nflog_g_handle *find_gh(struct nflog_handle *h, uint16_t group) { struct nflog_g_handle *gh; @@ -124,8 +124,8 @@ static struct nflog_g_handle *find_gh(struct nflog_handle *h, u_int16_t group) /* build a NFULNL_MSG_CONFIG message */ static int -__build_send_cfg_msg(struct nflog_handle *h, u_int8_t command, - u_int16_t groupnum, u_int8_t pf) +__build_send_cfg_msg(struct nflog_handle *h, uint8_t command, + uint16_t groupnum, uint8_t pf) { union { char buf[NFNL_HEADER_LEN @@ -148,7 +148,7 @@ static int __nflog_rcv_pkt(struct nlmsghdr *nlh, struct nfattr *nfa[], { struct nfgenmsg *nfmsg = NLMSG_DATA(nlh); struct nflog_handle *h = data; - u_int16_t group = ntohs(nfmsg->res_id); + uint16_t group = ntohs(nfmsg->res_id); struct nflog_g_handle *gh = find_gh(h, group); struct nflog_data nfldata; @@ -359,7 +359,7 @@ int nflog_close(struct nflog_handle *h) * * \return integer inferior to 0 in case of failure */ -int nflog_bind_pf(struct nflog_handle *h, u_int16_t pf) +int nflog_bind_pf(struct nflog_handle *h, uint16_t pf) { return __build_send_cfg_msg(h, NFULNL_CFG_CMD_PF_BIND, 0, pf); } @@ -373,7 +373,7 @@ int nflog_bind_pf(struct nflog_handle *h, u_int16_t pf) * Unbinds the given nflog handle from processing packets belonging * to the given protocol family. */ -int nflog_unbind_pf(struct nflog_handle *h, u_int16_t pf) +int nflog_unbind_pf(struct nflog_handle *h, uint16_t pf) { return __build_send_cfg_msg(h, NFULNL_CFG_CMD_PF_UNBIND, 0, pf); } @@ -395,7 +395,7 @@ int nflog_unbind_pf(struct nflog_handle *h, u_int16_t pf) * \return a nflog_g_handle pointing to the newly created group */ struct nflog_g_handle * -nflog_bind_group(struct nflog_handle *h, u_int16_t num) +nflog_bind_group(struct nflog_handle *h, uint16_t num) { struct nflog_g_handle *gh; @@ -461,7 +461,7 @@ int nflog_unbind_group(struct nflog_g_handle *gh) * \return -1 on error; >= otherwise. */ int nflog_set_mode(struct nflog_g_handle *gh, - u_int8_t mode, u_int32_t range) + uint8_t mode, uint32_t range) { union { char buf[NFNL_HEADER_LEN @@ -493,10 +493,10 @@ int nflog_set_mode(struct nflog_g_handle *gh, * * \return -1 in case of error and errno is explicity set. */ -int nflog_set_timeout(struct nflog_g_handle *gh, u_int32_t timeout) +int nflog_set_timeout(struct nflog_g_handle *gh, uint32_t timeout) { union { - char buf[NFNL_HEADER_LEN+NFA_LENGTH(sizeof(u_int32_t))]; + char buf[NFNL_HEADER_LEN+NFA_LENGTH(sizeof(uint32_t))]; struct nlmsghdr nmh; } u; @@ -518,10 +518,10 @@ int nflog_set_timeout(struct nflog_g_handle *gh, u_int32_t timeout) * * \return -1 in case of error and errno is explicity set. */ -int nflog_set_qthresh(struct nflog_g_handle *gh, u_int32_t qthresh) +int nflog_set_qthresh(struct nflog_g_handle *gh, uint32_t qthresh) { union { - char buf[NFNL_HEADER_LEN+NFA_LENGTH(sizeof(u_int32_t))]; + char buf[NFNL_HEADER_LEN+NFA_LENGTH(sizeof(uint32_t))]; struct nlmsghdr nmh; } u; @@ -547,10 +547,10 @@ int nflog_set_qthresh(struct nflog_g_handle *gh, u_int32_t qthresh) * * \return -1 in case of error and errno is explicity set. */ -int nflog_set_nlbufsiz(struct nflog_g_handle *gh, u_int32_t nlbufsiz) +int nflog_set_nlbufsiz(struct nflog_g_handle *gh, uint32_t nlbufsiz) { union { - char buf[NFNL_HEADER_LEN+NFA_LENGTH(sizeof(u_int32_t))]; + char buf[NFNL_HEADER_LEN+NFA_LENGTH(sizeof(uint32_t))]; struct nlmsghdr nmh; } u; int status; @@ -581,10 +581,10 @@ int nflog_set_nlbufsiz(struct nflog_g_handle *gh, u_int32_t nlbufsiz) * * \return -1 in case of error and errno is explicity set. */ -int nflog_set_flags(struct nflog_g_handle *gh, u_int16_t flags) +int nflog_set_flags(struct nflog_g_handle *gh, uint16_t flags) { union { - char buf[NFNL_HEADER_LEN+NFA_LENGTH(sizeof(u_int16_t))]; + char buf[NFNL_HEADER_LEN+NFA_LENGTH(sizeof(uint16_t))]; struct nlmsghdr nmh; } u; @@ -616,9 +616,9 @@ int nflog_set_flags(struct nflog_g_handle *gh, u_int16_t flags) * The nfulnl_msg_packet_hdr structure is defined in libnetfilter_log.h as: *\verbatim struct nfulnl_msg_packet_hdr { - u_int16_t hw_protocol; // hw protocol (network order) - u_int8_t hook; // netfilter hook - u_int8_t _pad; + uint16_t hw_protocol; // hw protocol (network order) + uint8_t hook; // netfilter hook + uint8_t _pad; } __attribute__ ((packed)); \endverbatim */ @@ -634,9 +634,9 @@ struct nfulnl_msg_packet_hdr *nflog_get_msg_packet_hdr(struct nflog_data *nfad) * * \return the hardware link layer type. */ -u_int16_t nflog_get_hwtype(struct nflog_data *nfad) +uint16_t nflog_get_hwtype(struct nflog_data *nfad) { - return ntohs(nfnl_get_data(nfad->nfa, NFULA_HWTYPE, u_int16_t)); + return ntohs(nfnl_get_data(nfad->nfa, NFULA_HWTYPE, uint16_t)); } /** @@ -645,9 +645,9 @@ u_int16_t nflog_get_hwtype(struct nflog_data *nfad) * * \return the size of the hardware link layer header */ -u_int16_t nflog_get_msg_packet_hwhdrlen(struct nflog_data *nfad) +uint16_t nflog_get_msg_packet_hwhdrlen(struct nflog_data *nfad) { - return ntohs(nfnl_get_data(nfad->nfa, NFULA_HWLEN, u_int16_t)); + return ntohs(nfnl_get_data(nfad->nfa, NFULA_HWLEN, uint16_t)); } /** @@ -667,9 +667,9 @@ char *nflog_get_msg_packet_hwhdr(struct nflog_data *nfad) * * \return the netfilter mark currently assigned to the logged packet. */ -u_int32_t nflog_get_nfmark(struct nflog_data *nfad) +uint32_t nflog_get_nfmark(struct nflog_data *nfad) { - return ntohl(nfnl_get_data(nfad->nfa, NFULA_MARK, u_int32_t)); + return ntohl(nfnl_get_data(nfad->nfa, NFULA_MARK, uint32_t)); } /** @@ -707,9 +707,9 @@ int nflog_get_timestamp(struct nflog_data *nfad, struct timeval *tv) * \warning all nflog_get_dev() functions return 0 if not set, since linux * only allows ifindex >= 1, see net/core/dev.c:2600 (in 2.6.13.1) */ -u_int32_t nflog_get_indev(struct nflog_data *nfad) +uint32_t nflog_get_indev(struct nflog_data *nfad) { - return ntohl(nfnl_get_data(nfad->nfa, NFULA_IFINDEX_INDEV, u_int32_t)); + return ntohl(nfnl_get_data(nfad->nfa, NFULA_IFINDEX_INDEV, uint32_t)); } /** @@ -720,9 +720,9 @@ u_int32_t nflog_get_indev(struct nflog_data *nfad) * If the returned index is 0, the packet was locally generated or the * physical input interface is no longer known (ie. POSTROUTING?). */ -u_int32_t nflog_get_physindev(struct nflog_data *nfad) +uint32_t nflog_get_physindev(struct nflog_data *nfad) { - return ntohl(nfnl_get_data(nfad->nfa, NFULA_IFINDEX_PHYSINDEV, u_int32_t)); + return ntohl(nfnl_get_data(nfad->nfa, NFULA_IFINDEX_PHYSINDEV, uint32_t)); } /** @@ -733,9 +733,9 @@ u_int32_t nflog_get_physindev(struct nflog_data *nfad) * returned index is 0, the packet is destined for localhost or the output * interface is not yet known (ie. PREROUTING?). */ -u_int32_t nflog_get_outdev(struct nflog_data *nfad) +uint32_t nflog_get_outdev(struct nflog_data *nfad) { - return ntohl(nfnl_get_data(nfad->nfa, NFULA_IFINDEX_OUTDEV, u_int32_t)); + return ntohl(nfnl_get_data(nfad->nfa, NFULA_IFINDEX_OUTDEV, uint32_t)); } /** @@ -749,9 +749,9 @@ u_int32_t nflog_get_outdev(struct nflog_data *nfad) * \return The index of physical interface that the packet output will be * routed out. */ -u_int32_t nflog_get_physoutdev(struct nflog_data *nfad) +uint32_t nflog_get_physoutdev(struct nflog_data *nfad) { - return ntohl(nfnl_get_data(nfad->nfa, NFULA_IFINDEX_PHYSOUTDEV, u_int32_t)); + return ntohl(nfnl_get_data(nfad->nfa, NFULA_IFINDEX_PHYSOUTDEV, uint32_t)); } /** @@ -767,9 +767,9 @@ u_int32_t nflog_get_physoutdev(struct nflog_data *nfad) * The nfulnl_msg_packet_hw structure is defined in libnetfilter_log.h as: * \verbatim struct nfulnl_msg_packet_hw { - u_int16_t hw_addrlen; - u_int16_t _pad; - u_int8_t hw_addr[8]; + uint16_t hw_addrlen; + uint16_t _pad; + uint8_t hw_addr[8]; } __attribute__ ((packed)); \endverbatim */ @@ -817,12 +817,12 @@ char *nflog_get_prefix(struct nflog_data *nfad) * * \return the UID of the user that has genered the packet, if any. */ -int nflog_get_uid(struct nflog_data *nfad, u_int32_t *uid) +int nflog_get_uid(struct nflog_data *nfad, uint32_t *uid) { if (!nfnl_attr_present(nfad->nfa, NFULA_UID)) return -1; - *uid = ntohl(nfnl_get_data(nfad->nfa, NFULA_UID, u_int32_t)); + *uid = ntohl(nfnl_get_data(nfad->nfa, NFULA_UID, uint32_t)); return 0; } @@ -832,12 +832,12 @@ int nflog_get_uid(struct nflog_data *nfad, u_int32_t *uid) * * \return the GID of the user that has genered the packet, if any. */ -int nflog_get_gid(struct nflog_data *nfad, u_int32_t *gid) +int nflog_get_gid(struct nflog_data *nfad, uint32_t *gid) { if (!nfnl_attr_present(nfad->nfa, NFULA_GID)) return -1; - *gid = ntohl(nfnl_get_data(nfad->nfa, NFULA_GID, u_int32_t)); + *gid = ntohl(nfnl_get_data(nfad->nfa, NFULA_GID, uint32_t)); return 0; } @@ -849,12 +849,12 @@ int nflog_get_gid(struct nflog_data *nfad, u_int32_t *gid) * * \return the local nflog sequence number. */ -int nflog_get_seq(struct nflog_data *nfad, u_int32_t *seq) +int nflog_get_seq(struct nflog_data *nfad, uint32_t *seq) { if (!nfnl_attr_present(nfad->nfa, NFULA_SEQ)) return -1; - *seq = ntohl(nfnl_get_data(nfad->nfa, NFULA_SEQ, u_int32_t)); + *seq = ntohl(nfnl_get_data(nfad->nfa, NFULA_SEQ, uint32_t)); return 0; } @@ -866,12 +866,12 @@ int nflog_get_seq(struct nflog_data *nfad, u_int32_t *seq) * * \return the global nflog sequence number. */ -int nflog_get_seq_global(struct nflog_data *nfad, u_int32_t *seq) +int nflog_get_seq_global(struct nflog_data *nfad, uint32_t *seq) { if (!nfnl_attr_present(nfad->nfa, NFULA_SEQ_GLOBAL)) return -1; - *seq = ntohl(nfnl_get_data(nfad->nfa, NFULA_SEQ_GLOBAL, u_int32_t)); + *seq = ntohl(nfnl_get_data(nfad->nfa, NFULA_SEQ_GLOBAL, uint32_t)); return 0; } @@ -923,7 +923,7 @@ int nflog_snprintf_xml(char *buf, size_t rem, struct nflog_data *tb, int flags) { struct nfulnl_msg_packet_hdr *ph; struct nfulnl_msg_packet_hw *hwph; - u_int32_t mark, ifi; + uint32_t mark, ifi; int size, offset = 0, len = 0, ret; char *data; diff --git a/utils/nfulnl_test.c b/utils/nfulnl_test.c index ae5da79..dd3091b 100644 --- a/utils/nfulnl_test.c +++ b/utils/nfulnl_test.c @@ -9,9 +9,9 @@ static int print_pkt(struct nflog_data *ldata) { struct nfulnl_msg_packet_hdr *ph = nflog_get_msg_packet_hdr(ldata); - u_int32_t mark = nflog_get_nfmark(ldata); - u_int32_t indev = nflog_get_indev(ldata); - u_int32_t outdev = nflog_get_outdev(ldata); + uint32_t mark = nflog_get_nfmark(ldata); + uint32_t indev = nflog_get_indev(ldata); + uint32_t outdev = nflog_get_outdev(ldata); char *prefix = nflog_get_prefix(ldata); char *payload; int payload_len = nflog_get_payload(ldata, &payload); -- cgit v1.2.3 ================================================ FILE: package/libnetfilter_log/0004-include-Sync-with-current-kernel-headers.patch ================================================ From 614d8b6cfb969c6102ef320de22b1eb199efce2a Mon Sep 17 00:00:00 2001 From: Felix Janda Date: Sat, 16 May 2015 13:37:53 +0200 Subject: include: Sync with current kernel headers Signed-off-by: Felix Janda Signed-off-by: Pablo Neira Ayuso [Retrieved from: https://git.netfilter.org/libnetfilter_log/commit/?id=614d8b6cfb969c6102ef320de22b1eb199efce2a] Signed-off-by: Fabrice Fontaine --- include/libnetfilter_log/linux_nfnetlink_log.h | 51 +++++++++++++------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/include/libnetfilter_log/linux_nfnetlink_log.h b/include/libnetfilter_log/linux_nfnetlink_log.h index 4c802c8..9f38277 100644 --- a/include/libnetfilter_log/linux_nfnetlink_log.h +++ b/include/libnetfilter_log/linux_nfnetlink_log.h @@ -20,33 +20,31 @@ enum nfulnl_msg_types { }; struct nfulnl_msg_packet_hdr { - u_int16_t hw_protocol; /* hw protocol (network order) */ - u_int8_t hook; /* netfilter hook */ - u_int8_t _pad; -} __attribute__ ((packed)); + __be16 hw_protocol; /* hw protocol (network order) */ + __u8 hook; /* netfilter hook */ + __u8 _pad; +}; struct nfulnl_msg_packet_hw { - u_int16_t hw_addrlen; - u_int16_t _pad; - u_int8_t hw_addr[8]; -} __attribute__ ((packed)); + __be16 hw_addrlen; + __u16 _pad; + __u8 hw_addr[8]; +}; struct nfulnl_msg_packet_timestamp { - aligned_u64 sec; - aligned_u64 usec; -} __attribute__ ((packed)); - -#define NFULNL_PREFIXLEN 30 /* just like old log target */ + __aligned_be64 sec; + __aligned_be64 usec; +}; enum nfulnl_attr_type { NFULA_UNSPEC, NFULA_PACKET_HDR, - NFULA_MARK, /* u_int32_t nfmark */ + NFULA_MARK, /* __u32 nfmark */ NFULA_TIMESTAMP, /* nfulnl_msg_packet_timestamp */ - NFULA_IFINDEX_INDEV, /* u_int32_t ifindex */ - NFULA_IFINDEX_OUTDEV, /* u_int32_t ifindex */ - NFULA_IFINDEX_PHYSINDEV, /* u_int32_t ifindex */ - NFULA_IFINDEX_PHYSOUTDEV, /* u_int32_t ifindex */ + NFULA_IFINDEX_INDEV, /* __u32 ifindex */ + NFULA_IFINDEX_OUTDEV, /* __u32 ifindex */ + NFULA_IFINDEX_PHYSINDEV, /* __u32 ifindex */ + NFULA_IFINDEX_PHYSOUTDEV, /* __u32 ifindex */ NFULA_HWADDR, /* nfulnl_msg_packet_hw */ NFULA_PAYLOAD, /* opaque data payload */ NFULA_PREFIX, /* string prefix */ @@ -71,23 +69,23 @@ enum nfulnl_msg_config_cmds { }; struct nfulnl_msg_config_cmd { - u_int8_t command; /* nfulnl_msg_config_cmds */ + __u8 command; /* nfulnl_msg_config_cmds */ } __attribute__ ((packed)); struct nfulnl_msg_config_mode { - u_int32_t copy_range; - u_int8_t copy_mode; - u_int8_t _pad; + __be32 copy_range; + __u8 copy_mode; + __u8 _pad; } __attribute__ ((packed)); enum nfulnl_attr_config { NFULA_CFG_UNSPEC, NFULA_CFG_CMD, /* nfulnl_msg_config_cmd */ NFULA_CFG_MODE, /* nfulnl_msg_config_mode */ - NFULA_CFG_NLBUFSIZ, /* u_int32_t buffer size */ - NFULA_CFG_TIMEOUT, /* u_int32_t in 1/100 s */ - NFULA_CFG_QTHRESH, /* u_int32_t */ - NFULA_CFG_FLAGS, /* u_int16_t */ + NFULA_CFG_NLBUFSIZ, /* __u32 buffer size */ + NFULA_CFG_TIMEOUT, /* __u32 in 1/100 s */ + NFULA_CFG_QTHRESH, /* __u32 */ + NFULA_CFG_FLAGS, /* __u16 */ __NFULA_CFG_MAX }; #define NFULA_CFG_MAX (__NFULA_CFG_MAX -1) @@ -95,6 +93,7 @@ enum nfulnl_attr_config { #define NFULNL_COPY_NONE 0x00 #define NFULNL_COPY_META 0x01 #define NFULNL_COPY_PACKET 0x02 +/* 0xff is reserved, don't use it for new copy modes. */ #define NFULNL_CFG_F_SEQ 0x0001 #define NFULNL_CFG_F_SEQ_GLOBAL 0x0002 -- cgit v1.2.3 ================================================ FILE: package/libnetfilter_log/Config.in ================================================ config BR2_PACKAGE_LIBNETFILTER_LOG bool "libnetfilter_log" select BR2_PACKAGE_LIBNFNETLINK help libnetfilter_log is a userspace library providing interface to packets that have been logged by the kernel packet filter. http://www.netfilter.org/projects/libnetfilter_log/ ================================================ FILE: package/libnetfilter_log/libnetfilter_log.hash ================================================ # From ftp://ftp.netfilter.org/pub/libnetfilter_log/libnetfilter_log-1.0.1.tar.bz2.{md5sum,sha1sum} md5 2a4bb0654ae675a52d2e8d1c06090b94 libnetfilter_log-1.0.1.tar.bz2 sha1 0b95bcb1ad15eea906fa3607cd6c2290bd48d5bd libnetfilter_log-1.0.1.tar.bz2 # Hash for license file: sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/libnetfilter_log/libnetfilter_log.mk ================================================ ################################################################################ # # libnetfilter_log # ################################################################################ LIBNETFILTER_LOG_VERSION = 1.0.1 LIBNETFILTER_LOG_SOURCE = libnetfilter_log-$(LIBNETFILTER_LOG_VERSION).tar.bz2 LIBNETFILTER_LOG_SITE = http://www.netfilter.org/projects/libnetfilter_log/files LIBNETFILTER_LOG_INSTALL_STAGING = YES LIBNETFILTER_LOG_DEPENDENCIES = host-pkgconf libnfnetlink LIBNETFILTER_LOG_AUTORECONF = YES LIBNETFILTER_LOG_LICENSE = GPL-2.0+ LIBNETFILTER_LOG_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libnetfilter_queue/Config.in ================================================ config BR2_PACKAGE_LIBNETFILTER_QUEUE bool "libnetfilter_queue" select BR2_PACKAGE_LIBNFNETLINK select BR2_PACKAGE_LIBMNL help libnetfilter_queue is the userspace library that provides the programming interface to the fine-grain connection tracking timeout infrastructure. http://www.netfilter.org/projects/libnetfilter_queue/ ================================================ FILE: package/libnetfilter_queue/libnetfilter_queue.hash ================================================ # From http://netfilter.org/pub/libnetfilter_queue/libnetfilter_queue-1.0.5.tar.bz2.sha256sum sha256 f9ff3c11305d6e03d81405957bdc11aea18e0d315c3e3f48da53a24ba251b9f5 libnetfilter_queue-1.0.5.tar.bz2 # Hash for license file: sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/libnetfilter_queue/libnetfilter_queue.mk ================================================ ################################################################################ # # libnetfilter_queue # ################################################################################ LIBNETFILTER_QUEUE_VERSION = 1.0.5 LIBNETFILTER_QUEUE_SOURCE = libnetfilter_queue-$(LIBNETFILTER_QUEUE_VERSION).tar.bz2 LIBNETFILTER_QUEUE_SITE = http://www.netfilter.org/projects/libnetfilter_queue/files LIBNETFILTER_QUEUE_INSTALL_STAGING = YES LIBNETFILTER_QUEUE_DEPENDENCIES = host-pkgconf libnfnetlink libmnl LIBNETFILTER_QUEUE_AUTORECONF = YES LIBNETFILTER_QUEUE_LICENSE = GPL-2.0+ LIBNETFILTER_QUEUE_LICENSE_FILES = COPYING LIBNETFILTER_QUEUE_CPE_ID_VENDOR = netfilter $(eval $(autotools-package)) ================================================ FILE: package/libnfc/0001-autotools-make-example-build-optional.patch ================================================ From 874d9605aa9cd028aed149c2dd1bb410856477fb Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 21 Jun 2020 23:28:37 +0200 Subject: [PATCH] autotools: make example build optional This patch makes example build optional for autotools build system. In order to keep the former behavior, example build is enabled by default. Signed-off-by: Samuel Martin [Retrieved (and slightly updated to remove CMakeLists.txt) from: https://git.buildroot.net/buildroot/tree/package/libnfc/0001-build-systems-make-example-build-optional.patch] Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/nfc-tools/libnfc/commit/874d9605aa9cd028aed149c2dd1bb410856477fb] --- Makefile.am | 8 +++++++- configure.ac | 11 +++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index d2f6fc8e..516ebee2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,7 +2,13 @@ ACLOCAL_AMFLAGS = -I m4 AM_CFLAGS = $(LIBNFC_CFLAGS) -SUBDIRS = libnfc utils examples include contrib cmake test +SUBDIRS = libnfc utils + +if EXAMPLE_ENABLED +SUBDIRS += examples +endif + +SUBDIRS += include contrib cmake test pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libnfc.pc diff --git a/configure.ac b/configure.ac index 280a6d08..46b65d33 100644 --- a/configure.ac +++ b/configure.ac @@ -157,6 +157,14 @@ then fi AM_CONDITIONAL(DOC_ENABLED, [test x"$enable_doc" = xyes]) +# Example build (default: yes) +AC_ARG_ENABLE([example],AS_HELP_STRING([--enable-example],[Enable example build.]),[enable_example=$enableval],[enable_example="yes"]) + +AC_MSG_CHECKING(for example build) +AC_MSG_RESULT($enable_example) + +AM_CONDITIONAL(EXAMPLE_ENABLED, [test x"$enable_example" = xyes]) + # Dependencies PKG_CONFIG_REQUIRES="" @@ -175,7 +183,10 @@ if test x$ac_cv_with_cutter = xyes -a x$ac_cv_use_cutter = xno; then fi AM_CONDITIONAL([WITH_CUTTER], [test "$ac_cv_use_cutter" != "no"]) +if test x"$enable_example" = "xyes" +then AC_CHECK_READLINE +fi # Help us to write great code ;-) CFLAGS="$CFLAGS -Wall -pedantic -Wextra" ================================================ FILE: package/libnfc/Config.in ================================================ config BR2_PACKAGE_LIBNFC bool "libnfc" help Public platform independent Near Field Communication (NFC) library. http://www.libnfc.org/ if BR2_PACKAGE_LIBNFC config BR2_PACKAGE_LIBNFC_ACR122_PCSC bool "acr122_pcsc driver" depends on BR2_TOOLCHAIN_HAS_THREADS # pcsc-lite depends on BR2_USE_MMU # pcsc-lite depends on !BR2_STATIC_LIBS # pcsc-lite select BR2_PACKAGE_PCSC_LITE help support for acr112_pcsc driver comment "acr122_pcsc driver needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS config BR2_PACKAGE_LIBNFC_ACR122_USB bool "acr122_usb driver" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT help support for acr122_usb driver comment "acr122_usb driver needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_PACKAGE_LIBNFC_ACR122S bool "acr122s driver" help support for acr122s driver config BR2_PACKAGE_LIBNFC_ARYGON bool "arygon driver" default y help support for arygon driver config BR2_PACKAGE_LIBNFC_PN532_I2C bool "pn532_i2c driver" help support for pn532_i2c driver config BR2_PACKAGE_LIBNFC_PN532_SPI bool "pn532_spi driver" help support for pn532_spi driver config BR2_PACKAGE_LIBNFC_PN532_UART bool "pn532_uart driver" help support for pn532_uart driver config BR2_PACKAGE_LIBNFC_PN53X_USB bool "pn53x_usb driver" default y depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT help support for pn53x_usb driver comment "pn53x_usb driver needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_PACKAGE_LIBNFC_EXAMPLES bool "build libnfc examples" select BR2_PACKAGE_READLINE endif ================================================ FILE: package/libnfc/libnfc.hash ================================================ # Locally computed: sha256 6d9ad31c86408711f0a60f05b1933101c7497683c2e0d8917d1611a3feba3dd5 libnfc-1.8.0.tar.bz2 sha256 9ccf26cfe845e0eb8bb58053e47366e7ab6b697ae010f7650978d4b71b7d1fc1 COPYING ================================================ FILE: package/libnfc/libnfc.mk ================================================ ################################################################################ # # libnfc # ################################################################################ LIBNFC_VERSION = 1.8.0 LIBNFC_SOURCE = libnfc-$(LIBNFC_VERSION).tar.bz2 LIBNFC_SITE = https://github.com/nfc-tools/libnfc/releases/download/libnfc-$(LIBNFC_VERSION) LIBNFC_LICENSE = LGPL-3.0+ LIBNFC_LICENSE_FILES = COPYING LIBNFC_AUTORECONF = YES LIBNFC_INSTALL_STAGING = YES LIBNFC_DEPENDENCIES = host-pkgconf # N.B. The acr122 driver requires pcsc-lite. ifeq ($(BR2_PACKAGE_LIBNFC_ACR122_PCSC),y) LIBNFC_DRIVER_LIST += acr122_pcsc LIBNFC_DEPENDENCIES += pcsc-lite endif ifeq ($(BR2_PACKAGE_LIBNFC_ACR122_USB),y) LIBNFC_DRIVER_LIST += acr122_usb LIBNFC_DEPENDENCIES += libusb libusb-compat endif ifeq ($(BR2_PACKAGE_LIBNFC_ACR122S),y) LIBNFC_DRIVER_LIST += acr122s endif ifeq ($(BR2_PACKAGE_LIBNFC_ARYGON),y) LIBNFC_DRIVER_LIST += arygon endif ifeq ($(BR2_PACKAGE_LIBNFC_PN532_I2C),y) LIBNFC_DRIVER_LIST += pn532_i2c endif ifeq ($(BR2_PACKAGE_LIBNFC_PN532_SPI),y) LIBNFC_DRIVER_LIST += pn532_spi endif ifeq ($(BR2_PACKAGE_LIBNFC_PN532_UART),y) LIBNFC_DRIVER_LIST += pn532_uart endif ifeq ($(BR2_PACKAGE_LIBNFC_PN53X_USB),y) LIBNFC_DRIVER_LIST += pn53x_usb LIBNFC_DEPENDENCIES += libusb libusb-compat endif LIBNFC_CONF_OPTS = \ --with-drivers=$(subst $(space),$(comma),$(strip $(LIBNFC_DRIVER_LIST))) ifeq ($(BR2_PACKAGE_LIBNFC_EXAMPLES),y) LIBNFC_CONF_OPTS += --enable-example LIBNFC_DEPENDENCIES += readline else LIBNFC_CONF_OPTS += --disable-example endif $(eval $(autotools-package)) ================================================ FILE: package/libnfnetlink/0001-uclinux.patch ================================================ From 8e5a9d8f32c9646d01d8c84e979892dfd28a7f7c Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Tue, 10 Sep 2013 15:35:22 -0300 Subject: [PATCH] configure: uclinux is also linux Signed-off-by: Gustavo Zacarias --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 0926a1c..b979772 100644 --- a/configure.ac +++ b/configure.ac @@ -18,7 +18,7 @@ AC_DISABLE_STATIC AM_PROG_LIBTOOL case "$host" in -*-*-linux*) ;; +*-*-linux* | *-*-uclinux*) ;; *) AC_MSG_ERROR([Linux only, dude!]);; esac -- 1.8.1.5 ================================================ FILE: package/libnfnetlink/0002-include-Sync-with-kernel-headers.patch ================================================ From 7a1a07c0028a1c88cd7716a058697c552a563b24 Mon Sep 17 00:00:00 2001 From: Felix Janda Date: Sat, 16 May 2015 14:49:07 +0200 Subject: include: Sync with kernel headers Signed-off-by: Felix Janda Signed-off-by: Pablo Neira Ayuso [Retrieved from: https://git.netfilter.org/libnfnetlink/commit/?id=7a1a07c0028a1c88cd7716a058697c552a563b24] Signed-off-by: Fabrice Fontaine --- include/libnfnetlink/linux_nfnetlink.h | 44 ++++----------------------- include/libnfnetlink/linux_nfnetlink_compat.h | 12 ++++---- 2 files changed, 12 insertions(+), 44 deletions(-) diff --git a/include/libnfnetlink/linux_nfnetlink.h b/include/libnfnetlink/linux_nfnetlink.h index 76a8550..44a38d6 100644 --- a/include/libnfnetlink/linux_nfnetlink.h +++ b/include/libnfnetlink/linux_nfnetlink.h @@ -25,9 +25,9 @@ enum nfnetlink_groups { /* General form of address family dependent message. */ struct nfgenmsg { - u_int8_t nfgen_family; /* AF_xxx */ - u_int8_t version; /* nfnetlink version */ - u_int16_t res_id; /* resource id */ + __u8 nfgen_family; /* AF_xxx */ + __u8 version; /* nfnetlink version */ + __be16 res_id; /* resource id */ }; #define NFNETLINK_V0 0 @@ -46,40 +46,8 @@ struct nfgenmsg { #define NFNL_SUBSYS_CTNETLINK_EXP 2 #define NFNL_SUBSYS_QUEUE 3 #define NFNL_SUBSYS_ULOG 4 -#define NFNL_SUBSYS_COUNT 5 +#define NFNL_SUBSYS_OSF 5 +#define NFNL_SUBSYS_IPSET 6 +#define NFNL_SUBSYS_COUNT 7 -#ifdef __KERNEL__ - -#include -#include -#include - -struct nfnl_callback -{ - int (*call)(struct sock *nl, struct sk_buff *skb, - struct nlmsghdr *nlh, struct nlattr *cda[]); - const struct nla_policy *policy; /* netlink attribute policy */ - const u_int16_t attr_count; /* number of nlattr's */ -}; - -struct nfnetlink_subsystem -{ - const char *name; - __u8 subsys_id; /* nfnetlink subsystem ID */ - __u8 cb_count; /* number of callbacks */ - const struct nfnl_callback *cb; /* callback for individual types */ -}; - -extern int nfnetlink_subsys_register(const struct nfnetlink_subsystem *n); -extern int nfnetlink_subsys_unregister(const struct nfnetlink_subsystem *n); - -extern int nfnetlink_has_listeners(unsigned int group); -extern int nfnetlink_send(struct sk_buff *skb, u32 pid, unsigned group, - int echo); -extern int nfnetlink_unicast(struct sk_buff *skb, u_int32_t pid, int flags); - -#define MODULE_ALIAS_NFNL_SUBSYS(subsys) \ - MODULE_ALIAS("nfnetlink-subsys-" __stringify(subsys)) - -#endif /* __KERNEL__ */ #endif /* _NFNETLINK_H */ diff --git a/include/libnfnetlink/linux_nfnetlink_compat.h b/include/libnfnetlink/linux_nfnetlink_compat.h index e145176..74b9e55 100644 --- a/include/libnfnetlink/linux_nfnetlink_compat.h +++ b/include/libnfnetlink/linux_nfnetlink_compat.h @@ -1,6 +1,8 @@ #ifndef _NFNETLINK_COMPAT_H #define _NFNETLINK_COMPAT_H -#ifndef __KERNEL__ + +#include + /* Old nfnetlink macros for userspace */ /* nfnetlink groups: Up to 32 maximum */ @@ -18,10 +20,9 @@ * ! nfnetlink use the same attributes methods. - J. Schulist. */ -struct nfattr -{ - u_int16_t nfa_len; - u_int16_t nfa_type; /* we use 15 bits for the type, and the highest +struct nfattr { + __u16 nfa_len; + __u16 nfa_type; /* we use 15 bits for the type, and the highest * bit to indicate whether the payload is nested */ }; @@ -57,5 +58,4 @@ struct nfattr + NLMSG_ALIGN(sizeof(struct nfgenmsg)))) #define NFM_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct nfgenmsg)) -#endif /* ! __KERNEL__ */ #endif /* _NFNETLINK_COMPAT_H */ -- cgit v1.2.3 ================================================ FILE: package/libnfnetlink/0002-musl.patch ================================================ Include to get the u_int* definitions This is needed to fix the build with the musl C library, and this patch comes from http://git.alpinelinux.org/cgit/aports/plain/main/libnfnetlink/musl-fix-includes.patch. It will no longer be needed with upcoming upstream releases of libnfnetlink, since they have switched to use the types instead. However this change was too invasive to backport. Signed-off-by: Thomas Petazzoni --- libnfnetlink-1.0.1.orig/include/libnfnetlink/linux_nfnetlink.h +++ libnfnetlink-1.0.1/include/libnfnetlink/linux_nfnetlink.h @@ -1,6 +1,6 @@ #ifndef _NFNETLINK_H #define _NFNETLINK_H -#include +#include #include enum nfnetlink_groups { --- libnfnetlink-1.0.1.orig/include/libnfnetlink/libnfnetlink.h +++ libnfnetlink-1.0.1/include/libnfnetlink/libnfnetlink.h @@ -15,6 +15,7 @@ #define aligned_u64 unsigned long long __attribute__((aligned(8))) #endif +#include #include /* for sa_family_t */ #include #include ================================================ FILE: package/libnfnetlink/Config.in ================================================ config BR2_PACKAGE_LIBNFNETLINK bool "libnfnetlink" help libnfnetlink is the low-level library for netfilter related kernel/userspace communication. It provides a generic messaging infrastructure for in-kernel netfilter subsystems (such as nfnetlink_log, nfnetlink_queue, nfnetlink_conntrack) and their respective users and/or management tools in userspace. http://www.netfilter.org/projects/libnfnetlink/ ================================================ FILE: package/libnfnetlink/libnfnetlink.hash ================================================ # From ftp://ftp.netfilter.org/pub/libnfnetlink/libnfnetlink-1.0.1.tar.bz2.{md5sum,sha1sum} md5 98927583d2016a9fb1936fed992e2c5e libnfnetlink-1.0.1.tar.bz2 sha1 27ae2dfbd976e28cb7a417f9e946c901f512dd9a libnfnetlink-1.0.1.tar.bz2 # Hash for license file: sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/libnfnetlink/libnfnetlink.mk ================================================ ################################################################################ # # libnfnetlink # ################################################################################ LIBNFNETLINK_VERSION = 1.0.1 LIBNFNETLINK_SOURCE = libnfnetlink-$(LIBNFNETLINK_VERSION).tar.bz2 LIBNFNETLINK_SITE = http://www.netfilter.org/projects/libnfnetlink/files LIBNFNETLINK_AUTORECONF = YES LIBNFNETLINK_INSTALL_STAGING = YES LIBNFNETLINK_LICENSE = GPL-2.0 LIBNFNETLINK_LICENSE_FILES = COPYING LIBNFNETLINK_CPE_ID_VENDOR = netfilter $(eval $(autotools-package)) ================================================ FILE: package/libnfs/0001-Fix-include-sys-time.h.patch ================================================ From 9df082012cba1dc32d83e5e8b0bdc0892f250058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krause?= Date: Mon, 5 Nov 2018 00:43:07 +0100 Subject: [PATCH] Fix include sys/time.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit POSIX says `struct timeval` is defined if is included. Instead of the mess that is currently done based on the system on which the stuff is being compiled, include it unconditionally. Reported upstream: https://github.com/sahlberg/libnfs/issues/272 Signed-off-by: Jörg Krause --- include/nfsc/libnfs.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/include/nfsc/libnfs.h b/include/nfsc/libnfs.h index 09dcf1c..b6db58c 100755 --- a/include/nfsc/libnfs.h +++ b/include/nfsc/libnfs.h @@ -24,12 +24,7 @@ #define _LIBNFS_H_ #include -#if defined(__ANDROID__) || defined(AROS) \ - || ( defined(__APPLE__) && defined(__MACH__) ) #include -#else -#include -#endif #ifdef __cplusplus extern "C" { -- 2.19.1 ================================================ FILE: package/libnfs/Config.in ================================================ config BR2_PACKAGE_LIBNFS bool "libnfs" depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_TOOLCHAIN_HAS_THREADS # libtirpc select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC help nfs userspace implementation. http://github.com/sahlberg/libnfs comment "libnfs needs a toolchain w/ threads" depends on !(BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_HAS_NATIVE_RPC) ================================================ FILE: package/libnfs/libnfs.hash ================================================ # Locally calculated sha256 6ee77e9fe220e2d3e3b1f53cfea04fb319828cc7dbb97dd9df09e46e901d797d libnfs-4.0.0.tar.gz sha256 edd960c0142b8ada98b43b6396b78f4e557b0bc70ac601a51e397ad04070e2c5 COPYING sha256 d9406ced95457941032aa11d04623b8ab71f2827a3395ebef137aec475be35b1 LICENCE-BSD.txt sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENCE-LGPL-2.1.txt sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENCE-GPL-3.txt ================================================ FILE: package/libnfs/libnfs.mk ================================================ ################################################################################ # # libnfs # ################################################################################ LIBNFS_VERSION = 4.0.0 LIBNFS_SITE = $(call github,sahlberg,libnfs,libnfs-$(LIBNFS_VERSION)) LIBNFS_INSTALL_STAGING = YES LIBNFS_AUTORECONF = YES LIBNFS_LICENSE = LGPL-2.1+ (library), BSD-2-Clause (protocol, .x files), GPL-3.0+ (examples) LIBNFS_LICENSE_FILES = COPYING LICENCE-BSD.txt LICENCE-LGPL-2.1.txt LICENCE-GPL-3.txt LIBNFS_DEPENDENCIES = host-pkgconf ifeq ($(BR2_PACKAGE_LIBTIRPC),y) LIBNFS_DEPENDENCIES += libtirpc endif $(eval $(autotools-package)) ================================================ FILE: package/libnftnl/Config.in ================================================ 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_12 select BR2_PACKAGE_LIBMNL help libnftnl is a userspace library providing a low-level netlink programming interface (API) to the in-kernel nf_tables subsystem. The library libnftnl has been previously known as libnftables. This library is currently used by nftables. http://netfilter.org/projects/libnftnl/index.html if BR2_PACKAGE_LIBNFTNL config BR2_PACKAGE_LIBNFTNL_JSON bool "enable JSON support" select BR2_PACKAGE_JANSSON help Enable JSON parsing support endif ================================================ FILE: package/libnftnl/libnftnl.hash ================================================ # From http://www.netfilter.org/projects/libnftnl/downloads.html sha256 90b01fddfe9be8c3245c3ba5ff5a4424a8df708828f92b2b361976b658c074f5 libnftnl-1.2.0.tar.bz2 sha256 98193898c663001eff2fdcfb676e210c13042bc1a05e8d570c363efa396f8e24 COPYING ================================================ FILE: package/libnftnl/libnftnl.mk ================================================ ################################################################################ # # libnftnl # ################################################################################ LIBNFTNL_VERSION = 1.2.0 LIBNFTNL_SITE = https://netfilter.org/projects/libnftnl/files LIBNFTNL_SOURCE = libnftnl-$(LIBNFTNL_VERSION).tar.bz2 LIBNFTNL_LICENSE = GPL-2.0+ LIBNFTNL_LICENSE_FILES = COPYING LIBNFTNL_INSTALL_STAGING = YES LIBNFTNL_DEPENDENCIES = host-pkgconf libmnl ifeq ($(BR2_PACKAGE_LIBNFTNL_JSON),y) LIBNFTNL_CONF_OPTS += --with-json-parsing LIBNFTNL_DEPENDENCIES += jansson else LIBNFTNL_CONF_OPTS += --without-json-parsing endif $(eval $(autotools-package)) ================================================ FILE: package/libnice/Config.in ================================================ config BR2_PACKAGE_LIBNICE bool "libnice" depends on !BR2_STATIC_LIBS # gnutls depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # fork() select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_GNUTLS select BR2_PACKAGE_LIBGLIB2 help Libnice is an implementation of the IETF's Interactive Connectivity Establishment (ICE) standard (RFC 5245) and the Session Traversal Utilities for NAT (STUN) standard (RFC 5389). It provides a GLib-based library, libnice and a Glib-free library, libstun as well as GStreamer elements. http://nice.freedesktop.org/wiki/ comment "libnice 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 ================================================ FILE: package/libnice/libnice.hash ================================================ # Locally computed after checking pgp signature sha256 5eabd25ba2b54e817699832826269241abaa1cf78f9b240d1435f936569273f4 libnice-0.1.18.tar.gz # Hash for license files: sha256 9246b2ee8b1db30cf03d5d9719ad8bb5edce1cadc85f8cfef319c23d24d950b5 COPYING sha256 3b3c75ae6c663c4f93987647eb5463d33dc1602a1aded3ac479773f2c3928e3a COPYING.MPL sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING.LGPL ================================================ FILE: package/libnice/libnice.mk ================================================ ################################################################################ # # libnice # ################################################################################ LIBNICE_VERSION = 0.1.18 LIBNICE_SITE = http://nice.freedesktop.org/releases LIBNICE_LICENSE = MPL-1.1 or LGPL-2.1 LIBNICE_LICENSE_FILES = COPYING COPYING.MPL COPYING.LGPL LIBNICE_DEPENDENCIES = libglib2 host-pkgconf LIBNICE_INSTALL_STAGING = YES LIBNICE_CONF_OPTS = \ -Dexamples=disabled \ -Dtests=disabled ifeq ($(BR2_PACKAGE_GNUTLS),y) LIBNICE_CONF_OPTS += -Dcrypto-library=gnutls LIBNICE_DEPENDENCIES += gnutls else LIBNICE_CONF_OPTS += -Dcrypto-library=openssl LIBNICE_DEPENDENCIES += openssl endif ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBNICE_CONF_OPTS += -Dintrospection=enabled LIBNICE_DEPENDENCIES += gobject-introspection else LIBNICE_CONF_OPTS += -Dintrospection=disabled endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y) LIBNICE_CONF_OPTS += -Dgstreamer=enabled LIBNICE_DEPENDENCIES += gst1-plugins-base else LIBNICE_CONF_OPTS += -Dgstreamer=disabled endif $(eval $(meson-package)) ================================================ FILE: package/libnids/0001-libpcap-use-pkg-config.patch ================================================ configure.in: use pkg-config for libpcap detection The detection of libpcap was based in ${prefix}, which doesn't make sense in a cross-compilation context and can cause host leakage into the target build. So instead, let's use pkg-config to detect libpcap, since it is anyway already use in this configure.in to detect libglib. Signed-off-by: Thomas Petazzoni Index: b/configure.in =================================================================== --- a/configure.in +++ b/configure.in @@ -75,25 +75,13 @@ fi ;; esac ], -[ if test -f ${prefix}/include/pcap.h; then - PCAP_CFLAGS="-I${prefix}/include" - PCAPLIB="-L${exec_prefix}/lib -lpcap" - elif test -f /usr/include/pcap/pcap.h; then - PCAP_CFLAGS="-I/usr/include/pcap" - PCAPLIB="-lpcap" - else - TMP=$LIBS - LIBS="-lpcap $LIBS" - AC_TRY_LINK([#include ], pcap_open_offline("",""), - LIBPCAP_FOUND=1,LIBPCAP_FOUND=0) - LIBS=$TMP - if test $LIBPCAP_FOUND = 1 ; then - PCAPLIB="-lpcap" - else - AC_ERROR(libpcap not found) - fi - fi - AC_MSG_RESULT(yes) ] +[ + PKG_PROG_PKG_CONFIG + PKG_CHECK_MODULES(LIBPCAP, libpcap) + AC_MSG_RESULT(yes) + PCAP_CFLAGS=${LIBPCAP_CFLAGS} + PCAPLIB=${LIBPCAP_LIBS} +] ) AC_SUBST(PCAP_CFLAGS) AC_SUBST(PCAPLIB) ================================================ FILE: package/libnids/Config.in ================================================ config BR2_PACKAGE_LIBNIDS bool "libnids" select BR2_PACKAGE_LIBPCAP help Libnids is an implementation of an E-component of Network Intrusion Detection System. libnids watches all local network traffic, and provides convenient information on them to perform further analysis. Libnids offers IP defragmentation, TCP stream assembly, TCP port scan detection. http://libnids.sourceforge.net/ ================================================ FILE: package/libnids/libnids.hash ================================================ # Locally calculated sha256 314b4793e0902fbf1fdb7fb659af37a3c1306ed1aad5d1c84de6c931b351d359 libnids-1.24.tar.gz sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/libnids/libnids.mk ================================================ ################################################################################ # # libnids # ################################################################################ LIBNIDS_VERSION = 1.24 LIBNIDS_SITE = https://sourceforge.net/projects/libnids/files/libnids/$(LIBNIDS_VERSION) LIBNIDS_LICENSE = GPL-2.0 LIBNIDS_LICENSE_FILES = COPYING LIBNIDS_CPE_ID_VENDOR = libnids_project LIBNIDS_INSTALL_STAGING = YES LIBNIDS_DEPENDENCIES = host-pkgconf libpcap LIBNIDS_AUTORECONF = YES # disable libnet if not available # Tests in configure.in expect --with-libnet=$build_dir # not an installation patch like in our context. # We use with-libnet=yes to skip the unusual paths tests. # But 'LNETLIB' gets left out, so we need to define it ourselves. ifeq ($(BR2_PACKAGE_LIBNET),y) LIBNIDS_DEPENDENCIES += libnet LIBNIDS_CONF_OPTS += --enable-libnet --with-libnet=yes LNETLIB=-lnet else LIBNIDS_CONF_OPTS += --disable-libnet endif # disable libglib2 if not available # The test in configure.in is flawed: passing --enable-libglib would also # disable it. Only when neither is passed will the autodetection test be # executed. ifeq ($(BR2_PACKAGE_LIBGLIB2),y) LIBNIDS_DEPENDENCIES += libglib2 else LIBNIDS_CONF_OPTS += --disable-libglib endif # hand-written Makefile.in, not using automake, needs a custom # variable for the installation path. LIBNIDS_INSTALL_STAGING_OPTS = install_prefix=$(STAGING_DIR) install LIBNIDS_INSTALL_TARGET_OPTS = install_prefix=$(TARGET_DIR) install $(eval $(autotools-package)) ================================================ FILE: package/libnl/0001-build-add-Libs.private-field-in-libnl-pkg-config-fil.patch ================================================ From db0d59cd06f3ffd350379847c0885e1bfb85af0f Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 7 Mar 2015 11:34:42 +0100 Subject: [PATCH 2/2] build: add Libs.private field in libnl pkg-config file In order to support static linking, the libnl pkg-config file should indicate in its Libs.private field the libraries that libnl-3.0.a requires. The LIBS variable contains the appropriate list of libraries: -lm in all cases, and -lpthread when pthread support is enabled. This allows to statically link applications against libnl properly. Signed-off-by: Thomas Petazzoni --- libnl-3.0.pc.in | 1 + 1 file changed, 1 insertion(+) diff --git a/libnl-3.0.pc.in b/libnl-3.0.pc.in index b87e3dc..ddbc999 100644 --- a/libnl-3.0.pc.in +++ b/libnl-3.0.pc.in @@ -7,4 +7,5 @@ Name: libnl Description: Convenience library for netlink sockets Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lnl-@MAJ_VERSION@ +Libs.private: @LIBS@ Cflags: -I${includedir}/libnl@MAJ_VERSION@ -- 2.1.0 ================================================ FILE: package/libnl/0002-Add-musl-workaround-to-the-libc-compat.h-copy.patch ================================================ From be07fdbc9658de19304defa7538f219cd3f21ec0 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Sun, 12 Mar 2017 08:52:20 +0200 Subject: [PATCH] Add musl workaround to the libc-compat.h copy The libc-compat.h kernel header uses glibc specific macros to solve conflicts with libc provided headers. This patch makes libc-compat.h work also for musl libc. Future rebase note: when upstream updates libc-compat.h some additional macro definitions will be needed. See the Buildroot iproute2 patch package/iproute2/0001-Add-the-musl-workaround-to-the-libc-compat.h-copy.patch. Signed-off-by: Baruch Siach --- Upstream status: libc-compat.h is a local copy of a kernel headers. A proper musl fix must go to the kernel first. --- include/linux-private/linux/libc-compat.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux-private/linux/libc-compat.h b/include/linux-private/linux/libc-compat.h index 9bed5b6ae4d9..e2562a819464 100644 --- a/include/linux-private/linux/libc-compat.h +++ b/include/linux-private/linux/libc-compat.h @@ -49,7 +49,7 @@ #define _LIBC_COMPAT_H /* We have included glibc headers... */ -#if defined(__GLIBC__) +#if 1 /* Coordinate with glibc netinet/in.h header. */ #if defined(_NETINET_IN_H) -- 2.11.0 ================================================ FILE: package/libnl/Config.in ================================================ config BR2_PACKAGE_LIBNL bool "libnl" depends on BR2_TOOLCHAIN_HAS_THREADS help A library for applications dealing with netlink socket. https://github.com/thom311/libnl if BR2_PACKAGE_LIBNL config BR2_PACKAGE_LIBNL_TOOLS bool "install tools" # uses depends on !BR2_STATIC_LIBS help Install binary tools. comment "libnl tools needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS endif comment "libnl needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libnl/libnl.hash ================================================ # From https://github.com/thom311/libnl/releases/download/libnl3_5_0/libnl-3.5.0.tar.gz.md5sum md5 74ba57b1b1d6f9f92268aa8141d8e8e4 libnl-3.5.0.tar.gz # From https://github.com/thom311/libnl/releases/download/libnl3_5_0/libnl-3.5.0.tar.gz.sha256sum sha256 352133ec9545da76f77e70ccb48c9d7e5324d67f6474744647a7ed382b5e05fa libnl-3.5.0.tar.gz # Locally calculated sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/libnl/libnl.mk ================================================ ################################################################################ # # libnl # ################################################################################ LIBNL_VERSION = 3.5.0 LIBNL_SITE = https://github.com/thom311/libnl/releases/download/libnl$(subst .,_,$(LIBNL_VERSION)) LIBNL_LICENSE = LGPL-2.1+ LIBNL_LICENSE_FILES = COPYING LIBNL_CPE_ID_VENDOR = libnl_project LIBNL_INSTALL_STAGING = YES LIBNL_DEPENDENCIES = host-bison host-flex host-pkgconf ifeq ($(BR2_PACKAGE_LIBNL_TOOLS),y) LIBNL_CONF_OPTS += --enable-cli else LIBNL_CONF_OPTS += --disable-cli endif ifeq ($(BR2_PACKAGE_CHECK),y) LIBNL_DEPENDENCIES += check LIBNL_CONF_OPTS += --enable-unit-tests else LIBNL_CONF_OPTS += --disable-unit-tests endif $(eval $(autotools-package)) ================================================ FILE: package/libnpth/Config.in ================================================ config BR2_PACKAGE_LIBNPTH bool "libnpth" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() help nPth is a library to provide the GNU Pth API and thus a non-preemptive threads implementation. https://www.gnupg.org/related_software/npth/index.html comment "libnpth needs a toolchain w/ threads support" depends on !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU ================================================ FILE: package/libnpth/libnpth.hash ================================================ # Locally calculated after checking signature # https://gnupg.org/ftp/gcrypt/npth/npth-1.6.tar.bz2.sig # using key D8692123C4065DEA5E0F3AB5249B39D24F25E3B6 sha256 1393abd9adcf0762d34798dc34fdcf4d0d22a8410721e76f1e3afcd1daa4e2d1 npth-1.6.tar.bz2 # Hash for license file: sha256 ce64d5f7b49ea6d80fdb6d4cdee6839d1a94274f7493dc797c3b55b65ec8e9ed COPYING.LIB ================================================ FILE: package/libnpth/libnpth.mk ================================================ ################################################################################ # # libnpth # ################################################################################ LIBNPTH_VERSION = 1.6 LIBNPTH_SOURCE = npth-$(LIBNPTH_VERSION).tar.bz2 LIBNPTH_SITE = https://www.gnupg.org/ftp/gcrypt/npth LIBNPTH_LICENSE = LGPL-2.0+ LIBNPTH_LICENSE_FILES = COPYING.LIB LIBNPTH_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libnpupnp/Config.in ================================================ config BR2_PACKAGE_LIBNPUPNP bool "libnpupnp" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 select BR2_PACKAGE_EXPAT select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBMICROHTTPD help npupnp (new pupnp or not pupnp ?) is an UPnP library derived from the venerable pupnp (https://github.com/pupnp/pupnp), based on its 1.6.x branch (around 1.6.25). https://www.lesbonscomptes.com/upmpdcli/libnpupnp.html comment "libnpupnp needs a toolchain w/ C++, threads, gcc >= 4.9" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/libnpupnp/libnpupnp.hash ================================================ # Hash from: http://www.lesbonscomptes.com/upmpdcli/downloads/libnpupnp-4.1.4.tar.gz.sha256 sha256 03506f02546e3b3d31b389e046c4691f020b82d315426ce79f1e2b1eb7958656 libnpupnp-4.1.4.tar.gz # Hash for license file: sha256 c8b99423cad48bb44e2cf52a496361404290865eac259a82da6d1e4331ececb3 COPYING ================================================ FILE: package/libnpupnp/libnpupnp.mk ================================================ ################################################################################ # # libnpupnp # ################################################################################ LIBNPUPNP_VERSION = 4.1.4 LIBNPUPNP_SITE = http://www.lesbonscomptes.com/upmpdcli/downloads LIBNPUPNP_LICENSE = BSD-3-Clause LIBNPUPNP_LICENSE_FILES = COPYING LIBNPUPNP_INSTALL_STAGING = YES LIBNPUPNP_DEPENDENCIES = expat libcurl libmicrohttpd $(eval $(autotools-package)) ================================================ FILE: package/libnspr/Config.in ================================================ config BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT def_bool y if BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT config BR2_PACKAGE_LIBNSPR bool "libnspr" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS help NSPR is the Netscape Portable Runtime library which provides a platform-neutral API for system level and libc like functions. The library is used by the Mozilla project as well as others. http://www.mozilla.org/projects/nspr/ comment "libnspr needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS endif ================================================ FILE: package/libnspr/libnspr.hash ================================================ # From https://ftp.mozilla.org/pub/nspr/releases/v4.32/src/SHA256SUMS sha256 bb6bf4f534b9559cf123dcdc6f9cd8167de950314a90a88b2a329c16836e7f6c nspr-4.32.tar.gz # Locally calculated sha256 fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85 nspr/LICENSE ================================================ FILE: package/libnspr/libnspr.mk ================================================ ################################################################################ # # libnspr # ################################################################################ LIBNSPR_VERSION = 4.32 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 LIBNSPR_INSTALL_STAGING = YES LIBNSPR_CONFIG_SCRIPTS = nspr-config LIBNSPR_LICENSE = MPL-2.0 LIBNSPR_LICENSE_FILES = nspr/LICENSE LIBNSPR_CPE_ID_VENDOR = mozilla LIBNSPR_CPE_ID_PRODUCT = netscape_portable_runtime # Set the host CFLAGS and LDFLAGS so NSPR does not guess wrongly LIBNSPR_CONF_ENV = \ HOST_CFLAGS="-g -O2" \ HOST_LDFLAGS="-lc" # NSPR mixes up --build and --host LIBNSPR_CONF_OPTS = --host=$(GNU_HOST_NAME) LIBNSPR_CONF_OPTS += --$(if $(BR2_ARCH_IS_64),en,dis)able-64bit # ./nspr/pr/include/md/_linux.h tests only __GLIBC__ version to detect # c-library features, list musl features here for now (taken from # Alpine Linux). ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) LIBNSPR_CFLAGS += \ -D_PR_POLL_AVAILABLE \ -D_PR_HAVE_OFF64_T \ -D_PR_INET6 \ -D_PR_HAVE_INET_NTOP \ -D_PR_HAVE_GETHOSTBYNAME2 \ -D_PR_HAVE_GETADDRINFO \ -D_PR_INET6_PROBE endif LIBNSPR_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) $(LIBNSPR_CFLAGS)" ifeq ($(BR2_STATIC_LIBS),y) LIBNSPR_MAKE_OPTS = SHARED_LIBRARY= LIBNSPR_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) SHARED_LIBRARY= install LIBNSPR_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) SHARED_LIBRARY= install endif ifeq ($(BR2_SHARED_LIBS),y) LIBNSPR_MAKE_OPTS = LIBRARY= LIBNSPR_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) LIBRARY= install LIBNSPR_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) LIBRARY= install endif HOST_LIBNSPR_CONF_OPTS += --$(if $(filter %64,$(HOSTARCH)),en,dis)able-64bit $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libnss/Config.in ================================================ config BR2_PACKAGE_LIBNSS bool "libnss" depends on BR2_TOOLCHAIN_HAS_THREADS # libnspr depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT # libnspr depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBNSPR select BR2_PACKAGE_SQLITE select BR2_PACKAGE_ZLIB help Network Security Services (NSS) is a set of libraries designed to support development of security-enabled client and server applications. Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, and X.509 v3 certificates. http://www.mozilla.org/projects/security/pki/nss/ if BR2_PACKAGE_LIBNSS config BR2_PACKAGE_LIBNSS_ARCH string default "aarch64" if BR2_aarch64_be default "ppc" if BR2_powerpc default "ppc64" if BR2_powerpc64 default "ppc64le" if BR2_powerpc64le default BR2_ARCH endif comment "libnss needs a toolchain w/ threads, dynamic library" depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libnss/libnss.hash ================================================ # From https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_73_RTM/src/SHA256SUMS sha256 566d3a68da9b10d7da9ef84eb4fe182f8f04e20d85c55d1bf360bb2c0096d8e5 nss-3.73.tar.gz # Locally calculated sha256 a20c1a32d1f8102432360b42e932869f7c11c7cdbacf9cac554c422132af47f4 nss/COPYING ================================================ FILE: package/libnss/libnss.mk ================================================ ################################################################################ # # libnss # ################################################################################ LIBNSS_VERSION = 3.73 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 LIBNSS_INSTALL_STAGING = YES LIBNSS_DEPENDENCIES = libnspr sqlite zlib LIBNSS_LICENSE = MPL-2.0 LIBNSS_LICENSE_FILES = nss/COPYING LIBNSS_CPE_ID_VENDOR = mozilla LIBNSS_CPE_ID_PRODUCT = nss LIBNSS_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85862),y) LIBNSS_CFLAGS += -O0 endif # Need to pass down TARGET_CFLAGS and TARGET_LDFLAGS define LIBNSS_FIXUP_LINUX_MK echo 'OS_CFLAGS += $(LIBNSS_CFLAGS)' >> $(@D)/nss/coreconf/Linux.mk echo 'LDFLAGS += $(TARGET_LDFLAGS)' >> $(@D)/nss/coreconf/Linux.mk endef LIBNSS_PRE_CONFIGURE_HOOKS += LIBNSS_FIXUP_LINUX_MK # --gc-sections triggers binutils ld segfault # https://sourceware.org/bugzilla/show_bug.cgi?id=21180 ifeq ($(BR2_microblaze),y) define LIBNSS_DROP_GC_SECTIONS sed -i 's:-Wl,--gc-sections::g' $(@D)/nss/coreconf/Linux.mk endef LIBNSS_PRE_CONFIGURE_HOOKS += LIBNSS_DROP_GC_SECTIONS endif LIBNSS_BUILD_VARS = \ MOZILLA_CLIENT=1 \ NSPR_INCLUDE_DIR=$(STAGING_DIR)/usr/include/nspr \ NSPR_LIB_DIR=$(STAGING_DIR)/usr/lib \ NS_USE_GCC=1 \ NSS_DISABLE_GTESTS=1 \ NSS_USE_SYSTEM_SQLITE=1 \ NATIVE_CC="$(HOSTCC)" \ OS_ARCH="Linux" \ OS_RELEASE="2.6" \ OS_TEST=$(BR2_PACKAGE_LIBNSS_ARCH) \ NSS_ENABLE_WERROR=0 ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),) # Disable Altivec if not supported LIBNSS_BUILD_VARS += NSS_DISABLE_ALTIVEC=1 endif ifeq ($(BR2_ARM_CPU_HAS_NEON),) # Disable arm32-neon if neon is not supported LIBNSS_BUILD_VARS += NSS_DISABLE_ARM32_NEON=1 endif ifeq ($(BR2_ARCH_IS_64),y) # MIPS64 n32 is treated as a 32-bit architecture by libnss. # See: https://bugzilla.mozilla.org/show_bug.cgi?id=1010730 ifeq ($(BR2_MIPS_NABI32),) LIBNSS_BUILD_VARS += USE_64=1 endif endif define LIBNSS_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/nss coreconf \ SOURCE_MD_DIR=$(@D)/$(LIBNSS_DISTDIR) \ DIST=$(@D)/$(LIBNSS_DISTDIR) \ CHECKLOC= \ $(LIBNSS_BUILD_VARS) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/nss lib/dbm all \ SOURCE_MD_DIR=$(@D)/$(LIBNSS_DISTDIR) \ DIST=$(@D)/$(LIBNSS_DISTDIR) \ CHECKLOC= \ $(LIBNSS_BUILD_VARS) NATIVE_FLAGS="$(HOST_CFLAGS) -DLINUX" endef define LIBNSS_INSTALL_STAGING_CMDS $(INSTALL) -m 755 -t $(STAGING_DIR)/usr/lib/ \ $(@D)/$(LIBNSS_DISTDIR)/lib/*.so $(INSTALL) -m 755 -d $(STAGING_DIR)/usr/include/nss $(INSTALL) -m 644 -t $(STAGING_DIR)/usr/include/nss \ $(@D)/$(LIBNSS_DISTDIR)/public/nss/* $(INSTALL) -m 755 -t $(STAGING_DIR)/usr/lib/ \ $(@D)/$(LIBNSS_DISTDIR)/lib/*.a $(INSTALL) -D -m 0644 $(TOPDIR)/package/libnss/nss.pc.in \ $(STAGING_DIR)/usr/lib/pkgconfig/nss.pc $(SED) 's/@VERSION@/$(LIBNSS_VERSION)/g;' \ $(STAGING_DIR)/usr/lib/pkgconfig/nss.pc endef define LIBNSS_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/lib/ \ $(@D)/$(LIBNSS_DISTDIR)/lib/*.so $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/include/nss $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/include/nss \ $(@D)/$(LIBNSS_DISTDIR)/public/nss/* $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/lib/ \ $(@D)/$(LIBNSS_DISTDIR)/lib/*.a $(INSTALL) -D -m 0644 $(TOPDIR)/package/libnss/nss.pc.in \ $(TARGET_DIR)/usr/lib/pkgconfig/nss.pc $(INSTALL) -D -m 755 $(@D)/$(LIBNSS_DISTDIR)/bin/certutil \ $(TARGET_DIR)/usr/bin/certutil $(SED) 's/@VERSION@/$(LIBNSS_VERSION)/g;' \ $(TARGET_DIR)/usr/lib/pkgconfig/nss.pc endef HOST_LIBNSS_BUILD_VARS = \ MOZILLA_CLIENT=1 \ NSPR_INCLUDE_DIR=$(HOST_DIR)/include/nspr \ NSPR_LIB_DIR=$(HOST_DIR)/lib \ NS_USE_GCC=1 \ NSS_DISABLE_GTESTS=1 \ NSS_USE_SYSTEM_SQLITE=1 \ SQLITE_INCLUDE_DIR=$(HOST_DIR)/include \ ZLIB_INCLUDE_DIR=$(HOST_DIR)/include \ NSS_ENABLE_WERROR=0 HOST_LIBNSS_DEPENDENCIES = host-libnspr host-sqlite host-zlib ifneq ($(filter %64,$(HOSTARCH)),) HOST_LIBNSS_BUILD_VARS += USE_64=1 endif define HOST_LIBNSS_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D)/nss coreconf \ SOURCE_MD_DIR=$(@D)/$(LIBNSS_DISTDIR) \ DIST=$(@D)/$(LIBNSS_DISTDIR) \ CHECKLOC= \ $(HOST_LIBNSS_BUILD_VARS) $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D)/nss lib/dbm all \ SOURCE_MD_DIR=$(@D)/$(LIBNSS_DISTDIR) \ DIST=$(@D)/$(LIBNSS_DISTDIR) \ CHECKLOC= \ $(HOST_LIBNSS_BUILD_VARS) endef define HOST_LIBNSS_INSTALL_CMDS $(INSTALL) -m 755 -t $(HOST_DIR)/lib/ \ $(@D)/$(LIBNSS_DISTDIR)/lib/*.so $(INSTALL) -m 755 -d $(HOST_DIR)/include/nss $(INSTALL) -m 644 -t $(HOST_DIR)/include/nss \ $(@D)/$(LIBNSS_DISTDIR)/public/nss/* $(INSTALL) -m 755 -t $(HOST_DIR)/lib/ \ $(@D)/$(LIBNSS_DISTDIR)/lib/*.a $(INSTALL) -D -m 0644 $(TOPDIR)/package/libnss/nss.pc.in \ $(HOST_DIR)/lib/pkgconfig/nss.pc $(SED) 's/@VERSION@/$(LIBNSS_VERSION)/g;' \ $(HOST_DIR)/lib/pkgconfig/nss.pc $(SED) '/^prefix/s,=.*,=$(HOST_DIR),g;' \ $(HOST_DIR)/lib/pkgconfig/nss.pc endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/libnss/nss.pc.in ================================================ prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include/nss Name: NSS Description: Mozilla Network Security Services Version: @VERSION@ Requires: nspr Libs: -L${libdir} -lnss3 -lnssutil3 -lsmime3 -lssl3 Cflags: -I${includedir} ================================================ FILE: package/liboauth/0001-Fixes-build-issue-with-OpenSSL-1.1.0.patch ================================================ From 5f1c949b1703367f7f06454fcff650bdb7bac840 Mon Sep 17 00:00:00 2001 From: DJ Lucas Date: Sun, 9 Sep 2018 15:46:15 +0200 Subject: [PATCH] Fixes build issue with OpenSSL-1.1.0 Downloaded from http://www.linuxfromscratch.org/patches/blfs/svn/liboauth-1.0.3-openssl-1.1.0-2.patch Patch was sent upstream: https://github.com/x42/liboauth/issues/9 Signed-off-by: Bernd Kuhls --- src/hash.c | 65 ++++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/src/hash.c b/src/hash.c index 17ff5c8..b7958f7 100644 --- a/src/hash.c +++ b/src/hash.c @@ -362,6 +362,11 @@ looser: #include "oauth.h" // base64 encode fn's. #include +#if OPENSSL_VERSION_NUMBER < 0x10100000 +#define EVP_MD_CTX_new EVP_MD_CTX_create +#define EVP_MD_CTX_free EVP_MD_CTX_destroy +#endif + char *oauth_sign_hmac_sha1 (const char *m, const char *k) { return(oauth_sign_hmac_sha1_raw (m, strlen(m), k, strlen(k))); } @@ -386,7 +391,7 @@ char *oauth_sign_rsa_sha1 (const char *m, const char *k) { unsigned char *sig = NULL; unsigned char *passphrase = NULL; unsigned int len=0; - EVP_MD_CTX md_ctx; + EVP_MD_CTX *md_ctx; EVP_PKEY *pkey; BIO *in; @@ -399,24 +404,31 @@ char *oauth_sign_rsa_sha1 (const char *m, const char *k) { return xstrdup("liboauth/OpenSSL: can not read private key"); } + md_ctx = EVP_MD_CTX_new(); + if (md_ctx == NULL) { + return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX"); + } + len = EVP_PKEY_size(pkey); sig = (unsigned char*)xmalloc((len+1)*sizeof(char)); - EVP_SignInit(&md_ctx, EVP_sha1()); - EVP_SignUpdate(&md_ctx, m, strlen(m)); - if (EVP_SignFinal (&md_ctx, sig, &len, pkey)) { + EVP_SignInit(md_ctx, EVP_sha1()); + EVP_SignUpdate(md_ctx, m, strlen(m)); + if (EVP_SignFinal (md_ctx, sig, &len, pkey)) { char *tmp; sig[len] = '\0'; tmp = oauth_encode_base64(len,sig); OPENSSL_free(sig); EVP_PKEY_free(pkey); + EVP_MD_CTX_free(md_ctx); return tmp; } + EVP_MD_CTX_free(md_ctx); return xstrdup("liboauth/OpenSSL: rsa-sha1 signing failed"); } int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) { - EVP_MD_CTX md_ctx; + EVP_MD_CTX *md_ctx; EVP_PKEY *pkey; BIO *in; X509 *cert = NULL; @@ -437,13 +449,18 @@ int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) { return -2; } + md_ctx = EVP_MD_CTX_new(); + if (md_ctx == NULL) { + return -2; + } + b64d= (unsigned char*) xmalloc(sizeof(char)*strlen(s)); slen = oauth_decode_base64(b64d, s); - EVP_VerifyInit(&md_ctx, EVP_sha1()); - EVP_VerifyUpdate(&md_ctx, m, strlen(m)); - err = EVP_VerifyFinal(&md_ctx, b64d, slen, pkey); - EVP_MD_CTX_cleanup(&md_ctx); + EVP_VerifyInit(md_ctx, EVP_sha1()); + EVP_VerifyUpdate(md_ctx, m, strlen(m)); + err = EVP_VerifyFinal(md_ctx, b64d, slen, pkey); + EVP_MD_CTX_free(pkey); EVP_PKEY_free(pkey); xfree(b64d); return (err); @@ -455,35 +472,41 @@ int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) { */ char *oauth_body_hash_file(char *filename) { unsigned char fb[BUFSIZ]; - EVP_MD_CTX ctx; + EVP_MD_CTX *ctx; size_t len=0; unsigned char *md; FILE *F= fopen(filename, "r"); if (!F) return NULL; - EVP_MD_CTX_init(&ctx); - EVP_DigestInit(&ctx,EVP_sha1()); + ctx = EVP_MD_CTX_new(); + if (ctx == NULL) { + return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX"); + } + EVP_DigestInit(ctx,EVP_sha1()); while (!feof(F) && (len=fread(fb,sizeof(char),BUFSIZ, F))>0) { - EVP_DigestUpdate(&ctx, fb, len); + EVP_DigestUpdate(ctx, fb, len); } fclose(F); len=0; md=(unsigned char*) xcalloc(EVP_MD_size(EVP_sha1()),sizeof(unsigned char)); - EVP_DigestFinal(&ctx, md,(unsigned int*) &len); - EVP_MD_CTX_cleanup(&ctx); + EVP_DigestFinal(ctx, md,(unsigned int*) &len); + EVP_MD_CTX_free(ctx); return oauth_body_hash_encode(len, md); } char *oauth_body_hash_data(size_t length, const char *data) { - EVP_MD_CTX ctx; + EVP_MD_CTX *ctx; size_t len=0; unsigned char *md; md=(unsigned char*) xcalloc(EVP_MD_size(EVP_sha1()),sizeof(unsigned char)); - EVP_MD_CTX_init(&ctx); - EVP_DigestInit(&ctx,EVP_sha1()); - EVP_DigestUpdate(&ctx, data, length); - EVP_DigestFinal(&ctx, md,(unsigned int*) &len); - EVP_MD_CTX_cleanup(&ctx); + ctx = EVP_MD_CTX_new(); + if (ctx == NULL) { + return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX"); + } + EVP_DigestInit(ctx,EVP_sha1()); + EVP_DigestUpdate(ctx, data, length); + EVP_DigestFinal(ctx, md,(unsigned int*) &len); + EVP_MD_CTX_free(ctx); return oauth_body_hash_encode(len, md); } -- 2.14.4 ================================================ FILE: package/liboauth/Config.in ================================================ config BR2_PACKAGE_LIBOAUTH bool "liboauth" select BR2_PACKAGE_OPENSSL help liboauth is a collection of c functions implementing the oAuth Core 1.0 Rev A standard API. liboauth provides basic functions to escape and encode parameters according to oAuth specs and offers high-level functions to sign requests or verify signatures. http://liboauth.sourceforge.net/ ================================================ FILE: package/liboauth/liboauth.hash ================================================ # Locally computed: sha256 0df60157b052f0e774ade8a8bac59d6e8d4b464058cc55f9208d72e41156811f liboauth-1.0.3.tar.gz sha256 c30608672733bf3abd2ccf6f3206be8d91b7ee58b007b2fdbcfbc61c655e7fb7 COPYING.MIT ================================================ FILE: package/liboauth/liboauth.mk ================================================ ################################################################################ # # liboauth # ################################################################################ LIBOAUTH_VERSION = 1.0.3 LIBOAUTH_SITE = http://downloads.sourceforge.net/project/liboauth LIBOAUTH_INSTALL_STAGING = YES LIBOAUTH_DEPENDENCIES += host-pkgconf openssl LIBOAUTH_LICENSE = MIT LIBOAUTH_LICENSE_FILES = COPYING.MIT ifeq ($(BR2_PACKAGE_LIBCURL),y) LIBOAUTH_DEPENDENCIES += libcurl else LIBOAUTH_CONF_OPTS += --disable-libcurl endif $(eval $(autotools-package)) ================================================ FILE: package/libodb/Config.in ================================================ config BR2_PACKAGE_LIBODB bool "libodb" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP help This package contains the common ODB runtime library. Every application that includes code generated by the ODB compiler will need to link to this library. https://www.codesynthesis.com/products/odb/ comment "libodb needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libodb/libodb.hash ================================================ # From https://www.codesynthesis.com/projects/libcutl/ sha1 42bd2a8023e338e004711e755eb30bd122b844a6 libodb-2.4.0.tar.bz2 # Locally Computed sha256 66a1bb4e8bb6ef60cc79334f8028c4d4de98d87f2ff6f8123b4cfb7751ce0007 libodb-2.4.0.tar.bz2 sha256 841105a470fc283851c63941510ffd403c726d1910b688f7df95914ab8b1b5a3 LICENSE ================================================ FILE: package/libodb/libodb.mk ================================================ ################################################################################ # # libodb # ################################################################################ LIBODB_VERSION_MAJOR = 2.4 LIBODB_VERSION = $(LIBODB_VERSION_MAJOR).0 LIBODB_SOURCE = libodb-$(LIBODB_VERSION).tar.bz2 LIBODB_SITE = https://www.codesynthesis.com/download/odb/$(LIBODB_VERSION_MAJOR) LIBODB_INSTALL_STAGING = YES LIBODB_LICENSE = GPL-2.0 LIBODB_LICENSE_FILES = LICENSE LIBODB_CONF_ENV = CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" $(eval $(autotools-package)) ================================================ FILE: package/libodb-boost/Config.in ================================================ config BR2_PACKAGE_LIBODB_BOOST bool "libodb-boost" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_BOOST select BR2_PACKAGE_LIBODB help This package contains the common ODB runtime library. Every application that includes code generated by the ODB compiler will need to link to this library. https://www.codesynthesis.com/products/odb/ comment "libodb-boost needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_BOOST ================================================ FILE: package/libodb-boost/libodb-boost.hash ================================================ # From https://www.codesynthesis.com/projects/libcutl/ sha1 f813702b2856732e199ae34e3393b8cecff878ef libodb-boost-2.4.0.tar.bz2 # Locally computed sha256 b41bd4aaa3f3c9563cfa41bae19bda1bbcc3652e4430b4ebb1819eef2ffcadf4 libodb-boost-2.4.0.tar.bz2 sha256 841105a470fc283851c63941510ffd403c726d1910b688f7df95914ab8b1b5a3 LICENSE ================================================ FILE: package/libodb-boost/libodb-boost.mk ================================================ ################################################################################ # # libodb-boost # ################################################################################ LIBODB_BOOST_VERSION_MAJOR = 2.4 LIBODB_BOOST_VERSION = $(LIBODB_BOOST_VERSION_MAJOR).0 LIBODB_BOOST_SOURCE = libodb-boost-$(LIBODB_BOOST_VERSION).tar.bz2 LIBODB_BOOST_SITE = https://www.codesynthesis.com/download/odb/$(LIBODB_BOOST_VERSION_MAJOR) LIBODB_BOOST_INSTALL_STAGING = YES LIBODB_BOOST_LICENSE = GPL-2.0 LIBODB_BOOST_LICENSE_FILES = LICENSE LIBODB_BOOST_DEPENDENCIES = boost libodb LIBODB_BOOST_CONF_ENV = CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" $(eval $(autotools-package)) ================================================ FILE: package/libodb-mysql/0001-fix-syntax-issue-while-checking-ldflags.patch ================================================ From 3af12d8d0f749751e487955c24260049e7a8eec6 Mon Sep 17 00:00:00 2001 From: Kamel Bouhara Date: Wed, 13 May 2020 16:58:22 +0200 Subject: [PATCH] fix syntax issue while checking ldflags Signed-off-by: Kamel Bouhara --- configure | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index def5883..2d783f6 100755 --- a/configure +++ b/configure @@ -17574,7 +17574,7 @@ libmysqlclient_paths="none /usr/lib/mysql /usr/lib64/mysql" for path in $libmysqlclient_paths; do -if test x"path" != xnone; then +if test x"$path" != xnone; then save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -L$path" fi @@ -17753,7 +17753,7 @@ if test x"$libmysqlclient_found" = xyes; then break; fi -if test x"path" != xnone; then +if test x"$path" != xnone; then LDFLAGS="$save_LDFLAGS" fi -- 2.26.2 ================================================ FILE: package/libodb-mysql/0002-mariadb-FTBFS-fix.patch ================================================ From 552474a477989d0d3514f126b8e314dccc27878c Mon Sep 17 00:00:00 2001 From: Kamel Bouhara Date: Wed, 1 Jul 2020 08:58:24 +0200 Subject: [PATCH] mariadb FTBFS fix From: https://sources.debian.org/patches/libodb-mysql/2.4.0-4/mariadb_FTBFS_fix.patch/ Description: fix FTBFS with recent MariaDB versions Don't include internal an header, only the main one. Bug-Debian: https://bugs.debian.org/919374 Forwarded: no Author: Laszlo Boszormenyi (GCS) Signed-off-by: Kamel Bouhara --- odb/mysql/mysql-types.hxx | 4 ++-- odb/mysql/version.hxx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/odb/mysql/mysql-types.hxx b/odb/mysql/mysql-types.hxx index 1254ccd..0e8f9a8 100644 --- a/odb/mysql/mysql-types.hxx +++ b/odb/mysql/mysql-types.hxx @@ -11,9 +11,9 @@ typedef char my_bool; typedef struct st_mysql_bind MYSQL_BIND; #ifdef LIBODB_MYSQL_INCLUDE_SHORT -# include +# include #else -# include +# include #endif #endif // ODB_MYSQL_MYSQL_TYPES_HXX diff --git a/odb/mysql/version.hxx b/odb/mysql/version.hxx index 05b4ba5..e711c2e 100644 --- a/odb/mysql/version.hxx +++ b/odb/mysql/version.hxx @@ -12,7 +12,7 @@ #ifdef LIBODB_MYSQL_INCLUDE_SHORT # include #else -# include +# include #endif #include -- 2.26.2 ================================================ FILE: package/libodb-mysql/Config.in ================================================ config BR2_PACKAGE_LIBODB_MYSQL bool "libodb-mysql" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_MYSQL select BR2_PACKAGE_LIBODB help This package contains the MySQL ODB runtime library. Every application that includes code generated for the MySQL database will need to link to this library. https://www.codesynthesis.com/products/odb/ comment "libodb-mysql needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_MYSQL ================================================ FILE: package/libodb-mysql/libodb-mysql.hash ================================================ sha1 2021a67577354f1d6bed50c0b257c1920760eda7 libodb-mysql-2.4.0.tar.bz2 sha256 ce2fcdb6ab4a02fc0aff263a891c56949fa41b89e65d7a40d8b656d3ebf0d9bc libodb-mysql-2.4.0.tar.bz2 sha256 841105a470fc283851c63941510ffd403c726d1910b688f7df95914ab8b1b5a3 LICENSE ================================================ FILE: package/libodb-mysql/libodb-mysql.mk ================================================ ################################################################################ # # libodb-mysql # ################################################################################ LIBODB_MYSQL_VERSION_MAJOR = 2.4 LIBODB_MYSQL_VERSION = $(LIBODB_MYSQL_VERSION_MAJOR).0 LIBODB_MYSQL_SOURCE = libodb-mysql-$(LIBODB_MYSQL_VERSION).tar.bz2 LIBODB_MYSQL_SITE = https://www.codesynthesis.com/download/odb/$(LIBODB_MYSQL_VERSION_MAJOR) LIBODB_MYSQL_INSTALL_STAGING = YES LIBODB_MYSQL_LICENSE = GPL-2.0 LIBODB_MYSQL_LICENSE_FILES = LICENSE LIBODB_MYSQL_DEPENDENCIES = libodb mysql LIBODB_MYSQL_CONF_ENV = \ CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" \ LIBS=`$(STAGING_DIR)/usr/bin/mysql_config --libs` $(eval $(autotools-package)) ================================================ FILE: package/libodb-pgsql/Config.in ================================================ config BR2_PACKAGE_LIBODB_PGSQL bool "libodb-pgsql" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_POSTGRESQL select BR2_PACKAGE_LIBODB help This package contains the PostgreSQL ODB runtime library. Every application that includes code generated for the PostgreSQL database will need to link to this library. https://www.codesynthesis.com/products/odb/ comment "libodb-pgsql needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_POSTGRESQL ================================================ FILE: package/libodb-pgsql/libodb-pgsql.hash ================================================ # From https://www.codesynthesis.com/download/odb/2.4/libodb-pgsql-2.4.0.tar.bz2.sha1 sha1 4628d5e296da01dbaf8658fd402b4f709f30ea2d libodb-pgsql-2.4.0.tar.bz2 # Locally Computed sha256 778a4d38bd1161e1f0b368815514c3335da20c7584e3d07613526dcce53523bc libodb-pgsql-2.4.0.tar.bz2 sha256 841105a470fc283851c63941510ffd403c726d1910b688f7df95914ab8b1b5a3 LICENSE ================================================ FILE: package/libodb-pgsql/libodb-pgsql.mk ================================================ ################################################################################ # # libodb-pgsql # ################################################################################ LIBODB_PGSQL_VERSION_MAJOR = 2.4 LIBODB_PGSQL_VERSION = $(LIBODB_PGSQL_VERSION_MAJOR).0 LIBODB_PGSQL_SOURCE = libodb-pgsql-$(LIBODB_PGSQL_VERSION).tar.bz2 LIBODB_PGSQL_SITE = https://www.codesynthesis.com/download/odb/$(LIBODB_PGSQL_VERSION_MAJOR) LIBODB_PGSQL_LICENSE = GPL-2.0 LIBODB_PGSQL_LICENSE_FILES = LICENSE LIBODB_PGSQL_INSTALL_STAGING = YES LIBODB_PGSQL_DEPENDENCIES = postgresql libodb LIBODB_PGSQL_CONF_ENV = CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" $(eval $(autotools-package)) ================================================ FILE: package/libogg/Config.in ================================================ config BR2_PACKAGE_LIBOGG bool "libogg" help Ogg is a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs. As with all Xiph.org technology is it an open format free for anyone to use. https://xiph.org/ogg/ ================================================ FILE: package/libogg/libogg.hash ================================================ # From https://www.xiph.org/downloads/ sha256 c4d91be36fc8e54deae7575241e03f4211eb102afb3fc0775fbbc1b740016705 libogg-1.3.5.tar.xz # Hash for license file: sha256 d2ab5758336489da61c12cc5bb757da5339c4ae9001f9bb0562b4370249af814 COPYING ================================================ FILE: package/libogg/libogg.mk ================================================ ################################################################################ # # libogg # ################################################################################ LIBOGG_VERSION = 1.3.5 LIBOGG_SOURCE = libogg-$(LIBOGG_VERSION).tar.xz LIBOGG_SITE = http://downloads.xiph.org/releases/ogg LIBOGG_LICENSE = BSD-3-Clause LIBOGG_LICENSE_FILES = COPYING LIBOGG_INSTALL_STAGING = YES LIBOGG_DEPENDENCIES = host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/libolm/Config.in ================================================ config BR2_PACKAGE_LIBOLM bool "libolm" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 help libolm is an implementation of the Double Ratchet cryptographic ratchet in C++ https://gitlab.matrix.org/matrix-org/olm comment "libolm needs a toolchain w/ C++, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/libolm/libolm.hash ================================================ # locally computed sha256 9b61bd9182bb0ae0c5a800a8b0496b69600a0a22e3a21fce0aad119d2b1c99ae olm-3.2.6.tar.gz sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 LICENSE ================================================ FILE: package/libolm/libolm.mk ================================================ ################################################################################ # # libolm # ################################################################################ LIBOLM_VERSION = 3.2.6 LIBOLM_SOURCE = olm-$(LIBOLM_VERSION).tar.gz LIBOLM_SITE = https://gitlab.matrix.org/matrix-org/olm/-/archive/$(LIBOLM_VERSION) LIBOLM_LICENSE = Apache-2.0 LIBOLM_LICENSE_FILES = LICENSE LIBOLM_INSTALL_STAGING = YES LIBOLM_CONF_OPTS = -DOLM_TESTS=OFF $(eval $(cmake-package)) ================================================ FILE: package/libopenh264/0001-Add-USE_STACK_PROTECTOR-option.patch ================================================ From 1e7435751c055723b7103dd1d5bb68530e1a2678 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 8 Oct 2019 20:18:18 +0200 Subject: [PATCH] Add USE_STACK_PROTECTOR option -fstack-protector-all is not supported on all linux toolchains so add an option to disable it (and enable it by default to keep current behavior) Fixes: - http://autobuild.buildroot.org/results/377818cf8c1f2632cabdccb32bf4e7f06c0fdbbd Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/cisco/openh264/pull/3175] --- Makefile | 1 + build/platform-android.mk | 5 ++++- build/platform-bsd.mk | 5 ++++- build/platform-darwin.mk | 5 ++++- build/platform-linux.mk | 5 ++++- 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 74ff029d..c2061f6a 100644 --- a/Makefile +++ b/Makefile @@ -34,6 +34,7 @@ GTEST_VER=release-1.8.1 CCASFLAGS=$(CFLAGS) STATIC_LDFLAGS=-lstdc++ STRIP ?= strip +USE_STACK_PROTECTOR = Yes SHAREDLIB_MAJORVERSION=5 FULL_VERSION := 2.0.0 diff --git a/build/platform-android.mk b/build/platform-android.mk index 6f6ce347..06534301 100644 --- a/build/platform-android.mk +++ b/build/platform-android.mk @@ -44,7 +44,10 @@ SYSROOT = $(NDKROOT)/platforms/android-$(NDKLEVEL)/arch-$(ARCH) CXX = $(TOOLCHAINPREFIX)g++ CC = $(TOOLCHAINPREFIX)gcc AR = $(TOOLCHAINPREFIX)ar -CFLAGS += -DANDROID_NDK -fpic --sysroot=$(SYSROOT) -MMD -MP -fstack-protector-all +CFLAGS += -DANDROID_NDK -fpic --sysroot=$(SYSROOT) -MMD -MP +ifeq ($(USE_STACK_PROTECTOR), Yes) +CFLAGS +=-fstack-protector-all +endif CFLAGS += -isystem $(NDKROOT)/sysroot/usr/include -isystem $(NDKROOT)/sysroot/usr/include/$(TOOLCHAIN_NAME) -D__ANDROID_API__=$(NDKLEVEL) CXXFLAGS += -fno-rtti -fno-exceptions LDFLAGS += --sysroot=$(SYSROOT) diff --git a/build/platform-bsd.mk b/build/platform-bsd.mk index e60d2cc0..2e0bf2cc 100644 --- a/build/platform-bsd.mk +++ b/build/platform-bsd.mk @@ -3,7 +3,10 @@ SHAREDLIBSUFFIX = so SHAREDLIBSUFFIXFULLVER=$(SHAREDLIBSUFFIX).$(FULL_VERSION) SHAREDLIBSUFFIXMAJORVER=$(SHAREDLIBSUFFIX).$(SHAREDLIB_MAJORVERSION) SHLDFLAGS = -Wl,-soname,$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXMAJORVER) -CFLAGS += -fPIC -fstack-protector-all +CFLAGS += -fPIC +ifeq ($(USE_STACK_PROTECTOR), Yes) +CFLAGS += -fstack-protector-all +endif LDFLAGS += -lpthread STATIC_LDFLAGS += -lpthread -lm ifeq ($(ASM_ARCH), x86) diff --git a/build/platform-darwin.mk b/build/platform-darwin.mk index 6c7b2443..718c8e2f 100644 --- a/build/platform-darwin.mk +++ b/build/platform-darwin.mk @@ -10,7 +10,10 @@ SHLDFLAGS = -dynamiclib -twolevel_namespace -undefined dynamic_lookup \ $(SHAREDLIB_DIR)/$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXMAJORVER) SHARED = -dynamiclib SHARED += -current_version $(CURRENT_VERSION) -compatibility_version $(COMPATIBILITY_VERSION) -CFLAGS += -Wall -fPIC -MMD -MP -fstack-protector-all +CFLAGS += -Wall -fPIC -MMD -MP +ifeq ($(USE_STACK_PROTECTOR), Yes) +CFLAGS += -fstack-protector-all +endif ifeq ($(ASM_ARCH), x86) ASMFLAGS += -DPREFIX ifeq ($(ARCH), x86_64) diff --git a/build/platform-linux.mk b/build/platform-linux.mk index 44fe2424..b5c006b2 100644 --- a/build/platform-linux.mk +++ b/build/platform-linux.mk @@ -3,7 +3,10 @@ SHAREDLIBSUFFIX = so SHAREDLIBSUFFIXFULLVER=$(SHAREDLIBSUFFIX).$(FULL_VERSION) SHAREDLIBSUFFIXMAJORVER=$(SHAREDLIBSUFFIX).$(SHAREDLIB_MAJORVERSION) SHLDFLAGS = -Wl,-soname,$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXMAJORVER) -CFLAGS += -Wall -fno-strict-aliasing -fPIC -MMD -MP -fstack-protector-all +CFLAGS += -Wall -fno-strict-aliasing -fPIC -MMD -MP +ifeq ($(USE_STACK_PROTECTOR), Yes) +CFLAGS += -fstack-protector-all +endif LDFLAGS += -lpthread STATIC_LDFLAGS += -lpthread -lm AR_OPTS = crD $@ -- 2.23.0 ================================================ FILE: package/libopenh264/0002-fix-mips-build.patch ================================================ From 9d5981eecde2133b9d6099eb99f96b1c29c3e520 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Mon, 13 Apr 2020 12:03:01 +0200 Subject: [PATCH] fix mips build In total three PR were sent upstream to fix mips builds: https://github.com/cisco/openh264/pull/3185 https://github.com/cisco/openh264/pull/3217 https://github.com/cisco/openh264/pull/3225 Buildroot used the first version https://git.buildroot.net/buildroot/commit/package/libopenh264?id=e8d0df569e1844f7ba28918a53ee38027b325b8f downloaded from https://github.com/cisco/openh264/pull/3185 During discussion the gcc option '-march=loongson3a' was changed to '-Wa,-mloongson-mmi,-mloongson-ext': https://github.com/cisco/openh264/pull/3185#discussion_r337818960 This causes build errors with gcc version 8.3.0 (Buildroot 2020.02) tmp/cctgEQaw.s:662: Error: opcode not supported on this processor: loongson3a (mips64r2) `bc .L22' /tmp/cctgEQaw.s:1679: Error: opcode not supported on this processor: loongson3a (mips64r2) `bc .L27' /tmp/cctgEQaw.s:2218: Error: opcode not supported on this processor: loongson3a (mips64r2) `jrc $31' This patch partly reverts the change to fix mips build. $ /home/bernd/buildroot/br5/output/host/bin/mips64el-linux-gcc -v Using built-in specs. COLLECT_GCC=/home/bernd/buildroot/br5/output/host/opt/ext-toolchain/bin/mips64el-linux-gcc.br_real COLLECT_LTO_WRAPPER=/home/bernd/buildroot/br5/output/host/opt/ext-toolchain/bin/../libexec/gcc/mips64el-buildroot-linux-gnu/8.3.0/lto-wrapper Target: mips64el-buildroot-linux-gnu Configured with: ./configure --prefix=/opt/br-mips64r6-n64-el-hf-2020.02 --sysconfdir=/opt/br-mips64r6-n64-el-hf-2020.02/etc --enable-static --target=mips64el-buildroot-linux-gnu --with-sysroot=/opt/br-mips64r6-n64-el-hf-2020.02/mips64el-buildroot-linux-gnu/sysroot --enable-__cxa_atexit --with-gnu-ld --disable-libssp --disable-multilib --disable-decimal-float --with-gmp=/opt/br-mips64r6-n64-el-hf-2020.02 --with-mpc=/opt/br-mips64r6-n64-el-hf-2020.02 --with-mpfr=/opt/br-mips64r6-n64-el-hf-2020.02 --with-pkgversion='Buildroot 2020.02' --with-bugurl=http://bugs.buildroot.net/ --disable-libquadmath --enable-tls --enable-threads --without-isl --without-cloog --with-arch=mips64r6 --with-abi=64 --with-nan=2008 --enable-languages=c,c++ --with-build-time-tools=/opt/br-mips64r6-n64-el-hf-2020.02/mips64el-buildroot-linux-gnu/bin --enable-shared --disable-libgomp Thread model: posix gcc version 8.3.0 (Buildroot 2020.02) Patch sent upstream: https://github.com/cisco/openh264/pull/3267 Signed-off-by: Bernd Kuhls --- build/arch.mk | 2 +- build/mips-simd-check.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/arch.mk b/build/arch.mk index 1bf318ab..c6570ed4 100644 --- a/build/arch.mk +++ b/build/arch.mk @@ -41,7 +41,7 @@ ASMFLAGS += -I$(SRC_PATH)codec/common/mips/ ifeq ($(ENABLE_MMI), Yes) ENABLE_MMI = $(shell $(SRC_PATH)build/mips-simd-check.sh $(CC) mmi) ifeq ($(ENABLE_MMI), Yes) -CFLAGS += -DHAVE_MMI -Wa,-mloongson-mmi,-mloongson-ext +CFLAGS += -DHAVE_MMI -march=loongson3a endif endif #msa diff --git a/build/mips-simd-check.sh b/build/mips-simd-check.sh index 5efffbef..d0d72f9e 100755 --- a/build/mips-simd-check.sh +++ b/build/mips-simd-check.sh @@ -15,7 +15,7 @@ TMPO=$(mktemp tmp.XXXXXX.o) if [ $2 == "mmi" ] then echo "void main(void){ __asm__ volatile(\"punpcklhw \$f0, \$f0, \$f0\"); }" > $TMPC - $1 -Wa,-mloongson-mmi $TMPC -o $TMPO &> /dev/null + $1 -march=loongson3a $TMPC -o $TMPO &> /dev/null if test -s $TMPO then echo "Yes" -- 2.25.0 ================================================ FILE: package/libopenh264/0003-codec-common-inc-asmdefs_mmi.h-fix-mips32-build.patch ================================================ From c505f81e336088b6729a5407a03459f488353288 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 24 May 2021 22:54:01 +0200 Subject: [PATCH] codec/common/inc/asmdefs_mmi.h: fix mips32 build Fix the following build failure on mips32 which is raised since version 2.0.0 and https://github.com/cisco/openh264/commit/b13e5bceb18ebb93d0313b46aab4af6f480ca933: codec/common/mips/copy_mb_mmi.c: In function 'WelsCopy16x16_mmi': ./codec/common/inc/asmdefs_mmi.h:293:21: error: '_ABI64' undeclared (first use in this function) 293 | if (_MIPS_SIM == _ABI64) \ | ^~~~~~ Fixes: - http://autobuild.buildroot.org/results/cba3e9d0fd061cc3a92cb732bcdc2c7b66dbf6cb Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/cisco/openh264/pull/3384] --- codec/common/inc/asmdefs_mmi.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/codec/common/inc/asmdefs_mmi.h b/codec/common/inc/asmdefs_mmi.h index 69a7ae39..5d1aed93 100644 --- a/codec/common/inc/asmdefs_mmi.h +++ b/codec/common/inc/asmdefs_mmi.h @@ -288,9 +288,9 @@ /** * backup register */ +#if defined(_ABI64) && _MIPS_SIM == _ABI64 #define BACKUP_REG \ double __attribute__((aligned(16))) __back_temp[8]; \ - if (_MIPS_SIM == _ABI64) \ __asm__ volatile ( \ "gssqc1 $f25, $f24, 0x00(%[temp]) \n\t" \ "gssqc1 $f27, $f26, 0x10(%[temp]) \n\t" \ @@ -299,8 +299,10 @@ : \ : [temp]"r"(__back_temp) \ : "memory" \ - ); \ - else \ + ); +#else +#define BACKUP_REG \ + double __attribute__((aligned(16))) __back_temp[8]; \ __asm__ volatile ( \ "gssqc1 $f22, $f20, 0x00(%[temp]) \n\t" \ "gssqc1 $f26, $f24, 0x10(%[temp]) \n\t" \ @@ -309,12 +311,13 @@ : [temp]"r"(__back_temp) \ : "memory" \ ); +#endif /** * recover register */ +#if defined(_ABI64) && _MIPS_SIM == _ABI64 #define RECOVER_REG \ - if (_MIPS_SIM == _ABI64) \ __asm__ volatile ( \ "gslqc1 $f25, $f24, 0x00(%[temp]) \n\t" \ "gslqc1 $f27, $f26, 0x10(%[temp]) \n\t" \ @@ -323,8 +326,9 @@ : \ : [temp]"r"(__back_temp) \ : "memory" \ - ); \ - else \ + ); +#else +#define RECOVER_REG \ __asm__ volatile ( \ "gslqc1 $f22, $f20, 0x00(%[temp]) \n\t" \ "gslqc1 $f26, $f24, 0x10(%[temp]) \n\t" \ @@ -333,6 +337,7 @@ : [temp]"r"(__back_temp) \ : "memory" \ ); +#endif # define OK 1 # define NOTOK 0 -- 2.30.2 ================================================ FILE: package/libopenh264/Config.in ================================================ config BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS bool default y if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_i386 || \ BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \ BR2_x86_64 config BR2_PACKAGE_LIBOPENH264 bool "libopenh264" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS help OpenH264 is a codec library which supports H.264 encoding and decoding. http://www.openh264.org comment "libopenh264 needs a toolchain w/ C++, dynamic library, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS depends on BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS ================================================ FILE: package/libopenh264/libopenh264.hash ================================================ # Locally calculated sha256 af173e90fce65f80722fa894e1af0d6b07572292e76de7b65273df4c0a8be678 libopenh264-2.1.1.tar.gz sha256 dd5c1c9668512530fa5a96e4c29ac4033d70a7eeb0eed7a42fddb6dd794ebdbb LICENSE ================================================ FILE: package/libopenh264/libopenh264.mk ================================================ ################################################################################ # # libopenh264 # ################################################################################ LIBOPENH264_VERSION = 2.1.1 LIBOPENH264_SITE = $(call github,cisco,openh264,v$(LIBOPENH264_VERSION)) LIBOPENH264_LICENSE = BSD-2-Clause LIBOPENH264_LICENSE_FILES = LICENSE LIBOPENH264_CPE_ID_VENDOR = cisco LIBOPENH264_CPE_ID_PRODUCT = openh264 LIBOPENH264_INSTALL_STAGING = YES ifeq ($(BR2_aarch64),y) LIBOPENH264_ARCH = aarch64 else ifeq ($(BR2_arm)$(BR2_armeb),y) LIBOPENH264_ARCH = arm else ifeq ($(BR2_i386),y) LIBOPENH264_ARCH = x86 LIBOPENH264_DEPENDENCIES += host-nasm else ifeq ($(BR2_mips)$(BR2_mipsel),y) LIBOPENH264_ARCH = mips else ifeq ($(BR2_mips64)$(BR2_mips64el),y) LIBOPENH264_ARCH = mips64 else ifeq ($(BR2_x86_64),y) LIBOPENH264_ARCH = x86_64 LIBOPENH264_DEPENDENCIES += host-nasm endif # ENABLE64BIT is really only used for x86-64, other 64 bits # architecture don't need it. LIBOPENH264_MAKE_OPTS = \ ARCH=$(LIBOPENH264_ARCH) \ ENABLE64BIT=$(if $(BR2_x86_64),Yes,No) \ USE_STACK_PROTECTOR=No define LIBOPENH264_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(LIBOPENH264_MAKE_OPTS) endef define LIBOPENH264_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(LIBOPENH264_MAKE_OPTS) \ DESTDIR=$(STAGING_DIR) PREFIX=/usr install endef define LIBOPENH264_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(LIBOPENH264_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) PREFIX=/usr install endef $(eval $(generic-package)) ================================================ FILE: package/libopenssl/0001-Dont-waste-time-building-manpages-if-we-re-not-going.patch ================================================ From d8f104bffb0c4acb8c5fcdf49628f7d02ed48f7f Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 16 May 2015 18:53:51 +0200 Subject: [PATCH] Dont waste time building manpages if we're not going to use em. Signed-off-by: Ryan Barnett [Gustavo: update for parallel-build] [rebased on openssl-1.1.0h] Signed-off-by: Peter Seiderer [rebased on openssl-1.1.1i] Signed-off-by: Bernd Kuhls --- Configurations/unix-Makefile.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 40cf2c3..777d9ca 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -491,7 +491,7 @@ list-tests: @echo "Tests are not supported with your chosen Configure options" @ : {- output_on() if !$disabled{tests}; "" -} -install: install_sw install_ssldirs install_docs +install: install_sw install_ssldirs uninstall: uninstall_docs uninstall_sw -- 2.16.3 ================================================ FILE: package/libopenssl/0002-Reproducible-build-do-not-leak-compiler-path.patch ================================================ From b70be8c65365a8fc564226360d45adbbb29fc0af Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Tue, 24 Oct 2017 16:58:32 +0200 Subject: [PATCH] Reproducible build: do not leak compiler path Signed-off-by: Peter Seiderer [Rebased on openssl-1.1.1.a] Signed-off-by: Peter Seiderer --- crypto/build.info | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto/build.info b/crypto/build.info index 2c619c6..49ca6ab 100644 --- a/crypto/build.info +++ b/crypto/build.info @@ -10,7 +10,7 @@ EXTRA= ../ms/uplink-x86.pl ../ms/uplink.c ../ms/applink.c \ ppccpuid.pl pariscid.pl alphacpuid.pl arm64cpuid.pl armv4cpuid.pl DEPEND[cversion.o]=buildinf.h -GENERATE[buildinf.h]=../util/mkbuildinf.pl "$(CC) $(LIB_CFLAGS) $(CPPFLAGS_Q)" "$(PLATFORM)" +GENERATE[buildinf.h]=../util/mkbuildinf.pl "$$(basename $(CC)) $(LIB_CFLAGS) $(CPPFLAGS_Q)" "$(PLATFORM)" DEPEND[buildinf.h]=../configdata.pm GENERATE[uplink-x86.s]=../ms/uplink-x86.pl $(PERLASM_SCHEME) -- 2.20.1 ================================================ FILE: package/libopenssl/0003-Introduce-the-OPENSSL_NO_MADVISE-to-disable-call-to-.patch ================================================ From 1281ffc7959bd2070563e17a52ee4424196d885c Mon Sep 17 00:00:00 2001 From: Patrick Havelange Date: Wed, 23 Jan 2019 12:21:21 +0100 Subject: [PATCH] Introduce the OPENSSL_NO_MADVISE to disable call to madvise() Upstream: https://github.com/openssl/openssl/pull/8089 Signed-off-by: Patrick Havelange --- crypto/mem_sec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto/mem_sec.c b/crypto/mem_sec.c index 9e0f670..32c7282 100644 --- a/crypto/mem_sec.c +++ b/crypto/mem_sec.c @@ -485,7 +485,7 @@ static int sh_init(size_t size, int minsize) if (mlock(sh.arena, sh.arena_size) < 0) ret = 2; #endif -#ifdef MADV_DONTDUMP +#if defined(MADV_DONTDUMP) && !defined(OPENSSL_NO_MADVISE) if (madvise(sh.arena, sh.arena_size, MADV_DONTDUMP) < 0) ret = 2; #endif -- 2.17.1 ================================================ FILE: package/libopenssl/0004-Configure-use-ELFv2-ABI-on-some-ppc64-big-endian-sys.patch ================================================ From b57cc2e4ee21babacbffc243626de72c248068ea Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Sun, 5 May 2019 18:30:55 +0200 Subject: [PATCH] Configure: use ELFv2 ABI on some ppc64 big endian systems If _CALL_ELF is defined to be 2, it's an ELFv2 system. Conditionally switch to the v2 perlasm scheme. Reviewed-by: Paul Dale Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/8883) [vfazio: fixup for 1.1.1d] Signed-off-by: Vincent Fazio [rebased on openssl-1.1.1i] Signed-off-by: Bernd Kuhls --- Configure | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Configure b/Configure index 5a699836f3..f9152b1702 100755 --- a/Configure +++ b/Configure @@ -1417,6 +1417,10 @@ my %predefined_CXX = $config{CXX} ? compiler_predefined($config{CROSS_COMPILE}.$config{CXX}) : (); +if ($target eq "linux-ppc64" && !$disabled{asm}) { + $target{perlasm_scheme} = "linux64v2" if ($predefined_C{_CALL_ELF} == 2); +} + # Check for makedepend capabilities. if (!$disabled{makedepend}) { if ($config{target} =~ /^(VC|vms)-/) { -- 2.25.0 ================================================ FILE: package/libopenssl/0005-crypto-perlasm-ppc-xlate.pl-add-linux64v2-flavour.patch ================================================ From 07a0bbdd179a52907485fd793f0df31c097447af Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Sun, 5 May 2019 18:25:50 +0200 Subject: [PATCH] crypto/perlasm/ppc-xlate.pl: add linux64v2 flavour MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a big endian ELFv2 configuration. ELFv2 was already being used for little endian, and big endian was traditionally ELFv1 but there are practical configurations that use ELFv2 with big endian nowadays (Adélie Linux, Void Linux, possibly Gentoo, etc.) Reviewed-by: Paul Dale Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/8883) Signed-off-by: Vincent Fazio --- crypto/perlasm/ppc-xlate.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crypto/perlasm/ppc-xlate.pl b/crypto/perlasm/ppc-xlate.pl index d220c6245b..eec82b8d48 100755 --- a/crypto/perlasm/ppc-xlate.pl +++ b/crypto/perlasm/ppc-xlate.pl @@ -49,7 +49,7 @@ my $globl = sub { /osx/ && do { $name = "_$name"; last; }; - /linux.*(32|64le)/ + /linux.*(32|64(le|v2))/ && do { $ret .= ".globl $name"; if (!$$type) { $ret .= "\n.type $name,\@function"; @@ -80,7 +80,7 @@ my $globl = sub { }; my $text = sub { my $ret = ($flavour =~ /aix/) ? ".csect\t.text[PR],7" : ".text"; - $ret = ".abiversion 2\n".$ret if ($flavour =~ /linux.*64le/); + $ret = ".abiversion 2\n".$ret if ($flavour =~ /linux.*64(le|v2)/); $ret; }; my $machine = sub { @@ -186,7 +186,7 @@ my $vmr = sub { # Some ABIs specify vrsave, special-purpose register #256, as reserved # for system use. -my $no_vrsave = ($flavour =~ /aix|linux64le/); +my $no_vrsave = ($flavour =~ /aix|linux64(le|v2)/); my $mtspr = sub { my ($f,$idx,$ra) = @_; if ($idx == 256 && $no_vrsave) { @@ -318,7 +318,7 @@ while($line=<>) { if ($label) { my $xlated = ($GLOBALS{$label} or $label); print "$xlated:"; - if ($flavour =~ /linux.*64le/) { + if ($flavour =~ /linux.*64(le|v2)/) { if ($TYPES{$label} =~ /function/) { printf "\n.localentry %s,0\n",$xlated; } -- 2.25.0 ================================================ FILE: package/libopenssl/0006-Add-support-for-io_pgetevents_time64-syscall.patch ================================================ From 5b5e2985f355c8e99c196d9ce5d02c15bebadfbc Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Thu, 29 Aug 2019 13:56:21 -0700 Subject: [PATCH] Add support for io_pgetevents_time64 syscall 32-bit architectures that are y2038 safe don't include syscalls that use 32-bit time_t. Instead these architectures have suffixed syscalls that always use a 64-bit time_t. In the case of the io_getevents syscall the syscall has been replaced with the io_pgetevents_time64 syscall instead. This patch changes the io_getevents() function to use the correct syscall based on the avaliable syscalls and the time_t size. We will only use the new 64-bit time_t syscall if the architecture is using a 64-bit time_t. This is to avoid having to deal with 32/64-bit conversions and relying on a 64-bit timespec struct on 32-bit time_t platforms. As of Linux 5.3 there are no 32-bit time_t architectures without __NR_io_getevents. In the future if a 32-bit time_t architecture wants to use the 64-bit syscalls we can handle the conversion. This fixes build failures on 32-bit RISC-V. Signed-off-by: Alistair Francis Reviewed-by: Richard Levitte Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/9819) --- engines/e_afalg.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/engines/e_afalg.c b/engines/e_afalg.c index dacbe358cb..99516cb1bb 100644 --- a/engines/e_afalg.c +++ b/engines/e_afalg.c @@ -125,7 +125,23 @@ static ossl_inline int io_getevents(aio_context_t ctx, long min, long max, struct io_event *events, struct timespec *timeout) { +#if defined(__NR_io_getevents) return syscall(__NR_io_getevents, ctx, min, max, events, timeout); +#elif defined(__NR_io_pgetevents_time64) + /* Let's only support the 64 suffix syscalls for 64-bit time_t. + * This simplifies the code for us as we don't need to use a 64-bit + * version of timespec with a 32-bit time_t and handle converting + * between 64-bit and 32-bit times and check for overflows. + */ + if (sizeof(timeout->tv_sec) == 8) + return syscall(__NR_io_pgetevents_time64, ctx, min, max, events, timeout, NULL); + else { + errno = ENOSYS; + return -1; + } +#else +# error "We require either the io_getevents syscall or __NR_io_pgetevents_time64." +#endif } static void afalg_waitfd_cleanup(ASYNC_WAIT_CTX *ctx, const void *key, -- 2.25.1 ================================================ FILE: package/libopenssl/0007-Fixup-support-for-io_pgetevents_time64-syscall.patch ================================================ From e5499a3cac1e823c3e0697e8667e952317b70cc8 Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Thu, 4 Mar 2021 12:10:11 -0500 Subject: [PATCH] Fixup support for io_pgetevents_time64 syscall This is a fixup for the original commit 5b5e2985f355c8e99c196d9ce5d02c15bebadfbc "Add support for io_pgetevents_time64 syscall" that didn't correctly work for 32-bit architecutres with a 64-bit time_t that aren't RISC-V. For a full discussion of the issue see: https://github.com/openssl/openssl/commit/5b5e2985f355c8e99c196d9ce5d02c15bebadfbc Signed-off-by: Alistair Francis Reviewed-by: Tomas Mraz Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/14432) --- engines/e_afalg.c | 55 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/engines/e_afalg.c b/engines/e_afalg.c index 9480d7c24b..4e9d67db2d 100644 --- a/engines/e_afalg.c +++ b/engines/e_afalg.c @@ -124,27 +124,56 @@ static ossl_inline int io_read(aio_context_t ctx, long n, struct iocb **iocb) return syscall(__NR_io_submit, ctx, n, iocb); } +/* A version of 'struct timespec' with 32-bit time_t and nanoseconds. */ +struct __timespec32 +{ + __kernel_long_t tv_sec; + __kernel_long_t tv_nsec; +}; + static ossl_inline int io_getevents(aio_context_t ctx, long min, long max, struct io_event *events, struct timespec *timeout) { +#if defined(__NR_io_pgetevents_time64) + /* Check if we are a 32-bit architecture with a 64-bit time_t */ + if (sizeof(*timeout) != sizeof(struct __timespec32)) { + int ret = syscall(__NR_io_pgetevents_time64, ctx, min, max, events, + timeout, NULL); + if (ret == 0 || errno != ENOSYS) + return ret; + } +#endif + #if defined(__NR_io_getevents) - return syscall(__NR_io_getevents, ctx, min, max, events, timeout); -#elif defined(__NR_io_pgetevents_time64) - /* Let's only support the 64 suffix syscalls for 64-bit time_t. - * This simplifies the code for us as we don't need to use a 64-bit - * version of timespec with a 32-bit time_t and handle converting - * between 64-bit and 32-bit times and check for overflows. - */ - if (sizeof(timeout->tv_sec) == 8) - return syscall(__NR_io_pgetevents_time64, ctx, min, max, events, timeout, NULL); + if (sizeof(*timeout) == sizeof(struct __timespec32)) + /* + * time_t matches our architecture length, we can just use + * __NR_io_getevents + */ + return syscall(__NR_io_getevents, ctx, min, max, events, timeout); else { - errno = ENOSYS; - return -1; + /* + * We don't have __NR_io_pgetevents_time64, but we are using a + * 64-bit time_t on a 32-bit architecture. If we can fit the + * timeout value in a 32-bit time_t, then let's do that + * and then use the __NR_io_getevents syscall. + */ + if (timeout && timeout->tv_sec == (long)timeout->tv_sec) { + struct __timespec32 ts32; + + ts32.tv_sec = (__kernel_long_t) timeout->tv_sec; + ts32.tv_nsec = (__kernel_long_t) timeout->tv_nsec; + + return syscall(__NR_io_getevents, ctx, min, max, events, ts32); + } else { + return syscall(__NR_io_getevents, ctx, min, max, events, NULL); + } } -#else -# error "We require either the io_getevents syscall or __NR_io_pgetevents_time64." #endif + + errno = ENOSYS; + return -1; } static void afalg_waitfd_cleanup(ASYNC_WAIT_CTX *ctx, const void *key, -- 2.25.1 ================================================ FILE: package/libopenssl/Config.in ================================================ if BR2_PACKAGE_LIBOPENSSL # 4xx PowerPC cores seem to have trouble with openssl's ASM # optimizations config BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH_LINUX_PPC bool default y if BR2_powerpc depends on !BR2_powerpc_401 depends on !BR2_powerpc_403 depends on !BR2_powerpc_405 depends on !BR2_powerpc_405fp depends on !BR2_powerpc_440 depends on !BR2_powerpc_440fp config BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH string # Doesn't work for thumb-only (Cortex-M?) default "linux-armv4" if BR2_ARM_CPU_HAS_ARM default "linux-aarch64" if BR2_aarch64 default "linux-ppc" if BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH_LINUX_PPC default "linux-ppc64" if BR2_powerpc64 default "linux-ppc64le" if BR2_powerpc64le default "linux-x86" if BR2_i386 default "linux-x86_64" if BR2_x86_64 # no-asm is needed with generic architectures such as # linux-generic{32,64}, see # https://github.com/openssl/openssl/issues/9839 default "linux-generic64 no-asm" if BR2_ARCH_IS_64 && !BR2_MIPS_NABI32 default "linux-generic32 no-asm" config BR2_PACKAGE_LIBOPENSSL_BIN bool "openssl binary" help Install the openssl binary and the associated helper scripts to the target file system. This is a command line tool for doing various cryptographic stuff. config BR2_PACKAGE_LIBOPENSSL_ENGINES bool "openssl additional engines" help Install additional encryption engine libraries. config BR2_PACKAGE_LIBOPENSSL_ENABLE_CHACHA bool "enable CHACHA" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_RC5 bool "enable RC5" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_RC2 bool "enable RC2" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4 bool "enable RC4" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_MD2 bool "enable MD2" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 bool "enable MD4" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_MDC2 bool "enable MDC2" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_BLAKE2 bool "enable BLAKE2" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_IDEA bool "enable IDEA" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_SEED bool "enable SEED" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_DES bool "enable DES" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160 bool "enable RMD160" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_WHIRLPOOL bool "enable WHIRLPOOL" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_BLOWFISH bool "enable BLOWFISH" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL bool "enable SSL" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL2 bool "enable SSL2" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL3 bool "enable SSL3" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_WEAK_SSL bool "enable WEAK_SSL" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_PSK bool "enable mode PSK" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_CAST bool "enable mode CAST" default y config BR2_PACKAGE_LIBOPENSSL_UNSECURE bool "enable unit test, debug, backtrace" default y help Enable unit-test crypto-mdebug-backtrace crypto-mdebug autoerrinit mode. config BR2_PACKAGE_LIBOPENSSL_DYNAMIC_ENGINE bool "enable dynamic engine" default y config BR2_PACKAGE_LIBOPENSSL_ENABLE_COMP bool "enable compression" default y endif # BR2_PACKAGE_LIBOPENSSL ================================================ FILE: package/libopenssl/libopenssl.hash ================================================ # From https://www.openssl.org/source/openssl-1.1.1l.tar.gz.sha256 sha256 0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1 openssl-1.1.1l.tar.gz # License files sha256 c32913b33252e71190af2066f08115c69bc9fddadf3bf29296e20c835389841c LICENSE ================================================ FILE: package/libopenssl/libopenssl.mk ================================================ ################################################################################ # # libopenssl # ################################################################################ LIBOPENSSL_VERSION = 1.1.1l LIBOPENSSL_SITE = https://www.openssl.org/source LIBOPENSSL_SOURCE = openssl-$(LIBOPENSSL_VERSION).tar.gz LIBOPENSSL_LICENSE = OpenSSL or SSLeay LIBOPENSSL_LICENSE_FILES = LICENSE LIBOPENSSL_INSTALL_STAGING = YES LIBOPENSSL_DEPENDENCIES = zlib HOST_LIBOPENSSL_DEPENDENCIES = host-zlib LIBOPENSSL_TARGET_ARCH = $(call qstrip,$(BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH)) LIBOPENSSL_CFLAGS = $(TARGET_CFLAGS) LIBOPENSSL_PROVIDES = openssl LIBOPENSSL_CPE_ID_VENDOR = $(LIBOPENSSL_PROVIDES) LIBOPENSSL_CPE_ID_PRODUCT = $(LIBOPENSSL_PROVIDES) ifeq ($(BR2_m68k_cf),y) # relocation truncated to fit: R_68K_GOT16O LIBOPENSSL_CFLAGS += -mxgot # resolves an assembler "out of range error" with blake2 and sha512 algorithms LIBOPENSSL_CFLAGS += -DOPENSSL_SMALL_FOOTPRINT endif ifeq ($(BR2_USE_MMU),) LIBOPENSSL_CFLAGS += -DHAVE_FORK=0 -DOPENSSL_NO_MADVISE endif ifeq ($(BR2_PACKAGE_HAS_CRYPTODEV),y) LIBOPENSSL_DEPENDENCIES += cryptodev endif # fixes the following build failures: # # - musl # ./libcrypto.so: undefined reference to `getcontext' # ./libcrypto.so: undefined reference to `setcontext' # ./libcrypto.so: undefined reference to `makecontext' # # - uclibc: # crypto/async/arch/../arch/async_posix.h:32:5: error: unknown type name 'ucontext_t' # ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) LIBOPENSSL_CFLAGS += -DOPENSSL_NO_ASYNC endif ifeq ($(BR2_TOOLCHAIN_HAS_UCONTEXT),) LIBOPENSSL_CFLAGS += -DOPENSSL_NO_ASYNC endif define HOST_LIBOPENSSL_CONFIGURE_CMDS (cd $(@D); \ $(HOST_CONFIGURE_OPTS) \ ./config \ --prefix=$(HOST_DIR) \ --openssldir=$(HOST_DIR)/etc/ssl \ no-tests \ no-fuzz-libfuzzer \ no-fuzz-afl \ shared \ zlib-dynamic \ ) $(SED) "s#-O[0-9sg]#$(HOST_CFLAGS)#" $(@D)/Makefile endef define LIBOPENSSL_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_CONFIGURE_ARGS) \ $(TARGET_CONFIGURE_OPTS) \ ./Configure \ $(LIBOPENSSL_TARGET_ARCH) \ --prefix=/usr \ --openssldir=/etc/ssl \ $(if $(BR2_TOOLCHAIN_HAS_LIBATOMIC),-latomic) \ $(if $(BR2_TOOLCHAIN_HAS_THREADS),threads,no-threads) \ $(if $(BR2_STATIC_LIBS),no-shared,shared) \ $(if $(BR2_PACKAGE_HAS_CRYPTODEV),enable-devcryptoeng) \ no-rc5 \ enable-camellia \ enable-mdc2 \ no-tests \ no-fuzz-libfuzzer \ no-fuzz-afl \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_CHACHA),,no-chacha) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_RC5),,no-rc5) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_RC2),,no-rc2) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4),,no-rc4) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_MD2),,no-md2) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4),,no-md4) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_MDC2),,no-mdc2) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_BLAKE2),,no-blake2) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_IDEA),,no-idea) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_SEED),,no-seed) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_DES),,no-des) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160),,no-rmd160) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_WHIRLPOOL),,no-whirlpool) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_BLOWFISH),,no-bf) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL),,no-ssl) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL2),,no-ssl2) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL3),,no-ssl3) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_WEAK_SSL),,no-weak-ssl-ciphers) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_PSK),,no-psk) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_CAST),,no-cast) \ $(if $(BR2_PACKAGE_LIBOPENSSL_UNSECURE),,no-unit-test no-crypto-mdebug-backtrace no-crypto-mdebug no-autoerrinit) \ $(if $(BR2_PACKAGE_LIBOPENSSL_DYNAMIC_ENGINE),,no-dynamic-engine ) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_COMP),,no-comp) \ $(if $(BR2_STATIC_LIBS),zlib,zlib-dynamic) \ $(if $(BR2_STATIC_LIBS),no-dso) \ ) $(SED) "s#-march=[-a-z0-9] ##" -e "s#-mcpu=[-a-z0-9] ##g" $(@D)/Makefile $(SED) "s#-O[0-9sg]#$(LIBOPENSSL_CFLAGS)#" $(@D)/Makefile $(SED) "s# build_tests##" $(@D)/Makefile endef # libdl is not available in a static build, and this is not implied by no-dso ifeq ($(BR2_STATIC_LIBS),y) define LIBOPENSSL_FIXUP_STATIC_MAKEFILE $(SED) 's#-ldl##g' $(@D)/Makefile endef LIBOPENSSL_POST_CONFIGURE_HOOKS += LIBOPENSSL_FIXUP_STATIC_MAKEFILE endif define HOST_LIBOPENSSL_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define LIBOPENSSL_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define LIBOPENSSL_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef define HOST_LIBOPENSSL_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install endef define LIBOPENSSL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install rm -rf $(TARGET_DIR)/usr/lib/ssl rm -f $(TARGET_DIR)/usr/bin/c_rehash endef # libdl has no business in a static build ifeq ($(BR2_STATIC_LIBS),y) define LIBOPENSSL_FIXUP_STATIC_PKGCONFIG $(SED) 's#-ldl##' $(STAGING_DIR)/usr/lib/pkgconfig/libcrypto.pc $(SED) 's#-ldl##' $(STAGING_DIR)/usr/lib/pkgconfig/libssl.pc $(SED) 's#-ldl##' $(STAGING_DIR)/usr/lib/pkgconfig/openssl.pc endef LIBOPENSSL_POST_INSTALL_STAGING_HOOKS += LIBOPENSSL_FIXUP_STATIC_PKGCONFIG endif ifeq ($(BR2_PACKAGE_PERL),) define LIBOPENSSL_REMOVE_PERL_SCRIPTS $(RM) -f $(TARGET_DIR)/etc/ssl/misc/{CA.pl,tsget} endef LIBOPENSSL_POST_INSTALL_TARGET_HOOKS += LIBOPENSSL_REMOVE_PERL_SCRIPTS endif ifeq ($(BR2_PACKAGE_LIBOPENSSL_BIN),) define LIBOPENSSL_REMOVE_BIN $(RM) -f $(TARGET_DIR)/usr/bin/openssl $(RM) -f $(TARGET_DIR)/etc/ssl/misc/{CA.*,c_*} endef LIBOPENSSL_POST_INSTALL_TARGET_HOOKS += LIBOPENSSL_REMOVE_BIN endif ifneq ($(BR2_PACKAGE_LIBOPENSSL_ENGINES),y) define LIBOPENSSL_REMOVE_LIBOPENSSL_ENGINES rm -rf $(TARGET_DIR)/usr/lib/engines-1.1 endef LIBOPENSSL_POST_INSTALL_TARGET_HOOKS += LIBOPENSSL_REMOVE_LIBOPENSSL_ENGINES endif $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/liboping/0001-ping_host_add-Decrease-buffer-size-to-make-GCC-s-truncation-check-happy.patch ================================================ From 18ca43507b351f339ff23062541ee8d58e813a53 Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Sun, 29 Jul 2018 14:34:19 +0200 Subject: [PATCH] ping_host_add: Decrease buffer size to make GCC's truncation check happy. Fixes: #38 Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/octo/liboping/commit/18ca43507b351f339ff23062541ee8d58e813a53] --- src/liboping.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/liboping.c b/src/liboping.c index 5253e8c..2470988 100644 --- a/src/liboping.c +++ b/src/liboping.c @@ -1636,10 +1636,8 @@ int ping_host_add (pingobj_t *obj, const char *host) } else { - char errmsg[PING_ERRMSG_LEN]; - - snprintf (errmsg, PING_ERRMSG_LEN, "Unknown `ai_family': %i", ai_ptr->ai_family); - errmsg[PING_ERRMSG_LEN - 1] = '\0'; + char errmsg[64]; + snprintf (errmsg, sizeof(errmsg), "Unknown `ai_family': %d", ai_ptr->ai_family); dprintf ("%s", errmsg); ping_set_error (obj, "getaddrinfo", errmsg); ================================================ FILE: package/liboping/Config.in ================================================ config BR2_PACKAGE_LIBOPING bool "liboping" help liboping is a C library to generate ICMP echo requests, better known as "ping packets". http://noping.cc/ ================================================ FILE: package/liboping/liboping.hash ================================================ # From http://noping.cc/#download sha256 eb38aa93f93e8ab282d97e2582fbaea88b3f889a08cbc9dbf20059c3779d5cd8 liboping-1.10.0.tar.bz2 # Hash for license file: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/liboping/liboping.mk ================================================ ################################################################################ # # liboping # ################################################################################ LIBOPING_VERSION = 1.10.0 LIBOPING_SITE = http://noping.cc/files LIBOPING_SOURCE = liboping-$(LIBOPING_VERSION).tar.bz2 LIBOPING_INSTALL_STAGING = YES LIBOPING_CONF_OPTS = --without-perl-bindings LIBOPING_LICENSE = LGPL-2.1+, GPL-2.0 LIBOPING_LICENSE_FILES = COPYING LIBOPING_CPE_ID_VENDOR = noping ifeq ($(BR2_PACKAGE_NCURSES),y) LIBOPING_DEPENDENCIES += ncurses LIBOPING_CONF_OPTS += --with-ncurses else LIBOPING_CONF_OPTS += --without-ncurses endif $(eval $(autotools-package)) ================================================ FILE: package/libopusenc/Config.in ================================================ config BR2_PACKAGE_LIBOPUSENC bool "libopusenc" select BR2_PACKAGE_OPUS help The libopusenc library provides a high-level API for encoding opus audio files and live streams. http://opus-codec.org ================================================ FILE: package/libopusenc/libopusenc.hash ================================================ # From http://downloads.xiph.org/releases/opus/SHA256SUMS.txt sha256 8298db61a8d3d63e41c1a80705baa8ce9ff3f50452ea7ec1c19a564fe106cbb9 libopusenc-0.2.1.tar.gz sha256 93b17ab56b8230127fea532be0dcb4e6d71e66ab5e8ce5d6ae8785d7288b164f COPYING ================================================ FILE: package/libopusenc/libopusenc.mk ================================================ ################################################################################ # # libopusenc # ################################################################################ LIBOPUSENC_VERSION = 0.2.1 LIBOPUSENC_SITE = https://downloads.xiph.org/releases/opus LIBOPUSENC_LICENSE = BSD-3-Clause LIBOPUSENC_LICENSE_FILES = COPYING LIBOPUSENC_INSTALL_STAGING = YES LIBOPUSENC_DEPENDENCIES = host-pkgconf opus LIBOPUSENC_CONF_OPTS = --disable-examples $(eval $(autotools-package)) ================================================ FILE: package/libosip2/Config.in ================================================ config BR2_PACKAGE_LIBOSIP2 bool "libosip2" help GNU SIP (Session Initiation Protocol) This library aims to provide multimedia and telecom software developers an easy and powerful interface to initiate and control SIP based sessions in their applications. SIP is a open standard replacement from IETF for H323. http://www.gnu.org/software/osip/ ================================================ FILE: package/libosip2/libosip2.hash ================================================ # Locally calculated after checking pgp signature sha256 ee3784bc8e7774f56ecd0e2ca6e3e11d38b373435115baf1f1aa0ca0bfd02bf2 libosip2-5.2.1.tar.gz # Hash for license file: sha256 8d9e95ed0e48df46dc758eb0d86df611f771eab4eed94bebb77dca87f1c897de COPYING ================================================ FILE: package/libosip2/libosip2.mk ================================================ ################################################################################ # # libosip2 # ################################################################################ LIBOSIP2_VERSION = 5.2.1 LIBOSIP2_SITE = $(BR2_GNU_MIRROR)/osip LIBOSIP2_INSTALL_STAGING = YES LIBOSIP2_LICENSE = LGPL-2.1+ LIBOSIP2_LICENSE_FILES = COPYING LIBOSIP2_CPE_ID_VENDOR = gnu LIBOSIP2_CPE_ID_PRODUCT = osip ifeq ($(BR2_arc),y) # toolchain __arc__ define conflicts with libosip2 source LIBOSIP2_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -U__arc__" endif LIBOSIP2_CONF_OPTS = \ --enable-mt=$(if $(BR2_TOOLCHAIN_HAS_THREADS),yes,no) $(eval $(autotools-package)) ================================================ FILE: package/libosmium/Config.in ================================================ config BR2_PACKAGE_LIBOSMIUM bool "libosmium" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS # boost depends on BR2_USE_WCHAR # boost select BR2_PACKAGE_BOOST select BR2_PACKAGE_PROTOZERO help A fast and flexible C++ library for working with OpenStreetMap data. Libosmium works on Linux, macOS and Windows. https://osmcode.org/libosmium/ comment "libosmium needs a toolchain w/ C++, wchar, threads, gcc >= 4.7" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libosmium/libosmium.hash ================================================ # Locally calculated sha256 6faa7952aa1210dcd9ae4ef83e7653a4f8eb880e6a4e5b37f87a5d4835f6327b libosmium-2.17.1.tar.gz sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 LICENSE ================================================ FILE: package/libosmium/libosmium.mk ================================================ ################################################################################ # # libosmium # ################################################################################ LIBOSMIUM_VERSION = 2.17.1 LIBOSMIUM_SITE = $(call github,osmcode,libosmium,v$(LIBOSMIUM_VERSION)) LIBOSMIUM_LICENSE = BSL-1.0 LIBOSMIUM_LICENSE_FILES = LICENSE LIBOSMIUM_INSTALL_STAGING = YES LIBOSMIUM_DEPENDENCIES = boost protozero ifeq ($(BR2_PACKAGE_BZIP2),y) LIBOSMIUM_DEPENDENCIES += bzip2 endif ifeq ($(BR2_PACKAGE_EXPAT),y) LIBOSMIUM_DEPENDENCIES += expat endif ifeq ($(BR2_PACKAGE_LIBGEOS),y) LIBOSMIUM_DEPENDENCIES += libgeos endif ifeq ($(BR2_PACKAGE_LZ4),y) LIBOSMIUM_DEPENDENCIES += lz4 endif ifeq ($(BR2_PACKAGE_PROJ),y) LIBOSMIUM_DEPENDENCIES += proj endif ifeq ($(BR2_PACKAGE_ZLIB),y) LIBOSMIUM_DEPENDENCIES += zlib endif $(eval $(cmake-package)) ================================================ FILE: package/libostree/Config.in ================================================ config BR2_PACKAGE_LIBOSTREE bool "libostree" depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpgme, libgpg-error depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_WCHAR # libglib2 depends on BR2_USE_MMU # e2fsprogs, libglib2, libgpgme # doesn't build with musl due to lack of TEMP_FAILURE_RETRY() depends on !BR2_TOOLCHAIN_USES_MUSL select BR2_PACKAGE_E2FSPROGS select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBGPG_ERROR select BR2_PACKAGE_LIBGPGME select BR2_PACKAGE_XZ help OSTree is an upgrade system for Linux-based operating systems. https://ostree.readthedocs.io/en/latest/ comment "libostree needs a uClibc or glibc toolchain w/ threads, dynamic library, wchar" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \ || !BR2_USE_WCHAR || BR2_TOOLCHAIN_USES_MUSL depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS depends on BR2_USE_MMU ================================================ FILE: package/libostree/libostree.hash ================================================ # Locally calculated sha256 b45a32ded72c9fb6d2ab508adeae0306e4e2bb348db152f3d1b3708375829e1f libostree-2021.5.tar.xz sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c COPYING ================================================ FILE: package/libostree/libostree.mk ================================================ ################################################################################ # # libostree # ################################################################################ LIBOSTREE_VERSION = 2021.5 LIBOSTREE_SOURCE = libostree-$(LIBOSTREE_VERSION).tar.xz LIBOSTREE_SITE = https://github.com/ostreedev/ostree/releases/download/v$(LIBOSTREE_VERSION) LIBOSTREE_LICENSE = LGPL-2.0+ LIBOSTREE_LICENSE_FILES = COPYING LIBOSTREE_DEPENDENCIES = e2fsprogs host-bison host-pkgconf libglib2 libgpg-error libgpgme xz LIBOSTREE_INSTALL_STAGING = YES LIBOSTREE_CONF_ENV = \ GPG_ERROR_CONFIG=$(STAGING_DIR)/usr/bin/gpg-error-config LIBOSTREE_CONF_OPTS += \ --with-gpgme-prefix=$(STAGING_DIR)/usr \ --disable-gtk-doc \ --disable-gtk-doc-html \ --disable-gtk-doc-pdf \ --disable-man ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBOSTREE_DEPENDENCIES += gobject-introspection LIBOSTREE_CONF_OPTS += --enable-introspection LIBOSTREE_MAKE_OPTS = INTROSPECTION_SCANNER_ENV= else LIBOSTREE_CONF_OPTS += --disable-introspection endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBOSTREE_CONF_OPTS += --with-openssl LIBOSTREE_DEPENDENCIES += openssl else LIBOSTREE_CONF_OPTS += --without-openssl endif # Avahi support needs libavahi-client, which is built by avahi if avahi-daemon # and dbus is selected. Since there is no BR2_PACKAGE_LIBAVAHI_CLIENT config # option yet, use the avahi-daemon and dbus config symbols to check for # libavahi-client. ifeq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_DBUS),yy) LIBOSTREE_CONF_OPTS += --with-avahi LIBOSTREE_DEPENDENCIES += avahi else LIBOSTREE_CONF_OPTS += --without-avahi endif #cURL support depends on libsoup ifeq ($(BR2_PACKAGE_LIBSOUP),y) LIBOSTREE_CONF_OPTS += --with-soup LIBOSTREE_DEPENDENCIES += libsoup ifeq ($(BR2_PACKAGE_LIBCURL),y) LIBOSTREE_CONF_OPTS += --with-curl LIBOSTREE_DEPENDENCIES += libcurl else LIBOSTREE_CONF_OPTS += --without-curl endif else LIBOSTREE_CONF_OPTS += --without-soup --without-curl endif ifeq ($(BR2_PACKAGE_LIBARCHIVE),y) LIBOSTREE_CONF_OPTS += --with-libarchive LIBOSTREE_DEPENDENCIES += libarchive else LIBOSTREE_CONF_OPTS += --without-libarchive endif ifeq ($(BR2_PACKAGE_LIBFUSE),y) LIBOSTREE_CONF_OPTS += --enable-rofiles-fuse LIBOSTREE_DEPENDENCIES += libfuse else LIBOSTREE_CONF_OPTS += --disable-rofiles-fuse endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) LIBOSTREE_CONF_OPTS += --with-selinux LIBOSTREE_DEPENDENCIES += libselinux else LIBOSTREE_CONF_OPTS += --without-selinux endif ifeq ($(BR2_INIT_SYSTEMD),y) LIBOSTREE_CONF_OPTS += \ --with-libsystemd \ --with-systemdsystemunitdir=/usr/lib/systemd/system LIBOSTREE_DEPENDENCIES += systemd else LIBOSTREE_CONF_OPTS += --without-libsystemd endif $(eval $(autotools-package)) ================================================ FILE: package/libp11/Config.in ================================================ config BR2_PACKAGE_LIBP11 bool "libp11" depends on !BR2_STATIC_LIBS # dlopen select BR2_PACKAGE_OPENSSL help OpenSSL engine for PKCS#11 modules. Part of the OpenSC project. https://github.com/OpenSC/OpenSC/wiki comment "libp11 needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libp11/Config.in.host ================================================ config BR2_PACKAGE_HOST_LIBP11 bool "host libp11" help OpenSSL engine for PKCS#11 modules. Part of the OpenSC project. https://github.com/OpenSC/OpenSC/wiki ================================================ FILE: package/libp11/libp11.hash ================================================ # Locally computed: sha256 57d47a12a76fd92664ae30032cf969284ebac1dfc25bf824999d74b016d51366 libp11-0.4.11.tar.gz sha256 d80c9d084ebfb50ea1ed91bfbc2410d6ce542097a32c43b00781b83adcb8c77f COPYING ================================================ FILE: package/libp11/libp11.mk ================================================ ################################################################################ # # libp11 # ################################################################################ LIBP11_VERSION = 0.4.11 LIBP11_SITE = https://github.com/OpenSC/libp11/releases/download/libp11-$(LIBP11_VERSION) LIBP11_DEPENDENCIES = openssl host-pkgconf LIBP11_INSTALL_STAGING = YES LIBP11_LICENSE = LGPL-2.1+ LIBP11_LICENSE_FILES = COPYING # pkg-config returns a libcrypto enginesdir prefixed with the sysroot, # so let's rip it out. LIBP11_CONF_OPTS = \ --with-enginesdir=`$(PKG_CONFIG_HOST_BINARY) --variable enginesdir libcrypto | xargs readlink -f | sed 's%^$(STAGING_DIR)%%'` ifeq ($(BR2_PACKAGE_P11_KIT),y) LIBP11_CONF_OPTS += --with-pkcs11-module=/usr/lib/p11-kit-proxy.so endif HOST_LIBP11_DEPENDENCIES = host-pkgconf host-openssl $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libpagekite/Config.in ================================================ config BR2_PACKAGE_LIBPAGEKITE bool "libpagekite" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBEV select BR2_PACKAGE_OPENSSL help PageKite is a protocol for dynamic, tunneled reverse proxying of arbitrary TCP byte streams. It is particularly well suited for making a HTTP server on a device without a public IP address visible to the wider Internet, but can also be used for a variety of other things, including SSH access. libpagekite is a tight, fast implementation of the PageKite protocol in C, suitable for high-performance or embedded applications. In addition to the libpagekite library, this package installs the pagekitec, sshkite and httpkite tools. https://pagekite.net https://github.com/pagekite/libpagekite comment "libpagekite needs a toolchain with threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libpagekite/libpagekite.hash ================================================ # Locally calculated sha256 c812815aae6f100212b7d6f662370a0634151fabb59f028126a59c4083a6d26d libpagekite-0.91.190530.tar.gz # License files, locally calculated sha256 ba443b9c9d4273d06aae3e147e9ad1ec199cc9c23455f486a039536d47f57eed doc/COPYING.md sha256 4a271d0bb6bb6e0bac880efddb46da73e6df3dcf0d9ca08a945a232f8ab882ef doc/LICENSE-2.0.txt sha256 8e0f770cabe772d67d36469f6bf413afd2dcfa6ac37acfc65f770cf3a134106d doc/AGPLv3.txt ================================================ FILE: package/libpagekite/libpagekite.mk ================================================ ################################################################################ # # libpagekite # ################################################################################ LIBPAGEKITE_VERSION = 0.91.190530 LIBPAGEKITE_SITE = $(call github,pagekite,libpagekite,v$(LIBPAGEKITE_VERSION)) # pkrelay is AGPL-3.0+ but is not built LIBPAGEKITE_LICENSE = Apache-2.0 or AGPL-3.0+ LIBPAGEKITE_LICENSE_FILES = doc/COPYING.md doc/LICENSE-2.0.txt doc/AGPLv3.txt LIBPAGEKITE_DEPENDENCIES = host-pkgconf libev openssl LIBPAGEKITE_INSTALL_STAGING = YES # Sources from git, no configure included LIBPAGEKITE_AUTORECONF = YES LIBPAGEKITE_CONF_OPTS = \ --with-openssl \ --without-tests \ --with-os-libev \ --without-java \ --without-agpl-relay \ --without-ds-logfmt $(eval $(autotools-package)) ================================================ FILE: package/libpam-nfc/Config.in ================================================ config BR2_PACKAGE_LIBPAM_NFC bool "libpam-nfc" select BR2_PACKAGE_LIBNFC help NFC-based PAM authentification module. https://github.com/nfc-tools/pam_nfc ================================================ FILE: package/libpam-nfc/libpam-nfc.hash ================================================ # locally computed sha256 042049cecaacd9274f444d69f756b9499eb2d2436136f576eef375531ac25157 libpam-nfc-64a8b30ba2cfd634342ded8c096c7cfc5c8fa22a.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/libpam-nfc/libpam-nfc.mk ================================================ ################################################################################ # # libpam-nfc # ################################################################################ LIBPAM_NFC_VERSION = 64a8b30ba2cfd634342ded8c096c7cfc5c8fa22a LIBPAM_NFC_SITE = $(call github,nfc-tools,pam_nfc,$(LIBPAM_NFC_VERSION)) LIBPAM_NFC_LICENSE = GPL-2.0 LIBPAM_NFC_LICENSE_FILES = COPYING LIBPAM_NFC_DEPENDENCIES = linux-pam libnfc # Fetching from github, we need to generate the configure script LIBPAM_NFC_AUTORECONF = YES LIBPAM_NFC_INSTALL_STAGING = YES LIBPAM_NFC_CONF_OPTS = \ --with-pam-dir=/lib/security # libpam breaks with parallel build, but is very fast to build. LIBPAM_NFC_MAKE = $(MAKE1) $(eval $(autotools-package)) ================================================ FILE: package/libpam-radius-auth/Config.in ================================================ config BR2_PACKAGE_LIBPAM_RADIUS_AUTH bool "libpam-radius-auth" help This is the PAM to RADIUS authentication module. It allows any PAM-capable machine to become a RADIUS client for authentication and accounting requests. You will need a RADIUS server to perform the actual authentication. http://freeradius.org/pam_radius_auth/ ================================================ FILE: package/libpam-radius-auth/libpam-radius-auth.hash ================================================ # Locally calculated after checking PGP signature sha256 742d79fc39824726c098e746bd3dc3484f983f5ee082c621c1e848b2c3725305 pam_radius-1.4.0.tar.gz # Hash for license file: sha256 67f82e045cf7acfef853ea0f426575a8359161a0a325e19f02b529a87c4b6c34 LICENSE ================================================ FILE: package/libpam-radius-auth/libpam-radius-auth.mk ================================================ ################################################################################ # # libpam-radius-auth # ################################################################################ LIBPAM_RADIUS_AUTH_VERSION = 1.4.0 LIBPAM_RADIUS_AUTH_SITE = ftp://ftp.freeradius.org/pub/radius LIBPAM_RADIUS_AUTH_SOURCE = pam_radius-$(LIBPAM_RADIUS_AUTH_VERSION).tar.gz LIBPAM_RADIUS_AUTH_DEPENDENCIES = linux-pam LIBPAM_RADIUS_AUTH_INSTALL_STAGING = YES LIBPAM_RADIUS_AUTH_LICENSE = GPL-2.0+ LIBPAM_RADIUS_AUTH_LICENSE_FILES = LICENSE # While autoconf is used for configuration, the Makefile is # hand-written, so we need to pass CC, LD, CFLAGS at build time. LIBPAM_RADIUS_AUTH_MAKE_ENV = $(TARGET_CONFIGURE_OPTS) define LIBPAM_RADIUS_AUTH_INSTALL_STAGING_CMDS mkdir -p $(STAGING_DIR)/lib/security/ cp -dpfr $(@D)/pam_radius_auth.so* $(STAGING_DIR)/lib/security/ endef define LIBPAM_RADIUS_AUTH_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/lib/security/ cp -dpfr $(@D)/pam_radius_auth.so* $(TARGET_DIR)/lib/security/ endef $(eval $(autotools-package)) ================================================ FILE: package/libpam-tacplus/0001-Add-an-option-to-disable-Werror.patch ================================================ From 88c78901503d50d0a62d85c96994ca4d67ab61e0 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 13 Nov 2020 20:50:27 +0100 Subject: [PATCH] Add an option to disable -Werror Allow the user to disable -Werror to avoid the following build failure with gcc 4.8: libtac/lib/magic.c:138:13: error: ignoring return value of 'read', declared with attribute warn_unused_result [-Werror=unused-result] (void) read(rfd, &seed, sizeof(seed)); ^ Fixes: - http://autobuild.buildroot.org/results/5c17226f12eba104d907693ec37fc101cc6d447f Signed-off-by: Fabrice Fontaine --- Makefile.am | 6 +++++- configure.ac | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 0be3cdb..4a137e9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -8,7 +8,11 @@ ACLOCAL_AMFLAGS = -I config AUTOMAKE_OPTIONS = subdir-objects -AM_CFLAGS = -Wall -Wextra -Werror +AM_CFLAGS = -Wall -Wextra + +if ENABLE_WERROR +AM_CFLAGS += -Werror +endif if TACC bin_PROGRAMS = tacc diff --git a/configure.ac b/configure.ac index d0c5eba..dd8a966 100644 --- a/configure.ac +++ b/configure.ac @@ -100,6 +100,9 @@ AC_SUBST(pamdir) AC_ARG_ENABLE(doc, AS_HELP_STRING([--disable-doc], [do not build docs])) AM_CONDITIONAL(DOC, test "x$enable_doc" != "xno") +AC_ARG_ENABLE(werror, AS_HELP_STRING([--disable-werror], [do not build with -Werror])) +AM_CONDITIONAL(ENABLE_WERROR, test "x$enable_werror" != "xno") + dnl -------------------------------------------------------------------- dnl Switch for run-time debugging AC_ARG_ENABLE(runtime-debugging, [AS_HELP_STRING([--enable-runtime-debugging], -- 2.28.0 ================================================ FILE: package/libpam-tacplus/Config.in ================================================ config BR2_PACKAGE_LIBPAM_TACPLUS bool "libpam-tacplus" help TACACS+ protocol client library and PAM module in C. This PAM module support authentication, authorization (account management) and accounting (session management)performed using TACACS+ protocol designed by Cisco. https://github.com/jeroennijhof/pam_tacplus ================================================ FILE: package/libpam-tacplus/libpam-tacplus.hash ================================================ # Locally calculated sha256 73961800dc0d5e422751ad4c9f09b1863ab33e381e0bdb2a1d0343dcfc30e44e libpam-tacplus-1.6.1.tar.gz sha256 b2b961f07e97c4fb78074276da304ea36b85dc299aae5efb79080cedaea3d5ac COPYING ================================================ FILE: package/libpam-tacplus/libpam-tacplus.mk ================================================ ################################################################################ # # libpam-tacplus # ################################################################################ LIBPAM_TACPLUS_VERSION = 1.6.1 LIBPAM_TACPLUS_SITE = $(call github,jeroennijhof,pam_tacplus,v$(LIBPAM_TACPLUS_VERSION)) LIBPAM_TACPLUS_LICENSE = GPL-2.0+ LIBPAM_TACPLUS_LICENSE_FILES = COPYING LIBPAM_TACPLUS_CPE_ID_VENDOR = pam_tacplus_project LIBPAM_TACPLUS_CPE_ID_PRODUCT = pam_tacplus LIBPAM_TACPLUS_DEPENDENCIES = \ linux-pam \ $(if $(BR2_PACKAGE_OPENSSL),openssl) # Fetching from github, we need to generate the configure script # 0001-Add-an-option-to-disable-Werror.patch LIBPAM_TACPLUS_AUTORECONF = YES LIBPAM_TACPLUS_INSTALL_STAGING = YES LIBPAM_TACPLUS_CONF_ENV = \ ax_cv_check_cflags___fstack_protector_all=$(if $(BR2_TOOLCHAIN_HAS_SSP),yes,no) LIBPAM_TACPLUS_CONF_OPTS = --disable-werror $(eval $(autotools-package)) ================================================ FILE: package/libpcap/Config.in ================================================ config BR2_PACKAGE_LIBPCAP bool "libpcap" select BR2_PACKAGE_BLUEZ5_UTILS_HEADERS if BR2_PACKAGE_BLUEZ5_UTILS help A system-independent library for user-level network packet capture. http://www.tcpdump.org/ ================================================ FILE: package/libpcap/libpcap.hash ================================================ # Locally calculated after checking pgp signature # https://www.tcpdump.org/release/libpcap-1.10.1.tar.gz.sig sha256 ed285f4accaf05344f90975757b3dbfe772ba41d1c401c2648b7fa45b711bdd4 libpcap-1.10.1.tar.gz # Hash for license file: sha256 8a54594d257e14a5260ac770f1633516cb51e3fc28c40136ce2697014eda7afd LICENSE ================================================ FILE: package/libpcap/libpcap.mk ================================================ ################################################################################ # # libpcap # ################################################################################ LIBPCAP_VERSION = 1.10.1 LIBPCAP_SITE = https://www.tcpdump.org/release LIBPCAP_LICENSE = BSD-3-Clause LIBPCAP_LICENSE_FILES = LICENSE LIBPCAP_CPE_ID_VENDOR = tcpdump LIBPCAP_INSTALL_STAGING = YES LIBPCAP_DEPENDENCIES = host-flex host-bison host-pkgconf # ac_cv_prog_cc_c99 is required for BR2_USE_WCHAR=n because the C99 test # provided by autoconf relies on wchar_t. LIBPCAP_CONF_ENV = \ ac_cv_header_linux_wireless_h=yes \ ac_cv_prog_cc_c99=-std=gnu99 \ CFLAGS="$(LIBPCAP_CFLAGS)" LIBPCAP_CFLAGS = $(TARGET_CFLAGS) LIBPCAP_CONF_OPTS = --disable-yydebug --with-pcap=linux --without-dag \ --without-dpdk # Disable dbus to break recursive dependencies LIBPCAP_CONF_OPTS += --disable-dbus LIBPCAP_CONFIG_SCRIPTS = pcap-config # Omit -rpath from pcap-config output define LIBPCAP_CONFIG_REMOVE_RPATH $(SED) 's/^V_RPATH_OPT=.*/V_RPATH_OPT=""/g' $(@D)/pcap-config endef LIBPCAP_POST_BUILD_HOOKS = LIBPCAP_CONFIG_REMOVE_RPATH ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_HEADERS),y) LIBPCAP_DEPENDENCIES += bluez5_utils-headers else LIBPCAP_CONF_OPTS += --disable-bluetooth endif ifeq ($(BR2_PACKAGE_LIBNL),y) LIBPCAP_DEPENDENCIES += libnl LIBPCAP_CONF_OPTS += --with-libnl else LIBPCAP_CONF_OPTS += --without-libnl endif # microblaze/sparc/sparc64 need -fPIC instead of -fpic ifeq ($(BR2_microblaze)$(BR2_sparc)$(BR2_sparc64),y) LIBPCAP_CFLAGS += -fPIC endif $(eval $(autotools-package)) ================================================ FILE: package/libpciaccess/0001-pciaccess.pc.in-add-Libs.Private.patch ================================================ From e1f9fc0a11559c1200005c4bfe34cd217ec117b4 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 25 Oct 2019 19:03:32 +0200 Subject: [PATCH] pciaccess.pc.in: add Libs.Private Add Libs.Private in pciaccess.pc.in so applications that wants to link statically with pciaccess will know that they have to link with its dependencies such as -lz Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.freedesktop.org/xorg/lib/libpciaccess/merge_requests/10] --- pciaccess.pc.in | 1 + 1 file changed, 1 insertion(+) diff --git a/pciaccess.pc.in b/pciaccess.pc.in index 706c5f7..c2da3d9 100644 --- a/pciaccess.pc.in +++ b/pciaccess.pc.in @@ -8,3 +8,4 @@ Description: Library providing generic access to the PCI bus and devices. Version: @PACKAGE_VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -lpciaccess +Libs.Private: @PCIACCESS_LIBS@ -- 2.23.0 ================================================ FILE: package/libpciaccess/Config.in ================================================ config BR2_PACKAGE_LIBPCIACCESS bool "libpciaccess" help X.Org libpciaccess Generic PCI access library https://gitlab.freedesktop.org/xorg/lib/libpciaccess ================================================ FILE: package/libpciaccess/libpciaccess.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-July/003014.html md5 b34e2cbdd6aa8f9cc3fa613fd401a6d6 libpciaccess-0.16.tar.bz2 sha1 ffaa13f2df5f822da1089b55223b217c142ef919 libpciaccess-0.16.tar.bz2 sha256 214c9d0d884fdd7375ec8da8dcb91a8d3169f263294c9a90c575bf1938b9f489 libpciaccess-0.16.tar.bz2 sha512 2f250048a270dfc0823d4bdd613aa272c58a80eaafd922850f56c4b6f7a45a263ed4cf521b52b49f04484ea44ebefb7407d079aa058318a5751ffb181e38fed1 libpciaccess-0.16.tar.bz2 # Hash for license file: sha256 47012fd746980d1712ac4f3841ab6164bda1d2b84880760e45dbe1e1dc07f608 COPYING ================================================ FILE: package/libpciaccess/libpciaccess.mk ================================================ ################################################################################ # # libpciaccess # ################################################################################ LIBPCIACCESS_VERSION = 0.16 LIBPCIACCESS_SOURCE = libpciaccess-$(LIBPCIACCESS_VERSION).tar.bz2 LIBPCIACCESS_SITE = http://xorg.freedesktop.org/releases/individual/lib LIBPCIACCESS_LICENSE = MIT LIBPCIACCESS_LICENSE_FILES = COPYING LIBPCIACCESS_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_ZLIB),y) LIBPCIACCESS_CONF_OPTS += --with-zlib LIBPCIACCESS_DEPENDENCIES += zlib else LIBPCIACCESS_CONF_OPTS += --without-zlib endif $(eval $(autotools-package)) ================================================ FILE: package/libpfm4/Config.in ================================================ config BR2_PACKAGE_LIBPFM4 bool "libpfm4" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL help A helper library to help encode Performance Events to use with Operating system kernels performance monitoring interfaces. http://perfmon2.sourceforge.net/ comment "libpfm4 needs a toolchain w/ NPTL" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL ================================================ FILE: package/libpfm4/libpfm4.hash ================================================ # From http://sourceforge.net/projects/perfmon2/files/libpfm4/: sha1 112bced9a67d565ff0ce6c2bb90452516d1183e5 libpfm-4.11.0.tar.gz md5 4811c1d99b95752b4ba53b89a9389ec3 libpfm-4.11.0.tar.gz # Locally calculated sha256 5da5f8872bde14b3634c9688d980f68bda28b510268723cc12973eedbab9fecc libpfm-4.11.0.tar.gz sha256 beef323d68fc5db9c67b20e8e9de7ccde371d20cdbcdd686804055b18b926d90 COPYING ================================================ FILE: package/libpfm4/libpfm4.mk ================================================ ################################################################################ # # libpfm4 # ################################################################################ LIBPFM4_VERSION = 4.11.0 LIBPFM4_SOURCE = libpfm-$(LIBPFM4_VERSION).tar.gz LIBPFM4_SITE = http://downloads.sourceforge.net/project/perfmon2/libpfm4 LIBPFM4_LICENSE = libpfm4 license LIBPFM4_LICENSE_FILES = COPYING LIBPFM4_INSTALL_STAGING = YES LIBPFM4_FLAGS = SYS=Linux ARCH=$(BR2_ARCH) \ CC="$(TARGET_CC)" LDCONFIG=true \ CONFIG_PFMLIB_SHARED=$(if $(BR2_STATIC_LIBS),n,y) \ DBG= \ EXAMPLE_DIRS= define LIBPFM4_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(LIBPFM4_FLAGS) endef define LIBPFM4_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(LIBPFM4_FLAGS) PREFIX=$(STAGING_DIR)/usr install endef define LIBPFM4_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(LIBPFM4_FLAGS) PREFIX=$(TARGET_DIR)/usr install endef $(eval $(generic-package)) ================================================ FILE: package/libphidget/Config.in ================================================ config BR2_PACKAGE_LIBPHIDGET bool "libphidget" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBUSB help The libphidget library provides an API for controlling Phidgets USB devices. The library translates API function calls to libusb function calls to control attached Phidgets devices that provide GPIO's, DAC's, accelerometers, servo motors, and other capabilities either singly or on combo devices. To use libphidget for controlling locally attached devices you need to set up the userspace USB device tree /dev/bus/usb. See file udev/99-phidgets.rules. The libphidget library also contains an API for sending commands to a local or remote phidgetwebservice using HTTP. The phidgetwebservice then translates HTTP requests to libphidget API function calls to control locally attached Phidgets devices. http://phidgets.com/ comment "libphidget needs a toolchain w/ threads, dynamic library, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/libphidget/libphidget.hash ================================================ # locally computed sha256 0e789912700228808519cf5c41e19f9b761da635c6bb676b147897936b23851f libphidget_2.1.9.20190409.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/libphidget/libphidget.mk ================================================ ################################################################################ # # libphidget # ################################################################################ LIBPHIDGET_VERSION = 2.1.9.20190409 LIBPHIDGET_SOURCE = libphidget_$(LIBPHIDGET_VERSION).tar.gz LIBPHIDGET_SITE = https://www.phidgets.com/downloads/phidget21/libraries/linux/libphidget LIBPHIDGET_DEPENDENCIES = libusb LIBPHIDGET_CONF_OPTS = --disable-ldconfig LIBPHIDGET_INSTALL_STAGING = YES LIBPHIDGET_LICENSE = LGPL-3.0 LIBPHIDGET_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libpjsip/Config.in ================================================ 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 ================================================ FILE: package/libpjsip/libpjsip.hash ================================================ # Locally computed sha256 936a4c5b98601b52325463a397ddf11ab4106c6a7b04f8dc7cdd377efbb597de pjproject-2.10.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/libpjsip/libpjsip.mk ================================================ ################################################################################ # # libpjsip # ################################################################################ LIBPJSIP_VERSION = 2.10 LIBPJSIP_SOURCE = pjproject-$(LIBPJSIP_VERSION).tar.gz LIBPJSIP_SITE = $(call github,pjsip,pjproject,$(LIBPJSIP_VERSION)) # https://github.com/pjsip/pjproject/archive/2.10.tar.gz LIBPJSIP_DEPENDENCIES = libsrtp LIBPJSIP_LICENSE = GPL-2.0+ LIBPJSIP_LICENSE_FILES = COPYING LIBPJSIP_CPE_ID_VENDOR = pjsip LIBPJSIP_CPE_ID_PRODUCT = pjsip 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-resample \ --disable-g7221-codec \ --disable-ilbc-codec \ --disable-libwebrtc \ --disable-ext-sound \ --disable-g711-codec \ --disable-l16-codec \ --disable-g722-codec \ --disable-ipp \ --disable-silk \ --with-external-srtp # Note: aconfigure.ac is broken: --enable-epoll or --disable-epoll will # both enable it. But that's OK, epoll is better than the alternative, # so we want to use it. LIBPJSIP_CONF_OPTS += --enable-epoll ifeq ($(BR2_PACKAGE_ALSA_LIB_MIXER),y) LIBPJSIP_DEPENDENCIES += alsa-lib LIBPJSIP_CONF_OPTS += --enable-sound else LIBPJSIP_CONF_OPTS += --disable-sound endif ifeq ($(BR2_PACKAGE_BCG729),y) LIBPJSIP_DEPENDENCIES += bcg729 LIBPJSIP_CONF_OPTS += --with-bcg729=$(STAGING_DIR)/usr else LIBPJSIP_CONF_OPTS += --disable-bcg729 endif ifeq ($(BR2_PACKAGE_FFMPEG),y) LIBPJSIP_DEPENDENCIES += ffmpeg LIBPJSIP_CONF_OPTS += --with-ffmpeg=$(STAGING_DIR)/usr else LIBPJSIP_CONF_OPTS += --disable-ffmpeg endif ifeq ($(BR2_PACKAGE_LIBGSM),y) LIBPJSIP_CONF_OPTS += \ --enable-gsm-codec \ --with-external-gsm LIBPJSIP_DEPENDENCIES += libgsm else LIBPJSIP_CONF_OPTS += \ --disable-gsm-codec endif ifeq ($(BR2_PACKAGE_LIBOPENH264),y) LIBPJSIP_DEPENDENCIES += libopenh264 LIBPJSIP_CONF_OPTS += --with-openh264=$(STAGING_DIR)/usr else LIBPJSIP_CONF_OPTS += --disable-openh264 endif ifeq ($(BR2_PACKAGE_LIBOPENSSL),y) LIBPJSIP_DEPENDENCIES += libopenssl LIBPJSIP_CONF_OPTS += --with-ssl=$(STAGING_DIR)/usr else ifeq ($(BR2_PACKAGE_GNUTLS),y) LIBPJSIP_DEPENDENCIES += gnutls LIBPJSIP_CONF_OPTS += --with-gnutls=$(STAGING_DIR)/usr else LIBPJSIP_CONF_OPTS += --disable-ssl endif ifeq ($(BR2_PACKAGE_LIBSAMPLERATE),y) LIBPJSIP_DEPENDENCIES += libsamplerate LIBPJSIP_CONF_OPTS += --enable-libsamplerate else LIBPJSIP_CONF_OPTS += --disable-libsamplerate endif ifeq ($(BR2_PACKAGE_LIBV4L),y) # --enable-v4l2 is broken (check for libv4l2 will be omitted) LIBPJSIP_DEPENDENCIES += libv4l else LIBPJSIP_CONF_OPTS += --disable-v4l2 endif ifeq ($(BR2_PACKAGE_LIBYUV),y) LIBPJSIP_DEPENDENCIES += libyuv LIBPJSIP_CONF_OPTS += \ --enable-libyuv \ --with-external-yuv else LIBPJSIP_CONF_OPTS += --disable-libyuv endif ifeq ($(BR2_PACKAGE_OPENCORE_AMR),y) LIBPJSIP_DEPENDENCIES += opencore-amr LIBPJSIP_CONF_OPTS += --with-opencore-amr=$(STAGING_DIR)/usr else LIBPJSIP_CONF_OPTS += --disable-opencore-amr endif ifeq ($(BR2_PACKAGE_OPUS),y) LIBPJSIP_DEPENDENCIES += opus LIBPJSIP_CONF_OPTS += --with-opus=$(STAGING_DIR)/usr else LIBPJSIP_CONF_OPTS += --disable-opus endif ifeq ($(BR2_PACKAGE_PORTAUDIO),y) LIBPJSIP_DEPENDENCIES += portaudio LIBPJSIP_CONF_OPTS += --with-external-pa else LIBPJSIP_CONF_OPTS += --without-external-pa endif ifeq ($(BR2_PACKAGE_SDL2),y) LIBPJSIP_DEPENDENCIES += sdl2 LIBPJSIP_CONF_OPTS += --with-sdl=$(STAGING_DIR)/usr else LIBPJSIP_CONF_OPTS += --disable-sdl endif ifeq ($(BR2_PACKAGE_SPEEX)$(BR2_PACKAGE_SPEEXDSP),yy) LIBPJSIP_CONF_OPTS += \ --enable-speex-aec \ --enable-speex-codec \ --with-external-speex LIBPJSIP_DEPENDENCIES += speex speexdsp else LIBPJSIP_CONF_OPTS += \ --disable-speex-aec \ --disable-speex-codec endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y) LIBPJSIP_DEPENDENCIES += util-linux endif # disable build of test binaries LIBPJSIP_MAKE_OPTS = lib $(eval $(autotools-package)) ================================================ FILE: package/libplatform/0001-cmake-require-c-11-as-the-minimum-standard.patch ================================================ From ad9fcceb6267e737316b616551b7aac3cf676481 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Fri, 2 Oct 2020 15:31:36 -0700 Subject: [PATCH] [cmake] require c++11 as the minimum standard Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/Pulse-Eight/platform/pull/46] --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7144b0b..e9112f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,10 @@ project(p8-platform) cmake_minimum_required(VERSION 2.8.9) enable_language(CXX) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED YES) +set(CMAKE_CXX_EXTENSIONS NO) + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}) find_package(Threads REQUIRED) ================================================ FILE: package/libplatform/Config.in ================================================ config BR2_PACKAGE_LIBPLATFORM bool help Platform support library used by libCEC and binary add-ons for Kodi https://github.com/Pulse-Eight/platform ================================================ FILE: package/libplatform/libplatform.hash ================================================ # Locally computed sha256 ebee46c76b86b40b703fa913465f5004fa3166eeb6a4794c58fc8a5c25702931 libplatform-a7cd0d5780ed80a4e70480d1650749f29e8a1fb2.tar.gz sha256 80fc66febbb2393c9d518e3eefa4ad9aae15a9b6a84174c0e443ea79eeea5131 src/os.h ================================================ FILE: package/libplatform/libplatform.mk ================================================ ################################################################################ # # libplatform # ################################################################################ LIBPLATFORM_VERSION = a7cd0d5780ed80a4e70480d1650749f29e8a1fb2 LIBPLATFORM_SITE = $(call github,Pulse-Eight,platform,$(LIBPLATFORM_VERSION)) LIBPLATFORM_LICENSE = GPL-2.0+ LIBPLATFORM_LICENSE_FILES = src/os.h LIBPLATFORM_INSTALL_STAGING = YES $(eval $(cmake-package)) ================================================ FILE: package/libplist/Config.in ================================================ config BR2_PACKAGE_LIBPLIST bool "libplist" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS help libplist is a client for manipulating Apple Property List (.plist) files http://www.libimobiledevice.org/ comment "libplist needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libplist/libplist.hash ================================================ # Locally calculated sha256 4a5517e5377ec421df84c586ba85bb4e1d26f11ad203d7d450a907c0156fbd9a libplist-2.2.0.tar.bz2 sha256 7619c753cac95d4740220223bde48a032606fcaccde5e546f9bc444c81ab356d COPYING ================================================ FILE: package/libplist/libplist.mk ================================================ ################################################################################ # # libplist # ################################################################################ LIBPLIST_VERSION = 2.2.0 LIBPLIST_SOURCE = libplist-$(LIBPLIST_VERSION).tar.bz2 LIBPLIST_SITE = https://github.com/libimobiledevice/libplist/releases/download/$(LIBPLIST_VERSION) LIBPLIST_INSTALL_STAGING = YES LIBPLIST_LICENSE = LGPL-2.1+ LIBPLIST_LICENSE_FILES = COPYING LIBPLIST_CPE_ID_VENDOR = libimobiledevice # Disable building Python bindings, because it requires host-cython, which # is not packaged in Buildroot at all. LIBPLIST_CONF_OPTS = --without-cython $(eval $(autotools-package)) ================================================ FILE: package/libpng/0001-Disable-pngfix-and-png-fix-itxt.patch ================================================ From 60c3ee917c8e7a4760b1ef7c3dc2b44a615150d3 Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias 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. [Julien: update for 1.6.25] Signed-off-by: Julien Boibessot 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) \ pngcp$(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 ================================================ FILE: package/libpng/Config.in ================================================ config BR2_PACKAGE_LIBPNG bool "libpng" select BR2_PACKAGE_ZLIB help Library for handling PNG (Portable Network Graphics) images. http://www.libpng.org/ ================================================ FILE: package/libpng/libpng.hash ================================================ # From https://sourceforge.net/projects/libpng/files/libpng16/1.6.37/ md5 015e8e15db1eecde5f2eb9eb5b6e59e9 libpng-1.6.37.tar.xz sha1 3ab93fabbf4c27e1c4724371df408d9a1bd3f656 libpng-1.6.37.tar.xz # Locally computed: sha256 505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca libpng-1.6.37.tar.xz sha256 bf5e22b9dce8464064ae17a48ea1133c3369ac9e1d80ef9e320e5219aa14ea9b LICENSE ================================================ FILE: package/libpng/libpng.mk ================================================ ################################################################################ # # libpng # ################################################################################ LIBPNG_VERSION = 1.6.37 LIBPNG_SERIES = 16 LIBPNG_SOURCE = libpng-$(LIBPNG_VERSION).tar.xz LIBPNG_SITE = http://downloads.sourceforge.net/project/libpng/libpng$(LIBPNG_SERIES)/$(LIBPNG_VERSION) LIBPNG_LICENSE = Libpng-2.0 LIBPNG_LICENSE_FILES = LICENSE LIBPNG_CPE_ID_VENDOR = libpng 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 ifeq ($(BR2_ARM_CPU_HAS_NEON)$(BR2_aarch64),y) LIBPNG_CONF_OPTS += --enable-arm-neon else LIBPNG_CONF_OPTS += --disable-arm-neon endif ifeq ($(BR2_X86_CPU_HAS_SSE2),y) LIBPNG_CONF_OPTS += --enable-intel-sse else LIBPNG_CONF_OPTS += --disable-intel-sse endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libpqxx/Config.in ================================================ config BR2_PACKAGE_LIBPQXX bool "libpqxx" depends on BR2_PACKAGE_POSTGRESQL depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on BR2_INSTALL_LIBSTDCPP 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++, gcc >= 4.9, threads" depends on BR2_PACKAGE_POSTGRESQL depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libpqxx/libpqxx.hash ================================================ # Locally computed: sha256 86921fdb0fe54495a79d5af2c96f2c771098c31e9b352d0834230fd2799ad362 libpqxx-6.4.5.tar.gz sha256 36c48c1ca1b0a68639d919196b5d92c971858ad8e24da24385ba1c65cc5eac38 COPYING ================================================ FILE: package/libpqxx/libpqxx.mk ================================================ ################################################################################ # # libpqxx # ################################################################################ LIBPQXX_VERSION = 6.4.5 LIBPQXX_SITE = $(call github,jtv,libpqxx,$(LIBPQXX_VERSION)) LIBPQXX_INSTALL_STAGING = YES LIBPQXX_DEPENDENCIES = postgresql LIBPQXX_LICENSE = BSD-3-Clause LIBPQXX_LICENSE_FILES = COPYING LIBPQXX_CONF_ENV += ac_cv_path_PG_CONFIG=$(STAGING_DIR)/usr/bin/pg_config $(eval $(autotools-package)) ================================================ FILE: package/libpri/Config.in ================================================ config BR2_PACKAGE_LIBPRI bool "libpri" depends on BR2_USE_MMU # fork() depends on BR2_LINUX_KERNEL depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_DAHDI_LINUX select BR2_PACKAGE_DAHDI_TOOLS help libpri is an open source library that encapsulates the protocols used to communicate over ISDN Primary Rate Interfaces (T1, E1, J1). http://www.asterisk.org/downloads/libpri comment "libpri needs a kernel to be built" depends on BR2_USE_MMU depends on !BR2_LINUX_KERNEL comment "libpri needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libpri/libpri.hash ================================================ # sha1 and sha256 from http://downloads.asterisk.org/pub/telephony/libpri/releases/ sha1 63536f3300fb007dfd5fe8064406992ca938bd9a libpri-1.5.0.tar.gz sha256 ee224bc4aa65c54546bd09675c3f0b71817ce9e277332bce86989d8dcd556a24 libpri-1.5.0.tar.gz # License files, locally calculated sha256 fa5fc1d1eec39532ea517518eeefd7b6e3c14341a55e5880a0e2a49eee47a5b7 LICENSE sha256 53b8b3aea4faec23fd9dbd4936044aca80c9b00343e6e58ee3303cec19512b33 README ================================================ FILE: package/libpri/libpri.mk ================================================ ################################################################################ # # libpri # ################################################################################ LIBPRI_VERSION = 1.5.0 LIBPRI_SITE = http://downloads.asterisk.org/pub/telephony/libpri/releases LIBPRI_LICENSE = GPL-2.0 with OpenH323 exception LIBPRI_LICENSE_FILES = LICENSE README LIBPRI_DEPENDENCIES = dahdi-linux dahdi-tools LIBPRI_INSTALL_STAGING = YES # The Makefile default rule will always try to generate both libraries. # So we need to explicitly build only what we can. ifneq ($(BR2_SHARED_LIBS),y) LIBPRI_LIBS = libpri.a define LIBPRI_INSTALL_A $(INSTALL) -D -m 0644 $(@D)/libpri.a $(1)/usr/lib/libpri.a endef endif ifneq ($(BR2_STATIC_LIBS),y) LIBPRI_LIBS += libpri.so.1.4 define LIBPRI_INSTALL_SO $(INSTALL) -D -m 0644 $(@D)/libpri.so.1.4 $(1)/usr/lib/libpri.so.1.4 ln -sf libpri.so.1.4 $(1)/usr/lib/libpri.so endef endif LIBPRI_UTILS = pridump pritest rosetest testprilib define LIBPRI_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS) -fPIC" -C $(@D) \ $(LIBPRI_LIBS) $(LIBPRI_UTILS) endef define LIBPRI_INSTALL_STAGING_CMDS $(call LIBPRI_INSTALL_A,$(STAGING_DIR)) $(call LIBPRI_INSTALL_SO,$(STAGING_DIR)) $(INSTALL) -D -m 0644 $(@D)/libpri.h $(STAGING_DIR)/usr/include/libpri.h endef define LIBPRI_INSTALL_TARGET_CMDS $(foreach u,$(LIBPRI_UTILS),\ $(INSTALL) -D -m 0755 $(@D)/$(u) $(TARGET_DIR)/usr/sbin/$(u)$(sep)) $(call LIBPRI_INSTALL_SO,$(TARGET_DIR)) endef $(eval $(generic-package)) ================================================ FILE: package/libpsl/Config.in ================================================ config BR2_PACKAGE_LIBPSL bool "libpsl" depends on BR2_USE_WCHAR # libunistring, icu select BR2_PACKAGE_LIBIDN2 if !BR2_PACKAGE_ICU && !BR2_PACKAGE_LIBIDN select BR2_PACKAGE_LIBUNISTRING if !BR2_PACKAGE_ICU help C library to handle the Public Suffix List of TLDs. https://github.com/rockdaboot/libpsl comment "libpsl needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/libpsl/libpsl.hash ================================================ # Locally generated sha256 ac6ce1e1fbd4d0254c4ddb9d37f1fa99dec83619c1253328155206b896210d4c libpsl-0.21.1.tar.gz # Hashes for license files: sha256 7903413e7aa0bbcb77aa19150a3f1034edc0a760cff174f9a53efe4de6f056a4 COPYING sha256 1d7f52747a9169751cdf2641a8299c0098e9ecdf9429296ffd55bdb14c9ed5b3 src/LICENSE.chromium ================================================ FILE: package/libpsl/libpsl.mk ================================================ ################################################################################ # # libpsl # ################################################################################ LIBPSL_VERSION = 0.21.1 LIBPSL_SITE = https://github.com/rockdaboot/libpsl/releases/download/$(LIBPSL_VERSION) LIBPSL_LICENSE = MIT, BSD-3-Clause LIBPSL_LICENSE_FILES = COPYING src/LICENSE.chromium LIBPSL_DEPENDENCIES = host-pkgconf LIBPSL_INSTALL_STAGING = YES # The order of checks is the same as done by libpsl when configured. ifeq ($(BR2_PACKAGE_LIBIDN2)$(BR2_PACKAGE_LIBUNISTRING),yy) LIBPSL_CONF_OPTS += -Druntime=libidn2 -Dbuiltin=libidn2 LIBPSL_DEPENDENCIES += libidn2 libunistring else ifeq ($(BR2_PACKAGE_ICU),y) LIBPSL_CONF_OPTS += -Druntime=libicu -Dbuiltin=libicu LIBPSL_DEPENDENCIES += icu else LIBPSL_CONF_OPTS += -Druntime=libidn -Dbuiltin=libidn LIBPSL_DEPENDENCIES += libidn libunistring endif $(eval $(meson-package)) ================================================ FILE: package/libpthread-stubs/Config.in ================================================ config BR2_PACKAGE_LIBPTHREAD_STUBS bool "libpthread-stubs" depends on BR2_TOOLCHAIN_HAS_THREADS help This library provides weak aliases for pthread functions not provided in libc or otherwise available by default. http://xcb.freedesktop.org/ comment "libpthread-stubs needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libpthread-stubs/libpthread-stubs.hash ================================================ # Locally computed sha256 e4d05911a3165d3b18321cc067fdd2f023f06436e391c6a28dff618a78d2e733 libpthread-stubs-0.4.tar.bz2 sha256 78c20706e799f2b8f445e71d3d2ade6ba23b3388fd6cbeed7d71796623febde8 COPYING ================================================ FILE: package/libpthread-stubs/libpthread-stubs.mk ================================================ ################################################################################ # # libpthread-stubs # ################################################################################ LIBPTHREAD_STUBS_VERSION = 0.4 LIBPTHREAD_STUBS_SOURCE = libpthread-stubs-$(LIBPTHREAD_STUBS_VERSION).tar.bz2 LIBPTHREAD_STUBS_SITE = http://xcb.freedesktop.org/dist LIBPTHREAD_STUBS_LICENSE = MIT LIBPTHREAD_STUBS_LICENSE_FILES = COPYING LIBPTHREAD_STUBS_INSTALL_STAGING = YES ifeq ($(BR2_STATIC_LIBS),y) LIBPTHREAD_STUBS_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -pthread" endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libpthsem/0001-fix-build-on-linux-3.x-host.patch ================================================ From 2d0450bfa3fb7003098da1a7fe24c3ae140912dc Mon Sep 17 00:00:00 2001 From: Gregory Hermant Date: Mon, 22 Oct 2012 15:11:53 +0200 Subject: [PATCH] pthsem build on Linux 3.x host Signed-off-by: Michael Markstaller Signed-off-by: Gregory Hermant --- acinclude.m4 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 index 03b42de..fea9bc8 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -892,6 +892,8 @@ case $PLATFORM in case "x`uname -r`" in changequote(, )dnl x2.[23456789]* ) ;; +changequote(, )dnl + x3.* ) ;; changequote([, ]) * ) braindead=yes ;; esac -- 1.7.9.5 ================================================ FILE: package/libpthsem/Config.in ================================================ config BR2_PACKAGE_LIBPTHSEM bool "libpthsem" depends on BR2_USE_MMU # fork() help GNU pth is a user mode multi threading library. pthsem is an extend version, with support for semaphores added. http://www.auto.tuwien.ac.at/~mkoegler/pth/ if BR2_PACKAGE_LIBPTHSEM config BR2_PACKAGE_LIBPTHSEM_COMPAT bool "libpth compatibility" help This option enables the compatibility with the original libpth library. endif ================================================ FILE: package/libpthsem/libpthsem.hash ================================================ # Locally calculated sha256 4024cafdd5d4bce2b1778a6be5491222c3f6e7ef1e43971264c451c0012c5c01 pthsem_2.0.8.tar.gz sha256 f1b95d3728077d1a3efe7fc17928b1953b1224f6caf9c528e30e570158b7520d COPYING ================================================ FILE: package/libpthsem/libpthsem.mk ================================================ ################################################################################ # # libpthsem # ################################################################################ LIBPTHSEM_VERSION = 2.0.8 LIBPTHSEM_SOURCE = pthsem_$(LIBPTHSEM_VERSION).tar.gz LIBPTHSEM_SITE = http://www.auto.tuwien.ac.at/~mkoegler/pth LIBPTHSEM_LICENSE = LGPL-2.1+ LIBPTHSEM_LICENSE_FILES = COPYING LIBPTHSEM_AUTORECONF = YES LIBPTHSEM_INSTALL_STAGING = YES LIBPTHSEM_CONFIG_SCRIPTS = pthsem-config # Force the setjmp/longjmp detection, because the test being done in # the AC_CHECK_SJLJ macro is not cross-compilation safe: it checks the # running kernel with 'uname -r', and checks the C library version by # looking at /usr/include/features.h. In terms of kernel version, it # assumes any version later than 2.2.x is fine, except that it doesn't # recognize 4.x as a valid kernel version, recognizing such systems as # "braindead" and therefore falling back to the 'sjljlx' value for # ac_cv_check_sjlj. In terms of C library version, it wants # __GLIBC_MINOR to be at least 1. Since both conditions are true for # all Buildroot systems, we can simply force the setjmp/longjmp # detection to ssjlj. LIBPTHSEM_CONF_ENV += \ ac_cv_check_sjlj=ssjlj ifeq ($(BR2_PACKAGE_LIBPTHSEM_COMPAT),y) LIBPTHSEM_CONF_OPTS += --enable-compat LIBPTHSEM_CONFIG_SCRIPTS += pth-config else LIBPTHSEM_CONF_OPTS += --disable-compat endif $(eval $(autotools-package)) ================================================ FILE: package/libpwquality/Config.in ================================================ config BR2_PACKAGE_LIBPWQUALITY bool "libpwquality" select BR2_PACKAGE_CRACKLIB help This is a library for password quality checks and generation of random passwords that pass the checks. This library uses the cracklib and cracklib dictionaries to perform some of the checks. https://github.com/libpwquality/libpwquality if BR2_PACKAGE_LIBPWQUALITY config BR2_PACKAGE_LIBPWQUALITY_TOOLS bool "install tools" help Install libpwquality command line tools generating/checking passwords. endif ================================================ FILE: package/libpwquality/libpwquality.hash ================================================ # Locally calculated sha256 d43baf23dc6887fe8f8e9b75cabaabc5f4bbbaa0f9eff44278d276141752a545 libpwquality-1.4.4.tar.bz2 sha256 aa44d09f651bf99b56253187c7778a240740c767d28453ab7fdc9804c842baee COPYING ================================================ FILE: package/libpwquality/libpwquality.mk ================================================ ################################################################################ # # libpwquality # ################################################################################ LIBPWQUALITY_VERSION = 1.4.4 LIBPWQUALITY_SOURCE = libpwquality-$(LIBPWQUALITY_VERSION).tar.bz2 LIBPWQUALITY_SITE = https://github.com/libpwquality/libpwquality/releases/download/libpwquality-$(LIBPWQUALITY_VERSION) LIBPWQUALITY_LICENSE = BSD-3-Clause or GPL-2.0+ LIBPWQUALITY_INSTALL_STAGING = YES LIBPWQUALITY_DEPENDENCIES = cracklib LIBPWQUALITY_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_PYTHON),y) LIBPWQUALITY_CONF_OPTS += --enable-python-bindings LIBPWQUALITY_DEPENDENCIES += python LIBPWQUALITY_MAKE_ENV += $(PKG_PYTHON_DISTUTILS_ENV) else LIBPWQUALITY_CONF_OPTS += --disable-python-bindings endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) LIBPWQUALITY_CONF_OPTS += --enable-pam LIBPWQUALITY_DEPENDENCIES += linux-pam else LIBPWQUALITY_CONF_OPTS += --disable-pam endif # Static link with cracklib requires -lz if zlib is enabled ifeq ($(BR2_STATIC_LIBS)$(BR2_PACKAGE_ZLIB),yy) LIBPWQUALITY_CONF_ENV += LIBS="-lz" endif ifeq ($(BR2_PACKAGE_LIBPWQUALITY_TOOLS),) define LIBPWQUALITY_REMOVE_TOOLS rm -f $(TARGET_DIR)/usr/bin/pwmake rm -f $(TARGET_DIR)/usr/bin/pwscore endef LIBPWQUALITY_POST_INSTALL_TARGET_HOOKS += LIBPWQUALITY_REMOVE_TOOLS endif $(eval $(autotools-package)) ================================================ FILE: package/libqb/Config.in ================================================ config BR2_PACKAGE_LIBQB bool "libqb" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBXML2 help Library for client-server applications https://github.com/ClusterLabs/libqb comment "libqb needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libqb/libqb.hash ================================================ # Locally calculated sha256 f72769c66479c51ac176b56837637b29d200f9dad40d23c5fdcb10f3a53ab1e4 libqb-2.0.2.tar.gz sha256 00a89b0d18aacd4114decf79122db87bf35bddaf2bc50e383c9c9f4c263390b2 COPYING ================================================ FILE: package/libqb/libqb.mk ================================================ ################################################################################ # # libqb # ################################################################################ LIBQB_VERSION = 2.0.2 LIBQB_SITE = $(call github,ClusterLabs,libqb,v$(LIBQB_VERSION)) LIBQB_LICENSE = LGPL-2.1+ LIBQB_LICENSE_FILES = COPYING LIBQB_CPE_ID_VENDOR = clusterlabs LIBQB_INSTALL_STAGING = YES LIBQB_AUTORECONF = YES LIBQB_DEPENDENCIES = libxml2 # ac_cv_prog_cc_c99 is required for BR2_USE_WCHAR=n because the C99 test # provided by autoconf relies on wchar_t. LIBQB_CONF_ENV = ac_cv_prog_cc_c99=-std=gnu99 $(eval $(autotools-package)) ================================================ FILE: package/libqmi/Config.in ================================================ config BR2_PACKAGE_LIBQMI bool "libqmi" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 help libqmi is a glib-based library for talking to WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol. http://www.freedesktop.org/wiki/Software/libqmi/ comment "libqmi needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libqmi/libqmi.hash ================================================ # Locally computed: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB sha256 2eb7c7971b91a64ad830643b0170cff692a69bf0f093ca61d72d3f466a0272d4 libqmi-1.30.2.tar.gz ================================================ FILE: package/libqmi/libqmi.mk ================================================ ################################################################################ # # libqmi # ################################################################################ LIBQMI_VERSION = 1.30.2 LIBQMI_SITE = https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/archive/$(LIBQMI_VERSION) LIBQMI_LICENSE = LGPL-2.0+ (library), GPL-2.0+ (programs) LIBQMI_LICENSE_FILES = COPYING COPYING.LIB LIBQMI_CPE_ID_VENDOR = libqmi_project LIBQMI_INSTALL_STAGING = YES LIBQMI_DEPENDENCIES = libglib2 ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBQMI_DEPENDENCIES += gobject-introspection LIBQMI_CONF_OPTS += -Dintrospection=true else LIBQMI_CONF_OPTS += -Dintrospection=false endif # if libgudev available, request udev support for a better # qmi-firmware-update experience ifeq ($(BR2_PACKAGE_LIBGUDEV),y) LIBQMI_DEPENDENCIES += libgudev LIBQMI_CONF_OPTS += -Dudev=true else LIBQMI_CONF_OPTS += -Dudev=false endif # if libmbim available, request QMI-over-MBIM support ifeq ($(BR2_PACKAGE_LIBMBIM),y) LIBQMI_DEPENDENCIES += libmbim LIBQMI_CONF_OPTS += -Dmbim_qmux=true else LIBQMI_CONF_OPTS += -Dmbim_qmux=false endif # if libqrtr-glib available, enable support for QMI over QRTR ifeq ($(BR2_PACKAGE_LIBQRTR_GLIB),y) LIBQMI_DEPENDENCIES += libqrtr-glib LIBQMI_CONF_OPTS += -Dqrtr=true else LIBQMI_CONF_OPTS += -Dqrtr=false endif # if ModemManager available, enable MM runtime check in # qmi-firmware-update (note that we don't need to build-depend on # anything else) ifeq ($(BR2_PACKAGE_MODEM_MANAGER),y) LIBQMI_CONF_OPTS += -Dmm_runtime_check=true else LIBQMI_CONF_OPTS += -Dmm_runtime_check=false endif ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y) LIBQMI_DEPENDENCIES += bash-completion LIBQMI_CONF_OPTS += -Dbash_completion=true else LIBQMI_CONF_OPTS += -Dbash_completion=false endif $(eval $(meson-package)) ================================================ FILE: package/libqrencode/Config.in ================================================ config BR2_PACKAGE_LIBQRENCODE bool "libqrencode" help libqrencode is a C library for encoding data in a QR Code symbol, a kind of 2D symbology that can be scanned by handy terminals such as a mobile phone with CCD. The capacity of QR Code is up to 7000 digits or 4000 characters, and is highly robust. http://fukuchi.org/works/qrencode/index.html if BR2_PACKAGE_LIBQRENCODE config BR2_PACKAGE_LIBQRENCODE_TOOLS bool "libqrencode tools" select BR2_PACKAGE_LIBPNG help Build command-line tools endif #BR2_PACKAGE_LIBQRENCODE ================================================ FILE: package/libqrencode/libqrencode.hash ================================================ # From http://fukuchi.org/works/qrencode/qrencode-4.1.1.tar.gz.sha sha512 209bb656ae3f391b03c7b3ceb03e34f7320b0105babf48b619e7a299528b8828449e0e7696f0b5db0d99170a81709d0518e34835229a748701e7df784e58a9ce qrencode-4.1.1.tar.gz # Hash for license file: sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING ================================================ FILE: package/libqrencode/libqrencode.mk ================================================ ################################################################################ # # libqrencode # ################################################################################ LIBQRENCODE_VERSION = 4.1.1 LIBQRENCODE_SOURCE = qrencode-$(LIBQRENCODE_VERSION).tar.gz LIBQRENCODE_SITE = http://fukuchi.org/works/qrencode LIBQRENCODE_DEPENDENCIES = host-pkgconf LIBQRENCODE_INSTALL_STAGING = YES LIBQRENCODE_LICENSE = LGPL-2.1+ LIBQRENCODE_LICENSE_FILES = COPYING ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) LIBQRENCODE_CONF_ENV += LIBS='-pthread' else LIBQRENCODE_CONF_OPTS += --disable-thread-safety endif ifeq ($(BR2_PACKAGE_LIBPNG),y) LIBQRENCODE_CONF_OPTS += --with-png LIBQRENCODE_DEPENDENCIES += libpng else LIBQRENCODE_CONF_OPTS += --without-png endif ifeq ($(BR2_PACKAGE_LIBQRENCODE_TOOLS),y) LIBQRENCODE_CONF_OPTS += --with-tools=yes else LIBQRENCODE_CONF_OPTS += --with-tools=no endif $(eval $(autotools-package)) ================================================ FILE: package/libqrtr-glib/Config.in ================================================ config BR2_PACKAGE_LIBQRTR_GLIB bool "libqrtr-glib" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 # da7653f0faab select BR2_PACKAGE_LIBGLIB2 help Qualcomm IPC Router protocol helper library. Optional dependency for libqmi >= 1.28.0. https://www.freedesktop.org/software/libqmi/libqrtr-glib/latest/ comment "libqrtr-glib needs a toolchain w/ wchar, threads, headers >= 4.15" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 ================================================ FILE: package/libqrtr-glib/libqrtr-glib.hash ================================================ # Locally computed sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB sha256 30d879b2ade6f8f461def3a677755db5c0238babf688d5c83c03b3e6abe35cee libqrtr-glib-1.0.0.tar.xz ================================================ FILE: package/libqrtr-glib/libqrtr-glib.mk ================================================ ################################################################################ # # libqrtr-glib # ################################################################################ LIBQRTR_GLIB_VERSION = 1.0.0 LIBQRTR_GLIB_SITE = http://www.freedesktop.org/software/libqmi LIBQRTR_GLIB_SOURCE = libqrtr-glib-$(LIBQRTR_GLIB_VERSION).tar.xz LIBQRTR_GLIB_LICENSE = LGPL-2.1+ LIBQRTR_GLIB_LICENSE_FILES = COPYING.LIB LIBQRTR_GLIB_INSTALL_STAGING = YES LIBQRTR_GLIB_DEPENDENCIES = libglib2 ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBQRTR_GLIB_CONF_OPTS += --enable-introspection LIBQRTR_GLIB_DEPENDENCIES += gobject-introspection else LIBQRTR_GLIB_CONF_OPTS += --disable-introspection endif $(eval $(autotools-package)) ================================================ FILE: package/libraw/0001-Add-Libs.private-to-libraw.pc.patch ================================================ From ad911cbc3c16397cf9d326c30571a4d1edaaa03f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 2 Jun 2021 07:45:40 +0200 Subject: [PATCH] Add Libs.private to libraw.pc Add Libs.private to libraw.pc to avoid the following static build failure when enabling libraw with jasper support in imagemagick: /home/giuliobenetti/autobuild/run/instance-1/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/9.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/giuliobenetti/autobuild/run/instance-1/output-1/host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libjasper.a(jpg_enc.c.o): in function `jpg_encode': jpg_enc.c:(.text+0x1f4): undefined reference to `jpeg_stdio_dest' -ljpeg must be added after -ljasper because jasper depends on jpeg Fixes: - http://autobuild.buildroot.org/results/88e43a1ea2059a684e50b0f5f2af407e8c6df2e1 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/LibRaw/LibRaw/pull/406] --- configure.ac | 2 ++ libraw.pc.in | 1 + libraw_r.pc.in | 1 + 3 files changed, 4 insertions(+) diff --git a/configure.ac b/configure.ac index 4ab2f313..7bf5fdfd 100644 --- a/configure.ac +++ b/configure.ac @@ -57,6 +57,7 @@ if test x$jpeg = xtrue; then AC_CHECK_HEADERS([jpeglib.h], [ CPPFLAGS="$CPPFLAGS -DUSE_JPEG -DUSE_JPEG8" LIBS="$LIBS -ljpeg" + AC_SUBST([PACKAGE_LIBS_PRIVATE],"-ljpeg $PACKAGE_LIBS_PRIVATE") ], AC_MSG_WARN([no jpeg headers found])) ], AC_MSG_WARN([libjpeg not found]) @@ -78,6 +79,7 @@ if test x$jasper = xtrue; then AC_CHECK_HEADERS([jasper/jasper.h], [ CPPFLAGS="$CPPFLAGS -DUSE_JASPER" LIBS="$LIBS -ljasper" + AC_SUBST([PACKAGE_LIBS_PRIVATE],"-ljasper $PACKAGE_LIBS_PRIVATE") ], AC_MSG_WARN([no jasper headers found])) ], AC_MSG_WARN([libjasper not found]) diff --git a/libraw.pc.in b/libraw.pc.in index 1bab18b8..c95fbc48 100644 --- a/libraw.pc.in +++ b/libraw.pc.in @@ -8,4 +8,5 @@ Description: Raw image decoder library (non-thread-safe) Requires: @PACKAGE_REQUIRES@ Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lraw -lstdc++@PC_OPENMP@ +Libs.private: @PACKAGE_LIBS_PRIVATE@ Cflags: -I${includedir}/libraw -I${includedir} diff --git a/libraw_r.pc.in b/libraw_r.pc.in index e8427271..92bbbffa 100644 --- a/libraw_r.pc.in +++ b/libraw_r.pc.in @@ -8,4 +8,5 @@ Description: Raw image decoder library (thread-safe) Requires: @PACKAGE_REQUIRES@ Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lraw_r -lstdc++@PC_OPENMP@ +Libs.private: @PACKAGE_LIBS_PRIVATE@ Cflags: -I${includedir}/libraw -I${includedir} -- 2.30.2 ================================================ FILE: package/libraw/Config.in ================================================ config BR2_PACKAGE_LIBRAW bool "libraw" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_INSTALL_LIBSTDCPP help libraw is a raw image manipulation library http://www.libraw.org/ comment "libraw needs a toolchain w/ C++" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/libraw/libraw.hash ================================================ # Locally calculated sha256 dc1b486c2003435733043e4e05273477326e51c3ea554c6864a4eafaff1004a6 LibRaw-0.20.2.tar.gz sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 LICENSE.LGPL sha256 0e3098d2d54a12434715f6679ea408d57da5e8d613c385c58ecc6fe5d30cc81f LICENSE.CDDL sha256 313415f7f48f6cd3cc78856626aab4bbe97dbb1e9a11db9c25396ca8d0e76cd9 README.md ================================================ FILE: package/libraw/libraw.mk ================================================ ################################################################################ # # libraw # ################################################################################ LIBRAW_VERSION = 0.20.2 LIBRAW_SOURCE = LibRaw-$(LIBRAW_VERSION).tar.gz LIBRAW_SITE = http://www.libraw.org/data LIBRAW_INSTALL_STAGING = YES LIBRAW_CONF_OPTS += \ --disable-examples \ --disable-openmp LIBRAW_LICENSE = LGPL-2.1 or CDDL-1.0 LIBRAW_LICENSE_FILES = LICENSE.LGPL LICENSE.CDDL README.md LIBRAW_CPE_ID_VENDOR = libraw LIBRAW_DEPENDENCIES = host-pkgconf # https://github.com/LibRaw/LibRaw/issues/353 LIBRAW_AUTORECONF = YES LIBRAW_CXXFLAGS = $(TARGET_CXXFLAGS) LIBRAW_CONF_ENV = CXXFLAGS="$(LIBRAW_CXXFLAGS)" ifeq ($(BR2_PACKAGE_JASPER),y) LIBRAW_CONF_OPTS += --enable-jasper LIBRAW_DEPENDENCIES += jasper # glibc prior to 2.18 only defines constants such as SIZE_MAX or # INT_FAST32_MAX for C++ code if __STDC_LIMIT_MACROS is defined LIBRAW_CXXFLAGS += -D__STDC_LIMIT_MACROS else LIBRAW_CONF_OPTS += --disable-jasper endif ifeq ($(BR2_PACKAGE_JPEG),y) LIBRAW_CONF_OPTS += --enable-jpeg LIBRAW_DEPENDENCIES += jpeg else LIBRAW_CONF_OPTS += --disable-jpeg endif ifeq ($(BR2_PACKAGE_LCMS2),y) LIBRAW_CONF_OPTS += --enable-lcms LIBRAW_DEPENDENCIES += lcms2 host-pkgconf else LIBRAW_CONF_OPTS += --disable-lcms endif ifeq ($(BR2_PACKAGE_ZLIB),y) LIBRAW_CONF_OPTS += --enable-zlib LIBRAW_DEPENDENCIES += zlib else LIBRAW_CONF_OPTS += --disable-zlib endif $(eval $(autotools-package)) ================================================ FILE: package/libraw1394/Config.in ================================================ config BR2_PACKAGE_LIBRAW1394 bool "libraw1394" help libraw1394 provides direct access to the IEEE 1394 bus through the Linux 1394 subsystem's raw1394 user space interface. http://sourceforge.net/projects/libraw1394/ ================================================ FILE: package/libraw1394/libraw1394.hash ================================================ # From https://www.kernel.org/pub/linux/libs/ieee1394/sha256sums.asc sha256 03ccc69761d22c7deb1127fc301010dd13e70e44bb7134b8ff0d07590259a55e libraw1394-2.1.2.tar.xz # Locally computed sha256 5bbcbb737e60fe9deba08ecbd00920cfcc3403ba2e534c64fdeea49d6bb87509 COPYING.LIB ================================================ FILE: package/libraw1394/libraw1394.mk ================================================ ################################################################################ # # libraw1394 # ################################################################################ LIBRAW1394_VERSION = 2.1.2 LIBRAW1394_SOURCE = libraw1394-$(LIBRAW1394_VERSION).tar.xz LIBRAW1394_SITE = $(BR2_KERNEL_MIRROR)/linux/libs/ieee1394 LIBRAW1394_INSTALL_STAGING = YES LIBRAW1394_LICENSE = LGPL-2.1+ LIBRAW1394_LICENSE_FILES = COPYING.LIB $(eval $(autotools-package)) ================================================ FILE: package/librelp/Config.in ================================================ config BR2_PACKAGE_LIBRELP bool "librelp" depends on BR2_TOOLCHAIN_HAS_THREADS help Reliable Event Logging Protocol library https://www.rsyslog.com/librelp/ comment "librelp needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/librelp/librelp.hash ================================================ # Locally calculated sha256 148db4e4d1a23e8136e9ec08810929a55faf5d45e24c2e3186d5ab34355dab31 librelp-1.10.0.tar.gz sha256 1ed76f935566e93e3c3c0d9f8fad22eb6d8bbe406e2eb8470a4a2764d9fd9685 COPYING ================================================ FILE: package/librelp/librelp.mk ================================================ ################################################################################ # # librelp # ################################################################################ LIBRELP_VERSION = 1.10.0 LIBRELP_SITE = http://download.rsyslog.com/librelp LIBRELP_LICENSE = GPL-3.0+ LIBRELP_LICENSE_FILES = COPYING LIBRELP_CPE_ID_VENDOR = rsyslog LIBRELP_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_GNUTLS),y) LIBRELP_DEPENDENCIES += gnutls host-pkgconf LIBRELP_CONF_OPTS += --enable-tls else LIBRELP_CONF_OPTS += --disable-tls endif ifeq ($(BR2_PACKAGE_HAS_OPENSSL),y) LIBRELP_DEPENDENCIES += openssl host-pkgconf LIBRELP_CONF_OPTS += --enable-tls-openssl else LIBRELP_CONF_OPTS += --disable-tls-openssl endif $(eval $(autotools-package)) ================================================ FILE: package/libreplaygain/Config.in ================================================ config BR2_PACKAGE_LIBREPLAYGAIN bool "libreplaygain" help Replay Gain library from Musepack http://www.musepack.net/ ================================================ FILE: package/libreplaygain/libreplaygain.hash ================================================ # From https://www.musepack.net/index.php?pg=src md5 e27b3b1249b7fbae92d656d9e3d26633 libreplaygain_r475.tar.gz # Calculated based on the hash above sha256 8258bf785547ac2cda43bb195e07522f0a3682f55abe97753c974609ec232482 libreplaygain_r475.tar.gz # Locally computed sha256 511e7b63ce6530b93932d19da3471a6672586339bc131b2699ad4e9b0ee6c9bb src/gain_analysis.c ================================================ FILE: package/libreplaygain/libreplaygain.mk ================================================ ################################################################################ # # libreplaygain # ################################################################################ LIBREPLAYGAIN_VERSION = r475 LIBREPLAYGAIN_SITE = http://files.musepack.net/source LIBREPLAYGAIN_SOURCE = libreplaygain_$(LIBREPLAYGAIN_VERSION).tar.gz # upstream doesn't ship configure LIBREPLAYGAIN_AUTORECONF = YES LIBREPLAYGAIN_INSTALL_STAGING = YES LIBREPLAYGAIN_LICENSE = LGPL-2.1+ LIBREPLAYGAIN_LICENSE_FILES = src/gain_analysis.c $(eval $(autotools-package)) ================================================ FILE: package/libressl/0001-always-expose-SSL_OP_NO_TLSv1_3.patch ================================================ always expose SSL_OP_NO_TLSv1_3 like in OpenSSL, see https://github.com/openssl/openssl/blob/master/include/openssl/ssl.h.in#L399 like SSL_OP_NO_DTLSv1_2, see commit "Expose various DTLSv1.2 specific functions and defines" this change fixes the compilation of vsftpd 3.0.4 & 3.0.5, which fails with the following error: ``` ssl.c: In function 'ssl_init': ssl.c:98:18: error: 'SSL_OP_NO_TLSv1_3' undeclared (first use in this function); did you mean 'SSL_OP_NO_TLSv1_1'? ``` Signed-off-by: Francois Perrad Fetched from: https://github.com/libressl-portable/openbsd/pull/124 --- include/openssl/ssl.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h index 46f24b2ea..4048a6e63 100644 --- a/include/openssl/ssl.h +++ b/include/openssl/ssl.h @@ -411,11 +411,7 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, #define SSL_OP_NO_TLSv1 0x04000000L #define SSL_OP_NO_TLSv1_2 0x08000000L #define SSL_OP_NO_TLSv1_1 0x10000000L - -#if defined(LIBRESSL_HAS_TLS1_3) || defined(LIBRESSL_INTERNAL) #define SSL_OP_NO_TLSv1_3 0x20000000L -#endif - #define SSL_OP_NO_DTLSv1 0x40000000L #define SSL_OP_NO_DTLSv1_2 0x80000000L -- 2.30.2 ================================================ FILE: package/libressl/Config.in ================================================ if BR2_PACKAGE_LIBRESSL config BR2_PACKAGE_LIBRESSL_BIN bool "openssl binary" help Install the openssl binary to the target file system. This is a command line tool for doing various cryptographic stuff. endif ================================================ FILE: package/libressl/libressl.hash ================================================ # From https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/SHA256 sha256 cb82ca7d547336917352fbd23db2fc483c6c44d35157b32780214ec74197b3ce libressl-3.4.2.tar.gz # Locally computed sha256 5c63613f008f16a9c0025c096bbd736cecf720494d121b5c5203e0ec6e5955b1 COPYING ================================================ FILE: package/libressl/libressl.mk ================================================ ################################################################################ # # libressl # ################################################################################ LIBRESSL_VERSION = 3.4.2 LIBRESSL_SITE = https://ftp.openbsd.org/pub/OpenBSD/LibreSSL LIBRESSL_LICENSE = ISC (new additions), OpenSSL or SSLeay (original OpenSSL code) LIBRESSL_LICENSE_FILES = COPYING LIBRESSL_CPE_ID_VENDOR = openbsd LIBRESSL_INSTALL_STAGING = YES LIBRESSL_CONF_OPTS = -DOPENSSLDIR="/etc/ssl" ifeq ($(BR2_PACKAGE_LIBRESSL_BIN),) define LIBRESSL_REMOVE_BIN $(RM) -f $(TARGET_DIR)/usr/bin/openssl endef LIBRESSL_POST_INSTALL_TARGET_HOOKS += LIBRESSL_REMOVE_BIN endif $(eval $(cmake-package)) ================================================ FILE: package/libroxml/0001-src-roxml_mem.h-add-missing-extern.patch ================================================ From b16f6813011519ce247b0af9a4b78486daefad54 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 26 Aug 2020 22:54:50 +0200 Subject: [PATCH] src/roxml_mem.h: add missing extern Add missing extern to head_cell otherwise the build with gcc 10 (with -fno-common being default) will fail on: /bin/bash ./libtool --tag=CC --mode=link /home/peko/autobuild/instance-0/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -DIGNORE_EMPTY_TEXT_NODES -DCONFIG_XML_CONTENT -DCONFIG_XML_NAV -DCONFIG_XML_BUFF -DCONFIG_XML_COMMIT -DCONFIG_XML_EDIT -DCONFIG_XML_FILE -DCONFIG_XML_XPATH -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -pthread -version-info 0:0:0 -o libroxml.la -rpath /usr/lib src/libroxml_la-roxml_core.lo src/libroxml_la-roxml_parser.lo src/libroxml_la-roxml_buff.lo src/libroxml_la-roxml_nav.lo src/libroxml_la-roxml_content.lo src/libroxml_la-roxml_mem.lo src/libroxml_la-roxml_stub.lo src/libroxml_la-roxml_commit.lo src/libroxml_la-roxml_edit.lo src/libroxml_la-roxml_file.lo src/libroxml_la-roxml_xpath.lo -pthread libtool: link: /home/peko/autobuild/instance-0/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -shared -fPIC -DPIC src/.libs/libroxml_la-roxml_core.o src/.libs/libroxml_la-roxml_parser.o src/.libs/libroxml_la-roxml_buff.o src/.libs/libroxml_la-roxml_nav.o src/.libs/libroxml_la-roxml_content.o src/.libs/libroxml_la-roxml_mem.o src/.libs/libroxml_la-roxml_stub.o src/.libs/libroxml_la-roxml_commit.o src/.libs/libroxml_la-roxml_edit.o src/.libs/libroxml_la-roxml_file.o src/.libs/libroxml_la-roxml_xpath.o -O2 -pthread -pthread -pthread -Wl,-soname -Wl,libroxml.so.0 -o .libs/libroxml.so.0.0.0 /home/peko/autobuild/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: src/.libs/libroxml_la-roxml_mem.o:(.data+0x0): multiple definition of `head_cell'; src/.libs/libroxml_la-roxml_content.o:(.bss+0x0): first defined here Fixes: - http://autobuild.buildroot.org/results/b6ac3664d61ad826515b57c4d057b6f001b5167d Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/blunderer/libroxml/pull/79] --- src/roxml_mem.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/roxml_mem.h b/src/roxml_mem.h index aff6137..34a5070 100644 --- a/src/roxml_mem.h +++ b/src/roxml_mem.h @@ -14,7 +14,7 @@ #include "roxml_internal.h" -memory_cell_t head_cell; +extern memory_cell_t head_cell; /** \brief alloc memory function * -- 2.28.0 ================================================ FILE: package/libroxml/Config.in ================================================ config BR2_PACKAGE_LIBROXML bool "roxml" depends on BR2_TOOLCHAIN_HAS_THREADS help libroxml is a light and powerful xml parsing library with xpath handling. Roxml is a binary using libroxml to explore xml file from shell scripts. http://www.libroxml.net comment "libroxml needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libroxml/libroxml.hash ================================================ # Locally calculated sha256 ed6d68d1bceabf98e5e76907411e2e4d93b2dbd48479ab41dede851f59dad6a3 libroxml-3.0.2.tar.gz sha256 fe11466c265ad0a6c3896ea113af9403c0a8372b1fdd78712db64f0f1bac6387 License.txt ================================================ FILE: package/libroxml/libroxml.mk ================================================ ################################################################################ # # libroxml # ################################################################################ LIBROXML_VERSION = 3.0.2 LIBROXML_SITE = http://download.libroxml.net/pool/v3.x LIBROXML_INSTALL_STAGING = YES LIBROXML_LICENSE = LGPL-2.1+ with static link exception LIBROXML_LICENSE_FILES = License.txt LIBROXML_CONF_OPTS = --disable-silent-rules # libroxml forgets to compile/link with -pthread, even though it uses # thread functions breaking static linking LIBROXML_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -pthread" LIBS="-pthread" $(eval $(autotools-package)) ================================================ FILE: package/librsvg/Config.in ================================================ config BR2_PACKAGE_LIBRSVG bool "librsvg" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 depends on BR2_INSTALL_LIBSTDCPP # pango depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # pango -> harfbuzz select BR2_PACKAGE_CAIRO select BR2_PACKAGE_CAIRO_PNG select BR2_PACKAGE_CAIRO_SCRIPT select BR2_PACKAGE_GDK_PIXBUF select BR2_PACKAGE_HOST_RUSTC select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_PANGO help The rsvg library is an efficient renderer for Scalable Vector Graphics (SVG) pictures. https://wiki.gnome.org/Projects/LibRsvg comment "librsvg needs a toolchain w/ wchar, threads, C++, gcc >= 4.8" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \ !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/librsvg/librsvg.hash ================================================ # From https://ftp.gnome.org/pub/gnome/sources/librsvg/2.50/librsvg-2.50.7.sha256sum sha256 fffb61b08cd5282aaae147a02b305166a7426fad22a8b9427708f0f2fc426ebc librsvg-2.50.7.tar.xz # Locally computed sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB ================================================ FILE: package/librsvg/librsvg.mk ================================================ ################################################################################ # # librsvg # ################################################################################ LIBRSVG_VERSION_MAJOR = 2.50 LIBRSVG_VERSION = $(LIBRSVG_VERSION_MAJOR).7 LIBRSVG_SITE = http://ftp.gnome.org/pub/gnome/sources/librsvg/$(LIBRSVG_VERSION_MAJOR) LIBRSVG_SOURCE = librsvg-$(LIBRSVG_VERSION).tar.xz LIBRSVG_INSTALL_STAGING = YES LIBRSVG_CONF_ENV = \ LIBS=$(TARGET_NLS_LIBS) \ RUST_TARGET=$(RUSTC_TARGET_NAME) LIBRSVG_CONF_OPTS = --disable-pixbuf-loader --disable-tools HOST_LIBRSVG_CONF_OPTS = --enable-introspection=no LIBRSVG_DEPENDENCIES = cairo host-gdk-pixbuf gdk-pixbuf host-rustc libglib2 libxml2 pango \ $(TARGET_NLS_DEPENDENCIES) HOST_LIBRSVG_DEPENDENCIES = host-cairo host-gdk-pixbuf host-libglib2 host-libxml2 host-pango host-rustc LIBRSVG_LICENSE = LGPL-2.1+ LIBRSVG_LICENSE_FILES = COPYING.LIB LIBRSVG_CPE_ID_VENDOR = gnome ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBRSVG_CONF_OPTS += --enable-introspection LIBRSVG_DEPENDENCIES += gobject-introspection else LIBRSVG_CONF_OPTS += --disable-introspection endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/librsync/Config.in ================================================ config BR2_PACKAGE_LIBRSYNC bool "librsync" select BR2_PACKAGE_ZLIB select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_POPT help librsync implements the rolling-checksum algorithm of remote file synchronization that was popularized by the rsync utility and is used in rproxy. https://github.com/librsync/librsync ================================================ FILE: package/librsync/librsync.hash ================================================ # Locally computed: sha256 ef8ce23df38d5076d25510baa2cabedffbe0af460d887d86c2413a1c2b0c676f librsync-2.3.2.tar.gz sha256 5bbcbb737e60fe9deba08ecbd00920cfcc3403ba2e534c64fdeea49d6bb87509 COPYING ================================================ FILE: package/librsync/librsync.mk ================================================ ################################################################################ # # librsync # ################################################################################ LIBRSYNC_VERSION = 2.3.2 LIBRSYNC_SITE = https://github.com/librsync/librsync/releases/download/v$(LIBRSYNC_VERSION) LIBRSYNC_LICENSE = LGPL-2.1+ LIBRSYNC_LICENSE_FILES = COPYING LIBRSYNC_CPE_ID_VENDOR = librsync_project LIBRSYNC_INSTALL_STAGING = YES LIBRSYNC_DEPENDENCIES = host-pkgconf zlib bzip2 popt $(eval $(cmake-package)) ================================================ FILE: package/librtas/Config.in ================================================ config BR2_PACKAGE_LIBRTAS bool "librtas" depends on BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le depends on BR2_TOOLCHAIN_USES_GLIBC help The librtas package provides an interface for Run-Time Abstraction Services (RTAS) calls on PAPR platforms. The libraries allow users to examine and manipulate hardware, and parse RTAS events. http://librtas.sourceforge.net/ comment "librtas needs a glibc toolchain" depends on BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le depends on !BR2_TOOLCHAIN_USES_GLIBC ================================================ FILE: package/librtas/librtas.hash ================================================ # Locally computed sha256 b47b2a6f140347ac265e2c66ddf68293f6cdcc7c0c9a78c6e21ff52846465415 librtas-2.0.2.tar.gz sha256 592987e8510228d546540b84a22444bde98e48d03078d3b2eefcd889bec5ce8c COPYING.LESSER ================================================ FILE: package/librtas/librtas.mk ================================================ ################################################################################ # # librtas # ################################################################################ LIBRTAS_VERSION = 2.0.2 LIBRTAS_SITE = $(call github,ibm-power-utilities,librtas,v$(LIBRTAS_VERSION)) LIBRTAS_LICENSE = LGPL-2.1+ LIBRTAS_LICENSE_FILES = COPYING.LESSER LIBRTAS_INSTALL_STAGING = YES # From git LIBRTAS_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/librtlsdr/0001-disable_shared_library_target_in_build.patch ================================================ From 9a1c2587d4ef18e2026811deabd024eb7577d9ce Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Fri, 15 May 2020 16:14:48 +0200 Subject: [PATCH] disable shared library target in build Disable shared library target if BUILD_SHARED_LIBS if OFF. Patch retrieved from https://git.buildroot.net/buildroot/tree/package/librtlsdr/0001-disable_shared_library_target_in_build.patch?h=2020.02.x Patch has been updated to work with master and to be able to keep current behavior of building shared and static version of library if BUILD_SHARED_LIBS and BUILD_STATIC_LIBS are both set. Moreover, if BUILD_STATIC_LIBS is OFF, only shared version of library will be install. [Upstream status: http://lists.osmocom.org/pipermail/osmocom-sdr/2020-May/002075.html] Signed-off-by: Yuvaraj Patil Signed-off-by: Fabrice Fontaine Signed-off-by: Gwenhael Goavec-Merou Signed-off-by: Titouan Christophe --- src/CMakeLists.txt | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index de93044..13b7b1a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -18,6 +18,8 @@ ######################################################################## # Setup shared library variant ######################################################################## +option(BUILD_SHARED_LIBS "Build shared library" ON) +if(BUILD_SHARED_LIBS) add_library(rtlsdr SHARED librtlsdr.c tuner_e4k.c tuner_fc0012.c tuner_fc0013.c tuner_fc2580.c tuner_r82xx.c) target_link_libraries(rtlsdr PkgConfig::LIBUSB) @@ -30,10 +32,14 @@ set_target_properties(rtlsdr PROPERTIES OUTPUT_NAME rtlsdr) set_target_properties(rtlsdr PROPERTIES SOVERSION ${MAJOR_VERSION}) set_target_properties(rtlsdr PROPERTIES VERSION ${LIBVER}) generate_export_header(rtlsdr) +list(APPEND rtlsdr_lib rtlsdr) +endif() ######################################################################## # Setup static library variant ######################################################################## +option(BUILD_STATIC_LIBS "Build static library" ON) +if(BUILD_STATIC_LIBS) add_library(rtlsdr_static STATIC librtlsdr.c tuner_e4k.c tuner_fc0012.c tuner_fc0013.c tuner_fc2580.c tuner_r82xx.c) target_link_libraries(rtlsdr_static PkgConfig::LIBUSB) @@ -47,6 +53,8 @@ if(NOT WIN32) set_target_properties(rtlsdr_static PROPERTIES OUTPUT_NAME rtlsdr) endif() generate_export_header(rtlsdr_static) +list(APPEND rtlsdr_lib rtlsdr_static) +endif() ######################################################################## # Set up Windows DLL resource files @@ -90,37 +98,37 @@ add_executable(rtl_eeprom rtl_eeprom.c) add_executable(rtl_adsb rtl_adsb.c) add_executable(rtl_power rtl_power.c) add_executable(rtl_biast rtl_biast.c) -set(INSTALL_TARGETS rtlsdr rtlsdr_static rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast) +set(INSTALL_TARGETS ${rtlsdr_lib} rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast) -target_link_libraries(rtl_sdr rtlsdr convenience_static +target_link_libraries(rtl_sdr ${rtlsdr_lib} convenience_static ${LIBUSB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) -target_link_libraries(rtl_tcp rtlsdr convenience_static +target_link_libraries(rtl_tcp ${rtlsdr_lib} convenience_static ${LIBUSB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) -target_link_libraries(rtl_test rtlsdr convenience_static +target_link_libraries(rtl_test ${rtlsdr_lib} convenience_static ${LIBUSB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) -target_link_libraries(rtl_fm rtlsdr convenience_static +target_link_libraries(rtl_fm ${rtlsdr_lib} convenience_static ${LIBUSB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) -target_link_libraries(rtl_eeprom rtlsdr convenience_static +target_link_libraries(rtl_eeprom ${rtlsdr_lib} convenience_static ${LIBUSB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) -target_link_libraries(rtl_adsb rtlsdr convenience_static +target_link_libraries(rtl_adsb ${rtlsdr_lib} convenience_static ${LIBUSB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) -target_link_libraries(rtl_power rtlsdr convenience_static +target_link_libraries(rtl_power ${rtlsdr_lib} convenience_static ${LIBUSB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) -target_link_libraries(rtl_biast rtlsdr convenience_static +target_link_libraries(rtl_biast ${rtlsdr_lib} convenience_static ${LIBUSB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) @@ -156,12 +164,16 @@ endif() ######################################################################## # Install built library files & utilities ######################################################################## +if(BUILD_SHARED_LIBS) install(TARGETS rtlsdr EXPORT RTLSDR-export LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} # .so/.dylib file ) +endif() +if(BUILD_STATIC_LIBS) install(TARGETS rtlsdr_static EXPORT RTLSDR-export ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} # .so/.dylib file ) +endif() install(TARGETS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast DESTINATION ${CMAKE_INSTALL_BINDIR} ) -- 2.25.3 ================================================ FILE: package/librtlsdr/0002-cmake-Modules-Version.cmake-don-t-use-Git-version-if.patch ================================================ From feb5d9c6b7bcec788f9b01781c205e31fff260e7 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 11 Aug 2020 23:07:08 +0200 Subject: [PATCH] cmake/Modules/Version.cmake: don't use Git version if not in a Git repo If the librtlsdr code comes from a tarball, it doesn't have any .git/ metadata, and therefore even if Git (as a tool) is found, the logic in cmake/Modules/Version.cmake fails finding a version through Git: -- Extracting version information from git describe... fatal: Not a git repository (or any of the parent directories): .git As a consequence, the VERSION variable is empty, which later causes cmake to bail out with: CMake Error at /home/test/autobuild/run/instance-1/output-1/host/share/cmake-3.15/Modules/WriteBasicConfigVersionFile.cmake:43 (message): No VERSION specified for WRITE_BASIC_CONFIG_VERSION_FILE() Call Stack (most recent call first): /home/test/autobuild/run/instance-1/output-1/host/share/cmake-3.15/Modules/CMakePackageConfigHelpers.cmake:225 (write_basic_config_version_file) CMakeLists.txt:173 (write_basic_package_version_file) To avoid this, we only use Git to determine the version if the cmake project top-level source directory has a .git/ folder. Upstream: https://github.com/librtlsdr/librtlsdr/pull/75 Signed-off-by: Thomas Petazzoni --- cmake/Modules/Version.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/Modules/Version.cmake b/cmake/Modules/Version.cmake index 2d4e76d..6f67fa4 100644 --- a/cmake/Modules/Version.cmake +++ b/cmake/Modules/Version.cmake @@ -32,7 +32,7 @@ set(PATCH_VERSION ${VERSION_INFO_PATCH_VERSION}) ######################################################################## find_package(Git QUIET) -if(GIT_FOUND) +if(GIT_FOUND AND EXISTS ${CMAKE_SOURCE_DIR}/.git) message(STATUS "Extracting version information from git describe...") execute_process( COMMAND ${GIT_EXECUTABLE} describe --always --abbrev=4 --long -- 2.26.2 ================================================ FILE: package/librtlsdr/Config.in ================================================ config BR2_PACKAGE_LIBRTLSDR bool "librtlsdr" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Library and command line programs for accessing RTL2832U SDR dongles. http://sdr.osmocom.org/trac/wiki/rtl-sdr/ if BR2_PACKAGE_LIBRTLSDR config BR2_PACKAGE_LIBRTLSDR_DETACH_DRIVER bool "Detach kernel driver" default y help Enable this option if you would like librtlsdr to automatically detach any kernel driver associated to the RTL2832U USB device on startup if one is loaded. config BR2_PACKAGE_LIBRTLSDR_ZEROCOPY bool "Enable usbfs zero-copy support" default y help This option allows to use kernel usbfs mmap instead of buffers in userspace. If you experiment crash with kernel < 5.6, disable this option. endif comment "librtlsdr needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/librtlsdr/librtlsdr.hash ================================================ # Locally calculated sha256 f09ff5ba2fa1780071321ba22885b9d1a16ac9d4b944a97e39b6921960439301 librtlsdr-ed0317e6a58c098874ac58b769cf2e609c18d9a5.tar.gz # License file, locally calculated sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/librtlsdr/librtlsdr.mk ================================================ ################################################################################ # # librtlsdr # ################################################################################ LIBRTLSDR_VERSION = ed0317e6a58c098874ac58b769cf2e609c18d9a5 LIBRTLSDR_SITE = $(call github,steve-m,librtlsdr,$(LIBRTLSDR_VERSION)) LIBRTLSDR_LICENSE = GPL-2.0+ LIBRTLSDR_LICENSE_FILES = COPYING LIBRTLSDR_INSTALL_STAGING = YES LIBRTLSDR_DEPENDENCIES = libusb # BUILD_SHARED_LIBS is handled in pkg-cmake.mk as it is a generic cmake variable ifeq ($(BR2_STATIC_LIBS),y) LIBRTLSDR_CONF_OPTS += -DBUILD_STATIC_LIBS=ON else ifeq ($(BR2_SHARED_STATIC_LIBS),y) LIBRTLSDR_CONF_OPTS += -DBUILD_STATIC_LIBS=ON else ifeq ($(BR2_SHARED_LIBS),y) LIBRTLSDR_CONF_OPTS += -DBUILD_STATIC_LIBS=OFF endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) LIBRTLSDR_CONF_OPTS += -DINSTALL_UDEV_RULES=ON endif ifeq ($(BR2_PACKAGE_LIBRTLSDR_DETACH_DRIVER),y) LIBRTLSDR_CONF_OPTS += -DDETACH_KERNEL_DRIVER=1 endif ifeq ($(BR2_PACKAGE_LIBRTLSDR_ZEROCOPY),y) LIBRTLSDR_CONF_OPTS += -DENABLE_ZEROCOPY=ON else LIBRTLSDR_CONF_OPTS += -DENABLE_ZEROCOPY=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/libsamplerate/Config.in ================================================ config BR2_PACKAGE_LIBSAMPLERATE bool "libsamplerate" help Secret Rabbit Code (aka libsamplerate) is a Sample Rate Converter for audio. One example of where such a thing would be useful is converting audio from the CD sample rate of 44.1kHz to the 48kHz sample rate used by DAT players. http://www.mega-nerd.com/SRC/ ================================================ FILE: package/libsamplerate/libsamplerate.hash ================================================ # Locally calculated after checking pgp signature sha256 0a7eb168e2f21353fb6d84da152e4512126f7dc48ccb0be80578c565413444c1 libsamplerate-0.1.9.tar.gz # Locally computed sha256 2c1f76ce2effdddb425018405d5690c0b1ab4e6976e35296b0a6db65c5e1a55d COPYING ================================================ FILE: package/libsamplerate/libsamplerate.mk ================================================ ################################################################################ # # libsamplerate # ################################################################################ LIBSAMPLERATE_VERSION = 0.1.9 LIBSAMPLERATE_SITE = http://www.mega-nerd.com/SRC LIBSAMPLERATE_INSTALL_STAGING = YES LIBSAMPLERATE_DEPENDENCIES = host-pkgconf LIBSAMPLERATE_CONF_OPTS = --disable-fftw --program-transform-name='' LIBSAMPLERATE_LICENSE = BSD-2-Clause LIBSAMPLERATE_LICENSE_FILES = COPYING LIBSAMPLERATE_CPE_ID_VENDOR = libsamplerate_project ifeq ($(BR2_PACKAGE_ALSA_LIB),y) LIBSAMPLERATE_DEPENDENCIES += alsa-lib endif ifeq ($(BR2_PACKAGE_LIBSNDFILE),y) LIBSAMPLERATE_DEPENDENCIES += libsndfile endif $(eval $(autotools-package)) ================================================ FILE: package/libscrypt/0001-Allow-adding-options-to-CFLAGS-and-LDFLAGS-variables.patch ================================================ From 097c5d9248f4afd34c73de5aba01a143ef784257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20S=C3=B8rensen?= Date: Tue, 14 Mar 2017 09:23:51 +0100 Subject: [PATCH] Allow adding options to CFLAGS and LDFLAGS variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This also removes a number of hard-coded CFLAGS, leaving it up to the user to pass appropriate optimization/hardening flags. Signed-off-by: Stefan Sørensen --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 7022a4a..3098a9a 100644 --- a/Makefile +++ b/Makefile @@ -5,8 +5,8 @@ MAKE_DIR ?= install -d INSTALL_DATA ?= install CC?=gcc -CFLAGS?=-O2 -Wall -g -D_FORTIFY_SOURCE=2 -fstack-protector -fPIC -LDFLAGS?=-Wl,-z,now -Wl,-z,relro -Wl,-soname,libscrypt.so.0 -Wl,--version-script=libscrypt.version +override CFLAGS+=-fPIC +override LDFLAGS+=-Wl,-z,now -Wl,-z,relro -Wl,-soname,libscrypt.so.0 -Wl,--version-script=libscrypt.version CFLAGS_EXTRA?=-Wl,-rpath=. all: reference -- 2.7.4 ================================================ FILE: package/libscrypt/Config.in ================================================ config BR2_PACKAGE_LIBSCRYPT bool "libscrypt" # Unconditionally builds a shared library depends on !BR2_STATIC_LIBS help This is a library that implements the secure password hashing function "scrypt". http://www.lolware.net/libscrypt.html comment "libscrypt needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libscrypt/libscrypt.hash ================================================ # Locally calculated sha256 68e377e79745c10d489b759b970e52d819dbb80dd8ca61f8c975185df3f457d3 libscrypt-1.21.tar.gz sha256 aacbfd9e19e5b38ea09616cebf0751ef0cc7b6a19ea0fd78f4b0598b2c503394 LICENSE ================================================ FILE: package/libscrypt/libscrypt.mk ================================================ ################################################################################ # # libscrypt # ################################################################################ LIBSCRYPT_VERSION = 1.21 LIBSCRYPT_SITE = $(call github,technion,libscrypt,v$(LIBSCRYPT_VERSION)) LIBSCRYPT_LICENSE = BSD-2-Clause LIBSCRYPT_LICENSE_FILES = LICENSE LIBSCRYPT_INSTALL_STAGING = YES define LIBSCRYPT_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) endef define LIBSCRYPT_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) PREFIX=/usr \ DESTDIR=$(STAGING_DIR) install endef define LIBSCRYPT_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) PREFIX=/usr \ DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/libseccomp/Config.in ================================================ config BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS bool default y if BR2_aarch64 default y if BR2_arm || BR2_armeb default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_i386 || BR2_x86_64 default y if BR2_powerpc64 || BR2_powerpc config BR2_PACKAGE_LIBSECCOMP bool "libseccomp" depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 help High level interface to the Linux Kernel's seccomp filter The libseccomp library provides an easy to use, platform independent, interface to the Linux Kernel's syscall filtering mechanism: seccomp. The libseccomp API is designed to abstract away the underlying BPF based syscall filter language and present a more conventional function-call based filtering interface that should be familiar to, and easily adopted by application developers. https://github.com/seccomp/libseccomp comment "libseccomp needs a toolchain w/ headers >= 3.12" depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 ================================================ FILE: package/libseccomp/libseccomp.hash ================================================ # From https://github.com/seccomp/libseccomp/releases/tag/v2.4.4 sha256 4e79738d1ef3c9b7ca9769f1f8b8d84fc17143c2c1c432e53b9c64787e0ff3eb libseccomp-2.4.4.tar.gz # Locally calculated sha256 102900208eef27b766380135906d431dba87edaa7ec6aa72e6ebd3dd67f3a97b LICENSE ================================================ FILE: package/libseccomp/libseccomp.mk ================================================ ################################################################################ # # libseccomp # ################################################################################ LIBSECCOMP_VERSION = 2.4.4 LIBSECCOMP_SITE = https://github.com/seccomp/libseccomp/releases/download/v$(LIBSECCOMP_VERSION) LIBSECCOMP_LICENSE = LGPL-2.1 LIBSECCOMP_LICENSE_FILES = LICENSE LIBSECCOMP_CPE_ID_VENDOR = libseccomp_project LIBSECCOMP_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libsecret/Config.in ================================================ config BR2_PACKAGE_LIBSECRET bool "libsecret" depends on BR2_USE_WCHAR # gettext dep in libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 help libsecret is a library for storing and retrieving passwords and other secrets. It communicates with the "Secret Service" using DBus. gnome-keyring and ksecretservice are both implementations of a Secret Service. https://wiki.gnome.org/Projects/Libsecret comment "libsecret needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libsecret/libsecret.hash ================================================ # From https://download.gnome.org/sources/libsecret/0.20/libsecret-0.20.4.sha256sum sha256 325a4c54db320c406711bf2b55e5cb5b6c29823426aa82596a907595abb39d28 libsecret-0.20.4.tar.xz # Hash for license file: sha256 a1a33180d02960ab1c5de36cf20b1a2f0fe9888d83826ad263da5db52f1b183b COPYING ================================================ FILE: package/libsecret/libsecret.mk ================================================ ################################################################################ # # libsecret # ################################################################################ LIBSECRET_VERSION_MAJOR = 0.20 LIBSECRET_VERSION = $(LIBSECRET_VERSION_MAJOR).4 LIBSECRET_SITE = http://ftp.gnome.org/pub/GNOME/sources/libsecret/$(LIBSECRET_VERSION_MAJOR) LIBSECRET_SOURCE = libsecret-$(LIBSECRET_VERSION).tar.xz LIBSECRET_INSTALL_STAGING = YES LIBSECRET_DEPENDENCIES = libglib2 $(TARGET_NLS_DEPENDENCIES) LIBSECRET_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) LIBSECRET_CONF_OPTS = \ --disable-manpages \ --disable-strict \ --disable-coverage \ --enable-vala=no LIBSECRET_LICENSE = LGPL-2.1+ LIBSECRET_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBSECRET_CONF_OPTS += --enable-introspection=yes LIBSECRET_DEPENDENCIES += gobject-introspection else LIBSECRET_CONF_OPTS += --enable-introspection=no endif ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) LIBSECRET_DEPENDENCIES += libgcrypt LIBSECRET_CONF_OPTS += --enable-gcrypt \ --with-libgcrypt-prefix=$(STAGING_DIR)/usr else LIBSECRET_CONF_OPTS += --disable-gcrypt endif $(eval $(autotools-package)) ================================================ FILE: package/libselinux/0001-fix-musl-build.patch ================================================ From 78f7f09028fdd6a5e8e4e4b584749621eaef412f Mon Sep 17 00:00:00 2001 From: Yann E. MORIN" Date: Sat, 7 Dec 2019 17:24:50 -0800 Subject: [PATCH] fix undefined macros in musl musl does not define glibc-specific macros, so use a simple version of the macro when it is not defined. This is very inefficient, however, but copying the code from glibc is not really possible because it is LGPL while libselinux in Public Domain, and we want to avoid license propagation, so this macro is completely written from scratch, and non-optimal. Signed-off-by: "Yann E. MORIN" [Updated for 3.0] Signed-off-by: Adam Duskett diff --git a/src/booleans.c b/src/booleans.c index ffa8d26..8569002 100644 --- a/src/booleans.c +++ b/src/booleans.c @@ -65,6 +65,14 @@ int security_get_boolean_names(char ***names, int *len) goto bad; } +/* Simple (but inefficient) version of _D_ALLOC_NAMLEN when + * building with a C library that misses it (e.g. musl). + * Note: glibc does a strlen on (d)->d_name, so assume it is safe. + */ +#ifndef _D_ALLOC_NAMLEN +#define _D_ALLOC_NAMLEN(d) (strlen((d)->d_name)+1) +#endif + for (i = 0; i < *len; i++) { n[i] = strdup(namelist[i]->d_name); if (!n[i]) { -- 2.23.0 ================================================ FILE: package/libselinux/0002-Do-not-use-PYCEXT-and-rely-on-the-installed-file-nam.patch ================================================ From c26495025ab1a2597e5433b67a3bf793d3ce1e08 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 25 Oct 2019 13:37:14 +0200 Subject: [PATCH] Do not use PYCEXT, and rely on the installed file name PYCEXT is computed by asking the Python intrepreter what is the file extension used for native Python modules. Unfortunately, when cross-compiling, the host Python doesn't give the proper result: it gives the result matching the build machine, and not the target machine. Due to this, the symlink has an incorrect name, and doesn't point to the .so file that was actually built/installed. To address this and keep things simple, this patch just changes the ln invocation to rely on the name of the _selinux*.so Python module that was installed. Signed-off-by: Antoine Tenart [Refreshed for 3.1] Signed-off-by: Thomas Petazzoni [Refreshed for 3.0] Signed-off-by: Adam Duskett --- src/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index 190016e2af34..7ee22fd35da3 100644 --- a/src/Makefile +++ b/src/Makefile @@ -15,7 +15,6 @@ INCLUDEDIR ?= $(PREFIX)/include PYINC ?= $(shell $(PKG_CONFIG) --cflags $(PYPREFIX)) PYLIBS ?= $(shell $(PKG_CONFIG) --libs $(PYPREFIX)) PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib(plat_specific=1, prefix='$(PREFIX)'))") -PYCEXT ?= $(shell $(PYTHON) -c 'import importlib.machinery;print(importlib.machinery.EXTENSION_SUFFIXES[0])') RUBYINC ?= $(shell $(RUBY) -e 'puts "-I" + RbConfig::CONFIG["rubyarchhdrdir"] + " -I" + RbConfig::CONFIG["rubyhdrdir"]') RUBYLIBS ?= $(shell $(RUBY) -e 'puts "-L" + RbConfig::CONFIG["libdir"] + " -L" + RbConfig::CONFIG["archlibdir"] + " " + RbConfig::CONFIG["LIBRUBYARG_SHARED"]') RUBYINSTALL ?= $(shell $(RUBY) -e 'puts RbConfig::CONFIG["vendorarchdir"]') @@ -184,7 +183,7 @@ install: all install-pywrap: pywrap $(PYTHON) setup.py install --prefix=$(PREFIX) `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` $(PYTHON_SETUP_ARGS) install -m 644 $(SWIGPYOUT) $(DESTDIR)$(PYTHONLIBDIR)/selinux/__init__.py - ln -sf --relative $(DESTDIR)$(PYTHONLIBDIR)/selinux/_selinux$(PYCEXT) $(DESTDIR)$(PYTHONLIBDIR)/_selinux$(PYCEXT) + ln -sf --relative $(DESTDIR)$(PYTHONLIBDIR)/selinux/_selinux*.so $(DESTDIR)$(PYTHONLIBDIR)/ install-rubywrap: rubywrap test -d $(DESTDIR)$(RUBYINSTALL) || install -m 755 -d $(DESTDIR)$(RUBYINSTALL) -- 2.26.2 ================================================ FILE: package/libselinux/0003-libselinux-utils-getseuser.c-fix-build-with-gcc-4.8.patch ================================================ From 5c4ddfc88f0a7f10a5e9edddbdbe8e8ef1f9945e Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 10 Jun 2021 07:38:02 +0200 Subject: [PATCH] libselinux/utils/getseuser.c: fix build with gcc 4.8 Fix the following build failure with gcc 4.8 which is raised since version 3.2 and https://github.com/SELinuxProject/selinux/commit/156dd0de5cad31e7d437c64e11a8aef027f0a691 getseuser.c:53:2: error: 'for' loop initial declarations are only allowed in C99 mode for (int i = 0; i < n; i++) ^ Fixes: - http://autobuild.buildroot.org/results/37eb0952a763256fbf6ef3c668f6c95fbdf2dd35 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/SELinuxProject/selinux/pull/289] --- libselinux/utils/getseuser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/getseuser.c b/utils/getseuser.c index ce1b7b27..34f2e887 100644 --- a/utils/getseuser.c +++ b/utils/getseuser.c @@ -9,7 +9,7 @@ int main(int argc, char **argv) { char *seuser = NULL, *level = NULL; char **contextlist; - int rc, n; + int rc, n, i; if (argc != 3) { fprintf(stderr, "usage: %s linuxuser fromcon\n", argv[0]); @@ -50,7 +50,7 @@ int main(int argc, char **argv) if (n == 0) printf("no valid context found\n"); - for (int i = 0; i < n; i++) + for (i = 0; i < n; i++) printf("Context %d\t%s\n", i, contextlist[i]); freeconary(contextlist); -- 2.30.2 ================================================ FILE: package/libselinux/Config.in ================================================ config BR2_PACKAGE_LIBSELINUX bool "libselinux" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBSEPOL select BR2_PACKAGE_PCRE select BR2_PACKAGE_MUSL_FTS if !BR2_TOOLCHAIN_USES_GLIBC help libselinux is the runtime SELinux library that provides interfaces (e.g. library functions for the SELinux kernel APIs like getcon(), other support functions like getseuserbyname()) to SELinux-aware applications. libselinux may use the shared libsepol to manipulate the binary policy if necessary (e.g. to downgrade the policy format to an older version supported by the kernel) when loading policy. http://selinuxproject.org/page/Main_Page comment "libselinux needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libselinux/libselinux.hash ================================================ # From: https://github.com/SELinuxProject/selinux/wiki/Releases sha256 df758ef1d9d4811051dd901ea6b029ae334ffd7c671c128beb16bce1e25ac161 libselinux-3.2.tar.gz # Hash for license file sha256 86657b4c0fe868d7cbd977cb04c63b6c667e08fa51595a7bc846ad4bed8fc364 LICENSE ================================================ FILE: package/libselinux/libselinux.mk ================================================ ################################################################################ # # libselinux # ################################################################################ LIBSELINUX_VERSION = 3.2 LIBSELINUX_SITE = https://github.com/SELinuxProject/selinux/releases/download/$(LIBSELINUX_VERSION) LIBSELINUX_LICENSE = Public Domain LIBSELINUX_LICENSE_FILES = LICENSE LIBSELINUX_CPE_ID_VENDOR = selinuxproject LIBSELINUX_DEPENDENCIES = $(BR2_COREUTILS_HOST_DEPENDENCY) libsepol pcre LIBSELINUX_INSTALL_STAGING = YES # Set SHLIBDIR to /usr/lib so it has the same value than LIBDIR, as a result # we won't have to use a relative path in 0002-revert-ln-relative.patch LIBSELINUX_MAKE_OPTS = \ $(TARGET_CONFIGURE_OPTS) \ ARCH=$(KERNEL_ARCH) \ SHLIBDIR=/usr/lib LIBSELINUX_MAKE_INSTALL_TARGETS = install ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),) LIBSELINUX_DEPENDENCIES += musl-fts LIBSELINUX_MAKE_OPTS += FTS_LDLIBS=-lfts endif ifeq ($(BR2_PACKAGE_PYTHON3),y) LIBSELINUX_DEPENDENCIES += python3 host-swig LIBSELINUX_MAKE_OPTS += \ $(PKG_PYTHON_DISTUTILS_ENV) \ PYTHON=python$(PYTHON3_VERSION_MAJOR) LIBSELINUX_MAKE_INSTALL_TARGETS += install-pywrap # dependencies are broken and result in file truncation errors at link # time if the Python bindings are built through the same make # invocation as the rest of the library. define LIBSELINUX_BUILD_PYTHON_BINDINGS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ $(LIBSELINUX_MAKE_OPTS) swigify pywrap endef endif # python3 # Filter out D_FILE_OFFSET_BITS=64. This fixes errors caused by glibc 2.22. We # set CFLAGS, CPPFLAGS and LDFLAGS here because we want to win over the # CFLAGS/CPPFLAGS/LDFLAGS definitions passed by $(PKG_PYTHON_DISTUTILS_ENV) # when the python binding is enabled. LIBSELINUX_MAKE_OPTS += \ CFLAGS="$(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CFLAGS))" \ CPPFLAGS="$(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CPPFLAGS))" \ LDFLAGS="$(TARGET_LDFLAGS) -lpcre -lpthread" define LIBSELINUX_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ $(LIBSELINUX_MAKE_OPTS) all $(LIBSELINUX_BUILD_PYTHON_BINDINGS) endef define LIBSELINUX_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ $(LIBSELINUX_MAKE_OPTS) DESTDIR=$(STAGING_DIR) \ $(LIBSELINUX_MAKE_INSTALL_TARGETS) endef define LIBSELINUX_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ $(LIBSELINUX_MAKE_OPTS) DESTDIR=$(TARGET_DIR) \ $(LIBSELINUX_MAKE_INSTALL_TARGETS) if ! grep -q "selinuxfs" $(TARGET_DIR)/etc/fstab; then \ echo "none /sys/fs/selinux selinuxfs noauto 0 0" >> $(TARGET_DIR)/etc/fstab ; fi endef HOST_LIBSELINUX_DEPENDENCIES = \ host-libsepol host-pcre host-swig host-python3 HOST_LIBSELINUX_MAKE_OPTS = \ $(HOST_CONFIGURE_OPTS) \ PREFIX=$(HOST_DIR) \ SHLIBDIR=$(HOST_DIR)/lib \ LDFLAGS="$(HOST_LDFLAGS) -lpcre -lpthread" \ $(HOST_PKG_PYTHON_DISTUTILS_ENV) \ PYTHON=python$(PYTHON3_VERSION_MAJOR) define HOST_LIBSELINUX_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) \ $(HOST_LIBSELINUX_MAKE_OPTS) all # Generate python interface wrapper $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) \ $(HOST_LIBSELINUX_MAKE_OPTS) swigify pywrap endef define HOST_LIBSELINUX_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) \ $(HOST_LIBSELINUX_MAKE_OPTS) install # Install python interface wrapper $(HOST_MAKE_ENV) $(MAKE) -C $(@D) \ $(HOST_LIBSELINUX_MAKE_OPTS) install-pywrap endef define LIBSELINUX_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_AUDIT) $(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_SECURITY_SELINUX) $(call KCONFIG_ENABLE_OPT,CONFIG_INET) $(call KCONFIG_ENABLE_OPT,CONFIG_NET) $(call KCONFIG_ENABLE_OPT,CONFIG_SECURITY) $(call KCONFIG_ENABLE_OPT,CONFIG_SECURITY_NETWORK) $(call KCONFIG_ENABLE_OPT,CONFIG_SECURITY_SELINUX) $(call KCONFIG_SET_OPT,CONFIG_LSM,"selinux") $(if $(BR2_TARGET_ROOTFS_EROFS), $(call KCONFIG_ENABLE_OPT,CONFIG_EROFS_FS_XATTR) $(call KCONFIG_ENABLE_OPT,CONFIG_EROFS_FS_SECURITY)) $(if $(BR2_TARGET_ROOTFS_EXT2), $(call KCONFIG_ENABLE_OPT,CONFIG_EXT2_FS_XATTR) $(call KCONFIG_ENABLE_OPT,CONFIG_EXT2_FS_SECURITY)) $(if $(BR2_TARGET_ROOTFS_EXT2_3), $(call KCONFIG_ENABLE_OPT,CONFIG_EXT3_FS_SECURITY)) $(if $(BR2_TARGET_ROOTFS_EXT2_4), $(call KCONFIG_ENABLE_OPT,CONFIG_EXT4_FS_SECURITY)) $(if $(BR2_TARGET_ROOTFS_F2FS), $(call KCONFIG_ENABLE_OPT,CONFIG_F2FS_FS_XATTR) $(call KCONFIG_ENABLE_OPT,CONFIG_F2FS_FS_SECURITY)) $(if $(BR2_TARGET_ROOTFS_JFFS2), $(call KCONFIG_ENABLE_OPT,CONFIG_JFS_SECURITY)) $(if $(BR2_TARGET_ROOTFS_SQUASHFS), $(call KCONFIG_ENABLE_OPT,CONFIG_SQUASHFS_XATTR)) $(if $(BR2_TARGET_ROOTFS_UBIFS), $(call KCONFIG_ENABLE_OPT,CONFIG_UBIFS_FS_XATTR) $(call KCONFIG_ENABLE_OPT,CONFIG_UBIFS_FS_SECURITY)) endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/libsemanage/Config.in ================================================ config BR2_PACKAGE_LIBSEMANAGE bool "libsemanage" depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS select BR2_PACKAGE_AUDIT select BR2_PACKAGE_LIBSELINUX select BR2_PACKAGE_BZIP2 help libsemanage is the policy management library. It uses libsepol for binary policy manipulation and libselinux for interacting with the SELinux system. It also exec's helper programs for loading policy and for checking whether the file_contexts configuration is valid (load_policy and setfiles from policycoreutils) presently, although this may change at least for the bootstrapping case (for rpm). http://selinuxproject.org/page/Main_Page comment "libsemanage needs a toolchain w/ threads, dynamic library" depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libsemanage/libsemanage.hash ================================================ # From: https://github.com/SELinuxProject/selinux/wiki/Releases sha256 d722a55ca4fe2d4e2b30527720db657e6238b28079e69e2e4affeb8e733ee511 libsemanage-3.2.tar.gz # Hash for license file sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING ================================================ FILE: package/libsemanage/libsemanage.mk ================================================ ################################################################################ # # libsemanage # ################################################################################ LIBSEMANAGE_VERSION = 3.2 LIBSEMANAGE_SITE = https://github.com/SELinuxProject/selinux/releases/download/$(LIBSEMANAGE_VERSION) LIBSEMANAGE_LICENSE = LGPL-2.1+ LIBSEMANAGE_LICENSE_FILES = COPYING LIBSEMANAGE_DEPENDENCIES = host-bison host-flex audit libselinux bzip2 LIBSEMANAGE_CPE_ID_VENDOR = selinuxproject LIBSEMANAGE_INSTALL_STAGING = YES LIBSEMANAGE_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS) define LIBSEMANAGE_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(LIBSEMANAGE_MAKE_OPTS) all endef define LIBSEMANAGE_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(LIBSEMANAGE_MAKE_OPTS) DESTDIR=$(STAGING_DIR) install endef define LIBSEMANAGE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(LIBSEMANAGE_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install endef HOST_LIBSEMANAGE_DEPENDENCIES = \ host-bison \ host-audit \ host-libsepol \ host-libselinux \ host-bzip2 \ host-swig \ host-python3 HOST_LIBSEMANAGE_MAKE_OPTS += \ $(HOST_CONFIGURE_OPTS) \ PREFIX=$(HOST_DIR) \ SWIG_LIB="$(HOST_DIR)/share/swig/$(SWIG_VERSION)/" \ DEFAULT_SEMANAGE_CONF_LOCATION=$(HOST_DIR)/etc/selinux/semanage.conf \ PYINC="-I$(HOST_DIR)/include/python$(PYTHON3_VERSION_MAJOR)/" \ PYTHONLIBDIR="$(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)/" \ PYLIBVER="python$(PYTHON3_VERSION_MAJOR)" define HOST_LIBSEMANAGE_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_LIBSEMANAGE_MAKE_OPTS) all $(HOST_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_LIBSEMANAGE_MAKE_OPTS) swigify pywrap endef define HOST_LIBSEMANAGE_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_LIBSEMANAGE_MAKE_OPTS) install $(HOST_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_LIBSEMANAGE_MAKE_OPTS) install-pywrap endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/libsepol/0001-support-static-only.patch ================================================ From 2140db697c7f1da2a0a3f7bbcb14c1a0dade84e5 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Mon, 9 Oct 2017 16:28:12 -0400 Subject: [PATCH] Add support for static-only build Instead of unconditionally building shared libraries, this patch improves the libsepol build system with a "STATIC" variable, which when defined to some non-empty value, will disable the build of shared 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 Signed-off-by: Fabrice Fontaine [Update for 2.8] --- src/Makefile | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff -durNw libsepol-2.7.orig/src/Makefile libsepol-2.7/src/Makefile --- libsepol-2.7.orig/src/Makefile 2018-01-15 21:07:51.285183415 +0100 +++ libsepol-2.7/src/Makefile 2018-01-15 21:08:56.515182717 +0100 @@ -39,7 +39,12 @@ LN=gln endif -all: $(LIBA) $(LIBSO) $(LIBPC) +ALL_TARGETS = $(LIBA) $(LIBPC) +ifeq ($(STATIC),) +ALL_TARGETS += $(LIBSO) +endif + +all: $(ALL_TARGETS) $(LIBA): $(OBJS) @@ -81,8 +86,10 @@ install: all test -d $(DESTDIR)$(LIBDIR) || install -m 755 -d $(DESTDIR)$(LIBDIR) install -m 644 $(LIBA) $(DESTDIR)$(LIBDIR) +ifeq ($(STATIC),) test -d $(DESTDIR)$(SHLIBDIR) || install -m 755 -d $(DESTDIR)$(SHLIBDIR) install -m 755 $(LIBSO) $(DESTDIR)$(SHLIBDIR) +endif test -d $(DESTDIR)$(LIBDIR)/pkgconfig || install -m 755 -d $(DESTDIR)$(LIBDIR)/pkgconfig install -m 644 $(LIBPC) $(DESTDIR)$(LIBDIR)/pkgconfig $(LN) -sf --relative $(DESTDIR)$(SHLIBDIR)/$(LIBSO) $(DESTDIR)$(LIBDIR)/$(TARGET) ================================================ FILE: package/libsepol/Config.in ================================================ config BR2_PACKAGE_LIBSEPOL bool "libsepol" depends on BR2_TOOLCHAIN_HAS_THREADS # pthread help Libsepol is the binary policy manipulation library. It doesn't depend upon or use any of the other SELinux components. http://selinuxproject.org/page/Main_Page if BR2_PACKAGE_LIBSEPOL config BR2_PACKAGE_LIBSEPOL_POLICY_VERSION int "Policy version" default 33 if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8 default 32 if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5 default 31 if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13 default 30 if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 default 29 if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 default 28 if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5 default 26 if BR2_TOOLCHAIN_HEADERS_AT_LEAST_2_6 default 25 help The maximum SELinux policy version your kernel supports. Here's a handy table to help you choose: kernel version SElinux policy max version < 2.6.x 25 >= 2.6 < 3.5 26 >= 3.5 < 3.14 28 (27 and 28 were added at the same time) >= 3.14 < 4.3 29 >= 4.3 < 4.13 30 >= 4.13 < 5.5 31 >= 5.5 < 5.8 32 >= 5.8 33 endif comment "libsepol needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libsepol/libsepol.hash ================================================ # From: https://github.com/SELinuxProject/selinux/wiki/Releases sha256 dfc7f662af8000116e56a01de6a0394ed79be1b34b999e551346233c5dd19508 libsepol-3.2.tar.gz # Hash for license file sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING ================================================ FILE: package/libsepol/libsepol.mk ================================================ ################################################################################ # # libsepol # ################################################################################ LIBSEPOL_VERSION = 3.2 LIBSEPOL_SITE = https://github.com/SELinuxProject/selinux/releases/download/$(LIBSEPOL_VERSION) LIBSEPOL_LICENSE = LGPL-2.1+ LIBSEPOL_LICENSE_FILES = COPYING LIBSEPOL_CPE_ID_VENDOR = selinuxproject LIBSEPOL_INSTALL_STAGING = YES LIBSEPOL_DEPENDENCIES = host-flex HOST_LIBSEPOL_DEPENDENCIES = $(BR2_COREUTILS_HOST_DEPENDENCY) host-flex LIBSEPOL_MAKE_FLAGS = $(TARGET_CONFIGURE_OPTS) ifeq ($(BR2_STATIC_LIBS),y) LIBSEPOL_MAKE_FLAGS += STATIC=1 endif define LIBSEPOL_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(LIBSEPOL_MAKE_FLAGS) endef # Set SHLIBDIR to /usr/lib so it has the same value than LIBDIR, as a result # we won't have to use a relative path in 0002-revert-ln-relative.patch define LIBSEPOL_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install $(LIBSEPOL_MAKE_FLAGS) \ DESTDIR=$(STAGING_DIR) SHLIBDIR=/usr/lib endef define LIBSEPOL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install $(LIBSEPOL_MAKE_FLAGS) \ DESTDIR=$(TARGET_DIR) SHLIBDIR=/usr/lib endef HOST_LIBSEPOL_MAKE_ENV = \ $(HOST_MAKE_ENV) \ PREFIX=$(HOST_DIR) \ SHLIBDIR=$(HOST_DIR)/lib define HOST_LIBSEPOL_BUILD_CMDS $(HOST_LIBSEPOL_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_CONFIGURE_OPTS) endef define HOST_LIBSEPOL_INSTALL_CMDS $(HOST_LIBSEPOL_MAKE_ENV) $(MAKE) -C $(@D) install $(HOST_CONFIGURE_OPTS) endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/libserial/0001-SerialPort.cpp-fix-build-when-size_t-is-an-unsigned-.patch ================================================ From 2e4cf095afdcf843e93d1bdea9dbd961558f09bd Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 13 Jan 2019 21:01:19 +0100 Subject: [PATCH] SerialPort.cpp: fix build when size_t is an unsigned int size_t can be defined as an unsigned int instead of long unsigned int so replace 1UL to (size_t)1 when calling max function Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/crayzeewulf/libserial/pull/126] --- src/SerialPort.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SerialPort.cpp b/src/SerialPort.cpp index e354fcb..75e762e 100644 --- a/src/SerialPort.cpp +++ b/src/SerialPort.cpp @@ -2208,7 +2208,7 @@ namespace LibSerial // Local variables. size_t number_of_bytes_read = 0 ; - size_t number_of_bytes_remaining = std::max(numberOfBytes, 1UL) ; + size_t number_of_bytes_remaining = std::max(numberOfBytes, (size_t)1) ; size_t maximum_number_of_bytes = dataBuffer.max_size() ; // Clear the data buffer and reserve enough space in the buffer to store the incoming data. @@ -2302,7 +2302,7 @@ namespace LibSerial // Local variables. size_t number_of_bytes_read = 0 ; - size_t number_of_bytes_remaining = std::max(numberOfBytes, 1UL) ; + size_t number_of_bytes_remaining = std::max(numberOfBytes, (size_t)1) ; size_t maximum_number_of_bytes = dataString.max_size() ; // Clear the data buffer and reserve enough space in the buffer to store the incoming data. -- 2.14.1 ================================================ FILE: package/libserial/0002-SerialPort.cpp-don-t-use-high-baudrates-when-not-ava.patch ================================================ From fc0f031563146b91d255c752a61624f6dd3c14d4 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 15 Jan 2019 08:33:27 +0100 Subject: [PATCH] SerialPort.cpp: don't use high baudrates when not available On certain architectures (namely Sparc), the maximum baud rate exposed by the kernel headers is B2000000. Therefore, the current libserial code doesn't build for the Sparc and Sparc64 architectures due to this. In order to address this problem, this patch tests the value of __MAX_BAUD. If it's higher than B2000000 then we assume we're on an architecture that supports all baud rates up to B4000000. Otherwise, we simply don't support the baud rates above B2000000. Fixes build failures such as: SerialPort.cpp: In member function 'int LibSerial::SerialPort::Implementation::GetBitRate(const LibSerial::BaudRate&) const': SerialPort.cpp:1226:14: error: 'BAUD_2000000' is not a member of 'LibSerial::BaudRate' case BaudRate::BAUD_2000000: Fixes: - http://autobuild.buildroot.org/results/63ba95b6786464fa8e75af64593010df84530079 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/crayzeewulf/libserial/pull/127] --- src/SerialPort.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/SerialPort.cpp b/src/SerialPort.cpp index e3240eb..18daac0 100644 --- a/src/SerialPort.cpp +++ b/src/SerialPort.cpp @@ -1223,6 +1223,7 @@ namespace LibSerial baud_rate_as_int = 1500000 ; break ; +#if __MAX_BAUD > B2000000 case BaudRate::BAUD_2000000: baud_rate_as_int = 2000000 ; break ; @@ -1242,6 +1243,7 @@ namespace LibSerial case BaudRate::BAUD_4000000: baud_rate_as_int = 4000000 ; break ; +#endif /* __MAX_BAUD */ default: // If an incorrect baud rate was specified, throw an exception. throw std::runtime_error(ERR_MSG_INVALID_BAUD_RATE) ; -- 2.14.1 ================================================ FILE: package/libserial/Config.in ================================================ config BR2_PACKAGE_LIBSERIAL bool "libserial" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++14 depends on BR2_TOOLCHAIN_HAS_THREADS # boost depends on BR2_USE_WCHAR # boost select BR2_PACKAGE_BOOST help Simplified serial port programming in C++ under POSIX operating systems. http://libserial.sourceforge.net/ comment "libserial needs a toolchain w/ C++, gcc >= 5, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR ================================================ FILE: package/libserial/libserial.hash ================================================ # Locally calculated sha256 063142d6bfe08898316e9a6055f2ddeedef56de06f7cfc8dcdfecc6efabf4bdd libserial-1.0.0.tar.gz sha256 c42fdfe17c192cfdb900e22d40ef246db1b473f99165e405eda62b41be27f4bf LICENSE.txt ================================================ FILE: package/libserial/libserial.mk ================================================ ################################################################################ # # libserial # ################################################################################ LIBSERIAL_VERSION = 1.0.0 LIBSERIAL_SITE = $(call github,crayzeewulf,libserial,v$(LIBSERIAL_VERSION)) LIBSERIAL_INSTALL_STAGING = YES LIBSERIAL_LICENSE = BSD-3-Clause LIBSERIAL_LICENSE_FILES = LICENSE.txt LIBSERIAL_DEPENDENCIES = boost # From git LIBSERIAL_AUTORECONF = YES LIBSERIAL_CONF_ENV = ac_cv_prog_DOCBOOK2PDF=no LIBSERIAL_CONF_OPTS = \ --disable-tests \ --without-python $(eval $(autotools-package)) ================================================ FILE: package/libserialport/0001-uclinux-detection.patch ================================================ 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 ================================================ FILE: package/libserialport/Config.in ================================================ config BR2_PACKAGE_LIBSERIALPORT bool "libserialport" help Libserialport is a minimal, cross-platform shared library written in C that is intended to take care of the OS-specific details when writing software that uses serial ports. http://sigrok.org/wiki/Libserialport ================================================ FILE: package/libserialport/libserialport.hash ================================================ # Locally computed sha256 4a2af9d9c3ff488e92fb75b4ba38b35bcf9b8a66df04773eba2a7bbf1fa7529d libserialport-0.1.1.tar.gz sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING ================================================ FILE: package/libserialport/libserialport.mk ================================================ ################################################################################ # # libserialport # ################################################################################ LIBSERIALPORT_VERSION = 0.1.1 LIBSERIALPORT_SITE = http://sigrok.org/download/source/libserialport LIBSERIALPORT_LICENSE = LGPL-3.0+ LIBSERIALPORT_LICENSE_FILES = COPYING LIBSERIALPORT_INSTALL_STAGING = YES LIBSERIALPORT_DEPENDENCIES = host-pkgconf LIBSERIALPORT_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/libsexy/Config.in ================================================ config BR2_PACKAGE_LIBSEXY bool "libsexy" depends on BR2_PACKAGE_LIBGTK2 select BR2_PACKAGE_LIBXML2 help libsexy is a collection of GTK+ widgets that extend the functionality of such standard widgets as GtkEntry and GtkLabel by subclassing them and working around the limitations of the widgets. https://blog.chipx86.com/tag/libsexy/ ================================================ FILE: package/libsexy/libsexy.hash ================================================ # Locally calculated sha256 8c4101a8cda5fccbba85ba1a15f46f2cf75deaa8b3c525ce5b135b9e1a8fe49e libsexy-0.1.11.tar.gz sha256 a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7 COPYING ================================================ FILE: package/libsexy/libsexy.mk ================================================ ################################################################################ # # libsexy # ################################################################################ LIBSEXY_VERSION = 0.1.11 LIBSEXY_SITE = http://releases.chipx86.com/libsexy/libsexy LIBSEXY_DEPENDENCIES = libgtk2 libxml2 LIBSEXY_INSTALL_STAGING = YES LIBSEXY_LICENSE = LGPL-2.1+ LIBSEXY_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libsha1/Config.in ================================================ config BR2_PACKAGE_LIBSHA1 bool "libsha1" help libsha1 is a tiny library providing SHA1 implementation, created for facilitating X server compilation on devices when larger libraries containing SHA1 implementations (OpenSSL, Mozilla NSS) are not needed. https://github.com/dottedmag/libsha1 ================================================ FILE: package/libsha1/libsha1.hash ================================================ # Locally calculated sha256 ef4c75007ac41c3dc09e0225943c789ba2b9c632a6cd7b548e0519477ac2f768 libsha1-0.3.tar.gz sha256 4c387926596bfeacc5b72ebeb96ab36c299a07568e18592c727a6c11dd512c20 COPYING ================================================ FILE: package/libsha1/libsha1.mk ================================================ ################################################################################ # # libsha1 # ################################################################################ LIBSHA1_VERSION = 0.3 LIBSHA1_SITE = $(call github,dottedmag,libsha1,$(LIBSHA1_VERSION)) LIBSHA1_LICENSE = BSD-3-Clause or GPL LIBSHA1_LICENSE_FILES = COPYING LIBSHA1_INSTALL_STAGING = YES # We're getting the source code from GitHub, so there is no generated # configure script in the tarball. LIBSHA1_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/libshairplay/Config.in ================================================ config BR2_PACKAGE_LIBSHAIRPLAY bool "libshairplay" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # avahi depends on !BR2_STATIC_LIBS # avahi select BR2_PACKAGE_AVAHI select BR2_PACKAGE_AVAHI_DAEMON select BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY # runtime help libshairplay is a client library that emulates an airplay server. https://github.com/juhovh/shairplay comment "libshairplay needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libshairplay/libshairplay.hash ================================================ # Locally computed sha256 49ac0e0470ec6367f720c7b79a09165138f57b60f5949a2d9c38be5823d13294 libshairplay-ce80e005908f41d0e6fde1c4a21e9cb8ee54007b.tar.gz sha256 0ac7d61c52aff5717c02250ca0adf0ef35019e2c0838a3479b8fce597aea6fde LICENSE ================================================ FILE: package/libshairplay/libshairplay.mk ================================================ ################################################################################ # # libshairplay # ################################################################################ LIBSHAIRPLAY_VERSION = ce80e005908f41d0e6fde1c4a21e9cb8ee54007b LIBSHAIRPLAY_SITE = $(call github,juhovh,shairplay,$(LIBSHAIRPLAY_VERSION)) LIBSHAIRPLAY_INSTALL_STAGING = YES LIBSHAIRPLAY_AUTORECONF = YES LIBSHAIRPLAY_LICENSE = MIT, BSD-3-Clause, LGPL-2.1+ LIBSHAIRPLAY_LICENSE_FILES = LICENSE LIBSHAIRPLAY_DEPENDENCIES = host-pkgconf $(if $(BR2_PACKAGE_LIBAO),libao) $(eval $(autotools-package)) ================================================ FILE: package/libshout/0001-configure.ac-add-an-option-to-disable-tools.patch ================================================ From 148b56bf894192cef6dd133715e295260b934a71 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 5 Mar 2021 15:50:32 +0100 Subject: [PATCH] configure.ac: add an option to disable tools Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2331] --- Makefile.am | 5 ++++- configure.ac | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index ea855cf..79241f1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,10 +3,13 @@ AUTOMAKE_OPTIONS = 1.6 foreign ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = include src doc win32 tools +SUBDIRS = include src doc win32 if HAVE_EXAMPLES SUBDIRS += examples endif +if HAVE_TOOLS +SUBDIRS += tools +endif EXTRA_DIST = INSTALL m4/shout.m4 m4/acx_pthread.m4 \ m4/ogg.m4 m4/vorbis.m4 m4/xiph_compiler.m4 m4/xiph_net.m4 \ diff --git a/configure.ac b/configure.ac index 264b9b0..34f971c 100644 --- a/configure.ac +++ b/configure.ac @@ -100,6 +100,11 @@ AC_ARG_ENABLE([examples], AS_HELP_STRING([--disable-examples],[Do not build example code])) AM_CONDITIONAL([HAVE_EXAMPLES],[test "${enable_examples}" != "no"]) +dnl Allow tools not to be build +AC_ARG_ENABLE([tools], + AS_HELP_STRING([--disable-tools],[Do not build tools])) +AM_CONDITIONAL([HAVE_TOOLS],[test "${enable_tools}" != "no"]) + dnl Module checks XIPH_NET -- 2.30.0 ================================================ FILE: package/libshout/Config.in ================================================ config BR2_PACKAGE_LIBSHOUT bool "libshout" select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_LIBVORBIS help Libshout is a library for communicating with and sending data to an icecast server. It handles the socket connection, the timing of the data, and prevents bad data from getting to the icecast server. http://icecast.org/download/ ================================================ FILE: package/libshout/libshout.hash ================================================ # From https://ftp.osuosl.org/pub/xiph/releases/libshout/SHA512SUMS sha512 290844185da16961f03434d3e341573dd6cb0139e5fa81902903021b641382d2629302d7c356bc591b35656754e07f4e44a8d9e782e092b17a051b9ae8f54341 libshout-2.4.5.tar.gz # From https://ftp.osuosl.org/pub/xiph/releases/libshout/SHA256SUMS sha256 d9e568668a673994ebe3f1eb5f2bee06e3236a5db92b8d0c487e1c0f886a6890 libshout-2.4.5.tar.gz # Hash for license file sha256 7a4436f9ec37603356791c87de3bc444989befd2682d29efb3d97604e04c1852 COPYING ================================================ FILE: package/libshout/libshout.mk ================================================ ################################################################################ # # libshout # ################################################################################ LIBSHOUT_VERSION = 2.4.5 LIBSHOUT_SITE = https://downloads.xiph.org/releases/libshout LIBSHOUT_LICENSE = LGPL-2.0+ LIBSHOUT_LICENSE_FILES = COPYING LIBSHOUT_INSTALL_STAGING = YES LIBSHOUT_DEPENDENCIES = host-pkgconf libogg libvorbis # We're patching configure.ac LIBSHOUT_AUTORECONF = YES LIBSHOUT_CONF_OPTS = \ --disable-examples \ --disable-tools ifeq ($(BR2_PACKAGE_LIBTHEORA),y) LIBSHOUT_CONF_OPTS += --enable-theora LIBSHOUT_DEPENDENCIES += libtheora else LIBSHOUT_CONF_OPTS += --disable-theora endif ifeq ($(BR2_PACKAGE_SPEEX),y) LIBSHOUT_CONF_OPTS += --enable-speex LIBSHOUT_DEPENDENCIES += speex 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)) ================================================ FILE: package/libsidplay2/0001-sidplay2-libs-2.1.1.patch ================================================ From 38493fceb39ac33e12c9c69d78f5584413b479f4 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Wed, 1 Mar 2017 10:03:40 +0100 Subject: [PATCH] Various fixes to compile libsidplay2 with newer gcc compilers Downloaded from http://tsubasa.googlecode.com/svn/trunk/tsubasa/sidplay2-libs/sidplay2-libs-2.1.1.diff Signed-off-by: Bernd Kuhls [Thomas: adjusted to avoid the need to autoreconf, which doesn't work properly on this package.] Signed-off-by: Thomas Petazzoni --- builders/hardsid-builder/src/hardsid-builder.cpp | 1 + builders/resid-builder/src/resid-builder.cpp | 1 + builders/resid-builder/src/resid.cpp | 1 + configure | 2 +- libsidplay/configure | 5 +++-- libsidplay/include/sidplay/SmartPtr.h | 28 ++++++++++++------------ libsidplay/include/sidplay/sidendian.h | 18 +++++++++------ libsidutils/include/sidplay/utils/SidUsage.h | 2 +- 8 files changed, 33 insertions(+), 25 deletions(-) diff --git a/builders/hardsid-builder/src/hardsid-builder.cpp b/builders/hardsid-builder/src/hardsid-builder.cpp index f54d0a9..9375e40 100644 --- a/builders/hardsid-builder/src/hardsid-builder.cpp +++ b/builders/hardsid-builder/src/hardsid-builder.cpp @@ -47,6 +47,7 @@ ***************************************************************************/ #include +#include #include "config.h" #ifdef HAVE_EXCEPTIONS diff --git a/builders/resid-builder/src/resid-builder.cpp b/builders/resid-builder/src/resid-builder.cpp index e6e4eaa..4c7650f 100644 --- a/builders/resid-builder/src/resid-builder.cpp +++ b/builders/resid-builder/src/resid-builder.cpp @@ -37,6 +37,7 @@ ***************************************************************************/ #include +#include #include "config.h" #ifdef HAVE_EXCEPTIONS diff --git a/builders/resid-builder/src/resid.cpp b/builders/resid-builder/src/resid.cpp index 8c27850..d3123c5 100644 --- a/builders/resid-builder/src/resid.cpp +++ b/builders/resid-builder/src/resid.cpp @@ -16,6 +16,7 @@ * * ***************************************************************************/ +#include #include "config.h" #ifdef HAVE_EXCEPTIONS diff --git a/configure b/configure index 1200eaf..77948b4 100755 --- a/configure +++ b/configure @@ -1227,7 +1227,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu #Variables pwd=`pwd` -builders='${libdir}'/sidplay/builders +builders='${libdir}'/ ac_configure_args="$ac_configure_args --disable-library-checks" ac_aux_dir= diff --git a/libsidplay/configure b/libsidplay/configure index 05a8ea6..3d93956 100755 --- a/libsidplay/configure +++ b/libsidplay/configure @@ -23466,8 +23466,9 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - #include +#include + #include + using namespace std; int main () { diff --git a/libsidplay/include/sidplay/SmartPtr.h b/libsidplay/include/sidplay/SmartPtr.h index c0cbb1a..15efd10 100644 --- a/libsidplay/include/sidplay/SmartPtr.h +++ b/libsidplay/include/sidplay/SmartPtr.h @@ -17,16 +17,16 @@ class SmartPtrBase_sidtt doFree = bufOwner; if ( bufferLen >= 1 ) { - pBufCurrent = ( bufBegin = buffer ); - bufEnd = bufBegin + bufferLen; - bufLen = bufferLen; - status = true; + this->pBufCurrent = ( this->bufBegin = buffer ); + this->bufEnd = this->bufBegin + bufferLen; + this->bufLen = bufferLen; + this->status = true; } else { - pBufCurrent = ( bufBegin = ( bufEnd = 0 )); - bufLen = 0; - status = false; + this->pBufCurrent = ( this->bufBegin = ( this->bufEnd = 0 )); + this->bufLen = 0; + this->status = false; } } @@ -211,16 +211,16 @@ class SmartPtr_sidtt : public SmartPtrBase_sidtt { if ( bufferLen >= 1 ) { - pBufCurrent = ( bufBegin = buffer ); - bufEnd = bufBegin + bufferLen; - bufLen = bufferLen; - status = true; + this->pBufCurrent = ( this->bufBegin = buffer ); + this->bufEnd = this->bufBegin + bufferLen; + this->bufLen = bufferLen; + this->status = true; } else { - pBufCurrent = bufBegin = bufEnd = 0; - bufLen = 0; - status = false; + this->pBufCurrent = this->bufBegin = this->bufEnd = 0; + this->bufLen = 0; + this->status = false; } } }; diff --git a/libsidplay/include/sidplay/sidendian.h b/libsidplay/include/sidplay/sidendian.h index 9fa8582..6115282 100644 --- a/libsidplay/include/sidplay/sidendian.h +++ b/libsidplay/include/sidplay/sidendian.h @@ -16,6 +16,10 @@ ***************************************************************************/ /*************************************************************************** * $Log: sidendian.h,v $ + * Revision 1.6 2005/11/20 11:02:06 s_a_white + * Work around for bug in gcc 4 (optimiser breaks if variable never has a + * direct assignment). + * * Revision 1.5 2001/07/03 22:44:13 s_a_white * Added endian_16 to convert a 16 bit value to an array of 8s. * @@ -141,7 +145,7 @@ inline void endian_16swap8 (uint_least16_t &word) // Convert high-byte and low-byte to 16-bit word. inline uint_least16_t endian_16 (uint8_t hi, uint8_t lo) { - uint_least16_t word; + uint_least16_t word = 0; endian_16lo8 (word, lo); endian_16hi8 (word, hi); return word; @@ -165,7 +169,7 @@ inline void endian_16 (uint8_t ptr[2], uint_least16_t word) inline void endian_16 (char ptr[2], uint_least16_t word) { - endian_16 ((uint8_t *) ptr, word); + endian_16 ((uint8_t *) ptr, word); } // Convert high-byte and low-byte to 16-bit little endian word. @@ -334,7 +338,7 @@ inline void endian_32swap16 (uint_least32_t &dword) // Swap word endian. inline void endian_32swap8 (uint_least32_t &dword) { - uint_least16_t lo, hi; + uint_least16_t lo = 0, hi = 0; lo = endian_32lo16 (dword); hi = endian_32hi16 (dword); endian_16swap8 (lo); @@ -346,8 +350,8 @@ inline void endian_32swap8 (uint_least32_t &dword) // Convert high-byte and low-byte to 32-bit word. inline uint_least32_t endian_32 (uint8_t hihi, uint8_t hilo, uint8_t hi, uint8_t lo) { - uint_least32_t dword; - uint_least16_t word; + uint_least32_t dword = 0; + uint_least16_t word = 0; endian_32lo8 (dword, lo); endian_32hi8 (dword, hi); endian_16lo8 (word, hilo); @@ -374,7 +378,7 @@ inline void endian_little32 (uint8_t ptr[4], uint_least32_t dword) defined(SID_WORDS_LITTLEENDIAN) *((uint_least32_t *) ptr) = dword; #else - uint_least16_t word; + uint_least16_t word = 0; ptr[0] = endian_32lo8 (dword); ptr[1] = endian_32hi8 (dword); word = endian_32hi16 (dword); @@ -401,7 +405,7 @@ inline void endian_big32 (uint8_t ptr[4], uint_least32_t dword) defined(SID_WORDS_BIGENDIAN) *((uint_least32_t *) ptr) = dword; #else - uint_least16_t word; + uint_least16_t word = 0; word = endian_32hi16 (dword); ptr[1] = endian_16lo8 (word); ptr[0] = endian_16hi8 (word); diff --git a/libsidutils/include/sidplay/utils/SidUsage.h b/libsidutils/include/sidplay/utils/SidUsage.h index 2afb0f3..0496eea 100755 --- a/libsidutils/include/sidplay/utils/SidUsage.h +++ b/libsidutils/include/sidplay/utils/SidUsage.h @@ -33,7 +33,7 @@ struct sid2_usage_t: public sid_usage_t uint_least16_t length; // usage scan length // Copy common parts of basic usage to extended usage. - sid2_usage_t &sid2_usage_t::operator= (const sid_usage_t &usage) + sid2_usage_t &operator= (const sid_usage_t &usage) { *((sid_usage_t *) this) = usage; return *this; -- 2.7.4 ================================================ FILE: package/libsidplay2/0002-pkg-config.patch ================================================ Include correct libdir in pkgconfig files Downloaded from https://sources.debian.net/src/sidplay-libs/2.1.1-14/debian/patches/pkg-config.patch/ Signed-off-by: Bernd Kuhls --- sidplay-libs-2.1.1.orig/libsidplay/unix/libsidplay2.pc.in +++ sidplay-libs-2.1.1/libsidplay/unix/libsidplay2.pc.in @@ -7,5 +7,5 @@ builders=@builders@ Name: @PACKAGE@ Description: C64 cycle exact stereo sidplayer library. Version: @VERSION@ -Libs: ${libdir}/libsidplay2.la +Libs: -L${libdir} -lsidplay2 Cflags: -DHAVE_UNIX -I${includedir} --- sidplay-libs-2.1.1.orig/libsidutils/unix/libsidutils.pc.in +++ sidplay-libs-2.1.1/libsidutils/unix/libsidutils.pc.in @@ -6,5 +6,5 @@ includedir=@includedir@ Name: @PACKAGE@ Description: Utils for supporting the libsidplay2 library. Version: @VERSION@ -Libs: ${libdir}/libsidutils.la +Libs: -L${libdir} -lsidutils Cflags: -DHAVE_UNIX -I${includedir} ================================================ FILE: package/libsidplay2/0003-gcc6.patch ================================================ 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: ================================================ FILE: package/libsidplay2/Config.in ================================================ config BR2_PACKAGE_LIBSIDPLAY2 bool "libsidplay2" depends on BR2_INSTALL_LIBSTDCPP help Sidplay 2 is the second in the Sidplay series originally developed by Michael Schwendt. This version is written by Simon White and is cycle accurate for improved sound reproduction. Sidplay 2 is capable of playing all C64 mono and stereo file formats. http://sourceforge.net/projects/sidplay2 comment "libsidplay2 needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/libsidplay2/libsidplay2.hash ================================================ # From http://sourceforge.net/projects/sidplay2/files/sidplay2/sidplay-libs-2.1.1/ sha1 8af6350866edc30b0d331e075fa97292f6f645a5 sidplay-libs-2.1.1.tar.gz # Locally computed sha256 b8a2f73f743dc1a51aff23f1aacbca4b868564db52496fa3c0caba755bfd1eaf libsidplay/COPYING ================================================ FILE: package/libsidplay2/libsidplay2.mk ================================================ ################################################################################ # # libsidplay2 # ################################################################################ LIBSIDPLAY2_VERSION = 2.1.1 LIBSIDPLAY2_SOURCE = sidplay-libs-$(LIBSIDPLAY2_VERSION).tar.gz LIBSIDPLAY2_SITE = http://downloads.sourceforge.net/project/sidplay2/sidplay2/sidplay-libs-$(LIBSIDPLAY2_VERSION) LIBSIDPLAY2_LICENSE = GPL-2.0+ LIBSIDPLAY2_LICENSE_FILES = libsidplay/COPYING LIBSIDPLAY2_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libsigc/Config.in ================================================ config BR2_PACKAGE_LIBSIGC bool "libsigc++" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_INSTALL_LIBSTDCPP help libsigc++ implements a typesafe callback system for standard C++. It allows you to define signals and to connect those signals to any callback function, either global or a member function, regardless of whether it is static or virtual. https://libsigcplusplus.github.io/libsigcplusplus/ comment "libsigc++ needs a toolchain w/ C++, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/libsigc/libsigc.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/libsigc++/2.10/libsigc++-2.10.6.sha256sum sha256 dda176dc4681bda9d5a2ac1bc55273bdd381662b7a6d49e918267d13e8774e1b libsigc++-2.10.6.tar.xz # Locally calculated sha256 5bbcbb737e60fe9deba08ecbd00920cfcc3403ba2e534c64fdeea49d6bb87509 COPYING ================================================ FILE: package/libsigc/libsigc.mk ================================================ ################################################################################ # # libsigc # ################################################################################ LIBSIGC_VERSION_MAJOR = 2.10 LIBSIGC_VERSION = $(LIBSIGC_VERSION_MAJOR).6 LIBSIGC_SOURCE = libsigc++-$(LIBSIGC_VERSION).tar.xz LIBSIGC_SITE = http://ftp.gnome.org/pub/GNOME/sources/libsigc++/$(LIBSIGC_VERSION_MAJOR) LIBSIGC_INSTALL_STAGING = YES LIBSIGC_LICENSE = LGPL-2.1+ LIBSIGC_LICENSE_FILES = COPYING LIBSIGC_CONF_OPTS = \ -Dbuild-examples=false \ -Dvalidation=false $(eval $(meson-package)) ================================================ FILE: package/libsigrok/Config.in ================================================ config BR2_PACKAGE_LIBSIGROK bool "libsigrok" # libglib2 depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU depends on BR2_ENABLE_LOCALE depends on !BR2_STATIC_LIBS # libzip # std=c11 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 select BR2_PACKAGE_LIBZIP select BR2_PACKAGE_LIBGLIB2 help Libsigrok is a shared library written in C, which provides the basic hardware access drivers for logic analyzers and other supported devices, as well as input/output file format support. This library is a part of the sigrok software suite. http://sigrok.org/wiki/Libsigrok if BR2_PACKAGE_LIBSIGROK config BR2_PACKAGE_LIBSIGROKCXX bool "build C++ bindings" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # glibmm depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-doxygen select BR2_PACKAGE_GLIBMM select BR2_PACKAGE_HOST_DOXYGEN help Build libsigrok C++ bindings as well. comment "C++ bindings need a toolchain w/ C++, gcc >= 4.9, host gcc >= 4.9" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_4_9 endif comment "libsigrok needs a toolchain w/ wchar, locale, threads, dynamic library, gcc >= 4.7" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || BR2_STATIC_LIBS \ || !BR2_ENABLE_LOCALE ================================================ FILE: package/libsigrok/libsigrok.hash ================================================ # Locally computed sha256 4d341f90b6220d3e8cb251dacf726c41165285612248f2c52d15df4590a1ce3c libsigrok-0.5.2.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/libsigrok/libsigrok.mk ================================================ ################################################################################ # # libsigrok # ################################################################################ LIBSIGROK_VERSION = 0.5.2 LIBSIGROK_SITE = http://sigrok.org/download/source/libsigrok LIBSIGROK_LICENSE = GPL-3.0+ LIBSIGROK_LICENSE_FILES = COPYING LIBSIGROK_INSTALL_STAGING = YES LIBSIGROK_DEPENDENCIES = libglib2 libzip host-pkgconf LIBSIGROK_CONF_OPTS = --disable-java --disable-python ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS),y) LIBSIGROK_CONF_OPTS += --with-libbluez LIBSIGROK_DEPENDENCIES += bluez5_utils else LIBSIGROK_CONF_OPTS += --without-libbluez endif ifeq ($(BR2_PACKAGE_HIDAPI),y) LIBSIGROK_CONF_OPTS += --with-libhidapi LIBSIGROK_DEPENDENCIES += hidapi else LIBSIGROK_CONF_OPTS += --without-libhidapi endif ifeq ($(BR2_PACKAGE_LIBSERIALPORT),y) LIBSIGROK_CONF_OPTS += --with-libserialport LIBSIGROK_DEPENDENCIES += libserialport else LIBSIGROK_CONF_OPTS += --without-libserialport endif ifeq ($(BR2_PACKAGE_LIBFTDI1),y) LIBSIGROK_CONF_OPTS += --with-libftdi LIBSIGROK_DEPENDENCIES += libftdi1 else LIBSIGROK_CONF_OPTS += --without-libftdi endif ifeq ($(BR2_PACKAGE_LIBUSB),y) LIBSIGROK_CONF_OPTS += --with-libusb LIBSIGROK_DEPENDENCIES += libusb else LIBSIGROK_CONF_OPTS += --without-libusb endif ifeq ($(BR2_PACKAGE_GLIBMM),y) LIBSIGROK_DEPENDENCIES += glibmm endif ifeq ($(BR2_PACKAGE_LIBSIGROKCXX),y) LIBSIGROK_CONF_OPTS += --enable-cxx # host-doxygen is used by C++ bindings to parse libsigrok symbols LIBSIGROK_DEPENDENCIES += \ glibmm \ host-doxygen \ $(if $(BR2_PACKAGE_PYTHON3),host-python3,host-python) else LIBSIGROK_CONF_OPTS += --disable-cxx endif $(eval $(autotools-package)) ================================================ FILE: package/libsigrokdecode/0001-configure-ac-Add-support-for-Python-3-9.patch ================================================ From 9b0ad5177bd692f7556a4756bdbd2da81d9c34ce Mon Sep 17 00:00:00 2001 From: =?utf8?q?Dan=20Hor=C3=A1k?= Date: Tue, 4 Aug 2020 09:19:44 +0200 Subject: [PATCH] configure.ac: Add support for Python 3.9. [Retrieved from: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=commit;h=9b0ad5177bd692f7556a4756bdbd2da81d9c34ce] Signed-off-by: Fabrice Fontaine --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index f9958b3..2917cb3 100644 --- a/configure.ac +++ b/configure.ac @@ -100,7 +100,7 @@ SR_PKG_CHECK_SUMMARY([srd_pkglibs_summary]) # first, since usually only that variant will add "-lpython3.8". # https://docs.python.org/3/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build SR_PKG_CHECK([python3], [SRD_PKGLIBS], - [python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2]) + [python-3.9-embed], [python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2]) AS_IF([test "x$sr_have_python3" = xno], [AC_MSG_ERROR([Cannot find Python 3 development headers.])]) -- 2.24.0.rc2 ================================================ FILE: package/libsigrokdecode/Config.in ================================================ config BR2_PACKAGE_LIBSIGROKDECODE bool "libsigrokdecode" depends on !BR2_PACKAGE_PYTHON # python3 depends on BR2_USE_WCHAR # libglib2/python3 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2/python3 depends on BR2_USE_MMU # libglib2/python3 depends on !BR2_STATIC_LIBS # python3 select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_PYTHON3 help Libsigrokdecode is a shared library written in C, which provides (streaming) protocol decoding functionality. Say yes here if you want to add this functionality to your buildroot-generated sigrok suite. This library is a part of the sigrok software suite. http://sigrok.org/wiki/Libsigrokdecode comment "libsigrokdecode needs a toolchain w/ wchar, threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_PACKAGE_PYTHON depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS comment "libsigrokdecode is not compatible with python" depends on BR2_USE_MMU depends on BR2_PACKAGE_PYTHON ================================================ FILE: package/libsigrokdecode/libsigrokdecode.hash ================================================ # Locally computed sha256 c50814aa6743cd8c4e88c84a0cdd8889d883c3be122289be90c63d7d67883fc0 libsigrokdecode-0.5.3.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/libsigrokdecode/libsigrokdecode.mk ================================================ ################################################################################ # # libsigrokdecode # ################################################################################ LIBSIGROKDECODE_VERSION = 0.5.3 LIBSIGROKDECODE_SITE = http://sigrok.org/download/source/libsigrokdecode LIBSIGROKDECODE_LICENSE = GPL-3.0+ LIBSIGROKDECODE_LICENSE_FILES = COPYING LIBSIGROKDECODE_INSTALL_STAGING = YES LIBSIGROKDECODE_DEPENDENCIES = host-pkgconf libglib2 python3 # We're patching configure.ac LIBSIGROKDECODE_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/libsigsegv/Config.in ================================================ config BR2_PACKAGE_LIBSIGSEGV_ARCH_SUPPORTS bool default y if BR2_TOOLCHAIN_HAS_UCONTEXT config BR2_PACKAGE_LIBSIGSEGV bool "libsigsegv" depends on BR2_PACKAGE_LIBSIGSEGV_ARCH_SUPPORTS help Library for handling page faults in user mode. http://www.gnu.org/software/libsigsegv/ ================================================ FILE: package/libsigsegv/libsigsegv.hash ================================================ # Locally calculated after checking pgp signature # https://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.13.tar.gz.sig sha256 be78ee4176b05f7c75ff03298d84874db90f4b6c9d5503f0da1226b3a3c48119 libsigsegv-2.13.tar.gz # Locally calculated sha256 8f2983e9a940367f48999881c14775db725ee643bce1e2f1ba195eb629a33cde COPYING ================================================ FILE: package/libsigsegv/libsigsegv.mk ================================================ ################################################################################ # # libsigsegv # ################################################################################ LIBSIGSEGV_VERSION = 2.13 LIBSIGSEGV_SITE = $(BR2_GNU_MIRROR)/libsigsegv LIBSIGSEGV_INSTALL_STAGING = YES LIBSIGSEGV_CONF_ENV = sv_cv_fault_posix=yes LIBSIGSEGV_LICENSE = GPL-2.0+ LIBSIGSEGV_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libsilk/Config.in ================================================ config BR2_PACKAGE_LIBSILK bool "libsilk" help SILK is an audio compression format and audio codec. http://tools.ietf.org/html/draft-vos-silk-01 ================================================ FILE: package/libsilk/libsilk.hash ================================================ # Locally computed sha256 ac79eb4c154af25c0ab25e12d60d3b4165c399903fe88d82e066cf6d9827503e libsilk-4268a02240c35c6055b0f237c46b09b2dcf79e45-br1.tar.gz sha256 62a5963f034024665641f4a9888b208f1e39aa7e29e87c9634fdcf07d3073baf COPYING ================================================ FILE: package/libsilk/libsilk.mk ================================================ ################################################################################ # # libsilk # ################################################################################ LIBSILK_VERSION = 4268a02240c35c6055b0f237c46b09b2dcf79e45 # we use the FreeSwitch fork because it contains pkgconf support LIBSILK_SITE = https://freeswitch.org/stash/scm/sd/libsilk.git LIBSILK_SITE_METHOD = git LIBSILK_LICENSE = BSD-3-Clause LIBSILK_LICENSE_FILES = COPYING LIBSILK_AUTORECONF = YES LIBSILK_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libsndfile/0001-ms_adpcm-Fix-and-extend-size-checks.patch ================================================ From deb669ee8be55a94565f6f8a6b60890c2e7c6f32 Mon Sep 17 00:00:00 2001 From: bobsayshilol Date: Thu, 18 Feb 2021 21:52:09 +0000 Subject: [PATCH] ms_adpcm: Fix and extend size checks 'blockalign' is the size of a block, and each block contains 7 samples per channel as part of the preamble, so check against 'samplesperblock' rather than 'blockalign'. Also add an additional check that the block is big enough to hold the samples it claims to hold. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=26803 Signed-off-by: Peter Korsgaard --- src/ms_adpcm.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ms_adpcm.c b/src/ms_adpcm.c index 5e8f1a31..a21cb994 100644 --- a/src/ms_adpcm.c +++ b/src/ms_adpcm.c @@ -128,8 +128,14 @@ wavlike_msadpcm_init (SF_PRIVATE *psf, int blockalign, int samplesperblock) if (psf->file.mode == SFM_WRITE) samplesperblock = 2 + 2 * (blockalign - 7 * psf->sf.channels) / psf->sf.channels ; - if (blockalign < 7 * psf->sf.channels) - { psf_log_printf (psf, "*** Error blockalign (%d) should be > %d.\n", blockalign, 7 * psf->sf.channels) ; + /* There's 7 samples per channel in the preamble of each block */ + if (samplesperblock < 7 * psf->sf.channels) + { psf_log_printf (psf, "*** Error samplesperblock (%d) should be >= %d.\n", samplesperblock, 7 * psf->sf.channels) ; + return SFE_INTERNAL ; + } ; + + if (2 * blockalign < samplesperblock * psf->sf.channels) + { psf_log_printf (psf, "*** Error blockalign (%d) should be >= %d.\n", blockalign, samplesperblock * psf->sf.channels / 2) ; return SFE_INTERNAL ; } ; -- 2.20.1 ================================================ FILE: package/libsndfile/Config.in ================================================ config BR2_PACKAGE_LIBSNDFILE bool "libsndfile" help Libsndfile is a C library for reading and writing files containing sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) through one standard library interface. http://www.mega-nerd.com/libsndfile/ ================================================ FILE: package/libsndfile/libsndfile.hash ================================================ # Locally calculated after checking pgp signature sha256 a8cfb1c09ea6e90eff4ca87322d4168cdbe5035cb48717b40bf77e751cc02163 libsndfile-1.0.31.tar.bz2 # Locally calculated sha256 ad01ea5cd2755f6048383c8d54c88459cd6fcb17757c5c8892f8c5ea060f6140 COPYING ================================================ FILE: package/libsndfile/libsndfile.mk ================================================ ################################################################################ # # libsndfile # ################################################################################ LIBSNDFILE_VERSION = 1.0.31 LIBSNDFILE_SOURCE = libsndfile-$(LIBSNDFILE_VERSION).tar.bz2 LIBSNDFILE_SITE = https://github.com/libsndfile/libsndfile/releases/download/$(LIBSNDFILE_VERSION) LIBSNDFILE_INSTALL_STAGING = YES LIBSNDFILE_LICENSE = LGPL-2.1+ LIBSNDFILE_LICENSE_FILES = COPYING LIBSNDFILE_CPE_ID_VENDOR = libsndfile_project # 0001-ms_adpcm-Fix-and-extend-size-checks.patch LIBSNDFILE_IGNORE_CVES += CVE-2021-3246 # disputed, https://github.com/erikd/libsndfile/issues/398 LIBSNDFILE_IGNORE_CVES += CVE-2018-13419 LIBSNDFILE_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' LIBSNDFILE_CONF_OPTS = \ --disable-sqlite \ --disable-alsa \ --disable-full-suite ifeq ($(BR2_PACKAGE_FLAC)$(BR2_PACKAGE_LIBVORBIS)$(BR2_PACKAGE_OPUS),yyy) LIBSNDFILE_DEPENDENCIES += flac host-pkgconf libvorbis opus LIBSNDFILE_CONF_OPTS += --enable-external-libs else LIBSNDFILE_CONF_OPTS += --disable-external-libs endif $(eval $(autotools-package)) ================================================ FILE: package/libsoc/Config.in ================================================ config BR2_PACKAGE_LIBSOC bool "libsoc" depends on BR2_TOOLCHAIN_HAS_THREADS help libsoc is a C library for interfacing with common SoC peripherals through generic kernel interfaces https://github.com/jackmitch/libsoc comment "libsoc needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libsoc/libsoc.hash ================================================ # Locally computed: sha256 8df626bde365b94a805e1c323104c63a7429ec64c9df815cd1d9b9c4b317e066 libsoc-0.8.2.tar.gz sha256 782dafc98788c358fb20e530c8fde3186cdb60f5e18fe6d348fe84ee9f65ddb0 LICENCE ================================================ FILE: package/libsoc/libsoc.mk ================================================ ################################################################################ # # libsoc # ################################################################################ LIBSOC_VERSION = 0.8.2 LIBSOC_SITE = $(call github,jackmitch,libsoc,$(LIBSOC_VERSION)) LIBSOC_LICENSE = LGPL-2.1 LIBSOC_LICENSE_FILES = LICENCE LIBSOC_AUTORECONF = YES LIBSOC_INSTALL_STAGING = YES LIBSOC_DEPENDENCIES = host-pkgconf # 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)) ================================================ FILE: package/libsocketcan/Config.in ================================================ config BR2_PACKAGE_LIBSOCKETCAN bool "libsocketcan" help SocketCAN library to control CAN devices from C code. http://git.pengutronix.de/?p=tools/libsocketcan.git;a=summary ================================================ FILE: package/libsocketcan/libsocketcan.hash ================================================ # Locally calculated sha256 be8280124707701935e6294d366e2474158b758fa4b2e3cae571d5b256d2fe34 libsocketcan-0.0.12.tar.bz2 sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSE ================================================ FILE: package/libsocketcan/libsocketcan.mk ================================================ ################################################################################ # # libsocketcan # ################################################################################ LIBSOCKETCAN_VERSION = 0.0.12 LIBSOCKETCAN_SITE = http://www.pengutronix.de/software/libsocketcan/download LIBSOCKETCAN_SOURCE = libsocketcan-$(LIBSOCKETCAN_VERSION).tar.bz2 LIBSOCKETCAN_INSTALL_STAGING = YES LIBSOCKETCAN_LICENSE = LGPL-2.1+ LIBSOCKETCAN_LICENSE_FILES = LICENSE $(eval $(autotools-package)) ================================================ FILE: package/libsodium/Config.in ================================================ config BR2_PACKAGE_LIBSODIUM bool "libsodium" help A modern and easy-to-use crypto library. http://libsodium.org/ if BR2_PACKAGE_LIBSODIUM config BR2_PACKAGE_LIBSODIUM_FULL bool "all functions" default y help Build all seldom used and obsolete functions. Without this option, only the minimal set of normally used functions is built. endif ================================================ FILE: package/libsodium/libsodium.hash ================================================ # Locally calculated after checking Minisign signature # https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz.minisig sha256 6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1 libsodium-1.0.18.tar.gz sha256 dea1855c9809f3faf22aa4a1fba20ec8af5a5587f23115012e5b98279cedc4af LICENSE ================================================ FILE: package/libsodium/libsodium.mk ================================================ ################################################################################ # # libsodium # ################################################################################ LIBSODIUM_VERSION = 1.0.18 LIBSODIUM_SITE = https://download.libsodium.org/libsodium/releases LIBSODIUM_LICENSE = ISC LIBSODIUM_LICENSE_FILES = LICENSE LIBSODIUM_INSTALL_STAGING = YES ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) LIBSODIUM_CONF_OPTS += --disable-pie endif ifeq ($(BR2_PACKAGE_LIBSODIUM_FULL),y) LIBSODIUM_CONF_OPTS += --disable-minimal else LIBSODIUM_CONF_OPTS += --enable-minimal endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libsoundtouch/Config.in ================================================ config BR2_PACKAGE_LIBSOUNDTOUCH bool "libsoundtouch" depends on BR2_INSTALL_LIBSTDCPP help SoundTouch is an open-source audio processing library for changing the Tempo, Pitch and Playback Rates of audio streams or audio files. http://www.surina.net/soundtouch comment "libsoundtouch needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/libsoundtouch/libsoundtouch.hash ================================================ # Locally computed sha256 f1ce96bac35779d3b752f4cc8696975b3d58f3deb9db47ffc45862767c2a2bdd libsoundtouch-2.2.tar.gz sha256 6b73f6327136a924821ec044bbd9f17cf8677faf2f2a2b1366a9fff6188c9688 COPYING.TXT ================================================ FILE: package/libsoundtouch/libsoundtouch.mk ================================================ ################################################################################ # # libsoundtouch # ################################################################################ LIBSOUNDTOUCH_VERSION = 2.2 LIBSOUNDTOUCH_SITE = $(call gitlab,soundtouch,soundtouch,$(LIBSOUNDTOUCH_VERSION)) LIBSOUNDTOUCH_LICENSE = LGPL-2.1+ LIBSOUNDTOUCH_LICENSE_FILES = COPYING.TXT LIBSOUNDTOUCH_AUTORECONF = YES LIBSOUNDTOUCH_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libsoup/0001-meson.build-set-c_std-to-gnu99.patch ================================================ From 5c3d431bdb094c59997f2a23e31e83f815ab667c Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 1 Jul 2021 22:09:23 +0200 Subject: [PATCH] meson.build: set c_std to gnu99 Set c_std to gnu99 to avoid the following build failure with gcc 4.8: In file included from /tmp/instance-0/output-1/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/resolv.h:65:0, from /tmp/instance-0/output-1/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/glib-2.0/gio/gnetworking.h:40, from ../libsoup/soup-address.c:14: /tmp/instance-0/output-1/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/arpa/nameser.h:115:2: error: unknown type name 'u_char' const u_char *_msg, *_eom; ^ Fixes: - http://autobuild.buildroot.org/results/56b9cb987e25b99d6fed16c537552f47c3376f21 Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/241] --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 4dfd8c15..a5ebc63a 100644 --- a/meson.build +++ b/meson.build @@ -2,6 +2,6 @@ project('libsoup', 'c', version: '2.74.0', meson_version : '>= 0.50', license : 'LGPL2', - default_options : 'c_std=c99') + default_options : 'c_std=gnu99') gnome = import('gnome') -- 2.30.2 ================================================ FILE: package/libsoup/Config.in ================================================ config BR2_PACKAGE_LIBSOUP bool "libsoup" depends on BR2_USE_WCHAR # glib2, gnutls and libpsl depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBPSL select BR2_PACKAGE_SQLITE help libsoup is an HTTP client/server library. It uses GObject and the GLib main loop, to integrate well with GNOME applications. https://wiki.gnome.org/Projects/libsoup if BR2_PACKAGE_LIBSOUP config BR2_PACKAGE_LIBSOUP_GNOME bool "libsoup-gnome" help Build libsoup-gnome library. config BR2_PACKAGE_LIBSOUP_SSL bool "https support" depends on !BR2_STATIC_LIBS # glib-networking, gnutls select BR2_PACKAGE_GLIB_NETWORKING # runtime select BR2_PACKAGE_GNUTLS # runtime help Enable HTTPS (SSL) support. comment "libsoup https support needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS endif comment "libsoup needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libsoup/libsoup.hash ================================================ # From https://ftp.gnome.org/pub/GNOME/sources/libsoup/2.74/libsoup-2.74.0.sha256sum sha256 33b1d4e0d639456c675c227877e94a8078d731233e2d57689c11abcef7d3c48e libsoup-2.74.0.tar.xz # Locally calculated sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c COPYING ================================================ FILE: package/libsoup/libsoup.mk ================================================ ################################################################################ # # libsoup # ################################################################################ LIBSOUP_VERSION_MAJOR = 2.74 LIBSOUP_VERSION = $(LIBSOUP_VERSION_MAJOR).0 LIBSOUP_SOURCE = libsoup-$(LIBSOUP_VERSION).tar.xz LIBSOUP_SITE = http://ftp.gnome.org/pub/gnome/sources/libsoup/$(LIBSOUP_VERSION_MAJOR) LIBSOUP_LICENSE = LGPL-2.0+ LIBSOUP_LICENSE_FILES = COPYING LIBSOUP_CPE_ID_VENDOR = gnome LIBSOUP_INSTALL_STAGING = YES LIBSOUP_DEPENDENCIES = \ host-intltool \ host-libglib2 \ host-pkgconf \ libglib2 \ libpsl \ libxml2 \ sqlite \ $(TARGET_NLS_DEPENDENCIES) LIBSOUP_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) LIBSOUP_CONF_OPTS = \ -Dgssapi=disabled \ -Dgtk_doc=false \ -Dntlm=disabled \ -Dsysprof=disabled \ -Dtests=false \ -Dtls_check=false \ -Dvapi=disabled ifeq ($(BR2_PACKAGE_BROTLI),y) LIBSOUP_CONF_OPTS += -Dbrotli=enabled LIBSOUP_DEPENDENCIES += brotli else LIBSOUP_CONF_OPTS += -Dbrotli=disabled endif ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBSOUP_CONF_OPTS += -Dintrospection=enabled LIBSOUP_DEPENDENCIES += gobject-introspection else LIBSOUP_CONF_OPTS += -Dintrospection=disabled endif ifeq ($(BR2_PACKAGE_LIBSOUP_GNOME),y) LIBSOUP_CONF_OPTS += -Dgnome=true else LIBSOUP_CONF_OPTS += -Dgnome=false endif $(eval $(meson-package)) ================================================ FILE: package/libsoxr/0001-Add-Libs.private-for-static-linking.patch ================================================ From 7d2d1039f303b6322ecb72eebae39b699fd28d19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krause?= Date: Fri, 22 Feb 2019 01:31:11 +0100 Subject: [PATCH] Add Libs.private in soxr.pc.in for static linking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If libsoxr is build statically against libavutil other applications needs to know that they must link with `-lavutil` when building in a static context. Signed-off-by: Jörg Krause --- CMakeLists.txt | 1 + src/soxr.pc.in | 1 + 2 files changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index ee48f6c..714bd4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -139,6 +139,7 @@ if (WITH_AVFFT OR (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" AND SIMD32_FOUND AND WI if (AVUTIL_FOUND) include_directories (${AVUTIL_INCLUDE_DIRS}) set (LIBS ${LIBS} ${AVUTIL_LIBRARIES}) + set (PKGCONF_LIBS_PRIV ${PKGCONF_LIBS_PRIV} -lavutil) endif () endif () diff --git a/src/soxr.pc.in b/src/soxr.pc.in index 69d225b..6c530a6 100644 --- a/src/soxr.pc.in +++ b/src/soxr.pc.in @@ -2,4 +2,5 @@ Name: ${PROJECT_NAME} Description: ${DESCRIPTION_SUMMARY} Version: ${PROJECT_VERSION} Libs: -L${LIB_INSTALL_DIR} -l${PROJECT_NAME} +Libs.private: ${PKGCONF_LIBS_PRIV} Cflags: -I${INCLUDE_INSTALL_DIR} -- 2.20.1 ================================================ FILE: package/libsoxr/Config.in ================================================ config BR2_PACKAGE_LIBSOXR bool "libsoxr" help The SoX Resampler library `libsoxr' performs one-dimensional sample-rate conversion. It may be used, for example, to resample PCM-encoded audio. It aims to give fast and high quality results for any constant (rational or irrational) resampling ratio. Phase-response, preserved bandwidth, aliasing, and rejection level parameters are all configurable; alternatively, simple `preset' configurations may be selected. An experimental, variable-rate resampling mode of operation is also included. http://sourceforge.net/projects/soxr/ ================================================ FILE: package/libsoxr/libsoxr.hash ================================================ # From http://sourceforge.net/projects/soxr/files/ sha1 32ea46b1a8c0c15f835422892d02fce8286aec3c soxr-0.1.3-Source.tar.xz md5 3f16f4dcb35b471682d4321eda6f6c08 soxr-0.1.3-Source.tar.xz # Locally calculated sha256 b111c15fdc8c029989330ff559184198c161100a59312f5dc19ddeb9b5a15889 soxr-0.1.3-Source.tar.xz sha256 dc98676341fdcd29d9f279c9679d6a75288785b174ded8d1b2e316c366166135 LICENCE sha256 f2f118b9029ec1871b953639ecc46651b2fc7b62e295e6cf3ef2ac4c9a058b33 COPYING.LGPL ================================================ FILE: package/libsoxr/libsoxr.mk ================================================ ################################################################################ # # libsoxr # ################################################################################ LIBSOXR_VERSION = 0.1.3 LIBSOXR_SOURCE = soxr-$(LIBSOXR_VERSION)-Source.tar.xz LIBSOXR_SITE = http://downloads.sourceforge.net/project/soxr LIBSOXR_LICENSE = LGPL-2.1+ LIBSOXR_LICENSE_FILES = LICENCE COPYING.LGPL LIBSOXR_INSTALL_STAGING = YES LIBSOXR_CONF_OPTS = -DWITH_OPENMP=OFF ifeq ($(call qstrip,$(BR2_ENDIAN)),BIG) LIBSOXR_CONF_OPTS += -DHAVE_WORDS_BIGENDIAN=1 else LIBSOXR_CONF_OPTS += -DHAVE_WORDS_BIGENDIAN=0 endif ifeq ($(BR2_PACKAGE_FFMPEG),y) LIBSOXR_DEPENDENCIES += ffmpeg endif $(eval $(cmake-package)) ================================================ FILE: package/libspatialindex/0001-allow-building-static-libs.patch ================================================ From caee28d84685071da3ff3a4ea57ff0b6ae64fc87 Mon Sep 17 00:00:00 2001 From: SpaceIm <30052553+SpaceIm@users.noreply.github.com> Date: Sat, 28 Mar 2020 19:08:40 +0100 Subject: [PATCH] allow building static libs (#183) Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/libspatialindex/libspatialindex/commit/caee28d84685071da3ff3a4ea57ff0b6ae64fc87] --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c34ee8d..3bfac51 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,7 +43,6 @@ SET(SIDX_VERSION_MINOR "9") SET(SIDX_VERSION_PATCH "3") SET(SIDX_LIB_VERSION "6.1.1") SET(SIDX_LIB_SOVERSION "6") -SET(BUILD_SHARED_LIBS ON) set(SIDX_VERSION_STRING "${SIDX_VERSION_MAJOR}.${SIDX_VERSION_MINOR}.${SIDX_VERSION_PATCH}") @@ -52,6 +51,7 @@ set(SIDX_VERSION_STRING "${SIDX_VERSION_MAJOR}.${SIDX_VERSION_MINOR}.${SIDX_VERS # libspatialindex general cmake options #------------------------------------------------------------------------------ +option(BUILD_SHARED_LIBS "Build shared libraries" ON) option(SIDX_BUILD_TESTS "Enables integrated test suites" OFF) ================================================ FILE: package/libspatialindex/0002-CMakeLists.txt-fix-CMAKE_BUILD_TYPE.patch ================================================ From 26d417b9f981cf9a6df42d89fd297539b96180cb Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 24 Apr 2020 18:03:31 +0200 Subject: [PATCH] CMakeLists.txt: fix CMAKE_BUILD_TYPE (#188) The user is unable to override CMAKE_BUILD_TYPE since version 1.9.1 and https://github.com/libspatialindex/libspatialindex/commit/e3bcccf38d9f100b59ccf29f7e1cfa174969decd Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/libspatialindex/libspatialindex/commit/26d417b9f981cf9a6df42d89fd297539b96180cb] --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 191ac72..84676a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,8 +93,10 @@ INCLUDE (CheckIncludeFiles) # note we default to RelWithDebInfo mode if(NOT MSVC_IDE) + if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel" FORCE) + endif() message(STATUS "Setting libspatialindex build type - ${CMAKE_BUILD_TYPE}") endif() ================================================ FILE: package/libspatialindex/Config.in ================================================ config BR2_PACKAGE_LIBSPATIALINDEX bool "libspatialindex" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 help The purpose of libspatialindex is to provide: * An extensible framework that will support robust spatial indexing methods. * Support for sophisticated spatial queries. Range, point location, nearest neighbor and k-nearest neighbor as well as parametric queries (defined by spatial constraints) should be easy to deploy and run. * Easy to use interfaces for inserting, deleting and updating information. * Wide variety of customization capabilities. Basic index and storage characteristics like the page size, node capacity, minimum fan-out, splitting algorithm, etc. should be easy to customize. * Index persistence. Internal memory and external memory structures should be supported. Clustered and non-clustered indices should be easy to be persisted. https://libspatialindex.github.io comment "libspatialindex needs a toolchain w/ C++, gcc >= 4.7" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/libspatialindex/libspatialindex.hash ================================================ # From https://github.com/libspatialindex/libspatialindex/releases/download/1.9.3/spatialindex-src-1.9.3.tar.bz2.sha512sum sha512 7922807a2f7026542a014d3d7943da5410429b291cf469267ffea5b8075eab2a94e68b6c013425615d221b930fd319c403f3bf43404c9b1d2c92d0e2baae3066 spatialindex-src-1.9.3.tar.bz2 # Hash for license file sha256 b63ebfaca9d7ce582580f3e11acabc9d2e37c46ce234533f7fa8a6c7278898a0 COPYING ================================================ FILE: package/libspatialindex/libspatialindex.mk ================================================ ################################################################################ # # libspatialindex # ################################################################################ LIBSPATIALINDEX_VERSION = 1.9.3 LIBSPATIALINDEX_SITE = \ https://github.com/libspatialindex/libspatialindex/releases/download/$(LIBSPATIALINDEX_VERSION) LIBSPATIALINDEX_SOURCE = spatialindex-src-$(LIBSPATIALINDEX_VERSION).tar.bz2 LIBSPATIALINDEX_INSTALL_STAGING = YES LIBSPATIALINDEX_LICENSE = MIT LIBSPATIALINDEX_LICENSE_FILES = COPYING LIBSPATIALINDEX_CXXFLAGS = $(TARGET_CXXFLAGS) LIBSPATIALINDEX_CONF_OPTS = \ -DSIDX_BUILD_TESTS=OFF \ -DCMAKE_CXX_FLAGS="$(LIBSPATIALINDEX_CXXFLAGS)" ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) LIBSPATIALINDEX_CXXFLAGS += -O0 endif $(eval $(cmake-package)) ================================================ FILE: package/libsquish/0001-Makefile-add-f-option-for-ln-to-remove-existing-dest.patch ================================================ From 1e541293ac19c49f886220b64de6006c5c700144 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sat, 12 Jan 2019 12:50:54 +0100 Subject: [PATCH] Makefile: add -f option for ln to remove existing destination files While reinstalling the library, all symlinks are present. Ask ln to remove them with -f. Signed-off-by: Romain Naour --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index fd7d6c8..2683819 100644 --- a/Makefile +++ b/Makefile @@ -25,8 +25,8 @@ install: $(LIB) $(LIBA) libsquish.pc $(INSTALL_FILE) $(LIBA) $(INSTALL_DIR)/$(LIB_PATH) ifneq ($(USE_SHARED),0) $(INSTALL_FILE) $(LIB) $(INSTALL_DIR)/$(LIB_PATH) - ln -s $(LIB) $(INSTALL_DIR)/$(LIB_PATH)/$(SOLIB) - ln -s $(LIB) $(INSTALL_DIR)/$(LIB_PATH)/libsquish.so + ln -sf $(LIB) $(INSTALL_DIR)/$(LIB_PATH)/$(SOLIB) + ln -sf $(LIB) $(INSTALL_DIR)/$(LIB_PATH)/libsquish.so $(INSTALL_DIRECTORY) $(INSTALL_DIR)/$(LIB_PATH)/pkgconfig $(INSTALL_FILE) libsquish.pc $(INSTALL_DIR)/$(LIB_PATH)/pkgconfig endif -- 2.14.5 ================================================ FILE: package/libsquish/Config.in ================================================ config BR2_PACKAGE_LIBSQUISH bool "libsquish" depends on BR2_INSTALL_LIBSTDCPP help The libSquish library compresses images with the DXT standard (also known as S3TC). This standard is mainly used by OpenGL and DirectX for the lossy compression of RGBA textures. http://sourceforge.net/projects/libsquish comment "libsquish needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/libsquish/libsquish.hash ================================================ # From http://sourceforge.net/projects/libsquish/files sha1 51844b9a8bc815a27e2cc0ffbede5fee3ef75110 libsquish-1.15.tgz md5 c02645800131e55b519ff8dbe7284f93 libsquish-1.15.tgz # Locally calculated sha256 a6b8c383bf3ab28460d6507484d605dd722e03971606f0cd3032a3af682b63a5 LICENSE.txt ================================================ FILE: package/libsquish/libsquish.mk ================================================ ################################################################################ # # libsquish # ################################################################################ LIBSQUISH_VERSION = 1.15 LIBSQUISH_SOURCE = libsquish-$(LIBSQUISH_VERSION).tgz LIBSQUISH_SITE = http://downloads.sourceforge.net/project/libsquish LIBSQUISH_INSTALL_STAGING = YES LIBSQUISH_STRIP_COMPONENTS = 0 LIBSQUISH_LICENSE = MIT LIBSQUISH_LICENSE_FILES = LICENSE.txt ifeq ($(BR2_STATIC_LIBS),y) LIBSQUISH_MAKE_ENV = USE_SHARED=0 else LIBSQUISH_MAKE_ENV = USE_SHARED=1 endif define LIBSQUISH_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(LIBSQUISH_MAKE_ENV) $(MAKE) -C $(@D) endef define LIBSQUISH_INSTALL_STAGING_CMDS mkdir -p $(STAGING_DIR)/usr/include mkdir -p $(STAGING_DIR)/usr/lib $(TARGET_CONFIGURE_OPTS) $(LIBSQUISH_MAKE_ENV) $(MAKE) -C $(@D) \ install PREFIX=/usr INSTALL_DIR=$(STAGING_DIR)/usr $(INSTALL) -D -m 644 $(@D)/libsquish.pc $(STAGING_DIR)/usr/lib/pkgconfig/libsquish.pc endef define LIBSQUISH_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/include mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_CONFIGURE_OPTS) $(LIBSQUISH_MAKE_ENV) $(MAKE) -C $(@D) \ install PREFIX=/usr INSTALL_DIR=$(TARGET_DIR)/usr endef $(eval $(generic-package)) ================================================ FILE: package/libsrtp/Config.in ================================================ config BR2_PACKAGE_LIBSRTP bool "libsrtp" help This package provides an implementation of the Secure Real-time Transport Protocol (SRTP), the Universal Security Transform (UST), and a supporting cryptographic kernel. https://github.com/cisco/libsrtp ================================================ FILE: package/libsrtp/libsrtp.hash ================================================ # Locally calculated sha256 3cb580928fcd502426809c68406d04aaa5ef1af7ebb0a3a41a52a13576f2fc07 libsrtp-2.4.1.tar.gz sha256 8e19d42a1eec9561f3f347253ddf2e385c55f392f025bb0fd41b88dbf38db5ae LICENSE ================================================ FILE: package/libsrtp/libsrtp.mk ================================================ ################################################################################ # # libsrtp # ################################################################################ LIBSRTP_VERSION = 2.4.1 LIBSRTP_SITE = $(call github,cisco,libsrtp,v$(LIBSRTP_VERSION)) LIBSRTP_INSTALL_STAGING = YES LIBSRTP_LICENSE = BSD-3-Clause LIBSRTP_LICENSE_FILES = LICENSE LIBSRTP_CPE_ID_VENDOR = cisco ifeq ($(BR2_STATIC_LIBS),y) LIBSRTP_MAKE_OPTS = libsrtp2.a else ifeq ($(BR2_SHARED_LIBS),y) LIBSRTP_MAKE_OPTS = shared_library else LIBSRTP_MAKE_OPTS = libsrtp2.a shared_library endif LIBSRTP_DEPENDENCIES = host-pkgconf # openssl handling needs libdl support ifeq ($(BR2_PACKAGE_OPENSSL)x$(BR2_STATIC_LIBS),yx) LIBSRTP_DEPENDENCIES += openssl LIBSRTP_CONF_OPTS += --disable-nss --enable-openssl else ifeq ($(BR2_PACKAGE_LIBNSS),y) LIBSRTP_DEPENDENCIES += libnss LIBSRTP_CONF_OPTS += --enable-nss --disable-openssl else LIBSRTP_CONF_OPTS += --disable-nss --disable-openssl endif $(eval $(autotools-package)) ================================================ FILE: package/libss7/Config.in ================================================ config BR2_PACKAGE_LIBSS7 bool "libss7" depends on BR2_USE_MMU # dahdi-tools <- perl depends on BR2_LINUX_KERNEL depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_DAHDI_LINUX select BR2_PACKAGE_DAHDI_TOOLS help libss7 is an open source library that encapsulates the protocols used to communicate using Signaling System 7 over ISDN (T1, E1). http://www.asterisk.org/downloads/libss7 comment "libss7 needs a kernel to be built" depends on !BR2_LINUX_KERNEL comment "libss7 needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libss7/libss7.hash ================================================ # Hashes from http://downloads.asterisk.org/pub/telephony/libss7/releases/ sha1 7112a0717293fc273d5d488e1387ad28abe4e9b3 libss7-2.0.0.tar.gz sha256 5af00853cfb2bc6bcf050947804db132ae6872db0cd2ab24b5378828f78eda52 libss7-2.0.0.tar.gz # License file, locally calculated sha256 fa5fc1d1eec39532ea517518eeefd7b6e3c14341a55e5880a0e2a49eee47a5b7 LICENSE ================================================ FILE: package/libss7/libss7.mk ================================================ ################################################################################ # # libss7 # ################################################################################ LIBSS7_VERSION = 2.0.0 LIBSS7_SITE = http://downloads.asterisk.org/pub/telephony/libss7/releases LIBSS7_LICENSE = GPL-2.0 LIBSS7_LICENSE_FILES = LICENSE LIBSS7_DEPENDENCIES = dahdi-linux dahdi-tools LIBSS7_INSTALL_STAGING = YES # The Makefile default rule will always try to generate both libraries. # So we need to explicitly build only what we can. ifneq ($(BR2_SHARED_LIBS),y) LIBSS7_LIBS = libss7.a define LIBSS7_INSTALL_A $(INSTALL) -D -m 0644 $(@D)/libss7.a $(1)/usr/lib/libss7.a endef endif ifneq ($(BR2_STATIC_LIBS),y) LIBSS7_LIBS += libss7.so.2.0 define LIBSS7_INSTALL_SO $(INSTALL) -D -m 0644 $(@D)/libss7.so.2.0 $(1)/usr/lib/libss7.so.2.0 ln -sf libss7.so.2.0 $(1)/usr/lib/libss7.so endef endif # The Makefile erroneously looks for host headers to decide what utilities # to build, and thus misses the test utilities. So we explicitly build them # as they can be useful to validate that the hardware does work. LIBSS7_UTILS = parser_debug ss7test ss7linktest define LIBSS7_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS) -fPIC" -C $(@D) \ $(LIBSS7_LIBS) $(LIBSS7_UTILS) endef define LIBSS7_INSTALL_STAGING_CMDS $(call LIBSS7_INSTALL_A,$(STAGING_DIR)) $(call LIBSS7_INSTALL_SO,$(STAGING_DIR)) $(INSTALL) -D -m 0644 $(@D)/libss7.h $(STAGING_DIR)/usr/include/libss7.h endef define LIBSS7_INSTALL_TARGET_CMDS $(foreach u,$(LIBSS7_UTILS),\ $(INSTALL) -D -m 0755 $(@D)/$(u) $(TARGET_DIR)/usr/sbin/$(u)$(sep)) $(call LIBSS7_INSTALL_SO,$(TARGET_DIR)) endef $(eval $(generic-package)) ================================================ FILE: package/libssh/Config.in ================================================ config BR2_PACKAGE_LIBSSH bool "libssh" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_OPENSSL if !(BR2_PACKAGE_MBEDTLS || BR2_PACKAGE_LIBGCRYPT) select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL help libssh is a multiplatform C library implementing the SSHv2 and SSHv1 protocol on client and server side. With libssh, you can remotely execute programs, transfer files, use a secure and transparent tunnel for your remote applications. http://www.libssh.org/ if BR2_PACKAGE_LIBSSH config BR2_PACKAGE_LIBSSH_SERVER bool "server" help Enable libssh server support choice prompt "Crypto Backend" help Select crypto library to be used in libssh. config BR2_PACKAGE_LIBSSH_MBEDTLS bool "mbedtls" depends on BR2_PACKAGE_MBEDTLS config BR2_PACKAGE_LIBSSH_LIBGCRYPT bool "gcrypt" depends on BR2_PACKAGE_LIBGCRYPT config BR2_PACKAGE_LIBSSH_OPENSSL bool "openssl" depends on BR2_PACKAGE_OPENSSL endchoice endif comment "libssh needs a toolchain w/ dynamic library, threads" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libssh/libssh.hash ================================================ # Locally calculated after checking pgp signature # https://www.libssh.org/files/0.9/libssh-0.9.6.tar.xz.asc # with key 8DFF53E18F2ABC8D8F3C92237EE0FC4DCC014E3D sha256 86bcf885bd9b80466fe0e05453c58b877df61afa8ba947a58c356d7f0fab829b libssh-0.9.6.tar.xz sha256 1656186e951db1c010a8485481fa94587f7e53a26d24976bef97945ad0c4df5a COPYING ================================================ FILE: package/libssh/libssh.mk ================================================ ################################################################################ # # libssh # ################################################################################ LIBSSH_VERSION_MAJOR = 0.9 LIBSSH_VERSION = $(LIBSSH_VERSION_MAJOR).6 LIBSSH_SOURCE = libssh-$(LIBSSH_VERSION).tar.xz LIBSSH_SITE = https://www.libssh.org/files/$(LIBSSH_VERSION_MAJOR) LIBSSH_LICENSE = LGPL-2.1 LIBSSH_LICENSE_FILES = COPYING LIBSSH_CPE_ID_VENDOR = libssh LIBSSH_INSTALL_STAGING = YES LIBSSH_SUPPORTS_IN_SOURCE_BUILD = NO LIBSSH_CONF_OPTS = \ -DWITH_STACK_PROTECTOR=OFF \ -DWITH_EXAMPLES=OFF ifeq ($(BR2_PACKAGE_LIBSSH_SERVER),y) LIBSSH_CONF_OPTS += -DWITH_SERVER=ON else LIBSSH_CONF_OPTS += -DWITH_SERVER=OFF endif ifeq ($(BR2_PACKAGE_ZLIB),y) LIBSSH_CONF_OPTS += -DWITH_ZLIB=ON LIBSSH_DEPENDENCIES += zlib else LIBSSH_CONF_OPTS += -DWITH_ZLIB=OFF endif ifeq ($(BR2_PACKAGE_LIBSSH_MBEDTLS),y) LIBSSH_CONF_OPTS += -DWITH_MBEDTLS=ON LIBSSH_DEPENDENCIES += mbedtls else ifeq ($(BR2_PACKAGE_LIBSSH_LIBGCRYPT),y) LIBSSH_CONF_OPTS += -DWITH_GCRYPT=ON LIBSSH_DEPENDENCIES += libgcrypt else ifeq ($(BR2_PACKAGE_LIBSSH_OPENSSL),y) LIBSSH_DEPENDENCIES += openssl endif $(eval $(cmake-package)) ================================================ FILE: package/libssh2/Config.in ================================================ config BR2_PACKAGE_LIBSSH2 bool "libssh2" select BR2_PACKAGE_OPENSSL if !(BR2_PACKAGE_MBEDTLS || BR2_PACKAGE_LIBGCRYPT) help libssh2 is a client-side C library implementing the SSH2 protocol as defined by Internet Drafts: SECSH-TRANS(22), SECSH-USERAUTH(25), SECSH-CONNECTION(23), SECSH-ARCH(20), SECSH-FILEXFER(06)*, SECSH-DHGEX(04), and SECSH-NUMBERS(10) http://www.libssh2.org/ if BR2_PACKAGE_LIBSSH2 choice prompt "Crypto Backend" help Select crypto library to be used in libssh2. config BR2_PACKAGE_LIBSSH2_MBEDTLS bool "mbedtls" depends on BR2_PACKAGE_MBEDTLS config BR2_PACKAGE_LIBSSH2_LIBGCRYPT bool "gcrypt" depends on BR2_PACKAGE_LIBGCRYPT config BR2_PACKAGE_LIBSSH2_OPENSSL bool "openssl" depends on BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160 if BR2_PACKAGE_LIBOPENSSL endchoice endif ================================================ FILE: package/libssh2/libssh2.hash ================================================ # Locally calculated sha256 2d64e90f3ded394b91d3a2e774ca203a4179f69aebee03003e5a6fa621e41d51 libssh2-1.10.0.tar.gz sha256 859e60d760a3446ecaf777339f1eef98c527aea40714384d24b882a83ffdd23a COPYING ================================================ FILE: package/libssh2/libssh2.mk ================================================ ################################################################################ # # libssh2 # ################################################################################ LIBSSH2_VERSION = 1.10.0 LIBSSH2_SITE = https://www.libssh2.org/download LIBSSH2_LICENSE = BSD LIBSSH2_LICENSE_FILES = COPYING LIBSSH2_CPE_ID_VENDOR = libssh2 LIBSSH2_INSTALL_STAGING = YES LIBSSH2_CONF_OPTS = --disable-examples-build ifeq ($(BR2_PACKAGE_LIBSSH2_MBEDTLS),y) LIBSSH2_DEPENDENCIES += mbedtls LIBSSH2_CONF_OPTS += --with-libmbedcrypto-prefix=$(STAGING_DIR)/usr \ --with-crypto=mbedtls else ifeq ($(BR2_PACKAGE_LIBSSH2_LIBGCRYPT),y) LIBSSH2_DEPENDENCIES += libgcrypt LIBSSH2_CONF_OPTS += --with-libgcrypt-prefix=$(STAGING_DIR)/usr \ --with-crypto=libgcrypt # configure.ac forgets to link to dependent libraries of gcrypt breaking static # linking LIBSSH2_CONF_ENV += LIBS="`$(STAGING_DIR)/usr/bin/libgcrypt-config --libs`" else ifeq ($(BR2_PACKAGE_LIBSSH2_OPENSSL),y) LIBSSH2_DEPENDENCIES += host-pkgconf openssl LIBSSH2_CONF_OPTS += --with-libssl-prefix=$(STAGING_DIR)/usr \ --with-crypto=openssl # configure.ac forgets to link to dependent libraries of openssl breaking static # linking LIBSSH2_CONF_ENV += LIBS=`$(PKG_CONFIG_HOST_BINARY) --libs openssl` endif # Add zlib support if enabled ifeq ($(BR2_PACKAGE_ZLIB),y) LIBSSH2_DEPENDENCIES += zlib LIBSSH2_CONF_OPTS += --with-libz \ --with-libz-prefix=$(STAGING_DIR)/usr else LIBSSH2_CONF_OPTS += --without-libz endif HOST_LIBSSH2_DEPENDENCIES += host-openssl HOST_LIBSSH2_CONF_OPTS += --with-openssl \ --with-libssl-prefix=$(HOST_DIR) \ --without-libgcrypt $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libstrophe/Config.in ================================================ config BR2_PACKAGE_LIBSTROPHE bool "libstrophe" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_GNUTLS select BR2_PACKAGE_LIBXML2 if !BR2_PACKAGE_EXPAT help libstrophe is a lightweight XMPP client library written in C. It has minimal dependencies and is configurable for various environments. It runs well on both Linux, Unix, and Windows based platforms. https://github.com/strophe/libstrophe comment "libstrophe needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libstrophe/libstrophe.hash ================================================ # Locally calculated sha256 feafee545403d26a44aa573d4adf327d6d07ad3f3466370634d22bbac5bd49ee libstrophe-0.11.0.tar.xz sha256 82476f36ffd5e895a176013c0812166ba7b7d99f3d536fc7f5ed2e33e9f74a08 MIT-LICENSE.txt sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 GPL-LICENSE.txt ================================================ FILE: package/libstrophe/libstrophe.mk ================================================ ################################################################################ # # libstrophe # ################################################################################ LIBSTROPHE_VERSION = 0.11.0 LIBSTROPHE_SOURCE = libstrophe-$(LIBSTROPHE_VERSION).tar.xz LIBSTROPHE_SITE = https://github.com/strophe/libstrophe/releases/download/$(LIBSTROPHE_VERSION) LIBSTROPHE_DEPENDENCIES = host-pkgconf LIBSTROPHE_LICENSE = MIT or GPL-3.0 LIBSTROPHE_LICENSE_FILES = MIT-LICENSE.txt GPL-LICENSE.txt LIBSTROPHE_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_EXPAT),y) LIBSTROPHE_CONF_OPTS += --without-libxml2 LIBSTROPHE_DEPENDENCIES += expat else LIBSTROPHE_CONF_OPTS += --with-libxml2 LIBSTROPHE_DEPENDENCIES += libxml2 endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBSTROPHE_CONF_OPTS += --with-tls --without-gnutls LIBSTROPHE_DEPENDENCIES += openssl else LIBSTROPHE_CONF_OPTS += --with-gnutls --without-tls LIBSTROPHE_DEPENDENCIES += gnutls endif $(eval $(autotools-package)) ================================================ FILE: package/libsvg/0001-fix-expat-static-declaration.patch ================================================ Newer expat versions use different declarations of the following functions: static void _svg_parser_sax_start_element (); static void _svg_parser_sax_end_element (); static void _svg_parser_sax_characters (); We need to patch the libsvg source to not follow into a build error like "static declaration of 'foo' follows non-static declaration" and use the functions from the expat library instead from the libsvg source. Patch based on http://oe-lite.org/redmine/projects/xorg/repository/revisions/c4df7951e846e1be718f37f2455696a1d0861f3d/entry/recipes/cairo/libsvg-0.1.4/gcc4_and_expat.patch Signed-off-by: Carsten Schoenert diff -bur libsvg-0.1.4~orig/src/svg_parser_expat.c libsvg-0.1.4/src/svg_parser_expat.c --- libsvg-0.1.4~orig/src/svg_parser_expat.c 2005-02-14 11:26:26.000000000 -0600 +++ libsvg-0.1.4/src/svg_parser_expat.c 2006-02-10 21:58:20.000000000 -0600 @@ -30,6 +30,7 @@ #include "svgint.h" #include "svg_hash.h" +#ifndef LIBSVG_EXPAT static void _svg_parser_sax_start_element (void *closure, const XML_Char *name, @@ -43,6 +44,7 @@ _svg_parser_sax_characters (void *closure, const XML_Char *ch, int len); +#endif static void ================================================ FILE: package/libsvg/0002-Fix-undefined-symbol-png_set_gray_1_2_4_to_8.patch ================================================ From 213e5749947fad08d985eda8d06839efedda78ef Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 5 Mar 2015 21:42:52 +0100 Subject: [PATCH] Fix undefined symbol png_set_gray_1_2_4_to_8 Since libpng-1.4.0 the function png_set_gray_1_2_4_to_8() was removed, the replacement function is called png_set_expand_gray_1_2_4_to_8() (see [1]). [1] http://libpng.sourceforge.net/ANNOUNCE-1.4.0.txt Signed-off-by: Peter Seiderer --- src/svg_image.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/svg_image.c b/src/svg_image.c index cd8a95a..f256943 100755 --- a/src/svg_image.c +++ b/src/svg_image.c @@ -271,7 +271,7 @@ _svg_image_read_png (const char *filename, /* expand gray bit depth if needed */ if (color_type == PNG_COLOR_TYPE_GRAY && depth < 8) - png_set_gray_1_2_4_to_8 (png); + png_set_expand_gray_1_2_4_to_8 (png); /* transform transparency to alpha */ if (png_get_valid(png, info, PNG_INFO_tRNS)) -- 2.1.4 ================================================ FILE: package/libsvg/Config.in ================================================ config BR2_PACKAGE_LIBSVG bool "libsvg" select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBXML2 if !BR2_PACKAGE_EXPAT help Libsvg provides a parser for SVG content in files or buffers. Libsvg does not do any rendering, but instead provides a function-based interface that can be used by various rendering engines. http://cairographics.org/snapshots/ ================================================ FILE: package/libsvg/libsvg.hash ================================================ # From http://cairographics.org/snapshots/libsvg-0.1.4.tar.gz.md5 md5 ce0715e3013f78506795fba16e8455d3 libsvg-0.1.4.tar.gz # Locally calculated sha256 4c3bf9292e676a72b12338691be64d0f38cd7f2ea5e8b67fbbf45f1ed404bc8f libsvg-0.1.4.tar.gz sha256 d245807f90032872d1438d741ed21e2490e1175dc8aa3afa5ddb6c8e529b58e5 COPYING ================================================ FILE: package/libsvg/libsvg.mk ================================================ ################################################################################ # # libsvg # ################################################################################ LIBSVG_VERSION = 0.1.4 LIBSVG_SITE = http://cairographics.org/snapshots LIBSVG_DEPENDENCIES = host-pkgconf libpng jpeg LIBSVG_INSTALL_STAGING = YES LIBSVG_LICENSE = LGPL-2.0+ LIBSVG_LICENSE_FILES = COPYING # libsvg needs at last a XML parser ifeq ($(BR2_PACKAGE_EXPAT),y) LIBSVG_CONF_OPTS += --with-expat LIBSVG_DEPENDENCIES += expat else LIBSVG_CONF_OPTS += --with-libxml2 LIBSVG_DEPENDENCIES += libxml2 endif $(eval $(autotools-package)) ================================================ FILE: package/libsvg-cairo/Config.in ================================================ config BR2_PACKAGE_LIBSVG_CAIRO bool "libsvg-cairo" select BR2_PACKAGE_CAIRO select BR2_PACKAGE_CAIRO_SVG select BR2_PACKAGE_LIBSVG help Libsvg-cairo provides the ability to render SVG content from files or buffers. All rendering is performed using the cairo rendering library. http://cairographics.org ================================================ FILE: package/libsvg-cairo/libsvg-cairo.hash ================================================ # From http://cairographics.org/snapshots/libsvg-cairo-0.1.6.tar.gz.md5 md5 d79da7b3a60ad8c8e4b902c9b3563047 libsvg-cairo-0.1.6.tar.gz # Locally calculated sha256 a380be6a78ec2938100ce904363815a94068fca372c666b8cc82aa8711a0215c libsvg-cairo-0.1.6.tar.gz sha256 d80c9d084ebfb50ea1ed91bfbc2410d6ce542097a32c43b00781b83adcb8c77f COPYING ================================================ FILE: package/libsvg-cairo/libsvg-cairo.mk ================================================ ################################################################################ # # libsvg-cairo # ################################################################################ LIBSVG_CAIRO_VERSION = 0.1.6 LIBSVG_CAIRO_SITE = http://cairographics.org/snapshots LIBSVG_CAIRO_DEPENDENCIES = cairo libsvg LIBSVG_CAIRO_INSTALL_STAGING = YES LIBSVG_CAIRO_LICENSE = LGPL-2.1+ LIBSVG_CAIRO_LICENSE_FILES = COPYING LIBSVG_CAIRO_CONF_OPTS = --without-x $(eval $(autotools-package)) ================================================ FILE: package/libsvgtiny/0001-disable-debug-printfs.patch ================================================ svntiny: svntiny_gradient.c: only print debugging if GRADIENT_DEBUG is enabled Signed-off-by: Peter Korsgaard --- src/svgtiny_gradient.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) Index: libsvgtiny/src/svgtiny_gradient.c =================================================================== --- libsvgtiny.orig/src/svgtiny_gradient.c +++ libsvgtiny/src/svgtiny_gradient.c @@ -30,8 +30,9 @@ void svgtiny_find_gradient(const char *i { xmlNode *gradient; +#ifdef GRADIENT_DEBUG fprintf(stderr, "svgtiny_find_gradient: id \"%s\"\n", id); - +#endif state->linear_gradient_stop_count = 0; state->gradient_x1 = "0%"; state->gradient_y1 = "0%"; @@ -47,13 +48,17 @@ void svgtiny_find_gradient(const char *i gradient = svgtiny_find_element_by_id( (xmlNode *) state->document, id); +#ifdef GRADIENT_DEBUG fprintf(stderr, "gradient %p\n", (void *) gradient); +#endif if (!gradient) { fprintf(stderr, "gradient \"%s\" not found\n", id); return; } +#ifdef GRADIENT_DEBUG fprintf(stderr, "gradient name \"%s\"\n", gradient->name); +#endif if (strcmp((const char *) gradient->name, "linearGradient") == 0) { svgtiny_parse_linear_gradient(gradient, state); } @@ -98,8 +103,10 @@ svgtiny_code svgtiny_parse_linear_gradie return svgtiny_OUT_OF_MEMORY; svgtiny_parse_transform(s, &a, &b, &c, &d, &e, &f); free(s); +#ifdef GRADIENT_DEBUG fprintf(stderr, "transform %g %g %g %g %g %g\n", a, b, c, d, e, f); +#endif state->gradient_transform.a = a; state->gradient_transform.b = b; state->gradient_transform.c = c; @@ -143,7 +150,9 @@ svgtiny_code svgtiny_parse_linear_gradie } if (offset != -1 && color != svgtiny_TRANSPARENT) { +#ifdef GRADIENT_DEBUG fprintf(stderr, "stop %g %x\n", offset, color); +#endif state->gradient_stop[i].offset = offset; state->gradient_stop[i].color = color; i++; @@ -220,9 +229,11 @@ svgtiny_code svgtiny_add_path_linear_gra #endif /* compute gradient vector */ +#ifdef GRADIENT_DEBUG fprintf(stderr, "x1 %s, y1 %s, x2 %s, y2 %s\n", state->gradient_x1, state->gradient_y1, state->gradient_x2, state->gradient_y2); +#endif if (!state->gradient_user_space_on_use) { gradient_x0 = object_x0 + svgtiny_parse_length(state->gradient_x1, @@ -297,9 +308,11 @@ svgtiny_code svgtiny_add_path_linear_gra /* invert gradient transform for applying to vertices */ svgtiny_invert_matrix(&state->gradient_transform.a, trans); +#ifdef GRADIENT_DEBUG fprintf(stderr, "inverse transform %g %g %g %g %g %g\n", trans[0], trans[1], trans[2], trans[3], trans[4], trans[5]); +#endif /* compute points on the path for triangle vertices */ /* r, r0, r1 are distance along gradient vector */ @@ -372,8 +385,10 @@ svgtiny_code svgtiny_add_path_linear_gra steps = ceilf(fabsf(r1 - r0) / 0.05); if (steps == 0) steps = 1; +#ifdef GRADIENT_DEBUG fprintf(stderr, "r0 %g, r1 %g, steps %i\n", r0, r1, steps); +#endif /* loop through intermediate points */ for (z = 1; z != steps; z++) { @@ -398,7 +413,9 @@ svgtiny_code svgtiny_add_path_linear_gra r = ((x_trans - gradient_x0) * gradient_dx + (y_trans - gradient_y0) * gradient_dy) / gradient_norm_squared; +#ifdef GRADIENT_DEBUG fprintf(stderr, "(%g %g [%g]) ", x, y, r); +#endif point = svgtiny_list_push(pts); if (!point) { svgtiny_list_free(pts); @@ -412,14 +429,18 @@ svgtiny_code svgtiny_add_path_linear_gra min_pt = svgtiny_list_size(pts) - 1; } } +#ifdef GRADIENT_DEBUG fprintf(stderr, "\n"); +#endif /* next segment start point is this segment end point */ x0 = x1; y0 = y1; } +#ifdef GRADIENT_DEBUG fprintf(stderr, "pts size %i, min_pt %i, min_r %.3f\n", svgtiny_list_size(pts), min_pt, min_r); +#endif /* render triangles */ stop_count = state->linear_gradient_stop_count; ================================================ FILE: package/libsvgtiny/0002-Remove-Werror.patch ================================================ Remove -Werror from Makefile glibc-2.20 includes some changes to the include/features.h file introduced by this commit: https://sourceware.org/git/?p=glibc.git;a=commit;h=ade40b10ff5fa59a318cf55b9d8414b758e8df78 Those changes make libsvgtiny fail because some warnings are thrown and the build system is using the -Werror option. We disable this to be able to build it, or otherwise we will see errors like this one: GPERF: src/colors.gperf COMPILE: build-Linux-Linux-release-lib-static/src_colors.c In file included from /br/output/host/usr/mipsel-buildroot-linux-gnu/sysroot/usr/include/string.h:25:0, from src/colors.gperf:16: /br/output/host/usr/mipsel-buildroot-linux-gnu/sysroot/usr/include/features.h:148:3: error: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Werror=cpp] and this one: In file included from src/colors.gperf:18:0: /home/ldap/vriera/work/mips-buildroots/mips32/output/build/libsvgtiny-12121/src/svgtiny_internal.h:71:0: error: "strndup" redefined [-Werror] Signed-off-by: Vicente Olivert Riera diff -rup a/Makefile b/Makefile --- a/Makefile 2010-01-03 23:37:39.000000000 +0000 +++ b/Makefile 2014-12-11 11:35:37.241903884 +0000 @@ -13,12 +13,6 @@ TESTRUNNER := $(ECHO) WARNFLAGS := -Wall -W -Wundef -Wpointer-arith -Wcast-align \ -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \ -Wmissing-declarations -Wnested-externs -pedantic -# BeOS/Haiku/AmigaOS4 standard library headers create warnings -ifneq ($(TARGET),beos) - ifneq ($(TARGET),AmigaOS) - WARNFLAGS := $(WARNFLAGS) -Werror - endif -endif CFLAGS := -D_BSD_SOURCE -I$(CURDIR)/include/ \ -I$(CURDIR)/src $(WARNFLAGS) $(CFLAGS) ifneq ($(GCCVER),2) ================================================ FILE: package/libsvgtiny/0003-Hopefully-silence-warnings-about-inlines-and-non-inlines-calling-one.patch ================================================ From 21b4836ac9d6c6725590a925daa5d17eda9843e9 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sat, 26 Apr 2014 16:24:54 +0100 Subject: Hopefully silence warnings about inlines and non inlines calling one another. [Retrieved from: https://source.netsurf-browser.org/libsvgtiny.git/commit/src?id=21b4836ac9d6c6725590a925daa5d17eda9843e9] Signed-off-by: Fabrice Fontaine --- src/colors.gperf | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/colors.gperf b/src/colors.gperf index 89152d2..96d5b9e 100644 --- a/src/colors.gperf +++ b/src/colors.gperf @@ -16,6 +16,15 @@ #include #include "svgtiny.h" #include "svgtiny_internal.h" + +/* This unusual define shennanigan is to try and prevent the gperf + * generated function from being inlined. This is pointless given + * it (a) is in a separate .c file and (b) has external linkage. + */ +#ifdef __inline +#undef __inline +#define __inline +#endif %} struct svgtiny_named_color; -- cgit v1.2.1 ================================================ FILE: package/libsvgtiny/0004-Build-Include-gperf-generated-code-directly.patch ================================================ From 4390f1c84e8fee51fc22468821e6fc158e783053 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Thu, 20 Apr 2017 10:51:07 +0100 Subject: Build: Include gperf-generated code directly. Previously we built the generated code separatly and then linked to it. However, this caused problems with certain compilers and gperf versions. This change includes the generated code directly in svgtiny.c instead, which is the only place its used. [Retrieved from: https://source.netsurf-browser.org/libsvgtiny.git/commit/src?id=4390f1c84e8fee51fc22468821e6fc158e783053] Signed-off-by: Fabrice Fontaine --- src/Makefile | 13 +++++++------ src/colors.gperf | 8 -------- src/svgtiny.c | 3 +++ src/svgtiny_internal.h | 5 ----- 4 files changed, 10 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/Makefile b/src/Makefile index a979720..fb8a72f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,13 +1,14 @@ # Sources DIR_SOURCES := svgtiny.c svgtiny_gradient.c svgtiny_list.c -SOURCES := $(SOURCES) $(BUILDDIR)/src_colors.c +SOURCES := $(SOURCES) -$(BUILDDIR)/src_colors.c: src/colors.gperf +$(DIR)autogenerated_colors.c: src/colors.gperf $(VQ)$(ECHO) " GPERF: $<" - $(Q)gperf --output-file=$@.tmp $< -# Hack for GCC 4.2 compatibility (gperf 3.0.4 solves this properly) - $(Q)$(SED) -e 's/#ifdef __GNUC_STDC_INLINE__/#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__/' $@.tmp >$@ - $(Q)$(RM) $@.tmp + $(Q)gperf --output-file=$@ $< + +PRE_TARGETS := $(DIR)autogenerated_colors.c + +CLEAN_ITEMS := $(DIR)autogenerated_colors.c include $(NSBUILD)/Makefile.subdir diff --git a/src/colors.gperf b/src/colors.gperf index 96d5b9e..a836787 100644 --- a/src/colors.gperf +++ b/src/colors.gperf @@ -17,14 +17,6 @@ #include "svgtiny.h" #include "svgtiny_internal.h" -/* This unusual define shennanigan is to try and prevent the gperf - * generated function from being inlined. This is pointless given - * it (a) is in a separate .c file and (b) has external linkage. - */ -#ifdef __inline -#undef __inline -#define __inline -#endif %} struct svgtiny_named_color; diff --git a/src/svgtiny.c b/src/svgtiny.c index 4661a58..bbefb88 100644 --- a/src/svgtiny.c +++ b/src/svgtiny.c @@ -20,6 +20,9 @@ #include "svgtiny.h" #include "svgtiny_internal.h" +/* Source file generated by `gperf`. */ +#include "autogenerated_colors.c" + #ifndef M_PI #define M_PI 3.14159265358979323846 #endif diff --git a/src/svgtiny_internal.h b/src/svgtiny_internal.h index 158d230..6bf5d64 100644 --- a/src/svgtiny_internal.h +++ b/src/svgtiny_internal.h @@ -102,9 +102,4 @@ void *svgtiny_list_get(struct svgtiny_list *list, void *svgtiny_list_push(struct svgtiny_list *list); void svgtiny_list_free(struct svgtiny_list *list); -/* colors.gperf */ -const struct svgtiny_named_color * - svgtiny_color_lookup(register const char *str, - register unsigned int len); - #endif -- cgit v1.2.1 ================================================ FILE: package/libsvgtiny/Config.in ================================================ config BR2_PACKAGE_LIBSVGTINY bool "libsvgtiny" select BR2_PACKAGE_LIBXML2 help Libsvgtiny is an implementation of SVG Tiny, written in C. It is currently in development for use with NetSurf and is intended to be suitable for use in other projects too. http://www.netsurf-browser.org/projects/libsvgtiny/ ================================================ FILE: package/libsvgtiny/libsvgtiny.hash ================================================ # Locally computed sha256 917850350d014c953f2af0fb92f0eeb25652619710922d467c98f8109fb92baf libsvgtiny-ea9d99fc8b231c22d06168135e181d61f4eb2f06-br1.tar.gz sha256 92b965c77be71661cae51425a6b40a5ca274f44cc13c723c90fb471a9a26a828 README ================================================ FILE: package/libsvgtiny/libsvgtiny.mk ================================================ ################################################################################ # # libsvgtiny # ################################################################################ LIBSVGTINY_SITE = http://git.netsurf-browser.org/libsvgtiny.git LIBSVGTINY_SITE_METHOD = git LIBSVGTINY_VERSION = ea9d99fc8b231c22d06168135e181d61f4eb2f06 LIBSVGTINY_INSTALL_STAGING = YES LIBSVGTINY_DEPENDENCIES = \ libxml2 host-gperf host-pkgconf host-netsurf-buildsystem LIBSVGTINY_LICENSE = MIT LIBSVGTINY_LICENSE_FILES = README # The libsvgtiny build system cannot build both the shared and static # libraries. So when the Buildroot configuration requests to build # both the shared and static variants, we build only the shared one. ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) LIBSVGTINY_COMPONENT_TYPE = lib-shared else LIBSVGTINY_COMPONENT_TYPE = lib-static endif define LIBSVGTINY_CONFIGURE_CMDS ln -sf $(HOST_DIR)/share/netsurf-buildsystem $(@D)/build endef # Use $(MAKE1) since parallel build fails define LIBSVGTINY_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D) PREFIX=/usr \ COMPONENT_TYPE=$(LIBSVGTINY_COMPONENT_TYPE) endef define LIBSVGTINY_INSTALL_STAGING_CMDS $(TARGET_CONFIGURE_OPTS) \ $(MAKE1) -C $(@D) PREFIX=/usr DESTDIR=$(STAGING_DIR) \ COMPONENT_TYPE=$(LIBSVGTINY_COMPONENT_TYPE) install endef define LIBSVGTINY_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) \ $(MAKE1) -C $(@D) PREFIX=/usr DESTDIR=$(TARGET_DIR) \ COMPONENT_TYPE=$(LIBSVGTINY_COMPONENT_TYPE) install endef $(eval $(generic-package)) ================================================ FILE: package/libsysfs/Config.in ================================================ config BR2_PACKAGE_LIBSYSFS bool "libsysfs" help These are a set of utilities built upon sysfs, a filesystem in Linux 2.6 kernels that exposes a system's device tree. https://github.com/linux-ras/sysfsutils ================================================ FILE: package/libsysfs/libsysfs.hash ================================================ # Locally computed: sha256 f7f669d27c997d3eb3f3e014b4c0aa1aa4d07ce4d6f9e41fa835240f2bf38810 libsysfs-2.1.1.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 cmd/GPL sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 lib/LGPL ================================================ FILE: package/libsysfs/libsysfs.mk ================================================ ################################################################################ # # libsysfs # ################################################################################ LIBSYSFS_VERSION = 2.1.1 LIBSYSFS_SITE = $(call github,linux-ras,sysfsutils,v$(LIBSYSFS_VERSION)) LIBSYSFS_INSTALL_STAGING = YES LIBSYSFS_LICENSE = GPL-2.0 (utilities), LGPL-2.1+ (library) LIBSYSFS_LICENSE_FILES = cmd/GPL lib/LGPL LIBSYSFS_CPE_ID_VENDOR = sysfsutils_project LIBSYSFS_CPE_ID_PRODUCT = sysfsutils # From git LIBSYSFS_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/libtalloc/Config.in ================================================ config BR2_PACKAGE_LIBTALLOC bool "libtalloc" depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS help talloc is a hierarchical, reference counted memory pool system with destructors. It is the core memory allocator used in Samba. https://talloc.samba.org/talloc/doc/html/index.html comment "libtalloc needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/libtalloc/libtalloc-cache.txt ================================================ Checking simple C program: OK rpath library support: OK -Wl,--version-script support: OK Checking getconf LFS_CFLAGS: NO Checking for large file support without additional flags: OK Checking for -D_LARGE_FILES: OK Checking correct behavior of strtoll: NO Checking for working strptime: OK Checking for C99 vsnprintf: OK Checking for HAVE_SHARED_MMAP: OK Checking for HAVE_MREMAP: OK Checking for HAVE_INCOHERENT_MMAP: NO Checking for HAVE_SECURE_MKSTEMP: OK Checking for HAVE_IFACE_GETIFADDRS: OK Checking for kernel change notify support: OK Checking for Linux kernel oplocks: OK Checking for kernel share modes: OK Checking if can we convert from CP850 to UCS-2LE: OK Checking if can we convert from UTF-8 to UCS-2LE: OK Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK Checking whether we can use Linux thread-specific credentials: OK Checking whether setreuid is available: OK Checking whether setresuid is available: OK Checking whether seteuid is available: OK Checking whether fcntl locking is available: OK Checking whether fcntl lock supports open file description locks: OK Checking for the maximum value of the 'time_t' type: OK Checking whether the realpath function allows a NULL argument: OK Checking whether POSIX capabilities are available: OK Checking for ftruncate extend: OK vfs_fileid checking for statfs() and struct statfs.f_fsid: OK getcwd takes a NULL argument: OK Checking uname sysname type: "Linux" Checking uname release type: "5.4.0" Checking uname version type: "#1 Tue Oct 1 00:00:00 UTC 2020" Checking value of NSIG: "65" Checking value of _NSIG: "65" Checking value of SIGRTMAX: "64" Checking value of SIGRTMIN: "34" Checking errno of iconv for illegal multibyte sequence: "0" checking for clnt_create(): OK Checking for a 64-bit host to support lmdb: NO ================================================ FILE: package/libtalloc/libtalloc.hash ================================================ # Locally calculated sha256 6be95b2368bd0af1c4cd7a88146eb6ceea18e46c3ffc9330bf6262b40d1d8aaa talloc-2.3.3.tar.gz sha256 f8340c449dd64a55c6605b02fcad2aec6f473612ac6026739a22995380a8043c talloc.h ================================================ FILE: package/libtalloc/libtalloc.mk ================================================ ################################################################################ # # libtalloc # ################################################################################ LIBTALLOC_VERSION = 2.3.3 LIBTALLOC_SOURCE = talloc-$(LIBTALLOC_VERSION).tar.gz LIBTALLOC_SITE = https://www.samba.org/ftp/talloc LIBTALLOC_LICENSE = LGPL-3.0+ LIBTALLOC_LICENSE_FILES = talloc.h LIBTALLOC_INSTALL_STAGING = YES # --with-libiconv= is unconditionally passed, even if libiconv is not # present. Indeed, waf will search for libiconv by default in # /usr/local. Because of a bug in some waf python script, /usr/local # is then used in many subsequent and unrelated checks, which # ultimately causes a failure when BR2_COMPILER_PARANOID_UNSAFE_PATH # is set. However no need to set libiconv as a dependency of # libtalloc since it's optional. LIBTALLOC_CONF_OPTS += --cross-compile \ --cross-answers=$(@D)/cache.txt \ --hostcc=gcc \ --with-libiconv=$(STAGING_DIR)/usr ifeq ($(BR2_PACKAGE_LIBTIRPC),y) LIBTALLOC_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc` LIBTALLOC_LDFLAGS += `$(PKG_CONFIG_HOST_BINARY) --libs libtirpc` LIBTALLOC_DEPENDENCIES += libtirpc host-pkgconf endif ifeq ($(BR2_PACKAGE_PYTHON3),y) LIBTALLOC_DEPENDENCIES += host-python3 python3 LIBTALLOC_CONF_ENV += \ PYTHON="$(HOST_DIR)/bin/python3" \ PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python3-config" # There isn't any --enable-python configuration option else LIBTALLOC_CONF_OPTS += --disable-python endif LIBTALLOC_WAF = ./buildtools/bin/waf # like samba4, libtalloc uses the waf build system which requires a # proper answers file to configure package before build define LIBTALLOC_POPULATE_WAF_CACHE $(INSTALL) -m 0644 package/libtalloc/libtalloc-cache.txt $(@D)/cache.txt echo 'Checking uname machine type: $(BR2_ARCH)' >> $(@D)/cache.txt endef LIBTALLOC_PRE_CONFIGURE_HOOKS += LIBTALLOC_POPULATE_WAF_CACHE $(eval $(waf-package)) ================================================ FILE: package/libtasn1/0001-fuzz-Makefile.am-do-not-force-static.patch ================================================ From cf1b20f3d881a1cfbf8cae1f615f45a5a4fbb3b4 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 22 Apr 2020 18:35:55 +0200 Subject: [PATCH] fuzz/Makefile.am: do not force static Don't force static when linking corpus2arry to libtasn1 otherwise the build will fail if libtasn1 has been built only as a shared library: CCLD corpus2array /home/fabrice/buildroot/output/host/lib/gcc/arm-buildroot-linux-musleabihf/8.4.0/../../../../arm-buildroot-linux-musleabihf/bin/ld: attempted static link of dynamic object `../lib/.libs/libtasn1.so' collect2: error: ld returned 1 exit status Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.com/gnutls/libtasn1/-/merge_requests/61] --- fuzz/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fuzz/Makefile.am b/fuzz/Makefile.am index c6310d1..1fb7152 100644 --- a/fuzz/Makefile.am +++ b/fuzz/Makefile.am @@ -26,7 +26,7 @@ AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) $(CODE_COVERAGE_CFLAGS) AM_CPPFLAGS = -I$(top_builddir)/lib/includes -I$(top_srcdir)/lib/includes -I$(srcdir) \ -I$(top_builddir)/lib/gl -I$(top_srcdir)/lib/gl -DSRCDIR=\"$(abs_srcdir)\" \ $(CODE_COVERAGE_CPPFLAGS) -AM_LDFLAGS = -no-install -static +AM_LDFLAGS = -no-install LDADD = ../lib/gl/libgnu.la ../lib/libtasn1.la $(FUZZ_LIBS) $(CODE_COVERAGE_LIBS) -- 2.25.1 ================================================ FILE: package/libtasn1/Config.in ================================================ config BR2_PACKAGE_LIBTASN1 bool "libtasn1" help ASN.1 library http://www.gnu.org/software/libtasn1 ================================================ FILE: package/libtasn1/libtasn1.hash ================================================ # Locally calculated after checking pgp signature # https://ftp.gnu.org/gnu/libtasn1/libtasn1-4.17.0.tar.gz.sig sha256 ece7551cea7922b8e10d7ebc70bc2248d1fdd73351646a2d6a8d68a9421c45a5 libtasn1-4.17.0.tar.gz # Locally calculated sha256 7446831f659f7ebfd8d497acc7f05dfa8e31c6cb6ba1b45df33d4895ab80f5a6 COPYING sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 doc/COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 doc/COPYING.LESSER ================================================ FILE: package/libtasn1/libtasn1.mk ================================================ ################################################################################ # # libtasn1 # ################################################################################ LIBTASN1_VERSION = 4.17.0 LIBTASN1_SITE = $(BR2_GNU_MIRROR)/libtasn1 LIBTASN1_DEPENDENCIES = host-bison host-pkgconf LIBTASN1_LICENSE = GPL-3.0+ (tests, tools), LGPL-2.1+ (library) LIBTASN1_LICENSE_FILES = COPYING doc/COPYING doc/COPYING.LESSER LIBTASN1_CPE_ID_VENDOR = gnu LIBTASN1_INSTALL_STAGING = YES # We're patching fuzz/Makefile.am LIBTASN1_AUTORECONF = YES # 'missing' fallback logic botched so disable it completely LIBTASN1_CONF_ENV = MAKEINFO="true" LIBTASN1_CONF_OPTS = CFLAGS="$(TARGET_CFLAGS) -std=gnu99" $(eval $(autotools-package)) ================================================ FILE: package/libteam/0001-revert-disregard-current-state.patch ================================================ From 61efd6de2fbb8ee077863ee5a355ac3dfd9365b9 Mon Sep 17 00:00:00 2001 From: Xin Long Date: Tue, 1 Sep 2020 13:59:27 +0800 Subject: [PATCH] Revert "teamd: Disregard current state when considering port enablement" This reverts commit deadb5b715227429a1879b187f5906b39151eca9. As Patrick noticed, with that commit, teamd_port_check_enable() would set the team port to the new state unconditionally, which triggers another change message from kernel to userspace, then teamd_port_check_enable() is called again to set the team port to the new state. This would go around and around to update the team port state, and even cause teamd to consume 100% cpu. As the issue caused by that commit is serious, it has to be reverted. As for the issued fixed by that commit, I would propose a new fix later. Signed-off-by: Jiri Pirko --- teamd/teamd_per_port.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/teamd/teamd_per_port.c b/teamd/teamd_per_port.c index 166da57..d429753 100644 --- a/teamd/teamd_per_port.c +++ b/teamd/teamd_per_port.c @@ -442,14 +442,18 @@ int teamd_port_check_enable(struct teamd_context *ctx, bool should_enable, bool should_disable) { bool new_enabled_state; + bool curr_enabled_state; int err; if (!teamd_port_present(ctx, tdport)) return 0; + err = teamd_port_enabled(ctx, tdport, &curr_enabled_state); + if (err) + return err; - if (should_enable) + if (!curr_enabled_state && should_enable) new_enabled_state = true; - else if (should_disable) + else if (curr_enabled_state && should_disable) new_enabled_state = false; else return 0; ================================================ FILE: package/libteam/0002-fix-build-on-openwrt-musl-libc.patch ================================================ From 267f24839536234ca621d4fd0466d3b57cb6dccd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20=C5=A0imerda?= Date: Tue, 12 Jan 2021 04:41:56 +0100 Subject: [PATCH] fix build on OpenWRT/musl-libc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pavel Šimerda Signed-off-by: Jiri Pirko --- teamd/teamd_runner_lacp.c | 2 -- utils/teamnl.c | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/teamd/teamd_runner_lacp.c b/teamd/teamd_runner_lacp.c index 9437f05..f524be2 100644 --- a/teamd/teamd_runner_lacp.c +++ b/teamd/teamd_runner_lacp.c @@ -23,9 +23,7 @@ #include #include #include -#include #include -#include #include #include #include diff --git a/utils/teamnl.c b/utils/teamnl.c index c53345d..ec2b435 100644 --- a/utils/teamnl.c +++ b/utils/teamnl.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include ================================================ FILE: package/libteam/0003-increase-wait-time-for-daemon-kill.patch ================================================ From 6875e6c8efb0fe86766b3d4f1d0db390af6998b7 Mon Sep 17 00:00:00 2001 From: Hangbin Liu Date: Tue, 15 Dec 2020 19:33:17 +0800 Subject: [PATCH] teamd: increase the waitting time for daemon killing In the current code, we wait for at most 5s when kill the daemon pid. But in some environment, it may need more time. Then the teamd -k will failed and return error "Failed to kill daemon: Timer expired". Let's increase the value to have enough time. Here is the reuslt with this patch: $ time libteam/teamd/teamd -k -t team0 real 0m10.442s user 0m0.017s sys 0m0.016s Signed-off-by: Hangbin Liu Signed-off-by: Jiri Pirko --- teamd/teamd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/teamd/teamd.c b/teamd/teamd.c index 9360cbf..b310140 100644 --- a/teamd/teamd.c +++ b/teamd/teamd.c @@ -1858,7 +1858,7 @@ int main(int argc, char **argv) break; case DAEMON_CMD_KILL: if (daemon_pid_file_is_running() > 0) { - err = daemon_pid_file_kill_wait(SIGTERM, 5); + err = daemon_pid_file_kill_wait(SIGTERM, 30); if (err) teamd_log_warn("Failed to kill daemon: %s", strerror(errno)); ================================================ FILE: package/libteam/Config.in ================================================ config BR2_PACKAGE_LIBTEAM bool "libteam" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # libnl-tools depends on BR2_TOOLCHAIN_HAS_THREADS # libnl select BR2_PACKAGE_JANSSON select BR2_PACKAGE_LIBDAEMON select BR2_PACKAGE_LIBNL select BR2_PACKAGE_LIBNL_TOOLS help The purpose of the Team driver is to provide a mechanism to team multiple NICs (ports) into one logical one (teamdev) at L2 layer. The process is called "channel bonding", "Ethernet bonding", "channel teaming", "link aggregation", etc. Team tries to provide similar functionality as the bonding driver, however architecturally it is quite different. Team is modular, userspace driven, very lean and efficient, and it does have some distinct advantages over bonding. The way Team is configured differs dramatically from the way bonding is. If building the kernel with Buildroot, basic team support is automatically enabled, but you will still need to enable the modes you need, e.g. activebackup or loadbalance (e.g. with a config fragment or a custom config). https://github.com/jpirko/libteam comment "libteam needs MMU and a toolchain w/ dynamic library and threads" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libteam/libteam.hash ================================================ # Locally calculated sha256 c69f7cf5a98203d66db10e67b396fe325b77a5a9491d1e07e8a07cba3ba841bb libteam-1.31.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/libteam/libteam.mk ================================================ ################################################################################ # # libteam # ################################################################################ LIBTEAM_VERSION = 1.31 LIBTEAM_SITE = $(call github,jpirko,libteam,v$(LIBTEAM_VERSION)) LIBTEAM_LICENSE = LGPL-2.1+ LIBTEAM_LICENSE_FILES = COPYING LIBTEAM_DEPENDENCIES = host-pkgconf jansson libdaemon libnl LIBTEAM_AUTORECONF = YES LIBTEAM_INSTALL_STAGING = YES # Note: this enables basic team support, use a custom kernel config, or # fragment, to enable team modes, e.g. activebackup or loadbalance define LIBTEAM_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_NETDEVICES) $(call KCONFIG_ENABLE_OPT,CONFIG_NET_CORE) $(call KCONFIG_ENABLE_OPT,CONFIG_NET_TEAM) endef $(eval $(autotools-package)) ================================================ FILE: package/libtelnet/0001-fix-compilation-without-zlib.patch ================================================ From 1670ca128118be1d914fc89223e94c4cff1bbf03 Mon Sep 17 00:00:00 2001 From: Jan Heylen Date: Wed, 25 Oct 2017 06:45:49 +0200 Subject: [PATCH] Fix compilation without zlib libtelnet source code uses '#if defived(HAVE_ZLIB)' as conditional flag for optional compression support. But the configure(.ac) script does not play well with this: it will define 'HAVE_ZLIB' to either 1 (zlib present) or 0 (zlib not present). For the C preprocessor, both cases mean 'defined'. As a result, compilation will fail when trying to include zlib.h, which is missing. Signed-off-by: Jan Heylen Signed-off-by: Thomas De Schampheleire --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Upstream-status: upstream has changed to cmake iso autotools (but not yet released) [1] and a pull request exists to fix several issues with that, including correct handling of zlib detection [2]. [1] https://github.com/seanmiddleditch/libtelnet/commit/4860d10da44929554895c0ef83274f38de68e958 [2] https://github.com/seanmiddleditch/libtelnet/pull/54 diff --git a/configure.ac b/configure.ac index 021b48f..c4dac8b 100644 --- a/configure.ac +++ b/configure.ac @@ -33,7 +33,7 @@ AC_HEADER_STDC PKG_CHECK_MODULES([zlib], [zlib], [AC_DEFINE([HAVE_ZLIB], [1], [Define to 1 if you have zlib.])], - [AC_DEFINE([HAVE_ZLIB], [0], [Define to 1 if you have zlib.])]) + [AC_MSG_NOTICE([not enabling zlib support])]) # Checks for header files. -- 2.7.4 ================================================ FILE: package/libtelnet/Config.in ================================================ config BR2_PACKAGE_LIBTELNET bool "libtelnet" help libtelnet provides safe and correct handling of the core TELNET protocol. In addition to the base TELNET protocol, libtelnet also implements the Q method of TELNET option negotiation. libtelnet can be used for writing servers, clients, or proxies. https://github.com/seanmiddleditch/libtelnet ================================================ FILE: package/libtelnet/libtelnet.hash ================================================ # Locally computed sha256 d2f01a9dc0cc01777844b6d27f0f836dad9a4b9a32a31c7bbde0762480262f25 libtelnet-0.23.tar.gz sha256 b1faf309467bc1d0aab9b42d6e86a614e78f8fe3580e289966b5b9f9a8f94d99 COPYING ================================================ FILE: package/libtelnet/libtelnet.mk ================================================ ################################################################################ # # libtelnet # ################################################################################ LIBTELNET_VERSION = 0.23 LIBTELNET_SITE = https://github.com/seanmiddleditch/libtelnet/releases/download/$(LIBTELNET_VERSION) LIBTELNET_INSTALL_STAGING = YES LIBTELNET_CONF_OPTS = --disable-util LIBTELNET_DEPENDENCIES = host-pkgconf LIBTELNET_LICENSE = Public domain LIBTELNET_LICENSE_FILES = COPYING # for 0001-fix-compilation-without-zlib.patch LIBTELNET_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/libtextstyle/libtextstyle.hash ================================================ # From https://lists.gnu.org/archive/html/info-gnu/2019-05/msg00011.html sha1 62f4a6a2fd5f80bfd0e66c497a04094fa3e07b90 gettext-0.20.1.tar.xz # Locally calculated sha256 53f02fbbec9e798b0faaf7c73272f83608e835c6288dd58be6c9bb54624a3800 gettext-0.20.1.tar.xz sha256 e79e9c8a0c85d735ff98185918ec94ed7d175efc377012787aebcf3b80f0d90b COPYING ================================================ FILE: package/libtextstyle/libtextstyle.mk ================================================ ################################################################################ # # libtextstyle # ################################################################################ # Please keep in sync with package/gettext-gnu/gettext-gnu.mk LIBTEXTSTYLE_VERSION = 0.20.1 LIBTEXTSTYLE_SITE = $(BR2_GNU_MIRROR)/gettext LIBTEXTSTYLE_SOURCE = gettext-$(LIBTEXTSTYLE_VERSION).tar.xz LIBTEXTSTYLE_INSTALL_STAGING = YES LIBTEXTSTYLE_LICENSE = GPL-3.0+ LIBTEXTSTYLE_LICENSE_FILES = COPYING HOST_LIBTEXTSTYLE_DL_SUBDIR = gettext-gnu HOST_LIBTEXTSTYLE_SUBDIR = libtextstyle # gettext-tools require libtextstyle.m4 define HOST_LIBTEXTSTYLE_INSTALL_M4 $(INSTALL) -D -m 0755 $(@D)/libtextstyle/m4/libtextstyle.m4 \ $(ACLOCAL_HOST_DIR)/libtextstyle.m4 endef HOST_LIBTEXTSTYLE_POST_INSTALL_HOOKS += HOST_LIBTEXTSTYLE_INSTALL_M4 $(eval $(host-autotools-package)) ================================================ FILE: package/libtheora/0001-link-libtheoradec.patch ================================================ libtheoraenc.so needs to be linked to libtheoradec.so in order to avoid symbol 'th_comment_query_count': can't resolve symbol in lib '/usr/lib/libtheoraenc.so.1' when starting Freeswitch. Patch downloaded from http://www.sisyphus.ru/en/srpm/Sisyphus/libtheora/patches/0 Signed-off-by: Bernd Kuhls --- libtheora/lib/Makefile.am +++ libtheora/lib/Makefile.am @@ -153,6 +153,7 @@ libtheoraenc_la_SOURCES = \ libtheoraenc_la_LDFLAGS = \ -version-info @THENC_LIB_CURRENT@:@THENC_LIB_REVISION@:@THENC_LIB_AGE@ \ @THEORAENC_LDFLAGS@ $(OGG_LIBS) +libtheoraenc_la_LIBADD = libtheoradec.la libtheora_la_SOURCES = \ $(decoder_sources) \ ================================================ FILE: package/libtheora/0002-fix-autoreconf.patch ================================================ Fix broken autoreconf Downloaded from upstream git https://git.xiph.org/?p=theora.git;a=commitdiff;h=28cc6dbd9b2a141df94f60993256a5fca368fa54 Signed-off-by: Bernd Kuhls From: Tim Terriberry Date: Fri, 20 May 2011 20:41:50 +0000 (+0000) Subject: Make autoreconf -i -f work. X-Git-Url: https://git.xiph.org/?p=theora.git;a=commitdiff_plain;h=28cc6dbd9b2a141df94f60993256a5fca368fa54 Make autoreconf -i -f work. Patch from David Schleef. svn path=/trunk/theora/; revision=17990 --- diff --git a/Makefile.am b/Makefile.am index 89fd753..1783857 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,6 +4,8 @@ #AUTOMAKE_OPTIONS = foreign 1.7 dist-zip dist-bzip2 AUTOMAKE_OPTIONS = foreign 1.11 dist-zip dist-xz +ACLOCAL_AMFLAGS=-I m4 + if THEORA_ENABLE_EXAMPLES EXAMPLES_DIR = examples else diff --git a/configure.ac b/configure.ac index 1cbec1a..456b603 100644 --- a/configure.ac +++ b/configure.ac @@ -68,7 +68,7 @@ AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL dnl Add parameters for aclocal -AC_SUBST(ACLOCAL_AMFLAGS, "-I m4") +AC_CONFIG_MACRO_DIR([m4]) dnl Check for doxygen AC_ARG_ENABLE([doc], ================================================ FILE: package/libtheora/Config.in ================================================ config BR2_PACKAGE_LIBTHEORA bool "libtheora" select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_LIBVORBIS help A library for the free and open video compression format "Theora" from the Xiph.org Foundation. http://www.theora.org/ ================================================ FILE: package/libtheora/libtheora.hash ================================================ # From http://downloads.xiph.org/releases/theora/SHA256SUMS sha256 f36da409947aa2b3dcc6af0a8c2e3144bc19db2ed547d64e9171c59c66561c61 libtheora-1.1.1.tar.xz # Locally calculated sha256 8417fad7da775735564e209484a2e011e0fa201e94f01fdbee6e4977e478e6fc COPYING sha256 654a0238f789f4435c4818f50005b141d013c5a09a31d861efc1d0d67ba975a4 LICENSE ================================================ FILE: package/libtheora/libtheora.mk ================================================ ################################################################################ # # libtheora # ################################################################################ LIBTHEORA_VERSION = 1.1.1 LIBTHEORA_SOURCE = libtheora-$(LIBTHEORA_VERSION).tar.xz LIBTHEORA_SITE = http://downloads.xiph.org/releases/theora LIBTHEORA_INSTALL_STAGING = YES # We're patching Makefile.am LIBTHEORA_AUTORECONF = YES LIBTHEORA_LICENSE = BSD-3-Clause LIBTHEORA_LICENSE_FILES = COPYING LICENSE LIBTHEORA_CONF_OPTS = \ --disable-oggtest \ --disable-vorbistest \ --disable-sdltest \ --disable-examples \ --disable-spec LIBTHEORA_DEPENDENCIES = libogg libvorbis host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/libtirpc/Config.in ================================================ config BR2_PACKAGE_LIBTIRPC bool "libtirpc" depends on BR2_TOOLCHAIN_HAS_THREADS help Libtirpc is a port of Sun's Transport-Independent RPC library to Linux. http://sourceforge.net/projects/libtirpc/ config BR2_PACKAGE_LIBTIRPC_GSS bool "gss" depends on BR2_USE_MMU # libkrb5 depends on !BR2_STATIC_LIBS # libkrb5 depends on BR2_PACKAGE_LIBTIRPC select BR2_PACKAGE_LIBKRB5 help Enable GSSAPI support comment "libtirpc needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS comment "libtirpc gss support needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS depends on BR2_PACKAGE_LIBTIRPC ================================================ FILE: package/libtirpc/libtirpc.hash ================================================ # From sourceforge's info on download page: sha1 51d75be0e5acc094a888f40042b23e128d163cb5 libtirpc-1.3.2.tar.bz2 # Locally computed sha256 e24eb88b8ce7db3b7ca6eb80115dd1284abc5ec32a8deccfed2224fc2532b9fd libtirpc-1.3.2.tar.bz2 sha256 17cf6098f95bdbb269f0bbc68e76c88fe20487ca7ec53f454923ab4256ecd2e7 COPYING ================================================ FILE: package/libtirpc/libtirpc.mk ================================================ ################################################################################ # # libtirpc # ################################################################################ LIBTIRPC_VERSION = 1.3.2 LIBTIRPC_SOURCE = libtirpc-$(LIBTIRPC_VERSION).tar.bz2 LIBTIRPC_SITE = http://downloads.sourceforge.net/project/libtirpc/libtirpc/$(LIBTIRPC_VERSION) LIBTIRPC_LICENSE = BSD-3-Clause LIBTIRPC_LICENSE_FILES = COPYING LIBTIRPC_CPE_ID_VENDOR = libtirpc_project LIBTIRPC_INSTALL_STAGING = YES # getrpcby{number,name} are only provided if 'GQ' is defined LIBTIRPC_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -DGQ" ifeq ($(BR2_PACKAGE_LIBTIRPC_GSS),y) LIBTIRPC_CONF_ENV += KRB5_CONFIG=$(STAGING_DIR)/usr/bin/krb5-config LIBTIRPC_CONF_OPTS += --enable-gssapi LIBTIRPC_DEPENDENCIES += libkrb5 else LIBTIRPC_CONF_OPTS += --disable-gssapi endif HOST_LIBTIRPC_CONF_OPTS = --disable-gssapi $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libtomcrypt/0001-fix-CVE-2019-17362.patch ================================================ From 25c26a3b7a9ad8192ccc923e15cf62bf0108ef94 Mon Sep 17 00:00:00 2001 From: werew Date: Thu, 3 Oct 2019 19:57:10 +0200 Subject: [PATCH] Fixes #507 Fix a vulnerability in der_decode_utf8_string as specified here: https://github.com/libtom/libtomcrypt/issues/507 [for import into Buildroot] Signed-off-by: Thomas De Schampheleire --- src/pk/asn1/der/utf8/der_decode_utf8_string.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pk/asn1/der/utf8/der_decode_utf8_string.c b/src/pk/asn1/der/utf8/der_decode_utf8_string.c index 94555b99f..d3ed82bea 100644 --- a/src/pk/asn1/der/utf8/der_decode_utf8_string.c +++ b/src/pk/asn1/der/utf8/der_decode_utf8_string.c @@ -65,7 +65,7 @@ int der_decode_utf8_string(const unsigned char *in, unsigned long inlen, /* count number of bytes */ for (z = 0; (tmp & 0x80) && (z <= 4); z++, tmp = (tmp << 1) & 0xFF); - if (z > 4 || (x + (z - 1) > inlen)) { + if (z == 1 || z > 4 || (x + (z - 1) > inlen)) { return CRYPT_INVALID_PACKET; } ================================================ FILE: package/libtomcrypt/Config.in ================================================ 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. https://www.libtom.net ================================================ FILE: package/libtomcrypt/libtomcrypt.hash ================================================ # Locally computed sha256 96ad4c3b8336050993c5bc2cf6c057484f2b0f9f763448151567fbab5e767b84 crypt-1.18.2.tar.xz # Hash for license file: sha256 8f196cb13afd271f5e267fd29543fc454596382ad580e7592709492843996ac8 LICENSE ================================================ FILE: package/libtomcrypt/libtomcrypt.mk ================================================ ################################################################################ # # libtomcrypt # ################################################################################ LIBTOMCRYPT_VERSION = 1.18.2 LIBTOMCRYPT_SITE = https://github.com/libtom/libtomcrypt/releases/download/v$(LIBTOMCRYPT_VERSION) LIBTOMCRYPT_SOURCE = crypt-$(LIBTOMCRYPT_VERSION).tar.xz LIBTOMCRYPT_LICENSE = WTFPL LIBTOMCRYPT_LICENSE_FILES = LICENSE LIBTOMCRYPT_CPE_ID_VENDOR = libtom LIBTOMCRYPT_INSTALL_STAGING = YES LIBTOMCRYPT_INSTALL_TARGET = NO # only static library LIBTOMCRYPT_DEPENDENCIES = libtommath # 0001-fix-CVE-2019-17362.patch LIBTOMCRYPT_IGNORE_CVES += CVE-2019-17362 LIBTOMCRYPT_CFLAGS = -I./src/headers $(TARGET_CFLAGS) -DLTC_SOURCE -DLTM_DESC ifeq ($(BR2_STATIC_LIBS),) LIBTOMCRYPT_CFLAGS += -fPIC endif define LIBTOMCRYPT_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) -f makefile.unix $(TARGET_CONFIGURE_OPTS) CFLAGS="$(LIBTOMCRYPT_CFLAGS)" endef define LIBTOMCRYPT_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) -f makefile.unix \ DESTDIR="$(STAGING_DIR)" PREFIX=/usr install endef $(eval $(generic-package)) ================================================ FILE: package/libtommath/0001-Build-test-bn_mp_set_double-c-on-more-platforms.patch ================================================ From 4e90f3185aea9160c28f3eaec5625b67fc0f67db Mon Sep 17 00:00:00 2001 From: Daniel Green Date: Sun, 9 Feb 2020 11:06:53 -0500 Subject: [PATCH] Build+test bn_mp_set_double.c on more platforms Not all platforms/environments/architectures that support enough of IEEE 754 for the purposes of mp_set_double() actually support enough to legitimately define __STDC_IEC_559__, so only relying on that is too strict. Fixes https://github.com/libtom/libtommath/issues/159 Signed-off-by: Fabrice Fontaine [Retrieved (and backported) from: https://github.com/libtom/libtommath/commit/4e90f3185aea9160c28f3eaec5625b67fc0f67db] --- demo/test.c | 2 +- bn_mp_set_double.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/demo/test.c b/demo/test.c index 998f14b3..f719709d 100644 --- a/demo/test.c +++ b/demo/test.c @@ -522,7 +522,7 @@ static int test_mp_invmod(void) } -#if defined(__STDC_IEC_559__) || defined(__GCC_IEC_559) +#if defined(__STDC_IEC_559__) || defined(__GCC_IEC_559) || defined(__x86_64__) || defined(_M_X64) || defined(_M_AMD64) || defined(__i386__) || defined(_M_X86) || defined(__aarch64__) || defined(__arm__) static int test_mp_set_double(void) { int i; diff --git a/mp_set_double.c b/mp_set_double.c index 78550c8f..cdc644d9 100644 --- a/bn_mp_set_double.c +++ b/bn_mp_set_double.c @@ -3,7 +3,7 @@ /* LibTomMath, multiple-precision integer library -- Tom St Denis */ /* SPDX-License-Identifier: Unlicense */ -#if defined(__STDC_IEC_559__) || defined(__GCC_IEC_559) +#if defined(__STDC_IEC_559__) || defined(__GCC_IEC_559) || defined(__x86_64__) || defined(_M_X64) || defined(_M_AMD64) || defined(__i386__) || defined(_M_X86) || defined(__aarch64__) || defined(__arm__) mp_err mp_set_double(mp_int *a, double b) { uint64_t frac; ================================================ FILE: package/libtommath/Config.in ================================================ 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 ================================================ FILE: package/libtommath/libtommath.hash ================================================ # Locally computed sha256 b7c75eecf680219484055fcedd686064409254ae44bc31a96c5032843c0e18b1 ltm-1.2.0.tar.xz # Hashes for license files: sha256 2fa64b163659f41965c9815882a8296d3d03ff546b76153e11445f9bdecf955a LICENSE ================================================ FILE: package/libtommath/libtommath.mk ================================================ ################################################################################ # # libtommath # ################################################################################ LIBTOMMATH_VERSION = 1.2.0 LIBTOMMATH_SITE = https://github.com/libtom/libtommath/releases/download/v$(LIBTOMMATH_VERSION) LIBTOMMATH_SOURCE = ltm-$(LIBTOMMATH_VERSION).tar.xz LIBTOMMATH_LICENSE = Unlicense LIBTOMMATH_LICENSE_FILES = LICENSE LIBTOMMATH_INSTALL_STAGING = YES LIBTOMMATH_INSTALL_TARGET = NO # only static library define LIBTOMMATH_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) CFLAGS="-I./ -fPIC $(TARGET_CFLAGS)" endef define LIBTOMMATH_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(STAGING_DIR)" PREFIX=/usr install endef $(eval $(generic-package)) ================================================ FILE: package/libtool/Config.in ================================================ config BR2_PACKAGE_LIBTOOL bool "libtool" help Library that hides the complexity of using shared/static libraries on different platforms behind a consistent, portable interface. http://www.gnu.org/software/libtool/ ================================================ FILE: package/libtool/libtool.hash ================================================ # Locally calculated after checking pgp signature sha256 7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f libtool-2.4.6.tar.xz # License files, locally calculated sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 libltdl/COPYING.LIB ================================================ FILE: package/libtool/libtool.mk ================================================ ################################################################################ # # libtool # ################################################################################ LIBTOOL_VERSION = 2.4.6 LIBTOOL_SOURCE = libtool-$(LIBTOOL_VERSION).tar.xz LIBTOOL_SITE = $(BR2_GNU_MIRROR)/libtool LIBTOOL_CPE_ID_VENDOR = gnu # For the target variant, we only want to build/install libltdl LIBTOOL_SUBDIR = libltdl HOST_LIBTOOL_SUBDIR = . LIBTOOL_INSTALL_STAGING = YES LIBTOOL_CONF_OPTS = --enable-ltdl-install LIBTOOL_DEPENDENCIES = host-m4 HOST_LIBTOOL_DEPENDENCIES = host-m4 LIBTOOL_LICENSE = LGPL-2.1+ LIBTOOL_LICENSE_FILES = $(LIBTOOL_SUBDIR)/COPYING.LIB HOST_LIBTOOL_LICENSE = GPL-2.0+ (libtool), LGPL-2.1+ (libltdl) HOST_LIBTOOL_LICENSE_FILES = COPYING $(LIBTOOL_SUBDIR)/COPYING.LIB HOST_LIBTOOL_CONF_ENV = MAKEINFO=true HOST_LIBTOOL_LIBTOOL_PATCH = NO # We have a patch that affects libtool.m4, which triggers an autoreconf # in the build step. Normally we would set AUTORECONF = YES, but this # doesn't work for host-libtool because that creates a circular # dependency. Instead, touch the generated files so autoreconf is not # triggered in the build step. Note that aclocal.m4 has to be touched # first since the rest depends on it. Note that we don't need the changes # in libtool.m4 in our configure script, because we're not actually # running it on the target. # For the target, we would normally be able to use AUTORECONF, but it # fails on libltdl/Makefile.inc. Rather than trying to fix that failure, # just use the same hack as on the host. define LIBTOOL_AVOID_AUTORECONF_HOOK find $(@D) -name aclocal.m4 -exec touch '{}' \; find $(@D) -name config-h.in -exec touch '{}' \; find $(@D) -name configure -exec touch '{}' \; find $(@D) -name Makefile.in -exec touch '{}' \; endef LIBTOOL_PRE_CONFIGURE_HOOKS += LIBTOOL_AVOID_AUTORECONF_HOOK HOST_LIBTOOL_PRE_CONFIGURE_HOOKS += LIBTOOL_AVOID_AUTORECONF_HOOK $(eval $(autotools-package)) $(eval $(host-autotools-package)) # variables used by other packages LIBTOOL = $(HOST_DIR)/bin/libtool LIBTOOLIZE = $(HOST_DIR)/bin/libtoolize ================================================ FILE: package/libtorrent/0001-libtorrent.pc.in-add-Libs.Private.patch ================================================ From a86219e725441eb87321fa3e24531dafa54ee674 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 20 Oct 2019 20:23:19 +0200 Subject: [PATCH] libtorrent.pc.in: add Libs.Private Add Libs.Private: -lz so applications that want to link statically with libtorrent (such as rtorrent) will know that they must link with -lz Fixes: - http://autobuild.buildroot.org/results/075598e1699c2ac20a4dfbcb5695bbb7343f9a86 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/rakshasa/libtorrent/pull/202] --- libtorrent.pc.in | 1 + 1 file changed, 1 insertion(+) diff --git a/libtorrent.pc.in b/libtorrent.pc.in index cf6612bc..6108f7e9 100644 --- a/libtorrent.pc.in +++ b/libtorrent.pc.in @@ -7,4 +7,5 @@ Name: libtorrent Description: A BitTorrent library Version: @VERSION@ Libs: -L${libdir} -ltorrent +Libs.Private: -lz Cflags: -I${includedir} -- 2.23.0 ================================================ FILE: package/libtorrent/Config.in ================================================ config BR2_PACKAGE_LIBTORRENT bool "libtorrent" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HAS_SYNC_1 && BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_ZLIB select BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4 if BR2_PACKAGE_LIBOPENSSL help BitTorrent library written in C++ for *nix https://github.com/rakshasa/libtorrent comment "libtorrent needs a toolchain w/ C++, threads" depends on BR2_TOOLCHAIN_HAS_SYNC_1 && BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libtorrent/libtorrent.hash ================================================ # Locally calculated sha256 ed115a28f4ae8cfcd33b94a597c076ca74fd549867a26e4fac9505c27288e983 libtorrent-0.13.8.tar.gz sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/libtorrent/libtorrent.mk ================================================ ################################################################################ # # libtorrent # ################################################################################ LIBTORRENT_VERSION = 0.13.8 LIBTORRENT_SITE = http://rtorrent.net/downloads LIBTORRENT_DEPENDENCIES = host-pkgconf zlib LIBTORRENT_CONF_OPTS = --enable-aligned \ --disable-instrumentation \ --with-zlib=$(STAGING_DIR)/usr LIBTORRENT_INSTALL_STAGING = YES LIBTORRENT_LICENSE = GPL-2.0 LIBTORRENT_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBTORRENT_CONF_OPTS += --enable-openssl LIBTORRENT_DEPENDENCIES += openssl else LIBTORRENT_CONF_OPTS += --disable-openssl endif $(eval $(autotools-package)) ================================================ FILE: package/libtorrent-rasterbar/Config.in ================================================ comment "libtorrent-rasterbar needs a toolchain w/ C++, threads, wchar, gcc >= 4.9" depends on BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 comment "libtorrent-rasterbar needs exception_ptr" depends on BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 config BR2_PACKAGE_LIBTORRENT_RASTERBAR bool "libtorrent-rasterbar" depends on BR2_INSTALL_LIBSTDCPP # boost depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS # boost depends on BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK depends on BR2_USE_WCHAR # boost depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_OPENSSL help libtorrent is a feature complete C++ bittorrent implementation focusing on efficiency and scalability. https://www.libtorrent.org/ ================================================ FILE: package/libtorrent-rasterbar/libtorrent-rasterbar.hash ================================================ # Locally calculated sha256 c3744ac9fa41f6e6ebf79538a2ea678df76a2cbbaf3ac6ae2c05455314e5cce8 libtorrent-rasterbar-1.2.12.tar.gz sha256 f3a5dd1558cce616b12edad521427ec8976ce2bb0af33f7f359cfa648bf55ad8 COPYING ================================================ FILE: package/libtorrent-rasterbar/libtorrent-rasterbar.mk ================================================ ################################################################################ # # libtorrent-rasterbar # ################################################################################ LIBTORRENT_RASTERBAR_VERSION = 1.2.12 LIBTORRENT_RASTERBAR_SITE = \ https://github.com/arvidn/libtorrent/releases/download/v$(LIBTORRENT_RASTERBAR_VERSION) LIBTORRENT_RASTERBAR_LICENSE = BSD-3-Clause LIBTORRENT_RASTERBAR_LICENSE_FILES = COPYING LIBTORRENT_RASTERBAR_CPE_ID_VENDOR = libtorrent LIBTORRENT_RASTERBAR_CPE_ID_PRODUCT = libtorrent LIBTORRENT_RASTERBAR_DEPENDENCIES = host-pkgconf boost openssl LIBTORRENT_RASTERBAR_INSTALL_STAGING = YES LIBTORRENT_RASTERBAR_CONF_OPTS = \ --with-boost-libdir=$(STAGING_DIR)/usr/lib \ --disable-invariant-checks LIBTORRENT_RASTERBAR_CXXFLAGS = $(TARGET_CXXFLAGS) -std=c++11 # Internal error, aborting at dwarf2cfi.c:2802 in connect_traces # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58864 ifeq ($(BR2_m68k_cf),y) LIBTORRENT_RASTERBAR_CXXFLAGS += -fno-defer-pop endif ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) LIBTORRENT_RASTERBAR_CXXFLAGS += -O0 endif LIBTORRENT_RASTERBAR_CONF_OPTS += CXXFLAGS="$(LIBTORRENT_RASTERBAR_CXXFLAGS)" ifeq ($(BR2_ENABLE_LOCALE)$(BR2_PACKAGE_LIBICONV),y) LIBTORRENT_RASTERBAR_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv) LIBTORRENT_RASTERBAR_CONF_OPTS += --with-libiconv else LIBTORRENT_RASTERBAR_CONF_OPTS += --without-libiconv endif $(eval $(autotools-package)) ================================================ FILE: package/libtpl/Config.in ================================================ config BR2_PACKAGE_LIBTPL bool "libtpl" help Easily store and retrieve binary data in C http://troydhanson.github.io/tpl/ ================================================ FILE: package/libtpl/libtpl.hash ================================================ # Locally calculated sha256 0b3750bf62f56be4c42f83c89d8449b24f1c5f1605a104801d70f2f3c06fb2ff libtpl-1.6.1.tar.gz sha256 8554ddb5779f1ad2f3ea6db1d0df622e63fca11f44bfc3c8b3c207ea0482c746 LICENSE ================================================ FILE: package/libtpl/libtpl.mk ================================================ ################################################################################ # # libtpl # ################################################################################ LIBTPL_VERSION = 1.6.1 LIBTPL_SITE = $(call github,troydhanson,tpl,v$(LIBTPL_VERSION)) LIBTPL_INSTALL_STAGING = YES LIBTPL_LICENSE = BSD-like LIBTPL_LICENSE_FILES = LICENSE LIBTPL_AUTORECONF = YES define LIBTPL_CREATE_MISSING_FILES touch $(@D)/NEWS $(@D)/AUTHORS $(@D)/ChangeLog $(@D)/COPYING endef LIBTPL_POST_EXTRACT_HOOKS += LIBTPL_CREATE_MISSING_FILES $(eval $(autotools-package)) ================================================ FILE: package/libubootenv/0001-src-CMakeLists.txt-do-not-force-the-build-of-a-share.patch ================================================ From 5448ca9d92f7fa197060323a82a5f060ce7c31e7 Mon Sep 17 00:00:00 2001 From: Pierre-Jean Texier Date: Wed, 22 May 2019 10:26:27 +0200 Subject: [PATCH] src/CMakeLists.txt: do not force the build of a shared library By definition, projects using CMake which can build either static or shared libraries use a BUILD_SHARED_LIBS flag to allow selecting between both. So, let CMake rely on the standard BUILD_SHARED_LIBS variable to decide whether a static or shared library should be built. however, we can control the behaviour as follows: $. cmake -DBUILD_SHARED_LIBS=OFF ... $. cmake -DBUILS_SHARED_LIBS=ON ... With Yocto/OE, just add the following option into the libubootenv recipe : EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON" Signed-off-by: Pierre-Jean Texier [Upstream status: http://patchwork.ozlabs.org/patch/1103437/] --- src/CMakeLists.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4b71bc5..0b515f4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,18 +12,16 @@ SET(include_HEADERS include(GNUInstallDirs) # for the CMAKE_INSTALL_LIBDIR variable -add_library(ubootenv SHARED ${libubootenv_SOURCES} ${include_HEADERS}) +add_library(ubootenv ${libubootenv_SOURCES} ${include_HEADERS}) SET_TARGET_PROPERTIES(ubootenv PROPERTIES VERSION ${VERSION} SOVERSION ${SOVERSION}) -ADD_LIBRARY(ubootenv_static STATIC ${libubootenv_SOURCES} ${include_HEADERS}) -SET_TARGET_PROPERTIES(ubootenv_static PROPERTIES OUTPUT_NAME ubootenv) add_executable(fw_printenv fw_printenv.c) add_executable(fw_setenv fw_setenv.c) target_link_libraries(ubootenv z) target_link_libraries(fw_printenv ubootenv) target_link_libraries(fw_setenv ubootenv) -install (TARGETS ubootenv ubootenv_static DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install (TARGETS ubootenv DESTINATION ${CMAKE_INSTALL_LIBDIR}) install (FILES libuboot.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install (TARGETS fw_printenv DESTINATION ${CMAKE_INSTALL_BINDIR}) install (TARGETS fw_setenv DESTINATION ${CMAKE_INSTALL_BINDIR}) -- 2.30.2 ================================================ FILE: package/libubootenv/Config.in ================================================ config BR2_PACKAGE_LIBUBOOTENV bool "libubootenv" select BR2_PACKAGE_ZLIB help libubootenv is a library that provides a hardware independent way to access to U-Boot environment. The package provides the fw_printenv / fw_setenv utilities, new tools build from the library and not from U-Boot. https://github.com/sbabic/libubootenv/ ================================================ FILE: package/libubootenv/libubootenv.hash ================================================ # Locally calculated sha256 760fe53ca20ced93a09dea0f123eb429c820b565c103920afa738873e8cd16b7 libubootenv-7dbfffa4cc0e42ad3febb122a711fe9d1b20e9f7.tar.gz sha256 0558101984550fa84d1d13c2af11d116c20079d2be58711e8d99cadce7009192 LICENSES/CC0-1.0.txt sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSES/LGPL-2.1-or-later.txt sha256 89807acf2309bd285f033404ee78581602f3cd9b819a16ac2f0e5f60ff4a473e LICENSES/MIT.txt ================================================ FILE: package/libubootenv/libubootenv.mk ================================================ ################################################################################ # # libubootenv # ################################################################################ LIBUBOOTENV_VERSION = 7dbfffa4cc0e42ad3febb122a711fe9d1b20e9f7 LIBUBOOTENV_SITE = $(call github,sbabic,libubootenv,$(LIBUBOOTENV_VERSION)) LIBUBOOTENV_LICENSE = LGPL-2.1+, MIT, CC0-1.0 LIBUBOOTENV_LICENSE_FILES = LICENSES/CC0-1.0.txt \ LICENSES/LGPL-2.1-or-later.txt \ LICENSES/MIT.txt LIBUBOOTENV_INSTALL_STAGING = YES LIBUBOOTENV_DEPENDENCIES = zlib $(eval $(cmake-package)) ================================================ FILE: package/libubox/Config.in ================================================ config BR2_PACKAGE_LIBUBOX bool "libubox" depends on !BR2_STATIC_LIBS help This library originates from the OpenWrt project to handle the configuration file infrastructure, but can also be used for the same purposes in projects other than OpenWrt. https://openwrt.org/docs/techref/libubox comment "libubox needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libubox/libubox.hash ================================================ # Locally calculated sha256 54f65299439dab4be8f203588bcefd9b60052ae87d12c6d012f6278a2a111b4e libubox-d716ac4bc4236031d4c3cc1ed362b502e20e3787-br1.tar.gz ================================================ FILE: package/libubox/libubox.mk ================================================ ################################################################################ # # libubox # ################################################################################ LIBUBOX_VERSION = d716ac4bc4236031d4c3cc1ed362b502e20e3787 LIBUBOX_SITE = https://git.openwrt.org/project/libubox.git LIBUBOX_SITE_METHOD = git LIBUBOX_LICENSE = ISC, BSD-3-Clause LIBUBOX_INSTALL_STAGING = YES LIBUBOX_DEPENDENCIES = $(if $(BR2_PACKAGE_JSON_C),json-c) ifeq ($(BR2_USE_MMU)$(BR2_PACKAGE_LUA_5_1),yy) LIBUBOX_DEPENDENCIES += lua LIBUBOX_CONF_OPTS += -DBUILD_LUA=ON \ -DLUAPATH=/usr/lib/lua/5.1 \ -DLUA_CFLAGS=-I$(STAGING_DIR)/usr/include else LIBUBOX_CONF_OPTS += -DBUILD_LUA=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/libuci/Config.in ================================================ config BR2_PACKAGE_LIBUCI bool "libuci" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBUBOX help This library originates from the OpenWrt project to handle the configuration file infrastructure, but can also be used for the same purposes in projects other than OpenWrt. This package will also install CLI tool uci. https://openwrt.org/docs/techref/uci comment "libuci needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libuci/libuci.hash ================================================ # Locally computed sha256 4b4e3ef9c9f51c02a1985c63ff0e8fc1f3aafdf24491247a4dc33c993c3fa1ea libuci-4b3db1179747b6a6779029407984bacef851325c-br1.tar.gz sha256 39e1cc18a36172fb80d9b37f0af77d78ae935bd8a020978a7895d9e76a24e112 cli.c sha256 69d4eea4de19d27014f3d6ed723081b4039700bfd73cd0a5e39e2c4f19a58c66 libuci.c ================================================ FILE: package/libuci/libuci.mk ================================================ ################################################################################ # # libuci # ################################################################################ LIBUCI_VERSION = 4b3db1179747b6a6779029407984bacef851325c LIBUCI_SITE = https://git.openwrt.org/project/uci.git LIBUCI_SITE_METHOD = git LIBUCI_LICENSE = LGPL-2.1, GPL-2.0 (tools) LIBUCI_LICENSE_FILES = cli.c libuci.c LIBUCI_CPE_ID_VENDOR = openwrt LIBUCI_INSTALL_STAGING = YES LIBUCI_DEPENDENCIES = libubox # Fixed in commit 19e29ffc15dbd958e8e6a648ee0982c68353516f, older than LIBUCI_VERSION LIBUCI_IGNORE_CVES += CVE-2019-15513 ifeq ($(BR2_PACKAGE_LUA_5_1),y) LIBUCI_DEPENDENCIES += lua LIBUCI_CONF_OPTS += -DBUILD_LUA=ON \ -DLUAPATH=/usr/lib/lua/5.1 \ -DLUA_CFLAGS=-I$(STAGING_DIR)/usr/include LIBUCI_LICENSE += , GPL-2.0 (lua bindings) else LIBUCI_CONF_OPTS += -DBUILD_LUA=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/libucl/Config.in ================================================ config BR2_PACKAGE_LIBUCL bool "libucl" help Universal configuration library parser Libucl is a parser and C API to parse and generate ucl objects. Libucl consist of several groups of functions: parser, emitting, conversion, generation, iteration, validation, and utility. These functions can be used to work with several formats: JSON, compact JSON, configuration (nginx like), and YAML. Libucl has clear design that should be very convenient for reading and writing and makes for an ideal parser with high performance. https://github.com/vstakhov/libucl ================================================ FILE: package/libucl/libucl.hash ================================================ # Locally calculated sha256 a6397e179672f0e8171a0f9a2cfc37e01432b357fd748b13f4394436689d24ef libucl-0.8.1.tar.gz sha256 1bf976835764c1d827e07472a0a75adb098682df56681878af05fc0db7439b03 COPYING ================================================ FILE: package/libucl/libucl.mk ================================================ ################################################################################ # # libucl # ################################################################################ LIBUCL_VERSION = 0.8.1 LIBUCL_SITE = $(call github,vstakhov,libucl,$(LIBUCL_VERSION)) LIBUCL_INSTALL_STAGING = YES LIBUCL_AUTORECONF = YES LIBUCL_LICENSE = BSD-2-Clause LIBUCL_LICENSE_FILES = COPYING LIBUCL_DEPENDENCIES = host-pkgconf ifeq ($(BR2_PACKAGE_LIBCURL),y) LIBUCL_DEPENDENCIES += libcurl LIBUCL_CONF_OPTS += --enable-urls else LIBUCL_CONF_OPTS += --disable-urls endif $(eval $(autotools-package)) ================================================ FILE: package/libudfread/Config.in ================================================ config BR2_PACKAGE_LIBUDFREAD bool "libudfread" help UDF reader https://code.videolan.org/videolan/libudfread ================================================ FILE: package/libudfread/libudfread.hash ================================================ # Locally computed sha256 cd062016d78902da53a34c4d536479dbb70b2a05116354d46ead4d0c498ed375 libudfread-1.1.2.tar.bz2 sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/libudfread/libudfread.mk ================================================ ################################################################################ # # libudfread # ################################################################################ LIBUDFREAD_VERSION = 1.1.2 LIBUDFREAD_SOURCE = libudfread-$(LIBUDFREAD_VERSION).tar.bz2 LIBUDFREAD_SITE = https://code.videolan.org/videolan/libudfread/-/archive/$(LIBUDFREAD_VERSION) LIBUDFREAD_AUTORECONF = YES LIBUDFREAD_INSTALL_STAGING = YES LIBUDFREAD_LICENSE = LGPL-2.1+ LIBUDFREAD_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/libuecc/Config.in ================================================ config BR2_PACKAGE_LIBUECC bool "libuecc" depends on !BR2_STATIC_LIBS help Very small Elliptic Curve Cryptography library http://git.universe-factory.net/libuecc comment "libuecc needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libuecc/libuecc.hash ================================================ # from https://projects.universe-factory.net/projects/fastd/files md5 5cd543cb8e7bce83a22c07a0579c95a1 libuecc-7.tar.xz # computed locally sha256 b94aef08eab5359d0facaa7ead2ce81b193eef0c61379d9835213ebc0a46257a libuecc-7.tar.xz sha256 ec4d9fcc3a37a7998a9ea4decf38f4c0c91a44fd05bb17638c52fe16f2b12e23 COPYRIGHT ================================================ FILE: package/libuecc/libuecc.mk ================================================ ################################################################################ # # libuecc # ################################################################################ LIBUECC_VERSION = 7 LIBUECC_SITE = https://projects.universe-factory.net/attachments/download/85 LIBUECC_SOURCE = libuecc-$(LIBUECC_VERSION).tar.xz LIBUECC_LICENSE = BSD-2-Clause LIBUECC_LICENSE_FILES = COPYRIGHT LIBUECC_INSTALL_STAGING = YES $(eval $(cmake-package)) ================================================ FILE: package/libuev/Config.in ================================================ config BR2_PACKAGE_LIBUEV bool "libuev" help Simple event loop for Linux. https://github.com/troglobit/libuev ================================================ FILE: package/libuev/libuev.hash ================================================ # From https://github.com/troglobit/libuev/releases/download/v2.4.0/libuev-2.4.0.tar.xz.sha256 sha256 31f1aa4f492ba4f6a5dd6b19968ae6a732968dc05cae6575930560b6cee1f5ef libuev-2.4.0.tar.xz # License files sha256 694a734d9c1b46ae203314ed1c744a1acebd4fe5fc964b761703772546f0d3ab LICENSE ================================================ FILE: package/libuev/libuev.mk ================================================ ################################################################################ # # libuev # ################################################################################ LIBUEV_VERSION = 2.4.0 LIBUEV_SOURCE = libuev-$(LIBUEV_VERSION).tar.xz LIBUEV_SITE = https://github.com/troglobit/libuev/releases/download/v$(LIBUEV_VERSION) LIBUEV_LICENSE = MIT LIBUEV_LICENSE_FILES = LICENSE LIBUEV_INSTALL_STAGING = YES LIBUEV_CONF_OPTS = --disable-examples $(eval $(autotools-package)) ================================================ FILE: package/libuhttpd/0001-openssl.c-fix-build-with-wolfssl.patch ================================================ From e5c5ed1c64cfc715729c9bfbfdcc4be225f344ff Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 4 Aug 2021 11:32:39 +0200 Subject: [PATCH] openssl.c: fix build with wolfssl Fix the following build failure with wolfssl: /tmp/instance-4/output-1/build/libuhttpd-3.12.1/src/ssl/openssl.c: In function 'ssl_context_new': /tmp/instance-4/output-1/build/libuhttpd-3.12.1/src/ssl/openssl.c:174:33: error: 'tls13_ciphersuites' undeclared (first use in this function) 174 | SSL_CTX_set_ciphersuites(c, tls13_ciphersuites); | ^~~~~~~~~~~~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/d0fb629b40b05ad828775894fabed878692bb222 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/zhaojh329/ssl/pull/1] --- openssl.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openssl.c b/openssl.c index 8f3d8b7..c42638c 100644 --- a/src/ssl/openssl.c +++ b/src/ssl/openssl.c @@ -71,14 +71,14 @@ "TLS13-AES256-GCM-SHA384:" \ ecdhe_aead_ciphers #else -# define tls13_ciphersuites "TLS_CHACHA20_POLY1305_SHA256:" \ - "TLS_AES_128_GCM_SHA256:" \ - "TLS_AES_256_GCM_SHA384" - # define top_ciphers \ ecdhe_aead_ciphers #endif +# define tls13_ciphersuites "TLS_CHACHA20_POLY1305_SHA256:" \ + "TLS_AES_128_GCM_SHA256:" \ + "TLS_AES_256_GCM_SHA384" + #define ecdhe_aead_ciphers \ "ECDHE-ECDSA-CHACHA20-POLY1305:" \ "ECDHE-ECDSA-AES128-GCM-SHA256:" \ -- 2.30.2 ================================================ FILE: package/libuhttpd/Config.in ================================================ config BR2_PACKAGE_LIBUHTTPD bool "libuhttpd" select BR2_PACKAGE_LIBEV select BR2_PACKAGE_WOLFSSL_ALL if BR2_PACKAGE_WOLFSSL help A lightweight and fully asynchronous HTTP server library based on libev https://github.com/zhaojh329/libuhttpd ================================================ FILE: package/libuhttpd/libuhttpd.hash ================================================ # Locally calculated sha256 c234dd3d491c4daa047e28870c6e740529b2eff2dd027dafb6bf02d8dba286b0 libuhttpd-3.12.1.tar.gz sha256 99efed4bbc0b62f96f999ef23399e38234fb91651af734fd389a52b033a85b55 LICENSE ================================================ FILE: package/libuhttpd/libuhttpd.mk ================================================ ################################################################################ # # libuhttpd # ################################################################################ LIBUHTTPD_VERSION = 3.12.1 LIBUHTTPD_SITE = https://github.com/zhaojh329/libuhttpd/releases/download/v$(LIBUHTTPD_VERSION) LIBUHTTPD_LICENSE = MIT LIBUHTTPD_LICENSE_FILES = LICENSE LIBUHTTPD_INSTALL_STAGING = YES LIBUHTTPD_DEPENDENCIES = libev ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBUHTTPD_DEPENDENCIES += openssl LIBUHTTPD_CONF_OPTS += \ -DSSL_SUPPORT=ON \ -DUSE_MBEDTLS=OFF \ -DUSE_OPENSSL=ON \ -DUSE_WOLFSSL=OFF else ifeq ($(BR2_PACKAGE_WOLFSSL),y) LIBUHTTPD_DEPENDENCIES += wolfssl LIBUHTTPD_CONF_OPTS += \ -DSSL_SUPPORT=ON \ -DUSE_MBEDTLS=OFF \ -DUSE_OPENSSL=OFF \ -DUSE_WOLFSSL=ON else ifeq ($(BR2_PACKAGE_MBEDTLS),y) LIBUHTTPD_DEPENDENCIES += mbedtls LIBUHTTPD_CONF_OPTS += \ -DSSL_SUPPORT=ON \ -DUSE_MBEDTLS=ON \ -DUSE_OPENSSL=OFF \ -DUSE_WOLFSSL=OFF else LIBUHTTPD_CONF_OPTS += \ -DSSL_SUPPORT=OFF endif # BUILD_STATIC builds *only* the static lib, which is not what we want for # BR2_SHARED_STATIC. ifeq ($(BR2_STATIC_LIBS),y) LIBUHTTPD_CONF_OPTS += -DBUILD_STATIC=ON else LIBUHTTPD_CONF_OPTS += -DBUILD_STATIC=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/libuio/0001-configure-remove-po-Makefile.in.patch ================================================ 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 ================================================ FILE: package/libuio/Config.in ================================================ config BR2_PACKAGE_LIBUIO bool "libuio" select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL 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 ================================================ FILE: package/libuio/libuio.hash ================================================ # Locally calculated sha256 cb6d2ed1c6c7fd8e0e4a9cb1d81bd88f3af37bd239fdf8966b3cb3671ff6db86 libuio-6ef3d8d096a641686bfdd112035aa04aa16fe81a.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/libuio/libuio.mk ================================================ ################################################################################ # # libuio # ################################################################################ LIBUIO_VERSION = 6ef3d8d096a641686bfdd112035aa04aa16fe81a LIBUIO_SITE = $(call github,Linutronix,libuio,$(LIBUIO_VERSION)) LIBUIO_LICENSE = LGPL-2.1 (library), GPL-2.0 (programs) LIBUIO_LICENSE_FILES = COPYING LIBUIO_CONF_OPTS = --with-glib=no --without-werror LIBUIO_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) host-pkgconf LIBUIO_LIBS = $(TARGET_NLS_LIBS) 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_CONF_ENV += LIBS="$(LIBUIO_LIBS)" $(eval $(autotools-package)) ================================================ FILE: package/libunistring/Config.in ================================================ config BR2_PACKAGE_LIBUNISTRING bool "libunistring" depends on BR2_USE_WCHAR help The libunistring library provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard. http://www.gnu.org/software/libunistring/ comment "libunistring needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/libunistring/libunistring.hash ================================================ # Locally calculated after checking pgp signature # https://ftp.gnu.org/gnu/libunistring/libunistring-0.9.10.tar.xz.sig sha256 eb8fb2c3e4b6e2d336608377050892b54c3c983b646c561836550863003c05d7 libunistring-0.9.10.tar.xz # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING sha256 a853c2ffec17057872340eee242ae4d96cbf2b520ae27d903e1b2fef1a5f9d1c COPYING.LIB ================================================ FILE: package/libunistring/libunistring.mk ================================================ ################################################################################ # # libunistring # ################################################################################ LIBUNISTRING_VERSION = 0.9.10 LIBUNISTRING_SITE = $(BR2_GNU_MIRROR)/libunistring LIBUNISTRING_SOURCE = libunistring-$(LIBUNISTRING_VERSION).tar.xz LIBUNISTRING_INSTALL_STAGING = YES LIBUNISTRING_LICENSE = LGPL-3.0+ or GPL-2.0 LIBUNISTRING_LICENSE_FILES = COPYING COPYING.LIB LIBUNISTRING_CPE_ID_VENDOR = gnu $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libunwind/0001-Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch ================================================ From 24484e80b3e329c9edee1995e102f8612eedb79c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 13 May 2014 23:32:27 +0200 Subject: [PATCH] Add AO_REQUIRE_CAS to fix build on ARM < v6 ARM earlier than ARMv6, such as ARMv4 and ARMv5 do not provide optimize atomic operations in libatomic_ops. Since libunwind is using such operations, it should define AO_REQUIRE_CAS before including so that libatomic_ops knows it should use emulated atomic operations instead (even though they are obviously a lot more expensive). Also, while real atomic operations are all inline functions and therefore linking against libatomic_ops was not required, the emulated atomic operations actually require linking against libatomic_ops, so the commented AC_CHECK_LIB test in acinclude.m4 is uncommented to make sure we link against libatomic_ops. Signed-off-by: Thomas Petazzoni --- acinclude.m4 | 8 +------- include/libunwind_i.h | 1 + 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 497f7c2..9c15af1 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -22,11 +22,5 @@ fi]) AC_DEFUN([CHECK_ATOMIC_OPS], [dnl Check whether the system has the atomic_ops package installed. AC_CHECK_HEADERS(atomic_ops.h) -# -# Don't link against libatomic_ops for now. We don't want libunwind -# to depend on libatomic_ops.so. Fortunately, none of the platforms -# we care about so far need libatomic_ops.a (everything is done via -# inline macros). -# -# AC_CHECK_LIB(atomic_ops, main) + AC_CHECK_LIB(atomic_ops, main) ]) diff --git a/include/libunwind_i.h b/include/libunwind_i.h index 23f615e..deabdfd 100644 --- a/include/libunwind_i.h +++ b/include/libunwind_i.h @@ -95,6 +95,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ (pthread_mutex_unlock != NULL ? pthread_mutex_unlock (l) : 0) #ifdef HAVE_ATOMIC_OPS_H +# define AO_REQUIRE_CAS # include static inline int cmpxchg_ptr (void *addr, void *old, void *new) -- 1.9.2 ================================================ FILE: package/libunwind/Config.in ================================================ # libunwind is only available for a certain subset of the # architectures (as visible in the list of architectures supported # with the glibc C library below). # # In addition to this, on some architectures libunwind requires the # *context() function from the C library, which are only available on # certain architectures in uClibc, and not available at all on # musl. But on some other architectures, libunwind works without using # the *context() functions, which allows it to be built with musl. config BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS bool default y if BR2_TOOLCHAIN_USES_GLIBC && \ (BR2_ARM_CPU_HAS_ARM || BR2_aarch64 || BR2_mips || BR2_mipsel || \ BR2_mips64 || BR2_mips64el || BR2_powerpc || BR2_sh || \ BR2_i386 || BR2_x86_64) default y if BR2_TOOLCHAIN_USES_UCLIBC && \ (BR2_ARM_CPU_HAS_ARM || BR2_mips || BR2_mipsel || \ BR2_mips64 || BR2_mips64el || BR2_x86_64) default y if BR2_TOOLCHAIN_USES_MUSL && \ (BR2_ARM_CPU_HAS_ARM || BR2_aarch64 || BR2_x86_64) config BR2_PACKAGE_LIBUNWIND bool "libunwind" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS # forcefully links against libgcc_s, only available in dynamic # linking configurations depends on !BR2_STATIC_LIBS help C API to determine the call-chain of a program. http://www.nongnu.org/libunwind/index.html comment "libunwind needs a toolchain w/ threads, dynamic library" depends on BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libunwind/libunwind.hash ================================================ # Locally calculated after checking pgp signature sha256 90337653d92d4a13de590781371c604f9031cdb50520366aa1e3a91e1efb1017 libunwind-1.5.0.tar.gz # Hash for license file sha256 6a0dbbdaec2b3136b7bf045586f4212bdf74e7af688bf9dfe9154607cf5ec156 COPYING ================================================ FILE: package/libunwind/libunwind.mk ================================================ ################################################################################ # # libunwind # ################################################################################ LIBUNWIND_VERSION = 1.5.0 LIBUNWIND_SITE = http://download.savannah.gnu.org/releases/libunwind LIBUNWIND_INSTALL_STAGING = YES LIBUNWIND_LICENSE_FILES = COPYING LIBUNWIND_LICENSE = MIT LIBUNWIND_CPE_ID_VENDOR = libunwind_project LIBUNWIND_AUTORECONF = YES LIBUNWIND_CONF_OPTS = \ --disable-tests \ $(if $(BR2_INSTALL_LIBSTDCPP),--enable-cxx-exceptions,--disable-cxx-exceptions) ifeq ($(BR2_PACKAGE_LIBATOMIC_OPS),y) LIBUNWIND_DEPENDENCIES += libatomic_ops endif $(eval $(autotools-package)) ================================================ FILE: package/libupnp/Config.in ================================================ config BR2_PACKAGE_LIBUPNP bool "libupnp" depends on BR2_TOOLCHAIN_HAS_THREADS help The portable SDK for UPnP(tm) Devices (libupnp) provides developers with an API and open source code for building control points, devices, and bridges that are compliant with Version 1.0 of the Universal Plug and Play Device Architecture Specification http://pupnp.sourceforge.net/ comment "libupnp needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libupnp/libupnp.hash ================================================ # Locally computed: sha256 091c80aada1e939c2294245c122be2f5e337cc932af7f7d40504751680b5b5ac libupnp-1.14.12.tar.bz2 sha256 c8b99423cad48bb44e2cf52a496361404290865eac259a82da6d1e4331ececb3 COPYING ================================================ FILE: package/libupnp/libupnp.mk ================================================ ################################################################################ # # libupnp # ################################################################################ LIBUPNP_VERSION = 1.14.12 LIBUPNP_SOURCE = libupnp-$(LIBUPNP_VERSION).tar.bz2 LIBUPNP_SITE = \ http://downloads.sourceforge.net/project/pupnp/release-$(LIBUPNP_VERSION) LIBUPNP_CONF_ENV = ac_cv_lib_compat_ftime=no LIBUPNP_INSTALL_STAGING = YES LIBUPNP_LICENSE = BSD-3-Clause LIBUPNP_LICENSE_FILES = COPYING LIBUPNP_CPE_ID_VENDOR = libupnp_project LIBUPNP_DEPENDENCIES = host-pkgconf # Bind the internal miniserver socket with reuseaddr to allow clean restarts. LIBUPNP_CONF_OPTS += \ --disable-samples \ --enable-reuseaddr ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBUPNP_CONF_OPTS += --enable-open-ssl LIBUPNP_DEPENDENCIES += openssl else LIBUPNP_CONF_OPTS += --disable-open-ssl endif $(eval $(autotools-package)) ================================================ FILE: package/libupnpp/Config.in ================================================ config BR2_PACKAGE_LIBUPNPP bool "libupnpp" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # libnpupnp depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 select BR2_PACKAGE_EXPAT select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBNPUPNP help The libupnpp C++ library wraps libupnp for easier use by upmpdcli and upplay. http://www.lesbonscomptes.com/upmpdcli/ comment "libupnpp needs a toolchain w/ C++, threads, gcc >= 4.9" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/libupnpp/libupnpp.hash ================================================ # Hash from: http://www.lesbonscomptes.com/upmpdcli/downloads/libupnpp-0.21.0.tar.gz.sha256 sha256 e43dbe5020ed25152aaec71b325dd80498e72038da5aeb50ed7dd51e213cd903 libupnpp-0.21.0.tar.gz # Hash for license file: sha256 00a89b0d18aacd4114decf79122db87bf35bddaf2bc50e383c9c9f4c263390b2 COPYING ================================================ FILE: package/libupnpp/libupnpp.mk ================================================ ################################################################################ # # libupnpp # ################################################################################ LIBUPNPP_VERSION = 0.21.0 LIBUPNPP_SITE = http://www.lesbonscomptes.com/upmpdcli/downloads LIBUPNPP_LICENSE = LGPL-2.1+ LIBUPNPP_LICENSE_FILES = COPYING LIBUPNPP_INSTALL_STAGING = YES LIBUPNPP_DEPENDENCIES = host-pkgconf expat libcurl libnpupnp $(eval $(autotools-package)) ================================================ FILE: package/liburcu/0001-Only-blacklist-ARM-gcc-4.8.0-and-4.8.1.patch ================================================ From 54d8fe7ae40902d6d38e670f4024092f53c14e1f Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Sat, 8 Mar 2014 13:19:14 +0100 Subject: [PATCH] Only blacklist ARM gcc 4.8.0 and 4.8.1 Since many ARM toolchain providers include the bug fix for PR58854 in their latest releases based on gcc-4.8.2, then only blacklist gcc 4.8.0 and 4.8.1. Signed-off-by: Samuel Martin [Fabrice: update for 0.13.0] Signed-off-by: Fabrice Fontaine --- urcu/compiler.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/include/urcu/arch/arm.h b/include/urcu/arch/arm.h index 1e30903..56115f1 100644 --- a/include/urcu/arch/arm.h +++ b/include/urcu/arch/arm.h @@ -118,10 +118,17 @@ */ /* + * Official gcc releases from 4.8.0 to 4.8.2 have the following bug, + * however, many arm toolchain providers have the included the fix for + * their latest 4.8.2 releases. + * So, we only blacklist gcc 4.8.0 and 4.8.1. + * Unfortunately, this bug is not easy to test, so we rely on the + * knowledge of the user on its compiler. + * * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854 */ #ifdef URCU_GCC_VERSION -# if URCU_GCC_VERSION >= 40800 && URCU_GCC_VERSION <= 40802 +# if URCU_GCC_VERSION >= 40800 && URCU_GCC_VERSION <= 40801 # error Your gcc version produces clobbered frame accesses # endif #endif -- 1.9.0 ================================================ FILE: package/liburcu/0002-fix-don-t-use-C-thread_local-on-MacOs.patch ================================================ From e915ab84fd0c02d37504f3eb1e1f3be93ea6dc37 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Thu, 9 Sep 2021 12:11:16 -0400 Subject: [PATCH] fix: don't use C++ thread_local on MacOs Recent versions of Apple's clang++ do support 'thread_local' but the implementation generates additional helper symbols. This is a problem when accessing an extern TLS variable in a C++ compile unit that is provided by a C library that doesn't have those extra symbols. Fallback to using '__thread' on MacOs. Change-Id: I87cb5b3c9293f7bf66f7115f453b546dd793a449 Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers [Retrieved from: https://github.com/urcu/userspace-rcu/commit/e915ab84fd0c02d37504f3eb1e1f3be93ea6dc37] Signed-off-by: Fabrice Fontaine --- include/urcu/tls-compat.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/urcu/tls-compat.h b/include/urcu/tls-compat.h index 24ef1b9a..25cf375a 100644 --- a/include/urcu/tls-compat.h +++ b/include/urcu/tls-compat.h @@ -34,7 +34,12 @@ extern "C" { #ifdef CONFIG_RCU_TLS -#if defined (__cplusplus) && (__cplusplus >= 201103L) +/* + * Don't use C++ 'thread_local' on MacOs, the implementation is incompatible + * with C and will result in a link error when accessing an extern variable + * provided by the C library from C++ code. + */ +#if defined (__cplusplus) && (__cplusplus >= 201103L) && !defined(__APPLE__) # define URCU_TLS_STORAGE_CLASS thread_local #elif defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) # define URCU_TLS_STORAGE_CLASS _Thread_local ================================================ FILE: package/liburcu/0003-Always-use-__thread-for-Thread-local-storage-except-on-MSVC.patch ================================================ From 2e359284497c361e3208501fc70d49b2c54dc4ef Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Tue, 14 Sep 2021 10:41:08 -0400 Subject: [PATCH] Always use '__thread' for Thread local storage except on MSVC Use the GCC extension '__thread' [1] for Thread local storage on all C and C++ compilers except MSVC. While C11 and C++11 respectively offer '_Thread_local' and 'thread_local' as potentialy faster implementations, they offer no guarantees of compatibility when used in a library interface which might be used by both C and C++ client code. [1] https://gcc.gnu.org/onlinedocs/gcc/Thread-Local.html Change-Id: If4fe8bcdbda24b21dedf382112bd5c5f836c00c8 Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers [Retrieved from: https://github.com/urcu/userspace-rcu/commit/2e359284497c361e3208501fc70d49b2c54dc4ef] Signed-off-by: Fabrice Fontaine --- include/urcu/tls-compat.h | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/include/urcu/tls-compat.h b/include/urcu/tls-compat.h index 25cf375a..a2c94ded 100644 --- a/include/urcu/tls-compat.h +++ b/include/urcu/tls-compat.h @@ -35,15 +35,14 @@ extern "C" { #ifdef CONFIG_RCU_TLS /* - * Don't use C++ 'thread_local' on MacOs, the implementation is incompatible - * with C and will result in a link error when accessing an extern variable - * provided by the C library from C++ code. + * Default to '__thread' on all C and C++ compilers except MSVC. While C11 has + * '_Thread_local' and C++11 has 'thread_local', only '__thread' seems to have + * a compatible implementation when linking public extern symbols across + * language boundaries. + * + * For more details, see 'https://gcc.gnu.org/onlinedocs/gcc/Thread-Local.html'. */ -#if defined (__cplusplus) && (__cplusplus >= 201103L) && !defined(__APPLE__) -# define URCU_TLS_STORAGE_CLASS thread_local -#elif defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) -# define URCU_TLS_STORAGE_CLASS _Thread_local -#elif defined (_MSC_VER) +#if defined(_MSC_VER) # define URCU_TLS_STORAGE_CLASS __declspec(thread) #else # define URCU_TLS_STORAGE_CLASS __thread ================================================ FILE: package/liburcu/Config.in ================================================ config BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS bool default y depends on BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be || \ BR2_i386 || BR2_mips || BR2_mips64 || BR2_mipsel || \ BR2_mips64el || BR2_nios2 || BR2_powerpc || BR2_powerpc64 || \ BR2_powerpc64le || BR2_riscv || BR2_sparc64 || BR2_s390x || BR2_x86_64 depends on BR2_USE_MMU # fork() in test config BR2_PACKAGE_LIBURCU bool "liburcu" depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS help Userspace implementation of the Read-Copy-Update (RCU) synchronization mechanism. This library is mainly used by the LTTng tracing infrastructure, but can be used for other purposes as well. On ARM, because of bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854 liburcu cannot be built using gcc 4.8.0, 4.8.1 or 4.8.2 without the following bug fix: http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=204665 http://lttng.org/urcu comment "liburcu needs a toolchain w/ threads" depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/liburcu/liburcu.hash ================================================ # http://www.lttng.org/files/urcu/userspace-rcu-0.13.0.tar.bz2.sha256 sha256 cbb20dbe1a892c2a4d8898bac4316176e585392693d498766ccbbc68cf20ba20 userspace-rcu-0.13.0.tar.bz2 # Hash for license files sha256 36b6d3fa47916943fd5fec313c584784946047ec1337a78b440e5992cb595f89 lgpl-2.1.txt sha256 8ef8121eddd2fc0779d94331a1d0f1ead9c796343d845e564cd8c8c4ae3d6f6e lgpl-relicensing.txt sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 gpl-2.0.txt sha256 e8c070cb093be4b2eaf938a5f1c11621163b2d9cfa2790460cf925d81e442fa7 LICENSE ================================================ FILE: package/liburcu/liburcu.mk ================================================ ################################################################################ # # liburcu # ################################################################################ LIBURCU_VERSION = 0.13.0 LIBURCU_SITE = http://lttng.org/files/urcu LIBURCU_SOURCE = userspace-rcu-$(LIBURCU_VERSION).tar.bz2 LIBURCU_LICENSE = LGPL-2.1+ (library), MIT-like (few source files listed in LICENSE), GPL-2.0+ (test), GPL-3.0 (few *.m4 files) LIBURCU_LICENSE_FILES = lgpl-2.1.txt lgpl-relicensing.txt gpl-2.0.txt LICENSE LIBURCU_INSTALL_STAGING = YES # ac_cv_prog_cc_c99 is required for BR2_USE_WCHAR=n because the C99 test # provided by autoconf relies on wchar_t. LIBURCU_CONF_ENV = ac_cv_prog_cc_c99=-std=gnu99 $(eval $(autotools-package)) ================================================ FILE: package/liburiparser/Config.in ================================================ config BR2_PACKAGE_LIBURIPARSER bool "liburiparser" help uriparser is a strictly RFC 3986 compliant URI parsing and handling library written in C. https://uriparser.github.io ================================================ FILE: package/liburiparser/liburiparser.hash ================================================ # Locally calculated sha256 dd8061eba7f2e66c151722e6db0b27c972baa6215cf16f135dbe0f0a4bc6606c uriparser-0.9.5.tar.bz2 sha256 287f09e6546a9610f949f89e8fb937cacfeabd7bfaa8c8a0c18312193bf04ad3 COPYING ================================================ FILE: package/liburiparser/liburiparser.mk ================================================ ################################################################################ # # liburiparser # ################################################################################ LIBURIPARSER_VERSION = 0.9.5 LIBURIPARSER_SOURCE = uriparser-$(LIBURIPARSER_VERSION).tar.bz2 LIBURIPARSER_SITE = https://github.com/uriparser/uriparser/releases/download/uriparser-$(LIBURIPARSER_VERSION) LIBURIPARSER_LICENSE = BSD-3-Clause LIBURIPARSER_LICENSE_FILES = COPYING LIBURIPARSER_CPE_ID_VENDOR = uriparser_project LIBURIPARSER_CPE_ID_PRODUCT = uriparser LIBURIPARSER_INSTALL_STAGING = YES LIBURIPARSER_CONF_OPTS = -DURIPARSER_BUILD_DOCS=OFF -DURIPARSER_BUILD_TESTS=OFF ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) LIBURIPARSER_CONF_OPTS += -DBUILD_SHARED_LIBS=ON else LIBURIPARSER_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF endif ifeq ($(BR2_USE_WCHAR),) LIBURIPARSER_CONF_OPTS += -DURIPARSER_BUILD_WCHAR_T=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/libusb/0001-linux_usbfs-Fix-parsing-of-descriptors-for-multi-con.patch ================================================ From 623e2a995d156e115c91f56a3ec691bdc333df8b Mon Sep 17 00:00:00 2001 From: Chris Dickens Date: Sun, 13 Dec 2020 15:49:19 -0800 Subject: [PATCH 1/1] linux_usbfs: Fix parsing of descriptors for multi-configuration devices Commit e2be556bd2 ("linux_usbfs: Parse config descriptors during device initialization") introduced a regression for devices with multiple configurations. The logic that verifies the reported length of the configuration descriptors failed to count the length of the configuration descriptor itself and would truncate the actual length by 9 bytes, leading to a parsing error for subsequent descriptors. Closes #825 Signed-off-by: Chris Dickens (cherry picked from commit f6d2cb561402c3b6d3627c0eb89e009b503d9067) Signed-off-by: John Keeping --- libusb/os/linux_usbfs.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libusb/os/linux_usbfs.c b/libusb/os/linux_usbfs.c index fb2ed53..4d2dc8d 100644 --- a/libusb/os/linux_usbfs.c +++ b/libusb/os/linux_usbfs.c @@ -641,7 +641,12 @@ static int seek_to_next_config(struct libusb_context *ctx, uint8_t *buffer, size_t len) { struct usbi_descriptor_header *header; - int offset = 0; + int offset; + + /* Start seeking past the config descriptor */ + offset = LIBUSB_DT_CONFIG_SIZE; + buffer += LIBUSB_DT_CONFIG_SIZE; + len -= LIBUSB_DT_CONFIG_SIZE; while (len > 0) { if (len < 2) { @@ -718,7 +723,7 @@ static int parse_config_descriptors(struct libusb_device *dev) } if (priv->sysfs_dir) { - /* + /* * In sysfs wTotalLength is ignored, instead the kernel returns a * config descriptor with verified bLength fields, with descriptors * with an invalid bLength removed. @@ -727,8 +732,7 @@ static int parse_config_descriptors(struct libusb_device *dev) int offset; if (num_configs > 1 && idx < num_configs - 1) { - offset = seek_to_next_config(ctx, buffer + LIBUSB_DT_CONFIG_SIZE, - remaining - LIBUSB_DT_CONFIG_SIZE); + offset = seek_to_next_config(ctx, buffer, remaining); if (offset < 0) return offset; sysfs_config_len = (uint16_t)offset; -- 2.30.1 ================================================ FILE: package/libusb/Config.in ================================================ config BR2_PACKAGE_LIBUSB bool "libusb" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # _Thread_local help Userspace library for accessing USB devices http://libusb.info/ if BR2_PACKAGE_LIBUSB config BR2_PACKAGE_LIBUSB_EXAMPLES bool "build libusb examples" endif comment "libusb needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/libusb/libusb.hash ================================================ # Locally computed: sha256 7efd2685f7b327326dcfb85cee426d9b871fd70e22caa15bb68d595ce2a2b12a libusb-1.0.24.tar.bz2 sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING ================================================ FILE: package/libusb/libusb.mk ================================================ ################################################################################ # # libusb # ################################################################################ LIBUSB_VERSION_MAJOR = 1.0 LIBUSB_VERSION = $(LIBUSB_VERSION_MAJOR).24 LIBUSB_SOURCE = libusb-$(LIBUSB_VERSION).tar.bz2 LIBUSB_SITE = https://github.com/libusb/libusb/releases/download/v$(LIBUSB_VERSION) LIBUSB_LICENSE = LGPL-2.1+ LIBUSB_LICENSE_FILES = COPYING LIBUSB_CPE_ID_VENDOR = libusb LIBUSB_DEPENDENCIES = host-pkgconf LIBUSB_INSTALL_STAGING = YES # Avoid the discovery of udev for the host variant HOST_LIBUSB_CONF_OPTS = --disable-udev HOST_LIBUSB_DEPENDENCIES = host-pkgconf ifeq ($(BR2_PACKAGE_HAS_UDEV),y) LIBUSB_DEPENDENCIES += udev else LIBUSB_CONF_OPTS += --disable-udev endif ifeq ($(BR2_PACKAGE_LIBUSB_EXAMPLES),y) LIBUSB_CONF_OPTS += --enable-examples-build define LIBUSB_INSTALL_TARGET_EXAMPLES $(foreach example,listdevs xusb fxload hotplugtest testlibusb dpfp dpfp_threaded sam3u_benchmark, $(INSTALL) -D -m0755 $(@D)/examples/$(example) $(TARGET_DIR)/usr/bin/$(example) ) endef LIBUSB_POST_INSTALL_TARGET_HOOKS += LIBUSB_INSTALL_TARGET_EXAMPLES endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libusb-compat/0001-fix-a-build-issue-on-linux.patch ================================================ From af07587e8775c25450cda8ba9e9a8b1a58072634 Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Mon, 3 Jul 2017 15:55:00 +0200 Subject: [PATCH] fix a build issue on linux On linux PATH_MAX is defined in linux/limits.h. If we include usb.h without previously having indirectly included it, the build fails. Signed-off-by: Bartosz Golaszewski --- libusb/usb.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libusb/usb.h b/libusb/usb.h index d2c30aa..7ad9a66 100644 --- a/libusb/usb.h +++ b/libusb/usb.h @@ -41,6 +41,11 @@ typedef unsigned __int32 uint32_t; #include #endif +/* On linux PATH_MAX is defined in linux/limits.h. */ +#if defined(__linux__) +#include +#endif + /* * USB spec information * -- 2.9.3 ================================================ FILE: package/libusb-compat/Config.in ================================================ config BR2_PACKAGE_LIBUSB_COMPAT bool "libusb-compat" depends on BR2_PACKAGE_LIBUSB help libusb-0.1 compatibility layer for libusb-1.0. http://libusb.info/ ================================================ FILE: package/libusb-compat/libusb-compat.hash ================================================ # Locally computed: sha256 8259f8d5b084fe43c47823a939e955e0ba21942b8d112266c39d228cc14764d6 libusb-compat-0.1.7.tar.bz2 sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING ================================================ FILE: package/libusb-compat/libusb-compat.mk ================================================ ################################################################################ # # libusb-compat # ################################################################################ LIBUSB_COMPAT_VERSION_MAJOR = 0.1 LIBUSB_COMPAT_VERSION = $(LIBUSB_COMPAT_VERSION_MAJOR).7 LIBUSB_COMPAT_SOURCE = libusb-compat-$(LIBUSB_COMPAT_VERSION).tar.bz2 LIBUSB_COMPAT_SITE = https://github.com/libusb/libusb-compat-0.1/releases/download/v$(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 = LGPL-2.1+ LIBUSB_COMPAT_LICENSE_FILES = COPYING ifeq ($(BR2_STATIC_LIBS),) LIBUSB_COMPAT_CONF_ENV += \ LIBUSB_1_0_SONAME=`LC_ALL=C readelf -d $(STAGING_DIR)/usr/lib/libusb-1.0.so \ |sed -r -e '/\(SONAME\)/!d; s/.*\[(.+)\]$$/\1/'` endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libusbgx/0001-Add-include-of-sys-sysmacro.h.patch ================================================ From 45c14ef4d5d7ced0fbf984208de44ced6d5ed898 Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Mon, 10 Sep 2018 15:52:09 +0200 Subject: [PATCH] libusbgx: fix build with glibc-2.28 since is no more included by Since https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html sys/sysmacros.h must be explicitly included. Without sys/sysmacros.h and with glibc-2.28 build fails with error like: src/.libs/libusbgx.so: undefined reference to minor' src/.libs/libusbgx.so: undefined reference tomajor' src/.libs/libusbgx.so: undefined reference to `makedev' Signed-off-by: Sid Spry Signed-off-by: Gwenhael Goavec-Merou --- examples/gadget-acm-ecm.c | 1 + examples/gadget-import.c | 1 + examples/gadget-ms.c | 1 + examples/show-gadgets.c | 1 + examples/show-udcs.c | 1 + include/usbg/usbg_internal_libconfig.h | 1 + 6 files changed, 6 insertions(+) diff --git a/examples/gadget-acm-ecm.c b/examples/gadget-acm-ecm.c index 1c5e2ca..29360da 100644 --- a/examples/gadget-acm-ecm.c +++ b/examples/gadget-acm-ecm.c @@ -20,6 +20,7 @@ #include #include +#include #include #include diff --git a/examples/gadget-import.c b/examples/gadget-import.c index e684fdb..63df449 100644 --- a/examples/gadget-import.c +++ b/examples/gadget-import.c @@ -25,6 +25,7 @@ #include #include #include +#include #include int main(int argc, char **argv) diff --git a/examples/gadget-ms.c b/examples/gadget-ms.c index 478c370..a5c6681 100644 --- a/examples/gadget-ms.c +++ b/examples/gadget-ms.c @@ -23,6 +23,7 @@ #include #include +#include #include #include #include diff --git a/examples/show-gadgets.c b/examples/show-gadgets.c index 707d448..a2a21c8 100644 --- a/examples/show-gadgets.c +++ b/examples/show-gadgets.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include diff --git a/examples/show-udcs.c b/examples/show-udcs.c index 66e950f..2f5cc45 100644 --- a/examples/show-udcs.c +++ b/examples/show-udcs.c @@ -23,6 +23,7 @@ #include #include +#include #include int main(void) diff --git a/include/usbg/usbg_internal_libconfig.h b/include/usbg/usbg_internal_libconfig.h index ac51758..3fa55c0 100644 --- a/include/usbg/usbg_internal_libconfig.h +++ b/include/usbg/usbg_internal_libconfig.h @@ -12,6 +12,7 @@ #ifndef USBG_INTERNAL_LIBCONFIG_H #define USBG_INTERNAL_LIBCONFIG_H +#include #include #ifdef __cplusplus extern "C" { -- 2.16.4 ================================================ FILE: package/libusbgx/Config.in ================================================ 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 ================================================ FILE: package/libusbgx/libusbgx.hash ================================================ # Locally computed: sha256 b15abc89a0ef82c6a650cc1d58b5ba50f7ce076db392add84caabcd86c608ee2 libusbgx-0.2.0.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPL ================================================ FILE: package/libusbgx/libusbgx.mk ================================================ ################################################################################ # # libusbgx # ################################################################################ LIBUSBGX_VERSION = 0.2.0 LIBUSBGX_SITE = $(call github,libusbgx,libusbgx,libusbgx-v$(LIBUSBGX_VERSION)) LIBUSBGX_LICENSE = GPL-2.0+ (examples), LGPL-2.1+ (library) LIBUSBGX_LICENSE_FILES = COPYING COPYING.LGPL LIBUSBGX_DEPENDENCIES = host-pkgconf libconfig LIBUSBGX_AUTORECONF = YES LIBUSBGX_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/libuv/Config.in ================================================ config BR2_PACKAGE_LIBUV bool "libuv" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # pthread_barrier_* depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_SYNC_4 help libuv is a multi-platform support library with a focus on asynchronous I/O. https://github.com/libuv/libuv comment "libuv needs a toolchain w/ NPTL, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 ================================================ FILE: package/libuv/libuv.hash ================================================ # Locally calculated sha256 371e5419708f6aaeb8656671f89400b92a9bba6443369af1bb70bcd6e4b3c764 libuv-1.42.0.tar.gz sha256 6d20216ae022fbeed23916f48508fd807ece3d8464992330643b0e64e5c0c24b LICENSE ================================================ FILE: package/libuv/libuv.mk ================================================ ################################################################################ # # libuv # ################################################################################ # When bumping libuv, check if a new version of uvw is available # and bump it too. LIBUV_VERSION = 1.42.0 LIBUV_SITE = $(call github,libuv,libuv,v$(LIBUV_VERSION)) LIBUV_DEPENDENCIES = host-pkgconf LIBUV_INSTALL_STAGING = YES LIBUV_AUTORECONF = YES LIBUV_LICENSE = BSD-2-Clause, BSD-3-Clause, ISC, MIT LIBUV_LICENSE_FILES = LICENSE LIBUV_CPE_ID_VENDOR = libuv # Upstream needs tests to be run sequentially. This is the default in # automake 1.11 and before, but not starting in 1.12. To maintain # sequentiality in 1.12 and later, the automake option 'serial-tests' # must be used, Unfortunately, it is not recognised by 1.11 and # before. So upstream only adds it conditionally. We use automake # 1.14, so we need it. define LIBUV_FIXUP_AUTOGEN echo "m4_define([UV_EXTRA_AUTOMAKE_FLAGS], [serial-tests])" \ >$(@D)/m4/libuv-extra-automake-flags.m4 endef LIBUV_POST_PATCH_HOOKS += LIBUV_FIXUP_AUTOGEN $(eval $(autotools-package)) ================================================ FILE: package/libuwsc/0001-CMakeLists.txt-add-BUILD_EXAMPLE.patch ================================================ From bb71b21eb9407479ad729b3c858b0fc350fae335 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 21 Feb 2021 19:39:59 +0100 Subject: [PATCH] CMakeLists.txt: add BUILD_EXAMPLE Allow the user to disable example Signed-off-by: Fabrice Fontaine [yann.morin.1998@free.fr: backport from upstream] Signed-off-by: Yann E. MORIN --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 110d933..c52ab79 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,11 @@ cmake_minimum_required(VERSION 2.8) project(libuwsc C) +option(BUILD_EXAMPLE "Build example" ON) + list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules/") add_subdirectory(src) -add_subdirectory(example) +if(BUILD_EXAMPLE) + add_subdirectory(example) +endif() -- 2.25.1 ================================================ FILE: package/libuwsc/0002-fix-bad-indentation.patch ================================================ From 8cb416140741a596235b8acc46b2b119b13ebfab Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Tue, 6 Jul 2021 21:01:52 -0700 Subject: [PATCH] fix bad indentation Fixes error with GCC11. [Retrieved from: https://github.com/zhaojh329/libuwsc/commit/8cb416140741a596235b8acc46b2b119b13ebfab] Signed-off-by: Fabrice Fontaine --- src/lua/uwsc_lua.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lua/uwsc_lua.c b/src/lua/uwsc_lua.c index de6932e..84689fe 100644 --- a/src/lua/uwsc_lua.c +++ b/src/lua/uwsc_lua.c @@ -178,7 +178,7 @@ static int uwsc_lua_on(lua_State *L) else luaL_argcheck(L, false, 2, "available event name: open message error close"); - return 0; + return 0; } static int __uwsc_lua_send(lua_State *L, int op) ================================================ FILE: package/libuwsc/Config.in ================================================ config BR2_PACKAGE_LIBUWSC bool "libuwsc" select BR2_PACKAGE_LIBEV help A Lightweight and fully asynchronous WebSocket client library based on libev. https://github.com/zhaojh329/libuwsc ================================================ FILE: package/libuwsc/libuwsc.hash ================================================ # Locally calculated sha256 a06b7324671e181ffe3165e93e6f94c7ac1380f69e32a52e80c8da7016acd60d libuwsc-3.3.5.tar.gz sha256 99efed4bbc0b62f96f999ef23399e38234fb91651af734fd389a52b033a85b55 LICENSE ================================================ FILE: package/libuwsc/libuwsc.mk ================================================ ################################################################################ # # libuwsc # ################################################################################ LIBUWSC_VERSION = 3.3.5 LIBUWSC_SITE = https://github.com/zhaojh329/libuwsc/releases/download/v$(LIBUWSC_VERSION) LIBUWSC_LICENSE = MIT LIBUWSC_LICENSE_FILES = LICENSE LIBUWSC_INSTALL_STAGING = YES LIBUWSC_DEPENDENCIES = libev ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBUWSC_DEPENDENCIES += openssl LIBUWSC_CONF_OPTS += \ -DUWSC_SSL_SUPPORT=ON \ -DUWSC_USE_MBEDTLS=OFF \ -DUWSC_USE_OPENSSL=ON \ -DUWSC_USE_WOLFSSL=OFF else ifeq ($(BR2_PACKAGE_WOLFSSL),y) LIBUWSC_DEPENDENCIES += wolfssl LIBUWSC_CONF_OPTS += \ -DUWSC_SSL_SUPPORT=ON \ -DUWSC_USE_MBEDTLS=OFF \ -DUWSC_USE_OPENSSL=OFF \ -DUWSC_USE_WOLFSSL=ON else ifeq ($(BR2_PACKAGE_MBEDTLS),y) LIBUWSC_DEPENDENCIES += mbedtls LIBUWSC_CONF_OPTS += \ -DUWSC_SSL_SUPPORT=ON \ -DUWSC_USE_MBEDTLS=ON \ -DUWSC_USE_OPENSSL=OFF \ -DUWSC_USE_WOLFSSL=OFF else LIBUWSC_CONF_OPTS += -DUWSC_SSL_SUPPORT=OFF endif ifeq ($(BR2_PACKAGE_LUA):$(BR2_STATIC_LIBS),y:) LIBUWSC_DEPENDENCIES += lua LIBUWSC_CONF_OPTS += -DUWSC_LUA_SUPPORT=ON else LIBUWSC_CONF_OPTS += -DUWSC_LUA_SUPPORT=OFF endif # BUILD_SHARED_LIBS is handled in pkg-cmake.mk as it is a generic cmake variable ifeq ($(BR2_SHARED_STATIC_LIBS),y) LIBUWSC_CONF_OPTS += -DBUILD_STATIC_LIBS=ON else ifeq ($(BR2_SHARED_LIBS),y) LIBUWSC_CONF_OPTS += -DBUILD_STATIC_LIBS=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/libv4l/0001-keymap.h-add-missing-includes-to-fix-musl-build.patch ================================================ From baba68cdcb44fc11d0ba8ce2c13eb5b06bbd9b33 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Wed, 30 Oct 2019 07:15:23 +0100 Subject: [PATCH] keymap.h: add missing includes to fix musl build Needed to fix these build errors: In file included from keymap.c:13:0: keymap.h:23:2: error: unknown type name 'u_int32_t' u_int32_t scancode; keymap.h:36:1: error: unknown type name 'error_t' error_t parse_keymap(char *fname, struct keymap **keymap, bool verbose); Signed-off-by: Bernd Kuhls --- Patch was not sent upstream due to broken mailing list setup: : host vger.kernel.org[209.132.180.67] said: 553 5.7.1 Hello [xx.xx.xx.xx], for your MAIL FROM address policy analysis reported: Your address is not liked source for email (in reply to MAIL FROM command) Hello [xx.xx.xx.xx], for your MAIL FROM address policy analysis reported: Your address is not liked source for email utils/common/keymap.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/utils/common/keymap.h b/utils/common/keymap.h index f2b29632..bb1edce9 100644 --- a/utils/common/keymap.h +++ b/utils/common/keymap.h @@ -1,4 +1,8 @@ /* SPDX-License-Identifier: GPL-2.0 */ + +#include +#include + #ifndef __KEYMAP_H #define __KEYMAP_H diff -uNr v4l-utils-1.18.0.orig/utils/ir-ctl/keymap.h v4l-utils-1.18.0/utils/ir-ctl/keymap.h --- v4l-utils-1.18.0.orig/utils/ir-ctl/keymap.h 2019-09-22 11:22:54.000000000 +0200 +++ v4l-utils-1.18.0/utils/ir-ctl/keymap.h 2019-10-30 07:06:18.250548011 +0100 @@ -1,4 +1,8 @@ /* SPDX-License-Identifier: GPL-2.0 */ + +#include +#include + #ifndef __KEYMAP_H #define __KEYMAP_H diff -uNr v4l-utils-1.18.0.orig/utils/keytable/keymap.h v4l-utils-1.18.0/utils/keytable/keymap.h --- v4l-utils-1.18.0.orig/utils/keytable/keymap.h 2019-09-22 11:22:54.000000000 +0200 +++ v4l-utils-1.18.0/utils/keytable/keymap.h 2019-10-30 07:06:56.218816126 +0100 @@ -1,4 +1,8 @@ /* SPDX-License-Identifier: GPL-2.0 */ + +#include +#include + #ifndef __KEYMAP_H #define __KEYMAP_H -- 2.20.1 ================================================ FILE: package/libv4l/Config.in ================================================ config BR2_PACKAGE_LIBV4L bool "libv4l" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # media headers select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help libv4l is a collection of libraries which adds a thin abstraction layer on top of video4linux2 devices. libv4l consists of 3 different libraries: libv4lconvert, libv4l1 and libv4l2. http://linuxtv.org/wiki/index.php/V4l-utils if BR2_PACKAGE_LIBV4L comment "libv4l JPEG support not enabled" depends on !BR2_PACKAGE_JPEG config BR2_PACKAGE_LIBV4L_UTILS bool "v4l-utils tools" help v4l-utils is a collection of various video4linux and DVB utilities. Enable this if you want to build the following tools: - cx18-ctl - dvb-fe-tool, dvbv5-zap, dvbv5-scan, dvb-format-convert - decode_tm6000 - ir-keytable - media-ctl - v4l2-compliance - v4l2-ctl, cx18-ctl, ivtv-ctl - v4l2-sysfs-path - rds-ctl - qv4l2 (if Qt is enabled) endif comment "libv4l needs a toolchain w/ threads, C++ and headers >= 3.0" depends on !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 ================================================ FILE: package/libv4l/libv4l.hash ================================================ # Locally calculated after checking signature # https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.20.0.tar.bz2.asc # with key 05D0169C26E41593418129DF199A64FADFB500FF sha256 956118713f7ccb405c55c7088a6a2490c32d54300dd9a30d8d5008c28d3726f7 v4l-utils-1.20.0.tar.bz2 # Locally calculated sha256 391e4da1c54a422a78d83be7bf84b2dfb8bacdd8ad256fa4374e128655584a8a COPYING sha256 5a7f623a50e384aaf6d2ced068339ddf93d0a50d3a0ecbe86f125b07804ecc78 COPYING.libv4l sha256 34229b5aadfb768d0d083987cba54203a920904a3ec8320823c6125b9831acd1 lib/libv4l1/libv4l1-kernelcode-license.txt ================================================ FILE: package/libv4l/libv4l.mk ================================================ ################################################################################ # # libv4l # ################################################################################ LIBV4L_VERSION = 1.20.0 LIBV4L_SOURCE = v4l-utils-$(LIBV4L_VERSION).tar.bz2 LIBV4L_SITE = https://linuxtv.org/downloads/v4l-utils LIBV4L_INSTALL_STAGING = YES LIBV4L_DEPENDENCIES = host-pkgconf LIBV4L_CONF_OPTS = --disable-doxygen-doc --disable-qvidcap # needed to get utils/qv4l link flags right LIBV4L_AUTORECONF = YES # add host-gettext for AM_ICONV macro LIBV4L_DEPENDENCIES += host-gettext # fix uclibc-ng configure/compile LIBV4L_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' # v4l-utils components have different licences, see v4l-utils.spec for details LIBV4L_LICENSE = GPL-2.0+ (utilities), LGPL-2.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 endif LIBV4L_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv) ifeq ($(BR2_PACKAGE_JPEG),y) LIBV4L_DEPENDENCIES += jpeg LIBV4L_CONF_OPTS += --with-jpeg 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-udevdir=/usr/lib/udev LIBV4L_DEPENDENCIES += udev endif ifeq ($(BR2_PACKAGE_LIBGLU),y) LIBV4L_DEPENDENCIES += libglu endif ifeq ($(BR2_PACKAGE_LIBV4L_UTILS),y) LIBV4L_CONF_OPTS += --enable-v4l-utils LIBV4L_DEPENDENCIES += $(TARGET_NLS_DEPENDENCIES) # IR BPF decoder support needs toolchain with linux-headers >= 3.18 # libelf and clang support LIBV4L_CONF_OPTS += --disable-bpf ifeq ($(BR2_PACKAGE_QT5BASE)$(BR2_PACKAGE_QT5BASE_GUI)$(BR2_PACKAGE_QT5BASE_WIDGETS),yyy) LIBV4L_CONF_OPTS += --enable-qv4l2 LIBV4L_DEPENDENCIES += qt5base # protect against host version detection of moc-qt5/rcc-qt5/uic-qt5 LIBV4L_CONF_ENV += \ ac_cv_prog_MOC=$(HOST_DIR)/bin/moc \ ac_cv_prog_RCC=$(HOST_DIR)/bin/rcc \ ac_cv_prog_UIC=$(HOST_DIR)/bin/uic # qt5 needs c++11 (since qt-5.7) LIBV4L_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" else LIBV4L_CONF_OPTS += --disable-qv4l2 endif else LIBV4L_CONF_OPTS += --disable-v4l-utils endif ifeq ($(BR2_PACKAGE_SDL2_IMAGE),y) LIBV4L_DEPENDENCIES += sdl2_image endif LIBV4L_CONF_ENV += LIBS="$(LIBV4L_LIBS)" $(eval $(autotools-package)) ================================================ FILE: package/libva/Config.in ================================================ config BR2_PACKAGE_LIBVA bool "libva" depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm/libpthread-stubs depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XORG7 help The main motivation for VA-API (Video Acceleration API) is to enable hardware accelerated video decode/encode at various entry-points (VLD, IDCT, Motion Compensation etc.) for the prevailing coding standards today (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3). https://01.org/vaapi comment "libva needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libva/libva.hash ================================================ # From https://github.com/intel/libva/releases/download/2.13.0/libva-2.13.0.tar.bz2.sha1sum sha1 2adb2c023371dd68fe0d23e58afcf0b072b79828 libva-2.13.0.tar.bz2 # Locally computed sha256 fad383f39f36115814bd0eda1496a4cc01761643bd962635400df2d4470ad460 libva-2.13.0.tar.bz2 sha256 c86a782ee845b52472dae9b9d79fb915d333628ac0efe49cdce63644814931de COPYING ================================================ FILE: package/libva/libva.mk ================================================ ################################################################################ # # libva # ################################################################################ LIBVA_VERSION = 2.13.0 LIBVA_SOURCE = libva-$(LIBVA_VERSION).tar.bz2 LIBVA_SITE = https://github.com/intel/libva/releases/download/$(LIBVA_VERSION) LIBVA_LICENSE = MIT LIBVA_LICENSE_FILES = COPYING LIBVA_INSTALL_STAGING = YES LIBVA_DEPENDENCIES = host-pkgconf libdrm # libdrm is a hard-dependency LIBVA_CONF_OPTS = \ --enable-drm \ --with-drivers-path="/usr/lib/va" ifeq ($(BR2_PACKAGE_XORG7),y) LIBVA_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXfixes LIBVA_CONF_OPTS += --enable-x11 ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) LIBVA_DEPENDENCIES += libgl LIBVA_CONF_OPTS += --enable-glx endif else LIBVA_CONF_OPTS += --disable-glx --disable-x11 endif ifeq ($(BR2_PACKAGE_WAYLAND),y) LIBVA_DEPENDENCIES += wayland LIBVA_CONF_ENV += ac_cv_path_WAYLAND_SCANNER=$(HOST_DIR)/usr/bin/wayland-scanner LIBVA_CONF_OPTS += --enable-wayland else LIBVA_CONF_OPTS += --disable-wayland endif $(eval $(autotools-package)) ================================================ FILE: package/libva-intel-driver/Config.in ================================================ config BR2_PACKAGE_LIBVA_INTEL_DRIVER bool "libva-intel-driver" depends on BR2_i386 || BR2_x86_64 depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm/libpthread-stubs depends on !BR2_STATIC_LIBS # libva select BR2_PACKAGE_LIBVA select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBDRM_INTEL select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XORG7 help VA-API back-end driver for Intel graphics chips https://01.org/vaapi comment "libva intel driver needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS depends on BR2_i386 || BR2_x86_64 ================================================ FILE: package/libva-intel-driver/libva-intel-driver.hash ================================================ # From https://github.com/intel/intel-vaapi-driver/releases sha1 c998e06f13238c6419bb38ede9a13e453312737b intel-vaapi-driver-2.4.1.tar.bz2 # Locally computed sha256 0081fce08eb3a83f7d99c3b853c8fdfa0af437b8f5b0fb7c66faeb83bcbe0c19 intel-vaapi-driver-2.4.1.tar.bz2 sha256 c86a782ee845b52472dae9b9d79fb915d333628ac0efe49cdce63644814931de COPYING ================================================ FILE: package/libva-intel-driver/libva-intel-driver.mk ================================================ ################################################################################ # # libva-intel-driver # ################################################################################ LIBVA_INTEL_DRIVER_VERSION = 2.4.1 LIBVA_INTEL_DRIVER_SOURCE = intel-vaapi-driver-$(LIBVA_INTEL_DRIVER_VERSION).tar.bz2 LIBVA_INTEL_DRIVER_SITE = \ https://github.com/intel/intel-vaapi-driver/releases/download/$(LIBVA_INTEL_DRIVER_VERSION) LIBVA_INTEL_DRIVER_LICENSE = MIT LIBVA_INTEL_DRIVER_LICENSE_FILES = COPYING LIBVA_INTEL_DRIVER_DEPENDENCIES = host-pkgconf libdrm libva ifeq ($(BR2_PACKAGE_XORG7),y) LIBVA_INTEL_DRIVER_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXfixes LIBVA_INTEL_DRIVER_CONF_OPTS += --enable-x11 else LIBVA_INTEL_DRIVER_CONF_OPTS += --disable-x11 endif ifeq ($(BR2_PACKAGE_WAYLAND),y) LIBVA_INTEL_DRIVER_DEPENDENCIES += wayland LIBVA_INTEL_DRIVER_CONF_OPTS += --enable-wayland else LIBVA_INTEL_DRIVER_CONF_OPTS += --disable-wayland endif $(eval $(autotools-package)) ================================================ FILE: package/libva-utils/Config.in ================================================ config BR2_PACKAGE_LIBVA_UTILS bool "libva-utils" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS # libva depends on BR2_TOOLCHAIN_HAS_THREADS # libva select BR2_PACKAGE_LIBVA help Libva-utils is a collection of tests for VA-API (Video Acceleration API) https://01.org/vaapi comment "libva-utils needs a toolchain w/ C++, threads, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libva-utils/libva-utils.hash ================================================ # From https://github.com/intel/libva-utils/releases/download/2.13.0/libva-utils-2.13.0.tar.bz2.sha1sum sha1 7ab945cf232387f762891f9e4f7a6cb41e0766e8 libva-utils-2.13.0.tar.bz2 # Locally computed sha256 db3ae0bd63c2a3f6ef498450c29ffc99c387ce611e1eb5db6a8da1f88845d612 libva-utils-2.13.0.tar.bz2 sha256 c6220c9f87832c27abcb8a32eafdd2823e13ce146b3ea63d5deae2a76798ef50 COPYING ================================================ FILE: package/libva-utils/libva-utils.mk ================================================ ################################################################################ # # libva-utils # ################################################################################ LIBVA_UTILS_VERSION = 2.13.0 LIBVA_UTILS_SOURCE = libva-utils-$(LIBVA_UTILS_VERSION).tar.bz2 LIBVA_UTILS_SITE = https://github.com/intel/libva-utils/releases/download/$(LIBVA_UTILS_VERSION) LIBVA_UTILS_LICENSE = MIT LIBVA_UTILS_LICENSE_FILES = COPYING LIBVA_UTILS_DEPENDENCIES = host-pkgconf libva $(eval $(autotools-package)) ================================================ FILE: package/libvdpau/Config.in ================================================ 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 ================================================ FILE: package/libvdpau/libvdpau.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-August/003021.html sha256 b5a52eeac9417edbc396f26c40591ba5df0cd18285f68d84614ef8f06196e50e libvdpau-1.3.tar.bz2 sha512 c06c23062816e8b207d38d9d53df43a1b193bb9836b48bd6d79a63d76522e87d383c446285b9877fe9c99faa0d290da8a49ccbb58eefa138cc38d0929a8e1330 libvdpau-1.3.tar.bz2 # Locally computed sha256 ce4af7294872ff07f6e82ae5f1f5eba926215b1e2fb6d55d64759de082458d61 COPYING ================================================ FILE: package/libvdpau/libvdpau.mk ================================================ ################################################################################ # # libvdpau # ################################################################################ LIBVDPAU_VERSION = 1.3 LIBVDPAU_SOURCE = libvdpau-$(LIBVDPAU_VERSION).tar.bz2 LIBVDPAU_SITE = \ https://gitlab.freedesktop.org/vdpau/libvdpau/-/archive/$(LIBVDPAU_VERSION) LIBVDPAU_LICENSE = MIT LIBVDPAU_LICENSE_FILES = COPYING LIBVDPAU_INSTALL_STAGING = YES LIBVDPAU_DEPENDENCIES = host-pkgconf xlib_libX11 xlib_libXext LIBVDPAU_CONF_OPTS = \ -Ddocumentation=false \ -Dmoduledir=/usr/lib/vdpau ifeq ($(BR2_PACKAGE_XORGPROTO),y) LIBVDPAU_DEPENDENCIES += xorgproto LIBVDPAU_CONF_OPTS += -Ddri2=true else LIBVDPAU_CONF_OPTS += -Ddri2=false endif $(eval $(meson-package)) ================================================ FILE: package/libvips/Config.in ================================================ config BR2_PACKAGE_LIBVIPS bool "libvips" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # fork() # C++ support is required to build libvips # https://github.com/jcupitt/libvips/issues/231 depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_EXPAT select BR2_PACKAGE_LIBGLIB2 help libvips is a 2D image processing library. Compared to similar libraries, libvips runs quickly and uses little memory. http://www.vips.ecs.soton.ac.uk/ comment "libvips needs a toolchain w/ wchar, threads, C++" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/libvips/libvips.hash ================================================ # Locally calculated sha256 2468088d958e0e2de1be2991ff8940bf45664a826c0dad12342e1804e2805a6e vips-8.10.6.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/libvips/libvips.mk ================================================ ################################################################################ # # libvips # ################################################################################ LIBVIPS_VERSION = 8.10.6 LIBVIPS_SOURCE = vips-$(LIBVIPS_VERSION).tar.gz LIBVIPS_SITE = https://github.com/libvips/libvips/releases/download/v$(LIBVIPS_VERSION) LIBVIPS_LICENSE = LGPL-2.1+ LIBVIPS_LICENSE_FILES = COPYING LIBVIPS_CPE_ID_VENDOR = libvips_project # Sparc64 compile fails, for all optimization levels except -O0. To # fix the problem, use -O0 with no optimization instead. Bug reported # upstream at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038. ifeq ($(BR2_sparc64),y) LIBVIPS_CXXFLAGS += -O0 endif LIBVIPS_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) $(LIBVIPS_CXXFLAGS)" \ LIBS=$(TARGET_NLS_LIBS) LIBVIPS_CONF_OPTS = \ --without-dmalloc \ --without-gsf \ --without-OpenEXR \ --without-openslide \ --without-cfitsio \ --without-pangoft2 \ --without-x LIBVIPS_INSTALL_STAGING = YES LIBVIPS_DEPENDENCIES = \ host-pkgconf expat libglib2 \ $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_PACKAGE_GIFLIB),y) LIBVIPS_CONF_OPTS += --with-giflib LIBVIPS_DEPENDENCIES += giflib else LIBVIPS_CONF_OPTS += --without-giflib endif ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) LIBVIPS_CONF_OPTS += --enable-introspection LIBVIPS_DEPENDENCIES += gobject-introspection else LIBVIPS_CONF_OPTS += --disable-introspection endif ifeq ($(BR2_PACKAGE_IMAGEMAGICK),y) LIBVIPS_CONF_OPTS += \ --with-magick \ --with-magickpackage=MagickCore LIBVIPS_DEPENDENCIES += imagemagick else ifeq ($(BR2_PACKAGE_GRAPHICSMAGICK),y) LIBVIPS_CONF_OPTS += \ --with-magick \ --with-magickpackage=GraphicsMagick LIBVIPS_DEPENDENCIES += graphicsmagick else LIBVIPS_CONF_OPTS += --without-magick endif ifeq ($(BR2_PACKAGE_JPEG),y) LIBVIPS_CONF_OPTS += --with-jpeg LIBVIPS_DEPENDENCIES += jpeg else LIBVIPS_CONF_OPTS += --without-jpeg endif ifeq ($(BR2_PACKAGE_LCMS2),y) LIBVIPS_CONF_OPTS += --with-lcms LIBVIPS_DEPENDENCIES += lcms2 else LIBVIPS_CONF_OPTS += --without-lcms endif ifeq ($(BR2_PACKAGE_LIBPNG),y) LIBVIPS_CONF_OPTS += --with-png LIBVIPS_DEPENDENCIES += libpng else LIBVIPS_CONF_OPTS += --without-png endif ifeq ($(BR2_PACKAGE_LIBRSVG),y) LIBVIPS_CONF_OPTS += --with-rsvg LIBVIPS_DEPENDENCIES += librsvg else LIBVIPS_CONF_OPTS += --without-rsvg endif ifeq ($(BR2_PACKAGE_MATIO),y) LIBVIPS_CONF_OPTS += --with-matio LIBVIPS_DEPENDENCIES += matio else LIBVIPS_CONF_OPTS += --without-matio endif ifeq ($(BR2_PACKAGE_ORC),y) LIBVIPS_CONF_OPTS += --with-orc LIBVIPS_DEPENDENCIES += orc else LIBVIPS_CONF_OPTS += --without-orc endif ifeq ($(BR2_PACKAGE_POPPLER),y) LIBVIPS_CONF_OPTS += --with-poppler LIBVIPS_DEPENDENCIES += poppler else LIBVIPS_CONF_OPTS += --without-poppler endif ifeq ($(BR2_PACKAGE_TIFF),y) LIBVIPS_CONF_OPTS += --with-tiff LIBVIPS_DEPENDENCIES += tiff else LIBVIPS_CONF_OPTS += --without-tiff endif ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),y) LIBVIPS_CONF_OPTS += --with-fftw LIBVIPS_DEPENDENCIES += fftw-double else LIBVIPS_CONF_OPTS += --without-fftw endif ifeq ($(BR2_PACKAGE_LIBEXIF),y) LIBVIPS_CONF_OPTS += --with-libexif LIBVIPS_DEPENDENCIES += libexif else LIBVIPS_CONF_OPTS += --without-libexif endif ifeq ($(BR2_PACKAGE_WEBP_DEMUX)$(BR2_PACKAGE_WEBP_MUX),yy) LIBVIPS_CONF_OPTS += --with-libwebp LIBVIPS_DEPENDENCIES += webp else LIBVIPS_CONF_OPTS += --without-libwebp endif ifeq ($(BR2_PACKAGE_ZLIB),y) LIBVIPS_CONF_OPTS += --with-zlib LIBVIPS_DEPENDENCIES += zlib else LIBVIPS_CONF_OPTS += --without-zlib endif $(eval $(autotools-package)) ================================================ FILE: package/libvirt/90-kvm.rules ================================================ KERNEL=="kvm", OWNER="root", GROUP="kvm", MODE="0660" ================================================ FILE: package/libvirt/Config.in ================================================ config BR2_PACKAGE_LIBVIRT_ARCH_SUPPORTS bool default y if BR2_aarch64 default y if BR2_i386 default y if BR2_x86_64 depends on BR2_USE_MMU # fork() comment "libvirt needs udev /dev management, a toolchain w/ threads, dynamic library, kernel headers >= 3.12 (4.11 for AArch64)" depends on BR2_PACKAGE_LIBVIRT_ARCH_SUPPORTS depends on !BR2_PACKAGE_HAS_UDEV || BR2_STATIC_LIBS || !BR2_USE_MMU || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !(BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 && \ (BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11 || !BR2_aarch64)) config BR2_PACKAGE_LIBVIRT bool "libvirt" depends on BR2_PACKAGE_LIBVIRT_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11 || !BR2_aarch64 depends on BR2_PACKAGE_HAS_UDEV depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR select BR2_PACKAGE_GNUTLS # configure: You must install the pciaccess module to build with udev select BR2_PACKAGE_LIBPCIACCESS select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBTIRPC select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_ZLIB # run-time dependencies select BR2_PACKAGE_CGROUPFS_MOUNT if !BR2_INIT_SYSTEMD help Libvirt is collection of software that provides a convenient way to manage virtual machines and other virtualization functionality, such as storage and network interface management. These software pieces include an API library, a daemon (libvirtd), and a command line utility (virsh). https://libvirt.org/ if BR2_PACKAGE_LIBVIRT config BR2_PACKAGE_LIBVIRT_DAEMON bool "libvirtd" default y select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_DNSMASQ select BR2_PACKAGE_EBTABLES select BR2_PACKAGE_IPTABLES select BR2_PACKAGE_IPROUTE2 # These are required because there is no way to unequivocally select a modern netcat select BR2_PACKAGE_NMAP if !BR2_PACKAGE_NETCAT_OPENBSD select BR2_PACKAGE_NMAP_NCAT if !BR2_PACKAGE_NETCAT_OPENBSD select BR2_PACKAGE_RADVD help Build the libvirt daemon (libvirtd) otherwise build only the utility programs. # Stateful drivers are useful only when building the daemon. if BR2_PACKAGE_LIBVIRT_DAEMON config BR2_PACKAGE_LIBVIRT_QEMU bool "qemu" depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS # libseccomp depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # qemu select BR2_PACKAGE_HWDATA # libpciaccess select BR2_PACKAGE_HWDATA_PCI_IDS # libpciaccess select BR2_PACKAGE_LIBSECCOMP select BR2_PACKAGE_QEMU select BR2_PACKAGE_QEMU_SYSTEM if BR2_PACKAGE_QEMU_CUSTOM_TARGETS = "" select BR2_PACKAGE_YAJL help QEMU/KVM support comment "qemu needs a toolchain with gcc >= 8" depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8 config BR2_PACKAGE_LIBVIRT_LXC bool "lxc" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # lxc select BR2_PACKAGE_LXC help Linux Container support comment "lxc needs a toolchain w/ gcc >= 4.7" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 endif endif ================================================ FILE: package/libvirt/S91virtlogd ================================================ #!/bin/sh DAEMON="virtlogd" EXECFILE="/usr/sbin/$DAEMON" PIDFILE="/var/run/$DAEMON.pid" VIRTLOGD_ARGS="" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "$EXECFILE" \ -- -d $VIRTLOGD_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" -x "$EXECFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } # On receipt of SIGUSR1 virtlogd will re-exec() its binary, while maintaining # all current logs and clients. This allows for live upgrades of the virtlogd # service. reload() { printf 'Reloading %s: ' "$DAEMON" start-stop-daemon -K -s USR1 -q -p "$PIDFILE" -x "$EXECFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } case "$1" in start|stop|restart|reload) "$1";; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/libvirt/S92libvirtd ================================================ #!/bin/sh DAEMON="libvirtd" EXECFILE="/usr/sbin/$DAEMON" PIDFILE="/var/run/$DAEMON.pid" LIBVIRTD_ARGS="" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" trap 'rm -f "$TMP_MODULE_LIST" "$TMP_PIDFILE_LIST"' EXIT is_alive() { [ -e "$1" ] \ && exe="/proc/$(cat "$1" 2>/dev/null)/exe" \ && [ -s "$exe" ] \ && [ "$(readlink -f "$exe")" = "$2" ] } load_modules() { printf 'Loading kernel modules: ' kver="$(uname -r)" TMP_MODULE_LIST="$(mktemp -q)" || { echo 'FAIL creating temporary modules list' exit 1 } [ -d "/lib/modules/$kver/kernel/drivers/net" ] && \ find "/lib/modules/$kver/kernel/drivers/net" \ -name "tun.ko*" >> "$TMP_MODULE_LIST" [ -d "/lib/modules/$kver/kernel/drivers/vhost" ] && \ find "/lib/modules/$kver/kernel/drivers/vhost" \ -name "vhost?net.ko*" >> "$TMP_MODULE_LIST" [ -d "/lib/modules/$kver/kernel/drivers/net" ] && \ find "/lib/modules/$kver/kernel/drivers/vfio" \ -name "*.ko*" >> "$TMP_MODULE_LIST" while read -r f; do m="$(basename "${f%.ko*}")" if modprobe -q "$m"; then printf '%s ' "$m" else echo "FAIL on $m" exit 1 fi done < "$TMP_MODULE_LIST" echo "OK" } # # If libvirtd dies it leves behind one stale dnsmasq per virtual network that # must be killed before starting libvirtd again. # rm_stale_dnsmasq() { [ -d /var/run/libvirt/network ] || return 0 TMP_PIDFILE_LIST="$(mktemp -q)" || { echo "Could not create temporary pidfile list" exit 1 } find /var/run/libvirt/network -name '*.pid' > "$TMP_PIDFILE_LIST" while read -r pidfile; do if is_alive "$pidfile" /usr/sbin/dnsmasq; then start-stop-daemon -K -q -p "$pidfile" -x /usr/sbin/dnsmasq status=$? if [ "$status" -ne 0 ]; then echo "Could not stop stale dnsmasq daemons" exit 1 fi rm -f "$pidfile" fi done < "$TMP_PIDFILE_LIST" } start() { if is_alive "$PIDFILE" "$EXECFILE"; then # libvirtd is already running. Leave it alone. printf 'Starting %s: FAIL\n' "$DAEMON" return 1 fi rm_stale_dnsmasq load_modules printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "$EXECFILE" \ -- -d $LIBVIRTD_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" -x "$EXECFILE" status=$? if [ "$status" -eq 0 ]; then rm_stale_dnsmasq echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } # On receipt of SIGHUP libvirtd will reload its configuration. reload() { printf 'Reloading %s: ' "$DAEMON" start-stop-daemon -K -s HUP -q -p "$PIDFILE" -x "$EXECFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } case "$1" in start|stop|restart|reload) "$1";; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/libvirt/libvirt.hash ================================================ # locally computed sha256 1b616099c18d14b9424a622f2a0bd3e0cfa286414f3416bd1a8173621b2252b2 libvirt-7.7.0.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/libvirt/libvirt.mk ================================================ ################################################################################ # # libvirt # ################################################################################ LIBVIRT_VERSION = 7.7.0 LIBVIRT_SITE = https://libvirt.org/sources LIBVIRT_SOURCE = libvirt-$(LIBVIRT_VERSION).tar.xz LIBVIRT_LICENSE = LGPL-2.1+ LIBVIRT_LICENSE_FILES = COPYING LIBVIRT_CPE_ID_VENDOR = redhat LIBVIRT_DEPENDENCIES = \ host-libxslt \ host-nfs-utils \ host-pkgconf \ host-python-docutils \ gnutls \ libglib2 \ libpciaccess \ libtirpc \ libxml2 \ udev \ zlib \ $(TARGET_NLS_DEPENDENCIES) LIBVIRT_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) LIBVIRT_CONF_ENV += \ CFLAGS="$(TARGET_CFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc`" \ LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libtirpc`" LIBVIRT_CONF_OPTS = \ -Drpath=disabled \ -Dapparmor=disabled \ -Ddocs=disabled \ -Ddriver_bhyve=disabled \ -Ddriver_ch=disabled \ -Ddriver_esx=disabled \ -Ddriver_hyperv=disabled \ -Ddriver_interface=enabled \ -Ddriver_libxl=disabled \ -Ddriver_openvz=disabled \ -Ddriver_remote=enabled \ -Ddriver_secrets=enabled \ -Ddriver_test=disabled \ -Ddriver_vbox=disabled \ -Ddriver_vmware=disabled \ -Ddriver_vz=disabled \ -Ddtrace=disabled \ -Dexpensive_tests=disabled \ -Dfirewalld=disabled \ -Dfirewalld_zone=disabled \ -Dglusterfs=disabled \ -Dhost_validate=enabled \ -Dinit_script=$(if $(BR2_INIT_SYSTEMD),systemd,none) \ -Dlogin_shell=disabled \ -Dnetcf=disabled \ -Dnls=$(if $(BR2_SYSTEM_ENABLE_NLS),enabled,disabled) \ -Dnumad=disabled \ -Dopenwsman=disabled \ -Dpciaccess=enabled \ -Dpm_utils=disabled \ -Dsanlock=disabled \ -Dsecdriver_apparmor=disabled \ -Dstorage_iscsi=disabled \ -Dstorage_iscsi_direct=disabled \ -Dstorage_mpath=disabled \ -Dsysctl_config=enabled \ -Dtest_coverage=false \ -Dtests=disabled \ -Dudev=enabled \ -Dwireshark_dissector=disabled # warning_level should only drive the level of warnings during the # compilation of C code. However, libvirt misuses that to also # enable SSP when warning_level == 2 # Force warning_level=1 to disable SSP, and let our toolchain wrapper # handle it. LIBVIRT_CONF_OPTS += -Dwarning_level=1 ifeq ($(BR2_PACKAGE_ATTR),y) LIBVIRT_CONF_OPTS += -Dattr=enabled LIBVIRT_DEPENDENCIES += attr else LIBVIRT_CONF_OPTS += -Dattr=disabled endif ifeq ($(BR2_PACKAGE_AUDIT),y) LIBVIRT_CONF_OPTS += -Daudit=enabled LIBVIRT_DEPENDENCIES += audit else LIBVIRT_CONF_OPTS += -Daudit=disabled endif ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y) LIBVIRT_CONF_OPTS += -Dbash_completion=enabled LIBVIRT_DEPENDENCIES += bash-completion else LIBVIRT_CONF_OPTS += -Dbash_completion=disabled endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),y) LIBVIRT_CONF_OPTS += -Dblkid=enabled LIBVIRT_DEPENDENCIES += util-linux else LIBVIRT_CONF_OPTS += -Dblkid=disabled endif ifeq ($(BR2_PACKAGE_LIBCAP_NG),y) LIBVIRT_CONF_OPTS += -Dcapng=enabled LIBVIRT_DEPENDENCIES += libcap-ng else LIBVIRT_CONF_OPTS += -Dcapng=disabled endif ifeq ($(BR2_PACKAGE_LIBCURL),y) LIBVIRT_CONF_OPTS += -Dcurl=enabled LIBVIRT_DEPENDENCIES += libcurl else LIBVIRT_CONF_OPTS += -Dcurl=disabled endif ifeq ($(BR2_PACKAGE_LIBFUSE),y) LIBVIRT_CONF_OPTS += -Dfuse=enabled LIBVIRT_DEPENDENCIES += libfuse else LIBVIRT_CONF_OPTS += -Dfuse=disabled endif ifeq ($(BR2_PACKAGE_LIBISCSI),y) LIBVIRT_CONF_OPTS += -Dlibiscsi=enabled LIBVIRT_DEPENDENCIES += libiscsi else LIBVIRT_CONF_OPTS += -Dlibiscsi=disabled endif ifeq ($(BR2_PACKAGE_LIBNL),y) LIBVIRT_CONF_OPTS += -Dlibnl=enabled LIBVIRT_DEPENDENCIES += libnl else LIBVIRT_CONF_OPTS += -Dlibnl=disabled endif ifeq ($(BR2_PACKAGE_LIBPCAP),y) LIBVIRT_CONF_OPTS += -Dlibpcap=enabled LIBVIRT_DEPENDENCIES += libpcap else LIBVIRT_CONF_OPTS += -Dlibpcap=disabled endif ifeq ($(BR2_PACKAGE_NUMACTL),y) LIBVIRT_CONF_OPTS += -Dnumactl=enabled LIBVIRT_DEPENDENCIES += numactl else LIBVIRT_CONF_OPTS += -Dnumactl=disabled endif ifeq ($(BR2_PACKAGE_POLKIT),y) LIBVIRT_CONF_OPTS += -Dpolkit=enabled LIBVIRT_DEPENDENCIES += polkit else LIBVIRT_CONF_OPTS += -Dpolkit=disabled endif ifeq ($(BR2_PACKAGE_READLINE),y) LIBVIRT_CONF_OPTS += -Dreadline=enabled LIBVIRT_DEPENDENCIES += readline else LIBVIRT_CONF_OPTS += -Dreadline=disabled endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) LIBVIRT_CONF_OPTS += -Dselinux=enabled -Dsecdriver_selinux=enabled \ -Dselinux_mount=/sys/fs/selinux LIBVIRT_DEPENDENCIES += libselinux else LIBVIRT_CONF_OPTS += -Dselinux=disabled -Dsecdriver_selinux=disabled endif ifeq ($(BR2_PACKAGE_LVM2_STANDARD_INSTALL),y) LIBVIRT_CONF_OPTS += -Dstorage_lvm=enabled LIBVIRT_DEPENDENCIES += host-lvm2 lvm2 else LIBVIRT_CONF_OPTS += -Dstorage_lvm=disabled endif ifeq ($(BR2_PACKAGE_YAJL),y) LIBVIRT_CONF_OPTS += -Dyajl=enabled LIBVIRT_DEPENDENCIES += yajl else LIBVIRT_CONF_OPTS += -Dyajl=disabled endif ifeq ($(BR2_PACKAGE_LIBVIRT_DAEMON),y) # Network is used by daemon, only LIBVIRT_CONF_OPTS += -Dlibvirtd=enabled -Ddriver_network=enabled ifeq ($(BR2_PACKAGE_LIBSSH),y) LIBVIRT_CONF_OPTS += -Dlibssh=enabled LIBVIRT_DEPENDENCIES += libssh else LIBVIRT_CONF_OPTS += -Dlibssh=disabled endif # Can't build nss plugin without network or yajl ifeq ($(BR2_PACKAGE_LIBNSS)$(BR2_PACKAGE_YAJL),yy) LIBVIRT_CONF_OPTS += -Dnss=enabled LIBVIRT_DEPENDENCIES += libnss else LIBVIRT_CONF_OPTS += -Dnss=disabled endif ifeq ($(BR2_PACKAGE_LIBGSASL),y) LIBVIRT_CONF_OPTS += -Dsasl=enabled LIBVIRT_DEPENDENCIES += libgsasl else LIBVIRT_CONF_OPTS += -Dsasl=disabled endif ifeq ($(BR2_PACKAGE_LIBSSH2),y) LIBVIRT_CONF_OPTS += -Dssh2=enabled LIBVIRT_DEPENDENCIES += libssh2 else LIBVIRT_CONF_OPTS += -Dssh2=disabled endif ifeq ($(BR2_PACKAGE_LIBVIRT_LXC),y) LIBVIRT_CONF_OPTS += -Dlogin_shell=enabled -Ddriver_lxc=enabled LIBVIRT_DEPENDENCIES += lxc else LIBVIRT_CONF_OPTS += -Dlogin_shell=disabled -Ddriver_lxc=disabled endif ifeq ($(BR2_PACKAGE_LIBVIRT_QEMU),y) LIBVIRT_CONF_OPTS += -Ddriver_qemu=enabled -Dqemu_user=qemu -Dqemu_group=kvm else LIBVIRT_CONF_OPTS += -Ddriver_qemu=disabled -Dqemu_user=no -Dqemu_group=no endif else # BR2_PACKAGE_LIBVIRT_DAEMON LIBVIRT_CONF_OPTS += -Dlibvirtd=disabled -Ddriver_network=disabled endif define LIBVIRT_INSTALL_UDEV_RULES $(INSTALL) -D -m 644 package/libvirt/90-kvm.rules \ $(TARGET_DIR)/etc/udev/rules.d/90-kvm.rules endef LIBVIRT_POST_INSTALL_TARGET_HOOKS += LIBVIRT_INSTALL_UDEV_RULES # Adjust directory ownerships and permissions. Notice /var/log is a symlink to # /tmp in the default sysvinit skeleton, so some directories may disappear at # run-time. Set the permissions anyway, since they are valid for the default # systemd skeleton. define LIBVIRT_PERMISSIONS /etc/libvirt d 700 root root - - - - - /etc/libvirt/nwfilter d 700 root root - - - - - /var/lib/libvirt d 755 root root - - - - - /var/lib/libvirt/boot d 711 root root - - - - - /var/lib/libvirt/dnsmasq d 755 root root - - - - - /var/lib/libvirt/filesystems d 711 root root - - - - - /var/lib/libvirt/images d 711 root root - - - - - /var/lib/libvirt/network d 700 root root - - - - - /var/lib/libvirt/qemu d 751 qemu kvm - - - - - /var/lib/libvirt/qemu/autostart d 700 root root - - - - - /var/lib/libvirt/qemu/networks d 700 root root - - - - - /var/lib/libvirt/qemu/networks/autostart d 700 root root - - - - - /var/lib/libvirt/qemu/channel d 755 qemu kvm - - - - - /var/lib/libvirt/qemu/channel/target d 755 qemu kvm - - - - - /var/lib/libvirt/qemu/dump d 755 qemu kvm - - - - - /var/lib/libvirt/qemu/nvram d 755 qemu kvm - - - - - /var/lib/libvirt/qemu/save d 755 qemu kvm - - - - - /var/lib/libvirt/qemu/snapshot d 755 qemu kvm - - - - - /var/lib/libvirt/secrets d 700 root root - - - - - /var/lib/libvirt/storage d 755 root root - - - - - /var/lib/libvirt/storage/autostart d 755 root root - - - - - /var/cache/libvirt d 711 root root - - - - - /var/cache/libvirt/lxc d 750 root root - - - - - /var/cache/libvirt/qemu d 750 qemu kvm - - - - - /var/cache/libvirt/qemu/capabilities d 755 root root - - - - - /var/log/libvirt d 700 root root - - - - - /var/log/libvirt/lxc d 750 root root - - - - - /var/log/libvirt/qemu d 750 root root - - - - - /var/log/swtpm d 755 root root - - - - - /var/log/swtpm/libvirt d 755 root root - - - - - /var/log/swtpm/libvirt/qemu d 711 root root - - - - - endef # libvirt may need to create persistent files (e.g. VM definitions) in these # directories. Move them to /var/lib because /etc may be on a read-only or # volatile (initramfs) filesystem. We could tweak the code to change these # paths but the patch would be large and would break compatibility with # ordinary installations and with the documentation. define LIBVIRT_CREATE_SYMLINKS $(INSTALL) -m 700 -d $(TARGET_DIR)/etc/libvirt $(INSTALL) -m 755 -d $(TARGET_DIR)/var/lib/libvirt $(INSTALL) -m 751 -d $(TARGET_DIR)/var/lib/libvirt/qemu $(INSTALL) -m 700 -d $(TARGET_DIR)/var/lib/libvirt/secrets $(INSTALL) -m 755 -d $(TARGET_DIR)/var/lib/libvirt/storage ln -s -f ../../var/lib/libvirt/qemu $(TARGET_DIR)/etc/libvirt/ ln -s -f ../../var/lib/libvirt/secrets $(TARGET_DIR)/etc/libvirt/ ln -s -f ../../var/lib/libvirt/storage $(TARGET_DIR)/etc/libvirt/ endef LIBVIRT_PRE_INSTALL_TARGET_HOOKS += LIBVIRT_CREATE_SYMLINKS ifeq ($(BR2_PACKAGE_LIBVIRT_QEMU),y) define LIBVIRT_USERS qemu -1 kvm -1 * - - - Libvirt qemu/kvm daemon endef endif ifeq ($(BR2_PACKAGE_LIBVIRT_DAEMON),y) define LIBVIRT_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/libvirt/S91virtlogd $(TARGET_DIR)/etc/init.d/S91virtlogd $(INSTALL) -D -m 0755 package/libvirt/S92libvirtd $(TARGET_DIR)/etc/init.d/S92libvirtd endef endif $(eval $(meson-package)) ================================================ FILE: package/libvncserver/Config.in ================================================ config BR2_PACKAGE_LIBVNCSERVER bool "libvncserver" depends on BR2_USE_MMU # VNCommand.c uses fork() # binutils issue (bad expression) depends on !BR2_nios2 depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LZO select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL help libvncserver is a VNC server/client library. https://libvnc.github.io/ if BR2_PACKAGE_LIBVNCSERVER config BR2_PACKAGE_LIBVNCSERVER_TIGHTPNG bool "TightPNG encoding support" select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBPNG help TightPNG encoding speeds up HTML5 based VNC clients like noVNC. http://wiki.qemu.org/VNC_Tight_PNG endif comment "libvncserver needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on !BR2_nios depends on BR2_STATIC_LIBS ================================================ FILE: package/libvncserver/libvncserver.hash ================================================ # Locally computed: sha256 0ae5bb9175dc0a602fe85c1cf591ac47ee5247b87f2bf164c16b05f87cbfa81a LibVNCServer-0.9.13.tar.gz sha256 4d23c8c814e5baf007d854f01d8502e77dc56a41144934e003fb32c4e052d20f COPYING ================================================ FILE: package/libvncserver/libvncserver.mk ================================================ ################################################################################ # # libvncserver # ################################################################################ LIBVNCSERVER_VERSION = 0.9.13 LIBVNCSERVER_SOURCE = LibVNCServer-$(LIBVNCSERVER_VERSION).tar.gz LIBVNCSERVER_SITE = https://github.com/LibVNC/libvncserver/archive LIBVNCSERVER_LICENSE = GPL-2.0+ LIBVNCSERVER_LICENSE_FILES = COPYING LIBVNCSERVER_CPE_ID_VENDOR = libvncserver_project LIBVNCSERVER_INSTALL_STAGING = YES LIBVNCSERVER_DEPENDENCIES = host-pkgconf lzo LIBVNCSERVER_CONF_OPTS = -DWITH_LZO=ON # only used for examples LIBVNCSERVER_CONF_OPTS += \ -DWITH_FFMPEG=OFF \ -DWITH_GTK=OFF \ -DWITH_SDL=OFF ifneq ($(BR2_TOOLCHAIN_HAS_THREADS),y) LIBVNCSERVER_CONF_OPTS += -DWITH_THREADS=ON else LIBVNCSERVER_CONF_OPTS += -DWITH_THREADS=OFF endif # openssl supports needs NPTL thread support ifeq ($(BR2_PACKAGE_OPENSSL)$(BR2_TOOLCHAIN_HAS_THREADS_NPTL),yy) LIBVNCSERVER_CONF_OPTS += -DWITH_OPENSSL=ON LIBVNCSERVER_DEPENDENCIES += openssl else LIBVNCSERVER_CONF_OPTS += -DWITH_OPENSSL=OFF endif ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) LIBVNCSERVER_CONF_OPTS += -DWITH_GCRYPT=ON LIBVNCSERVER_DEPENDENCIES += libgcrypt else LIBVNCSERVER_CONF_OPTS += -DWITH_GCRYPT=OFF endif ifeq ($(BR2_PACKAGE_GNUTLS)$(BR2_PACKAGE_LIBGCRYPT),yy) LIBVNCSERVER_CONF_OPTS += -DWITH_GNUTLS=ON LIBVNCSERVER_DEPENDENCIES += gnutls else LIBVNCSERVER_CONF_OPTS += -DWITH_GNUTLS=OFF endif ifeq ($(BR2_PACKAGE_JPEG),y) LIBVNCSERVER_CONF_OPTS += -DWITH_JPEG=ON LIBVNCSERVER_DEPENDENCIES += jpeg else LIBVNCSERVER_CONF_OPTS += -DWITH_JPEG=OFF endif ifeq ($(BR2_PACKAGE_LIBPNG),y) LIBVNCSERVER_CONF_OPTS += -DWITH_PNG=ON LIBVNCSERVER_DEPENDENCIES += libpng else LIBVNCSERVER_CONF_OPTS += -DWITH_PNG=OFF endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) LIBVNCSERVER_CONF_OPTS += -DWITH_SYSTEMD=ON LIBVNCSERVER_DEPENDENCIES += systemd else LIBVNCSERVER_CONF_OPTS += -DWITH_SYSTEMD=OFF endif ifeq ($(BR2_PACKAGE_ZLIB),y) LIBVNCSERVER_CONF_OPTS += -DWITH_ZLIB=ON LIBVNCSERVER_DEPENDENCIES += zlib else LIBVNCSERVER_CONF_OPTS += -DWITH_ZLIB=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/libvorbis/Config.in ================================================ config BR2_PACKAGE_LIBVORBIS bool "libvorbis" select BR2_PACKAGE_LIBOGG help Library for the Vorbis open source audio decoder Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit, polyphonic) audio and music at fixed and variable bitrates from 16 to 128 kbps/channel. This places Vorbis in the same competitive class as audio representations such as MPEG-4 (AAC), and similar to, but higher performance than MPEG-1/2 audio layer 3, MPEG-4 audio (TwinVQ), WMA and PAC. https://xiph.org/vorbis/ ================================================ FILE: package/libvorbis/libvorbis.hash ================================================ # From http://www.xiph.org/downloads/ sha256 b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b libvorbis-1.3.7.tar.xz # License files, locally calculated sha256 ec1815db59fcd302846df949d7424876cb2e2dc5ed1606c5fb0b36787b1cf43a COPYING ================================================ FILE: package/libvorbis/libvorbis.mk ================================================ ################################################################################ # # libvorbis # ################################################################################ LIBVORBIS_VERSION = 1.3.7 LIBVORBIS_SOURCE = libvorbis-$(LIBVORBIS_VERSION).tar.xz LIBVORBIS_SITE = https://downloads.xiph.org/releases/vorbis LIBVORBIS_INSTALL_STAGING = YES LIBVORBIS_CONF_OPTS = --disable-oggtest LIBVORBIS_DEPENDENCIES = host-pkgconf libogg LIBVORBIS_LICENSE = BSD-3-Clause LIBVORBIS_LICENSE_FILES = COPYING LIBVORBIS_CPE_ID_VENDOR = xiph.org $(eval $(autotools-package)) ================================================ FILE: package/libvpx/0001-vpx_mem-vpx_mem.h-Fix-compilation-with-uClibc.patch ================================================ 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_VPX_MEM_VPX_MEM_H_ #include "vpx_config.h" -#if defined(__uClinux__) -#include -#endif #include #include -- 2.8.1 ================================================ FILE: package/libvpx/Config.in ================================================ config BR2_PACKAGE_LIBVPX bool "libvpx" depends on BR2_TOOLCHAIN_HAS_THREADS help A high-quality, open video format that's freely available to everyone. Supports the VP8 and VP9 formats. http://webmproject.org comment "libvpx needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libvpx/libvpx.hash ================================================ # Locally computed: sha256 965e51c91ad9851e2337aebcc0f517440c637c506f3a03948062e3d5ea129a83 libvpx-1.11.0.tar.gz sha256 8267348d5af1262c11d1a08de2f5afc77457755f1ac658627dd9acf71011d615 LICENSE sha256 cc3273e0694ea5896145e0677699b53471b03ea43021ddc50e7923fbb9f5023c PATENTS ================================================ FILE: package/libvpx/libvpx.mk ================================================ ################################################################################ # # libvpx # ################################################################################ LIBVPX_VERSION = 1.11.0 LIBVPX_SITE = $(call github,webmproject,libvpx,v$(LIBVPX_VERSION)) LIBVPX_LICENSE = BSD-3-Clause LIBVPX_LICENSE_FILES = LICENSE PATENTS LIBVPX_CPE_ID_VENDOR = webmproject LIBVPX_INSTALL_STAGING = YES # ld is being used with cc options. therefore, pretend ld is cc. LIBVPX_CONF_ENV = \ LD="$(TARGET_CC)" \ CROSS=$(GNU_TARGET_NAME) LIBVPX_CONF_OPTS = \ --disable-examples \ --disable-docs \ --disable-unit-tests # vp9/ratectrl_rtc.cc ifeq ($(BR2_INSTALL_LIBSTDCPP),y) LIBVPX_CONF_OPTS += --enable-vp9-encoder else LIBVPX_CONF_OPTS += --disable-vp9-encoder endif # This is not a true autotools package. It is based on the ffmpeg build system define LIBVPX_CONFIGURE_CMDS (cd $(LIBVPX_SRCDIR) && rm -rf config.cache && \ $(TARGET_CONFIGURE_OPTS) \ $(TARGET_CONFIGURE_ARGS) \ $(LIBVPX_CONF_ENV) \ ./configure \ --target=generic-gnu \ --enable-pic \ --prefix=/usr \ $(SHARED_STATIC_LIBS_OPTS) \ $(LIBVPX_CONF_OPTS) \ ) endef define LIBVPX_BUILD_CMDS $(TARGET_MAKE_ENV) $(LIBVPX_MAKE_ENV) $(MAKE) -C $(@D) all endef define LIBVPX_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(LIBVPX_MAKE_ENV) $(MAKE) DESTDIR="$(STAGING_DIR)" -C $(@D) install endef define LIBVPX_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(LIBVPX_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)" -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/libwebcam/Config.in ================================================ config BR2_PACKAGE_LIBWEBCAM bool "libwebcam" ================================================ FILE: package/libwebcam/libwebcam.mk ================================================ ################################################################################ # # libwebcam # ################################################################################ LIBWEBCAM_VERSION = 0.2.5 LIBWEBCAM_SOURCE = libwebcam-src-$(LIBWEBCAM_VERSION).tar.gz LIBWEBCAM_SITE = http://freefr.dl.sourceforge.net/project/libwebcam/source LIBWEBCAM_DEPENDENCIES = libxml2 define LIBWEBCAM_INSTALL_TARGET_CMDS cp $(@D)/uvcdynctrl/uvcdynctrl $(TARGET_DIR)/usr/bin/uvcdynctrl cp -d $(@D)/libwebcam/libwebcam.so* $(TARGET_DIR)/usr/lib endef $(eval $(cmake-package)) ================================================ FILE: package/libwebsock/0001-Switch-to-use-pkg-config-to-detect-libevent-and-open.patch ================================================ From a6c35dbab5a2a75c176e031122ee64152e50e5d3 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 1 Jan 2015 12:23:43 +0100 Subject: [PATCH] Switch to use pkg-config to detect libevent and openssl Switching to pkg-config fixes a number of problems when detecting the libraries. For example the detection of libpthread was failing, because libevent_threads was added to LIBS before libevent itself, causing the libpthread test to fail due to missing symbols. pkg-config is anyway nowadays the preferred way for detecting libraries. It also has the benefit of working properly in static library situations. Signed-off-by: Thomas Petazzoni --- configure.ac | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/configure.ac b/configure.ac index d4109ce..fc1cadc 100644 --- a/configure.ac +++ b/configure.ac @@ -27,35 +27,20 @@ AC_FUNC_MALLOC AC_FUNC_REALLOC AC_CHECK_FUNCS([memset socket strstr]) -AC_CHECK_HEADERS([event2/thread.h], [ - LIBS="-levent_pthreads ${LIBS}" - ], [ - echo "libevent_pthreads required, failing" - exit -1 - ]) -AC_CHECK_LIB(pthread, pthread_create, [LIBS="-lpthread ${LIBS}"], [ +AC_CHECK_LIB(pthread, pthread_create, [PTHREAD_LIBS="-lpthread"], [ echo "pthreads required, failing" exit -1 ]) -AC_CHECK_LIB(event, event_base_dispatch, [], [ - echo "libevent required, failing" - exit -1 - ]) + +PKG_CHECK_MODULES([EVENT], [libevent]) +PKG_CHECK_MODULES([EVENT_PTHREAD], [libevent_pthreads]) AS_IF([test "x$with_ssl" != "xno"], [ - AC_CHECK_LIB([ssl], [SSL_CTX_new], - [ - LIBS="-lssl ${LIBS}" - AC_CHECK_LIB([event_openssl], [bufferevent_openssl_socket_new], [ - LIBS="-levent_openssl ${LIBS}" - have_ssl=yes - ], [have_ssl=no]) - ], - [have_ssl=no]) - ], - [have_ssl=no]) - + PKG_CHECK_MODULES([SSL], [openssl], [have_ssl=yes], [have_ssl=no]) + AS_IF([test "x${have_ssl}" = "xyes"], + [PKG_CHECK_MODULES([EVENT_OPENSSL], [libevent_openssl], [have_ssl=yes], [have_ssl=no])])]) + AS_IF([test "x$have_ssl" = "xyes"], [ AC_DEFINE([WEBSOCK_HAVE_SSL], [1], [Define if building SSL support]) @@ -63,8 +48,11 @@ AS_IF([test "x$have_ssl" = "xyes"], [AS_IF([test "x$with_ssl" = "xyes"], [AC_MSG_ERROR([SSL support requested but not found]) ])]) - + AM_CONDITIONAL([HAVE_SSL], [test "x$have_ssl" = "xyes"]) + +LIBS="${EVENT_LIBS} ${EVENT_PTHREAD_LIBS} ${PTHREAD_LIBS} ${SSL_LIBS} ${EVENT_OPENSSL_LIBS}" + AC_DEFINE_UNQUOTED([WEBSOCK_PACKAGE_VERSION], ["$PACKAGE_VERSION"], [libwebsock version]) AC_DEFINE_UNQUOTED([WEBSOCK_PACKAGE_STRING], ["$PACKAGE_STRING"], [libwebsock package string]) AC_DEFINE_UNQUOTED([WEBSOCK_PACKAGE_NAME], ["$PACKAGE_NAME"], [libwebsock package name]) -- 2.1.0 ================================================ FILE: package/libwebsock/0002-fix-ssl.patch ================================================ config: fix SSL detection The @WEBSOCK_HAVE_SSL@ is replaced at configure time with either a 1 or 0. The rest of the code is simply checking to see if WEBSOCK_HAVE_SSL is defined at all. Using a #undef WEBSOCK_HAVE_SSL will cause configure to either comment it out or change the line to "#define WEBSOCK_HAVE_SSL 1". Signed-off-by: Clayton Shotwell diff -durN a/src/websock_config.h.in b/src/websock_config.h.in --- a/src/websock_config.h.in +++ b/src/websock_config.h.in @@ -4,6 +4,6 @@ #define WEBSOCK_PACKAGE_STRING @WEBSOCK_PACKAGE_STRING@ #define WEBSOCK_PACKAGE_VERSION @WEBSOCK_PACKAGE_VERSION@ #define WEBSOCK_PACKAGE_NAME @WEBSOCK_PACKAGE_NAME@ -#define WEBSOCK_HAVE_SSL @WEBSOCK_HAVE_SSL@ +#undef WEBSOCK_HAVE_SSL #endif ================================================ FILE: package/libwebsock/0003-fix-incorrect-inline.patch ================================================ utf: do not define decode() to be inline Currently, decode() is prototyped in utf.h, its body is in utf.c and it is called from util.c. However, decode() is defined to be inline, which can not work since, when compiling util.c, the body of decode() is out-of-scope for that compilation unit. Furthermore, decode() uses a utf8d, which is a static defined in utf.c . So utf8d is not visible when compiling util.c either. This means that the definition of decode() along with utf8d is basically wrong, and is now failing with gcc-5.x, with warnings like so: libtool: compile: /home/ymorin/dev/buildroot/O/host/usr/bin/arm-linux-gcc -DHAVE_CONFIG_H -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wmissing-prototypes -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c utf.c -fPIC -DPIC -o .libs/libwebsock_la-utf.o utf.c:36:12: warning: ‘utf8d’ is static but used in inline function ‘decode’ which is not static *state = utf8d[256 + *state*16 + type]; ^ utf.c:30:19: warning: ‘utf8d’ is static but used in inline function ‘decode’ which is not static uint32_t type = utf8d[byte]; ^ libtool: compile: /home/ymorin/dev/buildroot/O/host/usr/bin/arm-linux-gcc -DHAVE_CONFIG_H -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wmissing-prototypes -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c util.c -fPIC -DPIC -o .libs/libwebsock_la-util.o In file included from websock.h:73:0, from util.c:20: utf.h:25:17: warning: inline function ‘decode’ declared but never defined uint32_t inline decode(uint32_t *state, uint32_t *codep, uint32_t byte); ^ This results in decode() to be omitted from libwebsock.so, and thus link failures when another program wants to link with -lwebsock. The simplest solution is to not inline decode() at all. Signed-off-by: "Yann E. MORIN" --- Note: an alternative would be to move both decode() and utf8d into decode.h nad ditch decode.c if decode really must be inline. This is left as an execise for an interested party. But since upstream hasn't seen a single commit in more than a year now... :-( diff -durN a/src/utf.c b/src/utf.c --- a/src/utf.c 2014-07-15 01:43:20.000000000 +0200 +++ b/src/utf.c 2015-08-22 22:29:38.667393786 +0200 @@ -24,7 +24,7 @@ 1,3,1,1,1,1,1,3,1,3,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // s7..s8 }; -uint32_t inline +uint32_t decode(uint32_t* state, uint32_t* codep, uint32_t byte) { uint32_t type = utf8d[byte]; diff -durN a/src/utf.h b/src/utf.h --- a/src/utf.h 2014-07-15 01:43:20.000000000 +0200 +++ b/src/utf.h 2015-08-22 22:29:10.439227396 +0200 @@ -22,7 +22,7 @@ #include -uint32_t inline decode(uint32_t *state, uint32_t *codep, uint32_t byte); +uint32_t decode(uint32_t *state, uint32_t *codep, uint32_t byte); #endif /* UTF_H_ */ ================================================ FILE: package/libwebsock/Config.in ================================================ config BR2_PACKAGE_LIBWEBSOCK bool "libwebsock" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBEVENT help C library for easy WebSockets servers. This library allows a developer to quickly develop WebSocket servers by focusing on the actual logic of your WebSocket implementation instead of the details of the WebSocket protocol or even specifics of C sockets. https://github.com/payden/libwebsock comment "libwebsock needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libwebsock/libwebsock.hash ================================================ # Locally calculated sha256 34cf8376446e2371c9af47394043a30dc16af7ed5437d56bc6135c5dfda9ed22 libwebsock-3c1615eeadb0b582b63851073bfe3e5132f31ebc.tar.gz sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING.lesser ================================================ FILE: package/libwebsock/libwebsock.mk ================================================ ################################################################################ # # libwebsock # ################################################################################ LIBWEBSOCK_VERSION = 3c1615eeadb0b582b63851073bfe3e5132f31ebc LIBWEBSOCK_SITE = $(call github,payden,libwebsock,$(LIBWEBSOCK_VERSION)) LIBWEBSOCK_DEPENDENCIES = libevent host-pkgconf LIBWEBSOCK_AUTORECONF = YES LIBWEBSOCK_INSTALL_STAGING = YES LIBWEBSOCK_LICENSE = LGPL-3.0 LIBWEBSOCK_LICENSE_FILES = COPYING.lesser ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBWEBSOCK_DEPENDENCIES += openssl LIBWEBSOCK_CONF_OPTS += --with-ssl else LIBWEBSOCK_CONF_OPTS += --without-ssl endif $(eval $(autotools-package)) ================================================ FILE: package/libwebsockets/Config.in ================================================ config BR2_PACKAGE_LIBWEBSOCKETS bool "libwebsockets" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_ZLIB help Libwebsockets is a lightweight pure C library built to use minimal CPU and memory resources, and provide fast throughput in both directions. https://libwebsockets.org/ comment "libwebsockets needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libwebsockets/libwebsockets.hash ================================================ # Locally computed: sha256 6ece1f422c6d38aabedec2476f2ac12e9aede8691b08137068ad85545ce3ff78 libwebsockets-4.0.21.tar.gz sha256 5756db345eb9c21cb06dd7cb69c38ec234657a233f9a186b4f5fa453681bd394 LICENSE ================================================ FILE: package/libwebsockets/libwebsockets.mk ================================================ ################################################################################ # # libwebsockets # ################################################################################ LIBWEBSOCKETS_VERSION = 4.0.21 LIBWEBSOCKETS_SITE = $(call github,warmcat,libwebsockets,v$(LIBWEBSOCKETS_VERSION)) LIBWEBSOCKETS_LICENSE = MIT with exceptions LIBWEBSOCKETS_LICENSE_FILES = LICENSE LIBWEBSOCKETS_DEPENDENCIES = zlib LIBWEBSOCKETS_INSTALL_STAGING = YES LIBWEBSOCKETS_CONF_OPTS = \ -DLWS_WITHOUT_TESTAPPS=ON \ -DLWS_IPV6=ON \ -DLWS_UNIX_SOCK=ON \ -DLWS_WITHOUT_EXTENSIONS=OFF # 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 else LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_SSL=OFF endif ifeq ($(BR2_PACKAGE_LIBEV),y) LIBWEBSOCKETS_DEPENDENCIES += libev LIBWEBSOCKETS_CONF_OPTS += \ -DLWS_WITH_LIBEV=ON \ -DLWS_WITH_LIBEVENT=OFF else ifeq ($(BR2_PACKAGE_LIBEVENT),y) LIBWEBSOCKETS_DEPENDENCIES += libevent LIBWEBSOCKETS_CONF_OPTS += \ -DLWS_WITH_LIBEV=OFF \ -DLWS_WITH_LIBEVENT=ON else LIBWEBSOCKETS_CONF_OPTS += \ -DLWS_WITH_LIBEV=OFF \ -DLWS_WITH_LIBEVENT=OFF endif ifeq ($(BR2_PACKAGE_LIBGLIB2),y) LIBWEBSOCKETS_DEPENDENCIES += libglib2 LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_GLIB=ON else LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_GLIB=OFF endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y) LIBWEBSOCKETS_DEPENDENCIES += util-linux LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_FSMOUNT=ON else LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_FSMOUNT=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_SHARED_LIBS),y) LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_STATIC=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/libwpe/Config.in ================================================ comment "libwpe needs a toolchain w/ C++, dynamic library and an OpenEGL-capable backend" depends on !BR2_PACKAGE_HAS_LIBEGL || !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS config BR2_PACKAGE_LIBWPE bool "libwpe" depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_LIBXKBCOMMON help Base library for the WPE WebKit port. https://wpewebkit.org/ ================================================ FILE: package/libwpe/libwpe.hash ================================================ # From https://wpewebkit.org/releases/libwpe-1.10.1.tar.xz.sums md5 f60fc13b519a66d262afb76c77441870 libwpe-1.10.1.tar.xz sha1 1a8085b9a172d37e952c07bbb09b1654d4161ab2 libwpe-1.10.1.tar.xz sha256 a327b3ffcf2356dbe8148c1db4bbdc5359d7e7163d177f67551a8393b144adf0 libwpe-1.10.1.tar.xz # Hashes for license files: sha256 35bef295cedbbf179eaee14328002587a0e7dc08ebf3f15ea080a6f2815f0d7b COPYING ================================================ FILE: package/libwpe/libwpe.mk ================================================ ################################################################################ # # libwpe # ################################################################################ LIBWPE_VERSION = 1.10.1 LIBWPE_SITE = https://wpewebkit.org/releases LIBWPE_SOURCE = libwpe-$(LIBWPE_VERSION).tar.xz LIBWPE_INSTALL_STAGING = YES LIBWPE_LICENSE = BSD-2-Clause LIBWPE_LICENSE_FILES = COPYING LIBWPE_DEPENDENCIES = libegl libxkbcommon LIBWPE_CFLAGS = $(TARGET_CFLAGS) LIBWPE_CXXFLAGS = $(TARGET_CXXFLAGS) # Workaround for https://github.com/raspberrypi/userland/issues/316 ifeq ($(BR2_PACKAGE_RPI_USERLAND),y) LIBWPE_CFLAGS += -D_GNU_SOURCE LIBWPE_CXXFLAGS += -D_GNU_SOURCE endif $(eval $(meson-package)) ================================================ FILE: package/libxcrypt/Config.in ================================================ config BR2_PACKAGE_LIBXCRYPT bool "libxcrypt" help libxcrypt is a modern library for one-way hashing of passwords. It supports a wide variety of both modern and historical hashing methods: yescrypt, gost-yescrypt, scrypt, bcrypt, sha512crypt, sha256crypt, md5crypt, SunMD5, sha1crypt, NT, bsdicrypt, bigcrypt, and descrypt. https://github.com/besser82/libxcrypt ================================================ FILE: package/libxcrypt/libxcrypt.hash ================================================ # Locally calculated sha256 e8a544dd19171c1e6191a6044c96cc31496d781ba08b5a00f53310d001d58114 libxcrypt-4.4.26.tar.gz sha256 cead8b3d94a143f64ccb571ada1cea47a70a0b847c8d95306e8d78ed68951f3d LICENSING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB ================================================ FILE: package/libxcrypt/libxcrypt.mk ================================================ ################################################################################ # # libxcrypt # ################################################################################ LIBXCRYPT_VERSION = 4.4.26 LIBXCRYPT_SITE = $(call github,besser82,libxcrypt,v$(LIBXCRYPT_VERSION)) LIBXCRYPT_LICENSE = LGPL-2.1+ LIBXCRYPT_LICENSE_FILES = LICENSING COPYING.LIB LIBXCRYPT_INSTALL_STAGING = YES LIBXCRYPT_AUTORECONF = YES # Some warnings turn into errors with some sensitive compilers LIBXCRYPT_CONF_OPTS = --disable-werror # Disable obsolete and unsecure API LIBXCRYPT_CONF_OPTS += --disable-obsolete_api $(eval $(autotools-package)) ================================================ FILE: package/libxkbcommon/Config.in ================================================ config BR2_PACKAGE_LIBXKBCOMMON bool "libxkbcommon" select BR2_PACKAGE_LIBXCB if BR2_PACKAGE_XORG7 help xkbcommon is a keymap compiler and support library which processes a reduced subset of keymaps as defined by the XKB specification. https://xkbcommon.org ================================================ FILE: package/libxkbcommon/libxkbcommon.hash ================================================ # From https://lists.freedesktop.org/archives/wayland-devel/2021-September/041976.html sha256 b3c710d27a2630054e1e1399c85b7f330ef03359b460f0c1b3b587fd01fe9234 libxkbcommon-1.3.1.tar.xz # License file: sha256 086caee279449369d41c1157911ec7696e707b93feba7280de757d3c470b2dfb LICENSE ================================================ FILE: package/libxkbcommon/libxkbcommon.mk ================================================ ################################################################################ # # libxkbcommon # ################################################################################ LIBXKBCOMMON_VERSION = 1.3.1 LIBXKBCOMMON_SITE = https://xkbcommon.org/download LIBXKBCOMMON_SOURCE = libxkbcommon-$(LIBXKBCOMMON_VERSION).tar.xz LIBXKBCOMMON_LICENSE = MIT/X11 LIBXKBCOMMON_LICENSE_FILES = LICENSE LIBXKBCOMMON_INSTALL_STAGING = YES LIBXKBCOMMON_DEPENDENCIES = host-bison host-flex LIBXKBCOMMON_CONF_OPTS = \ -Denable-docs=false \ -Denable-wayland=false \ -Denable-xkbregistry=false ifeq ($(BR2_PACKAGE_XORG7),y) LIBXKBCOMMON_CONF_OPTS += -Denable-x11=true LIBXKBCOMMON_DEPENDENCIES += libxcb else LIBXKBCOMMON_CONF_OPTS += -Denable-x11=false endif $(eval $(meson-package)) ================================================ FILE: package/libxml-parser-perl/libxml-parser-perl.hash ================================================ # locally computed hash sha256 d331332491c51cccfb4cb94ffc44f9cd73378e618498d4a37df9e043661c515d XML-Parser-2.46.tar.gz sha256 6a2e768443ed00f09d3d4bc4dd14451035eac13c6864d68d8e2f76edf5a044f2 README ================================================ FILE: package/libxml-parser-perl/libxml-parser-perl.mk ================================================ ################################################################################ # # libxml-parser-perl # ################################################################################ LIBXML_PARSER_PERL_VERSION = 2.46 LIBXML_PARSER_PERL_SOURCE = XML-Parser-$(LIBXML_PARSER_PERL_VERSION).tar.gz LIBXML_PARSER_PERL_SITE = $(BR2_CPAN_MIRROR)/authors/id/T/TO/TODDR HOST_LIBXML_PARSER_PERL_DEPENDENCIES = host-expat LIBXML_PARSER_PERL_LICENSE = Artistic or GPL-1.0+ LIBXML_PARSER_PERL_LICENSE_FILES = README LIBXML_PARSER_PERL_RUN_PERL = `which perl` HOST_LIBXML_PARSER_PERL_CONFIGURE_OPTS = \ $(HOST_CONFIGURE_OPTS) \ LD="$(HOSTCC)" define HOST_LIBXML_PARSER_PERL_CONFIGURE_CMDS (cd $(@D) ; \ $(HOST_LIBXML_PARSER_PERL_CONFIGURE_OPTS) \ $(LIBXML_PARSER_PERL_RUN_PERL) Makefile.PL \ PREFIX=$(HOST_DIR) \ EXPATLIBPATH=$(HOST_DIR)/lib \ EXPATINCPATH=$(HOST_DIR)/include \ INSTALLDIRS=site \ INSTALLSITELIB=$(HOST_DIR)/lib/perl \ INSTALLSITEARCH=$(HOST_DIR)/lib/perl \ ) endef define HOST_LIBXML_PARSER_PERL_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) $(HOST_LIBXML_PARSER_PERL_CONFIGURE_OPTS) -C $(@D) endef define HOST_LIBXML_PARSER_PERL_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install endef $(eval $(host-generic-package)) ================================================ FILE: package/libxml2/Config.in ================================================ config BR2_PACKAGE_LIBXML2 bool "libxml2" help XML C Parser http://xmlsoft.org/ ================================================ FILE: package/libxml2/libxml2.hash ================================================ # Locally calculated after checking pgp signature sha256 c8d6681e38c56f172892c85ddc0852e1fd4b53b4209e7f4ebf17f7e2eae71d92 libxml2-2.9.12.tar.gz # License files, locally calculated sha256 c5c63674f8a83c4d2e385d96d1c670a03cb871ba2927755467017317878574bd COPYING ================================================ FILE: package/libxml2/libxml2.mk ================================================ ################################################################################ # # libxml2 # ################################################################################ LIBXML2_VERSION = 2.9.12 LIBXML2_SITE = http://xmlsoft.org/sources LIBXML2_INSTALL_STAGING = YES LIBXML2_LICENSE = MIT LIBXML2_LICENSE_FILES = COPYING LIBXML2_CPE_ID_VENDOR = xmlsoft 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 LIBXML2_DEPENDENCIES = host-pkgconf HOST_LIBXML2_CONF_OPTS = --without-zlib --without-lzma --without-python ifeq ($(BR2_PACKAGE_ZLIB),y) LIBXML2_DEPENDENCIES += zlib LIBXML2_CONF_OPTS += --with-zlib=$(STAGING_DIR)/usr else LIBXML2_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_XZ),y) LIBXML2_DEPENDENCIES += xz LIBXML2_CONF_OPTS += --with-lzma else LIBXML2_CONF_OPTS += --without-lzma endif LIBXML2_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv) ifeq ($(BR2_ENABLE_LOCALE)$(BR2_PACKAGE_LIBICONV),y) LIBXML2_CONF_OPTS += --with-iconv else LIBXML2_CONF_OPTS += --without-iconv endif define LIBXML2_CLEANUP_XML2CONF rm -f $(TARGET_DIR)/usr/lib/xml2Conf.sh endef LIBXML2_POST_INSTALL_TARGET_HOOKS += LIBXML2_CLEANUP_XML2CONF $(eval $(autotools-package)) $(eval $(host-autotools-package)) # libxml2 for the host LIBXML2_HOST_BINARY = $(HOST_DIR)/bin/xmllint ================================================ FILE: package/libxmlpp/Config.in ================================================ config BR2_PACKAGE_LIBXMLPP bool "libxml++" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # glibmm -> libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glibmm -> libglib2 depends on BR2_USE_MMU # glibmm -> libglib2 select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_GLIBMM help libxml++ is a C++ wrapper for the libxml XML parser library. https://libxmlplusplus.github.io/libxmlplusplus/ comment "libxml++ needs a toolchain w/ C++, wchar, threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_USE_WCHAR \ ||!BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU ================================================ FILE: package/libxmlpp/libxmlpp.hash ================================================ # From http://ftp.gnome.org/pub/GNOME/sources/libxml++/3.2/libxml++-3.2.0.sha256sum sha256 b786fae7fd7820d356698069a787d107995c3efcbef50d8f4efd3766ab768e4f libxml++-3.2.0.tar.xz # Hash for license file sha256 a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7 COPYING ================================================ FILE: package/libxmlpp/libxmlpp.mk ================================================ ################################################################################ # # libxmlpp # ################################################################################ LIBXMLPP_VERSION_MAJOR = 3.2 LIBXMLPP_VERSION = $(LIBXMLPP_VERSION_MAJOR).0 LIBXMLPP_LICENSE = LGPL-2.1 (library), LGPL-2.0+ (examples) LIBXMLPP_LICENSE_FILES = COPYING LIBXMLPP_SOURCE = libxml++-$(LIBXMLPP_VERSION).tar.xz LIBXMLPP_SITE = http://ftp.gnome.org/pub/GNOME/sources/libxml++/$(LIBXMLPP_VERSION_MAJOR) LIBXMLPP_INSTALL_STAGING = YES LIBXMLPP_DEPENDENCIES = libxml2 glibmm host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/libxmlrpc/Config.in ================================================ config BR2_PACKAGE_LIBXMLRPC bool "libxmlrpc" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBCURL help XML-RPC is a quick-and-easy way to make procedure calls over the Internet. It converts the procedure call into an XML document, sends it to a remote server using HTTP, and gets back the response as XML. http://xmlrpc-c.sourceforge.net/ if BR2_PACKAGE_LIBXMLRPC config BR2_PACKAGE_LIBXMLRPC_TOOLS_XMLRPC bool "install cli tool" depends on !BR2_STATIC_LIBS help Command line tool xmlrpc. comment "cli tool needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS endif # BR2_PACKAGE_LIBXMLRPC comment "libxmlrpc needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/libxmlrpc/libxmlrpc.hash ================================================ # Locally computed sha256 626e36295f43b320082bc7bdd961b46f39fbe2719535b5a417975a8e50c8f7f3 libxmlrpc-r3119-br2.tar.gz sha256 db7a6d3f187b218c3534010a83424c6bcdef88e6a0b6b1aa3a8762238bd642e6 doc/COPYING ================================================ FILE: package/libxmlrpc/libxmlrpc.mk ================================================ ################################################################################ # # libxmlrpc # ################################################################################ # 1.58.02 (code/advanced@r3119) LIBXMLRPC_VERSION = r3119 LIBXMLRPC_SITE = https://svn.code.sf.net/p/xmlrpc-c/code/advanced LIBXMLRPC_SITE_METHOD = svn LIBXMLRPC_LICENSE = BSD-3-Clause (xml-rpc main code and abyss web server), BSD like (lib/expat), Python 1.5.2 license (parts of xmlrpc_base64.c) LIBXMLRPC_LICENSE_FILES = doc/COPYING LIBXMLRPC_INSTALL_STAGING = YES LIBXMLRPC_DEPENDENCIES = libcurl host-autoconf LIBXMLRPC_CONFIG_SCRIPTS = xmlrpc-c-config LIBXMLRPC_MAKE = $(MAKE1) # Using autoconf, not automake, so we cannot use AUTORECONF = YES. define LIBXMLRPC_RUN_AUTOCONF cd $(@D); $(AUTOCONF) endef LIBXMLRPC_PRE_CONFIGURE_HOOKS += LIBXMLRPC_RUN_AUTOCONF LIBXMLRPC_CONF_OPTS = \ $(if $(BR2_USE_WCHAR),,ac_cv_header_wchar_h=no) \ $(if $(BR2_INSTALL_LIBSTDCPP),,--disable-cplusplus) \ have_curl_config=$(STAGING_DIR)/usr/bin/curl-config \ CURL_CONFIG=$(STAGING_DIR)/usr/bin/curl-config # Our package uses autoconf, but not automake, so we need to pass # those variables at compile time as well. LIBXMLRPC_MAKE_OPTS = \ CC_FOR_BUILD="$(HOSTCC)" \ LD_FOR_BUILD="$(HOSTLD)" \ CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" ifeq ($(BR2_STATIC_LIBS),y) LIBXMLRPC_STATIC_OPTS = SHARED_LIB_TYPE=NONE MUST_BUILD_SHLIB=N endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBXMLRPC_DEPENDENCIES += host-pkgconf openssl LIBXMLRPC_CONF_OPTS += --enable-abyss-openssl else LIBXMLRPC_CONF_OPTS += --disable-abyss-openssl endif LIBXMLRPC_MAKE_OPTS += $(LIBXMLRPC_STATIC_OPTS) LIBXMLRPC_INSTALL_STAGING_OPTS = $(LIBXMLRPC_STATIC_OPTS) \ DESTDIR=$(STAGING_DIR) install LIBXMLRPC_INSTALL_TARGET_OPTS = $(LIBXMLRPC_STATIC_OPTS) \ DESTDIR=$(TARGET_DIR) install ifeq ($(BR2_PACKAGE_LIBXMLRPC_TOOLS_XMLRPC),y) define LIBXMLRPC_TOOLS_XMLRPC_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(LIBXMLRPC_MAKE_OPTS) -C $(@D)/tools/xmlrpc endef LIBXMLRPC_POST_BUILD_HOOKS += LIBXMLRPC_TOOLS_XMLRPC_BUILD_CMDS define LIBXMLRPC_TOOLS_XMLRPC_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(LIBXMLRPC_MAKE_OPTS) -C $(@D)/tools/xmlrpc \ DESTDIR=$(TARGET_DIR) install endef LIBXMLRPC_POST_INSTALL_TARGET_HOOKS += LIBXMLRPC_TOOLS_XMLRPC_INSTALL_TARGET_CMDS endif $(eval $(autotools-package)) ================================================ FILE: package/libxslt/0001-Fix-xml2-config-check-in-configure-script.patch ================================================ From 90c34c8bb90e095a8a8fe8b2ce368bd9ff1837cc Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 15 Nov 2019 11:53:11 +0100 Subject: [PATCH] Fix xml2-config check in configure script A 'print' option has never been supported. After a recent change to libxml2, invalid options cause xml2-config to fail. [Retrieved from: https://gitlab.gnome.org/GNOME/libxslt/-/commit/90c34c8bb90e095a8a8fe8b2ce368bd9ff1837cc] Signed-off-by: Fabrice Fontaine --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 3da57b18..585b9d7c 100644 --- a/configure.ac +++ b/configure.ac @@ -548,7 +548,7 @@ dnl make sure xml2-config is executable, dnl test version and init our variables dnl -if test "x$LIBXML_LIBS" = "x" && ${XML_CONFIG} --libs print > /dev/null 2>&1 +if test "x$LIBXML_LIBS" = "x" && ${XML_CONFIG} --libs > /dev/null 2>&1 then AC_MSG_CHECKING(for libxml libraries >= $LIBXML_REQUIRED_VERSION) XMLVERS=`$XML_CONFIG --version` -- GitLab ================================================ FILE: package/libxslt/Config.in ================================================ config BR2_PACKAGE_LIBXSLT bool "libxslt" select BR2_PACKAGE_LIBXML2 help Install the xslt library which is used to transform XML files to other XML files. XSLT is designed for use as part of XSL, which is a stylesheet language for XML. In addition to XSLT, XSL includes an XML vocabulary for specifying formatting. XSL specifies the styling of an XML document by using XSLT to describe how the document is transformed into another XML document that uses the formatting vocabulary. http://xmlsoft.org/xslt/ ================================================ FILE: package/libxslt/libxslt.hash ================================================ # Locally calculated after checking pgp signature sha256 98b1bd46d6792925ad2dfe9a87452ea2adebf69dcb9919ffd55bf926a7f93f7f libxslt-1.1.34.tar.gz # Hash for license file: sha256 7e48e290b6bfccc2ec1b297023a1d77f2fd87417f71fbb9f50aabef40a851819 COPYING ================================================ FILE: package/libxslt/libxslt.mk ================================================ ################################################################################ # # libxslt # ################################################################################ LIBXSLT_VERSION = 1.1.34 LIBXSLT_SITE = http://xmlsoft.org/sources LIBXSLT_INSTALL_STAGING = YES LIBXSLT_LICENSE = MIT LIBXSLT_LICENSE_FILES = COPYING LIBXSLT_CPE_ID_VENDOR = xmlsoft # We're patching configure.ac LIBXSLT_AUTORECONF = YES LIBXSLT_CONF_OPTS = \ --with-gnu-ld \ --without-debug \ --without-python \ --with-libxml-prefix=$(STAGING_DIR)/usr LIBXSLT_CONFIG_SCRIPTS = xslt-config LIBXSLT_DEPENDENCIES = host-pkgconf libxml2 # If we have enabled libgcrypt then use it, else disable crypto support. ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) LIBXSLT_DEPENDENCIES += libgcrypt LIBXSLT_CONF_ENV += LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config else LIBXSLT_CONF_OPTS += --without-crypto endif HOST_LIBXSLT_CONF_OPTS = --without-debug --without-python --without-crypto HOST_LIBXSLT_DEPENDENCIES = host-pkgconf host-libxml2 $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libyaml/Config.in ================================================ config BR2_PACKAGE_LIBYAML bool "libyaml" help LibYAML is a YAML 1.1 parser and emitter written in C. http://pyyaml.org/wiki/LibYAML ================================================ FILE: package/libyaml/libyaml.hash ================================================ # Locally calculated sha256 c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4 yaml-0.2.5.tar.gz sha256 c40112449f254b9753045925248313e9270efa36d226b22d82d4cc6c43c57f29 License ================================================ FILE: package/libyaml/libyaml.mk ================================================ ################################################################################ # # libyaml # ################################################################################ LIBYAML_VERSION = 0.2.5 LIBYAML_SOURCE = yaml-$(LIBYAML_VERSION).tar.gz LIBYAML_SITE = http://pyyaml.org/download/libyaml LIBYAML_INSTALL_STAGING = YES LIBYAML_LICENSE = MIT LIBYAML_LICENSE_FILES = License LIBYAML_CPE_ID_VENDOR = pyyaml $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/libyang/Config.in ================================================ config BR2_PACKAGE_LIBYANG bool "libyang" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PCRE select BR2_PACKAGE_PCRE_UCP help Libyang is YANG data modeling language parser and toolkit written (and providing API) in C. https://github.com/CESNET/libyang comment "libyang needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/libyang/libyang.hash ================================================ # Locally calculated sha256 8576cad398b451b1c622b0652a2030fcf83ee1d9a39e6cd93d17b0a5a43118d6 libyang-1.0.240.tar.gz sha256 f942fe693e03e4e3ff67a351c00dc8f468a042e0d7273b0aa6bc53060b568112 LICENSE ================================================ FILE: package/libyang/libyang.mk ================================================ ################################################################################ # # libyang # ################################################################################ LIBYANG_VERSION = 1.0.240 LIBYANG_SITE = $(call github,CESNET,libyang,v$(LIBYANG_VERSION)) LIBYANG_LICENSE = BSD-3-Clause LIBYANG_LICENSE_FILES = LICENSE LIBYANG_INSTALL_STAGING = YES LIBYANG_CPE_ID_VENDOR = cesnet LIBYANG_SUPPORTS_IN_SOURCE_BUILD = NO LIBYANG_DEPENDENCIES = pcre HOST_LIBYANG_DEPENDENCIES = host-pcre LIBYANG_CONF_OPTS = \ -DENABLE_VALGRIND_TESTS=OFF \ -DGEN_PYTHON_BINDINGS=OFF \ -DENABLE_LYD_PRIV=ON HOST_LIBYANG_CONF_OPTS = \ -DENABLE_VALGRIND_TESTS=OFF \ -DGEN_PYTHON_BINDINGS=OFF $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/libyuv/0001-i386-sse2.patch ================================================ Fix compilation on non-sse2 platforms Signed-off-by: Bernd Kuhls diff -uNr libyuv-1411.org/include/libyuv/scale_row.h libyuv-1411/include/libyuv/scale_row.h --- libyuv-1411.org/include/libyuv/scale_row.h 2015-05-22 23:39:21.000000000 +0200 +++ libyuv-1411/include/libyuv/scale_row.h 2015-05-25 12:35:17.000000000 +0200 @@ -33,7 +33,7 @@ // The following are available on all x86 platforms: #if !defined(LIBYUV_DISABLE_X86) && \ - (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) + (defined(_M_IX86) || defined(__x86_64__) || (defined(__i386__) && defined(__SSE2__))) #define HAS_FIXEDDIV1_X86 #define HAS_FIXEDDIV_X86 #define HAS_SCALEADDROWS_SSE2 ================================================ FILE: package/libyuv/Config.in ================================================ config BR2_PACKAGE_LIBYUV bool "libyuv" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS help libyuv is an open source project that includes YUV scaling and conversion functionality. https://chromium.googlesource.com/libyuv/libyuv/ comment "libyuv needs a toolchain w/ C++, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS ================================================ FILE: package/libyuv/libyuv.hash ================================================ # Locally computed sha256 7bb4118ef050ca3e9a27f49b7d21e068922bf57cf973f2c7b1476cadf73ac66a libyuv-413a8d8041f1cc5a350a47c0d81cc721e64f9fd0-br1.tar.gz sha256 2b2cc1180c7e6988328ad2033b04b80117419db9c4c584918bbb3cfec7e9364f LICENSE ================================================ FILE: package/libyuv/libyuv.mk ================================================ ################################################################################ # # libyuv # ################################################################################ LIBYUV_VERSION = 413a8d8041f1cc5a350a47c0d81cc721e64f9fd0 LIBYUV_SITE = https://chromium.googlesource.com/libyuv/libyuv LIBYUV_SITE_METHOD = git LIBYUV_LICENSE = BSD-3-Clause LIBYUV_LICENSE_FILES = LICENSE LIBYUV_INSTALL_STAGING = YES LIBYUV_DEPENDENCIES = $(if $(BR2_PACKAGE_JPEG),jpeg) $(eval $(cmake-package)) ================================================ FILE: package/libzip/0001-Add-FindGnuTLS-cmake-from-3-17-3.patch ================================================ From 73f6f8ebff678a0847e6b197b574082cc285b528 Mon Sep 17 00:00:00 2001 From: Thomas Klausner Date: Sat, 25 Jul 2020 12:03:29 +0200 Subject: [PATCH] Add FindGnuTLS.cmake from 3.17.3. Addresses #199 [Retrieved from: https://github.com/nih-at/libzip/commit/73f6f8ebff678a0847e6b197b574082cc285b528] Signed-off-by: Fabrice Fontaine --- cmake-compat/FindGnuTLS.cmake | 82 +++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 cmake-compat/FindGnuTLS.cmake diff --git a/cmake-compat/FindGnuTLS.cmake b/cmake-compat/FindGnuTLS.cmake new file mode 100644 index 00000000..819f0001 --- /dev/null +++ b/cmake-compat/FindGnuTLS.cmake @@ -0,0 +1,82 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +#[=======================================================================[.rst: +FindGnuTLS +---------- + +Find the GNU Transport Layer Security library (gnutls) + +IMPORTED Targets +^^^^^^^^^^^^^^^^ + +This module defines :prop_tgt:`IMPORTED` target ``GnuTLS::GnuTLS``, if +gnutls has been found. + +Result Variables +^^^^^^^^^^^^^^^^ + +``GNUTLS_FOUND`` + System has gnutls +``GNUTLS_INCLUDE_DIR`` + The gnutls include directory +``GNUTLS_LIBRARIES`` + The libraries needed to use gnutls +``GNUTLS_DEFINITIONS`` + Compiler switches required for using gnutls +``GNUTLS_VERSION`` + version of gnutls. +#]=======================================================================] + +# Note that this doesn't try to find the gnutls-extra package. + + +if (GNUTLS_INCLUDE_DIR AND GNUTLS_LIBRARY) + # in cache already + set(gnutls_FIND_QUIETLY TRUE) +endif () + +if (NOT WIN32) + # try using pkg-config to get the directories and then use these values + # in the find_path() and find_library() calls + # also fills in GNUTLS_DEFINITIONS, although that isn't normally useful + find_package(PkgConfig QUIET) + PKG_CHECK_MODULES(PC_GNUTLS QUIET gnutls) + set(GNUTLS_DEFINITIONS ${PC_GNUTLS_CFLAGS_OTHER}) + set(GNUTLS_VERSION ${PC_GNUTLS_VERSION}) + # keep for backward compatibility + set(GNUTLS_VERSION_STRING ${PC_GNUTLS_VERSION}) +endif () + +find_path(GNUTLS_INCLUDE_DIR gnutls/gnutls.h + HINTS + ${PC_GNUTLS_INCLUDEDIR} + ${PC_GNUTLS_INCLUDE_DIRS} + ) + +find_library(GNUTLS_LIBRARY NAMES gnutls libgnutls + HINTS + ${PC_GNUTLS_LIBDIR} + ${PC_GNUTLS_LIBRARY_DIRS} + ) + +mark_as_advanced(GNUTLS_INCLUDE_DIR GNUTLS_LIBRARY) + +include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(GnuTLS + REQUIRED_VARS GNUTLS_LIBRARY GNUTLS_INCLUDE_DIR + VERSION_VAR GNUTLS_VERSION_STRING) + +if(GNUTLS_FOUND) + set(GNUTLS_LIBRARIES ${GNUTLS_LIBRARY}) + set(GNUTLS_INCLUDE_DIRS ${GNUTLS_INCLUDE_DIR}) + + if(NOT TARGET GnuTLS::GnuTLS) + add_library(GnuTLS::GnuTLS UNKNOWN IMPORTED) + set_target_properties(GnuTLS::GnuTLS PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${GNUTLS_INCLUDE_DIRS}" + INTERFACE_COMPILE_DEFINITIONS "${GNUTLS_DEFINITIONS}" + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${GNUTLS_LIBRARIES}") + endif() +endif() ================================================ FILE: package/libzip/0002-Include-limits.h-for-INT_MAX.patch ================================================ From fd89e242d16128dedef08f47d99ae56aa19b0591 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98rjan=20Malde?= Date: Wed, 15 Jul 2020 12:16:16 +0200 Subject: [PATCH] Include limits.h for INT_MAX [Retrieved from: https://github.com/nih-at/libzip/commit/fd89e242d16128dedef08f47d99ae56aa19b0591] Signed-off-by: Paul Cercueil --- lib/zip_crypto_openssl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/zip_crypto_openssl.c b/lib/zip_crypto_openssl.c index 1cb00479..60f92758 100644 --- a/lib/zip_crypto_openssl.c +++ b/lib/zip_crypto_openssl.c @@ -38,6 +38,7 @@ #include "zip_crypto.h" #include +#include #if OPENSSL_VERSION_NUMBER < 0x1010000fL || defined(LIBRESSL_VERSION_NUMBER) #define USE_OPENSSL_1_0_API -- 2.28.0 ================================================ FILE: package/libzip/Config.in ================================================ config BR2_PACKAGE_LIBZIP bool "libzip" depends on !BR2_STATIC_LIBS # dlsym() select BR2_PACKAGE_MUSL_FTS if !BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_ZLIB help C library for reading, creating, and modifying zip archives. This package also contains zipcmp, ziptorrent and zipmerge utilities. https://libzip.org/ comment "libzip needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/libzip/libzip.hash ================================================ # Locally calculated sha256 a60473ffdb7b4260c08bfa19c2ccea0438edac11193c3afbbb1f17fbcf6c6132 libzip-1.7.3.tar.xz sha256 deae392de70503672793ee784d603bfa8069dcd5974a325dfbf91160f3a147d6 LICENSE ================================================ FILE: package/libzip/libzip.mk ================================================ ################################################################################ # # libzip # ################################################################################ LIBZIP_VERSION = 1.7.3 LIBZIP_SITE = https://libzip.org/download LIBZIP_SOURCE = libzip-$(LIBZIP_VERSION).tar.xz LIBZIP_LICENSE = BSD-3-Clause LIBZIP_LICENSE_FILES = LICENSE LIBZIP_CPE_ID_VENDOR = libzip LIBZIP_INSTALL_STAGING = YES LIBZIP_DEPENDENCIES = zlib HOST_LIBZIP_DEPENDENCIES = host-zlib ifeq ($(BR2_PACKAGE_BZIP2),y) LIBZIP_DEPENDENCIES += bzip2 LIBZIP_CONF_OPTS += -DENABLE_BZIP2=ON else LIBZIP_CONF_OPTS += -DENABLE_BZIP2=OFF endif ifeq ($(BR2_PACKAGE_GNUTLS),y) LIBZIP_DEPENDENCIES += gnutls LIBZIP_CONF_OPTS += -DENABLE_GNUTLS=ON else LIBZIP_CONF_OPTS += -DENABLE_GNUTLS=OFF endif ifeq ($(BR2_PACKAGE_MBEDTLS),y) LIBZIP_DEPENDENCIES += mbedtls LIBZIP_CONF_OPTS += -DENABLE_MBEDTLS=ON else LIBZIP_CONF_OPTS += -DENABLE_MBEDTLS=OFF endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBZIP_DEPENDENCIES += openssl LIBZIP_CONF_OPTS += -DENABLE_OPENSSL=ON else LIBZIP_CONF_OPTS += -DENABLE_OPENSSL=OFF endif ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),) LIBZIP_DEPENDENCIES += musl-fts LIBZIP_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-lfts endif ifeq ($(BR2_PACKAGE_XZ),y) LIBZIP_DEPENDENCIES += xz LIBZIP_CONF_OPTS += -DENABLE_LZMA=ON else LIBZIP_CONF_OPTS += -DENABLE_LZMA=OFF endif $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/libzlib/libzlib.hash ================================================ # From http://www.zlib.net/ sha256 4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066 zlib-1.2.11.tar.xz # License files, locally calculated sha256 7960b6b1cc63e619abb77acaea5427159605afee8c8b362664f4effc7d7f7d15 README ================================================ FILE: package/libzlib/libzlib.mk ================================================ ################################################################################ # # libzlib # ################################################################################ LIBZLIB_VERSION = 1.2.11 LIBZLIB_SOURCE = zlib-$(LIBZLIB_VERSION).tar.xz LIBZLIB_SITE = http://www.zlib.net LIBZLIB_LICENSE = Zlib LIBZLIB_LICENSE_FILES = README LIBZLIB_INSTALL_STAGING = YES LIBZLIB_PROVIDES = zlib LIBZLIB_CPE_ID_VENDOR = gnu LIBZLIB_CPE_ID_PRODUCT = zlib # It is not possible to build only a shared version of zlib, so we build both # shared and static, unless we only want the static libs, and we eventually # selectively remove what we do not want ifeq ($(BR2_STATIC_LIBS),y) LIBZLIB_PIC = LIBZLIB_SHARED = --static else LIBZLIB_PIC = -fPIC LIBZLIB_SHARED = --shared endif define LIBZLIB_CONFIGURE_CMDS (cd $(@D); rm -rf config.cache; \ $(TARGET_CONFIGURE_ARGS) \ $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS) $(LIBZLIB_PIC)" \ ./configure \ $(LIBZLIB_SHARED) \ --prefix=/usr \ ) endef define HOST_LIBZLIB_CONFIGURE_CMDS (cd $(@D); rm -rf config.cache; \ $(HOST_CONFIGURE_ARGS) \ $(HOST_CONFIGURE_OPTS) \ ./configure \ --prefix="$(HOST_DIR)" \ --sysconfdir="$(HOST_DIR)/etc" \ ) endef define LIBZLIB_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) endef define HOST_LIBZLIB_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) endef define LIBZLIB_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) DESTDIR=$(STAGING_DIR) LDCONFIG=true install endef define LIBZLIB_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) DESTDIR=$(TARGET_DIR) LDCONFIG=true install endef # We don't care removing the .a from target, since it not used at link # time to build other packages, and it is anyway removed later before # assembling the filesystem images anyway. ifeq ($(BR2_SHARED_LIBS),y) define LIBZLIB_RM_STATIC_STAGING rm -f $(STAGING_DIR)/usr/lib/libz.a endef LIBZLIB_POST_INSTALL_STAGING_HOOKS += LIBZLIB_RM_STATIC_STAGING endif define HOST_LIBZLIB_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) LDCONFIG=true install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/lightning/0001-include-Makefile.am-don-t-install-lightning.h-twice.patch ================================================ From 604c931bc673c507254a84c0f423c9ec8ce6e3a1 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 10 Oct 2019 20:36:46 +0200 Subject: [PATCH] include/Makefile.am: don't install lightning.h twice Commit 17164ed32d8f3530153b9cad67a4399c65f24512 added lightning.h to nodist_include_HEADERS without removing it from include_HEADERS This raises the following error on one of the buildroot autobuilders: /usr/bin/install -c -m 644 lightning.h '/home/test/autobuild/run/instance-3/output-1/target/usr/include' /usr/bin/install -c -m 644 lightning.h '/home/test/autobuild/run/instance-3/output-1/target/usr/include' /usr/bin/install: cannot create regular file `/home/test/autobuild/run/instance-3/output-1/target/usr/include/lightning.h': File exists Fix this by removing lightning.h from include_HEADERS Fixes: - http://autobuild.buildroot.org/results/05ebc75598627d2a08e08e194f51cb8464f97b95 Signed-off-by: Fabrice Fontaine --- include/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/include/Makefile.am b/include/Makefile.am index e754dd3..8f91594 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -14,7 +14,6 @@ # License for more details. # -include_HEADERS = lightning.h SUBDIRS = \ lightning -- 2.23.0 ================================================ FILE: package/lightning/Config.in ================================================ comment "lightning needs a toolchain w/ dynamic library" depends on BR2_sparc || BR2_i386 || BR2_x86_64 || BR2_mips || \ BR2_mipsel || BR2_arm || BR2_powerpc || BR2_RISCV_64 depends on BR2_STATIC_LIBS config BR2_PACKAGE_LIGHTNING bool "lightning" depends on BR2_sparc || BR2_i386 || BR2_x86_64 || BR2_mips || \ BR2_mipsel || BR2_arm || BR2_powerpc || BR2_RISCV_64 depends on !BR2_STATIC_LIBS help GNU lightning is a library that generates assembly language code at run-time. https://www.gnu.org/software/lightning/ if BR2_PACKAGE_LIGHTNING config BR2_PACKAGE_LIGHTNING_DISASSEMBLER bool "enable disassembler" depends on !BR2_nios2 # binutils depends on BR2_USE_WCHAR # binutils select BR2_PACKAGE_BINUTILS select BR2_PACKAGE_ZLIB help Enable the GNU lightning disassembler. comment "lightning disassembler needs a toolchain w/ wchar" depends on !BR2_nios2 depends on !BR2_USE_WCHAR endif ================================================ FILE: package/lightning/lightning.hash ================================================ # Locally computed sha256 ed856b866dc6f68678dc1151579118fab1c65fad687cf847fc2d94ca045efdc9 lightning-2.1.3.tar.gz sha256 a853c2ffec17057872340eee242ae4d96cbf2b520ae27d903e1b2fef1a5f9d1c COPYING.LESSER ================================================ FILE: package/lightning/lightning.mk ================================================ ################################################################################ # # lightning # ################################################################################ LIGHTNING_VERSION = 2.1.3 LIGHTNING_SITE = $(BR2_GNU_MIRROR)/lightning LIGHTNING_LICENSE = LGPL-3.0+ LIGHTNING_LICENSE_FILES = COPYING.LESSER LIGHTNING_INSTALL_STAGING = YES LIGHTNING_CPE_ID_VENDOR = gnu # We're patching include/Makefile.am LIGHTNING_AUTORECONF = YES ifeq ($(BR2_PACKAGE_LIGHTNING_DISASSEMBLER),y) LIGHTNING_DEPENDENCIES += binutils zlib LIGHTNING_CONF_OPTS += --enable-disassembler endif $(eval $(autotools-package)) ================================================ FILE: package/lighttpd/0001-Fix-default-config-file.patch ================================================ Modify the default lighttpd configuration file to have one a starting conf * Changed the log path to /var/log and logs filenames * Disable IPv6 * Do not setuid to a user that doesn't exist on the system * Change the network backend to writev since linux-sendfile fails on buildroot Signed-off-by: Maxime Ripard Signed-off-by: Simon Dawson [Gustavo: update for 1.4.37] Signed-off-by: Gustavo Zacarias diff -Nura lighttpd-1.4.37.orig/doc/config/conf.d/access_log.conf lighttpd-1.4.37/doc/config/conf.d/access_log.conf --- lighttpd-1.4.37.orig/doc/config/conf.d/access_log.conf 2015-09-01 14:38:48.684673663 -0300 +++ lighttpd-1.4.37/doc/config/conf.d/access_log.conf 2015-09-01 14:38:53.975855142 -0300 @@ -9,7 +9,7 @@ ## ## Default access log. ## -accesslog.filename = log_root + "/access.log" +accesslog.filename = log_root + "/lighttpd-access.log" ## ## The default format produces CLF compatible output. diff -Nura lighttpd-1.4.37.orig/doc/config/lighttpd.conf lighttpd-1.4.37/doc/config/lighttpd.conf --- lighttpd-1.4.37.orig/doc/config/lighttpd.conf 2015-09-01 14:38:48.684673663 -0300 +++ lighttpd-1.4.37/doc/config/lighttpd.conf 2015-09-01 14:39:40.256442492 -0300 @@ -13,8 +13,8 @@ ## if you add a variable here. Add the corresponding variable in the ## chroot example aswell. ## -var.log_root = "/var/log/lighttpd" -var.server_root = "/srv/www" +var.log_root = "/var/log" +var.server_root = "/var/www" var.state_dir = "/run" var.home_dir = "/var/lib/lighttpd" var.conf_dir = "/etc/lighttpd" @@ -90,7 +90,7 @@ ## ## Use IPv6? ## -server.use-ipv6 = "enable" +# server.use-ipv6 = "enable" ## ## bind to a specific IP @@ -101,8 +101,8 @@ ## Run as a different username/groupname. ## This requires root permissions during startup. ## -server.username = "lighttpd" -server.groupname = "lighttpd" +server.username = "www-data" +server.groupname = "www-data" ## ## Enable lighttpd to serve requests on sockets received from systemd @@ -118,7 +118,7 @@ ## ## Document root ## -server.document-root = server_root + "/htdocs" +server.document-root = server_root ## ## The value for the "Server:" response field. @@ -144,7 +144,7 @@ ## ## Path to the error log file ## -server.errorlog = log_root + "/error.log" +server.errorlog = log_root + "/lighttpd-error.log" ## ## If you want to log to syslog you have to unset the @@ -195,7 +195,7 @@ ## sendfile - is recommended for small files. ## writev - is recommended for sending many large files ## -server.network-backend = "sendfile" +server.network-backend = "writev" ## ## As lighttpd is a single-threaded server, its main resource limit is ================================================ FILE: package/lighttpd/Config.in ================================================ comment "lighttpd needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS config BR2_PACKAGE_LIGHTTPD bool "lighttpd" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS help lighttpd a secure, fast, compliant and very flexible web-server which has been optimized for high-performance environments. It has a very low memory footprint compared to other webservers and takes care of cpu-load. Its advanced feature-set (FastCGI, CGI, Auth, Output-Compression, URL-Rewriting and many more) make lighttpd the perfect webserver-software for every server that is suffering load problems. https://www.lighttpd.net/ if BR2_PACKAGE_LIGHTTPD config BR2_PACKAGE_LIGHTTPD_OPENSSL bool "openssl support" select BR2_PACKAGE_OPENSSL help Enable OpenSSL support for lighttpd. config BR2_PACKAGE_LIGHTTPD_PAM bool "pam authentication support" default y depends on BR2_PACKAGE_LINUX_PAM help Enable PAM authentication support for lighttpd. config BR2_PACKAGE_LIGHTTPD_ZLIB bool "zlib support" select BR2_PACKAGE_ZLIB help Enable zlib support for lighttpd mod_compress. config BR2_PACKAGE_LIGHTTPD_BZIP2 bool "bzip2 support" select BR2_PACKAGE_BZIP2 help Enable bzip2 support for lighttpd mod_compress. config BR2_PACKAGE_LIGHTTPD_PCRE bool "pcre support" select BR2_PACKAGE_PCRE help Enable PCRE support. Needed to support mod_rewrite config BR2_PACKAGE_LIGHTTPD_WEBDAV bool "webdav support" select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_SQLITE help Enable webdav support. Needed to support mod_webdav config BR2_PACKAGE_LIGHTTPD_LUA bool "lua support" depends on BR2_PACKAGE_LUA help Enable Lua support. Needed to support mod_magnet endif ================================================ FILE: package/lighttpd/S50lighttpd ================================================ #!/bin/sh # # Starts lighttpd. # NAME=lighttpd DAEMON=/usr/sbin/$NAME PID_FILE="/var/run/$NAME.pid" CONF_FILE="/etc/$NAME/$NAME.conf" [ -r /etc/default/$NAME ] && . /etc/default/$NAME start() { printf "Starting lighttpd: " start-stop-daemon -S -q -p $PID_FILE --exec $DAEMON -- -f $CONF_FILE echo "OK" } stop() { printf "Stopping lighttpd: " start-stop-daemon -K -q -p $PID_FILE echo "OK" } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/lighttpd/lighttpd.hash ================================================ # From https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.61.sha256sum sha256 43f0d63d04a1b7c5b8aab07e0612e44ccad0afc0614bab784c5b019872363432 lighttpd-1.4.61.tar.xz # Locally calculated sha256 5c98cad2fbaf5c5e2562bcbab401a7c557c1bb1bac9914ecc63730925052fb13 COPYING ================================================ FILE: package/lighttpd/lighttpd.mk ================================================ ################################################################################ # # lighttpd # ################################################################################ LIGHTTPD_VERSION_MAJOR = 1.4 LIGHTTPD_VERSION = $(LIGHTTPD_VERSION_MAJOR).61 LIGHTTPD_SOURCE = lighttpd-$(LIGHTTPD_VERSION).tar.xz LIGHTTPD_SITE = http://download.lighttpd.net/lighttpd/releases-$(LIGHTTPD_VERSION_MAJOR).x LIGHTTPD_LICENSE = BSD-3-Clause LIGHTTPD_LICENSE_FILES = COPYING LIGHTTPD_CPE_ID_VENDOR = lighttpd LIGHTTPD_DEPENDENCIES = host-pkgconf # Issue in configure script provided in tarball LIGHTTPD_AUTORECONF = YES LIGHTTPD_CONF_OPTS = \ --without-wolfssl \ --libdir=/usr/lib/lighttpd \ --libexecdir=/usr/lib ifeq ($(BR2_PACKAGE_LIGHTTPD_OPENSSL),y) LIGHTTPD_DEPENDENCIES += openssl LIGHTTPD_CONF_OPTS += --with-openssl else LIGHTTPD_CONF_OPTS += --without-openssl endif ifeq ($(BR2_PACKAGE_LIGHTTPD_PAM),y) LIGHTTPD_DEPENDENCIES += linux-pam LIGHTTPD_CONF_OPTS += --with-pam else LIGHTTPD_CONF_OPTS += --without-pam endif ifeq ($(BR2_PACKAGE_LIGHTTPD_ZLIB),y) LIGHTTPD_DEPENDENCIES += zlib LIGHTTPD_CONF_OPTS += --with-zlib else LIGHTTPD_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_LIGHTTPD_BZIP2),y) LIGHTTPD_DEPENDENCIES += bzip2 LIGHTTPD_CONF_OPTS += --with-bzip2 else LIGHTTPD_CONF_OPTS += --without-bzip2 endif ifeq ($(BR2_PACKAGE_LIGHTTPD_PCRE),y) LIGHTTPD_CONF_ENV = PCRECONFIG=$(STAGING_DIR)/usr/bin/pcre-config LIGHTTPD_DEPENDENCIES += pcre LIGHTTPD_CONF_OPTS += --with-pcre else LIGHTTPD_CONF_OPTS += --without-pcre endif ifeq ($(BR2_PACKAGE_LIGHTTPD_WEBDAV),y) LIGHTTPD_DEPENDENCIES += libxml2 sqlite 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 ifeq ($(BR2_PACKAGE_LIGHTTPD_LUA),y) LIGHTTPD_DEPENDENCIES += lua LIGHTTPD_CONF_OPTS += --with-lua else LIGHTTPD_CONF_OPTS += --without-lua endif define LIGHTTPD_INSTALL_CONFIG $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/lighttpd/conf.d $(INSTALL) -d -m 0755 $(TARGET_DIR)/var/www $(INSTALL) -D -m 0644 $(@D)/doc/config/lighttpd.conf \ $(TARGET_DIR)/etc/lighttpd/lighttpd.conf $(INSTALL) -D -m 0644 $(@D)/doc/config/modules.conf \ $(TARGET_DIR)/etc/lighttpd/modules.conf $(INSTALL) -D -m 0644 $(@D)/doc/config/conf.d/access_log.conf \ $(TARGET_DIR)/etc/lighttpd/conf.d/access_log.conf $(INSTALL) -D -m 0644 $(@D)/doc/config/conf.d/debug.conf \ $(TARGET_DIR)/etc/lighttpd/conf.d/debug.conf $(INSTALL) -D -m 0644 $(@D)/doc/config/conf.d/dirlisting.conf \ $(TARGET_DIR)/etc/lighttpd/conf.d/dirlisting.conf $(INSTALL) -D -m 0644 $(@D)/doc/config/conf.d/mime.conf \ $(TARGET_DIR)/etc/lighttpd/conf.d/mime.conf endef LIGHTTPD_POST_INSTALL_TARGET_HOOKS += LIGHTTPD_INSTALL_CONFIG define LIGHTTPD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/lighttpd/S50lighttpd \ $(TARGET_DIR)/etc/init.d/S50lighttpd endef define LIGHTTPD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 $(@D)/doc/systemd/lighttpd.service \ $(TARGET_DIR)/usr/lib/systemd/system/lighttpd.service $(INSTALL) -D -m 644 package/lighttpd/lighttpd_tmpfiles.conf \ $(TARGET_DIR)/usr/lib/tmpfiles.d/lighttpd.conf endef $(eval $(autotools-package)) ================================================ FILE: package/lighttpd/lighttpd_tmpfiles.conf ================================================ f /var/log/lighttpd-access.log 0640 www-data www-data - f /var/log/lighttpd-error.log 0640 www-data www-data - ================================================ FILE: package/linenoise/Config.in ================================================ config BR2_PACKAGE_LINENOISE bool "linenoise" help A small self-contained alternative to readline and libedit https://github.com/antirez/linenoise ================================================ FILE: package/linenoise/linenoise.hash ================================================ # Locally calculated sha256 f5054a4fe120d43d85427cf58af93e56b9bb80389d507a9bec9b75531a340014 linenoise-1.0.tar.gz sha256 efe1692aa5b869edaa0ac88f95eb0276c1125304ffc636a299db3ebbab47f62b LICENSE ================================================ FILE: package/linenoise/linenoise.mk ================================================ ################################################################################ # # linenoise # ################################################################################ LINENOISE_VERSION = 1.0 LINENOISE_SITE = $(call github,antirez,linenoise,$(LINENOISE_VERSION)) LINENOISE_LICENSE = BSD-2-Clause LINENOISE_LICENSE_FILES = LICENSE LINENOISE_INSTALL_STAGING = YES # Static library only, nothing to install on target LINENOISE_INSTALL_TARGET = NO define LINENOISE_BUILD_CMDS cd $(@D); $(TARGET_CC) $(TARGET_CFLAGS) -c linenoise.c cd $(@D); $(TARGET_AR) rcu liblinenoise.a linenoise.o cd $(@D); $(TARGET_CC) $(TARGET_LDFLAGS) -o linenoise_example example.c -L. -llinenoise endef define LINENOISE_INSTALL_STAGING_CMDS $(INSTALL) -m 644 -D $(@D)/linenoise.h \ $(STAGING_DIR)/usr/include/linenoise.h $(INSTALL) -m 644 -D $(@D)/liblinenoise.a \ $(STAGING_DIR)/usr/lib/liblinenoise.a $(INSTALL) -m 755 -D $(@D)/linenoise_example \ $(STAGING_DIR)/usr/bin/linenoise_example endef $(eval $(generic-package)) ================================================ FILE: package/linknx/0001-configure-ac-tweak-CPPUNIT-conditional.patch ================================================ From 8e7da14647dada5eee8f583b0814bffb31d1b91e Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 21 Apr 2019 23:17:34 +0200 Subject: [PATCH] configure.ac: tweak CPPUNIT conditional Following review of buildroot's patch (http://patchwork.ozlabs.org/patch/1088520), tweak CPPUNIT to move call to AM_CONDITIONAL outside condition Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/linknx/linknx/commit/8e7da14647dada5eee8f583b0814bffb31d1b91e] --- configure.ac | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 51d8ae66..4d9d8efa 100644 --- a/configure.ac +++ b/configure.ac @@ -135,22 +135,20 @@ if test x"$WITH_CPPUNIT" != xno; then AC_DEFINE([HAVE_CPPUNIT], [1], [cppunit]) AC_SUBST(CPPUNIT_CFLAGS) AC_SUBST(CPPUNIT_LIBS) - AM_CONDITIONAL(CPPUNIT, true) + found_cppunit=yes ],[ AC_MSG_RESULT([no]) - AM_CONDITIONAL(CPPUNIT, false) ]) else PKG_CHECK_MODULES(CPPUNIT, $CPPUNITPC >= 1.9.6, [ AC_DEFINE([HAVE_CPPUNIT], [1], [cppunit]) AC_SUBST(CPPUNIT_CFLAGS) AC_SUBST(CPPUNIT_LIBS) - AM_CONDITIONAL([CPPUNIT], true) - ],[AM_CONDITIONAL([CPPUNIT], false)]) + found_cppunit=yes + ]) fi -else - AM_CONDITIONAL([CPPUNIT], false) fi +AM_CONDITIONAL([CPPUNIT], [test x"$found_cppunit" = xyes]) dnl ######################################################################### dnl Check if using log4cpp ================================================ FILE: package/linknx/0002-src-Makefile.am-fix-linking-with-log4cpp.patch ================================================ From 048b9ae8f3c07be217f1738c35ab995ab6394453 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 8 Mar 2020 10:02:07 +0100 Subject: [PATCH] src/Makefile.am: fix linking with log4cpp linknx fails to build with log4cpp because LOG4CPP_CFLAGS (which contains -pthread) is added to AM_CPPFLAGS (which is not used at link time) instead of AM_CXXFLAGS: /home/buildroot/autobuild/instance-0/output/host/bin/mipsel-linux-g++ -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -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/autobuild/instance-0/output/host/mipsel-buildroot-linux-gnu/sysroot/usr/bin/../../usr/lib -lpthsem -L/home/buildroot/autobuild/instance-0/output/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -llog4cpp -lm /home/buildroot/autobuild/instance-0/output/host/mipsel-buildroot-linux-gnu/sysroot/usr/bin/../../usr/lib/liblog4cpp.so: undefined reference to `pthread_key_create' So move LOG4CPP_CFLAGS to AM_CXXFLAGS Fixes: - http://autobuild.buildroot.org/results/1863f8f27041bc15ca68e786ba3b8e4764c40574 Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/linknx/linknx/commit/048b9ae8f3c07be217f1738c35ab995ab6394453] --- src/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Makefile.am b/src/Makefile.am index 6e0dc03b..5065c248 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -6,6 +6,7 @@ else B64_CFLAGS= B64_LIBS= endif -AM_CPPFLAGS=-I$(top_srcdir)/include -I$(top_srcdir)/ticpp $(B64_CFLAGS) $(PTH_CPPFLAGS) $(LIBCURL_CPPFLAGS) $(LOG4CPP_CFLAGS) $(LUA_CFLAGS) $(MYSQL_CFLAGS) $(ESMTP_CFLAGS) +AM_CPPFLAGS=-I$(top_srcdir)/include -I$(top_srcdir)/ticpp $(B64_CFLAGS) $(PTH_CPPFLAGS) $(LIBCURL_CPPFLAGS) $(LUA_CFLAGS) $(MYSQL_CFLAGS) $(ESMTP_CFLAGS) +AM_CXXFLAGS=$(LOG4CPP_CFLAGS) linknx_LDADD=$(top_srcdir)/ticpp/libticpp.a $(LIBICONV) $(B64_LIBS) $(PTH_LDFLAGS) $(PTH_LIBS) $(LIBCURL) $(LOG4CPP_LIBS) $(LUA_LIBS) $(MYSQL_LIBS) $(ESMTP_LIBS) -lm linknx_SOURCES=linknx.cpp logger.cpp ruleserver.cpp objectcontroller.cpp eibclient.c threads.cpp timermanager.cpp persistentstorage.cpp xmlserver.cpp smsgateway.cpp emailgateway.cpp knxconnection.cpp services.cpp suncalc.cpp luacondition.cpp ioport.cpp ruleserver.h objectcontroller.h threads.h timermanager.h persistentstorage.h xmlserver.h smsgateway.h emailgateway.h knxconnection.h services.h suncalc.h luacondition.h ioport.h logger.h ================================================ FILE: package/linknx/Config.in ================================================ config BR2_PACKAGE_LINKNX bool "linknx" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # libpthsem select BR2_PACKAGE_LIBPTHSEM select BR2_PACKAGE_ARGP_STANDALONE \ if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Linknx is an automation platform providing high level functionalities 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 depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/linknx/linknx.hash ================================================ # Locally computed: sha256 00c53776c2e871295459ede922402d8ad0208367d2364781fdb92ddafad94d3d linknx-0.0.1.38.tar.gz sha256 c03cea027b4b40e4402fabd08557736727ec3d5bc54ad64ab6472de432198cad LICENSE ================================================ FILE: package/linknx/linknx.mk ================================================ ################################################################################ # # linknx # ################################################################################ LINKNX_VERSION = 0.0.1.38 LINKNX_SITE = $(call github,linknx,linknx,$(LINKNX_VERSION)) LINKNX_LICENSE = GPL-2.0+ LINKNX_LICENSE_FILES = LICENSE LINKNX_INSTALL_STAGING = YES # We're patching configure.ac LINKNX_AUTORECONF = YES LINKNX_CONF_OPTS = \ --without-cppunit \ --without-pth-test \ --with-pth=$(STAGING_DIR)/usr \ --disable-smtp # add host-gettext for AM_ICONV macro LINKNX_DEPENDENCIES = \ host-gettext \ host-pkgconf \ libpthsem \ $(if $(BR2_PACKAGE_ARGP_STANDALONE),argp-standalone) \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) ifeq ($(BR2_PACKAGE_LIBCURL),y) LINKNX_CONF_OPTS += --with-libcurl=$(STAGING_DIR)/usr LINKNX_DEPENDENCIES += libcurl else LINKNX_CONF_OPTS += --without-libcurl endif ifeq ($(BR2_PACKAGE_LOG4CPP),y) LINKNX_CONF_OPTS += --with-log4cpp LINKNX_DEPENDENCIES += log4cpp else LINKNX_CONF_OPTS += --without-log4cpp endif ifeq ($(BR2_PACKAGE_LUA),y) LINKNX_CONF_OPTS += --with-lua LINKNX_DEPENDENCIES += lua else LINKNX_CONF_OPTS += --without-lua endif ifeq ($(BR2_PACKAGE_MYSQL),y) LINKNX_CONF_OPTS += --with-mysql=$(STAGING_DIR)/usr LINKNX_DEPENDENCIES += mysql else LINKNX_CONF_OPTS += --without-mysql endif $(eval $(autotools-package)) ================================================ FILE: package/links/Config.in ================================================ config BR2_PACKAGE_LINKS bool "links" depends on BR2_USE_MMU # fork() help Graphics and text mode WWW browser (kind of like lynx). http://links.twibright.com/ if BR2_PACKAGE_LINKS config BR2_PACKAGE_LINKS_GRAPHICS bool "use graphics" depends on BR2_PACKAGE_GPM || BR2_PACKAGE_DIRECTFB || BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXT if BR2_PACKAGE_XORG7 select BR2_PACKAGE_LIBPNG help Enable graphics output for framebuffer, DirectFB or X11. Framebuffer output requires GPM (console mouse). Otherwise links will be text-mode only. comment "links graphics needs GPM, DirectFB or X11" depends on !BR2_PACKAGE_GPM && !BR2_PACKAGE_DIRECTFB && !BR2_PACKAGE_XORG7 endif ================================================ FILE: package/links/links.hash ================================================ # Locally calculated sha256 2dd78508698e8279ef4f09a3a2a21e9595040113402da6c553974414fb49dd2c links-2.25.tar.bz2 sha256 92deeb70791366630095d4e0714fe37d6e2bd5db0e6ef498ebb8de328f45b253 COPYING ================================================ FILE: package/links/links.mk ================================================ ################################################################################ # # links # ################################################################################ LINKS_VERSION = 2.25 LINKS_SOURCE = links-$(LINKS_VERSION).tar.bz2 LINKS_SITE = http://links.twibright.com/download LINKS_DEPENDENCIES = host-pkgconf LINKS_LICENSE = GPL-2.0+ LINKS_LICENSE_FILES = COPYING LINKS_CPE_ID_VENDOR = twibright ifeq ($(BR2_PACKAGE_LINKS_GRAPHICS),y) LINKS_CONF_OPTS += --enable-graphics LINKS_DEPENDENCIES += libpng ifeq ($(BR2_PACKAGE_XLIB_LIBXT),y) LINKS_CONF_OPTS += \ --with-x \ --x-includes=$(STAGING_DIR)/usr/include \ --x-libraries=$(STAGING_DIR)/usr/lib LINKS_DEPENDENCIES += xlib_libXt else 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 LINKS_CONF_OPTS += --without-directfb endif ifeq ($(BR2_PACKAGE_JPEG),y) LINKS_CONF_OPTS += --with-libjpeg LINKS_DEPENDENCIES += jpeg else LINKS_CONF_OPTS += --without-libjpeg endif ifeq ($(BR2_PACKAGE_LIBRSVG),y) LINKS_CONF_OPTS += --with-librsvg LINKS_DEPENDENCIES += librsvg else LINKS_CONF_OPTS += --without-librsvg endif ifeq ($(BR2_PACKAGE_TIFF),y) LINKS_CONF_OPTS += --with-libtiff LINKS_DEPENDENCIES += tiff else LINKS_CONF_OPTS += --without-libtiff endif else LINKS_CONF_OPTS += --disable-graphics endif ifeq ($(BR2_PACKAGE_BZIP2),y) LINKS_CONF_OPTS += --with-bzip2 LINKS_DEPENDENCIES += bzip2 else LINKS_CONF_OPTS += --without-bzip2 endif ifeq ($(BR2_PACKAGE_GPM),y) LINKS_CONF_OPTS += --with-gpm LINKS_DEPENDENCIES += gpm else LINKS_CONF_OPTS += --without-gpm endif ifeq ($(BR2_PACKAGE_LIBEVENT),y) LINKS_CONF_OPTS += --with-libevent LINKS_DEPENDENCIES += libevent else LINKS_CONF_OPTS += --without-libevent endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LINKS_CONF_OPTS += --with-ssl --enable-ssl-pkgconfig LINKS_DEPENDENCIES += openssl else LINKS_CONF_OPTS += --without-ssl endif ifeq ($(BR2_PACKAGE_XZ),y) LINKS_CONF_OPTS += --with-lzma LINKS_DEPENDENCIES += xz else LINKS_CONF_OPTS += --without-lzma endif ifeq ($(BR2_PACKAGE_ZLIB),y) LINKS_CONF_OPTS += --with-zlib LINKS_DEPENDENCIES += zlib else LINKS_CONF_OPTS += --without-zlib endif $(eval $(autotools-package)) ================================================ FILE: package/linphone/0001-src-core-paths-paths.cpp-fix-powerpc-build.patch ================================================ From d5d528e7562f358b9564e64cea0678020c51479a Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 15 Mar 2020 18:56:19 +0100 Subject: [PATCH] src/core/paths/paths.cpp: fix powerpc build Fix the following build failure on powerpc: /home/test/autobuild/run/instance-2/output-1/build/linphone-4.3.1/src/core/paths/paths.cpp:32:3: error: #error "Unsupported system." #error "Unsupported system." ^~~~~ Fixes: - http://autobuild.buildroot.org/results/d90bca02c2771df8dfbf39892d529fb5f9069656 Signed-off-by: Fabrice Fontaine --- src/core/paths/paths.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/paths/paths.cpp b/src/core/paths/paths.cpp index 0442282fe..2c6508a51 100644 --- a/src/core/paths/paths.cpp +++ b/src/core/paths/paths.cpp @@ -26,7 +26,7 @@ #include "paths-android.h" #elif defined(_WIN32) #include "paths-windows.h" -#elif defined(__linux) +#elif defined(__linux) || defined(__linux__) #include "paths-linux.h" #else #error "Unsupported system." -- 2.25.1 ================================================ FILE: package/linphone/Config.in ================================================ config BR2_PACKAGE_LINPHONE bool "linphone" depends on BR2_USE_MMU depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS # belle-sip, mediastreamer depends on BR2_TOOLCHAIN_HAS_THREADS # belr, belle-sip, mediastreamer # belr, belle-sip, mediastreamer depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 depends on BR2_USE_WCHAR # belle-sip depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # mediastreamer select BR2_PACKAGE_BELLE_SIP select BR2_PACKAGE_BELR select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_MEDIASTREAMER select BR2_PACKAGE_SQLITE help Linphone is an internet phone or Voice Over IP phone (VoIP). With linphone you can communicate freely with people over the internet, with voice, video, and text instant messaging. Linphone makes use of the SIP protocol, an open standard for internet telephony. You can use Linphone with any SIP VoIP operator, including our free SIP audio/video service. linphone is free-software (or open-source), you can download and redistribute it freely. Linphone is available for desktop computers: Linux, Windows, MacOSX, and for mobile phones: Android, iPhone, Blackberry. Linphone support in Buildroot is limited to the commandline client, linphonec, and video support is not enabled. http://www.linphone.org/ comment "linphone needs a toolchain w/ threads, C++, dynamic library, wchar, gcc >= 5" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 comment "linphone needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/linphone/linphone.hash ================================================ # Locally calculated after checking pgp signature sha256 9956f6785a787041328da000cee5fcc1e41d6f17956ffe5e0402fac0f9a9676b linphone-4.4.8.tar.gz # Locally computed sha256 1b3782ccad7b8614100cda30d3faf42fc39f2e97932908c543005053b654ca68 LICENSE.txt ================================================ FILE: package/linphone/linphone.mk ================================================ ################################################################################ # # linphone # ################################################################################ LINPHONE_VERSION = 4.4.8 LINPHONE_SITE = \ https://gitlab.linphone.org/BC/public/liblinphone/-/archive/$(LINPHONE_VERSION) LINPHONE_CONF_OPTS = \ -DENABLE_ADVANCED_IM=OFF \ -DENABLE_CXX_WRAPPER=OFF \ -DENABLE_DB_STORAGE=OFF \ -DENABLE_LIME=OFF \ -DENABLE_LIME_X3DH=OFF \ -DENABLE_STRICT=OFF \ -DENABLE_TOOLS=OFF \ -DENABLE_TUTORIALS=OFF \ -DENABLE_UNIT_TESTS=OFF \ -DENABLE_VCARD=OFF \ -DENABLE_VIDEO=OFF \ -DGIT_EXECUTABLE=OFF LINPHONE_INSTALL_STAGING = YES LINPHONE_DEPENDENCIES = \ belle-sip \ belr \ libxml2 \ mediastreamer \ sqlite \ $(if $(BR2_PACKAGE_ZLIB),zlib) LINPHONE_LICENSE = GPL-3.0+ LINPHONE_LICENSE_FILES = LICENSE.txt ifeq ($(BR2_STATIC_LIBS),y) LINPHONE_CONF_OPTS += -DENABLE_STATIC=ON -DENABLE_SHARED=OFF else ifeq ($(BR2_SHARED_STATIC_LIBS),y) LINPHONE_CONF_OPTS += -DENABLE_STATIC=ON -DENABLE_SHARED=ON else ifeq ($(BR2_SHARED_LIBS),y) LINPHONE_CONF_OPTS += -DENABLE_STATIC=OFF -DENABLE_SHARED=ON endif $(eval $(cmake-package)) ================================================ FILE: package/linux-backports/Config.in ================================================ comment "linux-backports needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_LINUX_BACKPORTS bool "linux-backports" depends on BR2_LINUX_KERNEL help The linux-backports package includes many Linux drivers from recent kernels, backported to older ones. This version of linux-backports supports kernels starting from 3.10. https://backports.wiki.kernel.org if BR2_PACKAGE_LINUX_BACKPORTS choice prompt "Linux kernel driver backports configuration" default BR2_PACKAGE_LINUX_BACKPORTS_USE_DEFCONFIG config BR2_PACKAGE_LINUX_BACKPORTS_USE_DEFCONFIG bool "Using an in-tree defconfig file" config BR2_PACKAGE_LINUX_BACKPORTS_USE_CUSTOM_CONFIG bool "Using a custom (def)config file" endchoice config BR2_PACKAGE_LINUX_BACKPORTS_DEFCONFIG string "Defconfig name" depends on BR2_PACKAGE_LINUX_BACKPORTS_USE_DEFCONFIG help Name of the backports defconfig file to use, without the leading defconfig-. The defconfig is located in defconfigs/ directory in the backports tree. config BR2_PACKAGE_LINUX_BACKPORTS_CUSTOM_CONFIG_FILE string "Configuration file path" depends on BR2_PACKAGE_LINUX_BACKPORTS_USE_CUSTOM_CONFIG help Path to the backports configuration file Note: this can be a defconfig file or a complete .config file, which can later be saved back with make linux-update-(def)config. config BR2_PACKAGE_LINUX_BACKPORTS_CONFIG_FRAGMENT_FILES string "Additional configuration fragment files" help A space-separated list of configuration fragment files, that will be merged to the main linux-backports configuration file. endif # BR2_PACKAGE_LINUX_BACKPORTS ================================================ FILE: package/linux-backports/linux-backports.hash ================================================ # From: https://www.kernel.org/pub/linux/kernel/projects/backports/stable/v5.8/sha256sums.asc sha256 19b4174d89bf11ee221458e11f1e8dace26558498774b823051156f522d2036b backports-5.8-1.tar.xz # Locally computed sha256 fb5a425bd3b3cd6071a3a9aff9909a859e7c1158d54d32e07658398cd67eb6a0 COPYING sha256 8e378ab93586eb55135d3bc119cce787f7324f48394777d00c34fa3d0be3303f LICENSES/exceptions/Linux-syscall-note sha256 f6b78c087c3ebdf0f3c13415070dd480a3f35d8fc76f3d02180a407c1c812f79 LICENSES/preferred/GPL-2.0 ================================================ FILE: package/linux-backports/linux-backports.mk ================================================ ################################################################################ # # linux-backports # ################################################################################ LINUX_BACKPORTS_VERSION_MAJOR = 5.8 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) LINUX_BACKPORTS_LICENSE = GPL-2.0 LINUX_BACKPORTS_LICENSE_FILES = \ COPYING \ LICENSES/exceptions/Linux-syscall-note \ LICENSES/preferred/GPL-2.0 # flex and bison are needed to generate kconfig parser. We use the # same logic as the linux kernel (we add host dependencies only if # host does not have them). See linux/linux.mk and # support/dependencies/check-host-bison-flex.mk. LINUX_BACKPORTS_DEPENDENCIES = \ $(BR2_BISON_HOST_DEPENDENCY) \ $(BR2_FLEX_HOST_DEPENDENCY) ifeq ($(BR2_PACKAGE_LINUX_BACKPORTS_USE_DEFCONFIG),y) LINUX_BACKPORTS_KCONFIG_FILE = $(LINUX_BACKPORTS_DIR)/defconfigs/$(call qstrip,$(BR2_PACKAGE_LINUX_BACKPORTS_DEFCONFIG)) else ifeq ($(BR2_PACKAGE_LINUX_BACKPORTS_USE_CUSTOM_CONFIG),y) LINUX_BACKPORTS_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_LINUX_BACKPORTS_CUSTOM_CONFIG_FILE)) endif LINUX_BACKPORTS_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_PACKAGE_LINUX_BACKPORTS_CONFIG_FRAGMENT_FILES)) LINUX_BACKPORTS_KCONFIG_OPTS = $(LINUX_BACKPORTS_MAKE_OPTS) # linux-backports' build system expects the config options to be present # in the environment, and it is so when using their custom buildsystem, # because they are set in the main Makefile, which then calls a second # Makefile. # # In our case, we do not use that first Makefile. So, we parse the # .config file, filter-out comment lines and put the rest as command # line variables. # # LINUX_BACKPORTS_MAKE_OPTS is used by the kconfig-package infra, while # LINUX_BACKPORTS_MODULE_MAKE_OPTS is used by the kernel-module infra. # LINUX_BACKPORTS_MAKE_OPTS = \ LEX=flex \ YACC=bison \ BACKPORT_DIR=$(@D) \ KLIB_BUILD=$(LINUX_DIR) \ KLIB=$(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED) \ INSTALL_MOD_DIR=backports \ `sed -r -e '/^\#/d;' $(@D)/.config` LINUX_BACKPORTS_MODULE_MAKE_OPTS = $(LINUX_BACKPORTS_MAKE_OPTS) # This file is not automatically generated by 'oldconfig' that we use in # the kconfig-package infrastructure. In the linux buildsystem, it is # generated by running silentoldconfig, but that's not the case for # linux-backports: it uses a hand-crafted rule to generate that file. define LINUX_BACKPORTS_KCONFIG_FIXUP_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(LINUX_BACKPORTS_MAKE_OPTS) backport-include/backport/autoconf.h endef # Checks to give errors that the user can understand ifeq ($(BR_BUILDING),y) ifeq ($(BR2_PACKAGE_LINUX_BACKPORTS_USE_DEFCONFIG),y) ifeq ($(call qstrip,$(BR2_PACKAGE_LINUX_BACKPORTS_DEFCONFIG)),) $(error No linux-backports defconfig name specified, check your BR2_PACKAGE_LINUX_BACKPORTS_DEFCONFIG setting) endif endif ifeq ($(BR2_PACKAGE_LINUX_BACKPORTS_USE_CUSTOM_CONFIG),y) ifeq ($(call qstrip,$(BR2_PACKAGE_LINUX_BACKPORTS_CUSTOM_CONFIG_FILE)),) $(error No linux-backports configuration file specified, check your BR2_PACKAGE_LINUX_BACKPORTS_CUSTOM_CONFIG_FILE setting) endif endif endif # BR_BUILDING $(eval $(kernel-module)) $(eval $(kconfig-package)) # linux-backports' own .config file needs options from the kernel's own # .config file. The dependencies handling in the infrastructure does not # allow to express this kind of dependencies. Besides, linux.mk might # not have been parsed yet, so the Linux build dir LINUX_DIR is not yet # known. Thus, we use a "secondary expansion" so the rule is re-evaluated # after all Makefiles are parsed, and thus at that time we will have the # LINUX_DIR variable set to the proper value. Moreover, since linux-4.19, # the kernel's build system internally touches its .config file, so we # can't use it as a stamp file. We use the LINUX_KCONFIG_STAMP_DOTCONFIG # instead. # # Furthermore, we want to check the kernel version, since linux-backports # only supports kernels >= 3.10. To avoid overriding linux-backports' # KCONFIG_STAMP_DOTCONFIG rule defined in the kconfig-package infra, we # use an intermediate stamp-file. # # Finally, it must also come after the call to kconfig-package, so we get # LINUX_BACKPORTS_DIR properly defined (because the target part of the # rule is not re-evaluated). # $(LINUX_BACKPORTS_DIR)/$(LINUX_BACKPORTS_KCONFIG_STAMP_DOTCONFIG): $(LINUX_BACKPORTS_DIR)/.stamp_check_kernel_version .SECONDEXPANSION: $(LINUX_BACKPORTS_DIR)/.stamp_check_kernel_version: $$(LINUX_DIR)/$$(LINUX_KCONFIG_STAMP_DOTCONFIG) $(Q)KVER=$(LINUX_VERSION_PROBED); \ KVER_MAJOR=`echo $${KVER} | sed 's/^\([0-9]*\)\..*/\1/'`; \ KVER_MINOR=`echo $${KVER} | sed 's/^[0-9]*\.\([0-9]*\).*/\1/'`; \ if [ $${KVER_MAJOR} -lt 3 -o \( $${KVER_MAJOR} -eq 3 -a $${KVER_MINOR} -lt 10 \) ]; then \ printf "Linux version '%s' is too old for linux-backports (needs 3.10 or later)\n" \ "$${KVER}"; \ exit 1; \ fi $(Q)touch $(@) ================================================ FILE: package/linux-firmware/Config.in ================================================ config BR2_PACKAGE_LINUX_FIRMWARE bool "linux-firmware" help This package provides various binary firmware files (closed binary blobs) for such devices like LAN, WLAN cards etc. https://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git if BR2_PACKAGE_LINUX_FIRMWARE menu "Audio firmware" config BR2_PACKAGE_LINUX_FIRMWARE_INTEL_SST_DSP bool "Intel SST DSP" help Firmware files for Intel Baytrail SST DSP audio. endmenu # Audio menu "Video firmware" config BR2_PACKAGE_LINUX_FIRMWARE_AMDGPU bool "AMD GPU video card firmware" help Firmware files for AMD GPU video cards. config BR2_PACKAGE_LINUX_FIRMWARE_I915 bool "Intel i915 video card firmware" help Firmware files for the Intel i915 video cards. config BR2_PACKAGE_LINUX_FIRMWARE_RADEON bool "AMD Radeon video card firmware" help Firmware files for AMD Radeon video cards. config BR2_PACKAGE_LINUX_FIRMWARE_QCOM_VENUS bool "Qualcomm Venus video codec accelerator" help Firmware files for Qualcomm Venus video codec accelerator config BR2_PACKAGE_LINUX_FIRMWARE_QCOM_ADRENO bool "Qualcomm Adreno GPU firmware" help Firmware files for Qualcomm Adreno GPU firmware config BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8 bool "Samsung MFC video encoder/decoder v8 firmware" help Firmware files for Samsung MFC video encoder/decoder driver v8 endmenu # Video menu "Bluetooth firmware" config BR2_PACKAGE_LINUX_FIRMWARE_IBT bool "Intel Wireless Bluetooth" help Firmware files for Intel 3160/7260/7265/8260/8265 Wireless bluetooth support. config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7650 bool "MediaTek MT7650" help Firmware files for MediaTek MT7650 bluetooth support config BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174A_BT bool "Qualcomm Atheros Rome 6174A Bluetooth" help Firmware files for QCA Rome 6174A bluetooth support. config BR2_PACKAGE_LINUX_FIRMWARE_AR3011 bool "Qualcomm Atheros 3011" help Firmware files for Atheros bluetooth chipset AR3011. config BR2_PACKAGE_LINUX_FIRMWARE_AR3012_USB bool "Qualcomm Atheros 3012 (USB)" help Firmware files for Atheros bluetooth chipset AR3012 on USB. config BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT bool "Realtek 87xx Bluetooth" help Realtek 8723a/8723b/8723bs/8723d/8723ds/8761a config BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT bool "Realtek 88xx Bluetooth" help Realtek 8821a/8821c/8822b/8822cs/8822cu/8852au config BR2_PACKAGE_LINUX_FIRMWARE_TI_CC2560 bool "TI CC2560" help Firmware files for Bluetooth modules CC2560 and CC2560A endmenu # Bluetooth menu "WiFi firmware" config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6002 bool "Atheros 6002" help Firmware files for the Atheros AR6002 chip config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6003 bool "Atheros 6003" help Firmware files for the Atheros AR6003 chip config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6004 bool "Atheros 6004" help Firmware files for the Atheros AR6004 chip config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010 bool "Atheros 7010" help Firmware files for the Atheros 7010 module config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170 bool "Atheros 9170" help Firmware files for the Atheros 9170 module config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271 bool "Atheros 9271" help Firmware files for the Atheros 9271 module config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377 bool "Atheros 10k (QCA9377)" help Firmware files for the Atheros QCA9377 module config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X bool "Atheros 10k (QCA998X)" help Firmware files for the Atheros QCA988X module config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX bool "Broadcom BRCM bcm43xx" help Firmware files for the Broadcom bcm43xx SoftMAC and FullMAC. config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX bool "Broadcom BRCM bcm43xxx" help Firmware files for the Broadcom bcm43xxx, SoftMAC and FullMAC. config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366B1 bool "Broadcom 4366b1" help Firmware file for the Broadcom 4366b1 FullMAC chip. config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366C0 bool "Broadcom 4366c0" help Firmware file for the Broadcom 4366c0 FullMAC chip. config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22260 bool "Intel iwlwifi 22260" help Firmware files for the Intel Wifi 22260 devices supported by the iwlwifi kernel driver. config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160 bool "Intel iwlwifi 3160" 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 Firmware files for the Intel Wifi 5000 devices supported by the iwlwifi kernel driver. config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A bool "Intel iwlwifi 6000G2A" help 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" 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" help Firmware files for the Intel Wifi 7265 devices supported by the iwlwifi kernel driver. 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 Firmware files for the Intel Wifi 7265D devices supported by the iwlwifi kernel driver. config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C bool "Intel iwlwifi 8000C" help Firmware files for the Intel Wifi 8000C devices supported by the iwlwifi kernel driver. config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265 bool "Intel iwlwifi 8265" help Firmware files for the Intel Wifi 8265 devices supported by the iwlwifi kernel driver. config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9XXX bool "Intel iwlwifi 9xxx" help Firmware files for the Intel Wifi 9xxx devices supported by the iwlwifi kernel driver. config BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8 bool "Libertas SD 8686 v8" help Firmware files (version 8) for the Marvell SD8686 module config BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V9 bool "Libertas SD 8686 v9" help Firmware files (version 9) for the Marvell SD8686 module config BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8688 bool "Libertas SD 8688" help Firmware files for the Marvell SD8688 module config BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_USB8388_V9 bool "Libertas USB 8388 v9" help Firmware files (version 9) for the Marvell USB8388 module config BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_USB8388_OLPC bool "Libertas USB 8388 OLPC" help Firmware files (OLPC mesh capable version) for the Marvell USB8388 module. config BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_USB_THINFIRM bool "Libertas USB Thin Firmware" help Firmware files (soft MAC) for the Marvell USB modules config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8787 bool "Marvell Wifi-Ex 8787 SDIO" help Firmware files for the Marvell Wifi-Ex 8787 module on SDIO. config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8797 bool "Marvell Wifi-Ex 8797 SDIO" help Firmware files for the Marvell Wifi-Ex 8797 module on SDIO. config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797 bool "Marvell Wifi-Ex 8797 USB" help Firmware files for the Marvell Wifi-Ex 8797 module on USB. config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8801 bool "Marvell Wifi-Ex 8801 USB" help Firmware files for the Marvell Wifi-Ex 8801 module on USB. config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8887 bool "Marvell Wifi-Ex 8887 SDIO" help Firmware files for the Marvell Wifi-Ex 8887 module on SDIO. config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8897 bool "Marvell Wifi-Ex 8897 SDIO" help Firmware files for the Marvell Wifi-Ex 8897 module on SDIO. config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897 bool "Marvell Wifi-Ex 8897 USB" help Firmware files for the Marvell Wifi-Ex 8897 module on USB. config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIE8897 bool "Marvell Wifi-Ex 8897 PCI-E" help Firmware files for the Marvell Wifi-Ex 8897 module on PCI-E. config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUART8997 bool "Marvell Wifi-Ex 8997 PCI-E/UART" help Firmware files for the Marvell Wifi-Ex 8997 module on PCI-E/UART. config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUSB8997 bool "Marvell Wifi-Ex 8997 PCI-E/USB" help Firmware files for the Marvell Wifi-Ex 8997 module on PCI-E/USB. config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U bool "MediaTek MT7601U" help MediaTek MT7601U config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7610E bool "MediaTek MT7610E" help MediaTek MT7610E config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT76X2E bool "MediaTek MT76x2e" help MediaTek MT76x2e config BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174 bool "Qualcomm Atheros 6174" help Firmware files for the Qualcomm Atheros QCA6174 chip config BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61 bool "Ralink rt2501/rt61" help Ralink rt2501/rt61 config BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73 bool "Ralink rt73" help Ralink rt73 config BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX bool "Ralink rt27xx/rt28xx/rt30xx" help Ralink rt27xx/rt28xx/rt30xx config BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX bool "Realtek 81xx" help Realtek 8188/8192 config BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX bool "Realtek 87xx" help Realtek 8712/8723/8723be config BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX bool "Realtek 88xx" help Realtek rtl8821ae config BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88 bool "Realtek rtw88" help Firmware images supported by Realtek's wireless driver rtw88. config BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9113 bool "Redpine rs9113" help Firmware files for WLAN and Bluetooth modules rs9113 config BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X bool "TI wl127x" help Firmware files for WLAN and Bluetooth modules wl1271 and wl1273 config BR2_PACKAGE_LINUX_FIRMWARE_TI_WL128X bool "TI wl128x" help Firmware files for WLAN and Bluetooth modules wl128x config BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX bool "TI wl18xx" help Firmware files for WLAN and Bluetooth modules wl18xx config BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_WIL6210 bool "Qualcomm Atheros wil6210" help Firmware files for Qualcomm Atheros 11ad family of chips endmenu menu "Ethernet firmware" config BR2_PACKAGE_LINUX_FIRMWARE_BROADCOM_TIGON3 bool "Broadcom NetXtreme/Tigon3" help Firmware files for Broadcom Tigon3 ethernet cards (tigon) config BR2_PACKAGE_LINUX_FIRMWARE_BNX2X bool "Broadcom NetXtremeII" help Firmware files for Broadcom NetXtreme 10Gb ethernet cards (bnx2x) config BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4 bool "Chelsio T4" help Firmware files for Chelsio T4 1Gb and 10Gb ethernet cards (cxgb4) config BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T5 bool "Chelsio T5" help Firmware files for Chelsio T5 1Gb and 10Gb ethernet cards (cxgb4) config BR2_PACKAGE_LINUX_FIRMWARE_INTEL_E100 bool "Intel e100 825xx" help Firmware files for Intel 825xx handled by driver e100 (e100) config BR2_PACKAGE_LINUX_FIRMWARE_MICROCHIP_VSC85XX_PHY bool "Microchip VSC85xx PHYs" help Firmware files for Microchip/Microsemi VSC85xx networking PHYs (VSC8504, VSC8552, VSC8572, VSC8574, VSC856X, VSC8575, VSC8582 and VSC8584) config BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_4X bool "QLogic FastLinQ 4xxxx" help Firmware files for QLogic FastLinQ 4xxxx ethernet devices (qede) config BR2_PACKAGE_LINUX_FIRMWARE_RTL_815X bool "Realtek 8152/8153/8156 USB Ethernet Adapaters" help Firmware files for Realtek 8152/8153/8156 based USB Ethernet adapters. config BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169 bool "Realtek 8169" help Firmware files for Realtek 8169 gigabit ethernet cards endmenu menu "DVB firmware" config BR2_PACKAGE_LINUX_FIRMWARE_AS102 bool "Abilis Systems as102" help Firmware file for Abilis Systems single DVB-T receiver as102 config BR2_PACKAGE_LINUX_FIRMWARE_DIB0700 bool "DiBcom dib0700" help Firmware file for dib0700-based USB DVB tuner driver config BR2_PACKAGE_LINUX_FIRMWARE_ITETECH_IT9135 bool "ITEtech it9135" help Firmware files for ITEtech it9135 (Ax and Bx) DVB-T USB tuner config BR2_PACKAGE_LINUX_FIRMWARE_H5_DRXK bool "Terratec H5 DRX-K" help Firmware file for Terratec H5 DRX-K based DVB tuner driver config BR2_PACKAGE_LINUX_FIRMWARE_XCx000 bool "Xceive/Cresta xc4000/xc5000/xc500c" help Firmware file for xc4000/xc5000/xc5000c based DVB tuner driver endmenu menu "Fibre Channel Adapter Firmware" config BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_2XXX bool "QLogic 2xxx Fibre Channel Adapters" help Firmware files for ql2xxx adapters endmenu menu "Intel QuickAssist Firmware" config BR2_PACKAGE_LINUX_FIRMWARE_QAT_DH895XCC bool "Support for DH895xCC" help Firmware files for Intel DH895xCC devices config BR2_PACKAGE_LINUX_FIRMWARE_QAT_C3XXX bool "Support for C3XXX" help Firmware files for Intel C3XXX devices config BR2_PACKAGE_LINUX_FIRMWARE_QAT_C62X bool "Support for C62X" help Firmware files for Intel C62X devices endmenu menu "USB to Serial Firmware" config BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI bool "USB TI 3410/5052 Serial Firmware" help Firmware files for TI 3410/5052 endmenu menu "V4L Firmware" config BR2_PACKAGE_LINUX_FIRMWARE_CX231XX bool "Conexant Cx23100/101/102 USB broadcast A/V decoder" help Firmware files for Conexant Cx23100/101/102 USB broadcast A/V decoder needed by the Linux CX231XX driver. endmenu endif ================================================ FILE: package/linux-firmware/linux-firmware.hash ================================================ # From https://mirrors.edge.kernel.org/pub/linux/kernel/firmware/sha256sums.asc sha256 2fb22a5d7d23bf1f5800ab8152b39a00a445fbf4923de5a01b59d3f6253f0a9f linux-firmware-20210919.tar.xz # Hash for license files sha256 8116433f4004fc0c24d72b3d9e497808b724aa0e5e1cd63fc1bf66b715b1e2e9 LICENCE.Abilis sha256 8d5847d2971241d4d6a51c16e206379de53a6d4e203fa6f8e1c1e9279c7c4ad0 LICENSE.amdgpu sha256 2d6062d63b91eb750bf741498691604f75184b9fee97608ec537cd09bd6a42b4 LICENCE.Marvell sha256 802b7014b26c606cf6248ae8b0ab1ce6d2d1b0db236d38dd269e676cd70710f2 LICENCE.atheros_firmware sha256 3b5eb392b2d9d8c46d6aae26d06c187e5ea3029b12d13bc2b8deb8b3ce6bfa53 ath10k/QCA6174/hw3.0/notice_ath10k_firmware-4.txt sha256 631065703055d11b099477c508508f20a80b202aad548a7726564bfa59a96c91 ath10k/QCA6174/hw2.1/notice_ath10k_firmware-5.txt sha256 8ce5c6ea0542bf4aac31fc3ae16a39792ad22d0eae4543063fac56fb3380f021 ath10k/QCA6174/hw3.0/notice_ath10k_firmware-6.txt sha256 b16056fc91b82a0e3e8de8f86c2dac98201aa9dc3cbd33e8d38f1b087fcec30d LICENCE.broadcom_bcm43xx sha256 a5777f9e80aca0603b0648454de996168b1c530322550ccda94d6d78bcf6c061 LICENCE.chelsio_firmware sha256 60fbc9cccb455e1a3306c97db942d6f24fa93664be61d54c497637e6d0e2ae83 LICENCE.fw_sst_0f28 sha256 5181b0b51efc79d5acb2c9bb92042878fdbad97a92114d4ab5e32e2b5b52fce4 LICENCE.ibt_firmware sha256 0e0c11073ba3c832097da38e0905da36b8a3526f219407977b13b71c6675be7d LICENCE.it913x sha256 16d5040c7cf851fc693b7542e20870935b99802533ea1bfd231c377a2305e5c5 LICENCE.iwlwifi_firmware sha256 0fc67bd715b3395f3f2af464781910e9e69c4ba23da304352229b42dc9e986c3 LICENCE.microchip sha256 2051d5bf0755a0668f8c3d9a0d1c41d4b8cc411aba70f720fda71ae9e3b4d25c LICENCE.qat_firmware sha256 4071a11d878dbc0ac6d9e71203d03b151638f9d7a8bc47a54c3cb964100d5822 LICENCE.qla2xxx sha256 d7bec70668ddd4aae8fb4aa32870e54b49fcdb0b9b007aa9f54b53a1ac7461bd LICENCE.ralink-firmware.txt sha256 8568352b57f3574f9d5b2753cdb7c6e5eb2b79e82fbb9c9ba6566947467ef508 LICENCE.ralink_a_mediatek_company_firmware sha256 a61351665b4f264f6c631364f85b907d8f8f41f8b369533ef4021765f9f3b62e LICENCE.rtlwifi_firmware.txt sha256 106bef96470001e877fcf7ba0337fa6766a317650eb47fcaeb743eeebd62c4ff LICENCE.ti-connectivity sha256 8ea9f4aee5f53ad877041ff089e8c95d34d615ce19a3111e5e1ea70d990ed7ff LICENCE.xc4000 sha256 30ec8a66503dc73f83937564ae70ca23aa03259e64727ff4195b5b6f695e782f LICENCE.xc5000 sha256 f8822049f32fef2e90a197bd8cf259f476db75d549456bdca8567616a9c07ace LICENCE.xc5000c sha256 a064cbf83e10d72579d236a1e36032681adb8e442943ff75b57020a82992a5ed LICENSE.QualcommAtheros_ar3k sha256 337a55102138d7baa143ee4a4c6c91693e0113fece35d380b2a12109e8c23b3f LICENSE.QualcommAtheros_ath10k sha256 630fd46c95d3ac6544590c2265ba7348fbc930fb386261a1c04dcd9f403645b8 LICENSE.dib0700 sha256 8542aeabf2761935122d693561e16766ce1bcc2b0d003204f9040b7d6d929f2e LICENSE.i915 sha256 be904cd28cb292b80cdb6cf412ab0d9159d431671e987ad433c1f62e0988a9bc LICENSE.qcom sha256 fc6223d4bfe9f2f9e2eddc44b9fe5721d0caf49f01cb08d602906add686d8c6f LICENSE.radeon sha256 2bdd2e716f05d9737d3f9a20f9a3a3c0caee0e866100ddb0673f1178e42f92b9 LICENSE.sdma_firmware sha256 a06edfd3649df6b0cbac8304d6d53f661963381f1231fd02da259806763d4162 WHENCE sha256 fa43e1b9a13b341a07adca9dbe73d0f9072d7966fdfe811c01f0dd2872d7309a qcom/NOTICE.txt sha256 bef9c828e84f21e7835b4de7daf954a327e1ff777871b58e116039b684c0d604 LICENCE.e100 ================================================ FILE: package/linux-firmware/linux-firmware.mk ================================================ ################################################################################ # # linux-firmware # ################################################################################ LINUX_FIRMWARE_VERSION = 20210919 LINUX_FIRMWARE_SOURCE = linux-firmware-$(LINUX_FIRMWARE_VERSION).tar.xz LINUX_FIRMWARE_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/firmware LINUX_FIRMWARE_INSTALL_IMAGES = YES LINUX_FIRMWARE_CPE_ID_VENDOR = kernel # Intel SST DSP ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_INTEL_SST_DSP),y) LINUX_FIRMWARE_FILES += intel/fw_sst_0f28.bin-48kHz_i2s_master LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.fw_sst_0f28 endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AMDGPU),y) LINUX_FIRMWARE_DIRS += amdgpu LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.amdgpu endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_I915),y) LINUX_FIRMWARE_DIRS += i915 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.i915 endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RADEON),y) LINUX_FIRMWARE_DIRS += radeon LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.radeon endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QCOM_VENUS),y) LINUX_FIRMWARE_DIRS += qcom/venus-1.8 qcom/venus-4.2 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom qcom/NOTICE.txt endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QCOM_ADRENO),y) LINUX_FIRMWARE_FILES += qcom/a* LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom qcom/NOTICE.txt endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8),y) LINUX_FIRMWARE_FILES += \ s5p-mfc.fw \ s5p-mfc-v6.fw \ s5p-mfc-v6-v2.fw \ s5p-mfc-v7.fw \ s5p-mfc-v8.fw # No license file; the license is in the file WHENCE # which is installed unconditionally endif # Intel Wireless Bluetooth ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IBT),y) LINUX_FIRMWARE_FILES += intel/ibt-* LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ibt_firmware endif # Qualcomm Atheros Rome 6174A Bluetooth ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174A_BT),y) LINUX_FIRMWARE_FILES += qca/rampatch_usb_00000302.bin qca/nvm_usb_00000302.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom endif # Realtek 87xx Bluetooth ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT),y) LINUX_FIRMWARE_FILES += \ rtl_bt/rtl8723a_fw.bin rtl_bt/rtl8723b_fw.bin \ rtl_bt/rtl8723bs_config-OBDA8723.bin \ rtl_bt/rtl8723bs_fw.bin rtl_bt/rtl8723d_config.bin \ rtl_bt/rtl8723d_fw.bin rtl_bt/rtl8761a_fw.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif # Realtek 88xx Bluetooth ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT),y) LINUX_FIRMWARE_FILES += \ rtl_bt/rtl8812ae_fw.bin rtl_bt/rtl8821a_fw.bin \ rtl_bt/rtl8821c_config.bin rtl_bt/rtl8821c_fw.bin \ rtl_bt/rtl8822b_config.bin rtl_bt/rtl8822b_fw.bin \ rtl_bt/rtl8822cs_config.bin rtl_bt/rtl8822cs_fw.bin \ rtl_bt/rtl8822cu_config.bin rtl_bt/rtl8822cu_fw.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif # rt2501/rt61 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61),y) LINUX_FIRMWARE_FILES += rt2561.bin rt2561s.bin rt2661.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink-firmware.txt endif # rt73 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73),y) LINUX_FIRMWARE_FILES += rt73.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink-firmware.txt endif # rt2xx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX),y) LINUX_FIRMWARE_FILES += rt2860.bin rt2870.bin rt3071.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink-firmware.txt endif # rtl81xx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX),y) LINUX_FIRMWARE_FILES += \ rtlwifi/rtl8192cfw.bin \ rtlwifi/rtl8192cfwU.bin \ rtlwifi/rtl8192cfwU_B.bin \ rtlwifi/rtl8192cufw.bin \ rtlwifi/rtl8192defw.bin \ rtlwifi/rtl8192sefw.bin \ rtlwifi/rtl8188efw.bin \ rtlwifi/rtl8188eufw.bin \ rtlwifi/rtl8192cufw_A.bin \ rtlwifi/rtl8192cufw_B.bin \ rtlwifi/rtl8192cufw_TMSC.bin \ rtlwifi/rtl8192eu_ap_wowlan.bin \ rtlwifi/rtl8192eu_nic.bin \ rtlwifi/rtl8192eu_wowlan.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif # rtl87xx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX),y) LINUX_FIRMWARE_FILES += \ rtlwifi/rtl8712u.bin \ rtlwifi/rtl8723fw.bin \ rtlwifi/rtl8723fw_B.bin \ rtlwifi/rtl8723befw.bin \ rtlwifi/rtl8723aufw_A.bin \ rtlwifi/rtl8723aufw_B.bin \ rtlwifi/rtl8723aufw_B_NoBT.bin \ rtlwifi/rtl8723befw.bin \ rtlwifi/rtl8723bs_bt.bin \ rtlwifi/rtl8723bu_ap_wowlan.bin \ rtlwifi/rtl8723bu_nic.bin \ rtlwifi/rtl8723bu_wowlan.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif # rtl88xx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX),y) LINUX_FIRMWARE_FILES += \ rtlwifi/rtl8821aefw.bin \ rtlwifi/rtl8821aefw_wowlan.bin \ rtlwifi/rtl8821aefw_29.bin rtlwifi/rtl8822befw.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif # rtw88 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88),y) LINUX_FIRMWARE_FILES += \ rtw88/rtw8723d_fw.bin \ rtw88/rtw8822b_fw.bin \ rtw88/rtw8822c_fw.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif # ar3011 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AR3011),y) LINUX_FIRMWARE_FILES += ath3k-1.fw LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware endif # ar3012 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AR3012_USB),y) LINUX_FIRMWARE_FILES += \ ar3k/AthrBT_0x01020001.dfu \ ar3k/ramps_0x01020001_26.dfu \ ar3k/AthrBT_0x01020200.dfu \ ar3k/ramps_0x01020200_26.dfu \ ar3k/ramps_0x01020200_40.dfu \ ar3k/AthrBT_0x31010000.dfu \ ar3k/ramps_0x31010000_40.dfu \ ar3k/AthrBT_0x11020000.dfu \ ar3k/ramps_0x11020000_40.dfu \ ar3k/ramps_0x01020201_26.dfu \ ar3k/ramps_0x01020201_40.dfu \ ar3k/AthrBT_0x41020000.dfu \ ar3k/ramps_0x41020000_40.dfu \ ar3k/AthrBT_0x11020100.dfu \ ar3k/ramps_0x11020100_40.dfu \ ar3k/AthrBT_0x31010100.dfu \ ar3k/ramps_0x31010100_40.dfu \ ar3k/AthrBT_0x01020201.dfu LINUX_FIRMWARE_ALL_LICENSE_FILES += \ LICENCE.atheros_firmware LICENSE.QualcommAtheros_ar3k endif # ar6002 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6002),y) LINUX_FIRMWARE_FILES += ath6k/AR6002 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware endif # ar6003 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6003),y) LINUX_FIRMWARE_FILES += ath6k/AR6003 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware endif # ar6004 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6004),y) LINUX_FIRMWARE_FILES += ath6k/AR6004 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware endif # ar7010 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010),y) 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 # ar9170 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170),y) LINUX_FIRMWARE_FILES += ar9170-1.fw ar9170-2.fw carl9170-1.fw LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware endif # ar9271 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271),y) 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 # ath10k ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377),y) LINUX_FIRMWARE_FILES += ath10k/QCA9377/hw1.0/board-2.bin \ ath10k/QCA9377/hw1.0/board.bin \ ath10k/QCA9377/hw1.0/firmware-5.bin \ ath10k/QCA9377/hw1.0/firmware-6.bin \ ath10k/QCA9377/hw1.0/firmware-sdio-5.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X),y) LINUX_FIRMWARE_FILES += ath10k/QCA988X/hw2.0/board.bin \ ath10k/QCA988X/hw2.0/firmware-4.bin \ ath10k/QCA988X/hw2.0/firmware-5.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware endif # sd8686 v8 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8),y) LINUX_FIRMWARE_FILES += libertas/sd8686_v8.bin libertas/sd8686_v8_helper.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # sd8686 v9 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V9),y) LINUX_FIRMWARE_FILES += libertas/sd8686_v9.bin libertas/sd8686_v9_helper.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # sd8688 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8688),y) LINUX_FIRMWARE_FILES += mrvl/sd8688.bin mrvl/sd8688_helper.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # usb8388 v9 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_USB8388_V9),y) LINUX_FIRMWARE_FILES += libertas/usb8388_v9.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # usb8388 olpc ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_USB8388_OLPC),y) LINUX_FIRMWARE_FILES += libertas/usb8388_olpc.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # lbtf usb ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_USB_THINFIRM),y) LINUX_FIRMWARE_FILES += lbtf_usb.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # sd8787 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8787),y) LINUX_FIRMWARE_FILES += mrvl/sd8787_uapsta.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # sd8797 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8797),y) LINUX_FIRMWARE_FILES += mrvl/sd8797_uapsta.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # usb8797 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797),y) LINUX_FIRMWARE_FILES += mrvl/usb8797_uapsta.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # usb8801 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8801),y) LINUX_FIRMWARE_FILES += mrvl/usb8801_uapsta.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # sd8887 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8887),y) LINUX_FIRMWARE_FILES += mrvl/sd8887_uapsta.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # sd8897 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8897),y) LINUX_FIRMWARE_FILES += mrvl/sd8897_uapsta.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # usb8897 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897),y) LINUX_FIRMWARE_FILES += mrvl/usb8897_uapsta.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # pcie8897 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIE8897),y) LINUX_FIRMWARE_FILES += mrvl/pcie8897_uapsta.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # pcieuart8997 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUART8997),y) LINUX_FIRMWARE_FILES += mrvl/pcieuart8997_combo_v4.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif # pcieusb8997 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUSB8997),y) LINUX_FIRMWARE_FILES += mrvl/pcieusb8997_combo_v4.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 # MT7610 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7610E),y) LINUX_FIRMWARE_FILES += mediatek/mt7610e.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware endif # MT7650 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7650),y) LINUX_FIRMWARE_FILES += mt7650.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware endif # MT76x2e ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT76X2E),y) LINUX_FIRMWARE_FILES += mt7662.bin mt7662_rom_patch.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware endif # qca6174 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174),y) LINUX_FIRMWARE_FILES += ath10k/QCA6174 LINUX_FIRMWARE_ALL_LICENSE_FILES += \ LICENSE.QualcommAtheros_ath10k \ ath10k/QCA6174/hw2.1/notice_ath10k_firmware-5.txt \ ath10k/QCA6174/hw3.0/notice_ath10k_firmware-4.txt \ ath10k/QCA6174/hw3.0/notice_ath10k_firmware-6.txt endif # CC2560(A) ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_CC2560),y) LINUX_FIRMWARE_FILES += \ ti-connectivity/TIInit_6.2.31.bts \ ti-connectivity/TIInit_6.6.15.bts LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity endif # wl127x ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X),y) LINUX_FIRMWARE_FILES += \ ti-connectivity/wl1271-fw-2.bin \ ti-connectivity/wl1271-fw-ap.bin \ ti-connectivity/wl1271-fw.bin \ ti-connectivity/wl127x-fw-3.bin \ ti-connectivity/wl127x-fw-plt-3.bin \ ti-connectivity/wl127x-nvs.bin \ ti-connectivity/wl127x-fw-4-mr.bin \ ti-connectivity/wl127x-fw-4-plt.bin \ ti-connectivity/wl127x-fw-4-sr.bin \ ti-connectivity/wl127x-fw-5-mr.bin \ ti-connectivity/wl127x-fw-5-plt.bin \ ti-connectivity/wl127x-fw-5-sr.bin \ ti-connectivity/TIInit_7.2.31.bts LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity endif # wl128x ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL128X),y) LINUX_FIRMWARE_FILES += \ ti-connectivity/wl128x-fw-3.bin \ ti-connectivity/wl128x-fw-ap.bin \ ti-connectivity/wl128x-fw-plt-3.bin \ ti-connectivity/wl128x-fw.bin \ ti-connectivity/wl128x-nvs.bin \ ti-connectivity/wl127x-nvs.bin \ ti-connectivity/wl128x-fw-4-mr.bin \ ti-connectivity/wl128x-fw-4-plt.bin \ ti-connectivity/wl128x-fw-4-sr.bin \ ti-connectivity/wl128x-fw-5-mr.bin \ ti-connectivity/wl128x-fw-5-plt.bin \ ti-connectivity/wl128x-fw-5-sr.bin \ ti-connectivity/TIInit_7.2.31.bts LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity endif # wl18xx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX),y) LINUX_FIRMWARE_FILES += \ ti-connectivity/wl18xx-fw.bin \ ti-connectivity/wl18xx-fw-2.bin \ ti-connectivity/wl18xx-fw-3.bin \ ti-connectivity/wl18xx-fw-4.bin \ ti-connectivity/wl127x-nvs.bin \ ti-connectivity/TIInit_7.2.31.bts LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_WIL6210),y) LINUX_FIRMWARE_FILES += wil6210.* LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.QualcommAtheros_ath10k endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22260),y) LINUX_FIRMWARE_FILES += iwlwifi-cc-a0-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160),y) 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 # iwlwifi 5000. Multiple files are available (iwlwifi-5000-1.ucode, # iwlwifi-5000-2.ucode, iwlwifi-5000-5.ucode), corresponding to # different versions of the firmware API. For now, we only install the # most recent one. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000),y) LINUX_FIRMWARE_FILES += iwlwifi-5000-5.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A),y) 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-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265),y) 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 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9XXX),y) LINUX_FIRMWARE_FILES += iwlwifi-9???-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BROADCOM_TIGON3),y) LINUX_FIRMWARE_FILES += tigon/* # No license file; the license is in the file WHENCE # which is installed unconditionally endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BNX2X),y) LINUX_FIRMWARE_FILES += bnx2x/* # No license file; the license is in the file WHENCE # which is installed unconditionally endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4),y) LINUX_FIRMWARE_FILES += cxgb4/t4fw*.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.chelsio_firmware endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T5),y) LINUX_FIRMWARE_FILES += cxgb4/t5fw*.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.chelsio_firmware endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_INTEL_E100),y) LINUX_FIRMWARE_FILES += e100/*.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.e100 endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MICROCHIP_VSC85XX_PHY),y) LINUX_FIRMWARE_FILES += microchip/mscc_vsc85*.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.microchip endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_4X),y) LINUX_FIRMWARE_FILES += \ qed/qed_init_values_zipped-*.bin # No license file; the license is in the file WHENCE # which is installed unconditionally endif # rtl815x ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_815X),y) LINUX_FIRMWARE_FILES += \ rtl_nic/rtl8153a-2.fw \ rtl_nic/rtl8153a-3.fw \ rtl_nic/rtl8153a-4.fw \ rtl_nic/rtl8153b-2.fw \ rtl_nic/rtl8153c-1.fw \ rtl_nic/rtl8156a-2.fw \ rtl_nic/rtl8156b-2.fw LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169),y) LINUX_FIRMWARE_FILES += \ rtl_nic/rtl8105e-1.fw \ rtl_nic/rtl8106e-1.fw \ rtl_nic/rtl8106e-2.fw \ rtl_nic/rtl8107e-1.fw \ rtl_nic/rtl8107e-2.fw \ rtl_nic/rtl8125a-3.fw \ rtl_nic/rtl8168d-1.fw \ rtl_nic/rtl8168d-2.fw \ rtl_nic/rtl8168e-1.fw \ rtl_nic/rtl8168e-2.fw \ rtl_nic/rtl8168e-3.fw \ rtl_nic/rtl8168f-1.fw \ rtl_nic/rtl8168f-2.fw \ rtl_nic/rtl8168fp-3.fw \ rtl_nic/rtl8168g-2.fw \ rtl_nic/rtl8168g-3.fw \ rtl_nic/rtl8168h-1.fw \ rtl_nic/rtl8168h-2.fw \ rtl_nic/rtl8402-1.fw \ rtl_nic/rtl8411-1.fw \ rtl_nic/rtl8411-2.fw endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_XCx000),y) LINUX_FIRMWARE_FILES += \ dvb-fe-xc4000-1.4.1.fw \ dvb-fe-xc5000-1.6.114.fw \ dvb-fe-xc5000c-4.1.30.7.fw LINUX_FIRMWARE_ALL_LICENSE_FILES += \ LICENCE.xc4000 \ LICENCE.xc5000 \ LICENCE.xc5000c endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AS102),y) LINUX_FIRMWARE_FILES += as102_data1_st.hex as102_data2_st.hex LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Abilis endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_DIB0700),y) LINUX_FIRMWARE_FILES += dvb-usb-dib0700-1.20.fw LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.dib0700 endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ITETECH_IT9135),y) LINUX_FIRMWARE_FILES += dvb-usb-it9135-01.fw dvb-usb-it9135-02.fw LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.it913x endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_H5_DRXK),y) LINUX_FIRMWARE_FILES += dvb-usb-terratec-h5-drxk.fw # No license file; the license is in the file WHENCE # which is installed unconditionally endif # brcm43xx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX),y) LINUX_FIRMWARE_FILES += \ brcm/bcm4329-fullmac-4.bin \ brcm/brcmfmac4329-sdio.bin \ brcm/brcmfmac4330-sdio.bin \ brcm/brcmfmac4334-sdio.bin \ brcm/brcmfmac4335-sdio.bin \ brcm/brcmfmac4350c2-pcie.bin \ brcm/brcmfmac4350-pcie.bin \ brcm/brcmfmac4358-pcie.bin \ brcm/brcmfmac4371-pcie.bin \ brcm/brcmfmac4373.bin \ brcm/brcmfmac4330-sdio.Prowise-PT301.txt \ brcm/brcmfmac4356-pcie.gpd-win-pocket.txt \ brcm/brcmfmac4356-sdio.vamrs,rock960.txt LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx endif # brcm43xxx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX),y) LINUX_FIRMWARE_FILES += \ brcm/brcmfmac43143.bin \ brcm/brcmfmac43143-sdio.bin \ brcm/brcmfmac43236b.bin \ brcm/brcmfmac43241b0-sdio.bin \ brcm/brcmfmac43241b4-sdio.bin \ brcm/brcmfmac43241b5-sdio.bin \ brcm/brcmfmac43242a.bin \ brcm/brcmfmac43430a0-sdio.bin \ brcm/brcmfmac43569.bin \ brcm/brcmfmac43602-pcie.ap.bin \ brcm/brcmfmac43602-pcie.bin \ brcm/brcmfmac43340-sdio.meegopad-t08.txt \ brcm/brcmfmac43340-sdio.pov-tab-p1006w-data.txt \ brcm/brcmfmac43340-sdio.predia-basic.txt \ brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt \ brcm/brcmfmac43430a0-sdio.ilife-S806.txt \ brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt \ brcm/brcmfmac43430-sdio.AP6212.txt \ brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt \ brcm/brcmfmac43430-sdio.MUR1DX.txt \ brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt \ brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt \ brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx endif # brcm4366b1 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366B1),y) LINUX_FIRMWARE_FILES += brcm/brcmfmac4366b-pcie.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx endif # brcm4366c0 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366C0),y) LINUX_FIRMWARE_FILES += brcm/brcmfmac4366c-pcie.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx endif # ql2xxx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_2XXX),y) LINUX_FIRMWARE_FILES += \ ql2100_fw.bin ql2200_fw.bin ql2300_fw.bin ql2322_fw.bin \ ql2400_fw.bin ql2500_fw.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.qla2xxx endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9113),y) LINUX_FIRMWARE_FILES += \ rsi/rs9113_ap_bt_dual_mode.rps \ rsi/rs9113_wlan_bt_dual_mode.rps \ rsi/rs9113_wlan_qspi.rps # No license file; the license is in the file WHENCE # which is installed unconditionally endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QAT_DH895XCC),y) LINUX_FIRMWARE_FILES += qat_895xcc.bin qat_895xcc_mmp.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.qat_firmware endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QAT_C3XXX),y) LINUX_FIRMWARE_FILES += qat_c3xxx.bin qat_c3xxx_mmp.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.qat_firmware endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QAT_C62X),y) LINUX_FIRMWARE_FILES += qat_c62x.bin qat_c62x_mmp.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.qat_firmware endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI),y) LINUX_FIRMWARE_FILES += ti_3410.fw ti_5052.fw \ mts_cdma.fw mts_gsm.fw mts_edge.fw mts_mt9234mu.fw mts_mt9234zba.fw \ moxa/moxa-1110.fw moxa/moxa-1130.fw moxa/moxa-1131.fw \ moxa/moxa-1150.fw moxa/moxa-1151.fw # Some firmware's license is in the file WHENCE # which is installed unconditionally LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.moxa endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CX231XX),y) LINUX_FIRMWARE_FILES += v4l-cx231xx-avcore-01.fw # No license file; the license is in the file WHENCE # which is installed unconditionally endif ifneq ($(LINUX_FIRMWARE_FILES)$(LINUX_FIRMWARE_DIRS),) define LINUX_FIRMWARE_BUILD_CMDS cd $(@D) && \ $(TAR) cf br-firmware.tar $(sort $(LINUX_FIRMWARE_FILES) $(LINUX_FIRMWARE_DIRS)) endef # Most firmware files are under a proprietary license, so no need to # repeat it for every selections above. Those firmwares that have more # lax licensing terms may still add them on a per-case basis. LINUX_FIRMWARE_LICENSE += Proprietary # This file contains some licensing information about all the firmware # files found in the linux-firmware package, so we always add it, even # for firmwares that have their own licensing terms. LINUX_FIRMWARE_ALL_LICENSE_FILES += WHENCE # Some license files may be listed more than once, so we have to remove # duplicates LINUX_FIRMWARE_LICENSE_FILES = $(sort $(LINUX_FIRMWARE_ALL_LICENSE_FILES)) # Some firmware are distributed as a symlink, for drivers to load them using a # defined name other than the real one. Since 9cfefbd7fbda ("Remove duplicate # symlinks") those symlink aren't distributed in linux-firmware but are created # automatically by its copy-firmware.sh script during the installation, which # parses the WHENCE file where symlinks are described. We follow the same logic # here, adding symlink only for firmwares installed in the target directory. # # For testing the presence of firmwares in the target directory we first make # sure we canonicalize the pointed-to file, to cover the symlinks of the form # a/foo -> ../b/foo where a/ (the directory where to put the symlink) does # not yet exist. define LINUX_FIRMWARE_INSTALL_FW mkdir -p $(1) $(TAR) xf $(@D)/br-firmware.tar -C $(1) cd $(1) ; \ sed -r -e '/^Link: (.+) -> (.+)$$/!d; s//\1 \2/' $(@D)/WHENCE | \ while read f d; do \ if test -f $$(readlink -m $$(dirname "$$f")/$$d); then \ mkdir -p $$(dirname "$$f") || exit 1; \ ln -sf $$d "$$f" || exit 1; \ fi ; \ done endef endif # LINUX_FIRMWARE_FILES || LINUX_FIRMWARE_DIRS define LINUX_FIRMWARE_INSTALL_TARGET_CMDS $(call LINUX_FIRMWARE_INSTALL_FW, $(TARGET_DIR)/lib/firmware) endef define LINUX_FIRMWARE_INSTALL_IMAGES_CMDS $(call LINUX_FIRMWARE_INSTALL_FW, $(BINARIES_DIR)) endef $(eval $(generic-package)) ================================================ FILE: package/linux-fusion/0001-fix-for-linux-4-and-above.patch ================================================ Fix build for linux >= 4.x Instead of relying on testing for '3' as the linux kernel major verison, check that it is 2.x to include the proper Makefile, otherwise forcibly include the .26 Makefile, that is good for 3.x and 4.x too. Signed-off-by: "Yann E. MORIN" diff -durN linux-fusion-9.0.2.orig/Makefile linux-fusion-9.0.2/Makefile --- linux-fusion-9.0.2.orig/Makefile 2013-07-15 11:58:03.000000000 +0200 +++ linux-fusion-9.0.2/Makefile 2015-06-06 19:03:04.059842652 +0200 @@ -62,10 +62,10 @@ CPPFLAGS += -DHAVE_LINUX_CONFIG_H endif -ifeq ($(K_VERSION),3) - KMAKEFILE = Makefile-2.6 -else +ifeq ($(K_VERSION),2) KMAKEFILE = Makefile-2.$(K_PATCHLEVEL) +else + KMAKEFILE = Makefile-2.6 endif check-version = $(shell expr \( $(K_VERSION) \* 65536 + $(K_PATCHLEVEL) \* 256 + $(K_SUBLEVEL) \) \>= \( $(1) \* 65536 + $(2) \* 256 + $(3) \)) ================================================ FILE: package/linux-fusion/0002-Fix-mismatched-conversion-spec-and-value-in-printk.patch ================================================ From debb9cafe9b7cc2b286399ecc8e3210480061c70 Mon Sep 17 00:00:00 2001 From: Marc Gonzalez Date: Mon, 11 Jan 2016 15:42:16 +0100 Subject: [PATCH] Fix mismatched conversion spec and value in printk linux/drivers/char/fusion/fusiondev.c:775:38: warning: format '%ld' expects argument of type 'long int', but argument 7 has type 'int' Subtracting two pointers yields a ptrdiff_t value, and ptrdiff_t is not necessarily an alias for long int. Cast the value to long int. Signed-off-by: Marc Gonzalez --- linux/drivers/char/fusion/fusiondev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/drivers/char/fusion/fusiondev.c b/linux/drivers/char/fusion/fusiondev.c index 7003407f7e1e..dfb5f8ecb81a 100644 --- a/linux/drivers/char/fusion/fusiondev.c +++ b/linux/drivers/char/fusion/fusiondev.c @@ -775,7 +775,7 @@ call_ioctl(FusionDev * dev, Fusionee * fusionee, printk( KERN_ERR "fusion: FUSION_CALL_EXECUTE3 with errorneous call (failed on previous ioctl call), " "call id %d, flags 0x%08x, arg %d, length %u, serial %u, %ld\n", execute3.call_id, execute3.flags, execute3.call_arg, execute3.length, execute3.ret_length, - (execute3_bin - (FusionCallExecute3 *) arg) ); + (long int)(execute3_bin - (FusionCallExecute3 *) arg) ); return -EIO; } ================================================ FILE: package/linux-fusion/0003-Fix-fusion-Unknown-symbol-tasklist_lock-err-0.patch ================================================ From 9fcd5003c0363af140a06aba94e62c9e1ea0381e Mon Sep 17 00:00:00 2001 From: Marc Gonzalez Date: Mon, 11 Jan 2016 16:45:30 +0100 Subject: [PATCH] Fix fusion: Unknown symbol tasklist_lock (err 0) Commit 28f6569ab7d0 renamed TREE_PREEMPT_RCU to PREEMPT_RCU in 3.19 As a result, the code incorrectly falls back to using tasklist_lock (which was made private in 2.6.18) Always use rcu_read_lock on modern kernels. Signed-off-by: Marc Gonzalez --- linux/drivers/char/fusion/fusionee.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux/drivers/char/fusion/fusionee.c b/linux/drivers/char/fusion/fusionee.c index ef067f5bc831..70cd0a665f98 100644 --- a/linux/drivers/char/fusion/fusionee.c +++ b/linux/drivers/char/fusion/fusionee.c @@ -925,7 +925,7 @@ fusionee_kill(FusionDev * dev, if (f != fusionee && (!target || target == f->id)) { struct task_struct *p; -#if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) || defined(CONFIG_TINY_RCU) || defined(rcu_read_lock) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) rcu_read_lock(); #else read_lock(&tasklist_lock); @@ -946,7 +946,7 @@ fusionee_kill(FusionDev * dev, } } -#if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) || defined(CONFIG_TINY_RCU) || defined(rcu_read_unlock) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) rcu_read_unlock(); #else read_unlock(&tasklist_lock); ================================================ FILE: package/linux-fusion/0004-Port-one-one_udp.c-to-Linux-4.1.patch ================================================ From be288b60278c78eccfd347aacf4d3dd8771215a9 Mon Sep 17 00:00:00 2001 From: Marc Gonzalez Date: Tue, 12 Jan 2016 14:01:42 +0100 Subject: [PATCH] Port one/one_udp.c to Linux 4.1 Kernel commit c0371da6047a replaced msg_iov and msg_iovlen with msg_iter in struct msghdr since 3.19 one/one_udp.c: In function 'ksocket_send_iov': one/one_udp.c:186:9: error: 'struct msghdr' has no member named 'msg_iov' one/one_udp.c:187:9: error: 'struct msghdr' has no member named 'msg_iovlen' one/one_udp.c: In function 'ksocket_receive': one/one_udp.c:221:9: error: 'struct msghdr' has no member named 'msg_iov' one/one_udp.c:222:9: error: 'struct msghdr' has no member named 'msg_iovlen' The iov_iter interface https://lwn.net/Articles/625077/ Kernel commit d8725c86aeba dropped the len parameter in sock_sendmsg since 4.1 one/one_udp.c: In function 'ksocket_send_iov': one/one_udp.c:192:13: error: too many arguments to function 'sock_sendmsg' Signed-off-by: Marc Gonzalez Kernel commit 2da62906b1e29 dropped the size parameter in sock_recvmsg since 4.7 In function 'ksocket_receive' one/one_udp.c:235:13: error: too many arguments to function 'sock_recvmsg' Signed-off-by: Matthew Shyu --- one/one_udp.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/one/one_udp.c b/one/one_udp.c index 26b9e6a..9b59529 100644 --- a/one/one_udp.c +++ b/one/one_udp.c @@ -161,7 +161,7 @@ ksocket_send_iov( struct socket *sock, const struct iovec *iov, size_t iov_count ) { - struct msghdr msg; + struct msghdr msg = { addr, sizeof *addr }; mm_segment_t oldfs; int size = 0; size_t len = 0; @@ -178,18 +178,20 @@ ksocket_send_iov( struct socket *sock, for (i=0; i Date: Wed, 16 Dec 2020 18:48:28 -0500 Subject: [PATCH] configure: test -a|o is not POSIX Fixes `test: too many arguments` when building Linux-PAM using sbase. This is due to a non-POSIX syntax test ... -a ... and test ... -o .... > The XSI extensions specifying the -a and -o binary primaries and the > '(' and ')' operators have been marked obsolescent. See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html [Retrieved from: https://github.com/linux-pam/linux-pam/commit/7c54428db5b639f05093459b1ba3b77456c5a548] Signed-off-by: Fabrice Fontaine --- configure.ac | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 5eade7cd3..e325bdd3c 100644 --- a/configure.ac +++ b/configure.ac @@ -346,7 +346,7 @@ if test x"$WITH_LIBAUDIT" != xno ; then [HAVE_AUDIT_TTY_STATUS=""], [#include ])] ) - if test -n "$LIBAUDIT" -a "$ac_cv_header_libaudit_h" != "no" ; then + if test -n "$LIBAUDIT" && test "$ac_cv_header_libaudit_h" != "no" ; then AC_DEFINE([HAVE_LIBAUDIT], 1, [Define to 1 if audit support should be compiled in.]) fi if test -n "$HAVE_AUDIT_TTY_STATUS" ; then @@ -373,12 +373,12 @@ esac AC_CHECK_FUNCS(crypt_r crypt_gensalt_r) LIBS=$BACKUP_LIBS AC_SUBST(LIBCRYPT) -if test "$LIBCRYPT" = "-lxcrypt" -a "$ac_cv_header_xcrypt_h" = "yes" ; then +if test "$LIBCRYPT" = "-lxcrypt" && test "$ac_cv_header_xcrypt_h" = "yes" ; then AC_DEFINE([HAVE_LIBXCRYPT], 1, [Define to 1 if xcrypt support should be compiled in.]) fi AC_ARG_WITH([randomdev], AS_HELP_STRING([--with-randomdev=(|yes|no)],[use specified random device instead of /dev/urandom or 'no' to disable]), opt_randomdev=$withval) -if test "$opt_randomdev" = yes -o -z "$opt_randomdev"; then +if test "$opt_randomdev" = yes || test -z "$opt_randomdev"; then opt_randomdev="/dev/urandom" elif test "$opt_randomdev" = no; then opt_randomdev= @@ -395,7 +395,7 @@ AC_ARG_ENABLE([db], AC_ARG_WITH([db-uniquename], AS_HELP_STRING([--with-db-uniquename=extension],[Unique name for db libraries and functions.])) if test x"$WITH_DB" != xno ; then - if test x"$WITH_DB" = xyes -o x"$WITH_DB" = xdb ; then + if test x"$WITH_DB" = xyes || test x"$WITH_DB" = xdb ; then old_libs=$LIBS LIBS="$LIBS -ldb$with_db_uniquename" AC_CHECK_FUNCS([db_create$with_db_uniquename db_create dbm_store$with_db_uniquename dbm_store], @@ -572,7 +572,7 @@ fi AC_PATH_PROG([FO2PDF], [fop]) -AM_CONDITIONAL(ENABLE_REGENERATE_MAN, test x$enable_docu != xno -a x$enable_doc != xno) +AM_CONDITIONAL(ENABLE_REGENERATE_MAN, test x$enable_docu != xno && test x$enable_doc != xno) AM_CONDITIONAL(ENABLE_GENERATE_PDF, test -n "$FO2PDF") @@ -625,7 +625,7 @@ esac AM_CONDITIONAL([COND_BUILD_PAM_KEYINIT], [test "$have_key_syscalls" = 1]) AM_CONDITIONAL([COND_BUILD_PAM_LASTLOG], [test "$ac_cv_func_logwtmp" = yes]) AM_CONDITIONAL([COND_BUILD_PAM_NAMESPACE], [test "$ac_cv_func_unshare" = yes]) -AM_CONDITIONAL([COND_BUILD_PAM_RHOSTS], [test "$ac_cv_func_ruserok_af" = yes -o "$ac_cv_func_ruserok" = yes]) +AM_CONDITIONAL([COND_BUILD_PAM_RHOSTS], [test "$ac_cv_func_ruserok_af" = yes || test "$ac_cv_func_ruserok" = yes]) AM_CONDITIONAL([COND_BUILD_PAM_SELINUX], [test -n "$LIBSELINUX"]) AM_CONDITIONAL([COND_BUILD_PAM_SEPERMIT], [test -n "$LIBSELINUX"]) AM_CONDITIONAL([COND_BUILD_PAM_SETQUOTA], [test "$ac_cv_func_quotactl" = yes]) ================================================ FILE: package/linux-pam/0002-Remove-support-for-legacy-xcrypt.patch ================================================ From 530c9f9e2d746e1d168c6b17863debda7664ac7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Fri, 28 Feb 2020 15:47:52 +0100 Subject: [PATCH] Remove support for legacy xcrypt Since many distributions are shipping a version of libxcrypt >= 4.0.0 as a replacement for glibc's libcrypt now, older versions of xcrypt, which could be installed in parallel, are not relevant anymore. * configure.ac (AC_CHECK_HEADERS): Remove xcrypt.h. (AC_SEARCH_LIBS): Remove xcrypt. (AC_CHECK_FUNCS): Remove crypt_gensalt_r. (AC_DEFINE): Remove HAVE_LIBXCRYPT. * modules/pam_pwhistory/opasswd.c [HAVE_LIBXCRYPT]: Remove. * modules/pam_unix/bigcrypt.c [HAVE_LIBXCRYPT]: Likewise. * modules/pam_userdb/pam_userdb.c [HAVE_LIBXCRYPT]: Likewise. * modules/pam_unix/passverify.c [HAVE_LIBXCRYPT]: Likewise. (create_password_hash) [HAVE_LIBXCRYPT]: Likewise. [Retrieved from: https://github.com/linux-pam/linux-pam/commit/530c9f9e2d746e1d168c6b17863debda7664ac7c] Signed-off-by: Fabrice Fontaine --- configure.ac | 12 +++--------- modules/pam_pwhistory/opasswd.c | 4 +--- modules/pam_unix/bigcrypt.c | 4 +--- modules/pam_unix/passverify.c | 24 +++++------------------- modules/pam_userdb/pam_userdb.c | 4 +--- 5 files changed, 11 insertions(+), 37 deletions(-) diff --git a/configure.ac b/configure.ac index 8e5d0ff7c..100565552 100644 --- a/configure.ac +++ b/configure.ac @@ -359,23 +359,17 @@ else fi AC_SUBST(LIBAUDIT) -AC_CHECK_HEADERS(xcrypt.h crypt.h) -AS_IF([test "x$ac_cv_header_xcrypt_h" = "xyes"], - [crypt_libs="xcrypt crypt"], - [crypt_libs="crypt"]) +AC_CHECK_HEADERS(crypt.h) BACKUP_LIBS=$LIBS -AC_SEARCH_LIBS([crypt],[$crypt_libs]) +AC_SEARCH_LIBS([crypt],[crypt]) case "$ac_cv_search_crypt" in -l*) LIBCRYPT="$ac_cv_search_crypt" ;; *) LIBCRYPT="" ;; esac -AC_CHECK_FUNCS(crypt_r crypt_gensalt_r) +AC_CHECK_FUNCS([crypt_r]) LIBS=$BACKUP_LIBS AC_SUBST(LIBCRYPT) -if test "$LIBCRYPT" = "-lxcrypt" && test "$ac_cv_header_xcrypt_h" = "yes" ; then - AC_DEFINE([HAVE_LIBXCRYPT], 1, [Define to 1 if xcrypt support should be compiled in.]) -fi AC_ARG_WITH([randomdev], AS_HELP_STRING([--with-randomdev=(|yes|no)],[use specified random device instead of /dev/urandom or 'no' to disable]), opt_randomdev=$withval) if test "$opt_randomdev" = yes || test -z "$opt_randomdev"; then diff --git a/modules/pam_pwhistory/opasswd.c b/modules/pam_pwhistory/opasswd.c index 40296d590..a6cd3d2a3 100644 --- a/modules/pam_pwhistory/opasswd.c +++ b/modules/pam_pwhistory/opasswd.c @@ -54,9 +54,7 @@ #endif #include -#if defined HAVE_LIBXCRYPT -#include -#elif defined (HAVE_CRYPT_H) +#ifdef HAVE_CRYPT_H #include #endif diff --git a/modules/pam_unix/bigcrypt.c b/modules/pam_unix/bigcrypt.c index 31be2f7b0..d8d61a4b0 100644 --- a/modules/pam_unix/bigcrypt.c +++ b/modules/pam_unix/bigcrypt.c @@ -29,9 +29,7 @@ #include #include #include -#ifdef HAVE_LIBXCRYPT -#include -#elif defined(HAVE_CRYPT_H) +#ifdef HAVE_CRYPT_H #include #endif diff --git a/modules/pam_unix/passverify.c b/modules/pam_unix/passverify.c index 5a19ed856..e833402c1 100644 --- a/modules/pam_unix/passverify.c +++ b/modules/pam_unix/passverify.c @@ -19,9 +19,7 @@ #include #include #include -#ifdef HAVE_LIBXCRYPT -#include -#elif defined(HAVE_CRYPT_H) +#ifdef HAVE_CRYPT_H #include #endif @@ -467,23 +465,11 @@ PAMH_ARG_DECL(char * create_password_hash, */ sp = crypt_gensalt_rn(algoid, rounds, NULL, 0, salt, sizeof(salt)); #else -#ifdef HAVE_CRYPT_GENSALT_R - if (on(UNIX_BLOWFISH_PASS, ctrl)) { - char entropy[17]; - crypt_make_salt(entropy, sizeof(entropy) - 1); - sp = crypt_gensalt_r (algoid, rounds, - entropy, sizeof(entropy), - salt, sizeof(salt)); - } else { -#endif - sp = stpcpy(salt, algoid); - if (on(UNIX_ALGO_ROUNDS, ctrl)) { - sp += snprintf(sp, sizeof(salt) - (16 + 1 + (sp - salt)), "rounds=%u$", rounds); - } - crypt_make_salt(sp, 16); -#ifdef HAVE_CRYPT_GENSALT_R + sp = stpcpy(salt, algoid); + if (on(UNIX_ALGO_ROUNDS, ctrl)) { + sp += snprintf(sp, sizeof(salt) - (16 + 1 + (sp - salt)), "rounds=%u$", rounds); } -#endif + crypt_make_salt(sp, 16); #endif /* CRYPT_GENSALT_IMPLEMENTS_AUTO_ENTROPY */ #ifdef HAVE_CRYPT_R sp = NULL; diff --git a/modules/pam_userdb/pam_userdb.c b/modules/pam_userdb/pam_userdb.c index d59801bfd..f467ea4c8 100644 --- a/modules/pam_userdb/pam_userdb.c +++ b/modules/pam_userdb/pam_userdb.c @@ -17,9 +17,7 @@ #include #include #include -#ifdef HAVE_LIBXCRYPT -#include -#elif defined(HAVE_CRYPT_H) +#ifdef HAVE_CRYPT_H #include #endif ================================================ FILE: package/linux-pam/0003-configure.ac-fix-build-with-libxcrypt-and-uclibc-ng.patch ================================================ From fe1307512fb8892b5ceb3d884c793af8dbd4c16a Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 15 Jun 2021 07:13:56 +0200 Subject: [PATCH] configure.ac: fix build with libxcrypt and uclibc-ng Fix the following build failure with libxcrypt and uclibc-ng: ld: unix_chkpwd-passverify.o: in function `verify_pwd_hash': passverify.c:(.text+0xab4): undefined reference to `crypt_checksalt' Fixes: - http://autobuild.buildroot.org/results/65d68b7c9c7de1c7cb0f941ff9982f93a49a56f8 Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/linux-pam/linux-pam/commit/fe1307512fb8892b5ceb3d884c793af8dbd4c16a] --- configure.ac | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 7a4b2e86..e9c57345 100644 --- a/configure.ac +++ b/configure.ac @@ -362,10 +362,18 @@ AC_SUBST(LIBAUDIT) AC_CHECK_HEADERS(crypt.h) BACKUP_LIBS=$LIBS -AC_SEARCH_LIBS([crypt],[crypt]) -case "$ac_cv_search_crypt" in - -l*) LIBCRYPT="$ac_cv_search_crypt" ;; - *) LIBCRYPT="" ;; +LIBCRYPT="" +AC_SEARCH_LIBS([crypt_gensalt_rn],[crypt]) +case "$ac_cv_search_crypt_gensalt_rn" in + -l*) LIBCRYPT="$ac_cv_search_crypt_gensalt_rn" ;; + no) AC_SEARCH_LIBS([crypt_r],[crypt]) + case "$ac_cv_search_crypt_r" in + -l*) LIBCRYPT="$ac_cv_search_crypt_r" ;; + no ) AC_SEARCH_LIBS([crypt],[crypt]) + case "$ac_cv_search_crypt" in + -l*) LIBCRYPT="$ac_cv_search_crypt" ;; + esac ;; + esac ;; esac AC_CHECK_FUNCS([crypt_r]) LIBS=$BACKUP_LIBS ================================================ FILE: package/linux-pam/0004-configure.ac-also-search-libcrypt-through-pkg-config.patch ================================================ From 49e3ffcbe267691dfbf24c91417aa296e7412146 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 29 Aug 2021 21:15:57 +0200 Subject: [PATCH] configure.ac: also search libcrypt through pkg-config libxcrypt provides a libcrypt.pc file so use it if available as this will allow to retrieve the library path (e.g. -L/home/buildroot/output/host//riscv64-buildroot-linux-musl/sysroot/usr/lib) which is useful when cross-compiling and will avoid the following build failure on buildroot: /home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/riscv64-buildroot-linux-musl/10.2.0/../../../../riscv64-buildroot-linux-musl/bin/ld: .libs/passverify.o: in function `.L30': passverify.c:(.text+0x368): undefined reference to `crypt_checksalt' Fixes: - http://autobuild.buildroot.org/results/20b14e222b35c2d1269960075832b784ba81aa1a Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/linux-pam/linux-pam/commit/49e3ffcbe267691dfbf24c91417aa296e7412146] --- configure.ac | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index d464884c..c06bc7dd 100644 --- a/configure.ac +++ b/configure.ac @@ -363,8 +363,14 @@ AC_CHECK_HEADERS(crypt.h) BACKUP_LIBS=$LIBS LIBCRYPT="" -AC_SEARCH_LIBS([crypt_gensalt_rn],[crypt]) -case "$ac_cv_search_crypt_gensalt_rn" in +PKG_CHECK_MODULES([CRYPT], [libcrypt], [ + CFLAGS="$CFLAGS $CRYPT_CFLAGS" + CPPFLAGS="$CPPFLAGS $CRYPT_CFLAGS" + LIBS="$LIBS $CRYPT_LIBS" + LIBCRYPT="$CRYPT_LIBS" +], [ + AC_SEARCH_LIBS([crypt_gensalt_rn],[crypt]) + case "$ac_cv_search_crypt_gensalt_rn" in -l*) LIBCRYPT="$ac_cv_search_crypt_gensalt_rn" ;; no) AC_SEARCH_LIBS([crypt_r],[crypt]) case "$ac_cv_search_crypt_r" in @@ -374,7 +380,8 @@ case "$ac_cv_search_crypt_gensalt_rn" in -l*) LIBCRYPT="$ac_cv_search_crypt" ;; esac ;; esac ;; -esac + esac +]) AC_CHECK_FUNCS([crypt_r]) LIBS=$BACKUP_LIBS AC_SUBST(LIBCRYPT) ================================================ FILE: package/linux-pam/Config.in ================================================ config BR2_PACKAGE_LINUX_PAM bool "linux-pam" depends on (BR2_ENABLE_LOCALE && BR2_USE_WCHAR) depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_FLEX help A Security Framework that Provides Authentication for Applications http://linux-pam.org comment "linux-pam needs a toolchain w/ wchar, locale, dynamic library" depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \ || BR2_STATIC_LIBS ================================================ FILE: package/linux-pam/linux-pam.hash ================================================ # Locally computed hashes after checking signature at # https://github.com/linux-pam/linux-pam/releases/download/v1.5.0/Linux-PAM-1.5.1.tar.xz.asc # signed with the key 8C6BFD92EE0F42EDF91A6A736D1A7F052E5924BB sha256 201d40730b1135b1b3cdea09f2c28ac634d73181ccd0172ceddee3649c5792fc Linux-PAM-1.5.1.tar.xz # Locally computed sha256 133d98e7a2ab3ffd330b4debb0bfc10fea21e4b2b5a5b09de2e924293be5ff08 Copyright ================================================ FILE: package/linux-pam/linux-pam.mk ================================================ ################################################################################ # # linux-pam # ################################################################################ LINUX_PAM_VERSION = 1.5.1 LINUX_PAM_SOURCE = Linux-PAM-$(LINUX_PAM_VERSION).tar.xz LINUX_PAM_SITE = https://github.com/linux-pam/linux-pam/releases/download/v$(LINUX_PAM_VERSION) LINUX_PAM_INSTALL_STAGING = YES LINUX_PAM_CONF_OPTS = \ --disable-prelude \ --disable-isadir \ --disable-nis \ --disable-db \ --disable-regenerate-docu \ --enable-securedir=/lib/security \ --libdir=/lib LINUX_PAM_DEPENDENCIES = flex host-flex host-pkgconf \ $(if $(BR2_PACKAGE_LIBXCRYPT),libxcrypt) \ $(TARGET_NLS_DEPENDENCIES) LINUX_PAM_LICENSE = BSD-3-Clause LINUX_PAM_LICENSE_FILES = Copyright LINUX_PAM_MAKE_OPTS += LIBS=$(TARGET_NLS_LIBS) LINUX_PAM_CPE_ID_VENDOR = linux-pam # We're patching configure.ac LINUX_PAM_AUTORECONF = YES ifeq ($(BR2_PACKAGE_LIBSELINUX),y) LINUX_PAM_CONF_OPTS += --enable-selinux LINUX_PAM_DEPENDENCIES += libselinux define LINUX_PAM_SELINUX_PAMFILE_TWEAK $(SED) 's/^# \(.*pam_selinux.so.*\)$$/\1/' \ $(TARGET_DIR)/etc/pam.d/login endef 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 $(LINUX_PAM_SELINUX_PAMFILE_TWEAK) endef LINUX_PAM_POST_INSTALL_TARGET_HOOKS += LINUX_PAM_INSTALL_CONFIG $(eval $(autotools-package)) ================================================ FILE: package/linux-pam/login.pam ================================================ auth required pam_unix.so nullok account required pam_unix.so password required pam_unix.so nullok # session required pam_selinux.so close session required pam_limits.so session required pam_env.so session required pam_unix.so session optional pam_lastlog.so # session required pam_selinux.so open ================================================ FILE: package/linux-pam/other.pam ================================================ auth required pam_deny.so account required pam_deny.so password required pam_deny.so session required pam_deny.so ================================================ FILE: package/linux-serial-test/Config.in ================================================ config BR2_PACKAGE_LINUX_SERIAL_TEST bool "linux-serial-test" help Serial port test utility. https://github.com/cbrake/linux-serial-test ================================================ FILE: package/linux-serial-test/linux-serial-test.hash ================================================ # Locally computed sha256 bd612ad9c10cb8090765487d5e2969be09dd0d024e7215dc764e770fbb5cc9e0 linux-serial-test-bf865c37ccf9cbb1826ada61037c036dc1990b7b.tar.gz sha256 a2a6760c2c6fa779a635e4a7ad00f668862ebcadb2a8a57d16662543e103e08c LICENSES/MIT ================================================ FILE: package/linux-serial-test/linux-serial-test.mk ================================================ ################################################################################ # # linux-serial-test # ################################################################################ LINUX_SERIAL_TEST_VERSION = bf865c37ccf9cbb1826ada61037c036dc1990b7b LINUX_SERIAL_TEST_SITE = $(call github,cbrake,linux-serial-test,$(LINUX_SERIAL_TEST_VERSION)) LINUX_SERIAL_TEST_LICENSE = MIT LINUX_SERIAL_TEST_LICENSE_FILES = LICENSES/MIT $(eval $(cmake-package)) ================================================ FILE: package/linux-syscall-support/Config.in ================================================ config BR2_PACKAGE_LINUX_SYSCALL_SUPPORT bool "linux-syscall-support (lss)" help This project provides a header file that can be included into your application whenever you need to make direct system calls. https://chromium.googlesource.com/linux-syscall-support/ ================================================ FILE: package/linux-syscall-support/linux-syscall-support.hash ================================================ # Locally calculated sha256 498efb6915ac6e65c82c712fadd3c30f9472764114c835849e02f2c092bacd2d linux-syscall-support-3f6478ac95edf86cd3da300c2c0d34a438f5dbeb-br1.tar.gz sha256 4c1fc9acc9f3867e5c81b5d5f57c52fb9a932662bd4e2e5e43b3fe95390035f5 linux_syscall_support.h ================================================ FILE: package/linux-syscall-support/linux-syscall-support.mk ================================================ ################################################################################ # # linux-syscall-support # ################################################################################ # Use the same version that the one used by Google-breakpad (see DEPS file) LINUX_SYSCALL_SUPPORT_VERSION = 3f6478ac95edf86cd3da300c2c0d34a438f5dbeb LINUX_SYSCALL_SUPPORT_SITE = https://chromium.googlesource.com/linux-syscall-support LINUX_SYSCALL_SUPPORT_SITE_METHOD = git LINUX_SYSCALL_SUPPORT_LICENSE = BSD-3-Clause LINUX_SYSCALL_SUPPORT_LICENSE_FILES = linux_syscall_support.h # Provide only one header file. LINUX_SYSCALL_SUPPORT_INSTALL_TARGET = NO LINUX_SYSCALL_SUPPORT_INSTALL_STAGING = YES define LINUX_SYSCALL_SUPPORT_INSTALL_STAGING_CMDS $(INSTALL) -D -m 0644 $(@D)/linux_syscall_support.h \ $(STAGING_DIR)/usr/include/linux_syscall_support.h endef define HOST_LINUX_SYSCALL_SUPPORT_INSTALL_CMDS $(INSTALL) -D -m 0644 $(@D)/linux_syscall_support.h \ $(HOST_DIR)/include/linux_syscall_support.h endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/linux-tools/Config.in ================================================ menu "Linux Kernel Tools" # No prompt, this is sourced by linux/Config.in as this # is no real package and really belongs to the kernel. config BR2_PACKAGE_LINUX_TOOLS bool config BR2_PACKAGE_LINUX_TOOLS_BPFTOOL bool "bpftool" depends on !BR2_nios2 # binutils depends on BR2_USE_WCHAR # binutils, elfutils depends on !BR2_STATIC_LIBS # elfutils depends on BR2_TOOLCHAIN_HAS_THREADS # elfutils depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils select BR2_PACKAGE_LINUX_TOOLS select BR2_PACKAGE_BINUTILS select BR2_PACKAGE_ELFUTILS help bpftool is a tool for for inspection and simple manipulation of eBPF programs and maps. These tools are available only from kernel version 4.15. comment "bpftool needs a uClibc or glibc toolchain w/ wchar, dynamic library, threads" depends on !BR2_nios2 depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS \ || !BR2_TOOLCHAIN_HAS_THREADS \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) config BR2_PACKAGE_LINUX_TOOLS_CPUPOWER bool "cpupower" select BR2_PACKAGE_LINUX_TOOLS select BR2_PACKAGE_PCIUTILS help cpupower is a collection of tools to examine and tune power saving related features of your processor. config BR2_PACKAGE_LINUX_TOOLS_GPIO bool "gpio" select BR2_PACKAGE_LINUX_TOOLS help gpio is a collection of tools to get information about, control and monitor gpios present on system. These tools use new gpio ABI which will deprecate sysfs gpio interface in the future. These tools are available only from kernel version 4.8. config BR2_PACKAGE_LINUX_TOOLS_IIO bool "iio" select BR2_PACKAGE_LINUX_TOOLS help iio is a collection of tools to get information about, control and monitor iio devices present on system. These tools are available only from kernel version 4.7. config BR2_PACKAGE_LINUX_TOOLS_PCI bool "pci" select BR2_PACKAGE_LINUX_TOOLS help pcitest is a tool for testing capabilities related to a PCI Endpoint (only works with specific Endpoints). These tools are available only from kernel version 4.20. config BR2_PACKAGE_LINUX_TOOLS_PERF bool "perf" depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_LINUX_TOOLS help perf (sometimes "Perf Events" or perf tools, originally "Performance Counters for Linux") - is a performance analyzing tool in Linux, available from kernel version 2.6.31. User-space controlling utility, called 'perf' has git-like interface with subcommands. It is capable of statistical profiling of entire system (both kernel and user code), single CPU or severals threads. This will build and install the userspace 'perf' command. Your kernel must have CONFIG_PERF_EVENTS enabled to use perf profiling. Buildroot automatically enables this in the kernel configuration. https://perf.wiki.kernel.org/ if BR2_PACKAGE_LINUX_TOOLS_PERF config BR2_PACKAGE_LINUX_TOOLS_PERF_TUI bool "enable perf TUI" depends on BR2_USE_MMU # slang select BR2_PACKAGE_SLANG help Enable the TUI interface for perf which requires a TTY and enables zooming into DSOs and threads as well as other features. endif config BR2_PACKAGE_LINUX_TOOLS_SELFTESTS bool"selftests" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash depends on BR2_USE_MMU # bash depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 # util-linux schedutils select BR2_PACKAGE_LINUX_TOOLS select BR2_PACKAGE_BASH # runtime select BR2_PACKAGE_NCURSES select BR2_PACKAGE_NCURSES_TARGET_PROGS # runtime (tput) select BR2_PACKAGE_KMOD select BR2_PACKAGE_KMOD_TOOLS # runtime (modprobe -n) select BR2_PACKAGE_POPT select BR2_PACKAGE_LIBCAP_NG select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS # runtime (taskset) 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 and a toolchain w/ dynamic library and headers >= 3.14" depends on BR2_USE_MMU depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 config BR2_PACKAGE_LINUX_TOOLS_TMON bool "tmon" select BR2_PACKAGE_LINUX_TOOLS select BR2_PACKAGE_NCURSES help tmon is a terminal-based tool (using curses) that allows the user to access thermal information about the system. config BR2_PACKAGE_LINUX_TOOLS_HV bool "hv" depends on BR2_i386 || BR2_x86_64 select BR2_PACKAGE_LINUX_TOOLS select BR2_PACKAGE_LINUX_TOOLS_HV_KVP_DAEMON if !BR2_PACKAGE_LINUX_TOOLS_HV_HAS_ONE help Microsoft HyperV integration services Relevant kernel configuration options: CONFIG_HYPERV, CONFIG_HYPERV_UTILS. if BR2_PACKAGE_LINUX_TOOLS_HV config BR2_PACKAGE_LINUX_TOOLS_HV_HAS_ONE bool config BR2_PACKAGE_LINUX_TOOLS_HV_KVP_DAEMON bool "hypervkvpd (hv_kvp_daemon)" help HyperV uses hypervkvpd (Key/Value Pair daemon) to retrieve status information from your virtualized guest OS config BR2_PACKAGE_LINUX_TOOLS_HV_FCOPY_DAEMON bool "hypervfcopyd (hv_fcopy_daemon)" select BR2_PACKAGE_LINUX_TOOLS_HV_HAS_ONE help HyperV uses hypervfcopyd (File Copy daemon) to easily transfer files to and from your virtualized guest OS config BR2_PACKAGE_LINUX_TOOLS_HV_VSS_DAEMON bool "hypervvssd (hv_vss_daemon)" select BR2_PACKAGE_LINUX_TOOLS_HV_HAS_ONE help HyperV uses hypervvssd (Volume Snapshot Service daemon) to freeze your filesystems during snapshots and backups endif # BR2_PACKAGE_LINUX_TOOLS_HV endmenu ================================================ FILE: package/linux-tools/S10hyperv ================================================ #!/bin/sh PROGS="@PROGS@" PIDDIR="/var/run" # shellcheck source=/dev/null [ -r "/etc/default/hyperv" ] && . "/etc/default/hyperv" start_one() { printf 'Starting %s: ' "$1" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -b -m -S -q -p "$PIDDIR/$1.pid" -x "/sbin/$1" -- -n status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return $status } start() { # shellcheck disable=SC2086 # we need the word splitting for prog in ${PROGS}; do start_one "${prog}" || ret=$? done return $ret } stop_one() { printf 'Stopping %s: ' "$1" start-stop-daemon -K -q -p "$PIDDIR/$1.pid" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDDIR/$1.pid" echo "OK" else echo "FAIL" fi return $status } stop() { # shellcheck disable=SC2086 # we need the word splitting for prog in ${PROGS}; do stop_one "${prog}" || ret=$? done return $ret } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/linux-tools/hypervfcopyd.service ================================================ [Unit] Description=HyperV FCopy daemon After=syslog.target ConditionVirtualization=microsoft [Service] Type=simple ExecStart=/usr/sbin/hypervfcopyd -n [Install] WantedBy=multi-user.target ================================================ FILE: package/linux-tools/hypervkvpd.service ================================================ [Unit] Description=HyperV KVP daemon After=syslog.target ConditionVirtualization=microsoft [Service] Type=simple ExecStart=/usr/sbin/hypervkvpd -n [Install] WantedBy=multi-user.target ================================================ FILE: package/linux-tools/hypervvssd.service ================================================ [Unit] Description=HyperV VSS daemon After=syslog.target ConditionVirtualization=microsoft [Service] Type=simple ExecStart=/usr/sbin/hypervvssd -n [Install] WantedBy=multi-user.target ================================================ FILE: package/linux-tools/linux-tool-bpftool.mk.in ================================================ ################################################################################ # # bpftool # ################################################################################ LINUX_TOOLS += bpftool BPFTOOL_DEPENDENCIES = binutils elfutils ifeq ($(BR2_PACKAGE_LIBCAP),y) BPFTOOL_DEPENDENCIES += libcap endif ifeq ($(BR2_PACKAGE_ZLIB),y) BPFTOOL_DEPENDENCIES += zlib endif BPFTOOL_MAKE_OPTS = $(LINUX_MAKE_FLAGS) define BPFTOOL_BUILD_CMDS $(Q)if ! grep install $(LINUX_DIR)/tools/bpf/bpftool/Makefile >/dev/null 2>&1 ; then \ echo "Your kernel version is too old and does not have install section in the bpf tools." ; \ echo "At least kernel 4.15 must be used." ; \ exit 1 ; \ fi $(TARGET_MAKE_ENV) $(MAKE1) -C $(LINUX_DIR)/tools/bpf/bpftool \ $(BPFTOOL_MAKE_OPTS) endef define BPFTOOL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(LINUX_DIR)/tools/bpf/bpftool \ $(BPFTOOL_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) \ install endef ================================================ FILE: package/linux-tools/linux-tool-cpupower.mk.in ================================================ ################################################################################ # # cpupower # ################################################################################ LINUX_TOOLS += cpupower CPUPOWER_DEPENDENCIES = pciutils $(TARGET_NLS_DEPENDENCIES) CPUPOWER_MAKE_OPTS = CROSS=$(TARGET_CROSS) \ CPUFREQ_BENCH=false \ NLS=false \ LDFLAGS=$(TARGET_NLS_LIBS) \ DEBUG=false define CPUPOWER_BUILD_CMDS $(Q)if test ! -f $(LINUX_DIR)/tools/power/cpupower/Makefile ; then \ echo "Your kernel version is too old and does not have the cpupower tool." ; \ echo "At least kernel 3.4 must be used." ; \ exit 1 ; \ fi $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \ $(CPUPOWER_MAKE_OPTS) \ cpupower endef define CPUPOWER_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \ $(CPUPOWER_MAKE_OPTS) \ DESTDIR=$(STAGING_DIR) \ cpupower_install endef define CPUPOWER_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \ $(CPUPOWER_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) \ cpupower_install endef ================================================ FILE: package/linux-tools/linux-tool-gpio.mk.in ================================================ ################################################################################ # # gpio # ################################################################################ LINUX_TOOLS += gpio GPIO_MAKE_OPTS = $(LINUX_MAKE_FLAGS) define GPIO_BUILD_CMDS $(Q)if ! grep install $(LINUX_DIR)/tools/gpio/Makefile >/dev/null 2>&1 ; then \ echo "Your kernel version is too old and does not have the gpio tools." ; \ echo "At least kernel 4.8 must be used." ; \ exit 1 ; \ fi $(TARGET_MAKE_ENV) $(MAKE1) -C $(LINUX_DIR)/tools \ $(GPIO_MAKE_OPTS) \ gpio endef define GPIO_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(LINUX_DIR)/tools \ $(GPIO_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) \ gpio_install endef ================================================ FILE: package/linux-tools/linux-tool-hv.mk.in ================================================ ################################################################################ # # hv_fcopy_daemon # ################################################################################ LINUX_TOOLS += hv # The programs to build, as known by the kernel: HV_PROGS_$(BR2_PACKAGE_LINUX_TOOLS_HV_KVP_DAEMON) += hv_kvp_daemon HV_PROGS_$(BR2_PACKAGE_LINUX_TOOLS_HV_FCOPY_DAEMON) += hv_fcopy_daemon HV_PROGS_$(BR2_PACKAGE_LINUX_TOOLS_HV_VSS_DAEMON) += hv_vss_daemon # Give each tools the name most distros install them as: HV_hv_kvp_daemon = hypervkvpd HV_hv_fcopy_daemon = hypervfcopyd HV_hv_vss_daemon = hypervvssd HV_MAKE_OPTS = CC="$(TARGET_CC)" CFLAGS="$(filter-out -g%,$(TARGET_CFLAGS))" define HV_BUILD_CMDS $(Q)for prog in $(HV_PROGS_y); do \ if test ! -f $(LINUX_DIR)/tools/hv/$${prog}.c ; then \ printf "Your kernel version is too old and does not have the HyperV %s tool." "$${prog}" ; \ exit 1 ; \ fi; \ done $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/hv \ $(HV_MAKE_OPTS) \ $(HV_PROGS_y) endef ifeq ($(BR2_PACKAGE_LINUX_TOOLS_HV_KVP_DAEMON),y) define HV_KVP_HELPER @mkdir -p $(TARGET_DIR)/usr/libexec/hypervkvpd $(Q)ln -sf /bin/true $(TARGET_DIR)/usr/libexec/hypervkvpd/hv_set_ifconfig endef endif define HV_INSTALL_TARGET_CMDS $(foreach prog,$(HV_PROGS_y), \ $(INSTALL) -m 0755 -D $(LINUX_DIR)/tools/hv/$(prog) \ $(TARGET_DIR)/usr/sbin/$(HV_$(prog)) ) $(HV_KVP_HELPER) endef define HV_INSTALL_INIT_SYSTEMD $(foreach prog,$(HV_PROGS_y), \ $(INSTALL) -m 0644 -D package/linux-tools/$(HV_$(prog)).service \ $(TARGET_DIR)/usr/lib/systemd/system/$(HV_$(prog)).service ) endef define HV_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/linux-tools/S10hyperv \ $(TARGET_DIR)/etc/init.d/S10hyperv $(SED) 's/@PROGS@/$(foreach prog,$(HV_PROGS_y),$(HV_$(prog)))/' \ $(TARGET_DIR)/etc/init.d/S10hyperv endef ================================================ FILE: package/linux-tools/linux-tool-iio.mk.in ================================================ ################################################################################ # # iio # ################################################################################ LINUX_TOOLS += iio IIO_MAKE_OPTS = $(LINUX_MAKE_FLAGS) define IIO_BUILD_CMDS $(Q)if ! grep install $(LINUX_DIR)/tools/iio/Makefile >/dev/null 2>&1 ; then \ echo "Your kernel version is too old and does not have install section in the iio tools." ; \ echo "At least kernel 4.7 must be used." ; \ exit 1 ; \ fi $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/iio \ $(IIO_MAKE_OPTS) endef # DESTDIR used since kernel version 4.14 define IIO_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/iio \ $(IIO_MAKE_OPTS) \ INSTALL_ROOT=$(TARGET_DIR) \ DESTDIR=$(TARGET_DIR) \ install endef ================================================ FILE: package/linux-tools/linux-tool-pci.mk.in ================================================ ################################################################################ # # pci # ################################################################################ LINUX_TOOLS += pci PCI_MAKE_OPTS = $(LINUX_MAKE_FLAGS) define PCI_BUILD_CMDS $(Q)if ! grep install $(LINUX_DIR)/tools/pci/Makefile >/dev/null 2>&1 ; then \ echo "Your kernel version is too old and does not have install section in the pci tools." ; \ echo "At least kernel 4.20 must be used." ; \ exit 1 ; \ fi $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/pci \ $(PCI_MAKE_OPTS) endef define PCI_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/pci \ $(PCI_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) \ install endef ================================================ FILE: package/linux-tools/linux-tool-perf.mk.in ================================================ ################################################################################ # # perf # ################################################################################ LINUX_TOOLS += perf PERF_DEPENDENCIES = host-flex host-bison ifeq ($(KERNEL_ARCH),x86_64) PERF_ARCH=x86 else PERF_ARCH=$(KERNEL_ARCH) endif PERF_MAKE_FLAGS = \ $(LINUX_MAKE_FLAGS) \ JOBS=$(PARALLEL_JOBS) \ ARCH=$(PERF_ARCH) \ DESTDIR=$(TARGET_DIR) \ prefix=/usr \ WERROR=0 \ NO_GTK2=1 \ NO_LIBPERL=1 \ NO_LIBPYTHON=1 \ NO_LIBBIONIC=1 # We need to pass an argument to ld for setting the emulation when # building for MIPS architecture, otherwise the default one will always # be used and the compilation for most variants will fail. ifeq ($(BR2_mips),y) PERF_MAKE_FLAGS += LD="$(TARGET_LD) -m elf32btsmip" else ifeq ($(BR2_mipsel),y) PERF_MAKE_FLAGS += LD="$(TARGET_LD) -m elf32ltsmip" else ifeq ($(BR2_mips64),y) ifeq ($(BR2_MIPS_NABI32),y) PERF_MAKE_FLAGS += LD="$(TARGET_LD) -m elf32btsmipn32" else PERF_MAKE_FLAGS += LD="$(TARGET_LD) -m elf64btsmip" endif else ifeq ($(BR2_mips64el),y) ifeq ($(BR2_MIPS_NABI32),y) PERF_MAKE_FLAGS += LD="$(TARGET_LD) -m elf32ltsmipn32" else PERF_MAKE_FLAGS += LD="$(TARGET_LD) -m elf64ltsmip" endif endif # The call to backtrace() function fails for ARC, because for some # reason the unwinder from libgcc returns early. Thus the usage of # backtrace() should be disabled in perf explicitly: at build time # backtrace() appears to be available, but it fails at runtime: the # backtrace will contain only several functions from the top of stack, # instead of the complete backtrace. ifeq ($(BR2_arc),y) PERF_MAKE_FLAGS += NO_BACKTRACE=1 endif ifeq ($(BR2_PACKAGE_LINUX_TOOLS_PERF_TUI),y) PERF_DEPENDENCIES += slang else PERF_MAKE_FLAGS += NO_NEWT=1 NO_SLANG=1 endif ifeq ($(BR2_PACKAGE_AUDIT),y) PERF_DEPENDENCIES += audit else PERF_MAKE_FLAGS += NO_LIBAUDIT=1 endif ifeq ($(BR2_PACKAGE_ZSTD),y) PERF_DEPENDENCIES += zstd 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) PERF_DEPENDENCIES += elfutils else PERF_MAKE_FLAGS += NO_LIBELF=1 NO_DWARF=1 endif ifeq ($(BR2_PACKAGE_BINUTILS),y) PERF_DEPENDENCIES += binutils else PERF_MAKE_FLAGS += NO_DEMANGLE=1 endif ifeq ($(BR2_PACKAGE_OPENSSL),y) PERF_DEPENDENCIES += openssl else PERF_MAKE_FLAGS += NO_LIBCRYPTO=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 $(LINUX_DIR)/tools/perf/Documentation/Makefile ]; then \ printf "%%:\n\t@:\n" >$(LINUX_DIR)/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 $(LINUX_DIR)/tools/perf/ and not just # $(LINUX_DIR) so that it isn't built in the root directory of the kernel # sources. define PERF_BUILD_CMDS $(Q)if test ! -f $(LINUX_DIR)/tools/perf/Makefile ; then \ echo "Your kernel version is too old and does not have the perf tool." ; \ echo "At least kernel 2.6.31 must be used." ; \ exit 1 ; \ fi $(Q)if test "$(BR2_PACKAGE_ELFUTILS)" = "" ; then \ if ! grep -q NO_LIBELF $(LINUX_DIR)/tools/perf/Makefile* ; then \ if ! test -r $(LINUX_DIR)/tools/perf/config/Makefile ; then \ echo "The perf tool in your kernel cannot be built without libelf." ; \ echo "Either upgrade your kernel to >= 3.7, or enable the elfutils package." ; \ exit 1 ; \ fi \ fi \ fi $(Q)if test "$(BR2_PACKAGE_LINUX_TOOLS_PERF_TUI)" = "y" ; then \ if ! grep -q NO_SLANG $(LINUX_DIR)/tools/perf/Makefile* ; then \ echo "The perf tool in your kernel cannot be build with the TUI." ; \ echo "Either upgrade your kernel to >= 3.10, or disable the TUI." ; \ exit 1 ; \ fi \ fi $(TARGET_MAKE_ENV) $(MAKE1) $(PERF_MAKE_FLAGS) \ -C $(LINUX_DIR)/tools/perf O=$(LINUX_DIR)/tools/perf/ endef # After installation, we remove the Perl and Python scripts from the # target. define PERF_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE1) $(PERF_MAKE_FLAGS) \ -C $(LINUX_DIR)/tools/perf O=$(LINUX_DIR)/tools/perf/ install $(RM) -rf $(TARGET_DIR)/usr/libexec/perf-core/scripts/ $(RM) -rf $(TARGET_DIR)/usr/libexec/perf-core/tests/ endef define PERF_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_PERF_EVENTS) endef ================================================ FILE: package/linux-tools/linux-tool-selftests.mk.in ================================================ ################################################################################ # # 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 $(LINUX_DIR)/tools/selftests and # not just $(LINUX_DIR) 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 $(LINUX_DIR) $(SELFTESTS_MAKE_FLAGS) \ headers_install $(TARGET_MAKE_ENV) $(MAKE1) -C $(LINUX_DIR)/tools/testing/selftests \ $(SELFTESTS_MAKE_FLAGS) O=$(LINUX_DIR)/tools/testing/selftests endef define SELFTESTS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(LINUX_DIR)/tools/testing/selftests \ $(SELFTESTS_MAKE_FLAGS) O=$(LINUX_DIR)/tools/testing/selftests \ INSTALL_PATH=$(TARGET_DIR)/usr/lib/kselftests install endef ================================================ FILE: package/linux-tools/linux-tool-tmon.mk.in ================================================ ################################################################################ # # tmon # ################################################################################ LINUX_TOOLS += tmon TMON_DEPENDENCIES = host-pkgconf ncurses TMON_MAKE_OPTS = $(LINUX_MAKE_FLAGS) \ CC=$(TARGET_CC) \ PKG_CONFIG_PATH=$(STAGING_DIR)/usr/lib/pkgconfig ifeq ($(BR2_TOOLCHAIN_HAS_SSP),) define TMON_DISABLE_STACK_PROTECTOR $(SED) 's%-fstack-protector%%' $(LINUX_DIR)/tools/thermal/tmon/Makefile endef endif define TMON_BUILD_CMDS $(Q)if ! grep install $(LINUX_DIR)/tools/thermal/tmon/Makefile >/dev/null 2>&1 ; then \ echo "Your kernel version is too old and does not have the tmon tool." ; \ echo "At least kernel 3.13 must be used." ; \ exit 1 ; \ fi $(TMON_DISABLE_STACK_PROTECTOR) $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \ $(TMON_MAKE_OPTS) \ tmon endef define TMON_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \ $(TMON_MAKE_OPTS) \ INSTALL_ROOT=$(TARGET_DIR) \ tmon_install endef ================================================ FILE: package/linux-tools/linux-tools.mk ================================================ ################################################################################ # # linux-tools # ################################################################################ # Vampirising sources from the kernel tree, so no source nor site specified. # Instead, we directly build in the sources of the linux package. We can do # that, because we're not building in the same location and the same files. # # So, all tools refer to $(LINUX_DIR) instead of $(@D). # Note: we need individual tools makefiles to be included *before* we build # the list of build and install hooks below to guarantee that each tool has # a chance to register itself once, and only once. Therefore, the makefiles # are named linux-tool-*.mk.in, so they won't be picked up by the top-level # Makefile, but can be included here, guaranteeing the single inclusion and # the proper ordering. include $(sort $(wildcard package/linux-tools/*.mk.in)) # We only need the kernel to be extracted, not actually built LINUX_TOOLS_PATCH_DEPENDENCIES = linux # Install Linux kernel tools in the staging directory since some tools # may install shared libraries and headers (e.g. cpupower). LINUX_TOOLS_INSTALL_STAGING = YES LINUX_TOOLS_DEPENDENCIES += $(foreach tool,$(LINUX_TOOLS),\ $(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\ $($(call UPPERCASE,$(tool))_DEPENDENCIES))) LINUX_TOOLS_POST_BUILD_HOOKS += $(foreach tool,$(LINUX_TOOLS),\ $(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\ $(call UPPERCASE,$(tool))_BUILD_CMDS)) LINUX_TOOLS_POST_INSTALL_STAGING_HOOKS += $(foreach tool,$(LINUX_TOOLS),\ $(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\ $(call UPPERCASE,$(tool))_INSTALL_STAGING_CMDS)) LINUX_TOOLS_POST_INSTALL_TARGET_HOOKS += $(foreach tool,$(LINUX_TOOLS),\ $(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\ $(call UPPERCASE,$(tool))_INSTALL_TARGET_CMDS)) define LINUX_TOOLS_LINUX_CONFIG_FIXUPS $(foreach tool,$(LINUX_TOOLS),\ $(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\ $($(call UPPERCASE,$(tool))_LINUX_CONFIG_FIXUPS)) ) endef define LINUX_TOOLS_INSTALL_INIT_SYSTEMD $(foreach tool,$(LINUX_TOOLS),\ $(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\ $($(call UPPERCASE,$(tool))_INSTALL_INIT_SYSTEMD)) ) endef define LINUX_TOOLS_INSTALL_INIT_SYSV $(foreach tool,$(LINUX_TOOLS),\ $(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\ $($(call UPPERCASE,$(tool))_INSTALL_INIT_SYSV)) ) endef define LINUX_TOOLS_INSTALL_INIT_OPENRC $(foreach tool,$(LINUX_TOOLS),\ $(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\ $(or $($(call UPPERCASE,$(tool))_INSTALL_INIT_OPENRC),\ $($(call UPPERCASE,$(tool))_INSTALL_INIT_SYSV))) ) endef $(eval $(generic-package)) ================================================ FILE: package/linux-zigbee/0001-test-serial-Remove-test-serial.patch ================================================ From 98187a5238939edc889fdaad93b00628b55d1e08 Mon Sep 17 00:00:00 2001 From: Maxime Hadjinlian Date: Sat, 3 May 2014 19:43:20 +0200 Subject: [PATCH] test-serial: Remove test-serial This folders only contains python tests scripts which would force us to enable a dependency to host-python which seems kind of silly since theses are only tests scripts. Signed-off-by: Maxime Hadjinlian --- Makefile.am | 2 +- configure.ac | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/Makefile.am b/Makefile.am index 265f0d7..e7bb1a1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,7 +2,7 @@ include $(top_srcdir)/Makefile.common ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = lib addrdb src tests test-serial +SUBDIRS = lib addrdb src tests include_HEADERS = include/ieee802154.h include/nl802154.h noinst_HEADERS = include/libcommon.h include/addrdb.h include/logging.h diff --git a/configure.ac b/configure.ac index 17658af..506b289 100644 --- a/configure.ac +++ b/configure.ac @@ -77,11 +77,6 @@ AC_PROG_LIBTOOL AM_PROG_LEX AC_PROG_YACC AC_SUBST(LIBTOOL_DEPS) -# Currently the scripts works with python2.x only -# Check for this at first -AC_PATH_PROG(PYTHON, python2 python2.7 python2.6 python2.5 python) -AM_PATH_PYTHON(,, [:]) -py_CHECK_MAJOR_VERSION([PYTHON_VERSION], [2]) AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir) # Checks for libraries. @@ -135,6 +130,5 @@ AC_CONFIG_FILES([ addrdb/Makefile src/Makefile tests/Makefile - test-serial/Makefile ]) AC_OUTPUT -- 1.9.2 ================================================ FILE: package/linux-zigbee/0002-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch ================================================ 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 ================================================ FILE: package/linux-zigbee/Config.in ================================================ comment "linux-zigbee needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU config BR2_PACKAGE_LINUX_ZIGBEE bool "linux-zigbee" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS # libnl select BR2_PACKAGE_LIBNL help IEEE 802.15.4 is a standard for communication in small low-rate wireless personal area networks (WPAN). While 802.15.4 is a MAC- and PHY- layer standard only, several common protocols commonly sit on top of it such as ZigBee, MiWi, and 6LoWPAN. The goal of this project is to create an implementation of 802.15.4 and several of the protocols which run on top of it (primarily 6LoWPAN) for Linux. It's worth noting that the name linux-zigbee is somewhat of a misnomer. While this project was originally started to create a ZigBee implementation for Linux, licensing restrictions put in place by the ZigBee Alliance make it impossible for an implementation of ZigBee to ever become part of the Linux kernel. Once this licensing issue was discovered, this project's primary focus shifted to IEEE 802.15.4 and 6LoWPAN. Other higher-layer standards may be added at a future time. The 802.15.4 stack contains kernel components, which are part of the mainline Linux kernel, and userspace components, available in this package. http://sourceforge.net/apps/trac/linux-zigbee/ if BR2_PACKAGE_LINUX_ZIGBEE config BR2_PACKAGE_LINUX_ZIGBEE_TESTS bool "tests programs" help Enable this option to install the Linux-ZigBee test programs to the target. config BR2_PACKAGE_LINUX_ZIGBEE_OLD_KERNEL_COMPAT bool "compatibility with older kernels" help Enable this option to get compatibility of the Linux-ZigBee userspace tools with old kernels. Recent kernels know the 802.15.4 line discipline as N_IEEE802154 with the value 25, but some older kernels had it with the values 22 or 19. config BR2_PACKAGE_LINUX_ZIGBEE_LEASEFILE string "path for persistent lease storage" default "/var/run/izcoordinator.leases" endif ================================================ FILE: package/linux-zigbee/linux-zigbee.hash ================================================ # Locally computed: sha256 92fbefdf18d45147c2b78ca2ce2d899d4d1da5a3391a4ff6c51a5b14c6d6f87c lowpan-tools-0.3.1.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/linux-zigbee/linux-zigbee.mk ================================================ ################################################################################ # # linux-zigbee # ################################################################################ LINUX_ZIGBEE_VERSION = 0.3.1 LINUX_ZIGBEE_SOURCE = lowpan-tools-$(LINUX_ZIGBEE_VERSION).tar.gz LINUX_ZIGBEE_SITE = \ http://downloads.sourceforge.net/project/linux-zigbee/linux-zigbee-sources/$(LINUX_ZIGBEE_VERSION) LINUX_ZIGBEE_LICENSE = GPL-2.0 LINUX_ZIGBEE_LICENSE_FILES = COPYING LINUX_ZIGBEE_DEPENDENCIES = libnl host-pkgconf host-flex host-bison # We patch configure.ac/Makefile.am LINUX_ZIGBEE_AUTORECONF = YES LINUX_ZIGBEE_CONF_OPTS = \ --disable-manpages \ --disable-werror \ --with-leasefile="$(call qstrip,$(BR2_PACKAGE_LINUX_ZIGBEE_LEASEFILE))" ifeq ($(BR2_PACKAGE_LINUX_ZIGBEE_TESTS),y) LINUX_ZIGBEE_CONF_OPTS += --with-zbtestdir='/usr/sbin/' else LINUX_ZIGBEE_CONF_OPTS += --with-zbtestdir='' endif ifeq ($(BR2_PACKAGE_LINUX_ZIGBEE_OLD_KERNEL_COMPAT),y) LINUX_ZIGBEE_CONF_OPTS += --enable-kernel-compat endif $(eval $(autotools-package)) ================================================ FILE: package/linuxconsoletools/0001-conditional-build.patch ================================================ Selectively build groups of tools (inputattach, joystick tools and/or force-feedback tools). Signed-off-by: Koen Martens diff -Naur a/utils/Makefile b/utils/Makefile --- a/utils/Makefile 2016-04-19 23:28:36.000000000 +0200 +++ b/utils/Makefile 2017-06-19 08:54:20.152184000 +0200 @@ -27,8 +27,26 @@ CFLAGS ?= -g -O2 -Wall -PROGRAMS = inputattach jstest jscal fftest ffmvforce ffset \ - ffcfstress jscal-restore jscal-store evdev-joystick +PROGRAMS = + +ifdef ENABLE_INPUTATTACH +PROGRAMS += inputattach +endif + +ifdef ENABLE_JOYSTICK +PROGRAMS += jstest +PROGRAMS += jscal +PROGRAMS += jscal-restore +PROGRAMS += jscal-store +PROGRAMS += evdev-joystick +endif + +ifdef ENABLE_FORCEFEEDBACK +PROGRAMS += fftest +PROGRAMS += ffmvforce +PROGRAMS += ffset +PROGRAMS += ffcfstress +endif PREFIX ?= /usr/local @@ -79,13 +97,20 @@ 80-stelladaptor-joystick.rules: 80-stelladaptor-joystick.rules.in sed "s^@@PREFIX@@^$(PREFIX)^g" < $^ > $@ +INSTALL_DEP = compile +ifdef ENABLE_JOYSTICK +INSTALL_DEP += 80-stelladaptor-joystick.rules +endif + install: compile 80-stelladaptor-joystick.rules install -d $(DESTDIR)$(PREFIX)/bin install $(PROGRAMS) $(DESTDIR)$(PREFIX)/bin +ifdef ENABLE_JOYSTICK install -d $(DESTDIR)$(PREFIX)/share/joystick install extract filter ident $(DESTDIR)$(PREFIX)/share/joystick install -d $(DESTDIR)/lib/udev/rules.d install js-set-enum-leds $(DESTDIR)/lib/udev install -m 644 80-stelladaptor-joystick.rules $(DESTDIR)/lib/udev/rules.d +endif .PHONY: compile clean distclean install ================================================ FILE: package/linuxconsoletools/Config.in ================================================ config BR2_PACKAGE_LINUXCONSOLETOOLS bool "linuxconsoletools" select BR2_PACKAGE_LINUXCONSOLETOOLS_INPUTATTACH if \ !BR2_PACKAGE_LINUXCONSOLETOOLS_JOYSTICK && \ !BR2_PACKAGE_LINUXCONSOLETOOLS_FORCEFEEDBACK help Linuxconsoletools contains the inputattach utility to attach legacy serial devices to the Linux kernel input layer and joystick utilities to calibrate and test joysticks and joypads. http://sf.net/projects/linuxconsole/ if BR2_PACKAGE_LINUXCONSOLETOOLS config BR2_PACKAGE_LINUXCONSOLETOOLS_INPUTATTACH bool "inputattach" default y help The inputattach utility attaches legacy serial devices to the Linux kernel input layer. config BR2_PACKAGE_LINUXCONSOLETOOLS_JOYSTICK bool "joystick utilities" help Joystick utilities (jstest, jscal, jscal-store, jscal-restore, evdev-joystick). config BR2_PACKAGE_LINUXCONSOLETOOLS_FORCEFEEDBACK bool "force-feedback utilities" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_SDL2 help Build force-feedback driver utilities (fftest, ffmvforce, ffset, ffcfstress). comment "force-feedback utilities need a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS endif ================================================ FILE: package/linuxconsoletools/linuxconsoletools.hash ================================================ # Locally calculated sha256 95d112f06393806116341d593bda002c8bc44119c1538407623268fed90d8c34 linuxconsoletools-1.7.0.tar.bz2 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/linuxconsoletools/linuxconsoletools.mk ================================================ ################################################################################ # # linuxconsoletools # ################################################################################ LINUXCONSOLETOOLS_VERSION = 1.7.0 LINUXCONSOLETOOLS_SOURCE = linuxconsoletools-$(LINUXCONSOLETOOLS_VERSION).tar.bz2 LINUXCONSOLETOOLS_SITE = https://downloads.sourceforge.net/project/linuxconsole LINUXCONSOLETOOLS_LICENSE = GPL-2.0+ LINUXCONSOLETOOLS_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_LINUXCONSOLETOOLS_INPUTATTACH),y) LINUXCONSOLETOOLS_MAKE_OPTS += ENABLE_INPUTATTACH=1 endif ifeq ($(BR2_PACKAGE_LINUXCONSOLETOOLS_JOYSTICK),y) LINUXCONSOLETOOLS_MAKE_OPTS += ENABLE_JOYSTICK=1 endif ifeq ($(BR2_PACKAGE_LINUXCONSOLETOOLS_FORCEFEEDBACK),y) LINUXCONSOLETOOLS_MAKE_OPTS += \ ENABLE_FORCEFEEDBACK=1 \ CFLAGS="$(TARGET_CFLAGS) -std=gnu99" LINUXCONSOLETOOLS_DEPENDENCIES += sdl2 host-pkgconf endif define LINUXCONSOLETOOLS_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(LINUXCONSOLETOOLS_MAKE_OPTS) endef define LINUXCONSOLETOOLS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(LINUXCONSOLETOOLS_MAKE_OPTS) \ DESTDIR="$(TARGET_DIR)" \ PREFIX=/usr \ install endef $(eval $(generic-package)) ================================================ FILE: package/linuxptp/0001-missing.h-drop-clock_nanosleep-replacement.patch ================================================ From 947bf03ec3d9eaa0bfc0269eed86b9364e94bc1a Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 5 Aug 2018 15:25:53 +0200 Subject: [PATCH] missing.h: drop clock_nanosleep() replacement Since uClibc-ng commits 68628fe7d463541bf3c33da6b214e63c0cc9feed ("librt: declare clock_nanosleep not only for NPTL") and ddbb03e77ac1a48740688814b82f45c97ee81f37 ("librt: clock_nanosleep could be even used without threads"), clock_nanosleep() is always provided by uClibc, regardless of the thread implementation (none, linuxthreads, nptl). These commits will be part of the upcoming 1.0.31 release of uClibc-ng. Thanks to this, we can drop the replacement clock_nanosleep() implementation added by linuxptp. Without this, linuxptp fails to build with: missing.h:117:19: error: static declaration of 'clock_nanosleep' follows non-static declaration static inline int clock_nanosleep(clockid_t clock_id, int flags, ^~~~~~~~~~~~~~~ In file included from clockadj.h:24:0, from clockadj.c:24: Signed-off-by: Thomas Petazzoni --- missing.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/missing.h b/missing.h index 2f7adb9..60f89a3 100644 --- a/missing.h +++ b/missing.h @@ -129,13 +129,6 @@ enum { #define TFD_TIMER_ABSTIME (1 << 0) -static inline int clock_nanosleep(clockid_t clock_id, int flags, - const struct timespec *request, - struct timespec *remain) -{ - return syscall(__NR_clock_nanosleep, clock_id, flags, request, remain); -} - static inline int timerfd_create(int clockid, int flags) { return syscall(__NR_timerfd_create, clockid, flags); -- 2.14.4 ================================================ FILE: package/linuxptp/Config.in ================================================ config BR2_PACKAGE_LINUXPTP bool "linuxptp" depends on BR2_TOOLCHAIN_HAS_THREADS help The Linux PTP Project is the Precision Time Protocol implementation according to IEEE standard 1588 for Linux. The dual design goals are to provide a robust implementation of the standard and to use the most relevant and modern Application Programming Interfaces (API) offered by the Linux kernel. Supporting legacy APIs and other platforms is not a goal. http://linuxptp.sourceforge.net/ comment "linuxptp needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/linuxptp/S65ptp4l ================================================ #!/bin/sh # # Start linuxptp # DAEMON="ptp4l" PIDFILE="/var/run/$DAEMON.pid" PTP4L_ARGS="-f /etc/linuxptp.cfg" # shellcheck source=/dev/null [ -r "/etc/default/ptp4l" ] && . "/etc/default/ptp4l" start() { printf "Starting linuxptp daemon: " start-stop-daemon -S -b -q -m -p $PIDFILE \ -x /usr/sbin/$DAEMON -- $PTP4L_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return $status } stop() { printf "Stopping linuxptp daemon: " start-stop-daemon -K -q -p $PIDFILE status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return $status } case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/linuxptp/S66phc2sys ================================================ #!/bin/sh # # Start linuxptp # DAEMON="phc2sys" PIDFILE="/var/run/$DAEMON.pid" PHC2SYS_ARGS="-a -r -S 1.0" # shellcheck source=/dev/null [ -r "/etc/default/phc2sys" ] && . "/etc/default/phc2sys" start() { printf "Starting linuxptp system clock synchronization: " start-stop-daemon -S -b -q -m -p $PIDFILE \ -x /usr/sbin/$DAEMON -- $PHC2SYS_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return $status } stop() { printf "Stopping linuxptp system clock synchronization: " start-stop-daemon -K -q -p $PIDFILE status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return $status } case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/linuxptp/linuxptp.cfg ================================================ # LinuxPTP configuration file for synchronizing the system clock to # a remote PTP master in slave-only mode. # # By default synchronize time in slave-only mode using UDP and hardware time # stamps on eth0. If the difference to master is >1.0 second correct by # stepping the clock instead of adjusting the frequency. # # If you change the configuration don't forget to update the phc2sys # parameters accordingly in linuxptp-system-clock.service (systemd) # or the linuxptp SysV init script. [global] slaveOnly 1 delay_mechanism Auto network_transport UDPv4 time_stamping hardware step_threshold 1.0 [eth0] ================================================ FILE: package/linuxptp/linuxptp.hash ================================================ # From https://sourceforge.net/projects/linuxptp/files/v3.1.1/ sha1 f905eabc6fd0f03c6a353f9c4ba188a3bd1b774c linuxptp-3.1.1.tgz md5 3b79ab5e77c5b5cf06bc1c8350d405bb linuxptp-3.1.1.tgz # Locally computed: sha256 94d6855f9b7f2d8e9b0ca6d384e3fae6226ce6fc012dbad02608bdef3be1c0d9 linuxptp-3.1.1.tgz # Hash for license file: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/linuxptp/linuxptp.mk ================================================ ################################################################################ # # linuxptp # ################################################################################ LINUXPTP_VERSION = 3.1.1 LINUXPTP_SOURCE = linuxptp-$(LINUXPTP_VERSION).tgz LINUXPTP_SITE = http://downloads.sourceforge.net/linuxptp LINUXPTP_LICENSE = GPL-2.0+ LINUXPTP_LICENSE_FILES = COPYING LINUXPTP_CPE_ID_VENDOR = linuxptp_project LINUXPTP_MAKE_ENV = \ $(TARGET_MAKE_ENV) \ CROSS_COMPILE="$(TARGET_CROSS)" \ KBUILD_OUTPUT=$(STAGING_DIR) LINUXPTP_MAKE_OPTS = \ prefix=/usr \ EXTRA_CFLAGS="$(TARGET_CFLAGS)" \ EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" define LINUXPTP_BUILD_CMDS $(LINUXPTP_MAKE_ENV) $(MAKE) $(LINUXPTP_MAKE_OPTS) -C $(@D) all endef define LINUXPTP_INSTALL_TARGET_CMDS $(LINUXPTP_MAKE_ENV) $(MAKE) $(LINUXPTP_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) -C $(@D) install $(INSTALL) -D -m 644 $(LINUXPTP_PKGDIR)/linuxptp.cfg \ $(TARGET_DIR)/etc/linuxptp.cfg endef define LINUXPTP_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D $(LINUXPTP_PKGDIR)/S65ptp4l \ $(TARGET_DIR)/etc/init.d/S65ptp4l $(INSTALL) -m 755 -D $(LINUXPTP_PKGDIR)/S66phc2sys \ $(TARGET_DIR)/etc/init.d/S66phc2sys endef define LINUXPTP_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(LINUXPTP_PKGDIR)/ptp4l.service \ $(TARGET_DIR)/usr/lib/systemd/system/ptp4l.service $(INSTALL) -D -m 644 $(LINUXPTP_PKGDIR)/phc2sys.service \ $(TARGET_DIR)/usr/lib/systemd/system/phc2sys.service endef $(eval $(generic-package)) ================================================ FILE: package/linuxptp/phc2sys.service ================================================ [Unit] Description=Precision Time Protocol system clock synchronization After=ptp4l.service [Service] ExecStart=/usr/sbin/phc2sys -s /dev/ptp0 -c CLOCK_REALTIME -w -S 1.0 Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/linuxptp/ptp4l.service ================================================ [Unit] Description=Precision Time Protocol daemon After=syslog.target network.target Before=time-sync.target Wants=time-sync.target Wants=phc2sys.service [Service] ExecStart=/usr/sbin/ptp4l -f /etc/linuxptp.cfg Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/liquid-dsp/Config.in ================================================ 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 help Liquid-DSP is a free and open-source signal processing library for software-defined radios written in C. Its purpose is to provide a set of extensible DSP modules that do no rely on external dependencies or cumbersome frameworks. http://liquidsdr.org/ if BR2_PACKAGE_LIQUID_DSP config BR2_PACKAGE_LIQUID_DSP_FAST bool "optimize for speed over accuracy" help Optimize for speed over accuracy. endif ================================================ FILE: package/liquid-dsp/liquid-dsp.hash ================================================ # Locally calculated sha256 85093624ef9cb90ead64c836d2f42690197edace1a86257d6524c4e4dc870483 liquid-dsp-1.3.2.tar.gz sha256 4df7126196efba1283deb99e3269418dde4ab0ad1fde80a55051153451eb4df2 LICENSE ================================================ FILE: package/liquid-dsp/liquid-dsp.mk ================================================ ################################################################################ # # liquid-dsp # ################################################################################ LIQUID_DSP_VERSION = 1.3.2 LIQUID_DSP_SITE = $(call github,jgaeddert,liquid-dsp,v$(LIQUID_DSP_VERSION)) LIQUID_DSP_LICENSE = MIT LIQUID_DSP_LICENSE_FILES = LICENSE LIQUID_DSP_INSTALL_STAGING = YES LIQUID_DSP_AUTORECONF = YES LIQUID_DSP_CONF_ENV = \ ax_cv_have_mmx_ext=$(if $(BR2_X86_CPU_HAS_MMX),yes,no) \ ax_cv_have_sse_ext=$(if $(BR2_X86_CPU_HAS_SSE),yes,no) \ ax_cv_have_sse2_ext=$(if $(BR2_X86_CPU_HAS_SSE2),yes,no) \ ax_cv_have_sse3_ext=$(if $(BR2_X86_CPU_HAS_SSE3),yes,no) \ ax_cv_have_ssse3_ext=$(if $(BR2_X86_CPU_HAS_SSSE3),yes,no) \ ax_cv_have_sse41_ext=$(if $(BR2_X86_CPU_HAS_SSE4),yes,no) \ ax_cv_have_sse42_ext=$(if $(BR2_X86_CPU_HAS_SSE42),yes,no) \ ax_cv_have_avx_ext=$(if $(BR2_X86_CPU_HAS_AVX),yes,no) LIQUID_DSP_CFLAGS = $(TARGET_CFLAGS) LIQUID_DSP_LDFLAGS = $(TARGET_LDFLAGS) # Speed over accuracy trade off ifeq ($(BR2_PACKAGE_LIQUID_DSP_FAST),y) LIQUID_DSP_CFLAGS += -ffast-math endif # use FFTW instead of built-in FFT ifeq ($(BR2_PACKAGE_FFTW_SINGLE),y) LIQUID_DSP_LDFLAGS += -lfftw3f LIQUID_DSP_DEPENDENCIES += fftw-single endif # disable altivec, it has build issues ifeq ($(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpc64le),y) LIQUID_DSP_CONF_OPTS += --enable-simdoverride endif LIQUID_DSP_CONF_OPTS += \ CFLAGS="$(LIQUID_DSP_CFLAGS)" \ LDFLAGS="$(LIQUID_DSP_LDFLAGS)" $(eval $(autotools-package)) ================================================ FILE: package/lirc-tools/0001-Fix-build-without-Python.patch ================================================ From 71f329d997d949d3c12d62d2f1473a1c99ee49b0 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Sun, 27 Aug 2017 21:30:37 +0300 Subject: [PATCH] Fix build without Python Don't define HAVE_PYTHON35 when PYTHON_LIBS is empty. Also, don't build Python dependent code when HAVE_PYTHON35 is not defined. This fixes build failures like: Makefile:1616: recipe for target 'python-pkg/dist/lirc-0.10.0.tar.gz' failed make[3]: *** [python-pkg/dist/lirc-0.10.0.tar.gz] Error 1 python-pkg/lirc/_client.c:1:20: fatal error: Python.h: No such file or directory #include ^ Signed-off-by: Baruch Siach --- Upstream status: commit 74a2bcab6b Makefile.am | 2 ++ configure.ac | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 9f3dd14340cc..d8164fcd44cf 100644 --- a/Makefile.am +++ b/Makefile.am @@ -104,6 +104,7 @@ dist_py_pkg_doc_DATA = python-pkg/doc/Doxyfile \ libpython = $(libdir)/python$(PYTHON_VERSION) pydir = $(libpython)/site-packages/lirc +if HAVE_PYTHON35 py_LTLIBRARIES = python-pkg/lib/_client.la python_pkg_lib__client_la_SOURCES = \ python-pkg/lirc/_client.c @@ -116,6 +117,7 @@ python_pkg_lib__client_la_LDFLAGS = \ $(PYTHON_LIBS) python_pkg_lib__client_la_LIBADD = \ lib/liblirc_client.la +endif pylint: .phony $(MAKE) -C tools pylint diff --git a/configure.ac b/configure.ac index 4108688433f8..07d901deafdf 100644 --- a/configure.ac +++ b/configure.ac @@ -50,7 +50,8 @@ test -z "$PYTHON_LIBS" && \ test -n "$PYTHON_LIBS" || \ AC_MSG_WARN([No python package found (missing devel package?)]) python_version_nodots=$(echo $PYTHON_VERSION | tr -d '.') -AM_CONDITIONAL(HAVE_PYTHON35, [test $python_version_nodots -ge 35]) +AM_CONDITIONAL(HAVE_PYTHON35, [test -n "$PYTHON_LIBS" && \ + test $python_version_nodots -ge 35]) CFLAGS="$CFLAGS $PYTHON_CFLAGS" -- 2.14.1 ================================================ FILE: package/lirc-tools/0002-Fix-python-client-cross-compile.patch ================================================ From 13c4ffcfde07f659a836fba4a604dc1c5024bb90 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Tue, 29 Aug 2017 11:37:36 +0300 Subject: [PATCH] Fix python client cross compile The setup.py setuptools wrapper needs to use a version of python built specifically for cross compiling to cross compile successfully. Allow setting that in the environment using the SETUPTOOLS_ENV variable. Fixes the following build failure: /usr/bin/ld: skipping incompatible .../lirc-tools-0.10.0/lib/.libs/liblirc_client.so when searching for -llirc_client /usr/bin/ld: cannot find -llirc_client collect2: error: ld returned 1 exit status error: command '/usr/bin/gcc' failed with exit status 1 Makefile:1578: recipe for target 'all-local' failed Signed-off-by: Baruch Siach --- Upstream status: https://sourceforge.net/p/lirc/tickets/308/ Makefile.am | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile.am b/Makefile.am index d8164fcd44cf..a16be4278ae2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -131,6 +131,7 @@ pep8: $(py_PYTHON) if HAVE_PYTHON35 all-local: cd python-pkg; \ + $(SETUPTOOLS_ENV) \ CFLAGS="-I$(abs_top_srcdir)/lib -I$(abs_builddir)/lib" \ LDFLAGS=-L$(abs_builddir)/lib/.libs $(PYTHON) setup.py \ $(if $(VERBOSE),,-q) build @@ -179,6 +180,7 @@ $(abs_builddir)/python-pkg/setup.py: $(PYTHON_TARBALL): $(abs_builddir)/python-pkg/setup.py cp $(top_builddir)/VERSION $(abs_builddir)/python-pkg cd $(abs_builddir)/python-pkg; CFLAGS=-I$(abs_top_srcdir)/lib \ + $(SETUPTOOLS_ENV) \ LDFLAGS=-L$(abs_builddir)/lib/.libs $(PYTHON) setup.py -q sdist $(top_builddir)/python-pkg/VERSION: VERSION -- 2.14.1 ================================================ FILE: package/lirc-tools/0003-python-pkg-Fix-lirc-version-detection-when-cross-com.patch ================================================ From 732fd31610a6790a927ea9ed6d660796a1641254 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Thu, 7 Sep 2017 08:12:01 +0200 Subject: [PATCH] build: Fix lirc version detection when cross compiling. The setup.py script that runs on the host can't use the client library built for target. So setup.py falls back to a wrong hard-coded VERSION value. Instead of importing the target library, use exec() to read lirc/config.py directly for its VERSION value. Fixes build failure: /usr/bin/install -c -m 644 ./python-pkg/dist/lirc-0.10.0.tar.gz \ '.../output/host/arm-buildroot-linux-musleabihf/sysroot/usr/share/lirc' /usr/bin/install: cannot stat './python-pkg/dist/lirc-0.10.0.tar.gz': \ No such file or directory Signed-off-by: Baruch Siach --- Upstream status: commit 732fd31610a6 python-pkg/setup.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/python-pkg/setup.py b/python-pkg/setup.py index e9b33690f828..a2d92e0432aa 100644 --- a/python-pkg/setup.py +++ b/python-pkg/setup.py @@ -6,14 +6,11 @@ import subprocess import os.path import os -try: - import lirc.config - VERSION = lirc.config.VERSION.replace('-devel','') -except ImportError: - VERSION='0.0.0' - from setuptools import setup, Extension +exec(open("lirc/config.py").read()) +VERSION = VERSION.replace('-devel','') + if 'CFLAGS' in os.environ: cflags = os.environ['CFLAGS'].split() if 'LDFLAGS' in os.environ: -- 2.14.1 ================================================ FILE: package/lirc-tools/0004-plugins-devinput.c-fix-build-with-musl-1.2.0.patch ================================================ From 74909db0342c7aff29e15972c9928f3bef56d5a6 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 21 Apr 2020 12:14:13 +0200 Subject: [PATCH] plugins/devinput.c: fix build with musl 1.2.0 time element is deprecated on new input_event structure in kernel's input.h [1] [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f Signed-off-by: Fabrice Fontaine --- plugins/devinput.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/devinput.c b/plugins/devinput.c index 77828b44..e5a52e42 100644 --- a/plugins/devinput.c +++ b/plugins/devinput.c @@ -51,6 +51,10 @@ #define LONG(x) ((x) / BITS_PER_LONG) #define test_bit(bit, array) ((array[LONG(bit)] >> OFF(bit)) & 1) +#ifndef input_event_sec +#define input_event_sec time.tv_sec +#define input_event_usec time.tv_usec +#endif static const logchannel_t logchannel = LOG_DRIVER; @@ -458,7 +462,7 @@ char* devinput_rec(struct ir_remote* remotes) return 0; } - log_trace("time %ld.%06ld type %d code %d value %d", event.time.tv_sec, event.time.tv_usec, event.type, + log_trace("time %ld.%06ld type %d code %d value %d", event.input_event_sec, event.input_event_usec, event.type, event.code, event.value); value = (unsigned)event.value; -- 2.25.1 ================================================ FILE: package/lirc-tools/Config.in ================================================ 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 # dlopen() depends on !BR2_STATIC_LIBS help LIRC is a package that supports receiving and sending IR signals of the most common IR remote controls. It contains a daemon that decodes and sends IR signals, a mouse daemon that translates IR signals to mouse movements and a couple of user programs that allow to control your computer with a remote control. It requires the kernel LIRC interface driver, make sure to enable the kernel drivers to support your hardware. http://www.lirc.org/ comment "lirc-tools needs a toolchain w/ threads, dynamic library, C++" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \ || !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/lirc-tools/S25lircd ================================================ #!/bin/sh # # Start lirc # # Support for remotes - Add remotes to /etc/lirc/lircd.conf.d/ # start() { printf "Starting lirc: " mkdir -p /var/run/lirc ln -sf /var/run/lirc/lircd /dev/lircd start-stop-daemon -b -S -q -m -p /var/run/lirc.pid --exec /usr/sbin/lircd -- -n -O /etc/lirc/lirc_options.conf echo "OK" } stop() { printf "Stopping lirc: " start-stop-daemon -K -q -p /var/run/lirc.pid echo "OK" } case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/lirc-tools/lirc-tools.hash ================================================ # hash from https://sourceforge.net/projects/lirc/files/LIRC/0.10.1/ sha1 9d6f6d18ac566a96ef4ca1d6909a4e8bc517d48a lirc-0.10.1.tar.bz2 md5 86c3f8e4efaba10571addb8313d1e040 lirc-0.10.1.tar.bz2 # Locally computed sha256 8b753c60df2a7f5dcda2db72c38e448ca300c3b4f6000c1501fcb0bd5df414f2 lirc-0.10.1.tar.bz2 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/lirc-tools/lirc-tools.mk ================================================ ################################################################################ # # lirc-tools # ################################################################################ LIRC_TOOLS_VERSION = 0.10.1 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 = GPL-2.0+ LIRC_TOOLS_LICENSE_FILES = COPYING LIRC_TOOLS_SELINUX_MODULES = lircd LIRC_TOOLS_DEPENDENCIES = host-libxslt host-pkgconf host-python3 LIRC_TOOLS_INSTALL_STAGING = YES # Patching configure.ac and Makefile.am LIRC_TOOLS_AUTORECONF = YES LIRC_TOOLS_CONF_ENV = XSLTPROC=yes HAVE_WORKING_POLL=yes LIRC_TOOLS_CONF_OPTS = --without-x --enable-devinput --enable-uinput ifeq ($(BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4),y) LIRC_TOOLS_CONF_ENV += \ DEVINPUT_HEADER=$(STAGING_DIR)/usr/include/linux/input-event-codes.h else LIRC_TOOLS_CONF_ENV += \ DEVINPUT_HEADER=$(STAGING_DIR)/usr/include/linux/input.h endif 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 ifeq ($(BR2_PACKAGE_LIBFTDI1),y) LIRC_TOOLS_DEPENDENCIES += libftdi1 endif ifeq ($(BR2_PACKAGE_PYTHON3),y) LIRC_TOOLS_DEPENDENCIES += python3 host-python3-setuptools LIRC_TOOLS_MAKE_ENV += SETUPTOOLS_ENV='$(PKG_PYTHON_SETUPTOOLS_ENV)' endif define LIRC_TOOLS_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/lirc-tools/S25lircd \ $(TARGET_DIR)/etc/init.d/S25lircd endef $(eval $(autotools-package)) ================================================ FILE: package/lite/0001-dfbspy-stat.patch ================================================ From upstream git (git://git.directfb.org/git/directfb/libs/LiTE.git) From ffe0ce78327a63ddb1265328ea9b5b03acdca019 Mon Sep 17 00:00:00 2001 From: Denis Oliver Kropp Date: Fri, 1 Apr 2011 20:20:26 +0200 Subject: [PATCH] dfbspy: Build fix for dfbspy example. --- examples/dfbspy.c | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/dfbspy.c b/examples/dfbspy.c index 5f36f0b..c7f9725 100644 --- a/examples/dfbspy.c +++ b/examples/dfbspy.c @@ -89,9 +89,9 @@ read_stat( FusionStat *stat, int world ) /**************************************************************************************************/ -#define CALC(x) stat.x = (int)(((s.x - last_stat.x) * 1000 / (float) diff) + 0.5f) +#define CALC(x) stats.x = (int)(((s.x - last_stat.x) * 1000 / (float) diff) + 0.5f) -static FusionStat last_stat, stat; +static FusionStat last_stat, stats; static long long last_millis; static int @@ -145,14 +145,14 @@ static const struct { void (*update)( LiteLabel *label, void *ctx ); void *ctx; } list[] = { - { "lease/purchase", update_number, &stat.lease_purchase }, - { "cede", update_number, &stat.cede }, - { "attach", update_number, &stat.attach }, - { "detach", update_number, &stat.detach }, - { "ref up", update_number, &stat.ref_up }, - { "ref down", update_number, &stat.ref_down }, - { "prevail/swoop", update_number, &stat.prevail_swoop }, - { "dismiss", update_number, &stat.dismiss } + { "lease/purchase", update_number, &stats.lease_purchase }, + { "cede", update_number, &stats.cede }, + { "attach", update_number, &stats.attach }, + { "detach", update_number, &stats.detach }, + { "ref up", update_number, &stats.ref_up }, + { "ref down", update_number, &stats.ref_down }, + { "prevail/swoop", update_number, &stats.prevail_swoop }, + { "dismiss", update_number, &stats.dismiss } }; #define NUM_LIST (sizeof(list)/sizeof(list[0])) -- 1.7.6.3 ================================================ FILE: package/lite/0002-no-tests.patch ================================================ --- a/Makefile.in.orig 2008-07-07 13:07:12.000000000 +0200 +++ b/Makefile.in 2008-07-07 13:07:05.000000000 +0200 @@ -202,7 +202,7 @@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = data fonts lite leck examples tests +SUBDIRS = data fonts lite leck examples EXTRA_DIST = TODO lite.pc.in leck.pc.in pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = lite.pc leck.pc ================================================ FILE: package/lite/0003-pkg-config.patch ================================================ From 7982cccbb6ad58f3802bb266467290200d130a48 Mon Sep 17 00:00:00 2001 From: Ville Syrjala Date: Sat, 27 Nov 2010 01:14:25 +0200 Subject: [PATCH] Too many '\' characters in the .pc file --- lite.pc.in | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/lite.pc.in b/lite.pc.in index 48eb969..3a21eaa 100644 --- a/lite.pc.in +++ b/lite.pc.in @@ -9,4 +9,4 @@ Description: "LiTE" is a Toolkit Engine Requires: directfb >= @DFB_REQUIRED_VERSION@ Version: @VERSION@ Libs: -L${libdir} -llite -Cflags: -I${includedir} -DLITEFONTDIR=\\\"@LITEFONTDIR@\\\" +Cflags: -I${includedir} -DLITEFONTDIR=\"@LITEFONTDIR@\" -- 1.7.1 ================================================ FILE: package/lite/Config.in ================================================ config BR2_PACKAGE_LITE bool "LiTE (toolbox engine)" depends on BR2_PACKAGE_DIRECTFB help LiTE stands for LiTE is a Toolbox Engine. Its role is to facilitate the functions of DirectFB so that a toolbox could be written on top of DirectFB with less effort. As such LiTE has abstractions for the underlying graphics and event systems. See http://www.directfb.org/wiki/index.php/LiTE:Architecture ================================================ FILE: package/lite/lite.hash ================================================ # Locally calculated sha256 1b784cf595c3d5313e3705db210119f77d48826dbc7fcf6328af83a1270c2264 LiTE-0.8.10.tar.gz sha256 512d2d21b6b3384ba64781abb0208a1b87740bc31e2df48e2b206ddb7e4d5779 COPYING ================================================ FILE: package/lite/lite.mk ================================================ ################################################################################ # # lite # ################################################################################ LITE_VERSION = 0.8.10 LITE_SOURCE = LiTE-$(LITE_VERSION).tar.gz LITE_SITE = http://www.directfb.org/downloads/Libs LITE_INSTALL_STAGING = YES LITE_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) LDFLAGS=-L$(STAGING_DIR)/usr/lib install LITE_CONF_ENV = DFB_CFLAGS=-I$(STAGING_DIR)/usr/include/directfb LITE_DEPENDENCIES = directfb LITE_LICENSE = LGPL-2.1+ LITE_LICENSE_FILES = COPYING define LITE_FINALIZE_INSTALL $(INSTALL) -d $(TARGET_DIR)/usr/share/LiTE/examples/ $(INSTALL) -d $(TARGET_DIR)/usr/share/fonts/truetype/ $(INSTALL) -m0644 $(@D)/data/*.png $(TARGET_DIR)/usr/share/LiTE/ $(INSTALL) -m0644 $(@D)/examples/*.png $(TARGET_DIR)/usr/share/LiTE/examples/ $(INSTALL) -m0644 $(@D)/fonts/*.ttf $(TARGET_DIR)/usr/share/fonts/truetype/ endef LITE_POST_INSTALL_TARGET_HOOKS += LITE_FINALIZE_INSTALL $(eval $(autotools-package)) ================================================ FILE: package/live555/0001-Add-a-pkg-config-file-for-the-shared-libraries.patch ================================================ From: Benjamin Drung Date: Sat, 16 Sep 2017 11:22:03 +0200 Subject: Add a pkg-config file for the shared libraries This patch was downloaded from Debian https://sources.debian.org/src/liblivemedia/2018.08.05-1/debian/patches/0002-Add-a-pkg-config-file-for-the-shared-libraries.patch/ The local/ part of PREXIX and LIBDIR was removed to fit into buildroot. A similar version of this patch is part of the vlc source repo: http://git.videolan.org/?p=vlc.git;a=blob;f=contrib/src/live555/add-pkgconfig-file.patch;hb=HEAD Upstream status: Rejected http://lists.live555.com/pipermail/live-devel/2013-January/016374.html http://lists.live555.com/pipermail/live-devel/2013-January/016375.html Signed-off-by: Bernd Kuhls --- Makefile.head | 3 +++ Makefile.tail | 7 ++++++- live555.pc.in | 9 +++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 live555.pc.in diff --git a/Makefile.head b/Makefile.head index 458c54c..1571037 100644 --- a/Makefile.head +++ b/Makefile.head @@ -1 +1,4 @@ +PREFIX = /usr +LIBDIR = /usr/lib +VERSION = $(shell grep LIVEMEDIA_LIBRARY_VERSION_STRING liveMedia/include/liveMedia_version.hh | sed 's/.*"\([^"]*\)".*/\1/') ##### Change the following for your environment: diff --git a/Makefile.tail b/Makefile.tail index fc594ea..a20a527 100644 --- a/Makefile.tail +++ b/Makefile.tail @@ -22,7 +22,12 @@ all: @echo @echo "For more information about this source code (including your obligations under the LGPL), please see our FAQ at http://live555.com/liveMedia/faq.html" -install: +install_shared_libraries: + install -d $(DESTDIR)$(LIBDIR)/pkgconfig + sed "s#@PREFIX@#$(PREFIX)#;s#@LIBDIR@#$(LIBDIR)#;s#@VERSION@#$(VERSION)#" live555.pc.in > $(DESTDIR)$(LIBDIR)/pkgconfig/live555.pc + chmod 644 $(DESTDIR)$(LIBDIR)/pkgconfig/live555.pc + +install: $(INSTALL2) cd $(LIVEMEDIA_DIR) ; $(MAKE) install cd $(GROUPSOCK_DIR) ; $(MAKE) install cd $(USAGE_ENVIRONMENT_DIR) ; $(MAKE) install diff --git a/live555.pc.in b/live555.pc.in new file mode 100644 index 0000000..3736944 --- /dev/null +++ b/live555.pc.in @@ -0,0 +1,9 @@ +prefix=@PREFIX@ +libdir=@LIBDIR@ +includedir=${prefix}/include + +Name: live555 +Description: multimedia RTSP streaming library +Version: @VERSION@ +Cflags: -I${includedir}/liveMedia -I${includedir}/groupsock -I${includedir}/BasicUsageEnvironment -I${includedir}/UsageEnvironment +Libs: -L${libdir} -lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment ================================================ FILE: package/live555/Config.in ================================================ config BR2_PACKAGE_LIVE555 bool "live555" depends on BR2_INSTALL_LIBSTDCPP help LIVE555 Streaming Media forms a set of C++ libraries for multimedia streaming, using open standard protocols (RTP/RTCP, RTSP, SIP). http://www.live555.com/liveMedia/ comment "live555 needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/live555/live555.hash ================================================ # From http://www.live555.com/liveMedia/public/live555-latest-md5.txt md5 3c1992b0e9b871bcad7491a3da541781 live.2021.05.03.tar.gz # Locally generated sha256 ae73241f9cc4ab740d60737c0438d62a7635af3822de5d84acf275793de42029 live.2021.05.03.tar.gz sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING.LESSER ================================================ FILE: package/live555/live555.mk ================================================ ################################################################################ # # live555 # ################################################################################ LIVE555_VERSION = 2021.05.03 LIVE555_SOURCE = live.$(LIVE555_VERSION).tar.gz LIVE555_SITE = http://www.live555.com/liveMedia/public # There is a COPYING file with the GPL-3.0 license text, but none of # the source files appear to be released under GPL-3.0, and the # project web site says it's licensed under the LGPL: # http://live555.com/liveMedia/faq.html#copyright-and-license LIVE555_LICENSE = LGPL-3.0+ LIVE555_LICENSE_FILES = COPYING.LESSER LIVE555_CPE_ID_VENDOR = live555 LIVE555_CPE_ID_PRODUCT = streaming_media LIVE555_INSTALL_STAGING = YES LIVE555_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_STATIC_LIBS),y) LIVE555_CONFIG_TARGET = linux LIVE555_LIBRARY_LINK = $(TARGET_AR) cr else LIVE555_CONFIG_TARGET = linux-with-shared-libraries LIVE555_LIBRARY_LINK = $(TARGET_CC) -o LIVE555_CFLAGS += -fPIC endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LIVE555_DEPENDENCIES += host-pkgconf openssl LIVE555_CONSOLE_LIBS = `$(PKG_CONFIG_HOST_BINARY) --libs openssl` # passed to ar for static linking, which gets confused by -L ifneq ($(BR2_STATIC_LIBS),y) LIVE555_LIVEMEDIA_LIBS = $(LIVE555_CONSOLE_LIBS) endif else LIVE555_CFLAGS += -DNO_OPENSSL endif ifndef ($(BR2_ENABLE_LOCALE),y) LIVE555_CFLAGS += -DLOCALE_NOT_USED endif define LIVE555_CONFIGURE_CMDS echo 'COMPILE_OPTS = $$(INCLUDES) -I. -DSOCKLEN_T=socklen_t $(LIVE555_CFLAGS)' >> $(@D)/config.$(LIVE555_CONFIG_TARGET) echo 'C_COMPILER = $(TARGET_CC)' >> $(@D)/config.$(LIVE555_CONFIG_TARGET) echo 'CPLUSPLUS_COMPILER = $(TARGET_CXX)' >> $(@D)/config.$(LIVE555_CONFIG_TARGET) echo 'LINK = $(TARGET_CXX) -o' >> $(@D)/config.$(LIVE555_CONFIG_TARGET) echo 'LINK_OPTS = -L. $(TARGET_LDFLAGS)' >> $(@D)/config.$(LIVE555_CONFIG_TARGET) echo 'PREFIX = /usr' >> $(@D)/config.$(LIVE555_CONFIG_TARGET) # Must have a whitespace at the end of LIBRARY_LINK, otherwise static link # fails echo 'LIBRARY_LINK = $(LIVE555_LIBRARY_LINK) ' >> $(@D)/config.$(LIVE555_CONFIG_TARGET) echo 'LIBS_FOR_CONSOLE_APPLICATION = $(LIVE555_CONSOLE_LIBS)' >> $(@D)/config.$(LIVE555_CONFIG_TARGET) echo 'LIBS_FOR_LIVEMEDIA_LIB = $(LIVE555_LIVEMEDIA_LIBS)' >> $(@D)/config.$(LIVE555_CONFIG_TARGET) (cd $(@D); ./genMakefiles $(LIVE555_CONFIG_TARGET)) endef define LIVE555_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) all endef define LIVE555_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(STAGING_DIR) -C $(@D) install endef define LIVE555_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) PREFIX=/usr -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/ljlinenoise/Config.in ================================================ config BR2_PACKAGE_LJLINENOISE bool "ljlinenoise" # ljsyscall is specifically for LuaJIT, not Lua. depends on BR2_PACKAGE_LUAJIT select BR2_PACKAGE_LJSYSCALL # runtime help ljlinenoise is a pure LuaJIT port of linenoise, a small alternative to readline and libedit. https://fperrad.frama.io/ljlinenoise/ comment "ljlinenoise needs LuaJIT" depends on !BR2_PACKAGE_LUAJIT ================================================ FILE: package/ljlinenoise/ljlinenoise.hash ================================================ # computed by luarocks/buildroot sha256 7a6c4142b0096106f498d7ee4bea5bf5086c076d1f071893441b8e5c0665fb47 ljlinenoise-0.1.3-1.src.rock sha256 9b17730cb34ea591fb39688e70bd2be9c13d11b9db1c813b4ae68e3da9b7093e ljlinenoise-0.1.3/COPYRIGHT ================================================ FILE: package/ljlinenoise/ljlinenoise.mk ================================================ ################################################################################ # # ljlinenoise # ################################################################################ LJLINENOISE_VERSION = 0.1.3-1 LJLINENOISE_LICENSE = MIT LJLINENOISE_LICENSE_FILES = $(LJLINENOISE_SUBDIR)/COPYRIGHT $(eval $(luarocks-package)) ================================================ FILE: package/ljsyscall/Config.in ================================================ config BR2_PACKAGE_LJSYSCALL bool "ljsyscall" # ljsyscall is specifically for LuaJIT, not Lua. depends on BR2_PACKAGE_LUAJIT help An FFI implementation of the Linux and NetBSD kernel ABIs for LuaJIT. http://www.myriabit.com/ljsyscall/ comment "ljsyscall needs LuaJIT" depends on !BR2_PACKAGE_LUAJIT ================================================ FILE: package/ljsyscall/ljsyscall.hash ================================================ # Locally calculated sha256 6e29503609bd966fed33dec1a1571b36bbdbc37bf1a828af6722ed0ead192ff1 ljsyscall-0.12.tar.gz sha256 c8e21d8e74afbe26c2c8e69b42327d3b48e602117f9ef7b22c31ddca6f46b1f2 COPYRIGHT ================================================ FILE: package/ljsyscall/ljsyscall.mk ================================================ ################################################################################ # # ljsyscall # ################################################################################ LJSYSCALL_VERSION = 0.12 LJSYSCALL_SITE = $(call github,justincormack,ljsyscall,v$(LJSYSCALL_VERSION)) LJSYSCALL_LICENSE = MIT LJSYSCALL_LICENSE_FILES = COPYRIGHT # dispatch all architectures of LuaJIT ifeq ($(BR2_i386),y) LJSYSCALL_ARCH = x86 else ifeq ($(BR2_x86_64),y) LJSYSCALL_ARCH = x64 else ifeq ($(BR2_powerpc),y) LJSYSCALL_ARCH = ppc else ifeq ($(BR2_arm)$(BR2_armeb),y) LJSYSCALL_ARCH = arm else ifeq ($(BR2_aarch64),y) LJSYSCALL_ARCH = arm64 else ifeq ($(BR2_mips)$(BR2_mipsel),y) LJSYSCALL_ARCH = mips else LJSYSCALL_ARCH = $(BR2_ARCH) endif LJSYSCALL_TARGET_DIR = $(TARGET_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER) define LJSYSCALL_INSTALL_TARGET_CMDS $(INSTALL) -d $(LJSYSCALL_TARGET_DIR)/syscall $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/ $(@D)/syscall.lua $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/syscall $(@D)/syscall/*.lua $(INSTALL) -d $(LJSYSCALL_TARGET_DIR)/syscall/linux/$(LJSYSCALL_ARCH) $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/syscall/linux/ $(@D)/syscall/linux/*.lua $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/syscall/linux/$(LJSYSCALL_ARCH) $(@D)/syscall/linux/$(LJSYSCALL_ARCH)/*.lua $(INSTALL) -d $(LJSYSCALL_TARGET_DIR)/syscall/shared $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/syscall/shared/ $(@D)/syscall/shared/*.lua endef $(eval $(generic-package)) ================================================ FILE: package/lksctp-tools/Config.in ================================================ 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 ================================================ FILE: package/lksctp-tools/lksctp-tools.hash ================================================ # 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 # Locally computed sha256 dee5f35e583183abb9212938643ecb2d858fd89e2e286f4b1d903f65d49d6c76 COPYING.lib sha256 cc2a6651c315b233ebc110b49ea3c6452eff9a28f8bc051ffd2bb92a8dcfa3d2 COPYING ================================================ FILE: package/lksctp-tools/lksctp-tools.mk ================================================ ################################################################################ # # 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 = LGPL-2.1 (library), GPL-2.0+ (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)) ================================================ FILE: package/lld/Config.in.host ================================================ config BR2_PACKAGE_HOST_LLD bool "host lld" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS # llvm help LLD is a linker from the LLVM project that is a drop-in replacement for system linkers, and runs much faster than them. It also provides features that are useful for toolchain developers. https://lld.llvm.org/ ================================================ FILE: package/lld/lld.hash ================================================ # locally calculated sha256 86262bad3e2fd784ba8c5e2158d7aa36f12b85f2515e95bc81d65d75bb9b0c82 lld-9.0.1.src.tar.xz sha256 f7891568956e34643eb6a0db1462db30820d40d7266e2a78063f2fe233ece5a0 LICENSE.TXT ================================================ FILE: package/lld/lld.mk ================================================ ################################################################################ # # lld # ################################################################################ # LLVM, Clang and lld should be version bumped together LLD_VERSION = 9.0.1 LLD_SITE = https://github.com/llvm/llvm-project/releases/download/llvmorg-$(LLD_VERSION) LLD_SOURCE = lld-$(LLD_VERSION).src.tar.xz LLD_LICENSE = Apache-2.0 with exceptions LLD_LICENSE_FILES = LICENSE.TXT LLD_SUPPORTS_IN_SOURCE_BUILD = NO HOST_LLD_DEPENDENCIES = host-llvm # LLVM > 9.0 will soon require C++14 support, building llvm <= 9.0 using a # toolchain using gcc < 5.1 gives an error but actually still works. Setting # this option makes it still build with gcc >= 4.8. # https://reviews.llvm.org/D57264 HOST_LLD_CONF_OPTS += -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON # build as static libs as is done in llvm & clang HOST_LLD_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF # GCC looks for tools in a different path from LLD's default installation path define HOST_LLD_CREATE_SYMLINKS mkdir -p $(HOST_DIR)/$(GNU_TARGET_NAME)/bin ln -sf $(HOST_DIR)/bin/lld $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/lld ln -sf $(HOST_DIR)/bin/lld $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/ld.lld endef HOST_LLD_POST_INSTALL_HOOKS += HOST_LLD_CREATE_SYMLINKS $(eval $(host-cmake-package)) ================================================ FILE: package/lldpd/Config.in ================================================ config BR2_PACKAGE_LLDPD bool "lldpd" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBEVENT help lldpd is a 802.1ab implementation (LLDP) to help you locate neighbors of all your equipments. LLDP allows you to know exactly on which port is a server (and reciprocally). LLDP is an industry standard protocol designed to supplant proprietary Link-Layer protocols such as EDP or CDP. The goal of LLDP is to provide an inter-vendor compatible mechanism to deliver Link-Layer notifications to adjacent network devices. lldpd is an ISC-licensed implementation of LLDP for various Unixes. It also supports some proprietary protocols. https://vincentbernat.github.io/lldpd/ if BR2_PACKAGE_LLDPD config BR2_PACKAGE_LLDPD_CDP bool "CDP" default y help Enable Cisco Discovery Protocol config BR2_PACKAGE_LLDPD_FDP bool "FDP" default y help Enable Foundry Discovery Protocol config BR2_PACKAGE_LLDPD_EDP bool "EDP" default y help Enable Extreme Discovery Protocol config BR2_PACKAGE_LLDPD_SONMP bool "SONMP" default y help Enable SynOptics Network Management config BR2_PACKAGE_LLDPD_LLDPMED bool "LLDP-MED" default y help Enable LLDP-MED extension config BR2_PACKAGE_LLDPD_DOT1 bool "DOT1" default y help Enable Dot1 extension (VLAN stuff) config BR2_PACKAGE_LLDPD_DOT3 bool "DOT3" default y help Enable Dot3 extension (PHY stuff) config BR2_PACKAGE_LLDPD_CUSTOM_TLV bool "Custom TLV" default y help Enable Custom TLV support endif ================================================ FILE: package/lldpd/S60lldpd ================================================ #!/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 ================================================ FILE: package/lldpd/lldpd.hash ================================================ # Locally computed after checking gpg key # https://media.luffy.cx/files/lldpd/lldpd-1.0.9.tar.gz.gpg # using key AEF2348766F371C689A7360095A42FE8353525F9 sha256 6b64eb3125952b1e33472198b054e8aa0dee45f45d3d4be22789090a474949f5 lldpd-1.0.9.tar.gz sha256 0e96a5aea65f16e2239231ce4ab90497f8bc3bb8fe6abe9299aade4726ff7c8d LICENSE ================================================ FILE: package/lldpd/lldpd.mk ================================================ ################################################################################ # # lldpd # ################################################################################ LLDPD_VERSION = 1.0.9 LLDPD_SITE = https://media.luffy.cx/files/lldpd LLDPD_DEPENDENCIES = \ $(if $(BR2_PACKAGE_CHECK),check) \ host-pkgconf \ $(if $(BR2_PACKAGE_LIBCAP),libcap) \ libevent \ $(if $(BR2_PACKAGE_VALGRIND),valgrind) LLDPD_LICENSE = ISC LLDPD_LICENSE_FILES = LICENSE LLDPD_CPE_ID_VENDOR = lldpd_project # Detection of c99 support in configure fails without WCHAR. To enable # automatic detection of c99 support by configure, we need to enable # WCHAR in toolchain. But actually we do not need WCHAR at lldpd # runtime. So requesting WCHAR in toolchain just for automatic detection # will be overkill. To solve this, explicitly -specify c99 here. LLDPD_CONF_ENV = ac_cv_prog_cc_c99=-std=gnu99 LLDPD_CONF_OPTS = \ --without-embedded-libevent \ --without-seccomp \ --without-libbsd \ --disable-hardening \ --disable-privsep \ $(if $(BR2_PACKAGE_LLDPD_CDP),--enable-cdp,--disable-cdp) \ $(if $(BR2_PACKAGE_LLDPD_FDP),--enable-fdp,--disable-fdp) \ $(if $(BR2_PACKAGE_LLDPD_EDP),--enable-edp,--disable-edp) \ $(if $(BR2_PACKAGE_LLDPD_SONMP),--enable-sonmp,--disable-sonmp) \ $(if $(BR2_PACKAGE_LLDPD_LLDPMED),--enable-lldpmed,--disable-lldpmed) \ $(if $(BR2_PACKAGE_LLDPD_DOT1),--enable-dot1,--disable-dot1) \ $(if $(BR2_PACKAGE_LLDPD_DOT3),--enable-dot3,--disable-dot3) \ $(if $(BR2_PACKAGE_LLDPD_CUSTOM_TLV),--enable-custom,--disable-custom) ifeq ($(BR2_PACKAGE_LIBXML2),y) LLDPD_CONF_OPTS += --with-xml LLDPD_DEPENDENCIES += libxml2 else LLDPD_CONF_OPTS += --without-xml endif ifeq ($(BR2_PACKAGE_NETSNMP),y) LLDPD_CONF_OPTS += --with-snmp LLDPD_DEPENDENCIES += netsnmp LLDPD_CONF_ENV += \ ac_cv_path_NETSNMP_CONFIG=$(STAGING_DIR)/usr/bin/net-snmp-config else LLDPD_CONF_OPTS += --without-snmp endif ifeq ($(BR2_PACKAGE_READLINE),y) LLDPD_CONF_OPTS += --with-readline LLDPD_DEPENDENCIES += readline else LLDPD_CONF_OPTS += --without-readline endif define LLDPD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/lldpd/S60lldpd \ $(TARGET_DIR)/etc/init.d/S60lldpd endef $(eval $(autotools-package)) ================================================ FILE: package/llvm/0001-nfc-Fix-missing-include.patch ================================================ From b498303066a63a203d24f739b2d2e0e56dca70d1 Mon Sep 17 00:00:00 2001 From: serge-sans-paille Date: Tue, 10 Nov 2020 14:55:25 +0100 Subject: [PATCH] [nfc] Fix missing include [Retrieved (and backported) from: https://github.com/llvm/llvm-project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1] Signed-off-by: Fabrice Fontaine --- llvm/utils/benchmark/src/benchmark_register.h | 1 + 1 file changed, 1 insertion(+) diff --git a/utils/benchmark/src/benchmark_register.h b/utils/benchmark/src/benchmark_register.h index 0705e219f2fa2..4caa5ad4da079 100644 --- a/utils/benchmark/src/benchmark_register.h +++ b/utils/benchmark/src/benchmark_register.h @@ -1,6 +1,7 @@ #ifndef BENCHMARK_REGISTER_H #define BENCHMARK_REGISTER_H +#include #include #include "check.h" ================================================ FILE: package/llvm/Config.in ================================================ config BR2_PACKAGE_LLVM_ARCH_SUPPORTS bool default y if BR2_i386 default y if BR2_x86_64 default y if BR2_aarch64 default y if BR2_arm || BR2_armeb config BR2_PACKAGE_LLVM_TARGET_ARCH string default "AArch64" if BR2_aarch64 default "ARM" if BR2_arm || BR2_armeb default "X86" if BR2_i386 || BR2_x86_64 config BR2_PACKAGE_LLVM bool "llvm" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::shared_future depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR # std::wstring help The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. http://llvm.org if BR2_PACKAGE_LLVM config BR2_PACKAGE_LLVM_AMDGPU bool "AMDGPU backend" help Build AMDGPU target. Select this option if you are going to install mesa3d with llvm and use Gallium Radeon driver. config BR2_PACKAGE_LLVM_RTTI bool "enable rtti" help Build LLVM with run-time type information. LLVM can be built without rtti, but turning it off changes the ABI of C++ programs. This features is needed to build the Gallium Nouveau driver or the Clover OpenCL state tracker when llvm support is enabled. https://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html config BR2_PACKAGE_LLVM_BPF bool "BPF backend" help Build BPF target. Select this option if you are going to install bcc on the target. endif comment "llvm needs a toolchain w/ wchar, threads, C++, gcc >= 4.8, dynamic library" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \ || BR2_STATIC_LIBS || !BR2_USE_WCHAR comment "llvm needs a toolchain not affected by GCC bug 64735" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/llvm/llvm.hash ================================================ # locally calculated sha256 00a1ee1f389f81e9979f3a640a01c431b3021de0d42278f6508391a2f0b81c9a llvm-9.0.1.src.tar.xz sha256 8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee LICENSE.TXT ================================================ FILE: package/llvm/llvm.mk ================================================ ################################################################################ # # llvm # ################################################################################ # LLVM, Clang and lld should be version bumped together LLVM_VERSION = 9.0.1 LLVM_SITE = https://github.com/llvm/llvm-project/releases/download/llvmorg-$(LLVM_VERSION) LLVM_SOURCE = llvm-$(LLVM_VERSION).src.tar.xz LLVM_LICENSE = Apache-2.0 with exceptions LLVM_LICENSE_FILES = LICENSE.TXT LLVM_CPE_ID_VENDOR = llvm LLVM_SUPPORTS_IN_SOURCE_BUILD = NO LLVM_INSTALL_STAGING = YES # LLVM >= 9.0 can use python3 to build. HOST_LLVM_DEPENDENCIES = host-python3 LLVM_DEPENDENCIES = host-llvm # LLVM >= 9.0 will soon require C++14 support, building llvm 8.x using a # toolchain using gcc < 5.1 gives an error but actually still works. Setting # this option makes it still build with gcc >= 4.8. # https://reviews.llvm.org/D57264 HOST_LLVM_CONF_OPTS += -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON LLVM_CONF_OPTS += -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON # Don't build clang libcxx libcxxabi lldb compiler-rt lld polly as llvm subprojects # This flag assumes that projects are checked out side-by-side and not nested HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_PROJECTS="" LLVM_CONF_OPTS += -DLLVM_ENABLE_PROJECTS="" HOST_LLVM_CONF_OPTS += -DLLVM_CCACHE_BUILD=$(if $(BR2_CCACHE),ON,OFF) LLVM_CONF_OPTS += -DLLVM_CCACHE_BUILD=$(if $(BR2_CCACHE),ON,OFF) # This option prevents AddLLVM.cmake from adding $ORIGIN/../lib to # binaries. Otherwise, llvm-config (host variant installed in STAGING) # will try to use target's libc. HOST_LLVM_CONF_OPTS += -DCMAKE_INSTALL_RPATH="$(HOST_DIR)/lib" # Get target architecture LLVM_TARGET_ARCH = $(call qstrip,$(BR2_PACKAGE_LLVM_TARGET_ARCH)) # Build backend for target architecture. This include backends like AMDGPU. LLVM_TARGETS_TO_BUILD = $(LLVM_TARGET_ARCH) HOST_LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))" LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))" # LLVM target to use for native code generation. This is required for JIT generation. # It must be set to LLVM_TARGET_ARCH for host and target, otherwise we get # "No available targets are compatible for this triple" with llvmpipe when host # and target architectures are different. HOST_LLVM_CONF_OPTS += -DLLVM_TARGET_ARCH=$(LLVM_TARGET_ARCH) LLVM_CONF_OPTS += -DLLVM_TARGET_ARCH=$(LLVM_TARGET_ARCH) # Build AMDGPU backend # We need to build AMDGPU backend for both host and target because # llvm-config --targets built (host variant installed in STAGING) will # output only $(LLVM_TARGET_ARCH) if not, and mesa3d won't build as # it thinks AMDGPU backend is not installed on the target. ifeq ($(BR2_PACKAGE_LLVM_AMDGPU),y) LLVM_TARGETS_TO_BUILD += AMDGPU endif # Build BPF backend ifeq ($(BR2_PACKAGE_LLVM_BPF),y) LLVM_TARGETS_TO_BUILD += BPF endif # Use native llvm-tblgen from host-llvm (needed for cross-compilation) LLVM_CONF_OPTS += -DLLVM_TABLEGEN=$(HOST_DIR)/bin/llvm-tblgen # Use native llvm-config from host-llvm (needed for cross-compilation) LLVM_CONF_OPTS += -DLLVM_CONFIG_PATH=$(HOST_DIR)/bin/llvm-config # BUILD_SHARED_LIBS has a misleading name. It is in fact an option for # LLVM developers to build all LLVM libraries as separate shared libraries. # For normal use of LLVM, it is recommended to build a single # shared library, which is achieved by BUILD_SHARED_LIBS=OFF and # LLVM_BUILD_LLVM_DYLIB=ON. HOST_LLVM_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF LLVM_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF # Generate libLLVM.so. This library contains a default set of LLVM components # that can be overwritten with "LLVM_DYLIB_COMPONENTS". The default contains # most of LLVM and is defined in "tools/llvm-shlib/CMakelists.txt". HOST_LLVM_CONF_OPTS += -DLLVM_BUILD_LLVM_DYLIB=ON LLVM_CONF_OPTS += -DLLVM_BUILD_LLVM_DYLIB=ON # LLVM_BUILD_LLVM_DYLIB to ON. We need to enable this option for the # host as llvm-config for the host will be used in STAGING_DIR by packages # linking against libLLVM and if this option is not selected, then llvm-config # does not work properly. For example, it assumes that LLVM is built statically # and cannot find libLLVM.so. HOST_LLVM_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON LLVM_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON LLVM_CONF_OPTS += -DCMAKE_CROSSCOMPILING=1 # Disabled for the host since no host-libedit. # Fall back to "Simple fgets-based implementation" of llvm line editor. HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_LIBEDIT=OFF LLVM_CONF_OPTS += -DLLVM_ENABLE_LIBEDIT=OFF # We want to install llvm libraries and modules. HOST_LLVM_CONF_OPTS += -DLLVM_INSTALL_TOOLCHAIN_ONLY=OFF LLVM_CONF_OPTS += -DLLVM_INSTALL_TOOLCHAIN_ONLY=OFF # We build from a release archive without vcs files. HOST_LLVM_CONF_OPTS += -DLLVM_APPEND_VC_REV=OFF LLVM_CONF_OPTS += -DLLVM_APPEND_VC_REV=OFF # No backtrace package in Buildroot. # https://documentation.backtrace.io HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_BACKTRACES=OFF LLVM_CONF_OPTS += -DLLVM_ENABLE_BACKTRACES=OFF # Enable signal handlers overrides support. HOST_LLVM_CONF_OPTS += -DENABLE_CRASH_OVERRIDES=ON LLVM_CONF_OPTS += -DENABLE_CRASH_OVERRIDES=ON # Disable ffi for now. HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_FFI=OFF LLVM_CONF_OPTS += -DLLVM_ENABLE_FFI=OFF # Disable terminfo database (needs ncurses libtinfo.so) HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_TERMINFO=OFF LLVM_CONF_OPTS += -DLLVM_ENABLE_TERMINFO=OFF # Enable thread support HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_THREADS=ON LLVM_CONF_OPTS += -DLLVM_ENABLE_THREADS=ON # Enable optional host-zlib support for LLVM Machine Code (llvm-mc) to add # compression/uncompression capabilities. # Not needed on the target. HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_ZLIB=ON HOST_LLVM_DEPENDENCIES += host-zlib LLVM_CONF_OPTS += -DLLVM_ENABLE_ZLIB=OFF # libxml2 can be disabled as it is used for LLVM Windows builds where COFF # files include manifest info HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_LIBXML2=OFF LLVM_CONF_OPTS += -DLLVM_ENABLE_LIBXML2=OFF # Disable optional Z3Prover since there is no such package in Buildroot. HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_Z3_SOLVER=OFF LLVM_CONF_OPTS += -DLLVM_ENABLE_Z3_SOLVER=OFF # We don't use llvm for static only build, so enable PIC HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_PIC=ON LLVM_CONF_OPTS += -DLLVM_ENABLE_PIC=ON # Default is Debug build, which requires considerably more disk space and # build time. Release build is selected for host and target because the linker # can run out of memory in Debug mode. HOST_LLVM_CONF_OPTS += -DCMAKE_BUILD_TYPE=Release LLVM_CONF_OPTS += -DCMAKE_BUILD_TYPE=Release # Disable C++1y (ISO C++ 2014 standard) # Disable C++1z (ISO C++ 2017 standard) # Compile llvm with the C++11 (ISO C++ 2011 standard) which is the fallback. HOST_LLVM_CONF_OPTS += \ -DLLVM_ENABLE_CXX1Y=OFF \ -DLLVM_ENABLE_CXX1Z=OFF LLVM_CONF_OPTS += \ -DLLVM_ENABLE_CXX1Y=OFF \ -DLLVM_ENABLE_CXX1Z=OFF # Disabled, requires sys/ndir.h header # Disable debug in module HOST_LLVM_CONF_OPTS += \ -DLLVM_ENABLE_MODULES=OFF \ -DLLVM_ENABLE_MODULE_DEBUGGING=OFF LLVM_CONF_OPTS += \ -DLLVM_ENABLE_MODULES=OFF \ -DLLVM_ENABLE_MODULE_DEBUGGING=OFF # Don't change the standard library to libc++. HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_LIBCXX=OFF LLVM_CONF_OPTS += -DLLVM_ENABLE_LIBCXX=OFF # Don't use lld as a linker. HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_LLD=OFF LLVM_CONF_OPTS += -DLLVM_ENABLE_LLD=OFF # Generate code for the target. LLVM selects a target by looking at the # toolchain tuple HOST_LLVM_CONF_OPTS += -DLLVM_DEFAULT_TARGET_TRIPLE=$(GNU_TARGET_NAME) LLVM_CONF_OPTS += -DLLVM_DEFAULT_TARGET_TRIPLE=$(GNU_TARGET_NAME) # LLVM_HOST_TRIPLE has a misleading name, it is in fact the triple of the # system where llvm is going to run on. We need to specify triple for native # code generation on the target. # This solves "No available targets are compatible for this triple" with llvmpipe LLVM_CONF_OPTS += -DLLVM_HOST_TRIPLE=$(GNU_TARGET_NAME) # Building the Go and OCaml bindings is yet unsupported. HOST_LLVM_CONF_OPTS += \ -DLLVM_ENABLE_BINDINGS=OFF # Builds a release host tablegen that gets used during the LLVM build. HOST_LLVM_CONF_OPTS += -DLLVM_OPTIMIZED_TABLEGEN=ON # Keep llvm utility binaries for the host. llvm-tblgen is built anyway as # CMakeLists.txt has add_subdirectory(utils/TableGen) unconditionally. HOST_LLVM_CONF_OPTS += \ -DLLVM_BUILD_UTILS=ON \ -DLLVM_INCLUDE_UTILS=ON \ -DLLVM_INSTALL_UTILS=ON LLVM_CONF_OPTS += \ -DLLVM_BUILD_UTILS=OFF \ -DLLVM_INCLUDE_UTILS=OFF \ -DLLVM_INSTALL_UTILS=OFF HOST_LLVM_CONF_OPTS += \ -DLLVM_INCLUDE_TOOLS=ON \ -DLLVM_BUILD_TOOLS=ON # We need to activate LLVM_INCLUDE_TOOLS, otherwise it does not generate # libLLVM.so LLVM_CONF_OPTS += \ -DLLVM_INCLUDE_TOOLS=ON \ -DLLVM_BUILD_TOOLS=OFF ifeq ($(BR2_PACKAGE_LLVM_RTTI),y) HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=ON LLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=ON else HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=OFF LLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=OFF endif # Compiler-rt not in the source tree. # llvm runtime libraries are not in the source tree. # Polly is not in the source tree. HOST_LLVM_CONF_OPTS += \ -DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \ -DLLVM_BUILD_RUNTIME=OFF \ -DLLVM_INCLUDE_RUNTIMES=OFF \ -DLLVM_POLLY_BUILD=OFF LLVM_CONF_OPTS += \ -DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \ -DLLVM_BUILD_RUNTIME=OFF \ -DLLVM_INCLUDE_RUNTIMES=OFF \ -DLLVM_POLLY_BUILD=OFF HOST_LLVM_CONF_OPTS += \ -DLLVM_ENABLE_WARNINGS=ON \ -DLLVM_ENABLE_PEDANTIC=ON \ -DLLVM_ENABLE_WERROR=OFF LLVM_CONF_OPTS += \ -DLLVM_ENABLE_WARNINGS=ON \ -DLLVM_ENABLE_PEDANTIC=ON \ -DLLVM_ENABLE_WERROR=OFF HOST_LLVM_CONF_OPTS += \ -DLLVM_BUILD_EXAMPLES=OFF \ -DLLVM_BUILD_DOCS=OFF \ -DLLVM_BUILD_TESTS=OFF \ -DLLVM_ENABLE_DOXYGEN=OFF \ -DLLVM_ENABLE_OCAMLDOC=OFF \ -DLLVM_ENABLE_SPHINX=OFF \ -DLLVM_INCLUDE_EXAMPLES=OFF \ -DLLVM_INCLUDE_DOCS=OFF \ -DLLVM_INCLUDE_GO_TESTS=OFF \ -DLLVM_INCLUDE_TESTS=OFF LLVM_CONF_OPTS += \ -DLLVM_BUILD_EXAMPLES=OFF \ -DLLVM_BUILD_DOCS=OFF \ -DLLVM_BUILD_TESTS=OFF \ -DLLVM_ENABLE_DOXYGEN=OFF \ -DLLVM_ENABLE_OCAMLDOC=OFF \ -DLLVM_ENABLE_SPHINX=OFF \ -DLLVM_INCLUDE_EXAMPLES=OFF \ -DLLVM_INCLUDE_DOCS=OFF \ -DLLVM_INCLUDE_GO_TESTS=OFF \ -DLLVM_INCLUDE_TESTS=OFF # Copy llvm-config (host variant) to STAGING_DIR # llvm-config (host variant) returns include and lib directories # for the host if it's installed in host/bin: # output/host/bin/llvm-config --includedir # output/host/include # When installed in STAGING_DIR, llvm-config returns include and lib # directories from STAGING_DIR. # output/staging/usr/bin/llvm-config --includedir # output/staging/usr/include define HOST_LLVM_COPY_LLVM_CONFIG_TO_STAGING_DIR $(INSTALL) -D -m 0755 $(HOST_DIR)/bin/llvm-config \ $(STAGING_DIR)/usr/bin/llvm-config endef HOST_LLVM_POST_INSTALL_HOOKS = HOST_LLVM_COPY_LLVM_CONFIG_TO_STAGING_DIR # By default llvm-tblgen is built and installed on the target but it is # not necessary. Also erase LLVMHello.so from /usr/lib define LLVM_DELETE_LLVM_TBLGEN_TARGET rm -f $(TARGET_DIR)/usr/bin/llvm-tblgen $(TARGET_DIR)/usr/lib/LLVMHello.so endef LLVM_POST_INSTALL_TARGET_HOOKS = LLVM_DELETE_LLVM_TBLGEN_TARGET $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/lm-sensors/0001-static-build.patch ================================================ Add support for static only build This patch adds support for a BUILD_SHARED_LIB variable that allows to enable/disable the build of the shared library, in order to support static-only builds. Signed-off-by: Thomas Petazzoni Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -85,6 +85,9 @@ # Build and install static library BUILD_STATIC_LIB := 1 +# Build and install shared library +BUILD_SHARED_LIB := 1 + # Set these to add preprocessor or compiler flags, or use # environment variables # CFLAGS := Index: b/lib/Module.mk =================================================================== --- a/lib/Module.mk +++ b/lib/Module.mk @@ -43,8 +43,14 @@ LIBSTLIBNAME := libsensors.a LIBSHSONAME := libsensors.so.$(LIBMAINVER) +ifeq ($(BUILD_SHARED_LIB),1) LIBTARGETS := $(MODULE_DIR)/$(LIBSHLIBNAME) \ $(MODULE_DIR)/$(LIBSHSONAME) $(MODULE_DIR)/$(LIBSHBASENAME) +LIBDEP_FOR_PROGS := $(LIBSHBASENAME) +else +LIBDEP_FOR_PROGS := $(LIBSTLIBNAME) +endif + ifeq ($(BUILD_STATIC_LIB),1) LIBTARGETS += $(MODULE_DIR)/$(LIBSTLIBNAME) endif @@ -131,9 +137,11 @@ ifeq ($(BUILD_STATIC_LIB),1) $(INSTALL) -m 644 $(LIB_DIR)/$(LIBSTLIBNAME) $(DESTDIR)$(LIBDIR) endif +ifeq ($(BUILD_SHARED_LIB),1) $(INSTALL) -m 755 $(LIB_DIR)/$(LIBSHLIBNAME) $(DESTDIR)$(LIBDIR) $(LN) $(LIBSHLIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBSHSONAME) $(LN) $(LIBSHSONAME) $(DESTDIR)$(LIBDIR)/$(LIBSHBASENAME) +endif @if [ -z "$(DESTDIR)" -a "$(LIBDIR)" != "/usr/lib" -a "$(LIBDIR)" != "/lib" ] ; then \ if [ -e "/usr/lib/$(LIBSHSONAME)" -o -e "/usr/lib/$(LIBSHBASENAME)" ] ; then \ echo '******************************************************************************' ; \ Index: b/prog/sensord/Module.mk =================================================================== --- a/prog/sensord/Module.mk +++ b/prog/sensord/Module.mk @@ -41,7 +41,7 @@ REMOVESENSORDBIN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(SBINDIR)/%,$(PROGSENSORDTARGETS)) REMOVESENSORDMAN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(PROGSENSORDMAN8DIR)/%,$(PROGSENSORDMAN8FILES)) -$(PROGSENSORDTARGETS): $(PROGSENSORDSOURCES:.c=.ro) lib/$(LIBSHBASENAME) +$(PROGSENSORDTARGETS): $(PROGSENSORDSOURCES:.c=.ro) lib/$(LIBDEP_FOR_PROGS) $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORDSOURCES:.c=.ro) -Llib -lsensors -lrrd all-prog-sensord: $(PROGSENSORDTARGETS) Index: b/prog/sensors/Module.mk =================================================================== --- a/prog/sensors/Module.mk +++ b/prog/sensors/Module.mk @@ -39,8 +39,8 @@ LIBICONV := $(shell if /sbin/ldconfig -p | grep -q '/libiconv\.so$$' ; then echo \-liconv; else echo; fi) -$(PROGSENSORSTARGETS): $(PROGSENSORSSOURCES:.c=.ro) lib/$(LIBSHBASENAME) - $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) $(LIBICONV) -Llib -lsensors +$(PROGSENSORSTARGETS): $(PROGSENSORSSOURCES:.c=.ro) lib/$(LIBDEP_FOR_PROGS) + $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) $(LIBICONV) -Llib -lsensors -lm all-prog-sensors: $(PROGSENSORSTARGETS) user :: all-prog-sensors ================================================ FILE: package/lm-sensors/0002-no-host-ldconfig.patch ================================================ Remove usage of host ldconfig To know whether the libiconv library is available, lm-sensors is using the host ldconfig, which is obviously wrong in cross-compilation. Moreover, the lm-sensors program making use of the iconv_*() API already does it when __UCLIBC__ is *not* defined. In this case, the iconv_*() functions are already part of the C library, so there is no need to link against a separate library. Therefore, this patch simply removes the libiconv handling. Signed-off-by: Thomas Petazzoni Index: b/prog/sensors/Module.mk =================================================================== --- a/prog/sensors/Module.mk +++ b/prog/sensors/Module.mk @@ -37,10 +37,8 @@ REMOVESENSORSBIN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(BINDIR)/%,$(PROGSENSORSTARGETS)) REMOVESENSORSMAN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(PROGSENSORSMAN1DIR)/%,$(PROGSENSORSMAN1FILES)) -LIBICONV := $(shell if /sbin/ldconfig -p | grep -q '/libiconv\.so$$' ; then echo \-liconv; else echo; fi) - $(PROGSENSORSTARGETS): $(PROGSENSORSSOURCES:.c=.ro) lib/$(LIBDEP_FOR_PROGS) - $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) $(LIBICONV) -Llib -lsensors -lm + $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) -Llib -lsensors -lm all-prog-sensors: $(PROGSENSORSTARGETS) user :: all-prog-sensors ================================================ FILE: package/lm-sensors/Config.in ================================================ config BR2_PACKAGE_LM_SENSORS bool "lm-sensors" help Lm-sensors is a hardware health monitoring package for Linux. It allows you to access information from temperature, voltage, and fan speed sensors. It works with most newer systems. https://hwmon.wiki.kernel.org if BR2_PACKAGE_LM_SENSORS comment "lm-sensors tools" config BR2_PACKAGE_LM_SENSORS_SENSORS bool "sensors" default y help Sensors is used to show the current readings of all sensor chips. config BR2_PACKAGE_LM_SENSORS_FANCONTROL bool "fancontrol" help Script for temperature driven fan control config BR2_PACKAGE_LM_SENSORS_ISADUMP bool "isadump" depends on BR2_i386 || BR2_x86_64 help Isadump is a small helper program to examine registers visible through the ISA bus. config BR2_PACKAGE_LM_SENSORS_ISASET bool "isaset" depends on BR2_i386 || BR2_x86_64 help Isaset is a small helper program to set register visible through the ISA bus. config BR2_PACKAGE_LM_SENSORS_PWMCONFIG bool "pwmconfig" help Pwmconfig searches your sensors for pulse width modulation (PWM) controls, and tests each one to see if it controls a fan on your motherboard. config BR2_PACKAGE_LM_SENSORS_SENSORS_DETECT bool "sensors-detect" depends on BR2_PACKAGE_PERL help Sensors-detect is an interactive program for detecting available hardware monitoring chips. comment "sensors-detect needs perl" depends on !BR2_PACKAGE_PERL endif ================================================ FILE: package/lm-sensors/lm-sensors.hash ================================================ # Locally calculated sha256 0591f9fa0339f0d15e75326d0365871c2d4e2ed8aa1ff759b3a55d3734b7d197 lm-sensors-3-6-0.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPL ================================================ FILE: package/lm-sensors/lm-sensors.mk ================================================ ################################################################################ # # lm-sensors # ################################################################################ LM_SENSORS_VERSION = 3-6-0 LM_SENSORS_SITE = $(call github,lm-sensors,lm-sensors,V$(LM_SENSORS_VERSION)) LM_SENSORS_INSTALL_STAGING = YES LM_SENSORS_DEPENDENCIES = host-bison host-flex LM_SENSORS_LICENSE = LGPL-2.1+ (libsensors), GPL-2.0+ (programs) LM_SENSORS_LICENSE_FILES = COPYING.LGPL COPYING LM_SENSORS_BINS_ = bin/sensors-conf-convert LM_SENSORS_BINS_$(BR2_PACKAGE_LM_SENSORS_SENSORS) += bin/sensors LM_SENSORS_BINS_$(BR2_PACKAGE_LM_SENSORS_FANCONTROL) += sbin/fancontrol LM_SENSORS_BINS_$(BR2_PACKAGE_LM_SENSORS_ISADUMP) += sbin/isadump LM_SENSORS_BINS_$(BR2_PACKAGE_LM_SENSORS_ISASET) += sbin/isaset LM_SENSORS_BINS_$(BR2_PACKAGE_LM_SENSORS_PWMCONFIG) += sbin/pwmconfig LM_SENSORS_BINS_$(BR2_PACKAGE_LM_SENSORS_SENSORS_DETECT) += sbin/sensors-detect LM_SENSORS_MAKE_OPTS = \ $(TARGET_CONFIGURE_OPTS) \ PREFIX=/usr ifeq ($(BR2_STATIC_LIBS),y) LM_SENSORS_MAKE_OPTS += BUILD_SHARED_LIB=0 EXLDFLAGS=-static else LM_SENSORS_MAKE_OPTS += BUILD_SHARED_LIB=1 endif ifeq ($(BR2_SHARED_LIBS),y) LM_SENSORS_MAKE_OPTS += BUILD_STATIC_LIB=0 else LM_SENSORS_MAKE_OPTS += BUILD_STATIC_LIB=1 endif define LM_SENSORS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(LM_SENSORS_MAKE_OPTS) -C $(@D) endef define LM_SENSORS_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(LM_SENSORS_MAKE_OPTS) DESTDIR=$(STAGING_DIR) install rm -f $(addprefix $(STAGING_DIR)/usr/,$(LM_SENSORS_BINS_) $(LM_SENSORS_BINS_y)) endef define LM_SENSORS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(LM_SENSORS_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install rm -f $(addprefix $(TARGET_DIR)/usr/,$(LM_SENSORS_BINS_)) endef $(eval $(generic-package)) ================================================ FILE: package/lmbench/0001-scripts-build-use-bin-bash-as-shell.patch ================================================ From 02a538c2b4b54b41d23dbd7668714ea4d2016131 Mon Sep 17 00:00:00 2001 From: Markus Mayer Date: Thu, 13 Jun 2019 12:27:04 -0700 Subject: [PATCH] scripts/build: use /bin/bash as shell scripts/build makes use of the "+=" operator which is not supported by /bin/sh. We switch to /bin/bash in order to avoid errors of the form ../scripts/build: 21: ../scripts/build: LDLIBS+= -lm: not found Signed-off-by: Markus Mayer --- scripts/build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build b/scripts/build index 34a1371d0056..60b755cd2320 100755 --- a/scripts/build +++ b/scripts/build @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash CC=${CC-`../scripts/compiler`} MAKE=${MAKE-`../scripts/make`} -- 2.17.1 ================================================ FILE: package/lmbench/0002-src-Makefile-add-lmbench-to-list-of-executables.patch ================================================ From c158a02561c64d0cd236f86db24cc20d0378eb72 Mon Sep 17 00:00:00 2001 From: Markus Mayer Date: Thu, 13 Jun 2019 12:28:54 -0700 Subject: [PATCH] src/Makefile: add lmbench to list of executables We want to install the lmbench script along with the other executables, so we add it to the appropriate list. Signed-off-by: Markus Mayer --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 4962815b5fe7..70dbc6794898 100644 --- a/src/Makefile +++ b/src/Makefile @@ -98,7 +98,7 @@ EXES = $O/bw_file_rd $O/bw_mem $O/bw_mmap_rd $O/bw_pipe $O/bw_tcp \ $O/lat_select $O/lat_pipe $O/lat_rpc $O/lat_syscall $O/lat_tcp \ $O/lat_udp $O/lat_mmap $O/mhz $O/lat_proc $O/lat_pagefault \ $O/lat_connect $O/lat_fs $O/lat_sig $O/lat_mem_rd $O/lat_ctx \ - $O/lat_sem \ + $O/lat_sem $O/lmbench \ $O/memsize $O/lat_unix $O/lmdd $O/timing_o $O/enough \ $O/msleep $O/loop_o $O/lat_fifo $O/lmhttp $O/lat_http \ $O/lat_fcntl $O/disk $O/lat_unix_connect $O/flushdisk \ -- 2.17.1 ================================================ FILE: package/lmbench/0003-TOO_LONG-100-usec-to-prevent-memsize-from-timingout-.patch ================================================ From d85b61666aa2728f68b69d02bfb162c432df709f Mon Sep 17 00:00:00 2001 From: vgupta Date: Sat, 3 Mar 2012 10:02:24 +0000 Subject: [PATCH] TOO_LONG 100 usec to prevent memsize from timingout @80Mhz git-svn-id: http://sjvm-subversion02.internal.synopsys.com/svn/OSS/ARC_Linux/tests/lmbench-3.0-a9@157318 4eed8e25-bc12-0410-818a-f70ee6866280 Signed-off-by: Vineet Gupta --- src/memsize.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/memsize.c b/src/memsize.c index eb25a0924872..b333cf8cbd32 100644 --- a/src/memsize.c +++ b/src/memsize.c @@ -15,7 +15,7 @@ char *id = "$Id$\n"; #define CHK(x) if ((x) == -1) { perror("x"); exit(1); } #ifndef TOO_LONG -#define TOO_LONG 10 /* usecs */ +#define TOO_LONG 100 /* usecs */ #endif int alarm_triggered = 0; -- 2.25.1 ================================================ FILE: package/lmbench/0004-Fix-garbage-pointer-for-lat_rpc-S-localhost.patch ================================================ From 3830453a06269912d2772fe8c31bae44f27bb131 Mon Sep 17 00:00:00 2001 From: Vineet Gupta Date: Fri, 8 May 2015 11:35:58 +0530 Subject: [PATCH] Fix garbage pointer for lat_rpc -S localhost Signed-off-by: Vineet Gupta --- src/lat_rpc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lat_rpc.c b/src/lat_rpc.c index 9c021926d761..ff4380ff38f3 100644 --- a/src/lat_rpc.c +++ b/src/lat_rpc.c @@ -101,6 +101,7 @@ main(int ac, char **av) char *usage = "-s\n OR [-p ] [-P parallel] [-W ] [-N ] serverhost\n OR -S serverhost\n"; state.msize = 1; + state.server = NULL; while (( c = getopt(ac, av, "sS:m:p:P:W:N:")) != EOF) { switch(c) { -- 2.25.1 ================================================ FILE: package/lmbench/Config.in ================================================ config BR2_PACKAGE_LMBENCH bool "lmbench" depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_TOOLCHAIN_HAS_THREADS # libtirpc depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC help LMbench is a suite of simple, portable, ANSI/C microbenchmarks for UNIX/POSIX. http://sourceforge.net/projects/lmbench/ comment "lmbench needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !(BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_HAS_NATIVE_RPC) ================================================ FILE: package/lmbench/lmbench.hash ================================================ # Locally computed: sha256 cbd5777d15f44eab7666dcac418054c3c09df99826961a397d9acf43d8a2a551 lmbench-3.0-a9.tgz sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING sha256 3be7a155efa448db90071a95fbf81796f8f90edf9204f0463cfd23402dc90a72 COPYING-2 ================================================ FILE: package/lmbench/lmbench.mk ================================================ ################################################################################ # # lmbench # ################################################################################ LMBENCH_VERSION = 3.0-a9 LMBENCH_SOURCE = lmbench-$(LMBENCH_VERSION).tgz LMBENCH_SITE = http://downloads.sourceforge.net/project/lmbench/development/lmbench-$(LMBENCH_VERSION) LMBENCH_LICENSE = lmbench license (based on GPL-2.0) LMBENCH_LICENSE_FILES = COPYING COPYING-2 LMBENCH_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_PACKAGE_LIBTIRPC),y) LMBENCH_DEPENDENCIES += host-pkgconf libtirpc LMBENCH_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc` LMBENCH_LDLIBS = `$(PKG_CONFIG_HOST_BINARY) --libs libtirpc` endif ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_101915),y) LMBENCH_CFLAGS += -O0 endif LMBENCH_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK define LMBENCH_CONFIGURE_CMDS sed -i 's/CFLAGS=/CFLAGS+=/g' $(@D)/src/Makefile sed -i 's/LDLIBS=/LDLIBS+=/g' $(@D)/scripts/build sed -i '/cd .*doc/d' $(@D)/src/Makefile sed -i '/include/d' $(@D)/src/Makefile touch $@ endef # Note: there is a second stage 'make' invocation from the 'scripts/build' # script. So the variables override below don't take direct effect in # src/Makefile. define LMBENCH_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CFLAGS="$(LMBENCH_CFLAGS)" LDLIBS="$(LMBENCH_LDLIBS)" OS=$(ARCH) CC="$(TARGET_CC)" -C $(@D)/src endef define LMBENCH_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) CFLAGS="$(TARGET_CFLAGS)" OS=$(ARCH) CC="$(TARGET_CC)" BASE=$(TARGET_DIR)/usr -C $(@D)/src install endef $(eval $(generic-package)) ================================================ FILE: package/localedef/2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/0001-HACK-only-build-and-install-localedef.patch ================================================ From 442e9a3f262c49cf61f9e7bdf12882f0a427666b Mon Sep 17 00:00:00 2001 From: Michael Olbrich Date: Mon, 21 May 2018 16:45:02 +0200 Subject: [PATCH] HACK: only build and install localedef Signed-off-by: Michael Olbrich Upstream: https://git.pengutronix.de/cgit/ptxdist/plain/patches/localedef-glibc-2.27/0001-HACK-only-build-and-install-localedef.patch?id=47116f66f411d4dadfce42c2fdd6d41b351ccfd4 Signed-off-by: Peter Seiderer --- Rules | 14 ++++++++++---- locale/Makefile | 6 +++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Rules b/Rules index b1137afe71..2aeac31922 100644 --- a/Rules +++ b/Rules @@ -216,10 +216,16 @@ binaries-shared-notests = $(filter-out $(binaries-pie) $(binaries-static), \ $(binaries-all-notests)) ifneq "$(strip $(binaries-shared-notests))" "" -$(addprefix $(objpfx),$(binaries-shared-notests)): %: %.o \ - $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \ - $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit) - $(+link) +$(addprefix $(objpfx),$(binaries-shared-notests)): %: %.o + $(CC) -o $@ \ + $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \ + $(combreloc-LDFLAGS) $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \ + $(filter-out $(addprefix $(csu-objpfx),start.o \ + $(start-installed-name))\ + $(+preinit) \ + $(link-extra-libs) \ + $(common-objpfx)libc% $(+postinit),$^) \ + $(link-extra-libs) endif ifneq "$(strip $(binaries-shared-tests))" "" diff --git a/locale/Makefile b/locale/Makefile index b7c60681fa..de4cf4003f 100644 --- a/locale/Makefile +++ b/locale/Makefile @@ -33,15 +33,15 @@ categories = ctype messages monetary numeric time paper name \ address telephone measurement identification collate aux = $(categories:%=lc-%) $(categories:%=C-%) SYS_libc C_name \ xlocale localename global-locale coll-lookup -others = localedef locale +others = localedef #others-static = localedef locale -install-bin = localedef locale +install-bin = localedef extra-objs = $(localedef-modules:=.o) $(localedef-aux:=.o) \ $(locale-modules:=.o) $(lib-modules:=.o) generated += C-translit.h before-compile += $(objpfx)C-translit.h -extra-libs = libBrokenLocale +#extra-libs = libBrokenLocale extra-libs-others = $(extra-libs) libBrokenLocale-routines = broken_cur_max -- 2.33.0 ================================================ FILE: package/localedef/2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/0002-relax-dependency-on-GCC-to-4.8-and-binutils-to-2.24.patch ================================================ From 85412262460f6ba9f6e2cf8da74fc1904c54c854 Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Thu, 6 Feb 2020 14:36:21 -0600 Subject: [PATCH] relax dependency on GCC to 4.8 and binutils to 2.24 The glibc package has been updating the toolchain version dependency since 2.28.x. The dependencies don't currently apply to the localedef build of the package, so this patchset relaxes the restriction such that builds can still occur on older host machines. Here's a related post from 2018 for a similar patchset. http://lists.busybox.net/pipermail/buildroot/2018-December/237949.html Timeline of relevant commits that adjust the dependency upstream. GCC 4.9+ https://sourceware.org/git/?p=glibc.git;a=commit;h=4add86749a31f302674599b69d2eea691d69341a Binutils 2.25+ https://sourceware.org/git/?p=glibc.git;a=commit;h=073e8fa7739ed453d6854b834f290c263a6cdb9f https://sourceware.org/git/?p=glibc.git;a=commit;h=b4396163aa8666f970aaf43eaca25f3a92b18c1b GCC 5+ https://sourceware.org/git/?p=glibc.git;a=commit;h=192963be49678b48f60218f1f794991cdd9fe472 GCC 6.2+ https://sourceware.org/git/?p=glibc.git;a=commit;h=4dcbbc3b28aaeafe23e1a30db84055aa6f6fa987 Signed-off-by: Matthew Weber --- configure | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 9619c10991..0c481d2339 100755 --- a/configure +++ b/configure @@ -4651,7 +4651,7 @@ $as_echo_n "checking version of $AS... " >&6; } ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*) + 2.1[0-9][0-9]*|2.2[4-9]*|2.[3-9][0-9]*|[3-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;; @@ -4781,7 +4781,7 @@ $as_echo_n "checking version of $LD... " >&6; } ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*) + 2.1[0-9][0-9]*|2.2[4-9]*|2.[3-9][0-9]*|[3-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;; @@ -5189,7 +5189,7 @@ int main () { -#if !defined __GNUC__ || __GNUC__ < 6 || (__GNUC__ == 6 && __GNUC_MINOR__ < 2) +#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) #error insufficient compiler #endif ; -- 2.33.0 ================================================ FILE: package/localedef/2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/localedef.hash ================================================ # Locally calculated (fetched from Github) sha256 1c7ed0f69ed268bd66f9754d0cb8fb65e0dafc1f9a1048ea50d1e96d60399686 glibc-2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4.tar.gz # Hashes for license files sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB sha256 b33d0bd9f685b46853548814893a6135e74430d12f6d94ab3eba42fc591f83bc LICENSES ================================================ FILE: package/localedef/localedef.hash ================================================ # This hash file is not used; instead, update the # hash files in the per-version sub-directories. ================================================ FILE: package/localedef/localedef.mk ================================================ ################################################################################ # # localedef # ################################################################################ # Use the same VERSION and SITE as target glibc # As in glibc.mk, generate version string using: # git describe --match 'glibc-*' --abbrev=40 origin/release/MAJOR.MINOR/master | cut -d '-' -f 2- LOCALEDEF_VERSION = 2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4 LOCALEDEF_SOURCE = glibc-$(LOCALEDEF_VERSION).tar.gz LOCALEDEF_SITE = $(call github,bminor,glibc,$(LOCALEDEF_VERSION)) HOST_LOCALEDEF_DL_SUBDIR = glibc HOST_LOCALEDEF_DEPENDENCIES = \ $(BR2_MAKE_HOST_DEPENDENCY) \ $(BR2_PYTHON3_HOST_DEPENDENCY) \ host-bison \ host-gawk HOST_LOCALEDEF_CONF_ENV += ac_cv_prog_MAKE="$(BR2_MAKE)" # Even though we use the autotools-package infrastructure, we have to override # the default configure commands for since we have to build out-of-tree, but we # can't use the same 'symbolic link to configure' used with the gcc packages. define HOST_LOCALEDEF_CONFIGURE_CMDS mkdir -p $(@D)/build # Do the configuration (cd $(@D)/build; \ $(HOST_LOCALEDEF_CONF_ENV) \ $(HOST_CONFIGURE_OPTS) \ $(SHELL) $(@D)/configure \ libc_cv_forced_unwind=yes \ libc_cv_ssp=no \ --target=$(GNU_HOST_NAME) \ --host=$(GNU_HOST_NAME) \ --build=$(GNU_HOST_NAME) \ --prefix=/usr \ --with-pkgversion="Buildroot" \ --without-cvs \ --disable-profile \ --without-gd \ --enable-obsolete-rpc) endef define HOST_LOCALEDEF_BUILD_CMDS $(HOST_MAKE_ENV) $(BR2_MAKE1) $(HOST_LOCALEDEF_MAKE_OPTS) \ -C $(@D)/build locale/others endef # The makefile does not implement an install target for localedef define HOST_LOCALEDEF_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/build/locale/localedef $(HOST_DIR)/bin/localedef endef $(eval $(host-autotools-package)) ================================================ FILE: package/lockdev/0001-Makefile-install-static-library-and-headers-separate.patch ================================================ From 0dcd2368c3e23a5cc1cc4a979d9c241ed9302236 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 4 Jan 2015 16:06:07 +0100 Subject: [PATCH] Makefile: install static library and headers separately Signed-off-by: Romain Naour --- Makefile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index e27dcbd..ecf52d1 100644 --- a/Makefile +++ b/Makefile @@ -45,12 +45,10 @@ perl-lib: static cd LockDev && make OPTIMIZE="-O2 -g -Wall" cd LockDev && make test -.PHONY: install install_dev install_dbg install_doc install_run -install: install_dev install_dbg install_doc install_run +.PHONY: install install_dev install_dbg install_doc install_run install_static +install: install_dev install_dbg install_doc install_run install_static -install_dev: ${static} src/lockdev.h - install -m755 -d ${libdir} - install -m644 ${static} ${libdir} +install_dev: src/lockdev.h install -m755 -d ${incdir} install -m644 src/lockdev.h ${incdir} install -m644 src/ttylock.h ${incdir} @@ -69,6 +67,10 @@ install_doc: docs/lockdev.3 install -m755 -d ${mandir}/man3 install -m644 docs/lockdev.3 ${mandir}/man3 +install_static: ${static} + install -m755 -d ${libdir} + install -m644 ${static} ${libdir} + install_run: ${shared} install -m755 -d ${libdir} install -m644 ${shared} ${libdir} -- 1.9.3 ================================================ FILE: package/lockdev/Config.in ================================================ config BR2_PACKAGE_LOCKDEV bool "lockdev" help Library for locking devices. No upstream site, primary site is Debian. ================================================ FILE: package/lockdev/lockdev.hash ================================================ # From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/l/lockdev/lockdev_1.0.3-1.6.dsc sha256 ccae635d7ac3fdd50897eceb250872b3d9a191d298f213e7f0c836910d869f82 lockdev_1.0.3.orig.tar.gz sha256 a5405c6ee5e97e45eeb1c81330a7e9f444a58bda5e6771fa30007516c115007e lockdev_1.0.3-1.6.diff.gz # Locally calculated sha256 5bbcbb737e60fe9deba08ecbd00920cfcc3403ba2e534c64fdeea49d6bb87509 LICENSE ================================================ FILE: package/lockdev/lockdev.mk ================================================ ################################################################################ # # lockdev # ################################################################################ LOCKDEV_VERSION_MAJOR = 1 LOCKDEV_VERSION = $(LOCKDEV_VERSION_MAJOR).0.3 LOCKDEV_SOURCE = lockdev_$(LOCKDEV_VERSION).orig.tar.gz LOCKDEV_PATCH = lockdev_$(LOCKDEV_VERSION)-1.6.diff.gz LOCKDEV_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/l/lockdev LOCKDEV_LICENSE = LGPL-2.1 LOCKDEV_LICENSE_FILES = LICENSE LOCKDEV_INSTALL_STAGING = YES ifeq ($(BR2_STATIC_LIBS),y) LOCKDEV_BUILD_ARGS = static LOCKDEV_INSTALL_ARGS = install_static else ifeq ($(BR2_SHARED_STATIC_LIBS),y) LOCKDEV_BUILD_ARGS = static shared LOCKDEV_INSTALL_ARGS = install_run install_static else # BR2_SHARED_LIBS LOCKDEV_BUILD_ARGS = shared LOCKDEV_INSTALL_ARGS = install_run endif # Make the code believe we are using a C library compatible with # glibc, which for the purpose of lockdev is actually true. ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) LOCKDEV_BUILD_ARGS += CFLAGS="$(TARGET_CFLAGS) -D__GNU_LIBRARY__" endif ifeq ($(BR2_SHARED_STATIC_LIBS)$(BR2_SHARED_LIBS),y) define LOCKDEV_CREATE_LINKS_STAGING ln -sf liblockdev.$(LOCKDEV_VERSION).so $(STAGING_DIR)/usr/lib/liblockdev.so ln -sf liblockdev.$(LOCKDEV_VERSION).so $(STAGING_DIR)/usr/lib/liblockdev.so.$(LOCKDEV_VERSION_MAJOR) endef define LOCKDEV_CREATE_LINKS_TARGET ln -sf liblockdev.$(LOCKDEV_VERSION).so $(TARGET_DIR)/usr/lib/liblockdev.so.$(LOCKDEV_VERSION_MAJOR) endef endif define LOCKDEV_BUILD_CMDS $(MAKE1) $(TARGET_CONFIGURE_OPTS) -C $(@D) $(LOCKDEV_BUILD_ARGS) endef define LOCKDEV_INSTALL_STAGING_CMDS $(MAKE1) basedir=$(STAGING_DIR)/usr -C $(@D) $(LOCKDEV_INSTALL_ARGS) install_dev $(LOCKDEV_CREATE_LINKS_STAGING) endef define LOCKDEV_INSTALL_TARGET_CMDS $(MAKE1) basedir=$(TARGET_DIR)/usr -C $(@D) $(LOCKDEV_INSTALL_ARGS) $(LOCKDEV_CREATE_LINKS_TARGET) endef $(eval $(generic-package)) ================================================ FILE: package/lockfile-progs/0001-sus3v-legacy.patch ================================================ --- /lockfile-progs.orig.c 2007-10-11 10:32:09.000000000 -0300 +++ /lockfile-progs.c 2007-10-11 10:32:28.000000000 -0300 @@ -93,7 +93,7 @@ { NULL, 0, NULL, 0 } }; - char *cmd_name = rindex(argv[0], '/'); + char *cmd_name = strrchr(argv[0], '/'); int mail_cmd_p = 0; if(cmd_name != NULL) { ================================================ FILE: package/lockfile-progs/Config.in ================================================ config BR2_PACKAGE_LOCKFILE_PROGS bool "lockfile programs" depends on BR2_USE_MMU # liblockfile select BR2_PACKAGE_LIBLOCKFILE help Build lockfile utility programs. ================================================ FILE: package/lockfile-progs/lockfile-progs.hash ================================================ # From https://snapshot.debian.org/archive/debian/20210903T205304Z/pool/main/l/lockfile-progs/lockfile-progs_0.1.19.dsc sha256 2c5704b01c8f474f82921780e4592a927b2bf6a6d7616354a6c5d7cd5664857e lockfile-progs_0.1.19.tar.gz # Hash for license file sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING ================================================ FILE: package/lockfile-progs/lockfile-progs.mk ================================================ ################################################################################ # # lockfile-progs # ################################################################################ LOCKFILE_PROGS_VERSION = 0.1.19 LOCKFILE_PROGS_SOURCE = lockfile-progs_$(LOCKFILE_PROGS_VERSION).tar.gz LOCKFILE_PROGS_SITE = http://snapshot.debian.org/archive/debian/20210903T205304Z/pool/main/l/lockfile-progs LOCKFILE_PROGS_DEPENDENCIES = liblockfile LOCKFILE_PROGS_LICENSE = GPL-2.0 LOCKFILE_PROGS_LICENSE_FILES = COPYING LOCKFILE_PROGS_BINS = \ $(addprefix lockfile-,check create remove touch) \ $(addprefix mail-,lock touchlock unlock) define LOCKFILE_PROGS_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define LOCKFILE_PROGS_INSTALL_TARGET_CMDS for i in $(LOCKFILE_PROGS_BINS); do \ $(INSTALL) -D -m 755 $(@D)/bin/$$i $(TARGET_DIR)/usr/bin/$$i || exit 1; \ done endef $(eval $(generic-package)) ================================================ FILE: package/log4cplus/Config.in ================================================ config BR2_PACKAGE_LOG4CPLUS bool "log4cplus" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::future help log4cplus is a simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. It is modelled after the Java log4j API. http://sourceforge.net/projects/log4cplus comment "log4cplus needs a toolchain w/ C++, wchar, threads, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 comment "log4cplus needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/log4cplus/log4cplus.hash ================================================ # Locally computed: sha256 8f74a0a5920ba044b24e2ebeb0f1e5e36d85d5c23ed48d9fe328882b16130db8 log4cplus-2.0.7.tar.xz sha256 91d7e42ff80e74c4c94e5ad353375fa0358cd0abbf43f5fe957097cdbd4e2c4d LICENSE ================================================ FILE: package/log4cplus/log4cplus.mk ================================================ ################################################################################ # # log4cplus # ################################################################################ LOG4CPLUS_VERSION = 2.0.7 LOG4CPLUS_SOURCE = log4cplus-$(LOG4CPLUS_VERSION).tar.xz LOG4CPLUS_SITE = http://downloads.sourceforge.net/project/log4cplus/log4cplus-stable/$(LOG4CPLUS_VERSION) LOG4CPLUS_LICENSE = Apache-2.0, BSD-2-Clause, BSD-like (threadpool) LOG4CPLUS_LICENSE_FILES = LICENSE LOG4CPLUS_INSTALL_STAGING = YES ifeq ($(BR2_GCC_ENABLE_LTO),y) LOG4CPLUS_CONF_OPTS += --enable-lto else LOG4CPLUS_CONF_OPTS += --disable-lto endif ifeq ($(BR2_PACKAGE_QT5BASE),y) LOG4CPLUS_DEPENDENCIES += host-pkgconf qt5base LOG4CPLUS_CONF_OPTS += --with-qt5 else LOG4CPLUS_CONF_OPTS += --without-qt5 endif $(eval $(autotools-package)) ================================================ FILE: package/log4cpp/Config.in ================================================ 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 ================================================ FILE: package/log4cpp/log4cpp.hash ================================================ # From http://sourceforge.net/projects/log4cpp/files/log4cpp-1.1.x%20%28new%29/log4cpp-1.1/ md5 b9e2cee932da987212f2c74b767b4d8b log4cpp-1.1.3.tar.gz sha1 74f0fea7931dc1bc4e5cd34a6318cd2a51322041 log4cpp-1.1.3.tar.gz # Locally computed sha256 2cbbea55a5d6895c9f0116a9a9ce3afb86df383cd05c9d6c1a4238e5e5c8f51d log4cpp-1.1.3.tar.gz sha256 a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7 log4cpp/COPYING ================================================ FILE: package/log4cpp/log4cpp.mk ================================================ ################################################################################ # # log4cpp # ################################################################################ LOG4CPP_VERSION_MAJOR = 1.1 LOG4CPP_VERSION = $(LOG4CPP_VERSION_MAJOR).3 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 = LGPL-2.1+ LOG4CPP_LICENSE_FILES = log4cpp/COPYING LOG4CPP_INSTALL_STAGING = YES LOG4CPP_CONF_OPTS = --enable-doxygen=no --enable-dot=no # needed to fix broken configure script LOG4CPP_AUTORECONF = YES LOG4CPP_AUTORECONF_OPTS = -I m4 # 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)) ================================================ FILE: package/log4cxx/0001-LOGCXX-528.patch ================================================ From 249dd85494a430d95fd69d89f42b02fd950cda51 Mon Sep 17 00:00:00 2001 From: Robert Middleton Date: Thu, 22 Jul 2021 15:27:50 -0700 Subject: [PATCH] LOGCXX-528 (#66) Fixes for checking that C++11 is available. Fix for older compilers. [Retrieved from: https://github.com/apache/logging-log4cxx/commit/249dd85494a430d95fd69d89f42b02fd950cda51] Signed-off-by: Fabrice Fontaine --- CMakeLists.txt | 10 +++++++++ src/cmake/boost-fallback/boost-fallback.cmake | 21 ++++++++++--------- src/main/cpp/hierarchy.cpp | 4 ++-- src/main/include/CMakeLists.txt | 2 +- .../log4cxx/helpers/appenderattachableimpl.h | 1 + .../include/log4cxx/helpers/aprinitializer.h | 1 + src/main/include/log4cxx/helpers/loglog.h | 1 + .../include/log4cxx/helpers/serversocket.h | 1 + src/main/include/log4cxx/level.h | 1 + src/main/include/log4cxx/rolling/action.h | 1 + 10 files changed, 30 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e5b44ef1a..9c6e63902 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,9 @@ if( NOT "${CMAKE_CXX_STANDARD}") set(CMAKE_CXX_STANDARD 17) endif() +# Don't allow for compiler-specific extensions +set(CMAKE_CXX_EXTENSIONS OFF) + # Building add_subdirectory(src) @@ -185,6 +188,13 @@ if(APACHE_MAINTAINER) ) endif() +# +# Check for any fatal configuration errors +# +if( "${SHARED_MUTEX_IMPL}" STREQUAL "NONE" ) + message( FATAL_ERROR "No shared_mutex implementation found. Requires Boost or C++17" ) +endif() + # # Output configuration information # Similar to APR CMake configuration diff --git a/src/cmake/boost-fallback/boost-fallback.cmake b/src/cmake/boost-fallback/boost-fallback.cmake index a8d7d441b..8285b0b99 100644 --- a/src/cmake/boost-fallback/boost-fallback.cmake +++ b/src/cmake/boost-fallback/boost-fallback.cmake @@ -56,16 +56,17 @@ try_compile(STD_ATOMIC_FOUND "${CMAKE_BINARY_DIR}/boost-fallback-compile-tests" "${CMAKE_CURRENT_LIST_DIR}/test-stdatomic.cpp") find_package(Boost COMPONENTS thread) -try_compile(Boost_SHARED_PTR_FOUND "${CMAKE_BINARY_DIR}/boost-fallback-compile-tests" - "${CMAKE_CURRENT_LIST_DIR}/test-boostsharedptr.cpp") -try_compile(Boost_MUTEX_FOUND "${CMAKE_BINARY_DIR}/boost-fallback-compile-tests" - "${CMAKE_CURRENT_LIST_DIR}/test-boostmutex.cpp") -try_compile(Boost_SHARED_MUTEX_FOUND "${CMAKE_BINARY_DIR}/boost-fallback-compile-tests" - "${CMAKE_CURRENT_LIST_DIR}/test-boostsharedmutex.cpp" - LINK_LIBRARIES Threads::Threads -) -try_compile(Boost_ATOMIC_FOUND "${CMAKE_BINARY_DIR}/boost-fallback-compile-tests" - "${CMAKE_CURRENT_LIST_DIR}/test-boostatomic.cpp") +if( ${Boost_FOUND} ) + try_compile(Boost_SHARED_PTR_FOUND "${CMAKE_BINARY_DIR}/boost-fallback-compile-tests" + "${CMAKE_CURRENT_LIST_DIR}/test-boostsharedptr.cpp") + try_compile(Boost_MUTEX_FOUND "${CMAKE_BINARY_DIR}/boost-fallback-compile-tests" + "${CMAKE_CURRENT_LIST_DIR}/test-boostmutex.cpp") + try_compile(Boost_SHARED_MUTEX_FOUND "${CMAKE_BINARY_DIR}/boost-fallback-compile-tests" + "${CMAKE_CURRENT_LIST_DIR}/test-boostsharedmutex.cpp" + LINK_LIBRARIES Threads::Threads Boost::thread) + try_compile(Boost_ATOMIC_FOUND "${CMAKE_BINARY_DIR}/boost-fallback-compile-tests" + "${CMAKE_CURRENT_LIST_DIR}/test-boostatomic.cpp") +endif( ${Boost_FOUND} ) # Link the target with the appropriate boost libraries(if required) function(boostfallback_link target) diff --git a/src/main/cpp/hierarchy.cpp b/src/main/cpp/hierarchy.cpp index 4f5174448..c70d39dbb 100644 --- a/src/main/cpp/hierarchy.cpp +++ b/src/main/cpp/hierarchy.cpp @@ -223,7 +223,7 @@ LoggerPtr Hierarchy::getLogger(const LogString& name, else { LoggerPtr logger(factory->makeNewLoggerInstance(pool, name)); - logger->setHierarchy(weak_from_this()); + logger->setHierarchy(shared_from_this()); loggers->insert(LoggerMap::value_type(name, logger)); ProvisionNodeMap::iterator it2 = provisionNodes->find(name); @@ -423,6 +423,6 @@ void Hierarchy::configureRoot(){ // LOGCXX-322 we need to turn the repositroy into a weak_ptr, and we // can't use weak_from_this() in the constructor. if( !root->getLoggerRepository().lock() ){ - root->setHierarchy(weak_from_this()); + root->setHierarchy(shared_from_this()); } } diff --git a/src/main/include/CMakeLists.txt b/src/main/include/CMakeLists.txt index 8183660a5..584941c97 100644 --- a/src/main/include/CMakeLists.txt +++ b/src/main/include/CMakeLists.txt @@ -133,7 +133,7 @@ if( ${STD_SHARED_MUTEX_FOUND} ) elseif( ${Boost_SHARED_MUTEX_FOUND} ) set( SHARED_MUTEX_IMPL "boost::shared_mutex" ) else() - set( SMART_PTR_IMPL "NONE" ) + set( SHARED_MUTEX_IMPL "NONE" ) endif() if( ${STD_ATOMIC_FOUND} ) diff --git a/src/main/include/log4cxx/helpers/appenderattachableimpl.h b/src/main/include/log4cxx/helpers/appenderattachableimpl.h index 40e77d93c..b80b5aade 100644 --- a/src/main/include/log4cxx/helpers/appenderattachableimpl.h +++ b/src/main/include/log4cxx/helpers/appenderattachableimpl.h @@ -28,6 +28,7 @@ #include #include #include +#include namespace log4cxx { diff --git a/src/main/include/log4cxx/helpers/aprinitializer.h b/src/main/include/log4cxx/helpers/aprinitializer.h index 6f3f55070..fccd18e0f 100644 --- a/src/main/include/log4cxx/helpers/aprinitializer.h +++ b/src/main/include/log4cxx/helpers/aprinitializer.h @@ -30,6 +30,7 @@ extern "C" { } #include +#include namespace log4cxx { diff --git a/src/main/include/log4cxx/helpers/loglog.h b/src/main/include/log4cxx/helpers/loglog.h index d54785ddc..a4c92416a 100644 --- a/src/main/include/log4cxx/helpers/loglog.h +++ b/src/main/include/log4cxx/helpers/loglog.h @@ -20,6 +20,7 @@ #include #include +#include namespace log4cxx { diff --git a/src/main/include/log4cxx/helpers/serversocket.h b/src/main/include/log4cxx/helpers/serversocket.h index e6e6d475e..7da75b969 100644 --- a/src/main/include/log4cxx/helpers/serversocket.h +++ b/src/main/include/log4cxx/helpers/serversocket.h @@ -19,6 +19,7 @@ #define _LOG4CXX_HELPERS_SERVER_SOCKET_H #include +#include namespace log4cxx { diff --git a/src/main/include/log4cxx/level.h b/src/main/include/log4cxx/level.h index 4ca4bf28c..7848c902a 100644 --- a/src/main/include/log4cxx/level.h +++ b/src/main/include/log4cxx/level.h @@ -22,6 +22,7 @@ #include #include #include +#include #if defined(_MSC_VER) #pragma warning ( push ) diff --git a/src/main/include/log4cxx/rolling/action.h b/src/main/include/log4cxx/rolling/action.h index 0e8d55f36..fc4497813 100644 --- a/src/main/include/log4cxx/rolling/action.h +++ b/src/main/include/log4cxx/rolling/action.h @@ -21,6 +21,7 @@ #include #include #include +#include namespace log4cxx { ================================================ FILE: package/log4cxx/Config.in ================================================ config BR2_PACKAGE_LOG4CXX bool "log4cxx" # apr really needs shared library support depends on !BR2_STATIC_LIBS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # apr depends on BR2_USE_WCHAR || BR2_TOOLCHAIN_GCC_AT_LEAST_7 # boost depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS || BR2_TOOLCHAIN_GCC_AT_LEAST_7 # boost-thread depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 || BR2_TOOLCHAIN_GCC_AT_LEAST_7 # boost-thread select BR2_PACKAGE_APR select BR2_PACKAGE_APR_UTIL select BR2_PACKAGE_BOOST if !BR2_TOOLCHAIN_GCC_AT_LEAST_7 select BR2_PACKAGE_BOOST_ATOMIC if !BR2_TOOLCHAIN_GCC_AT_LEAST_7 select BR2_PACKAGE_BOOST_CHRONO if !BR2_TOOLCHAIN_GCC_AT_LEAST_7 select BR2_PACKAGE_BOOST_DATE_TIME if !BR2_TOOLCHAIN_GCC_AT_LEAST_7 select BR2_PACKAGE_BOOST_THREAD if !BR2_TOOLCHAIN_GCC_AT_LEAST_7 help Apache log4cxx is a logging framework for C++ patterned after Apache log4j. https://logging.apache.org/log4cxx/ comment "log4cxx needs a toolchain w/ C++, threads, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS depends on BR2_USE_MMU comment "log4cxx needs a toolchain w/ wchar or gcc >= 7" depends on !(BR2_USE_WCHAR || BR2_TOOLCHAIN_GCC_AT_LEAST_7) depends on BR2_USE_MMU comment "log4cxx needs a toolchain not affected by GCC bug 64735" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_7 depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/log4cxx/log4cxx.hash ================================================ # From https://www.apache.org/dist/logging/log4cxx/0.12.0/apache-log4cxx-0.12.0.tar.gz.sha512 sha512 00fe571f9c511bf93b17cac8269ce00f7e817e8d723acf62bddff1bbe0e7facd0ab2fd75c01a93870f7e5c66718b2b73fc22c5f193bfd204e34d052b1123e60d apache-log4cxx-0.12.0.tar.gz # Locally computed sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/log4cxx/log4cxx.mk ================================================ ################################################################################ # # log4cxx # ################################################################################ LOG4CXX_VERSION = 0.12.0 LOG4CXX_SITE = http://archive.apache.org/dist/logging/log4cxx/$(LOG4CXX_VERSION) LOG4CXX_SOURCE = apache-log4cxx-$(LOG4CXX_VERSION).tar.gz LOG4CXX_INSTALL_STAGING = YES LOG4CXX_LICENSE = Apache-2.0 LOG4CXX_LICENSE_FILES = LICENSE LOG4CXX_CONF_OPTS = \ -DAPR_CONFIG_EXECUTABLE=$(STAGING_DIR)/usr/bin/apr-1-config \ -DAPR_UTIL_CONFIG_EXECUTABLE=$(STAGING_DIR)/usr/bin/apu-1-config LOG4CXX_DEPENDENCIES = apr apr-util ifeq ($(BR2_PACKAGE_BOOST),y) LOG4CXX_DEPENDENCIES += boost endif ifeq ($(BR2_PACKAGE_LIBESMTP),y) LOG4CXX_DEPENDENCIES += libesmtp endif ifeq ($(BR2_USE_WCHAR),y) LOG4CXX_CONF_OPTS += -DLOG4CXX_WCHAR_T=ON else LOG4CXX_CONF_OPTS += -DLOG4CXX_WCHAR_T=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/log4qt/Config.in ================================================ config BR2_PACKAGE_LOG4QT bool "log4qt" depends on BR2_PACKAGE_QT5 help Log4Qt is a C++ port of the Apache Software Foundation Log4j package using the Qt Framework. It is intended to be used by open source and commercial Qt projects. https://github.com/MEONMedical/Log4Qt comment "log4qt needs qt5" depends on !BR2_PACKAGE_QT5 ================================================ FILE: package/log4qt/log4qt.hash ================================================ # Locally computed: sha256 ff17b794ca7d5290a150a53f6272e6a30a7f4d942aa58298a8328bf10a65858a log4qt-1.5.1.tar.gz sha256 c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08 LICENSE ================================================ FILE: package/log4qt/log4qt.mk ================================================ ################################################################################ # # log4qt # ################################################################################ LOG4QT_VERSION = 1.5.1 LOG4QT_SITE = $(call github,MEONMedical,Log4Qt,v$(LOG4QT_VERSION)) LOG4QT_DEPENDENCIES = qt5base LOG4QT_LICENSE = Apache-2.0 LOG4QT_LICENSE_FILES = LICENSE LOG4QT_INSTALL_STAGING = YES # Uses __atomic_fetch_add_4 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) LOG4QT_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif ifeq ($(BR2_PACKAGE_QT5BASE_SQLITE_QT)$(BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM),y) LOG4QT_CONF_OPTS += -DBUILD_WITH_DB_LOGGING=ON else LOG4QT_CONF_OPTS += -DBUILD_WITH_DB_LOGGING=OFF endif ifeq ($(BR2_PACKAGE_QT5BASE_NETWORK),y) LOG4QT_CONF_OPTS += -DBUILD_WITH_TELNET_LOGGING=ON else LOG4QT_CONF_OPTS += -DBUILD_WITH_TELNET_LOGGING=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/logrotate/Config.in ================================================ config BR2_PACKAGE_LOGROTATE bool "logrotate" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() select BR2_PACKAGE_POPT help A simple program to rotate logs. https://github.com/logrotate/logrotate comment "logrotate needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR ================================================ FILE: package/logrotate/logrotate.conf ================================================ compress include /etc/logrotate.d /var/log/messages /var/log/auth.log /var/log/user.log { rotate 7 daily delaycompress missingok sharedscripts postrotate /usr/bin/killall -HUP syslogd endscript } ================================================ FILE: package/logrotate/logrotate.hash ================================================ # Locally calculated sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 841f81bf09d0014e4a2e11af166bb33fcd8429cc0c2d4a7d3d9ceb3858cfccc5 logrotate-3.18.0.tar.xz ================================================ FILE: package/logrotate/logrotate.mk ================================================ ################################################################################ # # logrotate # ################################################################################ LOGROTATE_VERSION = 3.18.0 LOGROTATE_SOURCE = logrotate-3.18.0.tar.xz LOGROTATE_SITE = https://github.com/logrotate/logrotate/releases/download/$(LOGROTATE_VERSION) LOGROTATE_LICENSE = GPL-2.0+ LOGROTATE_LICENSE_FILES = COPYING LOGROTATE_CPE_ID_VENDOR = logrotate_project LOGROTATE_DEPENDENCIES = popt host-pkgconf LOGROTATE_SELINUX_MODULES = logrotate LOGROTATE_CONF_ENV = LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs popt`" ifeq ($(BR2_PACKAGE_LIBSELINUX),y) LOGROTATE_CONF_OPTS += --with-selinux LOGROTATE_DEPENDENCIES += libselinux else LOGROTATE_CONF_OPTS += --without-selinux endif ifeq ($(BR2_PACKAGE_ACL),y) LOGROTATE_DEPENDENCIES += acl LOGROTATE_CONF_OPTS += --with-acl else LOGROTATE_CONF_OPTS += --without-acl endif define LOGROTATE_INSTALL_TARGET_CONF $(INSTALL) -m 0644 package/logrotate/logrotate.conf $(TARGET_DIR)/etc/logrotate.conf $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/logrotate.d endef LOGROTATE_POST_INSTALL_TARGET_HOOKS += LOGROTATE_INSTALL_TARGET_CONF $(eval $(autotools-package)) ================================================ FILE: package/logsurfer/Config.in ================================================ config BR2_PACKAGE_LOGSURFER bool "logsurfer" depends on BR2_USE_MMU # fork() help Logsurfer is a program for monitoring system logs in real-time, and reporting on the occurrence of events. http://www.crypt.gen.nz/logsurfer/ ================================================ FILE: package/logsurfer/logsurfer.hash ================================================ # From https://www.crypt.gen.nz/logsurfer/ md5 4c26a74d813ccf766117c95c644aa601 logsurfer-1.8.tar.gz sha256 74a36e8530a884031b4ae2344a46b9aaa07a1ee36d143802f6b64f817c5bd1af logsurfer-1.8.tar.gz ================================================ FILE: package/logsurfer/logsurfer.mk ================================================ ################################################################################ # # logsurfer # ################################################################################ LOGSURFER_VERSION = 1.8 LOGSURFER_SITE = http://downloads.sourceforge.net/project/logsurfer/logsurfer/logsurfer-$(LOGSURFER_VERSION) define LOGSURFER_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/src/logsurfer \ $(TARGET_DIR)/usr/bin/logsurfer endef $(eval $(autotools-package)) ================================================ FILE: package/lpc3250loader/Config.in.host ================================================ config BR2_PACKAGE_HOST_LPC3250LOADER bool "host lpc3250loader" help lpc3250loader is a tool to load/burn programs (in particular kickstart and S1L) on an LPC3250 platform. https://github.com/alexandrebelloni/lpc3250loader ================================================ FILE: package/lpc3250loader/lpc3250loader.hash ================================================ # Locally calculated sha256 267de7541c92e5b007b93c660a41188976d531a3757f4ffd9b7142d3994da7d1 lpc3250loader-1.0.tar.gz sha256 9a817497240e8e92f09ccfec7568a74673dc30ec008b541c8706663677b4e7a9 LPC3250loader.py ================================================ FILE: package/lpc3250loader/lpc3250loader.mk ================================================ ################################################################################ # # lpc3250loader # ################################################################################ HOST_LPC3250LOADER_VERSION = 1.0 HOST_LPC3250LOADER_SITE = $(call github,alexandrebelloni,lpc3250loader,$(HOST_LPC3250LOADER_VERSION)) LPC3250LOADER_LICENSE = GPL-2.0+ LPC3250LOADER_LICENSE_FILES = LPC3250loader.py define HOST_LPC3250LOADER_INSTALL_CMDS $(INSTALL) -m 0755 -D $(@D)/LPC3250loader.py \ $(HOST_DIR)/bin/LPC3250loader.py endef $(eval $(host-generic-package)) ================================================ FILE: package/lpeg/Config.in ================================================ config BR2_PACKAGE_LPEG bool "lpeg" help LPeg is a new pattern-matching library for Lua, based on Parsing Expression Grammars (PEGs). http://www.inf.puc-rio.br/~roberto/lpeg.html ================================================ FILE: package/lpeg/lpeg.hash ================================================ # computed by luarocks/buildroot sha256 e0d0d687897f06588558168eeb1902ac41a11edd1b58f1aa61b99d0ea0abbfbc lpeg-1.0.2-1.src.rock ================================================ FILE: package/lpeg/lpeg.mk ================================================ ################################################################################ # # lpeg # ################################################################################ LPEG_VERSION = 1.0.2-1 LPEG_LICENSE = MIT $(eval $(luarocks-package)) ================================================ FILE: package/lpty/Config.in ================================================ config BR2_PACKAGE_LPTY bool "lpty" help A simple facility for lua to control other programs via PTYs. http://www.tset.de/lpty/ ================================================ FILE: package/lpty/lpty.hash ================================================ # computed by luarocks/buildroot sha256 cf263ece9b50a78a7fb2277e3546fbbf0bf6858f41821932d92f2e3d8a065091 lpty-1.0.1-1.src.rock sha256 c5a128a73cad5f6e111ebd8f4a9fa3500562c57912972eb15627db9610d43dec lpty-1.0.1-1/doc/LICENSE ================================================ FILE: package/lpty/lpty.mk ================================================ ################################################################################ # # lpty # ################################################################################ LPTY_VERSION = 1.0.1-1 LPTY_SUBDIR = lpty-$(LPTY_VERSION) LPTY_LICENSE = MIT LPTY_LICENSE_FILES = $(LPTY_SUBDIR)/doc/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lrandom/Config.in ================================================ config BR2_PACKAGE_LRANDOM bool "lrandom" help A library for generating random numbers based on the Mersenne Twister http://www.tecgraf.puc-rio.br/~lhf/ftp/lua/#lrandom ================================================ FILE: package/lrandom/lrandom.hash ================================================ # computed by luarocks/buildroot sha256 9b77af41202feb38b09cb4a99cd49680ea9dbc9df3e640f801be378dd286eab8 lrandom-20180729-1.src.rock ================================================ FILE: package/lrandom/lrandom.mk ================================================ ################################################################################ # # lrandom # ################################################################################ LRANDOM_VERSION = 20180729-1 LRANDOM_SUBDIR = lrandom-100 LRANDOM_LICENSE = MIT $(eval $(luarocks-package)) ================================================ FILE: package/lrzip/Config.in ================================================ config BR2_PACKAGE_LRZIP bool "lrzip" depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_ZLIB select BR2_PACKAGE_LZ4 select BR2_PACKAGE_LZO select BR2_PACKAGE_BZIP2 help A compression utility that excels at compressing large files (usually > 10-50 MB). Larger files and/or more free RAM means that the utility will be able to more effectively compress your files (ie: faster / smaller size), especially if the filesize(s) exceed 100 MB. You can either choose to optimise for speed (fast compression / decompression) or size, but not both. https://github.com/ckolivas/lrzip comment "lrzip needs a toolchain w/ wchar, threads, C++" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/lrzip/lrzip.hash ================================================ # Locally computed: sha256 9b6b4bb1ae76dafbaab96ec9d50d41af5fed45a6c4f2e06feea828c2cd8025c0 lrzip-0.641.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/lrzip/lrzip.mk ================================================ ################################################################################ # # lrzip # ################################################################################ LRZIP_VERSION = 0.641 LRZIP_SITE = $(call github,ckolivas,lrzip,v$(LRZIP_VERSION)) LRZIP_AUTORECONF = YES LRZIP_LICENSE = GPL-2.0+ LRZIP_LICENSE_FILES = COPYING LRZIP_DEPENDENCIES = zlib lz4 lzo bzip2 ifeq ($(BR2_i386)$(BR2_x86_64),y) LRZIP_DEPENDENCIES += host-nasm LRZIP_CONF_OPTS += --enable-asm else LRZIP_CONF_OPTS += --disable-asm endif $(eval $(autotools-package)) ================================================ FILE: package/lrzsz/Config.in ================================================ config BR2_PACKAGE_LRZSZ bool "lrzsz" # It could technically build in a static-only environment, but # it unconditionally redefines the error() and error_at_line() # functions, which clashes with the definition from # uClibc. Since the autotools packaging dates back from 1998, # lots of work is needed to fix it, and do some proper tests # on the availability of such functions. depends on !BR2_STATIC_LIBS help Portable and fast implementation of the X/Y/Zmodem protocols. http://www.ohse.de/uwe/software/lrzsz.html comment "lrzsz needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/lrzsz/lrzsz.hash ================================================ # Locally calculated sha256 c28b36b14bddb014d9e9c97c52459852f97bd405f89113f30bee45ed92728ff1 lrzsz-0.12.20.tar.gz sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING ================================================ FILE: package/lrzsz/lrzsz.mk ================================================ ################################################################################ # # lrzsz # ################################################################################ LRZSZ_VERSION = 0.12.20 LRZSZ_SITE = http://www.ohse.de/uwe/releases LRZSZ_CONF_OPTS = --disable-timesync LRZSZ_LICENSE = GPL-2.0+ LRZSZ_LICENSE_FILES = COPYING LRZSZ_CPE_ID_VENDOR = lrzsz_project LRZSZ_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) LRZSZ_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) define LRZSZ_POST_CONFIGURE_HOOKS $(SED) "s/-lnsl//;" $(@D)/src/Makefile $(SED) "s~\(#define ENABLE_SYSLOG.*\)~/* \1 */~;" $(@D)/config.h endef define LRZSZ_BUILD_HOOKS $(TARGET_MAKE_ENV) $(MAKE) CROSS_COMPILE="$(TARGET_CROSS)" prefix="$(TARGET_DIR)" -C $(@D) endef define LRZSZ_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/src/lrz $(TARGET_DIR)/usr/bin/rz $(INSTALL) -m 0755 -D $(@D)/src/lsz $(TARGET_DIR)/usr/bin/sz ln -sf rz $(TARGET_DIR)/usr/bin/lrz ln -sf sz $(TARGET_DIR)/usr/bin/lsz ln -sf rz $(TARGET_DIR)/usr/bin/rb ln -sf sz $(TARGET_DIR)/usr/bin/sb ln -sf rz $(TARGET_DIR)/usr/bin/rx ln -sf sz $(TARGET_DIR)/usr/bin/sx endef $(eval $(autotools-package)) ================================================ FILE: package/lshw/0001-Fix-musl-build-basename-is-in-libgen.h.patch ================================================ From 6bc5abf99ef01e5aeea4f5bce5f5bff7f1b8ddd9 Mon Sep 17 00:00:00 2001 From: Sergio Prado Date: Sat, 4 Jul 2020 20:02:53 -0300 Subject: [PATCH] Fix musl build: basename() is in libgen.h. Also, its argument is not const, so add const_cast. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Sergio Prado --- src/core/sysfs.cc | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc index 32d65642f157..c2fa84fe8d0f 100644 --- a/src/core/sysfs.cc +++ b/src/core/sysfs.cc @@ -16,6 +16,7 @@ #include #include #include +#include __ID("@(#) $Id$"); @@ -100,7 +101,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); @@ -140,7 +141,7 @@ static string sysfstobusinfo(const string & path) if (bustype == "usb") { - string name = basename(path.c_str()); + string name = basename(const_cast(path.c_str())); if (matches(name, "^[0-9]+-[0-9]+(\\.[0-9]+)*:[0-9]+\\.[0-9]+$")) { size_t colon = name.rfind(":"); @@ -151,7 +152,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 @@ -159,10 +160,10 @@ static string sysfstobusinfo(const string & path) } if (bustype == "vio") - return string("vio@") + basename(path.c_str()); + return string("vio@") + basename(const_cast(path.c_str())); if (bustype == "ccw") - return string("ccw@") + basename(path.c_str()); + return string("ccw@") + basename(const_cast(path.c_str())); if (bustype == "ccwgroup") { @@ -240,7 +241,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())); } @@ -328,7 +329,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())); } @@ -340,12 +341,12 @@ entry entry::parent() const string entry::classname() const { - return basename(dirname(This->devpath).c_str()); + return basename(const_cast(dirname(This->devpath).c_str())); } bool entry::isvirtual() const { - return string(basename(dirname(dirname(This->devpath)).c_str())) == "virtual"; + return string(basename(const_cast(dirname(dirname(This->devpath)).c_str()))) == "virtual"; } string entry::string_attr(const string & name, const string & def) const -- 2.17.1 ================================================ FILE: package/lshw/0002-Fix-musl-build-wrong-usage-of-LONG_BIT.patch ================================================ From 246b9e07f22d551fae0718315273760c087b79ca Mon Sep 17 00:00:00 2001 From: Sergio Prado Date: Sat, 4 Jul 2020 20:28:26 -0300 Subject: [PATCH] Fix musl build: wrong usage 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: Sergio Prado Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- src/core/abi.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/core/abi.cc b/src/core/abi.cc index adff7b55acfa..76c664c03ce7 100644 --- a/src/core/abi.cc +++ b/src/core/abi.cc @@ -20,9 +20,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 ? - long sc = sysconf(LONG_BIT); - if(sc==-1) sc = sysconf(_SC_LONG_BIT); - if(sc!=-1) system.setWidth(sc); + system.setWidth(LONG_BIT); pushd(PROC_SYS); -- 2.17.1 ================================================ FILE: package/lshw/Config.in ================================================ config BR2_PACKAGE_LSHW bool "lshw" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR select BR2_PACKAGE_HWDATA # runtime select BR2_PACKAGE_HWDATA_PCI_IDS select BR2_PACKAGE_HWDATA_USB_IDS help lshw (Hardware Lister) is a small tool to provide detailed information on the hardware configuration of the machine. http://ezix.org/project/wiki/HardwareLiSter comment "lshw needs a toolchain w/ C++, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR ================================================ FILE: package/lshw/lshw.hash ================================================ # Locally calculated sha256 9bb347ac87142339a366a1759ac845e3dbb337ec000aa1b99b50ac6758a80f80 lshw-B.02.19.2.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/lshw/lshw.mk ================================================ ################################################################################ # # lshw # ################################################################################ LSHW_VERSION = 02.19.2 LSHW_SITE = http://ezix.org/software/files LSHW_SOURCE = lshw-B.$(LSHW_VERSION).tar.gz LSHW_LICENSE = GPL-2.0 LSHW_LICENSE_FILES = COPYING LSHW_MAKE_OPTS = CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" AR="$(TARGET_AR)" \ RPM_OPT_FLAGS="$(TARGET_CFLAGS)" all LSHW_MAKE_ENV = \ $(TARGET_MAKE_ENV) \ LIBS=$(TARGET_NLS_LIBS) LSHW_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) define LSHW_BUILD_CMDS $(LSHW_MAKE_ENV) $(MAKE) -C $(@D)/src $(LSHW_MAKE_OPTS) endef define LSHW_INSTALL_TARGET_CMDS $(LSHW_MAKE_ENV) $(MAKE) -C $(@D)/src DESTDIR=$(TARGET_DIR) \ $(LSHW_MAKE_OPTS) install $(RM) -rf $(TARGET_DIR)/usr/share/lshw endef $(eval $(generic-package)) ================================================ FILE: package/lsof/0001-makefile.patch ================================================ diff -ru lsof_4.81.orig/lsof_4.81_src/lib/Makefile.skel lsof_4.81/lsof_4.81_src/lib/Makefile.skel --- a/lib/Makefile.skel 2001-02-13 03:12:22.000000000 +0100 +++ b/lib/Makefile.skel 2006-11-29 13:51:44.000000000 +0100 @@ -21,8 +21,8 @@ all: ${LIB} ${LIB}: ${OBJ} - ${AR} - ${RANLIB} + ${AR} cr ${LIB} ${OBJ} + ${RANLIB} ${LIB} clean: FRC rm -f ${LIB} ${OBJ} errs Makefile.bak a.out core ================================================ FILE: package/lsof/0002-remove-susvlegacy-funcs.patch ================================================ diff -rdup lsof_4.81.orig/lsof_4.81_src/dialects/linux/machine.h lsof_4.81/lsof_4.81_src/dialects/linux/machine.h --- a/dialects/linux/machine.h 2007-04-24 18:20:58.000000000 +0200 +++ b/dialects/linux/machine.h 2007-05-15 12:17:03.000000000 +0200 @@ -616,6 +616,6 @@ * zeromem is a macro that uses bzero or memset. */ -#define zeromem(a, l) bzero(a, l) +#define zeromem(a, l) memset(a, 0, l) #endif /* !defined(LSOF_MACHINE_H) */ ================================================ FILE: package/lsof/0003-override-cflags.patch ================================================ --- lsof_4.84/Configure 2008-10-21 18:21:45.000000000 +0200 +++ lsof_4.84/Configure 2010-11-03 14:00:00.000000000 +0100 @@ -5206,6 +5206,10 @@ cp $LSOF_MKFC ${LSOF_LIB}/$LSOF_LIBMKF fi # } cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST >> $LSOF_MKFC +if test "X$LSOF_CFLAGS_OVERRIDE" != "X" # { +then + sed -i -e 's/^CFLAGS=/override CFLAGS=/' $LSOF_MKFC +fi # } if test "X$LSOF_LIB_NO" = "X" # { then ================================================ FILE: package/lsof/Config.in ================================================ 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 processes. https://github.com/lsof-org/lsof ================================================ FILE: package/lsof/lsof.hash ================================================ # Locally calculated sha256 3df912bd966fc24dc73ddea3e36a61d79270b21b085936a4caabca56e5b486a2 lsof-4.93.2.tar.gz sha256 32a728188b19bf86917659d904ab29d0a294b4506e1c98b8b7f1c70ab4975fe1 dialects/linux/dproto.h ================================================ FILE: package/lsof/lsof.mk ================================================ ################################################################################ # # lsof # ################################################################################ LSOF_VERSION = 4.93.2 LSOF_SITE = $(call github,lsof-org,lsof,$(LSOF_VERSION)) LSOF_LICENSE = lsof license # License is repeated in each file, this is a relatively small one. # It is also defined in 00README, but that contains a lot of other cruft. LSOF_LICENSE_FILES = dialects/linux/dproto.h ifeq ($(BR2_PACKAGE_LIBTIRPC),y) LSOF_DEPENDENCIES += libtirpc endif ifeq ($(BR2_USE_WCHAR),) define LSOF_CONFIGURE_WCHAR_FIXUPS $(SED) 's,^#define[[:space:]]*HASWIDECHAR.*,#undef HASWIDECHAR,' \ $(@D)/machine.h endef endif ifeq ($(BR2_ENABLE_LOCALE),) define LSOF_CONFIGURE_LOCALE_FIXUPS $(SED) 's,^#define[[:space:]]*HASSETLOCALE.*,#undef HASSETLOCALE,' \ $(@D)/machine.h endef endif define LSOF_CONFIGURE_CMDS (cd $(@D) ; \ echo n | $(TARGET_CONFIGURE_OPTS) DEBUG="$(TARGET_CFLAGS)" \ LSOF_INCLUDE="$(STAGING_DIR)/usr/include" LSOF_CFLAGS_OVERRIDE=1 \ LINUX_CLIB=-DGLIBCV=2 LSOF_CFGL="$(TARGET_LDFLAGS)" \ ./Configure linux) $(LSOF_CONFIGURE_WCHAR_FIXUPS) $(LSOF_CONFIGURE_LOCALE_FIXUPS) endef define LSOF_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) DEBUG="$(TARGET_CFLAGS)" -C $(@D) endef define LSOF_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/lsof $(TARGET_DIR)/usr/bin/lsof endef $(eval $(generic-package)) ================================================ FILE: package/lsqlite3/Config.in ================================================ config BR2_PACKAGE_LSQLITE3 bool "lsqlite3" select BR2_PACKAGE_SQLITE help A binding for Lua to the SQLite3 database library. http://lua.sqlite.org/ ================================================ FILE: package/lsqlite3/lsqlite3.hash ================================================ # computed by luarocks/buildroot sha256 fdae3c03390ab4e4b7db3a13d09b79ffe19318739b752d17914adcdb3d2ef9ff lsqlite3-0.9.5-1.src.rock ================================================ FILE: package/lsqlite3/lsqlite3.mk ================================================ ################################################################################ # # lsqlite3 # ################################################################################ LSQLITE3_VERSION = 0.9.5-1 LSQLITE3_SUBDIR = lsqlite3_fsl09y LSQLITE3_LICENSE = MIT LSQLITE3_DEPENDENCIES = sqlite $(eval $(luarocks-package)) ================================================ FILE: package/lsscsi/Config.in ================================================ config BR2_PACKAGE_LSSCSI bool "lsscsi" help lsscsi - list SCSI devices (or hosts) and their attributes http://sg.danny.cz/scsi/lsscsi.html ================================================ FILE: package/lsscsi/lsscsi.hash ================================================ # Locally calculated sha256 12bf1973014803c6fd6d547e7594a4c049f0eef3bf5d22190d4be29d7c09f3ca lsscsi-0.31.tgz sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING ================================================ FILE: package/lsscsi/lsscsi.mk ================================================ ################################################################################ # # lsscsi # ################################################################################ LSSCSI_VERSION = 0.31 LSSCSI_SOURCE = lsscsi-$(LSSCSI_VERSION).tgz LSSCSI_SITE = http://sg.danny.cz/scsi LSSCSI_LICENSE = GPL-2.0+ LSSCSI_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/lsuio/Config.in ================================================ config BR2_PACKAGE_LSUIO bool "lsuio" help list available userspace I/O (UIO) devices http://www.osadl.org/UIO.uio.0.html ================================================ FILE: package/lsuio/lsuio.hash ================================================ # Locally calculated sha256 c88b3850248b2d3419e025abd7b9b0991c8bd33a2d4983f9608408a29900bfb5 lsuio-0.2.0.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/lsuio/lsuio.mk ================================================ ################################################################################ # # lsuio # ################################################################################ LSUIO_VERSION = 0.2.0 LSUIO_SITE = http://www.osadl.org/projects/downloads/UIO/user LSUIO_LICENSE = GPL-2.0 LSUIO_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch ================================================ From bee452dfa2a34ba7df7db677e5673cbdcd23f61e Mon Sep 17 00:00:00 2001 From: Petr Vorel Date: Thu, 1 Oct 2020 23:28:39 +0200 Subject: [PATCH] lapi: Add sysinfo.h to fix build with MUSL libc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The reason is to avoid indirect include when using some network headers: or others -> -> This indirect include causes on MUSL redefinition of struct sysinfo when included both and some of UAPI headers: In file included from x86_64-buildroot-linux-musl/sysroot/usr/include/linux/kernel.h:5, from x86_64-buildroot-linux-musl/sysroot/usr/include/linux/netlink.h:5, from ../include/tst_netlink.h:14, from tst_crypto.c:13: x86_64-buildroot-linux-musl/sysroot/usr/include/linux/sysinfo.h:8:8: error: redefinition of ‘struct sysinfo’ struct sysinfo { ^~~~~~~ In file included from ../include/tst_safe_macros.h:15, from ../include/tst_test.h:93, from tst_crypto.c:11: x86_64-buildroot-linux-musl/sysroot/usr/include/sys/sysinfo.h:10:8: note: originally defined here Signed-off-by: Petr Vorel [ upstream status: https://patchwork.ozlabs.org/project/ltp/patch/20201001231256.6930-1-petr.vorel@gmail.com/, rebased for 20210927 ] But this patch is not going to get upstreamed because it got fixed in Linux kernel: a85cbe6159ff "uapi: move constants from to " This patch was also backported to stable and LTS versions, which we use since buildroot 54584d233b "{linux, linux-headers}: bump 5.{4, 10}.x 4.{4, 9, 14, 19} series". We just wait for all musl based toolchains to be rebuilt. ] Signed-off-by: Petr Vorel --- include/lapi/sysinfo.h | 22 +++++++++++++++++++ include/tst_safe_macros.h | 2 +- lib/safe_macros.c | 2 +- lib/tst_memutils.c | 2 +- testcases/kernel/mem/mtest01/mtest01.c | 2 +- testcases/kernel/syscalls/madvise/madvise06.c | 2 +- testcases/kernel/syscalls/sysinfo/sysinfo01.c | 2 +- testcases/kernel/syscalls/sysinfo/sysinfo02.c | 2 +- testcases/kernel/syscalls/sysinfo/sysinfo03.c | 2 +- .../interfaces/pthread_cond_broadcast/1-2.c | 2 +- 10 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 include/lapi/sysinfo.h diff --git a/include/lapi/sysinfo.h b/include/lapi/sysinfo.h new file mode 100644 index 000000000..d0e0e93d7 --- /dev/null +++ b/include/lapi/sysinfo.h @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (c) 2020 Petr Vorel + */ + +#ifndef SYSINFO_H__ + +/* + * Don't use as it breaks build MUSL toolchain. + * Use instead. + * + * Some kernel UAPI headers do indirect include: + * or others -> -> + * + * This indirect include causes on MUSL redefinition of struct sysinfo when + * included both and some of UAPI headers: + */ +#include + +#define SYSINFO_H__ + +#endif /* SYSINFO_H__ */ diff --git a/include/tst_safe_macros.h b/include/tst_safe_macros.h index d99441c86..0d26e9d45 100644 --- a/include/tst_safe_macros.h +++ b/include/tst_safe_macros.h @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/lib/safe_macros.c b/lib/safe_macros.c index a5b6bc504..20d01d304 100644 --- a/lib/safe_macros.c +++ b/lib/safe_macros.c @@ -11,7 +11,6 @@ #include #include #include -#include #include #include #include @@ -23,6 +22,7 @@ #include #include "test.h" #include "safe_macros.h" +#include "lapi/sysinfo.h" char *safe_basename(const char *file, const int lineno, void (*cleanup_fn) (void), char *path) diff --git a/lib/tst_memutils.c b/lib/tst_memutils.c index 69077861f..ae1cad29b 100644 --- a/lib/tst_memutils.c +++ b/lib/tst_memutils.c @@ -5,11 +5,11 @@ #include #include -#include #include #define TST_NO_DEFAULT_MAIN #include "tst_test.h" +#include "lapi/sysinfo.h" #define BLOCKSIZE (16 * 1024 * 1024) diff --git a/testcases/kernel/mem/mtest01/mtest01.c b/testcases/kernel/mem/mtest01/mtest01.c index 9676ea4b5..33b2ac822 100644 --- a/testcases/kernel/mem/mtest01/mtest01.c +++ b/testcases/kernel/mem/mtest01/mtest01.c @@ -20,7 +20,6 @@ */ #include -#include #include #include #include @@ -29,6 +28,7 @@ #include #include "lapi/abisize.h" +#include "lapi/sysinfo.h" #include "tst_test.h" #define FIVE_HUNDRED_MB (500ULL*1024*1024) diff --git a/testcases/kernel/syscalls/madvise/madvise06.c b/testcases/kernel/syscalls/madvise/madvise06.c index 263b8e78b..4fa52e6ea 100644 --- a/testcases/kernel/syscalls/madvise/madvise06.c +++ b/testcases/kernel/syscalls/madvise/madvise06.c @@ -46,7 +46,7 @@ #include #include #include -#include +#include "lapi/sysinfo.h" #include "tst_test.h" #include "tst_cgroup.h" diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo01.c b/testcases/kernel/syscalls/sysinfo/sysinfo01.c index 2ea44a2be..a237345ef 100644 --- a/testcases/kernel/syscalls/sysinfo/sysinfo01.c +++ b/testcases/kernel/syscalls/sysinfo/sysinfo01.c @@ -69,7 +69,7 @@ #include #include #include -#include +#include "lapi/sysinfo.h" #include "test.h" diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo02.c b/testcases/kernel/syscalls/sysinfo/sysinfo02.c index 7ad0e8bdc..61fa1ab75 100644 --- a/testcases/kernel/syscalls/sysinfo/sysinfo02.c +++ b/testcases/kernel/syscalls/sysinfo/sysinfo02.c @@ -65,7 +65,7 @@ #include #include #include -#include +#include "lapi/sysinfo.h" #include #include "test.h" diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo03.c b/testcases/kernel/syscalls/sysinfo/sysinfo03.c index af7cb6421..dc5ae65e3 100644 --- a/testcases/kernel/syscalls/sysinfo/sysinfo03.c +++ b/testcases/kernel/syscalls/sysinfo/sysinfo03.c @@ -13,7 +13,7 @@ */ -#include +#include "lapi/sysinfo.h" #include "lapi/namespaces_constants.h" #include "lapi/posix_clocks.h" #include "tst_test.h" diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/1-2.c b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/1-2.c index 22e7c3638..572701f9f 100644 --- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/1-2.c +++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/1-2.c @@ -43,7 +43,7 @@ #include #include #ifdef __linux__ -#include +#include "lapi/sysinfo.h" #endif #include "../testfrmw/testfrmw.h" -- 2.33.0 ================================================ FILE: package/ltp-testsuite/0002-lib-fix-MemAvailable-parsing.patch ================================================ From 29a096fe2bd356f419bd8a8404d5b652c996b92f Mon Sep 17 00:00:00 2001 From: Ralph Siemsen Date: Mon, 27 Sep 2021 22:18:50 -0400 Subject: [PATCH] lib: fix MemAvailable parsing The amount of available memory was not being returned correctly, which resulted in tests being executed when they should have been skipped. Fixes: 8759f4 ("lib: adjust the tmpfs size according to .dev_min_size and MemAvailable") Signed-off-by: Ralph Siemsen Signed-off-by: Li Wang Signed-off-by: Petr Vorel [ upstream status: e42149e28 ("lib: fix MemAvailable parsing") ] --- lib/tst_memutils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/tst_memutils.c b/lib/tst_memutils.c index ae1cad29b..a46de78f5 100644 --- a/lib/tst_memutils.c +++ b/lib/tst_memutils.c @@ -65,9 +65,9 @@ void tst_pollute_memory(size_t maxsize, int fillchar) long long tst_available_mem(void) { - long long mem_available; + unsigned long long mem_available = 0; - if (FILE_LINES_SCANF("/proc/meminfo", "MemAvailable: %ld", + if (FILE_LINES_SCANF("/proc/meminfo", "MemAvailable: %llu", &mem_available)) { mem_available = SAFE_READ_MEMINFO("MemFree:") + SAFE_READ_MEMINFO("Cached:"); -- 2.33.0 ================================================ FILE: package/ltp-testsuite/0003-lapi-rtnetlink.h-Fix-include-guards.patch ================================================ From 881709d1e4d1bba5bf8ca365bc058f338bd72dc2 Mon Sep 17 00:00:00 2001 From: Petr Vorel Date: Wed, 29 Sep 2021 19:38:42 +0200 Subject: [PATCH] lapi/rtnetlink.h: Fix include guards Fixes: 5fea0638a ("lapi: Add missing IFA_FLAGS") Signed-off-by: Petr Vorel [ upstream status: a2a212cf8 ("lapi/rtnetlink.h: Fix include guards") ] --- include/lapi/rtnetlink.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/lapi/rtnetlink.h b/include/lapi/rtnetlink.h index 8a1b5385b..04e9ad51a 100644 --- a/include/lapi/rtnetlink.h +++ b/include/lapi/rtnetlink.h @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-2.0-or-later /* Copyright (c) 2021 Petr Vorel */ -#ifndef LAPI_IF_ADDR_H__ -# define LAPI_IF_ADDR_H__ +#ifndef LAPI_RTNETLINK_H__ +# define LAPI_RTNETLINK_H__ #include @@ -10,4 +10,4 @@ # define IFA_FLAGS 8 #endif -#endif /* LAPI_IF_ADDR_H__ */ +#endif /* LAPI_RTNETLINK_H__ */ -- 2.33.0 ================================================ FILE: package/ltp-testsuite/0004-lapi-Create-if_addr.h-and-reuse-it-in-rtnetlink.h.patch ================================================ From b13440627bd4a9f060a33d400a47a40daa2bc12e Mon Sep 17 00:00:00 2001 From: Petr Vorel Date: Wed, 29 Sep 2021 19:37:19 +0200 Subject: [PATCH] lapi: Create if_addr.h and reuse it in rtnetlink.h There will be fix in next commit for missing IFA_F_NOPREFIXROUTE which requires creating lapi/if_addr.h. Thus move IFA_FLAGS to lapi/if_addr.h, as it belongs there and reuse lapi/if_addr.h in lapi/rtnetlink.h just like includes . Signed-off-by: Petr Vorel [ upstream status: https://lore.kernel.org/ltp/20210930183058.5240-3-petr.vorel@gmail.com/T/#u ] --- include/lapi/if_addr.h | 16 ++++++++++++++++ include/lapi/rtnetlink.h | 5 +---- 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 include/lapi/if_addr.h diff --git a/include/lapi/if_addr.h b/include/lapi/if_addr.h new file mode 100644 index 000000000..4e50a0a4e --- /dev/null +++ b/include/lapi/if_addr.h @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (c) 2021 Petr Vorel + */ + +#ifndef LAPI_IF_ADDR_H__ +#define LAPI_IF_ADDR_H__ + +#include + +#ifndef IFA_FLAGS +# define IFA_FLAGS 8 +#endif + + +#endif /* LAPI_IF_ADDR_H__ */ diff --git a/include/lapi/rtnetlink.h b/include/lapi/rtnetlink.h index 04e9ad51a..089bf1a0d 100644 --- a/include/lapi/rtnetlink.h +++ b/include/lapi/rtnetlink.h @@ -5,9 +5,6 @@ # define LAPI_RTNETLINK_H__ #include - -#ifndef IFA_FLAGS -# define IFA_FLAGS 8 -#endif +#include "lapi/if_addr.h" #endif /* LAPI_RTNETLINK_H__ */ -- 2.33.0 ================================================ FILE: package/ltp-testsuite/0005-lapi-if_addr.h-Define-IFA_FLAGS.patch ================================================ From 9e357fb4fc00ab9c303e314b85b9ae3836141f81 Mon Sep 17 00:00:00 2001 From: Petr Vorel Date: Wed, 29 Sep 2021 19:56:29 +0200 Subject: [PATCH] lapi/if_addr.h: Define IFA_FLAGS and use it in icmp_rate_limit01.c. This fixes error on toolchains with very old kernel headers, e.g. Buildroot sourcery-arm: icmp_rate_limit01.c:82:3: error: 'IFA_F_NOPREFIXROUTE' undeclared (first use in this function) IFA_F_NOPREFIXROUTE); Fixed because IFA_F_NOPREFIXROUTE was added in 3.14 and the oldest system we still support is Cent0S 7 with 3.10 kernel. NOTE: Cent0S 7 is obviously heavily patched thus it contains IFA_F_NOPREFIXROUTE and therefore CI build didn't catch this error. Signed-off-by: Petr Vorel [ upstream status: https://lore.kernel.org/ltp/20210930183058.5240-4-petr.vorel@gmail.com/T/#u ] --- include/lapi/if_addr.h | 3 +++ testcases/cve/icmp_rate_limit01.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/lapi/if_addr.h b/include/lapi/if_addr.h index 4e50a0a4e..0f7e44784 100644 --- a/include/lapi/if_addr.h +++ b/include/lapi/if_addr.h @@ -12,5 +12,8 @@ # define IFA_FLAGS 8 #endif +#ifndef IFA_F_NOPREFIXROUTE +# define IFA_F_NOPREFIXROUTE 0x200 +#endif #endif /* LAPI_IF_ADDR_H__ */ diff --git a/testcases/cve/icmp_rate_limit01.c b/testcases/cve/icmp_rate_limit01.c index b3a237b30..3ada32675 100644 --- a/testcases/cve/icmp_rate_limit01.c +++ b/testcases/cve/icmp_rate_limit01.c @@ -27,11 +27,12 @@ #include #include #include -#include #include #include #include + +#include "lapi/if_addr.h" #include "tst_test.h" #include "tst_netdevice.h" -- 2.33.0 ================================================ FILE: package/ltp-testsuite/Config.in ================================================ config BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS bool # Needs __sync*() built-ins for 4-byte data, except on a few # architectures for which a specific implementation is # provided in ltp-testsuite default y if BR2_TOOLCHAIN_HAS_SYNC_4 default y if BR2_arc # does not build on nios2, cachectl.h issue depends on !BR2_nios2 config BR2_PACKAGE_LTP_TESTSUITE bool "ltp-testsuite" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_PACKAGE_MUSL_FTS if !BR2_TOOLCHAIN_USES_GLIBC help The Linux Test Project provides a huge testsuite for Linux. http://linux-test-project.github.io if BR2_PACKAGE_LTP_TESTSUITE config BR2_PACKAGE_LTP_TESTSUITE_OPEN_POSIX bool "Open POSIX testsuite" default y help Test suite for POSIX compliance. Included with the LTP. config BR2_PACKAGE_LTP_TESTSUITE_REALTIME bool "Realtime testsuite" default y help Test suite for realtime kernels. Included with the LTP. endif comment "ltp-testsuite needs a toolchain w/ NPTL" depends on BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL ================================================ FILE: package/ltp-testsuite/ltp-testsuite.hash ================================================ # From: https://github.com/linux-test-project/ltp/releases/download/20210927/ltp-full-20210927.tar.xz.sha1 sha1 dad7737f609e358c4060cb446b9cae5c026fc137 ltp-full-20210927.tar.xz # Locally computed sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 779e9e5cc9af4f2b3d4cb32f5439ebd635504d2c4591bf900f0942dac290ed15 ltp-full-20210927.tar.xz ================================================ FILE: package/ltp-testsuite/ltp-testsuite.mk ================================================ ################################################################################ # # ltp-testsuite # ################################################################################ LTP_TESTSUITE_VERSION = 20210927 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 = GPL-2.0, GPL-2.0+ LTP_TESTSUITE_LICENSE_FILES = COPYING LTP_TESTSUITE_CONF_OPTS += --disable-metadata ifeq ($(BR2_PACKAGE_LTP_TESTSUITE_OPEN_POSIX),y) LTP_TESTSUITE_CONF_OPTS += --with-open-posix-testsuite endif ifeq ($(BR2_PACKAGE_LTP_TESTSUITE_REALTIME),y) LTP_TESTSUITE_CONF_OPTS += --with-realtime-testsuite endif 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 # We change the prefix to a custom one, otherwise we get scripts and # directories directly in /usr, such as /usr/runalltests.sh LTP_TESTSUITE_CONF_OPTS += --prefix=/usr/lib/ltp-testsuite # Needs libcap with file attrs which needs attr, so both required ifeq ($(BR2_PACKAGE_LIBCAP)$(BR2_PACKAGE_ATTR),yy) LTP_TESTSUITE_DEPENDENCIES += libcap else LTP_TESTSUITE_CONF_ENV += ac_cv_lib_cap_cap_compare=no endif # No explicit enable/disable options ifeq ($(BR2_PACKAGE_NUMACTL),y) LTP_TESTSUITE_DEPENDENCIES += numactl else LTP_TESTSUITE_CONF_ENV += have_numa_headers=no endif # ltp-testsuite uses , which isn't compatible with largefile # support. LTP_TESTSUITE_CFLAGS = $(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CFLAGS)) LTP_TESTSUITE_CPPFLAGS = $(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CPPFLAGS)) LTP_TESTSUITE_LIBS = ifeq ($(BR2_PACKAGE_LIBTIRPC),y) LTP_TESTSUITE_DEPENDENCIES += libtirpc host-pkgconf LTP_TESTSUITE_CFLAGS += "`$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc`" LTP_TESTSUITE_LIBS += "`$(PKG_CONFIG_HOST_BINARY) --libs libtirpc`" endif ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),) LTP_TESTSUITE_DEPENDENCIES += musl-fts LTP_TESTSUITE_LIBS += -lfts endif LTP_TESTSUITE_CONF_ENV += \ CFLAGS="$(LTP_TESTSUITE_CFLAGS)" \ CPPFLAGS="$(LTP_TESTSUITE_CPPFLAGS)" \ LIBS="$(LTP_TESTSUITE_LIBS)" \ SYSROOT="$(STAGING_DIR)" # uclibc: bessel support normally not enabled LTP_TESTSUITE_UNSUPPORTED_TEST_CASES_$(BR2_TOOLCHAIN_USES_UCLIBC) += \ testcases/misc/math/float/bessel/ \ testcases/misc/math/float/float_bessel.c LTP_TESTSUITE_UNSUPPORTED_TEST_CASES_$(BR2_TOOLCHAIN_USES_MUSL) += \ testcases/kernel/syscalls/confstr/confstr01.c \ testcases/kernel/syscalls/fmtmsg/fmtmsg01.c \ testcases/kernel/syscalls/getcontext/getcontext01.c \ testcases/kernel/syscalls/rt_tgsigqueueinfo/rt_tgsigqueueinfo01.c \ testcases/kernel/syscalls/timer_create/timer_create01.c \ testcases/kernel/syscalls/timer_create/timer_create03.c # ldd command build system tries to build a shared library unconditionally. LTP_TESTSUITE_UNSUPPORTED_TEST_CASES_$(BR2_STATIC_LIBS) += \ testcases/commands/ldd define LTP_TESTSUITE_REMOVE_UNSUPPORTED_TESTCASES $(foreach f,$(LTP_TESTSUITE_UNSUPPORTED_TEST_CASES_y), rm -rf $(@D)/$(f) ) endef LTP_TESTSUITE_POST_PATCH_HOOKS += LTP_TESTSUITE_REMOVE_UNSUPPORTED_TESTCASES $(eval $(autotools-package)) ================================================ FILE: package/ltrace/0001-arm-plt.patch ================================================ From 04377d28135e351c8d096c4392a493e937416815 Mon Sep 17 00:00:00 2001 From: Alexandre Belloni Date: Thu, 24 Jul 2014 23:15:20 +0200 Subject: [PATCH] Allow building with uclibc toolchains Unfortunately, uclicbc doesn't define SHT_ARM_ATTRIBUTES in elf.h Signed-off-by: Alexandre Belloni --- sysdeps/linux-gnu/arm/plt.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sysdeps/linux-gnu/arm/plt.c b/sysdeps/linux-gnu/arm/plt.c index 9e9e37f0c5b0..a0a5795eb9cb 100644 --- a/sysdeps/linux-gnu/arm/plt.c +++ b/sysdeps/linux-gnu/arm/plt.c @@ -28,6 +28,10 @@ #include "library.h" #include "ltrace-elf.h" +#ifndef SHT_ARM_ATTRIBUTES +#define SHT_ARM_ATTRIBUTES 0x70000003 +#endif + static int get_hardfp(uint64_t abi_vfp_args) { -- 1.9.1 ================================================ FILE: package/ltrace/0002-sparc-add-missing-library.h-include.patch ================================================ From 4e58f53b7886420d002e5919f279acd6d7c4afd1 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 22 Dec 2015 21:47:45 +0100 Subject: [PATCH] sparc: add missing library.h include MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes the following build failure on sparc: plt.c: In function ‘sym2addr’: plt.c:33:12: error: dereferencing pointer to incomplete type return sym->enter_addr; ^ plt.c:34:1: warning: control reaches end of non-void function [-Wreturn-type] Signed-off-by: Thomas Petazzoni --- sysdeps/linux-gnu/sparc/plt.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sysdeps/linux-gnu/sparc/plt.c b/sysdeps/linux-gnu/sparc/plt.c index 3d2e589..959eed1 100644 --- a/sysdeps/linux-gnu/sparc/plt.c +++ b/sysdeps/linux-gnu/sparc/plt.c @@ -21,6 +21,7 @@ #include #include "proc.h" #include "common.h" +#include "library.h" GElf_Addr arch_plt_sym_val(struct ltelf *lte, size_t ndx, GElf_Rela * rela) { -- 2.6.4 ================================================ FILE: package/ltrace/0003-configure.ac-fix-autoreconf-with-autoconf-2.70.patch ================================================ From b8d5d086489ff20339e221323a60c140a9820e67 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 9 Oct 2021 09:39:52 +0200 Subject: [PATCH] configure.ac: fix autoreconf with autoconf >= 2.70 Drop AC_CONFIG_AUX_DIR to avoid the following build failure with autoconf >= 2.70: autoreconf: error: cannot create config/autoconf: No such file or directory Fixes: - http://autobuild.buildroot.org/results/433599039d6e1ee301465f9867e169c121a0646f Signed-off-by: Fabrice Fontaine [Upstream status: not sent as upstream is unmaintained: https://gitlab.com/cespedes/ltrace/-/issues/8] --- configure.ac | 1 - 1 file changed, 1 deletion(-) diff --git a/configure.ac b/configure.ac index b9c39fa..486589b 100644 --- a/configure.ac +++ b/configure.ac @@ -28,7 +28,6 @@ AC_INIT([ltrace],[0.7.91],[ltrace-devel@lists.alioth.debian.org], AC_CONFIG_HEADERS([config.h]) AC_CONFIG_SRCDIR(libltrace.c) AC_CONFIG_MACRO_DIR([config/m4]) -AC_CONFIG_AUX_DIR([config/autoconf]) AC_CANONICAL_BUILD AC_CANONICAL_HOST -- 2.33.0 ================================================ FILE: package/ltrace/Config.in ================================================ config BR2_PACKAGE_LTRACE_ARCH_SUPPORTS bool default y if BR2_aarch64 default y if BR2_arm default y if BR2_i386 default y if BR2_mips default y if BR2_mipsel default y if BR2_powerpc default y if BR2_sparc default y if BR2_x86_64 default y if BR2_xtensa config BR2_PACKAGE_LTRACE bool "ltrace" depends on BR2_USE_WCHAR # elfutils depends on !BR2_STATIC_LIBS # elfutils depends on BR2_TOOLCHAIN_HAS_THREADS # elfutils depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils depends on BR2_PACKAGE_LTRACE_ARCH_SUPPORTS select BR2_PACKAGE_ELFUTILS help Debugging program which runs a specified command until it exits. While the command is executing, ltrace intercepts and records the dynamic library calls which are called by the executed process and the signals received by that process. http://ltrace.org comment "ltrace needs a uClibc or glibc toolchain w/ wchar, dynamic library, threads" depends on BR2_PACKAGE_LTRACE_ARCH_SUPPORTS depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS \ || !BR2_TOOLCHAIN_HAS_THREADS \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) ================================================ FILE: package/ltrace/ltrace.hash ================================================ # Locally computed sha256 4aecf69e4a33331aed1e50ce4907e73a98cbccc4835febc3473863474304d547 ltrace-82c66409c7a93ca6ad2e4563ef030dfb7e6df4d4.tar.gz sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING ================================================ FILE: package/ltrace/ltrace.mk ================================================ ################################################################################ # # ltrace # ################################################################################ # This github version has some extra fixes on top of https://ltrace.org/ # in particular the following commit to avoid a crash: # 192e0a6 void struct members are now ignored LTRACE_VERSION = 82c66409c7a93ca6ad2e4563ef030dfb7e6df4d4 LTRACE_SITE = $(call github,dkogan,ltrace,$(LTRACE_VERSION)) LTRACE_DEPENDENCIES = elfutils LTRACE_CONF_OPTS = --disable-werror LTRACE_LICENSE = GPL-2.0 LTRACE_LICENSE_FILES = COPYING LTRACE_AUTORECONF = YES # ltrace can use libunwind only if libc has backtrace() support # We don't normally do so for uClibc and we can't know if it's external # Also ltrace with libunwind support is broken for MIPS so we disable it ifeq ($(BR2_PACKAGE_LIBUNWIND),y) ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC)$(BR2_mips)$(BR2_mipsel),) # --with-elfutils only selects unwinding support backend. elfutils is a # mandatory dependency regardless. LTRACE_CONF_OPTS += --with-libunwind=yes --with-elfutils=no LTRACE_DEPENDENCIES += libunwind else LTRACE_CONF_OPTS += --with-libunwind=no endif endif $(eval $(autotools-package)) ================================================ FILE: package/ltris/0001-fix-build-with-gcc-4.8.patch ================================================ Fix build with gcc 4.8 Signed-off-by: Fabrice Fontaine [Upstream status: https://sourceforge.net/p/lgames/patches/28] Index: ltris/src/bowl.c =================================================================== --- ltris/src/bowl.c (révision 421) +++ ltris/src/bowl.c (copie de travail) @@ -828,9 +828,10 @@ */ void bowl_init_block_masks() { + int i; int masksize = sizeof(block_masks[0].mask); // same for all - for (int i = 0; i < 7; i++) { + for (i = 0; i < 7; i++) { block_masks[i].rx = 2; block_masks[i].ry = 2; memset(block_masks[i].mask, 0, masksize ); ================================================ FILE: package/ltris/Config.in ================================================ config BR2_PACKAGE_LTRIS bool "LTris" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_SDL help LTris is a tetris clone, using SDL. It optionally requires SDL_mixer for audio support. A display with minimum 640x480 resolution and a keyboard are recommended. http://lgames.sourceforge.net/index.php?project=LTris if BR2_PACKAGE_LTRIS config BR2_PACKAGE_LTRIS_AUDIO bool "audio support" default y select BR2_PACKAGE_SDL_MIXER help Activates audio support in LTris. Will add SDL_mixer. endif ================================================ FILE: package/ltris/ltris.hash ================================================ # Locally computed: sha256 a7bc6c5fc6539b88505077a1b4580edc9b179ce0a6b829c58fbd9416cf456195 ltris-1.2.tar.gz sha256 67f82e045cf7acfef853ea0f426575a8359161a0a325e19f02b529a87c4b6c34 COPYING ================================================ FILE: package/ltris/ltris.mk ================================================ ################################################################################ # # ltris # ################################################################################ LTRIS_SITE = http://downloads.sourceforge.net/lgames/ltris LTRIS_VERSION = 1.2 LTRIS_LICENSE = GPL-2.0+ LTRIS_LICENSE_FILES = COPYING LTRIS_DEPENDENCIES = sdl $(TARGET_NLS_DEPENDENCIES) LTRIS_LIBS = $(TARGET_NLS_LIBS) LTRIS_CONF_ENV = \ SDL_CONFIG="$(STAGING_DIR)/usr/bin/sdl-config" \ LIBS="$(LTRIS_LIBS)" ifeq ($(BR2_PACKAGE_LTRIS_AUDIO),y) 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-sound endif $(eval $(autotools-package)) ================================================ FILE: package/lttng-babeltrace/0001-tests-lib-Makefile.am-remove-unneeded-static-flag.patch ================================================ From 27e37d2621317d25e08ba0683bf8540b05b9347d Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Fri, 28 Oct 2016 02:09:20 -0400 Subject: [PATCH] tests/lib/Makefile.am: remove unneeded -static flag Having those -static flags breaks the build in shared-only builds. Signed-off-by: Philippe Proulx [Philippe: grabbed from this pull request: https://github.com/efficios/babeltrace/pull/49 ] --- tests/lib/Makefile.am | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/lib/Makefile.am b/tests/lib/Makefile.am index 33ada16..c685e77 100644 --- a/tests/lib/Makefile.am +++ b/tests/lib/Makefile.am @@ -31,13 +31,11 @@ check_SCRIPTS = test_seek_big_trace \ test_ctf_writer_complete if ENABLE_DEBUG_INFO -test_dwarf_LDFLAGS = -static test_dwarf_LDADD = $(LIBTAP) \ $(top_builddir)/lib/libbabeltrace.la \ $(top_builddir)/lib/libdebug-info.la test_dwarf_SOURCES = test_dwarf.c -test_bin_info_LDFLAGS = -static test_bin_info_LDADD = $(LIBTAP) \ $(top_builddir)/lib/libbabeltrace.la \ $(top_builddir)/lib/libdebug-info.la -- 2.9.3 ================================================ FILE: package/lttng-babeltrace/Config.in ================================================ config BR2_PACKAGE_LTTNG_BABELTRACE bool "lttng-babeltrace" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_POPT help The Babeltrace project provides trace read and write libraries, as well as a trace converter application. Plugins can be created for any trace format to allow its conversion to/from another trace format. Babeltrace is the reference implementation of the Common Trace Format (see ). Babeltrace can decode and display LTTng traces, since the latter are written using the CTF format. To get support for debugging information, enable the elfutils package. Having this tool on the target is not mandatory. You can transfer the binary trace output from the target to your development workstation, and use babeltrace here. See the lttng-babeltrace host utility to install Babeltrace on the host. http://diamon.org/babeltrace comment "lttng-babeltrace needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/lttng-babeltrace/Config.in.host ================================================ config BR2_PACKAGE_HOST_LTTNG_BABELTRACE bool "host lttng-babeltrace" help The Babeltrace project provides trace read and write libraries, as well as a trace converter application. Plugins can be created for any trace format to allow its conversion to/from another trace format. Babeltrace is the reference implementation of the Common Trace Format (see ). Babeltrace can decode and display LTTng traces, since the latter are written using the CTF format. http://diamon.org/babeltrace ================================================ FILE: package/lttng-babeltrace/lttng-babeltrace.hash ================================================ # From http://www.efficios.com/files/babeltrace/babeltrace-1.5.7.tar.bz2.sha256 sha256 215331e025ffd39c665a34231b9429180e48aca78f79fb972d0bf1322d2b807b babeltrace-1.5.7.tar.bz2 # Hash for license files sha256 2f801b7c2494850c3d91da820eb230502dc0192c9d0db024db37ec08d0be1434 mit-license.txt sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 gpl-2.0.txt sha256 12d4222ac628fe4092cba8ed90bc5227a4dedd0b94973273cecbc393325bf1c2 LICENSE ================================================ FILE: package/lttng-babeltrace/lttng-babeltrace.mk ================================================ ################################################################################ # # lttng-babeltrace # ################################################################################ LTTNG_BABELTRACE_SITE = http://www.efficios.com/files/babeltrace LTTNG_BABELTRACE_VERSION = 1.5.7 LTTNG_BABELTRACE_SOURCE = babeltrace-$(LTTNG_BABELTRACE_VERSION).tar.bz2 LTTNG_BABELTRACE_LICENSE = MIT, LGPL-2.1 (include/babeltrace/list.h), GPL-2.0 (test code) LTTNG_BABELTRACE_LICENSE_FILES = mit-license.txt gpl-2.0.txt LICENSE LTTNG_BABELTRACE_DEPENDENCIES = popt util-linux libglib2 host-pkgconf # The host-elfutils dependency is optional, but since we don't have # options for host packages, just build support for it # unconditionally. HOST_LTTNG_BABELTRACE_DEPENDENCIES = \ host-popt host-util-linux host-libglib2 host-pkgconf host-elfutils HOST_LTTNG_BABELTRACE_CONF_OPTS += --enable-debug-info # We're patching tests/lib/Makefile.am LTTNG_BABELTRACE_AUTORECONF = YES ifeq ($(BR2_PACKAGE_ELFUTILS),y) LTTNG_BABELTRACE_DEPENDENCIES += elfutils LTTNG_BABELTRACE_CONF_OPTS += --enable-debug-info LTTNG_BABELTRACE_CONF_ENV += bt_cv_lib_elfutils=yes else LTTNG_BABELTRACE_CONF_OPTS += --disable-debug-info endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/lttng-libust/Config.in ================================================ config BR2_PACKAGE_LTTNG_LIBUST bool "lttng-libust" depends on BR2_USE_WCHAR # uses wchar_t # liburcu only works on some architectures and requires threads support" depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBURCU select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Userspace tracing library for the LTTng 2.x tracing infrastructure. It allows userspace programs to create custom trace events that are integrated with all other events gathered by LTTng. http://lttng.org comment "lttng-libust needs a toolchain w/ dynamic library, wchar, threads" depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/lttng-libust/lttng-libust.hash ================================================ # From https://lttng.org/files/lttng-ust/lttng-ust-2.12.1.tar.bz2.sha256 sha256 48a3948b168195123a749d22818809bd25127bb5f1a66458c3c012b210d2a051 lttng-ust-2.12.1.tar.bz2 # Hash for license file sha256 74125a84c2166300776980166e29de40d5f98d1a75e487f0bbc0c03b4cd2342e COPYING ================================================ FILE: package/lttng-libust/lttng-libust.mk ================================================ ################################################################################ # # lttng-libust # ################################################################################ LTTNG_LIBUST_SITE = http://lttng.org/files/lttng-ust LTTNG_LIBUST_VERSION = 2.12.1 LTTNG_LIBUST_SOURCE = lttng-ust-$(LTTNG_LIBUST_VERSION).tar.bz2 LTTNG_LIBUST_LICENSE = LGPL-2.1, MIT (system headers), GPL-2.0 (liblttng-ust-ctl/ustctl.c used by lttng-sessiond) LTTNG_LIBUST_LICENSE_FILES = COPYING LTTNG_LIBUST_INSTALL_STAGING = YES LTTNG_LIBUST_DEPENDENCIES = liburcu util-linux LTTNG_LIBUST_CONF_OPTS = \ --disable-man-pages \ --disable-examples \ --with-lttng-system-rundir=/run/lttng ifeq ($(BR2_PACKAGE_PYTHON),y) LTTNG_LIBUST_DEPENDENCIES += python LTTNG_LIBUST_CONF_OPTS += --enable-python-agent else ifeq ($(BR2_PACKAGE_PYTHON3),y) LTTNG_LIBUST_DEPENDENCIES += python3 LTTNG_LIBUST_CONF_OPTS += --enable-python-agent else LTTNG_LIBUST_CONF_ENV = am_cv_pathless_PYTHON="none" LTTNG_LIBUST_CONF_OPTS += --disable-python-agent endif ifeq ($(BR2_PACKAGE_NUMACTL),y) LTTNG_LIBUST_DEPENDENCIES += numactl LTTNG_LIBUST_CONF_OPTS += --enable-numa else LTTNG_LIBUST_CONF_OPTS += --disable-numa endif $(eval $(autotools-package)) ================================================ FILE: package/lttng-modules/Config.in ================================================ config BR2_PACKAGE_LTTNG_MODULES bool "lttng-modules" depends on BR2_LINUX_KERNEL help Linux kernel modules for the LTTng 2.x kernel tracing infrastructure. Make sure your target kernel has the following config options enabled: * CONFIG_MODULES: loadable module support * CONFIG_KALLSYMS: this is necessary until the few required missing symbols are exported to GPL modules from mainline * CONFIG_HIGH_RES_TIMERS: needed for LTTng 2.x clock source * CONFIG_TRACEPOINTS: kernel tracepoint instrumentation (enabled as a side-effect of any of the perf/ftrace/blktrace instrumentation features) The following kernel configuration options will affect the features available from LTTng: * CONFIG_HAVE_SYSCALL_TRACEPOINTS: system call tracing * CONFIG_PERF_EVENTS: performance counters * CONFIG_EVENT_TRACING: needed to allow block layer tracing * CONFIG_KPROBES: dynamic probes * CONFIG_KRETPROBES: dynamic function entry/return probes * CONFIG_KALLSYMS_ALL: state dump of mapping between block device number and name The packaged version is compatible with Linux 2.6.38 to 3.16. http://lttng.org comment "lttng-modules needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL ================================================ FILE: package/lttng-modules/lttng-modules.hash ================================================ # From https://lttng.org/files/lttng-modules/lttng-modules-2.11.0.tar.bz2.sha256 sha256 98af92d8c2e00f4eb63bc637a6967103cf6997434493f36e7a535a491e4fad5f lttng-modules-2.11.0.tar.bz2 # Hash for license files sha256 36b6d3fa47916943fd5fec313c584784946047ec1337a78b440e5992cb595f89 lgpl-2.1.txt sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 gpl-2.0.txt sha256 2f801b7c2494850c3d91da820eb230502dc0192c9d0db024db37ec08d0be1434 mit-license.txt sha256 6334b377a5bd56b56a1e8a495830f2d28ed1b5cbedc7493aec9fba979efcdfe1 LICENSE ================================================ FILE: package/lttng-modules/lttng-modules.mk ================================================ ################################################################################ # # lttng-modules # ################################################################################ LTTNG_MODULES_VERSION = 2.11.0 LTTNG_MODULES_SITE = http://lttng.org/files/lttng-modules LTTNG_MODULES_SOURCE = lttng-modules-$(LTTNG_MODULES_VERSION).tar.bz2 LTTNG_MODULES_LICENSE = LGPL-2.1/GPL-2.0 (kernel modules), MIT (lib/bitfield.h, lib/prio_heap/*) LTTNG_MODULES_LICENSE_FILES = lgpl-2.1.txt gpl-2.0.txt mit-license.txt LICENSE LTTNG_MODULES_MODULE_MAKE_OPTS = CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/lttng-tools/0001-configure.ac-add-disable-tests.patch ================================================ From 8c3a5d0921090e2fc3c4e2561509d23eb9ffa6dd Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 2 Apr 2021 21:07:07 +0200 Subject: [PATCH] configure.ac: add --disable-tests Allow the user to explicitly disable tests Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/lttng/lttng-tools/pull/162] --- configure.ac | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.ac b/configure.ac index 04f9cef4..372cdf3d 100644 --- a/configure.ac +++ b/configure.ac @@ -862,6 +862,8 @@ AC_ARG_ENABLE([bin-lttng-sessiond], AS_HELP_STRING([--disable-bin-lttng-sessiond [Disable the build of lttng-sessiond binaries])) AC_ARG_ENABLE([extras], AS_HELP_STRING([--disable-extras], [Disable the build of the extra components])) +AC_ARG_ENABLE([tests], AS_HELP_STRING([--disable-tests], + [Disable the build of the test components])) # Always build libconfig since it a dependency of libcommon @@ -1027,6 +1029,7 @@ AM_CONDITIONAL([BUILD_BIN_LTTNG_SESSIOND], [test x$enable_bin_lttng_sessiond != # Export the tests and extras build conditions. AS_IF([\ +test "x$enable_tests" != "xno" && \ test "x$enable_bin_lttng" != "xno" && \ test "x$enable_bin_lttng_consumerd" != "xno" && \ test "x$enable_bin_lttng_crash" != "xno" && \ -- 2.30.2 ================================================ FILE: package/lttng-tools/Config.in ================================================ config BR2_PACKAGE_LTTNG_TOOLS bool "lttng-tools" # liburcu only works on some architectures and requires thread support depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # uses dlfcn select BR2_PACKAGE_LIBURCU select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_POPT select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Userspace utilities for the LTTng 2.x tracing infrastructure. Those utilities are required on the target system to start and stop tracing sessions. Analysis of the trace can be done on the host machine using the babeltrace utility. This utility is automatically built by Buildroot in $(O)/host/bin/babeltrace, as a dependency of lttng-tools. However, there is also a lttng-babeltrace package for the target, if babeltrace on the target is interesting. If userspace tracing is desired, you need to enable lttng-libust. http://lttng.org comment "lttng-tools needs a toolchain w/ threads, dynamic library" depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/lttng-tools/lttng-tools.hash ================================================ # From https://lttng.org/files/lttng-tools/lttng-tools-2.12.3.tar.bz2.sha256 sha256 2890da230edd523fcf497e9eb28133b7606d64fa01bcbffadbfcba42104db153 lttng-tools-2.12.3.tar.bz2 # Locally computed sha256 068e55c7dbe597400199aee75ac5e71bdb2ca88c4c9a4cfa8e1fbc61f933eda5 LICENSE sha256 6313108c23efffa36948f8b2cff1560a5935373b527b0e1a837cc77e6ed1bacd LICENSES/BSD-2-Clause sha256 7a83b1aeb460458db9a4bd521d7f237c45b1650f6e60ea5ffc71e49472454de3 LICENSES/BSD-3-Clause sha256 6841c85b94f9dab319356e3aaf9e969fcedad51d3aaadf665bf86f34f4186b62 LICENSES/GPL-2.0 sha256 d72921266bc8452a8789f8a04a82755373990d00b7e0b0f1a8edb8f854e94d1c LICENSES/LGPL-2.1 sha256 323c587d0ccf10e376f8bf9a7f31fb4ca6078105194b42e0b1e0ee2bc9bde71f LICENSES/MIT ================================================ FILE: package/lttng-tools/lttng-tools.mk ================================================ ################################################################################ # # lttng-tools # ################################################################################ LTTNG_TOOLS_VERSION = 2.12.3 LTTNG_TOOLS_SITE = https://lttng.org/files/lttng-tools LTTNG_TOOLS_SOURCE = lttng-tools-$(LTTNG_TOOLS_VERSION).tar.bz2 LTTNG_TOOLS_INSTALL_STAGING = YES LTTNG_TOOLS_LICENSE = GPL-2.0, LGPL-2.1 (include/lttng/*, src/lib/lttng-ctl/*) LTTNG_TOOLS_LICENSE_FILES = LICENSE $(addprefix LICENSES/,BSD-2-Clause BSD-3-Clause GPL-2.0 LGPL-2.1 MIT) LTTNG_TOOLS_DEPENDENCIES = liburcu libxml2 popt util-linux # We're patching configure.ac LTTNG_TOOLS_AUTORECONF = YES LTTNG_TOOLS_CONF_OPTS = \ --disable-man-pages \ --disable-tests \ --with-lttng-system-rundir=/run/lttng ifeq ($(BR2_PACKAGE_LTTNG_LIBUST),y) LTTNG_TOOLS_CONF_OPTS += --with-lttng-ust LTTNG_TOOLS_DEPENDENCIES += lttng-libust else LTTNG_TOOLS_CONF_OPTS += --without-lttng-ust endif $(eval $(autotools-package)) ================================================ FILE: package/lua/5.1.5/0001-root-path.patch ================================================ Adjust installation location to /usr. Signed-off-by: Francois Perrad Index: b/etc/lua.pc =================================================================== --- a/etc/lua.pc +++ b/etc/lua.pc @@ -8,7 +8,7 @@ R= 5.1.5 # grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/' -prefix= /usr/local +prefix= /usr INSTALL_BIN= ${prefix}/bin INSTALL_INC= ${prefix}/include INSTALL_LIB= ${prefix}/lib Index: b/src/luaconf.h =================================================================== --- a/src/luaconf.h +++ b/src/luaconf.h @@ -94,7 +94,7 @@ ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll" #else -#define LUA_ROOT "/usr/local/" +#define LUA_ROOT "/usr/" #define LUA_LDIR LUA_ROOT "share/lua/5.1/" #define LUA_CDIR LUA_ROOT "lib/lua/5.1/" #define LUA_PATH_DEFAULT \ ================================================ FILE: package/lua/5.1.5/0002-shared-libs-for-lua.patch ================================================ Add the compilation of a shared library. Compile the lua binary with the shared library. And install the shared library. The variable BUILDMODE allows to switch between static and dynamic mode. Signed-off-by: Francois Perrad Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -44,6 +44,7 @@ TO_BIN= lua luac TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp TO_LIB= liblua.a +TO_SOLIB = liblua.so.$(R) TO_MAN= lua.1 luac.1 # Lua version and release. @@ -61,6 +62,8 @@ install: dummy cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) + test -f src/$(TO_SOLIB) && cd src && $(INSTALL_EXEC) $(TO_SOLIB) $(INSTALL_LIB) || : + test -f src/$(TO_SOLIB) && ln -sf $(TO_SOLIB) $(INSTALL_LIB)/liblua.so || : cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) Index: b/src/Makefile =================================================================== --- a/src/Makefile +++ b/src/Makefile @@ -23,6 +23,7 @@ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris LUA_A= liblua.a +LUA_SO= liblua.so CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \ lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \ lundump.o lvm.o lzio.o @@ -36,8 +37,13 @@ LUAC_O= luac.o print.o ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O) +ifneq (dynamic,$(BUILDMODE)) ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) +else +ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T) +endif ALL_A= $(LUA_A) +ALL_SO= $(LUA_SO) default: $(PLAT) @@ -47,12 +53,23 @@ a: $(ALL_A) +so: $(ALL_SO) + $(LUA_A): $(CORE_O) $(LIB_O) $(AR) $@ $(CORE_O) $(LIB_O) # DLL needs all object files $(RANLIB) $@ +$(LUA_SO): $(CORE_O) $(LIB_O) + $(CC) -o $@.$(PKG_VERSION) -shared -Wl,-soname="$@.$(PKG_VERSION)" $? + ln -fs $@.$(PKG_VERSION) $@ + +ifneq (dynamic,$(BUILDMODE)) $(LUA_T): $(LUA_O) $(LUA_A) $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) +else +$(LUA_T): $(LUA_O) $(LUA_SO) + $(CC) -o $@ -L. $(MYLDFLAGS) $(LUA_O) -llua $(LIBS) +endif $(LUAC_T): $(LUAC_O) $(LUA_A) $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) ================================================ FILE: package/lua/5.1.5/0011-linenoise.patch ================================================ Add support of linenoise (replace readline) see discussion, http://lua-users.org/lists/lua-l/2010-03/msg00879.html Signed-off-by: Francois Perrad Index: b/src/luaconf.h =================================================================== --- a/src/luaconf.h +++ b/src/luaconf.h @@ -279,6 +279,13 @@ if (lua_strlen(L,idx) > 0) /* non-empty line? */ \ add_history(lua_tostring(L, idx)); /* add it to history */ #define lua_freeline(L,b) ((void)L, free(b)) +#elif defined(LUA_USE_LINENOISE) +#include +#define lua_readline(L,b,p) ((void)L, ((b)=linenoise(p)) != NULL) +#define lua_saveline(L,idx) \ + if (lua_strlen(L,idx) > 0) /* non-empty line? */ \ + linenoiseHistoryAdd(lua_tostring(L, idx)); /* add it to history */ +#define lua_freeline(L,b) ((void)L, free(b)) #else #define lua_readline(L,b,p) \ ((void)L, fputs(p, stdout), fflush(stdout), /* show prompt */ \ ================================================ FILE: package/lua/5.1.5/0012-fix-reader-at-eoz.patch ================================================ When loading a file, Lua may call the reader function again after it returned end of input. Fetch from: http://www.lua.org/bugs.html#5.1.5-2 Signed-off-by: Francois Perrad Index: b/src/lzio.c =================================================================== --- a/src/lzio.c +++ b/src/lzio.c @@ -22,10 +22,14 @@ size_t size; lua_State *L = z->L; const char *buff; + if (z->eoz) return EOZ; lua_unlock(L); buff = z->reader(L, z->data, &size); lua_lock(L); - if (buff == NULL || size == 0) return EOZ; + if (buff == NULL || size == 0) { + z->eoz = 1; /* avoid calling reader function next time */ + return EOZ; + } z->n = size - 1; z->p = buff; return char2int(*(z->p++)); @@ -51,6 +55,7 @@ z->data = data; z->n = 0; z->p = NULL; + z->eoz = 0; } Index: b/src/lzio.h =================================================================== --- a/src/lzio.h +++ b/src/lzio.h @@ -59,6 +59,7 @@ lua_Reader reader; void* data; /* additional data */ lua_State *L; /* Lua state (for reader) */ + int eoz; /* true if reader has no more data */ }; ================================================ FILE: package/lua/5.1.5/lua.hash ================================================ # Hashes from: http://www.lua.org/ftp/ md5 2e115fe26e435e33b0d5c022e4490567 lua-5.1.5.tar.gz sha1 b3882111ad02ecc6b972f8c1241647905cb2e3fc lua-5.1.5.tar.gz # Locally computed sha256 ee5e3e82af1e1b543c4f216e399d7c8cfee797711913f349e385101c4ae60a79 COPYRIGHT ================================================ FILE: package/lua/5.3.6/0001-root-path.patch ================================================ Adjust installation location to /usr. Signed-off-by: Francois Perrad Index: b/src/luaconf.h =================================================================== --- a/src/luaconf.h +++ b/src/luaconf.h @@ -200,7 +200,7 @@ #else /* }{ */ -#define LUA_ROOT "/usr/local/" +#define LUA_ROOT "/usr/" #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" #define LUA_PATH_DEFAULT \ ================================================ FILE: package/lua/5.3.6/0002-shared-libs-for-lua.patch ================================================ Add the compilation of a shared library. Compile the lua binary with the shared library. And install the shared library. The variable BUILDMODE allows to switch between static and dynamic mode. Signed-off-by: Francois Perrad Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -42,6 +42,7 @@ TO_BIN= lua luac TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp TO_LIB= liblua.a +TO_SOLIB = liblua.so.$(R) TO_MAN= lua.1 luac.1 # Lua version and release. @@ -60,6 +61,8 @@ install: dummy cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) + test -f src/$(TO_SOLIB) && cd src && $(INSTALL_EXEC) $(TO_SOLIB) $(INSTALL_LIB) || : + test -f src/$(TO_SOLIB) && ln -sf $(TO_SOLIB) $(INSTALL_LIB)/liblua.so || : cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) Index: b/src/Makefile =================================================================== --- a/src/Makefile +++ b/src/Makefile @@ -29,6 +29,7 @@ PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris LUA_A= liblua.a +LUA_SO= liblua.so CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ ltm.o lundump.o lvm.o lzio.o @@ -43,8 +44,13 @@ LUAC_O= luac.o ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +ifneq (dynamic,$(BUILDMODE)) ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) +else +ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T) +endif ALL_A= $(LUA_A) +ALL_SO= $(LUA_SO) # Targets start here. default: $(PLAT) @@ -55,12 +61,23 @@ a: $(ALL_A) +so: $(ALL_SO) + $(LUA_A): $(BASE_O) $(AR) $@ $(BASE_O) $(RANLIB) $@ +$(LUA_SO): $(CORE_O) $(LIB_O) + $(CC) -o $@.$(PKG_VERSION) -shared -Wl,-soname="$@.$(PKG_VERSION)" $? + ln -fs $@.$(PKG_VERSION) $@ + +ifneq (dynamic,$(BUILDMODE)) $(LUA_T): $(LUA_O) $(LUA_A) $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) +else +$(LUA_T): $(LUA_O) $(LUA_SO) + $(CC) -o $@ -L. $(LDFLAGS) $(LUA_O) -llua $(LIBS) +endif $(LUAC_T): $(LUAC_O) $(LUA_A) $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) ================================================ FILE: package/lua/5.3.6/0003-linenoise.patch ================================================ Add support of linenoise (replace readline) see discussion, http://lua-users.org/lists/lua-l/2010-03/msg00879.html Signed-off-by: Francois Perrad Index: b/src/lua.c =================================================================== --- a/src/lua.c +++ b/src/lua.c @@ -85,6 +85,13 @@ #define lua_saveline(L,line) ((void)L, add_history(line)) #define lua_freeline(L,b) ((void)L, free(b)) +#elif defined(LUA_USE_LINENOISE) + +#include +#define lua_readline(L,b,p) ((void)L, ((b)=linenoise(p)) != NULL) +#define lua_saveline(L,line) ((void)L, linenoiseHistoryAdd(line)) +#define lua_freeline(L,b) ((void)L, free(b)) + #else /* }{ */ #define lua_readline(L,b,p) \ ================================================ FILE: package/lua/5.3.6/lua.hash ================================================ # Hashes from: http://www.lua.org/ftp/ md5 83f23dbd5230140a3770d5f54076948d lua-5.3.6.tar.gz sha1 f27d20d6c81292149bc4308525a9d6733c224fa5 lua-5.3.6.tar.gz # Locally computed sha256 2ddff2161e0c4487d744943565538743c0721485873092f6809d072a983b06ef doc/readme.html ================================================ FILE: package/lua/5.4.3/0001-root-path.patch ================================================ Adjust installation location to /usr. Signed-off-by: Francois Perrad Index: b/src/luaconf.h =================================================================== --- a/src/luaconf.h +++ b/src/luaconf.h @@ -217,7 +217,7 @@ #else /* }{ */ -#define LUA_ROOT "/usr/local/" +#define LUA_ROOT "/usr/" #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" ================================================ FILE: package/lua/5.4.3/0002-shared-libs-for-lua.patch ================================================ Add the compilation of a shared library. Compile the lua binary with the shared library. And install the shared library. The variable BUILDMODE allows to switch between static and dynamic mode. Signed-off-by: Francois Perrad Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -42,6 +42,7 @@ TO_BIN= lua luac TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp TO_LIB= liblua.a +TO_SOLIB = liblua.so.$(R) TO_MAN= lua.1 luac.1 # Lua version and release. @@ -57,6 +58,8 @@ install: dummy cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) + test -f src/$(TO_SOLIB) && cd src && $(INSTALL_EXEC) $(TO_SOLIB) $(INSTALL_LIB) || : + test -f src/$(TO_SOLIB) && ln -sf $(TO_SOLIB) $(INSTALL_LIB)/liblua.so || : cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) Index: b/src/Makefile =================================================================== --- a/src/Makefile +++ b/src/Makefile @@ -33,6 +33,7 @@ PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris LUA_A= liblua.a +LUA_SO= liblua.so CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) @@ -44,8 +45,13 @@ LUAC_O= luac.o ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +ifneq (dynamic,$(BUILDMODE)) ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) +else +ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T) +endif ALL_A= $(LUA_A) +ALL_SO= $(LUA_SO) # Targets start here. default: $(PLAT) @@ -56,12 +62,23 @@ a: $(ALL_A) +so: $(ALL_SO) + $(LUA_A): $(BASE_O) $(AR) $@ $(BASE_O) $(RANLIB) $@ +$(LUA_SO): $(CORE_O) $(LIB_O) + $(CC) -o $@.$(PKG_VERSION) -shared -Wl,-soname="$@.$(PKG_VERSION)" $? + ln -fs $@.$(PKG_VERSION) $@ + +ifneq (dynamic,$(BUILDMODE)) $(LUA_T): $(LUA_O) $(LUA_A) $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) +else +$(LUA_T): $(LUA_O) $(LUA_SO) + $(CC) -o $@ -L. $(LDFLAGS) $(LUA_O) -llua $(LIBS) +endif $(LUAC_T): $(LUAC_O) $(LUA_A) $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) ================================================ FILE: package/lua/5.4.3/0011-linenoise.patch ================================================ Add support of linenoise (replace readline) see discussion, http://lua-users.org/lists/lua-l/2010-03/msg00879.html Signed-off-by: Francois Perrad Index: b/src/lua.c =================================================================== --- a/src/lua.c +++ b/src/lua.c @@ -421,6 +421,14 @@ #define lua_saveline(L,line) ((void)L, add_history(line)) #define lua_freeline(L,b) ((void)L, free(b)) +#elif defined(LUA_USE_LINENOISE) + +#include +#define lua_initreadline(L) ((void)L) +#define lua_readline(L,b,p) ((void)L, ((b)=linenoise(p)) != NULL) +#define lua_saveline(L,line) ((void)L, linenoiseHistoryAdd(line)) +#define lua_freeline(L,b) ((void)L, free(b)) + #else /* }{ */ #define lua_initreadline(L) ((void)L) ================================================ FILE: package/lua/5.4.3/lua.hash ================================================ # Hashes from: https://www.lua.org/ftp/ md5 ef63ed2ecfb713646a7fcc583cf5f352 lua-5.4.3.tar.gz sha1 1dda2ef23a9828492b4595c0197766de6e784bc7 lua-5.4.3.tar.gz # Locally computed sha256 d205bfea131113bcdd64d4ebe4a50ce34063b42bad24b93e44b4b0d853ae4d49 doc/readme.html ================================================ FILE: package/lua/Config.in ================================================ config BR2_PACKAGE_LUA bool "lua" select BR2_PACKAGE_HAS_LUAINTERPRETER help Lua is a powerful, fast, light-weight, embeddable scripting language. http://www.lua.org/ if BR2_PACKAGE_LUA config BR2_PACKAGE_PROVIDES_LUAINTERPRETER default "lua" choice prompt "Lua Version" default BR2_PACKAGE_LUA_5_3 help Select the version of Lua API/ABI you wish to use. config BR2_PACKAGE_LUA_5_1 bool "Lua 5.1.x" select BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 config BR2_PACKAGE_LUA_5_3 bool "Lua 5.3.x" select BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_3 config BR2_PACKAGE_LUA_5_4 bool "Lua 5.4.x" select BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_4 endchoice if BR2_PACKAGE_LUA_5_3 || BR2_PACKAGE_LUA_5_4 config BR2_PACKAGE_LUA_32BITS bool "Use 32 bit numbers" default y if !BR2_ARCH_IS_64 help Use a 32 bit data type for numbers / integers instead of the default 64 bit type. This option is particularly attractive for small machines and embedded systems. endif choice prompt "Lua command-line editing" default BR2_PACKAGE_LUA_EDITING_NONE config BR2_PACKAGE_LUA_EDITING_NONE bool "none" help None. config BR2_PACKAGE_LUA_READLINE bool "readline support" select BR2_PACKAGE_READLINE select BR2_PACKAGE_NCURSES help Enables command-line editing in the Lua interpreter. config BR2_PACKAGE_LUA_LINENOISE bool "linenoise support" select BR2_PACKAGE_LINENOISE help Enables command-line editing in the Lua interpreter. endchoice endif ================================================ FILE: package/lua/lua.mk ================================================ ################################################################################ # # lua # ################################################################################ ifeq ($(BR2_PACKAGE_LUA_5_4),y) LUA_VERSION = 5.4.3 else ifeq ($(BR2_PACKAGE_LUA_5_3),y) LUA_VERSION = 5.3.6 else LUA_VERSION = 5.1.5 endif LUA_SITE = https://www.lua.org/ftp LUA_INSTALL_STAGING = YES LUA_LICENSE = MIT ifeq ($(BR2_PACKAGE_LUA_5_3)$(BR2_PACKAGE_LUA_5_4),y) LUA_LICENSE_FILES = doc/readme.html else LUA_LICENSE_FILES = COPYRIGHT endif LUA_CPE_ID_VENDOR = lua LUA_PROVIDES = luainterpreter LUA_CFLAGS = -Wall -fPIC -DLUA_USE_POSIX ifeq ($(BR2_PACKAGE_LUA_5_4),y) LUA_CFLAGS += -DLUA_COMPAT_5_3 else ifeq ($(BR2_PACKAGE_LUA_5_3),y) LUA_CFLAGS += -DLUA_COMPAT_5_2 endif ifeq ($(BR2_STATIC_LIBS),y) LUA_BUILDMODE = static else LUA_BUILDMODE = dynamic LUA_CFLAGS += -DLUA_USE_DLOPEN LUA_MYLIBS += -ldl endif ifeq ($(BR2_PACKAGE_LUA_READLINE),y) LUA_DEPENDENCIES += readline ncurses LUA_MYLIBS += -lreadline -lhistory -lncurses LUA_CFLAGS += -DLUA_USE_READLINE else ifeq ($(BR2_PACKAGE_LUA_LINENOISE),y) LUA_DEPENDENCIES += linenoise LUA_MYLIBS += -llinenoise LUA_CFLAGS += -DLUA_USE_LINENOISE endif endif ifeq ($(BR2_PACKAGE_LUA_32BITS),y) define LUA_32BITS_LUACONF $(SED) 's/\/\* #define LUA_32BITS \*\//#define LUA_32BITS/' $(@D)/src/luaconf.h endef LUA_POST_PATCH_HOOKS += LUA_32BITS_LUACONF endif define HOST_LUA_LUACONF $(SED) 's|#define LUA_ROOT.*|#define LUA_ROOT "$(HOST_DIR)/usr/"|' $(@D)/src/luaconf.h endef HOST_LUA_POST_PATCH_HOOKS += HOST_LUA_LUACONF HOST_LUA_CFLAGS = -Wall -fPIC -DLUA_USE_DLOPEN -DLUA_USE_POSIX ifeq ($(BR2_PACKAGE_LUA_5_3),y) HOST_LUA_CFLAGS += -DLUA_COMPAT_5_2 endif HOST_LUA_MYLIBS = -ldl define LUA_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) \ CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" \ CFLAGS="$(TARGET_CFLAGS) $(LUA_CFLAGS)" \ MYLIBS="$(LUA_MYLIBS)" AR="$(TARGET_CROSS)ar rcu" \ MYLDFLAGS="$(TARGET_LDFLAGS)" \ BUILDMODE=$(LUA_BUILDMODE) \ PKG_VERSION=$(LUA_VERSION) -C $(@D)/src all sed -e "s/@VERSION@/$(LUA_VERSION)/;s/@ABI@/$(LUAINTERPRETER_ABIVER)/;s/@MYLIBS@/$(LUA_MYLIBS)/" \ package/lua/lua.pc.in > $(@D)/lua.pc endef define HOST_LUA_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) \ CFLAGS="$(HOST_LUA_CFLAGS)" \ MYLDFLAGS="$(HOST_LDFLAGS)" \ MYLIBS="$(HOST_LUA_MYLIBS)" \ BUILDMODE=dynamic \ PKG_VERSION=$(LUA_VERSION) -C $(@D)/src all sed -e "s/@VERSION@/$(LUA_VERSION)/;s/@ABI@/$(LUAINTERPRETER_ABIVER)/;s/@MYLIBS@/$(HOST_LUA_MYLIBS)/" \ package/lua/lua.pc.in > $(@D)/lua.pc endef define LUA_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) INSTALL_TOP="$(STAGING_DIR)/usr" -C $(@D) install $(INSTALL) -m 0644 -D $(@D)/lua.pc \ $(STAGING_DIR)/usr/lib/pkgconfig/lua.pc endef define LUA_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) INSTALL_TOP="$(TARGET_DIR)/usr" -C $(@D) install endef define HOST_LUA_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) INSTALL_TOP="$(HOST_DIR)" -C $(@D) install $(INSTALL) -m 0644 -D $(@D)/lua.pc \ $(HOST_DIR)/lib/pkgconfig/lua.pc endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/lua/lua.pc.in ================================================ # lua.pc -- pkg-config data for Lua V= @ABI@ R= @VERSION@ prefix= /usr INSTALL_BIN= ${prefix}/bin INSTALL_INC= ${prefix}/include INSTALL_LIB= ${prefix}/lib INSTALL_MAN= ${prefix}/man/man1 INSTALL_LMOD= ${prefix}/share/lua/${V} INSTALL_CMOD= ${prefix}/lib/lua/${V} # canonical vars exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: Lua Description: An Extensible Extension Language Version: ${R} Requires: Libs: -L${libdir} -llua -lm @MYLIBS@ Cflags: -I${includedir} # (end of lua.pc) ================================================ FILE: package/lua-augeas/Config.in ================================================ config BR2_PACKAGE_LUA_AUGEAS bool "lua-augeas" depends on !BR2_arc # augeas depends on BR2_USE_WCHAR # augeas select BR2_PACKAGE_AUGEAS help Lua binding for augeas library https://github.com/ncopa/lua-augeas comment "lua-augeas needs a toolchain w/ wchar" depends on !BR2_arc depends on !BR2_USE_WCHAR ================================================ FILE: package/lua-augeas/lua-augeas.hash ================================================ # Locally computed: sha256 694fe887eebac27b558c9695042405f70a86382e92916094e7ba5f411673fbc1 lua-augeas-a6eace5116d1a711218a7c9086a4e3c4db88ee57.tar.gz sha256 1f5c5ee5da981332b7f73cc5a59af660b03104279e2aa21b6b86890430c3eff0 COPYRIGHT ================================================ FILE: package/lua-augeas/lua-augeas.mk ================================================ ################################################################################ # # lua-augeas # ################################################################################ LUA_AUGEAS_VERSION = a6eace5116d1a711218a7c9086a4e3c4db88ee57 LUA_AUGEAS_SITE = $(call github,ncopa,lua-augeas,$(LUA_AUGEAS_VERSION)) LUA_AUGEAS_LICENSE = MIT LUA_AUGEAS_LICENSE_FILES = COPYRIGHT LUA_AUGEAS_DEPENDENCIES = luainterpreter augeas host-pkgconf # LDFLAGS=$(LDFLAGS) is present to pass LDFLAGS from environment to the command # line. With LDFLAGS set in the command line, related ordinary asignment present # in the makefile are ignored and so lua-augeas makefile cannot not add '-L/lib' # to this value. LUA_AUGEAS_CONF_OPTS= \ PKGCONFIG="$(PKG_CONFIG_HOST_BINARY)" \ LDFLAGS="$(LDFLAGS)" \ LUA_VERSION="$(LUAINTERPRETER_ABIVER)" \ INSTALL_CMOD="/usr/lib/lua/$(LUAINTERPRETER_ABIVER)" define LUA_AUGEAS_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(LUA_AUGEAS_CONF_OPTS) all endef define LUA_AUGEAS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(LUA_AUGEAS_CONF_OPTS) DESTDIR="$(TARGET_DIR)" install endef $(eval $(generic-package)) ================================================ FILE: package/lua-basexx/Config.in ================================================ config BR2_PACKAGE_LUA_BASEXX bool "lua-basexx" help A Lua library which provides base2(bitfield), base16(hex), base32(crockford/rfc), base64(rfc/url), base85(z85) decoding and encoding. https://github.com/aiq/basexx ================================================ FILE: package/lua-basexx/lua-basexx.hash ================================================ # computed by luarocks/buildroot sha256 ff5379b1f5b396103b8bb589ab3dd94d0a727c8e7a48dcfe1c73e2f07af6a8df basexx-0.4.0-1.src.rock sha256 a1826a43c9e04f9e9b2e5d26d636c656812483bcd513618eec9d72cee69d446b basexx-0.4.0/LICENSE ================================================ FILE: package/lua-basexx/lua-basexx.mk ================================================ ################################################################################ # # lua-basexx # ################################################################################ LUA_BASEXX_VERSION = 0.4.0-1 LUA_BASEXX_NAME_UPSTREAM = basexx LUA_BASEXX_LICENSE = MIT LUA_BASEXX_LICENSE_FILES = $(LUA_BASEXX_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-binaryheap/Config.in ================================================ config BR2_PACKAGE_LUA_BINARYHEAP bool "lua-binaryheap" help Binary heap implementation in pure Lua. https://github.com/Tieske/binaryheap.lua ================================================ FILE: package/lua-binaryheap/lua-binaryheap.hash ================================================ # computed by luarocks/buildroot sha256 ecce14dedfa7a1938aa2383c83036b98461876934f169384a2cec6bb46462d87 binaryheap-0.4-1.src.rock ================================================ FILE: package/lua-binaryheap/lua-binaryheap.mk ================================================ ################################################################################ # # lua-binaryheap # ################################################################################ LUA_BINARYHEAP_VERSION = 0.4-1 LUA_BINARYHEAP_NAME_UPSTREAM = binaryheap LUA_BINARYHEAP_SUBDIR = binaryheap.lua-version_0v4 LUA_BINARYHEAP_LICENSE = MIT $(eval $(luarocks-package)) ================================================ FILE: package/lua-bit32/Config.in ================================================ config BR2_PACKAGE_LUA_BIT32 bool "lua-bit32" help bit32 is the native Lua 5.2 bit manipulation library, in the version from Lua 5.3; it is compatible with Lua 5.1, 5.2 and 5.3. http://www.lua.org/manual/5.2/manual.html#6.7 ================================================ FILE: package/lua-bit32/lua-bit32.hash ================================================ # computed by luarocks/buildroot sha256 0e273427f2b877270f9cec5642ebe2670242926ba9638d4e6df7e4e1263ca12c bit32-5.3.5.1-1.src.rock sha256 1b24f475812c979684fb3469f6faccbdc7c33c9d39421728aa0d78deda5a89a5 lua-compat-5.3-0.10/LICENSE ================================================ FILE: package/lua-bit32/lua-bit32.mk ================================================ ################################################################################ # # lua-bit32 # ################################################################################ LUA_BIT32_VERSION = 5.3.5.1-1 LUA_BIT32_NAME_UPSTREAM = bit32 LUA_BIT32_SUBDIR = lua-compat-5.3-0.10 LUA_BIT32_LICENSE = MIT LUA_BIT32_LICENSE_FILES = $(LUA_BIT32_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-cjson/Config.in ================================================ config BR2_PACKAGE_LUA_CJSON bool "lua-cjson" help The Lua CJSON module provides JSON support for Lua. It features: - Fast, standards compliant encoding/parsing routines - Full support for JSON with UTF-8, including decoding surrogate pairs - Optional run-time support for common exceptions to the JSON specification (infinity, NaN, ...) - No dependencies on other libraries (C-module) http://www.kyne.com.au/~mark/software/lua-cjson.php ================================================ FILE: package/lua-cjson/lua-cjson.hash ================================================ # computed by luarocks/buildroot sha256 455fa7d07d8ac9d61f68f538958f8e28972256f38b0a1c2740873daf809d1837 lua-cjson-2.1.0.6-1.src.rock sha256 9576e82ef5013fbe80b3bd446a7d9ddd47328baa2186c31d3d885e2a9a8cd31e lua-cjson/LICENSE ================================================ FILE: package/lua-cjson/lua-cjson.mk ================================================ ################################################################################ # # lua-cjson # ################################################################################ LUA_CJSON_VERSION = 2.1.0.6-1 LUA_CJSON_SUBDIR = lua-cjson LUA_CJSON_LICENSE = MIT LUA_CJSON_LICENSE_FILES = $(LUA_CJSON_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-coat/Config.in ================================================ config BR2_PACKAGE_LUA_COAT bool "lua-coat" help Yet Another Lua Object-Oriented Model. https://fperrad.frama.io/lua-Coat/ ================================================ FILE: package/lua-coat/lua-coat.hash ================================================ # computed by luarocks/buildroot sha256 24d0e894d743f46c09a282e4dd272d2a6004557608b618c1c9d9f464dd65af02 lua-coat-0.9.2-1.src.rock sha256 81b5f657812ccfd63f19c9af1389b5fe6b26f079a4841c5d074940c47bf7cb1e lua-Coat-0.9.2/COPYRIGHT ================================================ FILE: package/lua-coat/lua-coat.mk ================================================ ################################################################################ # # lua-coat # ################################################################################ LUA_COAT_VERSION = 0.9.2-1 LUA_COAT_NAME_UPSTREAM = lua-Coat LUA_COAT_LICENSE = MIT LUA_COAT_LICENSE_FILES = $(LUA_COAT_SUBDIR)/COPYRIGHT $(eval $(luarocks-package)) ================================================ FILE: package/lua-coatpersistent/Config.in ================================================ config BR2_PACKAGE_LUA_COATPERSISTENT bool "lua-coatpersistent" depends on BR2_PACKAGE_LSQLITE3 || BR2_PACKAGE_LUASQL_SQLITE3 select BR2_PACKAGE_DADO # runtime select BR2_PACKAGE_LUA_COAT # runtime help An ORM for lua-Coat. https://fperrad.frama.io/lua-CoatPersistent/ comment "lua-coatpersistent needs lsqlite3 or luasql-sqlite3" depends on !BR2_PACKAGE_LSQLITE3 && !BR2_PACKAGE_LUASQL_SQLITE3 ================================================ FILE: package/lua-coatpersistent/lua-coatpersistent.hash ================================================ # computed by luarocks/buildroot sha256 e718ee36a17312108f266e8412f840db150afd89e8587d36e685673fff65f142 lua-coatpersistent-lsqlite3-0.2.2-1.src.rock sha256 5d36d6a8b413a2d56a466a45314291a0265c514a179e741b3fc95f4dd901abe6 lua-coatpersistent-luasql-0.2.2-1.src.rock sha256 f8ed30644056ceff4315e694a1c1af4af4f08ec0adabae353ab8f3f5289ffbf3 lua-CoatPersistent-0.2.2/COPYRIGHT ================================================ FILE: package/lua-coatpersistent/lua-coatpersistent.mk ================================================ ################################################################################ # # lua-coatpersistent # ################################################################################ LUA_COATPERSISTENT_VERSION_UPSTREAM = 0.2.2 ifeq ($(BR2_PACKAGE_LSQLITE3),y) LUA_COATPERSISTENT_VERSION = lsqlite3-$(LUA_COATPERSISTENT_VERSION_UPSTREAM)-1 else LUA_COATPERSISTENT_VERSION = luasql-$(LUA_COATPERSISTENT_VERSION_UPSTREAM)-1 endif LUA_COATPERSISTENT_SUBDIR = lua-CoatPersistent-$(LUA_COATPERSISTENT_VERSION_UPSTREAM) LUA_COATPERSISTENT_LICENSE = MIT LUA_COATPERSISTENT_LICENSE_FILES = $(LUA_COATPERSISTENT_SUBDIR)/COPYRIGHT $(eval $(luarocks-package)) ================================================ FILE: package/lua-codegen/Config.in ================================================ config BR2_PACKAGE_LUA_CODEGEN bool "lua-codegen" help A template engine. https://fperrad.frama.io/lua-CodeGen ================================================ FILE: package/lua-codegen/lua-codegen.hash ================================================ # computed by luarocks/buildroot sha256 c09126d7f5d0fa9c867ee9108eb5961dab111320ee35e5f842317f6058e922ec lua-codegen-0.3.3-1.src.rock sha256 f09265c450c3a59558ecc552ea4ba61e5a74dec995738eec545d121718833a80 lua-CodeGen-0.3.3/COPYRIGHT ================================================ FILE: package/lua-codegen/lua-codegen.mk ================================================ ################################################################################ # # lua-codegen # ################################################################################ LUA_CODEGEN_VERSION = 0.3.3-1 LUA_CODEGEN_NAME_UPSTREAM = lua-CodeGen LUA_CODEGEN_LICENSE = MIT LUA_CODEGEN_LICENSE_FILES = $(LUA_CODEGEN_SUBDIR)/COPYRIGHT $(eval $(luarocks-package)) ================================================ FILE: package/lua-compat53/Config.in ================================================ config BR2_PACKAGE_LUA_COMPAT53 bool "lua-compat53" depends on BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 help Compatibility module providing Lua-5.3-style APIs for Lua 5.2 and 5.1. https://github.com/keplerproject/lua-compat-5.3 ================================================ FILE: package/lua-compat53/lua-compat53.hash ================================================ # computed by luarocks/buildroot sha256 e513e75ba0ef4923a1ec0d4f0beb5972a11cc9bd7ac1b0953b5e4f037b259c92 compat53-0.8-1.src.rock sha256 1b24f475812c979684fb3469f6faccbdc7c33c9d39421728aa0d78deda5a89a5 lua-compat-5.3-0.8/LICENSE ================================================ FILE: package/lua-compat53/lua-compat53.mk ================================================ ################################################################################ # # lua-compat53 # ################################################################################ LUA_COMPAT53_VERSION_UPSTREAM = 0.8 LUA_COMPAT53_VERSION = $(LUA_COMPAT53_VERSION_UPSTREAM)-1 LUA_COMPAT53_NAME_UPSTREAM = compat53 LUA_COMPAT53_SUBDIR = lua-compat-5.3-$(LUA_COMPAT53_VERSION_UPSTREAM) LUA_COMPAT53_LICENSE = MIT LUA_COMPAT53_LICENSE_FILES = $(LUA_COMPAT53_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-cqueues/Config.in ================================================ config BR2_PACKAGE_LUA_CQUEUES bool "lua-cqueues" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_OPENSSL help Continuation Queues: Embeddable asynchronous networking, threading, and notification framework for Lua on Unix. http://25thandclement.com/~william/projects/cqueues.html comment "lua-cqueues needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/lua-cqueues/lua-cqueues.hash ================================================ # Locally calculated sha256 9e112edd246da5cfca264314b70325a0b63665cb87a00e45ee3ae4f194000d52 lua-cqueues-20200726.tar.gz sha256 5f4b1f94047790eadf8fd0f9a8e3bd2895bea4c9a2c0f8bf7cd8c8e57caa5219 LICENSE ================================================ FILE: package/lua-cqueues/lua-cqueues.mk ================================================ ################################################################################ # # lua-cqueues # ################################################################################ LUA_CQUEUES_VERSION = 20200726 LUA_CQUEUES_SITE = $(call github,wahern,cqueues,rel-$(LUA_CQUEUES_VERSION)) LUA_CQUEUES_LICENSE = MIT LUA_CQUEUES_LICENSE_FILES = LICENSE LUA_CQUEUES_DEPENDENCIES = luainterpreter openssl host-m4 LUA_CQUEUES_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) LUA_CQUEUES_CFLAGS += -O0 endif define LUA_CQUEUES_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(LUA_CQUEUES_CFLAGS)" -C $(@D) \ prefix="$(STAGING_DIR)/usr" all$(LUAINTERPRETER_ABIVER) endef define LUA_CQUEUES_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE1) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ DESTDIR="$(TARGET_DIR)" prefix=/usr install$(LUAINTERPRETER_ABIVER) endef $(eval $(generic-package)) ================================================ FILE: package/lua-csnappy/Config.in ================================================ config BR2_PACKAGE_LUA_CSNAPPY bool "lua-csnappy" help lua-csnappy is a binding of the csnappy library which implements the Google's Snappy (de)compressor. https://fperrad.frama.io/lua-csnappy/ ================================================ FILE: package/lua-csnappy/lua-csnappy.hash ================================================ # computed by luarocks/buildroot sha256 4fc373ba714cb8b428e9971f1725d82de6a43dfea361a0b7894e4762238dc95c lua-csnappy-0.1.5-1.src.rock sha256 8865da757dbc6fe3c8cee4d88bdfd82c1e0e789974a4d0d52db75a985025c1f0 lua-csnappy-0.1.5/COPYRIGHT ================================================ FILE: package/lua-csnappy/lua-csnappy.mk ================================================ ################################################################################ # # lua-csnappy # ################################################################################ LUA_CSNAPPY_VERSION = 0.1.5-1 LUA_CSNAPPY_LICENSE = BSD-3-Clause LUA_CSNAPPY_LICENSE_FILES = $(LUA_CSNAPPY_SUBDIR)/COPYRIGHT $(eval $(luarocks-package)) ================================================ FILE: package/lua-curl/Config.in ================================================ config BR2_PACKAGE_LUA_CURL bool "lua-curl" select BR2_PACKAGE_LIBCURL help Lua binding to libcurl. https://lua-curl.github.io/ ================================================ FILE: package/lua-curl/lua-curl.hash ================================================ # computed by luarocks/buildroot sha256 6b2cc48621fac3cb7c1669705475e67a6932829ba46efb9ac5864604848f8ea2 lua-curl-0.3.13-1.src.rock sha256 0f92f4c4665aadffb023de44b16022282040fe4409d5cd3148f1812dec30cdff Lua-cURLv3-0.3.13/LICENSE ================================================ FILE: package/lua-curl/lua-curl.mk ================================================ ################################################################################ # # lua-curl # ################################################################################ LUA_CURL_VERSION_UPSTREAM = 0.3.13 LUA_CURL_VERSION = $(LUA_CURL_VERSION_UPSTREAM)-1 LUA_CURL_SUBDIR = Lua-cURLv3-$(LUA_CURL_VERSION_UPSTREAM) LUA_CURL_LICENSE = MIT LUA_CURL_LICENSE_FILES = $(LUA_CURL_SUBDIR)/LICENSE LUA_CURL_DEPENDENCIES = libcurl $(eval $(luarocks-package)) ================================================ FILE: package/lua-datafile/Config.in ================================================ config BR2_PACKAGE_LUA_DATAFILE bool "lua-datafile" help datafile is a library for avoiding hardcoded paths when loading resource files in Lua modules. https://github.com/hishamhm/datafile ================================================ FILE: package/lua-datafile/lua-datafile.hash ================================================ # computed by luarocks/buildroot sha256 4f7d58c50267b5ebd2145e52aaa5fb63fbf63a74ae765f08e2d0dddd570b6b6a datafile-0.6-1.src.rock sha256 0443ddabab14f69d4c5e2641860343784a0ccbe5ae7a3743f20de9a13991da66 datafile/LICENSE ================================================ FILE: package/lua-datafile/lua-datafile.mk ================================================ ################################################################################ # # lua-datafile # ################################################################################ LUA_DATAFILE_VERSION = 0.6-1 LUA_DATAFILE_NAME_UPSTREAM = datafile LUA_DATAFILE_SUBDIR = datafile LUA_DATAFILE_LICENSE = MIT LUA_DATAFILE_LICENSE_FILES = $(LUA_DATAFILE_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-ev/Config.in ================================================ config BR2_PACKAGE_LUA_EV bool "lua-ev" select BR2_PACKAGE_LIBEV help Get access to the libev library from Lua. https://github.com/brimworks/lua-ev ================================================ FILE: package/lua-ev/lua-ev.hash ================================================ # Locally calculated sha256 4e26e05830955fdd882a1b48b535be94356582eea310327f839f830cd9250d3a lua-ev-339426fbe528f11cb3cd1af69a88f06bba367981.tar.gz sha256 c224cc31feec52e33b621ccdbc245e21316a20a134a4cd8706438a3b3382e8ac README ================================================ FILE: package/lua-ev/lua-ev.mk ================================================ ################################################################################ # # lua-ev # ################################################################################ LUA_EV_VERSION = 339426fbe528f11cb3cd1af69a88f06bba367981 LUA_EV_SITE = $(call github,brimworks,lua-ev,$(LUA_EV_VERSION)) LUA_EV_DEPENDENCIES = luainterpreter libev LUA_EV_LICENSE = MIT LUA_EV_LICENSE_FILES = README LUA_EV_CONF_OPTS = -DINSTALL_CMOD="/usr/lib/lua/$(LUAINTERPRETER_ABIVER)" $(eval $(cmake-package)) ================================================ FILE: package/lua-fifo/Config.in ================================================ config BR2_PACKAGE_LUA_FIFO bool "lua-fifo" help A lua library/'class' that implements a FIFO. https://github.com/daurnimator/fifo.lua ================================================ FILE: package/lua-fifo/lua-fifo.hash ================================================ # computed by luarocks/buildroot sha256 53dea24ad658614a0254dcb10296a1a0fc5357315ada5724d6362f54c32b4c20 fifo-0.2-0.src.rock sha256 8b4423dd4f55a69da1454b7a48346a54fd5b6e0408b38fde25cd29c0922962b6 fifo.lua-0.2/LICENSE ================================================ FILE: package/lua-fifo/lua-fifo.mk ================================================ ################################################################################ # # lua-fifo # ################################################################################ LUA_FIFO_VERSION_UPSTREAM = 0.2 LUA_FIFO_VERSION = $(LUA_FIFO_VERSION_UPSTREAM)-0 LUA_FIFO_NAME_UPSTREAM = fifo LUA_FIFO_SUBDIR = fifo.lua-$(LUA_FIFO_VERSION_UPSTREAM) LUA_FIFO_LICENSE = MIT LUA_FIFO_LICENSE_FILES = $(LUA_FIFO_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-flu/Config.in ================================================ config BR2_PACKAGE_LUA_FLU bool "lua-flu" depends on !BR2_STATIC_LIBS # libfuse depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse depends on BR2_USE_MMU # libfuse depends on !BR2_PACKAGE_LUA_5_4 select BR2_PACKAGE_ATTR select BR2_PACKAGE_LIBFUSE help Flu is a Lua binding for FUSE, which is a library allowing creation of filesystem drivers run in userspace. Flu is a high level binding, using basic Lua types rather than userdata whenever possible. http://piratery.net/flu/ comment "lua-flu needs a toolchain w/ threads, dynamic library, Lua <= 5.3" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || BR2_PACKAGE_LUA_5_4 ================================================ FILE: package/lua-flu/lua-flu.hash ================================================ # computed by luarocks/buildroot sha256 221ba8f8d3abbf12d5fc217dbb965605391892eb314eff1cd9c7beca90fe9887 flu-20181218-1.src.rock sha256 409f7c274eb26874a382241d675a360ba6b2659742c5941e680d71a41dd35913 doub-flu-63f077a988cd/doc/LICENSE.txt ================================================ FILE: package/lua-flu/lua-flu.mk ================================================ ################################################################################ # # lua-flu # ################################################################################ LUA_FLU_VERSION = 20181218-1 LUA_FLU_NAME_UPSTREAM = Flu LUA_FLU_SUBDIR = doub-flu-63f077a988cd LUA_FLU_LICENSE = MIT LUA_FLU_LICENSE_FILES = $(LUA_FLU_SUBDIR)/doc/LICENSE.txt LUA_FLU_DEPENDENCIES = attr libfuse $(eval $(luarocks-package)) ================================================ FILE: package/lua-gd/0001-Protect-declaration-of-LgdImageCreateFromPng-with-GD.patch ================================================ From 78afd1c5f1ceaed05b78ac42c297d87a493295fd Mon Sep 17 00:00:00 2001 From: spacewander Date: Tue, 31 Oct 2017 15:48:30 +0800 Subject: [PATCH] Protect declaration of LgdImageCreateFromPng* with GD_PNG feature test macro If GD_PNG is false, neither LgdImageCreateFromPng nor LgdImageCreateFromPngPtr would be implemented. We should avoid declaring them too. Fetch from: https://github.com/ittner/lua-gd/pull/8 Signed-off-by: Francois Perrad --- luagd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/luagd.c b/luagd.c index 9730ff7..98bc03e 100644 --- a/luagd.c +++ b/luagd.c @@ -2168,8 +2168,10 @@ static const luaL_Reg LgdFunctions[] = { "createFromGif", LgdImageCreateFromGif }, { "createFromGifStr", LgdImageCreateFromGifPtr }, #endif +#ifdef GD_PNG { "createFromPng", LgdImageCreateFromPng }, { "createFromPngStr", LgdImageCreateFromPngPtr }, +#endif { "createFromGd", LgdImageCreateFromGd }, { "createFromGdStr", LgdImageCreateFromGdPtr }, { "createFromGd2", LgdImageCreateFromGd2 }, -- 2.17.1 ================================================ FILE: package/lua-gd/Config.in ================================================ config BR2_PACKAGE_LUA_GD bool "lua-gd" select BR2_PACKAGE_GD help GD (graphics library) bindings for Lua. https://ittner.github.io/lua-gd/ ================================================ FILE: package/lua-gd/lua-gd.hash ================================================ # Locally calculated sha256 928fa036b37595d773db1999c9ff43195c4290f0722298fa5b0c3e619c678525 lua-gd-2ce8e478a8591afd71e607506bc8c64b161bbd30.tar.gz sha256 b0ca41d88ddb0ca785436d37b08b8f413055755eb6bfd3ea0a6ff3214303aa43 COPYING ================================================ FILE: package/lua-gd/lua-gd.mk ================================================ ################################################################################ # # lua-gd # ################################################################################ LUA_GD_VERSION = 2ce8e478a8591afd71e607506bc8c64b161bbd30 LUA_GD_SITE = $(call github,ittner,lua-gd,$(LUA_GD_VERSION)) LUA_GD_LICENSE = MIT LUA_GD_LICENSE_FILES = COPYING LUA_GD_DEPENDENCIES = luainterpreter gd ifeq ($(BR2_PACKAGE_FONTCONFIG),y) LUA_GD_FEATURES += -DGD_FONTCONFIG endif ifeq ($(BR2_PACKAGE_FREETYPE),y) LUA_GD_FEATURES += -DGD_FREETYPE endif ifeq ($(BR2_PACKAGE_JPEG),y) LUA_GD_FEATURES += -DGD_JPEG endif ifeq ($(BR2_PACKAGE_LIBPNG),y) LUA_GD_FEATURES += -DGD_PNG endif ifeq ($(BR2_PACKAGE_XLIB_LIBXPM),y) LUA_GD_FEATURES += -DGD_XPM endif # VERSION follows the scheme described on https://ittner.github.io/lua-gd/manual.html#intro, # the current version of the binding is 3. define LUA_GD_BUILD_CMDS $(MAKE) -C $(@D) gd.so \ GDFEATURES="$(LUA_GD_FEATURES)" \ CC=$(TARGET_CC) \ CFLAGS="$(TARGET_CFLAGS) -fPIC -DVERSION=\\\"$(GD_VERSION)r3\\\"" \ LFLAGS="-shared -lgd" endef define LUA_GD_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -D $(@D)/gd.so $(TARGET_DIR)/usr/lib/lua/$(LUAINTERPRETER_ABIVER)/gd.so endef $(eval $(generic-package)) ================================================ FILE: package/lua-http/Config.in ================================================ config BR2_PACKAGE_LUA_HTTP bool "lua-http" depends on BR2_TOOLCHAIN_HAS_THREADS # luaossl & lua-cqueues select BR2_PACKAGE_LPEG # runtime select BR2_PACKAGE_LUA_BASEXX # runtime select BR2_PACKAGE_LUA_BINARYHEAP # runtime select BR2_PACKAGE_LUA_COMPAT53 if BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 # runtime select BR2_PACKAGE_LUA_CQUEUES # runtime select BR2_PACKAGE_LUA_FIFO # runtime select BR2_PACKAGE_LUA_LPEG_PATTERNS # runtime select BR2_PACKAGE_LUABITOP if BR2_PACKAGE_LUA_5_1 # runtime select BR2_PACKAGE_LUAOSSL # runtime help HTTP library for Lua. https://github.com/daurnimator/lua-http comment "lua-http needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/lua-http/lua-http.hash ================================================ # computed by luarocks/buildroot sha256 dbe1b29ff89fb937059e4398c9a628361d97d856acc87fd8cd85cb9340cde328 http-0.4-0.src.rock sha256 1b486781068bcfd373f8c54f8d78eeab76d900bdf32e589e8330a4c563c2874b lua-http-0.4/LICENSE.md ================================================ FILE: package/lua-http/lua-http.mk ================================================ ################################################################################ # # lua-http # ################################################################################ LUA_HTTP_VERSION_UPSTREAM = 0.4 LUA_HTTP_VERSION = $(LUA_HTTP_VERSION_UPSTREAM)-0 LUA_HTTP_NAME_UPSTREAM = http LUA_HTTP_SUBDIR = lua-http-$(LUA_HTTP_VERSION_UPSTREAM) LUA_HTTP_LICENSE = MIT LUA_HTTP_LICENSE_FILES = $(LUA_HTTP_SUBDIR)/LICENSE.md $(eval $(luarocks-package)) ================================================ FILE: package/lua-iconv/Config.in ================================================ config BR2_PACKAGE_LUA_ICONV bool "lua-iconv" select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Lua binding to the POSIX 'iconv' library http://ittner.github.io/lua-iconv/ ================================================ FILE: package/lua-iconv/lua-iconv.hash ================================================ # computed by luarocks/buildroot sha256 fb66e785e15376c2d2817f1f1b27d10272b877eacc998c727a10f081a7d768fa lua-iconv-7-1.src.rock sha256 30227b9571827f3dfcdeb3830594fc415459d64ad7271e9954178d3ef58a9bd4 lua-iconv-7/COPYING ================================================ FILE: package/lua-iconv/lua-iconv.mk ================================================ ################################################################################ # # lua-iconv # ################################################################################ LUA_ICONV_VERSION = 7-1 LUA_ICONV_LICENSE = MIT LUA_ICONV_LICENSE_FILES = $(LUA_ICONV_SUBDIR)/COPYING LUA_ICONV_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv) $(eval $(luarocks-package)) ================================================ FILE: package/lua-livr/Config.in ================================================ config BR2_PACKAGE_LUA_LIVR bool "lua-livr" help Lightweight validator supporting Language Independent Validation Rules Specification (LIVR). https://fperrad.frama.io/lua-LIVR ================================================ FILE: package/lua-livr/lua-livr.hash ================================================ # computed by luarocks/buildroot sha256 e2f39316b8a1e66420c56e8ddc9ce4c0118c1a240582f2ba52d7627da6dfb76d lua-livr-0.2.2-1.src.rock sha256 69fd426251454ea43a8068e58ac25d882922372de6b22e249bb56e00ea2cd834 lua-LIVR-0.2.2/COPYRIGHT ================================================ FILE: package/lua-livr/lua-livr.mk ================================================ ################################################################################ # # lua-livr # ################################################################################ LUA_LIVR_VERSION = 0.2.2-1 LUA_LIVR_NAME_UPSTREAM = lua-LIVR LUA_LIVR_LICENSE = MIT LUA_LIVR_LICENSE_FILES = $(LUA_LIVR_SUBDIR)/COPYRIGHT $(eval $(luarocks-package)) ================================================ FILE: package/lua-livr-extra/Config.in ================================================ config BR2_PACKAGE_LUA_LIVR_EXTRA bool "lua-livr-extra" select BR2_PACKAGE_LUA_LIVR # runtime help more LIVR rules. https://fperrad.frama.io/lua-LIVR-extra ================================================ FILE: package/lua-livr-extra/lua-livr-extra.hash ================================================ # computed by luarocks/buildroot sha256 42fef357db3e05e32112ddebcd4296f040a825dfac77ff2fa03aedbdcdaac729 lua-livr-extra-0.1.1-1.src.rock sha256 96751dc604608ecf2357d1599bc2d2e9f56382793a6c218dc98d460759adbf07 lua-LIVR-extra-0.1.1/COPYRIGHT ================================================ FILE: package/lua-livr-extra/lua-livr-extra.mk ================================================ ################################################################################ # # lua-livr-extra # ################################################################################ LUA_LIVR_EXTRA_VERSION = 0.1.1-1 LUA_LIVR_EXTRA_NAME_UPSTREAM = lua-LIVR-extra LUA_LIVR_EXTRA_LICENSE = MIT LUA_LIVR_EXTRA_LICENSE_FILES = $(LUA_LIVR_EXTRA_SUBDIR)/COPYRIGHT $(eval $(luarocks-package)) ================================================ FILE: package/lua-lpeg-patterns/Config.in ================================================ config BR2_PACKAGE_LUA_LPEG_PATTERNS bool "lua-lpeg-patterns" select BR2_PACKAGE_LPEG # runtime help a collection of LPEG patterns. https://github.com/daurnimator/lpeg_patterns ================================================ FILE: package/lua-lpeg-patterns/lua-lpeg-patterns.hash ================================================ # computed by luarocks/buildroot sha256 0e6d33543689e83911e2cb47965752e00412cbdfca888812ccbde9ec95259c56 lpeg_patterns-0.5-0.src.rock sha256 5b0346f2b2432e5f05e8e4ad31503cf84ddf802dacde9e8c3e529efaa4be3348 lpeg_patterns-0.5/LICENSE.md ================================================ FILE: package/lua-lpeg-patterns/lua-lpeg-patterns.mk ================================================ ################################################################################ # # lua-lpeg-patterns # ################################################################################ LUA_LPEG_PATTERNS_VERSION = 0.5-0 LUA_LPEG_PATTERNS_NAME_UPSTREAM = lpeg_patterns LUA_LPEG_PATTERNS_ROCKSPEC = $(LUA_LPEG_PATTERNS_NAME_UPSTREAM)-$(LUA_LPEG_PATTERNS_VERSION).rockspec LUA_LPEG_PATTERNS_SOURCE = $(LUA_LPEG_PATTERNS_NAME_UPSTREAM)-$(LUA_LPEG_PATTERNS_VERSION).src.rock LUA_LPEG_PATTERNS_LICENSE = MIT LUA_LPEG_PATTERNS_LICENSE_FILES = $(LUA_LPEG_PATTERNS_SUBDIR)/LICENSE.md $(eval $(luarocks-package)) ================================================ FILE: package/lua-lunitx/Config.in ================================================ config BR2_PACKAGE_LUA_LUNITX bool "lua-lunitx" help Lunitx is a unit testing framework for lua, written in lua. https://github.com/dcurrie/lunit ================================================ FILE: package/lua-lunitx/lua-lunitx.hash ================================================ # computed by luarocks/buildroot sha256 2299facf4977f9b663e1ad402098139116a87a693c3df66e1f6b89e2cf47646f lunitx-0.8-1.src.rock sha256 3fcfcd6010d73bc2b22505b6a91779022a82661809a3e4e0a0bdd7b3463def8f lunit/LICENSE ================================================ FILE: package/lua-lunitx/lua-lunitx.mk ================================================ ################################################################################ # # lua-lunitx # ################################################################################ LUA_LUNITX_VERSION = 0.8-1 LUA_LUNITX_NAME_UPSTREAM = lunitx LUA_LUNITX_SUBDIR = lunit LUA_LUNITX_LICENSE = MIT LUA_LUNITX_LICENSE_FILES = $(LUA_LUNITX_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-lunix/0001-fix-with-uClibc.patch ================================================ From ee41d97a80b978f54941ac6857c00b8a8f28de24 Mon Sep 17 00:00:00 2001 From: Francois Perrad Date: Sun, 6 Jun 2021 17:55:06 +0200 Subject: [PATCH] fix with uClibc uClibc doesn't have is no sys_siglist. Signed-off-by: Francois Perrad --- lunix-rel-20170920/src/unix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lunix-rel-20170920/src/unix.c b/lunix-rel-20170920/src/unix.c index 5f3a70a..e561ab2 100644 --- a/lunix-rel-20170920/src/unix.c +++ b/lunix-rel-20170920/src/unix.c @@ -438,7 +438,7 @@ #endif #ifndef HAVE_SYS_SIGLIST -#define HAVE_SYS_SIGLIST (!MUSL_MAYBE && !__sun && !_AIX) +#define HAVE_SYS_SIGLIST (!MUSL_MAYBE && !__sun && !_AIX && !__UCLIBC__) #endif #ifndef HAVE_UNLINKAT -- 2.30.2 ================================================ FILE: package/lua-lunix/0002-remove-link-with-librt.patch ================================================ From aeaff83b9ae42547b8728edac000f3d41d5e44aa Mon Sep 17 00:00:00 2001 From: Francois Perrad Date: Sat, 17 Jul 2021 13:21:38 +0200 Subject: [PATCH] remove link with librt librt is not available with musl Signed-off-by: Francois Perrad --- lunix-rel-20170920/lunix-20170920-1.rockspec | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/lunix-rel-20170920/lunix-20170920-1.rockspec b/lunix-rel-20170920/lunix-20170920-1.rockspec index 741179d..76cafeb 100644 --- a/lunix-rel-20170920/lunix-20170920-1.rockspec +++ b/lunix-rel-20170920/lunix-20170920-1.rockspec @@ -26,16 +26,6 @@ build = { }; }; platforms = { - linux = { - modules = { - ["unix"] = { - libraries = { - -- glibc <= 2.17 needs to link with librt - "rt"; - }; - }; - }; - }; osx = { modules = { ["unix"] = { -- 2.30.2 ================================================ FILE: package/lua-lunix/0003-fix-sysctl-detection.patch ================================================ sys/sysctl.h was removed with glibc 2.32 Fetched from: https://github.com/wahern/lunix/pull/20/files Signed-off-by: Francois Perrad --- lunix-rel-20170920/src/unix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lunix-rel-20170920/src/unix.c b/lunix-rel-20170920/src/unix.c index 272820a..fa00876 100644 --- a/lunix-rel-20170920/src/unix.c +++ b/lunix-rel-20170920/src/unix.c @@ -165,7 +165,7 @@ #endif #ifndef HAVE_SYS_SYSCTL_H /* missing on musl libc */ -#define HAVE_SYS_SYSCTL_H (defined BSD || GLIBC_PREREQ(0,0) || UCLIBC_PREREQ(0,0,0)) +#define HAVE_SYS_SYSCTL_H (defined BSD || (__GLIBC__ && !GLIBC_PREREQ(2,32)) || UCLIBC_PREREQ(0,0,0)) #endif #ifndef HAVE_STRUCT_IN_PKTINFO -- 2.30.2 ================================================ FILE: package/lua-lunix/Config.in ================================================ config BR2_PACKAGE_LUA_LUNIX bool "lua-lunix" help lunix is a bindings library module to common Unix system APIs. http://25thandclement.com/~william/projects/lunix.html ================================================ FILE: package/lua-lunix/lua-lunix.hash ================================================ # computed by luarocks/buildroot sha256 4a4007b394ae884e18e9d0319ea584e8b4a682d7bf8fa5b99c7eea9baf1e5ed6 lunix-20170920-1.src.rock sha256 9b74be104d59caa45bf3321ebe771f9cc7874209261a93f1cf971ceca44fbe03 lunix-rel-20170920/LICENSE ================================================ FILE: package/lua-lunix/lua-lunix.mk ================================================ ################################################################################ # # lua-lunix # ################################################################################ LUA_LUNIX_VERSION_UPSTREAM = 20170920 LUA_LUNIX_VERSION = $(LUA_LUNIX_VERSION_UPSTREAM)-1 LUA_LUNIX_NAME_UPSTREAM = lunix LUA_LUNIX_SUBDIR = lunix-rel-$(LUA_LUNIX_VERSION_UPSTREAM) LUA_LUNIX_LICENSE = MIT LUA_LUNIX_LICENSE_FILES = $(LUA_LUNIX_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-lyaml/Config.in ================================================ config BR2_PACKAGE_LUA_LYAML bool "lua-lyaml" select BR2_PACKAGE_LIBYAML help This is a Lua binding for the fast libYAML C library for converting between `%YAML 1.1` and Lua tables, with a flexible Lua language API to load and save YAML documents. http://github.com/gvvaughan/lyaml ================================================ FILE: package/lua-lyaml/lua-lyaml.hash ================================================ # locally computed sha256 9bb489cefae48b150d66f6bab4141d8d5831fcb7465bfc52a9845fa01efc63b0 lua-lyaml-6.2.7.tar.gz sha256 81e4ea1d897e259b31111adc2d3c185fe23e435942ff3e9de8c8c9c5d01247d0 LICENSE ================================================ FILE: package/lua-lyaml/lua-lyaml.mk ================================================ ################################################################################ # # lua-lyaml # ################################################################################ LUA_LYAML_VERSION = 6.2.7 LUA_LYAML_NAME_UPSTREAM = lyaml LUA_LYAML_SITE = $(call github,gvvaughan,$(LUA_LYAML_NAME_UPSTREAM),v$(LUA_LYAML_VERSION)) LUA_LYAML_LICENSE = MIT LUA_LYAML_LICENSE_FILES = LICENSE LUA_LYAML_DEPENDENCIES = libyaml luainterpreter host-lua define LUA_LYAML_BUILD_CMDS (cd $(@D); \ $(LUA_RUN) build-aux/luke \ version="'$(LUA_LYAML_VERSION)'" \ CC="$(TARGET_CC)" \ CFLAGS="$(TARGET_CFLAGS)" \ LUA_INCDIR=$(STAGING_DIR)/usr/include \ YAML_DIR=$(STAGING_DIR)/usr \ ) endef define LUA_LYAML_INSTALL_TARGET_CMDS (cd $(@D); \ $(LUA_RUN) build-aux/luke install \ INST_LIBDIR="$(TARGET_DIR)/usr/lib/lua/$(LUAINTERPRETER_ABIVER)" \ INST_LUADIR="$(TARGET_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER)" \ ) endef $(eval $(generic-package)) ================================================ FILE: package/lua-markdown/Config.in ================================================ config BR2_PACKAGE_LUA_MARKDOWN bool "lua-markdown" help A pure-lua implementation of the Markdown text-to-html markup system. https://github.com/mpeterv/markdown ================================================ FILE: package/lua-markdown/lua-markdown.hash ================================================ # computed by luarocks/buildroot sha256 bed84231bb48322f8e614b4392181c52c36bc71340f9273e0c3bd72dc922bc07 markdown-0.33-1.src.rock sha256 c13c5634db49d16c87f164ce0b79fb7e1b313c8b66818ebf1c970747a429b39b markdown/LICENSE ================================================ FILE: package/lua-markdown/lua-markdown.mk ================================================ ################################################################################ # # lua-markdown # ################################################################################ LUA_MARKDOWN_VERSION = 0.33-1 LUA_MARKDOWN_NAME_UPSTREAM = Markdown LUA_MARKDOWN_SUBDIR = markdown LUA_MARKDOWN_LICENSE = MIT LUA_MARKDOWN_LICENSE_FILES = $(LUA_MARKDOWN_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-messagepack/Config.in ================================================ config BR2_PACKAGE_LUA_MESSAGEPACK bool "lua-messagepack" help A pure Lua implementation of the MessagePack serialization format. https://fperrad.frama.io/lua-MessagePack/ ================================================ FILE: package/lua-messagepack/lua-messagepack.hash ================================================ # computed by luarocks/buildroot sha256 cbb1b7b12834b7f49fd20621446ec4d76eff67d324b8182b7988324b10830a43 lua-messagepack-0.5.2-1.src.rock sha256 b3b3d8c3d28a4d4f26404cdb7d7d9329e2e831ea2dd2c6b119d958ed113579b2 lua-messagepack-lua53-0.5.2-1.src.rock sha256 709fd93a7dd6f8e941e7f0cb9e3eeba1f4de375302f1b19e14bb51aff23c5970 lua-MessagePack-0.5.2/COPYRIGHT ================================================ FILE: package/lua-messagepack/lua-messagepack.mk ================================================ ################################################################################ # # lua-messagepack # ################################################################################ LUA_MESSAGEPACK_VERSION_UPSTREAM = 0.5.2 LUA_MESSAGEPACK_VERSION = $(LUA_MESSAGEPACK_VERSION_UPSTREAM)-1 ifeq ($(BR2_PACKAGE_LUA_5_3)$(BR2_PACKAGE_LUA_5_4),y) LUA_MESSAGEPACK_NAME_UPSTREAM = lua-MessagePack-lua53 else LUA_MESSAGEPACK_NAME_UPSTREAM = lua-MessagePack endif LUA_MESSAGEPACK_SUBDIR = lua-MessagePack-$(LUA_MESSAGEPACK_VERSION_UPSTREAM) LUA_MESSAGEPACK_LICENSE = MIT LUA_MESSAGEPACK_LICENSE_FILES = $(LUA_MESSAGEPACK_SUBDIR)/COPYRIGHT $(eval $(luarocks-package)) ================================================ FILE: package/lua-msgpack-native/Config.in ================================================ config BR2_PACKAGE_LUA_MSGPACK_NATIVE bool "lua-msgpack-native" depends on BR2_PACKAGE_LUA_5_1 || BR2_PACKAGE_LUAJIT help This is a native, C language implementation of msgpack (http://msgpack.org) library/protocol for Lua language https://github.com/kengonakajima/lua-msgpack-native comment "lua-msgpack-native needs Lua 5.1 or LuaJIT" depends on !BR2_PACKAGE_LUA_5_1 depends on !BR2_PACKAGE_LUAJIT ================================================ FILE: package/lua-msgpack-native/lua-msgpack-native.hash ================================================ # locally computed sha256 025cf91d509fa3985869d18ef9b8eaeb875ff3c9fcf6467beeed6eab3bb35c93 lua-msgpack-native-41a91b994c70389dc9daa1a15678741d8ec41749.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/lua-msgpack-native/lua-msgpack-native.mk ================================================ ################################################################################ # # lua-msgpack-native # ################################################################################ LUA_MSGPACK_NATIVE_VERSION = 41a91b994c70389dc9daa1a15678741d8ec41749 LUA_MSGPACK_NATIVE_SITE = $(call github,kengonakajima,lua-msgpack-native,$(LUA_MSGPACK_NATIVE_VERSION)) LUA_MSGPACK_NATIVE_DEPENDENCIES = luainterpreter LUA_MSGPACK_NATIVE_LICENSE = Apache-2.0 LUA_MSGPACK_NATIVE_LICENSE_FILES = LICENSE.txt # lua-msgpack-native uses the old Lua 5.0 API with luaL_reg, but it is # no longer provided by LuaJit 2.1, so we have to alias luaL_reg to # luaL_Reg. define LUA_MSGPACK_NATIVE_BUILD_CMDS $(TARGET_CC) $(TARGET_CFLAGS) -DluaL_reg=luaL_Reg -fPIC \ -shared -o $(@D)/msgpack.so $(@D)/mp.c endef define LUA_MSGPACK_NATIVE_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -D $(@D)/msgpack.so \ $(TARGET_DIR)/usr/lib/lua/$(LUAINTERPRETER_ABIVER)/msgpack.so endef $(eval $(generic-package)) ================================================ FILE: package/lua-periphery/Config.in ================================================ config BR2_PACKAGE_LUA_PERIPHERY bool "lua-periphery" help A library for GPIO, SPI, I2C, MMIO, and Serial peripheral I/O interface access in userspace Linux with Lua. https://github.com/vsergeev/lua-periphery ================================================ FILE: package/lua-periphery/lua-periphery.hash ================================================ # computed by luarocks/buildroot sha256 ff8a4d08f02356586fadfe47f01859ba28539cc42013836f79a032bf4ccc78b3 lua-periphery-1.1.1-1.src.rock sha256 7c60847b46f718e9651d1eca2f56bf6be09608cf08d130446a521eb8288c98e1 lua-periphery/LICENSE ================================================ FILE: package/lua-periphery/lua-periphery.mk ================================================ ################################################################################ # # lua-periphery # ################################################################################ LUA_PERIPHERY_VERSION = 1.1.1-1 LUA_PERIPHERY_SUBDIR = lua-periphery LUA_PERIPHERY_LICENSE = MIT LUA_PERIPHERY_LICENSE_FILES = $(LUA_PERIPHERY_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-resty-http/Config.in ================================================ config BR2_PACKAGE_LUA_RESTY_HTTP bool "lua-resty-http" help Lua HTTP client cosocket driver for OpenResty / ngx_lua. https://github.com/ledgetech/lua-resty-http ================================================ FILE: package/lua-resty-http/lua-resty-http.hash ================================================ # computed by luarocks/buildroot sha256 df913a055ddc2f029017602732c7a497225f4e0df1bcc6858e13f9f4d9524184 lua-resty-http-0.15-0.src.rock sha256 407e4b1412d8afa317dc703a1d318866c3de87d78899402125cbd90548c6057d lua-resty-http/LICENSE ================================================ FILE: package/lua-resty-http/lua-resty-http.mk ================================================ ################################################################################ # # lua-resty-http # ################################################################################ LUA_RESTY_HTTP_VERSION = 0.15-0 LUA_RESTY_HTTP_SUBDIR = lua-resty-http LUA_RESTY_HTTP_LICENSE = BSD-2-Clause LUA_RESTY_HTTP_LICENSE_FILES = $(LUA_RESTY_HTTP_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-rotas/Config.in ================================================ config BR2_PACKAGE_LUA_ROTAS bool "lua-rotas" help a web server router. https://fperrad.frama.io/lua-Rotas ================================================ FILE: package/lua-rotas/lua-rotas.hash ================================================ # computed by luarocks/buildroot sha256 a947026be3552cbf676a0cef36a618111712257d306cbd9d340ed8895a4cbd2b lua-rotas-0.2.1-1.src.rock sha256 ac8bb87b7b5e803ae27510b9c6fd284f1b00e741258bc59fc78d3bc107d96fbb lua-Rotas-0.2.1/COPYRIGHT ================================================ FILE: package/lua-rotas/lua-rotas.mk ================================================ ################################################################################ # # lua-rotas # ################################################################################ LUA_ROTAS_VERSION = 0.2.1-1 LUA_ROTAS_NAME_UPSTREAM = lua-Rotas LUA_ROTAS_LICENSE = MIT LUA_ROTAS_LICENSE_FILES = $(LUA_ROTAS_SUBDIR)/COPYRIGHT $(eval $(luarocks-package)) ================================================ FILE: package/lua-sailor/Config.in ================================================ config BR2_PACKAGE_LUA_SAILOR bool "lua-sailor" select BR2_PACKAGE_CGILUA # runtime select BR2_PACKAGE_LBASE64 # runtime select BR2_PACKAGE_LUA_DATAFILE # runtime select BR2_PACKAGE_LUA_VALUA # runtime select BR2_PACKAGE_LUAFILESYSTEM # runtime select BR2_PACKAGE_WSAPI_XAVANTE # runtime select BR2_PACKAGE_XAVANTE # runtime help Sailor is a web framework written in Lua that follows the MVC design pattern. http://sailorproject.org/ ================================================ FILE: package/lua-sailor/lua-sailor.hash ================================================ # computed by luarocks/buildroot sha256 4f7f43a7cf6c62712a521ebaf5f53aaf230039c7fb06480ae168c3aa036120bf sailor-0.5-4.src.rock sha256 3a19bc44e1a653b39bcb1b91cc8058ac6b1cd1caf7e6cef93517fd559b189065 sailor/LICENSE ================================================ FILE: package/lua-sailor/lua-sailor.mk ================================================ ################################################################################ # # lua-sailor # ################################################################################ LUA_SAILOR_VERSION = 0.5-4 LUA_SAILOR_NAME_UPSTREAM = Sailor LUA_SAILOR_SUBDIR = sailor LUA_SAILOR_LICENSE = MIT LUA_SAILOR_LICENSE_FILES = $(LUA_SAILOR_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-sdl2/0001-Do-not-reference-host-directory-for-headers.patch ================================================ From 07309a49ad6c3e18c8c84fe54f1fdb9e103c4cc5 Mon Sep 17 00:00:00 2001 From: Francois Perrad Date: Sun, 22 Oct 2017 13:00:01 +0200 Subject: [PATCH] Do not reference host directory for headers Signed-off-by: Francois Perrad --- cmake/FindSDL2.cmake | 5 ----- 1 file changed, 5 deletions(-) diff --git a/cmake/FindSDL2.cmake b/cmake/FindSDL2.cmake index 5cf4115..5e17919 100644 --- a/cmake/FindSDL2.cmake +++ b/cmake/FindSDL2.cmake @@ -73,11 +73,6 @@ find_path(SDL2_INCLUDE_DIR SDL.h PATH_SUFFIXES include/SDL2 include ) -# On FreeBSD SDL depends on libiconv and SDL_stdinc.h includes iconv.h, which is -# located in ${LOCALBASE}/include. Append {LOCALBASE}/include to -# the SDL_INCLUDE_DIR, thus allow to build SDL apps out of box. -list(APPEND SDL2_INCLUDE_DIR /usr/local/include) - find_library(SDL_LIBRARY_TEMP NAMES SDL2 SDL2-2.0 HINTS -- 2.13.6 ================================================ FILE: package/lua-sdl2/0002-CMakeLists-do-not-require-C.patch ================================================ From 5732174debfe027f7620af55c283060201f0ad03 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 2 Nov 2017 22:54:51 +0100 Subject: [PATCH] CMakeLists: do not require C++ The project doesn't use C++, so don't let CMake check for a C++ compiler by explicitly specifying that this is a C-only project. Submitted-upstream: https://github.com/Tangent128/luasdl2/pull/69 Signed-off-by: Thomas Petazzoni --- common/CMakeLists.txt | 2 +- examples/CMakeLists.txt | 2 +- tutorials/CMakeLists.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 9e19709..8cfb748 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -15,7 +15,7 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -project(common) +project(common C) set( SOURCES diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 572b3b7..4e3af4d 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -16,7 +16,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # -project(examples) +project(examples C) # Option to enable / disable examples installation option(WITH_DOCS "Installation of documentation and examples" On) diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt index adefbc9..6ec069e 100644 --- a/tutorials/CMakeLists.txt +++ b/tutorials/CMakeLists.txt @@ -16,7 +16,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # -project(tutorials) +project(tutorials C) # Option to enable / disable examples installation option(WITH_DOCS "Installation of tutorials" On) -- 2.13.6 ================================================ FILE: package/lua-sdl2/Config.in ================================================ config BR2_PACKAGE_LUA_SDL2 bool "lua-sdl2" depends on !BR2_STATIC_LIBS depends on !BR2_PACKAGE_LUA_5_4 select BR2_PACKAGE_SDL2 help Lua-SDL2 is a pure C binding of SDL2 to Lua 5.1, Lua 5.2, Lua 5.3, and LuaJIT. https://github.com/Tangent128/luasdl2 comment "lua-sdl2 needs a toolchain w/ dynamic library, Lua <= 5.3" depends on BR2_STATIC_LIBS || BR2_PACKAGE_LUA_5_4 ================================================ FILE: package/lua-sdl2/lua-sdl2.hash ================================================ # Locally calculated sha256 cee7875106062fbc00cf8acb3b2738e336e2327df73ede011968cb060c094bfb lua-sdl2-2.0.5-6.0.tar.gz sha256 4f56a5b6943a8ff9611a39e7d4d88dba9ad314dcdf56c62a1425798a6e624494 LICENSE ================================================ FILE: package/lua-sdl2/lua-sdl2.mk ================================================ ################################################################################ # # lua-sdl2 # ################################################################################ LUA_SDL2_VERSION = 2.0.5-6.0 LUA_SDL2_SITE = $(call github,Tangent128,luasdl2,v$(LUA_SDL2_VERSION)) LUA_SDL2_LICENSE = ISC LUA_SDL2_LICENSE_FILES = LICENSE LUA_SDL2_DEPENDENCIES = luainterpreter sdl2 ifeq ($(BR2_PACKAGE_LUAJIT),y) LUA_SDL2_LUAVER = JIT else ifeq ($(BR2_PACKAGE_LUA_5_3),y) LUA_SDL2_LUAVER = 53 else LUA_SDL2_LUAVER = 51 endif LUA_SDL2_CONF_OPTS += -DWITH_LUAVER=$(LUA_SDL2_LUAVER) -DLUA_INCLUDE_DIR=$(STAGING_DIR)/usr/include ifeq ($(BR2_PACKAGE_SDL2_IMAGE),y) LUA_SDL2_DEPENDENCIES += sdl2_image else LUA_SDL2_CONF_OPTS += -DWITH_IMAGE=Off endif ifeq ($(BR2_PACKAGE_SDL2_MIXER),y) LUA_SDL2_DEPENDENCIES += sdl2_mixer else LUA_SDL2_CONF_OPTS += -DWITH_MIXER=Off endif ifeq ($(BR2_PACKAGE_SDL2_NET),y) LUA_SDL2_DEPENDENCIES += sdl2_net else LUA_SDL2_CONF_OPTS += -DWITH_NET=Off endif ifeq ($(BR2_PACKAGE_SDL2_TTF),y) LUA_SDL2_DEPENDENCIES += sdl2_ttf else LUA_SDL2_CONF_OPTS += -DWITH_TTF=Off endif $(eval $(cmake-package)) ================================================ FILE: package/lua-silva/Config.in ================================================ config BR2_PACKAGE_LUA_SILVA bool "lua-silva" help your string matcher expert. https://fperrad.frama.io/lua-Silva ================================================ FILE: package/lua-silva/lua-silva.hash ================================================ # computed by luarocks/buildroot sha256 0e656c42c71b64285d4a375fa7b8b1a910b05c4ab6d30f5b427b078fff204e1f lua-silva-0.1.8-1.src.rock sha256 5b59ffbfc12d9d1cb907dd65b0f16d3453e1a43cc018c6128a00b00e08f6c485 lua-Silva-0.1.8/COPYRIGHT ================================================ FILE: package/lua-silva/lua-silva.mk ================================================ ################################################################################ # # lua-silva # ################################################################################ LUA_SILVA_VERSION = 0.1.8-1 LUA_SILVA_NAME_UPSTREAM = lua-Silva LUA_SILVA_LICENSE = MIT LUA_SILVA_LICENSE_FILES = $(LUA_SILVA_SUBDIR)/COPYRIGHT $(eval $(luarocks-package)) ================================================ FILE: package/lua-std-debug/Config.in ================================================ config BR2_PACKAGE_LUA_STD_DEBUG bool "lua-std-debug" help Manage an overall debug state, and associated hint substates. http://lua-stdlib.github.io/_debug ================================================ FILE: package/lua-std-debug/lua-std-debug.hash ================================================ # Locally calculated sha256 7f6b84283d4b78dafee17e7765dd5f1f8e75c3314169977f4dda0e7873616ce2 std._debug-1.0.1-1.src.rock sha256 034abdbbe9a13899c813509776d1e04af81bc58c2982b704c8b3663549504a31 _debug-1.0.1/LICENSE.md ================================================ FILE: package/lua-std-debug/lua-std-debug.mk ================================================ ################################################################################ # # lua-std-debug # ################################################################################ LUA_STD_DEBUG_VERSION_UPSTREAM = 1.0.1 LUA_STD_DEBUG_VERSION = $(LUA_STD_DEBUG_VERSION_UPSTREAM)-1 LUA_STD_DEBUG_NAME_UPSTREAM = std._debug LUA_STD_DEBUG_SUBDIR = _debug-$(LUA_STD_DEBUG_VERSION_UPSTREAM) LUA_STD_DEBUG_ROCKSPEC = $(LUA_STD_DEBUG_NAME_UPSTREAM)-$(LUA_STD_DEBUG_VERSION).rockspec LUA_STD_DEBUG_SOURCE = $(LUA_STD_DEBUG_NAME_UPSTREAM)-$(LUA_STD_DEBUG_VERSION).src.rock LUA_STD_DEBUG_LICENSE = MIT LUA_STD_DEBUG_LICENSE_FILES = $(LUA_STD_DEBUG_SUBDIR)/LICENSE.md $(eval $(luarocks-package)) ================================================ FILE: package/lua-std-normalize/Config.in ================================================ config BR2_PACKAGE_LUA_STD_NORMALIZE bool "lua-std-normalize" select BR2_PACKAGE_LUA_STD_DEBUG # runtime help This module can inject deterministic versions of core Lua functions that do not behave identically across all supported Lua implementations into your module's lexical environment. Each function is as thin and fast a version as is possible in each Lua implementation, evaluating to the Lua C implementation with no overhead when semantics allow. https://lua-stdlib.github.io/normalize ================================================ FILE: package/lua-std-normalize/lua-std-normalize.hash ================================================ # computed by luarocks/buildroot sha256 3a040b6ca43297367c527e12c1aab37acab86289f9415ffb130544c48b17f802 std.normalize-2.0.3-1.src.rock sha256 9c9094f0cea86c2c62b893e59a78d5eaed69df0d7da24e122ef9753baeef0f04 normalize-2.0.3/LICENSE.md ================================================ FILE: package/lua-std-normalize/lua-std-normalize.mk ================================================ ################################################################################ # # lua-std-normalize # ################################################################################ LUA_STD_NORMALIZE_VERSION_UPSTREAM = 2.0.3 LUA_STD_NORMALIZE_VERSION = $(LUA_STD_NORMALIZE_VERSION_UPSTREAM)-1 LUA_STD_NORMALIZE_NAME_UPSTREAM = std.normalize LUA_STD_NORMALIZE_SUBDIR = normalize-$(LUA_STD_NORMALIZE_VERSION_UPSTREAM) LUA_STD_NORMALIZE_LICENSE = MIT LUA_STD_NORMALIZE_LICENSE_FILES = $(LUA_STD_NORMALIZE_SUBDIR)/LICENSE.md $(eval $(luarocks-package)) ================================================ FILE: package/lua-stdlib/Config.in ================================================ config BR2_PACKAGE_LUA_STDLIB bool "lua-stdlib" help lua-stdlib is a library of modules for common programming tasks, including list, table and functional operations, objects, pickling, pretty-printing and command-line option parsing. https://github.com/lua-stdlib/lua-stdlib/ ================================================ FILE: package/lua-stdlib/lua-stdlib.hash ================================================ # computed by luarocks/buildroot sha256 67eadaccbb2b6037ea70129f9616da49eaeeaf1477652a8e2cc77740286531cf stdlib-41.2.2-1.src.rock sha256 d3177e0cd97e6ef7c459aa2c6a85f53d9b4ff091f7f296d4ed8bfaf713b6fea2 lua-stdlib-release-v41.2.2/COPYING ================================================ FILE: package/lua-stdlib/lua-stdlib.mk ================================================ ################################################################################ # # lua-stdlib # ################################################################################ LUA_STDLIB_VERSION_UPSTREAM = 41.2.2 LUA_STDLIB_VERSION = $(LUA_STDLIB_VERSION_UPSTREAM)-1 LUA_STDLIB_NAME_UPSTREAM = stdlib LUA_STDLIB_SUBDIR = lua-stdlib-release-v$(LUA_STDLIB_VERSION_UPSTREAM) LUA_STDLIB_LICENSE = MIT LUA_STDLIB_LICENSE_FILES = $(LUA_STDLIB_SUBDIR)/COPYING $(eval $(luarocks-package)) ================================================ FILE: package/lua-testmore/Config.in ================================================ config BR2_PACKAGE_LUA_TESTMORE bool "lua-testmore" help an Unit Testing Framework. https://fperrad.frama.io/lua-TestMore/ ================================================ FILE: package/lua-testmore/lua-testmore.hash ================================================ # computed by luarocks/buildroot sha256 b3e57955888aba3974d6f5a21219214e2803a38e4623671f7d9d9e0f1851e608 lua-testmore-0.3.6-1.src.rock sha256 37a3afb014325b98f0ad919cb40bc9d5a948120e5260e75b9d00c198d350da6d lua-TestMore-0.3.6/COPYRIGHT ================================================ FILE: package/lua-testmore/lua-testmore.mk ================================================ ################################################################################ # # lua-testmore # ################################################################################ LUA_TESTMORE_VERSION = 0.3.6-1 LUA_TESTMORE_NAME_UPSTREAM = lua-TestMore LUA_TESTMORE_LICENSE = MIT LUA_TESTMORE_LICENSE_FILES = $(LUA_TESTMORE_SUBDIR)/COPYRIGHT $(eval $(luarocks-package)) ================================================ FILE: package/lua-utf8/Config.in ================================================ config BR2_PACKAGE_LUA_UTF8 bool "lua-utf8" help This module adds UTF-8 support to Lua. It's compatible with Lua "string" module. http://github.com/starwing/luautf8 ================================================ FILE: package/lua-utf8/lua-utf8.hash ================================================ # computed by luarocks/buildroot sha256 88c456bc0f00d28201b33551d83fa6e5c3ae6025aebec790c37afb317290e4fa luautf8-0.1.3-1.src.rock sha256 74506285923bcc3e58aaca1b774db26461021783d02b2dc26bafcaa02ef7a00b luautf8-0.1.3/LICENSE ================================================ FILE: package/lua-utf8/lua-utf8.mk ================================================ ################################################################################ # # lua-utf8 # ################################################################################ LUA_UTF8_VERSION = 0.1.3-1 LUA_UTF8_NAME_UPSTREAM = luautf8 LUA_UTF8_LICENSE = MIT LUA_UTF8_LICENSE_FILES = $(LUA_UTF8_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-valua/Config.in ================================================ config BR2_PACKAGE_LUA_VALUA bool "lua-valua" help This module provides tools for validating values, very useful in forms, but also usable elsewhere. It works in appended chains. Create a new validation object and start chaining your test functions. https://github.com/sailorproject/valua ================================================ FILE: package/lua-valua/lua-valua.hash ================================================ # computed by luarocks/buildroot sha256 bff39692fd2ac3590fd814aa1b1ca33e5d5971092955309aa8424b02b88ce1a3 valua-0.3-1.src.rock sha256 3444c2e739c88e41e327c6cd15e4a50fea8988570642bad6e6a43d50a7f7961f valua/LICENSE ================================================ FILE: package/lua-valua/lua-valua.mk ================================================ ################################################################################ # # lua-valua # ################################################################################ LUA_VALUA_VERSION = 0.3-1 LUA_VALUA_NAME_UPSTREAM = valua LUA_VALUA_SUBDIR = valua LUA_VALUA_LICENSE = MIT LUA_VALUA_LICENSE_FILES = $(LUA_VALUA_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lua-zlib/Config.in ================================================ config BR2_PACKAGE_LUA_ZLIB bool "lua-zlib" select BR2_PACKAGE_ZLIB help Simple streaming interface to zlib for Lua. Consists of two functions: inflate and deflate. Both functions return "stream functions" (takes a buffer of input and returns a buffer of output). https://github.com/brimworks/lua-zlib ================================================ FILE: package/lua-zlib/lua-zlib.hash ================================================ # computed by luarocks/buildroot sha256 42436ba2b78c9a2d515d6da59ceb12cdea7f84c9ce3c859d91addb42badd4061 lua-zlib-1.2-0.src.rock ================================================ FILE: package/lua-zlib/lua-zlib.mk ================================================ ################################################################################ # # lua-zlib # ################################################################################ LUA_ZLIB_VERSION = 1.2-0 LUA_ZLIB_SUBDIR = lua-zlib LUA_ZLIB_LICENSE = MIT LUA_ZLIB_DEPENDENCIES = zlib $(eval $(luarocks-package)) ================================================ FILE: package/luabitop/Config.in ================================================ config BR2_PACKAGE_LUABITOP bool "luabitop" depends on BR2_PACKAGE_LUA_5_1 help Lua BitOp is a C extension module for Lua 5.1/5.2 which adds bitwise operations on numbers. http://bitop.luajit.org comment "luabitop needs Lua 5.1" depends on !BR2_PACKAGE_LUA_5_1 ================================================ FILE: package/luabitop/luabitop.hash ================================================ # computed by luarocks/buildroot sha256 fc7a8065a57462ee13bed7f95b0ab13f94ecd1bf846108c61ccf2c75548af26e luabitop-1.0.2-1.src.rock # Locally calcuated sha256 25e331120d0c2f95fa2ac6e439ca920f0a4362c366a4c7382d843113743a3ba5 LuaBitOp-1.0.2/README ================================================ FILE: package/luabitop/luabitop.mk ================================================ ################################################################################ # # luabitop # ################################################################################ LUABITOP_VERSION = 1.0.2-1 LUABITOP_NAME_UPSTREAM = LuaBitOp LUABITOP_LICENSE = MIT LUABITOP_LICENSE_FILES = $(LUABITOP_SUBDIR)/README $(eval $(luarocks-package)) ================================================ FILE: package/luadbi/Config.in ================================================ config BR2_PACKAGE_LUADBI bool "luadbi" help LuaDBI is a database interface library for Lua. It is designed to provide a RDBMS agnostic API for handling database operations. LuaDBI also provides support for prepared statement handles, placeholders and bind parameters for all database operations. https://github.com/mwild1/luadbi ================================================ FILE: package/luadbi/luadbi.hash ================================================ # computed by luarocks/buildroot sha256 9ebbbaf4ea1f48628341e9ff3c1de10a57200c02453734f41b8016b0fc7b4956 luadbi-0.7.2-1.src.rock sha256 988d73cc2e56f972e8177091e084855fc2904d0fafcfe5c4e02864f25ce2b928 luadbi/COPYING ================================================ FILE: package/luadbi/luadbi.mk ================================================ ################################################################################ # # luadbi # ################################################################################ LUADBI_VERSION = 0.7.2-1 LUADBI_SUBDIR = luadbi LUADBI_LICENSE = MIT LUADBI_LICENSE_FILES = $(LUADBI_SUBDIR)/COPYING $(eval $(luarocks-package)) ================================================ FILE: package/luadbi-sqlite3/Config.in ================================================ config BR2_PACKAGE_LUADBI_SQLITE3 bool "luadbi-sqlite3" select BR2_PACKAGE_SQLITE select BR2_PACKAGE_LUADBI # runtime help LuaDBI is a database interface library for Lua. And this is the SQLite3 backend. https://github.com/mwild1/luadbi ================================================ FILE: package/luadbi-sqlite3/luadbi-sqlite3.hash ================================================ # computed by luarocks/buildroot sha256 c5b043db43941a3c6e43d3e3699236846ed6d03a6c4cb12fa1a497f965138d9f luadbi-sqlite3-0.7.2-1.src.rock sha256 988d73cc2e56f972e8177091e084855fc2904d0fafcfe5c4e02864f25ce2b928 luadbi/COPYING ================================================ FILE: package/luadbi-sqlite3/luadbi-sqlite3.mk ================================================ ################################################################################ # # luadbi-sqlite3 # ################################################################################ LUADBI_SQLITE3_VERSION = 0.7.2-1 LUADBI_SQLITE3_SUBDIR = luadbi LUADBI_SQLITE3_LICENSE = MIT LUADBI_SQLITE3_LICENSE_FILES = $(LUADBI_SQLITE3_SUBDIR)/COPYING LUADBI_SQLITE3_DEPENDENCIES = sqlite $(eval $(luarocks-package)) ================================================ FILE: package/luaexpat/0001-restore-getcurrentbytecount.patch ================================================ From 77cb691f781918908dfe34785f00a5ff75d5cc20 Mon Sep 17 00:00:00 2001 From: Francois Perrad Date: Sat, 16 Feb 2019 15:56:00 +0100 Subject: [PATCH] restore getcurrentbytecount see https://github.com/tomasguisasola/luaexpat/issues/3 Fetch from: https://github.com/tomasguisasola/luaexpat/commit/0926f2d705109b7d35b721344264b39c1169e0de Signed-off-by: Francois Perrad --- src/lxplib.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/luaexpat-1.3.3/src/lxplib.c b/luaexpat-1.3.3/src/lxplib.c index 7726913..35bec3c 100644 --- a/luaexpat-1.3.3/src/lxplib.c +++ b/luaexpat-1.3.3/src/lxplib.c @@ -538,11 +538,18 @@ static int lxp_stop (lua_State *L) { return 1; } +static int lxp_getcurrentbytecount (lua_State* L) { + lxp_userdata *xpu = checkparser(L, 1); + lua_pushinteger(L, XML_GetCurrentByteCount(xpu->parser)); + return 1; +} + static const luaL_Reg lxp_meths[] = { {"parse", lxp_parse}, {"close", lxp_close}, {"__gc", parser_gc}, {"pos", lxp_pos}, + {"getcurrentbytecount", lxp_getcurrentbytecount}, {"setencoding", lxp_setencoding}, {"getcallbacks", getcallbacks}, {"getbase", getbase}, -- 2.17.1 ================================================ FILE: package/luaexpat/Config.in ================================================ config BR2_PACKAGE_LUAEXPAT bool "luaexpat" select BR2_PACKAGE_EXPAT help LuaExpat is a SAX XML parser based on the Expat library. http://www.keplerproject.org/luaexpat/ ================================================ FILE: package/luaexpat/luaexpat.hash ================================================ # computed by luarocks/buildroot sha256 b55908fcd7df490a59aab25284460add8283f1c6b94ab584900fe3e49775172a luaexpat-1.3.3-1.src.rock sha256 7f5cb0c1750babcbb09637b7f0ff34972d51cf23b7f413bef902b47aa65febcd luaexpat-1.3.3/LICENSE ================================================ FILE: package/luaexpat/luaexpat.mk ================================================ ################################################################################ # # luaexpat # ################################################################################ LUAEXPAT_VERSION = 1.3.3-1 LUAEXPAT_LICENSE = MIT LUAEXPAT_LICENSE_FILES = $(LUAEXPAT_SUBDIR)/LICENSE LUAEXPAT_DEPENDENCIES = expat $(eval $(luarocks-package)) ================================================ FILE: package/luaexpatutils/Config.in ================================================ config BR2_PACKAGE_LUAEXPATUTILS bool "luaexpatutils" select BR2_PACKAGE_LUAEXPAT help lxp.doc is a module that provides useful features for working with XML formats in LOM format as used by the LuaExpat project from Kepler. https://github.com/stevedonovan/LuaExpatUtils ================================================ FILE: package/luaexpatutils/luaexpatutils.hash ================================================ # Locally calculated sha256 9b50bef94a6ddb6e6d4fffd5392f5c53d15e1a048966b559c4f8eda5e84d4517 luaexpatutils-88c228365b084224c911d34aff06002634b38b50.tar.gz ================================================ FILE: package/luaexpatutils/luaexpatutils.mk ================================================ ################################################################################ # # luaexpatutils # ################################################################################ LUAEXPATUTILS_VERSION = 88c228365b084224c911d34aff06002634b38b50 LUAEXPATUTILS_SITE = $(call github,stevedonovan,LuaExpatUtils,$(LUAEXPATUTILS_VERSION)) LUAEXPATUTILS_LICENSE = Public Domain LUAEXPATUTILS_DEPENDENCIES = luaexpat define LUAEXPATUTILS_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/lua/doc.lua \ $(TARGET_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER)/lxp/doc.lua endef $(eval $(generic-package)) ================================================ FILE: package/luafilesystem/Config.in ================================================ config BR2_PACKAGE_LUAFILESYSTEM bool "luafilesystem" help LuaFileSystem offers a portable way to access the underlying directory structure and file attributes. http://keplerproject.github.com/luafilesystem/ ================================================ FILE: package/luafilesystem/luafilesystem.hash ================================================ # computed by luarocks/buildroot sha256 576270a55752894254c2cba0d49d73595d37ec4ea8a75e557fdae7aff80e19cf luafilesystem-1.8.0-1.src.rock sha256 beb2c9eed6466d572c3888028a77421206053a3c023429cbd69e5015badba842 luafilesystem/LICENSE ================================================ FILE: package/luafilesystem/luafilesystem.mk ================================================ ################################################################################ # # luafilesystem # ################################################################################ LUAFILESYSTEM_VERSION = 1.8.0-1 LUAFILESYSTEM_SUBDIR = luafilesystem LUAFILESYSTEM_LICENSE = MIT LUAFILESYSTEM_LICENSE_FILES = $(LUAFILESYSTEM_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/luainterpreter/Config.in ================================================ config BR2_PACKAGE_HAS_LUAINTERPRETER bool config BR2_PACKAGE_PROVIDES_LUAINTERPRETER string depends on BR2_PACKAGE_HAS_LUAINTERPRETER config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION string default "5.1" if BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 default "5.3" if BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_3 default "5.4" if BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_4 config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 bool config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_3 bool config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_4 bool config BR2_PACKAGE_PROVIDES_HOST_LUAINTERPRETER string default "host-lua" ================================================ FILE: package/luainterpreter/luainterpreter.mk ================================================ ################################################################################ # # luainterpreter # ################################################################################ LUAINTERPRETER_ABIVER = $(call qstrip,$(BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION)) # Lua packages often install documentation, clean that up globally define LUAINTERPRETER_REMOVE_DOC rm -rf $(TARGET_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER)/doc endef LUAINTERPRETER_TARGET_FINALIZE_HOOKS += LUAINTERPRETER_REMOVE_DOC $(eval $(virtual-package)) $(eval $(host-virtual-package)) LUA_RUN = $(HOST_DIR)/bin/lua ================================================ FILE: package/luajit/0001-no-bin-symlink.patch ================================================ Do not use a symlink for the binary, simply name it luajit Signed-off-by: Thomas Petazzoni Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -44,8 +44,7 @@ INSTALL_MAN= $(INSTALL_SHARE)/man/man1 INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig -INSTALL_TNAME= luajit-$(VERSION) -INSTALL_TSYMNAME= luajit +INSTALL_TNAME= luajit INSTALL_ANAME= libluajit-$(ABIVER).a INSTALL_SOSHORT1= libluajit-$(ABIVER).so INSTALL_SOSHORT2= libluajit-$(ABIVER).so.$(MAJVER) @@ -60,7 +59,6 @@ INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT1) INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT2) INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME) -INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME) INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME) INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \ ================================================ FILE: package/luajit/0002-install-inc.patch ================================================ Install includes like lua's ones Signed-off-by: Francois Perrad Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ INSTALL_BIN= $(DPREFIX)/bin INSTALL_LIB= $(DPREFIX)/$(MULTILIB) INSTALL_SHARE= $(DPREFIX)/share -INSTALL_INC= $(DPREFIX)/include/luajit-$(MAJVER).$(MINVER) +INSTALL_INC= $(DPREFIX)/include INSTALL_LJLIBD= $(INSTALL_SHARE)/luajit-$(VERSION) INSTALL_JITLIB= $(INSTALL_LJLIBD)/jit ================================================ FILE: package/luajit/Config.in ================================================ config BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS bool default y if BR2_arm || BR2_armeb || BR2_aarch64 default y if BR2_i386 || BR2_x86_64 default y if (BR2_mips || BR2_mipsel) && !BR2_MIPS_SOFT_FLOAT \ && !BR2_MIPS_CPU_MIPS32R6 && !BR2_MIPS_CPU_MIPS64R6 default y if BR2_powerpc # -m32 flag is used for 32bit builds and host-luajit has # limited architecture support depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" # Building for 64-bit target requires a 64-bit host depends on !BR2_ARCH_IS_64 || BR2_HOSTARCH = "x86_64" config BR2_PACKAGE_LUAJIT bool "luajit" depends on !BR2_STATIC_LIBS # dlopen # Luajit is only available for some target architectures, and # has some complexity wrt 32/64. See luajit.mk for details. depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit.mk uses the "-m32" compiler option to build 32bit # binaries, so check if that option is supported. See # luajit.mk for details. select BR2_PACKAGE_HAS_LUAINTERPRETER select BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 select BR2_HOSTARCH_NEEDS_IA32_COMPILER if !BR2_ARCH_IS_64 help LuaJIT implements the full set of language features defined by Lua 5.1. The virtual machine (VM) is API- and ABI-compatible to the standard Lua interpreter and can be deployed as a drop-in replacement. https://luajit.org/luajit.html if BR2_PACKAGE_LUAJIT config BR2_PACKAGE_PROVIDES_LUAINTERPRETER default "luajit" config BR2_PACKAGE_LUAJIT_COMPAT52 bool "Lua 5.2 compatibility" help Compile with Lua 5.2 compatibility. endif comment "luajit needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/luajit/luajit.hash ================================================ # Locally calculated sha256 b1b19f92451a661ba1167ee0b259299616cb3a1cdaf5ab05d7ccffaffeb4a0fb luajit-05f1984e1a862e4b3d3c3b370c773492e2edf84a.tar.gz # Locally calculated sha256 43fc251179d900f9948e51dd3cc93733d1219f2db060faaa0c8100ad054f54d8 COPYRIGHT ================================================ FILE: package/luajit/luajit.mk ================================================ ################################################################################ # # luajit # ################################################################################ LUAJIT_VERSION = 05f1984e1a862e4b3d3c3b370c773492e2edf84a LUAJIT_SITE = $(call github,LuaJIT,LuaJIT,$(LUAJIT_VERSION)) LUAJIT_LICENSE = MIT LUAJIT_LICENSE_FILES = COPYRIGHT LUAJIT_INSTALL_STAGING = YES LUAJIT_PROVIDES = luainterpreter ifeq ($(BR2_PACKAGE_LUAJIT_COMPAT52),y) LUAJIT_XCFLAGS += -DLUAJIT_ENABLE_LUA52COMPAT endif # The luajit build procedure requires the host compiler to have the # same bitness as the target compiler. Therefore, on a x86 build # machine, we can't build luajit for x86_64, which is checked in # Config.in. When the target is a 32 bits target, we pass -m32 to # ensure that even on 64 bits build machines, a compiler of the same # bitness is used. Of course, this assumes that the 32 bits multilib # libraries are installed. ifeq ($(BR2_ARCH_IS_64),y) LUAJIT_HOST_CC = $(HOSTCC) # There is no LUAJIT_ENABLE_GC64 option. else LUAJIT_HOST_CC = $(HOSTCC) -m32 LUAJIT_XCFLAGS += -DLUAJIT_DISABLE_GC64 endif # We unfortunately can't use TARGET_CONFIGURE_OPTS, because the luajit # build system uses non conventional variable names. define LUAJIT_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) PREFIX="/usr" \ STATIC_CC="$(TARGET_CC)" \ DYNAMIC_CC="$(TARGET_CC) -fPIC" \ TARGET_LD="$(TARGET_CC)" \ TARGET_AR="$(TARGET_AR) rcus" \ TARGET_STRIP=true \ TARGET_CFLAGS="$(TARGET_CFLAGS)" \ TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \ HOST_CC="$(LUAJIT_HOST_CC)" \ HOST_CFLAGS="$(HOST_CFLAGS)" \ HOST_LDFLAGS="$(HOST_LDFLAGS)" \ BUILDMODE=dynamic \ XCFLAGS="$(LUAJIT_XCFLAGS)" \ -C $(@D) amalg endef define LUAJIT_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) PREFIX="/usr" DESTDIR="$(STAGING_DIR)" LDCONFIG=true -C $(@D) install endef define LUAJIT_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) PREFIX="/usr" DESTDIR="$(TARGET_DIR)" LDCONFIG=true -C $(@D) install endef define LUAJIT_INSTALL_SYMLINK ln -fs luajit $(TARGET_DIR)/usr/bin/lua endef LUAJIT_POST_INSTALL_TARGET_HOOKS += LUAJIT_INSTALL_SYMLINK # host-efl package needs host-luajit to be linked dynamically. define HOST_LUAJIT_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) PREFIX="$(HOST_DIR)" BUILDMODE=dynamic \ TARGET_LDFLAGS="$(HOST_LDFLAGS)" \ XCFLAGS="$(LUAJIT_XCFLAGS)" \ -C $(@D) amalg endef define HOST_LUAJIT_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) PREFIX="$(HOST_DIR)" LDCONFIG=true -C $(@D) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/luajson/Config.in ================================================ config BR2_PACKAGE_LUAJSON bool "luajson" select BR2_PACKAGE_LPEG # runtime help LuaJSON is a customizable JSON decoder/encoder using LPEG for parsing. http://github.com/harningt/luajson ================================================ FILE: package/luajson/luajson.hash ================================================ # computed by luarocks/buildroot sha256 28a5928cf2e4fd79fa9a9aceaef5ebf1dccb1146489b7de4c2726f561700f01c luajson-1.3.4-1.src.rock sha256 87565fca189b70f2e119b2a99e5e92a7aaab9f2eb05228b56b88e6c2e2f98bcd luajson/LICENSE ================================================ FILE: package/luajson/luajson.mk ================================================ ################################################################################ # # luajson # ################################################################################ LUAJSON_VERSION = 1.3.4-1 LUAJSON_SUBDIR = luajson LUAJSON_LICENSE = MIT LUAJSON_LICENSE_FILES = $(LUAJSON_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/lualdap/Config.in ================================================ config BR2_PACKAGE_LUALDAP bool "lualdap" depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR # openldap depends on BR2_USE_MMU # openldap select BR2_PACKAGE_OPENLDAP help LuaLDAP is a simple interface from Lua to an LDAP client, in fact it is a bind to OpenLDAP client. https://lualdap.github.io/lualdap/ comment "lualdap needs a toolchain w/ wchar, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS ================================================ FILE: package/lualdap/lualdap.hash ================================================ # computed by luarocks/buildroot sha256 49c253f540187c61850c856b8e70e45dca904b81720a760f6a94e4eb474958ad lualdap-1.3.0-1.src.rock sha256 b9b75da18d1e1147ec47bff508ffdce831da07dc371891b9057cf1c422660af4 lualdap/docs/license.md ================================================ FILE: package/lualdap/lualdap.mk ================================================ ################################################################################ # # lualdap # ################################################################################ LUALDAP_VERSION = 1.3.0-1 LUALDAP_SUBDIR = lualdap LUALDAP_LICENSE = MIT LUALDAP_LICENSE_FILES = $(LUALDAP_SUBDIR)/docs/license.md LUALDAP_DEPENDENCIES = openldap $(eval $(luarocks-package)) ================================================ FILE: package/lualogging/Config.in ================================================ config BR2_PACKAGE_LUALOGGING bool "lualogging" help LuaLogging provides a simple API to use logging features in Lua. Its design was based on log4j. LuaLogging currently supports, through the use of appenders, console, file, rolling file, email, socket and SQL outputs. https://lunarmodules.github.io/lualogging/ ================================================ FILE: package/lualogging/lualogging.hash ================================================ # computed by luarocks/buildroot sha256 70451dbec500dbc760f0eae666a10b19a0ba9bcbfa5dd8d3134908e5ae6d28b1 lualogging-1.5.1-1.src.rock sha256 4d95b123e667a13615f567a829aa39211dd55b0b48c9f247bf3fcc5c0b485da7 lualogging/COPYRIGHT ================================================ FILE: package/lualogging/lualogging.mk ================================================ ################################################################################ # # lualogging # ################################################################################ LUALOGGING_VERSION = 1.5.1-1 LUALOGGING_SUBDIR = lualogging LUALOGGING_LICENSE = MIT LUALOGGING_LICENSE_FILES = $(LUALOGGING_SUBDIR)/COPYRIGHT $(eval $(luarocks-package)) ================================================ FILE: package/luaossl/Config.in ================================================ config BR2_PACKAGE_LUAOSSL bool "luaossl" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL help luaossl is a comprehensive binding to OpenSSL for Lua 5.1, 5.2, and later. It includes support for certificate and key management, key generation, signature verification, and deep bindings to the distinguished name, alternative name, and X.509v3 extension interfaces. It also binds OpenSSL's bignum, message digest, HMAC, cipher, and CSPRNG interfaces. http://25thandclement.com/~william/projects/luaossl.html comment "luaossl needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/luaossl/luaossl.hash ================================================ # computed by luarocks/buildroot sha256 ea6d624e557939e30b93355dd1dc11465e81aa38a5542ab3c04b48608ac3cd78 luaossl-20200709-0.src.rock sha256 7bd585fba3ae52943e0915e4c8ca049acde9f1e5cea101ef6b294427c8f0ee7d luaossl-rel-20200709/LICENSE ================================================ FILE: package/luaossl/luaossl.mk ================================================ ################################################################################ # # luaossl # ################################################################################ LUAOSSL_VERSION_UPSTREAM = 20200709 LUAOSSL_VERSION = $(LUAOSSL_VERSION_UPSTREAM)-0 LUAOSSL_SUBDIR = luaossl-rel-$(LUAOSSL_VERSION_UPSTREAM) LUAOSSL_LICENSE = MIT LUAOSSL_LICENSE_FILES = $(LUAOSSL_SUBDIR)/LICENSE LUAOSSL_DEPENDENCIES = openssl $(eval $(luarocks-package)) ================================================ FILE: package/luaposix/Config.in ================================================ config BR2_PACKAGE_LUAPOSIX bool "luaposix" # "bit32" is included in Lua 5.2+. luajit has an equivalent # "bit" module, but since it has a different name, luaposix # doesn't find it. select BR2_PACKAGE_LUA_BIT32 if BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 # runtime help This is a POSIX binding for LuaJIT, Lua 5.1 through 5.4; 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 ================================================ FILE: package/luaposix/luaposix.hash ================================================ # Locally calculated sha256 1b5c48d2abd59de0738d1fc1e6204e44979ad2a1a26e8e22a2d6215dd502c797 luaposix-35.1.tar.gz sha256 f50bc0f3197523b1709f31707425f2de95f8a45534b081a6b564179ab059e850 LICENSE ================================================ FILE: package/luaposix/luaposix.mk ================================================ ################################################################################ # # luaposix # ################################################################################ LUAPOSIX_VERSION = 35.1 LUAPOSIX_SITE = $(call github,luaposix,luaposix,v$(LUAPOSIX_VERSION)) LUAPOSIX_LICENSE = MIT LUAPOSIX_LICENSE_FILES = LICENSE LUAPOSIX_DEPENDENCIES = luainterpreter host-lua define LUAPOSIX_BUILD_CMDS (cd $(@D); \ $(LUA_RUN) build-aux/luke \ CC="$(TARGET_CC)" \ CFLAGS="$(TARGET_CFLAGS)" \ LUA_INCDIR=$(STAGING_DIR)/usr/include \ ) endef define LUAPOSIX_INSTALL_TARGET_CMDS (cd $(@D); \ $(LUA_RUN) build-aux/luke install \ INST_LIBDIR="$(TARGET_DIR)/usr/lib/lua/$(LUAINTERPRETER_ABIVER)" \ INST_LUADIR="$(TARGET_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER)" \ ) endef $(eval $(generic-package)) ================================================ FILE: package/luarocks/buildroot.lua ================================================ --- Module implementing the LuaRocks "buildroot" command. local buildroot = {} local dir = require("luarocks.dir") local fs = require("luarocks.fs") local util = require("luarocks.util") local queries = require("luarocks.queries") local search = require("luarocks.search") local download = require("luarocks.download") local fetch = require("luarocks.fetch") function buildroot.add_to_parser(parser) local cmd = parser:command("buildroot", [[ This addon generates Buildroot package files of a rock. First argument is the name of a rock, the second argument is optional and needed when Buildroot uses another name (usually prefixed by lua-). Files are generated with the source content of the rock and more especially the rockspec. So, the rock is downloaded and unpacked. ]], util.see_also()) :summary("generate buildroot package files of a rock.") cmd:argument("rockname", "the name of a rock to be fetched and unpacked.") cmd:argument("brname", "the name used by Buildroot.") :args("?") end local function brname (name) return name:upper():gsub('-', '_') end local function brlicense (license) if license:match('MIT/X') then return 'MIT' end return license end local function wrap (txt, max) local lines = {} local line = '' for word in txt:gmatch('(%S+)') do if line:len() + word:len() > max - 1 then lines[#lines+1] = line line = '' end if line == '' then line = word else line = line .. ' ' .. word end end lines[#lines+1] = line return lines end local function has_c_files (rockspec) for _, mod in pairs(rockspec.build.modules or {}) do if type(mod) == 'string' then if mod:match'%.c$' then return true end elseif type(mod) == 'table' then local sources = mod.sources if type(sources) == 'string' and sources:match'%.c$' then return true end for _, src in ipairs(sources or mod) do if src:match'%.c$' then return true end end end end return false end local function get_main_modules (rockspec) local t = {} for name in pairs(rockspec.build.modules or {}) do if not name:match('%.') then t[#t+1] = name end end if #t == 0 then for name in pairs(rockspec.build.modules or {}) do t[#t+1] = name end end if #t == 0 then t[#t+1] = rockspec.package:gsub('%-', '') end table.sort(t) return t end local function get_external_dependencies (rockspec) local t = {} for k in pairs(rockspec.external_dependencies or {}) do k = k:lower() if fs.is_dir('package/' .. k) then t[#t+1] = k else t[#t+1] = 'lib' .. k if not fs.is_dir('package/lib' .. k) then util.printout('unkwown external dependency: ' .. k) end end end table.sort(t) return t end local function get_dependencies (rockspec) local t = {} for i = 1, #rockspec.dependencies do local dep = tostring(rockspec.dependencies[i]):match('^(%S+)') if dep ~= 'lua' then dep = dep:gsub('_', '-') if fs.is_dir('package/lua-' .. dep) then t[#t+1] = 'lua-' .. dep else t[#t+1] = dep if not fs.is_dir('package/' .. dep) then util.printout('unkwown dependency: ' .. dep) end end end end table.sort(t) return t end function get_digest (file) local absname = fs.absolute_name(file) local pipe = io.popen('sha256sum ' .. fs.Q(absname)) local line = pipe:read('*l') pipe:close() local computed = line and line:match('(' .. ('%x'):rep(64) .. ')') if computed then return computed else return nil, "Failed to compute SHA256 hash for file " .. absname end end local function generate_config (rockspec, lcname) local ucname = brname(lcname) local only_luajit = rockspec.package:match('^lj') local summary = rockspec.description.summary if not summary then summary = '???' elseif not summary:match('%.%s*$') then summary = summary:gsub('%s*$', '.') end local homepage = rockspec.description.homepage or '???' local external_dependencies = get_external_dependencies(rockspec) local dependencies = get_dependencies(rockspec) local fname = 'package/' .. lcname .. '/Config.in' local f = assert(io.open(fname, 'w')) util.printout('write ' .. fname) f:write('config BR2_PACKAGE_' .. ucname .. '\n') f:write('\tbool "' .. lcname .. '"\n') if only_luajit then f:write('\tdepends on BR2_PACKAGE_LUAJIT\n') end for i = 1, #external_dependencies do f:write('\tselect BR2_PACKAGE_' .. brname(external_dependencies[i]) .. '\n') end for i = 1, #dependencies do f:write('\tselect BR2_PACKAGE_' .. brname(dependencies[i]) .. ' # runtime\n') end f:write('\thelp\n') f:write('\t ' .. table.concat(wrap(summary, 62), '\n\t ') .. '\n') f:write('\n\t ' .. homepage .. '\n') if only_luajit then f:write('\ncomment "' .. lcname .. ' needs LuaJIT"\n') f:write('\tdepends on !BR2_PACKAGE_LUAJIT\n') end f:close() end local function generate_mk (rockspec, lcname, licenses) local function escape (s) return s:gsub('-', '%%-'):gsub('%.', '%%.') end local ucname = brname(lcname) local need_name_upstream = false local need_version_upstream = false local name_upstream = rockspec.package local version = rockspec.version local version_upstream = version:match('^([^-]+)-') local revision = version:match('-(%d+)$') local license = rockspec.description.license local subdir = rockspec.source.dir if subdir then local root = subdir:match('^(.-)-' .. escape(version) .. '$') if root then subdir = root .. '-$(' .. ucname .. '_VERSION)' end root = subdir:match('^(.--[Vv])' .. escape(version_upstream) .. '$') if root then need_version_upstream = true subdir = root .. '$(' .. ucname .. '_VERSION_UPSTREAM)' end root = subdir:match('^(.-)-' .. escape(version_upstream) .. '$') if root then if root == lcname then subdir = nil elseif root == name_upstream then subdir = nil need_name_upstream = true else need_version_upstream = true subdir = root .. '-$(' .. ucname .. '_VERSION_UPSTREAM)' end end end local external_dependencies = get_external_dependencies(rockspec) local fname = 'package/' .. lcname .. '/' .. lcname .. '.mk' local f = assert(io.open(fname, 'w')) util.printout('write ' .. fname) f:write('################################################################################\n') f:write('#\n') f:write('# ' .. lcname .. '\n') f:write('#\n') f:write('################################################################################\n') f:write('\n') if need_version_upstream then f:write(ucname .. '_VERSION_UPSTREAM = ' .. version_upstream .. '\n') f:write(ucname .. '_VERSION = $(' .. ucname .. '_VERSION_UPSTREAM)-' .. revision .. '\n') else f:write(ucname .. '_VERSION = ' .. version .. '\n') end if lcname ~= name_upstream:lower() or need_name_upstream then f:write(ucname .. '_NAME_UPSTREAM = ' .. name_upstream .. '\n') end if subdir then f:write(ucname .. '_SUBDIR = ' .. subdir .. '\n') end if license then f:write(ucname .. '_LICENSE = ' .. brlicense(license) .. '\n') end if #licenses == 1 then f:write(ucname .. '_LICENSE_FILES = $(' .. ucname .. '_SUBDIR)/' .. licenses[1] .. '\n') elseif #licenses > 1 then f:write(ucname .. '_LICENSE_FILES =') for i = 1, #licenses do local file = licenses[i] f:write(' \\\n\t$(' .. ucname .. '_SUBDIR)/' .. file) end f:write('\n') end if #external_dependencies > 0 then f:write(ucname .. '_DEPENDENCIES = ' .. table.concat(external_dependencies, ' ') .. '\n') end f:write('\n$(eval $(luarocks-package))\n') f:close() end local function generate_hash (rockspec, lcname, rock_file, licenses, digest) local subdir = rockspec.source.dir local fname = 'package/' .. lcname .. '/' .. lcname .. '.hash' local f = assert(io.open(fname, 'w')) util.printout('write ' .. fname) f:write('# computed by luarocks/buildroot\n') f:write('sha256 ' .. digest[rock_file] .. ' ' .. rock_file .. '\n') for i = 1, #licenses do local file = licenses[i] f:write('sha256 ' .. digest[file] .. ' ' .. subdir .. '/' .. file .. '\n') end f:close() end local function generate_test (rockspec, lcname) local ucname = brname(lcname) local classname = rockspec.package:gsub('%-', ''):gsub('%.', '') classname = classname:sub(1, 1):upper() .. classname:sub(2) local modnames = get_main_modules(rockspec) local fname = 'support/testing/tests/package/test_' .. ucname:lower() .. '.py' local f = assert(io.open(fname, 'w')) util.printout('write ' .. fname) f:write('from tests.package.test_lua import TestLuaBase\n') f:write('\n') f:write('\n') f:write('class TestLua' .. classname .. '(TestLuaBase):\n') f:write(' config = TestLuaBase.config + \\\n') f:write(' """\n') f:write(' BR2_PACKAGE_LUA=y\n') f:write(' BR2_PACKAGE_' .. ucname .. '=y\n') f:write(' """\n') f:write('\n') f:write(' def test_run(self):\n') f:write(' self.login()\n') for i = 1, #modnames do f:write(' self.module_test("' .. modnames[i] .. '")\n') end f:write('\n') f:write('\n') f:write('class TestLuajit' .. classname .. '(TestLuaBase):\n') f:write(' config = TestLuaBase.config + \\\n') f:write(' """\n') f:write(' BR2_PACKAGE_LUAJIT=y\n') f:write(' BR2_PACKAGE_' .. ucname .. '=y\n') f:write(' """\n') f:write('\n') f:write(' def test_run(self):\n') f:write(' self.login()\n') for i = 1, #modnames do f:write(' self.module_test("' .. modnames[i] .. '")\n') end f:close() end --- Driver function for the "buildroot" command. -- @return boolean: true if successful function buildroot.command(args) local rockname = assert(args.rockname) local fsname = args.brname or rockname local query = queries.new(rockname:lower(), nil, nil, false, 'src') local url, err = search.find_suitable_rock(query) if not url then return nil, "Could not find a result named " .. tostring(query) .. ": " .. err end local rock_file = dir.base_name(url) local temp_dir, err = fs.make_temp_dir(rockname) if not temp_dir then return nil, "Failed creating temporary dir: " .. err end local ok, err = fs.change_dir(temp_dir) if not ok then return nil, err end ok = fs.download(url, rock_file, true) if not ok then return nil, "Failed downloading " .. url end local digest = {} digest[rock_file], err = get_digest(rock_file) if not digest[rock_file] then return nil, err end ok, err = fs.unzip(rock_file) if not ok then return nil, err end local rockspec_file = rock_file:gsub('%.src%.rock$', '.rockspec') local rockspec, err = fetch.load_rockspec(rockspec_file) if not rockspec then return nil, "Error loading rockspec: " .. err end if rockspec.source.file then ok, err = fs.unpack_archive(rockspec.source.file) if not ok then return nil, err end end if rockspec.source.dir ~= '.' then fs.copy(rockspec.local_abs_filename, rockspec.source.dir, 'read') end local build_type = rockspec.build.type if build_type ~= 'none' and build_type ~= 'builtin' and build_type ~= 'module' then util.printout('[' .. rockspec.package .. "] build_type '" .. build_type .. "' not supported") end local licenses = {} ok, err = fs.change_dir(rockspec.source.dir) if not ok then return nil, err end local files = fs.find() for i = 1, #files do local v = files[i] if v == 'COPYING' or v == 'COPYRIGHT' or v:match('^LICENSE') then licenses[#licenses+1] = v digest[v], err = get_digest(v) if not digest[v] then return nil, err end end end if #licenses == 0 then for i = 1, #files do local v = files[i] if v:match('^docs?/LICENSE') or v:match('^docs?/license') or v:match('^doc/us/license') then licenses[#licenses+1] = v digest[v], err = get_digest(v) if not digest[v] then return nil, err end end end end fs.pop_dir() table.sort(licenses) fs.pop_dir() ok, err = fs.make_dir('package/' .. fsname:lower()) if not ok then return nil, err end generate_config(rockspec, fsname:lower()) generate_mk(rockspec, fsname:lower(), licenses) generate_hash(rockspec, fsname:lower(), rock_file, licenses, digest) if has_c_files(rockspec) then ok, err = fs.make_dir('support/testing/tests/package') if not ok then return nil, err end generate_test(rockspec, fsname:lower()) end return true end return buildroot ================================================ FILE: package/luarocks/luarocks.hash ================================================ # Locally calculated sha256 9255d97fee95cec5b54fc6ac718b11bf5029e45bed7873e053314919cd448551 luarocks-3.7.0.tar.gz sha256 542ad0ee9b8ba582437ca7b4d0959c9b9432f25d2067f144d017188a7a84dd2f COPYING ================================================ FILE: package/luarocks/luarocks.mk ================================================ ################################################################################ # # luarocks # ################################################################################ LUAROCKS_VERSION = 3.7.0 LUAROCKS_SITE = http://luarocks.org/releases LUAROCKS_LICENSE = MIT LUAROCKS_LICENSE_FILES = COPYING HOST_LUAROCKS_DEPENDENCIES = host-luainterpreter LUAROCKS_CONFIG_DIR = $(HOST_DIR)/etc LUAROCKS_CONFIG_FILE_DEFAULT = $(LUAROCKS_CONFIG_DIR)/luarocks/config-$(LUAINTERPRETER_ABIVER).lua LUAROCKS_CONFIG_FILE = $(LUAROCKS_CONFIG_DIR)/luarocks/config.lua HOST_LUAROCKS_CONFIG_FILE = $(LUAROCKS_CONFIG_DIR)/luarocks/host-config.lua define LUAROCKS_ADDON_EXTRACT $(INSTALL) -D -m 0644 package/luarocks/buildroot.lua $(@D)/src/luarocks/cmd/external/buildroot.lua endef HOST_LUAROCKS_POST_EXTRACT_HOOKS += LUAROCKS_ADDON_EXTRACT HOST_LUAROCKS_CONF_OPTS = \ --prefix=$(HOST_DIR) \ --sysconfdir=$(LUAROCKS_CONFIG_DIR) \ --with-lua=$(HOST_DIR) define HOST_LUAROCKS_CONFIGURE_CMDS cd $(@D) && ./configure $(HOST_LUAROCKS_CONF_OPTS) endef define HOST_LUAROCKS_INSTALL_CMDS rm -f $(LUAROCKS_CONFIG_FILE_DEFAULT) $(MAKE1) -C $(@D) install cp $(LUAROCKS_CONFIG_FILE_DEFAULT) $(LUAROCKS_CONFIG_FILE) echo "-- BR cross-compilation" >> $(LUAROCKS_CONFIG_FILE) echo "gcc_rpath = false" >> $(LUAROCKS_CONFIG_FILE) echo "wrap_bin_scripts = false" >> $(LUAROCKS_CONFIG_FILE) cp $(LUAROCKS_CONFIG_FILE_DEFAULT) $(HOST_LUAROCKS_CONFIG_FILE) rm -f $(LUAROCKS_CONFIG_FILE_DEFAULT) endef $(eval $(host-generic-package)) define LUAROCKS_FINALIZE_TARGET rm -rf $(TARGET_DIR)/usr/lib/luarocks endef # Apply to global variable directly, as pkg-generic does not ifneq ($(BR2_PACKAGE_LUAJIT)$(BR2_PACKAGE_LUA),) TARGET_FINALIZE_HOOKS += LUAROCKS_FINALIZE_TARGET endif ================================================ FILE: package/luasec/Config.in ================================================ config BR2_PACKAGE_LUASEC bool "luasec" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LUASOCKET # runtime help A binding for OpenSSL library to provide TLS/SSL communication over LuaSocket. https://github.com/brunoos/luasec/wiki ================================================ FILE: package/luasec/luasec.hash ================================================ # computed by luarocks/buildroot sha256 b7e18f475c64896fe4921d367adabae765914f7526a68487a5fa6831040e7138 luasec-1.0-1.src.rock sha256 0d3431dad143f41c8902e4ee867e386a702ebad856c45239fb86460e27dabfbf luasec/LICENSE ================================================ FILE: package/luasec/luasec.mk ================================================ ################################################################################ # # luasec # ################################################################################ LUASEC_VERSION = 1.0-1 LUASEC_SUBDIR = luasec LUASEC_LICENSE = MIT LUASEC_LICENSE_FILES = $(LUASEC_SUBDIR)/LICENSE LUASEC_DEPENDENCIES = openssl $(eval $(luarocks-package)) ================================================ FILE: package/luasocket/Config.in ================================================ config BR2_PACKAGE_LUASOCKET bool "luasocket" help LuaSocket is the most comprehensive networking support library for the Lua language. It provides easy access to TCP, UDP, DNS, SMTP, FTP, HTTP, MIME and much more. http://luaforge.net/projects/luasocket/ ================================================ FILE: package/luasocket/luasocket.hash ================================================ # computed by luarocks/buildroot sha256 453fc1d0e9b6a44bbada4290d565f840a5e96ba2d1b47562ba38bd9c7e82195a luasocket-3.0rc1-1.src.rock sha256 8e8c6314d9e78fe452ee355167f2c40cfbee8207e14dcb5ddd4a2655cb5c6aad luasocket-3.0-rc1/LICENSE ================================================ FILE: package/luasocket/luasocket.mk ================================================ ################################################################################ # # luasocket # ################################################################################ LUASOCKET_VERSION = 3.0rc1-1 LUASOCKET_SUBDIR = luasocket-3.0-rc1 LUASOCKET_LICENSE = MIT LUASOCKET_LICENSE_FILES = $(LUASOCKET_SUBDIR)/LICENSE $(eval $(luarocks-package)) ================================================ FILE: package/luasql-sqlite3/Config.in ================================================ config BR2_PACKAGE_LUASQL_SQLITE3 bool "luasql-sqlite3" select BR2_PACKAGE_SQLITE help LuaSQL is a simple interface from Lua to a DBMS. http://keplerproject.github.io/luasql/ ================================================ FILE: package/luasql-sqlite3/luasql-sqlite3.hash ================================================ # computed by luarocks/buildroot sha256 502faabc5e06c1d7c1ddb9a0550eb19220020c86b9f1e26a2cc2001e1343b35d luasql-sqlite3-2.4.0-1.src.rock sha256 c8bb3a3947379addb89412e578d0aae95ca37dc6e48a17e128f40e512d10b025 luasql/doc/us/license.html ================================================ FILE: package/luasql-sqlite3/luasql-sqlite3.mk ================================================ ################################################################################ # # luasql-sqlite3 # ################################################################################ LUASQL_SQLITE3_VERSION = 2.4.0-1 LUASQL_SQLITE3_SUBDIR = luasql LUASQL_SQLITE3_LICENSE = MIT LUASQL_SQLITE3_LICENSE_FILES = $(LUASQL_SQLITE3_SUBDIR)/doc/us/license.html LUASQL_SQLITE3_DEPENDENCIES = sqlite $(eval $(luarocks-package)) ================================================ FILE: package/luasyslog/0001-remove-AX_LUA_LIBS.patch ================================================ From 84296c5eae651b45ebfa233199b7ddc009a5dad3 Mon Sep 17 00:00:00 2001 From: Francois Perrad Date: Fri, 21 Jun 2019 14:58:54 +0200 Subject: [PATCH] remove AX_LUA_LIBS AX_LUA_LIBS fails with LuaJIT Signed-off-by: Francois Perrad --- configure.ac | 1 - 1 file changed, 1 deletion(-) diff --git a/configure.ac b/configure.ac index 9ac6c95..d7fc518 100644 --- a/configure.ac +++ b/configure.ac @@ -32,7 +32,6 @@ AC_PATH_PROG([LUAROCKS], [luarocks], [:]) AX_PROG_LUA([5.1],[6.0]) dnl Check for libraries -AX_LUA_LIBS dnl Check for functions AC_HEADER_STDC -- 2.20.1 ================================================ FILE: package/luasyslog/Config.in ================================================ config BR2_PACKAGE_LUASYSLOG bool "luasyslog" select BR2_PACKAGE_LUALOGGING # runtime help syslog appender for LuaLogging. https://github.com/ntd/luasyslog ================================================ FILE: package/luasyslog/luasyslog.hash ================================================ # Locally computed sha256 7f7dad64117407f2484ff5b53e90804f923a99fcbde5872e54f6aba53f482da0 luasyslog-2.2.0.tar.gz sha256 833457938f5155e65dabda12a5c9d4b6fd7fb92dd7ead584c1c30cfb0c84adf4 COPYING ================================================ FILE: package/luasyslog/luasyslog.mk ================================================ ################################################################################ # # luasyslog # ################################################################################ LUASYSLOG_VERSION = 2.2.0 LUASYSLOG_SITE = $(call github,ntd,luasyslog,$(LUASYSLOG_VERSION)) LUASYSLOG_DEPENDENCIES = host-luarocks luainterpreter LUASYSLOG_LICENSE = MIT LUASYSLOG_LICENSE_FILES = COPYING # fetching from github # 0001-remove-AX_LUA_LIBS.patch touches configure.ac LUASYSLOG_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/lugaru/0001-ImageIO-fix-invalid-conversion.patch ================================================ From 73e56ba8e91b6bae59220e6f25c1b7c15817edb5 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 12 Feb 2017 21:17:44 +0100 Subject: [PATCH] ImageIO: fix invalid conversion Fixes: Source/Utils/ImageIO.cpp:125:27: error: invalid conversion from 'int' to 'boolean' [-fpermissive] cinfo.quantize_colors = 0; ^ quantize_colors type is bool, so it must be initialized to TRUE or FALSE. Patch status: upsteam Signed-off-by: Romain Naour --- Source/Utils/ImageIO.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Utils/ImageIO.cpp b/Source/Utils/ImageIO.cpp index 706c201..c19a63e 100644 --- a/Source/Utils/ImageIO.cpp +++ b/Source/Utils/ImageIO.cpp @@ -122,7 +122,7 @@ static bool load_jpg(const char* file_name, ImageRec& tex) (void)jpeg_read_header(&cinfo, TRUE); cinfo.out_color_space = JCS_RGB; - cinfo.quantize_colors = 0; + cinfo.quantize_colors = FALSE; (void)jpeg_calc_output_dimensions(&cinfo); (void)jpeg_start_decompress(&cinfo); -- 2.9.3 ================================================ FILE: package/lugaru/0002-Fix-mismatched-usage-length-build-fail-on-g.patch ================================================ From 5a0c9f6358169b447840acdb721250ce932cb180 Mon Sep 17 00:00:00 2001 From: Martin Erik Werner Date: Wed, 8 Mar 2017 22:51:16 +0100 Subject: [PATCH] Fix mismatched usage length, build fail on g++ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The length of const option::Descriptor usage[] is intended to be inferred based on the initialisation in Source/main.cpp, however, the extern declaration in Source/Game.hpp hard-codes it to 13. Remove the hard-coded 13 in the extern declaration, in favour of the inferred length. This also fixes the follwoing build failure with g++ (Debian 4.9.2-10) 4.9.2: (...)/Source/main.cpp:602:5: error: uninitialized const member ‘option::Descriptor::index’ }; ^ (...)/Source/main.cpp:602:5: warning: missing initializer for member ‘option::Descriptor::index’ [-Wmissing-field-initializers] (...)/Source/main.cpp:602:5: error: uninitialized const member ‘option::Descriptor::type’ (...)/Source/main.cpp:602:5: warning: missing initializer for member ‘option::Descriptor::type’ [-Wmissing-field-initializers] (...)/Source/main.cpp:602:5: error: uninitialized const member ‘option::Descriptor::shortopt’ (...)/Source/main.cpp:602:5: warning: missing initializer for member ‘option::Descriptor::shortopt’ [-Wmissing-field-initializers] (...)/Source/main.cpp:602:5: error: uninitialized const member ‘option::Descriptor::longopt’ (...)/Source/main.cpp:602:5: warning: missing initializer for member ‘option::Descriptor::longopt’ [-Wmissing-field-initializers] (...)/Source/main.cpp:602:5: error: uninitialized const member ‘option::Descriptor::check_arg’ (...)/Source/main.cpp:602:5: warning: missing initializer for member ‘option::Descriptor::check_arg’ [-Wmissing-field-initializers] (...)/Source/main.cpp:602:5: warning: missing initializer for member ‘option::Descriptor::help’ [-Wmissing-field-initializers] CMakeFiles/lugaru.dir/build.make:54: recipe for target 'CMakeFiles/lugaru.dir/Source/main.cpp.o' failed Signed-off-by: Martin Erik Werner [Romain: backport to v1.2] Signed-off-by: Romain Naour (cherry picked from commit dd685fe9080c2853422d8272792691358ea07dfc) --- Source/Game.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Game.hpp b/Source/Game.hpp index 51232cc..9bb6adb 100644 --- a/Source/Game.hpp +++ b/Source/Game.hpp @@ -234,7 +234,7 @@ enum optionIndex /* Number of options + 1 */ const int commandLineOptionsNumber = 10; -extern const option::Descriptor usage[13]; +extern const option::Descriptor usage[]; extern option::Option commandLineOptions[commandLineOptionsNumber]; extern option::Option* commandLineOptionsBuffer; -- 2.9.4 ================================================ FILE: package/lugaru/Config.in ================================================ config BR2_PACKAGE_LUGARU bool "lugaru" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_HAS_LIBGL # libglu depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on BR2_PACKAGE_XORG7 # SDL2 OpenGL (GLX) depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # openal depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # openal depends on BR2_USE_MMU # SDL2 OpenGL (GLX) depends on !BR2_STATIC_LIBS # SDL2 select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBGLU # GL/glu.h select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_LIBVORBIS select BR2_PACKAGE_OPENAL select BR2_PACKAGE_SDL2 select BR2_PACKAGE_SDL2_OPENGL select BR2_PACKAGE_ZLIB help Lugaru (pronounced Loo-GAH-roo) is a cross-platform third-person action game. The main character, Turner, is an anthropomorphic rebel bunny rabbit with impressive combat skills. In his quest to find those responsible for slaughtering his village, he uncovers a far-reaching conspiracy involving the corrupt leaders of the rabbit republic and the starving wolves from a nearby den. Turner takes it upon himself to fight against their plot and save his fellow rabbits from slavery. https://osslugaru.gitlab.io/ comment "lugaru needs X11 and a toolchain w/ C++, OpenGL backend, gcc >= 4.9, NPTL, dynamic library" depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_HAS_LIBGL || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ BR2_STATIC_LIBS ================================================ FILE: package/lugaru/lugaru.hash ================================================ # Locally calculated sha256 f3ea477caf78911c69939fbdc163f9f6517c7ef2267e716a0e050be1a166ef97 lugaru-1.2.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING.txt sha256 df020520630390de59394235a90a17c5d52d3b80ef76e2edf6d0690cd8b7fd7c CONTENT-LICENSE.txt ================================================ FILE: package/lugaru/lugaru.mk ================================================ ################################################################################ # # lugaru # ################################################################################ LUGARU_VERSION = 1.2 LUGARU_SITE = https://bitbucket.org/osslugaru/lugaru/downloads LUGARU_SOURCE = lugaru-$(LUGARU_VERSION).tar.xz LUGARU_LICENSE = GPL-2.0+, CC-BY-SA-3.0 (Wolfire and Slib assets), \ CC-BY-SA-4.0 (OSS Lugaru, Jendraz and Philtron R. assets) LUGARU_LICENSE_FILES = COPYING.txt CONTENT-LICENSE.txt LUGARU_DEPENDENCIES = host-pkgconf jpeg libgl libglu libpng libvorbis \ openal sdl2 zlib # Avoid incompatible posix_memalign declaration on x86 and x86_64 with # musl. # https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01425.html ifeq ($(BR2_TOOLCHAIN_USES_MUSL):$(BR2_i386)$(BR2_x86_64),y:y) define LUGARU_REMOVE_PEDANTIC $(SED) 's% -pedantic%%' $(@D)/CMakeLists.txt endef LUGARU_POST_PATCH_HOOKS += LUGARU_REMOVE_PEDANTIC endif LUGARU_CONF_OPTS = -DSYSTEM_INSTALL=ON $(eval $(cmake-package)) ================================================ FILE: package/luksmeta/Config.in ================================================ config BR2_PACKAGE_LUKSMETA bool "luksmeta" depends on BR2_TOOLCHAIN_HAS_THREADS # cryptsetup -> lvm2 depends on BR2_USE_MMU # cryptsetup -> lvm2 depends on !BR2_STATIC_LIBS # cryptsetup -> lvm2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # cryptsetup -> json-c select BR2_PACKAGE_CRYPTSETUP help LUKSMeta is a simple library and utility for storing metadata in the LUKSv1 header. https://github.com/latchset/luksmeta comment "luksmeta needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/luksmeta/luksmeta.hash ================================================ # Locally calculated sha256 2ca0c35b551b331ba1444fc9d36e8c48ff8cae53dd4e6155b028e8904edc202a luksmeta-9.tar.bz2 sha256 4b72eb6b5a336cd3ec837cc2d6347c23bf7574168db6b4802267700b93021abf COPYING ================================================ FILE: package/luksmeta/luksmeta.mk ================================================ ################################################################################ # # luksmeta # ################################################################################ LUKSMETA_VERSION = 9 LUKSMETA_SOURCE = luksmeta-$(LUKSMETA_VERSION).tar.bz2 LUKSMETA_SITE = https://github.com/latchset/luksmeta/releases/download/v$(LUKSMETA_VERSION) LUKSMETA_LICENSE = LGPL-2.1+ LUKSMETA_LICENSE_FILES = COPYING LUKSMETA_DEPENDENCIES = host-pkgconf cryptsetup LUKSMETA_CONF_ENV = ac_cv_prog_A2X="" LUKSMETA_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/lutok/Config.in ================================================ config BR2_PACKAGE_LUTOK bool "lutok" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_PACKAGE_LUAJIT help Lutok is a lightweight C++ API library for Lua. https://github.com/jmmv/lutok comment "lutok needs a toolchain w/ C++ and full Lua" depends on !BR2_INSTALL_LIBSTDCPP || BR2_PACKAGE_LUAJIT ================================================ FILE: package/lutok/lutok.hash ================================================ # Locally computed sha256 2cec51efa0c8d65ace8b21eaa08384b77abc5087b46e785f78de1c21fb754cd5 lutok-0.4.tar.gz sha256 9343913f8ef8a91ceaf148fdcdb70bb8a45b9df9dac2ef71308053dcb312ade9 COPYING ================================================ FILE: package/lutok/lutok.mk ================================================ ################################################################################ # # lutok # ################################################################################ LUTOK_VERSION = 0.4 LUTOK_SITE = https://github.com/jmmv/lutok/releases/download/lutok-$(LUTOK_VERSION) LUTOK_INSTALL_STAGING = YES LUTOK_DEPENDENCIES = host-pkgconf lua # --without-atf disables the atf-based lutok tests LUTOK_CONF_OPTS = --without-doxygen --without-atf LUTOK_LICENSE = BSD-3-Clause LUTOK_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/luv/Config.in ================================================ config BR2_PACKAGE_LUV bool "luv" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv depends on BR2_USE_MMU # libuv depends on !BR2_STATIC_LIBS # libuv depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv select BR2_PACKAGE_LIBUV help libuv bindings for LuaJIT and Lua. https://github.com/luvit/luv comment "luv needs a toolchain w/ NPTL, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 ================================================ FILE: package/luv/luv.hash ================================================ # Locally calculated sha256 b5228a9d0eaacd9f862b6270c732d5c90773a28ce53b6d9e32a14050e7947f36 luv-1.42.0-0.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/luv/luv.mk ================================================ ################################################################################ # # luv # ################################################################################ LUV_VERSION = 1.42.0-0 LUV_SITE = https://github.com/luvit/luv/releases/download/$(LUV_VERSION) LUV_LICENSE = Apache-2.0 LUV_LICENSE_FILES = LICENSE.txt LUV_DEPENDENCIES = libuv LUV_INSTALL_STAGING = YES LUV_CONF_OPTS += \ -DBUILD_MODULE=OFF \ -DWITH_SHARED_LIBUV=ON \ -DLUA_BUILD_TYPE=System ifeq ($(BR2_PACKAGE_LUAJIT),y) LUV_DEPENDENCIES += luajit LUV_CONF_OPTS += \ -DWITH_LUA_ENGINE=LuaJIT else LUV_DEPENDENCIES += lua LUV_CONF_OPTS += \ -DWITH_LUA_ENGINE=Lua endif $(eval $(cmake-package)) ================================================ FILE: package/luvi/Config.in ================================================ config BR2_PACKAGE_LUVI bool "luvi" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv depends on BR2_USE_MMU # libuv depends on !BR2_STATIC_LIBS # libuv depends on BR2_PACKAGE_LUAJIT depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv select BR2_PACKAGE_LIBUV select BR2_PACKAGE_LUV select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL help A project in-between luv and luvit. The goal of this is to make building luvit and derivatives much easier. luvi extends LuaJIT with asynchronous I/O and several optional modules to run Lua applications and build self-contained binaries on systems that don't have a compiler. The luvi core can be extended with several Lua modules by adding its bundled Lua binding libraries. To get the Lua module... * 'rex' select PCRE (BR2_PACKAGE_PCRE) * 'ssl' select OpenSSL (BR2_PACKAGE_OPENSSL) * 'zlib' select zlib (BR2_PACKAGE_ZLIB) https://github.com/luvit/luvi comment "luvi needs a toolchain w/ NPTL, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 comment "luvi needs LuaJIT" depends on !BR2_PACKAGE_LUAJIT ================================================ FILE: package/luvi/luvi.hash ================================================ # Locally calculated sha256 4149c87646f487f9076c29e9861f64468637b1d1361b777b093e6204a83e1ed9 luvi-src-v2.12.0.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/luvi/luvi.mk ================================================ ################################################################################ # # luvi # ################################################################################ LUVI_VERSION = 2.12.0 LUVI_SOURCE = luvi-src-v$(LUVI_VERSION).tar.gz LUVI_SITE = https://github.com/luvit/luvi/releases/download/v$(LUVI_VERSION) LUVI_LICENSE = Apache-2.0 LUVI_LICENSE_FILES = LICENSE.txt LUVI_DEPENDENCIES = libuv luajit luv host-luajit host-pkgconf # Dispatch all architectures of LuaJIT ifeq ($(BR2_i386),y) LUVI_TARGET_ARCH = x86 else ifeq ($(BR2_x86_64),y) LUVI_TARGET_ARCH = x64 else ifeq ($(BR2_powerpc),y) LUVI_TARGET_ARCH = ppc else ifeq ($(BR2_arm)$(BR2_armeb),y) LUVI_TARGET_ARCH = arm else ifeq ($(BR2_aarch64),y) LUVI_TARGET_ARCH = arm64 else ifeq ($(BR2_mips),y) LUVI_TARGET_ARCH = mips else ifeq ($(BR2_mipsel),y) LUVI_TARGET_ARCH = mipsel else LUVI_TARGET_ARCH = $(BR2_ARCH) endif # LUAJIT_VERSION and the luajit installation path may not use the # same value. Use the value from luajit.pc file. LUVI_LUAJIT_VERSION = `$(PKG_CONFIG_HOST_BINARY) --variable=version luajit` # Bundled lua bindings have to be linked statically into the luvi executable LUVI_CONF_OPTS = \ -DBUILD_SHARED_LIBS=OFF \ -DWithSharedLibluv=ON \ -DTARGET_ARCH=$(LUVI_TARGET_ARCH) \ -DLUA_PATH=$(HOST_DIR)/share/luajit-$(LUVI_LUAJIT_VERSION)/?.lua # Add "rex" module (PCRE via bundled lrexlib) ifeq ($(BR2_PACKAGE_PCRE),y) LUVI_DEPENDENCIES += pcre LUVI_CONF_OPTS += -DWithPCRE=ON -DWithSharedPCRE=ON else LUVI_CONF_OPTS += -DWithPCRE=OFF -DWithSharedPCRE=OFF endif # Add "ssl" module (via bundled lua-openssl) ifeq ($(BR2_PACKAGE_OPENSSL),y) LUVI_DEPENDENCIES += openssl LUVI_CONF_OPTS += -DWithOpenSSL=ON -DWithOpenSSLASM=ON -DWithSharedOpenSSL=ON else LUVI_CONF_OPTS += -DWithOpenSSL=OFF -DWithOpenSSLASM=OFF -DWithSharedOpenSSL=OFF endif # Add "zlib" module (via bundled lua-zlib) ifeq ($(BR2_PACKAGE_ZLIB),y) LUVI_DEPENDENCIES += zlib LUVI_CONF_OPTS += -DWithZLIB=ON -DWithSharedZLIB=ON else LUVI_CONF_OPTS += -DWithZLIB=OFF -DWithSharedZLIB=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/lvm2/Config.in ================================================ config BR2_PACKAGE_LVM2 bool "lvm2 & device mapper" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # needs fork() depends on !BR2_STATIC_LIBS # It fails to build statically select BR2_PACKAGE_LIBAIO help This is LVM2, the rewrite of The Linux Logical Volume Manager. LVM supports enterprise level volume management of disk and disk subsystems by grouping arbitrary disks into volume groups. The total capacity of volume groups can be allocated to logical volumes, which are accessed as regular block devices. The Linux Kernel Device Mapper is the LVM (Linux Logical Volume Management) Team's implementation of a minimalistic kernel-space driver that handles volume management, while keeping knowledge of the underlying device layout in user-space. This makes it useful for not only LVM, but EVMS, software raid, and other drivers that create "virtual" block devices. http://www.sourceware.org/lvm2/ if BR2_PACKAGE_LVM2 config BR2_PACKAGE_LVM2_STANDARD_INSTALL bool "standard install instead of only dmsetup" default y # http://lists.busybox.net/pipermail/buildroot/2016-August/170592.html depends on !BR2_TOOLCHAIN_USES_MUSL help Install the standard suite of lvm2 programs. When this option is not set, only dmsetup is installed. comment "lvm2 standard install needs a glibc or uClibc toolchain" depends on BR2_TOOLCHAIN_USES_MUSL endif comment "lvm2 needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/lvm2/lvm2.hash ================================================ # From http://sources.redhat.com/pub/lvm2/sha512.sum sha512 e4d3bfb38b346251a2ea2cee7b79f2e12ed407652b659b35b65f58c8bb252943cee1c511713aeec8ff3400790e0e99ea6b83e8740050defe5cbb118f18bf7700 LVM2.2.03.12.tgz # Locally computed sha256 checksums sha256 e76fbcd2fb97cf202da330301327754d2db5c58b5b4bebd3a8a749393e7603d1 COPYING sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING.LIB ================================================ FILE: package/lvm2/lvm2.mk ================================================ ################################################################################ # # lvm2 # ################################################################################ LVM2_VERSION = 2.03.12 LVM2_SOURCE = LVM2.$(LVM2_VERSION).tgz LVM2_SITE = http://sources.redhat.com/pub/lvm2 LVM2_INSTALL_STAGING = YES LVM2_LICENSE = GPL-2.0, LGPL-2.1 LVM2_LICENSE_FILES = COPYING COPYING.LIB LVM2_CPE_ID_PRODUCT = redhat # parallel build issues LVM2_MAKE = $(MAKE1) # Make sure that binaries and libraries are installed with write # permissions for the owner. We disable NLS because it's broken, and # the package anyway doesn't provide any translation files. LVM2_CONF_OPTS += \ --enable-write_install \ --enable-pkgconfig \ --enable-cmdlib \ --enable-dmeventd \ --disable-nls \ --with-symvers=no LVM2_DEPENDENCIES += host-pkgconf libaio # LVM2 uses autoconf, but not automake, and the build system does not # take into account the toolchain passed at configure time. LVM2_MAKE_ENV = $(TARGET_CONFIGURE_OPTS) # package/readline is GPL-3.0+, so not license compatible LVM2_CONF_OPTS += --disable-readline LVM2_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) LVM2_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) ifeq ($(BR2_PACKAGE_HAS_UDEV),y) LVM2_CONF_OPTS += --enable-udev_rules endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) LVM2_CONF_OPTS += --enable-selinux LVM2_DEPENDENCIES += libselinux else LVM2_CONF_OPTS += --disable-selinux endif ifeq ($(BR2_PACKAGE_LVM2_STANDARD_INSTALL),y) LVM2_INSTALL_STAGING_OPTS += install LVM2_INSTALL_TARGET_OPTS += install ifeq ($(BR2_INIT_SYSTEMD),y) LVM2_INSTALL_TARGET_OPTS += install_systemd_units install_systemd_generators endif else LVM2_MAKE_OPTS = device-mapper LVM2_INSTALL_STAGING_OPTS += install_device-mapper LVM2_INSTALL_TARGET_OPTS += install_device-mapper endif ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) LVM2_CONF_ENV += ac_cv_flag_HAVE_PIE=no endif HOST_LVM2_DEPENDENCIES = host-pkgconf host-libaio HOST_LVM2_CONF_OPTS = \ --enable-write_install \ --enable-pkgconfig \ --disable-cmdlib \ --disable-dmeventd \ --disable-fsadm \ --disable-readline \ --disable-selinux \ --with-confdir=$(HOST_DIR)/etc $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/lxc/Config.in ================================================ config BR2_PACKAGE_LXC bool "lxc" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() # build system forcefully builds a shared library depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # setns() system call depends on !BR2_TOOLCHAIN_USES_UCLIBC # no fexecve help Linux Containers (LXC), provides the ability to group and isolate of a set of processes in a jail by virtualizing and accounting the kernel resources. It is similar to Linux-Vserver or Openvz. https://linuxcontainers.org/ comment "lxc needs a glibc or musl toolchain w/ threads, headers >= 3.0, dynamic library, gcc >= 4.7" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 \ || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 \ || BR2_STATIC_LIBS \ || BR2_TOOLCHAIN_USES_UCLIBC ================================================ FILE: package/lxc/lxc.hash ================================================ # Locally calculated sha256 a10c518056d2e497bd600e4ffac2853bdeab1e835bf455a6d87cc8df128bfae9 lxc-4.0.10.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 LICENSE.GPL2 sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSE.LGPL2.1 ================================================ FILE: package/lxc/lxc.mk ================================================ ################################################################################ # # lxc # ################################################################################ LXC_VERSION = 4.0.10 LXC_SITE = https://linuxcontainers.org/downloads/lxc LXC_LICENSE = GPL-2.0 (some tools), LGPL-2.1+ LXC_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 LXC_CPE_ID_VENDOR = linuxcontainers LXC_DEPENDENCIES = host-pkgconf LXC_INSTALL_STAGING = YES LXC_CONF_OPTS = \ --disable-apparmor \ --disable-examples \ --with-distro=buildroot \ --disable-werror \ $(if $(BR2_PACKAGE_BASH),,--disable-bash) ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y) LXC_DEPENDENCIES += bash-completion endif ifeq ($(BR2_PACKAGE_LIBCAP),y) LXC_CONF_OPTS += --enable-capabilities LXC_DEPENDENCIES += libcap else LXC_CONF_OPTS += --disable-capabilities endif ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) LXC_CONF_OPTS += --enable-seccomp LXC_DEPENDENCIES += libseccomp else LXC_CONF_OPTS += --disable-seccomp endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) LXC_CONF_OPTS += --enable-selinux LXC_DEPENDENCIES += libselinux else LXC_CONF_OPTS += --disable-selinux endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LXC_CONF_OPTS += --enable-openssl LXC_DEPENDENCIES += openssl else LXC_CONF_OPTS += --disable-openssl endif $(eval $(autotools-package)) ================================================ FILE: package/lynx/Config.in ================================================ config BR2_PACKAGE_LYNX bool "lynx" depends on BR2_USE_MMU select BR2_PACKAGE_SLANG if !BR2_PACKAGE_NCURSES select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_GNUTLS help The Text Web-Browser. http://lynx.invisible-island.net/ ================================================ FILE: package/lynx/lynx.hash ================================================ # Locally calculated: sha256 387f193d7792f9cfada14c60b0e5c0bff18f227d9257a39483e14fa1aaf79595 lynx2.8.9rel.1.tar.bz2 sha256 b2207e757dbbefc34a20a32b1b4a216b4a4316e1dc812bceca4ac6294871119a 90_CVE-2021-38165.patch sha256 8406a30ff3134ec23cf752d1ceda92ddaabbe41b4f2dc07ea3cfa139de12d6d6 COPYING ================================================ FILE: package/lynx/lynx.mk ================================================ ################################################################################ # # lynx # ################################################################################ LYNX_VERSION = 2.8.9rel.1 LYNX_SOURCE = lynx$(LYNX_VERSION).tar.bz2 LYNX_SITE = ftp://ftp.invisible-island.net/lynx/tarballs LYNX_PATCH = \ https://salsa.debian.org/lynx-team/lynx/-/raw/debian/2.9.0dev.6-3_deb11u1/debian/patches/90_CVE-2021-38165.patch # 90_CVE-2021-38165.patch LYNX_IGNORE_CVES += CVE-2021-38165 LYNX_LICENSE = GPL-2.0 LYNX_LICENSE_FILES = COPYING LYNX_CPE_ID_VENDOR = lynx_project LYNX_DEPENDENCIES = host-pkgconf $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_REPRODUCIBLE),y) # configuration info leaks build paths LYNX_CONF_OPTS += --disable-config-info # disable build timestamp LYNX_CFLAGS += -DNO_BUILDSTAMP endif ifeq ($(BR2_PACKAGE_NCURSES),y) LYNX_DEPENDENCIES += ncurses LYNX_CONF_OPTS += --with-screen=ncurses$(if $(BR2_PACKAGE_NCURSES_WCHAR),w) else ifeq ($(BR2_PACKAGE_SLANG),y) LYNX_DEPENDENCIES += slang LYNX_CONF_OPTS += --with-screen=slang endif ifeq ($(BR2_PACKAGE_OPENSSL),y) LYNX_DEPENDENCIES += openssl LYNX_CONF_OPTS += --with-ssl=$(STAGING_DIR)/usr LYNX_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs openssl` else ifeq ($(BR2_PACKAGE_GNUTLS),y) LYNX_DEPENDENCIES += gnutls LYNX_CONF_OPTS += --with-gnutls endif ifeq ($(BR2_PACKAGE_ZLIB),y) LYNX_DEPENDENCIES += zlib LYNX_CONF_OPTS += --with-zlib else LYNX_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_LIBIDN),y) LYNX_DEPENDENCIES += libidn LYNX_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs libidn` endif LYNX_CONF_ENV = LIBS="$(LYNX_LIBS)" CFLAGS="$(TARGET_CFLAGS) $(LYNX_CFLAGS)" $(eval $(autotools-package)) ================================================ FILE: package/lz4/0001-Fix-potential-memory-corruption-with-negative-memmov.patch ================================================ From 8301a21773ef61656225e264f4f06ae14462bca7 Mon Sep 17 00:00:00 2001 From: Jasper Lievisse Adriaanse Date: Fri, 26 Feb 2021 15:21:20 +0100 Subject: [PATCH] Fix potential memory corruption with negative memmove() size Signed-off-by: Peter Korsgaard --- lib/lz4.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/lz4.c b/lib/lz4.c index 5f524d0..c2f504e 100644 --- a/lib/lz4.c +++ b/lib/lz4.c @@ -1749,7 +1749,7 @@ LZ4_decompress_generic( const size_t dictSize /* note : = 0 if noDict */ ) { - if (src == NULL) { return -1; } + if ((src == NULL) || (outputSize < 0)) { return -1; } { const BYTE* ip = (const BYTE*) src; const BYTE* const iend = ip + srcSize; -- 2.20.1 ================================================ FILE: package/lz4/Config.in ================================================ config BR2_PACKAGE_LZ4 bool "lz4" help LZ4 is a very fast lossless compression algorithm, providing compression speed at 400 MB/s per core, scalable with multi-cores CPU. It also features an extremely fast decoder, with speed in multiple GB/s per core, typically reaching RAM speed limits on multi-core systems. http://www.lz4.org/ if BR2_PACKAGE_LZ4 config BR2_PACKAGE_LZ4_PROGS bool "install programs" help lz4, lz4c, unlz4 and lz4cat binaries endif ================================================ FILE: package/lz4/lz4.hash ================================================ # sha256 locally computed sha256 030644df4611007ff7dc962d981f390361e6c97a34e5cbc393ddfbe019ffe2c1 lz4-1.9.3.tar.gz sha256 d15d99c8dc6b0ec22174c0e563a95bc40f9363ca7f9d9d793bb5c5a8e8d0af71 lib/LICENSE sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 programs/COPYING ================================================ FILE: package/lz4/lz4.mk ================================================ ################################################################################ # # lz4 # ################################################################################ LZ4_VERSION = 1.9.3 LZ4_SITE = $(call github,lz4,lz4,v$(LZ4_VERSION)) LZ4_INSTALL_STAGING = YES LZ4_LICENSE = BSD-2-Clause (library), GPL-2.0+ (programs) LZ4_LICENSE_FILES = lib/LICENSE programs/COPYING LZ4_CPE_ID_VENDOR = yann_collet # CVE-2014-4715 is misclassified (by our CVE tracker) as affecting version # 1.9.2, while in fact this issue has been fixed since lz4-r130: # https://github.com/lz4/lz4/commit/140e6e72ddb6fc5f7cd28ce0c8ec3812ef4a9c08 # See https://github.com/lz4/lz4/issues/818 LZ4_IGNORE_CVES += CVE-2014-4715 # 0001-Fix-potential-memory-corruption-with-negative-memmov.patch LZ4_IGNORE_CVES += CVE-2021-3520 ifeq ($(BR2_STATIC_LIBS),y) LZ4_MAKE_OPTS += BUILD_SHARED=no else ifeq ($(BR2_SHARED_LIBS),y) LZ4_MAKE_OPTS += BUILD_STATIC=no endif define HOST_LZ4_BUILD_CMDS $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) lib $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) lz4 endef define HOST_LZ4_INSTALL_CMDS $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) PREFIX=$(HOST_DIR) \ install -C $(@D) endef LZ4_DIRS = lib ifeq ($(BR2_PACKAGE_LZ4_PROGS),y) LZ4_DIRS += programs endif define LZ4_BUILD_CMDS $(foreach dir,$(LZ4_DIRS),\ $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) $(LZ4_MAKE_OPTS) \ -C $(@D)/$(dir) ) endef define LZ4_INSTALL_STAGING_CMDS $(foreach dir,$(LZ4_DIRS),\ $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) DESTDIR=$(STAGING_DIR) \ PREFIX=/usr $(LZ4_MAKE_OPTS) -C $(@D)/$(dir) install ) endef define LZ4_INSTALL_TARGET_CMDS $(foreach dir,$(LZ4_DIRS),\ $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) DESTDIR=$(TARGET_DIR) \ PREFIX=/usr $(LZ4_MAKE_OPTS) -C $(@D)/$(dir) install ) endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/lzip/Config.in ================================================ comment "lzip needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_LZIP bool "lzip" depends on BR2_INSTALL_LIBSTDCPP help Lzip is a lossless data compressor with a user interface similar to the one of gzip or bzip2. Lzip is about as fast as gzip, compresses most files more than bzip2, and is better than both from a data recovery perspective. Lzip is a clean implementation of the LZMA algorithm. https://www.nongnu.org/lzip/lzip.html ================================================ FILE: package/lzip/lzip.hash ================================================ # From https://lists.nongnu.org/archive/html/lzip-bug/2021-01/msg00008.html sha256 c3342d42e67139c165b8b128d033b5c96893a13ac5f25933190315214e87a948 lzip-1.22.tar.gz # Locally calculated sha256 3d77c1a58fbde5ddba612d1fe09965e20a3804953eca12e8c1892298bb8a5eef COPYING ================================================ FILE: package/lzip/lzip.mk ================================================ ################################################################################ # # lzip # ################################################################################ LZIP_VERSION = 1.22 LZIP_SITE = http://download.savannah.gnu.org/releases/lzip LZIP_LICENSE = GPL-2.0+ LZIP_LICENSE_FILES = COPYING define LZIP_CONFIGURE_CMDS (cd $(@D); $(TARGET_MAKE_ENV) ./configure --prefix=/usr \ $(TARGET_CONFIGURE_OPTS) ) endef define HOST_LZIP_CONFIGURE_CMDS (cd $(@D); $(HOST_MAKE_ENV) ./configure --prefix=$(HOST_DIR) \ $(HOST_CONFIGURE_OPTS) CC="$(HOSTCC_NOCCACHE)" CXX="$(HOSTCXX_NOCCACHE)") endef define LZIP_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_LZIP_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define LZIP_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef define HOST_LZIP_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install endef # It's not autotools-based $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/lzlib/Config.in ================================================ config BR2_PACKAGE_LZLIB bool "lzlib" depends on BR2_PACKAGE_LUA select BR2_PACKAGE_ZLIB 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. https://github.com/LuaDist/lzlib ================================================ FILE: package/lzlib/lzlib.hash ================================================ # Locally calculated sha256 cbb0cac5825e940b4ea2f31a336d2aaf6db39847d456920afd8e443804420dbb lzlib-0.4.3.tar.gz sha256 f817d4a37077e94e9adf379f46ba5cc0b68775d7add2bbd5b2ca68ba140ad5bb lzlib.c ================================================ FILE: package/lzlib/lzlib.mk ================================================ ################################################################################ # # lzlib # ################################################################################ LZLIB_VERSION = 0.4.3 LZLIB_SITE = $(call github,LuaDist,lzlib,$(LZLIB_VERSION)) LZLIB_DEPENDENCIES = lua zlib LZLIB_LICENSE = MIT LZLIB_LICENSE_FILES = lzlib.c LZLIB_CONF_OPTS = -DINSTALL_CMOD="/usr/lib/lua/$(LUAINTERPRETER_ABIVER)" \ -DINSTALL_LMOD="/usr/share/lua/$(LUAINTERPRETER_ABIVER)" $(eval $(cmake-package)) ================================================ FILE: package/lzma/0001-Remove-static-from-LDFLAGS.patch ================================================ From 1b33f6d13e5c25a2500ee312068c08a3d3811a5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vincent=20Stehl=C3=A9?= Date: Wed, 3 Dec 2014 21:32:02 +0100 Subject: [PATCH] Remove -static from LDFLAGS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Buildroot does not enable static libraries by default for host builds. Having -static hardcoded in the LDFLAGS breaks the build, so remove it. Signed-off-by: Vincent Stehlé --- src/lzmadec/Makefile.am | 1 - src/lzmadec/Makefile.in | 1 - src/lzmainfo/Makefile.am | 1 - src/lzmainfo/Makefile.in | 1 - 4 files changed, 4 deletions(-) diff --git a/src/lzmadec/Makefile.am b/src/lzmadec/Makefile.am index 7322b2a..13edec8 100644 --- a/src/lzmadec/Makefile.am +++ b/src/lzmadec/Makefile.am @@ -2,6 +2,5 @@ bin_PROGRAMS = lzmadec lzmadec_SOURCES = lzmadec.c lzmadec_LDADD = @top_builddir@/src/liblzmadec/liblzmadec.la AM_CPPFLAGS = -I@top_srcdir@/src/liblzmadec -AM_LDFLAGS = -static dist_man_MANS = lzmadec.1 diff --git a/src/lzmadec/Makefile.in b/src/lzmadec/Makefile.in index 5af9240..4ed1de1 100644 --- a/src/lzmadec/Makefile.in +++ b/src/lzmadec/Makefile.in @@ -185,7 +185,6 @@ top_srcdir = @top_srcdir@ lzmadec_SOURCES = lzmadec.c lzmadec_LDADD = @top_builddir@/src/liblzmadec/liblzmadec.la AM_CPPFLAGS = -I@top_srcdir@/src/liblzmadec -AM_LDFLAGS = -static dist_man_MANS = lzmadec.1 all: all-am diff --git a/src/lzmainfo/Makefile.am b/src/lzmainfo/Makefile.am index b5b01ec..e280bff 100644 --- a/src/lzmainfo/Makefile.am +++ b/src/lzmainfo/Makefile.am @@ -2,6 +2,5 @@ bin_PROGRAMS = lzmainfo lzmainfo_SOURCES = lzmainfo.c lzmainfo_LDADD = @top_builddir@/src/liblzmadec/liblzmadec.la AM_CPPFLAGS = -I@top_srcdir@/src/liblzmadec -AM_LDFLAGS = -static dist_man_MANS = lzmainfo.1 diff --git a/src/lzmainfo/Makefile.in b/src/lzmainfo/Makefile.in index 6a2127a..f1f3441 100644 --- a/src/lzmainfo/Makefile.in +++ b/src/lzmainfo/Makefile.in @@ -185,7 +185,6 @@ top_srcdir = @top_srcdir@ lzmainfo_SOURCES = lzmainfo.c lzmainfo_LDADD = @top_builddir@/src/liblzmadec/liblzmadec.la AM_CPPFLAGS = -I@top_srcdir@/src/liblzmadec -AM_LDFLAGS = -static dist_man_MANS = lzmainfo.1 all: all-am -- 2.1.3 ================================================ FILE: package/lzma/lzma.hash ================================================ # Locally calculated sha256 02aa57f995d15b7acb7c2496d88a39fb0124ea00bf027cc61dd24eddb5942dff lzma-4.32.7.tar.xz sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING.GPLv2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.GPLv3 sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING.LGPLv2.1 ================================================ FILE: package/lzma/lzma.mk ================================================ ################################################################################ # # lzma # ################################################################################ LZMA_VERSION = 4.32.7 LZMA_SOURCE = lzma-$(LZMA_VERSION).tar.xz LZMA_SITE = http://tukaani.org/lzma LZMA_LICENSE = LGPL-2.1+ (lzmadec library, lzmainfo, LzmaDecode), GPL-2.0+ (lzma program, lzgrep and lzmore scripts), GPL-3.0+ (tests) LZMA_LICENSE_FILES = COPYING.GPLv2 COPYING.GPLv3 COPYING.LGPLv2.1 $(eval $(host-autotools-package)) LZMA = $(HOST_DIR)/bin/lzma ================================================ FILE: package/lzo/Config.in ================================================ config BR2_PACKAGE_LZO bool "lzo" help Portable lossless data compression library written in ANSI C. http://www.oberhumer.com/opensource/lzo/ ================================================ FILE: package/lzo/lzo.hash ================================================ # From http://www.oberhumer.com/opensource/lzo/ sha1 4924676a9bae5db58ef129dc1cebce3baa3c4b5d lzo-2.10.tar.gz # Locally computed sha256 c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072 lzo-2.10.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/lzo/lzo.mk ================================================ ################################################################################ # # lzo # ################################################################################ LZO_VERSION = 2.10 LZO_SITE = http://www.oberhumer.com/opensource/lzo/download LZO_LICENSE = GPL-2.0+ LZO_LICENSE_FILES = COPYING LZO_CPE_ID_VENDOR = lzo_project LZO_INSTALL_STAGING = YES LZO_SUPPORTS_IN_SOURCE_BUILD = NO ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) LZO_CONF_OPTS += -DENABLE_SHARED=ON else LZO_CONF_OPTS += -DENABLE_SHARED=OFF endif ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y) LZO_CONF_OPTS += -DENABLE_STATIC=ON else LZO_CONF_OPTS += -DENABLE_STATIC=OFF endif HOST_LZO_CONF_OPTS += -DENABLE_SHARED=ON -DENABLE_STATIC=OFF $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/lzop/0001-build-with-gcc6.patch ================================================ 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 ================================================ FILE: package/lzop/0002-use-static-inlines-as-the-external-inline-definition.patch ================================================ From ecccbcf66da53779d88e38e2af7f82eff8dde7f8 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 16 Aug 2015 10:35:47 -0700 Subject: [PATCH] use static inlines as the external inline definition has changed with gcc5 [Patch from https://raw.githubusercontent.com/openembedded/openembedded-core/master/meta/recipes-support/lzop/lzop/0001-use-static-inlines-as-the-external-inline-definition.patch] Signed-off-by: Khem Raj Signed-off-by: Peter Korsgaard --- Upstream-Status: Pending src/miniacc.h | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/src/miniacc.h b/src/miniacc.h index 09e6f0c..cae98d1 100644 --- a/src/miniacc.h +++ b/src/miniacc.h @@ -2880,8 +2880,7 @@ typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t); #if !(ACC_CFG_NO_INLINE_ASM) && (__acc_HAVE_forceinline) #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC) #if !defined(ACC_UA_GET_LE16) -extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp); -extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) { +static __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) { __acc_ua_volatile const acc_uint16e_t* p = (__acc_ua_volatile const acc_uint16e_t*) pp; unsigned long v; __asm__ __volatile__("lhbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p)); @@ -2890,8 +2889,7 @@ extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const #define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p) #endif #if !defined(ACC_UA_SET_LE16) -extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v); -extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) { +static __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) { __acc_ua_volatile acc_uint16e_t* p = (__acc_ua_volatile acc_uint16e_t*) pp; __asm__ __volatile__("sthbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v)); } @@ -2916,8 +2914,7 @@ extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsi #if !(ACC_CFG_NO_INLINE_ASM) && (__acc_HAVE_forceinline) #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC) #if !defined(ACC_UA_GET_LE32) -extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp); -extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) { +static __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) { __acc_ua_volatile const acc_uint32e_t* p = (__acc_ua_volatile const acc_uint32e_t*) pp; unsigned long v; __asm__ __volatile__("lwbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p)); @@ -2926,8 +2923,7 @@ extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const #define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p) #endif #if !defined(ACC_UA_SET_LE32) -extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v); -extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) { +static __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) { __acc_ua_volatile acc_uint32e_t* p = (__acc_ua_volatile acc_uint32e_t*) pp; __asm__ __volatile__("stwbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v)); } @@ -3307,8 +3303,7 @@ typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t); #if !(ACC_CFG_NO_INLINE_ASM) && (__acc_HAVE_forceinline) #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC) #if !defined(ACC_UA_GET_LE16) -extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp); -extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) { +static __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) { __acc_ua_volatile const acc_uint16e_t* p = (__acc_ua_volatile const acc_uint16e_t*) pp; unsigned long v; __asm__ __volatile__("lhbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p)); @@ -3317,8 +3312,7 @@ extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const #define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p) #endif #if !defined(ACC_UA_SET_LE16) -extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v); -extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) { +static __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) { __acc_ua_volatile acc_uint16e_t* p = (__acc_ua_volatile acc_uint16e_t*) pp; __asm__ __volatile__("sthbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v)); } @@ -3343,8 +3337,7 @@ extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsi #if !(ACC_CFG_NO_INLINE_ASM) && (__acc_HAVE_forceinline) #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC) #if !defined(ACC_UA_GET_LE32) -extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp); -extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) { +static __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) { __acc_ua_volatile const acc_uint32e_t* p = (__acc_ua_volatile const acc_uint32e_t*) pp; unsigned long v; __asm__ __volatile__("lwbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p)); @@ -3353,8 +3346,7 @@ extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const #define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p) #endif #if !defined(ACC_UA_SET_LE32) -extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v); -extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) { +static __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) { __acc_ua_volatile acc_uint32e_t* p = (__acc_ua_volatile acc_uint32e_t*) pp; __asm__ __volatile__("stwbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v)); } -- 2.5.0 ================================================ FILE: package/lzop/Config.in ================================================ config BR2_PACKAGE_LZOP bool "lzop" select BR2_PACKAGE_LZO help lzop is a file compressor which is very similar to gzip. lzop uses the LZO data compression library for compression services. http://www.lzop.org/ ================================================ FILE: package/lzop/lzop.hash ================================================ # Locally calculated sha256 c1425b8c77d49f5a679d5a126c90ea6ad99585a55e335a613cae59e909dbb2c9 lzop-1.03.tar.gz sha256 70439f6e2b47057a408d2390ed6663b9875f5a08066a06a060a357ef1df89a8c COPYING ================================================ FILE: package/lzop/lzop.mk ================================================ ################################################################################ # # lzop # ################################################################################ LZOP_VERSION = 1.03 LZOP_SITE = http://www.lzop.org/download LZOP_LICENSE = GPL-2.0+ LZOP_LICENSE_FILES = COPYING LZOP_DEPENDENCIES = lzo HOST_LZOP_DEPENDENCIES = host-lzo $(eval $(autotools-package)) $(eval $(host-autotools-package)) LZOP = $(HOST_DIR)/bin/lzop ================================================ FILE: package/m4/m4.hash ================================================ # Locally calculated after checking pgp signature sha256 e236ea3a1ccf5f6c270b1c4bb60726f371fa49459a8eaaebc90b216b328daf2b m4-1.4.20.tar.xz # License files, locally calculated sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 COPYING ================================================ FILE: package/m4/m4.mk ================================================ ################################################################################ # # m4 # ################################################################################ M4_VERSION = 1.4.20 M4_SOURCE = m4-$(M4_VERSION).tar.xz M4_SITE = $(BR2_GNU_MIRROR)/m4 M4_LICENSE = GPL-3.0+ M4_LICENSE_FILES = COPYING $(eval $(host-autotools-package)) ================================================ FILE: package/macchanger/0001-Fix-missing-include-for-caddr_t.patch ================================================ 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 ================================================ FILE: package/macchanger/Config.in ================================================ config BR2_PACKAGE_MACCHANGER bool "macchanger" help A GNU/Linux utility for viewing/manipulating the MAC address of network interfaces http://www.gnu.org/software/macchanger ================================================ FILE: package/macchanger/macchanger.hash ================================================ # Locally calculated after checking pgp signature sha256 dae2717c270fd5f62d790dbf80c19793c651b1b26b62c101b82d5fdf25a845bf macchanger-1.7.0.tar.gz # Locally computed sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/macchanger/macchanger.mk ================================================ ################################################################################ # # macchanger # ################################################################################ MACCHANGER_VERSION = 1.7.0 MACCHANGER_SITE = https://github.com/alobbs/macchanger/releases/download/$(MACCHANGER_VERSION) MACCHANGER_LICENSE = GPL-2.0+ MACCHANGER_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/madplay/0001-switch-to-new-alsa-api.patch ================================================ Switch madplay to the new API. This is done thanks to a patch written by Micha Nelissen and available at http://article.gmane.org/gmane.comp.audio.mad.devel/729. --- madplay-0.15.2b/audio_alsa.c 2008-10-18 15:10:16.000000000 +0200 +++ madplay-0.15.2b/audio_alsa.c.new 2008-10-18 15:03:27.000000000 +0200 @@ -28,31 +28,30 @@ #include -#define ALSA_PCM_OLD_HW_PARAMS_API -#define ALSA_PCM_OLD_SW_PARAMS_API #include #include #include "audio.h" -char *buf = NULL; -int paused = 0; +#define BUFFER_TIME_MAX 500000 -int rate = -1; -int channels = -1; -int bitdepth = -1; -int sample_size = -1; - -int buffer_time = 500000; -int period_time = 100000; -char *defaultdev = "plughw:0,0"; +unsigned char *buf = NULL; +int paused = 0; + +unsigned int rate = 0; +unsigned int channels = -1; +unsigned int bitdepth = -1; +unsigned int sample_size = -1; + +unsigned int buffer_time; +unsigned int period_time; +char *defaultdev = "plughw:0,0"; snd_pcm_hw_params_t *alsa_hwparams; snd_pcm_sw_params_t *alsa_swparams; -snd_pcm_sframes_t buffer_size; -snd_pcm_sframes_t period_size; +snd_pcm_uframes_t buffer_size; snd_pcm_format_t alsa_format = -1; snd_pcm_access_t alsa_access = SND_PCM_ACCESS_MMAP_INTERLEAVED; @@ -66,14 +65,20 @@ snd_pcm_hw_params_t *params, snd_pcm_access_t access) { - int err, dir; - + int err; + /* choose all parameters */ err = snd_pcm_hw_params_any(handle,params); if (err < 0) { printf("Access type not available for playback: %s\n", snd_strerror(err)); return err; } + /* set the access type */ + err = snd_pcm_hw_params_set_access(handle, params, alsa_access); + if (err < 0) { + printf("Sample format not available for playback: %s\n", snd_strerror(err)); + return err; + } /* set the sample format */ err = snd_pcm_hw_params_set_format(handle, params, alsa_format); if (err < 0) { @@ -87,29 +92,38 @@ return err; } /* set the stream rate */ - err = snd_pcm_hw_params_set_rate_near(handle, params, rate, 0); + err = snd_pcm_hw_params_set_rate(handle, params, rate, 0); if (err < 0) { printf("Rate %iHz not available for playback: %s\n", rate, snd_strerror(err)); return err; } - if (err != rate) { - printf("Rate doesn't match (requested %iHz, get %iHz)\n", rate, err); - return -EINVAL; - } + err = snd_pcm_hw_params_get_buffer_time_max(params, &buffer_time, NULL); + if (err < 0) { + printf("Unable to retrieve buffer time: %s\n", snd_strerror(err)); + return err; + } + if (buffer_time > BUFFER_TIME_MAX) + buffer_time = BUFFER_TIME_MAX; /* set buffer time */ - err = snd_pcm_hw_params_set_buffer_time_near(handle, params, buffer_time, &dir); + err = snd_pcm_hw_params_set_buffer_time_near(handle, params, &buffer_time, 0); if (err < 0) { printf("Unable to set buffer time %i for playback: %s\n", buffer_time, snd_strerror(err)); return err; } - buffer_size = snd_pcm_hw_params_get_buffer_size(params); + if (period_time * 4 > buffer_time) + period_time = buffer_time / 4; /* set period time */ - err = snd_pcm_hw_params_set_period_time_near(handle, params, period_time, &dir); + err = snd_pcm_hw_params_set_period_time_near(handle, params, &period_time, NULL); if (err < 0) { printf("Unable to set period time %i for playback: %s\n", period_time, snd_strerror(err)); return err; } - period_size = snd_pcm_hw_params_get_period_size(params, &dir); + /* retrieve buffer size */ + err = snd_pcm_hw_params_get_buffer_size(params, &buffer_size); + if (err < 0) { + printf("Unable to retrieve buffer size: %s\n", snd_strerror(err)); + return err; + } /* write the parameters to device */ err = snd_pcm_hw_params(handle, params); if (err < 0) { @@ -123,6 +137,7 @@ int set_swparams(snd_pcm_t *handle, snd_pcm_sw_params_t *params) { + unsigned int start_threshold; int err; /* get current swparams */ @@ -136,13 +151,7 @@ if (err < 0) { printf("Unable to set start threshold mode for playback: %s\n", snd_strerror(err)); return err; - } - /* allow transfer when at least period_size samples can be processed */ - err = snd_pcm_sw_params_set_avail_min(handle, params, period_size); - if (err < 0) { - printf("Unable to set avail min for playback: %s\n", snd_strerror(err)); - return err; - } + } /* align all transfers to 1 samples */ err = snd_pcm_sw_params_set_xfer_align(handle, params, 1); if (err < 0) { @@ -190,7 +199,7 @@ rate = config->speed; if ( bitdepth == 0 ) - config->precision = bitdepth = 32; + config->precision = bitdepth = 16; switch (bitdepth) { @@ -241,7 +250,7 @@ return -1; } - buf = malloc(buffer_size); + buf = malloc(buffer_size * sample_size); if (buf == NULL) { audio_error="unable to allocate output buffer table"; return -1; @@ -279,7 +288,7 @@ int play(struct audio_play *play) { int err, len; - char *ptr; + unsigned char *ptr; ptr = buf; len = play->nsamples; ================================================ FILE: package/madplay/0002-configure-ac-automake-foreign.patch ================================================ configure.ac: don't require GNU-specific files when running automake Signed-off-by: Fabrice Fontaine diff -durN madplay-0.15.2b-orig/configure.ac madplay-0.15.2b/configure.ac --- madplay-0.15.2b-orig/configure.ac 2019-02-14 21:34:01.507212449 +0100 +++ madplay-0.15.2b/configure.ac 2019-02-14 21:34:23.439336353 +0100 @@ -26,7 +26,7 @@ AC_CONFIG_SRCDIR([madplay.c]) -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([foreign]) AM_CONFIG_HEADER([config.h]) ================================================ FILE: package/madplay/0003-configure-ac-use-pkg-config-to-find-id3tag.patch ================================================ configure.ac: use pkg-config to find id3tag Signed-off-by: Fabrice Fontaine diff -durN madplay-0.15.2b-orig/configure.ac madplay-0.15.2b/configure.ac --- madplay-0.15.2b-orig/configure.ac 2019-02-14 21:34:01.507212449 +0100 +++ madplay-0.15.2b/configure.ac 2019-02-15 23:24:00.079876087 +0100 @@ -182,12 +182,13 @@ *** environment variable to specify its installed location, e.g. -L.]) ]) -AC_CHECK_LIB(id3tag, id3_tag_parse, :, [ +PKG_CHECK_MODULES(ID3TAG, id3tag, [ + CFLAGS="$CFLAGS $ID3TAG_CFLAGS" LIBS="$LIBS $ID3TAG_LIBS"], [ AC_MSG_ERROR([libid3tag was not found *** You must first install libid3tag before you can build this package. *** If libid3tag is already installed, you may need to use the LDFLAGS *** environment variable to specify its installed location, e.g. -L.]) -], [-lz]) +]) AC_FUNC_VPRINTF AC_CHECK_FUNCS(madvise localeconv) ================================================ FILE: package/madplay/0004-configure-ac-call-AM_MKINSTALLDIRS.patch ================================================ configure.ac: call AM_MKINSTALLDIRS to substitute @MKINSTALLDIRS@ MKINSTALLDIRS is obsolete and doesn't get automatically called. Force call AM_MKINSTALLDIRS() macro to substitute every @MKINSTALLDIRS@ occurence in *.in files. Signed-off-by: Giulio Benetti diff -urpN madplay-0.15.2b.orig/configure.ac madplay-0.15.2b/configure.ac --- madplay-0.15.2b.orig/configure.ac 2019-04-16 12:06:03.781018755 +0200 +++ madplay-0.15.2b/configure.ac 2019-04-16 12:07:48.399162610 +0200 @@ -146,6 +146,10 @@ ALL_LINGUAS="en es fr hr no" AM_GNU_GETTEXT([use-libtool]) AM_GNU_GETTEXT_VERSION(0.14.1) +dnl Substitute MKINSTALLDIRS + +AM_MKINSTALLDIRS() + dnl Checks for header files. AC_HEADER_STDC ================================================ FILE: package/madplay/Config.in ================================================ config BR2_PACKAGE_MADPLAY bool "madplay" select BR2_PACKAGE_LIBMAD select BR2_PACKAGE_LIBID3TAG help Command-line front-end to libmad, a high-quality MPEG audio decoder. It currently supports MPEG-1 and the MPEG-2 extension to lower sampling frequencies, as well as the de facto MPEG 2.5 format. All three audio layers - Layer I, Layer II, and Layer III (i.e. MP3) - are fully implemented. http://www.underbit.com/products/mad/ if BR2_PACKAGE_MADPLAY config BR2_PACKAGE_MADPLAY_ALSA bool default y depends on BR2_PACKAGE_ALSA_LIB endif ================================================ FILE: package/madplay/madplay.hash ================================================ # Locally computed: sha256 5a79c7516ff7560dffc6a14399a389432bc619c905b13d3b73da22fa65acede0 madplay-0.15.2b.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING sha256 915bfd70548f31d11f9b4ffb21f343d1196af96c79d6aaac5663ea46c39dd3a3 COPYRIGHT ================================================ FILE: package/madplay/madplay.mk ================================================ ################################################################################ # # madplay # ################################################################################ MADPLAY_VERSION = 0.15.2b MADPLAY_SITE = http://downloads.sourceforge.net/project/mad/madplay/$(MADPLAY_VERSION) MADPLAY_LICENSE = GPL-2.0+ MADPLAY_LICENSE_FILES = COPYING COPYRIGHT MADPLAY_DEPENDENCIES = host-pkgconf libmad libid3tag $(TARGET_NLS_DEPENDENCIES) # Force autoreconf to be able to use a more recent libtool script, that # is able to properly behave in the face of a missing C++ compiler. # Also 0003-configure-ac-use-pkg-config-to-find-id3tag.patch MADPLAY_AUTORECONF = YES # Check if ALSA is built, then we should configure after alsa-lib so # ./configure can find alsa-lib. ifeq ($(BR2_PACKAGE_MADPLAY_ALSA),y) MADPLAY_CONF_OPTS += --with-alsa MADPLAY_DEPENDENCIES += alsa-lib MADPLAY_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs alsa`" endif $(eval $(autotools-package)) ================================================ FILE: package/make/0001-configure.ac-Support-GLIBC-glob-interface-version-2.patch ================================================ From 48c8a116a914a325a0497721f5d8b58d5bba34d4 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Sun, 19 Nov 2017 15:09:16 -0500 Subject: [PATCH] * configure.ac: Support GLIBC glob interface version 2 Signed-off-by: Baruch Siach --- Upstream status: commit 48c8a116a914a3 configure.ac | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 8c72568cf276..4710832ae568 100644 --- a/configure.ac +++ b/configure.ac @@ -404,10 +404,9 @@ AC_CACHE_CHECK([if system libc has GNU glob], [make_cv_sys_gnu_glob], #include #include -#define GLOB_INTERFACE_VERSION 1 #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1 # include -# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION +# if _GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2 gnu glob # endif #endif], -- 2.16.2 ================================================ FILE: package/make/0001-glob-Do-not-assume-glibc-glob-internals.patch ================================================ From 193f1e81edd6b1b56b0eb0ff8aa4b41c7b4257b4 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 24 Sep 2017 09:12:58 -0400 Subject: [PATCH] glob: Do not assume glibc glob internals. It has been proposed that glibc glob start using gl_lstat, which the API allows it to do. GNU 'make' should not get in the way of this. See: https://sourceware.org/ml/libc-alpha/2017-09/msg00409.html * dir.c (local_lstat): New function, like local_stat. (dir_setup_glob): Use it to initialize gl_lstat too, as the API requires. Signed-off-by: Samuel Mendoza-Jonas (from upstream commit 193f1e81edd6b1b56b0eb0ff8aa4b41c7b4257b4) --- dir.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/dir.c b/dir.c index adbb8a9..c343e4c 100644 --- a/dir.c +++ b/dir.c @@ -1299,15 +1299,40 @@ local_stat (const char *path, struct stat *buf) } #endif +/* Similarly for lstat. */ +#if !defined(lstat) && !defined(WINDOWS32) || defined(VMS) +# ifndef VMS +# ifndef HAVE_SYS_STAT_H +int lstat (const char *path, struct stat *sbuf); +# endif +# else + /* We are done with the fake lstat. Go back to the real lstat */ +# ifdef lstat +# undef lstat +# endif +# endif +# define local_lstat lstat +#elif defined(WINDOWS32) +/* Windows doesn't support lstat(). */ +# define local_lstat local_stat +#else +static int +local_lstat (const char *path, struct stat *buf) +{ + int e; + EINTRLOOP (e, lstat (path, buf)); + return e; +} +#endif + void dir_setup_glob (glob_t *gl) { gl->gl_opendir = open_dirstream; gl->gl_readdir = read_dirstream; gl->gl_closedir = free; + gl->gl_lstat = local_lstat; gl->gl_stat = local_stat; - /* We don't bother setting gl_lstat, since glob never calls it. - The slot is only there for compatibility with 4.4 BSD. */ } void -- 2.21.0 ================================================ FILE: package/make/Config.in ================================================ config BR2_PACKAGE_MAKE bool "make" depends on BR2_USE_MMU # fork() help A tool which controls the generation of executables and other non-source files of a program from the program's source files. While Buildroot no longer supports building a toolchain for the target, we keep a make package that is for example useful to run the uClibc test suite on the target. http://www.gnu.org/software/make/ ================================================ FILE: package/make/make.hash ================================================ # 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 d6e262bf3601b42d2b1e4ef8310029e1dcf20083c5446b4b7aa67081fdffc589 make-4.2.1.tar.bz2 # Locally computed sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/make/make.mk ================================================ ################################################################################ # # make # ################################################################################ MAKE_VERSION = 4.2.1 MAKE_SOURCE = make-$(MAKE_VERSION).tar.bz2 MAKE_SITE = $(BR2_GNU_MIRROR)/make MAKE_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) host-pkgconf MAKE_LICENSE = GPL-3.0+ MAKE_LICENSE_FILES = COPYING MAKE_CPE_ID_VENDOR = gnu # Patching configure.ac MAKE_AUTORECONF = YES MAKE_CONF_OPTS = --without-guile # Disable the 'load' operation for static builds since it needs dlopen ifeq ($(BR2_STATIC_LIBS),y) MAKE_CONF_OPTS += --disable-load endif HOST_MAKE_DEPENDENCIES = host-pkgconf HOST_MAKE_CONF_OPTS = --without-guile # Configure host-make binary to be 'host-make' to ensure it isn't # accidently used by packages when they invoke recursive / sub-make. HOST_MAKE_CONF_OPTS += --program-prefix=host- $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/makedevs/README ================================================ When building a target filesystem, it is desirable to not have to become root and then run 'mknod' a thousand times. Using a device table you can create device nodes and directories "on the fly". You can do all sorts of interesting things with a device table file. For example, if you want to adjust the permissions on a particular file you can just add an entry like: /sbin/foobar f 2755 0 0 - - - - - and (assuming the file /sbin/foobar exists) it will be made setuid root (regardless of what its permissions are on the host filesystem. Furthermore, you can use a single table entry to create a many device minors. For example, if I wanted to create /dev/hda and /dev/hda[0-15] I could just use the following two table entries: /dev/hda b 640 0 0 3 0 0 0 - /dev/hda b 640 0 0 3 1 1 1 15 Device table entries take the form of: where name is the file name, type can be one of: f: A regular file d: Directory c: Character special device file b: Block special device file p: Fifo (named pipe) uid is the user id for the target file, gid is the group id for the target file. The rest of the entries (major, minor, etc) apply only to device special files. ================================================ FILE: package/makedevs/makedevs.c ================================================ /* vi: set sw=4 ts=4: */ /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library 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. * */ #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef __APPLE__ #include /* major() and minor() */ #endif #include #ifdef EXTENDED_ATTRIBUTES #include #endif /* EXTENDED_ATTRIBUTES */ const char *bb_applet_name; uid_t recursive_uid; gid_t recursive_gid; unsigned int recursive_mode; #define PASSWD_PATH "etc/passwd" /* MUST be relative */ #define GROUP_PATH "etc/group" /* MUST be relative */ void bb_verror_msg(const char *s, va_list p) { fflush(stdout); fprintf(stderr, "%s: ", bb_applet_name); vfprintf(stderr, s, p); } void bb_error_msg(const char *s, ...) { va_list p; va_start(p, s); bb_verror_msg(s, p); va_end(p); putc('\n', stderr); } void bb_error_msg_and_die(const char *s, ...) { va_list p; va_start(p, s); bb_verror_msg(s, p); va_end(p); putc('\n', stderr); exit(1); } void bb_vperror_msg(const char *s, va_list p) { int err=errno; if(s == 0) s = ""; bb_verror_msg(s, p); if (*s) s = ": "; fprintf(stderr, "%s%s\n", s, strerror(err)); } void bb_perror_msg(const char *s, ...) { va_list p; va_start(p, s); bb_vperror_msg(s, p); va_end(p); } void bb_perror_msg_and_die(const char *s, ...) { va_list p; va_start(p, s); bb_vperror_msg(s, p); va_end(p); exit(1); } FILE *bb_xfopen(const char *path, const char *mode) { FILE *fp; if ((fp = fopen(path, mode)) == NULL) bb_perror_msg_and_die("%s", path); return fp; } enum { FILEUTILS_PRESERVE_STATUS = 1, FILEUTILS_DEREFERENCE = 2, FILEUTILS_RECUR = 4, FILEUTILS_FORCE = 8, FILEUTILS_INTERACTIVE = 16 }; int bb_make_directory (char *path, long mode, int flags) { mode_t mask; const char *fail_msg; char *s = path; char c; struct stat st; mask = umask(0); if (mode == -1) { umask(mask); mode = (S_IXUSR | S_IXGRP | S_IXOTH | S_IWUSR | S_IWGRP | S_IWOTH | S_IRUSR | S_IRGRP | S_IROTH) & ~mask; } else { umask(mask & ~0300); } do { c = 0; if (flags & FILEUTILS_RECUR) { /* Get the parent. */ /* Bypass leading non-'/'s and then subsequent '/'s. */ while (*s) { if (*s == '/') { do { ++s; } while (*s == '/'); c = *s; /* Save the current char */ *s = 0; /* and replace it with nul. */ break; } ++s; } } if (mkdir(path, 0777) < 0) { /* If we failed for any other reason than the directory * already exists, output a diagnostic and return -1.*/ if ((errno != EEXIST && errno != EISDIR) || !(flags & FILEUTILS_RECUR) || (stat(path, &st) < 0 || !S_ISDIR(st.st_mode))) { fail_msg = "create"; umask(mask); break; } /* Since the directory exists, don't attempt to change * permissions if it was the full target. Note that * this is not an error conditon. */ if (!c) { umask(mask); return 0; } } if (!c) { /* Done. If necessary, updated perms on the newly * created directory. Failure to update here _is_ * an error.*/ umask(mask); if ((mode != -1) && (chmod(path, mode) < 0)){ fail_msg = "set permissions of"; break; } return 0; } /* Remove any inserted nul from the path (recursive mode). */ *s = c; } while (1); bb_perror_msg ("Cannot %s directory `%s'", fail_msg, path); return -1; } const char * const bb_msg_memory_exhausted = "memory exhausted"; void *xmalloc(size_t size) { void *ptr = malloc(size); if (ptr == NULL && size != 0) bb_error_msg_and_die(bb_msg_memory_exhausted); return ptr; } void *xcalloc(size_t nmemb, size_t size) { void *ptr = calloc(nmemb, size); if (ptr == NULL && nmemb != 0 && size != 0) bb_error_msg_and_die(bb_msg_memory_exhausted); return ptr; } void *xrealloc(void *ptr, size_t size) { ptr = realloc(ptr, size); if (ptr == NULL && size != 0) bb_error_msg_and_die(bb_msg_memory_exhausted); return ptr; } char *private_get_line_from_file(FILE *file, int c) { #define GROWBY (80) /* how large we will grow strings by */ int ch; int idx = 0; char *linebuf = NULL; int linebufsz = 0; while ((ch = getc(file)) != EOF) { /* grow the line buffer as necessary */ if (idx > linebufsz - 2) { linebuf = xrealloc(linebuf, linebufsz += GROWBY); } linebuf[idx++] = (char)ch; if (!ch) return linebuf; if (c<2 && ch == '\n') { if (c) { --idx; } break; } } if (linebuf) { if (ferror(file)) { free(linebuf); return NULL; } linebuf[idx] = 0; } return linebuf; } char *bb_get_chomped_line_from_file(FILE *file) { return private_get_line_from_file(file, 1); } long my_getpwnam(const char *name) { struct passwd *myuser; FILE *stream; stream = bb_xfopen(PASSWD_PATH, "r"); while(1) { errno = 0; myuser = fgetpwent(stream); if (myuser == NULL) bb_error_msg_and_die("unknown user name: %s", name); if (errno) bb_perror_msg_and_die("fgetpwent"); if (!strcmp(name, myuser->pw_name)) break; } fclose(stream); return myuser->pw_uid; } long my_getgrnam(const char *name) { struct group *mygroup; FILE *stream; stream = bb_xfopen(GROUP_PATH, "r"); while(1) { errno = 0; mygroup = fgetgrent(stream); if (mygroup == NULL) bb_error_msg_and_die("unknown group name: %s", name); if (errno) bb_perror_msg_and_die("fgetgrent"); if (!strcmp(name, mygroup->gr_name)) break; } fclose(stream); return mygroup->gr_gid; } unsigned long get_ug_id(const char *s, long (*my_getxxnam)(const char *)) { unsigned long r; char *p; r = strtoul(s, &p, 10); if (*p || (s == p)) { r = my_getxxnam(s); } return r; } char * last_char_is(const char *s, int c) { char *sret = (char *)s; if (sret) { sret = strrchr(sret, c); if(sret != NULL && *(sret+1) != 0) sret = NULL; } return sret; } void bb_xasprintf(char **string_ptr, const char *format, ...) { va_list p; int r; va_start(p, format); r = vasprintf(string_ptr, format, p); va_end(p); if (r < 0) { bb_perror_msg_and_die("bb_xasprintf"); } } char *concat_path_file(const char *path, const char *filename) { char *outbuf; char *lc; if (!path) path = ""; lc = last_char_is(path, '/'); while (*filename == '/') filename++; bb_xasprintf(&outbuf, "%s%s%s", path, (lc==NULL ? "/" : ""), 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); fprintf(stderr, "Creates a batch of special files as specified in a device table.\n"); fprintf(stderr, "Device table entries take the form of:\n"); fprintf(stderr, "name type mode user group major minor start increment count\n\n"); fprintf(stderr, "Where name is the file name, type can be one of:\n"); fprintf(stderr, " f A regular file\n"); fprintf(stderr, " d Directory\n"); fprintf(stderr, " r Directory recursively\n"); fprintf(stderr, " c Character special device file\n"); fprintf(stderr, " b Block special device file\n"); fprintf(stderr, " p Fifo (named pipe)\n"); fprintf(stderr, "uid is the user id for the target file, gid is the group id for the\n"); fprintf(stderr, "target file. The rest of the entries (major, minor, etc) apply to\n"); fprintf(stderr, "to device special files. A '-' may be used for blank entries.\n\n"); fprintf(stderr, "For example:\n"); fprintf(stderr, " \n"); fprintf(stderr, "/dev d 755 0 0 - - - - -\n"); fprintf(stderr, "/dev/console c 666 0 0 5 1 - - -\n"); fprintf(stderr, "/dev/null c 666 0 0 1 3 0 0 -\n"); fprintf(stderr, "/dev/zero c 666 0 0 1 5 0 0 -\n"); fprintf(stderr, "/dev/hda b 640 0 0 3 0 0 0 -\n"); fprintf(stderr, "/dev/hda b 640 0 0 3 1 1 1 15\n"); fprintf(stderr, "/dev/rtp b 640 0 0 250 0 0 1 5\n"); fprintf(stderr, "/dev/gps b 640 0 0 251 0 1 1 5\n"); fprintf(stderr, "/dev/uio b 640 0 0 252 0 1 2 5\n"); fprintf(stderr, "/dev/uio b 640 0 0 252 1 6 2 5\n\n"); fprintf(stderr, "Will Produce:\n"); fprintf(stderr, "/dev\n"); fprintf(stderr, "/dev/console\n"); fprintf(stderr, "/dev/null\n"); fprintf(stderr, "/dev/zero\n"); fprintf(stderr, "/dev/hda\n"); fprintf(stderr, "/dev/hda[1-15] with minor numbers [1-15]\n"); fprintf(stderr, "/dev/rtp[0-4] with minor numbers [0-4]\n"); fprintf(stderr, "/dev/gps[1-5] with minor numbers [0-4]\n"); fprintf(stderr, "/dev/uio[1-5] with minor numbers 0,2,4,6,8\n"); fprintf(stderr, "/dev/uio[6-10] with minor numbers 1,3,5,7,9\n"); exit(1); } int bb_recursive(const char *fpath, const struct stat *sb, int tflag, struct FTW *ftwbuf){ if (chown(fpath, recursive_uid, recursive_gid) == -1) { bb_perror_msg("chown failed for %s", fpath); return -1; } if (recursive_mode != -1) { if (chmod(fpath, recursive_mode) < 0) { bb_perror_msg("chmod failed for %s", fpath); return -1; } } return 0; } 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; bb_applet_name = basename(argv[0]); while ((opt = getopt(argc, argv, "d:")) != -1) { switch(opt) { case 'd': table = bb_xfopen((line=optarg), "r"); break; default: bb_show_usage(); } } if (optind >= argc || (rootdir=argv[optind])==NULL) { bb_error_msg_and_die("root directory not speficied"); } if (chdir(rootdir) != 0) { bb_perror_msg_and_die("Couldnt chdir to %s", rootdir); } umask(0); printf("rootdir=%s\n", rootdir); if (line) { printf("table='%s'\n", line); } else { printf("table=\n"); } while ((line = bb_get_chomped_line_from_file(table))) { char type; unsigned int mode = 0755; unsigned int major = 0; unsigned int minor = 0; unsigned int count = 0; unsigned int increment = 0; unsigned int start = 0; char xattr[255]; char name[4096]; char user[41]; char group[41]; 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)) || ((major | minor | start | count | increment) > 0xfffff)) { if (*line=='\0' || *line=='#' || isspace(*line)) continue; bb_error_msg("line %d invalid: '%s'\n", linenum, line); ret = EXIT_FAILURE; continue; } if (name[0] == '#') { continue; } if (*group) { gid = get_ug_id(group, my_getgrnam); } else { gid = getgid(); } if (*user) { uid = get_ug_id(user, my_getpwnam); } 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') { bb_make_directory(full_name, mode | S_IFDIR, FILEUTILS_RECUR); if (chown(full_name, uid, gid) == -1) { bb_perror_msg("line %d: chown failed for %s", linenum, full_name); ret = EXIT_FAILURE; goto loop; } if ((mode != -1) && (chmod(full_name, mode) < 0)){ bb_perror_msg("line %d: chmod failed for %s", linenum, full_name); ret = EXIT_FAILURE; goto loop; } } else if (type == 'f' || type == 'F') { struct stat st; if ((stat(full_name, &st) < 0 || !S_ISREG(st.st_mode))) { if (type == 'F') { continue; /*Ignore optional files*/ } bb_perror_msg("line %d: regular file '%s' does not exist", linenum, full_name); ret = EXIT_FAILURE; goto loop; } if (chown(full_name, uid, gid) == -1) { bb_perror_msg("line %d: chown failed for %s", linenum, full_name); ret = EXIT_FAILURE; goto loop; } if ((mode != -1) && (chmod(full_name, mode) < 0)){ bb_perror_msg("line %d: chmod failed for %s", linenum, full_name); ret = EXIT_FAILURE; goto loop; } } else if (type == 'r') { recursive_uid = uid; recursive_gid = gid; recursive_mode = mode; if (nftw(full_name, bb_recursive, 20, FTW_MOUNT | FTW_PHYS) < 0) { bb_perror_msg("line %d: recursive failed for %s", linenum, full_name); ret = EXIT_FAILURE; goto loop; } } else { dev_t rdev; unsigned i; char *full_name_inc; if (type == 'p') { mode |= S_IFIFO; } else if (type == 'c') { mode |= S_IFCHR; } else if (type == 'b') { mode |= S_IFBLK; } else { bb_error_msg("line %d: Unsupported file type %c", linenum, type); ret = EXIT_FAILURE; goto loop; } full_name_inc = xmalloc(strlen(full_name) + sizeof(int)*3 + 2); if (count) count--; for (i = start; i <= start + count; i++) { sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i); rdev = makedev(major, minor + (i - start) * increment); if (mknod(full_name_inc, mode, rdev) < 0) { bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc); ret = EXIT_FAILURE; } else if (chown(full_name_inc, uid, gid) < 0) { bb_perror_msg("line %d: can't chown %s", linenum, full_name_inc); ret = EXIT_FAILURE; } else if (chmod(full_name_inc, mode) < 0) { bb_perror_msg("line %d: can't chmod %s", linenum, full_name_inc); ret = EXIT_FAILURE; } } free(full_name_inc); } loop: free(line); } fclose(table); return ret; } ================================================ FILE: package/makedevs/makedevs.mk ================================================ ################################################################################ # # makedevs # ################################################################################ MAKEDEVS_LICENSE = GPL-2.0 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 HOST_MAKEDEVS_EXTRACT_CMDS cp $(HOST_MAKEDEVS_PKGDIR)/makedevs.c $(@D) endef define HOST_MAKEDEVS_BUILD_CMDS $(HOSTCC) $(HOST_MAKEDEVS_CFLAGS) $(@D)/makedevs.c \ -o $(@D)/makedevs $(HOST_MAKEDEVS_LDFLAGS) endef define HOST_MAKEDEVS_INSTALL_CMDS $(INSTALL) -D -m 755 $(@D)/makedevs $(HOST_DIR)/bin/makedevs endef $(eval $(host-generic-package)) ================================================ FILE: package/makedumpfile/0001-PATCH-Define-PN_XNUM-if-missing.patch ================================================ From: Petr Tesarik Subject: [PATCH] Define PN_XNUM if missing Upstream: never, build fix for old distros Older elfutils did not define this constant. Signed-off-by: Petr Tesarik Signed-off-by: Alexander Egorenkov --- elf_info.h | 4 ++++ 1 file changed, 4 insertions(+) --- a/elf_info.h +++ b/elf_info.h @@ -19,6 +19,10 @@ #include #include +#ifndef PN_XNUM +#define PN_XNUM 0xffff +#endif + #define KEXEC_CORE_NOTE_NAME "CORE" #define KEXEC_CORE_NOTE_NAME_BYTES sizeof(KEXEC_CORE_NOTE_NAME) ================================================ FILE: package/makedumpfile/Config.in ================================================ config BR2_PACKAGE_MAKEDUMPFILE_ARCH_SUPPORTS bool default y if BR2_aarch64 || BR2_aarch64_be default y if BR2_arm || BR2_armeb default y if BR2_i386 || BR2_x86_64 default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le default y if BR2_s390x default y if BR2_sparc64 comment "makedumpfile needs a uClibc or glibc toolchain w/ wchar, dynamic library, threads" depends on BR2_PACKAGE_MAKEDUMPFILE_ARCH_SUPPORTS depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS \ || !BR2_TOOLCHAIN_HAS_THREADS \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) config BR2_PACKAGE_MAKEDUMPFILE bool "makedumpfile" depends on BR2_PACKAGE_MAKEDUMPFILE_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # dlopen depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_ELFUTILS select BR2_PACKAGE_XZ select BR2_PACKAGE_ZLIB help Makes a small dumpfile of kdump. https://github.com/makedumpfile/makedumpfile ================================================ FILE: package/makedumpfile/makedumpfile.hash ================================================ # Locally computed: sha256 393ea8f22393c059ad21de9b1c3f45d9d0d8dbeb0ccb1417815b835d03f7c350 makedumpfile-1.6.9.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/makedumpfile/makedumpfile.mk ================================================ ################################################################################ # # makedumpfile # ################################################################################ MAKEDUMPFILE_VERSION = 1.6.9 MAKEDUMPFILE_SITE = $(call github,makedumpfile,makedumpfile,$(MAKEDUMPFILE_VERSION)) MAKEDUMPFILE_DEPENDENCIES = bzip2 elfutils xz zlib MAKEDUMPFILE_LICENSE = GPL-2.0 MAKEDUMPFILE_LICENSE_FILES = COPYING ifeq ($(BR2_powerpc),y) MAKEDUMPFILE_TARGET = powerpc32 else MAKEDUMPFILE_TARGET = $(BR2_ARCH) endif MAKEDUMPFILE_MAKE_OPTS = \ TARGET=$(MAKEDUMPFILE_TARGET) \ LINKTYPE=dynamic ifeq ($(BR2_PACKAGE_LZO),y) MAKEDUMPFILE_DEPENDENCIES += lzo MAKEDUMPFILE_MAKE_OPTS += USELZO=on endif ifeq ($(BR2_PACKAGE_SNAPPY),y) MAKEDUMPFILE_DEPENDENCIES += snappy MAKEDUMPFILE_MAKE_OPTS += USESNAPPY=on endif define MAKEDUMPFILE_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(MAKEDUMPFILE_MAKE_OPTS) endef define MAKEDUMPFILE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) install \ DESTDIR="$(TARGET_DIR)" endef $(eval $(generic-package)) ================================================ FILE: package/mali-t76x/Config.in ================================================ config BR2_PACKAGE_MALI_T76X bool "mali-t76x" depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_ARM_EABIHF depends on BR2_arm select BR2_PACKAGE_MESA3D_HEADERS select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBGLES 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. 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 ================================================ FILE: package/mali-t76x/egl.pc ================================================ 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} -DEGL_NO_X11 ================================================ FILE: package/mali-t76x/glesv2.pc ================================================ 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} -DEGL_NO_X11 ================================================ FILE: package/mali-t76x/mali-t76x.hash ================================================ # Locally computed: sha256 5a0b00438edc8066b374481d3332a43c07ec2bd3bc73265983a968970f754902 mali-t76x_r5p0-06rel0_linux_1+fbdev.tar.gz ================================================ FILE: package/mali-t76x/mali-t76x.mk ================================================ ################################################################################ # # 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)) ================================================ FILE: package/mariadb/0001-add-extra-check-for-librt.patch ================================================ From 960c74ec60962f707bd41724edaa2640c0324400 Mon Sep 17 00:00:00 2001 From: Ryan Coe Date: Thu, 27 Oct 2016 20:33:21 -0700 Subject: [PATCH] add extra check for librt https://jira.mariadb.org/browse/MDEV-10841 Signed-off-by: Ryan Coe [Rebased on mariadb-10.3.30] Signed-off-by: Peter Seiderer --- configure.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.cmake b/configure.cmake index 1b85c31b..4a1cd847 100644 --- a/configure.cmake +++ b/configure.cmake @@ -134,6 +134,9 @@ IF(UNIX) IF(NOT LIBRT) MY_SEARCH_LIBS(clock_gettime rt LIBRT) ENDIF() + IF(NOT LIBRT) + MY_SEARCH_LIBS(posix_spawn_file_actions_addclose rt LIBRT) + ENDIF() set(THREADS_PREFER_PTHREAD_FLAG ON) FIND_PACKAGE(Threads) -- 2.32.0 ================================================ FILE: package/mariadb/S97mysqld ================================================ #!/bin/sh # # mysql # MYSQL_LIB="/var/lib/mysql" MYSQL_RUN="/run/mysql" MYSQL_PIDFILE="$MYSQL_RUN/mysqld.pid" MYSQL_LOG="/var/log/mysql" MYSQL_LOGFILE="$MYSQL_LOG/mysqld.log" MYSQL_BIN="/usr/bin" wait_for_ready() { WAIT_DELAY=5 while [ $WAIT_DELAY -gt 0 ]; do if $MYSQL_BIN/mysqladmin ping > /dev/null 2>&1; then return 0 fi sleep 1 : $((WAIT_DELAY -= 1)) done return 1 } start() { # stderr is redirected to prevent a warning # if mysql lib directory doesn't exist if [ `ls -1 $MYSQL_LIB 2> /dev/null | wc -l` = 0 ] ; then printf "Creating mysql system tables ... " $MYSQL_BIN/mysql_install_db --basedir=/usr \ --datadir=$MYSQL_LIB > /dev/null 2>&1 if [ $? != 0 ]; then echo "FAIL" exit 1 fi chown -R mysql:mysql $MYSQL_LIB echo "OK" fi # mysqld runs as user mysql, but /run is only writable by root # so create a subdirectory for mysql. install -d -o mysql -g root -m 0755 $MYSQL_RUN # Also create logging directory as user mysql. install -d -o mysql -g root -m 0755 $MYSQL_LOG # We don't use start-stop-daemon because mysqld has its own # wrapper script. printf "Starting mysql ... " $MYSQL_BIN/mysqld_safe --pid-file=$MYSQL_PIDFILE --user=mysql \ --log-error=$MYSQL_LOGFILE > /dev/null 2>&1 & wait_for_ready [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping mysql ... " if [ -f $MYSQL_PIDFILE ]; then kill `cat $MYSQL_PIDFILE` > /dev/null 2>&1 [ $? = 0 ] && echo "OK" || echo "FAIL" else echo "FAIL" fi } restart() { stop sleep 1 start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo "Usage: $0 {start|stop|restart}" ;; esac ================================================ FILE: package/mariadb/mariadb.hash ================================================ # From https://downloads.mariadb.org/mariadb/10.3.30 sha256 bd8735c65bdb7ebcd5d779fb9d3de3f2fcd319ad6482278d73dfe7301ad4ae1b mariadb-10.3.30.tar.gz sha512 742c30b3ebc0b6d36b98d4e7a7fb511098142e72d8f42cbfa73a0bdea2059be17e790fbda4732329bbd99e4b50b13cf18e8122964a473e0b62170ab869eca8fc mariadb-10.3.30.tar.gz # Hash for license files sha256 a4665c1189fe31e0bbc27e9b55439df7dad6e99805407fe58d78da7aabe678f8 README.md sha256 240a15a1d0f34d3abca462cdb7e5fb89470967563f16b0e71169e51c1e74cf2b COPYING ================================================ FILE: package/mariadb/mariadb.mk ================================================ ################################################################################ # # mariadb # ################################################################################ MARIADB_VERSION = 10.3.30 MARIADB_SITE = https://downloads.mariadb.org/interstitial/mariadb-$(MARIADB_VERSION)/source MARIADB_LICENSE = GPL-2.0 (server), GPL-2.0 with FLOSS exception (GPL client library), LGPL-2.0 (LGPL client library) # Tarball no longer contains LGPL license text # https://jira.mariadb.org/browse/MDEV-12297 MARIADB_LICENSE_FILES = README.md COPYING MARIADB_CPE_ID_VENDOR = mariadb MARIADB_SELINUX_MODULES = mysql MARIADB_INSTALL_STAGING = YES MARIADB_PROVIDES = mysql MARIADB_DEPENDENCIES = \ host-mariadb \ ncurses \ openssl \ zlib \ libaio \ libxml2 # use bundled GPL-2.0+ licensed readline as package/readline is GPL-3.0+ MARIADB_CONF_OPTS += -DWITH_READLINE=ON # We won't need unit tests MARIADB_CONF_OPTS += -DWITH_UNIT_TESTS=0 # Mroonga needs libstemmer. Some work still needs to be done before it can be # included in buildroot. Disable it for now. MARIADB_CONF_OPTS += -DWITHOUT_MROONGA=1 # This value is determined automatically during straight compile by compiling # and running a test code. You cannot do that during cross-compile. However the # stack grows downward in most if not all modern systems. The only exception I # am aware of is PA-RISC which is not supported by buildroot. Therefore it makes # sense to hardcode the value. If an arch is added the stack of which grows up # one should expect unpredictable behavior at run time. MARIADB_CONF_OPTS += -DSTACK_DIRECTION=-1 # Jemalloc was added for TokuDB. Since its configure script seems somewhat broken # when it comes to cross-compilation we shall disable it and also disable TokuDB. MARIADB_CONF_OPTS += -DWITH_JEMALLOC=no -DWITHOUT_TOKUDB=1 # RocksDB fails to build in some configurations with the following build error: # ./output/build/mariadb-10.2.17/storage/rocksdb/rocksdb/utilities/backupable/backupable_db.cc:327:38: # error: field 'result' has incomplete type 'std::promise' # std::promise result; # # To work around the issue, we disable RocksDB MARIADB_CONF_OPTS += -DWITHOUT_ROCKSDB=1 # Make it explicit that we are cross-compiling MARIADB_CONF_OPTS += -DCMAKE_CROSSCOMPILING=1 # Explicitly disable dtrace to avoid detection of a host version MARIADB_CONF_OPTS += -DENABLE_DTRACE=0 ifeq ($(BR2_PACKAGE_MARIADB_SERVER),y) ifeq ($(BR2_PACKAGE_MARIADB_SERVER_EMBEDDED),y) MARIADB_CONF_OPTS += -DWITH_EMBEDDED_SERVER=ON else MARIADB_CONF_OPTS += -DWITH_EMBEDDED_SERVER=OFF endif else MARIADB_CONF_OPTS += -DWITHOUT_SERVER=ON endif MARIADB_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) MARIADB_CXXFLAGS += -latomic endif MARIADB_CONF_OPTS += \ -DCMAKE_CXX_FLAGS="$(MARIADB_CXXFLAGS)" \ -DINSTALL_DOCDIR=share/doc/mariadb-$(MARIADB_VERSION) \ -DINSTALL_DOCREADMEDIR=share/doc/mariadb-$(MARIADB_VERSION) \ -DINSTALL_MANDIR=share/man \ -DINSTALL_MYSQLSHAREDIR=share/mysql \ -DINSTALL_MYSQLTESTDIR=share/mysql/test \ -DINSTALL_PLUGINDIR=lib/mysql/plugin \ -DINSTALL_SBINDIR=sbin \ -DINSTALL_SCRIPTDIR=bin \ -DINSTALL_SQLBENCHDIR=share/mysql/bench \ -DINSTALL_SUPPORTFILESDIR=share/mysql \ -DMYSQL_DATADIR=/var/lib/mysql \ -DMYSQL_UNIX_ADDR=$(MYSQL_SOCKET) HOST_MARIADB_DEPENDENCIES = host-openssl HOST_MARIADB_CONF_OPTS += -DWITH_SSL=system # Some helpers must be compiled for host in order to crosscompile mariadb for # the target. They are then included by import_executables.cmake which is # generated during the build of the host helpers. It is not necessary to build # the whole host package, only the "import_executables" target. # -DIMPORT_EXECUTABLES=$(HOST_MARIADB_BUILDDIR)/import_executables.cmake # must then be passed to cmake during target build. # see also https://mariadb.com/kb/en/mariadb/cross-compiling-mariadb/ HOST_MARIADB_MAKE_OPTS = import_executables MARIADB_CONF_OPTS += \ -DIMPORT_EXECUTABLES=$(HOST_MARIADB_BUILDDIR)/import_executables.cmake # Don't install host-mariadb. We just need to build import_executable # Therefore only run 'true' and do nothing, not even the default action. HOST_MARIADB_INSTALL_CMDS = true ifeq ($(BR2_PACKAGE_MARIADB_SERVER),y) define MARIADB_USERS mysql -1 mysql -1 * /var/lib/mysql - - MySQL Server endef define MARIADB_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/mariadb/S97mysqld \ $(TARGET_DIR)/etc/init.d/S97mysqld endef define MARIADB_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/mariadb/mysqld.service \ $(TARGET_DIR)/usr/lib/systemd/system/mysqld.service endef endif # We don't need mysql_config or mariadb_config on the target as it's # only useful in staging. We also don't need the test suite on the target. define MARIADB_POST_INSTALL mkdir -p $(TARGET_DIR)/var/lib/mysql $(RM) $(TARGET_DIR)/usr/bin/mysql_config $(RM) $(TARGET_DIR)/usr/bin/mariadb_config $(RM) -r $(TARGET_DIR)/usr/share/mysql/test endef MARIADB_POST_INSTALL_TARGET_HOOKS += MARIADB_POST_INSTALL # overwrite cross-compiled mariadb_config executable by an native one define MARIADB_POST_STAGING_INSTALL $(HOSTCC) -I$(@D)/libmariadb/include \ -o $(STAGING_DIR)/usr/bin/mariadb_config \ $(@D)/libmariadb/mariadb_config/mariadb_config.c endef MARIADB_POST_INSTALL_STAGING_HOOKS += MARIADB_POST_STAGING_INSTALL $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/mariadb/mysqld.service ================================================ [Unit] Description=MySQL database server [Service] ExecStartPre=/bin/sh -c 'test "`ls -1 /var/lib/mysql | wc -l`" != "0" || mysql_install_db --basedir=/usr --datadir=/var/lib/mysql && chown -R mysql:mysql /var/lib/mysql' ExecStartPre=install -d -o mysql -g root -m 0755 /var/log/mysql ExecStart=/usr/bin/mysqld_safe --log-error=/var/log/mysql/mysqld.log Restart=always User=mysql RuntimeDirectory=mysql RuntimeDirectoryMode=0755 [Install] WantedBy=multi-user.target ================================================ FILE: package/matchbox/0001-defaulttheme.patch ================================================ [PATCH] fix mbtheme build issue when png support is disabled DEFAULTTHEME{,NAME} is not defined when png support is disabled, leading to compile errors in mbtheme.c: mbtheme.c: In function 'show_parse_error': mbtheme.c:2422:28: error: 'DEFAULTTHEME' undeclared (first use in this function) mbtheme.c:2422:28: note: each undeclared identifier is reported only once for each function it appears in mbtheme.c: In function 'mbtheme_init': mbtheme.c:2448:30: error: 'DEFAULTTHEME' undeclared (first use in this function) mbtheme.c:2470:25: error: 'DEFAULTTHEMENAME' undeclared (first use in this function) Fix it by unconditionally defining them as the values used are the same in png / !png cases anyway. Signed-off-by: Peter Korsgaard --- src/structs.h | 9 --------- 1 file changed, 9 deletions(-) Index: matchbox-window-manager-1.2/src/structs.h =================================================================== --- matchbox-window-manager-1.2.orig/src/structs.h +++ matchbox-window-manager-1.2/src/structs.h @@ -81,8 +81,6 @@ #define GENERIC_ICON PKGDATADIR "/mbnoapp.xpm" -#ifdef MB_HAVE_PNG - #define DEFAULT_THEME DATADIR "/themes/Default/matchbox/theme.xml" #define DEFAULTTHEME DATADIR "/themes/Default/matchbox/theme.xml" @@ -91,13 +89,6 @@ #define DEFAULTTHEMENAME "Default" -#else - -#define DEFAULT_THEME DATADIR "/themes/Default/matchbox/theme.xml" -#define DEFAULT_THEME_NAME "Default" - -#endif - #define CONFDEFAULTS PKGDATADIR "/defaults" /* Simple Macros */ ================================================ FILE: package/matchbox/0002-src-Fix-build-with-gcc-10.patch ================================================ From 844f61069896fe3f549ab425d731c061028f697c Mon Sep 17 00:00:00 2001 From: Adrian Bunk Date: Tue, 12 May 2020 09:44:05 +0300 Subject: src: Fix build with gcc 10 gcc 10 enables -fno-common by default which fails without these typedefs Signed-off-by: Adrian Bunk Signed-off-by: Richard Purdie [Retrieved from: http://git.yoctoproject.org/cgit/cgit.cgi/matchbox-window-manager/commit/?id=844f61069896fe3f549ab425d731c061028f697c] Signed-off-by: Fabrice Fontaine --- src/mbtheme.h | 2 +- src/structs.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mbtheme.h b/src/mbtheme.h index aa9a7c5..ad03bde 100644 --- a/src/mbtheme.h +++ b/src/mbtheme.h @@ -46,7 +46,7 @@ typedef struct _mb_theme_param } MBThemeParam; -enum { +typedef enum { LAYER_GRADIENT_HORIZ = 1, LAYER_GRADIENT_VERT, LAYER_LABEL, diff --git a/src/structs.h b/src/structs.h index 24985e7..8f53e72 100644 --- a/src/structs.h +++ b/src/structs.h @@ -148,7 +148,7 @@ /* Atoms, if you change these check ewmh_init() first */ -enum { +typedef enum { WM_STATE = 0, WM_CHANGE_STATE, WM_PROTOCOLS, -- cgit v1.2.2-1-g5e49 ================================================ FILE: package/matchbox/Config.in ================================================ menuconfig BR2_PACKAGE_MATCHBOX bool "matchbox" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU # fork() select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_EXPAT select BR2_PACKAGE_MATCHBOX_LIB help Matchbox is an Open Source base environment for the X Window System running on non-desktop embedded platforms such as handhelds, set-top boxes, kiosks and anything else for which screen space, input mechanisms or system resources are limited. https://www.yoctoproject.org/tools-resources/projects/matchbox if BR2_PACKAGE_MATCHBOX config BR2_PACKAGE_MATCHBOX_SM bool "session manager" select BR2_PACKAGE_XLIB_LIBSM help Enable support for the Session Manager. comment "matchbox utilities" source "package/matchbox-common/Config.in" source "package/matchbox-desktop/Config.in" source "package/matchbox-fakekey/Config.in" source "package/matchbox-keyboard/Config.in" source "package/matchbox-lib/Config.in" source "package/matchbox-panel/Config.in" source "package/matchbox-startup-monitor/Config.in" endif ================================================ FILE: package/matchbox/matchbox.hash ================================================ # From http://downloads.yoctoproject.org/releases/matchbox/matchbox-window-manager/1.2/matchbox-window-manager-1.2.tar.bz2.md5 md5 3e158dcf57823b55c926d95b245500fb matchbox-window-manager-1.2.tar.bz2 # Locally computed sha256 81a23a4af797cf350759fd5ac738797015a66dd5dba2f3d9f3c6908506c1ceff matchbox-window-manager-1.2.tar.bz2 sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/matchbox/matchbox.mk ================================================ ################################################################################ # # matchbox # ################################################################################ MATCHBOX_VERSION = 1.2 MATCHBOX_SOURCE = matchbox-window-manager-$(MATCHBOX_VERSION).tar.bz2 MATCHBOX_SITE = http://downloads.yoctoproject.org/releases/matchbox/matchbox-window-manager/$(MATCHBOX_VERSION) MATCHBOX_LICENSE = GPL-2.0+ MATCHBOX_LICENSE_FILES = COPYING MATCHBOX_DEPENDENCIES = expat matchbox-lib MATCHBOX_CONF_OPTS = \ --enable-expat \ --disable-gconf \ --disable-composite \ --disable-standalone \ --disable-standalone-xft # Workaround bug in configure script MATCHBOX_CONF_ENV = expat=yes ifeq ($(BR2_PACKAGE_STARTUP_NOTIFICATION),y) MATCHBOX_CONF_OPTS += --enable-startup-notification MATCHBOX_DEPENDENCIES += startup-notification else MATCHBOX_CONF_OPTS += --disable-startup-notification endif ifeq ($(BR2_PACKAGE_MATCHBOX_SM),y) MATCHBOX_CONF_OPTS += --enable-session MATCHBOX_DEPENDENCIES += xlib_libSM else MATCHBOX_CONF_OPTS += --disable-session endif ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) MATCHBOX_DEPENDENCIES += xlib_libXcursor endif ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y) MATCHBOX_DEPENDENCIES += xlib_libXfixes endif $(eval $(autotools-package)) ================================================ FILE: package/matchbox-common/Config.in ================================================ config BR2_PACKAGE_MATCHBOX_COMMON bool "matchbox-common" depends on BR2_PACKAGE_MATCHBOX_PANEL || BR2_PACKAGE_MATCHBOX_DESKTOP select BR2_PACKAGE_MATCHBOX_LIB help Common desktop folders and matchbox-session script. http://git.yoctoproject.org/cgit/cgit.cgi/matchbox-common/ config BR2_PACKAGE_MATCHBOX_COMMON_PDA bool "PDA style app folder" depends on BR2_PACKAGE_MATCHBOX_COMMON ================================================ FILE: package/matchbox-common/matchbox-common.hash ================================================ # From http://downloads.yoctoproject.org/releases/matchbox/matchbox-common/0.9/matchbox-common-0.9.1.tar.bz2.md5 md5 8e8ba0ee170a9ac78fdc583b00ccf76b matchbox-common-0.9.1.tar.bz2 # Locally computed sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/matchbox-common/matchbox-common.mk ================================================ ################################################################################ # # matchbox-common # ################################################################################ MATCHBOX_COMMON_VERSION_MAJOR = 0.9 MATCHBOX_COMMON_VERSION = $(MATCHBOX_COMMON_VERSION_MAJOR).1 MATCHBOX_COMMON_SOURCE = matchbox-common-$(MATCHBOX_COMMON_VERSION).tar.bz2 MATCHBOX_COMMON_SITE = http://downloads.yoctoproject.org/releases/matchbox/matchbox-common/$(MATCHBOX_COMMON_VERSION_MAJOR) MATCHBOX_COMMON_LICENSE = GPL-2.0+ MATCHBOX_COMMON_LICENSE_FILES = COPYING MATCHBOX_COMMON_DEPENDENCIES = matchbox-lib ifeq ($(strip $(BR2_PACKAGE_MATCHBOX_COMMON_PDA)),y) MATCHBOX_COMMON_CONF_OPTS += --enable-pda-folders else MATCHBOX_COMMON_CONF_OPTS += --disable-pda-folders endif $(eval $(autotools-package)) ================================================ FILE: package/matchbox-desktop/Config.in ================================================ config BR2_PACKAGE_MATCHBOX_DESKTOP bool "matchbox-desktop" select BR2_PACKAGE_MATCHBOX_LIB select BR2_PACKAGE_ZLIB help A PDA style application launcher or 'item browser'. http://git.yoctoproject.org/cgit/cgit.cgi/matchbox-desktop ================================================ FILE: package/matchbox-desktop/matchbox-desktop.hash ================================================ # From http://downloads.yoctoproject.org/releases/matchbox/matchbox-desktop/0.9/matchbox-desktop-0.9.1.tar.bz2.md5 md5 3335a30b1a1aacfb39f23b505254765c matchbox-desktop-0.9.1.tar.bz2 # Locally computed sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/matchbox-desktop/matchbox-desktop.mk ================================================ ################################################################################ # # matchbox-desktop # ################################################################################ MATCHBOX_DESKTOP_VERSION_MAJOR = 0.9 MATCHBOX_DESKTOP_VERSION = $(MATCHBOX_DESKTOP_VERSION_MAJOR).1 MATCHBOX_DESKTOP_SOURCE = matchbox-desktop-$(MATCHBOX_DESKTOP_VERSION).tar.bz2 MATCHBOX_DESKTOP_SITE = http://downloads.yoctoproject.org/releases/matchbox/matchbox-desktop/$(MATCHBOX_DESKTOP_VERSION_MAJOR) MATCHBOX_DESKTOP_LICENSE = GPL-2.0+ MATCHBOX_DESKTOP_LICENSE_FILES = COPYING MATCHBOX_DESKTOP_DEPENDENCIES = matchbox-lib zlib # The bundled configure script does not properly replace LIBADD_DL, so # we force an autoreconf even if we don't have any patches touching # configure.ac/Makefile.am. MATCHBOX_DESKTOP_AUTORECONF = YES ifeq ($(BR2_PACKAGE_STARTUP_NOTIFICATION),y) MATCHBOX_DESKTOP_CONF_OPTS += --enable-startup-notification MATCHBOX_DESKTOP_DEPENDENCIES += startup-notification else MATCHBOX_DESKTOP_CONF_OPTS += --disable-startup-notification endif $(eval $(autotools-package)) ================================================ FILE: package/matchbox-fakekey/Config.in ================================================ config BR2_PACKAGE_MATCHBOX_FAKEKEY bool "matchbox-fakekey" select BR2_PACKAGE_MATCHBOX_LIB select BR2_PACKAGE_XLIB_LIBXTST help Library for simulating key press events under X11. http://git.yoctoproject.org/cgit/cgit.cgi/libfakekey/ ================================================ FILE: package/matchbox-fakekey/matchbox-fakekey.hash ================================================ # From http://downloads.yoctoproject.org/releases/matchbox/libfakekey/0.1/libfakekey-0.1.tar.bz2.md5 md5 83dbde4d77e8baf0176fe4291d8a2303 libfakekey-0.1.tar.bz2 # Locally computed sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/matchbox-fakekey/matchbox-fakekey.mk ================================================ ################################################################################ # # matchbox-fakekey # ################################################################################ MATCHBOX_FAKEKEY_VERSION = 0.1 MATCHBOX_FAKEKEY_SOURCE = libfakekey-$(MATCHBOX_FAKEKEY_VERSION).tar.bz2 MATCHBOX_FAKEKEY_SITE = http://downloads.yoctoproject.org/releases/matchbox/libfakekey/$(MATCHBOX_FAKEKEY_VERSION) MATCHBOX_FAKEKEY_LICENSE = GPL-2.0+ MATCHBOX_FAKEKEY_LICENSE_FILES = COPYING MATCHBOX_FAKEKEY_INSTALL_STAGING = YES MATCHBOX_FAKEKEY_DEPENDENCIES = matchbox-lib xlib_libXtst MATCHBOX_FAKEKEY_CONF_OPTS = --enable-expat define MATCHBOX_FAKEKEY_POST_CONFIGURE_FIXES $(SED) 's:^SUBDIRS = fakekey src tests.*:SUBDIRS = fakekey src:g' \ $(@D)/Makefile endef MATCHBOX_FAKEKEY_POST_CONFIGURE_HOOKS += MATCHBOX_FAKEKEY_POST_CONFIGURE_FIXES $(eval $(autotools-package)) ================================================ FILE: package/matchbox-keyboard/Config.in ================================================ config BR2_PACKAGE_MATCHBOX_KEYBOARD bool "matchbox-keyboard" select BR2_PACKAGE_XLIB_LIBXTST select BR2_PACKAGE_XLIB_LIBXFT if !BR2_PACKAGE_CAIRO select BR2_PACKAGE_MATCHBOX_FAKEKEY select BR2_PACKAGE_MATCHBOX_LIB help Virtual Keyboard http://git.yoctoproject.org/cgit/cgit.cgi/matchbox-keyboard/ ================================================ FILE: package/matchbox-keyboard/matchbox-keyboard.hash ================================================ # From http://downloads.yoctoproject.org/releases/matchbox/matchbox-keyboard/0.1/matchbox-keyboard-0.1.tar.bz2.md5 md5 50940321d59fee23b38a4941100abf25 matchbox-keyboard-0.1.tar.bz2 # Locally computed sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/matchbox-keyboard/matchbox-keyboard.mk ================================================ ################################################################################ # # matchbox-keyboard # ################################################################################ MATCHBOX_KEYBOARD_VERSION = 0.1 MATCHBOX_KEYBOARD_SOURCE = matchbox-keyboard-$(MATCHBOX_KEYBOARD_VERSION).tar.bz2 MATCHBOX_KEYBOARD_SITE = http://downloads.yoctoproject.org/releases/matchbox/matchbox-keyboard/$(MATCHBOX_KEYBOARD_VERSION) MATCHBOX_KEYBOARD_LICENSE = GPL-2.0+ MATCHBOX_KEYBOARD_LICENSE_FILES = COPYING MATCHBOX_KEYBOARD_DEPENDENCIES = host-pkgconf matchbox-lib matchbox-fakekey expat # Workaround bug in configure script MATCHBOX_KEYBOARD_CONF_ENV = expat=yes define MATCHBOX_KEYBOARD_POST_INSTALL_FIXES $(INSTALL) -D -m 0755 package/matchbox-keyboard/mb-applet-kbd-wrapper.sh \ $(TARGET_DIR)/usr/bin/mb-applet-kbd-wrapper.sh endef MATCHBOX_KEYBOARD_POST_INSTALL_TARGET_HOOKS += MATCHBOX_KEYBOARD_POST_INSTALL_FIXES ifeq ($(BR2_PACKAGE_CAIRO),y) MATCHBOX_KEYBOARD_CONF_OPTS += --enable-cairo MATCHBOX_KEYBOARD_DEPENDENCIES += cairo else MATCHBOX_KEYBOARD_CONF_OPTS += --disable-cairo MATCHBOX_KEYBOARD_DEPENDENCIES += xlib_libXft endif $(eval $(autotools-package)) ================================================ FILE: package/matchbox-keyboard/mb-applet-kbd-wrapper.sh ================================================ #!/bin/sh # killall matchbox-keyboard if [ ! $? -eq 0 ] then matchbox-keyboard & fi ================================================ FILE: package/matchbox-lib/0001-index-is-legacy.patch ================================================ index() is a legacy function, not implemented in some uClibc configurations. Signed-off-by: Thomas Petazzoni --- libmb/mbexp.c | 2 +- libmb/mbmenu.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Index: libmatchbox-1.9/libmb/mbexp.c =================================================================== --- libmatchbox-1.9.orig/libmb/mbexp.c +++ libmatchbox-1.9/libmb/mbexp.c @@ -492,7 +492,7 @@ /* get the family */ - if (index(spec, ',') != NULL || index(spec, '-') != NULL) + if (strchr(spec, ',') != NULL || strchr(spec, '-') != NULL) has_comma_delim = True; while (!got_family) { Index: libmatchbox-1.9/libmb/mbmenu.c =================================================================== --- libmatchbox-1.9.orig/libmb/mbmenu.c +++ libmatchbox-1.9/libmb/mbmenu.c @@ -433,7 +433,7 @@ { s = p; found = NULL; - while(index("/\0", *p) == NULL) p++; + while(strchr("/\0", *p) == NULL) p++; if (*p != '\0') { *p = '\0'; p++; }; item = current->items; ================================================ FILE: package/matchbox-lib/0002-libpng15.patch ================================================ Support for libpng 1.5+ shamelessly taken from Gentoo. Signed-off-by: Gustavo Zacarias --- a/libmb/mbpixbuf.c +++ b/libmb/mbpixbuf.c @@ -247,7 +247,7 @@ return NULL; } - if ( setjmp( png_ptr->jmpbuf ) ) { + if ( setjmp( png_jmpbuf(png_ptr) ) ) { png_destroy_read_struct( &png_ptr, &info_ptr, NULL); fclose(fd); return NULL; @@ -269,8 +269,8 @@ ( color_type == PNG_COLOR_TYPE_GRAY_ALPHA )) png_set_gray_to_rgb(png_ptr); - if ( info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA - || info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA + if ( color_type == PNG_COLOR_TYPE_RGB_ALPHA + || color_type == PNG_COLOR_TYPE_GRAY_ALPHA ) *has_alpha = 1; else ================================================ FILE: package/matchbox-lib/0003-include-setjmp-h.patch ================================================ matchbox-lib: include setjmp.h Based on this upstream patch: http://git.yoctoproject.org/cgit/cgit.cgi/libmatchbox/commit/?id=9315bcce1f01e7d6c00161442d61d3c676794d9d Signed-off-by: Vicente Olivert Riera --- libmatchbox-1.9/libmb/mbpixbuf.c.orig 2014-02-21 12:45:46.867035956 +0000 +++ libmatchbox-1.9/libmb/mbpixbuf.c 2014-02-21 12:46:43.482949583 +0000 @@ -22,6 +22,7 @@ #include #include "mbpixbuf.h" +#include #define BYTE_ORD_24_RGB 0 #define BYTE_ORD_24_RBG 1 ================================================ FILE: package/matchbox-lib/Config.in ================================================ config BR2_PACKAGE_MATCHBOX_LIB bool "matchbox-lib" select BR2_PACKAGE_XLIB_LIBXEXT help Matchbox common functionality library. http://git.yoctoproject.org/cgit/cgit.cgi/libmatchbox ================================================ FILE: package/matchbox-lib/matchbox-lib.hash ================================================ # From http://downloads.yoctoproject.org/releases/matchbox/libmatchbox/1.9/libmatchbox-1.9.tar.bz2.md5 md5 9f73e7515cc4679171a5db180dc1343b libmatchbox-1.9.tar.bz2 # Locally computed sha256 a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7 COPYING ================================================ FILE: package/matchbox-lib/matchbox-lib.mk ================================================ ################################################################################ # # matchbox-lib # ################################################################################ MATCHBOX_LIB_VERSION = 1.9 MATCHBOX_LIB_SOURCE = libmatchbox-$(MATCHBOX_LIB_VERSION).tar.bz2 MATCHBOX_LIB_SITE = http://downloads.yoctoproject.org/releases/matchbox/libmatchbox/$(MATCHBOX_LIB_VERSION) MATCHBOX_LIB_LICENSE = LGPL-2.1+ MATCHBOX_LIB_LICENSE_FILES = COPYING MATCHBOX_LIB_INSTALL_STAGING = YES MATCHBOX_LIB_DEPENDENCIES = host-pkgconf xlib_libXext MATCHBOX_LIB_CONF_OPTS = --disable-doxygen-docs MATCHBOX_LIB_CONF_ENV = LIBS="-lX11" define MATCHBOX_LIB_POST_INSTALL_FIXES $(SED) 's:-I$(STAGING_DIR)/:-I/:g' \ -e 's:-I/usr/include\( \|$$\)::g' \ $(STAGING_DIR)/usr/lib/pkgconfig/libmb.pc endef MATCHBOX_LIB_POST_INSTALL_STAGING_HOOKS += MATCHBOX_LIB_POST_INSTALL_FIXES ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y) ifeq ($(BR2_PACKAGE_XLIB_LIBXPM),y) MATCHBOX_LIB_DEPENDENCIES += xlib_libXpm endif endif ifeq ($(BR2_PACKAGE_JPEG),y) MATCHBOX_LIB_CONF_OPTS += --enable-jpeg MATCHBOX_LIB_DEPENDENCIES += jpeg else MATCHBOX_LIB_CONF_OPTS += --disable-jpeg endif ifeq ($(BR2_PACKAGE_LIBPNG),y) MATCHBOX_LIB_CONF_OPTS += --enable-png MATCHBOX_LIB_DEPENDENCIES += libpng else MATCHBOX_LIB_CONF_OPTS += --disable-png endif ifeq ($(BR2_PACKAGE_PANGO)$(BR2_PACKAGE_XLIB_LIBXFT)$(BR2_PACKAGE_XLIB_LIBXRENDER),yyy) MATCHBOX_LIB_CONF_OPTS += --enable-pango MATCHBOX_LIB_DEPENDENCIES += pango else MATCHBOX_LIB_CONF_OPTS += --disable-pango endif ifeq ($(BR2_PACKAGE_XLIB_LIBXFT),y) MATCHBOX_LIB_CONF_OPTS += --enable-xft MATCHBOX_LIB_DEPENDENCIES += xlib_libXft else MATCHBOX_LIB_CONF_OPTS += --disable-xft endif $(eval $(autotools-package)) ================================================ FILE: package/matchbox-panel/0001-index-is-legacy.patch ================================================ Replace the legacy index() with strchr() Signed-off-by: Thomas Petazzoni --- applets/mb-applet-menu-launcher.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: matchbox-panel-0.9.3/applets/mb-applet-menu-launcher.c =================================================================== --- matchbox-panel-0.9.3.orig/applets/mb-applet-menu-launcher.c +++ matchbox-panel-0.9.3/applets/mb-applet-menu-launcher.c @@ -280,7 +280,7 @@ DBG("\tkey %s ", key); if (*(++p) == '"') { p++; tc = sc; } /* skip "'s */ val = p; - while(index(tc,*p) == NULL) + while(strchr(tc,*p) == NULL) { if (*p == '\\' && *(p+1) == '"') p++; /* skip \" */ p++; ================================================ FILE: package/matchbox-panel/0002-mb-applet-wireless.patch ================================================ mb-applet-wireless: fix undefined reference to `log' and `lrint' mb-applet-wireless.o: In function `update_wireless': .. matchbox-panel-0.9.3/applets/mb-applet-wireless.c:143: undefined reference to `log' .. matchbox-panel-0.9.3/applets/mb-applet-wireless.c:143: undefined reference to `lrint' Signed-off-by: Jean-Paul Etienne Signed-off-by: Arnout Vandecappelle (Essensium/Mind) [arnout: add description and Signed-off-by] --- diff -rup matchbox-panel-0.9.3.orig/applets/Makefile.in matchbox-panel-0.9.3/applets/Makefile.in --- matchbox-panel-0.9.3.orig/applets/Makefile.in 2015-01-23 00:16:47.594850985 +0100 +++ matchbox-panel-0.9.3/applets/Makefile.in 2015-01-23 00:15:18.458694947 +0100 @@ -198,7 +198,7 @@ WANT_SMALL_ICONS_FALSE = @WANT_SMALL_ICO WANT_SMALL_ICONS_TRUE = @WANT_SMALL_ICONS_TRUE@ WANT_WIFI_FALSE = @WANT_WIFI_FALSE@ WANT_WIFI_TRUE = @WANT_WIFI_TRUE@ -WIRELESS_LIBS = @WIRELESS_LIBS@ +WIRELESS_LIBS = @WIRELESS_LIBS@ -lm XGETTEXT = @XGETTEXT@ ac_ct_CC = @ac_ct_CC@ ac_ct_STRIP = @ac_ct_STRIP@ diff -rup matchbox-panel-0.9.3.orig/applets/mb-applet-wireless.c matchbox-panel-0.9.3/applets/mb-applet-wireless.c --- matchbox-panel-0.9.3.orig/applets/mb-applet-wireless.c 2015-01-23 00:16:31.531822865 +0100 +++ matchbox-panel-0.9.3/applets/mb-applet-wireless.c 2015-01-23 00:03:43.067563827 +0100 @@ -50,6 +50,8 @@ #endif +#include + #ifdef MB_HAVE_PNG #define IMG_EXT "png" #else ================================================ FILE: package/matchbox-panel/0003-mb-applet-battery.patch ================================================ mb-applet-battery: don't declare line_parse as static Fix this build failure: mb-applet-battery.c: In function 'read_apm': mb-applet-battery.c:181:2: error: invalid storage class for function 'line_parse' Reported-by: Arnout Vandecappelle Signed-off-by: "Yann E. MORIN" diff -durN matchbox-panel-0.9.3.orig/applets/mb-applet-battery.c matchbox-panel-0.9.3/applets/mb-applet-battery.c --- matchbox-panel-0.9.3.orig/applets/mb-applet-battery.c 2006-02-07 23:27:24.000000000 +0100 +++ matchbox-panel-0.9.3/applets/mb-applet-battery.c 2015-05-02 17:13:00.843578796 +0200 @@ -177,7 +177,7 @@ unsigned long present_rate; }; - static int + int line_parse(char *line, struct entry *e) { char *ptr; ================================================ FILE: package/matchbox-panel/Config.in ================================================ config BR2_PACKAGE_MATCHBOX_PANEL bool "matchbox-panel" select BR2_PACKAGE_MATCHBOX_LIB help A flexible always present 'window bar' for holding application launchers. http://git.yoctoproject.org/cgit/cgit.cgi/matchbox-panel/ ================================================ FILE: package/matchbox-panel/matchbox-panel.hash ================================================ # From http://downloads.yoctoproject.org/releases/matchbox/matchbox-panel/0.9/matchbox-panel-0.9.3.tar.bz2.md5 md5 56d1807636f3919e22e51896ab7ccd2e matchbox-panel-0.9.3.tar.bz2 # Locally computed sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/matchbox-panel/matchbox-panel.mk ================================================ ################################################################################ # # matchbox-panel # ################################################################################ MATCHBOX_PANEL_VERSION_MAJOR = 0.9 MATCHBOX_PANEL_VERSION = $(MATCHBOX_PANEL_VERSION_MAJOR).3 MATCHBOX_PANEL_SOURCE = matchbox-panel-$(MATCHBOX_PANEL_VERSION).tar.bz2 MATCHBOX_PANEL_SITE = http://downloads.yoctoproject.org/releases/matchbox/matchbox-panel/$(MATCHBOX_PANEL_VERSION_MAJOR) MATCHBOX_PANEL_LICENSE = GPL-2.0+ MATCHBOX_PANEL_LICENSE_FILES = COPYING MATCHBOX_PANEL_DEPENDENCIES = matchbox-lib $(TARGET_NLS_DEPENDENCIES) MATCHBOX_PANEL_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) MATCHBOX_PANEL_CONF_OPTS = --enable-expat --enable-dnotify ifeq ($(BR2_PACKAGE_MATCHBOX_STARTUP_MONITOR),y) MATCHBOX_PANEL_CONF_OPTS += --enable-startup-notification MATCHBOX_PANEL_DEPENDENCIES += matchbox-startup-monitor else MATCHBOX_PANEL_CONF_OPTS += --disable-startup-notification endif # Using ACPI is only possible on x86 (32- or 64-bit) or AArch64 ifeq ($(BR2_aarch64)$(BR2_i386)$(BR2_x86_64),y) MATCHBOX_PANEL_CONF_OPTS += --enable-acpi-linux else MATCHBOX_PANEL_CONF_OPTS += --disable-acpi-linux endif ifeq ($(BR2_PACKAGE_WIRELESS_TOOLS_LIB),y) MATCHBOX_PANEL_DEPENDENCIES += wireless_tools endif $(eval $(autotools-package)) ================================================ FILE: package/matchbox-startup-monitor/0001-true-false.patch ================================================ mbmonitor uses TRUE / FALSE without defining them Signed-off-by: Peter Korsgaard --- mbmonitor.c | 3 +++ 1 file changed, 3 insertions(+) Index: mb-applet-startup-monitor-0.1/mbmonitor.c =================================================================== --- mb-applet-startup-monitor-0.1.orig/mbmonitor.c +++ mb-applet-startup-monitor-0.1/mbmonitor.c @@ -43,6 +43,9 @@ #define POLLTIME 10 #define HOURGLASS_N_FRAMES 8 +#define FALSE 0 +#define TRUE 1 + typedef struct LaunchList LaunchList; struct LaunchList ================================================ FILE: package/matchbox-startup-monitor/Config.in ================================================ config BR2_PACKAGE_MATCHBOX_STARTUP_MONITOR bool "matchbox-startup-monitor" select BR2_PACKAGE_MATCHBOX_LIB select BR2_PACKAGE_STARTUP_NOTIFICATION help Matchbox Panel Startup Monitor Applet. http://git.yoctoproject.org/cgit.cgi/mb-applet-startup-monitor/ ================================================ FILE: package/matchbox-startup-monitor/matchbox-startup-monitor.hash ================================================ # From http://downloads.yoctoproject.org/releases/matchbox/mb-applet-startup-monitor/0.1/mb-applet-startup-monitor-0.1.tar.bz2.md5 md5 ea4b3c1ebee3f731b77a2d4bf8e9aa3c mb-applet-startup-monitor-0.1.tar.bz2 # Locally computed sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/matchbox-startup-monitor/matchbox-startup-monitor.mk ================================================ ################################################################################ # # matchbox-startup-monitor # ################################################################################ MATCHBOX_STARTUP_MONITOR_VERSION = 0.1 MATCHBOX_STARTUP_MONITOR_SOURCE = mb-applet-startup-monitor-$(MATCHBOX_STARTUP_MONITOR_VERSION).tar.bz2 MATCHBOX_STARTUP_MONITOR_SITE = http://downloads.yoctoproject.org/releases/matchbox/mb-applet-startup-monitor/$(MATCHBOX_STARTUP_MONITOR_VERSION) MATCHBOX_STARTUP_MONITOR_LICENSE = GPL-2.0+ MATCHBOX_STARTUP_MONITOR_LICENSE_FILES = COPYING MATCHBOX_STARTUP_MONITOR_DEPENDENCIES = matchbox-lib startup-notification $(eval $(autotools-package)) ================================================ FILE: package/matio/Config.in ================================================ config BR2_PACKAGE_MATIO bool "matio" select BR2_PACKAGE_ZLIB help matio is an C library for reading and writing MATLAB MAT files. https://sourceforge.net/projects/matio ================================================ FILE: package/matio/matio.hash ================================================ # From https://sourceforge.net/projects/matio/files/matio/1.5.21/ sha512 b00bcad807e6a7e10afa656eb77a0e3e9fb08d9cecc3e94ba41ef91ce60367d6686e6d387a874bbb83eb2f895d4a97caac554a70e7f5f6f5cb750052702d411c matio-1.5.21.tar.gz # Locally computed sha256 69143d4a8f1933022bb909327df1ce812dd2420ed57949812dd8f370856bf2a1 COPYING ================================================ FILE: package/matio/matio.mk ================================================ ################################################################################ # # matio # ################################################################################ MATIO_VERSION = 1.5.21 MATIO_SITE = http://downloads.sourceforge.net/project/matio/matio/$(MATIO_VERSION) MATIO_LICENSE = BSD-2-Clause MATIO_LICENSE_FILES = COPYING MATIO_CPE_ID_VENDOR = matio_project MATIO_DEPENDENCIES = zlib MATIO_INSTALL_STAGING = YES # va_copy() MATIO_CONF_ENV = ac_cv_va_copy=yes # mat73 require hdf5 (not available), extented-sparse take 2KB MATIO_CONF_OPTS = --disable-mat73 --enable-extended-sparse $(eval $(autotools-package)) ================================================ FILE: package/mawk/Config.in ================================================ config BR2_PACKAGE_MAWK bool "mawk" help Interpreter for the AWK Programming Language. http://invisible-island.net/mawk/mawk.html ================================================ FILE: package/mawk/mawk.hash ================================================ sha256 7fd4cd1e1fae9290fe089171181bbc6291dfd9bca939ca804f0ddb851c8b8237 mawk-1.3.4-20200120.tgz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/mawk/mawk.mk ================================================ ################################################################################ # # mawk # ################################################################################ MAWK_VERSION = 1.3.4-20200120 MAWK_SITE = https://invisible-mirror.net/archives/mawk MAWK_SOURCE = mawk-$(MAWK_VERSION).tgz MAWK_LICENSE = GPL-2.0 MAWK_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/mbedtls/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch ================================================ From a0ae2ba37ca479c6edddec8634b25686be965e0d Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Mon, 27 Aug 2018 22:50:57 +0200 Subject: [PATCH] bn_mul.h: fix x86 PIC inline ASM compilation with GCC < 5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #1910 With ebx added to the MULADDC_STOP clobber list to fix #1550, the inline assembly fails to build with GCC < 5 in PIC mode with the following error: include/mbedtls/bn_mul.h:46:13: error: PIC register clobbered by ‘ebx’ in ‘asm’ This is because older GCC versions treated the x86 ebx register (which is used for the GOT) as a fixed reserved register when building as PIC. This is fixed by an improved register allocator in GCC 5+. From the release notes: Register allocation improvements: Reuse of the PIC hard register, instead of using a fixed register, was implemented on x86/x86-64 targets. This improves generated PIC code performance as more hard registers can be used. https://www.gnu.org/software/gcc/gcc-5/changes.html As a workaround, detect this situation and disable the inline assembly, similar to the MULADDC_CANNOT_USE_R7 logic. Signed-off-by: Peter Korsgaard Upstream: https://github.com/ARMmbed/mbedtls/pull/1986 --- include/mbedtls/bn_mul.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/bn_mul.h b/include/mbedtls/bn_mul.h index b587317d9..74a2d29be 100644 --- a/include/mbedtls/bn_mul.h +++ b/include/mbedtls/bn_mul.h @@ -50,13 +50,29 @@ #if defined(__GNUC__) && \ ( !defined(__ARMCC_VERSION) || __ARMCC_VERSION >= 6000000 ) +/* + * GCC < 5.0 treated the x86 ebx (which is used for the GOT) as a + * fixed reserved register when building as PIC, leading to errors + * like: bn_mul.h:46:13: error: PIC register clobbered by ‘ebx’ in ‘asm’ + * + * This is fixed by an improved register allocator in GCC 5+. From the + * release notes: + * Register allocation improvements: Reuse of the PIC hard register, + * instead of using a fixed register, was implemented on x86/x86-64 + * targets. This improves generated PIC code performance as more hard + * registers can be used. + */ +#if defined(__GNUC__) && __GNUC__ < 5 && defined(__PIC__) +#define MULADDC_CANNOT_USE_EBX +#endif + /* * Disable use of the i386 assembly code below if option -O0, to disable all * compiler optimisations, is passed, detected with __OPTIMIZE__ * This is done as the number of registers used in the assembly code doesn't * work with the -O0 option. */ -#if defined(__i386__) && defined(__OPTIMIZE__) +#if defined(__i386__) && defined(__OPTIMIZE__) && !defined(MULADDC_CANNOT_USE_EBX) #define MULADDC_INIT \ asm( \ -- 2.11.0 ================================================ FILE: package/mbedtls/Config.in ================================================ config BR2_PACKAGE_MBEDTLS bool "mbedtls" help mbed TLS (formerly known as PolarSSL) makes it trivially easy for developers to include cryptographic and SSL/TLS capabilities in their (embedded) products, facilitating this functionality with a minimal coding footprint. https://tls.mbed.org/ if BR2_PACKAGE_MBEDTLS config BR2_PACKAGE_MBEDTLS_PROGRAMS bool "mbedtls programs" depends on BR2_USE_MMU # fork() help This option enables the installation and the build of mbed TLS companion programs. config BR2_PACKAGE_MBEDTLS_COMPRESSION bool "enable compression support" select BR2_PACKAGE_ZLIB help Enable support for compression of the content data before it enters the secure channel as described in RFC 3749. Warning: TLS compression may make you vulnerable to the CRIME attack. You should not enable it unless you know for sure CRIME and similar attacks are not applicable to your particular situation. endif ================================================ FILE: package/mbedtls/mbedtls.hash ================================================ # From https://github.com/ARMmbed/mbedtls/releases/tag/v2.16.11: sha256 c18e7e9abf95e69e425260493720470021384a1728417042060a35d0b7b18b41 mbedtls-2.16.11.tar.gz # Locally calculated sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 apache-2.0.txt ================================================ FILE: package/mbedtls/mbedtls.mk ================================================ ################################################################################ # # mbedtls # ################################################################################ MBEDTLS_VERSION = 2.16.11 MBEDTLS_SITE = $(call github,ARMmbed,mbedtls,v$(MBEDTLS_VERSION)) MBEDTLS_CONF_OPTS = \ -DENABLE_PROGRAMS=$(if $(BR2_PACKAGE_MBEDTLS_PROGRAMS),ON,OFF) \ -DENABLE_TESTING=OFF MBEDTLS_INSTALL_STAGING = YES MBEDTLS_LICENSE = Apache-2.0 MBEDTLS_LICENSE_FILES = apache-2.0.txt MBEDTLS_CPE_ID_VENDOR = arm MBEDTLS_CPE_ID_PRODUCT = mbed_tls # This is mandatory for hiawatha ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) define MBEDTLS_ENABLE_THREADING $(SED) "s://#define MBEDTLS_THREADING_C:#define MBEDTLS_THREADING_C:" \ $(@D)/include/mbedtls/config.h $(SED) "s://#define MBEDTLS_THREADING_PTHREAD:#define MBEDTLS_THREADING_PTHREAD:" \ $(@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) MBEDTLS_CONF_OPTS += \ -DUSE_SHARED_MBEDTLS_LIBRARY=OFF -DUSE_STATIC_MBEDTLS_LIBRARY=ON else ifeq ($(BR2_SHARED_STATIC_LIBS),y) MBEDTLS_CONF_OPTS += \ -DUSE_SHARED_MBEDTLS_LIBRARY=ON -DUSE_STATIC_MBEDTLS_LIBRARY=ON else ifeq ($(BR2_SHARED_LIBS),y) MBEDTLS_CONF_OPTS += \ -DUSE_SHARED_MBEDTLS_LIBRARY=ON -DUSE_STATIC_MBEDTLS_LIBRARY=OFF endif ifeq ($(BR2_PACKAGE_MBEDTLS_COMPRESSION),y) MBEDTLS_CONF_OPTS += -DENABLE_ZLIB_SUPPORT=ON MBEDTLS_DEPENDENCIES += zlib define MBEDTLS_ENABLE_ZLIB $(SED) "s://#define MBEDTLS_ZLIB_SUPPORT:#define MBEDTLS_ZLIB_SUPPORT:" \ $(@D)/include/mbedtls/config.h endef MBEDTLS_POST_PATCH_HOOKS += MBEDTLS_ENABLE_ZLIB else MBEDTLS_CONF_OPTS += -DENABLE_ZLIB_SUPPORT=OFF endif define MBEDTLS_DISABLE_ASM $(SED) '/^#define MBEDTLS_AESNI_C/d' \ $(@D)/include/mbedtls/config.h $(SED) '/^#define MBEDTLS_HAVE_ASM/d' \ $(@D)/include/mbedtls/config.h $(SED) '/^#define MBEDTLS_PADLOCK_C/d' \ $(@D)/include/mbedtls/config.h endef # ARM in thumb mode breaks debugging with asm optimizations # Microblaze asm optimizations are broken in general # MIPS R6 asm is not yet supported ifeq ($(BR2_ENABLE_DEBUG)$(BR2_ARM_INSTRUCTIONS_THUMB)$(BR2_ARM_INSTRUCTIONS_THUMB2),yy) MBEDTLS_POST_CONFIGURE_HOOKS += MBEDTLS_DISABLE_ASM else ifeq ($(BR2_microblaze)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS_CPU_MIPS64R6),y) MBEDTLS_POST_CONFIGURE_HOOKS += MBEDTLS_DISABLE_ASM endif $(eval $(cmake-package)) ================================================ FILE: package/mbpfan/Config.in ================================================ config BR2_PACKAGE_MBPFAN bool "mbpfan" depends on BR2_USE_MMU help Mbpfan is a daemon for MacBook laptops which monitors the CPU temperature with the coretemp module, and sets the fan speeds with the applesmc module. https://github.com/linux-on-mac/mbpfan ================================================ FILE: package/mbpfan/mbpfan.hash ================================================ # Locally computed: sha256 52a3a79d99f775fe90917a0958e527ea14ff5b83d010164bd91f7cc3ce046b6a mbpfan-2.2.1.tar.gz sha256 589ed823e9a84c56feb95ac58e7cf384626b9cbf4fda2a907bc36e103de1bad2 COPYING ================================================ FILE: package/mbpfan/mbpfan.mk ================================================ ################################################################################ # # mbpfan # ################################################################################ MBPFAN_VERSION = 2.2.1 MBPFAN_SITE = $(call github,linux-on-mac,mbpfan,v$(MBPFAN_VERSION)) MBPFAN_LICENSE = GPL-3.0+ MBPFAN_LICENSE_FILES = COPYING define MBPFAN_BUILD_CMDS $(TARGET_MAKE_ENV) CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \ $(MAKE) CC="$(TARGET_CC)" -C $(@D) endef define MBPFAN_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0644 $(@D)/mbpfan.conf \ $(TARGET_DIR)/etc/mbpfan.conf $(INSTALL) -m 0755 $(@D)/bin/mbpfan $(TARGET_DIR)/usr/sbin/mbpfan endef define MBPFAN_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(@D)/mbpfan.service \ $(TARGET_DIR)/usr/lib/systemd/system/mbpfan.service endef $(eval $(generic-package)) ================================================ FILE: package/mbuffer/Config.in ================================================ config BR2_PACKAGE_MBUFFER bool "mbuffer" depends on !BR2_STATIC_LIBS # dlopen() depends on BR2_TOOLCHAIN_HAS_THREADS help mbuffer is a tool for buffering data streams with a large set of unique features. http://www.maier-komor.de/mbuffer.html comment "mbuffer needs a toolchain w/ dynamic library, threads" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/mbuffer/mbuffer.hash ================================================ # From http://www.maier-komor.de/mbuffer.html md5 4e4712db5fbd4e71bfbfa2c145c6c646 mbuffer-20210328.tgz # Locally computed after checking signature upstream sha256 51b5b8d8488991a55fe1dfce90130f9e47bc1ce286ba03b4f628c04b784fdc5d mbuffer-20210328.tgz # Hash for license file sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE ================================================ FILE: package/mbuffer/mbuffer.mk ================================================ ################################################################################ # # mbuffer # ################################################################################ MBUFFER_VERSION = 20210328 MBUFFER_SOURCE = mbuffer-$(MBUFFER_VERSION).tgz MBUFFER_SITE = http://www.maier-komor.de/software/mbuffer MBUFFER_LICENSE = GPL-3.0+ MBUFFER_LICENSE_FILES = LICENSE MBUFFER_CONF_OPTS = --disable-debug # we don't need tests & co. so we specify a target # so that the others don't get built, e.g idev.so MBUFFER_MAKE_OPTS += mbuffer $(eval $(autotools-package)) ================================================ FILE: package/mc/Config.in ================================================ config BR2_PACKAGE_MC bool "mc" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2, slang select BR2_PACKAGE_LIBGLIB2 # mc prefers slang, but can use ncurses too select BR2_PACKAGE_SLANG if !BR2_PACKAGE_NCURSES select BR2_PACKAGE_NCURSES_WCHAR if BR2_PACKAGE_NCURSES help GNU Midnight Commander is a visual file manager, licensed under GNU General Public License. It can use either SLang (preferred) or ncurses for screen handling; if neither is enabled SLang will be automatically chosen. https://www.midnight-commander.org comment "mc needs a toolchain w/ threads, wchar" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR depends on BR2_USE_MMU ================================================ FILE: package/mc/mc.hash ================================================ # Hash from http://ftp.midnight-commander.org/mc-4.8.27.sha256 sha256 31be59225ffa9920816e9a8b3be0ab225a16d19e4faf46890f25bdffa02a4ff4 mc-4.8.27.tar.xz # sha256 locally computed: sha256 5576bbec76296e1c8e081f7037ebd01bdada388635f58d844a2f20d37bbe4284 COPYING ================================================ FILE: package/mc/mc.mk ================================================ ################################################################################ # # mc # ################################################################################ MC_VERSION = 4.8.27 MC_SOURCE = mc-$(MC_VERSION).tar.xz MC_SITE = http://ftp.midnight-commander.org MC_LICENSE = GPL-3.0+ MC_LICENSE_FILES = COPYING MC_DEPENDENCIES = libglib2 host-pkgconf $(TARGET_NLS_DEPENDENCIES) MC_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_GPM),y) MC_CONF_OPTS += --with-gpm-mouse MC_DEPENDENCIES += gpm else MC_CONF_OPTS += --without-gpm-mouse endif ifeq ($(BR2_PACKAGE_LIBSSH2),y) MC_CONF_OPTS += --enable-vfs-sftp MC_DEPENDENCIES += libssh2 else MC_CONF_OPTS += --disable-vfs-sftp endif # mc prefers slang, so use that if enabled, otherwise # fallback to using ncurses. # Either or both will be enabled, but we prefer slang. ifeq ($(BR2_PACKAGE_SLANG),y) MC_DEPENDENCIES += slang MC_CONF_OPTS += --with-screen=slang else MC_DEPENDENCIES += ncurses MC_CONF_OPTS += --with-screen=ncurses endif ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) MC_CONF_OPTS += --with-x MC_DEPENDENCIES += xlib_libX11 else MC_CONF_OPTS += --without-x endif $(eval $(autotools-package)) ================================================ FILE: package/mcelog/Config.in ================================================ config BR2_PACKAGE_MCELOG bool "mcelog" depends on BR2_i386 || BR2_x86_64 depends on BR2_USE_MMU # fork() help mcelog processes machine checks (in particular memory and CPU hardware errors) on modern x86 Linux systems. http://www.mcelog.org/ ================================================ FILE: package/mcelog/mcelog.hash ================================================ # Locally computed sha256 d21dfddaaa8e6f4ebd59ce353165c8d8079d0d5ed563492a0415af2248d8b3a5 mcelog-172.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/mcelog/mcelog.mk ================================================ ################################################################################ # # mcelog # ################################################################################ MCELOG_VERSION = 172 MCELOG_SITE = $(call github,andikleen,mcelog,v$(MCELOG_VERSION)) MCELOG_LICENSE = GPL-2.0 MCELOG_LICENSE_FILES = LICENSE MCELOG_SELINUX_MODULES = mcelog define MCELOG_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all endef define MCELOG_INSTALL_TARGET_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) DESTDIR=$(TARGET_DIR) install endef define MCELOG_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 $(@D)/mcelog.service \ $(TARGET_DIR)/usr/lib/systemd/system/mcelog.service endef $(eval $(generic-package)) ================================================ FILE: package/mdadm/0001-add-install-targets-for-mdadm-and-mdmon.patch ================================================ From a1a9243671b1e23123f57e879890325154b8e00d Mon Sep 17 00:00:00 2001 From: Christophe Vu-Brugier Date: Wed, 6 Mar 2013 16:03:14 +0100 Subject: [PATCH] Add install targets for mdadm and mdmon Signed-off-by: Christophe Vu-Brugier --- Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 315455b..27d8eeb 100644 --- a/Makefile +++ b/Makefile @@ -231,8 +231,12 @@ $(MON_OBJS) : $(INCL) mdmon.h sha1.o : sha1.c sha1.h md5.h $(CC) $(CFLAGS) -DHAVE_STDINT_H -o sha1.o -c sha1.c -install : mdadm mdmon install-man install-udev +install : install-mdadm install-mdmon install-man install-udev + +install-mdadm : $(INSTALL) -D $(STRIP) -m 755 mdadm $(DESTDIR)$(BINDIR)/mdadm + +install-mdmon : $(INSTALL) -D $(STRIP) -m 755 mdmon $(DESTDIR)$(BINDIR)/mdmon install-static : mdadm.static install-man -- 1.7.10.4 ================================================ FILE: package/mdadm/0002-mdadm.h-include-sysmacros.h-unconditionally.patch ================================================ From 6c781ad75d92c6f65832810c44afcba1b2dffc41 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Tue, 6 Aug 2019 16:01:15 +0300 Subject: [PATCH] mdadm.h: include sysmacros.h unconditionally musl libc now also requires sys/sysmacros.h for the major/minor macros. All supported libc implementations carry sys/sysmacros.h, including diet-libc, klibc, and uclibc-ng. Cc: Hauke Mehrtens Signed-off-by: Baruch Siach --- Upstream status: https://marc.info/?l=linux-raid&m=156509677018508 mdadm.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/mdadm.h b/mdadm.h index c36d7fdb10f6..d61a9ca82dc1 100644 --- a/mdadm.h +++ b/mdadm.h @@ -45,10 +45,8 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence)); #include #include #include -#ifdef __GLIBC__ /* Newer glibc requires sys/sysmacros.h directly for makedev() */ #include -#endif #ifdef __dietlibc__ #include /* dietlibc has deprecated random and srandom!! */ -- 2.20.1 ================================================ FILE: package/mdadm/Config.in ================================================ config BR2_PACKAGE_MDADM bool "mdadm" depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_USE_MMU # fork() help Utility for managing Linux Software RAID arrays. https://raid.wiki.kernel.org/index.php/A_guide_to_mdadm comment "mdadm needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS depends on BR2_USE_MMU ================================================ FILE: package/mdadm/mdadm.hash ================================================ # From https://www.kernel.org/pub/linux/utils/raid/mdadm/sha256sums.asc sha256 ab7688842908d3583a704d491956f31324c3a5fc9f6a04653cb75d19f1934f4a mdadm-4.1.tar.xz # Locally calculated sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/mdadm/mdadm.mk ================================================ ################################################################################ # # mdadm # ################################################################################ MDADM_VERSION = 4.1 MDADM_SOURCE = mdadm-$(MDADM_VERSION).tar.xz MDADM_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/raid/mdadm MDADM_LICENSE = GPL-2.0+ MDADM_LICENSE_FILES = COPYING MDADM_BUILD_OPTS = $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS) -DNO_COROSYNC -DNO_DLM" \ CPPFLAGS="$(TARGET_CPPFLAGS) -DBINDIR=\\\"/sbin\\\"" \ CHECK_RUN_DIR=0 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),) MDADM_BUILD_OPTS += USE_PTHREADS= endif define MDADM_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(MDADM_BUILD_OPTS) mdadm mdmon endef define MDADM_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ DESTDIR=$(TARGET_DIR) \ install-mdadm install-mdmon endef $(eval $(generic-package)) ================================================ FILE: package/mdevd/Config.in ================================================ config BR2_PACKAGE_MDEVD bool "mdevd" depends on BR2_USE_MMU # skalibs select BR2_PACKAGE_SKALIBS help mdevd is a small daemon managing kernel hotplug events, similarly to udevd. http://skarnet.org/software/mdevd/ ================================================ FILE: package/mdevd/mdevd.hash ================================================ # Locally generated sha256 ffd3b223b4cf0e51253b4a8f09cb88d70bf22693228ab0818af174a3f099dcd2 mdevd-0.1.4.0.tar.gz sha256 31b60c66aba1fa0a7f8847339ac35c28638e25ff96da700d995533ad810e3995 COPYING ================================================ FILE: package/mdevd/mdevd.mk ================================================ ################################################################################ # # mdevd # ################################################################################ MDEVD_VERSION = 0.1.4.0 MDEVD_SITE = http://skarnet.org/software/mdevd MDEVD_LICENSE = ISC MDEVD_LICENSE_FILES = COPYING MDEVD_INSTALL_STAGING = YES MDEVD_DEPENDENCIES = skalibs MDEVD_CONF_OPTS = \ --prefix=/ \ --with-sysdeps=$(STAGING_DIR)/lib/skalibs/sysdeps \ --with-include=$(STAGING_DIR)/include \ --with-dynlib=$(STAGING_DIR)/lib \ --with-lib=$(STAGING_DIR)/lib/skalibs \ $(if $(BR2_STATIC_LIBS),,--disable-allstatic) \ $(SHARED_STATIC_LIBS_OPTS) define MDEVD_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(MDEVD_CONF_OPTS)) endef define MDEVD_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define MDEVD_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef define MDEVD_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/mediastreamer/0001-src-videofilters-nowebcam.c-fix-build-without-ffmpeg.patch ================================================ From 342f59f1603f759b6dd90754f8dba14d08947f55 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 27 Feb 2020 16:18:35 +0100 Subject: [PATCH] src/videofilters/nowebcam.c: fix build without ffmpeg or jpeg jpeg2yuv is only defined if ffmpeg or turbojpeg is available Signed-off-by: Fabrice Fontaine --- CMakeLists.txt | 3 +++ src/videofilters/nowebcam.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0efc1a5f..6668db2b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -336,7 +336,10 @@ if(ENABLE_JPEG) if(NOT TURBOJPEG_FOUND) message(WARNING "Could not find libturbo-jpeg, mediastreamer2 will be compiled without LibJpeg-Turbo") set(ENABLE_JPEG OFF CACHE BOOL "Enable JPEG support" FORCE) + add_definitions(-DNO_JPEG) endif() +else() + add_definitions(-DNO_JPEG) endif() if(ENABLE_QRCODE) find_package(Zxing) diff --git a/src/videofilters/nowebcam.c b/src/videofilters/nowebcam.c index a2344dcd..afb0d7b1 100644 --- a/src/videofilters/nowebcam.c +++ b/src/videofilters/nowebcam.c @@ -107,7 +107,9 @@ static mblk_t *_ms_load_jpeg_as_yuv(const char *jpgpath, MSVideoSize *reqsize) { if (err != st_sizel) { ms_error("Could not read as much as wanted !"); } +#if !(defined(NO_FFMPEG) && defined(NO_JPEG)) m = jpeg2yuv(jpgbuf, st_sizel, reqsize); +#endif ms_free(jpgbuf); if (m == NULL) { CloseHandle(fd); @@ -140,7 +142,9 @@ static mblk_t *_ms_load_jpeg_as_yuv(const char *jpgpath, MSVideoSize *reqsize) { if (err != statbuf.st_size) { ms_error("Could not read as much as wanted: %i<>%li !", err, (long)statbuf.st_size); } +#if !(defined(NO_FFMPEG) && defined(NO_JPEG)) m = jpeg2yuv(jpgbuf,statbuf.st_size,reqsize); +#endif ms_free(jpgbuf); if (m == NULL) { close(fd); -- 2.25.0 ================================================ FILE: package/mediastreamer/0002-Use-AV_INPUT_BUFFER_PADDING_SIZE-to-determine-paddin.patch ================================================ From 84b1919124884232e0fa30b30458470db27c73fc Mon Sep 17 00:00:00 2001 From: James Cowgill Date: Sat, 18 Aug 2018 12:56:38 +0200 Subject: [PATCH] Use AV_INPUT_BUFFER_PADDING_SIZE to determine padding size Hardcoding the value for FF_INPUT_BUFFER_PADDING_SIZE is not safe because upstream FFmpeg might change it (as they did in FFmpeg 4.0). Instead, use FFmpeg's AV_INPUT_BUFFER_PADDING_SIZE if available and only hardcode a value if FFmpeg is disabled (in which case the value doesn't particularly matter anyway). For compatibility with older FFmpeg versions, define AV_INPUT_BUFFER_PADDING_SIZE if hasn't been defined yet. Downloaded from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901735 Signed-off-by: Bernd Kuhls [Fabrice: updated for 4.3.1] Signed-off-by: Fabrice Fontaine --- src/utils/ffmpeg-priv.h | 4 ++++ src/videofilters/nowebcam.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/utils/ffmpeg-priv.h b/src/utils/ffmpeg-priv.h index c0745a9a..d59ea0e1 100644 --- a/src/utils/ffmpeg-priv.h +++ b/src/utils/ffmpeg-priv.h @@ -102,6 +102,10 @@ static inline int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture, #endif #endif +#ifndef AV_INPUT_BUFFER_PADDING_SIZE +#define AV_INPUT_BUFFER_PADDING_SIZE FF_INPUT_BUFFER_PADDING_SIZE +#endif + #ifndef HAVE_FUN_avcodec_encode_video2 int avcodec_encode_video2 (AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr); #endif -- 2.18.0 ================================================ FILE: package/mediastreamer/Config.in ================================================ config BR2_PACKAGE_MEDIASTREAMER bool "mediastreamer" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS # ortp depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # ortp depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++14 select BR2_PACKAGE_MBEDTLS select BR2_PACKAGE_ORTP help Mediastreamer is a powerful and lightweighted streaming engine specialized for voice/video telephony applications. It is the library that is responsible for all the receiving and sending of multimedia streams in linphone, including voice/video capture, encoding and decoding, and rendering. http://www.linphone.org/technical-corner/mediastreamer2 comment "mediastreamer needs a toolchain w/ threads, C++, dynamic library, gcc >= 5" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 comment "mediastreamer needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/mediastreamer/mediastreamer.hash ================================================ # Locally calculated sha256 64bdfe9dd6bfa64b492b21a45ad4bb36d67626a7f3b3ab2084a708864f129e84 mediastreamer-4.4.8.tar.gz sha256 1b3782ccad7b8614100cda30d3faf42fc39f2e97932908c543005053b654ca68 LICENSE.txt ================================================ FILE: package/mediastreamer/mediastreamer.mk ================================================ ################################################################################ # # mediastreamer # ################################################################################ MEDIASTREAMER_VERSION = 4.4.8 MEDIASTREAMER_SITE = \ https://gitlab.linphone.org/BC/public/mediastreamer2/-/archive/$(MEDIASTREAMER_VERSION) MEDIASTREAMER_LICENSE = GPL-3.0+ MEDIASTREAMER_LICENSE_FILES = LICENSE.txt MEDIASTREAMER_INSTALL_STAGING = YES MEDIASTREAMER_DEPENDENCIES = ortp MEDIASTREAMER_CONF_OPTS = \ -DENABLE_DOC=OFF \ -DENABLE_GL=OFF \ -DENABLE_GLX=OFF \ -DENABLE_MKV=OFF \ -DENABLE_SOUND=OFF \ -DENABLE_STRICT=OFF \ -DENABLE_TOOLS=OFF \ -DENABLE_UNIT_TESTS=OFF \ -DENABLE_ZRTP=OFF ifeq ($(BR2_PACKAGE_ALSA_LIB_MIXER)$(BR2_PACKAGE_ALSA_LIB_PCM),yy) MEDIASTREAMER_CONF_OPTS += \ -DENABLE_ALSA=ON \ -DENABLE_SOUND=ON MEDIASTREAMER_DEPENDENCIES += alsa-lib else MEDIASTREAMER_CONF_OPTS += -DENABLE_ALSA=OFF endif ifeq ($(BR2_PACKAGE_BCG729),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_G729=ON MEDIASTREAMER_DEPENDENCIES += bcg729 else MEDIASTREAMER_CONF_OPTS += -DENABLE_G729=OFF endif ifeq ($(BR2_PACKAGE_JPEG_TURBO),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_JPEG=ON MEDIASTREAMER_DEPENDENCIES += jpeg else MEDIASTREAMER_CONF_OPTS += -DENABLE_JPEG=OFF endif ifeq ($(BR2_PACKAGE_LIBGSM),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_GSM=ON MEDIASTREAMER_DEPENDENCIES += libgsm else MEDIASTREAMER_CONF_OPTS += -DENABLE_GSM=OFF endif ifeq ($(BR2_PACKAGE_LIBPCAP),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_PCAP=ON MEDIASTREAMER_DEPENDENCIES += libpcap else MEDIASTREAMER_CONF_OPTS += -DENABLE_PCAP=OFF endif ifeq ($(BR2_PACKAGE_LIBSRTP),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_SRTP=ON MEDIASTREAMER_DEPENDENCIES += libsrtp else MEDIASTREAMER_CONF_OPTS += -DENABLE_SRTP=OFF endif ifeq ($(BR2_PACKAGE_LIBVPX),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_VPX=ON MEDIASTREAMER_DEPENDENCIES += libvpx else MEDIASTREAMER_CONF_OPTS += -DENABLE_VPX=OFF endif ifeq ($(BR2_PACKAGE_OPUS),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_OPUS=ON MEDIASTREAMER_DEPENDENCIES += opus else MEDIASTREAMER_CONF_OPTS += -DENABLE_OPUS=OFF endif # portaudio backend needs speexdsp as well ifeq ($(BR2_PACKAGE_PORTAUDIO)$(BR2_PACKAGE_SPEEXDSP),yy) MEDIASTREAMER_CONF_OPTS += \ -DENABLE_PORTAUDIO=ON \ -DENABLE_SOUND=ON MEDIASTREAMER_DEPENDENCIES += portaudio else MEDIASTREAMER_CONF_OPTS += -DENABLE_PORTAUDIO=OFF endif ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) MEDIASTREAMER_CONF_OPTS += \ -DENABLE_PULSEAUDIO=ON \ -DENABLE_SOUND=ON MEDIASTREAMER_DEPENDENCIES += pulseaudio else MEDIASTREAMER_CONF_OPTS += -DENABLE_PULSEAUDIO=OFF endif ifeq ($(BR2_PACKAGE_SPEEX),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_SPEEX_CODEC=ON MEDIASTREAMER_DEPENDENCIES += speex else MEDIASTREAMER_CONF_OPTS += -DENABLE_SPEEX_CODEC=OFF endif ifeq ($(BR2_PACKAGE_SPEEXDSP),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_SPEEX_DSP=ON MEDIASTREAMER_DEPENDENCIES += speexdsp else MEDIASTREAMER_CONF_OPTS += -DENABLE_SPEEX_DSP=OFF endif ifeq ($(BR2_PACKAGE_SPEEX)$(BR2_PACKAGE_SPEEXDSP),yy) MEDIASTREAMER_CONF_OPTS += -DENABLE_RESAMPLE=ON else MEDIASTREAMER_CONF_OPTS += -DENABLE_RESAMPLE=OFF endif ifeq ($(BR2_PACKAGE_FFMPEG_SWSCALE),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_FFMPEG=ON MEDIASTREAMER_DEPENDENCIES += ffmpeg else MEDIASTREAMER_CONF_OPTS += -DENABLE_FFMPEG=OFF endif ifeq ($(BR2_PACKAGE_SDL),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_SDL=ON MEDIASTREAMER_DEPENDENCIES += sdl else MEDIASTREAMER_CONF_OPTS += -DENABLE_SDL=OFF endif ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_X11=ON MEDIASTREAMER_DEPENDENCIES += xlib_libX11 else MEDIASTREAMER_CONF_OPTS += -DENABLE_X11=OFF endif ifeq ($(BR2_PACKAGE_XLIB_LIBXV),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_XV=ON MEDIASTREAMER_DEPENDENCIES += xlib_libXv else MEDIASTREAMER_CONF_OPTS += -DENABLE_XV=OFF endif ifeq ($(BR2_PACKAGE_LIBTHEORA),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_THEORA=ON MEDIASTREAMER_DEPENDENCIES += libtheora else MEDIASTREAMER_CONF_OPTS += -DENABLE_THEORA=OFF endif ifeq ($(BR2_PACKAGE_LIBV4L),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_V4L=ON MEDIASTREAMER_DEPENDENCIES += libv4l else MEDIASTREAMER_CONF_OPTS += -DENABLE_V4L=OFF endif ifeq ($(BR2_PACKAGE_ZXING_CPP),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_QRCODE=ON MEDIASTREAMER_DEPENDENCIES += zxing-cpp else MEDIASTREAMER_CONF_OPTS += -DENABLE_QRCODE=OFF endif ifeq ($(BR2_STATIC_LIBS),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_SHARED=OFF -DENABLE_STATIC=ON else ifeq ($(BR2_SHARED_STATIC_LIBS),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_SHARED=ON -DENABLE_STATIC=ON else ifeq ($(BR2_SHARED_LIBS),y) MEDIASTREAMER_CONF_OPTS += -DENABLE_SHARED=ON -DENABLE_STATIC=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/memcached/Config.in ================================================ config BR2_PACKAGE_MEMCACHED bool "memcached" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBEVENT help Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering. http://www.memcached.org/ comment "memcached needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU ================================================ FILE: package/memcached/memcached.hash ================================================ # From http://www.memcached.org/files/memcached-1.6.9.tar.gz.sha1 sha1 42ae062094fdf083cfe7b21ff377c781011c2be1 memcached-1.6.9.tar.gz # Locally computed sha256 d5a62ce377314dbffdb37c4467e7763e3abae376a16171e613cbe69956f092d1 memcached-1.6.9.tar.gz sha256 bc887c4ad8051fe690ace9528fe37a2e0bb362e6d963331d82e845ca9b585a0c COPYING ================================================ FILE: package/memcached/memcached.mk ================================================ ################################################################################ # # memcached # ################################################################################ MEMCACHED_VERSION = 1.6.9 MEMCACHED_SITE = http://www.memcached.org/files MEMCACHED_DEPENDENCIES = libevent MEMCACHED_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' MEMCACHED_CONF_OPTS = --disable-coverage MEMCACHED_LICENSE = BSD-3-Clause MEMCACHED_LICENSE_FILES = COPYING MEMCACHED_CPE_ID_VENDOR = memcached MEMCACHED_SELINUX_MODULES = memcached ifeq ($(BR2_ENDIAN),"BIG") MEMCACHED_CONF_ENV += ac_cv_c_endian=big else MEMCACHED_CONF_ENV += ac_cv_c_endian=little endif $(eval $(autotools-package)) ================================================ FILE: package/memstat/0001-PATH_MAX.patch ================================================ Add missing #include for PATH_MAX Signed-off-by: Maarten ter Huurne --- memstat-0.8.org/memstat.c 2009-06-08 14:38:05.000000000 +0200 +++ memstat-0.8/memstat.c 2014-09-12 03:55:43.096035374 +0200 @@ -19,6 +19,7 @@ #include #include #include +#include /* blacklist devices that just map physical memory */ char *blacklist[] = { "/dev/mem", ================================================ FILE: package/memstat/Config.in ================================================ config BR2_PACKAGE_MEMSTAT bool "memstat" help Memstat lists all the processes, executables, and shared libraries that are using up virtual memory. It's helpful to see how the shared memory is used and which 'old' libs are loaded. http://sourceforge.net/projects/memstattool ================================================ FILE: package/memstat/memstat.hash ================================================ # From http://sourceforge.net/projects/memstattool/files/ sha1 26071dbc30a2796c0503c7d8060a548ca36f8df9 memstat_1.0.tar.gz # Locally computed sha256 5e5db2a2fab637bbbc5d2400141fcb9f1b4b55540d025c2dc54378dc497cb524 debian/copyright ================================================ FILE: package/memstat/memstat.mk ================================================ ################################################################################ # # memstat # ################################################################################ MEMSTAT_VERSION = 1.0 MEMSTAT_SITE = http://downloads.sourceforge.net/project/memstattool MEMSTAT_SOURCE = memstat_$(MEMSTAT_VERSION).tar.gz MEMSTAT_LICENSE = GPL MEMSTAT_LICENSE_FILES = debian/copyright define MEMSTAT_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" CFLAGS="$(TARGET_CFLAGS)" \ -C $(@D) memstat endef define MEMSTAT_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/memstat.conf -m 0644 \ $(TARGET_DIR)/etc/memstat.conf $(INSTALL) -D $(@D)/memstat $(TARGET_DIR)/usr/bin/memstat endef $(eval $(generic-package)) ================================================ FILE: package/memtest86/Config.in ================================================ config BR2_PACKAGE_MEMTEST86 bool "memtest86" depends on BR2_i386 || BR2_x86_64 help Memtest86+ is a bootable standalone memory test program. Buildroot does not support packages with a '+' sign in their name, which explains why it is named memtest86 and not memtest86+. Memtest86+ is a utility designed to test whether your memory is in working order. It repeatedly writes an enormous amount of different patterns to all memory locations and reads them back again and verifies whether the result of the read is the same as what was written to memory. Memtest86+ will only work on 32-bit or 64-bit x86 targets. It boots as an i486 program and autodetects hardware. It can be added to the grub2 boot menu by adding the following lines to the bottom of /boot/grub/grub.cfg - note the use of linux16. menuentry "Memtest86+" { linux16 /boot/memtest86+.bin } Other boot loaders will have similar requirements. http://www.memtest.org ================================================ FILE: package/memtest86/memtest86.hash ================================================ # locally computed using sha256sum sha256 142127b7953fbd829b1057fb64a78d3340c2b771484230a7347e94530a0d9039 memtest86+-5.01.tar.gz sha256 2e15e2174b86640d7fbfcb62b51d9182062d9db71d66a46e5b01d736c68150ea README ================================================ FILE: package/memtest86/memtest86.mk ================================================ ################################################################################ # # memtest86 # ################################################################################ MEMTEST86_VERSION = 5.01 MEMTEST86_SOURCE = memtest86+-$(MEMTEST86_VERSION).tar.gz MEMTEST86_SITE = http://www.memtest.org/download/$(MEMTEST86_VERSION) MEMTEST86_LICENSE = GPL-2.0 MEMTEST86_LICENSE_FILES = README # memtest86+ is sensitive to toolchain changes, use the shipped binary version define MEMTEST86_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/precomp.bin $(TARGET_DIR)/boot/memtest86+.bin endef $(eval $(generic-package)) ================================================ FILE: package/memtester/Config.in ================================================ config BR2_PACKAGE_MEMTESTER bool "memtester" help A userspace utility for testing the memory subsystem for faults. http://pyropus.ca/software/memtester/ ================================================ FILE: package/memtester/memtester.hash ================================================ # Locally computed sha256 8ed52b0d06d4aeb61954994146e2a5b2d20448a8f3ce3ee995120e6dbde2ae37 memtester-4.5.0.tar.gz sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING ================================================ FILE: package/memtester/memtester.mk ================================================ ################################################################################ # # memtester # ################################################################################ MEMTESTER_VERSION = 4.5.0 MEMTESTER_SITE = http://pyropus.ca/software/memtester/old-versions MEMTESTER_LICENSE = GPL-2.0 MEMTESTER_LICENSE_FILES = COPYING MEMTESTER_CPE_ID_VENDOR = pryopus MEMTESTER_TARGET_INSTALL_OPTS = INSTALLPATH=$(TARGET_DIR)/usr define MEMTESTER_BUILD_CMDS $(SED) "s%^cc%$(TARGET_CC) $(TARGET_CFLAGS)%" $(@D)/conf-cc $(SED) "s%^cc%$(TARGET_CC) $(TARGET_LDFLAGS)%" $(@D)/conf-ld $(MAKE) -C $(@D) endef define MEMTESTER_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(MEMTESTER_TARGET_INSTALL_OPTS) -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/memtool/Config.in ================================================ config BR2_PACKAGE_MEMTOOL bool "memtool" help Development tool to modify memory mapped registers. memtool allows one to read and write memory mapped registers via /dev/mem. The commands are inspired by the respective commands of the barebox bootloader. This is handy during driver development to inspect and modify register settings. It can also be used to modify regular files and character devices (e.g. to paint to /dev/fb0). http://www.pengutronix.de/software/memtool/index_en.html ================================================ FILE: package/memtool/memtool.hash ================================================ # Locally computed: sha256 87cb7175266ff3a00a9c1f541c4c6c93693ffbe8dcc0d97a60d13c45ff860900 memtool-2018.03.0.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/memtool/memtool.mk ================================================ ################################################################################ # # memtool # ################################################################################ MEMTOOL_VERSION = 2018.03.0 MEMTOOL_SITE = http://public.pengutronix.de/software/memtool MEMTOOL_SOURCE = memtool-$(MEMTOOL_VERSION).tar.xz MEMTOOL_LICENSE = GPL-2.0 MEMTOOL_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/mender/Config.in ================================================ config BR2_PACKAGE_MENDER bool "mender" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160 if BR2_PACKAGE_LIBOPENSSL help Mender is an open source over-the-air (OTA) software updater for embedded Linux devices. Mender comprises a client running at the embedded device, as well as a server that manages deployments across many devices. Notes: For systems using uboot as the bootloader: - uboot must have the mender uboot patches applied. - uboot-tools must be selected. - fw_printenv must be functional on the device. The Mender Uboot patches are at: https://github.com/mendersoftware/meta-mender/ For more information on Manual U-Boot integration, see: https://docs.mender.io/2.6/system-updates-yocto-project/board-integration/bootloader-support/u-boot/manual-u-boot-integration For systems using Grub2 as the bootloader: - Mender depends on the mender-grubenv package. - The mender-grubenv package provides a fw_printenv script, which is not compatible with the uboot-tools fw_printenv script. The mender project recommends using uboot to load Grub2 as a secondary bootloader whenever possible. Using Grub2 as a secondary bootloader prevents users from porting the patches for uboot to each new device. https://github.com/mendersoftware/mender comment "mender needs a toolchain w/ threads" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/mender/S42mender ================================================ #!/bin/sh # # Starts mender service. # start() { # If /var/lib/mender is a symlink to /var/run/mender, and # - the filesystem is RO (i.e. we can not rm the symlink), # create the directory pointed to by the symlink. # - the filesystem is RW (i.e. we can rm the symlink), # replace the symlink with an actual directory if [ -L /var/lib/mender \ -a "$(readlink /var/lib/mender)" = "/var/run/mender" ] then if rm -f /var/lib/mender >/dev/null 2>&1; then mkdir -p /var/lib/mender else echo "No persistent location to store mender data. Data will be lost" echo "at reboot. Are you sure this is what you want to do?" mkdir -p "$(readlink /var/lib/mender)" fi fi printf "Starting mender service: " umask 077 start-stop-daemon -S -q -b -m -p /var/run/mender.pid \ --exec /usr/bin/mender -- -daemon [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping mender service: " start-stop-daemon -K -q -p /var/run/mender.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 $? ================================================ FILE: package/mender/artifact_info ================================================ artifact_name=BUILDROOT_ARTIFACT ================================================ FILE: package/mender/device_type ================================================ device_type=BUILDROOT_DEVICE ================================================ FILE: package/mender/mender-client.service ================================================ [Unit] Description=Mender OTA update service After=systemd-resolved.service [Service] Type=idle User=root Group=root ExecStartPre=/bin/sh -c '\ if [ -L /var/lib/mender \ -a "$(readlink /var/lib/mender)" = "/var/run/mender" ]; then \ if rm -f /var/lib/mender >/dev/null 2>&1; then \ mkdir -p /var/lib/mender; \ else \ echo "No persistent location to store mender data. Data will be lost" \ echo "at reboot. Are you sure this is what you want to do?"; \ mkdir -p "$(readlink /var/lib/mender)"; \ fi; \ fi' ExecStart=/usr/bin/mender -daemon Restart=on-abort [Install] WantedBy=multi-user.target ================================================ FILE: package/mender/mender.conf ================================================ { "InventoryPollIntervalSeconds": 1800, "UpdatePollIntervalSeconds": 1800, "RetryPollIntervalSeconds": 300, "RootfsPartA": "/dev/mmcblk0p2", "RootfsPartB": "/dev/mmcblk0p3", "ServerCertificate": "/etc/mender/server.crt", "ServerURL": "https://docker.mender.io", "TenantToken": "dummy" } ================================================ FILE: package/mender/mender.hash ================================================ # Locally computed: sha256 716ba7110dd68cdafc5caa989706ff67bbac0617c284d666aa81605850be5763 3.1.0.tar.gz # Vendor licenses # Generated with sed '/^[A-Za-z0-9_]/s/^/sha256 /' LIC_FILES_CHKSUM.sha256 # Apache-2.0 license. sha256 b4acfcfa2a0ba1a8c82ec3965fbcee886cff8394ca4214e0ddac0a36beb1e05a LICENSE sha256 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99 vendor/github.com/mendersoftware/mender-artifact/LICENSE sha256 73ba74dfaa520b49a401b5d21459a8523a146f3b7518a833eea5efa85130bf68 vendor/github.com/mendersoftware/openssl/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/github.com/minio/sha256-simd/LICENSE sha256 8f5d89b47d7a05a199b77b7e0f362dad391d451ebda4ef48ba11c50c071564c7 vendor/github.com/mendersoftware/progressbar/LICENSE # # BSD 2 Clause license. sha256 8d427fd87bc9579ea368fde3d49f9ca22eac857f91a9dec7e3004bdfab7dee86 vendor/github.com/pkg/errors/LICENSE sha256 e4646a82a976369d7ae8f6ed5c11d35dc0af18433a8ccc24c85b459ad8b95128 vendor/github.com/godbus/dbus/LICENSE # # BSD 3 Clause license. sha256 16f848582e4b276a7392cd34496b7a33d6f65c0e190c163ff3a056a7c61219ce vendor/github.com/klauspost/compress/LICENSE sha256 2eb550be6801c1ea434feba53bf6d12e7c71c90253e0a9de4a4f46cf88b56477 vendor/github.com/pmezard/go-difflib/LICENSE sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 vendor/golang.org/x/crypto/LICENSE sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 vendor/golang.org/x/sys/LICENSE sha256 0634b008cee55ca01f0888d2f5aba2d34e66c3f52c31a4e16a5d5d33d0c2a03e vendor/github.com/bmatsuo/lmdb-go/LICENSE.md sha256 87640bc4df2ceb1559f268a3db1ba859ab780f7ba5b1b4545173d4680a3d918b vendor/github.com/remyoudompheng/go-liblzma/LICENSE # # ISC license. sha256 1b93a317849ee09d3d7e4f1d20c2b78ddb230b4becb12d7c224c927b9d470251 vendor/github.com/davecgh/go-spew/LICENSE # # MIT license. sha256 6d2de1cde19c4d2bd8bcd9aaa1d581f4cfa3db9cf71896140330eaa2f2687685 vendor/github.com/klauspost/pgzip/LICENSE sha256 51a0c9ec7f8b7634181b8d4c03e5b5d204ac21d6e72f46c313973424664b2e6b vendor/github.com/sirupsen/logrus/LICENSE sha256 f8e536c1c7b695810427095dc85f5f80d44ff7c10535e8a9486cf393e2599189 vendor/github.com/stretchr/testify/LICENSE sha256 ffa15bdce332058a03a1d923910864fb6e58bf6df66a0e3914284725b327183e vendor/github.com/ungerik/go-sysfs/LICENSE sha256 da277af11b85227490377fbcac6afccc68be560c4fff36ac05ca62de55345fd7 vendor/github.com/urfave/cli/v2/LICENSE sha256 b2663894033a05fd80261176cd8da1d72546e25842d5c1abcc852ca23b6b61b0 vendor/github.com/stretchr/objx/LICENSE sha256 95b8ef9c4137a8f75ddd3101ffdc4cfd594fa875b261697b68baddc16b0e537c vendor/github.com/konsorten/go-windows-terminal-sequences/LICENSE sha256 d18f6323b71b0b768bb5e9616e36da390fbd39369a81807cca352de4e4e6aa0b vendor/gopkg.in/yaml.v3/LICENSE sha256 08eab1118c80885fa1fa6a6dd7303f65a379fcb3733e063d20d1bbc2c76e6fa1 vendor/github.com/mattn/go-isatty/LICENSE # # OpenLDAP Public License sha256 310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569 vendor/github.com/bmatsuo/lmdb-go/LICENSE.mdb.md # sha256 of all the vendor licenses combined sha256 4f3541ea69b9b6e3959679576c146b42ba9a840a9dc4e593bff43e5e3a313d24 LIC_FILES_CHKSUM.sha256 ================================================ FILE: package/mender/mender.mk ================================================ ################################################################################ # # mender # ################################################################################ MENDER_VERSION = 3.1.0 MENDER_SITE = https://github.com/mendersoftware/mender/archive MENDER_SOURCE = $(MENDER_VERSION).tar.gz MENDER_LICENSE = Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MIT, OLDAP-2.8 # Vendor license paths generated with: # awk '{print $2}' LIC_FILES_CHKSUM.sha256 | grep vendor MENDER_LICENSE_FILES = \ LICENSE \ LIC_FILES_CHKSUM.sha256 \ vendor/github.com/mendersoftware/mender-artifact/LICENSE \ vendor/github.com/mendersoftware/openssl/LICENSE \ vendor/github.com/minio/sha256-simd/LICENSE \ vendor/github.com/mendersoftware/progressbar/LICENSE \ vendor/github.com/pkg/errors/LICENSE \ vendor/github.com/godbus/dbus/LICENSE \ vendor/github.com/klauspost/compress/LICENSE \ vendor/github.com/pmezard/go-difflib/LICENSE \ vendor/golang.org/x/crypto/LICENSE \ vendor/golang.org/x/sys/LICENSE \ vendor/github.com/bmatsuo/lmdb-go/LICENSE.md \ vendor/github.com/remyoudompheng/go-liblzma/LICENSE \ vendor/github.com/davecgh/go-spew/LICENSE \ vendor/github.com/klauspost/pgzip/LICENSE \ vendor/github.com/sirupsen/logrus/LICENSE \ vendor/github.com/stretchr/testify/LICENSE \ vendor/github.com/ungerik/go-sysfs/LICENSE \ vendor/github.com/urfave/cli/v2/LICENSE \ vendor/github.com/stretchr/objx/LICENSE \ vendor/github.com/konsorten/go-windows-terminal-sequences/LICENSE \ vendor/gopkg.in/yaml.v3/LICENSE \ vendor/github.com/mattn/go-isatty/LICENSE \ vendor/github.com/bmatsuo/lmdb-go/LICENSE.mdb.md MENDER_DEPENDENCIES = host-pkgconf openssl MENDER_LDFLAGS = -X github.com/mendersoftware/mender/conf.Version=$(MENDER_VERSION) MENDER_UPDATE_MODULES_FILES = \ directory \ script \ single-file \ $(if $(BR2_PACKAGE_DOCKER_CLI),docker) \ $(if $(BR2_PACKAGE_RPM),rpm) define MENDER_INSTALL_CONFIG_FILES $(INSTALL) -d -m 755 $(TARGET_DIR)/etc/mender/scripts echo -n "3" > $(TARGET_DIR)/etc/mender/scripts/version $(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/mender.conf \ $(TARGET_DIR)/etc/mender/mender.conf $(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/server.crt \ $(TARGET_DIR)/etc/mender/server.crt $(INSTALL) -D -m 0755 $(@D)/support/mender-device-identity \ $(TARGET_DIR)/usr/share/mender/identity/mender-device-identity $(foreach f,hostinfo network os rootfs-type, \ $(INSTALL) -D -m 0755 $(@D)/support/mender-inventory-$(f) \ $(TARGET_DIR)/usr/share/mender/inventory/mender-inventory-$(f) ) $(INSTALL) -D -m 0755 $(MENDER_PKGDIR)/artifact_info \ $(TARGET_DIR)/etc/mender/artifact_info $(INSTALL) -D -m 0755 $(MENDER_PKGDIR)/device_type \ $(TARGET_DIR)/etc/mender/device_type mkdir -p $(TARGET_DIR)/var/lib ln -snf /var/run/mender $(TARGET_DIR)/var/lib/mender $(foreach f,$(MENDER_UPDATE_MODULES_FILES), \ $(INSTALL) -D -m 0755 $(@D)/support/modules/$(notdir $(f)) \ $(TARGET_DIR)/usr/share/mender/modules/v3/$(notdir $(f)) ) endef MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_CONFIG_FILES ifeq ($(BR2_PACKAGE_XZ),y) MENDER_DEPENDENCIES += xz else MENDER_TAGS += nolzma endif ifeq ($(BR2_PACKAGE_DBUS)$(BR2_PACKAGE_LIBGLIB2),yy) MENDER_DEPENDENCIES += libglib2 define MENDER_INSTALL_DBUS_AUTHENTICATION_MANAGER_CONF $(INSTALL) -D -m 0755 $(@D)/support/dbus/io.mender.AuthenticationManager.conf \ $(TARGET_DIR)/etc/dbus-1/system.d/io.mender.AuthenticationManager.conf $(INSTALL) -D -m 0755 $(@D)/support/dbus/io.mender.UpdateManager.conf \ $(TARGET_DIR)/etc/dbus-1/system.d/io.mender.UpdateManager.conf endef MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_DBUS_AUTHENTICATION_MANAGER_CONF else MENDER_TAGS += nodbus endif define MENDER_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/mender-client.service \ $(TARGET_DIR)/usr/lib/systemd/system/mender-client.service endef define MENDER_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 $(MENDER_PKGDIR)/S42mender \ $(TARGET_DIR)/etc/init.d/S42mender endef $(eval $(golang-package)) ================================================ FILE: package/mender/readme.txt ================================================ === Notes on using Mender on Buildroot ====================================== Mender is an open source over-the-air (OTA) software updater for embedded Linux devices. Mender comprises a client running at the embedded device, as well as a server that manages deployments across many devices. There is also various tooling around the Mender project, such as 'mender-artifact' which is used to create Mender Artifacts that are compatible with the Mender client and server. Mender aims to address this challenge with a robust and easy to use updater for embedded Linux devices, which is open source and available to anyone. Robustness is ensured with atomic image-based deployments using a dual A/B rootfs partition layout. This makes it always possible to roll back to a working state, even when losing power at any time during the update process. The official documentation is a good resource to get an in depth understanding of how Mender works: https://docs.mender.io In Buildroot the following packages are provided: - BR2_PACKAGE_MENDER - This will install the client on target rootfs - BR2_PACKAGE_HOST_MENDER_ARTIFACT - This will install the 'mender-artifact' tool in host rootfs. To fully utilize atomic image-based deployments using the A/B update strategy, additional integration is required in the bootloader. This integration is board specific. Currently supported bootloaders are GRUB and U-boot, and for reference integrations please visit: https://github.com/mendersoftware/buildroot-mender Default configurations files ---------------------------- Buildroot comes with a default configuration and there a couple of files that need your attention: - /etc/mender/mender.conf - main configuration file for the Mender client - https://docs.mender.io/client-configuration/configuration-file/configuration-options - /etc/mender/artifact_info - The name of the image or update that will be built. This is what the device will report that it is running, and different updates must have different names - /var/lib/mender/device_type - A string that defines the type of device Mender server configuration --------------------------- The Mender server can be setup in different ways, and how you configure the Mender client differs slightly depending on which server environment is used. - Mender demo environment This is if you have followed the Getting started documentation where you launch a Mender server locally and to configure your environment to connect to this local server you need to provide the IP address of the server on the local network. By default the demo environment will connect to 'docker.mender.io' and 's3.docker.mender.io' and we need to make sure that these are resolved to the local IP address of the running server by adding the following entry to '/etc/hosts' docker.mender.io s3.docker.mender.io This is required because the communication between client and server is utilizing TLS and the provided demo server certificate (server.crt) is only valid for 'docker.mender.io' and 's3.docker.mender.io' domains. - Hosted Mender To authenticate the Mender client with the Hosted Mender server you need a tenant token. To get your tenant token: - log in to https://hosted.mender.io - click your email at the top right and then “My organization” - press the “COPY TO CLIPBOARD” - assign content of clipboard to TenantToken Example mender.conf options for Hosted Mender: { ... "ServerURL": "https://hosted.mender.io", "TenantToken": "" ... } Creating Mender Artifacts ------------------------- To create Mender Artifacts based on Buildroot build output you must include BR2_PACKAGE_HOST_MENDER_ARTIFACT in your configuration, and then you would typically create the Mender Artifact in a post image script (BR2_ROOTFS_POST_IMAGE_SCRIPT). Below is an example of such a script: #!/bin/sh set -e set -x device_type=$(cat ${TARGET_DIR}/var/lib/mender/device_type | sed 's/[^=]*=//') artifact_name=$(cat ${TARGET_DIR}/etc/mender/artifact_info | sed 's/[^=]*=//') if [ -z "${device_type}" ] || [ -z "${artifact_name}" ]; then echo "missing files required by Mender" exit 1 fi ${HOST_DIR}/usr/bin/mender-artifact write rootfs-image \ --update ${BINARIES_DIR}/rootfs.ext4 \ --output-path ${BINARIES_DIR}/${artifact_name}.mender \ --artifact-name ${artifact_name} \ --device-type ${device_type} As you can see some properties are extracted from target rootfs, and this is because these values are used for compatibility checks, meaning that the information must be present in both rootfs and in Mender Artifact meta data. - device_type - must be an exact match between rootfs and Mender Artifact meta-data to apply update. You can set an array of devices here as well, e.g if your image is compatible with multiple hardware revisions - artifact_name - must be an exact match between rootfs and Mender Artifact meta-data to apply update. Configuring Mender with certificates ------------------------------------ Mender uses TLS to communicate with the management server, and if you use a CA-signed certificate on the server, you must include BR2_PACKAGE_CA_CERTIFICATES in your configuration to authenticate TLS connections. ================================================ FILE: package/mender/server.crt ================================================ -----BEGIN CERTIFICATE----- MIIBfTCCASOgAwIBAgIJAJOS76a0qWuZMAoGCCqGSM49BAMCMBsxGTAXBgNVBAMM EGRvY2tlci5tZW5kZXIuaW8wHhcNMTYxMjE0MTk1MjQ2WhcNMjYxMjEyMTk1MjQ2 WjAbMRkwFwYDVQQDDBBkb2NrZXIubWVuZGVyLmlvMFkwEwYHKoZIzj0CAQYIKoZI zj0DAQcDQgAE7AVYis6MWGPGQYU1/tlLEnskRifDIhvkRb8Y4nQPekRkLkiBYYT3 iJ46wHrnejbHaLstU9GRdKWOmOuU6HGdO6NQME4wHQYDVR0OBBYEFGOIU4q++Vz8 9HuT1jg9V+wFeJcyMB8GA1UdIwQYMBaAFGOIU4q++Vz89HuT1jg9V+wFeJcyMAwG A1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIhAPLnEeWPNeN7eDCEYRitBfyO X1yf2kzOm4ohBE5GY9gzAiBCq7HOSkzQDkelmQCCCpGXf/UwYNgQJjSoeGfk0j1a TQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIBhDCCASmgAwIBAgIJALQrf4QDot4IMAoGCCqGSM49BAMCMB4xHDAaBgNVBAMM E3MzLmRvY2tlci5tZW5kZXIuaW8wHhcNMTYxMjE0MTk1MjQ2WhcNMjYxMjEyMTk1 MjQ2WjAeMRwwGgYDVQQDDBNzMy5kb2NrZXIubWVuZGVyLmlvMFkwEwYHKoZIzj0C AQYIKoZIzj0DAQcDQgAEEc/Y3T+l3DvINePkpvVZORMIdHVs29jgsl48ia7z/NRX HlKtKxVGJyFN5Y7sBZeLgBYH3F4Bo3KfmxI7ad0tI6NQME4wHQYDVR0OBBYEFIUm cip00QZYpe4ULflbGNJan+Y9MB8GA1UdIwQYMBaAFIUmcip00QZYpe4ULflbGNJa n+Y9MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSQAwRgIhANHij9VZBDHOUPaC pFiagnWnYL2HBR72W1xTKQbrLLTXAiEAvpwA4HzSnGmLd3010+jqQuMRHArN5WaX h0fy7niBbIQ= -----END CERTIFICATE----- ================================================ FILE: package/mender-artifact/Config.in.host ================================================ config BR2_PACKAGE_HOST_MENDER_ARTIFACT bool "host mender-artifact" depends on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS help The mender-artifact tool is a CLI implementation of the Mender artifacts library. A Mender artifact can be recognized by its .mender suffix. Mender artifacts can contain binaries, metadata, checksums, signatures and scripts that are used during a deployment. The artifact format acts as a wrapper, and uses the tar format to bundle several files into one. In its simplest form, an artifact contains just a rootfs image, along with its checksum, id and device type compatibility. https://github.com/mendersoftware/mender-artifact ================================================ FILE: package/mender-artifact/mender-artifact.hash ================================================ # Locally computed: sha256 c46c305616cf53e65b786862addf04d97c388e451f11478886967b494c4ce5d9 mender-artifact-3.6.1.tar.gz sha256 ac23df36801aea6a28685b60a742f68f99d357e0d9973d5c36aa2e72599d8e2a LIC_FILES_CHKSUM.sha256 # License hash extracted from LIC_FILES_CHKSUM.sha256 using the # following command: # # sed '/^[A-Za-z0-9_]/s/^/sha256 /' LIC_FILES_CHKSUM.sha256 # Apache 2.0 licenses. sha256 b4acfcfa2a0ba1a8c82ec3965fbcee886cff8394ca4214e0ddac0a36beb1e05a LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/github.com/minio/sha256-simd/LICENSE sha256 8f5d89b47d7a05a199b77b7e0f362dad391d451ebda4ef48ba11c50c071564c7 vendor/github.com/mendersoftware/progressbar/LICENSE # # BSD 2 Clause licenses. sha256 8d427fd87bc9579ea368fde3d49f9ca22eac857f91a9dec7e3004bdfab7dee86 vendor/github.com/pkg/errors/LICENSE # # BSD 3 Clause licenses. sha256 2eb550be6801c1ea434feba53bf6d12e7c71c90253e0a9de4a4f46cf88b56477 vendor/github.com/pmezard/go-difflib/LICENSE sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 vendor/golang.org/x/sys/LICENSE sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 vendor/golang.org/x/crypto/LICENSE sha256 a284e538f3e5649ae6a8f32da2bbd18e9daabf2c1ebbfb99ed92e797b159be1a vendor/github.com/remyoudompheng/go-liblzma/LICENSE sha256 16f848582e4b276a7392cd34496b7a33d6f65c0e190c163ff3a056a7c61219ce vendor/github.com/klauspost/compress/LICENSE sha256 75e1ca97a84a9da6051dee0114333388216f2c4a5a028296b882ff3d57274735 vendor/github.com/russross/blackfriday/v2/LICENSE.txt # # ISC licenses. sha256 1b93a317849ee09d3d7e4f1d20c2b78ddb230b4becb12d7c224c927b9d470251 vendor/github.com/davecgh/go-spew/LICENSE # # MIT licenses. sha256 f8e536c1c7b695810427095dc85f5f80d44ff7c10535e8a9486cf393e2599189 vendor/github.com/stretchr/testify/LICENSE sha256 da277af11b85227490377fbcac6afccc68be560c4fff36ac05ca62de55345fd7 vendor/github.com/urfave/cli/LICENSE sha256 51a0c9ec7f8b7634181b8d4c03e5b5d204ac21d6e72f46c313973424664b2e6b vendor/github.com/sirupsen/logrus/LICENSE sha256 6d2de1cde19c4d2bd8bcd9aaa1d581f4cfa3db9cf71896140330eaa2f2687685 vendor/github.com/klauspost/pgzip/LICENSE sha256 a55959c4e3e8917bfa857359bb641115336276a6cc97408fd8197e079fb18470 vendor/github.com/cpuguy83/go-md2man/v2/LICENSE.md sha256 c8024e31c1de453fea90f22a221968835cc7af9d520274a2576c9ec9976055b0 vendor/github.com/shurcooL/sanitized_anchor_name/LICENSE sha256 d18f6323b71b0b768bb5e9616e36da390fbd39369a81807cca352de4e4e6aa0b vendor/gopkg.in/yaml.v3/LICENSE sha256 08eab1118c80885fa1fa6a6dd7303f65a379fcb3733e063d20d1bbc2c76e6fa1 vendor/github.com/mattn/go-isatty/LICENSE ================================================ FILE: package/mender-artifact/mender-artifact.mk ================================================ ################################################################################ # # host-mender-artifact # ################################################################################ HOST_MENDER_ARTIFACT_VERSION = 3.6.1 HOST_MENDER_ARTIFACT_SITE = $(call github,mendersoftware,mender-artifact,$(HOST_MENDER_ARTIFACT_VERSION)) HOST_MENDER_ARTIFACT_LICENSE = Apache2.0, BSD-2-Clause, BSD-3-Clause, ISC, MIT HOST_MENDER_ARTIFACT_LICENSE_FILES = \ LICENSE \ LIC_FILES_CHKSUM.sha256 \ vendor/github.com/minio/sha256-simd/LICENSE \ vendor/github.com/mendersoftware/progressbar/LICENSE \ vendor/github.com/pkg/errors/LICENSE \ vendor/github.com/pmezard/go-difflib/LICENSE \ vendor/golang.org/x/sys/LICENSE \ vendor/golang.org/x/crypto/LICENSE \ vendor/github.com/remyoudompheng/go-liblzma/LICENSE \ vendor/github.com/klauspost/compress/LICENSE \ vendor/github.com/russross/blackfriday/v2/LICENSE.txt \ vendor/github.com/davecgh/go-spew/LICENSE \ vendor/github.com/stretchr/testify/LICENSE \ vendor/github.com/urfave/cli/LICENSE \ vendor/github.com/sirupsen/logrus/LICENSE \ vendor/github.com/klauspost/pgzip/LICENSE \ vendor/github.com/cpuguy83/go-md2man/v2/LICENSE.md \ vendor/github.com/shurcooL/sanitized_anchor_name/LICENSE \ vendor/gopkg.in/yaml.v3/LICENSE \ vendor/github.com/mattn/go-isatty/LICENSE HOST_MENDER_ARTIFACT_DEPENDENCIES = host-xz # By default, go will attempt to download needed modules before building, which # is not desirable. This behavior also causes permission issues when cleaning, # as go downloads modules as read-only by default. Because mender-artifact # includes the modules in the vendor directory, mod=vendor prevents the package # from downloading the go modules during the build process and prevents # permission issues when cleaning. HOST_MENDER_ARTIFACT_GO_ENV = GOFLAGS="-mod=vendor" HOST_MENDER_ARTIFACT_LDFLAGS = -X github.com/mendersoftware/mender-artifact/cli.Version=$(HOST_MENDER_ARTIFACT_VERSION) HOST_MENDER_ARTIFACT_BIN_NAME = mender-artifact HOST_MENDER_ARTIFACT_INSTALL_BINS = $(HOST_MENDER_ARTIFACT_BIN_NAME) $(eval $(host-golang-package)) ================================================ FILE: package/mender-grubenv/Config.in ================================================ config BR2_PACKAGE_MENDER_GRUBENV bool "mender-grubenv" depends on BR2_TARGET_GRUB2_ARCH_SUPPORTS depends on BR2_PACKAGE_MENDER # runtime depends on BR2_TARGET_GRUB2 depends on !(BR2_TARGET_GRUB2_HAS_LEGACY_BOOT && BR2_TARGET_GRUB2_HAS_EFI_BOOT) help Contains the boot scripts and tools used by Mender to integrate with the GRUB bootloader. The following Grub modules must be selected for this package: loadenv hashsum echo halt gcry_sha256 test regexp https://github.com/mendersoftware/grub-mender-grubenv if BR2_PACKAGE_MENDER_GRUBENV config BR2_PACKAGE_MENDER_GRUBENV_DEFINES string "path to grubenv defines" help Specify a path to the mender grubenv defines file. If no path is specified, the example file in the source directory will be used. The example file in the source directory sets the following: mender_rootfsa_part=2 mender_rootfsb_part=3 mender_kernel_root_base=/dev/mmcblk0p mender_grub_storage_device=hd0 kernel_imagetype=bzImage endif comment "mender-grubenv needs a grub2 bootloader" depends on BR2_TARGET_GRUB2_ARCH_SUPPORTS depends on BR2_PACKAGE_MENDER depends on !BR2_TARGET_GRUB2 comment "mender-grubenv does not support both legacy and EFI grub2 bootloaders at the same time" depends on BR2_PACKAGE_MENDER depends on BR2_TARGET_GRUB2_HAS_LEGACY_BOOT && BR2_TARGET_GRUB2_HAS_EFI_BOOT ================================================ FILE: package/mender-grubenv/mender-grubenv.hash ================================================ # Locally computed sha256 00a574d2bed8d54ba6739700da789a420a02de900df56dd2cfbe0df460a98dca mender-grubenv-1a7db967495bbe8be53b7a69dcb42822f39d9a74.tar.gz sha256 b4acfcfa2a0ba1a8c82ec3965fbcee886cff8394ca4214e0ddac0a36beb1e05a LICENSE ================================================ FILE: package/mender-grubenv/mender-grubenv.mk ================================================ ################################################################################ # # mender-grubenv # ################################################################################ MENDER_GRUBENV_VERSION = 1a7db967495bbe8be53b7a69dcb42822f39d9a74 MENDER_GRUBENV_SITE = $(call github,mendersoftware,grub-mender-grubenv,$(MENDER_GRUBENV_VERSION)) MENDER_GRUBENV_LICENSE = Apache-2.0 MENDER_GRUBENV_LICENSE_FILES = LICENSE # Grub2 must be built first so this package can overwrite the config files # provided by grub. MENDER_GRUBENV_DEPENDENCIES = grub2 MENDER_GRUBENV_INSTALL_IMAGES = YES MENDER_GRUBENV_MAKE_ENV = \ $(TARGET_CONFIGURE_OPTS) \ $(TARGET_MAKE_ENV) MENDER_GRUBENV_DEFINES = \ $(or $(call qstrip,$(BR2_PACKAGE_MENDER_GRUBENV_DEFINES)),\ $(@D)/mender_grubenv_defines.example) # These grub modules must be built in for the grub scripts to work properly. # Without them, the system will not boot. MENDER_GRUBENV_MANDATORY_MODULES = loadenv hashsum echo halt gcry_sha256 test regexp ifeq ($(BR2_TARGET_GRUB2_HAS_LEGACY_BOOT),y) MENDER_GRUBENV_MODULES_MISSING_PC = \ $(filter-out $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_MODULES_PC)),\ $(MENDER_GRUBENV_MANDATORY_MODULES)) MENDER_GRUBENV_MAKE_ENV += ENV_DIR=/boot/grub define MENDER_GRUBENV_INSTALL_I386_CFG mkdir -p $(BINARIES_DIR)/boot-part/grub cp -dpfr $(TARGET_DIR)/boot/grub/grub.cfg \ $(TARGET_DIR)/boot/grub/mender_grubenv* \ $(BINARIES_DIR)/boot-part/grub endef endif # BR2_TARGET_GRUB2_HAS_LEGACY_BOOT ifeq ($(BR2_TARGET_GRUB2_HAS_EFI_BOOT),y) MENDER_GRUBENV_MODULES_MISSING_EFI = \ $(filter-out $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI)),\ $(MENDER_GRUBENV_MANDATORY_MODULES)) MENDER_GRUBENV_MAKE_ENV += ENV_DIR=/boot/EFI/BOOT define MENDER_GRUBENV_INSTALL_EFI_CFG mkdir -p $(BINARIES_DIR)/efi-part/EFI/BOOT cp -dpfr $(TARGET_DIR)/boot/EFI/BOOT/grub.cfg \ $(TARGET_DIR)/boot/EFI/BOOT/mender_grubenv* \ $(BINARIES_DIR)/efi-part/EFI/BOOT endef endif # BR2_TARGET_GRUB2_HAS_EFI_BOOT ifeq ($(BR2_PACKAGE_MENDER_GRUBENV)$(BR_BUILDING),yy) ifneq ($(MENDER_GRUBENV_MODULES_MISSING_EFI),) $(error The following missing grub2 efi modules must be enabled for mender-grubenv \ to work: $(MENDER_GRUBENV_MODULES_MISSING_EFI)) endif ifneq ($(MENDER_GRUBENV_MODULES_MISSING_PC),) $(error The following missing grub2 pc modules must be enabled for mender-grubenv \ to work: $(MENDER_GRUBENV_MODULES_MISSING_PC)) endif endif define MENDER_GRUBENV_CONFIGURE_CMDS $(INSTALL) -m 0644 $(MENDER_GRUBENV_DEFINES) $(@D)/mender_grubenv_defines endef define MENDER_GRUBENV_BUILD_CMDS $(MENDER_GRUBENV_MAKE_ENV) $(MAKE) -C $(@D) endef define MENDER_GRUBENV_INSTALL_TARGET_CMDS $(MENDER_GRUBENV_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) install endef define MENDER_GRUBENV_INSTALL_IMAGES_CMDS $(MENDER_GRUBENV_INSTALL_I386_CFG) $(MENDER_GRUBENV_INSTALL_EFI_CFG) endef $(eval $(generic-package)) ================================================ FILE: package/menu-cache/0001-Support-gcc10-compilation.patch ================================================ From 1ce739649b4d66339a03fc0ec9ee7a2f7c141780 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Fri, 24 Jan 2020 13:33:00 +0900 Subject: [PATCH] Support gcc10 compilation gcc10 now defaults to -fno-common, and with gcc10 menu-cache compilation fails like /bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:167: multiple definition of `DirDirs'; main.o:menu-cache-gen/menu-tags.h:167: first defined here /bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:164: multiple definition of `AppDirs'; main.o:menu-cache-gen/menu-tags.h:164: first defined here /bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:52: multiple definition of `menuTag_Layout'; main.o:menu-cache-gen/menu-tags.h:52: first defined here .... This patch fixes compilation with gcc10: properly declaring variables in header with "extern", and also removing some unneeded variables in header files. [Retrieved from: https://github.com/lxde/menu-cache/pull/19/commits/1ce739649b4d66339a03fc0ec9ee7a2f7c141780] Signed-off-by: Fabrice Fontaine --- menu-cache-gen/menu-tags.h | 55 ++++++++++++-------------------------- 1 file changed, 17 insertions(+), 38 deletions(-) diff --git a/menu-cache-gen/menu-tags.h b/menu-cache-gen/menu-tags.h index f3fd7d3..f71c0bc 100644 --- a/menu-cache-gen/menu-tags.h +++ b/menu-cache-gen/menu-tags.h @@ -22,38 +22,17 @@ #include #include -FmXmlFileTag menuTag_Menu; -FmXmlFileTag menuTag_AppDir; -FmXmlFileTag menuTag_DefaultAppDirs; -FmXmlFileTag menuTag_DirectoryDir; -FmXmlFileTag menuTag_DefaultDirectoryDirs; -FmXmlFileTag menuTag_Include; -FmXmlFileTag menuTag_Exclude; -FmXmlFileTag menuTag_Filename; -FmXmlFileTag menuTag_Or; -FmXmlFileTag menuTag_And; -FmXmlFileTag menuTag_Not; -FmXmlFileTag menuTag_Category; -FmXmlFileTag menuTag_MergeFile; -FmXmlFileTag menuTag_MergeDir; -FmXmlFileTag menuTag_DefaultMergeDirs; -FmXmlFileTag menuTag_Directory; -FmXmlFileTag menuTag_Name; -FmXmlFileTag menuTag_Deleted; -FmXmlFileTag menuTag_NotDeleted; -FmXmlFileTag menuTag_OnlyUnallocated; -FmXmlFileTag menuTag_NotOnlyUnallocated; -FmXmlFileTag menuTag_All; -FmXmlFileTag menuTag_LegacyDir; -FmXmlFileTag menuTag_KDELegacyDirs; -FmXmlFileTag menuTag_Move; -FmXmlFileTag menuTag_Old; -FmXmlFileTag menuTag_New; -FmXmlFileTag menuTag_Layout; -FmXmlFileTag menuTag_DefaultLayout; -FmXmlFileTag menuTag_Menuname; -FmXmlFileTag menuTag_Separator; -FmXmlFileTag menuTag_Merge; +extern FmXmlFileTag menuTag_AppDir; +extern FmXmlFileTag menuTag_DirectoryDir; +extern FmXmlFileTag menuTag_Include; +extern FmXmlFileTag menuTag_Exclude; +extern FmXmlFileTag menuTag_Filename; +extern FmXmlFileTag menuTag_Or; +extern FmXmlFileTag menuTag_And; +extern FmXmlFileTag menuTag_Not; +extern FmXmlFileTag menuTag_Category; +extern FmXmlFileTag menuTag_All; +extern FmXmlFileTag menuTag_LegacyDir; typedef enum { MERGE_NONE, /* starting value */ @@ -152,19 +131,19 @@ typedef struct { } MenuRule; /* requested language(s) */ -char **languages; +extern char **languages; /* list of menu files to monitor */ -GSList *MenuFiles; +extern GSList *MenuFiles; /* list of menu dirs to monitor */ -GSList *MenuDirs; +extern GSList *MenuDirs; /* list of available app dirs */ -GSList *AppDirs; +extern GSList *AppDirs; /* list of available dir dirs */ -GSList *DirDirs; +extern GSList *DirDirs; /* parse and merge menu files */ MenuMenu *get_merged_menu(const char *file, FmXmlFile **xmlfile, GError **error); @@ -177,7 +156,7 @@ gboolean save_menu_cache(MenuMenu *layout, const char *menuname, const char *fil void _free_layout_items(GList *data); /* verbosity level */ -gint verbose; +extern gint verbose; #define DBG if (verbose) g_debug #define VDBG if (verbose > 1) g_debug ================================================ FILE: package/menu-cache/Config.in ================================================ config BR2_PACKAGE_MENU_CACHE bool "menu-cache" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBFM_EXTRA help Small library from LXDE project used for application menu integration http://wiki.lxde.org/ comment "menu-cache needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/menu-cache/menu-cache.hash ================================================ # From https://sourceforge.net/projects/lxde/files/menu-cache/1.1/ md5 99999a0bca48b980105208760c8fd893 menu-cache-1.1.0.tar.xz sha1 01e6035aa1fe76d7047bdec235254aa5ce17394a menu-cache-1.1.0.tar.xz # Hash for license file: sha256 7459fbad62653e4061dbfde3b0cad7c72777838beb10d2d11d969fac6226e7de COPYING ================================================ FILE: package/menu-cache/menu-cache.mk ================================================ ################################################################################ # # menu-cache # ################################################################################ MENU_CACHE_VERSION_MAJOR = 1.1 MENU_CACHE_VERSION = $(MENU_CACHE_VERSION_MAJOR).0 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 MENU_CACHE_LICENSE = LGPL-2.1 MENU_CACHE_LICENSE_FILES = COPYING MENU_CACHE_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/mesa3d/0001-c99_math-import-isinf-for-uclibc-based-toolchains.patch ================================================ From 705490763fcc052defa2d49a5c5200775cd12c54 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Wed, 4 Mar 2020 08:27:24 +0100 Subject: [PATCH] c99_math: import isinf for uclibc based toolchains The same fix as for glibc >= 2.23 is needed for uclibc based toolchains. [Upstream suggested: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4042] Signed-off-by: Peter Seiderer --- include/c99_math.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/c99_math.h b/include/c99_math.h index e906c26aa54..c8a73a2d2c7 100644 --- a/include/c99_math.h +++ b/include/c99_math.h @@ -190,7 +190,7 @@ fpclassify(double x) * undefines those functions, which in glibc 2.23, are defined as macros rather * than functions as in glibc 2.22. */ -#if __cplusplus >= 201103L && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 23)) +#if __cplusplus >= 201103L && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 23) || defined(__UCLIBC__)) #include using std::fpclassify; -- 2.25.1 ================================================ FILE: package/mesa3d/0002-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.patch ================================================ From 7b46756a99aca7f27a45c3b99460f088570f6f53 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Wed, 17 Apr 2019 23:07:42 +0200 Subject: [PATCH] meson: Set proper value for LIBCLC_INCLUDEDIR LIBCLC_INCLUDEDIR is the location where mesa3d OpenCL implementation will look for OpenCL "headers" on the target, when building the OpenCL kernels. The value returned by pkg-config for includedir is relevant when cross-compiling, on the build machine. But in this specific case, we really need a value that is valid on the target. Those headers are installed by the libclc package in /usr/share so that they are not removed by Buildroot target-finalize logic. Based on the patch for autotools provided by Valentin Korenblit. Signed-off-by: Romain Naour Signed-off-by: Bernd Kuhls [rebased for 20.2.0 & 20.3.0] --- src/gallium/frontends/clover/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/frontends/clover/meson.build b/src/gallium/frontends/clover/meson.build index 62ac5f5278d..ecdeb39669c 100644 --- a/src/gallium/frontends/clover/meson.build +++ b/src/gallium/frontends/clover/meson.build @@ -27,7 +27,7 @@ '-DCL_USE_DEPRECATED_OPENCL_2_0_APIS', '-DCL_USE_DEPRECATED_OPENCL_2_1_APIS', '-DCL_USE_DEPRECATED_OPENCL_2_2_APIS', - '-DLIBCLC_INCLUDEDIR="@0@/"'.format(dep_clc.get_variable(pkgconfig : 'includedir')), + '-DLIBCLC_INCLUDEDIR="/usr/share"', '-DLIBCLC_LIBEXECDIR="@0@/"'.format(dep_clc.get_variable(pkgconfig : 'libexecdir')) ] clover_spirv_cpp_args = [] -- 2.20.1 ================================================ FILE: package/mesa3d/0003-vc4-add-meson-option-to-disable-optional-neon-suppor.patch ================================================ From e3b47c1b84964c62b3e1fa782f1ffa4be0ae62f9 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Mon, 9 Mar 2020 13:01:14 +0100 Subject: [PATCH] vc4: add meson option to disable optional neon support Not all toolchains are able to compile the runtime optional vc4 neon support, so add an meson option to force disabling it at compile time. [Upstream: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4114] Signed-off-by: Peter Seiderer Signed-off-by: Bernd Kuhls [rebased for 20.2.0, 20.3.0 & 21.1.0] --- meson_options.txt | 7 +++++++ src/gallium/drivers/vc4/meson.build | 4 ++-- src/gallium/drivers/vc4/vc4_tiling.h | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/meson_options.txt b/meson_options.txt index a39596a6f19..0f6b6c62b55 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -123,6 +123,13 @@ option( choices : ['auto', 'true', 'false', 'enabled', 'disabled'], description : 'enable gallium va frontend.', ) +option( + 'gallium-vc4-neon', + type : 'combo', + value : 'auto', + choices : ['auto', 'disabled'], + description : 'enable gallium vc4 optional neon support.', +) option( 'va-libs-path', type : 'string', diff --git a/src/gallium/drivers/vc4/meson.build b/src/gallium/drivers/vc4/meson.build index 5ce5af5f6b4..e3f7d8d62ae 100644 --- a/src/gallium/drivers/vc4/meson.build +++ b/src/gallium/drivers/vc4/meson.build @@ -84,7 +84,7 @@ files_libvc4 = files( vc4_c_args = [] libvc4_neon = [] -if host_machine.cpu_family() == 'arm' +if host_machine.cpu_family() == 'arm' and get_option('gallium-vc4-neon') != 'disabled' libvc4_neon = static_library( 'vc4_neon', 'vc4_tiling_lt_neon.c', @@ -93,7 +93,7 @@ if host_machine.cpu_family() == 'arm' ], c_args : '-mfpu=neon', ) - vc4_c_args += '-DUSE_ARM_ASM' + vc4_c_args += '-DVC4_TILING_LT_NEON' endif if dep_simpenrose.found() diff --git a/src/gallium/drivers/vc4/vc4_tiling.h b/src/gallium/drivers/vc4/vc4_tiling.h index 66767e7f1f8..7446f1c3d0c 100644 --- a/src/gallium/drivers/vc4/vc4_tiling.h +++ b/src/gallium/drivers/vc4/vc4_tiling.h @@ -89,7 +89,7 @@ vc4_load_lt_image(void *dst, uint32_t dst_stride, void *src, uint32_t src_stride, int cpp, const struct pipe_box *box) { -#ifdef USE_ARM_ASM +#ifdef VC4_TILING_LT_NEON if (util_get_cpu_caps()->has_neon) { vc4_load_lt_image_neon(dst, dst_stride, src, src_stride, cpp, box); @@ -105,7 +105,7 @@ vc4_store_lt_image(void *dst, uint32_t dst_stride, void *src, uint32_t src_stride, int cpp, const struct pipe_box *box) { -#ifdef USE_ARM_ASM +#ifdef VC4_TILING_LT_NEON if (util_get_cpu_caps()->has_neon) { vc4_store_lt_image_neon(dst, dst_stride, src, src_stride, cpp, box); -- 2.25.1 ================================================ FILE: package/mesa3d/0004-src-util-rand_xor-Include-stddef.h-to-fix-build-erro.patch ================================================ From fdc8b5a205e2116408aeb9fd305e57f656e2e89d Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sun, 9 Aug 2020 17:06:26 +0200 Subject: [PATCH] src/util/rand_xor: Include stddef.h to fix build error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes In file included from ../src/util/rand_xor.c:29: output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:35: error: unknown type name ‘size_t’ extern int getrandom(void *__buf, size_t count, unsigned int flags) seen with gcc version 8.3.0 (Buildroot 2020.02) and uClibc. Patch sent upstream: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6248 Signed-off-by: Bernd Kuhls --- src/util/rand_xor.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/util/rand_xor.c b/src/util/rand_xor.c index 81b64f1ea71..fcb481487fa 100644 --- a/src/util/rand_xor.c +++ b/src/util/rand_xor.c @@ -25,6 +25,7 @@ #include "detect_os.h" #if !DETECT_OS_WINDOWS +#include #if defined(HAVE_GETRANDOM) #include #endif -- 2.27.0 ================================================ FILE: package/mesa3d/0005-src-util-futex.h-fix-build-on-32-bit-architectures-u.patch ================================================ From e501b7c17ada9c694d3f8302622b78d733485b38 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 21 Aug 2021 17:55:33 +0200 Subject: [PATCH] src/util/futex.h: fix build on 32-bit architectures using 64-bit time_t Fix the following build failure on 32-bit architectures using 64-bit time_t (e.g. riscv32): ../src/util/futex.h: In function 'sys_futex': ../src/util/futex.h:39:19: error: 'SYS_futex' undeclared (first use in this function); did you mean 'sys_futex'? 39 | return syscall(SYS_futex, addr1, op, val1, timeout, addr2, val3); | ^~~~~~~~~ | sys_futex Fixes: - http://autobuild.buildroot.org/results/692700a5f967760a0b8cd358b1712f1d5a7b681e Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12496] --- src/util/futex.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/util/futex.h b/src/util/futex.h index 43097f4cd5b..221eda9db0c 100644 --- a/src/util/futex.h +++ b/src/util/futex.h @@ -34,6 +34,10 @@ #include #include +#ifndef SYS_futex +#define SYS_futex SYS_futex_time64 +#endif + static inline long sys_futex(void *addr1, int op, int val1, const struct timespec *timeout, void *addr2, int val3) { return syscall(SYS_futex, addr1, op, val1, timeout, addr2, val3); -- 2.32.0 ================================================ FILE: package/mesa3d/Config.in ================================================ 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 depends on !BR2_m68k || BR2_TOOLCHAIN_GCC_AT_LEAST_7 # m68k needs gcc >= 7.x select BR2_PACKAGE_EXPAT select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_WAYLAND_PROTOCOLS if BR2_PACKAGE_WAYLAND select BR2_PACKAGE_ZLIB help Mesa 3D, an open-source implementation of the OpenGL specification. http://mesa3d.org if BR2_PACKAGE_MESA3D # Some Gallium driver needs libelf when built with LLVM support config BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS bool config BR2_PACKAGE_MESA3D_LLVM bool "llvm support" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::shared_future depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR # std::wstring select BR2_PACKAGE_LLVM comment "llvm support needs a toolchain w/ wchar, threads, C++, gcc >= 4.8, dynamic library" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \ || BR2_STATIC_LIBS || !BR2_USE_WCHAR comment "llvm support needs a toolchain not affected by GCC bug 64735" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # clang and libclc dependencies are satisfied by # BR2_PACKAGE_MESA3D_LLVM config BR2_PACKAGE_MESA3D_OPENCL bool "OpenCL support" depends on BR2_PACKAGE_MESA3D_LLVM depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 || \ BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI select BR2_PACKAGE_LLVM_RTTI select BR2_PACKAGE_CLANG select BR2_PACKAGE_LIBCLC select BR2_PACKAGE_HAS_LIBOPENCL # inform the .mk file of gallium, dri or vulkan driver selection config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER bool select BR2_PACKAGE_MESA3D_DRIVER config BR2_PACKAGE_MESA3D_DRI_DRIVER bool select BR2_PACKAGE_MESA3D_DRIVER select BR2_PACKAGE_MESA3D_GBM if \ !BR2_PACKAGE_MESA3D_OPENGL_GLX && \ !BR2_PACKAGE_MESA3D_OPENGL_EGL select BR2_PACKAGE_XLIB_LIBXSHMFENCE if \ (BR2_PACKAGE_XORG7 && BR2_TOOLCHAIN_HAS_SYNC_4 && \ !BR2_RISCV_32) config BR2_PACKAGE_MESA3D_VULKAN_DRIVER bool select BR2_PACKAGE_MESA3D_DRIVER config BR2_PACKAGE_MESA3D_DRIVER bool # Gallium xa state tracker. # Quote from mesa3d meson.build: "XA state tracker requires at least # one of the following gallium drivers: nouveau, freedreno, i915, svga. config BR2_PACKAGE_MESA3D_NEEDS_XA bool # OpenGL GLX and Gallium VDPAU both needs X11 config BR2_PACKAGE_MESA3D_NEEDS_X11 bool depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_LIBXCB select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXDAMAGE select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXFIXES select BR2_PACKAGE_XLIB_LIBXRANDR select BR2_PACKAGE_XLIB_LIBXXF86VM select BR2_PACKAGE_XORGPROTO comment "Gallium drivers" config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV bool "Gallium Etnaviv driver" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_LIBDRM_ETNAVIV help Mesa driver for Vivante GPUs. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO bool "Gallium freedreno driver" depends on BR2_arm || BR2_aarch64 || BR2_aarch64_be # libdrm-freedreno # libdrm's freedreno option depends on LIBDRM_HAS_ATOMIC. Propagating # that dependency here causes a circular dependency that Kconfig # can't see is just spurious. However, that dependency is about # the toolchain having sync4 primitives, which is always a given # for arm/aarch64. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_LIBDRM_FREEDRENO help Mesa driver for Freedreno GPUs. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_I915 bool "Gallium i915 driver" depends on BR2_i386 || BR2_x86_64 depends on !BR2_PACKAGE_MESA3D_DRI_DRIVER_I915 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_LIBDRM_INTEL help Support for i915-based Intel GPUs. comment "Gallium i915: Only one i915 provider can be built" depends on BR2_i386 || BR2_x86_64 depends on BR2_PACKAGE_MESA3D_DRI_DRIVER_I915 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS bool "Gallium iris driver" depends on BR2_i386 || BR2_x86_64 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER help Mesa driver for iris-based Intel GPUs. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LIMA bool "Gallium lima driver" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER help Mesa driver for ARM Mali Utgard GPUs. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU bool "Gallium nouveau driver" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_LIBDRM_NOUVEAU select BR2_PACKAGE_MESA3D_NEEDS_XA select BR2_PACKAGE_LLVM_RTTI if BR2_PACKAGE_MESA3D_LLVM help Supports all Nvidia GPUs. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST bool "Gallium panfrost driver" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER help Mesa driver for ARM Mali Midgard and Bifrost GPUs. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300 bool "Gallium Radeon R300 driver" depends on BR2_i386 || BR2_x86_64 # lbdrm's radeon option depends on LIBDRM_HAS_ATOMIC. Propagating # that dependency here causes a circular dependency that Kconfig # can't see is just spurious. However, that dependency is about # the toolchain having sync4 primitives, which is always a given # for x86. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_LIBDRM_RADEON help Driver for ATI/AMD Radeon R300/R400/R500 GPUs. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 bool "Gallium Radeon R600 driver" depends on BR2_i386 || BR2_x86_64 depends on !BR2_PACKAGE_MESA3D_LLVM || \ (BR2_PACKAGE_MESA3D_LLVM && (BR2_TOOLCHAIN_USES_UCLIBC || \ BR2_TOOLCHAIN_USES_GLIBC)) # elfutils select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_LIBDRM_RADEON select BR2_PACKAGE_LLVM_AMDGPU if BR2_PACKAGE_MESA3D_LLVM select BR2_PACKAGE_ELFUTILS if BR2_PACKAGE_MESA3D_LLVM select BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS if BR2_PACKAGE_MESA3D_LLVM help Driver for ATI/AMD Radeon R600/R700/HD5000/HD6000 GPUs. # R600 needs libelf when Mesa3D is built with LLVM support # musl is not currently compatible with elfutils comment "R600 driver needs a uClibc or glibc toolchain when llvm is enabled" depends on BR2_PACKAGE_MESA3D_LLVM depends on !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI bool "Gallium Radeon SI driver" depends on BR2_USE_MMU # libdrm depends on BR2_i386 || BR2_x86_64 depends on BR2_PACKAGE_MESA3D_LLVM depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_LIBDRM_AMDGPU select BR2_PACKAGE_LIBDRM_RADEON select BR2_PACKAGE_LLVM_AMDGPU select BR2_PACKAGE_ELFUTILS select BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS help Driver for ATI/AMD Radeon HD7000/HD8000/Rx200 GPUs. # Radeon SI needs libelf # musl is not currently compatible with elfutils comment "Radeon SI driver needs a uClibc or glibc toolchain" depends on BR2_USE_MMU depends on BR2_PACKAGE_MESA3D_LLVM depends on !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA bool "Gallium vmware svga driver" depends on BR2_i386 || BR2_x86_64 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_LIBDRM_VMWGFX select BR2_PACKAGE_MESA3D_NEEDS_XA help This is a virtual GPU driver for VMWare virtual machines. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST bool "Gallium swrast driver" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER help This is a software opengl implementation using the Gallium3D infrastructure. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_TEGRA bool "Gallium tegra driver" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU select BR2_PACKAGE_LIBDRM_NOUVEAU select BR2_PACKAGE_MESA3D_NEEDS_XA help Adds support for Nvidia Tegra GPUs, requires nouveau. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D bool "Gallium v3d driver" depends on (BR2_arm && BR2_ARM_CPU_HAS_NEON) || BR2_aarch64 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_LIBDRM_VC4 select BR2_PACKAGE_MESA3D_OPENGL_EGL help Driver for Broadcom VC6 (rpi4) GPUs (needs vc4). It requires a kernel 4.18+ with DRM V3D support enabled: - CONFIG_DRM_V3D - CONFIG_DRM_VC4 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 bool "Gallium vc4 driver" depends on BR2_arm || BR2_aarch64 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_LIBDRM_VC4 select BR2_PACKAGE_MESA3D_OPENGL_EGL 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 select BR2_PACKAGE_MESA3D_OPENGL_EGL help virgl is the 3D acceleration backend for the virtio-gpu shipping with qemu. config BR2_PACKAGE_MESA3D_VDPAU bool "Gallium VDPAU state tracker" depends on BR2_PACKAGE_XORG7 depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300 \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI select BR2_PACKAGE_MESA3D_NEEDS_X11 select BR2_PACKAGE_LIBVDPAU help VDPAU state tracker (needs r300, r600, radeonsi or nouveau gallium drivers). comment "Gallium VDPAU state tracker needs X.org and gallium drivers r300, r600, radeonsi or nouveau" depends on !BR2_PACKAGE_XORG7 || \ !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300 \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI) config BR2_PACKAGE_MESA3D_XVMC bool "Gallium XvMC state tracker" depends on BR2_i386 || BR2_x86_64 depends on BR2_PACKAGE_XORG7 depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 select BR2_PACKAGE_MESA3D_NEEDS_X11 select BR2_PACKAGE_XLIB_LIBXV select BR2_PACKAGE_XLIB_LIBXVMC help XvMC state tracker (needs r600 or nouveau gallium drivers). comment "Gallium XvMC state tracker needs X.org and gallium drivers r600 or nouveau" depends on BR2_i386 || BR2_x86_64 depends on !BR2_PACKAGE_XORG7 || \ !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600) comment "DRI drivers" config BR2_PACKAGE_MESA3D_DRI_DRIVER_I915 bool "DRI i915 driver" depends on BR2_i386 || BR2_x86_64 select BR2_PACKAGE_MESA3D_DRI_DRIVER select BR2_PACKAGE_LIBDRM_INTEL help Support for i915-based Intel GPUs. config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965 bool "DRI i965 driver" depends on BR2_i386 || BR2_x86_64 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h select BR2_PACKAGE_MESA3D_DRI_DRIVER select BR2_PACKAGE_LIBDRM_INTEL help Support for i965-based Intel GPUs. comment "DRI i965 driver needs a toolchain w/ headers >= 3.17" depends on BR2_i386 || BR2_x86_64 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 config BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU bool "DRI nouveau driver" select BR2_PACKAGE_MESA3D_DRI_DRIVER select BR2_PACKAGE_LIBDRM_NOUVEAU help Support for Nvidia-based GPUs. config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON bool "DRI radeon r100 driver" depends on BR2_i386 || BR2_x86_64 # libdrm's radeon option depends on LIBDRM_HAS_ATOMIC. Propagating # that dependency here causes a circular dependency that Kconfig # can't see is just spurious. However, that dependency is about # the toolchain having sync4 primitives, which is always a given # for i386 and x86_64. select BR2_PACKAGE_MESA3D_DRI_DRIVER select BR2_PACKAGE_LIBDRM_RADEON help Legacy Radeon driver for R100 series GPUs. comment "Vulkan drivers" config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL bool "Vulkan Intel driver" depends on BR2_i386 || BR2_x86_64 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libxshmfence depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert depends on BR2_PACKAGE_XORG7 # xorgproto select BR2_PACKAGE_MESA3D_VULKAN_DRIVER select BR2_PACKAGE_XORGPROTO select BR2_PACKAGE_XLIB_LIBXSHMFENCE help Vulkan driver for Intel hardware from Ivy Bridge onward. comment "intel vulkan depends on X.org and needs a glibc toolchain w/ headers >= 3.17" depends on BR2_i386 || BR2_x86_64 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 || \ !BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_XORG7 comment "Off-screen Rendering" config BR2_PACKAGE_MESA3D_OSMESA_GALLIUM bool "OSMesa (Gallium) library" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST help The OSMesa API provides functions for off-screen rendering. if BR2_PACKAGE_MESA3D_DRIVER comment "OpenGL API Support" config BR2_PACKAGE_MESA3D_GBM bool "gbm" depends on BR2_PACKAGE_MESA3D_DRI_DRIVER \ || (BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL) select BR2_PACKAGE_HAS_LIBGBM select BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT select BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF help Enable Generic Buffer Management (gbm) comment "gbm support needs a dri driver or a gallium driver w/ EGL support." depends on !BR2_PACKAGE_MESA3D_DRI_DRIVER \ && !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL) config BR2_PACKAGE_MESA3D_OPENGL_GLX bool "OpenGL GLX" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_MESA3D_NEEDS_X11 help Enable GLX graphic acceleration (OpenGL + X11). comment "OpenGL GLX support needs X11" depends on !BR2_PACKAGE_XORG7 config BR2_PACKAGE_MESA3D_OPENGL_EGL bool "OpenGL EGL" select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBEGL_WAYLAND select BR2_PACKAGE_MESA3D_GBM help Use the Khronos EGL APIs. EGL is a window manager for OpenGL applications similar to GLX, for X, and WGL, for Windows. config BR2_PACKAGE_MESA3D_OPENGL_ES bool "OpenGL ES" select BR2_PACKAGE_HAS_LIBGLES help Use the Khronos OpenGL ES APIs. This is commonly used on embedded systems and represents a subset of the OpenGL API. endif # BR2_PACKAGE_MESA3D_DRIVER config BR2_PACKAGE_PROVIDES_LIBGBM default "mesa3d" if BR2_PACKAGE_MESA3D_GBM config BR2_PACKAGE_PROVIDES_LIBGL default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_GLX config BR2_PACKAGE_PROVIDES_LIBEGL default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL config BR2_PACKAGE_PROVIDES_LIBGLES default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_ES config BR2_PACKAGE_PROVIDES_LIBOPENCL default "mesa3d" if BR2_PACKAGE_MESA3D_OPENCL endif # BR2_PACKAGE_MESA3D comment "mesa3d needs a toolchain w/ C++, NPTL, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_SYNC_1 comment "mesa3d needs a toolchain w/ gcc >= 7" depends on BR2_m68k depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_7 ================================================ FILE: package/mesa3d/mesa3d.hash ================================================ # From https://lists.freedesktop.org/archives/mesa-announce/2021-September/000644.html sha256 5cd32f5d089dca75300578a3d771a656eaed652090573a2655fe4e7022d56bfc mesa-21.1.8.tar.xz sha512 80fcf2b1d59b49e384e9aa1ae63a3ce709833059af1ffd8eb821054c1976709134098cfc79fac1578a2f08a003223f1c96b38e2e650c5be49821c6f2fe1047af mesa-21.1.8.tar.xz # License sha256 998437f3f75f0c542046f83c1cb349408122268168fb13eb4ae6967aa18b7d98 docs/license.rst ================================================ FILE: package/mesa3d/mesa3d.mk ================================================ ################################################################################ # # mesa3d # ################################################################################ # When updating the version, please also update mesa3d-headers MESA3D_VERSION = 21.1.8 MESA3D_SOURCE = mesa-$(MESA3D_VERSION).tar.xz MESA3D_SITE = https://archive.mesa3d.org MESA3D_LICENSE = MIT, SGI, Khronos MESA3D_LICENSE_FILES = docs/license.rst MESA3D_CPE_ID_VENDOR = mesa3d MESA3D_CPE_ID_PRODUCT = mesa MESA3D_INSTALL_STAGING = YES MESA3D_PROVIDES = MESA3D_DEPENDENCIES = \ host-bison \ host-flex \ host-python-mako \ expat \ libdrm \ zlib MESA3D_CONF_OPTS = \ -Dgallium-omx=disabled \ -Dpower8=disabled # Codesourcery ARM 2014.05 fail to link libmesa_dri_drivers.so with --as-needed linker # flag due to a linker bug between binutils 2.24 and 2.25 (2.24.51.20140217). ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM),y) MESA3D_CONF_OPTS += -Db_asneeded=false endif ifeq ($(BR2_PACKAGE_MESA3D_LLVM),y) MESA3D_DEPENDENCIES += host-llvm llvm MESA3D_MESON_EXTRA_BINARIES += llvm-config='$(STAGING_DIR)/usr/bin/llvm-config' MESA3D_CONF_OPTS += -Dllvm=enabled else # Avoid automatic search of llvm-config MESA3D_CONF_OPTS += -Dllvm=disabled endif # Disable opencl-icd: OpenCL lib will be named libOpenCL instead of # libMesaOpenCL and CL headers are installed ifeq ($(BR2_PACKAGE_MESA3D_OPENCL),y) MESA3D_PROVIDES += libopencl MESA3D_DEPENDENCIES += clang libclc MESA3D_CONF_OPTS += -Dgallium-opencl=standalone else MESA3D_CONF_OPTS += -Dgallium-opencl=disabled endif ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS),y) MESA3D_DEPENDENCIES += elfutils endif ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_GLX),y) # Disable-mangling not yet supported by meson build system. # glx: # dri : dri based GLX requires at least one DRI driver || dri based GLX requires shared-glapi # xlib : xlib conflicts with any dri driver # gallium-xlib : Gallium-xlib based GLX requires at least one gallium driver || Gallium-xlib based GLX requires softpipe or llvmpipe || gallium-xlib conflicts with any dri driver. MESA3D_CONF_OPTS += -Dglx=dri ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_XA),y) MESA3D_CONF_OPTS += -Dgallium-xa=enabled else MESA3D_CONF_OPTS += -Dgallium-xa=disabled endif else MESA3D_CONF_OPTS += \ -Dglx=disabled \ -Dgallium-xa=disabled endif ifeq ($(BR2_ARM_CPU_HAS_NEON),y) MESA3D_CONF_OPTS += -Dgallium-vc4-neon=auto else MESA3D_CONF_OPTS += -Dgallium-vc4-neon=disabled endif # Drivers #Gallium Drivers MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV) += etnaviv MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO) += freedreno MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_I915) += i915 MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS) += iris MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LIMA) += lima MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU) += nouveau MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST) += panfrost MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300) += r300 MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600) += r600 MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI) += radeonsi 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_TEGRA) += tegra MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D) += v3d 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_I915) += i915 MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I965) += i965 MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU) += nouveau MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON) += r100 # Vulkan Drivers MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL) += intel ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER),) MESA3D_CONF_OPTS += \ -Dgallium-drivers= \ -Dgallium-extra-hud=false else MESA3D_CONF_OPTS += \ -Dshared-glapi=enabled \ -Dgallium-drivers=$(subst $(space),$(comma),$(MESA3D_GALLIUM_DRIVERS-y)) \ -Dgallium-extra-hud=true endif ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) MESA3D_CONF_OPTS += \ -Ddri-drivers= -Ddri3=disabled else ifeq ($(BR2_PACKAGE_XLIB_LIBXSHMFENCE),y) MESA3D_DEPENDENCIES += xlib_libxshmfence MESA3D_CONF_OPTS += -Ddri3=enabled else MESA3D_CONF_OPTS += -Ddri3=disabled endif MESA3D_CONF_OPTS += \ -Dshared-glapi=enabled \ -Dglx-direct=true \ -Ddri-drivers=$(subst $(space),$(comma),$(MESA3D_DRI_DRIVERS-y)) endif ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),) MESA3D_CONF_OPTS += \ -Dvulkan-drivers= else MESA3D_DEPENDENCIES += xlib_libxshmfence MESA3D_CONF_OPTS += \ -Ddri3=enabled \ -Dvulkan-drivers=$(subst $(space),$(comma),$(MESA3D_VULKAN_DRIVERS-y)) endif # APIs ifeq ($(BR2_PACKAGE_MESA3D_OSMESA_GALLIUM),y) MESA3D_CONF_OPTS += -Dosmesa=true else MESA3D_CONF_OPTS += -Dosmesa=false endif # Always enable OpenGL: # - Building OpenGL ES without OpenGL is not supported, so always keep opengl enabled. MESA3D_CONF_OPTS += -Dopengl=true # libva and mesa3d have a circular dependency # we do not need libva support in mesa3d, therefore disable this option MESA3D_CONF_OPTS += -Dgallium-va=disabled # libGL is only provided for a full xorg stack ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_GLX),y) MESA3D_PROVIDES += libgl else define MESA3D_REMOVE_OPENGL_HEADERS rm -rf $(STAGING_DIR)/usr/include/GL/ endef MESA3D_POST_INSTALL_STAGING_HOOKS += MESA3D_REMOVE_OPENGL_HEADERS endif ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_X11),y) MESA3D_DEPENDENCIES += \ xlib_libX11 \ xlib_libXext \ xlib_libXdamage \ xlib_libXfixes \ xlib_libXrandr \ xlib_libXxf86vm \ xorgproto \ libxcb MESA3D_PLATFORMS += x11 endif ifeq ($(BR2_PACKAGE_WAYLAND),y) MESA3D_DEPENDENCIES += wayland wayland-protocols MESA3D_PLATFORMS += wayland endif MESA3D_CONF_OPTS += \ -Dplatforms=$(subst $(space),$(comma),$(MESA3D_PLATFORMS)) ifeq ($(BR2_PACKAGE_MESA3D_GBM),y) MESA3D_CONF_OPTS += \ -Dgbm=enabled else MESA3D_CONF_OPTS += \ -Dgbm=disabled endif ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y) MESA3D_PROVIDES += libegl MESA3D_CONF_OPTS += \ -Degl=enabled else MESA3D_CONF_OPTS += \ -Degl=disabled endif ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_ES),y) MESA3D_PROVIDES += libgles MESA3D_CONF_OPTS += -Dgles1=enabled -Dgles2=enabled else MESA3D_CONF_OPTS += -Dgles1=disabled -Dgles2=disabled endif ifeq ($(BR2_PACKAGE_MESA3D_XVMC),y) MESA3D_DEPENDENCIES += xlib_libXv xlib_libXvMC MESA3D_CONF_OPTS += -Dgallium-xvmc=enabled else MESA3D_CONF_OPTS += -Dgallium-xvmc=disabled endif ifeq ($(BR2_PACKAGE_VALGRIND),y) MESA3D_CONF_OPTS += -Dvalgrind=enabled MESA3D_DEPENDENCIES += valgrind else MESA3D_CONF_OPTS += -Dvalgrind=disabled endif ifeq ($(BR2_PACKAGE_LIBUNWIND),y) MESA3D_CONF_OPTS += -Dlibunwind=enabled MESA3D_DEPENDENCIES += libunwind else MESA3D_CONF_OPTS += -Dlibunwind=disabled endif ifeq ($(BR2_PACKAGE_MESA3D_VDPAU),y) MESA3D_DEPENDENCIES += libvdpau MESA3D_CONF_OPTS += -Dgallium-vdpau=enabled else MESA3D_CONF_OPTS += -Dgallium-vdpau=disabled endif ifeq ($(BR2_PACKAGE_LM_SENSORS),y) MESA3D_CONF_OPTS += -Dlmsensors=enabled MESA3D_DEPENDENCIES += lm-sensors else MESA3D_CONF_OPTS += -Dlmsensors=disabled endif ifeq ($(BR2_PACKAGE_ZSTD),y) MESA3D_CONF_OPTS += -Dzstd=enabled MESA3D_DEPENDENCIES += zstd else MESA3D_CONF_OPTS += -Dzstd=disabled endif MESA3D_CFLAGS = $(TARGET_CFLAGS) # m68k needs 32-bit offsets in switch tables to build ifeq ($(BR2_m68k),y) MESA3D_CFLAGS += -mlong-jump-table-offsets endif $(eval $(meson-package)) ================================================ FILE: package/mesa3d-demos/0001-demos-makes-opengl-an-optional-component.patch ================================================ From bb0ffae7164d296d32da24fa5499534de259169a Mon Sep 17 00:00:00 2001 From: Spenser Gilliland Date: Sat, 24 Feb 2018 11:36:17 +0100 Subject: [PATCH] demos: makes opengl an optional component Signed-off-by: Spenser Gilliland [Romain: convert to git patch, rebase on 8.4.0] Signed-off-by: Romain Naour --- configure.ac | 12 +++++++++++- src/egl/opengl/Makefile.am | 2 ++ src/util/Makefile.am | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 0b5e9a76..24298c44 100644 --- a/configure.ac +++ b/configure.ac @@ -51,6 +51,14 @@ m4_ifndef([PKG_PROG_PKG_CONFIG], ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])]) PKG_PROG_PKG_CONFIG() +AC_ARG_ENABLE([gl], + [AS_HELP_STRING([--enable-gl], + [enable GL library @<:@default=no@:>@])], + [gl_enabled="$enableval"], + [gl_enabled=auto]) + +if test "x$gl_enabled" != "xno"; then + dnl Get the pkg-config definitions for libGL. We include a fallback dnl path for GL implementation that don't provide a .pc file PKG_CHECK_MODULES(GL, [gl], [], [ @@ -112,6 +120,8 @@ PKG_CHECK_MODULES(GLU, [glu], [], DEMO_CFLAGS="$DEMO_CFLAGS $GLU_CFLAGS" DEMO_LIBS="$DEMO_LIBS $GLU_LIBS" +fi + AC_ARG_ENABLE([egl], [AS_HELP_STRING([--enable-egl], [enable EGL library @<:@default=auto@:>@])], @@ -302,7 +312,7 @@ AC_SUBST([MESA_GLAPI]) AC_SUBST([WAYLAND_CFLAGS]) AC_SUBST([WAYLAND_LIBS]) - +AM_CONDITIONAL(HAVE_GL, test "x$gl_enabled" = "xyes") AM_CONDITIONAL(HAVE_EGL, test "x$egl_enabled" = "xyes") AM_CONDITIONAL(HAVE_GLESV1, test "x$glesv1_enabled" = "xyes") AM_CONDITIONAL(HAVE_GLESV2, test "x$glesv2_enabled" = "xyes") diff --git a/src/egl/opengl/Makefile.am b/src/egl/opengl/Makefile.am index 6d184ff6..219ab850 100644 --- a/src/egl/opengl/Makefile.am +++ b/src/egl/opengl/Makefile.am @@ -56,6 +56,7 @@ endif endif if HAVE_EGL +if HAVE_GL bin_PROGRAMS = \ eglinfo noinst_PROGRAMS = \ @@ -64,6 +65,7 @@ noinst_PROGRAMS = \ $(EGL_X11_DEMOS) \ $(EGL_WL_DEMOS) endif +endif egltri_x11_SOURCES = egltri.c eglgears_x11_SOURCES = eglgears.c diff --git a/src/util/Makefile.am b/src/util/Makefile.am index 759a293a..012b9c75 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -27,7 +27,9 @@ AM_CFLAGS = \ AM_LDFLAGS = \ $(DEMO_LIBS) +if HAVE_GL noinst_LTLIBRARIES = libutil.la +endif if HAVE_GLUT AM_CFLAGS += \ -- 2.14.3 ================================================ FILE: package/mesa3d-demos/Config.in ================================================ config BR2_PACKAGE_MESA3D_DEMOS bool "mesa3d-demos" depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES \ || BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBOPENVG select BR2_PACKAGE_LIBGLEW if BR2_PACKAGE_XORG7 && BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_XORG7 && BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 && BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7 && BR2_PACKAGE_HAS_LIBGL help OpenGL demos from the Mesa 3D project. http://mesa3d.org ================================================ FILE: package/mesa3d-demos/mesa3d-demos.hash ================================================ # From https://lists.freedesktop.org/archives/mesa-dev/2018-February/186542.html md5 6b65a02622765522176d00f553086fa3 mesa-demos-8.4.0.tar.bz2 sha1 57ba892e919fa22ce3db9f25e7331a6fa33c652c mesa-demos-8.4.0.tar.bz2 sha256 01e99c94a0184e63e796728af89bfac559795fb2a0d6f506fa900455ca5fff7d mesa-demos-8.4.0.tar.bz2 sha512 b72d03cad36e0535ff18dcfb222ec4200064b9264f6da51a6e5f03b0dd912abe188bc1d600b6698de3ce6f63b28d2ce01565886ca8e7079edc4967fbf2fb0957 mesa-demos-8.4.0.tar.bz2 ================================================ FILE: package/mesa3d-demos/mesa3d-demos.mk ================================================ ################################################################################ # # mesa3d-demos # ################################################################################ MESA3D_DEMOS_VERSION = 8.4.0 MESA3D_DEMOS_SOURCE = mesa-demos-$(MESA3D_DEMOS_VERSION).tar.bz2 MESA3D_DEMOS_SITE = ftp://ftp.freedesktop.org/pub/mesa/demos # 0001-demos-makes-opengl-an-optional-component.patch MESA3D_DEMOS_AUTORECONF = YES MESA3D_DEMOS_DEPENDENCIES = host-pkgconf MESA3D_DEMOS_LICENSE = MIT MESA3D_DEMOS_CONF_OPTS += \ --disable-gles1 ifeq ($(BR2_PACKAGE_XORG7)$(BR2_PACKAGE_HAS_LIBGL),yy) MESA3D_DEMOS_DEPENDENCIES += libgl libglew libglu xlib_libX11 xlib_libXext MESA3D_DEMOS_CONF_OPTS += --enable-gl --enable-x11 else MESA3D_DEMOS_CONF_OPTS += --disable-gl --disable-x11 endif ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y) MESA3D_DEMOS_DEPENDENCIES += libegl MESA3D_DEMOS_CONF_OPTS += --enable-egl else MESA3D_DEMOS_CONF_OPTS += --disable-egl endif ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y) MESA3D_DEMOS_DEPENDENCIES += libgles MESA3D_DEMOS_CONF_OPTS += --enable-gles2 else MESA3D_DEMOS_CONF_OPTS += --disable-gles2 endif ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y) MESA3D_DEMOS_DEPENDENCIES += libopenvg MESA3D_DEMOS_CONF_OPTS += --enable-vg else MESA3D_DEMOS_CONF_OPTS += --disable-vg endif ifeq ($(BR2_PACKAGE_MESA3D_GBM),y) MESA3D_DEMOS_DEPENDENCIES += mesa3d MESA3D_DEMOS_CONF_OPTS += --enable-gbm else MESA3D_DEMOS_CONF_OPTS += --disable-gbm endif ifeq ($(BR2_PACKAGE_FREETYPE),y) MESA3D_DEMOS_DEPENDENCIES += freetype MESA3D_DEMOS_CONF_OPTS += --enable-freetype2 else MESA3D_DEMOS_CONF_OPTS += --disable-freetype2 endif ifeq ($(BR2_PACKAGE_LIBFREEGLUT),y) MESA3D_DEMOS_DEPENDENCIES += libfreeglut MESA3D_DEMOS_CONF_OPTS += --with-glut=$(STAGING_DIR)/usr # osmesa support depends on glut ifeq ($(BR2_PACKAGE_MESA3D_OSMESA_GALLIUM),y) MESA3D_DEMOS_CONF_OPTS += --enable-osmesa else MESA3D_DEMOS_CONF_OPTS += --disable-osmesa endif else MESA3D_DEMOS_CONF_OPTS += --without-glut --disable-osmesa endif ifeq ($(BR2_PACKAGE_WAYLAND),y) MESA3D_DEMOS_DEPENDENCIES += wayland MESA3D_DEMOS_CONF_OPTS += --enable-wayland else MESA3D_DEMOS_CONF_OPTS += --disable-wayland endif $(eval $(autotools-package)) ================================================ FILE: package/mesa3d-headers/Config.in ================================================ config BR2_PACKAGE_MESA3D_HEADERS bool help Mesa 3D, an open-source implementation of the OpenGL specification. This package only installs headers needed by other packages. http://mesa3d.org ================================================ FILE: package/mesa3d-headers/dri.pc ================================================ prefix=/usr libdir=${prefix}/lib includedir=${prefix}/include dridriverdir=/usr/lib/dri Name: dri Description: Direct Rendering Infrastructure Version: @VERSION@ Cflags: -I${includedir} ================================================ FILE: package/mesa3d-headers/mesa3d-headers.mk ================================================ ################################################################################ # # mesa3d-headers # ################################################################################ # mesa3d-headers is inherently incompatible with mesa3d, so error out # if both are enabled. ifeq ($(BR2_PACKAGE_MESA3D)$(BR2_PACKAGE_MESA3D_HEADERS),yy) $(error mesa3d-headers enabled, but mesa3d enabled too) endif # Not possible to directly refer to mesa3d variables, because of # first/second expansion trickery... MESA3D_HEADERS_VERSION = 21.1.8 MESA3D_HEADERS_SOURCE = mesa-$(MESA3D_HEADERS_VERSION).tar.xz MESA3D_HEADERS_SITE = https://archive.mesa3d.org MESA3D_HEADERS_DL_SUBDIR = mesa3d MESA3D_HEADERS_LICENSE = MIT, SGI, Khronos MESA3D_HEADERS_LICENSE_FILES = docs/license.rst MESA3D_HEADERS_CPE_ID_VENDOR = mesa3d MESA3D_HEADERS_CPE_ID_PRODUCT = mesa # Only installs header files MESA3D_HEADERS_INSTALL_STAGING = YES MESA3D_HEADERS_INSTALL_TARGET = NO MESA3D_HEADERS_DIRS = KHR ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) MESA3D_HEADERS_DIRS += GL ifeq ($(BR2_PACKAGE_XORG7),y) # Not using $(SED) because we do not want to work in-place, and $(SED) # contains -i. define MESA3D_HEADERS_BUILD_DRI_PC sed -e 's:@VERSION@:$(MESA3D_HEADERS_VERSION):' \ package/mesa3d-headers/dri.pc \ >$(@D)/src/mesa/drivers/dri/dri.pc endef define MESA3D_HEADERS_INSTALL_DRI_PC $(INSTALL) -D -m 0644 $(@D)/include/GL/internal/dri_interface.h \ $(STAGING_DIR)/usr/include/GL/internal/dri_interface.h $(INSTALL) -D -m 0644 $(@D)/src/mesa/drivers/dri/dri.pc \ $(STAGING_DIR)/usr/lib/pkgconfig/dri.pc endef endif # Xorg endif # OpenGL ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y) MESA3D_HEADERS_DIRS += EGL endif ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y) MESA3D_HEADERS_DIRS += GLES GLES2 endif ifeq ($(BR2_PACKAGE_HAS_LIBOPENCL),y) MESA3D_HEADERS_DIRS += CL endif define MESA3D_HEADERS_BUILD_CMDS $(MESA3D_HEADERS_BUILD_DRI_PC) endef define MESA3D_HEADERS_INSTALL_STAGING_CMDS $(foreach d,$(MESA3D_HEADERS_DIRS),\ cp -dpfr $(@D)/include/$(d) $(STAGING_DIR)/usr/include/ || exit 1$(sep)) $(MESA3D_HEADERS_INSTALL_DRI_PC) endef $(eval $(generic-package)) ================================================ FILE: package/meson/0001-Prefer-ext-static-libs-when-default-library-static.patch ================================================ From c1359a49b61016031287d62f44a363cb76242c91 Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Sat, 26 Oct 2019 09:17:29 -0500 Subject: [PATCH] Prefer ext static libs when --default-library=static This patch adds a case in the library pattern logic to prefer static libraries when the Meson Core option for "default_library" is set to solely static. The existing library search order makes sense for cases of shared and shared / static mixed. However if using a prebuilt cross-toolchain, they usually provide both a static and shared version of sysroot libraries. This presents a problem in a complete static build where there won't be shared libraries at runtime and during build time there are failures like "ld: attempted static link of dynamic object". Bug: https://github.com/mesonbuild/meson/issues/6108 Fixes: http://autobuild.buildroot.net/results/db1740b4777f436324218c52bc7b08e5c21b667d/ http://autobuild.buildroot.net/results/c17/c17bbb12d9deadd64a441b36e324cfbbe8aba5be/ Signed-off-by: Matthew Weber [Updated for 0.57.1 - get_builtin_option() vs. get_option(OptionKey())] Signed-off-by: Peter Seiderer --- mesonbuild/compilers/mixins/clike.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mesonbuild/compilers/mixins/clike.py b/mesonbuild/compilers/mixins/clike.py index 09ad837b1..b7f6b9f22 100644 --- a/mesonbuild/compilers/mixins/clike.py +++ b/mesonbuild/compilers/mixins/clike.py @@ -978,6 +978,9 @@ class CLikeCompiler(Compiler): elif env.machines[self.for_machine].is_cygwin(): shlibext = ['dll', 'dll.a'] prefixes = ['cyg'] + prefixes + elif env.coredata.get_option(OptionKey('default_library')) == 'static': + # Linux/BSDs + shlibext = ['a'] else: # Linux/BSDs shlibext = ['so'] -- 2.25.1 ================================================ FILE: package/meson/0002-mesonbuild-dependencies-base.py-add-pkg_config_stati.patch ================================================ From 3d6a2db2270346236dd6247e0648ea0c949ba468 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 15 Feb 2020 15:13:59 +0100 Subject: [PATCH] mesonbuild/dependencies/base.py: add pkg_config_static Allow the user to always call pkg-config with --static thanks to a pkg_config_static property. This will allow to fix static build failures with libglib2: FAILED: gio/gio /home/naourr/work/instance-0/output-1/host/bin/arm-linux-gcc -o gio/gio 'gio/6ae6c9e@@gio@exe/gio-tool.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-cat.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-copy.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-info.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-list.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-mime.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-mkdir.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-monitor.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-mount.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-move.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-open.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-rename.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-remove.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-save.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-set.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-trash.c.o' 'gio/6ae6c9e@@gio@exe/gio-tool-tree.c.o' -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -static -Wl,--start-group gio/libgio-2.0.a glib/libglib-2.0.a gobject/libgobject-2.0.a gmodule/libgmodule-2.0.a -pthread /home/naourr/work/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libz.a /home/naourr/work/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libmount.a /home/naourr/work/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libpcre.a -lm /home/naourr/work/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libffi.a -Wl,--end-group '-Wl,-rpath,$ORIGIN/:$ORIGIN/../glib:$ORIGIN/../gobject:$ORIGIN/../gmodule' -Wl,-rpath-link,/home/naourr/work/instance-0/output-1/build/libglib2-2.62.4/build/gio -Wl,-rpath-link,/home/naourr/work/instance-0/output-1/build/libglib2-2.62.4/build/glib -Wl,-rpath-link,/home/naourr/work/instance-0/output-1/build/libglib2-2.62.4/build/gobject -Wl,-rpath-link,/home/naourr/work/instance-0/output-1/build/libglib2-2.62.4/build/gmodule /home/naourr/work/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/naourr/work/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libmount.a(la-fs.o): in function `__mnt_fs_set_source_ptr': fs.c:(.text+0x5ec): undefined reference to `blkid_parse_tag_string' Fixes: - http://autobuild.buildroot.org/results/0d36952def63cb69628697fa6408aeb6ce10cb5b Signed-off-by: Fabrice Fontaine [Romain: Fix if condition, pkg_config_static is a string not a boolean] Signed-off-by: Romain Naour [Rebased on 0.57.1] Signed-off-by: Peter Seiderer --- mesonbuild/dependencies/pkgconfig.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mesonbuild/dependencies/pkgconfig.py b/mesonbuild/dependencies/pkgconfig.py index 1e8d9132e..d902ba215 100644 --- a/mesonbuild/dependencies/pkgconfig.py +++ b/mesonbuild/dependencies/pkgconfig.py @@ -338,7 +338,8 @@ class PkgConfigDependency(ExternalDependency): env = None libcmd = ['--libs'] - if self.static: + if self.static or \ + (self.env.properties[self.for_machine].get('pkg_config_static', None) == 'true'): libcmd.append('--static') libcmd.append(self.name) -- 2.25.1 ================================================ FILE: package/meson/cross-compilation.conf.in ================================================ # Note: Buildroot's and Meson's terminologies differ about the meaning # of 'build', 'host' and 'target': # - Buildroot's 'host' is Meson's 'build' # - Buildroot's 'target' is Meson's 'host' [binaries] c = '@TARGET_CROSS@gcc' cpp = '@TARGET_CROSS@g++' ar = '@TARGET_CROSS@ar' strip = '@TARGET_CROSS@strip' pkgconfig = '@HOST_DIR@/bin/pkgconf' g-ir-compiler = '@STAGING_DIR@/usr/bin/g-ir-compiler' g-ir-scanner = '@STAGING_DIR@/usr/bin/g-ir-scanner' [built-in options] c_args = [@TARGET_CFLAGS@] c_link_args = [@TARGET_LDFLAGS@] cpp_args = [@TARGET_CXXFLAGS@] cpp_link_args = [@TARGET_LDFLAGS@] wrap_mode = 'nodownload' [properties] needs_exe_wrapper = true sys_root = '@STAGING_DIR@' pkg_config_libdir = '@STAGING_DIR@/usr/lib/pkgconfig:@STAGING_DIR@/usr/share/pkgconfig' pkg_config_static = '@STATIC@' [host_machine] system = 'linux' cpu_family = '@TARGET_ARCH@' cpu = '@TARGET_CPU@' endian = '@TARGET_ENDIAN@' ================================================ FILE: package/meson/meson.hash ================================================ # Locally calculated after checking pgp signature # https://github.com/mesonbuild/meson/releases/download/0.61.4/meson-0.61.4.tar.gz.asc sha256 4e3733ddc66bac38e38c63b739c9b8b8fc5a866de5333396b0c85c2b144ddee9 meson-0.61.4.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 COPYING ================================================ FILE: package/meson/meson.mk ================================================ ################################################################################ # # meson # ################################################################################ MESON_VERSION = 0.61.4 MESON_SITE = https://github.com/mesonbuild/meson/releases/download/$(MESON_VERSION) MESON_LICENSE = Apache-2.0 MESON_LICENSE_FILES = COPYING MESON_SETUP_TYPE = setuptools HOST_MESON_DEPENDENCIES = host-ninja HOST_MESON_NEEDS_HOST_PYTHON = python3 # Avoid interpreter shebang longer than 128 chars define HOST_MESON_SET_INTERPRETER $(SED) '1s:.*:#!/usr/bin/env python3:' $(HOST_DIR)/bin/meson endef HOST_MESON_POST_INSTALL_HOOKS += HOST_MESON_SET_INTERPRETER $(eval $(host-python-package)) ================================================ FILE: package/meson-tools/0001-amlbootenc-gxl-remove-non-std-C-convention-in-for.patch ================================================ From 7c5475187d1bdf861360ffd8bc1aaea84a341db3 Mon Sep 17 00:00:00 2001 From: Dagg Stompler Date: Fri, 11 Sep 2020 12:28:52 +0300 Subject: [PATCH] amlbootenc-gxl: remove non std C convention in for not all compilers have c99 or gnu99 enabled, so try not to use a non std C convention in for call loops Signed-off-by: Dagg Stompler --- amlbootenc-gxl.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/amlbootenc-gxl.c b/amlbootenc-gxl.c index 3695e13..233563d 100644 --- a/amlbootenc-gxl.c +++ b/amlbootenc-gxl.c @@ -51,6 +51,7 @@ static int boot_enc(const char *input, const char *output) ._unknown3 = 0x02000000, .sig2 = AMLOGIC_C_SIGNATURE, }; + int i; assert(sizeof(hdr) == 0x100); @@ -130,10 +131,10 @@ static int boot_enc(const char *input, const char *output) memcpy(hdr.iv, (uint8_t[]){ 0x14, 0x82, 0x5b, 0x1b, 0x10, 0xc1, 0x49, 0x0d, 0x8f, 0x13, 0x0a, 0x99, 0x15, 0x50, 0x1d, 0x37 }, 16); } #else - for (int i = 0; i < sizeof(hdr.key); i++) { + for (i = 0; i < sizeof(hdr.key); i++) { hdr.key[i] = rand(); } - for (int i = 0; i < sizeof(hdr.iv); i++) { + for (i = 0; i < sizeof(hdr.iv); i++) { hdr.iv[i] = rand(); } #endif @@ -151,7 +152,7 @@ static int boot_enc(const char *input, const char *output) AES_cbc_encrypt(src_buf, buf + hdr.first_offset, hdr.block_size, &aes_key, iv, AES_ENCRYPT); SHA256_Update(&sha256_ctx, buf + hdr.first_offset, hdr.block_size); - for (int i = 1; i < hdr.payload_size / hdr.block_size; i++) { + for (i = 1; i < hdr.payload_size / hdr.block_size; i++) { memset(src_buf, 0, hdr.block_size); fread(src_buf, 1, hdr.block_size, fin); AES_cbc_encrypt(src_buf, buf + hdr.data_offset + (i - 1) * hdr.block_size, hdr.block_size, &aes_key, iv, AES_ENCRYPT); -- 2.28.0 ================================================ FILE: package/meson-tools/Config.in.host ================================================ config BR2_PACKAGE_HOST_MESON_TOOLS bool "host meson-tools" help meson-tools is a collection of tools for use with the Amlogic Meson family of ARM based SoCs. It allows management of signatures which are required for booting amlogic based boards with u-boot. https://github.com/afaerber/meson-tools ================================================ FILE: package/meson-tools/meson-tools.hash ================================================ # Locally calculated sha256 10d707b2f741df03ff5000f2a82c6f577036ce1cd34d9278b22b92cb616b6fce meson-tools-0a02e2d34413f4bf9b15946352bc8c8ee13a5843.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/meson-tools/meson-tools.mk ================================================ ################################################################################ # # meson-tools # ################################################################################ HOST_MESON_TOOLS_VERSION = 0a02e2d34413f4bf9b15946352bc8c8ee13a5843 HOST_MESON_TOOLS_SITE = $(call github,afaerber,meson-tools,$(HOST_MESON_TOOLS_VERSION)) HOST_MESON_TOOLS_LICENSE = GPL-2.0+ HOST_MESON_TOOLS_LICENSE_FILES = COPYING HOST_MESON_TOOLS_DEPENDENCIES = host-openssl HOST_MESON_TOOLS_PROGS = amlbootsig unamlbootsig amlinfo define HOST_MESON_TOOLS_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_CONFIGURE_OPTS) \ LDFLAGS="$(HOST_LDFLAGS) -lssl -lcrypto" endef define HOST_MESON_TOOLS_INSTALL_CMDS $(foreach f,$(HOST_MESON_TOOLS_PROGS), \ $(INSTALL) -D -m 0755 $(@D)/$(f) $(HOST_DIR)/bin/$(f) ) endef $(eval $(host-generic-package)) ================================================ FILE: package/metacity/0001-add-libm-reference.patch ================================================ Upstream fix to link metacity itself against libm The upstream fix is modified to also include the changes on the configure script directly, so that autoreconfiguring is not needed. Autoreconfiguring cannot be done easily on metacity, due to missing AM_GCONF_SOURCE_2 and AM_NLS macros. http://git.gnome.org/browse/metacity/commit/configure.in?id=9cb0b6ff520ea69bdff6c328a21787202aee1bcc Signed-off-by: Thomas Petazzoni From 9cb0b6ff520ea69bdff6c328a21787202aee1bcc Mon Sep 17 00:00:00 2001 From: Götz Waschk Date: Wed, 22 Oct 2008 12:08:48 +0000 Subject: add libm reference. Closes #557357. 2008-10-22 Götz Waschk * configure.in: add libm reference. Closes #557357. svn path=/trunk/; revision=3984 --- (limited to 'configure.in') Index: b/configure.in =================================================================== --- a/configure.in +++ b/configure.in @@ -413,7 +413,7 @@ AC_DEFINE(HAVE_XSYNC, , [Have the Xsync extension library]) fi -METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" +METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm" METACITY_MESSAGE_LIBS="$METACITY_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" METACITY_WINDOW_DEMO_LIBS="$METACITY_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" METACITY_PROPS_LIBS="$METACITY_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" Index: b/configure =================================================================== --- a/configure +++ b/configure @@ -29509,7 +29509,7 @@ fi -METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" +METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm" METACITY_MESSAGE_LIBS="$METACITY_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" METACITY_WINDOW_DEMO_LIBS="$METACITY_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" METACITY_PROPS_LIBS="$METACITY_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" ================================================ FILE: package/metacity/0002-gconf.patch ================================================ [PATCH] fix build with --disable-gconf src/core/prefs.c still contain a call to gconf_client_set_bool() when built with --disable-gconf, breaking the build. Signed-off-by: Peter Korsgaard --- src/core/prefs.c | 2 ++ 1 file changed, 2 insertions(+) Index: metacity-2.25.1/src/core/prefs.c =================================================================== --- metacity-2.25.1.orig/src/core/prefs.c +++ metacity-2.25.1/src/core/prefs.c @@ -2949,6 +2949,7 @@ void meta_prefs_set_compositing_manager (gboolean whether) { +#if HAVE_GCONF GError *err = NULL; gconf_client_set_bool (default_client, @@ -2962,6 +2963,7 @@ err->message); g_error_free (err); } +#endif } #ifndef HAVE_GCONF ================================================ FILE: package/metacity/0003-mag-add-libm-reference.patch ================================================ Upstream patch to fix link against libm The upstream patch is modified to also include the necessary Makefile.in, which avoids the need for autoreconfiguring the package. Autoreconfiguring the package unfortunately doesn't work, due to AM_GCONF_SOURCE_2 and AM_NLS macros being missing. http://git.gnome.org/browse/metacity/commit/src/tools/Makefile.am?id=13d0d52eb885598885b6ff4b73c795c8f29c2a6b Signed-off-by: Thomas Petazzoni From 13d0d52eb885598885b6ff4b73c795c8f29c2a6b Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 02 May 2010 14:50:42 +0000 Subject: fails to link with pedantic linkers --- (limited to 'src/tools/Makefile.am') Index: b/src/tools/Makefile.am =================================================================== --- a/src/tools/Makefile.am +++ b/src/tools/Makefile.am @@ -26,7 +26,7 @@ metacity_message_LDADD= @METACITY_MESSAGE_LIBS@ metacity_window_demo_LDADD= @METACITY_WINDOW_DEMO_LIBS@ -metacity_mag_LDADD= @METACITY_WINDOW_DEMO_LIBS@ +metacity_mag_LDADD= @METACITY_WINDOW_DEMO_LIBS@ -lm metacity_grayscale_LDADD = @METACITY_WINDOW_DEMO_LIBS@ EXTRA_DIST=$(icon_DATA) Index: b/src/tools/Makefile.in =================================================================== --- a/src/tools/Makefile.in +++ b/src/tools/Makefile.in @@ -281,7 +281,7 @@ metacity_message_LDADD = @METACITY_MESSAGE_LIBS@ metacity_window_demo_LDADD = @METACITY_WINDOW_DEMO_LIBS@ -metacity_mag_LDADD = @METACITY_WINDOW_DEMO_LIBS@ +metacity_mag_LDADD = @METACITY_WINDOW_DEMO_LIBS@ -lm metacity_grayscale_LDADD = @METACITY_WINDOW_DEMO_LIBS@ EXTRA_DIST = $(icon_DATA) all: all-am ================================================ FILE: package/metacity/Config.in ================================================ config BR2_PACKAGE_METACITY bool "metacity" depends on BR2_PACKAGE_LIBGTK2 depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBX11 # Metacity configure.ac pretends it can be built without # Composite, but in reality, it doesn't build. select BR2_PACKAGE_XLIB_LIBXCOMPOSITE select BR2_PACKAGE_XLIB_LIBXFIXES select BR2_PACKAGE_XLIB_LIBXRENDER select BR2_PACKAGE_XLIB_LIBXDAMAGE # We do not directly depend on Xft, but they are needed to get # Xft support in Pango, which we require. select BR2_PACKAGE_XLIB_LIBXFT help Metacity is a window manager for the X Window System. https://wiki.gnome.org/Projects/Metacity ================================================ FILE: package/metacity/Xsession ================================================ #!/bin/sh export GDK_USE_XFT=1 export LANG="en_US.UTF-8" export LC_ALL="en_US.UTF-8" /usr/bin/X11/rxvt -bg black -fg gray90 & exec /bin/metacity ================================================ FILE: package/metacity/metacity.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/metacity/2.25/metacity-2.25.1.sha256sum sha256 fb2ede4ac02d7da08d3c3323fb76afaf945c8cccc07cb2d3a4b7f44fb49f1c47 metacity-2.25.1.tar.bz2 # Locally computed sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/metacity/metacity.mk ================================================ ################################################################################ # # metacity # ################################################################################ # newer versions need libcanberra-gtk and gnome-doc-utils METACITY_VERSION_MAJOR = 2.25 METACITY_VERSION = $(METACITY_VERSION_MAJOR).1 METACITY_SOURCE = metacity-$(METACITY_VERSION).tar.bz2 METACITY_SITE = http://ftp.gnome.org/pub/gnome/sources/metacity/$(METACITY_VERSION_MAJOR) METACITY_LICENSE = GPL-2.0+ METACITY_LICENSE_FILES = COPYING METACITY_CONF_OPTS = \ --x-includes=$(STAGING_DIR)/usr/include/X11 \ --x-libraries=$(STAGING_DIR)/usr/lib \ --disable-glibtest \ --disable-gconf \ --disable-sm \ --disable-startup-notification METACITY_DEPENDENCIES = libgtk2 \ xlib_libX11 \ host-libxml-parser-perl \ xlib_libXcomposite \ xlib_libXfixes \ xlib_libXrender \ xlib_libXdamage \ $(TARGET_NLS_DEPENDENCIES) METACITY_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) METACITY_DEPENDENCIES += xlib_libXcursor endif define METACITY_INSTALL_XSESSION $(INSTALL) -D package/metacity/Xsession $(TARGET_DIR)/etc/X11/Xsession endef METACITY_POST_INSTALL_TARGET_HOOKS += METACITY_INSTALL_XSESSION $(eval $(autotools-package)) ================================================ FILE: package/mfgtools/0001-lnx_def.h-fix-conflicting-declaration-of-__time64_t.patch ================================================ From 1af7bc09451e0b779f7bfb0dcc58ffb3abe9c584 Mon Sep 17 00:00:00 2001 From: Gary Bisson Date: Tue, 11 Feb 2020 15:30:12 +0100 Subject: [PATCH] lnx_def.h: fix conflicting declaration of __time64_t Signed-off-by: Gary Bisson --- MfgToolLib/lnx_def.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MfgToolLib/lnx_def.h b/MfgToolLib/lnx_def.h index c6869dd..a38bb99 100644 --- a/MfgToolLib/lnx_def.h +++ b/MfgToolLib/lnx_def.h @@ -124,7 +124,9 @@ typedef unsigned long * ULONG_PTR; typedef char * LPOLESTR; typedef void * HDEVINFO; typedef unsigned long long ULONGLONG; +#ifndef __time64_t typedef long long __time64_t; +#endif typedef long long __int64; typedef unsigned long DWORD_PTR; typedef unsigned int UINT; -- 2.25.0 ================================================ FILE: package/mfgtools/Config.in.host ================================================ config BR2_PACKAGE_HOST_MFGTOOLS bool "host mfgtools" depends on BR2_arm depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb help This package contains the Freescale manufacturing tool. It is designed to program firmware to i.MX boards during production. The communication is done over USB using the Freescale UTP protocol. https://github.com/codeauroraforum/mfgtools comment "host mfgtools needs a toolchain w/ host gcc >= 4.9" depends on BR2_arm depends on !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/mfgtools/mfgtools.hash ================================================ # locally computed sha256 055d71227d18883d6e8bc9e854c076015f9a7749820a94272e19071bf0b25c89 mfgtools-0.02.tar.gz sha256 2655559a6bb1179eae514f5c7166f4ede4f2453efa9cf4dc3c045cab5d57dede LICENSE sha256 0963b6e5086bf454265b0f57821a02b681d1211e40ad74c310231cb4d94815c9 README.txt ================================================ FILE: package/mfgtools/mfgtools.mk ================================================ ################################################################################ # # mfgtools # ################################################################################ MFGTOOLS_VERSION = 0.02 MFGTOOLS_SITE = $(call github,codeauroraforum,mfgtools,v$(MFGTOOLS_VERSION)) MFGTOOLS_SUBDIR = MfgToolLib MFGTOOLS_LICENSE = BSD-3-Clause or CPOL MFGTOOLS_LICENSE_FILES = LICENSE README.txt HOST_MFGTOOLS_DEPENDENCIES = host-libusb HOST_MFGTOOLS_CFLAGS = \ $(HOST_CFLAGS) $(HOST_LDFLAGS) -std=c++11 -lpthread \ -L$(@D)/MfgToolLib -lMfgToolLib -I$(@D)/MfgToolLib \ -lusb-1.0 -I$(HOST_DIR)/include/libusb-1.0 \ -fpermissive -Wno-write-strings define HOST_MFGTOOLS_CLI_BUILD $(HOST_CONFIGURE_OPTS) $(MAKE) CC="$(HOSTCXX)" \ CFLAGS="$(HOST_MFGTOOLS_CFLAGS)" -C $(@D)/TestPrgm endef HOST_MFGTOOLS_POST_BUILD_HOOKS += HOST_MFGTOOLS_CLI_BUILD define HOST_MFGTOOLS_INSTALL_CMDS $(INSTALL) -D -m 755 $(@D)/MfgToolLib/libMfgToolLib.so \ $(HOST_DIR)/lib/libMfgToolLib.so $(INSTALL) -D -m 755 $(@D)/TestPrgm/mfgtoolcli \ $(HOST_DIR)/bin/mfgtoolcli endef $(eval $(host-cmake-package)) ================================================ FILE: package/mfgtools/readme.txt ================================================ MfgTools Howto ============== 1. Build your mfgtool image Make sure to enable the following Buildroot options: BR2_PACKAGE_FREESCALE_IMX=y BR2_PACKAGE_IMX_UUC=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y BR2_TARGET_ROOTFS_CPIO_UIMAGE=y Also modify your kernel configuration to have: CONFIG_USB_GADGET=y CONFIG_USB_MASS_STORAGE=y CONFIG_FSL_UTP=y CONFIG_MMC_BLOCK_MINORS=16 2. Go into the output and create the necessary folders $ cd output $ mkdir -p "Profiles/Linux/OS Firmware/firmware" 3. Create your XML update script named ucl2.xml You can find a sample XML at: $ wget https://storage.googleapis.com/boundarydevices.com/ucl2.xml \ -O Profiles/Linux/OS\ Firmware/ucl2.xml 4. Copy the U-Boot, Kernel and initramfs images to the appropriate folder $ cp images/u-boot.imx images/zImage images/imx6q-sabrelite.dtb \ images/rootfs.cpio.uboot Profiles/Linux/OS\ Firmware/firmware/ 5. Copy the prebuilt binaries to be flashed Depending on your ucl2.xml file, the sample doesn't flash anything. 6. Run the MfgTools client: $ ./host/bin/mfgtoolcli -l mmc -s uboot_defconfig=imx \ -s dtbname=imx6q-sabrelite.dtb -s initramfs=rootfs.cpio.uboot \ -s mmc=1 -p 1 For more information about the tools options, please read the "Manufacturing Tool V2 Quick Start Guide.docx" documentation contained in every mfgtools package from NXP website[1]. Note: All the above commands require your Linux host user to have permissions to access the USB devices. Please make sure to have udev rules that allow the user to communicate with the BootROM IDs (Freescale USB recovery) as well as the one used for the UTP Linux image (0x066F:0x37FF). Using 'sudo' in front of the mfgtoolcli command would also grant you the necessary permission but it is *not* recommended. Also, if your U-Boot environment doesn't include mfgtools bootargs, make sure to set the following: setenv bootargs "console=${console},${baudrate} g_mass_storage.stall=0 \ g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F \ g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=\"\" \ g_mass_storage.file=/fat" [1] http://www.nxp.com/products/software-and-tools/software-development-tools/i.mx-software-and-tools/i.mx-6-series-software-and-development-tool-resources:IMX6_SW ================================================ FILE: package/mfoc/Config.in ================================================ config BR2_PACKAGE_MFOC bool "mfoc" select BR2_PACKAGE_LIBNFC help Mifare Classic Offline Cracker https://github.com/nfc-tools/mfoc ================================================ FILE: package/mfoc/mfoc.hash ================================================ # locally computed sha256 2dfd8ffa4a8b357807680d190a91c8cf3db54b4211a781edc1108af401dbaad7 mfoc-0.10.7.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/mfoc/mfoc.mk ================================================ ################################################################################ # # mfoc # ################################################################################ MFOC_VERSION = 0.10.7 MFOC_SITE = $(call github,nfc-tools,mfoc,mfoc-$(MFOC_VERSION)) MFOC_LICENSE = GPL-2.0 MFOC_LICENSE_FILES = COPYING MFOC_DEPENDENCIES = libnfc # Fetching from github, we need to generate the configure script MFOC_AUTORECONF = YES MFOC_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/mg/Config.in ================================================ config BR2_PACKAGE_MG bool "mg" depends on BR2_USE_MMU # fork() help Emacs-like text editor (130 kiB) Mg is a MicroEMACS clone with the goal of being compatible with GNU Emacs, because there should never be any reason to learn more than one Emacs flavor. Unlike many other editors it does not require ncurses, only a standard C library, making it suitable for really small and embedded systems. This version is based on mg2a from OpenBSD, with more features and, in particular, no requirement on ncurses or termcap. https://github.com/troglobit/mg/ ================================================ FILE: package/mg/mg.hash ================================================ # From https://github.com/troglobit/mg/releases/tag/v3.5 sha256 a906eab9370c0f24a5fa25923561ad933b74ad339d0b2851d2067badf0d7e4ce mg-3.5.tar.gz # Locally computed: sha256 7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c UNLICENSE ================================================ FILE: package/mg/mg.mk ================================================ ################################################################################ # # mg # ################################################################################ MG_VERSION = 3.5 MG_SITE = https://github.com/troglobit/mg/releases/download/v$(MG_VERSION) MG_LICENSE = Public Domain MG_LICENSE_FILES = UNLICENSE ifeq ($(BR2_PACKAGE_NCURSES),y) MG_DEPENDENCIES += ncurses MG_CONF_OPTS += --with-curses else MG_CONF_OPTS += --without-curses endif $(eval $(autotools-package)) ================================================ FILE: package/micropython/Config.in ================================================ config BR2_PACKAGE_MICROPYTHON bool "micropython" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBFFI help Micro Python is a lean and fast implementation of the Python 3 programming language that is optimised to run on a microcontroller. http://micropython.org comment "micropython needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/micropython/micropython.hash ================================================ #locally computed sha256 c21dbf8144237b3dbe3847c9ad5264cd0f3104eb078c810b3986004cce8fcd70 micropython-1.17.tar.gz sha256 59b1f0947a87c90d0d29dbe2c8deb3d1f8263bbbd2fb5ebcc79a649cff6dfcba LICENSE ================================================ FILE: package/micropython/micropython.mk ================================================ ################################################################################ # # micropython # ################################################################################ MICROPYTHON_VERSION = 1.17 MICROPYTHON_SITE = $(call github,micropython,micropython,v$(MICROPYTHON_VERSION)) # Micropython has a lot of code copied from other projects, and also a number # of submodules for various libs. However, we don't even clone the submodules, # and most of the copied code is not used in the unix build. MICROPYTHON_LICENSE = MIT, BSD-1-Clause, BSD-3-Clause, Zlib MICROPYTHON_LICENSE_FILES = LICENSE MICROPYTHON_DEPENDENCIES = host-pkgconf libffi host-python3 # Set GIT_DIR so package won't use buildroot's version number MICROPYTHON_MAKE_ENV = \ $(TARGET_MAKE_ENV) \ GIT_DIR=. # Use fallback implementation for exception handling on architectures that don't # have explicit support. ifeq ($(BR2_i386)$(BR2_x86_64)$(BR2_arm)$(BR2_armeb),) MICROPYTHON_CFLAGS = -DMICROPY_GCREGS_SETJMP=1 endif # xtensa has problems with nlr_push, use setjmp based implementation instead ifeq ($(BR2_xtensa),y) MICROPYTHON_CFLAGS = -DMICROPY_NLR_SETJMP=1 endif # When building from a tarball we don't have some of the dependencies that are in # the git repository as submodules MICROPYTHON_MAKE_OPTS += \ MICROPY_PY_BTREE=0 \ MICROPY_PY_USSL=0 \ CROSS_COMPILE=$(TARGET_CROSS) \ CFLAGS_EXTRA=$(MICROPYTHON_CFLAGS) \ CWARN= define MICROPYTHON_BUILD_CMDS $(MICROPYTHON_MAKE_ENV) $(MAKE) -C $(@D)/mpy-cross $(MICROPYTHON_MAKE_ENV) $(MAKE) -C $(@D)/ports/unix \ $(MICROPYTHON_MAKE_OPTS) endef define MICROPYTHON_INSTALL_TARGET_CMDS $(MICROPYTHON_MAKE_ENV) $(MAKE) -C $(@D)/ports/unix \ $(MICROPYTHON_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) \ PREFIX=/usr \ install endef $(eval $(generic-package)) ================================================ FILE: package/micropython-lib/Config.in ================================================ config BR2_PACKAGE_MICROPYTHON_LIB bool "micropython-lib" depends on BR2_PACKAGE_MICROPYTHON select BR2_PACKAGE_PCRE # runtime help Core Python libraries ported to MicroPython. http://micropython.org ================================================ FILE: package/micropython-lib/micropython-lib.hash ================================================ # Locally computed sha256 66e15380eb109613263beb6825b8eecb9191088270c1a59e8c7d922dd57183c7 micropython-lib-1.9.3.tar.gz sha256 baed4196a4310c576c2010f0a49f987a49e63856df7cd45af11cb3571df4bf74 LICENSE ================================================ FILE: package/micropython-lib/micropython-lib.mk ================================================ ################################################################################ # # micropython-lib # ################################################################################ MICROPYTHON_LIB_VERSION = 1.9.3 MICROPYTHON_LIB_SITE = $(call github,micropython,micropython-lib,v$(MICROPYTHON_LIB_VERSION)) MICROPYTHON_LIB_LICENSE = Python-2.0 (some modules), MIT (everything else) MICROPYTHON_LIB_LICENSE_FILES = LICENSE define MICROPYTHON_LIB_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ PREFIX=$(TARGET_DIR)/usr/lib/micropython \ install endef $(eval $(generic-package)) ================================================ FILE: package/midori/0001-fix-bug-1492932.patch ================================================ 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); }); ================================================ FILE: package/midori/0002-gcr-for-x11-only.patch ================================================ 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) ================================================ FILE: package/midori/Config.in ================================================ comment "midori needs libgtk3 and a glibc toolchain w/ C++, gcc >= 7, host gcc >= 4.9" depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS depends on BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_LIBGTK3 || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || \ !BR2_HOST_GCC_AT_LEAST_4_9 || \ !BR2_TOOLCHAIN_USES_GLIBC config BR2_PACKAGE_MIDORI bool "midori" depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS # host-librsvg depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt, gcr, gnupg2 depends on BR2_PACKAGE_LIBGTK3 depends on BR2_HOST_GCC_AT_LEAST_4_9 # webkitgtk depends on BR2_INSTALL_LIBSTDCPP # webkitgtk depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # webkitgtk depends on BR2_TOOLCHAIN_USES_GLIBC # webkitgtk depends on BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS # 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_WEBKITGTK select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Midori is a lightweight web browser based on WebKit http://www.midori-browser.org/ ================================================ FILE: package/midori/midori.hash ================================================ # From download link @ http://midori-browser.org/download/source/ sha1 64c86935028feb5f89d799c2acacaad67764da6f midori_0.5.11_all_.tar.bz2 # Locally computed sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING ================================================ FILE: package/midori/midori.mk ================================================ ################################################################################ # # midori # ################################################################################ MIDORI_VERSION = 0.5.11 MIDORI_SOURCE = midori_$(MIDORI_VERSION)_all_.tar.bz2 MIDORI_SITE = http://midori-browser.org/downloads MIDORI_LICENSE = LGPL-2.1+ MIDORI_LICENSE_FILES = COPYING MIDORI_CPE_ID_VENDOR = midori-browser MIDORI_DEPENDENCIES = \ host-intltool \ host-librsvg \ host-pkgconf \ host-vala \ host-python \ $(if $(BR2_PACKAGE_LIBGTK3_X11),gcr) \ granite \ libgtk3 \ libsoup \ libxml2 \ sqlite \ webkitgtk \ $(TARGET_NLS_DEPENDENCIES) \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) MIDORI_CONF_OPTS = \ -DHALF_BRO_INCOM_WEBKIT2=ON \ -DUSE_GRANITE=ON \ -DUSE_GTK3=ON \ -DUSE_ZEITGEIST=OFF $(eval $(cmake-package)) ================================================ FILE: package/mii-diag/0001-strchr.patch ================================================ Use the strrchr() function instead of the deprecated rindex() function. --- mii-diag-2.11.orig/mii-diag.c.orig 2008-06-25 11:08:52.000000000 +1000 +++ mii-diag-2.11.orig/mii-diag.c 2005-03-27 03:56:33.000000000 +1000 @@ -174,7 +174,7 @@ { int c, errflag = 0; char **spp, *ifname; - char *progname = rindex(argv[0], '/') ? rindex(argv[0], '/')+1 : argv[0]; + char *progname = strrchr(argv[0], '/') ? strrchr(argv[0], '/')+1 : argv[0]; while ((c = getopt_long(argc, argv, shortopts, longopts, 0)) != EOF) switch (c) { @@ -310,7 +310,7 @@ str = endstr+1; else { fprintf(stderr, "Invalid driver parameter '%s'.\n", str); - str = index(str, ','); + str = strchr(str, ','); } } else if (endstr[0] == ',') { data32[i] = newval; ================================================ FILE: package/mii-diag/Config.in ================================================ config BR2_PACKAGE_MII_DIAG bool "mii-diag" help mii-diag allows you to manipulate the MII registers of network cards. https://launchpad.net/ubuntu/+source/mii-diag ================================================ FILE: package/mii-diag/mii-diag.hash ================================================ # From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/m/mii-diag/mii-diag_2.11-3.dsc sha256 c690e87e6010607593c1cc2ccd5c481eb3be179387220ad445d8ab83d73ad41c mii-diag_2.11.orig.tar.gz sha256 b49fd3e7c0c446a949c3ca246cc441824d7ef5a61530f884756a82b0b2997190 mii-diag_2.11-3.diff.gz sha256 c83cf866874d6171fbea4e3786370483beb6d2898ac2ea91123b144effec7fcb mii-diag.c ================================================ FILE: package/mii-diag/mii-diag.mk ================================================ ################################################################################ # # mii-diag # ################################################################################ MII_DIAG_VERSION = 2.11 MII_DIAG_SOURCE = mii-diag_$(MII_DIAG_VERSION).orig.tar.gz MII_DIAG_PATCH = mii-diag_$(MII_DIAG_VERSION)-3.diff.gz MII_DIAG_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/m/mii-diag MII_DIAG_LICENSE = GPL # No version specified MII_DIAG_LICENSE_FILES = mii-diag.c MII_DIAG_CPE_ID_VENDOR = debian MII_DIAG_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS) define MII_DIAG_DEBIAN_PATCHES if [ -d $(@D)/debian/patches ]; then \ $(APPLY_PATCHES) $(@D) $(@D)/debian/patches \*.patch; \ fi endef MII_DIAG_POST_PATCH_HOOKS = MII_DIAG_DEBIAN_PATCHES define MII_DIAG_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(MII_DIAG_MAKE_OPTS) -C $(@D) mii-diag endef define MII_DIAG_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) install-mii-diag endef $(eval $(generic-package)) ================================================ FILE: package/mimic/0001-Fix-linking-on-gcc-10.2.0-or-newer.patch ================================================ From 77b36eaeb2c38eba571b8db7e9bb0fd507774e6d Mon Sep 17 00:00:00 2001 From: Kris Gesling Date: Tue, 11 May 2021 09:15:22 +0930 Subject: [PATCH] Fix linking on gcc 10.2.0 or newer Co-authored-by: MichaelSabal [Retrieved from: https://github.com/MycroftAI/mimic1/commit/77b36eaeb2c38eba571b8db7e9bb0fd507774e6d] Signed-off-by: Fabrice Fontaine --- lang/cmu_indic_lang/cmu_indic_lang.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/cmu_indic_lang/cmu_indic_lang.h b/lang/cmu_indic_lang/cmu_indic_lang.h index 75ee46c..83e2afa 100644 --- a/lang/cmu_indic_lang/cmu_indic_lang.h +++ b/lang/cmu_indic_lang/cmu_indic_lang.h @@ -51,7 +51,7 @@ void cmu_indic_lang_init(cst_voice *v); extern const cst_phoneset cmu_indic_phoneset; extern const cst_cart cmu_indic_phrasing_cart; -const cst_regex * const cst_rx_not_indic; +extern const cst_regex * const cst_rx_not_indic; #ifdef __cplusplus } /* extern "C" */ ================================================ FILE: package/mimic/Config.in ================================================ comment "mimic needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR config BR2_PACKAGE_MIMIC bool "mimic" depends on BR2_USE_WCHAR help Mimic is a fast, lightweight Text-to-speech engine developed by Mycroft A.I. and VocaliD, based on Carnegie Mellon University's Flite (Festival-Lite) software. Mimic takes in text and reads it out loud to create a high quality voice. https://github.com/MycroftAI/mimic if BR2_PACKAGE_MIMIC choice prompt "audio backend" default BR2_PACKAGE_MIMIC_AUDIO_BACKEND_NONE config BR2_PACKAGE_MIMIC_AUDIO_BACKEND_NONE bool "none" help With no backend, mimic will only be able to produce .wav files. config BR2_PACKAGE_MIMIC_AUDIO_BACKEND_ALSA bool "alsa" depends on BR2_PACKAGE_ALSA_LIB config BR2_PACKAGE_MIMIC_AUDIO_BACKEND_PORTAUDIO bool "alsa via portaudio" depends on BR2_PACKAGE_PORTAUDIO config BR2_PACKAGE_MIMIC_AUDIO_BACKEND_PULSEAUDIO bool "pulseaudio" depends on BR2_PACKAGE_PULSEAUDIO endchoice endif # BR2_PACKAGE_MIMIC ================================================ FILE: package/mimic/mimic.hash ================================================ # Locally calculated sha256 725003c9972d5b67c49d5ea6a89cb26b63414ff2c7adbbaf9200cf9eb55f80eb mimic-1.1.0.tar.gz sha256 c423c1c6d260091d80ee4c00f386a10fea39963a3f1530f2c245f15dd20324ee COPYING ================================================ FILE: package/mimic/mimic.mk ================================================ ################################################################################ # # mimic # ################################################################################ MIMIC_VERSION = 1.1.0 MIMIC_SITE = $(call github,MycroftAI,mimic,$(MIMIC_VERSION)) MIMIC_LICENSE = MIT MIMIC_LICENSE_FILES = COPYING MIMIC_DEPENDENCIES = host-pkgconf ifeq ($(BR2_PACKAGE_MIMIC_AUDIO_BACKEND_ALSA),y) MIMIC_AUDIO_BACKEND = alsa MIMIC_DEPENDENCIES += alsa-lib else ifeq ($(BR2_PACKAGE_MIMIC_AUDIO_BACKEND_PORTAUDIO),y) MIMIC_AUDIO_BACKEND = portaudio MIMIC_DEPENDENCIES += portaudio else ifeq ($(BR2_PACKAGE_MIMIC_AUDIO_BACKEND_PULSEAUDIO),y) MIMIC_AUDIO_BACKEND = pulseaudio MIMIC_DEPENDENCIES += pulseaudio else ifeq ($(BR2_PACKAGE_MIMIC_AUDIO_BACKEND_NONE),y) MIMIC_AUDIO_BACKEND = none endif MIMIC_CONF_OPTS += --with-audio=$(MIMIC_AUDIO_BACKEND) $(eval $(autotools-package)) ================================================ FILE: package/minetest/Config.in ================================================ config BR2_PACKAGE_MINETEST bool "minetest" depends on BR2_INSTALL_LIBSTDCPP # irrlicht depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_XORG7 # irrlicht depends on BR2_PACKAGE_HAS_LIBGL # irrlicht depends on BR2_PACKAGE_LUAJIT select BR2_PACKAGE_IRRLICHT select BR2_PACKAGE_GMP select BR2_PACKAGE_JSONCPP select BR2_PACKAGE_SQLITE select BR2_PACKAGE_ZLIB # At least one option must be enabled select BR2_PACKAGE_MINETEST_CLIENT if !BR2_PACKAGE_MINETEST_SERVER help Minetest is a near-infinite-world block sandbox game and a game engine, inspired by InfiniMiner, Minecraft, and the like. http://www.minetest.net if BR2_PACKAGE_MINETEST config BR2_PACKAGE_MINETEST_CLIENT bool "minetest client" select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_JPEG select BR2_PACKAGE_XLIB_LIBXXF86VM help Build Minetest client. config BR2_PACKAGE_MINETEST_SERVER bool "minetest server" help Build Minetest server. config BR2_PACKAGE_MINETEST_SOUND bool "enable sound" depends on BR2_PACKAGE_MINETEST_CLIENT depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # openal select BR2_PACKAGE_LIBVORBIS select BR2_PACKAGE_OPENAL comment "sound support needs a toolchain w/ threads NPTL" depends on BR2_PACKAGE_MINETEST_CLIENT depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL endif comment "minetest needs a toolchain w/ C++, gcc >= 4.9, threads" depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \ || !BR2_TOOLCHAIN_HAS_THREADS comment "minetest needs X11 and an OpenGL provider" depends on (BR2_INSTALL_LIBSTDCPP \ && BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \ && BR2_TOOLCHAIN_HAS_THREADS) depends on !BR2_PACKAGE_HAS_LIBGL || !BR2_PACKAGE_XORG7 ================================================ FILE: package/minetest/minetest.hash ================================================ # Locally calculated sha256 de9e4410583c845c104b4be25f9d0b8743d8573c120149b8910ae2519f9ab14e minetest-5.4.1.tar.gz sha256 5bc4bb4ff369d5039bcfff5a83a378335240ca86c58299e7de25097153c70132 LICENSE.txt ================================================ FILE: package/minetest/minetest.mk ================================================ ################################################################################ # # minetest # ################################################################################ MINETEST_VERSION = 5.4.1 MINETEST_SITE = $(call github,minetest,minetest,$(MINETEST_VERSION)) MINETEST_LICENSE = LGPL-2.1+ (code), CC-BY-SA-3.0 (textures and sounds) MINETEST_LICENSE_FILES = LICENSE.txt MINETEST_DEPENDENCIES = gmp irrlicht jsoncpp luajit sqlite zlib MINETEST_CONF_OPTS = \ -DDEFAULT_RUN_IN_PLACE=OFF \ -DENABLE_GLES=OFF \ -DENABLE_LUAJIT=ON \ -DENABLE_CURSES=OFF \ -DAPPLY_LOCALE_BLACKLIST=OFF \ -DENABLE_SYSTEM_GMP=ON \ -DENABLE_SYSTEM_JSONCPP=ON \ -DBUILD_UNITTESTS=OFF ifeq ($(BR2_PACKAGE_MINETEST_CLIENT),y) MINETEST_DEPENDENCIES += bzip2 jpeg libgl libpng xlib_libXxf86vm MINETEST_CONF_OPTS += -DBUILD_CLIENT=ON else MINETEST_CONF_OPTS += -DBUILD_CLIENT=OFF endif ifeq ($(BR2_PACKAGE_MINETEST_SERVER),y) MINETEST_CONF_OPTS += -DBUILD_SERVER=ON else MINETEST_CONF_OPTS += -DBUILD_SERVER=OFF endif ifeq ($(BR2_PACKAGE_MINETEST_SOUND),y) MINETEST_DEPENDENCIES += libvorbis openal MINETEST_CONF_OPTS += -DENABLE_SOUND=ON else MINETEST_CONF_OPTS += -DENABLE_SOUND=OFF endif ifeq ($(BR2_PACKAGE_FREETYPE),y) MINETEST_DEPENDENCIES += freetype MINETEST_CONF_OPTS += -DENABLE_FREETYPE=ON else MINETEST_CONF_OPTS += -DENABLE_FREETYPE=OFF endif ifeq ($(BR2_PACKAGE_HIREDIS),y) MINETEST_DEPENDENCIES += hiredis MINETEST_CONF_OPTS += -DENABLE_REDIS=ON else MINETEST_CONF_OPTS += -DENABLE_REDIS=OFF endif ifeq ($(BR2_PACKAGE_LEVELDB),y) MINETEST_DEPENDENCIES += leveldb MINETEST_CONF_OPTS += -DENABLE_LEVELDB=ON else MINETEST_CONF_OPTS += -DENABLE_LEVELDB=OFF endif ifeq ($(BR2_PACKAGE_LIBCURL),y) MINETEST_DEPENDENCIES += libcurl MINETEST_CONF_OPTS += -DENABLE_CURL=ON else MINETEST_CONF_OPTS += -DENABLE_CURL=OFF endif ifeq ($(BR2_PACKAGE_LIBSPATIALINDEX),y) MINETEST_DEPENDENCIES += libspatialindex MINETEST_CONF_OPTS += -DENABLE_SPATIAL=ON else MINETEST_CONF_OPTS += -DENABLE_SPATIAL=OFF endif ifeq ($(BR2_PACKAGE_POSTGRESQL),y) MINETEST_DEPENDENCIES += postgresql MINETEST_CONF_OPTS += -DENABLE_POSTGRESQL=ON else MINETEST_CONF_OPTS += -DENABLE_POSTGRESQL=OFF endif ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) MINETEST_DEPENDENCIES += $(TARGET_NLS_DEPENDENCIES) MINETEST_CONF_OPTS += -DENABLE_GETTEXT=ON else MINETEST_CONF_OPTS += -DENABLE_GETTEXT=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/minetest-game/Config.in ================================================ config BR2_PACKAGE_MINETEST_GAME bool "minetest-game" depends on BR2_PACKAGE_MINETEST help The main subgame for the Minetest engine. https://github.com/minetest/minetest_game ================================================ FILE: package/minetest-game/minetest-game.hash ================================================ # Locally calculated sha256 b4bfa0755b88230cf4bdb6af6a0951dd1248f6cdf87fecc340e43ac12c80b0b2 minetest-game-5.4.1.tar.gz sha256 f8a254e8d5f6b3ca3873f990986e86c864f943aa5dc9bf56808c5f4bfa509db0 LICENSE.txt sha256 ed2afed388c470e08edc1104e4ff6d12b68a32a76b8c52d760a99d4d2d7716f3 mods/beds/license.txt sha256 559749ba0d269b768e1b85bdac0f8b7a0cf100ecb3edd0df8529fe57cd4bfc0d mods/binoculars/license.txt sha256 9e9dbe5236ba70d0337f9879b988c19c6a7b0c902eed202f775200b8bee6980d mods/boats/license.txt sha256 e642798b595fb41901ae695326da9a167b0bd6b4055edec2396672f5f01bb16c mods/bones/license.txt sha256 baf438bc48b7da1b8fc03d37d134473e1c1f33ffe2e926fa650e6d0c64872785 mods/bucket/license.txt sha256 01370a00e7b2157a07ee21fa4dac9cc108c7449442f612a3e55cfe18b5b03c2b mods/butterflies/license.txt sha256 6196d390ee0b6331766219aa82f31613fffb62476c03cf960190ab8c232b8822 mods/carts/license.txt sha256 b6c3aca8da2f6c272fe431740dda0a349cff419f1f72e55c6de677379fc04169 mods/creative/license.txt sha256 f78424e0872260d3f3af98e74faf1bbe6b9387cd5464b7ae931d1fc1cc93223c mods/default/license.txt sha256 c0c652890fc80af8eefedbcfe1cd0d16b13b14cd1c7105c9c2bc9abe8cf1620c mods/doors/license.txt sha256 33d0b8726dd27c8f0c96d6dfd611e0e980bbdbb8075fac7476d055518319ec1c mods/dungeon_loot/license.txt sha256 011ebc82e96df3b825777e7531cb5d34cfce1f6ca27b7d3c80793c033d7c4f4e mods/dye/license.txt sha256 29a05b102726b9a3115f7ec06d5188dac7b1c005d8cf1c4d6dc2d5544405a45c mods/env_sounds/license.txt sha256 bdb104cdbe72a27407ade35144a8d1d52dd60c3ca626b5a87555b9d5d5c8af98 mods/farming/license.txt sha256 61f826be9adee70ef0e37f3bf4891fecc4b027a21637b32981b98220723d6f37 mods/fire/license.txt sha256 01370a00e7b2157a07ee21fa4dac9cc108c7449442f612a3e55cfe18b5b03c2b mods/fireflies/license.txt sha256 d92ac36a0235f4c02f8cfe2137d7d632bd53374c44ead97f20c152dddf475837 mods/flowers/license.txt sha256 ffbac006d197fcb8e36e9cdda638053ac80eef4e6446bbe36cb94bd28f54ba0b mods/game_commands/license.txt sha256 857f64cd62c13e27f25363584342fe049885b16c6b2392f1ebd7c3a7fb6ca436 mods/give_initial_stuff/license.txt sha256 dcbab8d7dc4137789958d19471807b37447fd303bced310d7d76d901eefca8ff mods/map/license.txt sha256 88385cd60d15c4fb4856c3c4c551c76c30958268c5c1160c1aa4e520c037a623 mods/player_api/license.txt sha256 0066e63d682d54a014ad3359794365a1abb87562d2b1e5e32093976d88c295b4 mods/screwdriver/license.txt sha256 b903866d052774e4127952690ce62ca26aa5bc4c2ddd48fceae501fa0d24ed74 mods/sethome/license.txt sha256 478b9944a446b4d88496d10736ddcd8ad5a3ca52f8b75f747315583d4012cb3c mods/sfinv/license.txt sha256 e361fc900d9203859391d35c38c3284c91600d23c1617076c641ff7e9fe10b15 mods/spawn/license.txt sha256 eab4c0cb318bb83c13362047a5a0fc5cb650a4e561ceb5a9124e5a1253cbc21a mods/stairs/license.txt sha256 e8593deed04ed4199ce9303db900f32276e0b629fd7f0089074d13370c12d00a mods/tnt/license.txt sha256 a0814bccd28157a160049efeac03864ff4c4dd6a34bc9cfcd3cc62de66fb156a mods/vessels/license.txt sha256 e9ebf1b4b170e64a0ea6e246edd03689aeb859d6560b8372a8081c004b30cb65 mods/walls/license.txt sha256 551b19e2c8b18c143301e090a1ceb5dc5d4ca243cad846de179d693439910816 mods/wool/license.txt sha256 c71155c9a68a5242223c5f814c1b9b1270492729b0ff0add770b6418bccf17c9 mods/xpanes/license.txt ================================================ FILE: package/minetest-game/minetest-game.mk ================================================ ################################################################################ # # minetest_game # ################################################################################ MINETEST_GAME_VERSION = 5.4.1 MINETEST_GAME_SITE = $(call github,minetest,minetest_game,$(MINETEST_GAME_VERSION)) MINETEST_GAME_LICENSE = LGPL-2.1+ (code), CC-BY-SA-2.0, CC-BY-SA-3.0, \ CC-BY-SA-4.0, MIT, CC0 1.0, CC-BY-2.0 (mods) MINETEST_GAME_LICENSE_FILES = LICENSE.txt \ mods/beds/license.txt \ mods/binoculars/license.txt \ mods/boats/license.txt \ mods/bones/license.txt \ mods/bucket/license.txt \ mods/butterflies/license.txt \ mods/carts/license.txt \ mods/creative/license.txt \ mods/default/license.txt \ mods/doors/license.txt \ mods/dungeon_loot/license.txt \ mods/dye/license.txt \ mods/env_sounds/license.txt \ mods/farming/license.txt \ mods/fire/license.txt \ mods/fireflies/license.txt \ mods/flowers/license.txt \ mods/game_commands/license.txt \ mods/give_initial_stuff/license.txt \ mods/map/license.txt \ mods/player_api/license.txt \ mods/screwdriver/license.txt \ mods/sethome/license.txt \ mods/sfinv/license.txt \ mods/spawn/license.txt \ mods/stairs/license.txt \ mods/tnt/license.txt \ mods/vessels/license.txt \ mods/walls/license.txt \ mods/wool/license.txt \ mods/xpanes/license.txt define MINETEST_GAME_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/share/minetest/games/minetest_game cp -dpfr $(@D)/* $(TARGET_DIR)/usr/share/minetest/games/minetest_game endef $(eval $(generic-package)) ================================================ FILE: package/mini-snmpd/0001-linux.c-fix-musl-build.patch ================================================ From 73fa408f51ec25121075aaccac9c9db1c68567cd Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 12 Mar 2020 10:02:18 +0100 Subject: [PATCH] linux.c: fix musl build Remove include on linux/if_link.h to avoid the following build failure with musl: In file included from /home/buildroot/autobuild/instance-2/output-1/host/i586-buildroot-linux-musl/sysroot/usr/include/linux/kernel.h:4, from /home/buildroot/autobuild/instance-2/output-1/host/i586-buildroot-linux-musl/sysroot/usr/include/linux/netlink.h:4, from /home/buildroot/autobuild/instance-2/output-1/host/i586-buildroot-linux-musl/sysroot/usr/include/linux/if_link.h:5, from linux.c:21: /home/buildroot/autobuild/instance-2/output-1/host/i586-buildroot-linux-musl/sysroot/usr/include/linux/sysinfo.h:7:8: error: redefinition of 'struct sysinfo' struct sysinfo { ^~~~~~~ In file included from linux.c:19: /home/buildroot/autobuild/instance-2/output-1/host/i586-buildroot-linux-musl/sysroot/usr/include/sys/sysinfo.h:10:8: note: originally defined here struct sysinfo { ^~~~~~~ CC mini_snmpd-globals.o Fixes: - http://autobuild.buildroot.org/results/6903a0f685076b4a2c2824de6158da40e9e712d8 Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/troglobit/mini-snmpd/commit/73fa408f51ec25121075aaccac9c9db1c68567cd] --- linux.c | 1 - 1 file changed, 1 deletion(-) diff --git a/linux.c b/linux.c index a657912..86a7085 100644 --- a/linux.c +++ b/linux.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include -- 2.25.1 ================================================ FILE: package/mini-snmpd/Config.in ================================================ config BR2_PACKAGE_MINI_SNMPD bool "mini-snmpd" help Mini SNMPd is a minimal implementation targeted at small or embedded UNIX systems with limited resources http://troglobit.com/mini-snmpd.html ================================================ FILE: package/mini-snmpd/mini-snmpd ================================================ # Require client authentication, thus SNMP version 2c EXTRA_PARAMS=-a ================================================ FILE: package/mini-snmpd/mini-snmpd.hash ================================================ # Locally calculated sha256 de00c475a3c70c56f3ee97cd683cb71009d3521d60b1f589c5a91b4671ede9f3 mini-snmpd-1.6.tar.gz sha256 8a43b895972a24567297f44f35dab0f5f9ed3b7db6dac0bf6094075b27ab9d56 COPYING ================================================ FILE: package/mini-snmpd/mini-snmpd.mk ================================================ ################################################################################ # # mini-snmpd # ################################################################################ MINI_SNMPD_VERSION = 1.6 MINI_SNMPD_SITE = $(call github,troglobit,mini-snmpd,v$(MINI_SNMPD_VERSION)) MINI_SNMPD_LICENSE = GPL-2.0 MINI_SNMPD_LICENSE_FILES = COPYING MINI_SNMPD_CPE_ID_VENDOR = minisnmpd_project MINI_SNMPD_CPE_ID_PRODUCT = minisnmpd MINI_SNMPD_AUTORECONF = YES MINI_SNMPD_DEPENDENCIES = host-pkgconf define MINI_SNMPD_INSTALL_ETC_DEFAULT $(INSTALL) -D -m 644 package/mini-snmpd/mini-snmpd \ $(TARGET_DIR)/etc/default/mini-snmpd endef MINI_SNMPD_POST_INSTALL_TARGET_HOOKS += MINI_SNMPD_INSTALL_ETC_DEFAULT $(eval $(autotools-package)) ================================================ FILE: package/minicom/Config.in ================================================ config BR2_PACKAGE_MINICOM bool "minicom" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_NCURSES help Minicom is a menu driven communications program. It emulates ANSI and VT102 terminals. It has a dialing directory and auto zmodem download. https://salsa.debian.org/minicom-team/minicom comment "minicom needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR ================================================ FILE: package/minicom/minicom.hash ================================================ # Locally calculated sha256 38cea30913a20349326ff3f1763ee1512b7b41601c24f065f365e18e9db0beba minicom-2.8.tar.bz2 sha256 cf80a758014eefbf068afffe3d462fc34ff4f528527524d8e100329c42094e15 COPYING ================================================ FILE: package/minicom/minicom.mk ================================================ ################################################################################ # # minicom # ################################################################################ MINICOM_VERSION = 2.8 MINICOM_SOURCE = minicom-$(MINICOM_VERSION).tar.bz2 MINICOM_SITE = \ https://salsa.debian.org/minicom-team/minicom/-/archive/$(MINICOM_VERSION) MINICOM_LICENSE = GPL-2.0+ MINICOM_LICENSE_FILES = COPYING MINICOM_CPE_ID_VENDOR = minicom_project MINICOM_DEPENDENCIES = ncurses $(if $(BR2_ENABLE_LOCALE),,libiconv) \ $(TARGET_NLS_DEPENDENCIES) host-pkgconf MINICOM_CONF_OPTS = \ --enable-dfl-port=/dev/ttyS1 \ --enable-lock-dir=/var/lock $(eval $(autotools-package)) ================================================ FILE: package/minidlna/Config.in ================================================ 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 select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_LIBID3TAG # selects zlib select BR2_PACKAGE_LIBEXIF select BR2_PACKAGE_JPEG select BR2_PACKAGE_SQLITE 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/ dynamic library, threads, wchar" depends on BR2_USE_MMU depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ BR2_STATIC_LIBS ================================================ FILE: package/minidlna/S60minidlnad ================================================ #!/bin/sh # # minidlnad Starts minidlnad. # start() { printf "Starting minidlna: " umask 077 start-stop-daemon -S -q -p /var/run/minidlna/minidlna.pid \ --exec /usr/sbin/minidlnad -- "$@" [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping minidlna: " start-stop-daemon -K -q -p /var/run/minidlna/minidlna.pid [ $? = 0 ] && echo "OK" || echo "FAIL" } restart() { stop # Sleep needed for minidlna to restart properly sleep 1 start "$@" } case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; force-reload) restart -R ;; *) echo "Usage: $0 {start|stop|restart|force-reload}" exit 1 esac exit $? ================================================ FILE: package/minidlna/minidlna.hash ================================================ # From https://sourceforge.net/projects/minidlna/files/minidlna/1.3.0/ sha1 6563a881884879b2aef52611934e08bb42985964 minidlna-1.3.0.tar.gz # Locally computed sha256 47d9b06b4c48801a4c1112ec23d24782728b5495e95ec2195bbe5c81bc2d3c63 minidlna-1.3.0.tar.gz sha256 79146b7f558e56510b9a714ff75318c05ab93aeccfd6597497b9bce212cf92ea COPYING sha256 94876d7886116e176e702b4902bd9f19731a6883db5f229ac2a7058a22aa6529 LICENCE.miniupnpd ================================================ FILE: package/minidlna/minidlna.mk ================================================ ################################################################################ # # minidlna # ################################################################################ MINIDLNA_VERSION = 1.3.0 MINIDLNA_SITE = https://downloads.sourceforge.net/project/minidlna/minidlna/$(MINIDLNA_VERSION) MINIDLNA_LICENSE = GPL-2.0, BSD-3-Clause MINIDLNA_LICENSE_FILES = COPYING LICENCE.miniupnpd MINIDLNA_CPE_ID_VENDOR = readymedia_project MINIDLNA_CPE_ID_PRODUCT = readymedia MINIDLNA_SELINUX_MODULES = minidlna MINIDLNA_DEPENDENCIES = \ $(TARGET_NLS_DEPENDENCIES) \ ffmpeg flac libvorbis libogg libid3tag libexif jpeg sqlite \ host-xutil_makedepend MINIDLNA_CONF_OPTS = \ --disable-static define MINIDLNA_INSTALL_CONF $(INSTALL) -D -m 644 $(@D)/minidlna.conf $(TARGET_DIR)/etc/minidlna.conf endef MINIDLNA_POST_INSTALL_TARGET_HOOKS += MINIDLNA_INSTALL_CONF define MINIDLNA_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/minidlna/S60minidlnad \ $(TARGET_DIR)/etc/init.d/S60minidlnad endef define MINIDLNA_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/minidlna/minidlnad.service \ $(TARGET_DIR)/usr/lib/systemd/system/minidlnad.service endef $(eval $(autotools-package)) ================================================ FILE: package/minidlna/minidlnad.service ================================================ [Unit] Description=minidlna server After=network.target [Service] Type=forking ExecStart=/usr/sbin/minidlnad PIDFile=/run/minidlna/minidlna.pid [Install] WantedBy=multi-user.target ================================================ FILE: package/minimodem/Config.in ================================================ config BR2_PACKAGE_MINIMODEM bool "minimodem" select BR2_PACKAGE_FFTW select BR2_PACKAGE_FFTW_SINGLE select BR2_PACKAGE_LIBSNDFILE if !BR2_PACKAGE_ALSA_LIB_PCM && !BR2_PACKAGE_PULSEAUDIO help Minimodem is a command-line program which decodes (or generates) audio modem tones at any specified baud rate, using various framing protocols. It acts a general-purpose software FSK modem, and includes support for various standard FSK protocols such as Bell103, Bell202, RTTY, TTY/TDD NOAA SAME, and Caller-ID. http://www.whence.com/minimodem/ ================================================ FILE: package/minimodem/minimodem.hash ================================================ sha256 f8cca4db8e3f284d67f843054d6bb4d88a3db5e77b26192410e41e9a06f4378e minimodem-0.24.tar.gz sha256 c298178753129680ef6d3112f0f8b61acc405c86c1997dfe59735257988f8b33 COPYING ================================================ FILE: package/minimodem/minimodem.mk ================================================ ################################################################################ # # minimodem # ################################################################################ MINIMODEM_VERSION = 0.24 MINIMODEM_SITE = http://www.whence.com/minimodem MINIMODEM_LICENSE = GPL-3.0+ MINIMODEM_LICENSE_FILES = COPYING MINIMODEM_DEPENDENCIES = fftw-single host-pkgconf ifeq ($(BR2_PACKAGE_ALSA_LIB_PCM),y) MINIMODEM_DEPENDENCIES += alsa-lib MINIMODEM_CONF_OPTS += --with-alsa else MINIMODEM_CONF_OPTS += --without-alsa endif ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) MINIMODEM_DEPENDENCIES += pulseaudio MINIMODEM_CONF_OPTS += --with-pulseaudio else MINIMODEM_CONF_OPTS += --without-pulseaudio endif ifeq ($(BR2_PACKAGE_LIBSNDFILE),y) MINIMODEM_DEPENDENCIES += libsndfile MINIMODEM_CONF_OPTS += --with-sndfile else MINIMODEM_CONF_OPTS += --without-sndfile endif $(eval $(autotools-package)) ================================================ FILE: package/minissdpd/Config.in ================================================ 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/ ================================================ FILE: package/minissdpd/S50minissdpd ================================================ #!/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 $? ================================================ FILE: package/minissdpd/minissdpd.hash ================================================ # Locally computed: sha256 177ab1907cc0fd20c8cafd13ca8674c7ec1828aa6101da9bb066408ccada7350 minissdpd-1.5.20200928.tar.gz sha256 00c8368dd1574b025df65f24f61c32d1297ff9b6dc695fda964b1b1efc7a53d3 LICENSE ================================================ FILE: package/minissdpd/minissdpd.mk ================================================ ################################################################################ # # minissdpd # ################################################################################ MINISSDPD_VERSION = 1.5.20200928 MINISSDPD_SITE = http://miniupnp.free.fr/files MINISSDPD_LICENSE = BSD-3-Clause MINISSDPD_LICENSE_FILES = LICENSE MINISSDPD_CPE_ID_VENDOR = miniupnp_project MINISSDPD_SELINUX_MODULES = minissdpd 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 endef $(eval $(generic-package)) ================================================ FILE: package/minissdpd/minissdpd.service ================================================ [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 ================================================ FILE: package/minizip/Config.in ================================================ config BR2_PACKAGE_MINIZIP bool "minizip" depends on BR2_USE_WCHAR select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Enables to extract files from a .zip archive file. It is compatible with PKZip 2.04g, WinZip, InfoZip, MimarSinan Codex Suite 2002 tools, and compatible sofware. https://github.com/nmoinvaz/minizip config BR2_PACKAGE_MINIZIP_DEMOS bool "minizip" depends on BR2_PACKAGE_MINIZIP help Enable minizip binary tool. comment "minizip needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/minizip/minizip.hash ================================================ # Locally computed sha256 5f1dd0d38adbe9785cb9c4e6e47738c109d73a0afa86e58c4025ce3e2cc504ed minizip-3.0.3.tar.gz sha256 675181c03fc1302a1c8554c00f7be9bb420c5dbc9dcc2013433cec144413de03 LICENSE ================================================ FILE: package/minizip/minizip.mk ================================================ ################################################################################ # # minizip # ################################################################################ MINIZIP_VERSION = 3.0.3 MINIZIP_SITE = $(call github,nmoinvaz,minizip,$(MINIZIP_VERSION)) MINIZIP_DEPENDENCIES = host-pkgconf MINIZIP_INSTALL_STAGING = YES MINIZIP_CONF_OPTS = \ $(if $(BR2_PACKAGE_MINIZIP_DEMOS),-DMZ_BUILD_TEST=ON) \ -DMZ_COMPAT=OFF \ -DMZ_FETCH_LIBS=OFF MINIZIP_LICENSE = Zlib MINIZIP_LICENSE_FILES = LICENSE MINIZIP_CPE_ID_VENDOR = minizip_project ifeq ($(BR2_PACKAGE_BZIP2),y) MINIZIP_DEPENDENCIES += bzip2 MINIZIP_CONF_OPTS += -DMZ_BZIP2=ON else MINIZIP_CONF_OPTS += -DMZ_BZIP2=OFF endif ifeq ($(BR2_PACKAGE_LIBICONV),y) MINIZIP_DEPENDENCIES += libiconv MINIZIP_CONF_OPTS += -DMZ_ICONV=ON else MINIZIP_CONF_OPTS += -DMZ_ICONV=OFF endif ifeq ($(BR2_PACKAGE_LIBBSD),y) MINIZIP_DEPENDENCIES += libbsd MINIZIP_CONF_OPTS += -DMZ_LIBBSD=ON else MINIZIP_CONF_OPTS += -DMZ_LIBBSD=OFF endif ifeq ($(BR2_PACKAGE_OPENSSL),y) MINIZIP_DEPENDENCIES += openssl MINIZIP_CONF_OPTS += \ -DMZ_OPENSSL=ON \ -DMZ_PKCRYPT=ON \ -DMZ_WZAES=ON else MINIZIP_CONF_OPTS += \ -DMZ_OPENSSL=OFF \ -DMZ_PKCRYPT=OFF \ -DMZ_WZAES=OFF endif ifeq ($(BR2_PACKAGE_XZ),y) MINIZIP_DEPENDENCIES += xz MINIZIP_CONF_OPTS += -DMZ_LZMA=ON else MINIZIP_CONF_OPTS += -DMZ_LZMA=OFF endif ifeq ($(BR2_PACKAGE_ZLIB),y) MINIZIP_DEPENDENCIES += zlib MINIZIP_CONF_OPTS += -DMZ_ZLIB=ON else MINIZIP_CONF_OPTS += -DMZ_ZLIB=OFF endif ifeq ($(BR2_PACKAGE_ZSTD),y) MINIZIP_DEPENDENCIES += zstd MINIZIP_CONF_OPTS += -DMZ_ZSTD=ON else MINIZIP_CONF_OPTS += -DMZ_ZSTD=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/miraclecast/Config.in ================================================ config BR2_PACKAGE_MIRACLECAST bool "miraclecast" depends on BR2_PACKAGE_SYSTEMD depends on BR2_TOOLCHAIN_USES_GLIBC 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_GSTREAMER1 select BR2_PACKAGE_READLINE help The MiracleCast project provides software to connect external monitors to your system via Wifi. It is compatible to the Wifi-Display specification also known as Miracast. MiracleCast implements the Display-Source as well as Display-Sink side. https://github.com/albfan/miraclecast comment "miraclecast needs systemd and a glibc toolchain w/ threads and wchar" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_USE_WCHAR \ || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_SYSTEMD ================================================ FILE: package/miraclecast/miraclecast.hash ================================================ # Locally calculated sha256 e11440f782519663db367285dd54b53eb5feb78682dac42bd90230222de9f0fd miraclecast-c94be167c85c6ec8badd7ac79e3dea2e0b73225c.tar.gz sha256 66bdcc8bcbd1d5ee336c4c8e8749ea538e17b0c0e22b0f705025deb1e912a6d3 COPYING sha256 8e136a0e16783d79792e6a57a1422a40acea2e18affb5e2cecb858382f8b0a6c LICENSE_gdhcp sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 LICENSE_htable sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSE_lgpl ================================================ FILE: package/miraclecast/miraclecast.mk ================================================ ################################################################################ # # miraclecast # ################################################################################ MIRACLECAST_VERSION = c94be167c85c6ec8badd7ac79e3dea2e0b73225c MIRACLECAST_SITE = $(call github,albfan,miraclecast,$(MIRACLECAST_VERSION)) MIRACLECAST_LICENSE = LGPL-2.1+, GPL-2.0 (gdhcp) MIRACLECAST_LICENSE_FILES = COPYING LICENSE_gdhcp LICENSE_htable LICENSE_lgpl MIRACLECAST_DEPENDENCIES = host-pkgconf systemd gstreamer1 \ readline libglib2 # Straight out the repository, no ./configure MIRACLECAST_AUTORECONF = YES define MIRACLECAST_INSTALL_DBUS_POLICY $(INSTALL) -m 0644 -D \ $(@D)/res/org.freedesktop.miracle.conf \ $(TARGET_DIR)/etc/dbus-1/system.d/org.freedesktop.miracle.conf endef MIRACLECAST_POST_INSTALL_TARGET_HOOKS += MIRACLECAST_INSTALL_DBUS_POLICY $(eval $(autotools-package)) ================================================ FILE: package/mjpegtools/Config.in ================================================ config BR2_PACKAGE_MJPEGTOOLS bool "mjpegtools" depends on BR2_USE_MMU # fork depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_JPEG help The mjpegtools programs are a set of tools that can do recording of videos and playback, simple cut-and-paste editing and the MPEG compression of audio and video under Linux. http://mjpeg.sourceforge.net config BR2_PACKAGE_MJPEGTOOLS_SIMD_SUPPORT bool default y if BR2_X86_CPU_HAS_MMX default y if BR2_POWERPC_CPU_HAS_ALTIVEC comment "mjpegtools needs a toolchain w/ C++, threads" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/mjpegtools/mjpegtools.hash ================================================ # From http://sourceforge.net/projects/mjpeg/files/mjpegtools/2.2.1/ md5 168e0131c0b8a2e31df7a73eb602fc32 mjpegtools-2.2.1.tar.gz sha1 26e980912cd06f31033964acbc4b8d1932788bfc mjpegtools-2.2.1.tar.gz # Locally computed sha256 b180536d7d9960b05e0023a197b00dcb100929a49aab71d19d55f4a1b210f49a mjpegtools-2.2.1.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/mjpegtools/mjpegtools.mk ================================================ ################################################################################ # # mjpegtools # ################################################################################ MJPEGTOOLS_VERSION = 2.2.1 MJPEGTOOLS_SITE = http://sourceforge.net/projects/mjpeg/files/mjpegtools/$(MJPEGTOOLS_VERSION) MJPEGTOOLS_DEPENDENCIES = host-pkgconf jpeg MJPEGTOOLS_INSTALL_STAGING = YES MJPEGTOOLS_LICENSE = GPL-2.0+ MJPEGTOOLS_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_MJPEGTOOLS_SIMD_SUPPORT),y) MJPEGTOOLS_CONF_OPTS += --enable-simd-accel else MJPEGTOOLS_CONF_OPTS += --disable-simd-accel endif ifeq ($(BR2_PACKAGE_LIBPNG),y) MJPEGTOOLS_CONF_OPTS += --with-libpng MJPEGTOOLS_DEPENDENCIES += libpng else MJPEGTOOLS_CONF_OPTS += --without-libpng endif # expects X11 backend in sdl ifeq ($(BR2_PACKAGE_SDL_X11),y) MJPEGTOOLS_CONF_OPTS += --with-libsdl MJPEGTOOLS_DEPENDENCIES += sdl else MJPEGTOOLS_CONF_OPTS += --without-libsdl endif ifeq ($(BR2_PACKAGE_SDL_GFX),y) MJPEGTOOLS_CONF_OPTS += --with-sdlgfx MJPEGTOOLS_DEPENDENCIES += sdl_gfx else MJPEGTOOLS_CONF_OPTS += --without-sdlgfx endif ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) MJPEGTOOLS_CONF_OPTS += --with-x MJPEGTOOLS_DEPENDENCIES += xlib_libX11 else MJPEGTOOLS_CONF_OPTS += --without-x endif ifeq ($(BR2_PACKAGE_XLIB_LIBXXF86DGA),y) MJPEGTOOLS_CONF_OPTS += --with-dga MJPEGTOOLS_DEPENDENCIES += xlib_libXxf86dga else MJPEGTOOLS_CONF_OPTS += --without-dga endif ifeq ($(BR2_PACKAGE_LIBGTK2),y) MJPEGTOOLS_CONF_OPTS += --with-gtk MJPEGTOOLS_DEPENDENCIES += libgtk2 else MJPEGTOOLS_CONF_OPTS += --without-gtk endif $(eval $(autotools-package)) ================================================ FILE: package/mjpg-streamer/Config.in ================================================ config BR2_PACKAGE_MJPG_STREAMER bool "mjpg-streamer" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 # V4L2_EVENT_SOURCE_CHANGE depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # plugins need dlopen() select BR2_PACKAGE_JPEG help MJPG-streamer takes JPGs from Linux-UVC compatible webcams, filesystem or other input plugins and streams them as M-JPEG via HTTP to webbrowsers, VLC and other software. https://github.com/jacksonliam/mjpg-streamer comment "mjpg-streamer needs a toolchain w/ threads, headers >= 3.16, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 || BR2_STATIC_LIBS ================================================ FILE: package/mjpg-streamer/mjpg-streamer.hash ================================================ # Locally computed sha256 5b427b07c03c2c0468cc782daf1510d315141170246828fcbb7c07f927879973 mjpg-streamer-5a6e0a2db163e6ae9461552b59079870d0959340.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 mjpg-streamer-experimental/LICENSE ================================================ FILE: package/mjpg-streamer/mjpg-streamer.mk ================================================ ################################################################################ # # mjpg-streamer # ################################################################################ MJPG_STREAMER_VERSION = 5a6e0a2db163e6ae9461552b59079870d0959340 MJPG_STREAMER_SITE = $(call github,jacksonliam,mjpg-streamer,$(MJPG_STREAMER_VERSION)) MJPG_STREAMER_SUBDIR = mjpg-streamer-experimental MJPG_STREAMER_LICENSE = GPL-2.0+ MJPG_STREAMER_LICENSE_FILES = $(MJPG_STREAMER_SUBDIR)/LICENSE MJPG_STREAMER_DEPENDENCIES = jpeg ifeq ($(BR2_PACKAGE_LIBGPHOTO2),y) MJPG_STREAMER_CONF_OPTS += -DPLUGIN_INPUT_PTP2=ON MJPG_STREAMER_DEPENDENCIES += host-pkgconf libgphoto2 else MJPG_STREAMER_CONF_OPTS += -DPLUGIN_INPUT_PTP2=OFF endif ifeq ($(BR2_PACKAGE_LIBV4L),y) MJPG_STREAMER_DEPENDENCIES += libv4l endif ifeq ($(BR2_PACKAGE_OPENCV3_LIB_HIGHGUI)$(BR2_PACKAGE_OPENCV3_LIB_IMGPROC)$(BR2_PACKAGE_OPENCV3_LIB_VIDEOIO),yyy) MJPG_STREAMER_CONF_OPTS += \ -DPLUGIN_INPUT_OPENCV=ON \ -DPLUGIN_CVFILTER_CPP=OFF \ -DPLUGIN_CVFILTER_PY=OFF MJPG_STREAMER_DEPENDENCIES += host-pkgconf opencv3 else MJPG_STREAMER_CONF_OPTS += -DPLUGIN_INPUT_OPENCV=OFF endif ifeq ($(BR2_PACKAGE_PROTOBUF_C)$(BR2_PACKAGE_ZEROMQ),yy) MJPG_STREAMER_CONF_OPTS += -DPLUGIN_OUTPUT_ZMQSERVER=ON MJPG_STREAMER_DEPENDENCIES += host-pkgconf protobuf-c zeromq else MJPG_STREAMER_CONF_OPTS += -DPLUGIN_OUTPUT_ZMQSERVER=OFF endif ifeq ($(BR2_PACKAGE_SDL),y) MJPG_STREAMER_CONF_OPTS += -DPLUGIN_OUTPUT_VIEWER=ON MJPG_STREAMER_DEPENDENCIES += host-pkgconf sdl else MJPG_STREAMER_CONF_OPTS += -DPLUGIN_OUTPUT_VIEWER=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/mkpasswd/Config.in.host ================================================ config BR2_PACKAGE_HOST_MKPASSWD bool "host mkpasswd" ================================================ FILE: package/mkpasswd/config.h ================================================ /* Program version */ #define VERSION "5.0.26" /* Configurable features */ /* Always hide legal disclaimers */ #undef ALWAYS_HIDE_DISCL /* Default server */ #define DEFAULTSERVER "whois.arin.net" /* Configuration file */ /* #define CONFIG_FILE "/etc/whois.conf" */ /* autoconf in cpp macros */ #ifdef linux # define ENABLE_NLS #endif #ifdef __FreeBSD__ /* which versions? */ # define HAVE_GETOPT_LONG # define HAVE_GETADDRINFO # define ENABLE_NLS # ifndef LOCALEDIR # define LOCALEDIR "/usr/local/share/locale" # endif #endif /* needs unistd.h */ #if defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 200112L # define HAVE_GETADDRINFO # define HAVE_REGEXEC #endif #if defined __APPLE__ && defined __MACH__ # define HAVE_GETOPT_LONG # define HAVE_GETADDRINFO #endif #if defined __GLIBC__ # define HAVE_GETOPT_LONG # if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1 # define HAVE_GETADDRINFO # endif # if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 7 # define HAVE_SHA_CRYPT # endif #endif /* Unknown versions of Solaris */ #if defined __SVR4 && defined __sun # define HAVE_SHA_CRYPT # define HAVE_SOLARIS_CRYPT_GENSALT #endif /* FIXME: which systems lack this? */ #define HAVE_GETTIMEOFDAY /* FIXME: disabled because it does not parse addresses with a netmask length. * The code using it needs to be either fixed or removed. #define HAVE_INET_PTON */ /* * Please send patches to correctly ignore old releases which lack a RNG * and add more systems which have one. */ #ifdef RANDOM_DEVICE #elif defined __GLIBC__ \ || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ \ /* AIX >= 5.2? */ \ || defined _AIX52 \ /* HP-UX >= B.11.11.09? */ \ || defined __hpux \ /* OS X: */ \ || (defined __APPLE__ && defined __MACH__) \ /* Solaris >= 9 (this is >= 7): */ \ || (defined __SVR4 && defined __sun && defined SUSv2) \ /* Tru64 UNIX >= 5.1B? */ \ || defined __osf # define RANDOM_DEVICE "/dev/urandom" #endif #ifdef ENABLE_NLS # ifndef NLS_CAT_NAME # define NLS_CAT_NAME "whois" # endif # ifndef LOCALEDIR # define LOCALEDIR "/usr/share/locale" # endif #endif ================================================ FILE: package/mkpasswd/mkpasswd.c ================================================ /* * Copyright (C) 2001-2008 Marco d'Itri * * 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 */ /* for crypt, snprintf and strcasecmp */ #define _XOPEN_SOURCE /* * _BSD_SOURCE is deprecated as of GLIBC 2.20; _DEFAULT_SOURCE should be used * instead. (https://lwn.net/Articles/611162/) */ #define _DEFAULT_SOURCE #define _BSD_SOURCE /* System library */ #include #include #include #include "config.h" #ifdef HAVE_GETOPT_LONG #include #endif #include #include #include #include #ifdef HAVE_XCRYPT #include #include #endif #ifdef HAVE_LINUX_CRYPT_GENSALT #define _OW_SOURCE #include #endif #ifdef HAVE_GETTIMEOFDAY #include #endif /* glibc without crypt() */ #ifndef _XOPEN_CRYPT #include #endif /* Application-specific */ #include "utils.h" /* Global variables */ #ifdef HAVE_GETOPT_LONG static const struct option longopts[] = { {"method", optional_argument, NULL, 'm'}, /* for backward compatibility with versions < 4.7.25 (< 20080321): */ {"hash", optional_argument, NULL, 'H'}, {"help", no_argument, NULL, 'h'}, {"password-fd", required_argument, NULL, 'P'}, {"stdin", no_argument, NULL, 's'}, {"salt", required_argument, NULL, 'S'}, {"rounds", required_argument, NULL, 'R'}, {"version", no_argument, NULL, 'V'}, {NULL, 0, NULL, 0 } }; #else extern char *optarg; extern int optind; #endif static const char valid_salts[] = "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./"; struct crypt_method { const char *method; /* short name used by the command line option */ const char *prefix; /* salt prefix */ const unsigned int minlen; /* minimum salt length */ const unsigned int maxlen; /* maximum salt length */ const unsigned int rounds; /* supports a variable number of rounds */ const char *desc; /* long description for the methods list */ }; static const struct crypt_method methods[] = { /* method prefix minlen, maxlen rounds description */ { "des", "", 2, 2, 0, N_("standard 56 bit DES-based crypt(3)") }, { "md5", "$1$", 8, 8, 0, "MD5" }, #if defined OpenBSD || defined FreeBSD || (defined __SVR4 && defined __sun) { "bf", "$2a$", 22, 22, 1, "Blowfish" }, #endif #if defined HAVE_LINUX_CRYPT_GENSALT { "bf", "$2a$", 22, 22, 1, "Blowfish, system-specific on 8-bit chars" }, /* algorithm 2y fixes CVE-2011-2483 */ { "bfy", "$2y$", 22, 22, 1, "Blowfish, correct handling of 8-bit chars" }, #endif #if defined FreeBSD { "nt", "$3$", 0, 0, 0, "NT-Hash" }, #endif #if defined HAVE_SHA_CRYPT /* http://people.redhat.com/drepper/SHA-crypt.txt */ { "sha-256", "$5$", 8, 16, 1, "SHA-256" }, { "sha-512", "$6$", 8, 16, 1, "SHA-512" }, #endif /* http://www.crypticide.com/dropsafe/article/1389 */ /* * Actually the maximum salt length is arbitrary, but Solaris by default * always uses 8 characters: * http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/ \ * usr/src/lib/crypt_modules/sunmd5/sunmd5.c#crypt_gensalt_impl */ #if defined __SVR4 && defined __sun { "sunmd5", "$md5$", 8, 8, 1, "SunMD5" }, #endif { NULL, NULL, 0, 0, 0, NULL } }; void generate_salt(char *const buf, const unsigned int len); void *get_random_bytes(const int len); void display_help(int error); void display_version(void); void display_methods(void); int main(int argc, char *argv[]) { int ch, i; int password_fd = -1; unsigned int salt_minlen = 0; unsigned int salt_maxlen = 0; unsigned int rounds_support = 0; const char *salt_prefix = NULL; const char *salt_arg = NULL; unsigned int rounds = 0; char *salt = NULL; char rounds_str[30]; char *password = NULL; #ifdef ENABLE_NLS setlocale(LC_ALL, ""); bindtextdomain(NLS_CAT_NAME, LOCALEDIR); textdomain(NLS_CAT_NAME); #endif /* prepend options from environment */ argv = merge_args(getenv("MKPASSWD_OPTIONS"), argv, &argc); while ((ch = GETOPT_LONGISH(argc, argv, "hH:m:5P:R:sS:V", longopts, 0)) > 0) { switch (ch) { case '5': optarg = (char *) "md5"; /* fall through */ case 'm': case 'H': if (!optarg || strcaseeq("help", optarg)) { display_methods(); exit(0); } for (i = 0; methods[i].method != NULL; i++) if (strcaseeq(methods[i].method, optarg)) { salt_prefix = methods[i].prefix; salt_minlen = methods[i].minlen; salt_maxlen = methods[i].maxlen; rounds_support = methods[i].rounds; break; } if (!salt_prefix) { fprintf(stderr, _("Invalid method '%s'.\n"), optarg); exit(1); } break; case 'P': { char *p; password_fd = strtol(optarg, &p, 10); if (p == NULL || *p != '\0' || password_fd < 0) { fprintf(stderr, _("Invalid number '%s'.\n"), optarg); exit(1); } } break; case 'R': { char *p; rounds = strtol(optarg, &p, 10); if (p == NULL || *p != '\0' || rounds < 0) { fprintf(stderr, _("Invalid number '%s'.\n"), optarg); exit(1); } } break; case 's': password_fd = 0; break; case 'S': salt_arg = optarg; break; case 'V': display_version(); exit(0); case 'h': display_help(EXIT_SUCCESS); default: fprintf(stderr, _("Try '%s --help' for more information.\n"), argv[0]); exit(1); } } argc -= optind; argv += optind; if (argc == 2 && !salt_arg) { password = argv[0]; salt_arg = argv[1]; } else if (argc == 1) { password = argv[0]; } else if (argc == 0) { } else { display_help(EXIT_FAILURE); } /* default: DES password */ if (!salt_prefix) { salt_minlen = methods[0].minlen; salt_maxlen = methods[0].maxlen; salt_prefix = methods[0].prefix; } if (streq(salt_prefix, "$2a$") || streq(salt_prefix, "$2y$")) { /* OpenBSD Blowfish and derivatives */ if (rounds <= 5) rounds = 5; /* actually for 2a/2y it is the logarithm of the number of rounds */ snprintf(rounds_str, sizeof(rounds_str), "%02u$", rounds); } else if (rounds_support && rounds) snprintf(rounds_str, sizeof(rounds_str), "rounds=%u$", rounds); else rounds_str[0] = '\0'; if (salt_arg) { unsigned int c = strlen(salt_arg); if (c < salt_minlen || c > salt_maxlen) { if (salt_minlen == salt_maxlen) fprintf(stderr, ngettext( "Wrong salt length: %d byte when %d expected.\n", "Wrong salt length: %d bytes when %d expected.\n", c), c, salt_maxlen); else fprintf(stderr, ngettext( "Wrong salt length: %d byte when %d <= n <= %d" " expected.\n", "Wrong salt length: %d bytes when %d <= n <= %d" " expected.\n", c), c, salt_minlen, salt_maxlen); exit(1); } while (c-- > 0) { if (strchr(valid_salts, salt_arg[c]) == NULL) { fprintf(stderr, _("Illegal salt character '%c'.\n"), salt_arg[c]); exit(1); } } salt = NOFAIL(malloc(strlen(salt_prefix) + strlen(rounds_str) + strlen(salt_arg) + 1)); *salt = '\0'; strcat(salt, salt_prefix); strcat(salt, rounds_str); strcat(salt, salt_arg); } else { #ifdef HAVE_SOLARIS_CRYPT_GENSALT #error "This code path is untested on Solaris. Please send a patch." salt = crypt_gensalt(salt_prefix, NULL); if (!salt) perror(stderr, "crypt_gensalt"); #elif defined HAVE_LINUX_CRYPT_GENSALT void *entropy = get_random_bytes(64); salt = crypt_gensalt(salt_prefix, rounds, entropy, 64); if (!salt) { fprintf(stderr, "crypt_gensalt failed.\n"); exit(2); } free(entropy); #else unsigned int salt_len = salt_maxlen; if (salt_minlen != salt_maxlen) { /* salt length can vary */ srand(time(NULL) + getpid()); salt_len = rand() % (salt_maxlen - salt_minlen + 1) + salt_minlen; } salt = NOFAIL(malloc(strlen(salt_prefix) + strlen(rounds_str) + salt_len + 1)); *salt = '\0'; strcat(salt, salt_prefix); strcat(salt, rounds_str); generate_salt(salt + strlen(salt), salt_len); #endif } if (password) { } else if (password_fd != -1) { FILE *fp; char *p; if (isatty(password_fd)) fprintf(stderr, _("Password: ")); password = NOFAIL(malloc(128)); fp = fdopen(password_fd, "r"); if (!fp) { perror("fdopen"); exit(2); } if (!fgets(password, 128, fp)) { perror("fgets"); exit(2); } p = strpbrk(password, "\n\r"); if (p) *p = '\0'; } else { password = getpass(_("Password: ")); if (!password) { perror("getpass"); exit(2); } } { const char *result; result = crypt(password, salt); /* xcrypt returns "*0" on errors */ if (!result || result[0] == '*') { fprintf(stderr, "crypt failed.\n"); exit(2); } /* yes, using strlen(salt_prefix) on salt. It's not * documented whether crypt_gensalt may change the prefix */ if (!strneq(result, salt, strlen(salt_prefix))) { fprintf(stderr, _("Method not supported by crypt(3).\n")); exit(2); } printf("%s\n", result); } exit(0); } #ifdef RANDOM_DEVICE void* get_random_bytes(const int count) { char *buf; int fd; buf = NOFAIL(malloc(count)); fd = open(RANDOM_DEVICE, O_RDONLY); if (fd < 0) { perror("open(" RANDOM_DEVICE ")"); exit(2); } if (read(fd, buf, count) != count) { if (count < 0) perror("read(" RANDOM_DEVICE ")"); else fprintf(stderr, "Short read of %s.\n", RANDOM_DEVICE); exit(2); } close(fd); return buf; } #endif #ifdef RANDOM_DEVICE void generate_salt(char *const buf, const unsigned int len) { unsigned int i; unsigned char *entropy = get_random_bytes(len * sizeof(unsigned char)); for (i = 0; i < len; i++) buf[i] = valid_salts[entropy[i] % (sizeof valid_salts - 1)]; buf[i] = '\0'; } #else /* RANDOM_DEVICE */ void generate_salt(char *const buf, const unsigned int len) { unsigned int i; # ifdef HAVE_GETTIMEOFDAY struct timeval tv; gettimeofday(&tv, NULL); srand(tv.tv_sec ^ tv.tv_usec); # else /* HAVE_GETTIMEOFDAY */ # warning "This system lacks a strong enough random numbers generator!" /* * The possible values of time over one year are 31536000, which is * two orders of magnitude less than the allowed entropy range (2^32). */ srand(time(NULL) + getpid()); # endif /* HAVE_GETTIMEOFDAY */ for (i = 0; i < len; i++) buf[i] = valid_salts[rand() % (sizeof valid_salts - 1)]; buf[i] = '\0'; } #endif /* RANDOM_DEVICE */ void display_help(int error) { fprintf((EXIT_SUCCESS == error) ? stdout : stderr, _("Usage: mkpasswd [OPTIONS]... [PASSWORD [SALT]]\n" "Crypts the PASSWORD using crypt(3).\n\n")); fprintf(stderr, _( " -m, --method=TYPE select method TYPE\n" " -5 like --method=md5\n" " -S, --salt=SALT use the specified SALT\n" " -R, --rounds=NUMBER use the specified NUMBER of rounds\n" " -P, --password-fd=NUM read the password from file descriptor NUM\n" " instead of /dev/tty\n" " -s, --stdin like --password-fd=0\n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" "\n" "If PASSWORD is missing then it is asked interactively.\n" "If no SALT is specified, a random one is generated.\n" "If TYPE is 'help', available methods are printed.\n" "\n" "Report bugs to %s.\n"), ""); exit(error); } void display_version(void) { printf("mkpasswd %s\n\n", VERSION); puts("Copyright (C) 2001-2008 Marco d'Itri\n" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."); } void display_methods(void) { unsigned int i; printf(_("Available methods:\n")); for (i = 0; methods[i].method != NULL; i++) printf("%s\t%s\n", methods[i].method, methods[i].desc); } ================================================ FILE: package/mkpasswd/mkpasswd.mk ================================================ ################################################################################ # # mkpasswd # ################################################################################ # source included in buildroot, taken from # https://github.com/rfc1036/whois/blob/master/ # at revision 5a0f08500fa51608b6d3b73ee338be38c692eadb HOST_MKPASSWD_LICENSE = GPL-2.0+ define HOST_MKPASSWD_EXTRACT_CMDS cp $(HOST_MKPASSWD_PKGDIR)/*.c $(HOST_MKPASSWD_PKGDIR)/*.h $(@D) endef define HOST_MKPASSWD_BUILD_CMDS $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ $(@D)/mkpasswd.c $(@D)/utils.c \ -o $(@D)/mkpasswd -lcrypt endef define HOST_MKPASSWD_INSTALL_CMDS $(INSTALL) -D -m 755 $(@D)/mkpasswd $(HOST_DIR)/bin/mkpasswd endef $(eval $(host-generic-package)) MKPASSWD = $(HOST_DIR)/bin/mkpasswd ================================================ FILE: package/mkpasswd/utils.c ================================================ /* * Copyright 1999-2008 by Marco d'Itri . * * do_nofail and merge_args come from the module-init-tools package. * Copyright 2001 by Rusty Russell. * Copyright 2002, 2003 by Rusty Russell, IBM 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. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ /* for strdup */ #define _XOPEN_SOURCE 500 /* System library */ #include #include #include #include #include /* Application-specific */ #include "utils.h" void *do_nofail(void *ptr, const char *file, const int line) { if (ptr) return ptr; err_quit("Memory allocation failure at %s:%d.", file, line); } /* Prepend options from a string. */ char **merge_args(char *args, char *argv[], int *argc) { char *arg, *argstring; char **newargs = NULL; unsigned int i, num_env = 0; if (!args) return argv; argstring = NOFAIL(strdup(args)); for (arg = strtok(argstring, " "); arg; arg = strtok(NULL, " ")) { num_env++; newargs = NOFAIL(realloc(newargs, sizeof(newargs[0]) * (num_env + *argc + 1))); newargs[num_env] = arg; } if (!newargs) return argv; /* Append commandline args */ newargs[0] = argv[0]; for (i = 1; i <= *argc; i++) newargs[num_env + i] = argv[i]; *argc += num_env; return newargs; } /* Error routines */ void err_sys(const char *fmt, ...) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); fprintf(stderr, ": %s\n", strerror(errno)); va_end(ap); exit(2); } void err_quit(const char *fmt, ...) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); fputs("\n", stderr); va_end(ap); exit(2); } ================================================ FILE: package/mkpasswd/utils.h ================================================ #ifndef WHOIS_UTILS_H #define WHOIS_UTILS_H /* Convenience macros */ #define streq(a, b) (strcmp(a, b) == 0) #define strcaseeq(a, b) (strcasecmp(a, b) == 0) #define strneq(a, b, n) (strncmp(a, b, n) == 0) #define strncaseeq(a, b, n) (strncasecmp(a, b, n) == 0) #define NOFAIL(ptr) do_nofail((ptr), __FILE__, __LINE__) /* Portability macros */ #ifdef __GNUC__ # define NORETURN __attribute__((noreturn)) #else # define NORETURN #endif #ifndef AI_IDN # define AI_IDN 0 #endif #ifndef AI_ADDRCONFIG # define AI_ADDRCONFIG 0 #endif #ifdef HAVE_GETOPT_LONG # define GETOPT_LONGISH(c, v, o, l, i) getopt_long(c, v, o, l, i) #else # define GETOPT_LONGISH(c, v, o, l, i) getopt(c, v, o) #endif #ifdef ENABLE_NLS # include # include # define _(a) (gettext(a)) # ifdef gettext_noop # define N_(a) gettext_noop(a) # else # define N_(a) (a) # endif #else # define _(a) (a) # define N_(a) (a) # define ngettext(a, b, c) ((c==1) ? (a) : (b)) #endif /* Prototypes */ void *do_nofail(void *ptr, const char *file, const int line); char **merge_args(char *args, char *argv[], int *argc); void err_quit(const char *fmt, ...) NORETURN; void err_sys(const char *fmt, ...) NORETURN; #endif ================================================ FILE: package/mkpimage/mkpimage.c ================================================ #include #include #include #include #include #include #include #include #include #include #include #define VALIDATION_WORD 0x31305341 #define BRANCH_INST 0xea /* ARM opcode for "b" (unconditional branch) */ #define MAX_V0IMAGE_SIZE (60 * 1024 - 4) /* Max size without authentication is 224 KB, due to memory used by * the ROM boot code as a workspace out of the 256 KB of OCRAM */ #define MAX_V1IMAGE_SIZE (224 * 1024 - 4) static int add_barebox_header; struct socfpga_header { uint8_t validation_word[4]; uint8_t version; uint8_t flags; union { struct { uint8_t program_length[2]; uint8_t spare[2]; uint8_t checksum[2]; uint8_t start_vector[4]; } v0; struct { uint8_t header_length[2]; uint8_t program_length[4]; uint8_t entry_offset[4]; uint8_t spare[2]; uint8_t checksum[2]; } v1; }; }; 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 (offset may be adjusted) */ }; 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 const 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; } /* Create an ARM relative branch instuction * branch is where the instruction will be placed and dest points to where * it should branch too. */ static void branch(uint8_t *branch, uint8_t *dest) { int offset = dest - branch - 8; /* PC is offset +8 bytes on ARM */ branch[0] = (offset >> 2) & 0xff; /* instruction uses offset/4 */ branch[1] = (offset >> 10) & 0xff; branch[2] = (offset >> 18) & 0xff; branch[3] = BRANCH_INST; } /* start_addr is where the socfpga header's start instruction should branch to. * It should be relative to the start of buf */ static int add_socfpga_header(void *buf, size_t size, unsigned start_addr, unsigned version) { struct socfpga_header *header = buf + 0x40; void *entry; uint8_t *bufp, *sumendp; uint32_t *crc; unsigned checksum; if (size & 0x3) { fprintf(stderr, "%s: size must be multiple of 4\n", __func__); return -EINVAL; } /* Absolute address of entry point in buf */ entry = buf + start_addr; if (version == 0) { sumendp = &header->v0.checksum[0]; } else { sumendp = &header->v1.checksum[0]; /* The ROM loader can't handle a negative offset */ if (entry < (void*)header) { /* add a trampoline branch inst after end of the header */ uint8_t *trampoline = (void*)(header + 1); branch(trampoline, entry); /* and then make the trampoline the entry point */ entry = trampoline; } /* Calculate start address as offset relative to start of header */ start_addr = entry - (void*)header; } 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 = version; header->flags = 0; if (version == 0) { header->v0.program_length[0] = (size >> 2) & 0xff; /* length in words */ header->v0.program_length[1] = (size >> 10) & 0xff; header->v0.spare[0] = 0; header->v0.spare[1] = 0; branch(header->v0.start_vector, entry); } else { header->v1.header_length[0] = (sizeof(*header) >> 0) & 0xff; header->v1.header_length[1] = (sizeof(*header) >> 8) & 0xff; header->v1.program_length[0] = (size >> 0) & 0xff; header->v1.program_length[1] = (size >> 8) & 0xff; header->v1.program_length[2] = (size >> 16) & 0xff; header->v1.program_length[3] = (size >> 24) & 0xff; header->v1.entry_offset[0] = (start_addr >> 0) & 0xff; header->v1.entry_offset[1] = (start_addr >> 8) & 0xff; header->v1.entry_offset[2] = (start_addr >> 16) & 0xff; header->v1.entry_offset[3] = (start_addr >> 24) & 0xff; header->v1.spare[0] = 0; header->v1.spare[1] = 0; } /* Sum from beginning of header to start of checksum field */ checksum = 0; for (bufp = (uint8_t*)header; bufp < sumendp; bufp++) checksum += *bufp; if (version == 0) { header->v0.checksum[0] = checksum & 0xff;; header->v0.checksum[1] = (checksum >> 8) & 0xff;; } else { header->v1.checksum[0] = checksum & 0xff;; header->v1.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 [-hb] [-v version] -o \n", prgname); } int main(int argc, char *argv[]) { int opt, ret; const char *outfile = NULL, *infile; struct stat s; void *buf; int fd; int max_image_size, min_image_size = 80; int addsize = 0, pad; unsigned int version = 0; while ((opt = getopt(argc, argv, "o:hbv:")) != -1) { switch (opt) { case 'v': version = atoi(optarg); if (version > 1) { printf("Versions supported: 0 or 1\n"); usage(argv[0]); exit(1); } break; case 'b': add_barebox_header = 1; min_image_size = 0; addsize = 512; break; case 'h': usage(argv[0]); exit(0); case 'o': outfile = optarg; break; default: usage(argv[0]); exit(1); } } if (version == 0) { max_image_size = MAX_V0IMAGE_SIZE; } else { max_image_size = MAX_V1IMAGE_SIZE; } max_image_size -= addsize; if (optind == argc || !outfile) { 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 %d bytes\n", min_image_size); 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 == -1) { 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, addsize, version); 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); } ================================================ FILE: package/mkpimage/mkpimage.mk ================================================ ################################################################################ # # mkpimage # ################################################################################ HOST_MKPIMAGE_LICENSE = GPL-2.0 # source included in the package # came from barebox's repository: # https://git.pengutronix.de/cgit/barebox/tree/scripts/socfpga_mkimage.c?id=55d29525146dcd280987dfd565bfd34f08858fb3 define HOST_MKPIMAGE_EXTRACT_CMDS cp $(HOST_MKPIMAGE_PKGDIR)/mkpimage.c $(@D) endef define HOST_MKPIMAGE_BUILD_CMDS $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ $(@D)/mkpimage.c -o $(@D)/mkpimage endef define HOST_MKPIMAGE_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/mkpimage $(HOST_DIR)/bin/mkpimage endef $(eval $(host-generic-package)) ================================================ FILE: package/mksh/Config.in ================================================ config BR2_PACKAGE_MKSH bool "mksh" depends on BR2_USE_MMU # fork() help The MirBSD Korn Shell, mksh is a successor of pdksh but not affiliated with the pdksh developers or contributors. mksh is not affiliated with the AT&T Korn Shell, its past or present owners, other than that both attempt to implement the Korn Shell programming language. mksh targets users who desire a compact, fast, reliable, secure shell not cut off modern extensions; a shell with Unicode support; an actively developed, current, and portable product; one with developers that listen to their users' requests and implement them if they actually make sense. mksh aims to replace pdksh in all but very rare use cases (such as support for checking the Unix mbox) and in all operating environments (thus including patches from pdksh on e.g. Debian). http://www.mirbsd.org/mksh.htm ================================================ FILE: package/mksh/mksh.hash ================================================ # From http://www.mirbsd.org/mksh.htm#build sha256 77ae1665a337f1c48c61d6b961db3e52119b38e58884d1c89684af31f87bc506 mksh-R59c.tgz # Locally computed sha256 abf44a61ec777c98f8ae7e08e4fe25fe258e0c470215e2eeb22816f6bae72c80 mksh.1 ================================================ FILE: package/mksh/mksh.mk ================================================ ################################################################################ # # mksh # ################################################################################ MKSH_VERSION = 59c MKSH_SOURCE = mksh-R$(MKSH_VERSION).tgz MKSH_SITE = http://www.mirbsd.org/MirOS/dist/mir/mksh # For MirOS License see http://www.mirbsd.org/TaC-mksh.txt MKSH_LICENSE = MirOS, ISC MKSH_LICENSE_FILES = mksh.1 define MKSH_BUILD_CMDS cd $(@D) && $(TARGET_MAKE_ENV) \ TARGET_OS=Linux $(TARGET_CONFIGURE_OPTS) \ sh ./Build.sh endef define MKSH_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/mksh $(TARGET_DIR)/bin/mksh endef # Add /bin/mksh to /etc/shells otherwise some login tools like dropbear # can reject the user connection. See man shells. define MKSH_ADD_MKSH_TO_SHELLS grep -qsE '^/bin/mksh$$' $(TARGET_DIR)/etc/shells \ || echo "/bin/mksh" >> $(TARGET_DIR)/etc/shells endef MKSH_TARGET_FINALIZE_HOOKS += MKSH_ADD_MKSH_TO_SHELLS $(eval $(generic-package)) ================================================ FILE: package/mmc-utils/0001-mmc_cmds.c-fix-build-with-gcc-4.9.patch ================================================ From 6208cc78f6efd1fafc4f5bc6a487247a383df80f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 28 Sep 2019 20:44:52 +0200 Subject: [PATCH] mmc_cmds.c: fix build with gcc 4.9 Fix following error with gcc 4.9: mmc_cmds.c:1918:9: error: missing braces around initializer [-Werror=missing-braces] struct rpmb_frame frame_status = {0}; Fixes: - http://autobuild.buildroot.org/results/bf3b6f9f6ef39b99842b3c92495b7bf359c68158 Signed-off-by: Fabrice Fontaine [Upstream status: sent to linux-mmc@vger.kernel.org] --- mmc_cmds.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mmc_cmds.c b/mmc_cmds.c index fb37189..6b09f26 100644 --- a/mmc_cmds.c +++ b/mmc_cmds.c @@ -1915,7 +1915,9 @@ static int do_rpmb_op(int fd, u_int16_t rpmb_type; struct mmc_ioc_multi_cmd *mioc; struct mmc_ioc_cmd *ioc; - struct rpmb_frame frame_status = {0}; + struct rpmb_frame frame_status; + + memset(&frame_status, 0, sizeof(frame_status)); if (!frame_in || !frame_out || !out_cnt) return -EINVAL; -- 2.23.0 ================================================ FILE: package/mmc-utils/Config.in ================================================ config BR2_PACKAGE_MMC_UTILS bool "mmc-utils" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 help MMC utils https://git.kernel.org/cgit/linux/kernel/git/cjb/mmc-utils.git comment "mmc-utils needs a toolchain w/ headers >= 3.0" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 ================================================ FILE: package/mmc-utils/mmc-utils.hash ================================================ # Locally computed sha256 ffc8f77233d1bd39ce4ec68835ad94aa6762624e4e96fb60102e87ba82db083e mmc-utils-d40ec535b9d4e4c974e8c2fbfb422cd0348cc5e8-br1.tar.gz sha256 c3165393bcd710624e2909327a6fbeb736c47bdbe66de1c1a364ac7324d3e4d6 mmc.h ================================================ FILE: package/mmc-utils/mmc-utils.mk ================================================ ################################################################################ # # mmc-utils # ################################################################################ MMC_UTILS_VERSION = d40ec535b9d4e4c974e8c2fbfb422cd0348cc5e8 MMC_UTILS_SITE = git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git MMC_UTILS_LICENSE = GPL-2.0 MMC_UTILS_LICENSE_FILES = mmc.h # override AM_CFLAGS as the project Makefile uses it to pass # -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2, and the latter conflicts # with the _FORTIFY_SOURCE that we pass when hardening options are # enabled. define MMC_UTILS_BUILD_CMDS $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) AM_CFLAGS= endef define MMC_UTILS_INSTALL_TARGET_CMDS $(MAKE) -C $(@D) prefix=/usr DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/moarvm/Config.in ================================================ config BR2_PACKAGE_MOARVM bool "moarvm" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv 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 sparcv8/sparcv9 depends on !BR2_sparc64 && !BR2_sparc depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv select BR2_PACKAGE_LIBUV select BR2_PACKAGE_LIBTOMMATH select BR2_PACKAGE_LIBATOMIC_OPS # dyncall does not work on MIPS; libffi needs to be used. # See: https://github.com/MoarVM/MoarVM/issues/222 # dyncall does not work also on powerpc64 and powerpc64le select BR2_PACKAGE_LIBFFI if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || BR2_powerpc64 || BR2_powerpc64le select BR2_PACKAGE_ZSTD help Short for "Metamodel On A Runtime", MoarVM is a virtual machine built especially for Rakudo Perl 6 and the NQP Compiler Toolchain. http://moarvm.com comment "moarvm needs a toolchain w/ NPTL, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS depends on BR2_USE_MMU depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS depends on !BR2_sparc64 && !BR2_sparc depends on BR2_TOOLCHAIN_HAS_SYNC_4 ================================================ FILE: package/moarvm/moarvm.hash ================================================ # Locally computed sha256 7f3487a70e8b77be0e4e2f12b14c49f6a01d0378e0940c86958c9016c495ad75 MoarVM-2021.10.tar.gz sha256 c53c6b96081b0a5b9b2fb4d0133d55c20e5e00e4c127ade62f03434ee7b3d2de Artistic2.txt ================================================ FILE: package/moarvm/moarvm.mk ================================================ ################################################################################ # # moarvm # ################################################################################ MOARVM_VERSION = 2021.10 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-pkgconf libuv libtommath libatomic_ops zstd MOARVM_CONF_OPTS = \ --build=$(GNU_HOST_NAME) \ --host=$(GNU_TARGET_NAME) \ --ar="$(TARGET_AR)" \ --cc="$(TARGET_CC)" \ --ld="$(TARGET_CC)" \ --prefix="/usr" \ --pkgconfig=$(PKG_CONFIG_HOST_BINARY) \ --has-libuv \ --has-libtommath \ --has-libatomic ifeq ($(BR2_PACKAGE_LIBFFI),y) MOARVM_CONF_OPTS += --has-libffi MOARVM_DEPENDENCIES += libffi endif ifeq ($(BR2_ENDIAN),"BIG") MOARVM_CONF_OPTS += --big-endian endif define MOARVM_CONFIGURE_CMDS (cd $(@D); $(TARGET_MAKE_ENV) perl Configure.pl $(MOARVM_CONF_OPTS)) endef define MOARVM_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define MOARVM_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef define MOARVM_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/mobile-broadband-provider-info/Config.in ================================================ config BR2_PACKAGE_MOBILE_BROADBAND_PROVIDER_INFO bool "mobile-broadband-provider-info" help Mobile broadband provider database. http://live.gnome.org/NetworkManager/MobileBroadband/ServiceProviders ================================================ FILE: package/mobile-broadband-provider-info/mobile-broadband-provider-info.hash ================================================ # http://ftp.acc.umu.se/pub/GNOME/sources/mobile-broadband-provider-info/20190618/mobile-broadband-provider-info-20190618.sha256sum sha256 c22d64a565d1975b9eecb6ed2eeaef18634bc6f385c8137d05e845d8fb3cce5b mobile-broadband-provider-info-20190618.tar.xz # Locally computed sha256 3d510b215a33087b9ceb9592da21575ea1f9f98bd4d983a38e65fe851a552174 COPYING ================================================ FILE: package/mobile-broadband-provider-info/mobile-broadband-provider-info.mk ================================================ ################################################################################ # # mobile-broadband-provider-info # ################################################################################ MOBILE_BROADBAND_PROVIDER_INFO_VERSION = 20190618 MOBILE_BROADBAND_PROVIDER_INFO_SITE = http://ftp.gnome.org/pub/GNOME/sources/mobile-broadband-provider-info/$(MOBILE_BROADBAND_PROVIDER_INFO_VERSION) MOBILE_BROADBAND_PROVIDER_INFO_SOURCE = mobile-broadband-provider-info-$(MOBILE_BROADBAND_PROVIDER_INFO_VERSION).tar.xz MOBILE_BROADBAND_PROVIDER_INFO_LICENSE = Public domain MOBILE_BROADBAND_PROVIDER_INFO_LICENSE_FILES = COPYING MOBILE_BROADBAND_PROVIDER_INFO_INSTALL_STAGING = YES MOBILE_BROADBAND_PROVIDER_INFO_DEPENDENCIES = host-pkgconf host-libxslt $(eval $(autotools-package)) ================================================ FILE: package/modem-manager/Config.in ================================================ config BR2_PACKAGE_MODEM_MANAGER bool "modem-manager" depends on BR2_USE_WCHAR # libglib2 and gnutls depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2 depends on BR2_USE_MMU # dbus select BR2_PACKAGE_DBUS # runtime dependency select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBGUDEV if BR2_PACKAGE_HAS_UDEV help ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections. http://www.freedesktop.org/wiki/Software/ModemManager/ if BR2_PACKAGE_MODEM_MANAGER config BR2_PACKAGE_MODEM_MANAGER_LIBMBIM bool "MBIM support" select BR2_PACKAGE_LIBMBIM help This option enables support for MBIM protocol config BR2_PACKAGE_MODEM_MANAGER_LIBQMI bool "QMI support" select BR2_PACKAGE_LIBQMI help This option enables support for QMI protocol endif comment "modemmanager needs a toolchain w/ wchar, threads" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU ================================================ FILE: package/modem-manager/S44modem-manager ================================================ #!/bin/sh # # Starts ModemManager # # Allow a few customizations from a config file test -r /etc/default/ModemManager && . /etc/default/ModemManager PIDFILE=/var/run/ModemManager.pid start() { printf "Starting ModemManager: " umask 077 start-stop-daemon -S -q -b -m -p $PIDFILE \ --exec /usr/sbin/ModemManager -- $MODEMMANAGER_ARGS [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping ModemManager: " start-stop-daemon -K -q -p $PIDFILE [ $? = 0 ] && { echo "OK"; rm -f $PIDFILE; } || 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 $ret ================================================ FILE: package/modem-manager/modem-manager.hash ================================================ # Locally computed sha256 2ccf1f716c2d121e8e6709bcf8af29ee86971a90adacca2e8d6288b30278862e ModemManager-1.16.10.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB ================================================ FILE: package/modem-manager/modem-manager.mk ================================================ ################################################################################ # # modem-manager # ################################################################################ MODEM_MANAGER_VERSION = 1.16.10 MODEM_MANAGER_SOURCE = ModemManager-$(MODEM_MANAGER_VERSION).tar.xz MODEM_MANAGER_SITE = http://www.freedesktop.org/software/ModemManager MODEM_MANAGER_LICENSE = GPL-2.0+ (programs, plugins), LGPL-2.0+ (libmm-glib) MODEM_MANAGER_LICENSE_FILES = COPYING COPYING.LIB MODEM_MANAGER_SELINUX_MODULES = modemmanager MODEM_MANAGER_DEPENDENCIES = host-pkgconf libglib2 $(TARGET_NLS_DEPENDENCIES) MODEM_MANAGER_INSTALL_STAGING = YES MODEM_MANAGER_CONF_OPTS = --disable-more-warnings ifeq ($(BR2_PACKAGE_MODEM_MANAGER_LIBQMI),y) MODEM_MANAGER_DEPENDENCIES += libqmi MODEM_MANAGER_CONF_OPTS += --with-qmi else MODEM_MANAGER_CONF_OPTS += --without-qmi endif ifeq ($(BR2_PACKAGE_LIBGUDEV),y) MODEM_MANAGER_DEPENDENCIES += libgudev MODEM_MANAGER_CONF_OPTS += --with-udev else MODEM_MANAGER_CONF_OPTS += --without-udev endif ifeq ($(BR2_PACKAGE_MODEM_MANAGER_LIBMBIM),y) MODEM_MANAGER_DEPENDENCIES += libmbim MODEM_MANAGER_CONF_OPTS += --with-mbim else MODEM_MANAGER_CONF_OPTS += --without-mbim endif ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) MODEM_MANAGER_DEPENDENCIES += gobject-introspection MODEM_MANAGER_CONF_OPTS += --enable-introspection else MODEM_MANAGER_CONF_OPTS += --disable-introspection endif define MODEM_MANAGER_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/modem-manager/S44modem-manager \ $(TARGET_DIR)/etc/init.d/S44modem-manager endef $(eval $(autotools-package)) ================================================ FILE: package/modplugtools/Config.in ================================================ config BR2_PACKAGE_MODPLUGTOOLS bool "modplugtools" depends on BR2_INSTALL_LIBSTDCPP # libmodplug select BR2_PACKAGE_LIBAO select BR2_PACKAGE_LIBMODPLUG help This installs the 'modplug123' command line tool to play music files in the tracker formats supported by libmodplug: MOD, S3M, XM etc. Audio output is handled by libao. http://modplug-xmms.sourceforge.net/ comment "modplugtools needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/modplugtools/modplugtools.hash ================================================ # Locally computed: sha256 0122d44ea0513b928cf9d463acc886d08a2664579aa96ddeeb270d5c81193a4e modplugtools-0.5.3.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/modplugtools/modplugtools.mk ================================================ ################################################################################ # # modplugtools # ################################################################################ MODPLUGTOOLS_VERSION = 0.5.3 MODPLUGTOOLS_SITE = http://downloads.sourceforge.net/project/modplug-xmms/modplug-tools MODPLUGTOOLS_LICENSE = GPL-3.0 MODPLUGTOOLS_LICENSE_FILES = COPYING MODPLUGTOOLS_DEPENDENCIES = libao libmodplug # Only build the 'mp123' subdir, which contains 'modplug123' that plays through # various backends via libao. This excludes the 'mpplay' subdir, which contains # 'modplugplay' that can play only through the deprecated OSS interface. MODPLUGTOOLS_MAKE_OPTS = SUBDIRS=mp123 MODPLUGTOOLS_INSTALL_TARGET_OPTS = SUBDIRS=mp123 DESTDIR=$(TARGET_DIR) install $(eval $(autotools-package)) ================================================ FILE: package/mongodb/0001-ssl_manager.cpp-fix-build-with-gcc-7-and-fpermissive.patch ================================================ From 362be06fc16a5ad0f9e9aa90cc763c5242e8e35c Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 9 Feb 2019 12:41:45 +0100 Subject: [PATCH] ssl_manager.cpp: fix build with gcc 7 and -fpermissive Change prototype of DERToken::parse function from parse(ConstDataRange cdr, size_t* outLength); to parse(ConstDataRange cdr, uint64_t* outLength); Otherwise, we got the following error: src/mongo/util/net/ssl_manager.cpp: In static member function 'static mongo::StatusWith mongo::{anonymous}::DERToken::parse(mongo::ConstDataRange, size_t*)': src/mongo/util/net/ssl_manager.cpp:575:79: error: invalid conversion from 'size_t* {aka unsigned int*}' to 'long unsigned int*' [-fpermissive] if (mongoUnsignedAddOverflow64(tagAndLengthByteCount, derLength, outLength) || Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/mongodb/mongo/pull/1296] --- src/mongo/util/net/ssl_manager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mongo/util/net/ssl_manager.cpp b/src/mongo/util/net/ssl_manager.cpp index b93ebe84a4..3511eb5d99 100644 --- a/src/mongo/util/net/ssl_manager.cpp +++ b/src/mongo/util/net/ssl_manager.cpp @@ -782,7 +782,7 @@ public: * * Returns a DERToken which consists of the (tag, length, value) tuple. */ - static StatusWith parse(ConstDataRange cdr, size_t* outLength); + static StatusWith parse(ConstDataRange cdr, uint64_t* outLength); private: DERType _type{DERType::EndOfContent}; @@ -799,7 +799,7 @@ struct DataType::Handler { size_t length, size_t* advanced, std::ptrdiff_t debug_offset) { - size_t outLength; + uint64_t outLength; auto swPair = DERToken::parse(ConstDataRange(ptr, length), &outLength); @@ -844,7 +844,7 @@ StatusWith readDERString(ConstDataRangeCursor& cdc) { } -StatusWith DERToken::parse(ConstDataRange cdr, size_t* outLength) { +StatusWith DERToken::parse(ConstDataRange cdr, uint64_t* outLength) { const size_t kTagLength = 1; const size_t kTagLengthAndInitialLengthByteLength = kTagLength + 1; -- 2.14.1 ================================================ FILE: package/mongodb/0002-src-mongo-db-exec-plan_stats.h-fix-build-with-gcc-11.patch ================================================ From 0941e560850d54160c24778fa66b605714fd5012 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 9 Aug 2021 21:18:50 +0200 Subject: [PATCH] src/mongo/db/exec/plan_stats.h: fix build with gcc 11 Fix the following build failure with gcc 11: In file included from src/mongo/db/query/plan_cache.h:36, from src/mongo/db/catalog/collection_info_cache.h:33, from src/mongo/db/catalog/collection.h:42, from src/mongo/db/exec/requires_collection_stage.h:32, from src/mongo/db/exec/delete.h:32, from src/mongo/db/query/internal_plans.h:33, from src/mongo/db/query/internal_plans.cpp:32: src/mongo/db/exec/plan_stats.h:214:10: error: 'optional' in namespace 'std' does not name a template type 214 | std::optional replanReason; | ^~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/8c0875fa413923504515a83d8b679366418c2444 Signed-off-by: Fabrice Fontaine [Upstream status: already fixed by https://github.com/mongodb/mongo/commit/e78b2bf6eaa0c43bd76dbb841add167b443d2bb0] --- src/mongo/db/exec/plan_stats.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mongo/db/exec/plan_stats.h b/src/mongo/db/exec/plan_stats.h index 43053e27be..813e4edc9e 100644 --- a/src/mongo/db/exec/plan_stats.h +++ b/src/mongo/db/exec/plan_stats.h @@ -31,6 +31,7 @@ #include #include +#include #include #include -- 2.30.2 ================================================ FILE: package/mongodb/0003-SERVER-59459-With-glibc-2-34-MINSIGSTKSZ-is-no-longer-a-constant.patch ================================================ From ef08d0dbc99db8c4620512e92bfb3154282eb5d3 Mon Sep 17 00:00:00 2001 From: Andrew Morrow Date: Wed, 15 Sep 2021 15:23:42 -0400 Subject: [PATCH] SERVER-59459 With glibc-2.34, MINSIGSTKSZ is no longer a constant [Retrieved (and backported) from: https://github.com/mongodb/mongo/commit/ef08d0dbc99db8c4620512e92bfb3154282eb5d3] Signed-off-by: Fabrice Fontaine --- src/mongo/stdx/thread.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/mongo/stdx/thread.h b/src/mongo/stdx/thread.h index 7b15bb561bd9..6f1e16cdeb36 100644 --- a/src/mongo/stdx/thread.h +++ b/src/mongo/stdx/thread.h @@ -76,11 +76,19 @@ class SigAltStackController { } private: + static size_t _getStackSize() { + // It would be nice for this to be a constexpr, but + // MINSIGSTKSZ became a macro that invoked `sysconf` in glibc + // 2.34. + static const std::size_t kMinSigStkSz = MINSIGSTKSZ; + return std::max(kMongoMinSignalStackSize, kMinSigStkSz); + } + void _install() const { stack_t ss; ss.ss_sp = _stackStorage.get(); ss.ss_flags = 0; - ss.ss_size = kStackSize; + ss.ss_size = _getStackSize(); if (sigaltstack(&ss, nullptr)) { abort(); } @@ -107,9 +115,7 @@ class SigAltStackController { // ( https://jira.mongodb.org/secure/attachment/233569/233569_stacktrace-writeup.txt ) static constexpr std::size_t kMongoMinSignalStackSize = std::size_t{64} << 10; - static constexpr std::size_t kStackSize = - std::max(kMongoMinSignalStackSize, std::size_t{MINSIGSTKSZ}); - std::unique_ptr _stackStorage = std::make_unique(kStackSize); + std::unique_ptr _stackStorage = std::make_unique(_getStackSize()); #else // !MONGO_HAS_SIGALTSTACK auto makeInstallGuard() const { ================================================ FILE: package/mongodb/Config.in ================================================ # from https://docs.mongodb.com/manual/installation/#supported-platforms config BR2_PACKAGE_MONGODB_ARCH_SUPPORTS bool # ARM needs LDREX/STREX, so ARMv6+ default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 default y if BR2_aarch64 || BR2_x86_64 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem config BR2_PACKAGE_MONGODB bool "mongodb" depends on BR2_PACKAGE_MONGODB_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_USES_GLIBC # needs glibc malloc_usable_size depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_IOSTREAMS select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_PCRE select BR2_PACKAGE_PCRE_UTF # runtime select BR2_PACKAGE_SNAPPY select BR2_PACKAGE_SQLITE select BR2_PACKAGE_YAML_CPP select BR2_PACKAGE_ZLIB help MongoDB is a cross-platform document-oriented database (NoSQL). It uses JSON-like documents with dynamic schemas (BSON), making the integration of data in certain types of applications easier and faster. https://www.mongodb.org/ comment "mongodb needs a glibc toolchain w/ wchar, threads, C++, gcc >= 7" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 depends on BR2_PACKAGE_MONGODB_ARCH_SUPPORTS ================================================ FILE: package/mongodb/mongodb.hash ================================================ # Locally computed: sha256 ab5a8b6e967614a8ad67c0ca87124c4f380d4a476508973a7995d54ed902b02e mongodb-src-r4.2.11.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 APACHE-2.0.txt sha256 09d99ca61eb07873d5334077acba22c33e7f7d0a9fa08c92734e0ac8430d6e27 LICENSE-Community.txt ================================================ FILE: package/mongodb/mongodb.mk ================================================ ################################################################################ # # mongodb # ################################################################################ MONGODB_VERSION = 4.2.11 MONGODB_SITE = https://fastdl.mongodb.org/src MONGODB_SOURCE = mongodb-src-r$(MONGODB_VERSION).tar.gz MONGODB_LICENSE = Apache-2.0 (drivers), SSPL (database) MONGODB_LICENSE_FILES = APACHE-2.0.txt LICENSE-Community.txt MONGODB_CPE_ID_VENDOR = mongodb MONGODB_SELINUX_MODULES = mongodb MONGODB_DEPENDENCIES = \ boost \ host-python3-cheetah \ host-python3-psutil \ host-python3-pyyaml \ host-python3-regex \ host-python-requests \ host-scons \ pcre \ snappy \ sqlite \ yaml-cpp \ zlib MONGODB_SCONS_TARGETS = mongod mongos MONGODB_SCONS_ENV = CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" \ -j"$(PARALLEL_JOBS)" MONGODB_SCONS_OPTS = \ --disable-minimum-compiler-version-enforcement \ --disable-warnings-as-errors \ --use-system-boost \ --use-system-pcre \ --use-system-snappy \ --use-system-sqlite \ --use-system-yaml \ --use-system-zlib # need to pass mongo version when not building from git repo MONGODB_SCONS_OPTS += MONGO_VERSION=$(MONGODB_VERSION)- # WiredTiger database storage engine only supported on 64 bits ifeq ($(BR2_ARCH_IS_64),y) MONGODB_SCONS_OPTS += --wiredtiger=on else MONGODB_SCONS_OPTS += --wiredtiger=off endif # JavaScript scripting engine and tcmalloc supported only on # x86/x86-64 systems. Mongo target is a shell interface that # depends on the javascript engine, so it will also only be # built on x86/x86-64 systems. ifeq ($(BR2_i386)$(BR2_x86_64),y) MONGODB_SCONS_OPTS += --js-engine=mozjs --allocator=tcmalloc MONGODB_SCONS_TARGETS += mongo else MONGODB_SCONS_OPTS += --js-engine=none --allocator=system endif ifeq ($(BR2_PACKAGE_LIBCURL),y) MONGODB_DEPENDENCIES += libcurl MONGODB_SCONS_OPTS += \ --enable-free-mon=on \ --enable-http-client=on else MONGODB_SCONS_OPTS += \ --enable-free-mon=off \ --enable-http-client=off endif ifeq ($(BR2_PACKAGE_OPENSSL),y) MONGODB_DEPENDENCIES += openssl MONGODB_SCONS_OPTS += \ --ssl=on \ --ssl-provider=openssl else MONGODB_SCONS_OPTS += --ssl=off endif define MONGODB_BUILD_CMDS (cd $(@D); \ $(HOST_DIR)/bin/python3 $(SCONS) \ $(MONGODB_SCONS_ENV) \ $(MONGODB_SCONS_OPTS) \ $(MONGODB_SCONS_TARGETS)) endef define MONGODB_INSTALL_TARGET_CMDS (cd $(@D); \ $(HOST_DIR)/bin/python3 $(SCONS) \ $(MONGODB_SCONS_ENV) \ $(MONGODB_SCONS_OPTS) \ --prefix=$(TARGET_DIR)/usr \ install) endef $(eval $(generic-package)) ================================================ FILE: package/mongoose/Config.in ================================================ config BR2_PACKAGE_MONGOOSE bool "mongoose" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() help Mongoose is an embedded networking library, which can turn anything into a web server https://github.com/cesanta/mongoose comment "mongoose needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/mongoose/mongoose.hash ================================================ # Locally computed: sha256 8c5024a4e5b5a0c7fdae3c24ebc68e2b3ccfaba08cf25c2e76fc7f14f92fd4a5 mongoose-7.2.tar.gz sha256 9553d057f2ba980642f2c18d87ed38896cff1c9612d77d684a73a11fe1443b05 LICENSE ================================================ FILE: package/mongoose/mongoose.mk ================================================ ################################################################################ # # mongoose # ################################################################################ MONGOOSE_VERSION = 7.2 MONGOOSE_SITE = $(call github,cesanta,mongoose,$(MONGOOSE_VERSION)) MONGOOSE_LICENSE = GPL-2.0 MONGOOSE_LICENSE_FILES = LICENSE MONGOOSE_CPE_ID_VENDOR = cesenta MONGOOSE_INSTALL_STAGING = YES # static library MONGOOSE_INSTALL_TARGET = NO MONGOOSE_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_PACKAGE_OPENSSL),y) MONGOOSE_DEPENDENCIES += openssl MONGOOSE_CFLAGS += -DMG_ENABLE_OPENSSL=1 else ifeq ($(BR2_PACKAGE_MBEDTLS),y) MONGOOSE_DEPENDENCIES += mbedtls MONGOOSE_CFLAGS += -DMG_ENABLE_MBEDTLS=1 endif define MONGOOSE_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CC) -c $(@D)/mongoose.c $(MONGOOSE_CFLAGS) -o $(@D)/mongoose.o $(TARGET_MAKE_ENV) $(TARGET_AR) rcs $(@D)/libmongoose.a $(@D)/mongoose.o endef define MONGOOSE_INSTALL_STAGING_CMDS $(INSTALL) -D -m 644 $(@D)/libmongoose.a \ $(STAGING_DIR)/usr/lib/libmongoose.a $(INSTALL) -D -m 644 $(@D)/mongoose.h \ $(STAGING_DIR)/usr/include/mongoose.h endef $(eval $(generic-package)) ================================================ FILE: package/mongrel2/0001-Do-not-run-tests.patch ================================================ From 3cbef2195533f357c8a80c2840108662461273b7 Mon Sep 17 00:00:00 2001 From: Lionel Orry Date: Wed, 27 Mar 2013 14:48:19 +0100 Subject: [PATCH 4/4] Do not run tests. This patch is specific to cross-compiled environments and avoids running the tests on the host. It is not meant to be applied upstream. Signed-off-by: Lionel Orry --- Makefile | 2 +- tools/m2sh/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 7dc4089..ca72630 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ TEST_SRC=$(wildcard tests/*_tests.c) TESTS=$(patsubst %.c,%,${TEST_SRC}) MAKEOPTS=OPTFLAGS="${NOEXTCFLAGS} ${OPTFLAGS}" OPTLIBS="${OPTLIBS}" LIBS="${LIBS}" DESTDIR="${DESTDIR}" PREFIX="${PREFIX}" -all: bin/mongrel2 tests m2sh procer +all: bin/mongrel2 m2sh procer filters config_modules dev: CFLAGS=-g -Wall -Isrc -Wall -Wextra $(OPTFLAGS) -D_FILE_OFFSET_BITS=64 dev: all diff --git a/tools/m2sh/Makefile b/tools/m2sh/Makefile index b50d8a0..334e4da 100644 --- a/tools/m2sh/Makefile +++ b/tools/m2sh/Makefile @@ -9,7 +9,7 @@ TESTS=$(patsubst %.c,%,${TEST_SRC}) LIB_SRC=$(filter-out src/m2sh.c,${SOURCES}) LIB_OBJ=$(filter-out src/m2sh.o,${OBJECTS}) -all: ../lemon/lemon tests build/m2sh +all: ../lemon/lemon build/m2sh dev: CFLAGS=-g -Wall -Wextra -Isrc -I../../src $(OPTFLAGS) dev: all -- 1.8.1.4 ================================================ FILE: package/mongrel2/0002-Fix-Makefiles-for-cross-compilation.patch ================================================ From 298356c44a7df2b34c4e307c531d2010e2cb4b79 Mon Sep 17 00:00:00 2001 From: Lionel Orry Date: Wed, 27 Mar 2013 15:56:56 +0100 Subject: [PATCH] Fix Makefiles for cross-compilation The CFLAGS handling in mongrel2 is really messy and it is hard to make it behave correctly with cross-compiling environments. This patch restricts the Makefiles syntax to GNU Make, but help cross-compiling. This is not meant to be applied upstream. Signed-off-by: Lionel Orry [Fabrice: refresh for 1.12.2] Signed-off-by: Fabrice Fontaine --- Makefile | 2 +- tools/config_modules/Makefile | 2 +- tools/filters/Makefile | 2 +- tools/m2sh/Makefile | 2 +- tools/procer/Makefile | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 4e89c33..2f549a8 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ CFLAGS?=-g -O2 -CFLAGS += -Wall -Wextra -Wno-implicit-fallthrough -Wno-unused-const-variable -I./src -DNDEBUG -D_FILE_OFFSET_BITS=64 -pthread +override CFLAGS += -Wall -Wextra -Wno-implicit-fallthrough -Wno-unused-const-variable -I./src -DNDEBUG -D_FILE_OFFSET_BITS=64 -pthread CFLAGS += ${OPTFLAGS} LIBS+=-lzmq -ldl -lsqlite3 -lmbedtls -lmbedx509 -lmbedcrypto PREFIX?=/usr/local diff --git a/tools/config_modules/Makefile b/tools/config_modules/Makefile index c2680d1..ada3169 100644 --- a/tools/config_modules/Makefile +++ b/tools/config_modules/Makefile @@ -1,5 +1,5 @@ PREFIX?=/usr/local -CFLAGS=-I../../src -I../../src/mbedtls/include $(OPTFLAGS) -fPIC -shared -nostartfiles -L../../build +override CFLAGS=-I../../src -I../../src/mbedtls/include $(OPTFLAGS) -fPIC -shared -nostartfiles -L../../build LDFLAGS=$(OPTLIBS) MONGO_SRC = mongo-c-driver/src/bson.c \ diff --git a/tools/filters/Makefile b/tools/filters/Makefile index 6505ad5..a968ef6 100644 --- a/tools/filters/Makefile +++ b/tools/filters/Makefile @@ -1,5 +1,5 @@ PREFIX?=/usr/local -CFLAGS=-I../../src -I../../src/mbedtls/include $(OPTFLAGS) -g -fPIC -shared -nostartfiles -L../../build +override CFLAGS=-I../../src -I../../src/mbedtls/include $(OPTFLAGS) -g -fPIC -shared -nostartfiles -L../../build LDFLAGS=$(OPTLIBS) all: null.so rewrite.so sendfile.so diff --git a/tools/m2sh/Makefile b/tools/m2sh/Makefile index b50d8a0..cc00062 100644 --- a/tools/m2sh/Makefile +++ b/tools/m2sh/Makefile @@ -1,4 +1,4 @@ -CFLAGS=-DNDEBUG -DNO_LINENOS -pthread -g -I../../src -Isrc -Wall $(OPTFLAGS) +override CFLAGS=-DNDEBUG -DNO_LINENOS -pthread -g -I../../src -Isrc -Wall $(OPTFLAGS) LIBS=-lzmq -lsqlite3 ../../build/libm2.a $(OPTLIBS) PREFIX?=/usr/local diff --git a/tools/procer/Makefile b/tools/procer/Makefile index bb9aa31..d377f7f 100644 --- a/tools/procer/Makefile +++ b/tools/procer/Makefile @@ -1,4 +1,4 @@ -CFLAGS=-DNDEBUG -pthread -g -I../../src -Wall $(OPTFLAGS) +override CFLAGS=-DNDEBUG -pthread -g -I../../src -Wall $(OPTFLAGS) PREFIX?=/usr/local LIBS?=-lzmq SOURCES=$(wildcard *.c) -- 2.27.0 ================================================ FILE: package/mongrel2/0003-fix-multiple-definition-error-when-building-with-gcc10.patch ================================================ From c51815b10c39c6e802bd1b56549f1d479b480fcc Mon Sep 17 00:00:00 2001 From: Andrew Sun Date: Sat, 18 Jul 2020 09:11:11 -0400 Subject: [PATCH] fix multiple definition error when building with gcc10 [Retrieved from: https://github.com/mongrel2/mongrel2/pull/343/commits/c51815b10c39c6e802bd1b56549f1d479b480fcc] Signed-off-by: Fabrice Fontaine --- src/unixy.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unixy.h b/src/unixy.h index 045e7c28..4225220c 100644 --- a/src/unixy.h +++ b/src/unixy.h @@ -38,7 +38,7 @@ #include #include -char *m2program; +extern char *m2program; int Unixy_chroot(bstring path); ================================================ FILE: package/mongrel2/0004-Support-urandom-inside-chroot.patch ================================================ From 330e8c8352eb0ed3c178ac6e0102403c0a835492 Mon Sep 17 00:00:00 2001 From: Jason Miller Date: Thu, 5 Jul 2018 20:53:51 -0700 Subject: [PATCH] Support urandom inside chroot This adds a new default entropy function that uses a /dev/urandom stream opened before the chroot. If initializing that fails, it fallsback on HAVEGE only if HAVEGE is supported by the mbedTLS. This should remove the hard requirement on HAVEGE resolves #326 resolves #327 [Upstream status: https://github.com/mongrel2/mongrel2/pull/328] Signed-off-by: Fabrice Fontaine --- src/mongrel2.c | 7 ------- src/server.c | 36 +++++++++++++++++++++++------------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/mongrel2.c b/src/mongrel2.c index da632d95..48ece8a5 100644 --- a/src/mongrel2.c +++ b/src/mongrel2.c @@ -404,13 +404,6 @@ void taskmain(int argc, char **argv) rc = attempt_chroot_drop(srv); check(rc == 0, "Major failure in chroot/droppriv, aborting."); - // set up rng after chroot - // TODO: once mbedtls is updated, we can move this back into Server_create - if(srv->use_ssl) { - rc = Server_init_rng(srv); - check(rc == 0, "Failed to initialize rng for server %s", bdata(srv->uuid)); - } - final_setup(); taskcreate(tickertask, NULL, TICKER_TASK_STACK); diff --git a/src/server.c b/src/server.c index 45761db4..e44e199b 100644 --- a/src/server.c +++ b/src/server.c @@ -149,35 +149,45 @@ static int Server_load_ciphers(Server *srv, bstring ssl_ciphers_val) return -1; } +static int urandom_entropy_func(void *data, unsigned char *output, size_t len) +{ + FILE* urandom = (FILE *)data; + size_t rc = fread(output, 1, len, urandom); + + if (rc != len) return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; + + return 0; +} + int Server_init_rng(Server *srv) { int rc; - unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE]; void *ctx = NULL; - mbedtls_entropy_init( &srv->entropy ); + FILE *urandom = fopen("/dev/urandom","r"); - // test the entropy source - rc = mbedtls_entropy_func(&srv->entropy, buf, MBEDTLS_ENTROPY_BLOCK_SIZE); - - if(rc == 0) { + if(urandom != NULL) { ctx = calloc(sizeof(mbedtls_ctr_drbg_context), 1); mbedtls_ctr_drbg_init((mbedtls_ctr_drbg_context *)ctx); rc = mbedtls_ctr_drbg_seed((mbedtls_ctr_drbg_context *)ctx, - mbedtls_entropy_func, &srv->entropy, NULL, 0); + urandom_entropy_func, urandom, NULL, 0); check(rc == 0, "Init rng failed: ctr_drbg_init returned %d\n", rc); srv->rng_func = mbedtls_ctr_drbg_random; srv->rng_ctx = ctx; } else { - log_warn("entropy source unavailable. falling back to havege rng"); +#if defined(MBEDTLS_HAVEGE_C) + log_warn("entropy source unavailable. falling back to havege rng"); ctx = calloc(sizeof(mbedtls_havege_state), 1); mbedtls_havege_init((mbedtls_havege_state *)ctx); - srv->rng_func = mbedtls_havege_random; srv->rng_ctx = ctx; +#else + log_err("Unable to initialize urandom entropy source, and mbedTLS compiled without HAVEGE"); + goto error; +#endif } return 0; @@ -278,10 +288,10 @@ Server *Server_create(bstring uuid, bstring default_host, // TODO: once mbedtls supports opening urandom early and keeping it open, // put the rng initialization back here (before chroot) - //if(use_ssl) { - // rc = Server_init_rng(srv); - // check(rc == 0, "Failed to initialize rng for server %s", bdata(uuid)); - //} + if(use_ssl) { + rc = Server_init_rng(srv); + check(rc == 0, "Failed to initialize rng for server %s", bdata(uuid)); + } if(blength(chroot) > 0) { srv->chroot = bstrcpy(chroot); check_mem(srv->chroot); ================================================ FILE: package/mongrel2/Config.in ================================================ # mongrel2 uses {get,make,swap}context() functions, which are # available in glibc for all architectures and in uClibc only for a # subset of the architectures 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_sparc || BR2_x86_64) comment "mongrel2 needs a uClibc or glibc toolchain w/ C++, threads, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS config BR2_PACKAGE_MONGREL2 bool "mongrel2" depends on BR2_INSTALL_LIBSTDCPP # zeromq depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq depends on !BR2_STATIC_LIBS # uses dlopen() depends on BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS select BR2_PACKAGE_MBEDTLS select BR2_PACKAGE_SQLITE select BR2_PACKAGE_ZEROMQ help Mongrel2 is an application, language, and network architecture agnostic web server that focuses on web applications using modern browser technologies. Mongrel2 supports 17 languages and platforms, HTTP, Flash sockets, WebSockets, Long Polling, and many ways to deploy and hack on it. http://www.mongrel2.org ================================================ FILE: package/mongrel2/mongrel2.hash ================================================ # From https://mongrel2.org sha1 6f81fa747a1e198d1a655c3677b6de686a5a51f7 mongrel2-v1.12.2.tar.bz2 # Locally computed sha256 3bffeae198c37a1efc9c12f77d5f1eb61cdf62b35d661babc2527dd030aa7d8f mongrel2-v1.12.2.tar.bz2 sha256 eb6e2a2baa637d06f6aa762886fbc8939934eb5fdb0b3a5b3882f2a61e9a4357 LICENSE ================================================ FILE: package/mongrel2/mongrel2.mk ================================================ ################################################################################ # # mongrel2 # ################################################################################ MONGREL2_VERSION = 1.12.2 MONGREL2_SOURCE = mongrel2-v$(MONGREL2_VERSION).tar.bz2 # Do not use the github helper here, the generated tarball is *NOT* the same # as the one uploaded by upstream for the release. MONGREL2_SITE = https://github.com/mongrel2/mongrel2/releases/download/v$(MONGREL2_VERSION) MONGREL2_LICENSE = BSD-3-Clause MONGREL2_LICENSE_FILES = LICENSE MONGREL2_DEPENDENCIES = mbedtls sqlite zeromq define MONGREL2_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ PREFIX=/usr all endef define MONGREL2_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ PREFIX=/usr DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/monit/0001-no-force-static.patch ================================================ Do not force building a statically-linked binary Statically-linked binary do not work well with glibc, because it still dlopen()s the NSS libraries. Reported-by: Peter Kümmel Signed-off-by: "Yann E. MORIN" diff -durN monit-5.7.orig/Makefile.am monit-5.7/Makefile.am --- monit-5.7.orig/Makefile.am 2014-02-20 09:00:42.000000000 +0100 +++ monit-5.7/Makefile.am 2014-09-05 12:49:43.711104001 +0200 @@ -85,7 +85,7 @@ src/process/sysdep_@ARCH@.c monit_LDADD = libmonit/libmonit.la -monit_LDFLAGS = -static $(EXTLDFLAGS) +monit_LDFLAGS = $(EXTLDFLAGS) man_MANS = monit.1 ================================================ FILE: package/monit/Config.in ================================================ config BR2_PACKAGE_MONIT bool "monit" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() help Monit is a free open source utility for managing and monitoring, processes, programs, files, directories and filesystems on a UNIX system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations. http://mmonit.com/monit/ comment "monit needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/monit/monit.hash ================================================ # From https://mmonit.com/monit/dist/monit-5.26.0.tar.gz.sha256: sha256 87fc4568a3af9a2be89040efb169e3a2e47b262f99e78d5ddde99dd89f02f3c2 monit-5.26.0.tar.gz # Locally computed sha256 d5a4f52b1a5e1e7fe14e01a76aac8b08dc6bbea15466058f271456c97aac1ada COPYING ================================================ FILE: package/monit/monit.mk ================================================ ################################################################################ # # monit # ################################################################################ MONIT_VERSION = 5.26.0 MONIT_SITE = http://mmonit.com/monit/dist MONIT_LICENSE = AGPL-3.0 with OpenSSL exception MONIT_LICENSE_FILES = COPYING MONIT_CPE_ID_VENDOR = mmonit MONIT_SELINUX_MODULES = monit # # Touching Makefile.am: MONIT_AUTORECONF = YES MONIT_CONF_ENV = \ libmonit_cv_setjmp_available=yes \ libmonit_cv_vsnprintf_c99_conformant=yes MONIT_CONF_OPTS += \ --without-pam \ --with-largefiles ifeq ($(BR2_PACKAGE_OPENSSL),y) MONIT_CONF_OPTS += --with-ssl=$(STAGING_DIR)/usr MONIT_DEPENDENCIES += openssl else MONIT_CONF_OPTS += --without-ssl endif ifeq ($(BR2_PACKAGE_ZLIB),y) MONIT_CONF_OPTS += --with-zlib MONIT_DEPENDENCIES += zlib else MONIT_CONF_OPTS += --without-zlib endif $(eval $(autotools-package)) ================================================ FILE: package/mono/0001-Fix-linkage-with-a-system-libatomic_ops-shared-library.patch ================================================ From 02a44ee1df8176c72e75fd706d1a8f063d3196d5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 5 Nov 2018 22:50:40 +0100 Subject: Fix linkage with a system libatomic_ops shared library Issue #247 (bdwgc). When bdwgc is linked with the external libatomic_ops, bdw-gc.pc must contain the needed dynamic libraries (such as -latomic_ops) otherwise build of applications could fail on the link stage on some hosts: * libgc.so: undefined reference to 'AO_fetch_compare_and_swap_emulation' * libgc.so: undefined reference to 'AO_store_full_emulation' So, this commit sets ATOMIC_OPS_LIBS to "-latomic_ops" when a system atomic_ops library is used and uses ATOMIC_OPS_LIBS in bdw-gc.pc.in. * bdw-gc.pc.in (Libs): Add @ATOMIC_OPS_LIBS@. * configure.ac [$with_libatomic_ops!=no && $with_libatomic_ops!=none && $THREADS!=none] (ATOMIC_OPS_LIBS): Set to -latomic_ops; do AC_SUBST. Fix is cherry-picked from bdwgc upstream Link to original commit https://github.com/ivmai/bdwgc/commit/02a44ee1df8176c72e75fd706d1a8f063d3196d5?branch=02a44ee1df8176c72e75fd706d1a8f063d3196d5&diff=unified Signed-off-by: Illia Bitkov diff --git a/external/bdwgc/bdw-gc.pc.in b/external/bdwgc/bdw-gc.pc.in index ef4c2341..a32e7598 100644 --- a/external/bdwgc/bdw-gc.pc.in +++ b/external/bdwgc/bdw-gc.pc.in @@ -6,5 +6,5 @@ includedir=@includedir@ Name: Boehm-Demers-Weiser Conservative Garbage Collector Description: A garbage collector for C and C++ Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lgc +Libs: -L${libdir} @ATOMIC_OPS_LIBS@ -lgc Cflags: -I${includedir} diff --git a/external/bdwgc/configure.ac b/external/bdwgc/configure.ac index 21abe8fa..9ffe81de 100644 --- a/external/bdwgc/configure.ac +++ b/external/bdwgc/configure.ac @@ -1081,7 +1081,9 @@ AS_IF([test x"$with_libatomic_ops" = xno \ AC_MSG_CHECKING([which libatomic_ops to use]) AS_IF([test x"$with_libatomic_ops" != xno], [ AS_IF([test x"$with_libatomic_ops" != xnone -a x"$THREADS" != xnone], - [ AC_MSG_RESULT([external]) ], + [ AC_MSG_RESULT([external]) + ATOMIC_OPS_LIBS="-latomic_ops" + AC_SUBST([ATOMIC_OPS_LIBS]) ], [ AC_MSG_RESULT([none]) AS_IF([test x"$THREADS" != xnone], [ AC_DEFINE([GC_BUILTIN_ATOMIC], [1], ================================================ FILE: package/mono/0002-Ongoing-work-on-the-cmake-build.patch ================================================ From 17650f7e0f571287bb14bb9b4fbde7b91d842bb4 Mon Sep 17 00:00:00 2001 From: monojenkins Date: Thu, 24 Sep 2020 12:17:34 -0400 Subject: [PATCH] Ongoing work on the cmake build. (#20428) * Fix some warnings. * Avoid creating netcore/config.make. * Fix CPU_COUNT test. * Add missing source file. Co-authored-by: vargaz [Retrieved (and updated to keep only update of icall.c) from: https://github.com/mono/mono/commit/17650f7e0f571287bb14bb9b4fbde7b91d842bb4] Signed-off-by: Fabrice Fontaine --- mono/metadata/CMakeLists.txt | 1 + mono/metadata/icall.c | 2 +- mono/mini/CMakeLists.txt | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mono/metadata/icall.c b/mono/metadata/icall.c index fa991bc72e57..f2c003ac1ff1 100644 --- a/mono/metadata/icall.c +++ b/mono/metadata/icall.c @@ -9605,7 +9605,7 @@ mono_create_icall_signatures (void) int n; while ((n = sig->param_count)) { --sig->param_count; // remove ret - gsize_a *types = (gsize*)(sig + 1); + gsize_a *types = (gsize_a*)(sig + 1); for (int i = 0; i < n; ++i) { gsize index = *types++; g_assert (index < G_N_ELEMENTS (lookup)); ================================================ FILE: package/mono/Config.in ================================================ config BR2_PACKAGE_HOST_MONO_ARCH_SUPPORTS bool default y if BR2_HOSTARCH = "x86_64" default y if BR2_HOSTARCH = "x86" config BR2_PACKAGE_MONO_ARCH_SUPPORTS bool default y if (BR2_arm || BR2_armeb || BR2_i386 || \ BR2_powerpc || BR2_x86_64) depends on BR2_PACKAGE_HOST_MONO_ARCH_SUPPORTS depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS config BR2_PACKAGE_MONO bool "mono" depends on BR2_PACKAGE_MONO_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBATOMIC_OPS help An open source, cross-platform, implementation of C# and the CLR that is binary compatible with Microsoft.NET. http://download.mono-project.com/sources/mono/ comment "mono needs a toolchain w/ C++, threads, dynamic library" depends on BR2_PACKAGE_MONO_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/mono/mono.hash ================================================ # sha256 locally computed sha256 51de5c02ad511333f93ff585bca54c8784de35af4ff27b759d16b46c4402cdac mono-6.12.0.90.tar.xz sha256 923c7053ad0d430cd9b0b69a0ccf3abb7170a1ce50ecbf01915b565a35823d10 LICENSE sha256 fc488f3ec9f36856bea8cce5cdde1449176341ef93a3962b691970f8981799f4 mcs/COPYING sha256 2c3c3ef532828bcd42bb3127349625a25291ff5ae7e6f8d42e0fe9b5be836a99 external/Newtonsoft.Json/Tools/7-zip/copying.txt ================================================ FILE: package/mono/mono.mk ================================================ ################################################################################ # # mono # ################################################################################ MONO_VERSION = 6.12.0.90 MONO_SITE = http://download.mono-project.com/sources/mono MONO_SOURCE = mono-$(MONO_VERSION).tar.xz MONO_LICENSE = GPL-2.0 or MIT (compiler, tools), MIT (libs) or commercial MONO_LICENSE_FILES = LICENSE mcs/COPYING \ external/Newtonsoft.Json/Tools/7-zip/copying.txt MONO_CPE_ID_VENDOR = mono-project MONO_INSTALL_STAGING = YES ## Mono native # patching configure.ac MONO_AUTORECONF = YES MONO_COMMON_CONF_OPTS = --with-mcs-docs=no \ --with-ikvm-native=no \ --enable-minimal=profiler,debug \ --enable-static \ --disable-btls \ --disable-system-aot # Disable managed code (mcs folder) from building MONO_CONF_OPTS = $(MONO_COMMON_CONF_OPTS) --disable-mcs-build # The libraries have been built by the host-mono build. Since they are # architecture-independent, we simply copy them to the target. define MONO_INSTALL_LIBS rsync -av --exclude=*.so --exclude=*.mdb \ $(HOST_DIR)/lib/mono $(TARGET_DIR)/usr/lib/ endef MONO_POST_INSTALL_TARGET_HOOKS += MONO_INSTALL_LIBS ifeq ($(BR2_PACKAGE_LIBICONV),y) MONO_DEPENDENCIES += libiconv endif MONO_DEPENDENCIES += \ host-mono \ $(if $(BR2_PACKAGE_LIBUNWIND),libunwind) \ libatomic_ops ## Mono managed HOST_MONO_CONF_OPTS = $(MONO_COMMON_CONF_OPTS) --disable-libraries # ensure monolite is used HOST_MONO_MAKE_OPTS += EXTERNAL_MCS=false HOST_MONO_DEPENDENCIES = host-monolite host-gettext host-python3 define HOST_MONO_SETUP_MONOLITE rm -rf $(@D)/mcs/class/lib/monolite (cd $(@D)/mcs/class/lib; ln -s $(HOST_DIR)/lib/monolite monolite) endef HOST_MONO_POST_CONFIGURE_HOOKS += HOST_MONO_SETUP_MONOLITE $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/mono-gtksharp3/0001-Fixes-MONO_PROFILE_ENTER_LEAVE-undeclared.patch ================================================ From c1b9bd4214b78dc426bc6e6a07c23a8ab4ab50ea Mon Sep 17 00:00:00 2001 From: Jordi Mas Date: Tue, 12 Mar 2019 12:24:19 +0100 Subject: [PATCH] Fixes MONO_PROFILE_ENTER_LEAVE undeclared when compiling with newer versions of Mono (#266) Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/mono/gtk-sharp/commit/c1b9bd4214b78dc426bc6e6a07c23a8ab4ab50ea] --- gtk/gui-thread-check/profiler/gui-thread-check.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gtk/gui-thread-check/profiler/gui-thread-check.c b/gtk/gui-thread-check/profiler/gui-thread-check.c index 11838e3b0..9f45fe6b2 100644 --- a/gtk/gui-thread-check/profiler/gui-thread-check.c +++ b/gtk/gui-thread-check/profiler/gui-thread-check.c @@ -86,6 +86,10 @@ simple_method_enter (MonoProfiler *prof, MonoMethod *method) } } +#ifndef MONO_PROFILE_ENTER_LEAVE +#define MONO_PROFILE_ENTER_LEAVE (1 << 12) +#endif + void mono_profiler_startup (const char *desc) { ================================================ FILE: package/mono-gtksharp3/0002-Mono-compilation-error-branch.patch ================================================ From fe18352a4bc9f0cf3b6cf63b8cc03c5d6e41863b Mon Sep 17 00:00:00 2001 From: plprevost Date: Wed, 12 May 2021 16:46:16 +0200 Subject: [PATCH] refs issue:#298 Fix mono compilation errors [Retrieved from: https://github.com/mono/gtk-sharp/pull/299/commits/fe18352a4bc9f0cf3b6cf63b8cc03c5d6e41863b] Signed-off-by: Fabrice Fontaine --- sample/test/TestRange.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample/test/TestRange.cs b/sample/test/TestRange.cs index 82fb81105..8727c9a77 100644 --- a/sample/test/TestRange.cs +++ b/sample/test/TestRange.cs @@ -8,7 +8,7 @@ using System; -using Gtk; +using Gtk; using Range = Gtk.Range; namespace WidgetViewer { ================================================ FILE: package/mono-gtksharp3/Config.in ================================================ config BR2_PACKAGE_MONO_GTKSHARP3 bool "gtk# 3" depends on BR2_PACKAGE_LIBGTK3 help Gtk# is a .NET language binding for the GTK+ toolkit. This package provides version 3 of the bindings. http://www.mono-project.com/docs/gui/gtksharp/ ================================================ FILE: package/mono-gtksharp3/mono-gtksharp3.hash ================================================ # sha256 from https://download.gnome.org/sources/gtk-sharp/2.99/gtk-sharp-2.99.3.sha256sum sha256 6440f571416267ae0cb5698071d087b31e3084693fa2c829b1db37ca7ea2c3a2 gtk-sharp-2.99.3.tar.xz # Locally computed sha256 4b96eca92e6964e89c2faf6a810c9a0214daf6be651fa848fdfbb8cef80c04b1 COPYING ================================================ FILE: package/mono-gtksharp3/mono-gtksharp3.mk ================================================ ################################################################################ # # gtksharp3 # ################################################################################ MONO_GTKSHARP3_VERSION_MAJOR = 2.99 MONO_GTKSHARP3_VERSION = $(MONO_GTKSHARP3_VERSION_MAJOR).3 MONO_GTKSHARP3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk-sharp/$(MONO_GTKSHARP3_VERSION_MAJOR) MONO_GTKSHARP3_SOURCE = gtk-sharp-$(MONO_GTKSHARP3_VERSION).tar.xz MONO_GTKSHARP3_LICENSE = LGPL-2.0, MIT (cairo) MONO_GTKSHARP3_LICENSE_FILES = COPYING MONO_GTKSHARP3_INSTALL_STAGING = YES MONO_GTKSHARP3_DEPENDENCIES = mono libgtk3 MONO_GTKSHARP3_CONF_OPTS += CSC=$(HOST_DIR)/bin/mcs $(eval $(autotools-package)) ================================================ FILE: package/monolite/monolite.hash ================================================ # sha256 locally computed sha256 0ac314f75ca2bc4455785f12ceb50da89b6dac90162f9f46afbbb988a8752d4b monolite-linux-1A5E0066-58DC-428A-B21C-0AD6CDAE2789-latest.tar.gz ================================================ FILE: package/monolite/monolite.mk ================================================ ################################################################################ # # monolite # ################################################################################ MONOLITE_VERSION = 1A5E0066-58DC-428A-B21C-0AD6CDAE2789 MONOLITE_SITE = http://download.mono-project.com/monolite MONOLITE_SOURCE = monolite-linux-$(MONOLITE_VERSION)-latest.tar.gz MONOLITE_LICENSE = LGPL-2.0 or commercial define HOST_MONOLITE_INSTALL_CMDS mkdir -p $(HOST_DIR)/lib/monolite-linux/$(MONOLITE_VERSION) cp -r $(@D)/* $(HOST_DIR)/lib/monolite-linux/$(MONOLITE_VERSION) endef $(eval $(host-generic-package)) ================================================ FILE: package/mosh/Config.in ================================================ comment "mosh needs a toolchain w/ C++, threads, dynamic library, wchar, gcc >= 4.8" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \ || BR2_STATIC_LIBS || !BR2_USE_WCHAR \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS config BR2_PACKAGE_MOSH bool "mosh" depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP # protobuf depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # protobuf depends on !BR2_STATIC_LIBS # protobuf depends on BR2_USE_WCHAR select BR2_PACKAGE_PROTOBUF select BR2_PACKAGE_NCURSES select BR2_PACKAGE_NETTLE if !BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB # runtime dependency select BR2_PACKAGE_OPENSSH if !BR2_PACKAGE_DROPBEAR_CLIENT help Remote terminal application that supports intermittent connectivity, allows roaming, and provides speculative local echo and line editing of user keystrokes. Mosh requires that the remote machine has a locale setting matching the one on the client. When using mosh with dropbear on a remote machine, the client needs mosh with a version above 1.3.0 and the --no-ssh-pty option needs to be passed when starting the connection. https://mosh.org ================================================ FILE: package/mosh/mosh.hash ================================================ # From https://mailman.mit.edu/pipermail/mosh-users/2017-July/000357.html sha256 da600573dfa827d88ce114e0fed30210689381bbdcff543c931e4d6a2e851216 mosh-1.3.2.tar.gz # Locally calculcated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING sha256 8042495ddc8d99b883335d53552554eccf825fc1f0ba487d0f8e6656baaa8199 COPYING.iOS ================================================ FILE: package/mosh/mosh.mk ================================================ ################################################################################ # # mosh # ################################################################################ MOSH_VERSION = 1.3.2 MOSH_SITE = https://mosh.org MOSH_DEPENDENCIES = zlib ncurses protobuf host-pkgconf MOSH_LICENSE = GPL-3.0+ with exception MOSH_LICENSE_FILES = COPYING COPYING.iOS # protobuf needs c++11 (since 3.6.0) MOSH_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" ifeq ($(BR2_PACKAGE_OPENSSL),y) MOSH_CONF_OPTS += --with-crypto-library=openssl MOSH_DEPENDENCIES += openssl else MOSH_CONF_OPTS += --with-crypto-library=nettle MOSH_DEPENDENCIES += nettle endif # help the detection of the SSP support: mosh configure.ac doesn't do # a link test, so it doesn't detect when the toolchain doesn't have # libssp. ifeq ($(BR2_TOOLCHAIN_HAS_SSP),) MOSH_CONF_ENV += \ ax_cv_check_cflags__Werror___fstack_protector_all=no \ ax_cv_check_cxxflags__Werror___fstack_protector_all=no endif $(eval $(autotools-package)) ================================================ FILE: package/mosquitto/Config.in ================================================ config BR2_PACKAGE_MOSQUITTO bool "mosquitto" help Eclipse Mosquitto is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1. Mosquitto is lightweight and is suitable for use on all devices from low power single board computers to full servers. The MQTT protocol provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for Internet of Things messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers. The Mosquitto project also provides a C library for implementing MQTT clients, and the very popular mosquitto_pub and mosquitto_sub command line MQTT clients. http://mosquitto.org/ config BR2_PACKAGE_MOSQUITTO_BROKER bool "install the mosquitto broker" default y depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # include depends on BR2_PACKAGE_MOSQUITTO help Build and install the mosquitto broker onto target. comment "mosquitto broker needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS depends on BR2_PACKAGE_MOSQUITTO ================================================ FILE: package/mosquitto/S50mosquitto ================================================ #!/bin/sh start() { printf "Starting mosquitto: " start-stop-daemon -S -q -m -b -p /var/run/mosquitto.pid \ --exec /usr/sbin/mosquitto \ -- -c /etc/mosquitto/mosquitto.conf [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping mosquitto: " start-stop-daemon -K -q -p /var/run/mosquitto.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 $? ================================================ FILE: package/mosquitto/mosquitto.hash ================================================ # Locally calculated after checking gpg signature # from https://mosquitto.org/files/source/mosquitto-2.0.13.tar.gz.asc sha256 d0dde8fdb12caf6e2426b4f28081919a2fce3448773bdb8af0d3cd5fe5776925 mosquitto-2.0.14.tar.gz # License files sha256 d3c4ccace4e5d3cc89d34cf2a0bc85b8596bfc0a32b815d0d77f9b7c41b5350c LICENSE.txt sha256 8c349f80764d0648e645f41ef23772a70c995a0924b5235f735f4a3d09df127c epl-v20 sha256 86fc4a3f97cb769c04e8da557036c1066eb8bb22b2d0a5dd31464990fe84047c edl-v10 ================================================ FILE: package/mosquitto/mosquitto.mk ================================================ ################################################################################ # # mosquitto # ################################################################################ MOSQUITTO_VERSION = 2.0.14 MOSQUITTO_SITE = https://mosquitto.org/files/source MOSQUITTO_LICENSE = EPL-2.0 or EDLv1.0 MOSQUITTO_LICENSE_FILES = LICENSE.txt epl-v20 edl-v10 MOSQUITTO_CPE_ID_VENDOR = eclipse MOSQUITTO_INSTALL_STAGING = YES MOSQUITTO_MAKE_OPTS = \ CLIENT_STATIC_LDADD="$(MOSQUITTO_STATIC_LIBS)" \ UNAME=Linux \ STRIP=true \ prefix=/usr \ WITH_WRAP=no \ WITH_DOCS=no ifeq ($(BR2_SHARED_LIBS),y) MOSQUITTO_MAKE_OPTS += WITH_STATIC_LIBRARIES=no else MOSQUITTO_MAKE_OPTS += WITH_STATIC_LIBRARIES=yes endif ifeq ($(BR2_STATIC_LIBS),y) MOSQUITTO_MAKE_OPTS += WITH_SHARED_LIBRARIES=no else MOSQUITTO_MAKE_OPTS += WITH_SHARED_LIBRARIES=yes endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) MOSQUITTO_MAKE_OPTS += WITH_SYSTEMD=yes MOSQUITTO_DEPENDENCIES += systemd endif # adns uses getaddrinfo_a ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y) MOSQUITTO_MAKE_OPTS += WITH_ADNS=yes else MOSQUITTO_MAKE_OPTS += WITH_ADNS=no endif # threaded API uses pthread_setname_np ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),y) MOSQUITTO_MAKE_OPTS += WITH_THREADING=yes else MOSQUITTO_MAKE_OPTS += WITH_THREADING=no endif ifeq ($(BR2_PACKAGE_OPENSSL),y) MOSQUITTO_DEPENDENCIES += host-pkgconf openssl MOSQUITTO_MAKE_OPTS += WITH_TLS=yes MOSQUITTO_STATIC_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs openssl` else MOSQUITTO_MAKE_OPTS += WITH_TLS=no endif ifeq ($(BR2_PACKAGE_CJSON),y) MOSQUITTO_DEPENDENCIES += cjson MOSQUITTO_MAKE_OPTS += WITH_CJSON=yes MOSQUITTO_STATIC_LIBS += -lcjson else MOSQUITTO_MAKE_OPTS += WITH_CJSON=no endif ifeq ($(BR2_PACKAGE_C_ARES),y) MOSQUITTO_DEPENDENCIES += c-ares MOSQUITTO_MAKE_OPTS += WITH_SRV=yes else MOSQUITTO_MAKE_OPTS += WITH_SRV=no endif ifeq ($(BR2_PACKAGE_LIBWEBSOCKETS),y) MOSQUITTO_DEPENDENCIES += libwebsockets MOSQUITTO_MAKE_OPTS += WITH_WEBSOCKETS=yes else MOSQUITTO_MAKE_OPTS += WITH_WEBSOCKETS=no endif # C++ support is only used to create a wrapper library ifneq ($(BR2_INSTALL_LIBSTDCPP),y) define MOSQUITTO_DISABLE_CPP $(SED) '/-C cpp/d' $(@D)/lib/Makefile endef MOSQUITTO_POST_PATCH_HOOKS += MOSQUITTO_DISABLE_CPP endif MOSQUITTO_MAKE_DIRS = lib client ifeq ($(BR2_PACKAGE_MOSQUITTO_BROKER),y) MOSQUITTO_MAKE_DIRS += src endif define MOSQUITTO_BUILD_CMDS $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) DIRS="$(MOSQUITTO_MAKE_DIRS)" \ $(MOSQUITTO_MAKE_OPTS) endef define MOSQUITTO_INSTALL_STAGING_CMDS $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) DIRS="$(MOSQUITTO_MAKE_DIRS)" \ $(MOSQUITTO_MAKE_OPTS) DESTDIR=$(STAGING_DIR) install endef define MOSQUITTO_INSTALL_TARGET_CMDS $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) DIRS="$(MOSQUITTO_MAKE_DIRS)" \ $(MOSQUITTO_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install rm -f $(TARGET_DIR)/etc/mosquitto/*.example $(INSTALL) -D -m 0644 $(@D)/mosquitto.conf \ $(TARGET_DIR)/etc/mosquitto/mosquitto.conf endef ifeq ($(BR2_PACKAGE_MOSQUITTO_BROKER),y) define MOSQUITTO_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/mosquitto/S50mosquitto \ $(TARGET_DIR)/etc/init.d/S50mosquitto endef define MOSQUITTO_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(@D)/service/systemd/mosquitto.service.notify \ $(TARGET_DIR)/usr/lib/systemd/system/mosquitto.service endef define MOSQUITTO_USERS mosquitto -1 nobody -1 * - - - Mosquitto user endef endif $(eval $(generic-package)) ================================================ FILE: package/most/Config.in ================================================ config BR2_PACKAGE_MOST bool "most" depends on BR2_USE_MMU # slang select BR2_PACKAGE_SLANG help most is a powerful pager, including features like multi document support, hex view and unpack on-the-fly. Note: this program depends on the slang library which is rather large to be used just for this pager. https://www.jedsoft.org/most/ ================================================ FILE: package/most/most.hash ================================================ # From https://www.jedsoft.org/releases/most/ sha1 db811669a6b22c15478c957b439b5e4483ce1c95 most-5.1.0.tar.gz # Locally computed sha256 db805d1ffad3e85890802061ac8c90e3c89e25afb184a794e03715a3ed190501 most-5.1.0.tar.gz sha256 1b2a567f289f66a143c56353e7b3d4fa5862514a5e3c5cfdf8b02ee5e5aaa953 COPYING sha256 47ad1c3f9b94d6ec42d9bee6c5df980c5c2daa5b9d22113545ae6a3f21ca2f52 COPYRIGHT ================================================ FILE: package/most/most.mk ================================================ ################################################################################ # # most # ################################################################################ MOST_SITE = http://www.jedsoft.org/releases/most MOST_VERSION = 5.1.0 MOST_LICENSE = GPL-2.0+ MOST_LICENSE_FILES = COPYING COPYRIGHT MOST_DEPENDENCIES = slang MOST_CONF_OPTS = --with-slang=$(STAGING_DIR)/usr MOST_MAKE = $(MAKE1) define MOST_REMOVE_LOCAL_SLANG_CHECK $(SED) 's/ slangversion / /g' $(@D)/src/Makefile.in endef MOST_POST_PATCH_HOOKS += MOST_REMOVE_LOCAL_SLANG_CHECK define MOST_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/src/objs/most $(TARGET_DIR)/usr/bin/most endef $(eval $(autotools-package)) ================================================ FILE: package/motion/0001-Fix-build-with-GCC-10.patch ================================================ From a4a48baf86b18b792fb5e53648b4efd02b3db7b7 Mon Sep 17 00:00:00 2001 From: Vasiliy Glazov Date: Sun, 8 Mar 2020 03:00:21 +0300 Subject: [PATCH] Fix build with GCC 10. [Retrieved (and backported) from: https://github.com/Motion-Project/motion/commit/a4a48baf86b18b792fb5e53648b4efd02b3db7b7] Signed-off-by: Fabrice Fontaine --- src/netcam.h | 2 +- src/translate.c | 2 ++ src/translate.h | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/netcam.h b/netcam.h index 2951d917..4ee0e1c8 100644 --- a/netcam.h +++ b/netcam.h @@ -113,7 +113,7 @@ typedef struct netcam_image_buff { } netcam_buff; typedef netcam_buff *netcam_buff_ptr; -struct netcam_caps { /* netcam capabilities: */ +extern struct netcam_caps { /* netcam capabilities: */ unsigned char streaming; /* See the NCS_* defines */ unsigned char content_length; /* 0 - unsupported */ } caps; diff --git a/translate.c b/translate.c index 0c9f1105..a212d9de 100644 --- a/translate.c +++ b/translate.c @@ -10,6 +10,8 @@ #include "motion.h" #include "translate.h" +int nls_enabled; + void translate_locale_chg(const char *langcd){ #ifdef HAVE_GETTEXT /* This routine is for development testing only. It is not used for diff --git a/translate.h b/translate.h index 0832ffd8..eeba3745 100644 --- a/translate.h +++ b/translate.h @@ -10,7 +10,7 @@ #ifndef _INCLUDE_TRANSLATE_H_ #define _INCLUDE_TRANSLATE_H_ -int nls_enabled; +extern int nls_enabled; #ifdef HAVE_GETTEXT # include ================================================ FILE: package/motion/0001-configure.ac-remove-po-Makefile.in.patch ================================================ From 0e05d4116678de3a7d913177a8fc63f10e58ad24 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 18 Jan 2020 00:00:21 +0100 Subject: [PATCH] configure.ac: remove po/Makefile.in The file po/Makefile.in is automatically added to AC_OUTPUT while using gettexize Signed-off-by: Fabrice Fontaine [Upstream status: not upstreamable] --- configure.ac | 1 - 1 file changed, 1 deletion(-) diff --git a/configure.ac b/configure.ac index 3876adb..221dacf 100644 --- a/configure.ac +++ b/configure.ac @@ -471,7 +471,6 @@ LDFLAGS="$TEMP_LDFLAGS" AC_CONFIG_FILES([ Makefile src/Makefile - po/Makefile.in man/Makefile data/camera1-dist.conf data/camera2-dist.conf -- 2.24.1 ================================================ FILE: package/motion/0001-without-nls.patch ================================================ gist 4d213af40bb4786c3a51535bf7cc1fdd Author: Mr-DaveDev Date: Thu Sep 29 22:07:12 2019 diff --git a/Makefile.am b/Makefile.am index ecc20f1..8b262c0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,4 @@ -ACLOCAL_AMFLAGS = -I m4 - -SUBDIRS = src po man +SUBDIRS = src man sysconfdir = @sysconfdir@/$(PACKAGE) sysconf_DATA = \ diff --git a/configure.ac b/configure.ac index 6ee2554..42b1c36 100644 --- a/configure.ac +++ b/configure.ac @@ -6,10 +6,6 @@ AC_GNU_SOURCE AC_CONFIG_HEADERS([config.h]) AC_CONFIG_SRCDIR([src/motion.c]) AC_CANONICAL_HOST -AC_CONFIG_MACRO_DIR([m4]) - -AM_GNU_GETTEXT([external]) -AM_GNU_GETTEXT_VERSION([0.19]) ############################################################################## ### Check additional system headers @@ -470,7 +466,6 @@ LDFLAGS="$TEMP_LDFLAGS" AC_CONFIG_FILES([ Makefile src/Makefile - po/Makefile.in man/Makefile data/camera1-dist.conf data/camera2-dist.conf diff --git a/src/Makefile.am b/src/Makefile.am index bedd1b3..aa253ca 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -4,7 +4,6 @@ if INC_MMAL_SRC MMAL_SRC=raspicam/RaspiCamControl.c raspicam/RaspiCLI.c endif -LIBS = @LIBINTL@ @LIBS@ bin_PROGRAMS = motion ================================================ FILE: package/motion/0002-enable-h264-omx-codec.patch ================================================ Author: jasaw diff --git a/src/ffmpeg.c b/src/ffmpeg.c index 3af961a..d59f0e1 100644 --- a/src/ffmpeg.c +++ b/src/ffmpeg.c @@ -680,7 +680,7 @@ static const char *ffmpeg_codec_is_blacklisted(const char *codec_name){ * - remove the "h264_omx" from this blacklist. * More information: https://github.com/Motion-Project/motion/issues/433 */ - {"h264_omx", "Codec causes lock up on your FFMpeg version"}, + //{"h264_omx", "Codec causes lock up on your FFMpeg version"}, #endif #if (LIBAVFORMAT_VERSION_MAJOR < 57) || ((LIBAVFORMAT_VERSION_MAJOR == 57) && (LIBAVFORMAT_VERSION_MINOR < 41)) {"h264_v4l2m2m", "FFMpeg version is too old"}, ================================================ FILE: package/motion/Config.in ================================================ config BR2_PACKAGE_MOTION bool "motion" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_FFMPEG select BR2_PACKAGE_FFMPEG_SWSCALE select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBMICROHTTPD help Motion is a program that monitors the video signal from cameras. It is able to detect if a significant part of the picture has changed; in other words, it can detect motion. libv4l has to be selected to be able to use a local camera. https://motion-project.github.io comment "motion needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/motion/S99motion ================================================ #!/bin/sh NAME=motion PIDFILE=/var/run/$NAME.pid DAEMON=/usr/bin/$NAME start() { printf "Starting $NAME: " start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON [ $? = 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|reload}" exit 1 esac exit $? ================================================ FILE: package/motion/motion.hash ================================================ # Locally computed: sha256 3fb0d14fff8a8a143716223b5d2d55c0f52b11badf13a2e485b98bae3cf1b572 motion-4.4.0.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/motion/motion.mk ================================================ ################################################################################ # # motion # ################################################################################ MOTION_VERSION = 4.4.0 MOTION_SITE = $(call github,Motion-Project,motion,release-$(MOTION_VERSION)) MOTION_LICENSE = GPL-2.0 MOTION_LICENSE_FILES = LICENSE MOTION_CPE_ID_VENDOR = motion_project MOTION_DEPENDENCIES = host-pkgconf jpeg libmicrohttpd $(TARGET_NLS_DEPENDENCIES) # From git MOTION_AUTORECONF = YES MOTION_GETTEXTIZE = YES MOTION_CONF_OPTS += --without-optimizecpu ifeq ($(BR2_PACKAGE_FFMPEG_SWSCALE),y) MOTION_DEPENDENCIES += ffmpeg MOTION_CONF_OPTS += --with-ffmpeg else MOTION_CONF_OPTS += --without-ffmpeg endif ifeq ($(BR2_PACKAGE_MYSQL),y) MOTION_DEPENDENCIES += mysql MOTION_CONF_OPTS += --with-mysql else MOTION_CONF_OPTS += --without-mysql endif ifeq ($(BR2_PACKAGE_POSTGRESQL),y) MOTION_DEPENDENCIES += postgresql MOTION_CONF_OPTS += --with-pgsql else MOTION_CONF_OPTS += --without-pgsql endif ifeq ($(BR2_PACKAGE_SQLITE),y) MOTION_DEPENDENCIES += sqlite MOTION_CONF_OPTS += --with-sqlite3 else MOTION_CONF_OPTS += --without-sqlite3 endif ifeq ($(BR2_PACKAGE_WEBP_MUX),y) MOTION_DEPENDENCIES += webp MOTION_CONF_OPTS += --with-webp else MOTION_CONF_OPTS += --without-webp endif # Do not use default install target as it installs many unneeded files and # directories: docs, examples and init scripts define MOTION_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0644 $(@D)/data/motion-dist.conf \ $(TARGET_DIR)/etc/motion/motion.conf $(INSTALL) -D -m 0755 $(@D)/src/motion $(TARGET_DIR)/usr/bin/motion endef define MOTION_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/motion/S99motion \ $(TARGET_DIR)/etc/init.d/S99motion endef define MOTION_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/motion/motion.service \ $(TARGET_DIR)/usr/lib/systemd/system/motion.service endef $(eval $(autotools-package)) ================================================ FILE: package/motion/motion.service ================================================ [Unit] Description=Motion camera monitoring system After=network.target [Service] ExecStart=/usr/bin/motion Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/mp4v2/0001-Fix-GCC7-build.patch ================================================ From 855e9674232808ff3be7191b697dfb56917db21f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Wed, 8 Feb 2017 00:56:32 +0000 Subject: [PATCH] Fix GCC7 build if (*pSlash != '\0') { As it stands the body of that if will always execute and when there are no encoding parameters ppEncodingParams will be returned as a pointer to an empty string rather than as a null pointer Signed-off-by: Peter Korsgaard [Upstream status: https://github.com/TechSmith/mp4v2/pull/36] --- src/rtphint.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rtphint.cpp b/src/rtphint.cpp index e07309d..1eb01f5 100644 --- a/src/rtphint.cpp +++ b/src/rtphint.cpp @@ -339,7 +339,7 @@ void MP4RtpHintTrack::GetPayload( pSlash = strchr(pSlash, '/'); if (pSlash != NULL) { pSlash++; - if (pSlash != '\0') { + if (*pSlash != '\0') { length = (uint32_t)strlen(pRtpMap) - (pSlash - pRtpMap); *ppEncodingParams = (char *)MP4Calloc(length + 1); strncpy(*ppEncodingParams, pSlash, length); -- 2.11.0 ================================================ FILE: package/mp4v2/0002-src-mp4track.cpp-replace-nullptr-by-NULL.patch ================================================ From 78cf76b5d661e37e958163c37c0ad95940c09591 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 30 May 2020 11:42:19 +0200 Subject: [PATCH] src/mp4track.cpp: replace nullptr by NULL Commit 15ec11166ba9ee7b77631d0d9234522f656cfd66 added code that uses nullptr. nullptr is C++11, it will break the build with gcc < 5. Semantically, NULL and nullptr are different, so should not be mixed. In this situaiton, m_File.FindAtom() indeed does not return nullptr, but NULL (on error, that is). Switch back to comparing against NULL. Fixes: - http://autobuild.buildroot.org/results/14937c96a82fb3d10e5d83bd7b2905b846fb09f9 Signed-off-by: Fabrice Fontaine [Upstream status: not sent yet] --- src/mp4track.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mp4track.cpp b/src/mp4track.cpp index 4b8fc9d..42489eb 100644 --- a/src/mp4track.cpp +++ b/src/mp4track.cpp @@ -908,16 +908,16 @@ File* MP4Track::GetSampleFile( MP4SampleId sampleId ) MP4FtypAtom *pFtypAtom = reinterpret_cast( m_File.FindAtom( "ftyp" ) ); // MOV spec does not require "ftyp" atom... - if ( pFtypAtom == nullptr ) + if ( pFtypAtom == NULL ) { - return nullptr; + return NULL; } else { // ... but most often it is present with a "qt " value const char *majorBrand = pFtypAtom->majorBrand.GetValue(); if ( ::strcmp( pFtypAtom->majorBrand.GetValue(), "qt " ) == 0 ) - return nullptr; + return NULL; } throw new Exception( "invalid stsd entry", __FILE__, __LINE__, __FUNCTION__ ); } -- 2.26.2 ================================================ FILE: package/mp4v2/0003-Static-cast-to-unsigned-int-for-cases.patch ================================================ From a5ca35b044bbf13c0b16f0066bf24646604bb218 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Thu, 6 Aug 2020 15:22:04 +0200 Subject: [PATCH] Static cast to unsigned int for cases Signed-off-by: Jason A. Donenfeld [Retrieved from: https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/libmp4v2/files/libmp4v2-2.0.0-unsigned-int-cast.patch] Signed-off-by: Fabrice Fontaine --- libutil/Utility.cpp | 2 +- util/mp4art.cpp | 2 +- util/mp4chaps.cpp | 2 +- util/mp4file.cpp | 2 +- util/mp4subtitle.cpp | 2 +- util/mp4track.cpp | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libutil/Utility.cpp b/libutil/Utility.cpp index 76cdd12..d6739d4 100644 --- a/libutil/Utility.cpp +++ b/libutil/Utility.cpp @@ -493,7 +493,7 @@ Utility::process_impl() if( codes.find( code ) == codes.end() ) continue; - switch( code ) { + switch( static_cast( code ) ) { case 'z': _optimize = true; break; diff --git a/util/mp4art.cpp b/util/mp4art.cpp index add935e..6e7f531 100644 --- a/util/mp4art.cpp +++ b/util/mp4art.cpp @@ -376,7 +376,7 @@ ArtUtility::utility_option( int code, bool& handled ) { handled = true; - switch( code ) { + switch( static_cast ( code ) ) { case LC_ART_ANY: _artFilter = numeric_limits::max(); break; diff --git a/util/mp4chaps.cpp b/util/mp4chaps.cpp index 98400f8..ccc8b70 100644 --- a/util/mp4chaps.cpp +++ b/util/mp4chaps.cpp @@ -632,7 +632,7 @@ ChapterUtility::utility_option( int code, bool& handled ) { handled = true; - switch( code ) { + switch( static_cast ( code ) ) { case 'A': case LC_CHPT_ANY: _ChapterType = MP4ChapterTypeAny; diff --git a/util/mp4file.cpp b/util/mp4file.cpp index c27844b..b127cd1 100644 --- a/util/mp4file.cpp +++ b/util/mp4file.cpp @@ -189,7 +189,7 @@ FileUtility::utility_option( int code, bool& handled ) { handled = true; - switch( code ) { + switch( static_cast( code ) ) { case LC_LIST: _action = &FileUtility::actionList; break; diff --git a/util/mp4subtitle.cpp b/util/mp4subtitle.cpp index 7462153..19d977d 100644 --- a/util/mp4subtitle.cpp +++ b/util/mp4subtitle.cpp @@ -164,7 +164,7 @@ SubtitleUtility::utility_option( int code, bool& handled ) { handled = true; - switch( code ) { + switch( static_cast( code ) ) { case LC_LIST: _action = &SubtitleUtility::actionList; break; diff --git a/util/mp4track.cpp b/util/mp4track.cpp index d550506..cd63d7e 100644 --- a/util/mp4track.cpp +++ b/util/mp4track.cpp @@ -788,7 +788,7 @@ TrackUtility::utility_option( int code, bool& handled ) { handled = true; - switch( code ) { + switch( static_cast( code ) ) { case LC_TRACK_WILDCARD: _trackMode = TM_WILDCARD; break; -- 2.28.0 ================================================ FILE: package/mp4v2/Config.in ================================================ config BR2_PACKAGE_MP4V2 bool "mp4v2" depends on BR2_INSTALL_LIBSTDCPP help The MP4v2 library provides functions to read, create, and modify mp4 files. https://github.com/TechSmith/mp4v2/ if BR2_PACKAGE_MP4V2 config BR2_PACKAGE_MP4V2_UTIL bool "Install mp4 command line tools" help Enable to install the mp4 command line tools mp4art, mp4chaps, mp4extract, mp4info, mp4subtitle, mp4tags, and mp4trackdump. endif comment "mp4v2 needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/mp4v2/mp4v2.hash ================================================ # Locally computed sha256 e3ad6c2dc451b0875dbe34bfe7f51f4fe278b391434c886083e6d3ecd5fa08c2 mp4v2-4.1.3.tar.gz sha256 15e38684c940176e2fc76331a2299d2ab5115ac997078f768ef31b896af69fc5 COPYING ================================================ FILE: package/mp4v2/mp4v2.mk ================================================ ################################################################################ # # mp4v2 # ################################################################################ MP4V2_VERSION = 4.1.3 MP4V2_SITE = \ $(call github,TechSmith,mp4v2,Release-ThirdParty-MP4v2-$(MP4V2_VERSION)) MP4V2_INSTALL_STAGING = YES MP4V2_LICENSE = MPL-1.1 MP4V2_LICENSE_FILES = COPYING # help2man expects to be able to run utilities on the build machine to # grab --help output which doesn't work when cross compiling, so # disable it MP4V2_CONF_ENV = ac_cv_prog_FOUND_HELP2MAN=no ifeq ($(BR2_PACKAGE_MP4V2_UTIL),y) MP4V2_CONF_OPTS += --enable-util else MP4V2_CONF_OPTS += --disable-util endif $(eval $(autotools-package)) ================================================ FILE: package/mpc/Config.in ================================================ config BR2_PACKAGE_MPC bool "mpc" select BR2_PACKAGE_MPFR select BR2_PACKAGE_GMP help Mpc is a C library for the arithmetic of complex numbers with arbitrarily high precision and correct rounding of the result. It is built upon and follows the same principles as Mpfr. http://www.multiprecision.org/ ================================================ FILE: package/mpc/mpc.hash ================================================ # Locally calculated sha256 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459 mpc-1.2.1.tar.gz sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING.LESSER ================================================ FILE: package/mpc/mpc.mk ================================================ ################################################################################ # # mpc # ################################################################################ MPC_VERSION = 1.2.1 MPC_SITE = $(BR2_GNU_MIRROR)/mpc MPC_LICENSE = LGPL-3.0+ 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)) ================================================ FILE: package/mpd/0001-src-event-meson.build-add-atomic-dependency-for-spar.patch ================================================ From cb190801706da046823c74f89472af83ff947ce1 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 17 Aug 2019 22:25:06 +0200 Subject: [PATCH] src/event/meson.build: add atomic dependency for sparc Linking with libatomic is needed on sparc otherwise build fails on: /usr/lfs/v0/rc-buildroot-test/scripts/instance-0/output/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/7.4.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: src/event/libevent.a(MaskMonitor.cxx.o): undefined reference to symbol '__atomic_fetch_or_4@@LIBATOMIC_1.0' Fixes: - http://autobuild.buildroot.org/results/7a9fdb7e323892fb6ed85a2441054303e889c089 Signed-off-by: Fabrice Fontaine [Upstream status: not sent (the same kind of patch for ncmpc was refused: https://github.com/MusicPlayerDaemon/ncmpc/pull/45)] --- src/event/meson.build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/event/meson.build b/src/event/meson.build index bc13bbcd2..88370c03a 100644 --- a/src/event/meson.build +++ b/src/event/meson.build @@ -21,9 +21,13 @@ event = static_library( ], ) +# Needed on sparc +atomic_dep = c_compiler.find_library('atomic', required: false) + event_dep = declare_dependency( link_with: event, dependencies: [ + atomic_dep, thread_dep, system_dep, boost_dep, -- 2.20.1 ================================================ FILE: package/mpd/Config.in ================================================ menuconfig BR2_PACKAGE_MPD bool "mpd" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # flac depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # C++17 depends on BR2_HOST_GCC_AT_LEAST_8 # C++17 select BR2_PACKAGE_BOOST select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help MPD is a flexible, powerful, server-side application for playing music. Through plugins and libraries it can play a variety of sound files while being controlled by its network protocol. http://www.musicpd.org if BR2_PACKAGE_MPD comment "Archive plugins" config BR2_PACKAGE_MPD_BZIP2 bool "bzip2" select BR2_PACKAGE_BZIP2 help Enable bzip2 archive support. config BR2_PACKAGE_MPD_SQLITE bool "sqlite" select BR2_PACKAGE_SQLITE help Enable sqlite database support. If you don't use sqlite it will use an ASCII database. config BR2_PACKAGE_MPD_ZZIP bool "zzip" select BR2_PACKAGE_ZZIPLIB help Enable ZIP archive support. comment "Commercial services" config BR2_PACKAGE_MPD_QOBUZ bool "qobuz" depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS select BR2_PACKAGE_MPD_CURL select BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_YAJL help Play songs from the commercial streaming service Qobuz. config BR2_PACKAGE_MPD_SOUNDCLOUD bool "soundcloud" select BR2_PACKAGE_MPD_CURL select BR2_PACKAGE_YAJL help Enable soundcloud.com playlist support. comment "Converter plugins" config BR2_PACKAGE_MPD_LIBSAMPLERATE bool "libsamplerate" select BR2_PACKAGE_LIBSAMPLERATE help Enable libsamplerate input support. Select this for software sample rate conversion. config BR2_PACKAGE_MPD_LIBSOXR bool "libsoxr" select BR2_PACKAGE_LIBSOXR help Enable libsoxr resampler support. The SoX Resampler library performs software sample-rate conversion. comment "Decoder plugins" config BR2_PACKAGE_MPD_DSD bool "dsd" help Enable Digital Speech Decoder (DSD) support to play audio files encoded in a digital speech format. config BR2_PACKAGE_MPD_FAAD2 bool "faad2" select BR2_PACKAGE_FAAD2 help Enable faad2 input support. Select this if you want to play back MP4/AAC files. config BR2_PACKAGE_MPD_FFMPEG bool "ffmpeg" depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS select BR2_PACKAGE_FFMPEG help Enable ffmpeg input support. Select this if you want to play back files supported by ffmpeg. config BR2_PACKAGE_MPD_FLAC bool "flac" select BR2_PACKAGE_FLAC help Enable flac input/streaming support. Select this if you want to play back FLAC files. config BR2_PACKAGE_MPD_FLUIDSYNTH bool "fluidsynth" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_FLUIDSYNTH help Enable fluidsynth MIDI decoder support. comment "fluidsynth support needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_MPD_LIBSNDFILE bool "libsndfile" select BR2_PACKAGE_LIBSNDFILE help Enable libsndfile input/streaming support. Select this if you want to play back WAV files. config BR2_PACKAGE_MPD_MAD bool "mad" default y select BR2_PACKAGE_LIBID3TAG select BR2_PACKAGE_LIBMAD help Enable mad input support. Select this if you want to play back MP3 files. config BR2_PACKAGE_MPD_MODPLUG bool "modplug" select BR2_PACKAGE_LIBMODPLUG help Enable Modplug decoder support. config BR2_PACKAGE_MPD_MPG123 bool "mpg123" select BR2_PACKAGE_LIBID3TAG select BR2_PACKAGE_MPG123 help Enable mpg123 input support. Select this if you want to play back MP3 files. config BR2_PACKAGE_MPD_MUSEPACK bool "musepack" select BR2_PACKAGE_LIBCUEFILE select BR2_PACKAGE_LIBREPLAYGAIN select BR2_PACKAGE_MUSEPACK help Enable musepack input support. Select this if you want to play back MPC files. config BR2_PACKAGE_MPD_OPUS bool "opus" select BR2_PACKAGE_OPUS select BR2_PACKAGE_LIBOGG help Enable opus input support. Select this if you want to play back OPUS encoded files. config BR2_PACKAGE_MPD_SIDPLAY bool "sidplay" select BR2_PACKAGE_LIBSIDPLAY2 help Enable C64 SID support. config BR2_PACKAGE_MPD_TREMOR bool "tremor" depends on !BR2_PACKAGE_MPD_VORBIS select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_TREMOR help Enable vorbis input support. Select this if you want to play back OGG files on softfloat targets. config BR2_PACKAGE_MPD_VORBIS bool "vorbis" select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_LIBVORBIS help Enable vorbis input/streaming support. Select this if you want to play back OGG files on hardfloat targets. config BR2_PACKAGE_MPD_WAVPACK bool "wavpack" select BR2_PACKAGE_WAVPACK help Enable wavpack input support. Select this if you want to play back WV files. comment "Encoder plugins" config BR2_PACKAGE_MPD_LAME bool "lame" select BR2_PACKAGE_LAME help Enable lame (mp3) encoding support. config BR2_PACKAGE_MPD_TWOLAME bool "twolame" select BR2_PACKAGE_TWOLAME help Enable TwoLAME mp2 encoding. comment "Input plugins" config BR2_PACKAGE_MPD_CDIO_PARANOIA bool "cdio-paranoia" select BR2_PACKAGE_LIBCDIO_PARANOIA help Enable cdio-paranoia support. config BR2_PACKAGE_MPD_CURL bool "curl" select BR2_PACKAGE_LIBCURL help Enable curl streaming (http) support. config BR2_PACKAGE_MPD_LIBMMS bool "mms" select BR2_PACKAGE_LIBMMS help Enable MMS support. config BR2_PACKAGE_MPD_LIBNFS bool "nfs" # libnfs -> libtirpc depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBNFS help Enable Network File System (NFS) support. comment "nfs support needs a toolchain w/ threads support" depends on !(BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_HAS_NATIVE_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 config BR2_PACKAGE_MPD_LIBSMBCLIENT bool "samba" depends on !BR2_nios2 # samba depends on BR2_TOOLCHAIN_USES_GLIBC depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_SAMBA4 help Enable Samba support. comment "Output plugins" config BR2_PACKAGE_MPD_ALSA bool "alsa" default y select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_PCM select BR2_PACKAGE_ALSA_LIB_MIXER help Enable alsa output support. config BR2_PACKAGE_MPD_AO bool "ao" select BR2_PACKAGE_LIBAO help Enable libao output support. config BR2_PACKAGE_MPD_HTTPD_OUTPUT bool "httpd output" help Enable httpd output support. config BR2_PACKAGE_MPD_JACK2 bool "jack2" depends on !BR2_STATIC_LIBS # jack2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_JACK2 help Enable jack output support. comment "jack support needs a toolchain w/ dynamic library" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_STATIC_LIBS config BR2_PACKAGE_MPD_OPENAL bool "openal" depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_PACKAGE_OPENAL help Enable OpenAL output support. comment "openal support needs a toolchain w/ NPTL" depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL config BR2_PACKAGE_MPD_OSS bool "oss" help Enable OSS (Open Sound System) output support. config BR2_PACKAGE_MPD_PULSEAUDIO bool "pulseaudio" depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU select BR2_PACKAGE_PULSEAUDIO help Enable pulseaudio output support. comment "pulseaudio support needs a toolchain w/ threads, wchar, dynamic library" depends on BR2_USE_MMU depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || !BR2_USE_WCHAR 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 bool "avahi (zeroconf) support" depends on !BR2_STATIC_LIBS # avahi select BR2_PACKAGE_AVAHI select BR2_PACKAGE_AVAHI_DAEMON select BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY help Enable Avahi (zeroconf) support. Select this for multicast DNS/DNS-SD service discovery support. This allows MPD to publish service information on a local network. comment "avahi support needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_MPD_LIBMPDCLIENT bool "libmpdclient" select BR2_PACKAGE_LIBMPDCLIENT help Enable libmpdclient support. config BR2_PACKAGE_MPD_NEIGHBOR_DISCOVERY_SUPPORT bool "neighbor discovery support" depends on BR2_PACKAGE_MPD_LIBSMBCLIENT || BR2_PACKAGE_MPD_UPNP help Enable support for neighbor discovery. This option can be used in conjunction with the smbclient plugin to provide a list of SMB/CIFS servers or with the UPnP plugin to provide a list of UPnP servers on the local network. The neighbor plugin needs configuration in mpd.conf. For further information take a look at the MPD documentation. config BR2_PACKAGE_MPD_TCP bool "tcp sockets" default y help Enable MPD to listen on tcp sockets. You want this on if MPD and the client(s) work on different machines (the usual scenario). config BR2_PACKAGE_MPD_UPNP bool "UPnP" select BR2_PACKAGE_EXPAT select BR2_PACKAGE_LIBUPNP select BR2_PACKAGE_MPD_CURL help Enable MPD UPnP client support. comment "Tag plugins" config BR2_PACKAGE_MPD_ID3TAG bool "id3tag" select BR2_PACKAGE_LIBID3TAG help Enable ID3 support. endif comment "mpd needs a toolchain w/ C++, threads, wchar, gcc >= 7, host gcc >= 7" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_8 || \ !BR2_HOST_GCC_AT_LEAST_8 ================================================ FILE: package/mpd/S95mpd ================================================ #!/bin/sh # Sanity checks test -f /etc/mpd.conf || exit 0 start() { printf "Starting mpd: " start-stop-daemon --start --quiet --background --exec /usr/bin/mpd \ && echo "OK" || echo "FAIL" } stop() { printf "Stopping mpd: " start-stop-daemon --stop --quiet --pidfile /var/run/mpd.pid \ && echo "OK" || echo "FAIL" } case "$1" in start) start ;; stop) stop ;; restart|reload) stop sleep 1 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: package/mpd/mpd.conf ================================================ # # Sample configuration file for mpd # This is a minimal configuration, see the manpage for more options # # Directory where the music is stored music_directory "/var/lib/mpd/music" # Directory where user-made playlists are stored (RW) playlist_directory "/var/lib/mpd/playlists" # Database file (RW) db_file "/var/lib/mpd/database" # Log file (RW) log_file "/var/log/mpd.log" # Process ID file (RW) pid_file "/var/run/mpd.pid" # State file (RW) state_file "/var/lib/mpd/state" # User id to run the daemon as #user "nobody" # TCP socket binding bind_to_address "any" #bind_to_address "localhost" # Unix socket to listen on bind_to_address "/var/lib/mpd/socket" ================================================ FILE: package/mpd/mpd.hash ================================================ # Locally calculated after checking pgp signature sha256 143f7f34aaee6e87888f3dd35d49aade6656052651b960ca42b46cbb518ca0a0 mpd-0.22.11.tar.xz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/mpd/mpd.mk ================================================ ################################################################################ # # mpd # ################################################################################ MPD_VERSION_MAJOR = 0.22 MPD_VERSION = $(MPD_VERSION_MAJOR).11 MPD_SOURCE = mpd-$(MPD_VERSION).tar.xz MPD_SITE = http://www.musicpd.org/download/mpd/$(MPD_VERSION_MAJOR) MPD_DEPENDENCIES = host-pkgconf boost MPD_LICENSE = GPL-2.0+ MPD_LICENSE_FILES = COPYING MPD_SELINUX_MODULES = mpd MPD_CONF_OPTS = \ -Daudiofile=disabled \ -Ddocumentation=disabled # Zeroconf support depends on libdns_sd from avahi. ifeq ($(BR2_PACKAGE_MPD_AVAHI_SUPPORT),y) MPD_DEPENDENCIES += avahi MPD_CONF_OPTS += -Dzeroconf=avahi else MPD_CONF_OPTS += -Dzeroconf=disabled endif # MPD prefers libicu for utf8 collation instead of libglib2. ifeq ($(BR2_PACKAGE_ICU),y) MPD_DEPENDENCIES += icu MPD_CONF_OPTS += -Dicu=enabled else MPD_CONF_OPTS += -Dicu=disabled endif ifeq ($(BR2_PACKAGE_MPD_ALSA),y) MPD_DEPENDENCIES += alsa-lib MPD_CONF_OPTS += -Dalsa=enabled else MPD_CONF_OPTS += -Dalsa=disabled endif ifeq ($(BR2_PACKAGE_MPD_AO),y) MPD_DEPENDENCIES += libao MPD_CONF_OPTS += -Dao=enabled else MPD_CONF_OPTS += -Dao=disabled endif ifeq ($(BR2_PACKAGE_MPD_BZIP2),y) MPD_DEPENDENCIES += bzip2 MPD_CONF_OPTS += -Dbzip2=enabled else MPD_CONF_OPTS += -Dbzip2=disabled endif ifeq ($(BR2_PACKAGE_MPD_CDIO_PARANOIA),y) MPD_DEPENDENCIES += libcdio-paranoia MPD_CONF_OPTS += -Dcdio_paranoia=enabled else MPD_CONF_OPTS += -Dcdio_paranoia=disabled endif ifeq ($(BR2_PACKAGE_MPD_CURL),y) MPD_DEPENDENCIES += libcurl MPD_CONF_OPTS += -Dcurl=enabled else MPD_CONF_OPTS += -Dcurl=disabled endif ifeq ($(BR2_PACKAGE_MPD_DSD),y) MPD_CONF_OPTS += -Ddsd=true else MPD_CONF_OPTS += -Ddsd=false endif ifeq ($(BR2_PACKAGE_MPD_FAAD2),y) MPD_DEPENDENCIES += faad2 MPD_CONF_OPTS += -Dfaad=enabled else MPD_CONF_OPTS += -Dfaad=disabled endif ifeq ($(BR2_PACKAGE_MPD_FFMPEG),y) MPD_DEPENDENCIES += ffmpeg MPD_CONF_OPTS += -Dffmpeg=enabled else MPD_CONF_OPTS += -Dffmpeg=disabled endif ifeq ($(BR2_PACKAGE_MPD_FLAC),y) MPD_DEPENDENCIES += flac MPD_CONF_OPTS += -Dflac=enabled else MPD_CONF_OPTS += -Dflac=disabled endif ifeq ($(BR2_PACKAGE_MPD_FLUIDSYNTH),y) MPD_DEPENDENCIES += fluidsynth MPD_CONF_OPTS += -Dfluidsynth=enabled else MPD_CONF_OPTS += -Dfluidsynth=disabled endif ifeq ($(BR2_PACKAGE_MPD_HTTPD_OUTPUT),y) MPD_CONF_OPTS += -Dhttpd=true else MPD_CONF_OPTS += -Dhttpd=false endif ifeq ($(BR2_PACKAGE_MPD_ID3TAG),y) MPD_DEPENDENCIES += libid3tag MPD_CONF_OPTS += -Did3tag=enabled else MPD_CONF_OPTS += -Did3tag=disabled endif ifeq ($(BR2_PACKAGE_MPD_JACK2),y) MPD_DEPENDENCIES += jack2 MPD_CONF_OPTS += -Djack=enabled else MPD_CONF_OPTS += -Djack=disabled endif ifeq ($(BR2_PACKAGE_MPD_LAME),y) MPD_DEPENDENCIES += lame MPD_CONF_OPTS += -Dlame=enabled else MPD_CONF_OPTS += -Dlame=disabled endif ifeq ($(BR2_PACKAGE_MPD_LIBMPDCLIENT),y) MPD_DEPENDENCIES += libmpdclient MPD_CONF_OPTS += -Dlibmpdclient=enabled else MPD_CONF_OPTS += -Dlibmpdclient=disabled endif ifeq ($(BR2_PACKAGE_MPD_LIBMMS),y) MPD_DEPENDENCIES += libmms MPD_CONF_OPTS += -Dmms=enabled else MPD_CONF_OPTS += -Dmms=disabled endif ifeq ($(BR2_PACKAGE_MPD_LIBNFS),y) MPD_DEPENDENCIES += libnfs MPD_CONF_OPTS += -Dnfs=enabled else MPD_CONF_OPTS += -Dnfs=disabled endif ifeq ($(BR2_PACKAGE_MPD_LIBSMBCLIENT),y) MPD_DEPENDENCIES += samba4 MPD_CONF_OPTS += -Dsmbclient=enabled else MPD_CONF_OPTS += -Dsmbclient=disabled endif ifeq ($(BR2_PACKAGE_MPD_LIBSAMPLERATE),y) MPD_DEPENDENCIES += libsamplerate MPD_CONF_OPTS += -Dlibsamplerate=enabled else MPD_CONF_OPTS += -Dlibsamplerate=disabled endif ifeq ($(BR2_PACKAGE_MPD_LIBSNDFILE),y) MPD_DEPENDENCIES += libsndfile MPD_CONF_OPTS += -Dsndfile=enabled else MPD_CONF_OPTS += -Dsndfile=disabled endif ifeq ($(BR2_PACKAGE_MPD_LIBSOXR),y) MPD_DEPENDENCIES += libsoxr MPD_CONF_OPTS += -Dsoxr=enabled else MPD_CONF_OPTS += -Dsoxr=disabled endif ifeq ($(BR2_PACKAGE_MPD_MAD),y) MPD_DEPENDENCIES += libid3tag libmad MPD_CONF_OPTS += -Dmad=enabled else MPD_CONF_OPTS += -Dmad=disabled endif ifeq ($(BR2_PACKAGE_MPD_MODPLUG),y) MPD_DEPENDENCIES += libmodplug MPD_CONF_OPTS += -Dmodplug=enabled else MPD_CONF_OPTS += -Dmodplug=disabled endif ifeq ($(BR2_PACKAGE_MPD_MPG123),y) MPD_DEPENDENCIES += libid3tag mpg123 MPD_CONF_OPTS += -Dmpg123=enabled else MPD_CONF_OPTS += -Dmpg123=disabled endif ifeq ($(BR2_PACKAGE_MPD_MUSEPACK),y) MPD_DEPENDENCIES += musepack MPD_CONF_OPTS += -Dmpcdec=enabled else MPD_CONF_OPTS += -Dmpcdec=disabled endif ifeq ($(BR2_PACKAGE_MPD_NEIGHBOR_DISCOVERY_SUPPORT),y) MPD_CONF_OPTS += -Dneighbor=true else MPD_CONF_OPTS += -Dneighbor=false endif ifeq ($(BR2_PACKAGE_MPD_OPENAL),y) MPD_DEPENDENCIES += openal MPD_CONF_OPTS += -Dopenal=enabled else MPD_CONF_OPTS += -Dopenal=disabled endif ifeq ($(BR2_PACKAGE_MPD_OPUS),y) MPD_DEPENDENCIES += opus libogg MPD_CONF_OPTS += -Dopus=enabled else MPD_CONF_OPTS += -Dopus=disabled endif ifeq ($(BR2_PACKAGE_MPD_OSS),y) MPD_CONF_OPTS += -Doss=enabled else MPD_CONF_OPTS += -Doss=disabled endif ifeq ($(BR2_PACKAGE_MPD_PULSEAUDIO),y) MPD_DEPENDENCIES += pulseaudio MPD_CONF_OPTS += -Dpulse=enabled else MPD_CONF_OPTS += -Dpulse=disabled endif ifeq ($(BR2_PACKAGE_MPD_QOBUZ),y) MPD_DEPENDENCIES += libgcrypt yajl MPD_CONF_OPTS += -Dqobuz=enabled else MPD_CONF_OPTS += -Dqobuz=disabled endif ifeq ($(BR2_PACKAGE_MPD_SHOUTCAST),y) MPD_DEPENDENCIES += libshout MPD_CONF_OPTS += -Dshout=enabled else MPD_CONF_OPTS += -Dshout=disabled endif ifeq ($(BR2_PACKAGE_MPD_SIDPLAY),y) MPD_DEPENDENCIES += libsidplay2 MPD_CONF_OPTS += -Dsidplay=enabled else MPD_CONF_OPTS += -Dsidplay=disabled endif ifeq ($(BR2_PACKAGE_MPD_SOUNDCLOUD),y) MPD_DEPENDENCIES += yajl MPD_CONF_OPTS += -Dsoundcloud=enabled else MPD_CONF_OPTS += -Dsoundcloud=disabled endif ifeq ($(BR2_PACKAGE_MPD_SQLITE),y) MPD_DEPENDENCIES += sqlite MPD_CONF_OPTS += -Dsqlite=enabled else MPD_CONF_OPTS += -Dsqlite=disabled endif ifneq ($(BR2_PACKAGE_MPD_TCP),y) MPD_CONF_OPTS += -Dtcp=true endif ifeq ($(BR2_PACKAGE_MPD_TREMOR),y) MPD_DEPENDENCIES += tremor MPD_CONF_OPTS += -Dtremor=enabled else MPD_CONF_OPTS += -Dtremor=disabled endif ifeq ($(BR2_PACKAGE_MPD_TWOLAME),y) MPD_DEPENDENCIES += twolame MPD_CONF_OPTS += -Dtwolame=enabled else MPD_CONF_OPTS += -Dtwolame=disabled endif ifeq ($(BR2_PACKAGE_MPD_UPNP),y) MPD_DEPENDENCIES += \ expat \ libupnp MPD_CONF_OPTS += -Dupnp=enabled else MPD_CONF_OPTS += -Dupnp=disabled endif ifeq ($(BR2_PACKAGE_MPD_VORBIS),y) MPD_DEPENDENCIES += libvorbis MPD_CONF_OPTS += -Dvorbis=enabled -Dvorbisenc=enabled else MPD_CONF_OPTS += -Dvorbis=disabled -Dvorbisenc=disabled endif ifeq ($(BR2_PACKAGE_MPD_WAVPACK),y) MPD_DEPENDENCIES += wavpack MPD_CONF_OPTS += -Dwavpack=enabled else MPD_CONF_OPTS += -Dwavpack=disabled endif ifeq ($(BR2_PACKAGE_MPD_ZZIP),y) MPD_DEPENDENCIES += zziplib MPD_CONF_OPTS += -Dzzip=enabled else MPD_CONF_OPTS += -Dzzip=disabled endif define MPD_INSTALL_EXTRA_FILES $(INSTALL) -m 0644 -D package/mpd/mpd.conf $(TARGET_DIR)/etc/mpd.conf mkdir -p $(TARGET_DIR)/var/lib/mpd/music mkdir -p $(TARGET_DIR)/var/lib/mpd/playlists endef MPD_POST_INSTALL_TARGET_HOOKS += MPD_INSTALL_EXTRA_FILES define MPD_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/mpd/S95mpd \ $(TARGET_DIR)/etc/init.d/S95mpd endef $(eval $(meson-package)) ================================================ FILE: package/mpd-mpc/Config.in ================================================ config BR2_PACKAGE_MPD_MPC bool "mpd-mpc" select BR2_PACKAGE_LIBMPDCLIENT help A minimalist command line interface to MPD. http://www.musicpd.org/clients/mpc/ ================================================ FILE: package/mpd-mpc/mpd-mpc.hash ================================================ # Locally calculated after checking pgp signature sha256 4f40ccbe18f5095437283cfc525a97815e983cbfd3a29e48ff610fa4f1bf1296 mpc-0.33.tar.xz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/mpd-mpc/mpd-mpc.mk ================================================ ################################################################################ # # mpd-mpc # ################################################################################ MPD_MPC_VERSION_MAJOR = 0 MPD_MPC_VERSION = $(MPD_MPC_VERSION_MAJOR).33 MPD_MPC_SITE = http://www.musicpd.org/download/mpc/$(MPD_MPC_VERSION_MAJOR) MPD_MPC_SOURCE = mpc-$(MPD_MPC_VERSION).tar.xz MPD_MPC_LICENSE = GPL-2.0+ MPD_MPC_LICENSE_FILES = COPYING MPD_MPC_DEPENDENCIES = host-pkgconf libmpdclient $(eval $(meson-package)) ================================================ FILE: package/mpdecimal/0001-Add-minimal-support-for-enable-disable-shared-static.patch ================================================ From c349964887901848fb4cd5db53a5bcb6dae27aaa Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 23 Nov 2014 10:16:33 +0100 Subject: [PATCH] Add minimal support for --{enable,disable}-{shared,static} mpdecimal uses autoconf, but not automake or libtool, so this commit adds some basic handling of --{enable,disable}-{shared,static}, so that building the shared library can be disabled in pure static library contexts. Signed-off-by: Thomas Petazzoni [Fabrice: update for 2.5.0 (add libmpdec++)] Signed-off-by: Fabrice Fontaine --- Makefile.in | 6 ++++++ configure.ac | 13 +++++++++++++ libmpdec/Makefile.in | 11 ++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index 2c91891..0c44f36 100644 --- a/Makefile.in +++ b/Makefile.in @@ -9,6 +9,8 @@ LIBSTATIC = @LIBSTATIC@ LIBSONAME = @LIBSONAME@ LIBSHARED = @LIBSHARED@ INSTALL = @INSTALL@ +BUILD_SHARED = @BUILD_SHARED@ +BUILD_STATIC = @BUILD_STATIC@ prefix = @prefix@ exec_prefix = @exec_prefix@ @@ -32,9 +34,13 @@ install: FORCE $(INSTALL) -d -m 755 $(DESTDIR)$(includedir) $(INSTALL) -m 644 libmpdec/mpdecimal.h $(DESTDIR)$(includedir) $(INSTALL) -d -m 755 $(DESTDIR)$(libdir) +ifeq ($(BUILD_STATIC),yes) $(INSTALL) -m 644 libmpdec/$(LIBSTATIC) $(DESTDIR)$(libdir) +endif +ifeq ($(BUILD_SHARED),yes) $(INSTALL) -m 755 libmpdec/$(LIBSHARED) $(DESTDIR)$(libdir) cd $(DESTDIR)$(libdir) && ln -sf $(LIBSHARED) $(LIBSONAME) && ln -sf $(LIBSHARED) $(LIBNAME) +endif $(INSTALL) -d -m 755 $(DESTDIR)$(docdir) cp -R doc/* $(DESTDIR)$(docdir) @@ -74,9 +80,13 @@ install_libcxx: install_lib $(INSTALL) -d -m 755 $(DESTDIR)$(includedir) $(INSTALL) -m 644 libmpdec++/decimal.hh $(DESTDIR)$(includedir) $(INSTALL) -d -m 755 $(DESTDIR)$(libdir) +ifeq ($(BUILD_STATIC),yes) $(INSTALL) -m 644 libmpdec++/$(LIBSTATIC_CXX) $(DESTDIR)$(libdir) +endif +ifeq ($(BUILD_SHARED),yes) $(INSTALL) -m 755 libmpdec++/$(LIBSHARED_CXX) $(DESTDIR)$(libdir) cd $(DESTDIR)$(libdir) && ln -sf $(LIBSHARED_CXX) $(LIBSONAME_CXX) && ln -sf $(LIBSHARED_CXX) $(LIBNAME_CXX) +endif cp -R doc/libmpdec++ $(DESTDIR)$(docdir) diff --git a/configure.ac b/configure.ac index 7ee8f86..2b3e505 100644 --- a/configure.ac +++ b/configure.ac @@ -88,6 +88,19 @@ CFLAGS="$saved_cflags" AC_PROG_INSTALL AC_SUBST(INSTALL) +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared], [build shared library])], + [BUILD_SHARED=$enableval], + [BUILD_SHARED=yes]) + +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static], [build static library])], + [BUILD_STATIC=$enableval], + [BUILD_STATIC=yes]) + +AC_SUBST(BUILD_SHARED) +AC_SUBST(BUILD_STATIC) + # _FORTIFY_SOURCE wrappers for memmove and bcopy are incorrect: # http://sourceware.org/ml/libc-alpha/2010-12/msg00009.html AC_MSG_CHECKING(for glibc _FORTIFY_SOURCE/memmove bug) diff --git a/libmpdec/Makefile.in b/libmpdec/Makefile.in index d9619a3..985c73c 100644 --- a/libmpdec/Makefile.in +++ b/libmpdec/Makefile.in @@ -7,6 +7,8 @@ LIBSTATIC = @LIBSTATIC@ LIBSONAME = @LIBSONAME@ LIBSHARED = @LIBSHARED@ +BUILD_SHARED = @BUILD_SHARED@ +BUILD_STATIC = @BUILD_STATIC@ CC = @CC@ LD = @LD@ @@ -32,8 +34,15 @@ ifeq ($(MAKECMDGOALS), profile_use) MPD_LDFLAGS += $(MPD_PUSE) endif +ifeq ($(BUILD_SHARED),yes) +TARGETS += $(LIBSHARED) +endif + +ifeq ($(BUILD_STATIC),yes) +TARGETS += $(LIBSTATIC) +endif -default: $(LIBSTATIC) $(LIBSHARED) +default: $(TARGETS) OBJS := basearith.o context.o constants.o convolute.o crt.o mpdecimal.o \ diff --git a/libmpdec/Makefile.in b/libmpdec/Makefile.in index d9619a3..985c73c 100644 --- a/libmpdec++/Makefile.in +++ b/libmpdec++/Makefile.in @@ -13,6 +13,8 @@ LIBSTATIC_CXX = @LIBSTATIC_CXX@ LIBNAME_CXX = @LIBNAME_CXX@ LIBSONAME_CXX = @LIBSONAME_CXX@ LIBSHARED_CXX = @LIBSHARED_CXX@ +BUILD_SHARED = @BUILD_SHARED@ +BUILD_STATIC = @BUILD_STATIC@ CXX = @CXX@ LDXX = @LDXX@ @@ -39,8 +41,15 @@ ifeq ($(MAKECMDGOALS), profile_use) MPD_LDXXFLAGS += $(MPD_PUSE) endif +ifeq ($(BUILD_SHARED),yes) +TARGETS += $(LIBSHARED_CXX) +endif + +ifeq ($(BUILD_STATIC),yes) +TARGETS += $(LIBSTATIC_CXX) +endif -default: $(LIBSTATIC_CXX) $(LIBSHARED_CXX) +default: $(TARGETS) OBJS := decimal.o -- 2.1.0 ================================================ FILE: package/mpdecimal/Config.in ================================================ config BR2_PACKAGE_MPDECIMAL bool "mpdecimal" help mpdecimal is a package for correctly-rounded arbitrary precision decimal floating point arithmetic. Starting from version 2.4, mpdecimal includes only the libmpdec library. Further mpdecimal development will focus exclusively on libmpdec. http://www.bytereef.org/mpdecimal/ ================================================ FILE: package/mpdecimal/mpdecimal.hash ================================================ # From http://www.bytereef.org/mpdecimal/download.html sha256 15417edc8e12a57d1d9d75fa7e3f22b158a3b98f44db9d694cfd2acde8dfa0ca mpdecimal-2.5.0.tar.gz # Locally computed sha256 b07528d8b1dbf1e2d2741052996f0876e23342ce2d30d0effa39c5457716c25a LICENSE.txt ================================================ FILE: package/mpdecimal/mpdecimal.mk ================================================ ################################################################################ # # mpdecimal # ################################################################################ MPDECIMAL_SITE = http://www.bytereef.org/software/mpdecimal/releases MPDECIMAL_VERSION = 2.5.0 MPDECIMAL_INSTALL_STAGING = YES MPDECIMAL_LICENSE = BSD-2-Clause MPDECIMAL_LICENSE_FILES = LICENSE.txt MPDECIMAL_CONF_OPTS = LD="$(TARGET_CC)" MPDECIMAL_AUTORECONF = YES # On i386, by default, mpdecimal tries to uses which is not # available in musl/uclibc. So in this case, we tell mpdecimal to use # the generic 32 bits code, which is anyway the one used on ARM, # PowerPC, etc. ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),) ifeq ($(BR2_i386),y) MPDECIMAL_CONF_ENV += MACHINE=ansi32 endif endif ifeq ($(BR2_INSTALL_LIBSTDCPP),y) MPDECIMAL_CONF_OPTS += --enable-cxx else MPDECIMAL_CONF_OPTS += --disable-cxx endif $(eval $(autotools-package)) ================================================ FILE: package/mpfr/Config.in ================================================ config BR2_PACKAGE_MPFR bool "mpfr" select BR2_PACKAGE_GMP help C library for multiple-precision floating-point computations with exact rounding. http://www.mpfr.org/ ================================================ FILE: package/mpfr/mpfr.hash ================================================ # Locally calculated sha256 0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f mpfr-4.1.0.tar.xz # Hash for license file sha256 e3a994d82e644b03a792a930f574002658412f62407f5fee083f2555c5f23118 COPYING.LESSER ================================================ FILE: package/mpfr/mpfr.mk ================================================ ################################################################################ # # mpfr # ################################################################################ MPFR_VERSION = 4.1.0 MPFR_SITE = http://www.mpfr.org/mpfr-$(MPFR_VERSION) MPFR_SOURCE = mpfr-$(MPFR_VERSION).tar.xz MPFR_LICENSE = LGPL-3.0+ MPFR_LICENSE_FILES = COPYING.LESSER MPFR_CPE_ID_VENDOR = gnu MPFR_INSTALL_STAGING = YES MPFR_DEPENDENCIES = gmp HOST_MPFR_DEPENDENCIES = host-gmp MPFR_MAKE_OPTS = RANLIB=$(TARGET_RANLIB) $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/mpg123/Config.in ================================================ config BR2_PACKAGE_MPG123 bool "mpg123" depends on BR2_USE_MMU # fork - in the application help Fast, free and portable MPEG audio player for Unix. It supports MPEG 1.0/2.0 layers 1, 2 and 3. http://www.mpg123.de/ ================================================ FILE: package/mpg123/mpg123.hash ================================================ # From https://sourceforge.net/projects/mpg123/files/mpg123/1.25.15/ sha1 286fcb83afad3ecbfea60434d3ee1b6d7f41bb7c mpg123-1.25.15.tar.bz2 md5 9a050d4b3573661c606f8095a3f34ca3 mpg123-1.25.15.tar.bz2 # Locally calculated sha256 503a76d82d97f1a6513bbeb284e460a99fb17ef80f23a661d8fc026ce6adcbbc mpg123-1.25.15.tar.bz2 # License file sha256 f40e0dd86b27b52e429b693a87b3ca63ae0a98a4d142e77207aa6bdf1db7a295 COPYING ================================================ FILE: package/mpg123/mpg123.mk ================================================ ################################################################################ # # mpg123 # ################################################################################ MPG123_VERSION = 1.25.15 MPG123_SOURCE = mpg123-$(MPG123_VERSION).tar.bz2 MPG123_SITE = http://downloads.sourceforge.net/project/mpg123/mpg123/$(MPG123_VERSION) MPG123_INSTALL_STAGING = YES MPG123_LICENSE = LGPL-2.1 MPG123_LICENSE_FILES = COPYING MPG123_CPE_ID_VENDOR = mpg123 MPG123_DEPENDENCIES = host-pkgconf MPG123_CPU = $(if $(BR2_SOFT_FLOAT),generic_nofpu,generic_fpu) ifeq ($(BR2_aarch64),y) MPG123_CPU = aarch64 endif ifeq ($(BR2_arm),y) ifeq ($(or $(BR2_ARM_CPU_HAS_NEON),$(BR2_ARM_CPU_HAS_VFPV2)),y) MPG123_CPU = arm_fpu else MPG123_CPU = arm_nofpu endif endif ifeq ($(BR2_i386),y) MPG123_CPU = x86 endif ifeq ($(BR2_powerpc),y) ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y) MPG123_CPU = altivec endif ifeq ($(BR2_SOFT_FLOAT),y) MPG123_CPU = ppc_nofpu endif endif # powerpc ifeq ($(BR2_x86_64),y) MPG123_CPU = x86-64 endif MPG123_CONF_OPTS += --with-cpu=$(MPG123_CPU) MPG123_AUDIO = dummy oss ifeq ($(BR2_PACKAGE_PORTAUDIO),y) MPG123_AUDIO += portaudio MPG123_CONF_OPTS += --with-default-audio=portaudio MPG123_DEPENDENCIES += portaudio # configure script does NOT use pkg-config to figure out how to link # with portaudio, breaking static linking as portaudio uses pthreads MPG123_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs portaudio-2.0`" endif ifeq ($(BR2_PACKAGE_SDL),y) MPG123_AUDIO += sdl MPG123_CONF_OPTS += --with-default-audio=sdl MPG123_DEPENDENCIES += sdl endif ifeq ($(BR2_PACKAGE_ALSA_LIB),y) MPG123_AUDIO += alsa MPG123_CONF_OPTS += --with-default-audio=alsa MPG123_DEPENDENCIES += alsa-lib # configure script does NOT use pkg-config to figure out how to link # with alsa, breaking static linking as alsa uses pthreads MPG123_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs alsa`" endif MPG123_CONF_OPTS += --with-audio=$(subst $(space),$(comma),$(MPG123_AUDIO)) # output modules are loaded with dlopen() ifeq ($(BR2_STATIC_LIBS),y) MPG123_CONF_OPTS += --disable-modules else MPG123_CONF_OPTS += --enable-modules endif $(eval $(autotools-package)) ================================================ FILE: package/mpir/0001-mpn-arm-udiv.asm-workaround-binutils-bug-14887.patch ================================================ From d858ce52d1971cb4e8500b0ebc0472fdae4686ec Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 7 May 2017 23:12:04 +0200 Subject: [PATCH] mpn/arm/udiv.asm: workaround binutils bug #14887 Old binutils versions are affected by bug #14887, https://sourceware.org/bugzilla/show_bug.cgi?id=14887, which causes a build failure when a register specification is surrounded by whitespaces. Removing those whitespaces works around the issue. Signed-off-by: Thomas Petazzoni --- mpn/arm/udiv.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mpn/arm/udiv.asm b/mpn/arm/udiv.asm index 25197a6..ed11eb3 100644 --- a/mpn/arm/udiv.asm +++ b/mpn/arm/udiv.asm @@ -50,7 +50,7 @@ L(oop): divstep(n1,n0,d) teq r12, #0 bne L(oop) - str n1, [ rem_ptr ] C store remainder + str n1, [rem_ptr] C store remainder adc r0, n0, n0 C quotient: add last carry from divstep mov pc, lr @@ -89,7 +89,7 @@ L(oop2): addcs n0, n0, #1 C adjust quotient L(_even_divisor): - str n1, [ rem_ptr ] C store remainder + str n1, [rem_ptr] C store remainder mov r0, n0 C quotient ldmfd sp!, { r8, pc } EPILOGUE(mpn_udiv_qrnnd) -- 2.7.4 ================================================ FILE: package/mpir/Config.in ================================================ config BR2_PACKAGE_MPIR bool "mpir" select BR2_PACKAGE_GMP help MPIR is a highly optimised library for bignum arithmetic forked from the GMP bignum library. http://www.mpir.org/ ================================================ FILE: package/mpir/mpir.hash ================================================ # Locally calculated sha256 52f63459cf3f9478859de29e00357f004050ead70b45913f2c2269d9708675bb mpir-3.0.0.tar.bz2 sha256 9ccf26cfe845e0eb8bb58053e47366e7ab6b697ae010f7650978d4b71b7d1fc1 COPYING.LIB ================================================ FILE: package/mpir/mpir.mk ================================================ ################################################################################ # # mpir # ################################################################################ MPIR_VERSION = 3.0.0 MPIR_SITE = http://www.mpir.org MPIR_SOURCE = mpir-$(MPIR_VERSION).tar.bz2 MPIR_LICENSE = LGPL-3.0+ MPIR_LICENSE_FILES = COPYING.LIB MPIR_INSTALL_STAGING = YES MPIR_DEPENDENCIES = gmp host-yasm ifeq ($(BR2_MIPS_NABI32),y) MPIR_CONF_OPTS += ABI=n32 endif ifeq ($(BR2_MIPS_NABI64),y) MPIR_CONF_OPTS += ABI=64 endif # The optimized ARM assembly code uses ARM-only (i.e not Thumb1/2 # compatible) instructions. ifeq ($(BR2_arm)$(BR2_armeb):$(BR2_ARM_CPU_HAS_ARM),y:) MPIR_CONF_ENV += MPN_PATH="generic" endif # Optimized mips32/mips64 code not suitable for mips32r6/mips64r6 ifeq ($(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS_CPU_MIPS64R6),y) MPIR_CONF_ENV += MPN_PATH="generic" endif # Optimized powerpc64 code is not suitable for powerpc64le ifeq ($(BR2_powerpc64le),y) MPIR_CONF_ENV += MPN_PATH="generic" endif $(eval $(autotools-package)) ================================================ FILE: package/mpv/0001-fix-powerpc64-altivec.patch ================================================ Subject: [PATCH] Work around bool type redefinition by altivec On powerpc64le, the SDL header may include altivec.h and this (combined with -std=c99) will cause a compile failure due to bool being redefined as a vector type. Adjust the compiler flags to add -std=gnu99 (which is compatible with altivec) when using gcc. The generic flag '-std=c99' is left in place for other compilers (in the gcc case it is overridden by the (later) gnu flag). Signed-off-by: Sam Bobroff --- waftools/detections/compiler.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/waftools/detections/compiler.py b/waftools/detections/compiler.py index 5bbba87..50836a2 100644 --- a/waftools/detections/compiler.py +++ b/waftools/detections/compiler.py @@ -43,7 +43,8 @@ def __add_gcc_flags__(ctx): "-Wno-switch", "-Wparentheses", "-Wpointer-arith", "-Wno-pointer-sign", # GCC bug 66425 - "-Wno-unused-result"] + "-Wno-unused-result", + "-std=gnu99"] def __add_clang_flags__(ctx): ctx.env.CFLAGS += ["-Wno-logical-op-parentheses", "-fcolor-diagnostics", -- 2.10.0.297.gf6727b0 ================================================ FILE: package/mpv/Config.in ================================================ config BR2_PACKAGE_MPV_SUPPORTS_VAAPI bool default y if BR2_PACKAGE_LIBDRM && BR2_PACKAGE_MESA3D_OPENGL_EGL default y if BR2_PACKAGE_WAYLAND default y if BR2_PACKAGE_XORG7 config BR2_PACKAGE_MPV bool "mpv" depends on BR2_INSTALL_LIBSTDCPP # libass depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libass depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C11/stdatomic.h depends on BR2_TOOLCHAIN_HAS_ATOMIC select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_FFMPEG select BR2_PACKAGE_FFMPEG_SWSCALE select BR2_PACKAGE_LIBASS select BR2_PACKAGE_ZLIB select BR2_PACKAGE_WAYLAND_PROTOCOLS if BR2_PACKAGE_WAYLAND # Select xkbcommon for wayland to avoid being mysterious select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_WAYLAND # Select all necessary X11 dependencies if X.org is enabled select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXINERAMA if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXSCRNSAVER if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_XORG7 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/ C++, threads, gcc >= 4.9" depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/mpv/mpv.hash ================================================ # Locally calculated sha256 100a116b9f23bdcda3a596e9f26be3a69f166a4f1d00910d1789b6571c46f3a9 mpv-0.33.1.tar.gz sha256 a99d7b0625a0566271aad6de694e52eafd566db024f9516720d526c680d3ee30 LICENSE.GPL ================================================ FILE: package/mpv/mpv.mk ================================================ ################################################################################ # # mpv # ################################################################################ MPV_VERSION = 0.33.1 MPV_SITE = $(call github,mpv-player,mpv,v$(MPV_VERSION)) MPV_DEPENDENCIES = \ host-pkgconf ffmpeg libass zlib \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) MPV_LICENSE = GPL-2.0+ MPV_LICENSE_FILES = LICENSE.GPL MPV_CPE_ID_VENDOR = mpv MPV_INSTALL_STAGING = YES MPV_NEEDS_EXTERNAL_WAF = YES # Some of these options need testing and/or tweaks MPV_CONF_OPTS = \ --prefix=/usr \ --disable-android \ --disable-caca \ --disable-cocoa \ --disable-coreaudio \ --disable-cuda-hwaccel \ --disable-opensles \ --disable-rubberband \ --disable-uchardet \ --disable-vapoursynth ifeq ($(BR2_REPRODUCIBLE),y) MPV_CONF_OPTS += --disable-build-date endif ifeq ($(BR2_STATIC_LIBS),y) MPV_CONF_OPTS += --disable-libmpv-shared --enable-libmpv-static else MPV_CONF_OPTS += --enable-libmpv-shared --disable-libmpv-static endif # 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 ifeq ($(BR2_PACKAGE_MESA3D_GBM),y) MPV_CONF_OPTS += --enable-gbm MPV_DEPENDENCIES += mesa3d ifeq ($(BR2_PACKAGE_LIBDRM),y) MPV_CONF_OPTS += --enable-egl-drm else MPV_CONF_OPTS += --disable-egl-drm endif else MPV_CONF_OPTS += --disable-gbm --disable-egl-drm 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 # bluray support ifeq ($(BR2_PACKAGE_LIBBLURAY),y) MPV_CONF_OPTS += --enable-libbluray MPV_DEPENDENCIES += libbluray else MPV_CONF_OPTS += --disable-libbluray endif # libcdio-paranoia ifeq ($(BR2_PACKAGE_LIBCDIO_PARANOIA),y) MPV_CONF_OPTS += --enable-cdda MPV_DEPENDENCIES += libcdio-paranoia else MPV_CONF_OPTS += --disable-cdda endif # libdvdnav ifeq ($(BR2_PACKAGE_LIBDVDNAV),y) MPV_CONF_OPTS += --enable-dvdnav MPV_DEPENDENCIES += libdvdnav else MPV_CONF_OPTS += --disable-dvdnav endif # libdrm ifeq ($(BR2_PACKAGE_LIBDRM),y) MPV_CONF_OPTS += --enable-drm MPV_DEPENDENCIES += libdrm else MPV_CONF_OPTS += --disable-drm endif # libvdpau ifeq ($(BR2_PACKAGE_LIBVDPAU),y) MPV_CONF_OPTS += --enable-vdpau MPV_DEPENDENCIES += libvdpau else MPV_CONF_OPTS += --disable-vdpau endif # LUA support, only for lua51/lua52/luajit # This enables the controller (OSD) together with libass ifeq ($(BR2_PACKAGE_LUA_5_1)$(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 MPV_DEPENDENCIES += libgl else ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y) MPV_CONF_OPTS += --enable-gl MPV_DEPENDENCIES += libgles else ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y) MPV_CONF_OPTS += --enable-gl MPV_DEPENDENCIES += libegl else MPV_CONF_OPTS += --disable-gl endif # pulseaudio support ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) MPV_CONF_OPTS += --enable-pulse MPV_DEPENDENCIES += pulseaudio else MPV_CONF_OPTS += --disable-pulse endif # SDL support # Sdl2 requires 64-bit sync intrinsics ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_8)$(BR2_PACKAGE_SDL2),yy) MPV_CONF_OPTS += --enable-sdl2 MPV_DEPENDENCIES += sdl2 else MPV_CONF_OPTS += --disable-sdl2 endif # Raspberry Pi support ifeq ($(BR2_PACKAGE_RPI_USERLAND),y) MPV_CONF_OPTS += --enable-rpi --enable-gl MPV_DEPENDENCIES += rpi-userland else MPV_CONF_OPTS += --disable-rpi endif # va-api support ifeq ($(BR2_PACKAGE_LIBVA)$(BR2_PACKAGE_MPV_SUPPORTS_VAAPI),yy) MPV_CONF_OPTS += --enable-vaapi MPV_DEPENDENCIES += libva ifeq ($(BR2_PACKAGE_LIBDRM)$(BR2_PACKAGE_MESA3D_OPENGL_EGL),yy) MPV_CONF_OPTS += --enable-vaapi-drm else MPV_CONF_OPTS += --disable-vaapi-drm endif else MPV_CONF_OPTS += --disable-vaapi --disable-vaapi-drm endif # wayland support ifeq ($(BR2_PACKAGE_WAYLAND),y) MPV_CONF_OPTS += --enable-wayland MPV_DEPENDENCIES += libxkbcommon wayland wayland-protocols else MPV_CONF_OPTS += --disable-wayland endif # Base X11 support. Config.in ensures that if BR2_PACKAGE_XORG7 is # enabled, xlib_libX11, xlib_libXext, xlib_libXinerama, # xlib_libXrandr, xlib_libXScrnSaver. ifeq ($(BR2_PACKAGE_XORG7),y) MPV_CONF_OPTS += --enable-x11 MPV_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXinerama xlib_libXrandr xlib_libXScrnSaver # 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 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) MPV_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -latomic" endif $(eval $(waf-package)) ================================================ FILE: package/mraa/0001-include-Declare-gVERSION-global-as-extern.patch ================================================ From dbb5961f106ec42cd70689d933674c9c37aedfe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Mon, 13 Apr 2020 20:12:11 +0200 Subject: [PATCH] include: Declare gVERSION global as 'extern'. Fixes build with '-fno-common'. [Retrieved from: https://github.com/eclipse/mraa/pull/1012/commits/dbb5961f106ec42cd70689d933674c9c37aedfe1] Signed-off-by: Fabrice Fontaine --- include/version.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/version.h b/include/version.h index 47366ef6f..3a567a1d5 100644 --- a/include/version.h +++ b/include/version.h @@ -11,8 +11,8 @@ extern "C" { #endif -const char* gVERSION; -const char* gVERSION_SHORT; +extern const char* gVERSION; +extern const char* gVERSION_SHORT; #ifdef __cplusplus } ================================================ FILE: package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch ================================================ From cb88e4dd1fbbb9d24e625dba2768b88ed99da309 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 13 Jun 2020 22:51:37 +0200 Subject: [PATCH] CMakeLists.txt: add BUILDCPP option C++ is a mandatory dependency since version 1.4.0 and https://github.com/eclipse/mraa/commit/122cab1f1e53b7c9c7cd82905b962071f9bad9dc As a result, build on embedded toolchains that do not support C++ fails on: CMake Error at CMakeLists.txt:2 (project): The CMAKE_CXX_COMPILER: /home/naourr/work/instance-1/output-1/per-package/mraa/host/bin/arm-linux-g++ is not a full path to an existing compiler tool. Fixes: - http://autobuild.buildroot.org/results/31086422e03611c16ab59c4418e3669b580bc0c0 Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/eclipse/mraa/commit/cb88e4dd1fbbb9d24e625dba2768b88ed99da309] --- CMakeLists.txt | 69 +++++++++++++++++++---------------- src/java/CMakeLists.txt | 4 +- src/javascript/CMakeLists.txt | 34 +++++++++-------- 3 files changed, 59 insertions(+), 48 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 250d9106e..90c0dc920 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required (VERSION 2.8.11) -project (mraa C CXX) +project (mraa C) FIND_PACKAGE (Threads REQUIRED) @@ -11,6 +11,8 @@ else () set (CMAKE_C_STANDARD 99) endif () +option (BUILDCPP "Enable C++ (needed by FTDI4222 and tests)" ON) + ############################################################################### # Detect supported warning flags # Modified from work By Dan Liew (fpbench - MIT) @@ -33,15 +35,18 @@ set (MRAA_C_WARNING_FLAGS -Werror=missing-parameter-type ) -# Warning flags for the C++ compiler only -set (MRAA_CXX_WARNING_FLAGS - -Wnon-virtual-dtor - -Woverloaded-virtual - -Wreorder -) - include (CheckCCompilerFlag) -include (CheckCXXCompilerFlag) +if (BUILDCPP) + # Warning flags for the C++ compiler only + set (MRAA_CXX_WARNING_FLAGS + -Wnon-virtual-dtor + -Woverloaded-virtual + -Wreorder + ) + + enable_language (CXX) + include (CheckCXXCompilerFlag) +endif () function (MRAA_SANITIZE_FLAG_NAME OUTPUT_VAR FLAG) string (REPLACE "-" "_" SANITIZED_FLAG_NAME "${FLAG}") string (REPLACE "/" "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}") @@ -62,28 +67,30 @@ foreach (flag ${MRAA_BOTH_WARNING_FLAGS} ${MRAA_C_WARNING_FLAGS}) endif () endforeach () -# Globally set C++ compiler warning flags that are supported and emit -# a warning about unsupported flags -foreach (flag ${MRAA_BOTH_WARNING_FLAGS} ${MRAA_CXX_WARNING_FLAGS}) - MRAA_SANITIZE_FLAG_NAME (SANITIZED_FLAG_NAME "${flag}") - CHECK_CXX_COMPILER_FLAG ("${flag}" HAS_CXX_${SANITIZED_FLAG_NAME}) - if (HAS_CXX_${SANITIZED_FLAG_NAME}) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}") - else () - message (WARNING "C++ compiler does not support flag \"${flag}\"") - endif () -endforeach () - -# This function adds the c++11 flag to a c++ target (if supported) -function(use_cxx_11 targetname) - include(CheckCXXCompilerFlag) - CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) - if (COMPILER_SUPPORTS_CXX11) - set_target_properties(${targetname} PROPERTIES COMPILE_FLAGS "-std=c++11") - else() - message(FATAL_ERROR "Target '${targetname}' requires c++11 which is not supported by this compiler") - endif() -endfunction() +if (BUILDCPP) + # Globally set C++ compiler warning flags that are supported and emit + # a warning about unsupported flags + foreach (flag ${MRAA_BOTH_WARNING_FLAGS} ${MRAA_CXX_WARNING_FLAGS}) + MRAA_SANITIZE_FLAG_NAME (SANITIZED_FLAG_NAME "${flag}") + CHECK_CXX_COMPILER_FLAG ("${flag}" HAS_CXX_${SANITIZED_FLAG_NAME}) + if (HAS_CXX_${SANITIZED_FLAG_NAME}) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}") + else () + message (WARNING "C++ compiler does not support flag \"${flag}\"") + endif () + endforeach () + + # This function adds the c++11 flag to a c++ target (if supported) + function(use_cxx_11 targetname) + include(CheckCXXCompilerFlag) + CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) + if (COMPILER_SUPPORTS_CXX11) + set_target_properties(${targetname} PROPERTIES COMPILE_FLAGS "-std=c++11") + else() + message(FATAL_ERROR "Target '${targetname}' requires c++11 which is not supported by this compiler") + endif() + endfunction() +endif() # Set CMAKE_INSTALL_LIBDIR if not defined include(GNUInstallDirs) diff --git a/src/java/CMakeLists.txt b/src/java/CMakeLists.txt index 231c755fa..cfa72a0df 100644 --- a/src/java/CMakeLists.txt +++ b/src/java/CMakeLists.txt @@ -16,7 +16,9 @@ include_directories ( set_source_files_properties (mraajava.i PROPERTIES SWIG_FLAGS ";-package;mraa;-I${CMAKE_BINARY_DIR}/src") set_source_files_properties (mraajava.i PROPERTIES CPLUSPLUS ON) -set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -DJAVACALLBACK") +if (BUILDCPP) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -DJAVACALLBACK") +endif() set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DJAVACALLBACK") if (NOT DEFINED ENV{JAVA_HOME_NATIVE}) diff --git a/src/javascript/CMakeLists.txt b/src/javascript/CMakeLists.txt index 25fd36275..99a96b49d 100644 --- a/src/javascript/CMakeLists.txt +++ b/src/javascript/CMakeLists.txt @@ -36,25 +36,27 @@ set_target_properties (mraajs PROPERTIES ) message (STATUS "INFO - swig Version ${SWIG_VERSION}") -message (STATUS "INFO - CXX compiler Version ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}") +if (BUILDCPP) + message (STATUS "INFO - CXX compiler Version ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}") -if (${V8_VERSION_MAJOR} GREATER 3) - message (STATUS "INFO - Using V8 version > 3 so requiring C++11 compiler") - # Node 0.12.x V8 engine major version is '3'. - # Node 2.1.0 V8 engine major version is '4'. - set_property (TARGET mraajs PROPERTY CXX_STANDARD 11) - set_property (TARGET mraajs PROPERTY CXX_STANDARD_REQUIRED ON) - if (CMAKE_VERSION VERSION_LESS "3.1") - message (WARNING "Need to use CMAKE version 3.1+, but it is ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}, using a workaround.") - if (CMAKE_COMPILER_IS_GNUCXX) - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.7") - message (FATAL_ERROR "GNU gcc compiler is also too old (need 4.7+, but ${CMAKE_CXX_COMPILER_VERSION}) and does not support C++11 standard.") + if (${V8_VERSION_MAJOR} GREATER 3) + message (STATUS "INFO - Using V8 version > 3 so requiring C++11 compiler") + # Node 0.12.x V8 engine major version is '3'. + # Node 2.1.0 V8 engine major version is '4'. + set_property (TARGET mraajs PROPERTY CXX_STANDARD 11) + set_property (TARGET mraajs PROPERTY CXX_STANDARD_REQUIRED ON) + if (CMAKE_VERSION VERSION_LESS "3.1") + message (WARNING "Need to use CMAKE version 3.1+, but it is ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}, using a workaround.") + if (CMAKE_COMPILER_IS_GNUCXX) + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.7") + message (FATAL_ERROR "GNU gcc compiler is also too old (need 4.7+, but ${CMAKE_CXX_COMPILER_VERSION}) and does not support C++11 standard.") + endif () + set (MRAA_CXX11_WORKAROUND_OPTION "-std=gnu++11") + else () + set (MRAA_CXX11_WORKAROUND_OPTION "-std=c++11") endif () - set (MRAA_CXX11_WORKAROUND_OPTION "-std=gnu++11") - else () - set (MRAA_CXX11_WORKAROUND_OPTION "-std=c++11") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MRAA_CXX11_WORKAROUND_OPTION} ") endif () - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MRAA_CXX11_WORKAROUND_OPTION} ") endif () endif () ================================================ FILE: package/mraa/Config.in ================================================ config BR2_PACKAGE_MRAA_ARCH_SUPPORTS bool default y if BR2_aarch64 || BR2_aarch64_be default y if BR2_arm || BR2_armeb default y if BR2_i386 || BR2_x86_64 default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el config BR2_PACKAGE_MRAA bool "mraa" depends on BR2_PACKAGE_MRAA_ARCH_SUPPORTS depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS help mraa is a C/C++ library with bindings to javascript & python to interface with the IO on Galileo, Edison & other platforms, with a structured and sane API where port names/numbering matches the board that you are on. http://iotdk.intel.com/docs/master/mraa comment "mraa needs a toolchain w/ threads, dynamic library" depends on BR2_PACKAGE_MRAA_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/mraa/mraa.hash ================================================ # Locally calculated sha256 5351ce9eb654014d8ea7f43bdb2d17e6d1955536938a2ea0d467f4008e614345 mraa-2.1.0.tar.gz sha256 fac52622ed3badd86b34857b21777ab90296d6ccbc2ac0fd457c09fdeefa9ef1 COPYING ================================================ FILE: package/mraa/mraa.mk ================================================ ################################################################################ # # mraa # ################################################################################ MRAA_VERSION = 2.1.0 MRAA_SITE = $(call github,eclipse,mraa,v$(MRAA_VERSION)) MRAA_LICENSE = MIT MRAA_LICENSE_FILES = COPYING MRAA_INSTALL_STAGING = YES ifeq ($(BR2_i386),y) MRAA_ARCH = i386 else ifeq ($(BR2_x86_64),y) MRAA_ARCH = x86_64 else ifeq ($(BR2_arm)$(BR2_armeb),y) MRAA_ARCH = arm else ifeq ($(BR2_aarch64)$(BR2_aarch64_be),y) MRAA_ARCH = aarch64 else ifeq ($(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y) MRAA_ARCH = mips endif # USBPLAT only makes sense with FTDI4222, which requires the ftd2xx library, # which doesn't exist in buildroot # Disable C++ as it is used only by FTDI4222 and tests MRAA_CONF_OPTS += \ -DBUILDARCH=$(MRAA_ARCH) \ -DBUILDCPP=OFF \ -DBUILDSWIG=OFF \ -DUSBPLAT=OFF \ -DFTDI4222=OFF \ -DENABLEEXAMPLES=OFF \ -DBUILDTESTS=OFF ifeq ($(BR2_PACKAGE_JSON_C),y) MRAA_CONF_OPTS += -DJSONPLAT=ON MRAA_DEPENDENCIES += json-c else MRAA_CONF_OPTS += -DJSONPLAT=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/mrouted/Config.in ================================================ config BR2_PACKAGE_MROUTED bool "mrouted" depends on BR2_USE_MMU # fork() help An implementation of the DVMRP multicast routing protocol. Unlike PIM a DVMRP router has a distance vector protocol (like RIP) built-in to figure out the reverse-path to the multicast source. This package comes with mrouted and mroutectl. Where the latter is used to query status and control operation. Note: at least two interfaces with MULTICAST flag is requried. http://github.com/troglobit/mrouted ================================================ FILE: package/mrouted/S41mrouted ================================================ #!/bin/sh DAEMON="mrouted" PIDFILE="/var/run/$DAEMON.pid" MROUTED_ARGS="-w 30" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "/sbin/$DAEMON" \ -- $MROUTED_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } # SIGHUP makes mrouted reload its configuration reload() { printf 'Reloading %s: ' "$DAEMON" start-stop-daemon -K -s HUP -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } case "$1" in start|stop|restart|reload) "$1";; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/mrouted/mrouted.hash ================================================ # From https://github.com/troglobit/mrouted/releases/download/4.4/mrouted-4.4.tar.gz.sha256 sha256 095439e544d69c91ed64fa87db7e35bc2155eef48b7f268281d80946d2c6b953 mrouted-4.4.tar.gz # Locally calculated sha256 834f45ed282fd010f354ecc0a50538af519a1cfcc4d2866de3be06982fa9ed29 LICENSE ================================================ FILE: package/mrouted/mrouted.mk ================================================ ################################################################################ # # mrouted # ################################################################################ MROUTED_VERSION = 4.4 MROUTED_SITE = \ https://github.com/troglobit/mrouted/releases/download/$(MROUTED_VERSION) MROUTED_DEPENDENCIES = host-bison MROUTED_LICENSE = BSD-3-Clause MROUTED_LICENSE_FILES = LICENSE MROUTED_CPE_ID_VENDOR = troglobit define MROUTED_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/mrouted/S41mrouted \ $(TARGET_DIR)/etc/init.d/S41mrouted endef define MROUTED_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(@D)/mrouted.service \ $(TARGET_DIR)/usr/lib/systemd/system/mrouted.service endef # We will asume that CONFIG_NET and CONFIG_INET are already # set in the kernel configuration provided by the user. define MROUTED_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_IP_MULTICAST) $(call KCONFIG_ENABLE_OPT,CONFIG_IP_MROUTE) endef $(eval $(autotools-package)) ================================================ FILE: package/mrp/Config.in ================================================ config BR2_PACKAGE_MRP bool "mrp" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 select BR2_PACKAGE_LIBEV select BR2_PACKAGE_LIBMNL select BR2_PACKAGE_LIBNL help This is the userspace application that configures the kernel to run MRP protocol. The userspace application is made of 2 applications, one daemon and a client. https://github.com/microchip-ung/mrp comment "mrp needs a toolchain w/ threads, kernel headers >= 5.0" depends on !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 ================================================ FILE: package/mrp/S65mrp ================================================ #!/bin/sh # # Start mrp # DAEMON="mrp_server" PIDFILE="/var/run/$DAEMON.pid" # shellcheck source=/dev/null [ -r "/etc/default/mrp_server" ] && . "/etc/default/mrp_server" start() { printf "Starting mrp daemon: " start-stop-daemon -S -b -q -m -p $PIDFILE \ -x /usr/bin/$DAEMON status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return $status } stop() { printf "Stopping mrp daemon: " start-stop-daemon -K -q -p $PIDFILE status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return $status } case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/mrp/mrp.hash ================================================ # locally calculated sha256 1a6c76d058bb425a7ec8b69a65de797650961161ec016b51ac8a1965e1ac304f mrp-1.1.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/mrp/mrp.mk ================================================ ################################################################################ # # mrp # ################################################################################ MRP_VERSION = 1.1 MRP_SITE = $(call github,microchip-ung,mrp,v$(MRP_VERSION)) MRP_DEPENDENCIES = libev libmnl libnl MRP_LICENSE = GPL-2.0 MRP_LICENSE_FILES = LICENSE define MRP_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D $(MRP_PKGDIR)/S65mrp \ $(TARGET_DIR)/etc/init.d/S65mrp endef define MRP_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(MRP_PKGDIR)/mrp.service \ $(TARGET_DIR)/usr/lib/systemd/system/mrp.service endef $(eval $(cmake-package)) ================================================ FILE: package/mrp/mrp.service ================================================ [Unit] Description=Media Redundancy Protocol After=network.target [Service] ExecStart=/usr/bin/mrp Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/msgpack/Config.in ================================================ config BR2_PACKAGE_MSGPACK bool "msgpack" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_SYNC_4 help MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON but it's faster and smaller. http://msgpack.org/ comment "msgpack needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_SYNC_4 ================================================ FILE: package/msgpack/msgpack.hash ================================================ # Locally computed: sha256 6e114d12a5ddb8cb11f669f83f32246e484a8addd0ce93f274996f1941c1f07b msgpack-3.3.0.tar.gz sha256 664550b43996452a5a2c7471bb0ff77185a58c69ccafa60f983dc4c162e1ee22 COPYING sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 LICENSE_1_0.txt ================================================ FILE: package/msgpack/msgpack.mk ================================================ ################################################################################ # # msgpack # ################################################################################ MSGPACK_VERSION = 3.3.0 MSGPACK_SITE = https://github.com/msgpack/msgpack-c/releases/download/cpp-$(MSGPACK_VERSION) MSGPACK_LICENSE = BSL-1.0 MSGPACK_LICENSE_FILES = COPYING LICENSE_1_0.txt MSGPACK_INSTALL_STAGING = YES MSGPACK_CONF_OPTS = -DMSGPACK_BUILD_EXAMPLES=OFF -DMSGPACK_BUILD_TESTS=OFF ifeq ($(BR2_STATIC_LIBS),y) MSGPACK_CONF_OPTS += -DMSGPACK_ENABLE_SHARED=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/msmtp/Config.in ================================================ config BR2_PACKAGE_MSMTP bool "msmtp" help msmtp is an SMTP client. In the default mode, it transmits a mail to an SMTP server (for example at a free mail provider) which takes care of further delivery. https://marlam.de/msmtp/ ================================================ FILE: package/msmtp/msmtp.hash ================================================ # Locally calculated after checking signature # https://marlam.de/msmtp/releases/msmtp-1.8.14.tar.xz.sig # with key 2F61B4828BBA779AECB3F32703A2A4AB1E32FD34 sha256 d56f065d711486e9c234618515a02a48a48dab4051b34f3e108fbecb6fb773b4 msmtp-1.8.14.tar.xz # Hash for license file: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/msmtp/msmtp.mk ================================================ ################################################################################ # # msmtp # ################################################################################ MSMTP_VERSION = 1.8.14 MSMTP_SITE = https://marlam.de/msmtp/releases MSMTP_SOURCE = msmtp-$(MSMTP_VERSION).tar.xz MSMTP_DEPENDENCIES = host-pkgconf MSMTP_CONF_OPTS = --disable-gai-idn MSMTP_LICENSE = GPL-3.0+ MSMTP_LICENSE_FILES = COPYING MSMTP_CPE_ID_VENDOR = marlam # msmtpd needs fork ifeq ($(BR2_USE_MMU),y) MSMTP_CONF_OPTS += --with-msmtpd else MSMTP_CONF_OPTS += --without-msmtpd endif ifeq ($(BR2_PACKAGE_LIBGSASL),y) MSMTP_CONF_OPTS += --with-libgsasl MSMTP_DEPENDENCIES += libgsasl else MSMTP_CONF_OPTS += --without-libgsasl endif ifeq ($(BR2_PACKAGE_LIBIDN2),y) MSMTP_CONF_OPTS += --with-libidn MSMTP_DEPENDENCIES += libidn2 else MSMTP_CONF_OPTS += --without-libidn endif ifeq ($(BR2_PACKAGE_LIBSECRET),y) MSMTP_CONF_OPTS += --with-libsecret MSMTP_DEPENDENCIES += libsecret else MSMTP_CONF_OPTS += --without-libsecret endif ifeq ($(BR2_PACKAGE_GNUTLS),y) MSMTP_CONF_OPTS += --with-tls=gnutls MSMTP_DEPENDENCIES += gnutls else ifeq ($(BR2_PACKAGE_OPENSSL),y) MSMTP_CONF_OPTS += --with-tls=openssl MSMTP_DEPENDENCIES += openssl else MSMTP_CONF_OPTS += --with-tls=no endif $(eval $(autotools-package)) ================================================ FILE: package/msr-tools/Config.in ================================================ 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 ================================================ FILE: package/msr-tools/msr-tools.hash ================================================ # Locally computed: sha256 9b87245ee091a798184e447066e9e0d7709b7c81f5e6ad55f2b958c1aa50c4a3 msr-tools-1.3.tar.gz sha256 98398b08cd0dab9a04115b049758d4a7917af3c74389a4576d26c8a240d38a73 cpuid.c ================================================ FILE: package/msr-tools/msr-tools.mk ================================================ ################################################################################ # # msr-tools # ################################################################################ MSR_TOOLS_VERSION = 1.3 MSR_TOOLS_SITE = $(call github,01org,msr-tools,msr-tools-$(MSR_TOOLS_VERSION)) MSR_TOOLS_LICENSE = GPL-2.0 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)) ================================================ FILE: package/mstpd/Config.in ================================================ config BR2_PACKAGE_MSTPD bool "mstpd" help Multiple Spanning Tree Protocol Daemon. This package provides a user-space daemon which replaces the STP handling that is built into the Linux kernel Ethernet bridge and adds support for RSTP and PVST+. https://github.com/mstpd/mstpd ================================================ FILE: package/mstpd/mstpd.hash ================================================ # locally computed sha256 91a1862548b5b509caa2e96e5fb9912bc98d4d58cc98e99a577824735756c14d mstpd-0.0.9.tar.gz sha256 c38aee9e3c8c4d5d594ff548a1be05453023016d6286931f6512db215ec1fd42 LICENSE sha256 c5cfd44652276184374adf454150d436ce958ce50acc4ef9ccb3605a5ca7a9d3 hmac_md5.c ================================================ FILE: package/mstpd/mstpd.mk ================================================ ################################################################################ # # mstpd # ################################################################################ MSTPD_VERSION = 0.0.9 MSTPD_SITE = $(call github,mstpd,mstpd,$(MSTPD_VERSION)) MSTPD_AUTORECONF = YES MSTPD_LICENSE = GPL-2.0, RSA Data Security (md5) MSTPD_LICENSE_FILES = LICENSE hmac_md5.c $(eval $(autotools-package)) ================================================ FILE: package/mtd/Config.in ================================================ config BR2_PACKAGE_MTD bool "mtd, jffs2 and ubi/ubifs tools" help Build mtd, jffs2 and ubi/ubifs tools http://www.linux-mtd.infradead.org/ if BR2_PACKAGE_MTD # The two hidden options below match mtd configure script options # --enable-jffs and --enable-ubifs config BR2_PACKAGE_MTD_JFFS_UTILS bool select BR2_PACKAGE_LZO select BR2_PACKAGE_ZLIB config BR2_PACKAGE_MTD_UBIFS_UTILS bool select BR2_PACKAGE_LZO select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_ZLIB comment "MTD tools selection" config BR2_PACKAGE_MTD_DOCFDISK bool "docfdisk" config BR2_PACKAGE_MTD_DOC_LOADBIOS bool "doc_loadbios" config BR2_PACKAGE_MTD_FLASHCP bool "flashcp" default y config BR2_PACKAGE_MTD_FLASH_ERASE bool "flash_erase" default y config BR2_PACKAGE_MTD_FLASH_LOCK bool "flash_lock" default y config BR2_PACKAGE_MTD_FLASH_OTP_DUMP bool "flash_otp_dump" config BR2_PACKAGE_MTD_FLASH_OTP_INFO bool "flash_otp_info" config BR2_PACKAGE_MTD_FLASH_OTP_LOCK bool "flash_otp_lock" config BR2_PACKAGE_MTD_FLASH_OTP_WRITE bool "flash_otp_write" config BR2_PACKAGE_MTD_FLASH_OTP_ERASE bool "flash_otp_erase" config BR2_PACKAGE_MTD_FLASH_UNLOCK bool "flash_unlock" default y config BR2_PACKAGE_MTD_FTL_CHECK bool "ftl_check" config BR2_PACKAGE_MTD_FTL_FORMAT bool "ftl_format" config BR2_PACKAGE_MTD_JFFS2DUMP bool "jffs2dump" select BR2_PACKAGE_MTD_JFFS_UTILS config BR2_PACKAGE_MTD_MKFSJFFS2 bool "mkfs.jffs2" select BR2_PACKAGE_MTD_JFFS_UTILS config BR2_PACKAGE_MTD_MKFSUBIFS bool "mkfs.ubifs" select BR2_PACKAGE_MTD_UBIFS_UTILS config BR2_PACKAGE_MTD_MTD_DEBUG bool "mtd_debug" default y config BR2_PACKAGE_MTD_MTDPART bool "mtdpart" config BR2_PACKAGE_MTD_NANDDUMP bool "nanddump" default y config BR2_PACKAGE_MTD_NANDTEST bool "nandtest" default y config BR2_PACKAGE_MTD_NANDWRITE bool "nandwrite" default y config BR2_PACKAGE_MTD_NANDFLIPBITS bool "nandflipbits" config BR2_PACKAGE_MTD_NFTLDUMP bool "nftldump" config BR2_PACKAGE_MTD_NFTL_FORMAT bool "nftl_format" config BR2_PACKAGE_MTD_RECV_IMAGE bool "recv_image" config BR2_PACKAGE_MTD_RFDDUMP bool "rfddump" config BR2_PACKAGE_MTD_RFDFORMAT bool "rfdformat" config BR2_PACKAGE_MTD_SERVE_IMAGE bool "serve_image" config BR2_PACKAGE_MTD_SUMTOOL bool "sumtool" select BR2_PACKAGE_MTD_JFFS_UTILS config BR2_PACKAGE_MTD_MTDINFO bool "mtdinfo" default y config BR2_PACKAGE_MTD_UBIATTACH bool "ubiattach" default y config BR2_PACKAGE_MTD_UBICRC32 bool "ubicrc32" default y config BR2_PACKAGE_MTD_UBIDETACH bool "ubidetach" default y config BR2_PACKAGE_MTD_UBIFORMAT bool "ubiformat" default y config BR2_PACKAGE_MTD_UBIHEALTHD bool "ubihealthd" default y depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # getrandom() comment "ubihealthd needs a toolchain w/ headers >= 3.17" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 config BR2_PACKAGE_MTD_UBIMKVOL bool "ubimkvol" default y config BR2_PACKAGE_MTD_UBINFO bool "ubinfo" default y config BR2_PACKAGE_MTD_UBINIZE bool "ubinize" default y config BR2_PACKAGE_MTD_UBIRENAME bool "ubirename" default y config BR2_PACKAGE_MTD_UBIRMVOL bool "ubirmvol" default y config BR2_PACKAGE_MTD_UBIRSVOL bool "ubirsvol" default y config BR2_PACKAGE_MTD_UBIUPDATEVOL bool "ubiupdatevol" default y config BR2_PACKAGE_MTD_UBIBLOCK bool "ubiblock" default y config BR2_PACKAGE_MTD_TESTS bool "MTD test tools" depends on BR2_USE_MMU # fork() in fstests depends on BR2_TOOLCHAIN_HAS_THREADS help Build and install tools for testing MTD devices and drivers. if BR2_PACKAGE_MTD_TESTS config BR2_PACKAGE_MTD_FLASH_READTEST bool "flash_readtest" config BR2_PACKAGE_MTD_FLASH_SPEED bool "flash_speed" config BR2_PACKAGE_MTD_FLASH_STRESS bool "flash_stress" config BR2_PACKAGE_MTD_FLASH_TORTURE bool "flash_torture" config BR2_PACKAGE_MTD_INTEGCK bool "integck" config BR2_PACKAGE_MTD_NANDBITERRS bool "nandbiterrs" config BR2_PACKAGE_MTD_NANDPAGETEST bool "nandpagetest" config BR2_PACKAGE_MTD_NANDSUBPAGETEST bool "nandsubpagetest" endif comment "MTD test tools need a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS endif ================================================ FILE: package/mtd/Config.in.host ================================================ config BR2_PACKAGE_HOST_MTD bool "host mtd, jffs2 and ubi/ubifs tools" help Build mtd, jffs2 and ubi/ubifs tools http://www.linux-mtd.infradead.org/ ================================================ FILE: package/mtd/mtd.hash ================================================ # Locally calculated after checking pgp signature # ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-2.1.3.tar.bz2.asc sha256 11305a5daf6fc6ed85120695c8593290b577effb039adbfa63d35b4418ff5630 mtd-utils-2.1.3.tar.bz2 sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING ================================================ FILE: package/mtd/mtd.mk ================================================ ################################################################################ # # mtd # ################################################################################ MTD_VERSION = 2.1.3 MTD_SOURCE = mtd-utils-$(MTD_VERSION).tar.bz2 MTD_SITE = ftp://ftp.infradead.org/pub/mtd-utils MTD_LICENSE = GPL-2.0 MTD_LICENSE_FILES = COPYING MTD_CPE_ID_VENDOR = mtd-utils_project MTD_CPE_ID_PRODUCT = mtd-utils MTD_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_MTD_JFFS_UTILS),y) MTD_DEPENDENCIES += zlib lzo host-pkgconf MTD_CONF_OPTS += --with-jffs else MTD_CONF_OPTS += --without-jffs endif ifeq ($(BR2_PACKAGE_MTD_UBIFS_UTILS),y) MTD_DEPENDENCIES += util-linux zlib lzo host-pkgconf MTD_CONF_OPTS += --with-ubifs # crypto needs linux/hash_info.h ifeq ($(BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12)$(BR2_PACKAGE_OPENSSL),yy) MTD_DEPENDENCIES += openssl MTD_CONF_OPTS += --with-crypto else MTD_CONF_OPTS += --without-crypto endif ifeq ($(BR2_PACKAGE_ZSTD),y) MTD_DEPENDENCIES += zstd MTD_CONF_OPTS += --with-zstd else MTD_CONF_OPTS += --without-zstd endif else MTD_CONF_OPTS += --without-ubifs endif ifeq ($(BR2_PACKAGE_MTD_UBIHEALTHD),y) MTD_CONF_OPTS += --enable-ubihealthd else MTD_CONF_OPTS += --disable-ubihealthd endif ifeq ($(BR2_PACKAGE_MTD_TESTS),y) MTD_CONF_OPTS += --enable-tests else MTD_CONF_OPTS += --disable-tests endif # If extended attributes are required, the acl package must # also be enabled which will also include the attr package. ifeq ($(BR2_PACKAGE_ACL),y) MTD_DEPENDENCIES += acl MTD_CONF_OPTS += --with-xattr else MTD_CONF_OPTS += --without-xattr endif HOST_MTD_DEPENDENCIES = host-acl host-zlib host-lzo host-util-linux host-zstd HOST_MTD_CONF_OPTS = \ --with-jffs \ --with-ubifs \ --without-crypto \ --disable-tests MKFS_JFFS2 = $(HOST_DIR)/sbin/mkfs.jffs2 SUMTOOL = $(HOST_DIR)/sbin/sumtool MTD_TARGETS_$(BR2_PACKAGE_MTD_DOCFDISK) += docfdisk MTD_TARGETS_$(BR2_PACKAGE_MTD_DOC_LOADBIOS) += doc_loadbios MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASHCP) += flashcp MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASE) += flash_erase MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_LOCK) += flash_lock MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_OTP_DUMP) += flash_otp_dump MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_OTP_INFO) += flash_otp_info MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_OTP_LOCK) += flash_otp_lock MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_OTP_WRITE) += flash_otp_write MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_OTP_ERASE) += flash_otp_erase MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_UNLOCK) += flash_unlock MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_CHECK) += ftl_check MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_FORMAT) += ftl_format MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS2DUMP) += jffs2dump MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS2) += mkfs.jffs2 MTD_TARGETS_$(BR2_PACKAGE_MTD_MTD_DEBUG) += mtd_debug MTD_TARGETS_$(BR2_PACKAGE_MTD_MTDPART) += mtdpart MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDDUMP) += nanddump MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDTEST) += nandtest MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDWRITE) += nandwrite MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTLDUMP) += nftldump MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTL_FORMAT) += nftl_format MTD_TARGETS_$(BR2_PACKAGE_MTD_RECV_IMAGE) += recv_image MTD_TARGETS_$(BR2_PACKAGE_MTD_RFDDUMP) += rfddump MTD_TARGETS_$(BR2_PACKAGE_MTD_RFDFORMAT) += rfdformat MTD_TARGETS_$(BR2_PACKAGE_MTD_SERVE_IMAGE) += serve_image MTD_TARGETS_$(BR2_PACKAGE_MTD_SUMTOOL) += sumtool MTD_TARGETS_$(BR2_PACKAGE_MTD_MTDINFO) += mtdinfo MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIATTACH) += ubiattach MTD_TARGETS_$(BR2_PACKAGE_MTD_UBICRC32) += ubicrc32 MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIDETACH) += ubidetach MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIFORMAT) += ubiformat MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIHEALTHD) += ubihealthd MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIMKVOL) += ubimkvol MTD_TARGETS_$(BR2_PACKAGE_MTD_UBINFO) += ubinfo MTD_TARGETS_$(BR2_PACKAGE_MTD_UBINIZE) += ubinize MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIRENAME) += ubirename MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIRMVOL) += ubirmvol MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIRSVOL) += ubirsvol MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIUPDATEVOL) += ubiupdatevol MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIBLOCK) += ubiblock MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSUBIFS) += mkfs.ubifs MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_READTEST) += flash_readtest MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_SPEED) += flash_speed MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_STRESS) += flash_stress MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_TORTURE) += flash_torture MTD_TARGETS_$(BR2_PACKAGE_MTD_INTEGCK) += integck MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDBITERRS) += nandbiterrs MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDPAGETEST) += nandpagetest MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDSUBPAGETEST) += nandsubpagetest MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDFLIPBITS) += nandflipbits define MTD_INSTALL_TARGET_CMDS $(foreach f,$(MTD_TARGETS_y), \ $(INSTALL) -D -m 0755 $(@D)/$(f) $(TARGET_DIR)/usr/sbin/$(notdir $(f)) ) endef # Those libraries are not installed by "make install", but are needed # by other packages, such as swupdate. define MTD_INSTALL_LIBS $(INSTALL) -D -m 0755 $(@D)/include/libmtd.h $(STAGING_DIR)/usr/include/libmtd.h $(INSTALL) -D -m 0755 $(@D)/include/libubi.h $(STAGING_DIR)/usr/include/libubi.h $(INSTALL) -D -m 0755 $(@D)/include/mtd/ubi-media.h $(STAGING_DIR)/usr/include/mtd/ubi-media.h $(INSTALL) -D -m 0755 $(@D)/libmtd.a $(STAGING_DIR)/usr/lib/libmtd.a $(INSTALL) -D -m 0755 $(@D)/libubi.a $(STAGING_DIR)/usr/lib/libubi.a endef MTD_POST_INSTALL_STAGING_HOOKS += MTD_INSTALL_LIBS $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/mtdev/Config.in ================================================ config BR2_PACKAGE_MTDEV bool "mtdev" help The mtdev is a stand-alone library which transforms all variants of kernel MT events to the slotted type B protocol. http://bitmath.org/code/mtdev/ ================================================ FILE: package/mtdev/mtdev.hash ================================================ # Locally calculated sha256 15d7b28da8ac71d8bc8c9287c2045fd174267bc740bec10cfda332dc1204e0e0 mtdev-1.1.6.tar.bz2 sha256 795bfe74daae59a97d3a0c8ec0ba0f08c243adf94a3aa7981a4136fce31d55b4 COPYING ================================================ FILE: package/mtdev/mtdev.mk ================================================ ################################################################################ # # mtdev # ################################################################################ MTDEV_VERSION = 1.1.6 MTDEV_SOURCE = mtdev-$(MTDEV_VERSION).tar.bz2 MTDEV_SITE = http://bitmath.org/code/mtdev MTDEV_LICENSE = MIT MTDEV_LICENSE_FILES = COPYING MTDEV_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/mtools/Config.in ================================================ config BR2_PACKAGE_MTOOLS bool "mtools" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() # runtime UTF conversion support select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC help Mtools is a collection of utilities to access MS-DOS disks from Unix without mounting them. It supports Win'95 style long file names, OS/2 Xdf disks and 2m disks (store up to 1992k on a high density 3 1/2 disk). http://www.gnu.org/software/mtools/ comment "mtools needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR depends on BR2_USE_MMU ================================================ FILE: package/mtools/Config.in.host ================================================ config BR2_PACKAGE_HOST_MTOOLS bool "host mtools" help Mtools is a collection of utilities to access MS-DOS disks from Unix without mounting them. It supports Win'95 style long file names, OS/2 Xdf disks and 2m disks (store up to 1992k on a high density 3 1/2 disk). http://www.gnu.org/software/mtools/ ================================================ FILE: package/mtools/mtools.hash ================================================ # Locally calculated after checking pgp signature sha256 d09cff66d7277ad36a7573fc3e9803bfa558cdda83baabaafbf7761317462283 mtools-4.0.26.tar.lz # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/mtools/mtools.mk ================================================ ################################################################################ # # mtools # ################################################################################ MTOOLS_VERSION = 4.0.26 MTOOLS_SOURCE = mtools-$(MTOOLS_VERSION).tar.lz MTOOLS_SITE = $(BR2_GNU_MIRROR)/mtools MTOOLS_LICENSE = GPL-3.0+ MTOOLS_LICENSE_FILES = COPYING MTOOLS_CONF_OPTS = --without-x # info documentation not needed MTOOLS_CONF_ENV = \ ac_cv_func_setpgrp_void=yes \ ac_cv_lib_bsd_gethostbyname=no \ ac_cv_lib_bsd_main=no \ ac_cv_path_INSTALL_INFO= HOST_MTOOLS_CONF_ENV = \ ac_cv_lib_bsd_gethostbyname=no \ ac_cv_lib_bsd_main=no \ ac_cv_path_INSTALL_INFO= # link with iconv if enabled ifeq ($(BR2_PACKAGE_LIBICONV),y) MTOOLS_DEPENDENCIES += libiconv MTOOLS_CONF_ENV += LIBS=-liconv endif # Package does not build in parallel due to improper make rules MTOOLS_MAKE = $(MAKE1) $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/mtr/Config.in ================================================ 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. http://www.bitwizard.nl/mtr/ ================================================ FILE: package/mtr/mtr.hash ================================================ # Locally calculated sha256 ea036fdd45da488c241603f6ea59a06bbcfe6c26177ebd34fff54336a44494b8 mtr-0.94.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/mtr/mtr.mk ================================================ ################################################################################ # # mtr # ################################################################################ MTR_VERSION = 0.94 MTR_SITE = $(call github,traviscross,mtr,v$(MTR_VERSION)) MTR_AUTORECONF = YES MTR_DEPENDENCIES = \ host-pkgconf \ $(if $(BR2_PACKAGE_LIBCAP),libcap) MTR_LICENSE = GPL-2.0 MTR_LICENSE_FILES = COPYING MTR_SELINUX_MODULES = netutils ifeq ($(BR2_PACKAGE_JANSSON),y) MTR_CONF_OPTS += --with-jansson MTR_DEPENDENCIES += jansson else MTR_CONF_OPTS += --without-jansson endif ifeq ($(BR2_PACKAGE_LIBGTK3),y) MTR_CONF_OPTS += --with-gtk MTR_DEPENDENCIES += libgtk3 else MTR_CONF_OPTS += --without-gtk endif ifeq ($(BR2_PACKAGE_NCURSES),y) MTR_CONF_OPTS += --with-ncurses MTR_DEPENDENCIES += ncurses else MTR_CONF_OPTS += --without-ncurses endif $(eval $(autotools-package)) ================================================ FILE: package/multicat/Config.in ================================================ 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 ================================================ FILE: package/multicat/multicat.hash ================================================ # From https://get.videolan.org/multicat/2.3/multicat-2.3.tar.bz2.md5 md5 cf4e4bc07d72eda110050d755db14620 multicat-2.3.tar.bz2 # From https://get.videolan.org/multicat/2.3/multicat-2.3.tar.bz2.sha256 sha256 2be162e9e8b2e6f6aa7686431f102db6c72c8288bd82dbc67ffed631f4a3361e multicat-2.3.tar.bz2 # locally calculated sha256 94f68aec169fb6c9937eade757251714d38a56812be5dbfc3973914a71ad8d2d COPYING ================================================ FILE: package/multicat/multicat.mk ================================================ ################################################################################ # # multicat # ################################################################################ MULTICAT_VERSION = 2.3 MULTICAT_SOURCE = multicat-$(MULTICAT_VERSION).tar.bz2 MULTICAT_SITE = https://get.videolan.org/multicat/$(MULTICAT_VERSION) MULTICAT_LICENSE = GPL-2.0+ MULTICAT_LICENSE_FILES = COPYING MULTICAT_DEPENDENCIES = bitstream # Makefile does not use LDFLAGS. Use LDLIBS for that instead. MULTICAT_MAKE_ENV = $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \ LDLIBS="$(TARGET_LDFLAGS)" 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)) ================================================ FILE: package/multipath-tools/0001-kpartx-libmultipath-use-pkg-config-to-get-path-to-he.patch ================================================ From 922855e245c8bdadc0d24b5b706549b18fb5f079 Mon Sep 17 00:00:00 2001 From: Alexander Egorenkov Date: Sat, 21 Nov 2020 11:08:56 +0100 Subject: [PATCH] kpartx, libmultipath: use pkg-config to get path to headers Use pkg-config in Makefile to find path to devmapper and udev headers to enable cross-compilation. Signed-off-by: Alexander Egorenkov --- kpartx/Makefile | 2 +- libmultipath/Makefile | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/kpartx/Makefile b/kpartx/Makefile index 2906a984..29573890 100644 --- a/kpartx/Makefile +++ b/kpartx/Makefile @@ -8,7 +8,7 @@ LDFLAGS += $(BIN_LDFLAGS) LIBDEPS += -ldevmapper -ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0) +ifneq ($(call check_func,dm_task_set_cookie,$(shell $(PKG_CONFIG) --variable=includedir devmapper)/libdevmapper.h),0) CFLAGS += -DLIBDM_API_COOKIE endif diff --git a/libmultipath/Makefile b/libmultipath/Makefile index 62ba16e8..3ad9130c 100644 --- a/libmultipath/Makefile +++ b/libmultipath/Makefile @@ -20,27 +20,27 @@ ifdef SYSTEMD endif endif -ifneq ($(call check_func,dm_task_no_flush,/usr/include/libdevmapper.h),0) +ifneq ($(call check_func,dm_task_no_flush,$(shell $(PKG_CONFIG) --variable=includedir devmapper)/libdevmapper.h),0) CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE endif -ifneq ($(call check_func,dm_task_get_errno,/usr/include/libdevmapper.h),0) +ifneq ($(call check_func,dm_task_get_errno,$(shell $(PKG_CONFIG) --variable=includedir devmapper)/libdevmapper.h),0) CFLAGS += -DLIBDM_API_GET_ERRNO endif -ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0) +ifneq ($(call check_func,dm_task_set_cookie,$(shell $(PKG_CONFIG) --variable=includedir devmapper)/libdevmapper.h),0) CFLAGS += -DLIBDM_API_COOKIE endif -ifneq ($(call check_func,udev_monitor_set_receive_buffer_size,/usr/include/libudev.h),0) +ifneq ($(call check_func,udev_monitor_set_receive_buffer_size,$(shell $(PKG_CONFIG) --variable=includedir libudev)/libudev.h),0) CFLAGS += -DLIBUDEV_API_RECVBUF endif -ifneq ($(call check_func,dm_task_deferred_remove,/usr/include/libdevmapper.h),0) +ifneq ($(call check_func,dm_task_deferred_remove,$(shell $(PKG_CONFIG) --variable=includedir devmapper)/libdevmapper.h),0) CFLAGS += -DLIBDM_API_DEFERRED endif -ifneq ($(call check_func,dm_hold_control_dev,/usr/include/libdevmapper.h),0) +ifneq ($(call check_func,dm_hold_control_dev,$(shell $(PKG_CONFIG) --variable=includedir devmapper)/libdevmapper.h),0) CFLAGS += -DLIBDM_API_HOLD_CONTROL endif -- 2.29.2 ================================================ FILE: package/multipath-tools/0002-Makefile.inc-Enable-systemd-if-ENABLE_SYSTEMD-is-def.patch ================================================ From 8370da992c752e4238de7a8b02ce0e179353c959 Mon Sep 17 00:00:00 2001 From: Alexander Egorenkov Date: Sun, 6 Sep 2020 10:37:41 +0200 Subject: [PATCH] Makefile.inc: Enable systemd if ENABLE_SYSTEMD is defined systemd is disabled by default, to activate it set ENABLE_SYSTEMD. Signed-off-by: Alexander Egorenkov --- Makefile.inc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile.inc b/Makefile.inc index d4d1e0dd..32bc1846 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -35,6 +35,7 @@ ifndef RUN endif endif +ifdef ENABLE_SYSTEMD ifndef SYSTEMD ifeq ($(shell pkg-config --modversion libsystemd >/dev/null 2>&1 && echo 1), 1) SYSTEMD = $(shell pkg-config --modversion libsystemd) @@ -45,6 +46,7 @@ ifndef SYSTEMD endif endif endif +endif ifndef SYSTEMDPATH SYSTEMDPATH=usr/lib -- 2.28.0 ================================================ FILE: package/multipath-tools/Config.in ================================================ comment "multipath-tools needs udev and a uClibc or glibc toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_USES_MUSL depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || !BR2_PACKAGE_HAS_UDEV config BR2_PACKAGE_MULTIPATH_TOOLS bool "multipath-tools" depends on !BR2_STATIC_LIBS depends on !BR2_TOOLCHAIN_USES_MUSL depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_JSON_C select BR2_PACKAGE_LIBURCU select BR2_PACKAGE_LIBAIO select BR2_PACKAGE_LVM2 select BR2_PACKAGE_LVM2_STANDARD_INSTALL select BR2_PACKAGE_READLINE help This package provides the following binaries to drive the Device Mapper multipathing driver: * multipath - Device mapper target autoconfig. * multipathd - Multipath daemon. * mpathpersist - Manages SCSI persistent reservations on dm multipath devices. * kpartx - Create device maps from partition tables. https://github.com/openSUSE/multipath-tools ================================================ FILE: package/multipath-tools/S60multipathd ================================================ #!/bin/sh DAEMON="multipathd" PIDFILE="/var/run/$DAEMON.pid" [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/sbin/$DAEMON" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/multipath-tools/multipath-tools.hash ================================================ # Locally computed: sha256 7c5962be6068c78d5256e8fc979cf327988f7560705bb9cc25b508c50ca997c0 multipath-tools-0.8.7.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSES/GPL-2.0 sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 LICENSES/GPL-3.0 sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c LICENSES/LGPL-2.0 sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSES/LGPL-2.1 sha256 b1bd70cc61ab014cc2e744af6b117db481ef4fa5d59cb3a21d86059935c666df README.md ================================================ FILE: package/multipath-tools/multipath-tools.mk ================================================ ################################################################################ # # multipath-tools # ################################################################################ MULTIPATH_TOOLS_VERSION = 0.8.7 MULTIPATH_TOOLS_SITE = $(call github,opensvc,multipath-tools,$(MULTIPATH_TOOLS_VERSION)) MULTIPATH_TOOLS_LICENSE = \ LGPL-2.0 (default), \ LGPL-2.1+ (libmpathcmd), \ GPL-2.0+ (libmultipath), \ GPL-3.0+ (libdmmp) MULTIPATH_TOOLS_LICENSE_FILES = \ LICENSES/GPL-2.0 \ LICENSES/GPL-3.0 \ LICENSES/LGPL-2.0 \ LICENSES/LGPL-2.1 \ README.md MULTIPATH_TOOLS_DEPENDENCIES = lvm2 json-c readline udev liburcu libaio host-pkgconf MULTIPATH_TOOLS_MAKE_OPTS = \ LIB="lib" \ RUN="run" \ OPTFLAGS="" \ STACKPROT="" \ WARNFLAGS="" ifeq ($(BR2_PACKAGE_SYSTEMD),y) MULTIPATH_TOOLS_DEPENDENCIES += systemd MULTIPATH_TOOLS_MAKE_OPTS += ENABLE_SYSTEMD=1 endif define MULTIPATH_TOOLS_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(MULTIPATH_TOOLS_MAKE_OPTS) endef define MULTIPATH_TOOLS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) install \ $(MULTIPATH_TOOLS_MAKE_OPTS) DESTDIR="$(TARGET_DIR)" endef define MULTIPATH_TOOLS_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/multipath-tools/S60multipathd \ $(TARGET_DIR)/etc/init.d/S60multipathd endef $(eval $(generic-package)) ================================================ FILE: package/mupdf/0001-Makefile-add-an-install_libs-target.patch ================================================ From 0989f13ecbc2155b05da0cb091801d32d750d2d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20M=C3=A9lotte?= Date: Thu, 29 Aug 2019 09:51:02 +0200 Subject: [PATCH] Makefile: add an install_libs target. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows to install only the library files (if you need pymupdf but not mupdf binaries for example). Signed-off-by: Raphaël Mélotte --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c5bc541ac..e14f88526 100644 --- a/Makefile +++ b/Makefile @@ -322,7 +322,7 @@ libs: $(INSTALL_LIBS) tools: $(TOOL_APPS) apps: $(TOOL_APPS) $(VIEW_APPS) -install: libs apps +install_libs: install -d $(DESTDIR)$(incdir)/mupdf install -d $(DESTDIR)$(incdir)/mupdf/fitz install -d $(DESTDIR)$(incdir)/mupdf/pdf @@ -333,6 +333,7 @@ install: libs apps install -d $(DESTDIR)$(libdir) install -m 644 $(INSTALL_LIBS) $(DESTDIR)$(libdir) +install: libs apps install_libs install -d $(DESTDIR)$(bindir) install -m 755 $(TOOL_APPS) $(VIEW_APPS) $(DESTDIR)$(bindir) -- 2.21.0 ================================================ FILE: package/mupdf/0002-Bug-703366-Fix-double-free-of-object-during-linearization.patch ================================================ From cee7cefc610d42fd383b3c80c12cbc675443176a Mon Sep 17 00:00:00 2001 From: Robin Watts Date: Fri, 22 Jan 2021 17:05:15 +0000 Subject: [PATCH] Bug 703366: Fix double free of object during linearization. This appears to happen because we parse an illegal object from a broken file and assign it to object 0, which is defined to be free. Here, we fix the parsing code so this can't happen. [Retrieved from: http://git.ghostscript.com/?p=mupdf.git;h=cee7cefc610d42fd383b3c80c12cbc675443176a] Signed-off-by: Fabrice Fontaine --- source/pdf/pdf-parse.c | 6 ++++++ source/pdf/pdf-xref.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/source/pdf/pdf-parse.c b/source/pdf/pdf-parse.c index 7abc8c3d4..5761c3351 100644 --- a/source/pdf/pdf-parse.c +++ b/source/pdf/pdf-parse.c @@ -749,6 +749,12 @@ pdf_parse_ind_obj(fz_context *ctx, pdf_document *doc, fz_throw(ctx, FZ_ERROR_SYNTAX, "expected generation number (%d ? obj)", num); } gen = buf->i; + if (gen < 0 || gen >= 65536) + { + if (try_repair) + *try_repair = 1; + fz_throw(ctx, FZ_ERROR_SYNTAX, "invalid generation number (%d)", gen); + } tok = pdf_lex(ctx, file, buf); if (tok != PDF_TOK_OBJ) diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c index 1b2bdcd59..30197b4b8 100644 --- a/source/pdf/pdf-xref.c +++ b/source/pdf/pdf-xref.c @@ -1190,6 +1190,8 @@ pdf_read_new_xref(fz_context *ctx, pdf_document *doc, pdf_lexbuf *buf) { ofs = fz_tell(ctx, doc->file); trailer = pdf_parse_ind_obj(ctx, doc, doc->file, buf, &num, &gen, &stm_ofs, NULL); + if (num == 0) + fz_throw(ctx, FZ_ERROR_GENERIC, "Trailer object number cannot be 0\n"); } fz_catch(ctx) { -- 2.17.1 ================================================ FILE: package/mupdf/0003-Bug-703791-Stay-within-hash-table-max-key-size-in-cached-color-converter.patch ================================================ From f5712c9949d026e4b891b25837edd2edc166151f Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Tue, 20 Apr 2021 14:46:48 +0200 Subject: [PATCH] Bug 703791: Stay within hash table max key size in cached color converter. [Retrieved from: http://git.ghostscript.com/?p=mupdf.git;h=f5712c9949d026e4b891b25837edd2edc166151f] Signed-off-by: Fabrice Fontaine --- include/mupdf/fitz/hash.h | 2 ++ source/fitz/colorspace.c | 40 ++++++++++++++++++++++++--------------- source/fitz/hash.c | 7 +++---- 3 files changed, 30 insertions(+), 19 deletions(-) diff --git a/include/mupdf/fitz/hash.h b/include/mupdf/fitz/hash.h index e92eb0458..feb37a5e4 100644 --- a/include/mupdf/fitz/hash.h +++ b/include/mupdf/fitz/hash.h @@ -5,6 +5,8 @@ #include "mupdf/fitz/context.h" #include "mupdf/fitz/output.h" +#define FZ_HASH_TABLE_KEY_LENGTH 48 + /** Generic hash-table with fixed-length keys. diff --git a/source/fitz/colorspace.c b/source/fitz/colorspace.c index af454caf1..f4db9d3d2 100644 --- a/source/fitz/colorspace.c +++ b/source/fitz/colorspace.c @@ -1025,23 +1025,30 @@ typedef struct fz_cached_color_converter static void fz_cached_color_convert(fz_context *ctx, fz_color_converter *cc_, const float *ss, float *ds) { fz_cached_color_converter *cc = cc_->opaque; - float *val = fz_hash_find(ctx, cc->hash, ss); - int n = cc->base.ds->n * sizeof(float); - - if (val) + if (cc->hash) { - memcpy(ds, val, n); - return; - } + float *val = fz_hash_find(ctx, cc->hash, ss); + int n = cc->base.ds->n * sizeof(float); - cc->base.convert(ctx, &cc->base, ss, ds); + if (val) + { + memcpy(ds, val, n); + return; + } - val = Memento_label(fz_malloc_array(ctx, cc->base.ds->n, float), "cached_color_convert"); - memcpy(val, ds, n); - fz_try(ctx) - fz_hash_insert(ctx, cc->hash, ss, val); - fz_catch(ctx) - fz_free(ctx, val); + cc->base.convert(ctx, &cc->base, ss, ds); + + val = Memento_label(fz_malloc_array(ctx, cc->base.ds->n, float), "cached_color_convert"); + memcpy(val, ds, n); + fz_try(ctx) + fz_hash_insert(ctx, cc->hash, ss, val); + fz_catch(ctx) + fz_free(ctx, val); + } + else + { + cc->base.convert(ctx, &cc->base, ss, ds); + } } void fz_init_cached_color_converter(fz_context *ctx, fz_color_converter *cc, fz_colorspace *ss, fz_colorspace *ds, fz_colorspace *is, fz_color_params params) @@ -1060,7 +1067,10 @@ void fz_init_cached_color_converter(fz_context *ctx, fz_color_converter *cc, fz_ fz_try(ctx) { fz_find_color_converter(ctx, &cached->base, ss, ds, is, params); - cached->hash = fz_new_hash_table(ctx, 256, n * sizeof(float), -1, fz_free); + if (n * sizeof(float) <= FZ_HASH_TABLE_KEY_LENGTH) + cached->hash = fz_new_hash_table(ctx, 256, n * sizeof(float), -1, fz_free); + else + fz_warn(ctx, "colorspace has too many components to be cached"); } fz_catch(ctx) { diff --git a/source/fitz/hash.c b/source/fitz/hash.c index 882b886c9..287d43f03 100644 --- a/source/fitz/hash.c +++ b/source/fitz/hash.c @@ -11,11 +11,9 @@ and removed frequently. */ -enum { MAX_KEY_LEN = 48 }; - typedef struct { - unsigned char key[MAX_KEY_LEN]; + unsigned char key[FZ_HASH_TABLE_KEY_LENGTH]; void *val; } fz_hash_entry; @@ -50,7 +48,8 @@ fz_new_hash_table(fz_context *ctx, int initialsize, int keylen, int lock, fz_has { fz_hash_table *table; - assert(keylen <= MAX_KEY_LEN); + if (keylen > FZ_HASH_TABLE_KEY_LENGTH) + fz_throw(ctx, FZ_ERROR_GENERIC, "hash table key length too large"); table = fz_malloc_struct(ctx, fz_hash_table); table->keylen = keylen; -- 2.17.1 ================================================ FILE: package/mupdf/0004-Makefile-compile-hexdump.exe-with-HOSTCC.patch ================================================ From c0036573a995dc78d3cf60a30ff0af2b47f3680a Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 14 Nov 2021 23:24:27 +0100 Subject: [PATCH] Makefile: compile hexdump.exe with HOSTCC hexdump.exe must be compiled for the host or the build will fail when cross-compiling with HAVE_OBJCOPY=no Signed-off-by: Fabrice Fontaine [Upstream status: https://bugs.ghostscript.com/show_bug.cgi?id=704442] --- Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Makefile b/Makefile index 6492b1ca3..0732b358f 100644 --- a/Makefile +++ b/Makefile @@ -60,6 +60,8 @@ AR_CMD = $(QUIET_AR) $(MKTGTDIR) ; $(AR) cr $@ $^ ifdef RANLIB RANLIB_CMD = $(QUIET_RANLIB) $(RANLIB) $@ endif +HOSTCC ?= $(CC) +HOST_LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(HOSTCC) -o $@ $^ LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) TAGS_CMD = $(QUIET_TAGS) ctags -R --c-kinds=+p --exclude=platform/python --exclude=platform/c++ WINDRES_CMD = $(QUIET_WINDRES) $(MKTGTDIR) ; $(WINDRES) $< $@ @@ -81,6 +83,9 @@ $(OUT)/%.a : $(AR_CMD) $(RANLIB_CMD) +$(OUT)/scripts/hexdump.exe: scripts/hexdump.c + $(HOST_LINK_CMD) + $(OUT)/%.exe: %.c $(LINK_CMD) -- 2.33.0 ================================================ FILE: package/mupdf/Config.in ================================================ config BR2_PACKAGE_MUPDF bool "mupdf" depends on BR2_INSTALL_LIBSTDCPP # harfbuzz depends on BR2_TOOLCHAIN_HAS_SYNC_4 # harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # harfbuzz depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_GUMBO_PARSER select BR2_PACKAGE_HARFBUZZ select BR2_PACKAGE_JBIG2DEC select BR2_PACKAGE_JPEG select BR2_PACKAGE_LCMS2 select BR2_PACKAGE_OPENJPEG select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_ZLIB help MuPDF is a lightweight PDF, XPS, and E-book viewer. https://www.mupdf.com/index.html comment "mupdf needs a toolchain w/ C++, gcc >= 4.8" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/mupdf/mupdf.hash ================================================ # From https://mupdf.com/downloads/index.html: sha1 fc17bd01d5860e49b009f28a5ddb629e94af4510 mupdf-1.18.0-source.tar.xz # Locally computed: sha256 592d4f6c0fba41bb954eb1a41616661b62b134d5b383e33bd45a081af5d4a59a mupdf-1.18.0-source.tar.xz # Hash for license files: sha256 57c8ff33c9c0cfc3ef00e650a1cc910d7ee479a8bc509f6c9209a7c2a11399d6 COPYING ================================================ FILE: package/mupdf/mupdf.mk ================================================ ################################################################################ # # mudpf # ################################################################################ # python-pymupdf's version must match mupdf's version MUPDF_VERSION = 1.18.0 MUPDF_SOURCE = mupdf-$(MUPDF_VERSION)-source.tar.xz MUPDF_SITE = https://mupdf.com/downloads/archive MUPDF_LICENSE = AGPL-3.0+ MUPDF_LICENSE_FILES = COPYING MUPDF_CPE_ID_VENDOR = artifex MUPDF_INSTALL_STAGING = YES MUPDF_DEPENDENCIES = \ freetype \ gumbo-parser \ harfbuzz \ host-pkgconf \ jbig2dec jpeg \ lcms2 openjpeg \ xlib_libX11 \ zlib # 0002-Bug-703366-Fix-double-free-of-object-during-linearization.patch MUPDF_IGNORE_CVES += CVE-2021-3407 # 0003-Bug-703791-Stay-within-hash-table-max-key-size-in-cached-color-converter.patch MUPDF_IGNORE_CVES += CVE-2021-37220 # The pkg-config name for gumbo-parser is `gumbo`. MUPDF_PKG_CONFIG_PACKAGES = \ freetype2 \ gumbo \ harfbuzz \ libjpeg \ zlib MUPDF_CFLAGS = \ $(TARGET_CFLAGS) \ `$(PKG_CONFIG_HOST_BINARY) --cflags $(MUPDF_PKG_CONFIG_PACKAGES)` \ -fPIC # -fPIC is needed because the Makefile doesn't append it. MUPDF_LDFLAGS = \ $(TARGET_LDFLAGS) \ `$(PKG_CONFIG_HOST_BINARY) --libs $(MUPDF_PKG_CONFIG_PACKAGES)` # mupdf doesn't use CFLAGS and LIBS but XCFLAGS and XLIBS instead. # with USE_SYSTEM_LIBS it will try to use system libraries instead of the bundled ones. MUPDF_MAKE_ENV = $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \ XCFLAGS="$(MUPDF_CFLAGS)" \ XLIBS="$(MUPDF_LDFLAGS)" \ USE_SYSTEM_LIBS=yes MUPDF_MAKE_OPTS = \ HAVE_OBJCOPY=no \ prefix="/usr" ifeq ($(BR2_PACKAGE_LIBFREEGLUT),y) MUPDF_DEPENDENCIES += libfreeglut else MUPDF_MAKE_OPTS += HAVE_GLUT=no endif define MUPDF_BUILD_CMDS $(MUPDF_MAKE_ENV) $(MAKE) -C $(@D) $(MUPDF_MAKE_OPTS) all endef define MUPDF_INSTALL_STAGING_CMDS $(MUPDF_MAKE_ENV) $(MAKE) -C $(@D) $(MUPDF_MAKE_OPTS) \ DESTDIR="$(STAGING_DIR)" install_libs endef define MUPDF_INSTALL_TARGET_CMDS $(MUPDF_MAKE_ENV) $(MAKE) -C $(@D) $(MUPDF_MAKE_OPTS) \ DESTDIR="$(TARGET_DIR)" install endef $(eval $(generic-package)) ================================================ FILE: package/murata-cyw-fw/Config.in ================================================ config BR2_PACKAGE_MURATA_CYW_FW bool "murata-cyw-fw" help Murata Wireless firmware, NVRAM and Bluetooth HCD patch files. https://github.com/murata-wireless/cyw-fmac-fw https://github.com/murata-wireless/cyw-fmac-nvram https://github.com/murata-wireless/cyw-bt-patch if BR2_PACKAGE_MURATA_CYW_FW config BR2_PACKAGE_MURATA_CYW_FW_CYW43012 bool "CYW43012 (1LV)" help Murata Wireless CYW43012 (1LV) module firmware files. config BR2_PACKAGE_MURATA_CYW_FW_CYW43340 bool "CYW43340/CYW43341 (1BW)" help Murata Wireless CYW43340/CYW43341 (1BW) module firmware files. config BR2_PACKAGE_MURATA_CYW_FW_CYW43362 bool "CYW43362 (SN8000)" help Murata Wireless CYW43362 (SN8000) module firmware files. config BR2_PACKAGE_MURATA_CYW_FW_CYW4339 bool "CYW4339 (1CK/ZP)" help Murata Wireless CYW4339 (1CK/ZP) module firmware files. choice prompt "CYW4339 module" if BR2_PACKAGE_MURATA_CYW_FW_CYW4339 config BR2_PACKAGE_MURATA_CYW_FW_CYW4339_1CK bool "1CK" config BR2_PACKAGE_MURATA_CYW_FW_CYW4339_ZP bool "ZP" endchoice config BR2_PACKAGE_MURATA_CYW_FW_CYW43430 bool "CYW43430/CYW4343W/CYW43364 (1DX/1FX/1LN)" help Murata Wireless CYW43430/CYW4343W/CYW43364 (1DX/1FX/1LN) module firmware files. choice prompt "CYW43430/CYW4343W/CYW43364 module" if BR2_PACKAGE_MURATA_CYW_FW_CYW43430 config BR2_PACKAGE_MURATA_CYW_FW_CYW43430_1DX bool "1DX" config BR2_PACKAGE_MURATA_CYW_FW_CYW43430_1FX bool "1FX" config BR2_PACKAGE_MURATA_CYW_FW_CYW43430_1LN bool "1LN" endchoice config BR2_PACKAGE_MURATA_CYW_FW_CYW43455 bool "CYW43455 (1HK/1LC/1MW)" help Murata Wireless CYW43455 (1HK/1LC/1MW) module firmware files. choice prompt "CYW43455 module" if BR2_PACKAGE_MURATA_CYW_FW_CYW43455 config BR2_PACKAGE_MURATA_CYW_FW_CYW43455_1HK bool "1HK" config BR2_PACKAGE_MURATA_CYW_FW_CYW43455_1LC bool "1LC" config BR2_PACKAGE_MURATA_CYW_FW_CYW43455_1MW bool "1MW" endchoice config BR2_PACKAGE_MURATA_CYW_FW_CYW4354 bool "CYW4354 (1BB)" help Murata Wireless CYW4354 (1BB) module firmware files. config BR2_PACKAGE_MURATA_CYW_FW_CYW4356 bool "CYW4356 (1CX)" help Murata Wireless CYW4356 (1CX) module firmware files. config BR2_PACKAGE_MURATA_CYW_FW_CYW4359 bool "CYW4359 (1FD)" help Murata Wireless CYW4359 (1FD) module firmware files. endif ================================================ FILE: package/murata-cyw-fw/murata-cyw-fw.hash ================================================ # Locally calculated sha256 c3ecf357786d6db6f3283c0ea36ec067b1728f801fd8871694aed1502a82e9bc murata-cyw-fw-8d87950bfad28c65926695b7357bd8995b60016a.tar.gz sha256 03c140ae04f9c2036678262d6457b9c4b4a9ebb523c5e681af6d57b97c11da37 cyw-fmac-nvram-d27f1bf105fa1e5b828e355793b88d4b66188411.tar.gz sha256 8f23ebb9a262112b62ace1e1bedcdeb00523d9a45e8d48a829d4ca35db4f0280 cyw-bt-patch-748462f0b02ec4aeb500bedd60780ac51c37be31.tar.gz sha256 3a892759b73e8b459f1a750954b316118b0061fd9d1868d11fa258c104ee7e0c LICENCE.cypress ================================================ FILE: package/murata-cyw-fw/murata-cyw-fw.mk ================================================ ################################################################################ # # murata-cyw-fw # ################################################################################ MURATA_CYW_FW_VERSION = 8d87950bfad28c65926695b7357bd8995b60016a MURATA_CYW_FW_VERSION_NVRAM = d27f1bf105fa1e5b828e355793b88d4b66188411 MURATA_CYW_FW_VERSION_BT_PATCH = 748462f0b02ec4aeb500bedd60780ac51c37be31 MURATA_CYW_FW_SITE = $(call github,murata-wireless,cyw-fmac-fw,$(MURATA_CYW_FW_VERSION)) MURATA_CYW_FW_EXTRA_DOWNLOADS = \ $(call github,murata-wireless,cyw-fmac-nvram,$(MURATA_CYW_FW_VERSION_NVRAM))/cyw-fmac-nvram-$(MURATA_CYW_FW_VERSION_NVRAM).tar.gz \ $(call github,murata-wireless,cyw-bt-patch,$(MURATA_CYW_FW_VERSION_BT_PATCH))/cyw-bt-patch-$(MURATA_CYW_FW_VERSION_BT_PATCH).tar.gz MURATA_CYW_FW_LICENSE = PROPRIETARY MURATA_CYW_FW_LICENSE_FILES = LICENCE.cypress MURATA_CYW_FW_REDISTRIBUTE = NO define MURATA_CYW_FW_EXTRACT_NVRAM_PATCH $(foreach tar,$(notdir $(MURATA_CYW_FW_EXTRA_DOWNLOADS)), \ $(call suitable-extractor,$(tar)) $(MURATA_CYW_FW_DL_DIR)/$(tar) | \ $(TAR) --strip-components=1 -C $(@D) $(TAR_OPTIONS) - ) endef MURATA_CYW_FW_POST_EXTRACT_HOOKS += MURATA_CYW_FW_EXTRACT_NVRAM_PATCH MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW43012) += \ brcmfmac43012-sdio.bin \ brcmfmac43012-sdio.1LV.clm_blob \ brcmfmac43012-sdio.1LV.txt \ CYW43012C0.1LV.hcd MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW43340) += \ brcmfmac43340-sdio.bin \ brcmfmac43340-sdio.1BW.txt \ CYW43341B0.1BW.hcd MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW43362) += \ brcmfmac43362-sdio.bin \ brcmfmac43362-sdio.SN8000.txt MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW4339) += \ brcmfmac4339-sdio.bin MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW4339_1CK) += \ brcmfmac4339-sdio.1CK.txt MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW4339_ZP) += \ brcmfmac4339-sdio.ZP.txt \ CYW4335C0.ZP.hcd MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW43430) += \ brcmfmac43430-sdio.bin MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW43430_1DX) += \ brcmfmac43430-sdio.1DX.clm_blob \ brcmfmac43430-sdio.1DX.txt \ CYW43430A1.1DX.hcd MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW43430_1FX) += \ brcmfmac43430-sdio.1FX.clm_blob \ brcmfmac43430-sdio.1FX.txt MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW43430_1LN) += \ brcmfmac43430-sdio.1LN.clm_blob \ brcmfmac43430-sdio.1LN.txt MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW43455) += \ brcmfmac43455-sdio.bin MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW43455_1HK) += \ brcmfmac43455-sdio.1HK.clm_blob \ brcmfmac43455-sdio.1HK.txt MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW43455_1LC) += \ brcmfmac43455-sdio.1LC.clm_blob \ brcmfmac43455-sdio.1LC.txt MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW43455_1MW) += \ brcmfmac43455-sdio.1MW.clm_blob \ brcmfmac43455-sdio.1MW.txt \ CYW4345C0.1MW.hcd MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW4354) += \ brcmfmac4354-sdio.bin \ brcmfmac4354-sdio.1BB.clm_blob \ brcmfmac4354-sdio.1BB.txt \ CYW4350C0.1BB.hcd MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW4356) += \ brcmfmac4356-pcie.bin \ brcmfmac4356-pcie.1CX.clm_blob \ brcmfmac4356-pcie.1CX.txt \ CYW4354A2.1CX.hcd MURATA_CYW_FW_FILES_$(BR2_PACKAGE_MURATA_CYW_FW_CYW4359) += \ brcmfmac4359-pcie.bin \ brcmfmac4359-pcie.1FD.clm_blob # Helper that assumes filename with model has two dots (CHIP.MODEL.EXT), # but filename without model has only single dot (CHIP.EXT). murata-cyw-fw-strip-model = $(shell echo -n $(1) | sed 's/\..*\./\./') # Helper that strips model name and renames Bluetooth patch files to the ones # expected by Linux kernel. murata-cyw-fw-file-rename = $(call murata-cyw-fw-strip-model,$(patsubst CYW%,BCM%,$(f))) define MURATA_CYW_FW_INSTALL_TARGET_CMDS $(foreach f,$(MURATA_CYW_FW_FILES_y), \ $(INSTALL) -m 0644 -D $(@D)/$(f) \ $(TARGET_DIR)/lib/firmware/brcm/$(call murata-cyw-fw-file-rename,$(f)) ) endef $(eval $(generic-package)) ================================================ FILE: package/musepack/0001-shared.patch ================================================ Fixup installation of shared mpcdec library. Based on gentoo patch. Signed-off-by: Gustavo Zacarias --- diff -Nura musepack_src_r475.orig/libmpcdec/CMakeLists.txt musepack_src_r475/libmpcdec/CMakeLists.txt --- musepack_src_r475.orig/libmpcdec/CMakeLists.txt 2010-08-21 12:55:01.000000000 -0300 +++ musepack_src_r475/libmpcdec/CMakeLists.txt 2011-08-17 15:53:06.126873408 -0300 @@ -1,7 +1,12 @@ include_directories(${libmpc_SOURCE_DIR}/include) if(SHARED) - add_library(mpcdec SHARED huffman mpc_decoder mpc_reader streaminfo mpc_bits_reader mpc_demux requant synth_filter ${libmpc_SOURCE_DIR}/common/crc32) + add_library(mpcdec_shared SHARED huffman mpc_decoder mpc_reader streaminfo mpc_bits_reader mpc_demux requant synth_filter ${libmpc_SOURCE_DIR}/common/crc32) + set_target_properties(mpcdec_shared PROPERTIES OUTPUT_NAME mpcdec CLEAN_DIRECT_OUTPUT 1 VERSION 7.0.1 SOVERSION 7) + target_link_libraries(mpcdec_shared m) + install(TARGETS mpcdec_shared LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}") else(SHARED) add_library(mpcdec_static STATIC huffman mpc_decoder mpc_reader streaminfo mpc_bits_reader mpc_demux requant synth_filter ${libmpc_SOURCE_DIR}/common/crc32) + set_target_properties(mpcdec_static PROPERTIES OUTPUT_NAME mpcdec CLEAN_DIRECT_OUTPUT 1) + target_link_libraries(mpcdec_static m) + install(TARGETS mpcdec_static LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}") endif(SHARED) - ================================================ FILE: package/musepack/0002-cmake-use-the-standard-CMake-flag-to-drive-the-share.patch ================================================ From d2f01ba6fa2a065156fad686d1849309c661e527 Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Sun, 31 Aug 2014 12:07:31 +0200 Subject: [PATCH 2/2] cmake: use the standard CMake flag to drive the shared object build If BUILD_SHARED_LIBS is set and SHARED undefined, then drive SHARED with the BUILD_SHARED_LIBS value. Signed-off-by: Samuel Martin --- CMakeLists.txt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b13f78c..db75510 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,11 +7,16 @@ project(libmpc C) set(CMAKE_VERBOSE_MAKEFILE false) TEST_BIG_ENDIAN(MPC_ENDIANNESS) -if(WIN32) - option(SHARED "Use shared libmpcdec" OFF) -else(WIN32) - option(SHARED "Use shared libmpcdec" ON) -endif(WIN32) +# Use the standard CMake flag to drive the shared object build. +if(DEFINED BUILD_SHARED_LIBS AND NOT DEFINED SHARED) + set(SHARED ${BUILD_SHARED_LIBS}) +else() + if(WIN32) + option(SHARED "Use shared libmpcdec" OFF) + else(WIN32) + option(SHARED "Use shared libmpcdec" ON) + endif(WIN32) +endif() add_definitions(-DFAST_MATH -DCVD_FASTLOG) -- 2.1.0 ================================================ FILE: package/musepack/0003-include-fpu-control-with-glibc-only.patch ================================================ Include only on glibc systems The header provides _FPU_*() macros, which the Init_FPU() function uses only on i386, and only when they are defined. Since is not available, this causes a build failure with C libraries such as musl. By simply including explicitly on glibc systems, we avoid the build failure, since mpcenc.c already conditionally uses the macros only if they are defined. Signed-off-by: Bernd Kuhls [Thomas: better commit log.] Signed-off-by: Thomas Petazzoni diff -uNr musepack_src_r475.org/mpcenc/mpcenc.h musepack_src_r475/mpcenc/mpcenc.h --- musepack_src_r475.org/mpcenc/mpcenc.h 2009-02-23 19:15:46.000000000 +0100 +++ musepack_src_r475/mpcenc/mpcenc.h 2016-01-30 09:29:08.000000000 +0100 @@ -50,7 +51,7 @@ # include #endif -#if defined __linux__ +#if defined __GLIBC__ # include #elif defined __FreeBSD__ # include ================================================ FILE: package/musepack/0004-missing-sys-select.patch ================================================ Add missing include This header is needed when types like fd_set are used. This fixes a build issue occuring on the musl C library. Signed-off-by: Bernd Kuhls [Thomas: better commit log.] Signed-off-by: Thomas Petazzoni Index: b/mpcenc/mpcenc.h =================================================================== --- a/mpcenc/mpcenc.h +++ b/mpcenc/mpcenc.h @@ -34,6 +34,7 @@ //// portable system includes ////////////////////////////////////// #include #include +#include //// system dependent system includes ////////////////////////////// // low level I/O, where are prototypes and constants? ================================================ FILE: package/musepack/0005-fix-build-with-gcc-10.patch ================================================ fix build with gcc 10 Define __Cc, __Dc and Res_bit as extern to avoid the following build failure with gcc 10 (which defaults to -fno-common): /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: CMakeFiles/mpcdec_shared.dir/requant.o:(.rodata+0x0): multiple definition of `__Dc'; CMakeFiles/mpcdec_shared.dir/mpc_decoder.o:(.rodata+0x430): first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: CMakeFiles/mpcdec_shared.dir/requant.o:(.rodata+0x28): multiple definition of `__Cc'; CMakeFiles/mpcdec_shared.dir/mpc_decoder.o:(.rodata+0x458): first defined here /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: CMakeFiles/mpcdec_shared.dir/requant.o:(.rodata+0x74): multiple definition of `Res_bit'; CMakeFiles/mpcdec_shared.dir/mpc_decoder.o:(.rodata+0x4a4): first defined here Fixes: - http://autobuild.buildroot.org/results/9971da8c59484a6a26eb79d6e157461a47855dbf Signed-off-by: Fabrice Fontaine diff -Naur musepack_src_r475.orig/libmpcdec/requant.h musepack_src_r475/libmpcdec/requant.h --- musepack_src_r475.orig/libmpcdec/requant.h 2020-09-10 08:31:50.696105246 +0200 +++ musepack_src_r475/libmpcdec/requant.h 2020-09-10 08:32:52.944106476 +0200 @@ -47,9 +47,9 @@ /* C O N S T A N T S */ -const mpc_uint8_t Res_bit [18]; ///< Bits per sample for chosen quantizer -const MPC_SAMPLE_FORMAT __Cc [1 + 18]; ///< Requantization coefficients -const mpc_int16_t __Dc [1 + 18]; ///< Requantization offset +extern const mpc_uint8_t Res_bit [18]; ///< Bits per sample for chosen quantizer +extern const MPC_SAMPLE_FORMAT __Cc [1 + 18]; ///< Requantization coefficients +extern const mpc_int16_t __Dc [1 + 18]; ///< Requantization offset #define Cc (__Cc + 1) #define Dc (__Dc + 1) ================================================ FILE: package/musepack/Config.in ================================================ config BR2_PACKAGE_MUSEPACK bool "musepack" select BR2_PACKAGE_LIBCUEFILE select BR2_PACKAGE_LIBREPLAYGAIN help Musepack is an audio compression format with a strong emphasis on high quality. It's not lossless, but it is designed for transparency, so that you won't be able to hear differences between the original wave file and the much smaller MPC file. http://www.musepack.net/ ================================================ FILE: package/musepack/musepack.hash ================================================ # From https://www.musepack.net/index.php?pg=src md5 754d67be67f713e54baf70fcfdb2817e musepack_src_r475.tar.gz # Calculated based on the hash above sha256 a4b1742f997f83e1056142d556a8c20845ba764b70365ff9ccf2e3f81c427b2b musepack_src_r475.tar.gz # Locally computed sha256 141f551d8e4f037b7f6bc9136b7d3116c7ae9ec8da10c4f14c07c6dc34bc9aa5 libmpcdec/COPYING sha256 0da88639aebbd614151ee52294fa13789f8cd28d9f2e0a56998b89b5c21ddc2b libmpcenc/quant.c ================================================ FILE: package/musepack/musepack.mk ================================================ ################################################################################ # # musepack # ################################################################################ MUSEPACK_VERSION = r475 MUSEPACK_SITE = http://files.musepack.net/source MUSEPACK_SOURCE = musepack_src_$(MUSEPACK_VERSION).tar.gz MUSEPACK_DEPENDENCIES = libcuefile libreplaygain MUSEPACK_INSTALL_STAGING = YES MUSEPACK_MAKE = $(MAKE1) MUSEPACK_LICENSE = BSD-3-Clause (*mpcdec), LGPL-2.1+ (*mpcenc) MUSEPACK_LICENSE_FILES = libmpcdec/COPYING libmpcenc/quant.c $(eval $(cmake-package)) ================================================ FILE: package/musl/0001-avoid-kernel-if_ether.h.patch ================================================ From 3984adc4976de7553f51e0cf4de1e18c373b332b Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Thu, 15 Dec 2016 15:10:19 +0200 Subject: [PATCH] Avoid redefinition of struct ethhdr This is a workaround to the if_ether.h conflict between musl and the kernel. Both define struct ethhdr. Signed-off-by: Baruch Siach --- include/netinet/if_ether.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/netinet/if_ether.h b/include/netinet/if_ether.h index 11ee65823f93..cfe1949d3371 100644 --- a/include/netinet/if_ether.h +++ b/include/netinet/if_ether.h @@ -1,6 +1,9 @@ #ifndef _NETINET_IF_ETHER_H #define _NETINET_IF_ETHER_H +/* Suppress kernel if_ether.h header inclusion */ +#define _LINUX_IF_ETHER_H + #include #include -- 2.10.2 ================================================ FILE: package/musl/0002-package-musl-Make-scheduler-functions-Linux-compatib.patch ================================================ From 407c96fc790d0d11ca9603a2a533216c745b5051 Mon Sep 17 00:00:00 2001 From: Stefan Nickl Date: Mon, 13 May 2019 22:33:21 +0200 Subject: [PATCH] Make scheduler functions Linux-compatible Let sched_getscheduler(), sched_setscheduler(), sched_getparam(), sched_setparam() invoke the Linux syscalls of the same name instead of returning -ENOSYS. Signed-off-by: Stefan Nickl --- src/sched/sched_getparam.c | 3 +-- src/sched/sched_getscheduler.c | 3 +-- src/sched/sched_setparam.c | 3 +-- src/sched/sched_setscheduler.c | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/sched/sched_getparam.c b/src/sched/sched_getparam.c index 76f10e4..65be107 100644 --- a/src/sched/sched_getparam.c +++ b/src/sched/sched_getparam.c @@ -1,8 +1,7 @@ #include -#include #include "syscall.h" int sched_getparam(pid_t pid, struct sched_param *param) { - return __syscall_ret(-ENOSYS); + return syscall(SYS_sched_getparam, pid, param); } diff --git a/src/sched/sched_getscheduler.c b/src/sched/sched_getscheduler.c index 394e508..4c922f6 100644 --- a/src/sched/sched_getscheduler.c +++ b/src/sched/sched_getscheduler.c @@ -1,8 +1,7 @@ #include -#include #include "syscall.h" int sched_getscheduler(pid_t pid) { - return __syscall_ret(-ENOSYS); + return syscall(SYS_sched_getscheduler, pid); } diff --git a/src/sched/sched_setparam.c b/src/sched/sched_setparam.c index 18623ee..f699faf 100644 --- a/src/sched/sched_setparam.c +++ b/src/sched/sched_setparam.c @@ -1,8 +1,7 @@ #include -#include #include "syscall.h" int sched_setparam(pid_t pid, const struct sched_param *param) { - return __syscall_ret(-ENOSYS); + return syscall(SYS_sched_setparam, pid, param); } diff --git a/src/sched/sched_setscheduler.c b/src/sched/sched_setscheduler.c index 4435f21..e678221 100644 --- a/src/sched/sched_setscheduler.c +++ b/src/sched/sched_setscheduler.c @@ -1,8 +1,7 @@ #include -#include #include "syscall.h" int sched_setscheduler(pid_t pid, int sched, const struct sched_param *param) { - return __syscall_ret(-ENOSYS); + return syscall(SYS_sched_setscheduler, pid, sched, param); } -- 2.21.0 ================================================ FILE: package/musl/Config.in ================================================ config BR2_PACKAGE_MUSL bool default y depends on BR2_TOOLCHAIN_USES_MUSL select BR2_PACKAGE_LINUX_HEADERS # SSP broken on i386/ppc: http://www.openwall.com/lists/musl/2016/12/04/2 select BR2_TOOLCHAIN_HAS_SSP if BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI \ && !(BR2_i386 || BR2_powerpc) # Compatibility headers: cdefs.h, queue.h select BR2_PACKAGE_MUSL_COMPAT_HEADERS help https://www.musl-libc.org/ ================================================ FILE: package/musl/musl.hash ================================================ # Locally calculated after checking pgp signature from # https://musl.libc.org/releases/musl-1.2.2.tar.gz.asc sha256 9b969322012d796dc23dda27a35866034fa67d8fb67e0e2c45c913c3d43219dd musl-1.2.2.tar.gz sha256 f9bc4423732350eb0b3f7ed7e91d530298476f8fec0c6c427a1c04ade22655af COPYRIGHT ================================================ FILE: package/musl/musl.mk ================================================ ################################################################################ # # musl # ################################################################################ MUSL_VERSION = 1.2.2 MUSL_SITE = http://www.musl-libc.org/releases MUSL_LICENSE = MIT MUSL_LICENSE_FILES = COPYRIGHT MUSL_CPE_ID_VENDOR = musl-libc # Before musl is configured, we must have the first stage # cross-compiler and the kernel headers MUSL_DEPENDENCIES = host-gcc-initial linux-headers # 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) \ CFLAGS="$(filter-out -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64,$(TARGET_CFLAGS)) $(MUSL_EXTRA_CFLAGS)" \ CPPFLAGS="$(filter-out -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64,$(TARGET_CPPFLAGS))" \ ./configure \ --target=$(GNU_TARGET_NAME) \ --host=$(GNU_TARGET_NAME) \ --prefix=/usr \ --libdir=/lib \ --disable-gcc-wrapper \ --enable-static \ $(if $(BR2_STATIC_LIBS),--disable-shared,--enable-shared)) endef define MUSL_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define MUSL_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ DESTDIR=$(STAGING_DIR) install-libs install-tools install-headers endef define MUSL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ DESTDIR=$(TARGET_DIR) install-libs $(RM) $(addprefix $(TARGET_DIR)/lib/,crt1.o crtn.o crti.o rcrt1.o Scrt1.o) endef $(eval $(generic-package)) ================================================ FILE: package/musl-compat-headers/Config.in ================================================ config BR2_PACKAGE_MUSL_COMPAT_HEADERS bool ================================================ FILE: package/musl-compat-headers/cdefs.h ================================================ /* 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 */ ================================================ FILE: package/musl-compat-headers/musl-compat-headers.hash ================================================ # Locally calculated sha256 c13407edd0e33be73cae72514cb234f8612e1c0e54401c9448daffd3a240158b queue.h?rev=1.70 ================================================ FILE: package/musl-compat-headers/musl-compat-headers.mk ================================================ ################################################################################ # # 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-3-Clause, 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 $(MUSL_COMPAT_HEADERS_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)) ================================================ FILE: package/musl-fts/Config.in ================================================ config BR2_PACKAGE_MUSL_FTS bool "musl-fts" depends on !BR2_TOOLCHAIN_USES_GLIBC help The musl-fts package implements the fts(3) functions fts_open, fts_read, fts_children, fts_set and fts_close, which are missing in musl and uClibc-ng C libraries. https://github.com/void-linux/musl-fts ================================================ FILE: package/musl-fts/musl-fts.hash ================================================ # Locally calculated sha256 49ae567a96dbab22823d045ffebe0d6b14b9b799925e9ca9274d47d26ff482a6 musl-fts-1.2.7.tar.gz sha256 55af87e4017668f54467a3380e7ebbac5e672d8c763bfe95e6fc882a6fdc4046 COPYING ================================================ FILE: package/musl-fts/musl-fts.mk ================================================ ################################################################################ # # musl-fts # ################################################################################ MUSL_FTS_VERSION = 1.2.7 MUSL_FTS_SITE = $(call github,void-linux,musl-fts,v$(MUSL_FTS_VERSION)) MUSL_FTS_AUTORECONF = YES MUSL_FTS_LICENSE = BSD-3-Clause MUSL_FTS_LICENSE_FILES = COPYING # pkg-config needed for autoreconf MUSL_FTS_DEPENDENCIES = host-pkgconf MUSL_FTS_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/mutt/Config.in ================================================ config BR2_PACKAGE_MUTT bool "mutt" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NCURSES help Mutt is a sophisticated text-based Mail User Agent (MUA) http://www.mutt.org/ if BR2_PACKAGE_MUTT config BR2_PACKAGE_MUTT_IMAP bool "imap" help IMAP support config BR2_PACKAGE_MUTT_POP3 bool "pop3" help POP3 support endif # BR2_PACKAGE_MUTT comment "mutt needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR ================================================ FILE: package/mutt/mutt.hash ================================================ # Locally calculated sha256 4ae6d60f7f19854c375cc1c27b5768b71e9f450c2adc10c22e45de8a27de524a mutt-2.1.1.tar.gz sha256 732f24b69a6c71cd8e01e4672bb8e12cc1cbb88a50a4665e6ca4fd95000a57ee GPL ================================================ FILE: package/mutt/mutt.mk ================================================ ################################################################################ # # mutt # ################################################################################ MUTT_VERSION = 2.1.1 MUTT_SITE = https://bitbucket.org/mutt/mutt/downloads MUTT_LICENSE = GPL-2.0+ MUTT_LICENSE_FILES = GPL MUTT_CPE_ID_VENDOR = mutt MUTT_DEPENDENCIES = ncurses MUTT_CONF_OPTS = --disable-doc --disable-smtp ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) MUTT_CONF_ENV += LIBS=-latomic endif ifeq ($(BR2_PACKAGE_LIBICONV),y) MUTT_DEPENDENCIES += libiconv MUTT_CONF_OPTS += --enable-iconv endif # Both options can't be selected at the same time so prefer libidn2 ifeq ($(BR2_PACKAGE_LIBIDN2),y) MUTT_DEPENDENCIES += libidn2 MUTT_CONF_OPTS += --with-idn2 --without-idn else ifeq ($(BR2_PACKAGE_LIBIDN),y) MUTT_DEPENDENCIES += libidn MUTT_CONF_OPTS += --with-idn --without-idn2 else MUTT_CONF_OPTS += --without-idn --without-idn2 endif ifeq ($(BR2_PACKAGE_LIBGPGME),y) MUTT_DEPENDENCIES += libgpgme MUTT_CONF_OPTS += \ --enable-gpgme \ --with-gpgme-prefix=$(STAGING_DIR)/usr else MUTT_CONF_OPTS += --disable-gpgme endif ifeq ($(BR2_PACKAGE_MUTT_IMAP),y) MUTT_CONF_OPTS += --enable-imap else MUTT_CONF_OPTS += --disable-imap endif ifeq ($(BR2_PACKAGE_MUTT_POP3),y) MUTT_CONF_OPTS += --enable-pop else MUTT_CONF_OPTS += --disable-pop endif # SSL support is only used by imap or pop3 module ifneq ($(BR2_PACKAGE_MUTT_IMAP)$(BR2_PACKAGE_MUTT_POP3),) ifeq ($(BR2_PACKAGE_OPENSSL),y) MUTT_DEPENDENCIES += openssl MUTT_CONF_OPTS += \ --without-gnutls \ --with-ssl=$(STAGING_DIR)/usr else ifeq ($(BR2_PACKAGE_GNUTLS),y) MUTT_DEPENDENCIES += gnutls MUTT_CONF_OPTS += \ --with-gnutls=$(STAGING_DIR)/usr \ --without-ssl else MUTT_CONF_OPTS += \ --without-gnutls \ --without-ssl endif else MUTT_CONF_OPTS += \ --without-gnutls \ --without-ssl endif ifeq ($(BR2_PACKAGE_SQLITE),y) MUTT_DEPENDENCIES += sqlite MUTT_CONF_OPTS += --with-sqlite3 else MUTT_CONF_OPTS += --without-sqlite3 endif ifeq ($(BR2_PACKAGE_ZLIB),y) MUTT_DEPENDENCIES += zlib MUTT_CONF_OPTS += --with-zlib=$(STAGING_DIR)/usr else MUTT_CONF_OPTS += --without-zlib endif # Avoid running tests to check for: # - target system is *BSD # - C99 conformance (snprintf, vsnprintf) # - behaviour of the regex library # - if mail spool directory is world/group writable # - we have a working libiconv MUTT_CONF_ENV += \ mutt_cv_bsdish=no \ mutt_cv_c99_snprintf=yes \ mutt_cv_c99_vsnprintf=yes \ mutt_cv_regex_broken=no \ mutt_cv_worldwrite=yes \ mutt_cv_groupwrite=yes \ mutt_cv_iconv_good=yes \ mutt_cv_iconv_nontrans=no MUTT_CONF_OPTS += --with-mailpath=/var/mail define MUTT_VAR_MAIL mkdir -p $(TARGET_DIR)/var ln -sf /tmp $(TARGET_DIR)/var/mail endef MUTT_POST_INSTALL_TARGET_HOOKS += MUTT_VAR_MAIL $(eval $(autotools-package)) ================================================ FILE: package/mxml/Config.in ================================================ config BR2_PACKAGE_MXML bool "Mini-XML" help Lightweight XML Library http://www.minixml.org ================================================ FILE: package/mxml/mxml.hash ================================================ # Locally computed sha256 b894f6c64964f2e77902564c17ba00f5d077a7a24054e7c1937903b0bd42c974 mxml-3.2.tar.gz sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE sha256 ed63aec4c75b9c21a5156b40052138032269bd27fd6f4bc0c51389807cdc7db9 NOTICE ================================================ FILE: package/mxml/mxml.mk ================================================ ################################################################################ # # mxml # ################################################################################ MXML_VERSION = 3.2 MXML_SITE = https://github.com/michaelrsweet/mxml/releases/download/v$(MXML_VERSION) MXML_LICENSE = Apache-2.0 with exceptions MXML_LICENSE_FILES = LICENSE NOTICE MXML_CPE_ID_VENDOR = mini-xml_project MXML_CPE_ID_PRODUCT = mini-xml MXML_INSTALL_STAGING = YES MXML_INSTALL_STAGING_OPTS = DSTROOT=$(STAGING_DIR) install MXML_INSTALL_TARGET_OPTS = DSTROOT=$(TARGET_DIR) install $(eval $(autotools-package)) ================================================ FILE: package/mxsldr/Config.in.host ================================================ config BR2_PACKAGE_HOST_MXSLDR bool "host mxsldr" depends on BR2_arm || BR2_armeb depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb help This package contains tools to download and execute code on Freescale i.MX23 and i.MX28 SoC's through the Serial Download Protocol. https://gitlab.denx.de/denx/mxsldr comment "host mxsldr needs a toolchain w/ host gcc >= 4.9" depends on BR2_arm || BR2_armeb depends on !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/mxsldr/mxsldr.mk ================================================ ################################################################################ # # mxsldr # ################################################################################ MXSLDR_VERSION = 2793a657ab7a22487d21c1b020957806f8ae8383 MXSLDR_SITE = git://git.denx.de/mxsldr.git MXSLDR_LICENSE = GPL-2.0+ 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)/bin/mxsldr endef $(eval $(host-generic-package)) ================================================ FILE: package/mysql/Config.in ================================================ config BR2_PACKAGE_MYSQL bool "mysql support" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS help Select the desired mysql provider. if BR2_PACKAGE_MYSQL choice prompt "mysql variant" default BR2_PACKAGE_ORACLE_MYSQL help Select either the oracle mysql server or the mariadb server config BR2_PACKAGE_MARIADB bool "mariadb" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_ATOMIC || BR2_TOOLCHAIN_HAS_SYNC_8 select BR2_PACKAGE_LIBAIO select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_NCURSES select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_HAS_MYSQL help MariaDB is one of the most popular database servers in the world. It's made by the original developers of MySQL and guaranteed to stay open source. http://www.mariadb.org/ comment "mariadb needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_ATOMIC || BR2_TOOLCHAIN_HAS_SYNC_8 config BR2_PACKAGE_ORACLE_MYSQL bool "oracle mysql" select BR2_PACKAGE_NCURSES select BR2_PACKAGE_HAS_MYSQL help The MySQL Open Source Database System http://www.mysql.com/ endchoice if BR2_PACKAGE_MARIADB config BR2_PACKAGE_MARIADB_SERVER bool "mariadb server" help Install the mariadb server on the target. config BR2_PACKAGE_MARIADB_SERVER_EMBEDDED bool "mariadb embedded server" depends on BR2_PACKAGE_MARIADB_SERVER help Install the mariadb embedded server on the target. endif if BR2_PACKAGE_ORACLE_MYSQL config BR2_PACKAGE_ORACLE_MYSQL_SERVER bool "oracle mysql server" help Install the MySQL server on the target. endif config BR2_PACKAGE_HAS_MYSQL bool config BR2_PACKAGE_PROVIDES_MYSQL string default "mariadb" if BR2_PACKAGE_MARIADB default "oracle-mysql" if BR2_PACKAGE_ORACLE_MYSQL endif comment "mysql needs a toolchain w/ C++, threads" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/mysql/mysql.mk ================================================ ################################################################################ # # mysql # ################################################################################ $(eval $(virtual-package)) ================================================ FILE: package/nano/0001-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch ================================================ From a0594387565e1e6b4a8a8ba04ad13b135cc1f0b5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 1 Apr 2021 07:49:46 +0200 Subject: [PATCH] lib/getrandom.c: fix build with uclibc < 1.0.35 Fix the following build failure with uclibc < 1.0.35 which is raised since the addition of getrandom module in https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=682cc4e678aceff32dea2a84b6e5147bdf5a20a7: In file included from ./sys/random.h:40, from getrandom.c:22: /home/fabrice/buildroot/output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:35: error: unknown type name 'size_t' 27 | extern int getrandom(void *__buf, size_t count, unsigned int flags) | ^~~~~~ /home/fabrice/buildroot/output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:8:1: note: 'size_t' is defined in header ''; did you forget to '#include '? 7 | #include +++ |+#include 8 | This patch is not upstreamable as it is only a workaround for uclibc < 1.0.35, upstream uclibc has been patched with https://github.com/wbx-github/uclibc-ng/commit/00972c02c2b6e0a95d5def4a71bdfb188e091782 Fixes: - http://autobuild.buildroot.org/results/1932c524aa6b6a3337a0fc21b44adaac60972d30 Signed-off-by: Fabrice Fontaine --- lib/getrandom.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/getrandom.c b/lib/getrandom.c index 41212fb32..0ad3f9648 100644 --- a/lib/getrandom.c +++ b/lib/getrandom.c @@ -19,6 +19,7 @@ #include +#include #include #include -- 2.30.2 ================================================ FILE: package/nano/Config.in ================================================ config BR2_PACKAGE_NANO bool "nano" depends on BR2_USE_WCHAR # full version uses fork() select BR2_PACKAGE_NANO_TINY if !BR2_USE_MMU select BR2_PACKAGE_NCURSES help A nice ncurses-based editor. Started out as a clone of pico. Great editor for new users. https://www.nano-editor.org/ if BR2_PACKAGE_NANO config BR2_PACKAGE_NANO_TINY bool "optimize for size" default y help Disable all features for the sake of size. endif comment "nano needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/nano/nano.hash ================================================ # Locally calculated after checking pgp signature # https://www.nano-editor.org/dist/v5/nano-5.9.tar.xz.asc # using key BFD009061E535052AD0DF2150D28D4D2A0ACE884 sha256 757db8cda4bb2873599e47783af463e3b547a627b0cabb30ea7bf71fb4c24937 nano-5.9.tar.xz sha256 fc82ca8b6fdb18d4e3e85cfd8ab58d1bcd3f1b29abe782895abd91d64763f8e7 COPYING ================================================ FILE: package/nano/nano.mk ================================================ ################################################################################ # # nano # ################################################################################ NANO_VERSION_MAJOR = 5 NANO_VERSION = $(NANO_VERSION_MAJOR).9 NANO_SITE = https://www.nano-editor.org/dist/v$(NANO_VERSION_MAJOR) NANO_SOURCE = nano-$(NANO_VERSION).tar.xz NANO_LICENSE = GPL-3.0+ NANO_LICENSE_FILES = COPYING NANO_DEPENDENCIES = ncurses ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) NANO_CONF_ENV += ac_cv_prog_NCURSESW_CONFIG=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS) else NANO_CONF_ENV += ac_cv_prog_NCURSESW_CONFIG=false NANO_MAKE_ENV += CURSES_LIB="-lncurses" endif ifeq ($(BR2_PACKAGE_NANO_TINY),y) NANO_CONF_OPTS += \ --enable-tiny \ --disable-libmagic \ --disable-color \ --disable-nanorc define NANO_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 $(@D)/src/nano $(TARGET_DIR)/usr/bin/nano endef else NANO_CONF_OPTS += --disable-tiny ifeq ($(BR2_PACKAGE_FILE),y) NANO_DEPENDENCIES += file NANO_CONF_OPTS += --enable-libmagic --enable-color --enable-nanorc else NANO_CONF_OPTS += --disable-libmagic --disable-libmagic --disable-color endif # BR2_PACKAGE_FILE endif # BR2_PACKAGE_NANO_TINY $(eval $(autotools-package)) ================================================ FILE: package/nanocom/0001-fix-build-with-gcc-10.patch ================================================ fix build with gcc 10 Define curr_state as extern in nanocom.h to avoid the following build failure with gcc 10 (which defaults to -fno-common): /home/buildroot/autobuild/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: /tmp/ccLQeiek.o:(.bss+0x7c): multiple definition of `curr_state'; /tmp/ccse155z.o:(.bss+0x0): first defined here Fixes: - http://autobuild.buildroot.org/results/4af4710cb9bbb1bc770b9824339dd7dbf8a80b05 Signed-off-by: Fabrice Fontaine diff -Naurp nanocom-1.0.orig/nanocom.c nanocom-1.0/nanocom.c --- nanocom-1.0.orig/nanocom.c 2020-09-04 14:50:15.973320870 +0200 +++ nanocom-1.0/nanocom.c 2020-09-04 14:53:49.429325087 +0200 @@ -20,6 +20,8 @@ Based upon microcom by Anca and Lucian J #include "nanocom.h" +state curr_state; + int crnl_mapping; //0 - no mapping, 1 mapping char device[MAX_DEVICE_NAME]; /* serial device name */ diff -Naurp nanocom-1.0.orig/nanocom.h nanocom-1.0/nanocom.h --- nanocom-1.0.orig/nanocom.h 2020-09-04 14:50:15.973320870 +0200 +++ nanocom-1.0/nanocom.h 2020-09-04 14:51:12.269321982 +0200 @@ -73,7 +73,7 @@ typedef struct { char echo_type; /*r for remote, l for local and n for none*/ } state; -state curr_state; +extern state curr_state; #endif /* NANOCOM_H */ ================================================ FILE: package/nanocom/Config.in ================================================ config BR2_PACKAGE_NANOCOM bool "nanocom" help Nanocom is based upon microcom (http://microcom.port5.com/) but removes the scripting and logging features while introducing support for setting local/remote echo, parity and stop bits. It also follows a more standard command line style using the getopt function. Internally much of the code has been rewritten and reformatted, the menu system in particular is almost entirely different. http://nanocom.sourceforge.net/ ================================================ FILE: package/nanocom/nanocom.hash ================================================ # Locally computed: sha256 5cb26e3e232cfc4a7cb16da432db532b775c5ebdb887ac9d39df5632f2c9a5e5 nanocom.tar.gz sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING ================================================ FILE: package/nanocom/nanocom.mk ================================================ ################################################################################ # # nanocom # ################################################################################ NANOCOM_VERSION = 1.0 NANOCOM_SOURCE = nanocom.tar.gz NANOCOM_SITE = http://downloads.sourceforge.net/project/nanocom/nanocom/v$(NANOCOM_VERSION) NANOCOM_STRIP_COMPONENTS = 0 NANOCOM_LICENSE = GPL-2.0+ NANOCOM_LICENSE_FILES = COPYING define NANOCOM_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS)" -C $(@D) endef define NANOCOM_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/nanocom $(TARGET_DIR)/usr/bin/nanocom endef $(eval $(generic-package)) ================================================ FILE: package/nanomsg/Config.in ================================================ config BR2_PACKAGE_NANOMSG bool "nanomsg" depends on BR2_TOOLCHAIN_HAS_THREADS help nanomsg is a socket library that provides several common communication patterns. It aims to make the networking layer fast, scalable, and easy to use. Implemented in C, it works on a wide range of operating systems with no further dependencies. http://nanomsg.org/ if BR2_PACKAGE_NANOMSG config BR2_PACKAGE_NANOMSG_TOOLS bool "Build nanomsg tools" help Build nanomsg tools endif comment "nanomsg needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/nanomsg/nanomsg.hash ================================================ # Locally computed sha256 218b31ae1534ab897cb5c419973603de9ca1a5f54df2e724ab4a188eb416df5a nanomsg-1.1.5.tar.gz # Hash for license file: sha256 4e51f6a04312ea7c5f4f0e92d91b6415c1eeb09bdaf86a6fd11d93499457c07a COPYING ================================================ FILE: package/nanomsg/nanomsg.mk ================================================ ################################################################################ # # nanomsg # ################################################################################ NANOMSG_VERSION = 1.1.5 NANOMSG_SITE = $(call github,nanomsg,nanomsg,$(NANOMSG_VERSION)) NANOMSG_INSTALL_STAGING = YES NANOMSG_LICENSE = MIT NANOMSG_LICENSE_FILES = COPYING NANOMSG_CONF_OPTS = -DNN_ENABLE_DOC=OFF -DNN_TESTS=OFF ifeq ($(BR2_STATIC_LIBS),y) NANOMSG_CONF_OPTS += -DNN_STATIC_LIB=ON endif ifeq ($(BR2_PACKAGE_NANOMSG_TOOLS),y) NANOMSG_CONF_OPTS += -DNN_TOOLS=ON else NANOMSG_CONF_OPTS += -DNN_TOOLS=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/nasm/nasm.hash ================================================ # Locally calculated sha256 3caf6729c1073bf96629b57cee31eeb54f4f8129b01902c73428836550b30a3f nasm-2.15.05.tar.xz sha256 1563996c52e220e15ef2418e67d39488255aa8c28c89e617074d3afe3ee329e0 LICENSE ================================================ FILE: package/nasm/nasm.mk ================================================ ################################################################################ # # nasm # ################################################################################ NASM_VERSION = 2.15.05 NASM_SOURCE = nasm-$(NASM_VERSION).tar.xz NASM_SITE = https://www.nasm.us/pub/nasm/releasebuilds/$(NASM_VERSION) NASM_LICENSE = BSD-2-Clause NASM_LICENSE_FILES = LICENSE NASM_CPE_ID_VENDOR = nasm NASM_CPE_ID_PRODUCT = netwide_assembler $(eval $(host-autotools-package)) ================================================ FILE: package/nbd/Config.in ================================================ config BR2_PACKAGE_NBD bool "nbd" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU select BR2_PACKAGE_LIBGLIB2 help NBD is a set of utilities to configure network block devices, allowing access to remote block devices over TCP/IP network. http://nbd.sf.net/ if BR2_PACKAGE_NBD config BR2_PACKAGE_NBD_CLIENT bool "nbd client" default y help The client part of NBD. config BR2_PACKAGE_NBD_SERVER bool "nbd server" help The server part of NBD. config BR2_PACKAGE_NBD_TRDUMP bool "nbd trdump" help Utility to dump server logs in human-readable form. endif comment "nbd needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/nbd/nbd.hash ================================================ # From http://sourceforge.net/projects/nbd/files/nbd/3.21/ md5 c51c4c500fe1ed84c3d5d5dd2ca71d23 nbd-3.21.tar.xz sha1 88c3296d43d20d7bda97e0f1bab0243a4f6fa880 nbd-3.21.tar.xz # Locally calculated sha256 e7688af39d91733bbcd2db08062c44fe503d004e51528740139c44aff6a6bef9 nbd-3.21.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/nbd/nbd.mk ================================================ ################################################################################ # # nbd # ################################################################################ NBD_VERSION = 3.21 NBD_SOURCE = nbd-$(NBD_VERSION).tar.xz NBD_SITE = http://downloads.sourceforge.net/project/nbd/nbd/$(NBD_VERSION) NBD_CONF_OPTS = --enable-lfs NBD_DEPENDENCIES = host-pkgconf libglib2 NBD_LICENSE = GPL-2.0 NBD_LICENSE_FILES = COPYING NBD_CPE_ID_VENDOR = network_block_device_project NBD_CPE_ID_PRODUCT = network_block_device ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) # We have linux/falloc.h # but uClibc lacks fallocate(2) which is a glibc-ism NBD_CONF_ENV = ac_cv_header_linux_falloc_h=no endif ifneq ($(BR2_PACKAGE_NBD_CLIENT),y) NBD_TOREMOVE += /usr/sbin/nbd-client endif ifneq ($(BR2_PACKAGE_NBD_SERVER),y) NBD_TOREMOVE += /usr/bin/nbd-server endif ifneq ($(BR2_PACKAGE_NBD_TRDUMP),y) NBD_TOREMOVE += /usr/bin/nbd-trdump endif define NBD_CLEANUP_AFTER_INSTALL rm -f $(addprefix $(TARGET_DIR), $(NBD_TOREMOVE)) endef NBD_POST_INSTALL_TARGET_HOOKS += NBD_CLEANUP_AFTER_INSTALL $(eval $(autotools-package)) ================================================ FILE: package/ncdu/Config.in ================================================ 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 http://dev.yorhel.nl/ncdu ================================================ FILE: package/ncdu/ncdu.hash ================================================ # From https://dev.yorhel.nl/ncdu sha256 2b915752a183fae014b5e5b1f0a135b4b408de7488c716e325217c2513980fd4 ncdu-1.16.tar.gz # computed locally sha256 e9ed7095eee84ad6804450495738277b539da0c0b2006f50faf8e6e67a0a15aa COPYING ================================================ FILE: package/ncdu/ncdu.mk ================================================ ################################################################################ # # ncdu # ################################################################################ NCDU_VERSION = 1.16 NCDU_SITE = http://dev.yorhel.nl/download NCDU_DEPENDENCIES = ncurses NCDU_LICENSE = MIT NCDU_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/ncftp/0001-fix-gcc-10.patch ================================================ Fix build with gcc 10 Add missing extern to gBm to fix the following build failure with -fno-common which is enabled by default with gcc 10: /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: bookmark.o:(.bss+0x10): multiple definition of `gBm'; gpshare.o:(.bss+0x24): first defined here Fixes: - http://autobuild.buildroot.org/results/78822bc0e0039e8f8949011a256cac022863276f Signed-off-by: Fabrice Fontaine diff -Nura ncftp-3.2.6-orig/sh_util/gpshare.c ncftp-3.2.6/sh_util/gpshare.c --- ncftp-3.2.6-orig/sh_util/gpshare.c 2020-08-21 10:46:34.173816750 +0200 +++ ncftp-3.2.6/sh_util/gpshare.c 2020-08-21 10:52:25.407976319 +0200 @@ -28,7 +28,7 @@ static int gIsAtty1 = 1, gIsAtty2 = 1; extern int gLoadedBm, gBookmarkMatchMode; -Bookmark gBm; +extern Bookmark gBm; double FileSize(double size, const char **uStr0, double *uMult0) ================================================ FILE: package/ncftp/Config.in ================================================ config BR2_PACKAGE_NCFTP bool "ncftp" # fork() depends on BR2_USE_MMU help NcFTP Client (also known as just NcFTP) is a set of FREE application programs implementing the File Transfer Protocol (FTP). http://www.ncftp.com/ncftp/ if BR2_PACKAGE_NCFTP config BR2_PACKAGE_NCFTP_GET bool "ncftpget" default y config BR2_PACKAGE_NCFTP_PUT bool "ncftpput" default y config BR2_PACKAGE_NCFTP_LS bool "ncftpls" default y config BR2_PACKAGE_NCFTP_BATCH bool "ncftpbatch/ncftpspooler" default y config BR2_PACKAGE_NCFTP_BOOKMARKS bool "ncftpbookmarks" select BR2_PACKAGE_NCURSES endif ================================================ FILE: package/ncftp/ncftp.hash ================================================ # Locally computed: sha256 129e5954850290da98af012559e6743de193de0012e972ff939df9b604f81c23 ncftp-3.2.6-src.tar.gz sha256 4fe2f063d25d79c49712a272ebb68e050c703eed9c66c80108427edfe3285580 doc/LICENSE.txt ================================================ FILE: package/ncftp/ncftp.mk ================================================ ################################################################################ # # ncftp # ################################################################################ NCFTP_VERSION = 3.2.6 # use .gz as upstream .xz tarball has changed after the hash was added for # 2017.02. Can be changed back to .xz when version is bumped NCFTP_SOURCE = ncftp-$(NCFTP_VERSION)-src.tar.gz NCFTP_SITE = ftp://ftp.ncftp.com/ncftp NCFTP_TARGET_BINS = ncftp NCFTP_LICENSE = Clarified Artistic License NCFTP_LICENSE_FILES = doc/LICENSE.txt NCFTP_DEPENDENCIES = host-autoconf NCFTP_CONF_OPTS = --disable-ccdv # The bundled configure script is generated by autoconf 2.13 and doesn't # detect cross-compilation correctly. Therefore, we have to regenerate it. # We need to pass -I because of the non-standard m4 directory name, and # none of the other autotools are used, so the below is the easiest. define NCFTP_RUN_AUTOCONF (cd $(@D); $(AUTOCONF) -I$(@D)/autoconf_local/) endef NCFTP_PRE_CONFIGURE_HOOKS += NCFTP_RUN_AUTOCONF ifeq ($(BR2_PACKAGE_NCFTP_GET),y) NCFTP_TARGET_BINS += ncftpget endif ifeq ($(BR2_PACKAGE_NCFTP_PUT),y) NCFTP_TARGET_BINS += ncftpput endif ifeq ($(BR2_PACKAGE_NCFTP_LS),y) NCFTP_TARGET_BINS += ncftpls endif ifeq ($(BR2_PACKAGE_NCFTP_BATCH),y) NCFTP_TARGET_BINS += ncftpbatch NCFTP_INSTALL_NCFTP_BATCH = \ ln -sf /usr/bin/ncftpbatch $(TARGET_DIR)/usr/bin/ncftpspooler endif ifeq ($(BR2_PACKAGE_NCFTP_BOOKMARKS),y) NCFTP_TARGET_BINS += ncftpbookmarks NCFTP_DEPENDENCIES += ncurses endif define NCFTP_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 $(addprefix $(NCFTP_DIR)/bin/, $(NCFTP_TARGET_BINS)) $(TARGET_DIR)/usr/bin $(NCFTP_INSTALL_NCFTP_BATCH) endef $(eval $(autotools-package)) ================================================ FILE: package/ncmpc/0001-meson.build-add-atomic-dependency-for-sparc.patch ================================================ From d2bd33ec18c146b27fb5aff7dd0089faa195ef9b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 11 Feb 2019 21:42:01 +0100 Subject: [PATCH] meson.build: add atomic dependency for sparc Linking with libatomic is needed on sparc otherwise build fails on: ncmpc@exe/src_Main.cxx.o: In function `std::__atomic_base::operator++()': /home/buildroot/autobuild/instance-1/output/host/opt/ext-toolchain/sparc-buildroot-linux-uclibc/include/c++/6.4.0/bits/atomic_base.h:296: undefined reference to `__atomic_fetch_add_4' Fixes: - http://autobuild.buildroot.org/results/7ac1a07e4f72633d3ec92b79dc5d8c062490abdc Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/MusicPlayerDaemon/ncmpc/pull/45] --- meson.build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meson.build b/meson.build index 2e6defc..b393e39 100644 --- a/meson.build +++ b/meson.build @@ -174,6 +174,9 @@ else pcre_dep = declare_dependency() endif +# Needed on sparc +atomic_dep = cc.find_library('atomic', required: false) + inc = include_directories( 'src', @@ -352,6 +355,7 @@ ncmpc = executable('ncmpc', sources, include_directories: inc, dependencies: [ + atomic_dep, thread_dep, boost_dep, pcre_dep, -- 2.14.1 ================================================ FILE: package/ncmpc/0002-meson.build-link-with-lintl-if-needed.patch ================================================ From 21ad6bf2bcb0745c25a28637449a72eee883a8e2 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 21 Apr 2019 19:19:10 +0200 Subject: [PATCH] meson.build: link with lintl if needed Fixes: - http://autobuild.buildroot.org/results/d53978fb30d77cb4d10921bf721eff3d066567ce Signed-off-by: Fabrice Fontaine [Upstream status: not sent as upstream already rejected the first patch on atomic: https://github.com/MusicPlayerDaemon/ncmpc/pull/45] --- meson.build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meson.build b/meson.build index 2e6defc..28e9d29 100644 --- a/meson.build +++ b/meson.build @@ -42,6 +42,7 @@ else error('libintl.h not found') endif conf.set('ENABLE_NLS', enable_nls) +intl_dep = cc.find_library('intl', required: false) if enable_nls conf.set_quoted('GETTEXT_PACKAGE', meson.project_name()) subdir('po') @@ -356,6 +357,7 @@ ncmpc = executable('ncmpc', boost_dep, pcre_dep, curses_dep, + intl_dep, lirc_dep, libmpdclient_dep, ], -- 2.20.1 ================================================ FILE: package/ncmpc/Config.in ================================================ config BR2_PACKAGE_NCMPC bool "ncmpc" depends on BR2_USE_MMU # fork() depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # boost depends on BR2_TOOLCHAIN_HAS_THREADS # boost depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_LIBMPDCLIENT select BR2_PACKAGE_NCURSES help ncmpc is a fully featured MPD client, which runs in a terminal (using ncurses). Its goal is to provide a keyboard oriented and consistent interface to MPD, without wasting resources. http://www.musicpd.org/clients/ncmpc/ comment "ncmpc needs a toolchain w/ C++, wchar, threads, gcc >= 7" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_7 ================================================ FILE: package/ncmpc/ncmpc.hash ================================================ # Locally calculated after checking pgp signature sha256 17ff446447e002f2ed4342b7324263a830df7d76bcf177dce928f7d3a6f1f785 ncmpc-0.45.tar.xz # Hash for license file: sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/ncmpc/ncmpc.mk ================================================ ################################################################################ # # ncmpc # ################################################################################ NCMPC_VERSION_MAJOR = 0 NCMPC_VERSION = $(NCMPC_VERSION_MAJOR).45 NCMPC_SOURCE = ncmpc-$(NCMPC_VERSION).tar.xz NCMPC_SITE = http://www.musicpd.org/download/ncmpc/$(NCMPC_VERSION_MAJOR) NCMPC_DEPENDENCIES = \ boost \ host-pkgconf \ libmpdclient \ ncurses \ $(TARGET_NLS_DEPENDENCIES) NCMPC_LICENSE = GPL-2.0+ NCMPC_LICENSE_FILES = COPYING NCMPC_CPE_ID_VENDOR = ncmpc_project NCMPC_CONF_OPTS = \ -Dcurses=ncurses \ -Ddocumentation=disabled \ $(if $(BR2_SYSTEM_ENABLE_NLS),-Dnls=enabled,-Dnls=disabled) ifeq ($(BR2_PACKAGE_LIRC_TOOLS),y) NCMPC_DEPENDENCIES += lirc-tools NCMPC_CONF_OPTS += -Dlirc=enabled else NCMPC_CONF_OPTS += -Dlirc=disabled endif ifeq ($(BR2_PACKAGE_PCRE),y) NCMPC_DEPENDENCIES += pcre NCMPC_CONF_OPTS += -Dregex=enabled else NCMPC_CONF_OPTS += -Dregex=disabled endif $(eval $(meson-package)) ================================================ FILE: package/ncurses/0001-gcc-5.x-MKlib_gen.patch ================================================ Fix gcc 5.x build failure Extracted from upstream commit http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commit;h=97bb4678dc03e753290b39bbff30ba2825df9517. + modify MKlib_gen.sh to work around change in development version of gcc introduced here: https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00236.html (reports by Marcus Shawcroft, Maohui Lei). Original author: Thomas E. Dickey Signed-off-by: Mikhail Peselnik [Adam Duskett: Refresh for 6.1] Signed-off-by: Adam Duskett --- a/ncurses/base/MKlib_gen.sh 2015-08-06 20:48:24.000000000 -0400 +++ b/ncurses/base/MKlib_gen.sh 2017-02-07 10:09:01.293962392 -0500 @@ -505,11 +505,22 @@ -e 's/gen_$//' \ -e 's/ / /g' >>$TMP +cat >$ED1 < $ED2 +cat $ED2 >$TMP + $preprocessor $TMP 2>/dev/null \ -| sed \ - -e 's/ / /g' \ - -e 's/^ //' \ - -e 's/_Bool/NCURSES_BOOL/g' \ +| sed -f $ED1 \ | $AWK -f $AW2 \ | sed -f $ED3 \ | sed \ ================================================ FILE: package/ncurses/Config.in ================================================ config BR2_PACKAGE_NCURSES bool "ncurses" help The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. This package installs only a few vital termcap entries http://www.gnu.org/software/ncurses/ if BR2_PACKAGE_NCURSES config BR2_PACKAGE_NCURSES_WCHAR bool "enable wide char support" depends on BR2_USE_WCHAR help Enable wide char & UTF-8 support in ncurses libraries config BR2_PACKAGE_NCURSES_TARGET_PROGS bool "ncurses programs" help Include ncurses programs in target (clear, reset, tput, ...) config BR2_PACKAGE_NCURSES_ADDITIONAL_TERMINFO string "additional terminfo files to install" help Whitespace separated list of terminfo files to install on the target. A small number of vital terminfo files are always installed. This list is in addition to the vital ones. The terminfo filenames should have the single letter path prefix. e.g. t/tmux. endif ================================================ FILE: package/ncurses/ncurses.hash ================================================ # Locally calculated after checking pgp signature sha256 aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17 ncurses-6.1.tar.gz sha256 cf9038be62c49a6b5fe93f33b32f983649b2f4c4c31cc99bd18e1e5871c31443 ncurses-6.1-20190609-patch.sh.bz2 sha256 4b0a4c6abce4543ac4fd4c3389b14825e73b7cddcbb01a687c5dd837f21a3b04 ncurses-6.1-20190615.patch.gz sha256 b2302625ec2fa6dce79622670452e56ff6130dc02e655b52177264cfeff84c51 ncurses-6.1-20190623.patch.gz sha256 48b004a3e5409a02a5e751f996fe487f5ce45be1fff38572f7cc8167b22179bf ncurses-6.1-20190630.patch.gz sha256 faf849eed92161ac09782badf84a19ad6beae472e87d460905865e08a6ed46e4 ncurses-6.1-20190706.patch.gz sha256 62d4954bf818659105aa1c21cc27cb2c133e02bdc7d3f6aa548caae2d1db7440 ncurses-6.1-20190713.patch.gz sha256 0c1a54bd5de9c890d1fabcfa92bf5bf46f7eccc54a48051367e82bdb29636450 ncurses-6.1-20190720.patch.gz sha256 0bbd08d3bd12686d4427c242d6a8fde2e299698039cd597303af713c5f538f17 ncurses-6.1-20190727.patch.gz sha256 40e5f350a921dbd03e3d9ff93bc477ec4f1f65878f307c534882fba3b0b40507 ncurses-6.1-20190728.patch.gz sha256 9648104311e209d17db9556d6efc898d5c80ed5fc80e8aa3cd08769544c839b8 ncurses-6.1-20190803.patch.gz sha256 fa1f583575717b2538d3a4ea59a67bc17dd07ed46cb99fe2beaf23d1b006e9df ncurses-6.1-20190810.patch.gz sha256 5e9ae4f1b3e2e2d567a01a8fb2c9b7f3804cae97f28cd483d239afee781b8c2b ncurses-6.1-20190817.patch.gz sha256 7592e5e610b3e9eeca78897da2330b7518f00e0a59d20df873c88a9b26bc4da9 ncurses-6.1-20190824.patch.gz sha256 1a9800a5ccc4f2cb572b63cdc8f1431642e014a58a30151af73977614d5c4aac ncurses-6.1-20190831.patch.gz sha256 87685a6b90225efcd03375eb11b124fd9e95ee4b0f36bcbc82e56a70cd466b33 ncurses-6.1-20190907.patch.gz sha256 4ddebb6e0e5a67028eb3aca2352c9bd48cf122a512719f93e449e00a3c6634f8 ncurses-6.1-20190914.patch.gz sha256 4c725fa729d754f4e75af78fda4cf67d60e71c1625b5f4f49b7930c95bb8dd36 ncurses-6.1-20190921.patch.gz sha256 a830b879b57906b1e480e4785b32cec05081b7849c06c4b116459c4d343ba21b ncurses-6.1-20190928.patch.gz sha256 d5eae35d920409613f565825e1e215fed89828040aab541328455da38e1a9b7c ncurses-6.1-20191005.patch.gz sha256 136dbd07254810728c1fcb7614b566e7c3cb6af8c0783019bbb6b4b5e3c1e2c6 ncurses-6.1-20191012.patch.gz sha256 1d5125b20792e9f534432c3ef2aa68984c713416addeb2c4364c5ae897a3b8b7 ncurses-6.1-20191015.patch.gz sha256 a6475c05312ba0b12b72b83529c1d283a14c4470414c505fa45451e35f3ffcf5 ncurses-6.1-20191019.patch.gz sha256 f6c7469f33065faf1d04ac9e9bea1a88142b00b82e3db3674cca9ec24920b4af ncurses-6.1-20191026.patch.gz sha256 0d0443937b9c04663de25b405bb95e658e7c87e1dd7a726b3813aa7f9b55f69a ncurses-6.1-20191102.patch.gz sha256 f3b75787918d2f02a2005877e81fdc054c45b8249b43aabb531e3b817bcf7576 ncurses-6.1-20191109.patch.gz sha256 801d138b55986719aea7f42dc8c0cb618fa9a6edf92d1789a6ba5d61678f7761 ncurses-6.1-20191116.patch.gz sha256 45f447cf2c7a24295c7b9210473e943a238c57ca80581d121c9a1a3aa05332a6 ncurses-6.1-20191123.patch.gz sha256 ea758e3b0162348c4d5d6dac56f95809da3b7d0589205661a13430eb93f72f75 ncurses-6.1-20191130.patch.gz sha256 16b5a588c56a53c468d2359b21d5d8a007c4ef7696de12c964a1b661ed185f72 ncurses-6.1-20191207.patch.gz sha256 8725a2dc8f1cfdab41cb5fe56f930e070f8cdc81a77f303ef2658f65cd0b8edd ncurses-6.1-20191214.patch.gz sha256 7e2a06fb0af6c84269d23ffe06c689bf1a8a57af39369690ee0698778d4b6cda ncurses-6.1-20191221.patch.gz sha256 d052bcdb38f8b45a00c0a3190dec7ac1e72d5682f3a16d8accda239308aad62f ncurses-6.1-20191228.patch.gz sha256 7b6253bae438154a88c7f3e301b872ed7ad71f943c873f4e6c82d8d36a5df72b ncurses-6.1-20200104.patch.gz sha256 e438f28025c7d97c7f8fabf40eeab68bbf8ca871a0ba349e3fdec9165efe85cb ncurses-6.1-20200111.patch.gz sha256 06d002c33f727c4a36a0b502c226ea3c3c5b80770703d2f783fffa6a0db04d92 ncurses-6.1-20200118.patch.gz # Locally computed sha256 4d1fde61868c73776a539366dccf5d5a4857e7fd7299efb1f02e07c2afe9ea87 COPYING ================================================ FILE: package/ncurses/ncurses.mk ================================================ ################################################################################ # # ncurses # ################################################################################ NCURSES_VERSION = 6.1 NCURSES_SITE = $(BR2_GNU_MIRROR)/ncurses NCURSES_INSTALL_STAGING = YES NCURSES_DEPENDENCIES = host-ncurses NCURSES_LICENSE = MIT with advertising clause NCURSES_LICENSE_FILES = COPYING NCURSES_CPE_ID_VENDOR = gnu # Commit 4b21273d71d09 added upstream (security) patches up to 20200118 NCURSES_IGNORE_CVES += CVE-2018-10754 NCURSES_IGNORE_CVES += CVE-2018-19211 NCURSES_IGNORE_CVES += CVE-2018-19217 NCURSES_IGNORE_CVES += CVE-2019-17594 NCURSES_IGNORE_CVES += CVE-2019-17595 NCURSES_CONFIG_SCRIPTS = ncurses$(NCURSES_LIB_SUFFIX)6-config NCURSES_PATCH = \ $(addprefix https://invisible-mirror.net/archives/ncurses/$(NCURSES_VERSION)/, \ ncurses-6.1-20190609-patch.sh.bz2 \ ncurses-6.1-20190615.patch.gz \ ncurses-6.1-20190623.patch.gz \ ncurses-6.1-20190630.patch.gz \ ncurses-6.1-20190706.patch.gz \ ncurses-6.1-20190713.patch.gz \ ncurses-6.1-20190720.patch.gz \ ncurses-6.1-20190727.patch.gz \ ncurses-6.1-20190728.patch.gz \ ncurses-6.1-20190803.patch.gz \ ncurses-6.1-20190810.patch.gz \ ncurses-6.1-20190817.patch.gz \ ncurses-6.1-20190824.patch.gz \ ncurses-6.1-20190831.patch.gz \ ncurses-6.1-20190907.patch.gz \ ncurses-6.1-20190914.patch.gz \ ncurses-6.1-20190921.patch.gz \ ncurses-6.1-20190928.patch.gz \ ncurses-6.1-20191005.patch.gz \ ncurses-6.1-20191012.patch.gz \ ncurses-6.1-20191015.patch.gz \ ncurses-6.1-20191019.patch.gz \ ncurses-6.1-20191026.patch.gz \ ncurses-6.1-20191102.patch.gz \ ncurses-6.1-20191109.patch.gz \ ncurses-6.1-20191116.patch.gz \ ncurses-6.1-20191123.patch.gz \ ncurses-6.1-20191130.patch.gz \ ncurses-6.1-20191207.patch.gz \ ncurses-6.1-20191214.patch.gz \ ncurses-6.1-20191221.patch.gz \ ncurses-6.1-20191228.patch.gz \ ncurses-6.1-20200104.patch.gz \ ncurses-6.1-20200111.patch.gz \ ncurses-6.1-20200118.patch.gz \ ) # ncurses-6.1-20191012.patch.gz NCURSES_IGNORE_CVES += CVE-2019-17594 CVE-2019-17595 NCURSES_CONF_OPTS = \ --without-cxx \ --without-cxx-binding \ --without-ada \ --without-tests \ --disable-big-core \ --without-profile \ --disable-rpath \ --disable-rpath-hack \ --enable-echo \ --enable-const \ --enable-overwrite \ --enable-pc-files \ --disable-stripping \ --with-pkg-config-libdir="/usr/lib/pkgconfig" \ $(if $(BR2_PACKAGE_NCURSES_TARGET_PROGS),,--without-progs) \ --without-manpages ifeq ($(BR2_STATIC_LIBS),y) NCURSES_CONF_OPTS += --without-shared --with-normal else ifeq ($(BR2_SHARED_LIBS),y) NCURSES_CONF_OPTS += --with-shared --without-normal else ifeq ($(BR2_SHARED_STATIC_LIBS),y) NCURSES_CONF_OPTS += --with-shared --with-normal endif # configure can't find the soname for libgpm when cross compiling ifeq ($(BR2_PACKAGE_GPM),y) NCURSES_CONF_OPTS += --with-gpm=libgpm.so.2 NCURSES_DEPENDENCIES += gpm else NCURSES_CONF_OPTS += --without-gpm endif NCURSES_TERMINFO_FILES = \ a/ansi \ d/dumb \ l/linux \ p/putty \ p/putty-256color \ p/putty-vt100 \ s/screen \ s/screen-256color \ v/vt100 \ v/vt100-putty \ v/vt102 \ v/vt200 \ v/vt220 \ x/xterm \ x/xterm+256color \ x/xterm-256color \ x/xterm-color \ x/xterm-xfree86 \ $(call qstrip,$(BR2_PACKAGE_NCURSES_ADDITIONAL_TERMINFO)) ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) NCURSES_CONF_OPTS += --enable-widec NCURSES_LIB_SUFFIX = w NCURSES_LIBS = ncurses menu panel form define NCURSES_LINK_LIBS_STATIC $(foreach lib,$(NCURSES_LIBS:%=lib%), \ ln -sf $(lib)$(NCURSES_LIB_SUFFIX).a $(STAGING_DIR)/usr/lib/$(lib).a ) ln -sf libncurses$(NCURSES_LIB_SUFFIX).a \ $(STAGING_DIR)/usr/lib/libcurses.a endef define NCURSES_LINK_LIBS_SHARED $(foreach lib,$(NCURSES_LIBS:%=lib%), \ ln -sf $(lib)$(NCURSES_LIB_SUFFIX).so $(STAGING_DIR)/usr/lib/$(lib).so ) ln -sf libncurses$(NCURSES_LIB_SUFFIX).so \ $(STAGING_DIR)/usr/lib/libcurses.so endef define NCURSES_LINK_PC $(foreach pc,$(NCURSES_LIBS), \ ln -sf $(pc)$(NCURSES_LIB_SUFFIX).pc \ $(STAGING_DIR)/usr/lib/pkgconfig/$(pc).pc ) endef NCURSES_LINK_STAGING_LIBS = \ $(if $(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),$(call NCURSES_LINK_LIBS_STATIC);) \ $(if $(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),$(call NCURSES_LINK_LIBS_SHARED)) NCURSES_LINK_STAGING_PC = $(call NCURSES_LINK_PC) NCURSES_CONF_OPTS += --enable-ext-colors NCURSES_POST_INSTALL_STAGING_HOOKS += NCURSES_LINK_STAGING_LIBS NCURSES_POST_INSTALL_STAGING_HOOKS += NCURSES_LINK_STAGING_PC endif # BR2_PACKAGE_NCURSES_WCHAR ifneq ($(BR2_ENABLE_DEBUG),y) NCURSES_CONF_OPTS += --without-debug endif # ncurses breaks with parallel build, but takes quite a while to # build single threaded. Work around it similar to how Gentoo does define NCURSES_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) DESTDIR=$(STAGING_DIR) sources rm -rf $(@D)/misc/pc-files $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) endef ifeq ($(BR2_PACKAGE_NCURSES_TARGET_PROGS),y) define NCURSES_TARGET_SYMLINK_RESET ln -sf tset $(TARGET_DIR)/usr/bin/reset endef NCURSES_POST_INSTALL_TARGET_HOOKS += NCURSES_TARGET_SYMLINK_RESET endif define NCURSES_TARGET_CLEANUP_TERMINFO $(RM) -rf $(TARGET_DIR)/usr/share/terminfo $(TARGET_DIR)/usr/share/tabset $(foreach t,$(NCURSES_TERMINFO_FILES), \ $(INSTALL) -D -m 0644 $(STAGING_DIR)/usr/share/terminfo/$(t) \ $(TARGET_DIR)/usr/share/terminfo/$(t) ) endef NCURSES_POST_INSTALL_TARGET_HOOKS += NCURSES_TARGET_CLEANUP_TERMINFO # # On systems with an older version of tic, the installation of ncurses hangs # forever. To resolve the problem, build a static version of tic on host # ourselves, and use that during installation. # define HOST_NCURSES_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) sources $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/progs tic endef HOST_NCURSES_CONF_ENV = \ ac_cv_path_LDCONFIG="" HOST_NCURSES_CONF_OPTS = \ --with-shared \ --without-gpm \ --without-manpages \ --without-cxx \ --without-cxx-binding \ --without-ada \ --with-default-terminfo-dir=/usr/share/terminfo \ --disable-db-install \ --without-normal $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/ndisc6/Config.in ================================================ config BR2_PACKAGE_NDISC6 bool "ndisc6 tools" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # c11 help NDisc6 is a small collection of useful tools for IPv6 networking http://www.remlab.net/ndisc6/ if BR2_PACKAGE_NDISC6 config BR2_PACKAGE_NDISC6_NAME2ADDR bool "name2addr" help name2addr perform DNS lookups from scripts. config BR2_PACKAGE_NDISC6_NDISC6 bool "ndisc6" help ndisc6 performs ICMPv6 Neighbor Discovery in userland. config BR2_PACKAGE_NDISC6_RDISC6 bool "rdisc6" help rdisc6 performs ICMPv6 Router Discovery in userland. config BR2_PACKAGE_NDISC6_RDNSSD bool "rdnssd" help IPv6 Recursive DNS Server discovery Daemon. config BR2_PACKAGE_NDISC6_RLTRACEROUTE6 bool "rltraceroute6" help rltraceroute6 is an IPv6 traceroute implementation. config BR2_PACKAGE_NDISC6_TCPTRACEROUTE6 bool "tcptraceroute6" help tcptraceroute6 is an TCP/IPv6 traceroute implementation. config BR2_PACKAGE_NDISC6_TCPSPRAY bool "tcpspray" help TCP/IP bandwidth measurement tool (Discard and Echo client). endif comment "ndisc6 needs a toolchain w/ gcc >= 4.7" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/ndisc6/ndisc6.hash ================================================ # Locally calculated after checking pgp signature sha256 36932f9fc47e2844abcda7550fa1343b3af4b4208dfb61e0c9d9224aad5df351 ndisc6-1.0.5.tar.bz2 # Locally computed sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/ndisc6/ndisc6.mk ================================================ ################################################################################ # # ndisc6 # ################################################################################ NDISC6_VERSION = 1.0.5 NDISC6_SOURCE = ndisc6-$(NDISC6_VERSION).tar.bz2 NDISC6_SITE = http://www.remlab.net/files/ndisc6 NDISC6_CONF_ENV = CC="$(TARGET_CC) -std=c11" LIBS=$(TARGET_NLS_LIBS) NDISC6_CONF_OPTS = --disable-rpath --disable-suid-install NDISC6_LICENSE = GPL-2.0 or GPL-3.0 NDISC6_LICENSE_FILES = COPYING NDISC6_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) NDISC6_BIN_ += dnssort # perl script NDISC6_BIN_$(BR2_PACKAGE_NDISC6_NAME2ADDR) += name2addr addr2name NDISC6_BIN_$(BR2_PACKAGE_NDISC6_TCPSPRAY) += tcpspray tcpspray6 NDISC6_SBIN_$(BR2_PACKAGE_NDISC6_NDISC6) += ndisc6 NDISC6_SBIN_$(BR2_PACKAGE_NDISC6_RDISC6) += rdisc6 NDISC6_SBIN_$(BR2_PACKAGE_NDISC6_RDNSSD) += rdnssd NDISC6_SBIN_$(BR2_PACKAGE_NDISC6_RLTRACEROUTE6) += rltraceroute6 tracert6 NDISC6_SBIN_$(BR2_PACKAGE_NDISC6_TCPTRACEROUTE6) += tcptraceroute6 define NDISC6_REMOVE_UNNEEDED rm -rf $(addprefix $(TARGET_DIR)/usr/bin/,$(NDISC6_BIN_)) \ $(addprefix $(TARGET_DIR)/usr/sbin/,$(NDISC6_SBIN_)) $(if $(BR2_PACKAGE_NDISC6_RDNSSD),,\ rm -rf $(TARGET_DIR)/etc/rdnssd $(TARGET_DIR)/var/run/rdnssd) endef NDISC6_POST_INSTALL_TARGET_HOOKS += NDISC6_REMOVE_UNNEEDED $(eval $(autotools-package)) ================================================ FILE: package/ne10/0001-CMakeLists-don-t-hard-code-thumb-code-generation.patch ================================================ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Cody Guldner Date: Tue, 14 Apr 2020 09:12:01 -0500 Subject: [PATCH] CMakeLists: don't hard code thumb code generation Migrating to version 1.2.1 Signed-off-by: Baruch Siach Signed-off-by: Clayton Shotwell Signed-off-by: Cody Guldner --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fc2a5e3..25da215 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -135,7 +135,7 @@ if(ANDROID_PLATFORM) ${CMAKE_C_FLAGS}") elseif(GNULINUX_PLATFORM) if(${NE10_TARGET_ARCH} STREQUAL "armv7") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -mthumb -march=armv7-a -mfpu=vfp3 -funsafe-math-optimizations") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -march=armv7-a -mfpu=vfp3 -funsafe-math-optimizations") set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -mthumb -march=armv7-a -mfpu=neon") # Turn on asm optimization for Linux on ARM v7. set(NE10_ASM_OPTIMIZATION on) -- 2.23.0 ================================================ FILE: package/ne10/Config.in ================================================ config BR2_PACKAGE_NE10_ARCH_SUPPORTS bool default y if BR2_aarch64 default y if BR2_arm && (BR2_ARM_FPU_NEON || BR2_ARM_FPU_NEON_VFPV4) config BR2_PACKAGE_NE10 bool "ne10" depends on BR2_PACKAGE_NE10_ARCH_SUPPORTS help The Ne10 project has been set up to provide a set of common, useful functions which have been heavily optimized for the ARM and AArch64 Architecture and provide consistent well tested behavior that can be easily incorporated into applications. C interfaces to the functions are provided for both assembler and NEON implementations. http://projectne10.github.io/Ne10/ ================================================ FILE: package/ne10/ne10.hash ================================================ # Locally calculated sha256 dd1a96610c0692cc80154ae123edd5d25e6e0a3f81d0c16a96425f3ef57b9929 ne10-1.2.1.tar.gz sha256 eb48041c8e0ad556cf72f2a6eff89c893aa5702bba4e163ca7798cce07e6c55e doc/LICENSE ================================================ FILE: package/ne10/ne10.mk ================================================ ################################################################################ # # ne10 # ################################################################################ NE10_VERSION = 1.2.1 NE10_SITE = $(call github,projectNe10,Ne10,v$(NE10_VERSION)) NE10_LICENSE = BSD-3-Clause or Apache-2.0 NE10_LICENSE_FILES = doc/LICENSE NE10_INSTALL_STAGING = YES NE10_CONF_OPTS = \ -DGNULINUX_PLATFORM=ON \ -DNE10_BUILD_EXAMPLES=OFF \ -DNE10_BUILD_UNIT_TEST=OFF \ -DNE10_LINUX_TARGET_ARCH=$(if $(BR2_aarch64),aarch64,armv7) ifeq ($(BR2_STATIC_LIBS),) NE10_CONF_OPTS += \ -DNE10_BUILD_SHARED=ON endif # The package does not have any install target, so have to provide # INSTALL_STAGING_CMDS and INSTALL_TARGET_CMDS. ifeq ($(BR2_STATIC_LIBS),) define NE10_INSTALL_STAGING_SHARED_LIB cp -dpf $(@D)/modules/libNE10*.so* $(STAGING_DIR)/usr/lib/ endef endif define NE10_INSTALL_STAGING_CMDS cp -dpf $(@D)/inc/NE10*h $(STAGING_DIR)/usr/include/ cp -dpf $(@D)/modules/libNE10.a $(STAGING_DIR)/usr/lib/ $(NE10_INSTALL_STAGING_SHARED_LIB) endef define NE10_INSTALL_TARGET_CMDS cp -dpf $(@D)/modules/libNE10*.so* $(TARGET_DIR)/usr/lib/ endef $(eval $(cmake-package)) ================================================ FILE: package/neard/Config.in ================================================ config BR2_PACKAGE_NEARD bool "neard" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libnl, dbus, libglib2 depends on BR2_USE_MMU # dbus, libglib2 depends on !BR2_STATIC_LIBS # dlopen depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_DBUS select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBNL help Near Field Communication (NFC) manager. This userspace daemon is a part of the NFC stack provided by the Linux NFC project. https://git.kernel.org/pub/scm/network/nfc/neard.git if BR2_PACKAGE_NEARD config BR2_PACKAGE_NEARD_TOOLS bool "neard tools" help Build and install neard tools. endif comment "neard needs a toolchain w/ wchar, threads, 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 ================================================ FILE: package/neard/S53neard ================================================ #!/bin/sh # # Starts neard # NAME=neard case "$1" in start) printf "Starting $NAME: " start-stop-daemon -S -q -p /var/run/${NAME}.pid -x /usr/libexec/nfc/neard -- -d '*' echo "OK" ;; stop) printf "Stopping $NAME: " start-stop-daemon -K -q -p /var/run/${NAME}.pid echo "OK" ;; restart|reload) $0 stop sleep 1 $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/neard/neard.hash ================================================ # From https://www.kernel.org/pub/linux/network/nfc/sha256sums.asc sha256 eae3b11c541a988ec11ca94b7deab01080cd5b58cfef3ced6ceac9b6e6e65b36 neard-0.16.tar.xz # Locally computed sha256 b499eddebda05a8859e32b820a64577d91f1de2b52efa2a1575a2cb4000bc259 COPYING ================================================ FILE: package/neard/neard.mk ================================================ ################################################################################ # # neard # ################################################################################ NEARD_VERSION = 0.16 NEARD_SOURCE = neard-$(NEARD_VERSION).tar.xz NEARD_SITE = $(BR2_KERNEL_MIRROR)/linux/network/nfc NEARD_LICENSE = GPL-2.0 NEARD_LICENSE_FILES = COPYING NEARD_DEPENDENCIES = host-pkgconf dbus libglib2 libnl NEARD_CONF_OPTS = --disable-traces ifeq ($(BR2_PACKAGE_NEARD_TOOLS),y) NEARD_CONF_OPTS += --enable-tools endif ifeq ($(BR2_INIT_SYSTEMD),y) NEARD_CONF_OPTS += --enable-systemd NEARD_DEPENDENCIES += systemd else NEARD_CONF_OPTS += --disable-systemd endif define NEARD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/neard/S53neard \ $(TARGET_DIR)/etc/init.d/S53neard endef $(eval $(autotools-package)) ================================================ FILE: package/neardal/0001-lib-neardal.h-fix-build-with-gcc-10.patch ================================================ From 08467411d7dfc2a2b7ede62e5fdc640748ea1db2 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 9 Sep 2020 19:14:52 +0200 Subject: [PATCH] lib/neardal.h: fix build with gcc 10 Define neardal_output_cb as extern to avoid the following build failure with gcc 10 (which defaults to -fno-common): /srv/storage/autobuild/run/instance-2/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: ./.libs/neardal_adapter.o:(.bss+0x0): multiple definition of `neardal_output_cb'; ./.libs/neardal.o:(.bss+0x68): first defined here Fixes: - http://autobuild.buildroot.org/results/7efb100c899b67ffd570f73c202442f95ca5397e Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/connectivity/neardal/pull/10] --- lib/neardal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/neardal.h b/lib/neardal.h index d1cd18b..3e83595 100644 --- a/lib/neardal.h +++ b/lib/neardal.h @@ -638,7 +638,7 @@ neardal_record *neardal_g_variant_to_record(GVariant *in); void neardal_trace(const char *func, FILE *fp, char *fmt, ...) __attribute__((format(printf, 3, 4))); -int (*neardal_output_cb)(FILE *fp, const char *fmt, va_list ap); +extern int (*neardal_output_cb)(FILE *fp, const char *fmt, va_list ap); #ifdef __cplusplus } -- 2.28.0 ================================================ FILE: package/neardal/Config.in ================================================ config BR2_PACKAGE_NEARDAL bool "neardal" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, glib2 depends on BR2_USE_MMU # dbus select BR2_PACKAGE_DBUS select BR2_PACKAGE_DBUS_GLIB select BR2_PACKAGE_LIBEDIT help Provides a simple C API to exchange data with the neard NFC manager daemon. https://github.com/connectivity/neardal if BR2_PACKAGE_NEARDAL config BR2_PACKAGE_NEARDAL_NCL bool "ncl tool" help Build and install neardal ncl command line interpreter tool. endif comment "neardal needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/neardal/neardal.hash ================================================ # Locally calculated sha256 dae3c432e619a0d3102c5222d0b8fde74413ae519a64ccaae0fc81d31504aecb neardal-4143d130ed39299bfc59d08d2c7c77dbc7f809e9.tar.gz sha256 296a87e9098d3f2ce1ef80c73c53399dc2c7412f35d4175c45810ea15ed86406 COPYING ================================================ FILE: package/neardal/neardal.mk ================================================ ################################################################################ # # neardal # ################################################################################ NEARDAL_VERSION = 4143d130ed39299bfc59d08d2c7c77dbc7f809e9 NEARDAL_SITE = $(call github,connectivity,neardal,$(NEARDAL_VERSION)) NEARDAL_INSTALL_STAGING = YES NEARDAL_LICENSE = LGPL-2.0 NEARDAL_LICENSE_FILES = COPYING NEARDAL_DEPENDENCIES = host-pkgconf dbus dbus-glib libedit NEARDAL_AUTORECONF = YES define NEARDAL_INSTALL_NCL $(INSTALL) -m 0755 -D $(@D)/ncl/ncl $(TARGET_DIR)/usr/bin/ncl endef ifeq ($(BR2_PACKAGE_NEARDAL_NCL),y) NEARDAL_POST_INSTALL_TARGET_HOOKS += NEARDAL_INSTALL_NCL endif $(eval $(autotools-package)) ================================================ FILE: package/neofetch/Config.in ================================================ config BR2_PACKAGE_NEOFETCH bool "neofetch" depends on BR2_USE_MMU # bash depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash select BR2_PACKAGE_BASH # runtime dependency help Neofetch is a bash script to display system information, including hardware, in a visually pleasing way. https://github.com/dylanaraps/neofetch ================================================ FILE: package/neofetch/neofetch.hash ================================================ sha256 58a95e6b714e41efc804eca389a223309169b2def35e57fa934482a6b47c27e7 neofetch-7.1.0.tar.gz sha256 fc3034b3dd3a08db109949b629210213bba52aa95455cbc5c2fefa2fc1183efe LICENSE.md ================================================ FILE: package/neofetch/neofetch.mk ================================================ ################################################################################ # # neofetch # ################################################################################ NEOFETCH_VERSION = 7.1.0 NEOFETCH_SITE = $(call github,dylanaraps,neofetch,$(NEOFETCH_VERSION)) NEOFETCH_LICENSE = MIT NEOFETCH_LICENSE_FILES = LICENSE.md define NEOFETCH_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/neofetch \ $(TARGET_DIR)/usr/bin/neofetch endef $(eval $(generic-package)) ================================================ FILE: package/neon/Config.in ================================================ config BR2_PACKAGE_NEON bool "libneon" help HTTP and WebDAV client library, with a C interface. http://www.webdav.org/neon/ if BR2_PACKAGE_NEON config BR2_PACKAGE_NEON_ZLIB bool "ZLIB support" select BR2_PACKAGE_ZLIB help build with ZLIB support config BR2_PACKAGE_NEON_SSL bool "SSL support" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 if BR2_PACKAGE_LIBOPENSSL help build with SSL support # This is an hidden symbol other packages can select to ensure that # Neon has XML support, either provided by Expat or libxml2. config BR2_PACKAGE_NEON_XML bool select BR2_PACKAGE_NEON_EXPAT if !BR2_PACKAGE_NEON_LIBXML2 config BR2_PACKAGE_NEON_EXPAT bool "XML support with expat" depends on !BR2_PACKAGE_NEON_LIBXML2 select BR2_PACKAGE_EXPAT help Enable XML support in neon, using the Expat XML library. config BR2_PACKAGE_NEON_LIBXML2 bool "XML support with libxml2" select BR2_PACKAGE_LIBXML2 help Enable XML support in neon, using the libxml2 XML library. endif ================================================ FILE: package/neon/neon.hash ================================================ # Locally calculated after checking pgp signature sha256 db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca neon-0.30.2.tar.gz # Locally computed sha256 95f77624e96f6728145826fc895142275451f43f41c073766db3dbbcc8b790b0 README sha256 d7bf9d064ac3e5840f9dd02422b7eeec4f1fd03f37fadbd043602be5e882304f src/COPYING.LIB sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad test/COPYING ================================================ FILE: package/neon/neon.mk ================================================ ################################################################################ # # neon # ################################################################################ NEON_VERSION = 0.30.2 NEON_SITE = http://www.webdav.org/neon NEON_LICENSE = LGPL-2.0+ (library), GPL-2.0+ (manual and tests) NEON_LICENSE_FILES = src/COPYING.LIB test/COPYING README NEON_CPE_ID_VENDOR = webdav NEON_INSTALL_STAGING = YES NEON_CONF_OPTS = --without-gssapi --disable-rpath NEON_CONFIG_SCRIPTS = neon-config NEON_DEPENDENCIES = host-pkgconf $(TARGET_NLS_DEPENDENCIES) NEON_CONF_ENV = ne_cv_libsfor_bindtextdomain=$(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_NEON_ZLIB),y) NEON_CONF_OPTS += --with-zlib=$(STAGING_DIR) NEON_DEPENDENCIES += zlib else NEON_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_NEON_SSL),y) NEON_CONF_OPTS += --with-ssl NEON_DEPENDENCIES += openssl else NEON_CONF_OPTS += --without-ssl endif ifeq ($(BR2_PACKAGE_NEON_EXPAT),y) NEON_CONF_OPTS += --with-expat=yes NEON_DEPENDENCIES += expat else NEON_CONF_OPTS += --with-expat=no endif ifeq ($(BR2_PACKAGE_NEON_LIBXML2),y) NEON_CONF_OPTS += --with-libxml2=yes NEON_CONF_ENV += ac_cv_prog_XML2_CONFIG=$(STAGING_DIR)/usr/bin/xml2-config NEON_DEPENDENCIES += libxml2 else NEON_CONF_OPTS += --with-libxml2=no endif ifeq ($(BR2_PACKAGE_NEON_EXPAT)$(BR2_PACKAGE_NEON_LIBXML2),) # webdav needs xml support NEON_CONF_OPTS += --disable-webdav endif $(eval $(autotools-package)) ================================================ FILE: package/net-tools/Config.in ================================================ config BR2_PACKAGE_NET_TOOLS bool "net-tools" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help A collection of programs that form the base set of the NET-3 networking distribution for the Linux operating system. Includes: arp, hostname, ifconfig, netstat, rarp, route, plipconfig, slattach, mii-tool, iptunnel and ipmaddr. http://sourceforge.net/projects/net-tools/ ================================================ FILE: package/net-tools/net-tools.hash ================================================ # From http://sourceforge.net/projects/net-tools/files/ sha1 4080baab0486dc882c3b293d5559c27251ae4268 net-tools-2.10.tar.xz md5 78aae762c95e2d731faf88d482e4cde5 net-tools-2.10.tar.xz # Locally computed sha256 b262435a5241e89bfa51c3cabd5133753952f7a7b7b93f32e08cb9d96f580d69 net-tools-2.10.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/net-tools/net-tools.mk ================================================ ################################################################################ # # net-tools # ################################################################################ NET_TOOLS_VERSION = 2.10 NET_TOOLS_SOURCE = net-tools-$(NET_TOOLS_VERSION).tar.xz NET_TOOLS_SITE = http://downloads.sourceforge.net/project/net-tools NET_TOOLS_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) NET_TOOLS_LICENSE = GPL-2.0+ NET_TOOLS_LICENSE_FILES = COPYING NET_TOOLS_CPE_ID_VENDOR = net-tools_project define NET_TOOLS_CONFIGURE_CMDS (cd $(@D); yes "" | ./configure.sh config.in ) endef # Enable I18N when appropiate ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) define NET_TOOLS_ENABLE_I18N $(SED) 's:I18N 0:I18N 1:' $(@D)/config.h endef endif # Enable IPv6 define NET_TOOLS_ENABLE_IPV6 $(SED) 's:_AFINET6 0:_AFINET6 1:' $(@D)/config.h endef NET_TOOLS_POST_CONFIGURE_HOOKS += NET_TOOLS_ENABLE_I18N NET_TOOLS_ENABLE_IPV6 define NET_TOOLS_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) \ LDFLAGS="$(TARGET_LDFLAGS) $(TARGET_NLS_LIBS)" \ $(MAKE) -C $(@D) endef # ifconfig & route reside in /sbin for busybox, so ensure we don't end # up with two versions of those. define NET_TOOLS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install mv -f $(TARGET_DIR)/bin/ifconfig $(TARGET_DIR)/sbin/ifconfig mv -f $(TARGET_DIR)/bin/route $(TARGET_DIR)/sbin/route endef $(eval $(generic-package)) ================================================ FILE: package/netatalk/0001-Fix-setting-of-LD_LIBRARY_FLAGS-shlibpath_var.patch ================================================ From 60d100713b5289948e9cdf5b0646ff3cdd2c206b Mon Sep 17 00:00:00 2001 From: "Arnout Vandecappelle (Essensium/Mind)" Date: Mon, 17 Dec 2012 22:32:44 +0100 Subject: [PATCH] Fix setting of LD_LIBRARY_FLAGS ($shlibpath_var). LD_LIBRARY_PATH should not be set when cross-compiling, because it adds the cross-libraries to the build's LD-path. Also the restoring of LD_LIBRARY_PATH was done incorrectly: it would set LD_LIBRARY_PATH=LD_LIBRARY_PATH. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- macros/db3-check.m4 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/macros/db3-check.m4 b/macros/db3-check.m4 index 902220b..d5a5446 100644 --- a/macros/db3-check.m4 +++ b/macros/db3-check.m4 @@ -94,7 +94,7 @@ if test "x$bdb_required" = "xyes"; then savedldflags="$LDFLAGS" savedcppflags="$CPPFLAGS" savedlibs="$LIBS" - saved_shlibpath_var=$shlibpath_var + eval saved_shlibpath_var=\$$shlibpath_var dnl required BDB version: 4.6, because of cursor API change DB_MAJOR_REQ=4 @@ -148,7 +148,7 @@ if test "x$bdb_required" = "xyes"; then dnl -- LD_LIBRARY_PATH on many platforms. This will be fairly dnl -- portable hopefully. Reference: dnl -- http://lists.gnu.org/archive/html/autoconf/2009-03/msg00040.html - eval export $shlibpath_var=$bdblibdir + test "$cross_compiling" = yes || eval export $shlibpath_var=$bdblibdir NETATALK_BDB_TRY_LINK eval export $shlibpath_var=$saved_shlibpath_var @@ -171,7 +171,7 @@ if test "x$bdb_required" = "xyes"; then CPPFLAGS="-I${bdbdir}/include${subdir} $CPPFLAGS" LDFLAGS="-L$bdblibdir $LDFLAGS" - eval export $shlibpath_var=$bdblibdir + test "$cross_compiling" = yes || eval export $shlibpath_var=$bdblibdir NETATALK_BDB_TRY_LINK eval export $shlibpath_var=$saved_shlibpath_var -- ================================================ FILE: package/netatalk/0002-fix-ftbs-multiple-def-of-invalid_dircache_entries.patch ================================================ From 32df6e155ccfc83216321925273c3e75e631ebe6 Mon Sep 17 00:00:00 2001 From: Andrew Bauer Date: Wed, 22 Jan 2020 09:59:47 -0600 Subject: [PATCH] fix ftbs multiple def of invalid_dircache_entries [Retrieved from: https://github.com/Netatalk/Netatalk/pull/125/commits/32df6e155ccfc83216321925273c3e75e631ebe6] Signed-off-by: Fabrice Fontaine --- etc/afpd/directory.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/afpd/directory.h b/etc/afpd/directory.h index eb89c606..81bfa9cb 100644 --- a/etc/afpd/directory.h +++ b/etc/afpd/directory.h @@ -91,7 +91,7 @@ struct maccess { #define AR_UWRITE (1<<2) #define AR_UOWN (1<<7) -q_t *invalid_dircache_entries; +extern q_t *invalid_dircache_entries; typedef int (*dir_loop)(struct dirent *, char *, void *); ================================================ FILE: package/netatalk/Config.in ================================================ 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 select BR2_PACKAGE_BERKELEYDB select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_CAST if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBEVENT select BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_LIBGPG_ERROR help Netatalk can be used to turn a *NIX machine into an extremely high-performance and reliable file server for Macintosh computers. http://netatalk.sourceforge.net/ comment "netatalk needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/netatalk/S50netatalk ================================================ #!/bin/sh # # Start netatalk # start() { echo "Starting Netatalk" start-stop-daemon -S -q -p /var/run/netatalk.pid --exec /usr/sbin/netatalk } stop(){ echo "Stopping Netatalk" start-stop-daemon -K -q -p /var/run/netatalk.pid } case "$1" in start) start ;; stop) stop ;; restart) start stop ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/netatalk/netatalk.hash ================================================ # From http://sourceforge.net/projects/netatalk/files/netatalk/3.1.12/ md5 021d2330cb7f7cd2977aec46299dcc1b netatalk-3.1.12.tar.bz2 sha1 cc1fe1ebdbdb4da9cf82835c440e82ba28a832c5 netatalk-3.1.12.tar.bz2 # Locally computed sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING sha256 7599ae145e53be03a08f8b558b2f2e0c828e1630f1843cc04f41981b8cefcd65 COPYRIGHT ================================================ FILE: package/netatalk/netatalk.mk ================================================ ################################################################################ # # netatalk # ################################################################################ NETATALK_VERSION = 3.1.12 NETATALK_SITE = http://downloads.sourceforge.net/project/netatalk/netatalk/$(NETATALK_VERSION) NETATALK_SOURCE = netatalk-$(NETATALK_VERSION).tar.bz2 # For 0001-Fix-setting-of-LD_LIBRARY_FLAGS-shlibpath_var.patch NETATALK_AUTORECONF = YES NETATALK_CONFIG_SCRIPTS = netatalk-config NETATALK_DEPENDENCIES = host-pkgconf openssl berkeleydb libgcrypt libgpg-error \ libevent NETATALK_LICENSE = GPL-2.0+, LGPL-3.0+, MIT-like NETATALK_LICENSE_FILES = COPYING COPYRIGHT NETATALK_CPE_ID_VENDOR = netatalk_project # Don't run ldconfig! NETATALK_CONF_ENV += CC="$(TARGET_CC) -std=gnu99" \ ac_cv_path_NETA_LDCONFIG="" NETATALK_CONF_OPTS += \ --with-cnid-cdb-backend \ --with-bdb=$(STAGING_DIR)/usr \ --with-ssl-dir=$(STAGING_DIR)/usr \ --with-libgcrypt-dir=$(STAGING_DIR)/usr \ --with-shadow \ --disable-shell-check \ --without-kerberos \ --without-pam \ --with-libevent=no \ --with-dtrace=no \ --with-mysql-config=no ifeq ($(BR2_PACKAGE_ACL),y) NETATALK_DEPENDENCIES += acl else NETATALK_CONF_OPTS += --with-acls=no endif ifeq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_DBUS),yy) NETATALK_DEPENDENCIES += avahi NETATALK_CONF_OPTS += --enable-zeroconf=$(STAGING_DIR)/usr else NETATALK_CONF_OPTS += --disable-zeroconf endif ifeq ($(BR2_PACKAGE_CUPS),y) NETATALK_DEPENDENCIES += cups NETATALK_CONF_ENV += ac_cv_path_CUPS_CONFIG=$(STAGING_DIR)/usr/bin/cups-config NETATALK_CONF_OPTS += --enable-cups else NETATALK_CONF_OPTS += --disable-cups endif define NETATALK_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/netatalk/S50netatalk \ $(TARGET_DIR)/etc/init.d/S50netatalk endef $(eval $(autotools-package)) ================================================ FILE: package/netcalc/Config.in ================================================ config BR2_PACKAGE_NETCALC bool "netcalc" help netcalc (40 kiB) is a slimmed down version of sipcalc using the popular output format of ipcalc. Both IPv4 and IPv6 are supported. https://github.com/troglobit/netcalc/ ================================================ FILE: package/netcalc/netcalc.hash ================================================ # From https://github.com/troglobit/netcalc/releases/tag/v2.1.6 md5 c8660b61370c76d866247fe65966a35b netcalc-2.1.6.tar.gz # Locally computed: sha256 cff41782fcf63d7d4ce6d35f95ed302127f6ddf6fc0ca03a8188af95a7c3243b netcalc-2.1.6.tar.gz sha256 745538f8d515d37af6f03442df982a8b211b129e8dc10d0195e33c4b42f8fe5f LICENSE ================================================ FILE: package/netcalc/netcalc.mk ================================================ ################################################################################ # # netcalc # ################################################################################ NETCALC_VERSION = 2.1.6 NETCALC_SITE = https://github.com/troglobit/netcalc/releases/download/v$(NETCALC_VERSION) NETCALC_LICENSE = BSD-3-Clause NETCALC_LICENSE_FILES = LICENSE NETCALC_CONF_OPTS = --disable-ipcalc-symlink $(eval $(autotools-package)) ================================================ FILE: package/netcat/0001-signed-bit-counting.patch ================================================ # Fix the endian-specific bit-counting code so that it works. # SF:1068324 "netcat_flag_count() fix" # http://sourceforge.net/tracker/?func=detail&aid=1205729&group_id=52204&atid=466046 # SF:1205729 "doen't work on arm linux platform": # http://sourceforge.net/tracker/?func=detail&aid=1068324&group_id=52204&atid=466046 Index: netcat-0.7.1/src/flagset.c =================================================================== --- netcat-0.7.1.orig/src/flagset.c 2010-07-19 13:51:46.000000000 +0100 +++ netcat-0.7.1/src/flagset.c 2010-07-19 13:52:27.000000000 +0100 @@ -134,7 +134,7 @@ int netcat_flag_count(void) { - register char c; + register unsigned char c; register int i; int ret = 0; @@ -154,8 +154,8 @@ Assumed that the bit number 1 is the sign, and that we will shift the bit 1 (or the bit that takes its place later) until the the most right, WHY it has to keep the wrong sign? */ - ret -= (c >> 7); - c <<= 1; + ret += c&1; + c>>=1; } } ================================================ FILE: package/netcat/Config.in ================================================ 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. It is designed to be a reliable "back-end" tool that can be used directly or easily driven by other programs and scripts. At the same time, it is a feature-rich network debugging and exploration tool, since it can create almost any kind of connection you would need and has several interesting built-in capabilities. http://netcat.sourceforge.net/download.php ================================================ FILE: package/netcat/netcat.hash ================================================ # Locally computed: sha256 30719c9a4ffbcf15676b8f528233ccc54ee6cba96cb4590975f5fd60c68a066f netcat-0.7.1.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/netcat/netcat.mk ================================================ ################################################################################ # # netcat # ################################################################################ NETCAT_VERSION = 0.7.1 NETCAT_SITE = http://downloads.sourceforge.net/project/netcat/netcat/$(NETCAT_VERSION) NETCAT_LICENSE = GPL-2.0+ NETCAT_LICENSE_FILES = COPYING NETCAT_CPE_ID_VENDOR = netcat_project $(eval $(autotools-package)) ================================================ FILE: package/netcat-openbsd/Config.in ================================================ config BR2_PACKAGE_NETCAT_OPENBSD bool "netcat-openbsd" depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS depends on !BR2_STATIC_LIBS # libbsd depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 select BR2_PACKAGE_LIBBSD help A simple Unix utility which reads and writes data across network connections using TCP or UDP protocol. It is designed to be a reliable "back-end" tool that can be used directly or easily driven by other programs and scripts. At the same time it is a feature-rich network debugging and exploration tool, since it can create almost any kind of connection you would need and has several interesting built-in capabilities. This package contains the OpenBSD rewrite of netcat, including support for IPv6, proxies, and Unix sockets. https://packages.debian.org/sid/netcat-openbsd comment "netcat-openbsd needs a glibc toolchain w/ dynamic library, threads, headers >= 3.12" depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/netcat-openbsd/netcat-openbsd.hash ================================================ # Locally calculated sha256 55e578f652cbf6ffc95f75ea3e2645ab335fab63649568bd7cdb0a6331ca87de netcat-openbsd-debian_1.195-2-br1.tar.gz sha256 e2e86d58c38f044a49f51e45515747585db58a2305419c73323eaad88fcaef5c debian/copyright ================================================ FILE: package/netcat-openbsd/netcat-openbsd.mk ================================================ ################################################################################ # # netcat-openbsd # ################################################################################ NETCAT_OPENBSD_VERSION = debian/1.195-2 NETCAT_OPENBSD_SITE = https://salsa.debian.org/debian/netcat-openbsd.git NETCAT_OPENBSD_SITE_METHOD = git NETCAT_OPENBSD_LICENSE = BSD-3-Clause NETCAT_OPENBSD_LICENSE_FILES = debian/copyright NETCAT_OPENBSD_DEPENDENCIES = host-pkgconf libbsd define NETCAT_OPENBSD_APPLY_DEBIAN_PATCHES if [ -d $(@D)/debian/patches ]; then \ $(APPLY_PATCHES) $(@D) $(@D)/debian/patches *.dpatch; \ fi endef NETCAT_OPENBSD_POST_PATCH_HOOKS += NETCAT_OPENBSD_APPLY_DEBIAN_PATCHES define NETCAT_OPENBSD_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define NETCAT_OPENBSD_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -D $(@D)/nc $(TARGET_DIR)/usr/bin/nc endef $(eval $(generic-package)) ================================================ FILE: package/netdata/Config.in ================================================ config BR2_PACKAGE_NETDATA bool "netdata" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # libuv depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv select BR2_PACKAGE_LIBUV select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_ZLIB help Netdata is distributed, real-time, performance and health monitoring for systems and applications. It is a highly optimized monitoring agent you install on all your systems and containers. https://github.com/netdata/netdata comment "netdata needs a toolchain w/ NPTL, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 ================================================ FILE: package/netdata/S60netdata ================================================ #!/bin/sh DAEMON="netdata" PIDFILE="/var/run/$DAEMON.pid" NETDATA_ARGS="-u root -P $PIDFILE" # Create needed directories. mkdir -p /var/cache/$DAEMON /var/lib/$DAEMON /var/log/$DAEMON # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- $NETDATA_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/netdata/netdata.hash ================================================ # Locally calculated sha256 60cdde3f1f8bd9035fef6a566053c0a7195d1714b5da6814473263e85382b4a8 netdata-1.21.1.tar.gz sha256 0e5fd9d833efe9b79f784d1903281554af82d1b4261af67d35455728e5572aa6 LICENSE ================================================ FILE: package/netdata/netdata.mk ================================================ ################################################################################ # # netdata # ################################################################################ NETDATA_VERSION = 1.21.1 NETDATA_SITE = $(call github,netdata,netdata,v$(NETDATA_VERSION)) NETDATA_LICENSE = GPL-3.0+ NETDATA_LICENSE_FILES = LICENSE NETDATA_CPE_ID_VENDOR = netdata # netdata's source code is released without a generated configure script NETDATA_AUTORECONF = YES NETDATA_CONF_OPTS = \ --disable-dbengine \ --disable-unit-tests NETDATA_DEPENDENCIES = libuv util-linux zlib ifeq ($(BR2_GCC_ENABLE_LTO),y) NETDATA_CONF_OPTS += --enable-lto else NETDATA_CONF_OPTS += --disable-lto endif ifeq ($(BR2_PACKAGE_CUPS),y) NETDATA_CONF_OPTS += --enable-plugin-cups NETDATA_DEPENDENCIES += cups else NETDATA_CONF_OPTS += --disable-plugin-cups endif ifeq ($(BR2_PACKAGE_JSON_C),y) NETDATA_CONF_OPTS += --enable-jsonc NETDATA_DEPENDENCIES += json-c else NETDATA_CONF_OPTS += --disable-jsonc endif ifeq ($(BR2_PACKAGE_LIBCAP),y) NETDATA_CONF_OPTS += --with-libcap NETDATA_DEPENDENCIES += libcap else NETDATA_CONF_OPTS += --without-libcap endif ifeq ($(BR2_PACKAGE_NFACCT),y) NETDATA_CONF_OPTS += --enable-plugin-nfacct NETDATA_DEPENDENCIES += nfacct else NETDATA_CONF_OPTS += --disable-plugin-nfacct endif ifeq ($(BR2_PACKAGE_OPENSSL),y) NETDATA_CONF_OPTS += --enable-https NETDATA_DEPENDENCIES += openssl else NETDATA_CONF_OPTS += --disable-https endif ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) NETDATA_CONF_ENV += LIBS=-latomic endif define NETDATA_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/netdata/S60netdata \ $(TARGET_DIR)/etc/init.d/S60netdata endef $(eval $(autotools-package)) ================================================ FILE: package/netifrc/Config.in ================================================ config BR2_PACKAGE_NETIFRC bool "netifrc" depends on BR2_PACKAGE_OPENRC help netifrc is a collection of modules created to configure and manage network interfaces via individual, per-interface scripts. https://wiki.gentoo.org/wiki/Netifrc comment "netifrc needs openrc as init system" depends on !BR2_PACKAGE_OPENRC ================================================ FILE: package/netifrc/netifrc.hash ================================================ # Calculated manually sha256 004907e0c3db2d106d6a51d604d79f971f1013fa7642054ad7efe5076e52f7b3 netifrc-0.6.1.tar.gz sha256 da376c9e2244f2a7220767ea4dd88cf423ff5b548e7c2f96b0f3b9dac727748a LICENSE ================================================ FILE: package/netifrc/netifrc.mk ================================================ ################################################################################ # # netifrc # ################################################################################ NETIFRC_VERSION = 0.6.1 NETIFRC_SITE = $(call github,gentoo,netifrc,$(NETIFRC_VERSION)) NETIFRC_LICENSE = BSD-2-Clause NETIFRC_LICENSE_FILES = LICENSE NETIFRC_DEPENDENCIES = openrc # set LIBNAME so netifrc puts files in proper directories and sets proper # paths in installed files. Since in buildroot /lib64 and /lib32 always # points to /lib, it's safe to hardcode it to "lib" NETIFRC_MAKE_OPTS = \ LIBNAME=lib \ UDEVDIR=/lib/udev \ LIBEXECDIR=/usr/libexec/netifrc define NETIFRC_BUILD_CMDS $(MAKE) $(NETIFRC_MAKE_OPTS) -C $(@D) endef ifeq ($(BR2_PACKAGE_HAS_UDEV),) define NETIFRC_REMOVE_UDEV $(RM) $(TARGET_DIR)/lib/udev/net.sh $(RM) $(TARGET_DIR)/lib/udev/rules.d/90-network.rules rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/lib/udev/rules.d rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/lib/udev endef endif # BR2_PACKAGE_HAS_UDEV NETIFRC_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP)) ifneq ($(NETIFRC_DHCP_IFACE),) NETIFRC_DHCP_CFG = config_$(NETIFRC_DHCP_IFACE)="dhcp" define NETIFRC_DHCP_SERVICE ln -sf net.lo $(TARGET_DIR)/etc/init.d/net.$(NETIFRC_DHCP_IFACE) ln -sf /etc/init.d/net.$(NETIFRC_DHCP_IFACE) \ $(TARGET_DIR)/etc/runlevels/default/net.$(NETIFRC_DHCP_IFACE) endef endif # BR2_SYSTEM_DHCP != "" define NETIFRC_NET_CFG config_lo="127.0.0.1/8" $(NETIFRC_DHCP_CFG) endef define NETIFRC_INSTALL_TARGET_CMDS $(MAKE) $(NETIFRC_MAKE_OPTS) DESTDIR=$(TARGET_DIR) -C $(@D) install $(NETIFRC_REMOVE_UDEV) $(call PRINTF,$(NETIFRC_NET_CFG)) > $(TARGET_DIR)/etc/conf.d/net ln -sf /etc/init.d/net.lo $(TARGET_DIR)/etc/runlevels/default/net.lo $(NETIFRC_DHCP_SERVICE) endef $(eval $(generic-package)) ================================================ FILE: package/netopeer2/Config.in ================================================ comment "netopeer2 needs a toolchain w/ gcc >= 4.8, C++, threads, dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 config BR2_PACKAGE_NETOPEER2 bool "netopeer2" depends on BR2_USE_MMU # libnetconf2, libssh, sysrepo depends on !BR2_STATIC_LIBS # libnetconf2, libssh, libyang, sysrepo depends on BR2_INSTALL_LIBSTDCPP # sysrepo depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # sysrepo select BR2_PACKAGE_LIBNETCONF2 select BR2_PACKAGE_LIBSSH select BR2_PACKAGE_LIBSSH_SERVER # For libnetconf2 to have SSH select BR2_PACKAGE_LIBYANG select BR2_PACKAGE_OPENSSL # For libnetconf2 to have TLS select BR2_PACKAGE_SYSREPO help Netopeer2 is a set of tools implementing network configuration tools based on the NETCONF Protocol. This is the server part. https://github.com/CESNET/Netopeer2 if BR2_PACKAGE_NETOPEER2 config BR2_PACKAGE_NETOPEER2_CLI bool "cli" help Enable netopeer2 CLI. endif ================================================ FILE: package/netopeer2/S52netopeer2 ================================================ #!/bin/sh DAEMON="netopeer2-server" PIDFILE="/var/run/$DAEMON.pid" NETOPEER2_SERVER_ARGS="" start() { printf 'Starting %s: ' "$DAEMON" start-stop-daemon -S -b -q -p $PIDFILE -x "/usr/bin/$DAEMON" \ -- $NETOPEER2_SERVER_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p $PIDFILE status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } reload() { # we do not support real reload .. just restart restart } case "$1" in start|stop|restart|reload) "$1";; *) echo "Usage: $0 {start|stop|restart|reload}" esac ================================================ FILE: package/netopeer2/netopeer2.hash ================================================ # Locally calculated sha256 7fc1a3520ee4bb488112f502e34cea465464dc933d2a5742a72eb32a6dfe3b3f netopeer2-1.1.70.tar.gz sha256 b46f161fbdcf127d3ef22602e15958c3092fe3294f71a2dc8cdf8f6689cba95b LICENSE ================================================ FILE: package/netopeer2/netopeer2.mk ================================================ ################################################################################ # # netopeer2 # ################################################################################ NETOPEER2_VERSION = 1.1.70 NETOPEER2_SITE = $(call github,CESNET,Netopeer2,v$(NETOPEER2_VERSION)) NETOPEER2_DL_SUBDIR = netopeer2 NETOPEER2_LICENSE = BSD-3-Clause NETOPEER2_LICENSE_FILES = LICENSE NETOPEER2_DEPENDENCIES = libnetconf2 libyang sysrepo host-sysrepo NETOPEER2_CONF_OPTS = -DBUILD_CLI=$(if $(BR2_PACKAGE_NETOPEER2_CLI),ON,OFF) # Set a build specific SYSREPO_SHM_PREFIX to ensure we can safely delete the # files. This also ensures that concurrent parallel builds will not be # affected mutualy. NETOPEER2_SYSREPO_SHM_PREFIX = sr_buildroot$(subst /,_,$(CONFIG_DIR))_netopeer2 NETOPEER2_MAKE_ENV = \ SYSREPOCTL_EXECUTABLE=$(HOST_DIR)/bin/sysrepoctl \ SYSREPO_SHM_PREFIX=$(NETOPEER2_SYSREPO_SHM_PREFIX) define NETOPEER2_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/netopeer2/S52netopeer2 \ $(TARGET_DIR)/etc/init.d/S52netopeer2 endef # The host sysrepo used to install the netopeer2 modules will leave # its shared memory files lingering about. Clean up in its stead... # We need to clean up both before and after installation, to catch # the case of a previous build that failed before we run that hook. define NETOPEER2_CLEANUP rm -f /dev/shm/$(NETOPEER2_SYSREPO_SHM_PREFIX)* endef NETOPEER2_PRE_INSTALL_TARGET_HOOKS += NETOPEER2_CLEANUP NETOPEER2_POST_INSTALL_TARGET_HOOKS += NETOPEER2_CLEANUP $(eval $(cmake-package)) ================================================ FILE: package/netperf/0001-src-nettest_omni.c-fix-compilation-with-GCC10.patch ================================================ From b2fd0f324002d0cf52ae905b2a469bf1067f182a Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 5 Sep 2020 14:30:20 +0200 Subject: [PATCH] src/nettest_omni.c: fix compilation with GCC10 GCC10 defaults to -fno-common, which breaks compilation when there are multiple definitions of implicit "extern" variables. Remove the extra definitions. Fix #42 Signed-off-by: Tony Ambardar [Retrieved from: https://github.com/openwrt/packages/blob/master/net/netperf/patches/010-gcc10_multiple_definition_fix.patch] Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/HewlettPackard/netperf/pull/48] --- src/nettest_omni.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/nettest_omni.c b/src/nettest_omni.c index 852eeb1..862088a 100644 --- a/src/nettest_omni.c +++ b/src/nettest_omni.c @@ -458,14 +458,6 @@ static int client_port_max = 65535; /* different options for the sockets */ -int - loc_nodelay, /* don't/do use NODELAY locally */ - rem_nodelay, /* don't/do use NODELAY remotely */ - loc_sndavoid, /* avoid send copies locally */ - loc_rcvavoid, /* avoid recv copies locally */ - rem_sndavoid, /* avoid send copies remotely */ - rem_rcvavoid; /* avoid recv_copies remotely */ - extern int loc_tcpcork, rem_tcpcork, -- 2.28.0 ================================================ FILE: package/netperf/Config.in ================================================ config BR2_PACKAGE_NETPERF bool "netperf" help Network performance benchmark tool https://hewlettpackard.github.io/netperf/ ================================================ FILE: package/netperf/netperf.hash ================================================ # Locally calculated sha256 842af17655835c8be7203808c3393e6cb327a8067f3ed1f1053eb78b4e40375a netperf-2.7.0.tar.bz2 sha256 dc874b3047b6259336431e813961fb6c5945561c6ad7a732aa8531a3c6b1a9fa COPYING ================================================ FILE: package/netperf/netperf.mk ================================================ ################################################################################ # # netperf # ################################################################################ NETPERF_VERSION = 2.7.0 NETPERF_SITE = http://sources.buildroot.org/netperf NETPERF_SOURCE = netperf-$(NETPERF_VERSION).tar.bz2 # gcc 5+ defaults to gnu99 which breaks netperf NETPERF_CONF_ENV = \ ac_cv_func_setpgrp_void=set \ CFLAGS="$(TARGET_CFLAGS) -std=gnu89" NETPERF_CONF_OPTS = --enable-demo=yes NETPERF_LICENSE = netperf license NETPERF_LICENSE_FILES = COPYING define NETPERF_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 $(@D)/src/netperf \ $(TARGET_DIR)/usr/bin/netperf $(INSTALL) -m 0755 $(@D)/src/netserver \ $(TARGET_DIR)/usr/bin/netserver endef $(eval $(autotools-package)) ================================================ FILE: package/netplug/0001-makefile-flags.patch ================================================ Preserve the cflags settings, because buildroot clobbers them. --- a/Makefile 2010-10-05 00:06:38.000000000 -0700 +++ b/Makefile 2010-10-05 00:15:27.000000000 -0700 @@ -11,11 +11,14 @@ mandir ?= $(prefix)/usr/share/man install_opts := -CFLAGS += -Wall -std=gnu99 -DNP_ETC_DIR='"$(etcdir)"' \ +NETPLUG_CFLAGS += -Wall -std=gnu99 -DNP_ETC_DIR='"$(etcdir)"' \ -DNP_SCRIPT_DIR='"$(scriptdir)"' -ggdb3 -O3 -DNP_VERSION='"$(version)"' +%.o: %.c + $(CC) $(NETPLUG_CFLAGS) $(CFLAGS) -c -o $@ $< + netplugd: config.o netlink.o lib.o if_info.o main.o - $(CC) $(LDFLAGS) -o $@ $^ + $(CC) $(LDFLAGS) -o $@ $(NETPLUG_CFLAGS) $^ install: install -d $(install_opts) -m 755 \ ================================================ FILE: package/netplug/0002-add-missing-time-include.patch ================================================ 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 ================================================ FILE: package/netplug/0003-remove-assert-fail.patch ================================================ 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" ================================================ FILE: package/netplug/Config.in ================================================ config BR2_PACKAGE_NETPLUG bool "netplug" depends on BR2_USE_MMU # fork() help A Linux daemon that manages network interfaces in response to network cables being plugged in and out. http://www.red-bean.com/~bos/ ================================================ FILE: package/netplug/S29netplug ================================================ #!/bin/sh # # netplugd This shell script takes care of starting and stopping # the network plug management daemon. # # chkconfig: - 11 89 # description: netplugd is a daemon for managing non-static network \ # interfaces. # processname: netplugd # pidfile: /var/run/netplugd.pid # Copyright 2003 Key Research, Inc. # Create needed directories mkdir -p /var/lock/subsys # Source function library. if [ -f /etc/init.d/functions ]; then . /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functions fi # Source networking configuration. if [ -f /etc/default/network ]; then . /etc/default/network # Check that networking is up. [ "${NETWORKING}" = "no" ] && exit 0 elif [ ! -f /etc/network/interfaces ]; then # No network support exit 0 fi if [ -f /etc/default/netplugd ]; then . /etc/default/netplugd fi # See how we were called. case "$1" in start) # Start daemon. printf "Starting network plug daemon: " start-stop-daemon -S -q -x /sbin/netplugd -- -p /var/run/netplugd.pid ${NETPLUGDARGS} RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/netplugd ;; stop) # Stop daemon. printf "Shutting down network plug daemon: " start-stop-daemon -K -q -p /var/run/netplugd.pid RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/netplugd ;; restart|reload) $0 stop $0 start ;; condrestart) [ -f /var/lock/subsys/netplugd ] && $0 restart || : ;; *) echo "Usage: $0 {start|stop|restart}" RETVAL=1 ;; esac exit $RETVAL ================================================ FILE: package/netplug/netplug-script ================================================ #!/bin/sh # # netplug - policy agent for netplugd # # Copyright 2003 Key Research, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License, version 2, as # published by the Free Software Foundation. You are forbidden from # redistributing or modifying it under the terms of any other license, # including other versions of the GNU General Public License. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. PATH=/usr/bin:/bin:/usr/sbin:/sbin export PATH dev="$1" action="$2" case "$action" in in) if [ -x /sbin/ifup ]; then exec /sbin/ifup $dev else echo "Please teach me how to plug in an interface!" 1>&2 exit 1 fi ;; out) if [ -x /sbin/ifdown ]; then # At least on Fedora Core 1, the call to ip addr flush infloops # /sbin/ifdown $dev && exec /sbin/ip addr flush $dev exec /sbin/ifdown $dev else echo "Please teach me how to unplug an interface!" 1>&2 exit 1 fi ;; probe) # exec /sbin/ip link set $dev up >/dev/null 2>&1 if [ -x /sbin/ifconfig ]; then exec /sbin/ifconfig $dev up >/dev/null 2>&1 else echo "Failed to probe an interface!" 1>&2 exit 1 fi ;; *) echo "I have been called with a funny action of '%s'!" 1>&2 exit 1 ;; esac ================================================ FILE: package/netplug/netplug.hash ================================================ # Locally calculated sha256 5180dfd9a7d3d0633a027b0a04f01b45a6a64623813cd48bd54423b90814864e netplug-1.2.9.2.tar.bz2 sha256 08ce3ddda499d6befdc80161c7cc82e90da05c31eb1047dae41ef531d5170e9b COPYING ================================================ FILE: package/netplug/netplug.mk ================================================ ################################################################################ # # netplug # ################################################################################ NETPLUG_VERSION = 1.2.9.2 NETPLUG_SOURCE = netplug-$(NETPLUG_VERSION).tar.bz2 NETPLUG_SITE = http://www.red-bean.com/~bos/netplug NETPLUG_LICENSE = GPL-2.0 NETPLUG_LICENSE_FILES = COPYING define NETPLUG_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define NETPLUG_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) install endef define NETPLUG_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/netplug/S29netplug \ $(TARGET_DIR)/etc/init.d/S29netplug endef define NETPLUG_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/netplug/netplug.service \ $(TARGET_DIR)/usr/lib/systemd/system/netplug.service endef $(eval $(generic-package)) ================================================ FILE: package/netplug/netplug.service ================================================ [Unit] Description=Network cable hotplug management daemon After=syslog.target network.target [Service] ExecStart=/sbin/netplugd -F Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/netsniff-ng/0001-Detect-libpcap-dependencies-using-pkg-config.patch ================================================ From 194ec61843b9598ce90873c812b817c4b96e2e0d Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Thu, 2 Sep 2021 12:56:00 +0300 Subject: [PATCH] Detect libpcap dependencies using pkg-config When building statically the link command line must include all dependencies of all libraries. libpcap can optionally depend on libnl. mausezahn can't build statically in this case. Use pkg-config in configure and in the link command to construct the library flags we need to link with libpcap. Signed-off-by: Baruch Siach Signed-off-by: Tobias Klauser --- Upstream status: commit 194ec61843b9598ce90873c812b817c4b96e2e0d configure | 4 +++- mausezahn/Makefile | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 510826a798f5..598ae2433a7a 100755 --- a/configure +++ b/configure @@ -588,7 +588,9 @@ int main(void) } EOF - $CC -o $TMPDIR/pcaptest $TMPDIR/pcaptest.c -lpcap >> config.log 2>&1 + $CC -o $TMPDIR/pcaptest $TMPDIR/pcaptest.c \ + $($PKG_CONFIG --libs libpcap 2>> config.log) \ + >> config.log 2>&1 if [ ! -x $TMPDIR/pcaptest ] ; then echo "[NO]" echo "CONFIG_LIBPCAP=0" >> Config diff --git a/mausezahn/Makefile b/mausezahn/Makefile index ca16b6579583..9544565355cc 100644 --- a/mausezahn/Makefile +++ b/mausezahn/Makefile @@ -1,6 +1,6 @@ mausezahn-libs = -lcli \ -lnet \ - -lpcap \ + $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --libs libpcap 2> /dev/null ) \ -lrt \ -lpthread \ -lm -- 2.33.0 ================================================ FILE: package/netsniff-ng/Config.in ================================================ config BR2_PACKAGE_NETSNIFF_NG bool "netsniff-ng" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS select BR2_PACKAGE_LIBNL select BR2_PACKAGE_LIBPCAP select BR2_PACKAGE_LIBNETFILTER_CONNTRACK select BR2_PACKAGE_LIBURCU help netsniff-ng is a free, performant Linux network analyzer and networking toolkit. If you will, the Swiss army knife for network packets. http://netsniff-ng.org if BR2_PACKAGE_NETSNIFF_NG config BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN bool "mausezahn" default y # Build with uClibc fails due to missing ceill() depends on !BR2_TOOLCHAIN_USES_UCLIBC select BR2_PACKAGE_LIBCLI select BR2_PACKAGE_LIBNET comment "mausezahn needs glibc or musl toolchain" depends on BR2_TOOLCHAIN_USES_UCLIBC endif comment "netsniff-ng needs a toolchain w/ threads, headers >= 3.0" depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 ================================================ FILE: package/netsniff-ng/netsniff-ng.hash ================================================ # Locally calculated after checking signature sha256 77d17d4158faf1d93c7d922a1bd7f093a8b437bd658292c830708540e10894ba netsniff-ng-0.6.8.tar.xz # Locally computed sha256 b353349ba51e0d4b59cf2f188f0c285296e154ce8c58954bc5e0dc0282a4db2d README sha256 8f6d85366f3763557d6ddd0637988b9ba11edef354e3c9302fff4262a235c387 COPYING ================================================ FILE: package/netsniff-ng/netsniff-ng.mk ================================================ ################################################################################ # # netsniff-ng # ################################################################################ NETSNIFF_NG_VERSION = 0.6.8 NETSNIFF_NG_SITE = http://pub.netsniff-ng.org/netsniff-ng NETSNIFF_NG_SOURCE = netsniff-ng-$(NETSNIFF_NG_VERSION).tar.xz NETSNIFF_NG_LICENSE = GPL-2.0 NETSNIFF_NG_LICENSE_FILES = README COPYING # Prevent netsniff-ng configure script from finding a host installed nacl NETSNIFF_NG_CONF_ENV = \ NACL_INC_DIR=/dev/null \ NACL_LIB_DIR=/dev/null NETSNIFF_NG_DEPENDENCIES = host-pkgconf libnl libpcap libnetfilter_conntrack liburcu ifeq ($(BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN),y) NETSNIFF_NG_DEPENDENCIES += libcli libnet NETSNIFF_NG_BUILD_MAKE_TARGET = all NETSNIFF_NG_INSTALL_MAKE_TARGET = install else NETSNIFF_NG_BUILD_MAKE_TARGET = allbutmausezahn NETSNIFF_NG_INSTALL_MAKE_TARGET = install_allbutmausezahn endif ifeq ($(BR2_PACKAGE_GEOIP),y) NETSNIFF_NG_DEPENDENCIES += geoip endif ifeq ($(BR2_PACKAGE_NCURSES),y) NETSNIFF_NG_DEPENDENCIES += ncurses endif ifeq ($(BR2_PACKAGE_ZLIB),y) NETSNIFF_NG_DEPENDENCIES += zlib endif # hand-written configure script and makefile define NETSNIFF_NG_CONFIGURE_CMDS (cd $(@D); \ $(NETSNIFF_NG_CONF_ENV) \ $(TARGET_CONFIGURE_ARGS) \ $(TARGET_CONFIGURE_OPTS) \ ./configure \ --prefix=$(TARGET_DIR)/usr \ ) endef define NETSNIFF_NG_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ $(NETSNIFF_NG_BUILD_MAKE_TARGET) endef define NETSNIFF_NG_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc \ -C $(@D) $(NETSNIFF_NG_INSTALL_MAKE_TARGET) endef $(eval $(generic-package)) ================================================ FILE: package/netsnmp/0001-configure-static-linking-Fix-SSL-checks.patch ================================================ From bd59be8e4e339870a1400f6866a7b73ca11f6460 Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Wed, 12 Sep 2018 20:16:39 +0200 Subject: [PATCH] configure, static linking: Fix SSL checks During checking of DTLS_method, the stub program is linked only with -ssl libssl.a lacks some function from -lcrypto: RAND_*() ERR_*() BUF_MEM_*() etc. and -lz: - inflate() - deflate() Append -lcrypto and -lz to LIBS variable when checking DTLS_method. See also https://sourceforge.net/p/net-snmp/patches/1374/. Signed-off-by: Giulio Benetti [bvanassche: Edited subject / rewrote this patch] [yann.morin.1998@free.fr: - use an actual backport of bd59be8e4e339870a1400f6866a7b73ca11f6460 ] Signed-off-by: Yann E. MORIN --- configure | 52 ++++++++++++++++++++++++++++++++++--- configure.d/config_os_libs2 | 14 +++++++--- 2 files changed, 58 insertions(+), 8 deletions(-) diff --git a/configure b/configure index 6504a8e58a..1116cecaad 100755 --- a/configure +++ b/configure @@ -23228,16 +23228,60 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_EVP_md5" >&5 $as_echo "$ac_cv_lib_crypto_EVP_md5" >&6; } if test "x$ac_cv_lib_crypto_EVP_md5" = xyes; then : - CRYPTO="crypto" + CRYPTO="crypto"; LIBCRYPTO="-lcrypto" +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_md5 in -lcrypto" >&5 +$as_echo_n "checking for EVP_md5 in -lcrypto... " >&6; } +if ${ac_cv_lib_crypto_EVP_md5+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypto -lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char EVP_md5 (); +int +main () +{ +return EVP_md5 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_crypto_EVP_md5=yes +else + ac_cv_lib_crypto_EVP_md5=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_EVP_md5" >&5 +$as_echo "$ac_cv_lib_crypto_EVP_md5" >&6; } +if test "x$ac_cv_lib_crypto_EVP_md5" = xyes; then : + CRYPTO="crypto"; LIBCRYPTO="-lcrypto -lz" +fi + + fi - fi + else + LIBCRYPTO="-l${CRYPTO}" + fi if test x$CRYPTO != x; then $as_echo "#define HAVE_LIBCRYPTO 1" >>confdefs.h - LIBCRYPTO="-l${CRYPTO}" netsnmp_save_LIBS="$LIBS" LIBS="$LIBCRYPTO" for ac_func in AES_cfb128_encrypt EVP_sha224 EVP_sha384 EVP_MD_CTX_create EVP_MD_CTX_destroy EVP_MD_CTX_new EVP_MD_CTX_free DH_set0_pqg DH_get0_pqg DH_get0_key ASN1_STRING_get0_data X509_NAME_ENTRY_get_object X509_NAME_ENTRY_get_data X509_get_signature_nid @@ -23291,7 +23335,7 @@ _ACEOF LIBS="$netsnmp_save_LIBS" fi netsnmp_save_LIBS="$LIBS" - LIBS="-lssl" + LIBS="-lssl $LIBCRYPTO" for ac_func in TLS_method TLSv1_method DTLS_method DTLSv1_method SSL_library_init SSL_load_error_strings ERR_get_error_all do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` diff --git a/configure.d/config_os_libs2 b/configure.d/config_os_libs2 index 4a1ad1551f..75214cfff3 100644 --- a/configure.d/config_os_libs2 +++ b/configure.d/config_os_libs2 @@ -306,13 +306,19 @@ if test "x$tryopenssl" != "xno" -a "x$tryopenssl" != "xinternal"; then LIBS="$netsnmp_save_LIBS" if test x$CRYPTO = x; then - AC_CHECK_LIB([crypto], [EVP_md5], [CRYPTO="crypto"]) - fi + AC_CHECK_LIB([crypto], [EVP_md5], + [CRYPTO="crypto"; LIBCRYPTO="-lcrypto"], [ + AC_CHECK_LIB([crypto], [EVP_md5], + [CRYPTO="crypto"; LIBCRYPTO="-lcrypto -lz"], [], + [-lz]) + ]) + else + LIBCRYPTO="-l${CRYPTO}" + fi if test x$CRYPTO != x; then AC_DEFINE(HAVE_LIBCRYPTO, 1, [Define to 1 if you have the OpenSSL library (-lcrypto or -leay32).]) - LIBCRYPTO="-l${CRYPTO}" netsnmp_save_LIBS="$LIBS" LIBS="$LIBCRYPTO" AC_CHECK_FUNCS([AES_cfb128_encrypt]dnl @@ -342,7 +348,7 @@ if test "x$tryopenssl" != "xno" -a "x$tryopenssl" != "xinternal"; then LIBS="$netsnmp_save_LIBS" fi netsnmp_save_LIBS="$LIBS" - LIBS="-lssl" + LIBS="-lssl $LIBCRYPTO" AC_CHECK_FUNCS([TLS_method TLSv1_method DTLS_method DTLSv1_method]dnl [SSL_library_init SSL_load_error_strings]) LIBS="$netsnmp_save_LIBS" -- 2.25.1 ================================================ FILE: package/netsnmp/0002-configure-Fix-lcrypto-lz-test.patch ================================================ From 13da2bcde8e22dd0127a668374fdf79bed04d353 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Mon, 17 Sep 2018 07:33:34 -0700 Subject: [PATCH] configure: Fix -lcrypto -lz test Avoid that the second crypto library test uses the cached result from the first test by explicitly clearing the cached test result. [yann.morin.1998@free.fr: - use an actual backport of 13da2bcde8e22dd0127a668374fdf79bed04d353 ] Signed-off-by: Yann E. MORIN --- configure | 1 + configure.d/config_os_libs2 | 1 + 2 files changed, 2 insertions(+) diff --git a/configure b/configure index 1116cecaad..33b8c93e57 100755 --- a/configure +++ b/configure @@ -23231,6 +23231,7 @@ if test "x$ac_cv_lib_crypto_EVP_md5" = xyes; then : CRYPTO="crypto"; LIBCRYPTO="-lcrypto" else + unset ac_cv_lib_crypto_EVP_md5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_md5 in -lcrypto" >&5 $as_echo_n "checking for EVP_md5 in -lcrypto... " >&6; } if ${ac_cv_lib_crypto_EVP_md5+:} false; then : diff --git a/configure.d/config_os_libs2 b/configure.d/config_os_libs2 index 75214cfff3..81788a2096 100644 --- a/configure.d/config_os_libs2 +++ b/configure.d/config_os_libs2 @@ -308,6 +308,7 @@ if test "x$tryopenssl" != "xno" -a "x$tryopenssl" != "xinternal"; then if test x$CRYPTO = x; then AC_CHECK_LIB([crypto], [EVP_md5], [CRYPTO="crypto"; LIBCRYPTO="-lcrypto"], [ + unset ac_cv_lib_crypto_EVP_md5 AC_CHECK_LIB([crypto], [EVP_md5], [CRYPTO="crypto"; LIBCRYPTO="-lcrypto -lz"], [], [-lz]) -- 2.25.1 ================================================ FILE: package/netsnmp/0003-configure-fix-AC_CHECK_FUNCS-EVP_sha224-EVP_sha384-..patch ================================================ From 8e273c688aa235ed9c68570a700d31596bac14df Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Mon, 15 Oct 2018 19:07:05 +0200 Subject: [PATCH 1/2] configure: fix AC_CHECK_FUNCS(EVP_sha224 EVP_sha384 ...) failure on static linking If building as static lib, AC_CHECK_FUNCS(EVP_sha224 EVP_sha384 ...) fails due to missing -lz in $LIBS. At the moment, $LIBS contains $LIBCRYPTO only discarding previous $LIBS content. Add $LIBS to: LIBS="$LIBCRYPTO" as: LIBS="$LIBCRYPTO $LIBS" This way $LIBS will contain -lz at the end of linking command that in static linking build is mandatory. Signed-off-by: Giulio Benetti --- configure.d/config_os_libs2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.d/config_os_libs2 b/configure.d/config_os_libs2 index 81788a209..93044000b 100644 --- a/configure.d/config_os_libs2 +++ b/configure.d/config_os_libs2 @@ -321,7 +321,7 @@ if test "x$tryopenssl" != "xno" -a "x$tryopenssl" != "xinternal"; then AC_DEFINE(HAVE_LIBCRYPTO, 1, [Define to 1 if you have the OpenSSL library (-lcrypto or -leay32).]) netsnmp_save_LIBS="$LIBS" - LIBS="$LIBCRYPTO" + LIBS="$LIBCRYPTO $LIBS" AC_CHECK_FUNCS([AES_cfb128_encrypt]dnl [EVP_sha224 EVP_sha384 ]dnl [EVP_MD_CTX_create EVP_MD_CTX_destroy]dnl -- 2.17.1 ================================================ FILE: package/netsnmp/0004-configure-fix-AC_CHECK_FUNCS-TLS_method-TLSv1_method.patch ================================================ From 1ab6e3fc3cf61fa5a7b7363e59095e868474524b Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Mon, 15 Oct 2018 19:34:26 +0200 Subject: [PATCH 2/2] configure: fix AC_CHECK_FUNCS(TLS_method TLSv1_method ...) failure on static linking If building as static lib, AC_CHECK_FUNCS(TLS_method TLSv1_method ...) fails due to missing -lz in $LIBS. At the moment, $LIBS contains "-lssl $LIBCRYPTO" only discarding previous $LIBS content. Add $LIBS to: LIBS="-lssl $LIBCRYPTO" as: LIBS="-lssl $LIBCRYPTO $LIBS" This way $LIBS will contain -lz at the end of linking command that in static linking build is mandatory. Signed-off-by: Giulio Benetti --- configure.d/config_os_libs2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.d/config_os_libs2 b/configure.d/config_os_libs2 index 93044000b..c811c63ec 100644 --- a/configure.d/config_os_libs2 +++ b/configure.d/config_os_libs2 @@ -349,7 +349,7 @@ if test "x$tryopenssl" != "xno" -a "x$tryopenssl" != "xinternal"; then LIBS="$netsnmp_save_LIBS" fi netsnmp_save_LIBS="$LIBS" - LIBS="-lssl $LIBCRYPTO" + LIBS="-lssl $LIBCRYPTO $LIBS" AC_CHECK_FUNCS([TLS_method TLSv1_method DTLS_method DTLSv1_method]dnl [SSL_library_init SSL_load_error_strings]dnl [ERR_get_error_all]) -- 2.17.1 ================================================ FILE: package/netsnmp/Config.in ================================================ config BR2_PACKAGE_NETSNMP bool "netsnmp" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL help Suite of applications used to implement SNMP v1, SNMP v2c, and SNMP v3 using both IPv4 and IPv6. http://net-snmp.sourceforge.net/ if BR2_PACKAGE_NETSNMP config BR2_PACKAGE_NETSNMP_SERVER bool "server" default y help The snmpd server. config BR2_PACKAGE_NETSNMP_CLIENTS bool "clients" default y help The net-snmp clients (snmpget, snmpwalk, etc). config BR2_PACKAGE_NETSNMP_ENABLE_MIBS bool "Install MIB files on target and enable MIB loading code" default y help The net-snmp package contains a selection of MIB files. Say yes if you want those MIB files installed on the target and enable the code that parses the MIB files. config BR2_PACKAGE_NETSNMP_WITH_MIB_MODULES string "Build with these MIB modules" default "host ucd-snmp/dlmod agentx" if !BR2_STATIC_LIBS default "host agentx" if BR2_STATIC_LIBS help Specify which MIB modules to include. config BR2_PACKAGE_NETSNMP_WITHOUT_MIB_MODULES string "Build without these MIB modules" default "disman/event disman/schedule utilities" help Specify which MIB modules to exclude. config BR2_PACKAGE_NETSNMP_ENABLE_DEBUGGING bool "Enable debugging code" help By default net-snmp is compiled without debugging support (--disable-debugging). Enable this options if you need debugging support, including the ability to log with DEBUGMSG(), DEBUGMSGTL() and companion macros. config BR2_PACKAGE_NETSNMP_OPENSSL_INTERNAL bool "Enable minimal internal OpenSSL code" depends on !BR2_PACKAGE_OPENSSL help Enable a minimal internal copy of OpenSSL usable for USM security. It will not enable the usage of SNMP over (D)TLS. endif ================================================ FILE: package/netsnmp/S59snmpd ================================================ #! /bin/sh ### BEGIN INIT INFO # Provides: snmpd snmptrapd # Required-Start: $network $local_fs # Required-Stop: $network $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 6 # Short-Description: SNMP agents # Description: NET SNMP (Simple Network Management Protocol) Agents ### END INIT INFO # # Author: Jochen Friedrich # export PATH=/sbin:/usr/sbin:/bin:/usr/bin # Defaults export MIBDIRS=/usr/share/snmp/mibs SNMPDRUN=yes SNMPDOPTS='-Lsd -Lf /dev/null -p /var/run/snmpd.pid 127.0.0.1' TRAPDRUN=no TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid' # Reads config file (will override defaults above) [ -r /etc/default/snmpd ] && . /etc/default/snmpd ssd_oknodo="-o" # Cd to / before starting any daemons. cd / # Create compatibility link to old AgentX socket location 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) 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 ================================================ FILE: package/netsnmp/netsnmp.hash ================================================ # Locally calculated after checking pgp signature at # https://sourceforge.net/projects/net-snmp/files/net-snmp/5.9/net-snmp-5.9.tar.gz.asc # using key D0F8F495DA6160C44EFFBF10F07B9D2DACB19FD6 sha256 04303a66f85d6d8b16d3cc53bde50428877c82ab524e17591dfceaeb94df6071 net-snmp-5.9.tar.gz # Hash for license file sha256 ed869ea395a1f125819a56676385ab0557a21507764bf56f2943302011381e59 COPYING ================================================ FILE: package/netsnmp/netsnmp.mk ================================================ ################################################################################ # # netsnmp # ################################################################################ NETSNMP_VERSION = 5.9 NETSNMP_SITE = https://downloads.sourceforge.net/project/net-snmp/net-snmp/$(NETSNMP_VERSION) NETSNMP_SOURCE = net-snmp-$(NETSNMP_VERSION).tar.gz NETSNMP_LICENSE = Various BSD-like NETSNMP_LICENSE_FILES = COPYING NETSNMP_CPE_ID_VENDOR = net-snmp NETSNMP_CPE_ID_PRODUCT = $(NETSNMP_CPE_ID_VENDOR) NETSNMP_SELINUX_MODULES = snmp NETSNMP_INSTALL_STAGING = YES NETSNMP_CONF_ENV = \ ac_cv_NETSNMP_CAN_USE_SYSCTL=no \ ac_cv_path_PSPROG=/bin/ps NETSNMP_CONF_OPTS = \ --with-persistent-directory=/var/lib/snmp \ --with-defaults \ --enable-mini-agent \ --without-rpm \ --with-logfile=none \ --without-kmem-usage \ --enable-as-needed \ --without-perl-modules \ --disable-embedded-perl \ --disable-perl-cc-checks \ --disable-scripts \ --with-default-snmp-version="1" \ --enable-silent-libtool \ --enable-mfd-rewrites \ --with-sys-contact="root@localhost" \ --with-sys-location="Unknown" \ --with-mib-modules="$(call qstrip,$(BR2_PACKAGE_NETSNMP_WITH_MIB_MODULES))" \ --with-out-mib-modules="$(call qstrip,$(BR2_PACKAGE_NETSNMP_WITHOUT_MIB_MODULES))" \ --disable-manuals NETSNMP_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) LIB_LDCONFIG_CMD=true install NETSNMP_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) LIB_LDCONFIG_CMD=true install NETSNMP_MAKE = $(MAKE1) NETSNMP_CONFIG_SCRIPTS = net-snmp-config NETSNMP_AUTORECONF = YES ifeq ($(BR2_ENDIAN),"BIG") NETSNMP_CONF_OPTS += --with-endianness=big else NETSNMP_CONF_OPTS += --with-endianness=little endif ifeq ($(BR2_PACKAGE_LIBNL),y) NETSNMP_DEPENDENCIES += host-pkgconf libnl NETSNMP_CONF_OPTS += --with-nl else NETSNMP_CONF_OPTS += --without-nl endif # OpenSSL ifeq ($(BR2_PACKAGE_OPENSSL),y) NETSNMP_DEPENDENCIES += host-pkgconf openssl NETSNMP_CONF_OPTS += \ --with-openssl=$(STAGING_DIR)/usr/include/openssl \ --with-security-modules="tsm,usm" \ --with-transports="DTLSUDP,TLSTCP" NETSNMP_CONF_ENV += LIBS=`$(PKG_CONFIG_HOST_BINARY) --libs openssl` else ifeq ($(BR2_PACKAGE_NETSNMP_OPENSSL_INTERNAL),y) NETSNMP_CONF_OPTS += --with-openssl=internal else NETSNMP_CONF_OPTS += --without-openssl endif # There's no option to forcibly enable or disable it 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 endif ifneq ($(BR2_PACKAGE_NETSNMP_ENABLE_DEBUGGING),y) NETSNMP_CONF_OPTS += --disable-debugging endif ifeq ($(BR2_PACKAGE_NETSNMP_SERVER),y) NETSNMP_CONF_OPTS += --enable-agent else NETSNMP_CONF_OPTS += --disable-agent endif ifeq ($(BR2_PACKAGE_NETSNMP_CLIENTS),y) NETSNMP_CONF_OPTS += --enable-applications else NETSNMP_CONF_OPTS += --disable-applications endif ifeq ($(BR2_PACKAGE_NETSNMP_SERVER),y) define NETSNMP_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/netsnmp/S59snmpd \ $(TARGET_DIR)/etc/init.d/S59snmpd endef endif $(eval $(autotools-package)) ================================================ FILE: package/netstat-nat/Config.in ================================================ config BR2_PACKAGE_NETSTAT_NAT bool "netstat-nat" help Displays NAT connections http://tweegy.nl/projects/netstat-nat/ ================================================ FILE: package/netstat-nat/netstat-nat.hash ================================================ # Locally calculated sha256 e945faa283a49f33af15de915a949c9273a230fc17154925364c547adab676ca netstat-nat-1.4.10.tar.gz sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/netstat-nat/netstat-nat.mk ================================================ ################################################################################ # # netstat-nat # ################################################################################ NETSTAT_NAT_VERSION = 1.4.10 NETSTAT_NAT_SITE = http://tweegy.nl/download NETSTAT_NAT_LICENSE = GPL-2.0+ NETSTAT_NAT_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/netsurf/0001-avoid-system-perl-dependencies.patch ================================================ From b42e4b5bfca030965dcfca993a47a6ddaa941287 Mon Sep 17 00:00:00 2001 From: Francois Perrad Date: Sun, 25 Nov 2018 18:27:54 +0100 Subject: [PATCH] avoid system perl dependencies this subroutine format is used for android target. with eval the load of HTML::Entities is deferred. Signed-off-by: Francois Perrad --- netsurf/utils/split-messages.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netsurf/utils/split-messages.pl b/netsurf/utils/split-messages.pl index 4b50dde..e47dded 100644 --- a/netsurf/utils/split-messages.pl +++ b/netsurf/utils/split-messages.pl @@ -311,7 +311,7 @@ TXT sub footer { qq|| } sub format { - use HTML::Entities qw(encode_entities); + eval q|use HTML::Entities qw(encode_entities);|; my $escaped = encode_entities( $_[1], '<>&"' ); qq| $escaped\n|; } -- 2.17.1 ================================================ FILE: package/netsurf/0002-do-not-cross-compile-nsgenbind.patch ================================================ From 2419ad79b25fcc1746178aba609fddbb0aa8c9e0 Mon Sep 17 00:00:00 2001 From: Francois Perrad Date: Sat, 1 Dec 2018 16:10:13 +0100 Subject: [PATCH] build nsgenbind for the build machine The nsgenbind tool is meant to be executed on the build machine during the build, so it should not be built with the cross-compiler, but with the native compiler. Signed-off-by: Francois Perrad --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f279f01..5698c87 100644 --- a/Makefile +++ b/Makefile @@ -110,7 +110,7 @@ endef # prefixed install macro for each host sub target define do_build_prefix_install - $(MAKE) install --directory=$1 HOST=$(BUILD) PREFIX=$(TMP_PREFIX) Q=$(Q) DESTDIR= + $(MAKE) install --directory=$1 HOST=$(BUILD) CC=$(BUILD_CC) PREFIX=$(TMP_PREFIX) Q=$(Q) DESTDIR= endef -- 2.17.1 ================================================ FILE: package/netsurf/0003-fix-compilation-without-curl.patch ================================================ From 7d7c59dbfc92fcbcd0eac2c84e0fb98662c4bd71 Mon Sep 17 00:00:00 2001 From: Francois Perrad Date: Sat, 8 Dec 2018 09:43:40 +0100 Subject: [PATCH] fix compilation without curl Signed-off-by: Francois Perrad --- netsurf/content/fetch.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/netsurf/content/fetch.c b/netsurf/content/fetch.c index 7665029..0f41c49 100644 --- a/netsurf/content/fetch.c +++ b/netsurf/content/fetch.c @@ -54,7 +54,9 @@ #include "content/fetchers.h" #include "content/fetchers/resource.h" #include "content/fetchers/about.h" +#ifdef WITH_CURL #include "content/fetchers/curl.h" +#endif #include "content/fetchers/data.h" #include "content/fetchers/file.h" #include "javascript/fetcher.h" -- 2.17.1 ================================================ FILE: package/netsurf/0004-framebuffer-Fix-internal-font-generated-source-for-GCC-10.patch ================================================ From 434f6c3fe7d1d2c6a3e6ae6338608a4a4421ab1b Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Fri, 13 Nov 2020 11:12:58 +0000 Subject: framebuffer: Fix internal font generated source for GCC 10. [Retrieved (and backported) from: https://git.netsurf-browser.org/netsurf.git/commit/?id=434f6c3fe7d1d2c6a3e6ae6338608a4a4421ab1b] Signed-off-by: Fabrice Fontaine --- tools/convert_font.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/netsurf/frontends/framebuffer/convert_font.c b/netsurf/frontends/framebuffer/convert_font.c index 9f5734b71..d22c85920 100644 --- a/netsurf/frontends/framebuffer/convert_font.c +++ b/netsurf/frontends/framebuffer/convert_font.c @@ -290,14 +290,14 @@ static bool generate_font_header(const char *path, struct font_data *data) for (s = 0; s < 4; s++) { - fprintf(fp, "const uint8_t *%s_section_table;\n", + fprintf(fp, "extern const uint8_t *%s_section_table;\n", var_lables[s]); - fprintf(fp, "const uint16_t *%s_sections;\n", + fprintf(fp, "extern const uint16_t *%s_sections;\n", var_lables[s]); } - fprintf(fp, "const uint8_t *font_glyph_data;\n"); + fprintf(fp, "extern const uint8_t *font_glyph_data;\n"); fprintf(fp, "\n\n"); -- cgit v1.2.1 ================================================ FILE: package/netsurf/Config.in ================================================ # netsurf mixes up host and target CFLAGS, so it isn't compatible with # architectures where we pass ABI specific compiler flags (TARGET_ABI) config BR2_PACKAGE_NETSURF_ARCH_SUPPORTS bool default y if !((BR2_arc && BR2_ARC_ATOMIC_EXT) || \ BR2_powerpc_8540 || BR2_powerpc_8548 || BR2_powerpc_e500mc || \ BR2_xtensa) comment "netsurf needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS depends on BR2_PACKAGE_NETSURF_ARCH_SUPPORTS config BR2_PACKAGE_NETSURF bool "netsurf" # static linking support is broken beyond repair depends on !BR2_STATIC_LIBS depends on BR2_PACKAGE_NETSURF_ARCH_SUPPORTS select BR2_PACKAGE_EXPAT select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_OPENSSL if BR2_PACKAGE_LIBCURL help NetSurf is a compact graphical web browser which aims for HTML5, CSS and JavaScript support. Frontends: GTK (X11), SDL 1.2 (framebuffer) http://www.netsurf-browser.org/ if BR2_PACKAGE_NETSURF choice prompt "Netsurf frontend" default BR2_PACKAGE_NETSURF_SDL config BR2_PACKAGE_NETSURF_SDL bool "sdl frontend" select BR2_PACKAGE_SDL help Select SDL 1.2 frontend. config BR2_PACKAGE_NETSURF_GTK bool "gtk2 frontend" depends on BR2_PACKAGE_LIBGTK2 help Select GTK+ 2 frontend. config BR2_PACKAGE_NETSURF_GTK3 bool "gtk3 frontend" depends on BR2_PACKAGE_LIBGTK3 help Select GTK+ 3 frontend. endchoice endif ================================================ FILE: package/netsurf/netsurf.hash ================================================ # Locally computed sha256 495adf6b6614ce36fca6c605f7c321f9cb4a3df838043158122678ce2b3325b7 netsurf-all-3.10.tar.gz sha256 55c4a7ae3953d720a462e69d1f128a20004933d12538be5314a33f8821675378 netsurf/COPYING ================================================ FILE: package/netsurf/netsurf.mk ================================================ ################################################################################ # # netsurf # ################################################################################ NETSURF_VERSION = 3.10 NETSURF_SOURCE = netsurf-all-$(NETSURF_VERSION).tar.gz NETSURF_SITE = http://download.netsurf-browser.org/netsurf/releases/source-full NETSURF_LICENSE = GPL-2.0 NETSURF_LICENSE_FILES = netsurf/COPYING NETSURF_CPE_ID_VENDOR = netsurf-browser # host-vim needed for the xxd utility NETSURF_DEPENDENCIES = expat jpeg libpng \ host-bison host-flex host-gperf host-pkgconf host-vim ifeq ($(BR2_PACKAGE_NETSURF_GTK),y) NETSURF_DEPENDENCIES += libgtk2 NETSURF_FRONTEND = gtk2 endif ifeq ($(BR2_PACKAGE_NETSURF_GTK3),y) NETSURF_DEPENDENCIES += libgtk3 NETSURF_FRONTEND = gtk3 endif ifeq ($(BR2_PACKAGE_NETSURF_GTK)$(BR2_PACKAGE_NETSURF_GTK3),y) ifeq ($(BR2_PACKAGE_LIBRSVG),y) NETSURF_DEPENDENCIES += librsvg define NETSURF_SVG_CONFIGURE_CMDS echo "override NETSURF_USE_RSVG := YES" >> $(@D)/netsurf/Makefile.config echo "override NETSURF_USE_NSSVG := NO" >> $(@D)/netsurf/Makefile.config endef endif endif ifeq ($(BR2_PACKAGE_NETSURF_SDL),y) NETSURF_DEPENDENCIES += sdl host-libpng NETSURF_FRONTEND = framebuffer NETSURF_CONFIG = \ BUILD_CFLAGS='$(HOST_CFLAGS)' \ BUILD_LDFLAGS='$(HOST_LDFLAGS) -lpng' ifeq ($(BR2_PACKAGE_FREETYPE),y) NETSURF_DEPENDENCIES += freetype define NETSURF_FONTLIB_CONFIGURE_CMDS echo "override NETSURF_FB_FONTLIB := freetype" >> $(@D)/netsurf/Makefile.config endef endif endif ifeq ($(BR2_PACKAGE_LIBICONV),y) NETSURF_DEPENDENCIES += libiconv define NETSURF_ICONV_CONFIGURE_CMDS echo "CFLAGS += -DWITH_ICONV_FILTER" >> $(@D)/libparserutils/Makefile.config.override echo "override NETSURF_USE_LIBICONV_PLUG := NO" >> $(@D)/netsurf/Makefile.config endef endif ifeq ($(BR2_PACKAGE_LIBCURL),y) NETSURF_DEPENDENCIES += libcurl openssl else define NETSURF_CURL_CONFIGURE_CMDS echo "override NETSURF_USE_CURL := NO" >> $(@D)/netsurf/Makefile.config echo "override NETSURF_USE_OPENSSL := NO" >> $(@D)/netsurf/Makefile.config endef endif ifeq ($(BR2_PACKAGE_WEBP),y) NETSURF_DEPENDENCIES += webp define NETSURF_WEBP_CONFIGURE_CMDS echo "override NETSURF_USE_WEBP := YES" >> $(@D)/netsurf/Makefile.config endef else define NETSURF_WEBP_CONFIGURE_CMDS echo "override NETSURF_USE_WEBP := NO" >> $(@D)/netsurf/Makefile.config endef endif define NETSURF_CONFIGURE_CMDS $(NETSURF_ICONV_CONFIGURE_CMDS) $(NETSURF_SVG_CONFIGURE_CMDS) $(NETSURF_FONTLIB_CONFIGURE_CMDS) $(NETSURF_CURL_CONFIGURE_CMDS) $(NETSURF_WEBP_CONFIGURE_CMDS) endef NETSURF_MAKE_ENV = \ $(TARGET_MAKE_ENV) \ CFLAGS="$(TARGET_CFLAGS) -I$(@D)/tmpusr/include" \ LDFLAGS="$(TARGET_LDFLAGS) -L$(@D)/tmpusr/lib" NETSURF_MAKE_OPTS = \ TARGET=$(NETSURF_FRONTEND) \ BISON="$(HOST_DIR)/bin/bison" \ FLEX="$(HOST_DIR)/bin/flex" \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ BUILD_CC="$(HOSTCC)" \ CC="$(TARGET_CC)" \ AR="$(TARGET_AR)" \ TMP_PREFIX=$(@D)/tmpusr \ NETSURF_CONFIG="$(NETSURF_CONFIG)" \ PREFIX=/usr define NETSURF_BUILD_CMDS mkdir -p $(@D)/tmpusr $(NETSURF_MAKE_ENV) $(MAKE) -C $(@D) $(NETSURF_MAKE_OPTS) \ build endef define NETSURF_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(NETSURF_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/netsurf-buildsystem/netsurf-buildsystem.hash ================================================ # Locally computed sha256 150a3a45c3f433a35451506b316a35c14630112fc557f9e1f02c9e08b50e0cce netsurf-buildsystem-7574b41345968b5f7e9ca5875faccb1478ce0555-br1.tar.gz sha256 b2ddc1d607332423f6cf415b2ac619a1c03dd565facdc39a571282a520929a65 llvm/LICENSE.TXT ================================================ FILE: package/netsurf-buildsystem/netsurf-buildsystem.mk ================================================ ################################################################################ # # netsurf-buildsystem # ################################################################################ NETSURF_BUILDSYSTEM_VERSION = 7574b41345968b5f7e9ca5875faccb1478ce0555 NETSURF_BUILDSYSTEM_SITE = http://git.netsurf-browser.org/buildsystem.git NETSURF_BUILDSYSTEM_SITE_METHOD = git NETSURF_BUILDSYSTEM_LICENSE = MIT, BSD-3-Clause (for llvm/* files) NETSURF_BUILDSYSTEM_LICENSE_FILES = llvm/LICENSE.TXT NETSURF_BUILDSYSTEM_INSTALL_DIR = $(HOST_DIR)/share/netsurf-buildsystem define HOST_NETSURF_BUILDSYSTEM_INSTALL_CMDS mkdir -p $(NETSURF_BUILDSYSTEM_INSTALL_DIR) cp -dpfr $(@D)/* $(NETSURF_BUILDSYSTEM_INSTALL_DIR) endef $(eval $(host-generic-package)) ================================================ FILE: package/nettle/0001-disable-testsuite-examples.patch ================================================ Makefile: disable testsuite and example We do not need them in the context of Buildroot. Also, they break for a shared-only build (but it's fixed in patch 0001). Signed-off-by: "Yann E. MORIN" diff -durN nettle-2.7.1.orig/Makefile.in nettle-2.7.1/Makefile.in --- nettle-2.7.1.orig/Makefile.in 2013-05-28 16:21:54.000000000 +0200 +++ nettle-2.7.1/Makefile.in 2014-12-12 19:57:12.499805574 +0100 @@ -19,7 +19,7 @@ FAT_TEST_LIST = @FAT_TEST_LIST@ -SUBDIRS = tools testsuite examples +SUBDIRS = tools include config.make ================================================ FILE: package/nettle/Config.in ================================================ config BR2_PACKAGE_NETTLE bool "nettle" select BR2_PACKAGE_GMP help Nettle is a cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages, in applications like LSH or GNUPG, or even in kernel space https://www.lysator.liu.se/~nisse/nettle/ ================================================ FILE: package/nettle/nettle.hash ================================================ # Locally calculated after checking pgp signature # https://ftp.gnu.org/gnu/nettle/nettle-3.7.3.tar.gz.sig sha256 661f5eb03f048a3b924c3a8ad2515d4068e40f67e774e8a26827658007e3bcf0 nettle-3.7.3.tar.gz # Locally calculated sha256 a853c2ffec17057872340eee242ae4d96cbf2b520ae27d903e1b2fef1a5f9d1c COPYING.LESSERv3 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYINGv2 ================================================ FILE: package/nettle/nettle.mk ================================================ ################################################################################ # # nettle # ################################################################################ NETTLE_VERSION = 3.7.3 NETTLE_SITE = http://www.lysator.liu.se/~nisse/archive NETTLE_DEPENDENCIES = gmp NETTLE_INSTALL_STAGING = YES NETTLE_LICENSE = Dual GPL-2.0+/LGPL-3.0+ NETTLE_LICENSE_FILES = COPYING.LESSERv3 COPYINGv2 NETTLE_CPE_ID_VENDOR = nettle_project # don't include openssl support for (unused) examples as it has problems # with static linking NETTLE_CONF_OPTS = --disable-openssl # ARM assembly requires v6+ ISA ifeq ($(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV7M),y) NETTLE_CONF_OPTS += --disable-assembler endif ifeq ($(BR2_ARM_CPU_HAS_NEON),y) NETTLE_CONF_OPTS += --enable-arm-neon else NETTLE_CONF_OPTS += --disable-arm-neon endif $(eval $(autotools-package)) ================================================ FILE: package/network-manager/Config.in ================================================ config BR2_PACKAGE_NETWORK_MANAGER bool "network-manager" depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt depends on !BR2_STATIC_LIBS # gnutls depends on BR2_USE_MMU # dbus depends on BR2_PACKAGE_HAS_UDEV depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # Tested with 3.2, but may even work with earlier versions depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 depends on BR2_TOOLCHAIN_USES_GLIBC # CLOCK_BOOTTIME, IPTOS_CLASS_* depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_WCHAR # libglib2 select BR2_PACKAGE_DBUS select BR2_PACKAGE_GNUTLS select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_WIRELESS_TOOLS select BR2_PACKAGE_WIRELESS_TOOLS_LIB select BR2_PACKAGE_READLINE select BR2_PACKAGE_LIBNDP help NetworkManager is a set of co-operative tools that make networking simple and straightforward. Whether WiFi, wired, 3G, or Bluetooth, NetworkManager allows you to quickly move from one network to another: once a network has been configured and joined once, it can be detected and re-joined automatically the next time it's available. http://projects.gnome.org/NetworkManager/ if BR2_PACKAGE_NETWORK_MANAGER config BR2_PACKAGE_NETWORK_MANAGER_TUI bool "nmtui support" select BR2_PACKAGE_NEWT help This option enables terminal based UI config BR2_PACKAGE_NETWORK_MANAGER_MODEM_MANAGER bool "modem-manager support" select BR2_PACKAGE_MODEM_MANAGER help This option enables support for ModemManager 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 config BR2_PACKAGE_NETWORK_MANAGER_OVS bool "OpenVSwitch support" select BR2_PACKAGE_JANSSON help This option enables support for OpenVSwitch endif comment "NetworkManager needs udev /dev management and a glibc toolchain w/ headers >= 4.6, dynamic library, wchar, threads, gcc >= 4.9" depends on BR2_USE_MMU depends on !BR2_PACKAGE_HAS_UDEV || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 || \ !BR2_TOOLCHAIN_USES_GLIBC || BR2_STATIC_LIBS || \ !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/network-manager/S45network-manager ================================================ #!/bin/sh # Allow a few customizations from a config file test -r /etc/default/NetworkManager && . /etc/default/NetworkManager PID=`pidof NetworkManager` case "$1" in start) printf "Starting NetworkManager ... " [ ! -d /var/run/NetworkManager ] && install -d /var/run/NetworkManager if [ -z "$PID" ]; then /usr/sbin/NetworkManager $NETWORKMANAGER_ARGS fi if [ ! -z "$PID" -o $? -gt 0 ]; then echo "failed!" else echo "done." fi ;; stop) printf "Stopping NetworkManager ... " [ ! -z "$PID" ] && kill $PID > /dev/null 2>&1 if [ $? -gt 0 ]; then echo "failed!" else echo "done." fi ;; restart) $0 stop sleep 1 $0 start ;; *) echo "usage: $0 {start|stop|restart|sleep|wake}" ;; esac exit 0 ================================================ FILE: package/network-manager/network-manager.hash ================================================ # From https://download.gnome.org/sources/NetworkManager/1.32/NetworkManager-1.32.2.sha256sum sha256 701d511067f757d0f92f412c98cdb49a74a6ba69448aabb1beadacbc171e3873 NetworkManager-1.32.2.tar.xz # Locally computed sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPL sha256 e70c2d84a038b972beff16d8662f35567709dff2d552220bd1af6014f6d2215d CONTRIBUTING.md ================================================ FILE: package/network-manager/network-manager.mk ================================================ ################################################################################ # # network-manager # ################################################################################ NETWORK_MANAGER_VERSION_MAJOR = 1.32 NETWORK_MANAGER_VERSION = $(NETWORK_MANAGER_VERSION_MAJOR).2 NETWORK_MANAGER_SOURCE = NetworkManager-$(NETWORK_MANAGER_VERSION).tar.xz NETWORK_MANAGER_SITE = https://download.gnome.org/sources/NetworkManager/$(NETWORK_MANAGER_VERSION_MAJOR) NETWORK_MANAGER_INSTALL_STAGING = YES NETWORK_MANAGER_DEPENDENCIES = host-pkgconf udev gnutls libglib2 \ libgcrypt wireless_tools util-linux host-intltool readline libndp NETWORK_MANAGER_LICENSE = GPL-2.0+ (app), LGPL-2.1+ (libnm) NETWORK_MANAGER_LICENSE_FILES = COPYING COPYING.LGPL CONTRIBUTING.md NETWORK_MANAGER_CPE_ID_VENDOR = gnome NETWORK_MANAGER_CPE_ID_PRODUCT = networkmanager NETWORK_MANAGER_SELINUX_MODULES = networkmanager NETWORK_MANAGER_CONF_ENV = \ ac_cv_path_LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config \ ac_cv_file__etc_fedora_release=no \ ac_cv_file__etc_mandriva_release=no \ ac_cv_file__etc_debian_version=no \ ac_cv_file__etc_redhat_release=no \ ac_cv_file__etc_SuSE_release=no NETWORK_MANAGER_CONF_OPTS = \ --disable-introspection \ --disable-tests \ --disable-qt \ --disable-more-warnings \ --with-crypto=gnutls \ --with-iptables=/usr/sbin/iptables \ --disable-ifupdown \ --without-nm-cloud-setup ifeq ($(BR2_PACKAGE_OFONO),y) NETWORK_MANAGER_DEPENDENCIES += ofono NETWORK_MANAGER_CONF_OPTS += --with-ofono else NETWORK_MANAGER_CONF_OPTS += --without-ofono endif ifeq ($(BR2_PACKAGE_LIBCURL),y) NETWORK_MANAGER_DEPENDENCIES += libcurl NETWORK_MANAGER_CONF_OPTS += --enable-concheck else NETWORK_MANAGER_CONF_OPTS += --disable-concheck endif ifeq ($(BR2_PACKAGE_NETWORK_MANAGER_TUI),y) NETWORK_MANAGER_DEPENDENCIES += newt NETWORK_MANAGER_CONF_OPTS += --with-nmtui=yes else NETWORK_MANAGER_CONF_OPTS += --with-nmtui=no endif ifeq ($(BR2_PACKAGE_NETWORK_MANAGER_PPPD),y) NETWORK_MANAGER_DEPENDENCIES += pppd NETWORK_MANAGER_CONF_OPTS += --enable-ppp else NETWORK_MANAGER_CONF_OPTS += --disable-ppp endif ifeq ($(BR2_PACKAGE_NETWORK_MANAGER_MODEM_MANAGER),y) NETWORK_MANAGER_DEPENDENCIES += modem-manager NETWORK_MANAGER_CONF_OPTS += --with-modem-manager-1 else NETWORK_MANAGER_CONF_OPTS += --without-modem-manager-1 endif ifeq ($(BR2_PACKAGE_DHCP_CLIENT),y) NETWORK_MANAGER_CONF_OPTS += --with-dhclient=/sbin/dhclient endif ifeq ($(BR2_PACKAGE_DHCPCD),y) NETWORK_MANAGER_CONF_OPTS += --with-dhcpcd=/sbin/dhcpcd endif ifeq ($(BR2_PACKAGE_NETWORK_MANAGER_OVS),y) NETWORK_MANAGER_CONF_OPTS += --enable-ovs NETWORK_MANAGER_DEPENDENCIES += jansson else NETWORK_MANAGER_CONF_OPTS += --disable-ovs endif define NETWORK_MANAGER_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/network-manager/S45network-manager $(TARGET_DIR)/etc/init.d/S45network-manager endef define NETWORK_MANAGER_INSTALL_INIT_SYSTEMD ln -sf /usr/lib/systemd/system/NetworkManager.service \ $(TARGET_DIR)/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service endef $(eval $(autotools-package)) ================================================ FILE: package/network-manager-openvpn/Config.in ================================================ config BR2_PACKAGE_NETWORK_MANAGER_OPENVPN bool "network-manager-openvpn" depends on BR2_PACKAGE_NETWORK_MANAGER depends on BR2_PACKAGE_OPENVPN help OpenVPN support for NetworkManager https://gitlab.gnome.org/GNOME/NetworkManager-openvpn ================================================ FILE: package/network-manager-openvpn/network-manager-openvpn.hash ================================================ # From https://download.gnome.org/sources/NetworkManager-openvpn/1.8/NetworkManager-openvpn-1.8.14.sha256sum sha256 e7419053fc3b5a7e25f1a7517c313ad4531b6ea280255524ebb85a70c76fdbeb NetworkManager-openvpn-1.8.14.tar.xz # Locally computed sha256 c39e345d992dfba62db265f8c6d6ff1d90c61d92876635ae05adbfa2f45fff46 COPYING ================================================ FILE: package/network-manager-openvpn/network-manager-openvpn.mk ================================================ ################################################################################ # # network-manager-openvpn # ################################################################################ NETWORK_MANAGER_OPENVPN_VERSION_MAJOR = 1.8 NETWORK_MANAGER_OPENVPN_VERSION = $(NETWORK_MANAGER_OPENVPN_VERSION_MAJOR).14 NETWORK_MANAGER_OPENVPN_SOURCE = NetworkManager-openvpn-$(NETWORK_MANAGER_OPENVPN_VERSION).tar.xz NETWORK_MANAGER_OPENVPN_SITE = https://download.gnome.org/sources/NetworkManager-openvpn/$(NETWORK_MANAGER_OPENVPN_VERSION_MAJOR) NETWORK_MANAGER_OPENVPN_DEPENDENCIES = network-manager openvpn NETWORK_MANAGER_OPENVPN_LICENSE = GPL-2.0+ NETWORK_MANAGER_OPENVPN_LICENSE_FILES = COPYING NETWORK_MANAGER_OPENVPN_CONF_OPTS = \ --without-gnome define NETWORK_MANAGER_OPENVPN_USERS nm-openvpn -1 nm-openvpn -1 * - - - Openvpn user endef $(eval $(autotools-package)) ================================================ FILE: package/newt/Config.in ================================================ config BR2_PACKAGE_NEWT bool "newt" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # slang depends on !BR2_STATIC_LIBS # unconditionally creates .so select BR2_PACKAGE_SLANG select BR2_PACKAGE_POPT help Programming library for color text mode, widget based user interfaces. http://www.redhat.com/ comment "newt needs a toolchain w/ wchar, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS ================================================ FILE: package/newt/newt.hash ================================================ # From https://releases.pagure.org/newt/CHECKSUMS sha256 265eb46b55d7eaeb887fca7a1d51fe115658882dfe148164b6c49fccac5abb31 newt-0.52.21.tar.gz sha512 d53d927996d17223e688bf54dccfabb2a3dc02bfe38ffc455964e86feaca3cd9f9ab5b19774433be430fa4d761cd9b6680b558f297acb86f80daeb6942f7d23c newt-0.52.21.tar.gz # Locally calculated sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c COPYING ================================================ FILE: package/newt/newt.mk ================================================ ################################################################################ # # newt # ################################################################################ NEWT_VERSION = 0.52.21 NEWT_SITE = https://pagure.io/releases/newt NEWT_INSTALL_STAGING = YES NEWT_DEPENDENCIES = popt slang $(TARGET_NLS_DEPENDENCIES) # Force to use libintl, otherwise it finds gettext functions in the C # library, and does not link against libintl. NEWT_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) NEWT_CONF_OPTS = --without-python --without-tcl NEWT_LICENSE = GPL-2.0 NEWT_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/nfacct/Config.in ================================================ config BR2_PACKAGE_NFACCT bool "nfacct" select BR2_PACKAGE_LIBNETFILTER_ACCT help nfacct is the command line tool to create/retrieve/delete netfilter accounting objects. http://www.netfilter.org/projects/nfacct/ ================================================ FILE: package/nfacct/nfacct.hash ================================================ # From ftp://ftp.netfilter.org/pub/nfacct/nfacct-1.0.2.tar.bz2.{md5sum,sha1sum} md5 94faafdaaed85ca9220c5692be8a408e nfacct-1.0.2.tar.bz2 sha1 17d6576778227ea93c62600d9b18ff4932963c6a nfacct-1.0.2.tar.bz2 # Locally computed sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/nfacct/nfacct.mk ================================================ ################################################################################ # # nfacct # ################################################################################ NFACCT_VERSION = 1.0.2 NFACCT_SOURCE = nfacct-$(NFACCT_VERSION).tar.bz2 NFACCT_SITE = http://www.netfilter.org/projects/nfacct/files NFACCT_DEPENDENCIES = host-pkgconf \ libnetfilter_acct NFACCT_LICENSE = GPL-2.0 NFACCT_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/nfs-utils/0001-nfsdcltrack-sqlite-Fix-printf-format.patch ================================================ From d05ba5335e869bcd68c0def795c55fd5037914e3 Mon Sep 17 00:00:00 2001 From: Petr Vorel Date: Thu, 22 Jul 2021 16:15:44 +0000 Subject: [PATCH] nfsdcltrack/sqlite: Fix printf format sqlite.c: In function 'sqlite_remove_unreclaimed': sqlite.c:547:71: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Werror=format=] 547 | ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %ld", | ~~^ | | | long int | %lld 548 | grace_start); | ~~~~~~~~~~~ | | | time_t {aka long long int} Found in Buildroot riscv32 build. Link: http://autobuild.buildroot.net/results/9bc1d43a588338b7395af7bc97535ee16a6ea2d9/build-end.log Signed-off-by: Petr Vorel Upstream: http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=4f2a5b64386600430ec6b71e57b88c5efaa70aed Signed-off-by: Giulio Benetti --- utils/nfsdcltrack/sqlite.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/nfsdcltrack/sqlite.c b/utils/nfsdcltrack/sqlite.c index f79aebb3..cea4a411 100644 --- a/utils/nfsdcltrack/sqlite.c +++ b/utils/nfsdcltrack/sqlite.c @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -544,7 +545,7 @@ sqlite_remove_unreclaimed(time_t grace_start) int ret; char *err = NULL; - ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %ld", + ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %"PRIu64, grace_start); if (ret < 0) { return ret; -- 2.25.1 ================================================ FILE: package/nfs-utils/0002-nfsdcltrack-nfsdcltrack.c-Fix-printf-format.patch ================================================ From 14eb2cae4fca95609ae4efde2444fd0a5ddfca04 Mon Sep 17 00:00:00 2001 From: Petr Vorel Date: Thu, 22 Jul 2021 16:15:45 +0000 Subject: [PATCH] nfsdcltrack/nfsdcltrack.c: Fix printf format nfsdcltrack.c: In function 'cltrack_gracedone': nfsdcltrack.c:528:47: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Werror=format=] 528 | xlog(D_GENERAL, "%s: grace done. gracetime=%ld", __func__, gracetime); | ~~^ ~~~~~~~~~ | | | | long int time_t {aka long long int} | %lld Found in Buildroot riscv32 build. Link: http://autobuild.buildroot.net/results/9bc1d43a588338b7395af7bc97535ee16a6ea2d9/build-end.log Signed-off-by: Petr Vorel Upstream: http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=5a53426c0f4e84f6644c11e4f01015597d3bb82c Signed-off-by: Giulio Benetti --- utils/nfsdcltrack/nfsdcltrack.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/nfsdcltrack/nfsdcltrack.c b/utils/nfsdcltrack/nfsdcltrack.c index e926f1c0..0b37c094 100644 --- a/utils/nfsdcltrack/nfsdcltrack.c +++ b/utils/nfsdcltrack/nfsdcltrack.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -525,7 +526,7 @@ cltrack_gracedone(const char *timestr) if (*tail) return -EINVAL; - xlog(D_GENERAL, "%s: grace done. gracetime=%ld", __func__, gracetime); + xlog(D_GENERAL, "%s: grace done. gracetime=%"PRIu64, __func__, gracetime); ret = sqlite_remove_unreclaimed(gracetime); -- 2.25.1 ================================================ FILE: package/nfs-utils/0003-nfsdcltrack-Use-uint64_t-instead-of-time_t.patch ================================================ From 383d787d1b77f165da68495cb0363220b66935a4 Mon Sep 17 00:00:00 2001 From: Steve Dickson Date: Tue, 27 Jul 2021 21:12:17 -0400 Subject: [PATCH] nfsdcltrack: Use uint64_t instead of time_t With recent commits (4f2a5b64,5a53426c) that fixed compile errors on x86_64 machines, caused similar errors on i686 machines. The variable type that was being used was a time_t, which changes size between architects, which caused the compile error. Changing the variable to uint64_t fixed the issue. Signed-off-by: Steve Dickson Upstream: http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=383d787d1b77f165da68495cb0363220b66935a4 Signed-off-by: Petr Vorel --- utils/nfsdcltrack/nfsdcltrack.c | 2 +- utils/nfsdcltrack/sqlite.c | 2 +- utils/nfsdcltrack/sqlite.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/utils/nfsdcltrack/nfsdcltrack.c b/utils/nfsdcltrack/nfsdcltrack.c index 0b37c094..7c1c4bcc 100644 --- a/utils/nfsdcltrack/nfsdcltrack.c +++ b/utils/nfsdcltrack/nfsdcltrack.c @@ -508,7 +508,7 @@ cltrack_gracedone(const char *timestr) { int ret; char *tail; - time_t gracetime; + uint64_t gracetime; ret = sqlite_prepare_dbh(storagedir); diff --git a/utils/nfsdcltrack/sqlite.c b/utils/nfsdcltrack/sqlite.c index cea4a411..cf0c6a45 100644 --- a/utils/nfsdcltrack/sqlite.c +++ b/utils/nfsdcltrack/sqlite.c @@ -540,7 +540,7 @@ out_err: * remove any client records that were not reclaimed since grace_start. */ int -sqlite_remove_unreclaimed(time_t grace_start) +sqlite_remove_unreclaimed(uint64_t grace_start) { int ret; char *err = NULL; diff --git a/utils/nfsdcltrack/sqlite.h b/utils/nfsdcltrack/sqlite.h index 06e7c044..ba8cdfa8 100644 --- a/utils/nfsdcltrack/sqlite.h +++ b/utils/nfsdcltrack/sqlite.h @@ -26,7 +26,7 @@ int sqlite_insert_client(const unsigned char *clname, const size_t namelen, int sqlite_remove_client(const unsigned char *clname, const size_t namelen); int sqlite_check_client(const unsigned char *clname, const size_t namelen, const bool has_session); -int sqlite_remove_unreclaimed(const time_t grace_start); +int sqlite_remove_unreclaimed(const uint64_t grace_start); int sqlite_query_reclaiming(const time_t grace_start); #endif /* _SQLITE_H */ -- 2.32.0 ================================================ FILE: package/nfs-utils/Config.in ================================================ comment "nfs-utils needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_NFS_UTILS bool "nfs-utils" depends on BR2_TOOLCHAIN_HAS_THREADS # libtirpc, rpcbind depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBTIRPC # IPv6 requires libtirpc select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help The NFS Linux kernel server. http://linux-nfs.org/ if BR2_PACKAGE_NFS_UTILS config BR2_PACKAGE_NFS_UTILS_NFSV4 bool "NFSv4/NFSv4.1" depends on !BR2_STATIC_LIBS # keyutils, lvm2 select BR2_PACKAGE_KEYUTILS select BR2_PACKAGE_LIBEVENT select BR2_PACKAGE_LVM2 select BR2_PACKAGE_SQLITE help Enable NFSv4/NFSv4.1 support comment "NFSv4/NFSv4.1 support needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_NFS_UTILS_GSS bool "gss" depends on BR2_PACKAGE_NFS_UTILS_NFSV4 select BR2_PACKAGE_LIBTIRPC_GSS help Enable GSS support config BR2_PACKAGE_NFS_UTILS_RPCDEBUG bool "rpcdebug" help The RPC debugging utility config BR2_PACKAGE_NFS_UTILS_RPC_LOCKD bool "rpc.lockd" help NFS lock manager for Linux kernels older than 2.4 config BR2_PACKAGE_NFS_UTILS_RPC_NFSD bool "rpc.nfsd" default y select BR2_PACKAGE_RPCBIND # runtime help NFS server config BR2_PACKAGE_NFS_UTILS_RPC_RQUOTAD bool "rpc.rquotad" help NFS remote quota server endif ================================================ FILE: package/nfs-utils/S60nfs ================================================ #!/bin/sh # # nfs This shell script takes care of starting and stopping # the NFS services. Stolen from RedHat FC5. mkdir -p /var/lock/subsys mkdir -p /run/nfs/sm mkdir -p /run/nfs/sm.bak touch /run/nfs/rmtab CFG_FILE=/etc/default/nfsd NR_THREADS=2 if [ -f "${CFG_FILE}" ]; then . "${CFG_FILE}" fi start() { # Start daemons. printf "Starting NFS statd: " rpc.statd [ $? = 0 ] && echo "OK" || echo "FAIL" touch /var/lock/subsys/nfslock printf "Starting NFS services: " /usr/sbin/exportfs -r [ $? = 0 ] && echo "OK" || echo "FAIL" printf "Starting NFS daemon: " rpc.nfsd ${NR_THREADS} [ $? = 0 ] && echo "OK" || echo "FAIL" printf "Starting NFS mountd: " rpc.mountd [ $? = 0 ] && echo "OK" || echo "FAIL" touch /var/lock/subsys/nfs } stop() { # Stop daemons. printf "Shutting down NFS mountd: " killall -q rpc.mountd 2>/dev/null [ $? = 0 ] && echo "OK" || echo "FAIL" printf "Shutting down NFS daemon: " killall -q nfsd 2>/dev/null [ $? = 0 ] && echo "OK" || echo "FAIL" printf "Shutting down NFS services: " /usr/sbin/exportfs -au [ $? = 0 ] && echo "OK" || echo "FAIL" printf "Stopping NFS statd: " 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: $0 {start|stop|restart|reload}" exit 1 esac exit 0 ================================================ FILE: package/nfs-utils/nfs-utils.hash ================================================ # From https://www.kernel.org/pub/linux/utils/nfs-utils/2.5.4/sha256sums.asc sha256 51997d94e4c8bcef5456dd36a9ccc38e231207c4e9b6a9a2c108841e6aebe3dd nfs-utils-2.5.4.tar.xz # Locally computed sha256 576540abf5e95029ad4ad90e32071385a5e95b2c30708c706116f3eb87b9a3de COPYING ================================================ FILE: package/nfs-utils/nfs-utils.mk ================================================ ################################################################################ # # nfs-utils # ################################################################################ NFS_UTILS_VERSION = 2.5.4 NFS_UTILS_SOURCE = nfs-utils-$(NFS_UTILS_VERSION).tar.xz NFS_UTILS_SITE = https://www.kernel.org/pub/linux/utils/nfs-utils/$(NFS_UTILS_VERSION) NFS_UTILS_LICENSE = GPL-2.0+ NFS_UTILS_LICENSE_FILES = COPYING NFS_UTILS_DEPENDENCIES = host-nfs-utils host-pkgconf libtirpc util-linux NFS_UTILS_CPE_ID_VENDOR = linux-nfs NFS_UTILS_AUTORECONF = YES NFS_UTILS_CONF_ENV = knfsd_cv_bsd_signals=no NFS_UTILS_CONF_OPTS = \ --enable-tirpc \ --enable-ipv6 \ --without-tcp-wrappers \ --with-statedir=/run/nfs \ --with-rpcgen=$(HOST_DIR)/bin/rpcgen HOST_NFS_UTILS_DEPENDENCIES = host-pkgconf host-libtirpc HOST_NFS_UTILS_CONF_OPTS = \ --enable-tirpc \ --disable-nfsv4 \ --disable-nfsv41 \ --disable-gss \ --disable-uuid \ --disable-ipv6 \ --without-tcp-wrappers \ --with-statedir=/run/nfs \ --disable-caps \ --without-systemd \ --with-rpcgen=internal \ --with-tirpcinclude=$(HOST_DIR)/include/tirpc NFS_UTILS_TARGETS_$(BR2_PACKAGE_NFS_UTILS_RPCDEBUG) += usr/sbin/rpcdebug NFS_UTILS_TARGETS_$(BR2_PACKAGE_NFS_UTILS_RPC_LOCKD) += usr/sbin/rpc.lockd NFS_UTILS_TARGETS_$(BR2_PACKAGE_NFS_UTILS_RPC_RQUOTAD) += usr/sbin/rpc.rquotad NFS_UTILS_TARGETS_$(BR2_PACKAGE_NFS_UTILS_RPC_NFSD) += usr/sbin/exportfs \ usr/sbin/rpc.mountd usr/sbin/rpc.nfsd usr/lib/systemd/system/nfs-server.service ifeq ($(BR2_PACKAGE_NFS_UTILS_NFSV4),y) NFS_UTILS_CONF_OPTS += --enable-nfsv4 --enable-nfsv41 NFS_UTILS_DEPENDENCIES += keyutils libevent lvm2 sqlite else NFS_UTILS_CONF_OPTS += --disable-nfsv4 --disable-nfsv41 endif ifeq ($(BR2_PACKAGE_NFS_UTILS_GSS),y) NFS_UTILS_CONF_OPTS += \ --enable-gss \ --enable-svcgss \ --with-krb5=$(STAGING_DIR)/usr NFS_UTILS_DEPENDENCIES += libkrb5 else NFS_UTILS_CONF_OPTS += --disable-gss --disable-svcgss endif ifeq ($(BR2_PACKAGE_LIBCAP),y) NFS_UTILS_CONF_OPTS += --enable-caps NFS_UTILS_DEPENDENCIES += libcap else NFS_UTILS_CONF_OPTS += --disable-caps endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),y) NFS_UTILS_CONF_OPTS += --enable-uuid else NFS_UTILS_CONF_OPTS += --disable-uuid endif define NFS_UTILS_INSTALL_FIXUP cd $(TARGET_DIR) && rm -f $(NFS_UTILS_TARGETS_) touch $(TARGET_DIR)/etc/exports $(INSTALL) -D -m 644 \ $(@D)/utils/mount/nfsmount.conf $(TARGET_DIR)/etc/nfsmount.conf endef NFS_UTILS_POST_INSTALL_TARGET_HOOKS += NFS_UTILS_INSTALL_FIXUP ifeq ($(BR2_INIT_SYSTEMD),y) NFS_UTILS_CONF_OPTS += --with-systemd=/usr/lib/systemd/system NFS_UTILS_DEPENDENCIES += systemd else NFS_UTILS_CONF_OPTS += --without-systemd endif ifeq ($(BR2_PACKAGE_NFS_UTILS_RPC_NFSD),y) define NFS_UTILS_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_NFSD) endef define NFS_UTILS_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/nfs-utils/S60nfs \ $(TARGET_DIR)/etc/init.d/S60nfs endef endif define NFS_UTILS_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0755 package/nfs-utils/nfs-utils_env.sh \ $(TARGET_DIR)/usr/libexec/nfs-utils/nfs-utils_env.sh $(INSTALL) -D -m 0644 package/nfs-utils/nfs-utils_tmpfiles.conf \ $(TARGET_DIR)/usr/lib/tmpfiles.d/nfs-utils.conf endef define NFS_UTILS_REMOVE_NFSIOSTAT rm -f $(TARGET_DIR)/usr/sbin/nfsiostat endef # nfsiostat is interpreted python, so remove it unless it's in the target NFS_UTILS_POST_INSTALL_TARGET_HOOKS += $(if $(BR2_PACKAGE_PYTHON),,NFS_UTILS_REMOVE_NFSIOSTAT) define HOST_NFS_UTILS_BUILD_CMDS $(MAKE) -C $(@D)/tools/rpcgen endef define HOST_NFS_UTILS_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/tools/rpcgen/rpcgen $(HOST_DIR)/bin/rpcgen endef $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/nfs-utils/nfs-utils_env.sh ================================================ #!/bin/sh # This script is empty, it simply needs to exist to make the # nfs-config.service happy. ================================================ FILE: package/nfs-utils/nfs-utils_tmpfiles.conf ================================================ d /run/nfs/sm 0700 root root - d /run/nfs/sm.bak 0700 root root - f /run/nfs/rmtab 0644 root root - f /run/nfs/etab 0644 root root - ================================================ FILE: package/nftables/Config.in ================================================ config BR2_PACKAGE_NFTABLES bool "nftables" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 select BR2_PACKAGE_LIBMNL select BR2_PACKAGE_LIBNFTNL help nftables is the project that aims to replace the existing {ip,ip6,arp,eb}tables framework. Basically, this project provides a new packet filtering framework, a new userspace utility and also a compatibility layer for {ip,ip6}tables. http://www.netfilter.org/projects/nftables/index.html comment "nftables needs a toolchain w/ wchar, headers >= 3.12" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 ================================================ FILE: package/nftables/nftables.hash ================================================ # From https://netfilter.org/projects/nftables/downloads.html sha256 58bf547daf967a2b88ecb4f425f126006ebde22711db806b25c1d6cf84fe45f4 nftables-1.0.0.tar.bz2 sha256 c17bc4fa5b2434c6f283ffcb2312e5bf3c7cdf5787b79505f094d8de734ac53e COPYING ================================================ FILE: package/nftables/nftables.mk ================================================ ################################################################################ # # nftables # ################################################################################ NFTABLES_VERSION = 1.0.0 NFTABLES_SOURCE = nftables-$(NFTABLES_VERSION).tar.bz2 NFTABLES_SITE = https://www.netfilter.org/projects/nftables/files NFTABLES_DEPENDENCIES = libmnl libnftnl host-pkgconf $(TARGET_NLS_DEPENDENCIES) NFTABLES_LICENSE = GPL-2.0 NFTABLES_LICENSE_FILES = COPYING NFTABLES_CONF_OPTS = --disable-debug --disable-man-doc --disable-pdf-doc NFTABLES_SELINUX_MODULES = iptables ifeq ($(BR2_PACKAGE_GMP),y) NFTABLES_DEPENDENCIES += gmp NFTABLES_CONF_OPTS += --without-mini-gmp else NFTABLES_CONF_OPTS += --with-mini-gmp endif ifeq ($(BR2_PACKAGE_READLINE),y) NFTABLES_DEPENDENCIES += readline NFTABLES_LIBS += -lncurses else NFTABLES_CONF_OPTS += --without-cli endif ifeq ($(BR2_PACKAGE_JANSSON),y) NFTABLES_DEPENDENCIES += jansson NFTABLES_CONF_OPTS += --with-json else NFTABLES_CONF_OPTS += --without-json endif ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y) NFTABLES_CONF_OPTS += --enable-python NFTABLES_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON),python,python3) else NFTABLES_CONF_OPTS += --disable-python endif ifeq ($(BR2_STATIC_LIBS)$(BR2_PACKAGE_LIBNFTNL_JSON),yy) NFTABLES_LIBS += -ljansson -lm endif NFTABLES_CONF_ENV = LIBS="$(NFTABLES_LIBS)" define NFTABLES_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER) $(call KCONFIG_ENABLE_OPT,CONFIG_NF_TABLES) $(call KCONFIG_ENABLE_OPT,CONFIG_NF_TABLES_INET) endef $(eval $(autotools-package)) ================================================ FILE: package/nghttp2/Config.in ================================================ config BR2_PACKAGE_NGHTTP2 bool "nghttp2" help nghttp2 is an implementation of HTTP/2 and its header compression algorithm HPACK in C. https://nghttp2.org/ ================================================ FILE: package/nghttp2/nghttp2.hash ================================================ # Locally calculated sha256 eacc6f0f8543583ecd659faf0a3f906ed03826f1d4157b536b4b385fe47c5bb8 nghttp2-1.41.0.tar.gz sha256 6b94f3abc1aabd0c72a7c7d92a77f79dda7c8a0cb3df839a97890b4116a2de2a COPYING ================================================ FILE: package/nghttp2/nghttp2.mk ================================================ ################################################################################ # # nghttp2 # ################################################################################ NGHTTP2_VERSION = 1.41.0 NGHTTP2_SITE = https://github.com/nghttp2/nghttp2/releases/download/v$(NGHTTP2_VERSION) NGHTTP2_LICENSE = MIT NGHTTP2_LICENSE_FILES = COPYING NGHTTP2_INSTALL_STAGING = YES NGHTTP2_CPE_ID_VENDOR = nghttp2 NGHTTP2_DEPENDENCIES = host-pkgconf NGHTTP2_CONF_OPTS = --enable-lib-only define NGHTTP2_INSTALL_CLEAN_HOOK # Remove fetch-ocsp-response script unused by library $(Q)$(RM) -rf $(TARGET_DIR)/usr/share/nghttp2 endef NGHTTP2_POST_INSTALL_TARGET_HOOKS += NGHTTP2_INSTALL_CLEAN_HOOK $(eval $(autotools-package)) ================================================ FILE: package/nginx/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch ================================================ From fb158af083e72c9aa0a8dfd4c6965f950192a230 Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Tue, 4 Jul 2017 11:09:20 -0400 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 runtime. This way, it does not break when cross-compiling for a different CPU architecture. 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 Signed-off-by: Adam Duskett Refresh for 1.12.0 --- auto/types/sizeof | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/auto/types/sizeof b/auto/types/sizeof index 480d8cf..61dcd2d 100644 --- a/auto/types/sizeof +++ b/auto/types/sizeof @@ -14,7 +14,7 @@ END ngx_size= -cat << END > $NGX_AUTOTEST.c +cat << _EOF > $NGX_AUTOTEST.c #include #include @@ -25,22 +25,41 @@ $NGX_INCLUDE_UNISTD_H $NGX_INCLUDE_INTTYPES_H $NGX_INCLUDE_AUTO_CONFIG_H -int main(void) { - printf("%d", (int) sizeof($ngx_type)); +#if !defined( PASTE) +#define PASTE2( x, y) x##y +#define PASTE( x, y) PASTE2( x, y) +#endif /* PASTE */ + +#define SAY_IF_SIZEOF( typename, type, size) \\ + static char PASTE( PASTE( PASTE( sizeof_, typename), _is_), size) \\ + [(sizeof(type) == (size)) ? 1 : -1] + +SAY_IF_SIZEOF(TEST_TYPENAME, TEST_TYPE, TEST_SIZE); + +int main(void) +{ return 0; } -END +_EOF -ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \ - -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs" +_ngx_typename=`echo "$ngx_type" | sed 's/ /_/g;s/\*/p/'` +ngx_size="-1" +ngx_size=`for i in 1 2 4 8 16 ; do \ + $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \ + -DTEST_TYPENAME="$_ngx_typename" -DTEST_TYPE="$ngx_type" -DTEST_SIZE="$i" \ + $NGX_AUTOTEST.c -o $NGX_AUTOTEST \ + $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 || continue ;\ + echo $i ; break ; done` -eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1" +rm -rf $NGX_AUTOTEST* +if test -z $ngx_size ; then + ngx_size=-1 +fi -if [ -x $NGX_AUTOTEST ]; then - ngx_size=`$NGX_AUTOTEST` +if [ $ngx_size -gt 0 ]; then echo " $ngx_size bytes" fi -- 2.9.4 ================================================ FILE: package/nginx/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch ================================================ From ef72be22ad6d58e230f75553d80b470b80c3303a Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Sun, 4 May 2014 00:40:49 +0200 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 variable can be set to the desired test result, and thus skip the test. Therefore, the generated config.h file will honor these presets. This mechanism aims to make easier cross-compilation support. Signed-off-by: Samuel Martin --- auto/feature | 80 ++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 59 insertions(+), 21 deletions(-) diff --git a/auto/feature b/auto/feature index 1145f28..a194b85 100644 --- a/auto/feature +++ b/auto/feature @@ -52,50 +52,88 @@ if [ -x $NGX_AUTOTEST ]; then case "$ngx_feature_run" in yes) - # /bin/sh is used to intercept "Killed" or "Abort trap" messages - if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then - echo " found" + if test -n "$ngx_feature_run_force_result" ; then + echo " not tested (maybe cross-compiling)" + if test -n "$ngx_feature_name" ; then + if test "$ngx_feature_run_force_result" = "yes" ; then + have=$ngx_have_feature . auto/have + fi + fi ngx_found=yes + else - if test -n "$ngx_feature_name"; then - have=$ngx_have_feature . auto/have + # /bin/sh is used to intercept "Killed" or "Abort trap" messages + if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then + echo " found" + ngx_found=yes + + if test -n "$ngx_feature_name"; then + have=$ngx_have_feature . auto/have + fi + + else + echo " found but is not working" fi - else - echo " found but is not working" fi ;; value) - # /bin/sh is used to intercept "Killed" or "Abort trap" messages - if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then - echo " found" + if test -n "$ngx_feature_run_force_result" ; then + echo " not tested (maybe cross-compiling)" + cat << END >> $NGX_AUTO_CONFIG_H + +#ifndef $ngx_feature_name +#define $ngx_feature_name $ngx_feature_run_force_result +#endif + +END ngx_found=yes + else - cat << END >> $NGX_AUTO_CONFIG_H + # /bin/sh is used to intercept "Killed" or "Abort trap" messages + if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then + echo " found" + ngx_found=yes + + cat << END >> $NGX_AUTO_CONFIG_H #ifndef $ngx_feature_name #define $ngx_feature_name `$NGX_AUTOTEST` #endif END - else - echo " found but is not working" + else + echo " found but is not working" + fi + fi ;; bug) - # /bin/sh is used to intercept "Killed" or "Abort trap" messages - if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then - echo " not found" - - else - echo " found" + if test -n "$ngx_feature_run_force_result" ; then + echo " not tested (maybe cross-compiling)" + if test -n "$ngx_feature_name"; then + if test "$ngx_feature_run_force_result" = "yes" ; then + have=$ngx_have_feature . auto/have + fi + fi ngx_found=yes + else - if test -n "$ngx_feature_name"; then - have=$ngx_have_feature . auto/have + # /bin/sh is used to intercept "Killed" or "Abort trap" messages + if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then + echo " not found" + + else + echo " found" + ngx_found=yes + + if test -n "$ngx_feature_name"; then + have=$ngx_have_feature . auto/have + fi fi + fi ;; -- 1.9.2 ================================================ FILE: package/nginx/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch ================================================ From 57d9d632be9a9f7e3ac00f9eb10b069afd0b1543 Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Thu, 29 May 2014 18:52:10 +0200 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 ngx_force_*) used to set ngx_feature_run_force_result. These ngx_force_* variables are passed through the environment at configure time. Signed-off-by: Samuel Martin Refresh for 1.8.0. Signed-off-by: Danomi Manchego [rebased against v1.20.1] Signed-off-by: Adam Duskett --- auto/cc/conf | 3 +++ auto/cc/name | 1 + auto/lib/libatomic/conf | 1 + auto/os/darwin | 3 +++ auto/os/linux | 4 ++++ auto/unix | 7 +++++++ 6 files changed, 19 insertions(+) diff --git a/auto/cc/conf b/auto/cc/conf index afbca62b..ad42c800 100644 --- a/auto/cc/conf +++ b/auto/cc/conf @@ -184,6 +184,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then ngx_feature="gcc builtin atomic operations" ngx_feature_name=NGX_HAVE_GCC_ATOMIC ngx_feature_run=yes + ngx_feature_run_force_result="$ngx_force_gcc_have_atomic" ngx_feature_incs= ngx_feature_path= ngx_feature_libs= @@ -205,6 +206,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then ngx_feature="C99 variadic macros" ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS" ngx_feature_run=yes + ngx_feature_run_force_result="$ngx_force_c99_have_variadic_macros" ngx_feature_incs="#include #define var(dummy, ...) sprintf(__VA_ARGS__)" ngx_feature_path= @@ -219,6 +221,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then ngx_feature="gcc variadic macros" ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS" ngx_feature_run=yes + ngx_feature_run_force_result="$ngx_force_gcc_have_variadic_macros" ngx_feature_incs="#include #define var(dummy, args...) sprintf(args)" ngx_feature_path= diff --git a/auto/cc/name b/auto/cc/name index ded93f5b..7c3cb74a 100644 --- a/auto/cc/name +++ b/auto/cc/name @@ -8,6 +8,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then ngx_feature="C compiler" ngx_feature_name= ngx_feature_run=yes + ngx_feature_run_force_result="$ngx_force_c_compiler" ngx_feature_incs= ngx_feature_path= ngx_feature_libs= diff --git a/auto/lib/libatomic/conf b/auto/lib/libatomic/conf index d1e484ab..37249161 100644 --- a/auto/lib/libatomic/conf +++ b/auto/lib/libatomic/conf @@ -15,6 +15,7 @@ else ngx_feature="atomic_ops library" ngx_feature_name=NGX_HAVE_LIBATOMIC ngx_feature_run=yes + ngx_feature_run_force_result="$ngx_force_have_libatomic" ngx_feature_incs="#define AO_REQUIRE_CAS #include " ngx_feature_path= diff --git a/auto/os/darwin b/auto/os/darwin index 429468f7..1ed47cca 100644 --- a/auto/os/darwin +++ b/auto/os/darwin @@ -33,6 +33,7 @@ NGX_KQUEUE_CHECKED=YES ngx_feature="kqueue's EVFILT_TIMER" ngx_feature_name="NGX_HAVE_TIMER_EVENT" ngx_feature_run=yes +ngx_feature_run_force_result="$ngx_force_have_timer_event" ngx_feature_incs="#include #include " ngx_feature_path= @@ -63,6 +64,7 @@ ngx_feature_test="int kq; ngx_feature="Darwin 64-bit kqueue millisecond timeout bug" ngx_feature_name=NGX_DARWIN_KEVENT_BUG ngx_feature_run=bug +ngx_feature_run_force_result="$ngx_force_kevent_bug" ngx_feature_incs="#include #include " ngx_feature_path= @@ -92,6 +94,7 @@ ngx_feature_test="int kq; ngx_feature="sendfile()" ngx_feature_name="NGX_HAVE_SENDFILE" ngx_feature_run=yes +ngx_feature_run_force_result="$ngx_force_have_sendfile" ngx_feature_incs="#include #include #include diff --git a/auto/os/linux b/auto/os/linux index 2c8a9bb8..eb4513ee 100644 --- a/auto/os/linux +++ b/auto/os/linux @@ -37,6 +37,7 @@ fi ngx_feature="epoll" ngx_feature_name="NGX_HAVE_EPOLL" ngx_feature_run=yes +ngx_feature_run_force_result="$ngx_force_have_epoll" ngx_feature_incs="#include " ngx_feature_path= ngx_feature_libs= @@ -136,6 +137,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE" ngx_feature="sendfile()" ngx_feature_name="NGX_HAVE_SENDFILE" ngx_feature_run=yes +ngx_feature_run_force_result="$ngx_force_have_sendfile" ngx_feature_incs="#include #include " ngx_feature_path= @@ -157,6 +159,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" ngx_feature="sendfile64()" ngx_feature_name="NGX_HAVE_SENDFILE64" ngx_feature_run=yes +ngx_feature_run_force_result="$ngx_force_have_sendfile64" ngx_feature_incs="#include #include " ngx_feature_path= @@ -175,6 +178,7 @@ ngx_include="sys/prctl.h"; . auto/include ngx_feature="prctl(PR_SET_DUMPABLE)" ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE" ngx_feature_run=yes +ngx_feature_run_force_result="$ngx_force_have_pr_set_dumpable" ngx_feature_incs="#include " ngx_feature_path= ngx_feature_libs= diff --git a/auto/unix b/auto/unix index 43d3b25a..3da00537 100644 --- a/auto/unix +++ b/auto/unix @@ -100,6 +100,7 @@ if test -z "$NGX_KQUEUE_CHECKED"; then ngx_feature="kqueue's EVFILT_TIMER" ngx_feature_name="NGX_HAVE_TIMER_EVENT" ngx_feature_run=yes + ngx_feature_run_force_result="$ngx_force_have_timer_event" ngx_feature_incs="#include #include " ngx_feature_path= @@ -722,6 +723,7 @@ if [ $ngx_found = no ]; then ngx_feature="sys_nerr" ngx_feature_name="NGX_SYS_NERR" ngx_feature_run=value + ngx_feature_run_force_result="$ngx_force_sys_nerr" ngx_feature_incs='#include #include ' ngx_feature_path= @@ -737,6 +739,7 @@ if [ $ngx_found = no ]; then ngx_feature="_sys_nerr" ngx_feature_name="NGX_SYS_NERR" ngx_feature_run=value + ngx_feature_run_force_result="$ngx_force_sys_nerr" ngx_feature_incs='#include #include ' ngx_feature_path= @@ -806,6 +809,7 @@ ngx_feature_test="void *p; p = memalign(4096, 4096); ngx_feature="mmap(MAP_ANON|MAP_SHARED)" ngx_feature_name="NGX_HAVE_MAP_ANON" ngx_feature_run=yes +ngx_feature_run_force_result="$ngx_force_have_map_anon" ngx_feature_incs="#include " ngx_feature_path= ngx_feature_libs= @@ -819,6 +823,7 @@ ngx_feature_test="void *p; ngx_feature='mmap("/dev/zero", MAP_SHARED)' ngx_feature_name="NGX_HAVE_MAP_DEVZERO" ngx_feature_run=yes +ngx_feature_run_force_result="$ngx_force_have_map_devzero" ngx_feature_incs="#include #include #include " @@ -834,6 +839,7 @@ ngx_feature_test='void *p; int fd; ngx_feature="System V shared memory" ngx_feature_name="NGX_HAVE_SYSVSHM" ngx_feature_run=yes +ngx_feature_run_force_result="$ngx_force_have_sysvshm" ngx_feature_incs="#include #include " ngx_feature_path= @@ -848,6 +854,7 @@ ngx_feature_test="int id; ngx_feature="POSIX semaphores" ngx_feature_name="NGX_HAVE_POSIX_SEM" ngx_feature_run=yes +ngx_feature_run_force_result="$ngx_force_have_posix_sem" ngx_feature_incs="#include " ngx_feature_path= ngx_feature_libs= -- 2.17.1 ================================================ FILE: package/nginx/0004-auto-lib-libxslt-conf-use-pkg-config.patch ================================================ From 7783d63c87f94797aa134786214b0a84c000be75 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 [Peter: updated for 1.15.6] Signed-off-by: Peter Korsgaard --- auto/lib/libxslt/conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/auto/lib/libxslt/conf b/auto/lib/libxslt/conf index 3063ac7c..3209e364 100644 --- a/auto/lib/libxslt/conf +++ b/auto/lib/libxslt/conf @@ -12,8 +12,9 @@ #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 -re 's/(^|\s)-I\s*(\S+)/\1\2/g')" + ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs libxslt)" ngx_feature_test="xmlParserCtxtPtr ctxt = NULL; xsltStylesheetPtr sheet = NULL; xmlDocPtr doc = NULL; -- 2.11.0 ================================================ FILE: package/nginx/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch ================================================ From 08617a8d29ee22831175697555558fec8f52772c Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Sun, 1 Jun 2014 16:05:04 +0200 Subject: [PATCH] auto/unix: make sys_nerr guessing cross-friendly This patch replaces the default sys_nerr runtest with a test done at buildtime. The idea behind this buildtime test is finding the value of the ERR_MAX macro if defined, or the EHWPOISON (which is currently the last errno) otherwise. Signed-off-by: Samuel Martin Refresh for 1.8.0. Signed-off-by: Danomi Manchego [rebased against v1.20.1] Signed-off-by: Adam Duskett --- auto/os/sys_nerr | 78 ++++++++++++++++++++++++++++++++++++++++++++++++ auto/unix | 8 +++++ 2 files changed, 86 insertions(+) create mode 100644 auto/os/sys_nerr diff --git a/auto/os/sys_nerr b/auto/os/sys_nerr new file mode 100644 index 0000000..8970f5f --- /dev/null +++ b/auto/os/sys_nerr @@ -0,0 +1,78 @@ + +# Copyright (C) Samuel Martin + + +echo $ngx_n "checking for sys_nerr value...$ngx_c" + +# sys_nerr guessing is done using a (very) poor (but working) +# heuristics, by checking for the value of ERR_MAX if defined, or +# EHWPOISON otherwise. + +cat << END >> $NGX_AUTOCONF_ERR + +---------------------------------------- +checking for sys_nerr value + +END + +ngx_sys_nerr= + +cat << _EOF > $NGX_AUTOTEST.c + +#include +#include + +static char sys_nerr_test[ERR_MAX]; +int main(void) +{ + return 0; +} + +_EOF + +if $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \ + $NGX_AUTOTEST.c -o $NGX_AUTOTEST \ + $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 ; then + _ngx_max_err_macro=ERR_MAX +else + # the +2 has been empirically found! + _ngx_max_err_macro="EHWPOISON + 2" +fi + +cat << _EOF > $NGX_AUTOTEST.c + +#include +#include + +static char sys_nerr_test[(TEST_ERR_MAX == $_ngx_max_err_macro) ? 1 : -1]; +int main(void) +{ + return 0; +} + +_EOF + + +ngx_sys_nerr=`for i in $(seq 0 2000) ; do \ + $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \ + -DTEST_ERR_MAX="$i" \ + $NGX_AUTOTEST.c -o $NGX_AUTOTEST \ + $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 || continue ;\ + echo $i ; break ; done` + +rm -rf $NGX_AUTOTEST* + +if test -z $ngx_sys_nerr ; then + ngx_size=0 + ngx_sys_nerr=0 +fi + +cat << END >> $NGX_AUTO_CONFIG_H + +#ifndef $ngx_feature_name +#define $ngx_feature_name $ngx_sys_nerr +#endif + +END + +echo " $ngx_sys_nerr" diff --git a/auto/unix b/auto/unix index 7dbf9d1..00a7370 100755 --- a/auto/unix +++ b/auto/unix @@ -744,10 +744,18 @@ if [ $ngx_found = no ]; then #include ' ngx_feature_path= ngx_feature_libs= + if false ; then + # Disabled because only valid for native build. ngx_feature_test='printf("%d", _sys_nerr);' . auto/feature fi +else + # Cross-compilation support + . auto/os/sys_nerr + +fi + ngx_feature="localtime_r()" ngx_feature_name="NGX_HAVE_LOCALTIME_R" -- 1.9.1 ================================================ FILE: package/nginx/0006-auto-lib-openssl-conf-use-pkg-config.patch ================================================ From 4ba4b1e0bd1b69e124eb34c95ae9e7c087370efa 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 | 187 +++++++++++++++++++++--------------------- 1 file changed, 94 insertions(+), 93 deletions(-) diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf index 4fb52df7..9f30490d 100644 --- a/auto/lib/openssl/conf +++ b/auto/lib/openssl/conf @@ -1,4 +1,3 @@ - # Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. @@ -7,123 +6,125 @@ if [ $OPENSSL != NONE ]; then case "$CC" in - cl | bcc32) - have=NGX_OPENSSL . auto/have - have=NGX_SSL . auto/have - - CFLAGS="$CFLAGS -DNO_SYS_TYPES_H" - - CORE_INCS="$CORE_INCS $OPENSSL/openssl/include" - CORE_DEPS="$CORE_DEPS $OPENSSL/openssl/include/openssl/ssl.h" - - if [ -f $OPENSSL/ms/do_ms.bat ]; then - # before OpenSSL 1.1.0 - CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib" - CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib" - else - # OpenSSL 1.1.0+ - CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libssl.lib" - CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libcrypto.lib" - fi - - # libeay32.lib requires gdi32.lib - CORE_LIBS="$CORE_LIBS gdi32.lib" - # OpenSSL 1.0.0 requires crypt32.lib - CORE_LIBS="$CORE_LIBS crypt32.lib" - ;; - - *) - have=NGX_OPENSSL . auto/have - have=NGX_SSL . auto/have - - CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include" - CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h" - CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a" - CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a" - CORE_LIBS="$CORE_LIBS $NGX_LIBDL" - CORE_LIBS="$CORE_LIBS $NGX_LIBPTHREAD" - - if [ "$NGX_PLATFORM" = win32 ]; then - CORE_LIBS="$CORE_LIBS -lgdi32 -lcrypt32 -lws2_32" - fi - ;; + cl | bcc32) + have=NGX_OPENSSL . auto/have + have=NGX_SSL . auto/have + + CFLAGS="$CFLAGS -DNO_SYS_TYPES_H" + + CORE_INCS="$CORE_INCS $OPENSSL/openssl/include" + CORE_DEPS="$CORE_DEPS $OPENSSL/openssl/include/openssl/ssl.h" + + if [ -f $OPENSSL/ms/do_ms.bat ]; then + # before OpenSSL 1.1.0 + CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib" + CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib" + else + # OpenSSL 1.1.0+ + CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libssl.lib" + CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libcrypto.lib" + fi + + # libeay32.lib requires gdi32.lib + CORE_LIBS="$CORE_LIBS gdi32.lib" + # OpenSSL 1.0.0 requires crypt32.lib + CORE_LIBS="$CORE_LIBS crypt32.lib" + ;; + + *) + have=NGX_OPENSSL . auto/have + have=NGX_SSL . auto/have + + CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include" + CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h" + CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a" + CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a" + CORE_LIBS="$CORE_LIBS $NGX_LIBDL" + CORE_LIBS="$CORE_LIBS $NGX_LIBPTHREAD" + + if [ "$NGX_PLATFORM" = win32 ]; then + CORE_LIBS="$CORE_LIBS -lgdi32 -lcrypt32 -lws2_32" + fi + ;; esac else if [ "$NGX_PLATFORM" != win32 ]; then - OPENSSL=NO + OPENSSL=NO - ngx_feature="OpenSSL library" - ngx_feature_name="NGX_OPENSSL" - ngx_feature_run=no - ngx_feature_incs="#include " - ngx_feature_path= - ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL $NGX_LIBPTHREAD" - ngx_feature_test="SSL_CTX_set_options(NULL, 0)" - . auto/feature + ngx_feature="OpenSSL library" + ngx_feature_name="NGX_OPENSSL" + ngx_feature_run=no + ngx_feature_incs="#include " + ngx_feature_path= + ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I openssl| + sed -re 's/(^|\s)-I\s*(\S+)/\1\2/g')" + ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs openssl)" + ngx_feature_test="SSL_CTX_set_options(NULL, 0)" + . auto/feature - if [ $ngx_found = no ]; then + if [ $ngx_found = no ]; then - # FreeBSD port + # FreeBSD port - ngx_feature="OpenSSL library in /usr/local/" - ngx_feature_path="/usr/local/include" + ngx_feature="OpenSSL library in /usr/local/" + ngx_feature_path="/usr/local/include" - if [ $NGX_RPATH = YES ]; then - ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lssl -lcrypto" - else - ngx_feature_libs="-L/usr/local/lib -lssl -lcrypto" - fi + if [ $NGX_RPATH = YES ]; then + ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lssl -lcrypto" + else + ngx_feature_libs="-L/usr/local/lib -lssl -lcrypto" + fi - ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD" + ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD" - . auto/feature - fi + . auto/feature + fi - if [ $ngx_found = no ]; then + if [ $ngx_found = no ]; then - # NetBSD port + # NetBSD port - ngx_feature="OpenSSL library in /usr/pkg/" - ngx_feature_path="/usr/pkg/include" + ngx_feature="OpenSSL library in /usr/pkg/" + ngx_feature_path="/usr/pkg/include" - if [ $NGX_RPATH = YES ]; then - ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lssl -lcrypto" - else - ngx_feature_libs="-L/usr/pkg/lib -lssl -lcrypto" - fi + if [ $NGX_RPATH = YES ]; then + ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lssl -lcrypto" + else + ngx_feature_libs="-L/usr/pkg/lib -lssl -lcrypto" + fi - ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD" + ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD" - . auto/feature - fi + . auto/feature + fi - if [ $ngx_found = no ]; then + if [ $ngx_found = no ]; then - # MacPorts + # MacPorts - ngx_feature="OpenSSL library in /opt/local/" - ngx_feature_path="/opt/local/include" + ngx_feature="OpenSSL library in /opt/local/" + ngx_feature_path="/opt/local/include" - if [ $NGX_RPATH = YES ]; then - ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lssl -lcrypto" - else - ngx_feature_libs="-L/opt/local/lib -lssl -lcrypto" - fi + if [ $NGX_RPATH = YES ]; then + ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lssl -lcrypto" + else + ngx_feature_libs="-L/opt/local/lib -lssl -lcrypto" + fi - ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD" + ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD" - . auto/feature - fi + . auto/feature + fi - if [ $ngx_found = yes ]; then - have=NGX_SSL . auto/have - CORE_INCS="$CORE_INCS $ngx_feature_path" - CORE_LIBS="$CORE_LIBS $ngx_feature_libs" - OPENSSL=YES - fi + if [ $ngx_found = yes ]; then + have=NGX_SSL . auto/have + CORE_INCS="$CORE_INCS $ngx_feature_path" + CORE_LIBS="$CORE_LIBS $ngx_feature_libs" + OPENSSL=YES + fi fi if [ $OPENSSL != YES ]; then @@ -136,7 +137,7 @@ into the system, or build the OpenSSL library statically from the source with nginx by using --with-openssl= option. END - exit 1 + exit 1 fi fi -- 2.17.1 ================================================ FILE: package/nginx/0007-auto-lib-libgd-conf-use-pkg-config.patch ================================================ From 0551f2e5eb4143be0aacc0185cdc4afc9ca80204 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 [Peter: updated for 1.15.6] Signed-off-by: Peter Korsgaard [Fabrice: use pkg-config instead of gdlib-config] Signed-off-by: Fabrice Fontaine --- 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 67863976..1a4379a5 100644 --- a/auto/lib/libgd/conf +++ b/auto/lib/libgd/conf @@ -7,8 +7,9 @@ ngx_feature_name= ngx_feature_run=no ngx_feature_incs="#include " - ngx_feature_path= - ngx_feature_libs="-lgd" + ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I gdlib| + sed -re 's/(^|\s)-I\s*(\S+)/\1\2/g')" + ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs gdlib)" ngx_feature_test="gdImagePtr img = gdImageCreateFromGifPtr(1, NULL); (void) img" . auto/feature -- 2.11.0 ================================================ FILE: package/nginx/0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch ================================================ 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 ================================================ FILE: package/nginx/0009-auto-os-linux-fix-build-with-libxcrypt.patch ================================================ From 79f1fe5251afc4e22a138b0c8f44fc9c94093b8b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 2 Apr 2021 09:18:26 +0200 Subject: [PATCH] auto/os/linux: fix build with libxcrypt If crypt_r is found in libcrypt, add -lcrypt to CORE_LIBS to avoid the following build failure with libxcrypt: objs/ngx_modules.o \ -lpcre -L/home/giuliobenetti/autobuild/run/instance-3/output-1/host/bin/../xtensa-buildroot-linux-uclibc/sysroot/usr/lib -lssl -lcrypto -L/home/giuliobenetti/autobuild/run/instance-3/output-1/host/bin/../xtensa-buildroot-linux-uclibc/sysroot/usr/lib -lxslt -lxml2 -lGeoIP \ -Wl,-E /home/giuliobenetti/autobuild/run/instance-3/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/9.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: objs/src/os/unix/ngx_user.o:/home/giuliobenetti/autobuild/run/instance-3/output-1/build/nginx-1.18.0/src/os/unix/ngx_user.c:18: undefined reference to `crypt_r' Fixes: - http://autobuild.buildroot.org/results/79a51b0d348e756517b5c9ce815a67f5c657e7e6 Signed-off-by: Fabrice Fontaine --- auto/os/linux | 3 +++ 1 file changed, 3 insertions(+) diff --git a/auto/os/linux b/auto/os/linux index 5e280eca..04682812 100644 --- a/auto/os/linux +++ b/auto/os/linux @@ -232,6 +232,9 @@ ngx_feature_test="struct crypt_data cd; crypt_r(\"key\", \"salt\", &cd);" . auto/feature +if [ $ngx_found = yes ]; then + CORE_LIBS="$CORE_LIBS $ngx_feature_libs" +fi ngx_include="sys/vfs.h"; . auto/include -- 2.30.2 ================================================ FILE: package/nginx/0010-Allow-forcing-of-endianness-for-cross-compilation.patch ================================================ From 4bd8fe780ff2064f2d4e9c905d8a98dd0f9b6191 Mon Sep 17 00:00:00 2001 From: Nevo Hed Date: Mon, 30 Aug 2021 13:28:13 -0400 Subject: [PATCH] Allow forcing of endianness for cross-compilation Upstream-status: Invalid (upstream doesn't support cross-compilation) See https://trac.nginx.org/nginx/ticket/2240 Signed-off-by: Nevo Hed --- auto/endianness | 61 ++++++++++++++++++++++++++++++++----------------- auto/options | 6 +++++ 2 files changed, 46 insertions(+), 21 deletions(-) diff --git a/auto/endianness b/auto/endianness index 1b552b6b..4b2a3cd7 100644 --- a/auto/endianness +++ b/auto/endianness @@ -26,25 +26,44 @@ int main(void) { END -ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \ - -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs" - -eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1" - -if [ -x $NGX_AUTOTEST ]; then - if $NGX_AUTOTEST >/dev/null 2>&1; then - echo " little endian" +case "${NGX_FORCE_ENDIANNESS}" in + little) + echo " little endian (forced)" have=NGX_HAVE_LITTLE_ENDIAN . auto/have - else - echo " big endian" - fi - - rm -rf $NGX_AUTOTEST* - -else - rm -rf $NGX_AUTOTEST* - - echo - echo "$0: error: cannot detect system byte ordering" - exit 1 -fi + ;; + + big) + echo " big endian (forced)" + ;; + + "") + ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \ + -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs" + + eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1" + + if [ -x $NGX_AUTOTEST ]; then + if $NGX_AUTOTEST >/dev/null 2>&1; then + echo " little endian" + have=NGX_HAVE_LITTLE_ENDIAN . auto/have + else + echo " big endian" + fi + + rm -rf $NGX_AUTOTEST* + + else + rm -rf $NGX_AUTOTEST* + + echo + echo "$0: error: cannot detect system byte ordering" + exit 1 + fi + ;; + + *) + echo + echo "$0: error: invalid \"--force-endianness=${NGX_FORCE_ENDIANNESS}\"" + exit 1 + ;; +esac diff --git a/auto/options b/auto/options index 80be906e..85a06456 100644 --- a/auto/options +++ b/auto/options @@ -17,6 +17,8 @@ NGX_USER= NGX_GROUP= NGX_BUILD= +NGX_FORCE_ENDIANNESS= + CC=${CC:-cc} CPP= NGX_OBJS=objs @@ -196,6 +198,8 @@ do --user=*) NGX_USER="$value" ;; --group=*) NGX_GROUP="$value" ;; + --force-endianness=*) NGX_FORCE_ENDIANNESS="$value" ;; + --crossbuild=*) NGX_PLATFORM="$value" ;; --build=*) NGX_BUILD="$value" ;; @@ -432,6 +436,8 @@ cat << END --build=NAME set build name --builddir=DIR set build directory + --force-endianness=| force endianness + --with-select_module enable select module --without-select_module disable select module --with-poll_module enable poll module -- 2.31.1 ================================================ FILE: package/nginx/Config.in ================================================ 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. http://nginx.org/ if BR2_PACKAGE_NGINX config BR2_PACKAGE_NGINX_FILE_AIO bool "file AIO support" # Does not build, because nginx hardcodes using SYS_eventfd, # but it's available on neither AArch64 nor ARC where only # eventfd() is available. See # https://bugs.launchpad.net/linaro-aarch64/+bug/1160013 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 if BR2_PACKAGE_NGINX_HTTP config BR2_PACKAGE_NGINX_HTTP_CACHE bool "http cache support" select BR2_PACKAGE_OPENSSL comment "http modules" config BR2_PACKAGE_NGINX_HTTP_SSL_MODULE bool "ngx_http_ssl_module" select BR2_PACKAGE_OPENSSL help Enable ngx_http_ssl_module config BR2_PACKAGE_NGINX_HTTP_V2_MODULE bool "ngx_http_v2_module" select BR2_PACKAGE_ZLIB help Enable ngx_http_spdy_module config BR2_PACKAGE_NGINX_HTTP_REALIP_MODULE bool "ngx_http_realip_module" help Enable ngx_http_realip_module config BR2_PACKAGE_NGINX_HTTP_ADDITION_MODULE bool "ngx_http_addition_module" help Enable ngx_http_addition_module config BR2_PACKAGE_NGINX_HTTP_XSLT_MODULE bool "ngx_http_xslt_module" select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_LIBXSLT help Enable ngx_http_xslt_module config BR2_PACKAGE_NGINX_HTTP_IMAGE_FILTER_MODULE bool "ngx_http_image_filter_module" select BR2_PACKAGE_GD select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBPNG help Enable ngx_http_image_filter_module config BR2_PACKAGE_NGINX_HTTP_GEOIP_MODULE bool "ngx_http_geoip_module" select BR2_PACKAGE_GEOIP help Enable ngx_http_geoip_module config BR2_PACKAGE_NGINX_HTTP_SUB_MODULE bool "ngx_http_sub_module" help Enable ngx_http_sub_module config BR2_PACKAGE_NGINX_HTTP_DAV_MODULE bool "ngx_http_dav_module" help Enable ngx_http_dav_module config BR2_PACKAGE_NGINX_HTTP_FLV_MODULE bool "ngx_http_flv_module" help Enable ngx_http_flv_module config BR2_PACKAGE_NGINX_HTTP_MP4_MODULE bool "ngx_http_mp4_module" help Enable ngx_http_mp4_module config BR2_PACKAGE_NGINX_HTTP_GUNZIP_MODULE bool "ngx_http_gunzip_module" select BR2_PACKAGE_ZLIB help Enable ngx_http_gunzip_module config BR2_PACKAGE_NGINX_HTTP_GZIP_STATIC_MODULE bool "ngx_http_gzip_static_module" select BR2_PACKAGE_ZLIB help Enable ngx_http_gzip_static_module config BR2_PACKAGE_NGINX_HTTP_AUTH_REQUEST_MODULE bool "ngx_http_auth_request_module" help Enable ngx_http_auth_request_module config BR2_PACKAGE_NGINX_HTTP_RANDOM_INDEX_MODULE bool "ngx_http_random_index_module" help Enable ngx_http_random_index_module config BR2_PACKAGE_NGINX_HTTP_SECURE_LINK_MODULE bool "ngx_http_secure_link_module" select BR2_PACKAGE_OPENSSL help Enable ngx_http_secure_link_module config BR2_PACKAGE_NGINX_HTTP_DEGRADATION_MODULE bool "ngx_http_degradation_module" help Enable ngx_http_degradation_module config BR2_PACKAGE_NGINX_HTTP_SLICE_MODULE bool "ngx_http_slice_module" help Enable ngx_http_slice_module config BR2_PACKAGE_NGINX_HTTP_STUB_STATUS_MODULE bool "ngx_http_stub_status_module" help Enable ngx_http_stub_status_module config BR2_PACKAGE_NGINX_HTTP_CHARSET_MODULE bool "ngx_http_charset_module" default y help Enable ngx_http_charset_module config BR2_PACKAGE_NGINX_HTTP_GZIP_MODULE bool "ngx_http_gzip_module" default y select BR2_PACKAGE_ZLIB help Enable ngx_http_gzip_module config BR2_PACKAGE_NGINX_HTTP_SSI_MODULE bool "ngx_http_ssi_module" default y help Enable ngx_http_ssi_module config BR2_PACKAGE_NGINX_HTTP_USERID_MODULE bool "ngx_http_userid_module" default y help Enable ngx_http_userid_module config BR2_PACKAGE_NGINX_HTTP_ACCESS_MODULE bool "ngx_http_access_module" default y help Enable ngx_http_access_module config BR2_PACKAGE_NGINX_HTTP_AUTH_BASIC_MODULE bool "ngx_http_auth_basic_module" default y help Enable ngx_http_auth_basic_module config BR2_PACKAGE_NGINX_HTTP_AUTOINDEX_MODULE bool "ngx_http_autoindex_module" default y help Enable ngx_http_autoindex_module config BR2_PACKAGE_NGINX_HTTP_GEO_MODULE bool "ngx_http_geo_module" default y help Enable ngx_http_geo_module config BR2_PACKAGE_NGINX_HTTP_MAP_MODULE bool "ngx_http_map_module" default y help Enable ngx_http_map_module config BR2_PACKAGE_NGINX_HTTP_SPLIT_CLIENTS_MODULE bool "ngx_http_split_clients_module" default y help Enable ngx_http_split_clients_module config BR2_PACKAGE_NGINX_HTTP_REFERER_MODULE bool "ngx_http_referer_module" default y help Enable ngx_http_referer_module config BR2_PACKAGE_NGINX_HTTP_REWRITE_MODULE bool "ngx_http_rewrite_module" default y select BR2_PACKAGE_PCRE help Enable ngx_http_rewrite_module config BR2_PACKAGE_NGINX_HTTP_PROXY_MODULE bool "ngx_http_proxy_module" default y help Enable ngx_http_proxy_module config BR2_PACKAGE_NGINX_HTTP_FASTCGI_MODULE bool "ngx_http_fastcgi_module" default y help Enable ngx_http_fastcgi_module config BR2_PACKAGE_NGINX_HTTP_UWSGI_MODULE bool "ngx_http_uwsgi_module" default y help Enable ngx_http_uwsgi_module config BR2_PACKAGE_NGINX_HTTP_SCGI_MODULE bool "ngx_http_scgi_module" default y help Enable ngx_http_scgi_module config BR2_PACKAGE_NGINX_HTTP_MEMCACHED_MODULE bool "ngx_http_memcached_module" default y help Enable ngx_http_memcached_module config BR2_PACKAGE_NGINX_HTTP_LIMIT_CONN_MODULE bool "ngx_http_limit_conn_module" default y help Enable ngx_http_limit_conn_module config BR2_PACKAGE_NGINX_HTTP_LIMIT_REQ_MODULE bool "ngx_http_limit_req_module" default y help Enable ngx_http_limit_req_module config BR2_PACKAGE_NGINX_HTTP_EMPTY_GIF_MODULE bool "ngx_http_empty_gif_module" default y help Enable ngx_http_empty_gif_module config BR2_PACKAGE_NGINX_HTTP_BROWSER_MODULE bool "ngx_http_browser_module" default y help Enable ngx_http_browser_module config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_IP_HASH_MODULE bool "ngx_http_upstream_ip_hash_module" default y help Enable ngx_http_upstream_ip_hash_module config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_LEAST_CONN_MODULE bool "ngx_http_upstream_least_conn_module" default y help Enable ngx_http_upstream_least_conn_module config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_KEEPALIVE_MODULE bool "ngx_http_upstream_keepalive_module" default y help Enable ngx_http_upstream_keepalive_module config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_RANDOM_MODULE bool "ngx_http_upstream_random_module" default y help Enable ngx_http_upstream_random_module endif #BR2_PACKAGE_NGINX_HTTP config BR2_PACKAGE_NGINX_MAIL bool "mail proxy modules" if BR2_PACKAGE_NGINX_MAIL config BR2_PACKAGE_NGINX_MAIL_SSL_MODULE bool "ngx_mail_ssl_module" select BR2_PACKAGE_OPENSSL help Enable ngx_mail_ssl_module config BR2_PACKAGE_NGINX_MAIL_POP3_MODULE bool "ngx_mail_pop3_module" default y help Enable ngx_mail_pop3_module config BR2_PACKAGE_NGINX_MAIL_IMAP_MODULE bool "ngx_mail_imap_module" default y help Enable ngx_mail_imap_module config BR2_PACKAGE_NGINX_MAIL_SMTP_MODULE bool "ngx_mail_smtp_module" default y help Enable ngx_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_REALIP_MODULE bool "ngx_stream_realip_module" help Enable ngx_stream_realip_module config BR2_PACKAGE_NGINX_STREAM_SET_MODULE bool "ngx_stream_set_module" default y help Enable ngx_stream_set_module 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_GEOIP_MODULE bool "ngx_stream_geoip_module" select BR2_PACKAGE_GEOIP help Enable ngx_stream_geoip_module config BR2_PACKAGE_NGINX_STREAM_SSL_PREREAD_MODULE bool "ngx_stream_ssl_preread_module" help Enable ngx_stream_ssl_preread_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_GEO_MODULE bool "ngx_stream_geo_module" default y help Enable ngx_stream_geo_module config BR2_PACKAGE_NGINX_STREAM_MAP_MODULE bool "ngx_stream_map_module" default y help Enable ngx_stream_map_module config BR2_PACKAGE_NGINX_STREAM_SPLIT_CLIENTS_MODULE bool "ngx_stream_split_clients_module" default y help Enable ngx_stream_split_clients_module config BR2_PACKAGE_NGINX_STREAM_RETURN_MODULE bool "ngx_stream_return_module" default y help Enable ngx_stream_return_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_RANDOM_MODULE bool "ngx_stream_upstream_random_module" default y help Enable ngx_stream_upstream_random_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 bool "ngx_select_module" help Enable ngx_select_module config BR2_PACKAGE_NGINX_POLL_MODULE bool "ngx_poll_module" help Enable ngx_poll_module config BR2_PACKAGE_NGINX_ADD_MODULES string "additional modules" help Space separated list of urls of the additional modules endif ================================================ FILE: package/nginx/S50nginx ================================================ #!/bin/sh # # Start/stop nginx # NGINX=/usr/sbin/nginx PIDFILE=/var/run/nginx.pid case "$1" in start) echo "Starting nginx..." mkdir -p /var/log/nginx /var/cache/nginx start-stop-daemon -S -x "$NGINX" -p "$PIDFILE" ;; stop) echo "Stopping nginx..." start-stop-daemon -K -x "$NGINX" -p "$PIDFILE" -o ;; reload|force-reload) echo "Reloading nginx configuration..." "$NGINX" -s reload ;; restart) "$0" stop sleep 1 # Prevent race condition: ensure nginx stops before start. "$0" start ;; *) echo "Usage: $0 {start|stop|restart|reload|force-reload}" exit 1 esac ================================================ FILE: package/nginx/nginx.hash ================================================ # Locally calculated after checking pgp signature sha256 e462e11533d5c30baa05df7652160ff5979591d291736cfa5edb9fd2edb48c49 nginx-1.20.1.tar.gz # License files, locally calculated sha256 b57270c1f73eb6624b38b2d0a1affcec56b21fab39efbf8c837428f05cef1d73 LICENSE ================================================ FILE: package/nginx/nginx.logrotate ================================================ /var/log/nginx/*log { missingok create 640 http log sharedscripts compress postrotate test ! -r /var/run/nginx.pid || kill -USR1 `cat /var/run/nginx.pid` endscript } ================================================ FILE: package/nginx/nginx.mk ================================================ ################################################################################ # # nginx # ################################################################################ NGINX_VERSION = 1.20.1 NGINX_SITE = http://nginx.org/download NGINX_LICENSE = BSD-2-Clause NGINX_LICENSE_FILES = LICENSE NGINX_CPE_ID_VENDOR = nginx NGINX_DEPENDENCIES = \ host-pkgconf \ $(if $(BR2_PACKAGE_LIBXCRYPT),libxcrypt) NGINX_CONF_OPTS = \ --crossbuild=Linux::$(BR2_ARCH) \ --with-cc="$(TARGET_CC)" \ --with-cpp="$(TARGET_CC)" \ --with-ld-opt="$(TARGET_LDFLAGS)" # www-data user and group are used for nginx. Because these user and group # are already set by buildroot, it is not necessary to redefine them. # See system/skeleton/etc/passwd # username: www-data uid: 33 # groupname: www-data gid: 33 # # So, we just need to create the directories used by nginx with the right # ownership. define NGINX_PERMISSIONS /var/lib/nginx d 755 33 33 - - - - - endef # disable external libatomic_ops because its detection fails. NGINX_CONF_ENV += \ ngx_force_c_compiler=yes \ ngx_force_c99_have_variadic_macros=yes \ ngx_force_gcc_have_variadic_macros=yes \ ngx_force_gcc_have_atomic=yes \ ngx_force_have_epoll=yes \ ngx_force_have_sendfile=yes \ ngx_force_have_sendfile64=yes \ ngx_force_have_pr_set_dumpable=yes \ ngx_force_have_timer_event=yes \ ngx_force_have_map_anon=yes \ ngx_force_have_map_devzero=yes \ ngx_force_have_sysvshm=yes \ ngx_force_have_posix_sem=yes # prefix: nginx root configuration location NGINX_CONF_OPTS += \ --force-endianness=$(call qstrip,$(call LOWERCASE,$(BR2_ENDIAN))) \ --prefix=/usr \ --conf-path=/etc/nginx/nginx.conf \ --sbin-path=/usr/sbin/nginx \ --pid-path=/run/nginx.pid \ --lock-path=/run/lock/nginx.lock \ --user=www-data \ --group=www-data \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/cache/nginx/client-body \ --http-proxy-temp-path=/var/cache/nginx/proxy \ --http-fastcgi-temp-path=/var/cache/nginx/fastcgi \ --http-scgi-temp-path=/var/cache/nginx/scgi \ --http-uwsgi-temp-path=/var/cache/nginx/uwsgi NGINX_CONF_OPTS += \ $(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 NGINX_CONF_OPTS += --with-pcre else NGINX_CONF_OPTS += --without-pcre endif # modules disabled or not activated because of missing dependencies: # - google_perftools (googleperftools) # - http_perl_module (host-perl) # - pcre-jit (want to rebuild pcre) # Notes: # * Feature/module option are *not* symetric. # If a feature is on by default, only its --without-xxx option exists; # if a feature is off by default, only its --with-xxx option exists. # * The configure script fails if unknown options are passed on the command # line. # misc. modules NGINX_CONF_OPTS += \ $(if $(BR2_PACKAGE_NGINX_SELECT_MODULE),--with-select_module,--without-select_module) \ $(if $(BR2_PACKAGE_NGINX_POLL_MODULE),--with-poll_module,--without-poll_module) ifneq ($(BR2_PACKAGE_NGINX_ADD_MODULES),) NGINX_CONF_OPTS += \ $(addprefix --add-module=,$(call qstrip,$(BR2_PACKAGE_NGINX_ADD_MODULES))) endif # http server modules ifeq ($(BR2_PACKAGE_NGINX_HTTP),y) ifeq ($(BR2_PACKAGE_NGINX_HTTP_CACHE),y) NGINX_DEPENDENCIES += openssl else NGINX_CONF_OPTS += --without-http-cache endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_V2_MODULE),y) NGINX_DEPENDENCIES += zlib NGINX_CONF_OPTS += --with-http_v2_module endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_SSL_MODULE),y) NGINX_DEPENDENCIES += openssl NGINX_CONF_OPTS += --with-http_ssl_module endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_XSLT_MODULE),y) NGINX_DEPENDENCIES += libxml2 libxslt NGINX_CONF_OPTS += --with-http_xslt_module endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_IMAGE_FILTER_MODULE),y) NGINX_DEPENDENCIES += gd jpeg libpng NGINX_CONF_OPTS += --with-http_image_filter_module endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_GEOIP_MODULE),y) NGINX_DEPENDENCIES += geoip NGINX_CONF_OPTS += --with-http_geoip_module endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_GUNZIP_MODULE),y) NGINX_DEPENDENCIES += zlib NGINX_CONF_OPTS += --with-http_gunzip_module endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_GZIP_STATIC_MODULE),y) NGINX_DEPENDENCIES += zlib NGINX_CONF_OPTS += --with-http_gzip_static_module endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_SECURE_LINK_MODULE),y) NGINX_DEPENDENCIES += openssl NGINX_CONF_OPTS += --with-http_secure_link_module endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_GZIP_MODULE),y) NGINX_DEPENDENCIES += zlib else NGINX_CONF_OPTS += --without-http_gzip_module endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_REWRITE_MODULE),y) NGINX_DEPENDENCIES += pcre else NGINX_CONF_OPTS += --without-http_rewrite_module endif NGINX_CONF_OPTS += \ $(if $(BR2_PACKAGE_NGINX_HTTP_REALIP_MODULE),--with-http_realip_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_ADDITION_MODULE),--with-http_addition_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_SUB_MODULE),--with-http_sub_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_DAV_MODULE),--with-http_dav_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_FLV_MODULE),--with-http_flv_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_MP4_MODULE),--with-http_mp4_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_AUTH_REQUEST_MODULE),--with-http_auth_request_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_RANDOM_INDEX_MODULE),--with-http_random_index_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_DEGRADATION_MODULE),--with-http_degradation_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_SLICE_MODULE),--with-http_slice_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_STUB_STATUS_MODULE),--with-http_stub_status_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_CHARSET_MODULE),,--without-http_charset_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_SSI_MODULE),,--without-http_ssi_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_USERID_MODULE),,--without-http_userid_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_ACCESS_MODULE),,--without-http_access_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_AUTH_BASIC_MODULE),,--without-http_auth_basic_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_AUTOINDEX_MODULE),,--without-http_autoindex_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_GEO_MODULE),,--without-http_geo_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_MAP_MODULE),,--without-http_map_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_SPLIT_CLIENTS_MODULE),,--without-http_split_clients_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_REFERER_MODULE),,--without-http_referer_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_PROXY_MODULE),,--without-http_proxy_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_FASTCGI_MODULE),,--without-http_fastcgi_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_UWSGI_MODULE),,--without-http_uwsgi_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_SCGI_MODULE),,--without-http_scgi_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_MEMCACHED_MODULE),,--without-http_memcached_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_LIMIT_CONN_MODULE),,--without-http_limit_conn_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_LIMIT_REQ_MODULE),,--without-http_limit_req_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_EMPTY_GIF_MODULE),,--without-http_empty_gif_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_BROWSER_MODULE),,--without-http_browser_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_IP_HASH_MODULE),,--without-http_upstream_ip_hash_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_LEAST_CONN_MODULE),,--without-http_upstream_least_conn_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_RANDOM_MODULE),,--without-http_upstream_random_module) \ $(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_KEEPALIVE_MODULE),,--without-http_upstream_keepalive_module) else # !BR2_PACKAGE_NGINX_HTTP NGINX_CONF_OPTS += --without-http 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 NGINX_CONF_OPTS += --with-mail_ssl_module endif NGINX_CONF_OPTS += \ $(if $(BR2_PACKAGE_NGINX_MAIL_POP3_MODULE),,--without-mail_pop3_module) \ $(if $(BR2_PACKAGE_NGINX_MAIL_IMAP_MODULE),,--without-mail_imap_module) \ $(if $(BR2_PACKAGE_NGINX_MAIL_SMTP_MODULE),,--without-mail_smtp_module) endif # BR2_PACKAGE_NGINX_MAIL # stream modules ifeq ($(BR2_PACKAGE_NGINX_STREAM),y) NGINX_CONF_OPTS += --with-stream ifeq ($(BR2_PACKAGE_NGINX_STREAM_REALIP_MODULE),y) NGINX_CONF_OPTS += --with-stream_realip_module endif ifeq ($(BR2_PACKAGE_NGINX_STREAM_SET_MODULE),) NGINX_CONF_OPTS += --without-stream_set_module endif ifeq ($(BR2_PACKAGE_NGINX_STREAM_SSL_MODULE),y) NGINX_DEPENDENCIES += openssl NGINX_CONF_OPTS += --with-stream_ssl_module endif ifeq ($(BR2_PACKAGE_NGINX_STREAM_GEOIP_MODULE),y) NGINX_DEPENDENCIES += geoip NGINX_CONF_OPTS += --with-stream_geoip_module endif ifeq ($(BR2_PACKAGE_NGINX_STREAM_SSL_PREREAD_MODULE),y) NGINX_CONF_OPTS += --with-stream_ssl_preread_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_GEO_MODULE),,--without-stream_geo_module) \ $(if $(BR2_PACKAGE_NGINX_STREAM_MAP_MODULE),,--without-stream_map_module) \ $(if $(BR2_PACKAGE_NGINX_STREAM_SPLIT_CLIENTS_MODULE),,--without-stream_split_clients_module) \ $(if $(BR2_PACKAGE_NGINX_STREAM_RETURN_MODULE),,--without-stream_return_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_RANDOM_MODULE),,--without-stream_upstream_random_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 ifeq ($(BR2_PACKAGE_NGINX_DAV_EXT),y) NGINX_CONF_OPTS += --add-module=$(NGINX_DAV_EXT_DIR) NGINX_DEPENDENCIES += nginx-dav-ext 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_MODSECURITY),y) NGINX_DEPENDENCIES += nginx-modsecurity NGINX_CONF_OPTS += --add-module=$(NGINX_MODSECURITY_DIR) 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 NGINX_PRE_CONFIGURE_HOOKS += NGINX_DISABLE_WERROR define NGINX_CONFIGURE_CMDS cd $(@D) ; $(NGINX_CONF_ENV) \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ ./configure $(NGINX_CONF_OPTS) \ --with-cc-opt="$(TARGET_CFLAGS) $(NGINX_CFLAGS)" endef define NGINX_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define NGINX_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install $(RM) $(TARGET_DIR)/usr/sbin/nginx.old $(INSTALL) -D -m 0664 package/nginx/nginx.logrotate \ $(TARGET_DIR)/etc/logrotate.d/nginx endef define NGINX_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/nginx/nginx.service \ $(TARGET_DIR)/usr/lib/systemd/system/nginx.service endef define NGINX_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/nginx/S50nginx \ $(TARGET_DIR)/etc/init.d/S50nginx endef $(eval $(generic-package)) ================================================ FILE: package/nginx/nginx.service ================================================ [Unit] Description=A high performance web server and a reverse proxy server After=syslog.target network.target [Service] Type=forking LogsDirectory=nginx CacheDirectory=nginx PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=/usr/sbin/nginx -s quit PrivateDevices=yes [Install] WantedBy=multi-user.target ================================================ FILE: package/nginx-dav-ext/Config.in ================================================ config BR2_PACKAGE_NGINX_DAV_EXT bool "nginx-dav-ext" depends on BR2_PACKAGE_NGINX_HTTP_DAV_MODULE select BR2_PACKAGE_LIBXSLT help NGINX WebDAV missing commands support (PROPFIND & OPTIONS). https://github.com/arut/nginx-dav-ext-module ================================================ FILE: package/nginx-dav-ext/nginx-dav-ext.hash ================================================ # Locally computed sha256 d2499d94d82d4e4eac8425d799e52883131ae86a956524040ff2fd230ef9f859 nginx-dav-ext-3.0.0.tar.gz sha256 e377bb81e5024682a66438306e8ff9541d843d3831e480aec2f58eb8d83e48de LICENSE ================================================ FILE: package/nginx-dav-ext/nginx-dav-ext.mk ================================================ ################################################################################ # # nginx-dav-ext # ################################################################################ NGINX_DAV_EXT_VERSION = 3.0.0 NGINX_DAV_EXT_SITE = $(call github,arut,nginx-dav-ext-module,v$(NGINX_DAV_EXT_VERSION)) NGINX_DAV_EXT_LICENSE = BSD-2-Clause NGINX_DAV_EXT_LICENSE_FILES = LICENSE NGINX_DAV_EXT_DEPENDENCIES = libxslt $(eval $(generic-package)) ================================================ FILE: package/nginx-modsecurity/0001-config-use-pkg-config.patch ================================================ From 2907dcd628242eb29920321fb3a744915d11888f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 26 Jul 2021 08:29:21 +0200 Subject: [PATCH] config: use pkg-config Change to using pkg-config to find the path to modsecurity and its dependencies. Signed-off-by: Fabrice Fontaine --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index c6e7467..e20190f 100644 --- a/config +++ b/config @@ -50,7 +50,7 @@ END else # auto-discovery ngx_feature="ModSecurity library" - ngx_feature_libs="-lmodsecurity" + ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs modsecurity)" . auto/feature -- 2.30.2 ================================================ FILE: package/nginx-modsecurity/Config.in ================================================ config BR2_PACKAGE_NGINX_MODSECURITY bool "nginx-modsecurity" depends on BR2_PACKAGE_NGINX_HTTP depends on BR2_INSTALL_LIBSTDCPP # libmodsecurity depends on BR2_TOOLCHAIN_HAS_THREADS # libmodsecurity select BR2_PACKAGE_LIBMODSECURITY help The ModSecurity-nginx connector is the connection point between nginx and libmodsecurity (ModSecurity v3). https://github.com/SpiderLabs/ModSecurity-nginx comment "nginx-modsecurity needs a toolchain w/ C++, threads" depends on BR2_PACKAGE_NGINX_HTTP depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/nginx-modsecurity/nginx-modsecurity.hash ================================================ # From https://github.com/SpiderLabs/ModSecurity-nginx/releases/download/v1.0.2/modsecurity-nginx-v1.0.2.tar.gz.sha256 sha256 41a6660c50508c60df59f8f09c444d18ef8112a4c118cdc791a3992390b78c32 modsecurity-nginx-v1.0.2.tar.gz # Localy calculated sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE ================================================ FILE: package/nginx-modsecurity/nginx-modsecurity.mk ================================================ ################################################################################ # # nginx-modsecurity # ################################################################################ NGINX_MODSECURITY_VERSION = 1.0.2 NGINX_MODSECURITY_SOURCE = modsecurity-nginx-v$(NGINX_MODSECURITY_VERSION).tar.gz NGINX_MODSECURITY_SITE = https://github.com/SpiderLabs/ModSecurity-nginx/releases/download/v$(NGINX_MODSECURITY_VERSION) NGINX_MODSECURITY_LICENSE = Apache-2.0 NGINX_MODSECURITY_LICENSE_FILES = LICENSE NGINX_MODSECURITY_DEPENDENCIES = libmodsecurity $(eval $(generic-package)) ================================================ FILE: package/nginx-naxsi/0001-naxsi_src-naxsi_runtime.c-fix-build-without-x_forwar.patch ================================================ From 8ea5218b07f715e9616a846bf305633ef1b3aa2a Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 14 Aug 2021 11:46:08 +0200 Subject: [PATCH] naxsi_src/naxsi_runtime.c: fix build without x_forwarded_for x_forwarded_for is not available if realip, geo, geoip or proxy modules aren't enabled resulting in the following build failure since version 1.1a and https://github.com/nbs-system/naxsi/commit/07a056ccd36bc3c5c40dc17991db226cb8cf6241: /home/buildroot/autobuild/instance-3/output-1/build/nginx-naxsi-1.3/naxsi_src/naxsi_runtime.c: In function 'ngx_http_naxsi_data_parse': /home/buildroot/autobuild/instance-3/output-1/build/nginx-naxsi-1.3/naxsi_src/naxsi_runtime.c:2846:20: error: 'ngx_http_headers_in_t' has no member named 'x_forwarded_for' if (r->headers_in.x_forwarded_for.nelts >= 1) { ^ Fixes: - http://autobuild.buildroot.org/results/cdbc1536f6b5de3d4c836efa2f0dcaf0cdbb1462 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/nbs-system/naxsi/pull/568] --- naxsi_src/naxsi_runtime.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/naxsi_src/naxsi_runtime.c b/naxsi_src/naxsi_runtime.c index 28e0b29..6a723d2 100644 --- a/naxsi_src/naxsi_runtime.c +++ b/naxsi_src/naxsi_runtime.c @@ -2842,10 +2842,12 @@ ngx_http_naxsi_data_parse(ngx_http_request_ctx_t* ctx, ngx_http_request_t* r) unsigned int n = 0; ngx_table_elt_t** h = NULL; ngx_array_t a; +#if (NGX_HTTP_X_FORWARDED_FOR) if (r->headers_in.x_forwarded_for.nelts >= 1) { a = r->headers_in.x_forwarded_for; n = a.nelts; } +#endif if (n >= 1) h = a.elts; if (n >= 1) { @@ -2879,6 +2881,7 @@ ngx_http_naxsi_update_current_ctx_status(ngx_http_request_ctx_t* ctx, /*cr, sc, cf, ctx*/ if (cf->check_rules && ctx->special_scores) { +#if (NGX_HTTP_X_FORWARDED_FOR) if (r->headers_in.x_forwarded_for.nelts >= 1) { a = r->headers_in.x_forwarded_for; n = a.nelts; @@ -2896,7 +2899,9 @@ ngx_http_naxsi_update_current_ctx_status(ngx_http_request_ctx_t* ctx, memcpy(ip.data, h[0]->value.data, ip.len); ignore = nx_can_ignore_ip(&ip, cf) || nx_can_ignore_cidr(&ip, cf); } - } else { + } else +#endif + { ngx_str_t* ip = &r->connection->addr_text; NX_DEBUG(_debug_whitelist_ignore, NGX_LOG_DEBUG_HTTP, -- 2.30.2 ================================================ FILE: package/nginx-naxsi/Config.in ================================================ config BR2_PACKAGE_NGINX_NAXSI bool "nginx-naxsi" depends on BR2_PACKAGE_NGINX_HTTP # uses pcre, so nginx needs to be built with pcre support select BR2_PACKAGE_PCRE 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 ================================================ FILE: package/nginx-naxsi/nginx-naxsi.hash ================================================ # Locally calculated sha256 439c8677372d2597b4360bbcc10bc86490de1fc75695b193ad5df154a214d628 nginx-naxsi-1.3.tar.gz sha256 589ed823e9a84c56feb95ac58e7cf384626b9cbf4fda2a907bc36e103de1bad2 LICENSE sha256 d0732bc23658db5b9749e3f9cd4fe0f9b3e132b5955adccb08821845fe2a21c8 naxsi_src/ext/libinjection/COPYING ================================================ FILE: package/nginx-naxsi/nginx-naxsi.mk ================================================ ################################################################################ # # nginx-naxsi # ################################################################################ NGINX_NAXSI_VERSION = 1.3 NGINX_NAXSI_SITE = $(call github,nbs-system,naxsi,$(NGINX_NAXSI_VERSION)) NGINX_NAXSI_LICENSE = GPL-3.0, BSD-3-Clause (libinjection) NGINX_NAXSI_LICENSE_FILES = LICENSE naxsi_src/ext/libinjection/COPYING $(eval $(generic-package)) ================================================ FILE: package/nginx-upload/Config.in ================================================ 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 ================================================ FILE: package/nginx-upload/nginx-upload.hash ================================================ #Locally Computed: sha256 61ad5bcb67c8f688a4c7a5611311a351049361840b8dfe78be542066f475166e nginx-upload-4423994c7d8fb491d95867f6af968585d949e7a9.tar.gz sha256 825f9684c427e29fd1ab085d5c421a4cbf96a460f3c58884a42c28bfbac5e544 LICENCE ================================================ FILE: package/nginx-upload/nginx-upload.mk ================================================ ################################################################################ # # nginx-upload # ################################################################################ NGINX_UPLOAD_VERSION = 4423994c7d8fb491d95867f6af968585d949e7a9 NGINX_UPLOAD_SITE = $(call github,vkholodkov,nginx-upload-module,$(NGINX_UPLOAD_VERSION)) NGINX_UPLOAD_LICENSE = BSD-3-Clause NGINX_UPLOAD_LICENSE_FILES = LICENCE NGINX_UPLOAD_DEPENDENCIES = openssl $(eval $(generic-package)) ================================================ FILE: package/ngircd/Config.in ================================================ config BR2_PACKAGE_NGIRCD bool "ngircd" depends on BR2_USE_MMU # fork() help Next Generation IRC server deamon. http://ngircd.barton.de ================================================ FILE: package/ngircd/ngircd.hash ================================================ # Locally calculated after checking pgp signature sha256 55c16fd26009f6fc6a007df4efac87a02e122f680612cda1ce26e17a18d86254 ngircd-26.1.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/ngircd/ngircd.mk ================================================ ################################################################################ # # ngircd # ################################################################################ NGIRCD_VERSION = 26.1 NGIRCD_SOURCE = ngircd-$(NGIRCD_VERSION).tar.xz NGIRCD_SITE = https://arthur.barton.de/pub/ngircd NGIRCD_LICENSE = GPL-2.0+ NGIRCD_LICENSE_FILES = COPYING NGIRCD_CPE_ID_VENDOR = barton ifeq ($(BR2_PACKAGE_LINUX_PAM),y) NGIRCD_CONF_OPTS += --with-pam=$(STAGING_DIR)/usr NGIRCD_DEPENDENCIES += linux-pam else NGIRCD_CONF_OPTS += --without-pam endif ifeq ($(BR2_PACKAGE_OPENSSL),y) NGIRCD_CONF_OPTS += --with-openssl NGIRCD_DEPENDENCIES += host-pkgconf openssl else NGIRCD_CONF_OPTS += --without-openssl ifeq ($(BR2_PACKAGE_GNUTLS),y) NGIRCD_CONF_OPTS += --with-gnutls=$(STAGING_DIR)/usr NGIRCD_DEPENDENCIES += gnutls else NGIRCD_CONF_OPTS += --without-gnutls endif endif ifeq ($(BR2_PACKAGE_ZLIB),y) NGIRCD_CONF_OPTS += --with-zlib=$(STAGING_DIR)/usr NGIRCD_DEPENDENCIES += zlib else NGIRCD_CONF_OPTS += --without-zlib endif $(eval $(autotools-package)) ================================================ FILE: package/ngrep/0001-Fix-typo-in-configure-in-when-testing-for-use_pcre.patch ================================================ From b8b1e9751e1d074af0dd77c2554c1b25fd8f7abe Mon Sep 17 00:00:00 2001 From: Romain Francoise Date: Mon, 1 Jan 2018 18:00:34 +0100 Subject: [PATCH] Fix typo in configure.in when testing for use_pcre Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/jpr5/ngrep/commit/b8b1e9751e1d074af0dd77c2554c1b25fd8f7abe] --- configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.in b/configure.in index cff37e9..06c050a 100644 --- a/configure.in +++ b/configure.in @@ -146,7 +146,7 @@ AC_ARG_ENABLE(pcre, [ use_pcre="$enableval" ], [ use_pcre="no" ]) -if test use_pcre = yes; then +if test $use_pcre = yes; then USE_PCRE="1" EXTRA_LIBS="$EXTRA_LIBS -lpcre" else ================================================ FILE: package/ngrep/0002-Check-for-libnet_init-in-configure-in.patch ================================================ From 0a51c8bc62c7b49b8d67a360daa6b1957256f4f5 Mon Sep 17 00:00:00 2001 From: Romain Francoise Date: Mon, 1 Jan 2018 18:01:13 +0100 Subject: [PATCH] Check for libnet_init in configure.in libnet_init_packet was the old libnet 1.0 function which is now long deprecated. Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/jpr5/ngrep/commit/0a51c8bc62c7b49b8d67a360daa6b1957256f4f5] --- configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.in b/configure.in index 06c050a..dbef39b 100644 --- a/configure.in +++ b/configure.in @@ -174,7 +174,7 @@ dnl AC_ARG_ENABLE(tcpkill, [ --enable-tcpkill enable connection killing support (default off)], [ - AC_CHECK_LIB(net, libnet_init_packet,,echo !!! error: tcpkill feature enabled but no libnet found; exit) + AC_CHECK_LIB(net, libnet_init,,echo !!! error: tcpkill feature enabled but no libnet found; exit) use_tcpkill="$enableval" ], [ use_tcpkill="no" ]) ================================================ FILE: package/ngrep/0003-fix-disable-tcpkill.patch ================================================ From e8522284ef326bd9f222e04c4a970ffafa56fba6 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 3 Nov 2018 23:23:36 +0100 Subject: [PATCH] fix --disable-tcpkill If the user uses --disable-tcpkill, build can fail if libnet is not found on the system. To fix this, move AC_CHECK_LIB to found libnet outside AC_ARG_ENABLE Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/jpr5/ngrep/pull/15] --- configure.in | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/configure.in b/configure.in index dbef39b..7c3dd43 100644 --- a/configure.in +++ b/configure.in @@ -173,13 +173,11 @@ dnl AC_ARG_ENABLE(tcpkill, [ --enable-tcpkill enable connection killing support (default off)], -[ - AC_CHECK_LIB(net, libnet_init,,echo !!! error: tcpkill feature enabled but no libnet found; exit) - use_tcpkill="$enableval" -], +[ use_tcpkill="$enableval" ], [ use_tcpkill="no" ]) if test $use_tcpkill = yes; then + AC_CHECK_LIB(net, libnet_init,,echo !!! error: tcpkill feature enabled but no libnet found; exit) USE_TCPKILL="1" EXTRA_OBJS="$EXTRA_OBJS tcpkill.o" EXTRA_DEFINES="$EXTRA_DEFINES $(libnet-config --defines)" -- 2.17.1 ================================================ FILE: package/ngrep/Config.in ================================================ config BR2_PACKAGE_NGREP bool "ngrep" select BR2_PACKAGE_LIBPCAP select BR2_PACKAGE_PCRE help Network grep. https://github.com/jpr5/ngrep/ ================================================ FILE: package/ngrep/ngrep.hash ================================================ # Locally computed: sha256 dc4dbe20991cc36bac5e97e99475e2a1522fd88c59ee2e08f813432c04c5fff3 ngrep-1.47.tar.gz sha256 d46e593e048e0b9fc803561ed4c283f37a2d5447e4dcfa10cad29b394c2b8b9e LICENSE ================================================ FILE: package/ngrep/ngrep.mk ================================================ ################################################################################ # # ngrep # ################################################################################ NGREP_VERSION = 1.47 NGREP_SITE = $(call github,jpr5,ngrep,$(subst .,_,V$(NGREP_VERSION))) NGREP_LICENSE = BSD-4-Clause-like, BSD-3-Clause (tcpkill) NGREP_LICENSE_FILES = LICENSE NGREP_INSTALL_STAGING = YES # We're patching configure.in NGREP_AUTORECONF = YES ifeq ($(BR2_STATIC_LIBS),y) NGREP_CONF_ENV += LIBS=`$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs` endif NGREP_CONF_OPTS = \ --with-pcap-includes=$(STAGING_DIR)/usr/include/pcap \ --enable-pcre \ --disable-dropprivs \ --disable-pcap-restart NGREP_DEPENDENCIES = libpcap pcre ifeq ($(BR2_PACKAGE_LIBNET),y) NGREP_DEPENDENCIES += libnet NGREP_CONF_OPTS += --enable-tcpkill else NGREP_CONF_OPTS += --disable-tcpkill endif $(eval $(autotools-package)) ================================================ FILE: package/nilfs-utils/0001-nilfs_cleanerd-link-dynamically.patch ================================================ From 7888f8f24ec08cdfd51929cde4e177396d7504e7 Mon Sep 17 00:00:00 2001 From: Kurt Van Dijck Date: Thu, 28 Dec 2017 20:22:00 +0100 Subject: [PATCH] nilfs_cleanerd: link dynamically When nilfs_cleanerd does not run due to shared object problems, nilfs2 filesystems may run out of space soon. This logic that justified linking nilfs_cleanerd statically does IMO not apply to embedded systems built by buildroot. This commit therefore drops the static linking. Signed-off-by: Kurt Van Dijck --- sbin/cleanerd/Makefile.am | 2 -- 1 file changed, 2 deletions(-) diff --git a/sbin/cleanerd/Makefile.am b/sbin/cleanerd/Makefile.am index 3a5335d..06f0847 100644 --- a/sbin/cleanerd/Makefile.am +++ b/sbin/cleanerd/Makefile.am @@ -9,8 +9,6 @@ nilfs_cleanerd_SOURCES = cleanerd.c cldconfig.c \ nilfs_cleanerd_CFLAGS = -Wall nilfs_cleanerd_CPPFLAGS = -I$(top_srcdir)/include \ -DSYSCONFDIR=\"$(sysconfdir)\" -# Use -static option to make nilfs_cleanerd self-contained. -nilfs_cleanerd_LDFLAGS = -static dist_sysconf_DATA = nilfs_cleanerd.conf -- 1.8.5.rc3 ================================================ FILE: package/nilfs-utils/Config.in ================================================ config BR2_PACKAGE_NILFS_UTILS bool "nilfs-utils" depends on BR2_USE_MMU # util-linux libmount, libblkid depends on BR2_TOOLCHAIN_HAS_THREADS # sem_open() select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX help Tools for creating and managing NILFS2 filesystems. https://nilfs.sourceforge.io comment "nilfs-utils needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/nilfs-utils/nilfs-utils.hash ================================================ # Locally calculated after checking pgp signature sha512 3232390581f63de5ebe7b461b178a40dfbdaa4bc6aa96b218ea8182c5bf81b162a1e632a1c21d9f1e89fdba9393b4e268e001c335a99ce22f645a62ae3154783 nilfs-utils-2.2.8.tar.bz2 sha512 4fc92d3998910acb108f81b1aee70a55a572b661a2766d0e57a55e48e2b737eea41415356cbd62593f26aec5797ab9fbb40211d7782b5834b4855ff1ce6ad5f7 COPYING ================================================ FILE: package/nilfs-utils/nilfs-utils.mk ================================================ ################################################################################ # # nilfs-utils # ################################################################################ NILFS_UTILS_VERSION = 2.2.8 NILFS_UTILS_SOURCE = nilfs-utils-$(NILFS_UTILS_VERSION).tar.bz2 NILFS_UTILS_SITE = https://nilfs.sourceforge.io/download NILFS_UTILS_LICENSE = GPL-2.0+ (programs), LGPL-2.1+ (libraries) NILFS_UTILS_LICENSE_FILES = COPYING # need libuuid, libblkid, libmount NILFS_UTILS_DEPENDENCIES = util-linux # We're patching sbin/cleanerd/Makefile.am NILFS_UTILS_AUTORECONF = YES ifeq ($(BR2_PACKAGE_LIBSELINUX),y) NILFS_UTILS_CONF_OPTS += --with-selinux NILFS_UTILS_DEPENDENCIES += libselinux else NILFS_UTILS_CONF_OPTS += --without-selinux endif $(eval $(autotools-package)) ================================================ FILE: package/ninja/ninja.hash ================================================ # Locally generated sha256 ce35865411f0490368a8fc383f29071de6690cbadc27704734978221f25e2bed ninja-1.10.2.tar.gz sha256 eb7e9ab9690124c5c9f42bdc81383d886a3dede26345b6ed15bbad7caf81f7ea COPYING ================================================ FILE: package/ninja/ninja.mk ================================================ ################################################################################ # # ninja # ################################################################################ NINJA_VERSION = 1.10.2 NINJA_SITE = $(call github,ninja-build,ninja,v$(NINJA_VERSION)) NINJA_LICENSE = Apache-2.0 NINJA_LICENSE_FILES = COPYING define HOST_NINJA_INSTALL_CMDS $(INSTALL) -m 0755 -D $(@D)/ninja $(HOST_DIR)/bin/ninja endef $(eval $(host-cmake-package)) ================================================ FILE: package/nload/Config.in ================================================ 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 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/ ================================================ FILE: package/nload/nload.hash ================================================ # 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 # Locally computed sha256 67f82e045cf7acfef853ea0f426575a8359161a0a325e19f02b529a87c4b6c34 COPYING ================================================ FILE: package/nload/nload.mk ================================================ ################################################################################ # # nload # ################################################################################ NLOAD_VERSION = 0.7.4 NLOAD_SITE = http://www.roland-riegel.de/nload NLOAD_DEPENDENCIES = ncurses NLOAD_LICENSE = GPL-2.0+ NLOAD_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/nmap/0001-libdnet-wrapper-configure.patch ================================================ libdnet: always build a static library Signed-off-by: "Yann E. MORIN" diff --git a/libdnet-stripped/configure.gnu b/libdnet-stripped/configure.gnu --- /dev/null +++ b/libdnet-stripped/configure.gnu @@ -0,0 +1,3 @@ +#!/bin/sh + +exec "${0%.gnu}" "${@}" --enable-static --disable-shared ================================================ FILE: package/nmap/Config.in ================================================ config BR2_PACKAGE_NMAP bool "nmap" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBLINEAR select BR2_PACKAGE_LIBPCAP select BR2_PACKAGE_NMAP_NMAP \ if !BR2_PACKAGE_NMAP_NCAT && !BR2_PACKAGE_NMAP_NPING help Nmap ("Network Mapper") is a free and open source (license) utility for network discovery and security auditing. http://nmap.org if BR2_PACKAGE_NMAP config BR2_PACKAGE_NMAP_NCAT bool "install ncat" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Ncat is a feature-packed networking utility which reads and writes data across networks from the command line. Ncat was written for the Nmap Project as a much-improved reimplementation of the venerable Netcat. If symlink to "nc" is installed if neither netcat or netcat-openbsd is selected. comment "a symlink from ncat to 'nc' will be installed" depends on BR2_PACKAGE_NMAP_NCAT depends on !BR2_PACKAGE_NETCAT depends on !BR2_PACKAGE_NETCAT_OPENBSD config BR2_PACKAGE_NMAP_NMAP bool "install nmap" select BR2_PACKAGE_PCRE help This option installs 'nmap' itself. config BR2_PACKAGE_NMAP_NPING bool "install nping" help This option installs the 'nping' tool. endif comment "nmap-nmap needs a toolchain w/ C++, threads" depends on BR2_USE_MMU depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS) ================================================ FILE: package/nmap/nmap.hash ================================================ # From https://nmap.org/dist/sigs/nmap-7.92.tar.bz2.digest.txt (lowercase) sha256 a5479f2f8a6b0b2516767d2f7189c386c1dc858d997167d7ec5cfc798c7571a1 nmap-7.92.tar.bz2 # Locally calculated sha256 133794301a764dfe8a60e38601e56657b7113e0337b452189725bbbed58baea0 LICENSE ================================================ FILE: package/nmap/nmap.mk ================================================ ################################################################################ # # nmap # ################################################################################ NMAP_VERSION = 7.92 NMAP_SITE = https://nmap.org/dist NMAP_SOURCE = nmap-$(NMAP_VERSION).tar.bz2 NMAP_DEPENDENCIES = liblinear libpcap NMAP_CONF_OPTS = --without-liblua --without-zenmap \ --with-libdnet=included NMAP_LICENSE = nmap license NMAP_LICENSE_FILES = LICENSE NMAP_CPE_ID_VENDOR = nmap NMAP_SELINUX_MODULES = netutils # needed by libpcap NMAP_LIBS_FOR_STATIC_LINK += `$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs` ifeq ($(BR2_STATIC_LIBS),y) NMAP_CONF_ENV += LIBS="$(NMAP_LIBS_FOR_STATIC_LINK)" endif # for 0001-libdnet-wrapper-configure.patch define NMAP_WRAPPER_EXEC chmod +x $(@D)/libdnet-stripped/configure.gnu endef NMAP_POST_PATCH_HOOKS += NMAP_WRAPPER_EXEC ifeq ($(BR2_PACKAGE_LIBSSH2),y) NMAP_CONF_OPTS += --with-libssh2="$(STAGING_DIR)/usr" NMAP_DEPENDENCIES += libssh2 NMAP_LIBS_FOR_STATIC_LINK += `$(PKG_CONFIG_HOST_BINARY) --libs libssh2` else NMAP_CONF_OPTS += --without-libssh2 endif ifeq ($(BR2_PACKAGE_OPENSSL),y) NMAP_CONF_OPTS += --with-openssl="$(STAGING_DIR)/usr" NMAP_DEPENDENCIES += host-pkgconf openssl NMAP_LIBS_FOR_STATIC_LINK += `$(PKG_CONFIG_HOST_BINARY) --libs openssl` else NMAP_CONF_OPTS += --without-openssl endif ifeq ($(BR2_PACKAGE_ZLIB),y) NMAP_CONF_OPTS += --with-libz="$(STAGING_DIR)/usr" NMAP_DEPENDENCIES += zlib else NMAP_CONF_OPTS += --without-libz endif NMAP_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) ifeq ($(BR2_PACKAGE_NMAP_NCAT),y) NMAP_CONF_OPTS += --with-ncat NMAP_MAKE_OPTS += build-ncat NMAP_INSTALL_TARGET_OPTS += install-ncat else NMAP_CONF_OPTS += --without-ncat endif ifeq ($(BR2_PACKAGE_NMAP_NMAP),y) NMAP_DEPENDENCIES += pcre NMAP_CONF_OPTS += --with-libpcre="$(STAGING_DIR)/usr" NMAP_MAKE_OPTS += nmap NMAP_INSTALL_TARGET_OPTS += install-nmap endif ifeq ($(BR2_PACKAGE_NMAP_NPING),y) NMAP_CONF_OPTS += --with-nping NMAP_MAKE_OPTS += build-nping NMAP_INSTALL_TARGET_OPTS += install-nping else NMAP_CONF_OPTS += --without-nping endif # Add a symlink to "nc" if none of the competing netcats is selected ifeq ($(BR2_PACKAGE_NMAP_NCAT):$(BR2_PACKAGE_NETCAT)$(BR2_PACKAGE_NETCAT_OPENBSD),y:) define NMAP_INSTALL_NCAT_SYMLINK ln -fs ncat $(TARGET_DIR)/usr/bin/nc endef NMAP_POST_INSTALL_TARGET_HOOKS += NMAP_INSTALL_NCAT_SYMLINK endif $(eval $(autotools-package)) ================================================ FILE: package/nmon/Config.in ================================================ config BR2_PACKAGE_NMON bool "nmon" depends on BR2_TOOLCHAIN_USES_GLIBC # fstab.h select BR2_PACKAGE_NCURSES help Nmon is short for Nigel's performance Monitor for Linux http://nmon.sourceforge.net/pmwiki.php comment "nmon needs a glibc toolchain" depends on !BR2_TOOLCHAIN_USES_GLIBC ================================================ FILE: package/nmon/nmon.hash ================================================ # From https://sourceforge.net/projects/nmon/files/ md5 df67f07ea4006c6204acff586beada81 lmon16m.c sha1 68cd02be19036a287fe352823db93223e73a9411 lmon16m.c # Locally computed sha256 2bed4d45fdfdf1d1387ec91e139c04975d5f838e3e0d53c0fe2d803a707e5fc1 lmon16m.c ================================================ FILE: package/nmon/nmon.mk ================================================ ################################################################################ # # nmon # ################################################################################ NMON_VERSION = 16m NMON_SITE = https://sourceforge.net/projects/nmon/files NMON_SOURCE = lmon$(NMON_VERSION).c NMON_LICENSE = GPL-3.0+ NMON_LICENSE_FILES = $(NMON_SOURCE) NMON_DEPENDENCIES = ncurses NMON_CFLAGS = $(TARGET_CFLAGS) -D JFS -D GETUSER -D LARGEMEM -D DEBIAN define NMON_EXTRACT_CMDS cp $(NMON_DL_DIR)/$(NMON_SOURCE) $(@D) endef define NMON_BUILD_CMDS $(TARGET_CC) $(NMON_CFLAGS) $(TARGET_LDFLAGS) -o $(@D)/nmon \ $(@D)/$(NMON_SOURCE) -lncurses -lm endef define NMON_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/nmon $(TARGET_DIR)/usr/bin/ endef $(eval $(generic-package)) ================================================ FILE: package/nodejs/0001-add-qemu-wrapper-support.patch ================================================ From 1f6c55d7318e7075169004b4314708f4766ec193 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Mon, 27 Sep 2021 12:55:09 -0700 Subject: [PATCH] add qemu-wrapper support V8's JIT infrastructure requires binaries such as mksnapshot and mkpeephole to be run in the host during the build. However, these binaries must have the same bit-width as the target (e.g. a x86_64 host targeting ARMv6 needs to produce a 32-bit binary). To work around this issue, cross-compile the binaries for the target and run them on the host with QEMU, much like gobject-introspection. However, for the host-variant we do not want to use a qemu-wrapper, so add @MAYBE_WRAPPER@ to the needed files and sed the path to the qemu-wrapper on target builds, and remove @MAYBE_WRAPPER@ entirely on host-builds. Signed-off-by: Adam Duskett --- node.gyp | 4 ++-- tools/v8_gypfiles/v8.gyp | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/node.gyp b/node.gyp index 97cdbb531d..db5cf51ce6 100644 --- a/node.gyp +++ b/node.gyp @@ -319,7 +319,7 @@ 'action_name': 'run_mkcodecache', 'process_outputs_as_sources': 1, 'inputs': [ - '<(mkcodecache_exec)', + @MAYBE_WRAPPER@ '<(mkcodecache_exec)', ], 'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc', @@ -346,7 +346,7 @@ 'action_name': 'node_mksnapshot', 'process_outputs_as_sources': 1, 'inputs': [ - '<(node_mksnapshot_exec)', + @MAYBE_WRAPPER@ '<(node_mksnapshot_exec)', '<(node_snapshot_main)', ], 'outputs': [ diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp index 73099a03e4..88ca91efb4 100644 --- a/tools/v8_gypfiles/v8.gyp +++ b/tools/v8_gypfiles/v8.gyp @@ -68,7 +68,7 @@ { 'action_name': 'run_torque_action', 'inputs': [ # Order matters. - '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)', + @MAYBE_WRAPPER@ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)', '<@(torque_files)', ], 'outputs': [ @@ -99,7 +99,7 @@ '<@(torque_outputs_inc)', ], 'action': [ - '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)', + @MAYBE_WRAPPER@ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)', '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated', '-v8-root', '<(V8_ROOT)', '<@(torque_files_without_v8_root)', @@ -211,7 +211,7 @@ { 'action_name': 'generate_bytecode_builtins_list_action', 'inputs': [ - '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)', + @MAYBE_WRAPPER@ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)', ], 'outputs': [ '<(generate_bytecode_builtins_list_output)', @@ -395,7 +395,7 @@ ], }, 'inputs': [ - '<(mksnapshot_exec)', + @MAYBE_WRAPPER@ '<(mksnapshot_exec)', ], 'outputs': [ '<(INTERMEDIATE_DIR)/snapshot.cc', @@ -1505,7 +1505,7 @@ { 'action_name': 'run_gen-regexp-special-case_action', 'inputs': [ - '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen-regexp-special-case<(EXECUTABLE_SUFFIX)', + @MAYBE_WRAPPER@ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen-regexp-special-case<(EXECUTABLE_SUFFIX)', ], 'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/src/regexp/special-case.cc', -- 2.37.3 ================================================ FILE: package/nodejs/0001-check-if-uclibc-has-backtrace-support.patch ================================================ From f1a15cea9a47d0a9b0ae78fb22fef3a268e355ad Mon Sep 17 00:00:00 2001 From: Martin Bark Date: Sat, 4 Mar 2017 20:41:40 +0000 Subject: [PATCH] check if uclibc has backtrace support Signed-off-by: Martin Bark --- deps/v8/src/base/debug/stack_trace_posix.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/v8/src/base/debug/stack_trace_posix.cc b/deps/v8/src/base/debug/stack_trace_posix.cc index 270f1ca4e0..5227e88671 100644 --- a/deps/v8/src/base/debug/stack_trace_posix.cc +++ b/deps/v8/src/base/debug/stack_trace_posix.cc @@ -25,7 +25,7 @@ #include #include -#if V8_LIBC_GLIBC || V8_LIBC_BSD || V8_LIBC_UCLIBC || V8_OS_SOLARIS +#if V8_LIBC_GLIBC || V8_LIBC_BSD || ( V8_LIBC_UCLIBC && __UCLIBC_HAS_BACKTRACE__ ) || V8_OS_SOLARIS #define HAVE_EXECINFO_H 1 #endif -- 2.37.3 ================================================ FILE: package/nodejs/0003-include-obj-name-in-shared-intermediate.patch ================================================ From af47d317e5ae12978c1cdc40627008ada144f98b Mon Sep 17 00:00:00 2001 From: Min RK Date: Fri, 19 Feb 2021 11:57:04 +0100 Subject: [PATCH] include obj name in shared intermediate avoids duplicate ninja rules for v8 used in host and target From: https://github.com/minrk/node/commit/5e533cb943eef68b270f55f0cba02c0ec67c699d Signed-off-by: Thomas Petazzoni --- tools/gyp/pylib/gyp/generator/ninja.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/gyp/pylib/gyp/generator/ninja.py b/tools/gyp/pylib/gyp/generator/ninja.py index 3db3771ac9..2e0a021703 100644 --- a/tools/gyp/pylib/gyp/generator/ninja.py +++ b/tools/gyp/pylib/gyp/generator/ninja.py @@ -42,7 +42,7 @@ generator_default_variables = { # the start of a string, while $| is used for variables that can appear # anywhere in a string. "INTERMEDIATE_DIR": "$!INTERMEDIATE_DIR", - "SHARED_INTERMEDIATE_DIR": "$!PRODUCT_DIR/gen", + "SHARED_INTERMEDIATE_DIR": "$!PRODUCT_DIR/$|OBJ/gen", "PRODUCT_DIR": "$!PRODUCT_DIR", "CONFIGURATION_NAME": "$|CONFIGURATION_NAME", # Special variables that may be used by gyp 'rule' targets. @@ -285,6 +285,12 @@ class NinjaWriter: CONFIGURATION_NAME = "$|CONFIGURATION_NAME" path = path.replace(CONFIGURATION_NAME, self.config_name) + obj = "obj" + if self.toolset != "target": + obj += "." + self.toolset + + path = path.replace("$|OBJ", obj) + return path def ExpandRuleVariables(self, path, root, dirname, source, ext, name): -- 2.37.3 ================================================ FILE: package/nodejs/Config.in ================================================ config BR2_PACKAGE_NODEJS_ARCH_SUPPORTS bool # On ARM, at least ARMv6+ with VFPv2+ is needed default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 && BR2_ARM_CPU_HAS_VFPV2 default y if BR2_mipsel && !BR2_MIPS_SOFT_FLOAT default y if BR2_aarch64 || BR2_i386 || BR2_x86_64 # libuv depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET comment "nodejs needs a toolchain w/ C++, dynamic library, NPTL, gcc >= 7, wchar, host gcc >= 8" depends on BR2_USE_MMU depends on BR2_PACKAGE_NODEJS_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ !BR2_HOST_GCC_AT_LEAST_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || !BR2_USE_WCHAR config BR2_PACKAGE_NODEJS bool "nodejs" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_NODEJS_ARCH_SUPPORTS depends on BR2_HOST_GCC_AT_LEAST_8 # qemu depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 depends on BR2_USE_WCHAR # uses fork() depends on BR2_USE_MMU # uses dlopen(). On ARMv5, we could technically support static # linking, but that's too much of a corner case to support it. depends on !BR2_STATIC_LIBS select BR2_PACKAGE_HOST_NODEJS if BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL != "" select BR2_PACKAGE_HOST_PYTHON3 select BR2_PACKAGE_HOST_PYTHON3_BZIP2 select BR2_PACKAGE_HOST_PYTHON3_SSL select BR2_PACKAGE_C_ARES select BR2_PACKAGE_LIBUV select BR2_PACKAGE_ZLIB select BR2_PACKAGE_NGHTTP2 help Event-driven I/O server-side JavaScript environment based on V8. http://nodejs.org/ if BR2_PACKAGE_NODEJS config BR2_PACKAGE_NODEJS_NPM bool "NPM for the target" select BR2_PACKAGE_OPENSSL help NPM is the package manager for the Node JavaScript platform. Note that enabling NPM on the target also selects OpenSSL for the target. http://www.npmjs.org Note that NPM is always built for the buildroot host. config BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL string "Additional modules" help List of space-separated nodejs modules to install via npm. See https://npmjs.org/ to find modules and 'npm help install' for available installation methods. For repeatable builds, download and save tgz files or clone git repos for the components you care about. Example: serialport uglify-js@1.3.4 /my/module/mymodule.tgz \ git://github.com/someuser/somemodule.git#v1.2 This would install the serialport module (at the newest version), the uglify-js module at 1.3.4, a module from a filesystem path, and a module from a git repository. config BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL_DEPS string "Additional module dependencies" help List of space-separated buildroot recipes which must be built before your npms can be installed. For example, if in 'Additional modules' you specified 'node-curl' (see: https://github.com/jiangmiao/node-curl), you could then specify 'libcurl' here, to ensure that buildroot builds the libcurl package, and does so before building your node modules. endif ================================================ FILE: package/nodejs/nodejs.hash ================================================ # From https://nodejs.org/dist/v16.18.1/SHASUMS256.txt sha256 1f8051a88f86f42064f4415fe7a980e59b0a502ecc8def583f6303bc4d445238 node-v16.18.1.tar.xz # Hash for license file sha256 0bec08634ba79b5404f6b7f92ea850f3c2a06e27e6f83f2267e4f5e55ae33334 LICENSE ================================================ FILE: package/nodejs/nodejs.mk ================================================ ################################################################################ # # nodejs # ################################################################################ NODEJS_VERSION = 16.18.1 NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.xz NODEJS_SITE = http://nodejs.org/dist/v$(NODEJS_VERSION) NODEJS_DEPENDENCIES = \ host-ninja \ host-pkgconf \ host-python3 \ host-qemu \ c-ares \ libuv \ nghttp2 \ zlib \ $(call qstrip,$(BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL_DEPS)) HOST_NODEJS_DEPENDENCIES = \ host-icu \ host-libopenssl \ host-ninja \ host-pkgconf \ host-python3 \ host-zlib NODEJS_INSTALL_STAGING = YES NODEJS_LICENSE = MIT (core code); MIT, Apache and BSD family licenses (Bundled components) NODEJS_LICENSE_FILES = LICENSE NODEJS_CPE_ID_VENDOR = nodejs NODEJS_CPE_ID_PRODUCT = node.js NODEJS_CONF_OPTS = \ --shared-zlib \ --shared-cares \ --shared-libuv \ --shared-nghttp2 \ --without-dtrace \ --without-etw \ --cross-compiling \ --dest-os=linux \ --ninja HOST_NODEJS_MAKE_OPTS = \ $(HOST_CONFIGURE_OPTS) \ CXXFLAGS="$(HOST_NODEJS_CXXFLAGS)" \ LDFLAGS.host="$(HOST_LDFLAGS)" \ NO_LOAD=cctest.target.mk \ PATH=$(@D)/bin:$(BR_PATH) NODEJS_MAKE_OPTS = \ $(TARGET_CONFIGURE_OPTS) \ NO_LOAD=cctest.target.mk \ PATH=$(@D)/bin:$(BR_PATH) \ LDFLAGS="$(NODEJS_LDFLAGS)" \ LD="$(TARGET_CXX)" # nodejs's build system uses python which can be a symlink to an unsupported # python version (e.g. python 3.10 with nodejs 14.18.1). We work around this by # forcing host-python3 early in the PATH, via a python->python3 symlink. define NODEJS_PYTHON3_SYMLINK mkdir -p $(@D)/bin ln -sf $(HOST_DIR)/bin/python3 $(@D)/bin/python endef HOST_NODEJS_PRE_CONFIGURE_HOOKS += NODEJS_PYTHON3_SYMLINK NODEJS_PRE_CONFIGURE_HOOKS += NODEJS_PYTHON3_SYMLINK ifeq ($(BR2_PACKAGE_OPENSSL),y) NODEJS_DEPENDENCIES += openssl NODEJS_CONF_OPTS += --shared-openssl else NODEJS_CONF_OPTS += --without-ssl endif ifeq ($(BR2_PACKAGE_ICU),y) NODEJS_DEPENDENCIES += icu NODEJS_CONF_OPTS += --with-intl=system-icu else NODEJS_CONF_OPTS += --with-intl=none endif ifneq ($(BR2_PACKAGE_NODEJS_NPM),y) NODEJS_CONF_OPTS += --without-npm endif define HOST_NODEJS_CONFIGURE_CMDS cd $(@D); \ $(HOST_CONFIGURE_OPTS) \ PATH=$(@D)/bin:$(BR_PATH) \ PYTHON=$(HOST_DIR)/bin/python3 \ $(HOST_DIR)/bin/python3 configure.py \ --prefix=$(HOST_DIR) \ --without-dtrace \ --without-etw \ --shared-openssl \ --shared-openssl-includes=$(HOST_DIR)/include \ --shared-openssl-libpath=$(HOST_DIR)/lib \ --shared-zlib \ --no-cross-compiling \ --with-intl=system-icu \ --ninja endef HOST_NODEJS_CXXFLAGS = $(HOST_CXXFLAGS) define HOST_NODEJS_BUILD_CMDS $(HOST_MAKE_ENV) PYTHON=$(HOST_DIR)/bin/python3 \ $(MAKE) -C $(@D) \ $(HOST_NODEJS_MAKE_OPTS) endef define HOST_NODEJS_INSTALL_CMDS $(HOST_MAKE_ENV) PYTHON=$(HOST_DIR)/bin/python3 \ $(MAKE) -C $(@D) install \ $(HOST_NODEJS_MAKE_OPTS) endef ifeq ($(BR2_i386),y) NODEJS_CPU = ia32 else ifeq ($(BR2_x86_64),y) NODEJS_CPU = x64 else ifeq ($(BR2_mips),y) NODEJS_CPU = mips else ifeq ($(BR2_mipsel),y) NODEJS_CPU = mipsel else ifeq ($(BR2_arm),y) NODEJS_CPU = arm # V8 needs to know what floating point ABI the target is using. NODEJS_ARM_FP = $(GCC_TARGET_FLOAT_ABI) # it also wants to know which FPU to use, but only has support for # vfp, vfpv3, vfpv3-d16 and neon. ifeq ($(BR2_ARM_FPU_VFPV2),y) NODEJS_ARM_FPU = vfp # vfpv4 is a superset of vfpv3 else ifeq ($(BR2_ARM_FPU_VFPV3)$(BR2_ARM_FPU_VFPV4),y) NODEJS_ARM_FPU = vfpv3 # vfpv4-d16 is a superset of vfpv3-d16 else ifeq ($(BR2_ARM_FPU_VFPV3D16)$(BR2_ARM_FPU_VFPV4D16),y) NODEJS_ARM_FPU = vfpv3-d16 else ifeq ($(BR2_ARM_FPU_NEON),y) NODEJS_ARM_FPU = neon endif else ifeq ($(BR2_aarch64),y) NODEJS_CPU = arm64 endif # MIPS architecture specific options ifeq ($(BR2_mips)$(BR2_mipsel),y) ifeq ($(BR2_MIPS_CPU_MIPS32R6),y) NODEJS_MIPS_ARCH_VARIANT = r6 NODEJS_MIPS_FPU_MODE = fp64 else ifeq ($(BR2_MIPS_CPU_MIPS32R2),y) NODEJS_MIPS_ARCH_VARIANT = r2 else ifeq ($(BR2_MIPS_CPU_MIPS32),y) NODEJS_MIPS_ARCH_VARIANT = r1 endif endif NODEJS_LDFLAGS = $(TARGET_LDFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) NODEJS_LDFLAGS += -latomic endif # V8's JIT infrastructure requires binaries such as mksnapshot and # mkpeephole to be run in the host during the build. However, these # binaries must have the same bit-width as the target (e.g. a x86_64 # host targeting ARMv6 needs to produce a 32-bit binary). To work around this # issue, cross-compile the binaries for the target and run them on the # host with QEMU, much like gobject-introspection. define NODEJS_INSTALL_V8_QEMU_WRAPPER $(INSTALL) -D -m 755 $(NODEJS_PKGDIR)/v8-qemu-wrapper.in \ $(@D)/out/Release/v8-qemu-wrapper $(SED) "s%@QEMU_USER@%$(QEMU_USER)%g" \ $(@D)/out/Release/v8-qemu-wrapper $(SED) "s%@TOOLCHAIN_HEADERS_VERSION@%$(BR2_TOOLCHAIN_HEADERS_AT_LEAST)%g" \ $(@D)/out/Release/v8-qemu-wrapper $(SED) "s%@QEMU_USERMODE_ARGS@%$(call qstrip,$(BR2_PACKAGE_HOST_QEMU_USER_MODE_ARGS))%g" \ $(@D)/out/Release/v8-qemu-wrapper endef NODEJS_PRE_CONFIGURE_HOOKS += NODEJS_INSTALL_V8_QEMU_WRAPPER define NODEJS_WRAPPER_FIXUP $(SED) "s%@MAYBE_WRAPPER@%'<(PRODUCT_DIR)/v8-qemu-wrapper',%g" $(@D)/node.gyp $(SED) "s%@MAYBE_WRAPPER@%'<(PRODUCT_DIR)/v8-qemu-wrapper',%g" $(@D)/tools/v8_gypfiles/v8.gyp endef NODEJS_PRE_CONFIGURE_HOOKS += NODEJS_WRAPPER_FIXUP # Do not run the qemu-wrapper for the host build. define HOST_NODEJS_WRAPPER_FIXUP $(SED) "s%@MAYBE_WRAPPER@%%g" $(@D)/node.gyp $(SED) "s%@MAYBE_WRAPPER@%%g" $(@D)/tools/v8_gypfiles/v8.gyp endef HOST_NODEJS_PRE_CONFIGURE_HOOKS += HOST_NODEJS_WRAPPER_FIXUP define NODEJS_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_CONFIGURE_OPTS) \ PATH=$(@D)/bin:$(BR_PATH) \ LDFLAGS="$(NODEJS_LDFLAGS)" \ LD="$(TARGET_CXX)" \ PYTHON=$(HOST_DIR)/bin/python3 \ $(HOST_DIR)/bin/python3 configure.py \ --prefix=/usr \ --dest-cpu=$(NODEJS_CPU) \ $(if $(NODEJS_ARM_FP),--with-arm-float-abi=$(NODEJS_ARM_FP)) \ $(if $(NODEJS_ARM_FPU),--with-arm-fpu=$(NODEJS_ARM_FPU)) \ $(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)) \ $(NODEJS_CONF_OPTS) \ ) endef define NODEJS_BUILD_CMDS $(TARGET_MAKE_ENV) PYTHON=$(HOST_DIR)/bin/python3 \ $(MAKE) -C $(@D) \ $(NODEJS_MAKE_OPTS) endef # # Build the list of modules to install. # NODEJS_MODULES_LIST= $(call qstrip,\ $(BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL)) # Define NPM for other packages to use NPM = $(TARGET_CONFIGURE_OPTS) \ LDFLAGS="$(NODEJS_LDFLAGS)" \ LD="$(TARGET_CXX)" \ npm_config_arch=$(NODEJS_CPU) \ npm_config_target_arch=$(NODEJS_CPU) \ npm_config_build_from_source=true \ npm_config_nodedir=$(BUILD_DIR)/nodejs-$(NODEJS_VERSION) \ npm_config_prefix=$(TARGET_DIR)/usr \ npm_config_cache=$(BUILD_DIR)/.npm-cache \ $(HOST_DIR)/bin/npm # # We can only call NPM if there's something to install. # ifneq ($(NODEJS_MODULES_LIST),) NODEJS_DEPENDENCIES += host-nodejs define NODEJS_INSTALL_MODULES # If you're having trouble with module installation, adding -d to the # npm install call below and setting npm_config_rollback=false can both # help in diagnosing the problem. $(NPM) install -g $(NODEJS_MODULES_LIST) endef endif define NODEJS_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) PYTHON=$(HOST_DIR)/bin/python3 \ $(MAKE) -C $(@D) install \ DESTDIR=$(STAGING_DIR) \ $(NODEJS_MAKE_OPTS) endef define NODEJS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) PYTHON=$(HOST_DIR)/bin/python3 \ $(MAKE) -C $(@D) install \ DESTDIR=$(TARGET_DIR) \ $(NODEJS_MAKE_OPTS) $(NODEJS_INSTALL_MODULES) endef # node.js configure is a Python script and does not use autotools $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/nodejs/v8-qemu-wrapper.in ================================================ #!/usr/bin/env sh # Pass -r to qemu-user as to trick glibc into not errorings out if the host kernel # is older than the target kernel. exec @QEMU_USER@ -r @TOOLCHAIN_HEADERS_VERSION@ \ @QEMU_USERMODE_ARGS@ \ -L "${STAGING_DIR}/" \ "$@" ================================================ FILE: package/nodm/Config.in ================================================ 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_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 toolchain w/ wchar, locale, dynamic library" depends on BR2_PACKAGE_XORG7 depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \ || BR2_STATIC_LIBS ================================================ FILE: package/nodm/S90nodm ================================================ #!/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 $? ================================================ FILE: package/nodm/nodm.hash ================================================ # locally calculated sha256 ef11667ae82846801a9633df36c20f632cc03319bb1da35f062ac0f950771273 nodm-0.13.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/nodm/nodm.mk ================================================ ################################################################################ # # nodm # ################################################################################ NODM_VERSION = 0.13 NODM_SITE = $(call github,spanezz,nodm,$(NODM_VERSION)) NODM_LICENSE = GPL-2.0+ 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)) ================================================ FILE: package/nodm/nodm.pam ================================================ # 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 ================================================ FILE: package/noip/Config.in ================================================ config BR2_PACKAGE_NOIP bool "noip" depends on BR2_USE_MMU # fork() help Dynamic DNS update client for no-ip.com http://www.no-ip.com/downloads.php ================================================ FILE: package/noip/noip.hash ================================================ # Locally calculated sha256 82b9bafab96a0c53b21aaef688bf70b3572e26217b5e2072bdb09da3c4a6f593 noip-duc-linux.tar.gz sha256 5aaf7e9e1790c6e372b6c5dec8c6c4b60504414a8c56f64c3071d281d3c251fa COPYING ================================================ FILE: package/noip/noip.mk ================================================ ################################################################################ # # noip # ################################################################################ NOIP_VERSION = 2.1.9 NOIP_SITE = http://www.no-ip.com/client/linux NOIP_SOURCE = noip-duc-linux.tar.gz NOIP_LICENSE = GPL-2.0+ NOIP_LICENSE_FILES = COPYING define NOIP_BUILD_CMDS $(SED) "/^#define CONFIG_FILENAME/ s/PREFIX//" $(@D)/noip2.c $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CC="$(TARGET_CC)" \ CFLAGS="$(TARGET_CFLAGS)" PREFIX=/usr CONFDIR=/etc endef define NOIP_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/noip2 $(TARGET_DIR)/usr/sbin/noip2 endef $(eval $(generic-package)) ================================================ FILE: package/norm/0001-protolib-drop-linux-version-check.patch ================================================ 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() ================================================ FILE: package/norm/0002-Use-print-as-function-call-for-Python3-compatibility.patch ================================================ From 8c02c2cbc6f07ddaef23e6bf2f6b9a269ed85ff4 Mon Sep 17 00:00:00 2001 From: Titouan Christophe Date: Tue, 4 Feb 2020 11:59:07 +0100 Subject: [PATCH] Use print as function call for Python3 compatibility A similar patch has already been applied upstream, in commit ada15125a1cbb3b1718d6eef78512a36ed327fcc, which will therefore be available in the next norm release Signed-off-by: Titouan Christophe --- wscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wscript b/wscript index 8428899..0fdae96 100644 --- a/wscript +++ b/wscript @@ -32,7 +32,7 @@ for line in vfile.readlines(): if "#define" == line[0] and "VERSION" == line[1]: VERSION = line[2].strip('"') if VERSION is None: - print "Warning: NORM VERSION not found!?" + print("Warning: NORM VERSION not found!?") # So you don't need to do ./waf configure if you are just using the defaults waflib.Configure.autoconfig = True -- 2.24.1 ================================================ FILE: package/norm/0003-Fix-mixed-tabs-spaces-in-protolib-wscript.patch ================================================ From 0ff75628845d3c86974c31b50ecd60c0b0144c6d Mon Sep 17 00:00:00 2001 From: Titouan Christophe Date: Tue, 4 Feb 2020 13:44:27 +0100 Subject: [PATCH] Fix mixed tabs/spaces in protolib wscript This fixes the following error when using waf in Python3: TabError: inconsistent use of tabs and spaces in indentation The upstream file has since diverged, but with similar issues. [Upstream status: https://github.com/USNavalResearchLaboratory/protolib/pull/6] Signed-off-by: Titouan Christophe --- protolib/wscript | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/protolib/wscript b/protolib/wscript index 155a660..97dda93 100644 --- a/protolib/wscript +++ b/protolib/wscript @@ -120,7 +120,7 @@ def configure(ctx): # Compiler-specific flags if ctx.options.debug: #ctx.env.DEFINES_BUILD_PROTOLIB += ['PROTO_DEBUG', 'DEBUG', '_DEBUG'] - ctx.env.DEFINES_BUILD_PROTOLIB += ['PROTO_DEBUG', 'DEBUG'] + ctx.env.DEFINES_BUILD_PROTOLIB += ['PROTO_DEBUG', 'DEBUG'] else: ctx.env.DEFINES_BUILD_PROTOLIB += ['NDEBUG', "PROTO_DEBUG"] @@ -139,7 +139,7 @@ def configure(ctx): ctx.env.CFLAGS += ['/Od', '/RTC1', '/ZI'] else: ctx.env.CXXFLAGS += ['/Ox', '/DNDEBUG'] - #ctx.env.CXXFLAGS += ['/Ox', '/DNDEBUG', '/DWINVER=0x0501'] + #ctx.env.CXXFLAGS += ['/Ox', '/DNDEBUG', '/DWINVER=0x0501'] ctx.env.CFLAGS def build(ctx): -- 2.24.1 ================================================ FILE: package/norm/Config.in ================================================ 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 ================================================ FILE: package/norm/norm.hash ================================================ # Locally calculated sha256 4480a6ea53fb7ce45b4bc2061d18fbfd46ee9990fc2ed9a9dc303ce4d87888a6 src-norm-with-protolib-1.5.8.tgz sha256 ba4b7e49b0163d6839830e3f47505696c6eaac77ccd93531831dc837b2160608 LICENSE.TXT ================================================ FILE: package/norm/norm.mk ================================================ ################################################################################ # # norm # ################################################################################ NORM_VERSION = 1.5.8 NORM_SITE = https://github.com/USNavalResearchLaboratory/norm/releases/download/v$(NORM_VERSION) NORM_SOURCE = src-norm-with-protolib-$(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 # install target doesn't install headers unfortunately... define NORM_INSTALL_HEADERS cp -f $(@D)/include/norm* $(STAGING_DIR)/usr/include endef NORM_POST_INSTALL_STAGING_HOOKS += NORM_INSTALL_HEADERS $(eval $(waf-package)) ================================================ FILE: package/nss-mdns/Config.in ================================================ config BR2_PACKAGE_NSS_MDNS bool "nss-mdns" # libdaemon->avahi uses fork() depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_PACKAGE_AVAHI_DAEMON help nss-mdns is a plugin for the GNU Name Service Switch (NSS) functionality of the GNU C Library (glibc) providing host name resolution via Multicast DNS (aka Zeroconf, aka Apple Rendezvous, aka Apple Bonjour), effectively allowing name resolution by common Unix/Linux programs in the ad-hoc mDNS domain .local. https://github.com/lathiat/nss-mdns comment "nss-mdns needs a glibc toolchain" depends on BR2_USE_MMU && BR2_PACKAGE_AVAHI_DAEMON depends on !BR2_TOOLCHAIN_USES_GLIBC ================================================ FILE: package/nss-mdns/nss-mdns.hash ================================================ # Locally calculated sha256 a2094101b735cade45048764ea594bdae2bfa9399837f3c852a5b264416e9c8c nss-mdns-0.14.1.tar.gz sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 LICENSE ================================================ FILE: package/nss-mdns/nss-mdns.mk ================================================ ################################################################################ # # nss-mdns # ################################################################################ NSS_MDNS_VERSION = 0.14.1 NSS_MDNS_SITE = \ https://github.com/lathiat/nss-mdns/releases/download/v$(NSS_MDNS_VERSION) NSS_MDNS_LICENSE = LGPL-2.1+ NSS_MDNS_LICENSE_FILES = LICENSE NSS_MDNS_CONF_OPTS = --disable-tests # add mdns4_minimal / mdns around the dns provider if missing define NSS_MDNS_INSTALL_CONFIG $(SED) '/^hosts:/ {/mdns4/! s/dns/mdns4_minimal [NOTFOUND=return] dns mdns4/}' \ $(TARGET_DIR)/etc/nsswitch.conf endef NSS_MDNS_TARGET_FINALIZE_HOOKS += NSS_MDNS_INSTALL_CONFIG $(eval $(autotools-package)) ================================================ FILE: package/nss-myhostname/Config.in ================================================ config BR2_PACKAGE_NSS_MYHOSTNAME bool "nss-myhostname" depends on BR2_TOOLCHAIN_USES_GLIBC depends on !BR2_PACKAGE_SYSTEMD_MYHOSTNAME help Name Service Switch module for resolving the local hostname http://0pointer.de/lennart/projects/nss-myhostname comment "nss-myhostname needs a glibc toolchain" depends on !BR2_TOOLCHAIN_USES_GLIBC depends on !BR2_PACKAGE_SYSTEMD_MYHOSTNAME ================================================ FILE: package/nss-myhostname/nss-myhostname.hash ================================================ # locally computed sha256 2ba744ea8d578d1c57c85884e94a3042ee17843a5294434d3a7f6c4d67e7caf2 nss-myhostname-0.3.tar.gz sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 LICENSE ================================================ FILE: package/nss-myhostname/nss-myhostname.mk ================================================ ################################################################################ # ## nss-myhostname # ################################################################################ NSS_MYHOSTNAME_VERSION = 0.3 NSS_MYHOSTNAME_SITE = http://0pointer.de/lennart/projects/nss-myhostname NSS_MYHOSTNAME_LICENSE = LGPL-2.1+ NSS_MYHOSTNAME_LICENSE_FILES = LICENSE # add myhostname after files if missing define NSS_MYHOSTNAME_SET_NSSWITCH $(SED) '/^hosts:/ {/myhostname/! s/files/files myhostname/}' \ $(TARGET_DIR)/etc/nsswitch.conf endef NSS_MYHOSTNAME_TARGET_FINALIZE_HOOKS += NSS_MYHOSTNAME_SET_NSSWITCH $(eval $(autotools-package)) ================================================ FILE: package/nss-pam-ldapd/Config.in ================================================ config BR2_PACKAGE_NSS_PAM_LDAPD bool "nss-pam-ldapd" depends on BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_OPENLDAP help Name Service Switch (NSS) module that allows your LDAP server to provide user account, group, host name, alias, netgroup, and basically any other information that you would normally get from /etc flat files or NIS. It also provides a Pluggable Authentication Module (PAM) to do authentication to an LDAP server. http://arthurdejong.org/nss-pam-ldapd/ if BR2_PACKAGE_NSS_PAM_LDAPD config BR2_PACKAGE_NSS_PAM_LDAPD_UTILITIES bool "nss-pam-ldapd utilities" help Build/Install command-line utilities. endif comment "nss-pam-ldapd needs a glibc toolchain" depends on !BR2_TOOLCHAIN_USES_GLIBC ================================================ FILE: package/nss-pam-ldapd/S45nslcd ================================================ #!/bin/sh NAME="nslcd" DAEMON="/usr/sbin/${NAME}" case "$1" in start) echo -n "Starting ${NAME}: " start-stop-daemon -S -x ${DAEMON} [ $? -eq 0 ] && echo "OK" || echo "FAIL" ;; stop) echo -n "Stopping ${NAME}: " start-stop-daemon -K -x ${DAEMON} [ $? -eq 0 ] && echo "OK" || echo "FAIL" ;; restart|reload) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/nss-pam-ldapd/nslcd.service ================================================ [Unit] Description=Naming services LDAP client daemon. After=syslog.target network.target [Service] Type=forking PIDFile=/run/nslcd/nslcd.pid ExecStart=/usr/sbin/nslcd [Install] WantedBy=multi-user.target ================================================ FILE: package/nss-pam-ldapd/nss-pam-ldapd.hash ================================================ # From https://arthurdejong.org/nss-pam-ldapd/nss-pam-ldapd-0.9.11.tar.gz.md5 md5 91df9d46a548aa7aa95d0e7c672215d0 nss-pam-ldapd-0.9.8.tar.gz # Locally computed: sha256 d0d71be06d1a90940b7566ce00cef1a465aae7171d5d062785506a83411ecab6 nss-pam-ldapd-0.9.11.tar.gz sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING ================================================ FILE: package/nss-pam-ldapd/nss-pam-ldapd.mk ================================================ ################################################################################ # # nss-pam-ldapd # ################################################################################ NSS_PAM_LDAPD_VERSION = 0.9.11 NSS_PAM_LDAPD_SITE = http://arthurdejong.org/nss-pam-ldapd NSS_PAM_LDAPD_LICENSE = LGPL-2.1+ NSS_PAM_LDAPD_LICENSE_FILES = COPYING NSS_PAM_LDAPD_INSTALL_STAGING = YES NSS_PAM_LDAPD_CONF_OPTS = --disable-sasl NSS_PAM_LDAPD_DEPENDENCIES = openldap ifeq ($(BR2_PACKAGE_NSS_PAM_LDAPD_UTILITIES),y) NSS_PAM_LDAPD_CONF_OPTS += --enable-utils else NSS_PAM_LDAPD_CONF_OPTS += --disable-utils endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) NSS_PAM_LDAPD_CONF_OPTS += --enable-pam NSS_PAM_LDAPD_DEPENDENCIES += linux-pam else NSS_PAM_LDAPD_CONF_OPTS += --disable-pam endif define NSS_PAM_LDAPD_INSTALL_INIT_SYSTEMD $(INSTALL) -m 644 -D package/nss-pam-ldapd/nslcd.service \ $(TARGET_DIR)/usr/lib/systemd/system/nslcd.service endef define NSS_PAM_LDAPD_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/nss-pam-ldapd/S45nslcd \ $(TARGET_DIR)/etc/init.d/S45nslcd endef define NSS_PAM_LDAPD_USERS nslcd -1 nslcd -1 * - - - nslcd user endef $(eval $(autotools-package)) ================================================ FILE: package/ntfs-3g/Config.in ================================================ config BR2_PACKAGE_NTFS_3G bool "ntfs-3g" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS help The NTFS-3G driver is an open source, freely available read/write NTFS driver for Linux, FreeBSD, Mac OS X, NetBSD, and Haiku. It provides safe and fast handling of the Windows XP, Windows Server 2003, Windows 2000 and Windows Vista file systems. Most POSIX file system operations are supported, with the exception of full file ownership and access right support. http://www.ntfs-3g.org/ 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 Enable support for NTFS encrypted volumes. config BR2_PACKAGE_NTFS_3G_NTFSPROGS bool "ntfsprogs" help Install NTFS utilities. endif comment "ntfs-3g 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 ================================================ FILE: package/ntfs-3g/ntfs-3g.hash ================================================ # Locally calculated sha256 55b883aa05d94b2ec746ef3966cb41e66bed6db99f22ddd41d1b8b94bb202efb ntfs-3g_ntfsprogs-2021.8.22.tgz sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING sha256 d7bf9d064ac3e5840f9dd02422b7eeec4f1fd03f37fadbd043602be5e882304f COPYING.LIB ================================================ FILE: package/ntfs-3g/ntfs-3g.mk ================================================ ################################################################################ # # ntfs-3g # ################################################################################ NTFS_3G_VERSION = 2021.8.22 NTFS_3G_SOURCE = ntfs-3g_ntfsprogs-$(NTFS_3G_VERSION).tgz NTFS_3G_SITE = http://tuxera.com/opensource NTFS_3G_CONF_OPTS = --disable-ldconfig NTFS_3G_INSTALL_STAGING = YES NTFS_3G_DEPENDENCIES = host-pkgconf NTFS_3G_LICENSE = GPL-2.0+, LGPL-2.0+ NTFS_3G_LICENSE_FILES = COPYING COPYING.LIB NTFS_3G_CPE_ID_VENDOR = tuxera ifeq ($(BR2_PACKAGE_LIBFUSE),y) NTFS_3G_CONF_OPTS += --with-fuse=external NTFS_3G_DEPENDENCIES += libfuse endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y) NTFS_3G_DEPENDENCIES += util-linux endif ifeq ($(BR2_PACKAGE_NTFS_3G_ENCRYPTED),y) NTFS_3G_CONF_ENV += LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config NTFS_3G_CONF_OPTS += --enable-crypto NTFS_3G_DEPENDENCIES += gnutls libgcrypt endif ifneq ($(BR2_PACKAGE_NTFS_3G_NTFSPROGS),y) NTFS_3G_CONF_OPTS += --disable-ntfsprogs endif $(eval $(autotools-package)) ================================================ FILE: package/ntp/0001-nano.patch ================================================ Fixes issues with glibc header files, see http://bugs.gentoo.org/show_bug.cgi?id=270483 Signed-off-by: Gustavo Zacarias Rebase to apply cleanly. Signed-off-by: Danomi Manchego diff -purN a/include/ntp_syscall.h b/include/ntp_syscall.h --- a/include/ntp_syscall.h 2015-02-11 08:42:37.794576469 -0500 +++ b/include/ntp_syscall.h 2015-02-11 08:43:03.216957279 -0500 @@ -10,6 +10,14 @@ # include #endif +#if defined(ADJ_NANO) && !defined(MOD_NANO) +#define MOD_NANO ADJ_NANO +#endif + +#if defined(ADJ_TAI) && !defined(MOD_TAI) +#define MOD_TAI ADJ_TAI +#endif + #ifndef NTP_SYSCALLS_LIBC # ifdef NTP_SYSCALLS_STD # define ntp_adjtime(t) syscall(SYS_ntp_adjtime, (t)) ================================================ FILE: package/ntp/0002-ntp-syscalls-fallback.patch ================================================ inline ntp syscalls fallback Reference: https://bugs.ntp.org/show_bug.cgi?id=769 Signed-off-by: James Knight --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac --- a/configure.ac +++ b/configure.ac @@ -1523,11 +1523,11 @@ AC_CACHE_CHECK( [ntp_cv_var_ntp_syscalls], [ ntp_cv_var_ntp_syscalls=no - case "$ac_cv_func_ntp_adjtime$ac_cv_func_ntp_gettime$ac_cv_func___adjtimex" in + case "$ac_cv_func_ntp_adjtime$ac_cv_func_ntp_gettime$ac_cv_func___adjtimex$ac_cv_func_adjtimex" in yesyes*) ntp_cv_var_ntp_syscalls=libc ;; - *yes) + *yesyes | *yesno | *noyes) ntp_cv_var_ntp_syscalls=inline ;; *) ================================================ FILE: package/ntp/0003-override-shell.patch ================================================ sntp/libopts/m4/libopts.m4: allow override shell with POSIX_SHELL Pull in fix from upstream AutoGen [1] to accept POSIX_SHELL from the environment during the configure step. [1] http://git.savannah.gnu.org/cgit/autogen.git/commit/?id=db064b9a252f3ef3d8db25411ea0edb0ff8ea758 Signed-off-by: James Byrne diff --git a/sntp/libopts/m4/libopts.m4 b/sntp/libopts/m4/libopts.m4 --- a/sntp/libopts/m4/libopts.m4 +++ b/sntp/libopts/m4/libopts.m4 @@ -114,6 +114,7 @@ AC_PROG_SED [while : do + test -x "$POSIX_SHELL" && break POSIX_SHELL=`which bash` test -x "$POSIX_SHELL" && break POSIX_SHELL=`which dash` ================================================ FILE: package/ntp/0004-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch ================================================ From 082a504cfcc046c3d8adaae1164268bc94e5108a Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 31 Jul 2021 10:51:41 -0700 Subject: [PATCH] libntp: Do not use PTHREAD_STACK_MIN on glibc In glibc 2.34+ PTHREAD_STACK_MIN is not a compile-time constant which could mean different stack sizes at runtime on different architectures and it also causes compile failure. Default glibc thread stack size or 64Kb set by ntp should be good in glibc these days. Signed-off-by: Khem Raj [Copied from https://github.com/openembedded/meta-openembedded/blob/master/meta-networking/recipes-support/ntp/ntp/0001-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch] Signed-off-by: Alexey Brodkin --- libntp/work_thread.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libntp/work_thread.c b/libntp/work_thread.c index 03a5647..3ddd751 100644 --- a/libntp/work_thread.c +++ b/libntp/work_thread.c @@ -41,7 +41,7 @@ #ifndef THREAD_MINSTACKSIZE # define THREAD_MINSTACKSIZE (64U * 1024) #endif -#ifndef __sun +#if !defined(__sun) && !defined(__GLIBC__) #if defined(PTHREAD_STACK_MIN) && THREAD_MINSTACKSIZE < PTHREAD_STACK_MIN # undef THREAD_MINSTACKSIZE # define THREAD_MINSTACKSIZE PTHREAD_STACK_MIN -- 2.32.0 ================================================ FILE: package/ntp/Config.in ================================================ config BR2_PACKAGE_NTP bool "ntp" select BR2_PACKAGE_LIBEVENT help Network Time Protocol suite/programs. Provides things like ntpd, ntpdate, ntpq, etc... http://www.ntp.org/ if BR2_PACKAGE_NTP config BR2_PACKAGE_NTP_SNTP bool "sntp" help Simple network time protocol program (a replacement for the ntpdate tool) A script is installed as S48sntp which will retrieve and step the time if there is a large difference before ntpd takes over the necessary slew adjustments in S49ntp. config BR2_PACKAGE_NTP_NTP_KEYGEN bool "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 help ntp-wait waits until the locally running ntpd is in state 4 (synchronized). This could be useful at boot time, to delay the boot sequence until after "ntpd -g" has set the time. config BR2_PACKAGE_NTP_NTPD bool "ntpd" default y help ntpd is the time synchronization daemon keeping your local system date and time in sync and optionally serving time and date information on the network via the NTP protocol. config BR2_PACKAGE_NTP_NTPD_ATOM_PPS bool "PPS support" depends on BR2_PACKAGE_NTP_NTPD select BR2_PACKAGE_PPS_TOOLS help Compile ntpd with the ability to use an ATOM PPS source. config BR2_PACKAGE_NTP_NTPDATE bool "ntpdate" help The ntpdate utility program is used to set the local date and time from an NTP server given as an argument. config BR2_PACKAGE_NTP_NTPDC bool "ntpdc" help The ntpdc utility program is used to query an NTP daemon about its current state and to request changes in that state. config BR2_PACKAGE_NTP_NTPQ bool "ntpq" help The ntpq utility program is used to query NTP servers requesting information about current state and/or changes in that state. config BR2_PACKAGE_NTP_NTPSNMPD bool "ntpsnmpd" depends on BR2_USE_MMU # netsnmp fork() select BR2_PACKAGE_NETSNMP help Install ntpsnmpd NTP SNMP MIB agent. config BR2_PACKAGE_NTP_NTPTIME bool "ntptime" help The ntptime utility program is used to read and set kernel time variables. config BR2_PACKAGE_NTP_NTPTRACE bool "ntptrace" depends on BR2_PACKAGE_PERL help ntptrace is a perl script that uses the ntpq utility program to follow the chain of NTP servers from a given host back to the primary time source config BR2_PACKAGE_NTP_TICKADJ bool "tickadj" help set time-related kernel variables endif ================================================ FILE: package/ntp/S48sntp ================================================ #!/bin/sh DAEMON="sntp" # sntp uses all the IPs resolved for the hostname (i.e. pool.ntp.org has 4). # It will try each until they either all timeout or time has been set. Thus # default to only providing one NTP pool host. SNTP_SERVERS="pool.ntp.org" # Step if time delta is greater then 128ms, otherwise slew SNTP_ARGS="-Ss -M 128" SNTP_KEY_CACHE="/tmp/kod" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # Create key cache file to prevents warning that file is missing touch $SNTP_KEY_CACHE # shellcheck disable=SC2086 # we need the word splitting /usr/bin/$DAEMON $SNTP_ARGS -K $SNTP_KEY_CACHE $SNTP_SERVERS # sntp behavior # - Does not background # - Does not infinitely block # - Time-out w/o network = ~2 sec # - Time-out w/ network = ~5sec * # of servers status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { echo "Nothing to do, $DAEMON is not a daemon." } restart() { stop sleep 1 start } reload() { echo "Nothing to do, $DAEMON does not support reload." } case "$1" in start|stop|restart|reload) "$1";; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/ntp/S49ntp ================================================ #!/bin/sh # # Starts Network Time Protocol daemon # DAEMON="ntpd" PIDFILE="/var/run/$DAEMON.pid" NTPD_ARGS="-g" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- $NTPD_ARGS -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/ntp/ntp.hash ================================================ # From http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8p15.tar.gz.md5 md5 e1e6b23d2fc75cced41801dbcd6c2561 ntp-4.2.8p15.tar.gz # Calculated based on the hash above sha256 f65840deab68614d5d7ceb2d0bb9304ff70dcdedd09abb79754a87536b849c19 ntp-4.2.8p15.tar.gz sha256 957e6a13445cc61ab1ca3dc80d8c269cf9b0a6d9eaec20f9f39639b0b3e66ee8 COPYRIGHT ================================================ FILE: package/ntp/ntp.mk ================================================ ################################################################################ # # ntp # ################################################################################ NTP_VERSION_MAJOR = 4.2 NTP_VERSION_MINOR = 8 NTP_VERSION_POINT = 15 NTP_VERSION = $(NTP_VERSION_MAJOR).$(NTP_VERSION_MINOR)p$(NTP_VERSION_POINT) NTP_SITE = https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-$(NTP_VERSION_MAJOR) NTP_DEPENDENCIES = host-pkgconf libevent NTP_LICENSE = NTP NTP_LICENSE_FILES = COPYRIGHT NTP_CPE_ID_VENDOR = ntp NTP_CPE_ID_VERSION = $(NTP_VERSION_MAJOR).$(NTP_VERSION_MINOR) NTP_CPE_ID_UPDATE = p$(NTP_VERSION_POINT) NTP_SELINUX_MODULES = ntp NTP_CONF_ENV = ac_cv_lib_md5_MD5Init=no POSIX_SHELL=/bin/sh 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 NTP_AUTORECONF = YES ifeq ($(BR2_PACKAGE_OPENSSL),y) NTP_CONF_OPTS += --with-crypto --enable-openssl-random NTP_DEPENDENCIES += openssl else NTP_CONF_OPTS += --without-crypto --disable-openssl-random endif ifeq ($(BR2_TOOLCHAIN_HAS_SSP),y) NTP_CONF_OPTS += --with-hardenfile=linux else NTP_CONF_OPTS += --with-hardenfile=default endif ifeq ($(BR2_PACKAGE_LIBCAP),y) NTP_CONF_OPTS += --enable-linuxcaps NTP_DEPENDENCIES += libcap else NTP_CONF_OPTS += --disable-linuxcaps endif ifeq ($(BR2_PACKAGE_LIBEDIT),y) NTP_CONF_OPTS += --with-lineeditlibs=edit NTP_DEPENDENCIES += libedit else NTP_CONF_OPTS += --without-lineeditlibs endif ifeq ($(BR2_PACKAGE_NTP_NTPSNMPD),y) NTP_CONF_OPTS += \ --with-net-snmp-config=$(STAGING_DIR)/usr/bin/net-snmp-config NTP_DEPENDENCIES += netsnmp else NTP_CONF_OPTS += --without-ntpsnmpd endif ifeq ($(BR2_PACKAGE_NTP_NTPD_ATOM_PPS),y) NTP_CONF_OPTS += --enable-ATOM NTP_DEPENDENCIES += pps-tools 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 ifeq ($(BR2_PACKAGE_NTP_SNTP),y) NTP_CONF_OPTS += --with-sntp else NTP_CONF_OPTS += --without-sntp 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 NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_NTPDC) += ntpdc/ntpdc NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_NTPQ) += ntpq/ntpq NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_NTPSNMPD) += ntpsnmpd/ntpsnmpd NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_NTPTIME) += util/ntptime NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_NTPTRACE) += scripts/ntptrace/ntptrace NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_SNTP) += sntp/sntp NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_TICKADJ) += util/tickadj define NTP_INSTALL_TARGET_CMDS $(if $(BR2_PACKAGE_NTP_NTPD), install -m 755 $(@D)/ntpd/ntpd $(TARGET_DIR)/usr/sbin/ntpd) test -z "$(NTP_INSTALL_FILES_y)" || install -m 755 $(addprefix $(@D)/,$(NTP_INSTALL_FILES_y)) $(TARGET_DIR)/usr/bin/ $(INSTALL) -m 644 package/ntp/ntpd.etc.conf $(TARGET_DIR)/etc/ntp.conf endef # This script will step the time if there is a large difference # before ntpd takes over the necessary slew adjustments ifeq ($(BR2_PACKAGE_NTP_SNTP),y) define NTP_INSTALL_INIT_SYSV_SNTP $(INSTALL) -D -m 755 package/ntp/S48sntp $(TARGET_DIR)/etc/init.d/S48sntp endef endif ifeq ($(BR2_PACKAGE_NTP_NTPD),y) define NTP_INSTALL_INIT_SYSV_NTPD $(INSTALL) -D -m 755 package/ntp/S49ntp $(TARGET_DIR)/etc/init.d/S49ntp endef define NTP_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/ntp/ntpd.service $(TARGET_DIR)/usr/lib/systemd/system/ntpd.service endef endif define NTP_INSTALL_INIT_SYSV $(NTP_INSTALL_INIT_SYSV_NTPD) $(NTP_INSTALL_INIT_SYSV_SNTP) endef $(eval $(autotools-package)) ================================================ FILE: package/ntp/ntpd.etc.conf ================================================ server 0.pool.ntp.org iburst server 1.pool.ntp.org iburst server 2.pool.ntp.org iburst server 3.pool.ntp.org iburst # Allow only time queries, at a limited rate, sending KoD when in excess. # Allow all local queries (IPv4, IPv6) restrict default nomodify nopeer noquery limited kod restrict 127.0.0.1 restrict [::1] ================================================ FILE: package/ntp/ntpd.service ================================================ [Unit] Description=Network Time Service After=network.target [Service] Type=forking PIDFile=/run/ntpd.pid # Turn off DNSSEC validation for hostname look-ups, since those need the # correct time to work, but we likely won't acquire that without NTP. Let's # break this chicken-and-egg cycle here. Environment=SYSTEMD_NSS_RESOLVE_VALIDATE=0 ExecStart=/usr/sbin/ntpd -g -p /run/ntpd.pid [Install] WantedBy=multi-user.target ================================================ FILE: package/numactl/0001-Do-not-stringify-SYMVER-symbols.patch ================================================ From f96c96af7fbf2779b15f66f03b10315a24fb4f5a Mon Sep 17 00:00:00 2001 From: Scott McMillan Date: Fri, 9 Oct 2020 08:56:52 -0500 Subject: [PATCH] Do not stringify SYMVER symbols Upstream: f96c96af7fbf2779b15f66f03b10315a24fb4f5a Signed-off-by: Thomas Petazzoni --- util.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util.h b/util.h index 99ada33..f2a20ac 100644 --- a/util.h +++ b/util.h @@ -22,5 +22,5 @@ extern char *policy_name(int policy); #if HAVE_ATTRIBUTE_SYMVER #define SYMVER(a,b) __attribute__ ((symver (b))) #else -#define SYMVER(a,b) __asm__ (".symver " #a "," #b); +#define SYMVER(a,b) __asm__ (".symver " a "," b); #endif -- 2.30.2 ================================================ FILE: package/numactl/0002-link-with-latomic-if-needed.patch ================================================ From e0de0d9e981ddb53bdeb4a4b9dc43046c9ff4ff9 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 6 May 2021 23:08:36 +0200 Subject: [PATCH] link with -latomic if needed numactl unconditionally uses __atomic_fetch_and but some architectures (e.g. sparc) needs to link with -latomic to be able to use it. So check if -latomic is needed and update numa.pc accordingly Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/numactl/numactl/commit/e0de0d9e981ddb53bdeb4a4b9dc43046c9ff4ff9] --- Makefile.am | 1 + configure.ac | 2 ++ numa.pc.in | 1 + 3 files changed, 4 insertions(+) diff --git a/Makefile.am b/Makefile.am index 44d0d76..34f6815 100644 --- a/Makefile.am +++ b/Makefile.am @@ -151,6 +151,7 @@ SED_PROCESS = \ -e 's,@exec_prefix\@,$(exec_prefix),g' \ -e 's,@libdir\@,$(libdir),g' \ -e 's,@includedir\@,$(includedir),g' \ + -e 's,@LIBS\@,$(LIBS),g' \ < $< > $@ || rm $@ %.pc: %.pc.in Makefile diff --git a/configure.ac b/configure.ac index 659a765..e3b0eb3 100644 --- a/configure.ac +++ b/configure.ac @@ -24,6 +24,8 @@ AM_CONDITIONAL([HAVE_TREE_VECTORIZE], [test x"${tree_vectorize}" = x"true"]) AC_CONFIG_FILES([Makefile]) +AC_SEARCH_LIBS([__atomic_fetch_and_1], [atomic]) + # GCC tries to be "helpful" and only issue a warning for unrecognized # attributes. So we compile the test with Werror, so that if the # attribute is not recognized the compilation fails diff --git a/numa.pc.in b/numa.pc.in index 8a0f202..cc04d50 100644 --- a/numa.pc.in +++ b/numa.pc.in @@ -8,3 +8,4 @@ Description: NUMA policy library Version: @VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -lnuma +Libs.Private: @LIBS@ ================================================ FILE: package/numactl/Config.in ================================================ config BR2_PACKAGE_NUMACTL bool "numactl" depends on BR2_USE_MMU # madvise() help numactl allows you to run your application on specific cpus and memory nodes. It does this by supplying a NUMA memory policy to the operating system before running your program. https://github.com/numactl/numactl ================================================ FILE: package/numactl/numactl.hash ================================================ # Locally calculated sha256 1ee27abd07ff6ba140aaf9bc6379b37825e54496e01d6f7343330cf1a4487035 numactl-2.0.14.tar.gz sha256 e2b738b1303c088421b09933a78c1326fe43692e2c05a7c510a2eb7e7a8eb575 README.md ================================================ FILE: package/numactl/numactl.mk ================================================ ################################################################################ # # numactl # ################################################################################ NUMACTL_VERSION = 2.0.14 NUMACTL_SITE = $(call github,numactl,numactl,v$(NUMACTL_VERSION)) NUMACTL_LICENSE = LGPL-2.1 (libnuma), GPL-2.0 (programs) NUMACTL_LICENSE_FILES = README.md NUMACTL_INSTALL_STAGING = YES NUMACTL_AUTORECONF = YES NUMACTL_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -fPIC" $(eval $(autotools-package)) ================================================ FILE: package/nut/Config.in ================================================ comment "nut needs a toolchain w/ C++" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_NUT bool "nut" depends on BR2_USE_MMU # fork() depends on BR2_INSTALL_LIBSTDCPP help Network UPS tools The primary goal of the Network UPS Tools (NUT) project is to provide support for Power Devices, such as Uninterruptible Power Supplies, Power Distribution Units and Solar Controllers. http://www.networkupstools.org/ if BR2_PACKAGE_NUT config BR2_PACKAGE_NUT_DRIVERS string "drivers" help Select the individual drivers to enable, in a comma-separated list. Leave empty for all. endif # BR2_PACKAGE_NUT ================================================ FILE: package/nut/nut.hash ================================================ # Locally computed sha256 7129b2df45f9a9df3943f4d09f2b95b5a63d66ca4913431352570206968ca97b nut-03c3bbe8df9a2caf3c09c120ae7045d35af99b76.tar.gz sha256 9f562d0e6be5108a06684dd249686d378abe1653df14b1944e971e084f6751f0 COPYING sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 LICENSE-GPL2 sha256 fc82ca8b6fdb18d4e3e85cfd8ab58d1bcd3f1b29abe782895abd91d64763f8e7 LICENSE-GPL3 ================================================ FILE: package/nut/nut.mk ================================================ ################################################################################ # # nut # ################################################################################ NUT_VERSION = 03c3bbe8df9a2caf3c09c120ae7045d35af99b76 NUT_SITE = $(call github,networkupstools,nut,$(NUT_VERSION)) NUT_LICENSE = GPL-2.0+, GPL-3.0+ (python scripts), GPL/Artistic (perl client) NUT_LICENSE_FILES = COPYING LICENSE-GPL2 LICENSE-GPL3 NUT_SELINUX_MODULES = apache nut NUT_INSTALL_STAGING = YES NUT_DEPENDENCIES = host-pkgconf host-perl # From git: NUT_AUTORECONF = YES # Generate files otherwise generated by autogen.sh # buildroot does not support augeas, creating an empty file prevents # us from adding a dependency to host-python define NUT_PREGEN touch $(@D)/scripts/augeas/nutupsconf.aug.in cd $(@D)/tools && PATH=$(BR_PATH) ./nut-usbinfo.pl endef NUT_PRE_CONFIGURE_HOOKS += NUT_PREGEN # Race condition in tools generation NUT_MAKE = $(MAKE1) # Put the PID files in a read-write place (/var/run is a tmpfs) # since the default location (/var/state/ups) maybe readonly. NUT_CONF_OPTS = \ --with-altpidpath=/var/run/upsd \ --with-dev NUT_CONF_ENV = ax_cv__printf_string_null=yes # For uClibc-based toolchains, nut forgets to link with -lm ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) NUT_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -lm" endif ifeq ($(call qstrip,$(BR2_PACKAGE_NUT_DRIVERS)),) NUT_CONF_OPTS += --with-drivers=all else NUT_CONF_OPTS += --with-drivers=$(BR2_PACKAGE_NUT_DRIVERS) endif ifeq ($(BR2_PACKAGE_AVAHI)$(BR2_PACKAGE_DBUS),yy) NUT_DEPENDENCIES += avahi dbus NUT_CONF_OPTS += --with-avahi else NUT_CONF_OPTS += --without-avahi endif # gd with support for png is required for the CGI ifeq ($(BR2_PACKAGE_GD)$(BR2_PACKAGE_LIBPNG),yy) NUT_DEPENDENCIES += gd libpng NUT_CONF_OPTS += --with-cgi else NUT_CONF_OPTS += --without-cgi endif # nut-scanner needs libltdl, which is a wrapper arounf dlopen/dlsym, # so is not available for static-only builds. # There is no flag to directly enable/disable nut-scanner, it's done # via the --enable/disable-libltdl flag. ifeq ($(BR2_STATIC_LIBS):$(BR2_PACKAGE_LIBTOOL),:y) NUT_DEPENDENCIES += libtool NUT_CONF_OPTS += --with-libltdl else NUT_CONF_OPTS += --without-libltdl endif ifeq ($(BR2_PACKAGE_LIBUSB_COMPAT),y) NUT_DEPENDENCIES += libusb-compat NUT_CONF_OPTS += --with-usb else NUT_CONF_OPTS += --without-usb endif ifeq ($(BR2_PACKAGE_NEON_EXPAT)$(BR2_PACKAGE_NEON_LIBXML2),y) NUT_DEPENDENCIES += neon NUT_CONF_OPTS += --with-neon else NUT_CONF_OPTS += --without-neon endif ifeq ($(BR2_PACKAGE_NETSNMP),y) NUT_DEPENDENCIES += netsnmp NUT_CONF_OPTS += \ --with-snmp \ --with-net-snmp-config=$(STAGING_DIR)/usr/bin/net-snmp-config else NUT_CONF_OPTS += --without-snmp endif ifeq ($(BR2_PACKAGE_OPENSSL),y) NUT_DEPENDENCIES += openssl NUT_CONF_OPTS += --with-ssl else NUT_CONF_OPTS += --without-ssl endif $(eval $(autotools-package)) ================================================ FILE: package/nuttcp/0001-susv3-legacy.patch ================================================ [PATCH] Replace susv3 legacy function with modern equivalents Signed-off-by: Peter Korsgaard --- nuttcp-6.1.2.c | 90 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) Index: nuttcp-6.1.2/nuttcp-6.1.2.c =================================================================== --- nuttcp-6.1.2.orig/nuttcp-6.1.2.c +++ nuttcp-6.1.2/nuttcp-6.1.2.c @@ -1925,11 +1925,11 @@ if (udp && !haverateopt) rate = DEFAULT_UDP_RATE; - bzero((char *)&frominet, sizeof(frominet)); - bzero((char *)&clientaddr, sizeof(clientaddr)); + memset((char *)&frominet, 0, sizeof(frominet)); + memset((char *)&clientaddr, 0, sizeof(clientaddr)); #ifdef AF_INET6 - bzero((char *)&clientaddr6, sizeof(clientaddr6)); + memset((char *)&clientaddr6, 0, sizeof(clientaddr6)); clientscope6 = 0; #endif @@ -1985,7 +1985,7 @@ } while (stream_idx <= nstream) { - bzero(&hints, sizeof(hints)); + memset(&hints, 0, sizeof(hints)); res[stream_idx] = NULL; if (explicitaf) hints.ai_family = af; if ((cp2 = strchr(cp1, '/'))) { @@ -3013,12 +3013,12 @@ if ((stream_idx > 0) && skip_data) break; - bzero((char *)&sinme[stream_idx], sizeof(sinme[stream_idx])); - bzero((char *)&sinhim[stream_idx], sizeof(sinhim[stream_idx])); + memset((char *)&sinme[stream_idx], 0, sizeof(sinme[stream_idx])); + memset((char *)&sinhim[stream_idx], 0, sizeof(sinhim[stream_idx])); #ifdef AF_INET6 - bzero((char *)&sinme6[stream_idx], sizeof(sinme6[stream_idx])); - bzero((char *)&sinhim6[stream_idx], sizeof(sinhim6[stream_idx])); + memset((char *)&sinme6[stream_idx], 0, sizeof(sinme6[stream_idx])); + memset((char *)&sinhim6[stream_idx], 0, sizeof(sinhim6[stream_idx])); #endif if (((trans && !reverse) && (stream_idx > 0)) || @@ -3028,15 +3028,15 @@ if (client) { if (af == AF_INET) { sinhim[stream_idx].sin_family = af; - bcopy((char *)&(((struct sockaddr_in *)res[stream_idx]->ai_addr)->sin_addr), - (char *)&sinhim[stream_idx].sin_addr.s_addr, + memcpy((char *)&sinhim[stream_idx].sin_addr.s_addr, + (char *)&(((struct sockaddr_in *)res[stream_idx]->ai_addr)->sin_addr), sizeof(sinhim[stream_idx].sin_addr.s_addr)); } #ifdef AF_INET6 else if (af == AF_INET6) { sinhim6[stream_idx].sin6_family = af; - bcopy((char *)&(((struct sockaddr_in6 *)res[stream_idx]->ai_addr)->sin6_addr), - (char *)&sinhim6[stream_idx].sin6_addr.s6_addr, + memcpy((char *)&sinhim6[stream_idx].sin6_addr.s6_addr, + (char *)&(((struct sockaddr_in6 *)res[stream_idx]->ai_addr)->sin6_addr), sizeof(sinhim6[stream_idx].sin6_addr.s6_addr)); sinhim6[stream_idx].sin6_scope_id = ((struct sockaddr_in6 *)res[stream_idx]->ai_addr)->sin6_scope_id; } @@ -3113,8 +3113,8 @@ * to the multicast group */ if (af == AF_INET) { - bcopy((char *)&sinhim[1].sin_addr.s_addr, - (char *)&save_sinhim.sin_addr.s_addr, + memcpy((char *)&save_sinhim.sin_addr.s_addr, + (char *)&sinhim[1].sin_addr.s_addr, sizeof(struct in_addr)); if (!client && (irvers >= 50505)) { struct sockaddr_in peer; @@ -3124,8 +3124,8 @@ &peerlen) < 0) { err("getpeername"); } - bcopy((char *)&peer.sin_addr.s_addr, - (char *)&sinhim[1].sin_addr.s_addr, + memcpy((char *)&sinhim[1].sin_addr.s_addr, + (char *)&peer.sin_addr.s_addr, sizeof(struct in_addr)); } else { @@ -3136,8 +3136,8 @@ &melen) < 0) { err("getsockname"); } - bcopy((char *)&me.sin_addr.s_addr, - (char *)&sinhim[1].sin_addr.s_addr, + memcpy((char *)&sinhim[1].sin_addr.s_addr, + (char *)&me.sin_addr.s_addr, sizeof(struct in_addr)); } sinhim[1].sin_addr.s_addr &= @@ -4197,13 +4197,13 @@ &melen) < 0) { err("getsockname"); } - bcopy((char *)&me.sin_addr.s_addr, - (char *)&mc_group.imr_multiaddr.s_addr, + memcpy((char *)&mc_group.imr_multiaddr.s_addr, + (char *)&me.sin_addr.s_addr, sizeof(struct in_addr)); } else { - bcopy((char *)&peer.sin_addr.s_addr, - (char *)&mc_group.imr_multiaddr.s_addr, + memcpy((char *)&mc_group.imr_multiaddr.s_addr, + (char *)&peer.sin_addr.s_addr, sizeof(struct in_addr)); } mc_group.imr_multiaddr.s_addr &= htonl(0xFFFFFF); @@ -4330,12 +4330,12 @@ if(udp) { strcpy(buf, "BOD0"); if (multicast) { - bcopy((char *)&sinhim[1].sin_addr.s_addr, - (char *)&save_mc.sin_addr.s_addr, - sizeof(struct in_addr)); - bcopy((char *)&save_sinhim.sin_addr.s_addr, + memcpy((char *)&save_mc.sin_addr.s_addr, (char *)&sinhim[1].sin_addr.s_addr, sizeof(struct in_addr)); + memcpy((char *)&sinhim[1].sin_addr.s_addr, + (char *)&save_sinhim.sin_addr.s_addr, + sizeof(struct in_addr)); } (void)Nwrite( fd[stream_idx + 1], buf, 4 ); /* rcvr start */ if (two_bod) { @@ -4344,8 +4344,8 @@ (void)Nwrite( fd[stream_idx + 1], buf, 4 ); /* rcvr start */ } if (multicast) { - bcopy((char *)&save_mc.sin_addr.s_addr, - (char *)&sinhim[1].sin_addr.s_addr, + memcpy((char *)&sinhim[1].sin_addr.s_addr, + (char *)&save_mc.sin_addr.s_addr, sizeof(struct in_addr)); } if (timeout) @@ -4361,7 +4361,7 @@ fflush(stdout); } if (udplossinfo) - bcopy(&nbytes, buf + 24, 8); + memcpy(buf + 24, &nbytes, 8); if (!udp && interval && !(format & NORETRANS) && ((retransinfo == 1) || ((retransinfo >= 2) && @@ -4372,13 +4372,13 @@ tmp = 0x5254524Eu; /* "RTRN" */ else tmp = 0x48525452u; /* "HRTR" */ - bcopy(&nretrans, buf + 24, 4); - bcopy(&tmp, buf + 28, 4); + memcpy(buf + 24, &nretrans, 4); + memcpy(buf + 28, &tmp, 4); } else { send_retrans = 0; if (!udp) - bzero(buf + 24, 8); + memset(buf + 24, 0, 8); } if (nbuf == INT_MAX) nbuf = ULLONG_MAX; @@ -4423,12 +4423,12 @@ nbytes += buflen; cnt = 0; if (udplossinfo) - bcopy(&nbytes, buf + 24, 8); + memcpy(buf + 24, &nbytes, 8); if (send_retrans) { nretrans = get_retrans( fd[stream_idx + 1]); nretrans -= iretrans; - bcopy(&nretrans, buf + 24, 4); + memcpy(buf + 24, &nretrans, 4); } stream_idx++; stream_idx = stream_idx % nstream; @@ -4523,8 +4523,8 @@ nbytes += cnt; if(udp) { if (multicast) - bcopy((char *)&save_sinhim.sin_addr.s_addr, - (char *)&sinhim[1].sin_addr.s_addr, + memcpy((char *)&sinhim[1].sin_addr.s_addr, + (char *)&save_sinhim.sin_addr.s_addr, sizeof(struct in_addr)); strcpy(buf, "EOD0"); (void)Nwrite( fd[stream_idx + 1], buf, 4 ); /* rcvr end */ @@ -4532,7 +4532,7 @@ } else { first_read = 1; need_swap = 0; - bzero(buf + 24, 8); + memset(buf + 24, 0, 8); if (udp) { ntbytesc = 0; got_eod0 = 0; @@ -4584,7 +4584,7 @@ * goes off right here */ if (udplossinfo) { if (first_read) { - bcopy(buf + 24, &ntbytesc, + memcpy(&ntbytesc, buf + 24, 8); first_read = 0; if (ntbytesc > 0x100000000ull) @@ -4598,7 +4598,7 @@ } } if (!need_swap) - bcopy(buf + 24, &ntbytesc, + memcpy(&ntbytesc, buf + 24, 8); else { cp1 = (char *)&ntbytesc; @@ -4627,8 +4627,8 @@ uint32_t tmp; first_read = 0; - bcopy(buf + 24, &nretrans, 4); - bcopy(buf + 28, &tmp, 4); + memcpy(&nretrans, buf + 24, 4); + memcpy(&tmp, buf + 28, 4); if (tmp == 0x5254524Eu) { /* "RTRN" */ retransinfo = 1; @@ -4661,7 +4661,7 @@ } if (read_retrans) { if (!need_swap) - bcopy(buf + 24, &nretrans, + memcpy(&nretrans, buf + 24, 4); else { cp1 = (char *)&nretrans; @@ -5327,10 +5327,10 @@ itimer.it_interval.tv_usec = 0; setitimer(ITIMER_REAL, &itimer, 0); signal(SIGALRM, SIG_DFL); - bzero((char *)&frominet, sizeof(frominet)); - bzero((char *)&clientaddr, sizeof(clientaddr)); + memset((char *)&frominet, 0, sizeof(frominet)); + memset((char *)&clientaddr, 0, sizeof(clientaddr)); #ifdef AF_INET6 - bzero((char *)&clientaddr6, sizeof(clientaddr)); + memset((char *)&clientaddr6, 0, sizeof(clientaddr)); clientscope6 = 0; #endif cput = 0.000001; ================================================ FILE: package/nuttcp/Config.in ================================================ config BR2_PACKAGE_NUTTCP bool "nuttcp" depends on BR2_USE_MMU # fork() help nuttcp is a TCP/UDP network testing tool, much like iperf http://nuttcp.net ================================================ FILE: package/nuttcp/nuttcp.hash ================================================ # From http://lists.freebsd.org/pipermail/freebsd-ports-bugs/2009-August/170685.html sha256 054e96d9d68fe917df6f25fab15c7755bdd480f6420d7d48d9194a1a52378169 nuttcp-6.1.2.tar.bz2 # Locally computed sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 LICENSE ================================================ FILE: package/nuttcp/nuttcp.mk ================================================ ################################################################################ # # nuttcp # ################################################################################ NUTTCP_VERSION = 6.1.2 NUTTCP_SITE = http://nuttcp.net/nuttcp NUTTCP_SOURCE = nuttcp-$(NUTTCP_VERSION).tar.bz2 NUTTCP_LICENSE = GPL-2.0 NUTTCP_LICENSE_FILES = LICENSE define NUTTCP_BUILD_CMDS $(MAKE1) CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS)" \ -C $(@D) all endef define NUTTCP_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 $(@D)/nuttcp-$(NUTTCP_VERSION) \ $(TARGET_DIR)/usr/bin/nuttcp endef $(eval $(generic-package)) ================================================ FILE: package/nvidia-driver/0001-use-LDFLAGS.patch ================================================ kernel: use LDFLAGS when linking modules Currently, linking module objects is simply using $(LD), assuming that the default emulation is correct for the current architecture. However, that might not be the case when the toolchain default is not the same as the current arch. For example, if the toolchain defaults to i386 and is capable of x86_64, and we're targetting x86_64 (or the opposite), the link would fail because the ld emulation is incorrect: .../i686-pc-linux-gnu-ld: Relocatable linking with relocations from format elf64-x86-64 (.../nvidia-driver-370.23/kernel/nvidia/nv-frontend.o) to format elf32-i386 (.../nvidia-driver-370.23/kernel/nvidia/nv-interface.o) is not supported Add use of $(LDFLAGS) when doing the link, as the kernel provides the proper emulation in those. Signed-off-by: "Yann E. MORIN" --- Issue reported upstream: https://devtalk.nvidia.com/default/topic/958653/ diff -durN nvidia-driver-370.23.orig/kernel/nvidia/nvidia.Kbuild nvidia-driver-370.23/kernel/nvidia/nvidia.Kbuild --- nvidia-driver-370.23.orig/kernel/nvidia/nvidia.Kbuild 2016-08-09 01:57:50.000000000 +0200 +++ nvidia-driver-370.23/kernel/nvidia/nvidia.Kbuild 2016-08-20 12:25:02.780233423 +0200 @@ -87,7 +87,7 @@ always += $(NVIDIA_INTERFACE) $(obj)/$(NVIDIA_INTERFACE): $(addprefix $(obj)/,$(NVIDIA_OBJECTS)) - $(LD) -r -o $@ $^ + $(LD) $(LDFLAGS) -r -o $@ $^ # diff -durN nvidia-driver-370.23.orig/kernel/nvidia-modeset/nvidia-modeset.Kbuild nvidia-driver-370.23/kernel/nvidia-modeset/nvidia-modeset.Kbuild --- nvidia-driver-370.23.orig/kernel/nvidia-modeset/nvidia-modeset.Kbuild 2016-08-09 01:43:19.000000000 +0200 +++ nvidia-driver-370.23/kernel/nvidia-modeset/nvidia-modeset.Kbuild 2016-08-20 12:25:39.596772662 +0200 @@ -70,7 +70,7 @@ always += $(NVIDIA_MODESET_INTERFACE) $(obj)/$(NVIDIA_MODESET_INTERFACE): $(addprefix $(obj)/,$(NVIDIA_MODESET_OBJECTS)) - $(LD) -r -o $@ $^ + $(LD) $(LDFLAGS) -r -o $@ $^ # # Register the conftests needed by nvidia-modeset.ko ================================================ FILE: package/nvidia-driver/Config.in ================================================ comment "nvidia-driver needs a glibc toolchain" depends on BR2_i386 || BR2_x86_64 depends on !BR2_TOOLCHAIN_USES_GLIBC config BR2_PACKAGE_NVIDIA_DRIVER bool "nvidia-driver" depends on BR2_i386 || BR2_x86_64 depends on BR2_TOOLCHAIN_USES_GLIBC help The binary-only driver blob for NVidia cards. This is the userland part only. http://www.nvidia.com/ if BR2_PACKAGE_NVIDIA_DRIVER comment "nvidia-driver X.org drivers needs a modular Xorg server" depends on !BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR config BR2_PACKAGE_NVIDIA_DRIVER_XORG bool "X.org drivers" default y depends on BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR select BR2_PACKAGE_MESA3D_HEADERS select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBEGL_WAYLAND select BR2_PACKAGE_HAS_LIBGLES if BR2_PACKAGE_NVIDIA_DRIVER_XORG config BR2_PACKAGE_PROVIDES_LIBGL default "nvidia-driver" config BR2_PACKAGE_PROVIDES_LIBEGL default "nvidia-driver" config BR2_PACKAGE_PROVIDES_LIBGLES default "nvidia-driver" config BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS bool "Install private libraries" help Two libraries require special agreement with NVidia to develop code linking to those libraries: libnvidia-ifr.so and libnvidia-fbc.so (to grab and encode an OpenGL buffer or an X framebuffer.) Say 'y' here if you plan on running a program that uses those private libraries. endif # BR2_PACKAGE_NVIDIA_DRIVER_XORG config BR2_PACKAGE_NVIDIA_DRIVER_CUDA bool "CUDA support" if BR2_PACKAGE_NVIDIA_DRIVER_CUDA config BR2_PACKAGE_NVIDIA_DRIVER_OPENCL bool "OpenCL support" select BR2_PACKAGE_MESA3D_HEADERS select BR2_PACKAGE_HAS_LIBOPENCL config BR2_PACKAGE_PROVIDES_LIBOPENCL default "nvidia-driver" if BR2_PACKAGE_NVIDIA_DRIVER_OPENCL config BR2_PACKAGE_NVIDIA_DRIVER_CUDA_PROGS bool "CUDA MPS server and control" help Say 'y' here if you need to run more than one program doing CUDA at the same time. The MPS server will be launched automatically when needed. endif # BR2_PACKAGE_NVIDIA_DRIVER_CUDA comment "nvidia kernel module needs a kernel to be built" depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_NVIDIA_DRIVER_MODULE bool "nvidia kernel module" depends on BR2_LINUX_KERNEL select BR2_LINUX_NEEDS_MODULES # not using kernel-module infra help Build the nvidia.ko kernel module. If CUDA support (above) is set, and the target is x86_64, then this will also build the nvidia-uvm.ko kernel module, which provides Unified Memory access to the GPU and CPU memories for CUDA programs. endif # BR2_PACKAGE_NVIDIA_DRIVER ================================================ FILE: package/nvidia-driver/egl.pc ================================================ prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: egl Description: Nvidia OpenGL library Version: 1 Cflags: -I${includedir} Libs: -L${libdir} -lEGL ================================================ FILE: package/nvidia-driver/gl.pc ================================================ prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: gl Description: Nvidia OpenGL library Version: 10.4.2 Libs: -L${libdir} -lGL -lm -lXext -lX11 -ldl Cflags: -I${includedir} -DEGL_NO_X11 glx_tls: no ================================================ FILE: package/nvidia-driver/nvidia-driver.hash ================================================ # Locally computed sha256 51adb28f0ed4548f35a88a93ad6767ebd807fa14f418bf5e51a6d63a3ff7f275 NVIDIA-Linux-x86-390.132.run sha256 b6b4b8af37e78e026c9ebdf4a5c64ea412dfcb710931dd028c22dac228de659d NVIDIA-Linux-x86_64-390.132-no-compat32.run sha256 bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997526 LICENSE ================================================ FILE: package/nvidia-driver/nvidia-driver.mk ================================================ ################################################################################ # # nvidia-driver # ################################################################################ NVIDIA_DRIVER_VERSION = 390.132 NVIDIA_DRIVER_SUFFIX = $(if $(BR2_x86_64),_64) NVIDIA_DRIVER_SITE = http://download.nvidia.com/XFree86/Linux-x86$(NVIDIA_DRIVER_SUFFIX)/$(NVIDIA_DRIVER_VERSION) NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86$(NVIDIA_DRIVER_SUFFIX)-$(NVIDIA_DRIVER_VERSION)$(if $(BR2_x86_64),-no-compat32).run NVIDIA_DRIVER_LICENSE = NVIDIA Software License NVIDIA_DRIVER_LICENSE_FILES = LICENSE NVIDIA_DRIVER_REDISTRIBUTE = NO NVIDIA_DRIVER_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_XORG),y) # Since nvidia-driver are binary blobs, the below dependencies are not # strictly speaking build dependencies of nvidia-driver. However, they # are build dependencies of packages that depend on nvidia-driver, so # they should be built prior to those packages, and the only simple # way to do so is to make nvidia-driver depend on them. NVIDIA_DRIVER_DEPENDENCIES += mesa3d-headers xlib_libX11 xlib_libXext NVIDIA_DRIVER_PROVIDES += libgl libegl libgles # libGL.so.$(NVIDIA_DRIVER_VERSION) is the legacy libGL.so library; it # has been replaced with libGL.so.1.0.0. Installing both is technically # possible, but great care must be taken to ensure they do not conflict, # so that EGL still works. The legacy library exposes an NVidia-specific # API, so it should not be needed, except for legacy, binary-only # applications (in other words: we don't care). # # libGL.so.1.0.0 is the new vendor-neutral library, aimed at replacing # the old libGL.so.$(NVIDIA_DRIVER_VERSION) library. The latter contains # NVidia extensions (which is deemed bad now), while the former follows # the newly-introduced vendor-neutral "dispatching" API/ABI: # https://github.com/aritger/linux-opengl-abi-proposal/blob/master/linux-opengl-abi-proposal.txt # However, this is not very useful to us, as we don't support multiple # GL providers at the same time on the system, which this proposal is # aimed at supporting. # # So we only install the legacy library for now. NVIDIA_DRIVER_LIBS_GL = \ libGLX.so.0 \ libGL.so.$(NVIDIA_DRIVER_VERSION) \ libGLX_nvidia.so.$(NVIDIA_DRIVER_VERSION) NVIDIA_DRIVER_LIBS_EGL = \ libEGL.so.1.1.0 \ libGLdispatch.so.0 \ libEGL_nvidia.so.$(NVIDIA_DRIVER_VERSION) NVIDIA_DRIVER_LIBS_GLES = \ libGLESv1_CM.so.1.2.0 \ libGLESv2.so.2.1.0 \ libGLESv1_CM_nvidia.so.$(NVIDIA_DRIVER_VERSION) \ libGLESv2_nvidia.so.$(NVIDIA_DRIVER_VERSION) NVIDIA_DRIVER_LIBS_MISC = \ libnvidia-eglcore.so.$(NVIDIA_DRIVER_VERSION) \ libnvidia-egl-wayland.so.1.0.2 \ libnvidia-glcore.so.$(NVIDIA_DRIVER_VERSION) \ libnvidia-glsi.so.$(NVIDIA_DRIVER_VERSION) \ tls/libnvidia-tls.so.$(NVIDIA_DRIVER_VERSION) \ libvdpau_nvidia.so.$(NVIDIA_DRIVER_VERSION):vdpau/ \ libnvidia-ml.so.$(NVIDIA_DRIVER_VERSION) NVIDIA_DRIVER_LIBS += \ $(NVIDIA_DRIVER_LIBS_GL) \ $(NVIDIA_DRIVER_LIBS_EGL) \ $(NVIDIA_DRIVER_LIBS_GLES) \ $(NVIDIA_DRIVER_LIBS_MISC) # Install the gl.pc file define NVIDIA_DRIVER_INSTALL_GL_DEV $(INSTALL) -D -m 0644 $(@D)/libGL.la $(STAGING_DIR)/usr/lib/libGL.la $(SED) 's:__GENERATED_BY__:Buildroot:' $(STAGING_DIR)/usr/lib/libGL.la $(SED) 's:__LIBGL_PATH__:/usr/lib:' $(STAGING_DIR)/usr/lib/libGL.la $(SED) 's:-L[^[:space:]]\+::' $(STAGING_DIR)/usr/lib/libGL.la $(INSTALL) -D -m 0644 package/nvidia-driver/gl.pc $(STAGING_DIR)/usr/lib/pkgconfig/gl.pc $(INSTALL) -D -m 0644 package/nvidia-driver/egl.pc $(STAGING_DIR)/usr/lib/pkgconfig/egl.pc endef # Those libraries are 'private' libraries requiring an agreement with # NVidia to develop code for those libs. There seems to be no restriction # on using those libraries (e.g. if the user has such an agreement, or # wants to run a third-party program developed under such an agreement). ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS),y) NVIDIA_DRIVER_LIBS += \ libnvidia-ifr.so.$(NVIDIA_DRIVER_VERSION) \ libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION) endif # We refer to the destination path; the origin file has no directory component NVIDIA_DRIVER_LIBS += \ nvidia_drv.so:xorg/modules/drivers/ \ libglx.so.$(NVIDIA_DRIVER_VERSION):xorg/modules/extensions/ # libglx needs a symlink according to the driver README. It has no SONAME define NVIDIA_DRIVER_SYMLINK_LIBGLX ln -sf libglx.so.$(NVIDIA_DRIVER_VERSION) \ $(TARGET_DIR)/usr/lib/xorg/modules/extensions/libglx.so endef endif # X drivers ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA),y) NVIDIA_DRIVER_LIBS += \ libcuda.so.$(NVIDIA_DRIVER_VERSION) \ libnvidia-compiler.so.$(NVIDIA_DRIVER_VERSION) \ libnvcuvid.so.$(NVIDIA_DRIVER_VERSION) \ libnvidia-fatbinaryloader.so.$(NVIDIA_DRIVER_VERSION) \ libnvidia-ptxjitcompiler.so.$(NVIDIA_DRIVER_VERSION) \ libnvidia-encode.so.$(NVIDIA_DRIVER_VERSION) ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA_PROGS),y) NVIDIA_DRIVER_PROGS = nvidia-cuda-mps-control nvidia-cuda-mps-server endif endif ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_OPENCL),y) NVIDIA_DRIVER_LIBS += \ libOpenCL.so.1.0.0 \ libnvidia-opencl.so.$(NVIDIA_DRIVER_VERSION) NVIDIA_DRIVER_DEPENDENCIES += mesa3d-headers NVIDIA_DRIVER_PROVIDES += libopencl endif # Build and install the kernel modules if needed ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_MODULE),y) NVIDIA_DRIVER_MODULES = nvidia nvidia-modeset nvidia-drm ifeq ($(BR2_x86_64),y) NVIDIA_DRIVER_MODULES += nvidia-uvm endif # They can't do everything like everyone. They need those variables, # because they don't recognise the usual variables set by the kernel # build system. We also need to tell them what modules to build. NVIDIA_DRIVER_MODULE_MAKE_OPTS = \ NV_KERNEL_SOURCES="$(LINUX_DIR)" \ NV_KERNEL_OUTPUT="$(LINUX_DIR)" \ NV_KERNEL_MODULES="$(NVIDIA_DRIVER_MODULES)" NVIDIA_DRIVER_MODULE_SUBDIRS = kernel $(eval $(kernel-module)) endif # BR2_PACKAGE_NVIDIA_DRIVER_MODULE == y # The downloaded archive is in fact an auto-extract script. So, it can run # virtually everywhere, and it is fine enough to provide useful options. # Except it can't extract into an existing (even empty) directory. define NVIDIA_DRIVER_EXTRACT_CMDS $(SHELL) $(NVIDIA_DRIVER_DL_DIR)/$(NVIDIA_DRIVER_SOURCE) --extract-only --target \ $(@D)/tmp-extract chmod u+w -R $(@D) mv $(@D)/tmp-extract/* $(@D)/tmp-extract/.manifest $(@D) rm -rf $(@D)/tmp-extract endef # Helper to install libraries # $1: library name # $2: target directory # # For all libraries, we install them and create a symlink using # their SONAME, so we can link to them at runtime; we also create # the no-version symlink, so we can link to them at build time. define NVIDIA_DRIVER_INSTALL_LIB $(INSTALL) -D -m 0644 $(@D)/$(1) $(2)$(notdir $(1)) libsoname="$$( $(TARGET_READELF) -d "$(@D)/$(1)" \ |sed -r -e '/.*\(SONAME\).*\[(.*)\]$$/!d; s//\1/;' )"; \ if [ -n "$${libsoname}" -a "$${libsoname}" != "$(notdir $(1))" ]; then \ ln -sf $(notdir $(1)) $(2)$${libsoname}; \ fi baseso=$(firstword $(subst .,$(space),$(notdir $(1)))).so; \ if [ -n "$${baseso}" -a "$${baseso}" != "$(notdir $(1))" ]; then \ ln -sf $(notdir $(1)) $(2)$${baseso}; \ fi endef # Helper to install libraries # $1: destination directory (target or staging) define NVIDIA_DRIVER_INSTALL_LIBS $(foreach lib,$(NVIDIA_DRIVER_LIBS), $(call NVIDIA_DRIVER_INSTALL_LIB,$(word 1,$(subst :, ,$(lib))), \ $(1)/usr/lib/$(word 2,$(subst :, ,$(lib)))) ) endef # For staging, install libraries and development files define NVIDIA_DRIVER_INSTALL_STAGING_CMDS $(call NVIDIA_DRIVER_INSTALL_LIBS,$(STAGING_DIR)) $(NVIDIA_DRIVER_INSTALL_GL_DEV) endef # For target, install libraries and X.org modules define NVIDIA_DRIVER_INSTALL_TARGET_CMDS $(call NVIDIA_DRIVER_INSTALL_LIBS,$(TARGET_DIR)) $(foreach p,$(NVIDIA_DRIVER_PROGS), \ $(INSTALL) -D -m 0755 $(@D)/$(p) \ $(TARGET_DIR)/usr/bin/$(p) ) $(NVIDIA_DRIVER_SYMLINK_LIBGLX) $(NVIDIA_DRIVER_INSTALL_KERNEL_MODULE) endef # Due to a conflict with xserver_xorg-server, this needs to be performed when # finalizing the target filesystem to make sure this version is used. NVIDIA_DRIVER_TARGET_FINALIZE_HOOKS += NVIDIA_DRIVER_SYMLINK_LIBGLX $(eval $(generic-package)) ================================================ FILE: package/nvidia-modprobe/Config.in ================================================ config BR2_PACKAGE_NVIDIA_MODPROBE bool "nvidia-modprobe" depends on BR2_USE_MMU # fork() help nvidia-modprobe package adds a utility and headers for probing the NVIDIA hardware at runtime. https://github.com/NVIDIA/nvidia-modprobe ================================================ FILE: package/nvidia-modprobe/nvidia-modprobe.hash ================================================ # Locally computed: sha256 396b4102d3075a2dee3024652fae206a1b38ace54b8efb1e2c20757a11ec19f1 nvidia-modprobe-450.57.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/nvidia-modprobe/nvidia-modprobe.mk ================================================ ################################################################################ # # nvidia-modprobe # ################################################################################ NVIDIA_MODPROBE_VERSION = 450.57 NVIDIA_MODPROBE_SITE = $(call github,NVIDIA,nvidia-modprobe,$(NVIDIA_MODPROBE_VERSION)) NVIDIA_MODPROBE_LICENSE = GPL-2.0 NVIDIA_MODPROBE_LICENSE_FILES = COPYING define NVIDIA_MODPROBE_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ OUTPUTDIR=. ./nvidia-modprobe.unstripped endef define NVIDIA_MODPROBE_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 $(@D)/nvidia-modprobe.unstripped \ $(TARGET_DIR)/usr/bin/nvidia-modprobe endef $(eval $(generic-package)) ================================================ FILE: package/nvme/Config.in ================================================ 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 ================================================ FILE: package/nvme/nvme.hash ================================================ # Locally computed: sha256 a75270e65a4a7a6add48f748ba216d8f68d78f90f8cb77e88e9753b74d527991 nvme-1.12.tar.gz sha256 a45d0bb572ed792ed34627a72621834b3ba92aab6e2cc4e04301dee7a728d753 LICENSE ================================================ FILE: package/nvme/nvme.mk ================================================ ################################################################################ # # nvme # ################################################################################ NVME_VERSION = 1.12 NVME_SITE = $(call github,linux-nvme,nvme-cli,v$(NVME_VERSION)) NVME_LICENSE = GPL-2.0+ NVME_LICENSE_FILES = LICENSE # Yes, LIBUUID=0 means libuuid support enabled. # LIBUUID=1 means libuuid support disabled. ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y) NVME_DEPENDENCIES += util-linux NVME_MAKE_OPTS += LIBUUID=0 else NVME_MAKE_OPTS += LIBUUID=1 endif # Yes, HAVE_SYSTEMD=0 means systemd support enabled. # HAVE_SYSTEMD=1 means systemd support disabled. ifeq ($(BR2_PACKAGE_SYSTEMD),y) NVME_DEPENDENCIES += systemd NVME_MAKE_OPTS += HAVE_SYSTEMD=0 else NVME_MAKE_OPTS += HAVE_SYSTEMD=1 endif 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) $(NVME_MAKE_OPTS) -C $(@D) \ DESTDIR=$(TARGET_DIR) PREFIX=/usr install-bin endef $(eval $(generic-package)) ================================================ FILE: package/obsidian-cursors/Config.in ================================================ config BR2_PACKAGE_OBSIDIAN_CURSORS bool "obsidian-cursors" help Obsidian Cursors is a shiny and clean cursor set. http://kde-look.org/content/show.php/Obsidian+Cursors?content=73135 ================================================ FILE: package/obsidian-cursors/obsidian-cursors.hash ================================================ # Locally calculated sha256 3d38fe875f6feae8b7772e02cfda530fcf669479807915cd2c12c149da17cfb9 73135-Obsidian.tar.bz2 ================================================ FILE: package/obsidian-cursors/obsidian-cursors.mk ================================================ ################################################################################ # # obsidian-cursors # ################################################################################ OBSIDIAN_CURSORS_VERSION = 1.0 OBSIDIAN_CURSORS_SITE = http://kde-look.org/CONTENT/content-files OBSIDIAN_CURSORS_SOURCE = 73135-Obsidian.tar.bz2 OBSIDIAN_CURSORS_LICENSE = GPL define OBSIDIAN_CURSORS_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/share/cursors/xorg-x11/Obsidian cp -a $(@D)/cursors \ $(TARGET_DIR)/usr/share/cursors/xorg-x11/Obsidian endef $(eval $(generic-package)) ================================================ FILE: package/ocf-linux/ocf-linux.hash ================================================ # Locally computed: sha256 5113609d2c2c43fde962bec1238fe5a81211a751ebb0337b54a9804d40cfef53 ocf-linux-20120127.tar.gz ================================================ FILE: package/ocf-linux/ocf-linux.mk ================================================ ################################################################################ # # ocf-linux # ################################################################################ OCF_LINUX_VERSION = 20120127 OCF_LINUX_SITE = http://downloads.sourceforge.net/project/ocf-linux/ocf-linux/$(OCF_LINUX_VERSION) OCF_LINUX_INSTALL_STAGING = YES OCF_LINUX_PROVIDES = cryptodev OCF_LINUX_MODULE_SUBDIRS = ocf OCF_LINUX_MODULE_MAKE_OPTS = \ CONFIG_OCF_OCF=m \ CONFIG_OCF_CRYPTOSOFT=m \ CONFIG_OCF_BENCH=m \ CONFIG_OCF_OCFNULL=m define OCF_LINUX_INSTALL_STAGING_CMDS $(INSTALL) -D -m 644 $(@D)/ocf/cryptodev.h \ $(STAGING_DIR)/usr/include/crypto/cryptodev.h endef $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/ocrad/Config.in ================================================ config BR2_PACKAGE_OCRAD bool "ocrad" depends on BR2_INSTALL_LIBSTDCPP help GNU Ocrad is an OCR (Optical Character Recognition) program based on a feature extraction method. It reads images in pbm (bitmap), pgm (greyscale) or ppm (color) formats and produces text in byte (8-bit) or UTF-8 formats. http://www.gnu.org/software/ocrad/ comment "ocrad needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/ocrad/ocrad.hash ================================================ # Locally calculated after checking pgp signature sha256 a9bfe67e9a040907aff5640dca56392476b6a89e48e37dc94ba846c5b6733b36 ocrad-0.27.tar.lz sha256 3d77c1a58fbde5ddba612d1fe09965e20a3804953eca12e8c1892298bb8a5eef COPYING ================================================ FILE: package/ocrad/ocrad.mk ================================================ ################################################################################ # # ocrad # ################################################################################ OCRAD_VERSION = 0.27 OCRAD_SOURCE = ocrad-$(OCRAD_VERSION).tar.lz OCRAD_SITE = $(BR2_GNU_MIRROR)/ocrad OCRAD_LICENSE = GPL-3.0+ OCRAD_LICENSE_FILES = COPYING OCRAD_INSTALL_STAGING = YES # This is not a true autotools package. define OCRAD_CONFIGURE_CMDS cd $(@D) && \ $(TARGET_MAKE_ENV) ./configure --prefix=/usr --sysconfdir=/etc $(TARGET_CONFIGURE_OPTS) endef define OCRAD_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define OCRAD_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef define OCRAD_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/odb/0001-tm.h-include-in-gcc.hxx-appears-to-be-no-longer-nece.patch ================================================ From f0bbc17aeed1b636782a4b92e8191d90f310d0a2 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 1 Jun 2015 19:08:33 +0200 Subject: [PATCH] include in gcc.hxx appears to be no longer necessary On MIPS this file pulls in enum processor which conflicts with our class processor. [Upstream: f0bbc17aeed1b636782a4b92e8191d90f310d0a2] Signed-off-by: Kamel Bouhara --- odb/gcc.hxx | 2 -- 1 file changed, 2 deletions(-) diff --git a/odb/gcc.hxx b/odb/gcc.hxx index 504b59b..c953047 100644 --- a/odb/gcc.hxx +++ b/odb/gcc.hxx @@ -46,8 +46,6 @@ extern "C" #include #include -#include - #include #include -- 2.26.2 ================================================ FILE: package/odb/0002-Remove-gratuitous-classes.patch ================================================ From 5486c8c85b9cfb92232518b2fadf6d8ed7b332d5 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 3 Jun 2015 21:35:43 +0200 Subject: [PATCH] Remove gratuitous classes In the process also get rid of global class processor which conflicts with enum processor on MIPS. [Upstream: bbc39ffe31c67506b4c03fc56fa3adcb925b6325] Signed-off-by: Kamel Bouhara --- odb/context.hxx | 3 ++- odb/generator.cxx | 24 ++++++++++++------------ odb/generator.hxx | 26 ++++++++------------------ odb/plugin.cxx | 18 +++++++----------- odb/processor.cxx | 4 ++-- odb/processor.hxx | 22 ++++++---------------- odb/relational/validator.cxx | 6 +++--- odb/relational/validator.hxx | 29 +++++++++-------------------- odb/validator.cxx | 13 ++++++------- odb/validator.hxx | 28 +++++++++------------------- 10 files changed, 64 insertions(+), 109 deletions(-) diff --git a/odb/context.hxx b/odb/context.hxx index 1cf002a..351bc61 100644 --- a/odb/context.hxx +++ b/odb/context.hxx @@ -41,7 +41,8 @@ typedef cutl::re::format regex_format; typedef std::vector regex_mapping; -// +// Generic exception thrown to indicate a failure when diagnostics +// has already been issued (to stderr). // class operation_failed {}; diff --git a/odb/generator.cxx b/odb/generator.cxx index e165faf..6aa5151 100644 --- a/odb/generator.cxx +++ b/odb/generator.cxx @@ -58,7 +58,7 @@ namespace if (!ifs.is_open ()) { cerr << "error: unable to open '" << p << "' in read mode" << endl; - throw generator::failed (); + throw generator_failed (); } } @@ -70,7 +70,7 @@ namespace if (!ofs.is_open ()) { cerr << "error: unable to open '" << p << "' in write mode" << endl; - throw generator::failed (); + throw generator_failed (); } } @@ -118,7 +118,7 @@ namespace } } -void generator:: +void generate (options const& ops, features& fts, semantics::unit& unit, @@ -259,7 +259,7 @@ generate (options const& ops, cerr << in_log_path << ": error: wrong database '" << old_changelog->database () << "', expected '" << db << "'" << endl; - throw generator::failed (); + throw generator_failed (); } string sn (ops.schema_name ()[db]); @@ -268,18 +268,18 @@ generate (options const& ops, cerr << in_log_path << ": error: wrong schema name '" << old_changelog->schema_name () << "', expected '" << sn << "'" << endl; - throw generator::failed (); + throw generator_failed (); } } catch (const ios_base::failure& e) { cerr << in_log_path << ": read failure" << endl; - throw failed (); + throw generator_failed (); } catch (const xml::parsing& e) { cerr << e.what () << endl; - throw failed (); + throw generator_failed (); } } @@ -976,12 +976,12 @@ generate (options const& ops, catch (const ios_base::failure& e) { cerr << out_log_path << ": write failure" << endl; - throw failed (); + throw generator_failed (); } catch (const xml::serialization& e) { cerr << e.what () << endl; - throw failed (); + throw generator_failed (); } } @@ -998,18 +998,18 @@ generate (options const& ops, { // Code generation failed. Diagnostics has already been issued. // - throw failed (); + throw generator_failed (); } catch (semantics::invalid_path const& e) { cerr << "error: '" << e.path () << "' is not a valid filesystem path" << endl; - throw failed (); + throw generator_failed (); } catch (fs::error const&) { // Auto-removal of generated files failed. Ignore it. // - throw failed (); + throw generator_failed (); } } diff --git a/odb/generator.hxx b/odb/generator.hxx index ce49295..e83d94d 100644 --- a/odb/generator.hxx +++ b/odb/generator.hxx @@ -11,23 +11,13 @@ #include #include -class generator -{ -public: - class failed {}; - - void - generate (options const&, - features&, - semantics::unit&, - semantics::path const& file, - std::vector const& inputs); - - generator () {} - -private: - generator (generator const&); - generator& operator= (generator const&); -}; +class generator_failed {}; + +void +generate (options const&, + features&, + semantics::unit&, + semantics::path const& file, + std::vector const& inputs); #endif // ODB_GENERATOR_HXX diff --git a/odb/plugin.cxx b/odb/plugin.cxx index e32f225..51f0cb1 100644 --- a/odb/plugin.cxx +++ b/odb/plugin.cxx @@ -199,27 +199,23 @@ gate_callback (void*, void*) parser p (*options_, loc_pragmas_, ns_loc_pragmas_, decl_pragmas_); auto_ptr u (p.parse (global_namespace, file_)); - features f; // Validate, pass 1. // - validator v; - v.validate (*options_, f, *u, file_, 1); + validate (*options_, f, *u, file_, 1); // Process. // - processor pr; - pr.process (*options_, f, *u, file_); + process (*options_, f, *u, file_); // Validate, pass 2. // - v.validate (*options_, f, *u, file_, 2); + validate (*options_, f, *u, file_, 2); // Generate. // - generator g; - g.generate (*options_, f, *u, file_, inputs_); + generate (*options_, f, *u, file_, inputs_); } catch (cutl::re::format const& e) { @@ -239,19 +235,19 @@ gate_callback (void*, void*) // r = 1; } - catch (validator::failed const&) + catch (validator_failed const&) { // Diagnostics has aready been issued. // r = 1; } - catch (processor::failed const&) + catch (processor_failed const&) { // Diagnostics has aready been issued. // r = 1; } - catch (generator::failed const&) + catch (generator_failed const&) { // Diagnostics has aready been issued. // diff --git a/odb/processor.cxx b/odb/processor.cxx index a808a52..3a2cb1d 100644 --- a/odb/processor.cxx +++ b/odb/processor.cxx @@ -3064,7 +3064,7 @@ namespace }; } -void processor:: +void process (options const& ops, features& f, semantics::unit& unit, @@ -3120,6 +3120,6 @@ process (options const& ops, { // Processing failed. Diagnostics has already been issued. // - throw failed (); + throw processor_failed (); } } diff --git a/odb/processor.hxx b/odb/processor.hxx index 602b999..e62dd25 100644 --- a/odb/processor.hxx +++ b/odb/processor.hxx @@ -9,22 +9,12 @@ #include #include -class processor -{ -public: - class failed {}; +class processor_failed {}; - void - process (options const&, - features&, - semantics::unit&, - semantics::path const&); - - processor () {} - -private: - processor (processor const&); - processor& operator= (processor const&); -}; +void +process (options const&, + features&, + semantics::unit&, + semantics::path const&); #endif // ODB_PROCESSOR_HXX diff --git a/odb/relational/validator.cxx b/odb/relational/validator.cxx index 1d51c9a..47f089c 100644 --- a/odb/relational/validator.cxx +++ b/odb/relational/validator.cxx @@ -528,7 +528,7 @@ namespace relational }; } - void validator:: + void validate (options const&, features&, semantics::unit& u, @@ -608,7 +608,7 @@ namespace relational } if (!valid) - throw failed (); + throw operation_failed (); if (pass == 1) { @@ -636,6 +636,6 @@ namespace relational } if (!valid) - throw failed (); + throw operation_failed (); } } diff --git a/odb/relational/validator.hxx b/odb/relational/validator.hxx index f0ede53..93360c3 100644 --- a/odb/relational/validator.hxx +++ b/odb/relational/validator.hxx @@ -11,26 +11,15 @@ namespace relational { - class validator - { - public: - struct failed {}; - - // The first pass is performed before processing. The second -- after. - // - void - validate (options const&, - features&, - semantics::unit&, - semantics::path const&, - unsigned short pass); - - validator () {} - - private: - validator (validator const&); - validator& operator= (validator const&); - }; + // The first pass is performed before processing. The second -- after. + // Throws operation_failed to signal a failure. + // + void + validate (options const&, + features&, + semantics::unit&, + semantics::path const&, + unsigned short pass); } #endif // ODB_RELATIONAL_VALIDATOR_HXX diff --git a/odb/validator.cxx b/odb/validator.cxx index e80f4d8..91d91e5 100644 --- a/odb/validator.cxx +++ b/odb/validator.cxx @@ -1457,7 +1457,7 @@ namespace }; } -void validator:: +void validate (options const& ops, features& f, semantics::unit& u, @@ -1506,7 +1506,7 @@ validate (options const& ops, } if (!valid) - throw failed (); + throw validator_failed (); auto_ptr ctx (create_context (cerr, u, ops, f, 0)); @@ -1559,7 +1559,7 @@ validate (options const& ops, } if (!valid) - throw failed (); + throw validator_failed (); switch (db) { @@ -1575,12 +1575,11 @@ validate (options const& ops, { try { - relational::validator v; - v.validate (ops, f, u, p, pass); + relational::validate (ops, f, u, p, pass); } - catch (relational::validator::failed const&) + catch (operation_failed const&) { - throw failed (); + throw validator_failed (); } break; diff --git a/odb/validator.hxx b/odb/validator.hxx index f913049..3ffa470 100644 --- a/odb/validator.hxx +++ b/odb/validator.hxx @@ -9,25 +9,15 @@ #include #include -class validator -{ -public: - struct failed {}; +class validator_failed {}; - // The first pass is performed before processing. The second -- after. - // - void - validate (options const&, - features&, - semantics::unit&, - semantics::path const&, - unsigned short pass); - - validator () {} - -private: - validator (validator const&); - validator& operator= (validator const&); -}; +// The first pass is performed before processing. The second -- after. +// +void +validate (options const&, + features&, + semantics::unit&, + semantics::path const&, + unsigned short pass); #endif // ODB_VALIDATOR_HXX -- 2.25.0 ================================================ FILE: package/odb/0003-Initial-work-to-make-ODB-compatible-with-GCC-6.patch ================================================ From bf389fd5185143847b1d91aed423e79c322dba51 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 5 Feb 2016 16:01:42 +0200 Subject: [PATCH] Initial work to make ODB compatible with GCC 6 [Upstream: 511dcf67322ad87fb32f97d1cf7725c129e83898] Signed-off-by: Kamel Bouhara --- odb/cxx-lexer.cxx | 4 ++++ odb/gcc-fwd.hxx | 23 ++++++++++++++++++++++- odb/gcc.hxx | 10 ++++++++++ odb/include.cxx | 31 +++++++++++++++++++++---------- odb/parser.cxx | 8 ++++---- odb/plugin.cxx | 29 +++++++++++++++++++++++++++-- odb/semantics/elements.cxx | 4 ++-- 7 files changed, 90 insertions(+), 19 deletions(-) diff --git a/odb/cxx-lexer.cxx b/odb/cxx-lexer.cxx index 7029c7e..64df296 100644 --- a/odb/cxx-lexer.cxx +++ b/odb/cxx-lexer.cxx @@ -135,8 +135,12 @@ cpp_error_callback ( #if BUILDING_GCC_MAJOR > 4 || BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR > 5 int /*reason*/, // Added in GCC 4.6.0. #endif +#if BUILDING_GCC_MAJOR <= 5 location_t, unsigned int, +#else + rich_location*, +#endif char const* msg, va_list *ap) { diff --git a/odb/gcc-fwd.hxx b/odb/gcc-fwd.hxx index a120f05..618b106 100644 --- a/odb/gcc-fwd.hxx +++ b/odb/gcc-fwd.hxx @@ -7,6 +7,24 @@ #include +#if BUILDING_GCC_MAJOR >= 6 + +// If we include here, it pulls in all kinds of GCC trouble that +// "poisons" standard C/C++ declarations; see safe-ctype.h. So instead we +// are going to "exclude" safe-ctype.h. To compensate, however, we will +// include it first thing in gcc.hxx. +// +# include +# define SAFE_CTYPE_H +# include +# undef SAFE_CTYPE_H +# include + +typedef unsigned int source_location; // +typedef source_location location_t; // + +#else // GCC < 6 + #if BUILDING_GCC_MAJOR > 4 || BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR > 8 # include // CHAR_BIT # include @@ -33,6 +51,9 @@ extern "C" typedef unsigned int source_location; // typedef source_location location_t; // -} + +} // extern "C" + +#endif #endif // ODB_GCC_FWD_HXX diff --git a/odb/gcc.hxx b/odb/gcc.hxx index c953047..858d685 100644 --- a/odb/gcc.hxx +++ b/odb/gcc.hxx @@ -7,6 +7,10 @@ #include +#if BUILDING_GCC_MAJOR >= 6 +# include // See gcc-fwd.hxx. +#endif + // GCC header includes to get the plugin and parse tree declarations. // The order is important and doesn't follow any kind of logic. // @@ -145,4 +149,10 @@ gcc_tree_code_name (gcc_tree_code_type tc) {return tree_code_name[tc];} #define DECL_CHAIN(x) TREE_CHAIN(x) #endif +// In GCC 6, ANON_AGGRNAME_P became anon_aggrname_p(). +// +#if BUILDING_GCC_MAJOR < 6 +# define anon_aggrname_p(X) ANON_AGGRNAME_P(X) +#endif + #endif // ODB_GCC_HXX diff --git a/odb/include.cxx b/odb/include.cxx index c397993..08c93ce 100644 --- a/odb/include.cxx +++ b/odb/include.cxx @@ -30,9 +30,18 @@ namespace path path_; }; +#if BUILDING_GCC_MAJOR >= 6 + typedef line_map_ordinary line_map_type; +#else + typedef line_map line_map_type; +# ifndef linemap_check_ordinary +# define linemap_check_ordinary(X) (X) +# endif +#endif + struct includes { - typedef std::map map_type; + typedef std::map map_type; bool trailing; // Included at the beginning or at the end of the main file. map_type map; }; @@ -144,7 +153,9 @@ namespace // if (l > BUILTINS_LOCATION) { - line_map const* lm (linemap_lookup (line_table, l)); + line_map_type const* lm ( + linemap_check_ordinary ( + linemap_lookup (line_table, l))); if (lm != 0 && !MAIN_FILE_P (lm)) { @@ -537,20 +548,20 @@ namespace // #if BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR <= 6 size_t used (line_table->used); - line_map const* maps (line_table->maps); + line_map_type const* maps (line_table->maps); #else size_t used (line_table->info_ordinary.used); - line_map const* maps (line_table->info_ordinary.maps); + line_map_type const* maps (line_table->info_ordinary.maps); #endif for (size_t i (0); i < used; ++i) { - line_map const* m (maps + i); + line_map_type const* m (maps + i); if (MAIN_FILE_P (m) || m->reason != LC_ENTER) continue; - line_map const* ifm (INCLUDED_FROM (line_table, m)); + line_map_type const* ifm (INCLUDED_FROM (line_table, m)); #if BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR <= 6 path f (m->to_file); @@ -580,7 +591,7 @@ namespace for (includes::iterator j (i->second.begin ()); j != i->second.end (); ++j) { - line_map const* lm (j->first); + line_map_type const* lm (j->first); cerr << '\t' << lm->to_file << ":" << LAST_SOURCE_LINE (lm) << endl; } */ @@ -589,13 +600,13 @@ namespace // it is preferred over all others. Use the first one if there are // several. // - line_map const* main_lm (0); + line_map_type const* main_lm (0); include_directive* main_inc (0); for (includes::map_type::iterator j (i->second.map.begin ()); j != i->second.map.end (); ++j) { - line_map const* lm (j->first); + line_map_type const* lm (j->first); if (MAIN_FILE_P (lm)) { @@ -636,7 +647,7 @@ namespace for (includes::map_type::iterator j (i->second.map.begin ()); j != i->second.map.end (); ++j) { - line_map const* lm (j->first); + line_map_type const* lm (j->first); #if BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR <= 6 string f (lm->to_file); diff --git a/odb/parser.cxx b/odb/parser.cxx index a8e6a6a..feda9d4 100644 --- a/odb/parser.cxx +++ b/odb/parser.cxx @@ -1044,14 +1044,14 @@ emit_type_decl (tree decl) // says that in typedef struct {} S; S becomes struct's // name. // - if (ANON_AGGRNAME_P (decl_name)) + if (anon_aggrname_p (decl_name)) { tree d (TYPE_NAME (t)); if (d != NULL_TREE && !DECL_ARTIFICIAL (d) && DECL_NAME (d) != NULL_TREE && - !ANON_AGGRNAME_P (DECL_NAME (d))) + !anon_aggrname_p (DECL_NAME (d))) { decl = d; decl_name = DECL_NAME (decl); @@ -1668,7 +1668,7 @@ create_type (tree t, ts << "start anon/stub " << gcc_tree_code_name(tc) << " at " << file << ":" << line << endl; - if (d == NULL_TREE || ANON_AGGRNAME_P (DECL_NAME (d))) + if (d == NULL_TREE || anon_aggrname_p (DECL_NAME (d))) { if (tc == RECORD_TYPE) r = &emit_class (t, file, line, clmn); @@ -1765,7 +1765,7 @@ create_type (tree t, ts << "start anon/stub " << gcc_tree_code_name(tc) << " at " << file << ":" << line << endl; - if (d == NULL_TREE || ANON_AGGRNAME_P (DECL_NAME (d))) + if (d == NULL_TREE || anon_aggrname_p (DECL_NAME (d))) { r = &emit_enum (t, access, file, line, clmn); } diff --git a/odb/plugin.cxx b/odb/plugin.cxx index 51f0cb1..779faed 100644 --- a/odb/plugin.cxx +++ b/odb/plugin.cxx @@ -45,14 +45,28 @@ path file_; // File being compiled. paths inputs_; // List of input files in at-once mode or just file_. bool (*cpp_error_prev) ( - cpp_reader*, int, int, location_t, unsigned int, const char*, va_list*); + cpp_reader*, + int, + int, +#if BUILDING_GCC_MAJOR >= 6 + rich_location*, +#else + location_t, + unsigned int, +#endif + const char*, + va_list*); static bool cpp_error_filter (cpp_reader* r, int level, int reason, +#if BUILDING_GCC_MAJOR >= 6 + rich_location* l, +#else location_t l, unsigned int column_override, +#endif const char* msg, va_list* ap) { @@ -66,7 +80,18 @@ cpp_error_filter (cpp_reader* r, if (strstr (msg, "#pragma once") != 0) return true; - return cpp_error_prev (r, level, reason, l, column_override, msg, ap); + return cpp_error_prev ( + r, + level, + reason, +#if BUILDING_GCC_MAJOR >= 6 + l, +#else + l, + column_override, +#endif + msg, + ap); } // A prefix of the _cpp_file struct. This struct is not part of the diff --git a/odb/semantics/elements.cxx b/odb/semantics/elements.cxx index 21e3260..399d5e9 100644 --- a/odb/semantics/elements.cxx +++ b/odb/semantics/elements.cxx @@ -59,7 +59,7 @@ namespace semantics if (tree decl = TYPE_NAME (n)) name = DECL_NAME (decl); - return name != 0 && ANON_AGGRNAME_P (name); + return name != 0 && anon_aggrname_p (name); } return true; @@ -108,7 +108,7 @@ namespace semantics if (tree decl = TYPE_NAME (type)) { name = DECL_NAME (decl); - if (name != 0 && ANON_AGGRNAME_P (name)) + if (name != 0 && anon_aggrname_p (name)) return true; tree s (CP_DECL_CONTEXT (decl)); -- 2.25.0 ================================================ FILE: package/odb/0004-Make-compilable-with-GCC-6-in-C-14-mode.patch ================================================ From 4584b69c45b701c3689d6a974f1ee560a79a243e Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 8 Feb 2016 18:39:21 +0200 Subject: [PATCH] Make compilable with GCC 6 in C++14 mode [Upstream: 61d13eb53ade9f30a64892a901401bda5e42c335] Signed-off-by: Kamel Bouhara --- odb/gcc.hxx | 9 ++++++--- odb/parser.cxx | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/odb/gcc.hxx b/odb/gcc.hxx index 858d685..a22357d 100644 --- a/odb/gcc.hxx +++ b/odb/gcc.hxx @@ -7,9 +7,12 @@ #include -#if BUILDING_GCC_MAJOR >= 6 -# include // See gcc-fwd.hxx. -#endif +// Actually, let's keep it out. With it included we can compile in C++98 +// but not in C++14 (GCC 6 default). +// +// #if BUILDING_GCC_MAJOR >= 6 +// # include // See gcc-fwd.hxx. +// #endif // GCC header includes to get the plugin and parse tree declarations. // The order is important and doesn't follow any kind of logic. diff --git a/odb/parser.cxx b/odb/parser.cxx index feda9d4..a9d22fb 100644 --- a/odb/parser.cxx +++ b/odb/parser.cxx @@ -1831,6 +1831,8 @@ create_type (tree t, // the array type. In other words, we view it as "constant array" // rather than "array of constant elements". // + using semantics::array; // vs std::array. + tree bt (TREE_TYPE (t)); tree bt_mv (TYPE_MAIN_VARIANT (bt)); type& bt_node (emit_type (bt_mv, access::public_, file, line, clmn)); -- 2.25.0 ================================================ FILE: package/odb/0005-Fix-bug-in-GCC-6-input_location-translation.patch ================================================ From 029687831099bf1dcc944517f9e48af1db5b0361 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 23 Dec 2016 10:18:01 +0200 Subject: [PATCH] Fix bug in GCC 6 input_location translation [Upstream: ec777147024fde72e4411cc6b1e1e49f4a1d1804] Signed-off-by: Kamel Bouhara --- odb/cxx-lexer.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/odb/cxx-lexer.cxx b/odb/cxx-lexer.cxx index 64df296..ae045d9 100644 --- a/odb/cxx-lexer.cxx +++ b/odb/cxx-lexer.cxx @@ -106,7 +106,15 @@ next (string& token, tree* node) location_t cxx_pragma_lexer:: location () const { + // Starting from GCC 6 the input location seem to require the same + // translation as what we do in real_source_location(). + // +#if BUILDING_GCC_MAJOR >= 6 + return linemap_resolve_location ( + line_table, input_location, LRK_MACRO_EXPANSION_POINT, 0); +#else return input_location; +#endif } string cxx_pragma_lexer:: -- 2.25.0 ================================================ FILE: package/odb/0006-Adapt-to-changes-in-GCC-8.patch ================================================ From aca617685045b1984c19c415a474893407578394 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 7 Nov 2017 14:58:43 +0200 Subject: [PATCH] Adapt to changes in GCC 8 [Upstream: 356630ced28f3101e8e2d88e3c52f8d3008515c7] Signed-off-by: Kamel Bouhara --- odb/cxx-lexer.cxx | 16 ++++++++++++++-- odb/parser.cxx | 27 ++++++++++++++++++++++++++- odb/processor.cxx | 30 ++++++++++++++++++++++-------- odb/semantics/elements.cxx | 8 ++++++++ odb/validator.cxx | 10 +++++++++- 5 files changed, 79 insertions(+), 12 deletions(-) diff --git a/odb/cxx-lexer.cxx b/odb/cxx-lexer.cxx index ae045d9..cfebbb5 100644 --- a/odb/cxx-lexer.cxx +++ b/odb/cxx-lexer.cxx @@ -93,7 +93,13 @@ next (string& token, tree* node) // See if this is a keyword using the C++ parser machinery and // the current C++ dialect. // - if (*type_ == CPP_NAME && C_IS_RESERVED_WORD (*token_)) + if (*type_ == CPP_NAME && +#if BUILDING_GCC_MAJOR >= 8 + IDENTIFIER_KEYWORD_P (*token_) +#else + C_IS_RESERVED_WORD (*token_) +#endif + ) *type_ = CPP_KEYWORD; if (node != 0 && node != token_) @@ -281,7 +287,13 @@ next (string& token, tree* node) // tree id (get_identifier (name)); - if (C_IS_RESERVED_WORD (id)) + if ( +#if BUILDING_GCC_MAJOR >= 8 + IDENTIFIER_KEYWORD_P (id) +#else + C_IS_RESERVED_WORD (id) +#endif + ) tt = CPP_KEYWORD; if (node != 0) diff --git a/odb/parser.cxx b/odb/parser.cxx index a9d22fb..927063b 100644 --- a/odb/parser.cxx +++ b/odb/parser.cxx @@ -889,8 +889,23 @@ collect (tree ns) // Traverse namespaces. // - for (decl = level->namespaces; decl != NULL_TREE; decl = TREE_CHAIN (decl)) + for ( +#if BUILDING_GCC_MAJOR >= 8 + decl = level->names; +#else + decl = level->namespaces; +#endif + decl != NULL_TREE; + decl = TREE_CHAIN (decl)) { +#if BUILDING_GCC_MAJOR >= 8 + // Now namespaces are interleaved with other declarations. In fact, we + // could probably collect everything in a single pass. + // + if (TREE_CODE (decl) != NAMESPACE_DECL) + continue; +#endif + if (!DECL_IS_BUILTIN (decl) || DECL_NAMESPACE_STD_P (decl)) { if (trace) @@ -960,9 +975,15 @@ emit () // approximation for this namespace origin. Also resolve // the tree node for this namespace. // +#if BUILDING_GCC_MAJOR >= 8 + tree tree_node ( + get_namespace_binding ( + scope_->tree_node (), get_identifier (n.c_str ()))); +#else tree tree_node ( namespace_binding ( get_identifier (n.c_str ()), scope_->tree_node ())); +#endif namespace_& node (unit_->new_node (f, l, c, tree_node)); unit_->new_edge (*scope_, node, n); @@ -2218,7 +2239,11 @@ fq_scope (tree decl) // If this is an inline namespace, pretend it doesn't exist. // +#if BUILDING_GCC_MAJOR >= 8 + if (!is_nested_namespace (prev, scope, true)) +#else if (!is_associated_namespace (prev, scope)) +#endif { tree n = DECL_NAME (scope); diff --git a/odb/processor.cxx b/odb/processor.cxx index 3a2cb1d..bea3624 100644 --- a/odb/processor.cxx +++ b/odb/processor.cxx @@ -423,12 +423,17 @@ namespace // OVL_* macros work for both FUNCTION_DECL and OVERLOAD. // - for (tree o (BASELINK_FUNCTIONS (decl)); - o != 0; - o = OVL_NEXT (o)) +#if BUILDING_GCC_MAJOR >= 8 + for (ovl_iterator i (BASELINK_FUNCTIONS (decl)); i; ++i) +#else + for (tree o (BASELINK_FUNCTIONS (decl)); o != 0; o = OVL_NEXT (o)) +#endif { +#if BUILDING_GCC_MAJOR >= 8 + tree f (*i); +#else tree f (OVL_CURRENT (o)); - +#endif // We are only interested in public non-static member // functions. Note that TREE_PUBLIC() returns something // other than what we need. @@ -530,12 +535,17 @@ namespace { // OVL_* macros work for both FUNCTION_DECL and OVERLOAD. // - for (tree o (BASELINK_FUNCTIONS (decl)); - o != 0; - o = OVL_NEXT (o)) +#if BUILDING_GCC_MAJOR >= 8 + for (ovl_iterator i (BASELINK_FUNCTIONS (decl)); i; ++i) +#else + for (tree o (BASELINK_FUNCTIONS (decl)); o != 0; o = OVL_NEXT (o)) +#endif { +#if BUILDING_GCC_MAJOR >= 8 + tree f (*i); +#else tree f (OVL_CURRENT (o)); - +#endif // We are only interested in non-static member functions. // if (!DECL_NONSTATIC_MEMBER_FUNCTION_P (f)) @@ -2934,7 +2944,11 @@ namespace { tree prev (CP_DECL_CONTEXT (scope)); +#if BUILDING_GCC_MAJOR >= 8 + if (!is_nested_namespace (prev, scope, true)) +#else if (!is_associated_namespace (prev, scope)) +#endif break; scope = prev; diff --git a/odb/semantics/elements.cxx b/odb/semantics/elements.cxx index 399d5e9..4c380d8 100644 --- a/odb/semantics/elements.cxx +++ b/odb/semantics/elements.cxx @@ -126,7 +126,11 @@ namespace semantics { tree prev (CP_DECL_CONTEXT (s)); +#if BUILDING_GCC_MAJOR >= 8 + if (!is_nested_namespace (prev, s, true)) +#else if (!is_associated_namespace (prev, s)) +#endif break; s = prev; @@ -223,7 +227,11 @@ namespace semantics { // Check if this is an inline namespace and skip it if so. // +#if BUILDING_GCC_MAJOR >= 8 + if (is_nested_namespace (ns, new_ns, true)) +#else if (is_associated_namespace (ns, new_ns)) +#endif { // Skip also the following scope operator. Strictly speaking // there could be none (i.e., this is a name of an inline diff --git a/odb/validator.cxx b/odb/validator.cxx index 91d91e5..aac52e4 100644 --- a/odb/validator.cxx +++ b/odb/validator.cxx @@ -520,9 +520,17 @@ namespace // Figure out if we have a const version of the callback. OVL_* // macros work for both FUNCTION_DECL and OVERLOAD. // +#if BUILDING_GCC_MAJOR >= 8 + for (ovl_iterator i (BASELINK_FUNCTIONS (decl)); i; ++i) +#else for (tree o (BASELINK_FUNCTIONS (decl)); o != 0; o = OVL_NEXT (o)) +#endif { +#if BUILDING_GCC_MAJOR >= 8 + tree f (*i); +#else tree f (OVL_CURRENT (o)); +#endif if (DECL_CONST_MEMFUNC_P (f)) { c.set ("callback-const", true); @@ -1223,7 +1231,7 @@ namespace compiler, get_identifier ("has_lt_operator"), false, false); if (has_lt_operator_ != error_mark_node) - has_lt_operator_ = OVL_CURRENT (has_lt_operator_); + has_lt_operator_ = OVL_FIRST (has_lt_operator_); else { os << unit.file () << ": error: unable to resolve has_lt_operator " -- 2.25.0 ================================================ FILE: package/odb/0007-Switch-to-C-11-get-rid-of-auto_ptr-use.patch ================================================ From c5bea9562929c6b55ca208a530ae80033eeb1614 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 7 Nov 2017 10:37:53 +0200 Subject: [PATCH] Switch to C++11, get rid of auto_ptr use [Upstream: 6e374de9ae2f2978f2fca3390aba4ea3f72bfade] Signed-off-by: Kamel Bouhara --- odb/Makefile.am | 5 +++++ odb/context.cxx | 4 ++-- odb/context.hxx | 4 ++-- odb/generator.cxx | 18 +++++++++--------- odb/options.cli | 4 ++-- odb/parser.cxx | 14 ++++++++++---- odb/parser.hxx | 7 ++++--- odb/plugin.cxx | 10 +++++----- odb/processor.cxx | 6 +++--- odb/validator.cxx | 2 +- 10 files changed, 43 insertions(+), 31 deletions(-) diff --git a/odb/Makefile.am b/odb/Makefile.am index 2f01398..d9e83d7 100644 --- a/odb/Makefile.am +++ b/odb/Makefile.am @@ -9,6 +9,11 @@ plugin_LTLIBRARIES = odb.la AM_CPPFLAGS = -I'$(top_builddir)' -I'$(top_srcdir)' +# Note: not passed by libtool when linking odb.so. Seems to be harmless for +# now. +# +AM_CXXFLAGS = -std=c++0x + EXTRA_DIST = common-query.hxx common.hxx context.hxx context.ixx cxx-lexer.hxx cxx-token.hxx diagnostics.hxx emitter.hxx features.hxx gcc-fwd.hxx gcc.hxx generate.hxx generator.hxx instance.hxx location.hxx lookup.hxx option-functions.hxx option-parsers.hxx option-types.hxx options.hxx options.ixx parser.hxx pragma.hxx processor.hxx profile.hxx relational/common-query.hxx relational/common.hxx relational/common.txx relational/context.hxx relational/context.ixx relational/generate.hxx relational/header.hxx relational/inline.hxx relational/model.hxx relational/mssql/common.hxx relational/mssql/context.hxx relational/mysql/common.hxx relational/mysql/context.hxx relational/oracle/common.hxx relational/oracle/context.hxx relational/pgsql/common.hxx relational/pgsql/context.hxx relational/processor.hxx relational/schema-source.hxx relational/schema.hxx relational/source.hxx relational/sqlite/common.hxx relational/sqlite/context.hxx relational/validator.hxx semantics.hxx semantics/class-template.hxx semantics/class.hxx semantics/derived.hxx semantics/elements.hxx semantics/elements.ixx semantics/enum.hxx semantics/fundamental.hxx semantics/namespace.hxx semantics/relational.hxx semantics/relational/changelog.hxx semantics/relational/changeset.hxx semantics/relational/column.hxx semantics/relational/deferrable.hxx semantics/relational/elements.hxx semantics/relational/elements.txx semantics/relational/foreign-key.hxx semantics/relational/index.hxx semantics/relational/key.hxx semantics/relational/model.hxx semantics/relational/name.hxx semantics/relational/primary-key.hxx semantics/relational/table.hxx semantics/template.hxx semantics/union-template.hxx semantics/union.hxx semantics/unit.hxx sql-lexer.hxx sql-lexer.ixx sql-token.hxx sql-token.ixx traversal.hxx traversal/class-template.hxx traversal/class.hxx traversal/derived.hxx traversal/elements.hxx traversal/enum.hxx traversal/fundamental.hxx traversal/namespace.hxx traversal/relational.hxx traversal/relational/changelog.hxx traversal/relational/changeset.hxx traversal/relational/column.hxx traversal/relational/elements.hxx traversal/relational/foreign-key.hxx traversal/relational/index.hxx traversal/relational/key.hxx traversal/relational/model.hxx traversal/relational/primary-key.hxx traversal/relational/table.hxx traversal/template.hxx traversal/union-template.hxx traversal/union.hxx traversal/unit.hxx validator.hxx version.hxx options.cli # Plugin. diff --git a/odb/context.cxx b/odb/context.cxx index d62fa88..87f1c32 100644 --- a/odb/context.cxx +++ b/odb/context.cxx @@ -564,14 +564,14 @@ namespace }; } -auto_ptr +unique_ptr create_context (ostream& os, semantics::unit& unit, options const& ops, features& f, semantics::relational::model* m) { - auto_ptr r; + unique_ptr r; switch (ops.database ()[0]) { diff --git a/odb/context.hxx b/odb/context.hxx index 351bc61..10de237 100644 --- a/odb/context.hxx +++ b/odb/context.hxx @@ -13,7 +13,7 @@ #include #include #include -#include // std::auto_ptr +#include // std::unique_ptr #include #include // std::size_t #include @@ -1691,7 +1691,7 @@ private: // Create concrete database context. // -std::auto_ptr +std::unique_ptr create_context (std::ostream&, semantics::unit&, options const&, diff --git a/odb/generator.cxx b/odb/generator.cxx index 6aa5151..266b75f 100644 --- a/odb/generator.cxx +++ b/odb/generator.cxx @@ -4,7 +4,7 @@ #include // std::toupper, std::is{alpha,upper,lower} #include -#include // std::auto_ptr +#include // std::unique_ptr #include #include #include @@ -141,7 +141,7 @@ generate (options const& ops, if (gen_schema) { - auto_ptr ctx (create_context (cerr, unit, ops, fts, 0)); + unique_ptr ctx (create_context (cerr, unit, ops, fts, 0)); switch (db) { @@ -471,7 +471,7 @@ generate (options const& ops, // if (gen_cxx) { - auto_ptr ctx ( + unique_ptr ctx ( create_context (hxx, unit, ops, fts, model.get ())); sloc_filter sloc (ctx->os); @@ -581,7 +581,7 @@ generate (options const& ops, // if (gen_cxx) { - auto_ptr ctx ( + unique_ptr ctx ( create_context (ixx, unit, ops, fts, model.get ())); sloc_filter sloc (ctx->os); @@ -641,7 +641,7 @@ generate (options const& ops, // if (gen_cxx && (db != database::common || md == multi_database::dynamic)) { - auto_ptr ctx ( + unique_ptr ctx ( create_context (cxx, unit, ops, fts, model.get ())); sloc_filter sloc (ctx->os); @@ -734,7 +734,7 @@ generate (options const& ops, // if (gen_sep_schema) { - auto_ptr ctx ( + unique_ptr ctx ( create_context (sch, unit, ops, fts, model.get ())); sloc_filter sloc (ctx->os); @@ -799,7 +799,7 @@ generate (options const& ops, // if (gen_sql_schema) { - auto_ptr ctx ( + unique_ptr ctx ( create_context (sql, unit, ops, fts, model.get ())); switch (db) @@ -865,7 +865,7 @@ generate (options const& ops, // { ofstream& mig (*mig_pre[i]); - auto_ptr ctx (create_context (mig, unit, ops, fts, 0)); + unique_ptr ctx (create_context (mig, unit, ops, fts, 0)); switch (db) { @@ -908,7 +908,7 @@ generate (options const& ops, // { ofstream& mig (*mig_post[i]); - auto_ptr ctx (create_context (mig, unit, ops, fts, 0)); + unique_ptr ctx (create_context (mig, unit, ops, fts, 0)); switch (db) { diff --git a/odb/options.cli b/odb/options.cli index cf278cb..c994975 100644 --- a/odb/options.cli +++ b/odb/options.cli @@ -211,10 +211,10 @@ class options \cb{db pointer} pragma will use this pointer by default. The value of this option can be \cb{*} which denotes the raw pointer and is the default, or qualified name of a smart pointer class template, - for example, \cb{std::auto_ptr}. In the latter case, the ODB compiler + for example, \cb{std::shared_ptr}. In the latter case, the ODB compiler constructs the object or view pointer by adding a single template argument of the object or view type to the qualified name, for example - \cb{std::auto_ptr}. The ODB runtime uses object and view + \cb{std::shared_ptr}. The ODB runtime uses object and view pointers to return, and, in case of objects, pass and cache dynamically allocated instances of object and view types. diff --git a/odb/parser.cxx b/odb/parser.cxx index 927063b..30e45af 100644 --- a/odb/parser.cxx +++ b/odb/parser.cxx @@ -26,7 +26,7 @@ public: impl (options const&, loc_pragmas&, ns_loc_pragmas&, decl_pragmas&); - auto_ptr + unique_ptr parse (tree global_scope, path const& main_file); private: @@ -728,10 +728,10 @@ impl (options const& ops, { } -auto_ptr parser::impl:: +unique_ptr parser::impl:: parse (tree global_scope, path const& main_file) { - auto_ptr u (new unit (main_file)); + unique_ptr u (new unit (main_file)); u->insert (global_namespace, *u); process_named_pragmas (global_namespace, *u); @@ -2263,6 +2263,12 @@ fq_scope (tree decl) // parser // +parser:: +~parser () +{ + // Needs parser::impl definition. +} + parser:: parser (options const& ops, loc_pragmas& lp, @@ -2272,7 +2278,7 @@ parser (options const& ops, { } -auto_ptr parser:: +unique_ptr parser:: parse (tree global_scope, path const& main_file) { return impl_->parse (global_scope, main_file); diff --git a/odb/parser.hxx b/odb/parser.hxx index 80e4aa4..648337f 100644 --- a/odb/parser.hxx +++ b/odb/parser.hxx @@ -7,7 +7,7 @@ #include -#include // std::auto_ptr +#include // std::unique_ptr #include #include @@ -18,9 +18,10 @@ class parser public: class failed {}; + ~parser (); parser (options const&, loc_pragmas&, ns_loc_pragmas&, decl_pragmas&); - std::auto_ptr + std::unique_ptr parse (tree global_scope, semantics::path const& main_file); private: @@ -31,7 +32,7 @@ private: private: class impl; - std::auto_ptr impl_; + std::unique_ptr impl_; }; #endif // ODB_PARSER_HXX diff --git a/odb/plugin.cxx b/odb/plugin.cxx index 779faed..0fac632 100644 --- a/odb/plugin.cxx +++ b/odb/plugin.cxx @@ -8,7 +8,7 @@ #include // stat #include // stat -#include // std::auto_ptr +#include // std::unique_ptr #include #include #include // std::strcpy, std::strstr @@ -39,7 +39,7 @@ using cutl::fs::invalid_path; typedef vector paths; int plugin_is_GPL_compatible; -auto_ptr options_; +unique_ptr options_; paths profile_paths_; path file_; // File being compiled. paths inputs_; // List of input files in at-once mode or just file_. @@ -222,7 +222,7 @@ gate_callback (void*, void*) // Parse the GCC tree to semantic graph. // parser p (*options_, loc_pragmas_, ns_loc_pragmas_, decl_pragmas_); - auto_ptr u (p.parse (global_namespace, file_)); + unique_ptr u (p.parse (global_namespace, file_)); features f; @@ -377,14 +377,14 @@ plugin_init (plugin_name_args* plugin_info, plugin_gcc_version*) oi[2].arg = &pd; cli::argv_file_scanner scan (argc, &argv[0], oi, 3); - auto_ptr ops ( + unique_ptr ops ( new options (scan, cli::unknown_mode::fail, cli::unknown_mode::fail)); // Process options. // process_options (*ops); - options_ = ops; + options_ = move (ops); pragma_db_ = db; pragma_multi_ = options_->multi_database (); } diff --git a/odb/processor.cxx b/odb/processor.cxx index bea3624..c787e0d 100644 --- a/odb/processor.cxx +++ b/odb/processor.cxx @@ -120,8 +120,8 @@ namespace // both the wrapper type and the wrapped type must be const. // To see why, consider these possibilities: // - // auto_ptr - can modify by setting a new pointer - // const auto_ptr - can modify by changing the pointed-to value + // unique_ptr - can modify by setting a new pointer + // const unique_ptr - can modify by changing the pointed-to value // if (const_type (m.type ()) && !(id (m) || version (m) || m.count ("inverse"))) @@ -3086,7 +3086,7 @@ process (options const& ops, { try { - auto_ptr ctx (create_context (cerr, unit, ops, f, 0)); + unique_ptr ctx (create_context (cerr, unit, ops, f, 0)); // Common processing. // diff --git a/odb/validator.cxx b/odb/validator.cxx index aac52e4..196386c 100644 --- a/odb/validator.cxx +++ b/odb/validator.cxx @@ -1516,7 +1516,7 @@ validate (options const& ops, if (!valid) throw validator_failed (); - auto_ptr ctx (create_context (cerr, u, ops, f, 0)); + unique_ptr ctx (create_context (cerr, u, ops, f, 0)); if (pass == 1) { -- 2.25.0 ================================================ FILE: package/odb/0008-Fix-GCC-8-adaptation-to-be-compatible-with-previous-.patch ================================================ From 8cc165a2f7f945db36a18e462138553a000292cd Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 7 Nov 2017 16:57:35 +0200 Subject: [PATCH] Fix GCC 8 adaptation to be compatible with previous versions [Upstream: 006bbc5748a8197d7874550cc9186545f1c55ad8] Signed-off-by: Kamel Bouhara --- odb/validator.cxx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/odb/validator.cxx b/odb/validator.cxx index 196386c..f0edaaf 100644 --- a/odb/validator.cxx +++ b/odb/validator.cxx @@ -1231,7 +1231,13 @@ namespace compiler, get_identifier ("has_lt_operator"), false, false); if (has_lt_operator_ != error_mark_node) + { +#if BUILDING_GCC_MAJOR >= 8 has_lt_operator_ = OVL_FIRST (has_lt_operator_); +#else + has_lt_operator_ = OVL_CURRENT (has_lt_operator_); +#endif + } else { os << unit.file () << ": error: unable to resolve has_lt_operator " -- 2.25.0 ================================================ FILE: package/odb/0009-Handle-namespace-aliases-when-parsing-GCC-tree.patch ================================================ From 2d37e44753c1e67de4658b6fdf95760432c74ead Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 5 Oct 2018 07:20:18 +0200 Subject: [PATCH] Handle namespace aliases when parsing GCC tree [Upstream: 3a1788234bfaa96ee093b68e9ba02cf7d5bdffe6] Signed-off-by: Kamel Bouhara --- odb/parser.cxx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/odb/parser.cxx b/odb/parser.cxx index 30e45af..03bcb01 100644 --- a/odb/parser.cxx +++ b/odb/parser.cxx @@ -906,6 +906,11 @@ collect (tree ns) continue; #endif + // Ignore namespace aliases. + // + if (DECL_NAMESPACE_ALIAS (decl)) + continue; + if (!DECL_IS_BUILTIN (decl) || DECL_NAMESPACE_STD_P (decl)) { if (trace) -- 2.25.0 ================================================ FILE: package/odb/0010-Add-initial-support-for-GCC-9.patch ================================================ From cd9a15f42ef35449a8ad480352f9f5495eb37c30 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 15 Mar 2019 17:37:28 +0200 Subject: [PATCH] Add initial support for GCC 9 [Upstream: 841140bbf13ae2bfaa5978a181718cda0a8edae7] Signed-off-by: Kamel Bouhara --- odb/cxx-lexer.cxx | 33 +++++++++++++++++++++++++++------ odb/gcc.hxx | 32 ++++++++++++++++++++++++++++++++ odb/include.cxx | 3 +++ odb/plugin.cxx | 45 ++++++++++++++++++++++++++++++--------------- 4 files changed, 92 insertions(+), 21 deletions(-) diff --git a/odb/cxx-lexer.cxx b/odb/cxx-lexer.cxx index cfebbb5..acd13be 100644 --- a/odb/cxx-lexer.cxx +++ b/odb/cxx-lexer.cxx @@ -143,12 +143,20 @@ translate () // Diagnostics callback. // extern "C" bool -cpp_error_callback ( +cpp_diagnostic_callback ( cpp_reader* reader, +#if BUILDING_GCC_MAJOR >= 9 + cpp_diagnostic_level level, +#else int level, +#endif #if BUILDING_GCC_MAJOR > 4 || BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR > 5 +#if BUILDING_GCC_MAJOR >= 9 + cpp_warning_reason, +#else int /*reason*/, // Added in GCC 4.6.0. #endif +#endif #if BUILDING_GCC_MAJOR <= 5 location_t, unsigned int, @@ -185,10 +193,14 @@ cpp_error_callback ( vfprintf (stderr, msg, *ap); fprintf (stderr, "\n"); - // By resetting the error callback we indicate to cxx_string_lexer - // that there was an error. + // By resetting the callback we indicate to cxx_string_lexer that there + // was an error. // +#if BUILDING_GCC_MAJOR >= 9 + cpp_get_callbacks (reader)->diagnostic = 0; +#else cpp_get_callbacks (reader)->error = 0; +#endif return true; } @@ -247,7 +259,12 @@ start (string const& data) // The previous lexing session should have popped the buffer. // assert (cpp_get_buffer (reader_) == 0); - callbacks_->error = &cpp_error_callback; + +#if BUILDING_GCC_MAJOR >= 9 + callbacks_->diagnostic = &cpp_diagnostic_callback; +#else + callbacks_->error = &cpp_diagnostic_callback; +#endif data_ = data; buf_ = data; @@ -267,10 +284,14 @@ next (string& token, tree* node) token.clear (); cpp_token const* t (cpp_get_token (reader_)); - // If there was an error, the error callback will be reset to 0. - // Diagnostics has already been issued. + // If there was an error, the callback will be reset to 0. Diagnostics has + // already been issued. // +#if BUILDING_GCC_MAJOR >= 9 + if (callbacks_->diagnostic == 0) +#else if (callbacks_->error == 0) +#endif throw invalid_input (); cpp_ttype tt (t->type); diff --git a/odb/gcc.hxx b/odb/gcc.hxx index a22357d..0304192 100644 --- a/odb/gcc.hxx +++ b/odb/gcc.hxx @@ -158,4 +158,36 @@ gcc_tree_code_name (gcc_tree_code_type tc) {return tree_code_name[tc];} # define anon_aggrname_p(X) ANON_AGGRNAME_P(X) #endif +// In GCC 9: +// +// INCLUDED_FROM Became linemap_included_from_linemap(). +// LAST_SOURCE_LINE Was removed apparently as no longer used. Studying +// the line-map.h diff from 8.3 suggests that the old +// implementation should still work. +// +#if BUILDING_GCC_MAJOR >= 9 + +inline const line_map_ordinary* +INCLUDED_FROM (line_maps* set, const line_map_ordinary* map) +{ + return linemap_included_from_linemap (set, map); +} + +inline source_location +LAST_SOURCE_LINE_LOCATION (const line_map_ordinary* map) +{ + return (((map[1].start_location - 1 + - map->start_location) + & ~((1 << map->m_column_and_range_bits) - 1)) + + map->start_location); +} + +inline linenum_type +LAST_SOURCE_LINE (const line_map_ordinary* map) +{ + return SOURCE_LINE (map, LAST_SOURCE_LINE_LOCATION (map)); +} + +#endif + #endif // ODB_GCC_HXX diff --git a/odb/include.cxx b/odb/include.cxx index 08c93ce..0082f5e 100644 --- a/odb/include.cxx +++ b/odb/include.cxx @@ -584,6 +584,9 @@ namespace for (include_map::iterator i (imap.begin ()), e (imap.end ()); i != e; ++i) { + // Note that the LAST_SOURCE_LINE value of a map that includes another + // map is the line of that include. + /* cerr << endl << i->first << " included from" << endl; diff --git a/odb/plugin.cxx b/odb/plugin.cxx index 0fac632..892f27c 100644 --- a/odb/plugin.cxx +++ b/odb/plugin.cxx @@ -44,10 +44,15 @@ paths profile_paths_; path file_; // File being compiled. paths inputs_; // List of input files in at-once mode or just file_. -bool (*cpp_error_prev) ( +bool (*cpp_diagnostic_prev) ( cpp_reader*, +#if BUILDING_GCC_MAJOR >= 9 + cpp_diagnostic_level, + cpp_warning_reason, +#else int, int, +#endif #if BUILDING_GCC_MAJOR >= 6 rich_location*, #else @@ -58,17 +63,22 @@ bool (*cpp_error_prev) ( va_list*); static bool -cpp_error_filter (cpp_reader* r, - int level, - int reason, +cpp_diagnostic_filter (cpp_reader* r, +#if BUILDING_GCC_MAJOR >= 9 + cpp_diagnostic_level level, + cpp_warning_reason reason, +#else + int level, + int reason, +#endif #if BUILDING_GCC_MAJOR >= 6 - rich_location* l, + rich_location* l, #else - location_t l, - unsigned int column_override, + location_t l, + unsigned int column_override, #endif - const char* msg, - va_list* ap) + const char* msg, + va_list* ap) { // #pragma once in the main file. Note that the message that we get is // potentially translated so we search for the substring (there is @@ -80,7 +90,7 @@ cpp_error_filter (cpp_reader* r, if (strstr (msg, "#pragma once") != 0) return true; - return cpp_error_prev ( + return cpp_diagnostic_prev ( r, level, reason, @@ -119,15 +129,20 @@ start_unit_callback (void*, void*) // cpp_callbacks* cb (cpp_get_callbacks (parse_in)); - if (cb->error == 0) +#if BUILDING_GCC_MAJOR >= 9 + cpp_diagnostic_prev = cb->diagnostic; + cb->diagnostic = &cpp_diagnostic_filter; +#else + cpp_diagnostic_prev = cb->error; + cb->error = &cpp_diagnostic_filter; +#endif + + if (cpp_diagnostic_prev == 0) { - cerr << "ice: expected cpp error callback to be set" << endl; + cerr << "ice: expected cpp diagnostic callback to be set" << endl; exit (1); } - cpp_error_prev = cb->error; - cb->error = &cpp_error_filter; - // Set the directory of the main file (stdin) to that of the orginal // file so that relative inclusion works. Also adjust the path and // re-stat the file so that #pragma once works. -- 2.25.0 ================================================ FILE: package/odb/0011-Adjust-to-changes-in-GCC-10.patch ================================================ From 060bb7eb4d008fbd4a9fa8ef7c5e33c9e483eb52 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 17 Jun 2020 11:22:11 +0200 Subject: [PATCH] Adjust to changes in GCC 10 [Upstream: 060bb7eb4d008fbd4a9fa8ef7c5e33c9e483eb52] Signed-off-by: Thomas Petazzoni --- odb/gcc.hxx | 7 +++++-- odb/parser.cxx | 8 ++++---- odb/semantics/elements.cxx | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/odb/gcc.hxx b/odb/gcc.hxx index 9b644d7..af0e2a0 100644 --- a/odb/gcc.hxx +++ b/odb/gcc.hxx @@ -151,10 +151,13 @@ gcc_tree_code_name (gcc_tree_code_type tc) {return tree_code_name[tc];} #define DECL_CHAIN(x) TREE_CHAIN(x) #endif -// In GCC 6, ANON_AGGRNAME_P became anon_aggrname_p(). +// In GCC 6 ANON_AGGRNAME_P became anon_aggrname_p(). +// In GCC 10 anon_aggrname_p() became IDENTIFIER_ANON_P. // #if BUILDING_GCC_MAJOR < 6 -# define anon_aggrname_p(X) ANON_AGGRNAME_P(X) +# define IDENTIFIER_ANON_P(X) ANON_AGGRNAME_P(X) +#elif BUILDING_GCC_MAJOR < 10 +# define IDENTIFIER_ANON_P(X) anon_aggrname_p(X) #endif // In GCC 9: diff --git a/odb/parser.cxx b/odb/parser.cxx index 69d9b28..58388c9 100644 --- a/odb/parser.cxx +++ b/odb/parser.cxx @@ -1103,14 +1103,14 @@ emit_type_decl (tree decl) // says that in typedef struct {} S; S becomes struct's // name. // - if (anon_aggrname_p (decl_name)) + if (IDENTIFIER_ANON_P (decl_name)) { tree d (TYPE_NAME (t)); if (d != NULL_TREE && !DECL_ARTIFICIAL (d) && DECL_NAME (d) != NULL_TREE && - !anon_aggrname_p (DECL_NAME (d))) + !IDENTIFIER_ANON_P (DECL_NAME (d))) { decl = d; decl_name = DECL_NAME (decl); @@ -1727,7 +1727,7 @@ create_type (tree t, ts << "start anon/stub " << gcc_tree_code_name(tc) << " at " << file << ":" << line << endl; - if (d == NULL_TREE || anon_aggrname_p (DECL_NAME (d))) + if (d == NULL_TREE || IDENTIFIER_ANON_P (DECL_NAME (d))) { if (tc == RECORD_TYPE) r = &emit_class (t, file, line, clmn); @@ -1824,7 +1824,7 @@ create_type (tree t, ts << "start anon/stub " << gcc_tree_code_name(tc) << " at " << file << ":" << line << endl; - if (d == NULL_TREE || anon_aggrname_p (DECL_NAME (d))) + if (d == NULL_TREE || IDENTIFIER_ANON_P (DECL_NAME (d))) { r = &emit_enum (t, access, file, line, clmn); } diff --git a/odb/semantics/elements.cxx b/odb/semantics/elements.cxx index f937f54..2d266cf 100644 --- a/odb/semantics/elements.cxx +++ b/odb/semantics/elements.cxx @@ -75,7 +75,7 @@ namespace semantics if (tree decl = TYPE_NAME (n)) name = DECL_NAME (decl); - return name != 0 && anon_aggrname_p (name); + return name != 0 && IDENTIFIER_ANON_P (name); } return true; @@ -124,7 +124,7 @@ namespace semantics if (tree decl = TYPE_NAME (type)) { name = DECL_NAME (decl); - if (name != 0 && anon_aggrname_p (name)) + if (name != 0 && IDENTIFIER_ANON_P (name)) return true; tree s (CP_DECL_CONTEXT (decl)); -- 2.26.2 ================================================ FILE: package/odb/Config.in.host ================================================ config BR2_PACKAGE_HOST_ODB bool "host-odb" select BR2_NEEDS_HOST_GCC_PLUGIN_SUPPORT help This is a compiler that takes a specially crafted c++ header file and auto-generates a schema that works with libodb and the subsequent libodb-database library. https://www.codesynthesis.com/products/odb/ ================================================ FILE: package/odb/odb.hash ================================================ # From https://www.codesynthesis.com/products/odb/download.xhtml sha1 810fc02e591429ed19f5a2699d144fb611fb121b odb-2.4.0.tar.bz2 # Locally computed sha256 6785154fa98ea3977c8c2ab38cec16c4aa78c2c2039e80cd2908347b1c1d4198 odb-2.4.0.tar.bz2 sha256 7983b82cb1f1686ac2b55420ded9c0f348f93dd17bf3e048ae3b25c1da51b80e LICENSE ================================================ FILE: package/odb/odb.mk ================================================ ################################################################################ # # odb # ################################################################################ ODB_VERSION_MAJOR = 2.4 ODB_VERSION = $(ODB_VERSION_MAJOR).0 ODB_SOURCE = odb-$(ODB_VERSION).tar.bz2 ODB_SITE = https://www.codesynthesis.com/download/odb/$(ODB_VERSION_MAJOR) ODB_LICENSE = GPL-3.0 ODB_LICENSE_FILES = LICENSE HOST_ODB_DEPENDENCIES = host-libcutl HOST_ODB_CONF_ENV = CXXFLAGS="$(HOST_CXXFLAGS) -std=c++11" # Prevent odb from trying to install the gcc plugin into the hosts # gcc plugin directory. Instead, this will install the gcc plugin # into host/libexec/odb HOST_ODB_CONF_OPTS = --with-gcc-plugin-dir=no $(eval $(host-autotools-package)) ================================================ FILE: package/odhcp6c/Config.in ================================================ config BR2_PACKAGE_ODHCP6C bool "odhcp6c" depends on BR2_USE_MMU # fork() help odhcp6c is a minimal DHCPv6 and RA-client for use in embedded Linux systems, especially routers. https://git.openwrt.org/project/odhcp6c.git ================================================ FILE: package/odhcp6c/odhcp6c.hash ================================================ # Locally computed sha256 7274a304016838483e2da48193309e5f84ca0a8a407647033283d1249eebe986 odhcp6c-53f07e90b7f1da6977143a488dd5cb73a33b233b-br1.tar.gz sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING ================================================ FILE: package/odhcp6c/odhcp6c.mk ================================================ ################################################################################ # # odhcp6c # ################################################################################ ODHCP6C_VERSION = 53f07e90b7f1da6977143a488dd5cb73a33b233b ODHCP6C_SITE = https://git.openwrt.org/project/odhcp6c.git ODHCP6C_SITE_METHOD = git ODHCP6C_LICENSE = GPL-2.0 ODHCP6C_LICENSE_FILES = COPYING define ODHCP6C_INSTALL_SCRIPT $(INSTALL) -m 0755 -D $(@D)/odhcp6c-example-script.sh \ $(TARGET_DIR)/usr/sbin/odhcp6c-update endef ODHCP6C_POST_INSTALL_TARGET_HOOKS += ODHCP6C_INSTALL_SCRIPT ifeq ($(BR2_PACKAGE_LIBUBOX),y) ODHCP6C_CONF_OPTS += -DUSE_LIBUBOX=1 ODHCP6C_DEPENDENCIES += libubox else ODHCP6C_CONF_OPTS += -DUSE_LIBUBOX=0 endif $(eval $(cmake-package)) ================================================ FILE: package/odhcploc/Config.in ================================================ config BR2_PACKAGE_ODHCPLOC bool "odhcploc" help Open DHCP Locate (ODHCPLoc) is program to locate and display active DHCP servers on a subnet. Can be used to scan for rogue DHCP servers. http://odhcploc.sourceforge.net/ ================================================ FILE: package/odhcploc/odhcploc.hash ================================================ # Locally computed: sha256 b0360a3aece8a29d131531da7bfc36d57c30c6eed30ff1ea360f7cccea1d62d7 odhcploc-20111021.tar.gz sha256 092a5b7be2a7ff088be7ec99adf68629509911b66f304b8ea0c835cdc138d544 COPYING ================================================ FILE: package/odhcploc/odhcploc.mk ================================================ ################################################################################ # # odhcploc # ################################################################################ ODHCPLOC_VERSION = 20111021 ODHCPLOC_SITE = http://downloads.sourceforge.net/project/odhcploc/$(ODHCPLOC_VERSION) ODHCPLOC_LICENSE = ISC ODHCPLOC_LICENSE_FILES = COPYING define ODHCPLOC_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all endef define ODHCPLOC_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) PREFIX=/usr DESTDIR=$(TARGET_DIR) -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/odroidc2-firmware/Config.in ================================================ config BR2_PACKAGE_ODROIDC2_FIRMWARE bool "odroidc2-firmware" help This package extracts from https://github.com/hardkernel/u-boot/tree/odroidc2-v2015.01 the pre-built firmware files, as well as the host tool fip_create that are needed to create bootable images for the Odroid C2 platform. See doc/board/amlogic/odroid-c2.rst in upstream U-Boot for more details. https://github.com/hardkernel/u-boot/tree/odroidc2-v2015.01 ================================================ FILE: package/odroidc2-firmware/odroidc2-firmware.hash ================================================ # Locally calculated sha256 a2fba4c6d9332ecc5f04283f370d5c275f35d6cb62dba1f685d011269bacb6d0 odroidc2-firmware-s905_6.0.1_v5.5.tar.gz ================================================ FILE: package/odroidc2-firmware/odroidc2-firmware.mk ================================================ ################################################################################ # # odroidc2-firmware # ################################################################################ ODROIDC2_FIRMWARE_VERSION = s905_6.0.1_v5.5 ODROIDC2_FIRMWARE_SITE = $(call github,hardkernel,u-boot,$(ODROIDC2_FIRMWARE_VERSION)) ODROIDC2_FIRMWARE_INSTALL_IMAGES = YES define ODROIDC2_FIRMWARE_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) \ -C $(@D)/tools/fip_create/ endef ODROIDC2_FIRMWARE_FILES = \ fip/gxb/bl301.bin \ fip/gxb/bl30.bin \ fip/gxb/bl31.bin \ fip/gxb/bl2.package \ sd_fuse/bl1.bin.hardkernel define ODROIDC2_FIRMWARE_INSTALL_IMAGES_CMDS $(foreach f,$(ODROIDC2_FIRMWARE_FILES), \ $(INSTALL) -D -m 0644 $(@D)/$(f) $(BINARIES_DIR)/$(notdir $(f)) ) $(INSTALL) -D -m0755 $(@D)/tools/fip_create/fip_create \ $(HOST_DIR)/bin/fip_create endef $(eval $(generic-package)) ================================================ FILE: package/ofono/0001-uclibc-backtrace.patch ================================================ [PATCH] fix build on uClibc without UCLIBC_HAS_BACKTRACE Backtrace support is only used for logging on signal errors, which isn't really critical, so simply remove backtrace info if not available in uClibc. NOTE: based on patch from Peter Korsgaard Signed-off-by: Petr Vorel --- --- ofono-1.7.orig/src/log.c +++ ofono-1.7/src/log.c @@ -30,7 +30,8 @@ #include #include #include -#ifdef __GLIBC__ +#if defined(__GLIBC__) && !(defined(__UCLIBC__) && !defined (__UCLIBC_HAS_BACKTRACE__)) +#define HAVE_BACKTRACE #include #endif #include @@ -115,7 +116,7 @@ va_end(ap); } -#ifdef __GLIBC__ +#ifdef HAVE_BACKTRACE static void print_backtrace(unsigned int offset) { void *frames[99]; @@ -312,7 +313,7 @@ if (detach == FALSE) option |= LOG_PERROR; -#ifdef __GLIBC__ +#ifdef HAVE_BACKTRACE signal_setup(signal_handler); #endif @@ -329,7 +330,7 @@ closelog(); -#ifdef __GLIBC__ +#ifdef HAVE_BACKTRACE signal_setup(SIG_DFL); #endif ================================================ FILE: package/ofono/0002-fix-musl-compile.patch ================================================ From 4a1d114fa3a5d6bef1f71222787c1f6c3a952284 Mon Sep 17 00:00:00 2001 From: Nicolas Serafini Date: Thu, 24 Jan 2019 10:11:42 +0100 Subject: [PATCH] mbim: add optional copy of TEMP_FAILURE_RETRY macro (fix musl compile) TEMP_FAILURE_RETRY is not available on musl. Signed-off-by: Nicolas Serafini --- drivers/mbimmodem/mbim.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/mbimmodem/mbim.c b/drivers/mbimmodem/mbim.c index 54b18acf..4b040528 100644 --- a/drivers/mbimmodem/mbim.c +++ b/drivers/mbimmodem/mbim.c @@ -37,6 +37,16 @@ #include "mbim-message.h" #include "mbim-private.h" +/* taken from glibc unistd.h for musl support */ +#ifndef TEMP_FAILURE_RETRY +#define TEMP_FAILURE_RETRY(expression) \ + (__extension__ \ + ({ long int __result; \ + do __result = (long int) (expression); \ + while (__result == -1L && errno == EINTR); \ + __result; })) +#endif + #define MAX_CONTROL_TRANSFER 4096 #define HEADER_SIZE (sizeof(struct mbim_message_header) + \ sizeof(struct mbim_fragment_header)) -- 2.20.1 ================================================ FILE: package/ofono/Config.in ================================================ config BR2_PACKAGE_OFONO bool "ofono" depends on BR2_USE_WCHAR # gettext, libglib2, ell depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2 depends on BR2_USE_MMU # dbus, libglib2 depends on !BR2_STATIC_LIBS # dlopen(), ell depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 # ell select BR2_PACKAGE_DBUS select BR2_PACKAGE_ELL select BR2_PACKAGE_LIBCAP_NG select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_MOBILE_BROADBAND_PROVIDER_INFO help oFono is a free, open source project for mobile telephony (GSM/UMTS) applications. It uses high-level D-Bus API for use by telephony applications. It uses 3GPP standard. http://ofono.org/ comment "ofono needs a toolchain w/ dynamic library, wchar, threads, headers >= 4.12" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 ================================================ FILE: package/ofono/S46ofono ================================================ #!/bin/sh case "$1" in start) printf "Starting ofono ... " start-stop-daemon -S -q -m -b -p /var/run/ofonod.pid --exec /usr/sbin/ofonod -- -n echo "done." ;; stop) printf "Stopping ofono ..." start-stop-daemon -K -q -p /var/run/ofonod.pid echo "done." ;; restart) $0 stop sleep 1 $0 start ;; *) echo "usage: $0 {start|stop|restart}" ;; esac ================================================ FILE: package/ofono/ofono.hash ================================================ # From https://www.kernel.org/pub/linux/network/ofono/sha256sums.asc sha256 a15c5d28096c10eb30e47a68b6dc2e7c4a5a99d7f4cfedf0b69624f33d859e9b ofono-1.31.tar.xz # Locally computed sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING ================================================ FILE: package/ofono/ofono.mk ================================================ ################################################################################ # # ofono # ################################################################################ OFONO_VERSION = 1.31 OFONO_SOURCE = ofono-$(OFONO_VERSION).tar.xz OFONO_SITE = $(BR2_KERNEL_MIRROR)/linux/network/ofono OFONO_LICENSE = GPL-2.0 OFONO_LICENSE_FILES = COPYING OFONO_DEPENDENCIES = \ host-pkgconf \ dbus \ ell \ libcap-ng \ libglib2 \ mobile-broadband-provider-info OFONO_CONF_OPTS = \ --enable-external-ell \ --disable-test \ --with-dbusconfdir=/etc \ $(if $(BR2_INIT_SYSTEMD),--with-systemdunitdir=/usr/lib/systemd/system) # N.B. Qualcomm QMI modem support requires O_CLOEXEC; so # make sure that it is defined. OFONO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" define OFONO_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/ofono/S46ofono $(TARGET_DIR)/etc/init.d/S46ofono endef ifeq ($(BR2_PACKAGE_HAS_UDEV),y) OFONO_CONF_OPTS += --enable-udev OFONO_DEPENDENCIES += udev else OFONO_CONF_OPTS += --disable-udev endif ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS),y) OFONO_CONF_OPTS += --enable-bluetooth OFONO_DEPENDENCIES += bluez5_utils else OFONO_CONF_OPTS += --disable-bluetooth endif $(eval $(autotools-package)) ================================================ FILE: package/ogre/0001-CMake-Utils-PrecompiledHeader.cmake-Add-c-argument-t.patch ================================================ From f480ac538eb69086d4b7db855c2a457d5d6420d4 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 10 Feb 2020 14:05:12 +0100 Subject: [PATCH] CMake/Utils/PrecompiledHeader.cmake: Add -c argument to build precompiled headers Add "-c" argument when building precompiled headers to fix build with RELRO. More information on a similar issue with domoticz can be found here: https://patchwork.ozlabs.org/patch/1187328: "The problem AFAICS is that if no -c or similar option is given, GCC decides what needs to be done based on the rest of the arguments. If the rest of the arguments include a -Wl,... option, it decides that linking needs to be done. If the rest of the arguments are just header files, it decides to create a precompiled header." Fixes: - http://autobuild.buildroot.org/results/8fabf8d270b9257c3a9db6a2f17f1c08ec9428d3 Signed-off-by: Fabrice Fontaine [Upstream: https://github.com/OGRECave/ogre/commit/de4d5c920e23e1e2b21dc5c8192ef74ba6210cca] --- CMake/Utils/PrecompiledHeader.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMake/Utils/PrecompiledHeader.cmake b/CMake/Utils/PrecompiledHeader.cmake index a02d99acd..bfb0059db 100644 --- a/CMake/Utils/PrecompiledHeader.cmake +++ b/CMake/Utils/PrecompiledHeader.cmake @@ -133,11 +133,11 @@ MACRO(_PCH_GET_COMPILE_COMMAND out_command _input _output) STRING(REGEX REPLACE "^ +" "" pchsupport_compiler_cxx_arg1 ${CMAKE_CXX_COMPILER_ARG1}) SET(${out_command} - ${CMAKE_CXX_COMPILER} ${pchsupport_compiler_cxx_arg1} ${_compile_FLAGS} -x c++-header -o ${_output} ${_input} + ${CMAKE_CXX_COMPILER} ${pchsupport_compiler_cxx_arg1} ${_compile_FLAGS} -x c++-header -c -o ${_output} ${_input} ) ELSE(CMAKE_CXX_COMPILER_ARG1) SET(${out_command} - ${CMAKE_CXX_COMPILER} ${_compile_FLAGS} -x c++-header -o ${_output} ${_input} + ${CMAKE_CXX_COMPILER} ${_compile_FLAGS} -x c++-header -c -o ${_output} ${_input} ) ENDIF(CMAKE_CXX_COMPILER_ARG1) ELSE(CMAKE_COMPILER_IS_GNUCXX) @@ -291,7 +291,7 @@ MACRO(ADD_PRECOMPILED_HEADER _targetName _input) set_target_properties(${_targetName}_pch_dephelp PROPERTIES INCLUDE_DIRECTORIES "${DIRINC}") #MESSAGE("_compile_FLAGS: ${_compile_FLAGS}") - #message("COMMAND ${CMAKE_CXX_COMPILER} ${_compile_FLAGS} -x c++-header -o ${_output} ${_input}") + #message("COMMAND ${CMAKE_CXX_COMPILER} ${_compile_FLAGS} -x c++-header -c -o ${_output} ${_input}") ADD_CUSTOM_COMMAND( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${_name}" -- 2.24.1 ================================================ FILE: package/ogre/0002-Checks-for-strtol_l-function.patch ================================================ From 3f182b7e743662ec3fa63e1c7f213171d99485ba Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 10 Feb 2020 21:45:58 +0100 Subject: [PATCH] Checks for strtol_l function strtol_l (and strtoul_l, strtoll_l, strtoull_l) are not always available (for example on musl) so check for strtol_l and reuse android fallback if needed to avoid the following build failure: /home/buildroot/autobuild/instance-1/output-1/build/ogre-1.12.0/OgreMain/src/OgreStringConverter.cpp: In static member function 'static bool Ogre::StringConverter::parse(const String&, Ogre::int32&)': /home/buildroot/autobuild/instance-1/output-1/build/ogre-1.12.0/OgreMain/src/OgreStringConverter.cpp:253:22: error: 'strtol_l' was not declared in this scope ret = (int32)strtol_l(val.c_str(), &end, 0, _numLocale); ^~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/107cffe41081ce46441dec8699d6ad0f152bc152 Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/OGRECave/ogre/commit/3f182b7e743662ec3fa63e1c7f213171d99485ba] --- CMake/ConfigureBuild.cmake | 7 +++++++ CMake/Templates/OgreBuildSettings.h.in | 2 ++ OgreMain/include/OgreString.h | 3 +++ 3 files changed, 12 insertions(+) diff --git a/CMake/ConfigureBuild.cmake b/CMake/ConfigureBuild.cmake index ab049a525ae..73606c997c1 100644 --- a/CMake/ConfigureBuild.cmake +++ b/CMake/ConfigureBuild.cmake @@ -133,6 +133,13 @@ if(SDL2_FOUND OR EMSCRIPTEN) set(OGRE_BITES_HAVE_SDL 1) endif() +# determine if strtol_l is supported +include(CheckFunctionExists) +CHECK_FUNCTION_EXISTS(strtol_l HAVE_STRTOL_L) +if (NOT HAVE_STRTOL_L) + set(OGRE_NO_LOCALE_STRCONVERT 1) +endif () + # generate OgreBuildSettings.h configure_file(${OGRE_TEMPLATES_DIR}/OgreComponents.h.in ${PROJECT_BINARY_DIR}/include/OgreComponents.h @ONLY) configure_file(${OGRE_TEMPLATES_DIR}/OgreBuildSettings.h.in ${PROJECT_BINARY_DIR}/include/OgreBuildSettings.h @ONLY) diff --git a/CMake/Templates/OgreBuildSettings.h.in b/CMake/Templates/OgreBuildSettings.h.in index a491d09624c..95eb1b71d64 100644 --- a/CMake/Templates/OgreBuildSettings.h.in +++ b/CMake/Templates/OgreBuildSettings.h.in @@ -107,4 +107,6 @@ WARNING: Disabling this will make the samples unusable. #cmakedefine01 OGRE_NO_QUAD_BUFFER_STEREO +#cmakedefine01 OGRE_NO_LOCALE_STRCONVERT + #endif diff --git a/OgreMain/include/OgreString.h b/OgreMain/include/OgreString.h index a81c220012e..1f544195dee 100644 --- a/OgreMain/include/OgreString.h +++ b/OgreMain/include/OgreString.h @@ -46,8 +46,11 @@ THE SOFTWARE. # define strnicmp strncasecmp #endif +#if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID || OGRE_PLATFORM == OGRE_PLATFORM_EMSCRIPTEN || \ + (OGRE_PLATFORM == OGRE_PLATFORM_LINUX && OGRE_NO_LOCALE_STRCONVERT == 1) #if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID || OGRE_PLATFORM == OGRE_PLATFORM_EMSCRIPTEN # define locale_t int +#endif # define strtod_l(ptr, end, l) strtod(ptr, end) # define strtoul_l(ptr, end, base, l) strtoul(ptr, end, base) # define strtol_l(ptr, end, base, l) strtol(ptr, end, base) ================================================ FILE: package/ogre/Config.in ================================================ config BR2_PACKAGE_OGRE bool "ogre" depends on BR2_PACKAGE_HAS_LIBGL # libglu depends on BR2_PACKAGE_XORG7 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU depends on BR2_USE_WCHAR # use wchar_t select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_LIBFREEIMAGE select BR2_PACKAGE_SDL2 select BR2_PACKAGE_SDL2_OPENGL select BR2_PACKAGE_SDL2_X11 # use wmInfo.info.x11 select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXRANDR select BR2_PACKAGE_ZZIPLIB help OGRE is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce games and demos utilising 3D hardware. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes. https://ogrecave.github.io/ogre comment "ogre needs X11 and an OpenGL provider" depends on !BR2_PACKAGE_HAS_LIBGL || !BR2_PACKAGE_XORG7 depends on BR2_TOOLCHAIN_HAS_THREADS && BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \ && BR2_INSTALL_LIBSTDCPP && !BR2_STATIC_LIBS && BR2_USE_WCHAR depends on BR2_USE_MMU comment "ogre needs a toolchain w/ C++, dynamic library, gcc >= 4.8, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \ || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_USE_WCHAR depends on BR2_USE_MMU ================================================ FILE: package/ogre/ogre.hash ================================================ # sha256 locally computed sha256 163e7700e319532d4389ecba91e3ab88551f78610886fa36f8f262f9a5080988 ogre-1.12.0.tar.gz sha256 82758e8d1d72139904b9b7472ef0f6544413d2871b58540307fdcc20e473e5f8 LICENSE ================================================ FILE: package/ogre/ogre.mk ================================================ ################################################################################ # # ogre # ################################################################################ OGRE_VERSION = 1.12.0 OGRE_SITE = $(call github,OGRECave,ogre,v$(OGRE_VERSION)) OGRE_LICENSE = MIT (main library, DeferredShadingMedia samples), Public Domain (samples and plugins), Zlib (tinyxml) OGRE_LICENSE_FILES = LICENSE OGRE_INSTALL_STAGING = YES # Ogre use a bundled version of tinyxml OGRE_DEPENDENCIES = host-pkgconf \ freetype \ libfreeimage \ libgl \ sdl2 \ xlib_libX11 \ xlib_libXaw \ xlib_libXext \ xlib_libXrandr \ zziplib OGRE_CFLAGS = $(TARGET_CFLAGS) -DGLEW_NO_GLU OGRE_CXXFLAGS = $(TARGET_CXXFLAGS) -DGLEW_NO_GLU # Unbundle freetype and zziplib. # Disable java and nvidia cg support. OGRE_CONF_OPTS = -DOGRE_BUILD_DEPENDENCIES=OFF \ -DOGRE_BUILD_COMPONENT_JAVA=OFF \ -DOGRE_BUILD_PLUGIN_CG=OFF \ -DOGRE_INSTALL_DOCS=OFF \ -DCMAKE_C_FLAGS="$(OGRE_CFLAGS)" \ -DCMAKE_CXX_FLAGS="$(OGRE_CXXFLAGS)" # Enable optional python component if python interpreter is present on the target. ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y) OGRE_DEPENDENCIES += host-swig \ $(if $(BR2_PACKAGE_PYTHON3),host-python3,host-python) OGRE_CONF_OPTS += -DOGRE_BUILD_COMPONENT_PYTHON=ON else OGRE_CONF_OPTS += -DOGRE_BUILD_COMPONENT_PYTHON=OFF endif # Uses __atomic_fetch_add_8 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) OGRE_CXXFLAGS += -latomic endif $(eval $(cmake-package)) ================================================ FILE: package/olsr/0001-olsrd-migrate-to-using-bison-3.7.1.patch ================================================ From f31eec323ae65124474664f8a0444f7c035556dd Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 6 Sep 2020 22:31:12 +0200 Subject: [PATCH] olsrd: migrate to using bison 3.7.1 With the upgrade to bison 3.7.1 (openwrt commit 1cf842d) building olsrd was failing. Now, instead of the contents of header files being directly inserted into the generated source files, they are instead included with a #include directive. The local.mk has, until now, done some magic with *-tmp files, which is not longer necessary and even causes builds to fail. src/cfgparser/oparse.c:265:10: fatal error: oparse.h-tmp: No such file or directory #include "oparse.h-tmp" Suggested-by: Jo-Philipp Wich Signed-off-by: Perry Melange [Retrieved from: https://github.com/openwrt-routing/packages/commit/5cc8e058850acbc22fe92c5e2b24863efc577971] Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/OLSR/olsrd/pull/87] --- src/cfgparser/local.mk | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/cfgparser/local.mk b/src/cfgparser/local.mk index e767abfc..56e594e4 100644 --- a/src/cfgparser/local.mk +++ b/src/cfgparser/local.mk @@ -74,12 +74,8 @@ $(C)oparse.c: $(C)oparse.y $(C)olsrd_conf.h $(C)Makefile ifeq ($(VERBOSE),0) @echo "[BISON] $@" endif - $(MAKECMDPREFIX)$(BISON) -d -o "$@-tmp" "$<" - $(MAKECMDPREFIX)sed -e 's/register //' \ - -e '/^#line/s/$(call quote,$@-tmp)/$(call quote,$@)/' \ - < "$@-tmp" >"$@" - $(MAKECMDPREFIX)mv "$(subst .c,.h,$@-tmp)" "$(subst .c,.h,$@)" - $(MAKECMDPREFIX)$(RM) "$@-tmp" "$(subst .c,.h,$@-tmp)" + $(MAKECMDPREFIX)$(BISON) -d -o "$@" "$<" + $(MAKECMDPREFIX)sed -e 's/register //' "$@" > "$@.o" && mv "$@.o" "$@" $(C)oparse.o: CFLAGS := $(filter-out -Wunreachable-code,$(CFLAGS)) -- 2.28.0 ================================================ FILE: package/olsr/0002-lib-pud-Makefile-fix-parallel-build.patch ================================================ From 2f9311668dfdeee0453f5fceb27e8c95c065c4b6 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 18 Jan 2020 17:29:56 +0100 Subject: [PATCH] lib/pud/Makefile: fix parallel build nmealib is needed to build olsrd_pud plugin otherwise build fails on: [LD] olsrd_pud.so.3.0.0 (nmealib dynamically linked) /home/fabrice/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lnmea wireformat/lib/libOlsrdPudWireFormat.so: file not recognized: File truncated Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/OLSR/olsrd/pull/78] --- lib/pud/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pud/Makefile b/lib/pud/Makefile index e2524421..28330d92 100644 --- a/lib/pud/Makefile +++ b/lib/pud/Makefile @@ -108,7 +108,7 @@ endif default_target: nmealib library $(PLUGIN_FULLNAME) -$(PLUGIN_FULLNAME): $(OBJS) version-script.txt +$(PLUGIN_FULLNAME): $(OBJS) version-script.txt nmealib ifeq ($(PUD_NMEALIB_STATICALLY_LINKED),) ifeq ($(VERBOSE),0) @echo "[LD] $@ (nmealib dynamically linked)" -- 2.24.1 ================================================ FILE: package/olsr/0003-pud-adapt-to-API-changes-in-gpsd-3-20.patch ================================================ From b2dfb6c27fcf4ddae87b0e99492f4bb8472fa39a Mon Sep 17 00:00:00 2001 From: Eneas U de Queiroz Date: Thu, 13 Feb 2020 17:26:41 -0300 Subject: [PATCH] pud: adapt to API changes in gpsd 3.20 The timestamp fields were changed from double to struct timespec, and the geoid separation field was moved to fix.geoid_sep. Signed-off-by: Eneas U de Queiroz [Retrieved from: https://github.com/OLSR/olsrd/commit/b2dfb6c27fcf4ddae87b0e99492f4bb8472fa39a] Signed-off-by: Fabrice Fontaine --- lib/pud/src/gpsdclient.c | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/lib/pud/src/gpsdclient.c b/lib/pud/src/gpsdclient.c index 9e7fb708d..2a7a26eef 100644 --- a/lib/pud/src/gpsdclient.c +++ b/lib/pud/src/gpsdclient.c @@ -79,6 +79,23 @@ static void gpsdError(const char *s) { syslog(LOG_ERR, "gpsd error: %s", s); } +#if GPSD_API_MAJOR_VERSION >= 9 +static double time_as_double(struct timespec *ts) { + return (ts->tv_sec + ts->tv_nsec * 1e-9); +} + +static bool is_online(struct gps_data_t *gpsdata) { + return !!gpsdata->online.tv_sec; +} +#else + +#define time_as_double(x) *(x) + +static bool is_online(struct gps_data_t *gpsdata) { + return !!gpsdata->online; +} +#endif + /* standard parsing of a GPS data source spec */ void gpsdParseSourceSpec(char *arg, GpsDaemon *gpsDaemon) { if (!arg // @@ -298,8 +315,8 @@ void nmeaInfoFromGpsd(struct gps_data_t *gpsdata, NmeaInfo *info, struct GpsdCon 8, // dev->parity, // dev->stopbits, // - dev->cycle, // - dev->mincycle); + time_as_double(&dev->cycle), // + time_as_double(&dev->mincycle)); connectionTracking->devSeen[i] = true; connectionTracking->dev[i] = *dev; @@ -367,11 +384,18 @@ void nmeaInfoFromGpsd(struct gps_data_t *gpsdata, NmeaInfo *info, struct GpsdCon nmeaInfoSetPresent(&info->present, NMEALIB_PRESENT_SMASK); /* date & time */ +#if GPSD_API_MAJOR_VERSION >= 9 + if (gpsdata->fix.time.tv_sec > 0) { + struct tm *time = gmtime(&gpsdata->fix.time.tv_sec); + unsigned int hsec = (unsigned int) (gpsdata->fix.time.tv_nsec / 10000000); +#else if (!isNaN(gpsdata->fix.time)) { double seconds; double fraction = modf(fabs(gpsdata->fix.time), &seconds); long sec = lrint(seconds); struct tm *time = gmtime(&sec); + unsigned int hsec = (unsigned int) lrint(fraction * 100); +#endif if (time) { info->utc.year = (unsigned int) time->tm_year + 1900; info->utc.mon = (unsigned int) time->tm_mon + 1; @@ -379,7 +403,7 @@ void nmeaInfoFromGpsd(struct gps_data_t *gpsdata, NmeaInfo *info, struct GpsdCon info->utc.hour = (unsigned int) time->tm_hour; info->utc.min = (unsigned int) time->tm_min; info->utc.sec = (unsigned int) time->tm_sec; - info->utc.hsec = (unsigned int) lrint(fraction * 100); + info->utc.hsec = hsec; nmeaInfoSetPresent(&info->present, NMEALIB_PRESENT_UTCDATE | NMEALIB_PRESENT_UTCTIME); } @@ -387,7 +411,7 @@ void nmeaInfoFromGpsd(struct gps_data_t *gpsdata, NmeaInfo *info, struct GpsdCon gpsdata->set &= ~TIME_SET; /* sig & fix */ - if (!gpsdata->online) { + if (!is_online(gpsdata)) { gpsdata->fix.mode = MODE_NO_FIX; } @@ -454,7 +478,11 @@ void nmeaInfoFromGpsd(struct gps_data_t *gpsdata, NmeaInfo *info, struct GpsdCon if ((gpsdata->fix.mode >= MODE_3D) // && !isNaN(gpsdata->fix.altitude)) { info->elevation = gpsdata->fix.altitude; +#if GPSD_API_MAJOR_VERSION >= 9 + info->height = gpsdata->fix.geoid_sep; +#else info->height = gpsdata->separation; +#endif nmeaInfoSetPresent(&info->present, NMEALIB_PRESENT_ELV | NMEALIB_PRESENT_HEIGHT); } gpsdata->set &= ~ALTITUDE_SET; ================================================ FILE: package/olsr/0004-pud-adapt-gpsdclient.c-to-new-gpsd-3.21.patch ================================================ From 2f9ee6079b20fb5d3884472825a40c5c65550fa2 Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Sun, 30 May 2021 19:13:48 +0200 Subject: [PATCH] pud: adapt gpsdclient.c to new gpsd 3.21 As mentioned: "Move gps_data_t->status to gps_fix_t.status for better fix merging" https://gitlab.com/gpsd/gpsd/-/commit/29991d6ffeb41ecfc8297db68bb68be0128c8514 Signed-off-by: Nick Hainke Upstream: 79a28cdb4083b66c5d3a5f9c0d70dbdc86c0420c Signed-off-by: Thomas Petazzoni --- lib/pud/src/gpsdclient.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/pud/src/gpsdclient.c b/lib/pud/src/gpsdclient.c index 2a7a26ee..a2a9cee0 100644 --- a/lib/pud/src/gpsdclient.c +++ b/lib/pud/src/gpsdclient.c @@ -370,7 +370,11 @@ void nmeaInfoFromGpsd(struct gps_data_t *gpsdata, NmeaInfo *info, struct GpsdCon ); gpsdata->set &= ~STATUS_SET; /* always valid */ + #if GPSD_API_MAJOR_VERSION >= 10 + if (gpsdata->fix.status == STATUS_NO_FIX) { + #else if (gpsdata->status == STATUS_NO_FIX) { + #endif nmeaInfoClear(info); nmeaTimeSet(&info->utc, &info->present, NULL); return; -- 2.31.1 ================================================ FILE: package/olsr/0005-lib-pud-src-gpsdclient.c-drop-handling-of-gpsdata-fi.patch ================================================ From 665051a845464c0f95edb81432104dac39426f79 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 6 Nov 2021 15:50:58 +0100 Subject: [PATCH] lib/pud/src/gpsdclient.c: drop handling of gpsdata->fix.status Here is an extract of https://gpsd.gitlab.io/gpsd/gpsd_json.html: The optional "status" field (aka fix type), is a modifier (adjective) to mode. It is not a replacement for, or superset of, the "mode" field. It is almost, but not quite, the same as the NMEA 4.x xxGGA GPS Quality Indicator Values. Many GNSS receivers do not supply it. Those that do interpret the specification in various incompatible ways. So status field is optional and STATUS_NO_FIX has been explicitly renamed into STATUS_UNK to avoid confusion with MODE_NO_FIX (which is already handled by gpsdclient.c) so drop the if block to fix the build failure with gpsd >= 3.23.1. Signed-off-by: Fabrice Fontaine [Upstream: https://github.com/OLSR/olsrd/commit/665051a845464c0f95edb81432104dac39426f79] Signed-off-by: Peter Seiderer --- lib/pud/src/gpsdclient.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/lib/pud/src/gpsdclient.c b/lib/pud/src/gpsdclient.c index a2a9cee0..d448867d 100644 --- a/lib/pud/src/gpsdclient.c +++ b/lib/pud/src/gpsdclient.c @@ -370,15 +370,6 @@ void nmeaInfoFromGpsd(struct gps_data_t *gpsdata, NmeaInfo *info, struct GpsdCon ); gpsdata->set &= ~STATUS_SET; /* always valid */ - #if GPSD_API_MAJOR_VERSION >= 10 - if (gpsdata->fix.status == STATUS_NO_FIX) { - #else - if (gpsdata->status == STATUS_NO_FIX) { - #endif - nmeaInfoClear(info); - nmeaTimeSet(&info->utc, &info->present, NULL); - return; - } if (!gpsdata->set) { return; -- 2.33.1 ================================================ FILE: package/olsr/Config.in ================================================ config BR2_PACKAGE_OLSR bool "olsr" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # https://github.com/OLSR/olsrd/issues/6 depends on !BR2_TOOLCHAIN_USES_MUSL || BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 help The Optimized Link State Routing protocol (OLSR) is a routing protocol that is optimised for mobile ad-hoc networks, sometimes called wireless mesh networks. It is a proactive link-state routing protocol that floods a full topology table to all nodes in the network which then compute optimal forwarding paths locally. http://www.olsr.org/ comment "olsr needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS comment "olsr needs a musl toolchain w/ headers >= 4.15" depends on BR2_TOOLCHAIN_USES_MUSL depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 ================================================ FILE: package/olsr/S50olsr ================================================ #!/bin/sh case "$1" in start) printf "Starting oslrd daemon: " start-stop-daemon -S -q -x /usr/sbin/olsrd -- -d 0 -pidfile /run/olsrd.pid [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping olsrd daemon: " start-stop-daemon -K -q -p /run/olsrd.pid [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/olsr/olsr.hash ================================================ # Locally computed sha256 ee9e524224e5d5304dcf61f1dc5485c569da09d382934ff85b233be3e24821a3 olsr-0.9.8.tar.gz sha256 7dcf1fb93ef105e2708b02603bb6ee443115d4819fbf2c5a3a001b46887acb9a license.txt sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 lib/pud/nmealib/LICENSE ================================================ FILE: package/olsr/olsr.mk ================================================ ################################################################################ # # olsr # ################################################################################ OLSR_VERSION = 0.9.8 OLSR_SITE = $(call github,OLSR,olsrd,v$(OLSR_VERSION)) OLSR_PLUGINS = arprefresh bmf dot_draw dyn_gw dyn_gw_plain httpinfo jsoninfo \ mdns nameservice netjson poprouting p2pd pgraph secure txtinfo watchdog # Doesn't really need quagga but not very useful without it OLSR_PLUGINS += $(if $(BR2_PACKAGE_QUAGGA),quagga) OLSR_LICENSE = BSD-3-Clause OLSR_LICENSE_FILES = license.txt OLSR_DEPENDENCIES = host-flex host-bison OLSR_CFLAGS = $(TARGET_CFLAGS) # it needs -fPIC to link on lot of architectures OLSR_CFLAGS += -fPIC ifeq ($(BR2_PACKAGE_GPSD),y) OLSR_LICENSE += , LGPL-2.1+ (nmealib) OLSR_LICENSE_FILES += lib/pud/nmealib/LICENSE OLSR_DEPENDENCIES += gpsd OLSR_PLUGINS += pud endif define OLSR_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) ARCH=$(KERNEL_ARCH) \ CFLAGS="$(OLSR_CFLAGS)" -C $(@D) olsrd $(foreach p,$(OLSR_PLUGINS), \ $(TARGET_CONFIGURE_OPTS) $(MAKE) ARCH=$(KERNEL_ARCH) \ CFLAGS="$(OLSR_CFLAGS)" -C $(@D)/lib/$(p) ) endef define OLSR_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) \ prefix="/usr" install_bin $(foreach p,$(OLSR_PLUGINS), \ $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/lib/$(p) \ LDCONFIG=/bin/true DESTDIR=$(TARGET_DIR) \ prefix="/usr" install ) $(INSTALL) -D -m 0644 $(@D)/files/olsrd.conf.default.lq \ $(TARGET_DIR)/etc/olsrd/olsrd.conf endef define OLSR_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/olsr/S50olsr \ $(TARGET_DIR)/etc/init.d/S50olsr endef define OLSR_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/olsr/olsr.service \ $(TARGET_DIR)/usr/lib/systemd/system/olsr.service endef $(eval $(generic-package)) ================================================ FILE: package/olsr/olsr.service ================================================ [Unit] Description=Ad-hoc wireless mesh routing daemon After=network.target [Service] ExecStart=/usr/sbin/olsrd -nofork Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/omap-u-boot-utils/Config.in.host ================================================ config BR2_PACKAGE_HOST_OMAP_U_BOOT_UTILS bool "host omap-u-boot-utils" depends on BR2_arm || BR2_armeb help U-Boot Utilities for Texas Instrument's OMAP platforms. This is a set of tools to control U-Boot from scripts, generate OMAP-specific signed image files and more. https://github.com/nmenon/omap-u-boot-utils ================================================ FILE: package/omap-u-boot-utils/omap-u-boot-utils.hash ================================================ # locally computed sha256 f9c2553efeff1289b2b964a266a0b4a03a377f84a14d0599a779f6e3d7b75d5f omap-u-boot-utils-3f07426cddc0be9e24702e7aacc7574ddd7fba28.tar.gz sha256 1080312c3230fb7dd32fe807ed8c8cd11f4061bf1a2f065b651630bfe30157b2 COPYING ================================================ FILE: package/omap-u-boot-utils/omap-u-boot-utils.mk ================================================ ################################################################################ # # omap-u-boot-utils # ################################################################################ OMAP_U_BOOT_UTILS_VERSION = 3f07426cddc0be9e24702e7aacc7574ddd7fba28 OMAP_U_BOOT_UTILS_SITE = $(call github,nmenon,omap-u-boot-utils,$(OMAP_U_BOOT_UTILS_VERSION)) OMAP_U_BOOT_UTILS_LICENSE = GPL-2.0, GPL-2.0+ OMAP_U_BOOT_UTILS_LICENSE_FILES = COPYING define HOST_OMAP_U_BOOT_UTILS_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_OMAP_U_BOOT_UTILS_INSTALL_CMDS for f in gpsign pserial tagger ucmd ukermit ; do \ $(INSTALL) -D -m 755 $(@D)/$$f $(HOST_DIR)/bin/$$f ; \ done endef $(eval $(host-generic-package)) ================================================ FILE: package/omniorb/Config.in ================================================ comment "omniORB needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_OMNIORB bool "omniorb" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS help omniORB is a robust high performance CORBA ORB for C++ and Python. omniORB is largely CORBA 2.6 compliant. omniORB is one of only three ORBs to have been awarded the Open Group's Open Brand for CORBA. This means that omniORB has been tested and certified CORBA compliant, to version 2.1 of the CORBA specification. http://omniorb.sourceforge.net/ if BR2_PACKAGE_OMNIORB config BR2_PACKAGE_OMNIORB_WITH_APPS bool "Enable Apps and Services" help omniORB applications and services disabled by default embedded system build configuration. endif ================================================ FILE: package/omniorb/omniorb.hash ================================================ # From https://sourceforge.net/projects/omniorb/files/omniORB/omniORB-4.2.4/ sha1 a6f3c8e96fc09c4ef8d75bd495bbc5256a4773ee omniORB-4.2.4.tar.bz2 md5 de961e8aa29f3eed95ea40a94c1cccdf omniORB-4.2.4.tar.bz2 # Locally generated sha256 28c01cd0df76c1e81524ca369dc9e6e75f57dc70f30688c99c67926e4bdc7a6f omniORB-4.2.4.tar.bz2 sha256 126647a6ee062fe46f8f3766965dc62e031c0a31238a347e4bc07aab2ac1e2a7 COPYING sha256 eaf5b13ffd5355da7c0b83074e4b798152ff7086c95c4f3045122a06e2673eb9 COPYING.LIB ================================================ FILE: package/omniorb/omniorb.mk ================================================ ################################################################################ # # omniorb # ################################################################################ OMNIORB_VERSION = 4.2.4 OMNIORB_SITE = http://downloads.sourceforge.net/project/omniorb/omniORB/omniORB-$(OMNIORB_VERSION) OMNIORB_SOURCE = omniORB-$(OMNIORB_VERSION).tar.bz2 OMNIORB_INSTALL_STAGING = YES OMNIORB_LICENSE = GPL2+, LGPL-2.1+ OMNIORB_LICENSE_FILES = COPYING COPYING.LIB OMNIORB_DEPENDENCIES = host-omniorb HOST_OMNIORB_DEPENDENCIES = host-python # omniorb is not python3 friendly, so force the python interpreter OMNIORB_CONF_OPTS = ac_cv_path_PYTHON=$(HOST_DIR)/bin/python2 HOST_OMNIORB_CONF_OPTS = ac_cv_path_PYTHON=$(HOST_DIR)/bin/python2 # Defaulting long double support to a safe option for the # mix of embedded targets, this could later be automated # based on checking the capability of the cross toolchain # for "__LONG_DOUBLE_128__". Currently the host and target # need to match because of the code generation done by the # host tools during the target compile (ie headers generated # on host are used in target build). OMNIORB_CONF_OPTS += --disable-longdouble HOST_OMNIORB_CONF_OPTS += --disable-longdouble ifeq ($(BR2_PACKAGE_OPENSSL),y) OMNIORB_CONF_OPTS += --with-openssl OMNIORB_DEPENDENCIES += openssl else OMNIORB_CONF_OPTS += --without-openssl endif ifeq ($(BR2_PACKAGE_ZLIB),y) OMNIORB_DEPENDENCIES += zlib endif # The EmbeddedSystem define (set below in OMNIORB_ADJUST_TOOLDIR) # enables building of just the lib and disables building of # tools/apps/services. In some cases the apps/services are still # required. The tools however are host related and should never # be required on target. define OMNIORB_ENABLE_EXTRA_APPS $(SED) 's:SUBDIRS += lib:SUBDIRS += lib appl services:g' $(@D)/src/dir.mk endef ifeq ($(BR2_PACKAGE_OMNIORB_WITH_APPS),y) OMNIORB_POST_PATCH_HOOKS += OMNIORB_ENABLE_EXTRA_APPS endif ifeq ($(BR2_STATIC_LIBS),y) define OMNIORB_DISABLE_SHARED echo "BuildSharedLibrary =" >> $(@D)/mk/beforeauto.mk endef OMNIORB_POST_CONFIGURE_HOOKS += OMNIORB_DISABLE_SHARED endif # omniORB is not completely cross-compile friendly and has some # assumptions where a couple host tools must be built and then # used by the target build. The host tools generate code from # the IDL description language, which is then built into the # cross compiled target OMNIORB application. define OMNIORB_ADJUST_TOOLDIR # Point to the host folder to get HOST_OMNIORB tools $(SED) 's:TOOLBINDIR = $$(TOP)/$$(BINDIR):TOOLBINDIR = $(HOST_DIR)/bin:g' $(@D)/mk/beforeauto.mk # Disables OMNIORB app/service/tool building echo "EmbeddedSystem=1" >> $(@D)/mk/beforeauto.mk endef OMNIORB_POST_CONFIGURE_HOOKS += OMNIORB_ADJUST_TOOLDIR $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/omxplayer/0001-Update-Makefile-to-be-compatible-with-buildroot.patch ================================================ From 40bf9c0960becaf0e592cac901466af93f24e52b Mon Sep 17 00:00:00 2001 From: Julius Kriukas Date: Fri, 1 Dec 2017 18:29:24 +0200 Subject: [PATCH] Update Makefile to be compatible with buildroot - Append to existing CFLAGS instead of overwriting. - Remove cross-compilation specific options from CFLAGS, they will be set by buildroot. - Remove local ffmpeg_compiled include, buildroot will build ffmpeg separately. - Remove hard-coded dbus, freetype, rpi-firmware include paths, they will be added by buildroot. Signed-off-by: Julius Kriukas --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 5f4e414..53fa1bc 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ -CFLAGS=-pipe -mfloat-abi=hard -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 +CFLAGS+=-fomit-frame-pointer -Wno-psabi -mno-apcs-stack-check -g -mstructure-size-boundary=32 -mno-sched-prolog CFLAGS+=-std=c++0x -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DHAVE_LIBSWRESAMPLE_SWRESAMPLE_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST LDFLAGS=-L$(SDKSTAGE)/opt/vc/lib/ -LDFLAGS+=-L./ -Lffmpeg_compiled/usr/local/lib/ -lc -lbrcmGLESv2 -lbrcmEGL -lbcm_host -lopenmaxil -lfreetype -lz -lasound +LDFLAGS+=-L./ -lc -lbrcmGLESv2 -lbrcmEGL -lbcm_host -lopenmaxil -lfreetype -lz -lasound -INCLUDES+=-I./ -Ilinux -Iffmpeg_compiled/usr/local/include/ -I /usr/include/dbus-1.0 -I /usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/freetype2 -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads +INCLUDES+=-I./ -Ilinux DIST ?= omxplayer-dist STRIP ?= strip -- 2.11.0 ================================================ FILE: package/omxplayer/Config.in ================================================ 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 # alsa-lib, boost, libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb depends on BR2_USE_WCHAR # boost depends on BR2_PACKAGE_RPI_USERLAND select BR2_PACKAGE_ALSA_LIB 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, gcc >= 4.9" 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 \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/omxplayer/omxplayer.hash ================================================ # Locally computed: sha1 a9106203f822fe88eb35980479f46a555086d4a7 omxplayer-f06235cc9690a6d58187514452df8cf8fcdaacec.tar.gz sha256 af2d9450f8947842ea8c401fe9f71eec444013ebbdee29f2ac828c9c493c1329 omxplayer-f06235cc9690a6d58187514452df8cf8fcdaacec.tar.gz # Hash for license file: sha256 60e78ba9f921bb06bcf957575245414b1577c9688a63ddd73bc65f9d48fe31c9 COPYING ================================================ FILE: package/omxplayer/omxplayer.mk ================================================ ################################################################################ # # omxplayer # ################################################################################ OMXPLAYER_VERSION = f06235cc9690a6d58187514452df8cf8fcdaacec OMXPLAYER_SITE = $(call github,popcornmix,omxplayer,$(OMXPLAYER_VERSION)) OMXPLAYER_LICENSE = GPL-2.0+ OMXPLAYER_LICENSE_FILES = COPYING OMXPLAYER_DEPENDENCIES = \ host-pkgconf alsa-lib 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 = \ SDKSTAGE=$(STAGING_DIR) \ $(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)) ================================================ FILE: package/on2-8170-libs/Config.in ================================================ config BR2_PACKAGE_ON2_8170_LIBS bool "on2-8170-libs" #This is a binary only package which has been compiled for glibc depends on BR2_arm926t depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_LINUX_KERNEL # on2-8170-modules select BR2_PACKAGE_ON2_8170_MODULES # runtime help Libraries for Hantro X170 video decoder http://www.at91.com/linux4sam/bin/view/Linux4SAM/SAM9M10Gstreamer 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 ================================================ FILE: package/on2-8170-libs/on2-8170-libs.hash ================================================ # locally computed sha256 db7390a13e7c0426894a6f966ecde1f89e6566416088c50729750e800306a2de on2-8170-libs-1.0.tar.gz ================================================ FILE: package/on2-8170-libs/on2-8170-libs.mk ================================================ ################################################################################ # # on2-8170-libs # ################################################################################ ON2_8170_LIBS_VERSION = 1.0 ON2_8170_LIBS_SITE = ftp://ftp.linux4sam.org/pub/demo/linux4sam_1.9/codec ON2_8170_LIBS_LICENSE = PROPRIETARY # No license file is included in the archive ON2_8170_LIBS_INSTALL_STAGING = YES define ON2_8170_LIBS_INSTALL_STAGING_CMDS mkdir -p $(STAGING_DIR)/usr/lib $(STAGING_DIR)/usr/include cp -dpf $(@D)/*.a $(@D)/*.so $(STAGING_DIR)/usr/lib cp -dpf $(@D)/*.h $(STAGING_DIR)/usr/include endef define ON2_8170_LIBS_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/lib cp -dpf $(@D)/*.so $(TARGET_DIR)/usr/lib endef $(eval $(generic-package)) ================================================ FILE: package/on2-8170-modules/Config.in ================================================ config BR2_PACKAGE_ON2_8170_MODULES bool "on2-8170-modules" depends on BR2_LINUX_KERNEL depends on BR2_arm926t help Kernel modules for Hantro x170 hardware video decompression support. http://www.at91.com/linux4sam/bin/view/Linux4SAM/SAM9M10Gstreamer comment "on2-8170-modules needs a Linux kernel to be built" depends on BR2_arm926t depends on !BR2_LINUX_KERNEL ================================================ FILE: package/on2-8170-modules/on2-8170-modules.hash ================================================ # locally computed sha256 d04d3acb8755281f6721d2a2efe04014060f83f38972208f356a486d52ca8bfc on2-8170-modules-73b08061d30789178e692bc332b73d1d9922bf39.tar.gz ================================================ FILE: package/on2-8170-modules/on2-8170-modules.mk ================================================ ################################################################################ # # on2-8170-modules # ################################################################################ ON2_8170_MODULES_VERSION = 73b08061d30789178e692bc332b73d1d9922bf39 ON2_8170_MODULES_SITE = $(call github,alexandrebelloni,on2-8170-modules,$(ON2_8170_MODULES_VERSION)) ON2_8170_MODULES_LICENSE = GPL-2.0+ #There is no license file $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/oniguruma/Config.in ================================================ config BR2_PACKAGE_ONIGURUMA bool "oniguruma" help Oniguruma is a modern and flexible regular expressions library. It encompasses features from different regular expression implementations that traditionally exist in different languages. https://github.com/kkos/oniguruma ================================================ FILE: package/oniguruma/oniguruma.hash ================================================ # From https://github.com/kkos/oniguruma/releases/download/v6.9.7/onig-6.9.7.1.tar.gz.sha256 sha256 6444204b9c34e6eb6c0b23021ce89a0370dad2b2f5c00cd44c342753e0b204d9 onig-6.9.7.1.tar.gz # Hash for license file sha256 70ba5469ea0bab6e18a32d7009068f996503168d27be57747e08da34337ff26f COPYING ================================================ FILE: package/oniguruma/oniguruma.mk ================================================ ################################################################################ # # oniguruma # ################################################################################ ONIGURUMA_VERSION = 6.9.7.1 ONIGURUMA_SITE = \ https://github.com/kkos/oniguruma/releases/download/v$(ONIGURUMA_VERSION) ONIGURUMA_SOURCE = onig-$(ONIGURUMA_VERSION).tar.gz ONIGURUMA_LICENSE = BSD-2-Clause ONIGURUMA_LICENSE_FILES = COPYING ONIGURUMA_CPE_ID_VENDOR = oniguruma_project ONIGURUMA_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/open-lldp/Config.in ================================================ config BR2_PACKAGE_OPEN_LLDP bool "open-lldp" depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_TOOLCHAIN_HAS_THREADS # libnl select BR2_PACKAGE_LIBCONFIG select BR2_PACKAGE_LIBNL select BR2_PACKAGE_READLINE help This package contains the Linux user space daemon and configuration tool for Intel LLDP Agent with Enhanced Ethernet support for the Data Center. https://github.com/intel/openlldp/ comment "open-lldp needs a toolchain w/ dynamic library, threads" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/open-lldp/open-lldp.hash ================================================ # Locally computed sha256 13e0890527192a6289e6dac82056c447a1e2624ff93b0b6bbd8a42d15b2cbc8c open-lldp-1.1.tar.gz sha256 67af5abeb092213cd9c53781503320f635ba28b641e0c3f24d367e8e93a9839b COPYING ================================================ FILE: package/open-lldp/open-lldp.mk ================================================ ################################################################################ # # open-lldp # ################################################################################ OPEN_LLDP_VERSION = 1.1 OPEN_LLDP_SITE = $(call github,intel,openlldp,v$(OPEN_LLDP_VERSION)) OPEN_LLDP_DEPENDENCIES = readline libnl libconfig host-pkgconf OPEN_LLDP_LICENSE = GPL-2.0 OPEN_LLDP_LICENSE_FILES = COPYING # Fetching from git OPEN_LLDP_AUTORECONF = YES ifeq ($(BR2_INIT_SYSTEMD),y) OPEN_LLDP_DEPENDENCIES += systemd OPEN_LLDP_CONF_OPTS += --with-systemdsystemunitdir=/usr/lib/systemd/system endif $(eval $(autotools-package)) ================================================ FILE: package/open-plc-utils/0001-Remove-OWNER-and-GROUPS-parameters-to-install.patch ================================================ From 1fe7b756365254f7175558e7a89c1d89f95c5e2e Mon Sep 17 00:00:00 2001 From: Maxime Hadjinlian Date: Tue, 30 Sep 2014 13:46:59 +0200 Subject: [PATCH] Remove OWNER and GROUPS parameters to install The Install tries to change the owner and groups of the binary. In Buildroot we don't want that, since fakeroot will do its job when we finalize the rootfs. Signed-off-by: Maxime Hadjinlian [aduskett@gmail.com: Updated for 32408520fcebe785983a68e39ec83830a3005779] Signed-off-by: Adam Duskett --- docbook/Makefile | 4 ++-- ether/Makefile | 8 ++++---- key/Makefile | 8 ++++---- mdio/Makefile | 8 ++++---- mme/Makefile | 8 ++++---- nvm/Makefile | 8 ++++---- pib/Makefile | 8 ++++---- plc/Makefile | 8 ++++---- ram/Makefile | 8 ++++---- serial/Makefile | 8 ++++---- slac/Makefile | 8 ++++---- tools/Makefile | 2 +- 12 files changed, 43 insertions(+), 43 deletions(-) diff --git a/docbook/Makefile b/docbook/Makefile index d630822..039d62a 100755 --- a/docbook/Makefile +++ b/docbook/Makefile @@ -32,9 +32,9 @@ manuals: ${SHELL} ../docbook/manuals scripts: library: - install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${LIBRARY} + install -m ${DIR_PERM} -d ${LIBRARY} install: library - if [ -d ${LIBRARY} ]; then install -m ${WWW_PERM} -o ${OWNER} -g ${GROUP} *.html *.css *.png ${LIBRARY}; fi + if [ -d ${LIBRARY} ]; then install -m ${WWW_PERM} *.html *.css *.png ${LIBRARY}; fi uninstall: rm -f ${LIBRARY}/*.c.html ${LIBRARY}/*.h.html ${LIBRARY}/*.1.html setup: diff --git a/ether/Makefile b/ether/Makefile index 89174cb..8256d50 100755 --- a/ether/Makefile +++ b/ether/Makefile @@ -27,13 +27,13 @@ compact: compile if [ ! -z ${STRIP} ]; then ${STRIP} ${TOOLS}; fi if [ -x /usr/local/bin/upx ]; then upx --best ${TOOLS}; fi library: - install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${BIN} + install -m ${DIR_PERM} -d ${BIN} scripts: manuals: - test -d ${MAN} || install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${MAN} - install -m ${MAN_PERM} -o ${OWNER} -g ${GROUP} ${PAGES} ${MAN} + test -d ${MAN} || install -m ${DIR_PERM} -d ${MAN} + install -m ${MAN_PERM} ${PAGES} ${MAN} install: $(TOOLS) library - install -m ${SUID_PERM} -o ${OWNER} -g ${GROUP} ${TOOLS} ${BIN} + install -m ${SUID_PERM} ${TOOLS} ${BIN} uninstall: cd ${BIN}; rm -f ${TOOLS} cd ${MAN}; rm -f ${PAGES} diff --git a/key/Makefile b/key/Makefile index de62a49..78fa200 100755 --- a/key/Makefile +++ b/key/Makefile @@ -28,13 +28,13 @@ compact: compile if [ ! -z ${STRIP} ]; then ${STRIP} ${TOOLS}; fi if [ -x /usr/local/bin/upx ]; then upx --best ${TOOLS}; fi library: - install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${BIN} + install -m ${DIR_PERM} -d ${BIN} scripts: manuals: - test -d ${MAN} || install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${MAN} - install -m ${MAN_PERM} -o ${OWNER} -g ${GROUP} ${PAGES} ${MAN} + test -d ${MAN} || install -m ${DIR_PERM} -d ${MAN} + install -m ${MAN_PERM} ${PAGES} ${MAN} install: $(TOOLS) - install -m ${BIN_PERM} -o ${OWNER} -g ${GROUP} ${TOOLS} ${BIN} + install -m ${BIN_PERM} ${TOOLS} ${BIN} uninstall: cd ${BIN}; rm -f ${TOOLS} cd ${MAN}; rm -f ${PAGES} diff --git a/mdio/Makefile b/mdio/Makefile index 049b08e..3ff4c26 100755 --- a/mdio/Makefile +++ b/mdio/Makefile @@ -27,13 +27,13 @@ compact: compile if [ ! -z ${STRIP} ]; then ${STRIP} ${TOOLS}; fi if [ -x /usr/local/bin/upx ]; then upx --best ${TOOLS}; fi library: - install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${BIN} + install -m ${DIR_PERM} -d ${BIN} scripts: manuals: - test -d ${MAN} || install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${MAN} - install -m ${MAN_PERM} -o ${OWNER} -g ${GROUP} ${PAGES} ${MAN} + test -d ${MAN} || install -m ${DIR_PERM} -d ${MAN} + install -m ${MAN_PERM} ${PAGES} ${MAN} install: $(TOOLS) library - install -m ${BIN_PERM} -o ${OWNER} -g ${GROUP} ${TOOLS} ${BIN} + install -m ${BIN_PERM} ${TOOLS} ${BIN} uninstall: cd ${BIN}; rm -f int6k ${TOOLS} cd ${MAN}; rm -f int6k ${PAGES} diff --git a/mme/Makefile b/mme/Makefile index 0313aea..77a6b96 100755 --- a/mme/Makefile +++ b/mme/Makefile @@ -27,13 +27,13 @@ compact: compile if [ ! -z ${STRIP} ]; then ${STRIP} ${TOOLS}; fi if [ -x /usr/local/bin/upx ]; then upx --best ${TOOLS}; fi library: - install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${BIN} + install -m ${DIR_PERM} -d ${BIN} scripts: manuals: - test -d ${MAN} || install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${MAN} - install -m ${MAN_PERM} -o ${OWNER} -g ${GROUP} ${PAGES} ${MAN} + test -d ${MAN} || install -m ${DIR_PERM} -d ${MAN} + install -m ${MAN_PERM} ${PAGES} ${MAN} install: $(TOOLS) library - install -m ${BIN_PERM} -o ${OWNER} -g ${GROUP} ${TOOLS} ${BIN} + install -m ${BIN_PERM} ${TOOLS} ${BIN} uninstall: cd ${BIN}; rm -f ${TOOLS} cd ${MAN}; rm -f ${PAGES} diff --git a/nvm/Makefile b/nvm/Makefile index 9aa05ec..b468e70 100755 --- a/nvm/Makefile +++ b/nvm/Makefile @@ -28,12 +28,12 @@ compact: compile if [ -x /usr/local/bin/upx ]; then upx --best ${TOOLS}; fi scripts: manuals: - test -d ${MAN} || install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${MAN} - install -m ${MAN_PERM} -o ${OWNER} -g ${GROUP} ${PAGES} ${MAN} + test -d ${MAN} || install -m ${DIR_PERM} -d ${MAN} + install -m ${MAN_PERM} ${PAGES} ${MAN} library: - install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${BIN} + install -m ${DIR_PERM} -d ${BIN} install: $(TOOLS) library - install -m ${BIN_PERM} -o ${OWNER} -g ${GROUP} ${TOOLS} ${BIN} + install -m ${BIN_PERM} ${TOOLS} ${BIN} uninstall: cd ${BIN}; rm -f ${TOOLS} cd ${MAN}; rm -f ${PAGES} diff --git a/pib/Makefile b/pib/Makefile index 93f0c3b..23195b4 100644 --- a/pib/Makefile +++ b/pib/Makefile @@ -30,12 +30,12 @@ compact: compile if [ -x /usr/local/bin/upx ]; then upx --best ${TOOLS}; fi scripts: manuals: - test -d ${MAN} || install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${MAN} - install -m ${MAN_PERM} -o ${OWNER} -g ${GROUP} ${PAGES} ${MAN} + test -d ${MAN} || install -m ${DIR_PERM} -d ${MAN} + install -m ${MAN_PERM} ${PAGES} ${MAN} library: - install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${BIN} + install -m ${DIR_PERM} -d ${BIN} install: $(TOOLS) library - install -m ${BIN_PERM} -o ${OWNER} -g ${GROUP} ${TOOLS} ${BIN} + install -m ${BIN_PERM} ${TOOLS} ${BIN} uninstall: cd ${BIN}; rm -f ${TOOLS} cd ${MAN}; rm -f ${PAGES} diff --git a/plc/Makefile b/plc/Makefile index 43d6bd5..9fd4e0a 100644 --- a/plc/Makefile +++ b/plc/Makefile @@ -32,13 +32,13 @@ compact: compile if [ ! -z ${STRIP} ]; then ${STRIP} ${TOOLS}; fi if [ -x /usr/local/bin/upx ]; then upx --best ${TOOLS}; fi library: - install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${BIN} + install -m ${DIR_PERM} -d ${BIN} scripts: manuals: - test -d ${MAN} || install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${MAN} - install -m ${MAN_PERM} -o ${OWNER} -g ${GROUP} ${PAGES} ${MAN} + test -d ${MAN} || install -m ${DIR_PERM} -d ${MAN} + install -m ${MAN_PERM} ${PAGES} ${MAN} install: $(TOOLS) library - install -m ${SUID_PERM} -o ${OWNER} -g ${GROUP} ${TOOLS} ${BIN} + install -m ${SUID_PERM} ${TOOLS} ${BIN} uninstall: cd ${BIN}; rm -f ${TOOLS} cd ${MAN}; rm -f ${PAGES} diff --git a/ram/Makefile b/ram/Makefile index 60b9bb3..c34ddd0 100755 --- a/ram/Makefile +++ b/ram/Makefile @@ -27,13 +27,13 @@ compact: compile if [ ! -z ${STRIP} ]; then ${STRIP} ${TOOLS}; fi if [ -x /usr/local/bin/upx ]; then upx --best ${TOOLS}; fi library: - install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${BIN} + install -m ${DIR_PERM} -d ${BIN} scripts: manuals: - test -d ${MAN} || install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${MAN} - install -m ${MAN_PERM} -o ${OWNER} -g ${GROUP} ${PAGES} ${MAN} + test -d ${MAN} || install -m ${DIR_PERM} -d ${MAN} + install -m ${MAN_PERM} ${PAGES} ${MAN} install: $(TOOLS) library - install -m ${BIN_PERM} -o ${OWNER} -g ${GROUP} ${TOOLS} ${BIN} + install -m ${BIN_PERM} ${TOOLS} ${BIN} uninstall: cd ${BIN}; rm -f ${TOOLS} cd ${MAN}; rm -f ${PAGES} diff --git a/serial/Makefile b/serial/Makefile index c25f1a6..aebbac9 100755 --- a/serial/Makefile +++ b/serial/Makefile @@ -27,13 +27,13 @@ compact: compile if [ ! -z ${STRIP} ]; then ${STRIP} ${TOOLS}; fi if [ -x /usr/local/bin/upx ]; then upx --best ${TOOLS}; fi library: - install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${BIN} + install -m ${DIR_PERM} -d ${BIN} scripts: manuals: - test -d ${MAN} || install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${MAN} - install -m ${MAN_PERM} -o ${OWNER} -g ${GROUP} ${PAGES} ${MAN} + test -d ${MAN} || install -m ${DIR_PERM} -d ${MAN} + install -m ${MAN_PERM} ${PAGES} ${MAN} install: $(TOOLS) library - install -m ${BIN_PERM} -o ${OWNER} -g ${GROUP} ${TOOLS} ${BIN} + install -m ${BIN_PERM} ${TOOLS} ${BIN} uninstall: cd ${BIN}; rm -f int6k ${TOOLS} cd ${MAN}; rm -f int6k ${PAGES} diff --git a/slac/Makefile b/slac/Makefile index bd12db9..1f0b65d 100755 --- a/slac/Makefile +++ b/slac/Makefile @@ -27,13 +27,13 @@ compact: compile if [ ! -z ${STRIP} ]; then ${STRIP} ${TOOLS}; fi if [ -x /usr/local/bin/upx ]; then upx --best ${TOOLS}; fi library: - install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${BIN} + install -m ${DIR_PERM} -d ${BIN} scripts: manuals: - if [ ! -d ${MAN} ]; then install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${MAN}; fi - install -m ${MAN_PERM} -o ${OWNER} -g ${GROUP} ${PAGES} ${MAN} + if [ ! -d ${MAN} ]; then install -m ${DIR_PERM} -d ${MAN}; fi + install -m ${MAN_PERM} ${PAGES} ${MAN} install: compile library - install -m ${SUID_PERM} -o ${OWNER} -g ${GROUP} ${TOOLS} ${BIN} + install -m ${SUID_PERM} ${TOOLS} ${BIN} uninstall: cd ${BIN}; rm -f ${TOOLS} cd ${MAN}; rm -f ${PAGES} diff --git a/tools/Makefile b/tools/Makefile index 1d992cf..a74fd24 100755 --- a/tools/Makefile +++ b/tools/Makefile @@ -27,7 +27,7 @@ compact: compile if [ ! -z ${STRIP} ]; then ${STRIP} ${TOOLS}; fi if [ -x /usr/local/bin/upx ]; then upx --best ${TOOLS}; fi library: - install -m ${DIR_PERM} -o ${OWNER} -g ${GROUP} -d ${BIN} + install -m ${DIR_PERM} -d ${BIN} scripts: manuals: # install -m ${MAN_PERM} -o ${OWNER} -g ${GROUP} ${PAGES} ${MAN} -- 2.26.2 ================================================ FILE: package/open-plc-utils/0002-plc-plc.h-fix-build-with-gcc-10.patch ================================================ From 27222be0b8db59cae30a5fcca93255daea147bb6 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 23 Sep 2020 19:05:23 +0200 Subject: [PATCH] plc/plc.h: fix build with gcc 10 Drop plcproperty from plc/plc.h to avoid the following build failure with gcc 10 (which defaults to -fno-common): /home/buildroot/autobuild/run/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: rules.o:(.bss+0x0): multiple definition of `plcproperty'; pibruin.o:(.bss+0x0): first defined here Fixes: - http://autobuild.buildroot.org/results/6b3064b64dea3d4aaf219f787429c25918101483 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/qca/open-plc-utils/pull/141] --- plc/plc.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plc/plc.h b/plc/plc.h index 1fa32b53..208cf91a 100644 --- a/plc/plc.h +++ b/plc/plc.h @@ -496,9 +496,7 @@ struct __packed plcproperty uint8_t DATA_FORMAT; uint32_t DATA_LENGTH; uint8_t DATA_BUFFER [128]; -} - -plcproperty; +}; #ifndef __GNUC__ #pragma pack (pop) -- 2.28.0 ================================================ FILE: package/open-plc-utils/Config.in ================================================ config BR2_PACKAGE_OPEN_PLC_UTILS bool "open-plc-utils" depends on BR2_USE_MMU # fork() help Open version of the Qualcomm Atheros Powerline Toolkit https://github.com/qca/open-plc-utils ================================================ FILE: package/open-plc-utils/open-plc-utils.hash ================================================ # Locally computed sha256 b0156567a71c608cc1a0b18bbb1c5a97dd0ad9180097435f7e99119712bb299b open-plc-utils-32408520fcebe785983a68e39ec83830a3005779.tar.gz sha256 3137c632bbcec5e88b72dc13f4fe06ee184eea364fec8f7494bdfa57672ef921 LICENSE ================================================ FILE: package/open-plc-utils/open-plc-utils.mk ================================================ ################################################################################ # # open-plc-utils # ################################################################################ OPEN_PLC_UTILS_VERSION = 32408520fcebe785983a68e39ec83830a3005779 OPEN_PLC_UTILS_SITE = $(call github,qca,open-plc-utils,$(OPEN_PLC_UTILS_VERSION)) OPEN_PLC_UTILS_LICENSE = BSD-3-Clause OPEN_PLC_UTILS_LICENSE_FILES = LICENSE # We unfortunately can't use TARGET_CONFIGURE_OPTS, as it would # override the package CFLAGS, LDFLAGS and CXXFLAGS definitions. # # Yes, we're passing __UCLIBC__ in EXTRA_CFLAGS, as it fixes a build # issue for non-uClibc toolchains. It is the very crappy solution # suggested at https://github.com/qca/open-plc-utils/issues/36. OPEN_PLC_UTILS_MAKE_OPTS = \ EXTRA_CFLAGS="$(TARGET_CFLAGS) -D__UCLIBC__" \ EXTRA_CXXFLAGS="$(TARGET_CXXFLAGS)" \ EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" define OPEN_PLC_UTILS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CROSS=$(TARGET_CROSS) \ $(OPEN_PLC_UTILS_MAKE_OPTS) -C $(@D) endef define OPEN_PLC_UTILS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) ROOTFS=$(TARGET_DIR) \ BIN="$(TARGET_DIR)/usr/bin" -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/open2300/0001-fix-makefile.patch ================================================ From b0a1f12349bee43040a889c7e74873cfb253b9d8 Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Thu, 6 Feb 2014 21:42:50 +0100 Subject: [PATCH] fix makefile - allow to extend CFLAGS and CC_LDFLAGS - remove hard-coded include dirs. and lib. dirs. (which pointed to some location in the host system) Signed-off-by: Samuel Martin --- Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 92a2cc0..1b54175 100755 --- a/Makefile +++ b/Makefile @@ -37,9 +37,9 @@ MYSQLHISTLOGOBJ = mysqlhistlog2300.o rw2300.o linux2300.o win2300.o VERSION = 1.11 -CFLAGS = -Wall -O3 -DVERSION=\"$(VERSION)\" -CC_LDFLAGS = -lm -CC_WINFLAG = +override CFLAGS += -Wall -O3 -DVERSION=\"$(VERSION)\" +override CC_LDFLAGS += -lm +CC_WINFLAG = # For Windows - comment the two line above and un-comment the two lines below. #CC_LDFLAGS = -lm -lwsock32 #CC_WINFLAG = -mwindows @@ -80,7 +80,7 @@ xml2300 : $(XMLOBJ) $(CC) $(CFLAGS) -o $@ $(XMLOBJ) $(CC_LDFLAGS) $(CC_WINFLAG) mysql2300: - $(CC) $(CFLAGS) -o mysql2300 mysql2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient + $(CC) $(CFLAGS) -o mysql2300 mysql2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG) pgsql2300: $(PGSQLOBJ) $(CC) $(CFLAGS) -o $@ $(PGSQLOBJ) $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/pgsql -L/usr/lib/pgsql -lpq @@ -95,7 +95,7 @@ minmax2300: $(MINMAXOBJ) $(CC) $(CFLAGS) -o $@ $(MINMAXOBJ) $(CC_LDFLAGS) $(CC_WINFLAG) mysqlhistlog2300 : - $(CC) $(CFLAGS) -o mysqlhistlog2300 mysqlhistlog2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient + $(CC) $(CFLAGS) -o mysqlhistlog2300 mysqlhistlog2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG) install: -- 1.8.5.3 ================================================ FILE: package/open2300/Config.in ================================================ config BR2_PACKAGE_OPEN2300 bool "open2300" help open2300 reads (and writes) data from a Lacrosse WS2300/WS2305/WS2310/WS2315 Weather Station http://www.lavrsen.dk/foswiki/bin/view/Open2300/WebHome ================================================ FILE: package/open2300/open2300.hash ================================================ # Localy computed sha256 ffa7f8d35b16abfbf5e52285cb21f2a7fc6afb901abb40c0c80eef9d23d08aab open2300-f21982e0b1f8321561e5ad1668307fde97700e1b.tar.gz sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/open2300/open2300.mk ================================================ ################################################################################ # # open2300 # ################################################################################ OPEN2300_VERSION = f21982e0b1f8321561e5ad1668307fde97700e1b OPEN2300_SITE = $(call github,wezm,open2300,$(OPEN2300_VERSION)) OPEN2300_LICENSE = GPL-2.0 OPEN2300_LICENSE_FILES = COPYING OPEN2300_BINS = \ open2300 dump2300 log2300 fetch2300 wu2300 cw2300 history2300 \ histlog2300 bin2300 xml2300 light2300 interval2300 minmax2300 OPEN2300_CFLAGS = $(TARGET_CFLAGS) OPEN2300_LDFLAGS = $(TARGET_LDFLAGS) ifeq ($(BR2_PACKAGE_MYSQL),y) OPEN2300_DEPENDENCIES += mysql OPEN2300_BINS += mysql2300 mysqlhistlog2300 OPEN2300_CFLAGS += $(shell $(STAGING_DIR)/usr/bin/mysql_config --cflags) OPEN2300_LDFLAGS += $(shell $(STAGING_DIR)/usr/bin/mysql_config --libs) endif define OPEN2300_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" \ CFLAGS="$(OPEN2300_CFLAGS)" CC_LDFLAGS="$(OPEN2300_LDFLAGS)" \ -C $(@D) $(OPEN2300_BINS) endef define OPEN2300_INSTALL_TARGET_CMDS for prog in $(OPEN2300_BINS); do \ $(INSTALL) -D -m 0755 $(@D)/$$prog $(TARGET_DIR)/usr/bin/$$prog ; \ done endef $(eval $(generic-package)) ================================================ FILE: package/open62541/0001-CMakeLists.txt-project-only-contains-C-code.patch ================================================ From 61f9440dfeacad517965451773371aca0332d700 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 5 Jan 2021 23:08:53 +0100 Subject: [PATCH] CMakeLists.txt: project only contains C code Make sure CMake doesn't check for a C++ compiler when it's not needed, as open62541 is in C. Signed-off-by: Thomas Petazzoni --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 94ceb127..acc41ab2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0...3.12) -project(open62541) +project(open62541 C) # set(CMAKE_VERBOSE_MAKEFILE ON) if(${CMAKE_VERSION} VERSION_LESS 3.12) cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) -- 2.29.2 ================================================ FILE: package/open62541/0002-arch-posix-CMakeLists.txt-fix-build-without-threads.patch ================================================ From a312e82124fb8c9f139d5a40fa5a28123bb77a33 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 10 Jan 2021 14:25:56 +0100 Subject: [PATCH] arch/posix/CMakeLists.txt: fix build without threads Fix the following build failure without threads: [100%] Linking C shared library bin/libopen62541.so /home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabihf/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabihf/bin/ld: cannot find -lpthread collect2: error: ld returned 1 exit status CMakeFiles/open62541.dir/build.make:192: recipe for target 'bin/libopen62541.so.0.0.0' failed make[3]: *** [bin/libopen62541.so.0.0.0] Error 1 Fixes: - http://autobuild.buildroot.org/results/87ec3c987c991f790757276316d6caf81e635fa2 Signed-off-by: Fabrice Fontaine --- arch/posix/CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/arch/posix/CMakeLists.txt b/arch/posix/CMakeLists.txt index bb24757c..a53c9f2c 100644 --- a/arch/posix/CMakeLists.txt +++ b/arch/posix/CMakeLists.txt @@ -20,8 +20,6 @@ if (${_index} GREATER -1 OR "${UA_ARCHITECTURE}" STREQUAL "posix") ua_architecture_append_to_library(netdb ndblib socket) else() ua_architecture_append_to_library(m) - #TODO - Error on first make run if pthread is included conditional? - ua_architecture_append_to_library(pthread) if(UA_MULTITHREADING OR UA_BUILD_UNIT_TESTS) ua_architecture_append_to_library(pthread) endif() -- 2.29.2 ================================================ FILE: package/open62541/0003-fix-core-Explicit-cast-to-avoid-compiler-warning.patch ================================================ From 0c53fd776af9631c915c8722e1d68ce9a69fa3f6 Mon Sep 17 00:00:00 2001 From: Andreas Walter Date: Fri, 26 Feb 2021 11:49:25 +0100 Subject: [PATCH] fix(core): Explicit cast to avoid compiler warning (#4203) [Retrieved from: https://github.com/open62541/open62541/commit/0c53fd776af9631c915c8722e1d68ce9a69fa3f6] Signed-off-by: Fabrice Fontaine --- src/ua_types_encoding_binary.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ua_types_encoding_binary.c b/src/ua_types_encoding_binary.c index 0fe88eb98e0..abbd23735d3 100644 --- a/src/ua_types_encoding_binary.c +++ b/src/ua_types_encoding_binary.c @@ -319,7 +319,7 @@ static long double unpack754(uint64_t i, unsigned bits, unsigned expbits) { unsigned significandbits = bits - expbits - 1; long double result = (long double)(i&(uint64_t)((1LL<>significandbits) & (uint64_t)((1LL< Date: Mon, 2 Aug 2021 09:49:48 +0200 Subject: [PATCH] CMakeLists.txt: add UA_FORCE_WERROR Allow the user to disable -Werror to avoid the following build failures: /tmp/instance-0/output-1/build/open62541-v1.2.2/arch/network_tcp.c: In function 'connection_recv': /tmp/instance-0/output-1/build/open62541-v1.2.2/arch/network_tcp.c:96:5: error: conversion to 'unsigned int' from 'int' may change the sign of the result [-Werror=sign-conversion] 96 | UA_fd_set(connection->sockfd, &fdset); | ^~~~~~~~~ /tmp/instance-6/output-1/build/open62541-v1.2.2/plugins/ua_pubsub_udp.c: In function 'UA_PubSubChannelUDPMC_receive': /tmp/instance-6/output-1/build/open62541-v1.2.2/plugins/ua_pubsub_udp.c:477:21: error: conversion to '__suseconds_t' {aka 'int'} from 'UA_UInt32' {aka 'unsigned int'} may change the sign of the result [-Werror=sign-conversion] 477 | tmptv.tv_usec = (long int)(timeout % 1000000); | ^ Fixes: - http://autobuild.buildroot.org/results/911811de81d8abb2a31feb8f27af1592641c6fbc - http://autobuild.buildroot.org/results/f0187b3f2d62e955fddeef4e90f84ba4fd642bd2 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/open62541/open62541/pull/4572] --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bc839f27..963460d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -292,6 +292,8 @@ if(UA_FORCE_CPP) add_definitions(-D__STDC_CONSTANT_MACROS) # We need the UINT32_C define endif() +option(UA_FORCE_WERROR "Force compilation with -Werror" ON) + #General PubSub setup option(UA_ENABLE_PUBSUB "Enable the PubSub protocol" OFF) @@ -589,7 +591,9 @@ if(NOT UA_FORCE_CPP AND (CMAKE_COMPILER_IS_GNUCC OR "x${CMAKE_C_COMPILER_ID}" ST check_add_cc_flag("-Wall") # Warnings check_add_cc_flag("-Wextra") # More warnings check_add_cc_flag("-Wpedantic") # Standard compliance - check_add_cc_flag("-Werror") # All warnings are errors + if(UA_FORCE_WERROR) + check_add_cc_flag("-Werror") # All warnings are errors + endif() check_add_cc_flag("-Wno-static-in-inline") # Clang doesn't like the use of static inline methods inside static inline methods check_add_cc_flag("-Wno-overlength-strings") # May happen in the nodeset compiler when complex values are directly encoded -- 2.30.2 ================================================ FILE: package/open62541/Config.in ================================================ config BR2_PACKAGE_OPEN62541 bool "open62541" help open62541 is an open source and free implementation of OPC UA. http://open62541.org if BR2_PACKAGE_OPEN62541 choice prompt "namespace zero nodes" help Namespace zero contains the standard-defined nodes. The full namespace zero may not be required for all applications. config BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_DEFAULT bool "default" help Use the default namespace zero contents. config BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_MINIMAL bool "minimal" help A barebones namespace zero that is compatible with most clients. But this namespace 0 is so small that it does not pass the CTT (Conformance Testing Tools of the OPC Foundation). config BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_REDUCED bool "reduced" help Small namespace zero that passes the CTT. config BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_FULL bool "full" help Full namespace zero generated from the official XML definitions. endchoice config BR2_PACKAGE_OPEN62541_JSON_ENCODING bool "json encoding" config BR2_PACKAGE_OPEN62541_PUBSUB bool "publish/subscribe" help Enable the experimental OPC UA PubSub support. The option will include the PubSub UDP multicast plugin. if BR2_PACKAGE_OPEN62541_PUBSUB config BR2_PACKAGE_OPEN62541_PUBSUB_DELTAFRAMES bool "publish/subscribe deltaframes" help The PubSub messages differentiate between keyframe (all published values contained) and deltaframe (only changed values contained) messages. Deltaframe messages creation consumes some additional ressources. config BR2_PACKAGE_OPEN62541_PUBSUB_INFORMATIONMODEL bool "publish/subscribe information model" depends on BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_REDUCED || \ BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_FULL help Enable the information model representation of the PubSub configuration. endif # BR2_PACKAGE_OPEN62541_PUBSUB endif ================================================ FILE: package/open62541/open62541.hash ================================================ # Locally calculated sha256 c59c85b519a18350f5014b6e7b7545ee144ceeb15094e75b0b7ecec7dce43dd0 open62541-v1.2.2-br1.tar.gz sha256 fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85 LICENSE ================================================ FILE: package/open62541/open62541.mk ================================================ ################################################################################ # # open62541 # ################################################################################ OPEN62541_VERSION = v1.2.2 OPEN62541_SITE_METHOD = git OPEN62541_SITE = git://github.com/open62541/open62541.git OPEN62541_GIT_SUBMODULES = YES OPEN62541_INSTALL_STAGING = YES OPEN62541_LICENSE = MPL-2.0 OPEN62541_LICENSE_FILES = LICENSE # Force Release build to remove -Werror. # Don't use git describe to get the version number. # Disable hardening options to let Buildroot handle it. OPEN62541_CONF_OPTS = \ -DCMAKE_BUILD_TYPE=Release \ -DGIT_EXECUTABLE=NO \ -DOPEN62541_VERSION=$(OPEN62541_VERSION) \ -DUA_ENABLE_HARDENING=OFF \ -DUA_FORCE_WERROR=OFF ifeq ($(BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_MINIMAL),y) OPEN62541_CONF_OPTS += -DUA_NAMESPACE_ZERO=MINIMAL else ifeq ($(BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_REDUCED),y) OPEN62541_CONF_OPTS += -DUA_NAMESPACE_ZERO=REDUCED else ifeq ($(BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_FULL),y) OPEN62541_CONF_OPTS += -DUA_NAMESPACE_ZERO=FULL endif ifeq ($(BR2_PACKAGE_OPEN62541_JSON_ENCODING),y) OPEN62541_CONF_OPTS += -DUA_ENABLE_JSON_ENCODING=ON else OPEN62541_CONF_OPTS += -DUA_ENABLE_JSON_ENCODING=OFF endif ifeq ($(BR2_PACKAGE_OPEN62541_PUBSUB),y) OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB=ON else OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB=OFF endif ifeq ($(BR2_PACKAGE_OPEN62541_PUBSUB_DELTAFRAMES),y) OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_DELTAFRAMES=ON else OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_DELTAFRAMES=OFF endif ifeq ($(BR2_PACKAGE_OPEN62541_PUBSUB_INFORMATIONMODEL),y) OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_INFORMATIONMODEL=ON else OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_INFORMATIONMODEL=OFF endif # Remove unneeded files define OPEN62541_REMOVE_UNNEEDED_FILES $(RM) -r $(TARGET_DIR)/usr/share/open62541 endef OPEN62541_POST_INSTALL_TARGET_HOOKS += OPEN62541_REMOVE_UNNEEDED_FILES $(eval $(cmake-package)) ================================================ FILE: package/openal/Config.in ================================================ # openal can: # - use __atomic_*() intrinsics when available # - otherwise use __sync_*() intrinsics when available. It needs the # 4-byte ones on 32 bits architectures, and the 4-byte and 8-byte # one on 64 bits architecture # - it also provides its one implementation of atomic operations on # x86 and x86_64, but we dont take those into account since in most # situations __atomic_*() or __sync_*() will be available, and not # all x86 CPUs provide the necessary assembly instructions. config BR2_PACKAGE_OPENAL_ARCH_SUPPORTS bool default y if BR2_TOOLCHAIN_HAS_ATOMIC default y if BR2_TOOLCHAIN_HAS_SYNC_4 && !BR2_ARCH_IS_64 default y if BR2_TOOLCHAIN_HAS_SYNC_4 && BR2_TOOLCHAIN_HAS_SYNC_8 && BR2_ARCH_IS_64 config BR2_PACKAGE_OPENAL bool "openal" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 PR56019 depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS help OpenAL provides capabilities for playing audio in a virtual 3D environment. Distance attenuation, doppler shift, and directional sound emitters are among the features handled by the API. http://kcat.strangesoft.net/openal.html comment "openal needs a toolchain w/ NPTL, C++, gcc >= 4.9" depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL \ || !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/openal/openal.hash ================================================ # Locally calculated sha256 8ac17e4e3b32c1af3d5508acfffb838640669b4274606b7892aa796ca9d7467f openal-1.21.1.tar.gz sha256 d808ce217e5b611854da622b57ec29fe545584c48bc5352fae72a4b6e5074a15 COPYING ================================================ FILE: package/openal/openal.mk ================================================ ################################################################################ # # openal # ################################################################################ OPENAL_VERSION = 1.21.1 OPENAL_SITE = $(call github,kcat,openal-soft,$(OPENAL_VERSION)) OPENAL_LICENSE = LGPL-2.0+ OPENAL_LICENSE_FILES = COPYING OPENAL_INSTALL_STAGING = YES # We don't need examples, tests and utilities, Distros don't ship them either OPENAL_CONF_OPTS += -DALSOFT_UTILS=OFF -DALSOFT_EXAMPLES=OFF -DALSOFT_TESTS=OFF ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_4_8),y) OPENAL_CONF_OPTS += -DEXTRA_LIBS=atomic endif ifeq ($(BR2_PACKAGE_ALSA_LIB),y) OPENAL_DEPENDENCIES += alsa-lib OPENAL_CONF_OPTS += -DALSOFT_REQUIRE_ALSA=ON else OPENAL_CONF_OPTS += -DALSOFT_REQUIRE_ALSA=OFF endif ifeq ($(BR2_PACKAGE_JACK2),y) OPENAL_DEPENDENCIES += jack2 OPENAL_CONF_OPTS += -DALSOFT_REQUIRE_JACK=ON else OPENAL_CONF_OPTS += -DALSOFT_REQUIRE_JACK=OFF endif ifeq ($(BR2_PACKAGE_PORTAUDIO),y) OPENAL_DEPENDENCIES += portaudio OPENAL_CONF_OPTS += -DALSOFT_REQUIRE_PORTAUDIO=ON else OPENAL_CONF_OPTS += -DALSOFT_REQUIRE_PORTAUDIO=OFF endif ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) OPENAL_DEPENDENCIES += pulseaudio OPENAL_CONF_OPTS += -DALSOFT_REQUIRE_PULSEAUDIO=ON else OPENAL_CONF_OPTS += -DALSOFT_REQUIRE_PULSEAUDIO=OFF endif ifeq ($(BR2_STATIC_LIBS),y) OPENAL_CONF_OPTS += -DLIBTYPE=STATIC endif $(eval $(cmake-package)) ================================================ FILE: package/openblas/0001-fix-gfortran-detection.patch ================================================ From ece3ce581e3ec530eaccfe7f284c52e115ec7aa9 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Wed, 10 Feb 2021 14:22:59 +0100 Subject: [PATCH] Strip parenthesized (pkgversion) data from GCC version string to avoid misinterpretation See https://github.com/xianyi/OpenBLAS/issues/3099 for details. Upstream-status: backport [for import into Buildroot] Signed-off-by: Thomas De Schampheleire --- f_check | 1 + 1 file changed, 1 insertion(+) diff --git a/f_check b/f_check index e9aca4ff9..ffe9c6b46 100644 --- a/f_check +++ b/f_check @@ -75,6 +75,7 @@ if ($compiler eq "") { } elsif ($data =~ /GNU/ || $data =~ /GCC/ ) { + $data =~ s/\(+.*?\)+//g; $data =~ /(\d+)\.(\d+).(\d+)/; $major = $1; $minor = $2; ================================================ FILE: package/openblas/0002-Makefile-fix-support-for-passing-FFLAGS-on-the-make-.patch ================================================ From 4d3829fa52240c2b7e48770ab19584db33ba7863 Mon Sep 17 00:00:00 2001 From: Thomas De Schampheleire Date: Fri, 5 Mar 2021 11:17:59 +0100 Subject: [PATCH] Makefile: fix support for passing FFLAGS on the make command line When openblas is built while passing FFLAGS on the make command line, the compilation of lapack objects will not contain the flags specified in Makefile but _only_ those passed in FFLAGS. This can lead to build failure, e.g. because -fPIC is not passed to the compilation of most lapack objects, but is given to the link command: .../buildroot/output/host/bin/x86_64-linux-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -O2 -DMAX_STACK_ALLOC=2048 -Wall -m64 -DF_INTERFACE_GFORT -fPIC -DNO_WARMUP -DMAX_CPU_NUMBER=4 -DMAX_PARALLEL_NUMBER=1 -DVERSION=\"0.3.9\" -DASMNAME= -DASMFNAME=_ -DNAME=_ -DCNAME= -DCHAR_NAME=\"_\" -DCHAR_CNAME=\"\" -DNO_AFFINITY -I.. -shared -o ../libopenblas_nehalem-r0.3.9.so \ -Wl,--whole-archive ../libopenblas_nehalem-r0.3.9.a -Wl,--no-whole-archive \ -Wl,-soname,libopenblas.so.0 -lm -lgfortran -lm -lgfortran .../buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-musl/9.3.0/../../../../x86_64-buildroot-linux-musl/bin/ld: ../libopenblas_nehalem-r0.3.9.a(sbdsvdx.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC In the initial support for this principle, added in commit d0e731e8b825e7a554f245aa8f1118dcec9e2728, the flags specified in the makefile were appended to the flags specified on the command-line. Fix this situation by using 'override' for 'FFLAGS' in lapack-netlib/make.inc. The flags passed on the command-line are already part of the LAPACK_FFLAGS variable, so no '+=' is needed here. Signed-off-by: Thomas De Schampheleire --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index fc5fe3f5..8ae1ff47 100644 --- a/Makefile +++ b/Makefile @@ -248,7 +248,7 @@ prof_lapack : lapack_prebuild lapack_prebuild : ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN))) -@echo "FC = $(FC)" > $(NETLIB_LAPACK_DIR)/make.inc - -@echo "FFLAGS = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc + -@echo "override FFLAGS = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc -@echo "POPTS = $(LAPACK_FPFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc -@echo "FFLAGS_NOOPT = -O0 $(LAPACK_NOOPT)" >> $(NETLIB_LAPACK_DIR)/make.inc -@echo "PNOOPT = $(LAPACK_FPFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc -- 2.26.2 ================================================ FILE: package/openblas/0003-Makefile-also-consider-Os-when-determining-LAPACK_NO.patch ================================================ From ced08de1ad74811bc23d74121751537bfd8e9556 Mon Sep 17 00:00:00 2001 From: Thomas De Schampheleire Date: Fri, 5 Mar 2021 11:15:52 +0100 Subject: [PATCH] Makefile: also consider -O, -Og and -Os when stripping flags gcc also supports -O, -Og and -Os as optimization flags. They may be given on the make command-line by users. For the calculation of LAPACK_NOOPT, all such flags should be considered. Signed-off-by: Thomas De Schampheleire --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a22e16ba..fc5fe3f5 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ export NOFORTRAN export NO_LAPACK endif -LAPACK_NOOPT := $(filter-out -O0 -O1 -O2 -O3 -Ofast,$(LAPACK_FFLAGS)) +LAPACK_NOOPT := $(filter-out -O0 -O1 -O2 -O3 -Ofast -O -Og -Os,$(LAPACK_FFLAGS)) SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench cpp_thread_test -- 2.26.2 ================================================ FILE: package/openblas/0004-Makefile.system-don-t-specify-optimization-level-bui.patch ================================================ From 6d1c1350977d74fb2239f765bd92a5763cd3bb73 Mon Sep 17 00:00:00 2001 From: Thomas De Schampheleire Date: Fri, 5 Mar 2021 14:09:23 +0100 Subject: [PATCH] Makefile.system: don't specify optimization level [buildroot-specific] Buildroot will pass an optimization level, but it is ignored because the openblas makefiles _append_ to the flags passed on the command-line. The CFLAGS/FFLAGS would e.g. contain '-Os -O2' in which -O2 survives. Remove the optimization level specified in openblas itself. Signed-off-by: Thomas De Schampheleire --- Makefile.system | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.system b/Makefile.system index 1e30d05a..04b0be16 100644 --- a/Makefile.system +++ b/Makefile.system @@ -1216,11 +1216,11 @@ FCOMMON_OPT += -g endif ifndef COMMON_OPT -COMMON_OPT = -O2 +COMMON_OPT = endif ifndef FCOMMON_OPT -FCOMMON_OPT = -O2 -frecursive +FCOMMON_OPT = -frecursive endif override CFLAGS += $(COMMON_OPT) $(CCOMMON_OPT) -I$(TOPDIR) -- 2.26.2 ================================================ FILE: package/openblas/Config.in ================================================ 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 || BR2_x86_nocona default "BANIAS" if BR2_x86_pentium_m default "CORE2" if BR2_x86_core2 default "NEHALEM" if BR2_x86_corei7 || BR2_x86_silvermont || BR2_x86_westmere 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 "BOBCAT" if BR2_x86_jaguar default "STEAMROLLER" if BR2_x86_steamroller default "VIAC3" if BR2_x86_c3 || BR2_x86_c32 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_p5600 && BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS default "SICORTEX" if BR2_MIPS_CPU_MIPS64 # I6400 is built with MSA support which is only available in Codescape toolchains default "I6400" if BR2_mips_i6400 && BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS # OpenBLAS assumes SPARC=Sparc v9 default "SPARC" if BR2_sparc_v9 # 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 config BR2_PACKAGE_OPENBLAS_USE_THREAD bool "use multithreading" default y depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS help Tell OpenBLAS to use multithreading, by passing USE_THREAD=1. config BR2_PACKAGE_OPENBLAS_USE_LOCKING bool "use locking" default y depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_PACKAGE_OPENBLAS_USE_THREAD help Tell OpenBLAS to use locking, by passing USE_LOCKING=1. Locking is implicitly enabled when USE_THREAD=1. However, if USE_THREAD=0 (i.e. OpenBLAS itself will run in single-threaded mode) but an application makes OpenBLAS function calls from multiple threads, then locking is mandatory for correct operation. endif ================================================ FILE: package/openblas/openblas.hash ================================================ # Locally calculated sha256 17d4677264dfbc4433e97076220adc79b050e4f8a083ea3f853a53af253bc380 openblas-0.3.9.tar.gz sha256 190b5a9c8d9723fe958ad33916bd7346d96fab3c5ea90832bb02d854f620fcff LICENSE ================================================ FILE: package/openblas/openblas.mk ================================================ ################################################################################ # # openblas # ################################################################################ OPENBLAS_VERSION = 0.3.9 OPENBLAS_SITE = $(call github,xianyi,OpenBLAS,v$(OPENBLAS_VERSION)) OPENBLAS_LICENSE = BSD-3-Clause 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_PACKAGE_OPENBLAS_USE_THREAD),y) OPENBLAS_MAKE_OPTS += USE_THREAD=1 else OPENBLAS_MAKE_OPTS += USE_THREAD=0 endif ifeq ($(BR2_PACKAGE_OPENBLAS_USE_LOCKING),y) OPENBLAS_MAKE_OPTS += USE_LOCKING=1 else # not passing USE_LOCKING=0 as this could be confusing: its effect is implicit # in case of USE_THREAD=1. endif # We don't know if OpenMP is available or not, so disable OPENBLAS_MAKE_OPTS += USE_OPENMP=0 # Static-only/Shared-only toggle # Note: static library is always generated so that applications can link # statically for size reduction, even if BR2_STATIC_LIBS is not set. ifeq ($(BR2_STATIC_LIBS),y) OPENBLAS_MAKE_OPTS += NO_SHARED=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)) ================================================ FILE: package/openbox/Config.in ================================================ config BR2_PACKAGE_OPENBOX bool "openbox" depends on BR2_PACKAGE_XORG7 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # pango -> harfbuzz depends on BR2_INSTALL_LIBSTDCPP # pango -> freetype select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_PANGO select BR2_PACKAGE_XLIB_LIBX11 # libxft and libxrender are needed to get xft support in pango select BR2_PACKAGE_XLIB_LIBXFT select BR2_PACKAGE_XLIB_LIBXRENDER help Openbox is a highly configurable, next generation window manager with extensive standards support. http://openbox.org comment "openbox needs a toolchain w/ C++, threads, wchar, gcc >= 4.8" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \ !BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_XORG7 ================================================ FILE: package/openbox/openbox.hash ================================================ # Locally computed: sha256 abe75855cc5616554ffd47134ad15291fe37ebbebf1a80b69cbde9d670f0e26d openbox-3.6.1.tar.xz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/openbox/openbox.mk ================================================ ################################################################################ # # openbox # ################################################################################ OPENBOX_VERSION = 3.6.1 OPENBOX_SOURCE = openbox-$(OPENBOX_VERSION).tar.xz OPENBOX_SITE = http://openbox.org/dist/openbox OPENBOX_LICENSE = GPL-2.0+ OPENBOX_LICENSE_FILES = COPYING OPENBOX_CONF_OPTS = \ --x-includes=$(STAGING_DIR)/usr/include/X11 \ --x-libraries=$(STAGING_DIR)/usr/lib OPENBOX_DEPENDENCIES = xlib_libX11 libxml2 libglib2 pango host-pkgconf ifeq ($(BR2_PACKAGE_IMLIB2_X),y) OPENBOX_CONF_OPTS += --enable-imlib2 OPENBOX_DEPENDENCIES += imlib2 else OPENBOX_CONF_OPTS += --disable-imlib2 endif ifeq ($(BR2_PACKAGE_STARTUP_NOTIFICATION),y) OPENBOX_CONF_OPTS += --enable-startup-notification OPENBOX_DEPENDENCIES += startup-notification else OPENBOX_CONF_OPTS += --disable-startup-notification endif ifeq ($(BR2_PACKAGE_XLIB_LIBSM),y) OPENBOX_CONF_OPTS += --enable-session-management OPENBOX_DEPENDENCIES += xlib_libSM else OPENBOX_CONF_OPTS += --disable-session-management endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) OPENBOX_CONF_OPTS += --enable-xinerama OPENBOX_DEPENDENCIES += xlib_libXinerama else OPENBOX_CONF_OPTS += --disable-xinerama endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) OPENBOX_CONF_OPTS += --enable-xrandr OPENBOX_DEPENDENCIES += xlib_libXrandr else OPENBOX_CONF_OPTS += --disable-xrandr endif ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) OPENBOX_DEPENDENCIES += xlib_libXcursor OPENBOX_CONF_OPTS += --enable-xcursor else OPENBOX_CONF_OPTS += --disable-xcursor endif $(eval $(autotools-package)) ================================================ FILE: package/opencore-amr/Config.in ================================================ config BR2_PACKAGE_OPENCORE_AMR bool "opencore-amr" depends on BR2_INSTALL_LIBSTDCPP help Library of OpenCORE Framework implementation of Adaptive Multi Rate Narrowband and Wideband (AMR-NB and AMR-WB) speech codec. http://opencore-amr.sourceforge.net/ comment "opencore-amr needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/opencore-amr/opencore-amr.hash ================================================ # From https://sourceforge.net/projects/opencore-amr/files/opencore-amr/ md5 e0798587b91411cc092aa73091a97dfc opencore-amr-0.1.5.tar.gz sha1 bef4d1e3a8a155b47569b6691a223843b33e279e opencore-amr-0.1.5.tar.gz # Locally computed: sha256 2c006cb9d5f651bfb5e60156dbff6af3c9d35c7bbcc9015308c0aff1e14cd341 opencore-amr-0.1.5.tar.gz sha256 8b3f1762349248d444ab9acbafe73941254e36e1064954da56bb9ddbd5873ddb LICENSE ================================================ FILE: package/opencore-amr/opencore-amr.mk ================================================ ################################################################################ # # opencore-amr # ################################################################################ OPENCORE_AMR_VERSION = 0.1.5 OPENCORE_AMR_SITE = http://downloads.sourceforge.net/project/opencore-amr/opencore-amr OPENCORE_AMR_INSTALL_STAGING = YES OPENCORE_AMR_LICENSE = Apache-2.0 OPENCORE_AMR_LICENSE_FILES = LICENSE $(eval $(autotools-package)) ================================================ FILE: package/opencv3/0001-Use-the-one-argument-version-of-SetTotalBytesLimit.patch ================================================ From 9cfa84313c5833d7295fcf57be93d5d2aaadfd88 Mon Sep 17 00:00:00 2001 From: Vincent Rabaud Date: Sat, 10 Jul 2021 00:21:52 +0200 Subject: [PATCH] Use the one argument version of SetTotalBytesLimit. The two argument versions has been deprecated, cf https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.io.coded_stream [Retrieved from: https://github.com/opencv/opencv/commit/9cfa84313c5833d7295fcf57be93d5d2aaadfd88] Signed-off-by: Fabrice Fontaine --- modules/dnn/src/caffe/caffe_io.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp index 2fc4d84f4604..ebecf95eea3a 100644 --- a/modules/dnn/src/caffe/caffe_io.cpp +++ b/modules/dnn/src/caffe/caffe_io.cpp @@ -92,6 +92,7 @@ #ifdef HAVE_PROTOBUF #include #include +#include #include #include @@ -1111,7 +1112,11 @@ static const int kProtoReadBytesLimit = INT_MAX; // Max size of 2 GB minus 1 by bool ReadProtoFromBinary(ZeroCopyInputStream* input, Message *proto) { CodedInputStream coded_input(input); +#if GOOGLE_PROTOBUF_VERSION >= 3006000 + coded_input.SetTotalBytesLimit(kProtoReadBytesLimit); +#else coded_input.SetTotalBytesLimit(kProtoReadBytesLimit, 536870912); +#endif return proto->ParseFromCodedStream(&coded_input); } ================================================ FILE: package/opencv3/Config.in ================================================ menuconfig BR2_PACKAGE_OPENCV3 bool "opencv3" depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on !BR2_STATIC_LIBS # include dlfcn.h select BR2_PACKAGE_ZLIB help OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision. Note that the opencv_core module and the opencv_hal library are always built and installed, not matter which other modules are enabled below. http://opencv.org/ if BR2_PACKAGE_OPENCV3 comment "OpenCV modules" config BR2_PACKAGE_OPENCV3_LIB_CALIB3D bool "calib3d" select BR2_PACKAGE_OPENCV3_LIB_FEATURES2D select BR2_PACKAGE_OPENCV3_LIB_IMGPROC help Include opencv_calib3d (camera calibration and 3d reconstruction) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_FEATURES2D bool "features2d" select BR2_PACKAGE_OPENCV3_LIB_FLANN select BR2_PACKAGE_OPENCV3_LIB_IMGPROC select BR2_PACKAGE_OPENCV3_LIB_ML help Include opencv_features2d (2d features framework) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_FLANN bool "flann" # opencv_core dependency is already enabled help Include opencv_flann (clustering and search in multi-dimensional spaces) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_HIGHGUI bool "highgui" select BR2_PACKAGE_OPENCV3_LIB_IMGCODECS select BR2_PACKAGE_OPENCV3_LIB_IMGPROC select BR2_PACKAGE_OPENCV3_LIB_VIDEOIO help Include opencv_highgui (high-level gui and media i/o) module into the OpenCV build. if BR2_PACKAGE_OPENCV3_LIB_HIGHGUI choice prompt "gui toolkit" help GUI toolkit to be used by the opencv_highgui module. config BR2_PACKAGE_OPENCV3_GUI_NONE bool "none" config BR2_PACKAGE_OPENCV3_WITH_GTK bool "gtk2" depends on BR2_PACKAGE_LIBGTK2 comment "gtk2 support needs libgtk2" depends on BR2_USE_MMU # libgtk2 -> glib2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_PACKAGE_LIBGTK2 config BR2_PACKAGE_OPENCV3_WITH_GTK3 bool "gtk3" depends on BR2_PACKAGE_LIBGTK3 comment "gtk3 support needs libgtk3" depends on BR2_USE_MMU # libgtk3 -> glib2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_PACKAGE_LIBGTK3 config BR2_PACKAGE_OPENCV3_WITH_QT5 bool "qt5" depends on BR2_PACKAGE_QT5 select BR2_PACKAGE_QT5BASE_CONCURRENT select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_WIDGETS help Use Qt5 with base, concurrent, test, gui and widgets components, as GUI toolkit. comment "qt5 support needs qt5" depends on !BR2_PACKAGE_QT5 endchoice config BR2_PACKAGE_OPENCV3_WITH_OPENGL bool "opengl support" # OpenGL support done using Qt5OpenGL, so depends on WITH_QT5 depends on BR2_PACKAGE_OPENCV3_WITH_QT5 # OpenGL support requires Qt5OpenGL with GL support, not GLES depends on BR2_PACKAGE_QT5_GL_AVAILABLE depends on BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_QT5BASE_OPENGL help Enable OpenGL for UI. comment "opengl support needs an OpenGL provider" depends on BR2_PACKAGE_OPENCV3_WITH_QT5 depends on !BR2_PACKAGE_QT5_GL_AVAILABLE || \ !BR2_PACKAGE_HAS_LIBGL endif # BR2_PACKAGE_OPENCV3_LIB_HIGHGUI config BR2_PACKAGE_OPENCV3_LIB_IMGCODECS bool "imgcodecs" select BR2_PACKAGE_OPENCV3_LIB_IMGPROC help Include opencv_imgcodecs (image codecs) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_IMGPROC bool "imgproc" # opencv_core dependency is already enabled help Include opencv_imgproc (image processing) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_ML bool "ml" # opencv_core dependency is already enabled help Include opencv_ml (machine learning) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_OBJDETECT bool "objdetect" # opencv_core dependency is already enabled select BR2_PACKAGE_OPENCV3_LIB_CALIB3D select BR2_PACKAGE_OPENCV3_LIB_IMGPROC select BR2_PACKAGE_OPENCV3_LIB_ML help Include opencv_objdetect (object detection) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_PHOTO bool "photo" select BR2_PACKAGE_OPENCV3_LIB_IMGPROC help Include opencv_photo (computational photography) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_PYTHON bool "python" depends on BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy select BR2_PACKAGE_PYTHON_NUMPY help Include opencv_python module into the OpenCV build. No python example is installed. comment "python support needs glibc or musl" depends on BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) config BR2_PACKAGE_OPENCV3_LIB_SHAPE bool "shape" # opencv_core dependency is already enabled select BR2_PACKAGE_OPENCV3_LIB_IMGPROC select BR2_PACKAGE_OPENCV3_LIB_VIDEO help Include opencv_shape (shape descriptors and matchers) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_STITCHING bool "stitching" select BR2_PACKAGE_OPENCV3_LIB_CALIB3D select BR2_PACKAGE_OPENCV3_LIB_FEATURES2D select BR2_PACKAGE_OPENCV3_LIB_IMGPROC select BR2_PACKAGE_OPENCV3_LIB_OBJDETECT help Include opencv_stitching (images stitching) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_SUPERRES bool "superres" select BR2_PACKAGE_OPENCV3_LIB_IMGPROC select BR2_PACKAGE_OPENCV3_LIB_VIDEO help Include opencv_superres (super resolution) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_TS bool "ts" # opencv_core dependency is already enabled select BR2_PACKAGE_OPENCV3_LIB_HIGHGUI select BR2_PACKAGE_OPENCV3_LIB_IMGCODECS select BR2_PACKAGE_OPENCV3_LIB_IMGPROC select BR2_PACKAGE_OPENCV3_LIB_VIDEOIO help Include opencv_ts (test) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_VIDEOIO bool "videoio" select BR2_PACKAGE_OPENCV3_LIB_IMGCODECS select BR2_PACKAGE_OPENCV3_LIB_IMGPROC help Include opencv_videoio (media i/o) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_VIDEO bool "video" select BR2_PACKAGE_OPENCV3_LIB_IMGPROC help Include opencv_video (video analysis) module into the OpenCV build. config BR2_PACKAGE_OPENCV3_LIB_VIDEOSTAB bool "videostab" select BR2_PACKAGE_OPENCV3_LIB_CALIB3D select BR2_PACKAGE_OPENCV3_LIB_FEATURES2D select BR2_PACKAGE_OPENCV3_LIB_IMGPROC select BR2_PACKAGE_OPENCV3_LIB_PHOTO select BR2_PACKAGE_OPENCV3_LIB_VIDEO help Include opencv_videostab (video stabilization) module into the OpenCV build. comment "Test sets" config BR2_PACKAGE_OPENCV3_BUILD_TESTS bool "build tests" config BR2_PACKAGE_OPENCV3_BUILD_PERF_TESTS bool "build performance tests" 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 help Use ffmpeg from the target system. config BR2_PACKAGE_OPENCV3_WITH_GSTREAMER1 bool "gstreamer-1.x" depends on BR2_USE_MMU # gstreamer1 -> libglib2 depends on BR2_USE_WCHAR # gstreamer1 -> libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # gstreamer1 -> libglib2 select BR2_PACKAGE_GSTREAMER1 select BR2_PACKAGE_GST1_PLUGINS_BASE select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP help Enable gstreamer support. comment "gstreamer support needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_OPENCV3_WITH_JASPER bool "jpeg2000 support" select BR2_PACKAGE_JASPER help Enable jpeg2000 support. Note: this does not use the libjasper bundled with opencv, but uses the libjasper package installed system-wide by Buildroot. config BR2_PACKAGE_OPENCV3_WITH_JPEG bool "jpeg support" select BR2_PACKAGE_JPEG help Use shared libjpeg from the target system. config BR2_PACKAGE_OPENCV3_WITH_PNG bool "png support" select BR2_PACKAGE_LIBPNG help Use shared libpng from the target system. config BR2_PACKAGE_OPENCV3_WITH_PROTOBUF bool "protobuf support" depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # protobuf depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # protobuf select BR2_PACKAGE_PROTOBUF help Use shared protobuf from the target system. comment "protobuf support needs a toolchain w/ gcc >= 4.8" depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 config BR2_PACKAGE_OPENCV3_WITH_TIFF bool "tiff support" select BR2_PACKAGE_TIFF help Use shared libtiff from the target system. config BR2_PACKAGE_OPENCV3_WITH_V4L bool "v4l support" help Enable Video 4 Linux support. If the package libv4l is enabled, its support is automatically enabled. config BR2_PACKAGE_OPENCV3_WITH_WEBP bool "webp support" select BR2_PACKAGE_WEBP help Enable WebP support. Use shared libwebp from the target system. comment "Install options" config BR2_PACKAGE_OPENCV3_INSTALL_DATA bool "install extra data" help Install various data that is used by cv libraries and/or demo applications, specifically for haarcascades and lbpcascades features. For further information: see OpenCV documentation. endif # BR2_PACKAGE_OPENCV3 comment "opencv3 needs a toolchain w/ C++, NPTL, wchar, dynamic library" depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ BR2_STATIC_LIBS ================================================ FILE: package/opencv3/opencv3.hash ================================================ # Locally calculated sha256 b1e8470b18e9e793bf70b4ae051bbc9bf81fa45f8cbfee1e6c88858c90be8ff7 opencv3-3.4.15.tar.gz sha256 9076d3d934839a2f8e7bfe549abda6faea4751f1edd6e9460ff703559890ad5f LICENSE ================================================ FILE: package/opencv3/opencv3.mk ================================================ ################################################################################ # # opencv3 # ################################################################################ OPENCV3_VERSION = 3.4.15 OPENCV3_SITE = $(call github,opencv,opencv,$(OPENCV3_VERSION)) OPENCV3_INSTALL_STAGING = YES OPENCV3_LICENSE = BSD-3-Clause OPENCV3_LICENSE_FILES = LICENSE OPENCV3_CPE_ID_VENDOR = opencv OPENCV3_CPE_ID_PRODUCT = opencv OPENCV3_SUPPORTS_IN_SOURCE_BUILD = NO OPENCV3_CXXFLAGS = $(TARGET_CXXFLAGS) # Uses __atomic_fetch_add_4 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) OPENCV3_CXXFLAGS += -latomic endif # Fix c++11 build with missing std::exception_ptr ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_64735),y) OPENCV3_CXXFLAGS += -DCV__EXCEPTION_PTR=0 endif ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) OPENCV3_CXXFLAGS += -O0 endif # OpenCV component options OPENCV3_CONF_OPTS += \ -DCMAKE_CXX_FLAGS="$(OPENCV3_CXXFLAGS)" \ -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 \ -DDOWNLOAD_EXTERNAL_TEST_DATA=OFF \ -DOPENCV_ENABLE_PKG_CONFIG=ON ifeq ($(BR2_PACKAGE_OPENCV3_BUILD_TESTS)$(BR2_PACKAGE_OPENCV3_BUILD_PERF_TESTS),) OPENCV3_CONF_OPTS += -DINSTALL_TEST=OFF else OPENCV3_CONF_OPTS += -DINSTALL_TEST=ON endif # OpenCV build options OPENCV3_CONF_OPTS += \ -DBUILD_WITH_STATIC_CRT=OFF \ -DENABLE_CCACHE=OFF \ -DENABLE_COVERAGE=OFF \ -DENABLE_FAST_MATH=ON \ -DENABLE_IMPL_COLLECTION=OFF \ -DENABLE_NOISY_WARNINGS=OFF \ -DENABLE_OMIT_FRAME_POINTER=ON \ -DENABLE_PRECOMPILED_HEADERS=OFF \ -DENABLE_PROFILING=OFF \ -DOPENCV_WARNINGS_ARE_ERRORS=OFF # OpenCV link options OPENCV3_CONF_OPTS += \ -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \ -DCMAKE_SKIP_RPATH=OFF \ -DCMAKE_USE_RELATIVE_PATHS=OFF # OpenCV packaging options: OPENCV3_CONF_OPTS += \ -DBUILD_PACKAGE=OFF \ -DENABLE_SOLUTION_FOLDERS=OFF \ -DINSTALL_CREATE_DISTRIB=OFF # OpenCV module selection # * Modules on: # - core: if not set, opencv does not build anything # - hal: core's dependency # * Modules off: # - android*: android stuff # - apps: programs for training classifiers # - java: java bindings # - viz: missing VTK dependency # - world: all-in-one module # # * Contrib modules from [1] are disabled: # - opencv_contrib package is not available in Buildroot; # - OPENCV3_EXTRA_MODULES_PATH is not set. # # [1] https://github.com/Itseez/opencv_contrib OPENCV3_CONF_OPTS += \ -DBUILD_opencv_androidcamera=OFF \ -DBUILD_opencv_apps=OFF \ -DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV3_LIB_CALIB3D),ON,OFF) \ -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_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) \ -DBUILD_opencv_java=OFF \ -DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV3_LIB_ML),ON,OFF) \ -DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV3_LIB_OBJDETECT),ON,OFF) \ -DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV3_LIB_PHOTO),ON,OFF) \ -DBUILD_opencv_shape=$(if $(BR2_PACKAGE_OPENCV3_LIB_SHAPE),ON,OFF) \ -DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV3_LIB_STITCHING),ON,OFF) \ -DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV3_LIB_SUPERRES),ON,OFF) \ -DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV3_LIB_TS),ON,OFF) \ -DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV3_LIB_VIDEO),ON,OFF) \ -DBUILD_opencv_videoio=$(if $(BR2_PACKAGE_OPENCV3_LIB_VIDEOIO),ON,OFF) \ -DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV3_LIB_VIDEOSTAB),ON,OFF) \ -DBUILD_opencv_viz=OFF \ -DBUILD_opencv_world=OFF # Hardware support options. # # * PowerPC and VFPv3 support are turned off since their only effects # are altering CFLAGS, adding '-mcpu=G3 -mtune=G5' or '-mfpu=vfpv3' # to them, which is already handled by Buildroot. # * NEON logic is needed as it is not only used to add CFLAGS, but # also to enable additional NEON code. OPENCV3_CONF_OPTS += \ -DENABLE_POWERPC=OFF \ -DENABLE_NEON=$(if $(BR2_ARM_CPU_HAS_NEON),ON,OFF) \ -DENABLE_VFPV3=OFF # Cuda stuff OPENCV3_CONF_OPTS += \ -DBUILD_CUDA_STUBS=OFF \ -DBUILD_opencv_cudaarithm=OFF \ -DBUILD_opencv_cudabgsegm=OFF \ -DBUILD_opencv_cudacodec=OFF \ -DBUILD_opencv_cudafeatures2d=OFF \ -DBUILD_opencv_cudafilters=OFF \ -DBUILD_opencv_cudaimgproc=OFF \ -DBUILD_opencv_cudalegacy=OFF \ -DBUILD_opencv_cudaobjdetect=OFF \ -DBUILD_opencv_cudaoptflow=OFF \ -DBUILD_opencv_cudastereo=OFF \ -DBUILD_opencv_cudawarping=OFF \ -DBUILD_opencv_cudev=OFF \ -DWITH_CUBLAS=OFF \ -DWITH_CUDA=OFF \ -DWITH_CUFFT=OFF # NVidia stuff OPENCV3_CONF_OPTS += -DWITH_NVCUVID=OFF # AMD stuff OPENCV3_CONF_OPTS += \ -DWITH_OPENCLAMDBLAS=OFF \ -DWITH_OPENCLAMDFFT=OFF # Intel stuff OPENCV3_CONF_OPTS += \ -DBUILD_WITH_DYNAMIC_IPP=OFF \ -DWITH_INTELPERC=OFF \ -DWITH_IPP=OFF \ -DWITH_IPP_A=OFF \ -DWITH_TBB=OFF # Smartek stuff OPENCV3_CONF_OPTS += -DWITH_GIGEAPI=OFF # Prosilica stuff OPENCV3_CONF_OPTS += -DWITH_PVAPI=OFF # Ximea stuff OPENCV3_CONF_OPTS += -DWITH_XIMEA=OFF # Non-Linux support (Android options) must remain OFF: OPENCV3_CONF_OPTS += \ -DANDROID=OFF \ -DBUILD_ANDROID_CAMERA_WRAPPER=OFF \ -DBUILD_ANDROID_EXAMPLES=OFF \ -DBUILD_ANDROID_SERVICE=OFF \ -DBUILD_FAT_JAVA_LIB=OFF \ -DINSTALL_ANDROID_EXAMPLES=OFF \ -DWITH_ANDROID_CAMERA=OFF # Non-Linux support (Mac OSX options) must remain OFF: OPENCV3_CONF_OPTS += \ -DWITH_AVFOUNDATION=OFF \ -DWITH_CARBON=OFF \ -DWITH_QUICKTIME=OFF # Non-Linux support (Windows options) must remain OFF: OPENCV3_CONF_OPTS += \ -DWITH_CSTRIPES=OFF \ -DWITH_DSHOW=OFF \ -DWITH_MSMF=OFF \ -DWITH_VFW=OFF \ -DWITH_VIDEOINPUT=OFF \ -DWITH_WIN32UI=OFF # Software/3rd-party support options: # - disable all examples OPENCV3_CONF_OPTS += \ -DBUILD_EXAMPLES=OFF \ -DBUILD_JASPER=OFF \ -DBUILD_JPEG=OFF \ -DBUILD_OPENEXR=OFF \ -DBUILD_PNG=OFF \ -DBUILD_PROTOBUF=OFF \ -DBUILD_TIFF=OFF \ -DBUILD_ZLIB=OFF \ -DINSTALL_C_EXAMPLES=OFF \ -DINSTALL_PYTHON_EXAMPLES=OFF \ -DINSTALL_TO_MANGLED_PATHS=OFF # Disabled features (mostly because they are not available in Buildroot), but # - eigen: OpenCV does not use it, not take any benefit from it. OPENCV3_CONF_OPTS += \ -DWITH_1394=OFF \ -DWITH_CLP=OFF \ -DWITH_EIGEN=OFF \ -DWITH_GDAL=OFF \ -DWITH_GPHOTO2=OFF \ -DWITH_GSTREAMER_0_10=OFF \ -DWITH_LAPACK=OFF \ -DWITH_MATLAB=OFF \ -DWITH_OPENCL=OFF \ -DWITH_OPENCL_SVM=OFF \ -DWITH_OPENEXR=OFF \ -DWITH_OPENNI2=OFF \ -DWITH_OPENNI=OFF \ -DWITH_UNICAP=OFF \ -DWITH_VA=OFF \ -DWITH_VA_INTEL=OFF \ -DWITH_VTK=OFF \ -DWITH_XINE=OFF OPENCV3_DEPENDENCIES += host-pkgconf zlib ifeq ($(BR2_PACKAGE_OPENCV3_WITH_FFMPEG),y) OPENCV3_CONF_OPTS += -DWITH_FFMPEG=ON OPENCV3_DEPENDENCIES += ffmpeg bzip2 else OPENCV3_CONF_OPTS += -DWITH_FFMPEG=OFF endif ifeq ($(BR2_PACKAGE_OPENCV3_WITH_GSTREAMER1),y) OPENCV3_CONF_OPTS += -DWITH_GSTREAMER=ON OPENCV3_DEPENDENCIES += gstreamer1 gst1-plugins-base else OPENCV3_CONF_OPTS += -DWITH_GSTREAMER=OFF endif ifeq ($(BR2_PACKAGE_OPENCV3_WITH_GTK)$(BR2_PACKAGE_OPENCV3_WITH_GTK3),) OPENCV3_CONF_OPTS += -DWITH_GTK=OFF -DWITH_GTK_2_X=OFF endif ifeq ($(BR2_PACKAGE_OPENCV3_WITH_GTK),y) OPENCV3_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=ON OPENCV3_DEPENDENCIES += libgtk2 endif ifeq ($(BR2_PACKAGE_OPENCV3_WITH_GTK3),y) OPENCV3_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=OFF OPENCV3_DEPENDENCIES += libgtk3 endif ifeq ($(BR2_PACKAGE_OPENCV3_WITH_JASPER),y) OPENCV3_CONF_OPTS += -DWITH_JASPER=ON OPENCV3_DEPENDENCIES += jasper else OPENCV3_CONF_OPTS += -DWITH_JASPER=OFF endif ifeq ($(BR2_PACKAGE_OPENCV3_WITH_JPEG),y) OPENCV3_CONF_OPTS += -DWITH_JPEG=ON OPENCV3_DEPENDENCIES += jpeg else OPENCV3_CONF_OPTS += -DWITH_JPEG=OFF endif ifeq ($(BR2_PACKAGE_OPENCV3_WITH_OPENGL),y) OPENCV3_CONF_OPTS += -DWITH_OPENGL=ON OPENCV3_DEPENDENCIES += libgl else OPENCV3_CONF_OPTS += -DWITH_OPENGL=OFF endif OPENCV3_CONF_OPTS += -DWITH_OPENMP=$(if $(BR2_TOOLCHAIN_HAS_OPENMP),ON,OFF) ifeq ($(BR2_PACKAGE_OPENCV3_WITH_PNG),y) OPENCV3_CONF_OPTS += -DWITH_PNG=ON OPENCV3_DEPENDENCIES += libpng else OPENCV3_CONF_OPTS += -DWITH_PNG=OFF endif ifeq ($(BR2_PACKAGE_OPENCV3_WITH_PROTOBUF),y) # protobuf needs c++11 (since 3.6.0) OPENCV3_CONF_OPTS += \ -DENABLE_CXX11=ON \ -DPROTOBUF_UPDATE_FILES=ON \ -DWITH_PROTOBUF=ON OPENCV3_DEPENDENCIES += protobuf else OPENCV3_CONF_OPTS += -DWITH_PROTOBUF=OFF endif ifeq ($(BR2_PACKAGE_OPENCV3_WITH_QT5),y) OPENCV3_CONF_OPTS += -DWITH_QT=5 OPENCV3_DEPENDENCIES += qt5base else OPENCV3_CONF_OPTS += -DWITH_QT=OFF endif ifeq ($(BR2_PACKAGE_OPENCV3_WITH_TIFF),y) OPENCV3_CONF_OPTS += -DWITH_TIFF=ON OPENCV3_DEPENDENCIES += tiff else OPENCV3_CONF_OPTS += -DWITH_TIFF=OFF endif ifeq ($(BR2_PACKAGE_OPENCV3_WITH_V4L),y) OPENCV3_CONF_OPTS += \ -DWITH_LIBV4L=$(if $(BR2_PACKAGE_LIBV4L),ON,OFF) \ -DWITH_V4L=ON OPENCV3_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBV4L),libv4l) else OPENCV3_CONF_OPTS += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF endif ifeq ($(BR2_PACKAGE_OPENCV3_WITH_WEBP),y) OPENCV3_CONF_OPTS += -DWITH_WEBP=ON OPENCV3_DEPENDENCIES += webp else OPENCV3_CONF_OPTS += -DWITH_WEBP=OFF endif ifeq ($(BR2_PACKAGE_OPENCV3_LIB_PYTHON),y) OPENCV3_CONF_OPTS += \ -DBUILD_opencv_python2=OFF \ -DBUILD_opencv_python3=ON \ -DPYTHON3_EXECUTABLE=$(HOST_DIR)/bin/python3 \ -DPYTHON3_INCLUDE_PATH=$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) \ -DPYTHON3_LIBRARIES=$(STAGING_DIR)/usr/lib/libpython$(PYTHON3_VERSION_MAJOR).so \ -DPYTHON3_NUMPY_INCLUDE_DIRS=$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/core/include \ -DPYTHON3_PACKAGES_PATH=/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \ -DPYTHON3_NUMPY_VERSION=$(PYTHON_NUMPY_VERSION) OPENCV3_DEPENDENCIES += python3 OPENCV3_KEEP_PY_FILES += usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/cv2/config*.py OPENCV3_CONF_ENV += $(PKG_PYTHON_DISTUTILS_ENV) OPENCV3_DEPENDENCIES += python-numpy else OPENCV3_CONF_OPTS += \ -DBUILD_opencv_python2=OFF \ -DBUILD_opencv_python3=OFF endif # Installation hooks: define OPENCV3_CLEAN_INSTALL_LICENSE $(RM) -fr $(TARGET_DIR)/usr/share/licenses/opencv3 endef OPENCV3_POST_INSTALL_TARGET_HOOKS += OPENCV3_CLEAN_INSTALL_LICENSE define OPENCV3_CLEAN_INSTALL_CMAKE $(RM) -f $(TARGET_DIR)/usr/share/OpenCV/OpenCV*.cmake endef OPENCV3_POST_INSTALL_TARGET_HOOKS += OPENCV3_CLEAN_INSTALL_CMAKE define OPENCV3_CLEAN_INSTALL_VALGRIND $(RM) -f $(TARGET_DIR)/usr/share/OpenCV/valgrind* endef OPENCV3_POST_INSTALL_TARGET_HOOKS += OPENCV3_CLEAN_INSTALL_VALGRIND ifneq ($(BR2_PACKAGE_OPENCV3_INSTALL_DATA),y) define OPENCV3_CLEAN_INSTALL_DATA $(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/haarcascades \ $(TARGET_DIR)/usr/share/OpenCV/lbpcascades endef OPENCV3_POST_INSTALL_TARGET_HOOKS += OPENCV3_CLEAN_INSTALL_DATA endif $(eval $(cmake-package)) ================================================ FILE: package/opencv4/0001-modules-videoio-src-cap_ffmpeg_impl.hpp-fix-build-wi.patch ================================================ From 4c92a2869b9a8f736a12ba859b74e5cadce62387 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 12 Nov 2021 09:50:17 +0100 Subject: [PATCH] modules/videoio/src/cap_ffmpeg_impl.hpp: fix build with gcc 4.8 Fix the following build failure with gcc 4.8: In file included from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg_impl.hpp:100:0, from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg.cpp:50: /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg_hw.hpp: In constructor 'HWAccelIterator::HWAccelIterator(cv::VideoAccelerationType, bool, AVDictionary*)': /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg_hw.hpp:939:23: error: use of deleted function 'std::basic_istringstream& std::basic_istringstream::operator=(const std::basic_istringstream&)' s_stream_ = std::istringstream(accel_list); ^ In file included from /home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/arm-none-linux-gnueabi/include/c++/4.8.3/complex:45:0, from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/core/include/opencv2/core/cvstd.inl.hpp:47, from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/core/include/opencv2/core.hpp:3306, from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/include/opencv2/videoio.hpp:46, from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/precomp.hpp:57, from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg.cpp:42: /home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/arm-none-linux-gnueabi/include/c++/4.8.3/sstream:272:11: note: 'std::basic_istringstream& std::basic_istringstream::operator=(const std::basic_istringstream&)' is implicitly deleted because the default definition would be ill-formed: class basic_istringstream : public basic_istream<_CharT, _Traits> ^ /home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/arm-none-linux-gnueabi/include/c++/4.8.3/sstream:272:11: error: use of deleted function 'std::basic_istream& std::basic_istream::operator=(const std::basic_istream&)' Fixes: - http://autobuild.buildroot.org/results/60f8846b435dafda0ced412d59ffe15bdff0810d Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/opencv/opencv/commit/4c92a2869b9a8f736a12ba859b74e5cadce62387] --- modules/videoio/src/cap_ffmpeg_impl.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/videoio/src/cap_ffmpeg_impl.hpp b/modules/videoio/src/cap_ffmpeg_impl.hpp index d393b73ff4a2..76e1b855b7c8 100644 --- a/modules/videoio/src/cap_ffmpeg_impl.hpp +++ b/modules/videoio/src/cap_ffmpeg_impl.hpp @@ -93,6 +93,12 @@ extern "C" { } #endif +// GCC 4.x compilation bug. Details: https://github.com/opencv/opencv/issues/20292 +#if (defined(__GNUC__) && __GNUC__ < 5) && !defined(__clang__) +#undef USE_AV_HW_CODECS +#define USE_AV_HW_CODECS 0 +#endif + //#define USE_AV_HW_CODECS 0 #ifndef USE_AV_HW_CODECS #if LIBAVUTIL_VERSION_MAJOR >= 56 // FFMPEG 4.0+ ================================================ FILE: package/opencv4/Config.in ================================================ menuconfig BR2_PACKAGE_OPENCV4 bool "opencv4" depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on !BR2_STATIC_LIBS # include dlfcn.h depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on !BR2_PACKAGE_OPENCV3 select BR2_PACKAGE_ZLIB help OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision. Note that the opencv_core module and the opencv_hal library are always built and installed, not matter which other modules are enabled below. http://opencv.org/ if BR2_PACKAGE_OPENCV4 comment "OpenCV modules" config BR2_PACKAGE_OPENCV4_LIB_CALIB3D bool "calib3d" select BR2_PACKAGE_OPENCV4_LIB_FEATURES2D select BR2_PACKAGE_OPENCV4_LIB_IMGPROC help Include opencv_calib3d (camera calibration and 3d reconstruction) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_FEATURES2D bool "features2d" select BR2_PACKAGE_OPENCV4_LIB_FLANN select BR2_PACKAGE_OPENCV4_LIB_IMGPROC select BR2_PACKAGE_OPENCV4_LIB_ML help Include opencv_features2d (2d features framework) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_FLANN bool "flann" # opencv_core dependency is already enabled help Include opencv_flann (clustering and search in multi-dimensional spaces) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_HIGHGUI bool "highgui" select BR2_PACKAGE_OPENCV4_LIB_IMGCODECS select BR2_PACKAGE_OPENCV4_LIB_IMGPROC select BR2_PACKAGE_OPENCV4_LIB_VIDEOIO help Include opencv_highgui (high-level gui and media i/o) module into the OpenCV build. if BR2_PACKAGE_OPENCV4_LIB_HIGHGUI choice prompt "gui toolkit" help GUI toolkit to be used by the opencv_highgui module. config BR2_PACKAGE_OPENCV4_GUI_NONE bool "none" config BR2_PACKAGE_OPENCV4_WITH_GTK bool "gtk2" depends on BR2_PACKAGE_LIBGTK2 comment "gtk2 support needs libgtk2" depends on BR2_USE_MMU # libgtk2 -> glib2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_PACKAGE_LIBGTK2 config BR2_PACKAGE_OPENCV4_WITH_GTK3 bool "gtk3" depends on BR2_PACKAGE_LIBGTK3 comment "gtk3 support needs libgtk3" depends on BR2_USE_MMU # libgtk3 -> glib2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_PACKAGE_LIBGTK3 config BR2_PACKAGE_OPENCV4_WITH_QT5 bool "qt5" depends on BR2_PACKAGE_QT5 select BR2_PACKAGE_QT5BASE_CONCURRENT select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_WIDGETS help Use Qt5 with base, concurrent, test, gui and widgets components, as GUI toolkit. comment "qt5 support needs qt5" depends on !BR2_PACKAGE_QT5 endchoice config BR2_PACKAGE_OPENCV4_WITH_OPENGL bool "opengl support" # OpenGL support done using Qt5OpenGL, so depends on WITH_QT5 depends on BR2_PACKAGE_OPENCV4_WITH_QT5 # OpenGL support requires Qt5OpenGL with GL support, not GLES depends on BR2_PACKAGE_QT5_GL_AVAILABLE depends on BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_QT5BASE_OPENGL help Enable OpenGL for UI. comment "opengl support needs an OpenGL provider" depends on BR2_PACKAGE_OPENCV4_WITH_QT5 depends on !BR2_PACKAGE_QT5_GL_AVAILABLE || \ !BR2_PACKAGE_HAS_LIBGL endif # BR2_PACKAGE_OPENCV4_LIB_HIGHGUI config BR2_PACKAGE_OPENCV4_LIB_IMGCODECS bool "imgcodecs" select BR2_PACKAGE_OPENCV4_LIB_IMGPROC help Include opencv_imgcodecs (image codecs) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_IMGPROC bool "imgproc" # opencv_core dependency is already enabled help Include opencv_imgproc (image processing) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_ML bool "ml" # opencv_core dependency is already enabled help Include opencv_ml (machine learning) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_OBJDETECT bool "objdetect" # opencv_core dependency is already enabled select BR2_PACKAGE_OPENCV4_LIB_CALIB3D select BR2_PACKAGE_OPENCV4_LIB_IMGPROC select BR2_PACKAGE_OPENCV4_LIB_ML help Include opencv_objdetect (object detection) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_PHOTO bool "photo" select BR2_PACKAGE_OPENCV4_LIB_IMGPROC help Include opencv_photo (computational photography) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_PYTHON bool "python" depends on BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy select BR2_PACKAGE_PYTHON_NUMPY help Include opencv_python module into the OpenCV build. No python example is installed. comment "python support needs glibc or musl" depends on BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) config BR2_PACKAGE_OPENCV4_LIB_SHAPE bool "shape" # opencv_core dependency is already enabled select BR2_PACKAGE_OPENCV4_LIB_IMGPROC select BR2_PACKAGE_OPENCV4_LIB_VIDEO help Include opencv_shape (shape descriptors and matchers) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_STITCHING bool "stitching" select BR2_PACKAGE_OPENCV4_LIB_CALIB3D select BR2_PACKAGE_OPENCV4_LIB_FEATURES2D select BR2_PACKAGE_OPENCV4_LIB_IMGPROC select BR2_PACKAGE_OPENCV4_LIB_OBJDETECT help Include opencv_stitching (images stitching) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_SUPERRES bool "superres" select BR2_PACKAGE_OPENCV4_LIB_IMGPROC select BR2_PACKAGE_OPENCV4_LIB_VIDEO help Include opencv_superres (super resolution) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_TS bool "ts" # opencv_core dependency is already enabled select BR2_PACKAGE_OPENCV4_LIB_HIGHGUI select BR2_PACKAGE_OPENCV4_LIB_IMGCODECS select BR2_PACKAGE_OPENCV4_LIB_IMGPROC select BR2_PACKAGE_OPENCV4_LIB_VIDEOIO help Include opencv_ts (test) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_VIDEOIO bool "videoio" select BR2_PACKAGE_OPENCV4_LIB_IMGCODECS select BR2_PACKAGE_OPENCV4_LIB_IMGPROC help Include opencv_videoio (media i/o) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_VIDEO bool "video" select BR2_PACKAGE_OPENCV4_LIB_IMGPROC help Include opencv_video (video analysis) module into the OpenCV build. config BR2_PACKAGE_OPENCV4_LIB_VIDEOSTAB bool "videostab" select BR2_PACKAGE_OPENCV4_LIB_CALIB3D select BR2_PACKAGE_OPENCV4_LIB_FEATURES2D select BR2_PACKAGE_OPENCV4_LIB_IMGPROC select BR2_PACKAGE_OPENCV4_LIB_PHOTO select BR2_PACKAGE_OPENCV4_LIB_VIDEO help Include opencv_videostab (video stabilization) module into the OpenCV build. comment "Test sets" config BR2_PACKAGE_OPENCV4_BUILD_TESTS bool "build tests" config BR2_PACKAGE_OPENCV4_BUILD_PERF_TESTS bool "build performance tests" comment "3rd party support" config BR2_PACKAGE_OPENCV4_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 help Use ffmpeg from the target system. config BR2_PACKAGE_OPENCV4_WITH_GSTREAMER1 bool "gstreamer-1.x" depends on BR2_USE_MMU # gstreamer1 -> libglib2 select BR2_PACKAGE_GSTREAMER1 select BR2_PACKAGE_GST1_PLUGINS_BASE select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP help Enable gstreamer support. choice prompt "jpeg2000 support" help Select the desired jpeg2000 library provider. config BR2_PACKAGE_OPENCV4_JPEG2000_NONE bool "none" config BR2_PACKAGE_OPENCV4_JPEG2000_WITH_JASPER bool "jasper" select BR2_PACKAGE_JASPER help Enable jpeg2000 support through jasper. Note: this does not use the libjasper bundled with opencv, but uses the libjasper package installed system-wide by Buildroot. config BR2_PACKAGE_OPENCV4_JPEG2000_WITH_OPENJPEG bool "openjpeg" select BR2_PACKAGE_OPENJPEG help Enable jpeg2000 support through openjpeg. Note: this does not use the openjpeg bundled with opencv, but uses the openjpeg package installed system-wide by Buildroot. endchoice config BR2_PACKAGE_OPENCV4_WITH_JPEG bool "jpeg support" select BR2_PACKAGE_JPEG help Use shared libjpeg from the target system. config BR2_PACKAGE_OPENCV4_WITH_PNG bool "png support" select BR2_PACKAGE_LIBPNG help Use shared libpng from the target system. config BR2_PACKAGE_OPENCV4_WITH_PROTOBUF bool "protobuf support" depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # protobuf select BR2_PACKAGE_PROTOBUF help Use shared protobuf from the target system. config BR2_PACKAGE_OPENCV4_WITH_TIFF bool "tiff support" select BR2_PACKAGE_TIFF help Use shared libtiff from the target system. config BR2_PACKAGE_OPENCV4_WITH_V4L bool "v4l support" help Enable Video 4 Linux support. If the package libv4l is enabled, its support is automatically enabled. config BR2_PACKAGE_OPENCV4_WITH_WEBP bool "webp support" select BR2_PACKAGE_WEBP help Enable WebP support. Use shared libwebp from the target system. comment "Install options" config BR2_PACKAGE_OPENCV4_INSTALL_DATA bool "install extra data" help Install various data that is used by cv libraries and/or demo applications, specifically for haarcascades and lbpcascades features. For further information: see OpenCV documentation. endif # BR2_PACKAGE_OPENCV4 comment "opencv4 needs a toolchain w/ C++, NPTL, wchar, dynamic library, gcc >= 4.8" depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/opencv4/opencv4.hash ================================================ # Locally calculated sha256 c20bb83dd790fc69df9f105477e24267706715a9d3c705ca1e7f613c7b3bad3d opencv4-4.5.4.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/opencv4/opencv4.mk ================================================ ################################################################################ # # opencv4 # ################################################################################ OPENCV4_VERSION = 4.5.4 OPENCV4_SITE = $(call github,opencv,opencv,$(OPENCV4_VERSION)) OPENCV4_INSTALL_STAGING = YES OPENCV4_LICENSE = Apache-2.0 OPENCV4_LICENSE_FILES = LICENSE OPENCV4_CPE_ID_VENDOR = opencv OPENCV4_CPE_ID_PRODUCT = opencv OPENCV4_SUPPORTS_IN_SOURCE_BUILD = NO OPENCV4_CXXFLAGS = $(TARGET_CXXFLAGS) # Uses __atomic_fetch_add_4 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) OPENCV4_CXXFLAGS += -latomic endif # Fix c++11 build with missing std::exception_ptr ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_64735),y) OPENCV4_CXXFLAGS += -DCV__EXCEPTION_PTR=0 endif ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) OPENCV4_CXXFLAGS += -O0 endif # OpenCV component options OPENCV4_CONF_OPTS += \ -DCMAKE_CXX_FLAGS="$(OPENCV4_CXXFLAGS)" \ -DBUILD_DOCS=OFF \ -DBUILD_PERF_TESTS=$(if $(BR2_PACKAGE_OPENCV4_BUILD_PERF_TESTS),ON,OFF) \ -DBUILD_TESTS=$(if $(BR2_PACKAGE_OPENCV4_BUILD_TESTS),ON,OFF) \ -DBUILD_WITH_DEBUG_INFO=OFF \ -DDOWNLOAD_EXTERNAL_TEST_DATA=OFF \ -DOPENCV_GENERATE_PKGCONFIG=ON \ -DOPENCV_ENABLE_PKG_CONFIG=ON ifeq ($(BR2_PACKAGE_OPENCV4_BUILD_TESTS)$(BR2_PACKAGE_OPENCV4_BUILD_PERF_TESTS),) OPENCV4_CONF_OPTS += -DINSTALL_TEST=OFF else OPENCV4_CONF_OPTS += -DINSTALL_TEST=ON endif # OpenCV build options OPENCV4_CONF_OPTS += \ -DBUILD_WITH_STATIC_CRT=OFF \ -DENABLE_CCACHE=OFF \ -DENABLE_COVERAGE=OFF \ -DENABLE_FAST_MATH=ON \ -DENABLE_IMPL_COLLECTION=OFF \ -DENABLE_NOISY_WARNINGS=OFF \ -DENABLE_OMIT_FRAME_POINTER=ON \ -DENABLE_PRECOMPILED_HEADERS=OFF \ -DENABLE_PROFILING=OFF \ -DOPENCV_WARNINGS_ARE_ERRORS=OFF # OpenCV link options OPENCV4_CONF_OPTS += \ -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \ -DCMAKE_SKIP_RPATH=OFF \ -DCMAKE_USE_RELATIVE_PATHS=OFF # OpenCV packaging options: OPENCV4_CONF_OPTS += \ -DBUILD_PACKAGE=OFF \ -DENABLE_SOLUTION_FOLDERS=OFF \ -DINSTALL_CREATE_DISTRIB=OFF # OpenCV module selection # * Modules on: # - core: if not set, opencv does not build anything # - hal: core's dependency # * Modules off: # - android*: android stuff # - apps: programs for training classifiers # - java: java bindings # - viz: missing VTK dependency # - world: all-in-one module # # * Contrib modules from [1] are disabled: # - opencv_contrib package is not available in Buildroot; # - OPENCV_EXTRA_MODULES_PATH is not set. # # [1] https://github.com/Itseez/opencv_contrib OPENCV4_CONF_OPTS += \ -DBUILD_opencv_androidcamera=OFF \ -DBUILD_opencv_apps=OFF \ -DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV4_LIB_CALIB3D),ON,OFF) \ -DBUILD_opencv_core=ON \ -DBUILD_opencv_features2d=$(if $(BR2_PACKAGE_OPENCV4_LIB_FEATURES2D),ON,OFF) \ -DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV4_LIB_FLANN),ON,OFF) \ -DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV4_LIB_HIGHGUI),ON,OFF) \ -DBUILD_opencv_imgcodecs=$(if $(BR2_PACKAGE_OPENCV4_LIB_IMGCODECS),ON,OFF) \ -DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV4_LIB_IMGPROC),ON,OFF) \ -DBUILD_opencv_java=OFF \ -DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV4_LIB_ML),ON,OFF) \ -DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV4_LIB_OBJDETECT),ON,OFF) \ -DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV4_LIB_PHOTO),ON,OFF) \ -DBUILD_opencv_shape=$(if $(BR2_PACKAGE_OPENCV4_LIB_SHAPE),ON,OFF) \ -DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV4_LIB_STITCHING),ON,OFF) \ -DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV4_LIB_SUPERRES),ON,OFF) \ -DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV4_LIB_TS),ON,OFF) \ -DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV4_LIB_VIDEO),ON,OFF) \ -DBUILD_opencv_videoio=$(if $(BR2_PACKAGE_OPENCV4_LIB_VIDEOIO),ON,OFF) \ -DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV4_LIB_VIDEOSTAB),ON,OFF) \ -DBUILD_opencv_viz=OFF \ -DBUILD_opencv_world=OFF # Hardware support options. # # * PowerPC and VFPv3 support are turned off since their only effects # are altering CFLAGS, adding '-mcpu=G3 -mtune=G5' or '-mfpu=vfpv3' # to them, which is already handled by Buildroot. # * NEON logic is needed as it is not only used to add CFLAGS, but # also to enable additional NEON code. OPENCV4_CONF_OPTS += \ -DENABLE_POWERPC=OFF \ -DENABLE_NEON=$(if $(BR2_ARM_CPU_HAS_NEON),ON,OFF) \ -DENABLE_VFPV3=OFF # Cuda stuff OPENCV4_CONF_OPTS += \ -DBUILD_CUDA_STUBS=OFF \ -DBUILD_opencv_cudaarithm=OFF \ -DBUILD_opencv_cudabgsegm=OFF \ -DBUILD_opencv_cudacodec=OFF \ -DBUILD_opencv_cudafeatures2d=OFF \ -DBUILD_opencv_cudafilters=OFF \ -DBUILD_opencv_cudaimgproc=OFF \ -DBUILD_opencv_cudalegacy=OFF \ -DBUILD_opencv_cudaobjdetect=OFF \ -DBUILD_opencv_cudaoptflow=OFF \ -DBUILD_opencv_cudastereo=OFF \ -DBUILD_opencv_cudawarping=OFF \ -DBUILD_opencv_cudev=OFF \ -DWITH_CUBLAS=OFF \ -DWITH_CUDA=OFF \ -DWITH_CUFFT=OFF # NVidia stuff OPENCV4_CONF_OPTS += -DWITH_NVCUVID=OFF # AMD stuff OPENCV4_CONF_OPTS += \ -DWITH_OPENCLAMDBLAS=OFF \ -DWITH_OPENCLAMDFFT=OFF # Intel stuff OPENCV4_CONF_OPTS += \ -DBUILD_WITH_DYNAMIC_IPP=OFF \ -DWITH_INTELPERC=OFF \ -DWITH_IPP=OFF \ -DWITH_IPP_A=OFF \ -DWITH_TBB=OFF # Smartek stuff OPENCV4_CONF_OPTS += -DWITH_GIGEAPI=OFF # Prosilica stuff OPENCV4_CONF_OPTS += -DWITH_PVAPI=OFF # Ximea stuff OPENCV4_CONF_OPTS += -DWITH_XIMEA=OFF # Non-Linux support (Android options) must remain OFF: OPENCV4_CONF_OPTS += \ -DANDROID=OFF \ -DBUILD_ANDROID_CAMERA_WRAPPER=OFF \ -DBUILD_ANDROID_EXAMPLES=OFF \ -DBUILD_ANDROID_SERVICE=OFF \ -DBUILD_FAT_JAVA_LIB=OFF \ -DINSTALL_ANDROID_EXAMPLES=OFF \ -DWITH_ANDROID_CAMERA=OFF # Non-Linux support (Mac OSX options) must remain OFF: OPENCV4_CONF_OPTS += \ -DWITH_AVFOUNDATION=OFF \ -DWITH_CARBON=OFF \ -DWITH_QUICKTIME=OFF # Non-Linux support (Windows options) must remain OFF: OPENCV4_CONF_OPTS += \ -DWITH_CSTRIPES=OFF \ -DWITH_DSHOW=OFF \ -DWITH_MSMF=OFF \ -DWITH_VFW=OFF \ -DWITH_VIDEOINPUT=OFF \ -DWITH_WIN32UI=OFF # Software/3rd-party support options: # - disable all examples OPENCV4_CONF_OPTS += \ -DBUILD_EXAMPLES=OFF \ -DBUILD_JASPER=OFF \ -DBUILD_JPEG=OFF \ -DBUILD_OPENEXR=OFF \ -DBUILD_OPENJPEG=OFF \ -DBUILD_PNG=OFF \ -DBUILD_PROTOBUF=OFF \ -DBUILD_TIFF=OFF \ -DBUILD_ZLIB=OFF \ -DINSTALL_C_EXAMPLES=OFF \ -DINSTALL_PYTHON_EXAMPLES=OFF \ -DINSTALL_TO_MANGLED_PATHS=OFF # Disabled features (mostly because they are not available in Buildroot), but # - eigen: OpenCV does not use it, not take any benefit from it. OPENCV4_CONF_OPTS += \ -DWITH_1394=OFF \ -DWITH_CLP=OFF \ -DWITH_EIGEN=OFF \ -DWITH_GDAL=OFF \ -DWITH_GPHOTO2=OFF \ -DWITH_GSTREAMER_0_10=OFF \ -DWITH_LAPACK=OFF \ -DWITH_MATLAB=OFF \ -DWITH_OPENCL=OFF \ -DWITH_OPENCL_SVM=OFF \ -DWITH_OPENEXR=OFF \ -DWITH_OPENNI2=OFF \ -DWITH_OPENNI=OFF \ -DWITH_UNICAP=OFF \ -DWITH_VA=OFF \ -DWITH_VA_INTEL=OFF \ -DWITH_VTK=OFF \ -DWITH_XINE=OFF OPENCV4_DEPENDENCIES += host-pkgconf zlib ifeq ($(BR2_PACKAGE_OPENCV4_JPEG2000_WITH_JASPER),y) OPENCV4_CONF_OPTS += -DWITH_JASPER=ON OPENCV4_DEPENDENCIES += jasper else OPENCV4_CONF_OPTS += -DWITH_JASPER=OFF endif ifeq ($(BR2_PACKAGE_OPENCV4_JPEG2000_WITH_OPENJPEG),y) OPENCV4_CONF_OPTS += -DWITH_OPENJPEG=ON OPENCV4_DEPENDENCIES += openjpeg else OPENCV4_CONF_OPTS += -DWITH_OPENJPEG=OFF endif ifeq ($(BR2_PACKAGE_OPENCV4_WITH_FFMPEG),y) OPENCV4_CONF_OPTS += -DWITH_FFMPEG=ON OPENCV4_DEPENDENCIES += ffmpeg bzip2 else OPENCV4_CONF_OPTS += -DWITH_FFMPEG=OFF endif ifeq ($(BR2_PACKAGE_OPENCV4_WITH_GSTREAMER1),y) OPENCV4_CONF_OPTS += -DWITH_GSTREAMER=ON OPENCV4_DEPENDENCIES += gstreamer1 gst1-plugins-base else OPENCV4_CONF_OPTS += -DWITH_GSTREAMER=OFF endif ifeq ($(BR2_PACKAGE_OPENCV4_WITH_GTK)$(BR2_PACKAGE_OPENCV4_WITH_GTK3),) OPENCV4_CONF_OPTS += -DWITH_GTK=OFF -DWITH_GTK_2_X=OFF endif ifeq ($(BR2_PACKAGE_OPENCV4_WITH_GTK),y) OPENCV4_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=ON OPENCV4_DEPENDENCIES += libgtk2 endif ifeq ($(BR2_PACKAGE_OPENCV4_WITH_GTK3),y) OPENCV4_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=OFF OPENCV4_DEPENDENCIES += libgtk3 endif ifeq ($(BR2_PACKAGE_OPENCV4_WITH_JPEG),y) OPENCV4_CONF_OPTS += -DWITH_JPEG=ON OPENCV4_DEPENDENCIES += jpeg else OPENCV4_CONF_OPTS += -DWITH_JPEG=OFF endif ifeq ($(BR2_PACKAGE_OPENCV4_WITH_OPENGL),y) OPENCV4_CONF_OPTS += -DWITH_OPENGL=ON OPENCV4_DEPENDENCIES += libgl else OPENCV4_CONF_OPTS += -DWITH_OPENGL=OFF endif OPENCV4_CONF_OPTS += -DWITH_OPENMP=$(if $(BR2_TOOLCHAIN_HAS_OPENMP),ON,OFF) ifeq ($(BR2_PACKAGE_OPENCV4_WITH_PNG),y) OPENCV4_CONF_OPTS += -DWITH_PNG=ON OPENCV4_DEPENDENCIES += libpng else OPENCV4_CONF_OPTS += -DWITH_PNG=OFF endif ifeq ($(BR2_PACKAGE_OPENCV4_WITH_PROTOBUF),y) OPENCV4_CONF_OPTS += \ -DPROTOBUF_UPDATE_FILES=ON \ -DWITH_PROTOBUF=ON OPENCV4_DEPENDENCIES += protobuf else OPENCV4_CONF_OPTS += -DWITH_PROTOBUF=OFF endif ifeq ($(BR2_PACKAGE_OPENCV4_WITH_QT5),y) OPENCV4_CONF_OPTS += -DWITH_QT=5 OPENCV4_DEPENDENCIES += qt5base else OPENCV4_CONF_OPTS += -DWITH_QT=OFF endif ifeq ($(BR2_PACKAGE_OPENCV4_WITH_TIFF),y) OPENCV4_CONF_OPTS += -DWITH_TIFF=ON OPENCV4_DEPENDENCIES += tiff else OPENCV4_CONF_OPTS += -DWITH_TIFF=OFF endif ifeq ($(BR2_PACKAGE_OPENCV4_WITH_V4L),y) OPENCV4_CONF_OPTS += \ -DWITH_LIBV4L=$(if $(BR2_PACKAGE_LIBV4L),ON,OFF) \ -DWITH_V4L=ON OPENCV4_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBV4L),libv4l) else OPENCV4_CONF_OPTS += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF endif ifeq ($(BR2_PACKAGE_OPENCV4_WITH_WEBP),y) OPENCV4_CONF_OPTS += -DWITH_WEBP=ON OPENCV4_DEPENDENCIES += webp else OPENCV4_CONF_OPTS += -DWITH_WEBP=OFF endif ifeq ($(BR2_PACKAGE_OPENCV4_LIB_PYTHON),y) OPENCV4_CONF_OPTS += \ -DBUILD_opencv_python2=OFF \ -DBUILD_opencv_python3=ON \ -DPYTHON3_EXECUTABLE=$(HOST_DIR)/bin/python3 \ -DPYTHON3_INCLUDE_PATH=$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) \ -DPYTHON3_LIBRARIES=$(STAGING_DIR)/usr/lib/libpython$(PYTHON3_VERSION_MAJOR).so \ -DPYTHON3_NUMPY_INCLUDE_DIRS=$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/core/include \ -DPYTHON3_PACKAGES_PATH=/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \ -DPYTHON3_NUMPY_VERSION=$(PYTHON_NUMPY_VERSION) OPENCV4_DEPENDENCIES += python3 OPENCV4_KEEP_PY_FILES += usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/cv2/config*.py OPENCV4_CONF_ENV += $(PKG_PYTHON_DISTUTILS_ENV) OPENCV4_DEPENDENCIES += python-numpy else OPENCV4_CONF_OPTS += \ -DBUILD_opencv_python2=OFF \ -DBUILD_opencv_python3=OFF endif # Installation hooks: define OPENCV4_CLEAN_INSTALL_LICENSE $(RM) -fr $(TARGET_DIR)/usr/share/licenses/opencv4 endef OPENCV4_POST_INSTALL_TARGET_HOOKS += OPENCV4_CLEAN_INSTALL_LICENSE define OPENCV4_CLEAN_INSTALL_VALGRIND $(RM) -f $(TARGET_DIR)/usr/share/opencv4/valgrind* endef OPENCV4_POST_INSTALL_TARGET_HOOKS += OPENCV4_CLEAN_INSTALL_VALGRIND ifneq ($(BR2_PACKAGE_OPENCV4_INSTALL_DATA),y) define OPENCV4_CLEAN_INSTALL_DATA $(RM) -fr $(TARGET_DIR)/usr/share/opencv4/haarcascades \ $(TARGET_DIR)/usr/share/opencv4/lbpcascades endef OPENCV4_POST_INSTALL_TARGET_HOOKS += OPENCV4_CLEAN_INSTALL_DATA endif $(eval $(cmake-package)) ================================================ FILE: package/openfpgaloader/Config.in ================================================ config BR2_PACKAGE_OPENFPGALOADER bool "openfpgaloader" depends on BR2_TOOLCHAIN_HAS_THREADS # libftdi1 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libftdi1 -> libusb depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_LIBFTDI1 help Universal utility for programming FPGA https://github.com/trabucayre/openFPGALoader/ comment "openfpgaloader needs a toolchain w/ threads, C++, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/openfpgaloader/openfpgaloader.hash ================================================ # Locally computed sha256 ef3ed60297ab560f15cd4362d61b7da86c44b84e18937e0411023f8d1cf6a606 openfpgaloader-381c67de00a3102cf6e9bb20ca84030a71c7a0f2.tar.gz sha256 8486a10c4393cee1c25392769ddd3b2d6c242d6ec7928e1414efff7dfb2f07ef LICENSE ================================================ FILE: package/openfpgaloader/openfpgaloader.mk ================================================ ################################################################################ # # openfpgaloader # ################################################################################ OPENFPGALOADER_VERSION = 381c67de00a3102cf6e9bb20ca84030a71c7a0f2 OPENFPGALOADER_SITE = $(call github,trabucayre,openFPGALoader,$(OPENFPGALOADER_VERSION)) OPENFPGALOADER_LICENSE = AGPL-3.0 OPENFPGALOADER_LICENSE_FILES = LICENSE OPENFPGALOADER_DEPENDENCIES = libftdi1 ifeq ($(BR2_PACKAGE_HAS_UDEV),y) OPENFPGALOADER_DEPENDENCIES += udev OPENFPGALOADER_CONF_OPTS += -DENABLE_UDEV=ON else OPENFPGALOADER_CONF_OPTS += -DENABLE_UDEV=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/opengl/Config.in ================================================ source "package/opengl/libgl/Config.in" source "package/opengl/libegl/Config.in" source "package/opengl/libgbm/Config.in" source "package/opengl/libgles/Config.in" source "package/opengl/libopencl/Config.in" source "package/opengl/libopenvg/Config.in" source "package/opengl/libopenmax/Config.in" ================================================ FILE: package/opengl/libegl/Config.in ================================================ config BR2_PACKAGE_HAS_LIBEGL bool config BR2_PACKAGE_HAS_LIBEGL_WAYLAND bool depends on BR2_PACKAGE_HAS_LIBEGL config BR2_PACKAGE_PROVIDES_LIBEGL string depends on BR2_PACKAGE_HAS_LIBEGL ================================================ FILE: package/opengl/libegl/libegl.mk ================================================ ################################################################################ # # libegl # ################################################################################ $(eval $(virtual-package)) ================================================ FILE: package/opengl/libgbm/Config.in ================================================ config BR2_PACKAGE_HAS_LIBGBM bool config BR2_PACKAGE_PROVIDES_LIBGBM string depends on BR2_PACKAGE_HAS_LIBGBM config BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT bool depends on BR2_PACKAGE_HAS_LIBGBM # gbm implementations should select this option if they provide the # format modifier plane count feature. This API was initially introduced # in mesa3d version 17. A gbm implementation provides this feature if it # is implement function gbm_device_get_format_modifier_plane_count. config BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF bool depends on BR2_PACKAGE_HAS_LIBGBM # gbm implementations should select this option if they provide the # dma buffer feature. This API was initially introduced in mesa3d # version 10. A gbm implementation provides this feature if it # is implement function gbm_bo_get_fd. ================================================ FILE: package/opengl/libgbm/libgbm.mk ================================================ ################################################################################ # # libgbm # ################################################################################ # This package requires to install a gbm.pc which needs # to be provided by GBM providers. $(eval $(virtual-package)) ================================================ FILE: package/opengl/libgl/Config.in ================================================ config BR2_PACKAGE_HAS_LIBGL bool config BR2_PACKAGE_PROVIDES_LIBGL string depends on BR2_PACKAGE_HAS_LIBGL ================================================ FILE: package/opengl/libgl/libgl.mk ================================================ ################################################################################ # # libgl # ################################################################################ $(eval $(virtual-package)) ================================================ FILE: package/opengl/libgles/Config.in ================================================ config BR2_PACKAGE_HAS_LIBGLES bool config BR2_PACKAGE_PROVIDES_LIBGLES string depends on BR2_PACKAGE_HAS_LIBGLES ================================================ FILE: package/opengl/libgles/libgles.mk ================================================ ################################################################################ # # libgles # ################################################################################ $(eval $(virtual-package)) ================================================ FILE: package/opengl/libopencl/Config.in ================================================ config BR2_PACKAGE_HAS_LIBOPENCL bool config BR2_PACKAGE_PROVIDES_LIBOPENCL string depends on BR2_PACKAGE_HAS_LIBOPENCL ================================================ FILE: package/opengl/libopencl/libopencl.mk ================================================ ################################################################################ # # libopencl # ################################################################################ $(eval $(virtual-package)) ================================================ FILE: package/opengl/libopenmax/Config.in ================================================ config BR2_PACKAGE_HAS_LIBOPENMAX bool config BR2_PACKAGE_PROVIDES_LIBOPENMAX string depends on BR2_PACKAGE_HAS_LIBOPENMAX ================================================ FILE: package/opengl/libopenmax/libopenmax.mk ================================================ ################################################################################ # # libopenmax # ################################################################################ $(eval $(virtual-package)) ================================================ FILE: package/opengl/libopenvg/Config.in ================================================ config BR2_PACKAGE_HAS_LIBOPENVG bool config BR2_PACKAGE_PROVIDES_LIBOPENVG string depends on BR2_PACKAGE_HAS_LIBOPENVG ================================================ FILE: package/opengl/libopenvg/libopenvg.mk ================================================ ################################################################################ # # libopenvg # ################################################################################ $(eval $(virtual-package)) ================================================ FILE: package/opengl/opengl.mk ================================================ include $(sort $(wildcard package/opengl/*/*.mk)) ================================================ FILE: package/openipmi/0001-Avoid-searching-host-library-path.patch ================================================ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Wed, 22 Jul 2015 07:04:33 +0300 Subject: [PATCH] Avoid searching host library path The $(libdir) variable points to the location of the directory on the target system, /usr/lib by default. When cross compiling this directory contains the host libraries which may be different than target libraries. Don't use $(libdir) in the library search path. Signed-off-by: Baruch Siach Signed-off-by: Joel Stanley --- cmdlang/Makefile.am | 3 +-- unix/Makefile.am | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am index 264ee12be79f..0b3843784656 100644 --- a/cmdlang/Makefile.am +++ b/cmdlang/Makefile.am @@ -15,8 +15,7 @@ libOpenIPMIcmdlang_la_SOURCES = cmdlang.c cmd_domain.c cmd_entity.c cmd_mc.c \ libOpenIPMIcmdlang_la_LIBADD = -lm \ $(top_builddir)/utils/libOpenIPMIutils.la \ $(top_builddir)/lib/libOpenIPMI.la -libOpenIPMIcmdlang_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \ - -L$(libdir) +libOpenIPMIcmdlang_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) bin_PROGRAMS = openipmish diff --git a/unix/Makefile.am b/unix/Makefile.am index 5128839dad13..bd0f897ba8d6 100644 --- a/unix/Makefile.am +++ b/unix/Makefile.am @@ -10,14 +10,12 @@ lib_LTLIBRARIES = libOpenIPMIposix.la libOpenIPMIpthread.la libOpenIPMIpthread_la_SOURCES = posix_thread_os_hnd.c selector.c libOpenIPMIpthread_la_LIBADD = -lpthread $(GDBM_LIB) \ $(top_builddir)/utils/libOpenIPMIutils.la $(RT_LIB) -libOpenIPMIpthread_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \ - -L$(libdir) +libOpenIPMIpthread_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) libOpenIPMIposix_la_SOURCES = posix_os_hnd.c selector.c libOpenIPMIposix_la_LIBADD = $(top_builddir)/utils/libOpenIPMIutils.la \ $(GDBM_LIB) $(RT_LIB) -libOpenIPMIposix_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \ - -L$(libdir) +libOpenIPMIposix_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) noinst_HEADERS = heap.h ================================================ FILE: package/openipmi/Config.in ================================================ config BR2_PACKAGE_OPENIPMI bool "openipmi" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # dlopen() depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_PACKAGE_POPT select BR2_PACKAGE_NCURSES select BR2_PACKAGE_READLINE help IPMI allows remote monitoring and remote management of devices. OpenIPMI provides a library and command line tools to interact with IPMI enabled devices. OpenIPMI also provides an IPMI BMC simulator. http://openipmi.sourceforge.net comment "openipmi needs a toolchain w/ dynamic library, NPTL" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS_NPTL ================================================ FILE: package/openipmi/openipmi.hash ================================================ # From http://sourceforge.net/projects/openipmi/files/OpenIPMI%202.0%20Library/ sha1 be0c87743a38e2fa00586df931f021c0b480385b OpenIPMI-2.0.28.tar.gz md5 ba37f08e306062ec73c7ed2a2bd4d5f4 OpenIPMI-2.0.28.tar.gz # Locally computed sha256 8e8b1de2a9a041b419133ecb21f956e999841cf2e759e973eeba9a36f8b40996 OpenIPMI-2.0.28.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING sha256 185323a62589e7ee80f86bf2ea29caad9a09fdda0ea3f1c00db8b778c7edf60e COPYING.BSD sha256 5bbcbb737e60fe9deba08ecbd00920cfcc3403ba2e534c64fdeea49d6bb87509 COPYING.LIB ================================================ FILE: package/openipmi/openipmi.mk ================================================ ################################################################################ # # openipmi # ################################################################################ OPENIPMI_VERSION = 2.0.28 OPENIPMI_SITE = https://sourceforge.net/projects/openipmi/files/OpenIPMI%202.0%20Library OPENIPMI_SOURCE = OpenIPMI-$(OPENIPMI_VERSION).tar.gz OPENIPMI_LICENSE = LGPL-2.0+, GPL-2.0+, BSD-3-Clause OPENIPMI_LICENSE_FILES = COPYING.LIB COPYING COPYING.BSD OPENIPMI_DEPENDENCIES = popt ncurses readline host-pkgconf OPENIPMI_INSTALL_STAGING = YES # Patching Makefile.am OPENIPMI_AUTORECONF = YES OPENIPMI_CONF_ENV = ac_cv_path_pkgprog="$(PKG_CONFIG_HOST_BINARY)" OPENIPMI_CONF_OPTS = \ --with-glib=no \ --with-tcl=no \ --with-perl=no \ --with-python=no \ --with-swig=no ifeq ($(BR2_PACKAGE_GDBM),y) OPENIPMI_DEPENDENCIES += gdbm endif ifeq ($(BR2_PACKAGE_OPENSSL),y) OPENIPMI_DEPENDENCIES += openssl OPENIPMI_CONF_OPTS += --with-openssl=yes else OPENIPMI_CONF_OPTS += --with-openssl=no endif ifeq ($(BR2_PACKAGE_NETSNMP),y) OPENIPMI_DEPENDENCIES += netsnmp OPENIPMI_CONF_OPTS += --with-ucdsnmp=yes else OPENIPMI_CONF_OPTS += --with-ucdsnmp=no endif $(eval $(autotools-package)) ================================================ FILE: package/openjdk/Config.in ================================================ config BR2_PACKAGE_HOST_OPENJDK_BIN_ARCH_SUPPORTS bool default y if BR2_HOSTARCH = "x86_64" # Taken from make/autoconf/platform.m4 config BR2_PACKAGE_OPENJDK_ARCH_SUPPORTS bool default y if BR2_aarch64 default y if BR2_arm default y if BR2_i386 || BR2_x86_64 default y if BR2_m68k default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le default y if BR2_sh config BR2_PACKAGE_OPENJDK bool "openjdk" depends on BR2_PACKAGE_HOST_OPENJDK_BIN_ARCH_SUPPORTS depends on BR2_PACKAGE_OPENJDK_ARCH_SUPPORTS depends on !BR2_SOFT_FLOAT depends on !BR2_STATIC_LIBS # glibc depends on BR2_INSTALL_LIBSTDCPP # cups depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib, cups, libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb, C++14 for OpenJDK17 depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_USE_MMU # cups depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_MIXER select BR2_PACKAGE_ALSA_LIB_PCM select BR2_PACKAGE_ALSA_LIB_RAWMIDI select BR2_PACKAGE_ALSA_LIB_SEQ select BR2_PACKAGE_CUPS select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_GIFLIB select BR2_PACKAGE_JPEG select BR2_PACKAGE_LCMS2 select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_XLIB_LIBXRANDR select BR2_PACKAGE_XLIB_LIBXRENDER select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_XLIB_LIBXTST select BR2_PACKAGE_ZLIB help OpenJDK is a free and open-source implementation of the Java Platform. http://openjdk.java.net/ if BR2_PACKAGE_OPENJDK choice prompt "openjdk version" default BR2_PACKAGE_OPENJDK_VERSION_17 help Select the version of OpenJDK you wish to use. config BR2_PACKAGE_OPENJDK_VERSION_11 bool "OpenJDK 11" config BR2_PACKAGE_OPENJDK_VERSION_17 bool "OpenJDK 17" depends on BR2_HOST_GCC_AT_LEAST_4_9 # C++14 comment "OpenJDK 17 needs a host gcc >= 4.9" depends on !BR2_HOST_GCC_AT_LEAST_4_9 # C++14 endchoice config BR2_PACKAGE_OPENJDK_FULL_JDK bool "Build the full JDK" help Install the full JDK instead of just the run time. The full JDK includes several packages used for debugging and development. Some useful tools included with the JDK are: - javaws Command line tool for launching Java Web Start and setting various options. - jcmd: JVM Diagnostic Commands tool: Sends diagnostic command requests to a running Java Virtual Machine. - jinfo Configuration Info for Java: Prints configuration information for a given process or core file or a remote debug server. - jmap Memory Map for Java: Prints shared object memory maps or heap memory details of a given process or core file or a remote debug server. - jsadebugd Serviceability Agent Debug Daemon for Java: Attaches to a process or core file and acts as a debug server. - jstack Stack Trace for Java - Prints a stack trace of threads for a given process or core file or remote debug server. - jstat JVM Statistics Monitoring Tool: Attaches to an instrumented HotSpot Java virtual machine and collects and logs performance statistics as specified by the command line options. - jstatd JVM jstat Daemon - Launches an RMI server application that monitors for the creation and termination of instrumented HotSpot Java virtual machines and provides an interface to allow remote monitoring tools to attach to Java virtual machines running on the local system. Note: While the JDK also comes with several tools which can be used for developing java applications on a target, Buildroot does not support development on a target. Building the full JDK is supported for debugging purposes only. Selecting this option increases the file system by approximately 110M. choice prompt "openjdk variant" default BR2_PACKAGE_OPENJDK_JVM_VARIANT_SERVER if !BR2_powerpc default BR2_PACKAGE_OPENJDK_JVM_VARIANT_ZERO if BR2_powerpc config BR2_PACKAGE_OPENJDK_JVM_VARIANT_CLIENT bool "client" depends on !BR2_powerpc help Quick loading, but slower run-time performance. config BR2_PACKAGE_OPENJDK_JVM_VARIANT_SERVER bool "server" depends on !BR2_powerpc help Slower loading, but faster run-time performance. config BR2_PACKAGE_OPENJDK_JVM_VARIANT_ZERO bool "zero" select BR2_PACKAGE_LIBFFI help A non-assembler variant with wide arch support, however performance is less then client/server. http://openjdk.java.net/projects/zero endchoice endif comment "openjdk needs X.Org" depends on BR2_PACKAGE_OPENJDK_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_OPENJDK_BIN_ARCH_SUPPORTS depends on BR2_USE_MMU depends on !BR2_PACKAGE_XORG7 comment "openjdk needs glibc, and a toolchain w/ wchar, dynamic library, threads, C++, gcc >= 4.9" depends on BR2_USE_MMU depends on BR2_PACKAGE_OPENJDK_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_OPENJDK_BIN_ARCH_SUPPORTS depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 comment "openjdk does not support soft float configurations" depends on BR2_PACKAGE_OPENJDK_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_OPENJDK_BIN_ARCH_SUPPORTS depends on BR2_USE_MMU depends on BR2_SOFT_FLOAT ================================================ FILE: package/openjdk/openjdk.hash ================================================ # Locally computed sha256 8c076203a6f85ab916b3e54de1992bcbcc5ffe580c52b1ac8d52ca7afb9f02d1 openjdk-17.0.1+12.tar.gz sha256 119c6233fe7ff5670c590e2f9d6686ac4d80c97b17065506998b75c547b54f2c openjdk-11.0.13+8.tar.gz sha256 4b9abebc4338048a7c2dc184e9f800deb349366bdf28eb23c2677a77b4c87726 LICENSE ================================================ FILE: package/openjdk/openjdk.mk ================================================ ################################################################################ # # openjdk # ################################################################################ ifeq ($(BR2_PACKAGE_OPENJDK_VERSION_17),y) OPENJDK_VERSION_MAJOR = 17 OPENJDK_VERSION_MINOR = 0.1+12 else OPENJDK_VERSION_MAJOR = 11 OPENJDK_VERSION_MINOR = 0.13+8 endif OPENJDK_VERSION = $(OPENJDK_VERSION_MAJOR).$(OPENJDK_VERSION_MINOR) OPENJDK_SITE = $(call github,openjdk,jdk$(OPENJDK_VERSION_MAJOR)u,jdk-$(OPENJDK_VERSION)) OPENJDK_LICENSE = GPL-2.0+ with exception OPENJDK_LICENSE_FILES = LICENSE OPENJDK_INSTALL_STAGING = YES # OpenJDK requires Alsa, cups, and X11 even for a headless build. # host-zip is needed for the zip executable. OPENJDK_DEPENDENCIES = \ host-gawk \ host-openjdk-bin \ host-pkgconf \ host-zip \ host-zlib \ alsa-lib \ cups \ fontconfig \ giflib \ jpeg \ lcms2 \ libpng \ libusb \ xlib_libXrandr \ xlib_libXrender \ xlib_libXt \ xlib_libXtst \ zlib # JVM variants ifeq ($(BR2_PACKAGE_OPENJDK_JVM_VARIANT_CLIENT),y) OPENJDK_JVM_VARIANT = client endif ifeq ($(BR2_PACKAGE_OPENJDK_JVM_VARIANT_SERVER),y) OPENJDK_JVM_VARIANT = server endif ifeq ($(BR2_PACKAGE_OPENJDK_JVM_VARIANT_ZERO),y) OPENJDK_JVM_VARIANT = zero OPENJDK_DEPENDENCIES += libffi endif ifeq ($(BR2_PACKAGE_OPENJDK_FULL_JDK),y) OPENJDK_VARIANT = jdk OPENJDK_MAKE_TARGET = jdk-image else OPENJDK_VARIANT = jre OPENJDK_MAKE_TARGET = legacy-jre-image endif # OpenJDK installs a file named 'modules' in jre/lib, which gets installed as # /usr/lib/modules. However, with a merged /usr, this conflicts with the # directory named 'modules' installed by the kernel. If OpenJDK gets built # after the kernel, this manifests itself with: "cp: cannot overwrite # directory '/usr/lib/modules with non-directory." OPENJDK_INSTALL_BASE = /usr/lib/jvm # OpenJDK ignores some variables unless passed via the environment. # These variables are PATH, LD, CC, CXX, and CPP. # OpenJDK defaults ld to the ld binary but passes -Xlinker and -z as # arguments during the linking process, which causes compilation failures. # To fix this issue, LD is set to point to gcc. OPENJDK_CONF_ENV = \ PATH=$(BR_PATH) \ CC=$(TARGET_CC) \ CPP=$(TARGET_CPP) \ CXX=$(TARGET_CXX) \ LD=$(TARGET_CC) \ BUILD_SYSROOT_CFLAGS="$(HOST_CFLAGS)" \ BUILD_SYSROOT_LDFLAGS="$(HOST_LDFLAGS)" OPENJDK_CONF_OPTS = \ --disable-full-docs \ --disable-hotspot-gtest \ --disable-manpages \ --disable-warnings-as-errors \ --enable-headless-only \ --enable-openjdk-only \ --enable-unlimited-crypto \ --openjdk-target=$(GNU_TARGET_NAME) \ --with-boot-jdk=$(HOST_OPENJDK_BIN_ROOT_DIR) \ --with-stdc++lib=dynamic \ --with-debug-level=release \ --with-devkit=$(HOST_DIR) \ --with-extra-cflags="$(TARGET_CFLAGS)" \ --with-extra-cxxflags="$(TARGET_CXXFLAGS)" \ --with-extra-ldflags="-Wl,-rpath,$(OPENJDK_INSTALL_BASE)/lib,-rpath,$(OPENJDK_INSTALL_BASE)/lib/$(OPENJDK_JVM_VARIANT)" \ --with-giflib=system \ --with-jobs=$(PARALLEL_JOBS) \ --with-jvm-variants=$(OPENJDK_JVM_VARIANT) \ --with-lcms=system \ --with-libjpeg=system \ --with-libpng=system \ --with-zlib=system \ --with-native-debug-symbols=none \ --without-version-pre \ --with-sysroot=$(STAGING_DIR) \ --with-version-build="$(OPENJDK_VERSION_MAJOR)" \ --with-version-string="$(OPENJDK_VERSION_MAJOR)" # If building for AArch64, use the provided CPU port. ifeq ($(BR2_aarch64),y) OPENJDK_CONF_OPTS += --with-abi-profile=aarch64 endif ifeq ($(BR2_CCACHE),y) OPENJDK_CONF_OPTS += \ --enable-ccache \ --with-ccache-dir=$(BR2_CCACHE_DIR) endif # Autogen and configure are performed in a single step. define OPENJDK_CONFIGURE_CMDS chmod +x $(@D)/configure cd $(@D); $(OPENJDK_CONF_ENV) ./configure autogen $(OPENJDK_CONF_OPTS) endef # Make -jn is unsupported. Instead, set the "--with-jobs=" configure option, # and use $(MAKE1). define OPENJDK_BUILD_CMDS $(TARGET_MAKE_ENV) $(OPENJDK_CONF_ENV) $(MAKE1) -C $(@D) $(OPENJDK_MAKE_TARGET) endef # Calling make install always builds and installs the JDK instead of the JRE, # which makes manual installation necessary. define OPENJDK_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)$(OPENJDK_INSTALL_BASE) cp -dpfr $(@D)/build/linux-*-release/images/$(OPENJDK_VARIANT)/* \ $(TARGET_DIR)$(OPENJDK_INSTALL_BASE)/ cd $(TARGET_DIR)/usr/bin && ln -snf ../..$(OPENJDK_INSTALL_BASE)/bin/* . endef define OPENJDK_INSTALL_STAGING_CMDS mkdir -p $(STAGING_DIR)/usr/include/jvm cp -dpfr $(@D)/build/linux-*-release/jdk/include/* \ $(STAGING_DIR)/usr/include/jvm endef # Demos and includes are not needed on the target ifeq ($(BR2_PACKAGE_OPENJDK_FULL_JDK),y) define OPENJDK_REMOVE_UNEEDED_JDK_DIRECTORIES $(RM) -r $(TARGET_DIR)$(OPENJDK_INSTALL_BASE)/include/ $(RM) -r $(TARGET_DIR)$(OPENJDK_INSTALL_BASE)/demo/ endef OPENJDK_TARGET_FINALIZE_HOOKS += OPENJDK_REMOVE_UNEEDED_JDK_DIRECTORIES endif $(eval $(generic-package)) ================================================ FILE: package/openjdk-bin/openjdk-bin.hash ================================================ # https://github.com/adoptium/temurin17-binaries/releases sha256 6ea18c276dcbb8522feeebcfc3a4b5cb7c7e7368ba8590d3326c6c3efc5448b6 OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz # From https://github.com/adoptium/temurin11-binaries/releases sha256 3b1c0c34be4c894e64135a454f2d5aaa4bd10aea04ec2fa0c0efe6bb26528e30 OpenJDK11U-jdk_x64_linux_hotspot_11.0.13_8.tar.gz # Locally calculated sha256 4b9abebc4338048a7c2dc184e9f800deb349366bdf28eb23c2677a77b4c87726 legal/java.prefs/LICENSE sha256 a44eb7b5caf5534c6ef536b21edb40b4d6babf91bf97d9d45596868618b2c6fb legal/java.prefs/ASSEMBLY_EXCEPTION ================================================ FILE: package/openjdk-bin/openjdk-bin.mk ================================================ ################################################################################ # # host-openjdk-bin # ################################################################################ ifeq ($(BR2_PACKAGE_OPENJDK_VERSION_17),y) HOST_OPENJDK_BIN_VERSION_MAJOR = 17 HOST_OPENJDK_BIN_VERSION_MINOR = 0.1_12 else HOST_OPENJDK_BIN_VERSION_MAJOR = 11 HOST_OPENJDK_BIN_VERSION_MINOR = 0.13_8 endif HOST_OPENJDK_BIN_VERSION = $(HOST_OPENJDK_BIN_VERSION_MAJOR).$(HOST_OPENJDK_BIN_VERSION_MINOR) HOST_OPENJDK_BIN_SOURCE = OpenJDK$(HOST_OPENJDK_BIN_VERSION_MAJOR)U-jdk_x64_linux_hotspot_$(HOST_OPENJDK_BIN_VERSION).tar.gz HOST_OPENJDK_BIN_SITE = https://github.com/adoptium/temurin$(HOST_OPENJDK_BIN_VERSION_MAJOR)-binaries/releases/download/jdk-$(subst _,%2B,$(HOST_OPENJDK_BIN_VERSION)) HOST_OPENJDK_BIN_LICENSE = GPL-2.0+ with exception HOST_OPENJDK_BIN_LICENSE_FILES = legal/java.prefs/LICENSE legal/java.prefs/ASSEMBLY_EXCEPTION HOST_OPENJDK_BIN_ROOT_DIR = $(HOST_DIR)/usr/lib/jvm # unpack200 has an invalid RPATH and relies on libzlib. When # host-libzlib is installed on the system, the error "ERROR: package # host-libzlib installs executables without proper RPATH: will occur. # Because unpack200 is a deprecated tool, removing it to fix this # issue is safe. define HOST_OPENJDK_BIN_INSTALL_CMDS mkdir -p $(HOST_OPENJDK_BIN_ROOT_DIR) cp -dpfr $(@D)/* $(HOST_OPENJDK_BIN_ROOT_DIR) $(RM) -f $(HOST_OPENJDK_BIN_ROOT_DIR)/bin/unpack200 endef $(eval $(host-generic-package)) # variables used by other packages JAVAC = $(HOST_OPENJDK_BIN_ROOT_DIR)/bin/javac ================================================ FILE: package/openjpeg/0001-thirdparty-tiff-append-flags-found-by-pkg-config-if-.patch ================================================ From 38f50c7d9ad3ba06b64583045665203afb53cbd9 Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Sun, 6 Nov 2016 16:29:08 +0100 Subject: [PATCH] thirdparty: tiff: append flags found by pkg-config if available This change allows to get all required CFLAGS/LDFLAGS in case of static only build. This build issue [1] was triggered by the Buildroot farms. [1] http://autobuild.buildroot.net/results/d0d/d0d22727311d6300e0e400728126170407bfd699/build-end.log Signed-off-by: Samuel Martin --- thirdparty/CMakeLists.txt | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index cb24b43b58e2..cd6a5e1391b0 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -1,5 +1,9 @@ # 3rd party libs +if(NOT BUILD_THIRDPARTY) + include(FindPkgConfig) +endif(NOT BUILD_THIRDPARTY) + #------------ # Try to find lib Z if(BUILD_THIRDPARTY) @@ -36,6 +40,9 @@ if(BUILD_THIRDPARTY) else(BUILD_THIRDPARTY) if(ZLIB_FOUND) find_package(PNG) + # Static only build: + # it is not necessary to invoke pkg_check_module on libpng, because libpng + # only depends on zlib, which is already checked. if(PNG_FOUND) message(STATUS "Your system seems to have a PNG lib available, we will use it") set(OPJ_HAVE_PNG_H 1 PARENT_SCOPE) @@ -66,12 +73,24 @@ if(BUILD_THIRDPARTY) set(OPJ_HAVE_LIBTIFF 1 PARENT_SCOPE) else(BUILD_THIRDPARTY) find_package(TIFF) + # Static only build: + # it is necessary to invoke pkg_check_module on libtiff since it may have + # several other dependencies not declared by its cmake module, but they are + # in the its pkgconfig module. + if(PKG_CONFIG_FOUND) + foreach(pc_tiff_module tiff tiff3 tiff4 tiff-3 tiff-4 libtiff libtiff3 libtiff4 libtiff-3 libtiff-4) + pkg_check_modules(PC_TIFF QUIET ${pc_tiff_module}) + if(PC_TIFF_FOUND) + break() + endif(PC_TIFF_FOUND) + endforeach() + endif(PKG_CONFIG_FOUND) if(TIFF_FOUND) message(STATUS "Your system seems to have a TIFF lib available, we will use it") set(OPJ_HAVE_TIFF_H 1 PARENT_SCOPE) set(OPJ_HAVE_LIBTIFF 1 PARENT_SCOPE) - set(TIFF_LIBNAME ${TIFF_LIBRARIES} PARENT_SCOPE) - set(TIFF_INCLUDE_DIRNAME ${TIFF_INCLUDE_DIR} PARENT_SCOPE) + set(TIFF_LIBNAME ${TIFF_LIBRARIES} ${PC_TIFF_STATIC_LIBRARIES} PARENT_SCOPE) + set(TIFF_INCLUDE_DIRNAME ${TIFF_INCLUDE_DIR} ${PC_TIFF_STATIC_INCLUDE_DIRS} PARENT_SCOPE) else(TIFF_FOUND) # not found set(OPJ_HAVE_TIFF_H 0 PARENT_SCOPE) set(OPJ_HAVE_LIBTIFF 0 PARENT_SCOPE) -- 2.10.2 ================================================ FILE: package/openjpeg/0002-thirdparty-lcms2-append-flags-found-by-pkg-config-if.patch ================================================ From 226daa77ea5a35da306f9af2548f3e2c9e79f577 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Fri, 11 Nov 2016 23:35:13 +0100 Subject: [PATCH] thirdparty: lcms2: append flags found by pkg-config if available This change allows to get all required CFLAGS/LDFLAGS in case of static only build. Fixes a buildroot build failure (see [1], [2] and [3]). [1] http://autobuild.buildroot.net/results/5ce/5cee20afd8bef5268832cddcb3a5270746be7a57 [2] http://lists.busybox.net/pipermail/buildroot/2016-November/177187.html [3] http://lists.busybox.net/pipermail/buildroot/2016-November/177188.html Signed-off-by: Peter Seiderer --- thirdparty/CMakeLists.txt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index cd6a5e1391b0..a3a8494d89b1 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -113,12 +113,19 @@ if( BUILD_THIRDPARTY) set(OPJ_HAVE_LIBLCMS2 1 PARENT_SCOPE) else(BUILD_THIRDPARTY) find_package(LCMS2) + # Static only build: + # it is necessary to invoke pkg_check_module on lcms2 since it may have + # several other dependencies not declared by its cmake module, but they are + # in the its pkgconfig module. + if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_LCMS2 QUIET lcms2) + endif(PKG_CONFIG_FOUND) if(LCMS2_FOUND) message(STATUS "Your system seems to have a LCMS2 lib available, we will use it") set(OPJ_HAVE_LCMS2_H 1 PARENT_SCOPE) set(OPJ_HAVE_LIBLCMS2 1 PARENT_SCOPE) - set(LCMS_LIBNAME ${LCMS2_LIBRARIES} PARENT_SCOPE) - set(LCMS_INCLUDE_DIRNAME ${LCMS2_INCLUDE_DIRS} PARENT_SCOPE) + set(LCMS_LIBNAME ${LCMS2_LIBRARIES} ${PC_LCMS2_STATIC_LIBRARIES} PARENT_SCOPE) + set(LCMS_INCLUDE_DIRNAME ${LCMS2_INCLUDE_DIRS} ${PC_LCMS2_STATIC_INCLUDE_DIRS} PARENT_SCOPE) else(LCMS2_FOUND) # not found lcms2 # try to find LCMS find_package(LCMS) -- 2.10.2 ================================================ FILE: package/openjpeg/0003-CMakeLists.txt-Don-t-require-a-C-compiler.patch ================================================ From 786ddcd1475adc6193c59d53e0d8ed2c502f2b00 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Sat, 23 Sep 2017 18:49:31 +0200 Subject: [PATCH] CMakeLists.txt: Don't require a C++ compiler By default, CMake assumes that the project is using both C and C++. By explicitly passing 'C' as argument of the project() macro, we tell CMake that only C is used, which prevents CMake from erroring out if a C++ compiler doesn't exist. Submitted upstream: https://github.com/uclouvain/openjpeg/pull/1027 Signed-off-by: Peter Korsgaard --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ec42bc99..d80eb48b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,7 @@ endif() #string(TOLOWER ${OPENJPEG_NAMESPACE} OPENJPEG_LIBRARY_NAME) set(OPENJPEG_LIBRARY_NAME openjp2) -project(${OPENJPEG_NAMESPACE}) +project(${OPENJPEG_NAMESPACE} C) # Do full dependency headers. include_regular_expression("^.*$") -- 2.11.0 ================================================ FILE: package/openjpeg/0004-Revert-Use-INC_DIR-for-OPENJPEG_INCLUDE_DIRS-fixes-u.patch ================================================ From 14f4c27e7c91f745a1dda9991b5deea3cbef2072 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 7 Jan 2021 14:09:50 +0100 Subject: [PATCH] Revert "Use INC_DIR for OPENJPEG_INCLUDE_DIRS (fixes uclouvain#1174)" This reverts commit 65586374d639cfc0104419992f9022174b412594 which breaks cross-compilation of poppler under buildroot (because of DESTDIR usage). Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/uclouvain/openjpeg/pull/1321] --- cmake/OpenJPEGConfig.cmake.in | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmake/OpenJPEGConfig.cmake.in b/cmake/OpenJPEGConfig.cmake.in index 8a726697..2925108a 100644 --- a/cmake/OpenJPEGConfig.cmake.in +++ b/cmake/OpenJPEGConfig.cmake.in @@ -27,8 +27,12 @@ if(EXISTS ${SELF_DIR}/OpenJPEGTargets.cmake) # This is an install tree include(${SELF_DIR}/OpenJPEGTargets.cmake) + # We find a relative path from the PKG directory to header files. + set(PKG_DIR "@CMAKE_INSTALL_PREFIX@/@OPENJPEG_INSTALL_PACKAGE_DIR@") set(INC_DIR "@CMAKE_INSTALL_PREFIX@/@OPENJPEG_INSTALL_INCLUDE_DIR@") - get_filename_component(OPENJPEG_INCLUDE_DIRS "${INC_DIR}" ABSOLUTE) + file(RELATIVE_PATH PKG_TO_INC_RPATH "${PKG_DIR}" "${INC_DIR}") + + get_filename_component(OPENJPEG_INCLUDE_DIRS "${SELF_DIR}/${PKG_TO_INC_RPATH}" ABSOLUTE) else() if(EXISTS ${SELF_DIR}/OpenJPEGExports.cmake) -- 2.29.2 ================================================ FILE: package/openjpeg/Config.in ================================================ config BR2_PACKAGE_OPENJPEG bool "openjpeg" help The OpenJPEG library is an open-source JPEG 2000 codec written in C. http://www.openjpeg.org ================================================ FILE: package/openjpeg/openjpeg.hash ================================================ # Locally computed: sha256 8702ba68b442657f11aaeb2b338443ca8d5fb95b0d845757968a7be31ef7f16d openjpeg-2.4.0.tar.gz sha256 a6af136f3e15038a666b61f376612a07d9a4e48cb7c01adbf3e33b3f14ab49b6 LICENSE ================================================ FILE: package/openjpeg/openjpeg.mk ================================================ ################################################################################ # # openjpeg # ################################################################################ OPENJPEG_VERSION = 2.4.0 OPENJPEG_SITE = $(call github,uclouvain,openjpeg,v$(OPENJPEG_VERSION)) OPENJPEG_LICENSE = BSD-2-Clause OPENJPEG_LICENSE_FILES = LICENSE OPENJPEG_CPE_ID_VENDOR = uclouvain OPENJPEG_INSTALL_STAGING = YES 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_TOOLCHAIN_HAS_THREADS),y) OPENJPEG_CONF_OPTS += -DOPJ_USE_THREAD=ON else OPENJPEG_CONF_OPTS += -DOPJ_USE_THREAD=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/openlayers/Config.in ================================================ config BR2_PACKAGE_OPENLAYERS bool "openlayers" help OpenLayers makes it easy to put a dynamic map in any web page. It can display map tiles, vector data and markers loaded from any source. OpenLayers has been developed to further the use of geographic information of all kinds. It is completely free, Open Source JavaScript, released under the 2-clause BSD License (also known as the FreeBSD). https://openlayers.org ================================================ FILE: package/openlayers/openlayers.hash ================================================ # Locally computed: sha256 07d06f17f44399d86ddeac8d8000d39ff9db503257f77c59e5743d5934463623 v6.8.1-dist.zip ================================================ FILE: package/openlayers/openlayers.mk ================================================ ################################################################################ # # openlayers # ################################################################################ OPENLAYERS_VERSION = 6.8.1 OPENLAYERS_SOURCE = v$(OPENLAYERS_VERSION)-dist.zip OPENLAYERS_SITE = https://github.com/openlayers/openlayers/releases/download/v$(OPENLAYERS_VERSION) OPENLAYERS_LICENSE = BSD-2-Clause # There's no separate license file in the archive, only minified files. define OPENLAYERS_EXTRACT_CMDS unzip $(OPENLAYERS_DL_DIR)/$(OPENLAYERS_SOURCE) -d $(@D) mv $(@D)/v$(OPENLAYERS_VERSION)-dist/* $(@D) rmdir $(@D)/v$(OPENLAYERS_VERSION)-dist/ endef define OPENLAYERS_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0644 $(@D)/ol.css $(TARGET_DIR)/var/www/ol.css $(INSTALL) -D -m 0644 $(@D)/ol.js $(TARGET_DIR)/var/www/ol.js endef $(eval $(generic-package)) ================================================ FILE: package/openldap/0001-fix_cross_strip.patch ================================================ Fix stripping when cross-compiling Probably-Signed-off-by: Dave Bender [yann.morin.1998@free.fr: patch was made by Dave, but he forgot his SoB line, so I added it] Signed-off-by: "Yann E. MORIN" diff -rupN openldap-2.4.40/build/shtool openldap-2.4.40-br/build/shtool --- openldap-2.4.40/build/shtool 2014-09-18 21:48:49.000000000 -0400 +++ openldap-2.4.40-br/build/shtool 2015-01-21 13:21:35.689829372 -0500 @@ -981,7 +981,7 @@ install ) if [ ".$opt_t" = .yes ]; then echo "strip $dsttmp" 1>&2 fi - strip $dsttmp || shtool_exit $? + $STRIP $dsttmp || shtool_exit $? fi if [ ".$opt_o" != . ]; then if [ ".$opt_t" = .yes ]; then diff -rupN openldap-2.4.40/build/top.mk openldap-2.4.40-br/build/top.mk --- openldap-2.4.40/build/top.mk 2014-09-18 21:48:49.000000000 -0400 +++ openldap-2.4.40-br/build/top.mk 2015-01-21 13:23:41.027810097 -0500 @@ -59,7 +59,7 @@ INSTALL_PROGRAM = $(INSTALL) INSTALL_DATA = $(INSTALL) -m 644 INSTALL_SCRIPT = $(INSTALL) -STRIP = -s +STRIP_OPTS = -s LINT = lint 5LINT = 5lint diff -rupN openldap-2.4.40/clients/tools/Makefile.in openldap-2.4.40-br/clients/tools/Makefile.in --- openldap-2.4.40/clients/tools/Makefile.in 2014-09-18 21:48:49.000000000 -0400 +++ openldap-2.4.40-br/clients/tools/Makefile.in 2015-01-21 13:23:35.827727946 -0500 @@ -120,7 +120,7 @@ install-local: FORCE -$(MKDIR) $(DESTDIR)$(bindir) @( \ for prg in $(PROGRAMS); do \ - $(LTINSTALL) $(INSTALLFLAGS) $(STRIP) -m 755 $$prg$(EXEEXT) \ + $(LTINSTALL) $(INSTALLFLAGS) $(STRIP_OPTS) -m 755 $$prg$(EXEEXT) \ $(DESTDIR)$(bindir); \ done \ ) diff -rupN openldap-2.4.40/configure.in openldap-2.4.40-br/configure.in --- openldap-2.4.40/configure.in 2014-09-18 21:48:49.000000000 -0400 +++ openldap-2.4.40-br/configure.in 2015-01-16 15:50:48.874816786 -0500 @@ -668,6 +668,15 @@ if test -z "${AR}"; then fi fi +if test -z "${STRIP}"; then + AC_CHECK_PROGS(STRIP,strip,missing) + + if test "${STRIP}" = "missing" ; then + AC_MSG_ERROR([Unable to locate strip(1) or suitable replacement. Check PATH or set STRIP.]) + fi +fi + + AC_LIBTOOL_WIN32_DLL AC_LIBTOOL_DLOPEN AC_PROG_LIBTOOL diff -rupN openldap-2.4.40/servers/slapd/Makefile.in openldap-2.4.40-br/servers/slapd/Makefile.in --- openldap-2.4.40/servers/slapd/Makefile.in 2015-01-16 15:04:52.507473256 -0500 +++ openldap-2.4.40-br/servers/slapd/Makefile.in 2015-01-16 15:05:02.299627229 -0500 @@ -378,7 +378,7 @@ install-local-srv: install-slapd install install-slapd: FORCE -$(MKDIR) $(DESTDIR)$(libexecdir) -$(MKDIR) $(DESTDIR)$(localstatedir)/run - $(LTINSTALL) $(INSTALLFLAGS) $(STRIP) -m 755 \ + $(LTINSTALL) $(INSTALLFLAGS) $(STRIP_OPTS) -m 755 \ slapd$(EXEEXT) $(DESTDIR)$(libexecdir) @for i in $(SUBDIRS); do \ if test -d $$i && test -f $$i/Makefile ; then \ ================================================ FILE: package/openldap/0002-fix-bignum.patch ================================================ configure: correctly detect bignum Building with bignum is currently not possible, since we're checking ol_with_tls against a value it is never assigned in any case. Since bignum is from openssl, and openssl is the preferred TLS implementation, if the bignum headers are found, it means we do have TLS and it is opensl. So, keep the check for the bignum header, but check against ol_link_tls which means that openssl is enabled when we find the bignum headers. Signed-off-by: "Yann E. MORIN" diff -durN openldap-2.4.40.orig/configure openldap-2.4.40/configure --- openldap-2.4.40.orig/configure 2014-09-19 03:48:49.000000000 +0200 +++ openldap-2.4.40/configure 2015-01-25 18:44:54.216879362 +0100 @@ -23431,7 +23431,7 @@ if test "$ac_cv_header_openssl_bn_h" = "yes" && test "$ac_cv_header_openssl_crypto_h" = "yes" && - test "$ol_with_tls" = "found" ; then + test "$ol_link_tls" = "yes" ; then ol_with_mp=bignum $as_echo "#define USE_MP_BIGNUM 1" >>confdefs.h diff -durN openldap-2.4.40.orig/configure.in openldap-2.4.40/configure.in --- openldap-2.4.40.orig/configure.in 2014-09-19 03:48:49.000000000 +0200 +++ openldap-2.4.40/configure.in 2015-01-25 18:44:37.628676446 +0100 @@ -2383,7 +2383,7 @@ AC_CHECK_HEADERS(openssl/crypto.h) if test "$ac_cv_header_openssl_bn_h" = "yes" && test "$ac_cv_header_openssl_crypto_h" = "yes" && - test "$ol_with_tls" = "found" ; then + test "$ol_link_tls" = "yes" ; then ol_with_mp=bignum AC_DEFINE(USE_MP_BIGNUM,1,[define to use OpenSSL BIGNUM for MP]) elif test $ol_with_mp = bignum ; then ================================================ FILE: package/openldap/0003-disable-docs.patch ================================================ doc: do not build Building the documentation fails on some autobuilders, so disable it as we're not interested in it. Fixes: http://autobuild.buildroot.org/results/1dc/1dc17a54e57130bffd19d360c9a7faae440b8916/ http://autobuild.buildroot.org/results/407/40797597024cbb9054fdda8bdf4d011bba966b06/ Signed-off-by: "Yann E. MORIN" diff -durN openldap-2.4.40.orig/Makefile.in openldap-2.4.40/Makefile.in --- openldap-2.4.40.orig/Makefile.in 2014-09-19 03:48:49.000000000 +0200 +++ openldap-2.4.40/Makefile.in 2015-01-31 23:12:54.347678913 +0100 @@ -13,7 +13,7 @@ ## top-level directory of the distribution or, alternatively, at ## . -SUBDIRS= include libraries clients servers tests doc +SUBDIRS= include libraries clients servers tests CLEANDIRS= INSTALLDIRS= ================================================ FILE: package/openldap/0004-revert-ITS-3977-fix-libtool-static-behavior-to-match.patch ================================================ From 88a0442a0f01076914af80db40571fd52914ffa3 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 28 Mar 2019 23:52:38 +0100 Subject: [PATCH] revert ITS#3977, fix libtool -static behavior to match docs Revert https://github.com/openldap/openldap/commit/7b6a088a2590fdad10286d10050b769e48554e13 as this patch does not work with our buildroot patches Fixes: - http://autobuild.buildroot.org/results/ab4f85fd21cacfaef6b0b43a38da6a4a1d32ecb6 Signed-off-by: Fabrice Fontaine [Upstream status: Not upstreamable] --- build/ltmain.sh | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/build/ltmain.sh b/build/ltmain.sh index 1d079b91e..996dc7dad 100755 --- a/build/ltmain.sh +++ b/build/ltmain.sh @@ -1190,15 +1190,14 @@ EOF if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi - prefer_static_libs=yes else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi - prefer_static_libs=built fi build_libtool_libs=no build_old_libs=yes + prefer_static_libs=yes break ;; esac @@ -2602,12 +2601,8 @@ EOF fi link_static=no # Whether the deplib will be linked statically - use_static_libs=$prefer_static_libs - if test "$use_static_libs" = built && test "$installed" = yes ; then - use_static_libs=no - fi if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then + { test "$prefer_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes -- 2.14.1 ================================================ FILE: package/openldap/Config.in ================================================ config BR2_PACKAGE_OPENLDAP bool "openldap" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # needs fork() help OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol. This only installs client-side support. https://www.openldap.org/ if BR2_PACKAGE_OPENLDAP config BR2_PACKAGE_OPENLDAP_CLIENTS bool "openldap client binaries" default y help Install the OpenLDAP client tools (ldapadd, ldapcompare, ldapdelete, ldapexop, ldapmodify, ldapmodrdn, ldappasswd, ldapsearch, ldapurl, ldapwhoami) endif comment "openldap needs a toolchain w/ wchar" depends on BR2_USE_MMU # needs fork() depends on !BR2_USE_WCHAR ================================================ FILE: package/openldap/openldap.hash ================================================ # From https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.59.md5 md5 6036a03b3a67b4a1fe1246e0a2c7265a openldap-2.4.59.tgz # From https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.59.sha1 sha1 b154d06bbf40fafafb34fffc4b116946d931efef openldap-2.4.59.tgz # Locally computed sha256 99f37d6747d88206c470067eda624d5e48c1011e943ec0ab217bae8712e22f34 openldap-2.4.59.tgz sha256 310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569 LICENSE ================================================ FILE: package/openldap/openldap.mk ================================================ ################################################################################ # # openldap # ################################################################################ OPENLDAP_VERSION = 2.4.59 OPENLDAP_SOURCE = openldap-$(OPENLDAP_VERSION).tgz OPENLDAP_SITE = https://www.openldap.org/software/download/OpenLDAP/openldap-release OPENLDAP_LICENSE = OpenLDAP Public License OPENLDAP_LICENSE_FILES = LICENSE OPENLDAP_CPE_ID_VENDOR = openldap OPENLDAP_SELINUX_MODULES = ldap OPENLDAP_INSTALL_STAGING = YES OPENLDAP_DEPENDENCIES = host-pkgconf ifeq ($(BR2_PACKAGE_OPENSSL),y) OPENLDAP_TLS = openssl OPENLDAP_DEPENDENCIES += openssl else ifeq ($(BR2_PACKAGE_GNUTLS),y) OPENLDAP_TLS = gnutls OPENLDAP_DEPENDENCIES += gnutls else ifeq ($(BR2_PACKAGE_LIBNSS),y) OPENLDAP_TLS = moznss OPENLDAP_DEPENDENCIES += libnss OPENLDAP_CPPFLAGS = \ -I$(STAGING_DIR)/usr/include/nss \ -I$(STAGING_DIR)/usr/include/nspr else OPENLDAP_TLS = no endif ifeq ($(BR2_PACKAGE_OPENSSL),y) OPENLDAP_MP = bignum OPENLDAP_DEPENDENCIES += openssl OPENLDAP_CONF_ENV = LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libssl libcrypto`" else ifeq ($(BR2_PACKAGE_GMP),y) OPENLDAP_MP = gmp OPENLDAP_DEPENDENCIES += gmp else OPENLDAP_MP = longlong endif OPENLDAP_CONF_ENV += ac_cv_func_memcmp_working=yes OPENLDAP_CONF_OPTS += \ --enable-syslog \ --disable-proctitle \ --disable-slapd \ --with-yielding-select \ --sysconfdir=/etc \ --enable-dynamic=$(if $(BR2_STATIC_LIBS),no,yes) \ --with-tls=$(OPENLDAP_TLS) \ --with-mp=$(OPENLDAP_MP) \ CPPFLAGS="$(TARGET_CPPFLAGS) $(OPENLDAP_CPPFLAGS)" # Somehow, ${STRIP} does not percolates through to the shtool script # used to install the executables; thus, that script tries to run the # executable it is supposed to install, resulting in an error. OPENLDAP_MAKE_ENV = STRIP="$(TARGET_STRIP)" ifeq ($(BR2_PACKAGE_OPENLDAP_CLIENTS),) OPENLDAP_CLIENTS = \ ldapurl ldapexop ldapcompare ldapwhoami \ ldappasswd ldapmodrdn ldapdelete ldapmodify \ ldapsearch define OPENLDAP_REMOVE_CLIENTS $(RM) -f $(foreach p,$(OPENLDAP_CLIENTS),$(TARGET_DIR)/usr/bin/$(p)) $(RM) -rf $(TARGET_DIR)/etc/openldap endef OPENLDAP_POST_INSTALL_TARGET_HOOKS += OPENLDAP_REMOVE_CLIENTS endif $(eval $(autotools-package)) ================================================ FILE: package/openmpi/Config.in ================================================ 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/ ================================================ FILE: package/openmpi/openmpi-mips32-fortran.cache ================================================ 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 ompi_cv_fortran_alignment_type_test_mpi_handle_=4 ================================================ FILE: package/openmpi/openmpi-mips64-fortran.cache ================================================ 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 ompi_cv_fortran_alignment_type_test_mpi_handle_=4 ================================================ FILE: package/openmpi/openmpi.hash ================================================ # From: https://www.open-mpi.org/software/ompi/v4.0/ md5 e3da67df1e968c8798827e0e5fe9a510 openmpi-4.0.0.tar.bz2 sha1 fee1d0287abfb150bae16957de342752c9bdd4e8 openmpi-4.0.0.tar.bz2 # Locally computed sha256 2f0b8a36cfeb7354b45dda3c5425ef8393c9b04115570b615213faaa3f97366b openmpi-4.0.0.tar.bz2 sha256 8298a80ed5f09cfd007bae1c0e7d67d1c2810c6389876778dad070c31a691dac LICENSE ================================================ FILE: package/openmpi/openmpi.mk ================================================ ################################################################################ # # openmpi # ################################################################################ OPENMPI_VERSION_MAJOR = 4.0 OPENMPI_VERSION = $(OPENMPI_VERSION_MAJOR).0 OPENMPI_SITE = https://www.open-mpi.org/software/ompi/v$(OPENMPI_VERSION_MAJOR)/downloads OPENMPI_SOURCE = openmpi-$(OPENMPI_VERSION).tar.bz2 OPENMPI_LICENSE = BSD-3-Clause OPENMPI_LICENSE_FILES = LICENSE OPENMPI_INSTALL_STAGING = YES # 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 OPENMPI_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) OPENMPI_CFLAGS += -O0 endif OPENMPI_CONF_ENV = CFLAGS="$(OPENMPI_CFLAGS)" $(eval $(autotools-package)) ================================================ FILE: package/openntpd/Config.in ================================================ config BR2_PACKAGE_OPENNTPD bool "openntpd" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_USE_MMU # fork () depends on !BR2_PACKAGE_NTP # conflicting binaries help OpenNTPD is an easy to use implementation of the Network Time Protocol. It provides the ability to sync the local clock to remote NTP servers and can act as NTP server itself, redistributing the local clock. It just works. Crypto support is available if the LibreSSL library is enabled. http://www.openntpd.org/ comment "openntpd needs a toolchain w/ NPTL" depends on BR2_USE_MMU depends on !BR2_PACKAGE_NTP depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL ================================================ FILE: package/openntpd/S49ntp ================================================ #!/bin/sh [ -f /etc/ntpd.conf ] || exit 0 case "$1" in start) printf "Starting openntpd: " start-stop-daemon -S -x /usr/sbin/ntpd -- -s -p /run/ntpd.pid [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping openntpd: " start-stop-daemon -K -q -p /run/ntpd.pid [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart) "$0" stop sleep 1 "$0" start ;; *) echo "Usage: $0 {start|stop|restart}" ;; esac ================================================ FILE: package/openntpd/ntpd.service ================================================ [Unit] Description=OpenNTP Daemon After=network.target Conflicts=systemd-timesyncd.service [Service] Type=simple # Turn off DNSSEC validation for hostname look-ups, since those need the # correct time to work, but we likely won't acquire that without NTP. Let's # break this chicken-and-egg cycle here. Environment=SYSTEMD_NSS_RESOLVE_VALIDATE=0 ExecStart=/usr/sbin/ntpd -s -d [Install] WantedBy=multi-user.target ================================================ FILE: package/openntpd/openntpd.hash ================================================ # from http://ftp.openbsd.org/pub/OpenBSD/OpenNTPD/SHA256 sha256 8582db838a399153d4a17f2a76518b638cc3020f58028575bf54127518f55a46 openntpd-6.8p1.tar.gz # Locally computed sha256 6c1822ee950652c12bb3773849db18794f62c63452a70d018edf23e8cba71839 COPYING ================================================ FILE: package/openntpd/openntpd.mk ================================================ ################################################################################ # # openntpd # ################################################################################ OPENNTPD_VERSION = 6.8p1 OPENNTPD_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenNTPD OPENNTPD_LICENSE = MIT-like, BSD-2-Clause, BSD-3-Clause OPENNTPD_LICENSE_FILES = COPYING OPENNTPD_CPE_ID_VENDOR = openntpd OPENNTPD_DEPENDENCIES = host-bison # Need to autoreconf for our libtool patch to apply properly OPENNTPD_AUTORECONF = YES # Openntpd searches for tls_config_set_ca_mem which is only available # in LibreSSL ifeq ($(BR2_PACKAGE_LIBRESSL),y) OPENNTPD_DEPENDENCIES += openssl endif # openntpd uses pthread functions for arc4random emulation but forgets # to use -pthread OPENNTPD_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -pthread" define OPENNTPD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/openntpd/ntpd.service \ $(TARGET_DIR)/usr/lib/systemd/system/ntpd.service endef define OPENNTPD_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/openntpd/S49ntp \ $(TARGET_DIR)/etc/init.d/S49ntp endef define OPENNTPD_USERS _ntp -1 _ntp -1 * - - - Network Time Protocol daemon endef $(eval $(autotools-package)) ================================================ FILE: package/openobex/Config.in ================================================ config BR2_PACKAGE_OPENOBEX bool "openobex" help Free open source implementation of the Object Exchange (OBEX) protocol. http://sourceforge.net/projects/openobex ================================================ FILE: package/openobex/openobex.hash ================================================ # From http://sourceforge.net/projects/openobex/files/openobex/1.7.2/ sha1 4a5098a62889134cbd2b54997e7ff3e959e601e6 openobex-1.7.2-Source.tar.gz md5 f6e0b6cb7dcfd731460a7e9a91429a3a openobex-1.7.2-Source.tar.gz # License files, locally calculated sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING.LIB ================================================ FILE: package/openobex/openobex.mk ================================================ ################################################################################ # # openobex # ################################################################################ OPENOBEX_VERSION = 1.7.2 OPENOBEX_SITE = http://downloads.sourceforge.net/project/openobex/openobex/$(OPENOBEX_VERSION) OPENOBEX_SOURCE = openobex-$(OPENOBEX_VERSION)-Source.tar.gz # Libraries seems to be released under LGPL-2.1+, # while other material is under GPL-2.0+. OPENOBEX_LICENSE = GPL-2.0+/LGPL-2.1+ OPENOBEX_LICENSE_FILES = COPYING COPYING.LIB OPENOBEX_DEPENDENCIES = host-pkgconf OPENOBEX_INSTALL_STAGING = YES OPENOBEX_CONF_OPTS = -DBUILD_DOCUMENTATION=OFF ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS),y) OPENOBEX_DEPENDENCIES += bluez5_utils endif ifeq ($(BR2_PACKAGE_LIBUSB),y) OPENOBEX_DEPENDENCIES += libusb endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) OPENOBEX_DEPENDENCIES += udev endif $(eval $(cmake-package)) ================================================ FILE: package/openocd/0001-configure-enable-build-on-uclinux.patch ================================================ From 11ea78c4d253bb90296e2dd8c3f7fbf59ba397b6 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Thu, 17 Aug 2017 06:30:31 +0200 Subject: [PATCH] configure: enable build on uclinux Signed-off-by: Bernd Kuhls --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index c680bda7..1a7980a0 100644 --- a/configure.ac +++ b/configure.ac @@ -327,7 +327,7 @@ AC_ARG_ENABLE([sysfsgpio], [build_sysfsgpio=$enableval], [build_sysfsgpio=no]) AS_CASE([$host_os], - [linux*], [], + [linux*|uclinux*], [], [ AS_IF([test "x$build_sysfsgpio" = "xyes"], [ AC_MSG_ERROR([sysfsgpio is only available on linux]) -- 2.11.0 ================================================ FILE: package/openocd/0002-configure.ac-fix-autoreconf-with-autoconf-2.70.patch ================================================ From 3106d16bbc45de52bc0a8b638a84aa9d7c9abc46 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 6 Oct 2021 17:43:16 +0200 Subject: [PATCH] configure.ac: fix autoreconf with autoconf >= 2.70 Fix the following build failure raised with openocd and autoconf >= 2.70 due to http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commit;h=aba75f6d4a9c875a9d5d90a07c6b3678db66a4bf: >>> openocd 0.11.0 Autoreconfiguring autoreconf: error: configure.ac: AC_INIT not found; not an autoconf script? Fixes: - http://autobuild.buildroot.org/results/5fb7aa28703aff61ba850eac11bd35c8804528ae Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/msteveb/jimtcl/pull/209] --- configure.ac | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jimtcl/configure.ac b/jimtcl/configure.ac index b70b5d8..8c45114 100644 --- a/jimtcl/configure.ac +++ b/jimtcl/configure.ac @@ -1 +1,3 @@ # Dummy configure.ac to make automake happy +AC_INIT([jimtcl], [0.80]) +AC_OUTPUT -- 2.33.0 ================================================ FILE: package/openocd/Config.in ================================================ config BR2_PACKAGE_OPENOCD bool "openocd" select BR2_PACKAGE_JIMTCL help OpenOCD - Open On-Chip Debugger http://openocd.sourceforge.net/ if BR2_PACKAGE_OPENOCD comment "Adapters" config BR2_PACKAGE_OPENOCD_CMSIS_DAP bool "CMSIS-DAP compliant debuggers" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb depends on BR2_PACKAGE_HAS_UDEV # hidapi depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # hidapi select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_HIDAPI help Enable support for CMSIS-DAP compliant debuggers (i.e Atmel/Microchip EDBG, etc.) config BR2_PACKAGE_OPENOCD_FTDI bool "MPSSE mode of FTDI based devices" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Enable building support for the MPSSE mode of FTDI (FT2xxx/FT4xxx) based devices (default is auto) config BR2_PACKAGE_OPENOCD_STLINK bool "ST-Link JTAG Programmer" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Enable building support for the ST-Link JTAG Programmer (default is auto) config BR2_PACKAGE_OPENOCD_TI_ICDI bool "TI ICDI JTAG Programmer" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Enable building support for the TI ICDI JTAG Programmer (default is auto) config BR2_PACKAGE_OPENOCD_ULINK bool "Keil ULINK JTAG Programmer" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Enable building support for the Keil ULINK JTAG Programmer (default is auto) config BR2_PACKAGE_OPENOCD_UBLASTER2 bool "Altera USB-Blaster II Compatible" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Enable building support for the Altera USB-Blaster II Compatible (default is auto) config BR2_PACKAGE_OPENOCD_JLINK bool "Segger J-Link JTAG Programmer" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Segger J-Link JTAG Programmer and clone such as Atmel SAM-ICE config BR2_PACKAGE_OPENOCD_OSDBM bool "OSDBM JTAG (only) Programmer" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Enable building support for the OSBDM (JTAG only) Programmer (default is auto) config BR2_PACKAGE_OPENOCD_OPENDOUS bool "eStick/opendous JTAG Programmer" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Enable building support for the eStick/opendous JTAG Programmer (default is auto) config BR2_PACKAGE_OPENOCD_AICE bool "Andes JTAG Programmer" depends on BR2_USE_MMU # use fork() depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Enable building support for the Andes JTAG Programmer (default is auto) config BR2_PACKAGE_OPENOCD_VSLLINK bool "Versaloon-Link JTAG Programmer" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb-compat -> libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb-compat -> libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT help Enable building support for the Versaloon-Link JTAG Programmer (default is auto) config BR2_PACKAGE_OPENOCD_USBPROG bool "USBProg JTAG Programmer" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb-compat -> libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb-compat -> libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT help Enable building support for the USBProg JTAG Programmer (default is auto) config BR2_PACKAGE_OPENOCD_RLINK bool "Raisonance RLink JTAG Programmer" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb-compat -> libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb-compat -> libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT help Enable building support for the Raisonance RLink JTAG Programmer (default is auto) config BR2_PACKAGE_OPENOCD_ARMEW bool "Olimex ARM-JTAG-EW Programmer" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb-compat -> libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb-compat -> libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT help Enable building support for the Olimex ARM-JTAG-EW Programmer (default is auto) config BR2_PACKAGE_OPENOCD_XDS110 bool "TI XDS110 Debug Probe" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Enable building support for the TI XDS110 Debug Probe. config BR2_PACKAGE_OPENOCD_PARPORT bool "pc parallel port driver" help Enable building the pc parallel port driver config BR2_PACKAGE_OPENOCD_VPI bool "JTAG VPI" help Enable building support for JTAG VPI config BR2_PACKAGE_OPENOCD_UBLASTER bool "Altera USB-Blaster" depends on BR2_TOOLCHAIN_HAS_THREADS # libftdi -> libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libftdi -> libusb select BR2_PACKAGE_LIBFTDI1 help Enable building support for the Altera USB-Blaster using the libftdi driver, opensource alternate of FTD2XX config BR2_PACKAGE_OPENOCD_AMTJT bool "Amontec JTAG-Accelerator" help Enable building the Amontec JTAG-Accelerator driver if BR2_arm config BR2_PACKAGE_OPENOCD_EP93XX bool "EP93xx based SBCs" help Enable building support for EP93xx based SBCs config BR2_PACKAGE_OPENOCD_AT91RM bool "AT91RM9200 based SBCs" help Enable building support for AT91RM9200 based SBCs config BR2_PACKAGE_OPENOCD_BCM2835 bool "bitbanging on BCM2835" help Enable building support for bitbanging on BCM2835 (as found in Raspberry Pi) endif # BR2_arm config BR2_PACKAGE_OPENOCD_GW16012 bool "Gateworks GW16012 JTAG Programmer" help Enable building support for the Gateworks GW16012 JTAG Programmer config BR2_PACKAGE_OPENOCD_PRESTO bool "ASIX Presto Programmer" depends on BR2_TOOLCHAIN_HAS_THREADS # libftdi -> libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libftdi -> libusb select BR2_PACKAGE_LIBFTDI1 help Enable building support for ASIX Presto Programmer using the libftdi driver config BR2_PACKAGE_OPENOCD_OPENJTAG bool "OpenJTAG Programmer" depends on BR2_TOOLCHAIN_HAS_THREADS # libftdi -> libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libftdi -> libusb select BR2_PACKAGE_LIBFTDI1 select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT # needs usb.h help Enable building support for the OpenJTAG Programmer with ftdi driver config BR2_PACKAGE_OPENOCD_BUSPIRATE bool "Buspirate" help Enable building support for the Buspirate config BR2_PACKAGE_OPENOCD_SYSFS bool "programming via sysfs gpios" help Enable building support for programming driven via sysfs gpios. # Many adapters need libusb or libusb-compat, which require threads and # gcc >= 4.9 but we don't want to duplicate this comment for all # adapters that select libusb or libusb-compat. comment "many openocd adapters needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 comment "xds110 adapter support needs toolchain w/ wchar" depends on !BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS && BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 endif # BR2_PACKAGE_OPENOCD ================================================ FILE: package/openocd/Config.in.host ================================================ config BR2_PACKAGE_HOST_OPENOCD bool "host openocd" depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb help OpenOCD - Open On-Chip Debugger http://openocd.org/ comment "host openocd needs a toolchain w/ host gcc >= 4.9" depends on !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/openocd/openocd.hash ================================================ # From http://sourceforge.net/projects/openocd/files/openocd/0.11.0/ sha256 43a3ce734aff1d3706ad87793a9f3a5371cb0e357f0ffd0a151656b06b3d1e7d openocd-0.11.0.tar.bz2 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/openocd/openocd.mk ================================================ ################################################################################ # # openocd # ################################################################################ OPENOCD_VERSION = 0.11.0 OPENOCD_SOURCE = openocd-$(OPENOCD_VERSION).tar.bz2 OPENOCD_SITE = http://sourceforge.net/projects/openocd/files/openocd/$(OPENOCD_VERSION) OPENOCD_LICENSE = GPL-2.0+ OPENOCD_LICENSE_FILES = COPYING # 0002-configure-enable-build-on-uclinux.patch patches configure.ac OPENOCD_AUTORECONF = YES OPENOCD_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -std=gnu99" OPENOCD_CONF_OPTS = \ --oldincludedir=$(STAGING_DIR)/usr/include \ --includedir=$(STAGING_DIR)/usr/include \ --disable-doxygen-html \ --disable-internal-jimtcl \ --disable-shared \ --enable-dummy \ --disable-werror # Rely on the Config.in options of each individual adapter selecting # the dependencies they need. OPENOCD_DEPENDENCIES = \ host-pkgconf \ jimtcl \ $(if $(BR2_PACKAGE_LIBFTDI1),libftdi1) \ $(if $(BR2_PACKAGE_LIBUSB),libusb) \ $(if $(BR2_PACKAGE_LIBUSB_COMPAT),libusb-compat) \ $(if $(BR2_PACKAGE_LIBHID),libhid) \ $(if $(BR2_PACKAGE_HIDAPI),hidapi) \ $(if $(BR2_PACKAGE_LIBGPIOD),libgpiod) # Adapters OPENOCD_CONF_OPTS += \ $(if $(BR2_PACKAGE_OPENOCD_FTDI),--enable-ftdi,--disable-ftdi) \ $(if $(BR2_PACKAGE_OPENOCD_STLINK),--enable-stlink,--disable-stlink) \ $(if $(BR2_PACKAGE_OPENOCD_TI_ICDI),--enable-ti-icdi,--disable-ti-icdi) \ $(if $(BR2_PACKAGE_OPENOCD_ULINK),--enable-ulink,--disable-ulink) \ $(if $(BR2_PACKAGE_OPENOCD_UBLASTER2),--enable-usb-blaster-2,--disable-usb-blaster-2) \ $(if $(BR2_PACKAGE_OPENOCD_JLINK),--enable-jlink,--disable-jlink) \ $(if $(BR2_PACKAGE_OPENOCD_OSDBM),--enable-osbdm,--disable-osbdm) \ $(if $(BR2_PACKAGE_OPENOCD_OPENDOUS),--enable-opendous,--disable-opendous) \ $(if $(BR2_PACKAGE_OPENOCD_AICE),--enable-aice,--disable-aice) \ $(if $(BR2_PACKAGE_OPENOCD_VSLLINK),--enable-vsllink,--disable-vsllink) \ $(if $(BR2_PACKAGE_OPENOCD_USBPROG),--enable-usbprog,--disable-usbprog) \ $(if $(BR2_PACKAGE_OPENOCD_RLINK),--enable-rlink,--disable-rlink) \ $(if $(BR2_PACKAGE_OPENOCD_XDS110),--enable-xds110,--disable-xds110) \ $(if $(BR2_PACKAGE_OPENOCD_ARMEW),--enable-armjtagew,--disable-armjtagew) \ $(if $(BR2_PACKAGE_OPENOCD_CMSIS_DAP),--enable-cmsis-dap,--disable-cmsis-dap) \ $(if $(BR2_PACKAGE_OPENOCD_PARPORT),--enable-parport,--disable-parport) \ $(if $(BR2_PACKAGE_OPENOCD_VPI),--enable-jtag_vpi,--disable-jtag_vpi) \ $(if $(BR2_PACKAGE_OPENOCD_UBLASTER),--enable-usb-blaster,--disable-usb-blaster) \ $(if $(BR2_PACKAGE_OPENOCD_AMTJT),--enable-amtjtagaccel,--disable-amjtagaccel) \ $(if $(BR2_PACKAGE_OPENOCD_ZY1000_MASTER),--enable-zy1000-master,--disable-zy1000-master) \ $(if $(BR2_PACKAGE_OPENOCD_ZY1000),--enable-zy1000,--disable-zy1000) \ $(if $(BR2_PACKAGE_OPENOCD_EP93XX),--enable-ep93xx,--disable-ep93xx) \ $(if $(BR2_PACKAGE_OPENOCD_AT91RM),--enable-at91rm9200,--disable-at91rm9200) \ $(if $(BR2_PACKAGE_OPENOCD_BCM2835),--enable-bcm2835gpio,--disable-bcm2835gpio) \ $(if $(BR2_PACKAGE_OPENOCD_GW16012),--enable-gw16012,--disable-gw16012) \ $(if $(BR2_PACKAGE_OPENOCD_PRESTO),--enable-presto,--disable-presto) \ $(if $(BR2_PACKAGE_OPENOCD_OPENJTAG),--enable-openjtag,--disable-openjtag) \ $(if $(BR2_PACKAGE_OPENOCD_BUSPIRATE),--enable-buspirate,--disable-buspirate) \ $(if $(BR2_PACKAGE_OPENOCD_SYSFS),--enable-sysfsgpio,--disable-sysfsgpio) # Enable all configuration options for host build. # # Note that deprecated options have been removed. CMSIS_DAP needs # hidapi (currently not included in buildroot) and zy1000 stuff fails # to build, so they've been removed too. # HOST_OPENOCD_CONF_OPTS = \ --enable-ftdi \ --enable-stlink \ --enable-ti-icdi \ --enable-ulink \ --enable-usb-blaster-2 \ --enable-jlink \ --enable-osbdm \ --enable-opendous \ --enable-aice \ --enable-vsllink \ --enable-usbprog \ --enable-rlink \ --enable-armjtagew \ --enable-parport \ --enable-jtag_vpi \ --enable-usb-blaster \ --enable-amtjtagaccel \ --enable-gw16012 \ --enable-presto \ --enable-openjtag \ --enable-buspirate \ --enable-sysfsgpio \ --oldincludedir=$(HOST_DIR)/include \ --includedir=$(HOST_DIR)/include \ --disable-doxygen-html \ --disable-internal-jimtcl \ --disable-shared \ --enable-dummy \ --disable-werror HOST_OPENOCD_DEPENDENCIES = host-jimtcl host-libftdi host-libusb host-libusb-compat # Avoid documentation rebuild. On PowerPC64(le), we patch the # configure script. Due to this, the version.texi files gets # regenerated, and then since it has a newer date than openocd.info, # openocd build system rebuilds the documentation. Unfortunately, this # documentation rebuild fails on old machines. We work around this by # faking the date of the generated version.texi file, to make the # build system believe the documentation doesn't need to be # regenerated. define OPENOCD_FIX_VERSION_TEXI touch -r $(@D)/doc/openocd.info $(@D)/doc/version.texi endef OPENOCD_POST_BUILD_HOOKS += OPENOCD_FIX_VERSION_TEXI HOST_OPENOCD_POST_BUILD_HOOKS += OPENOCD_FIX_VERSION_TEXI $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/openpgm/0001-Rename-openpgm-5.2.pc.in.patch ================================================ From 240634b1afb968a051f8c68696eae2a582a02450 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 31 Aug 2020 20:16:25 +0200 Subject: [PATCH] Rename openpgm-5.2.pc.in This will fix the following build failure: config.status: error: cannot find input file: `openpgm-5.3.pc.in' Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/steve-o/openpgm/pull/66] --- openpgm/pgm/openpgm-5.2.pc.in | 12 ------------ openpgm/pgm/openpgm-5.3.pc.in | 12 ++++++++++++ 2 files changed, 12 insertions(+), 12 deletions(-) delete mode 100644 openpgm/pgm/openpgm-5.2.pc.in create mode 100644 openpgm/pgm/openpgm-5.3.pc.in diff --git a/openpgm/pgm/openpgm-5.2.pc.in b/openpgm/pgm/openpgm-5.2.pc.in deleted file mode 100644 index 9e30a6d..0000000 --- a/openpgm/pgm/openpgm-5.2.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: OpenPGM -Description: PGM Protocol Library. -Version: @PACKAGE_VERSION@ -# packagers may wish to move @LIBS@ to Libs.private for platforms with -# versions of pkg-config that support static linking. -Libs: -L${libdir} -lpgm @LIBS@ -Cflags: -I${includedir}/pgm-@VERSION_MAJOR@.@VERSION_MINOR@ diff --git a/openpgm/pgm/openpgm-5.3.pc.in b/openpgm/pgm/openpgm-5.3.pc.in new file mode 100644 index 0000000..9e30a6d --- /dev/null +++ b/openpgm/pgm/openpgm-5.3.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: OpenPGM +Description: PGM Protocol Library. +Version: @PACKAGE_VERSION@ +# packagers may wish to move @LIBS@ to Libs.private for platforms with +# versions of pkg-config that support static linking. +Libs: -L${libdir} -lpgm @LIBS@ +Cflags: -I${includedir}/pgm-@VERSION_MAJOR@.@VERSION_MINOR@ -- 2.28.0 ================================================ FILE: package/openpgm/0002-openpgm-pgm-checksum.c-fix-build-with-32-bits-MMX.patch ================================================ From b7fa865fa6b06d97d424c500fd1c4bc44c096359 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 1 Nov 2020 22:46:18 +0100 Subject: [PATCH] openpgm/pgm/checksum.c: fix build with 32 bits MMX Build with i386-pentium-mmx or i686 is broken since version 5-3-128 and https://github.com/steve-o/openpgm/commit/b276dc15be5d4e6e1143b9de25d09f63f9c85135 because _mm_cvtm64_si64 is undefined resulting in the following build failure for example on zeromq: /srv/storage/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/i586-buildroot-linux-musl/8.3.0/../../../../i586-buildroot-linux-musl/bin/ld: /srv/storage/autobuild/run/instance-3/output-1/host/i586-buildroot-linux-musl/sysroot/usr/lib32/libpgm-5.3.so.0: undefined reference to `_mm_cvtm64_si64' So use the fallback if __x86_64__ is not defined Fixes: - http://autobuild.buildroot.org/results/01d9be37e8a743307128f53f41785654c9971e1a Signed-off-by: Fabrice Fontaine Signed-off-by: Baruch Siach --- Upstream status: commit b7fa865fa6b06d97d424c500fd1c4bc44c096359 openpgm/pgm/checksum.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpgm/pgm/checksum.c b/openpgm/pgm/checksum.c index fef89bce237c..8d8dd3f32305 100644 --- a/openpgm/pgm/checksum.c +++ b/openpgm/pgm/checksum.c @@ -948,7 +948,7 @@ do_csumcpy_mmx ( sum = _mm_add_pi32 (sum, lo); sum = _mm_add_pi32 (sum, hi); -#if 1 +#if defined(__x86_64__) *(int64_t*)dst = _mm_cvtm64_si64 (tmp); #else ((int*)dst)[1] = _mm_cvtsi64_si32 (tmp); -- 2.30.2 ================================================ FILE: package/openpgm/Config.in ================================================ config BR2_PACKAGE_OPENPGM bool "openpgm" 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 OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol that enables receivers to detect loss, request retransmission of lost data, or notify an application of unrecoverable loss. 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) ================================================ FILE: package/openpgm/openpgm.hash ================================================ # Locally calculated sha256 8d707ef8dda45f4a7bc91016d7f2fed6a418637185d76c7ab30b306499c6d393 openpgm-5-3-128.tar.gz sha256 4a7d4ec71fa60969399fd4caad64d5a3003fee2775445f271a5a36a8ae743a29 openpgm/pgm/LICENSE ================================================ FILE: package/openpgm/openpgm.mk ================================================ ################################################################################ # # openpgm # ################################################################################ OPENPGM_VERSION = 5-3-128 OPENPGM_SITE = $(call github,steve-o,openpgm,release-$(OPENPGM_VERSION)) OPENPGM_LICENSE = LGPL-2.1+ OPENPGM_LICENSE_FILES = openpgm/pgm/LICENSE OPENPGM_INSTALL_STAGING = YES OPENPGM_SUBDIR = openpgm/pgm OPENPGM_AUTORECONF = YES OPENPGM_CONF_ENV = \ ac_cv_file__proc_cpuinfo=yes \ ac_cv_file__dev_rtc=no \ ac_cv_file__dev_hpet=no $(eval $(autotools-package)) ================================================ FILE: package/openpowerlink/0001-install-the-stack-libraries-to-lib-subdirectory.patch ================================================ From 16230b7f51bff2bdf061fa80e9a49c807596bb92 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 it will install them to /usr/. ls /usr/liboplkmnapp-kernelintf.so Fix this by using 'lib' instead of '.' The problem with the openpowerlink build system is that it expect the stack directory to be a "local staging" directory which contains headers and libraries. So the libraries build by the stack project are installed in stack/lib by default. This is wrong to do that because it becomes difficult to package openpowerlink for normal Linux systems. Buildroot like others build system expect from a packaged software to install libraries and headers build/provided in a staging directory. It seems that CMAKE_INSTALL_PREFIX is misused by the default value "${CMAKE_CURRENT_SOURCE_DIR}/lib/${SYSTEM_NAME_DIR}/${SYSTEM_PROCESSOR_DIR}" since it already contains the lib directory and therefore the entire build system is messed up. It seems that the openpowerlink's build system doesn't allow/support CMAKE_INSTALL_PREFIX to be set externally (which is the standard approach). The issue has been reported [1] upstream and a build system refactoring is needed to fix this properly. [1] http://sourceforge.net/p/openpowerlink/discussion/newbie/thread/3f13af65/#8f80/a50a/4649/f07c [rebase on v2.5.0] Signed-off-by: Romain Naour --- stack/proj/linux/liboplkcn-sim/CMakeLists.txt | 2 +- stack/proj/linux/liboplkcn/CMakeLists.txt | 2 +- stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt | 2 +- stack/proj/linux/liboplkcnapp-userintf/CMakeLists.txt | 2 +- stack/proj/linux/liboplkcndrv-pcap/CMakeLists.txt | 2 +- stack/proj/linux/liboplkmn-sim/CMakeLists.txt | 2 +- stack/proj/linux/liboplkmn/CMakeLists.txt | 2 +- stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt | 2 +- stack/proj/linux/liboplkmnapp-kernelpcp/CMakeLists.txt | 2 +- stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt | 2 +- stack/proj/linux/liboplkmndrv-pcap/CMakeLists.txt | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/stack/proj/linux/liboplkcn-sim/CMakeLists.txt b/stack/proj/linux/liboplkcn-sim/CMakeLists.txt index 2b3da16..ddb3e92 100644 --- a/stack/proj/linux/liboplkcn-sim/CMakeLists.txt +++ b/stack/proj/linux/liboplkcn-sim/CMakeLists.txt @@ -96,4 +96,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/liboplkcn/CMakeLists.txt b/stack/proj/linux/liboplkcn/CMakeLists.txt index 3be6c52..cf1b1dd 100644 --- a/stack/proj/linux/liboplkcn/CMakeLists.txt +++ b/stack/proj/linux/liboplkcn/CMakeLists.txt @@ -90,4 +90,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 904de6c..d8713a8 100644 --- a/stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt +++ b/stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt @@ -83,4 +83,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 e2514cf..a4e2b75 100644 --- a/stack/proj/linux/liboplkcnapp-userintf/CMakeLists.txt +++ b/stack/proj/linux/liboplkcnapp-userintf/CMakeLists.txt @@ -83,4 +83,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/liboplkcndrv-pcap/CMakeLists.txt b/stack/proj/linux/liboplkcndrv-pcap/CMakeLists.txt index 98f068c..bb20006 100644 --- a/stack/proj/linux/liboplkcndrv-pcap/CMakeLists.txt +++ b/stack/proj/linux/liboplkcndrv-pcap/CMakeLists.txt @@ -76,4 +76,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/liboplkmn-sim/CMakeLists.txt b/stack/proj/linux/liboplkmn-sim/CMakeLists.txt index eb6396a..5beaa07 100644 --- a/stack/proj/linux/liboplkmn-sim/CMakeLists.txt +++ b/stack/proj/linux/liboplkmn-sim/CMakeLists.txt @@ -91,4 +91,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/liboplkmn/CMakeLists.txt b/stack/proj/linux/liboplkmn/CMakeLists.txt index cf7927f..6b19557 100644 --- a/stack/proj/linux/liboplkmn/CMakeLists.txt +++ b/stack/proj/linux/liboplkmn/CMakeLists.txt @@ -89,4 +89,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 9daa2df..bfccb25 100644 --- a/stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt +++ b/stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt @@ -82,4 +82,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-kernelpcp/CMakeLists.txt b/stack/proj/linux/liboplkmnapp-kernelpcp/CMakeLists.txt index 0135f46..83128eb 100644 --- a/stack/proj/linux/liboplkmnapp-kernelpcp/CMakeLists.txt +++ b/stack/proj/linux/liboplkmnapp-kernelpcp/CMakeLists.txt @@ -91,4 +91,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 cd97882..aaaa526 100644 --- a/stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt +++ b/stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt @@ -82,4 +82,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/liboplkmndrv-pcap/CMakeLists.txt b/stack/proj/linux/liboplkmndrv-pcap/CMakeLists.txt index 0c29087..1783134 100644 --- a/stack/proj/linux/liboplkmndrv-pcap/CMakeLists.txt +++ b/stack/proj/linux/liboplkmndrv-pcap/CMakeLists.txt @@ -79,4 +79,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) -- 2.9.4 ================================================ FILE: package/openpowerlink/0002-cmake-install-oplk-headers-files.patch ================================================ From f7679a4083de3a9dba80cd719ad4904fbade349b 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 with openpowerlink libraries, we need to install the oplk headers files related to openpowerlink stack. Install all headers file from STACK_INCLUDE_DIR/oplk. 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 69454f2..45f131d 100644 --- a/stack/CMakeLists.txt +++ b/stack/CMakeLists.txt @@ -110,3 +110,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() + +################################################################################ +# Install oplk headers files +################################################################################ +INSTALL(DIRECTORY ${STACK_INCLUDE_DIR}/oplk DESTINATION "include") -- 2.9.4 ================================================ FILE: package/openpowerlink/0003-Add-top-level-CMakeLists.txt.patch ================================================ From cd0945a323cecb638ce56f2e3d7fb4e8c004b98b 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 using a automated build system. Don't use FIND_LIBRARY when the stack is built from a top 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. 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 Add PCIe support (v2.3.2) Signed-off-by: Romain Naour --- CMakeLists.txt | 42 +++++++++++++++++ apps/common/cmake/findoplklib.cmake | 68 +++++++++++++++------------- apps/common/cmake/linkoplklib.cmake | 2 +- drivers/linux/drv_daemon_pcap/CMakeLists.txt | 12 +++-- 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..28d4e7a --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,42 @@ + +CMAKE_MINIMUM_REQUIRED (VERSION 2.8.7) + +#### LIB #### + +IF (CFG_OPLK_LIB) + ADD_SUBDIRECTORY("stack") +ENDIF (CFG_OPLK_LIB) + +#### 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) + ADD_SUBDIRECTORY("drivers/linux/drv_daemon_pcap") +ENDIF (CFG_PCAP_DAEMON) + +#### OpenPowerLink Demos #### + +# Add subdirectory of CN console demo application +IF (CFG_DEMO_CN_CONSOLE) + ADD_SUBDIRECTORY("apps/demo_cn_console") +ENDIF (CFG_DEMO_CN_CONSOLE) + +# Add subdirectory of MN console demo application +IF (CFG_DEMO_MN_CONSOLE) + ADD_SUBDIRECTORY("apps/demo_mn_console") +ENDIF (CFG_DEMO_MN_CONSOLE) + +IF (CFG_DEMO_MN_QT) + 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 f7e710f..b8b04c5 100644 --- a/apps/common/cmake/findoplklib.cmake +++ b/apps/common/cmake/findoplklib.cmake @@ -85,36 +85,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}) - IF((CMAKE_GENERATOR MATCHES "Visual Studio") OR (CMAKE_BUILD_TYPE STREQUAL "Release")) - # Search for release library - UNSET(OPLKLIB CACHE) - MESSAGE(STATUS "Searching for LIBRARY ${OPLKLIB_NAME} in ${OPLKLIB_DIR}") - FIND_LIBRARY(OPLKLIB NAME ${OPLKLIB_NAME} - HINTS ${OPLKLIB_DIR} ${OPLKLIB_DIR}/${CFG_DEMO_BOARD_NAME}/${CFG_DEMO_NAME}) - - IF(CMAKE_SYSTEM_NAME STREQUAL "Windows") - - UNSET(OPLKDLL CACHE) - FIND_PROGRAM(OPLKDLL NAME ${OPLKLIB_NAME}.dll - HINTS ${OPLKLIB_DIR}) - - ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Windows") - ENDIF() - - IF((CMAKE_GENERATOR MATCHES "Visual Studio") OR (CMAKE_BUILD_TYPE STREQUAL "Debug")) - # Search for debug library - UNSET(OPLKLIB_DEBUG CACHE) - MESSAGE(STATUS "Searching for LIBRARY ${OPLKLIB_DEBUG_NAME} in ${OPLKLIB_DIR}") - FIND_LIBRARY(OPLKLIB_DEBUG NAME ${OPLKLIB_DEBUG_NAME} - HINTS ${OPLKLIB_DIR} ${OPLKLIB_DIR}/${CFG_DEMO_BOARD_NAME}/${CFG_DEMO_NAME}) - - IF(CMAKE_SYSTEM_NAME STREQUAL "Windows") - - UNSET(OPLKDLL_DEBUG CACHE) - FIND_PROGRAM(OPLKDLL_DEBUG NAME ${OPLKLIB_DEBUG_NAME}.dll - HINTS ${OPLKLIB_DIR}) - - ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Windows") - ENDIF() + # Don't look for oplk libraries for a top level build + IF(CFG_OPLK_LIB) + SET(OPLKLIB ${OPLKLIB_NAME}) + SET(OPLKLIB_DEBUG ${OPLKLIB_DEBUG_NAME}) + ELSE(CFG_OPLK_LIB) + IF((CMAKE_GENERATOR MATCHES "Visual Studio") OR (CMAKE_BUILD_TYPE STREQUAL "Release")) + # Search for release library + UNSET(OPLKLIB CACHE) + MESSAGE(STATUS "Searching for LIBRARY ${OPLKLIB_NAME} in ${OPLKLIB_DIR}") + FIND_LIBRARY(OPLKLIB NAME ${OPLKLIB_NAME} + HINTS ${OPLKLIB_DIR} ${OPLKLIB_DIR}/${CFG_DEMO_BOARD_NAME}/${CFG_DEMO_NAME}) + + IF(CMAKE_SYSTEM_NAME STREQUAL "Windows") + + UNSET(OPLKDLL CACHE) + FIND_PROGRAM(OPLKDLL NAME ${OPLKLIB_NAME}.dll + HINTS ${OPLKLIB_DIR}) + + ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Windows") + ENDIF() + + IF((CMAKE_GENERATOR MATCHES "Visual Studio") OR (CMAKE_BUILD_TYPE STREQUAL "Debug")) + # Search for debug library + UNSET(OPLKLIB_DEBUG CACHE) + MESSAGE(STATUS "Searching for LIBRARY ${OPLKLIB_DEBUG_NAME} in ${OPLKLIB_DIR}") + FIND_LIBRARY(OPLKLIB_DEBUG NAME ${OPLKLIB_DEBUG_NAME} + HINTS ${OPLKLIB_DIR} ${OPLKLIB_DIR}/${CFG_DEMO_BOARD_NAME}/${CFG_DEMO_NAME}) + + IF(CMAKE_SYSTEM_NAME STREQUAL "Windows") + + UNSET(OPLKDLL_DEBUG CACHE) + FIND_PROGRAM(OPLKDLL_DEBUG NAME ${OPLKLIB_DEBUG_NAME}.dll + HINTS ${OPLKLIB_DIR}) + + ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Windows") + ENDIF() + 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 2b4a2c1..ecceb4c 100644 --- a/drivers/linux/drv_daemon_pcap/CMakeLists.txt +++ b/drivers/linux/drv_daemon_pcap/CMakeLists.txt @@ -109,9 +109,15 @@ ENDIF() SET(OPLKLIB_DIR ${OPLK_BASE_DIR}/stack/lib/${SYSTEM_NAME_DIR}/${SYSTEM_PROCESSOR_DIR}) SET(OPLKLIB_INCDIR ${OPLK_BASE_DIR}/stack/proj/${SYSTEM_NAME_DIR}/lib${LIB_NAME}) -UNSET(OPLKLIB CACHE) -FIND_LIBRARY(OPLKLIB NAME ${LIB_NAME}${BUILD_TYPE_EXT} - HINTS ${OPLKLIB_DIR}) +# Don't look for oplk libraries for a top level build +IF(CFG_OPLK_LIB) + SET(OPLKLIB ${LIB_NAME}${BUILD_TYPE_EXT}) +ELSE(CFG_OPLK_LIB) + UNSET(OPLKLIB CACHE) + FIND_LIBRARY(OPLKLIB NAME ${LIB_NAME}${BUILD_TYPE_EXT} + HINTS ${OPLKLIB_DIR}) +ENDIF(CFG_OPLK_LIB) + INCLUDE_DIRECTORIES(${OPLKLIB_INCDIR}) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -std=c99 -pthread -fno-strict-aliasing") -- 2.9.4 ================================================ FILE: package/openpowerlink/Config.in ================================================ comment "openpowerlink needs a toolchain w/ C++, threads" depends on BR2_i386 || BR2_x86_64 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_OPENPOWERLINK bool "openpowerlink" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_i386 || BR2_x86_64 help openPOWERLINK is an Open Source Industrial Ethernet stack implementing the POWERLINK protocol for Managing Node (MN, POWERLINK Master) and Controlled Node (CN, POWERLINK Slave). It is provided by SYSTEC electronic (http://www.systec-electronic.com), B&R (http://www.br-automation.com) and Kalycito (http://www.kalycito.com). http://openpowerlink.sourceforge.net/web/ if BR2_PACKAGE_OPENPOWERLINK choice prompt "MN/CN mode" config BR2_PACKAGE_OPENPOWERLINK_MN bool "Managing Node" help Enable Managing Node (master) mode config BR2_PACKAGE_OPENPOWERLINK_CN bool "Controlled Node" help Enable Controlled Node (slave) mode endchoice choice prompt "stack type" config BR2_PACKAGE_OPENPOWERLINK_STACK_MONOLITHIC_USER_STACK_LIB bool "linked into application" select BR2_PACKAGE_LIBPCAP help Compile a monolithic openPOWERLINK library. The library contains an Ethernet driver which is using the PCAP library for accessing the network. No kernel-side driver is needed. config BR2_PACKAGE_OPENPOWERLINK_STACK_USERSPACE_DAEMON_LIB bool "user-space pcap daemon" select BR2_PACKAGE_LIBPCAP help Compile openPOWERLINK application library which contains the interface to a Linux user space driver, and the Linux user space driver. It is used for implementing a multi-process solution where the openPOWERLINK layer is running as a separate Linux user space daemon (i.e. a PCAP based user space daemon). No kernel-side stack is needed. config BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB bool "kernel-space driver" depends on BR2_LINUX_KERNEL help Compile openPOWERLINK application library which contains the interface to a Linux kernel space driver. This will also 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 endchoice if BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB menu "Ethernet drivers" config BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_82573 bool "Intel 82573" default y config BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_8255x bool "Intel 8255x" config BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_I210 bool "Intel I210" config BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_RTL8111 bool "Realtek RTL-8111/8168" config BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_RTL8139 bool "Realtek RTL-8139" endmenu endif # BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB config BR2_PACKAGE_OPENPOWERLINK_KERNEL_PCIE_DRIVER bool "PCIe Powerlink Driver" depends on BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_PCIE_STACK_LIB menu "demos" config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE bool "console MN demo" depends on BR2_PACKAGE_OPENPOWERLINK_MN config BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE bool "console CN demo" depends on BR2_PACKAGE_OPENPOWERLINK_CN endmenu endif # BR2_PACKAGE_OPENPOWERLINK ================================================ FILE: package/openpowerlink/openpowerlink.hash ================================================ # From https://sourceforge.net/projects/openpowerlink/files/openPOWERLINK/V2.7.1/ md5 04524d1b1f9946176dce0ccb0eecf537 openPOWERLINK_V2.7.1.tar.gz sha1 4ee9c6e26bbc729fdbbb272155b093ffa0d9cefd openPOWERLINK_V2.7.1.tar.gz # sha256 locally computed sha256 d0d65f4fb8f2ad209cf9575714f88f33168a1cf71e8f1801e1e1ac4df6a37ffd openPOWERLINK_V2.7.1.tar.gz sha256 348e31e9e5094104463d58d33abd31049fdf209afbc12ea7abb7fd4b4a147429 license.md ================================================ FILE: package/openpowerlink/openpowerlink.mk ================================================ ################################################################################ # # openpowerlink # ################################################################################ OPENPOWERLINK_VERSION = 2.7.1 OPENPOWERLINK_SITE = https://downloads.sourceforge.net/project/openpowerlink/openPOWERLINK/V$(OPENPOWERLINK_VERSION) OPENPOWERLINK_SOURCE = openPOWERLINK_V$(OPENPOWERLINK_VERSION).tar.gz OPENPOWERLINK_LICENSE = BSD-2-Clause, GPL-2.0 OPENPOWERLINK_LICENSE_FILES = license.md OPENPOWERLINK_INSTALL_STAGING = YES # The archive has no leading component. OPENPOWERLINK_STRIP_COMPONENTS = 0 OPENPOWERLINK_MN_ONOFF = $(if $(BR2_PACKAGE_OPENPOWERLINK_MN),ON,OFF) OPENPOWERLINK_CN_ONOFF = $(if $(BR2_PACKAGE_OPENPOWERLINK_CN),ON,OFF) #### OPLK LIBRARY #### # Always build a oplk stack # Disable library with simulation interface # Disable zynq/FPGA (PCIe) interface OPENPOWERLINK_CONF_OPTS += -DCFG_OPLK_LIB=ON \ -DCFG_COMPILE_LIB_MN_SIM=OFF \ -DCFG_COMPILE_LIB_CN_SIM=OFF \ -DCFG_COMPILE_LIB_MNAPP_ZYNQINTF=OFF # All option are ON by default ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_MONOLITHIC_USER_STACK_LIB),y) OPENPOWERLINK_DEPENDENCIES += libpcap 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 \ -DCFG_COMPILE_LIB_CNAPP_KERNELINTF=OFF \ -DCFG_COMPILE_LIB_CNDRV_PCAP=OFF \ -DPCAP_CONFIG="$(STAGING_DIR)/usr/bin/pcap-config" else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_USERSPACE_DAEMON_LIB),y) OPENPOWERLINK_DEPENDENCIES += libpcap 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) \ -DCFG_COMPILE_LIB_CNAPP_KERNELINTF=OFF \ -DCFG_COMPILE_LIB_CNDRV_PCAP=$(OPENPOWERLINK_CN_ONOFF) \ -DPCAP_CONFIG="$(STAGING_DIR)/usr/bin/pcap-config" else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB),y) 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 += \ -DCFG_COMPILE_SHARED_LIBRARY=$(if $(BR2_STATIC_LIBS),OFF,ON) #### OPLK KERNEL DRIVERS #### ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB)$(BR2_PACKAGE_OPENPOWERLINK_KERNEL_PCIE_DRIVER),y) OPENPOWERLINK_DEPENDENCIES += linux OPENPOWERLINK_CONF_OPTS += \ -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 \ -DCFG_POWERLINK_EDRV_82573=$(if $(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_82573),ON,OFF) \ -DCFG_POWERLINK_EDRV_8255X=$(if $(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_8255x),ON,OFF) \ -DCFG_POWERLINK_EDRV_I210=$(if $(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_I210),ON,OFF) \ -DCFG_POWERLINK_EDRV_8111=$(if $(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_RTL8111),ON,OFF) \ -DCFG_POWERLINK_EDRV_8139=$(if $(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_RTL8139),ON,OFF) 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 #### ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_USERSPACE_DAEMON_LIB),y) OPENPOWERLINK_CONF_OPTS += \ -DCFG_PCAP_DAEMON=ON \ -DCFG_OPLK_MN=$(OPENPOWERLINK_MN_ONOFF) endif #### OPLK DEMO APPS #### # See apps/common/cmake/configure-linux.cmake for available options list. ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_MONOLITHIC_USER_STACK_LIB),y) OPENPOWERLINK_CONF_OPTS += \ -DCFG_BUILD_KERNEL_STACK="Link to Application" else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_USERSPACE_DAEMON_LIB),y) OPENPOWERLINK_CONF_OPTS += \ -DCFG_BUILD_KERNEL_STACK="Linux Userspace Daemon" 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) OPENPOWERLINK_CONF_OPTS += -DCFG_DEMO_MN_CONSOLE=ON \ -DCFG_DEMO_MN_CONSOLE_USE_SYNCTHREAD=ON else OPENPOWERLINK_CONF_OPTS += -DCFG_DEMO_MN_CONSOLE=OFF endif ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE),y) OPENPOWERLINK_CONF_OPTS += -DCFG_DEMO_CN_CONSOLE=ON else OPENPOWERLINK_CONF_OPTS += -DCFG_DEMO_CN_CONSOLE=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/openrc/0001-init.d-sysctl.in-add-support-for-busybox-sysctl.patch ================================================ From ec1a0c8fa2e7a7c6cf70f68bdabc07cbb1a567cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=81yszczek?= Date: Sun, 5 May 2019 23:43:40 +0200 Subject: [PATCH] init.d/sysctl.in: add support for busybox sysctl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Busybox version of sysctl does not support --system argument, and files need to be loaded one by one. This patch adds code to recognize busybox sysctl and execute proper function based on that. Signed-off-by: Michał Łyszczek --- init.d/sysctl.in | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/init.d/sysctl.in b/init.d/sysctl.in index e49f4db2..a705b3d4 100644 --- a/init.d/sysctl.in +++ b/init.d/sysctl.in @@ -37,6 +37,23 @@ BSD_sysctl() return $retval } +Busybox_sysctl() +{ + local quiet + yesno $rc_verbose || quiet=-q + + eindent + for conf in /etc/sysctl.conf /etc/sysctl.d/*.conf; do + if [ -r "$conf" ]; then + vebegin "applying $conf" + sysctl $quiet -p "$conf" || retval=1 + veend $retval + fi + done + eoutdent + return $retval +} + Linux_sysctl() { local quiet @@ -52,7 +69,15 @@ start() ebegin "Configuring kernel parameters" case "$RC_UNAME" in *BSD|GNU) BSD_sysctl; rc=$? ;; - Linux) Linux_sysctl; rc=$? ;; + Linux) + sysctl -h > /dev/null 2>&1 + if [ $? -ne 0 ]; then + # busybox version of sysctl does not recognize -h option + Busybox_sysctl + else + Linux_sysctl + fi + rc=$? ;; esac eend $rc "Unable to configure some kernel parameters" } -- 2.18.1 ================================================ FILE: package/openrc/0002-sh-init.sh.Linux.in-change-run-lock-from-root-uucp-t.patch ================================================ From 5ae8209afad9a4284723712b46d8685e7f7fd72c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=81yszczek?= Date: Mon, 6 May 2019 00:06:39 +0200 Subject: [PATCH] sh/init.sh.Linux.in: change /run/lock from root:uucp to root:daemon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On gentoo /run/lock is owned by uucp group because of historical reasons. However uucp does not exist on buildroot by default, and it makes more sense that 'daemon' group should own this directory. Signed-off-by: Michał Łyszczek [Fabrice: update for 0.43.3] Signed-off-by: Fabrice Fontaine --- sh/init.sh.Linux.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sh/init.sh.Linux.in b/sh/init.sh.Linux.in index 222bbd3b..7f1a88db 100644 --- a/sh/init.sh.Linux.in +++ b/sh/init.sh.Linux.in @@ -85,7 +85,7 @@ fi fi checkpath -d "$RC_SVCDIR" -checkpath -d -m 0775 -o root:uucp /run/lock +checkpath -d -m 0775 -o root:daemon /run/lock # Try to mount xenfs as early as possible, otherwise rc_sys() will always # return RC_SYS_XENU and will think that we are in a domU while it's not. -- 2.18.1 ================================================ FILE: package/openrc/0003-init.d-agetty-replace-sbin-agetty-by-sbin-getty.patch ================================================ From b39ab180358ed451eae9df900f49a72ef1eb7442 Mon Sep 17 00:00:00 2001 From: Carlos Santos Date: Sun, 1 Mar 2020 09:04:48 -0300 Subject: [PATCH] init.d/agetty: replace /sbin/agetty by /sbin/getty In Buildroot getty is provided by BusyBox or util-linux (agetty). Both create a /sbin/getty symlink pointing to the actual program, so make the agetty service use that path instead of /sbin/agetty. The patch is required because it's not possible to override the command by means of a configuration file. Signed-off-by: Carlos Santos --- init.d/agetty.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.d/agetty.in b/init.d/agetty.in index e4866f7a..e1864628 100644 --- a/init.d/agetty.in +++ b/init.d/agetty.in @@ -14,7 +14,7 @@ supervisor=supervise-daemon port="${RC_SVCNAME#*.}" respawn_period="${respawn_period:-60}" term_type="${term_type:-linux}" -command=/sbin/agetty +command=/sbin/getty command_args_foreground="${agetty_options} ${port} ${baud} ${term_type}" pidfile="/run/${RC_SVCNAME}.pid" -- 2.18.2 ================================================ FILE: package/openrc/0004-init.d-agetty-start-agetty-after-all-sevices.patch ================================================ From c2dc04f6b8c6784941b896e0b17c160dd43a566f Mon Sep 17 00:00:00 2001 From: Carlos Santos Date: Sun, 1 Mar 2020 11:14:37 -0300 Subject: [PATCH] init.d/agetty: start agetty after all services This is required for Buildroot, to prevent mixing service initialization messages with the getty prompt on devices with a single serial console. Signed-off-by: Carlos Santos --- init.d/agetty.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.d/agetty.in b/init.d/agetty.in index e1864628..a1ad4e9f 100644 --- a/init.d/agetty.in +++ b/init.d/agetty.in @@ -19,7 +19,7 @@ command_args_foreground="${agetty_options} ${port} ${baud} ${term_type}" pidfile="/run/${RC_SVCNAME}.pid" depend() { - after local + after * keyword -prefix provide getty } -- 2.18.2 ================================================ FILE: package/openrc/0005-runlevels-do-not-add-agetty.tty-1-6-if-MKSYSVINIT-ye.patch ================================================ From 014dc43447fa553e875984ac4a528e5916cc9e06 Mon Sep 17 00:00:00 2001 From: Carlos Santos Date: Sat, 29 Feb 2020 22:41:30 -0300 Subject: [PATCH] runlevels: do not add agetty.tty[1-6] if MKSYSVINIT=yes Buildroot starts a single getty, according to the system configuration. Also tty[1-6] may not exist (e.g. embedded devices with serial consoles only). Signed-off-by: Carlos Santos --- runlevels/Makefile | 6 ------ 1 file changed, 6 deletions(-) diff --git a/runlevels/Makefile b/runlevels/Makefile index 73843d8b..dbfb59ca 100644 --- a/runlevels/Makefile +++ b/runlevels/Makefile @@ -90,12 +90,6 @@ install: fi; \ ln -snf ${INITDIR}/"$$x" ${SHUTDOWNDIR}/"$$x" || exit $$?; done \ fi - if test "${MKSYSVINIT}" = yes && test "${OS}" = Linux; then \ - for x in tty1 tty2 tty3 tty4 tty5 tty6; do \ - ln -snf ${INITDIR}/agetty ${DESTDIR}/${INITDIR}/"agetty.$$x" || exit $$?; \ - ln -snf ${INITDIR}/agetty.$$x ${DEFAULTDIR}/"agetty.$$x" || exit $$?; \ - done; \ - fi check test:: -- 2.18.2 ================================================ FILE: package/openrc/Config.in ================================================ config BR2_PACKAGE_OPENRC bool "openrc" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS depends on BR2_INIT_OPENRC select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # kmod tools select BR2_PACKAGE_KMOD # runtime select BR2_PACKAGE_KMOD_TOOLS # runtime select BR2_PACKAGE_NCURSES help Init that works on top of pid 1 (for example openrc-init). By default it does quite a lot on startup (like setting hwclock, mounting directories, configuring interfaces and so on). So for this init to properly work you need at least these tools on the root filesystem (default busybox configuration provides them all): swapon, fsck, hwclock, getty, login, grep, mount, coreutils, procps, modprobe (kmod), net-tools Number of tools may be decreased by removing services that use them. https://github.com/OpenRC/openrc comment "openrc needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_INIT_OPENRC depends on BR2_STATIC_LIBS ================================================ FILE: package/openrc/openrc.hash ================================================ # Locally calculated sha256 968e81743a1de7a2348590b3b3286d6af5baf96da28fa1e6364e24f8203fc3b6 openrc-0.43.3.tar.gz sha256 96862463f4e77e2508e4fc2c83773fd24807cb699368b63fd93a5e2b466dd624 LICENSE ================================================ FILE: package/openrc/openrc.mk ================================================ ################################################################################ # # openrc # ################################################################################ OPENRC_VERSION = 0.43.3 OPENRC_SITE = $(call github,OpenRC,openrc,$(OPENRC_VERSION)) OPENRC_LICENSE = BSD-2-Clause OPENRC_LICENSE_FILES = LICENSE OPENRC_CPE_ID_VENDOR = openrc_project OPENRC_DEPENDENCIES = ncurses # set LIBNAME so openrc puts files in proper directories and sets proper # paths in installed files. Since in buildroot /lib64 and /lib32 always # points to /lib, it's safe to hardcode it to "lib" OPENRC_MAKE_OPTS = \ LIBNAME=lib \ LIBEXECDIR=/usr/libexec/rc \ MKPKGCONFIG=no \ MKSYSVINIT=yes \ BRANDING="Buildroot $(BR2_VERSION_FULL)" \ CC=$(TARGET_CC) ifeq ($(BR2_SHARED_LIBS),y) OPENRC_MAKE_OPTS += MKSTATICLIBS=no else OPENRC_MAKE_OPTS += MKSTATICLIBS=yes endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) OPENRC_MAKE_OPTS += MKSELINUX=yes OPENRC_DEPENDENCIES += libselinux else OPENRC_MAKE_OPTS += MKSELINUX=no endif define OPENRC_BUILD_CMDS $(MAKE) $(OPENRC_MAKE_OPTS) -C $(@D) endef define OPENRC_INSTALL_TARGET_CMDS $(MAKE) $(OPENRC_MAKE_OPTS) DESTDIR=$(TARGET_DIR) -C $(@D) install $(INSTALL) -D -m 0755 $(OPENRC_PKGDIR)/sysv-rcs \ $(TARGET_DIR)/etc/init.d/sysv-rcs endef ifeq ($(BR2_PACKAGE_KBD),) # keymaps and save-keymaps require kbd_mode and dumpkeys, respectively, so # remove them if the kbd package is not selected (e.g. devices with serial # console, only). define OPENRC_NO_KBD $(RM) $(TARGET_DIR)/etc/runlevels/boot/{keymaps,save-keymaps} $(RM) $(TARGET_DIR)/etc/init.d/{keymaps,save-keymaps} $(RM) $(TARGET_DIR)/etc/conf.d/keymaps endef OPENRC_POST_INSTALL_TARGET_HOOKS += OPENRC_NO_KBD endif ifeq ($(BR2_PACKAGE_NETIFRC),y) # netifrc replaces network, staticroute and loopback services which are # installed by openrc define OPENRC_NO_NET $(RM) $(TARGET_DIR)/etc/runlevels/boot/{network,staticroute,loopback} $(RM) $(TARGET_DIR)/etc/init.d/{network,staticroute,loopback} $(RM) $(TARGET_DIR)/etc/conf.d/{network,staticroute,loopback} endef OPENRC_POST_INSTALL_TARGET_HOOKS += OPENRC_NO_NET endif define OPENRC_REMOVE_UNNEEDED $(RM) -r $(TARGET_DIR)/usr/share/openrc endef OPENRC_TARGET_FINALIZE_HOOKS += OPENRC_REMOVE_UNNEEDED ifeq ($(BR2_TARGET_GENERIC_GETTY),y) OPENRC_GETTY_SVCNAME = agetty.$(SYSTEM_GETTY_PORT) OPENRC_GETTY_CONF_D = $(TARGET_DIR)/etc/conf.d/$(OPENRC_GETTY_SVCNAME) define OPENRC_SET_GETTY { \ echo "baud=\"$(SYSTEM_GETTY_BAUDRATE)\""; \ echo "term_type=\"$(SYSTEM_GETTY_TERM)\"" ; \ echo "agetty_options=\"-L $(SYSTEM_GETTY_OPTIONS)\""; \ } > $(OPENRC_GETTY_CONF_D) ln -sf agetty $(TARGET_DIR)/etc/init.d/$(OPENRC_GETTY_SVCNAME) ln -sf /etc/init.d/$(OPENRC_GETTY_SVCNAME) \ $(TARGET_DIR)/etc/runlevels/default/$(OPENRC_GETTY_SVCNAME) endef OPENRC_TARGET_FINALIZE_HOOKS += OPENRC_SET_GETTY endif # BR2_TARGET_GENERIC_GETTY $(eval $(generic-package)) ================================================ FILE: package/openrc/sysv-rcs ================================================ #!/sbin/openrc-run description="start or stop sysv rc[S,K] scripts" depend() { after local } start() { for i in /etc/init.d/S??*; do # Ignore dangling symlinks (if any). [ -e "$i" ] || continue einfo "Starting $i" $i start > /dev/null eend $? done } stop() { for i in $(ls -r /etc/init.d/S??*); do # Ignore dangling symlinks (if any). [ -e "$i" ] || continue einfo "Stopping $i" $i stop > /dev/null eend $? done } ================================================ FILE: package/openresolv/Config.in ================================================ config BR2_PACKAGE_OPENRESOLV bool "openresolv" help openresolv is a resolvconf implementation which manages resolv.conf. This tool provides a dns management framework to track currently available nameservers. https://roy.marples.name/projects/openresolv ================================================ FILE: package/openresolv/openresolv.hash ================================================ # Locally calculated sha256 96b573e26d145f208d3758c2cd6fbf824b01005fc4cb7cedbdae29b3a3c8cb02 openresolv-3.12.0.tar.gz sha256 384740bf5e19e7628d20f4dcc22925062fdc6020e9a6f074e567d4d797be57a0 LICENSE ================================================ FILE: package/openresolv/openresolv.mk ================================================ ################################################################################ # # openresolv # ################################################################################ OPENRESOLV_VERSION = 3.12.0 OPENRESOLV_SITE = $(call github,rsmarples,openresolv,openresolv-$(OPENRESOLV_VERSION)) OPENRESOLV_LICENSE = BSD-2-Clause OPENRESOLV_LICENSE_FILES = LICENSE OPENRESOLV_CPE_ID_VENDOR = openresolv_project define OPENRESOLV_CONFIGURE_CMDS cd $(@D) && $(TARGET_CONFIGURE_OPTS) ./configure --sysconfdir=/etc endef define OPENRESOLV_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define OPENRESOLV_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" install endef $(eval $(generic-package)) ================================================ FILE: package/openssh/Config.in ================================================ config BR2_PACKAGE_OPENSSH bool "openssh" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help A free version of the SSH protocol suite of network connectivity tools. The standard 'ssh', 'sshd', 'scp', and friends. http://www.openssh.com/ if BR2_PACKAGE_OPENSSH config BR2_PACKAGE_OPENSSH_CLIENT bool "client" default y help Client programs: ssh, scp, sftp, ssh-agent, ssh-add, ssh-copy-id. config BR2_PACKAGE_OPENSSH_SERVER bool "server" default y help Server programs: sshd, sftp-server config BR2_PACKAGE_OPENSSH_KEY_UTILS bool "key utilities" default y help Key utilities: ssh-keygen, ssh-keyscan. endif ================================================ FILE: package/openssh/S50sshd ================================================ #!/bin/sh # # sshd Starts sshd. # # Make sure the ssh-keygen progam exists [ -f /usr/bin/ssh-keygen ] || exit 0 umask 077 start() { # Create any missing keys /usr/bin/ssh-keygen -A printf "Starting sshd: " /usr/sbin/sshd touch /var/lock/sshd echo "OK" } stop() { printf "Stopping sshd: " killall sshd rm -f /var/lock/sshd echo "OK" } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/openssh/openssh.hash ================================================ # From https://www.openssh.com/txt/release-8.8 (base64 encoded) sha256 4590890ea9bb9ace4f71ae331785a3a5823232435161960ed5fc86588f331fe9 openssh-8.8p1.tar.gz # Locally calculated sha256 432abf7480fb31473a6706627212913fc70032e3fb71b90fecb28ae26a2d741d LICENCE ================================================ FILE: package/openssh/openssh.mk ================================================ ################################################################################ # # openssh # ################################################################################ OPENSSH_VERSION_MAJOR = 8.8 OPENSSH_VERSION_MINOR = p1 OPENSSH_VERSION = $(OPENSSH_VERSION_MAJOR)$(OPENSSH_VERSION_MINOR) OPENSSH_CPE_ID_VERSION = $(OPENSSH_VERSION_MAJOR) OPENSSH_CPE_ID_UPDATE = $(OPENSSH_VERSION_MINOR) OPENSSH_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable OPENSSH_LICENSE = BSD-4-Clause, BSD-3-Clause, BSD-2-Clause, Public Domain OPENSSH_LICENSE_FILES = LICENCE OPENSSH_CONF_ENV = \ LD="$(TARGET_CC)" \ LDFLAGS="$(TARGET_CFLAGS)" \ LIBS=`$(PKG_CONFIG_HOST_BINARY) --libs openssl` OPENSSH_CPE_ID_VENDOR = openbsd OPENSSH_CONF_OPTS = \ --sysconfdir=/etc/ssh \ --with-default-path=$(BR2_SYSTEM_DEFAULT_PATH) \ --disable-lastlog \ --disable-utmp \ --disable-utmpx \ --disable-wtmp \ --disable-wtmpx \ --disable-strip define OPENSSH_PERMISSIONS /var/empty d 755 root root - - - - - endef ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) OPENSSH_CONF_OPTS += --without-pie endif OPENSSH_DEPENDENCIES = host-pkgconf zlib openssl ifeq ($(BR2_PACKAGE_CRYPTODEV_LINUX),y) OPENSSH_DEPENDENCIES += cryptodev-linux OPENSSH_CONF_OPTS += --with-ssl-engine else OPENSSH_CONF_OPTS += --without-ssl-engine endif ifeq ($(BR2_PACKAGE_AUDIT),y) OPENSSH_DEPENDENCIES += audit OPENSSH_CONF_OPTS += --with-audit=linux else OPENSSH_CONF_OPTS += --without-audit endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) define OPENSSH_INSTALL_PAM_CONF $(INSTALL) -D -m 644 $(@D)/contrib/sshd.pam.generic $(TARGET_DIR)/etc/pam.d/sshd $(SED) '\%password required /lib/security/pam_cracklib.so%d' $(TARGET_DIR)/etc/pam.d/sshd $(SED) 's/\#UsePAM no/UsePAM yes/' $(TARGET_DIR)/etc/ssh/sshd_config endef OPENSSH_DEPENDENCIES += linux-pam OPENSSH_CONF_OPTS += --with-pam OPENSSH_POST_INSTALL_TARGET_HOOKS += OPENSSH_INSTALL_PAM_CONF else OPENSSH_CONF_OPTS += --without-pam endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) OPENSSH_DEPENDENCIES += libselinux OPENSSH_CONF_OPTS += --with-selinux else OPENSSH_CONF_OPTS += --without-selinux endif ifeq ($(BR2_PACKAGE_SYSTEMD_SYSUSERS),y) define OPENSSH_INSTALL_SYSTEMD_SYSUSERS $(INSTALL) -m 0644 -D package/openssh/sshd-sysusers.conf \ $(TARGET_DIR)/usr/lib/sysusers.d/sshd.conf endef else define OPENSSH_USERS sshd -1 sshd -1 * /var/empty - - SSH drop priv user endef endif # Let the default install rule only install the configuration file. # The programs will be installed based on the config options selected. OPENSSH_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-sysconf ifeq ($(BR2_PACKAGE_OPENSSH_CLIENT),y) define OPENSSH_INSTALL_CLIENT_PROGRAMS $(INSTALL) -D -m 0755 $(@D)/ssh $(TARGET_DIR)/usr/bin/ssh $(INSTALL) -D -m 0755 $(@D)/scp $(TARGET_DIR)/usr/bin/scp $(INSTALL) -D -m 0755 $(@D)/sftp $(TARGET_DIR)/usr/bin/sftp $(INSTALL) -D -m 0755 $(@D)/ssh-agent $(TARGET_DIR)/usr/bin/ssh-agent $(INSTALL) -D -m 0755 $(@D)/ssh-add $(TARGET_DIR)/usr/bin/ssh-add $(INSTALL) -D -m 4711 $(@D)/ssh-keysign $(TARGET_DIR)/usr/libexec/ssh-keysign $(INSTALL) -D -m 0755 $(@D)/ssh-pkcs11-helper $(TARGET_DIR)/usr/libexec/ssh-pkcs11-helper $(INSTALL) -D -m 0755 $(@D)/contrib/ssh-copy-id $(TARGET_DIR)/usr/bin/ssh-copy-id endef OPENSSH_POST_INSTALL_TARGET_HOOKS += OPENSSH_INSTALL_CLIENT_PROGRAMS endif ifeq ($(BR2_PACKAGE_OPENSSH_SERVER),y) define OPENSSH_INSTALL_SERVER_PROGRAMS $(INSTALL) -D -m 0755 $(@D)/sshd $(TARGET_DIR)/usr/sbin/sshd $(INSTALL) -D -m 0755 $(@D)/sftp-server $(TARGET_DIR)/usr/libexec/sftp-server endef OPENSSH_POST_INSTALL_TARGET_HOOKS += OPENSSH_INSTALL_SERVER_PROGRAMS define OPENSSH_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/openssh/sshd.service \ $(TARGET_DIR)/usr/lib/systemd/system/sshd.service $(OPENSSH_INSTALL_SYSTEMD_SYSUSERS) endef define OPENSSH_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/openssh/S50sshd \ $(TARGET_DIR)/etc/init.d/S50sshd endef endif ifeq ($(BR2_PACKAGE_OPENSSH_KEY_UTILS),y) define OPENSSH_INSTALL_KEY_UTILS $(INSTALL) -D -m 0755 $(@D)/ssh-keygen $(TARGET_DIR)/usr/bin/ssh-keygen $(INSTALL) -D -m 0755 $(@D)/ssh-keyscan $(TARGET_DIR)/usr/bin/ssh-keyscan endef OPENSSH_POST_INSTALL_TARGET_HOOKS += OPENSSH_INSTALL_KEY_UTILS endif $(eval $(autotools-package)) ================================================ FILE: package/openssh/sshd-sysusers.conf ================================================ u sshd - "SSH drop priv user" /var/empty ================================================ FILE: package/openssh/sshd.service ================================================ [Unit] Description=OpenSSH server daemon After=syslog.target network.target auditd.service [Service] ExecStartPre=/usr/bin/ssh-keygen -A ExecStart=/usr/sbin/sshd -D -e ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target ================================================ FILE: package/openssl/Config.in ================================================ config BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL bool config BR2_PACKAGE_OPENSSL bool "openssl support" select BR2_PACKAGE_HAS_OPENSSL help Select the desired ssl library provider. if BR2_PACKAGE_OPENSSL choice prompt "ssl library" help Select OpenSSL or LibreSSL. config BR2_PACKAGE_LIBOPENSSL bool "openssl" select BR2_PACKAGE_ZLIB help A collaborative effort to develop a robust, commercial-grade, fully featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Security (TLS v1) as well as a full-strength general-purpose cryptography library. http://www.openssl.org/ Note: Some helper scripts need perl. source "package/libopenssl/Config.in" config BR2_PACKAGE_LIBRESSL bool "libressl" depends on !BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL depends on BR2_TOOLCHAIN_HAS_THREADS # uClibc on noMMU doesn't provide __register_atfork() depends on !(BR2_TOOLCHAIN_USES_UCLIBC && !BR2_USE_MMU) help LibreSSL is a version of the TLS/crypto stack forked from OpenSSL in 2014, with goals of modernizing the codebase, improving security, and applying best practice development processes. http://www.libressl.org/ source "package/libressl/Config.in" # openssl from br2-external trees, if any source "$BR2_BASE_DIR/.br2-external.in.openssl" endchoice config BR2_PACKAGE_HAS_OPENSSL bool config BR2_PACKAGE_PROVIDES_OPENSSL string default "libopenssl" if BR2_PACKAGE_LIBOPENSSL default "libressl" if BR2_PACKAGE_LIBRESSL endif # ensure libopenssl is used for the host variant config BR2_PACKAGE_PROVIDES_HOST_OPENSSL string default "host-libopenssl" ================================================ FILE: package/openssl/openssl.mk ================================================ ################################################################################ # # openssl # ################################################################################ $(eval $(virtual-package)) $(eval $(host-virtual-package)) ================================================ FILE: package/openswan/Config.in ================================================ config BR2_PACKAGE_OPENSWAN bool "openswan" depends on BR2_USE_MMU # iproute2 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # iproute2 depends on !BR2_TOOLCHAIN_USES_UCLIBC # ns_t_tkey select BR2_PACKAGE_GMP select BR2_PACKAGE_IPROUTE2 help Openswan is an implementation of IPsec for Linux http://www.openswan.org comment "openswan needs a glibc or musl toolchain w/ headers >= 3.4" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 || \ BR2_TOOLCHAIN_USES_UCLIBC ================================================ FILE: package/openswan/openswan.hash ================================================ # Locally calculated sha256 69fe7a71e54aaf0ea93b874db4963057c1ff4904b3617b36f2c9be2010c23331 openswan-3.0.0.tar.gz sha256 1c36ae1e7b0f6cce4b4ffe969b71f83635734804acdd38544443564b00f8783a COPYING sha256 d7d012ef3be47faffba4d97a83d4986c9f4a63ac997ebf5961d33852e5f1801a LICENSE ================================================ FILE: package/openswan/openswan.mk ================================================ ################################################################################ # # openswan # ################################################################################ OPENSWAN_VERSION = 3.0.0 OPENSWAN_SITE = $(call github,xelerance,Openswan,v$(OPENSWAN_VERSION)) OPENSWAN_LICENSE = GPL-2.0+, BSD-3-Clause OPENSWAN_LICENSE_FILES = COPYING LICENSE OPENSWAN_CPE_ID_VENDOR = xelerance OPENSWAN_DEPENDENCIES = host-bison host-flex gmp iproute2 OPENSWAN_MAKE_OPTS = ARCH=$(BR2_ARCH) CC="$(TARGET_CC)" POD2MAN="" XMLTO="" \ 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 \ USE_NOMANINSTALL=true WERROR="" ifeq ($(BR2_PACKAGE_LIBCURL),y) OPENSWAN_DEPENDENCIES += libcurl OPENSWAN_MAKE_OPTS += USE_LIBCURL=true endif ifeq ($(BR2_PACKAGE_OPENSSL),y) OPENSWAN_DEPENDENCIES += openssl OPENSWAN_MAKE_OPTS += HAVE_OPENSSL=true ifeq ($(BR2_PACKAGE_OCF_LINUX),y) OPENSWAN_MAKE_OPTS += HAVE_OCF=true endif endif define OPENSWAN_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) \ $(OPENSWAN_MAKE_OPTS) programs endef define OPENSWAN_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) \ $(OPENSWAN_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/opentracing-cpp/Config.in ================================================ config BR2_PACKAGE_OPENTRACING_CPP bool "opentracing-cpp" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr help OpenTracing API for C++ http://opentracing.io comment "opentracing-cpp needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 comment "opentracing-cpp needs exception_ptr" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/opentracing-cpp/opentracing-cpp.hash ================================================ # Locally calculated sha256 015c4187f7a6426a2b5196f0ccd982aa87f010cf61f507ae3ce5c90523f92301 opentracing-cpp-1.5.1.tar.gz sha256 076d03156735d5ff2df2ea0f8b12351ef65e5e9222b5c8c6a35101dadb41e717 LICENSE ================================================ FILE: package/opentracing-cpp/opentracing-cpp.mk ================================================ ################################################################################ # # opentracing-cpp # ################################################################################ OPENTRACING_CPP_VERSION = 1.5.1 OPENTRACING_CPP_SITE = $(call github,opentracing,opentracing-cpp,v$(OPENTRACING_CPP_VERSION)) OPENTRACING_CPP_LICENSE = Apache-2.0 OPENTRACING_CPP_LICENSE_FILES = LICENSE OPENTRACING_CPP_INSTALL_STAGING = YES # BUILD_SHARED_LIBS is handled in pkg-cmake.mk as it is a generic cmake variable # although BUILD_STATIC_LIBS=ON is default, make it explicit, # cmake and static/shared libs is confusing enough already. ifeq ($(BR2_STATIC_LIBS),y) OPENTRACING_CPP_CONF_OPTS += -DBUILD_STATIC_LIBS=ON else ifeq ($(BR2_SHARED_STATIC_LIBS),y) OPENTRACING_CPP_CONF_OPTS += -DBUILD_STATIC_LIBS=ON else ifeq ($(BR2_SHARED_LIBS),y) OPENTRACING_CPP_CONF_OPTS += -DBUILD_STATIC_LIBS=OFF endif OPENTRACING_CPP_CONF_OPTS += -DENABLE_LINTING=OFF $(eval $(cmake-package)) ================================================ FILE: package/opentyrian/0001-Move-definitions-that-don-t-need-to-be-exposed-from-opl-h-to-opl-c.patch ================================================ From 962ee8fc46ca51691bde1c8c1022dacbe8a037ed Mon Sep 17 00:00:00 2001 From: Carl Reinke Date: Sun, 14 Jun 2020 14:11:00 -0600 Subject: [PATCH] Move definitions that don't need to be exposed from opl.h to opl.c [Retrieved from: https://github.com/opentyrian/opentyrian/commit/962ee8fc46ca51691bde1c8c1022dacbe8a037ed] Signed-off-by: Fabrice Fontaine --- src/opl.c | 153 +++++++++++++++++++++++++++++++++++++++++++++++++++- src/opl.h | 157 ++---------------------------------------------------- 2 files changed, 154 insertions(+), 156 deletions(-) diff --git a/src/opl.c b/src/opl.c index a4071c5..f15474c 100644 --- a/src/opl.c +++ b/src/opl.c @@ -23,12 +23,161 @@ * Copyright (C) 1998-2001 Ken Silverman * Ken Silverman's official web site: "http://www.advsys.net/ken" */ - +#include "opl.h" #include +#include #include // rand() #include // memset() -#include "opl.h" + +#define fltype double + + /* + define attribution that inlines/forces inlining of a function (optional) + */ +#define OPL_INLINE inline + + +#undef NUM_CHANNELS +#if defined(OPLTYPE_IS_OPL3) +#define NUM_CHANNELS 18 +#else +#define NUM_CHANNELS 9 +#endif + +#define MAXOPERATORS (NUM_CHANNELS*2) + + +#define FL05 ((fltype)0.5) +#define FL2 ((fltype)2.0) +#define PI ((fltype)3.1415926535897932384626433832795) + + +#define FIXEDPT 0x10000 // fixed-point calculations using 16+16 +#define FIXEDPT_LFO 0x1000000 // fixed-point calculations using 8+24 + +#define WAVEPREC 1024 // waveform precision (10 bits) + +#define INTFREQU ((fltype)(14318180.0 / 288.0)) // clocking of the chip + + +#define OF_TYPE_ATT 0 +#define OF_TYPE_DEC 1 +#define OF_TYPE_REL 2 +#define OF_TYPE_SUS 3 +#define OF_TYPE_SUS_NOKEEP 4 +#define OF_TYPE_OFF 5 + +#define ARC_CONTROL 0x00 +#define ARC_TVS_KSR_MUL 0x20 +#define ARC_KSL_OUTLEV 0x40 +#define ARC_ATTR_DECR 0x60 +#define ARC_SUSL_RELR 0x80 +#define ARC_FREQ_NUM 0xa0 +#define ARC_KON_BNUM 0xb0 +#define ARC_PERC_MODE 0xbd +#define ARC_FEEDBACK 0xc0 +#define ARC_WAVE_SEL 0xe0 + +#define ARC_SECONDSET 0x100 // second operator set for OPL3 + + +#define OP_ACT_OFF 0x00 +#define OP_ACT_NORMAL 0x01 // regular channel activated (bitmasked) +#define OP_ACT_PERC 0x02 // percussion channel activated (bitmasked) + +#define BLOCKBUF_SIZE 512 + + + // vibrato constants +#define VIBTAB_SIZE 8 +#define VIBFAC 70/50000 // no braces, integer mul/div + + // tremolo constants and table +#define TREMTAB_SIZE 53 +#define TREM_FREQ ((fltype)(3.7)) // tremolo at 3.7hz + + + /* operator struct definition + For OPL2 all 9 channels consist of two operators each, carrier and modulator. + Channel x has operators x as modulator and operators (9+x) as carrier. + For OPL3 all 18 channels consist either of two operators (2op mode) or four + operators (4op mode) which is determined through register4 of the second + adlib register set. + Only the channels 0,1,2 (first set) and 9,10,11 (second set) can act as + 4op channels. The two additional operators for a channel y come from the + 2op channel y+3 so the operatorss y, (9+y), y+3, (9+y)+3 make up a 4op + channel. + */ +typedef struct operator_struct { + Bit32s cval, lastcval; // current output/last output (used for feedback) + Bit32u tcount, wfpos, tinc; // time (position in waveform) and time increment + fltype amp, step_amp; // and amplification (envelope) + fltype vol; // volume + fltype sustain_level; // sustain level + Bit32s mfbi; // feedback amount + fltype a0, a1, a2, a3; // attack rate function coefficients + fltype decaymul, releasemul; // decay/release rate functions + Bit32u op_state; // current state of operator (attack/decay/sustain/release/off) + Bit32u toff; + Bit32s freq_high; // highest three bits of the frequency, used for vibrato calculations + Bit16s* cur_wform; // start of selected waveform + Bit32u cur_wmask; // mask for selected waveform + Bit32u act_state; // activity state (regular, percussion) + bool sus_keep; // keep sustain level when decay finished + bool vibrato,tremolo; // vibrato/tremolo enable bits + + // variables used to provide non-continuous envelopes + Bit32u generator_pos; // for non-standard sample rates we need to determine how many samples have passed + Bits cur_env_step; // current (standardized) sample position + Bits env_step_a,env_step_d,env_step_r; // number of std samples of one step (for attack/decay/release mode) + Bit8u step_skip_pos_a; // position of 8-cyclic step skipping (always 2^x to check against mask) + Bits env_step_skip_a; // bitmask that determines if a step is skipped (respective bit is zero then) + +#if defined(OPLTYPE_IS_OPL3) + bool is_4op,is_4op_attached; // base of a 4op channel/part of a 4op channel + Bit32s left_pan,right_pan; // opl3 stereo panning amount +#endif +} op_type; + +// per-chip variables +static op_type op[MAXOPERATORS]; + +static Bits int_samplerate; + +static Bit8u status; +static Bit32u opl_index; +#if defined(OPLTYPE_IS_OPL3) +static Bit8u adlibreg[512]; // adlib register set (including second set) +static Bit8u wave_sel[44]; // waveform selection +#else +static Bit8u adlibreg[256]; // adlib register set +static Bit8u wave_sel[22]; // waveform selection +#endif + + + // vibrato/tremolo increment/counter +static Bit32u vibtab_pos; +static Bit32u vibtab_add; +static Bit32u tremtab_pos; +static Bit32u tremtab_add; + + +// enable an operator +void enable_operator(Bitu regbase, op_type* op_pt, Bit32u act_type); + +// functions to change parameters of an operator +void change_frequency(Bitu chanbase, Bitu regbase, op_type* op_pt); + +void change_attackrate(Bitu regbase, op_type* op_pt); +void change_decayrate(Bitu regbase, op_type* op_pt); +void change_releaserate(Bitu regbase, op_type* op_pt); +void change_sustainlevel(Bitu regbase, op_type* op_pt); +void change_waveform(Bitu regbase, op_type* op_pt); +void change_keepsustain(Bitu regbase, op_type* op_pt); +void change_vibrato(Bitu regbase, op_type* op_pt); +void change_feedback(Bitu chanbase, op_type* op_pt); + static Bit32u generator_add; // should be a chip parameter diff --git a/src/opl.h b/src/opl.h index c8e643b..cbb56ad 100644 --- a/src/opl.h +++ b/src/opl.h @@ -25,11 +25,8 @@ * Ken Silverman's official web site: "http://www.advsys.net/ken" */ - -#define fltype double - -#include #include + typedef uintptr_t Bitu; typedef intptr_t Bits; typedef uint32_t Bit32u; @@ -39,154 +36,6 @@ typedef int16_t Bit16s; typedef uint8_t Bit8u; typedef int8_t Bit8s; - -/* - define attribution that inlines/forces inlining of a function (optional) -*/ -#define OPL_INLINE inline - - -#undef NUM_CHANNELS -#if defined(OPLTYPE_IS_OPL3) -#define NUM_CHANNELS 18 -#else -#define NUM_CHANNELS 9 -#endif - -#define MAXOPERATORS (NUM_CHANNELS*2) - - -#define FL05 ((fltype)0.5) -#define FL2 ((fltype)2.0) -#define PI ((fltype)3.1415926535897932384626433832795) - - -#define FIXEDPT 0x10000 // fixed-point calculations using 16+16 -#define FIXEDPT_LFO 0x1000000 // fixed-point calculations using 8+24 - -#define WAVEPREC 1024 // waveform precision (10 bits) - -#define INTFREQU ((fltype)(14318180.0 / 288.0)) // clocking of the chip - - -#define OF_TYPE_ATT 0 -#define OF_TYPE_DEC 1 -#define OF_TYPE_REL 2 -#define OF_TYPE_SUS 3 -#define OF_TYPE_SUS_NOKEEP 4 -#define OF_TYPE_OFF 5 - -#define ARC_CONTROL 0x00 -#define ARC_TVS_KSR_MUL 0x20 -#define ARC_KSL_OUTLEV 0x40 -#define ARC_ATTR_DECR 0x60 -#define ARC_SUSL_RELR 0x80 -#define ARC_FREQ_NUM 0xa0 -#define ARC_KON_BNUM 0xb0 -#define ARC_PERC_MODE 0xbd -#define ARC_FEEDBACK 0xc0 -#define ARC_WAVE_SEL 0xe0 - -#define ARC_SECONDSET 0x100 // second operator set for OPL3 - - -#define OP_ACT_OFF 0x00 -#define OP_ACT_NORMAL 0x01 // regular channel activated (bitmasked) -#define OP_ACT_PERC 0x02 // percussion channel activated (bitmasked) - -#define BLOCKBUF_SIZE 512 - - -// vibrato constants -#define VIBTAB_SIZE 8 -#define VIBFAC 70/50000 // no braces, integer mul/div - -// tremolo constants and table -#define TREMTAB_SIZE 53 -#define TREM_FREQ ((fltype)(3.7)) // tremolo at 3.7hz - - -/* operator struct definition - For OPL2 all 9 channels consist of two operators each, carrier and modulator. - Channel x has operators x as modulator and operators (9+x) as carrier. - For OPL3 all 18 channels consist either of two operators (2op mode) or four - operators (4op mode) which is determined through register4 of the second - adlib register set. - Only the channels 0,1,2 (first set) and 9,10,11 (second set) can act as - 4op channels. The two additional operators for a channel y come from the - 2op channel y+3 so the operatorss y, (9+y), y+3, (9+y)+3 make up a 4op - channel. -*/ -typedef struct operator_struct { - Bit32s cval, lastcval; // current output/last output (used for feedback) - Bit32u tcount, wfpos, tinc; // time (position in waveform) and time increment - fltype amp, step_amp; // and amplification (envelope) - fltype vol; // volume - fltype sustain_level; // sustain level - Bit32s mfbi; // feedback amount - fltype a0, a1, a2, a3; // attack rate function coefficients - fltype decaymul, releasemul; // decay/release rate functions - Bit32u op_state; // current state of operator (attack/decay/sustain/release/off) - Bit32u toff; - Bit32s freq_high; // highest three bits of the frequency, used for vibrato calculations - Bit16s* cur_wform; // start of selected waveform - Bit32u cur_wmask; // mask for selected waveform - Bit32u act_state; // activity state (regular, percussion) - bool sus_keep; // keep sustain level when decay finished - bool vibrato,tremolo; // vibrato/tremolo enable bits - - // variables used to provide non-continuous envelopes - Bit32u generator_pos; // for non-standard sample rates we need to determine how many samples have passed - Bits cur_env_step; // current (standardized) sample position - Bits env_step_a,env_step_d,env_step_r; // number of std samples of one step (for attack/decay/release mode) - Bit8u step_skip_pos_a; // position of 8-cyclic step skipping (always 2^x to check against mask) - Bits env_step_skip_a; // bitmask that determines if a step is skipped (respective bit is zero then) - -#if defined(OPLTYPE_IS_OPL3) - bool is_4op,is_4op_attached; // base of a 4op channel/part of a 4op channel - Bit32s left_pan,right_pan; // opl3 stereo panning amount -#endif -} op_type; - -// per-chip variables -Bitu chip_num; -op_type op[MAXOPERATORS]; - -Bits int_samplerate; - -Bit8u status; -Bit32u opl_index; -#if defined(OPLTYPE_IS_OPL3) -Bit8u adlibreg[512]; // adlib register set (including second set) -Bit8u wave_sel[44]; // waveform selection -#else -Bit8u adlibreg[256]; // adlib register set -Bit8u wave_sel[22]; // waveform selection -#endif - - -// vibrato/tremolo increment/counter -Bit32u vibtab_pos; -Bit32u vibtab_add; -Bit32u tremtab_pos; -Bit32u tremtab_add; - - -// enable an operator -void enable_operator(Bitu regbase, op_type* op_pt, Bit32u act_type); - -// functions to change parameters of an operator -void change_frequency(Bitu chanbase, Bitu regbase, op_type* op_pt); - -void change_attackrate(Bitu regbase, op_type* op_pt); -void change_decayrate(Bitu regbase, op_type* op_pt); -void change_releaserate(Bitu regbase, op_type* op_pt); -void change_sustainlevel(Bitu regbase, op_type* op_pt); -void change_waveform(Bitu regbase, op_type* op_pt); -void change_keepsustain(Bitu regbase, op_type* op_pt); -void change_vibrato(Bitu regbase, op_type* op_pt); -void change_feedback(Bitu chanbase, op_type* op_pt); - // general functions void adlib_init(Bit32u samplerate); void adlib_write(Bitu idx, Bit8u val); @@ -195,8 +44,8 @@ void adlib_getsample(Bit16s* sndptr, Bits numsamples); Bitu adlib_reg_read(Bitu port); void adlib_write_index(Bitu port, Bit8u val); -#endif /* OPL_H */ - #define opl_init() adlib_init(OUTPUT_QUALITY * 11025) #define opl_write(reg, val) adlib_write(reg, val) #define opl_update(buf, num) adlib_getsample(buf, num) + +#endif /* OPL_H */ ================================================ FILE: package/opentyrian/Config.in ================================================ config BR2_PACKAGE_OPENTYRIAN bool "OpenTyrian" select BR2_PACKAGE_SDL select BR2_PACKAGE_OPENTYRIAN_DATA help OpenTyrian is a port of the DOS shoot-em-up Tyrian. It uses SDL, making it easily cross-platform. It requires the original data files to run. A display with minimum 640x480 resolution and a keyboard are needed to play the game. If you want some sound, activate ALSA with OSS emulation. https://bitbucket.org/opentyrian/opentyrian/wiki/Home if BR2_PACKAGE_OPENTYRIAN config BR2_PACKAGE_OPENTYRIAN_NET bool "network support" default y select BR2_PACKAGE_SDL_NET help Activates network support in OpenTyrian. Will add SDL_net. endif ================================================ FILE: package/opentyrian/opentyrian.hash ================================================ # Locally computed sha256 2b0db65c735cc099279ea3da6d9b76f791633897cd0f5b67528f70de0758a944 opentyrian-cf5dbeb69eebd9ef9afc4473088d9469b79589eb.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/opentyrian/opentyrian.mk ================================================ ################################################################################ # # opentyrian # ################################################################################ OPENTYRIAN_VERSION = cf5dbeb69eebd9ef9afc4473088d9469b79589eb OPENTYRIAN_SITE = $(call github,opentyrian,opentyrian,$(OPENTYRIAN_VERSION)) OPENTYRIAN_LICENSE = GPL-2.0+ OPENTYRIAN_LICENSE_FILES = COPYING OPENTYRIAN_DEPENDENCIES = sdl ifeq ($(BR2_PACKAGE_OPENTYRIAN_NET),y) OPENTYRIAN_DEPENDENCIES += sdl_net OPENTYRIAN_NETWORK = true else OPENTYRIAN_NETWORK = false endif define OPENTYRIAN_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) PLATFORM=UNIX \ CC="$(TARGET_CC)" \ STRIP="/bin/true" \ SDL_CONFIG="$(STAGING_DIR)/usr/bin/sdl-config" \ LDFLAGS="$(TARGET_LDFLAGS) -lm" \ WITH_NETWORK="$(OPENTYRIAN_NETWORK)" \ -C $(@D) release endef define OPENTYRIAN_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/opentyrian $(TARGET_DIR)/usr/bin/opentyrian endef $(eval $(generic-package)) ================================================ FILE: package/opentyrian-data/Config.in ================================================ config BR2_PACKAGE_OPENTYRIAN_DATA bool "OpenTyrian data" depends on BR2_PACKAGE_OPENTYRIAN help Data files to use with OpenTyrian game. Currently only the original Tyrian 2.1 data files, that have been released as Freeware in 2004, are compatible. https://bitbucket.org/opentyrian/opentyrian/wiki/Home ================================================ FILE: package/opentyrian-data/opentyrian-data.hash ================================================ # Locally calculated sha256 7790d09a2a3addcd33c66ef063d5900eb81cc9c342f4807eb8356364dd1d9277 tyrian21.zip ================================================ FILE: package/opentyrian-data/opentyrian-data.mk ================================================ ################################################################################ # # opentyrian-data # ################################################################################ OPENTYRIAN_DATA_VERSION = 2.1 OPENTYRIAN_DATA_SITE = http://www.camanis.net/opentyrian OPENTYRIAN_DATA_SOURCE = tyrian21.zip OPENTYRIAN_DATA_LICENSE = Freeware define OPENTYRIAN_DATA_EXTRACT_CMDS $(UNZIP) -d $(@D) $(OPENTYRIAN_DATA_DL_DIR)/$(OPENTYRIAN_DATA_SOURCE) endef define OPENTYRIAN_DATA_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/share/opentyrian/data/ cp $(@D)/tyrian21/* $(TARGET_DIR)/usr/share/opentyrian/data/ rm -f $(TARGET_DIR)/usr/share/opentyrian/data/*.doc rm -f $(TARGET_DIR)/usr/share/opentyrian/data/*.exe endef $(eval $(generic-package)) ================================================ FILE: package/openvmtools/0001-no_cflags_werror.patch ================================================ configure.ac: disable -Werror Disable the mandatory flag -Werror in configure.ac. Signed-off-by: Karoly Kasza --- open-vm-tools/configure.ac 2015-06-17 10:02:00.000000000 +0200 +++ open-vm-tools/configure.ac 2015-06-17 10:02:00.000000000 +0200 @@ -935,7 +935,7 @@ ### General flags / actions CFLAGS="$CFLAGS -Wall" -CFLAGS="$CFLAGS -Werror" +# CFLAGS="$CFLAGS -Werror" # -Wno-unknown-pragmas is due to gcc not understanding '#pragma ident' # in Xlib.h on OpenSolaris. ================================================ FILE: package/openvmtools/0002-dont-force-cppflags.patch ================================================ m4: do not force -I/usr/include in CPPFLAGS This is so horribly broken for cross-compilation. :-( Signed-off-by: "Yann E. MORIN" --- open-vm-tools/m4/vmtools.m4 2015-06-17 10:03:00.000000000 +0200 +++ open-vm-tools/m4/vmtools.m4 2015-06-17 10:03:00.000000000 +0200 @@ -281,10 +281,10 @@ if test "$os" = freebsd; then CUSTOM_$1_CPPFLAGS="-I/usr/local/include" else - CUSTOM_$1_CPPFLAGS="-I/usr/include" + CUSTOM_$1_CPPFLAGS=" " fi if test -n "$2"; then - CUSTOM_$1_CPPFLAGS="${CUSTOM_$1_CPPFLAGS}/$2" + : CUSTOM_$1_CPPFLAGS="${CUSTOM_$1_CPPFLAGS}/$2" fi fi ]) ================================================ FILE: package/openvmtools/0003-Rename-poll-h-into-vm_poll-h-to-fix-build-failure-on-musl.patch ================================================ From 9d13e32e362ad3ce5169f49b7f0fe1d9380e558c Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 30 Sep 2019 13:32:35 +0200 Subject: [PATCH] Rename poll.h into vm_poll.h to fix build failure on musl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit musl libc redirects include of sys/poll.h to poll.h. But since poll.h is also a local header file, the musl libc header is never included. This leads to the following build failure: In file included from asyncsocket.c:73:0: .../host/i586-buildroot-linux-musl/sysroot/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include to [-Wcpp] #warning redirecting incorrect #include to asyncsocket.c: In function ‘AsyncTCPSocketPollWork’: asyncsocket.c:2537:13: error: invalid use of undefined type ‘struct pollfd’ pfd[i].fd = asock[i]->fd; ^ asyncsocket.c:2537:13: error: dereferencing pointer to incomplete type ‘struct pollfd’ asyncsocket.c:2538:13: error: invalid use of undefined type ‘struct pollfd’ pfd[i].events = read ? POLLIN : POLLOUT; ^ asyncsocket.c:2538:33: error: ‘POLLIN’ undeclared (first use in this function); did you mean ‘POLL_IN’? pfd[i].events = read ? POLLIN : POLLOUT; So rename poll.h into vm_poll.h as suggested by srowe in https://github.com/vmware/open-vm-tools/issues/359#issuecomment-533529956 Fixes: - http://autobuild.buildroot.org/results/4f575ef42bbc4387a07e396205052b2da081c64d Fix #359 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/vmware/open-vm-tools/pull/383] --- lib/asyncsocket/asyncsocket.c | 4 +- lib/hgfsServer/hgfsServer.c | 2 +- lib/include/asyncsocket.h | 2 +- lib/include/poll.h | 330 -------------------- lib/include/pollImpl.h | 2 +- lib/include/vm_poll.h | 330 ++++++++++++++++++++ lib/rpcIn/rpcin.c | 2 +- 7 files changed, 336 insertions(+), 336 deletions(-) delete mode 100644 open-vm-tools/lib/include/poll.h create mode 100644 open-vm-tools/lib/include/vm_poll.h diff --git a/lib/asyncsocket/asyncsocket.c b/lib/asyncsocket/asyncsocket.c index 102638cc..01181a95 100644 --- a/lib/asyncsocket/asyncsocket.c +++ b/lib/asyncsocket/asyncsocket.c @@ -69,8 +69,8 @@ #else #include #include +#include #include -#include #include #include #include @@ -86,7 +86,7 @@ #include "random.h" #include "asyncsocket.h" #include "asyncSocketBase.h" -#include "poll.h" +#include "vm_poll.h" #include "log.h" #include "err.h" #include "hostinfo.h" diff --git a/lib/hgfsServer/hgfsServer.c b/lib/hgfsServer/hgfsServer.c index 46224551..fc691286 100644 --- a/lib/hgfsServer/hgfsServer.c +++ b/lib/hgfsServer/hgfsServer.c @@ -48,7 +48,7 @@ #include "hgfsServerOplock.h" #include "hgfsDirNotify.h" #include "userlock.h" -#include "poll.h" +#include "vm_poll.h" #include "mutexRankLib.h" #include "vm_basic_asm.h" #include "unicodeOperations.h" diff --git a/lib/include/asyncsocket.h b/lib/include/asyncsocket.h index 95a5e464..a4b4e5aa 100644 --- a/lib/include/asyncsocket.h +++ b/lib/include/asyncsocket.h @@ -164,7 +164,7 @@ typedef struct AsyncSocket AsyncSocket; * Or the client can specify its favorite poll class and locking behavior. * Use of IVmdbPoll is only supported for regular sockets and for Attach. */ -#include "poll.h" +#include "vm_poll.h" struct IVmdbPoll; typedef struct AsyncSocketPollParams { int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */ diff --git a/lib/include/poll.h b/lib/include/poll.h deleted file mode 100644 index 6acd4f35..00000000 --- a/lib/include/poll.h +++ /dev/null @@ -1,330 +0,0 @@ -/********************************************************* - * Copyright (C) 1998-2018 VMware, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation version 2.1 and no 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 Lesser GNU General Public - * License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - *********************************************************/ - -/********************************************************* - * The contents of this file are subject to the terms of the Common - * Development and Distribution License (the "License") version 1.0 - * and no later version. You may not use this file except in - * compliance with the License. - * - * You can obtain a copy of the License at - * http://www.opensource.org/licenses/cddl1.php - * - * See the License for the specific language governing permissions - * and limitations under the License. - * - *********************************************************/ - - -#ifndef _POLL_H_ -#define _POLL_H_ - -#define INCLUDE_ALLOW_USERLEVEL -#define INCLUDE_ALLOW_VMCORE -#include "includeCheck.h" - -#include "vm_basic_types.h" -#include "vm_basic_defs.h" -#include "vmware.h" -#include "userlock.h" - -#if defined(__cplusplus) -extern "C" { -#endif - -#ifdef _WIN32 -#define HZ 100 -#elif defined linux -#include -#elif __APPLE__ -#include -/* - * Old SDKs don't define TARGET_OS_IPHONE at all. - * New ones define it to 0 on Mac OS X, 1 on iOS. - */ -#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 -#include -#endif -#include -#define HZ 100 -#endif -#ifdef __ANDROID__ -/* - * of android should be included, but its name is same - * with this file. So its content is put here to avoid conflict. - */ -#include -#define HZ 100 -typedef unsigned int nfds_t; -int poll(struct pollfd *, nfds_t, long); -#endif - - -/* - * Poll event types: each type has a different reason for firing, - * or condition that must be met before firing. - */ - -typedef enum { - /* - * Actual Poll queue types against which you can register callbacks. - */ - POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */ - POLL_VTIME = 0, - POLL_REALTIME, - POLL_DEVICE, - POLL_MAIN_LOOP, - POLL_NUM_QUEUES -} PollEventType; - - -/* - * Classes of events - * - * These are the predefined classes. More can be declared - * with Poll_AllocClass(). - */ - -typedef enum PollClass { - POLL_CLASS_MAIN, - POLL_CLASS_PAUSE, - POLL_CLASS_IPC, - POLL_CLASS_CPT, - POLL_CLASS_MKS, - POLL_FIXED_CLASSES, - POLL_DEFAULT_FIXED_CLASSES, - /* Size enum to maximum */ - POLL_MAX_CLASSES = 31, -} PollClass; - -/* - * Do not use; Special pseudo private poll class supported by - * PollDefault only - */ -#define POLL_DEFAULT_CLASS_NET POLL_FIXED_CLASSES -#define POLL_DEFAULT_CS_NET PollClassSet_Singleton(POLL_DEFAULT_CLASS_NET) - -/* - * Each callback is registered in a set of classes - */ - -typedef struct PollClassSet { - uintptr_t bits; -} PollClassSet; - -/* An empty PollClassSet. */ -static INLINE PollClassSet -PollClassSet_Empty(void) -{ - PollClassSet set = { 0 }; - return set; -} - -/* A PollClassSet with the single member. */ -static INLINE PollClassSet -PollClassSet_Singleton(PollClass c) -{ - PollClassSet s = PollClassSet_Empty(); - - ASSERT_ON_COMPILE(POLL_MAX_CLASSES < sizeof s.bits * 8); - ASSERT(c < POLL_MAX_CLASSES); - - s.bits = CONST3264U(1) << c; - return s; -} - -/* Combine two PollClassSets. */ -static INLINE PollClassSet -PollClassSet_Union(PollClassSet lhs, PollClassSet rhs) -{ - PollClassSet set; - set.bits = lhs.bits | rhs.bits; - return set; -} - -/* Add single class to PollClassSet. */ -static INLINE PollClassSet -PollClassSet_Include(PollClassSet set, PollClass c) -{ - return PollClassSet_Union(set, PollClassSet_Singleton(c)); -} - - -#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN) -#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \ - PollClassSet_Singleton(POLL_CLASS_PAUSE)) -#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \ - PollClassSet_Singleton(POLL_CLASS_CPT)) -#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \ - PollClassSet_Singleton(POLL_CLASS_IPC)) -#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */ -#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS) -/* - * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it. - */ -#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC) - -/* - * Poll class-set taxonomy: - * POLL_CS_MAIN - * - Unless you NEED another class, use POLL_CS_MAIN. - * POLL_CS_PAUSE - * - For callbacks that must occur even if the guest is paused. - * Most VMDB or Foundry commands are in this category. - * POLL_CS_CPT - * - Only for callbacks which can trigger intermediate Checkpoint - * transitions. - * The ONLY such callback is Migrate. - * POLL_CS_IPC - * - Only for callbacks which can contain Msg_(Post|Hint|Question) - * responses, and for signal handlers (why)? - * Vigor, VMDB, and Foundry can contain Msg_* responses. - * POLL_CS_MKS - * - Callback runs in MKS thread. - * POLL_CS_ALWAYS - * - Only for events that must be processed immediately. - * The ONLY such callback is OvhdMemVmxSizeCheck. - */ - - -/* - * Poll_Callback flags - */ - -#define POLL_FLAG_PERIODIC 0x01 // keep after firing -#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory -#define POLL_FLAG_READ 0x04 // device is ready for reading -#define POLL_FLAG_WRITE 0x08 // device is ready for writing -#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket -#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking -#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events -#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor. -#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl -#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop - - -typedef void (*PollerFunction)(void *clientData); -typedef void (*PollerFireWrapper)(PollerFunction func, - void *funcData, - void *wrapperData); -typedef Bool (*PollerErrorFn)(const char *errorStr); - -/* - * Initialisers: - * - * For the sake of convenience, we declare the initialisers - * for custom implmentations here, even though the actual - * implementations are distinct from the core poll code. - */ - -typedef struct PollOptions { - Bool locked; // Use internal MXUser for locking - Bool allowFullQueue; // Don't assert when device event queue is full. - VThreadID windowsMsgThread; // thread that processes Windows messages - PollerFireWrapper fireWrapperFn; // optional; may be useful for stats - void *fireWrapperData; // optional - PollerErrorFn errorFn; // optional; called upon unrecoverable error -} PollOptions; - - -void Poll_InitDefault(void); -void Poll_InitDefaultEx(const PollOptions *opts); -void Poll_InitGtk(void); // On top of glib for Linux -void Poll_InitCF(void); // On top of CoreFoundation for OSX - - -/* - * Functions - */ -int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]); -void Poll_Loop(Bool loop, Bool *exit, PollClass c); -void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout); -Bool Poll_LockingEnabled(void); -void Poll_Exit(void); - - -/* - * Poll_Callback adds a callback regardless of whether an identical one exists. - * The exception to this rule is POLL_DEVICE callbacks: there is a maximum of - * one read and one write callback per fd. - * - * Poll_CallbackRemove removes one callback. If there are multiple identical - * callbacks, which one is removed is an implementation detail. Note that in - * the case of POLL_DEVICE and POLL_REALTIME callbacks, the fd/delay used to - * create the callback is not specified when removing, so all callbacks - * of those types with the same flags, function, and clientData are considered - * "identical" even if their fd/delay differed. - */ - -VMwareStatus Poll_Callback(PollClassSet classSet, - int flags, - PollerFunction f, - void *clientData, - PollEventType type, - PollDevHandle info, // fd/microsec delay - MXUserRecLock *lck); -Bool Poll_CallbackRemove(PollClassSet classSet, - int flags, - PollerFunction f, - void *clientData, - PollEventType type); -Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet, - int flags, - PollerFunction f, - PollEventType type, - void **clientData); - -void Poll_NotifyChange(PollClassSet classSet); - -/* - * Wrappers for Poll_Callback and Poll_CallbackRemove that present - * simpler subsets of those interfaces. - */ - -VMwareStatus Poll_CB_Device(PollerFunction f, - void *clientData, - PollDevHandle device, - Bool periodic); - -Bool Poll_CB_DeviceRemove(PollerFunction f, - void *clientData, - Bool periodic); - - -VMwareStatus Poll_CB_RTime(PollerFunction f, - void *clientData, - int64 delay, // microseconds - Bool periodic, - MXUserRecLock *lock); - -Bool Poll_CB_RTimeRemove(PollerFunction f, - void *clientData, - Bool periodic); - - -#ifdef _WIN32 -void Poll_SetPumpsWindowsMessages(Bool pumps); -void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk); -Bool Poll_FireWndCallback(void *lparam); -#endif - -#if defined(__cplusplus) -} // extern "C" -#endif - -#endif // _POLL_H_ diff --git a/lib/include/pollImpl.h b/lib/include/pollImpl.h index 46442e55..8bc66997 100644 --- a/lib/include/pollImpl.h +++ b/lib/include/pollImpl.h @@ -44,7 +44,7 @@ #define INCLUDE_ALLOW_USERLEVEL #include "includeCheck.h" -#include "poll.h" +#include "vm_poll.h" #include "vm_basic_asm.h" #if defined(__cplusplus) diff --git a/lib/include/vm_poll.h b/lib/include/vm_poll.h new file mode 100644 index 00000000..6acd4f35 --- /dev/null +++ b/lib/include/vm_poll.h @@ -0,0 +1,330 @@ +/********************************************************* + * Copyright (C) 1998-2018 VMware, Inc. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation version 2.1 and no 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 Lesser GNU General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + *********************************************************/ + +/********************************************************* + * The contents of this file are subject to the terms of the Common + * Development and Distribution License (the "License") version 1.0 + * and no later version. You may not use this file except in + * compliance with the License. + * + * You can obtain a copy of the License at + * http://www.opensource.org/licenses/cddl1.php + * + * See the License for the specific language governing permissions + * and limitations under the License. + * + *********************************************************/ + + +#ifndef _POLL_H_ +#define _POLL_H_ + +#define INCLUDE_ALLOW_USERLEVEL +#define INCLUDE_ALLOW_VMCORE +#include "includeCheck.h" + +#include "vm_basic_types.h" +#include "vm_basic_defs.h" +#include "vmware.h" +#include "userlock.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +#ifdef _WIN32 +#define HZ 100 +#elif defined linux +#include +#elif __APPLE__ +#include +/* + * Old SDKs don't define TARGET_OS_IPHONE at all. + * New ones define it to 0 on Mac OS X, 1 on iOS. + */ +#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 +#include +#endif +#include +#define HZ 100 +#endif +#ifdef __ANDROID__ +/* + * of android should be included, but its name is same + * with this file. So its content is put here to avoid conflict. + */ +#include +#define HZ 100 +typedef unsigned int nfds_t; +int poll(struct pollfd *, nfds_t, long); +#endif + + +/* + * Poll event types: each type has a different reason for firing, + * or condition that must be met before firing. + */ + +typedef enum { + /* + * Actual Poll queue types against which you can register callbacks. + */ + POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */ + POLL_VTIME = 0, + POLL_REALTIME, + POLL_DEVICE, + POLL_MAIN_LOOP, + POLL_NUM_QUEUES +} PollEventType; + + +/* + * Classes of events + * + * These are the predefined classes. More can be declared + * with Poll_AllocClass(). + */ + +typedef enum PollClass { + POLL_CLASS_MAIN, + POLL_CLASS_PAUSE, + POLL_CLASS_IPC, + POLL_CLASS_CPT, + POLL_CLASS_MKS, + POLL_FIXED_CLASSES, + POLL_DEFAULT_FIXED_CLASSES, + /* Size enum to maximum */ + POLL_MAX_CLASSES = 31, +} PollClass; + +/* + * Do not use; Special pseudo private poll class supported by + * PollDefault only + */ +#define POLL_DEFAULT_CLASS_NET POLL_FIXED_CLASSES +#define POLL_DEFAULT_CS_NET PollClassSet_Singleton(POLL_DEFAULT_CLASS_NET) + +/* + * Each callback is registered in a set of classes + */ + +typedef struct PollClassSet { + uintptr_t bits; +} PollClassSet; + +/* An empty PollClassSet. */ +static INLINE PollClassSet +PollClassSet_Empty(void) +{ + PollClassSet set = { 0 }; + return set; +} + +/* A PollClassSet with the single member. */ +static INLINE PollClassSet +PollClassSet_Singleton(PollClass c) +{ + PollClassSet s = PollClassSet_Empty(); + + ASSERT_ON_COMPILE(POLL_MAX_CLASSES < sizeof s.bits * 8); + ASSERT(c < POLL_MAX_CLASSES); + + s.bits = CONST3264U(1) << c; + return s; +} + +/* Combine two PollClassSets. */ +static INLINE PollClassSet +PollClassSet_Union(PollClassSet lhs, PollClassSet rhs) +{ + PollClassSet set; + set.bits = lhs.bits | rhs.bits; + return set; +} + +/* Add single class to PollClassSet. */ +static INLINE PollClassSet +PollClassSet_Include(PollClassSet set, PollClass c) +{ + return PollClassSet_Union(set, PollClassSet_Singleton(c)); +} + + +#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN) +#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \ + PollClassSet_Singleton(POLL_CLASS_PAUSE)) +#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \ + PollClassSet_Singleton(POLL_CLASS_CPT)) +#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \ + PollClassSet_Singleton(POLL_CLASS_IPC)) +#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */ +#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS) +/* + * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it. + */ +#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC) + +/* + * Poll class-set taxonomy: + * POLL_CS_MAIN + * - Unless you NEED another class, use POLL_CS_MAIN. + * POLL_CS_PAUSE + * - For callbacks that must occur even if the guest is paused. + * Most VMDB or Foundry commands are in this category. + * POLL_CS_CPT + * - Only for callbacks which can trigger intermediate Checkpoint + * transitions. + * The ONLY such callback is Migrate. + * POLL_CS_IPC + * - Only for callbacks which can contain Msg_(Post|Hint|Question) + * responses, and for signal handlers (why)? + * Vigor, VMDB, and Foundry can contain Msg_* responses. + * POLL_CS_MKS + * - Callback runs in MKS thread. + * POLL_CS_ALWAYS + * - Only for events that must be processed immediately. + * The ONLY such callback is OvhdMemVmxSizeCheck. + */ + + +/* + * Poll_Callback flags + */ + +#define POLL_FLAG_PERIODIC 0x01 // keep after firing +#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory +#define POLL_FLAG_READ 0x04 // device is ready for reading +#define POLL_FLAG_WRITE 0x08 // device is ready for writing +#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket +#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking +#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events +#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor. +#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl +#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop + + +typedef void (*PollerFunction)(void *clientData); +typedef void (*PollerFireWrapper)(PollerFunction func, + void *funcData, + void *wrapperData); +typedef Bool (*PollerErrorFn)(const char *errorStr); + +/* + * Initialisers: + * + * For the sake of convenience, we declare the initialisers + * for custom implmentations here, even though the actual + * implementations are distinct from the core poll code. + */ + +typedef struct PollOptions { + Bool locked; // Use internal MXUser for locking + Bool allowFullQueue; // Don't assert when device event queue is full. + VThreadID windowsMsgThread; // thread that processes Windows messages + PollerFireWrapper fireWrapperFn; // optional; may be useful for stats + void *fireWrapperData; // optional + PollerErrorFn errorFn; // optional; called upon unrecoverable error +} PollOptions; + + +void Poll_InitDefault(void); +void Poll_InitDefaultEx(const PollOptions *opts); +void Poll_InitGtk(void); // On top of glib for Linux +void Poll_InitCF(void); // On top of CoreFoundation for OSX + + +/* + * Functions + */ +int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]); +void Poll_Loop(Bool loop, Bool *exit, PollClass c); +void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout); +Bool Poll_LockingEnabled(void); +void Poll_Exit(void); + + +/* + * Poll_Callback adds a callback regardless of whether an identical one exists. + * The exception to this rule is POLL_DEVICE callbacks: there is a maximum of + * one read and one write callback per fd. + * + * Poll_CallbackRemove removes one callback. If there are multiple identical + * callbacks, which one is removed is an implementation detail. Note that in + * the case of POLL_DEVICE and POLL_REALTIME callbacks, the fd/delay used to + * create the callback is not specified when removing, so all callbacks + * of those types with the same flags, function, and clientData are considered + * "identical" even if their fd/delay differed. + */ + +VMwareStatus Poll_Callback(PollClassSet classSet, + int flags, + PollerFunction f, + void *clientData, + PollEventType type, + PollDevHandle info, // fd/microsec delay + MXUserRecLock *lck); +Bool Poll_CallbackRemove(PollClassSet classSet, + int flags, + PollerFunction f, + void *clientData, + PollEventType type); +Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet, + int flags, + PollerFunction f, + PollEventType type, + void **clientData); + +void Poll_NotifyChange(PollClassSet classSet); + +/* + * Wrappers for Poll_Callback and Poll_CallbackRemove that present + * simpler subsets of those interfaces. + */ + +VMwareStatus Poll_CB_Device(PollerFunction f, + void *clientData, + PollDevHandle device, + Bool periodic); + +Bool Poll_CB_DeviceRemove(PollerFunction f, + void *clientData, + Bool periodic); + + +VMwareStatus Poll_CB_RTime(PollerFunction f, + void *clientData, + int64 delay, // microseconds + Bool periodic, + MXUserRecLock *lock); + +Bool Poll_CB_RTimeRemove(PollerFunction f, + void *clientData, + Bool periodic); + + +#ifdef _WIN32 +void Poll_SetPumpsWindowsMessages(Bool pumps); +void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk); +Bool Poll_FireWndCallback(void *lparam); +#endif + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // _POLL_H_ diff --git a/lib/rpcIn/rpcin.c b/lib/rpcIn/rpcin.c index 47a3380e..660382c6 100644 --- a/lib/rpcIn/rpcin.c +++ b/lib/rpcIn/rpcin.c @@ -57,7 +57,7 @@ #if defined(VMTOOLS_USE_VSOCKET) # include -# include "poll.h" +# include "vm_poll.h" # include "asyncsocket.h" # include "vmci_defs.h" #include "dataMap.h" -- 2.23.0 ================================================ FILE: package/openvmtools/0004-Remove-assumptions-about-glibc-being-only-libc-imple.patch ================================================ From a0983d84185f04c4e40778fe951fde4439894882 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 16 Jul 2017 07:37:03 -0700 Subject: [PATCH] Remove assumptions about glibc being only libc implementation on linux Signed-off-by: Khem Raj [Retrieved (and updated to work on current version) from: http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch?h=sumo] Signed-off-by: Fabrice Fontaine --- open-vm-tools/lib/file/fileIOPosix.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) Index: open-vm-tools/lib/file/fileIOPosix.c =================================================================== --- open-vm-tools.orig/lib/file/fileIOPosix.c +++ open-vm-tools/lib/file/fileIOPosix.c @@ -205,7 +205,7 @@ static AlignedPool alignedPool; * are not available in any header file. */ -#if defined(__linux__) && !defined(__ANDROID__) +#if defined(__linux__) && defined(__GLIBC__) #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) /* * We want preadv/pwritev. But due to FOB=64, the symbols are -64. ================================================ FILE: package/openvmtools/0005-Use-configure-test-for-struct-timespec.patch ================================================ From bf1eafb07297711baf9320b1edcca8a3376f117d Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Wed, 18 Nov 2015 09:03:00 +0000 Subject: [PATCH] Use configure test for struct timespec Use the configure script to test for struct time spec instead of trying to keep track of what platforms has it. Signed-off-by: Natanael Copa [Retrieved from: http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch?h=sumo] Signed-off-by: Fabrice Fontaine --- open-vm-tools/configure.ac | 1 + open-vm-tools/lib/include/hgfsUtil.h | 8 +------- 2 files changed, 2 insertions(+), 7 deletions(-) Index: open-vm-tools/configure.ac =================================================================== --- open-vm-tools.orig/configure.ac +++ open-vm-tools/configure.ac @@ -1127,6 +1127,7 @@ AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_CHECK_MEMBERS([struct stat.st_rdev]) +AC_CHECK_MEMBERS([struct timespec.tv_sec],[],[],[[#include ]]) AC_HEADER_TIME AC_STRUCT_TM AC_C_VOLATILE Index: open-vm-tools/lib/include/hgfsUtil.h =================================================================== --- open-vm-tools.orig/lib/include/hgfsUtil.h +++ open-vm-tools/lib/include/hgfsUtil.h @@ -53,13 +53,7 @@ # include # endif # include "vm_basic_types.h" -# if !defined _STRUCT_TIMESPEC && \ - !defined _TIMESPEC_DECLARED && \ - !defined __timespec_defined && \ - !defined sun && \ - !defined __FreeBSD__ && \ - !__APPLE__ && \ - !defined _WIN32 +# if !defined HAVE_STRUCT_TIMESPEC_TV_SEC struct timespec { time_t tv_sec; long tv_nsec; ================================================ FILE: package/openvmtools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch ================================================ From 31ae6f42458f90d4994a4ad8e2b7673691612c36 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Wed, 18 Nov 2015 09:10:14 +0000 Subject: [PATCH] Fix definition of ALLPERMS and ACCESSPERMS The ALLPERMS and ACCESSPERMS defines are not specified in POSIX so assume it is not there instead of testing for specific implementations. This is needed for musl libc. Signed-off-by: Natanael Copa [Retrieved from: http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch?h=sumo] Signed-off-by: Fabrice Fontaine --- open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 8 +++++--- open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c | 3 +-- 2 files changed, 6 insertions(+), 5 deletions(-) Index: open-vm-tools/lib/hgfsServer/hgfsServerLinux.c =================================================================== --- open-vm-tools.orig/lib/hgfsServer/hgfsServerLinux.c +++ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c @@ -107,11 +107,13 @@ typedef struct DirectoryEntry { #endif /* - * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not defined in the - * Solaris version of . + * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not specified in + * POSIX. */ -#ifdef sun +#ifndef ACCESSPERMS # define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) +#endif +#ifndef ALLPERMS # define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) #endif Index: open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c =================================================================== --- open-vm-tools.orig/services/plugins/dndcp/dnd/dndLinux.c +++ open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c @@ -51,7 +51,7 @@ #define DND_ROOTDIR_PERMS (S_IRWXU | S_IRWXG | S_IRWXO) #define DND_STAGINGDIR_PERMS (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) -#ifdef sun +#ifndef ACCESSPERMS #define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) #endif #ifdef __ANDROID__ @@ -60,7 +60,6 @@ */ #define NO_SETMNTENT #define NO_ENDMNTENT -#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) #endif ================================================ FILE: package/openvmtools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch ================================================ From 6cc1c22cc30320f56da552a76bd956db8f255b6a Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Wed, 18 Nov 2015 10:05:07 +0000 Subject: [PATCH] Use configure to test for feature instead of platform Test for various functions instead of trying to keep track of what platform and what version of the given platform has support for what. This should make it easier to port to currently unknown platforms and will solve the issue if a platform add support for a missing feature in the future. The features we test for are: - getifaddrs - getauxval - issetugid - __secure_getenv This is needed for musl libc. Signed-off-by: Natanael Copa [Retrieved (and slightly updated) from: http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch?h=sumo] Signed-off-by: Fabrice Fontaine --- open-vm-tools/configure.ac | 4 ++++ open-vm-tools/lib/misc/idLinux.c | 30 ++++++++++++++---------------- open-vm-tools/lib/nicInfo/nicInfoPosix.c | 8 ++++++-- 3 files changed, 24 insertions(+), 18 deletions(-) Index: open-vm-tools/configure.ac =================================================================== --- open-vm-tools.orig/configure.ac +++ open-vm-tools/configure.ac @@ -798,6 +798,7 @@ AC_CHECK_FUNCS( AC_CHECK_FUNCS([ecvt]) AC_CHECK_FUNCS([fcvt]) +AC_CHECK_FUNCS([getifaddrs getauxval issetugid __secure_getenv]) AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes]) @@ -1063,10 +1064,13 @@ AC_PATH_PROG( ### AC_CHECK_HEADERS([crypt.h]) +AC_CHECK_HEADERS([ifaddrs.h]) AC_CHECK_HEADERS([inttypes.h]) AC_CHECK_HEADERS([stdint.h]) AC_CHECK_HEADERS([stdlib.h]) AC_CHECK_HEADERS([wchar.h]) +AC_CHECK_HEADERS([net/if.h]) +AC_CHECK_HEADERS([sys/auxv.h]) AC_CHECK_HEADERS([sys/inttypes.h]) AC_CHECK_HEADERS([sys/io.h]) AC_CHECK_HEADERS([sys/param.h]) # Required to make the sys/user.h check work correctly on FreeBSD Index: open-vm-tools/lib/misc/idLinux.c =================================================================== --- open-vm-tools.orig/lib/misc/idLinux.c +++ open-vm-tools/lib/misc/idLinux.c @@ -27,12 +27,9 @@ #include #include #include -#ifdef __linux__ -#if defined(__GLIBC__) && \ - (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16)) +#ifdef HAVE_SYS_AUXV_H #include #endif -#endif #ifdef __APPLE__ #include #include @@ -997,31 +994,32 @@ Id_EndSuperUser(uid_t uid) // IN: static Bool IdIsSetUGid(void) { -#if defined(__ANDROID__) - /* Android does not have a secure_getenv, so be conservative. */ - return TRUE; -#else /* * We use __secure_getenv, which returns NULL if the binary is - * setuid or setgid. Alternatives include, + * setuid or setgid, when issetugid or getauxval(AT_SECURE) is not + * available. Alternatives include, * - * a) getauxval(AT_SECURE); not available until glibc 2.16. - * b) __libc_enable_secure; may not be exported. + * a) issetugid(); not (yet?) available in glibc. + * b) getauxval(AT_SECURE); not available until glibc 2.16. + * c) __libc_enable_secure; may not be exported. * - * Use (a) when we are based on glibc 2.16, or newer. + * Use (b) when we are based on glibc 2.16, or newer. */ -#if defined(__GLIBC__) && \ - (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16)) +#if HAVE_ISSETUGID + return issetugid(); +#elif HAVE_GETAUXVAL return getauxval(AT_SECURE) != 0; -#else +#elif HAVE___SECURE_GETENV static const char envName[] = "VMW_SETUGID_TEST"; if (setenv(envName, "1", TRUE) == -1) { return TRUE; /* Conservative */ } return __secure_getenv(envName) == NULL; -#endif +#else + /* Android does not have a secure_getenv, so be conservative. */ + return TRUE; #endif } #endif Index: open-vm-tools/lib/nicInfo/nicInfoPosix.c =================================================================== --- open-vm-tools.orig/lib/nicInfo/nicInfoPosix.c +++ open-vm-tools/lib/nicInfo/nicInfoPosix.c @@ -34,9 +34,13 @@ #include #include #include -#if defined(__FreeBSD__) || defined(__APPLE__) +#if HAVE_SYS_SYSCTL_H # include +#endif +#if HAVE_IFADDRS_H # include +#endif +#if HAVE_NET_IF_H # include #endif #ifndef NO_DNET @@ -348,10 +352,7 @@ GuestInfoGetNicInfo(NicInfoV3 *nicInfo) * ****************************************************************************** */ -#if defined(__FreeBSD__) || \ - defined(__APPLE__) || \ - defined(USERWORLD) || \ - (defined(__linux__) && defined(NO_DNET)) +#if defined(NO_DNET) && defined(HAVE_GETIFADDRS) char * GuestInfoGetPrimaryIP(void) ================================================ FILE: package/openvmtools/0008-Use-configure-test-for-sys-stat.h-include.patch ================================================ From 95c6184d9ff70a47c41768850923a96de9e544aa Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Wed, 18 Nov 2015 10:41:01 +0000 Subject: [PATCH] Use configure test for sys/stat.h include This is needed for musl libc. Signed-off-by: Natanael Copa [Retrieved from: http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch?h=sumo] Signed-off-by: Fabrice Fontaine --- open-vm-tools/services/plugins/vix/vixTools.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: open-vm-tools/services/plugins/vix/vixTools.c =================================================================== --- open-vm-tools.orig/services/plugins/vix/vixTools.c +++ open-vm-tools/services/plugins/vix/vixTools.c @@ -66,7 +66,7 @@ #include #endif -#if defined(sun) || defined(__FreeBSD__) || defined(__APPLE__) +#ifdef HAVE_SYS_STAT_H #include #endif ================================================ FILE: package/openvmtools/0009-Set-permissions-on-rules-file.patch ================================================ From c3ef6a8285132871ad10f9300d8afff55d8d6de2 Mon Sep 17 00:00:00 2001 From: puneetse <22071208+puneetse@users.noreply.github.com> Date: Wed, 16 Oct 2019 10:09:38 -0700 Subject: [PATCH] Set permissions on rules file udevs rules should not be executable otherwise udev will log a warning in the journal Signed-off-by: Pascal de Bruijn --- udev/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/udev/Makefile.am b/udev/Makefile.am index 68fbc3e27..8b9a4d716 100644 --- a/udev/Makefile.am +++ b/udev/Makefile.am @@ -17,5 +17,5 @@ install-data-local: $(INSTALL) -d $(DESTDIR)$(UDEVRULESDIR) - $(INSTALL) $(srcdir)/99-vmware-scsi-udev.rules $(DESTDIR)$(UDEVRULESDIR) + $(INSTALL) -m 0644 $(srcdir)/99-vmware-scsi-udev.rules $(DESTDIR)$(UDEVRULESDIR) ================================================ FILE: package/openvmtools/0010-Change-DEVPATH-to-devpath.patch ================================================ From 22f5d198b3b2f7e4debed83948ba1baf70d4749a Mon Sep 17 00:00:00 2001 From: puneetse <22071208+puneetse@users.noreply.github.com> Date: Wed, 16 Oct 2019 10:04:41 -0700 Subject: [PATCH] Change $DEVPATH to $devpath $DEVPATH throws a warning by udev. Signed-off-by: Pascal de Bruijn --- udev/99-vmware-scsi-udev.rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/udev/99-vmware-scsi-udev.rules b/udev/99-vmware-scsi-udev.rules index 053b59706..a605d80ef 100644 --- a/udev/99-vmware-scsi-udev.rules +++ b/udev/99-vmware-scsi-udev.rules @@ -2,6 +2,6 @@ # # This file is part of open-vm-tools -ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*", ATTRS{model}=="Virtual disk*", ENV{DEVTYPE}=="disk", RUN+="/bin/sh -c 'echo 180 >/sys$DEVPATH/device/timeout'" -ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*", ATTRS{model}=="VMware Virtual S", ENV{DEVTYPE}=="disk", RUN+="/bin/sh -c 'echo 180 >/sys$DEVPATH/device/timeout'" +ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*", ATTRS{model}=="Virtual disk*", ENV{DEVTYPE}=="disk", RUN+="/bin/sh -c 'echo 180 >/sys/$devpath/device/timeout'" +ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*", ATTRS{model}=="VMware Virtual S", ENV{DEVTYPE}=="disk", RUN+="/bin/sh -c 'echo 180 >/sys/$devpath/device/timeout'" ================================================ FILE: package/openvmtools/0011-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch ================================================ From 0a5032669951ffd6735c294a6f309b0ec6667ea5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 8 Mar 2020 18:49:00 +0100 Subject: [PATCH] open-vm-tools/vmhgfs-fuse/fsutils.h: fix build on musl loff_t is not defined on musl so define it to avoid the following build failure: In file included from module.h:39, from bdhandler.c:31: fsutil.h:76:11: error: unknown type name 'loff_t'; did you mean 'off_t'? loff_t offset); ^~~~~~ off_t Fixes: - http://autobuild.buildroot.org/results/4eba7c4585d318efdb9b965d58d879426588aa14 Signed-off-by: Fabrice Fontaine [Upstream status: not sent yet (upstream is not reactive on third patch] --- vmhgfs-fuse/fsutil.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vmhgfs-fuse/fsutil.h b/vmhgfs-fuse/fsutil.h index 34b6d489..a94f9fbb 100644 --- a/vmhgfs-fuse/fsutil.h +++ b/vmhgfs-fuse/fsutil.h @@ -32,7 +32,8 @@ #include "hgfsProto.h" #include -#if defined(__FreeBSD__) || defined(__SOLARIS__) || defined(__APPLE__) +#if defined(__FreeBSD__) || defined(__SOLARIS__) || defined(__APPLE__) || \ + !(defined(__GLIBC__) || defined(__UCLIBC__)) typedef long long loff_t; #endif -- 2.25.0 ================================================ FILE: package/openvmtools/0012-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch ================================================ From 3f0580f2546de8be7acf1bc78a55a257bc638ebe Mon Sep 17 00:00:00 2001 From: Bartosz Brachaczek Date: Tue, 12 Nov 2019 14:31:08 +0100 Subject: [PATCH] Make HgfsConvertFromNtTimeNsec aware of 64-bit time_t on i386 I verified that this function behaves as expected on x86_64, i386 with 32-bit time_t, and i386 with 64-bit time_t for the following values of ntTtime: UNIX_EPOCH-1, UNIX_EPOCH, UNIX_EPOCH+1, UNIX_S32_MAX-1, UNIX_S32_MAX, UNIX_S32_MAX+1, UNIX_S32_MAX*2+1 I did not verify whether the use of Div643264 is optimal, performance wise. Signed-off-by: Giulio Benetti --- lib/hgfs/hgfsUtil.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/lib/hgfs/hgfsUtil.c b/lib/hgfs/hgfsUtil.c index cc580ab8..49b10040 100644 --- a/lib/hgfs/hgfsUtil.c +++ b/lib/hgfs/hgfsUtil.c @@ -110,23 +110,21 @@ HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format uint64 ntTime) // IN: Time in Windows NT format { #ifdef __i386__ - uint32 sec; - uint32 nsec; + uint64 sec64; + uint32 sec32, nsec; +#endif ASSERT(unixTime); - /* We assume that time_t is 32bit */ - ASSERT_ON_COMPILE(sizeof (unixTime->tv_sec) == 4); - /* Cap NT time values that are outside of Unix time's range */ + if (sizeof (unixTime->tv_sec) == 4) { + /* Cap NT time values that are outside of Unix time's range */ - if (ntTime >= UNIX_S32_MAX) { - unixTime->tv_sec = 0x7FFFFFFF; - unixTime->tv_nsec = 0; - return 1; + if (ntTime >= UNIX_S32_MAX) { + unixTime->tv_sec = 0x7FFFFFFF; + unixTime->tv_nsec = 0; + return 1; + } } -#else - ASSERT(unixTime); -#endif if (ntTime < UNIX_EPOCH) { unixTime->tv_sec = 0; @@ -135,9 +133,15 @@ HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format } #ifdef __i386__ - Div643232(ntTime - UNIX_EPOCH, 10000000, &sec, &nsec); - unixTime->tv_sec = sec; - unixTime->tv_nsec = nsec * 100; + if (sizeof (unixTime->tv_sec) == 4) { + Div643232(ntTime - UNIX_EPOCH, 10000000, &sec32, &nsec); + unixTime->tv_sec = sec32; + unixTime->tv_nsec = nsec * 100; + } else { + Div643264(ntTime - UNIX_EPOCH, 10000000, &sec64, &nsec); + unixTime->tv_sec = sec64; + unixTime->tv_nsec = nsec * 100; + } #else unixTime->tv_sec = (ntTime - UNIX_EPOCH) / 10000000; unixTime->tv_nsec = ((ntTime - UNIX_EPOCH) % 10000000) * 100; -- 2.25.1 ================================================ FILE: package/openvmtools/Config.in ================================================ config BR2_PACKAGE_OPENVMTOOLS bool "openvmtools" depends on BR2_i386 || BR2_x86_64 depends on BR2_USE_MMU # libglib2 depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_ENABLE_LOCALE depends on !BR2_TOOLCHAIN_USES_UCLIBC select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBDNET select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC help Open Virtual Machine Tools for VMware guest OS http://open-vm-tools.sourceforge.net/ ICU locales, Xerces, and X11 tools are currently not supported. NOTE: Support for vmblock-fuse will be enabled in openvmtools if the libfuse package is selected. if BR2_PACKAGE_OPENVMTOOLS config BR2_PACKAGE_OPENVMTOOLS_PAM bool "PAM support" # linux-pam needs locale and wchar, but we already have this # dependency on the main symbol, above. depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LINUX_PAM help Support for PAM in openvmtools comment "PAM support needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_OPENVMTOOLS_RESOLUTIONKMS bool "resolutionkms support" depends on BR2_PACKAGE_HAS_UDEV depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm depends on BR2_i386 || BR2_x86_64 # libdrm vmwgfx select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBDRM_VMWGFX help Enable support for resolutionkms comment "resolutionkms needs udev, a toolchain w/ threads" depends on BR2_i386 || BR2_x86_64 depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_HAS_THREADS endif comment "openvmtools needs a glibc or musl toolchain w/ wchar, threads, locale" depends on BR2_i386 || BR2_x86_64 depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_ENABLE_LOCALE || \ BR2_TOOLCHAIN_USES_UCLIBC ================================================ FILE: package/openvmtools/S10vmtoolsd ================================================ #!/bin/sh # # Starts vmtoolsd for openvmtools # DAEMON="vmtoolsd" PIDFILE="/var/run/$DAEMON.pid" VMTOOLSD_ARGS="-b" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "/usr/bin/$DAEMON" \ -- $VMTOOLSD_ARGS "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/openvmtools/openvmtools.hash ================================================ # locally computed sha256 364cd0fdfa5a05e872d08609659e6231ec99788669f7ebba24bfb8c94168daef open-vm-tools-10.3.5-10430147.tar.gz sha256 f734933bd7d49aef25aaf897ed7281ee822e8635056e69b895a7d2e668937fc5 COPYING ================================================ FILE: package/openvmtools/openvmtools.mk ================================================ ################################################################################ # # openvmtools # ################################################################################ OPENVMTOOLS_VERSION_MAJOR = 10.3.5 OPENVMTOOLS_VERSION = $(OPENVMTOOLS_VERSION_MAJOR)-10430147 OPENVMTOOLS_SITE = https://github.com/vmware/open-vm-tools/releases/download/stable-$(OPENVMTOOLS_VERSION_MAJOR) OPENVMTOOLS_SOURCE = open-vm-tools-$(OPENVMTOOLS_VERSION).tar.gz OPENVMTOOLS_LICENSE = LGPL-2.1 OPENVMTOOLS_LICENSE_FILES = COPYING # configure.ac is patched OPENVMTOOLS_AUTORECONF = YES OPENVMTOOLS_CONF_OPTS = --with-dnet \ --without-icu --without-x --without-gtk2 \ --without-gtkmm --without-kernel-modules \ --disable-deploypkg --without-xerces OPENVMTOOLS_CONF_ENV += \ CUSTOM_DNET_CPPFLAGS=" " \ LIBS=$(TARGET_NLS_LIBS) OPENVMTOOLS_DEPENDENCIES = \ host-nfs-utils \ libglib2 \ libdnet \ $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_PACKAGE_LIBTIRPC),y) OPENVMTOOLS_DEPENDENCIES += libtirpc endif # When libfuse is available, openvmtools can build vmblock-fuse, so # make sure that libfuse gets built first ifeq ($(BR2_PACKAGE_LIBFUSE),y) OPENVMTOOLS_DEPENDENCIES += libfuse endif ifeq ($(BR2_PACKAGE_OPENSSL),y) OPENVMTOOLS_CONF_OPTS += --with-ssl OPENVMTOOLS_DEPENDENCIES += openssl else OPENVMTOOLS_CONF_OPTS += --without-ssl endif ifeq ($(BR2_PACKAGE_OPENVMTOOLS_PAM),y) OPENVMTOOLS_CONF_OPTS += --with-pam OPENVMTOOLS_DEPENDENCIES += linux-pam else OPENVMTOOLS_CONF_OPTS += --without-pam endif ifeq ($(BR2_PACKAGE_OPENVMTOOLS_RESOLUTIONKMS),y) OPENVMTOOLS_CONF_OPTS += --enable-resolutionkms OPENVMTOOLS_DEPENDENCIES += libdrm udev else OPENVMTOOLS_CONF_OPTS += --disable-resolutionkms endif # symlink needed by lib/system/systemLinux.c (or will cry in /var/log/messages) # defined in lib/misc/hostinfoPosix.c # /sbin/shutdown needed for Guest OS restart/shutdown from hypervisor define OPENVMTOOLS_POST_INSTALL_TARGET_THINGIES ln -fs os-release $(TARGET_DIR)/etc/lfs-release if [ ! -e $(TARGET_DIR)/sbin/shutdown ]; then \ $(INSTALL) -D -m 755 package/openvmtools/shutdown \ $(TARGET_DIR)/sbin/shutdown; \ fi endef OPENVMTOOLS_POST_INSTALL_TARGET_HOOKS += OPENVMTOOLS_POST_INSTALL_TARGET_THINGIES define OPENVMTOOLS_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/openvmtools/S10vmtoolsd \ $(TARGET_DIR)/etc/init.d/S10vmtoolsd endef define OPENVMTOOLS_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/openvmtools/vmtoolsd.service \ $(TARGET_DIR)/usr/lib/systemd/system/vmtoolsd.service endef $(eval $(autotools-package)) ================================================ FILE: package/openvmtools/shutdown ================================================ #!/bin/sh #compatibility script for openvmtools if [ "$1" == "-r" ]; then /sbin/reboot else /sbin/poweroff fi ================================================ FILE: package/openvmtools/vmtoolsd.service ================================================ [Unit] Description=vmtoolsd for openvmtools After=syslog.target network.target ConditionVirtualization=vmware [Service] Type=forking PIDFile=/run/vmtoolsd.pid ExecStart=/usr/bin/vmtoolsd -b /run/vmtoolsd.pid Restart=on-failure KillMode=process KillSignal=SIGKILL [Install] WantedBy=multi-user.target ================================================ FILE: package/openvpn/Config.in ================================================ config BR2_PACKAGE_OPENVPN bool "openvpn" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_MBEDTLS select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL help OpenVPN is a full-featured SSL VPN solution which can accomodate a wide range of configurations, including road warrior access, home/office/campus telecommuting, WiFi security, secure branch office linking, and enterprise-scale remote access solutions with load balancing, failover, and fine-grained access-controls. http://openvpn.net/ if BR2_PACKAGE_OPENVPN config BR2_PACKAGE_OPENVPN_LZ4 bool "LZ4 compression" default y select BR2_PACKAGE_LZ4 help Enable LZ4 compression. config BR2_PACKAGE_OPENVPN_LZO bool "LZO compression" default y select BR2_PACKAGE_LZO help Enable LZO compression. config BR2_PACKAGE_OPENVPN_SMALL bool "Optimize for small size" help Make OpenVPN as small as possible. You loose eurephia, debugging info, help messages and more. It saves around 100 KiB in binary file size. endif ================================================ FILE: package/openvpn/S60openvpn ================================================ #!/bin/sh -e # # Original version by Robert Leslie # , edited by iwj and cs # Modified for openvpn by Alberto Gonzalez Iniesta # Modified for restarting / starting / stopping single tunnels by Richard Mueller test $DEBIAN_SCRIPT_DEBUG && set -v -x CONFIG_DIR=/etc/openvpn test -d $CONFIG_DIR || exit 0 start_vpn () { printf " $NAME " start-stop-daemon -S -p /var/run/openvpn.$NAME.pid -x /usr/sbin/openvpn -- \ --daemon --writepid /var/run/openvpn.$NAME.pid \ --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR [ $? = 0 ] && echo "OK" || echo "FAIL" } stop_vpn () { printf " $NAME " start-stop-daemon -K -p /var/run/openvpn.$NAME.pid -x /usr/sbin/openvpn } case "$1" in start) printf "Starting openvpn:" if test -z $2 ; then for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do NAME=${CONFIG%%.conf} start_vpn done else if test -e $CONFIG_DIR/$2.conf ; then NAME=$2 start_vpn else printf " No such VPN: $2" fi fi echo "." ;; stop) printf "Stopping openvpn:" if test -z $2 ; then for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do NAME=`echo $PIDFILE | cut -c18-` NAME=${NAME%%.pid} stop_vpn done else if test -e /var/run/openvpn.$2.pid ; then PIDFILE=`ls /var/run/openvpn.$2.pid 2> /dev/null` NAME=`echo $PIDFILE | cut -c18-` NAME=${NAME%%.pid} stop_vpn else printf " No such VPN: $2" fi fi echo "." ;; # We only 'reload' for running VPNs. New ones will only start with 'start' or 'restart'. reload|force-reload) printf "Reloading openvpn:" for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do NAME=`echo $PIDFILE | cut -c18-` NAME=${NAME%%.pid} # If openvpn if running under a different user than root we'll need to restart if egrep '^( |\t)*user' $CONFIG_DIR/$NAME.conf > /dev/null 2>&1 ; then stop_vpn sleep 1 start_vpn printf "(restarted)" else kill -HUP `cat $PIDFILE` || true printf " $NAME" fi done echo "." ;; restart) $0 stop $2 sleep 1 $0 start $2 ;; *) echo "Usage: $0 {start|stop|reload|restart|force-reload}" >&2 exit 1 ;; esac exit 0 # vim:set ai et sts=2 sw=2 tw=0: ================================================ FILE: package/openvpn/openvpn.hash ================================================ # Locally calculated after checking signature sha256 56c0dcd27ab938c4ad07469c86eb8b7408ef64c3e68f98497db8c03f11792436 openvpn-2.5.4.tar.xz sha256 1fcb78d7e478bb8a9408010bdc91b36e213b1facfad093df3f7ce7e28af19043 COPYRIGHT.GPL ================================================ FILE: package/openvpn/openvpn.mk ================================================ ################################################################################ # # openvpn # ################################################################################ OPENVPN_VERSION = 2.5.4 OPENVPN_SOURCE = openvpn-$(OPENVPN_VERSION).tar.xz OPENVPN_SITE = http://swupdate.openvpn.net/community/releases OPENVPN_DEPENDENCIES = host-pkgconf OPENVPN_LICENSE = GPL-2.0 OPENVPN_LICENSE_FILES = COPYRIGHT.GPL OPENVPN_CPE_ID_VENDOR = openvpn OPENVPN_SELINUX_MODULES = openvpn OPENVPN_CONF_OPTS = \ --disable-unit-tests \ $(if $(BR2_STATIC_LIBS),--disable-plugins) OPENVPN_CONF_ENV = NETSTAT=/bin/netstat ifeq ($(BR2_PACKAGE_OPENVPN_SMALL),y) OPENVPN_CONF_OPTS += \ --enable-small \ --disable-plugins endif ifeq ($(BR2_PACKAGE_OPENVPN_LZ4),y) OPENVPN_DEPENDENCIES += lz4 else OPENVPN_CONF_OPTS += --disable-lz4 endif ifeq ($(BR2_PACKAGE_OPENVPN_LZO),y) OPENVPN_DEPENDENCIES += lzo else OPENVPN_CONF_OPTS += --disable-lzo endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) OPENVPN_DEPENDENCIES += libselinux OPENVPN_CONF_OPTS += --enable-selinux else OPENVPN_CONF_OPTS += --disable-selinux endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) OPENVPN_DEPENDENCIES += linux-pam OPENVPN_CONF_OPTS += --enable-plugin-auth-pam else OPENVPN_CONF_OPTS += --disable-plugin-auth-pam endif ifeq ($(BR2_PACKAGE_OPENSSL),y) OPENVPN_DEPENDENCIES += openssl OPENVPN_CONF_OPTS += --with-crypto-library=openssl else ifeq ($(BR2_PACKAGE_MBEDTLS),y) OPENVPN_DEPENDENCIES += mbedtls OPENVPN_CONF_OPTS += --with-crypto-library=mbedtls endif ifeq ($(BR2_PACKAGE_PKCS11_HELPER),y) OPENVPN_DEPENDENCIES += pkcs11-helper OPENVPN_CONF_OPTS += --enable-pkcs11 else OPENVPN_CONF_OPTS += --disable-pkcs11 endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) OPENVPN_DEPENDENCIES += systemd OPENVPN_CONF_OPTS += --enable-systemd else OPENVPN_CONF_OPTS += --disable-systemd endif define OPENVPN_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/openvpn/S60openvpn \ $(TARGET_DIR)/etc/init.d/S60openvpn endef $(eval $(autotools-package)) ================================================ FILE: package/openzwave/Config.in ================================================ config BR2_PACKAGE_OPENZWAVE bool "openzwave" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR select BR2_PACKAGE_TINYXML 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 a toolchain w/ C++, dynamic library, NPTL, wchar" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_USE_WCHAR ================================================ FILE: package/openzwave/openzwave.hash ================================================ # Locally computed: sha256 3c0b7e63319832c0eea5a251facd8c4d43f8815356ea61361f8bb9652b2ad8be openzwave-62444b0f979c337d2091d77d89cf63c2ae9775cf.tar.gz sha256 e3a994d82e644b03a792a930f574002658412f62407f5fee083f2555c5f23118 LICENSE sha256 c8db08727d03bea1213cdb29459b4b489b0d68a0866765df40ff205c6cd7224b licenses/license.txt sha256 4da452226e9064b597020ad404e1c78d8175bc31ad7c1908485a92c0a4d70284 licenses/lgpl.txt sha256 33ffdead480674d5f33e2934822a3b93c93e3f8c894667a3bf30bd1195b38f83 licenses/gpl.txt sha256 6f50ebf9af9b6658c7936ffcc6fedd99254df984c0fec2e6ffb9f3aa1c4ef3e1 licenses/Apache-License-2.0.txt ================================================ FILE: package/openzwave/openzwave.mk ================================================ ################################################################################ # # openzwave # ################################################################################ OPENZWAVE_VERSION = 62444b0f979c337d2091d77d89cf63c2ae9775cf OPENZWAVE_SITE = $(call github,OpenZWave,open-zwave,$(OPENZWAVE_VERSION)) OPENZWAVE_LICENSE = LGPL-3.0+, GPL-3.0 (examples), Apache-2.0 (sh2ju.sh) OPENZWAVE_LICENSE_FILES = LICENSE licenses/license.txt licenses/lgpl.txt \ licenses/gpl.txt licenses/Apache-License-2.0.txt OPENZWAVE_DEPENDENCIES = tinyxml 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. # Set {DEBUG,RELEASE}_CFLAGS to remove -Werror. OPENZWAVE_MAKE_OPTS = \ CROSS_COMPILE="$(TARGET_CROSS)" \ PREFIX=/usr \ instlibdir=/usr/lib \ pkgconfigdir=/usr/lib/pkgconfig \ sysconfdir=/etc/openzwave \ DOXYGEN= \ DEBUG_CFLAGS="-fPIC -std=c++11" \ RELEASE_CFLAGS="-fPIC -std=c++11" \ USE_BI_TXML=0 ifeq ($(BR2_PACKAGE_HAS_UDEV),y) OPENZWAVE_DEPENDENCIES += host-pkgconf udev OPENZWAVE_MAKE_OPTS += USE_HID=1 else OPENZWAVE_MAKE_OPTS += USE_HID=0 endif 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)) ================================================ FILE: package/opkg/Config.in ================================================ comment "opkg needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR config BR2_PACKAGE_OPKG bool "opkg" depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR # libarchive select BR2_PACKAGE_LIBARCHIVE help Opkg is a lightweight package management system, based on ipkg. It is written in C and resembles apt/dpkg in operation. It is intended for use on embedded Linux devices. Opkg is maintained, stable, robust and conservative in its memory usage, despite its buggy ipkg ancestry. As best it can, opkg maintains backwards compatibility with ipkg and conforms to a subset of debian's policy manual regarding control files. https://code.google.com/archive/p/opkg/ 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 Enable opkg package signature checking support using gnupg/libgpgme. endif ================================================ FILE: package/opkg/opkg.hash ================================================ # From http://downloads.yoctoproject.org/releases/opkg/SHA256SUMS sha256 a1214a75fa34fb9228db8da47308e0e711b1c93fd8938cf164c10fd28eb50f1e opkg-0.4.5.tar.gz # Locally calculated sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/opkg/opkg.mk ================================================ ################################################################################ # # opkg # ################################################################################ OPKG_VERSION = 0.4.5 OPKG_SITE = https://downloads.yoctoproject.org/releases/opkg OPKG_DEPENDENCIES = host-pkgconf libarchive OPKG_LICENSE = GPL-2.0+ OPKG_LICENSE_FILES = COPYING OPKG_INSTALL_STAGING = YES OPKG_CONF_OPTS = --disable-curl # Ensure directory for lockfile exists define OPKG_CREATE_LOCKDIR mkdir -p $(TARGET_DIR)/usr/lib/opkg endef ifeq ($(BR2_PACKAGE_OPKG_GPG_SIGN),y) OPKG_CONF_OPTS += --enable-gpg OPKG_CONF_ENV += \ ac_cv_path_GPGME_CONFIG=$(STAGING_DIR)/usr/bin/gpgme-config \ ac_cv_path_GPGERR_CONFIG=$(STAGING_DIR)/usr/bin/gpg-error-config OPKG_DEPENDENCIES += libgpgme libgpg-error else OPKG_CONF_OPTS += --disable-gpg endif OPKG_POST_INSTALL_TARGET_HOOKS += OPKG_CREATE_LOCKDIR $(eval $(autotools-package)) ================================================ FILE: package/opkg-utils/Config.in ================================================ config BR2_PACKAGE_OPKG_UTILS bool "opkg-utils" depends on !BR2_nios2 || BR2_PACKAGE_BUSYBOX # binutils depends on BR2_USE_MMU # bash, python3 depends on BR2_USE_WCHAR # python3 depends on BR2_TOOLCHAIN_HAS_THREADS # python3 <- libffi depends on !BR2_STATIC_LIBS # python3 depends on !BR2_PACKAGE_PYTHON # python3 select BR2_PACKAGE_BINUTILS if !BR2_PACKAGE_BUSYBOX # runtime select BR2_PACKAGE_BINUTILS_TARGET if !BR2_PACKAGE_BUSYBOX # runtime select BR2_PACKAGE_COREUTILS if !BR2_PACKAGE_BUSYBOX # runtime select BR2_PACKAGE_DIFFUTILS if !BR2_PACKAGE_BUSYBOX # runtime select BR2_PACKAGE_FINDUTILS if !BR2_PACKAGE_BUSYBOX # runtime select BR2_PACKAGE_GREP if !BR2_PACKAGE_BUSYBOX # runtime select BR2_PACKAGE_GZIP if !BR2_PACKAGE_BUSYBOX # runtime select BR2_PACKAGE_SED if !BR2_PACKAGE_BUSYBOX # runtime select BR2_PACKAGE_TAR if !BR2_PACKAGE_BUSYBOX # runtime select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash select BR2_PACKAGE_BASH # runtime select BR2_PACKAGE_PYTHON3 # runtime help Helper scripts for use with the opkg package manager. https://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/ comment "opkg-utils needs a toolchain w/ wchar, threads, dynamic library" depends on !BR2_nios2 || BR2_PACKAGE_BUSYBOX depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS comment "opkg-utils needs python3" depends on !BR2_nios2 || BR2_PACKAGE_BUSYBOX depends on BR2_USE_MMU depends on BR2_PACKAGE_PYTHON ================================================ FILE: package/opkg-utils/Config.in.host ================================================ config BR2_PACKAGE_HOST_OPKG_UTILS bool "host opkg-utils" help Helper scripts for use with the opkg package manager. https://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/ ================================================ FILE: package/opkg-utils/opkg-utils.hash ================================================ # Locally calculated sha256 e0fcaab51bff2149bd6560fb4238319d502dd99b581f66763d702e75c224736d opkg-utils-0.4.5-br1.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/opkg-utils/opkg-utils.mk ================================================ ################################################################################ # # opkg-utils # ################################################################################ OPKG_UTILS_VERSION = 0.4.5 OPKG_UTILS_SITE = https://git.yoctoproject.org/git/opkg-utils OPKG_UTILS_SITE_METHOD = git OPKG_UTILS_LICENSE = GPL-2.0+ OPKG_UTILS_LICENSE_FILES = COPYING HOST_OPKG_UTILS_DEPENDENCIES = \ $(BR2_PYTHON3_HOST_DEPENDENCY) \ host-diffutils \ host-lz4 \ host-xz # Nothing to build; only scripts to install. define OPKG_UTILS_INSTALL_CMDS $(MAKE) -C $(@D) PREFIX=$(TARGET_DIR) install-utils endef # Nothing to build; only scripts to install. define HOST_OPKG_UTILS_INSTALL_CMDS $(MAKE) -C $(@D) PREFIX=$(HOST_DIR) install-utils endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/oprofile/0001-musl.patch ================================================ Remove non-Posix use of FTW_ACTIONRETVAL The musl implementation of nftw doesn't support the glibc extension FTW_ACTIONRETVAL. Since none of the features of FTW_ACTIONRETVAL are used here, just use the normal nftw return value. Downloaded from: https://github.com/openwrt-mirror/openwrt/blob/f22d5e25660106a48727c7aa5d1a73e4171a7987/package/devel/oprofile/patches/100-musl.patch after I found a hint for the patch here: http://patchwork.openembedded.org/patch/112675/ Removed unneeded patch for libop/op_events.c. Because openwrt removed the oprofile package from their repo last week https://github.com/openwrt-mirror/openwrt/commit/aaf46a8524e138e1673a398e8d2dd9357405b313#diff-fe14456f94abf436d997e2c01c10f3bd I decided to put this patch into the buildroot repo instead of adding _PATCH to oprofile.mk Signed-off-by: Bernd Kuhls --- a/pe_profiling/operf.cpp +++ b/pe_profiling/operf.cpp @@ -857,11 +857,14 @@ static int __delete_old_previous_sample_ int tflag __attribute__((unused)), struct FTW *ftwbuf __attribute__((unused))) { + int err; + if (remove(fpath)) { + err = errno; perror("sample data removal error"); - return FTW_STOP; + return err; } else { - return FTW_CONTINUE; + return 0; } } @@ -896,7 +899,7 @@ static void convert_sample_data(void) return; if (!operf_options::append) { - int flags = FTW_DEPTH | FTW_ACTIONRETVAL; + int flags = FTW_DEPTH; errno = 0; if (nftw(previous_sampledir.c_str(), __delete_old_previous_sample_data, 32, flags) !=0 && errno != ENOENT) { ================================================ FILE: package/oprofile/Config.in ================================================ # 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_NEEDS_LIBPFM4 bool default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le config BR2_PACKAGE_OPROFILE bool "oprofile" depends on BR2_USE_MMU # fork() depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # binutils depends on BR2_PACKAGE_OPROFILE_ARCH_SUPPORTS # libpfm4 is needed on PowerPC, and requires thread support depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_PACKAGE_OPROFILE_NEEDS_LIBPFM4 select BR2_PACKAGE_POPT select BR2_PACKAGE_BINUTILS select BR2_PACKAGE_LIBPFM4 if BR2_PACKAGE_OPROFILE_NEEDS_LIBPFM4 help OProfile is a system-wide profiler for Linux systems, capable of profiling all running code at low overhead. OProfile is released under the GNU GPL. It consists of a kernel driver and a daemon for collecting sample data, and several post-profiling tools for turning data into information. OProfile leverages the hardware performance counters of the CPU to enable profiling of a wide variety of interesting statistics, which can also be used for basic time-spent profiling. All code is profiled: hardware and software interrupt handlers, kernel modules, the kernel, shared libraries, and applications. https://sourceforge.net/projects/oprofile/ comment "oprofile needs a toolchain w/ C++, wchar" depends on BR2_USE_MMU depends on BR2_PACKAGE_OPROFILE_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR comment "oprofile needs a toolchain w/ NPTL on PowerPC(64)" depends on BR2_USE_MMU && BR2_PACKAGE_OPROFILE_NEEDS_LIBPFM4 depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL ================================================ FILE: package/oprofile/oprofile.hash ================================================ # From http://sourceforge.net/projects/oprofile/files/oprofile/oprofile-1.4.0/ sha1 d4d7634372d18de821b33650ad0ff7392e94c6e3 oprofile-1.4.0.tar.gz md5 ac0ff685ec9735e30d6a4d19de0efed7 oprofile-1.4.0.tar.gz # Hash for license file: sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/oprofile/oprofile.mk ================================================ ################################################################################ # # oprofile # ################################################################################ OPROFILE_VERSION = 1.4.0 OPROFILE_SITE = http://downloads.sourceforge.net/project/oprofile/oprofile/oprofile-$(OPROFILE_VERSION) OPROFILE_LICENSE = GPL-2.0+ OPROFILE_LICENSE_FILES = COPYING OPROFILE_CPE_ID_VENDOR = maynard_johnson OPROFILE_CONF_OPTS = \ --disable-account-check \ --enable-gui=no \ --with-kernel=$(STAGING_DIR)/usr OPROFILE_BINARIES = \ utils/ophelp pp/opannotate pp/oparchive pp/opgprof \ pp/opreport opjitconv/opjitconv \ utils/op-check-perfevents libabi/opimport \ pe_counting/ocount pe_profiling/operf ifeq ($(BR2_i386),y) OPROFILE_ARCH = i386 endif ifeq ($(BR2_mipsel),y) OPROFILE_ARCH = mips endif ifeq ($(BR2_powerpc),y) OPROFILE_ARCH = ppc endif ifeq ($(BR2_x86_64),y) OPROFILE_ARCH = x86-64 endif ifeq ($(OPROFILE_ARCH),) OPROFILE_ARCH = $(BR2_ARCH) endif OPROFILE_DEPENDENCIES = popt binutils host-pkgconf ifeq ($(BR2_PACKAGE_LIBPFM4),y) OPROFILE_DEPENDENCIES += libpfm4 endif ifeq ($(BR2_STATIC_LIBS),) define OPROFILE_INSTALL_SHARED_LIBRARY $(INSTALL) -m 755 $(@D)/libopagent/.libs/*.so* $(TARGET_DIR)/usr/lib/oprofile endef endif define OPROFILE_INSTALL_TARGET_CMDS $(INSTALL) -d -m 755 $(TARGET_DIR)/usr/bin $(INSTALL) -d -m 755 $(TARGET_DIR)/usr/share/oprofile $(INSTALL) -d -m 755 $(TARGET_DIR)/usr/lib/oprofile if [ -d $(@D)/events/$(OPROFILE_ARCH) ]; then \ cp -dpfr $(@D)/events/$(OPROFILE_ARCH) \ $(TARGET_DIR)/usr/share/oprofile; \ fi $(INSTALL) -m 644 $(@D)/libregex/stl.pat $(TARGET_DIR)/usr/share/oprofile $(INSTALL) -m 755 $(addprefix $(@D)/, $(OPROFILE_BINARIES)) $(TARGET_DIR)/usr/bin $(OPROFILE_INSTALL_SHARED_LIBRARY) endef $(eval $(autotools-package)) ================================================ FILE: package/optee-benchmark/Config.in ================================================ config BR2_PACKAGE_OPTEE_BENCHMARK bool "optee-benchmark" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS # optee-client depends on !BR2_STATIC_LIBS # optee-client depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 # optee-client select BR2_PACKAGE_OPTEE_CLIENT select BR2_PACKAGE_LIBYAML help Enable the OP-TEE benchmark package that brings facilities for profiling traversal and execution timings when invoking OP-TEE. OP-TEE benchmark is a component delivered by the OP-TEE project. http://github.com/linaro-swg/optee_benchmark comment "optee-benchmark needs a toolchain w/ threads, dynamic library, headers >= 4.3" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 ================================================ FILE: package/optee-benchmark/optee-benchmark.hash ================================================ # From https://github.com/linaro-swg/optee_benchmark/archive/3.15.0/optee-benchmark-3.15.0.tar.gz sha256 f1ddac5e9f58333194eb302e6d9840fa334300bc103abb3d9f783bf009a78c50 optee-benchmark-3.15.0.tar.gz # Locally computed sha256 0571be5b739142dc3e40e0a4e7e30d4ab8bff0d4d606a3f2db2010745587d383 LICENSE ================================================ FILE: package/optee-benchmark/optee-benchmark.mk ================================================ ################################################################################ # # optee-benchmark # ################################################################################ OPTEE_BENCHMARK_VERSION = 3.15.0 OPTEE_BENCHMARK_SITE = $(call github,linaro-swg,optee_benchmark,$(OPTEE_BENCHMARK_VERSION)) OPTEE_BENCHMARK_LICENSE = BSD-2-Clause OPTEE_BENCHMARK_LICENSE_FILES = LICENSE OPTEE_BENCHMARK_DEPENDENCIES = optee-client libyaml $(eval $(cmake-package)) ================================================ FILE: package/optee-client/Config.in ================================================ config BR2_PACKAGE_OPTEE_CLIENT bool "optee-client" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 # MMC_IOC_MULTI_CMD help Enable the OP-TEE client package that brings non-secure client application resources for OP-TEE support. OP-TEE client is a component delivered by the OP-TEE project. The client API library allows application to invoke trusted applications hosted in the OP-TEE OS secure world. The supplicant provides services hosted by the non-secure world and invoked by the secure world. https://github.com/OP-TEE/optee_client if BR2_PACKAGE_OPTEE_CLIENT config BR2_PACKAGE_OPTEE_CLIENT_TEE_FS_PATH string "Path for normal world OS secure storage" default "/data/tee" help Path to storage area for secure storage based on the normal world OS providing the actual storage via tee-supplicant. config BR2_PACKAGE_OPTEE_CLIENT_RPMB_EMU bool "Enable RPMB emulation" default y help Enable RPMB device emulation in tee-supplicant. config BR2_PACKAGE_OPTEE_CLIENT_SUPP_PLUGINS bool "Enable TEE supplicant plugins" default y depends on !BR2_STATIC_LIBS # dlfcn.h help Enable TEE supplicant plugin support. endif comment "optee-client needs a toolchain w/ threads, headers >= 4.3" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 ================================================ FILE: package/optee-client/S30optee ================================================ #!/bin/sh DAEMON="tee-supplicant" PIDFILE="/var/run/$DAEMON.pid" DAEMON_ARGS="-d /dev/teepriv0" start() { printf 'Starting %s: ' "$DAEMON" start-stop-daemon -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- $DAEMON_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature (does not # reconfigure/restart on SIGHUP, just closes all open files). restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/optee-client/optee-client.hash ================================================ # From https://github.com/OP-TEE/optee_client/archive/3.15.0/optee-client-3.15.0.tar.gz sha256 e1ea6c953e3584248d7a62050813e5ac0f0112933447954c44236a233a4cbba5 optee-client-3.15.0.tar.gz # Locally computed sha256 fda8385993f112d7ca61b88b54ba5b4cbeec7e43a0f9b317d5186703c1985e8f LICENSE ================================================ FILE: package/optee-client/optee-client.mk ================================================ ################################################################################ # # optee-client # ################################################################################ OPTEE_CLIENT_VERSION = 3.15.0 OPTEE_CLIENT_SITE = $(call github,OP-TEE,optee_client,$(OPTEE_CLIENT_VERSION)) OPTEE_CLIENT_LICENSE = BSD-2-Clause OPTEE_CLIENT_LICENSE_FILES = LICENSE OPTEE_CLIENT_INSTALL_STAGING = YES OPTEE_CLIENT_CONF_OPTS = \ -DCFG_TEE_FS_PARENT_PATH=$(BR2_PACKAGE_OPTEE_CLIENT_TEE_FS_PATH) \ -DCFG_WERROR=OFF ifeq ($(BR2_PACKAGE_OPTEE_CLIENT_RPMB_EMU),y) OPTEE_CLIENT_CONF_OPTS += -DRPMB_EMU=ON else OPTEE_CLIENT_CONF_OPTS += -DRPMB_EMU=OFF endif ifeq ($(BR2_PACKAGE_OPTEE_CLIENT_SUPP_PLUGINS),y) OPTEE_CLIENT_CONF_OPTS += -DCFG_TEE_SUPP_PLUGINS=ON else OPTEE_CLIENT_CONF_OPTS += -DCFG_TEE_SUPP_PLUGINS=OFF endif define OPTEE_CLIENT_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D $(OPTEE_CLIENT_PKGDIR)/S30optee \ $(TARGET_DIR)/etc/init.d/S30optee endef $(eval $(cmake-package)) ================================================ FILE: package/optee-examples/Config.in ================================================ config BR2_PACKAGE_OPTEE_EXAMPLES bool "optee-examples" depends on BR2_TARGET_OPTEE_OS depends on BR2_TOOLCHAIN_HAS_THREADS # optee-client depends on !BR2_STATIC_LIBS # optee-client depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 # optee-client select BR2_PACKAGE_OPTEE_CLIENT select BR2_TARGET_OPTEE_OS_SDK help Enable the OP-TEE examples package that brings examples of implementation of OP-TEE non-secure client applications and secure trusted applications. OP-TEE examples is a component delivered by the OP-TEE project. Trusted application binary files are installed in the target directory /lib/optee_armtz as other trusted applications. At runtime OP-TEE OS can load trusted applications from this non-secure filesystem/directory into the secure world for execution. https://github.com/linaro-swg/optee_examples comment "optee-examples needs a toolchain w/ threads, dynamic library, headers >= 4.3" depends on BR2_TARGET_OPTEE_OS depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 ================================================ FILE: package/optee-examples/optee-examples.hash ================================================ # From https://github.com/linaro-swg/optee_examples/archive/3.15.0/optee-examples-3.15.0.tar.gz sha256 9770827292eea85068913077d3406070f6182389779c5d4a5c0876bffd962353 optee-examples-3.15.0.tar.gz # Locally computed sha256 6f1ef8449cb82ae79d2155605f7985bdf0f08e7ab5007de9b4362e8bf28733b9 LICENSE ================================================ FILE: package/optee-examples/optee-examples.mk ================================================ ################################################################################ # # optee-examples # ################################################################################ OPTEE_EXAMPLES_VERSION = 3.15.0 OPTEE_EXAMPLES_SITE = $(call github,linaro-swg,optee_examples,$(OPTEE_EXAMPLES_VERSION)) OPTEE_EXAMPLES_LICENSE = BSD-2-Clause OPTEE_EXAMPLES_LICENSE_FILES = LICENSE OPTEE_EXAMPLES_DEPENDENCIES = optee-client optee-os # Trusted Application are not built from CMake due to ta_dev_kit dependencies. # We must build and install them on target. define OPTEE_EXAMPLES_BUILD_TAS $(foreach f,$(wildcard $(@D)/*/ta/Makefile), \ $(TARGET_CONFIGURE_OPTS) \ $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \ TA_DEV_KIT_DIR=$(OPTEE_OS_SDK) \ O=out -C $(dir $f) all ) endef define OPTEE_EXAMPLES_INSTALL_TAS @mkdir -p $(TARGET_DIR)/lib/optee_armtz @$(INSTALL) -D -m 444 -t $(TARGET_DIR)/lib/optee_armtz $(@D)/*/ta/out/*.ta endef OPTEE_EXAMPLES_POST_BUILD_HOOKS += OPTEE_EXAMPLES_BUILD_TAS OPTEE_EXAMPLES_POST_INSTALL_TARGET_HOOKS += OPTEE_EXAMPLES_INSTALL_TAS $(eval $(cmake-package)) ================================================ FILE: package/optee-test/Config.in ================================================ config BR2_PACKAGE_OPTEE_TEST bool "optee-test" depends on BR2_TARGET_OPTEE_OS depends on BR2_TOOLCHAIN_HAS_THREADS # optee-client depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS # optee-client depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 # optee-client select BR2_PACKAGE_OPTEE_CLIENT select BR2_TARGET_OPTEE_OS_SDK help This build option enables OP-TEE test package from the OP-TEE project. It helps platforms to verify the OP-TEE installation against a set of regression and performance tests. The package generates userspace test applications and data files for the Linux userland. It also generates OP-TEE trusted applications. Trusted application binary files are installed in the target directory /lib/optee_armtz as other trusted applications. At runtime OP-TEE OS can load trusted applications from this non-secure filesystem/directory into the secure world for execution. http://github.com/OP-TEE/optee_test comment "optee-test needs a toolchain w/ threads, C++, dynamic library, headers >= 4.3" depends on BR2_TARGET_OPTEE_OS depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 ================================================ FILE: package/optee-test/optee-test.hash ================================================ # From https://github.com/OP-TEE/optee_test/archive/3.15.0/optee-test-3.15.0.tar.gz sha256 9c2b6b80055cbef0f9bccce17dde494725bc71d9013dacaeb3e46d0926191098 optee-test-3.15.0.tar.gz # Locally computed sha256 6e6810981f0ddab9e0d44399d0700a15d9f760a3c2843cc866659c2074139ae7 LICENSE.md ================================================ FILE: package/optee-test/optee-test.mk ================================================ ################################################################################ # # optee-test # ################################################################################ OPTEE_TEST_VERSION = 3.15.0 OPTEE_TEST_SITE = $(call github,OP-TEE,optee_test,$(OPTEE_TEST_VERSION)) OPTEE_TEST_LICENSE = GPL-2.0, BSD-2-Clause, OPTEE_TEST_LICENSE_FILES = LICENSE.md OPTEE_TEST_DEPENDENCIES = optee-client optee-os ifeq ($(BR2_PACKAGE_LIBOPENSSL),y) OPTEE_TEST_DEPENDENCIES += libopenssl endif OPTEE_TEST_CONF_OPTS = -DOPTEE_TEST_SDK=$(OPTEE_OS_SDK) # Trusted Application are not built from CMake due to ta_dev_kit # dependencies. We must build and install them on target. define OPTEE_TEST_BUILD_TAS $(foreach f,$(wildcard $(@D)/ta/*_lib/Makefile) $(wildcard $(@D)/ta/*/Makefile), \ $(TARGET_CONFIGURE_OPTS) \ $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \ TA_DEV_KIT_DIR=$(OPTEE_OS_SDK) \ -C $(dir $f) all ) endef define OPTEE_TEST_INSTALL_TAS @mkdir -p $(TARGET_DIR)/lib/optee_armtz @$(INSTALL) -D -m 444 -t $(TARGET_DIR)/lib/optee_armtz $(@D)/ta/*/*.ta endef OPTEE_TEST_POST_BUILD_HOOKS += OPTEE_TEST_BUILD_TAS OPTEE_TEST_POST_INSTALL_TARGET_HOOKS += OPTEE_TEST_INSTALL_TAS $(eval $(cmake-package)) ================================================ FILE: package/opus/Config.in ================================================ config BR2_PACKAGE_OPUS bool "opus" help The Opus codec is designed for interactive speech and audio transmission over the Internet. It is designed by the IETF Codec Working Group and incorporates technology from Skype's SILK codec and Xiph.Org's CELT codec. It is intended to suit a wide range of interactive audio applications, including Voice over IP, videoconferencing, in-game chat, and even remote live music performances. It can scale from low bit-rate narrowband speech to very high quality stereo music. http://opus-codec.org if BR2_PACKAGE_OPUS config BR2_PACKAGE_OPUS_FIXED_POINT bool "use fixed-point" if !BR2_SOFT_FLOAT default y if BR2_SOFT_FLOAT help Compile without floating point operations (for machines without a fast enough FPU). endif ================================================ FILE: package/opus/opus.hash ================================================ # From http://downloads.xiph.org/releases/opus/SHA256SUMS.txt sha256 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d opus-1.3.1.tar.gz # Hash for license file sha256 8338ce8d922bb4416ce3dd1e5680173332435e3f0755007ac7801ccd674fe682 COPYING ================================================ FILE: package/opus/opus.mk ================================================ ################################################################################ # # opus # ################################################################################ OPUS_VERSION = 1.3.1 OPUS_SITE = https://downloads.xiph.org/releases/opus OPUS_LICENSE = BSD-3-Clause OPUS_LICENSE_FILES = COPYING OPUS_INSTALL_STAGING = YES OPUS_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) OPUS_CFLAGS += -O0 endif OPUS_CONF_ENV = CFLAGS="$(OPUS_CFLAGS)" 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)) ================================================ FILE: package/opus-tools/Config.in ================================================ config BR2_PACKAGE_OPUS_TOOLS bool "opus-tools" select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_LIBOPUSENC select BR2_PACKAGE_OPUS select BR2_PACKAGE_OPUSFILE help Opus codec command line tools. This package provides the reference implementations of encoder and decoder utilities for libopus. http://opus-codec.org ================================================ FILE: package/opus-tools/opus-tools.hash ================================================ # From http://downloads.xiph.org/releases/opus/SHA256SUMS.txt sha256 b4e56cb00d3e509acfba9a9b627ffd8273b876b4e2408642259f6da28fa0ff86 opus-tools-0.2.tar.gz # Hash for license file sha256 c28016e58544119d6b93aea28297d040f17dcef7a9f548d3e6a4d0b558c5d248 COPYING ================================================ FILE: package/opus-tools/opus-tools.mk ================================================ ################################################################################ # # opus-tools # ################################################################################ OPUS_TOOLS_VERSION = 0.2 OPUS_TOOLS_SITE = https://downloads.xiph.org/releases/opus OPUS_TOOLS_LICENSE = BSD-2-Clause, GPL-2.0 (opusinfo) OPUS_TOOLS_LICENSE_FILES = COPYING OPUS_TOOLS_CONF_OPTS = --disable-oggtest --disable-opustest OPUS_TOOLS_DEPENDENCIES = libogg libopusenc opus opusfile host-pkgconf ifeq ($(BR2_PACKAGE_LIBPCAP),y) OPUS_TOOLS_DEPENDENCIES += libpcap endif ifeq ($(BR2_X86_CPU_HAS_SSE),y) OPUS_TOOLS_CONF_OPTS += --enable-sse else OPUS_TOOLS_CONF_OPTS += --disable-sse endif ifeq ($(BR2_PACKAGE_FLAC),y) OPUS_TOOLS_DEPENDENCIES += flac else OPUS_TOOLS_CONF_OPTS += --without-flac endif $(eval $(autotools-package)) ================================================ FILE: package/opusfile/Config.in ================================================ config BR2_PACKAGE_OPUSFILE bool "opusfile" select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_OPUS help A convenient high-level API for decoding and basic manipulation of all Ogg Opus audio streams. http://opus-codec.org ================================================ FILE: package/opusfile/opusfile.hash ================================================ # From http://downloads.xiph.org/releases/opus/SHA256SUMS.txt sha256 118d8601c12dd6a44f52423e68ca9083cc9f2bfe72da7a8c1acb22a80ae3550b opusfile-0.12.tar.gz # Hash for license file sha256 0267ae795ab744c4e0f9c45e249440fdf2e75dac8c804f36066b28649bf74aaf COPYING ================================================ FILE: package/opusfile/opusfile.mk ================================================ ################################################################################ # # opusfile # ################################################################################ OPUSFILE_VERSION = 0.12 OPUSFILE_SITE = https://downloads.xiph.org/releases/opus OPUSFILE_DEPENDENCIES = host-pkgconf libogg opus OPUSFILE_LICENSE = BSD-3-Clause OPUSFILE_LICENSE_FILES = COPYING OPUSFILE_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_OPENSSL),y) OPUSFILE_DEPENDENCIES += openssl else OPUSFILE_CONF_OPTS += --disable-http endif # Use the same as opus package since it's a dep and we can't mix ifeq ($(BR2_PACKAGE_OPUS_FIXED_POINT),y) OPUSFILE_CONF_OPTS += --enable-fixed-point endif $(eval $(autotools-package)) ================================================ FILE: package/oracle-mysql/0000-ac_cache_check.patch ================================================ Patch borrowed from http://code.google.com/p/minimyth/source/browse/trunk/gar-minimyth/script/db/mysql/files/mysql-5.1.47-ac_cache_check.patch?r=6493. It allows to override through ac_cv_* variables various checks that cannot be performed when cross-compiling. Signed-off-by: Thomas Petazzoni --- storage/innodb_plugin/plug.in | 59 ++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 19 deletions(-) Index: mysql-5.1.53/storage/innodb_plugin/plug.in =================================================================== --- mysql-5.1.53.orig/storage/innodb_plugin/plug.in +++ mysql-5.1.53/storage/innodb_plugin/plug.in @@ -53,9 +53,10 @@ esac AC_SUBST(INNODB_DYNAMIC_CFLAGS) - AC_MSG_CHECKING(whether GCC atomic builtins are available) + AC_CACHE_CHECK([whether GCC atomic builtins are available], + [ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS], # either define HAVE_IB_GCC_ATOMIC_BUILTINS or not - AC_TRY_RUN( + [AC_TRY_RUN( [ int main() { @@ -95,18 +96,23 @@ } ], [ - AC_DEFINE([HAVE_IB_GCC_ATOMIC_BUILTINS], [1], - [GCC atomic builtins are available]) AC_MSG_RESULT(yes) + ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS=yes ], [ AC_MSG_RESULT(no) + ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS=no ] - ) + )]) + if test "x$ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS"= "xyes" ; then + AC_DEFINE([HAVE_IB_GCC_ATOMIC_BUILTINS], [1], + [GCC atomic builtins are available]) + fi - AC_MSG_CHECKING(whether pthread_t can be used by GCC atomic builtins) + AC_CACHE_CHECK([whether pthread_t can be used by GCC atomic builtins], + [ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC], # either define HAVE_IB_ATOMIC_PTHREAD_T_GCC or not - AC_TRY_RUN( + [AC_TRY_RUN( [ #include #include @@ -126,14 +132,18 @@ } ], [ - AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_GCC], [1], - [pthread_t can be used by GCC atomic builtins]) AC_MSG_RESULT(yes) + ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC=yes ], [ AC_MSG_RESULT(no) + ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC=no ] - ) + )]) + if test "x$ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC"= "xyes" ; then + AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_GCC], [1], + [pthread_t can be used by GCC atomic builtins]) + fi AC_MSG_CHECKING(whether Solaris libc atomic functions are available) # either define HAVE_IB_SOLARIS_ATOMICS or not @@ -148,9 +158,10 @@ are available]) ) - AC_MSG_CHECKING(whether pthread_t can be used by Solaris libc atomic functions) + AC_CACHE_CHECK([whether pthread_t can be used by Solaris libc atomic functions], + [ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS], # either define HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS or not - AC_TRY_RUN( + [AC_TRY_RUN( [ #include #include @@ -181,28 +192,33 @@ } ], [ - AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS], [1], - [pthread_t can be used by solaris atomics]) AC_MSG_RESULT(yes) + ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS=yes ], [ AC_MSG_RESULT(no) + ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS=no ] - ) + )]) + if test "x$ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS"= "xyes" ; then + AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS], [1], + [pthread_t can be used by solaris atomics]) + fi # this is needed to know which one of atomic_cas_32() or atomic_cas_64() # to use in the source AC_CHECK_SIZEOF([pthread_t], [], [#include ]) # Check for x86 PAUSE instruction - AC_MSG_CHECKING(for x86 PAUSE instruction) + AC_CACHE_CHECK([for x86 PAUSE instruction], + [ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION], # We have to actually try running the test program, because of a bug # in Solaris on x86_64, where it wrongly reports that PAUSE is not # supported when trying to run an application. See # http://bugs.opensolaris.org/bugdatabase/printableBug.do?bug_id=6478684 # We use ib_ prefix to avoid collisoins if this code is added to # mysql's configure.in. - AC_TRY_RUN( + [AC_TRY_RUN( [ int main() { __asm__ __volatile__ ("pause"); @@ -210,16 +226,21 @@ } ], [ - AC_DEFINE([HAVE_IB_PAUSE_INSTRUCTION], [1], [Does x86 PAUSE instruction exist]) AC_MSG_RESULT(yes) + ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION=yes ], [ AC_MSG_RESULT(no) + ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION=no ], [ AC_MSG_RESULT(no) + ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION=no ] - ) + )]) + if test "x$ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION"= "xyes" ; then + AC_DEFINE([HAVE_IB_PAUSE_INSTRUCTION], [1], [Does x86 PAUSE instruction exist]) + fi ]) # vim: set ft=config: ================================================ FILE: package/oracle-mysql/0001-configure-ps-cache-check.patch ================================================ Patch borrowed from http://cgit.openembedded.org/cgit.cgi/openembedded/tree/recipes/mysql/files/configure-ps-cache-check.patch It allows to specify through ac_cv_FIND_PROC how ps should be used on the target to find the PID of a program. Signed-off-by: Thomas Petazzoni --- configure.in | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) Index: mysql-5.1.53/configure.in =================================================================== --- mysql-5.1.53.orig/configure.in +++ mysql-5.1.53/configure.in @@ -462,8 +462,8 @@ # then Make, then shell. The autoconf substitution uses single quotes, so # no unprotected single quotes should appear in the expression. AC_PATH_PROG(PS, ps, ps) -AC_MSG_CHECKING("how to check if pid exists") -PS=$ac_cv_path_PS +AC_CACHE_CHECK([how to check if pid exists], [ac_cv_FIND_PROC], +[ # Linux style if $PS wwwp $$ 2> /dev/null | grep -- "$0" > /dev/null then @@ -502,8 +502,9 @@ AC_MSG_ERROR([Could not find the right ps and/or grep switches. Which OS is this? See the Installation chapter in the Reference Manual.]) esac fi -AC_SUBST(FIND_PROC) -AC_MSG_RESULT("$FIND_PROC") +ac_cv_FIND_PROC="$FIND_PROC" +]) +AC_SUBST([FIND_PROC], [$ac_cv_FIND_PROC]) # Check if a pid is valid AC_PATH_PROG(KILL, kill, kill) ================================================ FILE: package/oracle-mysql/0002-use-new-readline-iface.patch ================================================ Tell MySQL to use the new readline interface even when an external readline is being used. Signed-off-by: Thomas Petazzoni --- configure.in | 1 + 1 file changed, 1 insertion(+) Index: mysql-5.1.53/configure.in =================================================================== --- mysql-5.1.53.orig/configure.in +++ mysql-5.1.53/configure.in @@ -2689,6 +2689,7 @@ # this way we avoid linking commercial source with GPL readline readline_link="-lreadline" want_to_use_readline="yes" + AC_DEFINE_UNQUOTED(USE_NEW_READLINE_INTERFACE, 1) elif [test "$mysql_cv_libedit_interface" = "yes"] then # Use libedit ================================================ FILE: package/oracle-mysql/0003-ac_stack_direction-is-unset.patch ================================================ misc.m4: ac_cv_c_stack_direction is unset. Signed-off-by: Marcelo Gutierrez (UTN/FRH) --- mysql-5.1.70.orig/config/ac-macros/misc.m4 +++ mysql-5.1.70/config/ac-macros/misc.m4 @@ -477,7 +477,7 @@ exit(ptr_f(&a) < 0); } ], ac_cv_c_stack_direction=1, ac_cv_c_stack_direction=-1, - ac_cv_c_stack_direction=)]) + ac_cv_c_stack_direction=0)]) AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) ])dnl ================================================ FILE: package/oracle-mysql/0004-Fix-gen_lex_hash-execution.patch ================================================ Makefile: fix cross-compiling the server MySQL Makefile believes it can run code it just compiled, to generate a header. This does not work for cross-compilation. Instead, use a pre-installed host-version of the required tool. Signed-off-by: Marcelo Gutierrez (UTN/FRH) --- mysql-5.1.70/sql/Makefile.am +++ mysql-5.1.70.patch/sql/Makefile.am @@ -177,7 +177,7 @@ # this avoid the rebuild of the built files in a source dist lex_hash.h: gen_lex_hash.cc lex.h $(MAKE) $(AM_MAKEFLAGS) gen_lex_hash$(EXEEXT) - ./gen_lex_hash$(EXEEXT) > $@-t + gen_lex_hash$(EXEEXT) > $@-t $(MV) $@-t $@ # For testing of udf_example.so --- mysql-5.1.70/sql/Makefile.in +++ mysql-5.1.70.patch/sql/Makefile.in @@ -1310,7 +1310,7 @@ # this avoid the rebuild of the built files in a source dist lex_hash.h: gen_lex_hash.cc lex.h $(MAKE) $(AM_MAKEFLAGS) gen_lex_hash$(EXEEXT) - ./gen_lex_hash$(EXEEXT) > $@-t + gen_lex_hash$(EXEEXT) > $@-t $(MV) $@-t $@ # We might have some stuff not built in this build, but that we want to install ================================================ FILE: package/oracle-mysql/0005-bison_3_breaks_mysql_server_build.patch ================================================ fix the yacc code in mysql Signed-off-by: Marcelo Gutierrez (UTN/FRH) --- diff -uNr mysql-5.1.73.orig/sql/sql_lex.cc mysql-5.1.73/sql/sql_lex.cc --- mysql-5.1.73.orig/sql/sql_lex.cc 2013-11-04 18:52:27.000000000 +0000 +++ mysql-5.1.73/sql/sql_lex.cc 2014-02-12 14:12:04.244111625 +0000 @@ -775,14 +775,13 @@ (which can't be followed by a signed number) */ -int MYSQLlex(void *arg, void *yythd) +int MYSQLlex(void *arg, THD *thd) { reg1 uchar c= 0; bool comment_closed; int tokval, result_state; uint length; enum my_lex_states state; - THD *thd= (THD *)yythd; Lex_input_stream *lip= & thd->m_parser_state->m_lip; LEX *lex= thd->lex; YYSTYPE *yylval=(YYSTYPE*) arg; diff -uNr mysql-5.1.73.orig/sql/sql_lex.h mysql-5.1.73/sql/sql_lex.h --- mysql-5.1.73.orig/sql/sql_lex.h 2013-11-04 18:52:27.000000000 +0000 +++ mysql-5.1.73/sql/sql_lex.h 2014-02-12 14:17:19.424106423 +0000 @@ -2072,7 +2072,7 @@ extern void lex_free(void); extern void lex_start(THD *thd); extern void lex_end(LEX *lex); -extern int MYSQLlex(void *arg, void *yythd); +extern int MYSQLlex(void *arg, THD *thd); extern void trim_whitespace(CHARSET_INFO *cs, LEX_STRING *str); diff -uNr mysql-5.1.73.orig/sql/sql_parse.cc mysql-5.1.73/sql/sql_parse.cc --- mysql-5.1.73.orig/sql/sql_parse.cc 2013-11-04 18:52:27.000000000 +0000 +++ mysql-5.1.73/sql/sql_parse.cc 2014-02-12 14:19:20.424104427 +0000 @@ -8012,7 +8012,7 @@ } -extern int MYSQLparse(void *thd); // from sql_yacc.cc +extern int MYSQLparse(THD *thd); // from sql_yacc.cc /** diff -uNr mysql-5.1.73.orig/sql/sql_yacc.yy mysql-5.1.73/sql/sql_yacc.yy --- mysql-5.1.73.orig/sql/sql_yacc.yy 2013-11-04 18:52:27.000000000 +0000 +++ mysql-5.1.73/sql/sql_yacc.yy 2014-02-12 20:17:06.707750140 +0000 @@ -23,19 +23,13 @@ */ %{ -/* thd is passed as an argument to yyparse(), and subsequently to yylex(). -** The type will be void*, so it must be cast to (THD*) when used. -** Use the YYTHD macro for this. -*/ -#define YYPARSE_PARAM yythd -#define YYLEX_PARAM yythd -#define YYTHD ((THD *)yythd) -#define YYLIP (& YYTHD->m_parser_state->m_lip) + +#define YYLIP (& thd->m_parser_state->m_lip) #define MYSQL_YACC #define YYINITDEPTH 100 #define YYMAXDEPTH 3200 /* Because of 64K stack */ -#define Lex (YYTHD->lex) +#define Lex (thd->lex) #define Select Lex->current_select #include "mysql_priv.h" #include "slave.h" @@ -55,7 +49,7 @@ #pragma warning (disable : 4065) #endif -int yylex(void *yylval, void *yythd); +int yylex(void *yylval, THD *thd); const LEX_STRING null_lex_str= {0,0}; @@ -64,7 +58,7 @@ ulong val= *(F); \ if (my_yyoverflow((B), (D), &val)) \ { \ - yyerror((char*) (A)); \ + yyerror(current_thd, (char*) (A)); \ return 2; \ } \ else \ @@ -76,7 +70,7 @@ #define MYSQL_YYABORT \ do \ { \ - LEX::cleanup_lex_after_parse_error(YYTHD);\ + LEX::cleanup_lex_after_parse_error(thd);\ YYABORT; \ } while (0) @@ -159,9 +153,8 @@ to abort from the parser. */ -void MYSQLerror(const char *s) +void MYSQLerror(THD *thd, const char *s) { - THD *thd= current_thd; /* Restore the original LEX if it was replaced when parsing @@ -675,7 +668,10 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); %} -%pure_parser /* We have threads */ +/* We have threads */ +%define api.pure +%parse-param { THD *thd } +%lex-param { THD *thd } /* Currently there are 169 shift/reduce conflicts. We should not introduce new conflicts any more. @@ -1516,7 +1512,6 @@ query: END_OF_INPUT { - THD *thd= YYTHD; if (!thd->bootstrap && (!(thd->lex->select_lex.options & OPTION_FOUND_COMMENT))) { @@ -1530,7 +1525,7 @@ { Lex_input_stream *lip = YYLIP; - if ((YYTHD->client_capabilities & CLIENT_MULTI_QUERIES) && + if ((thd->client_capabilities & CLIENT_MULTI_QUERIES) && ! lip->stmt_prepare_mode && ! lip->eof()) { @@ -1626,7 +1621,6 @@ deallocate: deallocate_or_drop PREPARE_SYM ident { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_DEALLOCATE_PREPARE; lex->prepared_stmt_name= $3; @@ -1641,7 +1635,6 @@ prepare: PREPARE_SYM ident FROM prepare_src { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_PREPARE; lex->prepared_stmt_name= $2; @@ -1651,14 +1644,12 @@ prepare_src: TEXT_STRING_sys { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->prepared_stmt_code= $1; lex->prepared_stmt_code_is_varref= FALSE; } | '@' ident_or_text { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->prepared_stmt_code= $2; lex->prepared_stmt_code_is_varref= TRUE; @@ -1668,7 +1659,6 @@ execute: EXECUTE_SYM ident { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_EXECUTE; lex->prepared_stmt_name= $2; @@ -1826,7 +1816,6 @@ create: CREATE opt_table_options TABLE_SYM opt_if_not_exists table_ident { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_CREATE_TABLE; if (!lex->select_lex.add_table_to_list(thd, $5, NULL, @@ -1844,13 +1833,13 @@ } create2 { - LEX *lex= YYTHD->lex; + LEX *lex= thd->lex; lex->current_select= &lex->select_lex; if ((lex->create_info.used_fields & HA_CREATE_USED_ENGINE) && !lex->create_info.db_type) { - lex->create_info.db_type= ha_default_handlerton(YYTHD); - push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN, + lex->create_info.db_type= ha_default_handlerton(thd); + push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_USING_OTHER_HANDLER, ER(ER_WARN_USING_OTHER_HANDLER), ha_resolve_storage_engine_name(lex->create_info.db_type), @@ -1979,7 +1968,7 @@ event_tail: remember_name EVENT_SYM opt_if_not_exists sp_name { - THD *thd= YYTHD; + THD *thd= thd; LEX *lex=Lex; lex->stmt_definition_begin= $1; @@ -2046,7 +2035,7 @@ ev_starts: /* empty */ { - Item *item= new (YYTHD->mem_root) Item_func_now_local(); + Item *item= new (thd->mem_root) Item_func_now_local(); if (item == NULL) MYSQL_YYABORT; Lex->event_parse_data->item_starts= item; @@ -2096,7 +2085,6 @@ ev_sql_stmt: { - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -2139,7 +2127,6 @@ } ev_sql_stmt_inner { - THD *thd= YYTHD; LEX *lex= thd->lex; /* return back to the original memory root ASAP */ @@ -2198,11 +2185,10 @@ $$= new sp_name($1, $3, true); if ($$ == NULL) MYSQL_YYABORT; - $$->init_qname(YYTHD); + $$->init_qname(thd); } | ident { - THD *thd= YYTHD; LEX *lex= thd->lex; LEX_STRING db; if (check_routine_name(&$1)) @@ -2272,7 +2258,7 @@ lex->sql_command= SQLCOM_CALL; lex->spname= $2; lex->value_list.empty(); - sp_add_used_routine(lex, YYTHD, $2, TYPE_ENUM_PROCEDURE); + sp_add_used_routine(lex, thd, $2, TYPE_ENUM_PROCEDURE); } opt_sp_cparam_list {} ; @@ -2345,7 +2331,7 @@ (enum enum_field_types)$3, sp_param_in); - if (lex->sphead->fill_field_definition(YYTHD, lex, + if (lex->sphead->fill_field_definition(thd, lex, (enum enum_field_types) $3, &spvar->field_def)) { @@ -2382,7 +2368,7 @@ (enum enum_field_types)$4, (sp_param_mode_t)$1); - if (lex->sphead->fill_field_definition(YYTHD, lex, + if (lex->sphead->fill_field_definition(thd, lex, (enum enum_field_types) $4, &spvar->field_def)) { @@ -2445,13 +2431,12 @@ { LEX *lex= Lex; - lex->sphead->reset_lex(YYTHD); + lex->sphead->reset_lex(thd); lex->spcont->declare_var_boundary($2); } type sp_opt_default { - THD *thd= YYTHD; LEX *lex= Lex; sp_pcontext *pctx= lex->spcont; uint num_vars= pctx->context_var_count(); @@ -2477,7 +2462,7 @@ spvar->type= var_type; spvar->dflt= dflt_value_item; - if (lex->sphead->fill_field_definition(YYTHD, lex, var_type, + if (lex->sphead->fill_field_definition(thd, lex, var_type, &spvar->field_def)) { MYSQL_YYABORT; @@ -2501,7 +2486,7 @@ } pctx->declare_var_boundary(0); - if (lex->sphead->restore_lex(YYTHD)) + if (lex->sphead->restore_lex(thd)) MYSQL_YYABORT; $$.vars= $2; $$.conds= $$.hndlrs= $$.curs= 0; @@ -2516,7 +2501,7 @@ my_error(ER_SP_DUP_COND, MYF(0), $2.str); MYSQL_YYABORT; } - if(YYTHD->lex->spcont->push_cond(&$2, $5)) + if(thd->lex->spcont->push_cond(&$2, $5)) MYSQL_YYABORT; $$.vars= $$.hndlrs= $$.curs= 0; $$.conds= 1; @@ -2602,7 +2587,7 @@ sp_cursor_stmt: { - Lex->sphead->reset_lex(YYTHD); + Lex->sphead->reset_lex(thd); } select { @@ -2618,7 +2603,7 @@ } lex->sp_lex_in_use= TRUE; $$= lex; - if (lex->sphead->restore_lex(YYTHD)) + if (lex->sphead->restore_lex(thd)) MYSQL_YYABORT; } ; @@ -2662,7 +2647,7 @@ sp_cond: ulong_num { /* mysql errno */ - $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t)); + $$= (sp_cond_type_t *)thd->alloc(sizeof(sp_cond_type_t)); if ($$ == NULL) MYSQL_YYABORT; $$->type= sp_cond_type_t::number; @@ -2675,7 +2660,7 @@ my_error(ER_SP_BAD_SQLSTATE, MYF(0), $3.str); MYSQL_YYABORT; } - $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t)); + $$= (sp_cond_type_t *)thd->alloc(sizeof(sp_cond_type_t)); if ($$ == NULL) MYSQL_YYABORT; $$->type= sp_cond_type_t::state; @@ -2705,21 +2690,21 @@ } | SQLWARNING_SYM /* SQLSTATEs 01??? */ { - $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t)); + $$= (sp_cond_type_t *)thd->alloc(sizeof(sp_cond_type_t)); if ($$ == NULL) MYSQL_YYABORT; $$->type= sp_cond_type_t::warning; } | not FOUND_SYM /* SQLSTATEs 02??? */ { - $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t)); + $$= (sp_cond_type_t *)thd->alloc(sizeof(sp_cond_type_t)); if ($$ == NULL) MYSQL_YYABORT; $$->type= sp_cond_type_t::notfound; } | SQLEXCEPTION_SYM /* All other SQLSTATEs */ { - $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t)); + $$= (sp_cond_type_t *)thd->alloc(sizeof(sp_cond_type_t)); if ($$ == NULL) MYSQL_YYABORT; $$->type= sp_cond_type_t::exception; @@ -2789,7 +2774,6 @@ sp_proc_stmt_statement: { - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -2798,7 +2782,6 @@ } statement { - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; sp_head *sp= lex->sphead; @@ -2845,7 +2828,7 @@ sp_proc_stmt_return: RETURN_SYM - { Lex->sphead->reset_lex(YYTHD); } + { Lex->sphead->reset_lex(thd); } expr { LEX *lex= Lex; @@ -2867,7 +2850,7 @@ MYSQL_YYABORT; sp->m_flags|= sp_head::HAS_RETURN; } - if (sp->restore_lex(YYTHD)) + if (sp->restore_lex(thd)) MYSQL_YYABORT; } ; @@ -3094,7 +3077,7 @@ ; sp_if: - { Lex->sphead->reset_lex(YYTHD); } + { Lex->sphead->reset_lex(thd); } expr THEN_SYM { LEX *lex= Lex; @@ -3108,7 +3091,7 @@ sp->add_cont_backpatch(i) || sp->add_instr(i)) MYSQL_YYABORT; - if (sp->restore_lex(YYTHD)) + if (sp->restore_lex(thd)) MYSQL_YYABORT; } sp_proc_stmts1 @@ -3147,7 +3130,7 @@ { LEX *lex= Lex; case_stmt_action_case(lex); - lex->sphead->reset_lex(YYTHD); /* For expr $3 */ + lex->sphead->reset_lex(thd); /* For expr $3 */ } expr { @@ -3156,7 +3139,7 @@ MYSQL_YYABORT; /* For expr $3 */ - if (lex->sphead->restore_lex(YYTHD)) + if (lex->sphead->restore_lex(thd)) MYSQL_YYABORT; } simple_when_clause_list @@ -3198,7 +3181,7 @@ simple_when_clause: WHEN_SYM { - Lex->sphead->reset_lex(YYTHD); /* For expr $3 */ + Lex->sphead->reset_lex(thd); /* For expr $3 */ } expr { @@ -3208,7 +3191,7 @@ if (case_stmt_action_when(lex, $3, true)) MYSQL_YYABORT; /* For expr $3 */ - if (lex->sphead->restore_lex(YYTHD)) + if (lex->sphead->restore_lex(thd)) MYSQL_YYABORT; } THEN_SYM @@ -3223,7 +3206,7 @@ searched_when_clause: WHEN_SYM { - Lex->sphead->reset_lex(YYTHD); /* For expr $3 */ + Lex->sphead->reset_lex(thd); /* For expr $3 */ } expr { @@ -3231,7 +3214,7 @@ if (case_stmt_action_when(lex, $3, false)) MYSQL_YYABORT; /* For expr $3 */ - if (lex->sphead->restore_lex(YYTHD)) + if (lex->sphead->restore_lex(thd)) MYSQL_YYABORT; } THEN_SYM @@ -3395,7 +3378,7 @@ MYSQL_YYABORT; } | WHILE_SYM - { Lex->sphead->reset_lex(YYTHD); } + { Lex->sphead->reset_lex(thd); } expr DO_SYM { LEX *lex= Lex; @@ -3409,7 +3392,7 @@ sp->new_cont_backpatch(i) || sp->add_instr(i)) MYSQL_YYABORT; - if (sp->restore_lex(YYTHD)) + if (sp->restore_lex(thd)) MYSQL_YYABORT; } sp_proc_stmts1 END WHILE_SYM @@ -3424,7 +3407,7 @@ lex->sphead->do_cont_backpatch(); } | REPEAT_SYM sp_proc_stmts1 UNTIL_SYM - { Lex->sphead->reset_lex(YYTHD); } + { Lex->sphead->reset_lex(thd); } expr END REPEAT_SYM { LEX *lex= Lex; @@ -3436,7 +3419,7 @@ if (i == NULL || lex->sphead->add_instr(i)) MYSQL_YYABORT; - if (lex->sphead->restore_lex(YYTHD)) + if (lex->sphead->restore_lex(thd)) MYSQL_YYABORT; /* We can shortcut the cont_backpatch here */ i->m_cont_dest= ip+1; @@ -3859,7 +3842,6 @@ create3 {} | LIKE table_ident { - THD *thd= YYTHD; TABLE_LIST *src_table; LEX *lex= thd->lex; @@ -3873,7 +3855,6 @@ } | '(' LIKE table_ident ')' { - THD *thd= YYTHD; TABLE_LIST *src_table; LEX *lex= thd->lex; @@ -4342,7 +4323,6 @@ bit_expr { Item *part_expr= $1; - THD *thd= YYTHD; LEX *lex= thd->lex; Name_resolution_context *context= &lex->current_select->context; TABLE_LIST *save_list= context->table_list; @@ -4364,7 +4344,7 @@ my_error(ER_PARTITION_FUNCTION_IS_NOT_ALLOWED, MYF(0)); MYSQL_YYABORT; } - if (part_expr->fix_fields(YYTHD, (Item**)0) || + if (part_expr->fix_fields(thd, (Item**)0) || ((context->table_list= save_list), FALSE) || (!part_expr->const_item()) || (!lex->safe_to_cache_query)) @@ -4629,7 +4609,7 @@ | TYPE_SYM opt_equal storage_engines { Lex->create_info.db_type= $3; - WARN_DEPRECATED(yythd, "6.0", "TYPE=storage_engine", + WARN_DEPRECATED(thd, "6.0", "TYPE=storage_engine", "'ENGINE=storage_engine'"); Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE; } @@ -4791,19 +4771,19 @@ storage_engines: ident_or_text { - plugin_ref plugin= ha_resolve_by_name(YYTHD, &$1); + plugin_ref plugin= ha_resolve_by_name(thd, &$1); if (plugin) $$= plugin_data(plugin, handlerton*); else { - if (YYTHD->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION) + if (thd->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION) { my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), $1.str); MYSQL_YYABORT; } $$= 0; - push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN, + push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_UNKNOWN_STORAGE_ENGINE, ER(ER_UNKNOWN_STORAGE_ENGINE), $1.str); @@ -4815,7 +4795,7 @@ ident_or_text { plugin_ref plugin; - if ((plugin= ha_resolve_by_name(YYTHD, &$1))) + if ((plugin= ha_resolve_by_name(thd, &$1))) $$= plugin_data(plugin, handlerton*); else { @@ -5043,7 +5023,7 @@ { char buff[sizeof("YEAR()") + MY_INT64_NUM_DECIMAL_DIGITS + 1]; my_snprintf(buff, sizeof(buff), "YEAR(%lu)", length); - push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_NOTE, + push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE, ER_WARN_DEPRECATED_SYNTAX, ER(ER_WARN_DEPRECATED_SYNTAX), buff, "YEAR(4)"); @@ -5057,7 +5037,7 @@ { $$=MYSQL_TYPE_TIME; } | TIMESTAMP opt_field_length { - if (YYTHD->variables.sql_mode & MODE_MAXDB) + if (thd->variables.sql_mode & MODE_MAXDB) $$=MYSQL_TYPE_DATETIME; else { @@ -5189,7 +5169,7 @@ real_type: REAL { - $$= YYTHD->variables.sql_mode & MODE_REAL_AS_FLOAT ? + $$= thd->variables.sql_mode & MODE_REAL_AS_FLOAT ? MYSQL_TYPE_FLOAT : MYSQL_TYPE_DOUBLE; } | DOUBLE_SYM @@ -5263,7 +5243,7 @@ | DEFAULT now_or_signed_literal { Lex->default_value=$2; } | ON UPDATE_SYM NOW_SYM optional_braces { - Item *item= new (YYTHD->mem_root) Item_func_now_local(); + Item *item= new (thd->mem_root) Item_func_now_local(); if (item == NULL) MYSQL_YYABORT; Lex->on_update_value= item; @@ -5312,7 +5292,7 @@ now_or_signed_literal: NOW_SYM optional_braces { - $$= new (YYTHD->mem_root) Item_func_now_local(); + $$= new (thd->mem_root) Item_func_now_local(); if ($$ == NULL) MYSQL_YYABORT; } @@ -5673,7 +5653,6 @@ alter: ALTER opt_ignore TABLE_SYM table_ident { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->name.str= 0; lex->name.length= 0; @@ -5799,7 +5778,7 @@ Event_parse_data. */ - if (!(Lex->event_parse_data= Event_parse_data::new_instance(YYTHD))) + if (!(Lex->event_parse_data= Event_parse_data::new_instance(thd))) MYSQL_YYABORT; Lex->event_parse_data->identifier= $4; @@ -6192,7 +6171,6 @@ { if (!$4) { - THD *thd= YYTHD; $4= thd->variables.collation_database; } $5= $5 ? $5 : $4; @@ -6556,7 +6534,7 @@ assign_to_keycache: table_ident cache_keys_spec { - if (!Select->add_table_to_list(YYTHD, $1, NULL, 0, TL_READ, + if (!Select->add_table_to_list(thd, $1, NULL, 0, TL_READ, Select->pop_index_hints())) MYSQL_YYABORT; } @@ -6585,7 +6563,7 @@ preload_keys: table_ident cache_keys_spec opt_ignore_leaves { - if (!Select->add_table_to_list(YYTHD, $1, NULL, $3, TL_READ, + if (!Select->add_table_to_list(thd, $1, NULL, $3, TL_READ, Select->pop_index_hints())) MYSQL_YYABORT; } @@ -6593,7 +6571,7 @@ cache_keys_spec: { - Lex->select_lex.alloc_index_hints(YYTHD); + Lex->select_lex.alloc_index_hints(thd); Select->set_index_hint_type(INDEX_HINT_USE, global_system_variables.old_mode ? INDEX_HINT_MASK_JOIN : @@ -6813,7 +6791,6 @@ | select_item | '*' { - THD *thd= YYTHD; Item *item= new (thd->mem_root) Item_field(&thd->lex->current_select->context, NULL, NULL, "*"); @@ -6828,7 +6805,6 @@ select_item: remember_name select_item2 remember_end select_alias { - THD *thd= YYTHD; DBUG_ASSERT($1 < $3); if (add_item_to_list(thd, $2)) @@ -6929,7 +6905,7 @@ else { /* X OR Y */ - $$ = new (YYTHD->mem_root) Item_cond_or($1, $3); + $$ = new (thd->mem_root) Item_cond_or($1, $3); if ($$ == NULL) MYSQL_YYABORT; } @@ -6937,7 +6913,7 @@ | expr XOR expr %prec XOR { /* XOR is a proprietary extension */ - $$ = new (YYTHD->mem_root) Item_cond_xor($1, $3); + $$ = new (thd->mem_root) Item_cond_xor($1, $3); if ($$ == NULL) MYSQL_YYABORT; } @@ -6979,50 +6955,50 @@ else { /* X AND Y */ - $$ = new (YYTHD->mem_root) Item_cond_and($1, $3); + $$ = new (thd->mem_root) Item_cond_and($1, $3); if ($$ == NULL) MYSQL_YYABORT; } } | NOT_SYM expr %prec NOT_SYM { - $$= negate_expression(YYTHD, $2); + $$= negate_expression(thd, $2); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS TRUE_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_istrue($1); + $$= new (thd->mem_root) Item_func_istrue($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS not TRUE_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isnottrue($1); + $$= new (thd->mem_root) Item_func_isnottrue($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS FALSE_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isfalse($1); + $$= new (thd->mem_root) Item_func_isfalse($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS not FALSE_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isnotfalse($1); + $$= new (thd->mem_root) Item_func_isnotfalse($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS UNKNOWN_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isnull($1); + $$= new (thd->mem_root) Item_func_isnull($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS not UNKNOWN_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isnotnull($1); + $$= new (thd->mem_root) Item_func_isnotnull($1); if ($$ == NULL) MYSQL_YYABORT; } @@ -7032,19 +7008,19 @@ bool_pri: bool_pri IS NULL_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isnull($1); + $$= new (thd->mem_root) Item_func_isnull($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS not NULL_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isnotnull($1); + $$= new (thd->mem_root) Item_func_isnotnull($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri EQUAL_SYM predicate %prec EQUAL_SYM { - $$= new (YYTHD->mem_root) Item_func_equal($1,$3); + $$= new (thd->mem_root) Item_func_equal($1,$3); if ($$ == NULL) MYSQL_YYABORT; } @@ -7066,13 +7042,12 @@ predicate: bit_expr IN_SYM '(' subselect ')' { - $$= new (YYTHD->mem_root) Item_in_subselect($1, $4); + $$= new (thd->mem_root) Item_in_subselect($1, $4); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr not IN_SYM '(' subselect ')' { - THD *thd= YYTHD; Item *item= new (thd->mem_root) Item_in_subselect($1, $5); if (item == NULL) MYSQL_YYABORT; @@ -7082,7 +7057,7 @@ } | bit_expr IN_SYM '(' expr ')' { - $$= handle_sql2003_note184_exception(YYTHD, $1, true, $4); + $$= handle_sql2003_note184_exception(thd, $1, true, $4); if ($$ == NULL) MYSQL_YYABORT; } @@ -7090,13 +7065,13 @@ { $6->push_front($4); $6->push_front($1); - $$= new (YYTHD->mem_root) Item_func_in(*$6); + $$= new (thd->mem_root) Item_func_in(*$6); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr not IN_SYM '(' expr ')' { - $$= handle_sql2003_note184_exception(YYTHD, $1, false, $5); + $$= handle_sql2003_note184_exception(thd, $1, false, $5); if ($$ == NULL) MYSQL_YYABORT; } @@ -7104,7 +7079,7 @@ { $7->push_front($5); $7->push_front($1); - Item_func_in *item = new (YYTHD->mem_root) Item_func_in(*$7); + Item_func_in *item = new (thd->mem_root) Item_func_in(*$7); if (item == NULL) MYSQL_YYABORT; item->negate(); @@ -7112,14 +7087,14 @@ } | bit_expr BETWEEN_SYM bit_expr AND_SYM predicate { - $$= new (YYTHD->mem_root) Item_func_between($1,$3,$5); + $$= new (thd->mem_root) Item_func_between($1,$3,$5); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr not BETWEEN_SYM bit_expr AND_SYM predicate { Item_func_between *item; - item= new (YYTHD->mem_root) Item_func_between($1,$4,$6); + item= new (thd->mem_root) Item_func_between($1,$4,$6); if (item == NULL) MYSQL_YYABORT; item->negate(); @@ -7127,42 +7102,42 @@ } | bit_expr SOUNDS_SYM LIKE bit_expr { - Item *item1= new (YYTHD->mem_root) Item_func_soundex($1); - Item *item4= new (YYTHD->mem_root) Item_func_soundex($4); + Item *item1= new (thd->mem_root) Item_func_soundex($1); + Item *item4= new (thd->mem_root) Item_func_soundex($4); if ((item1 == NULL) || (item4 == NULL)) MYSQL_YYABORT; - $$= new (YYTHD->mem_root) Item_func_eq(item1, item4); + $$= new (thd->mem_root) Item_func_eq(item1, item4); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr LIKE simple_expr opt_escape { - $$= new (YYTHD->mem_root) Item_func_like($1,$3,$4,Lex->escape_used); + $$= new (thd->mem_root) Item_func_like($1,$3,$4,Lex->escape_used); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr not LIKE simple_expr opt_escape { - Item *item= new (YYTHD->mem_root) Item_func_like($1,$4,$5, + Item *item= new (thd->mem_root) Item_func_like($1,$4,$5, Lex->escape_used); if (item == NULL) MYSQL_YYABORT; - $$= new (YYTHD->mem_root) Item_func_not(item); + $$= new (thd->mem_root) Item_func_not(item); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr REGEXP bit_expr { - $$= new (YYTHD->mem_root) Item_func_regex($1,$3); + $$= new (thd->mem_root) Item_func_regex($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr not REGEXP bit_expr { - Item *item= new (YYTHD->mem_root) Item_func_regex($1,$4); + Item *item= new (thd->mem_root) Item_func_regex($1,$4); if (item == NULL) MYSQL_YYABORT; - $$= negate_expression(YYTHD, item); + $$= negate_expression(thd, item); if ($$ == NULL) MYSQL_YYABORT; } @@ -7172,85 +7147,85 @@ bit_expr: bit_expr '|' bit_expr %prec '|' { - $$= new (YYTHD->mem_root) Item_func_bit_or($1,$3); + $$= new (thd->mem_root) Item_func_bit_or($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '&' bit_expr %prec '&' { - $$= new (YYTHD->mem_root) Item_func_bit_and($1,$3); + $$= new (thd->mem_root) Item_func_bit_and($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr SHIFT_LEFT bit_expr %prec SHIFT_LEFT { - $$= new (YYTHD->mem_root) Item_func_shift_left($1,$3); + $$= new (thd->mem_root) Item_func_shift_left($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr SHIFT_RIGHT bit_expr %prec SHIFT_RIGHT { - $$= new (YYTHD->mem_root) Item_func_shift_right($1,$3); + $$= new (thd->mem_root) Item_func_shift_right($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '+' bit_expr %prec '+' { - $$= new (YYTHD->mem_root) Item_func_plus($1,$3); + $$= new (thd->mem_root) Item_func_plus($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '-' bit_expr %prec '-' { - $$= new (YYTHD->mem_root) Item_func_minus($1,$3); + $$= new (thd->mem_root) Item_func_minus($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '+' INTERVAL_SYM expr interval %prec '+' { - $$= new (YYTHD->mem_root) Item_date_add_interval($1,$4,$5,0); + $$= new (thd->mem_root) Item_date_add_interval($1,$4,$5,0); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '-' INTERVAL_SYM expr interval %prec '-' { - $$= new (YYTHD->mem_root) Item_date_add_interval($1,$4,$5,1); + $$= new (thd->mem_root) Item_date_add_interval($1,$4,$5,1); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '*' bit_expr %prec '*' { - $$= new (YYTHD->mem_root) Item_func_mul($1,$3); + $$= new (thd->mem_root) Item_func_mul($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '/' bit_expr %prec '/' { - $$= new (YYTHD->mem_root) Item_func_div($1,$3); + $$= new (thd->mem_root) Item_func_div($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '%' bit_expr %prec '%' { - $$= new (YYTHD->mem_root) Item_func_mod($1,$3); + $$= new (thd->mem_root) Item_func_mod($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr DIV_SYM bit_expr %prec DIV_SYM { - $$= new (YYTHD->mem_root) Item_func_int_div($1,$3); + $$= new (thd->mem_root) Item_func_int_div($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr MOD_SYM bit_expr %prec MOD_SYM { - $$= new (YYTHD->mem_root) Item_func_mod($1,$3); + $$= new (thd->mem_root) Item_func_mod($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '^' bit_expr { - $$= new (YYTHD->mem_root) Item_func_bit_xor($1,$3); + $$= new (thd->mem_root) Item_func_bit_xor($1,$3); if ($$ == NULL) MYSQL_YYABORT; } @@ -7299,7 +7274,6 @@ | function_call_conflict | simple_expr COLLATE_SYM ident_or_text %prec NEG { - THD *thd= YYTHD; Item *i1= new (thd->mem_root) Item_string($3.str, $3.length, thd->charset()); @@ -7315,7 +7289,7 @@ | sum_expr | simple_expr OR_OR_SYM simple_expr { - $$= new (YYTHD->mem_root) Item_func_concat($1, $3); + $$= new (thd->mem_root) Item_func_concat($1, $3); if ($$ == NULL) MYSQL_YYABORT; } @@ -7325,25 +7299,25 @@ } | '-' simple_expr %prec NEG { - $$= new (YYTHD->mem_root) Item_func_neg($2); + $$= new (thd->mem_root) Item_func_neg($2); if ($$ == NULL) MYSQL_YYABORT; } | '~' simple_expr %prec NEG { - $$= new (YYTHD->mem_root) Item_func_bit_neg($2); + $$= new (thd->mem_root) Item_func_bit_neg($2); if ($$ == NULL) MYSQL_YYABORT; } | not2 simple_expr %prec NEG { - $$= negate_expression(YYTHD, $2); + $$= negate_expression(thd, $2); if ($$ == NULL) MYSQL_YYABORT; } | '(' subselect ')' { - $$= new (YYTHD->mem_root) Item_singlerow_subselect($2); + $$= new (thd->mem_root) Item_singlerow_subselect($2); if ($$ == NULL) MYSQL_YYABORT; } @@ -7352,20 +7326,20 @@ | '(' expr ',' expr_list ')' { $4->push_front($2); - $$= new (YYTHD->mem_root) Item_row(*$4); + $$= new (thd->mem_root) Item_row(*$4); if ($$ == NULL) MYSQL_YYABORT; } | ROW_SYM '(' expr ',' expr_list ')' { $5->push_front($3); - $$= new (YYTHD->mem_root) Item_row(*$5); + $$= new (thd->mem_root) Item_row(*$5); if ($$ == NULL) MYSQL_YYABORT; } | EXISTS '(' subselect ')' { - $$= new (YYTHD->mem_root) Item_exists_subselect($3); + $$= new (thd->mem_root) Item_exists_subselect($3); if ($$ == NULL) MYSQL_YYABORT; } @@ -7374,7 +7348,7 @@ | MATCH ident_list_arg AGAINST '(' bit_expr fulltext_options ')' { $2->push_front($5); - Item_func_match *i1= new (YYTHD->mem_root) Item_func_match(*$2, $6); + Item_func_match *i1= new (thd->mem_root) Item_func_match(*$2, $6); if (i1 == NULL) MYSQL_YYABORT; Select->add_ftfunc_to_list(i1); @@ -7382,7 +7356,7 @@ } | BINARY simple_expr %prec NEG { - $$= create_func_cast(YYTHD, $2, ITEM_CAST_CHAR, NULL, NULL, + $$= create_func_cast(thd, $2, ITEM_CAST_CHAR, NULL, NULL, &my_charset_bin); if ($$ == NULL) MYSQL_YYABORT; @@ -7390,27 +7364,27 @@ | CAST_SYM '(' expr AS cast_type ')' { LEX *lex= Lex; - $$= create_func_cast(YYTHD, $3, $5, lex->length, lex->dec, + $$= create_func_cast(thd, $3, $5, lex->length, lex->dec, lex->charset); if ($$ == NULL) MYSQL_YYABORT; } | CASE_SYM opt_expr when_list opt_else END { - $$= new (YYTHD->mem_root) Item_func_case(* $3, $2, $4 ); + $$= new (thd->mem_root) Item_func_case(* $3, $2, $4 ); if ($$ == NULL) MYSQL_YYABORT; } | CONVERT_SYM '(' expr ',' cast_type ')' { - $$= create_func_cast(YYTHD, $3, $5, Lex->length, Lex->dec, + $$= create_func_cast(thd, $3, $5, Lex->length, Lex->dec, Lex->charset); if ($$ == NULL) MYSQL_YYABORT; } | CONVERT_SYM '(' expr USING charset_name ')' { - $$= new (YYTHD->mem_root) Item_func_conv_charset($3,$5); + $$= new (thd->mem_root) Item_func_conv_charset($3,$5); if ($$ == NULL) MYSQL_YYABORT; } @@ -7423,14 +7397,14 @@ my_error(ER_WRONG_COLUMN_NAME, MYF(0), il->my_name()->str); MYSQL_YYABORT; } - $$= new (YYTHD->mem_root) Item_default_value(Lex->current_context(), + $$= new (thd->mem_root) Item_default_value(Lex->current_context(), $3); if ($$ == NULL) MYSQL_YYABORT; } | VALUES '(' simple_ident_nospvar ')' { - $$= new (YYTHD->mem_root) Item_insert_value(Lex->current_context(), + $$= new (thd->mem_root) Item_insert_value(Lex->current_context(), $3); if ($$ == NULL) MYSQL_YYABORT; @@ -7438,7 +7412,7 @@ | INTERVAL_SYM expr interval '+' expr %prec INTERVAL_SYM /* we cannot put interval before - */ { - $$= new (YYTHD->mem_root) Item_date_add_interval($5,$2,$3,0); + $$= new (thd->mem_root) Item_date_add_interval($5,$2,$3,0); if ($$ == NULL) MYSQL_YYABORT; } @@ -7453,19 +7427,19 @@ function_call_keyword: CHAR_SYM '(' expr_list ')' { - $$= new (YYTHD->mem_root) Item_func_char(*$3); + $$= new (thd->mem_root) Item_func_char(*$3); if ($$ == NULL) MYSQL_YYABORT; } | CHAR_SYM '(' expr_list USING charset_name ')' { - $$= new (YYTHD->mem_root) Item_func_char(*$3, $5); + $$= new (thd->mem_root) Item_func_char(*$3, $5); if ($$ == NULL) MYSQL_YYABORT; } | CURRENT_USER optional_braces { - $$= new (YYTHD->mem_root) Item_func_current_user(Lex->current_context()); + $$= new (thd->mem_root) Item_func_current_user(Lex->current_context()); if ($$ == NULL) MYSQL_YYABORT; Lex->set_stmt_unsafe(); @@ -7473,31 +7447,30 @@ } | DATE_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_date_typecast($3); + $$= new (thd->mem_root) Item_date_typecast($3); if ($$ == NULL) MYSQL_YYABORT; } | DAY_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_dayofmonth($3); + $$= new (thd->mem_root) Item_func_dayofmonth($3); if ($$ == NULL) MYSQL_YYABORT; } | HOUR_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_hour($3); + $$= new (thd->mem_root) Item_func_hour($3); if ($$ == NULL) MYSQL_YYABORT; } | INSERT '(' expr ',' expr ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_insert($3,$5,$7,$9); + $$= new (thd->mem_root) Item_func_insert($3,$5,$7,$9); if ($$ == NULL) MYSQL_YYABORT; } | INTERVAL_SYM '(' expr ',' expr ')' %prec INTERVAL_SYM { - THD *thd= YYTHD; List *list= new (thd->mem_root) List; if (list == NULL) MYSQL_YYABORT; @@ -7512,7 +7485,6 @@ } | INTERVAL_SYM '(' expr ',' expr ',' expr_list ')' %prec INTERVAL_SYM { - THD *thd= YYTHD; $7->push_front($5); $7->push_front($3); Item_row *item= new (thd->mem_root) Item_row(*$7); @@ -7524,103 +7496,103 @@ } | LEFT '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_left($3,$5); + $$= new (thd->mem_root) Item_func_left($3,$5); if ($$ == NULL) MYSQL_YYABORT; } | MINUTE_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_minute($3); + $$= new (thd->mem_root) Item_func_minute($3); if ($$ == NULL) MYSQL_YYABORT; } | MONTH_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_month($3); + $$= new (thd->mem_root) Item_func_month($3); if ($$ == NULL) MYSQL_YYABORT; } | RIGHT '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_right($3,$5); + $$= new (thd->mem_root) Item_func_right($3,$5); if ($$ == NULL) MYSQL_YYABORT; } | SECOND_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_second($3); + $$= new (thd->mem_root) Item_func_second($3); if ($$ == NULL) MYSQL_YYABORT; } | TIME_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_time_typecast($3); + $$= new (thd->mem_root) Item_time_typecast($3); if ($$ == NULL) MYSQL_YYABORT; } | TIMESTAMP '(' expr ')' { - $$= new (YYTHD->mem_root) Item_datetime_typecast($3); + $$= new (thd->mem_root) Item_datetime_typecast($3); if ($$ == NULL) MYSQL_YYABORT; } | TIMESTAMP '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_add_time($3, $5, 1, 0); + $$= new (thd->mem_root) Item_func_add_time($3, $5, 1, 0); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_trim($3); + $$= new (thd->mem_root) Item_func_trim($3); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' LEADING expr FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_ltrim($6,$4); + $$= new (thd->mem_root) Item_func_ltrim($6,$4); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' TRAILING expr FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_rtrim($6,$4); + $$= new (thd->mem_root) Item_func_rtrim($6,$4); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' BOTH expr FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_trim($6,$4); + $$= new (thd->mem_root) Item_func_trim($6,$4); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' LEADING FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_ltrim($5); + $$= new (thd->mem_root) Item_func_ltrim($5); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' TRAILING FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_rtrim($5); + $$= new (thd->mem_root) Item_func_rtrim($5); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' BOTH FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_trim($5); + $$= new (thd->mem_root) Item_func_trim($5); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' expr FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_trim($5,$3); + $$= new (thd->mem_root) Item_func_trim($5,$3); if ($$ == NULL) MYSQL_YYABORT; } | USER '(' ')' { - $$= new (YYTHD->mem_root) Item_func_user(); + $$= new (thd->mem_root) Item_func_user(); if ($$ == NULL) MYSQL_YYABORT; Lex->set_stmt_unsafe(); @@ -7628,7 +7600,7 @@ } | YEAR_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_year($3); + $$= new (thd->mem_root) Item_func_year($3); if ($$ == NULL) MYSQL_YYABORT; } @@ -7649,34 +7621,34 @@ function_call_nonkeyword: ADDDATE_SYM '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_date_add_interval($3, $5, + $$= new (thd->mem_root) Item_date_add_interval($3, $5, INTERVAL_DAY, 0); if ($$ == NULL) MYSQL_YYABORT; } | ADDDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')' { - $$= new (YYTHD->mem_root) Item_date_add_interval($3, $6, $7, 0); + $$= new (thd->mem_root) Item_date_add_interval($3, $6, $7, 0); if ($$ == NULL) MYSQL_YYABORT; } | CURDATE optional_braces { - $$= new (YYTHD->mem_root) Item_func_curdate_local(); + $$= new (thd->mem_root) Item_func_curdate_local(); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | CURTIME optional_braces { - $$= new (YYTHD->mem_root) Item_func_curtime_local(); + $$= new (thd->mem_root) Item_func_curtime_local(); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | CURTIME '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_curtime_local($3); + $$= new (thd->mem_root) Item_func_curtime_local($3); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; @@ -7684,83 +7656,83 @@ | DATE_ADD_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' %prec INTERVAL_SYM { - $$= new (YYTHD->mem_root) Item_date_add_interval($3,$6,$7,0); + $$= new (thd->mem_root) Item_date_add_interval($3,$6,$7,0); if ($$ == NULL) MYSQL_YYABORT; } | DATE_SUB_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' %prec INTERVAL_SYM { - $$= new (YYTHD->mem_root) Item_date_add_interval($3,$6,$7,1); + $$= new (thd->mem_root) Item_date_add_interval($3,$6,$7,1); if ($$ == NULL) MYSQL_YYABORT; } | EXTRACT_SYM '(' interval FROM expr ')' { - $$=new (YYTHD->mem_root) Item_extract( $3, $5); + $$=new (thd->mem_root) Item_extract( $3, $5); if ($$ == NULL) MYSQL_YYABORT; } | GET_FORMAT '(' date_time_type ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_get_format($3, $5); + $$= new (thd->mem_root) Item_func_get_format($3, $5); if ($$ == NULL) MYSQL_YYABORT; } | NOW_SYM optional_braces { - $$= new (YYTHD->mem_root) Item_func_now_local(); + $$= new (thd->mem_root) Item_func_now_local(); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | NOW_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_now_local($3); + $$= new (thd->mem_root) Item_func_now_local($3); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | POSITION_SYM '(' bit_expr IN_SYM expr ')' { - $$ = new (YYTHD->mem_root) Item_func_locate($5,$3); + $$ = new (thd->mem_root) Item_func_locate($5,$3); if ($$ == NULL) MYSQL_YYABORT; } | SUBDATE_SYM '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_date_add_interval($3, $5, + $$= new (thd->mem_root) Item_date_add_interval($3, $5, INTERVAL_DAY, 1); if ($$ == NULL) MYSQL_YYABORT; } | SUBDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')' { - $$= new (YYTHD->mem_root) Item_date_add_interval($3, $6, $7, 1); + $$= new (thd->mem_root) Item_date_add_interval($3, $6, $7, 1); if ($$ == NULL) MYSQL_YYABORT; } | SUBSTRING '(' expr ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_substr($3,$5,$7); + $$= new (thd->mem_root) Item_func_substr($3,$5,$7); if ($$ == NULL) MYSQL_YYABORT; } | SUBSTRING '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_substr($3,$5); + $$= new (thd->mem_root) Item_func_substr($3,$5); if ($$ == NULL) MYSQL_YYABORT; } | SUBSTRING '(' expr FROM expr FOR_SYM expr ')' { - $$= new (YYTHD->mem_root) Item_func_substr($3,$5,$7); + $$= new (thd->mem_root) Item_func_substr($3,$5,$7); if ($$ == NULL) MYSQL_YYABORT; } | SUBSTRING '(' expr FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_substr($3,$5); + $$= new (thd->mem_root) Item_func_substr($3,$5); if ($$ == NULL) MYSQL_YYABORT; } @@ -7775,9 +7747,9 @@ */ Lex->set_stmt_unsafe(); if (global_system_variables.sysdate_is_now == 0) - $$= new (YYTHD->mem_root) Item_func_sysdate_local(); + $$= new (thd->mem_root) Item_func_sysdate_local(); else - $$= new (YYTHD->mem_root) Item_func_now_local(); + $$= new (thd->mem_root) Item_func_now_local(); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; @@ -7785,42 +7757,42 @@ | SYSDATE '(' expr ')' { if (global_system_variables.sysdate_is_now == 0) - $$= new (YYTHD->mem_root) Item_func_sysdate_local($3); + $$= new (thd->mem_root) Item_func_sysdate_local($3); else - $$= new (YYTHD->mem_root) Item_func_now_local($3); + $$= new (thd->mem_root) Item_func_now_local($3); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | TIMESTAMP_ADD '(' interval_time_stamp ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_date_add_interval($7,$5,$3,0); + $$= new (thd->mem_root) Item_date_add_interval($7,$5,$3,0); if ($$ == NULL) MYSQL_YYABORT; } | TIMESTAMP_DIFF '(' interval_time_stamp ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_timestamp_diff($5,$7,$3); + $$= new (thd->mem_root) Item_func_timestamp_diff($5,$7,$3); if ($$ == NULL) MYSQL_YYABORT; } | UTC_DATE_SYM optional_braces { - $$= new (YYTHD->mem_root) Item_func_curdate_utc(); + $$= new (thd->mem_root) Item_func_curdate_utc(); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | UTC_TIME_SYM optional_braces { - $$= new (YYTHD->mem_root) Item_func_curtime_utc(); + $$= new (thd->mem_root) Item_func_curtime_utc(); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | UTC_TIMESTAMP_SYM optional_braces { - $$= new (YYTHD->mem_root) Item_func_now_utc(); + $$= new (thd->mem_root) Item_func_now_utc(); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; @@ -7835,62 +7807,61 @@ function_call_conflict: ASCII_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_ascii($3); + $$= new (thd->mem_root) Item_func_ascii($3); if ($$ == NULL) MYSQL_YYABORT; } | CHARSET '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_charset($3); + $$= new (thd->mem_root) Item_func_charset($3); if ($$ == NULL) MYSQL_YYABORT; } | COALESCE '(' expr_list ')' { - $$= new (YYTHD->mem_root) Item_func_coalesce(* $3); + $$= new (thd->mem_root) Item_func_coalesce(* $3); if ($$ == NULL) MYSQL_YYABORT; } | COLLATION_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_collation($3); + $$= new (thd->mem_root) Item_func_collation($3); if ($$ == NULL) MYSQL_YYABORT; } | DATABASE '(' ')' { - $$= new (YYTHD->mem_root) Item_func_database(); + $$= new (thd->mem_root) Item_func_database(); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | IF '(' expr ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_if($3,$5,$7); + $$= new (thd->mem_root) Item_func_if($3,$5,$7); if ($$ == NULL) MYSQL_YYABORT; } | MICROSECOND_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_microsecond($3); + $$= new (thd->mem_root) Item_func_microsecond($3); if ($$ == NULL) MYSQL_YYABORT; } | MOD_SYM '(' expr ',' expr ')' { - $$ = new (YYTHD->mem_root) Item_func_mod($3, $5); + $$ = new (thd->mem_root) Item_func_mod($3, $5); if ($$ == NULL) MYSQL_YYABORT; } | OLD_PASSWORD '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_old_password($3); + $$= new (thd->mem_root) Item_func_old_password($3); if ($$ == NULL) MYSQL_YYABORT; } | PASSWORD '(' expr ')' { - THD *thd= YYTHD; Item* i1; if (thd->variables.old_passwords) i1= new (thd->mem_root) Item_func_old_password($3); @@ -7902,31 +7873,30 @@ } | QUARTER_SYM '(' expr ')' { - $$ = new (YYTHD->mem_root) Item_func_quarter($3); + $$ = new (thd->mem_root) Item_func_quarter($3); if ($$ == NULL) MYSQL_YYABORT; } | REPEAT_SYM '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_repeat($3,$5); + $$= new (thd->mem_root) Item_func_repeat($3,$5); if ($$ == NULL) MYSQL_YYABORT; } | REPLACE '(' expr ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_replace($3,$5,$7); + $$= new (thd->mem_root) Item_func_replace($3,$5,$7); if ($$ == NULL) MYSQL_YYABORT; } | TRUNCATE_SYM '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_round($3,$5,1); + $$= new (thd->mem_root) Item_func_round($3,$5,1); if ($$ == NULL) MYSQL_YYABORT; } | WEEK_SYM '(' expr ')' { - THD *thd= YYTHD; Item *i1= new (thd->mem_root) Item_int((char*) "0", thd->variables.default_week_format, 1); @@ -7938,7 +7908,7 @@ } | WEEK_SYM '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_week($3,$5); + $$= new (thd->mem_root) Item_func_week($3,$5); if ($$ == NULL) MYSQL_YYABORT; } @@ -7960,52 +7930,52 @@ geometry_function: CONTAINS_SYM '(' expr ',' expr ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_rel($3, $5, Item_func::SP_CONTAINS_FUNC)); } | GEOMETRYCOLLECTION '(' expr_list ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_collection(* $3, Geometry::wkb_geometrycollection, Geometry::wkb_point)); } | LINESTRING '(' expr_list ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_collection(* $3, Geometry::wkb_linestring, Geometry::wkb_point)); } | MULTILINESTRING '(' expr_list ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_collection(* $3, Geometry::wkb_multilinestring, Geometry::wkb_linestring)); } | MULTIPOINT '(' expr_list ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_collection(* $3, Geometry::wkb_multipoint, Geometry::wkb_point)); } | MULTIPOLYGON '(' expr_list ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_collection(* $3, Geometry::wkb_multipolygon, Geometry::wkb_polygon)); } | POINT_SYM '(' expr ',' expr ')' { - $$= GEOM_NEW(YYTHD, Item_func_point($3,$5)); + $$= GEOM_NEW(thd, Item_func_point($3,$5)); } | POLYGON '(' expr_list ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_collection(* $3, Geometry::wkb_polygon, Geometry::wkb_linestring)); @@ -8043,7 +8013,6 @@ } opt_udf_expr_list ')' { - THD *thd= YYTHD; Create_func *builder; Item *item= NULL; @@ -8097,7 +8066,6 @@ } | ident '.' ident '(' opt_expr_list ')' { - THD *thd= YYTHD; Create_qfunc *builder; Item *item= NULL; @@ -8161,7 +8129,7 @@ udf_expr_list: udf_expr { - $$= new (YYTHD->mem_root) List; + $$= new (thd->mem_root) List; if ($$ == NULL) MYSQL_YYABORT; $$->push_back($1); @@ -8194,7 +8162,7 @@ remember_name we may get quoted or escaped names. */ else if ($2->type() != Item::FIELD_ITEM) - $2->set_name($1, (uint) ($3 - $1), YYTHD->charset()); + $2->set_name($1, (uint) ($3 - $1), thd->charset()); $$= $2; } ; @@ -8202,46 +8170,46 @@ sum_expr: AVG_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_avg($3); + $$= new (thd->mem_root) Item_sum_avg($3); if ($$ == NULL) MYSQL_YYABORT; } | AVG_SYM '(' DISTINCT in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_avg_distinct($4); + $$= new (thd->mem_root) Item_sum_avg_distinct($4); if ($$ == NULL) MYSQL_YYABORT; } | BIT_AND '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_and($3); + $$= new (thd->mem_root) Item_sum_and($3); if ($$ == NULL) MYSQL_YYABORT; } | BIT_OR '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_or($3); + $$= new (thd->mem_root) Item_sum_or($3); if ($$ == NULL) MYSQL_YYABORT; } | BIT_XOR '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_xor($3); + $$= new (thd->mem_root) Item_sum_xor($3); if ($$ == NULL) MYSQL_YYABORT; } | COUNT_SYM '(' opt_all '*' ')' { - Item *item= new (YYTHD->mem_root) Item_int((int32) 0L,1); + Item *item= new (thd->mem_root) Item_int((int32) 0L,1); if (item == NULL) MYSQL_YYABORT; - $$= new (YYTHD->mem_root) Item_sum_count(item); + $$= new (thd->mem_root) Item_sum_count(item); if ($$ == NULL) MYSQL_YYABORT; } | COUNT_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_count($3); + $$= new (thd->mem_root) Item_sum_count($3); if ($$ == NULL) MYSQL_YYABORT; } @@ -8251,13 +8219,13 @@ { Select->in_sum_expr--; } ')' { - $$= new (YYTHD->mem_root) Item_sum_count_distinct(* $5); + $$= new (thd->mem_root) Item_sum_count_distinct(* $5); if ($$ == NULL) MYSQL_YYABORT; } | MIN_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_min($3); + $$= new (thd->mem_root) Item_sum_min($3); if ($$ == NULL) MYSQL_YYABORT; } @@ -8268,55 +8236,55 @@ */ | MIN_SYM '(' DISTINCT in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_min($4); + $$= new (thd->mem_root) Item_sum_min($4); if ($$ == NULL) MYSQL_YYABORT; } | MAX_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_max($3); + $$= new (thd->mem_root) Item_sum_max($3); if ($$ == NULL) MYSQL_YYABORT; } | MAX_SYM '(' DISTINCT in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_max($4); + $$= new (thd->mem_root) Item_sum_max($4); if ($$ == NULL) MYSQL_YYABORT; } | STD_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_std($3, 0); + $$= new (thd->mem_root) Item_sum_std($3, 0); if ($$ == NULL) MYSQL_YYABORT; } | VARIANCE_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_variance($3, 0); + $$= new (thd->mem_root) Item_sum_variance($3, 0); if ($$ == NULL) MYSQL_YYABORT; } | STDDEV_SAMP_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_std($3, 1); + $$= new (thd->mem_root) Item_sum_std($3, 1); if ($$ == NULL) MYSQL_YYABORT; } | VAR_SAMP_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_variance($3, 1); + $$= new (thd->mem_root) Item_sum_variance($3, 1); if ($$ == NULL) MYSQL_YYABORT; } | SUM_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_sum($3); + $$= new (thd->mem_root) Item_sum_sum($3); if ($$ == NULL) MYSQL_YYABORT; } | SUM_SYM '(' DISTINCT in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_sum_distinct($4); + $$= new (thd->mem_root) Item_sum_sum_distinct($4); if ($$ == NULL) MYSQL_YYABORT; } @@ -8328,7 +8296,7 @@ { SELECT_LEX *sel= Select; sel->in_sum_expr--; - $$= new (YYTHD->mem_root) + $$= new (thd->mem_root) Item_func_group_concat(Lex->current_context(), $3, $5, sel->gorder_list, $7); if ($$ == NULL) @@ -8357,7 +8325,7 @@ ident_or_text SET_VAR expr { Item_func_set_user_var *item; - $$= item= new (YYTHD->mem_root) Item_func_set_user_var($1, $3); + $$= item= new (thd->mem_root) Item_func_set_user_var($1, $3); if ($$ == NULL) MYSQL_YYABORT; LEX *lex= Lex; @@ -8366,7 +8334,7 @@ } | ident_or_text { - $$= new (YYTHD->mem_root) Item_func_get_user_var($1); + $$= new (thd->mem_root) Item_func_get_user_var($1); if ($$ == NULL) MYSQL_YYABORT; LEX *lex= Lex; @@ -8380,7 +8348,7 @@ my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; } - if (!($$= get_system_var(YYTHD, $2, $3, $4))) + if (!($$= get_system_var(thd, $2, $3, $4))) MYSQL_YYABORT; if (!((Item_func_get_system_var*) $$)->is_written_to_binlog()) Lex->set_stmt_unsafe(); @@ -8395,7 +8363,7 @@ opt_gconcat_separator: /* empty */ { - $$= new (YYTHD->mem_root) String(",", 1, &my_charset_latin1); + $$= new (thd->mem_root) String(",", 1, &my_charset_latin1); if ($$ == NULL) MYSQL_YYABORT; } @@ -8422,9 +8390,9 @@ gorder_list: gorder_list ',' order_ident order_dir - { if (add_gorder_to_list(YYTHD, $3,(bool) $4)) MYSQL_YYABORT; } + { if (add_gorder_to_list(thd, $3,(bool) $4)) MYSQL_YYABORT; } | order_ident order_dir - { if (add_gorder_to_list(YYTHD, $1,(bool) $2)) MYSQL_YYABORT; } + { if (add_gorder_to_list(thd, $1,(bool) $2)) MYSQL_YYABORT; } ; in_sum_expr: @@ -8477,7 +8445,7 @@ expr_list: expr { - $$= new (YYTHD->mem_root) List; + $$= new (thd->mem_root) List; if ($$ == NULL) MYSQL_YYABORT; $$->push_back($1); @@ -8497,7 +8465,7 @@ ident_list: simple_ident { - $$= new (YYTHD->mem_root) List; + $$= new (thd->mem_root) List; if ($$ == NULL) MYSQL_YYABORT; $$->push_back($1); @@ -8595,7 +8563,7 @@ { MYSQL_YYABORT_UNLESS($1 && $3); /* Change the current name resolution context to a local context. */ - if (push_new_name_resolution_context(YYTHD, $1, $3)) + if (push_new_name_resolution_context(thd, $1, $3)) MYSQL_YYABORT; Select->parsing_place= IN_ON; } @@ -8610,7 +8578,7 @@ { MYSQL_YYABORT_UNLESS($1 && $3); /* Change the current name resolution context to a local context. */ - if (push_new_name_resolution_context(YYTHD, $1, $3)) + if (push_new_name_resolution_context(thd, $1, $3)) MYSQL_YYABORT; Select->parsing_place= IN_ON; } @@ -8640,7 +8608,7 @@ { MYSQL_YYABORT_UNLESS($1 && $5); /* Change the current name resolution context to a local context. */ - if (push_new_name_resolution_context(YYTHD, $1, $5)) + if (push_new_name_resolution_context(thd, $1, $5)) MYSQL_YYABORT; Select->parsing_place= IN_ON; } @@ -8676,7 +8644,7 @@ { MYSQL_YYABORT_UNLESS($1 && $5); /* Change the current name resolution context to a local context. */ - if (push_new_name_resolution_context(YYTHD, $1, $5)) + if (push_new_name_resolution_context(thd, $1, $5)) MYSQL_YYABORT; Select->parsing_place= IN_ON; } @@ -8724,7 +8692,7 @@ } table_ident opt_table_alias opt_key_definition { - if (!($$= Select->add_table_to_list(YYTHD, $2, $3, + if (!($$= Select->add_table_to_list(thd, $2, $3, Select->get_table_join_options(), Lex->lock_option, Select->pop_index_hints()))) @@ -8922,7 +8890,7 @@ opt_index_hints_list: /* empty */ - | { Select->alloc_index_hints(YYTHD); } index_hints_list + | { Select->alloc_index_hints(thd); } index_hints_list ; opt_key_definition: @@ -8931,15 +8899,15 @@ ; opt_key_usage_list: - /* empty */ { Select->add_index_hint(YYTHD, NULL, 0); } + /* empty */ { Select->add_index_hint(thd, NULL, 0); } | key_usage_list {} ; key_usage_element: ident - { Select->add_index_hint(YYTHD, $1.str, $1.length); } + { Select->add_index_hint(thd, $1.str, $1.length); } | PRIMARY_SYM - { Select->add_index_hint(YYTHD, (char *)"PRIMARY", 7); } + { Select->add_index_hint(thd, (char *)"PRIMARY", 7); } ; key_usage_list: @@ -8952,7 +8920,7 @@ { if (!($$= new List)) MYSQL_YYABORT; - String *s= new (YYTHD->mem_root) String((const char *) $1.str, + String *s= new (thd->mem_root) String((const char *) $1.str, $1.length, system_charset_info); if (s == NULL) @@ -8961,7 +8929,7 @@ } | using_list ',' ident { - String *s= new (YYTHD->mem_root) String((const char *) $3.str, + String *s= new (thd->mem_root) String((const char *) $3.str, $3.length, system_charset_info); if (s == NULL) @@ -9002,7 +8970,7 @@ implementation without changing its resolution. */ - WARN_DEPRECATED(yythd, VER_CELOSIA, "FRAC_SECOND", "MICROSECOND"); + WARN_DEPRECATED(thd, VER_CELOSIA, "FRAC_SECOND", "MICROSECOND"); } ; @@ -9086,7 +9054,6 @@ } | /* empty */ { - THD *thd= YYTHD; Lex->escape_used= FALSE; $$= ((thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) ? new (thd->mem_root) Item_string("", 0, &my_charset_latin1) : @@ -9107,9 +9074,9 @@ group_list: group_list ',' order_ident order_dir - { if (add_group_to_list(YYTHD, $3,(bool) $4)) MYSQL_YYABORT; } + { if (add_group_to_list(thd, $3,(bool) $4)) MYSQL_YYABORT; } | order_ident order_dir - { if (add_group_to_list(YYTHD, $1,(bool) $2)) MYSQL_YYABORT; } + { if (add_group_to_list(thd, $1,(bool) $2)) MYSQL_YYABORT; } ; olap_opt: @@ -9156,7 +9123,6 @@ alter_order_item: simple_ident_nospvar order_dir { - THD *thd= YYTHD; bool ascending= ($2 == 1) ? true : false; if (add_order_to_list(thd, $1, ascending)) MYSQL_YYABORT; @@ -9209,9 +9175,9 @@ order_list: order_list ',' order_ident order_dir - { if (add_order_to_list(YYTHD, $3,(bool) $4)) MYSQL_YYABORT; } + { if (add_order_to_list(thd, $3,(bool) $4)) MYSQL_YYABORT; } | order_ident order_dir - { if (add_order_to_list(YYTHD, $1,(bool) $2)) MYSQL_YYABORT; } + { if (add_order_to_list(thd, $1,(bool) $2)) MYSQL_YYABORT; } ; order_dir: @@ -9271,19 +9237,19 @@ } | ULONGLONG_NUM { - $$= new (YYTHD->mem_root) Item_uint($1.str, $1.length); + $$= new (thd->mem_root) Item_uint($1.str, $1.length); if ($$ == NULL) MYSQL_YYABORT; } | LONG_NUM { - $$= new (YYTHD->mem_root) Item_uint($1.str, $1.length); + $$= new (thd->mem_root) Item_uint($1.str, $1.length); if ($$ == NULL) MYSQL_YYABORT; } | NUM { - $$= new (YYTHD->mem_root) Item_uint($1.str, $1.length); + $$= new (thd->mem_root) Item_uint($1.str, $1.length); if ($$ == NULL) MYSQL_YYABORT; } @@ -9365,7 +9331,7 @@ lex->proc_list.elements=0; lex->proc_list.first=0; lex->proc_list.next= &lex->proc_list.first; - Item_field *item= new (YYTHD->mem_root) + Item_field *item= new (thd->mem_root) Item_field(&lex->current_select->context, NULL, NULL, $2.str); if (item == NULL) @@ -9390,8 +9356,7 @@ procedure_item: remember_name expr remember_end { - THD *thd= YYTHD; - + if (add_proc_to_list(thd, $2)) MYSQL_YYABORT; if (!$2->name) @@ -9560,7 +9525,6 @@ } | DROP FUNCTION_SYM if_exists ident '.' ident { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_name *spname; if ($4.str && check_db_name(&$4)) @@ -9583,7 +9547,6 @@ } | DROP FUNCTION_SYM if_exists ident { - THD *thd= YYTHD; LEX *lex= thd->lex; LEX_STRING db= {0, 0}; sp_name *spname; @@ -9664,7 +9627,7 @@ table_name: table_ident { - if (!Select->add_table_to_list(YYTHD, $1, NULL, TL_OPTION_UPDATING)) + if (!Select->add_table_to_list(thd, $1, NULL, TL_OPTION_UPDATING)) MYSQL_YYABORT; } ; @@ -9677,7 +9640,7 @@ table_alias_ref: table_ident_opt_wild { - if (!Select->add_table_to_list(YYTHD, $1, NULL, + if (!Select->add_table_to_list(thd, $1, NULL, TL_OPTION_UPDATING | TL_OPTION_ALIAS, Lex->lock_option )) MYSQL_YYABORT; @@ -9868,7 +9831,7 @@ expr { $$= $1;} | DEFAULT { - $$= new (YYTHD->mem_root) Item_default_value(Lex->current_context()); + $$= new (thd->mem_root) Item_default_value(Lex->current_context()); if ($$ == NULL) MYSQL_YYABORT; } @@ -9922,7 +9885,7 @@ update_elem: simple_ident_nospvar equal expr_or_default { - if (add_item_to_list(YYTHD, $1) || add_value_to_list(YYTHD, $3)) + if (add_item_to_list(thd, $1) || add_value_to_list(thd, $3)) MYSQL_YYABORT; } ; @@ -9965,7 +9928,7 @@ single_multi: FROM table_ident { - if (!Select->add_table_to_list(YYTHD, $2, NULL, TL_OPTION_UPDATING, + if (!Select->add_table_to_list(thd, $2, NULL, TL_OPTION_UPDATING, Lex->lock_option)) MYSQL_YYABORT; } @@ -9998,7 +9961,7 @@ Table_ident *ti= new Table_ident($1); if (ti == NULL) MYSQL_YYABORT; - if (!Select->add_table_to_list(YYTHD, + if (!Select->add_table_to_list(thd, ti, $3, TL_OPTION_UPDATING | TL_OPTION_ALIAS, @@ -10007,10 +9970,10 @@ } | ident '.' ident opt_wild opt_table_alias { - Table_ident *ti= new Table_ident(YYTHD, $1, $3, 0); + Table_ident *ti= new Table_ident(thd, $1, $3, 0); if (ti == NULL) MYSQL_YYABORT; - if (!Select->add_table_to_list(YYTHD, + if (!Select->add_table_to_list(thd, ti, $5, TL_OPTION_UPDATING | TL_OPTION_ALIAS, @@ -10130,7 +10093,7 @@ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_DATABASES; - if (prepare_schema_table(YYTHD, lex, 0, SCH_SCHEMATA)) + if (prepare_schema_table(thd, lex, 0, SCH_SCHEMATA)) MYSQL_YYABORT; } | opt_full TABLES opt_db wild_and_where @@ -10138,7 +10101,7 @@ LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TABLES; lex->select_lex.db= $3; - if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLE_NAMES)) + if (prepare_schema_table(thd, lex, 0, SCH_TABLE_NAMES)) MYSQL_YYABORT; } | opt_full TRIGGERS_SYM opt_db wild_and_where @@ -10146,7 +10109,7 @@ LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TRIGGERS; lex->select_lex.db= $3; - if (prepare_schema_table(YYTHD, lex, 0, SCH_TRIGGERS)) + if (prepare_schema_table(thd, lex, 0, SCH_TRIGGERS)) MYSQL_YYABORT; } | EVENTS_SYM opt_db wild_and_where @@ -10154,7 +10117,7 @@ LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_EVENTS; lex->select_lex.db= $2; - if (prepare_schema_table(YYTHD, lex, 0, SCH_EVENTS)) + if (prepare_schema_table(thd, lex, 0, SCH_EVENTS)) MYSQL_YYABORT; } | TABLE_SYM STATUS_SYM opt_db wild_and_where @@ -10162,7 +10125,7 @@ LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TABLE_STATUS; lex->select_lex.db= $3; - if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLES)) + if (prepare_schema_table(thd, lex, 0, SCH_TABLES)) MYSQL_YYABORT; } | OPEN_SYM TABLES opt_db wild_and_where @@ -10170,22 +10133,22 @@ LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_OPEN_TABLES; lex->select_lex.db= $3; - if (prepare_schema_table(YYTHD, lex, 0, SCH_OPEN_TABLES)) + if (prepare_schema_table(thd, lex, 0, SCH_OPEN_TABLES)) MYSQL_YYABORT; } | opt_full PLUGIN_SYM { LEX *lex= Lex; - WARN_DEPRECATED(yythd, "6.0", "SHOW PLUGIN", "'SHOW PLUGINS'"); + WARN_DEPRECATED(thd, "6.0", "SHOW PLUGIN", "'SHOW PLUGINS'"); lex->sql_command= SQLCOM_SHOW_PLUGINS; - if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS)) + if (prepare_schema_table(thd, lex, 0, SCH_PLUGINS)) MYSQL_YYABORT; } | PLUGINS_SYM { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_PLUGINS; - if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS)) + if (prepare_schema_table(thd, lex, 0, SCH_PLUGINS)) MYSQL_YYABORT; } | ENGINE_SYM known_storage_engines show_engine_param @@ -10198,7 +10161,7 @@ lex->sql_command= SQLCOM_SHOW_FIELDS; if ($5) $4->change_db($5); - if (prepare_schema_table(YYTHD, lex, $4, SCH_COLUMNS)) + if (prepare_schema_table(thd, lex, $4, SCH_COLUMNS)) MYSQL_YYABORT; } | NEW_SYM MASTER_SYM FOR_SYM SLAVE @@ -10233,7 +10196,7 @@ lex->sql_command= SQLCOM_SHOW_KEYS; if ($4) $3->change_db($4); - if (prepare_schema_table(YYTHD, lex, $3, SCH_STATISTICS)) + if (prepare_schema_table(thd, lex, $3, SCH_STATISTICS)) MYSQL_YYABORT; } | COLUMN_SYM TYPES_SYM @@ -10245,15 +10208,15 @@ { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES; - WARN_DEPRECATED(yythd, "6.0", "SHOW TABLE TYPES", "'SHOW [STORAGE] ENGINES'"); - if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES)) + WARN_DEPRECATED(thd, "6.0", "SHOW TABLE TYPES", "'SHOW [STORAGE] ENGINES'"); + if (prepare_schema_table(thd, lex, 0, SCH_ENGINES)) MYSQL_YYABORT; } | opt_storage ENGINES_SYM { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES; - if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES)) + if (prepare_schema_table(thd, lex, 0, SCH_ENGINES)) MYSQL_YYABORT; } | AUTHORS_SYM @@ -10285,7 +10248,7 @@ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_PROFILE; - if (prepare_schema_table(YYTHD, lex, NULL, SCH_PROFILES) != 0) + if (prepare_schema_table(thd, lex, NULL, SCH_PROFILES) != 0) YYABORT; } | opt_var_type STATUS_SYM wild_and_where @@ -10293,7 +10256,7 @@ LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS; lex->option_type= $1; - if (prepare_schema_table(YYTHD, lex, 0, SCH_STATUS)) + if (prepare_schema_table(thd, lex, 0, SCH_STATUS)) MYSQL_YYABORT; } | INNOBASE_SYM STATUS_SYM @@ -10301,24 +10264,24 @@ LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_ENGINE_STATUS; if (!(lex->create_info.db_type= - ha_resolve_by_legacy_type(YYTHD, DB_TYPE_INNODB))) + ha_resolve_by_legacy_type(thd, DB_TYPE_INNODB))) { my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB"); MYSQL_YYABORT; } - WARN_DEPRECATED(yythd, "6.0", "SHOW INNODB STATUS", "'SHOW ENGINE INNODB STATUS'"); + WARN_DEPRECATED(thd, "6.0", "SHOW INNODB STATUS", "'SHOW ENGINE INNODB STATUS'"); } | MUTEX_SYM STATUS_SYM { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_ENGINE_MUTEX; if (!(lex->create_info.db_type= - ha_resolve_by_legacy_type(YYTHD, DB_TYPE_INNODB))) + ha_resolve_by_legacy_type(thd, DB_TYPE_INNODB))) { my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB"); MYSQL_YYABORT; } - WARN_DEPRECATED(yythd, "6.0", "SHOW MUTEX STATUS", "'SHOW ENGINE INNODB MUTEX'"); + WARN_DEPRECATED(thd, "6.0", "SHOW MUTEX STATUS", "'SHOW ENGINE INNODB MUTEX'"); } | opt_full PROCESSLIST_SYM { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;} @@ -10327,21 +10290,21 @@ LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_VARIABLES; lex->option_type= $1; - if (prepare_schema_table(YYTHD, lex, 0, SCH_VARIABLES)) + if (prepare_schema_table(thd, lex, 0, SCH_VARIABLES)) MYSQL_YYABORT; } | charset wild_and_where { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_CHARSETS; - if (prepare_schema_table(YYTHD, lex, 0, SCH_CHARSETS)) + if (prepare_schema_table(thd, lex, 0, SCH_CHARSETS)) MYSQL_YYABORT; } | COLLATION_SYM wild_and_where { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_COLLATIONS; - if (prepare_schema_table(YYTHD, lex, 0, SCH_COLLATIONS)) + if (prepare_schema_table(thd, lex, 0, SCH_COLLATIONS)) MYSQL_YYABORT; } | GRANTS @@ -10371,7 +10334,7 @@ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE; - if (!lex->select_lex.add_table_to_list(YYTHD, $3, NULL,0)) + if (!lex->select_lex.add_table_to_list(thd, $3, NULL,0)) MYSQL_YYABORT; lex->only_view= 0; lex->create_info.storage_media= HA_SM_DEFAULT; @@ -10380,7 +10343,7 @@ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE; - if (!lex->select_lex.add_table_to_list(YYTHD, $3, NULL, 0)) + if (!lex->select_lex.add_table_to_list(thd, $3, NULL, 0)) MYSQL_YYABORT; lex->only_view= 1; } @@ -10416,14 +10379,14 @@ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS_PROC; - if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES)) + if (prepare_schema_table(thd, lex, 0, SCH_PROCEDURES)) MYSQL_YYABORT; } | FUNCTION_SYM STATUS_SYM wild_and_where { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS_FUNC; - if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES)) + if (prepare_schema_table(thd, lex, 0, SCH_PROCEDURES)) MYSQL_YYABORT; } | PROCEDURE CODE_SYM sp_name @@ -10501,7 +10464,7 @@ /* empty */ | LIKE TEXT_STRING_sys { - Lex->wild= new (YYTHD->mem_root) String($2.str, $2.length, + Lex->wild= new (thd->mem_root) String($2.str, $2.length, system_charset_info); if (Lex->wild == NULL) MYSQL_YYABORT; @@ -10525,7 +10488,7 @@ lex->sql_command= SQLCOM_SHOW_FIELDS; lex->select_lex.db= 0; lex->verbose= 0; - if (prepare_schema_table(YYTHD, lex, $2, SCH_COLUMNS)) + if (prepare_schema_table(thd, lex, $2, SCH_COLUMNS)) MYSQL_YYABORT; } opt_describe_column {} @@ -10554,7 +10517,7 @@ | text_string { Lex->wild= $1; } | ident { - Lex->wild= new (YYTHD->mem_root) String((const char*) $1.str, + Lex->wild= new (thd->mem_root) String((const char*) $1.str, $1.length, system_charset_info); if (Lex->wild == NULL) @@ -10697,7 +10660,6 @@ load: LOAD DATA_SYM { - THD *thd= YYTHD; LEX *lex= thd->lex; if (lex->sphead) @@ -10711,7 +10673,7 @@ | LOAD TABLE_SYM table_ident FROM MASTER_SYM { LEX *lex=Lex; - WARN_DEPRECATED(yythd, "6.0", "LOAD TABLE FROM MASTER", + WARN_DEPRECATED(thd, "6.0", "LOAD TABLE FROM MASTER", "MySQL Administrator (mysqldump, mysql)"); if (lex->sphead) { @@ -10719,7 +10681,7 @@ MYSQL_YYABORT; } lex->sql_command = SQLCOM_LOAD_MASTER_TABLE; - if (!Select->add_table_to_list(YYTHD, $3, NULL, TL_OPTION_UPDATING)) + if (!Select->add_table_to_list(thd, $3, NULL, TL_OPTION_UPDATING)) MYSQL_YYABORT; } ; @@ -10739,7 +10701,7 @@ opt_duplicate INTO TABLE_SYM table_ident { LEX *lex=Lex; - if (!Select->add_table_to_list(YYTHD, $9, NULL, TL_OPTION_UPDATING, + if (!Select->add_table_to_list(thd, $9, NULL, TL_OPTION_UPDATING, lex->lock_option)) MYSQL_YYABORT; lex->field_list.empty(); @@ -10754,7 +10716,7 @@ | FROM MASTER_SYM { Lex->sql_command = SQLCOM_LOAD_MASTER_DATA; - WARN_DEPRECATED(yythd, "6.0", "LOAD DATA FROM MASTER", + WARN_DEPRECATED(thd, "6.0", "LOAD DATA FROM MASTER", "mysqldump or future " "BACKUP/RESTORE DATABASE facility"); } @@ -10872,7 +10834,7 @@ simple_ident_nospvar {$$= $1;} | '@' ident_or_text { - $$= new (YYTHD->mem_root) Item_user_var_as_out_param($2); + $$= new (thd->mem_root) Item_user_var_as_out_param($2); if ($$ == NULL) MYSQL_YYABORT; } @@ -10889,7 +10851,6 @@ TEXT_STRING { LEX_STRING tmp; - THD *thd= YYTHD; CHARSET_INFO *cs_con= thd->variables.collation_connection; CHARSET_INFO *cs_cli= thd->variables.character_set_client; uint repertoire= thd->lex->text_string_is_7bit && @@ -10915,7 +10876,7 @@ uint repertoire= Lex->text_string_is_7bit ? MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30; DBUG_ASSERT(my_charset_is_ascii_based(national_charset_info)); - $$= new (YYTHD->mem_root) Item_string($1.str, $1.length, + $$= new (thd->mem_root) Item_string($1.str, $1.length, national_charset_info, DERIVATION_COERCIBLE, repertoire); @@ -10924,7 +10885,7 @@ } | UNDERSCORE_CHARSET TEXT_STRING { - Item_string *str= new (YYTHD->mem_root) Item_string($2.str, + Item_string *str= new (thd->mem_root) Item_string($2.str, $2.length, $1); if (str == NULL) MYSQL_YYABORT; @@ -10943,7 +10904,7 @@ If the string has been pure ASCII so far, check the new part. */ - CHARSET_INFO *cs= YYTHD->variables.collation_connection; + CHARSET_INFO *cs= thd->variables.collation_connection; item->collation.repertoire|= my_string_repertoire(cs, $2.str, $2.length); @@ -10954,15 +10915,15 @@ text_string: TEXT_STRING_literal { - $$= new (YYTHD->mem_root) String($1.str, + $$= new (thd->mem_root) String($1.str, $1.length, - YYTHD->variables.collation_connection); + thd->variables.collation_connection); if ($$ == NULL) MYSQL_YYABORT; } | HEX_NUM { - Item *tmp= new (YYTHD->mem_root) Item_hex_string($1.str, $1.length); + Item *tmp= new (thd->mem_root) Item_hex_string($1.str, $1.length); if (tmp == NULL) MYSQL_YYABORT; /* @@ -10974,7 +10935,7 @@ } | BIN_NUM { - Item *tmp= new (YYTHD->mem_root) Item_bin_string($1.str, $1.length); + Item *tmp= new (thd->mem_root) Item_bin_string($1.str, $1.length); if (tmp == NULL) MYSQL_YYABORT; /* @@ -10989,7 +10950,6 @@ param_marker: PARAM_MARKER { - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; Item_param *item; @@ -11022,38 +10982,38 @@ | NUM_literal { $$ = $1; } | NULL_SYM { - $$ = new (YYTHD->mem_root) Item_null(); + $$ = new (thd->mem_root) Item_null(); if ($$ == NULL) MYSQL_YYABORT; YYLIP->next_state= MY_LEX_OPERATOR_OR_IDENT; } | FALSE_SYM { - $$= new (YYTHD->mem_root) Item_int((char*) "FALSE",0,1); + $$= new (thd->mem_root) Item_int((char*) "FALSE",0,1); if ($$ == NULL) MYSQL_YYABORT; } | TRUE_SYM { - $$= new (YYTHD->mem_root) Item_int((char*) "TRUE",1,1); + $$= new (thd->mem_root) Item_int((char*) "TRUE",1,1); if ($$ == NULL) MYSQL_YYABORT; } | HEX_NUM { - $$ = new (YYTHD->mem_root) Item_hex_string($1.str, $1.length); + $$ = new (thd->mem_root) Item_hex_string($1.str, $1.length); if ($$ == NULL) MYSQL_YYABORT; } | BIN_NUM { - $$= new (YYTHD->mem_root) Item_bin_string($1.str, $1.length); + $$= new (thd->mem_root) Item_bin_string($1.str, $1.length); if ($$ == NULL) MYSQL_YYABORT; } | UNDERSCORE_CHARSET HEX_NUM { - Item *tmp= new (YYTHD->mem_root) Item_hex_string($2.str, $2.length); + Item *tmp= new (thd->mem_root) Item_hex_string($2.str, $2.length); if (tmp == NULL) MYSQL_YYABORT; /* @@ -11064,7 +11024,7 @@ String *str= tmp->val_str((String*) 0); Item_string *item_str; - item_str= new (YYTHD->mem_root) + item_str= new (thd->mem_root) Item_string(NULL, /* name will be set in select_item */ str ? str->ptr() : "", str ? str->length() : 0, @@ -11082,7 +11042,7 @@ } | UNDERSCORE_CHARSET BIN_NUM { - Item *tmp= new (YYTHD->mem_root) Item_bin_string($2.str, $2.length); + Item *tmp= new (thd->mem_root) Item_bin_string($2.str, $2.length); if (tmp == NULL) MYSQL_YYABORT; /* @@ -11093,7 +11053,7 @@ String *str= tmp->val_str((String*) 0); Item_string *item_str; - item_str= new (YYTHD->mem_root) + item_str= new (thd->mem_root) Item_string(NULL, /* name will be set in select_item */ str ? str->ptr() : "", str ? str->length() : 0, @@ -11117,7 +11077,7 @@ NUM { int error; - $$= new (YYTHD->mem_root) + $$= new (thd->mem_root) Item_int($1.str, (longlong) my_strtoll10($1.str, NULL, &error), $1.length); @@ -11127,7 +11087,7 @@ | LONG_NUM { int error; - $$= new (YYTHD->mem_root) + $$= new (thd->mem_root) Item_int($1.str, (longlong) my_strtoll10($1.str, NULL, &error), $1.length); @@ -11136,23 +11096,23 @@ } | ULONGLONG_NUM { - $$= new (YYTHD->mem_root) Item_uint($1.str, $1.length); + $$= new (thd->mem_root) Item_uint($1.str, $1.length); if ($$ == NULL) MYSQL_YYABORT; } | DECIMAL_NUM { - $$= new (YYTHD->mem_root) Item_decimal($1.str, $1.length, - YYTHD->charset()); - if (($$ == NULL) || (YYTHD->is_error())) + $$= new (thd->mem_root) Item_decimal($1.str, $1.length, + thd->charset()); + if (($$ == NULL) || (thd->is_error())) { MYSQL_YYABORT; } } | FLOAT_NUM { - $$= new (YYTHD->mem_root) Item_float($1.str, $1.length); - if (($$ == NULL) || (YYTHD->is_error())) + $$= new (thd->mem_root) Item_float($1.str, $1.length); + if (($$ == NULL) || (thd->is_error())) { MYSQL_YYABORT; } @@ -11172,7 +11132,7 @@ ident '.' '*' { SELECT_LEX *sel= Select; - $$= new (YYTHD->mem_root) Item_field(Lex->current_context(), + $$= new (thd->mem_root) Item_field(Lex->current_context(), NullS, $1.str, "*"); if ($$ == NULL) MYSQL_YYABORT; @@ -11180,7 +11140,6 @@ } | ident '.' ident '.' '*' { - THD *thd= YYTHD; SELECT_LEX *sel= Select; const char* schema= thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS : $1.str; @@ -11200,7 +11159,6 @@ simple_ident: ident { - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; sp_variable_t *spv; @@ -11251,7 +11209,6 @@ simple_ident_nospvar: ident { - THD *thd= YYTHD; SELECT_LEX *sel=Select; if ((sel->parsing_place != IN_HAVING) || (sel->get_in_sum_expr() > 0)) @@ -11273,7 +11230,6 @@ simple_ident_q: ident '.' ident { - THD *thd= YYTHD; LEX *lex= thd->lex; /* @@ -11352,7 +11308,6 @@ } | '.' ident '.' ident { - THD *thd= YYTHD; LEX *lex= thd->lex; SELECT_LEX *sel= lex->current_select; if (sel->no_table_names_allowed) @@ -11377,7 +11332,6 @@ } | ident '.' ident '.' ident { - THD *thd= YYTHD; LEX *lex= thd->lex; SELECT_LEX *sel= lex->current_select; const char* schema= (thd->client_capabilities & CLIENT_NO_SCHEMA ? @@ -11445,7 +11399,7 @@ } | ident '.' ident { - $$= new Table_ident(YYTHD, $1,$3,0); + $$= new Table_ident(thd, $1,$3,0); if ($$ == NULL) MYSQL_YYABORT; } @@ -11467,7 +11421,7 @@ } | ident '.' ident opt_wild { - $$= new Table_ident(YYTHD, $1,$3,0); + $$= new Table_ident(thd, $1,$3,0); if ($$ == NULL) MYSQL_YYABORT; } @@ -11477,7 +11431,7 @@ ident { LEX_STRING db={(char*) any_db,3}; - $$= new Table_ident(YYTHD, db,$1,0); + $$= new Table_ident(thd, db,$1,0); if ($$ == NULL) MYSQL_YYABORT; } @@ -11487,8 +11441,7 @@ IDENT { $$= $1; } | IDENT_QUOTED { - THD *thd= YYTHD; - + if (thd->charset_is_system_charset) { CHARSET_INFO *cs= system_charset_info; @@ -11516,8 +11469,6 @@ TEXT_STRING_sys: TEXT_STRING { - THD *thd= YYTHD; - if (thd->charset_is_system_charset) $$= $1; else @@ -11532,8 +11483,6 @@ TEXT_STRING_literal: TEXT_STRING { - THD *thd= YYTHD; - if (thd->charset_is_collation_connection) $$= $1; else @@ -11548,8 +11497,6 @@ TEXT_STRING_filesystem: TEXT_STRING { - THD *thd= YYTHD; - if (thd->charset_is_character_set_filesystem) $$= $1; else @@ -11566,7 +11513,6 @@ IDENT_sys { $$=$1; } | keyword { - THD *thd= YYTHD; $$.str= thd->strmake($1.str, $1.length); if ($$.str == NULL) MYSQL_YYABORT; @@ -11578,7 +11524,6 @@ IDENT_sys { $$=$1; } | keyword_sp { - THD *thd= YYTHD; $$.str= thd->strmake($1.str, $1.length); if ($$.str == NULL) MYSQL_YYABORT; @@ -11595,7 +11540,6 @@ user: ident_or_text { - THD *thd= YYTHD; if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user)))) MYSQL_YYABORT; $$->user = $1; @@ -11609,7 +11553,6 @@ } | ident_or_text '@' ident_or_text { - THD *thd= YYTHD; if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user)))) MYSQL_YYABORT; $$->user = $1; $$->host=$3; @@ -11628,7 +11571,7 @@ } | CURRENT_USER optional_braces { - if (!($$=(LEX_USER*) YYTHD->alloc(sizeof(st_lex_user)))) + if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user)))) MYSQL_YYABORT; /* empty LEX_USER means current_user and @@ -11991,7 +11934,6 @@ option_type_value: { - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -12022,7 +11964,6 @@ } ext_option_value { - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -12105,7 +12046,6 @@ sys_option_value: option_type internal_variable_name equal set_expr_or_default { - THD *thd= YYTHD; LEX *lex= Lex; LEX_STRING *name= &$2.base_name; @@ -12117,7 +12057,7 @@ my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; } - if (set_trigger_new_row(YYTHD, name, $4)) + if (set_trigger_new_row(thd, name, $4)) MYSQL_YYABORT; } else if ($2.var) @@ -12147,7 +12087,6 @@ } | option_type TRANSACTION_SYM ISOLATION LEVEL_SYM isolation_types { - THD *thd= YYTHD; LEX *lex=Lex; lex->option_type= $1; Item *item= new (thd->mem_root) Item_int((int32) $5); @@ -12167,7 +12106,7 @@ '@' ident_or_text equal expr { Item_func_set_user_var *item; - item= new (YYTHD->mem_root) Item_func_set_user_var($2, $4); + item= new (thd->mem_root) Item_func_set_user_var($2, $4); if (item == NULL) MYSQL_YYABORT; set_var_user *var= new set_var_user(item); @@ -12177,7 +12116,6 @@ } | '@' '@' opt_var_ident_type internal_variable_name equal set_expr_or_default { - THD *thd= YYTHD; struct sys_var_with_base tmp= $4; /* Lookup if necessary: must be a system variable. */ if (tmp.var == NULL) @@ -12190,7 +12128,6 @@ } | charset old_or_new_charset_name_or_default { - THD *thd= YYTHD; LEX *lex= thd->lex; CHARSET_INFO *cs2; cs2= $2 ? $2: global_system_variables.character_set_client; @@ -12238,7 +12175,6 @@ } | PASSWORD equal text_or_password { - THD *thd= YYTHD; LEX *lex= thd->lex; LEX_USER *user; sp_pcontext *spc= lex->spcont; @@ -12278,7 +12214,6 @@ internal_variable_name: ident { - THD *thd= YYTHD; sp_pcontext *spc= thd->lex->spcont; sp_variable_t *spv; @@ -12337,7 +12272,7 @@ } else { - sys_var *tmp=find_sys_var(YYTHD, $3.str, $3.length); + sys_var *tmp=find_sys_var(thd, $3.str, $3.length); if (!tmp) MYSQL_YYABORT; if (!tmp->is_struct()) @@ -12348,7 +12283,7 @@ } | DEFAULT '.' ident { - sys_var *tmp=find_sys_var(YYTHD, $3.str, $3.length); + sys_var *tmp=find_sys_var(thd, $3.str, $3.length); if (!tmp) MYSQL_YYABORT; if (!tmp->is_struct()) @@ -12370,16 +12305,16 @@ TEXT_STRING { $$=$1.str;} | PASSWORD '(' TEXT_STRING ')' { - $$= $3.length ? YYTHD->variables.old_passwords ? - Item_func_old_password::alloc(YYTHD, $3.str, $3.length) : - Item_func_password::alloc(YYTHD, $3.str, $3.length) : + $$= $3.length ? thd->variables.old_passwords ? + Item_func_old_password::alloc(thd, $3.str, $3.length) : + Item_func_password::alloc(thd, $3.str, $3.length) : $3.str; if ($$ == NULL) MYSQL_YYABORT; } | OLD_PASSWORD '(' TEXT_STRING ')' { - $$= $3.length ? Item_func_old_password::alloc(YYTHD, $3.str, + $$= $3.length ? Item_func_old_password::alloc(thd, $3.str, $3.length) : $3.str; if ($$ == NULL) @@ -12393,19 +12328,19 @@ | DEFAULT { $$=0; } | ON { - $$=new (YYTHD->mem_root) Item_string("ON", 2, system_charset_info); + $$=new (thd->mem_root) Item_string("ON", 2, system_charset_info); if ($$ == NULL) MYSQL_YYABORT; } | ALL { - $$=new (YYTHD->mem_root) Item_string("ALL", 3, system_charset_info); + $$=new (thd->mem_root) Item_string("ALL", 3, system_charset_info); if ($$ == NULL) MYSQL_YYABORT; } | BINARY { - $$=new (YYTHD->mem_root) Item_string("binary", 6, system_charset_info); + $$=new (thd->mem_root) Item_string("binary", 6, system_charset_info); if ($$ == NULL) MYSQL_YYABORT; } @@ -12443,7 +12378,7 @@ table_ident opt_table_alias lock_option { thr_lock_type lock_type= (thr_lock_type) $3; - if (!Select->add_table_to_list(YYTHD, $1, $2, 0, lock_type)) + if (!Select->add_table_to_list(thd, $1, $2, 0, lock_type)) MYSQL_YYABORT; /* If table is to be write locked, protect from a impending GRL. */ if (lock_type >= TL_WRITE_ALLOW_WRITE) @@ -12514,7 +12449,7 @@ lex->expr_allows_subselect= FALSE; lex->sql_command = SQLCOM_HA_READ; lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */ - Item *one= new (YYTHD->mem_root) Item_int((int32) 1); + Item *one= new (thd->mem_root) Item_int((int32) 1); if (one == NULL) MYSQL_YYABORT; lex->current_select->select_limit= one; @@ -12836,10 +12771,10 @@ $$=$1; $1->password=$4; if ($4.length) { - if (YYTHD->variables.old_passwords) + if (thd->variables.old_passwords) { char *buff= - (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1); + (char *) thd->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1); if (buff == NULL) MYSQL_YYABORT; my_make_scrambled_password_323(buff, $4.str, $4.length); @@ -12849,7 +12784,7 @@ else { char *buff= - (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH+1); + (char *) thd->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH+1); if (buff == NULL) MYSQL_YYABORT; my_make_scrambled_password(buff, $4.str, $4.length); @@ -12881,7 +12816,7 @@ column_list_id: ident { - String *new_str = new (YYTHD->mem_root) String((const char*) $1.str,$1.length,system_charset_info); + String *new_str = new (thd->mem_root) String((const char*) $1.str,$1.length,system_charset_info); if (new_str == NULL) MYSQL_YYABORT; List_iterator iter(Lex->columns); @@ -12981,14 +12916,14 @@ opt_chain: /* empty */ - { $$= (YYTHD->variables.completion_type == 1); } + { $$= (thd->variables.completion_type == 1); } | AND_SYM NO_SYM CHAIN_SYM { $$=0; } | AND_SYM CHAIN_SYM { $$=1; } ; opt_release: /* empty */ - { $$= (YYTHD->variables.completion_type == 2); } + { $$= (thd->variables.completion_type == 2); } | RELEASE_SYM { $$=1; } | NO_SYM RELEASE_SYM { $$=0; } ; @@ -13102,7 +13037,6 @@ union_order_or_limit: { - THD *thd= YYTHD; LEX *lex= thd->lex; DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE); SELECT_LEX *sel= lex->current_select; @@ -13118,7 +13052,6 @@ } order_or_limit { - THD *thd= YYTHD; thd->lex->current_select->no_table_names_allowed= 0; thd->where= ""; } @@ -13255,14 +13188,14 @@ from older master servers (i.e. to create non-suid trigger in this case). */ - YYTHD->lex->definer= 0; + thd->lex->definer= 0; } ; definer: DEFINER_SYM EQ user { - YYTHD->lex->definer= get_current_user(YYTHD, $3); + thd->lex->definer= get_current_user(thd, $3); } ; @@ -13307,7 +13240,6 @@ view_tail: view_suid VIEW_SYM table_ident { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_CREATE_VIEW; /* first table in list is target VIEW name */ @@ -13347,7 +13279,6 @@ } view_select_aux view_check_option { - THD *thd= YYTHD; LEX *lex= Lex; uint len= YYLIP->get_cpp_ptr() - lex->create_view_select.str; void *create_view_select= thd->memdup(lex->create_view_select.str, len); @@ -13403,7 +13334,6 @@ EACH_SYM ROW_SYM { /* $15 */ - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; sp_head *sp; @@ -13437,8 +13367,8 @@ sp_head *sp= lex->sphead; lex->sql_command= SQLCOM_CREATE_TRIGGER; - sp->set_stmt_end(YYTHD); - sp->restore_thd_mem_root(YYTHD); + sp->set_stmt_end(thd); + sp->restore_thd_mem_root(thd); if (sp->is_not_allowed_in_function("trigger")) MYSQL_YYABORT; @@ -13448,7 +13378,7 @@ sp_proc_stmt alternatives are not saving/restoring LEX, so lex->query_tables can be wiped out. */ - if (!lex->select_lex.add_table_to_list(YYTHD, $9, + if (!lex->select_lex.add_table_to_list(thd, $9, (LEX_STRING*) 0, TL_OPTION_UPDATING, TL_IGNORE)) @@ -13466,7 +13396,6 @@ AGGREGATE_SYM remember_name FUNCTION_SYM ident RETURNS_SYM udf_type SONAME_SYM TEXT_STRING_sys { - THD *thd= YYTHD; LEX *lex= thd->lex; if (is_native_function(thd, & $4)) { @@ -13484,7 +13413,6 @@ | remember_name FUNCTION_SYM ident RETURNS_SYM udf_type SONAME_SYM TEXT_STRING_sys { - THD *thd= YYTHD; LEX *lex= thd->lex; if (is_native_function(thd, & $3)) { @@ -13507,7 +13435,6 @@ sp_name /* $3 */ '(' /* $4 */ { /* $5 */ - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; sp_head *sp; @@ -13565,7 +13492,7 @@ MYSQL_YYABORT; } - if (sp->fill_field_definition(YYTHD, lex, + if (sp->fill_field_definition(thd, lex, (enum enum_field_types) $11, &sp->m_return_field_def)) MYSQL_YYABORT; @@ -13574,7 +13501,6 @@ } sp_c_chistics /* $13 */ { /* $14 */ - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -13583,7 +13509,6 @@ } sp_proc_stmt /* $15 */ { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -13654,10 +13579,10 @@ sp= new sp_head(); if (sp == NULL) MYSQL_YYABORT; - sp->reset_thd_mem_root(YYTHD); + sp->reset_thd_mem_root(thd); sp->init(lex); sp->m_type= TYPE_ENUM_PROCEDURE; - sp->init_sp_name(YYTHD, $3); + sp->init_sp_name(thd, $3); lex->sphead= sp; } @@ -13672,7 +13597,6 @@ sp_pdparam_list ')' { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); @@ -13680,7 +13604,6 @@ } sp_c_chistics { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sphead->m_chistics= &lex->sp_chistics; @@ -13691,9 +13614,9 @@ LEX *lex= Lex; sp_head *sp= lex->sphead; - sp->set_stmt_end(YYTHD); + sp->set_stmt_end(thd); lex->sql_command= SQLCOM_CREATE_PROCEDURE; - sp->restore_thd_mem_root(YYTHD); + sp->restore_thd_mem_root(thd); } ; @@ -13730,21 +13653,21 @@ text_string { MYSQL_YYABORT_UNLESS($1->length() <= MAXGTRIDSIZE); - if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID)))) + if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID)))) MYSQL_YYABORT; Lex->xid->set(1L, $1->ptr(), $1->length(), 0, 0); } | text_string ',' text_string { MYSQL_YYABORT_UNLESS($1->length() <= MAXGTRIDSIZE && $3->length() <= MAXBQUALSIZE); - if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID)))) + if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID)))) MYSQL_YYABORT; Lex->xid->set(1L, $1->ptr(), $1->length(), $3->ptr(), $3->length()); } | text_string ',' text_string ',' ulong_num { MYSQL_YYABORT_UNLESS($1->length() <= MAXGTRIDSIZE && $3->length() <= MAXBQUALSIZE); - if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID)))) + if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID)))) MYSQL_YYABORT; Lex->xid->set($5, $1->ptr(), $1->length(), $3->ptr(), $3->length()); } ================================================ FILE: package/oracle-mysql/0006-no-force-static-build.patch ================================================ configure: do not force a static link for non-installed programs Otherwise, it tries to link against a static libz, which may not exist in a shared-only system. Signed-off-by: "Yann E. MORIN" diff -durN mysql-5.1.73.orig/configure.in mysql-5.1.73/configure.in --- mysql-5.1.73.orig/configure.in 2014-12-22 00:04:46.550508208 +0100 +++ mysql-5.1.73/configure.in 2014-12-22 00:05:56.415307480 +0100 @@ -562,7 +562,6 @@ AC_MSG_ERROR([MySQL requires an ANSI C compiler (and a C++ compiler). Try gcc. See the Installation chapter in the Reference Manual.]) fi -NOINST_LDFLAGS="-static" static_nss="" STATIC_NSS_FLAGS="" ================================================ FILE: package/oracle-mysql/0007-dont-install-in-mysql-directory.patch ================================================ Don't install in mysql directory Installing libraries in a subdirectory of /usr/lib leads to no end of trouble. It requires either setting a RUN_PATH in the ELF files linked with it or adding the path to ld.so.conf and calling ldconfig on the target. So to simplify things, put everything in /usr/lib instead of /usr/lib/mysql Signed-off-by: Arnout Vandecappelle (Essensium/Mind) diff -Nrup mysql-5.1.73.orig/dbug/Makefile.am mysql-5.1.73/dbug/Makefile.am --- mysql-5.1.73.orig/dbug/Makefile.am 2013-11-04 19:52:27.000000000 +0100 +++ mysql-5.1.73/dbug/Makefile.am 2015-12-14 00:34:58.567937603 +0100 @@ -17,7 +17,7 @@ INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include LDADD = libdbug.a ../mysys/libmysys.a ../strings/libmystrings.a -pkglib_LIBRARIES = libdbug.a +lib_LIBRARIES = libdbug.a noinst_HEADERS = dbug_long.h libdbug_a_SOURCES = dbug.c sanity.c EXTRA_DIST = CMakeLists.txt example1.c example2.c example3.c \ diff -Nrup mysql-5.1.73.orig/libmysql/Makefile.shared mysql-5.1.73/libmysql/Makefile.shared --- mysql-5.1.73.orig/libmysql/Makefile.shared 2013-11-04 19:52:27.000000000 +0100 +++ mysql-5.1.73/libmysql/Makefile.shared 2015-12-14 00:34:58.567937603 +0100 @@ -25,7 +25,7 @@ MYSQLBASEdir= $(prefix) ## We'll use CLIENT_EXTRA_LDFLAGS for threaded and non-threaded ## until someone complains that they need separate options. LDADD = @CLIENT_EXTRA_LDFLAGS@ $(target) -pkglib_LTLIBRARIES = $(target) +lib_LTLIBRARIES = $(target) noinst_PROGRAMS = conf_to_src diff -Nrup mysql-5.1.73.orig/libmysqld/Makefile.am mysql-5.1.73/libmysqld/Makefile.am --- mysql-5.1.73.orig/libmysqld/Makefile.am 2013-11-04 19:52:27.000000000 +0100 +++ mysql-5.1.73/libmysqld/Makefile.am 2015-12-14 00:34:58.567937603 +0100 @@ -38,7 +38,7 @@ INCLUDES= -I$(top_builddir)/include -I$ @condition_dependent_plugin_includes@ noinst_LIBRARIES = libmysqld_int.a -pkglib_LIBRARIES = libmysqld.a +lib_LIBRARIES = libmysqld.a SUBDIRS = . examples libmysqld_sources= libmysqld.c lib_sql.cc emb_qcache.cc libmysqlsources = errmsg.c get_password.c libmysql.c client.c pack.c \ diff -Nrup mysql-5.1.73.orig/mysys/Makefile.am mysql-5.1.73/mysys/Makefile.am --- mysql-5.1.73.orig/mysys/Makefile.am 2013-11-04 19:52:27.000000000 +0100 +++ mysql-5.1.73/mysys/Makefile.am 2015-12-14 00:34:58.567937603 +0100 @@ -18,7 +18,7 @@ MYSQLSHAREdir = $(pkgdatadir) MYSQLBASEdir= $(prefix) INCLUDES = @ZLIB_INCLUDES@ -I$(top_builddir)/include \ -I$(top_srcdir)/include -I$(srcdir) -pkglib_LIBRARIES = libmysys.a +lib_LIBRARIES = libmysys.a LDADD = libmysys.a $(top_builddir)/strings/libmystrings.a $(top_builddir)/dbug/libdbug.a noinst_HEADERS = mysys_priv.h my_static.h my_handler_errors.h libmysys_a_SOURCES = my_init.c my_getwd.c mf_getdate.c my_mmap.c \ diff -Nrup mysql-5.1.73.orig/storage/csv/Makefile.am mysql-5.1.73/storage/csv/Makefile.am --- mysql-5.1.73.orig/storage/csv/Makefile.am 2013-11-04 19:52:27.000000000 +0100 +++ mysql-5.1.73/storage/csv/Makefile.am 2015-12-14 00:34:58.563937596 +0100 @@ -30,7 +30,7 @@ DEFS = @DEFS@ noinst_HEADERS = ha_tina.h transparent_file.h EXTRA_LTLIBRARIES = ha_csv.la -pkglib_LTLIBRARIES = @plugin_csv_shared_target@ +lib_LTLIBRARIES = @plugin_csv_shared_target@ ha_csv_la_LDFLAGS = -module -rpath $(MYSQLLIBdir) ha_csv_la_CXXFLAGS = $(AM_CXXFLAGS) -DMYSQL_PLUGIN ha_csv_la_SOURCES = transparent_file.cc ha_tina.cc diff -Nrup mysql-5.1.73.orig/storage/heap/Makefile.am mysql-5.1.73/storage/heap/Makefile.am --- mysql-5.1.73.orig/storage/heap/Makefile.am 2013-11-04 19:52:27.000000000 +0100 +++ mysql-5.1.73/storage/heap/Makefile.am 2015-12-14 00:34:58.563937596 +0100 @@ -26,7 +26,7 @@ WRAPLIBS= LDADD = DEFS = @DEFS@ -pkglib_LIBRARIES = libheap.a +lib_LIBRARIES = libheap.a noinst_PROGRAMS = hp_test1 hp_test2 noinst_LIBRARIES = libheap.a hp_test1_LDFLAGS = @NOINST_LDFLAGS@ diff -Nrup mysql-5.1.73.orig/storage/myisam/Makefile.am mysql-5.1.73/storage/myisam/Makefile.am --- mysql-5.1.73.orig/storage/myisam/Makefile.am 2013-11-04 19:52:27.000000000 +0100 +++ mysql-5.1.73/storage/myisam/Makefile.am 2015-12-14 00:34:58.563937596 +0100 @@ -30,7 +30,7 @@ DEFS = @DEFS@ EXTRA_DIST = mi_test_all.sh mi_test_all.res ft_stem.c CMakeLists.txt plug.in pkgdata_DATA = mi_test_all mi_test_all.res -pkglib_LIBRARIES = libmyisam.a +lib_LIBRARIES = libmyisam.a bin_PROGRAMS = myisamchk myisamlog myisampack myisam_ftdump myisamchk_DEPENDENCIES= $(LIBRARIES) myisamchk_LDADD= @CLIENT_EXTRA_LDFLAGS@ libmyisam.a \ diff -Nrup mysql-5.1.73.orig/storage/myisammrg/Makefile.am mysql-5.1.73/storage/myisammrg/Makefile.am --- mysql-5.1.73.orig/storage/myisammrg/Makefile.am 2013-11-04 19:52:27.000000000 +0100 +++ mysql-5.1.73/storage/myisammrg/Makefile.am 2015-12-14 00:34:58.563937596 +0100 @@ -26,7 +26,7 @@ WRAPLIBS= LDADD = DEFS = @DEFS@ -pkglib_LIBRARIES = libmyisammrg.a +lib_LIBRARIES = libmyisammrg.a noinst_HEADERS = myrg_def.h ha_myisammrg.h noinst_LIBRARIES = libmyisammrg.a libmyisammrg_a_SOURCES = myrg_open.c myrg_extra.c myrg_info.c myrg_locking.c \ diff -Nrup mysql-5.1.73.orig/strings/Makefile.am mysql-5.1.73/strings/Makefile.am --- mysql-5.1.73.orig/strings/Makefile.am 2013-11-04 19:52:27.000000000 +0100 +++ mysql-5.1.73/strings/Makefile.am 2015-12-14 00:34:58.567937603 +0100 @@ -16,7 +16,7 @@ # This file is public domain and comes with NO WARRANTY of any kind INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -pkglib_LIBRARIES = libmystrings.a +lib_LIBRARIES = libmystrings.a # Exact one of ASSEMBLER_X if ASSEMBLER_x86 @@ -69,15 +69,15 @@ conf_to_src_LDFLAGS= @NOINST_LDFLAGS@ FLAGS=$(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) @NOINST_LDFLAGS@ -str_test: str_test.c $(pkglib_LIBRARIES) - $(LINK) $(FLAGS) -DMAIN $(INCLUDES) $(srcdir)/str_test.c $(LDADD) $(pkglib_LIBRARIES) +str_test: str_test.c $(lib_LIBRARIES) + $(LINK) $(FLAGS) -DMAIN $(INCLUDES) $(srcdir)/str_test.c $(LDADD) $(lib_LIBRARIES) uctypedump: uctypedump.c $(LINK) $(INCLUDES) $(srcdir)/uctypedump.c -test_decimal$(EXEEXT): decimal.c $(pkglib_LIBRARIES) +test_decimal$(EXEEXT): decimal.c $(lib_LIBRARIES) $(CP) $(srcdir)/decimal.c ./test_decimal.c - $(LINK) $(FLAGS) -DMAIN ./test_decimal.c $(LDADD) $(pkglib_LIBRARIES) + $(LINK) $(FLAGS) -DMAIN ./test_decimal.c $(LDADD) $(lib_LIBRARIES) $(RM) -f ./test_decimal.c # Don't update the files from bitkeeper diff -Nrup mysql-5.1.73.orig/tests/Makefile.am mysql-5.1.73/tests/Makefile.am --- mysql-5.1.73.orig/tests/Makefile.am 2013-11-04 19:52:27.000000000 +0100 +++ mysql-5.1.73/tests/Makefile.am 2015-12-14 00:34:58.567937603 +0100 @@ -51,11 +51,11 @@ mysql_client_test.o: mysql_client_fw.c insert_test_SOURCES= insert_test.c select_test_SOURCES= select_test.c -insert_test_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) -select_test_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) +insert_test_DEPENDENCIES= $(LIBRARIES) $(lib_LTLIBRARIES) +select_test_DEPENDENCIES= $(LIBRARIES) $(lib_LTLIBRARIES) bug25714_SOURCES= bug25714.c -bug25714_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) +bug25714_DEPENDENCIES= $(LIBRARIES) $(lib_LTLIBRARIES) # Fix for mit-threads DEFS = -DMYSQL_CLIENT_NO_THREADS diff -Nrup mysql-5.1.73.orig/vio/Makefile.am mysql-5.1.73/vio/Makefile.am --- mysql-5.1.73.orig/vio/Makefile.am 2013-11-04 19:52:27.000000000 +0100 +++ mysql-5.1.73/vio/Makefile.am 2015-12-14 00:34:58.567937603 +0100 @@ -16,7 +16,7 @@ INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \ $(openssl_includes) LDADD = @CLIENT_EXTRA_LDFLAGS@ $(openssl_libs) $(yassl_libs) -pkglib_LIBRARIES = libvio.a +lib_LIBRARIES = libvio.a noinst_HEADERS = vio_priv.h diff -Nrup mysql-5.1.73.orig/zlib/Makefile.am mysql-5.1.73/zlib/Makefile.am --- mysql-5.1.73.orig/zlib/Makefile.am 2013-11-04 19:52:27.000000000 +0100 +++ mysql-5.1.73/zlib/Makefile.am 2015-12-14 00:34:58.567937603 +0100 @@ -19,7 +19,7 @@ INCLUDES= -I$(top_builddir)/include -I$ LIBS= $(NON_THREADED_LIBS) -pkglib_LTLIBRARIES = libz.la +lib_LTLIBRARIES = libz.la noinst_LTLIBRARIES = libzlt.la libz_la_LDFLAGS = -static ================================================ FILE: package/oracle-mysql/0008-fix-type-conversion.patch ================================================ Fix type conversion Fixes the following build error with gcc 6.x: protocol.cc:27:40: error: narrowing conversion of ''\37777777776'' from 'char' to 'uchar {aka unsigned char}' inside { } [-Wnarrowing] static uchar eof_buff[1]= { (char) 254 }; /* Marker for end of fields */ Signed-off-by: Thomas Petazzoni Index: b/server-tools/instance-manager/protocol.cc =================================================================== --- a/server-tools/instance-manager/protocol.cc +++ b/server-tools/instance-manager/protocol.cc @@ -24,7 +24,7 @@ #include -static uchar eof_buff[1]= { (char) 254 }; /* Marker for end of fields */ +static uchar eof_buff[1]= { (uchar) 254 }; /* Marker for end of fields */ static const char ERROR_PACKET_CODE= (char) 255; ================================================ FILE: package/oracle-mysql/0009-gcc7.patch ================================================ Fix gcc7 compile mysql.cc: In function 'void build_completion_hash(bool, bool)': mysql.cc:2687:37: error: invalid conversion from 'char' to 'char*' [-fpermissive] field_names[i][num_fields*2]= '\0'; ^~~~ Patch was partly backported from upstream commit: https://github.com/mysql/mysql-server/commit/ae21683d980d5fe9e39bd0193827ea3604256eb9 Signed-off-by: Bernd Kuhls [Thomas: add more gcc 7.x fixes in instance_map.cc.] Signed-off-by: Thomas Petazzoni Index: b/client/mysql.cc =================================================================== --- a/client/mysql.cc +++ b/client/mysql.cc @@ -2684,7 +2684,7 @@ mysql_free_result(fields); break; } - field_names[i][num_fields*2]= '\0'; + field_names[i][num_fields*2]= NULL; j=0; while ((sql_field=mysql_fetch_field(fields))) { Index: b/server-tools/instance-manager/instance_map.cc =================================================================== --- a/server-tools/instance-manager/instance_map.cc +++ b/server-tools/instance-manager/instance_map.cc @@ -526,12 +526,12 @@ Options::Main::config_file); argv_options[1]= defaults_file_arg; - argv_options[2]= '\0'; + argv_options[2]= NULL; argc= 2; } else - argv_options[1]= '\0'; + argv_options[1]= NULL; /* If the routine failed, we'll simply fallback to defaults in ================================================ FILE: package/oracle-mysql/0010-fix-build-without-zlib.patch ================================================ Fix build without zlib Don't include unconditionally zlib.h, and compile out code that requires zlib support. Signed-off-by: Fabrice Fontaine diff -durN mysql-5.1.73.orig/mysys/checksum.c mysql-5.1.73/mysys/checksum.c --- mysql-5.1.73.orig/mysys/checksum.c 2020-07-14 17:34:38.212304432 +0200 +++ mysql-5.1.73/mysys/checksum.c 2020-07-14 18:06:45.076342493 +0200 @@ -16,7 +16,9 @@ #include #include +#ifdef HAVE_COMPRESS #include +#endif /* Calculate a long checksum for a memoryblock. diff -durN mysql-5.1.73.orig/sql/item_strfunc.cc mysql-5.1.73/sql/item_strfunc.cc --- mysql-5.1.73.orig/sql/item_strfunc.cc 2020-07-14 17:34:38.160304431 +0200 +++ mysql-5.1.73/sql/item_strfunc.cc 2020-07-14 18:04:36.956339962 +0200 @@ -35,7 +35,9 @@ #include "my_md5.h" #include "sha1.h" #include "my_aes.h" +#ifdef HAVE_COMPRESS #include +#endif C_MODE_START #include "../mysys/my_static.h" // For soundex_map C_MODE_END diff -durN mysql-5.1.73.orig/sql/sql_table.cc mysql-5.1.73/sql/sql_table.cc --- mysql-5.1.73.orig/sql/sql_table.cc 2020-07-14 17:34:38.156304431 +0200 +++ mysql-5.1.73/sql/sql_table.cc 2020-07-14 18:14:48.628352044 +0200 @@ -1681,6 +1681,7 @@ goto end; } } +#ifdef HAVE_COMPRESS if (flags & WFRM_PACK_FRM) { /* @@ -1702,6 +1703,7 @@ } error= my_delete(shadow_frm_name, MYF(MY_WME)); } +#endif if (flags & WFRM_INSTALL_SHADOW) { #ifdef WITH_PARTITION_STORAGE_ENGINE ================================================ FILE: package/oracle-mysql/0011-config-ac-macros-alloca.m4-Remove-obsolete-Cray-supp.patch ================================================ From 0d8ab9b020870c62c216fca77e7f8bd3eeb710c3 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 9 Oct 2021 19:23:46 +0200 Subject: [PATCH] config/ac-macros/alloca.m4: Remove obsolete Cray support Remove obsolete Cray support to avoid the following build failure since autoconf >= 2.70 and http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commit;h=15edf7fd8094fd14a89d9891dd72a9624762597a: autoheader: warning: missing template: CRAY_STACKSEG_END autoheader: warning: Use AC_DEFINE([CRAY_STACKSEG_END], [], [Description]) autoreconf: error: /home/buildroot/autobuild/instance-2/output-1/host/bin/autoheader failed with exit status: 1 package/pkg-generic.mk:273: recipe for target '/home/buildroot/autobuild/instance-2/output-1/build/oracle-mysql-5.1.73/.stamp_configured' failed Fixes: - http://autobuild.buildroot.org/results/e5329bcf166d46b2eb17f2bc727c0307bef5ed02 Upstream: switched to CMake a very long time ago, so not sent upstream Signed-off-by: Fabrice Fontaine --- config/ac-macros/alloca.m4 | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/config/ac-macros/alloca.m4 b/config/ac-macros/alloca.m4 index 8c730dd671f..eecb8249573 100644 --- a/config/ac-macros/alloca.m4 +++ b/config/ac-macros/alloca.m4 @@ -46,20 +46,6 @@ then ALLOCA=alloca.o AC_DEFINE(C_ALLOCA, 1) - AC_CACHE_CHECK(whether alloca needs Cray hooks, ac_cv_os_cray, - [AC_EGREP_CPP(webecray, - [#if defined(CRAY) && ! defined(CRAY2) - webecray - #else - wenotbecray - #endif - ], ac_cv_os_cray=yes, ac_cv_os_cray=no)]) - if test "$ac_cv_os_cray" = "yes"; then - for ac_func in _getb67 GETB67 getb67; do - AC_CHECK_FUNC($ac_func, [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func) - break]) - done - fi fi AC_SUBST(ALLOCA)dnl else -- 2.33.0 ================================================ FILE: package/oracle-mysql/S97mysqld ================================================ #!/bin/sh MYSQL_DIR="/var/mysql" MYSQL_USER="mysql" [ -r /etc/default/mysql ] && . /etc/default/mysql case "$1" in start) if [ ! -d $MYSQL_DIR/mysql ] ; then echo "Creating MySQL system tables..." mysql_install_db --user=$MYSQL_USER --ldata=$MYSQL_DIR fi # mysqld runs as user mysql, but /run is only writable by root # so create a subdirectory for mysql. install -d -o mysql -g root -m 0755 /run/mysql # We don't use start-stop-daemon because mysqld has # its own wrapper script. printf "Starting mysql..." /usr/bin/mysqld_safe --pid-file=/run/mysql/mysqld.pid & echo "done." ;; stop) printf "Stopping mysql..." if test -f /run/mysql/mysqld.pid ; then kill `cat /run/mysql/mysqld.pid` fi echo "done." ;; restart) $0 stop $0 start ;; *) echo "Usage: /etc/init.d/mysqld {start|stop|restart}" ;; esac ================================================ FILE: package/oracle-mysql/mysqld.service ================================================ [Unit] Description=MySQL database server [Service] ExecStartPre=/bin/sh -c 'test -d /var/mysql/mysql || mysql_install_db --user=mysql --ldata=/var/mysql' ExecStart=/usr/bin/mysqld_safe Restart=always User=mysql RuntimeDirectory=mysql RuntimeDirectoryMode=0755 [Install] WantedBy=multi-user.target ================================================ FILE: package/oracle-mysql/oracle-mysql.hash ================================================ # From https://downloads.mariadb.com/archives/mysql-5.1/mysql-5.1.73.tar.gz.md5 md5 887f869bcc757957067b9198f707f32f mysql-5.1.73.tar.gz # Locally computed sha256 05ebe21305408b24407d14b77607a3e5ffa3c300e03f1359d3066f301989dcb5 mysql-5.1.73.tar.gz sha256 cbf0dbf56528a629f4358a1339f981202f1a9a0d9542c092b03f486064ced2db README sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/oracle-mysql/oracle-mysql.mk ================================================ ################################################################################ # # oracle-mysql # ################################################################################ ORACLE_MYSQL_VERSION_MAJOR = 5.1 ORACLE_MYSQL_VERSION = $(ORACLE_MYSQL_VERSION_MAJOR).73 ORACLE_MYSQL_SOURCE = mysql-$(ORACLE_MYSQL_VERSION).tar.gz ORACLE_MYSQL_SITE = http://dev.mysql.com/get/Downloads/MySQL-$(ORACLE_MYSQL_VERSION_MAJOR) ORACLE_MYSQL_INSTALL_STAGING = YES ORACLE_MYSQL_DEPENDENCIES = ncurses ORACLE_MYSQL_AUTORECONF = YES ORACLE_MYSQL_LICENSE = GPL-2.0 ORACLE_MYSQL_LICENSE_FILES = README COPYING ORACLE_MYSQL_SELINUX_MODULES = mysql ORACLE_MYSQL_PROVIDES = mysql ORACLE_MYSQL_CONFIG_SCRIPTS = mysql_config # Unix socket. This variable can also be consulted by other buildroot packages MYSQL_SOCKET = /run/mysql/mysql.sock ORACLE_MYSQL_CONF_ENV = \ ac_cv_sys_restartable_syscalls=yes \ ac_cv_path_PS=/bin/ps \ ac_cv_path_HOSTNAME=/bin/hostname \ ac_cv_FIND_PROC="/bin/ps p \$\$PID | grep -v grep | grep mysqld > /dev/null" \ ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC=yes \ ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS=no \ ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS=yes \ mysql_cv_new_rl_interface=yes ORACLE_MYSQL_CONF_OPTS = \ --without-ndb-binlog \ --without-docs \ --without-man \ --without-libedit \ --with-readline \ --with-low-memory \ --enable-thread-safe-client \ --with-unix-socket-path=$(MYSQL_SOCKET) \ --disable-mysql-maintainer-mode # host-oracle-mysql only installs what is needed to build mysql, i.e. the # gen_lex_hash tool, and it only builds the parts that are needed to # create this tool HOST_ORACLE_MYSQL_DEPENDENCIES = host-zlib host-ncurses HOST_ORACLE_MYSQL_CONF_OPTS = \ --with-embedded-server \ --disable-mysql-maintainer-mode define HOST_ORACLE_MYSQL_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/include my_config.h $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/mysys libmysys.a $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/strings libmystrings.a $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/vio libvio.a $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/dbug libdbug.a $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/regex libregex.a $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/sql gen_lex_hash endef define HOST_ORACLE_MYSQL_INSTALL_CMDS $(INSTALL) -m 0755 $(@D)/sql/gen_lex_hash $(HOST_DIR)/bin/ endef ifeq ($(BR2_PACKAGE_OPENSSL),y) ORACLE_MYSQL_DEPENDENCIES += openssl endif ifeq ($(BR2_PACKAGE_ZLIB),y) ORACLE_MYSQL_DEPENDENCIES += zlib ORACLE_MYSQL_CONF_OPTS += --with-zlib-dir=$(STAGING_DIR)/usr else ORACLE_MYSQL_CONF_OPTS += --without-zlib-dir endif ifeq ($(BR2_PACKAGE_ORACLE_MYSQL_SERVER),y) ORACLE_MYSQL_DEPENDENCIES += host-oracle-mysql host-bison ORACLE_MYSQL_CONF_OPTS += \ --localstatedir=/var/mysql \ --with-atomic-ops=up \ --with-embedded-server \ --without-query-cache \ --without-plugin-partition \ --without-plugin-daemon_example \ --without-plugin-ftexample \ --without-plugin-archive \ --without-plugin-blackhole \ --without-plugin-example \ --without-plugin-federated \ --without-plugin-ibmdb2i \ --without-plugin-innobase \ --without-plugin-innodb_plugin \ --without-plugin-ndbcluster # Debugging is only available for the server, so no need for # this if-block outside of the server if-block ifeq ($(BR2_ENABLE_RUNTIME_DEBUG),y) ORACLE_MYSQL_CONF_OPTS += --with-debug=full else ORACLE_MYSQL_CONF_OPTS += --without-debug endif define ORACLE_MYSQL_USERS mysql -1 nobody -1 * /var/mysql - - MySQL daemon endef define ORACLE_MYSQL_ADD_FOLDER $(INSTALL) -d $(TARGET_DIR)/var/mysql endef ORACLE_MYSQL_POST_INSTALL_TARGET_HOOKS += ORACLE_MYSQL_ADD_FOLDER define ORACLE_MYSQL_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 $(ORACLE_MYSQL_PKGDIR)/S97mysqld \ $(TARGET_DIR)/etc/init.d/S97mysqld endef define ORACLE_MYSQL_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(ORACLE_MYSQL_PKGDIR)/mysqld.service \ $(TARGET_DIR)/usr/lib/systemd/system/mysqld.service endef else ORACLE_MYSQL_CONF_OPTS += \ --without-server endif define ORACLE_MYSQL_REMOVE_TEST_PROGS rm -rf $(TARGET_DIR)/usr/mysql-test $(TARGET_DIR)/usr/sql-bench endef ORACLE_MYSQL_POST_INSTALL_TARGET_HOOKS += ORACLE_MYSQL_REMOVE_TEST_PROGS $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/orbit/Config.in ================================================ config BR2_PACKAGE_ORBIT bool "orbit" depends on BR2_PACKAGE_LUA_5_1 || BR2_PACKAGE_LUAJIT select BR2_PACKAGE_LPEG # runtime select BR2_PACKAGE_LUAFILESYSTEM # runtime select BR2_PACKAGE_WSAPI_XAVANTE # runtime help An MVC web framework for Lua. The design is inspired by lightweight Ruby frameworks such as Camping http://keplerproject.github.com/orbit comment "orbit needs a Lua 5.1 interpreter" depends on !BR2_PACKAGE_LUA_5_1 depends on !BR2_PACKAGE_LUAJIT ================================================ FILE: package/orbit/orbit.hash ================================================ # computed by luarocks/buildroot sha256 91e3c514d5b86918db83666c8889635bb2d50c71d1ab3aeb69c6469c9424089b orbit-2.2.4-1.src.rock sha256 dd7d37caed0f4ee994e9e64ea4ab292dce549bb609412c84fc47ed079275ae98 orbit/doc/us/license.html sha256 140134369c1f041abf7d8cd39a5b0c42f8b5e827695ce7c1ef5ca8f0911a0246 orbit/doc/us/license.md ================================================ FILE: package/orbit/orbit.mk ================================================ ################################################################################ # # orbit # ################################################################################ ORBIT_VERSION = 2.2.4-1 ORBIT_SUBDIR = orbit ORBIT_LICENSE = MIT ORBIT_LICENSE_FILES = \ $(ORBIT_SUBDIR)/doc/us/license.html \ $(ORBIT_SUBDIR)/doc/us/license.md $(eval $(luarocks-package)) ================================================ FILE: package/orc/0001-orc-orccpu-powerpc.c-fix-build-with-kernel-4.11.patch ================================================ From a45f6d49ec090ad94333c0865c378d2d96ab2af4 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 15 Feb 2021 20:17:43 +0100 Subject: [PATCH] orc/orccpu-powerpc.c: fix build with kernel < 4.11 Build with powerpc and kernel < 4.11 is broken since version 0.4.30 and https://gitlab.freedesktop.org/gstreamer/orc/-/commit/a999325abea6a5549d60d99ddeb0271d2aa00235: FAILED: orc/liborc-0.4.so.0.32.0.p/orccpu-powerpc.c.o /home/giuliobenetti/autobuild/run/instance-3/output-1/host/bin/powerpc-linux-gcc -Iorc/liborc-0.4.so.0.32.0.p -Iorc -I../orc -I. -I.. -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -std=gnu99 -O3 -DHAVE_CONFIG_H -fvisibility=hidden -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -fPIC -pthread -DORC_ENABLE_UNSTABLE_API -D_GNU_SOURCE -DBUILDING_ORC -MD -MQ orc/liborc-0.4.so.0.32.0.p/orccpu-powerpc.c.o -MF orc/liborc-0.4.so.0.32.0.p/orccpu-powerpc.c.o.d -o orc/liborc-0.4.so.0.32.0.p/orccpu-powerpc.c.o -c ../orc/orccpu-powerpc.c ../orc/orccpu-powerpc.c: In function 'orc_check_powerpc_proc_auxv': ../orc/orccpu-powerpc.c:164:21: error: 'AT_L1D_CACHESIZE' undeclared (first use in this function); did you mean 'AT_DCACHEBSIZE'? 164 | if (buf[i] == AT_L1D_CACHESIZE) { | ^~~~~~~~~~~~~~~~ | AT_DCACHEBSIZE ../orc/orccpu-powerpc.c:164:21: note: each undeclared identifier is reported only once for each function it appears in ../orc/orccpu-powerpc.c:168:21: error: 'AT_L2_CACHESIZE' undeclared (first use in this function); did you mean 'AT_ICACHEBSIZE'? 168 | if (buf[i] == AT_L2_CACHESIZE) { | ^~~~~~~~~~~~~~~ | AT_ICACHEBSIZE ../orc/orccpu-powerpc.c:172:21: error: 'AT_L3_CACHESIZE' undeclared (first use in this function); did you mean 'AT_ICACHEBSIZE'? 172 | if (buf[i] == AT_L3_CACHESIZE) { | ^~~~~~~~~~~~~~~ | AT_ICACHEBSIZE Indeed, AT_{L1D,L2,L3}_CACHESIZE is only defined since kernel 4.11 and https://github.com/torvalds/linux/commit/98a5f361b8625c6f4841d6ba013bbf0e80d08147 Fixes: - http://autobuild.buildroot.org/results/0821e96cba3e455edd47b87485501d892fc7ac6a Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/56] --- orc/orccpu-powerpc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/orc/orccpu-powerpc.c b/orc/orccpu-powerpc.c index 6796f17..340cf05 100644 --- a/orc/orccpu-powerpc.c +++ b/orc/orccpu-powerpc.c @@ -161,18 +161,24 @@ orc_check_powerpc_proc_auxv (void) _orc_cpu_name = (char*)buf[i + 1]; found++; } +#ifdef AT_L1D_CACHESIZE if (buf[i] == AT_L1D_CACHESIZE) { _orc_data_cache_size_level1 = buf[i + 1]; found++; } +#endif +#ifdef AT_L2_CACHESIZE if (buf[i] == AT_L2_CACHESIZE) { _orc_data_cache_size_level2 = buf[i + 1]; found++; } +#endif +#ifdef AT_L3_CACHESIZE if (buf[i] == AT_L3_CACHESIZE) { _orc_data_cache_size_level3 = buf[i + 1]; found++; } +#endif if (found == 6) break; } -- 2.30.0 ================================================ FILE: package/orc/Config.in ================================================ config BR2_PACKAGE_ORC bool "orc" depends on BR2_TOOLCHAIN_HAS_THREADS help Orc is a library and set of tools for compiling and executing very simple programs that operate on arrays of data. https://gstreamer.freedesktop.org/projects/orc.html comment "orc needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/orc/orc.hash ================================================ # From https://gstreamer.freedesktop.org/data/src/orc/orc-0.4.32.tar.xz.sha256sum sha256 a66e3d8f2b7e65178d786a01ef61f2a0a0b4d0b8370de7ce134ba73da4af18f0 orc-0.4.32.tar.xz # Locally calculated sha256 4f5dabb1b44bb6fc5cd53820b1f103147ad61b395a57903991325bd1b85d97bf COPYING ================================================ FILE: package/orc/orc.mk ================================================ ################################################################################ # # orc # ################################################################################ ORC_VERSION = 0.4.32 ORC_SOURCE = orc-$(ORC_VERSION).tar.xz ORC_SITE = http://gstreamer.freedesktop.org/data/src/orc ORC_LICENSE = BSD-2-Clause, BSD-3-Clause ORC_LICENSE_FILES = COPYING ORC_INSTALL_STAGING = YES ORC_DEPENDENCIES = host-orc ORC_CONF_OPTS = \ -Dbenchmarks=disabled \ -Dexamples=disabled \ -Dgtk_doc=disabled \ -Dorc-test=disabled \ -Dtests=disabled \ -Dtools=disabled $(eval $(meson-package)) $(eval $(host-meson-package)) ================================================ FILE: package/ortp/Config.in ================================================ config BR2_PACKAGE_ORTP bool "oRTP" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # bctoolbox select BR2_PACKAGE_BCTOOLBOX help oRTP, a Real-time Transport Protocol (RTP,RFC3550) library https://www.linphone.org/technical-corner/ortp comment "ortp needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS comment "ortp needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/ortp/ortp.hash ================================================ # Locally calculated sha256 9b1d43f676a35920e2837abc0eb4d600d4d3e47d2621fa3b0897777cf587ee8d ortp-4.4.8.tar.gz sha256 1b3782ccad7b8614100cda30d3faf42fc39f2e97932908c543005053b654ca68 LICENSE.txt ================================================ FILE: package/ortp/ortp.mk ================================================ ################################################################################ # # ortp # ################################################################################ ORTP_VERSION = 4.4.8 ORTP_SITE = https://gitlab.linphone.org/BC/public/ortp/-/archive/$(ORTP_VERSION) ORTP_LICENSE = GPL-3.0+ ORTP_LICENSE_FILES = LICENSE.txt ORTP_INSTALL_STAGING = YES ORTP_DEPENDENCIES = bctoolbox ORTP_CONF_OPTS = \ -DENABLE_DOC=OFF \ -DENABLE_STRICT=OFF ifeq ($(BR2_STATIC_LIBS),y) ORTP_CONF_OPTS += -DENABLE_STATIC=ON -DENABLE_SHARED=OFF else ifeq ($(BR2_SHARED_STATIC_LIBS),y) ORTP_CONF_OPTS += -DENABLE_STATIC=ON -DENABLE_SHARED=ON else ifeq ($(BR2_SHARED_LIBS),y) ORTP_CONF_OPTS += -DENABLE_STATIC=OFF -DENABLE_SHARED=ON endif $(eval $(cmake-package)) ================================================ FILE: package/osm2pgsql/Config.in ================================================ config BR2_PACKAGE_OSM2PGSQL bool "osm2pgsql" depends on BR2_INSTALL_LIBSTDCPP # boost, fmt, libosmium, protozero depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14 depends on BR2_TOOLCHAIN_HAS_THREADS # boost, libosmium depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem depends on BR2_USE_WCHAR # boost, fmt, libosmium depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::future select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_EXPAT select BR2_PACKAGE_FMT select BR2_PACKAGE_LIBOSMIUM select BR2_PACKAGE_PROTOZERO select BR2_PACKAGE_ZLIB help osm2pgsql is a tool for loading OpenStreetMap data into a PostgreSQL / PostGIS database suitable for applications like rendering into a map, geocoding with Nominatim, or general analysis. https://osm2pgsql.org comment "osm2pgsql needs a toolchain w/ C++, wchar, threads, gcc >= 4.9" depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_TOOLCHAIN_HAS_THREADS comment "osm2pgsql needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/osm2pgsql/osm2pgsql.hash ================================================ # Locally calculated sha256 4df0d332e5d77a9d363f2f06f199da0ac23a0dc7890b3472ea1b5123ac363f6e osm2pgsql-1.5.1.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/osm2pgsql/osm2pgsql.mk ================================================ ################################################################################ # # osm2pgsql # ################################################################################ OSM2PGSQL_VERSION = 1.5.1 OSM2PGSQL_SITE = $(call github,openstreetmap,osm2pgsql,$(OSM2PGSQL_VERSION)) OSM2PGSQL_LICENSE = GPL-2.0+ OSM2PGSQL_LICENSE_FILES = COPYING OSM2PGSQL_SUPPORTS_IN_SOURCE_BUILD = NO OSM2PGSQL_DEPENDENCIES = boost bzip2 expat fmt libosmium postgresql protozero zlib OSM2PGSQL_CONF_OPTS = \ -DBUILD_TESTS=OFF \ -DBUILD_COVERAGE=OFF \ -DEXTERNAL_FMT=ON \ -DEXTERNAL_LIBOSMIUM=ON \ -DEXTERNAL_PROTOZERO=ON ifeq ($(BR2_PACKAGE_LUAJIT),y) OSM2PGSQL_DEPENDENCIES += luajit OSM2PGSQL_CONF_OPTS += -DWITH_LUA=ON -DWITH_LUAJIT=ON else ifeq ($(BR2_PACKAGE_LUA),y) OSM2PGSQL_DEPENDENCIES += lua OSM2PGSQL_CONF_OPTS += -DWITH_LUA=ON -DWITH_LUAJIT=OFF else OSM2PGSQL_CONF_OPTS += -DWITH_LUA=OFF -DWITH_LUAJIT=OFF endif ifeq ($(BR2_PACKAGE_PROJ),y) OSM2PGSQL_DEPENDENCIES += proj OSM2PGSQL_CONF_OPTS += -DUSE_PROJ_LIB=auto else OSM2PGSQL_CONF_OPTS += -DUSE_PROJ_LIB=off endif $(eval $(cmake-package)) ================================================ FILE: package/owfs/0001-Fix-compilation-with-GCC10.patch ================================================ From 43a4bc6b750c37f585d03b14941f3633ed5348d8 Mon Sep 17 00:00:00 2001 From: "Azamat H. Hackimov" Date: Tue, 9 Jun 2020 11:30:38 +0300 Subject: [PATCH] Fix compilation with GCC10 Fixed compilation with -fno-common, which enabled in GCC 10 by default. See https://bugs.gentoo.org/707438. [Retrieved from: https://github.com/owfs/owfs/commit/43a4bc6b750c37f585d03b14941f3633ed5348d8] Signed-off-by: Fabrice Fontaine --- module/owserver/src/c/owserver.c | 2 ++ module/owserver/src/include/owserver.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/module/owserver/src/c/owserver.c b/module/owserver/src/c/owserver.c index db29988e..2ed29161 100644 --- a/module/owserver/src/c/owserver.c +++ b/module/owserver/src/c/owserver.c @@ -36,6 +36,8 @@ #include "owserver.h" +pthread_mutex_t persistence_mutex ; + /* --- Prototypes ------------ */ static void SetupAntiloop(int argc, char **argv); diff --git a/module/owserver/src/include/owserver.h b/module/owserver/src/include/owserver.h index 8be582f0..a257ed02 100644 --- a/module/owserver/src/include/owserver.h +++ b/module/owserver/src/include/owserver.h @@ -18,7 +18,7 @@ #include "ow.h" #include "ow_connection.h" -pthread_mutex_t persistence_mutex ; +extern pthread_mutex_t persistence_mutex ; #define PERSISTENCELOCK _MUTEX_LOCK( persistence_mutex ) ; #define PERSISTENCEUNLOCK _MUTEX_UNLOCK( persistence_mutex ) ; ================================================ FILE: package/owfs/Config.in ================================================ 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 ================================================ FILE: package/owfs/S55owserver ================================================ 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 ================================================ FILE: package/owfs/S60owfs ================================================ 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 ================================================ FILE: package/owfs/owfs.hash ================================================ # Locally calculated sha256 b8d33eba57d4a2f6c8a11ff23f233e3248bd75a42c8219b058a888846edd8717 owfs-3.2p3.tar.gz sha256 1f0527ab035eefb5197c68633d06f50f5077c719d82a99344702ceaca29150b9 COPYING sha256 8a6601b893d5784d931b2ede64a406fac463acfbb7014914e27de4d6e68457c3 COPYING.LIB ================================================ FILE: package/owfs/owfs.mk ================================================ ################################################################################ # # owfs # ################################################################################ OWFS_VERSION = 3.2p3 OWFS_SITE = https://github.com/owfs/owfs/releases/download/v$(OWFS_VERSION) OWFS_DEPENDENCIES = host-pkgconf OWFS_CONF_OPTS = --disable-owperl --without-perl5 --disable-owtcl --without-tcl # owtcl license is declared in module/ownet/c/src/include/ow_functions.h OWFS_LICENSE = GPL-2.0+, LGPL-2.0 (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 # Skip man pages processing OWFS_CONF_ENV += ac_cv_path_SOELIM=true 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)S60owfs \ $(TARGET_DIR)/etc/init.d/S60owfs 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_LIBFTDI1),y) OWFS_CONF_OPTS += \ --enable-ftdi \ --with-libftdi-config=$(STAGING_DIR)/usr/bin/libftdi1-config OWFS_DEPENDENCIES += libftdi1 else ifeq ($(BR2_PACKAGE_LIBFTDI),y) OWFS_CONF_OPTS += \ --enable-ftdi \ --with-libftdi-config=$(STAGING_DIR)/usr/bin/libftdi-config OWFS_DEPENDENCIES += libftdi else OWFS_CONF_OPTS += --disable-ftdi 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 # The configure scripts finds PYSITEDIR as the python_lib directory of # host-python, and then prepends DESTDIR in front of it. So we end up # installing things in $(TARGET_DIR)/$(HOST_DIR)/lib/python which is # clearly wrong. # Patching owfs to do the right thing is not trivial, it's much easier to # override the PYSITEDIR variable in make. OWFS_EXTRA_MAKE_OPTS += PYSITEDIR=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages else OWFS_CONF_OPTS += --disable-owpython --without-python endif ifeq ($(BR2_STATIC_LIBS),y) # zeroconf support uses dlopen() OWFS_CONF_OPTS += --disable-zero endif OWFS_MAKE = $(MAKE) $(OWFS_EXTRA_MAKE_OPTS) define OWFS_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 $(OWFS_PKGDIR)S55owserver \ $(TARGET_DIR)/etc/init.d/S55owserver $(OWFS_INSTALL_FUSE_INIT_SYSV) endef $(eval $(autotools-package)) ================================================ FILE: package/owl-linux/0001-fix-for-linux-3.3.x.patch ================================================ Kernel commit b81693d9149c598302e8eb9c20cb20330d922c8e changed the net_device_ops structure, removing the ndo_set_multicast_list callback. The ndo_set_rx_mode has also been added to this structure. The upshot of these changes is that owl-linux fails to compile with 3.3.x and later kernels. Signed-off-by: Simon Dawson diff -Nurp a/owl_net.c b/owl_net.c --- a/owl_net.c 2012-06-14 10:51:45.000000000 +0100 +++ b/owl_net.c 2012-07-20 13:16:28.772351464 +0100 @@ -384,7 +384,9 @@ static const struct net_device_ops netde #endif /* OWL_CONFIG_IFUPDOWN */ .ndo_start_xmit = owl_net_tx, .ndo_get_stats = owl_net_get_stats, +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) .ndo_set_multicast_list = NULL, +#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) */ .ndo_tx_timeout = owl_net_tx_timeout, .ndo_set_mac_address = NULL, }; ================================================ FILE: package/owl-linux/Config.in ================================================ config BR2_PACKAGE_OWL_LINUX bool "owl-linux" depends on BR2_LINUX_KERNEL depends on (BR2_arm920t || BR2_arm922t || BR2_arm926t) help Linux kernel driver for the H&D Wireless SPB104 SD-card WiFi SIP. owl-linux requires the hidden kernel option WIRELESS_EXT enabled. http://linux.hd-wireless.se/bin/view/Linux/GettingStarted comment "owl-linux needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL depends on BR2_arm || BR2_armeb comment "owl-linux is only supported on ARM9 architecture" depends on !(BR2_arm920t || BR2_arm922t || BR2_arm926t) depends on BR2_arm || BR2_armeb ================================================ FILE: package/owl-linux/owl-linux.hash ================================================ # locally computed sha256 a6b1bc6b3900954438a0f1a316bac5f74171125a88c80c35e137f4ca512dedc6 owl-linux-1.0.7.tar.gz sha256 092f1698328e0d4cc2d04ef1445207a9d278963284cd709fa88f1b8c9999264b LICENSE ================================================ FILE: package/owl-linux/owl-linux.mk ================================================ ################################################################################ # # owl-linux # ################################################################################ OWL_LINUX_VERSION = 1.0.7 OWL_LINUX_SITE = http://linux.hd-wireless.se/pub/Linux/DownloadDrivers OWL_LINUX_LICENSE = PROPRIETARY OWL_LINUX_LICENSE_FILES = LICENSE OWL_LINUX_REDISTRIBUTE = NO $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/p11-kit/0001-p11-kit-lists-c-Add-stdint-h-to-fix-compilation.patch ================================================ From 507c394cfcf4edffc5e4450c5d737e545c26b857 Mon Sep 17 00:00:00 2001 From: Daniel Engberg Date: Sat, 12 Dec 2020 18:56:38 +0100 Subject: [PATCH] p11-kit/lists.c: Add stdint.h to fix compilation Add stdint.h otherwise compilation fails on FreeBSD 13-CURRENT with "use of undeclared identifier 'SIZE_MAX'" Signed-off-by: Daniel Engberg [Retrieved from: https://github.com/p11-glue/p11-kit/commit/507c394cfcf4edffc5e4450c5d737e545c26b857] Signed-off-by: Fabrice Fontaine --- p11-kit/lists.c | 1 + 1 file changed, 1 insertion(+) diff --git a/p11-kit/lists.c b/p11-kit/lists.c index 365a6d89..1d9062be 100644 --- a/p11-kit/lists.c +++ b/p11-kit/lists.c @@ -39,6 +39,7 @@ #include #include +#include #include #include #include ================================================ FILE: package/p11-kit/Config.in ================================================ config BR2_PACKAGE_P11_KIT bool "p11-kit" depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_THREADS help Provides a way to load and enumerate PKCS#11 modules. Provides a standard configuration setup for installing PKCS#11 modules in such a way that they're discoverable. http://p11-glue.freedesktop.org/p11-kit.html comment "p11-kit needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/p11-kit/p11-kit.hash ================================================ # Locally calculated after checking pgp signature sha256 8a8f40153dd5a3f8e7c03e641f8db400133fb2a6a9ab2aee1b6d0cb0495ec6b6 p11-kit-0.23.22.tar.xz # Locally computed sha256 2e1ba993904df807a10c3eda1e5c272338edc35674b679773a8b3ad460731054 COPYING ================================================ FILE: package/p11-kit/p11-kit.mk ================================================ ################################################################################ # # p11-kit # ################################################################################ P11_KIT_VERSION = 0.23.22 P11_KIT_SOURCE = p11-kit-$(P11_KIT_VERSION).tar.xz P11_KIT_SITE = https://github.com/p11-glue/p11-kit/releases/download/$(P11_KIT_VERSION) P11_KIT_INSTALL_STAGING = YES P11_KIT_CONF_OPTS = --disable-static P11_KIT_CONF_ENV = ac_cv_have_decl_program_invocation_short_name=yes \ ac_cv_have_decl___progname=no P11_KIT_LICENSE = BSD-3-Clause P11_KIT_LICENSE_FILES = COPYING P11_KIT_CPE_ID_VENDOR = p11-kit_project ifeq ($(BR2_PACKAGE_LIBFFI),y) P11_KIT_DEPENDENCIES += host-pkgconf libffi P11_KIT_CONF_OPTS += --with-libffi else P11_KIT_CONF_OPTS += --without-libffi endif ifeq ($(BR2_PACKAGE_LIBTASN1),y) P11_KIT_DEPENDENCIES += host-pkgconf libtasn1 P11_KIT_CONF_OPTS += \ --enable-trust-module \ --with-libtasn1 ifeq ($(BR2_PACKAGE_CA_CERTIFICATES),y) P11_KIT_CONF_OPTS += --with-trust-paths=/etc/ssl/certs/ca-certificates.crt else P11_KIT_CONF_OPTS += --without-trust-paths endif else P11_KIT_CONF_OPTS += \ --disable-trust-module \ --without-libtasn1 endif $(eval $(autotools-package)) ================================================ FILE: package/p7zip/Config.in ================================================ config BR2_PACKAGE_P7ZIP bool "p7zip" depends on BR2_TOOLCHAIN_HAS_SYNC_4 # __sync_*_4 intrisics 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_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/p7zip/p7zip.hash ================================================ # Locally calculated sha256 ea029a2e21d2d6ad0a156f6679bd66836204aa78148a4c5e498fe682e77127ef p7zip-17.04.tar.gz sha256 555806657dcf0f1e720b581c52643c195ec86ae3f00bd18cc66d2e0f88ffa210 DOC/License.txt ================================================ FILE: package/p7zip/p7zip.mk ================================================ ################################################################################ # # p7zip # ################################################################################ P7ZIP_VERSION = 17.04 P7ZIP_SITE = $(call github,jinfeihan57,p7zip,v$(P7ZIP_VERSION)) P7ZIP_LICENSE = LGPL-2.1+ with unRAR restriction P7ZIP_LICENSE_FILES = DOC/License.txt P7ZIP_CPE_ID_VENDOR = 7-zip # 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 $(TARGET_MAKE_ENV) $(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)) ================================================ FILE: package/p910nd/Config.in ================================================ config BR2_PACKAGE_P910ND bool "p910nd" depends on BR2_USE_MMU # fork() help p910nd is a small printer daemon intended for diskless workstations. Using ports 9100-9102, it accepts print jobs and passes them directly to a USB printer. http://p910nd.sourceforge.net/ ================================================ FILE: package/p910nd/p910nd.hash ================================================ # Locally computed: sha256 4ac980a3ae24babae6f70f0a692625ece03a4a92c357fbb10d2e368386c3c26f p910nd-0.97.tar.bz2 sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/p910nd/p910nd.mk ================================================ ################################################################################ # # p910nd # ################################################################################ P910ND_VERSION = 0.97 P910ND_SITE = http://downloads.sourceforge.net/project/p910nd/p910nd/$(P910ND_VERSION) P910ND_SOURCE = p910nd-$(P910ND_VERSION).tar.bz2 P910ND_LICENSE = GPL-2.0 P910ND_LICENSE_FILES = COPYING define P910ND_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define P910ND_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/p910nd $(TARGET_DIR)/usr/sbin/p910nd endef $(eval $(generic-package)) ================================================ FILE: package/paho-mqtt-c/Config.in ================================================ config BR2_PACKAGE_PAHO_MQTT_C bool "paho-mqtt-c" depends on BR2_TOOLCHAIN_HAS_THREADS help MQTT client C library https://eclipse.org/paho/clients/c/ comment "paho-mqtt-c needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/paho-mqtt-c/paho-mqtt-c.hash ================================================ # Locally computed: sha256 386c9b5fa1cf6d0d516db12d57fd8f6a410dd0fdc5e9a2da870aae437a2535ed paho-mqtt-c-1.3.9.tar.gz sha256 83bbba033dc985487e321b6dfde111772affb73460be48726299fed3da684b1c edl-v10 sha256 0becf16567beb77fa252b7664631dd177c8f9a1889e48995b45379c7130e5303 epl-v20 sha256 bc0f3f447097eb82a29ad6c2f4929572bb548b6bd4c9e38fde1bf131a771b7a0 LICENSE ================================================ FILE: package/paho-mqtt-c/paho-mqtt-c.mk ================================================ ################################################################################ # # paho-mqtt-c # ################################################################################ PAHO_MQTT_C_VERSION = 1.3.9 PAHO_MQTT_C_SITE = $(call github,eclipse,paho.mqtt.c,v$(PAHO_MQTT_C_VERSION)) PAHO_MQTT_C_LICENSE = EPL-2.0 or BSD-3-Clause PAHO_MQTT_C_LICENSE_FILES = epl-v20 edl-v10 LICENSE PAHO_MQTT_C_INSTALL_STAGING = YES PAHO_MQTT_C_CONF_OPTS = \ -DPAHO_ENABLE_TESTING=FALSE \ -DPAHO_ENABLE_CPACK=FALSE \ -DPAHO_HIGH_PERFORMANCE=TRUE ifeq ($(BR2_PACKAGE_OPENSSL),y) PAHO_MQTT_C_DEPENDENCIES += openssl PAHO_MQTT_C_CONF_OPTS += -DPAHO_WITH_SSL=TRUE else PAHO_MQTT_C_CONF_OPTS += -DPAHO_WITH_SSL=FALSE endif ifeq ($(BR2_SHARED_LIBS),y) PAHO_MQTT_C_CONF_OPTS += \ -DPAHO_BUILD_SHARED=TRUE \ -DPAHO_BUILD_STATIC=FALSE else ifeq ($(BR2_STATIC_LIBS),y) PAHO_MQTT_C_CONF_OPTS += \ -DPAHO_BUILD_SHARED=FALSE \ -DPAHO_BUILD_STATIC=TRUE else ifeq ($(BR2_SHARED_STATIC_LIBS),y) PAHO_MQTT_C_CONF_OPTS += \ -DPAHO_BUILD_SHARED=TRUE \ -DPAHO_BUILD_STATIC=TRUE endif $(eval $(cmake-package)) ================================================ FILE: package/paho-mqtt-cpp/Config.in ================================================ config BR2_PACKAGE_PAHO_MQTT_CPP bool "paho-mqtt-cpp" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::future depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_PAHO_MQTT_C help MQTT client C++ library https://eclipse.org/paho/clients/cpp/ comment "paho-mqtt-cpp needs a toolchain w/ threads, C++" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 comment "paho-mqtt-cpp needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/paho-mqtt-cpp/paho-mqtt-cpp.hash ================================================ # Locally computed: sha256 435e97e4d5b1da13daa26cadd3e83fe9d154930abaa78b8ff1b8c854b5345d8b paho-mqtt-cpp-1.2.0.tar.gz sha256 83bbba033dc985487e321b6dfde111772affb73460be48726299fed3da684b1c edl-v10 sha256 44277b2bec6093e4ac313afec251a4de599d24c4e768f8574d95b13a9d2d97b5 epl-v10 ================================================ FILE: package/paho-mqtt-cpp/paho-mqtt-cpp.mk ================================================ ################################################################################ # # paho-mqtt-cpp # ################################################################################ PAHO_MQTT_CPP_VERSION = 1.2.0 PAHO_MQTT_CPP_SITE = $(call github,eclipse,paho.mqtt.cpp,v$(PAHO_MQTT_CPP_VERSION)) PAHO_MQTT_CPP_LICENSE = EPL-1.0 or BSD-3-Clause PAHO_MQTT_CPP_LICENSE_FILES = epl-v10 edl-v10 PAHO_MQTT_CPP_INSTALL_STAGING = YES PAHO_MQTT_CPP_DEPENDENCIES = paho-mqtt-c ifeq ($(BR2_PACKAGE_OPENSSL),y) PAHO_MQTT_CPP_DEPENDENCIES += openssl PAHO_MQTT_CPP_CONF_OPTS += -DPAHO_WITH_SSL=TRUE else PAHO_MQTT_CPP_CONF_OPTS += -DPAHO_WITH_SSL=FALSE endif ifeq ($(BR2_SHARED_LIBS),y) PAHO_MQTT_CPP_CONF_OPTS += \ -DPAHO_BUILD_SHARED=TRUE \ -DPAHO_BUILD_STATIC=FALSE else ifeq ($(BR2_STATIC_LIBS),y) PAHO_MQTT_CPP_CONF_OPTS += \ -DPAHO_BUILD_SHARED=FALSE \ -DPAHO_BUILD_STATIC=TRUE else ifeq ($(BR2_SHARED_STATIC_LIBS),y) PAHO_MQTT_CPP_CONF_OPTS += \ -DPAHO_BUILD_SHARED=TRUE \ -DPAHO_BUILD_STATIC=TRUE endif $(eval $(cmake-package)) ================================================ FILE: package/pamtester/Config.in ================================================ config BR2_PACKAGE_PAMTESTER bool "pamtester" depends on BR2_PACKAGE_LINUX_PAM help A tiny utility for testing pluggable authentication modules (PAM) facility. While specifically designed to help PAM module authors to test their modules, that might also be handy for system administrators interested in building a centralised authentication system using common standards such as NIS, SASL and LDAP. http://pamtester.sourceforge.net/ comment "pamtester depends on linux-pam" depends on !BR2_PACKAGE_LINUX_PAM ================================================ FILE: package/pamtester/pamtester.hash ================================================ # from https://sourceforge.net/projects/pamtester/files/pamtester/0.1.2/ sha1 33bcc610d7f208b50a0a23c144bdbd1e2cae4ac6 pamtester-0.1.2.tar.gz sha256 1e3922a8ab0907c1f3bcc3e00005ef88930e50d0890f40a6a39f5f83b05f05cc LICENSE ================================================ FILE: package/pamtester/pamtester.mk ================================================ ################################################################################ # # pamtester # ################################################################################ PAMTESTER_VERSION = 0.1.2 PAMTESTER_SITE = https://download.sourceforge.net/project/pamtester/pamtester/$(PAMTESTER_VERSION) PAMTESTER_DEPENDENCIES = linux-pam PAMTESTER_LICENSE = BSD-3-Clause PAMTESTER_LICENSE_FILES = LICENSE $(eval $(autotools-package)) ================================================ FILE: package/pango/Config.in ================================================ config BR2_PACKAGE_PANGO bool "pango" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 depends on BR2_INSTALL_LIBSTDCPP # freetype support depends on BR2_TOOLCHAIN_HAS_SYNC_4 # harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # harfbuzz select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBFRIBIDI select BR2_PACKAGE_EXPAT select BR2_PACKAGE_CAIRO select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_HARFBUZZ select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 help Pango is a library for laying out and rendering of text, with an emphasis on internationalization. Pango can be used anywhere that text layout is needed, though most of the work on Pango so far has been done in the context of the GTK+ widget toolkit. Pango forms the core of text and font handling for GTK+-2.x. https://pango.gnome.org/ comment "pango needs a toolchain w/ wchar, threads, C++, gcc >= 4.8" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \ !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/pango/pango.hash ================================================ # From https://ftp.acc.umu.se/pub/GNOME/sources/pango/1.48/pango-1.48.10.sha256sum sha256 21e1f5798bcdfda75eabc4280514b0896ab56f656d4e7e66030b9a2535ecdc98 pango-1.48.10.tar.xz # Locally computed sha256 d245807f90032872d1438d741ed21e2490e1175dc8aa3afa5ddb6c8e529b58e5 COPYING ================================================ FILE: package/pango/pango.mk ================================================ ################################################################################ # # pango # ################################################################################ PANGO_VERSION_MAJOR = 1.48 PANGO_VERSION = $(PANGO_VERSION_MAJOR).10 PANGO_SOURCE = pango-$(PANGO_VERSION).tar.xz PANGO_SITE = http://ftp.gnome.org/pub/GNOME/sources/pango/$(PANGO_VERSION_MAJOR) PANGO_INSTALL_STAGING = YES PANGO_LICENSE = LGPL-2.0+ PANGO_LICENSE_FILES = COPYING PANGO_CPE_ID_VENDOR = pango PANGO_CONF_OPTS = -Dfontconfig=enabled HOST_PANGO_CONF_OPTS = -Dfontconfig=enabled -Dintrospection=disabled PANGO_DEPENDENCIES = \ $(TARGET_NLS_DEPENDENCIES) \ host-pkgconf \ libglib2 \ libfribidi \ cairo \ harfbuzz \ fontconfig \ freetype HOST_PANGO_DEPENDENCIES = \ host-pkgconf \ host-libglib2 \ host-libfribidi \ host-cairo \ host-harfbuzz \ host-fontconfig \ host-freetype ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) PANGO_CONF_OPTS += -Dintrospection=enabled PANGO_DEPENDENCIES += gobject-introspection else PANGO_CONF_OPTS += -Dintrospection=disabled endif ifeq ($(BR2_PACKAGE_XORG7),y) PANGO_DEPENDENCIES += xlib_libX11 endif ifeq ($(BR2_PACKAGE_XLIB_LIBXFT)$(BR2_PACKAGE_XLIB_LIBXRENDER),yy) PANGO_DEPENDENCIES += xlib_libXft xlib_libXrender endif $(eval $(meson-package)) $(eval $(host-meson-package)) ================================================ FILE: package/pangomm/Config.in ================================================ config BR2_PACKAGE_PANGOMM bool "pangomm" depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz depends on BR2_INSTALL_LIBSTDCPP # glibmm/pango depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS # *mm/pango -> libglib2 depends on BR2_USE_MMU # *mm/pango -> libglib2 depends on BR2_USE_WCHAR # *mm/pango -> libglib2 select BR2_PACKAGE_CAIROMM select BR2_PACKAGE_GLIBMM select BR2_PACKAGE_PANGO select BR2_PACKAGE_LIBSIGC help The pangomm package is a set of C++ bindings for Pango. http://www.gtkmm.org/ comment "pangomm needs a toolchain w/ C++, wchar, threads, gcc >= 4.9" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_USE_WCHAR \ || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/pangomm/pangomm.hash ================================================ # From http://ftp.gnome.org/pub/gnome/sources/pangomm/2.40/pangomm-2.40.1.sha256sum sha256 9762ee2a2d5781be6797448d4dd2383ce14907159b30bc12bf6b08e7227be3af pangomm-2.40.1.tar.xz # Locally computed sha256 5bbcbb737e60fe9deba08ecbd00920cfcc3403ba2e534c64fdeea49d6bb87509 COPYING sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING.tools ================================================ FILE: package/pangomm/pangomm.mk ================================================ ################################################################################ # # pangomm # ################################################################################ PANGOMM_VERSION_MAJOR = 2.40 PANGOMM_VERSION = $(PANGOMM_VERSION_MAJOR).1 PANGOMM_SOURCE = pangomm-$(PANGOMM_VERSION).tar.xz PANGOMM_SITE = http://ftp.gnome.org/pub/gnome/sources/pangomm/$(PANGOMM_VERSION_MAJOR) PANGOMM_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (tools) PANGOMM_LICENSE_FILES = COPYING COPYING.tools PANGOMM_INSTALL_STAGING = YES PANGOMM_DEPENDENCIES = glibmm cairomm libsigc pango host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/parprouted/Config.in ================================================ config BR2_PACKAGE_PARPROUTED bool "parprouted" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS help parprouted is a daemon for transparent IP (Layer 3) proxy ARP bridging. This is useful for creation of transparent firewalls and bridging networks with different MAC protocols. Also, unlike standard bridging, proxy ARP bridging allows to bridge Ethernet networks behind wireless nodes without using WDS or layer 2 bridging. https://www.hazard.maks.net/parprouted comment "parprouted needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/parprouted/parprouted.hash ================================================ # Locally computed sha256 d63643c95d4149a3d71112da5892f459433456bf0279bfa304625f109178defc parprouted-0.7.tar.gz sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING ================================================ FILE: package/parprouted/parprouted.mk ================================================ ################################################################################ # # parprouted # ################################################################################ PARPROUTED_VERSION = 0.7 PARPROUTED_SITE = https://www.hazard.maks.net/parprouted PARPROUTED_LICENSE = GPL-2.0 PARPROUTED_LICENSE_FILES = COPYING define PARPROUTED_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all endef define PARPROUTED_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/parprouted $(TARGET_DIR)/usr/sbin/parprouted endef $(eval $(generic-package)) ================================================ FILE: package/parted/Config.in ================================================ config BR2_PACKAGE_PARTED bool "parted" depends on BR2_ENABLE_LOCALE depends on BR2_USE_WCHAR select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help parted, the GNU partition resizing program http://www.gnu.org/software/parted/ comment "parted needs a toolchain w/ locale, wchar" depends on !BR2_ENABLE_LOCALE || !BR2_USE_WCHAR ================================================ FILE: package/parted/Config.in.host ================================================ config BR2_PACKAGE_HOST_PARTED bool "host parted" help parted, the GNU partition resizing program http://www.gnu.org/software/parted/ ================================================ FILE: package/parted/parted.hash ================================================ # Locally calculated after checking pgp signature sha256 57e2b4bd87018625c515421d4524f6e3b55175b472302056391c5f7eccb83d44 parted-3.3.tar.xz # Locally calculated sha256 0abbff814cd00e2b0b6d08395af2b419c1a92026c4b4adacbb65ccda45fa58cf COPYING ================================================ FILE: package/parted/parted.mk ================================================ ################################################################################ # # parted # ################################################################################ PARTED_VERSION = 3.3 PARTED_SOURCE = parted-$(PARTED_VERSION).tar.xz PARTED_SITE = $(BR2_GNU_MIRROR)/parted PARTED_DEPENDENCIES = host-pkgconf util-linux PARTED_INSTALL_STAGING = YES PARTED_LICENSE = GPL-3.0+ PARTED_LICENSE_FILES = COPYING PARTED_CPE_ID_VENDOR = parted_project ifeq ($(BR2_PACKAGE_READLINE),y) PARTED_DEPENDENCIES += readline PARTED_CONF_OPTS += --with-readline else PARTED_CONF_OPTS += --without-readline endif ifeq ($(BR2_PACKAGE_LVM2),y) PARTED_DEPENDENCIES += lvm2 PARTED_CONF_OPTS += --enable-device-mapper else PARTED_CONF_OPTS += --disable-device-mapper endif ifeq ($(BR2_PACKAGE_LIBICONV),y) PARTED_DEPENDENCIES += libiconv endif HOST_PARTED_DEPENDENCIES = host-pkgconf host-util-linux HOST_PARTED_CONF_OPTS += \ --without-readline \ --disable-device-mapper $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/patch/0001-Fix-segfault-with-mangled-rename-patch.patch ================================================ From f290f48a621867084884bfff87f8093c15195e6a Mon Sep 17 00:00:00 2001 From: Andreas Gruenbacher Date: Mon, 12 Feb 2018 16:48:24 +0100 Subject: [PATCH] Fix segfault with mangled rename patch http://savannah.gnu.org/bugs/?53132 * src/pch.c (intuit_diff_type): Ensure that two filenames are specified for renames and copies (fix the existing check). Signed-off-by: Baruch Siach --- Patch status: upstream commit f290f48a6218 src/pch.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pch.c b/src/pch.c index ff9ed2cebb8a..bc6278c4032c 100644 --- a/src/pch.c +++ b/src/pch.c @@ -974,7 +974,8 @@ intuit_diff_type (bool need_header, mode_t *p_file_type) if ((pch_rename () || pch_copy ()) && ! inname && ! ((i == OLD || i == NEW) && - p_name[! reverse] && + p_name[reverse] && p_name[! reverse] && + name_is_valid (p_name[reverse]) && name_is_valid (p_name[! reverse]))) { say ("Cannot %s file without two valid file names\n", pch_rename () ? "rename" : "copy"); -- 2.16.1 ================================================ FILE: package/patch/0002-Allow-input-files-to-be-missing-for-ed-style-patches.patch ================================================ From b5a91a01e5d0897facdd0f49d64b76b0f02b43e1 Mon Sep 17 00:00:00 2001 From: Andreas Gruenbacher Date: Fri, 6 Apr 2018 11:34:51 +0200 Subject: [PATCH] Allow input files to be missing for ed-style patches * src/pch.c (do_ed_script): Allow input files to be missing so that new files will be created as with non-ed-style patches. Signed-off-by: Baruch Siach --- Upstream status: commit b5a91a01e5d0 src/pch.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/pch.c b/src/pch.c index bc6278c4032c..0c5cc2623079 100644 --- a/src/pch.c +++ b/src/pch.c @@ -2394,9 +2394,11 @@ do_ed_script (char const *inname, char const *outname, if (! dry_run && ! skip_rest_of_patch) { int exclusive = *outname_needs_removal ? 0 : O_EXCL; - assert (! inerrno); - *outname_needs_removal = true; - copy_file (inname, outname, 0, exclusive, instat.st_mode, true); + if (inerrno != ENOENT) + { + *outname_needs_removal = true; + copy_file (inname, outname, 0, exclusive, instat.st_mode, true); + } sprintf (buf, "%s %s%s", editor_program, verbosity == VERBOSE ? "" : "- ", outname); -- 2.16.3 ================================================ FILE: package/patch/0003-Fix-arbitrary-command-execution-in-ed-style-patches-.patch ================================================ From 123eaff0d5d1aebe128295959435b9ca5909c26d Mon Sep 17 00:00:00 2001 From: Andreas Gruenbacher Date: Fri, 6 Apr 2018 12:14:49 +0200 Subject: [PATCH] Fix arbitrary command execution in ed-style patches (CVE-2018-1000156) * src/pch.c (do_ed_script): Write ed script to a temporary file instead of piping it to ed: this will cause ed to abort on invalid commands instead of rejecting them and carrying on. * tests/ed-style: New test case. * tests/Makefile.am (TESTS): Add test case. [baruch: drop test hunks to avoid autoreconf] Signed-off-by: Baruch Siach --- Upstream status: commit 123eaff0d5d1 src/pch.c | 91 ++++++++++++++++++++++++++++++++++++++++--------------- tests/Makefile.am | 1 + tests/ed-style | 41 +++++++++++++++++++++++++ 3 files changed, 108 insertions(+), 25 deletions(-) create mode 100644 tests/ed-style diff --git a/src/pch.c b/src/pch.c index 0c5cc2623079..4fd5a05a6f5c 100644 --- a/src/pch.c +++ b/src/pch.c @@ -33,6 +33,7 @@ # include #endif #include +#include #define INITHUNKMAX 125 /* initial dynamic allocation size */ @@ -2389,24 +2390,28 @@ do_ed_script (char const *inname, char const *outname, static char const editor_program[] = EDITOR_PROGRAM; file_offset beginning_of_this_line; - FILE *pipefp = 0; size_t chars_read; + FILE *tmpfp = 0; + char const *tmpname; + int tmpfd; + pid_t pid; + + if (! dry_run && ! skip_rest_of_patch) + { + /* Write ed script to a temporary file. This causes ed to abort on + invalid commands such as when line numbers or ranges exceed the + number of available lines. When ed reads from a pipe, it rejects + invalid commands and treats the next line as a new command, which + can lead to arbitrary command execution. */ + + tmpfd = make_tempfile (&tmpname, 'e', NULL, O_RDWR | O_BINARY, 0); + if (tmpfd == -1) + pfatal ("Can't create temporary file %s", quotearg (tmpname)); + tmpfp = fdopen (tmpfd, "w+b"); + if (! tmpfp) + pfatal ("Can't open stream for file %s", quotearg (tmpname)); + } - if (! dry_run && ! skip_rest_of_patch) { - int exclusive = *outname_needs_removal ? 0 : O_EXCL; - if (inerrno != ENOENT) - { - *outname_needs_removal = true; - copy_file (inname, outname, 0, exclusive, instat.st_mode, true); - } - sprintf (buf, "%s %s%s", editor_program, - verbosity == VERBOSE ? "" : "- ", - outname); - fflush (stdout); - pipefp = popen(buf, binary_transput ? "wb" : "w"); - if (!pipefp) - pfatal ("Can't open pipe to %s", quotearg (buf)); - } for (;;) { char ed_command_letter; beginning_of_this_line = file_tell (pfp); @@ -2417,14 +2422,14 @@ do_ed_script (char const *inname, char const *outname, } ed_command_letter = get_ed_command_letter (buf); if (ed_command_letter) { - if (pipefp) - if (! fwrite (buf, sizeof *buf, chars_read, pipefp)) + if (tmpfp) + if (! fwrite (buf, sizeof *buf, chars_read, tmpfp)) write_fatal (); if (ed_command_letter != 'd' && ed_command_letter != 's') { p_pass_comments_through = true; while ((chars_read = get_line ()) != 0) { - if (pipefp) - if (! fwrite (buf, sizeof *buf, chars_read, pipefp)) + if (tmpfp) + if (! fwrite (buf, sizeof *buf, chars_read, tmpfp)) write_fatal (); if (chars_read == 2 && strEQ (buf, ".\n")) break; @@ -2437,13 +2442,49 @@ do_ed_script (char const *inname, char const *outname, break; } } - if (!pipefp) + if (!tmpfp) return; - if (fwrite ("w\nq\n", sizeof (char), (size_t) 4, pipefp) == 0 - || fflush (pipefp) != 0) + if (fwrite ("w\nq\n", sizeof (char), (size_t) 4, tmpfp) == 0 + || fflush (tmpfp) != 0) write_fatal (); - if (pclose (pipefp) != 0) - fatal ("%s FAILED", editor_program); + + if (lseek (tmpfd, 0, SEEK_SET) == -1) + pfatal ("Can't rewind to the beginning of file %s", quotearg (tmpname)); + + if (! dry_run && ! skip_rest_of_patch) { + int exclusive = *outname_needs_removal ? 0 : O_EXCL; + *outname_needs_removal = true; + if (inerrno != ENOENT) + { + *outname_needs_removal = true; + copy_file (inname, outname, 0, exclusive, instat.st_mode, true); + } + sprintf (buf, "%s %s%s", editor_program, + verbosity == VERBOSE ? "" : "- ", + outname); + fflush (stdout); + + pid = fork(); + if (pid == -1) + pfatal ("Can't fork"); + else if (pid == 0) + { + dup2 (tmpfd, 0); + execl ("/bin/sh", "sh", "-c", buf, (char *) 0); + _exit (2); + } + else + { + int wstatus; + if (waitpid (pid, &wstatus, 0) == -1 + || ! WIFEXITED (wstatus) + || WEXITSTATUS (wstatus) != 0) + fatal ("%s FAILED", editor_program); + } + } + + fclose (tmpfp); + safe_unlink (tmpname); if (ofp) { -- 2.16.3 ================================================ FILE: package/patch/0004-Invoke-ed-directly-instead-of-using-the-shell.patch ================================================ From 3fcd042d26d70856e826a42b5f93dc4854d80bf0 Mon Sep 17 00:00:00 2001 From: Andreas Gruenbacher Date: Fri, 6 Apr 2018 19:36:15 +0200 Subject: Invoke ed directly instead of using the shell * src/pch.c (do_ed_script): Invoke ed directly instead of using a shell command to avoid quoting vulnerabilities. [Retrieved from: https://git.savannah.gnu.org/cgit/patch.git/commit/?id=3fcd042d26d70856e826a42b5f93dc4854d80bf0] Signed-off-by: Fabrice Fontaine --- src/pch.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/pch.c b/src/pch.c index 4fd5a05..16e001a 100644 --- a/src/pch.c +++ b/src/pch.c @@ -2459,9 +2459,6 @@ do_ed_script (char const *inname, char const *outname, *outname_needs_removal = true; copy_file (inname, outname, 0, exclusive, instat.st_mode, true); } - sprintf (buf, "%s %s%s", editor_program, - verbosity == VERBOSE ? "" : "- ", - outname); fflush (stdout); pid = fork(); @@ -2470,7 +2467,8 @@ do_ed_script (char const *inname, char const *outname, else if (pid == 0) { dup2 (tmpfd, 0); - execl ("/bin/sh", "sh", "-c", buf, (char *) 0); + assert (outname[0] != '!' && outname[0] != '-'); + execlp (editor_program, editor_program, "-", outname, (char *) NULL); _exit (2); } else -- cgit v1.2.1 ================================================ FILE: package/patch/0005-Don-t-follow-symlinks-unless--follow-symlinks-is-given.patch ================================================ From dce4683cbbe107a95f1f0d45fabc304acfb5d71a Mon Sep 17 00:00:00 2001 From: Andreas Gruenbacher Date: Mon, 15 Jul 2019 16:21:48 +0200 Subject: Don't follow symlinks unless --follow-symlinks is given * src/inp.c (plan_a, plan_b), src/util.c (copy_to_fd, copy_file, append_to_file): Unless the --follow-symlinks option is given, open files with the O_NOFOLLOW flag to avoid following symlinks. So far, we were only doing that consistently for input files. * src/util.c (create_backup): When creating empty backup files, (re)create them with O_CREAT | O_EXCL to avoid following symlinks in that case as well. [Retrieved from: https://git.savannah.gnu.org/cgit/patch.git/commit/?id=dce4683cbbe107a95f1f0d45fabc304acfb5d71a] Signed-off-by: Fabrice Fontaine --- src/inp.c | 12 ++++++++++-- src/util.c | 14 +++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/inp.c b/src/inp.c index 32d0919..22d7473 100644 --- a/src/inp.c +++ b/src/inp.c @@ -238,8 +238,13 @@ plan_a (char const *filename) { if (S_ISREG (instat.st_mode)) { - int ifd = safe_open (filename, O_RDONLY|binary_transput, 0); + int flags = O_RDONLY | binary_transput; size_t buffered = 0, n; + int ifd; + + if (! follow_symlinks) + flags |= O_NOFOLLOW; + ifd = safe_open (filename, flags, 0); if (ifd < 0) pfatal ("can't open file %s", quotearg (filename)); @@ -340,6 +345,7 @@ plan_a (char const *filename) static void plan_b (char const *filename) { + int flags = O_RDONLY | binary_transput; int ifd; FILE *ifp; int c; @@ -353,7 +359,9 @@ plan_b (char const *filename) if (instat.st_size == 0) filename = NULL_DEVICE; - if ((ifd = safe_open (filename, O_RDONLY | binary_transput, 0)) < 0 + if (! follow_symlinks) + flags |= O_NOFOLLOW; + if ((ifd = safe_open (filename, flags, 0)) < 0 || ! (ifp = fdopen (ifd, binary_transput ? "rb" : "r"))) pfatal ("Can't open file %s", quotearg (filename)); if (TMPINNAME_needs_removal) diff --git a/src/util.c b/src/util.c index 1cc08ba..fb38307 100644 --- a/src/util.c +++ b/src/util.c @@ -388,7 +388,7 @@ create_backup (char const *to, const struct stat *to_st, bool leave_original) try_makedirs_errno = ENOENT; safe_unlink (bakname); - while ((fd = safe_open (bakname, O_CREAT | O_WRONLY | O_TRUNC, 0666)) < 0) + while ((fd = safe_open (bakname, O_CREAT | O_EXCL | O_WRONLY | O_TRUNC, 0666)) < 0) { if (errno != try_makedirs_errno) pfatal ("Can't create file %s", quotearg (bakname)); @@ -579,10 +579,13 @@ create_file (char const *file, int open_flags, mode_t mode, static void copy_to_fd (const char *from, int tofd) { + int from_flags = O_RDONLY | O_BINARY; int fromfd; ssize_t i; - if ((fromfd = safe_open (from, O_RDONLY | O_BINARY, 0)) < 0) + if (! follow_symlinks) + from_flags |= O_NOFOLLOW; + if ((fromfd = safe_open (from, from_flags, 0)) < 0) pfatal ("Can't reopen file %s", quotearg (from)); while ((i = read (fromfd, buf, bufsize)) != 0) { @@ -625,6 +628,8 @@ copy_file (char const *from, char const *to, struct stat *tost, else { assert (S_ISREG (mode)); + if (! follow_symlinks) + to_flags |= O_NOFOLLOW; tofd = create_file (to, O_WRONLY | O_BINARY | to_flags, mode, to_dir_known_to_exist); copy_to_fd (from, tofd); @@ -640,9 +645,12 @@ copy_file (char const *from, char const *to, struct stat *tost, void append_to_file (char const *from, char const *to) { + int to_flags = O_WRONLY | O_APPEND | O_BINARY; int tofd; - if ((tofd = safe_open (to, O_WRONLY | O_BINARY | O_APPEND, 0)) < 0) + if (! follow_symlinks) + to_flags |= O_NOFOLLOW; + if ((tofd = safe_open (to, to_flags, 0)) < 0) pfatal ("Can't reopen file %s", quotearg (to)); copy_to_fd (from, tofd); if (close (tofd) != 0) -- cgit v1.2.1 ================================================ FILE: package/patch/Config.in ================================================ config BR2_PACKAGE_PATCH bool "patch" depends on BR2_USE_MMU # fork() 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. http://www.gnu.org/software/patch/ comment "patch needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR depends on BR2_USE_MMU depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/patch/patch.hash ================================================ # Locally calculated after checking pgp signature sha256 ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd patch-2.7.6.tar.xz # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/patch/patch.mk ================================================ ################################################################################ # # patch # ################################################################################ PATCH_VERSION = 2.7.6 PATCH_SOURCE = patch-$(PATCH_VERSION).tar.xz PATCH_SITE = $(BR2_GNU_MIRROR)/patch PATCH_LICENSE = GPL-3.0+ PATCH_LICENSE_FILES = COPYING PATCH_CPE_ID_VENDOR = gnu # 0001-Fix-segfault-with-mangled-rename-patch.patch PATCH_IGNORE_CVES += CVE-2018-6951 # 0003-Fix-arbitrary-command-execution-in-ed-style-patches-.patch PATCH_IGNORE_CVES += CVE-2018-1000156 # 0004-Invoke-ed-directly-instead-of-using-the-shell.patch PATCH_IGNORE_CVES += CVE-2018-20969 CVE-2019-13638 # 0005-Don-t-follow-symlinks-unless--follow-symlinks-is-given.patch PATCH_IGNORE_CVES += CVE-2019-13636 ifeq ($(BR2_PACKAGE_ATTR),y) PATCH_CONF_OPTS += --enable-xattr PATCH_DEPENDENCIES += attr else PATCH_CONF_OPTS += --disable-xattr endif $(eval $(autotools-package)) ================================================ FILE: package/patchelf/0001-Remove-apparently-incorrect-usage-of-static.patch ================================================ From 2480efa8411523cf046094492192a5ee451aae5d Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 19 Sep 2016 17:31:37 +0200 Subject: [PATCH] Remove apparently incorrect usage of "static" [Upstream-commit: https://github.com/NixOS/patchelf/commit/a365bcb7d7025da51b33165ef7ebc7180199a05e This patch also removes the DT_INIT symbols from needed_libs (DT_INIT points to library initialisation function, not to needed libraries...)] Signed-off-by: Wolfgang Grandegger --- src/patchelf.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/patchelf.cc b/src/patchelf.cc index 136098f..c870638 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc @@ -941,7 +941,6 @@ void ElfFile::modifySoname(sonameMode op, const string & newS assert(strTabAddr == rdi(shdrDynStr.sh_addr)); /* Walk through the dynamic section, look for the DT_SONAME entry. */ - static vector neededLibs; dyn = (Elf_Dyn *) (contents + rdi(shdrDynamic.sh_offset)); Elf_Dyn * dynSoname = 0; char * soname = 0; @@ -949,8 +948,7 @@ void ElfFile::modifySoname(sonameMode op, const string & newS if (rdi(dyn->d_tag) == DT_SONAME) { dynSoname = dyn; soname = strTab + rdi(dyn->d_un.d_val); - } else if (rdi(dyn->d_tag) == DT_INIT) - neededLibs.push_back(string(strTab + rdi(dyn->d_un.d_val))); + } } if (op == printSoname) { @@ -1058,7 +1056,7 @@ void ElfFile::modifyRPath(RPathOp op, string newRPath) unless you use its `--enable-new-dtag' option, in which case it generates a DT_RPATH and DT_RUNPATH pointing at the same string. */ - static vector neededLibs; + vector neededLibs; dyn = (Elf_Dyn *) (contents + rdi(shdrDynamic.sh_offset)); Elf_Dyn * dynRPath = 0, * dynRunPath = 0; char * rpath = 0; @@ -1091,7 +1089,7 @@ void ElfFile::modifyRPath(RPathOp op, string newRPath) /* For each directory in the RPATH, check if it contains any needed library. */ if (op == rpShrink) { - static vector neededLibFound(neededLibs.size(), false); + vector neededLibFound(neededLibs.size(), false); newRPath = ""; -- 1.9.1 ================================================ FILE: package/patchelf/0002-Extract-a-function-for-splitting-a-colon-separated-s.patch ================================================ From a8452dc7e80eb17572c7458e33a4f4d609e6a3da Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Fri, 3 Jun 2016 23:03:51 +0300 Subject: [PATCH] Extract a function for splitting a colon-separated string We're going to need this logic in another place, so make a function of this. [Upstream-commit: https://github.com/NixOS/patchelf/commit/2e3fdc2030c75c19df6fc2924083cfad53856562] Signed-off-by: Wolfgang Grandegger --- src/patchelf.cc | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/patchelf.cc b/src/patchelf.cc index c870638..1d9a772 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc @@ -57,6 +57,22 @@ unsigned char * contents = 0; #define ElfFileParamNames Elf_Ehdr, Elf_Phdr, Elf_Shdr, Elf_Addr, Elf_Off, Elf_Dyn, Elf_Sym +static vector splitColonDelimitedString(const char * s){ + vector parts; + const char * pos = s; + while (*pos) { + const char * end = strchr(pos, ':'); + if (!end) end = strchr(pos, 0); + + parts.push_back(string(pos, end - pos)); + if (*end == ':') ++end; + pos = end; + } + + return parts; +} + + static unsigned int getPageSize(){ return pageSize; } @@ -1093,15 +1109,9 @@ void ElfFile::modifyRPath(RPathOp op, string newRPath) newRPath = ""; - char * pos = rpath; - while (*pos) { - char * end = strchr(pos, ':'); - if (!end) end = strchr(pos, 0); - - /* Get the name of the directory. */ - string dirName(pos, end - pos); - if (*end == ':') ++end; - pos = end; + vector rpathDirs = splitColonDelimitedString(rpath); + for (vector::iterator it = rpathDirs.begin(); it != rpathDirs.end(); ++it) { + const string & dirName = *it; /* Non-absolute entries are allowed (e.g., the special "$ORIGIN" hack). */ -- 1.9.1 ================================================ FILE: package/patchelf/0003-Add-option-to-make-the-rpath-relative-under-a-specif.patch ================================================ From 618220bfb55c875d6a4d197cb24fe632ac93ec85 Mon Sep 17 00:00:00 2001 From: Wolfgang Grandegger Date: Mon, 20 Feb 2017 16:29:24 +0100 Subject: [PATCH] Add option to make the rpath relative under a specified root directory Running "patchelf" with the option "--make-rpath-relative ROOTDIR" will modify or delete the RPATHDIRs according the following rules similar to Martin's patches [1] making the Buildroot toolchaing/SDK relocatable. RPATHDIR starts with "$ORIGIN": The original build-system already took care of setting a relative RPATH, resolve it and test if it's valid (does exist) RPATHDIR starts with ROOTDIR: The original build-system added some absolute RPATH (absolute on the build machine). Test if it's valid (does exist). ROOTDIR/RPATHDIR exists: The original build-system already took care of setting an absolute RPATH (absolute in the final rootfs), resolve it and test if it's valid (does exist). RPATHDIR points somewhere else: (can be anywhere: build trees, staging tree, host location, non-existing location, etc.). Just discard such a path. The option "--no-standard-libs" will discard RPATHDIRs ROOTDIR/lib and ROOTDIR/usr/lib. Like "--shrink-rpath", RPATHDIRs are also discarded if the directories do not contain a library referenced by the DT_NEEDED fields. If the option "--relative-to-file" is given, the rpath will start with "$ORIGIN" making it relative to the ELF file, otherwise an absolute path relative to ROOTDIR will be used. A pull request for a similar patch [2] for mainline inclusion is pending. [1] http://lists.busybox.net/pipermail/buildroot/2016-April/159422.html [2] https://github.com/NixOS/patchelf/pull/118 Signed-off-by: Wolfgang Grandegger --- src/patchelf.cc | 196 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 175 insertions(+), 21 deletions(-) diff --git a/src/patchelf.cc b/src/patchelf.cc index 1d9a772..35b4a33 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc @@ -46,6 +46,10 @@ static bool debugMode = false; static bool forceRPath = false; +static bool noStandardLibDirs = false; + +static bool relativeToFile = false; + static string fileName; static int pageSize = PAGESIZE; @@ -77,6 +81,49 @@ static unsigned int getPageSize(){ return pageSize; } +static bool absolutePathExists(const string & path, string & canonicalPath) +{ + char *cpath = realpath(path.c_str(), NULL); + if (cpath) { + canonicalPath = cpath; + free(cpath); + return true; + } else { + return false; + } +} + +static string makePathRelative(const string & path, + const string & refPath) +{ + string relPath = "$ORIGIN"; + string p = path, refP = refPath; + size_t pos; + + /* Strip the common part of path and refPath */ + while (true) { + pos = p.find_first_of('/', 1); + if (refP.find_first_of('/', 1) != pos) + break; + if (p.substr(0, pos) != refP.substr(0, pos)) + break; + if (pos == string::npos) + break; + p = p.substr(pos); + refP = refP.substr(pos); + } + /* Check if both pathes are equal */ + if (p != refP) { + pos = 0; + while (pos != string::npos) { + pos =refP.find_first_of('/', pos + 1); + relPath.append("/.."); + } + relPath.append(p); + } + + return relPath; +} template class ElfFile @@ -183,9 +230,13 @@ public: void setInterpreter(const string & newInterpreter); - typedef enum { rpPrint, rpShrink, rpSet, rpRemove } RPathOp; + typedef enum { rpPrint, rpShrink, rpMakeRelative, rpSet, rpRemove} RPathOp; + + bool libFoundInRPath(const string & dirName, + const vector neededLibs, + vector & neededLibFound); - void modifyRPath(RPathOp op, string newRPath); + void modifyRPath(RPathOp op, string rootDir, string newRPath); void addNeeded(set libs); @@ -1041,7 +1092,27 @@ static void concatToRPath(string & rpath, const string & path) template -void ElfFile::modifyRPath(RPathOp op, string newRPath) +bool ElfFile::libFoundInRPath(const string & dirName, + const vector neededLibs, vector & neededLibFound) +{ + /* For each library that we haven't found yet, see if it + exists in this directory. */ + bool libFound = false; + for (unsigned int j = 0; j < neededLibs.size(); ++j) + if (!neededLibFound[j]) { + string libName = dirName + "/" + neededLibs[j]; + struct stat st; + if (stat(libName.c_str(), &st) == 0) { + neededLibFound[j] = true; + libFound = true; + } + } + return libFound; +} + + +template +void ElfFile::modifyRPath(RPathOp op, string rootDir, string newRPath) { Elf_Shdr & shdrDynamic = findSection(".dynamic"); @@ -1096,6 +1167,11 @@ void ElfFile::modifyRPath(RPathOp op, string newRPath) return; } + if (op == rpMakeRelative && !rpath) { + debug("no RPATH to make relative\n"); + return; + } + if (op == rpShrink && !rpath) { debug("no RPATH to shrink\n"); return; @@ -1120,26 +1196,80 @@ void ElfFile::modifyRPath(RPathOp op, string newRPath) continue; } - /* For each library that we haven't found yet, see if it - exists in this directory. */ - bool libFound = false; - for (unsigned int j = 0; j < neededLibs.size(); ++j) - if (!neededLibFound[j]) { - string libName = dirName + "/" + neededLibs[j]; - struct stat st; - if (stat(libName.c_str(), &st) == 0) { - neededLibFound[j] = true; - libFound = true; - } - } - - if (!libFound) + if (!libFoundInRPath(dirName, neededLibs, neededLibFound)) debug("removing directory `%s' from RPATH\n", dirName.c_str()); else concatToRPath(newRPath, dirName); } } + /* Make the the RPATH relative to the specified path */ + if (op == rpMakeRelative) { + vector neededLibFound(neededLibs.size(), false); + string fileDir = fileName.substr(0, fileName.find_last_of("/")); + + newRPath = ""; + + vector rpathDirs = splitColonDelimitedString(rpath); + for (vector::iterator it = rpathDirs.begin(); it != rpathDirs.end(); ++it) { + const string & dirName = *it; + + string canonicalPath; + + /* Figure out if we should keep or discard the path. There are several + cases to be handled: + "dirName" starts with "$ORIGIN": + The original build-system already took care of setting a relative + RPATH. Resolve it and test if it's valid (does exist). + "dirName" start with "rootDir": + The original build-system added some absolute RPATH (absolute on + the build machine). Test if it's valid (does exist). + "rootDir"/"dirName" exists: + The original build-system already took care of setting an absolute + RPATH (absolute in the final rootfs). Resolve it and test if it's + valid (does exist). + "dirName" points somewhere else: + (can be anywhere: build trees, staging tree, host location, + non-existing location, etc.). Just discard such a path. */ + if (!dirName.compare(0, 7, "$ORIGIN")) { + string path = fileDir + dirName.substr(7); + if (!absolutePathExists(path, canonicalPath)) { + debug("removing directory '%s' from RPATH because '%s' doesn't exist\n", + dirName.c_str(), path.c_str()); + continue; + } + } else if (!dirName.compare(0, rootDir.length(), rootDir)) { + if (!absolutePathExists(dirName, canonicalPath)) { + debug("removing directory '%s' from RPATH because it doesn't exist\n", dirName.c_str()); + continue; + } + } else { + string path = rootDir + dirName; + if (!absolutePathExists(path, canonicalPath)) { + debug("removing directory '%s' from RPATH because it's not in rootdir\n", + dirName.c_str()); + continue; + } + } + + if (noStandardLibDirs) { + if (!canonicalPath.compare(rootDir + "/lib") || + !canonicalPath.compare(rootDir + "/usr/lib")) { + debug("removing directory '%s' from RPATH because it's a standard library directory\n", + dirName.c_str()); + continue; + } + } + + /* Finally make "canonicalPath" relative to "filedir" in "rootDir" */ + if (relativeToFile) + concatToRPath(newRPath, makePathRelative(canonicalPath, fileDir)); + else + concatToRPath(newRPath, canonicalPath.substr(rootDir.length())); + debug("keeping relative path of %s\n", canonicalPath.c_str()); + } + } + if (op == rpRemove) { if (!rpath) { debug("no RPATH to delete\n"); @@ -1413,7 +1543,9 @@ static bool shrinkRPath = false; static bool removeRPath = false; static bool setRPath = false; static bool printRPath = false; +static bool makeRPathRelative = false; static string newRPath; +static string rootDir; static set neededLibsToRemove; static map neededLibsToReplace; static set neededLibsToAdd; @@ -1438,14 +1570,16 @@ static void patchElf2(ElfFile & elfFile) elfFile.setInterpreter(newInterpreter); if (printRPath) - elfFile.modifyRPath(elfFile.rpPrint, ""); + elfFile.modifyRPath(elfFile.rpPrint, "", ""); if (shrinkRPath) - elfFile.modifyRPath(elfFile.rpShrink, ""); + elfFile.modifyRPath(elfFile.rpShrink, "", ""); else if (removeRPath) - elfFile.modifyRPath(elfFile.rpRemove, ""); + elfFile.modifyRPath(elfFile.rpRemove, "", ""); else if (setRPath) - elfFile.modifyRPath(elfFile.rpSet, newRPath); + elfFile.modifyRPath(elfFile.rpSet, "", newRPath); + else if (makeRPathRelative) + elfFile.modifyRPath(elfFile.rpMakeRelative, rootDir, ""); if (printNeeded) elfFile.printNeededLibs(); @@ -1508,6 +1642,9 @@ void showHelp(const string & progName) [--set-rpath RPATH]\n\ [--remove-rpath]\n\ [--shrink-rpath]\n\ + [--make-rpath-relative ROOTDIR]\n\ + [--no-standard-lib-dirs]\n\ + [--relative-to-file]\n\ [--print-rpath]\n\ [--force-rpath]\n\ [--add-needed LIBRARY]\n\ @@ -1564,6 +1701,17 @@ int main(int argc, char * * argv) setRPath = true; newRPath = argv[i]; } + else if (arg == "--make-rpath-relative") { + if (++i == argc) error("missing argument to --make-rpath-relative"); + makeRPathRelative = true; + rootDir = argv[i]; + } + else if (arg == "--no-standard-lib-dirs") { + noStandardLibDirs = true; + } + else if (arg == "--relative-to-file") { + relativeToFile = true; + } else if (arg == "--print-rpath") { printRPath = true; } -- 1.9.1 ================================================ FILE: package/patchelf/0004-patchelf-Check-ELF-endianness-before-writing-new-run.patch ================================================ From 8c75599b674c73fbfe9c15afeccad54ae88243f5 Mon Sep 17 00:00:00 2001 From: Bryce Ferguson Date: Mon, 25 Jun 2018 13:05:07 -0500 Subject: [PATCH] patchelf: Check ELF endianness before writing new runpath This commit modifies the way fields are written in the dynamic section in order to account the architecture of the target ELF file. Instead of copying the raw data, use the helper functions to convert endianness. Link to upstream PR: https://github.com/NixOS/patchelf/pull/151 Signed-off-by: Bryce Ferguson --- src/patchelf.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/patchelf.cc b/src/patchelf.cc index 35b4a33..a33f644 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc @@ -1315,13 +1315,13 @@ void ElfFile::modifyRPath(RPathOp op, string rootDir, string debug("new rpath is `%s'\n", newRPath.c_str()); if (!forceRPath && dynRPath && !dynRunPath) { /* convert DT_RPATH to DT_RUNPATH */ - dynRPath->d_tag = DT_RUNPATH; + wri(dynRPath->d_tag, DT_RUNPATH); dynRunPath = dynRPath; dynRPath = 0; } if (forceRPath && dynRPath && dynRunPath) { /* convert DT_RUNPATH to DT_RPATH */ - dynRunPath->d_tag = DT_IGNORE; + wri(dynRunPath->d_tag, DT_IGNORE); } if (newRPath.size() <= rpathSize) { -- 2.17.0 ================================================ FILE: package/patchelf/0005-Avoid-inflating-file-sizes-needlessly-and-allow-bina.patch ================================================ From 79c093226e609b99fa889f6e37480b92b399610d Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 7 Mar 2017 21:08:34 +0000 Subject: [PATCH] Avoid inflating file sizes needlessly and allow binaries to be stripped The current approach to changing sections in ET_DYN executables is to move the INTERP section to the end of the file. +This means changing PT_PHDR to add an extra PT_LOAD section so that the new section is mmaped into memory by the elf loader in the kernel. In order to extend PHDR, this means moving it to the end of the file. Its documented in BUGS there is a kernel 'bug' which means that if you have holes in memory between the base load address and the PT_LOAD segment that contains PHDR, it will pass an incorrect PHDR address to ld.so and fail to load the binary, segfaulting. To avoid this, the code currently inserts space into the binary to ensure that when loaded into memory there are no holes between the PT_LOAD sections. This inflates the binaries by many MBs in some cases. Whilst we could make them sparse, there is a second issue which is that strip can fail to process these binaries: $ strip fixincl Not enough room for program headers, try linking with -N [.note.ABI-tag]: Bad value This turns out to be due to libbfd not liking the relocated PHDR section either (https://github.com/NixOS/patchelf/issues/10). Instead this patch implements a different approach, leaving PHDR where it is but extending it in place to allow addition of a new PT_LOAD section. This overwrites sections in the binary but those get moved to the end of the file in the new PT_LOAD section. This is based on patches linked from the above github issue, however whilst the idea was good, the implementation wasn't correct and they've been rewritten here. Signed-off-by: Richard Purdie Fetch from: https://github.com/NixOS/patchelf/commit/c4deb5e9e1ce9c98a48e0d5bb37d87739b8cfee4 Backported to v0.9 Signed-off-by: Conrad Ratschan --- src/patchelf.cc | 71 ++++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 31 deletions(-) diff --git a/src/patchelf.cc b/src/patchelf.cc index 1d58061..c2147af 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc @@ -209,6 +209,8 @@ private: string & replaceSection(const SectionName & sectionName, unsigned int size); + bool haveReplacedSection(const SectionName & sectionName); + void writeReplacedSections(Elf_Off & curOff, Elf_Addr startAddr, Elf_Off startOffset); @@ -632,6 +634,15 @@ void ElfFile::writeReplacedSections(Elf_Off & curOff, replacedSections.clear(); } +template +bool ElfFile::haveReplacedSection(const SectionName & sectionName) +{ + ReplacedSections::iterator i = replacedSections.find(sectionName); + + if (i != replacedSections.end()) + return true; + return false; +} template void ElfFile::rewriteSectionsLibrary() @@ -648,52 +659,53 @@ void ElfFile::rewriteSectionsLibrary() debug("last page is 0x%llx\n", (unsigned long long) startPage); + /* Because we're adding a new section header, we're necessarily increasing + the size of the program header table. This can cause the first section + to overlap the program header table in memory; we need to shift the first + few segments to someplace else. */ + /* Some sections may already be replaced so account for that */ + unsigned int i = 1; + Elf_Addr pht_size = sizeof(Elf_Ehdr) + (phdrs.size() + 1)*sizeof(Elf_Phdr); + while( shdrs[i].sh_addr <= pht_size && i < rdi(hdr->e_shnum) ) { + if (not haveReplacedSection(getSectionName(shdrs[i]))) + replaceSection(getSectionName(shdrs[i]), shdrs[i].sh_size); + i++; + } - /* Compute the total space needed for the replaced sections and - the program headers. */ - off_t neededSpace = (phdrs.size() + 1) * sizeof(Elf_Phdr); + /* Compute the total space needed for the replaced sections */ + off_t neededSpace = 0; for (ReplacedSections::iterator i = replacedSections.begin(); i != replacedSections.end(); ++i) neededSpace += roundUp(i->second.size(), sectionAlignment); debug("needed space is %d\n", neededSpace); - size_t startOffset = roundUp(fileSize, getPageSize()); growFile(startOffset + neededSpace); - /* Even though this file is of type ET_DYN, it could actually be an executable. For instance, Gold produces executables marked - ET_DYN. In that case we can still hit the kernel bug that - necessitated rewriteSectionsExecutable(). However, such - executables also tend to start at virtual address 0, so + ET_DYN as does LD when linking with pie. If we move PT_PHDR, it + has to stay in the first PT_LOAD segment or any subsequent ones + if they're continuous in memory due to linux kernel constraints + (see BUGS). Since the end of the file would be after bss, we can't + move PHDR there, we therefore choose to leave PT_PHDR where it is but + move enough following sections such that we can add the extra PT_LOAD + section to it. This PT_LOAD segment ensures the sections at the end of + the file are mapped into memory for ld.so to process. + We can't use the approach in rewriteSectionsExecutable() + since DYN executables tend to start at virtual address 0, so rewriteSectionsExecutable() won't work because it doesn't have - any virtual address space to grow downwards into. As a - workaround, make sure that the virtual address of our new - PT_LOAD segment relative to the first PT_LOAD segment is equal - to its offset; otherwise we hit the kernel bug. This may - require creating a hole in the executable. The bigger the size - of the uninitialised data segment, the bigger the hole. */ + any virtual address space to grow downwards into. */ if (isExecutable) { if (startOffset >= startPage) { debug("shifting new PT_LOAD segment by %d bytes to work around a Linux kernel bug\n", startOffset - startPage); - } else { - size_t hole = startPage - startOffset; - /* Print a warning, because the hole could be very big. */ - fprintf(stderr, "warning: working around a Linux kernel bug by creating a hole of %zu bytes in ‘%s’\n", hole, fileName.c_str()); - assert(hole % getPageSize() == 0); - /* !!! We could create an actual hole in the file here, - but it's probably not worth the effort. */ - growFile(fileSize + hole); - startOffset += hole; } startPage = startOffset; } - /* Add a segment that maps the replaced sections and program - headers into memory. */ + /* Add a segment that maps the replaced sections into memory. */ phdrs.resize(rdi(hdr->e_phnum) + 1); wri(hdr->e_phnum, rdi(hdr->e_phnum) + 1); Elf_Phdr & phdr = phdrs[rdi(hdr->e_phnum) - 1]; @@ -706,15 +718,12 @@ void ElfFile::rewriteSectionsLibrary() /* Write out the replaced sections. */ - Elf_Off curOff = startOffset + phdrs.size() * sizeof(Elf_Phdr); + Elf_Off curOff = startOffset; writeReplacedSections(curOff, startPage, startOffset); assert(curOff == startOffset + neededSpace); - - /* Move the program header to the start of the new area. */ - wri(hdr->e_phoff, startOffset); - - rewriteHeaders(startPage); + /* Write out the updated program and section headers */ + rewriteHeaders(hdr->e_phoff); } -- 2.17.1 ================================================ FILE: package/patchelf/0006-Fix-shared-library-corruption-when-rerunning-patchel.patch ================================================ From 5df4791bf077127684faceeeea8bfab063e43774 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 3 Jun 2020 12:14:58 +0100 Subject: [PATCH] Fix shared library corruption when rerunning patchelf When running patchelf on some existing patchelf'd binaries to change to longer RPATHS, ldd would report the binaries as invalid. The output of objdump -x on those libraryies should show the top of the .dynamic section is getting trashed, something like: 0x600000001 0x0000000000429000 0x335000 0x0000000000335000 0xc740 0x000000000000c740 0x1000 0x0000000000009098 SONAME libglib-2.0.so.0 (which should be RPATH and DT_NEEDED entries) This was tracked down to the code which injects the PT_LOAD section. The issue is that if the program headers were previously relocated to the end of the file which was how patchelf operated previously, the relocation code wouldn't work properly on a second run as it now assumes they're located after the elf header. This change forces them back to immediately follow the elf header which is where the code has made space for them. Should fix https://github.com/NixOS/patchelf/issues/170 and https://github.com/NixOS/patchelf/issues/192 Signed-off-by: Richard Purdie Fetch from: https://github.com/NixOS/patchelf/commit/ad5f1f078b716802dfb8f7226cb1d5c720348a78 Backported to v0.9 Signed-off-by: Conrad Ratschan --- src/patchelf.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/patchelf.cc b/src/patchelf.cc index c2147af..1224a89 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc @@ -706,6 +706,7 @@ void ElfFile::rewriteSectionsLibrary() /* Add a segment that maps the replaced sections into memory. */ + wri(hdr->e_phoff, sizeof(Elf_Ehdr)); phdrs.resize(rdi(hdr->e_phnum) + 1); wri(hdr->e_phnum, rdi(hdr->e_phnum) + 1); Elf_Phdr & phdr = phdrs[rdi(hdr->e_phnum) - 1]; -- 2.17.1 ================================================ FILE: package/patchelf/0007-fix-adjusting-startPage.patch ================================================ From 4a82c97e8a0677706d1d532812daaa73249768a8 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Fri, 21 Jul 2017 12:33:53 +0300 Subject: [PATCH] fix adjusting startPage startPage is adjusted unconditionally for all executables. This results in incorrect addresses assigned to INTERP and LOAD program headers, which breaks patched executable. Adjusting startPage variable only when startOffset > startPage should fix this. This change is related to the issue NixOS#10 Signed-off-by: Ed Bartosh Fetch from: https://github.com/NixOS/patchelf/commit/1cc234fea5600190d872329aca60e2365cefc39e Backported to v0.9 Signed-off-by: Conrad Ratschan --- src/patchelf.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/patchelf.cc b/src/patchelf.cc index 1224a89..4676157 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc @@ -697,10 +697,8 @@ void ElfFile::rewriteSectionsLibrary() since DYN executables tend to start at virtual address 0, so rewriteSectionsExecutable() won't work because it doesn't have any virtual address space to grow downwards into. */ - if (isExecutable) { - if (startOffset >= startPage) { - debug("shifting new PT_LOAD segment by %d bytes to work around a Linux kernel bug\n", startOffset - startPage); - } + if (isExecutable && startOffset > startPage) { + debug("shifting new PT_LOAD segment by %d bytes to work around a Linux kernel bug\n", startOffset - startPage); startPage = startOffset; } -- 2.17.1 ================================================ FILE: package/patchelf/0008-Use-sh_offset-instead-of-sh_addr-when-checking-alrea.patch ================================================ From cb8326de54ad7a56658b0dc8efb7da5e71684a7c Mon Sep 17 00:00:00 2001 From: Pablo Galindo Date: Tue, 22 Sep 2020 01:33:47 +0100 Subject: [PATCH] Use sh_offset instead of sh_addr when checking already replaced libs When checking for already replaced libs, the check against the size must be done using the section header offset, not the section file address. This was not crashing in many situations because normally sh_address and sh_offset have the same value but these two may differ and using the sh_address value instead can cause library corruption in these situations. Fetch from: https://github.com/NixOS/patchelf/commit/83aa89addf8757e2d63aa73222f2fa9bc6d7321a Backported to v0.9 Signed-off-by: Conrad Ratschan --- src/patchelf.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/patchelf.cc b/src/patchelf.cc index 4676157..c025ae2 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc @@ -666,7 +666,7 @@ void ElfFile::rewriteSectionsLibrary() /* Some sections may already be replaced so account for that */ unsigned int i = 1; Elf_Addr pht_size = sizeof(Elf_Ehdr) + (phdrs.size() + 1)*sizeof(Elf_Phdr); - while( shdrs[i].sh_addr <= pht_size && i < rdi(hdr->e_shnum) ) { + while( shdrs[i].sh_offset <= pht_size && i < rdi(hdr->e_shnum) ) { if (not haveReplacedSection(getSectionName(shdrs[i]))) replaceSection(getSectionName(shdrs[i]), shdrs[i].sh_size); i++; -- 2.17.1 ================================================ FILE: package/patchelf/0009-Fix-issue-66-by-ignoring-the-first-section-header-wh.patch ================================================ From e22ca2f593aa8fd392f1ac4f8dd104bc56d0d100 Mon Sep 17 00:00:00 2001 From: Ezra Cooper Date: Thu, 21 Jun 2018 11:07:35 -0700 Subject: [PATCH] Fix issue #66 by ignoring the first section header when sorting, and not overwriting NOBITS entries. Fetch from: https://github.com/NixOS/patchelf/commit/52ab908394958a2a5d0476e306e2cad4da4fdeae Backported to v0.9 Signed-off-by: Conrad Ratschan --- src/patchelf.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/patchelf.cc b/src/patchelf.cc index c025ae2..fa2945e 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc @@ -435,7 +435,7 @@ void ElfFile::sortShdrs() /* Sort the sections by offset. */ CompShdr comp; comp.elfFile = this; - sort(shdrs.begin(), shdrs.end(), comp); + sort(shdrs.begin() + 1, shdrs.end(), comp); /* Restore the sh_link mappings. */ for (unsigned int i = 1; i < rdi(hdr->e_shnum); ++i) @@ -586,7 +586,8 @@ void ElfFile::writeReplacedSections(Elf_Off & curOff, { string sectionName = i->first; Elf_Shdr & shdr = findSection(sectionName); - memset(contents + rdi(shdr.sh_offset), 'X', rdi(shdr.sh_size)); + if (shdr.sh_type != SHT_NOBITS) + memset(contents + rdi(shdr.sh_offset), 'X', rdi(shdr.sh_size)); } for (ReplacedSections::iterator i = replacedSections.begin(); -- 2.17.1 ================================================ FILE: package/patchelf/0010-Fix-endianness-issues-for-powerpc-PIE.patch ================================================ From c61c2960d782c67566790b210163ff9c799f018a Mon Sep 17 00:00:00 2001 From: Conrad Ratschan Date: Sat, 3 Oct 2020 20:17:24 -0500 Subject: [PATCH] Fix endianness issues for powerpc PIE Previously when running `patchelf --set-rpath "/usr/sbin" my_bin` on a PIE ppc32 binary that had no RPATH a few issues were encountered. This commit fixes: 1. The PT_PHDR being sorted improperly due to the type being read in incorrect endianness 3. The interpreter being clobbered due to the replace sections routine reading sh_offset and sh_size in incorrect endianness 4. The PHDR segment having an incorrect virt and phys address due to reading the e_phoff in the incorrect endianness This also fixes a read of the shdr.sh_type in writeReplacedSections but this was not encountered during testing. Fetch from: https://github.com/NixOS/patchelf/commit/884eccc4f061a3dbdbe63a4c73f1cc9bbf77fa7d Backported to v0.9. Removed item 2 from the fix list as it is not applicable to v0.9. Signed-off-by: Conrad Ratschan --- src/patchelf.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/patchelf.cc b/src/patchelf.cc index fa2945e..e60b17c 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc @@ -173,8 +173,8 @@ private: ElfFile * elfFile; bool operator ()(const Elf_Phdr & x, const Elf_Phdr & y) { - if (x.p_type == PT_PHDR) return true; - if (y.p_type == PT_PHDR) return false; + if (elfFile->rdi(x.p_type) == PT_PHDR) return true; + if (elfFile->rdi(y.p_type) == PT_PHDR) return false; return elfFile->rdi(x.p_paddr) < elfFile->rdi(y.p_paddr); } }; @@ -586,7 +586,7 @@ void ElfFile::writeReplacedSections(Elf_Off & curOff, { string sectionName = i->first; Elf_Shdr & shdr = findSection(sectionName); - if (shdr.sh_type != SHT_NOBITS) + if (rdi(shdr.sh_type) != SHT_NOBITS) memset(contents + rdi(shdr.sh_offset), 'X', rdi(shdr.sh_size)); } @@ -667,9 +667,9 @@ void ElfFile::rewriteSectionsLibrary() /* Some sections may already be replaced so account for that */ unsigned int i = 1; Elf_Addr pht_size = sizeof(Elf_Ehdr) + (phdrs.size() + 1)*sizeof(Elf_Phdr); - while( shdrs[i].sh_offset <= pht_size && i < rdi(hdr->e_shnum) ) { + while( rdi(shdrs[i].sh_offset) <= pht_size && i < rdi(hdr->e_shnum) ) { if (not haveReplacedSection(getSectionName(shdrs[i]))) - replaceSection(getSectionName(shdrs[i]), shdrs[i].sh_size); + replaceSection(getSectionName(shdrs[i]), rdi(shdrs[i].sh_size)); i++; } @@ -723,7 +723,7 @@ void ElfFile::rewriteSectionsLibrary() assert(curOff == startOffset + neededSpace); /* Write out the updated program and section headers */ - rewriteHeaders(hdr->e_phoff); + rewriteHeaders(rdi(hdr->e_phoff)); } -- 2.17.1 ================================================ FILE: package/patchelf/Config.in.host ================================================ config BR2_PACKAGE_HOST_PATCHELF bool default y help PatchELF is a small utility to modify the dynamic linker and RPATH of ELF executables. http://nixos.org/patchelf.html ================================================ FILE: package/patchelf/patchelf.hash ================================================ # Locally calculated sha256 a0f65c1ba148890e9f2f7823f4bedf7ecad5417772f64f994004f59a39014f83 patchelf-0.9.tar.bz2 # License files, locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/patchelf/patchelf.mk ================================================ ################################################################################ # # patchelf # ################################################################################ PATCHELF_VERSION = 0.9 PATCHELF_SITE = https://nixos.org/releases/patchelf/patchelf-$(PATCHELF_VERSION) PATCHELF_SOURCE = patchelf-$(PATCHELF_VERSION).tar.bz2 PATCHELF_LICENSE = GPL-3.0+ PATCHELF_LICENSE_FILES = COPYING $(eval $(host-autotools-package)) ================================================ FILE: package/pax-utils/Config.in ================================================ config BR2_PACKAGE_PAX_UTILS bool "pax-utils" depends on BR2_USE_WCHAR help ELF related utils for ELF 32/64 binaries that can check files for security relevant properties. http://www.gentoo.org/proj/en/hardened/pax-utils.xml comment "pax-utils needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/pax-utils/pax-utils.hash ================================================ # Locally calculated sha256 9742d2a31d53a4e0f6df0d3721ab6f7cf8b0404c95fee3b00e678c1ff6db7f21 pax-utils-1.2.6.tar.xz sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING ================================================ FILE: package/pax-utils/pax-utils.mk ================================================ ################################################################################ # # pax-utils # ################################################################################ PAX_UTILS_VERSION = 1.2.6 PAX_UTILS_SITE = http://distfiles.gentoo.org/distfiles PAX_UTILS_SOURCE = pax-utils-$(PAX_UTILS_VERSION).tar.xz PAX_UTILS_LICENSE = GPL-2.0 PAX_UTILS_LICENSE_FILES = COPYING PAX_UTILS_CPE_ID_VENDOR = gentoo PAX_UTILS_DEPENDENCIES = host-pkgconf PAX_UTILS_CONF_OPTS = --without-python ifeq ($(BR2_PACKAGE_LIBCAP),y) PAX_UTILS_DEPENDENCIES += libcap PAX_UTILS_CONF_OPTS += --with-caps else PAX_UTILS_CONF_OPTS += --without-caps endif 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),) define PAX_UTILS_REMOVE_BASH_TOOLS rm -f $(TARGET_DIR)/usr/bin/{lddtree,symtree} endef endif PAX_UTILS_POST_INSTALL_TARGET_HOOKS += PAX_UTILS_REMOVE_BASH_TOOLS $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/paxtest/0001-genpaxtest-move-log-location.patch ================================================ From 623d99e4f557ef9cd771006e4f916c12d22a07a8 Mon Sep 17 00:00:00 2001 From: David Graziano Date: Mon, 12 Jun 2017 10:41:45 -0500 Subject: [PATCH] genpaxtest: move log location Move log location to /var/log instead of local directory. (For read-only filesystems) Signed-off-by: David Graziano --- genpaxtest | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/genpaxtest b/genpaxtest index 5a22e15..d62b15e 100644 --- a/genpaxtest +++ b/genpaxtest @@ -35,7 +35,7 @@ exit 1 fi -LOG=\$HOME/paxtest.log +LOG=/var/log/paxtest.log [ -n "\$1" ] && LOG=\$1 touch "\$LOG" if [ ! -e "\$LOG" ]; then -- 1.9.1 ================================================ FILE: package/paxtest/0002-paxtest-page-alignment-ARM-and-NIOS2-arch.patch ================================================ From 70406ad5668a15fedce2ae1ed3bc4fad04d9f040 Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Wed, 5 Jul 2017 20:47:42 -0500 Subject: [PATCH] paxtest: page alignment ARM and NIOS2 arch - Extended ARM range from ARMv6-v7 to also include anything below v7 - Added NIOS2 arch to conditionally have smaller alignment Submitted Upstream to pageexec@freemail.hu. Also posted a bug to both (Hardened) Suse and Gentoo's bugtrackers. https://bugzilla.opensuse.org/show_bug.cgi?id=1047422 https://bugs.gentoo.org/show_bug.cgi?id=623946 Signed-off-by: Matthew Weber --- paxtest.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/paxtest.h b/paxtest.h index 8623bfb..a230c1a 100644 --- a/paxtest.h +++ b/paxtest.h @@ -5,13 +5,21 @@ #include /* - * ARMv6 and ARMv7 do not like 64k alignment, 32k is ok + * Earlier ARMv# through ARMv7 do not like 64k alignment, 32k is ok */ -#if defined(__arm__) && __ARM_ARCH >= 6 && __ARM_ARCH <= 7 +#if defined(__arm__) && __ARM_ARCH <= 7 #define PAGE_SIZE_MAX (32768) #else #define PAGE_SIZE_MAX 0x10000 /* 64k should cover most arches */ #endif + +/* + * NIOS2's assemblier doesn't like 64k alignment + */ +#if defined(__nios2_arch__) +#define PAGE_SIZE_MAX (32768) +#endif + #ifndef __aligned #define __aligned(x) __attribute__((aligned(x))) #endif -- 1.9.1 ================================================ FILE: package/paxtest/Config.in ================================================ config BR2_PACKAGE_PAXTEST bool "paxtest" # No UCLIBC or MUSL because __NO_A_OUT_SUPPORT depends on BR2_TOOLCHAIN_USES_GLIBC help PaX regression test suite http://pax.grsecurity.net/docs comment "paxtest needs a glibc toolchain" depends on !BR2_TOOLCHAIN_USES_GLIBC ================================================ FILE: package/paxtest/paxtest.hash ================================================ # Locally computed: sha256 d553848431fd8c2ab6c8361b62e5cedfed1cc1d60088241f4a33d2af15dd667f paxtest-0.9.15.tar.gz sha256 fe8759e6d3ff462c876ded6e95e3fb297d607bc45799bb264ec9a170b5046522 README ================================================ FILE: package/paxtest/paxtest.mk ================================================ ################################################################################ # # paxtest # ################################################################################ PAXTEST_VERSION = 0.9.15 PAXTEST_SITE = https://www.grsecurity.net/~spender PAXTEST_LICENSE = GPL-2.0+ PAXTEST_LICENSE_FILES = README PAXTEST_CPE_ID_VENDOR = grsecurity define PAXTEST_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ RUNDIR="/usr/lib/paxtest" CC="$(TARGET_CC)" LD="$(TARGET_CC)" linux endef # The files installed to RUNDIR include test apps and shared libs. # Assuming /usr/bin/paxtest script solely uses these libs and apps, the # genpaxtest script updates LD_LIBRARY_PATH in the paxtest script # as part of the paxtest's creation to include the RUNDIR path for shared # library use. define PAXTEST_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ CC="$(TARGET_CC)" LD="$(TARGET_CC)" \ DESTDIR=$(TARGET_DIR) \ BINDIR="usr/bin" \ RUNDIR="/usr/lib/paxtest" -f Makefile.psm install endef $(eval $(generic-package)) ================================================ FILE: package/pciutils/Config.in ================================================ config BR2_PACKAGE_PCIUTILS bool "pciutils" help Various utilities dealing with the PCI bus. Provides things like setpci and lspci. http://atrey.karlin.mff.cuni.cz/~mj/pciutils.html ================================================ FILE: package/pciutils/pciutils.hash ================================================ # From https://www.kernel.org/pub/software/utils/pciutils/sha256sums.asc sha256 9d40b97be8b6a2cdf96aead5a61881d1f7e4e0da9544a9bac4fba1ae9dcd40eb pciutils-3.7.0.tar.xz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/pciutils/pciutils.mk ================================================ ################################################################################ # # pciutils # ################################################################################ PCIUTILS_VERSION = 3.7.0 PCIUTILS_SITE = $(BR2_KERNEL_MIRROR)/software/utils/pciutils PCIUTILS_SOURCE = pciutils-$(PCIUTILS_VERSION).tar.xz PCIUTILS_INSTALL_STAGING = YES PCIUTILS_LICENSE = GPL-2.0+ PCIUTILS_LICENSE_FILES = COPYING PCIUTILS_MAKE_OPTS = \ CROSS_COMPILE="$(TARGET_CROSS)" \ HOST="$(KERNEL_ARCH)-linux" \ OPT="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \ DNS=no \ STRIP= ifeq ($(BR2_PACKAGE_HAS_UDEV),y) PCIUTILS_DEPENDENCIES += udev PCIUTILS_MAKE_OPTS += HWDB=yes else PCIUTILS_MAKE_OPTS += HWDB=no endif ifeq ($(BR2_PACKAGE_ZLIB),y) PCIUTILS_MAKE_OPTS += ZLIB=yes PCIUTILS_DEPENDENCIES += zlib else PCIUTILS_MAKE_OPTS += ZLIB=no endif ifeq ($(BR2_PACKAGE_KMOD),y) PCIUTILS_DEPENDENCIES += kmod PCIUTILS_MAKE_OPTS += LIBKMOD=yes else PCIUTILS_MAKE_OPTS += LIBKMOD=no endif ifeq ($(BR2_STATIC_LIBS),y) PCIUTILS_MAKE_OPTS += SHARED=no else PCIUTILS_MAKE_OPTS += SHARED=yes endif define PCIUTILS_CONFIGURE_CMDS $(SED) 's/wget --no-timestamping/wget/' $(PCIUTILS_DIR)/update-pciids.sh endef define PCIUTILS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(PCIUTILS_MAKE_OPTS) \ PREFIX=/usr endef define PCIUTILS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) $(PCIUTILS_MAKE_OPTS) \ PREFIX=$(TARGET_DIR)/usr SBINDIR=$(TARGET_DIR)/usr/bin \ install install-lib install-pcilib endef define PCIUTILS_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) $(PCIUTILS_MAKE_OPTS) \ PREFIX=$(STAGING_DIR)/usr SBINDIR=$(STAGING_DIR)/usr/bin \ install install-lib install-pcilib endef $(eval $(generic-package)) ================================================ FILE: package/pcm-tools/0001-Look-for-pcm-core-at-the-default-path.patch ================================================ From 53b6161d2413406778fa222274069c82846f0297 Mon Sep 17 00:00:00 2001 From: Carlos Santos Date: Thu, 6 Dec 2018 21:17:02 -0200 Subject: [PATCH] Look for pcm-core at the default path On Buildroot, pcm-core.x is installed as /usr/bin/pcm-core. Remove the platform test, since we know that it's neither CigWin nor Windows, and use the default path. It's not nice to have a Buildroot specific patch but let's use one while we look for a solution that is acceptable upstream. Signed-off-by: Carlos Santos --- pmu-query.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pmu-query.py b/pmu-query.py index 4c596c7..dc39df6 100755 --- a/pmu-query.py +++ b/pmu-query.py @@ -3,7 +3,6 @@ import urllib2 import json, csv import subprocess import sys -import platform import getopt all_flag = False @@ -38,12 +37,7 @@ if filename == None: except StopIteration: break - if platform.system() == 'CYGWIN_NT-6.1': - p = subprocess.Popen(['./pcm-core.exe -c'],stdout=subprocess.PIPE,shell=True) - elif platform.system() == 'Windows': - p = subprocess.Popen(['pcm-core.exe -c'],stdout=subprocess.PIPE,shell=True) - else: - p = subprocess.Popen(['./pcm-core.x -c'],stdout=subprocess.PIPE,shell=True) + p = subprocess.Popen(['/usr/bin/pcm-core -c'],stdout=subprocess.PIPE,shell=True) (output, err) = p.communicate() p_status = p.wait() -- 2.19.2 ================================================ FILE: package/pcm-tools/Config.in ================================================ comment "pcm-tools needs a toolchain w/ C++" depends on BR2_i386 || BR2_x86_64 depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_PCM_TOOLS bool "pcm-tools" depends on BR2_i386 || BR2_x86_64 depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_HWDATA select BR2_PACKAGE_HWDATA_PCI_IDS help Processor Counter Monitor (PCM) is an application programming interface (API) and a set of tools based on the API to monitor performance and energy metrics of Intel(R) Core(TM), Xeon(R), Atom(TM) and Xeon Phi(TM) processors. https://github.com/opcm/pcm if BR2_PACKAGE_PCM_TOOLS # The pmu-query script is not compatible with Python 3 config BR2_PACKAGE_PCM_TOOLS_PMU_QUERY bool "install the pmu-query script" default y depends on BR2_PACKAGE_PYTHON select BR2_PACKAGE_CA_CERTIFICATES # https select BR2_PACKAGE_PYTHON_HASHLIB # urllib2 select BR2_PACKAGE_PYTHON_SSL # urllib2 comment "pmu-query needs Python 2.x" depends on !BR2_PACKAGE_PYTHON endif ================================================ FILE: package/pcm-tools/pcm-tools.hash ================================================ # Locally calculated sha256 798eb1bc5d9c34fa107de21b2100e8d4326cb45b613bc35baa1e1efb1dd13b04 pcm-tools-201812.tar.gz sha256 fac73f62c4d665c82622862a2be2b89713e0f480c93e593af2d8ef29a13d814b LICENSE ================================================ FILE: package/pcm-tools/pcm-tools.mk ================================================ ################################################################################ # # pcm-tools # ################################################################################ PCM_TOOLS_VERSION = 201812 PCM_TOOLS_SITE = $(call github,opcm,pcm,$(PCM_TOOLS_VERSION)) PCM_TOOLS_LICENSE = BSD-3-Clause PCM_TOOLS_LICENSE_FILES = LICENSE PCM_TOOLS_EXE_FILES = \ pcm-core pcm-iio pcm-lspci pcm-memory pcm-msr pcm-numa \ pcm-pcicfg pcm-pcie pcm-power pcm-sensor pcm-tsx pcm define PCM_TOOLS_BUILD_CMDS touch $(@D)/daemon-binaries $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" \ UNAME=Linux HOST=_LINUX endef ifeq ($(BR2_PACKAGE_PCM_TOOLS_PMU_QUERY),y) define PCM_TOOLS_INSTALL_PMU_QUERY $(INSTALL) -D -m 755 $(@D)/pmu-query.py $(TARGET_DIR)/usr/bin/pmu-query endef endif define PCM_TOOLS_INSTALL_TARGET_CMDS $(foreach f,$(PCM_TOOLS_EXE_FILES),\ $(INSTALL) -D -m 755 $(@D)/$(f).x $(TARGET_DIR)/usr/bin/$(f) ) $(PCM_TOOLS_INSTALL_PMU_QUERY) endef define PCM_TOOLS_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_X86_MSR) endef $(eval $(generic-package)) ================================================ FILE: package/pcmanfm/0001-po-de-po-fix-build-with-gettext-tiny.patch ================================================ From 2e51d1015ffd58f26f4ddf03a858164edcf64a8c Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 26 Mar 2021 09:16:08 +0100 Subject: [PATCH] po/de.po: fix build with gettext-tiny Build of de.gmo is broken with gettext-tiny since version 1.3.2 and commit 80e0f662861e6d0ad8888f61c19c0695978779bf: file=`echo de | sed 's,.*/,,'`.gmo \ && rm -f $file && /home/buildroot/autobuild/instance-2/output-1/host/bin/msgfmt -o $file de.po Makefile:102: recipe for target 'de.gmo' failed Fixes: - http://autobuild.buildroot.org/results/69f4e5fa44208429b143011640971a61d709d5b1 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/lxde/pcmanfm/pull/8] --- po/de.po | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/po/de.po b/po/de.po index 766a44e..9781ba3 100644 --- a/po/de.po +++ b/po/de.po @@ -961,8 +961,7 @@ msgstr "Diese Ordneransicht merken" #: ../src/main-win-ui.c:279 msgid "" "Check to remember view and sort as folder setting rather than global one" -msgstr -"Ansicht und Sortierung für dieses Verzeichnis anstelle der globalen " +msgstr "Ansicht und Sortierung für dieses Verzeichnis anstelle der globalen " "Einstellung merken" #: ../src/main-win-ui.c:281 ================================================ FILE: package/pcmanfm/Config.in ================================================ config BR2_PACKAGE_PCMANFM bool "pcmanfm" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 depends on BR2_INSTALL_LIBSTDCPP # libgtk2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # libgtk2 -> pango -> harfbuzz select BR2_PACKAGE_LIBFM select BR2_PACKAGE_MENU_CACHE select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBGTK2 if !BR2_PACKAGE_LIBGTK3_X11 help PCMan File Manager (PCManFM) is a file manager application developed by Hong Jen Yee from Taiwan which is meant to be a replacement for Nautilus, Konqueror and Thunar. http://wiki.lxde.org/en/PCManFM comment "pcmanfm needs a toolchain w/ wchar, threads, C++, gcc >= 4.8" 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_GCC_AT_LEAST_4_8 || \ !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/pcmanfm/pcmanfm.hash ================================================ # From https://sourceforge.net/projects/pcmanfm/files/PCManFM%20%2B%20Libfm%20%28tarball%20release%29/PCManFM/ md5 ef7c4417d2697ef138d175db7aeae15a pcmanfm-1.3.2.tar.xz sha1 bc4e468b0ec3089aaf817eafed43ae06350961ee pcmanfm-1.3.2.tar.xz # Locally computed: sha256 14cb7b247493c4cce65fbb5902611e3ad00a7a870fbc1e50adc50428c5140cf7 pcmanfm-1.3.2.tar.xz sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/pcmanfm/pcmanfm.mk ================================================ ################################################################################ # # pcmanfm # ################################################################################ PCMANFM_VERSION = 1.3.2 PCMANFM_SOURCE = pcmanfm-$(PCMANFM_VERSION).tar.xz PCMANFM_SITE = http://sourceforge.net/projects/pcmanfm/files PCMANFM_DEPENDENCIES = libglib2 menu-cache libfm $(TARGET_NLS_DEPENDENCIES) PCMANFM_LICENSE = GPL-2.0+ PCMANFM_LICENSE_FILES = COPYING PCMANFM_CPE_ID_VENDOR = pcmanfm_project PCMANFM_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) 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)) ================================================ FILE: package/pcre/0001-Kill-compatibility-bits.patch ================================================ 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 targets. Signed-off-by: Gustavo Zacarias [Fabrice: update for 8.44] Signed-off-by: Fabrice Fontaine --- pcrecpp.cc | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/pcrecpp.cc b/pcrecpp.cc index d09c9ab..6910db0 100644 --- a/pcrecpp.cc +++ b/pcrecpp.cc @@ -58,23 +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); -// This is for ABI compatibility with old versions of pcre (pre-7.6), -// which defined a global no_arg variable instead of putting it in the -// RE class. This works on GCC >= 3, at least. It definitely works -// for ELF, but may not for other object formats (Mach-O, for -// instance, does not support aliases.) We could probably have a more -// 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__) \ - && !defined(__INTEL_COMPILER) && !defined(__LCC__) -# 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__) -extern Arg no_arg - __attribute__((alias(USER_LABEL_PREFIX_STR "_ZN7pcrecpp2RE6no_argE"))); -#endif - // If a regular expression has no error, its error_ field points here static const string empty_string; -- 2.7.3 ================================================ FILE: package/pcre/0002-Disable-C-unit-tests.patch ================================================ 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 --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 -@WITH_PCRE_CPP_TRUE@am__append_23 = pcrecpp_unittest \ -@WITH_PCRE_CPP_TRUE@ pcre_scanner_unittest \ -@WITH_PCRE_CPP_TRUE@ pcre_stringpiece_unittest -@WITH_PCRE_CPP_TRUE@am__append_24 = pcrecpp_unittest \ -@WITH_PCRE_CPP_TRUE@ pcre_scanner_unittest \ -@WITH_PCRE_CPP_TRUE@ pcre_stringpiece_unittest @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) @@ -190,9 +184,6 @@ libpcreposix_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ "$(DESTDIR)$(includedir)" @WITH_REBUILD_CHARTABLES_TRUE@am__EXEEXT_2 = dftables$(EXEEXT) @WITH_JIT_TRUE@am__EXEEXT_3 = pcre_jit_test$(EXEEXT) -@WITH_PCRE_CPP_TRUE@am__EXEEXT_4 = pcrecpp_unittest$(EXEEXT) \ -@WITH_PCRE_CPP_TRUE@ pcre_scanner_unittest$(EXEEXT) \ -@WITH_PCRE_CPP_TRUE@ pcre_stringpiece_unittest$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ -- 2.7.3 ================================================ FILE: package/pcre/Config.in ================================================ config BR2_PACKAGE_PCRE bool "pcre" help Perl Compatible Regular Expressions. By default, only the 8-bits libpcre is built. To get the 16-bits and/or 32-bits variants libpcre16/libpcre32, use the package sub-options. http://www.pcre.org/ if BR2_PACKAGE_PCRE config BR2_PACKAGE_PCRE_16 bool "16-bit pcre" help This option builds the 16-bits pcre library, i.e 'libpcre16' config BR2_PACKAGE_PCRE_32 bool "32-bit pcre" help This option builds the 32-bits pcre library, i.e 'libpcre32' config BR2_PACKAGE_PCRE_UTF bool "UTF-8/16/32 support in pcre" help This option builds the pcre library with UTF-8/16/32 support config BR2_PACKAGE_PCRE_UCP bool "Unicode properties support in pcre" select BR2_PACKAGE_PCRE_UTF help This option builds the pcre library with Unicode properties support (implies UTF-8/16/32 support)' endif ================================================ FILE: package/pcre/pcre.hash ================================================ # Locally calculated after checking pgp signature sha256 4dae6fdcd2bb0bb6c37b5f97c33c2be954da743985369cddac3546e3218bffb8 pcre-8.45.tar.bz2 # License files, locally calculated sha256 51b3dea44f63338b84b9c97b3d793826a8397309068cf9379a423216ab8ea5b2 LICENCE ================================================ FILE: package/pcre/pcre.mk ================================================ ################################################################################ # # pcre # ################################################################################ PCRE_VERSION = 8.45 PCRE_SITE = http://downloads.sourceforge.net/project/pcre/pcre/$(PCRE_VERSION) PCRE_SOURCE = pcre-$(PCRE_VERSION).tar.bz2 PCRE_LICENSE = BSD-3-Clause PCRE_LICENSE_FILES = LICENCE PCRE_CPE_ID_VENDOR = pcre 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 endif PCRE_CONF_OPTS += --enable-pcre8 PCRE_CONF_OPTS += $(if $(BR2_PACKAGE_PCRE_16),--enable-pcre16,--disable-pcre16) PCRE_CONF_OPTS += $(if $(BR2_PACKAGE_PCRE_32),--enable-pcre32,--disable-pcre32) PCRE_CONF_OPTS += $(if $(BR2_PACKAGE_PCRE_UTF),--enable-utf,--disable-utf) PCRE_CONF_OPTS += $(if $(BR2_PACKAGE_PCRE_UCP),--enable-unicode-properties,--disable-unicode-properties) $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/pcre2/Config.in ================================================ config BR2_PACKAGE_PCRE2 bool "pcre2" help Perl Compatible Regular Expressions. By default, only the 8-bits libpcre2 is built. To get the 16-bits and/or 32-bits variants libpcre2-16/libpcre2-32, use the package sub-options. http://www.pcre.org/ if BR2_PACKAGE_PCRE2 config BR2_PACKAGE_PCRE2_16 bool "16-bit pcre2" help This option builds the 16-bits pcre2 library, i.e 'libpcre2-16' config BR2_PACKAGE_PCRE2_32 bool "32-bit pcre2" help This option builds the 32-bits pcre2 library, i.e 'libpcre2-32' config BR2_PACKAGE_PCRE2_JIT_ARCH_SUPPORTS bool default y if BR2_aarch64 default y if BR2_arm || BR2_armeb default y if BR2_i386 || BR2_x86_64 default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_powerpc default y if BR2_sparc config BR2_PACKAGE_PCRE2_JIT bool "enable JIT support" depends on BR2_PACKAGE_PCRE2_JIT_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS help This option enables JIT support comment "JIT support needs a toolchain w/ threads" depends on BR2_PACKAGE_PCRE2_JIT_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS endif ================================================ FILE: package/pcre2/pcre2.hash ================================================ # Locally calculated after checking pgp signature # https://ftp.pcre.org/pub/pcre/pcre2-10.37.tar.bz2.sig sha256 4d95a96e8b80529893b4562be12648d798b957b1ba1aae39606bbc2ab956d270 pcre2-10.37.tar.bz2 # Locally computed sha256 9c9488256e3612ec5ea40fd12abe7ec55a58f23bd36e6f465116c2b3cbffba02 LICENCE ================================================ FILE: package/pcre2/pcre2.mk ================================================ ################################################################################ # # pcre2 # ################################################################################ PCRE2_VERSION = 10.37 PCRE2_SITE = https://ftp.pcre.org/pub/pcre PCRE2_SOURCE = pcre2-$(PCRE2_VERSION).tar.bz2 PCRE2_LICENSE = BSD-3-Clause PCRE2_LICENSE_FILES = LICENCE PCRE2_CPE_ID_VENDOR = pcre PCRE2_INSTALL_STAGING = YES PCRE2_CONFIG_SCRIPTS = pcre2-config PCRE2_CONF_OPTS += --enable-pcre2-8 PCRE2_CONF_OPTS += $(if $(BR2_PACKAGE_PCRE2_16),--enable-pcre2-16,--disable-pcre2-16) PCRE2_CONF_OPTS += $(if $(BR2_PACKAGE_PCRE2_32),--enable-pcre2-32,--disable-pcre2-32) ifeq ($(BR2_PACKAGE_PCRE2_JIT),y) PCRE2_CONF_OPTS += --enable-jit else PCRE2_CONF_OPTS += --disable-jit endif # disable fork usage if not available ifeq ($(BR2_USE_MMU),) PCRE2_CONF_OPTS += --disable-pcre2grep-callout endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/pcsc-lite/Config.in ================================================ config BR2_PACKAGE_PCSC_LITE bool "pcsc-lite" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS help Middleware to access smart card using SCard API (PC/SC). https://muscle.apdu.fr/ if BR2_PACKAGE_PCSC_LITE config BR2_PACKAGE_PCSC_LITE_FORCE_LIBUSB bool "use libusb" depends on !BR2_PACKAGE_HAS_UDEV depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Select Y if you want to support usb smart card readers. comment "libusb support needs a toolchain w/ gcc >= 4.9" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_PACKAGE_PCSC_LITE_DEBUGATR bool "enable ATR debug messages" help Enable ATR debug messages from pcscd. config BR2_PACKAGE_PCSC_LITE_EMBEDDED bool "enable embedded mode" help Limit RAM and CPU resources by disabling logs. endif comment "pcsc-lite needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/pcsc-lite/pcsc-lite.hash ================================================ # Locally calculated sha256 8a8caac227e0a266015298dda663e81576a0d11d698685101e6aa6c9fdb51c4b pcsc-lite-1.9.4.tar.bz2 sha256 40d4358bb8dc8d30f5365ae6d999b6f820bbc051b292912482f2e4d0ebd837e1 COPYING sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 GPL-3.0.txt ================================================ FILE: package/pcsc-lite/pcsc-lite.mk ================================================ ################################################################################ # # pcsc-lite # ################################################################################ PCSC_LITE_VERSION = 1.9.4 PCSC_LITE_SOURCE = pcsc-lite-$(PCSC_LITE_VERSION).tar.bz2 PCSC_LITE_SITE = https://pcsclite.apdu.fr/files PCSC_LITE_INSTALL_STAGING = YES PCSC_LITE_DEPENDENCIES = host-pkgconf PCSC_LITE_LICENSE = BSD-2-Clause (auth), BSD-3-Clause, GPL-3.0+ (demo, spy, tests), ISC (simclist) PCSC_LITE_LICENSE_FILES = COPYING GPL-3.0.txt PCSC_LITE_SELINUX_MODULES = pcscd # - libudev and libusb are optional # - libudev and libusb can't be used together # - libudev has a priority over libusb ifeq ($(BR2_PACKAGE_HAS_UDEV),y) PCSC_LITE_CONF_OPTS += --enable-libudev --disable-libusb PCSC_LITE_DEPENDENCIES += udev else ifeq ($(BR2_PACKAGE_LIBUSB),y) PCSC_LITE_CONF_OPTS += --enable-libusb --disable-libudev PCSC_LITE_DEPENDENCIES += libusb else PCSC_LITE_CONF_OPTS += --disable-libusb --disable-libudev endif endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) PCSC_LITE_CONF_OPTS += --enable-libsystemd PCSC_LITE_DEPENDENCIES += systemd else PCSC_LITE_CONF_OPTS += --disable-libsystemd endif ifeq ($(PACKAGE_PCSC_LITE_DEBUGATR),y) PCSC_LITE_CONF_OPTS += --enable-debugatr endif ifeq ($(PACKAGE_PCSC_LITE_EMBEDDED),y) PCSC_LITE_CONF_OPTS += --enable-embedded endif $(eval $(autotools-package)) ================================================ FILE: package/pdbg/0001-template-Fix-alignment.patch ================================================ From 0080d0a64da274207bc341491f87863952bb6e3b Mon Sep 17 00:00:00 2001 From: Joel Stanley Date: Tue, 3 Aug 2021 17:28:17 +0930 Subject: [PATCH] template: Fix alignment The assembler complains about unaliged data: ./template.S: Assembler messages: ./template.S:21: Error: misaligned data If the included data is not an aligned size, the the symbols following will be unaligned. We lost the alignment directive in commit 5f3deee1289e ("template: new libfdt requires 8-byte aligned fdt"), so add it back as it was before that commit. Reported by the buildroot autobuilder. Signed-off-by: Joel Stanley --- template.S | 1 + 1 file changed, 1 insertion(+) diff --git a/template.S b/template.S index ecf9bba0656d..df8c064d6bc0 100644 --- a/template.S +++ b/template.S @@ -17,6 +17,7 @@ SYM_START(SYMBOL_PREFIX): .incbin FILENAME SYM_END(SYMBOL_PREFIX): +.align 4 SYM_SIZE(SYMBOL_PREFIX): .long SYM_END(SYMBOL_PREFIX) - SYM_START(SYMBOL_PREFIX) .globl SYM_START(SYMBOL_PREFIX) -- 2.32.0 ================================================ FILE: package/pdbg/Config.in ================================================ config BR2_PACKAGE_PDBG bool "pdbg" help PowerPC FSI Debugger, for low level debugging of a IBM Power8 and Power9 CPU over FSI. pdbg runs on a BMC, which is generally an ARM-powered system monitoring/controlling a host CPU. It can also run on the host. https://github.com/open-power/pdbg ================================================ FILE: package/pdbg/pdbg.hash ================================================ # Locally calculated sha256 87fe68977f72885e46d321da806d30f33a901de817461eb44fa727cd81d1d109 pdbg-3.3.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 COPYING ================================================ FILE: package/pdbg/pdbg.mk ================================================ ################################################################################ # # pdbg # ################################################################################ PDBG_VERSION = 3.3 PDBG_SITE = $(call github,open-power,pdbg,v$(PDBG_VERSION)) PDBG_LICENSE = Apache-2.0 PDBG_LICENSE_FILES = COPYING PDBG_AUTORECONF = YES PDBG_DEPENDENCIES = host-dtc PDBG_MAKE_OPTS = "GIT_SHA1=\"v$(PDBG_VERSION)\"" $(eval $(autotools-package)) ================================================ FILE: package/pdmenu/0001-autoconf-makeinfo.in-link-with-INTLLIBS-if-needed.patch ================================================ From 319cc3859044214961164ed1f219f2f21ca965af Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 30 Aug 2017 23:04:37 +0200 Subject: [PATCH] autoconf/makeinfo.in: link with INTLLIBS if needed gettext may be provided by external libraries, as specified in INTLLIBS, so we must include @INTLLIBS@ in the LIBS variable. Signed-off-by: Thomas Petazzoni --- autoconf/makeinfo.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoconf/makeinfo.in b/autoconf/makeinfo.in index ee3054a..6d58d77 100644 --- a/autoconf/makeinfo.in +++ b/autoconf/makeinfo.in @@ -13,5 +13,5 @@ DEFINES = -DETCDIR=\"${SYSCONFDIR}/\" -DVER=\"${VER}\" @DEFS@ \ $(PROFILE) -D__USE_FIXED_PROTOTYPES__ -D_GNU_SOURCE \ -DLOCALEDIR=\"@datadir@/locale\" CFLAGS = $(DEFINES) @gcc_cflags@ @CFLAGS@ -LIBS = @LIBS@ $(EFENCE) +LIBS = @LIBS@ @INTLLIBS@ $(EFENCE) INSTALL_PROGRAM = ${INSTALL} -- 2.13.5 ================================================ FILE: package/pdmenu/0002-Makefile-autoconf-makeinfo.in-support-build-install-.patch ================================================ From 5368bd0cfd0640f5c0ca766d4fda1b3f71c1b013 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 30 Aug 2017 23:07:26 +0200 Subject: [PATCH] Makefile, autoconf/makeinfo.in: support build/install without gettext The gettext tool msgfmt may not be available to build the .mo files from the .po files, so we handle this case by disabling the build/installation of .po files in such a case. Signed-off-by: Thomas Petazzoni --- Makefile | 17 ++++++++++++++--- autoconf/makeinfo.in | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index a708046..3e83ca3 100644 --- a/Makefile +++ b/Makefile @@ -7,11 +7,18 @@ OBJFILES := $(SRCFILES:%.c=%.o) LANGS = fr ru es MOS := $(addprefix po/, $(addsuffix .mo, $(LANGS))) LOCALEDIR = $(INSTALL_PREFIX)/usr/share/locale - -all: pdmenu $(POTFILE) $(MOS) +TARGETS = pdmenu +INSTALL_TARGETS = install-pdmenu include makeinfo +ifneq ($(MSGFMT),) +TARGETS += $(POTFILE) $(MOS) +INSTALL_TARGETS += install-pos +endif + +all: $(TARGETS) + pdmenu: .dep $(OBJFILES) ${CC} -o pdmenu $(OBJFILES) $(CFLAGS) $(LIBS) @@ -40,7 +47,9 @@ clean: $(MAKE) $(POTFILE) # make sure translators' input is ready rm -f $(OBJFILES) pdmenu $(MOS) -install: all +install: $(INSTALL_TARGETS) + +install-pdmenu: $(INSTALL) -d $(INSTALL_PREFIX)/$(BINDIR) \ $(INSTALL_PREFIX)/$(MANDIR)/man1 \ $(INSTALL_PREFIX)/$(MANDIR)/man5 \ @@ -56,6 +65,8 @@ install: all $(INSTALL) examples/pdmenurc $(INSTALL_PREFIX)/$(SYSCONFDIR)/pdmenurc -m 0644 $(INSTALL) examples/showdir.pl $(INSTALL_PREFIX)/$(DATADIR)/pdmenu cd $(INSTALL_PREFIX)/$(DATADIR)/pdmenu && $(LN_S) -f showdir.pl editdir.pl + +install-pos: for lang in $(LANGS); do \ [ ! -d $(LOCALEDIR)/$$lang/LC_MESSAGES/ ] && mkdir -p $(LOCALEDIR)/$$lang/LC_MESSAGES/; \ install -m 644 po/$$lang.mo $(LOCALEDIR)/$$lang/LC_MESSAGES/pdmenu.mo; \ diff --git a/autoconf/makeinfo.in b/autoconf/makeinfo.in index 6d58d77..069daf8 100644 --- a/autoconf/makeinfo.in +++ b/autoconf/makeinfo.in @@ -8,6 +8,7 @@ DATADIR = @datadir@ CC = @CC@ INSTALL = @INSTALL@ LN_S = @LN_S@ +MSGFMT = @MSGFMT@ VER = @VER@ DEFINES = -DETCDIR=\"${SYSCONFDIR}/\" -DVER=\"${VER}\" @DEFS@ \ $(PROFILE) -D__USE_FIXED_PROTOTYPES__ -D_GNU_SOURCE \ -- 2.13.5 ================================================ FILE: package/pdmenu/Config.in ================================================ config BR2_PACKAGE_PDMENU bool "pdmenu" depends on BR2_USE_MMU # slang select BR2_PACKAGE_SLANG help Pdmenu is a full screen menuing system for Unix. It is designed to be easy to use, and is suitable as a login shell for inexperienced users, or it can just be ran at the command line as a handy menu. Pdmenu features color support and GPM mouse support at the Linux console. It was developed on Linux, and has now been compiled on many other unixes without problems. https://joeyh.name/code/pdmenu/ ================================================ FILE: package/pdmenu/pdmenu.hash ================================================ # Locally calculated sha256 dedd2a4a5719278b5e49041161990c2f20b5909818837542aaca01819f2c14eb pdmenu-1.3.6.tar.gz # License file hash, locally calculated sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 doc/COPYING ================================================ FILE: package/pdmenu/pdmenu.mk ================================================ ################################################################################ # # pdmenu # ################################################################################ PDMENU_VERSION = 1.3.6 PDMENU_SITE = https://git.joeyh.name/index.cgi/pdmenu.git/snapshot PDMENU_LICENSE = GPL-2.0 PDMENU_LICENSE_FILES = doc/COPYING PDMENU_DEPENDENCIES = slang $(TARGET_NLS_DEPENDENCIES) PDMENU_INSTALL_TARGET_OPTS = INSTALL_PREFIX=$(TARGET_DIR) install $(eval $(autotools-package)) ================================================ FILE: package/perl/Config.in ================================================ config BR2_PACKAGE_PERL bool "perl" depends on BR2_USE_MMU # fork() help Larry Wall's Practical Extraction and Report Language An interpreted scripting language, known among some as "Unix's Swiss Army Chainsaw". http://www.perl.org/ if BR2_PACKAGE_PERL config BR2_PACKAGE_PERL_MODULES string "custom module selection" help List of space-separated perl modules (without .pm) to copy to the rootfs. Examples: constant Getopt/Std Time/Local Module dependencies on external libraries are not automatic so check your needs. Leave empty for all modules (as far as the external libraries are available). config BR2_PACKAGE_PERL_THREADS bool "thread support" depends on BR2_TOOLCHAIN_HAS_THREADS help Enable use of threads in Perl scripts WARNING: The use of interpreter-based threads in Perl is officially discouraged. See https://perldoc.perl.org/threads.html#WARNING endif ================================================ FILE: package/perl/perl.hash ================================================ # Hashes from: https://www.cpan.org/src/5.0/perl-5.32.1.tar.xz.{md5,sha1,sha256}.txt md5 7f104064b906ad8c7329ca5e409a32d7 perl-5.32.1.tar.xz sha1 1fb4f710d139da1e1a3e1fa4eaba201fcaa8e18e perl-5.32.1.tar.xz sha256 57cc47c735c8300a8ce2fa0643507b44c4ae59012bfdad0121313db639e02309 perl-5.32.1.tar.xz # Hashes from: https://github.com/arsv/perl-cross/releases/download/1.3.5/perl-cross-1.3.5.hash sha256 91c66f6b2b99fccfd4fee14660b677380b0c98f9456359e91449798c2ad2ef25 perl-cross-1.3.5.tar.gz # Locally calculated sha256 dd90d4f42e4dcadf5a7c09eea0189d93c7b37ae560c91f0f6d5233ed3b9292a2 Artistic sha256 d77d235e41d54594865151f4751e835c5a82322b0e87ace266567c3391a4b912 Copying sha256 df6ad59aefea68676c38325f25f6707f026ddde6c71291b2ca231b6247859907 README ================================================ FILE: package/perl/perl.mk ================================================ ################################################################################ # # perl # ################################################################################ # When updating the version here, also update utils/scancpan PERL_VERSION_MAJOR = 32 PERL_VERSION = 5.$(PERL_VERSION_MAJOR).1 PERL_SITE = https://www.cpan.org/src/5.0 PERL_SOURCE = perl-$(PERL_VERSION).tar.xz PERL_LICENSE = Artistic or GPL-1.0+ PERL_LICENSE_FILES = Artistic Copying README PERL_CPE_ID_VENDOR = perl PERL_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) PERL_INSTALL_STAGING = YES PERL_CROSS_VERSION = 1.3.5 # DO NOT refactor with the github helper (the result is not the same) PERL_CROSS_SITE = https://github.com/arsv/perl-cross/releases/download/$(PERL_CROSS_VERSION) PERL_CROSS_SOURCE = perl-cross-$(PERL_CROSS_VERSION).tar.gz PERL_EXTRA_DOWNLOADS = $(PERL_CROSS_SITE)/$(PERL_CROSS_SOURCE) # We use the perlcross hack to cross-compile perl. It should # be extracted over the perl sources, so we don't define that # as a separate package. Instead, it is downloaded and extracted # together with perl define PERL_CROSS_EXTRACT $(call suitable-extractor,$(PERL_CROSS_SOURCE)) $(PERL_DL_DIR)/$(PERL_CROSS_SOURCE) | \ $(TAR) --strip-components=1 -C $(@D) $(TAR_OPTIONS) - endef PERL_POST_EXTRACT_HOOKS += PERL_CROSS_EXTRACT # Even though perl is not an autotools-package, it uses config.sub and # config.guess. Up-to-date versions of these files may be needed to build perl # on newer host architectures, so we borrow the hook which updates them from the # autotools infrastructure. PERL_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK ifeq ($(BR2_PACKAGE_BERKELEYDB),y) PERL_DEPENDENCIES += berkeleydb endif ifeq ($(BR2_PACKAGE_GDBM),y) PERL_DEPENDENCIES += gdbm endif # We have to override LD, because an external multilib toolchain ld is not # wrapped to provide the required sysroot options. PERL_CONF_OPTS = \ --target=$(GNU_TARGET_NAME) \ --target-tools-prefix=$(TARGET_CROSS) \ --prefix=/usr \ -Dld="$(TARGET_CC)" \ -Dccflags="$(TARGET_CFLAGS)" \ -Dldflags="$(TARGET_LDFLAGS) -lm $(TARGET_NLS_LIBS)" \ -Dmydomain="" \ -Dmyhostname="noname" \ -Dmyuname="Buildroot $(BR2_VERSION_FULL)" \ -Dosname=linux \ -Dosvers=$(LINUX_VERSION) \ -Dperladmin=root ifeq ($(shell expr $(PERL_VERSION_MAJOR) % 2), 1) PERL_CONF_OPTS += -Dusedevel endif ifeq ($(BR2_PACKAGE_PERL_THREADS),y) PERL_CONF_OPTS += -Dusethreads endif ifeq ($(BR2_STATIC_LIBS),y) PERL_CONF_OPTS += --all-static --no-dynaloader endif PERL_MODULES = $(call qstrip,$(BR2_PACKAGE_PERL_MODULES)) ifneq ($(PERL_MODULES),) PERL_CONF_OPTS += --only-mod=$(subst $(space),$(comma),$(PERL_MODULES)) endif define PERL_CONFIGURE_CMDS (cd $(@D); $(TARGET_MAKE_ENV) HOSTCC='$(HOSTCC_NOCCACHE)' \ ./configure $(PERL_CONF_OPTS)) $(SED) 's/UNKNOWN-/Buildroot $(subst /,\/,$(BR2_VERSION_FULL)) /' $(@D)/patchlevel.h endef define PERL_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) all endef define PERL_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) DESTDIR="$(STAGING_DIR)" install.perl install.sym endef define PERL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) DESTDIR="$(TARGET_DIR)" install.perl install.sym endef HOST_PERL_CONF_OPTS = \ -des \ -Dprefix="$(HOST_DIR)" \ -Dcc="$(HOSTCC)" define HOST_PERL_CONFIGURE_CMDS (cd $(@D); $(HOST_MAKE_ENV) HOSTCC='$(HOSTCC_NOCCACHE)' \ ./Configure $(HOST_PERL_CONF_OPTS)) endef define HOST_PERL_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_PERL_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) INSTALL_DEPENDENCE='' install endef $(eval $(generic-package)) $(eval $(host-generic-package)) 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 find $(TARGET_DIR)/usr/lib/perl5/ -name 'extralibs.ld' -print0 | xargs -0 rm -f 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 PERL_TARGET_FINALIZE_HOOKS += PERL_FINALIZE_TARGET ================================================ FILE: package/perl-apache-logformat-compiler/Config.in ================================================ config BR2_PACKAGE_PERL_APACHE_LOGFORMAT_COMPILER bool "perl-apache-logformat-compiler" select BR2_PACKAGE_PERL_POSIX_STRFTIME_COMPILER # runtime help Compile a log format string to perl-code. https://github.com/kazeburo/Apache-LogFormat-Compiler ================================================ FILE: package/perl-apache-logformat-compiler/perl-apache-logformat-compiler.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 a0cdfcd875cb2ee4dc9a2c24381eb55b Apache-LogFormat-Compiler-0.36.tar.gz sha256 94509503ee74ea820183d070c11630ee5bc0fd8c12cb74fae953ed62e4a1ac17 Apache-LogFormat-Compiler-0.36.tar.gz # computed by scancpan sha256 ab941cfc4794afa2113795b167177d1b25cbc77ebadd016e5727effc2cadd96b LICENSE ================================================ FILE: package/perl-apache-logformat-compiler/perl-apache-logformat-compiler.mk ================================================ ################################################################################ # # perl-apache-logformat-compiler # ################################################################################ PERL_APACHE_LOGFORMAT_COMPILER_VERSION = 0.36 PERL_APACHE_LOGFORMAT_COMPILER_SOURCE = Apache-LogFormat-Compiler-$(PERL_APACHE_LOGFORMAT_COMPILER_VERSION).tar.gz PERL_APACHE_LOGFORMAT_COMPILER_SITE = $(BR2_CPAN_MIRROR)/authors/id/K/KA/KAZEBURO PERL_APACHE_LOGFORMAT_COMPILER_DEPENDENCIES = host-perl-module-build-tiny PERL_APACHE_LOGFORMAT_COMPILER_LICENSE = Artistic or GPL-1.0+ PERL_APACHE_LOGFORMAT_COMPILER_LICENSE_FILES = LICENSE PERL_APACHE_LOGFORMAT_COMPILER_DISTNAME = Apache-LogFormat-Compiler $(eval $(perl-package)) ================================================ FILE: package/perl-appconfig/Config.in ================================================ config BR2_PACKAGE_PERL_APPCONFIG bool "perl-appconfig" help AppConfig is a bundle of Perl5 modules for reading configuration files and parsing command line arguments. https://metacpan.org/release/AppConfig ================================================ FILE: package/perl-appconfig/perl-appconfig.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 7747d9241561ed5567d5e134b8648707 AppConfig-1.71.tar.gz sha256 1177027025ecb09ee64d9f9f255615c04db5e14f7536c344af632032eb887b0f AppConfig-1.71.tar.gz # computed by scancpan sha256 0b22dd532e4123a511d14989c4169ed56b7316cf844c29c7897a1638a4616868 LICENSE ================================================ FILE: package/perl-appconfig/perl-appconfig.mk ================================================ ################################################################################ # # perl-appconfig # ################################################################################ PERL_APPCONFIG_VERSION = 1.71 PERL_APPCONFIG_SOURCE = AppConfig-$(PERL_APPCONFIG_VERSION).tar.gz PERL_APPCONFIG_SITE = $(BR2_CPAN_MIRROR)/authors/id/N/NE/NEILB PERL_APPCONFIG_LICENSE = Artistic or GPL-1.0+ PERL_APPCONFIG_LICENSE_FILES = LICENSE PERL_APPCONFIG_DISTNAME = AppConfig $(eval $(perl-package)) ================================================ FILE: package/perl-astro-suntime/Config.in ================================================ config BR2_PACKAGE_PERL_ASTRO_SUNTIME bool "perl-astro-suntime" help A functional module for calculating sunrise/sunset times. https://metacpan.org/release/Astro-SunTime ================================================ FILE: package/perl-astro-suntime/perl-astro-suntime.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 42cb8c94de8a111ed652196925c22a45 Astro-SunTime-0.06.tar.gz sha256 b4a44fddfc055cc42ee67bfd8939354793da7512ea04f30578d42dc6a701112a Astro-SunTime-0.06.tar.gz # computed by scancpan sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE ================================================ FILE: package/perl-astro-suntime/perl-astro-suntime.mk ================================================ ################################################################################ # # perl-astro-suntime # ################################################################################ PERL_ASTRO_SUNTIME_VERSION = 0.06 PERL_ASTRO_SUNTIME_SOURCE = Astro-SunTime-$(PERL_ASTRO_SUNTIME_VERSION).tar.gz PERL_ASTRO_SUNTIME_SITE = $(BR2_CPAN_MIRROR)/authors/id/R/RO/ROBF PERL_ASTRO_SUNTIME_DEPENDENCIES = host-perl-module-build PERL_ASTRO_SUNTIME_LICENSE = GPL-3.0 PERL_ASTRO_SUNTIME_LICENSE_FILES = LICENSE PERL_ASTRO_SUNTIME_DISTNAME = Astro-SunTime $(eval $(perl-package)) ================================================ FILE: package/perl-class-inspector/Config.in ================================================ config BR2_PACKAGE_PERL_CLASS_INSPECTOR bool "perl-class-inspector" help Get information about a class and its structure. https://metacpan.org/pod/Class::Inspector ================================================ FILE: package/perl-class-inspector/perl-class-inspector.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 084c3aeec023639d21ecbaf7d4460b21 Class-Inspector-1.36.tar.gz sha256 cc295d23a472687c24489d58226ead23b9fdc2588e522f0b5f0747741700694e Class-Inspector-1.36.tar.gz # computed by scancpan sha256 401fe9c98bdb5707df71447fb93141f8cb2d85337d45505f5ae50a776a3f6666 LICENSE ================================================ FILE: package/perl-class-inspector/perl-class-inspector.mk ================================================ ################################################################################ # # perl-class-inspector # ################################################################################ PERL_CLASS_INSPECTOR_VERSION = 1.36 PERL_CLASS_INSPECTOR_SOURCE = Class-Inspector-$(PERL_CLASS_INSPECTOR_VERSION).tar.gz PERL_CLASS_INSPECTOR_SITE = $(BR2_CPAN_MIRROR)/authors/id/P/PL/PLICEASE PERL_CLASS_INSPECTOR_LICENSE = Artistic or GPL-1.0+ PERL_CLASS_INSPECTOR_LICENSE_FILES = LICENSE PERL_CLASS_INSPECTOR_DISTNAME = Class-Inspector $(eval $(perl-package)) ================================================ FILE: package/perl-class-load/Config.in ================================================ config BR2_PACKAGE_PERL_CLASS_LOAD bool "perl-class-load" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PERL_DATA_OPTLIST # runtime select BR2_PACKAGE_PERL_MODULE_IMPLEMENTATION # runtime select BR2_PACKAGE_PERL_MODULE_RUNTIME # runtime select BR2_PACKAGE_PERL_PACKAGE_STASH # runtime select BR2_PACKAGE_PERL_TRY_TINY # runtime help A working (require "Class::Name") and more. https://github.com/moose/Class-Load comment "perl-class-load needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-class-load/perl-class-load.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 e4c831c08df592ce8dfee0c7cfc12fd7 Class-Load-0.25.tar.gz sha256 2a48fa779b5297e56156380e8b32637c6c58decb4f4a7f3c7350523e11275f8f Class-Load-0.25.tar.gz # computed by scancpan sha256 dc030e63f20035291b90d09c2c40f296224e85878caf829ea981fc2f10910f9d LICENSE ================================================ FILE: package/perl-class-load/perl-class-load.mk ================================================ ################################################################################ # # perl-class-load # ################################################################################ PERL_CLASS_LOAD_VERSION = 0.25 PERL_CLASS_LOAD_SOURCE = Class-Load-$(PERL_CLASS_LOAD_VERSION).tar.gz PERL_CLASS_LOAD_SITE = $(BR2_CPAN_MIRROR)/authors/id/E/ET/ETHER PERL_CLASS_LOAD_LICENSE = Artistic or GPL-1.0+ PERL_CLASS_LOAD_LICENSE_FILES = LICENSE PERL_CLASS_LOAD_DISTNAME = Class-Load $(eval $(perl-package)) ================================================ FILE: package/perl-class-method-modifiers/Config.in ================================================ config BR2_PACKAGE_PERL_CLASS_METHOD_MODIFIERS bool "perl-class-method-modifiers" help Provides Moose-like method modifiers. https://github.com/moose/Class-Method-Modifiers ================================================ FILE: package/perl-class-method-modifiers/perl-class-method-modifiers.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 b1398e3682aa2e075b913b9f9000b596 Class-Method-Modifiers-2.13.tar.gz sha256 ab5807f71018a842de6b7a4826d6c1f24b8d5b09fcce5005a3309cf6ea40fd63 Class-Method-Modifiers-2.13.tar.gz # computed by scancpan sha256 d17e5cba8d4039f6973d5873f73b0c8949c1cffb338fafe7a57e972767546561 LICENSE ================================================ FILE: package/perl-class-method-modifiers/perl-class-method-modifiers.mk ================================================ ################################################################################ # # perl-class-method-modifiers # ################################################################################ PERL_CLASS_METHOD_MODIFIERS_VERSION = 2.13 PERL_CLASS_METHOD_MODIFIERS_SOURCE = Class-Method-Modifiers-$(PERL_CLASS_METHOD_MODIFIERS_VERSION).tar.gz PERL_CLASS_METHOD_MODIFIERS_SITE = $(BR2_CPAN_MIRROR)/authors/id/E/ET/ETHER PERL_CLASS_METHOD_MODIFIERS_LICENSE = Artistic or GPL-1.0+ PERL_CLASS_METHOD_MODIFIERS_LICENSE_FILES = LICENSE PERL_CLASS_METHOD_MODIFIERS_DISTNAME = Class-Method-Modifiers $(eval $(perl-package)) ================================================ FILE: package/perl-class-std/Config.in ================================================ config BR2_PACKAGE_PERL_CLASS_STD bool "perl-class-std" help Support for creating standard "inside-out" classes. https://metacpan.org/release/Class-Std ================================================ FILE: package/perl-class-std/perl-class-std.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 82bcc56d9769edce671b0bd0e183ec3a Class-Std-0.013.tar.gz sha256 bcd6d82f6c8af0fe069fced7dd165a4795b0b6e92351c7d4e5a1ab9a14fc35c6 Class-Std-0.013.tar.gz # computed by scancpan sha256 b8175bf3750dc54096bf1506c681b4f13262e5b82e40244e9a77730c6b72e4d6 README ================================================ FILE: package/perl-class-std/perl-class-std.mk ================================================ ################################################################################ # # perl-class-std # ################################################################################ PERL_CLASS_STD_VERSION = 0.013 PERL_CLASS_STD_SOURCE = Class-Std-$(PERL_CLASS_STD_VERSION).tar.gz PERL_CLASS_STD_SITE = $(BR2_CPAN_MIRROR)/authors/id/C/CH/CHORNY PERL_CLASS_STD_DEPENDENCIES = host-perl-module-build PERL_CLASS_STD_LICENSE = Artistic or GPL-1.0+ PERL_CLASS_STD_LICENSE_FILES = README PERL_CLASS_STD_DISTNAME = Class-Std $(eval $(perl-package)) ================================================ FILE: package/perl-class-std-fast/Config.in ================================================ config BR2_PACKAGE_PERL_CLASS_STD_FAST bool "perl-class-std-fast" select BR2_PACKAGE_PERL_CLASS_STD # runtime help faster but less secure than Class::Std. https://metacpan.org/release/Class-Std-Fast ================================================ FILE: package/perl-class-std-fast/perl-class-std-fast.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 d06d084cb84f295b0aabf2eee78ef746 Class-Std-Fast-v0.0.8.tar.gz sha256 1bd43763c6a373183097a30e787f5d6713b0db27511c52d533266b59d2cfa780 Class-Std-Fast-v0.0.8.tar.gz # computed by scancpan sha256 aa1ab90c498aee078076e9a1f83e5f14bbfd841509582795ab5a9571428c0c38 README ================================================ FILE: package/perl-class-std-fast/perl-class-std-fast.mk ================================================ ################################################################################ # # perl-class-std-fast # ################################################################################ PERL_CLASS_STD_FAST_VERSION = 0.0.8 PERL_CLASS_STD_FAST_SOURCE = Class-Std-Fast-v$(PERL_CLASS_STD_FAST_VERSION).tar.gz PERL_CLASS_STD_FAST_SITE = $(BR2_CPAN_MIRROR)/authors/id/A/AC/ACID PERL_CLASS_STD_FAST_DEPENDENCIES = host-perl-module-build PERL_CLASS_STD_FAST_LICENSE = Artistic or GPL-1.0+ PERL_CLASS_STD_FAST_LICENSE_FILES = README PERL_CLASS_STD_FAST_DISTNAME = Class-Std-Fast $(eval $(perl-package)) ================================================ FILE: package/perl-convert-asn1/Config.in ================================================ config BR2_PACKAGE_PERL_CONVERT_ASN1 bool "perl-convert-asn1" help Convert between perl data structures and ASN.1 encoded packets. https://metacpan.org/release/Convert-ASN1 ================================================ FILE: package/perl-convert-asn1/perl-convert-asn1.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 1e12b263a5042804bb1c59ddce899876 Convert-ASN1-0.31.tar.gz sha256 6fe4c1ba744c3a8212bf2c9b2703d93530acc153435cf2f93633540b439fbbeb Convert-ASN1-0.31.tar.gz # computed by scancpan sha256 db9e46a932b02253c8bddc05a44a0c1c6979627190afb2251dd76462dd370d79 LICENSE ================================================ FILE: package/perl-convert-asn1/perl-convert-asn1.mk ================================================ ################################################################################ # # perl-convert-asn1 # ################################################################################ PERL_CONVERT_ASN1_VERSION = 0.31 PERL_CONVERT_ASN1_SOURCE = Convert-ASN1-$(PERL_CONVERT_ASN1_VERSION).tar.gz PERL_CONVERT_ASN1_SITE = $(BR2_CPAN_MIRROR)/authors/id/T/TI/TIMLEGGE PERL_CONVERT_ASN1_LICENSE = Artistic or GPL-1.0+ PERL_CONVERT_ASN1_LICENSE_FILES = LICENSE PERL_CONVERT_ASN1_DISTNAME = Convert-ASN1 $(eval $(perl-package)) ================================================ FILE: package/perl-cookie-baker/Config.in ================================================ config BR2_PACKAGE_PERL_COOKIE_BAKER bool "perl-cookie-baker" select BR2_PACKAGE_PERL_URI # runtime help Cookie string generator / parser. https://github.com/kazeburo/Cookie-Baker ================================================ FILE: package/perl-cookie-baker/perl-cookie-baker.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 bc8f95893d6ec3093a62d1957e1908f2 Cookie-Baker-0.11.tar.gz sha256 59275f474e07c0aa3611e3e684b894e7db913333d8214420be63f12ec18cd7ab Cookie-Baker-0.11.tar.gz # computed by scancpan sha256 b4ce94671fa219074d4e91e2268652d6bf9764cebcc7a5e27bfc14897745ca4c LICENSE ================================================ FILE: package/perl-cookie-baker/perl-cookie-baker.mk ================================================ ################################################################################ # # perl-cookie-baker # ################################################################################ PERL_COOKIE_BAKER_VERSION = 0.11 PERL_COOKIE_BAKER_SOURCE = Cookie-Baker-$(PERL_COOKIE_BAKER_VERSION).tar.gz PERL_COOKIE_BAKER_SITE = $(BR2_CPAN_MIRROR)/authors/id/K/KA/KAZEBURO PERL_COOKIE_BAKER_DEPENDENCIES = host-perl-module-build-tiny PERL_COOKIE_BAKER_LICENSE = Artistic or GPL-1.0+ PERL_COOKIE_BAKER_LICENSE_FILES = LICENSE PERL_COOKIE_BAKER_DISTNAME = Cookie-Baker $(eval $(perl-package)) ================================================ FILE: package/perl-crypt-blowfish/Config.in ================================================ config BR2_PACKAGE_PERL_CRYPT_BLOWFISH bool "perl-crypt-blowfish" depends on !BR2_STATIC_LIBS help Perl Blowfish encryption module. https://metacpan.org/release/Crypt-Blowfish comment "perl-crypt-blowfish needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-crypt-blowfish/perl-crypt-blowfish.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 792b43cd4e49d2c2cf4a9f6990ff7d1b Crypt-Blowfish-2.14.tar.gz sha256 46b3431ffb6bf5b9cb359f79565d48407e652ad2b04fdf5ca62a69e7197a67b1 Crypt-Blowfish-2.14.tar.gz # computed by scancpan sha256 d61437443e6912d03677874c7baef242f28119c2c5d8b92b0f3f3660200f98d4 COPYRIGHT ================================================ FILE: package/perl-crypt-blowfish/perl-crypt-blowfish.mk ================================================ ################################################################################ # # perl-crypt-blowfish # ################################################################################ PERL_CRYPT_BLOWFISH_VERSION = 2.14 PERL_CRYPT_BLOWFISH_SOURCE = Crypt-Blowfish-$(PERL_CRYPT_BLOWFISH_VERSION).tar.gz PERL_CRYPT_BLOWFISH_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DP/DPARIS PERL_CRYPT_BLOWFISH_LICENSE = BSD-4-Clause-like PERL_CRYPT_BLOWFISH_LICENSE_FILES = COPYRIGHT PERL_CRYPT_BLOWFISH_DISTNAME = Crypt-Blowfish $(eval $(perl-package)) ================================================ FILE: package/perl-crypt-cbc/Config.in ================================================ config BR2_PACKAGE_PERL_CRYPT_CBC bool "perl-crypt-cbc" help Encrypt Data with Cipher Block Chaining Mode. https://metacpan.org/release/Crypt-CBC ================================================ FILE: package/perl-crypt-cbc/perl-crypt-cbc.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 3db5117d60df67e3b400fe367e716be0 Crypt-CBC-2.33.tar.gz sha256 6a70de21b6cc7f2b100067e8e188db966e9a8001b5db6fa976e7cb5b294ae645 Crypt-CBC-2.33.tar.gz # locally computed sha256 9548d0beb746167270df647aa97a3e47b957adb4ec103c2cfb8f54b0005f99c7 CBC.pm ================================================ FILE: package/perl-crypt-cbc/perl-crypt-cbc.mk ================================================ ################################################################################ # # perl-crypt-cbc # ################################################################################ PERL_CRYPT_CBC_VERSION = 2.33 PERL_CRYPT_CBC_SOURCE = Crypt-CBC-$(PERL_CRYPT_CBC_VERSION).tar.gz PERL_CRYPT_CBC_SITE = $(BR2_CPAN_MIRROR)/authors/id/L/LD/LDS PERL_CRYPT_CBC_LICENSE = Artistic PERL_CRYPT_CBC_LICENSE_FILES = CBC.pm PERL_CRYPT_CBC_DISTNAME = Crypt-CBC $(eval $(perl-package)) ================================================ FILE: package/perl-crypt-openssl-aes/Config.in ================================================ config BR2_PACKAGE_PERL_CRYPT_OPENSSL_AES bool "perl-crypt-openssl-aes" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_OPENSSL help A Perl wrapper around OpenSSL's AES library. https://metacpan.org/release/Crypt-OpenSSL-AES comment "perl-crypt-openssl-aes needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-crypt-openssl-aes/perl-crypt-openssl-aes.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 269db65cbf580c3174471a2cbc9a9d95 Crypt-OpenSSL-AES-0.02.tar.gz sha256 b66fab514edf97fc32f58da257582704a210c2b35e297d5c31b7fa2ffd08e908 Crypt-OpenSSL-AES-0.02.tar.gz # computed by scancpan sha256 a60b8c187cc5d90f7a43adc6be3c127abaa4c739e1e7fdcff16be358533d037f README ================================================ FILE: package/perl-crypt-openssl-aes/perl-crypt-openssl-aes.mk ================================================ ################################################################################ # # perl-crypt-openssl-aes # ################################################################################ PERL_CRYPT_OPENSSL_AES_VERSION = 0.02 PERL_CRYPT_OPENSSL_AES_SOURCE = Crypt-OpenSSL-AES-$(PERL_CRYPT_OPENSSL_AES_VERSION).tar.gz PERL_CRYPT_OPENSSL_AES_SITE = $(BR2_CPAN_MIRROR)/authors/id/T/TT/TTAR PERL_CRYPT_OPENSSL_AES_LICENSE = Artistic or GPL-1.0+ PERL_CRYPT_OPENSSL_AES_LICENSE_FILES = README PERL_CRYPT_OPENSSL_AES_DISTNAME = Crypt-OpenSSL-AES PERL_CRYPT_OPENSSL_AES_DEPENDENCIES = openssl $(eval $(perl-package)) ================================================ FILE: package/perl-crypt-openssl-guess/perl-crypt-openssl-guess.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 9e86baf96828a38c967003a5e66f0c39 Crypt-OpenSSL-Guess-0.12.tar.gz sha256 0a18d18768cf42b49b15c9dea626199dc74346bbbc76acd3d817b9c1d2bd471d Crypt-OpenSSL-Guess-0.12.tar.gz # computed by scancpan sha256 5c739f181ce7aa31d739277996ff230067dad39332e5597c0dffd36e5d784072 LICENSE ================================================ FILE: package/perl-crypt-openssl-guess/perl-crypt-openssl-guess.mk ================================================ ################################################################################ # # perl-crypt-openssl-guess # ################################################################################ PERL_CRYPT_OPENSSL_GUESS_VERSION = 0.12 PERL_CRYPT_OPENSSL_GUESS_SOURCE = Crypt-OpenSSL-Guess-$(PERL_CRYPT_OPENSSL_GUESS_VERSION).tar.gz PERL_CRYPT_OPENSSL_GUESS_SITE = $(BR2_CPAN_MIRROR)/authors/id/A/AK/AKIYM PERL_CRYPT_OPENSSL_GUESS_LICENSE = Artistic or GPL-1.0+ PERL_CRYPT_OPENSSL_GUESS_LICENSE_FILES = LICENSE PERL_CRYPT_OPENSSL_GUESS_DISTNAME = Crypt-OpenSSL-Guess $(eval $(host-perl-package)) ================================================ FILE: package/perl-crypt-openssl-random/Config.in ================================================ config BR2_PACKAGE_PERL_CRYPT_OPENSSL_RANDOM bool "perl-crypt-openssl-random" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_OPENSSL help OpenSSL/LibreSSL pseudo-random number generator access. https://metacpan.org/release/Crypt-OpenSSL-Random comment "perl-crypt-openssl-random needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-crypt-openssl-random/perl-crypt-openssl-random.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 bcde8d5a822c91376deda3c4f0c75fbe Crypt-OpenSSL-Random-0.15.tar.gz sha256 f0876faa1ba3111e39b86aa730c603211eff2905e460c72a57b61e8cf475cef4 Crypt-OpenSSL-Random-0.15.tar.gz # computed by scancpan sha256 fdaba2134145d3e252c5930180b2bcb13b5367ad5a8713d6868f014cd25c496f LICENSE ================================================ FILE: package/perl-crypt-openssl-random/perl-crypt-openssl-random.mk ================================================ ################################################################################ # # perl-crypt-openssl-random # ################################################################################ PERL_CRYPT_OPENSSL_RANDOM_VERSION = 0.15 PERL_CRYPT_OPENSSL_RANDOM_SOURCE = Crypt-OpenSSL-Random-$(PERL_CRYPT_OPENSSL_RANDOM_VERSION).tar.gz PERL_CRYPT_OPENSSL_RANDOM_SITE = $(BR2_CPAN_MIRROR)/authors/id/R/RU/RURBAN PERL_CRYPT_OPENSSL_RANDOM_DEPENDENCIES = \ host-perl-crypt-openssl-guess \ openssl PERL_CRYPT_OPENSSL_RANDOM_LICENSE = Artistic or GPL-1.0+ PERL_CRYPT_OPENSSL_RANDOM_LICENSE_FILES = LICENSE PERL_CRYPT_OPENSSL_RANDOM_DISTNAME = Crypt-OpenSSL-Random # Try as hard as possible to remedy to the brain-damage their build-system # suffers from: don't search for openssl, they pick the host-system one. PERL_CRYPT_OPENSSL_RANDOM_CONF_ENV = OPENSSL_PREFIX=$(STAGING_DIR)/usr $(eval $(perl-package)) ================================================ FILE: package/perl-crypt-openssl-rsa/Config.in ================================================ config BR2_PACKAGE_PERL_CRYPT_OPENSSL_RSA bool "perl-crypt-openssl-rsa" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_PERL_CRYPT_OPENSSL_RANDOM # runtime select BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160 if BR2_PACKAGE_LIBOPENSSL help RSA encoding and decoding, using the openSSL libraries. http://github.com/toddr/Crypt-OpenSSL-RSA comment "perl-crypt-openssl-rsa needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-crypt-openssl-rsa/perl-crypt-openssl-rsa.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 d33681e19d2094df7c26bc7a4509265e Crypt-OpenSSL-RSA-0.31.tar.gz sha256 4173403ad4cf76732192099f833fbfbf3cd8104e0246b3844187ae384d2c5436 Crypt-OpenSSL-RSA-0.31.tar.gz # computed by scancpan sha256 8a693ad3f52daeeb5ac5deceb1e1109c9c87095ed5ba6506d6d5c106e4066f5a LICENSE ================================================ FILE: package/perl-crypt-openssl-rsa/perl-crypt-openssl-rsa.mk ================================================ ################################################################################ # # perl-crypt-openssl-rsa # ################################################################################ PERL_CRYPT_OPENSSL_RSA_VERSION = 0.31 PERL_CRYPT_OPENSSL_RSA_SOURCE = Crypt-OpenSSL-RSA-$(PERL_CRYPT_OPENSSL_RSA_VERSION).tar.gz PERL_CRYPT_OPENSSL_RSA_SITE = $(BR2_CPAN_MIRROR)/authors/id/T/TO/TODDR PERL_CRYPT_OPENSSL_RSA_DEPENDENCIES = \ host-perl-crypt-openssl-guess \ perl-crypt-openssl-random \ openssl PERL_CRYPT_OPENSSL_RSA_LICENSE = Artistic or GPL-1.0+ PERL_CRYPT_OPENSSL_RSA_LICENSE_FILES = LICENSE PERL_CRYPT_OPENSSL_RSA_DISTNAME = Crypt-OpenSSL-RSA # Try as hard as possible to remedy to the brain-damage their build-system # suffers from: don't search for openssl, they pick the host-system one. PERL_CRYPT_OPENSSL_RSA_CONF_ENV = OPENSSL_PREFIX=$(STAGING_DIR)/usr $(eval $(perl-package)) ================================================ FILE: package/perl-data-dump/Config.in ================================================ config BR2_PACKAGE_PERL_DATA_DUMP bool "perl-data-dump" help Pretty printing of data structures. https://metacpan.org/release/Data-Dump ================================================ FILE: package/perl-data-dump/perl-data-dump.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 9bd7131ef0441e1e0e001bf85e9fae31 Data-Dump-1.25.tar.gz sha256 a4aa6e0ddbf39d5ad49bddfe0f89d9da864e3bc00f627125d1bc580472f53fbd Data-Dump-1.25.tar.gz # computed by scancpan sha256 8bdd655ceab54bbeb1105a101f0412ec764098abf09b4e92bc430d56befa10cb README.md ================================================ FILE: package/perl-data-dump/perl-data-dump.mk ================================================ ################################################################################ # # perl-data-dump # ################################################################################ PERL_DATA_DUMP_VERSION = 1.25 PERL_DATA_DUMP_SOURCE = Data-Dump-$(PERL_DATA_DUMP_VERSION).tar.gz PERL_DATA_DUMP_SITE = $(BR2_CPAN_MIRROR)/authors/id/G/GA/GARU PERL_DATA_DUMP_LICENSE = Artistic or GPL-1.0+ PERL_DATA_DUMP_LICENSE_FILES = README.md PERL_DATA_DUMP_DISTNAME = Data-Dump $(eval $(perl-package)) ================================================ FILE: package/perl-data-optlist/Config.in ================================================ config BR2_PACKAGE_PERL_DATA_OPTLIST bool "perl-data-optlist" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PERL_PARAMS_UTIL # runtime select BR2_PACKAGE_PERL_SUB_INSTALL # runtime help parse and validate simple name/value option pairs. https://github.com/rjbs/Data-OptList comment "perl-data-optlist needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-data-optlist/perl-data-optlist.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 3b2cdb7846391f9acaf4e948a9a6b21b Data-OptList-0.112.tar.gz sha256 62c60ccaae88d5339ae36bcc8940b03388cf84adbf27828b1f8b300307103bab Data-OptList-0.112.tar.gz # computed by scancpan sha256 712f3e40537810ba3046533fd71d877f69ab446d5e8e8a1135771804494b8b42 LICENSE ================================================ FILE: package/perl-data-optlist/perl-data-optlist.mk ================================================ ################################################################################ # # perl-data-optlist # ################################################################################ PERL_DATA_OPTLIST_VERSION = 0.112 PERL_DATA_OPTLIST_SOURCE = Data-OptList-$(PERL_DATA_OPTLIST_VERSION).tar.gz PERL_DATA_OPTLIST_SITE = $(BR2_CPAN_MIRROR)/authors/id/R/RJ/RJBS PERL_DATA_OPTLIST_LICENSE = Artistic or GPL-1.0+ PERL_DATA_OPTLIST_LICENSE_FILES = LICENSE PERL_DATA_OPTLIST_DISTNAME = Data-OptList $(eval $(perl-package)) ================================================ FILE: package/perl-data-uuid/Config.in ================================================ config BR2_PACKAGE_PERL_DATA_UUID bool "perl-data-uuid" depends on !BR2_STATIC_LIBS help Globally/Universally Unique Identifiers (GUIDs/UUIDs). https://metacpan.org/release/Data-UUID comment "perl-data-uuid needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-data-uuid/perl-data-uuid.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 13468e0fb65a0b5ce27b8628cb2f0109 Data-UUID-1.226.tar.gz sha256 093d57ffa0d411a94bafafae495697db26f5c9d0277198fe3f7cf2be22996453 Data-UUID-1.226.tar.gz # computed by scancpan sha256 0560c8eea8e1fb8173faa6c2e9b7e9f8728b8ae8250a814709a53c30b778d5fb LICENSE ================================================ FILE: package/perl-data-uuid/perl-data-uuid.mk ================================================ ################################################################################ # # perl-data-uuid # ################################################################################ PERL_DATA_UUID_VERSION = 1.226 PERL_DATA_UUID_SOURCE = Data-UUID-$(PERL_DATA_UUID_VERSION).tar.gz PERL_DATA_UUID_SITE = $(BR2_CPAN_MIRROR)/authors/id/R/RJ/RJBS # The license is documented at # https://fedoraproject.org/wiki/Licensing:MIT#HP_Variant as the "HP # Variant" of the MIT license. There is no official SPDX tag for this # license, but the other MIT variants are prefixed with "MIT-", so we # do the same here. PERL_DATA_UUID_LICENSE = MIT-HP PERL_DATA_UUID_LICENSE_FILES = LICENSE PERL_DATA_UUID_DISTNAME = Data-UUID $(eval $(perl-package)) ================================================ FILE: package/perl-date-manip/Config.in ================================================ config BR2_PACKAGE_PERL_DATE_MANIP bool "perl-date-manip" help Date manipulation routines. https://metacpan.org/release/Date-Manip ================================================ FILE: package/perl-date-manip/perl-date-manip.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 ce3447409d83d16e6dd7bea0a18f24b4 Date-Manip-6.85.tar.gz sha256 1662393943b7c588478ea9d975200d825f500d26fe9996f2bf7f829cfaa5ccdc Date-Manip-6.85.tar.gz # computed by scancpan sha256 8ba2a138654f8b59b7e1e3ad0d4c81918b9148ff95078b172ccbb45fa241431d LICENSE ================================================ FILE: package/perl-date-manip/perl-date-manip.mk ================================================ ################################################################################ # # perl-date-manip # ################################################################################ PERL_DATE_MANIP_VERSION = 6.85 PERL_DATE_MANIP_SOURCE = Date-Manip-$(PERL_DATE_MANIP_VERSION).tar.gz PERL_DATE_MANIP_SITE = $(BR2_CPAN_MIRROR)/authors/id/S/SB/SBECK PERL_DATE_MANIP_LICENSE = Artistic or GPL-1.0+ PERL_DATE_MANIP_LICENSE_FILES = LICENSE PERL_DATE_MANIP_DISTNAME = Date-Manip $(eval $(perl-package)) ================================================ FILE: package/perl-datetime-tiny/Config.in ================================================ config BR2_PACKAGE_PERL_DATETIME_TINY bool "perl-datetime-tiny" help A date object, with as little code as possible. https://github.com/dagolden/DateTime-Tiny ================================================ FILE: package/perl-datetime-tiny/perl-datetime-tiny.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 5ac2924652edb0cf5fda7c9d52162b3f DateTime-Tiny-1.07.tar.gz sha256 83568a22838cb518fbeb9e060460ec7f59d5a0b0a1cc06562954c3674d7cf7e4 DateTime-Tiny-1.07.tar.gz # computed by scancpan sha256 21cda7a55a8d4b32a43c654f0d4d4a1587096b35bf2a93ea12a2e3a8c2c0b88f LICENSE ================================================ FILE: package/perl-datetime-tiny/perl-datetime-tiny.mk ================================================ ################################################################################ # # perl-datetime-tiny # ################################################################################ PERL_DATETIME_TINY_VERSION = 1.07 PERL_DATETIME_TINY_SOURCE = DateTime-Tiny-$(PERL_DATETIME_TINY_VERSION).tar.gz PERL_DATETIME_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DA/DAGOLDEN PERL_DATETIME_TINY_LICENSE = Artistic or GPL-1.0+ PERL_DATETIME_TINY_LICENSE_FILES = LICENSE PERL_DATETIME_TINY_DISTNAME = DateTime-Tiny $(eval $(perl-package)) ================================================ FILE: package/perl-dbd-mysql/Config.in ================================================ config BR2_PACKAGE_PERL_DBD_MYSQL bool "perl-dbd-mysql" depends on !BR2_STATIC_LIBS depends on BR2_INSTALL_LIBSTDCPP # mysql depends on BR2_USE_MMU # mysql depends on BR2_TOOLCHAIN_HAS_THREADS # mysql select BR2_PACKAGE_MYSQL select BR2_PACKAGE_PERL_DBI # runtime help A MySQL driver for the Perl5 Database Interface (DBI). http://dbi.perl.org/ comment "perl-dbd-mysql needs a toolchain w/ dynamic library, C++, threads" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/perl-dbd-mysql/perl-dbd-mysql.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 bdf4f4d899b8af29ebd8ebfb7438d05f DBD-mysql-4.046.tar.gz sha256 6165652ec959d05b97f5413fa3dff014b78a44cf6de21ae87283b28378daf1f7 DBD-mysql-4.046.tar.gz # computed by scancpan sha256 7a9ba29702b957805cfa8aa63bca43175625824263232dbade0010d385ab888c LICENSE ================================================ FILE: package/perl-dbd-mysql/perl-dbd-mysql.mk ================================================ ################################################################################ # # perl-dbd-mysql # ################################################################################ PERL_DBD_MYSQL_VERSION = 4.046 PERL_DBD_MYSQL_SOURCE = DBD-mysql-$(PERL_DBD_MYSQL_VERSION).tar.gz PERL_DBD_MYSQL_SITE = $(BR2_CPAN_MIRROR)/authors/id/C/CA/CAPTTOFU PERL_DBD_MYSQL_DEPENDENCIES = \ host-perl-dbi \ mysql PERL_DBD_MYSQL_LICENSE = Artistic or GPL-1.0+ PERL_DBD_MYSQL_LICENSE_FILES = LICENSE PERL_DBD_MYSQL_DISTNAME = DBD-mysql PERL_DBD_MYSQL_CONF_OPTS = --mysql_config=$(STAGING_DIR)/usr/bin/mysql_config $(eval $(perl-package)) ================================================ FILE: package/perl-dbi/Config.in ================================================ config BR2_PACKAGE_PERL_DBI bool "perl-dbi" depends on !BR2_STATIC_LIBS help Database independent interface for Perl. http://dbi.perl.org/ comment "perl-dbi needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-dbi/perl-dbi.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 352f80b1e23769c116082a90905d7398 DBI-1.643.tar.gz sha256 8a2b993db560a2c373c174ee976a51027dd780ec766ae17620c20393d2e836fa DBI-1.643.tar.gz # computed by scancpan sha256 33453c8b0d8d474a42669ac702a13c20f39c91a34b3df4e6ca778fc2f0f711c7 LICENSE ================================================ FILE: package/perl-dbi/perl-dbi.mk ================================================ ################################################################################ # # perl-dbi # ################################################################################ PERL_DBI_VERSION = 1.643 PERL_DBI_SOURCE = DBI-$(PERL_DBI_VERSION).tar.gz PERL_DBI_SITE = $(BR2_CPAN_MIRROR)/authors/id/T/TI/TIMB PERL_DBI_LICENSE = Artistic or GPL-1.0+ PERL_DBI_LICENSE_FILES = LICENSE PERL_DBI_DISTNAME = DBI $(eval $(perl-package)) $(eval $(host-perl-package)) ================================================ FILE: package/perl-devel-cycle/Config.in ================================================ config BR2_PACKAGE_PERL_DEVEL_CYCLE bool "perl-devel-cycle" help Find memory cycles in objects. https://metacpan.org/release/Devel-Cycle ================================================ FILE: package/perl-devel-cycle/perl-devel-cycle.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 3d9a963da87b17398fab9acbef63f277 Devel-Cycle-1.12.tar.gz sha256 fd3365c4d898b2b2bddbb78a46d507a18cca8490a290199547dab7f1e7390bc2 Devel-Cycle-1.12.tar.gz # computed by scancpan sha256 e47dfab3e7e9d20fe6313169ead2736ab97f1388003eee033dd934278649034d README ================================================ FILE: package/perl-devel-cycle/perl-devel-cycle.mk ================================================ ################################################################################ # # perl-devel-cycle # ################################################################################ PERL_DEVEL_CYCLE_VERSION = 1.12 PERL_DEVEL_CYCLE_SOURCE = Devel-Cycle-$(PERL_DEVEL_CYCLE_VERSION).tar.gz PERL_DEVEL_CYCLE_SITE = $(BR2_CPAN_MIRROR)/authors/id/L/LD/LDS PERL_DEVEL_CYCLE_LICENSE = Artistic or GPL-1.0+ PERL_DEVEL_CYCLE_LICENSE_FILES = README PERL_DEVEL_CYCLE_DISTNAME = Devel-Cycle $(eval $(perl-package)) ================================================ FILE: package/perl-devel-globaldestruction/Config.in ================================================ config BR2_PACKAGE_PERL_DEVEL_GLOBALDESTRUCTION bool "perl-devel-globaldestruction" select BR2_PACKAGE_PERL_SUB_EXPORTER_PROGRESSIVE # runtime help Provides function returning the equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls. https://metacpan.org/release/Devel-GlobalDestruction ================================================ FILE: package/perl-devel-globaldestruction/perl-devel-globaldestruction.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 24221ba322cf2dc46a1fc99b53e2380b Devel-GlobalDestruction-0.14.tar.gz sha256 34b8a5f29991311468fe6913cadaba75fd5d2b0b3ee3bb41fe5b53efab9154ab Devel-GlobalDestruction-0.14.tar.gz # computed by scancpan sha256 f7adbd1db623233e220f9157521a620dbae4918ae7088845aa61e87b7f62bb23 README ================================================ FILE: package/perl-devel-globaldestruction/perl-devel-globaldestruction.mk ================================================ ################################################################################ # # perl-devel-globaldestruction # ################################################################################ PERL_DEVEL_GLOBALDESTRUCTION_VERSION = 0.14 PERL_DEVEL_GLOBALDESTRUCTION_SOURCE = Devel-GlobalDestruction-$(PERL_DEVEL_GLOBALDESTRUCTION_VERSION).tar.gz PERL_DEVEL_GLOBALDESTRUCTION_SITE = $(BR2_CPAN_MIRROR)/authors/id/H/HA/HAARG PERL_DEVEL_GLOBALDESTRUCTION_LICENSE = Artistic or GPL-1.0+ PERL_DEVEL_GLOBALDESTRUCTION_LICENSE_FILES = README PERL_DEVEL_GLOBALDESTRUCTION_DISTNAME = Devel-GlobalDestruction $(eval $(perl-package)) ================================================ FILE: package/perl-devel-size/Config.in ================================================ config BR2_PACKAGE_PERL_DEVEL_SIZE bool "perl-devel-size" depends on !BR2_STATIC_LIBS help Perl extension for finding the memory usage of Perl variables. https://metacpan.org/release/Devel-Size comment "perl-devel-size needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-devel-size/perl-devel-size.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 0b5335d69402c75d5ab9978027ae2f66 Devel-Size-0.83.tar.gz sha256 757a67e0aa59ae103ea5ca092cbecc025644ebdc326731688ffab6f8823ef4b3 Devel-Size-0.83.tar.gz # computed by scancpan sha256 fca4ebe3a1f329aa33a4d259c0a5b136a15a40b987c60c2dd6f1007bb01a1513 README ================================================ FILE: package/perl-devel-size/perl-devel-size.mk ================================================ ################################################################################ # # perl-devel-size # ################################################################################ PERL_DEVEL_SIZE_VERSION = 0.83 PERL_DEVEL_SIZE_SOURCE = Devel-Size-$(PERL_DEVEL_SIZE_VERSION).tar.gz PERL_DEVEL_SIZE_SITE = $(BR2_CPAN_MIRROR)/authors/id/N/NW/NWCLARK PERL_DEVEL_SIZE_LICENSE = Artistic or GPL-1.0+ PERL_DEVEL_SIZE_LICENSE_FILES = README PERL_DEVEL_SIZE_DISTNAME = Devel-Size $(eval $(perl-package)) ================================================ FILE: package/perl-devel-stacktrace/Config.in ================================================ config BR2_PACKAGE_PERL_DEVEL_STACKTRACE bool "perl-devel-stacktrace" help An object representing a stack trace. http://metacpan.org/release/Devel-StackTrace ================================================ FILE: package/perl-devel-stacktrace/perl-devel-stacktrace.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 a5b09f7be7f2b10b525a9740676906d8 Devel-StackTrace-2.04.tar.gz sha256 cd3c03ed547d3d42c61fa5814c98296139392e7971c092e09a431f2c9f5d6855 Devel-StackTrace-2.04.tar.gz # computed by scancpan sha256 dbd3162d261db5b40cac4d85afba619ec6a196398003c57b85c2333e7ef4c393 LICENSE ================================================ FILE: package/perl-devel-stacktrace/perl-devel-stacktrace.mk ================================================ ################################################################################ # # perl-devel-stacktrace # ################################################################################ PERL_DEVEL_STACKTRACE_VERSION = 2.04 PERL_DEVEL_STACKTRACE_SOURCE = Devel-StackTrace-$(PERL_DEVEL_STACKTRACE_VERSION).tar.gz PERL_DEVEL_STACKTRACE_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DR/DROLSKY PERL_DEVEL_STACKTRACE_LICENSE = Artistic-2.0 PERL_DEVEL_STACKTRACE_LICENSE_FILES = LICENSE PERL_DEVEL_STACKTRACE_DISTNAME = Devel-StackTrace $(eval $(perl-package)) ================================================ FILE: package/perl-devel-stacktrace-ashtml/Config.in ================================================ config BR2_PACKAGE_PERL_DEVEL_STACKTRACE_ASHTML bool "perl-devel-stacktrace-ashtml" select BR2_PACKAGE_PERL_DEVEL_STACKTRACE # runtime help Displays stack trace in HTML. https://github.com/miyagawa/Devel-StackTrace-AsHTML ================================================ FILE: package/perl-devel-stacktrace-ashtml/perl-devel-stacktrace-ashtml.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 4ec8bd92e4a765a7cabf402db9640412 Devel-StackTrace-AsHTML-0.15.tar.gz sha256 6283dbe2197e2f20009cc4b449997742169cdd951bfc44cbc6e62c2a962d3147 Devel-StackTrace-AsHTML-0.15.tar.gz # computed by scancpan sha256 ffecf60c52b85d56c928f5eac889b5044243c3907b810ef640c9f02fbce567ac LICENSE ================================================ FILE: package/perl-devel-stacktrace-ashtml/perl-devel-stacktrace-ashtml.mk ================================================ ################################################################################ # # perl-devel-stacktrace-ashtml # ################################################################################ PERL_DEVEL_STACKTRACE_ASHTML_VERSION = 0.15 PERL_DEVEL_STACKTRACE_ASHTML_SOURCE = Devel-StackTrace-AsHTML-$(PERL_DEVEL_STACKTRACE_ASHTML_VERSION).tar.gz PERL_DEVEL_STACKTRACE_ASHTML_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MI/MIYAGAWA PERL_DEVEL_STACKTRACE_ASHTML_LICENSE = Artistic or GPL-1.0+ PERL_DEVEL_STACKTRACE_ASHTML_LICENSE_FILES = LICENSE PERL_DEVEL_STACKTRACE_ASHTML_DISTNAME = Devel-StackTrace-AsHTML $(eval $(perl-package)) ================================================ FILE: package/perl-device-serialport/Config.in ================================================ config BR2_PACKAGE_PERL_DEVICE_SERIALPORT bool "perl-device-serialport" depends on !BR2_STATIC_LIBS help Linux/POSIX emulation of Win32::SerialPort functions. https://metacpan.org/release/Device-SerialPort comment "perl-device-serialport needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-device-serialport/perl-device-serialport.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 82c698151f934eb28c65d1838cee7d9e Device-SerialPort-1.04.tar.gz sha256 d392567cb39b4ea606c0e0acafd8ed72320311b995336ece5fcefcf9b150e9d7 Device-SerialPort-1.04.tar.gz # computed by scancpan sha256 59432e84eca65c10c4b627f8af0b00833685856b68242b816aea2a38283a124c README ================================================ FILE: package/perl-device-serialport/perl-device-serialport.mk ================================================ ################################################################################ # # perl-device-serialport # ################################################################################ PERL_DEVICE_SERIALPORT_VERSION = 1.04 PERL_DEVICE_SERIALPORT_SOURCE = Device-SerialPort-$(PERL_DEVICE_SERIALPORT_VERSION).tar.gz PERL_DEVICE_SERIALPORT_SITE = $(BR2_CPAN_MIRROR)/authors/id/C/CO/COOK PERL_DEVICE_SERIALPORT_LICENSE = Artistic or GPL-1.0+ PERL_DEVICE_SERIALPORT_LICENSE_FILES = README PERL_DEVICE_SERIALPORT_DISTNAME = Device-SerialPort $(eval $(perl-package)) ================================================ FILE: package/perl-digest-hmac/Config.in ================================================ config BR2_PACKAGE_PERL_DIGEST_HMAC bool "perl-digest-hmac" help Keyed-Hashing for Message Authentication. http://metacpan.org/release/Digest-HMAC ================================================ FILE: package/perl-digest-hmac/perl-digest-hmac.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 746a5edffd1485d7500e005730c271c8 Digest-HMAC-1.04.tar.gz sha256 d6bc8156aa275c44d794b7c18f44cdac4a58140245c959e6b19b2c3838b08ed4 Digest-HMAC-1.04.tar.gz # computed by scancpan sha256 cb9ff694d1769f450dd5c400204aa921d2fb3db90fcb21674a39f3725c4255c1 LICENSE ================================================ FILE: package/perl-digest-hmac/perl-digest-hmac.mk ================================================ ################################################################################ # # perl-digest-hmac # ################################################################################ PERL_DIGEST_HMAC_VERSION = 1.04 PERL_DIGEST_HMAC_SOURCE = Digest-HMAC-$(PERL_DIGEST_HMAC_VERSION).tar.gz PERL_DIGEST_HMAC_SITE = $(BR2_CPAN_MIRROR)/authors/id/A/AR/ARODLAND PERL_DIGEST_HMAC_LICENSE = Artistic or GPL-1.0+ PERL_DIGEST_HMAC_LICENSE_FILES = LICENSE PERL_DIGEST_HMAC_DISTNAME = Digest-HMAC $(eval $(perl-package)) ================================================ FILE: package/perl-digest-sha1/Config.in ================================================ config BR2_PACKAGE_PERL_DIGEST_SHA1 bool "perl-digest-sha1" depends on !BR2_STATIC_LIBS help Perl interface to the SHA-1 algorithm. https://metacpan.org/release/Digest-SHA1 comment "perl-digest-sha1 needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-digest-sha1/perl-digest-sha1.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 bd22388f268434f2b24f64e28bf1aa35 Digest-SHA1-2.13.tar.gz sha256 68c1dac2187421f0eb7abf71452a06f190181b8fc4b28ededf5b90296fb943cc Digest-SHA1-2.13.tar.gz # computed by scancpan sha256 805bee77fab9c72b0bfb452bb623b278f1767de62011e1814de2a6f6115439c8 README ================================================ FILE: package/perl-digest-sha1/perl-digest-sha1.mk ================================================ ################################################################################ # # perl-digest-sha1 # ################################################################################ PERL_DIGEST_SHA1_VERSION = 2.13 PERL_DIGEST_SHA1_SOURCE = Digest-SHA1-$(PERL_DIGEST_SHA1_VERSION).tar.gz PERL_DIGEST_SHA1_SITE = $(BR2_CPAN_MIRROR)/authors/id/G/GA/GAAS PERL_DIGEST_SHA1_LICENSE = Artistic or GPL-1.0+ PERL_DIGEST_SHA1_LICENSE_FILES = README PERL_DIGEST_SHA1_DISTNAME = Digest-SHA1 $(eval $(perl-package)) ================================================ FILE: package/perl-dist-checkconflicts/Config.in ================================================ config BR2_PACKAGE_PERL_DIST_CHECKCONFLICTS bool "perl-dist-checkconflicts" select BR2_PACKAGE_PERL_MODULE_RUNTIME # runtime help declare version conflicts for your dist. http://metacpan.org/release/Dist-CheckConflicts ================================================ FILE: package/perl-dist-checkconflicts/perl-dist-checkconflicts.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 c8725a92b9169708b0f63036812070f2 Dist-CheckConflicts-0.11.tar.gz sha256 ea844b9686c94d666d9d444321d764490b2cde2f985c4165b4c2c77665caedc4 Dist-CheckConflicts-0.11.tar.gz # computed by scancpan sha256 b4e0637ed96008ddcbf7e0ddeb73967df3d0b4dc62a6b7fdb86eac37018cb12e LICENSE ================================================ FILE: package/perl-dist-checkconflicts/perl-dist-checkconflicts.mk ================================================ ################################################################################ # # perl-dist-checkconflicts # ################################################################################ PERL_DIST_CHECKCONFLICTS_VERSION = 0.11 PERL_DIST_CHECKCONFLICTS_SOURCE = Dist-CheckConflicts-$(PERL_DIST_CHECKCONFLICTS_VERSION).tar.gz PERL_DIST_CHECKCONFLICTS_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DO/DOY PERL_DIST_CHECKCONFLICTS_LICENSE = Artistic or GPL-1.0+ PERL_DIST_CHECKCONFLICTS_LICENSE_FILES = LICENSE PERL_DIST_CHECKCONFLICTS_DISTNAME = Dist-CheckConflicts $(eval $(perl-package)) ================================================ FILE: package/perl-encode-detect/Config.in ================================================ config BR2_PACKAGE_PERL_ENCODE_DETECT bool "perl-encode-detect" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS help An Encode::Encoding subclass that detects the encoding of data. https://metacpan.org/release/Encode-Detect comment "perl-encode-detect needs a toolchain w/ C++, dynamic library" depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/perl-encode-detect/perl-encode-detect.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 ee9faf55d7105c97b02b8ebe590819c7 Encode-Detect-1.01.tar.gz sha256 834d893aa7db6ce3f158afbd0e432d6ed15a276e0940db0a74be13fd9c4bbbf1 Encode-Detect-1.01.tar.gz # computed by scancpan sha256 53692a2ed6c6a2c6ec9b32dd0b820dfae91e0a1fcdf625ca9ed0bdf8705fcc4f LICENSE ================================================ FILE: package/perl-encode-detect/perl-encode-detect.mk ================================================ ################################################################################ # # perl-encode-detect # ################################################################################ PERL_ENCODE_DETECT_VERSION = 1.01 PERL_ENCODE_DETECT_SOURCE = Encode-Detect-$(PERL_ENCODE_DETECT_VERSION).tar.gz PERL_ENCODE_DETECT_SITE = $(BR2_CPAN_MIRROR)/authors/id/J/JG/JGMYERS PERL_ENCODE_DETECT_DEPENDENCIES = host-perl-module-build PERL_ENCODE_DETECT_LICENSE = MPL-1.1 PERL_ENCODE_DETECT_LICENSE_FILES = LICENSE PERL_ENCODE_DETECT_DISTNAME = Encode-Detect $(eval $(perl-package)) ================================================ FILE: package/perl-encode-locale/Config.in ================================================ config BR2_PACKAGE_PERL_ENCODE_LOCALE bool "perl-encode-locale" help Determine the locale encoding. https://metacpan.org/release/Encode-Locale ================================================ FILE: package/perl-encode-locale/perl-encode-locale.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 fcfdb8e4ee34bcf62aed429b4a23db27 Encode-Locale-1.05.tar.gz sha256 176fa02771f542a4efb1dbc2a4c928e8f4391bf4078473bd6040d8f11adb0ec1 Encode-Locale-1.05.tar.gz # computed by scancpan sha256 edfeacafbed5a0f2c4a2a3db3fb0274a7f210768d01c853c60b7feac841c83c8 README ================================================ FILE: package/perl-encode-locale/perl-encode-locale.mk ================================================ ################################################################################ # # perl-encode-locale # ################################################################################ PERL_ENCODE_LOCALE_VERSION = 1.05 PERL_ENCODE_LOCALE_SOURCE = Encode-Locale-$(PERL_ENCODE_LOCALE_VERSION).tar.gz PERL_ENCODE_LOCALE_SITE = $(BR2_CPAN_MIRROR)/authors/id/G/GA/GAAS PERL_ENCODE_LOCALE_LICENSE = Artistic or GPL-1.0+ PERL_ENCODE_LOCALE_LICENSE_FILES = README PERL_ENCODE_LOCALE_DISTNAME = Encode-Locale $(eval $(perl-package)) ================================================ FILE: package/perl-exporter-tiny/Config.in ================================================ config BR2_PACKAGE_PERL_EXPORTER_TINY bool "perl-exporter-tiny" help an exporter with the features of Sub::Exporter but only core dependencies. https://metacpan.org/release/Exporter-Tiny ================================================ FILE: package/perl-exporter-tiny/perl-exporter-tiny.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 485897322a2514b4d6ca90b2daacb7cd Exporter-Tiny-1.002002.tar.gz sha256 00f0b95716b18157132c6c118ded8ba31392563d19e490433e9a65382e707101 Exporter-Tiny-1.002002.tar.gz # computed by scancpan sha256 f4cb223c8ac37d6ccd0e78b2892ca54a48a6adbe6a271c3c17c0226646297e66 COPYRIGHT sha256 1fb7395e76eabf94c421912d7d0a4f7fa745d49e1acb76b222c21d605b66bd25 LICENSE ================================================ FILE: package/perl-exporter-tiny/perl-exporter-tiny.mk ================================================ ################################################################################ # # perl-exporter-tiny # ################################################################################ PERL_EXPORTER_TINY_VERSION = 1.002002 PERL_EXPORTER_TINY_SOURCE = Exporter-Tiny-$(PERL_EXPORTER_TINY_VERSION).tar.gz PERL_EXPORTER_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/T/TO/TOBYINK PERL_EXPORTER_TINY_LICENSE = Artistic or GPL-1.0+ PERL_EXPORTER_TINY_LICENSE_FILES = COPYRIGHT LICENSE PERL_EXPORTER_TINY_DISTNAME = Exporter-Tiny $(eval $(perl-package)) ================================================ FILE: package/perl-extutils-config/perl-extutils-config.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 565a7b09c7cac5907a25bbe2c959a717 ExtUtils-Config-0.008.tar.gz sha256 ae5104f634650dce8a79b7ed13fb59d67a39c213a6776cfdaa3ee749e62f1a8c ExtUtils-Config-0.008.tar.gz # computed by scancpan sha256 33b39fda54675d4d681764049e27b537cac12213aa6650667abea43662264ddc LICENSE ================================================ FILE: package/perl-extutils-config/perl-extutils-config.mk ================================================ ################################################################################ # # perl-extutils-config # ################################################################################ PERL_EXTUTILS_CONFIG_VERSION = 0.008 PERL_EXTUTILS_CONFIG_SOURCE = ExtUtils-Config-$(PERL_EXTUTILS_CONFIG_VERSION).tar.gz PERL_EXTUTILS_CONFIG_SITE = $(BR2_CPAN_MIRROR)/authors/id/L/LE/LEONT PERL_EXTUTILS_CONFIG_LICENSE = Artistic or GPL-1.0+ PERL_EXTUTILS_CONFIG_LICENSE_FILES = LICENSE PERL_EXTUTILS_CONFIG_DISTNAME = ExtUtils-Config $(eval $(host-perl-package)) ================================================ FILE: package/perl-extutils-helpers/perl-extutils-helpers.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 83b00c1e401321c425ae5db6b2b2fd12 ExtUtils-Helpers-0.026.tar.gz sha256 de901b6790a4557cf4ec908149e035783b125bf115eb9640feb1bc1c24c33416 ExtUtils-Helpers-0.026.tar.gz # computed by scancpan sha256 e5530d0ebc8662df3a970644d867faf12760b1a95ca6e2bf1c5f9af410a418e0 LICENSE ================================================ FILE: package/perl-extutils-helpers/perl-extutils-helpers.mk ================================================ ################################################################################ # # perl-extutils-helpers # ################################################################################ PERL_EXTUTILS_HELPERS_VERSION = 0.026 PERL_EXTUTILS_HELPERS_SOURCE = ExtUtils-Helpers-$(PERL_EXTUTILS_HELPERS_VERSION).tar.gz PERL_EXTUTILS_HELPERS_SITE = $(BR2_CPAN_MIRROR)/authors/id/L/LE/LEONT PERL_EXTUTILS_HELPERS_LICENSE = Artistic or GPL-1.0+ PERL_EXTUTILS_HELPERS_LICENSE_FILES = LICENSE PERL_EXTUTILS_HELPERS_DISTNAME = ExtUtils-Helpers $(eval $(host-perl-package)) ================================================ FILE: package/perl-extutils-installpaths/perl-extutils-installpaths.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 9a8d66aab1ffec98ea260faf03ac612b ExtUtils-InstallPaths-0.012.tar.gz sha256 84735e3037bab1fdffa3c2508567ad412a785c91599db3c12593a50a1dd434ed ExtUtils-InstallPaths-0.012.tar.gz # computed by scancpan sha256 b95d38ac031587625625d92fbd2ee1d5df0d02606057d680e7dcf3598fe629f9 LICENSE ================================================ FILE: package/perl-extutils-installpaths/perl-extutils-installpaths.mk ================================================ ################################################################################ # # perl-extutils-installpaths # ################################################################################ PERL_EXTUTILS_INSTALLPATHS_VERSION = 0.012 PERL_EXTUTILS_INSTALLPATHS_SOURCE = ExtUtils-InstallPaths-$(PERL_EXTUTILS_INSTALLPATHS_VERSION).tar.gz PERL_EXTUTILS_INSTALLPATHS_SITE = $(BR2_CPAN_MIRROR)/authors/id/L/LE/LEONT HOST_PERL_EXTUTILS_INSTALLPATHS_DEPENDENCIES = host-perl-extutils-config PERL_EXTUTILS_INSTALLPATHS_LICENSE = Artistic or GPL-1.0+ PERL_EXTUTILS_INSTALLPATHS_LICENSE_FILES = LICENSE PERL_EXTUTILS_INSTALLPATHS_DISTNAME = ExtUtils-InstallPaths $(eval $(host-perl-package)) ================================================ FILE: package/perl-extutils-pkgconfig/perl-extutils-pkgconfig.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 b86318f2b6ac6af3ee985299e1e38fe5 ExtUtils-PkgConfig-1.16.tar.gz sha256 bbeaced995d7d8d10cfc51a3a5a66da41ceb2bc04fedcab50e10e6300e801c6e ExtUtils-PkgConfig-1.16.tar.gz # computed by scancpan sha256 1ca66d6d9d2e14426825889848f0b5b4d4e153afcd74b8f42a1f2937c3a9973d README ================================================ FILE: package/perl-extutils-pkgconfig/perl-extutils-pkgconfig.mk ================================================ ################################################################################ # # perl-extutils-pkgconfig # ################################################################################ PERL_EXTUTILS_PKGCONFIG_VERSION = 1.16 PERL_EXTUTILS_PKGCONFIG_SOURCE = ExtUtils-PkgConfig-$(PERL_EXTUTILS_PKGCONFIG_VERSION).tar.gz PERL_EXTUTILS_PKGCONFIG_SITE = $(BR2_CPAN_MIRROR)/authors/id/X/XA/XAOC PERL_EXTUTILS_PKGCONFIG_LICENSE = LGPL-2.1 PERL_EXTUTILS_PKGCONFIG_LICENSE_FILES = README PERL_EXTUTILS_PKGCONFIG_DISTNAME = ExtUtils-PkgConfig HOST_PERL_EXTUTILS_PKGCONFIG_DEPENDENCIES = host-pkgconf HOST_PERL_EXTUTILS_PKGCONFIG_CONF_ENV = PATH=$(BR_PATH) $(eval $(host-perl-package)) ================================================ FILE: package/perl-file-listing/Config.in ================================================ config BR2_PACKAGE_PERL_FILE_LISTING bool "perl-file-listing" select BR2_PACKAGE_PERL_HTTP_DATE # runtime help parse directory listing. https://metacpan.org/release/File-Listing ================================================ FILE: package/perl-file-listing/perl-file-listing.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 cf60a79563185391831613178a79b4cd File-Listing-6.14.tar.gz sha256 15b3a4871e23164a36f226381b74d450af41f12cc94985f592a669fcac7b48ff File-Listing-6.14.tar.gz # computed by scancpan sha256 7f0ccec295e6d7d2be1439cedd7caf6cc6247191f4c10ac56d91ee9bc265ba02 LICENSE ================================================ FILE: package/perl-file-listing/perl-file-listing.mk ================================================ ################################################################################ # # perl-file-listing # ################################################################################ PERL_FILE_LISTING_VERSION = 6.14 PERL_FILE_LISTING_SOURCE = File-Listing-$(PERL_FILE_LISTING_VERSION).tar.gz PERL_FILE_LISTING_SITE = $(BR2_CPAN_MIRROR)/authors/id/P/PL/PLICEASE PERL_FILE_LISTING_LICENSE = Artistic or GPL-1.0+ PERL_FILE_LISTING_LICENSE_FILES = LICENSE PERL_FILE_LISTING_DISTNAME = File-Listing $(eval $(perl-package)) ================================================ FILE: package/perl-file-sharedir/Config.in ================================================ config BR2_PACKAGE_PERL_FILE_SHAREDIR bool "perl-file-sharedir" select BR2_PACKAGE_PERL_CLASS_INSPECTOR # runtime help Locate per-dist and per-module shared files. https://metacpan.org/release/File-ShareDir ================================================ FILE: package/perl-file-sharedir/perl-file-sharedir.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 0084f730f4e3d4d89703d92b3ea82f54 File-ShareDir-1.118.tar.gz sha256 3bb2a20ba35df958dc0a4f2306fc05d903d8b8c4de3c8beefce17739d281c958 File-ShareDir-1.118.tar.gz # computed by scancpan sha256 db57983ce0a3bce54900b5a3a3a69e9a593e7b07d0f58dd9f87ac9b016ff4a6b LICENSE ================================================ FILE: package/perl-file-sharedir/perl-file-sharedir.mk ================================================ ################################################################################ # # perl-file-sharedir # ################################################################################ PERL_FILE_SHAREDIR_VERSION = 1.118 PERL_FILE_SHAREDIR_SOURCE = File-ShareDir-$(PERL_FILE_SHAREDIR_VERSION).tar.gz PERL_FILE_SHAREDIR_SITE = $(BR2_CPAN_MIRROR)/authors/id/R/RE/REHSACK PERL_FILE_SHAREDIR_DEPENDENCIES = host-perl-file-sharedir-install PERL_FILE_SHAREDIR_LICENSE = Artistic or GPL-1.0+ PERL_FILE_SHAREDIR_LICENSE_FILES = LICENSE PERL_FILE_SHAREDIR_DISTNAME = File-ShareDir $(eval $(perl-package)) ================================================ FILE: package/perl-file-sharedir-install/perl-file-sharedir-install.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 5eabd44a5d7d84bf2e8e502491226287 File-ShareDir-Install-0.13.tar.gz sha256 45befdf0d95cbefe7c25a1daf293d85f780d6d2576146546e6828aad26e580f9 File-ShareDir-Install-0.13.tar.gz # computed by scancpan sha256 c207ca1c71c16a443d875a78d8aeccfbe550da502cd7fda24819548afb04fb5c LICENSE ================================================ FILE: package/perl-file-sharedir-install/perl-file-sharedir-install.mk ================================================ ################################################################################ # # perl-file-sharedir-install # ################################################################################ PERL_FILE_SHAREDIR_INSTALL_VERSION = 0.13 PERL_FILE_SHAREDIR_INSTALL_SOURCE = File-ShareDir-Install-$(PERL_FILE_SHAREDIR_INSTALL_VERSION).tar.gz PERL_FILE_SHAREDIR_INSTALL_SITE = $(BR2_CPAN_MIRROR)/authors/id/E/ET/ETHER PERL_FILE_SHAREDIR_INSTALL_LICENSE = Artistic or GPL-1.0+ PERL_FILE_SHAREDIR_INSTALL_LICENSE_FILES = LICENSE PERL_FILE_SHAREDIR_INSTALL_DISTNAME = File-ShareDir-Install $(eval $(host-perl-package)) ================================================ FILE: package/perl-file-slurp/Config.in ================================================ config BR2_PACKAGE_PERL_FILE_SLURP bool "perl-file-slurp" help Simple and Efficient Reading/Writing/Modifying of Complete Files. https://metacpan.org/release/File-Slurp ================================================ FILE: package/perl-file-slurp/perl-file-slurp.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 a10ddfcbe153fc8d0076936ee83b98ed File-Slurp-9999.32.tar.gz sha256 4c3c21992a9d42be3a79dd74a3c83d27d38057269d65509a2f555ea0fb2bc5b0 File-Slurp-9999.32.tar.gz # computed by scancpan sha256 d1be945657536c93caf481b9f3c73fd1952ef66388c664e29021ab91d4fe47e8 README.md ================================================ FILE: package/perl-file-slurp/perl-file-slurp.mk ================================================ ################################################################################ # # perl-file-slurp # ################################################################################ PERL_FILE_SLURP_VERSION = 9999.32 PERL_FILE_SLURP_SOURCE = File-Slurp-$(PERL_FILE_SLURP_VERSION).tar.gz PERL_FILE_SLURP_SITE = $(BR2_CPAN_MIRROR)/authors/id/C/CA/CAPOEIRAB PERL_FILE_SLURP_LICENSE = Artistic or GPL-1.0+ PERL_FILE_SLURP_LICENSE_FILES = README.md PERL_FILE_SLURP_DISTNAME = File-Slurp $(eval $(perl-package)) ================================================ FILE: package/perl-file-util/Config.in ================================================ config BR2_PACKAGE_PERL_FILE_UTIL bool "perl-file-util" help Easy, versatile, portable file handling. https://github.com/tommybutler/file-util/wiki ================================================ FILE: package/perl-file-util/perl-file-util.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 093fe77c4658f98375c7f6cc68694948 File-Util-4.201720.tar.gz sha256 d4491021850d5c5cbd702c7e4744858079841d2fa93f1c2d09ddc9a7863608df File-Util-4.201720.tar.gz # computed by scancpan sha256 5f3732812570654ba911e45ec4e5f7353f4b63747ebfc506c543e8fb1ccf797f COPYING sha256 996b77ca668f16a443ed14758fce492bddd9f55fe831ee8353274c89191b8544 LICENSE ================================================ FILE: package/perl-file-util/perl-file-util.mk ================================================ ################################################################################ # # perl-file-util # ################################################################################ PERL_FILE_UTIL_VERSION = 4.201720 PERL_FILE_UTIL_SOURCE = File-Util-$(PERL_FILE_UTIL_VERSION).tar.gz PERL_FILE_UTIL_SITE = $(BR2_CPAN_MIRROR)/authors/id/T/TO/TOMMY PERL_FILE_UTIL_DEPENDENCIES = host-perl-module-build PERL_FILE_UTIL_LICENSE = Artistic or GPL-1.0+ PERL_FILE_UTIL_LICENSE_FILES = COPYING LICENSE PERL_FILE_UTIL_DISTNAME = File-Util HOST_PERL_FILE_UTIL_DEPENDENCIES = host-perl-module-build $(eval $(perl-package)) $(eval $(host-perl-package)) ================================================ FILE: package/perl-filesys-notify-simple/Config.in ================================================ config BR2_PACKAGE_PERL_FILESYS_NOTIFY_SIMPLE bool "perl-filesys-notify-simple" help Simple and dumb file system watcher. https://github.com/miyagawa/Filesys-Notify-Simple ================================================ FILE: package/perl-filesys-notify-simple/perl-filesys-notify-simple.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 4a3ca3098b2455346fe24a66c94d2151 Filesys-Notify-Simple-0.14.tar.gz sha256 1fda712d4ba5e1868159ed35f6f8efbfae9d435d6376f5606d533bcb080555a4 Filesys-Notify-Simple-0.14.tar.gz # computed by scancpan sha256 9a5cceb9fdb0064b57eeca0e7ad2af1e57eff51320a13083fc22930d2a190ed7 LICENSE ================================================ FILE: package/perl-filesys-notify-simple/perl-filesys-notify-simple.mk ================================================ ################################################################################ # # perl-filesys-notify-simple # ################################################################################ PERL_FILESYS_NOTIFY_SIMPLE_VERSION = 0.14 PERL_FILESYS_NOTIFY_SIMPLE_SOURCE = Filesys-Notify-Simple-$(PERL_FILESYS_NOTIFY_SIMPLE_VERSION).tar.gz PERL_FILESYS_NOTIFY_SIMPLE_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MI/MIYAGAWA PERL_FILESYS_NOTIFY_SIMPLE_LICENSE = Artistic or GPL-1.0+ PERL_FILESYS_NOTIFY_SIMPLE_LICENSE_FILES = LICENSE PERL_FILESYS_NOTIFY_SIMPLE_DISTNAME = Filesys-Notify-Simple $(eval $(perl-package)) ================================================ FILE: package/perl-gd/0001-Makefile.PL-fix-cross-compilation-with-gdlib.pc.patch ================================================ From 11dc017e902397c452331425eb6101b3315572fa Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 24 Jan 2021 10:59:31 +0100 Subject: [PATCH] Makefile.PL: fix cross-compilation with gdlib.pc Cross-compilation will fail if gdlib.pc does not contain any cflags. Indeed, if cflags is empty, Makefile.PL will use the default value for INC (i.e. -I/usr/include -I/usr/include/gd) It should be noted that gdlib-config has been dropped from gd since version 2.3.0 Signed-off-by: Fabrice Fontaine [Upstream status: probably not upstreamable] --- Makefile.PL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.PL b/Makefile.PL index 25f2f93..7da3651 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -47,7 +47,7 @@ If you want to try to compile anyway, please rerun this script with the option - END } -@INC = qw(-I/usr/include -I/usr/include/gd) unless @INC; +#@INC = qw(-I/usr/include -I/usr/include/gd) unless @INC; @LIBPATH = qw(-L/usr/lib/X11 -L/usr/X11R6/lib -L/usr/X11/lib -L/usr/lib) unless @LIBPATH; @LIBS = qw(-lgd) unless @LIBS; -- 2.29.2 ================================================ FILE: package/perl-gd/Config.in ================================================ config BR2_PACKAGE_PERL_GD bool "perl-gd" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_ZLIB select BR2_PACKAGE_GD help Perl interface to the gd2 graphics library. https://metacpan.org/release/GD comment "perl-gd needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-gd/perl-gd.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 c2bf1ca56d15e33d2432e4d8ba5aeadf GD-2.73.tar.gz sha256 491c9e73238522e2987e66725a20935f4268a3864202ecbaf4659a1691ba322b GD-2.73.tar.gz # computed by scancpan sha256 1e2250289d6df4ba1c24f7550982d7ffaff2c97cd02e847659406e1afd28e83f LICENSE ================================================ FILE: package/perl-gd/perl-gd.mk ================================================ ################################################################################ # # perl-gd # ################################################################################ PERL_GD_VERSION = 2.73 PERL_GD_SOURCE = GD-$(PERL_GD_VERSION).tar.gz PERL_GD_SITE = $(BR2_CPAN_MIRROR)/authors/id/R/RU/RURBAN PERL_GD_DEPENDENCIES = host-perl-extutils-pkgconfig zlib gd PERL_GD_LICENSE = Artistic or GPL-1.0+ PERL_GD_LICENSE_FILES = LICENSE PERL_GD_DISTNAME = GD PERL_GD_CONF_ENV = \ PATH=$(BR_PATH) \ PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig" ifeq ($(BR2_PACKAGE_FONTCONFIG),y) PERL_GD_DEPENDENCIES += fontconfig PERL_GD_OPTIONS += FONTCONFIG PERL_GD_CONF_OPTS += -lib_fontconfig_path=$(STAGING_DIR)/usr endif ifeq ($(BR2_PACKAGE_FREETYPE),y) PERL_GD_DEPENDENCIES += freetype PERL_GD_OPTIONS += FT PERL_GD_CONF_OPTS += -lib_ft_path=$(STAGING_DIR)/usr endif ifeq ($(BR2_PACKAGE_JPEG),y) PERL_GD_DEPENDENCIES += jpeg PERL_GD_OPTIONS += JPEG PERL_GD_CONF_OPTS += -lib_jpeg_path=$(STAGING_DIR)/usr endif ifeq ($(BR2_PACKAGE_LIBPNG),y) PERL_GD_DEPENDENCIES += libpng PERL_GD_OPTIONS += PNG PERL_GD_CONF_OPTS += -lib_png_path=$(STAGING_DIR)/usr endif ifeq ($(BR2_PACKAGE_XLIB_LIBXPM),y) PERL_GD_DEPENDENCIES += xlib_libXpm PERL_GD_OPTIONS += XPM PERL_GD_CONF_OPTS += -lib_xpm_path=$(STAGING_DIR)/usr endif PERL_GD_CONF_OPTS += \ -lib_gd_path=$(STAGING_DIR)/usr \ -lib_zlib_path=$(STAGING_DIR)/usr \ -options=$(subst $(space),$(comma),$(PERL_GD_OPTIONS)) $(eval $(perl-package)) ================================================ FILE: package/perl-gdgraph/Config.in ================================================ config BR2_PACKAGE_PERL_GDGRAPH bool "perl-gdgraph" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PERL_GD # runtime select BR2_PACKAGE_PERL_GDTEXTUTIL # runtime help Produces charts with GD. https://metacpan.org/release/GDGraph comment "perl-gdgraph needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-gdgraph/perl-gdgraph.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 38c6a188519e6272e9b2b722b315c3d8 GDGraph-1.54.tar.gz sha256 b96f5c10b656c17d16ab65a1777c908297b028d3b6815f6d54b2337f006bfa4f GDGraph-1.54.tar.gz # Hash for license files sha256 710484e3a1196664bbe8a5ad5d53c528e01226eb20e2885a4e1131eb6c6565cd Dustismo.LICENSE sha256 f44630ad9101e40a101d906a07908c975a9b0742273cfb0c00a51d73afb53e7d README ================================================ FILE: package/perl-gdgraph/perl-gdgraph.mk ================================================ ################################################################################ # # perl-gdgraph # ################################################################################ PERL_GDGRAPH_VERSION = 1.54 PERL_GDGRAPH_SOURCE = GDGraph-$(PERL_GDGRAPH_VERSION).tar.gz PERL_GDGRAPH_SITE = $(BR2_CPAN_MIRROR)/authors/id/R/RU/RUZ PERL_GDGRAPH_LICENSE = Artistic or GPL-1.0+ (perl module), GPL-2.0+ (font) PERL_GDGRAPH_LICENSE_FILES = Dustismo.LICENSE README PERL_GDGRAPH_DISTNAME = GDGraph $(eval $(perl-package)) ================================================ FILE: package/perl-gdtextutil/Config.in ================================================ config BR2_PACKAGE_PERL_GDTEXTUTIL bool "perl-gdtextutil" help Text utilities for use with GD. https://metacpan.org/release/GDTextUtil ================================================ FILE: package/perl-gdtextutil/perl-gdtextutil.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 941ad06eadc86b47f3a32da405665c41 GDTextUtil-0.86.tar.gz sha256 886ecbf85cfe94f4135ee5689c4847a9ae783ecb99e6759e12c734f2dd6116bc GDTextUtil-0.86.tar.gz # Hash for license files sha256 710484e3a1196664bbe8a5ad5d53c528e01226eb20e2885a4e1131eb6c6565cd Dustismo.LICENSE sha256 93ca7dd7f372c79e8ec1f849f2a418a67d195e4027c1b3e3dd8444fb30f3e97c README ================================================ FILE: package/perl-gdtextutil/perl-gdtextutil.mk ================================================ ################################################################################ # # perl-gdtextutil # ################################################################################ PERL_GDTEXTUTIL_VERSION = 0.86 PERL_GDTEXTUTIL_SOURCE = GDTextUtil-$(PERL_GDTEXTUTIL_VERSION).tar.gz PERL_GDTEXTUTIL_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MV/MVERB PERL_GDTEXTUTIL_LICENSE = Artistic or GPL-1.0+ (perl module), GPL-2.0+ (font) PERL_GDTEXTUTIL_LICENSE_FILES = Dustismo.LICENSE README PERL_GDTEXTUTIL_DISTNAME = GDTextUtil $(eval $(perl-package)) ================================================ FILE: package/perl-hash-multivalue/Config.in ================================================ config BR2_PACKAGE_PERL_HASH_MULTIVALUE bool "perl-hash-multivalue" help Store multiple values per key. https://github.com/miyagawa/Hash-MultiValue ================================================ FILE: package/perl-hash-multivalue/perl-hash-multivalue.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 508015312eb08cd2bcea987c4efbb93d Hash-MultiValue-0.16.tar.gz sha256 66181df7aa68e2786faf6895c88b18b95c800a8e4e6fb4c07fd176410a3c73f4 Hash-MultiValue-0.16.tar.gz # computed by scancpan sha256 af32512e13f6722dab770b989c57556a5e3d29a49b22b8ad5668064db8592401 LICENSE ================================================ FILE: package/perl-hash-multivalue/perl-hash-multivalue.mk ================================================ ################################################################################ # # perl-hash-multivalue # ################################################################################ PERL_HASH_MULTIVALUE_VERSION = 0.16 PERL_HASH_MULTIVALUE_SOURCE = Hash-MultiValue-$(PERL_HASH_MULTIVALUE_VERSION).tar.gz PERL_HASH_MULTIVALUE_SITE = $(BR2_CPAN_MIRROR)/authors/id/A/AR/ARISTOTLE PERL_HASH_MULTIVALUE_LICENSE = Artistic or GPL-1.0+ PERL_HASH_MULTIVALUE_LICENSE_FILES = LICENSE PERL_HASH_MULTIVALUE_DISTNAME = Hash-MultiValue $(eval $(perl-package)) ================================================ FILE: package/perl-html-parser/Config.in ================================================ config BR2_PACKAGE_PERL_HTML_PARSER bool "perl-html-parser" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PERL_HTML_TAGSET # runtime select BR2_PACKAGE_PERL_HTTP_MESSAGE # runtime select BR2_PACKAGE_PERL_URI # runtime help HTML parser class. https://github.com/libwww-perl/HTML-Parser comment "perl-html-parser needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-html-parser/perl-html-parser.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 60e266d5a07fbea671a0383dd8af7b6c HTML-Parser-3.76.tar.gz sha256 64d9e2eb2b420f1492da01ec0e6976363245b4be9290f03f10b7d2cb63fa2f61 HTML-Parser-3.76.tar.gz # computed by scancpan sha256 0e57338bc10d5fb8891012ebee65a7b504b247f5bb485e121b8b48d7a118a60b LICENSE ================================================ FILE: package/perl-html-parser/perl-html-parser.mk ================================================ ################################################################################ # # perl-html-parser # ################################################################################ PERL_HTML_PARSER_VERSION = 3.76 PERL_HTML_PARSER_SOURCE = HTML-Parser-$(PERL_HTML_PARSER_VERSION).tar.gz PERL_HTML_PARSER_SITE = $(BR2_CPAN_MIRROR)/authors/id/O/OA/OALDERS PERL_HTML_PARSER_LICENSE = Artistic or GPL-1.0+ PERL_HTML_PARSER_LICENSE_FILES = LICENSE PERL_HTML_PARSER_DISTNAME = HTML-Parser $(eval $(perl-package)) ================================================ FILE: package/perl-html-tagset/Config.in ================================================ config BR2_PACKAGE_PERL_HTML_TAGSET bool "perl-html-tagset" help data tables useful in parsing HTML. https://metacpan.org/release/HTML-Tagset ================================================ FILE: package/perl-html-tagset/perl-html-tagset.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 d2bfa18fe1904df7f683e96611e87437 HTML-Tagset-3.20.tar.gz sha256 adb17dac9e36cd011f5243881c9739417fd102fce760f8de4e9be4c7131108e2 HTML-Tagset-3.20.tar.gz # computed by scancpan sha256 275cc182d78ac2db6856442c5d334c925350fb56fe83ee3577f5850317423419 README ================================================ FILE: package/perl-html-tagset/perl-html-tagset.mk ================================================ ################################################################################ # # perl-html-tagset # ################################################################################ PERL_HTML_TAGSET_VERSION = 3.20 PERL_HTML_TAGSET_SOURCE = HTML-Tagset-$(PERL_HTML_TAGSET_VERSION).tar.gz PERL_HTML_TAGSET_SITE = $(BR2_CPAN_MIRROR)/authors/id/P/PE/PETDANCE PERL_HTML_TAGSET_LICENSE = Artistic or GPL-1.0+ PERL_HTML_TAGSET_LICENSE_FILES = README PERL_HTML_TAGSET_DISTNAME = HTML-Tagset $(eval $(perl-package)) ================================================ FILE: package/perl-http-cookies/Config.in ================================================ config BR2_PACKAGE_PERL_HTTP_COOKIES bool "perl-http-cookies" select BR2_PACKAGE_PERL_HTTP_DATE # runtime select BR2_PACKAGE_PERL_HTTP_MESSAGE # runtime help HTTP cookie jars. https://github.com/libwww-perl/HTTP-Cookies ================================================ FILE: package/perl-http-cookies/perl-http-cookies.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 b4d7804231b1dfd10999d42283e0cf06 HTTP-Cookies-6.10.tar.gz sha256 e36f36633c5ce6b5e4b876ffcf74787cc5efe0736dd7f487bdd73c14f0bd7007 HTTP-Cookies-6.10.tar.gz # computed by scancpan sha256 82902ce20c8ed71d7f4e7a6a5b2b26e43a7e2e90c78098fb49aa49e03ac808e0 LICENSE ================================================ FILE: package/perl-http-cookies/perl-http-cookies.mk ================================================ ################################################################################ # # perl-http-cookies # ################################################################################ PERL_HTTP_COOKIES_VERSION = 6.10 PERL_HTTP_COOKIES_SOURCE = HTTP-Cookies-$(PERL_HTTP_COOKIES_VERSION).tar.gz PERL_HTTP_COOKIES_SITE = $(BR2_CPAN_MIRROR)/authors/id/O/OA/OALDERS PERL_HTTP_COOKIES_LICENSE = Artistic or GPL-1.0+ PERL_HTTP_COOKIES_LICENSE_FILES = LICENSE PERL_HTTP_COOKIES_DISTNAME = HTTP-Cookies $(eval $(perl-package)) ================================================ FILE: package/perl-http-daemon/Config.in ================================================ config BR2_PACKAGE_PERL_HTTP_DAEMON bool "perl-http-daemon" select BR2_PACKAGE_PERL_HTTP_DATE # runtime select BR2_PACKAGE_PERL_HTTP_MESSAGE # runtime select BR2_PACKAGE_PERL_LWP_MEDIATYPES # runtime help A simple http server class. https://github.com/libwww-perl/HTTP-Daemon ================================================ FILE: package/perl-http-daemon/perl-http-daemon.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 63674e3f81760a29075853413eb157d8 HTTP-Daemon-6.12.tar.gz sha256 df47bed10c38670c780fd0116867d5fd4693604acde31ba63380dce04c4e1fa6 HTTP-Daemon-6.12.tar.gz # computed by scancpan sha256 e84ac5ab84ace59952d2640e0ca4522eb0aaa8c2aa696352d1252aa109ea20bc LICENCE ================================================ FILE: package/perl-http-daemon/perl-http-daemon.mk ================================================ ################################################################################ # # perl-http-daemon # ################################################################################ PERL_HTTP_DAEMON_VERSION = 6.12 PERL_HTTP_DAEMON_SOURCE = HTTP-Daemon-$(PERL_HTTP_DAEMON_VERSION).tar.gz PERL_HTTP_DAEMON_SITE = $(BR2_CPAN_MIRROR)/authors/id/O/OA/OALDERS PERL_HTTP_DAEMON_DEPENDENCIES = host-perl-module-build-tiny PERL_HTTP_DAEMON_LICENSE = Artistic or GPL-1.0+ PERL_HTTP_DAEMON_LICENSE_FILES = LICENCE PERL_HTTP_DAEMON_DISTNAME = HTTP-Daemon $(eval $(perl-package)) ================================================ FILE: package/perl-http-date/Config.in ================================================ config BR2_PACKAGE_PERL_HTTP_DATE bool "perl-http-date" select BR2_PACKAGE_PERL_TIMEDATE # runtime help HTTP::Date - date conversion routines. https://github.com/libwww-perl/HTTP-Date ================================================ FILE: package/perl-http-date/perl-http-date.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 2ecbb3aedf6aef062605191813ca3027 HTTP-Date-6.05.tar.gz sha256 365d6294dfbd37ebc51def8b65b81eb79b3934ecbc95a2ec2d4d827efe6a922b HTTP-Date-6.05.tar.gz # computed by scancpan sha256 305b71c4d2fd6380585689c5f1c620737a36a318ce0f9c772badce0fe293a44e LICENSE ================================================ FILE: package/perl-http-date/perl-http-date.mk ================================================ ################################################################################ # # perl-http-date # ################################################################################ PERL_HTTP_DATE_VERSION = 6.05 PERL_HTTP_DATE_SOURCE = HTTP-Date-$(PERL_HTTP_DATE_VERSION).tar.gz PERL_HTTP_DATE_SITE = $(BR2_CPAN_MIRROR)/authors/id/O/OA/OALDERS PERL_HTTP_DATE_LICENSE = Artistic or GPL-1.0+ PERL_HTTP_DATE_LICENSE_FILES = LICENSE PERL_HTTP_DATE_DISTNAME = HTTP-Date $(eval $(perl-package)) ================================================ FILE: package/perl-http-entity-parser/Config.in ================================================ config BR2_PACKAGE_PERL_HTTP_ENTITY_PARSER bool "perl-http-entity-parser" select BR2_PACKAGE_PERL_HTTP_MULTIPARTPARSER # runtime select BR2_PACKAGE_PERL_HASH_MULTIVALUE # runtime select BR2_PACKAGE_PERL_JSON_MAYBEXS # runtime select BR2_PACKAGE_PERL_STREAM_BUFFERED # runtime select BR2_PACKAGE_PERL_WWW_FORM_URLENCODED # runtime help PSGI compliant HTTP Entity Parser. https://github.com/kazeburo/HTTP-Entity-Parser ================================================ FILE: package/perl-http-entity-parser/perl-http-entity-parser.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 09663f9577975587e832e28ba5f5f8af HTTP-Entity-Parser-0.25.tar.gz sha256 3a8cd0d8cba3d17cd8c04ee82d7341dfaa247dbdd94a49eb94b53f69e483ec3a HTTP-Entity-Parser-0.25.tar.gz # computed by scancpan sha256 79c2a066104e71602785fd815c5aea6f7db78c19451d68521380083f9c2a8805 LICENSE ================================================ FILE: package/perl-http-entity-parser/perl-http-entity-parser.mk ================================================ ################################################################################ # # perl-http-entity-parser # ################################################################################ PERL_HTTP_ENTITY_PARSER_VERSION = 0.25 PERL_HTTP_ENTITY_PARSER_SOURCE = HTTP-Entity-Parser-$(PERL_HTTP_ENTITY_PARSER_VERSION).tar.gz PERL_HTTP_ENTITY_PARSER_SITE = $(BR2_CPAN_MIRROR)/authors/id/K/KA/KAZEBURO PERL_HTTP_ENTITY_PARSER_DEPENDENCIES = host-perl-module-build-tiny PERL_HTTP_ENTITY_PARSER_LICENSE = Artistic or GPL-1.0+ PERL_HTTP_ENTITY_PARSER_LICENSE_FILES = LICENSE PERL_HTTP_ENTITY_PARSER_DISTNAME = HTTP-Entity-Parser $(eval $(perl-package)) ================================================ FILE: package/perl-http-headers-fast/Config.in ================================================ config BR2_PACKAGE_PERL_HTTP_HEADERS_FAST bool "perl-http-headers-fast" select BR2_PACKAGE_PERL_HTTP_DATE # runtime help faster implementation of HTTP::Headers. https://github.com/tokuhirom/HTTP-Headers-Fast ================================================ FILE: package/perl-http-headers-fast/perl-http-headers-fast.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 a166a4d0ba47eca8ff9dffb760865f5f HTTP-Headers-Fast-0.22.tar.gz sha256 cc431db68496dd884db4bc0c0b7112c1f4a4f1dc68c4f5a3caa757a1e7481b48 HTTP-Headers-Fast-0.22.tar.gz # computed by scancpan sha256 511724425acf76d736145cfbf7c775b024c70ae8674ebf9a24dfda2c8e4032a3 LICENSE ================================================ FILE: package/perl-http-headers-fast/perl-http-headers-fast.mk ================================================ ################################################################################ # # perl-http-headers-fast # ################################################################################ PERL_HTTP_HEADERS_FAST_VERSION = 0.22 PERL_HTTP_HEADERS_FAST_SOURCE = HTTP-Headers-Fast-$(PERL_HTTP_HEADERS_FAST_VERSION).tar.gz PERL_HTTP_HEADERS_FAST_SITE = $(BR2_CPAN_MIRROR)/authors/id/T/TO/TOKUHIROM PERL_HTTP_HEADERS_FAST_DEPENDENCIES = host-perl-module-build-tiny PERL_HTTP_HEADERS_FAST_LICENSE = Artistic or GPL-1.0+ PERL_HTTP_HEADERS_FAST_LICENSE_FILES = LICENSE PERL_HTTP_HEADERS_FAST_DISTNAME = HTTP-Headers-Fast $(eval $(perl-package)) ================================================ FILE: package/perl-http-message/Config.in ================================================ config BR2_PACKAGE_PERL_HTTP_MESSAGE bool "perl-http-message" select BR2_PACKAGE_PERL_ENCODE_LOCALE # runtime select BR2_PACKAGE_PERL_HTTP_DATE # runtime select BR2_PACKAGE_PERL_IO_HTML # runtime select BR2_PACKAGE_PERL_LWP_MEDIATYPES # runtime select BR2_PACKAGE_PERL_URI # runtime help HTTP style message (base class). https://github.com/libwww-perl/HTTP-Message ================================================ FILE: package/perl-http-message/perl-http-message.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 e291f19e9532ffb7d1c80eab786bf0f2 HTTP-Message-6.33.tar.gz sha256 23b967f71b852cb209ec92a1af6bac89a141dff1650d69824d29a345c1eceef7 HTTP-Message-6.33.tar.gz # computed by scancpan sha256 1379396dcd2291f17a741d2d6bf14d379f5f2ab91b3c7e7b92c5f82856e2d7ac LICENSE ================================================ FILE: package/perl-http-message/perl-http-message.mk ================================================ ################################################################################ # # perl-http-message # ################################################################################ PERL_HTTP_MESSAGE_VERSION = 6.33 PERL_HTTP_MESSAGE_SOURCE = HTTP-Message-$(PERL_HTTP_MESSAGE_VERSION).tar.gz PERL_HTTP_MESSAGE_SITE = $(BR2_CPAN_MIRROR)/authors/id/O/OA/OALDERS PERL_HTTP_MESSAGE_LICENSE = Artistic or GPL-1.0+ PERL_HTTP_MESSAGE_LICENSE_FILES = LICENSE PERL_HTTP_MESSAGE_DISTNAME = HTTP-Message $(eval $(perl-package)) ================================================ FILE: package/perl-http-multipartparser/Config.in ================================================ config BR2_PACKAGE_PERL_HTTP_MULTIPARTPARSER bool "perl-http-multipartparser" help HTTP MultiPart Parser. https://metacpan.org/release/HTTP-MultiPartParser ================================================ FILE: package/perl-http-multipartparser/perl-http-multipartparser.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 1b07ebac54ce3288c044a23ba60196d2 HTTP-MultiPartParser-0.02.tar.gz sha256 5eddda159f54d16f868e032440ac2b024e55aac48931871b62627f1a16d00b12 HTTP-MultiPartParser-0.02.tar.gz # computed by scancpan sha256 a339d6cf9253720ba69b311423556cc02c94d5a6f76cf5cdf11af2112e14a074 README ================================================ FILE: package/perl-http-multipartparser/perl-http-multipartparser.mk ================================================ ################################################################################ # # perl-http-multipartparser # ################################################################################ PERL_HTTP_MULTIPARTPARSER_VERSION = 0.02 PERL_HTTP_MULTIPARTPARSER_SOURCE = HTTP-MultiPartParser-$(PERL_HTTP_MULTIPARTPARSER_VERSION).tar.gz PERL_HTTP_MULTIPARTPARSER_SITE = $(BR2_CPAN_MIRROR)/authors/id/C/CH/CHANSEN PERL_HTTP_MULTIPARTPARSER_LICENSE = Artistic or GPL-1.0+ PERL_HTTP_MULTIPARTPARSER_LICENSE_FILES = README PERL_HTTP_MULTIPARTPARSER_DISTNAME = HTTP-MultiPartParser $(eval $(perl-package)) ================================================ FILE: package/perl-http-negotiate/Config.in ================================================ config BR2_PACKAGE_PERL_HTTP_NEGOTIATE bool "perl-http-negotiate" select BR2_PACKAGE_PERL_HTTP_MESSAGE # runtime help choose a variant to serve. https://metacpan.org/release/HTTP-Negotiate ================================================ FILE: package/perl-http-negotiate/perl-http-negotiate.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 1236195250e264d7436e7bb02031671b HTTP-Negotiate-6.01.tar.gz sha256 1c729c1ea63100e878405cda7d66f9adfd3ed4f1d6cacaca0ee9152df728e016 HTTP-Negotiate-6.01.tar.gz # computed by scancpan sha256 7a2114bb46279309f8a67e359ab0a578a4e9a7c7add0d1725de46b44f6da6514 README ================================================ FILE: package/perl-http-negotiate/perl-http-negotiate.mk ================================================ ################################################################################ # # perl-http-negotiate # ################################################################################ PERL_HTTP_NEGOTIATE_VERSION = 6.01 PERL_HTTP_NEGOTIATE_SOURCE = HTTP-Negotiate-$(PERL_HTTP_NEGOTIATE_VERSION).tar.gz PERL_HTTP_NEGOTIATE_SITE = $(BR2_CPAN_MIRROR)/authors/id/G/GA/GAAS PERL_HTTP_NEGOTIATE_LICENSE = Artistic or GPL-1.0+ PERL_HTTP_NEGOTIATE_LICENSE_FILES = README PERL_HTTP_NEGOTIATE_DISTNAME = HTTP-Negotiate $(eval $(perl-package)) ================================================ FILE: package/perl-i18n/Config.in ================================================ config BR2_PACKAGE_PERL_I18N bool "perl-i18n" select BR2_PACKAGE_PERL_LOCALE_MAKETEXT_LEXICON # runtime help Perl Internationalization Pragma. https://metacpan.org/release/i18n ================================================ FILE: package/perl-i18n/perl-i18n.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 4c3004474d6ff3554f82b52f92b3b1e1 i18n-0.13.tar.gz sha256 2dbc3e4e25b41578cd83508fe011209e8f3c2b259fa4b5b6eafaac0d6ce4b457 i18n-0.13.tar.gz # computed by scancpan sha256 4755e5f2096e8ef0494f1565bf5a028a8fb4eeb5c1250e7d30948d1ed13c5ad7 README ================================================ FILE: package/perl-i18n/perl-i18n.mk ================================================ ################################################################################ # # perl-i18n # ################################################################################ PERL_I18N_VERSION = 0.13 PERL_I18N_SOURCE = i18n-$(PERL_I18N_VERSION).tar.gz PERL_I18N_SITE = $(BR2_CPAN_MIRROR)/authors/id/A/AU/AUDREYT PERL_I18N_LICENSE = MIT PERL_I18N_LICENSE_FILES = README PERL_I18N_DISTNAME = i18n $(eval $(perl-package)) ================================================ FILE: package/perl-io-html/Config.in ================================================ config BR2_PACKAGE_PERL_IO_HTML bool "perl-io-html" help Open an HTML file with automatic charset detection. https://metacpan.org/release/IO-HTML ================================================ FILE: package/perl-io-html/perl-io-html.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 04bbe363686fd19bfb4cc0ed775e3d03 IO-HTML-1.004.tar.gz sha256 c87b2df59463bbf2c39596773dfb5c03bde0f7e1051af339f963f58c1cbd8bf5 IO-HTML-1.004.tar.gz # computed by scancpan sha256 669fdd41b60ef6169a975b87a5fe35c50e81b9efc8f96b2459f4fbb238079d84 LICENSE ================================================ FILE: package/perl-io-html/perl-io-html.mk ================================================ ################################################################################ # # perl-io-html # ################################################################################ PERL_IO_HTML_VERSION = 1.004 PERL_IO_HTML_SOURCE = IO-HTML-$(PERL_IO_HTML_VERSION).tar.gz PERL_IO_HTML_SITE = $(BR2_CPAN_MIRROR)/authors/id/C/CJ/CJM PERL_IO_HTML_LICENSE = Artistic or GPL-1.0+ PERL_IO_HTML_LICENSE_FILES = LICENSE PERL_IO_HTML_DISTNAME = IO-HTML $(eval $(perl-package)) ================================================ FILE: package/perl-io-interface/Config.in ================================================ config BR2_PACKAGE_PERL_IO_INTERFACE bool "perl-io-interface" depends on !BR2_STATIC_LIBS help Access and modify network interface card configuration. https://metacpan.org/release/IO-Interface comment "perl-io-interface needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-io-interface/perl-io-interface.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 806f97aff5a7361b6f54cd494f4cc9fd IO-Interface-1.09.tar.gz sha256 e63e81c52eb1e0e60ec2d983f5552d2493e117179925c96757f23c4bd9fa713a IO-Interface-1.09.tar.gz # computed by scancpan sha256 b5a5bf59bd1be13f7f498e5aa2ea5c0c603c04a095dcf03a06aa5b83bbccf921 LICENSE ================================================ FILE: package/perl-io-interface/perl-io-interface.mk ================================================ ################################################################################ # # perl-io-interface # ################################################################################ PERL_IO_INTERFACE_VERSION = 1.09 PERL_IO_INTERFACE_SOURCE = IO-Interface-$(PERL_IO_INTERFACE_VERSION).tar.gz PERL_IO_INTERFACE_SITE = $(BR2_CPAN_MIRROR)/authors/id/L/LD/LDS PERL_IO_INTERFACE_DEPENDENCIES = host-perl-module-build PERL_IO_INTERFACE_LICENSE = Artistic-2.0 PERL_IO_INTERFACE_LICENSE_FILES = LICENSE PERL_IO_INTERFACE_DISTNAME = IO-Interface $(eval $(perl-package)) ================================================ FILE: package/perl-io-socket-multicast/Config.in ================================================ config BR2_PACKAGE_PERL_IO_SOCKET_MULTICAST bool "perl-io-socket-multicast" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PERL_IO_INTERFACE # runtime help Send and receive multicast messages. https://metacpan.org/release/IO-Socket-Multicast comment "perl-io-socket-multicast needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-io-socket-multicast/perl-io-socket-multicast.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 c96e6cbb367b1d11ffe7bb9fbd833540 IO-Socket-Multicast-1.12.tar.gz sha256 70e8af4aa21d19bab5edd9f43a6b3d6277748a65145d46ff0ea2ae4c59495c72 IO-Socket-Multicast-1.12.tar.gz # computed by scancpan sha256 ea33bda0e2ec6734e29895a37cd1fc005d86f2abbe7e9943e0213ae64844a697 README ================================================ FILE: package/perl-io-socket-multicast/perl-io-socket-multicast.mk ================================================ ################################################################################ # # perl-io-socket-multicast # ################################################################################ PERL_IO_SOCKET_MULTICAST_VERSION = 1.12 PERL_IO_SOCKET_MULTICAST_SOURCE = IO-Socket-Multicast-$(PERL_IO_SOCKET_MULTICAST_VERSION).tar.gz PERL_IO_SOCKET_MULTICAST_SITE = $(BR2_CPAN_MIRROR)/authors/id/B/BR/BRAMBLE PERL_IO_SOCKET_MULTICAST_LICENSE = Artistic or GPL-1.0+ PERL_IO_SOCKET_MULTICAST_LICENSE_FILES = README PERL_IO_SOCKET_MULTICAST_DISTNAME = IO-Socket-Multicast $(eval $(perl-package)) ================================================ FILE: package/perl-io-socket-ssl/Config.in ================================================ config BR2_PACKAGE_PERL_IO_SOCKET_SSL bool "perl-io-socket-ssl" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PERL_MOZILLA_CA # runtime select BR2_PACKAGE_PERL_NET_SSLEAY # runtime help Nearly transparent SSL encapsulation for IO::Socket::INET. https://github.com/noxxi/p5-io-socket-ssl comment "perl-io-socket-ssl needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-io-socket-ssl/perl-io-socket-ssl.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 4fb67fc8c4817dce8116f2eb7878fd9c IO-Socket-SSL-2.072.tar.gz sha256 b5bee81db3905a9069340a450a48e1e1b32dec4ede0064f5703bafb9a707b89d IO-Socket-SSL-2.072.tar.gz # computed by scancpan sha256 090aff5421fd55a9dceeaf6c612c36360402e8d29c1284aef88c87be565ce032 README ================================================ FILE: package/perl-io-socket-ssl/perl-io-socket-ssl.mk ================================================ ################################################################################ # # perl-io-socket-ssl # ################################################################################ PERL_IO_SOCKET_SSL_VERSION = 2.072 PERL_IO_SOCKET_SSL_SOURCE = IO-Socket-SSL-$(PERL_IO_SOCKET_SSL_VERSION).tar.gz PERL_IO_SOCKET_SSL_SITE = $(BR2_CPAN_MIRROR)/authors/id/S/SU/SULLR PERL_IO_SOCKET_SSL_LICENSE = Artistic or GPL-1.0+ PERL_IO_SOCKET_SSL_LICENSE_FILES = README PERL_IO_SOCKET_SSL_DISTNAME = IO-Socket-SSL $(eval $(perl-package)) ================================================ FILE: package/perl-json-maybexs/Config.in ================================================ config BR2_PACKAGE_PERL_JSON_MAYBEXS bool "perl-json-maybexs" help Use Cpanel::JSON::XS with a fallback to JSON::XS and JSON::PP. https://metacpan.org/release/JSON-MaybeXS ================================================ FILE: package/perl-json-maybexs/perl-json-maybexs.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 e46181e34588428d317932744597a7ab JSON-MaybeXS-1.004003.tar.gz sha256 5bee3b17ff9dcffd6e99ab8cf7f35747650bfce1dc622e3ad10b85a194462fbf JSON-MaybeXS-1.004003.tar.gz # computed by scancpan sha256 0f2d6b537f7a735c981511875d832bc8ff767bf97d62848cf0bada964e40aadd LICENSE ================================================ FILE: package/perl-json-maybexs/perl-json-maybexs.mk ================================================ ################################################################################ # # perl-json-maybexs # ################################################################################ PERL_JSON_MAYBEXS_VERSION = 1.004003 PERL_JSON_MAYBEXS_SOURCE = JSON-MaybeXS-$(PERL_JSON_MAYBEXS_VERSION).tar.gz PERL_JSON_MAYBEXS_SITE = $(BR2_CPAN_MIRROR)/authors/id/E/ET/ETHER PERL_JSON_MAYBEXS_LICENSE = Artistic or GPL-1.0+ PERL_JSON_MAYBEXS_LICENSE_FILES = LICENSE PERL_JSON_MAYBEXS_DISTNAME = JSON-MaybeXS $(eval $(perl-package)) ================================================ FILE: package/perl-json-tiny/Config.in ================================================ config BR2_PACKAGE_PERL_JSON_TINY bool "perl-json-tiny" help Minimalistic JSON. No dependencies. https://metacpan.org/release/JSON-Tiny ================================================ FILE: package/perl-json-tiny/perl-json-tiny.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 aa006882222e17a94295b3a655aab91b JSON-Tiny-0.58.tar.gz sha256 ad42e9137f5148df7fdb22aa52186b306032977bcd70d49f44a288070e4f0f23 JSON-Tiny-0.58.tar.gz # computed by scancpan sha256 19e2e0f2079ea1ce1576eb4ecc0575b33fe45b2b8e71f4aa589d6bedd1da4e0a LICENSE ================================================ FILE: package/perl-json-tiny/perl-json-tiny.mk ================================================ ################################################################################ # # perl-json-tiny # ################################################################################ PERL_JSON_TINY_VERSION = 0.58 PERL_JSON_TINY_SOURCE = JSON-Tiny-$(PERL_JSON_TINY_VERSION).tar.gz PERL_JSON_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DA/DAVIDO PERL_JSON_TINY_LICENSE = Artistic-2.0 PERL_JSON_TINY_LICENSE_FILES = LICENSE PERL_JSON_TINY_DISTNAME = JSON-Tiny $(eval $(perl-package)) ================================================ FILE: package/perl-libwww-perl/Config.in ================================================ config BR2_PACKAGE_PERL_LIBWWW_PERL bool "perl-libwww-perl" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PERL_ENCODE_LOCALE # runtime select BR2_PACKAGE_PERL_FILE_LISTING # runtime select BR2_PACKAGE_PERL_HTML_PARSER # runtime select BR2_PACKAGE_PERL_HTTP_COOKIES # runtime select BR2_PACKAGE_PERL_HTTP_DATE # runtime select BR2_PACKAGE_PERL_HTTP_MESSAGE # runtime select BR2_PACKAGE_PERL_HTTP_NEGOTIATE # runtime select BR2_PACKAGE_PERL_LWP_MEDIATYPES # runtime select BR2_PACKAGE_PERL_NET_HTTP # runtime select BR2_PACKAGE_PERL_TRY_TINY # runtime select BR2_PACKAGE_PERL_URI # runtime select BR2_PACKAGE_PERL_WWW_ROBOTRULES # runtime help The World-Wide Web library for Perl. https://github.com/libwww-perl/libwww-perl comment "perl-libwww-perl needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-libwww-perl/perl-libwww-perl.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 0ef270c43ee93e22c2086ba9998aa11a libwww-perl-6.56.tar.gz sha256 94362e68e5c6782f3987a9dec6adc409d20e28665dbf28ff47d1d701443ce7ce libwww-perl-6.56.tar.gz # computed by scancpan sha256 311f168ba9a7819ffab4fea19858f9e880737baf6d112929d11530205035a4cc LICENSE ================================================ FILE: package/perl-libwww-perl/perl-libwww-perl.mk ================================================ ################################################################################ # # perl-libwww-perl # ################################################################################ PERL_LIBWWW_PERL_VERSION = 6.56 PERL_LIBWWW_PERL_SOURCE = libwww-perl-$(PERL_LIBWWW_PERL_VERSION).tar.gz PERL_LIBWWW_PERL_SITE = $(BR2_CPAN_MIRROR)/authors/id/O/OA/OALDERS PERL_LIBWWW_PERL_LICENSE = Artistic or GPL-1.0+ PERL_LIBWWW_PERL_LICENSE_FILES = LICENSE PERL_LIBWWW_PERL_DISTNAME = libwww-perl $(eval $(perl-package)) ================================================ FILE: package/perl-locale-maketext-lexicon/Config.in ================================================ config BR2_PACKAGE_PERL_LOCALE_MAKETEXT_LEXICON bool "perl-locale-maketext-lexicon" help Use other catalog formats in Maketext. http://search.cpan.org/dist/Locale-Maketext-Lexicon ================================================ FILE: package/perl-locale-maketext-lexicon/perl-locale-maketext-lexicon.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 51acf0cb00cc01a2c8f560d74dd6c593 Locale-Maketext-Lexicon-1.00.tar.gz sha256 b73f6b04a58d3f0e38ebf2115a4c1532f1a4eef6fac5c6a2a449e4e14c1ddc7c Locale-Maketext-Lexicon-1.00.tar.gz # computed by scancpan sha256 af693c8c99bee68656f09328c97d50b24eb742ae4473f57cdafaa90691807fbe LICENSE ================================================ FILE: package/perl-locale-maketext-lexicon/perl-locale-maketext-lexicon.mk ================================================ ################################################################################ # # perl-locale-maketext-lexicon # ################################################################################ PERL_LOCALE_MAKETEXT_LEXICON_VERSION = 1.00 PERL_LOCALE_MAKETEXT_LEXICON_SOURCE = Locale-Maketext-Lexicon-$(PERL_LOCALE_MAKETEXT_LEXICON_VERSION).tar.gz PERL_LOCALE_MAKETEXT_LEXICON_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DR/DRTECH PERL_LOCALE_MAKETEXT_LEXICON_LICENSE = MIT PERL_LOCALE_MAKETEXT_LEXICON_LICENSE_FILES = LICENSE PERL_LOCALE_MAKETEXT_LEXICON_DISTNAME = Locale-Maketext-Lexicon $(eval $(perl-package)) ================================================ FILE: package/perl-lwp-mediatypes/Config.in ================================================ config BR2_PACKAGE_PERL_LWP_MEDIATYPES bool "perl-lwp-mediatypes" help guess media type for a file or a URL. https://github.com/libwww-perl/lwp-mediatypes ================================================ FILE: package/perl-lwp-mediatypes/perl-lwp-mediatypes.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 84b799a90c0d2ce52897a7cb4c0478d0 LWP-MediaTypes-6.04.tar.gz sha256 8f1bca12dab16a1c2a7c03a49c5e58cce41a6fec9519f0aadfba8dad997919d9 LWP-MediaTypes-6.04.tar.gz # computed by scancpan sha256 e84ac5ab84ace59952d2640e0ca4522eb0aaa8c2aa696352d1252aa109ea20bc LICENSE ================================================ FILE: package/perl-lwp-mediatypes/perl-lwp-mediatypes.mk ================================================ ################################################################################ # # perl-lwp-mediatypes # ################################################################################ PERL_LWP_MEDIATYPES_VERSION = 6.04 PERL_LWP_MEDIATYPES_SOURCE = LWP-MediaTypes-$(PERL_LWP_MEDIATYPES_VERSION).tar.gz PERL_LWP_MEDIATYPES_SITE = $(BR2_CPAN_MIRROR)/authors/id/O/OA/OALDERS PERL_LWP_MEDIATYPES_LICENSE = Artistic or GPL-1.0+ PERL_LWP_MEDIATYPES_LICENSE_FILES = LICENSE PERL_LWP_MEDIATYPES_DISTNAME = LWP-MediaTypes $(eval $(perl-package)) ================================================ FILE: package/perl-lwp-protocol-https/Config.in ================================================ config BR2_PACKAGE_PERL_LWP_PROTOCOL_HTTPS bool "perl-lwp-protocol-https" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PERL_IO_SOCKET_SSL # runtime select BR2_PACKAGE_PERL_MOZILLA_CA # runtime select BR2_PACKAGE_PERL_NET_HTTP # runtime select BR2_PACKAGE_PERL_LIBWWW_PERL # runtime help Provide https support for LWP::UserAgent. https://github.com/libwww-perl/LWP-Protocol-https comment "perl-lwp-protocol-https needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-lwp-protocol-https/perl-lwp-protocol-https.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 cf64e4bc57a9266ac4343cdf0808c5c8 LWP-Protocol-https-6.10.tar.gz sha256 cecfc31fe2d4fc854cac47fce13d3a502e8fdfe60c5bc1c09535743185f2a86c LWP-Protocol-https-6.10.tar.gz # computed by scancpan sha256 294e73f9bd40ea600e9478cd57489a7da72558a83c6a66f37a82e4e0d5a706d9 LICENSE ================================================ FILE: package/perl-lwp-protocol-https/perl-lwp-protocol-https.mk ================================================ ################################################################################ # # perl-lwp-protocol-https # ################################################################################ PERL_LWP_PROTOCOL_HTTPS_VERSION = 6.10 PERL_LWP_PROTOCOL_HTTPS_SOURCE = LWP-Protocol-https-$(PERL_LWP_PROTOCOL_HTTPS_VERSION).tar.gz PERL_LWP_PROTOCOL_HTTPS_SITE = $(BR2_CPAN_MIRROR)/authors/id/O/OA/OALDERS PERL_LWP_PROTOCOL_HTTPS_LICENSE = Artistic or GPL-1.0+ PERL_LWP_PROTOCOL_HTTPS_LICENSE_FILES = LICENSE PERL_LWP_PROTOCOL_HTTPS_DISTNAME = LWP-Protocol-https $(eval $(perl-package)) ================================================ FILE: package/perl-mail-dkim/Config.in ================================================ config BR2_PACKAGE_PERL_MAIL_DKIM bool "perl-mail-dkim" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PERL_CRYPT_OPENSSL_RSA # runtime select BR2_PACKAGE_PERL_MAILTOOLS # runtime select BR2_PACKAGE_PERL_NET_DNS # runtime help Signs/verifies Internet mail with DKIM/DomainKey signatures. https://metacpan.org/release/Mail-DKIM comment "perl-mail-dkim needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-mail-dkim/perl-mail-dkim.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 9de35f8aa77a85dc17423cbcce2bf46d Mail-DKIM-1.20200824.tar.gz sha256 871d329830acb4840423aa59036622fb2ee394efc1d09316dcc32ae94454e916 Mail-DKIM-1.20200824.tar.gz # computed by scancpan sha256 ffaa40feb768566e52d93879fedd2c5483828b6de483874f30a0a4425351555f LICENSE ================================================ FILE: package/perl-mail-dkim/perl-mail-dkim.mk ================================================ ################################################################################ # # perl-mail-dkim # ################################################################################ PERL_MAIL_DKIM_VERSION = 1.20200824 PERL_MAIL_DKIM_SOURCE = Mail-DKIM-$(PERL_MAIL_DKIM_VERSION).tar.gz PERL_MAIL_DKIM_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MB/MBRADSHAW PERL_MAIL_DKIM_LICENSE = Artistic or GPL-1.0+ PERL_MAIL_DKIM_LICENSE_FILES = LICENSE PERL_MAIL_DKIM_DISTNAME = Mail-DKIM $(eval $(perl-package)) ================================================ FILE: package/perl-mailtools/Config.in ================================================ config BR2_PACKAGE_PERL_MAILTOOLS bool "perl-mailtools" select BR2_PACKAGE_PERL_TIMEDATE # runtime help Various ancient e-mail related modules. http://perl.overmeer.net/CPAN/ ================================================ FILE: package/perl-mailtools/perl-mailtools.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 69ee516d40011e7e92b77c6f06c0dc01 MailTools-2.21.tar.gz sha256 4ad9bd6826b6f03a2727332466b1b7d29890c8d99a32b4b3b0a8d926ee1a44cb MailTools-2.21.tar.gz # computed by scancpan sha256 f7558badc4f4875df247bcccb50a8f369bfe4a2c19361f1df7b26ddf6aaaaf6b README ================================================ FILE: package/perl-mailtools/perl-mailtools.mk ================================================ ################################################################################ # # perl-mailtools # ################################################################################ PERL_MAILTOOLS_VERSION = 2.21 PERL_MAILTOOLS_SOURCE = MailTools-$(PERL_MAILTOOLS_VERSION).tar.gz PERL_MAILTOOLS_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MA/MARKOV PERL_MAILTOOLS_LICENSE = Artistic or GPL-1.0+ PERL_MAILTOOLS_LICENSE_FILES = README PERL_MAILTOOLS_DISTNAME = MailTools $(eval $(perl-package)) ================================================ FILE: package/perl-math-int64/Config.in ================================================ config BR2_PACKAGE_PERL_MATH_INT64 bool "perl-math-int64" depends on !BR2_STATIC_LIBS help Manipulate 64 bits integers in Perl. http://metacpan.org/release/Math-Int64 comment "perl-math-int64 needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-math-int64/perl-math-int64.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 1ad0ce8b5e903dfe9f7ffbabd8a43014 Math-Int64-0.54.tar.gz sha256 dcfc51e698437ea6b9cefe0276215c56cdb6a7f85e3e24a2b6b4189f1960d351 Math-Int64-0.54.tar.gz # computed by scancpan sha256 59feedfdc4f99a746c54e06ac46c4627fb1e29be3bc71756184f92333600f72b COPYING ================================================ FILE: package/perl-math-int64/perl-math-int64.mk ================================================ ################################################################################ # # perl-math-int64 # ################################################################################ PERL_MATH_INT64_VERSION = 0.54 PERL_MATH_INT64_SOURCE = Math-Int64-$(PERL_MATH_INT64_VERSION).tar.gz PERL_MATH_INT64_SITE = $(BR2_CPAN_MIRROR)/authors/id/S/SA/SALVA PERL_MATH_INT64_LICENSE = Artistic or GPL-1.0+ PERL_MATH_INT64_LICENSE_FILES = COPYING PERL_MATH_INT64_DISTNAME = Math-Int64 $(eval $(perl-package)) ================================================ FILE: package/perl-math-prime-util/Config.in ================================================ config BR2_PACKAGE_PERL_MATH_PRIME_UTIL bool "perl-math-prime-util" depends on !BR2_STATIC_LIBS help Utilities related to prime numbers, including fast sieves and factoring. https://github.com/danaj/Math-Prime-Util comment "perl-math-prime-util needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-math-prime-util/perl-math-prime-util.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 26496630990db586dfede6551de79cbe Math-Prime-Util-0.73.tar.gz sha256 4afa6dd8cdb97499bd4eca6925861812c29d9f5a0f1ac27ad9d2d9c9b5602894 Math-Prime-Util-0.73.tar.gz # computed by scancpan sha256 475b5f12062de0e197fb8cfa44eef3b032342d097752868e72c1239fe52a8942 LICENSE ================================================ FILE: package/perl-math-prime-util/perl-math-prime-util.mk ================================================ ################################################################################ # # perl-math-prime-util # ################################################################################ PERL_MATH_PRIME_UTIL_VERSION = 0.73 PERL_MATH_PRIME_UTIL_SOURCE = Math-Prime-Util-$(PERL_MATH_PRIME_UTIL_VERSION).tar.gz PERL_MATH_PRIME_UTIL_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DA/DANAJ PERL_MATH_PRIME_UTIL_LICENSE = Artistic or GPL-1.0+ PERL_MATH_PRIME_UTIL_LICENSE_FILES = LICENSE PERL_MATH_PRIME_UTIL_DISTNAME = Math-Prime-Util $(eval $(perl-package)) ================================================ FILE: package/perl-mime-base64-urlsafe/Config.in ================================================ config BR2_PACKAGE_PERL_MIME_BASE64_URLSAFE bool "perl-mime-base64-urlsafe" help Perl version of Python's URL-safe base64 codec. https://metacpan.org/release/MIME-Base64-URLSafe ================================================ FILE: package/perl-mime-base64-urlsafe/perl-mime-base64-urlsafe.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 eccf42cc7e9576dd23b9f39ad59c9b62 MIME-Base64-URLSafe-0.01.tar.gz sha256 cb9966c50538bb676ab67bc40a7c841019b23ba2243d0ffcc2ccf084e5c33798 MIME-Base64-URLSafe-0.01.tar.gz # computed by scancpan sha256 2fffac76f75709b6d94111a37f6cd8cab21e8f2b2de73b0b4fa53a5bed4efc15 README ================================================ FILE: package/perl-mime-base64-urlsafe/perl-mime-base64-urlsafe.mk ================================================ ################################################################################ # # perl-mime-base64-urlsafe # ################################################################################ PERL_MIME_BASE64_URLSAFE_VERSION = 0.01 PERL_MIME_BASE64_URLSAFE_SOURCE = MIME-Base64-URLSafe-$(PERL_MIME_BASE64_URLSAFE_VERSION).tar.gz PERL_MIME_BASE64_URLSAFE_SITE = $(BR2_CPAN_MIRROR)/authors/id/K/KA/KAZUHO PERL_MIME_BASE64_URLSAFE_LICENSE = Artistic or GPL-1.0+ PERL_MIME_BASE64_URLSAFE_LICENSE_FILES = README PERL_MIME_BASE64_URLSAFE_DISTNAME = MIME-Base64-URLSafe $(eval $(perl-package)) ================================================ FILE: package/perl-mime-tools/Config.in ================================================ config BR2_PACKAGE_PERL_MIME_TOOLS bool "perl-mime-tools" select BR2_PACKAGE_PERL_MAILTOOLS # runtime help Tools to manipulate MIME messages. https://metacpan.org/release/MIME-tools ================================================ FILE: package/perl-mime-tools/perl-mime-tools.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 a2f0e07da2ff4b0478908544cc4b40fa MIME-tools-5.509.tar.gz sha256 64579f0c923d81d9a2194586e47c3475519e2646e4b5c102a8920759facf6973 MIME-tools-5.509.tar.gz # computed by scancpan sha256 151cd94e37eb05239c5a678c7d1c4d9d5241a7c9c138760b85152bc1947e2b93 COPYING ================================================ FILE: package/perl-mime-tools/perl-mime-tools.mk ================================================ ################################################################################ # # perl-mime-tools # ################################################################################ PERL_MIME_TOOLS_VERSION = 5.509 PERL_MIME_TOOLS_SOURCE = MIME-tools-$(PERL_MIME_TOOLS_VERSION).tar.gz PERL_MIME_TOOLS_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DS/DSKOLL PERL_MIME_TOOLS_LICENSE = Artistic or GPL-1.0+ PERL_MIME_TOOLS_LICENSE_FILES = COPYING PERL_MIME_TOOLS_DISTNAME = MIME-tools $(eval $(perl-package)) ================================================ FILE: package/perl-module-build/perl-module-build.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 066b193e461d7dfe1eca17a139353001 Module-Build-0.4231.tar.gz sha256 7e0f4c692c1740c1ac84ea14d7ea3d8bc798b2fb26c09877229e04f430b2b717 Module-Build-0.4231.tar.gz # computed by scancpan sha256 f35ac2cc6b808a38c42c2d230b875217b0a24bb51e5a497ebb630cbb3d806c3e LICENSE ================================================ FILE: package/perl-module-build/perl-module-build.mk ================================================ ################################################################################ # # perl-module-build # ################################################################################ PERL_MODULE_BUILD_VERSION = 0.4231 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 GPL-1.0+ PERL_MODULE_BUILD_LICENSE_FILES = LICENSE PERL_MODULE_BUILD_DISTNAME = Module-Build $(eval $(host-perl-package)) ================================================ FILE: package/perl-module-build-tiny/perl-module-build-tiny.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 2332c90c17454107fea3f2614e11a3a9 Module-Build-Tiny-0.039.tar.gz sha256 7d580ff6ace0cbe555bf36b86dc8ea232581530cbeaaea09bccb57b55797f11c Module-Build-Tiny-0.039.tar.gz # computed by scancpan sha256 09fd2bc0428920c455f10c5a6c52e2bb4615114e88966c75ce27a07af028c36b LICENSE ================================================ FILE: package/perl-module-build-tiny/perl-module-build-tiny.mk ================================================ ################################################################################ # # perl-module-build-tiny # ################################################################################ PERL_MODULE_BUILD_TINY_VERSION = 0.039 PERL_MODULE_BUILD_TINY_SOURCE = Module-Build-Tiny-$(PERL_MODULE_BUILD_TINY_VERSION).tar.gz PERL_MODULE_BUILD_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/L/LE/LEONT HOST_PERL_MODULE_BUILD_TINY_DEPENDENCIES = \ host-perl-extutils-config \ host-perl-extutils-helpers \ host-perl-extutils-installpaths PERL_MODULE_BUILD_TINY_LICENSE = Artistic or GPL-1.0+ PERL_MODULE_BUILD_TINY_LICENSE_FILES = LICENSE PERL_MODULE_BUILD_TINY_DISTNAME = Module-Build-Tiny $(eval $(host-perl-package)) ================================================ FILE: package/perl-module-implementation/Config.in ================================================ config BR2_PACKAGE_PERL_MODULE_IMPLEMENTATION bool "perl-module-implementation" select BR2_PACKAGE_PERL_MODULE_RUNTIME # runtime select BR2_PACKAGE_PERL_TRY_TINY # runtime help Loads one of several alternate underlying implementations for a module. http://metacpan.org/release/Module-Implementation ================================================ FILE: package/perl-module-implementation/perl-module-implementation.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 52e3fe0ca6b1eff0488d59b7aacc0667 Module-Implementation-0.09.tar.gz sha256 c15f1a12f0c2130c9efff3c2e1afe5887b08ccd033bd132186d1e7d5087fd66d Module-Implementation-0.09.tar.gz # computed by scancpan sha256 dd34e4dbcadfaa3db992201873e1cbb4b4f4c18e9bf000821d5c768e66d7ff0b LICENSE ================================================ FILE: package/perl-module-implementation/perl-module-implementation.mk ================================================ ################################################################################ # # perl-module-implementation # ################################################################################ PERL_MODULE_IMPLEMENTATION_VERSION = 0.09 PERL_MODULE_IMPLEMENTATION_SOURCE = Module-Implementation-$(PERL_MODULE_IMPLEMENTATION_VERSION).tar.gz PERL_MODULE_IMPLEMENTATION_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DR/DROLSKY PERL_MODULE_IMPLEMENTATION_LICENSE = Artistic-2.0 PERL_MODULE_IMPLEMENTATION_LICENSE_FILES = LICENSE PERL_MODULE_IMPLEMENTATION_DISTNAME = Module-Implementation $(eval $(perl-package)) ================================================ FILE: package/perl-module-runtime/Config.in ================================================ config BR2_PACKAGE_PERL_MODULE_RUNTIME bool "perl-module-runtime" help runtime module handling. https://metacpan.org/release/Module-Runtime ================================================ FILE: package/perl-module-runtime/perl-module-runtime.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 d3d47222fa2e3dfcb4526f6cc8437b20 Module-Runtime-0.016.tar.gz sha256 68302ec646833547d410be28e09676db75006f4aa58a11f3bdb44ffe99f0f024 Module-Runtime-0.016.tar.gz # computed by scancpan sha256 ad1761020436687e8493208336ef53e84589fdba212da59b05b8111cca75ddc1 README ================================================ FILE: package/perl-module-runtime/perl-module-runtime.mk ================================================ ################################################################################ # # perl-module-runtime # ################################################################################ PERL_MODULE_RUNTIME_VERSION = 0.016 PERL_MODULE_RUNTIME_SOURCE = Module-Runtime-$(PERL_MODULE_RUNTIME_VERSION).tar.gz PERL_MODULE_RUNTIME_SITE = $(BR2_CPAN_MIRROR)/authors/id/Z/ZE/ZEFRAM PERL_MODULE_RUNTIME_DEPENDENCIES = host-perl-module-build PERL_MODULE_RUNTIME_LICENSE = Artistic or GPL-1.0+ PERL_MODULE_RUNTIME_LICENSE_FILES = README PERL_MODULE_RUNTIME_DISTNAME = Module-Runtime $(eval $(perl-package)) ================================================ FILE: package/perl-mojolicious/Config.in ================================================ config BR2_PACKAGE_PERL_MOJOLICIOUS bool "perl-mojolicious" help Real-time web framework. https://mojolicious.org ================================================ FILE: package/perl-mojolicious/perl-mojolicious.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 ea3861504ab25b237f124842f8765b01 Mojolicious-9.19.tar.gz sha256 45056d66b08e544fd77033fafe1730c1d45615e46a92892fc77fb241754a1a97 Mojolicious-9.19.tar.gz # computed by scancpan sha256 19e2e0f2079ea1ce1576eb4ecc0575b33fe45b2b8e71f4aa589d6bedd1da4e0a LICENSE ================================================ FILE: package/perl-mojolicious/perl-mojolicious.mk ================================================ ################################################################################ # # perl-mojolicious # ################################################################################ PERL_MOJOLICIOUS_VERSION = 9.19 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 PERL_MOJOLICIOUS_LICENSE_FILES = LICENSE PERL_MOJOLICIOUS_DISTNAME = Mojolicious $(eval $(perl-package)) ================================================ FILE: package/perl-mojolicious-plugin-authentication/Config.in ================================================ config BR2_PACKAGE_PERL_MOJOLICIOUS_PLUGIN_AUTHENTICATION bool "perl-mojolicious-plugin-authentication" select BR2_PACKAGE_PERL_MOJOLICIOUS # runtime help A plugin to make authentication a bit easier. https://github.com/benvanstaveren/Mojolicious-Plugin-Authentication ================================================ FILE: package/perl-mojolicious-plugin-authentication/perl-mojolicious-plugin-authentication.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 c475f2d3962441698b178ad1bd7d2e29 Mojolicious-Plugin-Authentication-1.37.tar.gz sha256 a7ed206725b7b395d4fca12e3f1d923da644d913333ff48ea231e064ecb1abb6 Mojolicious-Plugin-Authentication-1.37.tar.gz # computed by scancpan sha256 37d219684a6c5f8754435fb0dd36a779121e416553fd6a75e22a7545039d1021 LICENSE ================================================ FILE: package/perl-mojolicious-plugin-authentication/perl-mojolicious-plugin-authentication.mk ================================================ ################################################################################ # # perl-mojolicious-plugin-authentication # ################################################################################ PERL_MOJOLICIOUS_PLUGIN_AUTHENTICATION_VERSION = 1.37 PERL_MOJOLICIOUS_PLUGIN_AUTHENTICATION_SOURCE = Mojolicious-Plugin-Authentication-$(PERL_MOJOLICIOUS_PLUGIN_AUTHENTICATION_VERSION).tar.gz PERL_MOJOLICIOUS_PLUGIN_AUTHENTICATION_SITE = $(BR2_CPAN_MIRROR)/authors/id/J/JJ/JJATRIA PERL_MOJOLICIOUS_PLUGIN_AUTHENTICATION_LICENSE = Artistic or GPL-1.0+ PERL_MOJOLICIOUS_PLUGIN_AUTHENTICATION_LICENSE_FILES = LICENSE PERL_MOJOLICIOUS_PLUGIN_AUTHENTICATION_DISTNAME = Mojolicious-Plugin-Authentication $(eval $(perl-package)) ================================================ FILE: package/perl-mojolicious-plugin-authorization/Config.in ================================================ config BR2_PACKAGE_PERL_MOJOLICIOUS_PLUGIN_AUTHORIZATION bool "perl-mojolicious-plugin-authorization" select BR2_PACKAGE_PERL_MOJOLICIOUS # runtime help A plugin to make authorization a bit easier. https://metacpan.org/module/Mojolicious::Plugin::Authorization ================================================ FILE: package/perl-mojolicious-plugin-authorization/perl-mojolicious-plugin-authorization.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 7906886e2a66b84bb3c0edd7ea85c485 Mojolicious-Plugin-Authorization-1.06.tar.gz sha256 d21ee5ab5fd8c630bc28ce001f9c91bba500370baf7cc8f6f60c9a4e051f9a6c Mojolicious-Plugin-Authorization-1.06.tar.gz # computed by scancpan sha256 dfab85cd06e80a3493217a1dc741cf9065417d2e803d50756f013c0b6cb0cb3e LICENSE ================================================ FILE: package/perl-mojolicious-plugin-authorization/perl-mojolicious-plugin-authorization.mk ================================================ ################################################################################ # # perl-mojolicious-plugin-authorization # ################################################################################ PERL_MOJOLICIOUS_PLUGIN_AUTHORIZATION_VERSION = 1.06 PERL_MOJOLICIOUS_PLUGIN_AUTHORIZATION_SOURCE = Mojolicious-Plugin-Authorization-$(PERL_MOJOLICIOUS_PLUGIN_AUTHORIZATION_VERSION).tar.gz PERL_MOJOLICIOUS_PLUGIN_AUTHORIZATION_SITE = $(BR2_CPAN_MIRROR)/authors/id/B/BY/BYTEROCK PERL_MOJOLICIOUS_PLUGIN_AUTHORIZATION_DEPENDENCIES = host-perl-module-build PERL_MOJOLICIOUS_PLUGIN_AUTHORIZATION_LICENSE = Artistic or GPL-1.0+ PERL_MOJOLICIOUS_PLUGIN_AUTHORIZATION_LICENSE_FILES = LICENSE PERL_MOJOLICIOUS_PLUGIN_AUTHORIZATION_DISTNAME = Mojolicious-Plugin-Authorization $(eval $(perl-package)) ================================================ FILE: package/perl-mojolicious-plugin-cspheader/Config.in ================================================ config BR2_PACKAGE_PERL_MOJOLICIOUS_PLUGIN_CSPHEADER bool "perl-mojolicious-plugin-cspheader" select BR2_PACKAGE_PERL_MOJOLICIOUS # runtime help Mojolicious Plugin to add Content-Security-Policy header to every HTTP response. https://metacpan.org/release/Mojolicious-Plugin-CSPHeader ================================================ FILE: package/perl-mojolicious-plugin-cspheader/perl-mojolicious-plugin-cspheader.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 3d1b01c393e7ed576e4b503d26a88a3e Mojolicious-Plugin-CSPHeader-0.06.tar.gz sha256 0523a170af6620dab5b746725f171a138b6cff3d2d84e1a30af891741550f4a7 Mojolicious-Plugin-CSPHeader-0.06.tar.gz # computed by scancpan sha256 4bb36edd2bcafef11ca615f69607953a31ee05ae172b69990aee317e95653456 LICENSE ================================================ FILE: package/perl-mojolicious-plugin-cspheader/perl-mojolicious-plugin-cspheader.mk ================================================ ################################################################################ # # perl-mojolicious-plugin-cspheader # ################################################################################ PERL_MOJOLICIOUS_PLUGIN_CSPHEADER_VERSION = 0.06 PERL_MOJOLICIOUS_PLUGIN_CSPHEADER_SOURCE = Mojolicious-Plugin-CSPHeader-$(PERL_MOJOLICIOUS_PLUGIN_CSPHEADER_VERSION).tar.gz PERL_MOJOLICIOUS_PLUGIN_CSPHEADER_SITE = $(BR2_CPAN_MIRROR)/authors/id/L/LD/LDIDRY PERL_MOJOLICIOUS_PLUGIN_CSPHEADER_LICENSE = Artistic or GPL-1.0+ PERL_MOJOLICIOUS_PLUGIN_CSPHEADER_LICENSE_FILES = LICENSE PERL_MOJOLICIOUS_PLUGIN_CSPHEADER_DISTNAME = Mojolicious-Plugin-CSPHeader $(eval $(perl-package)) ================================================ FILE: package/perl-mojolicious-plugin-i18n/Config.in ================================================ config BR2_PACKAGE_PERL_MOJOLICIOUS_PLUGIN_I18N bool "perl-mojolicious-plugin-i18n" select BR2_PACKAGE_PERL_MOJOLICIOUS # runtime help Internationalization Plugin for Mojolicious. https://metacpan.org/release/Mojolicious-Plugin-I18N ================================================ FILE: package/perl-mojolicious-plugin-i18n/perl-mojolicious-plugin-i18n.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 4002f7a7da4c90973ad6eedfb0fcfa16 Mojolicious-Plugin-I18N-1.6.tar.gz sha256 32fb5ef8037d954b7ecebef5c1b2b24b420abd829702312f4ad42794f52b514d Mojolicious-Plugin-I18N-1.6.tar.gz # manually computed sha256 82b05028033057b388b0040a3b5590a1c51168fe3b9899bffdb5ef7962c4eb47 README.pod ================================================ FILE: package/perl-mojolicious-plugin-i18n/perl-mojolicious-plugin-i18n.mk ================================================ ################################################################################ # # perl-mojolicious-plugin-i18n # ################################################################################ PERL_MOJOLICIOUS_PLUGIN_I18N_VERSION = 1.6 PERL_MOJOLICIOUS_PLUGIN_I18N_SOURCE = Mojolicious-Plugin-I18N-$(PERL_MOJOLICIOUS_PLUGIN_I18N_VERSION).tar.gz PERL_MOJOLICIOUS_PLUGIN_I18N_SITE = $(BR2_CPAN_MIRROR)/authors/id/S/SH/SHARIFULN PERL_MOJOLICIOUS_PLUGIN_I18N_DEPENDENCIES = host-perl-module-build PERL_MOJOLICIOUS_PLUGIN_I18N_LICENSE = Artistic-2.0 PERL_MOJOLICIOUS_PLUGIN_I18N_LICENSE_FILES = README.pod PERL_MOJOLICIOUS_PLUGIN_I18N_DISTNAME = Mojolicious-Plugin-I18N $(eval $(perl-package)) ================================================ FILE: package/perl-mojolicious-plugin-securityheader/Config.in ================================================ config BR2_PACKAGE_PERL_MOJOLICIOUS_PLUGIN_SECURITYHEADER bool "perl-mojolicious-plugin-securityheader" select BR2_PACKAGE_PERL_MOJOLICIOUS # runtime help Mojolicious Plugin. http://github.com/reneeb/Mojolicious-Plugin-SecurityHeader ================================================ FILE: package/perl-mojolicious-plugin-securityheader/perl-mojolicious-plugin-securityheader.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 38cf59258547ac866577db2d43632f30 Mojolicious-Plugin-SecurityHeader-0.07.tar.gz sha256 940474eaf7a415e5117b004387862473612e079a413590db1eb9c85d17a6648f Mojolicious-Plugin-SecurityHeader-0.07.tar.gz # computed by scancpan sha256 0c38e4629cc9eee869217d62ad765e581e54958596672046a62dfa4cfd87bb09 LICENSE ================================================ FILE: package/perl-mojolicious-plugin-securityheader/perl-mojolicious-plugin-securityheader.mk ================================================ ################################################################################ # # perl-mojolicious-plugin-securityheader # ################################################################################ PERL_MOJOLICIOUS_PLUGIN_SECURITYHEADER_VERSION = 0.07 PERL_MOJOLICIOUS_PLUGIN_SECURITYHEADER_SOURCE = Mojolicious-Plugin-SecurityHeader-$(PERL_MOJOLICIOUS_PLUGIN_SECURITYHEADER_VERSION).tar.gz PERL_MOJOLICIOUS_PLUGIN_SECURITYHEADER_SITE = $(BR2_CPAN_MIRROR)/authors/id/R/RE/RENEEB PERL_MOJOLICIOUS_PLUGIN_SECURITYHEADER_LICENSE = Artistic-2.0 PERL_MOJOLICIOUS_PLUGIN_SECURITYHEADER_LICENSE_FILES = LICENSE PERL_MOJOLICIOUS_PLUGIN_SECURITYHEADER_DISTNAME = Mojolicious-Plugin-SecurityHeader $(eval $(perl-package)) ================================================ FILE: package/perl-moo/Config.in ================================================ config BR2_PACKAGE_PERL_MOO bool "perl-moo" select BR2_PACKAGE_PERL_CLASS_METHOD_MODIFIERS # runtime select BR2_PACKAGE_PERL_ROLE_TINY # runtime select BR2_PACKAGE_PERL_SUB_QUOTE # runtime help Minimalist Object Orientation (with Moose compatibility). https://metacpan.org/release/Moo ================================================ FILE: package/perl-moo/perl-moo.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 49ecf491b49b9b200e8a5dfd1a42b480 Moo-2.005004.tar.gz sha256 e3030b80bd554a66f6b3c27fd53b1b5909d12af05c4c11ece9a58f8d1e478928 Moo-2.005004.tar.gz # computed by scancpan sha256 a8a1595c2347f7d10e896809d4f3dea85ccc10ac5644b8073111233cd120b14a LICENSE ================================================ FILE: package/perl-moo/perl-moo.mk ================================================ ################################################################################ # # perl-moo # ################################################################################ PERL_MOO_VERSION = 2.005004 PERL_MOO_SOURCE = Moo-$(PERL_MOO_VERSION).tar.gz PERL_MOO_SITE = $(BR2_CPAN_MIRROR)/authors/id/H/HA/HAARG PERL_MOO_LICENSE = Artistic or GPL-1.0+ PERL_MOO_LICENSE_FILES = LICENSE PERL_MOO_DISTNAME = Moo $(eval $(perl-package)) ================================================ FILE: package/perl-mozilla-ca/Config.in ================================================ config BR2_PACKAGE_PERL_MOZILLA_CA bool "perl-mozilla-ca" help Mozilla's CA cert bundle in PEM format. https://metacpan.org/release/Mozilla-CA ================================================ FILE: package/perl-mozilla-ca/perl-mozilla-ca.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 8ac3fe1a83c45da3f468f78ab8133ea6 Mozilla-CA-20200520.tar.gz sha256 b3ca0002310bf24a16c0d5920bdea97a2f46e77e7be3e7377e850d033387c726 Mozilla-CA-20200520.tar.gz # computed by scancpan sha256 95cd63dae5c2bf6e7cf33435981614a36c85ef01fc7a02464e05e58a5355398e README ================================================ FILE: package/perl-mozilla-ca/perl-mozilla-ca.mk ================================================ ################################################################################ # # perl-mozilla-ca # ################################################################################ PERL_MOZILLA_CA_VERSION = 20200520 PERL_MOZILLA_CA_SOURCE = Mozilla-CA-$(PERL_MOZILLA_CA_VERSION).tar.gz PERL_MOZILLA_CA_SITE = $(BR2_CPAN_MIRROR)/authors/id/A/AB/ABH PERL_MOZILLA_CA_LICENSE = MPL-2.0 PERL_MOZILLA_CA_LICENSE_FILES = README PERL_MOZILLA_CA_DISTNAME = Mozilla-CA $(eval $(perl-package)) ================================================ FILE: package/perl-net-dns/Config.in ================================================ config BR2_PACKAGE_PERL_NET_DNS bool "perl-net-dns" select BR2_PACKAGE_PERL_DIGEST_HMAC # runtime help Perl Interface to the Domain Name System. https://metacpan.org/release/Net-DNS ================================================ FILE: package/perl-net-dns/perl-net-dns.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 e8ee02ec42dfeb10ae4a0d175d5fcafc Net-DNS-1.32.tar.gz sha256 b890a7b44d573f27cc713caadf1e12eaaa4478a6504d1157194df614316b5b50 Net-DNS-1.32.tar.gz # computed by scancpan sha256 1e44fcf65509b47a251eda0ce1f8bd6aefa13517e38cb1e95b8d36120fb15452 LICENSE ================================================ FILE: package/perl-net-dns/perl-net-dns.mk ================================================ ################################################################################ # # perl-net-dns # ################################################################################ PERL_NET_DNS_VERSION = 1.32 PERL_NET_DNS_SOURCE = Net-DNS-$(PERL_NET_DNS_VERSION).tar.gz PERL_NET_DNS_SITE = $(BR2_CPAN_MIRROR)/authors/id/N/NL/NLNETLABS PERL_NET_DNS_LICENSE = MIT PERL_NET_DNS_LICENSE_FILES = LICENSE PERL_NET_DNS_DISTNAME = Net-DNS $(eval $(perl-package)) ================================================ FILE: package/perl-net-http/Config.in ================================================ config BR2_PACKAGE_PERL_NET_HTTP bool "perl-net-http" select BR2_PACKAGE_PERL_URI # runtime help Low-level HTTP connection (client). https://github.com/libwww-perl/Net-HTTP ================================================ FILE: package/perl-net-http/perl-net-http.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 dbe27483034a79a7d43f61cc48540641 Net-HTTP-6.21.tar.gz sha256 375aa35b76be99f06464089174d66ac76f78ce83a5c92a907bbfab18b099eec4 Net-HTTP-6.21.tar.gz # computed by scancpan sha256 49fbcc80e17295888b909176a0029f275a8c17b6cbfaf8867fe571ebe9a9ca79 LICENSE ================================================ FILE: package/perl-net-http/perl-net-http.mk ================================================ ################################################################################ # # perl-net-http # ################################################################################ PERL_NET_HTTP_VERSION = 6.21 PERL_NET_HTTP_SOURCE = Net-HTTP-$(PERL_NET_HTTP_VERSION).tar.gz PERL_NET_HTTP_SITE = $(BR2_CPAN_MIRROR)/authors/id/O/OA/OALDERS PERL_NET_HTTP_LICENSE = Artistic or GPL-1.0+ PERL_NET_HTTP_LICENSE_FILES = LICENSE PERL_NET_HTTP_DISTNAME = Net-HTTP $(eval $(perl-package)) ================================================ FILE: package/perl-net-snmp/Config.in ================================================ config BR2_PACKAGE_PERL_NET_SNMP bool "perl-net-snmp" help Object oriented interface to SNMP. https://metacpan.org/release/Net-SNMP ================================================ FILE: package/perl-net-snmp/perl-net-snmp.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 6137f04f9942d703f66179f890e3d096 Net-SNMP-v6.0.1.tar.gz sha256 14c37bc1cbb3f3cdc7d6c13e0f27a859f14cdcfd5ea54a0467a88bc259b0b741 Net-SNMP-v6.0.1.tar.gz # computed by scancpan sha256 a038159be54a2807dc48e2b946514d59fceab6737d5461d93d55297a98e6e24e LICENSE ================================================ FILE: package/perl-net-snmp/perl-net-snmp.mk ================================================ ################################################################################ # # perl-net-snmp # ################################################################################ PERL_NET_SNMP_VERSION = 6.0.1 PERL_NET_SNMP_SOURCE = Net-SNMP-v$(PERL_NET_SNMP_VERSION).tar.gz PERL_NET_SNMP_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DT/DTOWN PERL_NET_SNMP_DEPENDENCIES = host-perl-module-build PERL_NET_SNMP_LICENSE = Artistic or GPL-1.0+ PERL_NET_SNMP_LICENSE_FILES = LICENSE PERL_NET_SNMP_DISTNAME = Net-SNMP $(eval $(perl-package)) ================================================ FILE: package/perl-net-ssh2/Config.in ================================================ config BR2_PACKAGE_PERL_NET_SSH2 bool "perl-net-ssh2" depends on !BR2_STATIC_LIBS depends on BR2_PACKAGE_LIBSSH2_OPENSSL || BR2_PACKAGE_LIBSSH2_LIBGCRYPT select BR2_PACKAGE_ZLIB help Support for the SSH 2 protocol via libssh2. Note: only the OpenSSL and Libgcrypt backends of libssh2 are supported. https://metacpan.org/release/Net-SSH2 comment "perl-net-ssh2 needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS comment "perl-net-ssh2 needs libssh2 with OpenSSL or Libgcrypt backend" depends on !(BR2_PACKAGE_LIBSSH2_OPENSSL || BR2_PACKAGE_LIBSSH2_LIBGCRYPT) ================================================ FILE: package/perl-net-ssh2/perl-net-ssh2.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 57aa0f6e2be4020f75888a7195ad5cba Net-SSH2-0.72.tar.gz sha256 867d83070fac6436b9f0971918243002072fbf8d2724a87c254b34250dce0222 Net-SSH2-0.72.tar.gz # computed by scancpan sha256 268afaee7aa88a41959c93cd91853e8124bdbe64a74480d36ff1130e01a1c0ca README.pod ================================================ FILE: package/perl-net-ssh2/perl-net-ssh2.mk ================================================ ################################################################################ # # perl-net-ssh2 # ################################################################################ PERL_NET_SSH2_VERSION = 0.72 PERL_NET_SSH2_SOURCE = Net-SSH2-$(PERL_NET_SSH2_VERSION).tar.gz PERL_NET_SSH2_SITE = $(BR2_CPAN_MIRROR)/authors/id/S/SA/SALVA PERL_NET_SSH2_LICENSE = Artistic or GPL-1.0+ PERL_NET_SSH2_LICENSE_FILES = README.pod PERL_NET_SSH2_DEPENDENCIES = libssh2 zlib PERL_NET_SSH2_DISTNAME = Net-SSH2 # build system will use host search paths by default PERL_NET_SSH2_CONF_OPTS += \ lib="$(STAGING_DIR)/usr/lib" \ inc="$(STAGING_DIR)/usr/include" ifeq ($(BR2_PACKAGE_LIBSSH2_LIBGCRYPT),y) PERL_NET_SSH2_CONF_OPTS += crypto_backend=gcrypt endif $(eval $(perl-package)) ================================================ FILE: package/perl-net-ssleay/0001-fix-build-system.patch ================================================ buildsystem: fix for cross-compilation Avoid running the openssl binary, since it would break for cross-compilation. Buildroot has a supported version, anyway. Also, avoid adding hard-coded includes and libraries search paths, since they are missing the destdir; Buildroot compilers and linkers already know where to search, anyway. Signed-off-by: "Yann E. MORIN" diff -durN perl-net-ssleay-1.64.orig/inc/Module/Install/PRIVATE/Net/SSLeay.pm perl-net-ssleay-1.64/inc/Module/Install/PRIVATE/Net/SSLeay.pm --- perl-net-ssleay-1.64.orig/inc/Module/Install/PRIVATE/Net/SSLeay.pm 2014-04-01 08:08:37.000000000 +0200 +++ perl-net-ssleay-1.64/inc/Module/Install/PRIVATE/Net/SSLeay.pm 2014-07-13 00:38:46.281380282 +0200 @@ -37,14 +37,18 @@ exit 0; # according http://wiki.cpantesters.org/wiki/CPANAuthorNotes this is best-practice when "missing library" } - $self->check_openssl_version($prefix, $exec); +# Does not work for cross-compilation. +# In Buildroot, we do have a supported version. +# $self->check_openssl_version($prefix, $exec); my $opts = $self->ssleay_get_build_opts($prefix, $exec); $self->makemaker_args( CCCDLFLAGS => $opts->{cccdlflags}, OPTIMIZE => $opts->{optimize}, - INC => join(' ', map {"-I$_"} @{$opts->{inc_paths}}), - LIBS => join(' ', (map {"-L$_"} @{$opts->{lib_paths}}), (map {"-l$_"} @{$opts->{lib_links}})), +# Buildroot already has the correct include and library search paths. +# INC => join(' ', map {"-I$_"} @{$opts->{inc_paths}}), +# LIBS => join(' ', (map {"-L$_"} @{$opts->{lib_paths}}), (map {"-l$_"} @{$opts->{lib_links}})), + LIBS => join(' ', (map {"-l$_"} @{$opts->{lib_links}})), ); if ( $self->prompt( ================================================ FILE: package/perl-net-ssleay/Config.in ================================================ config BR2_PACKAGE_PERL_NET_SSLEAY bool "perl-net-ssleay" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160 if BR2_PACKAGE_LIBOPENSSL help Perl extension for using OpenSSL. https://metacpan.org/release/Net-SSLeay comment "perl-net-ssleay needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-net-ssleay/perl-net-ssleay.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 d602bdce4e0531c6efc276e3e429ca69 Net-SSLeay-1.85.tar.gz sha256 9d8188b9fb1cae3bd791979c20554925d5e94a138d00414f1a6814549927b0c8 Net-SSLeay-1.85.tar.gz # computed by scancpan sha256 b55065185a2172d9f2ea2dd87c18c206ea3dc45a64e5f3deb3eee34d839dc822 LICENSE ================================================ FILE: package/perl-net-ssleay/perl-net-ssleay.mk ================================================ ################################################################################ # # perl-net-ssleay # ################################################################################ PERL_NET_SSLEAY_VERSION = 1.85 PERL_NET_SSLEAY_SOURCE = Net-SSLeay-$(PERL_NET_SSLEAY_VERSION).tar.gz PERL_NET_SSLEAY_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MI/MIKEM PERL_NET_SSLEAY_DEPENDENCIES = openssl PERL_NET_SSLEAY_LICENSE = OpenSSL PERL_NET_SSLEAY_LICENSE_FILES = LICENSE PERL_NET_SSLEAY_DISTNAME = Net-SSLeay # Try as hard as possible to remedy to the brain-damage their build-system # suffers from: don't search for openssl, they pick the host-system one. PERL_NET_SSLEAY_CONF_ENV = OPENSSL_PREFIX=$(STAGING_DIR)/usr # Remove problematic single quotes in LDDLFLAGS, CCFLAGS & OPTIMIZE definition define PERL_NET_SSLEAY_FIX_MAKEFILE $(SED) "s/^LDDLFLAGS = '\(.*\)'/LDDLFLAGS = \1/" $(@D)/Makefile $(SED) "s/^CCFLAGS = '\(.*\)'/CCFLAGS = \1/" $(@D)/Makefile $(SED) "s/^OPTIMIZE = '\(.*\)'/OPTIMIZE = \1/" $(@D)/Makefile endef PERL_NET_SSLEAY_POST_CONFIGURE_HOOKS += PERL_NET_SSLEAY_FIX_MAKEFILE $(eval $(perl-package)) ================================================ FILE: package/perl-net-telnet/Config.in ================================================ config BR2_PACKAGE_PERL_NET_TELNET bool "perl-net-telnet" help Interact with TELNET port or other TCP ports. https://metacpan.org/release/Net-Telnet ================================================ FILE: package/perl-net-telnet/perl-net-telnet.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 c8573c57a2d9469f038c40ac284b1e5f Net-Telnet-3.05.tar.gz sha256 677f68ba2cd2a824fae323fa82e183bf7e3d03c3c499c91d923bd6283796a743 Net-Telnet-3.05.tar.gz # computed by scancpan sha256 22d0a3343b46c7857cd7d06cb37fe437d467df71aa5854af515374e1e8bf6c53 README ================================================ FILE: package/perl-net-telnet/perl-net-telnet.mk ================================================ ################################################################################ # # perl-net-telnet # ################################################################################ PERL_NET_TELNET_VERSION = 3.05 PERL_NET_TELNET_SOURCE = Net-Telnet-$(PERL_NET_TELNET_VERSION).tar.gz PERL_NET_TELNET_SITE = $(BR2_CPAN_MIRROR)/authors/id/J/JR/JROGERS PERL_NET_TELNET_LICENSE = Artistic or GPL-1.0+ PERL_NET_TELNET_LICENSE_FILES = README PERL_NET_TELNET_DISTNAME = Net-Telnet $(eval $(perl-package)) ================================================ FILE: package/perl-netaddr-ip/Config.in ================================================ config BR2_PACKAGE_PERL_NETADDR_IP bool "perl-netaddr-ip" help Manages IPv4 and IPv6 addresses and subnets. https://metacpan.org/release/NetAddr-IP ================================================ FILE: package/perl-netaddr-ip/perl-netaddr-ip.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 990dfcbffae356835c536e8ab56a2880 NetAddr-IP-4.079.tar.gz sha256 ec5a82dfb7028bcd28bb3d569f95d87dd4166cc19867f2184ed3a59f6d6ca0e7 NetAddr-IP-4.079.tar.gz # computed by scancpan sha256 b7fd9b73ea99602016a326e0b62e6646060d18febdd065ceca8bb482208c3d88 Artistic sha256 773a84089e32147cffef4c6fa127a14658c8c5866987d71d86f0fe22161780f4 Copying ================================================ FILE: package/perl-netaddr-ip/perl-netaddr-ip.mk ================================================ ################################################################################ # # perl-netaddr-ip # ################################################################################ PERL_NETADDR_IP_VERSION = 4.079 PERL_NETADDR_IP_SOURCE = NetAddr-IP-$(PERL_NETADDR_IP_VERSION).tar.gz PERL_NETADDR_IP_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MI/MIKER PERL_NETADDR_IP_LICENSE = Artistic or GPL-1.0+ PERL_NETADDR_IP_LICENSE_FILES = Artistic Copying PERL_NETADDR_IP_DISTNAME = NetAddr-IP ifeq ($(BR2_STATIC_LIBS),y) PERL_NETADDR_IP_CONF_OPTS = -noxs endif $(eval $(perl-package)) ================================================ FILE: package/perl-number-bytes-human/Config.in ================================================ config BR2_PACKAGE_PERL_NUMBER_BYTES_HUMAN bool "perl-number-bytes-human" help Convert byte count to human readable format. https://metacpan.org/release/Number-Bytes-Human ================================================ FILE: package/perl-number-bytes-human/perl-number-bytes-human.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 43d2c86a55924aa71535a41de0311efd Number-Bytes-Human-0.11.tar.gz sha256 5fc79c49b0b40df780479c43696381343e2b6ad1fe52859f60bc65b66ebe6f2c Number-Bytes-Human-0.11.tar.gz # computed by scancpan sha256 d42143fe4b63cb5d488d65a44e6c55769b098ea447462ff33316b33a837b7cf9 README ================================================ FILE: package/perl-number-bytes-human/perl-number-bytes-human.mk ================================================ ################################################################################ # # perl-number-bytes-human # ################################################################################ PERL_NUMBER_BYTES_HUMAN_VERSION = 0.11 PERL_NUMBER_BYTES_HUMAN_SOURCE = Number-Bytes-Human-$(PERL_NUMBER_BYTES_HUMAN_VERSION).tar.gz PERL_NUMBER_BYTES_HUMAN_SITE = $(BR2_CPAN_MIRROR)/authors/id/F/FE/FERREIRA PERL_NUMBER_BYTES_HUMAN_LICENSE = Artistic or GPL-1.0+ PERL_NUMBER_BYTES_HUMAN_LICENSE_FILES = README PERL_NUMBER_BYTES_HUMAN_DISTNAME = Number-Bytes-Human $(eval $(perl-package)) ================================================ FILE: package/perl-package-stash/Config.in ================================================ config BR2_PACKAGE_PERL_PACKAGE_STASH bool "perl-package-stash" select BR2_PACKAGE_PERL_DIST_CHECKCONFLICTS # runtime select BR2_PACKAGE_PERL_MODULE_IMPLEMENTATION # runtime help routines for manipulating stashes. http://metacpan.org/release/Package-Stash ================================================ FILE: package/perl-package-stash/perl-package-stash.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 287d80c9115c9230912aca684f8ca92e Package-Stash-0.39.tar.gz sha256 9165f555112e080493ce0e9129de0886da30b2593fb353a2abd1c76b2d2621b5 Package-Stash-0.39.tar.gz # computed by scancpan sha256 810b319a6f4a53c9cbbef513da17b2f0c872accd149bb889f153f4b78cf8cbb8 LICENSE ================================================ FILE: package/perl-package-stash/perl-package-stash.mk ================================================ ################################################################################ # # perl-package-stash # ################################################################################ PERL_PACKAGE_STASH_VERSION = 0.39 PERL_PACKAGE_STASH_SOURCE = Package-Stash-$(PERL_PACKAGE_STASH_VERSION).tar.gz PERL_PACKAGE_STASH_SITE = $(BR2_CPAN_MIRROR)/authors/id/E/ET/ETHER PERL_PACKAGE_STASH_LICENSE = Artistic or GPL-1.0+ PERL_PACKAGE_STASH_LICENSE_FILES = LICENSE PERL_PACKAGE_STASH_DISTNAME = Package-Stash $(eval $(perl-package)) ================================================ FILE: package/perl-params-util/Config.in ================================================ config BR2_PACKAGE_PERL_PARAMS_UTIL bool "perl-params-util" depends on !BR2_STATIC_LIBS help Simple, compact and correct param-checking functions. https://metacpan.org/release/Params-Util comment "perl-params-util needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-params-util/perl-params-util.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 f1aa70ba570f03f14cd394096b9c6883 Params-Util-1.102.tar.gz sha256 499bb1b482db24fda277a51525596ad092c2bd51dd508fa8fec2e9f849097402 Params-Util-1.102.tar.gz # computed by scancpan sha256 08c2ed7589aff3b2076b48b792078d3479c2295559ee7bc4615e93abe0473939 ARTISTIC-1.0 sha256 3d2fb9b42d1134f39c2e990d66b5e9b77005663fe956db526cc380eb3d9a77d8 GPL-1 sha256 834c4ebff45be11f35f059b077fdd747dee4b8a747b95049d849fef1c0ccdc62 LICENSE ================================================ FILE: package/perl-params-util/perl-params-util.mk ================================================ ################################################################################ # # perl-params-util # ################################################################################ PERL_PARAMS_UTIL_VERSION = 1.102 PERL_PARAMS_UTIL_SOURCE = Params-Util-$(PERL_PARAMS_UTIL_VERSION).tar.gz PERL_PARAMS_UTIL_SITE = $(BR2_CPAN_MIRROR)/authors/id/R/RE/REHSACK PERL_PARAMS_UTIL_LICENSE = Artistic or GPL-1.0+ PERL_PARAMS_UTIL_LICENSE_FILES = ARTISTIC-1.0 GPL-1 LICENSE PERL_PARAMS_UTIL_DISTNAME = Params-Util $(eval $(perl-package)) ================================================ FILE: package/perl-parse-yapp/Config.in ================================================ config BR2_PACKAGE_PERL_PARSE_YAPP bool "perl-parse-yapp" help A perl frontend to the Parse::Yapp module. https://metacpan.org/release/Parse-Yapp ================================================ FILE: package/perl-parse-yapp/perl-parse-yapp.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 69584d5b0f0304bb2a23cffcd982c5de Parse-Yapp-1.21.tar.gz sha256 3810e998308fba2e0f4f26043035032b027ce51ce5c8a52a8b8e340ca65f13e5 Parse-Yapp-1.21.tar.gz # locally computed sha256 a5d97e3ee50ba12b7897841a117790f723795e4a61e5ad1668dc064956c84e96 lib/Parse/Yapp.pm ================================================ FILE: package/perl-parse-yapp/perl-parse-yapp.mk ================================================ ################################################################################ # # perl-parse-yapp # ################################################################################ PERL_PARSE_YAPP_VERSION = 1.21 PERL_PARSE_YAPP_SOURCE = Parse-Yapp-$(PERL_PARSE_YAPP_VERSION).tar.gz PERL_PARSE_YAPP_SITE = $(BR2_CPAN_MIRROR)/authors/id/W/WB/WBRASWELL PERL_PARSE_YAPP_LICENSE = Artistic or GPL-1.0+ PERL_PARSE_YAPP_LICENSE_FILES = lib/Parse/Yapp.pm PERL_PARSE_YAPP_DISTNAME = Parse-Yapp $(eval $(perl-package)) $(eval $(host-perl-package)) ================================================ FILE: package/perl-path-class/perl-path-class.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 13e6db714f6d5a0e62ca1c4a7fc4d0f3 Path-Class-0.37.tar.gz sha256 654781948602386f2cb2e4473a739f17dc6953d92aabc2498a4ca2561bc248ce Path-Class-0.37.tar.gz # computed by scancpan sha256 636b5c82eabfe3d4cd86126db9502fd537d1442ad2c88c93dbe221e62b5f1710 LICENSE ================================================ FILE: package/perl-path-class/perl-path-class.mk ================================================ ################################################################################ # # perl-path-class # ################################################################################ PERL_PATH_CLASS_VERSION = 0.37 PERL_PATH_CLASS_SOURCE = Path-Class-$(PERL_PATH_CLASS_VERSION).tar.gz PERL_PATH_CLASS_SITE = $(BR2_CPAN_MIRROR)/authors/id/K/KW/KWILLIAMS HOST_PERL_PATH_CLASS_DEPENDENCIES = host-perl-module-build PERL_PATH_CLASS_LICENSE = Artistic or GPL-1.0+ PERL_PATH_CLASS_LICENSE_FILES = LICENSE PERL_PATH_CLASS_DISTNAME = Path-Class $(eval $(host-perl-package)) ================================================ FILE: package/perl-path-tiny/Config.in ================================================ config BR2_PACKAGE_PERL_PATH_TINY bool "perl-path-tiny" help File path utility. https://github.com/dagolden/Path-Tiny ================================================ FILE: package/perl-path-tiny/perl-path-tiny.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 cb34fd356725ec12b78e88ddac37db08 Path-Tiny-0.118.tar.gz sha256 32138d8d0f4c9c1a84d2a8f91bc5e913d37d8a7edefbb15a10961bfed560b0fd Path-Tiny-0.118.tar.gz # computed by scancpan sha256 a999b03d2b80e5c7f987289ac835fa2d88cafa9f0df24adf8a1fd21e175acd79 LICENSE ================================================ FILE: package/perl-path-tiny/perl-path-tiny.mk ================================================ ################################################################################ # # perl-path-tiny # ################################################################################ PERL_PATH_TINY_VERSION = 0.118 PERL_PATH_TINY_SOURCE = Path-Tiny-$(PERL_PATH_TINY_VERSION).tar.gz PERL_PATH_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DA/DAGOLDEN PERL_PATH_TINY_LICENSE = Apache-2.0 PERL_PATH_TINY_LICENSE_FILES = LICENSE PERL_PATH_TINY_DISTNAME = Path-Tiny $(eval $(perl-package)) ================================================ FILE: package/perl-plack/Config.in ================================================ config BR2_PACKAGE_PERL_PLACK bool "perl-plack" select BR2_PACKAGE_PERL_APACHE_LOGFORMAT_COMPILER # runtime select BR2_PACKAGE_PERL_COOKIE_BAKER # runtime select BR2_PACKAGE_PERL_DEVEL_STACKTRACE # runtime select BR2_PACKAGE_PERL_DEVEL_STACKTRACE_ASHTML # runtime select BR2_PACKAGE_PERL_FILE_SHAREDIR # runtime select BR2_PACKAGE_PERL_FILESYS_NOTIFY_SIMPLE # runtime select BR2_PACKAGE_PERL_HTTP_ENTITY_PARSER # runtime select BR2_PACKAGE_PERL_HTTP_HEADERS_FAST # runtime select BR2_PACKAGE_PERL_HTTP_MESSAGE # runtime select BR2_PACKAGE_PERL_HASH_MULTIVALUE # runtime select BR2_PACKAGE_PERL_STREAM_BUFFERED # runtime select BR2_PACKAGE_PERL_TRY_TINY # runtime select BR2_PACKAGE_PERL_URI # runtime select BR2_PACKAGE_PERL_WWW_FORM_URLENCODED # runtime help Perl Superglue for Web frameworks and Web Servers (PSGI toolkit). https://github.com/plack/Plack ================================================ FILE: package/perl-plack/perl-plack.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 36282b473b4521219c44a9db437b650f Plack-1.0048.tar.gz sha256 30f5f25e19b437859156a2526f61ca9ab708d50d5730c279189403aabfe542a6 Plack-1.0048.tar.gz # computed by scancpan sha256 fb67655b5d1adedef83aed2c79bf4f89c68d8595a7060815520173f663a3631d LICENSE ================================================ FILE: package/perl-plack/perl-plack.mk ================================================ ################################################################################ # # perl-plack # ################################################################################ PERL_PLACK_VERSION = 1.0048 PERL_PLACK_SOURCE = Plack-$(PERL_PLACK_VERSION).tar.gz PERL_PLACK_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MI/MIYAGAWA PERL_PLACK_DEPENDENCIES = host-perl-file-sharedir-install PERL_PLACK_LICENSE = Artistic or GPL-1.0+ PERL_PLACK_LICENSE_FILES = LICENSE PERL_PLACK_DISTNAME = Plack $(eval $(perl-package)) ================================================ FILE: package/perl-posix-strftime-compiler/Config.in ================================================ config BR2_PACKAGE_PERL_POSIX_STRFTIME_COMPILER bool "perl-posix-strftime-compiler" help GNU C library compatible strftime for loggers and servers. https://github.com/kazeburo/POSIX-strftime-Compiler ================================================ FILE: package/perl-posix-strftime-compiler/perl-posix-strftime-compiler.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 3a5ae7d56a5917410c1b661e01ed1a68 POSIX-strftime-Compiler-0.44.tar.gz sha256 dfd3c97398dcfe51c8236b85e3dc28035667b76531f7aa0a6535f3aa5405b35a POSIX-strftime-Compiler-0.44.tar.gz # computed by scancpan sha256 79c2a066104e71602785fd815c5aea6f7db78c19451d68521380083f9c2a8805 LICENSE ================================================ FILE: package/perl-posix-strftime-compiler/perl-posix-strftime-compiler.mk ================================================ ################################################################################ # # perl-posix-strftime-compiler # ################################################################################ PERL_POSIX_STRFTIME_COMPILER_VERSION = 0.44 PERL_POSIX_STRFTIME_COMPILER_SOURCE = POSIX-strftime-Compiler-$(PERL_POSIX_STRFTIME_COMPILER_VERSION).tar.gz PERL_POSIX_STRFTIME_COMPILER_SITE = $(BR2_CPAN_MIRROR)/authors/id/K/KA/KAZEBURO PERL_POSIX_STRFTIME_COMPILER_DEPENDENCIES = host-perl-module-build-tiny PERL_POSIX_STRFTIME_COMPILER_LICENSE = Artistic or GPL-1.0+ PERL_POSIX_STRFTIME_COMPILER_LICENSE_FILES = LICENSE PERL_POSIX_STRFTIME_COMPILER_DISTNAME = POSIX-strftime-Compiler $(eval $(perl-package)) ================================================ FILE: package/perl-role-tiny/Config.in ================================================ config BR2_PACKAGE_PERL_ROLE_TINY bool "perl-role-tiny" help Roles: a nouvelle cuisine portion size slice of Moose. https://metacpan.org/release/Role-Tiny ================================================ FILE: package/perl-role-tiny/perl-role-tiny.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 9ee45591befa3d0b1094ac75d282b6ba Role-Tiny-2.002004.tar.gz sha256 d7bdee9e138a4f83aa52d0a981625644bda87ff16642dfa845dcb44d9a242b45 Role-Tiny-2.002004.tar.gz # computed by scancpan sha256 a8a1595c2347f7d10e896809d4f3dea85ccc10ac5644b8073111233cd120b14a LICENSE ================================================ FILE: package/perl-role-tiny/perl-role-tiny.mk ================================================ ################################################################################ # # perl-role-tiny # ################################################################################ PERL_ROLE_TINY_VERSION = 2.002004 PERL_ROLE_TINY_SOURCE = Role-Tiny-$(PERL_ROLE_TINY_VERSION).tar.gz PERL_ROLE_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/H/HA/HAARG PERL_ROLE_TINY_LICENSE = Artistic or GPL-1.0+ PERL_ROLE_TINY_LICENSE_FILES = LICENSE PERL_ROLE_TINY_DISTNAME = Role-Tiny $(eval $(perl-package)) ================================================ FILE: package/perl-stream-buffered/Config.in ================================================ config BR2_PACKAGE_PERL_STREAM_BUFFERED bool "perl-stream-buffered" help temporary buffer to save bytes. https://github.com/plack/Stream-Buffered ================================================ FILE: package/perl-stream-buffered/perl-stream-buffered.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 b030fecaa784cd573289ae797c7aeae9 Stream-Buffered-0.03.tar.gz sha256 9b2d4390b5de6b0cf4558e4ad04317a73c5e13dd19af29149c4e47c37fb2423b Stream-Buffered-0.03.tar.gz # computed by scancpan sha256 68e8c38e6d2f2b0570a908411f8321b80a7e35ea44f43729807c9ac9a025f591 LICENSE ================================================ FILE: package/perl-stream-buffered/perl-stream-buffered.mk ================================================ ################################################################################ # # perl-stream-buffered # ################################################################################ PERL_STREAM_BUFFERED_VERSION = 0.03 PERL_STREAM_BUFFERED_SOURCE = Stream-Buffered-$(PERL_STREAM_BUFFERED_VERSION).tar.gz PERL_STREAM_BUFFERED_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DO/DOY PERL_STREAM_BUFFERED_LICENSE = Artistic or GPL-1.0+ PERL_STREAM_BUFFERED_LICENSE_FILES = LICENSE PERL_STREAM_BUFFERED_DISTNAME = Stream-Buffered $(eval $(perl-package)) ================================================ FILE: package/perl-sub-exporter-progressive/Config.in ================================================ config BR2_PACKAGE_PERL_SUB_EXPORTER_PROGRESSIVE bool "perl-sub-exporter-progressive" help Only use Sub::Exporter if you need it. https://github.com/frioux/Sub-Exporter-Progressive ================================================ FILE: package/perl-sub-exporter-progressive/perl-sub-exporter-progressive.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 72cf6acdd2a0a8b105821a4db98e4ebe Sub-Exporter-Progressive-0.001013.tar.gz sha256 d535b7954d64da1ac1305b1fadf98202769e3599376854b2ced90c382beac056 Sub-Exporter-Progressive-0.001013.tar.gz # computed by scancpan sha256 24c38cba4218e6be62e511bffe21e63aa57335d8929034aa58e8a85eed001e99 LICENSE ================================================ FILE: package/perl-sub-exporter-progressive/perl-sub-exporter-progressive.mk ================================================ ################################################################################ # # perl-sub-exporter-progressive # ################################################################################ PERL_SUB_EXPORTER_PROGRESSIVE_VERSION = 0.001013 PERL_SUB_EXPORTER_PROGRESSIVE_SOURCE = Sub-Exporter-Progressive-$(PERL_SUB_EXPORTER_PROGRESSIVE_VERSION).tar.gz PERL_SUB_EXPORTER_PROGRESSIVE_SITE = $(BR2_CPAN_MIRROR)/authors/id/F/FR/FREW PERL_SUB_EXPORTER_PROGRESSIVE_LICENSE = Artistic or GPL-1.0+ PERL_SUB_EXPORTER_PROGRESSIVE_LICENSE_FILES = LICENSE PERL_SUB_EXPORTER_PROGRESSIVE_DISTNAME = Sub-Exporter-Progressive $(eval $(perl-package)) ================================================ FILE: package/perl-sub-install/Config.in ================================================ config BR2_PACKAGE_PERL_SUB_INSTALL bool "perl-sub-install" help install subroutines into packages easily. https://github.com/rjbs/Sub-Install ================================================ FILE: package/perl-sub-install/perl-sub-install.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 e1ce4f9cb6b2f6b8778b036c31afa5ab Sub-Install-0.928.tar.gz sha256 61e567a7679588887b7b86d427bc476ea6d77fffe7e0d17d640f89007d98ef0f Sub-Install-0.928.tar.gz # computed by scancpan sha256 ad5fb5c05003488f924c60ead21694d629055c9db2ee2d9dd0cf0041b9fedaca LICENSE ================================================ FILE: package/perl-sub-install/perl-sub-install.mk ================================================ ################################################################################ # # perl-sub-install # ################################################################################ PERL_SUB_INSTALL_VERSION = 0.928 PERL_SUB_INSTALL_SOURCE = Sub-Install-$(PERL_SUB_INSTALL_VERSION).tar.gz PERL_SUB_INSTALL_SITE = $(BR2_CPAN_MIRROR)/authors/id/R/RJ/RJBS PERL_SUB_INSTALL_LICENSE = Artistic or GPL-1.0+ PERL_SUB_INSTALL_LICENSE_FILES = LICENSE PERL_SUB_INSTALL_DISTNAME = Sub-Install $(eval $(perl-package)) ================================================ FILE: package/perl-sub-quote/Config.in ================================================ config BR2_PACKAGE_PERL_SUB_QUOTE bool "perl-sub-quote" help Efficient generation of subroutines via string eval. https://metacpan.org/release/Sub-Quote ================================================ FILE: package/perl-sub-quote/perl-sub-quote.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 1bb9caee697bcfa738f419d40505e506 Sub-Quote-2.006006.tar.gz sha256 6e4e2af42388fa6d2609e0e82417de7cc6be47223f576592c656c73c7524d89d Sub-Quote-2.006006.tar.gz # computed by scancpan sha256 88f4a8719c584d756dcfeebc7f35643066354188bfb57c672fbafcd44e044e9c LICENSE ================================================ FILE: package/perl-sub-quote/perl-sub-quote.mk ================================================ ################################################################################ # # perl-sub-quote # ################################################################################ PERL_SUB_QUOTE_VERSION = 2.006006 PERL_SUB_QUOTE_SOURCE = Sub-Quote-$(PERL_SUB_QUOTE_VERSION).tar.gz PERL_SUB_QUOTE_SITE = $(BR2_CPAN_MIRROR)/authors/id/H/HA/HAARG PERL_SUB_QUOTE_LICENSE = Artistic or GPL-1.0+ PERL_SUB_QUOTE_LICENSE_FILES = LICENSE PERL_SUB_QUOTE_DISTNAME = Sub-Quote $(eval $(perl-package)) ================================================ FILE: package/perl-sys-cpu/0001-remove-extraneous-include.patch ================================================ Drop include does not exist in musl or uClibc, so including it causes a build failure. In glibc, it simply redirects to , so we can safely drop the inclusion of Signed-off-by: Christopher McCrory Index: b/CPU.xs =================================================================== --- a/CPU.xs +++ b/CPU.xs @@ -24,7 +24,6 @@ #include #else /* other (try unix) */ #include - #include #endif #if defined(__sun) || defined(__sun__) #include ================================================ FILE: package/perl-sys-cpu/Config.in ================================================ config BR2_PACKAGE_PERL_SYS_CPU bool "perl-sys-cpu" depends on !BR2_STATIC_LIBS help Perl module for getting information about the system CPU (Sys::CPU). http://search.cpan.org/dist/Sys-CPU/ comment "perl-sys-cpu needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-sys-cpu/perl-sys-cpu.hash ================================================ # locally computed sha256 ca0ec47ab24070e3040e5075337cfc69721362d9bef50f6992072efe644d4d26 Sys-CPU-0.52.tar.gz sha256 911a3f8e83dfff143794b34881e13f0759b498c31e067fc7dff0c2e641559e1e README ================================================ FILE: package/perl-sys-cpu/perl-sys-cpu.mk ================================================ ################################################################################ # # perl-sys-cpu # ################################################################################ PERL_SYS_CPU_VERSION = 0.52 PERL_SYS_CPU_SOURCE = Sys-CPU-$(PERL_SYS_CPU_VERSION).tar.gz PERL_SYS_CPU_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MK/MKODERER PERL_SYS_CPU_LICENSE = Artistic or GPL-1.0+ PERL_SYS_CPU_LICENSE_FILES = README $(eval $(perl-package)) ================================================ FILE: package/perl-sys-meminfo/Config.in ================================================ config BR2_PACKAGE_PERL_SYS_MEMINFO bool "perl-sys-meminfo" depends on !BR2_STATIC_LIBS help query the total free and used physical memory. https://metacpan.org/release/Sys-MemInfo comment "perl-sys-meminfo needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-sys-meminfo/perl-sys-meminfo.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 88f0632691d7de91cbed95ba1ff29025 Sys-MemInfo-0.99.tar.gz sha256 0786319d3a3a8bae5d727939244bf17e140b714f52734d5e9f627203e4cf3e3b Sys-MemInfo-0.99.tar.gz # computed by scancpan sha256 62854ade112a6782f476bdc7dc9603776c4e064782623d999f966dba131a15de LICENSE ================================================ FILE: package/perl-sys-meminfo/perl-sys-meminfo.mk ================================================ ################################################################################ # # perl-sys-meminfo # ################################################################################ PERL_SYS_MEMINFO_VERSION = 0.99 PERL_SYS_MEMINFO_SOURCE = Sys-MemInfo-$(PERL_SYS_MEMINFO_VERSION).tar.gz PERL_SYS_MEMINFO_SITE = $(BR2_CPAN_MIRROR)/authors/id/S/SC/SCRESTO PERL_SYS_MEMINFO_LICENSE = Artistic or GPL-1.0+ PERL_SYS_MEMINFO_LICENSE_FILES = LICENSE PERL_SYS_MEMINFO_DISTNAME = Sys-MemInfo $(eval $(perl-package)) ================================================ FILE: package/perl-sys-mmap/Config.in ================================================ config BR2_PACKAGE_PERL_SYS_MMAP bool "perl-sys-mmap" depends on !BR2_STATIC_LIBS help uses mmap to map in a file as a Perl variable. https://metacpan.org/release/Sys-Mmap comment "perl-sys-mmap needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-sys-mmap/perl-sys-mmap.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 57172ce9b33c04de460b4e7ad68d2e9c Sys-Mmap-0.20.tar.gz sha256 1820ce2c89f1ab7357644f8db0f49f142f54526250fb1e235db10aa80f15e2cf Sys-Mmap-0.20.tar.gz # computed by scancpan sha256 4ac2afe465736476a06e52edcc78c72cfa0fa4d625916e58ab4f2af6c598709c Artistic sha256 51c144e9a67644fa8eea0ea63dedb4e837587305b22f073eb5e279e39e7325a8 Copying ================================================ FILE: package/perl-sys-mmap/perl-sys-mmap.mk ================================================ ################################################################################ # # perl-sys-mmap # ################################################################################ PERL_SYS_MMAP_VERSION = 0.20 PERL_SYS_MMAP_SOURCE = Sys-Mmap-$(PERL_SYS_MMAP_VERSION).tar.gz PERL_SYS_MMAP_SITE = $(BR2_CPAN_MIRROR)/authors/id/T/TO/TODDR PERL_SYS_MMAP_LICENSE = Artistic or GPL-1.0+ PERL_SYS_MMAP_LICENSE_FILES = Artistic Copying PERL_SYS_MMAP_DISTNAME = Sys-Mmap $(eval $(perl-package)) ================================================ FILE: package/perl-time-parsedate/Config.in ================================================ config BR2_PACKAGE_PERL_TIME_PARSEDATE bool "perl-time-parsedate" help Parse and format time values. https://metacpan.org/release/Time-ParseDate ================================================ FILE: package/perl-time-parsedate/perl-time-parsedate.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 9143d075278857d21c77467d26f1603b Time-ParseDate-2015.103.tar.gz sha256 2c1a06235bf811813caac9eaa9daa71af758667cdf7b082cb59863220fcaeed1 Time-ParseDate-2015.103.tar.gz # locally calculated sha256 6d8de888d0662f75cfa3bf21b261741d5634ac9cdd8604d6173850546a3d40a9 lib/Time/JulianDay.pm sha256 9ae411fbaf87add414e7357417032dfedce652c393643bc5cb5b7698041a1dca lib/Time/Timezone.pm ================================================ FILE: package/perl-time-parsedate/perl-time-parsedate.mk ================================================ ################################################################################ # # perl-time-parsedate # ################################################################################ PERL_TIME_PARSEDATE_VERSION = 2015.103 PERL_TIME_PARSEDATE_SOURCE = Time-ParseDate-$(PERL_TIME_PARSEDATE_VERSION).tar.gz PERL_TIME_PARSEDATE_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MU/MUIR/modules PERL_TIME_PARSEDATE_LICENSE = Time Parse Date License, Public Domain PERL_TIME_PARSEDATE_LICENSE_FILES = lib/Time/JulianDay.pm lib/Time/Timezone.pm PERL_TIME_PARSEDATE_DISTNAME = Time-ParseDate $(eval $(perl-package)) ================================================ FILE: package/perl-timedate/Config.in ================================================ config BR2_PACKAGE_PERL_TIMEDATE bool "perl-timedate" help miscellaneous timezone manipulations routines. https://metacpan.org/release/TimeDate ================================================ FILE: package/perl-timedate/perl-timedate.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 5e5afe22c8d417417283d1f7f4572a57 TimeDate-2.33.tar.gz sha256 c0b69c4b039de6f501b0d9f13ec58c86b040c1f7e9b27ef249651c143d605eb2 TimeDate-2.33.tar.gz # computed by scancpan sha256 e72e67533eb3ddd705ae718898945e2f3bf3702e91e85bb67824575706bd5bf9 README ================================================ FILE: package/perl-timedate/perl-timedate.mk ================================================ ################################################################################ # # perl-timedate # ################################################################################ PERL_TIMEDATE_VERSION = 2.33 PERL_TIMEDATE_SOURCE = TimeDate-$(PERL_TIMEDATE_VERSION).tar.gz PERL_TIMEDATE_SITE = $(BR2_CPAN_MIRROR)/authors/id/A/AT/ATOOMIC PERL_TIMEDATE_LICENSE = Artistic or GPL-1.0+ PERL_TIMEDATE_LICENSE_FILES = README PERL_TIMEDATE_DISTNAME = TimeDate $(eval $(perl-package)) ================================================ FILE: package/perl-try-tiny/Config.in ================================================ config BR2_PACKAGE_PERL_TRY_TINY bool "perl-try-tiny" help Minimal try/catch with proper preservation of $@. https://github.com/p5sagit/Try-Tiny ================================================ FILE: package/perl-try-tiny/perl-try-tiny.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 eb362c3cb32c42f9f28de9ddb7f2ead6 Try-Tiny-0.30.tar.gz sha256 da5bd0d5c903519bbf10bb9ba0cb7bcac0563882bcfe4503aee3fb143eddef6b Try-Tiny-0.30.tar.gz # computed by scancpan sha256 f1864ede834871a1207fcd19838b6bd5e1ff0a8704f5cc523fc397126041ed0b LICENCE ================================================ FILE: package/perl-try-tiny/perl-try-tiny.mk ================================================ ################################################################################ # # perl-try-tiny # ################################################################################ PERL_TRY_TINY_VERSION = 0.30 PERL_TRY_TINY_SOURCE = Try-Tiny-$(PERL_TRY_TINY_VERSION).tar.gz PERL_TRY_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/E/ET/ETHER PERL_TRY_TINY_LICENSE = MIT PERL_TRY_TINY_LICENSE_FILES = LICENCE PERL_TRY_TINY_DISTNAME = Try-Tiny $(eval $(perl-package)) ================================================ FILE: package/perl-type-tiny/Config.in ================================================ config BR2_PACKAGE_PERL_TYPE_TINY bool "perl-type-tiny" select BR2_PACKAGE_PERL_EXPORTER_TINY # runtime help tiny, yet Moo(se)-compatible type constraint. https://typetiny.toby.ink/ ================================================ FILE: package/perl-type-tiny/perl-type-tiny.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 7a1688c4de07a0ed481a1811e5e82e63 Type-Tiny-1.012004.tar.gz sha256 75cd06b612d1830ae9f4b22298b506b3ff04518fa7453f487c248cd62a906a2b Type-Tiny-1.012004.tar.gz # computed by scancpan sha256 34427749499bd6d6e5d206089bc03d76c647a1350f8b5f95ea628d2b6ff56e4c LICENSE ================================================ FILE: package/perl-type-tiny/perl-type-tiny.mk ================================================ ################################################################################ # # perl-type-tiny # ################################################################################ PERL_TYPE_TINY_VERSION = 1.012004 PERL_TYPE_TINY_SOURCE = Type-Tiny-$(PERL_TYPE_TINY_VERSION).tar.gz PERL_TYPE_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/T/TO/TOBYINK PERL_TYPE_TINY_LICENSE = Artistic or GPL-1.0+ PERL_TYPE_TINY_LICENSE_FILES = LICENSE PERL_TYPE_TINY_DISTNAME = Type-Tiny $(eval $(perl-package)) ================================================ FILE: package/perl-uri/Config.in ================================================ config BR2_PACKAGE_PERL_URI bool "perl-uri" help Uniform Resource Identifiers (absolute and relative). https://github.com/libwww-perl/URI ================================================ FILE: package/perl-uri/perl-uri.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 bd66b0c620d076c4b0de9507b5f1fbdf URI-5.09.tar.gz sha256 03e63ada499d2645c435a57551f041f3943970492baa3b3338246dab6f1fae0a URI-5.09.tar.gz # computed by scancpan sha256 65cd6f88516a30f56fd4e0080fb78ea69424fc89067470dc994e4abfba08664e LICENSE ================================================ FILE: package/perl-uri/perl-uri.mk ================================================ ################################################################################ # # perl-uri # ################################################################################ PERL_URI_VERSION = 5.09 PERL_URI_SOURCE = URI-$(PERL_URI_VERSION).tar.gz PERL_URI_SITE = $(BR2_CPAN_MIRROR)/authors/id/O/OA/OALDERS PERL_URI_LICENSE = Artistic or GPL-1.0+ PERL_URI_LICENSE_FILES = LICENSE PERL_URI_DISTNAME = URI $(eval $(perl-package)) ================================================ FILE: package/perl-www-form-urlencoded/Config.in ================================================ config BR2_PACKAGE_PERL_WWW_FORM_URLENCODED bool "perl-www-form-urlencoded" help parser and builder for application/x-www-form-urlencoded. https://github.com/kazeburo/WWW-Form-UrlEncoded ================================================ FILE: package/perl-www-form-urlencoded/perl-www-form-urlencoded.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 cbe0e1c3ee54738d900c739ea348efda WWW-Form-UrlEncoded-0.26.tar.gz sha256 c0480b5f1f15b71163ec327b8e7842298f0cb3ace97e63d7034af1e94a2d90f4 WWW-Form-UrlEncoded-0.26.tar.gz # computed by scancpan sha256 79c2a066104e71602785fd815c5aea6f7db78c19451d68521380083f9c2a8805 LICENSE ================================================ FILE: package/perl-www-form-urlencoded/perl-www-form-urlencoded.mk ================================================ ################################################################################ # # perl-www-form-urlencoded # ################################################################################ PERL_WWW_FORM_URLENCODED_VERSION = 0.26 PERL_WWW_FORM_URLENCODED_SOURCE = WWW-Form-UrlEncoded-$(PERL_WWW_FORM_URLENCODED_VERSION).tar.gz PERL_WWW_FORM_URLENCODED_SITE = $(BR2_CPAN_MIRROR)/authors/id/K/KA/KAZEBURO PERL_WWW_FORM_URLENCODED_DEPENDENCIES = host-perl-module-build PERL_WWW_FORM_URLENCODED_LICENSE = Artistic or GPL-1.0+ PERL_WWW_FORM_URLENCODED_LICENSE_FILES = LICENSE PERL_WWW_FORM_URLENCODED_DISTNAME = WWW-Form-UrlEncoded $(eval $(perl-package)) ================================================ FILE: package/perl-www-robotrules/Config.in ================================================ config BR2_PACKAGE_PERL_WWW_ROBOTRULES bool "perl-www-robotrules" select BR2_PACKAGE_PERL_URI # runtime help database of robots.txt-derived permissions. https://metacpan.org/release/WWW-RobotRules ================================================ FILE: package/perl-www-robotrules/perl-www-robotrules.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 b7186e8b8b3701e70c22abf430742403 WWW-RobotRules-6.02.tar.gz sha256 46b502e7a288d559429891eeb5d979461dd3ecc6a5c491ead85d165b6e03a51e WWW-RobotRules-6.02.tar.gz # computed by scancpan sha256 fa375c4f771b92fc076b6c66e19440a0fff51dacf489fecd94bf560091279e05 README ================================================ FILE: package/perl-www-robotrules/perl-www-robotrules.mk ================================================ ################################################################################ # # perl-www-robotrules # ################################################################################ PERL_WWW_ROBOTRULES_VERSION = 6.02 PERL_WWW_ROBOTRULES_SOURCE = WWW-RobotRules-$(PERL_WWW_ROBOTRULES_VERSION).tar.gz PERL_WWW_ROBOTRULES_SITE = $(BR2_CPAN_MIRROR)/authors/id/G/GA/GAAS PERL_WWW_ROBOTRULES_LICENSE = Artistic or GPL-1.0+ PERL_WWW_ROBOTRULES_LICENSE_FILES = README PERL_WWW_ROBOTRULES_DISTNAME = WWW-RobotRules $(eval $(perl-package)) ================================================ FILE: package/perl-x10/Config.in ================================================ config BR2_PACKAGE_PERL_X10 bool "perl-x10" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PERL_ASTRO_SUNTIME # runtime select BR2_PACKAGE_PERL_DEVICE_SERIALPORT # runtime select BR2_PACKAGE_PERL_TIME_PARSEDATE # runtime help creates a server used to receive events from an x10 client. https://metacpan.org/release/X10 comment "perl-x10 needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-x10/perl-x10.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 20dcca2dfb978bfed3043276aa3481e5 X10-0.04.tar.gz sha256 3dcee9d95614b2db70de608e933d42817f93fccd5b1f2f782b0846af487d9134 X10-0.04.tar.gz # computed by scancpan sha256 e6f320afa82517d663be348dd2515ecb1454a7c851ba5590f13aca01d219be80 README ================================================ FILE: package/perl-x10/perl-x10.mk ================================================ ################################################################################ # # perl-x10 # ################################################################################ PERL_X10_VERSION = 0.04 PERL_X10_SOURCE = X10-$(PERL_X10_VERSION).tar.gz PERL_X10_SITE = $(BR2_CPAN_MIRROR)/authors/id/R/RO/ROBF PERL_X10_LICENSE = GPL-3.0 PERL_X10_LICENSE_FILES = README PERL_X10_DISTNAME = X10 $(eval $(perl-package)) ================================================ FILE: package/perl-xml-libxml/0001-Makefile-PL.patch ================================================ fake check_lib for cross-compilation Signed-off-by: Francois Perrad Index: b/Makefile.PL =================================================================== --- a/Makefile.PL +++ b/Makefile.PL @@ -88,8 +88,7 @@ # -------------------------------------------------------------------------- # # -------------------------------------------------------------------------- # -use lib qw(inc); -use Devel::CheckLib; +sub check_lib { return 1; } # Prompt the user here for any paths and other configuration ================================================ FILE: package/perl-xml-libxml/Config.in ================================================ config BR2_PACKAGE_PERL_XML_LIBXML bool "perl-xml-libxml" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_ZLIB select BR2_PACKAGE_PERL_XML_NAMESPACESUPPORT # runtime select BR2_PACKAGE_PERL_XML_SAX # runtime select BR2_PACKAGE_PERL_XML_SAX_BASE # runtime help Interface to Gnome libxml2 xml parsing and DOM library. https://github.com/shlomif/perl-XML-LibXML comment "perl-xml-libxml needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/perl-xml-libxml/perl-xml-libxml.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 dce687dd8b7e82d1c359fd74b1852f64 XML-LibXML-2.0134.tar.gz sha256 f0bca4d0c2da35d879fee4cd13f352014186cedab27ab5e191f39b5d7d4f46cf XML-LibXML-2.0134.tar.gz # computed by scancpan sha256 5046a7ec515cc1542beafdf2eadeeff24cc221fc3fde9913dd144fd263ae6100 LICENSE ================================================ FILE: package/perl-xml-libxml/perl-xml-libxml.mk ================================================ ################################################################################ # # perl-xml-libxml # ################################################################################ PERL_XML_LIBXML_VERSION = 2.0134 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_LIBXML_LICENSE = Artistic or GPL-1.0+ PERL_XML_LIBXML_LICENSE_FILES = LICENSE PERL_XML_LIBXML_CPE_ID_VENDOR = xml-libxml_project PERL_XML_LIBXML_CPE_ID_PRODUCT = xml-libxml PERL_XML_LIBXML_DISTNAME = XML-LibXML PERL_XML_LIBXML_CONF_OPTS = \ LIBS="-L $(STAGING_DIR)/usr/lib" \ INC="-I $(STAGING_DIR)/usr/include/libxml2" \ NO_THREADS $(eval $(perl-package)) ================================================ FILE: package/perl-xml-namespacesupport/Config.in ================================================ config BR2_PACKAGE_PERL_XML_NAMESPACESUPPORT bool "perl-xml-namespacesupport" help A simple generic namespace processor. https://github.com/perigrin/xml-namespacesupport ================================================ FILE: package/perl-xml-namespacesupport/perl-xml-namespacesupport.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 a8916c6d095bcf073e1108af02e78c97 XML-NamespaceSupport-1.12.tar.gz sha256 47e995859f8dd0413aa3f22d350c4a62da652e854267aa0586ae544ae2bae5ef XML-NamespaceSupport-1.12.tar.gz # computed by scancpan sha256 3fed787f0f9e1d74024ec7ae5f0f4736c693bcf263781da2054eb4bb1337e911 LICENSE ================================================ FILE: package/perl-xml-namespacesupport/perl-xml-namespacesupport.mk ================================================ ################################################################################ # # perl-xml-namespacesupport # ################################################################################ PERL_XML_NAMESPACESUPPORT_VERSION = 1.12 PERL_XML_NAMESPACESUPPORT_SOURCE = XML-NamespaceSupport-$(PERL_XML_NAMESPACESUPPORT_VERSION).tar.gz PERL_XML_NAMESPACESUPPORT_SITE = $(BR2_CPAN_MIRROR)/authors/id/P/PE/PERIGRIN PERL_XML_NAMESPACESUPPORT_LICENSE = Artistic or GPL-1.0+ PERL_XML_NAMESPACESUPPORT_LICENSE_FILES = LICENSE PERL_XML_NAMESPACESUPPORT_DISTNAME = XML-NamespaceSupport $(eval $(perl-package)) ================================================ FILE: package/perl-xml-sax/Config.in ================================================ config BR2_PACKAGE_PERL_XML_SAX bool "perl-xml-sax" select BR2_PACKAGE_PERL_XML_NAMESPACESUPPORT # runtime select BR2_PACKAGE_PERL_XML_SAX_BASE # runtime help Simple API for XML. https://metacpan.org/release/XML-SAX ================================================ FILE: package/perl-xml-sax/perl-xml-sax.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 b62e3754523695c7f5bbcafa3676a38d XML-SAX-1.02.tar.gz sha256 4506c387043aa6a77b455f00f57409f3720aa7e553495ab2535263b4ed1ea12a XML-SAX-1.02.tar.gz # computed by scancpan sha256 bf2fb225e77b46b8892ef2a8aa5efa92d65b176a870f42559d8b73b308a36509 LICENSE ================================================ FILE: package/perl-xml-sax/perl-xml-sax.mk ================================================ ################################################################################ # # perl-xml-sax # ################################################################################ PERL_XML_SAX_VERSION = 1.02 PERL_XML_SAX_SOURCE = XML-SAX-$(PERL_XML_SAX_VERSION).tar.gz PERL_XML_SAX_SITE = $(BR2_CPAN_MIRROR)/authors/id/G/GR/GRANTM PERL_XML_SAX_LICENSE = Artistic or GPL-1.0+ PERL_XML_SAX_LICENSE_FILES = LICENSE PERL_XML_SAX_DISTNAME = XML-SAX $(eval $(perl-package)) ================================================ FILE: package/perl-xml-sax-base/Config.in ================================================ config BR2_PACKAGE_PERL_XML_SAX_BASE bool "perl-xml-sax-base" help Base class for SAX Drivers and Filters. https://metacpan.org/release/XML-SAX-Base ================================================ FILE: package/perl-xml-sax-base/perl-xml-sax-base.hash ================================================ # retrieved by scancpan from http://cpan.metacpan.org/ md5 ec347a14065dd7aec7d9fb181b2d7946 XML-SAX-Base-1.09.tar.gz sha256 66cb355ba4ef47c10ca738bd35999723644386ac853abbeb5132841f5e8a2ad0 XML-SAX-Base-1.09.tar.gz # computed by scancpan sha256 2a9aae56e13888493523ee9053689627e092aafcf2c5fb06f06df07260f91b42 README ================================================ FILE: package/perl-xml-sax-base/perl-xml-sax-base.mk ================================================ ################################################################################ # # perl-xml-sax-base # ################################################################################ PERL_XML_SAX_BASE_VERSION = 1.09 PERL_XML_SAX_BASE_SOURCE = XML-SAX-Base-$(PERL_XML_SAX_BASE_VERSION).tar.gz PERL_XML_SAX_BASE_SITE = $(BR2_CPAN_MIRROR)/authors/id/G/GR/GRANTM PERL_XML_SAX_BASE_LICENSE = Artistic or GPL-1.0+ PERL_XML_SAX_BASE_LICENSE_FILES = README PERL_XML_SAX_BASE_DISTNAME = XML-SAX-Base $(eval $(perl-package)) ================================================ FILE: package/phidgetwebservice/Config.in ================================================ config BR2_PACKAGE_PHIDGETWEBSERVICE bool "phidgetwebservice" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb, libphidget depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libphidget -> libusb depends on !BR2_STATIC_LIBS # libphidget select BR2_PACKAGE_LIBPHIDGET help phidgetwebservice (the Phidget WebService) provides an HTTP front-end to the libphidget device control API. This provides an alternative to the libphidget C linkage interface for controlling locally attached Phidgets USB devices and it also allows you to control Phidget USB devices remotely when the host running the phidgetwebservice has an exposed network interface. The phidgetwebservice client program uses the libphidget HTTP functions to send commands to the phidgetwebservice. http://phidgets.com/ comment "phidgetwebservice needs a toolchain w/ threads, dynamic library, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/phidgetwebservice/phidgetwebservice.hash ================================================ # locally computed sha256 aa63cbd2ab87182d6e0c05d553ee4c8cc73d268516d8e0a1e881baed391c081d phidgetwebservice_2.1.9.20190409.tar.gz sha256 ea8af5e789cb2d4e9b10bce3874982ade163b749b6bfbdb32e2df21c4d106de1 COPYING ================================================ FILE: package/phidgetwebservice/phidgetwebservice.mk ================================================ ################################################################################ # # phidgetwebservice # ################################################################################ PHIDGETWEBSERVICE_VERSION = 2.1.9.20190409 PHIDGETWEBSERVICE_SOURCE = phidgetwebservice_$(PHIDGETWEBSERVICE_VERSION).tar.gz PHIDGETWEBSERVICE_SITE = https://www.phidgets.com/downloads/phidget21/servers/linux/phidgetwebservice PHIDGETWEBSERVICE_DEPENDENCIES = libphidget PHIDGETWEBSERVICE_LICENSE = LGPL-3.0 PHIDGETWEBSERVICE_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/php/0001-acinclude.m4-don-t-unset-variables.patch ================================================ 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 Signed-off-by: Adam Duskett [aduskett@gmail.com: Update for 7.3.0] --- build/php.m4 | 4 ---- 1 file changed, 4 deletions(-) diff --git a/build/php.m4 b/build/php.m4 index e91ef988..9586c490 100644 --- a/build/php.m4 +++ b/build/php.m4 @@ -1568,8 +1568,6 @@ dnl PHP_CHECK_FUNC_LIB dnl AC_DEFUN([PHP_CHECK_FUNC_LIB],[ ifelse($2,,:,[ - unset ac_cv_lib_$2[]_$1 - unset ac_cv_lib_$2[]___$1 unset found AC_CHECK_LIB($2, $1, [found=yes], [ AC_CHECK_LIB($2, __$1, [found=yes], [found=no]) @@ -1601,8 +1599,6 @@ dnl and as a fall back in the specified library. Defines HAVE_func and dnl HAVE_library if found and adds the library to LIBS. dnl AC_DEFUN([PHP_CHECK_FUNC],[ - unset ac_cv_func_$1 - unset ac_cv_func___$1 unset found AC_CHECK_FUNC($1, [found=yes],[ AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ]) -- 2.7.4 ================================================ FILE: package/php/0002-iconv-tweak-iconv-detection.patch ================================================ 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/build/php.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, specially when adding /usr and /usr/local to the mix. Do basically the same with ext/iconv/config.m4 by tweaking 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] Signed-off-by: Adam Duskett [aduskett@gmail.com: Update for 8.0.7] Signed-off-by: Bernd Kuhls [Bernd: rebased for 7.4.10 & 7.4.13] --- build/php.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/php.m4 b/build/php.m4 index 9586c490..8b3d47ed 100644 --- a/build/php.m4 +++ b/build/php.m4 @@ -1937,7 +1937,7 @@ AC_DEFUN([PHP_SETUP_ICONV], [ dnl Check external libs for iconv funcs. if test "$found_iconv" = "no"; then - for i in $PHP_ICONV /usr/local /usr; do + for i in $PHP_ICONV; do if test -r $i/include/gnu-libiconv/iconv.h; then ICONV_DIR=$i ICONV_INCLUDE_DIR=$i/include/gnu-libiconv -- 2.31.1 ================================================ FILE: package/php/0003-configure-disable-the-phar-tool.patch ================================================ 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 on the target. Signed-off-by: Gustavo Zacarias [Gustavo: update for autoreconf/configure.in] Signed-off-by: Adam Duskett [Aduskett: update for 8.0.7] Signed-off-by: Bernd Kuhls [Bernd: rebased for 7.4.10 & 7.4.13] --- configure.ac | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index 0dfab302..6026fb66 100644 --- a/configure.ac +++ b/configure.ac @@ -1423,13 +1423,8 @@ CFLAGS_CLEAN="$CFLAGS \$(PROF_FLAGS)" CFLAGS="\$(CFLAGS_CLEAN) $standard_libtool_flag" CXXFLAGS="$CXXFLAGS $standard_libtool_flag \$(PROF_FLAGS)" -if test "$PHP_PHAR" != "no" && test "$PHP_CLI" != "no"; then - pharcmd=pharcmd - pharcmd_install=install-pharcmd -else - pharcmd= - pharcmd_install= -fi; +pharcmd= +pharcmd_install= 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.14.3 ================================================ FILE: package/php/0004-Call-apxs-with-correct-prefix.patch ================================================ From 4342bdea7a1a21430ce0d051fa4387441166c473 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 11 Dec 2016 23:12:46 +0100 Subject: [PATCH] Call apxs with correct prefix php uses apache's apxs script from staging directory to install libphp dynamic library and update /etc/apache2/httpd.conf in the staging and target directories. Here is the full command line: "apxs -S LIBEXECDIR='$(INSTALL_ROOT)/usr/modules' -S SYSCONFDIR='$(INSTALL_ROOT)/etc/apache2' -i -a -n php" This does not work for target directory as apxs sets the full path of the library and not the relative one. Indeed, apxs is smart enough to substitute away the prefix specified in $(STAGING_DIR)/usr/build/config_vars.mk so httpd.conf will only be correct in the staging directory. To fix this, add -S PREFIX='$(INSTALL_ROOT)/usr' to apxs call in configure Signed-off-by: Fabrice Fontaine Signed-off-by: Adam Duskett [aduskett@gmail.com: Update for 8.0.7] --- sapi/apache2handler/config.m4 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sapi/apache2handler/config.m4 b/sapi/apache2handler/config.m4 index 55c16179..68ce66c0 100644 --- a/sapi/apache2handler/config.m4 +++ b/sapi/apache2handler/config.m4 @@ -63,10 +63,12 @@ if test "$PHP_APXS2" != "no"; then AC_MSG_ERROR([Please note that Apache version >= 2.0.44 is required]) fi + APXS_PREFIX='$(INSTALL_ROOT)'/usr APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR` if test -z `$APXS -q SYSCONFDIR`; then INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \ $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ + -S PREFIX='$APXS_PREFIX' \ -i -n php" else APXS_SYSCONFDIR='$(INSTALL_ROOT)'`$APXS -q SYSCONFDIR` @@ -74,6 +76,7 @@ if test "$PHP_APXS2" != "no"; then \$(mkinstalldirs) '$APXS_SYSCONFDIR' && \ $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ -S SYSCONFDIR='$APXS_SYSCONFDIR' \ + -S PREFIX='$APXS_PREFIX' \ -i -a -n php" fi -- 2.5.0 ================================================ FILE: package/php/0005-allow-opcache-cross-compiling.patch ================================================ From 9bb316c41a69935ee2072626467241889594bed4 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Mon, 28 Jun 2021 11:12:36 -0700 Subject: [PATCH] allow opcache cross-compiling Remove the check at the end of ext/opcache/config.m4 that prevents opcache from being enabled in a cross-compiled environment. We pass the following as a CFLAGS when opcache is enabled: -DHAVE_SHM_IPC -DHAVE_SHM_MMAP_ANON -DHAVE_SHM_MMAP_ZERO -DHAVE_SHM_MMAP_POSIX -DHAVE_SHM_MMAP_FILE Signed-off-by: Adam Duskett --- ext/opcache/config.m4 | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4 index 5492fd92..10c150ff 100644 --- a/ext/opcache/config.m4 +++ b/ext/opcache/config.m4 @@ -339,10 +339,6 @@ int main() { PHP_ADD_BUILD_DIR([$ext_builddir/Optimizer], 1) PHP_ADD_EXTENSION_DEP(opcache, pcre) - if test "$have_shm_ipc" != "yes" && test "$have_shm_mmap_posix" != "yes" && test "$have_shm_mmap_anon" != "yes"; then - AC_MSG_ERROR([No supported shared memory caching support was found when configuring opcache. Check config.log for any errors or missing dependencies.]) - fi - if test "$PHP_OPCACHE_JIT" = "yes"; then PHP_ADD_BUILD_DIR([$ext_builddir/jit], 1) PHP_ADD_MAKEFILE_FRAGMENT($ext_srcdir/jit/Makefile.frag) -- 2.31.1 ================================================ FILE: package/php/Config.ext ================================================ menu "Extensions" config BR2_PACKAGE_PHP_EXT_CALENDAR bool "Calendar" help Calendar and event support config BR2_PACKAGE_PHP_EXT_FILEINFO bool "Fileinfo" help File Information support comment "OPcache needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_PHP_EXT_OPCACHE bool "OPcache" depends on !BR2_STATIC_LIBS help Enable the Zend OPcache accelerator. comment "Readline needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_PHP_EXT_READLINE bool "Readline" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_NCURSES select BR2_PACKAGE_READLINE help Readline support config BR2_PACKAGE_PHP_EXT_SESSION bool "Session" default y help Session support comment "Compression extensions" config BR2_PACKAGE_PHP_EXT_BZIP2 bool "bzip2" select BR2_PACKAGE_BZIP2 help bzip2 read/write support config BR2_PACKAGE_PHP_EXT_PHAR bool "phar" help PHP Archive support comment "zip needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_PHP_EXT_ZIP bool "zip" depends on !BR2_STATIC_LIBS # libzip select BR2_PACKAGE_ZLIB select BR2_PACKAGE_LIBZIP help Zip read/write support config BR2_PACKAGE_PHP_EXT_ZLIB bool "zlib" default y select BR2_PACKAGE_ZLIB help zlib support comment "Cryptography extensions" comment "libargon2 needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS config BR2_PACKAGE_PHP_EXT_LIBARGON2 bool "libargon2" depends on BR2_USE_MMU # libargon2 depends on !BR2_STATIC_LIBS # libargon2 select BR2_PACKAGE_LIBARGON2 help libargon2 support config BR2_PACKAGE_PHP_EXT_LIBSODIUM bool "libsodium" select BR2_PACKAGE_LIBSODIUM help libsodium support config BR2_PACKAGE_PHP_EXT_OPENSSL bool "openssl" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4 if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160 if BR2_PACKAGE_LIBOPENSSL help openssl support comment "Database extensions" config BR2_PACKAGE_PHP_EXT_DBA bool "DBA" help Database Abstraction Layer if BR2_PACKAGE_PHP_EXT_DBA config BR2_PACKAGE_PHP_EXT_DBA_CDB bool "cdb" help CDB handler config BR2_PACKAGE_PHP_EXT_DBA_DB4 bool "db4/5" select BR2_PACKAGE_BERKELEYDB help BerkeleyDB version 4/5 handler config BR2_PACKAGE_PHP_EXT_DBA_FLAT bool "flat" default y help Flat file handler config BR2_PACKAGE_PHP_EXT_DBA_INI bool "ini" default y help INI file handler endif config BR2_PACKAGE_PHP_EXT_MYSQLI bool "Mysqli" help MySQL Improved extension support config BR2_PACKAGE_PHP_EXT_PGSQL bool "PostgreSQL" depends on BR2_USE_MMU # postgresql depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR # postgresql select BR2_PACKAGE_POSTGRESQL help PostgreSQL support comment "PostgreSQL extension needs a toolchain w/ dynamic library, wchar" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR config BR2_PACKAGE_PHP_EXT_SQLITE bool "SQLite3" select BR2_PACKAGE_SQLITE help SQLite3 support config BR2_PACKAGE_PHP_EXT_PDO bool "PDO" help PHP Data Objects support if BR2_PACKAGE_PHP_EXT_PDO config BR2_PACKAGE_PHP_EXT_PDO_MYSQL bool "MySQL" help PDO driver for MySQL config BR2_PACKAGE_PHP_EXT_PDO_POSTGRESQL bool "PostgreSQL" depends on BR2_USE_MMU # postgresql depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR # postgresql select BR2_PACKAGE_POSTGRESQL help PDO driver for PostgreSQL comment "PostgreSQL drivers need a toolchain w/ wchar, dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR config BR2_PACKAGE_PHP_EXT_PDO_SQLITE bool "SQLite3" select BR2_PACKAGE_SQLITE help SQLite3 driver for PDO config BR2_PACKAGE_PHP_EXT_PDO_UNIXODBC bool "unixODBC" depends on !BR2_STATIC_LIBS # unixodbc select BR2_PACKAGE_UNIXODBC help unixODBC driver for PDO comment "unixodbc driver needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS endif comment "Human language and character encoding support" config BR2_PACKAGE_PHP_EXT_GETTEXT bool "Gettext" depends on BR2_SYSTEM_ENABLE_NLS help Gettext support comment "Gettext support needs NLS enabled" depends on !BR2_SYSTEM_ENABLE_NLS config BR2_PACKAGE_PHP_EXT_ICONV bool "iconv" select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help iconv character set conversion support config BR2_PACKAGE_PHP_EXT_INTL bool "intl" depends on BR2_HOST_GCC_AT_LEAST_4_9 # icu depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # icu depends on !BR2_BINFMT_FLAT # icu depends on BR2_TOOLCHAIN_HAS_THREADS # icu depends on !BR2_STATIC_LIBS select BR2_PACKAGE_ICU help Internationalization support comment "intl support needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 4.9, host gcc >= 4.9" depends on !BR2_BINFMT_FLAT depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_4_9 config BR2_PACKAGE_PHP_EXT_MBSTRING bool "mbstring" select BR2_PACKAGE_ONIGURUMA help multibyte string support comment "Image processing" config BR2_PACKAGE_PHP_EXT_EXIF bool "EXIF" help EXIF support config BR2_PACKAGE_PHP_EXT_GD bool "GD" select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_ZLIB help GD support comment "Mathematical extensions" config BR2_PACKAGE_PHP_EXT_BCMATH bool "BC math" help BCMath arbitrary precision mathematics support config BR2_PACKAGE_PHP_EXT_GMP bool "GMP" select BR2_PACKAGE_GMP help GNU Multiple Precision support comment "Other basic extensions" config BR2_PACKAGE_PHP_EXT_TOKENIZER bool "Tokenizer" help Tokenizer functions support comment "Other services" config BR2_PACKAGE_PHP_EXT_CURL bool "cURL" select BR2_PACKAGE_LIBCURL help cURL for URL streams config BR2_PACKAGE_PHP_EXT_FTP bool "FTP" help FTP support config BR2_PACKAGE_PHP_EXT_SNMP bool "SNMP" depends on BR2_USE_MMU # netsnmp fork() select BR2_PACKAGE_NETSNMP select BR2_PACKAGE_NETSNMP_ENABLE_MIBS help SNMP support config BR2_PACKAGE_PHP_EXT_SOCKETS bool "sockets" help Sockets support comment "Process Control" config BR2_PACKAGE_PHP_EXT_PCNTL bool "PCNTL" depends on BR2_USE_MMU # fork() help Process control support config BR2_PACKAGE_PHP_EXT_POSIX bool "Posix" default y help POSIX.1 (IEEE 1003.1) function support config BR2_PACKAGE_PHP_EXT_SHMOP bool "shmop" help Shared memory support config BR2_PACKAGE_PHP_EXT_SYSVMSG bool "sysvmsg" help System V message queue support config BR2_PACKAGE_PHP_EXT_SYSVSEM bool "sysvsem" help System V semaphore support config BR2_PACKAGE_PHP_EXT_SYSVSHM bool "sysvshm" help System V shared memory support comment "Variable and Type related" config BR2_PACKAGE_PHP_EXT_CTYPE bool "Ctype" help Character type checking support config BR2_PACKAGE_PHP_EXT_FILTER bool "Filter" help Input filter support comment "Web services" config BR2_PACKAGE_PHP_EXT_SOAP bool "SOAP" select BR2_PACKAGE_PHP_EXT_LIBXML2 help SOAP support comment "XML manipulation" config BR2_PACKAGE_PHP_EXT_DOM bool "DOM" select BR2_PACKAGE_PHP_EXT_LIBXML2 help Document Object Model support config BR2_PACKAGE_PHP_EXT_LIBXML2 bool "libxml" select BR2_PACKAGE_LIBXML2 help libxml2 support config BR2_PACKAGE_PHP_EXT_SIMPLEXML bool "SimpleXML" select BR2_PACKAGE_PHP_EXT_LIBXML2 help SimpleXML support config BR2_PACKAGE_PHP_EXT_WDDX bool "WDDX" select BR2_PACKAGE_EXPAT select BR2_PACKAGE_PHP_EXT_LIBXML2 help WDDX support config BR2_PACKAGE_PHP_EXT_XML bool "XML Parser" select BR2_PACKAGE_PHP_EXT_LIBXML2 help XML Parser support config BR2_PACKAGE_PHP_EXT_XMLREADER bool "XMLReader" select BR2_PACKAGE_PHP_EXT_LIBXML2 help XMLReader support config BR2_PACKAGE_PHP_EXT_XMLWRITER bool "XMLWriter" select BR2_PACKAGE_PHP_EXT_LIBXML2 help XMLWriter support config BR2_PACKAGE_PHP_EXT_XSL bool "XSL" select BR2_PACKAGE_PHP_EXT_DOM select BR2_PACKAGE_PHP_EXT_LIBXML2 select BR2_PACKAGE_LIBXSLT help XSL transformation support config BR2_PACKAGE_PHP_EXT_FFI bool "FFI" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBFFI help Foreign Function Interface support comment "PHP FFI extension needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS endmenu ================================================ FILE: package/php/Config.in ================================================ config BR2_PACKAGE_PHP bool "php" # PHP uses -export-dynamic, which breaks with elf2flt with a # message like "ld.real: section .junk LMA [...,...] overlaps # section .text LMA [...,...]" depends on !BR2_BINFMT_FLAT depends on BR2_USE_WCHAR select BR2_PACKAGE_PHP_SAPI_CGI if \ !BR2_PACKAGE_PHP_SAPI_APACHE && \ !BR2_PACKAGE_PHP_SAPI_CLI && \ !BR2_PACKAGE_PHP_SAPI_FPM && \ BR2_USE_MMU select BR2_PACKAGE_PHP_SAPI_CLI if !BR2_USE_MMU select BR2_PACKAGE_PCRE2 help PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. http://www.php.net if BR2_PACKAGE_PHP config BR2_PACKAGE_PHP_SAPI_APACHE bool "Apache interface" depends on BR2_PACKAGE_APACHE help Apache module config BR2_PACKAGE_PHP_SAPI_CGI bool "CGI interface" # CGI uses fork() depends on BR2_USE_MMU help Common Gateway Interface config BR2_PACKAGE_PHP_SAPI_CLI bool "CLI interface" help Command Line Interface config BR2_PACKAGE_PHP_SAPI_FPM bool "FPM interface" depends on BR2_USE_MMU # "Sparc v8 and predecessors are not and will not be supported" depends on !BR2_sparc help PHP-FPM (FastCGI Process Manager) source "package/php/Config.ext" endif comment "php needs a toolchain w/ wchar" depends on !BR2_BINFMT_FLAT depends on !BR2_USE_WCHAR ================================================ FILE: package/php/php-fpm.conf ================================================ [www] pm = ondemand pm.process_idle_timeout = 120s pm.max_children = 5 listen = /var/run/php-fpm.sock listen.owner = www-data listen.group = www-data user = www-data group = www-data ================================================ FILE: package/php/php.hash ================================================ # From https://www.php.net/downloads.php sha256 cd976805ec2e9198417651027dfe16854ba2c2c388151ab9d4d268513d52ed52 php-8.0.13.tar.xz # License file sha256 a188db807d711536f71e27b7d36879d63480f7994dc18adc08e624b3c5430fff LICENSE ================================================ FILE: package/php/php.mk ================================================ ################################################################################ # # php # ################################################################################ PHP_VERSION = 8.0.13 PHP_SITE = https://www.php.net/distributions PHP_SOURCE = php-$(PHP_VERSION).tar.xz PHP_INSTALL_STAGING = YES PHP_INSTALL_STAGING_OPTS = INSTALL_ROOT=$(STAGING_DIR) install PHP_INSTALL_TARGET_OPTS = INSTALL_ROOT=$(TARGET_DIR) install PHP_DEPENDENCIES = host-pkgconf pcre2 PHP_LICENSE = PHP-3.01 PHP_LICENSE_FILES = LICENSE PHP_CPE_ID_VENDOR = php PHP_CONF_OPTS = \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --with-config-file-scan-dir=/etc/php.d \ --disable-all \ --with-external-pcre \ --without-pear \ --with-config-file-path=/etc \ --disable-phpdbg \ --disable-rpath PHP_CONF_ENV = \ EXTRA_LIBS="$(PHP_EXTRA_LIBS)" ifeq ($(BR2_STATIC_LIBS),y) PHP_CONF_ENV += LIBS="$(PHP_STATIC_LIBS)" endif ifeq ($(BR2_STATIC_LIBS)$(BR2_TOOLCHAIN_HAS_THREADS),yy) PHP_STATIC_LIBS += -lpthread endif 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 # PHP can't be AUTORECONFed the standard way unfortunately PHP_DEPENDENCIES += host-autoconf host-automake host-libtool define PHP_BUILDCONF cd $(@D) ; $(TARGET_MAKE_ENV) ./buildconf --force endef PHP_PRE_CONFIGURE_HOOKS += PHP_BUILDCONF ifeq ($(BR2_ENDIAN),"BIG") PHP_CONF_ENV += ac_cv_c_bigendian_php=yes else PHP_CONF_ENV += ac_cv_c_bigendian_php=no endif PHP_CONFIG_SCRIPTS = php-config PHP_CFLAGS = $(TARGET_CFLAGS) PHP_CXXFLAGS = $(TARGET_CXXFLAGS) # The OPcache extension isn't cross-compile friendly # Throw some defines here to avoid patching heavily ifeq ($(BR2_PACKAGE_PHP_EXT_OPCACHE),y) PHP_CONF_OPTS += --enable-opcache --disable-opcache-jit PHP_CONF_ENV += ac_cv_func_mprotect=yes PHP_CFLAGS += \ -DHAVE_SHM_IPC \ -DHAVE_SHM_MMAP_ANON \ -DHAVE_SHM_MMAP_ZERO \ -DHAVE_SHM_MMAP_POSIX \ -DHAVE_SHM_MMAP_FILE endif # We need to force dl "detection" ifeq ($(BR2_STATIC_LIBS),) PHP_CONF_ENV += ac_cv_func_dlopen=yes ac_cv_lib_dl_dlopen=yes PHP_EXTRA_LIBS += -ldl else PHP_CONF_ENV += ac_cv_func_dlopen=no ac_cv_lib_dl_dlopen=no endif PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_SAPI_CLI),--enable-cli,--disable-cli) PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_SAPI_CGI),--enable-cgi,--disable-cgi) PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_SAPI_FPM),--enable-fpm,--disable-fpm) ifeq ($(BR2_PACKAGE_PHP_SAPI_APACHE),y) PHP_DEPENDENCIES += apache PHP_CONF_OPTS += --with-apxs2=$(STAGING_DIR)/usr/bin/apxs # Enable thread safety option if Apache MPM is event or worker ifeq ($(BR2_PACKAGE_APACHE_MPM_EVENT)$(BR2_PACKAGE_APACHE_MPM_WORKER),y) PHP_CONF_OPTS += --enable-zts endif endif ### Extensions PHP_CONF_OPTS += \ $(if $(BR2_PACKAGE_PHP_EXT_SOCKETS),--enable-sockets) \ $(if $(BR2_PACKAGE_PHP_EXT_POSIX),--enable-posix) \ $(if $(BR2_PACKAGE_PHP_EXT_SESSION),--enable-session) \ $(if $(BR2_PACKAGE_PHP_EXT_DOM),--enable-dom) \ $(if $(BR2_PACKAGE_PHP_EXT_SIMPLEXML),--enable-simplexml) \ $(if $(BR2_PACKAGE_PHP_EXT_SOAP),--enable-soap) \ $(if $(BR2_PACKAGE_PHP_EXT_XML),--enable-xml) \ $(if $(BR2_PACKAGE_PHP_EXT_XMLREADER),--enable-xmlreader) \ $(if $(BR2_PACKAGE_PHP_EXT_XMLWRITER),--enable-xmlwriter) \ $(if $(BR2_PACKAGE_PHP_EXT_EXIF),--enable-exif) \ $(if $(BR2_PACKAGE_PHP_EXT_FTP),--enable-ftp) \ $(if $(BR2_PACKAGE_PHP_EXT_TOKENIZER),--enable-tokenizer) \ $(if $(BR2_PACKAGE_PHP_EXT_PCNTL),--enable-pcntl) \ $(if $(BR2_PACKAGE_PHP_EXT_SHMOP),--enable-shmop) \ $(if $(BR2_PACKAGE_PHP_EXT_SYSVMSG),--enable-sysvmsg) \ $(if $(BR2_PACKAGE_PHP_EXT_SYSVSEM),--enable-sysvsem) \ $(if $(BR2_PACKAGE_PHP_EXT_SYSVSHM),--enable-sysvshm) \ $(if $(BR2_PACKAGE_PHP_EXT_ZIP),--with-zip) \ $(if $(BR2_PACKAGE_PHP_EXT_CTYPE),--enable-ctype) \ $(if $(BR2_PACKAGE_PHP_EXT_FILTER),--enable-filter) \ $(if $(BR2_PACKAGE_PHP_EXT_CALENDAR),--enable-calendar) \ $(if $(BR2_PACKAGE_PHP_EXT_FILEINFO),--enable-fileinfo) \ $(if $(BR2_PACKAGE_PHP_EXT_BCMATH),--enable-bcmath) \ $(if $(BR2_PACKAGE_PHP_EXT_PHAR),--enable-phar) ifeq ($(BR2_PACKAGE_PHP_EXT_LIBARGON2),y) PHP_CONF_OPTS += --with-password-argon2=$(STAGING_DIR)/usr PHP_DEPENDENCIES += libargon2 endif ifeq ($(BR2_PACKAGE_PHP_EXT_LIBSODIUM),y) PHP_CONF_OPTS += --with-sodium=$(STAGING_DIR)/usr PHP_DEPENDENCIES += libsodium endif ifeq ($(BR2_PACKAGE_PHP_EXT_MBSTRING),y) PHP_CONF_OPTS += --enable-mbstring PHP_DEPENDENCIES += oniguruma endif ifeq ($(BR2_PACKAGE_PHP_EXT_OPENSSL),y) PHP_CONF_OPTS += --with-openssl=$(STAGING_DIR)/usr PHP_DEPENDENCIES += openssl # openssl needs zlib, but the configure script forgets to link against # it causing detection failures with static linking PHP_STATIC_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs openssl` endif ifeq ($(BR2_PACKAGE_PHP_EXT_LIBXML2),y) PHP_CONF_ENV += php_cv_libxml_build_works=yes PHP_CONF_OPTS += --with-libxml PHP_DEPENDENCIES += libxml2 endif ifeq ($(BR2_PACKAGE_PHP_EXT_WDDX),y) PHP_CONF_OPTS += --enable-wddx --with-libexpat-dir=$(STAGING_DIR)/usr PHP_DEPENDENCIES += expat endif ifeq ($(BR2_PACKAGE_PHP_EXT_ZIP),y) PHP_DEPENDENCIES += libzip endif ifneq ($(BR2_PACKAGE_PHP_EXT_ZLIB)$(BR2_PACKAGE_PHP_EXT_ZIP),) PHP_CONF_OPTS += --with-zlib=$(STAGING_DIR)/usr PHP_DEPENDENCIES += zlib else PHP_CONF_OPTS += --disable-mysqlnd_compression_support endif ifeq ($(BR2_PACKAGE_PHP_EXT_GETTEXT),y) PHP_CONF_OPTS += --with-gettext=$(STAGING_DIR)/usr PHP_DEPENDENCIES += $(TARGET_NLS_DEPENDENCIES) endif ifeq ($(BR2_PACKAGE_PHP_EXT_ICONV),y) ifeq ($(BR2_PACKAGE_LIBICONV),y) PHP_CONF_OPTS += --with-iconv=$(STAGING_DIR)/usr PHP_DEPENDENCIES += libiconv else PHP_CONF_OPTS += --with-iconv endif endif ifeq ($(BR2_PACKAGE_PHP_EXT_INTL),y) PHP_CONF_OPTS += --enable-intl --with-icu-dir=$(STAGING_DIR)/usr PHP_CXXFLAGS += "`$(STAGING_DIR)/usr/bin/icu-config --cxxflags`" PHP_DEPENDENCIES += icu # The intl module is implemented in C++, but PHP fails to use # g++ as the compiler for the final link. As a workaround, # tell it to link libstdc++. PHP_EXTRA_LIBS += -lstdc++ endif ifeq ($(BR2_PACKAGE_PHP_EXT_GMP),y) PHP_CONF_OPTS += --with-gmp=$(STAGING_DIR)/usr PHP_DEPENDENCIES += gmp endif ifeq ($(BR2_PACKAGE_PHP_EXT_READLINE),y) PHP_CONF_OPTS += --with-readline=$(STAGING_DIR)/usr PHP_DEPENDENCIES += readline endif ### Native SQL extensions ifeq ($(BR2_PACKAGE_PHP_EXT_MYSQLI),y) PHP_CONF_OPTS += --with-mysqli endif ifeq ($(BR2_PACKAGE_PHP_EXT_PGSQL),y) PHP_CONF_OPTS += --with-pgsql=$(STAGING_DIR)/usr PHP_DEPENDENCIES += postgresql endif ifeq ($(BR2_PACKAGE_PHP_EXT_SQLITE),y) PHP_CONF_OPTS += --with-sqlite3=$(STAGING_DIR)/usr PHP_DEPENDENCIES += sqlite PHP_STATIC_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs sqlite3` endif ### PDO ifeq ($(BR2_PACKAGE_PHP_EXT_PDO),y) PHP_CONF_OPTS += --enable-pdo ifeq ($(BR2_PACKAGE_PHP_EXT_PDO_SQLITE),y) PHP_CONF_OPTS += --with-pdo-sqlite=$(STAGING_DIR)/usr PHP_DEPENDENCIES += sqlite PHP_CFLAGS += -DSQLITE_OMIT_LOAD_EXTENSION endif ifeq ($(BR2_PACKAGE_PHP_EXT_PDO_MYSQL),y) PHP_CONF_OPTS += --with-pdo-mysql endif ifeq ($(BR2_PACKAGE_PHP_EXT_PDO_POSTGRESQL),y) PHP_CONF_OPTS += --with-pdo-pgsql=$(STAGING_DIR)/usr PHP_DEPENDENCIES += postgresql endif ifeq ($(BR2_PACKAGE_PHP_EXT_PDO_UNIXODBC),y) PHP_CONF_OPTS += --with-pdo-odbc=unixODBC,$(STAGING_DIR)/usr PHP_DEPENDENCIES += unixodbc endif endif ifneq ($(BR2_PACKAGE_PHP_EXT_MYSQLI)$(BR2_PACKAGE_PHP_EXT_PDO_MYSQL),) # Set default MySQL unix socket to what the MySQL server is using by default PHP_CONF_OPTS += --with-mysql-sock=$(MYSQL_SOCKET) endif define PHP_DISABLE_VALGRIND $(SED) '/^#define HAVE_VALGRIND/d' $(@D)/main/php_config.h endef PHP_POST_CONFIGURE_HOOKS += PHP_DISABLE_VALGRIND ifeq ($(BR2_PACKAGE_PCRE2_JIT),y) PHP_CONF_OPTS += --with-pcre-jit=yes PHP_CONF_ENV += ac_cv_have_pcre2_jit=yes else PHP_CONF_OPTS += --with-pcre-jit=no PHP_CONF_ENV += ac_cv_have_pcre2_jit=no endif ifeq ($(BR2_PACKAGE_PHP_EXT_CURL),y) PHP_CONF_OPTS += --with-curl PHP_DEPENDENCIES += libcurl endif ifeq ($(BR2_PACKAGE_PHP_EXT_XSL),y) PHP_CONF_OPTS += --with-xsl=$(STAGING_DIR)/usr PHP_DEPENDENCIES += libxslt endif ifeq ($(BR2_PACKAGE_PHP_EXT_BZIP2),y) PHP_CONF_OPTS += --with-bz2=$(STAGING_DIR)/usr PHP_DEPENDENCIES += bzip2 endif ### DBA ifeq ($(BR2_PACKAGE_PHP_EXT_DBA),y) PHP_CONF_OPTS += --enable-dba ifneq ($(BR2_PACKAGE_PHP_EXT_DBA_CDB),y) PHP_CONF_OPTS += --without-cdb endif ifneq ($(BR2_PACKAGE_PHP_EXT_DBA_FLAT),y) PHP_CONF_OPTS += --without-flatfile endif ifneq ($(BR2_PACKAGE_PHP_EXT_DBA_INI),y) PHP_CONF_OPTS += --without-inifile endif ifeq ($(BR2_PACKAGE_PHP_EXT_DBA_DB4),y) PHP_CONF_OPTS += --with-db4=$(STAGING_DIR)/usr PHP_DEPENDENCIES += berkeleydb endif endif ifeq ($(BR2_PACKAGE_PHP_EXT_SNMP),y) PHP_CONF_OPTS += --with-snmp=$(STAGING_DIR)/usr PHP_DEPENDENCIES += netsnmp endif ifeq ($(BR2_PACKAGE_PHP_EXT_GD),y) PHP_CONF_OPTS += \ --enable-gd \ --with-jpeg \ --with-freetype PHP_DEPENDENCIES += jpeg libpng freetype zlib endif ifeq ($(BR2_PACKAGE_PHP_EXT_FFI),y) PHP_CONF_OPTS += --with-ffi PHP_DEPENDENCIES += libffi endif ifeq ($(BR2_PACKAGE_PHP_SAPI_FPM),y) define PHP_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 $(@D)/sapi/fpm/init.d.php-fpm \ $(TARGET_DIR)/etc/init.d/S49php-fpm endef define PHP_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 $(@D)/sapi/fpm/php-fpm.service \ $(TARGET_DIR)/usr/lib/systemd/system/php-fpm.service endef define PHP_INSTALL_FPM_CONF $(INSTALL) -D -m 0644 package/php/php-fpm.conf \ $(TARGET_DIR)/etc/php-fpm.conf rm -f $(TARGET_DIR)/etc/php-fpm.d/www.conf.default # remove unused sample status page /usr/php/php/fpm/status.html rm -rf $(TARGET_DIR)/usr/php endef PHP_POST_INSTALL_TARGET_HOOKS += PHP_INSTALL_FPM_CONF endif define PHP_EXTENSIONS_FIXUP $(SED) "/prefix/ s:/usr:$(STAGING_DIR)/usr:" \ $(STAGING_DIR)/usr/bin/phpize $(SED) "/extension_dir/ s:/usr:$(TARGET_DIR)/usr:" \ $(STAGING_DIR)/usr/bin/php-config endef PHP_POST_INSTALL_TARGET_HOOKS += PHP_EXTENSIONS_FIXUP define PHP_INSTALL_FIXUP rm -rf $(TARGET_DIR)/usr/lib/php/build rm -f $(TARGET_DIR)/usr/bin/phpize $(INSTALL) -D -m 0755 $(PHP_DIR)/php.ini-production \ $(TARGET_DIR)/etc/php.ini $(SED) 's%;date.timezone =.*%date.timezone = $(PHP_LOCALTIME)%' \ $(TARGET_DIR)/etc/php.ini $(if $(BR2_PACKAGE_PHP_EXT_OPCACHE), $(SED) '/;extension=php_xsl.dll/azend_extension=opcache.so' \ $(TARGET_DIR)/etc/php.ini) endef PHP_POST_INSTALL_TARGET_HOOKS += PHP_INSTALL_FIXUP PHP_CONF_ENV += CFLAGS="$(PHP_CFLAGS)" CXXFLAGS="$(PHP_CXXFLAGS)" $(eval $(autotools-package)) ================================================ FILE: package/php-amqp/0001-add-build-support-for-php-8.patch ================================================ From 96cd5cb5eddd3db2faaa3643dad2fe4677d7c438 Mon Sep 17 00:00:00 2001 From: mmokhi Date: Thu, 30 Jul 2020 11:25:33 +0200 Subject: [PATCH] Add build support for PHP8.0 (#381) From upstream commit: 96cd5cb5eddd3db2faaa3643dad2fe4677d7c438 Signed-off-by: mmokhi Signed-off-by: Adam Duskett --- amqp_envelope.h | 7 +++++++ php7_support.h | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/amqp_envelope.h b/amqp_envelope.h index e63a3a5..e315682 100644 --- a/amqp_envelope.h +++ b/amqp_envelope.h @@ -20,6 +20,13 @@ | - Jonathan Tansavatdi | +----------------------------------------------------------------------+ */ + +#if PHP_MAJOR_VERSION >= 7 + #include "php7_support.h" +#else + #include "php5_support.h" +#endif + extern zend_class_entry *amqp_envelope_class_entry; void convert_amqp_envelope_to_zval(amqp_envelope_t *amqp_envelope, zval *envelope TSRMLS_DC); diff --git a/php7_support.h b/php7_support.h index 47ce983..c9e8f5b 100644 --- a/php7_support.h +++ b/php7_support.h @@ -101,6 +101,17 @@ typedef zval PHP5to7_zend_resource_le_t; #define PHP5to7_ZEND_ACC_FINAL_CLASS ZEND_ACC_FINAL +/* Small change to let it build after a major internal change for php8.0 + * More info: + * https://github.com/php/php-src/blob/php-8.0.0alpha3/UPGRADING.INTERNALS#L47 + */ +#if PHP_MAJOR_VERSION >= 8 +# define TSRMLS_DC +# define TSRMLS_D +# define TSRMLS_CC +# define TSRMLS_C +# endif + #endif //PHP_AMQP_PHP7_SUPPORT_H /* ================================================ FILE: package/php-amqp/0002-more-work-for-php-8.patch ================================================ From df1241852b359cf12c346beaa68de202257efdf1 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 9 Dec 2020 17:00:46 +0100 Subject: [PATCH] more work for PHP 8 (#383) * more work for PHP 8 * split test Signed-off-by: Remi Collet Signed-off-by: Adam Duskett --- amqp_basic_properties.c | 84 +++++++++++++-------------- amqp_channel.c | 49 +++++++++------- amqp_connection.c | 106 +++++++++++++++++----------------- amqp_connection_resource.c | 12 ++-- amqp_decimal.c | 8 +-- amqp_envelope.c | 12 ++-- amqp_exchange.c | 22 +++---- amqp_queue.c | 38 ++++++------ amqp_timestamp.c | 6 +- amqp_type.c | 6 +- php5_support.h | 2 + php7_support.h | 9 +++ php_amqp.h | 8 +-- tests/amqptimestamp.phpt | 4 +- tests/amqptimestamp_php8.phpt | 60 +++++++++++++++++++ tests/bug_61533.phpt | 2 +- 16 files changed, 254 insertions(+), 174 deletions(-) create mode 100644 tests/amqptimestamp_php8.phpt diff --git a/amqp_basic_properties.c b/amqp_basic_properties.c index 69b813e..5375f44 100644 --- a/amqp_basic_properties.c +++ b/amqp_basic_properties.c @@ -70,7 +70,7 @@ void php_amqp_basic_properties_set_empty_headers(zval *obj TSRMLS_DC) { PHP5to7_MAYBE_INIT(headers); PHP5to7_ARRAY_INIT(headers); - zend_update_property(this_ce, obj, ZEND_STRL("headers"), PHP5to7_MAYBE_PTR(headers) TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("headers"), PHP5to7_MAYBE_PTR(headers) TSRMLS_CC); PHP5to7_MAYBE_DESTROY(headers); } @@ -118,29 +118,29 @@ static PHP_METHOD(AMQPBasicProperties, __construct) { ) == FAILURE) { return; } - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("content_type"), content_type, content_type_len TSRMLS_CC); - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("content_encoding"), content_encoding, content_encoding_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("content_type"), content_type, content_type_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("content_encoding"), content_encoding, content_encoding_len TSRMLS_CC); if (headers != NULL) { - zend_update_property(this_ce, getThis(), ZEND_STRL("headers"), headers TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("headers"), headers TSRMLS_CC); } else { php_amqp_basic_properties_set_empty_headers(getThis() TSRMLS_CC); } - zend_update_property_long(this_ce, getThis(), ZEND_STRL("delivery_mode"), delivery_mode TSRMLS_CC); - zend_update_property_long(this_ce, getThis(), ZEND_STRL("priority"), priority TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("delivery_mode"), delivery_mode TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("priority"), priority TSRMLS_CC); - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("correlation_id"), correlation_id, correlation_id_len TSRMLS_CC); - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("reply_to"), reply_to, reply_to_len TSRMLS_CC); - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("expiration"), expiration, expiration_len TSRMLS_CC); - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("message_id"), message_id, message_id_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("correlation_id"), correlation_id, correlation_id_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("reply_to"), reply_to, reply_to_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("expiration"), expiration, expiration_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("message_id"), message_id, message_id_len TSRMLS_CC); - zend_update_property_long(this_ce, getThis(), ZEND_STRL("timestamp"), timestamp TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("timestamp"), timestamp TSRMLS_CC); - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("type"), type, type_len TSRMLS_CC); - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("user_id"), user_id, user_id_len TSRMLS_CC); - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("app_id"), app_id, app_id_len TSRMLS_CC); - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("cluster_id"), cluster_id, cluster_id_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("type"), type, type_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("user_id"), user_id, user_id_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("app_id"), app_id, app_id_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("cluster_id"), cluster_id, cluster_id_len TSRMLS_CC); } /* }}} */ @@ -460,7 +460,7 @@ void parse_amqp_table(amqp_table_t *table, zval *result TSRMLS_DC) { object_init_ex(PHP5to7_MAYBE_PTR(value), amqp_timestamp_class_entry); zend_call_method_with_1_params( - &value, + PHP5to8_OBJ_PROP(&value), amqp_timestamp_class_entry, NULL, "__construct", @@ -488,7 +488,7 @@ void parse_amqp_table(amqp_table_t *table, zval *result TSRMLS_DC) { object_init_ex(PHP5to7_MAYBE_PTR(value), amqp_decimal_class_entry); zend_call_method_with_2_params( - &value, + PHP5to8_OBJ_PROP(&value), amqp_decimal_class_entry, NULL, "__construct", @@ -525,93 +525,93 @@ void php_amqp_basic_properties_extract(amqp_basic_properties_t *p, zval *obj TSR PHP5to7_ARRAY_INIT(headers); if (p->_flags & AMQP_BASIC_CONTENT_TYPE_FLAG) { - zend_update_property_stringl(this_ce, obj, ZEND_STRL("content_type"), (const char *) p->content_type.bytes, (PHP5to7_param_str_len_type_t) p->content_type.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("content_type"), (const char *) p->content_type.bytes, (PHP5to7_param_str_len_type_t) p->content_type.len TSRMLS_CC); } else { /* BC */ - zend_update_property_stringl(this_ce, obj, ZEND_STRL("content_type"), "", 0 TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("content_type"), "", 0 TSRMLS_CC); } if (p->_flags & AMQP_BASIC_CONTENT_ENCODING_FLAG) { - zend_update_property_stringl(this_ce, obj, ZEND_STRL("content_encoding"), (const char *) p->content_encoding.bytes, (PHP5to7_param_str_len_type_t) p->content_encoding.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("content_encoding"), (const char *) p->content_encoding.bytes, (PHP5to7_param_str_len_type_t) p->content_encoding.len TSRMLS_CC); } else { /* BC */ - zend_update_property_stringl(this_ce, obj, ZEND_STRL("content_encoding"), "", 0 TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("content_encoding"), "", 0 TSRMLS_CC); } if (p->_flags & AMQP_BASIC_HEADERS_FLAG) { parse_amqp_table(&(p->headers), PHP5to7_MAYBE_PTR(headers) TSRMLS_CC); } - zend_update_property(this_ce, obj, ZEND_STRL("headers"), PHP5to7_MAYBE_PTR(headers) TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("headers"), PHP5to7_MAYBE_PTR(headers) TSRMLS_CC); if (p->_flags & AMQP_BASIC_DELIVERY_MODE_FLAG) { - zend_update_property_long(this_ce, obj, ZEND_STRL("delivery_mode"), (PHP5to7_param_long_type_t) p->delivery_mode TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("delivery_mode"), (PHP5to7_param_long_type_t) p->delivery_mode TSRMLS_CC); } else { /* BC */ - zend_update_property_long(this_ce, obj, ZEND_STRL("delivery_mode"), AMQP_DELIVERY_NONPERSISTENT TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("delivery_mode"), AMQP_DELIVERY_NONPERSISTENT TSRMLS_CC); } if (p->_flags & AMQP_BASIC_PRIORITY_FLAG) { - zend_update_property_long(this_ce, obj, ZEND_STRL("priority"), (PHP5to7_param_long_type_t) p->priority TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("priority"), (PHP5to7_param_long_type_t) p->priority TSRMLS_CC); } else { /* BC */ - zend_update_property_long(this_ce, obj, ZEND_STRL("priority"), 0 TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("priority"), 0 TSRMLS_CC); } if (p->_flags & AMQP_BASIC_CORRELATION_ID_FLAG) { - zend_update_property_stringl(this_ce, obj, ZEND_STRL("correlation_id"), (const char *) p->correlation_id.bytes, (PHP5to7_param_str_len_type_t) p->correlation_id.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("correlation_id"), (const char *) p->correlation_id.bytes, (PHP5to7_param_str_len_type_t) p->correlation_id.len TSRMLS_CC); } else { /* BC */ - zend_update_property_stringl(this_ce, obj, ZEND_STRL("correlation_id"), "", 0 TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("correlation_id"), "", 0 TSRMLS_CC); } if (p->_flags & AMQP_BASIC_REPLY_TO_FLAG) { - zend_update_property_stringl(this_ce, obj, ZEND_STRL("reply_to"), (const char *) p->reply_to.bytes, (PHP5to7_param_str_len_type_t) p->reply_to.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("reply_to"), (const char *) p->reply_to.bytes, (PHP5to7_param_str_len_type_t) p->reply_to.len TSRMLS_CC); } else { /* BC */ - zend_update_property_stringl(this_ce, obj, ZEND_STRL("reply_to"), "", 0 TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("reply_to"), "", 0 TSRMLS_CC); } if (p->_flags & AMQP_BASIC_EXPIRATION_FLAG) { - zend_update_property_stringl(this_ce, obj, ZEND_STRL("expiration"), (const char *) p->expiration.bytes, (PHP5to7_param_str_len_type_t) p->expiration.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("expiration"), (const char *) p->expiration.bytes, (PHP5to7_param_str_len_type_t) p->expiration.len TSRMLS_CC); } else { /* BC */ - zend_update_property_stringl(this_ce, obj, ZEND_STRL("expiration"), "", 0 TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("expiration"), "", 0 TSRMLS_CC); } if (p->_flags & AMQP_BASIC_MESSAGE_ID_FLAG) { - zend_update_property_stringl(this_ce, obj, ZEND_STRL("message_id"), (const char *) p->message_id.bytes, (PHP5to7_param_str_len_type_t) p->message_id.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("message_id"), (const char *) p->message_id.bytes, (PHP5to7_param_str_len_type_t) p->message_id.len TSRMLS_CC); } else { /* BC */ - zend_update_property_stringl(this_ce, obj, ZEND_STRL("message_id"), "", 0 TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("message_id"), "", 0 TSRMLS_CC); } if (p->_flags & AMQP_BASIC_TIMESTAMP_FLAG) { - zend_update_property_long(this_ce, obj, ZEND_STRL("timestamp"), (PHP5to7_param_long_type_t) p->timestamp TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("timestamp"), (PHP5to7_param_long_type_t) p->timestamp TSRMLS_CC); } else { /* BC */ - zend_update_property_long(this_ce, obj, ZEND_STRL("timestamp"), 0 TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("timestamp"), 0 TSRMLS_CC); } if (p->_flags & AMQP_BASIC_TYPE_FLAG) { - zend_update_property_stringl(this_ce, obj, ZEND_STRL("type"), (const char *) p->type.bytes, (PHP5to7_param_str_len_type_t) p->type.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("type"), (const char *) p->type.bytes, (PHP5to7_param_str_len_type_t) p->type.len TSRMLS_CC); } else { /* BC */ - zend_update_property_stringl(this_ce, obj, ZEND_STRL("type"), "", 0 TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("type"), "", 0 TSRMLS_CC); } if (p->_flags & AMQP_BASIC_USER_ID_FLAG) { - zend_update_property_stringl(this_ce, obj, ZEND_STRL("user_id"), (const char *) p->user_id.bytes, (PHP5to7_param_str_len_type_t) p->user_id.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("user_id"), (const char *) p->user_id.bytes, (PHP5to7_param_str_len_type_t) p->user_id.len TSRMLS_CC); } else { /* BC */ - zend_update_property_stringl(this_ce, obj, ZEND_STRL("user_id"), "", 0 TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("user_id"), "", 0 TSRMLS_CC); } if (p->_flags & AMQP_BASIC_APP_ID_FLAG) { - zend_update_property_stringl(this_ce, obj, ZEND_STRL("app_id"), (const char *) p->app_id.bytes, (PHP5to7_param_str_len_type_t) p->app_id.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("app_id"), (const char *) p->app_id.bytes, (PHP5to7_param_str_len_type_t) p->app_id.len TSRMLS_CC); } else { /* BC */ - zend_update_property_stringl(this_ce, obj, ZEND_STRL("app_id"), "", 0 TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("app_id"), "", 0 TSRMLS_CC); } PHP5to7_MAYBE_DESTROY(headers); diff --git a/amqp_channel.c b/amqp_channel.c index ef9552a..493c6d3 100644 --- a/amqp_channel.c +++ b/amqp_channel.c @@ -152,10 +152,15 @@ static zval * php_amqp_get_fci_gc_data(zend_fcall_info *fci, zval *gc_data) { return gc_data; } +#if PHP_MAJOR_VERSION < 8 static HashTable *amqp_channel_gc(zval *object, zval **table, int *n) /* {{{ */ { - amqp_channel_object *channel = PHP_AMQP_GET_CHANNEL(object); - + amqp_channel_object *channel = PHP_AMQP_GET_CHANNEL(object); +#else +static HashTable *amqp_channel_gc(zend_object *object, zval **table, int *n) /* {{{ */ +{ + amqp_channel_object *channel = php_amqp_channel_object_fetch(object); +#endif int basic_return_cnt = php_amqp_get_fci_gc_data_count(&channel->callbacks.basic_return.fci); int basic_ack_cnt = php_amqp_get_fci_gc_data_count(&channel->callbacks.basic_ack.fci); int basic_nack_cnt = php_amqp_get_fci_gc_data_count(&channel->callbacks.basic_nack.fci); @@ -249,7 +254,7 @@ static HashTable *amqp_channel_gc(zval *object, zval ***table, int *n TSRMLS_DC) *table = channel->gc_data; *n = cnt; - return zend_std_get_properties(object TSRMLS_CC); + return zend_std_get_properties(PHP5to8_OBJ_PROP(object) TSRMLS_CC); } /* }}} */ #endif @@ -331,7 +336,7 @@ static PHP_METHOD(amqp_channel_class, __construct) amqp_connection_object *connection; /* Parse out the method parameters */ - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o", &connection_object) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &connection_object, amqp_connection_class_entry) == FAILURE) { zend_throw_exception(amqp_channel_exception_class_entry, "Parameter must be an instance of AMQPConnection.", 0 TSRMLS_CC); RETURN_NULL(); } @@ -341,7 +346,7 @@ static PHP_METHOD(amqp_channel_class, __construct) PHP5to7_MAYBE_INIT(consumers); PHP5to7_ARRAY_INIT(consumers); - zend_update_property(this_ce, getThis(), ZEND_STRL("consumers"), PHP5to7_MAYBE_PTR(consumers) TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("consumers"), PHP5to7_MAYBE_PTR(consumers) TSRMLS_CC); PHP5to7_MAYBE_DESTROY(consumers); @@ -351,16 +356,16 @@ static PHP_METHOD(amqp_channel_class, __construct) #endif /* Set the prefetch count */ - zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_count"), INI_INT("amqp.prefetch_count") TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_count"), INI_INT("amqp.prefetch_count") TSRMLS_CC); /* Set the prefetch size */ - zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_size"), INI_INT("amqp.prefetch_size") TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_size"), INI_INT("amqp.prefetch_size") TSRMLS_CC); /* Set the global prefetch count */ - zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_count"), INI_INT("amqp.global_prefetch_count") TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_count"), INI_INT("amqp.global_prefetch_count") TSRMLS_CC); /* Set the global prefetch size */ - zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_size"), INI_INT("amqp.global_prefetch_size") TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_size"), INI_INT("amqp.global_prefetch_size") TSRMLS_CC); /* Pull out and verify the connection */ connection = PHP_AMQP_GET_CONNECTION(connection_object); @@ -376,7 +381,7 @@ static PHP_METHOD(amqp_channel_class, __construct) return; } - zend_update_property(this_ce, getThis(), ZEND_STRL("connection"), connection_object TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connection"), connection_object TSRMLS_CC); channel_resource = (amqp_channel_resource*)ecalloc(1, sizeof(amqp_channel_resource)); channel->channel_resource = channel_resource; @@ -580,8 +585,8 @@ static PHP_METHOD(amqp_channel_class, setPrefetchCount) } /* Set the prefetch count - the implication is to disable the size */ - zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_count"), prefetch_count TSRMLS_CC); - zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_size"), 0 TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_count"), prefetch_count TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_size"), 0 TSRMLS_CC); RETURN_TRUE; } @@ -659,8 +664,8 @@ static PHP_METHOD(amqp_channel_class, setPrefetchSize) } /* Set the prefetch size - the implication is to disable the count */ - zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_count"), 0 TSRMLS_CC); - zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_size"), prefetch_size TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_count"), 0 TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_size"), prefetch_size TSRMLS_CC); RETURN_TRUE; } @@ -715,8 +720,8 @@ static PHP_METHOD(amqp_channel_class, setGlobalPrefetchCount) } /* Set the global prefetch count - the implication is to disable the size */ - zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_count"), global_prefetch_count TSRMLS_CC); - zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_size"), 0 TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_count"), global_prefetch_count TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_size"), 0 TSRMLS_CC); RETURN_TRUE; } @@ -771,8 +776,8 @@ static PHP_METHOD(amqp_channel_class, setGlobalPrefetchSize) } /* Set the global prefetch size - the implication is to disable the count */ - zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_count"), 0 TSRMLS_CC); - zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_size"), global_prefetch_size TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_count"), 0 TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_size"), global_prefetch_size TSRMLS_CC); RETURN_TRUE; } @@ -808,11 +813,11 @@ static PHP_METHOD(amqp_channel_class, qos) /* Set the prefetch size and prefetch count */ if (global) { - zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_size"), prefetch_size TSRMLS_CC); - zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_count"), prefetch_count TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_size"), prefetch_size TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_count"), prefetch_count TSRMLS_CC); } else { - zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_size"), prefetch_size TSRMLS_CC); - zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_count"), prefetch_count TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_size"), prefetch_size TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_count"), prefetch_count TSRMLS_CC); } /* If we are already connected, set the new prefetch count */ diff --git a/amqp_connection.c b/amqp_connection.c index 5891a4f..466501a 100644 --- a/amqp_connection.c +++ b/amqp_connection.c @@ -68,9 +68,9 @@ zend_object_handlers amqp_connection_object_handlers; convert_to_string(PHP5to7_MAYBE_DEREF(zdata)); \ } \ if (zdata && Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) > 0) { \ - zend_update_property_string(this_ce, getThis(), ZEND_STRL(name), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); \ + zend_update_property_string(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(name), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); \ } else { \ - zend_update_property_string(this_ce, getThis(), ZEND_STRL(name), INI_STR("amqp." name) TSRMLS_CC); \ + zend_update_property_string(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(name), INI_STR("amqp." name) TSRMLS_CC); \ } #define PHP_AMQP_EXTRACT_CONNECTION_BOOL(name) \ @@ -80,9 +80,9 @@ zend_object_handlers amqp_connection_object_handlers; convert_to_long(PHP5to7_MAYBE_DEREF(zdata)); \ } \ if (zdata) { \ - zend_update_property_bool(this_ce, getThis(), ZEND_STRL(name), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); \ + zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(name), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); \ } else { \ - zend_update_property_bool(this_ce, getThis(), ZEND_STRL(name), INI_INT("amqp." name) TSRMLS_CC); \ + zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(name), INI_INT("amqp." name) TSRMLS_CC); \ } static int php_amqp_connection_resource_deleter(PHP5to7_zend_resource_le_t *el, amqp_connection_resource *connection_resource TSRMLS_DC) @@ -344,13 +344,13 @@ static PHP_METHOD(amqp_connection_class, __construct) /* Validate the given login */ if (zdata && Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) > 0) { if (Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) < 128) { - zend_update_property(this_ce, getThis(), ZEND_STRL("login"), PHP5to7_MAYBE_DEREF(zdata)TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("login"), PHP5to7_MAYBE_DEREF(zdata)TSRMLS_CC); } else { zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'login' exceeds 128 character limit.", 0 TSRMLS_CC); return; } } else { - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("login"), INI_STR("amqp.login"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.login")) > 128 ? 128 : strlen(INI_STR("amqp.login"))) TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("login"), INI_STR("amqp.login"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.login")) > 128 ? 128 : strlen(INI_STR("amqp.login"))) TSRMLS_CC); } /* Pull the password out of the $params array */ @@ -362,13 +362,13 @@ static PHP_METHOD(amqp_connection_class, __construct) /* Validate the given password */ if (zdata && Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) > 0) { if (Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) < 128) { - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("password"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)), Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("password"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)), Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } else { zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'password' exceeds 128 character limit.", 0 TSRMLS_CC); return; } } else { - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("password"), INI_STR("amqp.password"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.password")) > 128 ? 128 : strlen(INI_STR("amqp.password"))) TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("password"), INI_STR("amqp.password"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.password")) > 128 ? 128 : strlen(INI_STR("amqp.password"))) TSRMLS_CC); } /* Pull the host out of the $params array */ @@ -380,13 +380,13 @@ static PHP_METHOD(amqp_connection_class, __construct) /* Validate the given host */ if (zdata && Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) > 0) { if (Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) < 128) { - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("host"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)), Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("host"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)), Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } else { zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'host' exceeds 128 character limit.", 0 TSRMLS_CC); return; } } else { - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("host"), INI_STR("amqp.host"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.host")) > 128 ? 128 : strlen(INI_STR("amqp.host"))) TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("host"), INI_STR("amqp.host"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.host")) > 128 ? 128 : strlen(INI_STR("amqp.host"))) TSRMLS_CC); } /* Pull the vhost out of the $params array */ @@ -398,25 +398,25 @@ static PHP_METHOD(amqp_connection_class, __construct) /* Validate the given vhost */ if (zdata && Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) > 0) { if (Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) < 128) { - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("vhost"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)), Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("vhost"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)), Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } else { zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'vhost' exceeds 128 character limit.", 0 TSRMLS_CC); return; } } else { - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("vhost"), INI_STR("amqp.vhost"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.vhost")) > 128 ? 128 : strlen(INI_STR("amqp.vhost"))) TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("vhost"), INI_STR("amqp.vhost"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.vhost")) > 128 ? 128 : strlen(INI_STR("amqp.vhost"))) TSRMLS_CC); } - zend_update_property_long(this_ce, getThis(), ZEND_STRL("port"), INI_INT("amqp.port") TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("port"), INI_INT("amqp.port") TSRMLS_CC); if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "port", sizeof("port"), zdata)) { SEPARATE_ZVAL(zdata); convert_to_long(PHP5to7_MAYBE_DEREF(zdata)); - zend_update_property_long(this_ce, getThis(), ZEND_STRL("port"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("port"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } - zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), INI_FLT("amqp.read_timeout") TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), INI_FLT("amqp.read_timeout") TSRMLS_CC); if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "read_timeout", sizeof("read_timeout"), zdata)) { SEPARATE_ZVAL(zdata); @@ -424,7 +424,7 @@ static PHP_METHOD(amqp_connection_class, __construct) if (Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) < 0) { zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'read_timeout' must be greater than or equal to zero.", 0 TSRMLS_CC); } else { - zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "timeout", sizeof("timeout"), zdata)) { @@ -441,7 +441,7 @@ static PHP_METHOD(amqp_connection_class, __construct) if (Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) < 0) { zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'timeout' must be greater than or equal to zero.", 0 TSRMLS_CC); } else { - zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } } else { @@ -450,17 +450,17 @@ static PHP_METHOD(amqp_connection_class, __construct) php_error_docref(NULL TSRMLS_CC, E_DEPRECATED, "INI setting 'amqp.timeout' is deprecated; use 'amqp.read_timeout' instead"); if (strcmp(DEFAULT_READ_TIMEOUT, INI_STR("amqp.read_timeout")) == 0) { - zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), INI_FLT("amqp.timeout") TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), INI_FLT("amqp.timeout") TSRMLS_CC); } else { php_error_docref(NULL TSRMLS_CC, E_NOTICE, "INI setting 'amqp.read_timeout' will be used instead of 'amqp.timeout'"); - zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), INI_FLT("amqp.read_timeout") TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), INI_FLT("amqp.read_timeout") TSRMLS_CC); } } else { - zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), INI_FLT("amqp.read_timeout") TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), INI_FLT("amqp.read_timeout") TSRMLS_CC); } } - zend_update_property_double(this_ce, getThis(), ZEND_STRL("write_timeout"), INI_FLT("amqp.write_timeout") TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("write_timeout"), INI_FLT("amqp.write_timeout") TSRMLS_CC); if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "write_timeout", sizeof("write_timeout"), zdata)) { SEPARATE_ZVAL(zdata); @@ -468,11 +468,11 @@ static PHP_METHOD(amqp_connection_class, __construct) if (Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) < 0) { zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'write_timeout' must be greater than or equal to zero.", 0 TSRMLS_CC); } else { - zend_update_property_double(this_ce, getThis(), ZEND_STRL("write_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("write_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } } - zend_update_property_double(this_ce, getThis(), ZEND_STRL("rpc_timeout"), INI_FLT("amqp.rpc_timeout") TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("rpc_timeout"), INI_FLT("amqp.rpc_timeout") TSRMLS_CC); if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "rpc_timeout", sizeof("rpc_timeout"), zdata)) { SEPARATE_ZVAL(zdata); @@ -480,11 +480,11 @@ static PHP_METHOD(amqp_connection_class, __construct) if (Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) < 0) { zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'rpc_timeout' must be greater than or equal to zero.", 0 TSRMLS_CC); } else { - zend_update_property_double(this_ce, getThis(), ZEND_STRL("rpc_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("rpc_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } } - zend_update_property_double(this_ce, getThis(), ZEND_STRL("connect_timeout"), INI_FLT("amqp.connect_timeout") TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connect_timeout"), INI_FLT("amqp.connect_timeout") TSRMLS_CC); if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "connect_timeout", sizeof("connect_timeout"), zdata)) { SEPARATE_ZVAL(zdata); @@ -492,12 +492,12 @@ static PHP_METHOD(amqp_connection_class, __construct) if (Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) < 0) { zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'connect_timeout' must be greater than or equal to zero.", 0 TSRMLS_CC); } else { - zend_update_property_double(this_ce, getThis(), ZEND_STRL("connect_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connect_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } } - zend_update_property_long(this_ce, getThis(), ZEND_STRL("channel_max"), INI_INT("amqp.channel_max") TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("channel_max"), INI_INT("amqp.channel_max") TSRMLS_CC); if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "channel_max", sizeof("channel_max"), zdata)) { SEPARATE_ZVAL(zdata); @@ -506,14 +506,14 @@ static PHP_METHOD(amqp_connection_class, __construct) zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'channel_max' is out of range.", 0 TSRMLS_CC); } else { if(Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) == 0) { - zend_update_property_long(this_ce, getThis(), ZEND_STRL("channel_max"), PHP_AMQP_DEFAULT_CHANNEL_MAX TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("channel_max"), PHP_AMQP_DEFAULT_CHANNEL_MAX TSRMLS_CC); } else { - zend_update_property_long(this_ce, getThis(), ZEND_STRL("channel_max"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("channel_max"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } } } - zend_update_property_long(this_ce, getThis(), ZEND_STRL("frame_max"), INI_INT("amqp.frame_max") TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("frame_max"), INI_INT("amqp.frame_max") TSRMLS_CC); if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "frame_max", sizeof("frame_max"), zdata)) { SEPARATE_ZVAL(zdata); @@ -522,14 +522,14 @@ static PHP_METHOD(amqp_connection_class, __construct) zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'frame_max' is out of range.", 0 TSRMLS_CC); } else { if(Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) == 0) { - zend_update_property_long(this_ce, getThis(), ZEND_STRL("frame_max"), PHP_AMQP_DEFAULT_FRAME_MAX TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("frame_max"), PHP_AMQP_DEFAULT_FRAME_MAX TSRMLS_CC); } else { - zend_update_property_long(this_ce, getThis(), ZEND_STRL("frame_max"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("frame_max"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } } } - zend_update_property_long(this_ce, getThis(), ZEND_STRL("heartbeat"), INI_INT("amqp.heartbeat") TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("heartbeat"), INI_INT("amqp.heartbeat") TSRMLS_CC); if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "heartbeat", sizeof("heartbeat"), zdata)) { SEPARATE_ZVAL(zdata); @@ -537,16 +537,16 @@ static PHP_METHOD(amqp_connection_class, __construct) if (Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) < 0 || Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) > PHP_AMQP_MAX_HEARTBEAT) { zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'heartbeat' is out of range.", 0 TSRMLS_CC); } else { - zend_update_property_long(this_ce, getThis(), ZEND_STRL("heartbeat"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("heartbeat"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } } - zend_update_property_long(this_ce, getThis(), ZEND_STRL("sasl_method"), INI_INT("amqp.sasl_method") TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("sasl_method"), INI_INT("amqp.sasl_method") TSRMLS_CC); if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "sasl_method", sizeof("sasl_method"), zdata)) { SEPARATE_ZVAL(zdata); convert_to_long(PHP5to7_MAYBE_DEREF(zdata)); - zend_update_property_long(this_ce, getThis(), ZEND_STRL("sasl_method"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("sasl_method"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } @@ -563,7 +563,7 @@ static PHP_METHOD(amqp_connection_class, __construct) convert_to_string(PHP5to7_MAYBE_DEREF(zdata)); } if (zdata && Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) > 0) { - zend_update_property_string(this_ce, getThis(), ZEND_STRL("connection_name"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); + zend_update_property_string(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connection_name"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); } } /* }}} */ @@ -789,7 +789,7 @@ static PHP_METHOD(amqp_connection_class, setLogin) return; } - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("login"), login, login_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("login"), login, login_len TSRMLS_CC); RETURN_TRUE; } @@ -823,7 +823,7 @@ static PHP_METHOD(amqp_connection_class, setPassword) return; } - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("password"), password, password_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("password"), password, password_len TSRMLS_CC); RETURN_TRUE; } @@ -858,7 +858,7 @@ static PHP_METHOD(amqp_connection_class, setHost) return; } - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("host"), host, host_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("host"), host, host_len TSRMLS_CC); RETURN_TRUE; } @@ -910,7 +910,7 @@ static PHP_METHOD(amqp_connection_class, setPort) return; } - zend_update_property_long(this_ce, getThis(), ZEND_STRL("port"), port TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("port"), port TSRMLS_CC); RETURN_TRUE; } @@ -943,7 +943,7 @@ static PHP_METHOD(amqp_connection_class, setVhost) return; } - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("vhost"), vhost, vhost_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("vhost"), vhost, vhost_len TSRMLS_CC); RETURN_TRUE; } @@ -986,7 +986,7 @@ static PHP_METHOD(amqp_connection_class, setTimeout) /* Get the connection object out of the store */ connection = PHP_AMQP_GET_CONNECTION(getThis()); - zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), read_timeout TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), read_timeout TSRMLS_CC); if (connection->connection_resource && connection->connection_resource->is_connected) { if (php_amqp_set_resource_read_timeout(connection->connection_resource, read_timeout TSRMLS_CC) == 0) { @@ -1032,7 +1032,7 @@ static PHP_METHOD(amqp_connection_class, setReadTimeout) /* Get the connection object out of the store */ connection = PHP_AMQP_GET_CONNECTION(getThis()); - zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), read_timeout TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), read_timeout TSRMLS_CC); if (connection->connection_resource && connection->connection_resource->is_connected) { if (php_amqp_set_resource_read_timeout(connection->connection_resource, read_timeout TSRMLS_CC) == 0) { @@ -1078,7 +1078,7 @@ static PHP_METHOD(amqp_connection_class, setWriteTimeout) /* Get the connection object out of the store */ connection = PHP_AMQP_GET_CONNECTION(getThis()); - zend_update_property_double(this_ce, getThis(), ZEND_STRL("write_timeout"), write_timeout TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("write_timeout"), write_timeout TSRMLS_CC); if (connection->connection_resource && connection->connection_resource->is_connected) { if (php_amqp_set_resource_write_timeout(connection->connection_resource, write_timeout TSRMLS_CC) == 0) { @@ -1124,7 +1124,7 @@ static PHP_METHOD(amqp_connection_class, setRpcTimeout) /* Get the connection object out of the store */ connection = PHP_AMQP_GET_CONNECTION(getThis()); - zend_update_property_double(this_ce, getThis(), ZEND_STRL("rpc_timeout"), rpc_timeout TSRMLS_CC); + zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("rpc_timeout"), rpc_timeout TSRMLS_CC); if (connection->connection_resource && connection->connection_resource->is_connected) { if (php_amqp_set_resource_rpc_timeout(connection->connection_resource, rpc_timeout TSRMLS_CC) == 0) { @@ -1255,7 +1255,7 @@ static PHP_METHOD(amqp_connection_class, setCACert) return; } - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("cacert"), str, str_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("cacert"), str, str_len TSRMLS_CC); RETURN_TRUE; } @@ -1279,7 +1279,7 @@ static PHP_METHOD(amqp_connection_class, setCert) return; } - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("cert"), str, str_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("cert"), str, str_len TSRMLS_CC); RETURN_TRUE; } @@ -1303,7 +1303,7 @@ static PHP_METHOD(amqp_connection_class, setKey) return; } - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("key"), str, str_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("key"), str, str_len TSRMLS_CC); RETURN_TRUE; } @@ -1328,7 +1328,7 @@ static PHP_METHOD(amqp_connection_class, setVerify) return; } - zend_update_property_bool(this_ce, getThis(), ZEND_STRL("verify"), verify TSRMLS_CC); + zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("verify"), verify TSRMLS_CC); RETURN_TRUE; } @@ -1361,7 +1361,7 @@ static PHP_METHOD(amqp_connection_class, setSaslMethod) return; } - zend_update_property_long(this_ce, getThis(), ZEND_STRL("sasl_method"), method TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("sasl_method"), method TSRMLS_CC); RETURN_TRUE; } @@ -1385,9 +1385,9 @@ static PHP_METHOD(amqp_connection_class, setConnectionName) return; } if (str == NULL) { - zend_update_property_null(this_ce, getThis(), ZEND_STRL("connection_name") TSRMLS_CC); + zend_update_property_null(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connection_name") TSRMLS_CC); } else { - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("connection_name"), str, str_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connection_name"), str, str_len TSRMLS_CC); } diff --git a/amqp_connection_resource.c b/amqp_connection_resource.c index 7e20a5c..b0e065a 100644 --- a/amqp_connection_resource.c +++ b/amqp_connection_resource.c @@ -112,15 +112,15 @@ static void php_amqp_close_connection_from_server(amqp_rpc_reply_t reply, char * if (!reply.reply.id) { PHP_AMQP_G(error_code) = -1; - spprintf(message, 0, "Server connection error: %d, message: %s", - PHP_AMQP_G(error_code), + spprintf(message, 0, "Server connection error: %ld, message: %s", + (long)PHP_AMQP_G(error_code), "unexpected response" ); } else { PHP_AMQP_G(error_code) = m->reply_code; spprintf(message, 0, "Server connection error: %d, message: %.*s", m->reply_code, - (PHP5to7_param_str_len_type_t) m->reply_text.len, + (int) m->reply_text.len, (char *) m->reply_text.bytes ); } @@ -156,15 +156,15 @@ static void php_amqp_close_channel_from_server(amqp_rpc_reply_t reply, char **me if (!reply.reply.id) { PHP_AMQP_G(error_code) = -1; - spprintf(message, 0, "Server channel error: %d, message: %s", - PHP_AMQP_G(error_code), + spprintf(message, 0, "Server channel error: %ld, message: %s", + (long)PHP_AMQP_G(error_code), "unexpected response" ); } else { PHP_AMQP_G(error_code) = m->reply_code; spprintf(message, 0, "Server channel error: %d, message: %.*s", m->reply_code, - (PHP5to7_param_str_len_type_t) m->reply_text.len, + (int) m->reply_text.len, (char *)m->reply_text.bytes ); } diff --git a/amqp_decimal.c b/amqp_decimal.c index 83c9f20..8fd92c1 100644 --- a/amqp_decimal.c +++ b/amqp_decimal.c @@ -53,7 +53,7 @@ static PHP_METHOD(amqp_decimal_class, __construct) } if (exponent > AMQP_DECIMAL_EXPONENT_MAX) { - zend_throw_exception_ex(amqp_value_exception_class_entry, 0 TSRMLS_CC, "Decimal exponent value must be less than %u.", AMQP_DECIMAL_EXPONENT_MAX); + zend_throw_exception_ex(amqp_value_exception_class_entry, 0 TSRMLS_CC, "Decimal exponent value must be less than %u.", (unsigned)AMQP_DECIMAL_EXPONENT_MAX); return; } if (significand < AMQP_DECIMAL_SIGNIFICAND_MIN) { @@ -62,12 +62,12 @@ static PHP_METHOD(amqp_decimal_class, __construct) } if (significand > AMQP_DECIMAL_SIGNIFICAND_MAX) { - zend_throw_exception_ex(amqp_value_exception_class_entry, 0 TSRMLS_CC, "Decimal significand value must be less than %u.", AMQP_DECIMAL_SIGNIFICAND_MAX); + zend_throw_exception_ex(amqp_value_exception_class_entry, 0 TSRMLS_CC, "Decimal significand value must be less than %u.", (unsigned)AMQP_DECIMAL_SIGNIFICAND_MAX); return; } - zend_update_property_long(this_ce, getThis(), ZEND_STRL("exponent"), exponent TSRMLS_CC); - zend_update_property_long(this_ce, getThis(), ZEND_STRL("significand"), significand TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("exponent"), exponent TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("significand"), significand TSRMLS_CC); } /* }}} */ diff --git a/amqp_envelope.c b/amqp_envelope.c index 8127bed..b7a7a45 100644 --- a/amqp_envelope.c +++ b/amqp_envelope.c @@ -67,13 +67,13 @@ void convert_amqp_envelope_to_zval(amqp_envelope_t *amqp_envelope, zval *envelop amqp_basic_properties_t *p = &amqp_envelope->message.properties; amqp_message_t *message = &amqp_envelope->message; - zend_update_property_stringl(this_ce, envelope, ZEND_STRL("body"), (const char *) message->body.bytes, (PHP5to7_param_str_len_type_t) message->body.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(envelope), ZEND_STRL("body"), (const char *) message->body.bytes, (PHP5to7_param_str_len_type_t) message->body.len TSRMLS_CC); - zend_update_property_stringl(this_ce, envelope, ZEND_STRL("consumer_tag"), (const char *) amqp_envelope->consumer_tag.bytes, (PHP5to7_param_str_len_type_t) amqp_envelope->consumer_tag.len TSRMLS_CC); - zend_update_property_long(this_ce, envelope, ZEND_STRL("delivery_tag"), (PHP5to7_param_long_type_t) amqp_envelope->delivery_tag TSRMLS_CC); - zend_update_property_bool(this_ce, envelope, ZEND_STRL("is_redelivery"), (PHP5to7_param_long_type_t) amqp_envelope->redelivered TSRMLS_CC); - zend_update_property_stringl(this_ce, envelope, ZEND_STRL("exchange_name"), (const char *) amqp_envelope->exchange.bytes, (PHP5to7_param_str_len_type_t) amqp_envelope->exchange.len TSRMLS_CC); - zend_update_property_stringl(this_ce, envelope, ZEND_STRL("routing_key"), (const char *) amqp_envelope->routing_key.bytes, (PHP5to7_param_str_len_type_t) amqp_envelope->routing_key.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(envelope), ZEND_STRL("consumer_tag"), (const char *) amqp_envelope->consumer_tag.bytes, (PHP5to7_param_str_len_type_t) amqp_envelope->consumer_tag.len TSRMLS_CC); + zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(envelope), ZEND_STRL("delivery_tag"), (PHP5to7_param_long_type_t) amqp_envelope->delivery_tag TSRMLS_CC); + zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(envelope), ZEND_STRL("is_redelivery"), (PHP5to7_param_long_type_t) amqp_envelope->redelivered TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(envelope), ZEND_STRL("exchange_name"), (const char *) amqp_envelope->exchange.bytes, (PHP5to7_param_str_len_type_t) amqp_envelope->exchange.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(envelope), ZEND_STRL("routing_key"), (const char *) amqp_envelope->routing_key.bytes, (PHP5to7_param_str_len_type_t) amqp_envelope->routing_key.len TSRMLS_CC); php_amqp_basic_properties_extract(p, envelope TSRMLS_CC); } diff --git a/amqp_exchange.c b/amqp_exchange.c index 4f80d3b..4bfe397 100644 --- a/amqp_exchange.c +++ b/amqp_exchange.c @@ -65,20 +65,20 @@ static PHP_METHOD(amqp_exchange_class, __construct) zval *channelObj; amqp_channel_resource *channel_resource; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o", &channelObj) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &channelObj, amqp_channel_class_entry) == FAILURE) { return; } PHP5to7_MAYBE_INIT(arguments); PHP5to7_ARRAY_INIT(arguments); - zend_update_property(this_ce, getThis(), ZEND_STRL("arguments"), PHP5to7_MAYBE_PTR(arguments) TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("arguments"), PHP5to7_MAYBE_PTR(arguments) TSRMLS_CC); PHP5to7_MAYBE_DESTROY(arguments); channel_resource = PHP_AMQP_GET_CHANNEL_RESOURCE(channelObj); PHP_AMQP_VERIFY_CHANNEL_RESOURCE(channel_resource, "Could not create exchange."); - zend_update_property(this_ce, getThis(), ZEND_STRL("channel"), channelObj TSRMLS_CC); - zend_update_property(this_ce, getThis(), ZEND_STRL("connection"), PHP_AMQP_READ_OBJ_PROP(amqp_channel_class_entry, channelObj, "connection") TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("channel"), channelObj TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connection"), PHP_AMQP_READ_OBJ_PROP(amqp_channel_class_entry, channelObj, "connection") TSRMLS_CC); } /* }}} */ @@ -119,7 +119,7 @@ static PHP_METHOD(amqp_exchange_class, setName) } /* Set the exchange name */ - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("name"), name, name_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("name"), name, name_len TSRMLS_CC); } /* }}} */ @@ -168,10 +168,10 @@ static PHP_METHOD(amqp_exchange_class, setFlags) /* Set the flags based on the bitmask we were given */ flagBitmask = flagBitmask ? flagBitmask & PHP_AMQP_EXCHANGE_FLAGS : flagBitmask; - zend_update_property_bool(this_ce, getThis(), ZEND_STRL("passive"), IS_PASSIVE(flagBitmask) TSRMLS_CC); - zend_update_property_bool(this_ce, getThis(), ZEND_STRL("durable"), IS_DURABLE(flagBitmask) TSRMLS_CC); - zend_update_property_bool(this_ce, getThis(), ZEND_STRL("auto_delete"), IS_AUTODELETE(flagBitmask) TSRMLS_CC); - zend_update_property_bool(this_ce, getThis(), ZEND_STRL("internal"), IS_INTERNAL(flagBitmask) TSRMLS_CC); + zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("passive"), IS_PASSIVE(flagBitmask) TSRMLS_CC); + zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("durable"), IS_DURABLE(flagBitmask) TSRMLS_CC); + zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("auto_delete"), IS_AUTODELETE(flagBitmask) TSRMLS_CC); + zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("internal"), IS_INTERNAL(flagBitmask) TSRMLS_CC); } /* }}} */ @@ -204,7 +204,7 @@ static PHP_METHOD(amqp_exchange_class, setType) return; } - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("type"), type, type_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("type"), type, type_len TSRMLS_CC); } /* }}} */ @@ -273,7 +273,7 @@ static PHP_METHOD(amqp_exchange_class, setArguments) return; } - zend_update_property(this_ce, getThis(), ZEND_STRL("arguments"), zvalArguments TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("arguments"), zvalArguments TSRMLS_CC); RETURN_TRUE; } diff --git a/amqp_queue.c b/amqp_queue.c index c13629c..eeba144 100644 --- a/amqp_queue.c +++ b/amqp_queue.c @@ -68,20 +68,20 @@ static PHP_METHOD(amqp_queue_class, __construct) zval *channelObj; amqp_channel_resource *channel_resource; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o", &channelObj) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &channelObj, amqp_channel_class_entry) == FAILURE) { return; } PHP5to7_MAYBE_INIT(arguments); PHP5to7_ARRAY_INIT(arguments); - zend_update_property(this_ce, getThis(), ZEND_STRL("arguments"), PHP5to7_MAYBE_PTR(arguments) TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("arguments"), PHP5to7_MAYBE_PTR(arguments) TSRMLS_CC); PHP5to7_MAYBE_DESTROY(arguments); channel_resource = PHP_AMQP_GET_CHANNEL_RESOURCE(channelObj); PHP_AMQP_VERIFY_CHANNEL_RESOURCE(channel_resource, "Could not create queue."); - zend_update_property(this_ce, getThis(), ZEND_STRL("channel"), channelObj TSRMLS_CC); - zend_update_property(this_ce, getThis(), ZEND_STRL("connection"), PHP_AMQP_READ_OBJ_PROP(amqp_channel_class_entry, channelObj, "connection") TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("channel"), channelObj TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connection"), PHP_AMQP_READ_OBJ_PROP(amqp_channel_class_entry, channelObj, "connection") TSRMLS_CC); } /* }}} */ @@ -122,7 +122,7 @@ static PHP_METHOD(amqp_queue_class, setName) } /* Set the queue name */ - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("name"), name, name_len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("name"), name, name_len TSRMLS_CC); /* BC */ RETURN_TRUE; @@ -175,10 +175,10 @@ static PHP_METHOD(amqp_queue_class, setFlags) /* Set the flags based on the bitmask we were given */ flagBitmask = flagBitmask ? flagBitmask & PHP_AMQP_QUEUE_FLAGS : flagBitmask; - zend_update_property_bool(this_ce, getThis(), ZEND_STRL("passive"), IS_PASSIVE(flagBitmask) TSRMLS_CC); - zend_update_property_bool(this_ce, getThis(), ZEND_STRL("durable"), IS_DURABLE(flagBitmask) TSRMLS_CC); - zend_update_property_bool(this_ce, getThis(), ZEND_STRL("exclusive"), IS_EXCLUSIVE(flagBitmask) TSRMLS_CC); - zend_update_property_bool(this_ce, getThis(), ZEND_STRL("auto_delete"), IS_AUTODELETE(flagBitmask) TSRMLS_CC); + zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("passive"), IS_PASSIVE(flagBitmask) TSRMLS_CC); + zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("durable"), IS_DURABLE(flagBitmask) TSRMLS_CC); + zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("exclusive"), IS_EXCLUSIVE(flagBitmask) TSRMLS_CC); + zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("auto_delete"), IS_AUTODELETE(flagBitmask) TSRMLS_CC); /* BC */ RETURN_TRUE; @@ -250,7 +250,7 @@ static PHP_METHOD(amqp_queue_class, setArguments) return; } - zend_update_property(this_ce, getThis(), ZEND_STRL("arguments"), zvalArguments TSRMLS_CC); + zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("arguments"), zvalArguments TSRMLS_CC); RETURN_TRUE; } @@ -342,7 +342,7 @@ static PHP_METHOD(amqp_queue_class, declareQueue) /* Set the queue name, in case it is an autogenerated queue name */ name = php_amqp_type_amqp_bytes_to_char(r->queue); - zend_update_property_string(this_ce, getThis(), ZEND_STRL("name"), name TSRMLS_CC); + zend_update_property_string(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("name"), name TSRMLS_CC); efree(name); php_amqp_maybe_release_buffers_on_channel(channel_resource->connection_resource, channel_resource); @@ -525,7 +525,7 @@ static PHP_METHOD(amqp_queue_class, consume) } zval *channel_zv = PHP_AMQP_READ_THIS_PROP("channel"); - zval *consumers = zend_read_property(amqp_channel_class_entry, channel_zv, ZEND_STRL("consumers"), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); + zval *consumers = zend_read_property(amqp_channel_class_entry, PHP5to8_OBJ_PROP(channel_zv), ZEND_STRL("consumers"), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); if (IS_ARRAY != Z_TYPE_P(consumers)) { zend_throw_exception(amqp_queue_exception_class_entry, "Invalid channel consumers, forgot to call channel constructor?", 0 TSRMLS_CC); @@ -594,7 +594,7 @@ static PHP_METHOD(amqp_queue_class, consume) efree(key); /* Set the consumer tag name, in case it is an autogenerated consumer tag name */ - zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("consumer_tag"), (const char *) r->consumer_tag.bytes, (PHP5to7_param_str_len_type_t) r->consumer_tag.len TSRMLS_CC); + zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("consumer_tag"), (const char *) r->consumer_tag.bytes, (PHP5to7_param_str_len_type_t) r->consumer_tag.len TSRMLS_CC); } if (!ZEND_FCI_INITIALIZED(fci)) { @@ -674,7 +674,7 @@ static PHP_METHOD(amqp_queue_class, consume) current_channel_zv = current_channel_resource->parent->this_ptr; #endif - consumers = zend_read_property(amqp_channel_class_entry, PHP5to7_MAYBE_PTR(current_channel_zv), ZEND_STRL("consumers"), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); + consumers = zend_read_property(amqp_channel_class_entry, PHP5to8_OBJ_PROP(PHP5to7_MAYBE_PTR(current_channel_zv)), ZEND_STRL("consumers"), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); if (IS_ARRAY != Z_TYPE_P(consumers)) { zend_throw_exception(amqp_queue_exception_class_entry, "Invalid channel consumers, forgot to call channel constructor?", 0 TSRMLS_CC); @@ -689,8 +689,8 @@ static PHP_METHOD(amqp_queue_class, consume) PHP5to7_zval_t exception PHP5to7_MAYBE_SET_TO_NULL; PHP5to7_MAYBE_INIT(exception); object_init_ex(PHP5to7_MAYBE_PTR(exception), amqp_envelope_exception_class_entry); - zend_update_property_string(zend_exception_get_default(TSRMLS_C), PHP5to7_MAYBE_PTR(exception), ZEND_STRL("message"), "Orphaned envelope" TSRMLS_CC); - zend_update_property(amqp_envelope_exception_class_entry, PHP5to7_MAYBE_PTR(exception), ZEND_STRL("envelope"), PHP5to7_MAYBE_PTR(message) TSRMLS_CC); + zend_update_property_string(zend_exception_get_default(TSRMLS_C), PHP5to8_OBJ_PROP(PHP5to7_MAYBE_PTR(exception)), ZEND_STRL("message"), "Orphaned envelope" TSRMLS_CC); + zend_update_property(amqp_envelope_exception_class_entry, PHP5to8_OBJ_PROP(PHP5to7_MAYBE_PTR(exception)), ZEND_STRL("envelope"), PHP5to7_MAYBE_PTR(message) TSRMLS_CC); zend_throw_exception_object(PHP5to7_MAYBE_PTR(exception) TSRMLS_CC); @@ -946,7 +946,7 @@ static PHP_METHOD(amqp_queue_class, cancel) } zval *channel_zv = PHP_AMQP_READ_THIS_PROP("channel"); - zval *consumers = zend_read_property(amqp_channel_class_entry, channel_zv, ZEND_STRL("consumers"), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); + zval *consumers = zend_read_property(amqp_channel_class_entry, PHP5to8_OBJ_PROP(channel_zv), ZEND_STRL("consumers"), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); zend_bool has_consumer_tag = (zend_bool) (IS_STRING == Z_TYPE_P(PHP_AMQP_READ_THIS_PROP("consumer_tag"))); if (IS_ARRAY != Z_TYPE_P(consumers)) { @@ -977,8 +977,8 @@ static PHP_METHOD(amqp_queue_class, cancel) return; } - if (!consumer_tag_len || has_consumer_tag && strcmp(consumer_tag, PHP_AMQP_READ_THIS_PROP_STR("consumer_tag")) != 0) { - zend_update_property_null(this_ce, getThis(), ZEND_STRL("consumer_tag") TSRMLS_CC); + if (!consumer_tag_len || (has_consumer_tag && strcmp(consumer_tag, PHP_AMQP_READ_THIS_PROP_STR("consumer_tag")) != 0)) { + zend_update_property_null(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("consumer_tag") TSRMLS_CC); } char *key; diff --git a/amqp_timestamp.c b/amqp_timestamp.c index d9eec39..ed07ab6 100644 --- a/amqp_timestamp.c +++ b/amqp_timestamp.c @@ -61,7 +61,7 @@ static PHP_METHOD(amqp_timestamp_class, __construct) #if PHP_MAJOR_VERSION >= 7 zend_string *str; str = _php_math_number_format_ex(timestamp, 0, "", 0, "", 0); - zend_update_property_str(this_ce, getThis(), ZEND_STRL("timestamp"), str); + zend_update_property_str(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("timestamp"), str); zend_string_delref(str); #else char *str; @@ -104,7 +104,11 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_amqp_timestamp_class_getTimestamp, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 0) ZEND_END_ARG_INFO() +#if PHP_MAJOR_VERSION < 8 ZEND_BEGIN_ARG_INFO_EX(arginfo_amqp_timestamp_class_toString, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 0) +#else +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_amqp_timestamp_class_toString, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, IS_STRING, 0) +#endif ZEND_END_ARG_INFO() zend_function_entry amqp_timestamp_class_functions[] = { diff --git a/amqp_type.c b/amqp_type.c index fb87727..5f1ab91 100644 --- a/amqp_type.c +++ b/amqp_type.c @@ -250,7 +250,7 @@ zend_bool php_amqp_type_internal_convert_php_to_amqp_field_value(zval *value, am if (instanceof_function(Z_OBJCE_P(value), amqp_timestamp_class_entry TSRMLS_CC)) { PHP5to7_zval_t result_zv PHP5to7_MAYBE_SET_TO_NULL; - zend_call_method_with_0_params(PHP5to7_MAYBE_PARAM_PTR(value), amqp_timestamp_class_entry, NULL, "gettimestamp", &result_zv); + zend_call_method_with_0_params(PHP5to8_OBJ_PROP(PHP5to7_MAYBE_PARAM_PTR(value)), amqp_timestamp_class_entry, NULL, "gettimestamp", &result_zv); field->kind = AMQP_FIELD_KIND_TIMESTAMP; field->value.u64 = strtoimax(Z_STRVAL(PHP5to7_MAYBE_DEREF(result_zv)), NULL, 10); @@ -262,11 +262,11 @@ zend_bool php_amqp_type_internal_convert_php_to_amqp_field_value(zval *value, am field->kind = AMQP_FIELD_KIND_DECIMAL; PHP5to7_zval_t result_zv PHP5to7_MAYBE_SET_TO_NULL; - zend_call_method_with_0_params(PHP5to7_MAYBE_PARAM_PTR(value), amqp_decimal_class_entry, NULL, "getexponent", &result_zv); + zend_call_method_with_0_params(PHP5to8_OBJ_PROP(PHP5to7_MAYBE_PARAM_PTR(value)), amqp_decimal_class_entry, NULL, "getexponent", &result_zv); field->value.decimal.decimals = (uint8_t)Z_LVAL(PHP5to7_MAYBE_DEREF(result_zv)); PHP5to7_MAYBE_DESTROY(result_zv); - zend_call_method_with_0_params(PHP5to7_MAYBE_PARAM_PTR(value), amqp_decimal_class_entry, NULL, "getsignificand", &result_zv); + zend_call_method_with_0_params(PHP5to8_OBJ_PROP(PHP5to7_MAYBE_PARAM_PTR(value)), amqp_decimal_class_entry, NULL, "getsignificand", &result_zv); field->value.decimal.value = (uint32_t)Z_LVAL(PHP5to7_MAYBE_DEREF(result_zv)); PHP5to7_MAYBE_DESTROY(result_zv); diff --git a/php5_support.h b/php5_support.h index 5c57620..25c2d96 100644 --- a/php5_support.h +++ b/php5_support.h @@ -109,6 +109,8 @@ typedef zend_rsrc_list_entry PHP5to7_zend_resource_le_t; #define ZEND_ULONG_FMT "%" PRIu64 #define PHP5to7_ZEND_ACC_FINAL_CLASS ZEND_ACC_FINAL_CLASS +#define PHP5to8_OBJ_PROP(zv) (zv) + #endif //PHP_AMQP_PHP5_SUPPORT_H /* diff --git a/php7_support.h b/php7_support.h index c9e8f5b..0dbd6b2 100644 --- a/php7_support.h +++ b/php7_support.h @@ -101,15 +101,24 @@ typedef zval PHP5to7_zend_resource_le_t; #define PHP5to7_ZEND_ACC_FINAL_CLASS ZEND_ACC_FINAL + /* Small change to let it build after a major internal change for php8.0 * More info: * https://github.com/php/php-src/blob/php-8.0.0alpha3/UPGRADING.INTERNALS#L47 */ #if PHP_MAJOR_VERSION >= 8 + # define TSRMLS_DC # define TSRMLS_D # define TSRMLS_CC # define TSRMLS_C + +#define PHP5to8_OBJ_PROP(zv) Z_OBJ_P(zv) + +#else + +#define PHP5to8_OBJ_PROP(zv) (zv) + # endif #endif //PHP_AMQP_PHP7_SUPPORT_H diff --git a/php_amqp.h b/php_amqp.h index 752edd7..686741d 100644 --- a/php_amqp.h +++ b/php_amqp.h @@ -221,14 +221,14 @@ struct _amqp_connection_object { #define PHP_AMQP_NOPARAMS() if (zend_parse_parameters_none() == FAILURE) { return; } #define PHP_AMQP_RETURN_THIS_PROP(prop_name) \ - zval * _zv = zend_read_property(this_ce, getThis(), ZEND_STRL(prop_name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); \ + zval * _zv = zend_read_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(prop_name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); \ RETURN_ZVAL(_zv, 1, 0); -#define PHP_AMQP_READ_OBJ_PROP(cls, obj, name) zend_read_property((cls), (obj), ZEND_STRL(name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC) +#define PHP_AMQP_READ_OBJ_PROP(cls, obj, name) zend_read_property((cls), PHP5to8_OBJ_PROP(obj), ZEND_STRL(name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC) #define PHP_AMQP_READ_OBJ_PROP_DOUBLE(cls, obj, name) Z_DVAL_P(PHP_AMQP_READ_OBJ_PROP((cls), (obj), (name))) -#define PHP_AMQP_READ_THIS_PROP_CE(name, ce) zend_read_property((ce), getThis(), ZEND_STRL(name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC) -#define PHP_AMQP_READ_THIS_PROP(name) zend_read_property(this_ce, getThis(), ZEND_STRL(name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC) +#define PHP_AMQP_READ_THIS_PROP_CE(name, ce) zend_read_property((ce), PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC) +#define PHP_AMQP_READ_THIS_PROP(name) zend_read_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC) #define PHP_AMQP_READ_THIS_PROP_BOOL(name) Z_BVAL_P(PHP_AMQP_READ_THIS_PROP(name)) #define PHP_AMQP_READ_THIS_PROP_STR(name) Z_STRVAL_P(PHP_AMQP_READ_THIS_PROP(name)) #define PHP_AMQP_READ_THIS_PROP_STRLEN(name) (Z_TYPE_P(PHP_AMQP_READ_THIS_PROP(name)) == IS_STRING ? Z_STRLEN_P(PHP_AMQP_READ_THIS_PROP(name)) : 0) diff --git a/tests/amqptimestamp.phpt b/tests/amqptimestamp.phpt index 9835883..6424f8b 100644 --- a/tests/amqptimestamp.phpt +++ b/tests/amqptimestamp.phpt @@ -2,7 +2,7 @@ AMQPTimestamp --SKIPIF-- ')) { print "skip"; } --FILE-- @@ -52,4 +52,4 @@ bool(true) string(20) "18446744073709551616" string(1) "0" -==END== \ No newline at end of file +==END== diff --git a/tests/amqptimestamp_php8.phpt b/tests/amqptimestamp_php8.phpt new file mode 100644 index 0000000..dabecc5 --- /dev/null +++ b/tests/amqptimestamp_php8.phpt @@ -0,0 +1,60 @@ +--TEST-- +AMQPTimestamp +--SKIPIF-- +getTimestamp(), (string) $timestamp); + +$timestamp = new AMQPTimestamp(100000.1); +var_dump($timestamp->getTimestamp(), (string) $timestamp); + +try { + new AMQPTimestamp(); +} catch(ArgumentCountError $e) { + echo $e->getMessage() . "\n"; +} +try { + new AMQPTimestamp("string"); +} catch(TypeError $e) { + echo $e->getMessage() . "\n"; +} + +try { + new AMQPTimestamp(AMQPTimestamp::MIN - 1); +} catch (AMQPValueException $e) { + echo $e->getMessage() . "\n"; +} + +try { + new AMQPTimestamp(INF); +} catch (AMQPValueException $e) { + echo $e->getMessage() . "\n"; +} + +var_dump((new ReflectionClass("AMQPTimestamp"))->isFinal()); + +var_dump(AMQPTimestamp::MAX); +var_dump(AMQPTimestamp::MIN); +?> + +==END== +--EXPECTF-- +string(6) "100000" +string(6) "100000" +string(6) "100000" +string(6) "100000" +AMQPTimestamp::__construct() expects exactly 1 parameter, 0 given +AMQPTimestamp::__construct(): Argument #1 ($timestamp) must be of type float, string given +The timestamp parameter must be greater than 0. +The timestamp parameter must be less than 18446744073709551616. +bool(true) +string(20) "18446744073709551616" +string(1) "0" + +==END== diff --git a/tests/bug_61533.phpt b/tests/bug_61533.phpt index ecb5213..f53c315 100644 --- a/tests/bug_61533.phpt +++ b/tests/bug_61533.phpt @@ -21,4 +21,4 @@ try { ?> --EXPECTF-- -%s: Argument 1 passed to AMQPQueue::__construct() must be an instance of AMQPChannel, instance of AMQPConnection given%s +%s AMQPChannel%s AMQPConnection%s ================================================ FILE: package/php-amqp/Config.in ================================================ config BR2_PACKAGE_PHP_AMQP bool "php-amqp" depends on BR2_TOOLCHAIN_HAS_THREADS # rabbitmq-c select BR2_PACKAGE_OPENSSL # rabbitmq-c: amqp_ssl_socket.h select BR2_PACKAGE_RABBITMQ_C help Communicate with any AMQP compliant server. http://pecl.php.net/package/amqp comment "php-amqp needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/php-amqp/php-amqp.hash ================================================ # Locally calculated sha256 0ebc61052eb12406dddf5eabfe8749a12d52c566816b8aab04fb9916d0c26ed2 amqp-1.10.2.tgz sha256 ecd004e9ae3fcf54896b562d5e8008e36041f2620076effd58e5f4187299cee8 LICENSE ================================================ FILE: package/php-amqp/php-amqp.mk ================================================ ################################################################################ # # php-amqp # ################################################################################ PHP_AMQP_VERSION = 1.10.2 PHP_AMQP_SOURCE = amqp-$(PHP_AMQP_VERSION).tgz PHP_AMQP_SITE = https://pecl.php.net/get PHP_AMQP_CONF_OPTS = --with-php-config=$(STAGING_DIR)/usr/bin/php-config \ --with-amqp=$(STAGING_DIR)/usr # phpize does the autoconf magic PHP_AMQP_DEPENDENCIES = rabbitmq-c php host-autoconf PHP_AMQP_LICENSE = PHP-3.01 PHP_AMQP_LICENSE_FILES = LICENSE define PHP_AMQP_PHPIZE (cd $(@D); \ PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \ PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \ $(STAGING_DIR)/usr/bin/phpize) endef PHP_AMQP_PRE_CONFIGURE_HOOKS += PHP_AMQP_PHPIZE $(eval $(autotools-package)) ================================================ FILE: package/php-geoip/0001-add-build-support-for-php8.patch ================================================ From 9500f9964a1ef03890376c61f1b17db88753c8e2 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Mon, 28 Jun 2021 12:24:59 -0700 Subject: [PATCH] add build support for php8 Signed-off-by: Adam Duskett --- php_geoip.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/php_geoip.h b/php_geoip.h index 2f67cb6..d19d612 100644 --- a/php_geoip.h +++ b/php_geoip.h @@ -30,6 +30,17 @@ extern zend_module_entry geoip_module_entry; typedef long zend_long; #endif +/* Small change to let it build after a major internal change for php8.0 + * More info: + * https://github.com/php/php-src/blob/php-8.0.0/UPGRADING.INTERNALS#L47 + */ +#if PHP_MAJOR_VERSION >= 8 +# define TSRMLS_DC +# define TSRMLS_D +# define TSRMLS_CC +# define TSRMLS_C +# endif + #ifdef PHP_WIN32 #define PHP_GEOIP_API __declspec(dllexport) #else -- 2.31.1 ================================================ FILE: package/php-geoip/Config.in ================================================ config BR2_PACKAGE_PHP_GEOIP bool "php-geoip" select BR2_PACKAGE_GEOIP help PHP GeoIP-based IP address mapper to geographical places. http://pecl.php.net/package/geoip ================================================ FILE: package/php-geoip/php-geoip.hash ================================================ # Locally calculated sha256 b2d05c03019d46135c249b5a7fa0dbd43ca5ee98aea8ed807bc7aa90ac8c0f06 geoip-1.1.1.tgz sha256 93eb7fe81da0861e7013d12fe82cc8691a450822d889c2b0443a434be6c28ef4 geoip.c ================================================ FILE: package/php-geoip/php-geoip.mk ================================================ ################################################################################ # # php-geoip # ################################################################################ PHP_GEOIP_VERSION = 1.1.1 PHP_GEOIP_SOURCE = geoip-$(PHP_GEOIP_VERSION).tgz PHP_GEOIP_SITE = https://pecl.php.net/get 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-3.01 PHP_GEOIP_LICENSE_FILES = geoip.c define PHP_GEOIP_PHPIZE (cd $(@D); \ PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \ PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \ $(STAGING_DIR)/usr/bin/phpize) endef PHP_GEOIP_PRE_CONFIGURE_HOOKS += PHP_GEOIP_PHPIZE $(eval $(autotools-package)) ================================================ FILE: package/php-gnupg/0001-Remove-inlining-_phpc_res_close.patch ================================================ From 887b0899d7e7423baec691255c2d8b56bb348ecd Mon Sep 17 00:00:00 2001 From: Jakub Zelenka Date: Sun, 14 Mar 2021 18:52:21 +0000 Subject: [PATCH] Remove inlining _phpc_res_close [Retrieved from: https://github.com/bukka/phpc/commit/887b0899d7e7423baec691255c2d8b56bb348ecd] Signed-off-by: Fabrice Fontaine --- phpc.h | 8 -------- 1 file changed, 8 deletions(-) diff --git a/phpc/phpc.h b/phpc/phpc.h index dc5887e..9206105 100644 --- a/phpc/phpc.h +++ b/phpc/phpc.h @@ -945,16 +945,8 @@ typedef zend_resource * phpc_res_value_t; zend_fetch_resource2(Z_RES_P(_pz_res), _res_type_name, _res_type_1, _res_type_2) #define PHPC_RES_DELETE(_pz_res) \ zend_list_delete(Z_RES_P(_pz_res)) -#if PHP_MAJOR_VERSION < 8 #define PHPC_RES_CLOSE(_pz_res) \ zend_list_close(Z_RES_P(_pz_res)) -#else -inline int _phpc_res_close(zval *zres) { - zend_list_close(Z_RES_P(zres)); - return SUCCESS; -} -#define PHPC_RES_CLOSE _phpc_res_close -#endif /* resource to zval */ #define PHPC_RES_PZVAL(_res, _pzv) \ ================================================ FILE: package/php-gnupg/Config.in ================================================ config BR2_PACKAGE_PHP_GNUPG bool "php-gnupg" depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # ligpgme depends on BR2_USE_MMU # libassuan select BR2_PACKAGE_LIBGPGME help PHP wrapper around the gpgme library. http://pecl.php.net/package/gnupg ================================================ FILE: package/php-gnupg/php-gnupg.hash ================================================ # Locally calculated sha256 d4f5f79aa483908f3df08e5b343ea3593c6d725b9ed2103e30242627659e0a64 gnupg-1.5.0.tgz sha256 da1136d4d9326317cbd320dadddf7e9b4b4edffd973eb083cb7b9754fb6a15d9 LICENSE ================================================ FILE: package/php-gnupg/php-gnupg.mk ================================================ ################################################################################ # # php-gnupg # ################################################################################ PHP_GNUPG_VERSION = 1.5.0 PHP_GNUPG_SOURCE = gnupg-$(PHP_GNUPG_VERSION).tgz PHP_GNUPG_SITE = https://pecl.php.net/get # 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 \ --with-gnupg=$(STAGING_DIR)/usr --with-gpg=/usr/bin/gpg PHP_GNUPG_LICENSE = BSD-2-Clause PHP_GNUPG_LICENSE_FILES = LICENSE define PHP_GNUPG_PHPIZE (cd $(@D); \ PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \ PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \ $(STAGING_DIR)/usr/bin/phpize) endef PHP_GNUPG_PRE_CONFIGURE_HOOKS += PHP_GNUPG_PHPIZE $(eval $(autotools-package)) ================================================ FILE: package/php-imagick/Config.in ================================================ config BR2_PACKAGE_PHP_IMAGICK bool "php-imagick" depends on BR2_USE_MMU # imagemagick depends on BR2_TOOLCHAIN_HAS_THREADS # imagemagick select BR2_PACKAGE_IMAGEMAGICK help PHP wrapper to the ImageMagick library. http://pecl.php.net/package/imagick comment "php-imagemagick needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/php-imagick/php-imagick.hash ================================================ # Locally calculated sha256 795db7c36fbacd3d33a4f53ff2d38584c846e80a04dcd04c55e9e46c28f5d229 imagick-3.5.0.tgz sha256 b6e00df9cb3b91977c0d64a7c4db48cb6f5041f6eeda6583c236775f70a35b78 LICENSE ================================================ FILE: package/php-imagick/php-imagick.mk ================================================ ################################################################################ # # php-imagick # ################################################################################ PHP_IMAGICK_VERSION = 3.5.0 PHP_IMAGICK_SOURCE = imagick-$(PHP_IMAGICK_VERSION).tgz 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 PHP_IMAGICK_DEPENDENCIES = imagemagick php host-autoconf PHP_IMAGICK_LICENSE = PHP-3.01 PHP_IMAGICK_LICENSE_FILES = LICENSE PHP_IMAGICK_CPE_ID_VENDOR = php PHP_IMAGICK_CPE_ID_PRODUCT = imagick define PHP_IMAGICK_PHPIZE (cd $(@D); \ PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \ PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \ $(STAGING_DIR)/usr/bin/phpize) endef PHP_IMAGICK_PRE_CONFIGURE_HOOKS += PHP_IMAGICK_PHPIZE $(eval $(autotools-package)) ================================================ FILE: package/php-memcached/Config.in ================================================ config BR2_PACKAGE_PHP_MEMCACHED bool "php-memcached" depends on BR2_INSTALL_LIBSTDCPP # libmemcached depends on BR2_TOOLCHAIN_HAS_THREADS # libmemcached select BR2_PACKAGE_PHP_EXT_SESSION select BR2_PACKAGE_LIBMEMCACHED select BR2_PACKAGE_ZLIB help PHP extension for interfacing with memcached via libmemcached library. http://pecl.php.net/package/memcached comment "php-memcached needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/php-memcached/php-memcached.hash ================================================ # Locally calculated sha256 b288e45f839593e16c4d8508b241de51a86df4f7322153e6becb9e1c819021fd memcached-3.1.5.tgz sha256 24e8e3a9529204ead9422fa17cf3ddd75d292a8763b87fdb20591964f2e6ebe0 LICENSE sha256 a453a7a272fbd24105b39959f76996d50dad80b22d1c310f6c67f74f62ae4054 fastlz/LICENSE sha256 bba8cb50c660842c5ca459c5004395bdef8f01c1b64f97a9978f1053f173cb82 g_fmt.h ================================================ FILE: package/php-memcached/php-memcached.mk ================================================ ################################################################################ # # php-memcached # ################################################################################ PHP_MEMCACHED_VERSION = 3.1.5 PHP_MEMCACHED_SOURCE = memcached-$(PHP_MEMCACHED_VERSION).tgz PHP_MEMCACHED_SITE = https://pecl.php.net/get PHP_MEMCACHED_CONF_OPTS = --with-php-config=$(STAGING_DIR)/usr/bin/php-config \ --disable-memcached-sasl \ --with-libmemcached-dir=$(STAGING_DIR)/usr \ --with-zlib-dir=$(STAGING_DIR)/usr # phpize does the autoconf magic PHP_MEMCACHED_DEPENDENCIES = libmemcached php zlib host-autoconf host-pkgconf PHP_MEMCACHED_LICENSE = PHP-3.01, MIT (fastlz), ISC-like (g_fmt.c, g_fmt.h) PHP_MEMCACHED_LICENSE_FILES = LICENSE fastlz/LICENSE g_fmt.h define PHP_MEMCACHED_PHPIZE (cd $(@D); \ PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \ PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \ $(STAGING_DIR)/usr/bin/phpize) endef PHP_MEMCACHED_PRE_CONFIGURE_HOOKS += PHP_MEMCACHED_PHPIZE $(eval $(autotools-package)) ================================================ FILE: package/php-pecl-dbus/0001-php8-compat.patch ================================================ From 7fde4dd4d26d2a4b7957a1010c6ea9e4b940fc62 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Mon, 18 Jan 2021 23:22:52 +0200 Subject: [PATCH] php8 compat Upstream: https://github.com/derickr/pecl-dbus/pull/8 Signed-off-by: Herve Codina --- dbus.c | 55 ++++++++++++++++++++++++++++++------------------------ php_dbus.h | 10 ++++++++++ 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/dbus.c b/dbus.c index 9fde647..a98e2ea 100644 --- a/dbus.c +++ b/dbus.c @@ -38,6 +38,9 @@ #define Z_ADDREF_P(z) ((z)->refcount++) #endif +ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0) +ZEND_END_ARG_INFO() + /* {{{ arginfo */ ZEND_BEGIN_ARG_INFO_EX(arginfo_dbus_object___call, 0, 0, 2) ZEND_ARG_INFO(0, function_name) @@ -46,44 +49,44 @@ ZEND_END_ARG_INFO() /* }}} */ const zend_function_entry dbus_funcs_dbus[] = { - PHP_ME(Dbus, __construct, NULL, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) - PHP_ME(Dbus, addWatch, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Dbus, waitLoop, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Dbus, requestName, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Dbus, registerObject, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Dbus, createProxy, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Dbus, __construct, arginfo_void, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) + PHP_ME(Dbus, addWatch, arginfo_void, ZEND_ACC_PUBLIC) + PHP_ME(Dbus, waitLoop, arginfo_void, ZEND_ACC_PUBLIC) + PHP_ME(Dbus, requestName, arginfo_void, ZEND_ACC_PUBLIC) + PHP_ME(Dbus, registerObject, arginfo_void, ZEND_ACC_PUBLIC) + PHP_ME(Dbus, createProxy, arginfo_void, ZEND_ACC_PUBLIC) PHP_FE_END }; const zend_function_entry dbus_funcs_dbus_object[] = { - PHP_ME(DbusObject, __construct, NULL, ZEND_ACC_CTOR|ZEND_ACC_PRIVATE) + PHP_ME(DbusObject, __construct, arginfo_void, ZEND_ACC_CTOR|ZEND_ACC_PRIVATE) PHP_ME(DbusObject, __call, arginfo_dbus_object___call, ZEND_ACC_PUBLIC) PHP_FE_END }; const zend_function_entry dbus_funcs_dbus_signal[] = { - PHP_ME(DbusSignal, __construct, NULL, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) - PHP_ME(DbusSignal, matches, NULL, ZEND_ACC_PUBLIC) - PHP_ME(DbusSignal, getData, NULL, ZEND_ACC_PUBLIC) - PHP_ME(DbusSignal, send, NULL, ZEND_ACC_PUBLIC) + PHP_ME(DbusSignal, __construct, arginfo_void, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) + PHP_ME(DbusSignal, matches, arginfo_void, ZEND_ACC_PUBLIC) + PHP_ME(DbusSignal, getData, arginfo_void, ZEND_ACC_PUBLIC) + PHP_ME(DbusSignal, send, arginfo_void, ZEND_ACC_PUBLIC) PHP_FE_END }; const zend_function_entry dbus_funcs_dbus_array[] = { - PHP_ME(DbusArray, __construct, NULL, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) - PHP_ME(DbusArray, getData, NULL, ZEND_ACC_PUBLIC) + PHP_ME(DbusArray, __construct, arginfo_void, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) + PHP_ME(DbusArray, getData, arginfo_void, ZEND_ACC_PUBLIC) PHP_FE_END }; const zend_function_entry dbus_funcs_dbus_dict[] = { - PHP_ME(DbusDict, __construct, NULL, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) - PHP_ME(DbusDict, getData, NULL, ZEND_ACC_PUBLIC) + PHP_ME(DbusDict, __construct, arginfo_void, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) + PHP_ME(DbusDict, getData, arginfo_void, ZEND_ACC_PUBLIC) PHP_FE_END }; #define PHP_DBUS_INT_WRAPPER_DEF(s,t) \ const zend_function_entry dbus_funcs_dbus_##s[] = { \ - PHP_ME(Dbus##t, __construct, NULL, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) \ + PHP_ME(Dbus##t, __construct, arginfo_void, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) \ PHP_FE_END \ }; @@ -98,26 +101,26 @@ PHP_DBUS_INT_WRAPPER_DEF(uint64,UInt64); PHP_DBUS_INT_WRAPPER_DEF(double, Double); const zend_function_entry dbus_funcs_dbus_variant[] = { - PHP_ME(DbusVariant, __construct, NULL, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) - PHP_ME(DbusVariant, getData, NULL, ZEND_ACC_PUBLIC) + PHP_ME(DbusVariant, __construct, arginfo_void, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) + PHP_ME(DbusVariant, getData, arginfo_void, ZEND_ACC_PUBLIC) PHP_FE_END }; const zend_function_entry dbus_funcs_dbus_set[] = { - PHP_ME(DbusSet, __construct, NULL, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) - PHP_ME(DbusSet, getData, NULL, ZEND_ACC_PUBLIC) + PHP_ME(DbusSet, __construct, arginfo_void, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) + PHP_ME(DbusSet, getData, arginfo_void, ZEND_ACC_PUBLIC) PHP_FE_END }; const zend_function_entry dbus_funcs_dbus_struct[] = { - PHP_ME(DbusStruct, __construct, NULL, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) - PHP_ME(DbusStruct, getData, NULL, ZEND_ACC_PUBLIC) + PHP_ME(DbusStruct, __construct, arginfo_void, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) + PHP_ME(DbusStruct, getData, arginfo_void, ZEND_ACC_PUBLIC) PHP_FE_END }; const zend_function_entry dbus_funcs_dbus_object_path[] = { - PHP_ME(DbusObjectPath, __construct, NULL, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) - PHP_ME(DbusObjectPath, getData, NULL, ZEND_ACC_PUBLIC) + PHP_ME(DbusObjectPath, __construct, arginfo_void, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) + PHP_ME(DbusObjectPath, getData, arginfo_void, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -405,7 +408,11 @@ static void dbus_register_classes(TSRMLS_D) dbus_ce_dbus = zend_register_internal_class_ex(&ce_dbus, NULL); memcpy(&dbus_object_handlers_dbus, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); dbus_object_handlers_dbus.clone_obj = dbus_object_clone_dbus; +#if PHP_VERSION_ID < 80000 dbus_object_handlers_dbus.compare_objects = dbus_object_compare_dbus; +#else + dbus_object_handlers_dbus.compare = dbus_object_compare_dbus; +#endif zend_declare_class_constant_long(dbus_ce_dbus, "BYTE", sizeof("BYTE")-1, DBUS_TYPE_BYTE TSRMLS_CC); zend_declare_class_constant_long(dbus_ce_dbus, "BOOLEAN", sizeof("BOOLEAN")-1, DBUS_TYPE_BOOLEAN TSRMLS_CC); diff --git a/php_dbus.h b/php_dbus.h index 8817544..1f0f551 100644 --- a/php_dbus.h +++ b/php_dbus.h @@ -25,6 +25,16 @@ #include "config.h" #endif +#if PHP_VERSION_ID >= 80000 +#ifndef TSRMLS_D +#define TSRMLS_D void +#define TSRMLS_DC +#define TSRMLS_C +#define TSRMLS_CC +#define TSRMLS_FETCH() +#endif +#endif /* PHP_VERSION_ID >= 80000 */ + #include "Zend/zend_hash.h" #define PHP_DBUS_VERSION "0.2.0" -- 2.31.1 ================================================ FILE: package/php-pecl-dbus/0002-Fix-compatibility-with-php8-call_user_function_ex.patch ================================================ From 8cf66c4b5dd657ca14552b27a42901db0a5e9280 Mon Sep 17 00:00:00 2001 From: Herve Codina Date: Mon, 4 Oct 2021 17:13:45 +0200 Subject: [PATCH] Fix compatibility with php8 - call_user_function_ex This patch fixes compatibility with php8 replacing call_user_function_ex by call_user_function. Upstream: https://github.com/derickr/pecl-dbus/pull/8 Signed-off-by: Herve Codina --- dbus.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dbus.c b/dbus.c index a98e2ea..6fa9897 100644 --- a/dbus.c +++ b/dbus.c @@ -1015,8 +1015,8 @@ php_dbus_do_method_call(php_dbus_obj *dbus, method_args = safe_emalloc(sizeof(zval *), num_elems, 0); } - if (call_user_function_ex(EG(function_table), object, &callback, &retval, - num_elems, method_args, 0, NULL) == SUCCESS) { + if (call_user_function(EG(function_table), object, &callback, &retval, + num_elems, method_args) == SUCCESS) { if (!Z_ISUNDEF(retval)) { reply = dbus_message_new_method_return(msg); php_dbus_append_parameters(reply, &retval, NULL, -- 2.31.1 ================================================ FILE: package/php-pecl-dbus/Config.in ================================================ config BR2_PACKAGE_PHP_PECL_DBUS bool "php-pecl-dbus" depends on BR2_TOOLCHAIN_HAS_THREADS # dbus depends on BR2_USE_MMU # dbus select BR2_PACKAGE_DBUS select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_PHP_EXT_LIBXML2 # Runtime dependency help PHP extension for interaction with D-Bus busses. https://github.com/derickr/pecl-dbus comment "php-pecl-dbus needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/php-pecl-dbus/php-pecl-dbus.hash ================================================ # Locally calculated: sha256 c48761c645c6fa42b57af0e65d893217dc69bcd8d879ace74d6abbf1c5f73a8f php-pecl-dbus-315d17558c7614d02e923d898231e51c86a25789.tar.gz sha256 ecc8b74820c32fb82ddee80446205408585d75d1632ac959fb3cdf8eaf3877b5 LICENSE ================================================ FILE: package/php-pecl-dbus/php-pecl-dbus.mk ================================================ ################################################################################ # # php-pecl-dbus # ################################################################################ PHP_PECL_DBUS_VERSION = 315d17558c7614d02e923d898231e51c86a25789 PHP_PECL_DBUS_SITE = $(call github,derickr,pecl-dbus,$(PHP_PECL_DBUS_VERSION)) PHP_PECL_DBUS_LICENSE = PHP-3.01 PHP_PECL_DBUS_LICENSE_FILES = LICENSE PHP_PECL_DBUS_DEPENDENCIES = php dbus libxml2 host-autoconf host-pkgconf PHP_PECL_DBUS_CONF_OPTS = \ --with-php-config=$(STAGING_DIR)/usr/bin/php-config define PHP_PECL_DBUS_PHPIZE (cd $(@D); \ PHP_AUTOCONF=$(HOST_DIR)/usr/bin/autoconf \ PHP_AUTOHEADER=$(HOST_DIR)/usr/bin/autoheader \ $(STAGING_DIR)/usr/bin/phpize) endef PHP_PECL_DBUS_PRE_CONFIGURE_HOOKS += PHP_PECL_DBUS_PHPIZE $(eval $(autotools-package)) ================================================ FILE: package/php-ssh2/Config.in ================================================ config BR2_PACKAGE_PHP_SSH2 bool "php-ssh2" select BR2_PACKAGE_LIBSSH2 help PHP bindings for the libssh2 library. http://pecl.php.net/package/ssh2 ================================================ FILE: package/php-ssh2/php-ssh2.hash ================================================ # Locally calculated sha256 9093a1f8d24dc65836027b0e239c50de8d5eaebf8396bc3331fdd38c5d69afd9 ssh2-1.3.1.tgz sha256 ac7c56f1e416ce6e60abcf26269395128bc9e5a2e4f3293e5dcc124aac606508 LICENSE ================================================ FILE: package/php-ssh2/php-ssh2.mk ================================================ ################################################################################ # # php-ssh2 # ################################################################################ PHP_SSH2_VERSION = 1.3.1 PHP_SSH2_SOURCE = ssh2-$(PHP_SSH2_VERSION).tgz PHP_SSH2_SITE = https://pecl.php.net/get PHP_SSH2_CONF_OPTS = --with-php-config=$(STAGING_DIR)/usr/bin/php-config \ --with-ssh2=$(STAGING_DIR)/usr # phpize does the autoconf magic PHP_SSH2_DEPENDENCIES = libssh2 php host-autoconf PHP_SSH2_LICENSE = PHP-3.01 PHP_SSH2_LICENSE_FILES = LICENSE define PHP_SSH2_PHPIZE (cd $(@D); \ PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \ PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \ $(STAGING_DIR)/usr/bin/phpize) endef PHP_SSH2_PRE_CONFIGURE_HOOKS += PHP_SSH2_PHPIZE $(eval $(autotools-package)) ================================================ FILE: package/php-xdebug/Config.in ================================================ config BR2_PACKAGE_PHP_XDEBUG bool "php-xdebug" help Extension for PHP to assist with debugging and development. http://xdebug.org ================================================ FILE: package/php-xdebug/php-xdebug.hash ================================================ # Locally computed sha256 7e4f28fc65c8b535de43b6d2ec57429476a6de1d53c4d440a9108ae8d28e01f4 php-xdebug-3.0.4.tar.gz sha256 ef479ee1a3da3f933e0d046ca8cd0c14601f29b2c0c41cc60c9388546a4e0272 LICENSE ================================================ FILE: package/php-xdebug/php-xdebug.mk ================================================ ################################################################################ # # php-xdebug # ################################################################################ PHP_XDEBUG_VERSION = 3.0.4 PHP_XDEBUG_SITE = $(call github,xdebug,xdebug,$(PHP_XDEBUG_VERSION)) PHP_XDEBUG_INSTALL_STAGING = YES PHP_XDEBUG_LICENSE = Xdebug License (PHP-3.0-like) PHP_XDEBUG_LICENSE_FILES = LICENSE # phpize does the autoconf magic PHP_XDEBUG_DEPENDENCIES = php host-autoconf PHP_XDEBUG_CONF_OPTS = \ --enable-xdebug \ --with-php-config=$(STAGING_DIR)/usr/bin/php-config \ --with-xdebug=$(STAGING_DIR)/usr define PHP_XDEBUG_PHPIZE (cd $(@D); \ PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \ PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \ $(STAGING_DIR)/usr/bin/phpize) endef PHP_XDEBUG_PRE_CONFIGURE_HOOKS += PHP_XDEBUG_PHPIZE $(eval $(autotools-package)) ================================================ FILE: package/php-yaml/Config.in ================================================ config BR2_PACKAGE_PHP_YAML bool "php-yaml" select BR2_PACKAGE_LIBYAML help PHP YAML-1.1 parser and emitter. http://pecl.php.net/package/yaml ================================================ FILE: package/php-yaml/php-yaml.hash ================================================ # Locally calculated sha256 e17ad04e752e25fd099bddd2df9d26dfef183c8d00c4179bc9d7a2e1c97d7819 yaml-2.2.1.tgz sha256 68d9700294396c72089bfc7bf38a5b3654a53ae415f3bd37768848c14e86f338 LICENSE ================================================ FILE: package/php-yaml/php-yaml.mk ================================================ ################################################################################ # # php-yaml # ################################################################################ PHP_YAML_VERSION = 2.2.1 PHP_YAML_SOURCE = yaml-$(PHP_YAML_VERSION).tgz 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 PHP_YAML_DEPENDENCIES = libyaml php host-autoconf PHP_YAML_LICENSE = MIT PHP_YAML_LICENSE_FILES = LICENSE define PHP_YAML_PHPIZE (cd $(@D); \ PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \ PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \ $(STAGING_DIR)/usr/bin/phpize) endef PHP_YAML_PRE_CONFIGURE_HOOKS += PHP_YAML_PHPIZE $(eval $(autotools-package)) ================================================ FILE: package/php-zmq/0001-updates-for-php7.4-and-php8.0.patch ================================================ From 4ad1b33e095924bd4ccf79295999dd54edaaac37 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Thu, 5 Mar 2020 22:51:22 +0000 Subject: [PATCH] updates for php7.4 and php8.0 (#212) From upstream commit: 4ad1b33e095924bd4ccf79295999dd54edaaac37 * travisci: enabled php7.4 and php8.0 * updates for php7.4 and php8.0 - travisci enabled php7.4 and php8.0 - removed now unused references to TSRMLS_* These flags were mostly already removed from the php7 codebase but some instances were still present. With php8 these produce compile errors. - fix tests for php8 and php7.4 New TypeErrors now get handled correctly in the test cases. - fix memory corruption in zmq.c The conflicting line causes memory leaks on other php version and causes a segfault on php8 and php7.4 The error was provocable with test case 021-callbackwarning.phpt. After removing of the line valgrind showed no memory leak, so this line was probably redundant. Also if you compare with zmqsocket constructor this line is also not present. Signed-off-by: Luca Boccassi Signed-off-by: Adam Duskett --- php_zmq_private.h | 4 ++-- tests/016-callbackinvalidargs.phpt | 4 ++++ tests/022-highwatermark.phpt | 6 +++--- tests/bug_gh_43.phpt | 25 +++++++++++++++++-------- zmq.c | 1 - zmq_device.c | 14 +++++++------- zmq_sockopt.c | 2 +- 7 files changed, 34 insertions(+), 22 deletions(-) diff --git a/php_zmq_private.h b/php_zmq_private.h index 49630e9..2e5cd3b 100644 --- a/php_zmq_private.h +++ b/php_zmq_private.h @@ -156,9 +156,9 @@ typedef struct _php_zmq_device_object { #define PHP_ZMQ_ERROR_HANDLING_INIT() zend_error_handling error_handling; -#define PHP_ZMQ_ERROR_HANDLING_THROW() zend_replace_error_handling(EH_THROW, php_zmq_socket_exception_sc_entry, &error_handling TSRMLS_CC); +#define PHP_ZMQ_ERROR_HANDLING_THROW() zend_replace_error_handling(EH_THROW, php_zmq_socket_exception_sc_entry, &error_handling); -#define PHP_ZMQ_ERROR_HANDLING_RESTORE() zend_restore_error_handling(&error_handling TSRMLS_CC); +#define PHP_ZMQ_ERROR_HANDLING_RESTORE() zend_restore_error_handling(&error_handling); /* Compatibility macros between zeromq 2.x and 3.x */ #ifndef ZMQ_DONTWAIT diff --git a/tests/016-callbackinvalidargs.phpt b/tests/016-callbackinvalidargs.phpt index a940e41..6bd0e75 100644 --- a/tests/016-callbackinvalidargs.phpt +++ b/tests/016-callbackinvalidargs.phpt @@ -10,6 +10,8 @@ try { echo "Fail\n"; } catch (ZMQSocketException $e) { echo "OK\n"; +} catch (TypeError $e) { + echo "OK\n"; // on PHP8 } try { @@ -18,6 +20,8 @@ try { echo "Fail\n"; } catch (ZMQSocketException $e) { echo "OK\n"; +} catch (TypeError $e) { + echo "OK\n"; // on PHP8 } --EXPECT-- diff --git a/tests/022-highwatermark.phpt b/tests/022-highwatermark.phpt index 84be509..c1ff703 100644 --- a/tests/022-highwatermark.phpt +++ b/tests/022-highwatermark.phpt @@ -1,11 +1,11 @@ --TEST-- Test that high-watermark works --SKIPIF-- - - + --FILE-- - ---EXPECTF-- -Warning: ZMQDevice::__construct() expects at most 3 parameters, 4 given in %s/bug_gh_43.php on line %d -OK \ No newline at end of file +try { + $device = new ZMQDevice ($sock1, $sock1, $sock1, $sock1); + // on PHP7 and lower + $lastError = error_get_last(); + if(strpos($lastError['message'], 'ZMQDevice::__construct() expects at most 3 parameters, 4 given') !== false) + echo "OK\n"; + else{ + echo "FAIL\n"; + print_r($lastError); + } +}catch(TypeError $e){ + echo "OK\n"; // on PHP8 +} +--EXPECT-- +OK diff --git a/zmq.c b/zmq.c index 942e69b..66196ea 100644 --- a/zmq.c +++ b/zmq.c @@ -687,7 +687,6 @@ PHP_METHOD(zmqcontext, getsocket) if (!php_zmq_connect_callback(return_value, &fci, &fci_cache, persistent_id)) { php_zmq_socket_destroy(socket); interns->socket = NULL; - zval_dtor(return_value); return; } } diff --git a/zmq_device.c b/zmq_device.c index c7415c1..534f966 100644 --- a/zmq_device.c +++ b/zmq_device.c @@ -41,7 +41,7 @@ ZEND_EXTERN_MODULE_GLOBALS(php_zmq) static -zend_bool s_invoke_device_cb (php_zmq_device_cb_t *cb, uint64_t current_ts TSRMLS_DC) +zend_bool s_invoke_device_cb (php_zmq_device_cb_t *cb, uint64_t current_ts) { zend_bool retval = 0; zval params[1]; @@ -59,7 +59,7 @@ zend_bool s_invoke_device_cb (php_zmq_device_cb_t *cb, uint64_t current_ts TSRML if (zend_call_function(&(cb->fci), &(cb->fci_cache)) == FAILURE) { if (!EG(exception)) { char *func_name = php_zmq_printable_func(&cb->fci, &cb->fci_cache); - zend_throw_exception_ex(php_zmq_device_exception_sc_entry_get (), 0 TSRMLS_CC, "Failed to invoke device callback %s()", func_name); + zend_throw_exception_ex(php_zmq_device_exception_sc_entry_get (), 0, "Failed to invoke device callback %s()", func_name); zval_ptr_dtor(¶ms[0]); efree(func_name); } @@ -94,7 +94,7 @@ int s_capture_message (void *socket, zmq_msg_t *msg, int more) } static -int s_calculate_timeout (php_zmq_device_object *intern TSRMLS_DC) +int s_calculate_timeout (php_zmq_device_object *intern) { int timeout = -1; uint64_t current = php_zmq_clock (ZMQ_G (clock_ctx)); @@ -131,7 +131,7 @@ int s_calculate_timeout (php_zmq_device_object *intern TSRMLS_DC) } -zend_bool php_zmq_device (php_zmq_device_object *intern TSRMLS_DC) +zend_bool php_zmq_device (php_zmq_device_object *intern) { int errno_; uint64_t last_message_received; @@ -186,7 +186,7 @@ zend_bool php_zmq_device (php_zmq_device_object *intern TSRMLS_DC) uint64_t current_ts = 0; /* Calculate poll_timeout based on idle / timer cb */ - int timeout = s_calculate_timeout (intern TSRMLS_CC); + int timeout = s_calculate_timeout (intern); rc = zmq_poll(&items [0], 2, timeout); if (rc < 0) { @@ -205,7 +205,7 @@ zend_bool php_zmq_device (php_zmq_device_object *intern TSRMLS_DC) if (intern->timer_cb.initialized && intern->timer_cb.timeout > 0) { /* Is it timer to call the timer ? */ if (intern->timer_cb.scheduled_at <= current_ts) { - if (!s_invoke_device_cb (&intern->timer_cb, current_ts TSRMLS_CC)) { + if (!s_invoke_device_cb (&intern->timer_cb, current_ts)) { zmq_msg_close (&msg); return 1; } @@ -217,7 +217,7 @@ zend_bool php_zmq_device (php_zmq_device_object *intern TSRMLS_DC) /* Is it timer to call the idle callback ? */ if ((current_ts - last_message_received) >= intern->idle_cb.timeout && intern->idle_cb.scheduled_at <= current_ts) { - if (!s_invoke_device_cb (&intern->idle_cb, current_ts TSRMLS_CC)) { + if (!s_invoke_device_cb (&intern->idle_cb, current_ts)) { zmq_msg_close (&msg); return 1; } diff --git a/zmq_sockopt.c b/zmq_sockopt.c index 1357032..14b59f0 100644 --- a/zmq_sockopt.c +++ b/zmq_sockopt.c @@ -2036,7 +2036,7 @@ PHP_METHOD(zmqsocket, setsockopt) long key; zval *zv; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lz/", &key, &zv) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "lz/", &key, &zv) == FAILURE) { return; } -- 2.31.1 ================================================ FILE: package/php-zmq/0002-fix-for-php-7.3.patch ================================================ From e0db82c3286da81fa8945894dd10125a528299e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20PLANCHAT?= Date: Wed, 8 Jul 2020 10:09:38 +0200 Subject: [PATCH] Fix for PHP 7.3 (#215) Co-authored-by: Remi Collet Signed-off-by: Adam Duskett --- zmq.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/zmq.c b/zmq.c index 66196ea..879704f 100644 --- a/zmq.c +++ b/zmq.c @@ -235,7 +235,11 @@ php_zmq_context *php_zmq_context_get(zend_long io_threads, zend_bool is_persiste le.type = php_zmq_context_list_entry(); le.ptr = context; +#if PHP_VERSION_ID < 70300 GC_REFCOUNT(&le) = 1; +#else + GC_SET_REFCOUNT(&le, 1); +#endif /* plist_key is not a persistent allocated key, thus we use str_update here */ if (zend_hash_str_update_mem(&EG(persistent_list), plist_key->val, plist_key->len, &le, sizeof(le)) == NULL) { @@ -535,7 +539,11 @@ void php_zmq_socket_store(php_zmq_socket *zmq_sock_p, zend_long type, zend_strin le.type = php_zmq_socket_list_entry(); le.ptr = zmq_sock_p; +#if PHP_VERSION_ID < 70300 GC_REFCOUNT(&le) = 1; +#else + GC_SET_REFCOUNT(&le, 1); +#endif plist_key = php_zmq_socket_plist_key(type, persistent_id, use_shared_ctx); -- 2.31.1 ================================================ FILE: package/php-zmq/0003-fix-for-php-8.0.0beta2.patch ================================================ From f0993f1fe973c4d359323ad1897ed7aa74f7e015 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 24 Aug 2020 15:55:54 +0200 Subject: [PATCH] fix for PHP 8.0.0beta2 Signed-off-by: Remi Collet Signed-off-by: Adam Duskett --- zmq.c | 2 ++ zmq_device.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/zmq.c b/zmq.c index 89902f9..bd2401d 100644 --- a/zmq.c +++ b/zmq.c @@ -621,7 +621,9 @@ zend_bool php_zmq_connect_callback(zval *socket, zend_fcall_info *fci, zend_fcal fci->params = params; fci->param_count = 2; fci->retval = &retval; +#if PHP_VERSION_ID < 80000 fci->no_separation = 1; +#endif if (zend_call_function(fci, fci_cache) == FAILURE) { if (!EG(exception)) { diff --git a/zmq_device.c b/zmq_device.c index 534f966..1c6aa3e 100644 --- a/zmq_device.c +++ b/zmq_device.c @@ -53,7 +53,9 @@ zend_bool s_invoke_device_cb (php_zmq_device_cb_t *cb, uint64_t current_ts) cb->fci.param_count = 1; /* Call the cb */ +#if PHP_VERSION_ID < 80000 cb->fci.no_separation = 1; +#endif cb->fci.retval = &fc_retval; if (zend_call_function(&(cb->fci), &(cb->fci_cache)) == FAILURE) { ================================================ FILE: package/php-zmq/Config.in ================================================ comment "php-zmq needs a toolchain w/ C++, threads" depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS) config BR2_PACKAGE_PHP_ZMQ bool "php-zmq" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_ZEROMQ help ZeroMQ messaging bindings for PHP http://pecl.php.net/package/zmq ================================================ FILE: package/php-zmq/php-zmq.hash ================================================ # Locally calculated sha256 c492375818bd51b355352798fb94f04d6828c6aeda41ba813849624af74144ce zmq-1.1.3.tgz sha256 0302303063d3612fc240032aeb6d70e9b7509fc17a4a9edf00eba091ed597514 LICENSE ================================================ FILE: package/php-zmq/php-zmq.mk ================================================ ################################################################################ # # php-zmq # ################################################################################ PHP_ZMQ_VERSION = 1.1.3 PHP_ZMQ_SOURCE = zmq-$(PHP_ZMQ_VERSION).tgz 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 PHP_ZMQ_LICENSE = BSD-3-Clause PHP_ZMQ_LICENSE_FILES = LICENSE define PHP_ZMQ_PHPIZE (cd $(@D); \ PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \ PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \ $(STAGING_DIR)/usr/bin/phpize) endef PHP_ZMQ_PRE_CONFIGURE_HOOKS += PHP_ZMQ_PHPIZE $(eval $(autotools-package)) ================================================ FILE: package/physfs/Config.in ================================================ config BR2_PACKAGE_PHYSFS bool "physfs" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS help PhysicsFS; a portable, flexible file i/o abstraction. http://icculus.org/physfs comment "physfs needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/physfs/physfs.hash ================================================ # Locally calculated sha256 304df76206d633df5360e738b138c94e82ccf086e50ba84f456d3f8432f9f863 physfs-3.0.2.tar.bz2 sha256 d80c0b09a1c98c61667ea044eefa2fd98fb70bd5fe12c49ff52b1fc2289a6583 LICENSE.txt ================================================ FILE: package/physfs/physfs.mk ================================================ ################################################################################ # # physfs # ################################################################################ PHYSFS_VERSION = 3.0.2 PHYSFS_SOURCE = physfs-$(PHYSFS_VERSION).tar.bz2 PHYSFS_SITE = https://icculus.org/physfs/downloads PHYSFS_LICENSE = Zlib PHYSFS_LICENSE_FILES = LICENSE.txt PHYSFS_INSTALL_STAGING = YES PHYSFS_CONF_OPTS = -DPHYSFS_BUILD_TEST=OFF ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) PHYSFS_CONF_OPTS += -DPHYSFS_BUILD_SHARED=ON else PHYSFS_CONF_OPTS += -DPHYSFS_BUILD_SHARED=OFF endif ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y) PHYSFS_CONF_OPTS += -DPHYSFS_BUILD_STATIC=ON else PHYSFS_CONF_OPTS += -DPHYSFS_BUILD_STATIC=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/phytool/Config.in ================================================ config BR2_PACKAGE_PHYTOOL bool "phytool" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 # linux/mdio.h help Linux MDIO register access utility. https://github.com/wkz/phytool comment "phytool needs a toolchain w/ headers >= 3.7" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 ================================================ FILE: package/phytool/phytool.hash ================================================ # md5 from https://github.com/wkz/phytool/releases/download/v2/phytool-2.tar.xz.md5 # sha256 locally computed: md5 972982f8e5f7237cbccfc6d275da7348 phytool-2.tar.xz sha256 9901a14e8c6af02b7333c60b21ff81f50620e8326d54827185e5617ff9b11d21 phytool-2.tar.xz sha256 f9c375a1be4a41f7b70301dd83c91cb89e41567478859b77eef375a52d782505 LICENSE ================================================ FILE: package/phytool/phytool.mk ================================================ ################################################################################ # # phytool # ################################################################################ PHYTOOL_VERSION = 2 PHYTOOL_SOURCE = phytool-$(PHYTOOL_VERSION).tar.xz PHYTOOL_SITE = https://github.com/wkz/phytool/releases/download/v$(PHYTOOL_VERSION) PHYTOOL_LICENSE = GPL-2.0+ PHYTOOL_LICENSE_FILES = LICENSE define PHYTOOL_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ LDLIBS="$(TARGET_LDFLAGS)" endef define PHYTOOL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ DESTDIR="$(TARGET_DIR)" \ PREFIX="usr" install endef $(eval $(generic-package)) ================================================ FILE: package/picocom/0001-Compile-with-libc-s-without-cispeed-cospeed.patch ================================================ From 30c712c5f14306460c44bea70e24419db9d44f8c Mon Sep 17 00:00:00 2001 From: Nick Patavalis Date: Thu, 12 Apr 2018 15:16:04 +0300 Subject: [PATCH] Compile with libc's without cispeed / cospeed Some libc implementations (e.g. musl) do not define the cispeed and cospeed struct termios fields. So we have to check the _HAVE_STRUCT_TERMIOS_C_ISPEED and _HAVE_STRUCT_TERMIOS_C_OSPEED macros. If not defined, we disable custom baudrate support. [baruch: backported from upstream master to 3.1] Signed-off-by: Baruch Siach --- Upstream status: commit 1acf1ddabaf3 custbaud.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/custbaud.h b/custbaud.h index 48151a4a4e84..ae4ae8daf49e 100644 --- a/custbaud.h +++ b/custbaud.h @@ -26,6 +26,8 @@ #ifndef CUSTBAUD_H #define CUSTBAUD_H +#include + #ifndef NO_CUSTOM_BAUD #if defined (__linux__) @@ -33,7 +35,13 @@ /* Enable by-default for kernels > 2.6.0 on x86 and x86_64 only */ #include #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) -#if defined (__i386__) || defined (__x86_64__) || defined (USE_CUSTOM_BAUD) +/* Some libc implementations (e.g. musl) do not define the cispeed and + cospeed struct termios fields. We do not support custom baudrates + on them. */ +#if ( (defined (__i386__) || defined (__x86_64__)) \ + && defined (_HAVE_STRUCT_TERMIOS_C_ISPEED) \ + && defined (_HAVE_STRUCT_TERMIOS_C_OSPEED) ) \ + || defined (USE_CUSTOM_BAUD) #ifndef USE_CUSTOM_BAUD #define USE_CUSTOM_BAUD #endif -- 2.16.3 ================================================ FILE: package/picocom/Config.in ================================================ config BR2_PACKAGE_PICOCOM bool "picocom" depends on BR2_USE_MMU # fork() help picocom is a minimal dumb-terminal emulation program. It is, in principle, very much like minicom, only it's pico instead of mini! https://github.com/npat-efault/picocom/ ================================================ FILE: package/picocom/picocom.hash ================================================ # Locally calculated sha256 e6761ca932ffc6d09bd6b11ff018bdaf70b287ce518b3282d29e0270e88420bb picocom-3.1.tar.gz sha256 9273c6b2c55be95f0f0df292d87e8900e5bfdf5b510a6ea09e80306cf45c10f6 LICENSE.txt ================================================ FILE: package/picocom/picocom.mk ================================================ ################################################################################ # # picocom # ################################################################################ PICOCOM_VERSION = 3.1 PICOCOM_SITE = $(call github,npat-efault,picocom,$(PICOCOM_VERSION)) PICOCOM_LICENSE = GPL-2.0+ PICOCOM_LICENSE_FILES = LICENSE.txt PICOCOM_CPE_ID_VENDOR = picocom_project define PICOCOM_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define PICOCOM_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/picocom $(TARGET_DIR)/usr/bin/picocom endef $(eval $(generic-package)) ================================================ FILE: package/pifmrds/0001-Makefile-cross-compile-friendly.patch ================================================ Makefile: make it cross-compile (and Buildroot) friendly. The current Makefile makes heavy assumptions that it is doing native compilation on the RPi, as it checks that `uname -m` is an ARM machine. This is wrong in the cross-compilation case. Remove the conditional altogether, and do not override the CFLAGS as passed in the environment (Buildroot passes proper CFLAGS). [intial patch by: Eric Limpens ] Signed-off-by: "Yann E. MORIN" diff -durN pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1.orig/src/Makefile pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1/src/Makefile --- pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1.orig/src/Makefile 2014-05-04 18:21:40.000000000 +0200 +++ pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1/src/Makefile 2014-06-21 16:38:31.971804343 +0200 @@ -1,20 +1,8 @@ CC = gcc -STD_CFLAGS = -Wall -std=gnu99 -c -g -O3 -# Enable ARM-specific options only on ARM, and compilation of the app only on ARM -UNAME := $(shell uname -m) - -ifeq ($(UNAME), armv6l) - CFLAGS = $(STD_CFLAGS) -march=armv6 -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -ffast-math - app: rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o $(CC) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile -else - CFLAGS = $(STD_CFLAGS) -endif - - rds_wav: rds.o waveforms.o rds_wav.o fm_mpx.o $(CC) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile ================================================ FILE: package/pifmrds/0002-Makefile-use-LDFLAGS.patch ================================================ Makefile: use LDFLAGS when linking Signed-off-by: "Yann E. MORIN" diff -durN pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1.orig/src/Makefile pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1/src/Makefile --- pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1.orig/src/Makefile 2014-06-21 16:46:49.101118754 +0200 +++ pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1/src/Makefile 2014-06-21 16:47:47.801745683 +0200 @@ -1,10 +1,10 @@ CC = gcc app: rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o - $(CC) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile + $(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile rds_wav: rds.o waveforms.o rds_wav.o fm_mpx.o - $(CC) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile + $(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile rds.o: rds.c waveforms.h $(CC) $(CFLAGS) rds.c ================================================ FILE: package/pifmrds/0003-Makefile-fix-static-link.patch ================================================ Makefile: Fix static linking Since libsndfile uses funtions from libm, the -lm should be specified after libsndfile for static linking. Signed-off-by: "Eric Limpens" [Fabrice: add $(SNDFILE_LIBS) to pass all dependencies from pkg-config] Signed-off-by: Fabrice Fontaine diff -purN pifmrds-0bf57f9ce0d954365a38d8af8e7be6f28521c3f2.orig/src/Makefile pifmrds-0bf57f9ce0d954365a38d8af8e7be6f28521c3f2/src/Makefile --- pifmrds-0bf57f9ce0d954365a38d8af8e7be6f28521c3f2.orig/src/Makefile 2016-02-26 08:06:43.102962592 +0100 +++ pifmrds-0bf57f9ce0d954365a38d8af8e7be6f28521c3f2/src/Makefile 2016-02-26 08:27:11.069148203 +0100 @@ -1,10 +1,10 @@ CC = gcc app: rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o - $(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile + $(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o $(SNDFILE_LIBS) -lm rds_wav: rds.o waveforms.o rds_wav.o fm_mpx.o - $(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile + $(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o $(SNDFILE_LIBS) -lm rds.o: rds.c waveforms.h $(CC) $(CFLAGS) rds.c ================================================ FILE: package/pifmrds/Config.in ================================================ config BR2_PACKAGE_PIFMRDS bool "pifmrds" depends on BR2_arm select BR2_PACKAGE_LIBSNDFILE help pifmrds, FM-RDS transmitter using the Raspberry Pi's PWM https://github.com/ChristopheJacquet/PiFmRds ================================================ FILE: package/pifmrds/pifmrds.hash ================================================ # Locally calculated sha256 2afc9f3c9fc206ba32865d7dd77f3a97d7d86dcfc9b44eeb5665e8fddaafcf44 pifmrds-0bf57f9ce0d954365a38d8af8e7be6f28521c3f2.tar.gz sha256 fe3eea6c599e23a00c08c5f5cb2320c30adc8f8687db5fcec9b79a662c53ff6b LICENSE ================================================ FILE: package/pifmrds/pifmrds.mk ================================================ ################################################################################ # # pifmrds # ################################################################################ PIFMRDS_VERSION = 0bf57f9ce0d954365a38d8af8e7be6f28521c3f2 PIFMRDS_SITE = $(call github,ChristopheJacquet,PiFmRds,$(PIFMRDS_VERSION)) PIFMRDS_DEPENDENCIES = host-pkgconf libsndfile PIFMRDS_LICENSE = GPL-3.0+ PIFMRDS_LICENSE_FILES = LICENSE define PIFMRDS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src CC="$(TARGET_CC)" LDFLAGS="$(TARGET_LDFLAGS)" \ CFLAGS="$(TARGET_CFLAGS) -std=gnu99 -ffast-math -c" \ SNDFILE_LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs sndfile`" \ app rds_wav endef define PIFMRDS_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/src/pi_fm_rds $(TARGET_DIR)/usr/bin/pi_fm_rds $(INSTALL) -D -m 0755 $(@D)/src/rds_wav $(TARGET_DIR)/usr/bin/rds_wav endef $(eval $(generic-package)) ================================================ FILE: package/piglit/Config.in ================================================ config BR2_PACKAGE_PIGLIT bool "piglit" depends on BR2_PACKAGE_PYTHON3 # python3 only script depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS depends on BR2_PACKAGE_WAFFLE_SUPPORTS_GLX || \ BR2_PACKAGE_WAFFLE_SUPPORTS_WAYLAND || \ BR2_PACKAGE_WAFFLE_SUPPORTS_X11_EGL || \ BR2_PACKAGE_WAFFLE_SUPPORTS_GBM depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_WAYLAND select BR2_PACKAGE_MESA3D_DEMOS # glxinfo select BR2_PACKAGE_PYTHON_MAKO select BR2_PACKAGE_PYTHON_NUMPY select BR2_PACKAGE_PYTHON_SIX select BR2_PACKAGE_PYTHON3_BZIP2 select BR2_PACKAGE_PYTHON3_PYEXPAT select BR2_PACKAGE_PYTHON3_XZ select BR2_PACKAGE_PYTHON3_ZLIB select BR2_PACKAGE_UTIL_LINUX # runtime select BR2_PACKAGE_UTIL_LINUX_BINARIES # requires real dmesg tool select BR2_PACKAGE_WAFFLE # wflinfo, libwaffle-1 select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XORGPROTO if BR2_PACKAGE_XORG7 select BR2_PACKAGE_ZLIB help Piglit is an open-source test suite for OpenGL implementations. https://piglit.freedesktop.org comment "piglit needs glibc or musl" depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) ================================================ FILE: package/piglit/piglit.hash ================================================ # Locally calculated sha256 ec2a80c49f10761980334f1591be54ee6f365165d7ac637270b4ca15a12ad674 piglit-2affee53f3ad7a96f5b397a2b6d6408af8a374b0-br1.tar.gz sha256 dcc398730859aee7cc1d6aa57f526f8d181b47bb3a49830e85b5723d5bc2c3bc COPYING sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 licences/GPL-2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 licences/GPL-3 sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c licences/LGPL-2 ================================================ FILE: package/piglit/piglit.mk ================================================ ################################################################################ # # piglit # ################################################################################ PIGLIT_VERSION = 2affee53f3ad7a96f5b397a2b6d6408af8a374b0 PIGLIT_SITE = https://gitlab.freedesktop.org/mesa/piglit.git PIGLIT_SITE_METHOD = git PIGLIT_LICENSE = MIT (code), \ LGPL-2.0+ (tests/glslparsertest/glsl2/gst-gl-*), \ LGPL-2.1+ (some tests), \ GPL-3.0 (tests/glslparsertest/glsl2/norsetto-*), \ GPL-2.0+ (tests/glslparsertest/glsl2/xreal-*, some other shaders), \ BSD-3-Clause (tests/glslparsertest/shaders/*) PIGLIT_LICENSE_FILES = COPYING licences/GPL-2 licences/GPL-3 licences/LGPL-2 PIGLIT_DEPENDENCIES = host-pkgconf \ host-python-mako \ host-python-numpy \ host-python-six \ libpng \ python-mako \ python-numpy \ python-six \ waffle \ zlib PIGLIT_CONF_OPTS += \ -DPIGLIT_USE_WAFFLE=ON \ -DPIGLIT_BUILD_CL_TESTS=OFF \ -DPIGLIT_BUILD_WGL_TESTS=OFF \ -DPYTHON_EXECUTABLE=$(HOST_DIR)/bin/python3 ifeq ($(BR2_PACKAGE_XORG7),y) # libxcb for xcb-dri2 PIGLIT_DEPENDENCIES += \ xlib_libX11 \ xlib_libXext \ xorgproto \ $(if $(BR2_PACKAGE_LIBXCB),libxcb) endif ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) PIGLIT_DEPENDENCIES += libgl libdrm PIGLIT_CONF_OPTS += -DPIGLIT_BUILD_GL_TESTS=ON else PIGLIT_CONF_OPTS += -DPIGLIT_BUILD_GL_TESTS=OFF endif ifeq ($(BR2_PACKAGE_XORG7)$(BR2_PACKAGE_HAS_LIBGL),yy) PIGLIT_CONF_OPTS += -DPIGLIT_BUILD_GLX_TESTS=ON else PIGLIT_CONF_OPTS += -DPIGLIT_BUILD_GLX_TESTS=OFF endif ifeq ($(BR2_PACKAGE_HAS_LIBEGL)$(BR2_PACKAGE_HAS_LIBGLES),yy) PIGLIT_DEPENDENCIES += libegl PIGLIT_CONF_OPTS += -DPIGLIT_BUILD_GLES1_TESTS=ON \ -DPIGLIT_BUILD_GLES2_TESTS=ON \ -DPIGLIT_BUILD_GLES3_TESTS=ON else PIGLIT_CONF_OPTS += -DPIGLIT_BUILD_GLES1_TESTS=OFF \ -DPIGLIT_BUILD_GLES2_TESTS=OFF \ -DPIGLIT_BUILD_GLES3_TESTS=OFF endif ifeq ($(BR2_PACKAGE_WAYLAND),y) PIGLIT_DEPENDENCIES += wayland libxkbcommon endif $(eval $(cmake-package)) ================================================ FILE: package/pigpio/Config.in ================================================ config BR2_PACKAGE_PIGPIO bool "pigpio" depends on BR2_aarch64 || BR2_arm depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS help Pigpio is a library for the Raspberry Pi which allows control of the General Purpose Input Outputs (GPIO). http://abyz.me.uk/rpi/pigpio/ comment "pigpio needs a toolchain w/ threads, dynamic library" depends on BR2_aarch64 || BR2_arm depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/pigpio/S50pigpio ================================================ #!/bin/sh DAEMON="pigpiod" PIDFILE="/var/run/pigpio.pid" PIGPIOD_ARGS="" [ -r "/etc/default/pigpio" ] && . "/etc/default/pigpio" start() { printf 'Starting %s: ' "$DAEMON" start-stop-daemon -S -q -x "/usr/bin/$DAEMON" -- $PIGPIOD_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/pigpio/pigpio.hash ================================================ # Locally calculated sha256 c5337c0b7ae888caf0262a6f476af0e2ab67065f7650148a0b21900b8d1eaed7 pigpio-79.tar.gz sha256 6a90b88421a0d9b090e121daa11b3c6d55eed5eeb3281a2fcc454d6a28b5547c UNLICENCE ================================================ FILE: package/pigpio/pigpio.mk ================================================ ################################################################################ # # pigpio # ################################################################################ PIGPIO_VERSION = 79 PIGPIO_SITE = $(call github,joan2937,pigpio,v$(PIGPIO_VERSION)) PIGPIO_LICENSE = Unlicense PIGPIO_LICENSE_FILES = UNLICENCE PIGPIO_INSTALL_STAGING = YES define PIGPIO_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define PIGPIO_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/pig2vcd $(TARGET_DIR)/usr/bin/pig2vcd $(INSTALL) -D -m 0755 $(@D)/pigpiod $(TARGET_DIR)/usr/bin/pigpiod $(INSTALL) -D -m 0755 $(@D)/pigs $(TARGET_DIR)/usr/bin/pigs $(INSTALL) -D -m 0755 $(@D)/libpigpio.so.1 $(TARGET_DIR)/usr/lib/libpigpio.so.1 $(INSTALL) -D -m 0755 $(@D)/libpigpiod_if.so.1 $(TARGET_DIR)/usr/lib/libpigpiod_if.so.1 $(INSTALL) -D -m 0755 $(@D)/libpigpiod_if2.so.1 $(TARGET_DIR)/usr/lib/libpigpiod_if2.so.1 ln -sf libpigpio.so.1 $(TARGET_DIR)/usr/lib/libpigpio.so ln -sf libpigpiod_if.so.1 $(TARGET_DIR)/usr/lib/libpigpiod_if.so ln -sf libpigpiod_if2.so.1 $(TARGET_DIR)/usr/lib/libpigpiod_if2.so endef define PIGPIO_INSTALL_STAGING_CMDS $(INSTALL) -D -m 0755 $(@D)/libpigpio.so.1 $(STAGING_DIR)/usr/lib/libpigpio.so.1 $(INSTALL) -D -m 0755 $(@D)/libpigpiod_if.so.1 $(STAGING_DIR)/usr/lib/libpigpiod_if.so.1 $(INSTALL) -D -m 0755 $(@D)/libpigpiod_if2.so.1 $(STAGING_DIR)/usr/lib/libpigpiod_if2.so.1 $(INSTALL) -D -m 0644 $(@D)/pigpio.h $(STAGING_DIR)/usr/include/pigpio.h $(INSTALL) -D -m 0644 $(@D)/pigpiod_if.h $(STAGING_DIR)/usr/include/pigpiod_if.h $(INSTALL) -D -m 0644 $(@D)/pigpiod_if2.h $(STAGING_DIR)/usr/include/pigpiod_if2.h ln -sf libpigpio.so.1 $(STAGING_DIR)/usr/lib/libpigpio.so ln -sf libpigpiod_if.so.1 $(STAGING_DIR)/usr/lib/libpigpiod_if.so ln -sf libpigpiod_if2.so.1 $(STAGING_DIR)/usr/lib/libpigpiod_if2.so endef define PIGPIO_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/pigpio/S50pigpio \ $(TARGET_DIR)/etc/init.d/S50pigpio endef define PIGPIO_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/pigpio/pigpio.service \ $(TARGET_DIR)/usr/lib/systemd/system/pigpio.service endef $(eval $(generic-package)) ================================================ FILE: package/pigpio/pigpio.service ================================================ [Unit] Description=Pigpio daemon After=network.target [Service] EnvironmentFile=-/etc/default/pigpio ExecStart=/usr/bin/pigpiod -g $PIGPIOD_ARGS [Install] WantedBy=multi-user.target ================================================ FILE: package/pigz/Config.in ================================================ config BR2_PACKAGE_PIGZ bool "pigz" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_ZLIB help pigz, which stands for parallel implementation of gzip, is a fully functional replacement for gzip that exploits multiple processors and multiple cores to the hilt when compressing data. http://www.zlib.net/pigz/ comment "pigz needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/pigz/Config.in.host ================================================ config BR2_PACKAGE_HOST_PIGZ bool "host pigz" help pigz, which stands for parallel implementation of gzip, is a fully functional replacement for gzip that exploits multiple processors and multiple cores to the hilt when compressing data. http://www.zlib.net/pigz/ ================================================ FILE: package/pigz/pigz.hash ================================================ # Locally calculated sha256 577673676cd5c7219f94b236075451220bae3e1ca451cf849947a2998fbf5820 pigz-2.6.tar.gz sha256 830b3e1b05cc20f443d89d7d8703a3c63fd64c57ab716f5e81fd178517df1e11 README ================================================ FILE: package/pigz/pigz.mk ================================================ ################################################################################ # # pigz # ################################################################################ PIGZ_VERSION = 2.6 PIGZ_SITE = $(call github,madler,pigz,v$(PIGZ_VERSION)) PIGZ_DEPENDENCIES = zlib HOST_PIGZ_DEPENDENCIES = host-zlib PIGZ_LICENSE = Zlib PIGZ_LICENSE_FILES = README PIGZ_CPE_ID_VENDOR = zlib define PIGZ_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define HOST_PIGZ_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) endef define PIGZ_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/pigz $(TARGET_DIR)/usr/bin/pigz endef define HOST_PIGZ_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/pigz $(HOST_DIR)/bin/pigz endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/pimd/Config.in ================================================ config BR2_PACKAGE_PIMD bool "pimd" depends on BR2_USE_MMU # fork() help pimd is a lightweight stand-alone PIM-SM v2 multicast routing daemon. http://troglobit.com/projects/pimd/ ================================================ FILE: package/pimd/pimd.hash ================================================ # Locally computed: sha256 c77a9812751f114490a28a6839b16aac8b020c8d9fd6aa22bf3880c054e19f1d pimd-2.3.2.tar.gz # Hash for license files: sha256 3379436c16caccdef9b40a49fbdfdbb45aad8ecb05870834490b8fb080126009 LICENSE sha256 4328a21f0822caa9976356623118bcdcc9970c7a0f9a3deeba23c779b7cfb5d1 LICENSE.mrouted ================================================ FILE: package/pimd/pimd.mk ================================================ ################################################################################ # # pimd # ################################################################################ PIMD_VERSION = 2.3.2 PIMD_SITE = https://github.com/troglobit/pimd/releases/download/$(PIMD_VERSION) PIMD_LICENSE = BSD-3-Clause PIMD_LICENSE_FILES = LICENSE LICENSE.mrouted ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC)$(BR2_TOOLCHAIN_USES_MUSL),y) PIMD_CONF_OPTS += --embedded-libc endif # The configure script is not autoconf based, so we use the # generic-package infrastructure define PIMD_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_CONFIGURE_OPTS) \ $(TARGET_CONFIGURE_ARGS) \ ./configure $(PIMD_CONF_OPTS) \ ) endef define PIMD_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CROSS=$(TARGET_CROSS) \ CC=$(TARGET_CC) -C $(@D) endef define PIMD_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) \ prefix=/usr -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/pinentry/Config.in ================================================ menuconfig BR2_PACKAGE_PINENTRY bool "pinentry" depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error depends on BR2_USE_MMU # libassuan select BR2_PACKAGE_LIBASSUAN select BR2_PACKAGE_LIBGPG_ERROR # At least one backend is needed to avoid build breakage select BR2_PACKAGE_PINENTRY_NCURSES if \ !BR2_PACKAGE_PINENTRY_GTK2 && \ !BR2_PACKAGE_PINENTRY_QT5 help A collection of simple PIN or pass-phrase entry dialogs https://www.gnupg.org/related_software/pinentry/ if BR2_PACKAGE_PINENTRY config BR2_PACKAGE_PINENTRY_EFL bool "pinentry-efl" depends on BR2_PACKAGE_EFL depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_EFL_X_XLIB help The pinentry-efl tool comment "pinentry-efl needs efl and X" depends on !BR2_PACKAGE_EFL || !BR2_PACKAGE_XORG7 config BR2_PACKAGE_PINENTRY_FLTK bool "pinentry-fltk" depends on BR2_USE_MMU # fltk depends on BR2_INSTALL_LIBSTDCPP # fltk depends on BR2_PACKAGE_XORG7 # fltk select BR2_PACKAGE_FLTK help The pinentry-fltk tool comment "pinentry-fltk needs X and a toolchain w/ C++" depends on BR2_USE_MMU depends on !BR2_PACKAGE_XORG7 || !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_PINENTRY_NCURSES bool "pinentry-ncurses" select BR2_PACKAGE_NCURSES select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help The pinentry-ncurses tool config BR2_PACKAGE_PINENTRY_GTK2 bool "pinentry-gtk2" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # libgtk2 -> pango -> harfbuzz select BR2_PACKAGE_LIBGTK2 select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help The pinentry-gtk2 tool comment "pinentry-gtk2 needs X and a toolchain w/ wchar, threads, C++, gcc >= 4.8" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_PACKAGE_XORG7 || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \ !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_PINENTRY_QT5 bool "pinentry-qt5" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_HOST_GCC_AT_LEAST_5 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 depends on !BR2_arc depends on !BR2_STATIC_LIBS select BR2_PACKAGE_QT5 select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_WIDGETS help The pinentry-qt5 tool comment "pinentry-qt5 needs a host gcc >= 5.0, and a toolchain w/ wchar, NPTL, gcc >= 5.0, C++, dynamic library" depends on !BR2_arc depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \ BR2_STATIC_LIBS || !BR2_HOST_GCC_AT_LEAST_5 endif ================================================ FILE: package/pinentry/pinentry.hash ================================================ # From https://www.gnupg.org/download/integrity_check.html sha1 b8b88cab4fd844e3616d55aeba8f084f2b98fb0f pinentry-1.1.1.tar.bz2 # Locally computed sha256 cd12a064013ed18e2ee8475e669b9f58db1b225a0144debdb85a68cecddba57f pinentry-1.1.1.tar.bz2 sha256 67f82e045cf7acfef853ea0f426575a8359161a0a325e19f02b529a87c4b6c34 COPYING ================================================ FILE: package/pinentry/pinentry.mk ================================================ ################################################################################ # # pinentry # ################################################################################ PINENTRY_VERSION = 1.1.1 PINENTRY_SOURCE = pinentry-$(PINENTRY_VERSION).tar.bz2 PINENTRY_SITE = https://www.gnupg.org/ftp/gcrypt/pinentry PINENTRY_LICENSE = GPL-2.0+ PINENTRY_LICENSE_FILES = COPYING PINENTRY_DEPENDENCIES = \ libassuan libgpg-error \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) \ host-pkgconf PINENTRY_CONF_OPTS += \ --with-libassuan-prefix=$(STAGING_DIR)/usr \ --with-libgpg-error-prefix=$(STAGING_DIR)/usr \ --without-libcap # requires PAM ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) PINENTRY_CONF_ENV += LIBS=-latomic endif ifeq ($(BR2_PACKAGE_LIBSECRET),y) PINENTRY_CONF_OPTS += --enable-libsecret PINENTRY_DEPENDENCIES += libsecret else PINENTRY_CONF_OPTS += --disable-libsecret endif # pinentry-efl backend ifeq ($(BR2_PACKAGE_PINENTRY_EFL),y) PINENTRY_CONF_OPTS += --enable-pinentry-efl PINENTRY_DEPENDENCIES += efl else PINENTRY_CONF_OPTS += --disable-pinentry-efl endif # pinentry-fltk backend ifeq ($(BR2_PACKAGE_PINENTRY_FLTK),y) PINENTRY_CONF_ENV += ac_cv_path_FLTK_CONFIG=$(STAGING_DIR)/usr/bin/fltk-config PINENTRY_CONF_OPTS += --enable-pinentry-fltk PINENTRY_DEPENDENCIES += fltk else PINENTRY_CONF_OPTS += --disable-pinentry-fltk endif # pinentry-ncurses backend ifeq ($(BR2_PACKAGE_PINENTRY_NCURSES),y) PINENTRY_CONF_OPTS += --enable-ncurses --with-ncurses-include-dir=none PINENTRY_DEPENDENCIES += ncurses else PINENTRY_CONF_OPTS += --disable-ncurses endif # pinentry-gtk2 backend ifeq ($(BR2_PACKAGE_PINENTRY_GTK2),y) PINENTRY_CONF_OPTS += --enable-pinentry-gtk2 PINENTRY_DEPENDENCIES += libgtk2 else PINENTRY_CONF_OPTS += --disable-pinentry-gtk2 endif # pinentry-qt5 backend ifeq ($(BR2_PACKAGE_PINENTRY_QT5),y) PINENTRY_CONF_OPTS += --enable-pinentry-qt PINENTRY_DEPENDENCIES += qt5base else PINENTRY_CONF_OPTS += --disable-pinentry-qt endif $(eval $(autotools-package)) ================================================ FILE: package/pipewire/0001-cpu-fix-compilation-on-some-architectures.patch ================================================ From 651f0decea5f83730c271e9bed03cdd0048fcd49 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 21 Oct 2021 11:09:48 +0200 Subject: [PATCH] cpu: fix compilation on some architectures [Retrieved from: https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/651f0decea5f83730c271e9bed03cdd0048fcd49] Signed-off-by: Fabrice Fontaine --- spa/plugins/support/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spa/plugins/support/cpu.c b/spa/plugins/support/cpu.c index ee1816512..01cff4854 100644 --- a/spa/plugins/support/cpu.c +++ b/spa/plugins/support/cpu.c @@ -270,7 +270,7 @@ impl_init(const struct spa_handle_factory *factory, if ((str = spa_dict_lookup(info, SPA_KEY_CPU_VM_TYPE)) != NULL) this->vm_type = atoi(str); if ((str = spa_dict_lookup(info, SPA_KEY_CPU_ZERO_DENORMALS)) != NULL) - impl_cpu_zero_denormals(this, spa_atob(str)); + spa_cpu_zero_denormals(&this->cpu, spa_atob(str)); } spa_log_debug(this->log, "%p: count:%d align:%d flags:%08x", -- GitLab ================================================ FILE: package/pipewire/0002-cpu-disable-VFP-asm-when-not-available.patch ================================================ From 2cddd4a775c145570f4a8a30d28b57f551d43206 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 25 Oct 2021 16:32:16 +0200 Subject: [PATCH] cpu: disable VFP asm when not available Fixes #1746 [Retrieved from: https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/2cddd4a775c145570f4a8a30d28b57f551d43206] Signed-off-by: Fabrice Fontaine --- spa/plugins/support/cpu-arm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spa/plugins/support/cpu-arm.c b/spa/plugins/support/cpu-arm.c index c07711f70..fe6222f7c 100644 --- a/spa/plugins/support/cpu-arm.c +++ b/spa/plugins/support/cpu-arm.c @@ -143,7 +143,7 @@ static int arm_zero_denormals(void *object, bool enable) "msr fpcr, %0 \n" "isb \n" : "=r"(cw)::"memory"); -#else +#elif (defined(__VFP_FP__) && !defined(__SOFTFP__)) uint32_t cw; if (enable) __asm__ __volatile__( -- GitLab ================================================ FILE: package/pipewire/Config.in ================================================ config BR2_PACKAGE_PIPEWIRE bool "pipewire" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO if BR2_PACKAGE_BLUEZ5_UTILS # runtime help PipeWire is a server and user space API to deal with multimedia pipelines. https://pipewire.org/ if BR2_PACKAGE_PIPEWIRE config BR2_PACKAGE_PIPEWIRE_EXAMPLES bool "pipewire examples" help Build pipewire examples config BR2_PACKAGE_PIPEWIRE_GSTREAMER bool "pipewire gstreamer plugins" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_GSTREAMER1 select BR2_PACKAGE_GST1_PLUGINS_BASE help Build GStreamer plugins comment "pipewire gstreamer support needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_PIPEWIRE_V4L2 bool "pipewire v4l2 plugin" depends on BR2_PACKAGE_HAS_UDEV depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 help Build v4l2 plugin comment "pipewire v4l2 support needs udev and a toolchain w/ headers >= 3.18" depends on !BR2_PACKAGE_HAS_UDEV || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 endif comment "pipewire needs a toolchain w/ dynamic library, threads, gcc >= 5" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 ================================================ FILE: package/pipewire/pipewire.hash ================================================ # Locally calculated sha256 fafcde675b264485883df1f3bf7e08f36fd1d661ecc092dcec6fd35a059c2aff pipewire-0.3.39.tar.bz2 sha256 8909c319a7e27dbb33a15b9035f89ab3b7b2f6a12f8bcddc755206a8db1ada44 COPYING sha256 be4be5d77424833edf31f53fc1f1cecb6996b9e2d747d9e6fb8f878362ebc92b LICENSE ================================================ FILE: package/pipewire/pipewire.mk ================================================ ################################################################################ # # pipewire # ################################################################################ PIPEWIRE_VERSION = 0.3.39 PIPEWIRE_SOURCE = pipewire-$(PIPEWIRE_VERSION).tar.bz2 PIPEWIRE_SITE = https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/$(PIPEWIRE_VERSION) PIPEWIRE_LICENSE = MIT, LGPL-2.1+ (libspa-alsa), GPL-2.0 (libjackserver) PIPEWIRE_LICENSE_FILES = COPYING LICENSE PIPEWIRE_INSTALL_STAGING = YES PIPEWIRE_DEPENDENCIES = host-pkgconf $(TARGET_NLS_DEPENDENCIES) PIPEWIRE_LDFLAGS = $(TARGET_NLS_LIBS) PIPEWIRE_CONF_OPTS += \ -Ddocs=disabled \ -Dman=disabled \ -Dtests=disabled \ -Dspa-plugins=enabled \ -Daudiomixer=enabled \ -Daudioconvert=enabled \ -Dcontrol=enabled \ -Daudiotestsrc=enabled \ -Dsupport=enabled \ -Devl=disabled \ -Dtest=disabled \ -Dvideoconvert=enabled \ -Dvideotestsrc=enabled \ -Dvolume=enabled \ -Dsession-managers=[] ifeq ($(BR2_PACKAGE_DBUS),y) PIPEWIRE_CONF_OPTS += -Ddbus=enabled PIPEWIRE_DEPENDENCIES += dbus else PIPEWIRE_CONF_OPTS += -Ddbus=disabled endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) PIPEWIRE_CONF_OPTS += -Dudev=enabled PIPEWIRE_DEPENDENCIES += udev else PIPEWIRE_CONF_OPTS += -Dudev=disabled endif ifeq ($(BR2_PACKAGE_PIPEWIRE_EXAMPLES),y) PIPEWIRE_CONF_OPTS += -Dexamples=enabled else PIPEWIRE_CONF_OPTS += -Dexamples=disabled endif ifeq ($(BR2_PACKAGE_PIPEWIRE_GSTREAMER),y) PIPEWIRE_CONF_OPTS += -Dgstreamer=enabled PIPEWIRE_DEPENDENCIES += libglib2 gstreamer1 gst1-plugins-base else PIPEWIRE_CONF_OPTS += -Dgstreamer=disabled endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) PIPEWIRE_CONF_OPTS += \ -Dsystemd=enabled \ -Dsystemd-system-service=enabled \ -Dsystemd-user-service=enabled PIPEWIRE_DEPENDENCIES += systemd else PIPEWIRE_CONF_OPTS += \ -Dsystemd=disabled \ -Dsystemd-system-service=disabled \ -Dsystemd-user-service=disabled endif ifeq ($(BR2_PACKAGE_ALSA_LIB),y) PIPEWIRE_CONF_OPTS += -Dpipewire-alsa=enabled PIPEWIRE_DEPENDENCIES += alsa-lib ifeq ($(BR2_PACKAGE_ALSA_LIB_SEQ)$(BR2_PACKAGE_ALSA_LIB_UCM)$(BR2_PACKAGE_HAS_UDEV),yyy) PIPEWIRE_CONF_OPTS += -Dalsa=enabled else PIPEWIRE_CONF_OPTS += -Dalsa=disabled endif else PIPEWIRE_CONF_OPTS += -Dalsa=disabled -Dpipewire-alsa=disabled endif ifeq ($(BR2_PACKAGE_AVAHI),y) PIPEWIRE_CONF_OPTS += -Davahi=enabled PIPEWIRE_DEPENDENCIES += avahi else PIPEWIRE_CONF_OPTS += -Davahi=disabled endif ifeq ($(BR2_PACKAGE_JACK2),y) PIPEWIRE_CONF_OPTS += -Dpipewire-jack=enabled -Djack=enabled PIPEWIRE_DEPENDENCIES += jack2 else PIPEWIRE_CONF_OPTS += -Dpipewire-jack=disabled -Djack=disabled endif ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS)$(BR2_PACKAGE_SBC),yy) PIPEWIRE_CONF_OPTS += -Dbluez5=enabled PIPEWIRE_DEPENDENCIES += bluez5_utils sbc else PIPEWIRE_CONF_OPTS += -Dbluez5=disabled endif ifeq ($(BR2_PACKAGE_FFMPEG),y) PIPEWIRE_CONF_OPTS += -Dffmpeg=enabled PIPEWIRE_DEPENDENCIES += ffmpeg else PIPEWIRE_CONF_OPTS += -Dffmpeg=disabled endif ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) PIPEWIRE_DEPENDENCIES += ncurses endif ifeq ($(BR2_PACKAGE_PIPEWIRE_V4L2),y) PIPEWIRE_CONF_OPTS += -Dpipewire-v4l2=enabled -Dv4l2=enabled else PIPEWIRE_CONF_OPTS += -Dpipewire-v4l2=disabled -Dv4l2=disabled endif ifeq ($(BR2_PACKAGE_LIBCAMERA)$(BR2_PACKAGE_LIBDRM)$(BR2_PACKAGE_HAS_UDEV),yyy) PIPEWIRE_CONF_OPTS += -Dlibcamera=enabled PIPEWIRE_DEPENDENCIES += libcamera libdrm else PIPEWIRE_CONF_OPTS += -Dlibcamera=disabled endif ifeq ($(BR2_PACKAGE_LIBUSB),y) PIPEWIRE_CONF_OPTS += -Dlibusb=enabled PIPEWIRE_DEPENDENCIES += libusb else PIPEWIRE_CONF_OPTS += -Dlibusb=disabled endif ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),y) PIPEWIRE_CONF_OPTS += -Dvulkan=enabled PIPEWIRE_DEPENDENCIES += mesa3d else PIPEWIRE_CONF_OPTS += -Dvulkan=disabled endif ifeq ($(BR2_PACKAGE_LIBSNDFILE),y) PIPEWIRE_CONF_OPTS += -Dpw-cat=enabled -Dsndfile=enabled PIPEWIRE_DEPENDENCIES += libsndfile else PIPEWIRE_CONF_OPTS += -Dpw-cat=disabled -Dsndfile=disabled endif ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) PIPEWIRE_CONF_OPTS += -Dlibpulse=enabled PIPEWIRE_DEPENDENCIES += pulseaudio else PIPEWIRE_CONF_OPTS += -Dlibpulse=disabled endif ifeq ($(BR2_PACKAGE_READLINE),y) PIPEWIRE_DEPENDENCIES += readline endif ifeq ($(BR2_PACKAGE_SDL2),y) PIPEWIRE_DEPENDENCIES += sdl2 PIPEWIRE_CONF_OPTS += -Dsdl2=enabled else PIPEWIRE_CONF_OPTS += -Dsdl2=disabled endif ifeq ($(WEBRTC_AUDIO_PROCESSING),y) PIPEWIRE_CONF_OPTS += -Decho-cancel-webrtc=enabled PIPEWIRE_DEPENDENCIES += webrtc-audio-processing else PIPEWIRE_CONF_OPTS += -Decho-cancel-webrtc=disabled endif define PIPEWIRE_USERS pipewire -1 pipewire -1 * - - audio,video PipeWire System Daemon endef $(eval $(meson-package)) ================================================ FILE: package/pipewire-media-session/0001-meson-remove-session-managers-option-check.patch ================================================ From 1923c97fbd0b3d8cacdb72386886f860c818bccf Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Wed, 10 Nov 2021 08:54:06 -0700 Subject: [PATCH] meson: remove session-managers option check. This option no longer exists and causes a build failure if building with the systemd system service enabled. Signed-off-by: James Hilliard [Upstream status: https://gitlab.freedesktop.org/pipewire/media-session/-/merge_requests/24] --- systemd/system/meson.build | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/systemd/system/meson.build b/systemd/system/meson.build index ab0d49064..0e9885b0f 100644 --- a/systemd/system/meson.build +++ b/systemd/system/meson.build @@ -4,9 +4,7 @@ systemd_system_services_dir = systemd.get_variable(pkgconfig: 'systemdsystemunit systemd_config = configuration_data() systemd_config.set('PW_MEDIA_SESSION_BINARY', media_session_bindir / 'pipewire-media-session') -if get_option('session-managers').contains('media-session') - configure_file(input : 'pipewire-media-session.service.in', - output : 'pipewire-media-session.service', - configuration : systemd_config, - install_dir : systemd_system_services_dir) -endif +configure_file(input : 'pipewire-media-session.service.in', + output : 'pipewire-media-session.service', + configuration : systemd_config, + install_dir : systemd_system_services_dir) -- 2.25.1 ================================================ FILE: package/pipewire-media-session/Config.in ================================================ config BR2_PACKAGE_PIPEWIRE_MEDIA_SESSION bool "pipewire media-session" depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib, dbus depends on BR2_USE_MMU # dbus depends on BR2_PACKAGE_PIPEWIRE select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_UCM select BR2_PACKAGE_DBUS help Build pipewire media-session support ================================================ FILE: package/pipewire-media-session/pipewire-media-session.hash ================================================ # Locally calculated sha256 ebdf9f8e389896fdc4b58da5f909afce18441b4b53d5b4f2104dd53586ea8681 media-session-0.4.1.tar.bz2 sha256 8909c319a7e27dbb33a15b9035f89ab3b7b2f6a12f8bcddc755206a8db1ada44 COPYING sha256 77b9c867237ef919e33c0fdbcf22ab84b1cf24a63f9431ec68759026b658c994 LICENSE ================================================ FILE: package/pipewire-media-session/pipewire-media-session.mk ================================================ ################################################################################ # # pipewire-media-session # ################################################################################ PIPEWIRE_MEDIA_SESSION_VERSION = 0.4.1 PIPEWIRE_MEDIA_SESSION_SOURCE = media-session-$(PIPEWIRE_MEDIA_SESSION_VERSION).tar.bz2 PIPEWIRE_MEDIA_SESSION_SITE = https://gitlab.freedesktop.org/pipewire/media-session/-/archive/$(PIPEWIRE_MEDIA_SESSION_VERSION) PIPEWIRE_MEDIA_SESSION_LICENSE = MIT PIPEWIRE_MEDIA_SESSION_LICENSE_FILES = COPYING LICENSE PIPEWIRE_MEDIA_SESSION_INSTALL_STAGING = YES PIPEWIRE_MEDIA_SESSION_DEPENDENCIES = \ host-pkgconf \ alsa-lib \ dbus \ pipewire \ $(TARGET_NLS_DEPENDENCIES) PIPEWIRE_MEDIA_SESSION_CONF_OPTS = -Ddocs=disabled -Dtests=disabled PIPEWIRE_MEDIA_SESSION_MODULE_SETS_LIST = alsa ifeq ($(BR2_PACKAGE_SYSTEMD),y) PIPEWIRE_MEDIA_SESSION_DEPENDENCIES += systemd PIPEWIRE_MEDIA_SESSION_CONF_OPTS += \ -Dsystemd=enabled \ -Dsystemd-system-service=enabled \ -Dsystemd-user-service=enabled else PIPEWIRE_MEDIA_SESSION_CONF_OPTS += \ -Dsystemd=disabled \ -Dsystemd-system-service=disabled \ -Dsystemd-user-service=disabled endif ifeq ($(BR2_PACKAGE_JACK2),y) PIPEWIRE_MEDIA_SESSION_DEPENDENCIES += jack2 PIPEWIRE_MEDIA_SESSION_MODULE_SETS_LIST += jack endif ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) PIPEWIRE_MEDIA_SESSION_DEPENDENCIES += pulseaudio PIPEWIRE_MEDIA_SESSION_MODULE_SETS_LIST += pulseaudio endif PIPEWIRE_MEDIA_SESSION_CONF_OPTS += -Dwith-module-sets='$(subst $(space),$(comma),$(PIPEWIRE_MEDIA_SESSION_MODULE_SETS_LIST))' $(eval $(meson-package)) ================================================ FILE: package/pistache/0001-CMakeLists.txt-add-C-language-to-project-statement.patch ================================================ From a50fc9bde098e4e89584a5da9f94f620c11b6733 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 16 Aug 2020 12:31:46 +0200 Subject: [PATCH] CMakeLists.txt: add C language to project statement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This will fix the detection of atomic: -- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB -- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB - Failed -- Looking for __atomic_load_8 in atomic -- Looking for __atomic_load_8 in atomic - not found CMake Error at CMakeModules/CheckAtomic.cmake:76 (message): Host compiler appears to require libatomic for 64-bit operations, but cannot find it. Call Stack (most recent call first): CMakeLists.txt:19 (include) Indeed if C language is not enabled, the test will be run with the C++ compiler resulting in the following error: Building CXX object CMakeFiles/cmTC_fad22.dir/CheckFunctionExists.cxx.o /tmp/instance-0/output-1/host/bin/mipsel-linux-g++ --sysroot=/tmp/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_FORTIFY_SOURCE=1 -Wall -Wconversion -pedantic -Wextra -Wno-missing-field-initializers -DCHECK_FUNCTION_EXISTS=__atomic_load_8 -DNDEBUG -o CMakeFiles/cmTC_fad22.dir/CheckFunctionExists.cxx.o -c /tmp/instance-0/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx : error: new declaration 'char __atomic_load_8()' ambiguates built-in declaration 'long long unsigned int __atomic_load_8(const volatile void*, int)' [-fpermissive] /tmp/instance-0/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx:7:3: note: in expansion of macro 'CHECK_FUNCTION_EXISTS' CHECK_FUNCTION_EXISTS(void); ^~~~~~~~~~~~~~~~~~~~~ /tmp/instance-0/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx: In function 'int main(int, char**)': /tmp/instance-0/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx:17:25: error: too few arguments to function 'long long unsigned int __atomic_load_8(const volatile void*, int)' CHECK_FUNCTION_EXISTS(); ^ whereas with a C compiler, we'll get: Building C object CMakeFiles/cmTC_4b0f4.dir/CheckFunctionExists.c.o /home/fabrice/buildroot/output/host/bin/riscv32-linux-gcc --sysroot=/home/fabrice/buildroot/output/host/riscv32-buildroot-linux-gnu/sysroot -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -DCHECK_FUNCTION_EXISTS=__atomic_load_8 -DNDEBUG -o CMakeFiles/cmTC_4b0f4.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c : warning: conflicting types for built-in function ‘__atomic_load_8’ [-Wbuiltin-declaration-mismatch] /usr/share/cmake-3.16/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’ CHECK_FUNCTION_EXISTS(void); ^~~~~~~~~~~~~~~~~~~~~ Linking C executable cmTC_4b0f4 /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4b0f4.dir/link.txt --verbose=1 /home/fabrice/buildroot/output/host/bin/riscv32-linux-gcc --sysroot=/home/fabrice/buildroot/output/host/riscv32-buildroot-linux-gnu/sysroot -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -DCHECK_FUNCTION_EXISTS=__atomic_load_8 -DNDEBUG CMakeFiles/cmTC_4b0f4.dir/CheckFunctionExists.c.o -o cmTC_4b0f4 -latomic Fixes: - http://autobuild.buildroot.org/results/2bf06c6a9e55b449ec5875cf9415a9e55b2065d6 Signed-off-by: Fabrice Fontaine --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index edc73c5..0286647 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) project (pistache - LANGUAGES CXX) + LANGUAGES C CXX) include(GNUInstallDirs) -- 2.27.0 ================================================ FILE: package/pistache/0002-CMakeLists.txt-respect-BUILD_SHARED_LIBS.patch ================================================ From 45824f58b10575d8d88d4bce934aedee821a6df0 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 15 Oct 2020 22:26:55 +0200 Subject: [PATCH] CMakeLists.txt: respect BUILD_SHARED_LIBS Don't build and install pistache_shared if the standard cmake BUILD_SHARED_LIBS is set to OFF Signed-off-by: Fabrice Fontaine [Backport from upstream: https://github.com/oktal/pistache/commit/c04166ca9e6420a8fbc93fef4055ee2eccdcebe4 ] --- src/CMakeLists.txt | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6521b20..c5b049f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -26,31 +26,36 @@ set(include_install_dir ${CMAKE_INSTALL_INCLUDEDIR}) set(lib_install_dir ${CMAKE_INSTALL_LIBDIR}) set(bin_install_dir ${CMAKE_INSTALL_BINDIR}) -add_library(pistache_shared SHARED $) -add_library(pistache_static STATIC $) +if (BUILD_SHARED_LIBS) + add_library(pistache_shared SHARED $) + target_link_libraries(pistache_shared PRIVATE Threads::Threads ${CMAKE_REQUIRED_LIBRARIES}) + target_include_directories(pistache_shared INTERFACE ${PISTACHE_INCLUDE}) +endif () -target_link_libraries(pistache_shared PRIVATE Threads::Threads ${CMAKE_REQUIRED_LIBRARIES}) +add_library(pistache_static STATIC $) target_link_libraries(pistache_static PRIVATE Threads::Threads ${CMAKE_REQUIRED_LIBRARIES}) - -target_include_directories(pistache_shared INTERFACE ${PISTACHE_INCLUDE}) target_include_directories(pistache_static INTERFACE ${PISTACHE_INCLUDE}) if (PISTACHE_USE_SSL) target_compile_definitions(pistache PUBLIC PISTACHE_USE_SSL) - target_compile_definitions(pistache_shared PUBLIC PISTACHE_USE_SSL) target_compile_definitions(pistache_static PUBLIC PISTACHE_USE_SSL) target_include_directories(pistache PRIVATE ${OPENSSL_INCLUDE_DIR}) - target_link_libraries(pistache_shared PUBLIC OpenSSL::SSL OpenSSL::Crypto) target_link_libraries(pistache_static PUBLIC OpenSSL::SSL OpenSSL::Crypto) + if (BUILD_SHARED_LIBS) + target_compile_definitions(pistache_shared PUBLIC PISTACHE_USE_SSL) + target_link_libraries(pistache_shared PUBLIC OpenSSL::SSL OpenSSL::Crypto) + endif () endif () set(Pistache_OUTPUT_NAME "pistache") -set_target_properties(pistache_shared PROPERTIES - OUTPUT_NAME ${Pistache_OUTPUT_NAME} - VERSION ${version} - SOVERSION ${VERSION_MAJOR} -) +if (BUILD_SHARED_LIBS) + set_target_properties(pistache_shared PROPERTIES + OUTPUT_NAME ${Pistache_OUTPUT_NAME} + VERSION ${version} + SOVERSION ${VERSION_MAJOR} + ) +endif () set_target_properties(pistache_static PROPERTIES OUTPUT_NAME ${Pistache_OUTPUT_NAME} @@ -60,13 +65,15 @@ if (PISTACHE_INSTALL) set(Pistache_CONFIG_FILE "PistacheConfig.cmake") set(Pistache_CONFIG_VERSION_FILE "PistacheConfigVersion.cmake") - install( - TARGETS pistache_shared - EXPORT PistacheTargets - ARCHIVE DESTINATION ${lib_install_dir} - LIBRARY DESTINATION ${lib_install_dir} - RUNTIME DESTINATION ${bin_install_dir} - INCLUDES DESTINATION ${include_install_dir}) + if (BUILD_SHARED_LIBS) + install( + TARGETS pistache_shared + EXPORT PistacheTargets + ARCHIVE DESTINATION ${lib_install_dir} + LIBRARY DESTINATION ${lib_install_dir} + RUNTIME DESTINATION ${bin_install_dir} + INCLUDES DESTINATION ${include_install_dir}) + endif() install( DIRECTORY "${PROJECT_SOURCE_DIR}/include/pistache" -- 2.28.0 ================================================ FILE: package/pistache/0003-include-pistache-typeid.h-include-cstddef.patch ================================================ From 37291201ed948e9d65993a717c59bb14f4187e13 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 5 Aug 2021 19:02:56 +0200 Subject: [PATCH] include/pistache/typeid.h: include cstddef Include cstddef to avoid the following build failure with gcc 11: In file included from /tmp/instance-3/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/src/../include/pistache/async.h:10, from /tmp/instance-3/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/src/../include/pistache/client.h:9, from /tmp/instance-3/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/src/client/client.cc:7: /tmp/instance-3/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/src/../include/pistache/typeid.h:26:12: error: expected type-specifier before 'size_t' 26 | operator size_t() const { return reinterpret_cast(id_); } | ^~~~~~ Fixes: - http://autobuild.buildroot.org/results/2443559df8c2357476e4cbdbebb08280cbb80a3b Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/pistacheio/pistache/pull/965] --- include/pistache/typeid.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/pistache/typeid.h b/include/pistache/typeid.h index 10353ca..893e7c1 100644 --- a/include/pistache/typeid.h +++ b/include/pistache/typeid.h @@ -7,6 +7,7 @@ #pragma once +#include #include namespace Pistache -- 2.30.2 ================================================ FILE: package/pistache/Config.in ================================================ config BR2_PACKAGE_PISTACHE bool "pistache" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14 depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_TOOLCHAIN_USES_UCLIBC help Pistache is a modern and elegant HTTP and REST framework for C++. It is entirely written in pure C++14 and provides a clear and pleasant API. https://github.com/oktal/pistache comment "pistache needs a glibc toolchain w/ C++, gcc >= 4.9, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP || \ BR2_TOOLCHAIN_USES_UCLIBC || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_USE_WCHAR ================================================ FILE: package/pistache/pistache.hash ================================================ #locally computed sha256 70aeef5f5a4603cb2ceb20a284e3239f5da520e68f39dcb572c9f21473ac0b6d pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d.tar.gz sha256 c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08 LICENSE ================================================ FILE: package/pistache/pistache.mk ================================================ ################################################################################ # # pistache # ################################################################################ PISTACHE_VERSION = f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d PISTACHE_SITE = $(call github,oktal,pistache,$(PISTACHE_VERSION)) PISTACHE_LICENSE = Apache-2.0 PISTACHE_LICENSE_FILES = LICENSE PISTACHE_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_OPENSSL),y) PISTACHE_DEPENDENCIES += openssl PISTACHE_CONF_OPTS += -DPISTACHE_USE_SSL=ON else PISTACHE_CONF_OPTS += -DPISTACHE_USE_SSL=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/pixiewps/Config.in ================================================ config BR2_PACKAGE_PIXIEWPS bool "pixiewps" depends on BR2_TOOLCHAIN_HAS_THREADS help Pixie WPS is a C based tool to audit networks against the so called "Pixie Dust" attack. https://github.com/wiire-a/pixiewps/wiki comment "pixiewps needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/pixiewps/pixiewps.hash ================================================ # locally computed sha256 d3d3cf57851e3e734fb1797aa078239ef161d1cbeffc4438497d58a425ef22a2 pixiewps-9e5bdc6c86c8487b2a6107d5ab3559ed5c738c59.tar.gz sha256 ccb349b4132ed7737f25e5adebfe61f3d52dca33708df1e50352320438d1d4c2 LICENSE.md ================================================ FILE: package/pixiewps/pixiewps.mk ================================================ ################################################################################ # # pixiewps # ################################################################################ PIXIEWPS_VERSION = 9e5bdc6c86c8487b2a6107d5ab3559ed5c738c59 PIXIEWPS_SITE = $(call github,wiire-a,pixiewps,$(PIXIEWPS_VERSION)) PIXIEWPS_LICENSE = GPL-3.0+ PIXIEWPS_LICENSE_FILES = LICENSE.md define PIXIEWPS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define PIXIEWPS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) \ PREFIX=/usr -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/pixman/0001-Disable-tests.patch ================================================ From 9b8132738c364fc3c886e81e7d383aaff80dc867 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sat, 5 Dec 2015 12:00:53 +0100 Subject: [PATCH] Disable tests Tests are causing build failures on some architectures that are missing a proper fenv.h, so just disable them. Signed-off-by: "Yann E. MORIN" --- Status: Buildroot specific, not suitable for upstream in this state. --- Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 5137c9e..eae79fd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = pixman demos test +SUBDIRS = pixman demos pkgconfigdir=$(libdir)/pkgconfig pkgconfig_DATA=pixman-1.pc -- 1.9.1 ================================================ FILE: package/pixman/Config.in ================================================ config BR2_PACKAGE_PIXMAN bool "pixman" help Cairo pixel manager http://cairographics.org/releases/ ================================================ FILE: package/pixman/pixman.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2020-April/003043.html sha256 da8ed9fe2d1c5ef8ce5d1207992db959226bd4e37e3f88acf908fd9a71e2704e pixman-0.40.0.tar.xz sha512 8a60edb113d68791b41bd90b761ff7b3934260cb3dada3234c9351416f61394e4157353bc4d61b8f6c2c619de470f6feefffb4935bfcf79d291ece6285de7270 pixman-0.40.0.tar.xz # Locally computed sha256 fac9270f0987b96ff4533fca3548c633e02083cbba4a0172a3b149b2e4019793 COPYING ================================================ FILE: package/pixman/pixman.mk ================================================ ################################################################################ # # pixman # ################################################################################ PIXMAN_VERSION = 0.40.0 PIXMAN_SOURCE = pixman-$(PIXMAN_VERSION).tar.xz PIXMAN_SITE = https://xorg.freedesktop.org/releases/individual/lib PIXMAN_LICENSE = MIT PIXMAN_LICENSE_FILES = COPYING PIXMAN_CPE_ID_VENDOR = pixman PIXMAN_INSTALL_STAGING = YES PIXMAN_DEPENDENCIES = host-pkgconf HOST_PIXMAN_DEPENDENCIES = host-pkgconf # For 0001-Disable-tests.patch 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) PIXMAN_CONF_OPTS += --disable-arm-iwmmxt endif PIXMAN_CFLAGS = $(TARGET_CFLAGS) # toolchain gets confused about TLS access through GOT (PIC), so disable TLS # movhi r4, %got_hiadj(%tls_ldo(fast_path_cache)) # {standard input}:172: Error: bad expression ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII),y) PIXMAN_CFLAGS += -DPIXMAN_NO_TLS endif ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_101737),y) PIXMAN_CFLAGS += -O0 endif PIXMAN_CONF_OPTS += CFLAGS="$(PIXMAN_CFLAGS)" $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/pixz/Config.in ================================================ config BR2_PACKAGE_PIXZ bool "pixz" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR # libarchive select BR2_PACKAGE_LIBARCHIVE select BR2_PACKAGE_XZ help Pixz (pronounced pixie) is a parallel, indexing version of xz. https://github.com/vasi/pixz comment "pixz needs a toolchain w/ threads, wchar" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR ================================================ FILE: package/pixz/pixz.hash ================================================ # Locally computed: sha256 e5e32c6eb0bf112b98e74a5da8fb63b9f2cae71800f599d97ce540e150c8ddc5 pixz-1.0.7.tar.xz sha256 d036806b4d1efee7c6d86276451c4d833e9798751417e25daae62dfbe348641b LICENSE ================================================ FILE: package/pixz/pixz.mk ================================================ ################################################################################ # # pixz # ################################################################################ PIXZ_VERSION = 1.0.7 PIXZ_SITE = https://github.com/vasi/pixz/releases/download/v$(PIXZ_VERSION) PIXZ_SOURCE = pixz-$(PIXZ_VERSION).tar.xz PIXZ_DEPENDENCIES = host-pkgconf libarchive xz PIXZ_LICENSE = BSD-2-Clause PIXZ_LICENSE_FILES = LICENSE # pixz.1 is actually present, but AC_CHECK_FILE doesn't detect it when # cross-compiling, which causes configure to try to regenerate it. So give it a # hint to say that it actually is present. PIXZ_CONF_ENV = ac_cv_file_src_pixz_1=yes $(eval $(autotools-package)) ================================================ FILE: package/pkcs11-helper/0001-nss-use-nss-pkcs11-h.patch ================================================ From d159a5c59c80552c3e8ea75d9bcf29b3a8e8289d Mon Sep 17 00:00:00 2001 From: Alon Bar-Lev Date: Fri, 30 Jul 2021 20:06:36 +0300 Subject: [PATCH] nss: use nss pkcs11.h make nss happy with its own extensions and non-standard behavior. [Retrieved (and updated to remove ChangeLog update) from: https://github.com/OpenSC/pkcs11-helper/pull/39] Signed-off-by: Fabrice Fontaine --- ChangeLog | 1 + lib/_pkcs11h-crypto-nss.c | 14 ++++++++++---- lib/common.h | 7 +++++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/lib/_pkcs11h-crypto-nss.c b/lib/_pkcs11h-crypto-nss.c index 4b70e826..f57f9e6b 100644 --- a/lib/_pkcs11h-crypto-nss.c +++ b/lib/_pkcs11h-crypto-nss.c @@ -48,15 +48,21 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "common.h" - -#include "_pkcs11h-crypto.h" +#ifdef HAVE_CONFIG_H +#include +#endif #if defined(ENABLE_PKCS11H_ENGINE_NSS) -#define _PKCS11T_H_ /* required so no conflict with ours */ #include #include +/* Use PKCS#11 of nss to avoid conflicts and make nss happy with its own extensions */ +#define PKCS11_H 1 + +#include "common.h" + +#include "_pkcs11h-crypto.h" + static int __pkcs11h_crypto_nss_initialize ( diff --git a/lib/common.h b/lib/common.h index 61a958af..2499e9c5 100644 --- a/lib/common.h +++ b/lib/common.h @@ -72,5 +72,12 @@ #define _PKCS11H_ASSERT assert +#ifndef FALSE +#define FALSE 0 +#endif +#ifndef TRUE +#define TRUE 1 +#endif + #endif ================================================ FILE: package/pkcs11-helper/Config.in ================================================ config BR2_PACKAGE_PKCS11_HELPER bool "pkcs11-helper" depends on !BR2_STATIC_LIBS # dlfcn.h help pkcs11-helper is a library that simplifies the interaction with PKCS#11 providers for end-user applications. pkcs11-helper allows using multiple PKCS#11 providers at the same time, enumerating available token certificates, or selecting a certificate directly by serialized id, handling card removal and card insert events, handling card re-insert to a different slot, supporting session expiration and much more all using a simple API. pkcs11-helper is not designed to manage card content, since object attributes are usually vendor specific, and 99% of application need to access existing objects in order to perform signature and decryption. https://github.com/OpenSC/pkcs11-helper comment "pkcs11-helper needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/pkcs11-helper/pkcs11-helper.hash ================================================ # Locally computed sha256 653730f0c561bbf5941754c0783976113589b2dc64a0661c908dc878bfa4e58b pkcs11-helper-1.27.0.tar.bz2 sha256 808705ac1daafe07a76431929575c5712a8693977a39ec9102aed25f030754d9 COPYING sha256 865496cf23a6c792739ff2f9ea11e95ac99db89cfe3780a295b4e1495a9c19fe COPYING.BSD sha256 cd2e7d63a11058f19c58b06fb8c759140ce70788369dce6e6e9db40d3475021e COPYING.GPL ================================================ FILE: package/pkcs11-helper/pkcs11-helper.mk ================================================ ################################################################################ # # pkcs11-helper # ################################################################################ PKCS11_HELPER_VERSION = 1.27 PKCS11_HELPER_SOURCE = pkcs11-helper-$(PKCS11_HELPER_VERSION).0.tar.bz2 PKCS11_HELPER_SITE = https://github.com/OpenSC/pkcs11-helper/releases/download/pkcs11-helper-$(PKCS11_HELPER_VERSION) PKCS11_HELPER_LICENSE = GPL-2.0 or BSD-3-Clause PKCS11_HELPER_LICENSE_FILES = COPYING COPYING.BSD COPYING.GPL PKCS11_HELPER_DEPENDENCIES = host-pkgconf PKCS11_HELPER_AUTORECONF = YES PKCS11_HELPER_INSTALL_STAGING = YES PKCS11_HELPER_CONF_OPTS = \ --disable-crypto-engine-polarssl \ --disable-crypto-engine-cryptoapi ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) PKCS11_HELPER_CONF_OPTS += --enable-slotevent --enable-threading else PKCS11_HELPER_CONF_OPTS += --disable-slotevent --disable-threading endif ifeq ($(BR2_PACKAGE_GNUTLS),y) PKCS11_HELPER_DEPENDENCIES += gnutls PKCS11_HELPER_CONF_OPTS += --enable-crypto-engine-gnutls else PKCS11_HELPER_CONF_OPTS += --disable-crypto-engine-gnutls endif ifeq ($(BR2_PACKAGE_LIBNSS),y) PKCS11_HELPER_DEPENDENCIES += libnss PKCS11_HELPER_CONF_OPTS += --enable-crypto-engine-nss else PKCS11_HELPER_CONF_OPTS += --disable-crypto-engine-nss endif ifeq ($(BR2_PACKAGE_MBEDTLS),y) PKCS11_HELPER_DEPENDENCIES += mbedtls PKCS11_HELPER_CONF_OPTS += --enable-crypto-engine-mbedtls else PKCS11_HELPER_CONF_OPTS += --disable-crypto-engine-mbedtls endif ifeq ($(BR2_PACKAGE_OPENSSL),y) PKCS11_HELPER_DEPENDENCIES += openssl PKCS11_HELPER_CONF_OPTS += \ --enable-openssl \ --enable-crypto-engine-openssl else PKCS11_HELPER_CONF_OPTS += \ --disable-openssl \ --disable-crypto-engine-openssl endif $(eval $(autotools-package)) ================================================ FILE: package/pkg-autotools.mk ================================================ ################################################################################ # Autotools package infrastructure # # This file implements an infrastructure that eases development of # package .mk files for autotools packages. It should be used for all # packages that use the autotools as their build system. # # See the Buildroot documentation for details on the usage of this # infrastructure # # In terms of implementation, this autotools infrastructure requires # the .mk file to only specify metadata information about the # package: name, version, download URL, etc. # # We still allow the package .mk file to override what the different # steps are doing, if needed. For example, if _BUILD_CMDS is # already defined, it is used as the list of commands to perform to # build the package, instead of the default autotools behaviour. The # package can also define some post operation hooks. # ################################################################################ # # Utility function to upgrade config.sub and config.guess files # # argument 1 : directory into which config.guess and config.sub need # to be updated. Note that config.sub and config.guess are searched # recursively in this directory. # define CONFIG_UPDATE for file in config.guess config.sub; do \ for i in $$(find $(1) -name $$file); do \ cp support/gnuconfig/$$file $$i; \ done; \ done endef # This function generates the ac_cv_file_ value for a given # filename. This is needed to convince configure script doing # AC_CHECK_FILE() tests that the file actually exists, since such # tests cannot be done in a cross-compilation context. This function # takes as argument the path of the file. An example usage is: # # FOOBAR_CONF_ENV = \ # $(call AUTOCONF_AC_CHECK_FILE_VAL,/dev/random)=yes AUTOCONF_AC_CHECK_FILE_VAL = ac_cv_file_$(subst -,_,$(subst /,_,$(subst .,_,$(1)))) # # Hook to update config.sub and config.guess if needed # define UPDATE_CONFIG_HOOK @$(call MESSAGE,"Updating config.sub and config.guess") $(call CONFIG_UPDATE,$(@D)) endef # # Hook to patch libtool to make it work properly for cross-compilation # define LIBTOOL_PATCH_HOOK @$(call MESSAGE,"Patching libtool") $(Q)for i in `find $($(PKG)_DIR) -name ltmain.sh`; do \ ltmain_version=`sed -n '/^[ \t]*VERSION=/{s/^[ \t]*VERSION=//;p;q;}' $$i | \ sed -e 's/\([0-9]*\.[0-9]*\).*/\1/' -e 's/\"//'`; \ 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 \ patch -i support/libtool/buildroot-libtool-v1.5.patch $${i}; \ elif test $${ltmain_version} = "2.2"; then\ 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\ patch -i support/libtool/buildroot-libtool-v2.4.4.patch $${i}; \ else \ patch -i support/libtool/buildroot-libtool-v2.4.patch $${i}; \ fi \ fi \ done endef # # Hook to patch common issue with configure on powerpc64{,le} failing # to detect shared library support: # define CONFIGURE_FIX_POWERPC64_HOOK @$(call MESSAGE,"Checking configure (powerpc64/powerpc64le)") support/scripts/fix-configure-powerpc64.sh $($(PKG)_DIR) endef # # Hook to gettextize the package if needed # define GETTEXTIZE_HOOK @$(call MESSAGE,"Gettextizing") $(Q)cd $($(PKG)_SRCDIR) && $(GETTEXTIZE) $($(PKG)_GETTEXTIZE_OPTS) endef # # Hook to autoreconf the package if needed # define AUTORECONF_HOOK @$(call MESSAGE,"Autoreconfiguring") $(Q)cd $($(PKG)_SRCDIR) && $($(PKG)_AUTORECONF_ENV) $(AUTORECONF) $($(PKG)_AUTORECONF_OPTS) endef ################################################################################ # inner-autotools-package -- defines how the configuration, compilation and # installation of an autotools package should be done, implements a # few hooks to tune the build process for autotools specifities and # calls the generic package infrastructure to generate the necessary # make targets # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages # argument 3 is the uppercase package name, without the HOST_ prefix # for host packages # argument 4 is the type (target or host) ################################################################################ define inner-autotools-package ifndef $(2)_LIBTOOL_PATCH ifdef $(3)_LIBTOOL_PATCH $(2)_LIBTOOL_PATCH = $$($(3)_LIBTOOL_PATCH) else $(2)_LIBTOOL_PATCH ?= YES endif endif ifndef $(2)_MAKE ifdef $(3)_MAKE $(2)_MAKE = $$($(3)_MAKE) else $(2)_MAKE ?= $$(MAKE) endif endif ifndef $(2)_AUTORECONF ifdef $(3)_AUTORECONF $(2)_AUTORECONF = $$($(3)_AUTORECONF) else $(2)_AUTORECONF ?= NO endif endif ifndef $(2)_GETTEXTIZE ifdef $(3)_GETTEXTIZE $(2)_GETTEXTIZE = $$($(3)_GETTEXTIZE) else $(2)_GETTEXTIZE ?= NO endif endif ifeq ($(4),host) $(2)_GETTEXTIZE_OPTS ?= $$($(3)_GETTEXTIZE_OPTS) endif ifeq ($(4),host) $(2)_AUTORECONF_OPTS ?= $$($(3)_AUTORECONF_OPTS) endif $(2)_CONF_ENV ?= $(2)_CONF_OPTS ?= $(2)_MAKE_ENV ?= $(2)_MAKE_OPTS ?= $(2)_INSTALL_OPTS ?= install $(2)_INSTALL_STAGING_OPTS ?= DESTDIR=$$(STAGING_DIR) install $(2)_INSTALL_TARGET_OPTS ?= DESTDIR=$$(TARGET_DIR) install # # Configure step. Only define it if not already defined by the package # .mk file. And take care of the differences between host and target # packages. # ifndef $(2)_CONFIGURE_CMDS ifeq ($(4),target) # Configure package for target define $(2)_CONFIGURE_CMDS (cd $$($$(PKG)_SRCDIR) && rm -rf config.cache && \ $$(TARGET_CONFIGURE_OPTS) \ $$(TARGET_CONFIGURE_ARGS) \ $$($$(PKG)_CONF_ENV) \ CONFIG_SITE=/dev/null \ ./configure \ --target=$$(GNU_TARGET_NAME) \ --host=$$(GNU_TARGET_NAME) \ --build=$$(GNU_HOST_NAME) \ --prefix=/usr \ --exec-prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --program-prefix="" \ --disable-gtk-doc \ --disable-gtk-doc-html \ --disable-doc \ --disable-docs \ --disable-documentation \ --with-xmlto=no \ --with-fop=no \ $$(if $$($$(PKG)_OVERRIDE_SRCDIR),,--disable-dependency-tracking) \ --enable-ipv6 \ $$(NLS_OPTS) \ $$(SHARED_STATIC_LIBS_OPTS) \ $$(QUIET) $$($$(PKG)_CONF_OPTS) \ ) endef else # Configure package for host # disable all kind of documentation generation in the process, # because it often relies on host tools which may or may not be # installed. define $(2)_CONFIGURE_CMDS (cd $$($$(PKG)_SRCDIR) && rm -rf config.cache; \ $$(HOST_CONFIGURE_OPTS) \ CFLAGS="$$(HOST_CFLAGS)" \ LDFLAGS="$$(HOST_LDFLAGS)" \ $$($$(PKG)_CONF_ENV) \ CONFIG_SITE=/dev/null \ ./configure \ --prefix="$$(HOST_DIR)" \ --sysconfdir="$$(HOST_DIR)/etc" \ --localstatedir="$$(HOST_DIR)/var" \ --enable-shared --disable-static \ --disable-gtk-doc \ --disable-gtk-doc-html \ --disable-doc \ --disable-docs \ --disable-documentation \ --disable-debug \ --with-xmlto=no \ --with-fop=no \ --disable-nls \ $$(if $$($$(PKG)_OVERRIDE_SRCDIR),,--disable-dependency-tracking) \ $$(QUIET) $$($$(PKG)_CONF_OPTS) \ ) endef endif endif $(2)_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK ifeq ($$($(2)_AUTORECONF),YES) # This has to come before autoreconf ifeq ($$($(2)_GETTEXTIZE),YES) $(2)_PRE_CONFIGURE_HOOKS += GETTEXTIZE_HOOK $(2)_DEPENDENCIES += host-gettext endif $(2)_PRE_CONFIGURE_HOOKS += AUTORECONF_HOOK # default values are not evaluated yet, so don't rely on this defaulting to YES ifneq ($$($(2)_LIBTOOL_PATCH),NO) $(2)_PRE_CONFIGURE_HOOKS += LIBTOOL_PATCH_HOOK endif $(2)_DEPENDENCIES += host-automake host-autoconf host-libtool else # ! AUTORECONF = YES # default values are not evaluated yet, so don't rely on this defaulting to YES ifneq ($$($(2)_LIBTOOL_PATCH),NO) $(2)_POST_PATCH_HOOKS += LIBTOOL_PATCH_HOOK endif endif # Append a configure hook if building for a powerpc64 (or powerpc64le) arch. # Must be added after other pre-configure hooks that might regenerate the # configure script and overwrite the changes made here. ifneq ($$(filter powerpc64%,$$(if $$(filter target,$(4)),$$(ARCH),$$(HOSTARCH))),) $(2)_PRE_CONFIGURE_HOOKS += CONFIGURE_FIX_POWERPC64_HOOK endif # # Build step. Only define it if not already defined by the package .mk # file. # ifndef $(2)_BUILD_CMDS ifeq ($(4),target) define $(2)_BUILD_CMDS $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_SRCDIR) endef else define $(2)_BUILD_CMDS $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_SRCDIR) endef endif endif # # Host installation step. Only define it if not already defined by the # package .mk file. # ifndef $(2)_INSTALL_CMDS define $(2)_INSTALL_CMDS $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_INSTALL_OPTS) -C $$($$(PKG)_SRCDIR) endef endif # # Staging installation step. Only define it if not already defined by # the package .mk file. # ifndef $(2)_INSTALL_STAGING_CMDS define $(2)_INSTALL_STAGING_CMDS $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_INSTALL_STAGING_OPTS) -C $$($$(PKG)_SRCDIR) endef endif # # Target installation step. Only define it if not already defined by # the package .mk file. # ifndef $(2)_INSTALL_TARGET_CMDS define $(2)_INSTALL_TARGET_CMDS $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_INSTALL_TARGET_OPTS) -C $$($$(PKG)_SRCDIR) endef endif # Call the generic package infrastructure to generate the necessary # make targets $(call inner-generic-package,$(1),$(2),$(3),$(4)) endef ################################################################################ # autotools-package -- the target generator macro for autotools packages ################################################################################ autotools-package = $(call inner-autotools-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) host-autotools-package = $(call inner-autotools-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host) ================================================ FILE: package/pkg-cmake.mk ================================================ ################################################################################ # CMake package infrastructure # # This file implements an infrastructure that eases development of # package .mk files for CMake packages. It should be used for all # packages that use CMake as their build system. # # See the Buildroot documentation for details on the usage of this # infrastructure # # In terms of implementation, this CMake infrastructure requires # the .mk file to only specify metadata information about the # package: name, version, download URL, etc. # # We still allow the package .mk file to override what the different # steps are doing, if needed. For example, if _BUILD_CMDS is # already defined, it is used as the list of commands to perform to # build the package, instead of the default CMake behaviour. The # package can also define some post operation hooks. # ################################################################################ # Set compiler variables. ifeq ($(BR2_CCACHE),y) CMAKE_HOST_C_COMPILER = $(HOSTCC_NOCCACHE) CMAKE_HOST_CXX_COMPILER = $(HOSTCXX_NOCCACHE) CMAKE_HOST_C_COMPILER_LAUNCHER = $(HOST_DIR)/bin/ccache CMAKE_HOST_CXX_COMPILER_LAUNCHER = $(HOST_DIR)/bin/ccache else CMAKE_HOST_C_COMPILER = $(HOSTCC) CMAKE_HOST_CXX_COMPILER = $(HOSTCXX) endif ifneq ($(QUIET),) CMAKE_QUIET = -DCMAKE_RULE_MESSAGES=OFF -DCMAKE_INSTALL_MESSAGE=NEVER endif ################################################################################ # inner-cmake-package -- defines how the configuration, compilation and # installation of a CMake package should be done, implements a few hooks to # tune the build process and calls the generic package infrastructure to # generate the necessary make targets # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages # argument 3 is the uppercase package name, without the HOST_ prefix # for host packages # argument 4 is the type (target or host) ################################################################################ define inner-cmake-package $(2)_CONF_ENV ?= $(2)_CONF_OPTS ?= $(2)_MAKE ?= $$(MAKE) $(2)_MAKE_ENV ?= $(2)_MAKE_OPTS ?= $(2)_INSTALL_OPTS ?= install $(2)_INSTALL_STAGING_OPTS ?= DESTDIR=$$(STAGING_DIR) install/fast $(2)_INSTALL_TARGET_OPTS ?= DESTDIR=$$(TARGET_DIR) install/fast $(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES ifeq ($$($(3)_SUPPORTS_IN_SOURCE_BUILD),YES) $(2)_BUILDDIR = $$($(2)_SRCDIR) else $(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build 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 # packages. # ifndef $(2)_CONFIGURE_CMDS ifeq ($(4),target) # Configure package for target # # - We are passing BUILD_SHARED_LIBS because it is documented as a # standard CMake variable to control the build of shared libraries # (see https://cmake.org/cmake/help/v3.8/manual/cmake-variables.7.html#variables-that-change-behavior) # - We are not passing BUILD_STATIC_LIBS because it is *not* # documented as a standard CMake variable. If a package supports it, # it must handle it explicitly. # define $(2)_CONFIGURE_CMDS (mkdir -p $$($$(PKG)_BUILDDIR) && \ cd $$($$(PKG)_BUILDDIR) && \ rm -f CMakeCache.txt && \ PATH=$$(BR_PATH) \ $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \ -DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/share/buildroot/toolchainfile.cmake" \ -DCMAKE_INSTALL_PREFIX="/usr" \ -DCMAKE_COLOR_MAKEFILE=OFF \ -DBUILD_DOC=OFF \ -DBUILD_DOCS=OFF \ -DBUILD_EXAMPLE=OFF \ -DBUILD_EXAMPLES=OFF \ -DBUILD_TEST=OFF \ -DBUILD_TESTS=OFF \ -DBUILD_TESTING=OFF \ -DBUILD_SHARED_LIBS=$$(if $$(BR2_STATIC_LIBS),OFF,ON) \ $$(CMAKE_QUIET) \ $$($$(PKG)_CONF_OPTS) \ ) endef else # Configure package for host define $(2)_CONFIGURE_CMDS (mkdir -p $$($$(PKG)_BUILDDIR) && \ cd $$($$(PKG)_BUILDDIR) && \ rm -f CMakeCache.txt && \ PATH=$$(BR_PATH) \ PKG_CONFIG="$$(PKG_CONFIG_HOST_BINARY)" \ PKG_CONFIG_SYSROOT_DIR="/" \ PKG_CONFIG_LIBDIR="$$(HOST_DIR)/lib/pkgconfig:$$(HOST_DIR)/share/pkgconfig" \ PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \ PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \ $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \ -DCMAKE_INSTALL_SO_NO_EXE=0 \ -DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \ -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY="BOTH" \ -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE="BOTH" \ -DCMAKE_INSTALL_PREFIX="$$(HOST_DIR)" \ -DCMAKE_C_FLAGS="$$(HOST_CFLAGS)" \ -DCMAKE_CXX_FLAGS="$$(HOST_CXXFLAGS)" \ -DCMAKE_EXE_LINKER_FLAGS="$$(HOST_LDFLAGS)" \ -DCMAKE_SHARED_LINKER_FLAGS="$$(HOST_LDFLAGS)" \ -DCMAKE_ASM_COMPILER="$$(HOSTAS)" \ -DCMAKE_C_COMPILER="$$(CMAKE_HOST_C_COMPILER)" \ -DCMAKE_CXX_COMPILER="$$(CMAKE_HOST_CXX_COMPILER)" \ $(if $$(CMAKE_HOST_C_COMPILER_LAUNCHER),\ -DCMAKE_C_COMPILER_LAUNCHER="$$(CMAKE_HOST_C_COMPILER_LAUNCHER)" \ -DCMAKE_CXX_COMPILER_LAUNCHER="$$(CMAKE_HOST_CXX_COMPILER_LAUNCHER)" \ ) \ -DCMAKE_COLOR_MAKEFILE=OFF \ -DBUILD_DOC=OFF \ -DBUILD_DOCS=OFF \ -DBUILD_EXAMPLE=OFF \ -DBUILD_EXAMPLES=OFF \ -DBUILD_TEST=OFF \ -DBUILD_TESTS=OFF \ -DBUILD_TESTING=OFF \ -DBUILD_SHARED_LIBS=ON \ $$(CMAKE_QUIET) \ $$($$(PKG)_CONF_OPTS) \ ) endef endif 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 += $(BR2_CMAKE_HOST_DEPENDENCY) # # Build step. Only define it if not already defined by the package .mk # file. # ifndef $(2)_BUILD_CMDS ifeq ($(4),target) define $(2)_BUILD_CMDS $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR) endef else define $(2)_BUILD_CMDS $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR) endef endif endif # # Host installation step. Only define it if not already defined by the # package .mk file. # ifndef $(2)_INSTALL_CMDS define $(2)_INSTALL_CMDS $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_OPTS) -C $$($$(PKG)_BUILDDIR) endef endif # # Staging installation step. Only define it if not already defined by # the package .mk file. # ifndef $(2)_INSTALL_STAGING_CMDS define $(2)_INSTALL_STAGING_CMDS $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_STAGING_OPTS) -C $$($$(PKG)_BUILDDIR) endef endif # # Target installation step. Only define it if not already defined by # the package .mk file. # ifndef $(2)_INSTALL_TARGET_CMDS define $(2)_INSTALL_TARGET_CMDS $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_TARGET_OPTS) -C $$($$(PKG)_BUILDDIR) endef endif # Call the generic package infrastructure to generate the necessary # make targets $(call inner-generic-package,$(1),$(2),$(3),$(4)) endef ################################################################################ # cmake-package -- the target generator macro for CMake packages ################################################################################ cmake-package = $(call inner-cmake-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) host-cmake-package = $(call inner-cmake-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host) ################################################################################ # Generation of the CMake toolchain file ################################################################################ # CMAKE_SYSTEM_PROCESSOR should match uname -m ifeq ($(BR2_ARM_CPU_ARMV4),y) CMAKE_SYSTEM_PROCESSOR_ARM_VARIANT = armv4 else ifeq ($(BR2_ARM_CPU_ARMV5),y) CMAKE_SYSTEM_PROCESSOR_ARM_VARIANT = armv5 else ifeq ($(BR2_ARM_CPU_ARMV6),y) CMAKE_SYSTEM_PROCESSOR_ARM_VARIANT = armv6 else ifeq ($(BR2_ARM_CPU_ARMV7A),y) CMAKE_SYSTEM_PROCESSOR_ARM_VARIANT = armv7 else ifeq ($(BR2_ARM_CPU_ARMV8A),y) CMAKE_SYSTEM_PROCESSOR_ARM_VARIANT = armv8 endif ifeq ($(BR2_arm),y) CMAKE_SYSTEM_PROCESSOR = $(CMAKE_SYSTEM_PROCESSOR_ARM_VARIANT)l else ifeq ($(BR2_armeb),y) CMAKE_SYSTEM_PROCESSOR = $(CMAKE_SYSTEM_PROCESSOR_ARM_VARIANT)b else ifeq ($(call qstrip,$(BR2_ARCH)),powerpc64) CMAKE_SYSTEM_PROCESSOR = ppc64 else ifeq ($(call qstrip,$(BR2_ARCH)),powerpc64le) CMAKE_SYSTEM_PROCESSOR = ppc64le else CMAKE_SYSTEM_PROCESSOR = $(BR2_ARCH) endif # In order to allow the toolchain to be relocated, we calculate the HOST_DIR # based on the toolchainfile.cmake file's location: $(HOST_DIR)/share/buildroot # In all the other variables, HOST_DIR will be replaced by RELOCATED_HOST_DIR, # so we have to strip "$(HOST_DIR)/" from the paths that contain it. define TOOLCHAIN_CMAKE_INSTALL_FILES @mkdir -p $(HOST_DIR)/share/buildroot sed \ -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_CXX@@#$(if $(BR2_INSTALL_LIBSTDCPP),1,0)#' \ -e 's#@@TOOLCHAIN_HAS_FORTRAN@@#$(if $(BR2_TOOLCHAIN_HAS_FORTRAN),1,0)#' \ -e 's#@@CMAKE_BUILD_TYPE@@#$(if $(BR2_ENABLE_RUNTIME_DEBUG),Debug,Release)#' \ $(TOPDIR)/support/misc/toolchainfile.cmake.in \ > $(HOST_DIR)/share/buildroot/toolchainfile.cmake $(Q)$(INSTALL) -D -m 0644 support/misc/Buildroot.cmake \ $(HOST_DIR)/share/buildroot/Platform/Buildroot.cmake endef TOOLCHAIN_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_CMAKE_INSTALL_FILES ================================================ FILE: package/pkg-download.mk ================================================ ################################################################################ # # This file contains the download helpers for the various package # infrastructures. It is used to handle downloads from HTTP servers, # FTP servers, Git repositories, Subversion repositories, Mercurial # repositories, Bazaar repositories, and SCP servers. # ################################################################################ # Download method commands export WGET := $(call qstrip,$(BR2_WGET)) export SVN := $(call qstrip,$(BR2_SVN)) export CVS := $(call qstrip,$(BR2_CVS)) export BZR := $(call qstrip,$(BR2_BZR)) export GIT := $(call qstrip,$(BR2_GIT)) export HG := $(call qstrip,$(BR2_HG)) export SCP := $(call qstrip,$(BR2_SCP)) export LOCALFILES := $(call qstrip,$(BR2_LOCALFILES)) # Version of the format of the archives we generate in the corresponding # download backend: BR_FMT_VERSION_git = -br1 BR_FMT_VERSION_svn = -br2 DL_WRAPPER = support/download/dl-wrapper # DL_DIR may have been set already from the environment ifeq ($(origin DL_DIR),undefined) DL_DIR ?= $(call qstrip,$(BR2_DL_DIR)) ifeq ($(DL_DIR),) DL_DIR := $(TOPDIR)/dl endif else # Restore the BR2_DL_DIR that was overridden by the .config file BR2_DL_DIR = $(DL_DIR) endif # ensure it exists and a absolute path, derefrecing symlinks DL_DIR := $(shell mkdir -p $(DL_DIR) && cd $(DL_DIR) >/dev/null && pwd -P) # # URI scheme helper functions # Example URIs: # * http://www.example.com/dir/file # * scp://www.example.com:dir/file (with domainseparator :) # # geturischeme: http geturischeme = $(firstword $(subst ://, ,$(call qstrip,$(1)))) # getschemeplusuri: git|parameter+http://example.com getschemeplusuri = $(call geturischeme,$(1))$(if $(2),\|$(2))+$(1) # stripurischeme: www.example.com/dir/file stripurischeme = $(lastword $(subst ://, ,$(call qstrip,$(1)))) # domain: www.example.com domain = $(firstword $(subst $(call domainseparator,$(2)), ,$(call stripurischeme,$(1)))) # notdomain: dir/file notdomain = $(patsubst $(call domain,$(1),$(2))$(call domainseparator,$(2))%,%,$(call stripurischeme,$(1))) # # default domainseparator is /, specify alternative value as first argument domainseparator = $(if $(1),$(1),/) # github(user,package,version): returns site of GitHub repository github = https://github.com/$(1)/$(2)/archive/$(3) # gitlab(user,package,version): returns site of Gitlab-generated tarball gitlab = https://gitlab.com/$(1)/$(2)/-/archive/$(3) # Expressly do not check hashes for those files # Exported variables default to immediately expanded in some versions of # make, but we need it to be recursively-epxanded, so explicitly assign it. export BR_NO_CHECK_HASH_FOR = ################################################################################ # DOWNLOAD_URIS - List the candidates URIs where to get the package from: # 1) BR2_PRIMARY_SITE if enabled # 2) Download site, unless BR2_PRIMARY_SITE_ONLY is set # 3) BR2_BACKUP_SITE if enabled, unless BR2_PRIMARY_SITE_ONLY is set # # Argument 1 is the source location # Argument 2 is the upper-case package name # ################################################################################ ifneq ($(call qstrip,$(BR2_PRIMARY_SITE)),) DOWNLOAD_URIS += \ $(call getschemeplusuri,$(call qstrip,$(BR2_PRIMARY_SITE)/$($(2)_DL_SUBDIR)),urlencode) \ $(call getschemeplusuri,$(call qstrip,$(BR2_PRIMARY_SITE)),urlencode) endif ifeq ($(BR2_PRIMARY_SITE_ONLY),) DOWNLOAD_URIS += \ $(patsubst %/,%,$(dir $(call qstrip,$(1)))) ifneq ($(call qstrip,$(BR2_BACKUP_SITE)),) DOWNLOAD_URIS += \ $(call getschemeplusuri,$(call qstrip,$(BR2_BACKUP_SITE)/$($(2)_DL_SUBDIR)),urlencode) \ $(call getschemeplusuri,$(call qstrip,$(BR2_BACKUP_SITE)),urlencode) endif endif ################################################################################ # DOWNLOAD -- Download helper. Will call DL_WRAPPER which will try to download # source from the list returned by DOWNLOAD_URIS. # # Argument 1 is the source location # Argument 2 is the upper-case package name # ################################################################################ define DOWNLOAD $(Q)mkdir -p $($(2)_DL_DIR) $(Q)$(EXTRA_ENV) $($(2)_DL_ENV) \ flock $($(2)_DL_DIR)/.lock $(DL_WRAPPER) \ -c '$($(2)_DL_VERSION)' \ -d '$($(2)_DL_DIR)' \ -D '$(DL_DIR)' \ -f '$(notdir $(1))' \ -H '$($(2)_HASH_FILE)' \ -n '$($(2)_BASENAME_RAW)' \ -N '$($(2)_RAWNAME)' \ -o '$($(2)_DL_DIR)/$(notdir $(1))' \ $(if $($(2)_GIT_SUBMODULES),-r) \ $(foreach uri,$(call DOWNLOAD_URIS,$(1),$(2)),-u $(uri)) \ $(QUIET) \ -- \ $($(2)_DL_OPTS) endef ================================================ FILE: package/pkg-generic.mk ================================================ ################################################################################ # Generic package infrastructure # # This file implements an infrastructure that eases development of # package .mk files. It should be used for packages that do not rely # on a well-known build system for which Buildroot has a dedicated # infrastructure (so far, Buildroot has special support for # autotools-based and CMake-based packages). # # See the Buildroot documentation for details on the usage of this # infrastructure # # In terms of implementation, this generic infrastructure requires the # .mk file to specify: # # 1. Metadata information about the package: name, version, # download URL, etc. # # 2. Description of the commands to be executed to configure, build # and install the package ################################################################################ ################################################################################ # Helper functions to catch start/end of each step ################################################################################ # Those two functions are called by each step below. # They are responsible for calling all hooks defined in # $(GLOBAL_INSTRUMENTATION_HOOKS) and pass each of them # three arguments: # $1: either 'start' or 'end' # $2: the name of the step # $3: the name of the package # Start step # $1: step name define step_start $(foreach hook,$(GLOBAL_INSTRUMENTATION_HOOKS),$(call $(hook),start,$(1),$($(PKG)_NAME))$(sep)) endef # End step # $1: step name define step_end $(foreach hook,$(GLOBAL_INSTRUMENTATION_HOOKS),$(call $(hook),end,$(1),$($(PKG)_NAME))$(sep)) endef ####################################### # Actual steps hooks # Time steps define step_time printf "%s:%-5.5s:%-20.20s: %s\n" \ "$$(date +%s.%N)" "$(1)" "$(2)" "$(3)" \ >>"$(BUILD_DIR)/build-time.log" endef GLOBAL_INSTRUMENTATION_HOOKS += step_time # This hook checks that host packages that need libraries that we build # have a proper DT_RPATH or DT_RUNPATH tag define check_host_rpath $(if $(filter install-host,$(2)),\ $(if $(filter end,$(1)),support/scripts/check-host-rpath $(3) $(HOST_DIR) $(PER_PACKAGE_DIR))) endef GLOBAL_INSTRUMENTATION_HOOKS += check_host_rpath define step_check_build_dir_one if [ -d $(2) ]; then \ printf "%s: installs files in %s\n" $(1) $(2) >&2; \ exit 1; \ fi endef define step_check_build_dir $(if $(filter install-staging,$(2)),\ $(if $(filter end,$(1)),$(call step_check_build_dir_one,$(3),$(STAGING_DIR)/$(O)))) $(if $(filter install-target,$(2)),\ $(if $(filter end,$(1)),$(call step_check_build_dir_one,$(3),$(TARGET_DIR)/$(O)))) endef GLOBAL_INSTRUMENTATION_HOOKS += step_check_build_dir # User-supplied script ifneq ($(BR2_INSTRUMENTATION_SCRIPTS),) define step_user @$(foreach user_hook, $(BR2_INSTRUMENTATION_SCRIPTS), \ $(EXTRA_ENV) $(user_hook) "$(1)" "$(2)" "$(3)"$(sep)) endef GLOBAL_INSTRUMENTATION_HOOKS += step_user endif ####################################### # Helper functions # Make sure .la files only reference the current per-package # directory. # $1: package name (lower case) # $2: staging directory of the package ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y) define fixup-libtool-files $(Q)find $(2) \( -path '$(2)/lib*' -o -path '$(2)/usr/lib*' \) \ -name "*.la" -print0 | xargs -0 --no-run-if-empty \ $(SED) "s:$(PER_PACKAGE_DIR)/[^/]\+/:$(PER_PACKAGE_DIR)/$(1)/:g" endef endif # Make sure python _sysconfigdata*.py files only reference the current # per-package directory. # # Can't use $(foreach d, $(HOST_DIR)/lib/python* $(STAGING_DIR)/usr/lib/python*, ...) # because those directories may be created in the same recipe this macro will # be expanded in. # Additionally, either or both may be missing, which would make find whine and # fail. # So we just use HOST_DIR as a starting point, and filter on the two directories # of interest. ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y) define FIXUP_PYTHON_SYSCONFIGDATA $(Q)find $(HOST_DIR) \ \( -path '$(HOST_DIR)/lib/python*' \ -o -path '$(STAGING_DIR)/usr/lib/python*' \ \) \ \( \( -name "_sysconfigdata*.pyc" -delete \) \ -o \( -name "_sysconfigdata*.py" -print0 \) \ \) \ | xargs -0 --no-run-if-empty \ $(SED) 's:$(PER_PACKAGE_DIR)/[^/]\+/:$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/:g' endef endif # Functions to collect statistics about installed files # $(1): base directory to search in # $(2): suffix of file (optional) define pkg_size_before cd $(1); \ LC_ALL=C find . -not -path './$(STAGING_SUBDIR)/*' \( -type f -o -type l \) -printf '%T@:%i:%#m:%y:%s,%p\n' \ | LC_ALL=C sort > $($(PKG)_DIR)/.files-list$(2).before endef # $(1): base directory to search in # $(2): suffix of file (optional) define pkg_size_after cd $(1); \ LC_ALL=C find . -not -path './$(STAGING_SUBDIR)/*' \( -type f -o -type l \) -printf '%T@:%i:%#m:%y:%s,%p\n' \ | LC_ALL=C sort > $($(PKG)_DIR)/.files-list$(2).after LC_ALL=C comm -13 \ $($(PKG)_DIR)/.files-list$(2).before \ $($(PKG)_DIR)/.files-list$(2).after \ | sed -r -e 's/^[^,]+/$($(PKG)_NAME)/' \ > $($(PKG)_DIR)/.files-list$(2).txt rm -f $($(PKG)_DIR)/.files-list$(2).before rm -f $($(PKG)_DIR)/.files-list$(2).after endef define check_bin_arch support/scripts/check-bin-arch -p $($(PKG)_NAME) \ -l $($(PKG)_DIR)/.files-list.txt \ $(foreach i,$($(PKG)_BIN_ARCH_EXCLUDE),-i "$(i)") \ -r $(TARGET_READELF) \ -a $(BR2_READELF_ARCH_NAME) endef # Functions to remove conflicting and useless files # $1: base directory (target, staging, host) define remove-conflicting-useless-files $(if $(strip $($(PKG)_DROP_FILES_OR_DIRS)), $(Q)$(RM) -rf $(patsubst %, $(1)%, $($(PKG)_DROP_FILES_OR_DIRS))) endef define REMOVE_CONFLICTING_USELESS_FILES_IN_HOST $(call remove-conflicting-useless-files,$(HOST_DIR)) endef define REMOVE_CONFLICTING_USELESS_FILES_IN_STAGING $(call remove-conflicting-useless-files,$(STAGING_DIR)) endef define REMOVE_CONFLICTING_USELESS_FILES_IN_TARGET $(call remove-conflicting-useless-files,$(TARGET_DIR)) endef ################################################################################ # Implicit targets -- produce a stamp file for each step of a package build ################################################################################ # Retrieve the archive $(BUILD_DIR)/%/.stamp_downloaded: @$(call step_start,download) $(call prepare-per-package-directory,$($(PKG)_FINAL_DOWNLOAD_DEPENDENCIES)) $(foreach hook,$($(PKG)_PRE_DOWNLOAD_HOOKS),$(call $(hook))$(sep)) # Only show the download message if it isn't already downloaded $(Q)for p in $($(PKG)_ALL_DOWNLOADS); do \ if test ! -e $($(PKG)_DL_DIR)/`basename $$p` ; then \ $(call MESSAGE,"Downloading") ; \ break ; \ fi ; \ done $(foreach p,$($(PKG)_ALL_DOWNLOADS),$(call DOWNLOAD,$(p),$(PKG))$(sep)) $(foreach hook,$($(PKG)_POST_DOWNLOAD_HOOKS),$(call $(hook))$(sep)) $(Q)mkdir -p $(@D) @$(call step_end,download) $(Q)touch $@ # Retrieve actual source archive, e.g. for prebuilt external toolchains $(BUILD_DIR)/%/.stamp_actual_downloaded: @$(call step_start,actual-download) $(call DOWNLOAD,$($(PKG)_ACTUAL_SOURCE_SITE)/$($(PKG)_ACTUAL_SOURCE_TARBALL),$(PKG)) $(Q)mkdir -p $(@D) @$(call step_end,actual-download) $(Q)touch $@ # Unpack the archive $(BUILD_DIR)/%/.stamp_extracted: @$(call step_start,extract) @$(call MESSAGE,"Extracting") $(call prepare-per-package-directory,$($(PKG)_FINAL_EXTRACT_DEPENDENCIES)) $(foreach hook,$($(PKG)_PRE_EXTRACT_HOOKS),$(call $(hook))$(sep)) $(Q)mkdir -p $(@D) $($(PKG)_EXTRACT_CMDS) # some packages have messed up permissions inside $(Q)chmod -R +rw $(@D) $(foreach hook,$($(PKG)_POST_EXTRACT_HOOKS),$(call $(hook))$(sep)) @$(call step_end,extract) $(Q)touch $@ # Rsync the source directory if the _OVERRIDE_SRCDIR feature is # used. $(BUILD_DIR)/%/.stamp_rsynced: @$(call step_start,rsync) @$(call MESSAGE,"Syncing from source dir $(SRCDIR)") @mkdir -p $(@D) $(foreach hook,$($(PKG)_PRE_RSYNC_HOOKS),$(call $(hook))$(sep)) @test -d $(SRCDIR) || (echo "ERROR: $(SRCDIR) does not exist" ; exit 1) rsync -au --chmod=u=rwX,go=rX $($(PKG)_OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS) $(RSYNC_VCS_EXCLUSIONS) $(call qstrip,$(SRCDIR))/ $(@D) $(foreach hook,$($(PKG)_POST_RSYNC_HOOKS),$(call $(hook))$(sep)) @$(call step_end,rsync) $(Q)touch $@ # Patch # # The RAWNAME variable is the lowercased package name, which allows to # find the package directory (typically package/) and the # prefix of the patches # # For BR2_GLOBAL_PATCH_DIR, only generate if it is defined $(BUILD_DIR)/%/.stamp_patched: PATCH_BASE_DIRS = $(PKGDIR) $(BUILD_DIR)/%/.stamp_patched: PATCH_BASE_DIRS += $(addsuffix /$(RAWNAME),$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) $(BUILD_DIR)/%/.stamp_patched: @$(call step_start,patch) @$(call MESSAGE,"Patching") $(foreach hook,$($(PKG)_PRE_PATCH_HOOKS),$(call $(hook))$(sep)) $(foreach p,$($(PKG)_PATCH),$(APPLY_PATCHES) $(@D) $($(PKG)_DL_DIR) $(notdir $(p))$(sep)) $(Q)( \ for D in $(PATCH_BASE_DIRS); do \ if test -d $${D}; then \ if test -d $${D}/$($(PKG)_VERSION); then \ $(APPLY_PATCHES) $(@D) $${D}/$($(PKG)_VERSION) \*.patch \*.patch.$(ARCH) || exit 1; \ else \ $(APPLY_PATCHES) $(@D) $${D} \*.patch \*.patch.$(ARCH) || exit 1; \ fi; \ fi; \ done; \ ) $(foreach hook,$($(PKG)_POST_PATCH_HOOKS),$(call $(hook))$(sep)) @$(call step_end,patch) $(Q)touch $@ # Check that all directories specified in BR2_GLOBAL_PATCH_DIR exist. $(foreach dir,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR)),\ $(if $(wildcard $(dir)),,\ $(error BR2_GLOBAL_PATCH_DIR contains nonexistent directory $(dir)))) # Configure $(BUILD_DIR)/%/.stamp_configured: @$(call step_start,configure) @$(call MESSAGE,"Configuring") $(Q)mkdir -p $(HOST_DIR) $(TARGET_DIR) $(STAGING_DIR) $(BINARIES_DIR) $(call prepare-per-package-directory,$($(PKG)_FINAL_DEPENDENCIES)) @$(call pkg_size_before,$(TARGET_DIR)) @$(call pkg_size_before,$(STAGING_DIR),-staging) @$(call pkg_size_before,$(BINARIES_DIR),-images) @$(call pkg_size_before,$(HOST_DIR),-host) $(call fixup-libtool-files,$(NAME),$(HOST_DIR)) $(call fixup-libtool-files,$(NAME),$(STAGING_DIR)) $(foreach hook,$($(PKG)_POST_PREPARE_HOOKS),$(call $(hook))$(sep)) $(foreach hook,$($(PKG)_PRE_CONFIGURE_HOOKS),$(call $(hook))$(sep)) $($(PKG)_CONFIGURE_CMDS) $(foreach hook,$($(PKG)_POST_CONFIGURE_HOOKS),$(call $(hook))$(sep)) @$(call step_end,configure) $(Q)touch $@ # Build $(BUILD_DIR)/%/.stamp_built:: @$(call step_start,build) @$(call MESSAGE,"Building") $(foreach hook,$($(PKG)_PRE_BUILD_HOOKS),$(call $(hook))$(sep)) +$($(PKG)_BUILD_CMDS) $(foreach hook,$($(PKG)_POST_BUILD_HOOKS),$(call $(hook))$(sep)) @$(call step_end,build) $(Q)touch $@ # Install to host dir $(BUILD_DIR)/%/.stamp_host_installed: @$(call step_start,install-host) @$(call MESSAGE,"Installing to host directory") $(foreach hook,$($(PKG)_PRE_INSTALL_HOOKS),$(call $(hook))$(sep)) +$($(PKG)_INSTALL_CMDS) $(foreach hook,$($(PKG)_POST_INSTALL_HOOKS),$(call $(hook))$(sep)) @$(call step_end,install-host) $(Q)touch $@ # Install to staging dir # # Some packages install libtool .la files alongside any installed # libraries. These .la files sometimes refer to paths relative to the # sysroot, which libtool will interpret as absolute paths to host # libraries instead of the target libraries. Since this is not what we # want, these paths are fixed by prefixing them with $(STAGING_DIR). # As we configure with --prefix=/usr, this fix needs to be applied to # any path that starts with /usr. # # To protect against the case that the output or staging directories or # the pre-installed external toolchain themselves are under /usr, we first # substitute away any occurrences of these directories with @BASE_DIR@, # @STAGING_DIR@ and @TOOLCHAIN_EXTERNAL_INSTALL_DIR@ respectively. # # Note that STAGING_DIR can be outside BASE_DIR when the user sets # BR2_HOST_DIR to a custom value. Note that TOOLCHAIN_EXTERNAL_INSTALL_DIR # can be under @BASE_DIR@ when it's a downloaded toolchain, and can be # empty when we use an internal toolchain. # $(BUILD_DIR)/%/.stamp_staging_installed: @$(call step_start,install-staging) @$(call MESSAGE,"Installing to staging directory") $(foreach hook,$($(PKG)_PRE_INSTALL_STAGING_HOOKS),$(call $(hook))$(sep)) +$($(PKG)_INSTALL_STAGING_CMDS) $(foreach hook,$($(PKG)_POST_INSTALL_STAGING_HOOKS),$(call $(hook))$(sep)) $(Q)if test -n "$($(PKG)_CONFIG_SCRIPTS)" ; then \ $(call MESSAGE,"Fixing package configuration files") ;\ $(SED) "s,$(HOST_DIR),@HOST_DIR@,g" \ -e "s,$(BASE_DIR),@BASE_DIR@,g" \ -e "s,^\(exec_\)\?prefix=.*,\1prefix=@STAGING_DIR@/usr,g" \ -e "s,-I/usr/,-I@STAGING_DIR@/usr/,g" \ -e "s,-L/usr/,-L@STAGING_DIR@/usr/,g" \ -e 's,@STAGING_DIR@,$$(dirname $$(readlink -e $$0))/../..,g' \ -e 's,@HOST_DIR@,$$(dirname $$(readlink -e $$0))/../../../..,g' \ -e "s,@BASE_DIR@,$(BASE_DIR),g" \ $(addprefix $(STAGING_DIR)/usr/bin/,$($(PKG)_CONFIG_SCRIPTS)) ;\ fi @$(call MESSAGE,"Fixing libtool files") for la in $$(find $(STAGING_DIR)/usr/lib* -name "*.la"); do \ cp -a "$${la}" "$${la}.fixed" && \ $(SED) "s:$(BASE_DIR):@BASE_DIR@:g" \ -e "s:$(STAGING_DIR):@STAGING_DIR@:g" \ $(if $(TOOLCHAIN_EXTERNAL_INSTALL_DIR),\ -e "s:$(TOOLCHAIN_EXTERNAL_INSTALL_DIR):@TOOLCHAIN_EXTERNAL_INSTALL_DIR@:g") \ -e "s:\(['= ]\)/usr:\\1@STAGING_DIR@/usr:g" \ -e "s:\(['= ]\)/lib:\\1@STAGING_DIR@/lib:g" \ $(if $(TOOLCHAIN_EXTERNAL_INSTALL_DIR),\ -e "s:@TOOLCHAIN_EXTERNAL_INSTALL_DIR@:$(TOOLCHAIN_EXTERNAL_INSTALL_DIR):g") \ -e "s:@STAGING_DIR@:$(STAGING_DIR):g" \ -e "s:@BASE_DIR@:$(BASE_DIR):g" \ "$${la}.fixed" && \ if cmp -s "$${la}" "$${la}.fixed"; then \ rm -f "$${la}.fixed"; \ else \ mv "$${la}.fixed" "$${la}"; \ fi || exit 1; \ done @$(call step_end,install-staging) $(Q)touch $@ # Install to images dir $(BUILD_DIR)/%/.stamp_images_installed: @$(call step_start,install-image) @$(call MESSAGE,"Installing to images directory") $(foreach hook,$($(PKG)_PRE_INSTALL_IMAGES_HOOKS),$(call $(hook))$(sep)) +$($(PKG)_INSTALL_IMAGES_CMDS) $(foreach hook,$($(PKG)_POST_INSTALL_IMAGES_HOOKS),$(call $(hook))$(sep)) @$(call step_end,install-image) $(Q)touch $@ # Install to target dir $(BUILD_DIR)/%/.stamp_target_installed: @$(call step_start,install-target) @$(call MESSAGE,"Installing to target") $(foreach hook,$($(PKG)_PRE_INSTALL_TARGET_HOOKS),$(call $(hook))$(sep)) +$($(PKG)_INSTALL_TARGET_CMDS) $(if $(BR2_INIT_SYSTEMD),\ $($(PKG)_INSTALL_INIT_SYSTEMD)) $(if $(BR2_INIT_SYSV)$(BR2_INIT_BUSYBOX),\ $($(PKG)_INSTALL_INIT_SYSV)) $(if $(BR2_INIT_OPENRC), \ $(or $($(PKG)_INSTALL_INIT_OPENRC), \ $($(PKG)_INSTALL_INIT_SYSV))) $(foreach hook,$($(PKG)_POST_INSTALL_TARGET_HOOKS),$(call $(hook))$(sep)) $(Q)if test -n "$($(PKG)_CONFIG_SCRIPTS)" ; then \ $(RM) -f $(addprefix $(TARGET_DIR)/usr/bin/,$($(PKG)_CONFIG_SCRIPTS)) ; \ fi @$(call step_end,install-target) $(Q)touch $@ # Final installation step, completed when all installation steps # (host, images, staging, target) have completed $(BUILD_DIR)/%/.stamp_installed: @$(call pkg_size_after,$(TARGET_DIR)) @$(call pkg_size_after,$(STAGING_DIR),-staging) @$(call pkg_size_after,$(BINARIES_DIR),-images) @$(call pkg_size_after,$(HOST_DIR),-host) @$(call check_bin_arch) $(Q)touch $@ # Remove package sources $(BUILD_DIR)/%/.stamp_dircleaned: $(if $(BR2_PER_PACKAGE_DIRECTORIES),rm -Rf $(PER_PACKAGE_DIR)/$(NAME)) rm -Rf $(@D) ################################################################################ # virt-provides-single -- check that provider-pkg is the declared provider for # the virtual package virt-pkg # # argument 1 is the lower-case name of the virtual package # argument 2 is the upper-case name of the virtual package # argument 3 is the lower-case name of the provider # # example: # $(call virt-provides-single,libegl,LIBEGL,rpi-userland) ################################################################################ define virt-provides-single ifneq ($$(call qstrip,$$(BR2_PACKAGE_PROVIDES_$(2))),$(3)) $$(error Configuration error: both "$(3)" and $$(BR2_PACKAGE_PROVIDES_$(2))\ are selected as providers for virtual package "$(1)". Only one provider can\ be selected at a time. Please fix your configuration) endif endef define pkg-graph-depends @$$(INSTALL) -d $$(GRAPHS_DIR) @cd "$$(CONFIG_DIR)"; \ $$(TOPDIR)/support/scripts/graph-depends $$(BR2_GRAPH_DEPS_OPTS) \ -p $(1) $(2) -o $$(GRAPHS_DIR)/$$(@).dot dot $$(BR2_GRAPH_DOT_OPTS) -T$$(BR_GRAPH_OUT) \ -o $$(GRAPHS_DIR)/$$(@).$$(BR_GRAPH_OUT) \ $$(GRAPHS_DIR)/$$(@).dot endef ################################################################################ # inner-generic-package -- generates the make targets needed to build a # generic package # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages # argument 3 is the uppercase package name, without the HOST_ prefix # for host packages # argument 4 is the type (target or host) # # Note about variable and function references: inside all blocks that are # evaluated with $(eval), which includes all 'inner-xxx-package' blocks, # specific rules apply with respect to variable and function references. # - Numbered variables (parameters to the block) can be referenced with a single # dollar sign: $(1), $(2), $(3), etc. # - pkgdir and pkgname should be referenced with a single dollar sign too. These # functions rely on 'the most recently parsed makefile' which is supposed to # be the package .mk file. If we defer the evaluation of these functions using # double dollar signs, then they may be evaluated too late, when other # makefiles have already been parsed. One specific case is when $$(pkgdir) is # assigned to a variable using deferred evaluation with '=' and this variable # is used in a target rule outside the eval'ed inner block. In this case, the # pkgdir will be that of the last makefile parsed by buildroot, which is not # the expected value. This mechanism is for example used for the TARGET_PATCH # rule. # - All other variables should be referenced with a double dollar sign: # $$(TARGET_DIR), $$($(2)_VERSION), etc. Also all make functions should be # referenced with a double dollar sign: $$(subst), $$(call), $$(filter-out), # etc. This rule ensures that these variables and functions are only expanded # during the $(eval) step, and not earlier. Otherwise, unintuitive and # undesired behavior occurs with respect to these variables and functions. # ################################################################################ define inner-generic-package # When doing a package, we're definitely not doing a rootfs, but we # may inherit it via the dependency chain, so we reset it. $(1): ROOTFS= # Ensure the package is only declared once, i.e. do not accept that a # package be re-defined by a br2-external tree ifneq ($(call strip,$(filter $(1),$(PACKAGES_ALL))),) $$(error Package '$(1)' defined a second time in '$(pkgdir)'; \ previous definition was in '$$($(2)_PKGDIR)') endif PACKAGES_ALL += $(1) # Define default values for various package-related variables, if not # already defined. For some variables (version, source, site and # subdir), if they are undefined, we try to see if a variable without # the HOST_ prefix is defined. If so, we use such a variable, so that # this information has only to be specified once, for both the # target and host packages of a given .mk file. $(2)_TYPE = $(4) $(2)_NAME = $(1) $(2)_RAWNAME = $$(patsubst host-%,%,$(1)) $(2)_PKGDIR = $(pkgdir) # Keep the package version that may contain forward slashes in the _DL_VERSION # variable, then replace all forward slashes ('/') by underscores ('_') to # sanitize the package version that is used in paths, directory and file names. # Forward slashes may appear in the package's version when pointing to a # version control system branch or tag, for example remotes/origin/1_10_stable. # Similar for spaces and colons (:) that may appear in date-based revisions for # CVS. ifndef $(2)_VERSION ifdef $(3)_DL_VERSION $(2)_DL_VERSION := $$($(3)_DL_VERSION) else ifdef $(3)_VERSION $(2)_DL_VERSION := $$($(3)_VERSION) endif else $(2)_DL_VERSION := $$(strip $$($(2)_VERSION)) endif $(2)_VERSION := $$(call sanitize,$$($(2)_DL_VERSION)) $(2)_HASH_FILE = \ $$(strip \ $$(if $$(wildcard $$($(2)_PKGDIR)/$$($(2)_VERSION)/$$($(2)_RAWNAME).hash),\ $$($(2)_PKGDIR)/$$($(2)_VERSION)/$$($(2)_RAWNAME).hash,\ $$($(2)_PKGDIR)/$$($(2)_RAWNAME).hash)) ifdef $(3)_OVERRIDE_SRCDIR $(2)_OVERRIDE_SRCDIR ?= $$($(3)_OVERRIDE_SRCDIR) endif $(2)_BASENAME = $$(if $$($(2)_VERSION),$(1)-$$($(2)_VERSION),$(1)) $(2)_BASENAME_RAW = $$(if $$($(2)_VERSION),$$($(2)_RAWNAME)-$$($(2)_VERSION),$$($(2)_RAWNAME)) $(2)_DL_SUBDIR ?= $$($(2)_RAWNAME) $(2)_DL_DIR = $$(DL_DIR)/$$($(2)_DL_SUBDIR) $(2)_DIR = $$(BUILD_DIR)/$$($(2)_BASENAME) ifndef $(2)_SUBDIR ifdef $(3)_SUBDIR $(2)_SUBDIR = $$($(3)_SUBDIR) else $(2)_SUBDIR ?= endif endif ifndef $(2)_STRIP_COMPONENTS ifdef $(3)_STRIP_COMPONENTS $(2)_STRIP_COMPONENTS = $$($(3)_STRIP_COMPONENTS) else $(2)_STRIP_COMPONENTS ?= 1 endif endif $(2)_SRCDIR = $$($(2)_DIR)/$$($(2)_SUBDIR) $(2)_BUILDDIR ?= $$($(2)_SRCDIR) ifneq ($$($(2)_OVERRIDE_SRCDIR),) $(2)_VERSION = custom endif ifndef $(2)_SOURCE ifdef $(3)_SOURCE $(2)_SOURCE = $$($(3)_SOURCE) else ifdef $(2)_VERSION $(2)_SOURCE ?= $$($(2)_BASENAME_RAW)$$(call pkg_source_ext,$(2)) 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) endif endif $(2)_ALL_DOWNLOADS = \ $$(if $$($(2)_SOURCE),$$($(2)_SITE_METHOD)+$$($(2)_SITE)/$$($(2)_SOURCE)) \ $$(foreach p,$$($(2)_PATCH) $$($(2)_EXTRA_DOWNLOADS),\ $$(if $$(findstring ://,$$(p)),$$(p),\ $$($(2)_SITE_METHOD)+$$($(2)_SITE)/$$(p))) ifndef $(2)_SITE ifdef $(3)_SITE $(2)_SITE = $$($(3)_SITE) endif endif ifndef $(2)_SITE_METHOD ifdef $(3)_SITE_METHOD $(2)_SITE_METHOD = $$($(3)_SITE_METHOD) else # Try automatic detection using the scheme part of the URI $(2)_SITE_METHOD = $$(call geturischeme,$$($(2)_SITE)) endif endif ifndef $(2)_DL_OPTS ifdef $(3)_DL_OPTS $(2)_DL_OPTS = $$($(3)_DL_OPTS) endif endif ifneq ($$(filter bzr cvs hg,$$($(2)_SITE_METHOD)),) BR_NO_CHECK_HASH_FOR += $$($(2)_SOURCE) endif ifndef $(2)_GIT_SUBMODULES ifdef $(3)_GIT_SUBMODULES $(2)_GIT_SUBMODULES = $$($(3)_GIT_SUBMODULES) 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) endif ifeq ($$($(2)_OVERRIDE_SRCDIR),) $$(error $(1) has local site method, but `$(2)_SITE` is not defined) endif endif ifndef $(2)_LICENSE ifdef $(3)_LICENSE $(2)_LICENSE = $$($(3)_LICENSE) endif endif $(2)_LICENSE ?= unknown ifndef $(2)_LICENSE_FILES ifdef $(3)_LICENSE_FILES $(2)_LICENSE_FILES = $$($(3)_LICENSE_FILES) endif endif ifndef $(2)_REDISTRIBUTE ifdef $(3)_REDISTRIBUTE $(2)_REDISTRIBUTE = $$($(3)_REDISTRIBUTE) endif endif $(2)_REDISTRIBUTE ?= YES $(2)_REDIST_SOURCES_DIR = $$(REDIST_SOURCES_DIR_$$(call UPPERCASE,$(4)))/$$($(2)_BASENAME_RAW) # If any of the _CPE_ID_* variables are set, we assume the CPE ID # information is valid for this package. ifneq ($$($(2)_CPE_ID_VENDOR)$$($(2)_CPE_ID_PRODUCT)$$($(2)_CPE_ID_VERSION)$$($(2)_CPE_ID_UPDATE)$$($(2)_CPE_ID_PREFIX),) $(2)_CPE_ID_VALID = YES endif # When we're a host package, make sure to use the variables of the # corresponding target package, if any. ifneq ($$($(3)_CPE_ID_VENDOR)$$($(3)_CPE_ID_PRODUCT)$$($(3)_CPE_ID_VERSION)$$($(3)_CPE_ID_UPDATE)$$($(3)_CPE_ID_PREFIX),) $(2)_CPE_ID_VALID = YES endif # If the CPE ID is valid for the target package so it is for the host # package ifndef $(2)_CPE_ID_VALID ifdef $(3)_CPE_ID_VALID $(2)_CPE_ID_VALID = $$($(3)_CPE_ID_VALID) endif endif ifeq ($$($(2)_CPE_ID_VALID),YES) # CPE_ID_VENDOR ifndef $(2)_CPE_ID_VENDOR ifdef $(3)_CPE_ID_VENDOR $(2)_CPE_ID_VENDOR = $$($(3)_CPE_ID_VENDOR) else $(2)_CPE_ID_VENDOR = $$($(2)_RAWNAME)_project endif endif # CPE_ID_PRODUCT ifndef $(2)_CPE_ID_PRODUCT ifdef $(3)_CPE_ID_PRODUCT $(2)_CPE_ID_PRODUCT = $$($(3)_CPE_ID_PRODUCT) else $(2)_CPE_ID_PRODUCT = $$($(2)_RAWNAME) endif endif # CPE_ID_VERSION ifndef $(2)_CPE_ID_VERSION ifdef $(3)_CPE_ID_VERSION $(2)_CPE_ID_VERSION = $$($(3)_CPE_ID_VERSION) else $(2)_CPE_ID_VERSION = $$($(2)_VERSION) endif endif # CPE_ID_UPDATE ifndef $(2)_CPE_ID_UPDATE ifdef $(3)_CPE_ID_UPDATE $(2)_CPE_ID_UPDATE = $$($(3)_CPE_ID_UPDATE) else $(2)_CPE_ID_UPDATE = * endif endif # CPE_ID_PREFIX ifndef $(2)_CPE_ID_PREFIX ifdef $(3)_CPE_ID_PREFIX $(2)_CPE_ID_PREFIX = $$($(3)_CPE_ID_PREFIX) else $(2)_CPE_ID_PREFIX = cpe:2.3:a endif endif # Calculate complete CPE ID $(2)_CPE_ID = $$($(2)_CPE_ID_PREFIX):$$($(2)_CPE_ID_VENDOR):$$($(2)_CPE_ID_PRODUCT):$$($(2)_CPE_ID_VERSION):$$($(2)_CPE_ID_UPDATE):*:*:*:*:*:* endif # ifeq ($$($(2)_CPE_ID_VALID),YES) # 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. # Similarly for the skeleton. $(2)_ADD_TOOLCHAIN_DEPENDENCY ?= YES $(2)_ADD_SKELETON_DEPENDENCY ?= YES ifeq ($(4),target) ifeq ($$($(2)_ADD_SKELETON_DEPENDENCY),YES) $(2)_DEPENDENCIES += skeleton endif ifeq ($$($(2)_ADD_TOOLCHAIN_DEPENDENCY),YES) $(2)_DEPENDENCIES += toolchain endif endif ifneq ($(1),host-skeleton) $(2)_DEPENDENCIES += host-skeleton endif ifneq ($$(filter cvs git svn,$$($(2)_SITE_METHOD)),) $(2)_DOWNLOAD_DEPENDENCIES += \ $(BR2_GZIP_HOST_DEPENDENCY) \ $(BR2_TAR_HOST_DEPENDENCY) endif ifeq ($$(filter host-tar host-skeleton host-fakedate,$(1)),) $(2)_EXTRACT_DEPENDENCIES += $$(BR2_TAR_HOST_DEPENDENCY) endif ifeq ($$(filter host-tar host-skeleton host-xz host-lzip host-fakedate,$(1)),) $(2)_EXTRACT_DEPENDENCIES += \ $$(foreach dl,$$($(2)_ALL_DOWNLOADS),\ $$(call extractor-pkg-dependency,$$(notdir $$(dl)))) endif ifeq ($$(BR2_CCACHE),y) ifeq ($$(filter host-tar host-skeleton host-xz host-lzip host-fakedate host-ccache,$(1)),) $(2)_DEPENDENCIES += host-ccache endif endif ifeq ($$(BR2_REPRODUCIBLE),y) ifeq ($$(filter host-skeleton host-fakedate,$(1)),) $(2)_DEPENDENCIES += host-fakedate endif endif # Eliminate duplicates in dependencies $(2)_FINAL_DEPENDENCIES = $$(sort $$($(2)_DEPENDENCIES)) $(2)_FINAL_DOWNLOAD_DEPENDENCIES = $$(sort $$($(2)_DOWNLOAD_DEPENDENCIES)) $(2)_FINAL_EXTRACT_DEPENDENCIES = $$(sort $$($(2)_EXTRACT_DEPENDENCIES)) $(2)_FINAL_PATCH_DEPENDENCIES = $$(sort $$($(2)_PATCH_DEPENDENCIES)) $(2)_FINAL_ALL_DEPENDENCIES = \ $$(sort \ $$($(2)_FINAL_DEPENDENCIES) \ $$($(2)_FINAL_DOWNLOAD_DEPENDENCIES) \ $$($(2)_FINAL_EXTRACT_DEPENDENCIES) \ $$($(2)_FINAL_PATCH_DEPENDENCIES)) $(2)_FINAL_RECURSIVE_DEPENDENCIES = $$(sort \ $$(if $$(filter undefined,$$(origin $(2)_FINAL_RECURSIVE_DEPENDENCIES__X)), \ $$(eval $(2)_FINAL_RECURSIVE_DEPENDENCIES__X := \ $$(foreach p, \ $$($(2)_FINAL_ALL_DEPENDENCIES), \ $$(p) \ $$($$(call UPPERCASE,$$(p))_FINAL_RECURSIVE_DEPENDENCIES) \ ) \ ) \ ) \ $$($(2)_FINAL_RECURSIVE_DEPENDENCIES__X)) $(2)_FINAL_RECURSIVE_RDEPENDENCIES = $$(sort \ $$(if $$(filter undefined,$$(origin $(2)_FINAL_RECURSIVE_RDEPENDENCIES__X)), \ $$(eval $(2)_FINAL_RECURSIVE_RDEPENDENCIES__X := \ $$(foreach p, \ $$($(2)_RDEPENDENCIES), \ $$(p) \ $$($$(call UPPERCASE,$$(p))_FINAL_RECURSIVE_RDEPENDENCIES) \ ) \ ) \ ) \ $$($(2)_FINAL_RECURSIVE_RDEPENDENCIES__X)) # define sub-target stamps $(2)_TARGET_INSTALL = $$($(2)_DIR)/.stamp_installed $(2)_TARGET_INSTALL_TARGET = $$($(2)_DIR)/.stamp_target_installed $(2)_TARGET_INSTALL_STAGING = $$($(2)_DIR)/.stamp_staging_installed $(2)_TARGET_INSTALL_IMAGES = $$($(2)_DIR)/.stamp_images_installed $(2)_TARGET_INSTALL_HOST = $$($(2)_DIR)/.stamp_host_installed $(2)_TARGET_BUILD = $$($(2)_DIR)/.stamp_built $(2)_TARGET_CONFIGURE = $$($(2)_DIR)/.stamp_configured $(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 $(2)_EXTRACT_CMDS ?= \ $$(if $$($(2)_SOURCE),$$(INFLATE$$(suffix $$($(2)_SOURCE))) $$($(2)_DL_DIR)/$$($(2)_SOURCE) | \ $$(TAR) --strip-components=$$($(2)_STRIP_COMPONENTS) \ -C $$($(2)_DIR) \ $$(foreach x,$$($(2)_EXCLUDES),--exclude='$$(x)' ) \ $$(TAR_OPTIONS) -) # pre/post-steps hooks $(2)_PRE_DOWNLOAD_HOOKS ?= $(2)_POST_DOWNLOAD_HOOKS ?= $(2)_PRE_EXTRACT_HOOKS ?= $(2)_POST_EXTRACT_HOOKS ?= $(2)_PRE_RSYNC_HOOKS ?= $(2)_POST_RSYNC_HOOKS ?= $(2)_PRE_PATCH_HOOKS ?= $(2)_POST_PATCH_HOOKS ?= $(2)_PRE_CONFIGURE_HOOKS ?= $(2)_POST_CONFIGURE_HOOKS ?= $(2)_PRE_BUILD_HOOKS ?= $(2)_POST_BUILD_HOOKS ?= $(2)_PRE_INSTALL_HOOKS ?= $(2)_POST_INSTALL_HOOKS ?= $(2)_PRE_INSTALL_STAGING_HOOKS ?= $(2)_POST_INSTALL_STAGING_HOOKS ?= $(2)_PRE_INSTALL_TARGET_HOOKS ?= $(2)_POST_INSTALL_TARGET_HOOKS ?= $(2)_PRE_INSTALL_IMAGES_HOOKS ?= $(2)_POST_INSTALL_IMAGES_HOOKS ?= $(2)_PRE_LEGAL_INFO_HOOKS ?= $(2)_POST_LEGAL_INFO_HOOKS ?= $(2)_TARGET_FINALIZE_HOOKS ?= $(2)_ROOTFS_PRE_CMD_HOOKS ?= $(2)_POST_PREPARE_HOOKS += FIXUP_PYTHON_SYSCONFIGDATA ifeq ($$($(2)_TYPE),target) ifneq ($$(HOST_$(2)_KCONFIG_VAR),) $$(error "Package $(1) defines host variant before target variant!") endif endif # Globaly remove following conflicting and useless files $(2)_DROP_FILES_OR_DIRS += /share/info/dir ifeq ($$($(2)_TYPE),host) $(2)_POST_INSTALL_HOOKS += REMOVE_CONFLICTING_USELESS_FILES_IN_HOST else $(2)_POST_INSTALL_STAGING_HOOKS += REMOVE_CONFLICTING_USELESS_FILES_IN_STAGING $(2)_POST_INSTALL_TARGET_HOOKS += REMOVE_CONFLICTING_USELESS_FILES_IN_TARGET endif # human-friendly targets and target sequencing $(1): $(1)-install $(1)-install: $$($(2)_TARGET_INSTALL) $$($(2)_TARGET_INSTALL): $$($(2)_TARGET_BUILD) ifeq ($$($(2)_TYPE),host) $$($(2)_TARGET_INSTALL): $$($(2)_TARGET_INSTALL_HOST) else $(2)_INSTALL_STAGING ?= NO $(2)_INSTALL_IMAGES ?= NO $(2)_INSTALL_TARGET ?= YES ifeq ($$($(2)_INSTALL_TARGET),YES) $$($(2)_TARGET_INSTALL): $$($(2)_TARGET_INSTALL_TARGET) endif ifeq ($$($(2)_INSTALL_STAGING),YES) $$($(2)_TARGET_INSTALL): $$($(2)_TARGET_INSTALL_STAGING) endif ifeq ($$($(2)_INSTALL_IMAGES),YES) $$($(2)_TARGET_INSTALL): $$($(2)_TARGET_INSTALL_IMAGES) endif endif ifeq ($$($(2)_INSTALL_TARGET),YES) $(1)-install-target: $$($(2)_TARGET_INSTALL_TARGET) $$($(2)_TARGET_INSTALL_TARGET): $$($(2)_TARGET_BUILD) else $(1)-install-target: endif ifeq ($$($(2)_INSTALL_STAGING),YES) $(1)-install-staging: $$($(2)_TARGET_INSTALL_STAGING) $$($(2)_TARGET_INSTALL_STAGING): $$($(2)_TARGET_BUILD) # Some packages use install-staging stuff for install-target $$($(2)_TARGET_INSTALL_TARGET): $$($(2)_TARGET_INSTALL_STAGING) else $(1)-install-staging: endif ifeq ($$($(2)_INSTALL_IMAGES),YES) $(1)-install-images: $$($(2)_TARGET_INSTALL_IMAGES) $$($(2)_TARGET_INSTALL_IMAGES): $$($(2)_TARGET_BUILD) else $(1)-install-images: endif $(1)-install-host: $$($(2)_TARGET_INSTALL_HOST) $$($(2)_TARGET_INSTALL_HOST): $$($(2)_TARGET_BUILD) $(1)-build: $$($(2)_TARGET_BUILD) $$($(2)_TARGET_BUILD): $$($(2)_TARGET_CONFIGURE) # Since $(2)_FINAL_DEPENDENCIES are phony targets, they are always "newer" # than $(2)_TARGET_CONFIGURE. This would force the configure step (and # therefore the other steps as well) to be re-executed with every # invocation of make. Therefore, make $(2)_FINAL_DEPENDENCIES an order-only # dependency by using |. $(1)-configure: $$($(2)_TARGET_CONFIGURE) $$($(2)_TARGET_CONFIGURE): | $$($(2)_FINAL_DEPENDENCIES) $$($(2)_TARGET_SOURCE) $$($(2)_TARGET_RSYNC): | prepare $$($(2)_TARGET_SOURCE) $$($(2)_TARGET_RSYNC): | dependencies ifeq ($$($(2)_OVERRIDE_SRCDIR),) # In the normal case (no package override), the sequence of steps is # source, by downloading # depends # extract # patch # configure $$($(2)_TARGET_CONFIGURE): $$($(2)_TARGET_PATCH) $(1)-patch: $$($(2)_TARGET_PATCH) $$($(2)_TARGET_PATCH): $$($(2)_TARGET_EXTRACT) # Order-only dependency $$($(2)_TARGET_PATCH): | $$(patsubst %,%-patch,$$($(2)_FINAL_PATCH_DEPENDENCIES)) $(1)-extract: $$($(2)_TARGET_EXTRACT) $$($(2)_TARGET_EXTRACT): $$($(2)_TARGET_SOURCE) $$($(2)_TARGET_EXTRACT): | $$($(2)_FINAL_EXTRACT_DEPENDENCIES) $(1)-depends: $$($(2)_FINAL_ALL_DEPENDENCIES) $(1)-source: $$($(2)_TARGET_SOURCE) $$($(2)_TARGET_SOURCE): | $$($(2)_FINAL_DOWNLOAD_DEPENDENCIES) $(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)-external-deps: @for p in $$($(2)_SOURCE) $$($(2)_PATCH) $$($(2)_EXTRA_DOWNLOADS) ; do \ echo `basename $$$$p` ; \ done else # In the package override case, the sequence of steps # source, by rsyncing # depends # configure # Use an order-only dependency so the "-clean-for-rebuild" rule # can remove the stamp file without triggering the configure step. $$($(2)_TARGET_CONFIGURE): | $$($(2)_TARGET_RSYNC) $(1)-depends: $$($(2)_FINAL_DEPENDENCIES) $(1)-patch: $(1)-rsync $(1)-extract: $(1)-rsync $(1)-rsync: $$($(2)_TARGET_RSYNC) $(1)-source: $(1)-legal-source: $(1)-external-deps: @echo "file://$$($(2)_OVERRIDE_SRCDIR)" endif $(1)-show-version: @echo $$($(2)_VERSION) $(1)-show-depends: @echo $$($(2)_FINAL_ALL_DEPENDENCIES) $(1)-show-recursive-depends: @echo $$($(2)_FINAL_RECURSIVE_DEPENDENCIES) $(1)-show-rdepends: @echo $$($(2)_RDEPENDENCIES) $(1)-show-recursive-rdepends: @echo $$($(2)_FINAL_RECURSIVE_RDEPENDENCIES) $(1)-show-build-order: $$(patsubst %,%-show-build-order,$$($(2)_FINAL_ALL_DEPENDENCIES)) @: $$(info $(1)) $(1)-show-info: @: $$(info $$(call clean-json,{ $$(call json-info,$(2)) })) $(1)-graph-depends: graph-depends-requirements $(call pkg-graph-depends,$(1),--direct) $(1)-graph-rdepends: graph-depends-requirements $(call pkg-graph-depends,$(1),--reverse) $(1)-all-source: $(1)-source $(1)-all-source: $$(foreach p,$$($(2)_FINAL_ALL_DEPENDENCIES),$$(p)-all-source) $(1)-all-external-deps: $(1)-external-deps $(1)-all-external-deps: $$(foreach p,$$($(2)_FINAL_ALL_DEPENDENCIES),$$(p)-all-external-deps) $(1)-all-legal-info: $(1)-legal-info $(1)-all-legal-info: $$(foreach p,$$($(2)_FINAL_ALL_DEPENDENCIES),$$(p)-all-legal-info) $(1)-dirclean: $$($(2)_TARGET_DIRCLEAN) $(1)-clean-for-reinstall: ifneq ($$($(2)_OVERRIDE_SRCDIR),) rm -f $$($(2)_TARGET_RSYNC) endif rm -f $$($(2)_TARGET_INSTALL) rm -f $$($(2)_TARGET_INSTALL_STAGING) rm -f $$($(2)_TARGET_INSTALL_TARGET) rm -f $$($(2)_TARGET_INSTALL_IMAGES) rm -f $$($(2)_TARGET_INSTALL_HOST) $(1)-reinstall: $(1)-clean-for-reinstall $(1) $(1)-clean-for-rebuild: $(1)-clean-for-reinstall rm -f $$($(2)_TARGET_BUILD) $(1)-rebuild: $(1)-clean-for-rebuild $(1) $(1)-clean-for-reconfigure: $(1)-clean-for-rebuild rm -f $$($(2)_TARGET_CONFIGURE) $(1)-reconfigure: $(1)-clean-for-reconfigure $(1) # define the PKG variable for all targets, containing the # uppercase package variable prefix $$($(2)_TARGET_INSTALL): PKG=$(2) $$($(2)_TARGET_INSTALL_TARGET): PKG=$(2) $$($(2)_TARGET_INSTALL_STAGING): PKG=$(2) $$($(2)_TARGET_INSTALL_IMAGES): PKG=$(2) $$($(2)_TARGET_INSTALL_HOST): PKG=$(2) $$($(2)_TARGET_BUILD): PKG=$(2) $$($(2)_TARGET_CONFIGURE): PKG=$(2) $$($(2)_TARGET_CONFIGURE): NAME=$(1) $$($(2)_TARGET_RSYNC): SRCDIR=$$($(2)_OVERRIDE_SRCDIR) $$($(2)_TARGET_RSYNC): PKG=$(2) $$($(2)_TARGET_PATCH): PKG=$(2) $$($(2)_TARGET_PATCH): RAWNAME=$$(patsubst host-%,%,$(1)) $$($(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) $$($(2)_TARGET_DIRCLEAN): NAME=$(1) # Compute the name of the Kconfig option that correspond to the # package being enabled. We handle three cases: the special Linux # kernel case, the bootloaders case, and the normal packages case. # Virtual packages are handled separately (see below). ifeq ($(1),linux) $(2)_KCONFIG_VAR = BR2_LINUX_KERNEL else ifneq ($$(filter boot/% $$(foreach dir,$$(BR2_EXTERNAL_DIRS),$$(dir)/boot/%),$(pkgdir)),) $(2)_KCONFIG_VAR = BR2_TARGET_$(2) else ifneq ($$(filter toolchain/% $$(foreach dir,$$(BR2_EXTERNAL_DIRS),$$(dir)/toolchain/%),$(pkgdir)),) $(2)_KCONFIG_VAR = BR2_$(2) else $(2)_KCONFIG_VAR = BR2_PACKAGE_$(2) endif # legal-info: declare dependencies and set values used later for the manifest ifneq ($$($(2)_LICENSE_FILES),) $(2)_MANIFEST_LICENSE_FILES = $$($(2)_LICENSE_FILES) endif # 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 # We only save the sources of packages we want to redistribute, that are # non-overriden (local or true override). ifeq ($$($(2)_REDISTRIBUTE),YES) 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 # legal-info: produce legally relevant info. $(1)-legal-info: PKG=$(2) $(1)-legal-info: @$$(call MESSAGE,"Collecting legal info") # Packages without a source are assumed to be part of Buildroot, skip them. $$(foreach hook,$$($(2)_PRE_LEGAL_INFO_HOOKS),$$(call $$(hook))$$(sep)) ifneq ($$(call qstrip,$$($(2)_SOURCE)),) # Save license files if defined # We save the license files for any kind of package: normal, local, # overridden, or non-redistributable alike. # The reason to save license files even for no-redistribute packages # 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)),) $(Q)$$(call legal-warning-pkg,$$($(2)_BASENAME_RAW),cannot save license ($(2)_LICENSE_FILES not defined)) else $(Q)$$(foreach F,$$($(2)_LICENSE_FILES),$$(call legal-license-file,$$($(2)_RAWNAME),$$($(2)_BASENAME_RAW),$$($(2)_HASH_FILE),$$(F),$$($(2)_DIR)/$$(F),$$(call UPPERCASE,$(4)))$$(sep)) endif # license files ifeq ($$($(2)_SITE_METHOD),local) # Packages without a tarball: don't save and warn @$$(call legal-warning-nosource,$$($(2)_RAWNAME),local) else ifneq ($$($(2)_OVERRIDE_SRCDIR),) @$$(call legal-warning-nosource,$$($(2)_RAWNAME),override) else # Other packages ifeq ($$($(2)_REDISTRIBUTE),YES) # 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 \ $$($(2)_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 @$$(call legal-manifest,$$(call UPPERCASE,$(4)),$$($(2)_RAWNAME),$$($(2)_VERSION),$$(subst $$(space)$$(comma),$$(comma),$$($(2)_LICENSE)),$$($(2)_MANIFEST_LICENSE_FILES),$$($(2)_ACTUAL_SOURCE_TARBALL),$$($(2)_ACTUAL_SOURCE_SITE),$$(call legal-deps,$(1))) endif # ifneq ($$(call qstrip,$$($(2)_SOURCE)),) $$(foreach hook,$$($(2)_POST_LEGAL_INFO_HOOKS),$$(call $$(hook))$$(sep)) # add package to the general list of targets if requested by the buildroot # configuration ifeq ($$($$($(2)_KCONFIG_VAR)),y) # Ensure the calling package is the declared provider for all the virtual # packages it claims to be an implementation of. ifneq ($$($(2)_PROVIDES),) $$(foreach pkg,$$($(2)_PROVIDES),\ $$(eval $$(call virt-provides-single,$$(pkg),$$(call UPPERCASE,$$(pkg)),$(1))$$(sep))) endif # Register package as a reverse-dependencies of all its dependencies $$(eval $$(foreach p,$$($(2)_FINAL_ALL_DEPENDENCIES),\ $$(call UPPERCASE,$$(p))_RDEPENDENCIES += $(1)$$(sep))) # Ensure unified variable name conventions between all packages Some # of the variables are used by more than one infrastructure; so, # rather than duplicating the checks in each infrastructure, we check # all variables here in pkg-generic, even though pkg-generic should # have no knowledge of infra-specific variables. $(eval $(call check-deprecated-variable,$(2)_MAKE_OPT,$(2)_MAKE_OPTS)) $(eval $(call check-deprecated-variable,$(2)_INSTALL_OPT,$(2)_INSTALL_OPTS)) $(eval $(call check-deprecated-variable,$(2)_INSTALL_TARGET_OPT,$(2)_INSTALL_TARGET_OPTS)) $(eval $(call check-deprecated-variable,$(2)_INSTALL_STAGING_OPT,$(2)_INSTALL_STAGING_OPTS)) $(eval $(call check-deprecated-variable,$(2)_INSTALL_HOST_OPT,$(2)_INSTALL_HOST_OPTS)) $(eval $(call check-deprecated-variable,$(2)_AUTORECONF_OPT,$(2)_AUTORECONF_OPTS)) $(eval $(call check-deprecated-variable,$(2)_CONF_OPT,$(2)_CONF_OPTS)) $(eval $(call check-deprecated-variable,$(2)_BUILD_OPT,$(2)_BUILD_OPTS)) $(eval $(call check-deprecated-variable,$(2)_GETTEXTIZE_OPT,$(2)_GETTEXTIZE_OPTS)) $(eval $(call check-deprecated-variable,$(2)_KCONFIG_OPT,$(2)_KCONFIG_OPTS)) PACKAGES += $(1) ifneq ($$($(2)_PERMISSIONS),) PACKAGES_PERMISSIONS_TABLE += $$($(2)_PERMISSIONS)$$(sep) endif ifneq ($$($(2)_DEVICES),) PACKAGES_DEVICES_TABLE += $$($(2)_DEVICES)$$(sep) endif ifneq ($$($(2)_USERS),) PACKAGES_USERS += $$($(2)_USERS)$$(sep) endif ifneq ($$($(2)_LINUX_CONFIG_FIXUPS),) PACKAGES_LINUX_CONFIG_FIXUPS += $$($(2)_LINUX_CONFIG_FIXUPS)$$(sep) endif TARGET_FINALIZE_HOOKS += $$($(2)_TARGET_FINALIZE_HOOKS) ROOTFS_PRE_CMD_HOOKS += $$($(2)_ROOTFS_PRE_CMD_HOOKS) KEEP_PYTHON_PY_FILES += $$($(2)_KEEP_PY_FILES) ifneq ($$($(2)_SELINUX_MODULES),) PACKAGES_SELINUX_MODULES += $$($(2)_SELINUX_MODULES) endif PACKAGES_SELINUX_EXTRA_MODULES_DIRS += \ $$(if $$(wildcard $$($(2)_PKGDIR)/selinux),$$($(2)_PKGDIR)/selinux) ifeq ($$($(2)_SITE_METHOD),svn) DL_TOOLS_DEPENDENCIES += svn else ifeq ($$($(2)_SITE_METHOD),git) DL_TOOLS_DEPENDENCIES += git else ifeq ($$($(2)_SITE_METHOD),bzr) DL_TOOLS_DEPENDENCIES += bzr else ifeq ($$($(2)_SITE_METHOD),scp) DL_TOOLS_DEPENDENCIES += scp ssh else ifeq ($$($(2)_SITE_METHOD),hg) DL_TOOLS_DEPENDENCIES += hg else ifeq ($$($(2)_SITE_METHOD),cvs) DL_TOOLS_DEPENDENCIES += cvs endif # SITE_METHOD DL_TOOLS_DEPENDENCIES += $$(call extractor-system-dependency,$$($(2)_SOURCE)) # Ensure all virtual targets are PHONY. Listed alphabetically. .PHONY: $(1) \ $(1)-all-external-deps \ $(1)-all-legal-info \ $(1)-all-source \ $(1)-build \ $(1)-clean-for-rebuild \ $(1)-clean-for-reconfigure \ $(1)-clean-for-reinstall \ $(1)-configure \ $(1)-depends \ $(1)-dirclean \ $(1)-external-deps \ $(1)-extract \ $(1)-graph-depends \ $(1)-graph-rdepends \ $(1)-install \ $(1)-install-host \ $(1)-install-images \ $(1)-install-staging \ $(1)-install-target \ $(1)-legal-info \ $(1)-legal-source \ $(1)-patch \ $(1)-rebuild \ $(1)-reconfigure \ $(1)-reinstall \ $(1)-rsync \ $(1)-show-depends \ $(1)-show-info \ $(1)-show-version \ $(1)-source 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 # Virtual packages are not built but it's useful to allow them to have # permission/device/user tables and target-finalize/rootfs-pre-cmd hooks. else ifeq ($$(BR2_PACKAGE_HAS_$(2)),y) # $(2)_KCONFIG_VAR ifneq ($$($(2)_PERMISSIONS),) PACKAGES_PERMISSIONS_TABLE += $$($(2)_PERMISSIONS)$$(sep) endif ifneq ($$($(2)_DEVICES),) PACKAGES_DEVICES_TABLE += $$($(2)_DEVICES)$$(sep) endif ifneq ($$($(2)_USERS),) PACKAGES_USERS += $$($(2)_USERS)$$(sep) endif TARGET_FINALIZE_HOOKS += $$($(2)_TARGET_FINALIZE_HOOKS) ROOTFS_PRE_CMD_HOOKS += $$($(2)_ROOTFS_PRE_CMD_HOOKS) endif # $(2)_KCONFIG_VAR endef # inner-generic-package ################################################################################ # generic-package -- the target generator macro for generic packages ################################################################################ # In the case of target packages, keep the package name "pkg" generic-package = $(call inner-generic-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) # In the case of host packages, turn the package name "pkg" into "host-pkg" host-generic-package = $(call inner-generic-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host) # :mode=makefile: ================================================ FILE: package/pkg-golang.mk ================================================ ################################################################################ # Golang package infrastructure # # This file implements an infrastructure that eases development of package .mk # files for Go packages. It should be used for all packages that are written in # go. # # See the Buildroot documentation for details on the usage of this # infrastructure # # # In terms of implementation, this golang infrastructure requires the .mk file # to only specify metadata information about the package: name, version, # download URL, etc. # # We still allow the package .mk file to override what the different steps are # doing, if needed. For example, if _BUILD_CMDS is already defined, it is # used as the list of commands to perform to build the package, instead of the # default golang behavior. The package can also define some post operation # hooks. # ################################################################################ GO_BIN = $(HOST_DIR)/bin/go ################################################################################ # inner-golang-package -- defines how the configuration, compilation and # installation of a Go package should be done, implements a few hooks to tune # the build process for Go specificities and calls the generic package # infrastructure to generate the necessary make targets # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix for host # packages # argument 3 is the uppercase package name, without the HOST_ prefix for host # packages # argument 4 is the type (target or host) # ################################################################################ define inner-golang-package $(2)_BUILD_OPTS += \ -ldflags "$$($(2)_LDFLAGS)" \ -tags "$$($(2)_TAGS)" \ -trimpath \ -p $(PARALLEL_JOBS) # Target packages need the Go compiler on the host. $(2)_DEPENDENCIES += host-go $(2)_BUILD_TARGETS ?= . # If the build target is just ".", then we assume the binary to be # produced is named after the package. If however, a build target has # been specified, we assume that the binaries to be produced are named # after each build target building them (below in _BUILD_CMDS). ifeq ($$($(2)_BUILD_TARGETS),.) $(2)_BIN_NAME ?= $(1) endif $(2)_INSTALL_BINS ?= $(1) # Source files in Go usually use an import path resolved around # domain/vendor/software. We infer domain/vendor/software from the upstream URL # of the project. $(2)_SRC_DOMAIN = $$(call domain,$$($(2)_SITE)) $(2)_SRC_VENDOR = $$(word 1,$$(subst /, ,$$(call notdomain,$$($(2)_SITE)))) $(2)_SRC_SOFTWARE = $$(word 2,$$(subst /, ,$$(call notdomain,$$($(2)_SITE)))) # $(2)_GOMOD is the root Go module path for the project, inferred if not set. # If the go.mod file does not exist, one is written with this root path. $(2)_GOMOD ?= $$($(2)_SRC_DOMAIN)/$$($(2)_SRC_VENDOR)/$$($(2)_SRC_SOFTWARE) # Generate a go.mod file if it doesn't exist. Note: Go is configured # to use the "vendor" dir and not make network calls. define $(2)_GEN_GOMOD if [ ! -f $$(@D)/go.mod ]; then \ printf "module $$($(2)_GOMOD)\n" > $$(@D)/go.mod; \ fi endef $(2)_POST_PATCH_HOOKS += $(2)_GEN_GOMOD # Build step. Only define it if not already defined by the package .mk # file. ifndef $(2)_BUILD_CMDS ifeq ($(4),target) ifeq ($(BR2_STATIC_LIBS),y) $(2)_LDFLAGS += -extldflags '-static' endif # Build package for target define $(2)_BUILD_CMDS $$(foreach d,$$($(2)_BUILD_TARGETS),\ cd $$(@D); \ $$(HOST_GO_TARGET_ENV) \ $$($(2)_GO_ENV) \ $$(GO_BIN) build -v $$($(2)_BUILD_OPTS) \ -o $$(@D)/bin/$$(or $$($(2)_BIN_NAME),$$(notdir $$(d))) \ $$($(2)_GOMOD)/$$(d) ) endef else # Build package for host define $(2)_BUILD_CMDS $$(foreach d,$$($(2)_BUILD_TARGETS),\ cd $$(@D); \ $$(HOST_GO_HOST_ENV) \ $$($(2)_GO_ENV) \ $$(GO_BIN) build -v $$($(2)_BUILD_OPTS) \ -o $$(@D)/bin/$$(or $$($(2)_BIN_NAME),$$(notdir $$(d))) \ $$($(2)_GOMOD)/$$(d) ) endef endif endif # Target installation step. Only define it if not already defined by the # package .mk file. ifndef $(2)_INSTALL_TARGET_CMDS define $(2)_INSTALL_TARGET_CMDS $$(foreach d,$$($(2)_INSTALL_BINS),\ $(INSTALL) -D -m 0755 $$(@D)/bin/$$(d) $$(TARGET_DIR)/usr/bin/$$(d) ) endef endif # Host installation step ifndef $(2)_INSTALL_CMDS define $(2)_INSTALL_CMDS $$(foreach d,$$($(2)_INSTALL_BINS),\ $(INSTALL) -D -m 0755 $$(@D)/bin/$$(d) $$(HOST_DIR)/bin/$$(d) ) endef endif # Call the generic package infrastructure to generate the necessary make # targets $(call inner-generic-package,$(1),$(2),$(3),$(4)) endef # inner-golang-package ################################################################################ # golang-package -- the target generator macro for Go packages ################################################################################ golang-package = $(call inner-golang-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) host-golang-package = $(call inner-golang-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host) ================================================ FILE: package/pkg-kconfig.mk ================================================ ################################################################################ # Kconfig package infrastructure # # This file implements an infrastructure that eases development of # package .mk files for packages that use kconfig for configuration files. # It is based on the generic-package infrastructure, and inherits all of its # features. # # See the Buildroot documentation for details on the usage of this # infrastructure. # ################################################################################ # Macro to update back the custom (def)config file # Must only be called if $(PKG)_KCONFIG_FILE is set and $(PKG)_KCONFIG_DEFCONFIG) # is not set. # $(1): file to copy from define kconfig-package-update-config @$(if $($(PKG)_KCONFIG_FRAGMENT_FILES), \ echo "Unable to perform $(@) when fragment files are set"; exit 1) $(Q)if [ -d $($(PKG)_KCONFIG_FILE) ]; then \ echo "Unable to perform $(@) when $($(PKG)_KCONFIG_FILE) is a directory"; \ exit 1; \ fi $(Q)mkdir -p $(dir $($(PKG)_KCONFIG_FILE)) cp -f $($(PKG)_DIR)/$(1) $($(PKG)_KCONFIG_FILE) $(Q)touch --reference $($(PKG)_DIR)/$($(PKG)_KCONFIG_STAMP_DOTCONFIG) $($(PKG)_KCONFIG_FILE) endef PKG_KCONFIG_COMMON_OPTS = \ HOSTCC="$(HOSTCC_NOCCACHE)" # Macro to save the defconfig file # $(1): the name of the package in upper-case letters define kconfig-package-savedefconfig $($(1)_MAKE_ENV) $($(1)_MAKE) -C $($(1)_DIR) \ $(PKG_KCONFIG_COMMON_OPTS) $($(1)_KCONFIG_OPTS) savedefconfig endef # 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. # $(1): the name of the package in upper-case letters define kconfig-package-regen-dot-config $(if $(filter olddefconfig,$($(1)_KCONFIG_RULES)), $(Q)$($(1)_KCONFIG_MAKE) olddefconfig, $(if $(filter oldnoconfig,$($(1)_KCONFIG_RULES)), $(Q)$($(1)_KCONFIG_MAKE) oldnoconfig, $(Q)(yes "" | $($(1)_KCONFIG_MAKE) oldconfig))) endef # Macro to create a .config file where all given fragments are merged into. # $(1): the name of the package in upper-case letters # $(2): name of the .config file # $(3): fragment files to merge define kconfig-package-merge-config $(Q)$(if $($(1)_KCONFIG_DEFCONFIG),\ $($(1)_KCONFIG_MAKE) $($(1)_KCONFIG_DEFCONFIG),\ $(INSTALL) -m 0644 -D $($(1)_KCONFIG_FILE) $(2)) $(Q)support/kconfig/merge_config.sh -m -O $(dir $(2)) $(2) $(3) $(call kconfig-package-regen-dot-config,$(1)) endef ################################################################################ # inner-kconfig-package -- generates the make targets needed to support a # kconfig package # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages # argument 3 is the uppercase package name, without the HOST_ prefix # for host packages # argument 4 is the type (target or host) ################################################################################ define inner-kconfig-package # Default values $(2)_MAKE ?= $$(MAKE) $(2)_KCONFIG_EDITORS ?= menuconfig $(2)_KCONFIG_OPTS ?= $(2)_KCONFIG_FIXUP_CMDS ?= $(2)_KCONFIG_FRAGMENT_FILES ?= $(2)_KCONFIG_DOTCONFIG ?= .config $(2)_KCONFIG_SUPPORTS_DEFCONFIG ?= YES # Register the kconfig dependencies as regular dependencies, so that # they are also accounted for in the generated graphs. $(2)_DEPENDENCIES += $$($(2)_KCONFIG_DEPENDENCIES) # Generate the kconfig-related help: one entry for each editor. # Additionally, if the package is *not* using an in-tree defconfig # name, an entry for updating the package configuration file. ifndef $(2)_HELP_CMDS define $(2)_HELP_CMDS $$(foreach editor, $$($(2)_KCONFIG_EDITORS), \ @printf ' %-22s - Run %s %s\n' $(1)-$$(editor) $(1) $$(editor) ) $$(if $$($(2)_KCONFIG_DEFCONFIG),,\ $$(if $$(filter YES,$$($(2)_KCONFIG_SUPPORTS_DEFCONFIG)),\ @printf ' %-22s - Save the %s configuration as a defconfig file\n' \ $(1)-update-defconfig $(1) @printf ' %-22s to %s\n' '' $$($(2)_KCONFIG_FILE) @printf ' %-22s (or override with %s_KCONFIG_FILE)\n' '' $(2) ) @printf ' %-22s - Save the %s configuration as a full .config file\n' \ $(1)-update-config $(1) @printf ' %-22s to %s\n' '' $$($(2)_KCONFIG_FILE) @printf ' %-22s (or override with %s_KCONFIG_FILE)\n' '' $(2) ) endef endif # Call the generic package infrastructure to generate the necessary # make targets. # Note: this must be done _before_ attempting to use $$($(2)_DIR) in a # dependency expression $(call inner-generic-package,$(1),$(2),$(3),$(4)) # Do not use $(2)_KCONFIG_DOTCONFIG as stamp file, because the package # buildsystem (e.g. linux >= 4.19) may touch it, thus rendering our # timestamps out of date, thus re-trigerring the build of the package. # Instead, use a specific file of our own as timestamp. $(2)_KCONFIG_STAMP_DOTCONFIG = .stamp_dotconfig # The config file as well as the fragments could be in-tree, so before # depending on them the package should be extracted (and patched) first. # # Since those files only have a order-only dependency, make would treat # any missing one as a "force" target: # https://www.gnu.org/software/make/manual/make.html#Force-Targets # and would forcibly any rule that depend on those files, causing a # rebuild of the kernel each time make is called. # # So, we provide a recipe that checks all of those files exist, to # overcome that standard make behaviour. # $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES): | $(1)-patch for f in $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES); do \ if [ ! -f "$$$${f}" ]; then \ printf "Kconfig file or fragment '%s' for '%s' does not exist\n" "$$$${f}" "$(1)"; \ exit 1; \ fi; \ done $(2)_KCONFIG_MAKE = \ $$($(2)_MAKE_ENV) $$($(2)_MAKE) -C $$($(2)_DIR) \ $$(PKG_KCONFIG_COMMON_OPTS) $$($(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 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. $$($(2)_DIR)/$$($(2)_KCONFIG_STAMP_DOTCONFIG): $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES) $$(call prepare-per-package-directory,$$($(2)_KCONFIG_DEPENDENCIES)) $$(call kconfig-package-merge-config,$(2),$$(@D)/$$($(2)_KCONFIG_DOTCONFIG),\ $$($(2)_KCONFIG_FRAGMENT_FILES)) $$(Q)touch $$(@D)/$$($(2)_KCONFIG_STAMP_DOTCONFIG) # 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 # it explicitly. It doesn't hurt to always have it though. $$($(2)_DIR)/$$($(2)_KCONFIG_STAMP_DOTCONFIG): | $(1)-patch # Some packages may need additional tools to be present by the time their # kconfig structure is parsed (e.g. the linux kernel may need to call to # the compiler to test its features). $$($(2)_DIR)/$$($(2)_KCONFIG_STAMP_DOTCONFIG): | $$($(2)_KCONFIG_DEPENDENCIES) # In order to get a usable, consistent configuration, some fixup may be needed. # The exact rules are specified by the package .mk file. define $(2)_FIXUP_DOT_CONFIG $$($(2)_KCONFIG_FIXUP_CMDS) $$(call kconfig-package-regen-dot-config,$(2)) $$(Q)touch $$($(2)_DIR)/.stamp_kconfig_fixup_done endef $$($(2)_DIR)/.stamp_kconfig_fixup_done: PKG=$(2) $$($(2)_DIR)/.stamp_kconfig_fixup_done: $$($(2)_DIR)/$$($(2)_KCONFIG_STAMP_DOTCONFIG) $$($(2)_FIXUP_DOT_CONFIG) # Before running configure, the configuration file should be present and fixed $$($(2)_TARGET_CONFIGURE): $$($(2)_DIR)/.stamp_kconfig_fixup_done # Force olddefconfig again on -reconfigure $(1)-clean-for-reconfigure: $(1)-clean-kconfig-for-reconfigure $(1)-clean-kconfig-for-reconfigure: rm -f $$($(2)_DIR)/$$($(2)_KCONFIG_STAMP_DOTCONFIG) # Only enable the foo-*config targets when the package is actually enabled. # Note: the variable $(2)_KCONFIG_VAR is not related to the kconfig # infrastructure, but defined by pkg-generic.mk. The generic infrastructure is # already called above, so we can effectively use this variable. ifeq ($$($$($(2)_KCONFIG_VAR)),y) ifeq ($$(BR_BUILDING),y) # Either FOO_KCONFIG_FILE or FOO_KCONFIG_DEFCONFIG is required... ifeq ($$(or $$($(2)_KCONFIG_FILE),$$($(2)_KCONFIG_DEFCONFIG)),) $$(error Internal error: no value specified for $(2)_KCONFIG_FILE or $(2)_KCONFIG_DEFCONFIG) endif # ... but not both: ifneq ($$(and $$($(2)_KCONFIG_FILE),$$($(2)_KCONFIG_DEFCONFIG)),) $$(error Internal error: $(2)_KCONFIG_FILE and $(2)_KCONFIG_DEFCONFIG are mutually exclusive but both are defined) endif endif # For the configurators, we do want to use the system-provided host # tools, not the ones we build. This is particularly true for # pkg-config; if we use our pkg-config (from host-pkgconf), then it # would not look for the .pc from the host, but we do need them, # especially to find ncurses, GTK+, Qt (resp. for menuconfig and # 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_ALLOW_SYSTEM_CFLAGS=% PKG_CONFIG_ALLOW_SYSTEM_LIBS=% \ PKG_CONFIG_LIBDIR=%,$$($(2)_MAKE_ENV)) \ PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)" # Configuration editors (menuconfig, ...) # # We need to apply the configuration fixups right after a configuration # editor exits, so that it is possible to save the configuration right # after exiting an editor, and so the user always sees a .config file # that is clean wrt. our requirements. # # Because commands in $(1)_FIXUP_KCONFIG are probably using $(@D), we # need to have a valid @D set. But, because the configurators rules are # not real files and do not contain the path to the package build dir, # @D would be just '.' in this case. So, we use an intermediate rule # with a stamp-like file which path is in the package build dir, so we # end up having a valid @D. # $$(addprefix $(1)-,$$($(2)_KCONFIG_EDITORS)): $(1)-%: $$($(2)_DIR)/.kconfig_editor_% $$($(2)_DIR)/.kconfig_editor_%: PKG=$(2) $$($(2)_DIR)/.kconfig_editor_%: $$($(2)_DIR)/.stamp_kconfig_fixup_done $$($(2)_CONFIGURATOR_MAKE_ENV) $$($(2)_MAKE) -C $$($(2)_DIR) \ $$(PKG_KCONFIG_COMMON_OPTS) $$($(2)_KCONFIG_OPTS) $$(*) rm -f $$($(2)_DIR)/.stamp_{kconfig_fixup_done,configured,built} rm -f $$($(2)_DIR)/.stamp_{target,staging,images}_installed $$($(2)_FIXUP_DOT_CONFIG) # Saving back the configuration # # Ideally, that should directly depend on $$($(2)_DIR)/.stamp_kconfig_fixup_done, # but that breaks the use-case in PR-8156 (from a clean tree): # make menuconfig <- enable kernel, use an in-tree defconfig, save and exit # make linux-menuconfig <- enable/disable whatever option, save and exit # make menuconfig <- change to use a custom defconfig file, set a path, save and exit # make linux-update-config <- should save to the new custom defconfig file # # Because of that use-case, saving the configuration can *not* directly # depend on the stamp file, because it itself depends on the .config, # which in turn depends on the (newly-set an non-existent) custom # defconfig file. # # Instead, we use a PHONY rule that will catch that situation. # $(1)-check-configuration-done: @if [ ! -f $$($(2)_DIR)/.stamp_kconfig_fixup_done ]; then \ echo "$(1) is not yet configured"; \ exit 1; \ fi ifeq ($$($(2)_KCONFIG_SUPPORTS_DEFCONFIG),YES) .PHONY: $(1)-savedefconfig $(1)-savedefconfig: $(1)-check-configuration-done $$(call kconfig-package-savedefconfig,$(2)) endif ifeq ($$($(2)_KCONFIG_DEFCONFIG),) # Target to copy back the configuration to the source configuration file # Even though we could use 'cp --preserve-timestamps' here, the separate # cp and 'touch --reference' is used for symmetry with $(1)-update-defconfig. .PHONY: $(1)-update-config $(1)-update-config: PKG=$(2) $(1)-update-config: $(1)-check-configuration-done $$(call kconfig-package-update-config,$$($(2)_KCONFIG_DOTCONFIG)) ifeq ($$($(2)_KCONFIG_SUPPORTS_DEFCONFIG),YES) # Note: make sure the timestamp of the stored configuration is not newer than # the .config to avoid a useless rebuild. Note that, contrary to # $(1)-update-config, the reference for 'touch' is _not_ the file from which # we copy. .PHONY: $(1)-update-defconfig $(1)-update-defconfig: PKG=$(2) $(1)-update-defconfig: $(1)-savedefconfig $$(call kconfig-package-update-config,defconfig) endif endif # Target to output differences between the configuration obtained via the # defconfig + fragments (if any) and the current configuration. # Note: it preserves the timestamp of the current configuration when moving it # around. $(1)-diff-config: $(1)-check-configuration-done $$(Q)cp -a $$($(2)_DIR)/$$($(2)_KCONFIG_DOTCONFIG) $$($(2)_DIR)/.config.dc.bak $$(call kconfig-package-merge-config,$(2),$$($(2)_DIR)/$$($(2)_KCONFIG_DOTCONFIG),\ $$($(2)_KCONFIG_FRAGMENT_FILES)) $$(Q)utils/diffconfig $$($(2)_DIR)/$$($(2)_KCONFIG_DOTCONFIG) \ $$($(2)_DIR)/.config.dc.bak $$(Q)cp -a $$($(2)_DIR)/.config.dc.bak $$($(2)_DIR)/$$($(2)_KCONFIG_DOTCONFIG) $$(Q)rm -f $$($(2)_DIR)/.config.dc.bak endif # package enabled .PHONY: \ $(1)-diff-config \ $(1)-check-configuration-done \ $$($(2)_DIR)/.kconfig_editor_% \ $$(addprefix $(1)-,$$($(2)_KCONFIG_EDITORS)) endef # inner-kconfig-package ################################################################################ # kconfig-package -- the target generator macro for kconfig packages ################################################################################ kconfig-package = $(call inner-kconfig-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) ================================================ FILE: package/pkg-kernel-module.mk ================================================ ################################################################################ # kernel module infrastructure for building Linux kernel modules # # This file implements an infrastructure that eases development of package # .mk files for out-of-tree Linux kernel modules. It should be used for all # packages that build a Linux kernel module using the kernel's out-of-tree # buildsystem, unless they use a complex custom buildsystem. # # The kernel-module infrastructure requires the packages that use it to also # use another package infrastructure. kernel-module only defines post-build # and post-install hooks. This allows the package to build both kernel # modules and/or user-space components (with any of the other *-package # infra). # # As such, it is to be used in conjunction with another *-package infra, # like so: # # $(eval $(kernel-module)) # $(eval $(generic-package)) # # Note: if the caller needs access to the kernel modules (either after they # are built or after they are installed), it will have to define its own # post-build/install hooks *after* calling kernel-module, but *before* # calling the other *-package infra, like so: # # $(eval $(kernel-module)) # define FOO_MOD_TWEAK # # do something # endef # FOO_POST_BUILD_HOOKS += FOO_MOD_TWEAK # $(eval $(generic-package)) # # Note: this infra does not check that the kernel is enabled; it is expected # to be enforced at the Kconfig level with proper 'depends on'. ################################################################################ ################################################################################ # inner-kernel-module -- generates the make targets needed to support building # a kernel module # # argument 1 is the lowercase package name # argument 2 is the uppercase package name ################################################################################ define inner-kernel-module # If the package is enabled, ensure the kernel will support modules ifeq ($$(BR2_PACKAGE_$(2)),y) LINUX_NEEDS_MODULES = y endif # The kernel must be built first. $(2)_DEPENDENCIES += linux # This is only defined in some infrastructures (e.g. autotools, cmake), # but not in others (e.g. generic). So define it here as well. $(2)_MAKE ?= $$(MAKE) # If not specified, consider the source of the kernel module to be at # the root of the package. $(2)_MODULE_SUBDIRS ?= . # Build the kernel module(s) # Force PWD for those packages that want to use it to find their # includes and other support files (Booo!) define $(2)_KERNEL_MODULES_BUILD @$$(call MESSAGE,"Building kernel module(s)") $$(foreach d,$$($(2)_MODULE_SUBDIRS), \ $$(LINUX_MAKE_ENV) $$($$(PKG)_MAKE) \ -C $$(LINUX_DIR) \ $$(LINUX_MAKE_FLAGS) \ $$($(2)_MODULE_MAKE_OPTS) \ PWD=$$(@D)/$$(d) \ M=$$(@D)/$$(d) \ modules$$(sep)) endef $(2)_POST_BUILD_HOOKS += $(2)_KERNEL_MODULES_BUILD # Install the kernel module(s) # Force PWD for those packages that want to use it to find their # includes and other support files (Booo!) define $(2)_KERNEL_MODULES_INSTALL @$$(call MESSAGE,"Installing kernel module(s)") $$(foreach d,$$($(2)_MODULE_SUBDIRS), \ $$(LINUX_MAKE_ENV) $$($$(PKG)_MAKE) \ -C $$(LINUX_DIR) \ $$(LINUX_MAKE_FLAGS) \ $$($(2)_MODULE_MAKE_OPTS) \ PWD=$$(@D)/$$(d) \ M=$$(@D)/$$(d) \ modules_install$$(sep)) endef $(2)_POST_INSTALL_TARGET_HOOKS += $(2)_KERNEL_MODULES_INSTALL endef ################################################################################ # kernel-module -- the target generator macro for kernel module packages ################################################################################ kernel-module = $(call inner-kernel-module,$(pkgname),$(call UPPERCASE,$(pkgname))) ================================================ FILE: package/pkg-luarocks.mk ================================================ ################################################################################ # LuaRocks package infrastructure # see http://luarocks.org/ # # This file implements an infrastructure that eases development of # package .mk files for LuaRocks packages. # LuaRocks supports various build.type : builtin, make, cmake. # This luarocks infrastructure supports only the builtin mode, # the make & cmake modes could be directly handled by generic & cmake infrastructure. # # See the Buildroot documentation for details on the usage of this # infrastructure # # In terms of implementation, this LuaRocks infrastructure requires # the .mk file to only specify metadata information about the # package: name, version, etc. # ################################################################################ LUAROCKS_RUN_CMD = $(HOST_DIR)/bin/luarocks LUAROCKS_CFLAGS = $(TARGET_CFLAGS) -fPIC HOST_LUAROCKS_CFLAGS = $(HOST_CFLAGS) -fPIC ifeq ($(BR2_PACKAGE_LUA_5_3),y) LUAROCKS_CFLAGS += -DLUA_COMPAT_5_2 HOST_LUAROCKS_CFLAGS += -DLUA_COMPAT_5_2 else ifeq ($(BR2_PACKAGE_LUA_5_4),y) LUAROCKS_CFLAGS += -DLUA_COMPAT_5_3 HOST_LUAROCKS_CFLAGS += -DLUA_COMPAT_5_3 endif ################################################################################ # inner-luarocks-package -- defines how the configuration, compilation and # installation of a LuaRocks package should be done, implements a few hooks to # tune the build process and calls the generic package infrastructure to # generate the necessary make targets # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages # argument 3 is the uppercase package name, without the HOST_ prefix # for host packages # argument 4 is the type (target or host) ################################################################################ define inner-luarocks-package ifndef $(2)_NAME_UPSTREAM ifdef $(3)_NAME_UPSTREAM $(2)_NAME_UPSTREAM = $($(3)_NAME_UPSTREAM) else $(2)_NAME_UPSTREAM ?= $(1) endif endif ifndef $(2)_SUBDIR ifdef $(3)_SUBDIR $(2)_SUBDIR = $($(3)_SUBDIR) else $(2)_SUBDIR ?= $$($(3)_NAME_UPSTREAM)-$$(shell echo "$$($(3)_VERSION)" | sed -e "s/-[0-9]$$$$//") endif endif ifndef $(2)_ROCKSPEC ifdef $(3)_ROCKSPEC $(2)_ROCKSPEC = $($(3)_ROCKSPEC) else $(2)_ROCKSPEC ?= $$(call LOWERCASE,$$($(3)_NAME_UPSTREAM))-$$($(3)_VERSION).rockspec endif endif ifndef $(2)_SOURCE ifdef $(3)_SOURCE $(2)_SOURCE = $($(3)_SOURCE) else $(2)_SOURCE ?= $$(call LOWERCASE,$$($(3)_NAME_UPSTREAM))-$$($(3)_VERSION).src.rock endif endif ifndef $(2)_SITE ifdef $(3)_SITE $(2)_SITE = $($(3)_SITE) else $(2)_SITE ?= $$(call qstrip,$$(BR2_LUAROCKS_MIRROR)) endif endif ifeq ($(4),target) $(2)_DEPENDENCIES += luainterpreter endif # host-luarocks implies host-luainterpreter $(2)_EXTRACT_DEPENDENCIES += host-luarocks # # Extract step. Extract into a temporary dir and move the relevant part to the # source dir. # ifndef $(2)_EXTRACT_CMDS define $(2)_EXTRACT_CMDS mkdir -p $$($(2)_DIR)/luarocks-extract cd $$($(2)_DIR)/luarocks-extract && \ $$(LUAROCKS_RUN_CMD) unpack --force $$($(2)_DL_DIR)/$$($(2)_SOURCE) mv $$($(2)_DIR)/luarocks-extract/*/* $$($(2)_DIR) endef endif # # Build/install step. # ifndef $(2)_INSTALL_TARGET_CMDS define $(2)_INSTALL_TARGET_CMDS cd $$($(2)_SRCDIR) && \ LUAROCKS_CONFIG=$$(LUAROCKS_CONFIG_FILE) \ $$(LUAROCKS_RUN_CMD) make --keep --deps-mode none \ --tree "$$(TARGET_DIR)/usr" \ DEPS_DIR="$$(STAGING_DIR)/usr" \ LUA_INCDIR="$$(STAGING_DIR)/usr/include" \ LUA_LIBDIR="$$(STAGING_DIR)/usr/lib" \ CC=$$(TARGET_CC) \ LD=$$(TARGET_CC) \ CFLAGS="$$(LUAROCKS_CFLAGS)" \ LIBFLAG="-shared $$(TARGET_LDFLAGS)" \ $$($(2)_BUILD_OPTS) $$($(2)_ROCKSPEC) endef endif ifndef $(2)_INSTALL_CMDS define $(2)_INSTALL_CMDS cd $$($(2)_SRCDIR) && \ LUAROCKS_CONFIG=$$(HOST_LUAROCKS_CONFIG_FILE) \ $$(LUAROCKS_RUN_CMD) make --keep --deps-mode none \ DEPS_DIR="$$(HOST_DIR)" \ CFLAGS="$$(HOST_LUAROCKS_CFLAGS)" \ LIBFLAG="-shared $$(HOST_LDFLAGS)" \ $$($(2)_BUILD_OPTS) $$($(2)_ROCKSPEC) endef endif # Call the generic package infrastructure to generate the necessary # make targets $(call inner-generic-package,$(1),$(2),$(3),$(4)) # Upgrade helper $(1)-upgrade: host-luarocks $$(LUAROCKS_RUN_CMD) buildroot $$($(2)_NAME_UPSTREAM) $(1) .PHONY: $(1)-upgrade endef ################################################################################ # luarocks-package -- the target generator macro for LuaRocks packages ################################################################################ luarocks-package = $(call inner-luarocks-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) host-luarocks-package = $(call inner-luarocks-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host) ================================================ FILE: package/pkg-meson.mk ================================================ ################################################################################ # Meson package infrastructure # # This file implements an infrastructure that eases development of # package .mk files for Meson packages. It should be used for all # packages that use Meson as their build system. # # See the Buildroot documentation for details on the usage of this # infrastructure # # In terms of implementation, this Meson infrastructure requires # the .mk file to only specify metadata information about the # package: name, version, download URL, etc. # # We still allow the package .mk file to override what the different # steps are doing, if needed. For example, if _BUILD_CMDS is # already defined, it is used as the list of commands to perform to # build the package, instead of the default Meson behaviour. The # package can also define some post operation hooks. # ################################################################################ # # Pass PYTHONNOUSERSITE environment variable when invoking Meson or Ninja, so # $(HOST_DIR)/bin/python3 will not look for Meson modules in # $HOME/.local/lib/python3.x/site-packages # MESON = PYTHONNOUSERSITE=y $(HOST_DIR)/bin/meson NINJA = PYTHONNOUSERSITE=y $(HOST_DIR)/bin/ninja NINJA_OPTS = $(if $(VERBOSE),-v) -j$(PARALLEL_JOBS) # https://mesonbuild.com/Reference-tables.html#cpu-families ifeq ($(BR2_arcle)$(BR2_arceb),y) PKG_MESON_TARGET_CPU_FAMILY = arc else ifeq ($(BR2_arm)$(BR2_armeb),y) PKG_MESON_TARGET_CPU_FAMILY = arm else ifeq ($(BR2_aarch64)$(BR2_aarch64_be),y) PKG_MESON_TARGET_CPU_FAMILY = aarch64 else ifeq ($(BR2_i386),y) PKG_MESON_TARGET_CPU_FAMILY = x86 else ifeq ($(BR2_m68k),y) PKG_MESON_TARGET_CPU_FAMILY = m68k else ifeq ($(BR2_microblazeel)$(BR2_microblazebe),y) PKG_MESON_TARGET_CPU_FAMILY = microblaze else ifeq ($(BR2_mips)$(BR2_mipsel),y) PKG_MESON_TARGET_CPU_FAMILY = mips else ifeq ($(BR2_mips64)$(BR2_mips64el),y) PKG_MESON_TARGET_CPU_FAMILY = mips64 else ifeq ($(BR2_powerpc),y) PKG_MESON_TARGET_CPU_FAMILY = ppc else ifeq ($(BR2_powerpc64)$(BR2_powerpc64le),y) PKG_MESON_TARGET_CPU_FAMILY = ppc64 else ifeq ($(BR2_riscv),y) PKG_MESON_TARGET_CPU_FAMILY = riscv64 else ifeq ($(BR2_sh4)$(BR2_sh4eb)$(BR2_sh4a)$(BR2_sh4aeb),y) PKG_MESON_TARGET_CPU_FAMILY = sh4 else ifeq ($(BR2_sparc),y) PKG_MESON_TARGET_CPU_FAMILY = sparc else ifeq ($(BR2_sparc64),y) PKG_MESON_TARGET_CPU_FAMILY = sparc64 else ifeq ($(BR2_x86_64),y) PKG_MESON_TARGET_CPU_FAMILY = x86_64 else PKG_MESON_TARGET_CPU_FAMILY = $(ARCH) endif HOST_MESON_TARGET_ENDIAN = $(call qstrip,$(call LOWERCASE,$(BR2_ENDIAN))) HOST_MESON_TARGET_CPU = $(GCC_TARGET_CPU) ################################################################################ # inner-meson-package -- defines how the configuration, compilation and # installation of a Meson package should be done, implements a few hooks to # tune the build process and calls the generic package infrastructure to # generate the necessary make targets # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages # argument 3 is the uppercase package name, without the HOST_ prefix # for host packages # argument 4 is the type (target or host) ################################################################################ define inner-meson-package $(2)_CONF_ENV ?= $(2)_CONF_OPTS ?= $(2)_NINJA_ENV ?= # # Configure step. Only define it if not already defined by the package # .mk file. And take care of the differences between host and target # packages. # ifndef $(2)_CONFIGURE_CMDS ifeq ($(4),target) $(2)_CFLAGS ?= $$(TARGET_CFLAGS) $(2)_LDFLAGS ?= $$(TARGET_LDFLAGS) $(2)_CXXFLAGS ?= $$(TARGET_CXXFLAGS) # Configure package for target # # define $(2)_CONFIGURE_CMDS rm -rf $$($$(PKG)_SRCDIR)/build mkdir -p $$($$(PKG)_SRCDIR)/build sed -e 's%@TARGET_CROSS@%$$(TARGET_CROSS)%g' \ -e 's%@TARGET_ARCH@%$$(HOST_MESON_TARGET_CPU_FAMILY)%g' \ -e 's%@TARGET_CPU@%$$(HOST_MESON_TARGET_CPU)%g' \ -e 's%@TARGET_ENDIAN@%$$(HOST_MESON_TARGET_ENDIAN)%g' \ -e "s%@TARGET_CFLAGS@%$$(call make-sq-comma-list,$$($(2)_CFLAGS))%g" \ -e "s%@TARGET_LDFLAGS@%$$(call make-sq-comma-list,$$($(2)_LDFLAGS))%g" \ -e "s%@TARGET_CXXFLAGS@%$$(call make-sq-comma-list,$$($(2)_CXXFLAGS))%g" \ -e 's%@HOST_DIR@%$$(HOST_DIR)%g' \ -e 's%@STAGING_DIR@%$$(STAGING_DIR)%g' \ -e 's%@STATIC@%$$(if $$(BR2_STATIC_LIBS),true,false)%g' \ -e "/^\[binaries\]$$$$/s:$$$$:$$(foreach x,$$($(2)_MESON_EXTRA_BINARIES),\n$$(x)):" \ -e "/^\[properties\]$$$$/s:$$$$:$$(foreach x,$$($(2)_MESON_EXTRA_PROPERTIES),\n$$(x)):" \ package/meson/cross-compilation.conf.in \ > $$($$(PKG)_SRCDIR)/build/cross-compilation.conf PATH=$$(BR_PATH) \ CC_FOR_BUILD="$$(HOSTCC)" \ CXX_FOR_BUILD="$$(HOSTCXX)" \ $$($$(PKG)_CONF_ENV) \ $$(MESON) \ --prefix=/usr \ --libdir=lib \ --default-library=$(if $(BR2_STATIC_LIBS),static,shared) \ --buildtype=$(if $(BR2_ENABLE_RUNTIME_DEBUG),debug,release) \ --cross-file=$$($$(PKG)_SRCDIR)/build/cross-compilation.conf \ -Db_pie=false \ -Dstrip=false \ -Dbuild.pkg_config_path=$$(HOST_DIR)/lib/pkgconfig \ $$($$(PKG)_CONF_OPTS) \ $$($$(PKG)_SRCDIR) $$($$(PKG)_SRCDIR)/build endef else # Configure package for host define $(2)_CONFIGURE_CMDS rm -rf $$($$(PKG)_SRCDIR)/build mkdir -p $$($$(PKG)_SRCDIR)/build $$(HOST_CONFIGURE_OPTS) \ $$($$(PKG)_CONF_ENV) $$(MESON) \ --prefix=$$(HOST_DIR) \ --libdir=lib \ --sysconfdir=$$(HOST_DIR)/etc \ --localstatedir=$$(HOST_DIR)/var \ --default-library=shared \ --buildtype=release \ -Dstrip=true \ $$($$(PKG)_CONF_OPTS) \ $$($$(PKG)_SRCDIR) $$($$(PKG)_SRCDIR)/build endef endif endif $(2)_DEPENDENCIES += host-meson # # Build step. Only define it if not already defined by the package .mk # file. # ifndef $(2)_BUILD_CMDS ifeq ($(4),target) define $(2)_BUILD_CMDS $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) \ $$(NINJA) $$(NINJA_OPTS) $$($$(PKG)_NINJA_OPTS) -C $$($$(PKG)_SRCDIR)/build endef else define $(2)_BUILD_CMDS $$(HOST_MAKE_ENV) $$($$(PKG)_NINJA_ENV) \ $$(NINJA) $$(NINJA_OPTS) $$($$(PKG)_NINJA_OPTS) -C $$($$(PKG)_SRCDIR)/build endef endif endif # # Host installation step. Only define it if not already defined by the # package .mk file. # ifndef $(2)_INSTALL_CMDS define $(2)_INSTALL_CMDS $$(HOST_MAKE_ENV) $$($$(PKG)_NINJA_ENV) \ $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_SRCDIR)/build install endef endif # # Staging installation step. Only define it if not already defined by # the package .mk file. # ifndef $(2)_INSTALL_STAGING_CMDS define $(2)_INSTALL_STAGING_CMDS $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) DESTDIR=$$(STAGING_DIR) \ $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_SRCDIR)/build install endef endif # # Target installation step. Only define it if not already defined by # the package .mk file. # ifndef $(2)_INSTALL_TARGET_CMDS define $(2)_INSTALL_TARGET_CMDS $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) DESTDIR=$$(TARGET_DIR) \ $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_SRCDIR)/build install endef endif # Call the generic package infrastructure to generate the necessary # make targets $(call inner-generic-package,$(1),$(2),$(3),$(4)) endef ################################################################################ # meson-package -- the target generator macro for Meson packages ################################################################################ meson-package = $(call inner-meson-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) host-meson-package = $(call inner-meson-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host) ################################################################################ # Generation of the Meson compile flags and cross-compilation file ################################################################################ # Generate a Meson cross-compilation.conf suitable for use with the # SDK; also install the file as a template for users to add their # own flags if they need to. define PKG_MESON_INSTALL_CROSS_CONF mkdir -p $(HOST_DIR)/etc/meson sed -e 's%@TARGET_CROSS@%$(TARGET_CROSS)%g' \ -e 's%@TARGET_ARCH@%$(HOST_MESON_TARGET_CPU_FAMILY)%g' \ -e 's%@TARGET_CPU@%$(HOST_MESON_TARGET_CPU)%g' \ -e 's%@TARGET_ENDIAN@%$(HOST_MESON_TARGET_ENDIAN)%g' \ -e "s%@TARGET_CFLAGS@%$(call make-sq-comma-list,$(TARGET_CFLAGS))@PKG_TARGET_CFLAGS@%g" \ -e "s%@TARGET_LDFLAGS@%$(call make-sq-comma-list,$(TARGET_LDFLAGS))@PKG_TARGET_CFLAGS@%g" \ -e "s%@TARGET_CXXFLAGS@%$(call make-sq-comma-list,$(TARGET_CXXFLAGS))@PKG_TARGET_CFLAGS@%g" \ -e 's%@HOST_DIR@%$(HOST_DIR)%g' \ -e 's%@STAGING_DIR@%$(STAGING_DIR)%g' \ -e 's%@STATIC@%$(if $(BR2_STATIC_LIBS),true,false)%g' \ $(HOST_MESON_PKGDIR)/cross-compilation.conf.in \ > $(HOST_DIR)/etc/meson/cross-compilation.conf.in sed -e 's%@PKG_TARGET_CFLAGS@%%g' \ -e 's%@PKG_TARGET_LDFLAGS@%%g' \ -e 's%@PKG_TARGET_CXXFLAGS@%%g' \ $(HOST_DIR)/etc/meson/cross-compilation.conf.in \ > $(HOST_DIR)/etc/meson/cross-compilation.conf endef TOOLCHAIN_TARGET_FINALIZE_HOOKS += PKG_MESON_INSTALL_CROSS_CONF ================================================ FILE: package/pkg-perl.mk ================================================ ################################################################################ # Perl package infrastructure # # This file implements an infrastructure that eases development of # package .mk files for Perl packages. # # See the Buildroot documentation for details on the usage of this # infrastructure # # In terms of implementation, this perl infrastructure requires # the .mk file to only specify metadata information about the # package: name, version, download URL, etc. # # We still allow the package .mk file to override what the different # steps are doing, if needed. For example, if _BUILD_CMDS is # already defined, it is used as the list of commands to perform to # build the package, instead of the default perl behaviour. The # package can also define some post operation hooks. # ################################################################################ PERL_ARCHNAME = $(ARCH)-linux PERL_RUN = PERL5LIB= PERL_USE_UNSAFE_INC=1 $(HOST_DIR)/bin/perl ################################################################################ # inner-perl-package -- defines how the configuration, compilation and # installation of a perl package should be done, implements a # few hooks to tune the build process for perl specifities and # calls the generic package infrastructure to generate the necessary # make targets # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages # argument 3 is the uppercase package name, without the HOST_ prefix # for host packages # argument 4 is the type (target or host) ################################################################################ define inner-perl-package # Target packages need both the perl interpreter on the target (for # runtime) and the perl interpreter on the host (for # compilation). However, host packages only need the perl # interpreter on the host. ifeq ($(4),target) $(2)_DEPENDENCIES += host-perl perl else $(2)_DEPENDENCIES += host-perl endif # From http://perldoc.perl.org/CPAN.html#Config-Variables - prefer_installer # legal values are MB and EUMM: if a module comes # with both a Makefile.PL and a Build.PL, use the # former (EUMM) or the latter (MB); if the module # comes with only one of the two, that one will be # used no matter the setting $(2)_PREFER_INSTALLER ?= MB # # Configure step. Only define it if not already defined by the package # .mk file. And take care of the differences between host and target # packages. # ifndef $(2)_CONFIGURE_CMDS ifeq ($(4),target) # Configure package for target define $(2)_CONFIGURE_CMDS cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] && [ $$($(2)_PREFER_INSTALLER) != "EUMM" ] ; then \ $$($(2)_CONF_ENV) \ PERL_MM_USE_DEFAULT=1 \ $$(PERL_RUN) Build.PL \ --config ar="$$(TARGET_AR)" \ --config full_ar="$$(TARGET_AR)" \ --config cc="$$(TARGET_CC)" \ --config ccflags="$$(TARGET_CFLAGS)" \ --config optimize=" " \ --config ld="$$(TARGET_CC)" \ --config lddlflags="-shared $$(TARGET_LDFLAGS)" \ --config ldflags="$$(TARGET_LDFLAGS)" \ --include_dirs $$(STAGING_DIR)/usr/lib/perl5/$$(PERL_VERSION)/$$(PERL_ARCHNAME)/CORE \ --destdir $$(TARGET_DIR) \ --installdirs vendor \ --install_path lib=/usr/lib/perl5/site_perl/$$(PERL_VERSION) \ --install_path arch=/usr/lib/perl5/site_perl/$$(PERL_VERSION)/$$(PERL_ARCHNAME) \ --install_path bin=/usr/bin \ --install_path script=/usr/bin \ --install_path bindoc=/usr/share/man/man1 \ --install_path libdoc=/usr/share/man/man3 \ $$($(2)_CONF_OPTS); \ else \ $$($(2)_CONF_ENV) \ PERL_MM_USE_DEFAULT=1 \ PERL_AUTOINSTALL=--skipdeps \ $$(PERL_RUN) Makefile.PL \ AR="$$(TARGET_AR)" \ FULL_AR="$$(TARGET_AR)" \ CC="$$(TARGET_CC)" \ CCFLAGS="$$(TARGET_CFLAGS)" \ OPTIMIZE=" " \ LD="$$(TARGET_CC)" \ LDDLFLAGS="-shared $$(TARGET_LDFLAGS)" \ LDFLAGS="$$(TARGET_LDFLAGS)" \ PERL_ARCHLIB=$$(STAGING_DIR)/usr/lib/perl5/$$(PERL_VERSION)/$$(PERL_ARCHNAME) \ DESTDIR=$$(TARGET_DIR) \ INSTALLDIRS=vendor \ INSTALLVENDORLIB=/usr/lib/perl5/site_perl/$$(PERL_VERSION) \ INSTALLVENDORARCH=/usr/lib/perl5/site_perl/$$(PERL_VERSION)/$$(PERL_ARCHNAME) \ INSTALLVENDORBIN=/usr/bin \ INSTALLVENDORSCRIPT=/usr/bin \ INSTALLVENDORMAN1DIR=/usr/share/man/man1 \ INSTALLVENDORMAN3DIR=/usr/share/man/man3 \ $$($(2)_CONF_OPTS); \ fi endef else # Configure package for host define $(2)_CONFIGURE_CMDS cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] && [ $$($(2)_PREFER_INSTALLER) != "EUMM" ] ; then \ $$($(2)_CONF_ENV) \ PERL_MM_USE_DEFAULT=1 \ $$(PERL_RUN) Build.PL \ $$($(2)_CONF_OPTS); \ else \ $$($(2)_CONF_ENV) \ PERL_MM_USE_DEFAULT=1 \ PERL_AUTOINSTALL=--skipdeps \ $$(PERL_RUN) Makefile.PL \ $$($(2)_CONF_OPTS); \ fi endef endif endif # # Build step. Only define it if not already defined by the package .mk # file. And take care of the differences between host and target # packages. # ifndef $(2)_BUILD_CMDS ifeq ($(4),target) # Build package for target define $(2)_BUILD_CMDS cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] && [ $$($(2)_PREFER_INSTALLER) != "EUMM" ] ; then \ $$(PERL_RUN) Build $$($(2)_BUILD_OPTS) build; \ else \ $$(MAKE1) \ FIXIN=: \ $$($(2)_BUILD_OPTS) pure_all; \ fi endef else # Build package for host define $(2)_BUILD_CMDS cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] && [ $$($(2)_PREFER_INSTALLER) != "EUMM" ] ; then \ $$(PERL_RUN) Build $$($(2)_BUILD_OPTS) build; \ else \ $$(MAKE1) $$($(2)_BUILD_OPTS) pure_all; \ fi endef endif endif # # Host installation step. Only define it if not already defined by the # package .mk file. # ifndef $(2)_INSTALL_CMDS define $(2)_INSTALL_CMDS cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] && [ $$($(2)_PREFER_INSTALLER) != "EUMM" ] ; then \ $$(PERL_RUN) Build $$($(2)_INSTALL_TARGET_OPTS) install; \ else \ $$(MAKE1) $$($(2)_INSTALL_TARGET_OPTS) pure_install; \ fi endef endif # # Target installation step. Only define it if not already defined by # the package .mk file. # ifndef $(2)_INSTALL_TARGET_CMDS define $(2)_INSTALL_TARGET_CMDS cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] && [ $$($(2)_PREFER_INSTALLER) != "EUMM" ] ; then \ $$(PERL_RUN) Build $$($(2)_INSTALL_TARGET_OPTS) install; \ else \ $$(MAKE1) $$($(2)_INSTALL_TARGET_OPTS) pure_install; \ fi endef endif # Call the generic package infrastructure to generate the necessary # make targets $(call inner-generic-package,$(1),$(2),$(3),$(4)) # Upgrade helper ifneq ($$($(3)_DISTNAME),) $(1)-upgrade: utils/scancpan -force -$(4) $$($(3)_DISTNAME) .PHONY: $(1)-upgrade endif endef ################################################################################ # perl-package -- the target generator macro for Perl packages ################################################################################ perl-package = $(call inner-perl-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) host-perl-package = $(call inner-perl-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host) ================================================ FILE: package/pkg-python.mk ================================================ ################################################################################ # Python package infrastructure # # This file implements an infrastructure that eases development of # package .mk files for Python packages. It should be used for all # packages that use Python setup.py/setuptools as their build system. # # See the Buildroot documentation for details on the usage of this # infrastructure # # In terms of implementation, this Python infrastructure requires the # .mk file to only specify metadata information about the package: # name, version, download URL, etc. # # We still allow the package .mk file to override what the different # steps are doing, if needed. For example, if _BUILD_CMDS is # already defined, it is used as the list of commands to perform to # build the package, instead of the default Python behaviour. The # package can also define some post operation hooks. # ################################################################################ # basename does not evaluate if a file exists, so we must check to ensure # the _sysconfigdata__linux_*.py file exists. The "|| true" is added to return # an empty string if the file does not exist. PKG_PYTHON_SYSCONFIGDATA_PATH = $(PYTHON3_PATH)/_sysconfigdata__linux_*.py PKG_PYTHON_SYSCONFIGDATA_NAME = `{ [ -e $(PKG_PYTHON_SYSCONFIGDATA_PATH) ] && basename $(PKG_PYTHON_SYSCONFIGDATA_PATH) .py; } || true` # Target distutils-based packages PKG_PYTHON_DISTUTILS_ENV = \ PATH=$(BR_PATH) \ $(TARGET_CONFIGURE_OPTS) \ LDSHARED="$(TARGET_CROSS)gcc -shared" \ PYTHONPATH="$(if $(BR2_PACKAGE_PYTHON3),$(PYTHON3_PATH),$(PYTHON_PATH))" \ PYTHONNOUSERSITE=1 \ _PYTHON_SYSCONFIGDATA_NAME="$(PKG_PYTHON_SYSCONFIGDATA_NAME)" \ _python_sysroot=$(STAGING_DIR) \ _python_prefix=/usr \ _python_exec_prefix=/usr PKG_PYTHON_DISTUTILS_BUILD_OPTS = \ --executable=/usr/bin/python PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS = \ --prefix=/usr \ --root=$(TARGET_DIR) PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS = \ --prefix=/usr \ --root=$(STAGING_DIR) # Host distutils-based packages HOST_PKG_PYTHON_DISTUTILS_ENV = \ PATH=$(BR_PATH) \ PYTHONNOUSERSITE=1 \ $(HOST_CONFIGURE_OPTS) HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS = \ --prefix=$(HOST_DIR) # Target setuptools-based packages PKG_PYTHON_SETUPTOOLS_ENV = \ _PYTHON_SYSCONFIGDATA_NAME="$(PKG_PYTHON_SYSCONFIGDATA_NAME)" \ PATH=$(BR_PATH) \ $(TARGET_CONFIGURE_OPTS) \ PYTHONPATH="$(if $(BR2_PACKAGE_PYTHON3),$(PYTHON3_PATH),$(PYTHON_PATH))" \ PYTHONNOUSERSITE=1 \ _python_sysroot=$(STAGING_DIR) \ _python_prefix=/usr \ _python_exec_prefix=/usr PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS = \ --prefix=/usr \ --executable=/usr/bin/python \ --single-version-externally-managed \ --root=$(TARGET_DIR) PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS = \ --prefix=/usr \ --executable=/usr/bin/python \ --single-version-externally-managed \ --root=$(STAGING_DIR) # Host setuptools-based packages HOST_PKG_PYTHON_SETUPTOOLS_ENV = \ PATH=$(BR_PATH) \ PYTHONNOUSERSITE=1 \ $(HOST_CONFIGURE_OPTS) HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS = \ --prefix=$(HOST_DIR) \ --root=/ \ --single-version-externally-managed ################################################################################ # inner-python-package -- defines how the configuration, compilation # and installation of a Python package should be done, implements a # few hooks to tune the build process and calls the generic package # infrastructure to generate the necessary make targets # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages # argument 3 is the uppercase package name, without the HOST_ prefix # for host packages # argument 4 is the type (target or host) ################################################################################ define inner-python-package $(2)_ENV ?= $(2)_BUILD_OPTS ?= $(2)_INSTALL_OPTS ?= ifndef $(2)_SETUP_TYPE ifdef $(3)_SETUP_TYPE $(2)_SETUP_TYPE = $$($(3)_SETUP_TYPE) else $$(error "$(2)_SETUP_TYPE must be set") endif endif # Distutils ifeq ($$($(2)_SETUP_TYPE),distutils) ifeq ($(4),target) $(2)_BASE_ENV = $$(PKG_PYTHON_DISTUTILS_ENV) $(2)_BASE_BUILD_TGT = build $(2)_BASE_BUILD_OPTS = $$(PKG_PYTHON_DISTUTILS_BUILD_OPTS) $(2)_BASE_INSTALL_TARGET_OPTS = $$(PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS) $(2)_BASE_INSTALL_STAGING_OPTS = $$(PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS) else $(2)_BASE_ENV = $$(HOST_PKG_PYTHON_DISTUTILS_ENV) $(2)_BASE_BUILD_TGT = build $(2)_BASE_BUILD_OPTS = $(2)_BASE_INSTALL_OPTS = $$(HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS) endif # Setuptools else ifeq ($$($(2)_SETUP_TYPE),setuptools) ifeq ($(4),target) $(2)_BASE_ENV = $$(PKG_PYTHON_SETUPTOOLS_ENV) $(2)_BASE_BUILD_TGT = build $(2)_BASE_BUILD_OPTS = $(2)_BASE_INSTALL_TARGET_OPTS = $$(PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS) $(2)_BASE_INSTALL_STAGING_OPTS = $$(PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS) else $(2)_BASE_ENV = $$(HOST_PKG_PYTHON_SETUPTOOLS_ENV) $(2)_BASE_BUILD_TGT = build $(2)_BASE_BUILD_OPTS = $(2)_BASE_INSTALL_OPTS = $$(HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS) endif else $$(error "Invalid $(2)_SETUP_TYPE. Valid options are 'distutils' or 'setuptools'") 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 # interpreter on the host, whose version may be enforced by setting # the *_NEEDS_HOST_PYTHON variable. # # So: # - for target packages, we always depend on the default python interpreter # (the one selected by the config); # - for host packages: # - if *_NEEDS_HOST_PYTHON is not set, then we depend on use the default # interperter; # - otherwise, we depend on the one requested by *_NEEDS_HOST_PYTHON. # ifeq ($(4),target) $(2)_DEPENDENCIES += $$(if $$(BR2_PACKAGE_PYTHON3),host-python3 python3,host-python python) else ifeq ($$($(2)_NEEDS_HOST_PYTHON),) $(2)_DEPENDENCIES += $$(if $$(BR2_PACKAGE_PYTHON3),host-python3,host-python) else ifeq ($$($(2)_NEEDS_HOST_PYTHON),python2) $(2)_DEPENDENCIES += host-python else ifeq ($$($(2)_NEEDS_HOST_PYTHON),python3) $(2)_DEPENDENCIES += host-python3 else $$(error Incorrect value '$$($(2)_NEEDS_HOST_PYTHON)' for $(2)_NEEDS_HOST_PYTHON) endif endif # ($$($(2)_NEEDS_HOST_PYTHON),) endif # ($(4),target) # Setuptools based packages will need setuptools for the host Python # interpreter (both host and target). # # If we have a host package that says "I need Python 3", we install # setuptools for python3. # # If we have a host packge that says "I need Python 2", we install # setuptools for python2. # # If we have a target package, or a host package that doesn't have any # _NEEDS_HOST_PYTHON, and BR2_PACKAGE_PYTHON3 is used, then # Python 3.x is the default Python interpreter, so we install # setuptools for python3. # # In all other cases, we install setuptools for python2. Those other # cases are: a target package or host package with # BR2_PACKAGE_PYTHON=y, or a host-package with neither # BR2_PACKAGE_PYTHON3=y or BR2_PACKAGE_PYTHON=y. ifeq ($$($(2)_SETUP_TYPE),setuptools) ifeq ($(4):$$($(2)_NEEDS_HOST_PYTHON),host:python3) $(2)_DEPENDENCIES += $$(if $$(filter host-python3-setuptools,$(1)),,host-python3-setuptools) else ifeq ($(4):$$($(2)_NEEDS_HOST_PYTHON),host:python2) $(2)_DEPENDENCIES += $$(if $$(filter host-python-setuptools,$(1)),,host-python-setuptools) else ifeq ($$(BR2_PACKAGE_PYTHON3),y) $(2)_DEPENDENCIES += $$(if $$(filter host-python3-setuptools,$(1)),,host-python3-setuptools) else $(2)_DEPENDENCIES += $$(if $$(filter host-python-setuptools,$(1)),,host-python-setuptools) endif endif # SETUP_TYPE # Python interpreter to use for building the package. # # We may want to specify the python interpreter to be used for building a # package, especially for host-packages (target packages must be built using # the same version of the interpreter as the one installed on the target). # # So: # - for target packages, we always use the default python interpreter (which # is the same version as the one built and installed on the target); # - for host packages: # - if *_NEEDS_HOST_PYTHON is not set, then we use use the default # interperter; # - otherwise, we use the one requested by *_NEEDS_HOST_PYTHON. # ifeq ($(4),target) $(2)_PYTHON_INTERPRETER = $$(HOST_DIR)/bin/python else ifeq ($$($(2)_NEEDS_HOST_PYTHON),) $(2)_PYTHON_INTERPRETER = $$(HOST_DIR)/bin/python else $(2)_PYTHON_INTERPRETER = $$(HOST_DIR)/bin/$$($(2)_NEEDS_HOST_PYTHON) endif endif # # Build step. Only define it if not already defined by the package .mk # file. # ifndef $(2)_BUILD_CMDS define $(2)_BUILD_CMDS (cd $$($$(PKG)_BUILDDIR)/; \ $$($$(PKG)_BASE_ENV) $$($$(PKG)_ENV) \ $$($(2)_PYTHON_INTERPRETER) setup.py \ $$($$(PKG)_BASE_BUILD_TGT) \ $$($$(PKG)_BASE_BUILD_OPTS) $$($$(PKG)_BUILD_OPTS)) endef endif # # Host installation step. Only define it if not already defined by the # package .mk file. # ifndef $(2)_INSTALL_CMDS define $(2)_INSTALL_CMDS (cd $$($$(PKG)_BUILDDIR)/; \ $$($$(PKG)_BASE_ENV) $$($$(PKG)_ENV) \ $$($(2)_PYTHON_INTERPRETER) setup.py install \ $$($$(PKG)_BASE_INSTALL_OPTS) $$($$(PKG)_INSTALL_OPTS)) endef endif # # Target installation step. Only define it if not already defined by # the package .mk file. # ifndef $(2)_INSTALL_TARGET_CMDS define $(2)_INSTALL_TARGET_CMDS (cd $$($$(PKG)_BUILDDIR)/; \ $$($$(PKG)_BASE_ENV) $$($$(PKG)_ENV) \ $$($(2)_PYTHON_INTERPRETER) setup.py install --no-compile \ $$($$(PKG)_BASE_INSTALL_TARGET_OPTS) \ $$($$(PKG)_INSTALL_TARGET_OPTS)) endef endif # # Staging installation step. Only define it if not already defined by # the package .mk file. # ifndef $(2)_INSTALL_STAGING_CMDS define $(2)_INSTALL_STAGING_CMDS (cd $$($$(PKG)_BUILDDIR)/; \ $$($$(PKG)_BASE_ENV) $$($$(PKG)_ENV) \ $$($(2)_PYTHON_INTERPRETER) setup.py install \ $$($$(PKG)_BASE_INSTALL_STAGING_OPTS) \ $$($$(PKG)_INSTALL_STAGING_OPTS)) endef endif # Call the generic package infrastructure to generate the necessary # make targets $(call inner-generic-package,$(1),$(2),$(3),$(4)) endef ################################################################################ # python-package -- the target generator macro for Python packages ################################################################################ python-package = $(call inner-python-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) host-python-package = $(call inner-python-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host) ================================================ FILE: package/pkg-qmake.mk ================================================ ################################################################################ # QMake package infrastructure # # This file implements an infrastructure that eases development of package # .mk files for QMake packages. It should be used for all packages that use # Qmake as their build system. # # See the Buildroot documentation for details on the usage of this # infrastructure # # In terms of implementation, this QMake infrastructure requires the .mk file # to only specify metadata information about the package: name, version, # download URL, etc. # # We still allow the package .mk file to override what the different steps # are doing, if needed. For example, if _BUILD_CMDS is already defined, # it is used as the list of commands to perform to build the package, # instead of the default QMake behaviour. The package can also define some # post operation hooks. # ################################################################################ # # Hook to sync Qt headers # define QT_HEADERS_SYNC_HOOK $(Q)cd $($(PKG)_BUILDDIR) && $(HOST_DIR)/bin/syncqt.pl -version $(QT5_VERSION) endef ################################################################################ # inner-qmake-package -- defines how the configuration, compilation and # installation of a qmake package should be done, implements a few hooks # to tune the build process for qmake specifities and calls the generic # package infrastructure to generate the necessary make targets # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages ################################################################################ define inner-qmake-package $(2)_CONF_ENV ?= $(2)_CONF_OPTS ?= $(2)_MAKE_ENV ?= $(2)_MAKE_OPTS ?= $(2)_INSTALL_STAGING_OPTS ?= install $(2)_INSTALL_TARGET_OPTS ?= $$($(2)_INSTALL_STAGING_OPTS) ifneq ($(1),qt5base) $(2)_DEPENDENCIES += qt5base endif ifeq ($$($(2)_SYNC_QT_HEADERS),YES) $(2)_DEPENDENCIES += host-perl $(2)_PRE_CONFIGURE_HOOKS += QT_HEADERS_SYNC_HOOK endif $(2)_POST_PREPARE_HOOKS += QT5_QT_CONF_FIXUP # # Configure step. Only define it if not already defined by the package # .mk file. # ifndef $(2)_CONFIGURE_CMDS define $(2)_CONFIGURE_CMDS cd $$($(2)_BUILDDIR) && \ $$(TARGET_MAKE_ENV) $$($(2)_CONF_ENV) $$(QT5_QMAKE) $$($(2)_CONF_OPTS) endef endif # # Build step. Only define it if not already defined by the package .mk # file. # ifndef $(2)_BUILD_CMDS define $(2)_BUILD_CMDS $$(TARGET_MAKE_ENV) $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_BUILDDIR) $$($(2)_MAKE_OPTS) endef endif # # Staging installation step. Only define it if not already defined by # the package .mk file. # ifndef $(2)_INSTALL_STAGING_CMDS define $(2)_INSTALL_STAGING_CMDS $$(TARGET_MAKE_ENV) $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_BUILDDIR) $$($(2)_INSTALL_STAGING_OPTS) endef endif # # Target installation step. Only define it if not already defined by # the package .mk file. # # Unfortunately we can't use INSTALL_ROOT to directly install to TARGET_DIR # because in a crosscompile setup, the qmake generated install destinations # are prefixed with the hardcoded sysroot (=STAGING_DIR) and hostprefix # (=HOST_DIR). # Instead we set INSTALL_ROOT, which comes before the install path, to a # temporary folder inside the build directory and effectively install to # $(@D)/tmp-target-install/$(STAGING_DIR) and $(@D)/tmp-target-install/$(HOST_DIR). # We subsequently rsync only the files from the temporary staging dir and that # way exclude files for the build host from target. # ifndef $(2)_INSTALL_TARGET_CMDS define $(2)_INSTALL_TARGET_CMDS $$(TARGET_MAKE_ENV) $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_BUILDDIR) INSTALL_ROOT=$$($(2)_BUILDDIR)tmp-target-install $$($(2)_INSTALL_TARGET_OPTS) rsync -arv $$($(2)_BUILDDIR)tmp-target-install$$(STAGING_DIR)/ $$(TARGET_DIR)/ endef endif # Call the generic package infrastructure to generate the necessary # make targets $(call inner-generic-package,$(1),$(2),$(3),$(4)) endef ################################################################################ # qmake-package -- the target generator macro for QMake packages ################################################################################ qmake-package = $(call inner-qmake-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) ================================================ FILE: package/pkg-rebar.mk ================================================ ################################################################################ # rebar package infrastructure for Erlang packages # # This file implements an infrastructure that eases development of # package .mk files for rebar packages. It should be used for all # packages that use rebar as their build system. # # In terms of implementation, this rebar infrastructure requires the # .mk file to only specify metadata information about the package: # name, version, download URL, etc. # # We still allow the package .mk file to override what the different # steps are doing, if needed. For example, if _BUILD_CMDS is # already defined, it is used as the list of commands to perform to # build the package, instead of the default rebar behaviour. The # package can also define some post operation hooks. # ################################################################################ # Directories to store rebar dependencies in. # # These directories actually only contain symbolic links to Erlang # applications in either $(HOST_DIR) or $(STAGING_DIR). One needs # them to avoid rebar complaining about missing dependencies, as this # infrastructure tells rebar to NOT download dependencies during # the build stage. # REBAR_HOST_DEPS_DIR = $(HOST_DIR)/share/rebar/deps REBAR_TARGET_DEPS_DIR = $(STAGING_DIR)/usr/share/rebar/deps # Tell rebar where to find the dependencies # REBAR_HOST_DEPS_ENV = \ ERL_COMPILER_OPTIONS='{i, "$(REBAR_HOST_DEPS_DIR)"}' \ ERL_EI_LIBDIR=$(HOST_DIR)/lib/erlang/lib/erl_interface-$(ERLANG_EI_VSN)/lib REBAR_TARGET_DEPS_ENV = \ ERL_COMPILER_OPTIONS='{i, "$(REBAR_TARGET_DEPS_DIR)"}' \ ERL_EI_LIBDIR=$(STAGING_DIR)/usr/lib/erlang/lib/erl_interface-$(ERLANG_EI_VSN)/lib ################################################################################ # Helper functions ################################################################################ # Install an Erlang application from $(@D). # # i.e., define a recipe that installs the "bin ebin priv $(2)" directories # from $(@D) to $(1)/$($(PKG)_ERLANG_LIBDIR). # # argument 1 should typically be $(HOST_DIR), $(TARGET_DIR), # or $(STAGING_DIR). # argument 2 is typically empty when installing in $(TARGET_DIR) and # "include" when installing in $(HOST_DIR) or # $(STAGING_DIR). # # Note: calling this function must be done with $$(call ...) because it # expands package-related variables. # define install-erlang-directories $(INSTALL) -d $(1)/$($(PKG)_ERLANG_LIBDIR) for dir in bin ebin priv $(2); do \ if test -d $(@D)/$$dir; then \ cp -r $(@D)/$$dir $(1)/$($(PKG)_ERLANG_LIBDIR); \ fi; \ done endef # Setup a symbolic link in rebar's deps_dir to the actual location # where an Erlang application is installed. # # i.e., define a recipe that creates a symbolic link # from $($(PKG)_REBAR_DEPS_DIR)/$($(PKG)_ERLANG_APP) # to $(1)$($(PKG)_ERLANG_LIBDIR). # # For target packages for example, one uses this to setup symbolic # links from $(STAGING_DIR)/usr/share/rebar/deps/ to # $(STAGING_DIR)/usr/lib/erlang/lib/-. This # infrastructure points rebar at the former in order to tell rebar to # NOT download dependencies during the build stage, and instead use # the already available dependencies. # # Therefore, # argument 1 is $(HOST_DIR) (for host packages) or # $(STAGING_DIR) (for target packages). # # argument 2 is HOST (for host packages) or # TARGET (for target packages). # # Note: calling this function must be done with $$(call ...) because it # expands package-related variables. # define install-rebar-deps $(INSTALL) -d $(REBAR_$(2)_DEPS_DIR) ln -f -s $(1)/$($(PKG)_ERLANG_LIBDIR) \ $(REBAR_$(2)_DEPS_DIR)/$($(PKG)_ERLANG_APP) endef # Remove the "deps" statement from a rebar.config file define remove-rebar-config-dependencies $(SED) '/^{deps.*}\.$$/d' -e '/^{deps/,/}\.$$/d' \ $($(PKG)_DIR)/rebar.config endef ################################################################################ # inner-rebar-package -- defines how the configuration, compilation # and installation of a rebar package should be done, implements a few # hooks to tune the build process according to rebar specifities, and # calls the generic package infrastructure to generate the necessary # make targets. # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages # argument 3 is the uppercase package name, without the HOST_ prefix # for host packages # argument 4 is the type (target or host) # ################################################################################ define inner-rebar-package # Extract just the raw package name, lowercase without the leading # erlang- or host- prefix, as this is used by rebar to find the # dependencies a package specifies. # $(2)_ERLANG_APP = $(subst -,_,$(patsubst erlang-%,%,$(patsubst host-%,%,$(1)))) # Path where to store the package's libs, relative to either $(HOST_DIR) # for host packages, or $(STAGING_DIR)/usr for target packages. # $(2)_ERLANG_LIBDIR = \ lib/erlang/lib/$$($$(PKG)_ERLANG_APP)-$$($$(PKG)_VERSION) # If a host package, inherit _USE_BUNDLED_REBAR from the target # package, if not explicitly defined. Otherwise, default to NO. ifndef $(2)_USE_BUNDLED_REBAR ifdef $(3)_USE_BUNDLED_REBAR $(2)_USE_BUNDLED_REBAR = $$($(3)_USE_BUNDLED_REBAR) else $(2)_USE_BUNDLED_REBAR ?= NO endif endif # If a host package, inherit _USE_AUTOCONF from the target # package, if not explicitly defined. Otherwise, default to NO. ifndef $(2)_USE_AUTOCONF ifdef $(3)_USE_AUTOCONF $(2)_USE_AUTOCONF = $$($(3)_USE_AUTOCONF) else $(2)_USE_AUTOCONF ?= NO endif endif # Define the build and install commands # ifeq ($(4),target) # Target packages need the erlang interpreter on the target $(2)_DEPENDENCIES += erlang # Used only if the package uses autotools underneath; otherwise, ignored $(2)_CONF_ENV += $$(REBAR_TARGET_DEPS_ENV) 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) \ $$($$(PKG)_REBAR_ENV) $$($$(PKG)_REBAR) deps_dir=$$(REBAR_TARGET_DEPS_DIR) compile \ ) endef endif # We need to double-$ the 'call' because it wants to expand # package-related variables ifndef $(2)_INSTALL_STAGING_CMDS define $(2)_INSTALL_STAGING_CMDS $$(call install-erlang-directories,$$(STAGING_DIR)/usr,include) $$(call install-rebar-deps,$$(STAGING_DIR)/usr,TARGET) endef endif # We need to double-$ the 'call' because it wants to expand # package-related variables ifndef $(2)_INSTALL_TARGET_CMDS define $(2)_INSTALL_TARGET_CMDS $$(call install-erlang-directories,$$(TARGET_DIR)/usr) endef endif else # !target # Host packages need the erlang interpreter on the host $(2)_DEPENDENCIES += host-erlang # Used only if the package uses autotools underneath; otherwise, ignored $(2)_CONF_ENV += $$(REBAR_HOST_DEPS_ENV) ifndef $(2)_BUILD_CMDS define $(2)_BUILD_CMDS (cd $$(@D); \ CC="$$(HOSTCC)" \ CFLAGS="$$(HOST_CFLAGS)" \ LDFLAGS="$$(HOST_LDFLAGS)" \ $$(REBAR_HOST_DEPS_ENV) \ $$(HOST_MAKE_ENV) \ $$($$(PKG)_REBAR_ENV) $$($$(PKG)_REBAR) deps_dir=$$(REBAR_HOST_DEPS_DIR) compile \ ) endef endif # We need to double-$ the 'call' because it wants to expand # package-related variables ifndef $(2)_INSTALL_CMDS define $(2)_INSTALL_CMDS $$(call install-erlang-directories,$$(HOST_DIR),include) $$(call install-rebar-deps,$$(HOST_DIR),HOST) endef endif endif # !target # Whether to use the generic rebar or the package's bundled rebar # ifeq ($$($(2)_USE_BUNDLED_REBAR),YES) $(2)_REBAR = ./rebar else $(2)_REBAR = rebar $(2)_DEPENDENCIES += host-erlang-rebar endif $(2)_KEEP_DEPENDENCIES ?= NO # Remove dependencies listed in rebar.config unless the package says # otherwise ifeq ($$($(2)_KEEP_DEPENDENCIES),NO) $(2)_POST_PATCH_HOOKS += remove-rebar-config-dependencies endif # The package sub-infra to use # ifeq ($$($(2)_USE_AUTOCONF),YES) $(call inner-autotools-package,$(1),$(2),$(3),$(4)) else $(call inner-generic-package,$(1),$(2),$(3),$(4)) endif endef # inner-rebar-package rebar-package = $(call inner-rebar-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) host-rebar-package = $(call inner-rebar-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host) ================================================ FILE: package/pkg-utils.mk ================================================ ################################################################################ # # This file contains various utility functions used by the package # infrastructure, or by the packages themselves. # ################################################################################ # # Manipulation of .config files based on the Kconfig # infrastructure. Used by the BusyBox package, the Linux kernel # package, and more. # # KCONFIG_DOT_CONFIG ([file]) # Returns the path to the .config file that should be used, which will # be $(1) if provided, or the current package .config file otherwise. KCONFIG_DOT_CONFIG = $(strip \ $(if $(strip $(1)), $(1), \ $($(PKG)_BUILDDIR)/$($(PKG)_KCONFIG_DOTCONFIG) \ ) \ ) # KCONFIG_MUNGE_DOT_CONFIG (option, newline [, file]) define KCONFIG_MUNGE_DOT_CONFIG $(SED) "/\\<$(strip $(1))\\>/d" $(call KCONFIG_DOT_CONFIG,$(3)) echo '$(strip $(2))' >> $(call KCONFIG_DOT_CONFIG,$(3)) endef # KCONFIG_ENABLE_OPT (option [, file]) KCONFIG_ENABLE_OPT = $(call KCONFIG_MUNGE_DOT_CONFIG, $(1), $(1)=y, $(2)) # KCONFIG_SET_OPT (option, value [, file]) KCONFIG_SET_OPT = $(call KCONFIG_MUNGE_DOT_CONFIG, $(1), $(1)=$(2), $(3)) # KCONFIG_DISABLE_OPT (option [, file]) KCONFIG_DISABLE_OPT = $(call KCONFIG_MUNGE_DOT_CONFIG, $(1), $(SHARP_SIGN) $(1) is not set, $(2)) # Helper functions to determine the name of a package and its # directory from its makefile directory, using the $(MAKEFILE_LIST) # variable provided by make. This is used by the *-package macros to # automagically find where the package is located. pkgdir = $(dir $(lastword $(MAKEFILE_LIST))) pkgname = $(lastword $(subst /, ,$(pkgdir))) # Helper to build the extension for a package archive, based on various # conditions. # $(1): upper-case package name pkg_source_ext = $(BR_FMT_VERSION_$($(1)_SITE_METHOD)).tar.gz # Define extractors for different archive suffixes INFLATE.bz2 = $(BZCAT) INFLATE.gz = $(ZCAT) INFLATE.lz = $(LZCAT) INFLATE.lzma = $(XZCAT) INFLATE.tbz = $(BZCAT) INFLATE.tbz2 = $(BZCAT) INFLATE.tgz = $(ZCAT) INFLATE.xz = $(XZCAT) INFLATE.tar = cat # suitable-extractor(filename): returns extractor based on suffix suitable-extractor = $(INFLATE$(suffix $(1))) EXTRACTOR_PKG_DEPENDENCY.lzma = $(BR2_XZCAT_HOST_DEPENDENCY) EXTRACTOR_PKG_DEPENDENCY.xz = $(BR2_XZCAT_HOST_DEPENDENCY) EXTRACTOR_PKG_DEPENDENCY.lz = $(BR2_LZIP_HOST_DEPENDENCY) # extractor-pkg-dependency(filename): returns a Buildroot package # dependency needed to extract file based on suffix extractor-pkg-dependency = $(EXTRACTOR_PKG_DEPENDENCY$(suffix $(1))) # extractor-system-dependency(filename): returns the name of the tool # needed to extract 'filename', and is meant to be used with # DL_TOOLS_DEPENDENCIES, in order to check that the necesary tool is # provided by the system Buildroot runs on. # # $(firstword) is used here because the extractor can have arguments, # like ZCAT="gzip -d -c", and to check for the dependency we only want # 'gzip'. extractor-system-dependency = $(if $(EXTRACTOR_PKG_DEPENDENCY$(suffix $(1))),,\ $(firstword $(INFLATE$(suffix $(1))))) # check-deprecated-variable -- throw an error on deprecated variables # example: # $(eval $(call check-deprecated-variable,FOO_MAKE_OPT,FOO_MAKE_OPTS)) define check-deprecated-variable # (deprecated var, new var) ifneq ($$(origin $(1)),undefined) $$(error Package error: use $(2) instead of $(1). Please fix your .mk file) endif endef # $(1): YES or NO define yesno-to-bool $(subst NO,false,$(subst YES,true,$(1))) endef # json-info -- return package or filesystem metadata formatted as an entry # of a JSON dictionnary # $(1): upper-case package or filesystem name define json-info "$($(1)_NAME)": { "type": "$($(1)_TYPE)", $(if $(filter rootfs,$($(1)_TYPE)), \ $(call _json-info-fs,$(1)), \ $(call _json-info-pkg,$(1)), \ ) } endef # _json-info-pkg, _json-info-pkg-details, _json-info-fs: private helpers # for json-info, above define _json-info-pkg "name": "$($(1)_RAWNAME)", $(if $($(1)_IS_VIRTUAL), \ "virtual": true$(comma), "virtual": false$(comma) $(call _json-info-pkg-details,$(1)) \ ) "build_dir": "$(patsubst $(CONFIG_DIR)/%,%,$($(1)_BUILDDIR))", $(if $(filter target,$($(1)_TYPE)), \ "install_target": $(call yesno-to-bool,$($(1)_INSTALL_TARGET))$(comma) \ "install_staging": $(call yesno-to-bool,$($(1)_INSTALL_STAGING))$(comma) \ "install_images": $(call yesno-to-bool,$($(1)_INSTALL_IMAGES))$(comma) \ ) "dependencies": [ $(call make-comma-list,$(sort $($(1)_FINAL_ALL_DEPENDENCIES))) ], "reverse_dependencies": [ $(call make-comma-list,$(sort $($(1)_RDEPENDENCIES))) ] $(if $($(1)_CPE_ID_VALID), \ $(comma) "cpe-id": "$($(1)_CPE_ID)" \ ) $(if $($(1)_IGNORE_CVES), $(comma) "ignore_cves": [ $(call make-comma-list,$(sort $($(1)_IGNORE_CVES))) ] ) endef define _json-info-pkg-details "version": "$($(1)_DL_VERSION)", "licenses": "$($(1)_LICENSE)", "dl_dir": "$($(1)_DL_SUBDIR)", "downloads": [ $(foreach dl,$(sort $($(1)_ALL_DOWNLOADS)), { "source": "$(notdir $(dl))", "uris": [ $(call make-comma-list, $(subst \|,|, $(call DOWNLOAD_URIS,$(dl),$(1)) ) ) ] }, ) ], endef define _json-info-fs "image_name": $(if $($(1)_FINAL_IMAGE_NAME), \ "$($(1)_FINAL_IMAGE_NAME)", \ null \ ), "dependencies": [ $(call make-comma-list,$(sort $($(1)_DEPENDENCIES))) ] endef # clean-json -- cleanup pseudo-json into clean json: # - remove commas before closing ] and } # - minify with $(strip) clean-json = $(strip \ $(subst $(comma)},}, $(subst $(comma)$(space)},$(space)}, \ $(subst $(comma)],], $(subst $(comma)$(space)],$(space)], \ $(subst \,\\, \ $(strip $(1)) \ ))))) \ ) ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y) # rsync the contents of per-package directories # $1: space-separated list of packages to rsync from # $2: 'host' or 'target' # $3: destination directory define per-package-rsync mkdir -p $(3) $(foreach pkg,$(1),\ rsync -a --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \ $(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \ $(3)$(sep)) endef # prepares the per-package HOST_DIR and TARGET_DIR of the current # package, by rsync the host and target directories of the # dependencies of this package. The list of dependencies is passed as # argument, so that this function can be used to prepare with # different set of dependencies (download, extract, configure, etc.) # # $1: space-separated list of packages to rsync from define prepare-per-package-directory $(call per-package-rsync,$(1),host,$(HOST_DIR)) $(call per-package-rsync,$(1),target,$(TARGET_DIR)) endef endif # # legal-info helper functions # LEGAL_INFO_SEPARATOR = "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::" define legal-warning # text echo "WARNING: $(1)" >>$(LEGAL_WARNINGS) endef define legal-warning-pkg # pkg, text echo "WARNING: $(1): $(2)" >>$(LEGAL_WARNINGS) endef define legal-warning-nosource # pkg, {local|override} $(call legal-warning-pkg,$(1),sources not saved ($(2) packages not handled)) endef define legal-manifest # {HOST|TARGET}, pkg, version, license, license-files, source, url, dependencies echo '"$(2)","$(3)","$(4)","$(5)","$(6)","$(7)","$(8)"' >>$(LEGAL_MANIFEST_CSV_$(1)) endef define legal-license-file # pkgname, pkgname-pkgver, pkg-hashfile, filename, file-fullpath, {HOST|TARGET} mkdir -p $(LICENSE_FILES_DIR_$(6))/$(2)/$(dir $(4)) && \ { \ support/download/check-hash $(3) $(5) $(4); \ case $${?} in (0|3) ;; (*) exit 1;; esac; \ } && \ cp $(5) $(LICENSE_FILES_DIR_$(6))/$(2)/$(4) endef non-virtual-deps = $(foreach p,$(1),$(if $($(call UPPERCASE,$(p))_IS_VIRTUAL),,$(p))) # Returns the list of recursive dependencies and their licensing terms # for the package specified in parameter (in lowercase). If that # package is a target package, remove host packages from the list. legal-deps = \ $(foreach p,\ $(filter-out $(if $(1:host-%=),host-%),\ $(call non-virtual-deps,\ $($(call UPPERCASE,$(1))_FINAL_RECURSIVE_DEPENDENCIES))),$(p) [$($(call UPPERCASE,$(p))_LICENSE)]) ================================================ FILE: package/pkg-virtual.mk ================================================ ################################################################################ # Virtual package infrastructure # # This file implements an infrastructure that eases development of # package .mk files for virtual packages. It should be used for all # virtual packages. # # See the Buildroot documentation for details on the usage of this # infrastructure # # In terms of implementation, this virtual infrastructure requires # the .mk file to only call the 'virtual-package' macro. # ################################################################################ ################################################################################ # inner-virtual-package -- defines the dependency rules of the virtual # package against its provider. # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages # argument 3 is the uppercase package name, without the HOST_ prefix # for host packages # argument 4 is the type (target or host) ################################################################################ # Note: putting this comment here rather than in the define block, otherwise # make would try to expand the $(error ...) in the comment, which is not # really what we want. # We need to use second-expansion for the $(error ...) call, below, # so it is not evaluated now, but as part of the generated make code. define inner-virtual-package # Ensure the virtual package has an implementation defined. ifeq ($$(BR2_PACKAGE_HAS_$(2)),y) ifeq ($$(call qstrip,$$(BR2_PACKAGE_PROVIDES_$(2))),) $$(error No implementation selected for virtual package $(1). Configuration error) endif endif # explicitly set these so we do not get confused by environment # variables with the same names. $(2)_VERSION = $(2)_SOURCE = $(2)_IS_VIRTUAL = YES # 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 ifeq ($$(call qstrip,$$(BR2_PACKAGE_PROVIDES_$(2))),) # Inherit from target package BR2_PACKAGE_PROVIDES_FOO $(2)_DEPENDENCIES += host-$$(call qstrip,$$(BR2_PACKAGE_PROVIDES_$(3))) else # BR2_PACKAGE_PROVIDES_HOST_ is explicitly defined $(2)_DEPENDENCIES += $$(call qstrip,$$(BR2_PACKAGE_PROVIDES_$(2))) endif endif # Call the generic package infrastructure to generate the necessary # make targets $(call inner-generic-package,$(1),$(2),$(3),$(4)) endef ################################################################################ # virtual-package -- the target generator macro for virtual packages ################################################################################ virtual-package = $(call inner-virtual-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) host-virtual-package = $(call inner-virtual-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host) ================================================ FILE: package/pkg-waf.mk ================================================ ################################################################################ # WAF package infrastructure # # This file implements an infrastructure that eases development of package # .mk files for WAF packages. It should be used for all packages that use # WAF as their build system. # # See the Buildroot documentation for details on the usage of this # infrastructure # # In terms of implementation, this WAF infrastructure requires the .mk file # to only specify metadata information about the package: name, version, # download URL, etc. # # We still allow the package .mk file to override what the different steps # are doing, if needed. For example, if _BUILD_CMDS is already defined, # it is used as the list of commands to perform to build the package, # instead of the default WAF behaviour. The package can also define some # post operation hooks. # ################################################################################ ################################################################################ # inner-waf-package -- defines how the configuration, compilation and # installation of a waf package should be done, implements a few hooks # to tune the build process for waf specifities and calls the generic # package infrastructure to generate the necessary make targets # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages # argument 3 is the uppercase package name, without the HOST_ prefix # for host packages # argument 4 is the type (target or host) ################################################################################ define inner-waf-package # We need host-python3 to run waf $(2)_DEPENDENCIES += host-python3 $(2)_NEEDS_EXTERNAL_WAF ?= NO # If the package does not have its own waf, use our own. ifeq ($$($(2)_NEEDS_EXTERNAL_WAF),YES) $(2)_DEPENDENCIES += host-waf $(2)_WAF = $$(HOST_DIR)/bin/waf else $(2)_WAF ?= ./waf endif $(2)_BUILD_OPTS ?= $(2)_INSTALL_STAGING_OPTS ?= $(2)_INSTALL_TARGET_OPTS ?= $(2)_WAF_OPTS ?= # # Configure step. Only define it if not already defined by the package # .mk file. # ifndef $(2)_CONFIGURE_CMDS define $(2)_CONFIGURE_CMDS cd $$($$(PKG)_SRCDIR) && \ $$(TARGET_CONFIGURE_OPTS) \ $$($(2)_CONF_ENV) \ $$(HOST_DIR)/bin/python3 $$($(2)_WAF) configure \ --prefix=/usr \ --libdir=/usr/lib \ $$($(2)_CONF_OPTS) \ $$($(2)_WAF_OPTS) endef endif # # Build step. Only define it if not already defined by the package .mk # file. # ifndef $(2)_BUILD_CMDS define $(2)_BUILD_CMDS cd $$($$(PKG)_SRCDIR) && \ $$(TARGET_MAKE_ENV) $$(HOST_DIR)/bin/python3 $$($(2)_WAF) \ build -j $$(PARALLEL_JOBS) $$($(2)_BUILD_OPTS) \ $$($(2)_WAF_OPTS) endef endif # # Staging installation step. Only define it if not already defined by # the package .mk file. # ifndef $(2)_INSTALL_STAGING_CMDS define $(2)_INSTALL_STAGING_CMDS cd $$($$(PKG)_SRCDIR) && \ $$(TARGET_MAKE_ENV) $$(HOST_DIR)/bin/python3 $$($(2)_WAF) \ install --destdir=$$(STAGING_DIR) \ $$($(2)_INSTALL_STAGING_OPTS) \ $$($(2)_WAF_OPTS) endef endif # # Target installation step. Only define it if not already defined by # the package .mk file. # ifndef $(2)_INSTALL_TARGET_CMDS define $(2)_INSTALL_TARGET_CMDS cd $$($$(PKG)_SRCDIR) && \ $$(TARGET_MAKE_ENV) $$(HOST_DIR)/bin/python3 $$($(2)_WAF) \ install --destdir=$$(TARGET_DIR) \ $$($(2)_INSTALL_TARGET_OPTS) \ $$($(2)_WAF_OPTS) endef endif # Call the generic package infrastructure to generate the necessary # make targets $(call inner-generic-package,$(1),$(2),$(3),$(4)) endef ################################################################################ # waf-package -- the target generator macro for WAF packages ################################################################################ waf-package = $(call inner-waf-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) ================================================ FILE: package/pkgconf/0001-Only-prefix-with-the-sysroot-a-subset-of-variables.patch ================================================ From 267a57022699453e8d8f517519df25ac6bf6ac4e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 16 Dec 2018 11:52:18 +0100 Subject: [PATCH] Only prefix with the sysroot a subset of variables The standard logic of pkg-config is to prefix all absolute paths by the sysroot defined in PKG_CONFIG_SYSROOT_DIR. However, while some paths (like includedir, libdir, and paths used in -L and -I options) indeed need to be prefixed by the sysroot, it is not necessarily the case for paths that are used on the target. If they get prefixed by the sysroot, the runtime path on the target is incorrect. Unfortunately, pkg-config doesn't have a sense of which path needs to be prefixed by the sysroot, and which path should not be prefixed by the sysroot. So, let's simply have a whitelist of paths that should be prefixed: g_ir_scanner, g_ir_compiler, g_ir_generate, includedir, libdir, mapdir, pkgdatadir and sdkdir. This list of variables was collected over years of Buildroot development. All other paths are not prefixed by the sysroot. Signed-off-by: Thomas Petazzoni [Updated to include gobject-introspection paths] Signed-off-by: Adam Duskett --- libpkgconf/tuple.c | 60 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 18 deletions(-) diff --git a/libpkgconf/tuple.c b/libpkgconf/tuple.c index 8523709..7cd2fff 100644 --- a/libpkgconf/tuple.c +++ b/libpkgconf/tuple.c @@ -161,6 +161,21 @@ dequote(const char *value) return buf; } +static char * +pkgconf_tuple_parse_sysroot(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value, bool add_sysroot); + +const char *sysrooted_keys[] = { + "g_ir_scanner", + "g_ir_compiler", + "g_ir_generate", + "includedir", + "libdir", + "mapdir", + "pkgdatadir", + "sdkdir", + NULL, +}; + /* * !doc * @@ -181,6 +193,8 @@ pkgconf_tuple_add(const pkgconf_client_t *client, pkgconf_list_t *list, const ch { char *dequote_value; pkgconf_tuple_t *tuple = calloc(sizeof(pkgconf_tuple_t), 1); + bool add_sysroot = false; + int i; pkgconf_tuple_find_delete(list, key); @@ -188,9 +202,13 @@ pkgconf_tuple_add(const pkgconf_client_t *client, pkgconf_list_t *list, const ch PKGCONF_TRACE(client, "adding tuple to @%p: %s => %s (parsed? %d)", list, key, dequote_value, parse); + for (i = 0; sysrooted_keys[i] != NULL; i++) + if (!strcmp(key, sysrooted_keys[i])) + add_sysroot = true; + tuple->key = strdup(key); if (parse) - tuple->value = pkgconf_tuple_parse(client, list, dequote_value); + tuple->value = pkgconf_tuple_parse_sysroot(client, list, dequote_value, add_sysroot); else tuple->value = strdup(dequote_value); @@ -234,27 +252,14 @@ pkgconf_tuple_find(const pkgconf_client_t *client, pkgconf_list_t *list, const c return NULL; } -/* - * !doc - * - * .. c:function:: char *pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value) - * - * Parse an expression for variable substitution. - * - * :param pkgconf_client_t* client: The pkgconf client object to access. - * :param pkgconf_list_t* list: The variable list to search for variables (along side the global variable list). - * :param char* value: The ``key=value`` string to parse. - * :return: the variable data with any variables substituted - * :rtype: char * - */ -char * -pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value) +static char * +pkgconf_tuple_parse_sysroot(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value, bool add_sysroot) { char buf[PKGCONF_BUFSIZE]; const char *ptr; char *bptr = buf; - if (*value == '/' && client->sysroot_dir != NULL && strncmp(value, client->sysroot_dir, strlen(client->sysroot_dir))) + if (add_sysroot && *value == '/' && client->sysroot_dir != NULL && strncmp(value, client->sysroot_dir, strlen(client->sysroot_dir))) bptr += pkgconf_strlcpy(buf, client->sysroot_dir, sizeof buf); for (ptr = value; *ptr != '\0' && bptr - buf < PKGCONF_BUFSIZE; ptr++) @@ -294,7 +299,7 @@ pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const if (kv != NULL) { - parsekv = pkgconf_tuple_parse(client, vars, kv); + parsekv = pkgconf_tuple_parse_sysroot(client, vars, kv, add_sysroot); strncpy(bptr, parsekv, PKGCONF_BUFSIZE - (bptr - buf)); bptr += strlen(parsekv); @@ -339,6 +344,25 @@ pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const return strdup(buf); } +/* + * !doc + * + * .. c:function:: char *pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value) + * + * Parse an expression for variable substitution. + * + * :param pkgconf_client_t* client: The pkgconf client object to access. + * :param pkgconf_list_t* list: The variable list to search for variables (along side the global variable list). + * :param char* value: The ``key=value`` string to parse. + * :return: the variable data with any variables substituted + * :rtype: char * + */ +char * +pkgconf_tuple_parse(const pkgconf_client_t *client, pkgconf_list_t *vars, const char *value) +{ + return pkgconf_tuple_parse_sysroot(client, vars, value, true); +} + /* * !doc * -- 2.19.2 ================================================ FILE: package/pkgconf/0002-Revert-main-assume-modversion-insted-of-version-if-o.patch ================================================ From 4ccef40918a539905a2951bfb81cf8dba4a245c6 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 2 Jan 2019 18:15:50 +0100 Subject: [PATCH] Revert "main: assume --modversion insted of --version if other flags or module names are provided" This reverts commit 12a0eb124cea85586e57f33c91a1e4c73459eef6, as it causes pkg-config to assume --modversion is used when something as simple as 'pkg-config --static --version' is used, leading to a failure instead of the expected behavior: the one of "pkg-config --version". Signed-off-by: Thomas Petazzoni --- cli/main.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/cli/main.c b/cli/main.c index b52cc85..c5acc10 100644 --- a/cli/main.c +++ b/cli/main.c @@ -1002,18 +1002,8 @@ main(int argc, char *argv[]) if ((want_flags & PKG_VERSION) == PKG_VERSION) { - if (argc > 2) - { - fprintf(stderr, "%s: --version specified with other options or module names, assuming --modversion.\n", argv[0]); - - want_flags &= ~PKG_VERSION; - want_flags |= PKG_MODVERSION; - } - else - { - version(); - return EXIT_SUCCESS; - } + version(); + return EXIT_SUCCESS; } if ((want_flags & PKG_HELP) == PKG_HELP) -- 2.20.1 ================================================ FILE: package/pkgconf/Config.in ================================================ config BR2_PACKAGE_PKGCONF bool "pkgconf" help pkgconf is a program which helps to configure compiler and linker flags for development frameworks. It is similar to pkg-config, but was written from scratch in the summer of 2011 to replace pkg-config, which now needs itself to build itself http://pkgconf.org/ ================================================ FILE: package/pkgconf/Config.in.host ================================================ config BR2_PACKAGE_HOST_PKGCONF bool "host pkgconf" help pkgconf is a program which helps to configure compiler and linker flags for development frameworks. It is similar to pkg-config, but was written from scratch in the summer of 2011 to replace pkg-config, which now needs itself to build itself https://github.com/pkgconf/pkgconf ================================================ FILE: package/pkgconf/pkg-config.in ================================================ #!/bin/sh PKGCONFDIR=$(dirname $0) DEFAULT_PKG_CONFIG_LIBDIR=${PKGCONFDIR}/../@STAGING_SUBDIR@/usr/lib/pkgconfig:${PKGCONFDIR}/../@STAGING_SUBDIR@/usr/share/pkgconfig DEFAULT_PKG_CONFIG_SYSROOT_DIR=${PKGCONFDIR}/../@STAGING_SUBDIR@ DEFAULT_PKG_CONFIG_SYSTEM_INCLUDE_PATH=${PKGCONFDIR}/../@STAGING_SUBDIR@/usr/include DEFAULT_PKG_CONFIG_SYSTEM_LIBRARY_PATH=${PKGCONFDIR}/../@STAGING_SUBDIR@/usr/lib PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-${DEFAULT_PKG_CONFIG_LIBDIR}} \ PKG_CONFIG_SYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR:-${DEFAULT_PKG_CONFIG_SYSROOT_DIR}} \ PKG_CONFIG_SYSTEM_INCLUDE_PATH=${PKG_CONFIG_SYSTEM_INCLUDE_PATH:-${DEFAULT_PKG_CONFIG_SYSTEM_INCLUDE_PATH}} \ PKG_CONFIG_SYSTEM_LIBRARY_PATH=${PKG_CONFIG_SYSTEM_LIBRARY_PATH:-${DEFAULT_PKG_CONFIG_SYSTEM_LIBRARY_PATH}} \ exec ${PKGCONFDIR}/pkgconf --keep-system-libs @STATIC@ "$@" ================================================ FILE: package/pkgconf/pkgconf.hash ================================================ # Locally calculated sha256 61f0b31b0d5ea0e862b454a80c170f57bad47879c0c42bd8de89200ff62ea210 pkgconf-1.6.3.tar.xz sha256 07ee94b50a41ee3fc4e13a9b9c60b26fc28488494c465639f7e5f07a3952ec04 COPYING ================================================ FILE: package/pkgconf/pkgconf.mk ================================================ ################################################################################ # # pkgconf # ################################################################################ PKGCONF_VERSION = 1.6.3 PKGCONF_SITE = https://distfiles.dereferenced.org/pkgconf PKGCONF_SOURCE = pkgconf-$(PKGCONF_VERSION).tar.xz PKGCONF_LICENSE = pkgconf license PKGCONF_LICENSE_FILES = COPYING PKGCONF_CPE_ID_VENDOR = pkgconf PKG_CONFIG_HOST_BINARY = $(HOST_DIR)/bin/pkg-config define PKGCONF_LINK_PKGCONFIG ln -sf pkgconf $(TARGET_DIR)/usr/bin/pkg-config endef define HOST_PKGCONF_INSTALL_WRAPPER $(INSTALL) -m 0755 -D package/pkgconf/pkg-config.in \ $(HOST_DIR)/bin/pkg-config $(SED) 's,@STAGING_SUBDIR@,$(STAGING_SUBDIR),g' \ $(HOST_DIR)/bin/pkg-config endef define HOST_PKGCONF_STATIC $(SED) 's,@STATIC@,--static,' $(HOST_DIR)/bin/pkg-config endef define HOST_PKGCONF_SHARED $(SED) 's,@STATIC@,,' $(HOST_DIR)/bin/pkg-config endef PKGCONF_POST_INSTALL_TARGET_HOOKS += PKGCONF_LINK_PKGCONFIG HOST_PKGCONF_POST_INSTALL_HOOKS += HOST_PKGCONF_INSTALL_WRAPPER ifeq ($(BR2_STATIC_LIBS),y) HOST_PKGCONF_POST_INSTALL_HOOKS += HOST_PKGCONF_STATIC else HOST_PKGCONF_POST_INSTALL_HOOKS += HOST_PKGCONF_SHARED endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/ply/0001-configure.ac-fix-error-with-version-string.patch ================================================ From 684bae6043fa2242a5c6551c3f260c9db0cf7dc8 Mon Sep 17 00:00:00 2001 From: Andreas Klinger Date: Mon, 4 Jan 2021 08:40:50 +0100 Subject: [PATCH] configure.ac: fix error with version string When autoreconfiguring there's an error: "configure.ac:6: error: AC_INIT should be called with package and version arguments". Put version string in square brackets to satisfy autoconfigure. Signed-off-by: Andreas Klinger --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 65387d6..7a0054e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ(2.61) -AC_INIT(ply, m4_esyscmd_s(git describe --always --dirty), +AC_INIT(ply, [2.1.1], https://github.com/wkz/ply/issues) AC_GNU_SOURCE -- 2.20.1 ================================================ FILE: package/ply/0002-printxf.h-add-stdarg.h-in-include.patch ================================================ From 3fb3cb779c535ec28cbba80573bbea42435108c0 Mon Sep 17 00:00:00 2001 From: Andreas Klinger Date: Mon, 4 Jan 2021 20:48:41 +0100 Subject: [PATCH] printxf.h: add stdarg.h in include Include of is needed for va_list. Signed-off-by: Andreas Klinger --- include/ply/printxf.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/ply/printxf.h b/include/ply/printxf.h index a59f0d2..e985936 100644 --- a/include/ply/printxf.h +++ b/include/ply/printxf.h @@ -8,6 +8,7 @@ #define _PRINTXF_H #include +#include struct printxf; -- 2.20.1 ================================================ FILE: package/ply/Config.in ================================================ config BR2_PACKAGE_PLY_ARCH_SUPPORTS bool default y if BR2_aarch64 default y if BR2_arm default y if BR2_powerpc default y if BR2_x86_64 comment "ply needs a toolchain w/ dynamic library, headers >= 4.14" depends on BR2_PACKAGE_PLY_ARCH_SUPPORTS depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 || BR2_STATIC_LIBS config BR2_PACKAGE_PLY bool "ply" depends on BR2_PACKAGE_PLY_ARCH_SUPPORTS depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 # BPF_JLT depends on !BR2_STATIC_LIBS help ply is a light-weight dynamic tracer for Linux. By means of using the BPF it can attach probes to the linux kernel (e. g. kprobes). It's a small alternative to LLVM based tracers for embedded systems. When using debugfs needs to be mounted on /sys/kernel/debug. https://wkz.github.io/ply/ ================================================ FILE: package/ply/ply.hash ================================================ # Locally calculated sha256 cecf0913c65027750ac3272e936110c9f843435938f9ca2edbc34e99ba6c00e2 ply-2.1.1.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/ply/ply.mk ================================================ ################################################################################ # # ply # ################################################################################ PLY_VERSION = 2.1.1 PLY_SITE = $(call github,wkz,ply,$(PLY_VERSION)) PLY_AUTORECONF = YES PLY_LICENSE = GPL-2.0 PLY_LICENSE_FILES = COPYING PLY_INSTALL_STAGING = YES PLY_DEPENDENCIES = host-flex host-bison $(eval $(autotools-package)) ================================================ FILE: package/pngquant/Config.in ================================================ config BR2_PACKAGE_PNGQUANT bool "pngquant" select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_ZLIB help Lossy PNG compressor - pngquant command and libimagequant library https://pngquant.org ================================================ FILE: package/pngquant/pngquant.hash ================================================ # From https://pngquant.org/releases.html sha256 06c6fdded675753fbdbeacc2b63507fb30f42fae813e48a1684b240bb5b63522 pngquant-2.16.0-src.tar.gz # Locally computed sha256 e4f467f7abf860b4e620f5f60fdd88bc3a63a0fdb98a481fb002b5e511c9b826 COPYRIGHT ================================================ FILE: package/pngquant/pngquant.mk ================================================ ################################################################################ # # pngquant # ################################################################################ PNGQUANT_VERSION = 2.16.0 PNGQUANT_SOURCE = pngquant-$(PNGQUANT_VERSION)-src.tar.gz PNGQUANT_SITE = https://pngquant.org PNGQUANT_LICENSE = GPL-3.0+ PNGQUANT_LICENSE_FILES = COPYRIGHT PNGQUANT_CPE_ID_VENDOR = pngquant HOST_PNGQUANT_DEPENDENCIES = host-libpng PNGQUANT_DEPENDENCIES = libpng ifeq ($(BR2_PACKAGE_LCMS2),y) PNGQUANT_DEPENDENCIES += lcms2 endif define PNGQUANT_CONFIGURE_CMDS (cd $(@D) && \ $(TARGET_CONFIGURE_OPTS) \ ./configure --prefix=/usr \ $(if $(BR2_PACKAGE_LCMS2),--with-lcms2,--without-lcms2) \ $(if $(BR2_X86_CPU_HAS_SSE),--enable-sse,--disable-sse) \ $(TARGET_CONFIGURE_OPTS) \ ) endef define PNGQUANT_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define PNGQUANT_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)" -C $(@D) install endef define HOST_PNGQUANT_CONFIGURE_CMDS (cd $(@D) && \ $(HOST_CONFIGURE_OPTS) \ CC=$(HOSTCC_NOCCACHE) \ ./configure --prefix=$(HOST_DIR) \ --without-lcms2 \ ) endef define HOST_PNGQUANT_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_PNGQUANT_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/poco/0001-poco-add-the-staging-path-to-search-path.patch ================================================ From a53f3fd64a0f36ec9bc1307d7e66cdc2dee4aeaa Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Tue, 4 Aug 2015 10:14:00 +0200 Subject: [PATCH] poco: add the staging path to search path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add the mysql headers and client libraries to the search path of the preprocessor and the linker. The $MYSQL_LIBDIR / $MYSQL_INCIDR variables must be set from the make command line. [Peter: Remove host dirs, add MYSQL_INCDIR] Signed-off-by: Baruch Siach [Jörg: Update to version 1.6.1 from github] Signed-off-by: Jörg Krause [Julien: Rebased on version 1.10.1] Signed-off-by: Julien Olivain --- Data/MySQL/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Data/MySQL/Makefile b/Data/MySQL/Makefile index 64a7d3f82..955fee2d4 100644 --- a/Data/MySQL/Makefile +++ b/Data/MySQL/Makefile @@ -6,8 +6,8 @@ include $(POCO_BASE)/build/rules/global -SYSLIBS += -L/usr/local/lib -L/usr/local/lib$(LIB64SUFFIX)/mysql -L/usr/lib$(LIB64SUFFIX)/mysql -L/usr/mysql/lib$(LIB64SUFFIX) -L/usr/mysql/lib$(LIB64SUFFIX)/mysql -L/usr/local/mysql/lib$(LIB64SUFFIX) -lmysqlclient -INCLUDE += -I/usr/local/include/mysql/ -I/usr/include/mysql/ -I/usr/mysql/include/mysql -I/usr/local/mysql/include +SYSLIBS += -L$(MYSQL_LIBDIR) -lmysqlclient +INCLUDE += -I$(MYSQL_INCDIR) SYSFLAGS += -DTHREADSAFE -DNO_TCL objects = Binder Extractor SessionImpl Connector \ -- 2.26.2 ================================================ FILE: package/poco/0002-Add-support-for-m68000-1856.patch ================================================ From 221e308ad452035f4c1dc25e194f817a30f38f7b Mon Sep 17 00:00:00 2001 From: Jochen Sprickerhof Date: Wed, 23 Aug 2017 16:50:51 +0200 Subject: [PATCH] Add support for m68000 (#1856) Originally taken from https://github.com/google/double-conversion/commit/da11179623145f53b204105a93b8bbca431141da Signed-off-by: Thomas Petazzoni [Julien: rebased on version 1.10.1] Signed-off-by: Julien Olivain --- Foundation/src/utils.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Foundation/src/utils.h b/Foundation/src/utils.h index c87cee13c..e891c0f10 100644 --- a/Foundation/src/utils.h +++ b/Foundation/src/utils.h @@ -66,6 +66,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. -- 2.26.2 ================================================ FILE: package/poco/0003-Foundation-src-utils.h-backport-double-conversion-ch.patch ================================================ From fe7d230da03a35725ef768c07ce064324f941863 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 1 Jul 2018 15:37:47 +0200 Subject: [PATCH] Foundation/src/utils.h: backport double-conversion change for AArch64 BE support This commit, identical to upstream double-conversion commit https://github.com/google/double-conversion/commit/cb2beeb6771025377c665d1c3ea08388bc6e619a allows Poco to build on AArch64 big-endian. Signed-off-by: Thomas Petazzoni Upstream: https://github.com/pocoproject/poco/pull/2378 [Julien: rebased on version 1.10.1] Signed-off-by: Julien Olivain --- Foundation/src/utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Foundation/src/utils.h b/Foundation/src/utils.h index e891c0f10..892f7db18 100644 --- a/Foundation/src/utils.h +++ b/Foundation/src/utils.h @@ -63,7 +63,7 @@ defined(__SH4__) || defined(__alpha__) || \ defined(_MIPS_ARCH_MIPS32R2) || \ defined(__riscv) || \ - defined(__AARCH64EL__) || \ + defined(__AARCH64EL__) || defined(__aarch64__) || \ defined(nios2) || defined(__nios2) || defined(__nios2__) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(__mc68000__) -- 2.26.2 ================================================ FILE: package/poco/Config.in ================================================ config BR2_PACKAGE_POCO_ARCH_SUPPORTS bool default y depends on !BR2_arc depends on !BR2_microblaze depends on !BR2_mipsel depends on !BR2_or1k depends on !BR2_RISCV_32 depends on !BR2_xtensa config BR2_PACKAGE_POCO bool "poco" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++14 # pthread_condattr_setclock depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on !BR2_STATIC_LIBS # dlopen() depends on BR2_PACKAGE_POCO_ARCH_SUPPORTS select BR2_PACKAGE_ZLIB select BR2_PACKAGE_PCRE help The C++ Portable Components Libraries http://pocoproject.org if BR2_PACKAGE_POCO comment "poco components" config BR2_PACKAGE_POCO_JSON bool "json" config BR2_PACKAGE_POCO_XML bool "xml" select BR2_PACKAGE_EXPAT config BR2_PACKAGE_POCO_UTIL bool "util" select BR2_PACKAGE_POCO_XML config BR2_PACKAGE_POCO_NET bool "net" config BR2_PACKAGE_POCO_CRYPTO bool "crypto" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL config BR2_PACKAGE_POCO_NETSSL_OPENSSL bool "netssl_openssl" select BR2_PACKAGE_POCO_NET select BR2_PACKAGE_POCO_CRYPTO select BR2_PACKAGE_POCO_UTIL select BR2_PACKAGE_OPENSSL config BR2_PACKAGE_POCO_ZIP bool "zip" select BR2_PACKAGE_POCO_XML select BR2_PACKAGE_POCO_NET select BR2_PACKAGE_POCO_UTIL config BR2_PACKAGE_POCO_CPP_PARSER bool "cpp_parser" config BR2_PACKAGE_POCO_PDF bool "pdf" select BR2_PACKAGE_POCO_JSON select BR2_PACKAGE_POCO_UTIL select BR2_PACKAGE_POCO_XML config BR2_PACKAGE_POCO_REDIS bool "redis" select BR2_PACKAGE_POCO_NET config BR2_PACKAGE_POCO_MONGODB bool "mongodb" select BR2_PACKAGE_POCO_NET config BR2_PACKAGE_POCO_DATA bool config BR2_PACKAGE_POCO_DATA_SQLITE bool "sqlite" select BR2_PACKAGE_POCO_DATA select BR2_PACKAGE_SQLITE config BR2_PACKAGE_POCO_DATA_MYSQL bool "mysql" depends on BR2_USE_MMU # mysql select BR2_PACKAGE_POCO_DATA select BR2_PACKAGE_MYSQL config BR2_PACKAGE_POCO_JWT bool "jwt" select BR2_PACKAGE_POCO_JSON select BR2_PACKAGE_POCO_CRYPTO endif # BR2_PACKAGE_POCO comment "poco needs a toolchain w/ wchar, NPTL, C++, dynamic library, gcc >= 5 w/ C++14" depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_5 depends on BR2_PACKAGE_POCO_ARCH_SUPPORTS ================================================ FILE: package/poco/poco.hash ================================================ # Locally computed sha256 44592a488d2830c0b4f3bfe4ae41f0c46abbfad49828d938714444e858a00818 poco-1.10.1.tar.gz sha256 c4b1e1e5f36d8331737231fefcc30f5714326aec7c387ad59a8115eb0ba7d6b5 LICENSE ================================================ FILE: package/poco/poco.mk ================================================ ################################################################################ # # poco # ################################################################################ POCO_VERSION = 1.10.1 POCO_SITE = $(call github,pocoproject,poco,poco-$(POCO_VERSION)-release) POCO_LICENSE = BSL-1.0 POCO_LICENSE_FILES = LICENSE POCO_CPE_ID_VENDOR = pocoproject POCO_INSTALL_STAGING = YES POCO_DEPENDENCIES = zlib pcre \ $(if $(BR2_PACKAGE_POCO_XML),expat) \ $(if $(BR2_PACKAGE_POCO_CRYPTO),openssl) \ $(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),openssl) \ $(if $(BR2_PACKAGE_POCO_DATA_SQLITE),sqlite) \ $(if $(BR2_PACKAGE_POCO_DATA_MYSQL),mysql) POCO_OMIT = Data/ODBC PageCompiler \ $(if $(BR2_PACKAGE_POCO_JSON),,JSON) \ $(if $(BR2_PACKAGE_POCO_XML),,XML) \ $(if $(BR2_PACKAGE_POCO_UTIL),,Util) \ $(if $(BR2_PACKAGE_POCO_NET),,Net) \ $(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),,NetSSL_OpenSSL) \ $(if $(BR2_PACKAGE_POCO_CRYPTO),,Crypto) \ $(if $(BR2_PACKAGE_POCO_ZIP),,Zip) \ $(if $(BR2_PACKAGE_POCO_CPP_PARSER),,CppParser) \ $(if $(BR2_PACKAGE_POCO_PDF),,PDF) \ $(if $(BR2_PACKAGE_POCO_REDIS),,Redis) \ $(if $(BR2_PACKAGE_POCO_MONGODB),,MongoDB) \ $(if $(BR2_PACKAGE_POCO_DATA),,Data) \ $(if $(BR2_PACKAGE_POCO_DATA_MYSQL),,Data/MySQL) \ $(if $(BR2_PACKAGE_POCO_DATA_SQLITE),,Data/SQLite) \ $(if $(BR2_PACKAGE_POCO_JWT),,JWT) ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) POCO_CONF_OPTS += --no-fpenvironment --no-wstring endif # architectures missing some FE_* in their fenv.h ifeq ($(BR2_sh4a)$(BR2_nios2),y) POCO_CONF_OPTS += --no-fpenvironment endif # disable fpenvironment for soft floating point configuration ifeq ($(BR2_SOFT_FLOAT),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); $(TARGET_MAKE_ENV) ./configure \ --config=Linux \ --prefix=/usr \ --cflags=-std=c++14 \ --omit="$(POCO_OMIT)" \ $(POCO_CONF_OPTS) \ --unbundled \ --no-tests \ --no-samples) endef # Use $(MAKE1) to avoid failures on heavilly parallel machines (e.g. -j25) define POCO_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) POCO_TARGET_OSARCH=$(ARCH) CROSS_COMPILE=$(TARGET_CROSS) \ MYSQL_LIBDIR=$(STAGING_DIR)/usr/lib/mysql \ MYSQL_INCDIR=$(STAGING_DIR)/usr/include/mysql \ DEFAULT_TARGET=$(POCO_MAKE_TARGET) -C $(@D) endef define POCO_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(STAGING_DIR) POCO_TARGET_OSARCH=$(ARCH) \ DEFAULT_TARGET=$(POCO_MAKE_TARGET) install -C $(@D) endef define POCO_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) POCO_TARGET_OSARCH=$(ARCH) \ DEFAULT_TARGET=$(POCO_MAKE_TARGET) install -C $(@D) endef $(eval $(generic-package)) ================================================ FILE: package/poke/0001-build-do-not-check-for-Tcl-Tk-if-disable-gui-is-spec.patch ================================================ From cef3fc90f02ef4fc49515745194bac3d81a2265b Mon Sep 17 00:00:00 2001 From: "Jose E. Marchesi" Date: Fri, 30 Apr 2021 13:17:05 +0200 Subject: [PATCH] build: do not check for Tcl/Tk if --disable-gui is specified 2021-04-30 Jose E. Marchesi * configure.ac: Do not check for tcl/tk if --disable-gui is specified at configure time. (cherry picked from commit 280a5e154287e43c0a40d9530a9cc658a7367a9c) [Romain: remove Changelog entry] Signed-off-by: Romain Naour --- configure.ac | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index c7205513..c2f0760a 100644 --- a/configure.ac +++ b/configure.ac @@ -214,12 +214,15 @@ fi dnl The GUI is optional, and depends on the availability of Tcl and dnl Tk. -POKE_TCLTK - AC_ARG_ENABLE([gui], AS_HELP_STRING([--enable-gui], [Enable the GUI (default is YES)]), - [gui_enabled=$enableval], [gui_enabled=$has_tcltk]) + [gui_enabled=$enableval], [gui_enabled=yes]) + +if test "x$gui_enabled" = "xyes"; then + POKE_TCLTK + gui_enabled=$has_tcltk +fi AM_CONDITIONAL([GUI], [test "x$gui_enabled" = "xyes"]) -- 2.30.2 ================================================ FILE: package/poke/0002-tentatively-change-cppflags-to-omit-I-prefix-on-cros.patch ================================================ From ac9d057895f1e61f63cbecafcc3e3820fdb10f84 Mon Sep 17 00:00:00 2001 From: Luca Saiu Date: Fri, 30 Apr 2021 22:42:57 +0200 Subject: [PATCH] tentatively change --cppflags to omit -I prefix on cross-compilation The autoconf macros defined from jitter --cppflags get automatically changed, of course. * configure.ac (JITTER_CROSS_COMPILING): New substitution. * bin/jitter-config.in.m4sh (main loop) <--cppflags>: Introduce conditional on the new substitution. Suggested by Romain Naour, after his difficulties with building GNU poke with buildroot. (cherry picked from commit 428406c7b8d4c20f3472d41ed57c12c1a88ad37e) [Romain: patch jitter-config.in instead of jitter-config.in.m4sh since there is an issue while converting the M4sh m4sh script ( .in.m4sh ) into a portable shell script ( .in ) ready to be processed by aclocal for @-substitutions.] Signed-off-by: Romain Naour --- jitter/bin/jitter-config.in | 10 +++++++--- jitter/configure.ac | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/jitter/bin/jitter-config.in b/jitter/bin/jitter-config.in index 5e124f0..4bc508d 100644 --- a/jitter/bin/jitter-config.in +++ b/jitter/bin/jitter-config.in @@ -999,10 +999,14 @@ while test "$#" != "0"; do --cppflags) no_option_argument append_to_output cppflags - # Append a -I argument. This is defined separately from the rest, - # as the installation prefix can be decided very late, at Jitter + # Unless cross-compiling, append a -I argument referring the + # installation path. This is defined separately from the rest, as + # the installation prefix can be decided very late, at Jitter # installation time. - output="$output -I $includedir";; + # (When cross-compiling this would be difficult to do correctly.) + if test "x@JITTER_CROSS_COMPILING@" != 'xyes'; then + output="$output -I $includedir" + fi;; --ldadd) no_option_argument append_to_output ldadd;; diff --git a/jitter/configure.ac b/jitter/configure.ac index 21d6937..fb12349 100644 --- a/jitter/configure.ac +++ b/jitter/configure.ac @@ -308,6 +308,7 @@ else AC_MSG_RESULT([yes, cross-compiling from $build to $host .]) jitter_cross_compiling=yes fi +AC_SUBST([JITTER_CROSS_COMPILING], [$jitter_cross_compiling]) # I never test on weird systems not supporting shebangs. AC_SYS_INTERPRETER -- 2.31.1 ================================================ FILE: package/poke/0003-configure.ac-HELP2MAN-replace-by-true-when-cross-com.patch ================================================ From 8ba76a5a7ce311f67890199c5595bc1f626495ad Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Fri, 30 Apr 2021 15:43:59 +0200 Subject: [PATCH] configure.ac: HELP2MAN replace ':' by 'true' when cross-compiling Avoid: /usr/bin/make ./../poke/poke ../run \ : -p poke --name="The GNU extensible binary editor" \ ./../poke/poke -o ./poke.1 ../run: line 51: exec: :: not found Signed-off-by: Romain Naour --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index c2f0760a..93769ef9 100644 --- a/configure.ac +++ b/configure.ac @@ -74,7 +74,7 @@ gl_LIBTEXTSTYLE_OPTIONAL([0.20.5]) if test $cross_compiling = no; then AM_MISSING_PROG(HELP2MAN, help2man) else - HELP2MAN=: + HELP2MAN=true fi dnl recfix is part of the GNU recutils suite, and is used in cfg.mk to -- 2.30.2 ================================================ FILE: package/poke/0004-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch ================================================ From a0594387565e1e6b4a8a8ba04ad13b135cc1f0b5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 1 Apr 2021 07:49:46 +0200 Subject: [PATCH] lib/getrandom.c: fix build with uclibc < 1.0.35 Fix the following build failure with uclibc < 1.0.35 which is raised since the addition of getrandom module in https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=682cc4e678aceff32dea2a84b6e5147bdf5a20a7: In file included from ./sys/random.h:40, from getrandom.c:22: /tmp/instance-0/output-1/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:35: error: unknown type name 'size_t' 27 | extern int getrandom(void *__buf, size_t count, unsigned int flags) | ^~~~~~ /tmp/instance-0/output-1/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:8:1: note: 'size_t' is defined in header ''; did you forget to '#include '? 7 | #include +++ |+#include 8 | This patch is not upstreamable as it is only a workaround for uclibc < 1.0.35, upstream uclibc has been patched with https://github.com/wbx-github/uclibc-ng/commit/00972c02c2b6e0a95d5def4a71bdfb188e091782 Fixes: - http://autobuild.buildroot.org/results/30105094e39374ec6d4e47e2fb5e99696f7f7981 Signed-off-by: Fabrice Fontaine --- jitter/gnulib-local/getrandom.c | 1 + gl/getrandom.c | 1 + gl-libpoke/getrandom.c | 1 + 3 files changed, 3 insertions(+) diff --git a/jitter/gnulib-local/getrandom.c b/jitter/gnulib-local/getrandom.c index 41212fb32..0ad3f9648 100644 --- a/jitter/gnulib-local/getrandom.c +++ b/jitter/gnulib-local/getrandom.c @@ -19,6 +19,7 @@ #include +#include #include #include diff --git a/gl/getrandom.c b/gl/getrandom.c index 41212fb32..0ad3f9648 100644 --- a/gl/getrandom.c +++ b/gl/getrandom.c @@ -19,6 +19,7 @@ #include +#include #include #include diff --git a/gl-libpoke/getrandom.c b/gl-libpoke/getrandom.c index 41212fb32..0ad3f9648 100644 --- a/gl-libpoke/getrandom.c +++ b/gl-libpoke/getrandom.c @@ -19,6 +19,7 @@ #include +#include #include #include -- 2.30.2 ================================================ FILE: package/poke/Config.in ================================================ config BR2_PACKAGE_POKE bool "poke" depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS # bdwgc depends on BR2_USE_WCHAR # needs wctomb depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # less select BR2_PACKAGE_BDWGC select BR2_PACKAGE_LESS # runtime select BR2_PACKAGE_READLINE help GNU poke is a new interactive editor for binary data. Not limited to editing basic entities such as bits and bytes, it provides a full-fledged procedural, interactive programming language designed to describe data structures and to operate on them. Once a user has defined a structure for binary data (usually matching some file format) she can search, inspect, create, shuffle and modify abstract entities such as ELF relocations, MP3 tags, DWARF expressions, partition table entries, and so on, with primitives resembling simple editing of bits and bytes. The program comes with a library of already written descriptions (or "pickles" in poke parlance) for many binary formats. https://www.gnu.org/software/poke/ comment "poke needs a toolchain w/ NPTL, wchar" depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_USE_WCHAR ================================================ FILE: package/poke/poke.hash ================================================ # Locally calculated sha256 f61cf8da5b64c01a1359373725aad1ca257f35c1c9269e4d50dd0664183ddf62 poke-1.2.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 jitter/COPYING ================================================ FILE: package/poke/poke.mk ================================================ ################################################################################ # # poke # ################################################################################ POKE_VERSION = 1.2 POKE_SITE = $(BR2_GNU_MIRROR)/poke # gnulib license is a mix/mess of public-domain and various GPL and LGPL versions. POKE_LICENSE = GPL-3.0+, GPL-3.0+ (jitter), gnulib license (gnulib) POKE_LICENSE_FILES = COPYING jitter/COPYING # 0001-build-do-not-check-for-Tcl-Tk-if-disable-gui-is-spec.patch # 0003-configure.ac-HELP2MAN-replace-by-false-when-cross-co.patch POKE_AUTORECONF = YES POKE_DEPENDENCIES = host-flex host-bison host-pkgconf bdwgc readline # poke bundle gnulib that doesn't support the case where # host_os='linux-uclibc'. When cross-compiling, the guessed # answers are mostly wrong and gnulib will try to replace # snprintf with rpl_snprintf. This lead to "undefined reference # to `rpl_snprintf'" errors. ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) POKE_CONF_ENV = gl_cv_func_printf_positions=yes \ gl_cv_func_snprintf_retval_c99=yes \ gl_cv_func_printf_sizes_c99=yes \ gl_cv_func_printf_infinite_long_double=yes \ gl_cv_func_snprintf_retval_c99=yes \ gl_cv_func_snprintf_truncation_c99=yes \ gl_cv_func_snprintf_usable=yes \ gl_cv_func_strerror_0_works=yes \ gl_cv_header_working_stdint_h=yes \ gl_cv_func_printf_infinite=yes \ gl_cv_func_printf_flag_zero=yes \ gl_cv_func_printf_enomem=yes \ gl_cv_func_printf_directive_f=yes \ gl_cv_func_printf_directive_a=yes \ gl_cv_func_snprintf_directive_n=yes \ gl_cv_func_vsnprintf_posix=yes \ gl_cv_func_vsnprintf_zerosize_c99=yes endif POKE_CONF_OPTS = \ --disable-gui \ --disable-libnbd \ --with-libreadline-prefix=$(STAGING_DIR) ifeq ($(BR2_PACKAGE_JSON_C),y) POKE_DEPENDENCIES += json-c POKE_CONF_OPTS += --enable-mi else POKE_CONF_OPTS += --disable-mi endif $(eval $(autotools-package)) ================================================ FILE: package/policycoreutils/0001-Add-DESTDIR-to-all-paths-that-use-an-absolute-path.patch ================================================ From 85763549c53b2907dab094163f1404b2233f8029 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Mon, 9 Oct 2017 16:51:20 -0400 Subject: [PATCH] Add DESTDIR to setfiles The addition of this patch makes the use of DESTDIR mandatory as there are conditional checks which would fail if it's not defined. This patch was updated from the patch provided by Niranjan Reddy to accomodate version 2.5 Signed-off-by: Clayton Shotwell Signed-off-by: Niranjan Reddy Signed-off-by: Fabrice Fontaine [Update for 2.8] Signed-off-by: Adam Duskett [Update for 3.2] --- setfiles/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setfiles/Makefile b/setfiles/Makefile index a3bbbe1..df675cf 100644 --- a/setfiles/Makefile +++ b/setfiles/Makefile @@ -3,7 +3,7 @@ LINGUAS ?= ru PREFIX ?= /usr SBINDIR ?= /sbin MANDIR = $(PREFIX)/share/man -AUDITH ?= $(shell test -f /usr/include/libaudit.h && echo y) +AUDITH ?= $(shell test -f $(DESTDIR)$(PREFIX)/include/libaudit.h && echo y) CFLAGS ?= -g -Werror -Wall -W override LDLIBS += -lselinux -lsepol -- 2.13.6 ================================================ FILE: package/policycoreutils/0002-Add-PREFIX-to-host-paths.patch ================================================ From a221304344b3f9db7e86d928cf97d77542bcf456 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Mon, 9 Oct 2017 16:47:19 -0400 Subject: [PATCH] Add PREFIX to host paths Updates the remaining hardcoded host paths used in the build to be prefixed with a PREFIX path to allow cross compilation. Updated to work with version 3.2 Signed-off-by: Clayton Shotwell Signed-off-by: Niranjan Reddy Signed-off-by: Fabrice Fontaine [Update for 2.8] Signed-off-by: Adam Duskett [Update for 3.2] --- newrole/Makefile | 4 ++-- run_init/Makefile | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/newrole/Makefile b/newrole/Makefile index 0e7ebce..3188cec 100644 --- a/newrole/Makefile +++ b/newrole/Makefile @@ -4,8 +4,8 @@ PREFIX ?= /usr BINDIR ?= $(PREFIX)/bin MANDIR ?= $(PREFIX)/share/man ETCDIR ?= /etc -LOCALEDIR = $(DESTDIR)$(PREFIX)/share/locale -INCLUDEDIR ?= $(PREFIX)/include +LOCALEDIR = $(DESTDIR)$(PREFIX) +INCLUDEDIR ?= $(LOCALEDIR)/include PAMH ?= $(shell test -f $(INCLUDEDIR)/security/pam_appl.h && echo y) AUDITH ?= $(shell test -f $(INCLUDEDIR)/libaudit.h && echo y) # Enable capabilities to permit newrole to generate audit records. diff --git a/run_init/Makefile b/run_init/Makefile index e86364a..20a64d4 100644 --- a/run_init/Makefile +++ b/run_init/Makefile @@ -6,8 +6,8 @@ SBINDIR ?= $(PREFIX)/sbin MANDIR ?= $(PREFIX)/share/man ETCDIR ?= /etc LOCALEDIR ?= $(DESTDIR)$(PREFIX)/share/locale -PAMH ?= $(shell test -f /usr/include/security/pam_appl.h && echo y) -AUDITH ?= $(shell test -f /usr/include/libaudit.h && echo y) +PAMH ?= $(shell test -f $(DESTDIR)$(PREFIX)/include/security/pam_appl.h && echo y) +AUDITH ?= $(shell test -f $(DESTDIR)$(PREFIX)/include/libaudit.h && echo y) CFLAGS ?= -Werror -Wall -W override CFLAGS += -DUSE_NLS -DLOCALEDIR="\"$(LOCALEDIR)\"" -DPACKAGE="\"policycoreutils\"" -- 2.31.1 ================================================ FILE: package/policycoreutils/Config.in ================================================ comment "policycoreutils needs a toolchain w/ threads, dynamic library" depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS config BR2_PACKAGE_POLICYCOREUTILS bool "policycoreutils" depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS # libsemanage depends on BR2_TOOLCHAIN_HAS_THREADS # libsemanage depends on !BR2_STATIC_LIBS #libsemanage select BR2_PACKAGE_LIBSEMANAGE select BR2_PACKAGE_LIBCAP_NG help Policycoreutils is a collection of policy utilities (originally the "core" set of utilities needed to use SELinux, although it has grown a bit over time), which have different dependencies. sestatus, secon, run_init, and newrole only use libselinux. load_policy and setfiles only use libselinux and libsepol. semodule and semanage use libsemanage (and thus bring in dependencies on libsepol and libselinux as well). setsebool uses libselinux to make non-persistent boolean changes (via the kernel interface) and uses libsemanage to make persistent boolean changes. The base package will install the following utilities: load_policy newrole run_init secon semodule sestatus setfiles setsebool http://selinuxproject.org/page/Main_Page ================================================ FILE: package/policycoreutils/policycoreutils.hash ================================================ # https://github.com/SELinuxProject/selinux/wiki/Releases sha256 d1331c6fa766c547b071c491de90b9f343c8dbffdb119be8a5a7e491199b93a9 policycoreutils-3.2.tar.gz sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/policycoreutils/policycoreutils.mk ================================================ ################################################################################ # # policycoreutils # ################################################################################ POLICYCOREUTILS_VERSION = 3.2 POLICYCOREUTILS_SITE = https://github.com/SELinuxProject/selinux/releases/download/$(POLICYCOREUTILS_VERSION) POLICYCOREUTILS_LICENSE = GPL-2.0 POLICYCOREUTILS_LICENSE_FILES = COPYING POLICYCOREUTILS_CPE_ID_VENDOR = selinuxproject POLICYCOREUTILS_DEPENDENCIES = libsemanage libcap-ng $(TARGET_NLS_DEPENDENCIES) POLICYCOREUTILS_MAKE_OPTS = LDLIBS=$(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_LINUX_PAM),y) POLICYCOREUTILS_DEPENDENCIES += linux-pam POLICYCOREUTILS_MAKE_OPTS += NAMESPACE_PRIV=y define POLICYCOREUTILS_INSTALL_TARGET_LINUX_PAM_CONFS $(INSTALL) -D -m 0644 $(@D)/newrole/newrole-lspp.pamd $(TARGET_DIR)/etc/pam.d/newrole $(INSTALL) -D -m 0644 $(@D)/run_init/run_init.pamd $(TARGET_DIR)/etc/pam.d/run_init endef endif ifeq ($(BR2_PACKAGE_AUDIT),y) POLICYCOREUTILS_DEPENDENCIES += audit POLICYCOREUTILS_MAKE_OPTS += AUDIT_LOG_PRIV=y USE_AUDIT=y endif # Enable LSPP_PRIV if both audit and linux pam are enabled ifeq ($(BR2_PACKAGE_LINUX_PAM)$(BR2_PACKAGE_AUDIT),yy) POLICYCOREUTILS_MAKE_OPTS += LSPP_PRIV=y endif # Undefining _FILE_OFFSET_BITS here because of a "bug" with glibc fts.h # large file support. # See https://bugzilla.redhat.com/show_bug.cgi?id=574992 for more information POLICYCOREUTILS_MAKE_OPTS += \ $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS) -U_FILE_OFFSET_BITS" \ CPPFLAGS="$(TARGET_CPPFLAGS) -U_FILE_OFFSET_BITS" POLICYCOREUTILS_MAKE_DIRS = \ load_policy newrole run_init \ secon semodule sestatus setfiles \ setsebool scripts # We need to pass DESTDIR at build time because it's used by # policycoreutils build system to find headers and libraries. define POLICYCOREUTILS_BUILD_CMDS $(foreach d,$(POLICYCOREUTILS_MAKE_DIRS), $(MAKE) -C $(@D)/$(d) $(POLICYCOREUTILS_MAKE_OPTS) \ DESTDIR=$(STAGING_DIR) all ) endef define POLICYCOREUTILS_INSTALL_TARGET_CMDS $(foreach d,$(POLICYCOREUTILS_MAKE_DIRS), $(MAKE) -C $(@D)/$(d) $(POLICYCOREUTILS_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) install ) endef HOST_POLICYCOREUTILS_DEPENDENCIES = host-libsemanage # Undefining _FILE_OFFSET_BITS here because of a "bug" with glibc fts.h # large file support. # See https://bugzilla.redhat.com/show_bug.cgi?id=574992 for more information # We also need to pass PREFIX because it defaults to $(DESTDIR)/usr HOST_POLICYCOREUTILS_MAKE_OPTS = \ $(HOST_CONFIGURE_OPTS) \ CFLAGS="$(HOST_CFLAGS) -U_FILE_OFFSET_BITS" \ CPPFLAGS="$(HOST_CPPFLAGS) -U_FILE_OFFSET_BITS" \ PREFIX=$(HOST_DIR) \ ETCDIR=$(HOST_DIR)/etc \ SBINDIR=$(HOST_DIR)/sbin # Note: We are only building the programs required by the refpolicy build HOST_POLICYCOREUTILS_MAKE_DIRS = \ load_policy newrole run_init \ secon semodule sestatus setfiles \ setsebool define HOST_POLICYCOREUTILS_BUILD_CMDS $(foreach d,$(HOST_POLICYCOREUTILS_MAKE_DIRS), $(MAKE) -C $(@D)/$(d) $(HOST_POLICYCOREUTILS_MAKE_OPTS) all ) endef define HOST_POLICYCOREUTILS_INSTALL_CMDS $(foreach d,$(HOST_POLICYCOREUTILS_MAKE_DIRS), $(MAKE) -C $(@D)/$(d) $(HOST_POLICYCOREUTILS_MAKE_OPTS) install ) endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/polkit/0001-make-netgroup-support-optional.patch ================================================ From 1b854ef4bb15032091a33fed587e5ba6f3e582eb Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 22 May 2019 13:18:55 -0700 Subject: [PATCH] make netgroup support optional On at least Linux/musl and Linux/uclibc, netgroup support is not available. PolKit fails to compile on these systems for that reason. This change makes netgroup support conditional on the presence of the setnetgrent(3) function which is required for the support to work. If that function is not available on the system, an error will be returned to the administrator if unix-netgroup: is specified in configuration. Fixes bug 50145. Signed-off-by: A. Wilcox Signed-off-by: Khem Raj [Adam: Extend patch to work with duktape integration.] Signed-off-by: Adam Duskett [Thomas: add introspection.m4.] Signed-off-by: Thomas Petazzoni --- buildutil/introspection.m4 | 142 ++++++++++++++++++ configure.ac | 2 +- src/polkit/polkitidentity.c | 16 ++ src/polkit/polkitunixnetgroup.c | 3 + .../polkitbackendduktapeauthority.c | 2 + .../polkitbackendinteractiveauthority.c | 14 +- .../polkitbackendjsauthority.cpp | 3 +- test/polkit/polkitidentitytest.c | 9 +- test/polkit/polkitunixnetgrouptest.c | 3 + .../test-polkitbackendjsauthority.c | 2 + 10 files changed, 187 insertions(+), 9 deletions(-) create mode 100644 buildutil/introspection.m4 diff --git a/buildutil/introspection.m4 b/buildutil/introspection.m4 new file mode 100644 index 0000000..b0ccd68 --- /dev/null +++ b/buildutil/introspection.m4 @@ -0,0 +1,142 @@ +dnl -*- mode: autoconf -*- +dnl Copyright 2009 Johan Dahlin +dnl +dnl This file is free software; the author(s) gives unlimited +dnl permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl + +# serial 1 + +dnl This is a copy of AS_AC_EXPAND +dnl +dnl (C) 2003, 2004, 2005 Thomas Vander Stichele +dnl Copying and distribution of this file, with or without modification, +dnl are permitted in any medium without royalty provided the copyright +dnl notice and this notice are preserved. +m4_define([_GOBJECT_INTROSPECTION_AS_AC_EXPAND], +[ + EXP_VAR=[$1] + FROM_VAR=[$2] + + dnl first expand prefix and exec_prefix if necessary + prefix_save=$prefix + exec_prefix_save=$exec_prefix + + dnl if no prefix given, then use /usr/local, the default prefix + if test "x$prefix" = "xNONE"; then + prefix="$ac_default_prefix" + fi + dnl if no exec_prefix given, then use prefix + if test "x$exec_prefix" = "xNONE"; then + exec_prefix=$prefix + fi + + full_var="$FROM_VAR" + dnl loop until it doesn't change anymore + while true; do + new_full_var="`eval echo $full_var`" + if test "x$new_full_var" = "x$full_var"; then break; fi + full_var=$new_full_var + done + + dnl clean up + full_var=$new_full_var + AC_SUBST([$1], "$full_var") + + dnl restore prefix and exec_prefix + prefix=$prefix_save + exec_prefix=$exec_prefix_save +]) + +m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([LT_INIT],[$0])dnl setup libtool first + + dnl enable/disable introspection + m4_if([$2], [require], + [dnl + enable_introspection=yes + ],[dnl + AC_ARG_ENABLE(introspection, + AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], + [Enable introspection for this build]),, + [enable_introspection=auto]) + ])dnl + + AC_MSG_CHECKING([for gobject-introspection]) + + dnl presence/version checking + AS_CASE([$enable_introspection], + [no], [dnl + found_introspection="no (disabled, use --enable-introspection to enable)" + ],dnl + [yes],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0],, + AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], + found_introspection=yes, + AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) + ],dnl + [auto],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) + dnl Canonicalize enable_introspection + enable_introspection=$found_introspection + ],dnl + [dnl + AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) + ])dnl + + AC_MSG_RESULT([$found_introspection]) + + dnl expand datadir/libdir so we can pass them to pkg-config + dnl and get paths relative to our target directories + _GOBJECT_INTROSPECTION_AS_AC_EXPAND(_GI_EXP_DATADIR, "$datadir") + _GOBJECT_INTROSPECTION_AS_AC_EXPAND(_GI_EXP_LIBDIR, "$libdir") + + INTROSPECTION_SCANNER= + INTROSPECTION_COMPILER= + INTROSPECTION_GENERATE= + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then + INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` + INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + INTROSPECTION_GIRDIR=`$PKG_CONFIG --define-variable=datadir="${_GI_EXP_DATADIR}" --variable=girdir gobject-introspection-1.0` + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --define-variable=libdir="${_GI_EXP_LIBDIR}" --variable=typelibdir gobject-introspection-1.0)" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` + INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection + fi + AC_SUBST(INTROSPECTION_SCANNER) + AC_SUBST(INTROSPECTION_COMPILER) + AC_SUBST(INTROSPECTION_GENERATE) + AC_SUBST(INTROSPECTION_GIRDIR) + AC_SUBST(INTROSPECTION_TYPELIBDIR) + AC_SUBST(INTROSPECTION_CFLAGS) + AC_SUBST(INTROSPECTION_LIBS) + AC_SUBST(INTROSPECTION_MAKEFILE) + + AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") +]) + + +dnl Usage: +dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) + +AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) +]) + +dnl Usage: +dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) + + +AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) +]) diff --git a/configure.ac b/configure.ac index 5cedb4e..87aa0ad 100644 --- a/configure.ac +++ b/configure.ac @@ -111,7 +111,7 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="-lexpat"], [AC_MSG_ERROR([Can't find expat library. Please install expat.])]) AC_SUBST(EXPAT_LIBS) -AC_CHECK_FUNCS(clearenv fdatasync) +AC_CHECK_FUNCS(clearenv fdatasync setnetgrent) if test "x$GCC" = "xyes"; then LDFLAGS="-Wl,--as-needed $LDFLAGS" diff --git a/src/polkit/polkitidentity.c b/src/polkit/polkitidentity.c index 3aa1f7f..10e9c17 100644 --- a/src/polkit/polkitidentity.c +++ b/src/polkit/polkitidentity.c @@ -182,7 +182,15 @@ polkit_identity_from_string (const gchar *str, } else if (g_str_has_prefix (str, "unix-netgroup:")) { +#ifndef HAVE_SETNETGRENT + g_set_error (error, + POLKIT_ERROR, + POLKIT_ERROR_FAILED, + "Netgroups are not available on this machine ('%s')", + str); +#else identity = polkit_unix_netgroup_new (str + sizeof "unix-netgroup:" - 1); +#endif } if (identity == NULL && (error != NULL && *error == NULL)) @@ -344,6 +352,13 @@ polkit_identity_new_for_gvariant (GVariant *variant, GVariant *v; const char *name; +#ifndef HAVE_SETNETGRENT + g_set_error (error, + POLKIT_ERROR, + POLKIT_ERROR_FAILED, + "Netgroups are not available on this machine"); + goto out; +#else v = lookup_asv (details_gvariant, "name", G_VARIANT_TYPE_STRING, error); if (v == NULL) { @@ -353,6 +368,7 @@ polkit_identity_new_for_gvariant (GVariant *variant, name = g_variant_get_string (v, NULL); ret = polkit_unix_netgroup_new (name); g_variant_unref (v); +#endif } else { diff --git a/src/polkit/polkitunixnetgroup.c b/src/polkit/polkitunixnetgroup.c index 8a2b369..83f8d4a 100644 --- a/src/polkit/polkitunixnetgroup.c +++ b/src/polkit/polkitunixnetgroup.c @@ -194,6 +194,9 @@ polkit_unix_netgroup_set_name (PolkitUnixNetgroup *group, PolkitIdentity * polkit_unix_netgroup_new (const gchar *name) { +#ifndef HAVE_SETNETGRENT + g_assert_not_reached(); +#endif g_return_val_if_fail (name != NULL, NULL); return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_NETGROUP, "name", name, diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c index 4b4f8fd..e19b009 100644 --- a/src/polkitbackend/polkitbackendduktapeauthority.c +++ b/src/polkitbackend/polkitbackendduktapeauthority.c @@ -1036,6 +1036,7 @@ js_polkit_user_is_in_netgroup (duk_context *cx) const char *netgroup; gboolean is_in_netgroup = FALSE; +#ifdef HAVE_SETNETGRENT user = duk_require_string (cx, 0); netgroup = duk_require_string (cx, 1); @@ -1046,6 +1047,7 @@ js_polkit_user_is_in_netgroup (duk_context *cx) { is_in_netgroup = TRUE; } +#endif duk_push_boolean (cx, is_in_netgroup); return 1; diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c index 056d9a8..36c2f3d 100644 --- a/src/polkitbackend/polkitbackendinteractiveauthority.c +++ b/src/polkitbackend/polkitbackendinteractiveauthority.c @@ -2233,25 +2233,26 @@ get_users_in_net_group (PolkitIdentity *group, GList *ret; ret = NULL; +#ifdef HAVE_SETNETGRENT name = polkit_unix_netgroup_get_name (POLKIT_UNIX_NETGROUP (group)); -#ifdef HAVE_SETNETGRENT_RETURN +# ifdef HAVE_SETNETGRENT_RETURN if (setnetgrent (name) == 0) { g_warning ("Error looking up net group with name %s: %s", name, g_strerror (errno)); goto out; } -#else +# else setnetgrent (name); -#endif +# endif /* HAVE_SETNETGRENT_RETURN */ for (;;) { -#if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) +# if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) const char *hostname, *username, *domainname; -#else +# else char *hostname, *username, *domainname; -#endif +# endif /* defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) */ PolkitIdentity *user; GError *error = NULL; @@ -2282,6 +2283,7 @@ get_users_in_net_group (PolkitIdentity *group, out: endnetgrent (); +#endif /* HAVE_SETNETGRENT */ return ret; } diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp index 9b752d1..09b2878 100644 --- a/src/polkitbackend/polkitbackendjsauthority.cpp +++ b/src/polkitbackend/polkitbackendjsauthority.cpp @@ -1520,6 +1520,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx, JS::CallArgs args = JS::CallArgsFromVp (argc, vp); +#ifdef HAVE_SETNETGRENT JS::RootedString usrstr (authority->priv->cx); usrstr = args[0].toString(); user = JS_EncodeStringToUTF8 (cx, usrstr); @@ -1534,7 +1535,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx, { is_in_netgroup = true; } - +#endif ret = true; args.rval ().setBoolean (is_in_netgroup); diff --git a/test/polkit/polkitidentitytest.c b/test/polkit/polkitidentitytest.c index e91967b..e829aaa 100644 --- a/test/polkit/polkitidentitytest.c +++ b/test/polkit/polkitidentitytest.c @@ -19,6 +19,7 @@ * Author: Nikki VonHollen */ +#include "config.h" #include "glib.h" #include #include @@ -145,11 +146,15 @@ struct ComparisonTestData comparison_test_data [] = { {"unix-group:root", "unix-group:jane", FALSE}, {"unix-group:jane", "unix-group:jane", TRUE}, +#ifdef HAVE_SETNETGRENT {"unix-netgroup:foo", "unix-netgroup:foo", TRUE}, {"unix-netgroup:foo", "unix-netgroup:bar", FALSE}, +#endif {"unix-user:root", "unix-group:root", FALSE}, +#ifdef HAVE_SETNETGRENT {"unix-user:jane", "unix-netgroup:foo", FALSE}, +#endif {NULL}, }; @@ -181,11 +186,13 @@ main (int argc, char *argv[]) g_test_add_data_func ("/PolkitIdentity/group_string_2", "unix-group:jane", test_string); g_test_add_data_func ("/PolkitIdentity/group_string_3", "unix-group:users", test_string); +#ifdef HAVE_SETNETGRENT g_test_add_data_func ("/PolkitIdentity/netgroup_string", "unix-netgroup:foo", test_string); + g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant); +#endif g_test_add_data_func ("/PolkitIdentity/user_gvariant", "unix-user:root", test_gvariant); g_test_add_data_func ("/PolkitIdentity/group_gvariant", "unix-group:root", test_gvariant); - g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant); add_comparison_tests (); diff --git a/test/polkit/polkitunixnetgrouptest.c b/test/polkit/polkitunixnetgrouptest.c index 3701ba1..e3352eb 100644 --- a/test/polkit/polkitunixnetgrouptest.c +++ b/test/polkit/polkitunixnetgrouptest.c @@ -19,6 +19,7 @@ * Author: Nikki VonHollen */ +#include "config.h" #include "glib.h" #include #include @@ -69,7 +70,9 @@ int main (int argc, char *argv[]) { g_test_init (&argc, &argv, NULL); +#ifdef HAVE_SETNETGRENT g_test_add_func ("/PolkitUnixNetgroup/new", test_new); g_test_add_func ("/PolkitUnixNetgroup/set_name", test_set_name); +#endif return g_test_run (); } diff --git a/test/polkitbackend/test-polkitbackendjsauthority.c b/test/polkitbackend/test-polkitbackendjsauthority.c index 71aad23..fdd28f3 100644 --- a/test/polkitbackend/test-polkitbackendjsauthority.c +++ b/test/polkitbackend/test-polkitbackendjsauthority.c @@ -137,12 +137,14 @@ test_get_admin_identities (void) "unix-group:users" } }, +#ifdef HAVE_SETNETGRENT { "net.company.action3", { "unix-netgroup:foo" } }, +#endif }; guint n; -- 2.25.1 ================================================ FILE: package/polkit/0002-Improve-meson_post_install-script.patch ================================================ From 6c8022392713955c5ae0061e22b50a16a1c2252a Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Thu, 15 Jul 2021 12:36:05 +0000 Subject: [PATCH] Improve meson_post_install script [Retrieved from: https://gitlab.freedesktop.org/polkit/polkit/-/commit/6c8022392713955c5ae0061e22b50a16a1c2252a] Signed-off-by: Fabrice Fontaine --- .gitlab-ci.yml | 3 +-- meson_post_install.py | 58 +++++++++++++++++++++++++++++++++++-------- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8ac3e9f..6d0abb4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,8 +26,6 @@ build_stable: before_script: - dnf upgrade -y --nogpgcheck fedora-release fedora-repos* - dnf update -y && dnf install -y $DEPENDENCIES - - getent group polkitd >/dev/null || groupadd -r polkitd - - getent passwd polkitd >/dev/null || useradd -r -g polkitd -d / -s /sbin/nologin -c "User for polkitd" polkitd script: - meson setup @@ -43,6 +41,7 @@ build_stable: - meson compile -C builddir - meson test -C builddir - meson install -C builddir + - DESTDIR=$(pwd)/DESTDIR meson install -C builddir artifacts: name: 'test logs' when: 'always' diff --git a/meson_post_install.py b/meson_post_install.py index 0a0fccf..0ab7469 100644 --- a/meson_post_install.py +++ b/meson_post_install.py @@ -1,20 +1,44 @@ #!/usr/bin/env python3 -import getpass import os import pwd import sys +destdir = os.environ.get('DESTDIR') prefix = os.environ['MESON_INSTALL_DESTDIR_PREFIX'] -bindir = os.path.join(prefix, sys.argv[1]) -pkgdatadir = os.path.join(prefix, sys.argv[2]) -pkglibdir = os.path.join(prefix, sys.argv[3]) -pkgsysconfdir = os.path.join(prefix, sys.argv[4]) +def destdir_path(p): + if os.path.isabs(p): + if destdir is None: + return p + else: + return os.path.join(destdir, os.path.relpath(p, '/')) + else: + return os.path.join(prefix, p) -polkitd_uid = pwd.getpwnam(sys.argv[5]).pw_uid +bindir = destdir_path(sys.argv[1]) +pkgdatadir = destdir_path(sys.argv[2]) +pkglibdir = destdir_path(sys.argv[3]) +pkgsysconfdir = destdir_path(sys.argv[4]) +polkitd_user = sys.argv[5] -os.chmod(os.path.join(bindir, 'pkexec'), 0o4775) +try: + polkitd_uid = pwd.getpwnam(polkitd_user).pw_uid +except KeyError: + polkitd_uid = None + +dst = os.path.join(bindir, 'pkexec') + +if os.geteuid() == 0: + os.chmod(dst, 0o4755) + os.chown(dst, 0, -1) +else: + print( + 'Owner and mode of {} need to be setuid root (04755) after ' + 'installation'.format( + dst, + ) + ) dst_dirs = [ os.path.join(pkgsysconfdir, 'rules.d'), @@ -24,13 +48,27 @@ dst_dirs = [ for dst in dst_dirs: if not os.path.exists(dst): os.makedirs(dst, mode=0o700) - if getpass.getuser() == "root": + if os.geteuid() == 0 and polkitd_uid is not None: os.chown(dst, polkitd_uid, -1) + else: + print( + 'Owner of {} needs to be set to {} after installation'.format( + dst, polkitd_user, + ) + ) # polkit-agent-helper-1 need to be setuid root because it's used to # authenticate not only the invoking user, but possibly also root # and/or other users. dst = os.path.join(pkglibdir, 'polkit-agent-helper-1') -os.chmod(dst, 0o4755) -if getpass.getuser() == "root": + +if os.geteuid() == 0: + os.chmod(dst, 0o4755) os.chown(dst, 0, -1) +else: + print( + 'Owner and mode of {} need to be setuid root (04755) after ' + 'installation'.format( + dst, + ) + ) -- GitLab ================================================ FILE: package/polkit/0003-build-Remove-redundant-computation-of-dbus-data-directory.patch ================================================ From 9fa097f4dde92a0c1675400228b4cb965ed3e123 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Thu, 3 Jun 2021 18:55:29 +0100 Subject: [PATCH] build: Remove redundant computation of dbus data directory We were asking pkg-config "if I define ${datadir} to pk_prefix/pk_datadir, what would ${datadir} be?" but the answer is obviously always going to be pk_prefix/pk_datadir. Signed-off-by: Simon McVittie [Retrieved (and slightly updated for duktape fork) from: https://gitlab.freedesktop.org/polkit/polkit/-/commit/9fa097f4dde92a0c1675400228b4cb965ed3e123] Signed-off-by: Fabrice Fontaine --- meson.build | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 6a6799e..03a7683 100644 --- a/meson.build +++ b/meson.build @@ -136,8 +136,7 @@ assert(cc.has_function('XML_ParserCreate', dependencies: expat_dep), 'Can\'t fin endif dbus_dep = dependency('dbus-1') -dbus_confdir = dbus_dep.get_pkgconfig_variable('datadir', define_variable: ['datadir', pk_prefix / pk_datadir]) #changed from sysconfdir with respect to commit#8eada3836465838 -dbus_policydir = dbus_confdir / 'dbus-1/system.d' +dbus_policydir = pk_prefix / pk_datadir / 'dbus-1/system.d' dbus_system_bus_services_dir = dbus_dep.get_pkgconfig_variable('system_bus_services_dir', define_variable: ['datadir', pk_prefix / pk_datadir]) # check OS -- GitLab ================================================ FILE: package/polkit/0004-build-Don-t-require-dbus-development-files.patch ================================================ From 4bb2157adae620c8b07caf5a24b177d1f90f2fbb Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Thu, 3 Jun 2021 18:57:00 +0100 Subject: [PATCH] build: Don't require dbus development files We don't actually need libdbus, only the dbus-daemon's installation directory for system services, which in practice is always going to be /usr/share/dbus-1/system-services. Signed-off-by: Simon McVittie [Retrieved (and slightly updated for duktape fork) from: https://gitlab.freedesktop.org/polkit/polkit/-/commit/4bb2157adae620c8b07caf5a24b177d1f90f2fbb] Signed-off-by: Fabrice Fontaine --- meson.build | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 03a7683..539ec7a 100644 --- a/meson.build +++ b/meson.build @@ -135,9 +135,14 @@ assert(cc.has_function('XML_ParserCreate', dependencies: expat_dep), 'Can\'t fin js_dep = dependency('mozjs-78') endif -dbus_dep = dependency('dbus-1') +dbus_dep = dependency('dbus-1', required: false) dbus_policydir = pk_prefix / pk_datadir / 'dbus-1/system.d' -dbus_system_bus_services_dir = dbus_dep.get_pkgconfig_variable('system_bus_services_dir', define_variable: ['datadir', pk_prefix / pk_datadir]) +if dbus_dep.found() + dbus_system_bus_services_dir = dbus_dep.get_pkgconfig_variable('system_bus_services_dir', define_variable: ['datadir', pk_prefix / pk_datadir]) +else + # libdbus development files not installed, assume a standard layout + dbus_system_bus_services_dir = pk_prefix / pk_datadir / 'dbus-1' / 'system-services' +endif # check OS host_system = host_machine.system() -- GitLab ================================================ FILE: package/polkit/Config.in ================================================ config BR2_PACKAGE_POLKIT bool "polkit" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2, dbus depends on BR2_USE_MMU # libglib2, dbus depends on BR2_USE_WCHAR # libglib2 depends on !BR2_STATIC_LIBS # duktape select BR2_PACKAGE_DBUS # runtime select BR2_PACKAGE_DUKTAPE select BR2_PACKAGE_EXPAT select BR2_PACKAGE_LIBGLIB2 help PolicyKit is a toolkit for defining and handling authorizations. It is used for allowing unprivileged processes to speak to privileged processes. http://www.freedesktop.org/wiki/Software/polkit comment "polkit needs a toolchain with dynamic library, wchar, threads, gcc >= 7" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/polkit/S50polkit ================================================ #!/bin/sh DAEMON="polkitd" DAEMON_PATH="/usr/lib/polkit-1/${DAEMON}" PIDFILE="/var/run/${DAEMON}.pid" POLKITD_ARGS="--no-debug" # polkitd does not create a pidfile, so pass "-n" in the command line # and use "-m" to instruct start-stop-daemon to create one. start() { printf 'Starting %s: ' "${DAEMON}" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -bmSqp "$PIDFILE" -x ${DAEMON_PATH} -- ${POLKITD_ARGS} status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "${DAEMON}" start-stop-daemon -Kqp "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart|reload) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/polkit/polkit.hash ================================================ # Locally calculated after checking pgp signature sha256 88d078f1d1f653fd31fe42e46cc3d9b7dd468e70684075e32fe1766dc7ece517 polkit-0.119.tar.gz # Locally calculated sha256 d2e2aa973e29c75e1b492e67ea7b7da9de2d501d49a934657971fd74f9a0b0a8 COPYING ================================================ FILE: package/polkit/polkit.mk ================================================ ################################################################################ # # polkit # ################################################################################ POLKIT_VERSION = 0.119 POLKIT_SITE = $(call github,aduskett,polkit-duktape,v$(POLKIT_VERSION)) POLKIT_LICENSE = GPL-2.0 POLKIT_LICENSE_FILES = COPYING POLKIT_CPE_ID_VENDOR = polkit_project POLKIT_INSTALL_STAGING = YES POLKIT_DEPENDENCIES = \ duktape libglib2 host-intltool expat $(TARGET_NLS_DEPENDENCIES) POLKIT_LDFLAGS = $(TARGET_NLS_LIBS) POLKIT_CONF_OPTS = \ -Dman=false \ -Dexamples=false \ -Dsession_tracking=ConsoleKit \ -Djs_engine=duktape ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) POLKIT_CONF_OPTS += -Dintrospection=true POLKIT_DEPENDENCIES += gobject-introspection else POLKIT_CONF_OPTS += -Dintrospection=false endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) POLKIT_DEPENDENCIES += linux-pam POLKIT_CONF_OPTS += -Dauthfw=pam else POLKIT_CONF_OPTS += -Dauthfw=shadow endif # polkit.{its,loc} are needed for gvfs and must be installed in $(HOST_DIR) # and not $(STAGING_DIR) define POLKIT_INSTALL_ITS $(INSTALL) -D -m 644 $(@D)/data/polkit.its \ $(HOST_DIR)/share/gettext/its/polkit.its $(INSTALL) -D -m 644 $(@D)/data/polkit.loc \ $(HOST_DIR)/share/gettext/its/polkit.loc endef POLKIT_POST_INSTALL_TARGET_HOOKS += POLKIT_INSTALL_ITS define POLKIT_USERS polkitd -1 polkitd -1 * - - - Polkit Daemon endef define POLKIT_PERMISSIONS /etc/polkit-1 r 750 root polkitd - - - - - /usr/share/polkit-1 r 750 root polkitd - - - - - /usr/bin/pkexec f 4755 root root - - - - - endef define POLKIT_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(POLKIT_PKGDIR)/polkit.service \ $(TARGET_DIR)/usr/lib/systemd/system/polkit.service endef define POLKIT_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/polkit/S50polkit \ $(TARGET_DIR)/etc/init.d/S50polkit endef $(eval $(meson-package)) ================================================ FILE: package/polkit/polkit.service ================================================ [Unit] Description=Authorization Manager Documentation=man:polkit(8) [Service] Type=dbus BusName=org.freedesktop.PolicyKit1 ExecStart=/usr/lib/polkit-1/polkitd --no-debug [Install] WantedBy=multi-user.target ================================================ FILE: package/popperjs/Config.in ================================================ config BR2_PACKAGE_POPPERJS bool "popperjs" help Popper.js, a JavaScript Tooltip & Popover Positioning Engine. https://popper.js.org ================================================ FILE: package/popperjs/popperjs.hash ================================================ # Locally computed: sha256 83eecef51d10826faca2cd5cabb344e0bef6d4127d7e728db9e4d8308b7b15d1 popperjs-1.16.0.tar.gz sha256 2961310ed05cd9373a08b8191c071425a7fede0ca5d807ca38fa5f5f61c5b834 LICENSE.md ================================================ FILE: package/popperjs/popperjs.mk ================================================ ################################################################################ # # popperjs # ################################################################################ POPPERJS_VERSION = 1.16.0 POPPERJS_SITE = $(call github,popperjs,popper-core,v$(POPPERJS_VERSION)) POPPERJS_LICENSE = MIT POPPERJS_LICENSE_FILES = LICENSE.md define POPPERJS_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/dist/umd/popper.min.js \ $(TARGET_DIR)/var/www/popperjs/js/popper.min.js $(INSTALL) -m 0644 -D $(@D)/dist/umd/popper-utils.min.js \ $(TARGET_DIR)/var/www/popperjs/js/popper-utils.min.js endef $(eval $(generic-package)) ================================================ FILE: package/poppler/0001-glib-poppler-private.h-fix-build-with-gcc-11.patch ================================================ From 1ae5ff981ae0484383c4733c56b72e56a3a37584 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 14 Aug 2021 10:43:13 +0200 Subject: [PATCH] glib/poppler-private.h: fix build with gcc 11 Fix the following build failure with gcc 11: In file included from /tmp/instance-0/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/glib/gthread.h:32, from /tmp/instance-0/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/glib/gasyncqueue.h:32, from /tmp/instance-0/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/glib.h:32, from /tmp/instance-0/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/gobject/gbinding.h:28, from /tmp/instance-0/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/glib-object.h:22, from /tmp/instance-0/output-1/build/poppler-0.84.0/glib/poppler.h:22, from /tmp/instance-0/output-1/build/poppler-0.84.0/glib/poppler-action.cc:19: /tmp/instance-0/output-1/build/poppler-0.84.0/glib/poppler-action.cc: In function 'GType poppler_dest_get_type()': /tmp/instance-0/output-1/build/poppler-0.84.0/glib/poppler-private.h:155:13: error: argument 2 of '__atomic_load' must not be a pointer to a 'volatile' type 155 | if (g_once_init_enter (&g_define_type_id__volatile)) { \ | ^~~~~~~~~~~~~~~~~ /tmp/instance-0/output-1/build/poppler-0.84.0/glib/poppler-action.cc:28:1: note: in expansion of macro 'POPPLER_DEFINE_BOXED_TYPE' 28 | POPPLER_DEFINE_BOXED_TYPE (PopplerDest, poppler_dest, poppler_dest_copy, poppler_dest_free) | ^~~~~~~~~~~~~~~~~~~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/dfcaac6487aaeb10412c3fe72a23135f8a70fefe Signed-off-by: Fabrice Fontaine [Upstream status: not needed because of https://gitlab.freedesktop.org/poppler/poppler/-/commit/47de887d7658cfd68df44b3acf710971054f957b] --- glib/poppler-private.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glib/poppler-private.h b/glib/poppler-private.h index 86b587fd..ff15eab0 100644 --- a/glib/poppler-private.h +++ b/glib/poppler-private.h @@ -152,7 +152,7 @@ gboolean _poppler_convert_pdf_date_to_gtime (const GooString *date, GType \ type_name##_get_type (void) \ { \ - static volatile gsize g_define_type_id__volatile = 0; \ + static gsize g_define_type_id__volatile = 0; \ if (g_once_init_enter (&g_define_type_id__volatile)) { \ GType g_define_type_id = \ g_boxed_type_register_static (g_intern_static_string (#TypeName), \ -- 2.30.2 ================================================ FILE: package/poppler/Config.in ================================================ config BR2_PACKAGE_POPPLER bool "poppler" depends on BR2_USE_WCHAR depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++14, constexpr select BR2_PACKAGE_FONTCONFIG help Poppler is a PDF rendering library based on the xpdf-3.0 code base. http://poppler.freedesktop.org/ if BR2_PACKAGE_POPPLER config BR2_PACKAGE_POPPLER_QT5 bool "Qt5 support" depends on BR2_PACKAGE_QT5 select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_WIDGETS select BR2_PACKAGE_QT5BASE_XML help Build Qt support into the Poppler library config BR2_PACKAGE_POPPLER_UTILS bool "command line utils" help Compile poppler command line utils. endif comment "poppler needs a toolchain w/ wchar, C++, threads, dynamic library, gcc >= 5" depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 ================================================ FILE: package/poppler/poppler.hash ================================================ # Locally calculated sha256 c7a130da743b38a548f7a21fe5940506fb1949f4ebdd3209f0e5b302fa139731 poppler-0.84.0.tar.xz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/poppler/poppler.mk ================================================ ################################################################################ # # poppler # ################################################################################ POPPLER_VERSION = 0.84.0 POPPLER_SOURCE = poppler-$(POPPLER_VERSION).tar.xz POPPLER_SITE = http://poppler.freedesktop.org POPPLER_DEPENDENCIES = fontconfig host-pkgconf POPPLER_LICENSE = GPL-2.0+ POPPLER_LICENSE_FILES = COPYING POPPLER_CPE_ID_VENDOR = freedesktop POPPLER_INSTALL_STAGING = YES POPPLER_CONF_OPTS = \ -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \ -DBUILD_GTK_TESTS=OFF \ -DBUILD_QT5_TESTS=OFF \ -DBUILD_CPP_TESTS=OFF \ -DENABLE_GTK_DOC=OFF ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) POPPLER_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif ifeq ($(BR2_PACKAGE_BOOST),y) POPPLER_DEPENDENCIES += boost endif ifeq ($(BR2_PACKAGE_JPEG),y) POPPLER_DEPENDENCIES += jpeg POPPLER_CONF_OPTS += -DENABLE_DCTDECODER=libjpeg -DWITH_JPEG=ON else POPPLER_CONF_OPTS += -DENABLE_DCTDECODER=none -DWITH_JPEG=OFF endif ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) POPPLER_DEPENDENCIES += gobject-introspection POPPLER_CONF_OPTS += -DENABLE_GOBJECT_INTROSPECTION=ON else POPPLER_CONF_OPTS += -DENABLE_GOBJECT_INTROSPECTION=OFF endif ifeq ($(BR2_PACKAGE_LIBPNG),y) POPPLER_DEPENDENCIES += libpng POPPLER_CONF_OPTS += -DWITH_PNG=ON else POPPLER_CONF_OPTS += -DWITH_PNG=OFF endif ifeq ($(BR2_PACKAGE_LCMS2),y) POPPLER_DEPENDENCIES += lcms2 POPPLER_CONF_OPTS += -DENABLE_CMS=lcms2 else POPPLER_CONF_OPTS += -DENABLE_CMS=none endif ifeq ($(BR2_PACKAGE_OPENJPEG),y) POPPLER_DEPENDENCIES += openjpeg POPPLER_CONF_OPTS += -DENABLE_LIBOPENJPEG=openjpeg2 else POPPLER_CONF_OPTS += -DENABLE_LIBOPENJPEG=none endif ifeq ($(BR2_PACKAGE_LIBCURL),y) POPPLER_DEPENDENCIES += libcurl POPPLER_CONF_OPTS += -DENABLE_LIBCURL=ON else POPPLER_CONF_OPTS += -DENABLE_LIBCURL=OFF endif ifeq ($(BR2_PACKAGE_POPPLER_QT5),y) POPPLER_DEPENDENCIES += qt5base POPPLER_CONF_OPTS += -DENABLE_QT5=ON else POPPLER_CONF_OPTS += -DENABLE_QT5=OFF endif ifeq ($(BR2_PACKAGE_POPPLER_UTILS),y) POPPLER_CONF_OPTS += -DENABLE_UTILS=ON else POPPLER_CONF_OPTS += -DENABLE_UTILS=OFF endif ifeq ($(BR2_PACKAGE_ZLIB),y) POPPLER_DEPENDENCIES += zlib POPPLER_CONF_OPTS += -DENABLE_ZLIB=ON else POPPLER_CONF_OPTS += -DENABLE_ZLIB=OFF endif ifeq ($(BR2_PACKAGE_CAIRO),y) POPPLER_DEPENDENCIES += cairo POPPLER_CONF_OPTS += -DWITH_Cairo=ON else POPPLER_CONF_OPTS += -DWITH_Cairo=OFF endif ifeq ($(BR2_PACKAGE_TIFF),y) POPPLER_DEPENDENCIES += tiff POPPLER_CONF_OPTS += -DWITH_TIFF=ON else POPPLER_CONF_OPTS += -DWITH_TIFF=OFF endif ifeq ($(BR2_PACKAGE_LIBGLIB2),y) POPPLER_DEPENDENCIES += libglib2 POPPLER_CONF_OPTS += -DENABLE_GLIB=ON else POPPLER_CONF_OPTS += -DENABLE_GLIB=OFF endif ifeq ($(BR2_PACKAGE_LIBNSS),y) POPPLER_DEPENDENCIES += libnss POPPLER_CONF_OPTS += -DWITH_NSS3=ON else POPPLER_CONF_OPTS += -DWITH_NSS3=OFF endif ifeq ($(BR2_SOFT_FLOAT),y) POPPLER_CONF_OPTS += -DUSE_FLOAT=OFF else POPPLER_CONF_OPTS += -DUSE_FLOAT=ON endif $(eval $(cmake-package)) ================================================ FILE: package/popt/0001-add-libiconv-to-popt.pc.patch ================================================ Add LTLIBICONV to popt.pc.in Add ${LTLIBICONV} to popt.pc.in so applications such as shairport-sync will know that they must link with -liconv when building statically Fixes: - http://autobuild.buildroot.org/results/c5b0d1d2867e49c022a2ad971dd9f358ff0f3865 Signed-off-by: Fabrice Fontaine diff -Naurp popt-1.18-vanilla/popt.pc.in popt-1.18/popt.pc.in --- popt-1.18-vanilla/popt.pc.in 2020-03-24 10:36:25.000000000 +0100 +++ popt-1.18/popt.pc.in 2020-09-18 21:18:03.112609343 +0200 @@ -7,4 +7,5 @@ Name: popt Version: @VERSION@ Description: popt library. Libs: -L${libdir} -lpopt +Libs.private: @LTLIBICONV@ Cflags: -I${includedir} ================================================ FILE: package/popt/0002-Detect-glob_pattern_p.patch ================================================ From 3938da1286534e4b280340411336eed5b6311d1b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 15 Jul 2020 23:21:32 +0200 Subject: [PATCH] Detect glob_pattern_p() The current popt build system tests the existence of , and then assumes that if __GLIBC__ is defined, then glob_pattern_p() must be available. Unfortunately, that's not true with uClibc: may be installed, but not necessarily the GNU glob extensions... and uClibc defines __GLIBC__. This is causing build issues with certain uClibc toolchains that do not have GNU glob extensions enabled. To fix this, this patch adds an AC_CHECK_FUNCS() test for glob_pattern_p, and uses that to find out whether glob_pattern_p() is available or not. Signed-off-by: Thomas Petazzoni [Retrieved (and slightly updated) from: https://git.buildroot.net/buildroot/tree/package/popt/0003-glob-detection.patch] Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/rpm-software-management/popt/commit/3938da1286534e4b280340411336eed5b6311d1b] --- configure.ac | 2 +- src/poptconfig.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index a5568c4..3b71d1a 100755 --- a/configure.ac +++ b/configure.ac @@ -50,7 +50,7 @@ AC_ARG_ENABLE(build-gcov, ]) AC_SEARCH_LIBS(setreuid, [ucb]) -AC_CHECK_FUNCS(getuid geteuid iconv mtrace secure_getenv __secure_getenv setreuid setuid stpcpy strerror vasprintf srandom) +AC_CHECK_FUNCS(getuid geteuid iconv mtrace secure_getenv __secure_getenv setreuid setuid stpcpy strerror vasprintf srandom glob_pattern_p) AM_GNU_GETTEXT_VERSION([0.18.2]) AM_GNU_GETTEXT([external]) diff --git a/src/poptconfig.c b/src/poptconfig.c index 9d97ccd..b4d1b76 100644 --- a/src/poptconfig.c +++ b/src/poptconfig.c @@ -21,7 +21,7 @@ #if defined(HAVE_GLOB_H) #include -#if !defined(__GLIBC__) +#if !defined(HAVE_GLOB_PATTERN_P) /* Return nonzero if PATTERN contains any metacharacters. Metacharacters can be quoted with backslashes if QUOTE is nonzero. */ static int ================================================ FILE: package/popt/0003-configure-replace-deprecated-macros.patch ================================================ From f492b19f59229b0494b5b9ffe5c660a35493a405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Mon, 29 Jun 2020 18:58:09 +0200 Subject: [PATCH] configure: replace deprecated macros * use LT_INIT instead of deprecated AC_PROG_LIBTOOL * use AS_HELP_STRING instead of deprecated AC_HELP_STRING * quote macros [Retrieved from: https://github.com/rpm-software-management/popt/commit/f492b19f59229b0494b5b9ffe5c660a35493a405] Signed-off-by: Fabrice Fontaine --- configure.ac | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) mode change 100755 => 100644 configure.ac diff --git a/configure.ac b/configure.ac old mode 100755 new mode 100644 index 3b71d1a..009ae7b --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ -AC_PREREQ(2.57) -AC_INIT(popt, 1.18, rpm-maint@lists.rpm.org) +AC_PREREQ([2.57]) +AC_INIT([popt], [1.18], [rpm-maint@lists.rpm.org]) AC_CONFIG_SRCDIR([src/popt.h]) AC_CONFIG_HEADERS([config.h]) @@ -14,11 +14,11 @@ AC_USE_SYSTEM_EXTENSIONS AM_PROG_AR AC_PROG_INSTALL -AC_PROG_LIBTOOL +LT_INIT AC_SYS_LARGEFILE -AC_CHECK_HEADERS(fnmatch.h glob.h langinfo.h libintl.h mcheck.h stdalign.h) +AC_CHECK_HEADERS([fnmatch.h glob.h langinfo.h libintl.h mcheck.h stdalign.h]) # For some systems we know that we have ld_version scripts. # Use it then as default. @@ -32,15 +32,15 @@ case "${host}" in ;; esac AC_ARG_ENABLE([ld-version-script], - AC_HELP_STRING([--enable-ld-version-script], + [AS_HELP_STRING([--enable-ld-version-script], [enable/disable use of linker version script. - (default is system dependent)]), + (default is system dependent)])], [have_ld_version_script=$enableval], [ : ] ) AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes") -AC_ARG_ENABLE(build-gcov, - AS_HELP_STRING([--enable-build-gcov], [build POPT instrumented for gcov]), [dnl +AC_ARG_ENABLE([build-gcov], + [AS_HELP_STRING([--enable-build-gcov], [build POPT instrumented for gcov])], [dnl if test ".$enableval" = .yes; then if test ".`$CC --version 2>&1 | grep 'GCC'`" != .; then dnl # GNU GCC (usually "gcc") @@ -49,8 +49,8 @@ AC_ARG_ENABLE(build-gcov, fi ]) -AC_SEARCH_LIBS(setreuid, [ucb]) -AC_CHECK_FUNCS(getuid geteuid iconv mtrace secure_getenv __secure_getenv setreuid setuid stpcpy strerror vasprintf srandom glob_pattern_p) +AC_SEARCH_LIBS([setreuid], [ucb]) +AC_CHECK_FUNCS([getuid geteuid iconv mtrace secure_getenv __secure_getenv setreuid setuid stpcpy strerror vasprintf srandom glob_pattern_p]) AM_GNU_GETTEXT_VERSION([0.18.2]) AM_GNU_GETTEXT([external]) ================================================ FILE: package/popt/0004-fix-build-without-wchar.patch ================================================ From 41911aac46d69df6a205af59d60f23a418b0e875 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 2 Sep 2020 11:55:17 +0200 Subject: [PATCH] fix build without wchar Check for wchar.h and use HAVE_WCHAR_H instead of hardcoding POPT_WCHAR_HACK to fix the build with (embedded) toolchains that don't support wchar Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/rpm-software-management/popt/commit/41911aac46d69df6a205af59d60f23a418b0e875] --- configure.ac | 2 +- src/popthelp.c | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 009ae7b..1fce6df 100644 --- a/configure.ac +++ b/configure.ac @@ -18,7 +18,7 @@ LT_INIT AC_SYS_LARGEFILE -AC_CHECK_HEADERS([fnmatch.h glob.h langinfo.h libintl.h mcheck.h stdalign.h]) +AC_CHECK_HEADERS([fnmatch.h glob.h langinfo.h libintl.h mcheck.h stdalign.h wchar.h]) # For some systems we know that we have ld_version scripts. # Use it then as default. diff --git a/src/popthelp.c b/src/popthelp.c index 9a3f489..5cbc1f4 100644 --- a/src/popthelp.c +++ b/src/popthelp.c @@ -15,8 +15,7 @@ #include #endif -#define POPT_WCHAR_HACK -#ifdef POPT_WCHAR_HACK +#ifdef HAVE_WCHAR_H #include /* for mbsrtowcs */ #endif #include "poptint.h" @@ -118,7 +117,7 @@ static size_t maxColumnWidth(FILE *fp) static inline size_t stringDisplayWidth(const char *s) { size_t n = strlen(s); -#ifdef POPT_WCHAR_HACK +#ifdef HAVE_WCHAR_H mbstate_t t; memset ((void *)&t, 0, sizeof (t)); /* In initial state. */ ================================================ FILE: package/popt/0005-fix-build-without-mbstate_t.patch ================================================ From e4788a0f9d820574a165b2609ff16b717ce0baba Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 19 Sep 2020 18:51:15 +0200 Subject: [PATCH] fix build without mbstate_t Commit 41911aac46d69df6a205af59d60f23a418b0e875 tried to fix build without wchar by checking for the availability of wchar.h however some toolchains have wchar.h but does not define mbstate_t and mbsrtowcs so replace HAVE_WCHAR_H by HAVE_MBSRTOWCS Fixes: - http://autobuild.buildroot.org/results/27f184af35468941173628e5e847a284c0b80d73 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/rpm-software-management/popt/pull/51] --- configure.ac | 4 ++-- src/popthelp.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 1fce6df..442086b 100644 --- a/configure.ac +++ b/configure.ac @@ -18,7 +18,7 @@ LT_INIT AC_SYS_LARGEFILE -AC_CHECK_HEADERS([fnmatch.h glob.h langinfo.h libintl.h mcheck.h stdalign.h wchar.h]) +AC_CHECK_HEADERS([fnmatch.h glob.h langinfo.h libintl.h mcheck.h stdalign.h]) # For some systems we know that we have ld_version scripts. # Use it then as default. @@ -50,7 +50,7 @@ AC_ARG_ENABLE([build-gcov], ]) AC_SEARCH_LIBS([setreuid], [ucb]) -AC_CHECK_FUNCS([getuid geteuid iconv mtrace secure_getenv __secure_getenv setreuid setuid stpcpy strerror vasprintf srandom glob_pattern_p]) +AC_CHECK_FUNCS([getuid geteuid iconv mtrace secure_getenv __secure_getenv setreuid setuid stpcpy strerror vasprintf srandom glob_pattern_p mbsrtowcs]) AM_GNU_GETTEXT_VERSION([0.18.2]) AM_GNU_GETTEXT([external]) diff --git a/src/popthelp.c b/src/popthelp.c index f604516..b4ab9b4 100644 --- a/src/popthelp.c +++ b/src/popthelp.c @@ -15,7 +15,7 @@ #include #endif -#ifdef HAVE_WCHAR_H +#ifdef HAVE_MBSRTOWCS #include /* for mbsrtowcs */ #endif #include "poptint.h" @@ -117,7 +117,7 @@ static size_t maxColumnWidth(FILE *fp) static inline size_t stringDisplayWidth(const char *s) { size_t n = strlen(s); -#ifdef HAVE_WCHAR_H +#ifdef HAVE_MBSRTOWCS mbstate_t t; memset ((void *)&t, 0, sizeof (t)); /* In initial state. */ -- 2.28.0 ================================================ FILE: package/popt/Config.in ================================================ config BR2_PACKAGE_POPT bool "popt" help Popt is a C library for parsing command line parameters. https://github.com/rpm-software-management/popt ================================================ FILE: package/popt/popt.hash ================================================ # Locally calculated: sha256 5159bc03a20b28ce363aa96765f37df99ea4d8850b1ece17d1e6ad5c24fdc5d1 popt-1.18.tar.gz sha256 518d4f2a05064cb9a8ec0ea02e86408af4feed6916f78ef42171465db8b383c5 COPYING ================================================ FILE: package/popt/popt.mk ================================================ ################################################################################ # # popt # ################################################################################ POPT_VERSION = 1.18 POPT_SITE = http://ftp.rpm.org/popt/releases/popt-1.x POPT_INSTALL_STAGING = YES POPT_LICENSE = MIT POPT_LICENSE_FILES = COPYING POPT_CPE_ID_VENDOR = popt_project POPT_GETTEXTIZE = YES POPT_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) # We're patching configure.ac POPT_AUTORECONF = YES POPT_CONF_ENV = ac_cv_va_copy=yes ifeq ($(BR2_PACKAGE_LIBICONV),y) POPT_CONF_ENV += am_cv_lib_iconv=yes POPT_CONF_OPTS += --with-libiconv-prefix=$(STAGING_DIR)/usr POPT_DEPENDENCIES += libiconv endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/portaudio/Config.in ================================================ comment "portaudio needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_PORTAUDIO bool "portaudio" depends on BR2_TOOLCHAIN_HAS_THREADS help PortAudio is a free, cross-platform, open-source, audio I/O library. http://www.portaudio.com/ if BR2_PACKAGE_PORTAUDIO config BR2_PACKAGE_PORTAUDIO_ALSA bool "alsa support" default y select BR2_PACKAGE_ALSA_LIB help Compile with ALSA support. config BR2_PACKAGE_PORTAUDIO_OSS bool "oss support" help Compile with OSS support. config BR2_PACKAGE_PORTAUDIO_CXX bool "C++ bindings" depends on BR2_INSTALL_LIBSTDCPP help Enables C++ bindings. endif # BR2_PACKAGE_PORTAUDIO ================================================ FILE: package/portaudio/portaudio.hash ================================================ # Locally calculated sha256 47efbf42c77c19a05d22e627d42873e991ec0c1357219c0d74ce6a2948cb2def pa_stable_v190700_20210406.tgz sha256 ec52a1952d701f94e5135719a47376da4ee0b4a0201f1cafb49f61db6480ac3d LICENSE.txt ================================================ FILE: package/portaudio/portaudio.mk ================================================ ################################################################################ # # portaudio # ################################################################################ PORTAUDIO_VERSION = 190700_20210406 PORTAUDIO_SITE = http://files.portaudio.com/archives PORTAUDIO_SOURCE = pa_stable_v$(PORTAUDIO_VERSION).tgz PORTAUDIO_INSTALL_STAGING = YES PORTAUDIO_MAKE = $(MAKE1) PORTAUDIO_LICENSE = portaudio license (MIT-like plus special clause) PORTAUDIO_LICENSE_FILES = LICENSE.txt PORTAUDIO_DEPENDENCIES = \ $(if $(BR2_PACKAGE_PORTAUDIO_ALSA),alsa-lib) PORTAUDIO_CONF_OPTS = \ $(if $(BR2_PACKAGE_PORTAUDIO_ALSA),--with-alsa,--without-alsa) \ $(if $(BR2_PACKAGE_PORTAUDIO_OSS),--with-oss,--without-oss) \ $(if $(BR2_PACKAGE_PORTAUDIO_CXX),--enable-cxx,--disable-cxx) $(eval $(autotools-package)) ================================================ FILE: package/postgis/0001-Add-HAVE_VASPRINTF-HAVE_ASPRINTF-templates.patch ================================================ From 7bf2fc388df10bc1760cd06594f50da0c78ee3a2 Mon Sep 17 00:00:00 2001 From: fidomax Date: Tue, 26 Jan 2021 07:33:17 +0300 Subject: [PATCH] Add HAVE_VASPRINTF HAVE_ASPRINTF templates It fixes autoreconf error: autoheader: warning: missing template: HAVE_ASPRINTF autoheader: Use AC_DEFINE([HAVE_ASPRINTF], [], [Description]) autoheader: warning: missing template: HAVE_VASPRINTF Signed-off-by: Maxim Kochetkov Fetch from: https://github.com/postgis/postgis/commit/d0ac5df49961d1d1a74b894f9941b973c0695c11.patch --- configure.ac | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configure.ac b/configure.ac index 9ac7051bb..dddb3aef7 100644 --- a/configure.ac +++ b/configure.ac @@ -11,6 +11,8 @@ dnl ********************************************************************** AC_INIT() AC_CONFIG_HEADERS([postgis_config.h]) +AH_TEMPLATE([HAVE_VASPRINTF]) +AH_TEMPLATE([HAVE_ASPRINTF]) AC_CONFIG_MACRO_DIR([macros]) AC_CONFIG_AUX_DIR([build-aux]) AC_PROG_INSTALL -- 2.30.0 ================================================ FILE: package/postgis/0002-Add-POSTGIS_DEBUG_LEVEL-define-to-configure.ac.patch ================================================ From 97d0cb4f4a6f3bec50729e3f896d4a84b796c5c6 Mon Sep 17 00:00:00 2001 From: fidomax Date: Tue, 26 Jan 2021 09:17:17 +0300 Subject: [PATCH] Add POSTGIS_DEBUG_LEVEL define to configure.ac In case of using autoreconf "#define POSTGIS_DEBUG_LEVEL 0" is removed from postgis_config.h.in so build failed with undefined POSTGIS_DEBUG_LEVEL. Signed-off-by: Maxim Kochetkov Fetch from: https://github.com/postgis/postgis/commit/2b2c2cb159cfcaacb75a4e74f17bd2834d61acd0.patch --- configure.ac | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configure.ac b/configure.ac index dddb3aef7..86e1597ee 100644 --- a/configure.ac +++ b/configure.ac @@ -1131,6 +1131,8 @@ else CPPFLAGS="-DNDEBUG $CPPFLAGS" fi +AC_DEFINE([POSTGIS_DEBUG_LEVEL], [0], [Define debug level. Default 0]) + dnl =========================================================================== dnl Allow the developer to disable the automatic updates of postgis_revision.h dnl with --without-phony-revision -- 2.30.0 ================================================ FILE: package/postgis/0003-Disable-forced-static-linking-of-liblwgeom.patch ================================================ From 845c18c1288b7a96592901baadb198f96dd71c46 Mon Sep 17 00:00:00 2001 From: fidomax Date: Tue, 26 Jan 2021 09:49:19 +0300 Subject: [PATCH] Disable forced static linking of liblwgeom In case of shared libs build fails: ld: cannot find -lgeos_c ld: attempted static link of dynamic object `/usr/lib/libproj.so' Signed-off-by: Maxim Kochetkov Fetch from: https://github.com/postgis/postgis/commit/98070faad220e12fcaed9a583a70a37c510b7c6b.patch --- loader/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/Makefile.in b/loader/Makefile.in index 9aebfe07f..9a0c90d3a 100644 --- a/loader/Makefile.in +++ b/loader/Makefile.in @@ -44,7 +44,7 @@ ICONV_CFLAGS=@ICONV_CFLAGS@ # liblwgeom LIBLWGEOM=../liblwgeom/liblwgeom.la -LDFLAGS += -static $(LIBLWGEOM) +LDFLAGS += $(LIBLWGEOM) # GTK includes and libraries GTK_CFLAGS = @GTK_CFLAGS@ @IGE_MAC_CFLAGS@ -- 2.30.0 ================================================ FILE: package/postgis/0004-Use-pkg-config-to-get-PROJ-version-if-available.patch ================================================ From 876a04a795fcb179e0dc802e260353012c4890f9 Mon Sep 17 00:00:00 2001 From: Maxim Kochetkov Date: Thu, 28 Jan 2021 08:12:57 +0300 Subject: [PATCH] Use pkg-config to get PROJ version if available In case of cross-compile AC_PROJ_VERSION([POSTGIS_PROJ_VERSION]) fails. So try to get version by pkg-config first Signed-off-by: Maxim Kochetkov Fetch from: https://github.com/postgis/postgis/commit/671a878982550e3c590d642620a6621b52c230c7.patch --- configure.ac | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 86e1597ee..016f81c7d 100644 --- a/configure.ac +++ b/configure.ac @@ -866,6 +866,7 @@ elif test ! -z "$PKG_CONFIG"; then [ PROJ_CPPFLAGS="$PROJ_CFLAGS" PROJ_LDFLAGS="$PROJ_LIBS" + POSTGIS_PROJ_VERSION=`$PKG_CONFIG proj --modversion | sed 's/\([[0-9]]\).*\([[0-9]]\).*\([[0-9]]\)/\1\2/'` ], [ PROJ_LDFLAGS="-lproj" @@ -887,8 +888,10 @@ AC_CHECK_HEADER([proj_api.h], )] ) -dnl Return the PROJ.4 version number -AC_PROJ_VERSION([POSTGIS_PROJ_VERSION]) +dnl Return the PROJ.4 version number if not detected by pkg-config +if test "x$POSTGIS_PROJ_VERSION" = "x"; then + AC_PROJ_VERSION([POSTGIS_PROJ_VERSION]) +fi AC_DEFINE_UNQUOTED([POSTGIS_PROJ_VERSION], [$POSTGIS_PROJ_VERSION], [PROJ library version]) AC_SUBST([POSTGIS_PROJ_VERSION]) CPPFLAGS="$CPPFLAGS_SAVE" -- 2.30.0 ================================================ FILE: package/postgis/0005-configure.ac-fix-cross-compilation-with-protobuf-c.patch ================================================ From 8b80c4bd848ff3d71b998dc8a4bd42627ed72581 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 17 Apr 2021 11:58:19 +0200 Subject: [PATCH] configure.ac: fix cross-compilation with protobuf-c Try to retrieve the version from pkg-config to avoid the following error: checking protobuf-c version... configure: error: in `/home/fabrice/buildroot/output/build/postgis-3.1.1': configure: error: cannot run test program while cross compiling Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/postgis/postgis/commit/8b80c4bd848ff3d71b998dc8a4bd42627ed72581] --- configure.ac | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 48ba070a40..df75fe6601 100644 --- a/configure.ac +++ b/configure.ac @@ -1004,6 +1004,7 @@ if test "$CHECK_PROTOBUF" != "no"; then PKG_CHECK_MODULES([PROTOBUFC], [libprotobuf-c >= 1.1.0], [ PROTOBUF_CPPFLAGS="$PROTOBUFC_CFLAGS"; PROTOBUF_LDFLAGS="$PROTOBUFC_LIBS"; + PROTOC_VERSION=`$PKG_CONFIG libprotobuf-c --modversion | sed 's/\([[0-9]]\).*\([[0-9]]\).*\([[0-9]]\)/\100\200\3/'` ], [ AC_MSG_RESULT([libprotobuf-c not found in pkg-config]) ]) @@ -1054,7 +1055,10 @@ if test "$CHECK_PROTOBUF" != "no"; then []) AC_MSG_CHECKING([protobuf-c version]) - AC_PROTOBUFC_VERSION([PROTOC_VERSION]) + dnl Return the protobuf-c version number if not detected by pkg-config + if test "x$PROTOC_VERSION" = "x"; then + AC_PROTOBUFC_VERSION([PROTOC_VERSION]) + fi if test ! "$PROTOC_VERSION" -ge 1001000; then AC_MSG_ERROR("Old protobuf-c release found but 1.1.0 is required. You can disable MVT and Geobuf support using --without-protobuf") fi ================================================ FILE: package/postgis/Config.in ================================================ config BR2_PACKAGE_POSTGIS bool "postgis" depends on BR2_PACKAGE_POSTGRESQL_FULL depends on !BR2_microblazeel && !BR2_microblazebe # ICE depends on BR2_INSTALL_LIBSTDCPP # proj depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11, proj depends on BR2_TOOLCHAIN_HAS_THREADS # proj depends on BR2_USE_WCHAR # libgeos, proj depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464 # libgeos depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 # libgeos select BR2_PACKAGE_LIBGEOS select BR2_PACKAGE_PROJ select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help PostGIS is a spatial database extender for PostgreSQL object-relational database. It adds support for geographic objects allowing location queries to be run in SQL. https://postgis.net/ comment "postgis needs a toolchain w/ C++, threads, wchar, gcc >= 4.7, not binutils bug 21464, 27597" depends on !BR2_microblazeel && !BR2_microblazebe # ICE depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464 || \ BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 ================================================ FILE: package/postgis/postgis.hash ================================================ # Locally calculated sha256 dc8e3fe8bc532e422f5d724c5a7c437f6555511716f6410d4d2db9762e1a3796 postgis-3.1.4.tar.gz sha256 55b69f22e1752830dd565852dc7ff242daf289dbd3a6bfede5db43f90d2e28c9 LICENSE.TXT ================================================ FILE: package/postgis/postgis.mk ================================================ ################################################################################ # # postgis # ################################################################################ POSTGIS_VERSION = 3.1.4 POSTGIS_SITE = https://download.osgeo.org/postgis/source # parallel build issues POSTGIS_MAKE = $(MAKE1) POSTGIS_LICENSE = GPL-2.0+ (PostGIS), BSD-2-Clause, MIT, Apache-2.0, ISC, BSL-1.0, CC-BY-SA-3.0 POSTGIS_LICENSE_FILES = LICENSE.TXT POSTGIS_CPE_ID_VENDOR = postgis # configure.ac is patched so need to run autoreconf POSTGIS_AUTORECONF = YES POSTGIS_DEPENDENCIES = postgresql libgeos proj libxml2 POSTGIS_CONF_OPTS += \ --with-pgconfig=$(STAGING_DIR)/usr/bin/pg_config \ --with-geosconfig=$(STAGING_DIR)/usr/bin/geos-config \ --with-xml2config=$(STAGING_DIR)/usr/bin/xml2-config ifeq ($(BR2_PACKAGE_LIBGDAL),y) POSTGIS_DEPENDENCIES += libgdal POSTGIS_CONF_OPTS += --with-raster else POSTGIS_CONF_OPTS += --without-raster endif ifeq ($(BR2_PACKAGE_JSON_C),y) POSTGIS_DEPENDENCIES += json-c POSTGIS_CONF_OPTS += --with-json else POSTGIS_CONF_OPTS += --without-json endif ifeq ($(BR2_PACKAGE_PCRE),y) POSTGIS_DEPENDENCIES += pcre endif ifeq ($(BR2_PACKAGE_PROTOBUF_C),y) POSTGIS_DEPENDENCIES += protobuf-c POSTGIS_CONF_OPTS += --with-protobuf else POSTGIS_CONF_OPTS += --without-protobuf endif $(eval $(autotools-package)) ================================================ FILE: package/postgresql/Config.in ================================================ config BR2_PACKAGE_POSTGRESQL bool "postgresql" depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR # fails to build in a pure static linking scenario, and # postgresql is unlikely to be used in a pure statically # linked environment. depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBOPENSSL_ENABLE_BLOWFISH if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_CAST if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL help PostgreSQL is a powerful, open source object-relational database system. Enable the readline package to gain readline support in psql (the command line interpreter), which offers command history and edit functions. Enable the zlib package to gain builtin compression for archives with pg_dump and pg_restore. http://www.postgresql.org if BR2_PACKAGE_POSTGRESQL config BR2_PACKAGE_POSTGRESQL_FULL bool "postgresql-full" help Build PostgreSQL, contrib, and documentation. endif comment "postgresql needs a toolchain w/ dynamic library, wchar" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR ================================================ FILE: package/postgresql/S50postgresql ================================================ #!/bin/sh # # start postgresql # umask 077 if [ ! -f /var/lib/pgsql/PG_VERSION ]; then echo "Initializing postgresql data base..." su - postgres -c '/usr/bin/pg_ctl initdb -D /var/lib/pgsql' echo "done" fi start() { printf "Starting postgresql: " su - postgres -c '/usr/bin/pg_ctl start -w -D /var/lib/pgsql -l logfile' echo "OK" } stop() { printf "Stopping postgresql: " su - postgres -c '/usr/bin/pg_ctl stop -D /var/lib/pgsql -m fast' echo "OK" } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/postgresql/pg_config ================================================ #!/bin/sh # # Minimal pg_config implementation as replacement for the native pg_config application # prefix=/usr case "$1" in --includedir) echo "$prefix/include" ;; --pkgincludedir) echo "$prefix/include/postgresql" ;; --includedir-server) echo "$prefix/include/postgresql/server" ;; --libdir) echo "$prefix/lib" ;; --version) echo "PostgreSQL @POSTGRESQL_VERSION@" ;; --configure) echo "@POSTGRESQL_CONF_OPTIONS@" ;; --pgxs) echo "$prefix/lib/postgresql/pgxs/src/makefiles/pgxs.mk" ;; --cflags) echo "@TARGET_CFLAGS@" ;; --cflags_sl) # defined at src/template/linux echo "-fPIC" ;; --cc) echo "@TARGET_CC@" ;; --pkglibdir) echo "/usr/lib/postgresql" ;; --bindir) echo "/usr/bin" ;; --sharedir) echo "/usr/share/postgresql" ;; --localedir) echo "/usr/share/locale" ;; --docdir) echo "/usr/share/doc/postgresql" ;; --mandir) echo "/usr/share/man" ;; *) echo "Usage: $0 {OPTION}" echo echo "Options:" echo echo " --includedir show location of C header files of the client interfaces" echo " --pkgincludedir show location of other C header files" echo " --includedir-server show location of C header files for the server" echo " --libdir show location of object code libraries" echo " --version show the PostgreSQL version" echo " --configure show options given to configure script" echo " --pgxs show location of extension makefile" echo " --cflags show CFLAGS value used when PostgreSQL was built" echo " --cc show CC value used when PostgreSQL was built" echo " --pkglibdir show location of dynamically loadable modules" echo " --bindir show location of user executables" echo " --sharedir show location of architecture-independent support files" echo " --localedir show location of locale support files" echo " --docdir show location of documentation files" echo " --mandir show location of manual pages" esac ================================================ FILE: package/postgresql/postgresql.hash ================================================ # From https://ftp.postgresql.org/pub/source/v13.5/postgresql-13.5.tar.bz2.sha256 sha256 9b81067a55edbaabc418aacef457dd8477642827499560b00615a6ea6c13f6b3 postgresql-13.5.tar.bz2 # License file, Locally calculated sha256 31ccadc0a70e8e0e8a35c5833567b64388dfe34987d962e1911554e271294105 COPYRIGHT ================================================ FILE: package/postgresql/postgresql.mk ================================================ ################################################################################ # # postgresql # ################################################################################ POSTGRESQL_VERSION = 13.5 POSTGRESQL_SOURCE = postgresql-$(POSTGRESQL_VERSION).tar.bz2 POSTGRESQL_SITE = https://ftp.postgresql.org/pub/source/v$(POSTGRESQL_VERSION) POSTGRESQL_LICENSE = PostgreSQL POSTGRESQL_LICENSE_FILES = COPYRIGHT POSTGRESQL_CPE_ID_VENDOR = postgresql POSTGRESQL_SELINUX_MODULES = postgresql POSTGRESQL_INSTALL_STAGING = YES POSTGRESQL_CONFIG_SCRIPTS = pg_config POSTGRESQL_CONF_ENV = \ ac_cv_type_struct_sockaddr_in6=yes \ LIBS=$(TARGET_NLS_LIBS) POSTGRESQL_CONF_OPTS = --disable-rpath POSTGRESQL_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) # https://www.postgresql.org/docs/11/static/install-procedure.html: # "If you want to invoke the build from another makefile rather than # manually, you must unset MAKELEVEL or set it to zero" POSTGRESQL_MAKE_OPTS = MAKELEVEL=0 ifeq ($(BR2_PACKAGE_POSTGRESQL_FULL),y) POSTGRESQL_MAKE_OPTS += world POSTGRESQL_INSTALL_TARGET_OPTS += DESTDIR=$(TARGET_DIR) install-world POSTGRESQL_INSTALL_STAGING_OPTS += DESTDIR=$(STAGING_DIR) install-world endif ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) # PostgreSQL does not build against uClibc with locales # enabled, due to an uClibc bug, see # http://lists.uclibc.org/pipermail/uclibc/2014-April/048326.html # so overwrite automatic detection and disable locale support POSTGRESQL_CONF_ENV += pgac_cv_type_locale_t=no endif ifneq ($(BR2_TOOLCHAIN_HAS_THREADS),y) POSTGRESQL_CONF_OPTS += --disable-thread-safety endif ifeq ($(BR2_arcle)$(BR2_arceb)$(BR2_microblazeel)$(BR2_microblazebe)$(BR2_or1k)$(BR2_nios2)$(BR2_riscv)$(BR2_xtensa)$(BR2_nds32),y) POSTGRESQL_CONF_OPTS += --disable-spinlocks endif ifeq ($(BR2_PACKAGE_READLINE),y) POSTGRESQL_DEPENDENCIES += readline else POSTGRESQL_CONF_OPTS += --without-readline endif ifeq ($(BR2_PACKAGE_ZLIB),y) POSTGRESQL_DEPENDENCIES += zlib else POSTGRESQL_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_TZDATA),y) POSTGRESQL_DEPENDENCIES += tzdata POSTGRESQL_CONF_OPTS += --with-system-tzdata=/usr/share/zoneinfo else POSTGRESQL_DEPENDENCIES += host-zic POSTGRESQL_CONF_ENV += ZIC="$(ZIC)" endif ifeq ($(BR2_PACKAGE_OPENSSL),y) POSTGRESQL_DEPENDENCIES += openssl POSTGRESQL_CONF_OPTS += --with-openssl else # PostgreSQL checks for /dev/urandom and fails if it's being cross-compiled and # an SSL library isn't found. Since /dev/urandom is guaranteed to be provided # on Linux systems, explicitly tell the configure script it's available. POSTGRESQL_CONF_ENV += ac_cv_file__dev_urandom=yes endif ifeq ($(BR2_PACKAGE_OPENLDAP),y) POSTGRESQL_DEPENDENCIES += openldap POSTGRESQL_CONF_OPTS += --with-ldap else POSTGRESQL_CONF_OPTS += --without-ldap endif ifeq ($(BR2_PACKAGE_LIBXML2),y) POSTGRESQL_DEPENDENCIES += libxml2 POSTGRESQL_CONF_OPTS += --with-libxml POSTGRESQL_CONF_ENV += XML2_CONFIG=$(STAGING_DIR)/usr/bin/xml2-config else POSTGRESQL_CONF_OPTS += --without-libxml endif # required for postgresql.service Type=notify ifeq ($(BR2_PACKAGE_SYSTEMD),y) POSTGRESQL_DEPENDENCIES += systemd POSTGRESQL_CONF_OPTS += --with-systemd else POSTGRESQL_CONF_OPTS += --without-systemd endif POSTGRESQL_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) POSTGRESQL_CFLAGS += -O0 endif POSTGRESQL_CONF_ENV += CFLAGS="$(POSTGRESQL_CFLAGS)" define POSTGRESQL_USERS postgres -1 postgres -1 * /var/lib/pgsql /bin/sh - PostgreSQL Server endef define POSTGRESQL_INSTALL_TARGET_FIXUP $(INSTALL) -dm 0700 $(TARGET_DIR)/var/lib/pgsql $(RM) -rf $(TARGET_DIR)/usr/lib/postgresql/pgxs endef POSTGRESQL_POST_INSTALL_TARGET_HOOKS += POSTGRESQL_INSTALL_TARGET_FIXUP define POSTGRESQL_INSTALL_CUSTOM_PG_CONFIG $(INSTALL) -m 0755 -D package/postgresql/pg_config \ $(STAGING_DIR)/usr/bin/pg_config $(SED) "s|@POSTGRESQL_CONF_OPTIONS@|$(POSTGRESQL_CONF_OPTS)|g" $(STAGING_DIR)/usr/bin/pg_config $(SED) "s|@POSTGRESQL_VERSION@|$(POSTGRESQL_VERSION)|g" $(STAGING_DIR)/usr/bin/pg_config $(SED) "s|@TARGET_CFLAGS@|$(TARGET_CFLAGS)|g" $(STAGING_DIR)/usr/bin/pg_config $(SED) "s|@TARGET_CC@|$(TARGET_CC)|g" $(STAGING_DIR)/usr/bin/pg_config endef POSTGRESQL_POST_INSTALL_STAGING_HOOKS += POSTGRESQL_INSTALL_CUSTOM_PG_CONFIG define POSTGRESQL_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/postgresql/S50postgresql \ $(TARGET_DIR)/etc/init.d/S50postgresql endef define POSTGRESQL_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/postgresql/postgresql.service \ $(TARGET_DIR)/usr/lib/systemd/system/postgresql.service endef $(eval $(autotools-package)) ================================================ FILE: package/postgresql/postgresql.service ================================================ [Unit] Description=PostgreSQL database server After=network.target [Service] Type=notify # start timeout disabled because initdb may run a little # longer (eg. 5 minutes on RaspberryPi) TimeoutStartSec=0 User=postgres Group=postgres StandardOutput=syslog StandardError=syslog SyslogIdentifier=postgres ExecStartPre=/bin/sh -c "if [ ! -f /var/lib/pgsql/PG_VERSION ]; then /usr/bin/pg_ctl initdb -D /var/lib/pgsql; fi" ExecStart=/usr/bin/postgres -D /var/lib/pgsql ExecReload=/usr/bin/kill -HUP $MAINPID KillMode=mixed KillSignal=SIGINT TimeoutSec=0 [Install] WantedBy=multi-user.target ================================================ FILE: package/pound/0001-fix-openssl-1.0.2.patch ================================================ From eb471de8f26e0367dd08d299d2252fa8b2b958a9 Mon Sep 17 00:00:00 2001 From: Emilio Date: Mon, 17 Jul 2017 09:41:32 +0200 Subject: [PATCH] [Improvement] Added support to compile pound with openssl 1.0.2 Signed-off-by: Emilio new file: dh2048.h modified: svc.c Patch was downloaded from 3rd-party repo: https://github.com/zevenet/pound/commit/eb471de8f26e0367dd08d299d2252fa8b2b958a9 This repo was announced on upstream mailinglist: http://www.apsis.ch/pound/pound_list/archive/2017/2017-07/1500287626000#1500287626000 Signed-off-by: Bernd Kuhls --- dh2048.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ svc.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 dh2048.h diff --git a/dh2048.h b/dh2048.h new file mode 100644 index 0000000..79c693c --- /dev/null +++ b/dh2048.h @@ -0,0 +1,53 @@ +#ifndef HEADER_DH_H +# include +#endif + +DH *get_dh2048() +{ + static unsigned char dhp_2048[] = { + 0xBF, 0x6C, 0xC6, 0xBD, 0xEA, 0x10, 0x84, 0x59, 0x40, 0xC2, + 0xC6, 0xA2, 0x9B, 0x19, 0xD3, 0x2E, 0x2F, 0xAB, 0xE6, 0xE4, + 0x1E, 0x91, 0x0D, 0x59, 0xDC, 0x96, 0x3F, 0x6E, 0x65, 0x38, + 0xB9, 0xBE, 0xBB, 0x8F, 0xDF, 0x73, 0xAC, 0xAC, 0xB3, 0x2F, + 0xA7, 0x02, 0x0B, 0x87, 0xB7, 0x3F, 0x3A, 0x42, 0x8A, 0x94, + 0xDD, 0xEC, 0x33, 0xA4, 0x25, 0xB1, 0xBF, 0x84, 0x91, 0x87, + 0xD8, 0x1C, 0x42, 0xB9, 0x8E, 0x00, 0x1F, 0x49, 0xED, 0x57, + 0xA4, 0x48, 0xB0, 0xCC, 0xD8, 0xB8, 0x83, 0xCA, 0x3E, 0xDF, + 0xA2, 0xF2, 0x07, 0x71, 0x71, 0x18, 0x1F, 0x50, 0x45, 0x3A, + 0x66, 0x04, 0x7F, 0x15, 0xB2, 0xA8, 0x02, 0x77, 0xCE, 0xC6, + 0xF9, 0x7C, 0x63, 0xE4, 0x52, 0x41, 0xFA, 0x62, 0xB9, 0x0D, + 0xDC, 0x08, 0x62, 0xEC, 0x00, 0xAB, 0xB0, 0xF7, 0x79, 0x48, + 0x75, 0x22, 0x85, 0xCC, 0x67, 0x3C, 0xEA, 0x09, 0x32, 0xAC, + 0x30, 0xED, 0x1E, 0x67, 0xDC, 0x74, 0xF8, 0xD9, 0xC3, 0xD0, + 0xA0, 0x60, 0x4D, 0xCE, 0x52, 0xBC, 0xA3, 0xE5, 0x18, 0x7B, + 0x0B, 0xC8, 0xCE, 0x70, 0xA2, 0xC8, 0x21, 0xCA, 0xCE, 0xA5, + 0xD4, 0xCB, 0x85, 0xFC, 0xC7, 0x07, 0x5C, 0x05, 0x87, 0xFC, + 0x2F, 0x67, 0x4D, 0x2D, 0x4F, 0xA4, 0xEE, 0x63, 0x98, 0x49, + 0xE4, 0x2E, 0xD7, 0x3F, 0x7D, 0x69, 0x68, 0x0A, 0xA2, 0x3E, + 0x5A, 0x04, 0xD4, 0xDD, 0xBB, 0xC7, 0xB4, 0x34, 0xB7, 0x21, + 0xD3, 0xAC, 0x99, 0xD7, 0x87, 0x45, 0x5E, 0x18, 0x68, 0x16, + 0x3A, 0xAF, 0xE2, 0x04, 0x57, 0xB8, 0x6A, 0xB8, 0x2F, 0x75, + 0xD5, 0x79, 0x96, 0x60, 0x8D, 0xD1, 0xCC, 0xD1, 0x33, 0x85, + 0x53, 0x88, 0x87, 0x34, 0xA6, 0x4B, 0x49, 0x24, 0x53, 0xD6, + 0xF1, 0x1E, 0x4E, 0x98, 0x4D, 0x6B, 0x44, 0x31, 0x94, 0xFF, + 0x46, 0xC2, 0x38, 0x2E, 0xEA, 0xBB + }; + static unsigned char dhg_2048[] = { + 0x05 + }; + DH *dh = DH_new(); + BIGNUM *dhp_bn, *dhg_bn; + + if (dh == NULL) + return NULL; + dhp_bn = BN_bin2bn(dhp_2048, sizeof (dhp_2048), NULL); + dhg_bn = BN_bin2bn(dhg_2048, sizeof (dhg_2048), NULL); + if (dhp_bn == NULL || dhg_bn == NULL + || !DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) { + DH_free(dh); + BN_free(dhp_bn); + BN_free(dhg_bn); + return NULL; + } + return dh; +} diff --git a/svc.c b/svc.c index 1341397..758dfbd 100644 --- a/svc.c +++ b/svc.c @@ -1512,6 +1512,39 @@ do_RSAgen(void) return; } + +#if OPENSSL_VERSION_NUMBER < 0x10100000 +static inline int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g) +{ + /* If the fields p and g in d are NULL, the corresponding input + * parameters MUST be non-NULL. q may remain NULL. + */ + if ((dh->p == NULL && p == NULL) + || (dh->g == NULL && g == NULL)) + return 0; + + if (p != NULL) { + BN_free(dh->p); + dh->p = p; + } + if (q != NULL) { + BN_free(dh->q); + dh->q = q; + } + if (g != NULL) { + BN_free(dh->g); + dh->g = g; + } + + if (q != NULL) { + dh->length = BN_num_bits(q); + } + + return 1; +} +#endif + + #include "dh512.h" #if DH_LEN == 1024 ================================================ FILE: package/pound/0002-fix-openssl-1.1.0.patch ================================================ From a2c9dde4d055ea8942afb150b7fc3a807d4e5d60 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Wed, 28 Feb 2018 13:44:01 +0000 Subject: [PATCH] Support for Openssl 1.1 Fixes http://autobuild.buildroot.net/results/ef2/ef2de6c280bf8622a00d4573bc5bd143e3baa002 Downloaded from github fork: https://github.com/graygnuorg/pound/commit/a2c9dde4d055ea8942afb150b7fc3a807d4e5d60 This patch was announced on the upstream mailinglist: http://www.apsis.ch/pound/pound_list/archive/2018/2018-03/1519920322000 Signed-off-by: Bernd Kuhls --- .gitignore | 15 ++++++++ config.c | 17 +++++++-- http.c | 12 ++++++- pound.h | 4 ++- svc.c | 101 +++++++++++++++++++++++++++++++++++++++++++---------- 5 files changed, 125 insertions(+), 24 deletions(-) create mode 100644 .gitignore diff --git a/config.c b/config.c index d41a3ee..e8fec0f 100644 --- a/config.c +++ b/config.c @@ -174,6 +174,16 @@ conf_fgets(char *buf, const int max) } } +#if OPENSSL_VERSION_NUMBER >= 0x10100000L +# define general_name_string(n) \ + strndup(ASN1_STRING_get0_data(n->d.dNSName), \ + ASN1_STRING_length(n->d.dNSName) + 1) +#else +# define general_name_string(n) \ + strndup(ASN1_STRING_data(n->d.dNSName), \ + ASN1_STRING_length(n->d.dNSName) + 1) +#endif + unsigned char ** get_subjectaltnames(X509 *x509, unsigned int *count) { @@ -194,8 +204,7 @@ get_subjectaltnames(X509 *x509, unsigned int *count) name = sk_GENERAL_NAME_pop(san_stack); switch(name->type) { case GEN_DNS: - temp[local_count] = strndup(ASN1_STRING_data(name->d.dNSName), ASN1_STRING_length(name->d.dNSName) - + 1); + temp[local_count] = general_name_string(name); if(temp[local_count] == NULL) conf_err("out of memory"); local_count++; @@ -565,7 +574,9 @@ parse_service(const char *svc_name) pthread_mutex_init(&res->mut, NULL); if(svc_name) strncpy(res->name, svc_name, KEY_SIZE); -#if OPENSSL_VERSION_NUMBER >= 0x10000000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + if((res->sessions = lh_TABNODE_new(t_hash, t_cmp)) == NULL) +#elif OPENSSL_VERSION_NUMBER >= 0x10000000L if((res->sessions = LHM_lh_new(TABNODE, t)) == NULL) #else if((res->sessions = lh_new(LHASH_HASH_FN(t_hash), LHASH_COMP_FN(t_cmp))) == NULL) diff --git a/http.c b/http.c index dd211e4..c8e756a 100644 --- a/http.c +++ b/http.c @@ -527,12 +527,22 @@ log_bytes(char *res, const LONG cnt) /* Cleanup code. This should really be in the pthread_cleanup_push, except for bugs in some implementations */ +#if OPENSSL_VERSION_NUMBER >= 0x10100000L +# define clear_error() +#elif OPENSSL_VERSION_NUMBER >= 0x10000000L +# define clear_error() \ + if(ssl != NULL) { ERR_clear_error(); ERR_remove_thread_state(NULL); } +#else +# define clear_error() \ + if(ssl != NULL) { ERR_clear_error(); ERR_remove_state(0); } +#endif + #define clean_all() { \ if(ssl != NULL) { BIO_ssl_shutdown(cl); } \ if(be != NULL) { BIO_flush(be); BIO_reset(be); BIO_free_all(be); be = NULL; } \ if(cl != NULL) { BIO_flush(cl); BIO_reset(cl); BIO_free_all(cl); cl = NULL; } \ if(x509 != NULL) { X509_free(x509); x509 = NULL; } \ - if(ssl != NULL) { ERR_clear_error(); ERR_remove_state(0); } \ + clear_error(); \ } /* diff --git a/pound.h b/pound.h index fa22c36..9603b91 100644 --- a/pound.h +++ b/pound.h @@ -344,7 +344,9 @@ typedef struct _tn { /* maximal session key size */ #define KEY_SIZE 127 -#if OPENSSL_VERSION_NUMBER >= 0x10000000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + DEFINE_LHASH_OF(TABNODE); +#elif OPENSSL_VERSION_NUMBER >= 0x10000000L DECLARE_LHASH_OF(TABNODE); #endif diff --git a/svc.c b/svc.c index 60ba488..063b92c 100644 --- a/svc.c +++ b/svc.c @@ -27,10 +27,17 @@ #include "pound.h" +#if OPENSSL_VERSION_NUMBER >= 0x10100000L +# define TABNODE_GET_DOWN_LOAD(t) lh_TABNODE_get_down_load(t) +# define TABNODE_SET_DOWN_LOAD(t,n) lh_TABNODE_set_down_load(t,n) +#else #ifndef LHASH_OF #define LHASH_OF(x) LHASH #define CHECKED_LHASH_OF(type, h) h #endif +# define TABNODE_GET_DOWN_LOAD(t) (CHECKED_LHASH_OF(TABNODE, t)->down_load) +# define TABNODE_SET_DOWN_LOAD(t,n) (CHECKED_LHASH_OF(TABNODE, t)->down_load = n) +#endif /* * Add a new key/content pair to a hash table @@ -58,7 +65,9 @@ t_add(LHASH_OF(TABNODE) *const tab, const char *key, const void *content, const } memcpy(t->content, content, cont_len); t->last_acc = time(NULL); -#if OPENSSL_VERSION_NUMBER >= 0x10000000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + if((old = lh_TABNODE_insert(tab, t)) != NULL) { +#elif OPENSSL_VERSION_NUMBER >= 0x10000000L if((old = LHM_lh_insert(TABNODE, tab, t)) != NULL) { #else if((old = (TABNODE *)lh_insert(tab, t)) != NULL) { @@ -82,7 +91,9 @@ t_find(LHASH_OF(TABNODE) *const tab, char *const key) TABNODE t, *res; t.key = key; -#if OPENSSL_VERSION_NUMBER >= 0x10000000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + if((res = lh_TABNODE_retrieve(tab, &t)) != NULL) { +#elif OPENSSL_VERSION_NUMBER >= 0x10000000L if((res = (TABNODE *)LHM_lh_retrieve(TABNODE, tab, &t)) != NULL) { #else if((res = (TABNODE *)lh_retrieve(tab, &t)) != NULL) { @@ -102,7 +113,9 @@ t_remove(LHASH_OF(TABNODE) *const tab, char *const key) TABNODE t, *res; t.key = key; -#if OPENSSL_VERSION_NUMBER >= 0x10000000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + if((res = lh_TABNODE_delete(tab, &t)) != NULL) { +#elif OPENSSL_VERSION_NUMBER >= 0x10000000L if((res = LHM_lh_delete(TABNODE, tab, &t)) != NULL) { #else if((res = (TABNODE *)lh_delete(tab, &t)) != NULL) { @@ -127,7 +140,9 @@ t_old_doall_arg(TABNODE *t, ALL_ARG *a) TABNODE *res; if(t->last_acc < a->lim) -#if OPENSSL_VERSION_NUMBER >= 0x10000000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + if((res = lh_TABNODE_delete(a->tab, t)) != NULL) { +#elif OPENSSL_VERSION_NUMBER >= 0x10000000L if((res = LHM_lh_delete(TABNODE, a->tab, t)) != NULL) { #else if((res = lh_delete(a->tab, t)) != NULL) { @@ -145,6 +160,10 @@ IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE, ALL_ARG) IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE *, ALL_ARG *) #endif +#if OPENSSL_VERSION_NUMBER >= 0x10100000L +IMPLEMENT_LHASH_DOALL_ARG(TABNODE,ALL_ARG); +#endif + /* * Expire all old nodes */ @@ -156,14 +175,16 @@ t_expire(LHASH_OF(TABNODE) *const tab, const time_t lim) a.tab = tab; a.lim = lim; - down_load = CHECKED_LHASH_OF(TABNODE, tab)->down_load; - CHECKED_LHASH_OF(TABNODE, tab)->down_load = 0; -#if OPENSSL_VERSION_NUMBER >= 0x10000000L + down_load = TABNODE_GET_DOWN_LOAD(tab); + TABNODE_SET_DOWN_LOAD(tab, 0); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + lh_TABNODE_doall_ALL_ARG(tab, t_old_doall_arg, &a); +#elif OPENSSL_VERSION_NUMBER >= 0x10000000L LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_old), ALL_ARG, &a); #else lh_doall_arg(tab, LHASH_DOALL_ARG_FN(t_old), &a); #endif - CHECKED_LHASH_OF(TABNODE, tab)->down_load = down_load; + TABNODE_SET_DOWN_LOAD(tab, down_load); return; } @@ -173,7 +194,9 @@ t_cont_doall_arg(TABNODE *t, ALL_ARG *arg) TABNODE *res; if(memcmp(t->content, arg->content, arg->cont_len) == 0) -#if OPENSSL_VERSION_NUMBER >= 0x10000000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + if((res = lh_TABNODE_delete(arg->tab, t)) != NULL) { +#elif OPENSSL_VERSION_NUMBER >= 0x10000000L if((res = LHM_lh_delete(TABNODE, arg->tab, t)) != NULL) { #else if((res = lh_delete(arg->tab, t)) != NULL) { @@ -203,15 +226,16 @@ t_clean(LHASH_OF(TABNODE) *const tab, void *const content, const size_t cont_len a.tab = tab; a.content = content; a.cont_len = cont_len; - down_load = CHECKED_LHASH_OF(TABNODE, tab)->down_load; - CHECKED_LHASH_OF(TABNODE, tab)->down_load = 0; -#if OPENSSL_VERSION_NUMBER >= 0x10000000L + down_load = TABNODE_GET_DOWN_LOAD(tab); + TABNODE_SET_DOWN_LOAD(tab, 0); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + lh_TABNODE_doall_ALL_ARG(tab, t_cont_doall_arg, &a); +#elif OPENSSL_VERSION_NUMBER >= 0x10000000L LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_cont), ALL_ARG, &a); #else lh_doall_arg(tab, LHASH_DOALL_ARG_FN(t_cont), &a); #endif - CHECKED_LHASH_OF(TABNODE, tab)->down_load = down_load; - return; + TABNODE_SET_DOWN_LOAD(tab, down_load); } /* @@ -1262,6 +1286,31 @@ RSA_tmp_callback(/* not used */SSL *ssl, /* not used */int is_export, int keylen return res; } +static int +generate_key(RSA **ret_rsa, unsigned long bits) +{ +#if OPENSSL_VERSION_NUMBER > 0x00908000L + int rc = 0; + RSA *rsa; + + rsa = RSA_new(); + if (rsa) { + BIGNUM *bne = BN_new(); + if (BN_set_word(bne, RSA_F4)) + rc = RSA_generate_key_ex(rsa, bits, bne, NULL); + BN_free(bne); + if (rc) + *ret_rsa = rsa; + else + RSA_free(rsa); + } + return rc; +#else + *ret_rsa = RSA_generate_key(bits, RSA_F4, NULL, NULL); + return *ret_rsa != NULL; +#endif +} + /* * Periodically regenerate ephemeral RSA keys * runs every T_RSA_KEYS seconds @@ -1274,8 +1323,9 @@ do_RSAgen(void) RSA *t_RSA1024_keys[N_RSA_KEYS]; for(n = 0; n < N_RSA_KEYS; n++) { - t_RSA512_keys[n] = RSA_generate_key(512, RSA_F4, NULL, NULL); - t_RSA1024_keys[n] = RSA_generate_key(1024, RSA_F4, NULL, NULL); + /* FIXME: Error handling */ + generate_key(&t_RSA512_keys[n], 512); + generate_key(&t_RSA1024_keys[n], 1024); } if(ret_val = pthread_mutex_lock(&RSA_mut)) logmsg(LOG_WARNING, "thr_RSAgen() lock: %s", strerror(ret_val)); @@ -1329,11 +1379,11 @@ init_timer(void) * Pre-generate ephemeral RSA keys */ for(n = 0; n < N_RSA_KEYS; n++) { - if((RSA512_keys[n] = RSA_generate_key(512, RSA_F4, NULL, NULL)) == NULL) { + if(!generate_key(&RSA512_keys[n], 512)) { logmsg(LOG_WARNING,"RSA_generate(%d, 512) failed", n); return; } - if((RSA1024_keys[n] = RSA_generate_key(1024, RSA_F4, NULL, NULL)) == NULL) { + if(!generate_key(&RSA1024_keys[n], 1024)) { logmsg(LOG_WARNING,"RSA_generate(%d, 1024) failed", n); return; } @@ -1420,6 +1470,10 @@ IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE, DUMP_ARG) IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE *, DUMP_ARG *) #endif +#if OPENSSL_VERSION_NUMBER >= 0x10100000L +IMPLEMENT_LHASH_DOALL_ARG(TABNODE,DUMP_ARG); +#endif + /* * write sessions to the control socket */ @@ -1430,7 +1484,9 @@ dump_sess(const int control_sock, LHASH_OF(TABNODE) *const sess, BACKEND *const a.control_sock = control_sock; a.backends = backends; -#if OPENSSL_VERSION_NUMBER >= 0x10000000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + lh_TABNODE_doall_DUMP_ARG(sess, t_dump_doall_arg, &a); +#elif OPENSSL_VERSION_NUMBER >= 0x10000000L LHM_lh_doall_arg(TABNODE, sess, LHASH_DOALL_ARG_FN(t_dump), DUMP_ARG, &a); #else lh_doall_arg(sess, LHASH_DOALL_ARG_FN(t_dump), &a); @@ -1664,6 +1720,13 @@ thr_control(void *arg) } } +#ifndef SSL3_ST_SR_CLNT_HELLO_A +# define SSL3_ST_SR_CLNT_HELLO_A (0x110|SSL_ST_ACCEPT) +#endif +#ifndef SSL23_ST_SR_CLNT_HELLO_A +# define SSL23_ST_SR_CLNT_HELLO_A (0x210|SSL_ST_ACCEPT) +#endif + void SSLINFO_callback(const SSL *ssl, int where, int rc) { ================================================ FILE: package/pound/0003-Support-for-libressl-coexisting-with-openssl-1.1.x.patch ================================================ From 145b88d0c1a71ba6f4d216768388e0c5853d3990 Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Tue, 5 Feb 2019 10:34:55 -0600 Subject: [PATCH] Support for libressl coexisting with openssl 1.1.x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit libressl needs to not follow the 1.1.x path of APIs Resolves build failure like In file included from svc.c:28:0: pound.h:348:3: warning: data definition has no type or storage class DEFINE_LHASH_OF(TABNODE); ^~~~~~~~~~~~~~~ pound.h:348:3: warning: type defaults to ‘int’ in declaration of ‘DEFINE_LHASH_OF’ [-Wimplicit-int] svc.c: In function ‘t_add’: svc.c:69:15: warning: implicit declaration of function ‘lh_TABNODE_insert’; did you mean ‘lh_OBJ_NAME_insert’? [-Wimplicit-function-declaration] if((old = lh_TABNODE_insert(tab, t)) != NULL) { ^~~~~~~~~~~~~~~~~ lh_OBJ_NAME_insert Upstream: Site was down when I tried (http://www.apsis.ch/pound) Signed-off-by: Matthew Weber --- config.c | 2 +- svc.c | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config.c b/config.c index 58b928e..3ad7fbb 100644 --- a/config.c +++ b/config.c @@ -574,7 +574,7 @@ parse_service(const char *svc_name) pthread_mutex_init(&res->mut, NULL); if(svc_name) strncpy(res->name, svc_name, KEY_SIZE); -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER if((res->sessions = lh_TABNODE_new(t_hash, t_cmp)) == NULL) #elif OPENSSL_VERSION_NUMBER >= 0x10000000L if((res->sessions = LHM_lh_new(TABNODE, t)) == NULL) diff --git a/svc.c b/svc.c index f125be4..8a2f62c 100644 --- a/svc.c +++ b/svc.c @@ -27,7 +27,7 @@ #include "pound.h" -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER # define TABNODE_GET_DOWN_LOAD(t) lh_TABNODE_get_down_load(t) # define TABNODE_SET_DOWN_LOAD(t,n) lh_TABNODE_set_down_load(t,n) #else @@ -65,7 +65,7 @@ t_add(LHASH_OF(TABNODE) *const tab, const char *key, const void *content, const } memcpy(t->content, content, cont_len); t->last_acc = time(NULL); -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER if((old = lh_TABNODE_insert(tab, t)) != NULL) { #elif OPENSSL_VERSION_NUMBER >= 0x10000000L if((old = LHM_lh_insert(TABNODE, tab, t)) != NULL) { @@ -91,7 +91,7 @@ t_find(LHASH_OF(TABNODE) *const tab, char *const key) TABNODE t, *res; t.key = key; -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER if((res = lh_TABNODE_retrieve(tab, &t)) != NULL) { #elif OPENSSL_VERSION_NUMBER >= 0x10000000L if((res = (TABNODE *)LHM_lh_retrieve(TABNODE, tab, &t)) != NULL) { @@ -113,7 +113,7 @@ t_remove(LHASH_OF(TABNODE) *const tab, char *const key) TABNODE t, *res; t.key = key; -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER if((res = lh_TABNODE_delete(tab, &t)) != NULL) { #elif OPENSSL_VERSION_NUMBER >= 0x10000000L if((res = LHM_lh_delete(TABNODE, tab, &t)) != NULL) { @@ -140,7 +140,7 @@ t_old_doall_arg(TABNODE *t, ALL_ARG *a) TABNODE *res; if(t->last_acc < a->lim) -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER if((res = lh_TABNODE_delete(a->tab, t)) != NULL) { #elif OPENSSL_VERSION_NUMBER >= 0x10000000L if((res = LHM_lh_delete(TABNODE, a->tab, t)) != NULL) { @@ -160,7 +160,7 @@ IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE, ALL_ARG) IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE *, ALL_ARG *) #endif -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER IMPLEMENT_LHASH_DOALL_ARG(TABNODE,ALL_ARG); #endif @@ -177,7 +177,7 @@ t_expire(LHASH_OF(TABNODE) *const tab, const time_t lim) a.lim = lim; down_load = TABNODE_GET_DOWN_LOAD(tab); TABNODE_SET_DOWN_LOAD(tab, 0); -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER lh_TABNODE_doall_ALL_ARG(tab, t_old_doall_arg, &a); #elif OPENSSL_VERSION_NUMBER >= 0x10000000L LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_old), ALL_ARG, &a); @@ -194,7 +194,7 @@ t_cont_doall_arg(TABNODE *t, ALL_ARG *arg) TABNODE *res; if(memcmp(t->content, arg->content, arg->cont_len) == 0) -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER if((res = lh_TABNODE_delete(arg->tab, t)) != NULL) { #elif OPENSSL_VERSION_NUMBER >= 0x10000000L if((res = LHM_lh_delete(TABNODE, arg->tab, t)) != NULL) { @@ -228,7 +228,7 @@ t_clean(LHASH_OF(TABNODE) *const tab, void *const content, const size_t cont_len a.cont_len = cont_len; down_load = TABNODE_GET_DOWN_LOAD(tab); TABNODE_SET_DOWN_LOAD(tab, 0); -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER lh_TABNODE_doall_ALL_ARG(tab, t_cont_doall_arg, &a); #elif OPENSSL_VERSION_NUMBER >= 0x10000000L LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_cont), ALL_ARG, &a); @@ -1514,7 +1514,7 @@ dump_sess(const int control_sock, LHASH_OF(TABNODE) *const sess, BACKEND *const a.control_sock = control_sock; a.backends = backends; -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER lh_TABNODE_doall_DUMP_ARG(sess, t_dump_doall_arg, &a); #elif OPENSSL_VERSION_NUMBER >= 0x10000000L LHM_lh_doall_arg(TABNODE, sess, LHASH_DOALL_ARG_FN(t_dump), DUMP_ARG, &a); -- 1.9.1 ================================================ FILE: package/pound/Config.in ================================================ 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 ================================================ FILE: package/pound/pound.hash ================================================ # Locally computed sha256 a7fd8690de0fd390615e79fd0f4bfd56a544b8ef97dd6659c07ecd3207480c25 Pound-2.8.tgz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 GPL.txt ================================================ FILE: package/pound/pound.mk ================================================ ################################################################################ # # pound # ################################################################################ POUND_VERSION = 2.8 POUND_SITE = http://www.apsis.ch/pound POUND_SOURCE = Pound-$(POUND_VERSION).tgz POUND_LICENSE = GPL-3.0+ POUND_LICENSE_FILES = GPL.txt POUND_DEPENDENCIES = openssl host-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)) ================================================ FILE: package/powerpc-utils/Config.in ================================================ comment "powerpc-utils tools needs a toolchain w/ dynamic library" depends on BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le depends on BR2_STATIC_LIBS config BR2_PACKAGE_POWERPC_UTILS bool "powerpc-utils" depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le select BR2_PACKAGE_ZLIB help System utilities for PowerPC machines. https://github.com/ibm-power-utilities/powerpc-utils.git if BR2_PACKAGE_POWERPC_UTILS config BR2_PACKAGE_POWERPC_UTILS_RTAS bool "RTAS support" depends on BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_LIBRTAS help Enable support for functions that require RTAS. This adds a dependency on librtas and provides the following additional features at the cost of increasing the installed package size from about 0.5MB to about 2MB: ppc64_cpu --run-mode, uesensor, set_poweron_time, drmgr, lsslot, activate_firmware, rtas_ibm_get_vpd, serv_config, rtas_event_decode, sys_ident. comment "RTAS support needs a glibc toolchain" depends on !BR2_TOOLCHAIN_USES_GLIBC endif ================================================ FILE: package/powerpc-utils/powerpc-utils.hash ================================================ # Locally calculated sha256 4e3a21419863c08adde49f0795eff0fbfe4597ce82593fa5fe1f1177913fb7b9 powerpc-utils-1.3.8.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/powerpc-utils/powerpc-utils.mk ================================================ ################################################################################ # # powerpc-utils # ################################################################################ POWERPC_UTILS_VERSION = 1.3.8 POWERPC_UTILS_SITE = $(call github,ibm-power-utilities,powerpc-utils,v$(POWERPC_UTILS_VERSION)) POWERPC_UTILS_DEPENDENCIES = zlib POWERPC_UTILS_AUTORECONF = YES POWERPC_UTILS_LICENSE = GPL-2.0+ POWERPC_UTILS_LICENSE_FILES = COPYING POWERPC_UTILS_CPE_ID_VENDOR = powerpc-utils_project POWERPC_UTILS_CONF_ENV = \ ax_cv_check_cflags___fstack_protector_all=$(if $(BR2_TOOLCHAIN_HAS_SSP),yes,no) POWERPC_UTILS_CONF_OPTS = --disable-werror ifeq ($(BR2_PACKAGE_POWERPC_UTILS_RTAS),y) POWERPC_UTILS_DEPENDENCIES += librtas POWERPC_UTILS_CONF_OPTS += --with-librtas else POWERPC_UTILS_CONF_OPTS += --without-librtas endif $(eval $(autotools-package)) ================================================ FILE: package/powertop/0001-dont-force-stack-smashing-protection.patch ================================================ Do not pass -fstack-protector unconditionally Using -fstack-protector only works when the toolchain has SSP support. Signed-off-by: Thomas Petazzoni Index: b/src/Makefile.am =================================================================== --- a/src/Makefile.am +++ b/src/Makefile.am @@ -127,7 +127,6 @@ -Wformat \ -Wshadow \ -fno-omit-frame-pointer \ - -fstack-protector \ $(GLIB2_CFLAGS) \ $(LIBNL_CFLAGS) \ $(NCURSES_CFLAGS) \ ================================================ FILE: package/powertop/Config.in ================================================ config BR2_PACKAGE_POWERTOP bool "powertop" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # libnl depends on BR2_USE_WCHAR select BR2_PACKAGE_NCURSES select BR2_PACKAGE_PCIUTILS select BR2_PACKAGE_LIBNL help A tool to diagnose issues with power consumption and power management https://01.org/powertop/ comment "powertop needs a toolchain w/ C++, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_USE_WCHAR ================================================ FILE: package/powertop/powertop.hash ================================================ # Locally calculated after checking pgp signature # https://01.org/sites/default/files/downloads/powertop-2.13.tar.gz.asc.txt # using key 22E8F306C8FA4BAA2A5F36F3A0303B060918941C sha256 a65f992ca4a419bc73b623651060eb9fc00c5a86fa03556358cd9db011ef3178 powertop-2.13.tar.gz sha256 b499eddebda05a8859e32b820a64577d91f1de2b52efa2a1575a2cb4000bc259 COPYING ================================================ FILE: package/powertop/powertop.mk ================================================ ################################################################################ # # powertop # ################################################################################ POWERTOP_VERSION = 2.13 POWERTOP_SITE = https://01.org/sites/default/files/downloads POWERTOP_DEPENDENCIES = pciutils ncurses libnl host-pkgconf \ $(TARGET_NLS_DEPENDENCIES) POWERTOP_LICENSE = GPL-2.0 POWERTOP_LICENSE_FILES = COPYING POWERTOP_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) # 0001-dont-force-stack-smashing-protection.patch POWERTOP_AUTORECONF = YES # Help powertop at finding the right ncurses library depending on # which one is available. ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) POWERTOP_CONF_ENV += ac_cv_search_delwin="-lncursesw" else POWERTOP_CONF_ENV += ac_cv_search_delwin="-lncurses" endif $(eval $(autotools-package)) ================================================ FILE: package/powervr/Config.in ================================================ config BR2_PACKAGE_HAS_POWERVR bool config BR2_PACKAGE_PROVIDES_POWERVR string depends on BR2_PACKAGE_HAS_POWERVR ================================================ FILE: package/powervr/powervr.mk ================================================ ################################################################################ # # powervr # ################################################################################ $(eval $(virtual-package)) ================================================ FILE: package/pppd/0001-pppd-Fix-bounds-check.patch ================================================ From 8d7970b8f3db727fe798b65f3377fe6787575426 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Mon, 3 Feb 2020 15:53:28 +1100 Subject: [PATCH] pppd: Fix bounds check in EAP code Given that we have just checked vallen < len, it can never be the case that vallen >= len + sizeof(rhostname). This fixes the check so we actually avoid overflowing the rhostname array. Reported-by: Ilja Van Sprundel Signed-off-by: Paul Mackerras --- pppd/eap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pppd/eap.c b/pppd/eap.c index 94407f56..1b93db01 100644 --- a/pppd/eap.c +++ b/pppd/eap.c @@ -1420,7 +1420,7 @@ int len; } /* Not so likely to happen. */ - if (vallen >= len + sizeof (rhostname)) { + if (len - vallen >= sizeof (rhostname)) { dbglog("EAP: trimming really long peer name down"); BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1); rhostname[sizeof (rhostname) - 1] = '\0'; @@ -1846,7 +1846,7 @@ int len; } /* Not so likely to happen. */ - if (vallen >= len + sizeof (rhostname)) { + if (len - vallen >= sizeof (rhostname)) { dbglog("EAP: trimming really long peer name down"); BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1); rhostname[sizeof (rhostname) - 1] = '\0'; ================================================ FILE: package/pppd/Config.in ================================================ 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 select BR2_PACKAGE_OPENSSL if BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL \ && BR2_TOOLCHAIN_USES_GLIBC help An implementation of the Point-to-point protocol. http://www.samba.org/ppp/ if BR2_PACKAGE_PPPD config BR2_PACKAGE_PPPD_FILTER bool "filtering" select BR2_PACKAGE_LIBPCAP help Packet filtering abilities for pppd. If enabled, the pppd active-filter and pass-filter options are available. config BR2_PACKAGE_PPPD_RADIUS bool "radius" help Install RADIUS support for pppd config BR2_PACKAGE_PPPD_OVERWRITE_RESOLV_CONF bool "overwrite /etc/resolv.conf" default y help Overwrite /etc/resolv.conf instead of maintaining the separate list of nameservers in /etc/ppp/resolv.conf Note that the pppd default of writing to /etc/ppp/resolv.conf does not work on a read-only rootfs unless you make it writable in your rootfs customizations (e.g. by linking it to a file in tmpfs or by mounting a writable filesystem on it). endif 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 ================================================ FILE: package/pppd/pppd.hash ================================================ # Locally calculated sha256 91fbff784ad16a1111a7f22df4675aeb161d958bb79f1cc4c1f0c81944e7cb40 pppd-2.4.8.tar.gz sha256 3990c65c506885f7bb75455d1d6188743a14ad46f5b62e136ef3739aed52c532 pppd/tdb.c sha256 1822ead9d2854adfbd282322b29730a3fec4cc67f6f6a2e487aad3476e3afd59 pppd/plugins/pppoatm/COPYING sha256 91a5e9c173e0e001e081e15bf7850cfd782a0baa02f5921e327ae3b449beff3f pppdump/bsd-comp.c sha256 ee1c28551c87cdcdaf80eb3922726f015201614cb560a5ed18a7a0c15f2b4aa4 pppd/ccp.c sha256 6fa4c3dad059f6ef15c1c5e5219d9d0d40991dd3a162098a89967a1720de059e pppd/plugins/passprompt.c ================================================ FILE: package/pppd/pppd.mk ================================================ ################################################################################ # # pppd # ################################################################################ PPPD_VERSION = 2.4.8 PPPD_SITE = $(call github,paulusmack,ppp,ppp-$(PPPD_VERSION)) PPPD_LICENSE = LGPL-2.0+, LGPL, BSD-4-Clause, BSD-3-Clause, GPL-2.0+ PPPD_LICENSE_FILES = \ pppd/tdb.c pppd/plugins/pppoatm/COPYING \ pppdump/bsd-comp.c pppd/ccp.c pppd/plugins/passprompt.c PPPD_CPE_ID_VENDOR = samba PPPD_CPE_ID_PRODUCT = ppp PPPD_SELINUX_MODULES = ppp # 0001-pppd-Fix-bounds-check.patch PPPD_IGNORE_CVES += CVE-2020-8597 PPPD_MAKE_OPTS = HAVE_INET6=y ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y) PPPD_DEPENDENCIES += openssl else PPPD_MAKE_OPTS += USE_CRYPT=y endif PPPD_INSTALL_STAGING = YES PPPD_TARGET_BINS = chat pppd pppdump pppstats PPPD_RADIUS_CONF = \ dictionary dictionary.ascend dictionary.compat \ dictionary.merit dictionary.microsoft \ issue port-id-map realms servers radiusclient.conf ifeq ($(BR2_PACKAGE_PPPD_FILTER),y) PPPD_DEPENDENCIES += libpcap PPPD_MAKE_OPTS += FILTER=y endif # pppd bundles some but not all of the needed kernel headers. The embedded # if_pppol2tp.h is unfortunately not compatible with kernel headers > 2.6.34, # and has been part of the kernel headers since 2.6.23, so drop it define PPPD_DROP_INTERNAL_IF_PPOL2TP_H $(RM) $(@D)/include/linux/if_pppol2tp.h endef PPPD_POST_EXTRACT_HOOKS += PPPD_DROP_INTERNAL_IF_PPOL2TP_H # pppd defaults to /etc/ppp/resolv.conf, which not be writable and is # definitely not useful since the C library only uses # /etc/resolv.conf. Therefore, we change pppd to use /etc/resolv.conf # instead. define PPPD_SET_RESOLV_CONF $(SED) 's,ppp/resolv.conf,resolv.conf,' $(@D)/pppd/pathnames.h endef ifeq ($(BR2_PACKAGE_PPPD_OVERWRITE_RESOLV_CONF),y) PPPD_POST_EXTRACT_HOOKS += PPPD_SET_RESOLV_CONF endif define PPPD_CONFIGURE_CMDS $(SED) 's/FILTER=y/#FILTER=y/' $(PPPD_DIR)/pppd/Makefile.linux $(SED) 's/ifneq ($$(wildcard \/usr\/include\/pcap-bpf.h),)/ifdef FILTER/' $(PPPD_DIR)/*/Makefile.linux ( cd $(@D); $(TARGET_MAKE_ENV) ./configure --prefix=/usr ) endef define PPPD_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" COPTS="$(TARGET_CFLAGS)" \ -C $(@D) $(PPPD_MAKE_OPTS) endef ifeq ($(BR2_PACKAGE_PPPD_RADIUS),y) define PPPD_INSTALL_RADIUS $(INSTALL) -D $(PPPD_DIR)/pppd/plugins/radius/radattr.so \ $(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/radattr.so $(INSTALL) -D $(PPPD_DIR)/pppd/plugins/radius/radius.so \ $(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/radius.so $(INSTALL) -D $(PPPD_DIR)/pppd/plugins/radius/radrealms.so \ $(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/radrealms.so for m in $(PPPD_RADIUS_CONF); do \ $(INSTALL) -m 644 -D $(PPPD_DIR)/pppd/plugins/radius/etc/$$m \ $(TARGET_DIR)/etc/ppp/radius/$$m; \ done $(SED) 's:/usr/local/etc:/etc:' \ $(TARGET_DIR)/etc/ppp/radius/radiusclient.conf $(SED) 's:/usr/local/sbin:/usr/sbin:' \ $(TARGET_DIR)/etc/ppp/radius/radiusclient.conf $(SED) 's:/etc/radiusclient:/etc/ppp/radius:g' \ $(TARGET_DIR)/etc/ppp/radius/* endef endif define PPPD_INSTALL_TARGET_CMDS for sbin in $(PPPD_TARGET_BINS); do \ $(INSTALL) -D $(PPPD_DIR)/$$sbin/$$sbin \ $(TARGET_DIR)/usr/sbin/$$sbin; \ done $(INSTALL) -D $(PPPD_DIR)/pppd/plugins/minconn.so \ $(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/minconn.so $(INSTALL) -D $(PPPD_DIR)/pppd/plugins/passprompt.so \ $(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/passprompt.so $(INSTALL) -D $(PPPD_DIR)/pppd/plugins/passwordfd.so \ $(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/passwordfd.so $(INSTALL) -D $(PPPD_DIR)/pppd/plugins/pppoatm/pppoatm.so \ $(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/pppoatm.so $(INSTALL) -D $(PPPD_DIR)/pppd/plugins/rp-pppoe/rp-pppoe.so \ $(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/rp-pppoe.so $(INSTALL) -D $(PPPD_DIR)/pppd/plugins/rp-pppoe/pppoe-discovery \ $(TARGET_DIR)/usr/sbin/pppoe-discovery $(INSTALL) -D $(PPPD_DIR)/pppd/plugins/winbind.so \ $(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/winbind.so $(INSTALL) -D $(PPPD_DIR)/pppd/plugins/pppol2tp/openl2tp.so \ $(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/openl2tp.so $(INSTALL) -D $(PPPD_DIR)/pppd/plugins/pppol2tp/pppol2tp.so \ $(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/pppol2tp.so $(INSTALL) -D -m 0755 $(PPPD_DIR)/scripts/pon $(TARGET_DIR)/usr/bin/pon $(INSTALL) -D -m 0755 $(PPPD_DIR)/scripts/poff $(TARGET_DIR)/usr/bin/poff $(PPPD_INSTALL_RADIUS) endef define PPPD_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) INSTROOT=$(STAGING_DIR)/ -C $(@D) $(PPPD_MAKE_OPTS) install-devel endef $(eval $(generic-package)) ================================================ FILE: package/pps-tools/Config.in ================================================ config BR2_PACKAGE_PPS_TOOLS bool "pps-tools" help Pulse per second tools. Provides timepps.h and other PPS utilities. https://github.com/ago/pps-tools/ ================================================ FILE: package/pps-tools/pps-tools.hash ================================================ # Locally calculated sha256 1168f1474235017af413afdb07288303ad7a7b12a0282f3bf9ed0e22fe0d7d2e pps-tools-e2b25049df9a4da28168b7378016f1650d0dfa6b.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/pps-tools/pps-tools.mk ================================================ ################################################################################ # # pps-tools # ################################################################################ PPS_TOOLS_VERSION = e2b25049df9a4da28168b7378016f1650d0dfa6b PPS_TOOLS_SITE = $(call github,ago,pps-tools,$(PPS_TOOLS_VERSION)) PPS_TOOLS_INSTALL_STAGING = YES PPS_TOOLS_LICENSE = GPL-2.0+ PPS_TOOLS_LICENSE_FILES = COPYING define PPS_TOOLS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all endef define PPS_TOOLS_INSTALL_STAGING_CMDS mkdir -p $(STAGING_DIR)/usr/include/sys $(STAGING_DIR)/usr/bin $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ DESTDIR=$(STAGING_DIR) -C $(@D) install endef define PPS_TOOLS_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/include/sys $(TARGET_DIR)/usr/bin $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ DESTDIR=$(TARGET_DIR) -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/pptp-linux/0001-susv3-legacy.patch ================================================ bzero is deprecated in POSIX.1-2001 and removed for POSIX.1-2008 so switch to memset instead. Signed-off-by: Gustavo Zacarias diff -Nura pptp-1.8.0.orig/pptp_callmgr.c pptp-1.8.0/pptp_callmgr.c --- pptp-1.8.0.orig/pptp_callmgr.c 2013-10-23 05:10:46.000000000 -0300 +++ pptp-1.8.0/pptp_callmgr.c 2014-03-31 16:47:42.617643298 -0300 @@ -340,7 +340,7 @@ } #endif if (localbind.s_addr != INADDR_NONE) { - bzero(&src, sizeof(src)); + memset(&src, 0, sizeof(src)); src.i.sin_family = AF_INET; src.i.sin_addr = localbind; if (bind(s, &src.a, sizeof(src.i)) != 0) { diff -Nura pptp-1.8.0.orig/pptp_gre.c pptp-1.8.0/pptp_gre.c --- pptp-1.8.0.orig/pptp_gre.c 2013-10-23 05:10:46.000000000 -0300 +++ pptp-1.8.0/pptp_gre.c 2014-03-31 16:47:30.745249066 -0300 @@ -103,7 +103,7 @@ } #endif if (localbind.s_addr != INADDR_NONE) { - bzero(&loc_addr, sizeof(loc_addr)); + memset(&loc_addr, 0, sizeof(loc_addr)); loc_addr.i.sin_family = AF_INET; loc_addr.i.sin_addr = localbind; if (bind(s, &loc_addr.a, sizeof(loc_addr.i)) != 0) { ================================================ FILE: package/pptp-linux/0002-fix-parallel-build.patch ================================================ Fix parallel build issue The config.h header file must be created before being used to build source files that include it, especially version.c. In order for this to happen even in highly-parallel builds, we add a dependency of all object files on config.h, in order to ensure it gets generated before make attempts to build the object files. Signed-off-by: Thomas Petazzoni Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -37,6 +37,8 @@ all: config.h $(PPTP_BIN) pptpsetup.8 +$(PPTP_OBJS): config.h + $(PPTP_BIN): $(PPTP_OBJS) $(PPTP_DEPS) $(CC) -o $(PPTP_BIN) $(PPTP_OBJS) $(LDFLAGS) $(LIBS) ================================================ FILE: package/pptp-linux/Config.in ================================================ config BR2_PACKAGE_PPTP_LINUX bool "pptp-linux" depends on BR2_USE_MMU # fork() help An implementation of the Point-to-point protocol client. http://pptpclient.sourceforge.net/ ================================================ FILE: package/pptp-linux/pptp-linux.hash ================================================ # From http://sourceforge.net/projects/pptpclient/files/pptp/pptp-1.10.0/ md5 8d25341352fdae5ad5b36b9f18254908 pptp-1.10.0.tar.gz sha1 173c9b7d204c89fd1538116f165bba1e9101b51c pptp-1.10.0.tar.gz # Locally calculated sha256 82492db8e487ce73b182ee7f444251d20c44f5c26d6e96c553ec7093aefb5af4 pptp-1.10.0.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/pptp-linux/pptp-linux.mk ================================================ ################################################################################ # # pptp-linux # ################################################################################ PPTP_LINUX_VERSION = 1.10.0 PPTP_LINUX_SITE = http://downloads.sourceforge.net/project/pptpclient/pptp/pptp-$(PPTP_LINUX_VERSION) PPTP_LINUX_SOURCE = pptp-$(PPTP_LINUX_VERSION).tar.gz PPTP_LINUX_MAKE = $(MAKE1) PPTP_LINUX_LICENSE = GPL-2.0+ PPTP_LINUX_LICENSE_FILES = COPYING define PPTP_LINUX_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) OPTIMIZE= DEBUG= \ CC="$(TARGET_CC)" \ CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \ IP=/sbin/ip endef define PPTP_LINUX_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/pptp $(TARGET_DIR)/usr/sbin/pptp endef $(eval $(generic-package)) ================================================ FILE: package/prboom/0001-libpng-1.4.patch ================================================ [PATCH] fix build with libpng 1.4.x In 1.4.x the png_*_NULL defines are gone. Replace them with a normal NULL instead. Signed-off-by: Peter Korsgaard --- src/SDL/i_sshot.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: prboom-2.5.0/src/SDL/i_sshot.c =================================================================== --- prboom-2.5.0.orig/src/SDL/i_sshot.c +++ prboom-2.5.0/src/SDL/i_sshot.c @@ -231,7 +231,7 @@ int I_ScreenShot (const char *fname) if (fp) { png_struct *png_ptr = png_create_write_struct( - PNG_LIBPNG_VER_STRING, png_error_ptr_NULL, error_fn, warning_fn); + PNG_LIBPNG_VER_STRING, NULL, error_fn, warning_fn); if (png_ptr) { @@ -279,7 +279,7 @@ int I_ScreenShot (const char *fname) break; } } - png_destroy_write_struct(&png_ptr, png_infopp_NULL); + png_destroy_write_struct(&png_ptr, NULL); } fclose(fp); } ================================================ FILE: package/prboom/0002-configure-remove-predefined-O2-optimization-flag.patch ================================================ configure: remove predefined -O2 optimization flag CFLAGS_OPT variable forces to use -O2 optimization flag denying the possibility to use different optimization flag values. Remove -O2 flag from CFLAGS_OPT. Signed-off-by: Giulio Benetti --- diff -urpN prboom-2.5.0.orig/configure.ac prboom-2.5.0/configure.ac --- prboom-2.5.0.orig/configure.ac 2019-06-20 14:07:45.058481879 +0200 +++ prboom-2.5.0/configure.ac 2019-06-20 14:09:05.066238825 +0200 @@ -48,7 +48,7 @@ else fi dnl --- cph: work out flags to pass to compiler -CFLAGS_OPT="-O2 -fomit-frame-pointer" +CFLAGS_OPT="-fomit-frame-pointer" AC_C_COMPILE_FLAGS(-Wall) dnl --- Option to enable debugging AC_ARG_ENABLE(debug,AC_HELP_STRING([--enable-debug],[turns on various debugging features, like range checking and internal heap diagnostics]),,enable_debug="no") ================================================ FILE: package/prboom/Config.in ================================================ config BR2_PACKAGE_PRBOOM bool "prboom" 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 rendering, while still keeping the old style alive. http://prboom.sourceforge.net/ ================================================ FILE: package/prboom/prboom.hash ================================================ # Locally computed: sha256 226c1c470f8cc983327536404f405a1d026cf0a5188c694a1243cc8630014bae prboom-2.5.0.tar.gz sha256 1cba07ce0f6d1366d84b7cc62b76966ba79075e5f379c1e230c3ff0635fa789f COPYING ================================================ FILE: package/prboom/prboom.mk ================================================ ################################################################################ # # prboom # ################################################################################ PRBOOM_VERSION = 2.5.0 PRBOOM_SITE = http://downloads.sourceforge.net/project/prboom/prboom%20stable/$(PRBOOM_VERSION) PRBOOM_CONF_ENV = ac_cv_type_uid_t=yes PRBOOM_DEPENDENCIES = sdl sdl_net sdl_mixer PRBOOM_LICENSE = GPL-2.0+ PRBOOM_LICENSE_FILES = COPYING PRBOOM_AUTORECONF = YES PRBOOM_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) PRBOOM_CFLAGS += -O0 endif PRBOOM_CONF_ENV += CFLAGS="$(PRBOOM_CFLAGS)" ifeq ($(BR2_PACKAGE_LIBPNG),y) PRBOOM_DEPENDENCIES += libpng endif 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 PRBOOM_CONF_ENV += LIBS="`$(STAGING_DIR)/usr/bin/sdl-config --static-libs`" endif PRBOOM_CONF_OPTS = \ --oldincludedir=$(STAGING_DIR)/usr/include \ --with-sdl-prefix=$(STAGING_DIR)/usr \ --with-sdl-exec-prefix=$(STAGING_DIR)/usr \ --disable-cpu-opt \ --disable-sdltest \ --disable-gl # endianness detection isn't used when cross compiling define PRBOOM_BIG_ENDIAN_FIXUP $(SED) 's,.*#undef WORDS_BIGENDIAN.*,#define WORDS_BIGENDIAN 1,g' \ $(PRBOOM_DIR)/config.h endef ifeq ($(BR2_ENDIAN),"BIG") PRBOOM_POST_CONFIGURE_HOOKS += PRBOOM_BIG_ENDIAN_FIXUP endif define PRBOOM_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/src/prboom $(TARGET_DIR)/usr/games/prboom $(INSTALL) -D $(@D)/src/prboom-game-server $(TARGET_DIR)/usr/games/prboom-game-server $(INSTALL) -D $(@D)/data/prboom.wad $(TARGET_DIR)/usr/share/games/doom/prboom.wad endef $(eval $(autotools-package)) ================================================ FILE: package/prelink-cross/0001-src-rtld-dl-tls.c-Fix-TLS-offsets-computation-for-s3.patch ================================================ From 4064f77d2f550762cbf220fec7c26a8ce4219ea4 Mon Sep 17 00:00:00 2001 From: Alexander Egorenkov Date: Sun, 8 Aug 2021 11:19:52 +0200 Subject: [PATCH] src/rtld/dl-tls.c: Fix TLS offsets computation for s390 arch rtld_determine_tlsoffsets() didn't handle s390 arch properly by falling back to the default case. If TLS_TCB_AT_TP is 1, then set offset to -1. From glibc's sysdeps/s390/nptl/tls.h: ------------------------------------- /* The TCB can have any size and the memory following the address the thread pointer points to is unspecified. Allocate the TCB there. */ define TLS_TCB_AT_TP 1 define TLS_DTV_AT_TP 0 This lead to the following error: --------------------------------- prelink-rtld: error while loading shared libraries: /lib64/libc.so.6: cannot handle TLS data Signed-off-by: Alexander Egorenkov --- src/rtld/dl-tls.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/rtld/dl-tls.c b/src/rtld/dl-tls.c index 280cee45f950..29422dcfd25e 100644 --- a/src/rtld/dl-tls.c +++ b/src/rtld/dl-tls.c @@ -143,6 +143,11 @@ rtld_determine_tlsoffsets (int e_machine, struct r_scope_elem *search_list) tls_tcb_size = 0; break; + case EM_S390: + tls_tcb_at_tp = 1; + tls_tcb_size = -1; + break; + default: /* Hope there's no TLS! */ for (i = 0; i < search_list->r_nlist; i++) -- 2.31.1 ================================================ FILE: package/prelink-cross/prelink-cross.hash ================================================ # Locally computed sha256 d7c95e81993edead813accf417f6d5b05bcc84eea9ee2d711b9505ffb4f2865b prelink-cross-a853a5d715d84eec93aa68e8f2df26b7d860f5b2-br1.tar.gz sha256 b8a2f73f743dc1a51aff23f1aacbca4b868564db52496fa3c0caba755bfd1eaf COPYING ================================================ FILE: package/prelink-cross/prelink-cross.mk ================================================ ################################################################################ # # host-prelink-cross # ################################################################################ PRELINK_CROSS_VERSION = a853a5d715d84eec93aa68e8f2df26b7d860f5b2 PRELINK_CROSS_SITE = https://git.yoctoproject.org/git/prelink-cross PRELINK_CROSS_SITE_METHOD = git PRELINK_CROSS_LICENSE = GPL-2.0+ PRELINK_CROSS_LICENSE_FILES = COPYING # Sources from git, no configure script present PRELINK_CROSS_AUTORECONF = YES HOST_PRELINK_CROSS_DEPENDENCIES = host-elfutils host-libiberty $(eval $(host-autotools-package)) ================================================ FILE: package/privoxy/Config.in ================================================ config BR2_PACKAGE_PRIVOXY bool "privoxy" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS 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/ comment "privoxy needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/privoxy/privoxy.hash ================================================ # From https://sourceforge.net/projects/ijbswa/files/Sources/3.0.32%20%28stable%29/ md5 3a0a8ebdf80e0a29154683e74cbf510b privoxy-3.0.32-stable-src.tar.gz sha1 3a298ab2599fc92555c86dc29a37742d7396a0d3 privoxy-3.0.32-stable-src.tar.gz # Locally computed sha256 c61de4008c62445ec18f1f270407cbf2372eaba93beaccdc9e3238bb2defeed7 privoxy-3.0.32-stable-src.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/privoxy/privoxy.mk ================================================ ################################################################################ # # privoxy # ################################################################################ PRIVOXY_VERSION = 3.0.32 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 = GPL-2.0+ PRIVOXY_LICENSE_FILES = LICENSE PRIVOXY_CPE_ID_VENDOR = privoxy PRIVOXY_SELINUX_MODULES = privoxy $(eval $(autotools-package)) ================================================ FILE: package/procps-ng/Config.in ================================================ 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 help Standard informational utilities and process-handling tools. Provides things like kill, ps, uptime, free, top, etc... http://sourceforge.net/projects/procps-ng/ ================================================ FILE: package/procps-ng/S02sysctl ================================================ #!/bin/sh # # This script is used by busybox and procps-ng. # # With procps-ng, the "--system" option of sysctl also enables "--ignore", so # errors are not reported via syslog. Use the run_logger function to mimic the # --system behavior, still reporting errors via syslog. Users not interested # on error reports can add "-e" to SYSCTL_ARGS. # # busybox does not have a "--system" option neither reports errors via syslog, # so the scripting provides a consistent behavior between the implementations. # Testing the busybox sysctl exit code is fruitless, as at the moment, since # its exit status is zero even if errors happen. Hopefully this will be fixed # in a future busybox version. PROGRAM="sysctl" SYSCTL_ARGS="" # shellcheck source=/dev/null [ -r "/etc/default/$PROGRAM" ] && . "/etc/default/$PROGRAM" # Files are read from directories in the SYSCTL_SOURCES list, in the given # order. A file may be used more than once, since there can be multiple # symlinks to it. No attempt is made to prevent this. SYSCTL_SOURCES="/etc/sysctl.d/ /usr/local/lib/sysctl.d/ /usr/lib/sysctl.d/ /lib/sysctl.d/ /etc/sysctl.conf" # If the logger utility is available all messages are sent to syslog, except # for the final status. The file redirections do the following: # # - stdout is redirected to syslog with facility.level "kern.info" # - stderr is redirected to syslog with facility.level "kern.err" # - file dscriptor 4 is used to pass the result to the "start" function. # run_logger() { # shellcheck disable=SC2086 # we need the word splitting find $SYSCTL_SOURCES -maxdepth 1 -name '*.conf' -print0 2> /dev/null | \ xargs -0 -r -n 1 readlink -f | { prog_status="OK" while :; do read -r file || { echo "$prog_status" >&4 break } echo "* Applying $file ..." /sbin/sysctl -p "$file" $SYSCTL_ARGS || prog_status="FAIL" done 2>&1 >&3 | /usr/bin/logger -t sysctl -p kern.err } 3>&1 | /usr/bin/logger -t sysctl -p kern.info } # If logger is not available all messages are sent to stdout/stderr. run_std() { # shellcheck disable=SC2086 # we need the word splitting find $SYSCTL_SOURCES -maxdepth 1 -name '*.conf' -print0 2> /dev/null | \ xargs -0 -r -n 1 readlink -f | { prog_status="OK" while :; do read -r file || { echo "$prog_status" >&4 break } echo "* Applying $file ..." /sbin/sysctl -p "$file" $SYSCTL_ARGS || prog_status="FAIL" done } } if [ -x /usr/bin/logger ]; then run_program="run_logger" else run_program="run_std" fi start() { printf '%s %s: ' "$1" "$PROGRAM" status=$("$run_program" 4>&1) echo "$status" if [ "$status" = "OK" ]; then return 0 fi return 1 } case "$1" in start) start "Running";; restart|reload) start "Rerunning";; stop) :;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/procps-ng/procps-ng.hash ================================================ # From http://sourceforge.net/projects/procps-ng/files/Production/ md5 2b0717a7cb474b3d6dfdeedfbad2eccc procps-ng-3.3.15.tar.xz sha1 2929bc64f0cf7b2db997eef79b7187658e47230d procps-ng-3.3.15.tar.xz # Locally calculated after checking signature # http://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-3.3.15.tar.xz.asc sha256 10bd744ffcb3de2d591d2f6acf1a54a7ba070fdcc432a855931a5057149f0465 procps-ng-3.3.15.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 681e386e44a19d7d0674b4320272c90e66b6610b741e7e6305f8219c42e85366 COPYING.LIB ================================================ FILE: package/procps-ng/procps-ng.mk ================================================ ################################################################################ # # procps-ng # ################################################################################ PROCPS_NG_VERSION = 3.3.15 PROCPS_NG_SOURCE = procps-ng-$(PROCPS_NG_VERSION).tar.xz PROCPS_NG_SITE = http://downloads.sourceforge.net/project/procps-ng/Production PROCPS_NG_LICENSE = GPL-2.0+, LGPL-2.0+ (libproc and libps) PROCPS_NG_LICENSE_FILES = COPYING COPYING.LIB PROCPS_NG_CPE_ID_VENDOR = procps-ng_project PROCPS_NG_INSTALL_STAGING = YES PROCPS_NG_DEPENDENCIES = ncurses host-pkgconf $(TARGET_NLS_DEPENDENCIES) PROCPS_NG_CONF_OPTS = LIBS=$(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_SYSTEMD),y) PROCPS_NG_DEPENDENCIES += systemd PROCPS_NG_CONF_OPTS += --with-systemd else PROCPS_NG_CONF_OPTS += --without-systemd endif # Make sure binaries get installed in /bin, as busybox does, so that we # don't end up with two versions. # 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) PROCPS_NG_CONF_OPTS += \ --enable-watch8bit endif ifeq ($(BR2_USE_WCHAR),) PROCPS_NG_CONF_OPTS += CPPFLAGS=-DOFF_XTRAWIDE 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 # Avoid installing S02sysctl, since openrc provides /etc/init.d/sysctl. define PROCPS_NG_INSTALL_INIT_OPENRC @: endef define PROCPS_NG_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/procps-ng/S02sysctl \ $(TARGET_DIR)/etc/init.d/S02sysctl endef $(eval $(autotools-package)) ================================================ FILE: package/procrank_linux/Config.in ================================================ 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 ================================================ FILE: package/procrank_linux/procrank_linux.hash ================================================ # Locally calculated sha256 1c3592b549b6793b29ab561568f493d0edbfe288ea2aed59afa689eaa26b5d9e procrank_linux-21c30ab4514a5b15ac6e813e21bee0d3d714cb08.tar.gz sha256 38751245389e1e23f73e6f5384b5cbe7fa972cc4410c5adc9c04b082a0b9561a NOTICE ================================================ FILE: package/procrank_linux/procrank_linux.mk ================================================ ################################################################################ # # 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)) ================================================ FILE: package/proftpd/0001-mod_quotatab-fix-build-failure-against-gcc-10.patch ================================================ From 9c9623c8a47fb5580dfea1a59296c6d224479504 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Mon, 2 Mar 2020 23:45:22 +0000 Subject: [PATCH] mod_quotatab: fix build failure against gcc-10 On gcc-10 (and gcc-9 -fno-common) build fails as: ``` $ ./configure --with-modules=mod_quotatab && make ... ld: modules/module_glue.o:(.data.rel+0x68): undefined reference to `quotatab_file_module' collect2: error: ld returned 1 exit status make: *** [Makefile:56: proftpd] Error 1 ``` gcc-10 will change the default from -fcommon to fno-common: https://gcc.gnu.org/PR85678. The error also happens if CFLAGS=-fno-common passed explicitly. Signed-off-by: Sergei Trofimovich [Retrieved from: https://github.com/proftpd/proftpd/commit/9c9623c8a47fb5580dfea1a59296c6d224479504] Signed-off-by: Fabrice Fontaine --- contrib/mod_quotatab.c | 1 + contrib/mod_quotatab.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/mod_quotatab.c b/contrib/mod_quotatab.c index 4fa6c1f44..0ee480163 100644 --- a/contrib/mod_quotatab.c +++ b/contrib/mod_quotatab.c @@ -50,6 +50,7 @@ typedef struct regtab_obj { module quotatab_module; /* Quota objects for the current session */ +quota_deltas_t quotatab_deltas; static quota_table_t *limit_tab = NULL; static quota_limit_t sess_limit; diff --git a/contrib/mod_quotatab.h b/contrib/mod_quotatab.h index ed30333f5..c818395a0 100644 --- a/contrib/mod_quotatab.h +++ b/contrib/mod_quotatab.h @@ -188,7 +188,7 @@ typedef struct table_obj { #define QUOTATAB_TALLY_SRC 0x0002 /* Quota objects for the current session. */ -quota_deltas_t quotatab_deltas; +extern quota_deltas_t quotatab_deltas; /* Function prototypes necessary for quotatab sub-modules */ int quotatab_log(const char *, ...) ================================================ FILE: package/proftpd/Config.in ================================================ config BR2_PACKAGE_PROFTPD bool "proftpd" depends on BR2_USE_MMU # fork() help ProFTPD, a highly configurable FTP server. http://www.proftpd.org/ if BR2_PACKAGE_PROFTPD config BR2_PACKAGE_PROFTPD_MOD_CAP bool "mod_cap support" select BR2_PACKAGE_LIBCAP help Compile ProFTPD with mod_cap support config BR2_PACKAGE_PROFTPD_MOD_REWRITE bool "mod_rewrite support" help Compile ProFTPD with mod_rewrite support config BR2_PACKAGE_PROFTPD_MOD_REDIS bool "mod_redis support" select BR2_PACKAGE_HIREDIS help The mod_redis module enables ProFTPD support for caching data in Redis servers, using the hiredis client library. config BR2_PACKAGE_PROFTPD_MOD_SFTP bool "mod_sftp support" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160 if BR2_PACKAGE_LIBOPENSSL help Compile ProFTPD with mod_sftp support config BR2_PACKAGE_PROFTPD_MOD_SQL bool "mod_sql support" help Compile ProFTPD with mod_sql support. if BR2_PACKAGE_PROFTPD_MOD_SQL config BR2_PACKAGE_PROFTPD_MOD_SQL_SQLITE bool "mod_sql_sqlite support" select BR2_PACKAGE_SQLITE help Compile ProFTPD with mod_sql_sqlite support. endif config BR2_PACKAGE_PROFTPD_MOD_SFTP_SQL bool "mod_sftp_sql support" select BR2_PACKAGE_PROFTPD_MOD_SQL select BR2_PACKAGE_PROFTPD_MOD_SFTP help Compile ProFTPD with mod_sftp_sql support config BR2_PACKAGE_PROFTPD_MOD_QUOTATAB bool "mod_quotatab support" help Compile ProFTPD with mod_quotatab support. This module is required in order to support quota tables: 1. mod_quotatab_file 2. mod_quotatab_ldap 3. mod_quotatab_radius 4. mod_quotatab_sql if BR2_PACKAGE_PROFTPD_MOD_QUOTATAB config BR2_PACKAGE_PROFTPD_MOD_QUOTATAB_FILE bool "mod_quotatab_file table support" help Compile mod_quotatab with mod_quotatab_file table. config BR2_PACKAGE_PROFTPD_MOD_QUOTATAB_LDAP bool "mod_quotatab_ldap table support" help Compile mod_quotatab with mod_quotatab_ldap table. config BR2_PACKAGE_PROFTPD_MOD_QUOTATAB_RADIUS bool "mod_quotatab_radius table support" help Compile mod_quotatab with mod_quotatab_radius table. config BR2_PACKAGE_PROFTPD_MOD_QUOTATAB_SQL bool "mod_quotatab_sql table support" select BR2_PACKAGE_PROFTPD_MOD_SQL help Compile mod_quotatab with mod_quotatab_sql table. endif config BR2_PACKAGE_PROFTPD_BUFFER_SIZE int "buffer size in bytes (0 for default)" default "0" help By increasing the buffer size above the default of 1K, proftpd reads and writes data in larger chunks, and makes fewer expensive system calls. Use of this option to set buffer sizes of 8K or more has been reported to drastically increase transfer speeds (depending on network configurations). 0 uses the default size of 1024. endif ================================================ FILE: package/proftpd/S50proftpd ================================================ #!/bin/sh trap "" HUP trap "" TERM [ ! -d /var/run/proftpd ] && mkdir /var/run/proftpd [ ! -f /var/log/wtmp ] && touch /var/log/wtmp start() { printf "Starting ProFTPD: " /usr/sbin/proftpd if [ $? != 0 ]; then echo "FAILED" exit 1 else echo "done" fi } stop() { printf "Stopping ProFTPD: " killall proftpd echo "done" } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: /etc/init.d/S50proftpd {start|stop|restart}" exit 1 ;; esac exit 0 ================================================ FILE: package/proftpd/proftpd.hash ================================================ # Locally calculated sha256 2dbe684034ab592742ebdb778a8a234b70f959efeb30feedee3ea77f26f74fbb proftpd-1.3.6e.tar.gz sha256 391a473d755c29b5326fb726326ff3c37e42512f53a8f5789fc310232150bf80 COPYING ================================================ FILE: package/proftpd/proftpd.mk ================================================ ################################################################################ # # proftpd # ################################################################################ PROFTPD_VERSION = 1.3.6e PROFTPD_SITE = $(call github,proftpd,proftpd,v$(PROFTPD_VERSION)) PROFTPD_LICENSE = GPL-2.0+ PROFTPD_LICENSE_FILES = COPYING PROFTPD_CPE_ID_VENDOR = proftpd PROFTPD_SELINUX_MODULES = ftp PROFTPD_CONF_ENV = \ ac_cv_func_setpgrp_void=yes \ ac_cv_func_setgrent_void=yes PROFTPD_CONF_OPTS = \ --localstatedir=/var/run \ --disable-static \ --disable-curses \ --disable-ncurses \ --disable-facl \ --disable-dso \ --enable-sendfile \ --enable-shadow \ --with-gnu-ld \ --without-openssl-cmdline ifeq ($(BR2_PACKAGE_PROFTPD_MOD_CAP),y) PROFTPD_CONF_OPTS += --enable-cap PROFTPD_DEPENDENCIES += libcap else PROFTPD_CONF_OPTS += --disable-cap endif ifeq ($(BR2_PACKAGE_PROFTPD_MOD_REWRITE),y) PROFTPD_MODULES += mod_rewrite endif ifeq ($(BR2_PACKAGE_PROFTPD_MOD_REDIS),y) PROFTPD_CONF_OPTS += --enable-redis PROFTPD_DEPENDENCIES += hiredis else PROFTPD_CONF_OPTS += --disable-redis endif ifeq ($(BR2_PACKAGE_PROFTPD_MOD_SFTP),y) PROFTPD_CONF_OPTS += --enable-openssl PROFTPD_MODULES += mod_sftp PROFTPD_DEPENDENCIES += openssl else PROFTPD_CONF_OPTS += --disable-openssl endif ifeq ($(BR2_PACKAGE_PROFTPD_MOD_SQL),y) PROFTPD_MODULES += mod_sql endif ifeq ($(BR2_PACKAGE_PROFTPD_MOD_SQL_SQLITE),y) PROFTPD_MODULES += mod_sql_sqlite PROFTPD_DEPENDENCIES += sqlite endif ifeq ($(BR2_PACKAGE_PROFTPD_MOD_SFTP_SQL),y) PROFTPD_MODULES += mod_sftp_sql endif ifeq ($(BR2_PACKAGE_PROFTPD_MOD_QUOTATAB),y) PROFTPD_MODULES += mod_quotatab endif ifeq ($(BR2_PACKAGE_PROFTPD_MOD_QUOTATAB_FILE),y) PROFTPD_MODULES += mod_quotatab_file endif ifeq ($(BR2_PACKAGE_PROFTPD_MOD_QUOTATAB_LDAP),y) PROFTPD_MODULES += mod_quotatab_ldap endif ifeq ($(BR2_PACKAGE_PROFTPD_MOD_QUOTATAB_RADIUS),y) PROFTPD_MODULES += mod_quotatab_radius endif ifeq ($(BR2_PACKAGE_PROFTPD_MOD_QUOTATAB_SQL),y) PROFTPD_MODULES += mod_quotatab_sql endif PROFTPD_CONF_OPTS += --with-modules=$(subst $(space),:,$(PROFTPD_MODULES)) # configure script doesn't handle detection of %llu format string # support for printing the file size when cross compiling, breaking # access for large files. # We unfortunately cannot AUTORECONF the package, so instead force it # on if we know we support it define PROFTPD_USE_LLU $(SED) 's/HAVE_LU/HAVE_LLU/' $(@D)/configure endef PROFTPD_PRE_CONFIGURE_HOOKS += PROFTPD_USE_LLU PROFTPD_MAKE = $(MAKE1) # install Perl based scripts in target ifeq ($(BR2_PACKAGE_PERL),y) ifeq ($(BR2_PACKAGE_PROFTPD_MOD_QUOTATAB),y) define PROFTPD_INSTALL_FTPQUOTA $(INSTALL) -D -m 0755 $(@D)/contrib/ftpquota $(TARGET_DIR)/usr/sbin/ftpquota endef endif define PROFTPD_INSTALL_FTPASSWD $(INSTALL) -D -m 0755 $(@D)/contrib/ftpasswd $(TARGET_DIR)/usr/sbin/ftpasswd endef endif define PROFTPD_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/proftpd $(TARGET_DIR)/usr/sbin/proftpd $(INSTALL) -m 0644 -D $(@D)/sample-configurations/basic.conf $(TARGET_DIR)/etc/proftpd.conf $(PROFTPD_INSTALL_FTPQUOTA) $(PROFTPD_INSTALL_FTPASSWD) endef define PROFTPD_USERS ftp -1 ftp -1 * /home/ftp - - Anonymous FTP User endef define PROFTPD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/proftpd/S50proftpd $(TARGET_DIR)/etc/init.d/S50proftpd endef define PROFTPD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/proftpd/proftpd.service \ $(TARGET_DIR)/usr/lib/systemd/system/proftpd.service endef ifneq ($(BR2_PACKAGE_PROFTPD_BUFFER_SIZE),0) PROFTPD_CONF_OPTS += --enable-buffer-size=$(BR2_PACKAGE_PROFTPD_BUFFER_SIZE) endif $(eval $(autotools-package)) ================================================ FILE: package/proftpd/proftpd.service ================================================ [Unit] Description=FTP server After=syslog.target network.target [Service] ExecStart=/usr/sbin/proftpd -n -q Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/proj/Config.in ================================================ config BR2_PACKAGE_PROJ bool "proj" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR select BR2_PACKAGE_SQLITE help proj.4 is a standard UNIX filter function which converts geographic longitude and latitude coordinates into cartesian coordinates (and vice versa), and it is a C API for software developers to include coordinate transformation in their own software. http://proj4.org/ comment "proj needs a toolchain w/ C++, gcc >= 4.7, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR ================================================ FILE: package/proj/proj.hash ================================================ # Fetched from http://download.osgeo.org/proj/proj-8.1.1.tar.gz.md5 md5 f017fd7d35311b0d65b2cf0503844690 proj-8.1.1.tar.gz # Locally calculated sha256 82f1345e5fa530c407cb1fc0752e83f8d08d2b98772941bbdc7820241f7fada2 proj-8.1.1.tar.gz sha256 6a8f30793e877d32e3f88b972f0970a051a3b5a26cd057d3993cb51e21c43319 COPYING ================================================ FILE: package/proj/proj.mk ================================================ ################################################################################ # # proj # ################################################################################ PROJ_VERSION = 8.1.1 PROJ_SITE = http://download.osgeo.org/proj PROJ_LICENSE = MIT PROJ_LICENSE_FILES = COPYING PROJ_INSTALL_STAGING = YES PROJ_DEPENDENCIES = host-pkgconf host-sqlite sqlite PROJ_CFLAGS = $(TARGET_CFLAGS) PROJ_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) PROJ_CFLAGS += -O0 PROJ_CXXFLAGS += -O0 endif PROJ_CONF_ENV = \ CFLAGS="$(PROJ_CFLAGS)" \ CXXFLAGS="$(PROJ_CXXFLAGS)" ifeq ($(BR2_PACKAGE_LIBCURL),y) PROJ_DEPENDENCIES += libcurl PROJ_CONF_OPTS += --with-curl=$(STAGING_DIR)/usr/bin/curl-config else PROJ_CONF_OPTS += --without-curl endif ifeq ($(BR2_PACKAGE_TIFF),y) PROJ_DEPENDENCIES += tiff PROJ_CONF_OPTS += --enable-tiff else PROJ_CONF_OPTS += --disable-tiff endif $(eval $(autotools-package)) ================================================ FILE: package/prosody/0001-enable-syslog.patch ================================================ From 267b5d195be0f3a8f00ccf4ccb62e25a9c4e48eb Mon Sep 17 00:00:00 2001 From: Francois Perrad Date: Sun, 22 Oct 2017 08:44:01 +0200 Subject: [PATCH] enable syslog note: the posix module is auto-loaded by default Signed-off-by: Francois Perrad diff --git a/prosody.cfg.lua.dist b/prosody.cfg.lua.dist index a0fc6c9e..af3cc0e4 100644 --- a/prosody.cfg.lua.dist +++ b/prosody.cfg.lua.dist @@ -166,7 +166,7 @@ archive_expires_after = "1w" -- Remove archived messages after 1 week log = { info = "prosody.log"; -- Change 'info' to 'debug' for verbose logging error = "prosody.err"; - -- "*syslog"; -- Uncomment this for logging to syslog + "*syslog"; -- Uncomment this for logging to syslog -- "*console"; -- Log to the console, useful for debugging with daemonize=false } -- 2.11.0 ================================================ FILE: package/prosody/0002-add-pidfile.patch ================================================ From 124d479195ac8ec1747b5b89fe4860d0e92c2aae Mon Sep 17 00:00:00 2001 From: Francois Perrad Date: Sun, 22 Oct 2017 08:58:11 +0200 Subject: [PATCH] add pidfile see https://prosody.im/doc/configure#posix-only_options Signed-off-by: Francois Perrad diff --git a/prosody.cfg.lua.dist b/prosody.cfg.lua.dist index af3cc0e4..675db12f 100644 --- a/prosody.cfg.lua.dist +++ b/prosody.cfg.lua.dist @@ -187,6 +187,9 @@ log = { -- HTTPS currently only supports a single certificate, specify it here: --https_certificate = "certs/localhost.crt" +-- This must match the PIDFILE used in S50prosody +pidfile = "/var/run/prosody/prosody.pid" + ----------- Virtual hosts ----------- -- You need to add a VirtualHost entry for each domain you wish Prosody to serve. -- Settings under each VirtualHost entry apply *only* to that host. -- 2.11.0 ================================================ FILE: package/prosody/Config.in ================================================ config BR2_PACKAGE_PROSODY bool "prosody" depends on BR2_USE_MMU # fork depends on BR2_PACKAGE_HAS_LUAINTERPRETER depends on !BR2_PACKAGE_LUA_5_4 depends on !BR2_STATIC_LIBS # luaexpat, luasec, luasocket, luafilesystem select BR2_PACKAGE_LUABITOP if BR2_PACKAGE_LUA_5_1 # runtime select BR2_PACKAGE_LUAEXPAT # runtime select BR2_PACKAGE_LUASEC # runtime select BR2_PACKAGE_LUASOCKET # runtime select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBIDN select BR2_PACKAGE_LUAFILESYSTEM # runtime help Prosody is a modern XMPP communication server. It aims to be easy to set up and configure, and efficient with system resources. https://prosody.im comment "prosody needs the lua interpreter, dynamic library" depends on !BR2_PACKAGE_HAS_LUAINTERPRETER || BR2_STATIC_LIBS depends on BR2_USE_MMU comment "prosody needs a Lua <= 5.3" depends on BR2_PACKAGE_LUA_5_4 ================================================ FILE: package/prosody/S50prosody ================================================ #! /bin/sh NAME=prosody # This must match the pidfile field in # /etc/prosody/prosody.cfg.lua PIDDIR=/var/run/$NAME PIDFILE=$PIDDIR/$NAME.pid case "$1" in start) printf "Starting $NAME: " mkdir -p $PIDDIR chown $NAME:$NAME $PIDDIR start-stop-daemon -S -q -o -x /usr/bin/prosody -c $NAME [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping $NAME: " # The standard method of identifying the name doesn't # work as the process name is lua. So use the pidfile # which is created by the service itself as a match # criteria when stopping the service start-stop-daemon -K -q -o -p "$PIDFILE" [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart|reload) echo "Restarting $NAME: " $0 stop sleep 1 $0 start ;; *) echo "Usage: $0 {start|stop|restart|reload}" >&2 exit 1 ;; esac exit 0 ================================================ FILE: package/prosody/prosody.hash ================================================ # Locally computed: md5 6130b79fb64141909330caf83a79a131 prosody-0.11.10.tar.gz sha1 4dc8b2f783b43e7a5e781b1fc8aee48b0e106def prosody-0.11.10.tar.gz sha256 c6d714e6d4a6ddd1db1266b205d9d8a3ed91818f42755c9268ffb18359d204e1 prosody-0.11.10.tar.gz sha512 419d8f8465f1807015f0a52d8f35ee89892b0869084dae38b60fc833d63c3d70892d8e59ae00039cd15e0e25f46d042954896f51f8c0520650a877f5296707cb prosody-0.11.10.tar.gz # Hash for license file: sha256 bbbdc1c5426e5944cf869fc0faeaf19d88a220cd2b39ea98b7b8e86b0e88a2ef COPYING ================================================ FILE: package/prosody/prosody.mk ================================================ ################################################################################ # # prosody # ################################################################################ PROSODY_VERSION = 0.11.10 PROSODY_SITE = https://prosody.im/downloads/source PROSODY_LICENSE = MIT PROSODY_LICENSE_FILES = COPYING PROSODY_CPE_ID_VENDOR = prosody PROSODY_DEPENDENCIES = host-luainterpreter luainterpreter libidn openssl PROSODY_CFLAGS = $(TARGET_CFLAGS) -fPIC -std=c99 \ $(if BR2_TOOLCHAIN_USES_MUSL,-DWITHOUT_MALLINFO) PROSODY_CONF_OPTS = \ --with-lua-bin=$(HOST_DIR)/bin \ --with-lua=$(STAGING_DIR)/usr \ --lua-version=$(LUAINTERPRETER_ABIVER) \ --c-compiler=$(TARGET_CC) \ --cflags="$(PROSODY_CFLAGS)" \ --linker=$(TARGET_CC) \ --ldflags="$(TARGET_LDFLAGS) -shared" \ --sysconfdir=/etc/prosody \ --prefix=/usr ifeq ($(BR2_PACKAGE_LUAJIT),y) PROSODY_CONF_OPTS += --runwith=luajit endif define PROSODY_CONFIGURE_CMDS cd $(@D) && \ $(TARGET_CONFIGURE_OPTS) \ ./configure $(PROSODY_CONF_OPTS) endef define PROSODY_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define PROSODY_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)" -C $(@D) install endef define PROSODY_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/prosody/S50prosody \ $(TARGET_DIR)/etc/init.d/S50prosody endef define PROSODY_USERS prosody -1 prosody -1 * - - - Prosody user endef # make install installs a Makefile and meta data to generate certs define PROSODY_REMOVE_CERT_GENERATOR rm -f $(TARGET_DIR)/etc/prosody/certs/Makefile rm -f $(TARGET_DIR)/etc/prosody/certs/*.cnf endef PROSODY_POST_INSTALL_TARGET_HOOKS += PROSODY_REMOVE_CERT_GENERATOR $(eval $(generic-package)) ================================================ FILE: package/protobuf/Config.in ================================================ # See src/google/protobuf/stubs/platform_macros.h for supported archs. # # 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. # # host-protobuf only builds on certain architectures config BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS bool default y if BR2_arm default y if BR2_i386 default y if BR2_mipsel default y if BR2_x86_64 default y if BR2_sparc64 default y if BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on BR2_USE_MMU # fork() depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464 config BR2_PACKAGE_PROTOBUF bool "protobuf" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on !BR2_STATIC_LIBS help Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data. https://developers.google.com/protocol-buffers comment "protobuf needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS ================================================ FILE: package/protobuf/protobuf.hash ================================================ # Locally calculated sha256 6e5e117324afd944dcf67f36cf329843bc1a92229a8cd9bb573d7a83130fea7d LICENSE sha256 7308590dbb95e77066b99c5674eed855c8257e70658d2af586f4a81ff0eea2b1 protobuf-cpp-3.18.0.tar.gz ================================================ FILE: package/protobuf/protobuf.mk ================================================ ################################################################################ # # protobuf # ################################################################################ # When bumping this package, make sure to also verify if the # python-protobuf package still works and to update its hash, # as they share the same version/site variables. PROTOBUF_VERSION = 3.18.0 PROTOBUF_SOURCE = protobuf-cpp-$(PROTOBUF_VERSION).tar.gz PROTOBUF_SITE = https://github.com/protocolbuffers/protobuf/releases/download/v$(PROTOBUF_VERSION) PROTOBUF_LICENSE = BSD-3-Clause PROTOBUF_LICENSE_FILES = LICENSE PROTOBUF_CPE_ID_VENDOR = google # N.B. Need to use host protoc during cross compilation. PROTOBUF_DEPENDENCIES = host-protobuf PROTOBUF_CONF_OPTS = --with-protoc=$(HOST_DIR)/bin/protoc PROTOBUF_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) PROTOBUF_CXXFLAGS += -O0 endif ifeq ($(BR2_or1k),y) PROTOBUF_CXXFLAGS += -mcmodel=large endif PROTOBUF_CONF_ENV = CXXFLAGS="$(PROTOBUF_CXXFLAGS)" ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) PROTOBUF_CONF_ENV += LIBS=-latomic endif PROTOBUF_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_ZLIB),y) PROTOBUF_DEPENDENCIES += zlib endif define PROTOBUF_REMOVE_UNNECESSARY_TARGET_FILES rm -rf $(TARGET_DIR)/usr/bin/protoc rm -rf $(TARGET_DIR)/usr/lib/libprotoc.so* endef PROTOBUF_POST_INSTALL_TARGET_HOOKS += PROTOBUF_REMOVE_UNNECESSARY_TARGET_FILES $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/protobuf-c/Config.in ================================================ config BR2_PACKAGE_PROTOBUF_C bool "protobuf-c" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # host-protobuf only builds on certain architectures depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" help Code generator and runtime libraries to use Protocol Buffers from pure C (not C++). https://github.com/protobuf-c/protobuf-c comment "protobuf-c needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" ================================================ FILE: package/protobuf-c/protobuf-c.hash ================================================ # Locally calculated sha256 1068bca1e9870e9492096f97c409cd15f10c5019c183e52ec6d53e8d18630cbf protobuf-c-1.4.0.tar.gz sha256 20e800cad4550f4b19bb37fc9577dac21de13333ae66497c4c45ae489c35c34a LICENSE ================================================ FILE: package/protobuf-c/protobuf-c.mk ================================================ ################################################################################ # # protobuf-c # ################################################################################ PROTOBUF_C_VERSION = 1.4.0 PROTOBUF_C_SITE = $(call github,protobuf-c,protobuf-c,v$(PROTOBUF_C_VERSION)) PROTOBUF_C_DEPENDENCIES = host-protobuf-c HOST_PROTOBUF_C_DEPENDENCIES = host-protobuf host-pkgconf PROTOBUF_C_MAKE = $(MAKE1) PROTOBUF_C_CONF_OPTS = --disable-protoc PROTOBUF_C_INSTALL_STAGING = YES PROTOBUF_C_LICENSE = BSD-2-Clause PROTOBUF_C_LICENSE_FILES = LICENSE PROTOBUF_C_AUTORECONF = YES HOST_PROTOBUF_C_AUTORECONF = YES # host-protobuf needs c++11 (since 3.6.0) HOST_PROTOBUF_C_CONF_ENV += CXXFLAGS="$(HOST_CXXFLAGS) -std=c++11" $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/protozero/0001-CMakeLists.txt-respect-BUILD_TESTING.patch ================================================ From 03daae49c8fa94513b508bd12f1597e8e5e086f2 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 17 Apr 2021 13:06:44 +0200 Subject: [PATCH] CMakeLists.txt: respect BUILD_TESTING Don't build tests if the standard cmake BUILD_TESTING variable is set to OFF. Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/mapbox/protozero/pull/105] --- CMakeLists.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f9702d6..7a40212 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) #----------------------------------------------------------------------------- +option(BUILD_TESTING "Build tests" ON) option(WERROR "Add -Werror flag to build (turns warnings into errors)" ON) if(MSVC) @@ -134,13 +135,13 @@ install(DIRECTORY include/protozero DESTINATION include) #----------------------------------------------------------------------------- -enable_testing() - add_subdirectory(doc) add_subdirectory(tools) -add_subdirectory(test) - +if(BUILD_TESTING) + enable_testing() + add_subdirectory(test) +endif() #----------------------------------------------------------------------------- -- 2.30.2 ================================================ FILE: package/protozero/Config.in ================================================ config BR2_PACKAGE_PROTOZERO bool "protozero" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 help Minimalistic protocol buffer decoder and encoder in C++. Designed for high performance. Suitable for writing zero copy parsers and encoders with minimal need for run-time allocation of memory. Low-level: this is designed to be a building block for writing a very customized decoder for a stable protobuf schema. If your protobuf schema is changing frequently or lazy decoding is not critical for your application then this approach offers no value: just use the C++ API that can be generated with the Google Protobufs protoc program. https://github.com/mapbox/protozero comment "protozero needs a toolchain w/ C++, gcc >= 4.7" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/protozero/protozero.hash ================================================ # Locally calculated sha256 beffbdfab060854fd770178a8db9c028b5b6ee4a059a2fed82c46390a85f3f31 protozero-1.7.0.tar.gz sha256 1f4d477e3c2d74d8706c8f05437bd86804abe46853b1f233ce1549a4de76fa49 LICENSE.md sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 LICENSE.from_folly ================================================ FILE: package/protozero/protozero.mk ================================================ ################################################################################ # # protozero # ################################################################################ PROTOZERO_VERSION = 1.7.0 PROTOZERO_SITE = $(call github,mapbox,protozero,v$(PROTOZERO_VERSION)) PROTOZERO_LICENSE = BSD-2-Clause, Apache-2.0 PROTOZERO_LICENSE_FILES = LICENSE.md LICENSE.from_folly PROTOZERO_INSTALL_STAGING = YES $(eval $(cmake-package)) ================================================ FILE: package/proxychains-ng/0001-configure-fix-check_link_silent-test.patch ================================================ From 4a557f242a76c6a2a3134acf1d3279818f8ab371 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 23 Jul 2021 09:50:36 +0200 Subject: [PATCH] configure: fix check_link_silent test Replace -o /dev/null by -o "$tmpc".out when testing with check_link_silent otherwise test will fail with some bugged binutils (https://sourceware.org/bugzilla/show_bug.cgi?id=19526) since version 4.13 and https://github.com/rofl0r/proxychains-ng/commit/35a674bdbc294730429a1007c9e7ce01e65b49b5: checking what's the option to use in linker to set library name ... cannot find an option to set library name package/pkg-generic.mk:249: recipe for target '/home/buildroot/autobuild/instance-2/output-1/build/proxychains-ng-4.14/.stamp_configured' failed Fixes: - http://autobuild.buildroot.org/results/9320d9b2c69882e23bbe7b30057eb8bee0c9d2e5 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/rofl0r/proxychains-ng/pull/387] --- configure | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 8b21b97..cfe19e7 100755 --- a/configure +++ b/configure @@ -49,7 +49,8 @@ check_compile_run() { check_link_silent() { printf "$2" > "$tmpc" - $CC $OUR_CPPFLAGS $CPPFLAGS $1 $CFLAGS "$tmpc" -o /dev/null >/dev/null 2>&1 + $CC $OUR_CPPFLAGS $CPPFLAGS $1 $CFLAGS "$tmpc" -o "$tmpc".out >/dev/null 2>&1 + rm -f "$tmpc".out } check_link() { -- 2.30.2 ================================================ FILE: package/proxychains-ng/Config.in ================================================ config BR2_PACKAGE_PROXYCHAINS_NG bool "proxychains-ng" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS help Force any tcp connections to flow through a proxy (or proxy chain) https://github.com/rofl0r/proxychains comment "proxychains-ng needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/proxychains-ng/proxychains-ng.hash ================================================ # From https://github.com/rofl0r/proxychains-ng/releases/tag/v4.14 sha512 75a1a4629d2b7ebac9b909a694b395339cf669fa4e23bfcc57938e46377b5619f31c9651d2bc457d1ad10ec1be7747981106392bf8bf65999cb7bb9c748d7e95 proxychains-ng-4.14.tar.xz # Locally computed: sha256 86728623caeff60e9bcc37e03b432fd191de927eed48a72a3bb4ac4e53fe20df COPYING ================================================ FILE: package/proxychains-ng/proxychains-ng.mk ================================================ ################################################################################ # # proxychains-ng # ################################################################################ PROXYCHAINS_NG_VERSION = 4.14 PROXYCHAINS_NG_SOURCE = proxychains-ng-$(PROXYCHAINS_NG_VERSION).tar.xz PROXYCHAINS_NG_SITE = http://downloads.sourceforge.net/project/proxychains-ng PROXYCHAINS_NG_LICENSE = GPL-2.0+ PROXYCHAINS_NG_LICENSE_FILES = COPYING PROXYCHAINS_NG_CPE_ID_VENDOR = proxychains-ng_project define PROXYCHAINS_NG_CONFIGURE_CMDS cd $(@D) && \ $(TARGET_CONFIGURE_OPTS) ./configure --prefix=/usr --sysconfdir=/etc endef define PROXYCHAINS_NG_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define PROXYCHAINS_NG_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install install-config endef $(eval $(generic-package)) ================================================ FILE: package/pru-software-support/Config.in ================================================ config BR2_PACKAGE_PRU_SOFTWARE_SUPPORT bool "pru-software-support" depends on BR2_PACKAGE_HOST_TI_CGT_PRU_ARCH_SUPPORTS select BR2_PACKAGE_HOST_PRU_SOFTWARE_SUPPORT help PRU firmware examples extracted from TI's PRU software support package. See readme.txt for installation details. https://git.ti.com/pru-software-support-package/pru-software-support-package ================================================ FILE: package/pru-software-support/Config.in.host ================================================ config BR2_PACKAGE_HOST_PRU_SOFTWARE_SUPPORT bool "host pru-software-support" depends on BR2_PACKAGE_HOST_TI_CGT_PRU_ARCH_SUPPORTS select BR2_PACKAGE_HOST_TI_CGT_PRU help This package provides useful headers and libraries for the PRU unit found on some TI processors e.g. AM3358. Note that the included labs and examples aren't built, they can be built using the corresponding target package. https://git.ti.com/pru-software-support-package/pru-software-support-package ================================================ FILE: package/pru-software-support/pru-software-support.hash ================================================ # Locally-calculated hash sha256 4a6b1b2b8ca892c442fd7fce7ddbf6b74e0619def2bb19f3ad67c94720b7ca3a pru-software-support-package-v5.9.0.tar.gz sha256 62a2f56498cd1bac2d4ea6ea1c941affba1e4bb65bfdf2dcffd8e5079fa34399 PRU-Package-v6.1-Manifest.html ================================================ FILE: package/pru-software-support/pru-software-support.mk ================================================ ################################################################################ # # pru-software-support # ################################################################################ PRU_SOFTWARE_SUPPORT_VERSION = 5.9.0 PRU_SOFTWARE_SUPPORT_SITE = https://git.ti.com/cgit/pru-software-support-package/pru-software-support-package/snapshot PRU_SOFTWARE_SUPPORT_SOURCE = $(PRU_SOFTWARE_SUPPORT_NAME)-package-v$(PRU_SOFTWARE_SUPPORT_VERSION).tar.gz PRU_SOFTWARE_SUPPORT_LICENSE = BSD-3-Clause, Public Domain PRU_SOFTWARE_SUPPORT_LICENSE_FILES = PRU-Package-v6.1-Manifest.html PRU_SOFTWARE_SUPPORT_DEPENDENCIES = host-ti-cgt-pru host-pru-software-support HOST_PRU_SOFTWARE_SUPPORT_DEPENDENCIES = host-ti-cgt-pru define HOST_PRU_SOFTWARE_SUPPORT_BUILD_CMDS $(MAKE) PRU_CGT=$(TI_CGT_PRU_INSTALLDIR) -C $(@D)/lib/src endef # install this library support alongside PRU toolchain i.e. # everything in TI_CGT_PRU_INSTALLDIR as PRU_CGT define HOST_PRU_SOFTWARE_SUPPORT_INSTALL_CMDS mkdir -p $(TI_CGT_PRU_INSTALLDIR)/usr/include cp -dpfr $(@D)/include/* $(TI_CGT_PRU_INSTALLDIR)/usr/include mkdir -p $(TI_CGT_PRU_INSTALLDIR)/usr/lib cp -dpfr $(@D)/lib/src/*/gen/*.lib $(TI_CGT_PRU_INSTALLDIR)/usr/lib/ endef define PRU_SOFTWARE_SUPPORT_BUILD_CMDS $(MAKE) PRU_CGT=$(TI_CGT_PRU_INSTALLDIR) -C $(@D)/examples endef define PRU_SOFTWARE_SUPPORT_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/share/pru-software-support cp -dpfr $(@D)/examples/* $(TARGET_DIR)/usr/share/pru-software-support/ endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/pru-software-support/readme.txt ================================================ PRU Software Support ==================== Two different packages are provided from the TI PRU software support code base. 1. The include files and rpmsg static library for the PRU are installed alongside the host package for the PRU code generation tools package i.e. $(TI_CGT_PRU_INSTALLDIR). 2. A target package for all the examples installed to /usr/share/pru-software-support/. Users wanting to test a specific example should copy or link it to a directory where the kernel looks for firmware, e.g: # cp /usr/share/pru-software-support/am335x/PRU_gpioToggle/gen/PRU_gpioToggle.out \ /lib/firmware/am335x-pru0-fw To get started with the PRU, have a look at the labs [1]. [1] http://processors.wiki.ti.com/index.php/PRU_Training:_Hands-on_Labs ================================================ FILE: package/psmisc/Config.in ================================================ config BR2_PACKAGE_PSMISC bool "psmisc" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_NCURSES help Helpful /proc related utilities such as pstree, fuser, and killall https://gitlab.com/psmisc/psmisc ================================================ FILE: package/psmisc/psmisc.hash ================================================ # From https://sourceforge.net/projects/psmisc/files/psmisc/ md5 8114cd4489b95308efe2509c3a406bbf psmisc-23.4.tar.xz sha1 a4c34111e570c43967efb2bbd8a4f31d94d22e0f psmisc-23.4.tar.xz # Locally computed: sha256 7f0cceeace2050c525f3ebb35f3ba01d618b8d690620580bdb8cd8269a0c1679 psmisc-23.4.tar.xz sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING ================================================ FILE: package/psmisc/psmisc.mk ================================================ ################################################################################ # # psmisc # ################################################################################ PSMISC_VERSION = 23.4 PSMISC_SITE = http://downloads.sourceforge.net/project/psmisc/psmisc PSMISC_SOURCE = psmisc-$(PSMISC_VERSION).tar.xz PSMISC_LICENSE = GPL-2.0+ PSMISC_LICENSE_FILES = COPYING PSMISC_DEPENDENCIES = ncurses $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_TOOLCHAIN_HAS_SSP),) # Don't force -fstack-protector when SSP is not available in toolchain PSMISC_CONF_OPTS = --disable-harden-flags endif $(eval $(autotools-package)) ================================================ FILE: package/psplash/Config.in ================================================ config BR2_PACKAGE_PSPLASH bool "psplash" depends on BR2_USE_WCHAR help PSplash is a userspace graphical boot splash screen for mainly embedded Linux devices supporting a 16bpp or 32bpp framebuffer. It has few dependencies (just libc), supports basic images and text and handles rotation. Its visual look is configurable by basic source changes. Also included is a 'client' command utility for sending information to psplash such as boot progress information. Start the drawing process with 'psplash -n&' as early as possible. Note: psplash creates a FIFO in /tmp for communication with psplash-write. Usage: * Set progress bar to 50 percent: psplash-write "PROGRESS 50" * Display message "foobar" above progress bar: psplash-write "MSG foobar" * Terminate psplash: psplash-write "QUIT" http://git.yoctoproject.org/cgit/cgit.cgi/psplash/ if BR2_PACKAGE_PSPLASH config BR2_PACKAGE_PSPLASH_IMAGE string "psplash image" help Use a personalized png image as boot splash. Let it empty if you want to keep the psplash default image. endif comment "psplash needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/psplash/psplash-start.service ================================================ [Unit] Description=Starts Psplash Boot screen DefaultDependencies=no RequiresMountsFor=/run [Service] ExecStart=/usr/bin/psplash -n [Install] WantedBy=sysinit.target ================================================ FILE: package/psplash/psplash-systemd.service ================================================ [Unit] Description=Start psplash-systemd progress communication helper DefaultDependencies=no After=systemd-start.service Requires=psplash-start.service RequiresMountsFor=/run [Service] ExecStart=/usr/bin/psplash-systemd [Install] WantedBy=sysinit.target ================================================ FILE: package/psplash/psplash.hash ================================================ # Locally computed sha256 2c1344dd8414415d80a01484b1cc29e78f99c31d5266189540e5966a7dc6e10e psplash-fd33a9b3d68c89fa22ff6873f4f9fd28bd85830c-br1.tar.gz sha256 f9c375a1be4a41f7b70301dd83c91cb89e41567478859b77eef375a52d782505 COPYING ================================================ FILE: package/psplash/psplash.mk ================================================ ################################################################################ # # psplash # ################################################################################ PSPLASH_VERSION = fd33a9b3d68c89fa22ff6873f4f9fd28bd85830c PSPLASH_SITE = git://git.yoctoproject.org/psplash PSPLASH_LICENSE = GPL-2.0+ PSPLASH_LICENSE_FILES = COPYING PSPLASH_AUTORECONF = YES PSPLASH_DEPENDENCIES = host-gdk-pixbuf host-pkgconf ifeq ($(BR2_PACKAGE_SYSTEMD),y) PSPLASH_DEPENDENCIES += systemd PSPLASH_CONF_OPTS += --with-systemd else PSPLASH_CONF_OPTS += --without-systemd endif PSPLASH_IMAGE = $(call qstrip,$(BR2_PACKAGE_PSPLASH_IMAGE)) ifneq ($(PSPLASH_IMAGE),) define PSPLASH_COPY_IMAGE cp $(PSPLASH_IMAGE) $(@D)/base-images/psplash-poky.png endef PSPLASH_POST_EXTRACT_HOOKS += PSPLASH_COPY_IMAGE endif define PSPLASH_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/psplash/psplash-start.service \ $(TARGET_DIR)/usr/lib/systemd/system/psplash-start.service $(INSTALL) -D -m 644 package/psplash/psplash-systemd.service \ $(TARGET_DIR)/usr/lib/systemd/system/psplash-systemd.service endef $(eval $(autotools-package)) ================================================ FILE: package/ptm2human/Config.in ================================================ config BR2_PACKAGE_PTM2HUMAN_ARCH_SUPPORTS bool default y if BR2_arm default y if BR2_armeb default y if BR2_aarch64 default y if BR2_aarch64_be config BR2_PACKAGE_PTM2HUMAN bool "ptm2human" depends on BR2_PACKAGE_PTM2HUMAN_ARCH_SUPPORTS help ptm2human is a decoder for trace data outputted by Program Trace Macrocell (PTM) and Embedded Trace Macrocell (ETMv4). It deconstructs ID packets and data packets from the formatter of ARM Coresight ETB, and then translates the trace data to a human-readable format. https://github.com/hwangcc23/ptm2human ================================================ FILE: package/ptm2human/ptm2human.hash ================================================ # Computed locally sha256 28947eeb458d8b6a362cbeb8c5cb6098006274af04ebb4f5da70eac89f927d95 ptm2human-d0b8b6be9897ea5b04fd6460038a4773cec078bc.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 LICENSE ================================================ FILE: package/ptm2human/ptm2human.mk ================================================ ################################################################################ # # ptm2human # ################################################################################ PTM2HUMAN_VERSION = d0b8b6be9897ea5b04fd6460038a4773cec078bc PTM2HUMAN_SITE = $(call github,hwangcc23,ptm2human,$(PTM2HUMAN_VERSION)) PTM2HUMAN_LICENSE = GPL-2.0 PTM2HUMAN_LICENSE_FILES = LICENSE # Straight out from an non-autoconfigured git tree: PTM2HUMAN_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/ptpd/Config.in ================================================ config BR2_PACKAGE_PTPD bool "ptpd" help The PTP daemon (PTPd) implements the Precision Time protocol (PTP) as defined by the IEEE-1588-2002. http://ptpd.sourceforge.net/ ================================================ FILE: package/ptpd/S65ptpd ================================================ #!/bin/sh # # Start ptpd # case "$1" in start) printf "Starting ptpd: " start-stop-daemon -S -q -x /usr/sbin/ptpd -- -S if [ $? != 0 ]; then echo "FAILED" exit 1 else echo "OK" fi ;; stop) printf "Stopping ptpd: " start-stop-daemon -K -q -x /usr/sbin/ptpd echo "OK" ;; restart|reload) ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/ptpd/ptpd.hash ================================================ # Locally computed: sha256 a7c6ea83bd53da75ae04a7b7a25fe7c597b4e9ff1f93d46f4502e3fa8a2cb950 ptpd-1.1.0.tar.gz sha256 be69f30947abef91e0bce161005fe56b116b770e459e3e6980279349de47c366 COPYRIGHT ================================================ FILE: package/ptpd/ptpd.mk ================================================ ################################################################################ # # ptpd # ################################################################################ PTPD_VERSION = 1.1.0 PTPD_SITE = http://downloads.sourceforge.net/project/ptpd/ptpd/$(PTPD_VERSION) PTPD_LICENSE = BSD PTPD_LICENSE_FILES = COPYRIGHT define PTPD_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/src endef define PTPD_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -D $(@D)/src/ptpd $(TARGET_DIR)/usr/sbin/ptpd endef define PTPD_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/ptpd/S65ptpd \ $(TARGET_DIR)/etc/init.d/S65ptpd endef define PTPD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/ptpd/ptpd.service \ $(TARGET_DIR)/usr/lib/systemd/system/ptpd.service endef $(eval $(generic-package)) ================================================ FILE: package/ptpd/ptpd.service ================================================ [Unit] Description=Precision Time Protocol daemon After=syslog.target network.target [Service] ExecStart=/usr/sbin/ptpd -c Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/ptpd2/0001-musl.patch ================================================ Fix musl build Signed-off-by: Bernd Kuhls diff -uNr ptpd-ptpd-2.3.1.org/src/dep/net.c ptpd-ptpd-2.3.1/src/dep/net.c --- ptpd-ptpd-2.3.1.org/src/dep/net.c 2015-06-29 17:13:29.000000000 +0200 +++ ptpd-ptpd-2.3.1/src/dep/net.c 2016-01-24 00:35:44.509860065 +0100 @@ -82,7 +82,6 @@ #ifdef SO_TIMESTAMPING #include #include -#include #endif /* SO_TIMESTAMPING */ /** ================================================ FILE: package/ptpd2/0002-ntp_isc_md5-rename-EVP_MD_CTX-into-PTPD_EVP_MD_CTX.patch ================================================ From af1d16d90ff273413a57cd02689f4fb005403609 Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Fri, 31 Aug 2018 18:46:56 +0200 Subject: [PATCH] ntp_isc_md5: rename EVP_MD_CTX into PTPD_EVP_MD_CTX EVP_MD_CTX can conflict with openssl that defines a completely different typedef with same name. Since this typedef is used only twice in the entire ptpd, substitute EVP_MD_CTX with PTPD_EVP_MD_CTX. Signed-off-by: Giulio Benetti --- src/dep/ntpengine/ntp_isc_md5.c | 2 +- src/dep/ntpengine/ntp_isc_md5.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dep/ntpengine/ntp_isc_md5.c b/src/dep/ntpengine/ntp_isc_md5.c index 850d004..3216de8 100644 --- a/src/dep/ntpengine/ntp_isc_md5.c +++ b/src/dep/ntpengine/ntp_isc_md5.c @@ -262,7 +262,7 @@ MD5authencrypt( { u_char digest[64]; u_int len; - EVP_MD_CTX ctx; + PTPD_EVP_MD_CTX ctx; pkt[length / 4] = htonl(keyid); EVP_DigestInit(&ctx); EVP_DigestUpdate(&ctx, (u_char *)key, (u_int)strlen(key)); diff --git a/src/dep/ntpengine/ntp_isc_md5.h b/src/dep/ntpengine/ntp_isc_md5.h index fa6e2ee..236c0e4 100644 --- a/src/dep/ntpengine/ntp_isc_md5.h +++ b/src/dep/ntpengine/ntp_isc_md5.h @@ -80,7 +80,7 @@ isc_md5_final(isc_md5_t *ctx, unsigned char *digest); # define MD5Init(c) isc_md5_init(c) # define MD5Update(c, p, s) isc_md5_update(c, p, s) # define MD5Final(d, c) isc_md5_final((c), (d)) /* swapped */ - typedef MD5_CTX EVP_MD_CTX; + typedef MD5_CTX PTPD_EVP_MD_CTX; # define EVP_DigestInit(c) MD5Init(c) # define EVP_DigestUpdate(c, p, s) MD5Update(c, p, s) # define EVP_DigestFinal(c, d, pdl) \ -- 2.14.4 ================================================ FILE: package/ptpd2/0003-Solve-issue-25-Removing-type-U64-from-net-snmp-relat.patch ================================================ From 84157b11e8f27318f7291823c657f6313c3b60af Mon Sep 17 00:00:00 2001 From: Jan Breuer Date: Tue, 12 Jul 2016 18:07:08 +0200 Subject: [PATCH] Solve issue #25 - Removing type U64 from net-snmp related code [Thomas: Backport to 2.3.1.] Signed-off-by: Thomas Petazzoni --- src/dep/snmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dep/snmp.c b/src/dep/snmp.c index 5c08aaa..3086c86 100644 --- a/src/dep/snmp.c +++ b/src/dep/snmp.c @@ -221,7 +221,7 @@ snmpHeaderIndexBest(struct snmpHeaderIndex *idx) #define SNMP_LOCAL_VARIABLES \ static unsigned long long_ret; \ - static U64 counter64_ret; \ + static struct counter64 counter64_ret; \ static uint32_t ipaddr; \ Integer64 bigint; \ struct snmpHeaderIndex idx; \ -- 2.14.4 ================================================ FILE: package/ptpd2/Config.in ================================================ config BR2_PACKAGE_PTPD2 bool "ptpd2" select BR2_PACKAGE_LIBPCAP help The PTP daemon (PTPd) implements the Precision Time protocol (PTP) as defined by the IEEE-1588-2008. https://github.com/ptpd/ptpd ================================================ FILE: package/ptpd2/S65ptpd2 ================================================ #!/bin/sh # # Start ptpd2 # case "$1" in start) printf "Starting ptpd2: " start-stop-daemon -S -q -x /usr/sbin/ptpd2 -- -g if [ $? != 0 ]; then echo "FAILED" exit 1 else echo "OK" fi ;; stop) printf "Stopping ptpd2: " start-stop-daemon -K -q -x /usr/sbin/ptpd2 echo "OK" ;; restart|reload) ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/ptpd2/ptpd2.hash ================================================ # Locally computed: sha256 267ad61d09d97069acec5d4878dceda20d0ddbebd27557d80230847848cee6c2 ptpd2-2.3.1.tar.gz sha256 5e101ac565a8e74ef4efbf7e0c95ef9333e00618c05dbf5fb4ed50a5bab1ff09 COPYRIGHT ================================================ FILE: package/ptpd2/ptpd2.mk ================================================ ################################################################################ # # ptpd2 # ################################################################################ PTPD2_VERSION = 2.3.1 PTPD2_SITE = $(call github,ptpd,ptpd,ptpd-$(PTPD2_VERSION)) PTPD2_DEPENDENCIES = libpcap PTPD2_CONF_OPTS = --with-pcap-config=$(STAGING_DIR)/usr/bin/pcap-config # configure not shipped PTPD2_AUTORECONF = YES PTPD2_LICENSE = BSD-2-Clause PTPD2_LICENSE_FILES = COPYRIGHT ifeq ($(BR2_STATIC_LIBS),y) PTPD2_CONF_OPTS += LIBS="`$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs`" endif ifeq ($(BR2_PACKAGE_NETSNMP),y) PTPD2_CONF_ENV += ac_cv_path_PATH_NET_SNMP_CONFIG=$(STAGING_DIR)/usr/bin/net-snmp-config PTPD2_DEPENDENCIES += netsnmp else PTPD2_CONF_OPTS += --disable-snmp endif define PTPD2_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/ptpd2/S65ptpd2 \ $(TARGET_DIR)/etc/init.d/S65ptpd2 endef define PTPD2_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/ptpd2/ptpd2.service \ $(TARGET_DIR)/usr/lib/systemd/system/ptpd2.service endef $(eval $(autotools-package)) ================================================ FILE: package/ptpd2/ptpd2.service ================================================ [Unit] Description=Precision Time Protocol daemon After=syslog.target network.target [Service] ExecStart=/usr/sbin/ptpd2 -C -g Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/pugixml/Config.in ================================================ config BR2_PACKAGE_PUGIXML bool "pugixml" depends on BR2_INSTALL_LIBSTDCPP help Light-weight, simple and fast XML parser for C++ with XPath support Features: * DOM-like interface with rich traversal/modification capabilities * Extremely fast non-validating XML parser which constructs the DOM tree from an XML file/buffer * XPath 1.0 implementation for complex data-driven tree queries * Full Unicode support with Unicode interface variants and automatic encoding conversions http://pugixml.org/ https://github.com/zeux/pugixml if BR2_PACKAGE_PUGIXML config BR2_PACKAGE_PUGIXML_XPATH_SUPPORT bool "Enable XPath support" default y help When disabled, both XPath interfaces and XPath implementation are excluded from compilation. This option is provided in case you do not need XPath functionality and need to save code space. config BR2_PACKAGE_PUGIXML_COMPACT bool "Enable compact mode" help Activates a different internal representation of document storage that is much more memory efficient for documents with a lot of markup (i.e. nodes and attributes), but is slightly slower to parse and access. http://pugixml.org/docs/manual.html#dom.memory.compact config BR2_PACKAGE_PUGIXML_HEADER_ONLY bool "Enable header-only version" help All source code for pugixml will be included in every translation unit that includes pugixml.hpp. This is how most of Boost and STL libraries work. http://pugixml.org/docs/manual.html#install.building.header endif comment "pugixml needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/pugixml/pugixml.hash ================================================ # Locally computed: sha256 8ddf57b65fb860416979a3f0640c2ad45ddddbbafa82508ef0a0af3ce7061716 pugixml-1.11.4.tar.gz sha256 ee495f34aeff0c578a99f3350a2050d4e5860d27b2004c03c384a594fa2b0a7a LICENSE.md ================================================ FILE: package/pugixml/pugixml.mk ================================================ ################################################################################ # # pugixml # ################################################################################ PUGIXML_VERSION = 1.11.4 PUGIXML_SITE = http://github.com/zeux/pugixml/releases/download/v$(PUGIXML_VERSION) PUGIXML_LICENSE = MIT PUGIXML_LICENSE_FILES = LICENSE.md PUGIXML_CPE_ID_VENDOR = pugixml_project PUGIXML_INSTALL_STAGING = YES # Pugixml will automatically enable 'long long' support on C++11 compilers, # which means gcc 4.8+. As gcc always supports the 'long long' type, # force-enable this option to support older gcc versions. See also: # https://gcc.gnu.org/onlinedocs/gcc/Long-Long.html PUGIXML_BUILD_DEFINES += PUGIXML_HAS_LONG_LONG HOST_PUGIXML_BUILD_DEFINES += PUGIXML_HAS_LONG_LONG ifeq ($(BR2_PACKAGE_PUGIXML_XPATH_SUPPORT),) PUGIXML_BUILD_DEFINES += PUGIXML_NO_XPATH endif ifeq ($(BR2_PACKAGE_PUGIXML_COMPACT),y) PUGIXML_BUILD_DEFINES += PUGIXML_COMPACT endif ifeq ($(BR2_PACKAGE_PUGIXML_HEADER_ONLY),y) PUGIXML_BUILD_DEFINES += PUGIXML_HEADER_ONLY endif ifdef PUGIXML_BUILD_DEFINES PUGIXML_CONF_OPTS += -DBUILD_DEFINES="$(subst $(space),;,$(PUGIXML_BUILD_DEFINES))" endif HOST_PUGIXML_CONF_OPTS += \ -DBUILD_PKGCONFIG=ON \ -DBUILD_DEFINES="$(subst $(space),;,$(HOST_PUGIXML_BUILD_DEFINES))" $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/pulseaudio/Config.in ================================================ config BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC bool default y if BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS || \ BR2_TOOLCHAIN_HAS_SYNC_4 config BR2_PACKAGE_PULSEAUDIO_ENABLE_ATOMIC bool select BR2_PACKAGE_LIBATOMIC_OPS if !BR2_TOOLCHAIN_HAS_SYNC_4 config BR2_PACKAGE_PULSEAUDIO bool "pulseaudio" depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO if BR2_PACKAGE_BLUEZ5_UTILS # runtime select BR2_PACKAGE_LIBTOOL select BR2_PACKAGE_LIBSNDFILE select BR2_PACKAGE_PULSEAUDIO_ENABLE_ATOMIC select BR2_PACKAGE_SPEEX help PulseAudio is a sound system for POSIX OSes, meaning that it is a proxy for your sound applications. It allows you to do advanced operations on your sound data as it passes between your application and your hardware. Things like transferring the audio to a different machine, changing the sample format or channel count and mixing several sounds into one are easily achieved using a sound server. http://pulseaudio.org if BR2_PACKAGE_PULSEAUDIO config BR2_PACKAGE_PULSEAUDIO_DAEMON bool "start as a system daemon" help PulseAudio can be started as a system daemon. This is not the recommended way of using PulseAudio unless you are building a headless system. endif comment "pulseaudio needs a toolchain w/ wchar, threads, dynamic library" depends on BR2_USE_MMU depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/pulseaudio/S50pulseaudio ================================================ #!/bin/sh # # Starts pulseaudio. # start() { printf "Starting pulseaudio: " umask 077 /usr/bin/pulseaudio \ --system \ --daemonize \ --disallow-module-loading \ --disallow-exit \ --exit-idle-time=-1 \ --use-pid-file \ --disable-shm echo "OK" } stop() { printf "Stopping pulseaudio: " PULSE_RUNTIME_PATH=/var/run/pulse /usr/bin/pulseaudio --kill echo "OK" } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/pulseaudio/pulseaudio.hash ================================================ # From https://lists.freedesktop.org/archives/pulseaudio-discuss/2021-January/031990.html sha256 75d3f7742c1ae449049a4c88900e454b8b350ecaa8c544f3488a2562a9ff66f1 pulseaudio-14.2.tar.xz # Locally computed sha256 c38aee9e3c8c4d5d594ff548a1be05453023016d6286931f6512db215ec1fd42 GPL sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 LGPL sha256 a1064b9838b6b4feee61eaeb0925da4b4834c984b77716558860c4294ed6c015 LICENSE ================================================ FILE: package/pulseaudio/pulseaudio.mk ================================================ ################################################################################ # # pulseaudio # ################################################################################ PULSEAUDIO_VERSION = 14.2 PULSEAUDIO_SOURCE = pulseaudio-$(PULSEAUDIO_VERSION).tar.xz PULSEAUDIO_SITE = https://freedesktop.org/software/pulseaudio/releases PULSEAUDIO_INSTALL_STAGING = YES PULSEAUDIO_LICENSE = LGPL-2.1+ (specific license for modules, see LICENSE file) PULSEAUDIO_LICENSE_FILES = LICENSE GPL LGPL PULSEAUDIO_CPE_ID_VENDOR = pulseaudio PULSEAUDIO_SELINUX_MODULES = pulseaudio xdg PULSEAUDIO_CONF_OPTS = \ --disable-default-build-tests \ --disable-legacy-database-entry-format \ --disable-manpages \ --disable-running-from-build-tree PULSEAUDIO_DEPENDENCIES = \ host-pkgconf libtool libsndfile speex \ $(TARGET_NLS_DEPENDENCIES) \ $(if $(BR2_PACKAGE_LIBGLIB2),libglib2) \ $(if $(BR2_PACKAGE_AVAHI_DAEMON),avahi) \ $(if $(BR2_PACKAGE_DBUS),dbus) \ $(if $(BR2_PACKAGE_NCURSES),ncurses) \ $(if $(BR2_PACKAGE_OPENSSL),openssl) \ $(if $(BR2_PACKAGE_FFTW_SINGLE),fftw-single) \ $(if $(BR2_PACKAGE_SYSTEMD),systemd) ifeq ($(BR2_PACKAGE_LIBSAMPLERATE),y) PULSEAUDIO_CONF_OPTS += --enable-samplerate PULSEAUDIO_DEPENDENCIES += libsamplerate else PULSEAUDIO_CONF_OPTS += --disable-samplerate endif ifeq ($(BR2_PACKAGE_GDBM),y) PULSEAUDIO_CONF_OPTS += --with-database=gdbm PULSEAUDIO_DEPENDENCIES += gdbm else PULSEAUDIO_CONF_OPTS += --with-database=simple endif ifeq ($(BR2_PACKAGE_JACK2),y) PULSEAUDIO_CONF_OPTS += --enable-jack PULSEAUDIO_DEPENDENCIES += jack2 else PULSEAUDIO_CONF_OPTS += --disable-jack endif ifeq ($(BR2_PACKAGE_LIBATOMIC_OPS),y) PULSEAUDIO_DEPENDENCIES += libatomic_ops ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y) PULSEAUDIO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -DAO_NO_SPARC_V9" endif endif ifeq ($(BR2_PACKAGE_ORC),y) PULSEAUDIO_DEPENDENCIES += orc PULSEAUDIO_CONF_ENV += ORCC=$(HOST_DIR)/bin/orcc PULSEAUDIO_CONF_OPTS += --enable-orc else PULSEAUDIO_CONF_OPTS += --disable-orc endif ifeq ($(BR2_PACKAGE_LIBCAP),y) PULSEAUDIO_DEPENDENCIES += libcap PULSEAUDIO_CONF_OPTS += --with-caps else PULSEAUDIO_CONF_OPTS += --without-caps endif # gtk3 support needs X11 backend ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) PULSEAUDIO_DEPENDENCIES += libgtk3 PULSEAUDIO_CONF_OPTS += --enable-gtk3 else PULSEAUDIO_CONF_OPTS += --disable-gtk3 endif ifeq ($(BR2_PACKAGE_LIBSOXR),y) PULSEAUDIO_CONF_OPTS += --with-soxr PULSEAUDIO_DEPENDENCIES += libsoxr else PULSEAUDIO_CONF_OPTS += --without-soxr endif ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS)$(BR2_PACKAGE_SBC),yy) PULSEAUDIO_CONF_OPTS += --enable-bluez5 PULSEAUDIO_DEPENDENCIES += bluez5_utils sbc else PULSEAUDIO_CONF_OPTS += --disable-bluez5 endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) PULSEAUDIO_CONF_OPTS += --enable-udev PULSEAUDIO_DEPENDENCIES += udev else PULSEAUDIO_CONF_OPTS += --disable-udev endif 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 ifeq ($(BR2_ARM_SOFT_FLOAT),) ifeq ($(BR2_ARM_CPU_HAS_NEON),y) PULSEAUDIO_USE_NEON = y endif endif ifeq ($(PULSEAUDIO_USE_NEON),y) PULSEAUDIO_CONF_OPTS += --enable-neon-opt=yes else PULSEAUDIO_CONF_OPTS += --enable-neon-opt=no endif # pulseaudio alsa backend needs pcm/mixer apis ifeq ($(BR2_PACKAGE_ALSA_LIB_PCM)$(BR2_PACKAGE_ALSA_LIB_MIXER),yy) PULSEAUDIO_DEPENDENCIES += alsa-lib PULSEAUDIO_CONF_OPTS += --enable-alsa else PULSEAUDIO_CONF_OPTS += --disable-alsa endif ifeq ($(BR2_PACKAGE_LIBXCB)$(BR2_PACKAGE_XLIB_LIBSM)$(BR2_PACKAGE_XLIB_LIBXTST),yyy) PULSEAUDIO_DEPENDENCIES += libxcb xlib_libSM xlib_libXtst # .desktop file generation needs nls support, so fake it for !locale builds # https://bugs.freedesktop.org/show_bug.cgi?id=54658 ifeq ($(BR2_SYSTEM_ENABLE_NLS),) define PULSEAUDIO_FIXUP_DESKTOP_FILES cp $(@D)/src/daemon/pulseaudio.desktop.in \ $(@D)/src/daemon/pulseaudio.desktop endef PULSEAUDIO_POST_PATCH_HOOKS += PULSEAUDIO_FIXUP_DESKTOP_FILES endif else PULSEAUDIO_CONF_OPTS += --disable-x11 endif # ConsoleKit module init failure breaks user daemon startup define PULSEAUDIO_REMOVE_CONSOLE_KIT rm -f $(TARGET_DIR)/usr/lib/pulse-$(PULSEAUDIO_VERSION)/modules/module-console-kit.so endef define PULSEAUDIO_REMOVE_VALA rm -rf $(TARGET_DIR)/usr/share/vala endef PULSEAUDIO_POST_INSTALL_TARGET_HOOKS += PULSEAUDIO_REMOVE_VALA \ PULSEAUDIO_REMOVE_CONSOLE_KIT ifeq ($(BR2_PACKAGE_PULSEAUDIO_DAEMON),y) define PULSEAUDIO_USERS pulse -1 pulse -1 * /var/run/pulse - audio,pulse-access endef define PULSEAUDIO_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/pulseaudio/S50pulseaudio \ $(TARGET_DIR)/etc/init.d/S50pulseaudio endef define PULSEAUDIO_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/pulseaudio/pulseaudio.service \ $(TARGET_DIR)/usr/lib/systemd/system/pulseaudio.service endef endif $(eval $(autotools-package)) ================================================ FILE: package/pulseaudio/pulseaudio.service ================================================ [Unit] Description=PulseAudio Sound System After=syslog.target [Service] UMask=077 ExecStart=/usr/bin/pulseaudio --system --daemonize=no Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/pulseview/0001-Replace-obsolete-deprecated-Qt-methods.patch ================================================ From caacc9bc622238ca48674ea6f40d07466e4b97a5 Mon Sep 17 00:00:00 2001 From: Valentin Ochs Date: Sat, 20 Jun 2020 16:01:27 +0200 Subject: [PATCH] Replace obsolete/deprecated Qt methods [Thomas: Backport from upstream commit ae726b70a7ada9a4be5808e00f0c951318479684, one conflict manually resolved in pv/util.cpp.] Signed-off-by: Thomas Petazzoni [Fabrice: restore original patch in pv/util.cpp for 0.4.2] Signed-off-by: Fabrice Fontaine --- pv/util.cpp | 21 +++++++++++++++++++-- pv/util.hpp | 10 ++++++++++ pv/views/trace/decodetrace.cpp | 3 ++- pv/views/trace/ruler.cpp | 2 +- pv/widgets/timestampspinbox.cpp | 2 +- 5 files changed, 33 insertions(+), 5 deletions(-) diff --git a/pv/util.cpp b/pv/util.cpp index 49b9467c..2a63038d 100644 --- a/pv/util.cpp +++ b/pv/util.cpp @@ -137,7 +137,7 @@ QString format_time_si(const Timestamp& v, SIPrefix prefix, QString s; QTextStream ts(&s); if (sign && !v.is_zero()) - ts << forcesign; + ts.setNumberFlags(ts.numberFlags() | QTextStream::ForceSign); ts << qSetRealNumberPrecision(precision) << (v * multiplier); ts << ' ' << prefix << unit; @@ -171,7 +171,7 @@ QString format_value_si(double v, SIPrefix prefix, unsigned precision, QString s; QTextStream ts(&s); if (sign && (v != 0)) - ts << forcesign; + ts.setNumberFlags(ts.numberFlags() | QTextStream::ForceSign); ts.setRealNumberNotation(QTextStream::FixedNotation); ts.setRealNumberPrecision(precision); ts << (v * multiplier) << ' ' << prefix << unit; @@ -281,5 +281,22 @@ vector split_string(string text, string separator) return result; } +/** + * Return the width of a string in a given font. + * + * @param[in] metric metrics of the font + * @param[in] string the string whose width should be determined + * + * @return width of the string in pixels + */ +std::streamsize text_width(const QFontMetrics &metric, const QString &string) +{ +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + return metric.horizontalAdvance(string); +#else + return metric.width(string); +#endif +} + } // namespace util } // namespace pv diff --git a/pv/util.hpp b/pv/util.hpp index dd7be222..ad904f85 100644 --- a/pv/util.hpp +++ b/pv/util.hpp @@ -30,6 +30,7 @@ #include #include +#include using std::string; using std::vector; @@ -137,6 +138,15 @@ QString format_time_minutes(const Timestamp& t, signed precision = 0, vector split_string(string text, string separator); +/** + * Return the width of a string in a given font. + * @param[in] metric metrics of the font + * @param[in] string the string whose width should be determined + * + * @return width of the string in pixels + */ +std::streamsize text_width(const QFontMetrics &metric, const QString &string); + } // namespace util } // namespace pv diff --git a/pv/views/trace/decodetrace.cpp b/pv/views/trace/decodetrace.cpp index 9c7196bf..1ee7ae9f 100644 --- a/pv/views/trace/decodetrace.cpp +++ b/pv/views/trace/decodetrace.cpp @@ -103,7 +103,8 @@ DecodeTrace::DecodeTrace(pv::Session &session, // Determine shortest string we want to see displayed in full QFontMetrics m(QApplication::font()); - min_useful_label_width_ = m.width("XX"); // e.g. two hex characters + // e.g. two hex characters + min_useful_label_width_ = util::text_width(m, "XX"); // For the base color, we want to start at a very different color for // every decoder stack, so multiply the index with a number that is diff --git a/pv/views/trace/ruler.cpp b/pv/views/trace/ruler.cpp index acea8a36..68134966 100644 --- a/pv/views/trace/ruler.cpp +++ b/pv/views/trace/ruler.cpp @@ -218,7 +218,7 @@ void Ruler::paintEvent(QPaintEvent*) const int rightedge = width(); const int x_tick = tick.first; if ((x_tick > leftedge) && (x_tick < rightedge)) { - const int x_left_bound = QFontMetrics(font()).width(tick.second) / 2; + const int x_left_bound = util::text_width(QFontMetrics(font()), tick.second) / 2; const int x_right_bound = rightedge - x_left_bound; const int x_legend = min(max(x_tick, x_left_bound), x_right_bound); p.drawText(x_legend, ValueMargin, 0, text_height, diff --git a/pv/widgets/timestampspinbox.cpp b/pv/widgets/timestampspinbox.cpp index 21b3d0d7..383aed1f 100644 --- a/pv/widgets/timestampspinbox.cpp +++ b/pv/widgets/timestampspinbox.cpp @@ -75,7 +75,7 @@ QSize TimestampSpinBox::minimumSizeHint() const { const QFontMetrics fm(fontMetrics()); const int l = round(value_).str().size() + precision_ + 10; - const int w = fm.width(QString(l, '0')); + const int w = util::text_width(fm, QString(l, '0')); const int h = lineEdit()->minimumSizeHint().height(); return QSize(w, h); } -- 2.26.2 ================================================ FILE: package/pulseview/0002-Fix-broken-build-due-to-C-template-behind-C-linkage.patch ================================================ From ed643f0b4ac587204a5243451cda181ee1405d62 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20Br=C3=BCns?= Date: Wed, 28 Apr 2021 02:14:47 +0200 Subject: [PATCH] Fix broken build due to C++ template behind C linkage glib/gatomic.h since 2.68 includes type_traits, which causes a compilation error: In file included from /usr/include/glib-2.0/glib/gatomic.h:31, from /usr/include/glib-2.0/glib/gthread.h:32, from /usr/include/glib-2.0/glib/gasyncqueue.h:32, from /usr/include/glib-2.0/glib.h:32, from /usr/include/libsigrokdecode/libsigrokdecode.h:25, from /home/abuild/rpmbuild/BUILD/pulseview-0.4.2/pv/data/decode/annotation.cpp:21: /usr/include/c++/10/type_traits:2308:3: error: template with C linkage 2308 | template As libsigrokdecode.h declares extern C linkage itself where necessary, remove it from pulseviews include statements from the last two occasions. [Retrieved from: https://sigrok.org/gitweb/?p=pulseview.git;a=commit;h=ed643f0b4ac587204a5243451cda181ee1405d62] Signed-off-by: Fabrice Fontaine --- pv/data/decode/annotation.cpp | 2 -- pv/views/trace/decodetrace.cpp | 2 -- 2 files changed, 4 deletions(-) diff --git a/pv/data/decode/annotation.cpp b/pv/data/decode/annotation.cpp index 7f233478..f8a5c47b 100644 --- a/pv/data/decode/annotation.cpp +++ b/pv/data/decode/annotation.cpp @@ -17,9 +17,7 @@ * along with this program; if not, see . */ -extern "C" { #include -} #include #include diff --git a/pv/views/trace/decodetrace.cpp b/pv/views/trace/decodetrace.cpp index 409f1d28..888064d0 100644 --- a/pv/views/trace/decodetrace.cpp +++ b/pv/views/trace/decodetrace.cpp @@ -17,9 +17,7 @@ * along with this program; if not, see . */ -extern "C" { #include -} #include #include -- 2.24.0.rc2 ================================================ FILE: package/pulseview/Config.in ================================================ config BR2_PACKAGE_PULSEVIEW bool "pulseview" depends on BR2_PACKAGE_QT5 # libsigrok->libglib2: depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem depends on BR2_USE_MMU depends on BR2_INSTALL_LIBSTDCPP # libsigrok->libzip depends on !BR2_STATIC_LIBS # libsigrok depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_HOST_GCC_AT_LEAST_4_9 depends on BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBSIGROK select BR2_PACKAGE_LIBSIGROKCXX select BR2_PACKAGE_QT5BASE_WIDGETS select BR2_PACKAGE_QT5BASE_PNG select BR2_PACKAGE_QT5SVG select BR2_PACKAGE_QT5TOOLS select BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_SERIALIZATION help PulseView is a Qt based logic analyzer, oscilloscope and MSO GUI for sigrok. http://sigrok.org/wiki/PulseView comment "pulseview needs a toolchain w/ locale, wchar, threads, dynamic library, C++, gcc >= 4.9, host gcc >= 4.9" depends on BR2_USE_MMU depends on BR2_PACKAGE_QT5 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_USE_WCHAR \ || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \ || BR2_STATIC_LIBS || !BR2_ENABLE_LOCALE || \ !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/pulseview/pulseview.hash ================================================ # Locally computed sha256 f042f77a3e1b35bf30666330e36ec38fab8d248c3693c37b7e35d401c3bfabcb pulseview-0.4.2.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/pulseview/pulseview.mk ================================================ ################################################################################ # # pulseview # ################################################################################ PULSEVIEW_VERSION = 0.4.2 PULSEVIEW_SITE = http://sigrok.org/download/source/pulseview PULSEVIEW_LICENSE = GPL-3.0+ PULSEVIEW_LICENSE_FILES = COPYING PULSEVIEW_DEPENDENCIES = libsigrok qt5base qt5svg qt5tools boost PULSEVIEW_CONF_OPTS = -DDISABLE_WERROR=TRUE ifeq ($(BR2_PACKAGE_BOOST_TEST),y) PULSEVIEW_CONF_OPTS += -DENABLE_TESTS=TRUE else PULSEVIEW_CONF_OPTS += -DENABLE_TESTS=FALSE endif ifeq ($(BR2_PACKAGE_LIBSIGROKDECODE),y) PULSEVIEW_CONF_OPTS += -DENABLE_DECODE=TRUE PULSEVIEW_DEPENDENCIES += libsigrokdecode else PULSEVIEW_CONF_OPTS += -DENABLE_DECODE=FALSE endif $(eval $(cmake-package)) ================================================ FILE: package/pure-ftpd/0001-listdir-reuse-a-single-buffer-to-store-every-file-name-to-display.patch ================================================ From aea56f4bcb9948d456f3fae4d044fd3fa2e19706 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Mon, 30 Dec 2019 17:40:04 +0100 Subject: [PATCH] listdir(): reuse a single buffer to store every file name to display Allocating a new buffer for each entry is useless. And as these buffers are allocated on the stack, on systems with a small stack size, with many entries, the limit can easily be reached, causing a stack exhaustion and aborting the user session. Reported by Antonio Morales from the GitHub Security Lab team, thanks! [Retrieved from: https://github.com/jedisct1/pure-ftpd/commit/aea56f4bcb9948d456f3fae4d044fd3fa2e19706] Signed-off-by: Fabrice Fontaine --- src/ls.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/ls.c b/src/ls.c index cf804c7..f8a588f 100644 --- a/src/ls.c +++ b/src/ls.c @@ -661,6 +661,8 @@ static void listdir(unsigned int depth, int f, void * const tls_fd, char *names; PureFileInfo *s; PureFileInfo *r; + char *alloca_subdir; + size_t sizeof_subdir; int d; if (depth >= max_ls_depth || matches >= max_ls_files) { @@ -690,14 +692,12 @@ static void listdir(unsigned int depth, int f, void * const tls_fd, } outputfiles(f, tls_fd); r = dir; + sizeof_subdir = PATH_MAX + 1U; + if ((alloca_subdir = ALLOCA(sizeof_subdir)) == NULL) { + goto toomany; + } while (opt_R && r != s) { if (r->name_offset != (size_t) -1 && !chdir(FI_NAME(r))) { - char *alloca_subdir; - const size_t sizeof_subdir = PATH_MAX + 1U; - - if ((alloca_subdir = ALLOCA(sizeof_subdir)) == NULL) { - goto toomany; - } if (SNCHECK(snprintf(alloca_subdir, sizeof_subdir, "%s/%s", name, FI_NAME(r)), sizeof_subdir)) { goto nolist; @@ -706,8 +706,8 @@ static void listdir(unsigned int depth, int f, void * const tls_fd, wrstr(f, tls_fd, alloca_subdir); wrstr(f, tls_fd, ":\r\n\r\n"); listdir(depth + 1U, f, tls_fd, alloca_subdir); + nolist: - ALLOCA_FREE(alloca_subdir); if (matches >= max_ls_files) { goto toomany; } @@ -720,6 +720,7 @@ static void listdir(unsigned int depth, int f, void * const tls_fd, r++; } toomany: + ALLOCA_FREE(alloca_subdir); free(names); free(dir); names = NULL; ================================================ FILE: package/pure-ftpd/0002-pure_strcmp-len-s2-can-be-len-s1.patch ================================================ From 36c6d268cb190282a2c17106acfd31863121b58e Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Mon, 24 Feb 2020 15:19:43 +0100 Subject: [PATCH] pure_strcmp(): len(s2) can be > len(s1) Reported by Antonio Morales from GitHub Security Labs, thanks! [Retrieved from: https://github.com/jedisct1/pure-ftpd/commit/36c6d268cb190282a2c17106acfd31863121b] Signed-off-by: Fabrice Fontaine --- src/utils.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/utils.c b/src/utils.c index f41492d..a7f0381 100644 --- a/src/utils.c +++ b/src/utils.c @@ -45,5 +45,11 @@ int pure_memcmp(const void * const b1_, const void * const b2_, size_t len) int pure_strcmp(const char * const s1, const char * const s2) { - return pure_memcmp(s1, s2, strlen(s1) + 1U); + const size_t s1_len = strlen(s1); + const size_t s2_len = strlen(s2); + + if (s1_len != s2_len) { + return -1; + } + return pure_memcmp(s1, s2, s1_len); } ================================================ FILE: package/pure-ftpd/0003-diraliases-always-set-the-tail-of-the-list-to-NULL.patch ================================================ From 8d0d42542e2cb7a56d645fbe4d0ef436e38bcefa Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Tue, 18 Feb 2020 18:36:58 +0100 Subject: [PATCH] diraliases: always set the tail of the list to NULL Spotted and reported by Antonio Norales from GitHub Security Labs. Thanks! Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/jedisct1/pure-ftpd/commit/8d0d42542e2cb7a56d645fbe4d0ef436e38bcefa] --- src/diraliases.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/diraliases.c b/src/diraliases.c index 4002a36..fb70273 100644 --- a/src/diraliases.c +++ b/src/diraliases.c @@ -93,7 +93,6 @@ int init_aliases(void) (tail->dir = strdup(dir)) == NULL) { die_mem(); } - tail->next = NULL; } else { DirAlias *curr; @@ -105,6 +104,7 @@ int init_aliases(void) tail->next = curr; tail = curr; } + tail->next = NULL; } fclose(fp); aliases_up++; ================================================ FILE: package/pure-ftpd/0004-Initialize-the-max-upload-file-size-when-quotas-are-enabled.patch ================================================ From 37ad222868e52271905b94afea4fc780d83294b4 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Tue, 23 Nov 2021 18:53:34 +0100 Subject: [PATCH] Initialize the max upload file size when quotas are enabled Due to an unwanted check, files causing the quota to be exceeded were deleted after the upload, but not during the upload. The bug was introduced in 2009 in version 1.0.23 Spotted by @DroidTest, thanks! [Retrieved from: https://github.com/jedisct1/pure-ftpd/commit/37ad222868e52271905b94afea4fc780d83294b4] Signed-off-by: Fabrice Fontaine --- src/ftpd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/ftpd.c b/src/ftpd.c index d856839..be2fd78 100644 --- a/src/ftpd.c +++ b/src/ftpd.c @@ -4247,8 +4247,7 @@ void dostor(char *name, const int append, const int autorename) if (quota_update("a, 0LL, 0LL, &overflow) == 0 && (overflow > 0 || quota.files >= user_quota_files || quota.size > user_quota_size || - (max_filesize >= (off_t) 0 && - (max_filesize = user_quota_size - quota.size) < (off_t) 0))) { + (max_filesize = user_quota_size - quota.size) < (off_t) 0)) { overflow = 1; (void) close(f); goto afterquota; ================================================ FILE: package/pure-ftpd/Config.in ================================================ config BR2_PACKAGE_PURE_FTPD bool "pure-ftpd" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Pure-FTPd is a free (BSD), secure, production-quality and standard- conformant FTP server. It doesn't provide useless bells and whistles, but focuses on efficiency and ease of use. It provides simple answers to common needs, plus unique useful features for personal users as well as hosting providers. http://www.pureftpd.org if BR2_PACKAGE_PURE_FTPD config BR2_PACKAGE_PURE_FTPD_FTPWHO bool "ftpwho" help Enable the pure-ftpd command. Pure-ftpwho shows current Pure-ftpd client sessions. Only the system administrator may run this. Output can be text (default), HTML, XML data and parser-optimized. config BR2_PACKAGE_PURE_FTPD_QUOTAS bool "quotas" help Enable virtual quotas. With virtual quotas, restrictions can be placed on the maximum number of files a user can store in his account. In addition, restrictions can also be placed on the total size. config BR2_PACKAGE_PURE_FTPD_UPLOADSCRIPT bool "uploadscript" help Enable pure-upload script. Automatically run an external program after a successful upload. endif ================================================ FILE: package/pure-ftpd/pure-ftpd.hash ================================================ # Locally calculated after checking pgp signature sha256 8a727dfef810f275fba3eb6099760d4f8a0bdeae2c1197d0d5bfeb8c1b2f61b6 pure-ftpd-1.0.49.tar.bz2 sha256 3a9e94382a69d04aa434d69b20ff2c01dbbfcb7191f05f69a7109c0ee1559c19 COPYING ================================================ FILE: package/pure-ftpd/pure-ftpd.mk ================================================ ################################################################################ # # pure-ftpd # ################################################################################ PURE_FTPD_VERSION = 1.0.49 PURE_FTPD_SITE = https://download.pureftpd.org/pub/pure-ftpd/releases PURE_FTPD_SOURCE = pure-ftpd-$(PURE_FTPD_VERSION).tar.bz2 PURE_FTPD_LICENSE = ISC PURE_FTPD_LICENSE_FILES = COPYING PURE_FTPD_CPE_ID_VENDOR = pureftpd PURE_FTPD_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv) # 0001-listdir-reuse-a-single-buffer-to-store-every-file-name-to-display.patch PURE_FTPD_IGNORE_CVES += CVE-2019-20176 # 0002-pure_strcmp-len-s2-can-be-len-s1.patch PURE_FTPD_IGNORE_CVES += CVE-2020-9365 # 0003-diraliases-always-set-the-tail-of-the-list-to-NULL.patch PURE_FTPD_IGNORE_CVES += CVE-2020-9274 # 0004-Initialize-the-max-upload-file-size-when-quotas-are-enabled.patch PURE_FTPD_IGNORE_CVES += CVE-2021-40524 PURE_FTPD_CONF_OPTS = \ --with-altlog \ --with-puredb ifeq ($(BR2_PACKAGE_ELFUTILS),y) PURE_FTPD_DEPENDENCIES += elfutils endif ifeq ($(BR2_PACKAGE_LIBCAP),y) PURE_FTPD_CONF_OPTS += --with-capabilities PURE_FTPD_DEPENDENCIES += libcap else PURE_FTPD_CONF_OPTS += --without-capabilities endif ifeq ($(BR2_PACKAGE_LIBSODIUM),y) PURE_FTPD_DEPENDENCIES += libsodium endif ifeq ($(BR2_PACKAGE_MYSQL),y) PURE_FTPD_CONF_OPTS += --with-mysql=$(STAGING_DIR)/usr PURE_FTPD_DEPENDENCIES += mysql else PURE_FTPD_CONF_OPTS += --without-mysql endif ifeq ($(BR2_PACKAGE_OPENLDAP),y) PURE_FTPD_CONF_OPTS += --with-ldap PURE_FTPD_DEPENDENCIES += openldap else PURE_FTPD_CONF_OPTS += --without-ldap endif ifeq ($(BR2_PACKAGE_OPENSSL),y) PURE_FTPD_CONF_OPTS += --with-tls PURE_FTPD_DEPENDENCIES += host-pkgconf openssl PURE_FTPD_CONF_ENV += LIBS=`$(PKG_CONFIG_HOST_BINARY) --libs openssl` else PURE_FTPD_CONF_OPTS += --without-tls endif ifeq ($(BR2_PACKAGE_POSTGRESQL),y) PURE_FTPD_CONF_OPTS += --with-pgsql=$(STAGING_DIR)/usr PURE_FTPD_DEPENDENCIES += postgresql else PURE_FTPD_CONF_OPTS += --without-pgsql endif ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) PURE_FTPD_CONF_ENV += ax_cv_check_cflags___fPIE=no ax_cv_check_ldflags___fPIE=no endif ifeq ($(BR2_PACKAGE_PURE_FTPD_FTPWHO),y) PURE_FTPD_CONF_OPTS += --with-ftpwho endif ifeq ($(BR2_PACKAGE_PURE_FTPD_QUOTAS),y) PURE_FTPD_CONF_OPTS += --with-quotas endif ifeq ($(BR2_PACKAGE_PURE_FTPD_UPLOADSCRIPT),y) PURE_FTPD_CONF_OPTS += --with-uploadscript endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) PURE_FTPD_CONF_OPTS += --with-pam PURE_FTPD_DEPENDENCIES += linux-pam else PURE_FTPD_CONF_OPTS += --without-pam endif $(eval $(autotools-package)) ================================================ FILE: package/putty/0001-unix-uxutils.h-fix-build-on-uclibc.patch ================================================ From 3f30f3a7e3f07f5ca3cef0f405b02e22a018c6e4 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 9 May 2021 15:22:29 +0200 Subject: [PATCH] unix/uxutils.h: fix build on uclibc Build on uclibc is broken since version 0.75 and commit 65383082bf0c49cec63f4b36001a40bd9b13edf6 because AT_HWCAP2 is used even if is not available: unix/uxutils.c: In function 'platform_aes_hw_available': unix/uxutils.c:13:22: error: 'AT_HWCAP2' undeclared (first use in this function) 13 | return getauxval(AT_HWCAP2) & HWCAP2_AES; | ^~~~~~~~~ To fix this build failure, include Fixes: - http://autobuild.buildroot.org/results/726f7c5ce13e78ed91e827b872e9d7ccfa13f298 Signed-off-by: Fabrice Fontaine [Upstream status: sent to Simon Tatham ] --- unix/uxutils.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/unix/uxutils.h b/unix/uxutils.h index c9acff53..b80bf972 100644 --- a/unix/uxutils.h +++ b/unix/uxutils.h @@ -18,6 +18,8 @@ #if defined __arm__ || defined __aarch64__ +#include + #ifdef HAVE_SYS_TYPES_H #include #endif -- 2.30.2 ================================================ FILE: package/putty/Config.in ================================================ config BR2_PACKAGE_PUTTY bool "putty" depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR 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/ comment "putty needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR ================================================ FILE: package/putty/putty.hash ================================================ # Hashes from: http://the.earth.li/~sgtatham/putty/0.76/{md5,sha1,sha256,sha512}sums md5 9d22f8c56c1eaa1c0af3098438f25908 putty-0.76.tar.gz sha1 de09f50aee330eb05ad0cb81b970d0cc8e5c9b25 putty-0.76.tar.gz sha256 547cd97a8daa87ef71037fab0773bceb54a8abccb2f825a49ef8eba5e045713f putty-0.76.tar.gz sha512 4576b359593928c6eba923f2d7b66ac0f2cf00e0c217cdbbb124471c3b35feb090e623847bfc507a4ef106cb3067aac47419e241b11dd8bf4ae554061fa93c25 putty-0.76.tar.gz # Locally calculated sha256 3f3e870dd3d0867d79370b1d433602c60bb91b59de04e5d8f2a149b788530d53 LICENCE ================================================ FILE: package/putty/putty.mk ================================================ ################################################################################ # # putty # ################################################################################ PUTTY_VERSION = 0.76 PUTTY_SITE = http://the.earth.li/~sgtatham/putty/$(PUTTY_VERSION) PUTTY_LICENSE = MIT PUTTY_LICENSE_FILES = LICENCE PUTTY_CPE_ID_VENDOR = putty 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)) ================================================ FILE: package/pv/Config.in ================================================ config BR2_PACKAGE_PV bool "pv" help Pipe Viewer - is a terminal-based tool for monitoring the progress of data through a pipeline. http://www.ivarch.com/programs/pv.shtml ================================================ FILE: package/pv/pv.hash ================================================ # Locally calculated after checking pgp signature sha256 e831951eff0718fba9b1ef286128773b9d0e723e1fbfae88d5a3188814fdc603 pv-1.6.20.tar.bz2 # Hash for license file sha256 280e182171df3e9bb4a9b407326e88521151fcb8f4f8557255f26177d5900ccf doc/COPYING ================================================ FILE: package/pv/pv.mk ================================================ ################################################################################ # # pv # ################################################################################ PV_VERSION = 1.6.20 PV_SOURCE = pv-$(PV_VERSION).tar.bz2 PV_SITE = http://www.ivarch.com/programs/sources PV_LICENSE = Artistic-2.0 PV_LICENSE_FILES = doc/COPYING PV_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) # --relax linker option is enabled by default on sparc/sparc64 # architectures, and it can't be used together with -r option, so # disable it. ifeq ($(BR2_sparc)$(BR2_sparc64),y) PV_LDFLAGS = "-Wl,--no-relax" endif # While 'pv' uses autoconf, it does not use automake for its # makefiles. It uses $(LD) $(LDFLAGS) to achieve partial linking, but # using 'ld' directly doesn't work well with some toolchain # configuration, as the ld default emulation may not necessarily be # the correct one. By passing the below values for LD and LDFLAGS, we # ensure that 'gcc' is used to do these partial linking steps. PV_MAKE_OPTS = \ LD="$(TARGET_CC)" \ LDFLAGS="-Wl,-r -nostdlib $(PV_LDFLAGS)" $(eval $(autotools-package)) ================================================ FILE: package/pwgen/Config.in ================================================ config BR2_PACKAGE_PWGEN bool "pwgen" help Pwgen is a small, GPL'ed password generator which creates passwords which can be easily memorized by a human. http://sourceforge.net/projects/pwgen/ ================================================ FILE: package/pwgen/Config.in.host ================================================ config BR2_PACKAGE_HOST_PWGEN bool "host pwgen" help Pwgen is a small, GPL'ed password generator which creates passwords which can be easily memorized by a human. http://sourceforge.net/projects/pwgen/ ================================================ FILE: package/pwgen/pwgen.hash ================================================ # From http://sourceforge.net/projects/pwgen/files/pwgen/2.08/ md5 6cfba450ac6ff72d11e88a6b0b049165 pwgen-2.08.tar.gz sha1 6406deba61297784888c2ec0c14e3c735a85a2b6 pwgen-2.08.tar.gz # Locally computed: sha256 5d3e49e01ef782be5841d5d1f7fb64d290cd86459598a913818584a46a2f81a1 debian/copyright ================================================ FILE: package/pwgen/pwgen.mk ================================================ ################################################################################ # # pwgen # ################################################################################ PWGEN_VERSION = 2.08 PWGEN_SITE = http://downloads.sourceforge.net/project/pwgen/pwgen/$(PWGEN_VERSION) PWGEN_LICENSE = GPL-2.0 PWGEN_LICENSE_FILES = debian/copyright PWGEN_CPE_ID_VENDOR = pwgen_project $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/python/0001-setup.py-do-not-add-invalid-header-locations.patch ================================================ From 3dc31a435b67de2ba3dd3457f0c939e20b58e8de Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:17:06 +0100 Subject: [PATCH] setup.py: do not add invalid header locations This piece of code incorrectly adds /usr/include to self.compiler.include_dirs, and results in the following invalid compilation line: /home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-gcc -fPIC \ -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 \ -pipe -Os -DNDEBUG -g -O3 -Wall -Wstrict-prototypes \ -I/usr/include -I. -IInclude -I./Include \ -I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include \ -I/home/thomas/projets/buildroot/output/build/python-2.7.6/Include \ -I/home/thomas/projets/buildroot/output/build/python-2.7.6 \ -c /home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/mathmodule.c \ -o build/temp.linux2-arm-2.7/home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/mathmodule.o cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories] [...] Signed-off-by: Thomas Petazzoni --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 54054c2..64001e2 100644 --- a/setup.py +++ b/setup.py @@ -496,7 +496,7 @@ class PyBuildExt(build_ext): for directory in reversed(options.dirs): add_dir_to_list(dir_list, directory) - if os.path.normpath(sys.prefix) != '/usr' \ + if False and os.path.normpath(sys.prefix) != '/usr' \ and not sysconfig.get_config_var('PYTHONFRAMEWORK'): # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework # (PYTHONFRAMEWORK is set) to avoid # linking problems when -- 2.7.4 ================================================ FILE: package/python/0002-Fix-get_python_inc-for-cross-compilation.patch ================================================ From 367ee7d103cf9f670c3925d555edf6f6a5b9d8d5 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:17:25 +0100 Subject: [PATCH] Fix get_python_inc() for cross-compilation When we are cross compiling, doing os.path.dirname(sys.executable) to get the build directory is incorrect, because we're executing the host Python to build things for the target. Instead, we should use the project_base variable. This fixes cross-compilation, which was adding incorrect header paths pointing to the location where the host Python was built: /home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-gcc -fPIC -fno-strict-aliasing \ -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -DNDEBUG -g -O3 -Wall -Wstrict-prototypes \ -I/usr/include -I. -IInclude -I./Include -I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include \ -I/home/thomas/projets/buildroot/output/host/usr/bin/Include -I/home/thomas/projets/buildroot/output/host/usr/bin \ -c /home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/_struct.c \ -o build/temp.linux2-arm-2.7/home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/_struct.o This patch allows to fix the /home/thomas/projets/buildroot/output/host/usr/bin/Include and /home/thomas/projets/buildroot/output/host/usr/bin paths that are incorrectly added to the header paths. Signed-off-by: Thomas Petazzoni [Asaf: update for 2.7.17] Signed-off-by: Asaf Kahlon --- Lib/distutils/sysconfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py index 1a4b792644..14c7d81c48 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -85,7 +85,7 @@ def get_python_inc(plat_specific=0, prefix=None): if os.name == "posix": if python_build: if sys.executable: - buildir = os.path.dirname(sys.executable) + buildir = project_base else: # sys.executable can be empty if argv[0] has been changed # and Python is unable to retrieve the real program name -- 2.20.1 ================================================ FILE: package/python/0003-Change-the-install-location-of-_sysconfigdata.py.patch ================================================ From e3f3c454ec4992a2283640cef0a35da5a05fb399 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:17:59 +0100 Subject: [PATCH] Change the install location of _sysconfigdata.py The _sysconfigdata.py module contains definitions that are needed when building Python modules. In cross-compilation mode, when building Python extensions for the target, we need to use the _sysconfigdata.py of the target Python while executing the host Python. However until now, the _sysconfigdata.py module was installed in build/lib.- directory, together with a number of architecture-specific shared objects, which cannot be used with the host Python. To solve this problem, this patch moves _sysconfigdata.py to a separate location, build/sysconfigdata.-/, and only this directory gets added to the PYTHONPATH of the host Python interpreter when building Python modules for the target. Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 12 ++++++++++-- configure.ac | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 9297e7fc89..49d3c0926f 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -509,6 +509,9 @@ pybuilddir.txt: $(BUILDPYTHON) rm -f ./pybuilddir.txt ; \ exit 1 ; \ fi + echo `cat pybuilddir.txt`/sysconfigdata > pysysconfigdatadir.txt + mkdir -p `cat pysysconfigdatadir.txt` + cp `cat pybuilddir.txt`/_sysconfigdata.py `cat pysysconfigdatadir.txt` # This is shared by the math and cmath modules Modules/_math.o: Modules/_math.c Modules/_math.h @@ -1091,7 +1094,7 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c else true; \ fi; \ done - @for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py $(srcdir)/Lib/*.doc $(srcdir)/Lib/*.egg-info ; \ + @for i in $(srcdir)/Lib/*.py $(srcdir)/Lib/*.doc $(srcdir)/Lib/*.egg-info ; \ do \ if test -x $$i; then \ $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \ @@ -1101,6 +1104,11 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c echo $(INSTALL_DATA) $$i $(LIBDEST); \ fi; \ done + $(INSTALL_DATA) `cat pysysconfigdatadir.txt`/_sysconfigdata.py \ + $(DESTDIR)$(LIBDEST) + mkdir -p $(DESTDIR)$(LIBDEST)/sysconfigdata + $(INSTALL_DATA) `cat pysysconfigdatadir.txt`/_sysconfigdata.py \ + $(DESTDIR)$(LIBDEST)/sysconfigdata @for d in $(LIBSUBDIRS); \ do \ a=$(srcdir)/Lib/$$d; \ @@ -1426,7 +1434,7 @@ distclean: clobber Modules/Setup Modules/Setup.local Modules/Setup.config \ Modules/ld_so_aix Modules/python.exp Misc/python.pc -rm -f python*-gdb.py - -rm -f pybuilddir.txt + -rm -f pybuilddir.txt pysysconfigdatadir.txt # Issue #28258: set LC_ALL to avoid issues with Estonian locale. # Expansion is performed here by shell (spawned by make) itself before # arguments are passed to find. So LC_ALL=C must be set as a separate diff --git a/configure.ac b/configure.ac index aecf6066e8..7143172b98 100644 --- a/configure.ac +++ b/configure.ac @@ -36,7 +36,7 @@ if test "$cross_compiling" = yes; then AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found]) fi AC_MSG_RESULT($interp) - PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp + PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pysysconfigdatadir.txt && echo $(abs_builddir)/`cat pysysconfigdatadir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp fi elif test "$cross_compiling" = maybe; then AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH]) -- 2.11.0 ================================================ FILE: package/python/0004-Make-the-compilation-of-.pyc-and-.pyo-conditional.patch ================================================ From 57ab41fa019d3ce276decd488938e5a00049cb9d Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:18:57 +0100 Subject: [PATCH] Make the compilation of .pyc and .pyo conditional This commit adds --{enable,disable}-{pyc,pyo} options to enable/disable the compilation of pyc/pyo files. Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 8 ++++++++ configure.ac | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/Makefile.pre.in b/Makefile.pre.in index 49d3c0926f..247d3c2902 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1139,24 +1139,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 -tt $(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 -tt -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 -t $(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 -t -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 7143172b98..6bd8369105 100644 --- a/configure.ac +++ b/configure.ac @@ -773,6 +773,17 @@ SunOS*) ;; esac +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 ]) AC_SUBST(LIBRARY) AC_MSG_CHECKING(LIBRARY) -- 2.11.0 ================================================ FILE: package/python/0005-Adjust-getaddrinfo-test-for-cross-compilation.patch ================================================ From e674e29ceba34e55c9149ce99489e543aa4ebb01 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:19:47 +0100 Subject: [PATCH] Adjust getaddrinfo() test for cross-compilation The getaddrinfo() test in configure.ac uses AC_RUN_IFELSE(), which isn't cross-compilation friendly. Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 6bd8369105..77ca6d86ca 100644 --- a/configure.ac +++ b/configure.ac @@ -3563,7 +3563,7 @@ fi AC_MSG_RESULT($ac_cv_buggy_getaddrinfo) -if test $have_getaddrinfo = no -o "$ac_cv_buggy_getaddrinfo" = yes +if test $have_getaddrinfo = no || test "$cross_compiling" != "yes" -a "$ac_cv_buggy_getaddrinfo" = yes then if test $ipv6 = yes then -- 2.11.0 ================================================ FILE: package/python/0006-Add-minimal-infrastructure-to-be-able-to-disable-ext.patch ================================================ From 94ec96dd8827adfb5e272d28a4d76510e28657b3 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:21:28 +0100 Subject: [PATCH] Add minimal infrastructure to be able to disable extensions This commit adds some logic to the Python build system to be able to disable Python extensions. Follow-up commits actually add options to disable specific extensions. Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 6 +++++- configure.ac | 2 ++ setup.py | 5 ++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 247d3c2902..c1c98ecc5a 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -160,6 +160,8 @@ FILEMODE= 644 # configure script arguments CONFIG_ARGS= @CONFIG_ARGS@ +# disabled extensions +DISABLED_EXTENSIONS= @DISABLED_EXTENSIONS@ # Subdirectories with code SRCDIRS= @SRCDIRS@ @@ -528,6 +530,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o esac; \ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ + DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build # Build static library @@ -1280,7 +1283,8 @@ libainstall: @DEF_MAKE_RULE@ python-config # Install the dynamically loadable modules # This goes into $(exec_prefix) sharedinstall: sharedmods - $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ + $(RUNSHARED) DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \ + $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ --prefix=$(prefix) \ --install-scripts=$(BINDIR) \ --install-platlib=$(DESTSHARED) \ diff --git a/configure.ac b/configure.ac index 77ca6d86ca..13f90b3ddd 100644 --- a/configure.ac +++ b/configure.ac @@ -2491,6 +2491,8 @@ LIBS="$withval $LIBS" PKG_PROG_PKG_CONFIG +AC_SUBST(DISABLED_EXTENSIONS) + # Check for use of the system expat library AC_MSG_CHECKING(for --with-system-expat) AC_ARG_WITH(system_expat, diff --git a/setup.py b/setup.py index 812d53d560..d426dd02ea 100644 --- a/setup.py +++ b/setup.py @@ -33,7 +33,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. -disabled_module_list = [] +try: + disabled_module_list = sysconfig.get_config_var("DISABLED_EXTENSIONS").split(" ") +except KeyError: + disabled_module_list = list() def add_dir_to_list(dirlist, dir): """Add the directory 'dir' to the list 'dirlist' (at the front) if -- 2.11.0 ================================================ FILE: package/python/0007-Adjust-library-header-paths-for-cross-compilation.patch ================================================ From f3e0a677c4736f95338825a022a884f8dc7a5c14 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:22:19 +0100 Subject: [PATCH] Adjust library/header paths for cross-compilation When cross-compiling third-party extensions, the get_python_inc() or get_python_lib() can be called, to return the path to headers or libraries. However, they use the sys.prefix of the host Python, which returns incorrect paths when cross-compiling (paths pointing to host headers and libraries). In order to fix this, we introduce the _python_sysroot, _python_prefix and _python_exec_prefix variables, that allow to override these values, and get correct header/library paths when cross-compiling third-party Python modules. The _python_sysroot variable is also used to prefix the LIBDIR value taken from the sysconfigdata module. Signed-off-by: Thomas Petazzoni --- Lib/distutils/command/build_ext.py | 5 ++++- Lib/distutils/sysconfig.py | 9 +++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index 2c68be3..375b08c 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -240,7 +240,10 @@ class build_ext (Command): if (sysconfig.get_config_var('Py_ENABLE_SHARED')): if not sysconfig.python_build: # building third party extensions - self.library_dirs.append(sysconfig.get_config_var('LIBDIR')) + libdir = sysconfig.get_config_var('LIBDIR') + if "_python_sysroot" in os.environ: + libdir = os.environ.get("_python_sysroot") + libdir + self.library_dirs.append(libdir) else: # building python standard extensions self.library_dirs.append('.') diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py index d72b6e5..72151df 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -19,8 +19,13 @@ import sys from distutils.errors import DistutilsPlatformError # These are needed in a couple of spots, so just compute them once. -PREFIX = os.path.normpath(sys.prefix) -EXEC_PREFIX = os.path.normpath(sys.exec_prefix) +if "_python_sysroot" in os.environ: + _sysroot=os.environ.get('_python_sysroot') + PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_prefix')) + EXEC_PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_exec_prefix')) +else: + PREFIX = os.path.normpath(sys.prefix) + EXEC_PREFIX = os.path.normpath(sys.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, -- 2.7.4 ================================================ FILE: package/python/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch ================================================ From 87b627d8845e67fd798449b414bece04f18bd450 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:22:40 +0100 Subject: [PATCH] Don't look in /usr/lib/termcap for libraries Signed-off-by: Thomas Petazzoni --- setup.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 3b51c0a..fa32532 100644 --- a/setup.py +++ b/setup.py @@ -784,12 +784,9 @@ class PyBuildExt(build_ext): pass # Issue 7384: Already linked against curses or tinfo. elif curses_library: readline_libs.append(curses_library) - elif self.compiler.find_library_file(lib_dirs + - ['/usr/lib/termcap'], - 'termcap'): + elif self.compiler.find_library_file(lib_dirs, 'termcap'): readline_libs.append('termcap') exts.append( Extension('readline', ['readline.c'], - library_dirs=['/usr/lib/termcap'], extra_link_args=readline_extra_link_args, libraries=readline_libs) ) else: -- 2.7.4 ================================================ FILE: package/python/0009-Fix-python-config-for-cross-builds.patch ================================================ From 1522c6c00ee88eb1148d3b2021d32d819b416375 Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Tue, 7 Mar 2017 22:23:14 +0100 Subject: [PATCH] Fix python-config for cross-builds Add a backport of http://bugs.python.org/issue16235 so we can use python-config for cross builds. This basically replaces the python version of python-config with a pure-shell version that's already preprocessed when installed and doesn't depend on the sysconfig import that usually leads to bad data/results. Signed-off-by: Gustavo Zacarias [Bernd: rebased for Python 2.7.15] Signed-off-by: Bernd Kuhls [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 13 +++--- Misc/python-config.sh.in | 102 +++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 7 +++- 3 files changed, 116 insertions(+), 6 deletions(-) create mode 100644 Misc/python-config.sh.in diff --git a/Makefile.pre.in b/Makefile.pre.in index c1c98ecc5a..727a92af42 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -170,7 +170,7 @@ SRCDIRS= @SRCDIRS@ SUBDIRSTOO= Include Lib Misc Demo # Files and directories to be distributed -CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in +CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Misc/python-config.sh DISTFILES= README ChangeLog $(CONFIGFILES) DISTDIRS= $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy DIST= $(DISTFILES) $(DISTDIRS) @@ -403,7 +403,7 @@ LIBRARY_OBJS= \ # Default target all: @DEF_MAKE_ALL_RULE@ -build_all: check-clean-src $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks +build_all: check-clean-src $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks python-config # Check that the source is clean when building out of source. check-clean-src: @@ -1190,10 +1190,12 @@ $(srcdir)/Lib/$(PLATDIR): fi; \ cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen -python-config: $(srcdir)/Misc/python-config.in +python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh # Substitution happens here, as the completely-expanded BINDIR # is not available in configure - sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config + sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py + # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR} + sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' Misc/python-config.sh >python-config # Install the include files INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY) @@ -1252,7 +1254,7 @@ libainstall: @DEF_MAKE_RULE@ python-config $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(VERSION)-config - rm python-config + $(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py @if [ -s Modules/python.exp -a \ "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ echo; echo "Installing support files for building shared extension modules on AIX:"; \ @@ -1434,6 +1436,7 @@ clobber: clean profile-removal config.cache config.log pyconfig.h Modules/config.c -rm -rf build platform -rm -rf $(PYTHONFRAMEWORKDIR) + -rm -f python-config.py python-config # Make things extra clean, before making a distribution: # remove all generated files, even Makefile[.pre] diff --git a/Misc/python-config.sh.in b/Misc/python-config.sh.in new file mode 100644 index 0000000000..10db4c12eb --- /dev/null +++ b/Misc/python-config.sh.in @@ -0,0 +1,102 @@ +#!/bin/sh + +exit_with_usage () +{ + echo "Usage: $0 --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--configdir" + exit $1 +} + +if [ "$1" = "" ] ; then + exit_with_usage 1 +fi + +# Returns the actual prefix where this script was installed to. +installed_prefix () +{ + RESULT=$(dirname $(cd $(dirname "$1") && pwd -P)) + if which readlink >/dev/null 2>&1 ; then + RESULT=$(readlink -f "$RESULT") + fi + echo $RESULT +} + +prefix_build="@prefix@" +prefix_real=$(installed_prefix "$0") + +# Use sed to fix paths from their built to locations to their installed to locations. +prefix=$(echo "$prefix_build" | sed "s#$prefix_build#$prefix_real#") +exec_prefix_build="@exec_prefix@" +exec_prefix=$(echo "$exec_prefix_build" | sed "s#$exec_prefix_build#$prefix_real#") +includedir=$(echo "@includedir@") +libdir=$(echo "@libdir@" | sed "s#$prefix_build#$prefix_real#") +CFLAGS=$(echo "@CFLAGS@" | sed "s#$prefix_build#$prefix_real#") +VERSION="@VERSION@" +LIBM="@LIBM@" +LIBC="@LIBC@" +SYSLIBS="$LIBM $LIBC" +LIBS="@LIBS@ $SYSLIBS -lpython${VERSION}" +BASECFLAGS="@BASECFLAGS@" +LDLIBRARY="@LDLIBRARY@" +LINKFORSHARED="@LINKFORSHARED@" +OPT="@OPT@" +PY_ENABLE_SHARED="@PY_ENABLE_SHARED@" +LDVERSION="@LDVERSION@" +LIBDEST=${prefix}/lib/python${VERSION} +LIBPL=$(echo "@LIBPL@" | sed "s#$prefix_build#$prefix_real#") +SO="@SO@" +PYTHONFRAMEWORK="@PYTHONFRAMEWORK@" +INCDIR="-I$includedir/python${VERSION}" +PLATINCDIR="-I$includedir/python${VERSION}" + +# Scan for --help or unknown argument. +for ARG in $* +do + case $ARG in + --help) + exit_with_usage 0 + ;; + --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--abiflags|--configdir) + ;; + *) + exit_with_usage 1 + ;; +esac +done + +for ARG in "$@" +do + case "$ARG" in + --prefix) + echo "$prefix" + ;; + --exec-prefix) + echo "$exec_prefix" + ;; + --includes) + echo "$INCDIR $PLATINCDIR" + ;; + --cflags) + echo "$INCDIR $PLATINCDIR $BASECFLAGS $CFLAGS $OPT" + ;; + --libs) + echo "$LIBS" + ;; + --ldflags) + LINKFORSHAREDUSED= + if [ -z "$PYTHONFRAMEWORK" ] ; then + LINKFORSHAREDUSED=$LINKFORSHARED + fi + LIBPLUSED= + if [ "$PY_ENABLE_SHARED" = "0" ] ; then + LIBPLUSED="-L$LIBPL" + fi + echo "$LIBPLUSED -L$libdir $LIBS $LINKFORSHAREDUSED" + ;; + --extension-suffix) + echo "$SO" + ;; + --configdir) + echo "$LIBPL" + ;; +esac +done diff --git a/configure.ac b/configure.ac index 13f90b3ddd..3f28ef1371 100644 --- a/configure.ac +++ b/configure.ac @@ -919,6 +919,7 @@ fi # Other platforms follow if test $enable_shared = "yes"; then + PY_ENABLE_SHARED=1 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.]) case $ac_sys_system in BeOS*) @@ -979,6 +980,7 @@ if test $enable_shared = "yes"; then esac else # shared is disabled + PY_ENABLE_SHARED=0 case $ac_sys_system in CYGWIN*) BLDLIBRARY='$(LIBRARY)' @@ -2128,6 +2130,9 @@ AC_SUBST(LDCXXSHARED) AC_SUBST(BLDSHARED) AC_SUBST(CCSHARED) AC_SUBST(LINKFORSHARED) +AC_SUBST(PY_ENABLE_SHARED) +LIBPL="${prefix}/lib/python${VERSION}/config" +AC_SUBST(LIBPL) # SO is the extension of shared libraries `(including the dot!) # -- usually .so, .sl on HP-UX, .dll on Cygwin AC_MSG_CHECKING(SO) @@ -4944,7 +4949,7 @@ AC_MSG_RESULT($ENSUREPIP) AC_SUBST(ENSUREPIP) # generate output files -AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc) +AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc Misc/python-config.sh) AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix]) AC_OUTPUT -- 2.11.0 ================================================ FILE: package/python/0010-Remove-the-python-symlink-install-rules.patch ================================================ From 706d62599fb3c3cb9b9941364aaf4a1ef4ebd276 Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Tue, 7 Mar 2017 22:23:58 +0100 Subject: [PATCH] Remove the python symlink install rules The python symlink installation will be handled by Buildroot itself, because Buildroot needs to control to what python interpreter (python2 or python3) the python symlink points to. Signed-off-by: Samuel Martin [Bernd: rebased against version 2.7.12.] Signed-off-by: Bernd Kuhls [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 727a92af42..37b2ff3a5f 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -978,17 +978,10 @@ bininstall: altbininstall 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; \ - fi - (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(EXE) $(PYTHON)) -rm -f $(DESTDIR)$(BINDIR)/python2$(EXE) (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python2$(EXE)) -rm -f $(DESTDIR)$(BINDIR)/python2-config (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python2-config) - -rm -f $(DESTDIR)$(BINDIR)/python-config - (cd $(DESTDIR)$(BINDIR); $(LN) -s python2-config python-config) -test -d $(DESTDIR)$(LIBPC) || $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC) -rm -f $(DESTDIR)$(LIBPC)/python2.pc (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python2.pc) -- 2.11.0 ================================================ FILE: package/python/0011-Don-t-add-multiarch-paths.patch ================================================ From 50a243a9c90f95e9248ac720e42e802b5922ab90 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:24:28 +0100 Subject: [PATCH] Don't add multiarch paths The add_multiarch_paths() function leads, in certain build environments, to the addition of host header paths to the CFLAGS, which is not appropriate for cross-compilation. This patch fixes that by simply removing the call to add_multiarch_paths() when we're cross-compiling. Investigation done by David . Signed-off-by: Thomas Petazzoni --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index fa32532..0b9ea57 100644 --- a/setup.py +++ b/setup.py @@ -461,9 +461,9 @@ 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') + self.add_multiarch_paths() if cross_compiling: self.add_gcc_paths() - self.add_multiarch_paths() # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. -- 2.7.4 ================================================ FILE: package/python/0012-Abort-on-failed-module-build.patch ================================================ From a131e2ff219872d97eef6585117bd2f8ff9e310d Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:24:48 +0100 Subject: [PATCH] Abort on failed module build When building a Python module fails, the setup.py script currently doesn't exit with an error, and simply continues. This is not a really nice behavior, so this patch changes setup.py to abort with an error, so that the build issue is clearly noticeable. Signed-off-by: Thomas Petazzoni --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 0b9ea57..9a5c2b8 100644 --- a/setup.py +++ b/setup.py @@ -299,6 +299,7 @@ class PyBuildExt(build_ext): print "Failed to build these modules:" print_three_column(failed) print + sys.exit(1) def build_extension(self, ext): -- 2.7.4 ================================================ FILE: package/python/0013-sqlite3-fix-build-when-threads-are-not-used-availabl.patch ================================================ From 0f0be88526ece7d2f6ee21c1f59b1546ec6dc7c0 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Tue, 7 Mar 2017 22:25:14 +0100 Subject: [PATCH] sqlite3: fix build when threads are not used/available When threads are not used/available, a function in the sqlite3 extension ends up with a label at the end: void _pysqlite_final_callback(sqlite3_context* context) { PyObject* function_result; PyObject** aggregate_instance; int ok; #ifdef WITH_THREAD PyGILState_STATE threadstate; threadstate = PyGILState_Ensure(); #endif aggregate_instance = (PyObject**)sqlite3_aggregate_context(context, sizeof(PyObject*)); if (!*aggregate_instance) { goto error; } [......] error: #ifdef WITH_THREAD PyGILState_Release(threadstate); #endif } This is not valid, and gcc complains. Fix that by adding a dummy statement after the label, so that the label is never the last statement of the function. Signed-off-by: "Yann E. MORIN" --- Modules/_sqlite/connection.c | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 237d6e4..cdf69ab 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -794,6 +794,7 @@ error: #ifdef WITH_THREAD PyGILState_Release(threadstate); #endif + ; /* Make gcc happy: a label can't be at the end of a function */ } static void _pysqlite_drop_unused_statement_references(pysqlite_Connection* self) -- 2.7.4 ================================================ FILE: package/python/0014-Serial-ioctl-workaround.patch ================================================ From 22e5a4c5d29ddf0856d7f68f5a613aec00e26168 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Tue, 7 Mar 2017 22:25:36 +0100 Subject: [PATCH] Serial ioctl() workaround The ioctls.h of some architectures (notably xtensa) references structs from linux/serial.h. Make sure to include this header as well. Also, undef TIOCTTYGSTRUCT that require reference to internal kernel tty_struct, but isn't actually referenced in modern kernels. Signed-off-by: Baruch Siach --- Modules/termios.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Modules/termios.c b/Modules/termios.c index 57f30dc..a8c9855 100644 --- a/Modules/termios.c +++ b/Modules/termios.c @@ -16,7 +16,9 @@ * so this needs to be included first on that platform. */ #include #endif +#include #include +#undef TIOCTTYGSTRUCT /* HP-UX requires that this be included to pick up MDCD, MCTS, MDSR, * MDTR, MRI, and MRTS (appearantly used internally by some things -- 2.7.4 ================================================ FILE: package/python/0015-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch ================================================ From 70049366ddf1fc9084bb02cf4459380976cdf8f7 Mon Sep 17 00:00:00 2001 From: Christophe Vu-Brugier Date: Tue, 7 Mar 2017 22:26:09 +0100 Subject: [PATCH] Do not adjust the shebang of Python scripts for cross-compilation The copy_scripts() method in distutils copies the scripts listed in the setup file and adjusts the first line to refer to the current Python interpreter. When cross-compiling, this means that the adjusted shebang refers to the host Python interpreter. This patch modifies copy_scripts() to preserve the shebang when cross-compilation is detected. Signed-off-by: Christophe Vu-Brugier --- Lib/distutils/command/build_scripts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/distutils/command/build_scripts.py b/Lib/distutils/command/build_scripts.py index 567df65..4922d50 100644 --- a/Lib/distutils/command/build_scripts.py +++ b/Lib/distutils/command/build_scripts.py @@ -89,7 +89,7 @@ class build_scripts (Command): adjust = 1 post_interp = match.group(1) or '' - if adjust: + if adjust and not '_python_sysroot' in os.environ: log.info("copying and adjusting %s -> %s", script, self.build_dir) if not self.dry_run: -- 2.7.4 ================================================ FILE: package/python/0016-Add-an-option-to-disable-installation-of-test-module.patch ================================================ From 2c1810fb002128a6d33cc3a391a157e316479d15 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:27:16 +0100 Subject: [PATCH] Add an option to disable installation of test modules The Python standard distribution comes with many test modules, that are not necessarly useful on embedded targets. Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [Bernd: rebased against version 2.7.14] Signed-off-by: Bernd Kuhls [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 50 +++++++++++++++++++++++++++++++++----------------- configure.ac | 6 ++++++ 2 files changed, 39 insertions(+), 17 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 37b2ff3a5f..2a5e8adc61 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1048,28 +1048,44 @@ PLATMACDIRS= plat-mac plat-mac/Carbon plat-mac/lib-scriptpackages \ plat-mac/lib-scriptpackages/SystemEvents \ plat-mac/lib-scriptpackages/Terminal PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages -LIBSUBDIRS= lib-tk lib-tk/test lib-tk/test/test_tkinter \ - lib-tk/test/test_ttk site-packages test test/audiodata test/capath \ - test/data test/cjkencodings test/decimaltestdata test/xmltestdata \ - test/imghdrdata \ - test/subprocessdata \ - test/support \ - test/tracedmodules \ +LIBSUBDIRS= lib-tk site-packages \ encodings compiler hotshot \ - email email/mime email/test email/test/data \ + email email/mime \ ensurepip ensurepip/_bundled \ - json json/tests \ - sqlite3 sqlite3/test \ - logging bsddb bsddb/test csv importlib wsgiref \ - lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \ - lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \ - ctypes ctypes/test ctypes/macholib \ - idlelib idlelib/Icons idlelib/idle_test \ - distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \ + json \ + sqlite3 \ + logging bsddb csv importlib wsgiref \ + lib2to3 lib2to3/fixes lib2to3/pgen2 \ + ctypes ctypes/macholib \ + idlelib idlelib/Icons \ + distutils distutils/command $(XMLLIBSUBDIRS) \ multiprocessing multiprocessing/dummy \ - unittest unittest/test \ + unittest \ lib-old \ curses pydoc_data $(MACHDEPS) + +TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ + lib-tk/test/test_ttk test test/audiodata test/capath test/data \ + test/cjkencodings test/decimaltestdata test/xmltestdata \ + test/imghdrdata \ + test/subprocessdata \ + test/support \ + test/tracedmodules \ + email/test email/test/data \ + json/tests \ + sqlite3/test \ + bsddb/test \ + lib2to3/tests \ + lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \ + ctypes/test \ + idlelib/idle_test \ + distutils/tests \ + unittest/test + +ifeq (@TEST_MODULES@,yes) +LIBSUBDIRS += $(TESTSUBDIRS) +endif + libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ diff --git a/configure.ac b/configure.ac index 3f28ef1371..f257a25620 100644 --- a/configure.ac +++ b/configure.ac @@ -2835,6 +2835,12 @@ if test "$posix_threads" = "yes"; then fi +AC_SUBST(TEST_MODULES) + +AC_ARG_ENABLE(test-modules, + AS_HELP_STRING([--disable-test-modules], [disable test modules]), + [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ]) + # Check for enable-ipv6 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified]) AC_MSG_CHECKING([if --enable-ipv6 is specified]) -- 2.11.0 ================================================ FILE: package/python/0017-Add-an-option-to-disable-pydoc.patch ================================================ From f98c3f981643411449aba6f93178b2ca14f9a68c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:27:34 +0100 Subject: [PATCH] Add an option to disable pydoc It removes 0.5 MB of data from the target plus the pydoc script itself. Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 6 +++++- configure.ac | 5 +++++ setup.py | 10 +++++++--- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 2a5e8adc61..d3ba1aeb4e 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1062,7 +1062,7 @@ LIBSUBDIRS= lib-tk site-packages \ multiprocessing multiprocessing/dummy \ unittest \ lib-old \ - curses pydoc_data $(MACHDEPS) + curses $(MACHDEPS) TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ lib-tk/test/test_ttk test test/audiodata test/capath test/data \ @@ -1086,6 +1086,10 @@ ifeq (@TEST_MODULES@,yes) LIBSUBDIRS += $(TESTSUBDIRS) endif +ifeq (@PYDOC@,yes) +LIBSUBDIRS += pydoc_data +endif + libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ diff --git a/configure.ac b/configure.ac index f257a25620..2ed4119478 100644 --- a/configure.ac +++ b/configure.ac @@ -2834,6 +2834,11 @@ if test "$posix_threads" = "yes"; then AC_CHECK_FUNCS(pthread_atfork) fi +AC_SUBST(PYDOC) + +AC_ARG_ENABLE(pydoc, + AS_HELP_STRING([--disable-pydoc], [disable pydoc]), + [ PYDOC="${enableval}" ], [ PYDOC=yes ]) AC_SUBST(TEST_MODULES) diff --git a/setup.py b/setup.py index 2ef5b07189..49f810f72e 100644 --- a/setup.py +++ b/setup.py @@ -2277,6 +2277,12 @@ def main(): # turn off warnings when deprecated modules are imported import warnings warnings.filterwarnings("ignore",category=DeprecationWarning) + + scripts = ['Tools/scripts/idle', 'Tools/scripts/2to3', + 'Lib/smtpd.py'] + if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"): + scripts += [ 'Tools/scripts/pydoc' ] + setup(# PyPI Metadata (PEP 301) name = "Python", version = sys.version.split()[0], @@ -2297,9 +2303,7 @@ def main(): ext_modules=[Extension('_struct', ['_struct.c'])], # Scripts to install - scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle', - 'Tools/scripts/2to3', - 'Lib/smtpd.py'] + scripts = scripts, ) # --install-platlib -- 2.11.0 ================================================ FILE: package/python/0018-Add-an-option-to-disable-lib2to3.patch ================================================ From d7f419246681e12f05e2eefc79286959c6aa18ab Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:27:49 +0100 Subject: [PATCH] Add an option to disable lib2to3 lib2to3 is a library to convert Python 2.x code to Python 3.x. As such, it is probably not very useful on embedded system targets. Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 11 ++++++++--- configure.ac | 6 ++++++ setup.py | 5 +++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index d3ba1aeb4e..0e15b6d6f4 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1055,7 +1055,6 @@ LIBSUBDIRS= lib-tk site-packages \ json \ sqlite3 \ logging bsddb csv importlib wsgiref \ - lib2to3 lib2to3/fixes lib2to3/pgen2 \ ctypes ctypes/macholib \ idlelib idlelib/Icons \ distutils distutils/command $(XMLLIBSUBDIRS) \ @@ -1075,8 +1074,6 @@ TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ json/tests \ sqlite3/test \ bsddb/test \ - lib2to3/tests \ - lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \ ctypes/test \ idlelib/idle_test \ distutils/tests \ @@ -1090,6 +1087,14 @@ ifeq (@PYDOC@,yes) LIBSUBDIRS += pydoc_data endif +ifeq (@LIB2TO3@,yes) +LIBSUBDIRS += lib2to3 lib2to3/fixes lib2to3/pgen2 +TESTSUBDIRS += lib2to3/tests \ + lib2to3/tests/data \ + lib2to3/tests/data/fixers \ + lib2to3/tests/data/fixers/myfixes +endif + libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ diff --git a/configure.ac b/configure.ac index 2ed4119478..a2810ab8ed 100644 --- a/configure.ac +++ b/configure.ac @@ -2846,6 +2846,12 @@ AC_ARG_ENABLE(test-modules, AS_HELP_STRING([--disable-test-modules], [disable test modules]), [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ]) +AC_SUBST(LIB2TO3) + +AC_ARG_ENABLE(lib2to3, + AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]), + [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ]) + # Check for enable-ipv6 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 49f810f72e..9130819454 100644 --- a/setup.py +++ b/setup.py @@ -2278,10 +2278,11 @@ def main(): import warnings warnings.filterwarnings("ignore",category=DeprecationWarning) - scripts = ['Tools/scripts/idle', 'Tools/scripts/2to3', - 'Lib/smtpd.py'] + scripts = ['Tools/scripts/idle', 'Lib/smtpd.py'] if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"): scripts += [ 'Tools/scripts/pydoc' ] + if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"): + scripts += [ 'Tools/scripts/2to3' ] setup(# PyPI Metadata (PEP 301) name = "Python", -- 2.11.0 ================================================ FILE: package/python/0019-Add-option-to-disable-the-sqlite3-module.patch ================================================ From 123ecc50932e3ad3f7a2d90d430b74822c9695d4 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:28:06 +0100 Subject: [PATCH] Add option to disable the sqlite3 module Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 7 +++++-- configure.ac | 9 +++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 0e15b6d6f4..a2e5ac6d41 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1053,7 +1053,6 @@ LIBSUBDIRS= lib-tk site-packages \ email email/mime \ ensurepip ensurepip/_bundled \ json \ - sqlite3 \ logging bsddb csv importlib wsgiref \ ctypes ctypes/macholib \ idlelib idlelib/Icons \ @@ -1072,7 +1071,6 @@ TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ test/tracedmodules \ email/test email/test/data \ json/tests \ - sqlite3/test \ bsddb/test \ ctypes/test \ idlelib/idle_test \ @@ -1095,6 +1093,11 @@ TESTSUBDIRS += lib2to3/tests \ lib2to3/tests/data/fixers/myfixes endif +ifeq (@SQLITE3@,yes) +LIBSUBDIRS += sqlite3 +TESTSUBDIRS += sqlite3/test +endif + libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ diff --git a/configure.ac b/configure.ac index a2810ab8ed..4ee3c60501 100644 --- a/configure.ac +++ b/configure.ac @@ -2834,6 +2834,15 @@ if test "$posix_threads" = "yes"; then AC_CHECK_FUNCS(pthread_atfork) fi +AC_SUBST(SQLITE3) +AC_ARG_ENABLE(sqlite3, + AS_HELP_STRING([--disable-sqlite3], [disable sqlite3]), + [ SQLITE3="${enableval}" ], [ SQLITE3=yes ]) + +if test "$SQLITE3" = "no" ; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3" +fi + AC_SUBST(PYDOC) AC_ARG_ENABLE(pydoc, -- 2.11.0 ================================================ FILE: package/python/0020-Add-an-option-to-disable-the-tk-module.patch ================================================ From f0dc1198360c6875ed846a961e85dc41e239aa29 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:28:57 +0100 Subject: [PATCH] Add an option to disable the tk module Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 11 ++++++++--- configure.ac | 9 +++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index a2e5ac6d41..37ed70ab1d 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1048,7 +1048,7 @@ PLATMACDIRS= plat-mac plat-mac/Carbon plat-mac/lib-scriptpackages \ plat-mac/lib-scriptpackages/SystemEvents \ plat-mac/lib-scriptpackages/Terminal PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages -LIBSUBDIRS= lib-tk site-packages \ +LIBSUBDIRS= site-packages \ encodings compiler hotshot \ email email/mime \ ensurepip ensurepip/_bundled \ @@ -1062,8 +1062,7 @@ LIBSUBDIRS= lib-tk site-packages \ lib-old \ curses $(MACHDEPS) -TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ - lib-tk/test/test_ttk test test/audiodata test/capath test/data \ +TESTSUBDIRS = test test/audiodata test/capath test/data \ test/cjkencodings test/decimaltestdata test/xmltestdata \ test/imghdrdata \ test/subprocessdata \ @@ -1098,6 +1097,12 @@ LIBSUBDIRS += sqlite3 TESTSUBDIRS += sqlite3/test endif +ifeq (@TK@,yes) +LIBSUBDIRS += lib-tk +TESTSUBDIRS += lib-tk/test lib-tk/test/test_tkinter \ + lib-tk/test/test_ttk +endif + libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ diff --git a/configure.ac b/configure.ac index 4ee3c60501..2c20f826c5 100644 --- a/configure.ac +++ b/configure.ac @@ -2843,6 +2843,15 @@ if test "$SQLITE3" = "no" ; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3" fi +AC_SUBST(TK) +AC_ARG_ENABLE(tk, + AS_HELP_STRING([--disable-tk], [disable tk]), + [ TK="${enableval}" ], [ TK=yes ]) + +if test "$TK" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter" +fi + AC_SUBST(PYDOC) AC_ARG_ENABLE(pydoc, -- 2.11.0 ================================================ FILE: package/python/0021-Add-an-option-to-disable-the-curses-module.patch ================================================ From 3e51eef24c51b986c37b354f3de98218eb76909c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:29:06 +0100 Subject: [PATCH] Add an option to disable the curses module Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 6 +++++- configure.ac | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 37ed70ab1d..458f4ad55b 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1060,7 +1060,7 @@ LIBSUBDIRS= site-packages \ multiprocessing multiprocessing/dummy \ unittest \ lib-old \ - curses $(MACHDEPS) + $(MACHDEPS) TESTSUBDIRS = test test/audiodata test/capath test/data \ test/cjkencodings test/decimaltestdata test/xmltestdata \ @@ -1103,6 +1103,10 @@ TESTSUBDIRS += lib-tk/test lib-tk/test/test_tkinter \ lib-tk/test/test_ttk endif +ifeq (@CURSES@,yes) +LIBSUBDIRS += curses +endif + libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ diff --git a/configure.ac b/configure.ac index 2c20f826c5..a7ebcd091e 100644 --- a/configure.ac +++ b/configure.ac @@ -2852,6 +2852,15 @@ if test "$TK" = "no"; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter" fi +AC_SUBST(CURSES) +AC_ARG_ENABLE(curses, + AS_HELP_STRING([--disable-curses], [disable curses]), + [ CURSES="${enableval}" ], [ CURSES=yes ]) + +if test "$CURSES" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _curses _curses_panel" +fi + AC_SUBST(PYDOC) AC_ARG_ENABLE(pydoc, -- 2.11.0 ================================================ FILE: package/python/0022-Add-an-option-to-disable-expat.patch ================================================ From 548413a659cc5320560d6b794fe8edd06dd1d22e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:29:20 +0100 Subject: [PATCH] Add an option to disable expat This patch replaces the existing --with-system-expat option with a --with-expat={system,builtin,none} option, which allows to tell Python whether we want to use the system expat (already installed), the expat builtin the Python sources, or no expat at all (which disables the installation of XML modules). Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 6 +++++- configure.ac | 18 +++++++++++++----- setup.py | 2 +- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 458f4ad55b..8dee345539 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1056,7 +1056,7 @@ LIBSUBDIRS= site-packages \ logging bsddb csv importlib wsgiref \ ctypes ctypes/macholib \ idlelib idlelib/Icons \ - distutils distutils/command $(XMLLIBSUBDIRS) \ + distutils distutils/command \ multiprocessing multiprocessing/dummy \ unittest \ lib-old \ @@ -1107,6 +1107,10 @@ ifeq (@CURSES@,yes) LIBSUBDIRS += curses endif +ifeq (@EXPAT@,yes) +LIBSUBDIRS += $(XMLLIBSUBDIRS) +endif + libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ diff --git a/configure.ac b/configure.ac index a7ebcd091e..2f5759a890 100644 --- a/configure.ac +++ b/configure.ac @@ -2499,13 +2499,21 @@ PKG_PROG_PKG_CONFIG AC_SUBST(DISABLED_EXTENSIONS) # Check for use of the system expat library -AC_MSG_CHECKING(for --with-system-expat) -AC_ARG_WITH(system_expat, - AS_HELP_STRING([--with-system-expat], [build pyexpat module using an installed expat library]), +AC_MSG_CHECKING(for --with-expat) +AC_ARG_WITH(expat, + AS_HELP_STRING([--with-expat], [select which expat version to use: system, builtin, none]), [], - [with_system_expat="no"]) + [with_expat="builtin"]) -AC_MSG_RESULT($with_system_expat) +AC_MSG_RESULT($with_expat) + +if test "$with_expat" != "none"; then + EXPAT=yes +else + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} pyexpat" + EXPAT=no +fi +AC_SUBST(EXPAT) # Check for use of the system libffi library AC_MSG_CHECKING(for --with-system-ffi) diff --git a/setup.py b/setup.py index 9130819454..f439cbadc2 100644 --- a/setup.py +++ b/setup.py @@ -1475,7 +1475,7 @@ class PyBuildExt(build_ext): # # More information on Expat can be found at www.libexpat.org. # - if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"): + if '--with-expat=system' in sysconfig.get_config_var("CONFIG_ARGS"): expat_inc = [] define_macros = [] expat_lib = ['expat'] -- 2.11.0 ================================================ FILE: package/python/0023-Add-an-option-to-disable-CJK-codecs.patch ================================================ From 6761066addfb6028e183d7fe4322b283af18117f Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:29:31 +0100 Subject: [PATCH] Add an option to disable CJK codecs Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 2f5759a890..862c8ae516 100644 --- a/configure.ac +++ b/configure.ac @@ -2851,6 +2851,12 @@ if test "$SQLITE3" = "no" ; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3" fi +AC_ARG_ENABLE(codecs-cjk, + AS_HELP_STRING([--disable-codecs-cjk], [disable CJK codecs]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk" + fi]) + AC_SUBST(TK) AC_ARG_ENABLE(tk, AS_HELP_STRING([--disable-tk], [disable tk]), -- 2.11.0 ================================================ FILE: package/python/0024-Add-an-option-to-disable-NIS.patch ================================================ From ecd8e926bd364d866f492df87d7c46d029445480 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:29:41 +0100 Subject: [PATCH] Add an option to disable NIS NIS is not necessarily available in uClibc, so we need an option to not compile support for it. Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 862c8ae516..354212fb16 100644 --- a/configure.ac +++ b/configure.ac @@ -2857,6 +2857,12 @@ AC_ARG_ENABLE(codecs-cjk, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk" fi]) +AC_ARG_ENABLE(nis, + AS_HELP_STRING([--disable-nis], [disable NIS]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" + fi]) + AC_SUBST(TK) AC_ARG_ENABLE(tk, AS_HELP_STRING([--disable-tk], [disable tk]), -- 2.11.0 ================================================ FILE: package/python/0025-Add-an-option-to-disable-unicodedata.patch ================================================ From dc99b7a0331fe75d70ccb87dc0877ac5bbba51ca Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:29:52 +0100 Subject: [PATCH] Add an option to disable unicodedata Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 354212fb16..4e430d82b8 100644 --- a/configure.ac +++ b/configure.ac @@ -2863,6 +2863,12 @@ AC_ARG_ENABLE(nis, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" fi]) +AC_ARG_ENABLE(unicodedata, + AS_HELP_STRING([--disable-unicodedata], [disable unicodedata]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} unicodedata" + fi]) + AC_SUBST(TK) AC_ARG_ENABLE(tk, AS_HELP_STRING([--disable-tk], [disable tk]), -- 2.11.0 ================================================ FILE: package/python/0026-Add-an-option-to-disable-bsddb.patch ================================================ From a4bbbf0c5f1f68298d5f4e2c2cd80de7e758763c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:30:06 +0100 Subject: [PATCH] Add an option to disable bsddb bsddb has an external dependency on Berkeley DB. Since we want to be able to build Python without it, this patch adds an option to disable the build/installation of this Python module. Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 8 ++++++-- configure.ac | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 8dee345539..a0473096c1 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1053,7 +1053,7 @@ LIBSUBDIRS= site-packages \ email email/mime \ ensurepip ensurepip/_bundled \ json \ - logging bsddb csv importlib wsgiref \ + logging csv importlib wsgiref \ ctypes ctypes/macholib \ idlelib idlelib/Icons \ distutils distutils/command \ @@ -1070,7 +1070,6 @@ TESTSUBDIRS = test test/audiodata test/capath test/data \ test/tracedmodules \ email/test email/test/data \ json/tests \ - bsddb/test \ ctypes/test \ idlelib/idle_test \ distutils/tests \ @@ -1111,6 +1110,11 @@ ifeq (@EXPAT@,yes) LIBSUBDIRS += $(XMLLIBSUBDIRS) endif +ifeq (@BSDDB@,yes) +LIBSUBDIRS += bsddb +TESTSUBDIRS += bsddb/test +endif + libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ diff --git a/configure.ac b/configure.ac index 4e430d82b8..361e8c120e 100644 --- a/configure.ac +++ b/configure.ac @@ -2863,6 +2863,28 @@ AC_ARG_ENABLE(nis, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" fi]) +AC_ARG_ENABLE(dbm, + AS_HELP_STRING([--disable-dbm], [disable DBM]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} dbm" + fi]) + +AC_ARG_ENABLE(gdbm, + AS_HELP_STRING([--disable-gdbm], [disable GDBM]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} gdbm" + fi]) + +AC_SUBST(BSDDB) +AC_ARG_ENABLE(bsddb, + AS_HELP_STRING([--disable-bsddb], [disable BerkeyleyDB]), + [ if test "$enableval" = "no"; then + BSDDB=no + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _bsddb" + else + BSDDB=yes + fi], [ BSDDB=yes ]) + AC_ARG_ENABLE(unicodedata, AS_HELP_STRING([--disable-unicodedata], [disable unicodedata]), [ if test "$enableval" = "no"; then -- 2.11.0 ================================================ FILE: package/python/0027-Add-an-option-to-disable-the-ssl-module.patch ================================================ From a0e56b96c3bfb04a5c8ecc0987cdd294d8ce116b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:30:22 +0100 Subject: [PATCH] Add an option to disable the ssl module Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 361e8c120e..8fe47d8c37 100644 --- a/configure.ac +++ b/configure.ac @@ -2863,6 +2863,12 @@ AC_ARG_ENABLE(nis, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" fi]) +AC_ARG_ENABLE(ssl, + AS_HELP_STRING([--disable-ssl], [disable SSL]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _ssl" + fi]) + AC_ARG_ENABLE(dbm, AS_HELP_STRING([--disable-dbm], [disable DBM]), [ if test "$enableval" = "no"; then -- 2.11.0 ================================================ FILE: package/python/0028-Add-an-option-to-disable-the-bz2-module.patch ================================================ From d1236c6f4d8d893709fa36f751af47b8ad9055c1 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:30:33 +0100 Subject: [PATCH] Add an option to disable the bz2 module Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 8fe47d8c37..85df7b1478 100644 --- a/configure.ac +++ b/configure.ac @@ -2869,6 +2869,12 @@ AC_ARG_ENABLE(ssl, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _ssl" fi]) +AC_ARG_ENABLE(bz2, + AS_HELP_STRING([--disable-bz2], [disable BZIP2]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} bz2" + fi]) + AC_ARG_ENABLE(dbm, AS_HELP_STRING([--disable-dbm], [disable DBM]), [ if test "$enableval" = "no"; then -- 2.11.0 ================================================ FILE: package/python/0029-Add-an-option-to-disable-the-zlib-module.patch ================================================ From a9c7314e069036f74b503dfaef261e5f45477b7e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:30:45 +0100 Subject: [PATCH] Add an option to disable the zlib module Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 85df7b1478..3848b16b9f 100644 --- a/configure.ac +++ b/configure.ac @@ -2875,6 +2875,12 @@ AC_ARG_ENABLE(bz2, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} bz2" fi]) +AC_ARG_ENABLE(zlib, + AS_HELP_STRING([--disable-zlib], [disable ZLIB]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} zlib" + fi]) + AC_ARG_ENABLE(dbm, AS_HELP_STRING([--disable-dbm], [disable DBM]), [ if test "$enableval" = "no"; then -- 2.11.0 ================================================ FILE: package/python/0030-Do-not-install-the-idle-editor.patch ================================================ From e789487c783f75c17a8951bd5324c86ceefde407 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:30:56 +0100 Subject: [PATCH] Do not install the idle editor IDLE is the Python IDE built with the tkinter GUI toolkit. Since it's highly unlikely to ever be useful in an embedded Linux system generated by Buildroot, this patch simply disables the installation of idle and the related Python modules. It saves 800 KB-900 KB of installed .pyc files. Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- Makefile.pre.in | 2 -- setup.py | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index a0473096c1..750057fb96 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1055,7 +1055,6 @@ LIBSUBDIRS= site-packages \ json \ logging csv importlib wsgiref \ ctypes ctypes/macholib \ - idlelib idlelib/Icons \ distutils distutils/command \ multiprocessing multiprocessing/dummy \ unittest \ @@ -1071,7 +1070,6 @@ TESTSUBDIRS = test test/audiodata test/capath test/data \ email/test email/test/data \ json/tests \ ctypes/test \ - idlelib/idle_test \ distutils/tests \ unittest/test diff --git a/setup.py b/setup.py index f439cbadc2..227187681e 100644 --- a/setup.py +++ b/setup.py @@ -2278,7 +2278,7 @@ def main(): import warnings warnings.filterwarnings("ignore",category=DeprecationWarning) - scripts = ['Tools/scripts/idle', 'Lib/smtpd.py'] + scripts = ['Lib/smtpd.py'] if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"): scripts += [ 'Tools/scripts/pydoc' ] if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"): -- 2.11.0 ================================================ FILE: package/python/0031-Add-an-option-to-disable-the-ossaudiodev-module.patch ================================================ From 4ab280b8a7626de2565cf4ef6cf08a5c7326574b Mon Sep 17 00:00:00 2001 From: Zoltan Gyarmati Date: Tue, 7 Mar 2017 22:31:22 +0100 Subject: [PATCH] Add an option to disable the ossaudiodev module Signed-off-by: Zoltan Gyarmati [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 3848b16b9f..6d19cdee95 100644 --- a/configure.ac +++ b/configure.ac @@ -2927,6 +2927,12 @@ if test "$CURSES" = "no"; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _curses _curses_panel" fi +AC_ARG_ENABLE(ossaudiodev, + AS_HELP_STRING([--disable-ossaudiodev], [disable OSSAUDIODEV]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ossaudiodev" + fi]) + AC_SUBST(PYDOC) AC_ARG_ENABLE(pydoc, -- 2.11.0 ================================================ FILE: package/python/0032-Add-option-to-disable-the-hashlib-module.patch ================================================ From 479bef8182c4f6b678a86820ccc06760ca60c286 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:33:02 +0100 Subject: [PATCH] Add option to disable the hashlib module Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 6d19cdee95..ddccc79c2c 100644 --- a/configure.ac +++ b/configure.ac @@ -2869,6 +2869,12 @@ AC_ARG_ENABLE(ssl, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _ssl" fi]) +AC_ARG_ENABLE(hashlib, + AS_HELP_STRING([--disable-hashlib], [disable hashlib]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _hashlib" + fi]) + AC_ARG_ENABLE(bz2, AS_HELP_STRING([--disable-bz2], [disable BZIP2]), [ if test "$enableval" = "no"; then -- 2.11.0 ================================================ FILE: package/python/0033-Add-an-option-to-disable-readline-module.patch ================================================ From abea92958b073dfbf0c78bcb31ce9cfc709c20ca Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 22:33:55 +0100 Subject: [PATCH] Add an option to disable readline module Signed-off-by: Thomas Petazzoni [Peter: update for 2.7.16] Signed-off-by: Peter Korsgaard --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index ddccc79c2c..dae266326e 100644 --- a/configure.ac +++ b/configure.ac @@ -2875,6 +2875,12 @@ AC_ARG_ENABLE(hashlib, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _hashlib" fi]) +AC_ARG_ENABLE(readline, + AS_HELP_STRING([--disable-readline], [disable readline]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} readline" + fi]) + AC_ARG_ENABLE(bz2, AS_HELP_STRING([--disable-bz2], [disable BZIP2]), [ if test "$enableval" = "no"; then -- 2.11.0 ================================================ FILE: package/python/0034-Override-system-locale-and-set-to-default-when-addin.patch ================================================ From d2bfa8805206db8c57c182094396d20a9d94bd8f Mon Sep 17 00:00:00 2001 From: Samuel Cabrero Date: Sat, 1 Apr 2017 09:31:52 +0200 Subject: [PATCH] Override system locale and set to default when adding gcc paths Forces the use of the default locale in the function add_gcc_paths, which is called when cross compiling to add the include and library paths. This is necessary because otherwise the gcc output is localized and the output parsing fails, which results in no paths added and detect_modules not able to find any system library (eg. libz, libssl, etc.) [Thomas: patch taken from https://bugs.python.org/issue23767.] Signed-off-by: Samuel Cabrero Signed-off-by: Thomas Petazzoni --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 8045a9b..c14f4ab 100644 --- a/setup.py +++ b/setup.py @@ -430,7 +430,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) - ret = os.system('%s -E -v - %s 1>/dev/null' % (gcc, tmpfile)) + ret = os.system('LC_ALL=C %s -E -v - %s 1>/dev/null' % (gcc, tmpfile)) is_gcc = False in_incdirs = False inc_dirs = [] -- 2.7.4 ================================================ FILE: package/python/Config.in ================================================ comment "python 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 config BR2_PACKAGE_PYTHON bool "python2.7 (deprecated)" depends on BR2_USE_WCHAR # uses fork() depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_THREADS # libffi depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBFFI help The python language interpreter. http://www.python.org/ if BR2_PACKAGE_PYTHON choice prompt "python module format to install" default BR2_PACKAGE_PYTHON_PYC_ONLY help Select Python module format to install on target (py, pyc or both) config BR2_PACKAGE_PYTHON_PY_ONLY bool ".py sources only" config BR2_PACKAGE_PYTHON_PYC_ONLY bool ".pyc compiled sources only" config BR2_PACKAGE_PYTHON_PY_PYC bool ".py sources and .pyc compiled" endchoice menu "core python modules" comment "The following modules are unusual or require extra libraries" config BR2_PACKAGE_PYTHON_2TO3 bool "2to3 module" help code translation from python 2 to 3 config BR2_PACKAGE_PYTHON_BZIP2 bool "bzip2 module" select BR2_PACKAGE_BZIP2 help bzip2 module for Python config BR2_PACKAGE_PYTHON_BSDDB bool "bsddb module" select BR2_PACKAGE_BERKELEYDB help bsddb module for Python. config BR2_PACKAGE_PYTHON_CODECSCJK bool "codecscjk module" help Chinese/Japanese/Korean codecs module for Python (large). config BR2_PACKAGE_PYTHON_CURSES bool "curses module" select BR2_PACKAGE_NCURSES help curses module for Python. config BR2_PACKAGE_PYTHON_OSSAUDIODEV bool "ossaudiodev module" help ossaudiodev module for Python. config BR2_PACKAGE_PYTHON_READLINE bool "readline" select BR2_PACKAGE_READLINE help readline module for Python (required for command-line editing in the Python shell). config BR2_PACKAGE_PYTHON_SSL bool "ssl" select BR2_PACKAGE_OPENSSL help _ssl module for Python (required for https in urllib etc). config BR2_PACKAGE_PYTHON_UNICODEDATA bool "unicodedata module" default y help Unicode character database (used by stringprep module) (large). if BR2_PACKAGE_PYTHON_UNICODEDATA choice prompt "Python unicode database format" default BR2_PACKAGE_PYTHON_UCS2 help Select Python unicode database format for target config BR2_PACKAGE_PYTHON_UCS2 bool "Universal Character Set 2-byte (UCS2)" config BR2_PACKAGE_PYTHON_UCS4 bool "Universal Character Set 4-byte (UCS4)" endchoice endif config BR2_PACKAGE_PYTHON_SQLITE bool "sqlite module" select BR2_PACKAGE_SQLITE help SQLite database support config BR2_PACKAGE_PYTHON_PYEXPAT bool "xml module" select BR2_PACKAGE_EXPAT help pyexpat and xml libraries for Python config BR2_PACKAGE_PYTHON_ZLIB bool "zlib module" select BR2_PACKAGE_ZLIB help zlib support in Python config BR2_PACKAGE_PYTHON_HASHLIB bool "hashlib module" select BR2_PACKAGE_OPENSSL help hashlib support in Python endmenu endif ================================================ FILE: package/python/Config.in.host ================================================ config BR2_PACKAGE_HOST_PYTHON bool "host python" help The python language interpreter. Host package. http://www.python.org/ if BR2_PACKAGE_HOST_PYTHON config BR2_PACKAGE_HOST_PYTHON_SSL bool "ssl" select BR2_PACKAGE_HOST_OPENSSL help _ssl module for host Python. endif ================================================ FILE: package/python/python.hash ================================================ # From https://www.python.org/downloads/release/python-2718/ md5 fd6cc8ec0a78c44036f825e739f36e5a Python-2.7.18.tar.xz # Locally calculated sha256 b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43 Python-2.7.18.tar.xz sha256 de4d1f2d2ad5ad0cfd1657a106476b31cb5db5ef9d1ff842b237c0c81f0c8a23 LICENSE ================================================ FILE: package/python/python.mk ================================================ ################################################################################ # # python # ################################################################################ PYTHON_VERSION_MAJOR = 2.7 PYTHON_VERSION = $(PYTHON_VERSION_MAJOR).18 PYTHON_SOURCE = Python-$(PYTHON_VERSION).tar.xz PYTHON_SITE = https://python.org/ftp/python/$(PYTHON_VERSION) PYTHON_LICENSE = Python-2.0, others PYTHON_LICENSE_FILES = LICENSE PYTHON_CPE_ID_VENDOR = python PYTHON_LIBTOOL_PATCH = NO # Python needs itself to be built, so in order to cross-compile # Python, we need to build a host Python first. This host Python is # also installed in $(HOST_DIR), as it is needed when cross-compiling # third-party Python modules. HOST_PYTHON_CONF_OPTS += \ --enable-static \ --without-cxx-main \ --disable-sqlite3 \ --disable-tk \ --with-expat=system \ --with-system-ffi \ --disable-curses \ --disable-codecs-cjk \ --disable-nis \ --enable-unicodedata \ --disable-dbm \ --disable-gdbm \ --disable-bsddb \ --disable-test-modules \ --disable-bz2 \ --disable-ossaudiodev \ --disable-pyo-build # Make sure that LD_LIBRARY_PATH overrides -rpath. # This is needed because libpython may be installed at the same time that # python is called. # Make python believe we don't have 'hg' and 'svn', so that it doesn't # try to communicate over the network during the build. HOST_PYTHON_CONF_ENV += \ LDFLAGS="$(HOST_LDFLAGS) -Wl,--enable-new-dtags" \ ac_cv_prog_HAS_HG=/bin/false \ ac_cv_prog_SVNVERSION=/bin/false # Building host python in parallel sometimes triggers a "Bus error" # during the execution of "./python setup.py build" in the # installation step. It is probably due to the installation of a # shared library taking place in parallel to the execution of # ./python, causing spurious Bus error. Building host-python with # MAKE1 has shown to workaround the problem. HOST_PYTHON_MAKE = $(MAKE1) PYTHON_DEPENDENCIES = host-python libffi $(TARGET_NLS_DEPENDENCIES) HOST_PYTHON_DEPENDENCIES = host-expat host-libffi host-zlib ifeq ($(BR2_PACKAGE_HOST_PYTHON_SSL),y) HOST_PYTHON_DEPENDENCIES += host-openssl else HOST_PYTHON_CONF_OPTS += --disable-ssl endif PYTHON_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_PYTHON_READLINE),y) PYTHON_DEPENDENCIES += readline else PYTHON_CONF_OPTS += --disable-readline endif ifeq ($(BR2_PACKAGE_PYTHON_CURSES),y) PYTHON_DEPENDENCIES += ncurses else PYTHON_CONF_OPTS += --disable-curses endif ifeq ($(BR2_PACKAGE_PYTHON_PYEXPAT),y) PYTHON_DEPENDENCIES += expat PYTHON_CONF_OPTS += --with-expat=system else PYTHON_CONF_OPTS += --with-expat=none endif ifeq ($(BR2_PACKAGE_PYTHON_BSDDB),y) PYTHON_DEPENDENCIES += berkeleydb else PYTHON_CONF_OPTS += --disable-bsddb endif ifeq ($(BR2_PACKAGE_PYTHON_SQLITE),y) PYTHON_DEPENDENCIES += sqlite else PYTHON_CONF_OPTS += --disable-sqlite3 endif ifeq ($(BR2_PACKAGE_PYTHON_SSL),y) PYTHON_DEPENDENCIES += openssl else PYTHON_CONF_OPTS += --disable-ssl endif ifneq ($(BR2_PACKAGE_PYTHON_CODECSCJK),y) PYTHON_CONF_OPTS += --disable-codecs-cjk endif ifneq ($(BR2_PACKAGE_PYTHON_UNICODEDATA),y) PYTHON_CONF_OPTS += --disable-unicodedata endif # Default is UCS2 w/o a conf opt ifeq ($(BR2_PACKAGE_PYTHON_UCS4),y) # host-python must have the same UCS2/4 configuration as the target # python HOST_PYTHON_CONF_OPTS += --enable-unicode=ucs4 PYTHON_CONF_OPTS += --enable-unicode=ucs4 endif ifeq ($(BR2_PACKAGE_PYTHON_2TO3),y) PYTHON_CONF_OPTS += --enable-lib2to3 else PYTHON_CONF_OPTS += --disable-lib2to3 endif ifeq ($(BR2_PACKAGE_PYTHON_BZIP2),y) PYTHON_DEPENDENCIES += bzip2 else PYTHON_CONF_OPTS += --disable-bz2 endif ifeq ($(BR2_PACKAGE_PYTHON_ZLIB),y) PYTHON_DEPENDENCIES += zlib else PYTHON_CONF_OPTS += --disable-zlib endif ifeq ($(BR2_PACKAGE_PYTHON_HASHLIB),y) PYTHON_DEPENDENCIES += openssl else PYTHON_CONF_OPTS += --disable-hashlib endif ifeq ($(BR2_PACKAGE_PYTHON_OSSAUDIODEV),y) PYTHON_CONF_OPTS += --enable-ossaudiodev else PYTHON_CONF_OPTS += --disable-ossaudiodev endif # Make python believe we don't have 'hg' and 'svn', so that it doesn't # try to communicate over the network during the build. PYTHON_CONF_ENV += \ ac_cv_have_long_long_format=yes \ ac_cv_file__dev_ptmx=yes \ ac_cv_file__dev_ptc=yes \ ac_cv_working_tzset=yes \ ac_cv_prog_HAS_HG=/bin/false \ ac_cv_prog_SVNVERSION=/bin/false # GCC is always compliant with IEEE754 ifeq ($(BR2_ENDIAN),"LITTLE") PYTHON_CONF_ENV += ac_cv_little_endian_double=yes else PYTHON_CONF_ENV += ac_cv_big_endian_double=yes endif PYTHON_CONF_OPTS += \ --without-cxx-main \ --without-doc-strings \ --with-system-ffi \ --disable-pydoc \ --disable-test-modules \ --disable-gdbm \ --disable-tk \ --disable-nis \ --disable-dbm \ --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 PYTHON_TOUCH_GRAMMAR_FILES touch $(@D)/Include/graminit.h $(@D)/Python/graminit.c endef PYTHON_POST_PATCH_HOOKS += PYTHON_TOUCH_GRAMMAR_FILES # # Remove useless files. In the config/ directory, only the Makefile # and the pyconfig.h files are needed at runtime. # # idle & smtpd.py have bad shebangs and are mostly samples # define PYTHON_REMOVE_USELESS_FILES rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON_VERSION_MAJOR)-config rm -f $(TARGET_DIR)/usr/bin/python2-config rm -f $(TARGET_DIR)/usr/bin/python-config rm -f $(TARGET_DIR)/usr/bin/smtpd.py rm -f $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/distutils/command/wininst*.exe for i in `find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/config/ \ -type f -not -name pyconfig.h -a -not -name Makefile` ; do \ rm -f $$i ; \ done endef PYTHON_POST_INSTALL_TARGET_HOOKS += PYTHON_REMOVE_USELESS_FILES # # Make sure libpython gets stripped out on target # define PYTHON_ENSURE_LIBPYTHON_STRIPPED chmod u+w $(TARGET_DIR)/usr/lib/libpython$(PYTHON_VERSION_MAJOR)*.so endef PYTHON_POST_INSTALL_TARGET_HOOKS += PYTHON_ENSURE_LIBPYTHON_STRIPPED # Always install the python symlink in the target tree define PYTHON_INSTALL_TARGET_PYTHON_SYMLINK ln -sf python2 $(TARGET_DIR)/usr/bin/python endef PYTHON_POST_INSTALL_TARGET_HOOKS += PYTHON_INSTALL_TARGET_PYTHON_SYMLINK # Always install the python-config symlink in the staging tree define PYTHON_INSTALL_STAGING_PYTHON_CONFIG_SYMLINK ln -sf python2-config $(STAGING_DIR)/usr/bin/python-config endef PYTHON_POST_INSTALL_STAGING_HOOKS += PYTHON_INSTALL_STAGING_PYTHON_CONFIG_SYMLINK PYTHON_AUTORECONF = YES # Some packages may have build scripts requiring python2. # Only install the python symlink in the host tree if python3 is not enabled # for the target, otherwise the default python program may be missing. ifneq ($(BR2_PACKAGE_PYTHON3),y) define HOST_PYTHON_INSTALL_PYTHON_SYMLINK ln -sf python2 $(HOST_DIR)/bin/python ln -sf python2-config $(HOST_DIR)/bin/python-config endef HOST_PYTHON_POST_INSTALL_HOOKS += HOST_PYTHON_INSTALL_PYTHON_SYMLINK endif # Provided to other packages PYTHON_PATH = $(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/sysconfigdata/ $(eval $(autotools-package)) $(eval $(host-autotools-package)) ifeq ($(BR2_REPRODUCIBLE),y) define PYTHON_FIX_TIME find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR) -name '*.py' -print0 | \ xargs -0 --no-run-if-empty touch -d @$(SOURCE_DATE_EPOCH) endef endif define PYTHON_CREATE_PYC_FILES $(PYTHON_FIX_TIME) PYTHONPATH="$(PYTHON_PATH)" \ $(HOST_DIR)/bin/python$(PYTHON_VERSION_MAJOR) \ $(TOPDIR)/support/scripts/pycompile.py \ $(if $(VERBOSE),--verbose) \ --strip-root $(TARGET_DIR) \ $(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_REMOVE_PY_FILES find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR) -name '*.py' \ $(if $(strip $(KEEP_PYTHON_PY_FILES)),-not \( $(call finddirclauses,$(TARGET_DIR),$(KEEP_PYTHON_PY_FILES)) \) ) \ -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_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 # 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 ================================================ FILE: package/python-aenum/Config.in ================================================ config BR2_PACKAGE_PYTHON_AENUM bool "python-aenum" help Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants. https://pypi.org/project/aenum ================================================ FILE: package/python-aenum/python-aenum.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aenum/json md5 6f30144abd4d156f22f8a49d81c496df aenum-3.1.0.tar.gz sha256 87f0e9ef4f828578ab06af30e4d7944043bf4ecd3f4b7bd1cbe37e2173cde94a aenum-3.1.0.tar.gz # Locally computed sha256 checksums sha256 0db837e38002017b352666c83c8d3216ee5b9b2229375eb2cf4487f8c24e1f8c aenum/LICENSE ================================================ FILE: package/python-aenum/python-aenum.mk ================================================ ################################################################################ # # python-aenum # ################################################################################ PYTHON_AENUM_VERSION = 3.1.0 PYTHON_AENUM_SOURCE = aenum-$(PYTHON_AENUM_VERSION).tar.gz PYTHON_AENUM_SITE = https://files.pythonhosted.org/packages/ae/25/00b2949186e76a4c9732e33221274964fecf5c88178cbe5a14a80cfc04e8 PYTHON_AENUM_SETUP_TYPE = setuptools PYTHON_AENUM_LICENSE = BSD-3-Clause PYTHON_AENUM_LICENSE_FILES = aenum/LICENSE ifeq ($(BR2_PACKAGE_PYTHON),y) # only needed/valid for python 3.x define PYTHON_AENUM_RM_PY3_FILE rm -f $(TARGET_DIR)/usr/lib/python*/site-packages/aenum/test_v3.py endef PYTHON_AENUM_POST_INSTALL_TARGET_HOOKS += PYTHON_AENUM_RM_PY3_FILE endif $(eval $(python-package)) ================================================ FILE: package/python-aioblescan/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOBLESCAN bool "python-aioblescan" depends on BR2_PACKAGE_PYTHON3 help Scanning Bluetooth for advertised info with asyncio. https://github.com/frawau/aioblescan ================================================ FILE: package/python-aioblescan/python-aioblescan.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aioblescan/json md5 f59934c040a817192fcd3e713633cf20 aioblescan-0.2.8.tar.gz sha256 2b048f5fe6e85b18fe306bdb63307705f3d1139563d3187d751b8657065a5bd9 aioblescan-0.2.8.tar.gz # Locally computed sha256 checksums sha256 c2066cd44079e0c706234001af18cb6ad4b62fc68d0d08d29fdc7319916647e0 LICENSE.txt ================================================ FILE: package/python-aioblescan/python-aioblescan.mk ================================================ ################################################################################ # # python-aioblescan # ################################################################################ PYTHON_AIOBLESCAN_VERSION = 0.2.8 PYTHON_AIOBLESCAN_SOURCE = aioblescan-$(PYTHON_AIOBLESCAN_VERSION).tar.gz PYTHON_AIOBLESCAN_SITE = https://files.pythonhosted.org/packages/d2/10/b8b496903f33935c99f3602200d44ccc0b0a57b87e5fa65b89466c1b1f31 PYTHON_AIOBLESCAN_SETUP_TYPE = setuptools PYTHON_AIOBLESCAN_LICENSE = MIT PYTHON_AIOBLESCAN_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-aiocoap/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOCOAP bool "python-aiocoap" depends on BR2_PACKAGE_PYTHON3 help Python CoAP library. https://github.com/chrysn/aiocoap ================================================ FILE: package/python-aiocoap/python-aiocoap.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiocoap/json md5 c5809dfb02be8784ec17897380009052 aiocoap-0.4.1.tar.gz sha256 c47c9d19a98699f27707186871b7c84f4a7016fe4fbb5bd300f809ae456f8a55 aiocoap-0.4.1.tar.gz # Locally computed sha256 checksums sha256 2bb211d412a6bfa4b2a9cf01123c7fe90e5e6185938896e23ab07b84f8494180 LICENSE ================================================ FILE: package/python-aiocoap/python-aiocoap.mk ================================================ ################################################################################ # # python-aiocoap # ################################################################################ PYTHON_AIOCOAP_VERSION = 0.4.1 PYTHON_AIOCOAP_SOURCE = aiocoap-$(PYTHON_AIOCOAP_VERSION).tar.gz PYTHON_AIOCOAP_SITE = https://files.pythonhosted.org/packages/67/1c/6d6764010a4779d61bc7241afa663b368261c72af20555b26efc875d4276 PYTHON_AIOCOAP_SETUP_TYPE = setuptools PYTHON_AIOCOAP_LICENSE = MIT PYTHON_AIOCOAP_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aioconsole/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOCONSOLE bool "python-aioconsole" depends on BR2_PACKAGE_PYTHON3 help Asynchronous console and interfaces for asyncio. https://github.com/vxgmichel/aioconsole ================================================ FILE: package/python-aioconsole/python-aioconsole.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aioconsole/json md5 b8cbcb6e00d8e535256526dfe4f27db3 aioconsole-0.3.2.tar.gz sha256 9355b36d41d5fbdd3dbb01510deb2b985b508b2ebcd5b8bd85af61a707e2f6c8 aioconsole-0.3.2.tar.gz # Locally computed sha256 checksums sha256 fe3eea6c599e23a00c08c5f5cb2320c30adc8f8687db5fcec9b79a662c53ff6b LICENSE ================================================ FILE: package/python-aioconsole/python-aioconsole.mk ================================================ ################################################################################ # # python-aioconsole # ################################################################################ PYTHON_AIOCONSOLE_VERSION = 0.3.2 PYTHON_AIOCONSOLE_SOURCE = aioconsole-$(PYTHON_AIOCONSOLE_VERSION).tar.gz PYTHON_AIOCONSOLE_SITE = https://files.pythonhosted.org/packages/7a/b2/747ab3cb965596cd84c5159941613d901d8771acad3c51c4f5da362aa9f0 PYTHON_AIOCONSOLE_SETUP_TYPE = setuptools PYTHON_AIOCONSOLE_LICENSE = GPL-3.0 PYTHON_AIOCONSOLE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiodns/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIODNS bool "python-aiodns" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_PYCARES # runtime help Simple DNS resolver for asyncio. http://github.com/saghul/aiodns ================================================ FILE: package/python-aiodns/python-aiodns.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiodns/json md5 181e11935c78965de2b2b7b0e5efba8d aiodns-3.0.0.tar.gz sha256 946bdfabe743fceeeb093c8a010f5d1645f708a241be849e17edfb0e49e08cd6 aiodns-3.0.0.tar.gz # Locally computed sha256 checksums sha256 eb0455d35129425ed399883cd710923de3e246a510e2eb84d9f00032d0bbec97 LICENSE ================================================ FILE: package/python-aiodns/python-aiodns.mk ================================================ ################################################################################ # # python-aiodns # ################################################################################ PYTHON_AIODNS_VERSION = 3.0.0 PYTHON_AIODNS_SOURCE = aiodns-$(PYTHON_AIODNS_VERSION).tar.gz PYTHON_AIODNS_SITE = https://files.pythonhosted.org/packages/27/79/df72e25df0fdd9bf5a5ab068539731d27c5f2ae5654621ae0c92ceca94cf PYTHON_AIODNS_SETUP_TYPE = setuptools PYTHON_AIODNS_LICENSE = MIT PYTHON_AIODNS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiofiles/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOFILES bool "python-aiofiles" depends on BR2_PACKAGE_PYTHON3 help aiofiles aims to handle local disk files in asyncio applications. https://pypi.org/project/aiofiles ================================================ FILE: package/python-aiofiles/python-aiofiles.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiofiles/json md5 a2dd24e2ca8d7b7e7dbacd6381da748a aiofiles-0.7.0.tar.gz sha256 a1c4fc9b2ff81568c83e21392a82f344ea9d23da906e4f6a52662764545e19d4 aiofiles-0.7.0.tar.gz # Locally computed sha256 checksums sha256 cb5e8e7e5f4a3988e1063c142c60dc2df75605f4c46515e776e3aca6df976e14 LICENSE ================================================ FILE: package/python-aiofiles/python-aiofiles.mk ================================================ ################################################################################ # # python-aiofiles # ################################################################################ PYTHON_AIOFILES_VERSION = 0.7.0 PYTHON_AIOFILES_SOURCE = aiofiles-$(PYTHON_AIOFILES_VERSION).tar.gz PYTHON_AIOFILES_SITE = https://files.pythonhosted.org/packages/06/f0/af90f3fb4066b0707b6a5af3ffd5fd9b3809bbb52f0153a3c7550e594de3 PYTHON_AIOFILES_SETUP_TYPE = setuptools PYTHON_AIOFILES_LICENSE = Apache-2.0 PYTHON_AIOFILES_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiohttp/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOHTTP bool "python-aiohttp" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIODNS # runtime select BR2_PACKAGE_PYTHON_ASYNC_TIMEOUT # runtime select BR2_PACKAGE_PYTHON_ATTRS # runtime select BR2_PACKAGE_PYTHON_CCHARDET if BR2_INSTALL_LIBSTDCPP # runtime select BR2_PACKAGE_PYTHON_CHARDET if !BR2_INSTALL_LIBSTDCPP # runtime select BR2_PACKAGE_PYTHON_MULTIDICT # runtime select BR2_PACKAGE_PYTHON_TYPING_EXTENSIONS # runtime select BR2_PACKAGE_PYTHON_YARL # runtime select BR2_PACKAGE_PYTHON3_ZLIB # runtime help Async http client/server framework (asyncio). https://github.com/aio-libs/aiohttp ================================================ FILE: package/python-aiohttp/python-aiohttp.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiohttp/json md5 faf7726dc65a940272874c0f441e8ec6 aiohttp-3.8.1.tar.gz sha256 fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578 aiohttp-3.8.1.tar.gz # Locally computed sha256 checksums sha256 383c70c090b60ae81e035fe4fafed689b45c4421cd3bc355f1bd41ac208ccf3f LICENSE.txt ================================================ FILE: package/python-aiohttp/python-aiohttp.mk ================================================ ################################################################################ # # python-aiohttp # ################################################################################ PYTHON_AIOHTTP_VERSION = 3.8.1 PYTHON_AIOHTTP_SOURCE = aiohttp-$(PYTHON_AIOHTTP_VERSION).tar.gz PYTHON_AIOHTTP_SITE = https://files.pythonhosted.org/packages/5a/86/5f63de7a202550269a617a5d57859a2961f3396ecd1739a70b92224766bc PYTHON_AIOHTTP_SETUP_TYPE = setuptools PYTHON_AIOHTTP_LICENSE = Apache-2.0 PYTHON_AIOHTTP_LICENSE_FILES = LICENSE.txt PYTHON_AIOHTTP_CPE_ID_VENDOR = aiohttp_project PYTHON_AIOHTTP_CPE_ID_PRODUCT = aiohttp PYTHON_AIOHTTP_POST_EXTRACT_HOOKS += PYTHON_AIOHTTP_REPLACE_VERSION define PYTHON_AIOHTTP_REPLACE_VERSION sed -i "s/attr: aiohttp.__version__/$(PYTHON_AIOHTTP_VERSION)/" $(@D)/setup.cfg endef $(eval $(python-package)) ================================================ FILE: package/python-aiohttp-apispec/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOHTTP_APISPEC bool "python-aiohttp-apispec" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIOHTTP select BR2_PACKAGE_PYTHON_APISPEC help Build and document REST APIs with aiohttp and apispec. https://github.com/maximdanilchenko/aiohttp-apispec ================================================ FILE: package/python-aiohttp-apispec/python-aiohttp-apispec.hash ================================================ sha256 bfcd8de7e3ca3a69abc227e238f88af0ee4b580b506616265634adc8abe274cd aiohttp-apispec-1.1.2.tar.gz ================================================ FILE: package/python-aiohttp-apispec/python-aiohttp-apispec.mk ================================================ ################################################################################ # # python-aiohttp-apispec # ################################################################################ PYTHON_AIOHTTP_APISPEC_VERSION = 1.1.2 PYTHON_AIOHTTP_APISPEC_SOURCE = aiohttp-apispec-$(PYTHON_AIOHTTP_APISPEC_VERSION).tar.gz PYTHON_AIOHTTP_APISPEC_SITE = https://files.pythonhosted.org/packages/8e/b1/592284bf8c1384c3bbb57f2d057e681c6cf0c426f21bd55201bf3d877866 PYTHON_AIOHTTP_APISPEC_SETUP_TYPE = setuptools PYTHON_AIOHTTP_APISPEC_LICENSE = Apache-2.0 PYTHON_AIOHTTP_APISPEC_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-aiohttp-cors/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOHTTP_CORS bool "python-aiohttp-cors" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIOHTTP # runtime help CORS support for aiohttp. https://github.com/aio-libs/aiohttp-cors ================================================ FILE: package/python-aiohttp-cors/python-aiohttp-cors.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiohttp_cors/json md5 de3940a901b269be82c8bd9f28d53ff0 aiohttp-cors-0.7.0.tar.gz sha256 4d39c6d7100fd9764ed1caf8cebf0eb01bf5e3f24e2e073fda6234bc48b19f5d aiohttp-cors-0.7.0.tar.gz # Locally computed sha256 checksums sha256 86cb2262ff825ce1c8b8fb9ea9f5174318badc3912639b9275fc25d0e305c556 LICENSE ================================================ FILE: package/python-aiohttp-cors/python-aiohttp-cors.mk ================================================ ################################################################################ # # python-aiohttp-cors # ################################################################################ PYTHON_AIOHTTP_CORS_VERSION = 0.7.0 PYTHON_AIOHTTP_CORS_SOURCE = aiohttp-cors-$(PYTHON_AIOHTTP_CORS_VERSION).tar.gz PYTHON_AIOHTTP_CORS_SITE = https://files.pythonhosted.org/packages/44/9e/6cdce7c3f346d8fd487adf68761728ad8cd5fbc296a7b07b92518350d31f PYTHON_AIOHTTP_CORS_SETUP_TYPE = setuptools PYTHON_AIOHTTP_CORS_LICENSE = Apache-2.0 PYTHON_AIOHTTP_CORS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiohttp-debugtoolbar/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOHTTP_DEBUGTOOLBAR bool "python-aiohttp-debugtoolbar" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIOHTTP # runtime select BR2_PACKAGE_PYTHON_AIOHTTP_JINJA2 # runtime help debugtoolbar for aiohttp. https://github.com/aio-libs/aiohttp_debugtoolbar ================================================ FILE: package/python-aiohttp-debugtoolbar/python-aiohttp-debugtoolbar.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiohttp_debugtoolbar/json md5 496734057cb413d7a49a52a817802dbb aiohttp-debugtoolbar-0.6.0.tar.gz sha256 ec231661133b40136608d39dfb688e7ea0c3d47b6ae6dee52d5bf24ceb9e4d45 aiohttp-debugtoolbar-0.6.0.tar.gz # Locally computed sha256 checksums sha256 94d638be2cb4f186cc62bb567455837757547c15f1b350863aaf05a38843b542 LICENSE ================================================ FILE: package/python-aiohttp-debugtoolbar/python-aiohttp-debugtoolbar.mk ================================================ ################################################################################ # # python-aiohttp-debugtoolbar # ################################################################################ PYTHON_AIOHTTP_DEBUGTOOLBAR_VERSION = 0.6.0 PYTHON_AIOHTTP_DEBUGTOOLBAR_SOURCE = aiohttp-debugtoolbar-$(PYTHON_AIOHTTP_DEBUGTOOLBAR_VERSION).tar.gz PYTHON_AIOHTTP_DEBUGTOOLBAR_SITE = https://files.pythonhosted.org/packages/3f/dd/5121417dfbeb4661673afa5c8708f1539889d0e54b1509a6fdf66705efc5 PYTHON_AIOHTTP_DEBUGTOOLBAR_SETUP_TYPE = setuptools PYTHON_AIOHTTP_DEBUGTOOLBAR_LICENSE = Apache-2.0 PYTHON_AIOHTTP_DEBUGTOOLBAR_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiohttp-jinja2/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOHTTP_JINJA2 bool "python-aiohttp-jinja2" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIOHTTP # runtime select BR2_PACKAGE_PYTHON_JINJA2 # runtime help Jinja2 template renderer for aiohttp.web (http server for asyncio). https://github.com/aio-libs/aiohttp_jinja2/ ================================================ FILE: package/python-aiohttp-jinja2/python-aiohttp-jinja2.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiohttp-jinja2/json md5 50f74689fd60a5bc0b0a74545277e9bc aiohttp-jinja2-1.5.tar.gz sha256 7c3ba5eac060b691f4e50534af2d79fca2a75712ebd2b25e6fcb1295859f910b aiohttp-jinja2-1.5.tar.gz # Locally computed sha256 checksums sha256 d9d867affaeac220a60381cc544681dcd37c668ed6ea5ddbf9948617f828889a LICENSE ================================================ FILE: package/python-aiohttp-jinja2/python-aiohttp-jinja2.mk ================================================ ################################################################################ # # python-aiohttp-jinja2 # ################################################################################ PYTHON_AIOHTTP_JINJA2_VERSION = 1.5 PYTHON_AIOHTTP_JINJA2_SOURCE = aiohttp-jinja2-$(PYTHON_AIOHTTP_JINJA2_VERSION).tar.gz PYTHON_AIOHTTP_JINJA2_SITE = https://files.pythonhosted.org/packages/15/d7/8bdbdb65e2926de332d3c430839d655db61d30a7b5a4a9b2edafbeb3aa20 PYTHON_AIOHTTP_JINJA2_SETUP_TYPE = setuptools PYTHON_AIOHTTP_JINJA2_LICENSE = Apache-2.0 PYTHON_AIOHTTP_JINJA2_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiohttp-mako/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOHTTP_MAKO bool "python-aiohttp-mako" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIOHTTP # runtime select BR2_PACKAGE_PYTHON_MAKO # runtime help mako template renderer for aiohttp.web (http server for asyncio). https://github.com/aio-libs/aiohttp-mako/ ================================================ FILE: package/python-aiohttp-mako/python-aiohttp-mako.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiohttp-mako/json md5 c0f2da2851d0b6e819b5c882f700bb11 aiohttp-mako-0.4.0.tar.gz sha256 f10bdee54589b6567e8a0339db582276fdaaa198764541d2f9741f1d3836312c aiohttp-mako-0.4.0.tar.gz # Locally computed sha256 checksums sha256 b81fea0e0d4cda42faf00466cabe7b9e2a0cc3a0ffbf20ae3773c18e077c7c52 LICENSE ================================================ FILE: package/python-aiohttp-mako/python-aiohttp-mako.mk ================================================ ################################################################################ # # python-aiohttp-mako # ################################################################################ PYTHON_AIOHTTP_MAKO_VERSION = 0.4.0 PYTHON_AIOHTTP_MAKO_SOURCE = aiohttp-mako-$(PYTHON_AIOHTTP_MAKO_VERSION).tar.gz PYTHON_AIOHTTP_MAKO_SITE = https://files.pythonhosted.org/packages/f9/8e/d7c0ea2c74e8102a94021e150b622d274fdef22ebd1f0c9a546b21458931 PYTHON_AIOHTTP_MAKO_SETUP_TYPE = setuptools PYTHON_AIOHTTP_MAKO_LICENSE = Apache-2.0 PYTHON_AIOHTTP_MAKO_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiohttp-remotes/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOHTTP_REMOTES bool "python-aiohttp-remotes" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIOHTTP # runtime help Control remote side information. https://github.com/aio-libs/aiohttp-remotes ================================================ FILE: package/python-aiohttp-remotes/python-aiohttp-remotes.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiohttp-remotes/json md5 e90fad4b7aa088207f831698fddd9eea aiohttp_remotes-1.0.0.tar.gz sha256 caec1681de70bac82daa676078d9b125758fb3952fdaa893a6b42bdd995562ef aiohttp_remotes-1.0.0.tar.gz # Locally computed sha256 checksums sha256 4e7d0edf250abe2a28027788b8c55a53d1b5c9ff961b8a00643c76aed637ba13 LICENSE ================================================ FILE: package/python-aiohttp-remotes/python-aiohttp-remotes.mk ================================================ ################################################################################ # # python-aiohttp-remotes # ################################################################################ PYTHON_AIOHTTP_REMOTES_VERSION = 1.0.0 PYTHON_AIOHTTP_REMOTES_SOURCE = aiohttp_remotes-$(PYTHON_AIOHTTP_REMOTES_VERSION).tar.gz PYTHON_AIOHTTP_REMOTES_SITE = https://files.pythonhosted.org/packages/40/b6/1178bd1e26e88f9f29b7d1bbfae7b38d39ec9cf787d4685f83ade2e7aa7f PYTHON_AIOHTTP_REMOTES_SETUP_TYPE = distutils PYTHON_AIOHTTP_REMOTES_LICENSE = MIT PYTHON_AIOHTTP_REMOTES_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiohttp-security/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOHTTP_SECURITY bool "python-aiohttp-security" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIOHTTP # runtime help Security for aiohttp.web. https://github.com/aio-libs/aiohttp_security/ ================================================ FILE: package/python-aiohttp-security/python-aiohttp-security.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiohttp-security/json md5 1624f982d7a779e6ed396ef2ed20acc7 aiohttp-security-0.4.0.tar.gz sha256 40d4bb150454e392c2dfa3620f6eab28e140e94cf0c2d3b4bf43aef653ec9405 aiohttp-security-0.4.0.tar.gz # Locally computed sha256 checksums sha256 a1cc8ff7210897d55d2552fa0792340f8e59720e0160b6918699d40f9a782b1c LICENSE ================================================ FILE: package/python-aiohttp-security/python-aiohttp-security.mk ================================================ ################################################################################ # # python-aiohttp-security # ################################################################################ PYTHON_AIOHTTP_SECURITY_VERSION = 0.4.0 PYTHON_AIOHTTP_SECURITY_SOURCE = aiohttp-security-$(PYTHON_AIOHTTP_SECURITY_VERSION).tar.gz PYTHON_AIOHTTP_SECURITY_SITE = https://files.pythonhosted.org/packages/36/01/d85be376b7c1773b3cb7849cd56dc7d38165664df7de2d3e20af507ef5bb PYTHON_AIOHTTP_SECURITY_SETUP_TYPE = setuptools PYTHON_AIOHTTP_SECURITY_LICENSE = Apache-2.0 PYTHON_AIOHTTP_SECURITY_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiohttp-session/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOHTTP_SESSION bool "python-aiohttp-session" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIOHTTP # runtime help Sessions for aiohttp.web. https://github.com/aio-libs/aiohttp_session/ ================================================ FILE: package/python-aiohttp-session/python-aiohttp-session.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiohttp-session/json md5 993ec277ece4765472d0edc0f6c0bba3 aiohttp-session-2.9.0.tar.gz sha256 959413468b84e30e7ca09719617cfb0000066a2e0f6c20062d043433e82aeb74 aiohttp-session-2.9.0.tar.gz # Locally computed sha256 checksums sha256 2a86817fedf0c52baaa47d7dd975073639dfaaebd37312bd279de54d7f841791 LICENSE ================================================ FILE: package/python-aiohttp-session/python-aiohttp-session.mk ================================================ ################################################################################ # # python-aiohttp-session # ################################################################################ PYTHON_AIOHTTP_SESSION_VERSION = 2.9.0 PYTHON_AIOHTTP_SESSION_SOURCE = aiohttp-session-$(PYTHON_AIOHTTP_SESSION_VERSION).tar.gz PYTHON_AIOHTTP_SESSION_SITE = https://files.pythonhosted.org/packages/f8/fe/53dfd35f5c7fcc7f2d0866cb29e722303e3fae7f749c1f3d4d11d361dc38 PYTHON_AIOHTTP_SESSION_SETUP_TYPE = setuptools PYTHON_AIOHTTP_SESSION_LICENSE = Apache-2.0 PYTHON_AIOHTTP_SESSION_LICENSE_FILES = LICENSE PYTHON_AIOHTTP_SESSION_CPE_ID_VENDOR = aiohttp-session_project PYTHON_AIOHTTP_SESSION_CPE_ID_PRODUCT = aiohttp-session $(eval $(python-package)) ================================================ FILE: package/python-aiohttp-sse/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOHTTP_SSE bool "python-aiohttp-sse" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIOHTTP # runtime help Server-sent events support for aiohttp. https://github.com/aio-libs/aiohttp_sse/ ================================================ FILE: package/python-aiohttp-sse/python-aiohttp-sse.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiohttp-sse/json md5 d2f394fb75f591045b2c94fc17c8533d aiohttp-sse-2.0.0.tar.gz sha256 547e1eaa129749f090d02b31956215edbcde74ce99721f5f0ac902a9ccb1202e aiohttp-sse-2.0.0.tar.gz # Locally computed sha256 checksums sha256 cb5e8e7e5f4a3988e1063c142c60dc2df75605f4c46515e776e3aca6df976e14 LICENSE ================================================ FILE: package/python-aiohttp-sse/python-aiohttp-sse.mk ================================================ ################################################################################ # # python-aiohttp-sse # ################################################################################ PYTHON_AIOHTTP_SSE_VERSION = 2.0.0 PYTHON_AIOHTTP_SSE_SOURCE = aiohttp-sse-$(PYTHON_AIOHTTP_SSE_VERSION).tar.gz PYTHON_AIOHTTP_SSE_SITE = https://files.pythonhosted.org/packages/2b/50/e127729f7df53c32c96b5c71932a7262cad40c83f1e19c218b068c816d51 PYTHON_AIOHTTP_SSE_SETUP_TYPE = setuptools PYTHON_AIOHTTP_SSE_LICENSE = Apache-2.0 PYTHON_AIOHTTP_SSE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiohttp-swagger/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOHTTP_SWAGGER bool "python-aiohttp-swagger" depends on BR2_PACKAGE_PYTHON3 help Swagger API Documentation builder for aiohttp server https://github.com/eLvErDe/aiohttp-swagger ================================================ FILE: package/python-aiohttp-swagger/python-aiohttp-swagger.mk ================================================ ################################################################################ # # python-aiohttp-swagger # ################################################################################ PYTHON_AIOHTTP_SWAGGER_VERSION = 39687734726ac72067f4e77209440757925dd6f2 PYTHON_AIOHTTP_SWAGGER_SITE = $(call github,eLvErDe,aiohttp-swagger,$(PYTHON_AIOHTTP_SWAGGER_VERSION)) PYTHON_AIOHTTP_SWAGGER_SETUP_TYPE = setuptools PYTHON_AIOHTTP_SWAGGER_LICENSE = Apache-2.0 PYTHON_AIOHTTP_SWAGGER_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-aiojobs/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOJOBS bool "python-aiojobs" depends on BR2_PACKAGE_PYTHON3 help Jobs scheduler for managing background task (asyncio). https://github.com/aio-libs/aiojobs ================================================ FILE: package/python-aiojobs/python-aiojobs.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiojobs/json md5 d537fefca047067255758d7cb9e39db8 aiojobs-0.3.0.tar.gz sha256 f6631d42dc4308f7d883abbd70d4e976f3fcc35a3ba1e8eae5d4af4940a1e0c3 aiojobs-0.3.0.tar.gz # Locally computed sha256 checksums sha256 b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1 LICENSE ================================================ FILE: package/python-aiojobs/python-aiojobs.mk ================================================ ################################################################################ # # python-aiojobs # ################################################################################ PYTHON_AIOJOBS_VERSION = 0.3.0 PYTHON_AIOJOBS_SOURCE = aiojobs-$(PYTHON_AIOJOBS_VERSION).tar.gz PYTHON_AIOJOBS_SITE = https://files.pythonhosted.org/packages/da/09/76d9c0d66d2fd1333835f110cd85f7456de7cf3f60425e3b283fba562731 PYTHON_AIOJOBS_SETUP_TYPE = distutils PYTHON_AIOJOBS_LICENSE = Apache-2.0 PYTHON_AIOJOBS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiologstash/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOLOGSTASH bool "python-aiologstash" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_ASYNC_TIMEOUT # runtime select BR2_PACKAGE_PYTHON_LOGSTASH # runtime help asyncio-compatible logstash logging handler. https://github.com/aio-libs/aiologstash ================================================ FILE: package/python-aiologstash/python-aiologstash.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiologstash/json md5 1e321c11b34477f780f31b2553557d69 aiologstash-2.0.0.tar.gz sha256 698522126ffd4e905cd5f52a08092a0a78096c8f0e28bc1e303369873da71f78 aiologstash-2.0.0.tar.gz # Locally computed sha256 checksums sha256 beddf3a80aaaa71ebd6765b13bc680bd0450bb81191249cc889539523f9404ec LICENSE ================================================ FILE: package/python-aiologstash/python-aiologstash.mk ================================================ ################################################################################ # # python-aiologstash # ################################################################################ PYTHON_AIOLOGSTASH_VERSION = 2.0.0 PYTHON_AIOLOGSTASH_SOURCE = aiologstash-$(PYTHON_AIOLOGSTASH_VERSION).tar.gz PYTHON_AIOLOGSTASH_SITE = https://files.pythonhosted.org/packages/1c/dc/382861d5d25ccc976d02118922598fc4547f74f3287793e270ed614d8176 PYTHON_AIOLOGSTASH_SETUP_TYPE = distutils PYTHON_AIOLOGSTASH_LICENSE = MIT PYTHON_AIOLOGSTASH_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiomonitor/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOMONITOR bool "python-aiomonitor" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_TERMINALTABLES # runtime select BR2_PACKAGE_PYTHON_AIOCONSOLE # runtime help aiomonitor adds monitor and python REPL capabilities for asyncio application. https://github.com/aio-libs/aiomonitor ================================================ FILE: package/python-aiomonitor/python-aiomonitor.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiomonitor/json md5 5f184e4b97ea161fc2d690aef604f997 aiomonitor-0.4.5.tar.gz sha256 6232c1ab14bf06cd7217845801c27340032f74e283bdaf32d01cdd3b7c673d0e aiomonitor-0.4.5.tar.gz # Locally computed sha256 checksums sha256 9b42fe3a288996988c552e387e7877be7525a1649e62086aedd6b32d3cb56365 LICENSE ================================================ FILE: package/python-aiomonitor/python-aiomonitor.mk ================================================ ################################################################################ # # python-aiomonitor # ################################################################################ PYTHON_AIOMONITOR_VERSION = 0.4.5 PYTHON_AIOMONITOR_SOURCE = aiomonitor-$(PYTHON_AIOMONITOR_VERSION).tar.gz PYTHON_AIOMONITOR_SITE = https://files.pythonhosted.org/packages/98/76/b62e9fbe267287527fb6f4b6774394d4f00650195774173bb0055a99ab3d PYTHON_AIOMONITOR_SETUP_TYPE = setuptools PYTHON_AIOMONITOR_LICENSE = Apache-2.0 PYTHON_AIOMONITOR_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aioprocessing/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOPROCESSING bool "python-aioprocessing" depends on BR2_PACKAGE_PYTHON3 help A Python 3.5+ library that integrates the multiprocessing module with asyncio. https://github.com/dano/aioprocessing ================================================ FILE: package/python-aioprocessing/python-aioprocessing.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aioprocessing/json md5 838b6aa073f1373bd42204f86b0e3196 aioprocessing-2.0.0.tar.gz sha256 469dfb746e8c4e0c727ba135cfabf9e034c554f6a73c27f908bfe3625dd74b9e aioprocessing-2.0.0.tar.gz # Locally computed sha256 checksums sha256 53c809e8f0b91a68a39477e5fbdf77fe2b74dd6a1647c2dd9b7b22fed135239e LICENSE.txt ================================================ FILE: package/python-aioprocessing/python-aioprocessing.mk ================================================ ################################################################################ # # python-aioprocessing # ################################################################################ PYTHON_AIOPROCESSING_VERSION = 2.0.0 PYTHON_AIOPROCESSING_SOURCE = aioprocessing-$(PYTHON_AIOPROCESSING_VERSION).tar.gz PYTHON_AIOPROCESSING_SITE = https://files.pythonhosted.org/packages/8e/3e/54266241660fb026bfd27f660d44cd81a4b7f8a145d8e2db010de12622a0 PYTHON_AIOPROCESSING_SETUP_TYPE = setuptools PYTHON_AIOPROCESSING_LICENSE = BSD-2-Clause PYTHON_AIOPROCESSING_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-aioredis/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOREDIS bool "python-aioredis" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_ASYNC_TIMEOUT # runtime select BR2_PACKAGE_PYTHON_HIREDIS # runtime help Provides simple and clear interface to Redis based on asyncio. https://github.com/aio-libs/aioredis ================================================ FILE: package/python-aioredis/python-aioredis.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aioredis/json md5 343a451df2381b9ea368e12b9075caa5 aioredis-2.0.0.tar.gz sha256 3a2de4b614e6a5f8e104238924294dc4e811aefbe17ddf52c04a93cbf06e67db aioredis-2.0.0.tar.gz # Locally computed sha256 checksums sha256 183b21f240e41af611c951d01d4f36793d470a82d5fd79efc21f25ae4cf68543 LICENSE ================================================ FILE: package/python-aioredis/python-aioredis.mk ================================================ ################################################################################ # # python-aioredis # ################################################################################ PYTHON_AIOREDIS_VERSION = 2.0.0 PYTHON_AIOREDIS_SOURCE = aioredis-$(PYTHON_AIOREDIS_VERSION).tar.gz PYTHON_AIOREDIS_SITE = https://files.pythonhosted.org/packages/92/60/a3cb5fadc254cc6e709ba14a02531870b02386b8c7bb147bf80a2be93f76 PYTHON_AIOREDIS_SETUP_TYPE = setuptools PYTHON_AIOREDIS_LICENSE = MIT PYTHON_AIOREDIS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiorwlock/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIORWLOCK bool "python-aiorwlock" depends on BR2_PACKAGE_PYTHON3 help Read write lock for asyncio. https://github.com/aio-libs/aiorwlock ================================================ FILE: package/python-aiorwlock/python-aiorwlock.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiorwlock/json md5 066260ea2c6798f6e18258d4430031bb aiorwlock-1.1.0.tar.gz sha256 2aaf1d1cc995abfd5b2f07ca0e9b5c23bd369517c75495a347eb5896bc307f29 aiorwlock-1.1.0.tar.gz # Locally computed sha256 checksums sha256 fa99ee9d7727194a9f8994c67d1948dc42e8e00ab809fd4a47acfae119d11403 LICENSE ================================================ FILE: package/python-aiorwlock/python-aiorwlock.mk ================================================ ################################################################################ # # python-aiorwlock # ################################################################################ PYTHON_AIORWLOCK_VERSION = 1.1.0 PYTHON_AIORWLOCK_SOURCE = aiorwlock-$(PYTHON_AIORWLOCK_VERSION).tar.gz PYTHON_AIORWLOCK_SITE = https://files.pythonhosted.org/packages/ca/e5/3221d49edb432024f6b1b7e9e36cad6363601973375667477f2130d5da7d PYTHON_AIORWLOCK_SETUP_TYPE = setuptools PYTHON_AIORWLOCK_LICENSE = Apache-2.0 PYTHON_AIORWLOCK_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-aiosignal/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOSIGNAL bool "python-aiosignal" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_FROZENLIST # runtime help aiosignal: a list of registered asynchronous callbacks. https://github.com/aio-libs/aiosignal ================================================ FILE: package/python-aiosignal/python-aiosignal.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiosignal/json md5 f3edf1b700b4fee6ea6ed375c3f6555c aiosignal-1.1.2.tar.gz sha256 15605698a0401075a03d36cea979e3c0e6cf8467a9e3b9047040514dd9e6f43b aiosignal-1.1.2.tar.gz # Locally computed sha256 checksums sha256 6fd5243e92dd7f98ec69c7ac377728e74905709ff527a5bf98d6d0263c04f5b6 LICENSE.txt ================================================ FILE: package/python-aiosignal/python-aiosignal.mk ================================================ ################################################################################ # # python-aiosignal # ################################################################################ PYTHON_AIOSIGNAL_VERSION = 1.1.2 PYTHON_AIOSIGNAL_SOURCE = aiosignal-$(PYTHON_AIOSIGNAL_VERSION).tar.gz PYTHON_AIOSIGNAL_SITE = https://files.pythonhosted.org/packages/ac/f7/c3df3b7eac6ea96175e0817b272b43b398d5ba589be09a50d1b758d5b852 PYTHON_AIOSIGNAL_SETUP_TYPE = setuptools PYTHON_AIOSIGNAL_LICENSE = Apache-2.0 PYTHON_AIOSIGNAL_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-aiozipkin/Config.in ================================================ config BR2_PACKAGE_PYTHON_AIOZIPKIN bool "python-aiozipkin" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIOHTTP # runtime help Distributed tracing instrumentation for asyncio application with zipkin. https://github.com/aio-libs/aiozipkin ================================================ FILE: package/python-aiozipkin/python-aiozipkin.hash ================================================ # md5, sha256 from https://pypi.org/pypi/aiozipkin/json md5 0fea8a200ab2a94fe9a2340a8cbf8512 aiozipkin-1.1.1.tar.gz sha256 9b82619d9ef309e72627a81ab3fda0c9b83e530844cf59f2e9a011e9a2a1293f aiozipkin-1.1.1.tar.gz # Locally computed sha256 checksums sha256 98397c300949e0cc1ddc68b0e48e67b10f2d0a4ffada4903d891a1315fe04156 LICENSE ================================================ FILE: package/python-aiozipkin/python-aiozipkin.mk ================================================ ################################################################################ # # python-aiozipkin # ################################################################################ PYTHON_AIOZIPKIN_VERSION = 1.1.1 PYTHON_AIOZIPKIN_SOURCE = aiozipkin-$(PYTHON_AIOZIPKIN_VERSION).tar.gz PYTHON_AIOZIPKIN_SITE = https://files.pythonhosted.org/packages/f2/fe/26a60a7c9e91c968eac5dacab2948ed931a676880a6878695ff281c72b8f PYTHON_AIOZIPKIN_SETUP_TYPE = setuptools PYTHON_AIOZIPKIN_LICENSE = Apache-2.0 PYTHON_AIOZIPKIN_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-alsaaudio/Config.in ================================================ comment "python-alsaaudio needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_PYTHON_ALSAAUDIO bool "python-alsaaudio" depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_PCM select BR2_PACKAGE_ALSA_LIB_MIXER help The PyAlsaAudio package contains bindings for the ALSA sound API. http://larsimmisch.github.io/pyalsaaudio/ ================================================ FILE: package/python-alsaaudio/python-alsaaudio.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyalsaaudio/json md5 b46f69561bc85fc52e698b2440ca251e pyalsaaudio-0.8.4.tar.gz sha256 84e8f8da544d7f4bd96479ce4a237600077984d9be1d7f16c1d9a492ecf50085 pyalsaaudio-0.8.4.tar.gz # Locally computed sha256 checksums sha256 ef6ba930f96986d78082e67c817ac617b9e833d60d5a0460f24c9c674a010935 LICENSE ================================================ FILE: package/python-alsaaudio/python-alsaaudio.mk ================================================ ################################################################################ # # python-alsaaudio # ################################################################################ PYTHON_ALSAAUDIO_VERSION = 0.8.4 PYTHON_ALSAAUDIO_SOURCE = pyalsaaudio-$(PYTHON_ALSAAUDIO_VERSION).tar.gz PYTHON_ALSAAUDIO_SITE = https://files.pythonhosted.org/packages/52/b6/44871791929d9d7e11325af0b7be711388dfeeab17147988f044a41a6d83 PYTHON_ALSAAUDIO_SETUP_TYPE = setuptools PYTHON_ALSAAUDIO_LICENSE = Python-2.0 PYTHON_ALSAAUDIO_LICENSE_FILES = LICENSE PYTHON_ALSAAUDIO_DEPENDENCIES = alsa-lib $(eval $(python-package)) ================================================ FILE: package/python-ansicolors/Config.in ================================================ config BR2_PACKAGE_PYTHON_ANSICOLORS bool "python-ansicolors" help ANSI colors for Python. http://github.com/jonathaneunice/colors/ ================================================ FILE: package/python-ansicolors/python-ansicolors.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ansicolors/json md5 9ca7e2396ffa2e20af023c6b83ab7b14 ansicolors-1.1.8.zip sha256 99f94f5e3348a0bcd43c82e5fc4414013ccc19d70bd939ad71e0133ce9c372e0 ansicolors-1.1.8.zip # Locally computed sha256 checksums sha256 71a13496c621f01b454f9aa54fa608a712f58eb253e6dd2c91027fe78340c773 LICENSE ================================================ FILE: package/python-ansicolors/python-ansicolors.mk ================================================ ################################################################################ # # python-ansicolors # ################################################################################ PYTHON_ANSICOLORS_VERSION = 1.1.8 PYTHON_ANSICOLORS_SOURCE = ansicolors-$(PYTHON_ANSICOLORS_VERSION).zip PYTHON_ANSICOLORS_SITE = https://files.pythonhosted.org/packages/76/31/7faed52088732704523c259e24c26ce6f2f33fbeff2ff59274560c27628e PYTHON_ANSICOLORS_SETUP_TYPE = setuptools PYTHON_ANSICOLORS_LICENSE = ISC PYTHON_ANSICOLORS_LICENSE_FILES = LICENSE define PYTHON_ANSICOLORS_EXTRACT_CMDS unzip $(PYTHON_ANSICOLORS_DL_DIR)/$(PYTHON_ANSICOLORS_SOURCE) -d $(@D) mv $(@D)/ansicolors-$(PYTHON_ANSICOLORS_VERSION)/* $(@D) $(RM) -r $(@D)/ansicolors-$(PYTHON_ANSICOLORS_VERSION) endef $(eval $(python-package)) ================================================ FILE: package/python-apispec/Config.in ================================================ config BR2_PACKAGE_PYTHON_APISPEC bool "python-apispec" depends on BR2_PACKAGE_PYTHON3 help A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification). https://github.com/marshmallow-code/apispec ================================================ FILE: package/python-apispec/python-apispec.hash ================================================ sha256 de3c6cb97b50e16a0123ddd449002f10a48fafdd789fcfe7771d60d36b700ea1 apispec-1.3.3.tar.gz ================================================ FILE: package/python-apispec/python-apispec.mk ================================================ ################################################################################ # # python-apispec # ################################################################################ PYTHON_APISPEC_VERSION = 1.3.3 PYTHON_APISPEC_SOURCE = apispec-$(PYTHON_APISPEC_VERSION).tar.gz PYTHON_APISPEC_SITE = https://files.pythonhosted.org/packages/99/9e/c2af08f8ddbfbba13d48d26db58b905734bfc1f42d38471551769aa59726 PYTHON_APISPEC_SETUP_TYPE = setuptools PYTHON_APISPEC_LICENSE = Apache-2.0 PYTHON_APISPEC_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-argh/Config.in ================================================ config BR2_PACKAGE_PYTHON_ARGH bool "python-argh" help An unobtrusive argparse wrapper with natural syntax. http://github.com/neithere/argh/ ================================================ FILE: package/python-argh/python-argh.hash ================================================ # md5 from https://pypi.python.org/pypi/argh/json md5 edda25f3f0164a963dd89c0e3c619973 argh-0.26.2.tar.gz # Locally computed sha256 e9535b8c84dc9571a48999094fda7f33e63c3f1b74f3e5f3ac0105a58405bb65 argh-0.26.2.tar.gz sha256 9c318783389a2e78735dc3d633e745e5648b826744521857045e84ed2e79ce2e README.rst ================================================ FILE: package/python-argh/python-argh.mk ================================================ ################################################################################ # # python-argh # ################################################################################ PYTHON_ARGH_VERSION = 0.26.2 PYTHON_ARGH_SOURCE = argh-$(PYTHON_ARGH_VERSION).tar.gz PYTHON_ARGH_SITE = https://pypi.python.org/packages/e3/75/1183b5d1663a66aebb2c184e0398724b624cecd4f4b679cb6e25de97ed15 PYTHON_ARGH_SETUP_TYPE = setuptools PYTHON_ARGH_LICENSE = LGPL-3.0+ PYTHON_ARGH_LICENSE_FILES = README.rst $(eval $(python-package)) ================================================ FILE: package/python-argon2-cffi/Config.in ================================================ config BR2_PACKAGE_PYTHON_ARGON2_CFFI bool "python-argon2-cffi" depends on BR2_USE_MMU # libargon2 depends on !BR2_STATIC_LIBS # libargon2 select BR2_PACKAGE_PYTHON_CFFI # runtime select BR2_PACKAGE_PYTHON_ENUM34 if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_LIBARGON2 help The secure Argon2 password hashing algorithm. https://argon2-cffi.readthedocs.io/ ================================================ FILE: package/python-argon2-cffi/python-argon2-cffi.hash ================================================ # md5, sha256 from https://pypi.org/pypi/argon2-cffi/json md5 f33bc18f2c2438f685ba1f0bbd2b86a4 argon2-cffi-21.1.0.tar.gz sha256 f710b61103d1a1f692ca3ecbd1373e28aa5e545ac625ba067ff2feca1b2bb870 argon2-cffi-21.1.0.tar.gz # Locally computed sha256 checksums sha256 bf659a28b49240602f56bbdf490cbe2ec509b15b98f99d7b19a52c740e327863 LICENSE ================================================ FILE: package/python-argon2-cffi/python-argon2-cffi.mk ================================================ ################################################################################ # # python-argon2-cffi # ################################################################################ PYTHON_ARGON2_CFFI_VERSION = 21.1.0 PYTHON_ARGON2_CFFI_SOURCE = argon2-cffi-$(PYTHON_ARGON2_CFFI_VERSION).tar.gz PYTHON_ARGON2_CFFI_SITE = https://files.pythonhosted.org/packages/7b/39/a26aaef5c3f0c6cfd67c80599b5b40a794fdab46f4ee3be925d71e2f9596 PYTHON_ARGON2_CFFI_SETUP_TYPE = setuptools PYTHON_ARGON2_CFFI_LICENSE = MIT PYTHON_ARGON2_CFFI_LICENSE_FILES = LICENSE PYTHON_ARGON2_CFFI_DEPENDENCIES = host-python-cffi libargon2 PYTHON_ARGON2_CFFI_ENV = ARGON2_CFFI_USE_SYSTEM=1 ifeq ($(BR2_X86_CPU_HAS_SSE2),y) PYTHON_ARGON2_CFFI_ENV += ARGON2_CFFI_USE_SSE2=1 else PYTHON_ARGON2_CFFI_ENV += ARGON2_CFFI_USE_SSE2=0 endif $(eval $(python-package)) ================================================ FILE: package/python-arrow/Config.in ================================================ config BR2_PACKAGE_PYTHON_ARROW bool "python-arrow" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_DATEUTIL # runtime help Better dates and times for Python. https://github.com/crsmithdev/arrow/ ================================================ FILE: package/python-arrow/python-arrow.hash ================================================ # md5, sha256 from https://pypi.org/pypi/arrow/json md5 608682052926c7e5636285af0618ef38 arrow-1.2.0.tar.gz sha256 16fc29bbd9e425e3eb0fef3018297910a0f4568f21116fc31771e2760a50e074 arrow-1.2.0.tar.gz # Locally computed sha256 checksums sha256 40d6e1255d7151f5f041a514725d3c94ffa8c1881e5a0c29b6bea93f03e2e3bb LICENSE ================================================ FILE: package/python-arrow/python-arrow.mk ================================================ ################################################################################ # # python-arrow # ################################################################################ PYTHON_ARROW_VERSION = 1.2.0 PYTHON_ARROW_SOURCE = arrow-$(PYTHON_ARROW_VERSION).tar.gz PYTHON_ARROW_SITE = https://files.pythonhosted.org/packages/dc/bd/2565b8533bb8cf66e10a9e68a1d489ad839799b2050f0635039e614e3b1a PYTHON_ARROW_SETUP_TYPE = setuptools PYTHON_ARROW_LICENSE = Apache-2.0 PYTHON_ARROW_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-asgiref/Config.in ================================================ config BR2_PACKAGE_PYTHON_ASGIREF bool "python-asgiref" depends on BR2_PACKAGE_PYTHON3 help ASGI is a standard for Python asynchronous web apps and servers to communicate with each other, and positioned as an asynchronous successor to WSGI. This package includes ASGI base libraries, such as: - Sync-to-async and async-to-sync function wrappers, asgiref.sync - Server base classes, asgiref.server - A WSGI-to-ASGI adapter, in asgiref.wsgi http://github.com/django/asgiref/ ================================================ FILE: package/python-asgiref/python-asgiref.hash ================================================ # md5, sha256 from https://pypi.org/pypi/asgiref/json md5 5afe03ecc39ae94950ff95e80166d945 asgiref-3.3.4.tar.gz sha256 d1216dfbdfb63826470995d31caed36225dcaf34f182e0fa257a4dd9e86f1b78 asgiref-3.3.4.tar.gz # Locally computed sha256 checksums sha256 b846415d1b514e9c1dff14a22deb906d794bc546ca6129f950a18cd091e2a669 LICENSE ================================================ FILE: package/python-asgiref/python-asgiref.mk ================================================ ################################################################################ # # python-asgiref # ################################################################################ PYTHON_ASGIREF_VERSION = 3.3.4 PYTHON_ASGIREF_SOURCE = asgiref-$(PYTHON_ASGIREF_VERSION).tar.gz PYTHON_ASGIREF_SITE = https://files.pythonhosted.org/packages/d8/3f/ef696a6d8254f182b1a089aeffb638d2eb83055e603146d3a40605c5b7da PYTHON_ASGIREF_SETUP_TYPE = setuptools PYTHON_ASGIREF_LICENSE = BSD-3-Clause PYTHON_ASGIREF_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-asn1crypto/Config.in ================================================ config BR2_PACKAGE_PYTHON_ASN1CRYPTO bool "python-asn1crypto" help Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP. https://github.com/wbond/asn1crypto ================================================ FILE: package/python-asn1crypto/python-asn1crypto.hash ================================================ # md5, sha256 from https://pypi.org/pypi/asn1crypto/json md5 00bf5b72d37778e62cc73b1d8909ae27 asn1crypto-1.4.0.tar.gz sha256 f4f6e119474e58e04a2b1af817eb585b4fd72bdd89b998624712b5c99be7641c asn1crypto-1.4.0.tar.gz # Locally computed sha256 checksums sha256 a88480656ec98943fb04344f6a477ee74062896f3ddb1a6f99e5f05f0109a286 LICENSE ================================================ FILE: package/python-asn1crypto/python-asn1crypto.mk ================================================ ################################################################################ # # python-asn1crypto # ################################################################################ PYTHON_ASN1CRYPTO_VERSION = 1.4.0 PYTHON_ASN1CRYPTO_SOURCE = asn1crypto-$(PYTHON_ASN1CRYPTO_VERSION).tar.gz PYTHON_ASN1CRYPTO_SITE = https://files.pythonhosted.org/packages/6b/b4/42f0e52ac2184a8abb31f0a6f98111ceee1aac0b473cee063882436e0e09 PYTHON_ASN1CRYPTO_SETUP_TYPE = setuptools PYTHON_ASN1CRYPTO_LICENSE = MIT PYTHON_ASN1CRYPTO_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-async-lru/Config.in ================================================ config BR2_PACKAGE_PYTHON_ASYNC_LRU bool "python-async-lru" depends on BR2_PACKAGE_PYTHON3 help Simple lru_cache for asyncio. https://github.com/aio-libs/async_lru ================================================ FILE: package/python-async-lru/python-async-lru.hash ================================================ # md5, sha256 from https://pypi.org/pypi/async_lru/json md5 69bed62927426353513e68aec77989ab async_lru-1.0.2.tar.gz sha256 baa898027619f5cc31b7966f96f00e4fc0df43ba206a8940a5d1af5336a477cb async_lru-1.0.2.tar.gz # Locally computed sha256 checksums sha256 ea65975679bc2093be925d520358e41096bd96fddedee3e929160a5faadcf573 LICENSE ================================================ FILE: package/python-async-lru/python-async-lru.mk ================================================ ################################################################################ # # python-async-lru # ################################################################################ PYTHON_ASYNC_LRU_VERSION = 1.0.2 PYTHON_ASYNC_LRU_SOURCE = async_lru-$(PYTHON_ASYNC_LRU_VERSION).tar.gz PYTHON_ASYNC_LRU_SITE = https://files.pythonhosted.org/packages/7e/c1/a3d6207deaaeb582d16dc9a0fd217f192efc9487ce59897131cf9a2bdc1c PYTHON_ASYNC_LRU_SETUP_TYPE = setuptools PYTHON_ASYNC_LRU_LICENSE = MIT PYTHON_ASYNC_LRU_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-async-timeout/Config.in ================================================ config BR2_PACKAGE_PYTHON_ASYNC_TIMEOUT bool "python-async-timeout" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_TYPING_EXTENSIONS # runtime help asyncio-compatible timeout context manager. https://github.com/aio-libs/async-timeout ================================================ FILE: package/python-async-timeout/python-async-timeout.hash ================================================ # md5, sha256 from https://pypi.org/pypi/async-timeout/json md5 2871f3853060ac7e76e6278b85dfb3c9 async-timeout-4.0.0.tar.gz sha256 7d87a4e8adba8ededb52e579ce6bc8276985888913620c935094c2276fd83382 async-timeout-4.0.0.tar.gz # Locally computed sha256 checksums sha256 e18d7bb8f513e2c46bb585c94b585bd30720dd3ccb21ddb0786f72d16658f92c LICENSE ================================================ FILE: package/python-async-timeout/python-async-timeout.mk ================================================ ################################################################################ # # python-async-timeout # ################################################################################ PYTHON_ASYNC_TIMEOUT_VERSION = 4.0.0 PYTHON_ASYNC_TIMEOUT_SOURCE = async-timeout-$(PYTHON_ASYNC_TIMEOUT_VERSION).tar.gz PYTHON_ASYNC_TIMEOUT_SITE = https://files.pythonhosted.org/packages/28/0c/1cd218ea84964f0740a3ab6152dfa99661174abdd8e4053e06c0285ac42a PYTHON_ASYNC_TIMEOUT_LICENSE = Apache-2.0 PYTHON_ASYNC_TIMEOUT_LICENSE_FILES = LICENSE PYTHON_ASYNC_TIMEOUT_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-asyncpg/Config.in ================================================ config BR2_PACKAGE_PYTHON_ASYNCPG bool "python-asyncpg" select BR2_PACKAGE_HOST_PYTHON_CYTHON help A fast PostgreSQL Database Client Library for Python/asyncio https://github.com/MagicStack/asyncpg ================================================ FILE: package/python-asyncpg/python-asyncpg.hash ================================================ sha256 53cb2a0eb326f61e34ef4da2db01d87ce9c0ebe396f65a295829df334e31863f asyncpg-0.21.0.tar.gz ================================================ FILE: package/python-asyncpg/python-asyncpg.mk ================================================ ################################################################################ # # python-asyncpg # ################################################################################ PYTHON_ASYNCPG_VERSION = 0.21.0 PYTHON_ASYNCPG_SOURCE = asyncpg-$(PYTHON_ASYNCPG_VERSION).tar.gz PYTHON_ASYNCPG_SITE = https://files.pythonhosted.org/packages/08/4b/ae73e69c5ec9c45f6b07d3cb151ee8597ddb5c3f3b539cf4dfa4af13031d PYTHON_ASYNCPG_LICENSE = MIT PYTHON_ASYNCPG_LICENSE_FILES = LICENSE PYTHON_ASYNCPG_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-attrs/Config.in ================================================ config BR2_PACKAGE_PYTHON_ATTRS bool "python-attrs" depends on BR2_PACKAGE_PYTHON3 help attrs is the Python package that will bring back the joy of writing classes by relieving you from the drudgery of implementing object protocols (aka dunder methods). https://attrs.readthedocs.io/ ================================================ FILE: package/python-attrs/python-attrs.hash ================================================ # md5, sha256 from https://pypi.org/pypi/attrs/json md5 06af884070d9180694becdb106e5cd65 attrs-21.2.0.tar.gz sha256 ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb attrs-21.2.0.tar.gz # Locally computed sha256 sha256 bf659a28b49240602f56bbdf490cbe2ec509b15b98f99d7b19a52c740e327863 LICENSE ================================================ FILE: package/python-attrs/python-attrs.mk ================================================ ################################################################################ # # python-attrs # ################################################################################ PYTHON_ATTRS_VERSION = 21.2.0 PYTHON_ATTRS_SOURCE = attrs-$(PYTHON_ATTRS_VERSION).tar.gz PYTHON_ATTRS_SITE = https://files.pythonhosted.org/packages/ed/d6/3ebca4ca65157c12bd08a63e20ac0bdc21ac7f3694040711f9fd073c0ffb PYTHON_ATTRS_SETUP_TYPE = setuptools PYTHON_ATTRS_LICENSE = MIT PYTHON_ATTRS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-augeas/0001-Use-CFFI-in-out-of-line-API-mode-49.patch ================================================ From 9de73fefbe83c74840a93c039258845c49271b9b Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Sun, 8 Nov 2020 21:51:09 +0800 Subject: [PATCH] Use CFFI in out-of-line API mode (#49) Currently, ffi.py is called during setup to generate augeas.py; this file would normally be used for out-of-line ABI mode. ffi.py is also imported at run-time, instead of the generated augeas.py, and used in in-line ABI mode. This changes usage of CFFI to out-of-line API mode (CFFI's "main mode of usage"): ffi.py is called during setup to generate _augeas.abi3.so (a C extension module); this generated module is imported at run-time. With this change, the headers/development files for augeas (i.e. libaugeas-dev on Debian, augeas-devel on Fedora, etc.) and the C compiler are required for build/setup. (These were not necessary previously.) Closes https://github.com/hercules-team/python-augeas/issues/48. Upstream: commit 712c2028568df7760bc98d95577e35709078bfea Signed-off-by: Thomas Petazzoni --- augeas/__init__.py | 2 +- augeas/ffi.py | 27 ++++++++++++++++++++++----- setup.py | 1 + 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/augeas/__init__.py b/augeas/__init__.py index 9bd97bf..1c0f580 100644 --- a/augeas/__init__.py +++ b/augeas/__init__.py @@ -32,7 +32,7 @@ format and the transformation into a tree. from sys import version_info as _pyver -from augeas.ffi import ffi, lib +from _augeas import ffi, lib __author__ = "Nathaniel McCallum " __credits__ = """Jeff Schroeder diff --git a/augeas/ffi.py b/augeas/ffi.py index a24daf5..1931764 100644 --- a/augeas/ffi.py +++ b/augeas/ffi.py @@ -1,9 +1,28 @@ +import os +import subprocess + from cffi import FFI +def get_include_dirs(): + XML2_CONFIG = os.environ.get('XML2_CONFIG', 'xml2-config') + PKG_CONFIG = os.environ.get('PKG_CONFIG', 'pkg-config') + try: + stdout = subprocess.check_output([XML2_CONFIG, '--cflags']) + except (OSError, subprocess.CalledProcessError): + try: + stdout = subprocess.check_output([PKG_CONFIG, '--cflags', 'libxml-2.0']) + except (OSError, subprocess.CalledProcessError): + stdout = b'' + cflags = stdout.decode('utf-8').split() + return [cflag[2:] for cflag in cflags if cflag.startswith('-I')] + ffi = FFI() -ffi.set_source("augeas", - None, - libraries=['augeas']) +ffi.set_source("_augeas", + """ + #include + """, + libraries=['augeas'], + include_dirs=get_include_dirs()) ffi.cdef(""" typedef struct augeas augeas; @@ -44,7 +63,5 @@ const char *aug_error_details(augeas *aug); void free(void *); """) -lib = ffi.dlopen("augeas") - if __name__ == "__main__": ffi.compile(verbose=True) diff --git a/setup.py b/setup.py index 7d55877..17f9516 100755 --- a/setup.py +++ b/setup.py @@ -22,6 +22,7 @@ setup(name=name, setup_requires=["cffi>=1.0.0"], cffi_modules=["augeas/ffi.py:ffi"], install_requires=["cffi>=1.0.0"], + zip_safe=False, url="http://augeas.net/", classifiers=[ "Programming Language :: Python :: 2.7", -- 2.31.1 ================================================ FILE: package/python-augeas/Config.in ================================================ config BR2_PACKAGE_PYTHON_AUGEAS bool "python-augeas" depends on !BR2_arc depends on BR2_USE_WCHAR select BR2_PACKAGE_AUGEAS select BR2_PACKAGE_PYTHON_CFFI # runtime help Pure python bindings for Augeas. https://github.com/hercules-team/python-augeas comment "python-augeas needs a toolchain w/ wchar" depends on !BR2_arc depends on !BR2_USE_WCHAR ================================================ FILE: package/python-augeas/python-augeas.hash ================================================ # Locally computed sha256 1a1d2cdaf2ad4c091ed5ec7976c52d16e14ecfbf40b1bdcaced2465255fb0f87 python-augeas-1.1.0.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/python-augeas/python-augeas.mk ================================================ ################################################################################ # # python-augeas # ################################################################################ PYTHON_AUGEAS_VERSION = 1.1.0 PYTHON_AUGEAS_SITE = $(call github,hercules-team,python-augeas,v$(PYTHON_AUGEAS_VERSION)) PYTHON_AUGEAS_SETUP_TYPE = setuptools PYTHON_AUGEAS_LICENSE = LGPL-2.1+ PYTHON_AUGEAS_LICENSE_FILES = COPYING PYTHON_AUGEAS_DEPENDENCIES = augeas host-python-cffi host-pkgconf # This will tell python-augeas to not call xml2-config, and instead # use pkg-config to find libxml2. libxml2 is an indirect dependency of # augeas, which is why it's not in our dependencies. It's odd that # python-augeas searches for libxml2, but that's what it # does. Question asked in the pull request at # https://github.com/hercules-team/python-augeas/pull/49. PYTHON_AUGEAS_ENV = XML2_CONFIG=/bin/false $(eval $(python-package)) ================================================ FILE: package/python-autobahn/0001-Fix-duplicate-xbr-packages-and-xbr-templates-package.patch ================================================ From b13b7e38b38e2c79c0a13be32e05f0451483cd01 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Sat, 12 Jun 2021 15:32:37 -0600 Subject: [PATCH] Fix duplicate xbr packages and xbr templates package_data. (#1492) Signed-off-by: James Hilliard [james.hilliard1@gmail.com: backport from upstream commit a370f9e7154e59b313cb675bfcaf8cad6011bd52] --- MANIFEST.in | 1 - setup.py | 10 ++++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index f4cb6da1..1dd32f0e 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,3 @@ include LICENSE include autobahn/nvx/_utf8validator.c recursive-include autobahn/wamp/gen/schema * -recursive-include autobahn/xbr/templates * diff --git a/setup.py b/setup.py index cf4e29ba..f27006da 100644 --- a/setup.py +++ b/setup.py @@ -166,6 +166,12 @@ packages = [ 'twisted.plugins', ] +xbr_packages = [ + 'autobahn.xbr', + 'autobahn.asyncio.xbr', + 'autobahn.twisted.xbr', +] + package_data = {'autobahn.asyncio': ['./test/*']} entry_points = { @@ -179,8 +185,8 @@ if 'AUTOBAHN_STRIP_XBR' in os.environ: shutil.rmtree('autobahn.egg-info', ignore_errors=True) else: extras_require_all += extras_require_xbr - packages += ['autobahn.xbr', 'autobahn.asyncio.xbr', 'autobahn.twisted.xbr'] - package_data['xbr'] = ['./xbr/contracts/*.json'] + packages += xbr_packages + package_data['xbr'] = ['./xbr/templates/*.py.jinja2'] entry_points['console_scripts'] += ["xbrnetwork = autobahn.xbr._cli:_main"] # development dependencies -- 2.25.1 ================================================ FILE: package/python-autobahn/0002-Build-with-nvx-by-default-and-don-t-publish-universa.patch ================================================ From 1e3162bab59cbc2f7cf8b9ef6cadf55ee273c1d8 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Thu, 22 Jul 2021 06:56:51 -0600 Subject: [PATCH] Build with nvx by default and don't publish universal wheel. (#1493) Signed-off-by: James Hilliard [james.hilliard1@gmail.com: backport from upstream commit a35f22eeaafca7568f1deb35c4a1b82ae78f77d4] --- Makefile | 8 ++++---- autobahn/nvx/_utf8validator.py | 7 ++++++- setup.py | 7 +------ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/autobahn/nvx/_utf8validator.py b/autobahn/nvx/_utf8validator.py index e72fc872..34393356 100644 --- a/autobahn/nvx/_utf8validator.py +++ b/autobahn/nvx/_utf8validator.py @@ -44,13 +44,18 @@ ffi.cdef(""" int nvx_utf8vld_get_impl(void* utf8vld); """) +optional = True +if 'AUTOBAHN_USE_NVX' in os.environ and os.environ['AUTOBAHN_USE_NVX'] in ['1', 'true']: + optional = False + with open(os.path.join(os.path.dirname(__file__), '_utf8validator.c')) as fd: c_source = fd.read() ffi.set_source( "_nvx_utf8validator", c_source, libraries=[], - extra_compile_args=['-std=c99', '-Wall', '-Wno-strict-prototypes', '-O3', '-march=native'] + extra_compile_args=['-std=c99', '-Wall', '-Wno-strict-prototypes', '-O3', '-march=native'], + optional=optional ) diff --git a/setup.py b/setup.py index f27006da..4889a39e 100644 --- a/setup.py +++ b/setup.py @@ -110,12 +110,7 @@ extras_require_nvx = [ # cffi based extension modules to build, currently only NVX cffi_modules = [] -if 'AUTOBAHN_USE_NVX' in os.environ: - # FIXME: building this extension will make the wheel - # produced no longer universal (as in "autobahn-18.4.1-py2.py3-none-any.whl"). - # on the other hand, I don't know how to selectively include this - # based on the install flavor the user has chosen (eg pip install autobahn[nvx] - # should make the following be included) +if 'AUTOBAHN_USE_NVX' not in os.environ or os.environ['AUTOBAHN_USE_NVX'] not in ['0', 'false']: cffi_modules.append('autobahn/nvx/_utf8validator.py:ffi') extras_require_xbr = [ -- 2.25.1 ================================================ FILE: package/python-autobahn/Config.in ================================================ config BR2_PACKAGE_PYTHON_AUTOBAHN bool "python-autobahn" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-cryptography depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_CFFI # runtime select BR2_PACKAGE_PYTHON_CRYPTOGRAPHY # runtime select BR2_PACKAGE_PYTHON_HYPERLINK # runtime select BR2_PACKAGE_PYTHON_TXAIO # runtime help WebSocket client and server library, WAMP real-time framework. https://pypi.python.org/pypi/autobahn ================================================ FILE: package/python-autobahn/python-autobahn.hash ================================================ # md5, sha256 from https://pypi.org/pypi/autobahn/json md5 dcba839ee61be33d05042a09c008c6bc autobahn-21.3.1.tar.gz sha256 e126c1f583e872fb59e79d36977cfa1f2d0a8a79f90ae31f406faae7664b8e03 autobahn-21.3.1.tar.gz # Locally computed sha256 checksums sha256 0387eefce570453daaa60633f28676003731eeca28b2d0a0071c628e3a0004ef LICENSE ================================================ FILE: package/python-autobahn/python-autobahn.mk ================================================ ################################################################################ # # python-autobahn # ################################################################################ PYTHON_AUTOBAHN_VERSION = 21.3.1 PYTHON_AUTOBAHN_SOURCE = autobahn-$(PYTHON_AUTOBAHN_VERSION).tar.gz PYTHON_AUTOBAHN_SITE = https://files.pythonhosted.org/packages/4c/9e/f5bdfb55d1eab67c4b6d24d1397f95feec792071ff1b2f5a893d6d5247f3 PYTHON_AUTOBAHN_LICENSE = MIT PYTHON_AUTOBAHN_LICENSE_FILES = LICENSE PYTHON_AUTOBAHN_CPE_ID_VENDOR = crossbar PYTHON_AUTOBAHN_CPE_ID_PRODUCT = autobahn PYTHON_AUTOBAHN_SETUP_TYPE = setuptools PYTHON_AUTOBAHN_DEPENDENCIES = host-python-cffi PYTHON_AUTOBAHN_ENV = AUTOBAHN_STRIP_XBR=1 $(eval $(python-package)) ================================================ FILE: package/python-automat/Config.in ================================================ config BR2_PACKAGE_PYTHON_AUTOMAT bool "python-automat" depends on BR2_PACKAGE_PYTHON3 # python-attrs select BR2_PACKAGE_PYTHON_ATTRS # runtime select BR2_PACKAGE_PYTHON_SIX # runtime help Self-service finite-state machines for the programmer on the go. https://github.com/glyph/Automat ================================================ FILE: package/python-automat/python-automat.hash ================================================ # md5, sha256 from https://pypi.org/pypi/automat/json md5 d6cef9886b037b8857bfbc686f3ae30a Automat-20.2.0.tar.gz sha256 7979803c74610e11ef0c0d68a2942b152df52da55336e0c9d58daf1831cbdf33 Automat-20.2.0.tar.gz # Locally computed sha256 checksums sha256 b2201301678d0a937d938543827ca1360712eb34e23de8ee3f3bfffbd4c0e376 LICENSE ================================================ FILE: package/python-automat/python-automat.mk ================================================ ################################################################################ # # python-automat # ################################################################################ PYTHON_AUTOMAT_VERSION = 20.2.0 PYTHON_AUTOMAT_SOURCE = Automat-$(PYTHON_AUTOMAT_VERSION).tar.gz PYTHON_AUTOMAT_SITE = https://files.pythonhosted.org/packages/80/c5/82c63bad570f4ef745cc5c2f0713c8eddcd07153b4bee7f72a8dc9f9384b PYTHON_AUTOMAT_SETUP_TYPE = setuptools PYTHON_AUTOMAT_LICENSE = MIT PYTHON_AUTOMAT_LICENSE_FILES = LICENSE PYTHON_AUTOMAT_DEPENDENCIES = host-python-m2r host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-avro/0002-drop-install-time-linting-and-imports-sorting.patch ================================================ From 3446a4af8474cd863efddeae7f3e5dd3f9b8e25e Mon Sep 17 00:00:00 2001 From: Titouan Christophe Date: Mon, 17 Feb 2020 15:12:13 +0100 Subject: [PATCH] drop install time linting and imports sorting Since the 1.9.2 release, the setup script is also performing code linting tasks, which require additional python libraries. These linting tasks are not needed anyway, since they are intended to prepare the code for distribution, but the Buildroot package is already using a distributed version. We therefore simply remove them. Signed-off-by: Titouan Christophe --- setup.cfg | 2 -- setup.py | 1 - 2 files changed, 3 deletions(-) diff --git a/setup.cfg b/setup.cfg index 7b5de18..d46a36e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -25,8 +25,6 @@ package_dir = include_package_data = true packages = avro setup_requires = - isort - pycodestyle install_requires = zip_safe = true scripts = diff --git a/setup.py b/setup.py index f6297bb..91d3287 100755 --- a/setup.py +++ b/setup.py @@ -164,7 +164,6 @@ def main(): setuptools.setup(cmdclass={ "clean": CleanCommand, "generate_interop_data": GenerateInteropDataCommand, - "lint": LintCommand, }) -- 2.24.1 ================================================ FILE: package/python-avro/Config.in ================================================ config BR2_PACKAGE_PYTHON_AVRO bool "python-avro" depends on BR2_PACKAGE_PYTHON3 help Select this option to install the Avro Python3 language bindings, and the `avro` command line tool Apache Avro is a data serialization system. Avro provides: - Rich data structures. - A compact, fast, binary data format. - A container file, to store persistent data. - Remote procedure call (RPC). - Simple integration with dynamic languages. - Code generation is not required to read or write data files nor to use or implement RPC protocols. - Code generation as an optional optimization, only worth implementing for statically typed languages. http://avro.apache.org/ ================================================ FILE: package/python-avro/python-avro.hash ================================================ # From https://downloads.apache.org/avro/avro-1.10.0/py3/avro-python3-1.10.0.tar.gz.sha512 sha512 fb41f9227d2410c29cde10d7573aebbc142c2bf3f5945a1aaffdeac8b4b5ec690b0befdfc813a8762289dbbb7fc4e1be1564ba0c69d03092b84d8e938d6156f6 avro-python3-1.10.0.tar.gz # License files sha256 c79a7fea0e3cac04cd43f20e7b648e5a0ff8fa5344e644b0ee09ca1162b62747 avro/LICENSE ================================================ FILE: package/python-avro/python-avro.mk ================================================ ################################################################################ # # python-avro # ################################################################################ PYTHON_AVRO_VERSION = $(AVRO_C_VERSION) PYTHON_AVRO_SITE = https://www-eu.apache.org/dist/avro/avro-$(PYTHON_AVRO_VERSION)/py3 PYTHON_AVRO_SOURCE = avro-python3-$(PYTHON_AVRO_VERSION).tar.gz PYTHON_AVRO_LICENSE = Apache-2.0 PYTHON_AVRO_LICENSE_FILES = avro/LICENSE PYTHON_AVRO_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-babel/Config.in ================================================ config BR2_PACKAGE_PYTHON_BABEL bool "python-babel" select BR2_PACKAGE_PYTHON_PYTZ # runtime help A collection of tools for internationalizing Python applications. http://babel.pocoo.org/en/latest/ ================================================ FILE: package/python-babel/python-babel.hash ================================================ # md5, sha256 from https://pypi.org/pypi/babel/json md5 7166099733d78aa857d74fa50d8ff58c Babel-2.9.1.tar.gz sha256 bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0 Babel-2.9.1.tar.gz # Locally computed sha256 checksums sha256 28c97bf33e7506e277487bdaa3a69b70f170d6af5a82785ac0a74c8428042e40 LICENSE ================================================ FILE: package/python-babel/python-babel.mk ================================================ ################################################################################ # # python-babel # ################################################################################ PYTHON_BABEL_VERSION = 2.9.1 PYTHON_BABEL_SOURCE = Babel-$(PYTHON_BABEL_VERSION).tar.gz PYTHON_BABEL_SITE = https://files.pythonhosted.org/packages/17/e6/ec9aa6ac3d00c383a5731cc97ed7c619d3996232c977bb8326bcbb6c687e PYTHON_BABEL_SETUP_TYPE = setuptools PYTHON_BABEL_LICENSE = BSD-3-Clause PYTHON_BABEL_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-backcall/Config.in ================================================ config BR2_PACKAGE_PYTHON_BACKCALL bool "python-backcall" help Specifications for callback functions passed in to an API. https://github.com/takluyver/backcall ================================================ FILE: package/python-backcall/python-backcall.hash ================================================ # md5, sha256 from https://pypi.org/pypi/backcall/json md5 1f4c9a370c78743406296f48e56e8821 backcall-0.2.0.tar.gz sha256 5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e backcall-0.2.0.tar.gz # Locally computed sha256 checksums sha256 d422f8ce77312733c07f5fec8ccbe61d58d539774f7a66f37e4bc54740d86020 LICENSE ================================================ FILE: package/python-backcall/python-backcall.mk ================================================ ################################################################################ # # python-backcall # ################################################################################ PYTHON_BACKCALL_VERSION = 0.2.0 PYTHON_BACKCALL_SOURCE = backcall-$(PYTHON_BACKCALL_VERSION).tar.gz PYTHON_BACKCALL_SITE = https://files.pythonhosted.org/packages/a2/40/764a663805d84deee23043e1426a9175567db89c8b3287b5c2ad9f71aa93 PYTHON_BACKCALL_SETUP_TYPE = distutils PYTHON_BACKCALL_LICENSE = BSD-3-Clause PYTHON_BACKCALL_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-backports-abc/Config.in ================================================ 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. https://pypi.python.org/pypi/backports_abc ================================================ FILE: package/python-backports-abc/python-backports-abc.hash ================================================ # md5 from https://pypi.python.org/pypi/backports_abc/json md5 7d1936ec183a3586290adf60f6f96764 backports_abc-0.5.tar.gz # Locally computed sha256 033be54514a03e255df75c5aee8f9e672f663f93abb723444caec8fe43437bde backports_abc-0.5.tar.gz sha256 0a4f3b38055f50f047a42521568fa6ddb9a5976c2884f6ae138796d0f71150ca LICENSE ================================================ FILE: package/python-backports-abc/python-backports-abc.mk ================================================ ################################################################################ # # python-backports-abc # ################################################################################ PYTHON_BACKPORTS_ABC_VERSION = 0.5 PYTHON_BACKPORTS_ABC_SOURCE = backports_abc-$(PYTHON_BACKPORTS_ABC_VERSION).tar.gz PYTHON_BACKPORTS_ABC_SITE = https://pypi.python.org/packages/68/3c/1317a9113c377d1e33711ca8de1e80afbaf4a3c950dd0edfaf61f9bfe6d8 PYTHON_BACKPORTS_ABC_LICENSE = Python-2.0 PYTHON_BACKPORTS_ABC_LICENSE_FILES = LICENSE PYTHON_BACKPORTS_ABC_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-backports-functools-lru-cache/Config.in ================================================ config BR2_PACKAGE_PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE bool "python-backports-functools-lru-cache" depends on BR2_PACKAGE_PYTHON help Backport of functools.lru_cache from Python 3.3 https://github.com/jaraco/backports.functools_lru_cache ================================================ FILE: package/python-backports-functools-lru-cache/python-backports-functools-lru-cache.hash ================================================ # md5, sha256 from https://pypi.org/pypi/backports.functools_lru_cache/json md5 20f53f54cd3f04b3346ce75a54959754 backports.functools_lru_cache-1.5.tar.gz sha256 9d98697f088eb1b0fa451391f91afb5e3ebde16bbdb272819fd091151fda4f1a backports.functools_lru_cache-1.5.tar.gz # Localy computed sha256 checksumms sha256 a55e2ffe9b44998e621d51d8c094bed09acc4b5236ee73d7df395a33ba3c18fd LICENSE ================================================ FILE: package/python-backports-functools-lru-cache/python-backports-functools-lru-cache.mk ================================================ ################################################################################ # # python-backports-functools-lru-cache # ################################################################################ PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE_VERSION = 1.5 PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE_SOURCE = backports.functools_lru_cache-$(PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE_VERSION).tar.gz PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE_SITE = https://files.pythonhosted.org/packages/57/d4/156eb5fbb08d2e85ab0a632e2bebdad355798dece07d4752f66a8d02d1ea PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE_SETUP_TYPE = setuptools PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE_DEPENDENCIES = host-python-setuptools-scm PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE_LICENSE = MIT PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-backports-shutil-get-terminal-size/Config.in ================================================ config BR2_PACKAGE_PYTHON_BACKPORTS_SHUTIL_GET_TERMINAL_SIZE bool "python-backports-shutil-get-terminal-size" depends on BR2_PACKAGE_PYTHON help A backport of the get_terminal_size function from Python 3.3's shutil. https://pypi.python.org/pypi/backports.shutil_get_terminal_size ================================================ FILE: package/python-backports-shutil-get-terminal-size/python-backports-shutil-get-terminal-size.hash ================================================ # md5 from https://pypi.python.org/pypi/backports.shutil_get_terminal_size/json md5 03267762480bd86b50580dc19dff3c66 backports.shutil_get_terminal_size-1.0.0.tar.gz # Locally computed sha256 713e7a8228ae80341c70586d1cc0a8caa5207346927e23d09dcbcaf18eadec80 backports.shutil_get_terminal_size-1.0.0.tar.gz sha256 9edd99f8c339cddbfe36a9707e671fccf245b3e50b80eec0877dccec87a2dfe4 LICENSE ================================================ FILE: package/python-backports-shutil-get-terminal-size/python-backports-shutil-get-terminal-size.mk ================================================ ################################################################################ # # python-backports-shutil-get-terminal-size # ################################################################################ PYTHON_BACKPORTS_SHUTIL_GET_TERMINAL_SIZE_VERSION = 1.0.0 PYTHON_BACKPORTS_SHUTIL_GET_TERMINAL_SIZE_SOURCE = backports.shutil_get_terminal_size-$(PYTHON_BACKPORTS_SHUTIL_GET_TERMINAL_SIZE_VERSION).tar.gz PYTHON_BACKPORTS_SHUTIL_GET_TERMINAL_SIZE_SITE = https://pypi.python.org/packages/ec/9c/368086faa9c016efce5da3e0e13ba392c9db79e3ab740b763fe28620b18b PYTHON_BACKPORTS_SHUTIL_GET_TERMINAL_SIZE_SETUP_TYPE = setuptools PYTHON_BACKPORTS_SHUTIL_GET_TERMINAL_SIZE_LICENSE = MIT PYTHON_BACKPORTS_SHUTIL_GET_TERMINAL_SIZE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-backports-ssl-match-hostname/Config.in ================================================ config BR2_PACKAGE_PYTHON_BACKPORTS_SSL_MATCH_HOSTNAME bool "python-backports-ssl-match-hostname" depends on BR2_PACKAGE_PYTHON help The ssl.match_hostname() function from Python 3.5. http://bitbucket.org/brandon/backports.ssl_match_hostname ================================================ FILE: package/python-backports-ssl-match-hostname/python-backports-ssl-match-hostname.hash ================================================ # md5, sha256 from https://pypi.org/pypi/backports.ssl_match_hostname/json md5 32d2f593af01a046bec3d2f5181a420a backports.ssl_match_hostname-3.7.0.1.tar.gz sha256 bb82e60f9fbf4c080eabd957c39f0641f0fc247d9a16e31e26d594d8f42b9fd2 backports.ssl_match_hostname-3.7.0.1.tar.gz # Locally computed sha256 checksums sha256 bfc8a75a4b9aec224aa7973c0c9d7cc0134bdcbf8eefd008936b58554d66e97e LICENSE.txt ================================================ FILE: package/python-backports-ssl-match-hostname/python-backports-ssl-match-hostname.mk ================================================ ################################################################################ # # python-backports-ssl-match-hostname # ################################################################################ PYTHON_BACKPORTS_SSL_MATCH_HOSTNAME_VERSION = 3.7.0.1 PYTHON_BACKPORTS_SSL_MATCH_HOSTNAME_SOURCE = backports.ssl_match_hostname-$(PYTHON_BACKPORTS_SSL_MATCH_HOSTNAME_VERSION).tar.gz PYTHON_BACKPORTS_SSL_MATCH_HOSTNAME_SITE = https://files.pythonhosted.org/packages/ff/2b/8265224812912bc5b7a607c44bf7b027554e1b9775e9ee0de8032e3de4b2 PYTHON_BACKPORTS_SSL_MATCH_HOSTNAME_SETUP_TYPE = distutils PYTHON_BACKPORTS_SSL_MATCH_HOSTNAME_LICENSE = Python-2.0 PYTHON_BACKPORTS_SSL_MATCH_HOSTNAME_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-base58/Config.in ================================================ config BR2_PACKAGE_PYTHON_BASE58 bool "python-base58" depends on BR2_PACKAGE_PYTHON3 help Base58 and Base58Check implementation compatible with what is used by the bitcoin network. https://github.com/keis/base58 ================================================ FILE: package/python-base58/python-base58.hash ================================================ sha256 171a547b4a3c61e1ae3807224a6f7aec75e364c4395e7562649d7335768001a2 base58-2.1.0.tar.gz ================================================ FILE: package/python-base58/python-base58.mk ================================================ ################################################################################ # # python-base58 # ################################################################################ PYTHON_BASE58_VERSION = 2.1.0 PYTHON_BASE58_SOURCE = base58-$(PYTHON_BASE58_VERSION).tar.gz PYTHON_BASE58_SITE = https://files.pythonhosted.org/packages/b5/c1/8e77d5389cf1ea2535049e5ffaeb241cce21bcc1c42624b3e8d0fb3bb607 PYTHON_BASE58_SETUP_TYPE = setuptools PYTHON_BASE58_LICENSE_FILES = COPYING $(eval $(python-package)) ================================================ FILE: package/python-bcrypt/Config.in ================================================ config BR2_PACKAGE_PYTHON_BCRYPT bool "python-bcrypt" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_CFFI # runtime help Modern password hashing for your software and your servers. https://github.com/pyca/bcrypt/ ================================================ FILE: package/python-bcrypt/python-bcrypt.hash ================================================ # md5, sha256 from https://pypi.org/pypi/bcrypt/json md5 fe31390dab603728f756cd3d6830c80a bcrypt-3.2.0.tar.gz sha256 5b93c1726e50a93a033c36e5ca7fdcd29a5c7395af50a6892f5d9e7c6cfbfb29 bcrypt-3.2.0.tar.gz # Locally computed sha256 checksums sha256 8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90 LICENSE ================================================ FILE: package/python-bcrypt/python-bcrypt.mk ================================================ ################################################################################ # # python-bcrypt # ################################################################################ PYTHON_BCRYPT_VERSION = 3.2.0 PYTHON_BCRYPT_SOURCE = bcrypt-$(PYTHON_BCRYPT_VERSION).tar.gz PYTHON_BCRYPT_SITE = https://files.pythonhosted.org/packages/d8/ba/21c475ead997ee21502d30f76fd93ad8d5858d19a3fad7cd153de698c4dd PYTHON_BCRYPT_SETUP_TYPE = setuptools PYTHON_BCRYPT_LICENSE = Apache-2.0 PYTHON_BCRYPT_LICENSE_FILES = LICENSE PYTHON_BCRYPT_DEPENDENCIES = host-python-cffi $(eval $(python-package)) ================================================ FILE: package/python-beautifulsoup4/Config.in ================================================ config BR2_PACKAGE_PYTHON_BEAUTIFULSOUP4 bool "python-beautifulsoup4" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SOUPSIEVE # runtime help Beautiful Soup is a Python library for pulling data out of HTML and XML files. It works with your favorite parser to provide idiomatic ways of navigating, searching, and modifying the parse tree. It commonly saves programmers hours or days of work. http://www.crummy.com/software/BeautifulSoup/bs4/ ================================================ FILE: package/python-beautifulsoup4/python-beautifulsoup4.hash ================================================ # md5, sha256 from https://pypi.org/pypi/beautifulsoup4/json md5 e754242642253dd31d249d00358d552e beautifulsoup4-4.10.0.tar.gz sha256 c23ad23c521d818955a4151a67d81580319d4bf548d3d49f4223ae041ff98891 beautifulsoup4-4.10.0.tar.gz # Locally computed sha256 checksums sha256 a47ea51236098464fe0b4f559743590b533056d9e00f49ecbf80299fab47e231 COPYING.txt ================================================ FILE: package/python-beautifulsoup4/python-beautifulsoup4.mk ================================================ ################################################################################ # # python-beautifulsoup4 # ################################################################################ PYTHON_BEAUTIFULSOUP4_VERSION = 4.10.0 PYTHON_BEAUTIFULSOUP4_SOURCE = beautifulsoup4-$(PYTHON_BEAUTIFULSOUP4_VERSION).tar.gz PYTHON_BEAUTIFULSOUP4_SITE = https://files.pythonhosted.org/packages/a1/69/daeee6d8f22c997e522cdbeb59641c4d31ab120aba0f2c799500f7456b7e PYTHON_BEAUTIFULSOUP4_SETUP_TYPE = setuptools PYTHON_BEAUTIFULSOUP4_LICENSE = MIT PYTHON_BEAUTIFULSOUP4_LICENSE_FILES = COPYING.txt $(eval $(python-package)) ================================================ FILE: package/python-bidict/Config.in ================================================ config BR2_PACKAGE_PYTHON_BIDICT bool "python-bidict" depends on BR2_PACKAGE_PYTHON3 help The bidirectional mapping library for Python. https://bidict.readthedocs.io ================================================ FILE: package/python-bidict/python-bidict.hash ================================================ # md5, sha256 from https://pypi.org/pypi/bidict/json md5 d9342771969dd0d42092a669ed6f3241 bidict-0.21.3.tar.gz sha256 d50bd81fae75e34198ffc94979a0eb0939ff9adb3ef32bcc93a913d8b3e3ed1d bidict-0.21.3.tar.gz # Locally computed sha256 checksums sha256 1f256ecad192880510e84ad60474eab7589218784b9a50bc7ceee34c2b91f1d5 LICENSE ================================================ FILE: package/python-bidict/python-bidict.mk ================================================ ################################################################################ # # python-bidict # ################################################################################ PYTHON_BIDICT_VERSION = 0.21.3 PYTHON_BIDICT_SOURCE = bidict-$(PYTHON_BIDICT_VERSION).tar.gz PYTHON_BIDICT_SITE = https://files.pythonhosted.org/packages/3f/81/7221b28d692af5c5fc180c4850b8e4a48c7db92b3d529b430488f67db74f PYTHON_BIDICT_SETUP_TYPE = setuptools PYTHON_BIDICT_LICENSE = MPL-2.0 PYTHON_BIDICT_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-bitstring/Config.in ================================================ config BR2_PACKAGE_PYTHON_BITSTRING bool "python-bitstring" help Simple construction, analysis and modification of binary data. https://github.com/scott-griffiths/bitstring ================================================ FILE: package/python-bitstring/python-bitstring.hash ================================================ # md5, sha256 from https://pypi.org/pypi/bitstring/json md5 04d24380a0dc491e6bdacd983a90912e bitstring-3.1.9.tar.gz sha256 a5848a3f63111785224dca8bb4c0a75b62ecdef56a042c8d6be74b16f7e860e7 bitstring-3.1.9.tar.gz # Locally computed sha256 checksums sha256 a9e9c584106d4f9686c9a6aa036e507b5e7044633b8acb4365bc074d8d004711 LICENSE ================================================ FILE: package/python-bitstring/python-bitstring.mk ================================================ ################################################################################ # # python-bitstring # ################################################################################ PYTHON_BITSTRING_VERSION = 3.1.9 PYTHON_BITSTRING_SOURCE = bitstring-$(PYTHON_BITSTRING_VERSION).tar.gz PYTHON_BITSTRING_SITE = https://files.pythonhosted.org/packages/4c/b1/80d58eeb21c9d4ca739770558d61f6adacb13aa4908f4f55e0974cbd25ee PYTHON_BITSTRING_SETUP_TYPE = setuptools PYTHON_BITSTRING_LICENSE = MIT PYTHON_BITSTRING_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-bleak/Config.in ================================================ config BR2_PACKAGE_PYTHON_BLEAK bool "python-bleak" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_DBUS_NEXT # runtime help Bluetooth Low Energy platform Agnostic Klient. https://github.com/hbldh/bleak ================================================ FILE: package/python-bleak/python-bleak.hash ================================================ # md5, sha256 from https://pypi.org/pypi/bleak/json md5 f94eb8a67b32c31dad521911973e169f bleak-0.19.0.tar.gz sha256 cce5200ca9bac7daaa74dd009c867c8c2b161a124e234c74307462e86caf50e6 bleak-0.19.0.tar.gz # Locally computed sha256 checksums sha256 c4029a2b63b3824ab68be841f414addbdde20cb79cdbe272fa80c0b2abe65374 LICENSE ================================================ FILE: package/python-bleak/python-bleak.mk ================================================ ################################################################################ # # python-bleak # ################################################################################ PYTHON_BLEAK_VERSION = 0.19.0 PYTHON_BLEAK_SOURCE = bleak-$(PYTHON_BLEAK_VERSION).tar.gz PYTHON_BLEAK_SITE = https://files.pythonhosted.org/packages/19/39/ce32196148fd57f3eccffd9d246e78956855abe3b0c5038cf6166c75b7d8 PYTHON_BLEAK_SETUP_TYPE = setuptools PYTHON_BLEAK_LICENSE = MIT PYTHON_BLEAK_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-bluepy/Config.in ================================================ config BR2_PACKAGE_PYTHON_BLUEPY bool "python-bluepy" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_BLUEZ5_UTILS help Python interface to Bluetooth LE on Linux https://github.com/IanHarvey/bluepy ================================================ FILE: package/python-bluepy/python-bluepy.hash ================================================ sha256 2a71edafe103565fb990256ff3624c1653036a837dfc90e1e32b839f83971cec bluepy-1.3.0.tar.gz ================================================ FILE: package/python-bluepy/python-bluepy.mk ================================================ ################################################################################ # # python-bluepy # ################################################################################ PYTHON_BLUEPY_VERSION = 1.3.0 PYTHON_BLUEPY_SOURCE = bluepy-$(PYTHON_BLUEPY_VERSION).tar.gz PYTHON_BLUEPY_SITE = https://files.pythonhosted.org/packages/27/91/6cfca10bee9862f93015413cf9e6a52c3081a71f1518963396a055128f8e PYTHON_BLUEPY_SETUP_TYPE = setuptools PYTHON_BLUEPY_LICENSE = GPL-2.0+ PYTHON_BLUEPY_LICENSE_FILES = LICENSE.txt PYTHON_BLUEPY_ENV = CC=$(TARGET_CROSS)gcc define PYTHON_BLUEPY_REMOVE_CRAP $(RM) $(TARGET_DIR)/usr/bin/blescan $(RM) $(TARGET_DIR)/usr/bin/thingy52 $(RM) $(TARGET_DIR)/usr/bin/sensortag $(RM) $(TARGET_DIR)/usr/lib/python*/site-packages/bluepy/bluez-src.tgz $(RM) $(TARGET_DIR)/usr/lib/python*/site-packages/bluepy/*.{h,c} $(RM) $(TARGET_DIR)/usr/lib/python*/site-packages/bluepy/Makefile endef PYTHON_BLUEPY_POST_INSTALL_TARGET_HOOKS += PYTHON_BLUEPY_REMOVE_CRAP $(eval $(python-package)) ================================================ FILE: package/python-bluezero/Config.in ================================================ config BR2_PACKAGE_PYTHON_BLUEZERO bool "python-bluezero" depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS # python-gobject -> gobject-introspection depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # python-gobject -> gobject-introspection depends on BR2_HOST_GCC_AT_LEAST_8 # python-gobject -> gobject-introspection -> host-qemu depends on BR2_TOOLCHAIN_USES_GLIBC # python-gobject -> gobject-introspection depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_DBUS # runtime select BR2_PACKAGE_DBUS_PYTHON # runtime select BR2_PACKAGE_PYTHON_GOBJECT # runtime help Python library for Bluetooth Low Energy (BLE) on Linux. https://github.com/ukBaz/python-bluezero comment "python-bluezero needs a glibc toolchain, gcc >= 4.9, host gcc >= 8" depends on BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_8 ================================================ FILE: package/python-bluezero/python-bluezero.hash ================================================ # md5, sha256 from https://pypi.org/pypi/bluezero/json md5 b26e6425d8adc4613b7cdf1d131f8c0b bluezero-0.6.0.tar.gz sha256 d94f0672b1de3ff0040801538143fe9a42c501d8db79bcd183c9e051b8da83bc bluezero-0.6.0.tar.gz # Locally computed sha256 checksums sha256 59319e80b4caa94ace4817c9f84aa16abc9d4d2b5f7866251b5fda92e87ccdef LICENSE ================================================ FILE: package/python-bluezero/python-bluezero.mk ================================================ ################################################################################ # # python-bluezero # ################################################################################ PYTHON_BLUEZERO_VERSION = 0.6.0 PYTHON_BLUEZERO_SOURCE = bluezero-$(PYTHON_BLUEZERO_VERSION).tar.gz PYTHON_BLUEZERO_SITE = https://files.pythonhosted.org/packages/be/15/4a806580ffd359a03184776f37cf201298918f302b414b8a3e594d1be65c PYTHON_BLUEZERO_SETUP_TYPE = setuptools PYTHON_BLUEZERO_LICENSE = MIT PYTHON_BLUEZERO_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-boto3/Config.in ================================================ config BR2_PACKAGE_PYTHON_BOTO3 bool "python-boto3" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_BOTOCORE # runtime select BR2_PACKAGE_PYTHON_JMESPATH # runtime select BR2_PACKAGE_PYTHON_S3TRANSFER # runtime help The AWS SDK for Python. https://github.com/boto/boto3 ================================================ FILE: package/python-boto3/python-boto3.hash ================================================ # sha256 from https://pypi.org/pypi/boto3/json sha256 11a6035060230e92327d4f10fef6bc44188b2cd68504012bc25ed62ac31d670b boto3-1.19.2.tar.gz # Locally computed sha256 checksums sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 LICENSE ================================================ FILE: package/python-boto3/python-boto3.mk ================================================ ################################################################################ # # python-boto3 # ################################################################################ PYTHON_BOTO3_VERSION = 1.19.2 PYTHON_BOTO3_SOURCE = boto3-$(PYTHON_BOTO3_VERSION).tar.gz PYTHON_BOTO3_SITE = https://files.pythonhosted.org/packages/ec/45/d12f9c09b5c4dad8bcb098dfae5e9e1253ed6408efbbd9a3e60bff55b824 PYTHON_BOTO3_SETUP_TYPE = setuptools PYTHON_BOTO3_LICENSE = Apache-2.0 PYTHON_BOTO3_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-botocore/Config.in ================================================ config BR2_PACKAGE_PYTHON_BOTOCORE bool "python-botocore" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_DATEUTIL # runtime select BR2_PACKAGE_PYTHON_JMESPATH # runtime select BR2_PACKAGE_PYTHON_URLLIB3 # runtime select BR2_PACKAGE_PYTHON3_PYEXPAT # runtime select BR2_PACKAGE_PYTHON3_SSL # runtime help Low-level, data-driven core of boto 3. https://github.com/boto/botocore ================================================ FILE: package/python-botocore/python-botocore.hash ================================================ # sha256 from https://pypi.org/pypi/botocore/json sha256 011360e79a4b843aa6591573cfa61e8eddc99b91adab1dfdb9a2b7f2c8511193 botocore-1.22.2.tar.gz # Locally computed sha256 checksums sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 LICENSE.txt ================================================ FILE: package/python-botocore/python-botocore.mk ================================================ ################################################################################ # # python-botocore # ################################################################################ PYTHON_BOTOCORE_VERSION = 1.22.2 PYTHON_BOTOCORE_SOURCE = botocore-$(PYTHON_BOTOCORE_VERSION).tar.gz PYTHON_BOTOCORE_SITE = https://files.pythonhosted.org/packages/0d/95/f2e74e4a91994d9ebe45746f75a8c5cafd723a88270a9772d8d66e1a8ba1 PYTHON_BOTOCORE_SETUP_TYPE = setuptools PYTHON_BOTOCORE_LICENSE = Apache-2.0 PYTHON_BOTOCORE_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-bottle/Config.in ================================================ config BR2_PACKAGE_PYTHON_BOTTLE bool "python-bottle" help Bottle is a fast, simple and lightweight WSGI micro web-framework for Python. It is distributed as a single file module and has no dependencies other than the Python Standard Library. http://bottlepy.org ================================================ FILE: package/python-bottle/python-bottle.hash ================================================ # md5, sha256 from https://pypi.org/pypi/bottle/json md5 50075544706b5e662a3fbd9a98e24b07 bottle-0.12.19.tar.gz sha256 a9d73ffcbc6a1345ca2d7949638db46349f5b2b77dac65d6494d45c23628da2c bottle-0.12.19.tar.gz # Locally computed sha256 checksums sha256 d0e7211f1c3c1a1c56f39d18bcb07f27f480c8a9552617756dda3a335933b8a6 LICENSE ================================================ FILE: package/python-bottle/python-bottle.mk ================================================ ################################################################################ # # python-bottle # ################################################################################ PYTHON_BOTTLE_VERSION = 0.12.19 PYTHON_BOTTLE_SOURCE = bottle-$(PYTHON_BOTTLE_VERSION).tar.gz PYTHON_BOTTLE_SITE = https://files.pythonhosted.org/packages/ea/80/3d2dca1562ffa1929017c74635b4cb3645a352588de89e90d0bb53af3317 PYTHON_BOTTLE_LICENSE = MIT PYTHON_BOTTLE_LICENSE_FILES = LICENSE PYTHON_BOTTLE_CPE_ID_VENDOR = bottlepy PYTHON_BOTTLE_CPE_ID_PRODUCT = bottle PYTHON_BOTTLE_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-brotli/Config.in ================================================ config BR2_PACKAGE_PYTHON_BROTLI bool "python-brotli" depends on BR2_INSTALL_LIBSTDCPP help Python bindings for the Brotli compression library. https://github.com/google/brotli ================================================ FILE: package/python-brotli/python-brotli.hash ================================================ # md5, sha256 from https://pypi.org/pypi/brotli/json md5 08f1f098697c64aa4596468b556d0c94 Brotli-1.0.9.zip sha256 4d1b810aa0ed773f81dceda2cc7b403d01057458730e309856356d4ef4188438 Brotli-1.0.9.zip # Locally computed sha256 checksums sha256 3d180008e36922a4e8daec11c34c7af264fed5962d07924aea928c38e8663c94 LICENSE ================================================ FILE: package/python-brotli/python-brotli.mk ================================================ ################################################################################ # # python-brotli # ################################################################################ PYTHON_BROTLI_VERSION = 1.0.9 PYTHON_BROTLI_SOURCE = Brotli-$(PYTHON_BROTLI_VERSION).zip PYTHON_BROTLI_SITE = https://files.pythonhosted.org/packages/2a/18/70c32fe9357f3eea18598b23aa9ed29b1711c3001835f7cf99a9818985d0 PYTHON_BROTLI_SETUP_TYPE = setuptools PYTHON_BROTLI_LICENSE = MIT PYTHON_BROTLI_LICENSE_FILES = LICENSE PYTHON_BROTLI_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y) PYTHON_BROTLI_CFLAGS += -O0 endif PYTHON_BROTLI_ENV = CFLAGS="$(PYTHON_BROTLI_CFLAGS)" define PYTHON_BROTLI_EXTRACT_CMDS $(UNZIP) -d $(@D) $(PYTHON_BROTLI_DL_DIR)/$(PYTHON_BROTLI_SOURCE) mv $(@D)/Brotli-$(PYTHON_BROTLI_VERSION)/* $(@D) $(RM) -r $(@D)/Brotli-$(PYTHON_BROTLI_VERSION) endef $(eval $(python-package)) ================================================ FILE: package/python-bsdiff4/Config.in ================================================ config BR2_PACKAGE_PYTHON_BSDIFF4 bool "python-bsdiff4" select BR2_PACKAGE_PYTHON_BZIP2 if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_BZIP2 if BR2_PACKAGE_PYTHON3 # runtime help binary diff and patch using the BSDIFF4-format. https://github.com/ilanschnell/bsdiff4 ================================================ FILE: package/python-bsdiff4/python-bsdiff4.hash ================================================ # md5, sha256 from https://pypi.org/pypi/bsdiff4/json md5 58889a1cd439c82c78aa2e4776b1ff38 bsdiff4-1.2.1.tar.gz sha256 87cffc7522effdda03fd1564b212ad2279c0af50d16c3e65776f80acb6705d4b bsdiff4-1.2.1.tar.gz # Locally computed sha256 sha256 c6c921c90383f1c43beb53c49a652d28309a410a7c394c729fd8870271451cf0 LICENSE ================================================ FILE: package/python-bsdiff4/python-bsdiff4.mk ================================================ ################################################################################ # # python-bsdiff4 # ################################################################################ PYTHON_BSDIFF4_VERSION = 1.2.1 PYTHON_BSDIFF4_SOURCE = bsdiff4-$(PYTHON_BSDIFF4_VERSION).tar.gz PYTHON_BSDIFF4_SITE = https://files.pythonhosted.org/packages/d8/97/101315b0d8c8d6340ee310484a1af6a2ccf65d7bb4762c3a669cf9457c71 PYTHON_BSDIFF4_LICENSE = BSD-2-Clause, BSD-Protection (core.c) PYTHON_BSDIFF4_LICENSE_FILES = LICENSE PYTHON_BSDIFF4_CPE_ID_VENDOR = pypi PYTHON_BSDIFF4_CPE_ID_PRODUCT = bsdiff4 PYTHON_BSDIFF4_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-bunch/Config.in ================================================ config BR2_PACKAGE_PYTHON_BUNCH bool "python-bunch" help A dot-accessible dictionary (a la JavaScript objects). http://github.com/dsc/bunch ================================================ FILE: package/python-bunch/python-bunch.hash ================================================ # md5, sha256 from https://pypi.org/pypi/bunch/json md5 0a829d64e95ed96defbcae2bf9061bb0 bunch-1.0.1.tar.gz sha256 50c77a0fc0cb372dfe48b5e11937d5f70e743adbf42683f3a6d2857645a76aaa bunch-1.0.1.tar.gz # Locally computed sha256 checksums sha256 57ca95c92059c8380625192462979bd32994aae3fcdf902ff6eb1e467eeb0469 LICENSE.txt ================================================ FILE: package/python-bunch/python-bunch.mk ================================================ ################################################################################ # # python-bunch # ################################################################################ PYTHON_BUNCH_VERSION = 1.0.1 PYTHON_BUNCH_SOURCE = bunch-$(PYTHON_BUNCH_VERSION).tar.gz PYTHON_BUNCH_SITE = https://files.pythonhosted.org/packages/ef/bf/a4cf1779a4ffb4f610903fa08e15d1f4a8a2f4e3353a02afbe097c5bf4a8 PYTHON_BUNCH_SETUP_TYPE = setuptools PYTHON_BUNCH_LICENSE = MIT PYTHON_BUNCH_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-cached-property/Config.in ================================================ config BR2_PACKAGE_PYTHON_CACHED_PROPERTY bool "python-cached-property" help A decorator for caching properties in classes. https://github.com/pydanny/cached-property ================================================ FILE: package/python-cached-property/python-cached-property.hash ================================================ # md5, sha256 from https://pypi.org/pypi/cached-property/json md5 3451c63f8733ea0756ca1dd2b0c04bb8 cached-property-1.5.2.tar.gz sha256 9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130 cached-property-1.5.2.tar.gz # Locally computed sha256 checksums sha256 ba4756c8039b25b66e3c456cc5bf635aa528cf459b97ee1499d06684ccd89b9a LICENSE ================================================ FILE: package/python-cached-property/python-cached-property.mk ================================================ ################################################################################ # # python-cached-property # ################################################################################ PYTHON_CACHED_PROPERTY_VERSION = 1.5.2 PYTHON_CACHED_PROPERTY_SOURCE = cached-property-$(PYTHON_CACHED_PROPERTY_VERSION).tar.gz PYTHON_CACHED_PROPERTY_SITE = https://files.pythonhosted.org/packages/61/2c/d21c1c23c2895c091fa7a91a54b6872098fea913526932d21902088a7c41 PYTHON_CACHED_PROPERTY_SETUP_TYPE = setuptools PYTHON_CACHED_PROPERTY_LICENSE = BSD-3-Clause PYTHON_CACHED_PROPERTY_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-can/Config.in ================================================ config BR2_PACKAGE_PYTHON_CAN bool "python-can" select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON_SQLITE if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_SQLITE if BR2_PACKAGE_PYTHON3 # runtime select BR2_PACKAGE_PYTHON_TYPING if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON_AENUM # runtime select BR2_PACKAGE_PYTHON_WRAPT # runtime select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 help This module provides controller area network support for Python. https://github.com/hardbyte/python-can ================================================ FILE: package/python-can/python-can.hash ================================================ # sha256 from https://pypi.org/pypi/python-can sha256 2d3c223b7adc4dd46ce258d4a33b7e0dbb6c339e002faa40ee4a69d5fdce9449 python-can-3.3.4.tar.gz # Locally computed sha256 checksums sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.txt ================================================ FILE: package/python-can/python-can.mk ================================================ ################################################################################ # # python-can # ################################################################################ PYTHON_CAN_VERSION = 3.3.4 PYTHON_CAN_SITE = https://files.pythonhosted.org/packages/97/dd/5e5ae96db41ba57dde127e0600c3d324239ed692e167296c5fdb992cbf41 PYTHON_CAN_SETUP_TYPE = setuptools PYTHON_CAN_LICENSE = LGPL-3.0 PYTHON_CAN_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-canopen/Config.in ================================================ config BR2_PACKAGE_PYTHON_CANOPEN bool "python-canopen" select BR2_PACKAGE_PYTHON_CAN # runtime help A Python implementation of the CANopen standard. The aim of the project is to support the most common parts of the CiA 301 standard in a Pythonic interface. https://github.com/christiansandberg/canopen ================================================ FILE: package/python-canopen/python-canopen.hash ================================================ # sha256 from https://pypi.org/pypi/canopen/json sha256 4394770d528e93a48936138c4a7b37b5dff26d54f82a435ad9790cd1e43f55b9 canopen-1.0.0.tar.gz # Locally computed sha256 checksums sha256 0740d30978affcd91c0fc817b7cf942a332381bf0380fe17e60c6a0b377c6e0d LICENSE.txt ================================================ FILE: package/python-canopen/python-canopen.mk ================================================ ################################################################################ # # python-canopen # ################################################################################ PYTHON_CANOPEN_VERSION = 1.0.0 PYTHON_CANOPEN_SOURCE = canopen-$(PYTHON_CANOPEN_VERSION).tar.gz PYTHON_CANOPEN_SITE = https://files.pythonhosted.org/packages/1f/2b/55b6d82b3dcba184a01c6fe027df239953940e36a463cd24b71e67bd1f37 PYTHON_CANOPEN_SETUP_TYPE = setuptools PYTHON_CANOPEN_LICENSE = MIT PYTHON_CANOPEN_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-cbor/Config.in ================================================ config BR2_PACKAGE_PYTHON_CBOR bool "python-cbor" help RFC 7049 - Concise Binary Object Representation. https://pypi.python.org/pypi/cbor ================================================ FILE: package/python-cbor/python-cbor.hash ================================================ # md5 from https://pypi.python.org/pypi/cbor/json, sha256 locally computed md5 22b03b59784fd78cb6c27aa498af0db6 cbor-1.0.0.tar.gz sha256 13225a262ddf5615cbd9fd55a76a0d53069d18b07d2e9f19c39e6acb8609bbb6 cbor-1.0.0.tar.gz ================================================ FILE: package/python-cbor/python-cbor.mk ================================================ ################################################################################ # # python-cbor # ################################################################################ PYTHON_CBOR_VERSION = 1.0.0 PYTHON_CBOR_SOURCE = cbor-$(PYTHON_CBOR_VERSION).tar.gz PYTHON_CBOR_SITE = https://pypi.python.org/packages/9b/99/01c6a987c920500189eb74a291bd3a388e6c7cf85736bb6b066d9833315e PYTHON_CBOR_LICENSE = Apache PYTHON_CBOR_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-cbor2/Config.in ================================================ config BR2_PACKAGE_PYTHON_CBOR2 bool "python-cbor2" depends on BR2_PACKAGE_PYTHON3 help Pure Python CBOR (de)serializer with extensive tag support. https://cbor2.readthedocs.io/ ================================================ FILE: package/python-cbor2/python-cbor2.hash ================================================ # md5, sha256 from https://pypi.org/pypi/cbor2/json md5 87b3ad8a9dd8875fa46c6ec06e3fb0ba cbor2-5.4.1.tar.gz sha256 a8bf432f6cb595f50aeb8fed2a4aa3b3f7caa7f135fb57e4378eaa39242feac9 cbor2-5.4.1.tar.gz # Locally computed sha256 checksums sha256 a6afd126d8f545a15166a22f25fadff4b9fb4978bbdd17e97d97d950b66d2fef LICENSE.txt ================================================ FILE: package/python-cbor2/python-cbor2.mk ================================================ ################################################################################ # # python-cbor2 # ################################################################################ PYTHON_CBOR2_VERSION = 5.4.1 PYTHON_CBOR2_SOURCE = cbor2-$(PYTHON_CBOR2_VERSION).tar.gz PYTHON_CBOR2_SITE = https://files.pythonhosted.org/packages/9e/25/9dd432c051010faea6a702cb85d0b53dc9d5414513866b6a73b3ac954092 PYTHON_CBOR2_SETUP_TYPE = setuptools PYTHON_CBOR2_LICENSE = MIT PYTHON_CBOR2_LICENSE_FILES = LICENSE.txt PYTHON_CBOR2_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-cchardet/Config.in ================================================ config BR2_PACKAGE_PYTHON_CCHARDET bool "python-cchardet" depends on BR2_PACKAGE_PYTHON3 depends on BR2_INSTALL_LIBSTDCPP help cChardet is high speed universal character encoding detector. https://github.com/PyYoshi/cChardet comment "python-cchardet needs a toolchain w/ C++" depends on BR2_PACKAGE_PYTHON3 depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/python-cchardet/python-cchardet.hash ================================================ # md5, sha256 from https://pypi.org/pypi/cchardet/json md5 8a76472ad09c68c12069203ea9348ee3 cchardet-2.1.7.tar.gz sha256 c428b6336545053c2589f6caf24ea32276c6664cb86db817e03a94c60afa0eaf cchardet-2.1.7.tar.gz # Locally computed sha256 checksums sha256 107a29ccdd2d778aa2df5462f85dddfa099059abd22e064e07ec2cc9bafc37cd COPYING ================================================ FILE: package/python-cchardet/python-cchardet.mk ================================================ ################################################################################ # # python-cchardet # ################################################################################ PYTHON_CCHARDET_VERSION = 2.1.7 PYTHON_CCHARDET_SOURCE = cchardet-$(PYTHON_CCHARDET_VERSION).tar.gz PYTHON_CCHARDET_SITE = https://files.pythonhosted.org/packages/a8/5d/090c9f0312b7988a9433246c9cf0b566b1ae1374368cfb8ac897218a4f65 PYTHON_CCHARDET_SETUP_TYPE = setuptools PYTHON_CCHARDET_LICENSE = MPL-1.1 PYTHON_CCHARDET_LICENSE_FILES = COPYING $(eval $(python-package)) ================================================ FILE: package/python-certifi/Config.in ================================================ config BR2_PACKAGE_PYTHON_CERTIFI bool "python-certifi" help Python package for providing Mozilla's CA Bundle. https://certifi.io/ ================================================ FILE: package/python-certifi/python-certifi.hash ================================================ # md5, sha256 from https://pypi.org/pypi/certifi/json md5 4b38238b7305fcb3ffbc4368be4e8845 certifi-2021.5.30.tar.gz sha256 2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee certifi-2021.5.30.tar.gz # Locally computed sha256 checksums sha256 be9d82f36112f87a7f1d74ecd4887e1467bbae8878a84004a00117b1e475a3e2 LICENSE ================================================ FILE: package/python-certifi/python-certifi.mk ================================================ ################################################################################ # # python-certifi # ################################################################################ PYTHON_CERTIFI_VERSION = 2021.5.30 PYTHON_CERTIFI_SOURCE = certifi-$(PYTHON_CERTIFI_VERSION).tar.gz PYTHON_CERTIFI_SITE = https://files.pythonhosted.org/packages/6d/78/f8db8d57f520a54f0b8a438319c342c61c22759d8f9a1cd2e2180b5e5ea9 PYTHON_CERTIFI_SETUP_TYPE = setuptools PYTHON_CERTIFI_LICENSE = ISC (Python code), MPL-2.0 (cacert.pem) PYTHON_CERTIFI_LICENSE_FILES = LICENSE $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-cffi/Config.in ================================================ config BR2_PACKAGE_PYTHON_CFFI bool "python-cffi" select BR2_PACKAGE_LIBFFI select BR2_PACKAGE_PYTHON_PYCPARSER # runtime help This is the Foreign Function Interface for Python calling C code. The aim of this project is to provide a convenient and reliable way of calling C code from Python. https://pypi.python.org/pypi/cffi ================================================ FILE: package/python-cffi/python-cffi.hash ================================================ # md5, sha256 from https://pypi.org/pypi/cffi/json md5 5c118a18ea897df164dbff67a32876fc cffi-1.14.6.tar.gz sha256 c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd cffi-1.14.6.tar.gz # Locally computed sha256 checksums sha256 04b80f5b077bbed68808cfebadeb5e3523f2a8c9a96495c587bd96df1eac2a33 LICENSE ================================================ FILE: package/python-cffi/python-cffi.mk ================================================ ################################################################################ # # python-cffi # ################################################################################ # Please keep in sync with package/python3-cffi/python3-cffi.mk PYTHON_CFFI_VERSION = 1.14.6 PYTHON_CFFI_SOURCE = cffi-$(PYTHON_CFFI_VERSION).tar.gz PYTHON_CFFI_SITE = https://files.pythonhosted.org/packages/2e/92/87bb61538d7e60da8a7ec247dc048f7671afe17016cd0008b3b710012804 PYTHON_CFFI_SETUP_TYPE = setuptools PYTHON_CFFI_DEPENDENCIES = host-pkgconf libffi PYTHON_CFFI_LICENSE = MIT PYTHON_CFFI_LICENSE_FILES = LICENSE # This host package uses pkg-config to find libffi, so we have to # provide the proper hints for pkg-config to behave properly for host # packages. HOST_PYTHON_CFFI_ENV = \ PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \ PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ PKG_CONFIG_SYSROOT_DIR="/" \ PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/share/pkgconfig" HOST_PYTHON_CFFI_DEPENDENCIES = host-pkgconf host-python-pycparser host-libffi $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-channels/Config.in ================================================ config BR2_PACKAGE_PYTHON_CHANNELS bool "python-channels" # python-daphne -> python-autobahn -> python-cryptography depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_PYTHON3 # python-daphne select BR2_PACKAGE_PYTHON_ASGIREF # runtime select BR2_PACKAGE_PYTHON_DAPHNE # runtime select BR2_PACKAGE_PYTHON_DJANGO # runtime help Channels augments Django to bring WebSocket, long-poll HTTP, task offloading and other async support to your code, using familiar Django design patterns and a flexible underlying framework that lets you not only customize behaviours but also write support for your own protocols and needs. http://github.com/django/channels ================================================ FILE: package/python-channels/python-channels.hash ================================================ # md5, sha256 from https://pypi.org/pypi/channels/json md5 6f3fb75828b681a69372934a09ac3f32 channels-2.3.1.tar.gz sha256 6b8ebd93fe0041a23e31c9f4130d92fadb9c0040c0eb377a004540631325a31d channels-2.3.1.tar.gz # Locally computed sha256 checksums sha256 b846415d1b514e9c1dff14a22deb906d794bc546ca6129f950a18cd091e2a669 LICENSE ================================================ FILE: package/python-channels/python-channels.mk ================================================ ################################################################################ # # python-channels # ################################################################################ PYTHON_CHANNELS_VERSION = 2.3.1 PYTHON_CHANNELS_SOURCE = channels-$(PYTHON_CHANNELS_VERSION).tar.gz PYTHON_CHANNELS_SITE = https://files.pythonhosted.org/packages/75/53/2db9662a52dcedb02a25f87d8efc5e630059967790e4c10887dbd2db2073 PYTHON_CHANNELS_SETUP_TYPE = setuptools PYTHON_CHANNELS_LICENSE = BSD-3-Clause PYTHON_CHANNELS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-channels-redis/Config.in ================================================ config BR2_PACKAGE_PYTHON_CHANNELS_REDIS bool "python-channels-redis" # python-channels -> python-daphne -> python-autobahn -> python-cryptography depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_PYTHON3 # python-channels select BR2_PACKAGE_PYTHON_AIOREDIS # runtime select BR2_PACKAGE_PYTHON_ASGIREF # runtime select BR2_PACKAGE_PYTHON_CHANNELS # runtime select BR2_PACKAGE_PYTHON_MSGPACK # runtime help A Django Channels channel layer that uses Redis as its backing store, and supports both a single-server and sharded configurations, as well as group support. http://github.com/django/channels_redis/ ================================================ FILE: package/python-channels-redis/python-channels-redis.hash ================================================ # md5, sha256 from https://pypi.org/pypi/channels-redis/json md5 9ec9ffd467e181906f257d6c0dbabf45 channels_redis-2.4.1.tar.gz sha256 ddfa0c067085fdce24fb80d9c0b848638cbdbf0e1167f14eb2e99d635ad216e6 channels_redis-2.4.1.tar.gz # Locally computed sha256 checksums sha256 b846415d1b514e9c1dff14a22deb906d794bc546ca6129f950a18cd091e2a669 LICENSE ================================================ FILE: package/python-channels-redis/python-channels-redis.mk ================================================ ################################################################################ # # python-channels-redis # ################################################################################ PYTHON_CHANNELS_REDIS_VERSION = 2.4.1 PYTHON_CHANNELS_REDIS_SOURCE = channels_redis-$(PYTHON_CHANNELS_REDIS_VERSION).tar.gz PYTHON_CHANNELS_REDIS_SITE = https://files.pythonhosted.org/packages/87/a9/8d11c32ae6bf3a2cc893185f7d1e03b80bda680131a08473c07ed1fe591d PYTHON_CHANNELS_REDIS_SETUP_TYPE = setuptools PYTHON_CHANNELS_REDIS_LICENSE = BSD-3-Clause PYTHON_CHANNELS_REDIS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-characteristic/Config.in ================================================ config BR2_PACKAGE_PYTHON_CHARACTERISTIC bool "python-characteristic" help Python attributes without boilerplate. https://pypi.python.org/pypi/characteristic ================================================ FILE: package/python-characteristic/python-characteristic.hash ================================================ # md5 from https://pypi.python.org/pypi?:action=show_md5&digest=b249368dd021fde1c06b4802867c0913 md5 b249368dd021fde1c06b4802867c0913 characteristic-14.3.0.tar.gz # Locally computed sha256 ded68d4e424115ed44e5c83c2a901a0b6157a959079d7591d92106ffd3ada380 characteristic-14.3.0.tar.gz sha256 0af91b662f8428b28f5e517b049a0bb9feeb59b1adaa5c9418c1579f9485107c LICENSE ================================================ FILE: package/python-characteristic/python-characteristic.mk ================================================ ################################################################################ # # python-characteristic # ################################################################################ PYTHON_CHARACTERISTIC_VERSION = 14.3.0 PYTHON_CHARACTERISTIC_SOURCE = characteristic-$(PYTHON_CHARACTERISTIC_VERSION).tar.gz PYTHON_CHARACTERISTIC_SITE = https://pypi.python.org/packages/source/c/characteristic PYTHON_CHARACTERISTIC_LICENSE = MIT PYTHON_CHARACTERISTIC_LICENSE_FILES = LICENSE PYTHON_CHARACTERISTIC_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-chardet/Config.in ================================================ config BR2_PACKAGE_PYTHON_CHARDET bool "python-chardet" select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime help Universal encoding detector for Python 2 and 3. https://github.com/chardet/chardet ================================================ FILE: package/python-chardet/python-chardet.hash ================================================ # md5, sha256 from https://pypi.org/pypi/chardet/json md5 bc9a5603d8d0994b2d4cbf255f99e654 chardet-4.0.0.tar.gz sha256 0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa chardet-4.0.0.tar.gz # Locally computed sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 LICENSE ================================================ FILE: package/python-chardet/python-chardet.mk ================================================ ################################################################################ # # python-chardet # ################################################################################ PYTHON_CHARDET_VERSION = 4.0.0 PYTHON_CHARDET_SOURCE = chardet-$(PYTHON_CHARDET_VERSION).tar.gz PYTHON_CHARDET_SITE = https://files.pythonhosted.org/packages/ee/2d/9cdc2b527e127b4c9db64b86647d567985940ac3698eeabc7ffaccb4ea61 PYTHON_CHARDET_SETUP_TYPE = setuptools PYTHON_CHARDET_LICENSE = LGPL-2.1+ PYTHON_CHARDET_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-charset-normalizer/Config.in ================================================ config BR2_PACKAGE_PYTHON_CHARSET_NORMALIZER bool "python-charset-normalizer" depends on BR2_PACKAGE_PYTHON3 help The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. https://github.com/ousret/charset_normalizer ================================================ FILE: package/python-charset-normalizer/python-charset-normalizer.hash ================================================ # md5, sha256 from https://pypi.org/pypi/charset-normalizer/json md5 b28e4463613ff3911d5a2dc62b96233f charset-normalizer-2.0.7.tar.gz sha256 e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0 charset-normalizer-2.0.7.tar.gz # Locally computed sha256 checksums sha256 eb31a0c5a4fb09b8a4e32055d25c1e5f9c358a2752fef3cd720213d1ccfee241 LICENSE ================================================ FILE: package/python-charset-normalizer/python-charset-normalizer.mk ================================================ ################################################################################ # # python-charset-normalizer # ################################################################################ PYTHON_CHARSET_NORMALIZER_VERSION = 2.0.7 PYTHON_CHARSET_NORMALIZER_SOURCE = charset-normalizer-$(PYTHON_CHARSET_NORMALIZER_VERSION).tar.gz PYTHON_CHARSET_NORMALIZER_SITE = https://files.pythonhosted.org/packages/9f/c5/334c019f92c26e59637bb42bd14a190428874b2b2de75a355da394cf16c1 PYTHON_CHARSET_NORMALIZER_SETUP_TYPE = setuptools PYTHON_CHARSET_NORMALIZER_LICENSE = MIT PYTHON_CHARSET_NORMALIZER_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-cheetah/Config.in ================================================ config BR2_PACKAGE_PYTHON_CHEETAH bool "python-cheetah" help Cheetah is an open source template engine and code generation tool. It can be used standalone or combined with other tools and frameworks. Web development is its principle use, but Cheetah is very flexible and is also being used to generate C++ game code, Java, sql, form emails and even Python code. https://pypi.org/project/Cheetah3/ ================================================ FILE: package/python-cheetah/python-cheetah.hash ================================================ # From https://pypi.org/pypi/Cheetah3/json md5 42bb9da785974c7e4089aa754ff99a73 Cheetah3-3.2.6.post2.tar.gz sha256 63157d7a00a273b59676b5be5aa817c75c37efc88478231f1a160f4cfb7f7878 Cheetah3-3.2.6.post2.tar.gz # Locally computed sha256 checksums sha256 635349ae512fafc2e60eb74a50d0a5276fa06c00b5ecb20da53546449ddc45ea LICENSE ================================================ FILE: package/python-cheetah/python-cheetah.mk ================================================ ################################################################################ # # python-cheetah # ################################################################################ # Please keep in sync with package/python3-cheetah/python3-cheetah.mk PYTHON_CHEETAH_VERSION = 3.2.6.post2 PYTHON_CHEETAH_SOURCE = Cheetah3-$(PYTHON_CHEETAH_VERSION).tar.gz PYTHON_CHEETAH_SITE = https://files.pythonhosted.org/packages/c0/97/c3fa47e223207e6ca6b501a954c5c959ed3e99f2a1ceec9918238ce38418 PYTHON_CHEETAH_LICENSE = MIT PYTHON_CHEETAH_LICENSE_FILES = LICENSE PYTHON_CHEETAH_SETUP_TYPE = setuptools $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-cheroot/Config.in ================================================ config BR2_PACKAGE_PYTHON_CHEROOT bool "python-cheroot" depends on BR2_PACKAGE_PYTHON3 # python-more-itertools, python-jaraco-functools select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_MORE_ITERTOOLS # runtime select BR2_PACKAGE_PYTHON_JARACO_FUNCTOOLS # runtime help Cheroot is the high-performance, pure-Python HTTP server used by CherryPy. https://github.com/cherrypy/cheroot ================================================ FILE: package/python-cheroot/python-cheroot.hash ================================================ # md5, sha256 from https://pypi.org/pypi/cheroot/json md5 7ace4b584a8092deb9f6b0142a627086 cheroot-8.2.1.tar.gz sha256 5b525b3e4a755adf78070ab54c1821fb860d4255a9317dba2b88eb2df2441cff cheroot-8.2.1.tar.gz # Locally computed sha256 checksums sha256 da6dc218683f6dab91c6367f00bf33095d980fb1f04d430c81c5e6994b8605e0 LICENSE.md ================================================ FILE: package/python-cheroot/python-cheroot.mk ================================================ ################################################################################ # # python-cheroot # ################################################################################ PYTHON_CHEROOT_VERSION = 8.2.1 PYTHON_CHEROOT_SOURCE = cheroot-$(PYTHON_CHEROOT_VERSION).tar.gz PYTHON_CHEROOT_SITE = https://files.pythonhosted.org/packages/9b/4d/2e51e7ce60f54a5279e91648b9b9b497d4d22bc624ecae6af1b6866144a7 PYTHON_CHEROOT_LICENSE = BSD-3-Clause PYTHON_CHEROOT_LICENSE_FILES = LICENSE.md PYTHON_CHEROOT_SETUP_TYPE = setuptools PYTHON_CHEROOT_DEPENDENCIES = host-python-setuptools-scm host-python-setuptools-scm-git-archive $(eval $(python-package)) ================================================ FILE: package/python-cherrypy/Config.in ================================================ config BR2_PACKAGE_PYTHON_CHERRYPY bool "python-cherrypy" depends on BR2_PACKAGE_PYTHON3 # python-cheroot, python-portend select BR2_PACKAGE_PYTHON_CHEROOT # runtime select BR2_PACKAGE_PYTHON_JARACO_CLASSES # runtime select BR2_PACKAGE_PYTHON_PORTEND # runtime select BR2_PACKAGE_PYTHON3_PYEXPAT # runtime select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON3_ZLIB # runtime help A minimalist web framework http://www.cherrypy.org ================================================ FILE: package/python-cherrypy/python-cherrypy.hash ================================================ # md5 from https://pypi.python.org/pypi/CherryPy/json, sha256 locally computed md5 e21fd0c5706504a8f26c46d808a14255 CherryPy-12.0.1.tar.gz sha256 6a3a90a43b1e05bd4634c60acfdcf34efe74f9f8746aca14dbe95a9b69db30ea CherryPy-12.0.1.tar.gz sha256 02f4efe6e7dcd218c33cfa065c0552de983b5ad563b053e97697c5abd2ef14f9 LICENSE.md ================================================ FILE: package/python-cherrypy/python-cherrypy.mk ================================================ ################################################################################ # # python-cherrypy # ################################################################################ PYTHON_CHERRYPY_VERSION = 12.0.1 PYTHON_CHERRYPY_SOURCE = CherryPy-$(PYTHON_CHERRYPY_VERSION).tar.gz PYTHON_CHERRYPY_SITE = https://pypi.python.org/packages/be/d8/a8ef56bfe1c39d466b8d55b496b64459cc43dec71361d88edf904901637f PYTHON_CHERRYPY_LICENSE = BSD-3-Clause PYTHON_CHERRYPY_LICENSE_FILES = LICENSE.md PYTHON_CHERRYPY_SETUP_TYPE = setuptools PYTHON_CHERRYPY_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-click/Config.in ================================================ config BR2_PACKAGE_PYTHON_CLICK bool "python-click" help A simple wrapper around optparse for powerful command line utilities. https://pypi.python.org/pypi/click ================================================ FILE: package/python-click/python-click.hash ================================================ # md5, sha256 from https://pypi.org/pypi/click/json md5 53692f62cb99a1a10c59248f1776d9c0 click-7.1.2.tar.gz sha256 d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a click-7.1.2.tar.gz # Locally computed sha256 sha256 9a8ad106a394e853bfe21f42f4e72d592819a22805d991b5f3275029292b658d LICENSE.rst ================================================ FILE: package/python-click/python-click.mk ================================================ ################################################################################ # # python-click # ################################################################################ PYTHON_CLICK_VERSION = 7.1.2 PYTHON_CLICK_SOURCE = click-$(PYTHON_CLICK_VERSION).tar.gz PYTHON_CLICK_SITE = https://files.pythonhosted.org/packages/27/6f/be940c8b1f1d69daceeb0032fee6c34d7bd70e3e649ccac0951500b4720e PYTHON_CLICK_LICENSE = BSD-3-Clause PYTHON_CLICK_LICENSE_FILES = LICENSE.rst PYTHON_CLICK_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-colibris/Config.in ================================================ config BR2_PACKAGE_PYTHON_COLIBRIS bool "python-colibris" depends on BR2_PACKAGE_PYTHON3 help A collection of libraries glued together to make writing RESTful microservices easier. https://gitlab.com/safefleet/colibris ================================================ FILE: package/python-colibris/python-colibris.hash ================================================ sha256 8cf4d3f4c5d6e8382ed23495d501ef8df25d59490c4faf86a995c3012d331b32 colibris-0.6.2.tar.gz ================================================ FILE: package/python-colibris/python-colibris.mk ================================================ ################################################################################ # # python-colibris # ################################################################################ PYTHON_COLIBRIS_VERSION = 0.6.2 PYTHON_COLIBRIS_SOURCE = colibris-$(PYTHON_COLIBRIS_VERSION).tar.gz PYTHON_COLIBRIS_SITE = https://files.pythonhosted.org/packages/f6/39/9257111da84ba61f451addc84a03b07b967c398c5eef85b739849ebaccb0 PYTHON_COLIBRIS_SETUP_TYPE = setuptools PYTHON_COLIBRIS_LICENSE = Apache-2.0 PYTHON_COLIBRIS_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-colorama/Config.in ================================================ config BR2_PACKAGE_PYTHON_COLORAMA bool "python-colorama" help Cross-platform colored terminal text. https://github.com/tartley/colorama ================================================ FILE: package/python-colorama/python-colorama.hash ================================================ # md5, sha256 from https://pypi.org/pypi/colorama/json md5 57b22f2597f63df051b69906fbf310cc colorama-0.4.4.tar.gz sha256 5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b colorama-0.4.4.tar.gz # Locally computed sha256 checksums sha256 cac35c02686e5d04a5a7140bfb3b36e73aed496656e891102e428886d7930318 LICENSE.txt ================================================ FILE: package/python-colorama/python-colorama.mk ================================================ ################################################################################ # # python-colorama # ################################################################################ PYTHON_COLORAMA_VERSION = 0.4.4 PYTHON_COLORAMA_SOURCE = colorama-$(PYTHON_COLORAMA_VERSION).tar.gz PYTHON_COLORAMA_SITE = https://files.pythonhosted.org/packages/1f/bb/5d3246097ab77fa083a61bd8d3d527b7ae063c7d8e8671b1cf8c4ec10cbe PYTHON_COLORAMA_SETUP_TYPE = setuptools PYTHON_COLORAMA_LICENSE = BSD-3-Clause PYTHON_COLORAMA_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-colorlog/Config.in ================================================ config BR2_PACKAGE_PYTHON_COLORLOG bool "python-colorlog" depends on BR2_PACKAGE_PYTHON3 help Log formatting with colors. https://github.com/borntyping/python-colorlog ================================================ FILE: package/python-colorlog/python-colorlog.hash ================================================ # md5, sha256 from https://pypi.org/pypi/colorlog/json md5 f1b92c1cac428b2e3c9ac7edf2988440 colorlog-6.4.1.tar.gz sha256 af99440154a01f27c09256760ea3477982bf782721feaa345904e806879df4d8 colorlog-6.4.1.tar.gz # Locally computed sha256 checksums sha256 b1d9082bc483623fd59fc7279b457f0e40d942a76426cde257239e04dfe4125a LICENSE ================================================ FILE: package/python-colorlog/python-colorlog.mk ================================================ ################################################################################ # # python-colorlog # ################################################################################ PYTHON_COLORLOG_VERSION = 6.4.1 PYTHON_COLORLOG_SOURCE = colorlog-$(PYTHON_COLORLOG_VERSION).tar.gz PYTHON_COLORLOG_SITE = https://files.pythonhosted.org/packages/d6/4a/840f6cb7e922a717c765a3cdc6988aff22a6ef211d88c8d16701dfbd664f PYTHON_COLORLOG_SETUP_TYPE = setuptools PYTHON_COLORLOG_LICENSE = MIT PYTHON_COLORLOG_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-colorzero/Config.in ================================================ config BR2_PACKAGE_PYTHON_COLORZERO bool "python-colorzero" depends on BR2_PACKAGE_PYTHON3 help A color manipulation library for Python. https://github.com/waveform80/colorzero ================================================ FILE: package/python-colorzero/python-colorzero.hash ================================================ # Locally computed sha256 86c9933b004aec8ce1c476d1d1129e00325c7724df3c09aa353d5f8e883ed08d python-colorzero-2.0.tar.gz # Locally computed sha256 ee1c76f465410c34802ddf81d70e1ea7a4542cf58459425038498d8f4e36bb45 LICENSE.txt ================================================ FILE: package/python-colorzero/python-colorzero.mk ================================================ ################################################################################ # # python-colorzero # ################################################################################ PYTHON_COLORZERO_VERSION = 2.0 PYTHON_COLORZERO_SITE = $(call github,waveform80,colorzero,release-$(PYTHON_COLORZERO_VERSION)) PYTHON_COLORZERO_LICENSE = BSD-3-Clause PYTHON_COLORZERO_LICENSE_FILES = LICENSE.txt PYTHON_COLORZERO_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-configobj/Config.in ================================================ config BR2_PACKAGE_PYTHON_CONFIGOBJ bool "python-configobj" depends on BR2_PACKAGE_PYTHON help ConfigObj is a simple but powerful config file reader and writer: an ini file round tripper. Its main feature is that it is very easy to use, with a straightforward programmer's interface and a simple syntax for config files. http://www.voidspace.org.uk/python/configobj.html ================================================ FILE: package/python-configobj/python-configobj.hash ================================================ # md5 from https://pypi.python.org/pypi/configobj/json, sha256 locally computed md5 e472a3a1c2a67bb0ec9b5d54c13a47d6 configobj-5.0.6.tar.gz sha256 a2f5650770e1c87fb335af19a9b7eb73fc05ccf22144eb68db7d00cd2bcb0902 configobj-5.0.6.tar.gz ================================================ FILE: package/python-configobj/python-configobj.mk ================================================ ################################################################################ # # python-configobj # ################################################################################ PYTHON_CONFIGOBJ_VERSION = 5.0.6 PYTHON_CONFIGOBJ_SOURCE = configobj-$(PYTHON_CONFIGOBJ_VERSION).tar.gz PYTHON_CONFIGOBJ_SITE = https://pypi.python.org/packages/64/61/079eb60459c44929e684fa7d9e2fdca403f67d64dd9dbac27296be2e0fab PYTHON_CONFIGOBJ_LICENSE = BSD-3-Clause # License only mentioned in the source PYTHON_CONFIGOBJ_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-configshell-fb/Config.in ================================================ config BR2_PACKAGE_PYTHON_CONFIGSHELL_FB bool "python-configshell-fb" depends on BR2_PACKAGE_PYTHON3 # python-urwid select BR2_PACKAGE_PYTHON_PYPARSING select BR2_PACKAGE_PYTHON3_READLINE select BR2_PACKAGE_PYTHON_SIX select BR2_PACKAGE_PYTHON_URWID help configshell-fb is a Python library that provides a framework for building simple but nice CLI-based applications. https://github.com/open-iscsi/configshell-fb ================================================ FILE: package/python-configshell-fb/python-configshell-fb.hash ================================================ # locally computed sha256 3685446d6ee02881930bb2fdc5fdd254938da66ce9843a5b3676c4246b058e4b python-configshell-fb-1.1.fb18.tar.gz sha256 5df2a0d87d6c562f0ea11c688ac52532aa28d744cabc7994ff0537f64b3b3320 COPYING ================================================ FILE: package/python-configshell-fb/python-configshell-fb.mk ================================================ ################################################################################ # # python-configshell-fb # ################################################################################ # When upgrading the version, be sure to also upgrade python-rtslib-fb # and targetcli-fb at the same time. PYTHON_CONFIGSHELL_FB_VERSION = 1.1.fb18 PYTHON_CONFIGSHELL_FB_SITE = $(call github,open-iscsi,configshell-fb,v$(PYTHON_CONFIGSHELL_FB_VERSION)) PYTHON_CONFIGSHELL_FB_LICENSE = Apache-2.0 PYTHON_CONFIGSHELL_FB_LICENSE_FILES = COPYING PYTHON_CONFIGSHELL_FB_SETUP_TYPE = setuptools PYTHON_CONFIGSHELL_FB_DEPENDENCIES = python-pyparsing python-six python-urwid $(eval $(python-package)) ================================================ FILE: package/python-constantly/Config.in ================================================ config BR2_PACKAGE_PYTHON_CONSTANTLY bool "python-constantly" help A library that provides symbolic constant support. It includes collections and constants with text, numeric, and bit flag values. https://github.com/twisted/constantly ================================================ FILE: package/python-constantly/python-constantly.hash ================================================ # md5 from https://pypi.python.org/pypi/constantly/json md5 f0762f083d83039758e53f8cf0086eef constantly-15.1.0.tar.gz # Locally computed sha256 586372eb92059873e29eba4f9dec8381541b4d3834660707faf8ba59146dfc35 constantly-15.1.0.tar.gz sha256 020870fcaf4bf9c50b233e331817094fe109b91c0880570fd476f527cfbfc085 LICENSE ================================================ FILE: package/python-constantly/python-constantly.mk ================================================ ################################################################################ # # python-constantly # ################################################################################ PYTHON_CONSTANTLY_VERSION = 15.1.0 PYTHON_CONSTANTLY_SOURCE = constantly-$(PYTHON_CONSTANTLY_VERSION).tar.gz PYTHON_CONSTANTLY_SITE = https://pypi.python.org/packages/95/f1/207a0a478c4bb34b1b49d5915e2db574cadc415c9ac3a7ef17e29b2e8951 PYTHON_CONSTANTLY_SETUP_TYPE = setuptools PYTHON_CONSTANTLY_LICENSE = MIT PYTHON_CONSTANTLY_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-couchdb/Config.in ================================================ config BR2_PACKAGE_PYTHON_COUCHDB bool "python-couchdb" select BR2_PACKAGE_PYTHON_SSL if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_SSL if BR2_PACKAGE_PYTHON3 # runtime help Python client library for working with CouchDB. https://github.com/djc/couchdb-python/ ================================================ FILE: package/python-couchdb/python-couchdb.hash ================================================ # md5, sha256 from https://pypi.org/pypi/couchdb/json md5 de40696472202d728cfca4279629e4ff CouchDB-1.2.tar.gz sha256 1386a1a43f25bed3667e3b805222054940d674fa1967fa48e9d2012a18630ab7 CouchDB-1.2.tar.gz # Locally computed sha256 checksums sha256 c538da1ae16b6d75f6fa65852bb158dbf9e556b01681be5b692692906d244241 COPYING ================================================ FILE: package/python-couchdb/python-couchdb.mk ================================================ ################################################################################ # # python-couchdb # ################################################################################ PYTHON_COUCHDB_VERSION = 1.2 PYTHON_COUCHDB_SOURCE = CouchDB-$(PYTHON_COUCHDB_VERSION).tar.gz PYTHON_COUCHDB_SITE = https://files.pythonhosted.org/packages/7c/c8/f94a107eca0c178e5d74c705dad1a5205c0f580840bd1b155cd8a258cb7c PYTHON_COUCHDB_SETUP_TYPE = setuptools PYTHON_COUCHDB_LICENSE = BSD-3-Clause PYTHON_COUCHDB_LICENSE_FILES = COPYING $(eval $(python-package)) ================================================ FILE: package/python-crayons/Config.in ================================================ config BR2_PACKAGE_PYTHON_CRAYONS bool "python-crayons" depends on BR2_PACKAGE_PYTHON3 help This module is really simple, it gives you colored strings for terminal usage. https://pypi.org/project/crayons ================================================ FILE: package/python-crayons/python-crayons.hash ================================================ # md5, sha256 from https://pypi.org/pypi/crayons/json md5 88a79c854ce54bcbb8376d18a448d627 crayons-0.4.0.tar.gz sha256 bd33b7547800f2cfbd26b38431f9e64b487a7de74a947b0fafc89b45a601813f crayons-0.4.0.tar.gz # Locally computed sha256 checksums sha256 7deeb137f78337fd1e2e3966a7896821c6ebff244200d009d3f4157246b5a457 LICENSE ================================================ FILE: package/python-crayons/python-crayons.mk ================================================ ################################################################################ # # python-crayons # ################################################################################ PYTHON_CRAYONS_VERSION = 0.4.0 PYTHON_CRAYONS_SOURCE = crayons-$(PYTHON_CRAYONS_VERSION).tar.gz PYTHON_CRAYONS_SITE = https://files.pythonhosted.org/packages/b8/6b/12a1dea724c82f1c19f410365d3e25356625b48e8009a7c3c9ec4c42488d PYTHON_CRAYONS_LICENSE = MIT PYTHON_CRAYONS_LICENSE_FILES = LICENSE PYTHON_CRAYONS_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-crc16/Config.in ================================================ config BR2_PACKAGE_PYTHON_CRC16 bool "python-crc16" help This library calculates only CRC16 (16-bit codes) and the only supported variant at the moment is CRC-CCITT (XModem). CRC is a way of detecting accidental changes in data storage or transmission. There are many variants of CRC and CRC16, in particular. https://code.google.com/archive/p/pycrc16/ ================================================ FILE: package/python-crc16/python-crc16.hash ================================================ # locally computed sha256 10aeda70fbe8b284874b3b1b8f74b9c1f6d5e8dee20ac8f9d5bc49f45f12a42a python-crc16-0.1.1.tar.gz sha256 ea7d049c7705dc13afc202dd18e1827f3484f8212fd3fa7b82fc4a0c363432c9 COPYING.txt ================================================ FILE: package/python-crc16/python-crc16.mk ================================================ ################################################################################ # # python-crc16 # ################################################################################ PYTHON_CRC16_VERSION = 0.1.1 PYTHON_CRC16_SITE = $(call github,gennady,pycrc16,v$(PYTHON_CRC16_VERSION)) PYTHON_CRC16_LICENSE = LGPL-3.0+ PYTHON_CRC16_LICENSE_FILES = COPYING.txt PYTHON_CRC16_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-crcmod/Config.in ================================================ config BR2_PACKAGE_PYTHON_CRCMOD bool "python-crcmod" help The software in this package is a Python module for generating objects that compute the Cyclic Redundancy Check (CRC). http://crcmod.sourceforge.net/ ================================================ FILE: package/python-crcmod/python-crcmod.hash ================================================ # md5 from https://pypi.python.org/pypi/crcmod/json md5 2d5b92117d958dcead94f9e17f54cd32 crcmod-1.7.tar.gz # Locally computed sha256 dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e crcmod-1.7.tar.gz sha256 89480768826f408daea1f3caff0509c2cc9606e10f6bb0ccfd12a3d604842c35 LICENSE ================================================ FILE: package/python-crcmod/python-crcmod.mk ================================================ ################################################################################ # # python-crcmod # ################################################################################ PYTHON_CRCMOD_VERSION = 1.7 PYTHON_CRCMOD_SOURCE = crcmod-$(PYTHON_CRCMOD_VERSION).tar.gz PYTHON_CRCMOD_SITE = https://pypi.python.org/packages/6b/b0/e595ce2a2527e169c3bcd6c33d2473c1918e0b7f6826a043ca1245dd4e5b PYTHON_CRCMOD_SETUP_TYPE = distutils PYTHON_CRCMOD_LICENSE = MIT PYTHON_CRCMOD_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-crontab/Config.in ================================================ config BR2_PACKAGE_PYTHON_CRONTAB bool "python-crontab" select BR2_PACKAGE_PYTHON_DATEUTIL # runtime help Crontab module for reading and writing crontab files and accessing the system cron automatically and simply using a direct API. https://gitlab.com/doctormo/python-crontab/ ================================================ FILE: package/python-crontab/python-crontab.hash ================================================ # md5, sha256 from https://pypi.org/pypi/python-crontab/json md5 2982bdce2d9b7789f32da649a9507c4b python-crontab-2.6.0.tar.gz sha256 1e35ed7a3cdc3100545b43e196d34754e6551e7f95e4caebbe0e1c0ca41c2f1b python-crontab-2.6.0.tar.gz # Locally computed sha256 checksums sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING ================================================ FILE: package/python-crontab/python-crontab.mk ================================================ ################################################################################ # # python-crontab # ################################################################################ PYTHON_CRONTAB_VERSION = 2.6.0 PYTHON_CRONTAB_SITE = https://files.pythonhosted.org/packages/06/b0/c270a1b5c83d9e0f83ab654d3153c39d80f61ba49fefde50fd23ab351381 PYTHON_CRONTAB_SETUP_TYPE = setuptools PYTHON_CRONTAB_LICENSE = LGPL-3.0+ PYTHON_CRONTAB_LICENSE_FILES = COPYING $(eval $(python-package)) ================================================ FILE: package/python-crossbar/0001-Avoid-intentional-syntax-error.patch ================================================ From 423a1b081f6b7198f6a921ca83043270ebbace1a 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 7b88e088..cd7de901 100644 --- a/crossbar/worker/test/examples/syntaxerror.py +++ b/crossbar/worker/test/examples/syntaxerror.py @@ -27,5 +27,3 @@ # with this program. If not, see . # ##################################################################################### - -class # noqa -- 2.20.1 ================================================ FILE: package/python-crossbar/0002-Remove-idna-requirement.patch ================================================ From 9164d21cc66c1f78de37c9383528c5d528cbdbeb Mon Sep 17 00:00:00 2001 From: Asaf Kahlon Date: Wed, 26 Sep 2018 15:33:43 +0300 Subject: [PATCH] Remove idna requirement. The latest version of idna is 2.7, but it seems like idna is not a direct dependency anymore (a short "git grep" shows it's only written in requirement and readme files). Signed-off-by: Asaf Kahlon --- requirements-min.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements-min.txt b/requirements-min.txt index 92fb0f8f..13cdac87 100644 --- a/requirements-min.txt +++ b/requirements-min.txt @@ -8,7 +8,6 @@ click>=6.7 constantly>=15.1.0 cryptography>=2.6.1 h2>=3.2.0 -idna<2.6,>=2.5 importlib-resources>=4.1.1 incremental>=17.5.0 jinja2>=2.10.1 -- 2.17.1 ================================================ FILE: package/python-crossbar/Config.in ================================================ config BR2_PACKAGE_PYTHON_CROSSBAR bool "python-crossbar" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-cryptography depends on BR2_PACKAGE_PYTHON3 # All the following dependencies are runtime dependencies select BR2_PACKAGE_PYTHON_ATTRS select BR2_PACKAGE_PYTHON_AUTOBAHN select BR2_PACKAGE_PYTHON_BITSTRING select BR2_PACKAGE_PYTHON_CBOR select BR2_PACKAGE_PYTHON_CBOR2 select BR2_PACKAGE_PYTHON_CLICK select BR2_PACKAGE_PYTHON_CONSTANTLY select BR2_PACKAGE_PYTHON_CRYPTOGRAPHY select BR2_PACKAGE_PYTHON_H2 select BR2_PACKAGE_PYTHON_IDNA select BR2_PACKAGE_PYTHON_INCREMENTAL select BR2_PACKAGE_PYTHON_JINJA2 select BR2_PACKAGE_PYTHON_LMDB select BR2_PACKAGE_PYTHON_MISTUNE select BR2_PACKAGE_PYTHON_NETADDR select BR2_PACKAGE_PYTHON_PASSLIB select BR2_PACKAGE_PYTHON_PRIORITY select BR2_PACKAGE_PYTHON_PSUTIL select BR2_PACKAGE_PYTHON_PYASN1 select BR2_PACKAGE_PYTHON_PYASN1_MODULES select BR2_PACKAGE_PYTHON_PYGMENTS select BR2_PACKAGE_PYTHON_PYNACL select BR2_PACKAGE_PYTHON_PYOPENSSL select BR2_PACKAGE_PYTHON_PYQRCODE select BR2_PACKAGE_PYTHON_PYTRIE select BR2_PACKAGE_PYTHON_PYYAML select BR2_PACKAGE_PYTHON_SDNOTIFY select BR2_PACKAGE_PYTHON_SERVICE_IDENTITY select BR2_PACKAGE_PYTHON_SETPROCTITLE select BR2_PACKAGE_PYTHON_SETUPTOOLS select BR2_PACKAGE_PYTHON_TREQ select BR2_PACKAGE_PYTHON_TWISTED select BR2_PACKAGE_PYTHON_TXAIO select BR2_PACKAGE_PYTHON_TXTORCON select BR2_PACKAGE_PYTHON_U_MSGPACK select BR2_PACKAGE_PYTHON_UBJSON select BR2_PACKAGE_PYTHON_WATCHDOG select BR2_PACKAGE_PYTHON_WERKZEUG select BR2_PACKAGE_PYTHON_ZOPE_INTERFACE 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 ================================================ FILE: package/python-crossbar/python-crossbar.hash ================================================ # md5, sha256 from https://pypi.org/pypi/crossbar/json md5 df576100bcf6e423cdc1e2e96b602140 crossbar-21.3.1.tar.gz sha256 ac71959f0c57ab08d43f7830b85c6312e000b25543a179cd751ac357944dd7ef crossbar-21.3.1.tar.gz # Locally computed sha256 57c8ff33c9c0cfc3ef00e650a1cc910d7ee479a8bc509f6c9209a7c2a11399d6 crossbar/LICENSE ================================================ FILE: package/python-crossbar/python-crossbar.mk ================================================ ################################################################################ # # python-crossbar # ################################################################################ PYTHON_CROSSBAR_VERSION = 21.3.1 PYTHON_CROSSBAR_SOURCE = crossbar-$(PYTHON_CROSSBAR_VERSION).tar.gz PYTHON_CROSSBAR_SITE = https://files.pythonhosted.org/packages/17/37/aafc4ec30068fd7ebb97f1a00d4ddf8de482dfa4c1d2a1fc6bb814d91400 PYTHON_CROSSBAR_LICENSE = AGPL-3.0 PYTHON_CROSSBAR_LICENSE_FILES = crossbar/LICENSE PYTHON_CROSSBAR_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-cryptography/Config.in ================================================ config BR2_PACKAGE_PYTHON_CRYPTOGRAPHY bool "python-cryptography" depends on BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_PYTHON_CFFI # runtime help cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. https://cryptography.io ================================================ FILE: package/python-cryptography/python-cryptography.hash ================================================ # Locally calculated after vendoring sha256 196bba703cebc052a19f5353614fcfa9d680471990c10305f110adcc05744eeb cryptography-36.0.1.tar.gz # Locally computed sha256 checksums sha256 43dad2cc752ab721cd9a9f36ece70fb53ab7713551f2d3d8694d8e8c5a06d6e2 LICENSE sha256 aac73b3148f6d1d7111dbca32099f68d26c644c6813ae1e4f05f6579aa2663fe LICENSE.APACHE sha256 602c4c7482de6479dd2e9793cda275e5e63d773dacd1eca689232ab7008fb4fb LICENSE.BSD ================================================ FILE: package/python-cryptography/python-cryptography.mk ================================================ ################################################################################ # # python-cryptography # ################################################################################ PYTHON_CRYPTOGRAPHY_VERSION = 36.0.1 PYTHON_CRYPTOGRAPHY_SOURCE = cryptography-$(PYTHON_CRYPTOGRAPHY_VERSION).tar.gz PYTHON_CRYPTOGRAPHY_SITE = https://files.pythonhosted.org/packages/f9/4b/1cf8e281f7ae4046a59e5e39dd7471d46db9f61bb564fddbff9084c4334f PYTHON_CRYPTOGRAPHY_SETUP_TYPE = setuptools PYTHON_CRYPTOGRAPHY_LICENSE = Apache-2.0 or BSD-3-Clause PYTHON_CRYPTOGRAPHY_LICENSE_FILES = LICENSE LICENSE.APACHE LICENSE.BSD PYTHON_CRYPTOGRAPHY_CPE_ID_VENDOR = cryptography_project PYTHON_CRYPTOGRAPHY_CPE_ID_PRODUCT = cryptography PYTHON_CRYPTOGRAPHY_DEPENDENCIES = host-python-setuptools-rust host-python-cffi host-rustc PYTHON_CRYPTOGRAPHY_ENV = \ $(PKG_CARGO_ENV) \ PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)" # We need to vendor the Cargo crates at download time PYTHON_CRYPTOGRAPHY_DOWNLOAD_POST_PROCESS = cargo PYTHON_CRYPTOGRAPHY_DOWNLOAD_DEPENDENCIES = host-rustc PYTHON_CRYPTOGRAPHY_DL_ENV = \ BR_CARGO_MANIFEST_PATH=src/rust/Cargo.toml $(eval $(python-package)) ================================================ FILE: package/python-cssselect/Config.in ================================================ config BR2_PACKAGE_PYTHON_CSSSELECT bool "python-cssselect" help cssselect parses CSS3 Selectors and translates them to XPath 1.0 http://packages.python.org/cssselect/ ================================================ FILE: package/python-cssselect/python-cssselect.hash ================================================ # md5, sha256 from https://pypi.org/pypi/cssselect/json md5 fa57704c1cb66cc8e537b782bd6b227e cssselect-1.1.0.tar.gz sha256 f95f8dedd925fd8f54edb3d2dfb44c190d9d18512377d3c1e2388d16126879bc cssselect-1.1.0.tar.gz # Locally computed sha256 checksums sha256 5c8da9f744e0afba81a48c9b5dbe73048f798b3287d6f1af8a05ee08ebb10892 LICENSE ================================================ FILE: package/python-cssselect/python-cssselect.mk ================================================ ################################################################################ # # python-cssselect # ################################################################################ PYTHON_CSSSELECT_VERSION = 1.1.0 PYTHON_CSSSELECT_SOURCE = cssselect-$(PYTHON_CSSSELECT_VERSION).tar.gz PYTHON_CSSSELECT_SITE = https://files.pythonhosted.org/packages/70/54/37630f6eb2c214cdee2ae56b7287394c8aa2f3bafb8b4eb8c3791aae7a14 PYTHON_CSSSELECT_SETUP_TYPE = setuptools PYTHON_CSSSELECT_LICENSE = BSD-3-Clause PYTHON_CSSSELECT_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-cssutils/Config.in ================================================ config BR2_PACKAGE_PYTHON_CSSUTILS bool "python-cssutils" select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 # runtime help A CSS Cascading Style Sheets library for Python. http://cthedot.de/cssutils/ ================================================ FILE: package/python-cssutils/python-cssutils.hash ================================================ # md5, sha256 from https://pypi.org/pypi/cssutils/json md5 dc66d96c2d78f1687f59ac412fe9d318 cssutils-1.0.2.tar.gz sha256 a2fcf06467553038e98fea9cfe36af2bf14063eb147a70958cfcaa8f5786acaf cssutils-1.0.2.tar.gz # Locally computed sha256 checksums sha256 03c570a068086ee577dcd795519ea93462b2ed2fcb6dcc4dfce56a71a2fd6e5a COPYING.LESSER ================================================ FILE: package/python-cssutils/python-cssutils.mk ================================================ ################################################################################ # # python-cssutils # ################################################################################ PYTHON_CSSUTILS_VERSION = 1.0.2 PYTHON_CSSUTILS_SOURCE = cssutils-$(PYTHON_CSSUTILS_VERSION).tar.gz PYTHON_CSSUTILS_SITE = https://files.pythonhosted.org/packages/5c/0b/c5f29d29c037e97043770b5e7c740b6252993e4b57f029b3cd03c78ddfec PYTHON_CSSUTILS_LICENSE = LGPL-3.0+ PYTHON_CSSUTILS_LICENSE_FILES = COPYING.LESSER PYTHON_CSSUTILS_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-cycler/Config.in ================================================ config BR2_PACKAGE_PYTHON_CYCLER bool "python-cycler" help Creates a Cycler objects much like cycler, but includes input validation. https://matplotlib.org/cycler/ ================================================ FILE: package/python-cycler/python-cycler.hash ================================================ # sha256 from https://pypi.org/project/cyclic/#files sha256 cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8 cycler-0.10.0.tar.gz # Locally computed sha256 checksums sha256 f1218143d766da3fea66f13396b7f15df46a83303f29bf96ba6e98eb4d42f408 LICENSE ================================================ FILE: package/python-cycler/python-cycler.mk ================================================ ################################################################################ # # python-cycler # ################################################################################ PYTHON_CYCLER_VERSION = 0.10.0 PYTHON_CYCLER_SOURCE = cycler-$(PYTHON_CYCLER_VERSION).tar.gz PYTHON_CYCLER_SITE = https://files.pythonhosted.org/packages/c2/4b/137dea450d6e1e3d474e1d873cd1d4f7d3beed7e0dc973b06e8e10d32488 PYTHON_CYCLER_LICENSE = BSD-3-Clause PYTHON_CYCLER_LICENSE_FILES = LICENSE PYTHON_CYCLER_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-cython/Config.in.host ================================================ config BR2_PACKAGE_HOST_PYTHON_CYTHON bool "host python-cython" help The Cython compiler for writing C extensions for the Python language. http://cython.org/ ================================================ FILE: package/python-cython/python-cython.hash ================================================ # md5, sha256 from https://pypi.org/pypi/cython/json md5 81aff945f5bfdfb86e7a5d24f5467668 Cython-0.29.24.tar.gz sha256 cdf04d07c3600860e8c2ebaad4e8f52ac3feb212453c1764a49ac08c827e8443 Cython-0.29.24.tar.gz # Locally computed sha256 checksums sha256 a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 LICENSE.txt sha256 e1eb1c49a8508e8173dac30157e4a6439a44ad8846194746c424fbc3fc2b95d7 COPYING.txt ================================================ FILE: package/python-cython/python-cython.mk ================================================ ################################################################################ # # python-cython # ################################################################################ # Please keep in sync with package/python3-cython/python3-cython.mk PYTHON_CYTHON_VERSION = 0.29.24 PYTHON_CYTHON_SOURCE = Cython-$(PYTHON_CYTHON_VERSION).tar.gz PYTHON_CYTHON_SITE = https://files.pythonhosted.org/packages/59/e3/78c921adf4423fff68da327cc91b73a16c63f29752efe7beb6b88b6dd79d PYTHON_CYTHON_SETUP_TYPE = setuptools PYTHON_CYTHON_LICENSE = Apache-2.0 PYTHON_CYTHON_LICENSE_FILES = COPYING.txt LICENSE.txt $(eval $(host-python-package)) ================================================ FILE: package/python-daemon/Config.in ================================================ config BR2_PACKAGE_PYTHON_DAEMON bool "python-daemon" select BR2_PACKAGE_PYTHON_DOCUTILS # runtime select BR2_PACKAGE_PYTHON_LOCKFILE # runtime help Library to implement a well-behaved Unix daemon process. https://pypi.python.org/pypi/python-daemon/ ================================================ FILE: package/python-daemon/python-daemon.hash ================================================ # md5, sha256 https://pypi.org/pypi/python-daemon/json md5 3ab10a93472201214cd95c05f1923af6 python-daemon-2.2.3.tar.gz sha256 affeca9e5adfce2666a63890af9d6aff79f670f7511899edaddca7f96593cc25 python-daemon-2.2.3.tar.gz # Locally computed sha256 sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.ASF-2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL-3 ================================================ FILE: package/python-daemon/python-daemon.mk ================================================ ################################################################################ # # python-daemon # ################################################################################ PYTHON_DAEMON_VERSION = 2.2.3 PYTHON_DAEMON_SITE = https://pypi.python.org/packages/source/p/python-daemon PYTHON_DAEMON_LICENSE = Apache-2.0 (library), GPL-3.0+ (test, build) PYTHON_DAEMON_LICENSE_FILES = LICENSE.ASF-2 LICENSE.GPL-3 PYTHON_DAEMON_SETUP_TYPE = setuptools PYTHON_DAEMON_DEPENDENCIES = host-python-docutils $(eval $(python-package)) ================================================ FILE: package/python-daemonize/Config.in ================================================ config BR2_PACKAGE_PYTHON_DAEMONIZE bool "python-daemonize" select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime help Library to enable your code run as a daemon process on Unix-like systems. https://pypi.python.org/pypi/daemonize ================================================ FILE: package/python-daemonize/python-daemonize.hash ================================================ # md5, sha256 from https://pypi.org/pypi/daemonize/json md5 3d64e7a0219ad22e3fca62460f893b6a daemonize-2.5.0.tar.gz sha256 dd026e4ff8d22cb016ed2130bc738b7d4b1da597ef93c074d2adb9e4dea08bc3 daemonize-2.5.0.tar.gz # Locally computed sha256 checksums sha256 248d0d3147d20a09bed8f03da8ed72f47009073606dcc1bab658f942d34b29f8 LICENSE ================================================ FILE: package/python-daemonize/python-daemonize.mk ================================================ ################################################################################ # # python-daemonize # ################################################################################ PYTHON_DAEMONIZE_VERSION = 2.5.0 PYTHON_DAEMONIZE_SOURCE = daemonize-$(PYTHON_DAEMONIZE_VERSION).tar.gz PYTHON_DAEMONIZE_SITE = https://files.pythonhosted.org/packages/8c/20/96f7dbc23812cfe4cf479c87af3e4305d0d115fd1fffec32ddeee7b9c82b PYTHON_DAEMONIZE_SETUP_TYPE = setuptools PYTHON_DAEMONIZE_LICENSE = MIT PYTHON_DAEMONIZE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-daphne/0001-remove-pytest-runner-requirement.patch ================================================ From f9d881cc55c89f51240f93308713216cfec793eb Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Sat, 3 Aug 2019 14:23:19 -0400 Subject: [PATCH] remove pytest-runner requirement Setup does not actually require pytest-runner. As such, remove it. Signed-off-by: Adam Duskett --- setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py index 64e94f1..4e3abb0 100755 --- a/setup.py +++ b/setup.py @@ -23,7 +23,6 @@ setup( packages=find_packages() + ["twisted.plugins"], include_package_data=True, install_requires=["twisted[tls]>=18.7", "autobahn>=0.18", "asgiref~=3.2"], - setup_requires=["pytest-runner"], extras_require={ "tests": ["hypothesis~=3.88", "pytest~=3.10", "pytest-asyncio~=0.8"] }, -- 2.21.0 ================================================ FILE: package/python-daphne/Config.in ================================================ config BR2_PACKAGE_PYTHON_DAPHNE bool "python-daphne" # python-autobahn -> python-cryptography depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_ASGIREF # runtime select BR2_PACKAGE_PYTHON_AUTOBAHN # runtime select BR2_PACKAGE_PYTHON_TWISTED # runtime select BR2_PACKAGE_PYTHON_TWISTED_TLS # runtime help Daphne is a HTTP, HTTP2 and WebSocket protocol server for ASGI and ASGI-HTTP, developed to power Django Channels. It supports automatic negotiation of protocols; there's no need for URL prefixing to determine WebSocket endpoints versus HTTP endpoints. https://github.com/django/daphne ================================================ FILE: package/python-daphne/python-daphne.hash ================================================ # md5, sha256 from https://pypi.org/pypi/daphne/json md5 564353eaed92659e3b113d966a0288f2 daphne-2.4.1.tar.gz0 sha256 1e41d02d78da373c1f8504835cdca6d447b5d64c2941661d4bd968d412b6c383 daphne-2.4.1.tar.gz # Locally computed sha256 sha256 b846415d1b514e9c1dff14a22deb906d794bc546ca6129f950a18cd091e2a669 LICENSE ================================================ FILE: package/python-daphne/python-daphne.mk ================================================ ################################################################################ # # python-daphne # ################################################################################ PYTHON_DAPHNE_VERSION = 2.4.1 PYTHON_DAPHNE_SOURCE = daphne-$(PYTHON_DAPHNE_VERSION).tar.gz PYTHON_DAPHNE_SITE = https://files.pythonhosted.org/packages/03/6c/847d1c962f8c45aa2ab0791583c4a41669d158e28fd6369ce940b8ea8417 PYTHON_DAPHNE_SETUP_TYPE = setuptools # https://github.com/django/daphne/blob/master/LICENSE PYTHON_DAPHNE_LICENSE = BSD-3-Clause PYTHON_DAPHNE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-dataproperty/Config.in ================================================ config BR2_PACKAGE_PYTHON_DATAPROPERTY bool "python-dataproperty" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_MBSTRDECODER # runtime select BR2_PACKAGE_PYTHON_TYPEPY # runtime help Python library for extract property from data. https://github.com/thombashi/DataProperty ================================================ FILE: package/python-dataproperty/python-dataproperty.hash ================================================ # md5, sha256 from https://pypi.org/pypi/DataProperty/json md5 6a6930ae266399df58707a13a5f0cfa6 DataProperty-0.53.0.tar.gz sha256 9589b5c5b400a77e1aeb63d89d755043bbe00043219336963c93db5df49cbaf7 DataProperty-0.53.0.tar.gz # Locally computed sha256 checksums sha256 a93d75bcb0774e2990106380cadad6dcb2de193c55d435ffc56ba345a08b1dc2 LICENSE ================================================ FILE: package/python-dataproperty/python-dataproperty.mk ================================================ ################################################################################ # # python-dataproperty # ################################################################################ PYTHON_DATAPROPERTY_VERSION = 0.53.0 PYTHON_DATAPROPERTY_SOURCE = DataProperty-$(PYTHON_DATAPROPERTY_VERSION).tar.gz PYTHON_DATAPROPERTY_SITE = https://files.pythonhosted.org/packages/df/d0/36deb707996c5ef48ab353804291f44f59bd9d46875c384d163ad106df1a PYTHON_DATAPROPERTY_SETUP_TYPE = setuptools PYTHON_DATAPROPERTY_LICENSE = MIT PYTHON_DATAPROPERTY_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-dateutil/Config.in ================================================ config BR2_PACKAGE_PYTHON_DATEUTIL bool "python-dateutil" select BR2_PACKAGE_PYTHON_SIX help Extensions to the standard Python datetime module. https://dateutil.readthedocs.io ================================================ FILE: package/python-dateutil/python-dateutil.hash ================================================ # md5, sha256 from https://pypi.org/pypi/python-dateutil/json md5 5970010bb72452344df3d76a10281b65 python-dateutil-2.8.2.tar.gz sha256 0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 python-dateutil-2.8.2.tar.gz # Locally computed sha256 checksums sha256 ba00f51a0d92823b5a1cde27d8b5b9d2321e67ed8da9bc163eff96d5e17e577e LICENSE ================================================ FILE: package/python-dateutil/python-dateutil.mk ================================================ ################################################################################ # # python-dateutil # ################################################################################ PYTHON_DATEUTIL_VERSION = 2.8.2 PYTHON_DATEUTIL_SITE = https://files.pythonhosted.org/packages/4c/c4/13b4776ea2d76c115c1d1b84579f3764ee6d57204f6be27119f13a61d0a9 PYTHON_DATEUTIL_SETUP_TYPE = setuptools PYTHON_DATEUTIL_LICENSE = BSD-3-Clause PYTHON_DATEUTIL_LICENSE_FILES = LICENSE PYTHON_DATEUTIL_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-dbus-fast/Config.in ================================================ config BR2_PACKAGE_PYTHON_DBUS_FAST bool "python-dbus-fast" select BR2_PACKAGE_HOST_PYTHON_CYTHON select BR2_PACKAGE_PYTHON3_PYEXPAT # runtime select BR2_PACKAGE_PYTHON_ASYNC_TIMEOUT # runtime help A faster version of dbus-next, a DBus library for Python with asyncio support. https://github.com/bluetooth-devices/dbus-fast ================================================ FILE: package/python-dbus-fast/python-dbus-fast.hash ================================================ # md5, sha256 from https://pypi.org/pypi/dbus-fast/json md5 eebf2c558dd1af0f8f32b361e91f2fa3 dbus_fast-1.61.1.tar.gz sha256 bda4a7d559047b74f409eda278f68f610a418e86ad3efa0368fa2ed240daa6b6 dbus_fast-1.61.1.tar.gz # Locally computed sha256 checksums sha256 c37e9c75110e01d1f0c5360dc7d7776a30ac5f70d2440db214423e4b7a77a6af LICENSE ================================================ FILE: package/python-dbus-fast/python-dbus-fast.mk ================================================ ################################################################################ # # python-dbus-fast # ################################################################################ PYTHON_DBUS_FAST_VERSION = 1.61.1 PYTHON_DBUS_FAST_SOURCE = dbus_fast-$(PYTHON_DBUS_FAST_VERSION).tar.gz PYTHON_DBUS_FAST_SITE = https://files.pythonhosted.org/packages/dd/f4/a280d46b119d59f6a3d84abf474452ae76651558b0963ab8c48ae13b5a44 PYTHON_DBUS_FAST_SETUP_TYPE = setuptools PYTHON_DBUS_FAST_LICENSE = MIT PYTHON_DBUS_FAST_LICENSE_FILES = LICENSE PYTHON_DBUS_FAST_ENV = REQUIRE_CYTHON=1 PYTHON_DBUS_FAST_DEPENDENCIES = host-python-cython $(eval $(python-package)) ================================================ FILE: package/python-dbus-next/Config.in ================================================ config BR2_PACKAGE_PYTHON_DBUS_NEXT bool "python-dbus-next" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON3_PYEXPAT # runtime help A zero-dependency DBus library for Python with asyncio support. https://github.com/altdesktop/python-dbus-next ================================================ FILE: package/python-dbus-next/python-dbus-next.hash ================================================ # md5, sha256 from https://pypi.org/pypi/dbus-next/json md5 0e31605bd90f3460aebcd0bb7fe0dc20 dbus_next-0.2.3.tar.gz sha256 f4eae26909332ada528c0a3549dda8d4f088f9b365153952a408e28023a626a5 dbus_next-0.2.3.tar.gz # Locally computed sha256 checksums sha256 c454ab6b8e0653a8eab828a8cbaaa368a1bbfba982178bb18b6177e311eae4cc LICENSE ================================================ FILE: package/python-dbus-next/python-dbus-next.mk ================================================ ################################################################################ # # python-dbus-next # ################################################################################ PYTHON_DBUS_NEXT_VERSION = 0.2.3 PYTHON_DBUS_NEXT_SOURCE = dbus_next-$(PYTHON_DBUS_NEXT_VERSION).tar.gz PYTHON_DBUS_NEXT_SITE = https://files.pythonhosted.org/packages/ce/45/6a40fbe886d60a8c26f480e7d12535502b5ba123814b3b9a0b002ebca198 PYTHON_DBUS_NEXT_SETUP_TYPE = setuptools PYTHON_DBUS_NEXT_LICENSE = MIT PYTHON_DBUS_NEXT_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-decorator/Config.in ================================================ config BR2_PACKAGE_PYTHON_DECORATOR bool "python-decorator" depends on BR2_PACKAGE_PYTHON3 help Better living through Python with decorators https://github.com/micheles/decorator ================================================ FILE: package/python-decorator/python-decorator.hash ================================================ # md5, sha256 from https://pypi.org/pypi/decorator/json md5 d01585c3ea5b36a209747fcc978a98c8 decorator-5.1.0.tar.gz sha256 e59913af105b9860aa2c8d3272d9de5a56a4e608db9a2f167a8480b323d529a7 decorator-5.1.0.tar.gz # Locally computed sha256 checksums sha256 fd11660cabf0532082c45706862fafc294907ec7f8e217818240a4999806782e LICENSE.txt ================================================ FILE: package/python-decorator/python-decorator.mk ================================================ ################################################################################ # # python-decorator # ################################################################################ PYTHON_DECORATOR_VERSION = 5.1.0 PYTHON_DECORATOR_SOURCE = decorator-$(PYTHON_DECORATOR_VERSION).tar.gz PYTHON_DECORATOR_SITE = https://files.pythonhosted.org/packages/92/3c/34f8448b61809968052882b830f7d8d9a8e1c07048f70deb039ae599f73c PYTHON_DECORATOR_LICENSE = BSD-2-Clause PYTHON_DECORATOR_LICENSE_FILES = LICENSE.txt PYTHON_DECORATOR_CPE_ID_VENDOR = python PYTHON_DECORATOR_CPE_ID_PRODUCT = decorator PYTHON_DECORATOR_SETUP_TYPE = setuptools HOST_PYTHON_DECORATOR_NEEDS_HOST_PYTHON = python3 $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-defusedxml/Config.in ================================================ config BR2_PACKAGE_PYTHON_DEFUSEDXML bool "python-defusedxml" help XML bomb protection for Python stdlib modules https://pypi.org/project/defusedxml/ ================================================ FILE: package/python-defusedxml/python-defusedxml.hash ================================================ # md5, sha256 from https://pypi.org/pypi/defusedxml/json md5 a50e7f21aa60a741efe6b1b658dfb3f8 defusedxml-0.7.1.tar.gz sha256 1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69 defusedxml-0.7.1.tar.gz # Locally computed sha256 checksums sha256 b80ce9da8c42a1f91079627fbbe2bf27210ae108a0ffe5f077d5b08e076c24c8 LICENSE ================================================ FILE: package/python-defusedxml/python-defusedxml.mk ================================================ ################################################################################ # # python-defusedxml # ################################################################################ PYTHON_DEFUSEDXML_VERSION = 0.7.1 PYTHON_DEFUSEDXML_SOURCE = defusedxml-$(PYTHON_DEFUSEDXML_VERSION).tar.gz PYTHON_DEFUSEDXML_SITE = https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72 PYTHON_DEFUSEDXML_SETUP_TYPE = setuptools PYTHON_DEFUSEDXML_LICENSE = Python-2.0 PYTHON_DEFUSEDXML_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-dialog/Config.in ================================================ config BR2_PACKAGE_PYTHON_DIALOG bool "python-dialog" depends on BR2_PACKAGE_PYTHON depends on BR2_USE_MMU # dialog select BR2_PACKAGE_DIALOG help A Python interface to the UNIX dialog utility and mostly-compatible programs. http://pythondialog.sourceforge.net/ ================================================ FILE: package/python-dialog/python-dialog.hash ================================================ # Locally computed after verifying # https://sourceforge.net/projects/pythondialog/files/pythondialog/3.4.0/python3-pythondialog-3.4.0.tar.bz2.asc # with key 9B6F19FB52965E6C21FE76142A205688F8489BDD sha256 8978d355c8db6728eeb9e23b39449b14597f1c76cb06dc72462642ca7cde46a0 python2-pythondialog-3.4.0.tar.bz2 sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING ================================================ FILE: package/python-dialog/python-dialog.mk ================================================ ################################################################################ # # python-dialog # ################################################################################ PYTHON_DIALOG_VERSION = 3.4.0 PYTHON_DIALOG_SOURCE = python2-pythondialog-$(PYTHON_DIALOG_VERSION).tar.bz2 PYTHON_DIALOG_SITE = http://downloads.sourceforge.net/project/pythondialog/pythondialog/$(PYTHON_DIALOG_VERSION) PYTHON_DIALOG_LICENSE = LGPL-2.1+ PYTHON_DIALOG_LICENSE_FILES = COPYING PYTHON_DIALOG_SETUP_TYPE = distutils PYTHON_DIALOG_DEPENDENCIES = dialog $(eval $(python-package)) ================================================ FILE: package/python-dialog3/Config.in ================================================ 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/ ================================================ FILE: package/python-dialog3/python-dialog3.hash ================================================ # md5 from https://pypi.python.org/pypi/pythondialog/json md5 07e257d91099b804e040c6ea5ec56041 pythondialog-3.5.1.tar.gz # Locally computed sha256 34a0687290571f37d7d297514cc36bd4cd044a3a4355271549f91490d3e7ece8 pythondialog-3.5.1.tar.gz sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING ================================================ FILE: package/python-dialog3/python-dialog3.mk ================================================ ################################################################################ # # python-dialog3 # ################################################################################ PYTHON_DIALOG3_VERSION = 3.5.1 PYTHON_DIALOG3_SOURCE = pythondialog-$(PYTHON_DIALOG3_VERSION).tar.gz PYTHON_DIALOG3_SITE = https://files.pythonhosted.org/packages/72/3c/26ed0db035f97196704d0197d8b2254b8a6ca93a2d132430b0b0d597aa79 PYTHON_DIALOG3_LICENSE = LGPL-2.1+ PYTHON_DIALOG3_LICENSE_FILES = COPYING PYTHON_DIALOG3_SETUP_TYPE = setuptools PYTHON_DIALOG3_DEPENDENCIES = dialog $(eval $(python-package)) ================================================ FILE: package/python-dicttoxml/Config.in ================================================ 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 ================================================ FILE: package/python-dicttoxml/python-dicttoxml.hash ================================================ # md5 from https://pypi.python.org/pypi/dicttoxml/json md5 ec5643a048cf32dad3c28db236b923e4 dicttoxml-1.7.4.tar.gz # Locally computed sha256 ea44cc4ec6c0f85098c57a431a1ee891b3549347b07b7414c8a24611ecf37e45 dicttoxml-1.7.4.tar.gz sha256 4514114bd9da0b2fbf8c4fa264c0e6cc80fd41e6ac7f09d7a39a215662951c7c LICENCE.txt ================================================ FILE: package/python-dicttoxml/python-dicttoxml.mk ================================================ ################################################################################ # # 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 = GPL-2.0 PYTHON_DICTTOXML_LICENSE_FILES = LICENCE.txt $(eval $(python-package)) ================================================ FILE: package/python-django/Config.in ================================================ config BR2_PACKAGE_PYTHON_DJANGO bool "python-django" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON3_UNICODEDATA select BR2_PACKAGE_PYTHON3_PYEXPAT select BR2_PACKAGE_PYTHON_ASGIREF # runtime select BR2_PACKAGE_PYTHON_PYTZ # runtime select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON_SQLPARSE # runtime help Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. It takes your Web applications from concept to launch in a matter of hours. Django takes care of user authentication, content administration, site maps, RSS feeds, user comments and many more tasks. Django takes security seriously and helps developers avoid many common security mistakes https://www.djangoproject.com/ ================================================ FILE: package/python-django/python-django.hash ================================================ # md5, sha256 from https://pypi.org/pypi/django/json md5 2ade1eecca77640abbde6c4589da27dd Django-3.2.7.tar.gz sha256 95b318319d6997bac3595517101ad9cc83fe5672ac498ba48d1a410f47afecd2 Django-3.2.7.tar.gz # Locally computed sha256 checksums sha256 b846415d1b514e9c1dff14a22deb906d794bc546ca6129f950a18cd091e2a669 LICENSE ================================================ FILE: package/python-django/python-django.mk ================================================ ################################################################################ # # python-django # ################################################################################ PYTHON_DJANGO_VERSION = 3.2.7 PYTHON_DJANGO_SOURCE = Django-$(PYTHON_DJANGO_VERSION).tar.gz # The official Django site has an unpractical URL PYTHON_DJANGO_SITE = https://files.pythonhosted.org/packages/59/45/c6fbb3a206df0b7dc3e6e8fae738e042c63d4ddf828c6e1ba10d7417a1d9 PYTHON_DJANGO_LICENSE = BSD-3-Clause PYTHON_DJANGO_LICENSE_FILES = LICENSE PYTHON_DJANGO_CPE_ID_VENDOR = djangoproject PYTHON_DJANGO_CPE_ID_PRODUCT = django PYTHON_DJANGO_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-django-enumfields/Config.in ================================================ config BR2_PACKAGE_PYTHON_DJANGO_ENUMFIELDS bool "python-django-enumfields" select BR2_PACKAGE_PYTHON_ENUM34 if BR2_PACKAGE_PYTHON # runtime help Real Python Enums for Django. https://github.com/hzdg/django-enumfields ================================================ FILE: package/python-django-enumfields/python-django-enumfields.hash ================================================ # md5, sha256 from https://pypi.org/pypi/django-enumfields/json md5 c9725a2c31ca2949d111815742335279 django-enumfields-1.0.0.tar.gz sha256 5b0e2dd5973337717ca6bd5a7d9e167e6ae01203c160d4761b88837c4678f219 django-enumfields-1.0.0.tar.gz # Locally computed sha256 checksums sha256 5548de8c163dc57bd0a4f5772f1509f2c04f1390251c98ebf060c9d52a223f57 LICENSE ================================================ FILE: package/python-django-enumfields/python-django-enumfields.mk ================================================ ################################################################################ # # python-django-enumfields # ################################################################################ PYTHON_DJANGO_ENUMFIELDS_VERSION = 1.0.0 PYTHON_DJANGO_ENUMFIELDS_SOURCE = django-enumfields-$(PYTHON_DJANGO_ENUMFIELDS_VERSION).tar.gz PYTHON_DJANGO_ENUMFIELDS_SITE = https://files.pythonhosted.org/packages/b7/56/3f4e8d8ef6d5577a1b75b3cfae6dff819afd030e3a519a326ec7a7a0b74f PYTHON_DJANGO_ENUMFIELDS_SETUP_TYPE = setuptools PYTHON_DJANGO_ENUMFIELDS_LICENSE = MIT PYTHON_DJANGO_ENUMFIELDS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-dnspython/Config.in ================================================ config BR2_PACKAGE_PYTHON_DNSPYTHON bool "python-dnspython" depends on BR2_PACKAGE_PYTHON3 help A powerful DNS toolkit for python. http://www.dnspython.org ================================================ FILE: package/python-dnspython/python-dnspython.hash ================================================ # md5, sha256 from https://pypi.org/pypi/dnspython/json md5 8a362d7b2358be3117683e2dbf9654fc dnspython-2.1.0.zip sha256 e4a87f0b573201a0f3727fa18a516b055fd1107e0e5477cded4a2de497df1dd4 dnspython-2.1.0.zip # Locally computed sha256 checksums sha256 c3ea3ff5654b329c19d3bc5f7481af623c3dded4a6145585499f843ad3d741cd LICENSE ================================================ FILE: package/python-dnspython/python-dnspython.mk ================================================ ################################################################################ # # python-dnspython # ################################################################################ PYTHON_DNSPYTHON_VERSION = 2.1.0 PYTHON_DNSPYTHON_SOURCE = dnspython-$(PYTHON_DNSPYTHON_VERSION).zip PYTHON_DNSPYTHON_SITE = https://files.pythonhosted.org/packages/13/27/5277de856f605f3429d752a39af3588e29d10181a3aa2e2ee471d817485a PYTHON_DNSPYTHON_LICENSE = ISC PYTHON_DNSPYTHON_LICENSE_FILES = LICENSE PYTHON_DNSPYTHON_SETUP_TYPE = setuptools define PYTHON_DNSPYTHON_EXTRACT_CMDS $(UNZIP) -d $(@D) $(PYTHON_DNSPYTHON_DL_DIR)/$(PYTHON_DNSPYTHON_SOURCE) mv $(@D)/dnspython-$(PYTHON_DNSPYTHON_VERSION)/* $(@D) $(RM) -r $(@D)/dnspython-$(PYTHON_DNSPYTHON_VERSION) endef define HOST_PYTHON_DNSPYTHON_EXTRACT_CMDS $(UNZIP) -d $(@D) $(HOST_PYTHON_DNSPYTHON_DL_DIR)/$(HOST_PYTHON_DNSPYTHON_SOURCE) mv $(@D)/dnspython-$(HOST_PYTHON_DNSPYTHON_VERSION)/* $(@D) $(RM) -r $(@D)/dnspython-$(HOST_PYTHON_DNSPYTHON_VERSION) endef $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-docker/Config.in ================================================ config BR2_PACKAGE_PYTHON_DOCKER bool "python-docker" depends on BR2_PACKAGE_PYTHON3 # python-requests -> python-idna # docker-engine may be running on another host, so no other dependency select BR2_PACKAGE_PYTHON3_SSL # runtime select BR2_PACKAGE_PYTHON_REQUESTS # runtime select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_WEBSOCKET_CLIENT # runtime help A Python library for the Docker Engine API. https://github.com/docker/docker-py ================================================ FILE: package/python-docker/python-docker.hash ================================================ # md5, sha256 from https://pypi.org/pypi/docker/json md5 e1e8dc73e3220fe9eec1faf80b0290de docker-4.1.0.tar.gz sha256 6e06c5e70ba4fad73e35f00c55a895a448398f3ada7faae072e2bb01348bafc1 docker-4.1.0.tar.gz # Locally computed sha256 checksums sha256 f2f0b07fa5e492c11d27aa0d2f3f1a0e64b9d17f32d8aa489ae2af9609af33b2 LICENSE ================================================ FILE: package/python-docker/python-docker.mk ================================================ ################################################################################ # # python-docker # ################################################################################ PYTHON_DOCKER_VERSION = 4.1.0 PYTHON_DOCKER_SOURCE = docker-$(PYTHON_DOCKER_VERSION).tar.gz PYTHON_DOCKER_SITE = https://files.pythonhosted.org/packages/de/54/a822d7116ff2f726f3da2b3e6c87659657bdcb7a36e382860ed505ed5e45 PYTHON_DOCKER_SETUP_TYPE = setuptools PYTHON_DOCKER_LICENSE = Apache-2.0 PYTHON_DOCKER_LICENSE_FILES = LICENSE PYTHON_DOCKER_CPE_ID_VENDOR = docker PYTHON_DOCKER_CPE_ID_PRODUCT = docker-py $(eval $(python-package)) ================================================ FILE: package/python-docker-pycreds/Config.in ================================================ config BR2_PACKAGE_PYTHON_DOCKER_PYCREDS bool "python-docker-pycreds" select BR2_PACKAGE_PYTHON_SIX # runtime help Python bindings for the docker credentials store API. https://github.com/shin-/dockerpy-creds ================================================ FILE: package/python-docker-pycreds/python-docker-pycreds.hash ================================================ # md5 and sha256 from https://pypi.python.org/pypi/docker-pycreds/json md5 322f570cea6b4661c6ac335683988e18 docker-pycreds-0.4.0.tar.gz sha256 6ce3270bcaf404cc4c3e27e4b6c70d3521deae82fb508767870fdbf772d584d4 docker-pycreds-0.4.0.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/python-docker-pycreds/python-docker-pycreds.mk ================================================ ################################################################################ # # python-docker-pycreds # ################################################################################ PYTHON_DOCKER_PYCREDS_VERSION = 0.4.0 PYTHON_DOCKER_PYCREDS_SOURCE = docker-pycreds-$(PYTHON_DOCKER_PYCREDS_VERSION).tar.gz PYTHON_DOCKER_PYCREDS_SITE = https://files.pythonhosted.org/packages/c5/e6/d1f6c00b7221e2d7c4b470132c931325c8b22c51ca62417e300f5ce16009 PYTHON_DOCKER_PYCREDS_SETUP_TYPE = setuptools PYTHON_DOCKER_PYCREDS_LICENSE = Apache-2.0 PYTHON_DOCKER_PYCREDS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-dockerpty/Config.in ================================================ config BR2_PACKAGE_PYTHON_DOCKERPTY bool "python-dockerpty" select BR2_PACKAGE_PYTHON_SIX # runtime help Python library to use the pseudo-tty of a docker container. https://github.com/d11wtq/dockerpty ================================================ FILE: package/python-dockerpty/python-dockerpty.hash ================================================ # md5 from https://pypi.python.org/pypi/dockerpty/json, sha256 locally computed md5 028bacb34536f3ee6a2ccd668c27e8e4 dockerpty-0.4.1.tar.gz sha256 69a9d69d573a0daa31bcd1c0774eeed5c15c295fe719c61aca550ed1393156ce dockerpty-0.4.1.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt ================================================ FILE: package/python-dockerpty/python-dockerpty.mk ================================================ ################################################################################ # # python-dockerpty # ################################################################################ PYTHON_DOCKERPTY_VERSION = 0.4.1 PYTHON_DOCKERPTY_SOURCE = dockerpty-$(PYTHON_DOCKERPTY_VERSION).tar.gz PYTHON_DOCKERPTY_SITE = https://pypi.python.org/packages/8d/ee/e9ecce4c32204a6738e0a5d5883d3413794d7498fe8b06f44becc028d3ba PYTHON_DOCKERPTY_SETUP_TYPE = setuptools PYTHON_DOCKERPTY_LICENSE = Apache-2.0 PYTHON_DOCKERPTY_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-docopt/Config.in ================================================ config BR2_PACKAGE_PYTHON_DOCOPT bool "python-docopt" help docopt helps you create most beautiful command-line interfaces easily. The option parser is generated based on the beautiful help message that you write yourself. This way you don't need to write this stupid repeatable parser-code, and instead can write only the help message-- the way you want it. https://github.com/docopt/docopt ================================================ FILE: package/python-docopt/python-docopt.hash ================================================ # locally computed sha256 2113eed1e7fbbcd43fb7ee6a977fb02d0b482753586c9dc1a8e3b7d541426e99 python-docopt-0.6.2.tar.gz sha256 3d5df78f592ff2433c3c6ce4984091b7f497059ddb8c6b08a061ba48e37b67f2 LICENSE-MIT ================================================ FILE: package/python-docopt/python-docopt.mk ================================================ ################################################################################ # # python-docopt # ################################################################################ PYTHON_DOCOPT_VERSION = 0.6.2 PYTHON_DOCOPT_SITE = $(call github,docopt,docopt,$(PYTHON_DOCOPT_VERSION)) PYTHON_DOCOPT_LICENSE = MIT PYTHON_DOCOPT_LICENSE_FILES = LICENSE-MIT PYTHON_DOCOPT_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-docutils/0001-Update-setup.py.patch ================================================ From 583e59ccf72a02c2a6f0399f29f622c7f2f4a932 Mon Sep 17 00:00:00 2001 From: milde Date: Sun, 1 Sep 2019 19:39:36 +0000 Subject: [PATCH] Update setup.py Python 3.4 no longer supported, more languages supported (and Lithuanian accepted by PyPi). git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@8383 929543f6-e4f2-0310-98a6-ba3bd3dd1d04 [Asaf: adjust upstream patch to 0.15.2] Signed-off-by: Asaf Kahlon --- setup.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index f801ea2..5c1ebfd 100755 --- a/setup.py +++ b/setup.py @@ -7,6 +7,10 @@ import os import glob try: import setuptools +except ImportError: + print('Warning: Could not load package `setuptools`.') + print('Actions requiring `setuptools` instead of `distutils` will fail') +try: from distutils.core import setup, Command from distutils.command.build import build from distutils.command.build_py import build_py @@ -123,7 +127,7 @@ what-you-see-is-what-you-get plaintext markup syntax.""", # wrap at col 60 'maintainer_email': 'docutils-develop@lists.sourceforge.net', 'license': 'public domain, Python, 2-Clause BSD, GPL 3 (see COPYING.txt)', 'platforms': 'OS-independent', - 'python_requires': '>=2.6, !=3.0.*, !=3.1.*, !=3.2.*', + 'python_requires': '>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*', 'package_dir': {'docutils': 'docutils', 'docutils.tools': 'tools'}, 'packages': ['docutils', @@ -213,14 +219,20 @@ classifiers = [ 'Natural Language :: Chinese (Simplified)', 'Natural Language :: Chinese (Traditional)', 'Natural Language :: Czech', + 'Natural Language :: Danish', 'Natural Language :: Dutch', 'Natural Language :: Esperanto', 'Natural Language :: Finnish', 'Natural Language :: French', 'Natural Language :: Galician', 'Natural Language :: German', + 'Natural Language :: Hebrew', 'Natural Language :: Italian', 'Natural Language :: Japanese', + 'Natural Language :: Korean', + 'Natural Language :: Latvian', + 'Natural Language :: Lithuanian', + 'Natural Language :: Persian', 'Natural Language :: Polish', 'Natural Language :: Portuguese (Brazilian)', 'Natural Language :: Russian', -- 2.20.1 k ================================================ FILE: package/python-docutils/Config.in ================================================ config BR2_PACKAGE_PYTHON_DOCUTILS bool "python-docutils" help Docutils is a modular system for processing documentation into useful formats, such as HTML, XML, and LaTeX. For input Docutils supports reStructuredText, an easy-to-read, what-you-see-is-what-you-get plaintext markup syntax. http://docutils.sourceforge.net/ ================================================ FILE: package/python-docutils/python-docutils.hash ================================================ # md5 from https://pypi.python.org/pypi/docutils/json, sha256 locally computed md5 e26a308d8000b0bed7416a633217c676 docutils-0.15.2.tar.gz sha256 a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99 docutils-0.15.2.tar.gz sha256 efa0c85aa99ea5b4781240031b0d02af54d7b5554c87ad2b2bea9ba490f6663f COPYING.txt ================================================ FILE: package/python-docutils/python-docutils.mk ================================================ ################################################################################ # # python-docutils # ################################################################################ PYTHON_DOCUTILS_VERSION = 0.15.2 PYTHON_DOCUTILS_SOURCE = docutils-$(PYTHON_DOCUTILS_VERSION).tar.gz PYTHON_DOCUTILS_SITE = https://files.pythonhosted.org/packages/93/22/953e071b589b0b1fee420ab06a0d15e5aa0c7470eb9966d60393ce58ad61 PYTHON_DOCUTILS_LICENSE = Public Domain, BSD-2-Clause, GPL-3.0 (emacs mode), other PYTHON_DOCUTILS_LICENSE_FILES = COPYING.txt PYTHON_DOCUTILS_SETUP_TYPE = distutils $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-dominate/Config.in ================================================ 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/ ================================================ FILE: package/python-dominate/python-dominate.hash ================================================ # md5, sha256 from https://pypi.org/pypi/dominate/json md5 9f714324ca99eee98bb3c3cdbe838de6 dominate-2.6.0.tar.gz sha256 76ec2cde23700a6fc4fee098168b9dee43b99c2f1dd0ca6a711f683e8eb7e1e4 dominate-2.6.0.tar.gz # Locally computed sha256 checksums sha256 9ccf26cfe845e0eb8bb58053e47366e7ab6b697ae010f7650978d4b71b7d1fc1 LICENSE.txt ================================================ FILE: package/python-dominate/python-dominate.mk ================================================ ################################################################################ # # python-dominate # ################################################################################ PYTHON_DOMINATE_VERSION = 2.6.0 PYTHON_DOMINATE_SOURCE = dominate-$(PYTHON_DOMINATE_VERSION).tar.gz PYTHON_DOMINATE_SITE = https://files.pythonhosted.org/packages/29/23/edf8e470f1053245c1aa99d92c8a3da9e83f6c7d3eb39205486965425be5 PYTHON_DOMINATE_SETUP_TYPE = setuptools PYTHON_DOMINATE_LICENSE = LGPL-3.0+ PYTHON_DOMINATE_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-dotenv/Config.in ================================================ config BR2_PACKAGE_PYTHON_DOTENV bool "python-dotenv" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 help Add .env support to your django/flask apps in development and deployments. https://github.com/theskumar/python-dotenv ================================================ FILE: package/python-dotenv/python-dotenv.hash ================================================ sha256 6640acd76e6cab84648e4fec16c9d19de6700971f9d91d045e7120622167bfda python-dotenv-0.10.2.tar.gz ================================================ FILE: package/python-dotenv/python-dotenv.mk ================================================ ################################################################################ # # python-dotenv # ################################################################################ PYTHON_DOTENV_VERSION = 0.10.2 PYTHON_DOTENV_SOURCE = python-dotenv-$(PYTHON_DOTENV_VERSION).tar.gz PYTHON_DOTENV_SITE = https://files.pythonhosted.org/packages/2d/f0/f89093378e5a7c028d7d618c9ce60a7853a1f36d46ff9e497ba03df102d5 PYTHON_DOTENV_SETUP_TYPE = setuptools PYTHON_DOTENV_LICENSE = Apache-2.0 PYTHON_DOTENV_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-dpkt/Config.in ================================================ config BR2_PACKAGE_PYTHON_DPKT bool "python-dpkt" select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 # runtime help Fast, simple packet creation / parsing, with definitions for the basic TCP/IP protocols. https://github.com/kbandla/dpkt ================================================ FILE: package/python-dpkt/python-dpkt.hash ================================================ # md5, sha256 from https://pypi.org/pypi/dpkt/json md5 ac3ace1c5ee12a74f12a863ac9082b59 dpkt-1.9.7.2.tar.gz sha256 80f977667ebbad2b5c4f7b7f45ee8bea6622fb71723f68a9a8fe6274520c853b dpkt-1.9.7.2.tar.gz # Locally computed sha256 checksums sha256 4c5ffde575425591cbd51410219a6b98bbbb717e0c5784187e356653da8e5095 LICENSE ================================================ FILE: package/python-dpkt/python-dpkt.mk ================================================ ################################################################################ # # python-dpkt # ################################################################################ PYTHON_DPKT_VERSION = 1.9.7.2 PYTHON_DPKT_SOURCE = dpkt-$(PYTHON_DPKT_VERSION).tar.gz PYTHON_DPKT_SITE = https://files.pythonhosted.org/packages/95/51/923b370880eff9b62fe4fe965a916da709022a02669c670731da69088e93 PYTHON_DPKT_SETUP_TYPE = setuptools PYTHON_DPKT_LICENSE = BSD-3-Clause PYTHON_DPKT_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-ecdsa/Config.in ================================================ config BR2_PACKAGE_PYTHON_ECDSA bool "python-ecdsa" select BR2_PACKAGE_PYTHON_SIX # runtime help ECDSA cryptographic signature library (pure python). http://github.com/tlsfuzzer/python-ecdsa ================================================ FILE: package/python-ecdsa/python-ecdsa.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ecdsa/json md5 d0dd59c43af0f640a60599551529f5d0 ecdsa-0.17.0.tar.gz sha256 b9f500bb439e4153d0330610f5d26baaf18d17b8ced1bc54410d189385ea68aa ecdsa-0.17.0.tar.gz # Locally computed sha256 checksums sha256 3eca9845773d2e5b8cc9d8c119d345f00a4806e4bd660d4a3d6cdf9c0e9d8bb2 LICENSE ================================================ FILE: package/python-ecdsa/python-ecdsa.mk ================================================ ################################################################################ # # python-ecdsa # ################################################################################ PYTHON_ECDSA_VERSION = 0.17.0 PYTHON_ECDSA_SOURCE = ecdsa-$(PYTHON_ECDSA_VERSION).tar.gz PYTHON_ECDSA_SITE = https://files.pythonhosted.org/packages/bf/3d/3d909532ad541651390bf1321e097404cbd39d1d89c2046f42a460220fb3 PYTHON_ECDSA_SETUP_TYPE = setuptools PYTHON_ECDSA_LICENSE = MIT PYTHON_ECDSA_LICENSE_FILES = LICENSE PYTHON_ECDSA_CPE_ID_VENDOR = python-ecdsa_project $(eval $(python-package)) ================================================ FILE: package/python-engineio/Config.in ================================================ config BR2_PACKAGE_PYTHON_ENGINEIO bool "python-engineio" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON3_ZLIB help Engine.IO server. http://github.com/miguelgrinberg/python-engineio/ ================================================ FILE: package/python-engineio/python-engineio.hash ================================================ # md5, sha256 from https://pypi.org/pypi/python-engineio/json md5 d2bc7184d64e9d5a692bfad29ff73dea python-engineio-4.2.1.tar.gz sha256 d510329b6d8ed5662547862f58bc73659ae62defa66b66d745ba021de112fa62 python-engineio-4.2.1.tar.gz # Locally computed sha256 checksums sha256 c9e97d3dbc1fbbcdb4f7808b282cd646db887aff4f5313fe6bbe8d4c31405a9c LICENSE ================================================ FILE: package/python-engineio/python-engineio.mk ================================================ ################################################################################ # # python-engineio # ################################################################################ PYTHON_ENGINEIO_VERSION = 4.2.1 PYTHON_ENGINEIO_SITE = https://files.pythonhosted.org/packages/74/1e/33e402011bb2fe33ab12762e5a66d66df1d47302a23e9c5e8310e11b1403 PYTHON_ENGINEIO_SETUP_TYPE = setuptools PYTHON_ENGINEIO_LICENSE = MIT PYTHON_ENGINEIO_LICENSE_FILES = LICENSE PYTHON_ENGINEIO_CPE_ID_VENDOR = python-engineio_project $(eval $(python-package)) ================================================ FILE: package/python-entrypoints/Config.in ================================================ config BR2_PACKAGE_PYTHON_ENTRYPOINTS bool "python-entrypoints" help Discover and load entry points from installed packages. https://github.com/takluyver/entrypoints ================================================ FILE: package/python-entrypoints/python-entrypoints.hash ================================================ # md5, sha256 from https://pypi.org/pypi/entrypoints/json md5 c5c61ea2e46a0c50ea08f4af7955a0b1 entrypoints-0.3.tar.gz sha256 c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451 entrypoints-0.3.tar.gz # Locally computed sha256 checksums sha256 de5fcd7349cdf399b0707a2a024833c4704743650133c72d6f0ff7561a03a848 LICENSE ================================================ FILE: package/python-entrypoints/python-entrypoints.mk ================================================ ################################################################################ # # python-entrypoints # ################################################################################ PYTHON_ENTRYPOINTS_VERSION = 0.3 PYTHON_ENTRYPOINTS_SOURCE = entrypoints-$(PYTHON_ENTRYPOINTS_VERSION).tar.gz PYTHON_ENTRYPOINTS_SITE = https://files.pythonhosted.org/packages/b4/ef/063484f1f9ba3081e920ec9972c96664e2edb9fdc3d8669b0e3b8fc0ad7c PYTHON_ENTRYPOINTS_SETUP_TYPE = distutils PYTHON_ENTRYPOINTS_LICENSE = MIT PYTHON_ENTRYPOINTS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-enum/Config.in ================================================ config BR2_PACKAGE_PYTHON_ENUM bool "python-enum" depends on BR2_PACKAGE_PYTHON help Robust enumerated type support in Python An enumeration object is an immutable sequence object built from a sequence of strings. Each value is also available as an attribute. Such values are constant. Comparisons and enumeration are supported. https://pypi.python.org/pypi/enum ================================================ FILE: package/python-enum/python-enum.hash ================================================ # md5, sha256 from https://pypi.org/pypi/enum/json md5 e7d170e3f84435b77058de625c96ef58 enum-0.4.7.tar.gz sha256 8c7cf3587eda51008bcc1eed99ea2c331ccd265c231dbaa95ec5258d3dc03100 enum-0.4.7.tar.gz # Locally computed sha256 checksums sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL-3 ================================================ FILE: package/python-enum/python-enum.mk ================================================ ################################################################################ # # python-enum # ################################################################################ PYTHON_ENUM_VERSION = 0.4.7 PYTHON_ENUM_SOURCE = enum-$(PYTHON_ENUM_VERSION).tar.gz PYTHON_ENUM_SITE = https://files.pythonhosted.org/packages/02/a0/32e1d5a21b703f600183e205aafc6773577e16429af5ad3c3f9b956b07ca PYTHON_ENUM_SETUP_TYPE = setuptools PYTHON_ENUM_LICENSE = GPL-3.0+ PYTHON_ENUM_LICENSE_FILES = LICENSE.GPL-3 $(eval $(python-package)) ================================================ FILE: package/python-enum34/Config.in ================================================ config BR2_PACKAGE_PYTHON_ENUM34 bool "python-enum34" depends on BR2_PACKAGE_PYTHON help Python 3.4 Enum backported to 2.x. An enumeration is a set of symbolic names (members) bound to unique, constant values. Within an enumeration, the members can be compared by identity, and the enumeration itself can be iterated over. https://pypi.python.org/pypi/enum34 ================================================ FILE: package/python-enum34/python-enum34.hash ================================================ # md5 from https://pypi.python.org/pypi/enum34/json md5 b5ac0bb5ea9e830029599e410d09d3b5 enum34-1.1.10.tar.gz # Locally computed sha256 cce6a7477ed816bd2542d03d53db9f0db935dd013b70f336a95c73979289f248 enum34-1.1.10.tar.gz sha256 88ec6a6c8eafa3b9757e745783938bef3f5e4d5e3c76b1db576aa3ab520e5e1d enum/LICENSE ================================================ FILE: package/python-enum34/python-enum34.mk ================================================ ################################################################################ # # python-enum34 # ################################################################################ PYTHON_ENUM34_VERSION = 1.1.10 PYTHON_ENUM34_SOURCE = enum34-$(PYTHON_ENUM34_VERSION).tar.gz PYTHON_ENUM34_SITE = https://files.pythonhosted.org/packages/11/c4/2da1f4952ba476677a42f25cd32ab8aaf0e1c0d0e00b89822b835c7e654c PYTHON_ENUM34_SETUP_TYPE = setuptools PYTHON_ENUM34_LICENSE = BSD-3-Clause PYTHON_ENUM34_LICENSE_FILES = enum/LICENSE PYTHON_ENUM34_CPE_ID_VENDOR = python PYTHON_ENUM34_CPE_ID_PRODUCT = enum34 $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-esptool/Config.in ================================================ config BR2_PACKAGE_PYTHON_ESPTOOL bool "python-esptool" select BR2_PACKAGE_PYTHON_ECDSA # runtime select BR2_PACKAGE_PYTHON_PYAES # runtime select BR2_PACKAGE_PYTHON_SERIAL # runtime select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 help A serial utility to communicate & flash code to Espressif ESP8266 & ESP32 chips. https://github.com/espressif/esptool ================================================ FILE: package/python-esptool/python-esptool.hash ================================================ # md5, sha256 from https://pypi.org/pypi/esptool/json md5 84aa6ffb4723b1f59a2c83244a9ad918 esptool-3.2.tar.gz sha256 9638ff11c68e621e08e7c3335d4fd9d70b2ddcf7caae778073cd8cc27be1216f esptool-3.2.tar.gz # Locally computed sha256 checksums sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/python-esptool/python-esptool.mk ================================================ ################################################################################ # # python-esptool # ################################################################################ PYTHON_ESPTOOL_VERSION = 3.2 PYTHON_ESPTOOL_SOURCE = esptool-$(PYTHON_ESPTOOL_VERSION).tar.gz PYTHON_ESPTOOL_SITE = https://files.pythonhosted.org/packages/60/a4/33907f5b735f9179061bd6b6cae7123d4a2d0cdf46c879fa55e66edef24f PYTHON_ESPTOOL_SETUP_TYPE = setuptools PYTHON_ESPTOOL_LICENSE = GPL-2.0+ PYTHON_ESPTOOL_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-falcon/Config.in ================================================ config BR2_PACKAGE_PYTHON_FALCON bool "python-falcon" depends on BR2_PACKAGE_PYTHON3 help An unladen web framework for building APIs and app backends. https://falconframework.org ================================================ FILE: package/python-falcon/python-falcon.hash ================================================ # md5, sha256 from https://pypi.org/pypi/falcon/json md5 4a70cfeeacb453f5fd7eb791bdd3ac01 falcon-3.0.1.tar.gz sha256 c41d84db325881a870e8b7129d5ecfd972fa4323cf77b7119a1d2a21966ee681 falcon-3.0.1.tar.gz # Locally computed sha256 checksums sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/python-falcon/python-falcon.mk ================================================ ################################################################################ # # python-falcon # ################################################################################ PYTHON_FALCON_VERSION = 3.0.1 PYTHON_FALCON_SOURCE = falcon-$(PYTHON_FALCON_VERSION).tar.gz PYTHON_FALCON_SITE = https://files.pythonhosted.org/packages/63/22/6a9009c53ad78e65d88a44db8eccc7f39c6f54fc05fb43b1e9cbbc481d06 PYTHON_FALCON_SETUP_TYPE = setuptools PYTHON_FALCON_LICENSE = Apache-2.0 PYTHON_FALCON_LICENSE_FILES = LICENSE ifeq ($(BR2_PACKAGE_HOST_PYTHON_CYTHON),y) PYTHON_FALCON_DEPENDENCIES += host-python-cython endif $(eval $(python-package)) ================================================ FILE: package/python-fastentrypoints/Config.in.host ================================================ config BR2_PACKAGE_HOST_PYTHON_FASTENTRYPOINTS bool "host python-fastentrypoints" help Makes entry_points specified in setup.py load more quickly. https://github.com/ninjaaron/fast-entry_points ================================================ FILE: package/python-fastentrypoints/python-fastentrypoints.hash ================================================ # md5 from https://pypi.org/pypi/fastentrypoints/json, sha256 locally computed md5 390ad9a9229164a06156a5b1f0ef1b22 fastentrypoints-0.12.tar.gz sha256 ff284f1469bd65400599807d2c6284d5b251398e6e28811f5f77fd262292410b fastentrypoints-0.12.tar.gz sha256 d1ce3f6a7bb1a7194c7d826a0ca318176b12e58616d9e3d8f366ad43802787c4 fastentrypoints.py ================================================ FILE: package/python-fastentrypoints/python-fastentrypoints.mk ================================================ ################################################################################ # # python-fastentrypoints # ################################################################################ PYTHON_FASTENTRYPOINTS_VERSION = 0.12 PYTHON_FASTENTRYPOINTS_SOURCE = fastentrypoints-$(PYTHON_FASTENTRYPOINTS_VERSION).tar.gz PYTHON_FASTENTRYPOINTS_SITE = https://files.pythonhosted.org/packages/56/59/69d9ae590ca39435d409651314ec13b2abe8127c1db0231c01d034ebb6b0 PYTHON_FASTENTRYPOINTS_SETUP_TYPE = setuptools PYTHON_FASTENTRYPOINTS_LICENSE = BSD-2-Clause PYTHON_FASTENTRYPOINTS_LICENSE_FILES = fastentrypoints.py $(eval $(host-python-package)) ================================================ FILE: package/python-filelock/Config.in ================================================ config BR2_PACKAGE_PYTHON_FILELOCK bool "python-filelock" depends on BR2_PACKAGE_PYTHON3 help A platform independent file lock. https://github.com/benediktschmitt/py-filelock ================================================ FILE: package/python-filelock/python-filelock.hash ================================================ # md5, sha256 from https://pypi.org/pypi/filelock/json md5 f8458b5235a9e439fd512dc08947f6b2 filelock-3.3.0.tar.gz sha256 8c7eab13dc442dc249e95158bcc12dec724465919bdc9831fdbf0660f03d1785 filelock-3.3.0.tar.gz # Locally computed sha256 checksums sha256 88d9b4eb60579c191ec391ca04c16130572d7eedc4a86daa58bf28c6e14c9bcd LICENSE ================================================ FILE: package/python-filelock/python-filelock.mk ================================================ ################################################################################ # # python-filelock # ################################################################################ PYTHON_FILELOCK_VERSION = 3.3.0 PYTHON_FILELOCK_SOURCE = filelock-$(PYTHON_FILELOCK_VERSION).tar.gz PYTHON_FILELOCK_SITE = https://files.pythonhosted.org/packages/fd/6e/665a6cb363bee26e40954ee812e4e733fd7cafd84c06e0c7c2357641abd6 PYTHON_FILELOCK_SETUP_TYPE = setuptools PYTHON_FILELOCK_LICENSE = Public Domain PYTHON_FILELOCK_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-fire/Config.in ================================================ config BR2_PACKAGE_PYTHON_FIRE bool "python-fire" select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_TERMCOLOR # runtime select BR2_PACKAGE_PYTHON_ENUM34 if BR2_PACKAGE_PYTHON # runtime help A library for automatically generating command line interfaces. https://github.com/google/python-fire ================================================ FILE: package/python-fire/python-fire.hash ================================================ # md5, sha256 from https://pypi.org/pypi/fire/json md5 799be84cbbd7df2cf159cdcb538ab6f9 fire-0.4.0.tar.gz sha256 c5e2b8763699d1142393a46d0e3e790c5eb2f0706082df8f647878842c216a62 fire-0.4.0.tar.gz # Locally computed sha256 checksums sha256 a5de77b62266bca0bb97bf058992f0b0f308a83a8ca55ee10fbf6bd8ed8f7ed0 LICENSE ================================================ FILE: package/python-fire/python-fire.mk ================================================ ################################################################################ # # python-fire # ################################################################################ PYTHON_FIRE_VERSION = 0.4.0 PYTHON_FIRE_SOURCE = fire-$(PYTHON_FIRE_VERSION).tar.gz PYTHON_FIRE_SITE = https://files.pythonhosted.org/packages/11/07/a119a1aa04d37bc819940d95ed7e135a7dcca1c098123a3764a6dcace9e7 PYTHON_FIRE_SETUP_TYPE = setuptools PYTHON_FIRE_LICENSE = Apache-2.0 PYTHON_FIRE_LICENSE_FILES = LICENSE ifeq ($(BR2_PACKAGE_PYTHON),y) # only needed/valid for python 3.x define PYTHON_FIRE_RM_PY3_FILE rm -f $(TARGET_DIR)/usr/lib/python*/site-packages/fire/test_components_py3.py endef PYTHON_FIRE_POST_INSTALL_TARGET_HOOKS += PYTHON_FIRE_RM_PY3_FILE endif $(eval $(python-package)) ================================================ FILE: package/python-flask/Config.in ================================================ config BR2_PACKAGE_PYTHON_FLASK bool "python-flask" depends on BR2_PACKAGE_PYTHON3 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_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON_SSL if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_SSL if BR2_PACKAGE_PYTHON3 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. https://palletsprojects.com/p/flask ================================================ FILE: package/python-flask/python-flask.hash ================================================ # From https://pypi.org/project/Flask/#copy-hash-modal-911ffb67-fe84-4e25-a1a9-f4c745a0a980 md5 0da4145d172993cd28a6c619630cc19c Flask-1.1.2.tar.gz sha256 4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060 Flask-1.1.2.tar.gz # License files sha256 489a8e1108509ed98a37bb983e11e0f7e1d31f0bd8f99a79c8448e7ff37d07ea LICENSE.rst sha256 0ef3ae025f4a398761079f0d687ff3d66f4fef3a32ac2607318e909c0cba9150 docs/license.rst ================================================ FILE: package/python-flask/python-flask.mk ================================================ ################################################################################ # # python-flask # ################################################################################ PYTHON_FLASK_VERSION = 1.1.2 PYTHON_FLASK_SOURCE = Flask-$(PYTHON_FLASK_VERSION).tar.gz PYTHON_FLASK_SITE = https://files.pythonhosted.org/packages/4e/0b/cb02268c90e67545a0e3a37ea1ca3d45de3aca43ceb7dbf1712fb5127d5d PYTHON_FLASK_SETUP_TYPE = setuptools PYTHON_FLASK_LICENSE = BSD-3-Clause PYTHON_FLASK_LICENSE_FILES = LICENSE.rst docs/license.rst PYTHON_FLASK_CPE_ID_VENDOR = palletsprojects PYTHON_FLASK_CPE_ID_PRODUCT = flask $(eval $(python-package)) ================================================ FILE: package/python-flask-babel/Config.in ================================================ config BR2_PACKAGE_PYTHON_FLASK_BABEL bool "python-flask-babel" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_FLASK # runtime select BR2_PACKAGE_PYTHON_BABEL # runtime select BR2_PACKAGE_PYTHON_JINJA2 # runtime help Flask-Babel is an extension to Flask that adds i18n and l10n support to any Flask application with the help of babel, pytz and speaklater. It has builtin support for date formatting with timezone support as well as a very simple and friendly interface to gettext translations. https://pythonhosted.org/Flask-Babel/ ================================================ FILE: package/python-flask-babel/python-flask-babel.hash ================================================ # From: https://pypi.org/project/Flask-Babel/#copy-hash-modal-80f92a70-1c66-4cce-bb3d-8d6f98287e3f md5 50d5e92d96ef58787bf85b5a1b0a5567 Flask-Babel-2.0.0.tar.gz sha256 f9faf45cdb2e1a32ea2ec14403587d4295108f35017a7821a2b1acb8cfd9257d Flask-Babel-2.0.0.tar.gz # License files sha256 a526100a7047237360a394ba4f70ae801b50ff9b8c9b9e73e7795480a59f6b7e LICENSE ================================================ FILE: package/python-flask-babel/python-flask-babel.mk ================================================ ################################################################################ # # python-flask-babel # ################################################################################ PYTHON_FLASK_BABEL_VERSION = 2.0.0 PYTHON_FLASK_BABEL_SOURCE = Flask-Babel-$(PYTHON_FLASK_BABEL_VERSION).tar.gz PYTHON_FLASK_BABEL_SITE = https://files.pythonhosted.org/packages/d7/fe/655e6a5a99ceb815fe839f0698956a9d6c7d5bcc06ca1ee7c6eb6dac154b PYTHON_FLASK_BABEL_LICENSE = BSD-3-Clause PYTHON_FLASK_BABEL_SETUP_TYPE = setuptools PYTHON_FLASK_BABEL_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-flask-cors/Config.in ================================================ config BR2_PACKAGE_PYTHON_FLASK_CORS bool "python-flask-cors" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_FLASK # runtime select BR2_PACKAGE_PYTHON_SIX # runtime help A Flask extension adding a decorator for CORS support. https://github.com/corydolphin/flask-cors ================================================ FILE: package/python-flask-cors/python-flask-cors.hash ================================================ # md5, sha256 from https://pypi.org/pypi/flask-cors/json md5 647ff0632b960ba063a077fb4063077e Flask-Cors-3.0.10.tar.gz sha256 b60839393f3b84a0f3746f6cdca56c1ad7426aa738b70d6c61375857823181de Flask-Cors-3.0.10.tar.gz # Locally computed sha256 checksums sha256 6e1a1bdc54834c1e0740cbce5d5f6f2cae1c846fd2a7f482b11649594fafbd5d LICENSE ================================================ FILE: package/python-flask-cors/python-flask-cors.mk ================================================ ################################################################################ # # python-flask-cors # ################################################################################ PYTHON_FLASK_CORS_VERSION = 3.0.10 PYTHON_FLASK_CORS_SOURCE = Flask-Cors-$(PYTHON_FLASK_CORS_VERSION).tar.gz PYTHON_FLASK_CORS_SITE = https://files.pythonhosted.org/packages/cf/25/e3b2553d22ed542be807739556c69621ad2ab276ae8d5d2560f4ed20f652 PYTHON_FLASK_CORS_SETUP_TYPE = setuptools PYTHON_FLASK_CORS_LICENSE = MIT PYTHON_FLASK_CORS_LICENSE_FILES = LICENSE PYTHON_FLASK_CORS_CPE_ID_VENDOR = flask-cors_project PYTHON_FLASK_CORS_CPE_ID_PRODUCT = flask-cors $(eval $(python-package)) ================================================ FILE: package/python-flask-expects-json/Config.in ================================================ config BR2_PACKAGE_PYTHON_FLASK_EXPECTS_JSON bool "python-flask-expects-json" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_FLASK # runtime select BR2_PACKAGE_PYTHON_JSONSCHEMA # runtime help Decorator for REST endpoints in flask. Validate JSON request data. https://github.com/fischerfredl/flask-expects-json ================================================ FILE: package/python-flask-expects-json/python-flask-expects-json.hash ================================================ # md5, sha256 from https://pypi.org/pypi/flask-expects-json/json md5 c1fb8ede58db312d7923212dc97b8ab4 flask-expects-json-1.5.0.tar.gz sha256 0087dc3d089f1ac75a1fc0f259f4dbd02bbb9c356e92e1a080f2309e2f75d053 flask-expects-json-1.5.0.tar.gz # Locally computed sha256 checksums sha256 06154a99fdc664107294a0a5e7e68f776078d075408dd32bbeaa7340fdd39e73 LICENSE.txt ================================================ FILE: package/python-flask-expects-json/python-flask-expects-json.mk ================================================ ################################################################################ # # python-flask-expects-json # ################################################################################ PYTHON_FLASK_EXPECTS_JSON_VERSION = 1.5.0 PYTHON_FLASK_EXPECTS_JSON_SOURCE = flask-expects-json-$(PYTHON_FLASK_EXPECTS_JSON_VERSION).tar.gz PYTHON_FLASK_EXPECTS_JSON_SITE = https://files.pythonhosted.org/packages/4c/4a/9d9d050af700fb3feebd1f8466e73d65ce8b4709f27773e07100b0993451 PYTHON_FLASK_EXPECTS_JSON_SETUP_TYPE = setuptools PYTHON_FLASK_EXPECTS_JSON_LICENSE = MIT PYTHON_FLASK_EXPECTS_JSON_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-flask-jsonrpc/Config.in ================================================ config BR2_PACKAGE_PYTHON_FLASK_JSONRPC bool "python-flask-jsonrpc" depends on BR2_PACKAGE_PYTHON3 # runtime dependency select BR2_PACKAGE_PYTHON_FLASK help A basic JSON-RPC implementation for your Flask-powered sites. https://github.com/cenobites/flask-jsonrpc ================================================ FILE: package/python-flask-jsonrpc/python-flask-jsonrpc.hash ================================================ # md5 from https://pypi.python.org/pypi/flask-jsonrpc/json md5 5c0592f53b2f18e34d5be435acee8842 Flask-JSONRPC-0.3.1.tar.gz # Locally computed sha256 4d0cc9c20874093306af91f5a48009fb8659a041428dcdb11703598ffbbc97d0 Flask-JSONRPC-0.3.1.tar.gz sha256 f613b06cbe766fd514b1b619a71a12c353cccaa55fa4f547be55563d9829be6f setup.py ================================================ FILE: package/python-flask-jsonrpc/python-flask-jsonrpc.mk ================================================ ################################################################################ # # python-flask-jsonrpc # ################################################################################ PYTHON_FLASK_JSONRPC_VERSION = 0.3.1 PYTHON_FLASK_JSONRPC_SOURCE = Flask-JSONRPC-$(PYTHON_FLASK_JSONRPC_VERSION).tar.gz PYTHON_FLASK_JSONRPC_SITE = https://pypi.python.org/packages/cb/1f/e6d66e8498609ba04bac76155b2ea884df95531e93501bf4ef009d40a83c PYTHON_FLASK_JSONRPC_LICENSE = BSD-3-Clause PYTHON_FLASK_JSONRPC_LICENSE_FILES = setup.py PYTHON_FLASK_JSONRPC_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-flask-login/Config.in ================================================ config BR2_PACKAGE_PYTHON_FLASK_LOGIN bool "python-flask-login" depends on BR2_PACKAGE_PYTHON3 # runtime dependency select BR2_PACKAGE_PYTHON_FLASK help Flask-Login provides user session management for Flask. https://github.com/maxcountryman/flask-login ================================================ FILE: package/python-flask-login/python-flask-login.hash ================================================ # From https://pypi.org/project/Flask-Login/#copy-hash-modal-8bb2ac58-b80a-4793-84d4-4f32b92976d9 md5 a2d94aa6ae935345ebc68eb3cbb5fccd Flask-Login-0.5.0.tar.gz sha256 6d33aef15b5bcead780acc339464aae8a6e28f13c90d8b1cf9de8b549d1c0b4b Flask-Login-0.5.0.tar.gz # License files sha256 7a9dfb9c5da204ed1370f3b62c13e2992a12da1da707f47e156897eeb4344e5b LICENSE ================================================ FILE: package/python-flask-login/python-flask-login.mk ================================================ ################################################################################ # # python-flask-login # ################################################################################ PYTHON_FLASK_LOGIN_VERSION = 0.5.0 PYTHON_FLASK_LOGIN_SOURCE = Flask-Login-$(PYTHON_FLASK_LOGIN_VERSION).tar.gz PYTHON_FLASK_LOGIN_SITE = https://files.pythonhosted.org/packages/f9/01/f6c0a3a654ca125cf9cd273314c03a8bc6a47bf861765c8c1d375e15a28d PYTHON_FLASK_LOGIN_LICENSE = MIT PYTHON_FLASK_LOGIN_LICENSE_FILES = LICENSE PYTHON_FLASK_LOGIN_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-flask-sqlalchemy/Config.in ================================================ config BR2_PACKAGE_PYTHON_FLASK_SQLALCHEMY bool "python-flask-sqlalchemy" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_FLASK # runtime select BR2_PACKAGE_PYTHON_SQLALCHEMY # runtime help Flask-SQLAlchemy is a Flask microframework extension which adds support for the SQLAlchemy SQL toolkit/ORM. http://github.com/mitsuhiko/flask-sqlalchemy ================================================ FILE: package/python-flask-sqlalchemy/python-flask-sqlalchemy.hash ================================================ # md5, sha256 from https://pypi.org/pypi/flask-sqlalchemy/json md5 1f5781cf3e1a2b1aabda47a5b20d2073 Flask-SQLAlchemy-2.4.1.tar.gz sha256 6974785d913666587949f7c2946f7001e4fa2cb2d19f4e69ead02e4b8f50b33d Flask-SQLAlchemy-2.4.1.tar.gz # Locally computed sha256 checksums sha256 489a8e1108509ed98a37bb983e11e0f7e1d31f0bd8f99a79c8448e7ff37d07ea LICENSE.rst ================================================ FILE: package/python-flask-sqlalchemy/python-flask-sqlalchemy.mk ================================================ ################################################################################ # # python-flask-sqlalchemy # ################################################################################ PYTHON_FLASK_SQLALCHEMY_VERSION = 2.4.1 PYTHON_FLASK_SQLALCHEMY_SOURCE = Flask-SQLAlchemy-$(PYTHON_FLASK_SQLALCHEMY_VERSION).tar.gz PYTHON_FLASK_SQLALCHEMY_SITE = https://files.pythonhosted.org/packages/52/7a/35bacbedafdc652d5198b80eb22eacccae0c97a49740a45da828b05cc37b PYTHON_FLASK_SQLALCHEMY_SETUP_TYPE = setuptools PYTHON_FLASK_SQLALCHEMY_LICENSE = BSD-3-Clause PYTHON_FLASK_SQLALCHEMY_LICENSE_FILES = LICENSE.rst $(eval $(python-package)) ================================================ FILE: package/python-flask-wtf/Config.in ================================================ config BR2_PACKAGE_PYTHON_FLASK_WTF bool "python-flask-wtf" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_FLASK # runtime select BR2_PACKAGE_PYTHON_ITSDANGEROUS # runtime select BR2_PACKAGE_PYTHON_WTFORMS # runtime help Simple integration of Flask and WTForms. https://github.com/wtforms/flask-wtf ================================================ FILE: package/python-flask-wtf/python-flask-wtf.hash ================================================ # md5, sha256 from https://pypi.org/pypi/flask-wtf/json md5 920a5a476ecfb751952b5048cc05fcf8 Flask-WTF-0.15.1.tar.gz sha256 ff177185f891302dc253437fe63081e7a46a4e99aca61dfe086fb23e54fff2dc Flask-WTF-0.15.1.tar.gz # Locally computed sha256 checksums sha256 a075f8d98acfdb05dd98716242b9e2c1b3ab98722926b3c4cf6c916ac14e8350 LICENSE ================================================ FILE: package/python-flask-wtf/python-flask-wtf.mk ================================================ ################################################################################ # # python-flask-wtf # ################################################################################ PYTHON_FLASK_WTF_VERSION = 0.15.1 PYTHON_FLASK_WTF_SOURCE = Flask-WTF-$(PYTHON_FLASK_WTF_VERSION).tar.gz PYTHON_FLASK_WTF_SITE = https://files.pythonhosted.org/packages/9c/b5/4b48cece7b31aac2beab115330c2978ef4deee3aeb0dd1037c9b7a71b8c3 PYTHON_FLASK_WTF_LICENSE = BSD-3-Clause PYTHON_FLASK_WTF_LICENSE_FILES = LICENSE PYTHON_FLASK_WTF_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-flatbuffers/Config.in ================================================ config BR2_PACKAGE_PYTHON_FLATBUFFERS bool "python-flatbuffers" help The FlatBuffers serialization format for Python. https://github.com/google/flatbuffers ================================================ FILE: package/python-flatbuffers/python-flatbuffers.hash ================================================ # md5, sha256 from https://pypi.org/pypi/flatbuffers/json md5 b2ce60d9a7c1f8a2ddac6d49a1b700a4 flatbuffers-2.0.tar.gz sha256 12158ab0272375eab8db2d663ae97370c33f152b27801fa6024e1d6105fd4dd2 flatbuffers-2.0.tar.gz ================================================ FILE: package/python-flatbuffers/python-flatbuffers.mk ================================================ ################################################################################ # # python-flatbuffers # ################################################################################ PYTHON_FLATBUFFERS_VERSION = 2.0 PYTHON_FLATBUFFERS_SOURCE = flatbuffers-$(PYTHON_FLATBUFFERS_VERSION).tar.gz PYTHON_FLATBUFFERS_SITE = https://files.pythonhosted.org/packages/10/41/09e9ab2134895b82466fada08b69b800f9a724bc81fcca3d4474ce48ffce PYTHON_FLATBUFFERS_LICENSE = Apache-2.0 PYTHON_FLATBUFFERS_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-flup/Config.in ================================================ config BR2_PACKAGE_PYTHON_FLUP bool "python-flup" depends on BR2_PACKAGE_PYTHON3 help flup provides of a collection of WSGI modules for Python. It allows a webserver to use scgi-mod and fastcgi-mod with python. https://pypi.python.org/pypi/flup ================================================ FILE: package/python-flup/python-flup.hash ================================================ # md5, sha256 from https://pypi.org/pypi/flup/json md5 a64e7a6374e043480ee92534c735964e flup-1.0.3.tar.gz sha256 5eb09f26eb0751f8380d8ac43d1dfb20e1d42eca0fa45ea9289fa532a79cd159 flup-1.0.3.tar.gz # Locally computed sha256 checksums sha256 66a60ebc732165d199ec018fb9876d9f8168a5a8575375e64cc1b3d78c32b481 PKG-INFO ================================================ FILE: package/python-flup/python-flup.mk ================================================ ################################################################################ # # python-flup # ################################################################################ PYTHON_FLUP_VERSION = 1.0.3 PYTHON_FLUP_SOURCE = flup-$(PYTHON_FLUP_VERSION).tar.gz PYTHON_FLUP_SITE = https://files.pythonhosted.org/packages/bb/b5/26cc8f7baf0ddebd3e61a354a2bcc692cfe8005123c37ee3d8507c4c7511 PYTHON_FLUP_LICENSE = BSD-2-Clause, MIT PYTHON_FLUP_LICENSE_FILES = PKG-INFO PYTHON_FLUP_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-frozenlist/Config.in ================================================ config BR2_PACKAGE_PYTHON_FROZENLIST bool "python-frozenlist" depends on BR2_PACKAGE_PYTHON3 help A list-like structure which implements collections.abc.MutableSequence. https://github.com/aio-libs/frozenlist ================================================ FILE: package/python-frozenlist/python-frozenlist.hash ================================================ # md5, sha256 from https://pypi.org/pypi/frozenlist/json md5 8f1851ef871d95a15ebcf20255c12f6d frozenlist-1.2.0.tar.gz sha256 68201be60ac56aff972dc18085800b6ee07973c49103a8aba669dee3d71079de frozenlist-1.2.0.tar.gz # Locally computed sha256 checksums sha256 6fd5243e92dd7f98ec69c7ac377728e74905709ff527a5bf98d6d0263c04f5b6 LICENSE ================================================ FILE: package/python-frozenlist/python-frozenlist.mk ================================================ ################################################################################ # # python-frozenlist # ################################################################################ PYTHON_FROZENLIST_VERSION = 1.2.0 PYTHON_FROZENLIST_SOURCE = frozenlist-$(PYTHON_FROZENLIST_VERSION).tar.gz PYTHON_FROZENLIST_SITE = https://files.pythonhosted.org/packages/5c/ee/7c6287928ba776567603248e160387cf4143641ecf734e393ad9b2c82475 PYTHON_FROZENLIST_SETUP_TYPE = setuptools PYTHON_FROZENLIST_LICENSE = Apache-2.0 PYTHON_FROZENLIST_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-functools32/Config.in ================================================ config BR2_PACKAGE_PYTHON_FUNCTOOLS32 bool "python-functools32" depends on BR2_PACKAGE_PYTHON help Backport of the functools module from Python 3.2.3 for use on 2.7 and PyPy. https://github.com/MiCHiLU/python-functools32 ================================================ FILE: package/python-functools32/python-functools32.hash ================================================ # md5 from https://pypi.python.org/pypi/functools32/json, sha256 locally computed md5 09f24ffd9af9f6cd0f63cb9f4e23d4b2 functools32-3.2.3-2.tar.gz sha256 f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d functools32-3.2.3-2.tar.gz sha256 3f9ea6b89abe1556b72aff67b987d64c8272564815cd6a2832e6c4f6abdfe3b1 LICENSE ================================================ FILE: package/python-functools32/python-functools32.mk ================================================ ################################################################################ # # python-functools32 # ################################################################################ PYTHON_FUNCTOOLS32_VERSION = 3.2.3-2 PYTHON_FUNCTOOLS32_SOURCE = functools32-$(PYTHON_FUNCTOOLS32_VERSION).tar.gz PYTHON_FUNCTOOLS32_SITE = https://pypi.python.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db PYTHON_FUNCTOOLS32_SETUP_TYPE = distutils PYTHON_FUNCTOOLS32_LICENSE = Python-2.0 PYTHON_FUNCTOOLS32_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-future/Config.in ================================================ config BR2_PACKAGE_PYTHON_FUTURE bool "python-future" help Easy, clean, reliable Python 2/3 compatibility. http://python-future.org ================================================ FILE: package/python-future/python-future.hash ================================================ # md5, sha256 from https://pypi.python.org/pypi/future/json md5 e4579c836b9c025872efe230f6270349 future-0.18.2.tar.gz sha256 b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d future-0.18.2.tar.gz # Locally computed sha256 checksums sha256 916e561392d48471b9c23437f56e2652f320cb3b119ceaa162edf41016f746b9 LICENSE.txt ================================================ FILE: package/python-future/python-future.mk ================================================ ################################################################################ # # python-future # ################################################################################ PYTHON_FUTURE_VERSION = 0.18.2 PYTHON_FUTURE_SOURCE = future-$(PYTHON_FUTURE_VERSION).tar.gz PYTHON_FUTURE_SITE = https://files.pythonhosted.org/packages/45/0b/38b06fd9b92dc2b68d58b75f900e97884c45bedd2ff83203d933cf5851c9 PYTHON_FUTURE_SETUP_TYPE = setuptools PYTHON_FUTURE_LICENSE = MIT PYTHON_FUTURE_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-futures/Config.in ================================================ config BR2_PACKAGE_PYTHON_FUTURES bool "python-futures" depends on BR2_PACKAGE_PYTHON # not needed for python3 help Backport of the concurrent.futures package from Python 3.2. https://github.com/agronholm/pythonfutures ================================================ FILE: package/python-futures/python-futures.hash ================================================ # md5, sha256 from https://pypi.org/pypi/futures/json md5 b43a39ae1475e3fd6940f2b4f7214675 futures-3.3.0.tar.gz sha256 7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794 futures-3.3.0.tar.gz # Locally computed sha256 checksums sha256 a698bd5d441e4a16af6c992b8e80cbfa12755d72d910854fa1fb11d4deb0059a LICENSE ================================================ FILE: package/python-futures/python-futures.mk ================================================ ################################################################################ # # python-futures # ################################################################################ PYTHON_FUTURES_VERSION = 3.3.0 PYTHON_FUTURES_SOURCE = futures-$(PYTHON_FUTURES_VERSION).tar.gz PYTHON_FUTURES_SITE = https://files.pythonhosted.org/packages/47/04/5fc6c74ad114032cd2c544c575bffc17582295e9cd6a851d6026ab4b2c00 PYTHON_FUTURES_SETUP_TYPE = setuptools PYTHON_FUTURES_LICENSE = BSD-2-Clause PYTHON_FUTURES_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-git/Config.in ================================================ config BR2_PACKAGE_PYTHON_GIT bool "python-git" depends on BR2_PACKAGE_PYTHON3 depends on BR2_USE_MMU # git select BR2_PACKAGE_GIT # runtime select BR2_PACKAGE_PYTHON_GITDB2 # runtime select BR2_PACKAGE_PYTHON_TYPING_EXTENSIONS # runtime help GitPython is a python library used to interact with git repositories, high-level like git-porcelain, or low-level like git-plumbing. https://github.com/gitpython-developers/GitPython ================================================ FILE: package/python-git/python-git.hash ================================================ # locally computed hashes sha256 8282d0d1169a3a98546979bfae1524608670fadc4ca7636517aadd428e0cfbeb python-git-3.1.24.tar.gz sha256 fd657ffc2cef63d25c78cab7808d414dd03a282e63893491fd11c32f98be67fb LICENSE ================================================ FILE: package/python-git/python-git.mk ================================================ ################################################################################ # # python-git # ################################################################################ PYTHON_GIT_VERSION = 3.1.24 PYTHON_GIT_SITE = $(call github,gitpython-developers,GitPython,$(PYTHON_GIT_VERSION)) PYTHON_GIT_LICENSE = BSD-3-Clause PYTHON_GIT_LICENSE_FILES = LICENSE PYTHON_GIT_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-gitdb2/Config.in ================================================ config BR2_PACKAGE_PYTHON_GITDB2 bool "python-gitdb2" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SMMAP2 # runtime select BR2_PACKAGE_PYTHON3_ZLIB help GitDB allows you to access bare git repositories for reading and writing. It aims at allowing full access to loose objects as well as packs with performance and scalability in mind. It operates exclusively on streams, allowing to handle large objects with a small memory footprint. https://github.com/gitpython-developers/gitdb ================================================ FILE: package/python-gitdb2/python-gitdb2.hash ================================================ # md5, sha256 from https://pypi.org/pypi/gitdb/json md5 3f52187435ab0b6e64a15782ffaf29ab gitdb-4.0.7.tar.gz sha256 96bf5c08b157a666fec41129e6d327235284cca4c81e92109260f353ba138005 gitdb-4.0.7.tar.gz # Locally computed sha256 checksums sha256 efd29f596a08e8857e68e7694a50bcda72839792da7c3f041bcbff5f18009239 LICENSE ================================================ FILE: package/python-gitdb2/python-gitdb2.mk ================================================ ################################################################################ # # python-gitdb2 # ################################################################################ PYTHON_GITDB2_VERSION = 4.0.7 PYTHON_GITDB2_SOURCE = gitdb-$(PYTHON_GITDB2_VERSION).tar.gz PYTHON_GITDB2_SITE = https://files.pythonhosted.org/packages/34/fe/9265459642ab6e29afe734479f94385870e8702e7f892270ed6e52dd15bf PYTHON_GITDB2_SETUP_TYPE = setuptools PYTHON_GITDB2_LICENSE = BSD-3-Clause PYTHON_GITDB2_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-gobject/Config.in ================================================ config BR2_PACKAGE_PYTHON_GOBJECT bool "python-gobject" depends on BR2_USE_MMU # libglib2, gobject-introspection depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS # gobject-introspection depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # gobject-introspection depends on BR2_HOST_GCC_AT_LEAST_8 # gobject-introspection -> host-qemu depends on BR2_TOOLCHAIN_USES_GLIBC # gobject-introspection depends on BR2_PACKAGE_PYTHON3 # gobject-introspection select BR2_PACKAGE_GOBJECT_INTROSPECTION select BR2_PACKAGE_LIBGLIB2 help Python bindings for the GLib/GObject library https://wiki.gnome.org/action/show/Projects/PyGObject comment "python-gobject needs a glibc toolchain, gcc >= 4.9, host gcc >= 8" depends on BR2_USE_MMU depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_8 ================================================ FILE: package/python-gobject/python-gobject.hash ================================================ # from http://ftp.gnome.org/pub/GNOME/sources/pygobject/3.42/pygobject-3.42.0.sha256sum sha256 9b12616e32cfc792f9dc841d9c472a41a35b85ba67d3a6eb427e307a6fe4367b pygobject-3.42.0.tar.xz sha256 32434afcc8666ba060e111d715bfdb6c2d5dd8a35fa4d3ab8ad67d8f850d2f2b COPYING ================================================ FILE: package/python-gobject/python-gobject.mk ================================================ ################################################################################ # # python-gobject # ################################################################################ PYTHON_GOBJECT_VERSION_MAJOR = 3.42 PYTHON_GOBJECT_VERSION = $(PYTHON_GOBJECT_VERSION_MAJOR).0 PYTHON_GOBJECT_SOURCE = pygobject-$(PYTHON_GOBJECT_VERSION).tar.xz PYTHON_GOBJECT_SITE = https://ftp.gnome.org/pub/gnome/sources/pygobject/$(PYTHON_GOBJECT_VERSION_MAJOR) PYTHON_GOBJECT_LICENSE = LGPL-2.1+ PYTHON_GOBJECT_LICENSE_FILES = COPYING PYTHON_GOBJECT_INSTALL_STAGING = YES PYTHON_GOBJECT_DEPENDENCIES = \ gobject-introspection \ host-pkgconf \ libglib2 \ python3 PYTHON_GOBJECT_CONF_OPTS += \ -Dpycairo=disabled \ -Dtests=false # A sysconfigdata_name must be manually specified or the resulting .so # will have a x86_64 prefix, which causes "import gi" to fail. # A pythonpath must be specified or the host python path will be used resulting # in a "not a valid python" error. PYTHON_GOBJECT_CONF_ENV += \ _PYTHON_SYSCONFIGDATA_NAME=$(PKG_PYTHON_SYSCONFIGDATA_NAME) \ PYTHONPATH=$(PYTHON3_PATH) $(eval $(meson-package)) ================================================ FILE: package/python-gpiozero/Config.in ================================================ config BR2_PACKAGE_PYTHON_GPIOZERO bool "python-gpiozero" depends on BR2_arm depends on BR2_PACKAGE_PYTHON3 # python-colorzero select BR2_PACKAGE_PYTHON_COLORZERO # runtime select BR2_PACKAGE_PYTHON_RPI_GPIO # runtime select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime help A simple interface to GPIO devices with Raspberry Pi. https://github.com/gpiozero/gpiozero ================================================ FILE: package/python-gpiozero/python-gpiozero.hash ================================================ # Locally computed sha256 7e6da923774437e24edc0c056e486415bace8c4ba4123c22ac4214147854ea6d python-gpiozero-1.6.2.tar.gz # Locally computed sha256 b6fdd587f3dc3a9b8cc5adae00918e3ffa909b1092bd4decf7e8b1b08fa5d0fb LICENSE.rst ================================================ FILE: package/python-gpiozero/python-gpiozero.mk ================================================ ################################################################################ # # python-gpiozero # ################################################################################ PYTHON_GPIOZERO_VERSION = 1.6.2 PYTHON_GPIOZERO_SITE = $(call github,gpiozero,gpiozero,v$(PYTHON_GPIOZERO_VERSION)) PYTHON_GPIOZERO_LICENSE = BSD-3-Clause PYTHON_GPIOZERO_LICENSE_FILES = LICENSE.rst PYTHON_GPIOZERO_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-greenlet/Config.in ================================================ config BR2_PACKAGE_PYTHON_GREENLET_ARCH_SUPPORTS bool default y if BR2_arm || BR2_armeb default y if BR2_aarch64 default y if BR2_csky default y if BR2_m68k default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le default y if BR2_riscv default y if BR2_sparc || BR2_sparc64 default y if BR2_i386 || BR2_x86_64 config BR2_PACKAGE_PYTHON_GREENLET bool "python-greenlet" depends on BR2_PACKAGE_PYTHON_GREENLET_ARCH_SUPPORTS help Lightweight in-process concurrent programming. https://github.com/python-greenlet/greenlet ================================================ FILE: package/python-greenlet/python-greenlet.hash ================================================ # md5, sha256 from https://pypi.org/pypi/greenlet/json md5 f424fbd9afeed575dd2ba5f0ac66e30b greenlet-1.1.2.tar.gz sha256 e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a greenlet-1.1.2.tar.gz # Locally computed sha256 checksums sha256 769831d6e5dfaf2c20802faccff1fafb4c2025dd8f6253dfa47fcad59d4d0979 LICENSE sha256 e5ff3c23c110e494cd7d736c10fd96d462457bafeca310840db6527298c7d46b LICENSE.PSF ================================================ FILE: package/python-greenlet/python-greenlet.mk ================================================ ################################################################################ # # python-greenlet # ################################################################################ PYTHON_GREENLET_VERSION = 1.1.2 PYTHON_GREENLET_SOURCE = greenlet-$(PYTHON_GREENLET_VERSION).tar.gz PYTHON_GREENLET_SITE = https://files.pythonhosted.org/packages/0c/10/754e21b5bea89d0e73f99d60c83754df7cc64db74f47d98ab187669ce341 PYTHON_GREENLET_SETUP_TYPE = setuptools PYTHON_GREENLET_LICENSE = MIT, PSF-2.0 PYTHON_GREENLET_LICENSE_FILES = LICENSE LICENSE.PSF $(eval $(python-package)) ================================================ FILE: package/python-gunicorn/Config.in ================================================ config BR2_PACKAGE_PYTHON_GUNICORN bool "python-gunicorn" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON3_SSL # runtime help Gunicorn 'Green Unicorn' is a Python WSGI HTTP Server for UNIX. It's a pre-fork worker model ported from Ruby's Unicorn project. The Gunicorn server is broadly compatible with various web frameworks, simply implemented, light on server resource usage, and fairly speedy. http://gunicorn.org/ ================================================ FILE: package/python-gunicorn/python-gunicorn.hash ================================================ # md5, sha256 from https://pypi.python.org/pypi/gunicorn/json md5 db8a7c5c2064000af70286534803bf1d gunicorn-20.1.0.tar.gz sha256 e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8 gunicorn-20.1.0.tar.gz # Locally computed sha256 sha256 789fe11b92e1cabfbcf744b5fcc392c9bd5c6798603a4e89f925b6337984d1df LICENSE ================================================ FILE: package/python-gunicorn/python-gunicorn.mk ================================================ ################################################################################ # # python-gunicorn # ################################################################################ PYTHON_GUNICORN_VERSION = 20.1.0 PYTHON_GUNICORN_SOURCE = gunicorn-$(PYTHON_GUNICORN_VERSION).tar.gz PYTHON_GUNICORN_SITE = https://files.pythonhosted.org/packages/28/5b/0d1f0296485a6af03366604142ea8f19f0833894db3512a40ed07b2a56dd PYTHON_GUNICORN_SETUP_TYPE = setuptools PYTHON_GUNICORN_LICENSE = MIT PYTHON_GUNICORN_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-h2/Config.in ================================================ config BR2_PACKAGE_PYTHON_H2 bool "python-h2" select BR2_PACKAGE_PYTHON_HYPERFRAME # runtime select BR2_PACKAGE_PYTHON_HPACK # runtime help HTTP/2 State-Machine based protocol implementation. http://hyper.rtfd.org ================================================ FILE: package/python-h2/python-h2.hash ================================================ # md5, sha256 from https://pypi.org/pypi/h2/json md5 197a99c09f344a0dd987fab9801dc8d0 h2-3.2.0.tar.gz sha256 875f41ebd6f2c44781259005b157faed1a5031df3ae5aa7bcb4628a6c0782f14 h2-3.2.0.tar.gz # Locally computed sha256 checksums sha256 663f9253e13519b82ab4a6b1caab6bed05aada70517f28cd0254be8a9fa19ed6 LICENSE ================================================ FILE: package/python-h2/python-h2.mk ================================================ ################################################################################ # # python-h2 # ################################################################################ PYTHON_H2_VERSION = 3.2.0 PYTHON_H2_SOURCE = h2-$(PYTHON_H2_VERSION).tar.gz PYTHON_H2_SITE = https://files.pythonhosted.org/packages/08/0a/033df0fc05fe94f72517ccd393dd9ff99b1773fd198307638e6d3568a518 PYTHON_H2_SETUP_TYPE = setuptools PYTHON_H2_LICENSE = MIT PYTHON_H2_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-hiredis/0001-setup.py-fix-build-with-gcc-4.8.patch ================================================ From 204898e28c7650089bf664eea8adfc16a22ba4f4 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 6 Apr 2021 10:37:49 +0200 Subject: [PATCH] setup.py: fix build with gcc 4.8 Fix the following build failure on gcc 4.8 which is raised since version 2.0.0 and https://github.com/redis/hiredis-py/commit/9084152f624e8e593b4e86ddf8bd13329fdfc043: vendor/hiredis/read.c: In function 'redisReaderFree': vendor/hiredis/read.c:646:9: error: 'for' loop initial declarations are only allowed in C99 mode for (int i = 0; i < r->tasks; i++) { ^ vendor/hiredis/read.c:646:9: note: use option -std=c99 or -std=gnu99 to compile your code This build failure is raised because hiredis source code is built without C99: https://github.com/redis/hiredis/commit/13a35bdb64615e381c5e1151cdd4e78bba71a6db Fixes: - http://autobuild.buildroot.org/results/04cbcddf6d83ebad8c98400754f9445375e9e489 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/redis/hiredis-py/pull/110] --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index d83153b..1f623c9 100755 --- a/setup.py +++ b/setup.py @@ -13,6 +13,7 @@ def version(): ext = Extension("hiredis.hiredis", sources=sorted(glob.glob("src/*.c") + ["vendor/hiredis/%s.c" % src for src in ("alloc", "read", "sds")]), + extra_compile_args=["-std=c99"], include_dirs=["vendor"]) setup( -- 2.30.2 ================================================ FILE: package/python-hiredis/Config.in ================================================ config BR2_PACKAGE_PYTHON_HIREDIS bool "python-hiredis" depends on BR2_PACKAGE_PYTHON3 help Python wrapper for hiredis. https://github.com/redis/hiredis-py ================================================ FILE: package/python-hiredis/python-hiredis.hash ================================================ # md5, sha256 from https://pypi.org/pypi/hiredis/json md5 0ab76a8b29deb737c9bfc7f631969e38 hiredis-2.0.0.tar.gz sha256 81d6d8e39695f2c37954d1011c0480ef7cf444d4e3ae24bc5e89ee5de360139a hiredis-2.0.0.tar.gz # Locally computed sha256 checksums sha256 70edfa6d3e11f9d7497c2c2f298d06f33b11d10f37f76605102c5ab3b1f28262 COPYING sha256 dca05ce8fc87a8261783b4aed0deef8becc9350b6aa770bc714d0c1833b896eb vendor/hiredis/COPYING ================================================ FILE: package/python-hiredis/python-hiredis.mk ================================================ ################################################################################ # # python-hiredis # ################################################################################ PYTHON_HIREDIS_VERSION = 2.0.0 PYTHON_HIREDIS_SOURCE = hiredis-$(PYTHON_HIREDIS_VERSION).tar.gz PYTHON_HIREDIS_SITE = https://files.pythonhosted.org/packages/0c/39/eae11344d69ba435ec13d6bcc1a9eea3d2278324506fcd0e52d1ed8958c8 PYTHON_HIREDIS_SETUP_TYPE = setuptools PYTHON_HIREDIS_LICENSE = BSD-3-Clause PYTHON_HIREDIS_LICENSE_FILES = COPYING vendor/hiredis/COPYING $(eval $(python-package)) ================================================ FILE: package/python-hpack/0001-Convert-HISTORY.rst-from-UTF-8-format-to-ASCII.patch ================================================ From 3d195f4f599f37c89419f1db1302f94acb38c264 Mon Sep 17 00:00:00 2001 From: Yegor Yefremov Date: Tue, 1 Aug 2017 10:15:33 +0200 Subject: [PATCH] Convert HISTORY.rst from UTF-8 format to ASCII MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit UTF-8 formatted file breaks installations on some systems: Traceback (most recent call last): File "setup.py", line 34, in long_description=open('README.rst').read() + '\n\n' + open('HISTORY.rst').read(), File "/home/peko/autobuild/instance-1/output/target/usr/lib/python3.6/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 1125: ordinal not in range(128) To fix this error just replace '§' with 'S' meaning 'Section'. Signed-off-by: Yegor Yefremov --- HISTORY.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HISTORY.rst b/HISTORY.rst index 37b2d9c..b9310f5 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -27,7 +27,7 @@ Release History - HPACK now tolerates receiving multiple header table size changes in sequence, rather than only one. - HPACK now forbids header table size changes anywhere but first in a header - block, as required by RFC 7541 § 4.2. + block, as required by RFC 7541 S 4.2. - Other miscellaneous performance improvements. 2.3.0 (2016-08-04) -- 2.11.0 ================================================ FILE: package/python-hpack/Config.in ================================================ config BR2_PACKAGE_PYTHON_HPACK bool "python-hpack" help Pure-Python HPACK header compression. http://hyper.rtfd.org ================================================ FILE: package/python-hpack/python-hpack.hash ================================================ # md5 from https://pypi.python.org/pypi/hpack/json md5 556b0ae66180f54c2ce8029a0952088b hpack-3.0.0.tar.gz # Locally computed sha256 8eec9c1f4bfae3408a3f30500261f7e6a65912dc138526ea054f9ad98892e9d2 hpack-3.0.0.tar.gz sha256 763a9342a04df62046c9dc748a5287934eb0a5331c6863b3ca0aee20e18cb4ed LICENSE ================================================ FILE: package/python-hpack/python-hpack.mk ================================================ ################################################################################ # # python-hpack # ################################################################################ PYTHON_HPACK_VERSION = 3.0.0 PYTHON_HPACK_SOURCE = hpack-$(PYTHON_HPACK_VERSION).tar.gz PYTHON_HPACK_SITE = https://pypi.python.org/packages/44/f1/b4440e46e265a29c0cb7b09b6daec6edf93c79eae713cfed93fbbf8716c5 PYTHON_HPACK_SETUP_TYPE = setuptools PYTHON_HPACK_LICENSE = MIT PYTHON_HPACK_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-html5lib/Config.in ================================================ config BR2_PACKAGE_PYTHON_HTML5LIB bool "python-html5lib" select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_WEBENCODINGS # runtime help HTML parser based on the WHATWG HTML specification. https://github.com/html5lib/html5lib-python ================================================ FILE: package/python-html5lib/python-html5lib.hash ================================================ # md5, sha256 from https://pypi.org/pypi/html5lib/json md5 6748742e2ec4cb99287a6bc82bcfe2b0 html5lib-1.1.tar.gz sha256 b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f html5lib-1.1.tar.gz # Locally computed sha256 checksums sha256 16a39991619e92f18680932da2a9199fdf7d95df3ecaedc52ea06218aabafd6f LICENSE ================================================ FILE: package/python-html5lib/python-html5lib.mk ================================================ ################################################################################ # # python-html5lib # ################################################################################ PYTHON_HTML5LIB_VERSION = 1.1 PYTHON_HTML5LIB_SOURCE = html5lib-$(PYTHON_HTML5LIB_VERSION).tar.gz PYTHON_HTML5LIB_SITE = https://files.pythonhosted.org/packages/ac/b6/b55c3f49042f1df3dcd422b7f224f939892ee94f22abcf503a9b7339eaf2 PYTHON_HTML5LIB_LICENSE = MIT PYTHON_HTML5LIB_LICENSE_FILES = LICENSE PYTHON_HTML5LIB_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-httplib2/Config.in ================================================ config BR2_PACKAGE_PYTHON_HTTPLIB2 bool "python-httplib2" select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON_SSL if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON3_SSL if BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_PYPARSING # runtime help httplib2 is a comprehensive HTTP client library, httplib2.py supports many features left out of other HTTP libraries. https://pypi.python.org/pypi/httplib2 ================================================ FILE: package/python-httplib2/python-httplib2.hash ================================================ # md5, sha256 from https://pypi.org/pypi/httplib2/json md5 de7f5e3a4adb3105889867327bdd39dc httplib2-0.19.1.tar.gz sha256 0b12617eeca7433d4c396a100eaecfa4b08ee99aa881e6df6e257a7aad5d533d httplib2-0.19.1.tar.gz # Locally computed sha256 checksums sha256 589eec38f72df2be203711d3b8cbece9b908c5e7ff00bc3cab7f63bae9e366b4 LICENSE ================================================ FILE: package/python-httplib2/python-httplib2.mk ================================================ ################################################################################ # # python-httplib2 # ################################################################################ PYTHON_HTTPLIB2_VERSION = 0.19.1 PYTHON_HTTPLIB2_SOURCE = httplib2-$(PYTHON_HTTPLIB2_VERSION).tar.gz PYTHON_HTTPLIB2_SITE = https://files.pythonhosted.org/packages/ed/cd/533a1e9e04671bcee5d2854b4f651a3fab9586d698de769d93b05ee2bff1 PYTHON_HTTPLIB2_SETUP_TYPE = setuptools PYTHON_HTTPLIB2_LICENSE = MIT PYTHON_HTTPLIB2_LICENSE_FILES = LICENSE PYTHON_HTTPLIB2_CPE_ID_VENDOR = httplib2_project PYTHON_HTTPLIB2_CPE_ID_PRODUCT = httplib2 $(eval $(python-package)) ================================================ FILE: package/python-huepy/0001-fix-import-with-python3.patch ================================================ --- a/huepy/__init__.py +++ b/huepy/__init__.py @@ -1,4 +1,4 @@ -from hue import COMMANDS +from .hue import COMMANDS __all__ = list(COMMANDS.keys()) __version__ = '1.0.1' ================================================ FILE: package/python-huepy/Config.in ================================================ config BR2_PACKAGE_PYTHON_HUEPY bool "python-huepy" help Hue will help you to print awesomely in terminals. https://github.com/s0md3v/hue ================================================ FILE: package/python-huepy/python-huepy.hash ================================================ # Locally computer sha256 checksums md5 da6514d9d61fb75ac9470f6863ce1aca python-huepy-a9851d5aea10d2299cc62b3f6dce26ac4ef2ea3e.tar.gz sha256 63147cef5ecae5c1ab38000be91def351710e6bef2c5f67b5303418becf6c0f2 python-huepy-a9851d5aea10d2299cc62b3f6dce26ac4ef2ea3e.tar.gz sha256 8b1ba204bb69a0ade2bfcf65ef294a920f6bb361b317dba43c7ef29d96332b9b LICENSE ================================================ FILE: package/python-huepy/python-huepy.mk ================================================ ################################################################################ # # python-huepy # ################################################################################ PYTHON_HUEPY_VERSION = a9851d5aea10d2299cc62b3f6dce26ac4ef2ea3e PYTHON_HUEPY_SITE = $(call github,s0md3v,hue,$(PYTHON_HUEPY_VERSION)) PYTHON_HUEPY_LICENSE = GPL-3.0 PYTHON_HUEPY_LICENSE_FILES = LICENSE PYTHON_HUEPY_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-humanize/Config.in ================================================ config BR2_PACKAGE_PYTHON_HUMANIZE bool "python-humanize" depends on BR2_PACKAGE_PYTHON3 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 ================================================ FILE: package/python-humanize/python-humanize.hash ================================================ # md5, sha256 from https://pypi.org/pypi/humanize/json md5 04f5b334283e1f7f0dfeccf7d5a4b880 humanize-3.11.0.tar.gz sha256 4160cdc63fcd0daac27d2e1e218a31bb396fc3fe5712d153675d89432a03778f humanize-3.11.0.tar.gz # Locally computed sha256 checksums sha256 8ba6c18112a431400ad3c743f70670079b302545d98884fc2f28a91c383a0380 LICENCE ================================================ FILE: package/python-humanize/python-humanize.mk ================================================ ################################################################################ # # python-humanize # ################################################################################ PYTHON_HUMANIZE_VERSION = 3.11.0 PYTHON_HUMANIZE_SOURCE = humanize-$(PYTHON_HUMANIZE_VERSION).tar.gz PYTHON_HUMANIZE_SITE = https://files.pythonhosted.org/packages/a6/d0/e06993724937f2aab3e7085d137d453968aaac0f74661ef9c90528a79d61 PYTHON_HUMANIZE_SETUP_TYPE = setuptools PYTHON_HUMANIZE_LICENSE = MIT PYTHON_HUMANIZE_LICENSE_FILES = LICENCE $(eval $(python-package)) ================================================ FILE: package/python-hyperframe/Config.in ================================================ config BR2_PACKAGE_PYTHON_HYPERFRAME bool "python-hyperframe" help HTTP/2 framing layer for Python. http://hyper.rtfd.org ================================================ FILE: package/python-hyperframe/python-hyperframe.hash ================================================ # md5, sha256 from https://pypi.org/pypi/hyperframe/json md5 6919183242feb26d8bce3b4cba81defd hyperframe-5.2.0.tar.gz sha256 a9f5c17f2cc3c719b917c4f33ed1c61bd1f8dfac4b1bd23b7c80b3400971b41f hyperframe-5.2.0.tar.gz # Locally computed sha256 checksums sha256 763a9342a04df62046c9dc748a5287934eb0a5331c6863b3ca0aee20e18cb4ed LICENSE ================================================ FILE: package/python-hyperframe/python-hyperframe.mk ================================================ ################################################################################ # # python-hyperframe # ################################################################################ PYTHON_HYPERFRAME_VERSION = 5.2.0 PYTHON_HYPERFRAME_SOURCE = hyperframe-$(PYTHON_HYPERFRAME_VERSION).tar.gz PYTHON_HYPERFRAME_SITE = https://files.pythonhosted.org/packages/e6/7f/9a4834af1010dc1d570d5f394dfd9323a7d7ada7d25586bd299fc4cb0356 PYTHON_HYPERFRAME_SETUP_TYPE = setuptools PYTHON_HYPERFRAME_LICENSE = MIT PYTHON_HYPERFRAME_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-hyperlink/Config.in ================================================ config BR2_PACKAGE_PYTHON_HYPERLINK bool "python-hyperlink" depends on BR2_PACKAGE_PYTHON3 # python-idna select BR2_PACKAGE_PYTHON_IDNA # runtime help A featureful, correct URL for Python. https://github.com/python-hyper/hyperlink ================================================ FILE: package/python-hyperlink/python-hyperlink.hash ================================================ # md5, sha256 from https://pypi.org/pypi/hyperlink/json md5 6285ac13e7d6be4157698ad7960ed490 hyperlink-21.0.0.tar.gz sha256 427af957daa58bc909471c6c40f74c5450fa123dd093fc53efd2e91d2705a56b hyperlink-21.0.0.tar.gz # Locally computed sha256 checksums sha256 7468ded55310f64fbf085b8e892df81d1bcc49263bf535d3c2c58b014cfae214 LICENSE ================================================ FILE: package/python-hyperlink/python-hyperlink.mk ================================================ ################################################################################ # # python-hyperlink # ################################################################################ PYTHON_HYPERLINK_VERSION = 21.0.0 PYTHON_HYPERLINK_SOURCE = hyperlink-$(PYTHON_HYPERLINK_VERSION).tar.gz PYTHON_HYPERLINK_SITE = https://files.pythonhosted.org/packages/3a/51/1947bd81d75af87e3bb9e34593a4cf118115a8feb451ce7a69044ef1412e PYTHON_HYPERLINK_SETUP_TYPE = setuptools PYTHON_HYPERLINK_LICENSE = MIT PYTHON_HYPERLINK_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-ibmiotf/Config.in ================================================ config BR2_PACKAGE_PYTHON_IBMIOTF bool "python-ibmiotf" depends on BR2_PACKAGE_PYTHON3 # python-requests -> python-idna select BR2_PACKAGE_PYTHON_ISO8601 # runtime select BR2_PACKAGE_PYTHON_PAHO_MQTT # runtime select BR2_PACKAGE_PYTHON_PYTZ # runtime select BR2_PACKAGE_PYTHON_REQUESTS # runtime select BR2_PACKAGE_PYTHON_REQUESTS_TOOLBELT # runtime select BR2_PACKAGE_PYTHON3_SSL # runtime help Python Client for IBM Watson IoT Platform. https://github.com/ibm-watson-iot/iot-python ================================================ FILE: package/python-ibmiotf/python-ibmiotf.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ibmiotf/json md5 a103427c15b2bc96d72de5e58975638c ibmiotf-0.4.0.tar.gz sha256 753a29858d48ebd89aff8b73c207028814714d8a004a3c19b436c9bbeaa65ce6 ibmiotf-0.4.0.tar.gz # Locally computed sha256 checksums sha256 2c153c48f67e56031036fc28d12f76238a5151494bdfc24b6b81ec734c387a2d LICENSE ================================================ FILE: package/python-ibmiotf/python-ibmiotf.mk ================================================ ################################################################################ # # python-ibmiotf # ################################################################################ PYTHON_IBMIOTF_VERSION = 0.4.0 PYTHON_IBMIOTF_SOURCE = ibmiotf-$(PYTHON_IBMIOTF_VERSION).tar.gz PYTHON_IBMIOTF_SITE = https://files.pythonhosted.org/packages/78/05/029ca6f78b788a3c55157fd11bb63922d002d75df982ffb8243f450a750e PYTHON_IBMIOTF_SETUP_TYPE = setuptools PYTHON_IBMIOTF_LICENSE = EPL-1.0 PYTHON_IBMIOTF_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-id3/Config.in ================================================ config BR2_PACKAGE_PYTHON_ID3 bool "python-id3" depends on BR2_PACKAGE_PYTHON help This module allows one to read and manipulate so-called ID3 informational tags on MP3 files through an object-oriented Python interface. http://id3-py.sourceforge.net/ ================================================ FILE: package/python-id3/python-id3.hash ================================================ # Locally computed: sha256 ba612342b59a49cbf9a7eb23a646667757ffda96dc23b67245fc6cd8d90c2022 id3-py_1.2.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/python-id3/python-id3.mk ================================================ ################################################################################ # # python-id3 # ################################################################################ PYTHON_ID3_VERSION = 1.2 PYTHON_ID3_SOURCE = id3-py_$(PYTHON_ID3_VERSION).tar.gz PYTHON_ID3_SITE = http://downloads.sourceforge.net/project/id3-py/id3-py/$(PYTHON_ID3_VERSION) PYTHON_ID3_SETUP_TYPE = distutils PYTHON_ID3_LICENSE = GPL-2.0+ PYTHON_ID3_LICENSE_FILES = COPYING $(eval $(python-package)) ================================================ FILE: package/python-idna/Config.in ================================================ config BR2_PACKAGE_PYTHON_IDNA bool "python-idna" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON3_UNICODEDATA help A library to support the Internationalised Domain Names in Applications (IDNA) protocol as specified in RFC 5891. This version of the protocol is often referred to as 'IDNA2008' and can produce different results from the earlier standard from 2003. https://github.com/kjd/idna ================================================ FILE: package/python-idna/python-idna.hash ================================================ # md5, sha256 from https://pypi.org/pypi/idna/json md5 08ea8e2ce09e522424e872409c221138 idna-3.2.tar.gz sha256 467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3 idna-3.2.tar.gz # Locally computed sha256 checksums sha256 a2d6e4d940bd24dbe7b9645cde19a9792cc51db7ae0d5acd301ac860caa3e836 LICENSE.md ================================================ FILE: package/python-idna/python-idna.mk ================================================ ################################################################################ # # python-idna # ################################################################################ PYTHON_IDNA_VERSION = 3.2 PYTHON_IDNA_SOURCE = idna-$(PYTHON_IDNA_VERSION).tar.gz PYTHON_IDNA_SITE = https://files.pythonhosted.org/packages/cb/38/4c4d00ddfa48abe616d7e572e02a04273603db446975ab46bbcd36552005 PYTHON_IDNA_LICENSE = BSD-3-Clause PYTHON_IDNA_LICENSE_FILES = LICENSE.md PYTHON_IDNA_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-idna-ssl/Config.in ================================================ config BR2_PACKAGE_PYTHON_IDNA_SSL bool "python-idna-ssl" help Patch ssl.match_hostname for Unicode(idna) domains support. https://github.com/aio-libs/idna-ssl ================================================ FILE: package/python-idna-ssl/python-idna-ssl.hash ================================================ sha256 a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c idna-ssl-1.1.0.tar.gz ================================================ FILE: package/python-idna-ssl/python-idna-ssl.mk ================================================ ################################################################################ # # python-idna-ssl # ################################################################################ PYTHON_IDNA_SSL_VERSION = 1.1.0 PYTHON_IDNA_SSL_SOURCE = idna-ssl-$(PYTHON_IDNA_SSL_VERSION).tar.gz PYTHON_IDNA_SSL_SITE = https://files.pythonhosted.org/packages/46/03/07c4894aae38b0de52b52586b24bf189bb83e4ddabfe2e2c8f2419eec6f4 PYTHON_IDNA_SSL_LICENSE = BSD-3-Clause PYTHON_IDNA_SSL_LICENSE_FILES = LICENSE.rst PYTHON_IDNA_SSL_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-ifaddr/Config.in ================================================ config BR2_PACKAGE_PYTHON_IFADDR bool "python-ifaddr" help Enumerates all IP addresses on all network adapters of the system. https://github.com/pydron/ifaddr ================================================ FILE: package/python-ifaddr/python-ifaddr.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ifaddr/json md5 97c4eb7505643b5f1fe17733cb42abd9 ifaddr-0.1.7.tar.gz sha256 1f9e8a6ca6f16db5a37d3356f07b6e52344f6f9f7e806d618537731669eb1a94 ifaddr-0.1.7.tar.gz # Locally computed sha256 checksums sha256 8700856576ae2bc80c63bc970250510d9213fb02fed006d5f22742c9ddde24d7 LICENSE.txt ================================================ FILE: package/python-ifaddr/python-ifaddr.mk ================================================ ################################################################################ # # python-ifaddr # ################################################################################ PYTHON_IFADDR_VERSION = 0.1.7 PYTHON_IFADDR_SOURCE = ifaddr-$(PYTHON_IFADDR_VERSION).tar.gz PYTHON_IFADDR_SITE = https://files.pythonhosted.org/packages/3d/fc/4ce147e3997cd0ea470ad27112087545cf83bf85015ddb3054673cb471bb PYTHON_IFADDR_SETUP_TYPE = setuptools PYTHON_IFADDR_LICENSE = MIT PYTHON_IFADDR_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-incremental/Config.in ================================================ config BR2_PACKAGE_PYTHON_INCREMENTAL bool "python-incremental" help A library for versioning your Python projects. https://github.com/twisted/incremental ================================================ FILE: package/python-incremental/python-incremental.hash ================================================ # md5, sha256 from https://pypi.org/pypi/incremental/json md5 9f7ad12e0c05a12cee52a7350976c4e3 incremental-21.3.0.tar.gz sha256 02f5de5aff48f6b9f665d99d48bfc7ec03b6e3943210de7cfc88856d755d6f57 incremental-21.3.0.tar.gz # Locally computed sha256 checksums sha256 d043bc8899b4695de1f4511d8f507b927e11723b981ce600fa3ef7b73954afa5 LICENSE ================================================ FILE: package/python-incremental/python-incremental.mk ================================================ ################################################################################ # # python-incremental # ################################################################################ PYTHON_INCREMENTAL_VERSION = 21.3.0 PYTHON_INCREMENTAL_SOURCE = incremental-$(PYTHON_INCREMENTAL_VERSION).tar.gz PYTHON_INCREMENTAL_SITE = https://files.pythonhosted.org/packages/4f/c5/430765c697afc217c8491785de321a21fa4d983dda14bcd82feb965b0593 PYTHON_INCREMENTAL_SETUP_TYPE = setuptools PYTHON_INCREMENTAL_LICENSE = MIT PYTHON_INCREMENTAL_LICENSE_FILES = LICENSE $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-inflection/Config.in ================================================ config BR2_PACKAGE_PYTHON_INFLECTION bool "python-inflection" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON3_UNICODEDATA help A string transformation library that singularizes and pluralizes English words, and transforms strings from CamelCase to underscored string. Inflection is a port of Ruby on Rails' inflector to Python https://github.com/jpvanhal/inflection ================================================ FILE: package/python-inflection/python-inflection.hash ================================================ # md5, sha256 from https://pypi.org/pypi/inflection/json md5 c3287d4f0e3bdf625a52d655cc514403 inflection-0.5.1.tar.gz sha256 1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417 inflection-0.5.1.tar.gz # Locally computed sha256 checksums sha256 9e9f9b4b2e7543ad1486f1328bf9ec50e5a5e2bb9caceb59652496dd61e64133 LICENSE ================================================ FILE: package/python-inflection/python-inflection.mk ================================================ ################################################################################ # # python-inflection # ################################################################################ PYTHON_INFLECTION_VERSION = 0.5.1 PYTHON_INFLECTION_SOURCE = inflection-$(PYTHON_INFLECTION_VERSION).tar.gz PYTHON_INFLECTION_SITE = https://files.pythonhosted.org/packages/e1/7e/691d061b7329bc8d54edbf0ec22fbfb2afe61facb681f9aaa9bff7a27d04 PYTHON_INFLECTION_SETUP_TYPE = setuptools PYTHON_INFLECTION_LICENSE = MIT PYTHON_INFLECTION_LICENSE_FILES = LICENSE HOST_PYTHON_INFLECTION_NEEDS_HOST_PYTHON = python3 $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-influxdb/Config.in ================================================ config BR2_PACKAGE_PYTHON_INFLUXDB bool "python-influxdb" depends on BR2_PACKAGE_PYTHON3 # python-requests -> python-idna select BR2_PACKAGE_PYTHON_DATEUTIL # runtime select BR2_PACKAGE_PYTHON_MSGPACK # runtime select BR2_PACKAGE_PYTHON_PYTZ # runtime select BR2_PACKAGE_PYTHON_REQUESTS # runtime select BR2_PACKAGE_PYTHON_SIX # runtime help InfluxDB client. https://github.com/influxdb/influxdb-python ================================================ FILE: package/python-influxdb/python-influxdb.hash ================================================ # md5, sha256 from https://pypi.org/pypi/influxdb/json md5 d528c8ccd8ab40bc608ad1e507e7788a influxdb-5.3.0.tar.gz sha256 9bcaafd57ac152b9824ab12ed19f204206ef5df8af68404770554c5b55b475f6 influxdb-5.3.0.tar.gz # Locally computed sha256 checksums sha256 b654917e2c25a69d2bd56e72dddbc6eb29bf7e40384d7c46bb291d5c5185213b LICENSE ================================================ FILE: package/python-influxdb/python-influxdb.mk ================================================ ################################################################################ # # python-influxdb # ################################################################################ PYTHON_INFLUXDB_VERSION = 5.3.0 PYTHON_INFLUXDB_SOURCE = influxdb-$(PYTHON_INFLUXDB_VERSION).tar.gz PYTHON_INFLUXDB_SITE = https://files.pythonhosted.org/packages/be/8d/85ec8f11299a6dfc115244db71fd8f13e9a69f5e9eb77dc3392f4f959e9a PYTHON_INFLUXDB_SETUP_TYPE = setuptools PYTHON_INFLUXDB_LICENSE = MIT PYTHON_INFLUXDB_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-iniconfig/Config.in ================================================ config BR2_PACKAGE_PYTHON_INICONFIG bool "python-iniconfig" help iniconfig: brain-dead simple config-ini parsing. http://github.com/RonnyPfannschmidt/iniconfig ================================================ FILE: package/python-iniconfig/python-iniconfig.hash ================================================ # md5, sha256 from https://pypi.org/pypi/iniconfig/json md5 0b7f3be87481211c183eae095bcea6f1 iniconfig-1.1.1.tar.gz sha256 bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32 iniconfig-1.1.1.tar.gz # Locally computed sha256 checksums sha256 2af680c39ef493fb82830356d1d3df1acb5a06033cba2dec7a19e21caa77a866 LICENSE ================================================ FILE: package/python-iniconfig/python-iniconfig.mk ================================================ ################################################################################ # # python-iniconfig # ################################################################################ PYTHON_INICONFIG_VERSION = 1.1.1 PYTHON_INICONFIG_SOURCE = iniconfig-$(PYTHON_INICONFIG_VERSION).tar.gz PYTHON_INICONFIG_SITE = https://files.pythonhosted.org/packages/23/a2/97899f6bd0e873fed3a7e67ae8d3a08b21799430fb4da15cfedf10d6e2c2 PYTHON_INICONFIG_SETUP_TYPE = setuptools PYTHON_INICONFIG_LICENSE = MIT PYTHON_INICONFIG_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-iniparse/Config.in ================================================ config BR2_PACKAGE_PYTHON_INIPARSE bool "python-iniparse" select BR2_PACKAGE_PYTHON_SIX # runtime 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 ================================================ FILE: package/python-iniparse/python-iniparse.hash ================================================ # From https://pypi.org/project/iniparse/#copy-hash-modal-5fdd923b-0592-4d2d-8b49-03472f948290 md5 2054bab923df21107652d009f2373789 iniparse-0.5.tar.gz sha256 932e5239d526e7acb504017bb707be67019ac428a6932368e6851691093aa842 iniparse-0.5.tar.gz # sha256 locally computed sha256 ff45637d8a96adc414179e502fbed40160e57205bf2e302140e79a0c71eceaa7 LICENSE sha256 9b02e3dfe433ccd2bd94636ef6eb08638b5a54deafe5f87a3d9d9104356c48e0 LICENSE-PSF ================================================ FILE: package/python-iniparse/python-iniparse.mk ================================================ ################################################################################ # # python-iniparse # ################################################################################ PYTHON_INIPARSE_VERSION = 0.5 PYTHON_INIPARSE_SOURCE = iniparse-$(PYTHON_INIPARSE_VERSION).tar.gz PYTHON_INIPARSE_SITE = https://pypi.python.org/packages/source/i/iniparse PYTHON_INIPARSE_LICENSE = Python-2.0, MIT PYTHON_INIPARSE_LICENSE_FILES = LICENSE-PSF LICENSE PYTHON_INIPARSE_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-intelhex/Config.in ================================================ config BR2_PACKAGE_PYTHON_INTELHEX bool "python-intelhex" help Python library for Intel HEX files manipulations. https://github.com/python-intelhex/intelhex ================================================ FILE: package/python-intelhex/python-intelhex.hash ================================================ # md5, sha256 from https://pypi.org/pypi/intelhex/json md5 9de0e92c1b66f75322581c8b22c020c2 intelhex-2.3.0.tar.gz sha256 892b7361a719f4945237da8ccf754e9513db32f5628852785aea108dcd250093 intelhex-2.3.0.tar.gz # Locally computed sha256 checksums sha256 1b2eb032ab8a1b0266f7995c76e44509f89ca9c0e90ec507763b5e735aca7de4 LICENSE.txt ================================================ FILE: package/python-intelhex/python-intelhex.mk ================================================ ################################################################################ # # python-intelhex # ################################################################################ PYTHON_INTELHEX_VERSION = 2.3.0 PYTHON_INTELHEX_SOURCE = intelhex-$(PYTHON_INTELHEX_VERSION).tar.gz PYTHON_INTELHEX_SITE = https://files.pythonhosted.org/packages/66/37/1e7522494557d342a24cb236e2aec5d078fac8ed03ad4b61372586406b01 PYTHON_INTELHEX_SETUP_TYPE = setuptools PYTHON_INTELHEX_LICENSE = BSD-3-Clause PYTHON_INTELHEX_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-iowait/Config.in ================================================ config BR2_PACKAGE_PYTHON_IOWAIT bool "python-iowait" help Platform-independent module for I/O completion events. https://launchpad.net/python-iowait ================================================ FILE: package/python-iowait/python-iowait.hash ================================================ # md5 from https://pypi.python.org/pypi/iowait/json, sha256 locally computed md5 f49ca7766fe4a67e03a731e575614f87 iowait-0.2.tar.gz sha256 ab1bc2eb84c22ccf61f17a0024f9fb6df781b39f1852764a66a7769d5adfb299 iowait-0.2.tar.gz sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING.LESSER ================================================ FILE: package/python-iowait/python-iowait.mk ================================================ ################################################################################ # # 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 = LGPL-3.0+ PYTHON_IOWAIT_LICENSE_FILES = COPYING.LESSER $(eval $(python-package)) ================================================ FILE: package/python-ipaddr/Config.in ================================================ config BR2_PACKAGE_PYTHON_IPADDR bool "python-ipaddr" depends on BR2_PACKAGE_PYTHON # included since python3.3 help An IPv4/IPv6 manipulation library in Python. This library is used to create/poke/manipulate IPv4 and IPv6 addresses and prefixes. https://github.com/google/ipaddr-py ================================================ FILE: package/python-ipaddr/python-ipaddr.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ipaddr/json md5 f88353e40dec06410acfa075b8209b27 ipaddr-2.2.0.tar.gz sha256 4092dfe667588d16aa12b59acb7c8a4024e5dcb23a681cd0b0b602373eca88d6 ipaddr-2.2.0.tar.gz # Locally computed sha256 checksums sha256 175b3b509d5c840db72ad8c22d22a690d15c67b317f34de8a8bb0a66059e8215 COPYING ================================================ FILE: package/python-ipaddr/python-ipaddr.mk ================================================ ################################################################################ # # python-ipaddr # ################################################################################ PYTHON_IPADDR_VERSION = 2.2.0 PYTHON_IPADDR_SOURCE = ipaddr-$(PYTHON_IPADDR_VERSION).tar.gz PYTHON_IPADDR_SITE = https://files.pythonhosted.org/packages/9d/a7/1b39a16cb90dfe491f57e1cab3103a15d4e8dd9a150872744f531b1106c1 PYTHON_IPADDR_SETUP_TYPE = distutils PYTHON_IPADDR_LICENSE = Apache-2.0 PYTHON_IPADDR_LICENSE_FILES = COPYING $(eval $(python-package)) ================================================ FILE: package/python-ipaddress/Config.in ================================================ config BR2_PACKAGE_PYTHON_IPADDRESS bool "python-ipaddress" depends on BR2_PACKAGE_PYTHON help Python 3.3's ipaddress for older Python versions. https://github.com/phihag/ipaddress ================================================ FILE: package/python-ipaddress/python-ipaddress.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ipaddress/json md5 aaee67a8026782af1831148beb0d9060 ipaddress-1.0.23.tar.gz sha256 b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2 ipaddress-1.0.23.tar.gz # Locally computed sha256 checksums sha256 38675419eb4a79ec616396d70f1254b3a433fb7088fb3f4cc9b6c0bcdcec6162 LICENSE ================================================ FILE: package/python-ipaddress/python-ipaddress.mk ================================================ ################################################################################ # # python-ipaddress # ################################################################################ PYTHON_IPADDRESS_VERSION = 1.0.23 PYTHON_IPADDRESS_SOURCE = ipaddress-$(PYTHON_IPADDRESS_VERSION).tar.gz PYTHON_IPADDRESS_SITE = https://files.pythonhosted.org/packages/b9/9a/3e9da40ea28b8210dd6504d3fe9fe7e013b62bf45902b458d1cdc3c34ed9 PYTHON_IPADDRESS_LICENSE = Python-2.0 PYTHON_IPADDRESS_LICENSE_FILES = LICENSE PYTHON_IPADDRESS_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-ipdb/Config.in ================================================ config BR2_PACKAGE_PYTHON_IPDB bool "python-ipdb" depends on BR2_PACKAGE_PYTHON3 # python-ipython select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON_IPYTHON # runtime help IPython-enabled pdb. https://github.com/gotcha/ipdb ================================================ FILE: package/python-ipdb/python-ipdb.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ipdb/json md5 4f5ffb71cd6551319acf8cbceabd8936 ipdb-0.13.9.tar.gz sha256 951bd9a64731c444fd907a5ce268543020086a697f6be08f7cc2c9a752a278c5 ipdb-0.13.9.tar.gz # Locally computed sha256 checksums sha256 4eeb49de04f4894f8ea1f69a04f500799041b750b3d554c06de5ca877258e734 COPYING.txt ================================================ FILE: package/python-ipdb/python-ipdb.mk ================================================ ################################################################################ # # python-ipdb # ################################################################################ PYTHON_IPDB_VERSION = 0.13.9 PYTHON_IPDB_SOURCE = ipdb-$(PYTHON_IPDB_VERSION).tar.gz PYTHON_IPDB_SITE = https://files.pythonhosted.org/packages/fc/56/9f67dcd4a4b9960373173a31be1b8c47fe351a1c9385677a7bdd82810e57 PYTHON_IPDB_SETUP_TYPE = setuptools PYTHON_IPDB_LICENSE = BSD-3-Clause PYTHON_IPDB_LICENSE_FILES = COPYING.txt $(eval $(python-package)) ================================================ FILE: package/python-iptables/Config.in ================================================ config BR2_PACKAGE_PYTHON_IPTABLES bool "python-iptables" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_IPTABLES # runtime dependency help Python bindings for iptables. https://github.com/ldx/python-iptables comment "python-iptables needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/python-iptables/python-iptables.hash ================================================ # md5, sha256 from https://pypi.org/pypi/python-iptables/json md5 3fb27da1107bdb62196850fa70e8b0d4 python-iptables-1.0.0.tar.gz sha256 480470adb5f29bf84269b4e53dbad9623af91c79aa666cc0274dec199a555bc5 python-iptables-1.0.0.tar.gz # Locally calculated sha256 b827789c74144d9bb92595ed3bc568aef767a7e8d930fba61c2cdd9f6ec27599 NOTICE ================================================ FILE: package/python-iptables/python-iptables.mk ================================================ ################################################################################ # # python-iptables # ################################################################################ PYTHON_IPTABLES_VERSION = 1.0.0 PYTHON_IPTABLES_SITE = https://files.pythonhosted.org/packages/ca/6e/cba9c6f4b5a1963b7f5b015f5ed5e2eec7a94ac460570e3474177c4004d6 PYTHON_IPTABLES_SETUP_TYPE = setuptools PYTHON_IPTABLES_LICENSE = Apache-2.0 PYTHON_IPTABLES_LICENSE_FILES = NOTICE $(eval $(python-package)) ================================================ FILE: package/python-ipy/Config.in ================================================ config BR2_PACKAGE_PYTHON_IPY bool "python-ipy" help IPy - class and tools for handling of IPv4 and IPv6 addresses and networks. https://github.com/haypo/python-ipy/ ================================================ FILE: package/python-ipy/python-ipy.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ipy/json md5 d6cf83e7f418ebbd23324ba1c658b907 IPy-1.01.tar.gz sha256 edeca741dea2d54aca568fa23740288c3fe86c0f3ea700344571e9ef14a7cc1a IPy-1.01.tar.gz # Locally computed sha256 checksums sha256 078bb46799e46e51e7239c24ff130d345db911c11efafef5e3c45dfb7adb0a61 COPYING ================================================ FILE: package/python-ipy/python-ipy.mk ================================================ ################################################################################ # # python-ipy # ################################################################################ PYTHON_IPY_VERSION = 1.01 PYTHON_IPY_SOURCE = IPy-$(PYTHON_IPY_VERSION).tar.gz PYTHON_IPY_SITE = https://files.pythonhosted.org/packages/64/a4/9c0d88d95666ff1571d7baec6c5e26abc08051801feb6e6ddf40f6027e22 PYTHON_IPY_LICENSE = BSD-3-Clause PYTHON_IPY_LICENSE_FILES = COPYING PYTHON_IPY_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-ipython/0001-set-correct-python-executable-path.patch ================================================ Set correct Python executable path Signed-off-by: Philippe Proulx --- python-ipython-2.1.0/setupbase.py 2014-05-21 15:19:12.000000000 -0400 +++ python-ipython-2.1.0-new/setupbase.py 2014-07-23 23:34:32.892030423 -0400 @@ -394,7 +394,7 @@ class build_scripts_entrypt(build_script mod, func = entrypt.split(':') with open(outfile, 'w') as f: - f.write(script_src.format(executable=sys.executable, + f.write(script_src.format(executable='/usr/bin/env python', mod=mod, func=func)) return outfiles, outfiles ================================================ FILE: package/python-ipython/Config.in ================================================ config BR2_PACKAGE_PYTHON_IPYTHON bool "python-ipython" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_BACKCALL # runtime select BR2_PACKAGE_PYTHON_DECORATOR # runtime select BR2_PACKAGE_PYTHON_JEDI # runtime select BR2_PACKAGE_PYTHON_PICKLESHARE # runtime select BR2_PACKAGE_PYTHON_PROMPT_TOOLKIT # runtime select BR2_PACKAGE_PYTHON_PYGMENTS # runtime select BR2_PACKAGE_PYTHON_PEXPECT # runtime select BR2_PACKAGE_PYTHON_TRAITLETS # runtime help IPython is a command shell for interactive computing in multiple programming languages, originally developed for the Python programming language, that offers enhanced introspection, rich media, additional shell syntax, tab completion, and rich history. http://ipython.org/ ================================================ FILE: package/python-ipython/python-ipython.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ipython/json md5 f733048322cd34ce392ec5404813540b ipython-7.28.0.tar.gz sha256 2097be5c814d1b974aea57673176a924c4c8c9583890e7a5f082f547b9975b11 ipython-7.28.0.tar.gz # Locally computed sha256 checksums sha256 341afcbd729887b7046fe7b98fc4f4edff3aed8d38f06eefd9b30670f043df17 COPYING.rst sha256 e0e390748ed440ab893ca1f135a88a920aaf5409dbb90a5b427c75c5e51268fb LICENSE ================================================ FILE: package/python-ipython/python-ipython.mk ================================================ ################################################################################ # # python-ipython # ################################################################################ PYTHON_IPYTHON_VERSION = 7.28.0 PYTHON_IPYTHON_SOURCE = ipython-$(PYTHON_IPYTHON_VERSION).tar.gz PYTHON_IPYTHON_SITE = https://files.pythonhosted.org/packages/e2/c8/7046d0409a90e31263d5bbaa708347d522ac584a1140c01a951d9deb1792 PYTHON_IPYTHON_LICENSE = BSD-3-Clause PYTHON_IPYTHON_LICENSE_FILES = COPYING.rst LICENSE PYTHON_IPYTHON_CPE_ID_VENDOR = ipython PYTHON_IPYTHON_CPE_ID_PRODUCT = ipython PYTHON_IPYTHON_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-ipython-genutils/Config.in ================================================ config BR2_PACKAGE_PYTHON_IPYTHON_GENUTILS bool "python-ipython-genutils" help IPython vestigial utilities https://pypi.python.org/pypi/ipython_genutils ================================================ FILE: package/python-ipython-genutils/python-ipython-genutils.hash ================================================ # md5 from https://pypi.python.org/pypi/ipython_genutils/json md5 5a4f9781f78466da0ea1a648f3e1f79f ipython_genutils-0.2.0.tar.gz # Locally computed sha256 eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8 ipython_genutils-0.2.0.tar.gz sha256 f09da6c0f4971485f6fbd6c630d0d6cdd012bfe128b2ebbd014de2f6c7c7e2a6 COPYING.md ================================================ FILE: package/python-ipython-genutils/python-ipython-genutils.mk ================================================ ################################################################################ # # python-ipython-genutils # ################################################################################ PYTHON_IPYTHON_GENUTILS_VERSION = 0.2.0 PYTHON_IPYTHON_GENUTILS_SOURCE = ipython_genutils-$(PYTHON_IPYTHON_GENUTILS_VERSION).tar.gz PYTHON_IPYTHON_GENUTILS_SITE = https://pypi.python.org/packages/e8/69/fbeffffc05236398ebfcfb512b6d2511c622871dca1746361006da310399 PYTHON_IPYTHON_GENUTILS_LICENSE = BSD-3-Clause PYTHON_IPYTHON_GENUTILS_LICENSE_FILES = COPYING.md PYTHON_IPYTHON_GENUTILS_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-iso8601/Config.in ================================================ config BR2_PACKAGE_PYTHON_ISO8601 bool "python-iso8601" help Simple module to parse ISO 8601 dates. https://github.com/micktwomey/pyiso8601 ================================================ FILE: package/python-iso8601/python-iso8601.hash ================================================ # md5, sha256 from https://pypi.org/pypi/iso8601/json md5 d6fe8ccc847aaf8ac965da3b6023e697 iso8601-0.1.14.tar.gz sha256 8aafd56fa0290496c5edbb13c311f78fa3a241f0853540da09d9363eae3ebd79 iso8601-0.1.14.tar.gz # Locally computed sha256 checksums sha256 116d368d14a8cf0061027c944c60ee20b476ce42814818a7d627396906761f16 LICENSE ================================================ FILE: package/python-iso8601/python-iso8601.mk ================================================ ################################################################################ # # python-iso8601 # ################################################################################ PYTHON_ISO8601_VERSION = 0.1.14 PYTHON_ISO8601_SOURCE = iso8601-$(PYTHON_ISO8601_VERSION).tar.gz PYTHON_ISO8601_SITE = https://files.pythonhosted.org/packages/f9/ed/b97abc7877e5b253eef96a469f47d617b0ebcccc735405fa1a620c7ee833 PYTHON_ISO8601_SETUP_TYPE = setuptools PYTHON_ISO8601_LICENSE = MIT PYTHON_ISO8601_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-itsdangerous/Config.in ================================================ config BR2_PACKAGE_PYTHON_ITSDANGEROUS bool "python-itsdangerous" select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 # runtime help Itsdangerous contains various helpers to pass data to untrusted environments and to get it back safe and sound. http://pythonhosted.org/itsdangerous/ ================================================ FILE: package/python-itsdangerous/python-itsdangerous.hash ================================================ # md5, sha256 from https://pypi.org/pypi/itsdangerous/json md5 9b7f5afa7f1e3acfb7786eeca3d99307 itsdangerous-1.1.0.tar.gz sha256 321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19 itsdangerous-1.1.0.tar.gz sha256 feb28bfa348d816b0e7dbaeddf18499ee7e8007c67813db8d6ab37c65e046cd4 LICENSE.rst ================================================ FILE: package/python-itsdangerous/python-itsdangerous.mk ================================================ ################################################################################ # # python-itsdangerous # ################################################################################ PYTHON_ITSDANGEROUS_VERSION = 1.1.0 PYTHON_ITSDANGEROUS_SOURCE = itsdangerous-$(PYTHON_ITSDANGEROUS_VERSION).tar.gz PYTHON_ITSDANGEROUS_SITE = https://files.pythonhosted.org/packages/68/1a/f27de07a8a304ad5fa817bbe383d1238ac4396da447fa11ed937039fa04b PYTHON_ITSDANGEROUS_SETUP_TYPE = setuptools PYTHON_ITSDANGEROUS_LICENSE = BSD-3-Clause PYTHON_ITSDANGEROUS_LICENSE_FILES = LICENSE.rst $(eval $(python-package)) ================================================ FILE: package/python-iwlib/Config.in ================================================ config BR2_PACKAGE_PYTHON_IWLIB bool "python-iwlib" depends on BR2_PACKAGE_WIRELESS_TOOLS_LIB help python-iwlib is a package for interfacing with iwlib, providing an implementation to the wireless tools in Linux. https://github.com/nhoad/python-iwlib ================================================ FILE: package/python-iwlib/python-iwlib.hash ================================================ # Locally calculated sha256 7f1ad4354284a452388e178b5d9b191fa5a68a9183423a90a1d261ba2ebd1cac python-iwlib-1.5.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/python-iwlib/python-iwlib.mk ================================================ ################################################################################ # # python-iwlib # ################################################################################ PYTHON_IWLIB_VERSION = 1.5 PYTHON_IWLIB_SITE = $(call github,nhoad,python-iwlib,$(PYTHON_IWLIB_VERSION)) PYTHON_IWLIB_LICENSE = GPL-2.0 PYTHON_IWLIB_LICENSE_FILES = COPYING PYTHON_IWLIB_SETUP_TYPE = setuptools PYTHON_IWLIB_DEPENDENCIES = wireless_tools $(eval $(python-package)) ================================================ FILE: package/python-janus/Config.in ================================================ config BR2_PACKAGE_PYTHON_JANUS bool "python-janus" depends on BR2_PACKAGE_PYTHON3 help Mixed sync-async queue to interoperate between asyncio tasks and classic threads. https://github.com/aio-libs/janus/ ================================================ FILE: package/python-janus/python-janus.hash ================================================ # md5, sha256 from https://pypi.org/pypi/janus/json md5 dad6a03e7664cb800ce45ef8bcf12439 janus-0.6.1.tar.gz sha256 4712e0ef75711fe5947c2db855bc96221a9a03641b52e5ae8e25c2b705dd1d0c janus-0.6.1.tar.gz # Locally computed sha256 checksums sha256 8b177cccb6ddec12a9fc97bd49e7e2bbcd92464625624bd8bdbfad799ae606e9 LICENSE ================================================ FILE: package/python-janus/python-janus.mk ================================================ ################################################################################ # # python-janus # ################################################################################ PYTHON_JANUS_VERSION = 0.6.1 PYTHON_JANUS_SOURCE = janus-$(PYTHON_JANUS_VERSION).tar.gz PYTHON_JANUS_SITE = https://files.pythonhosted.org/packages/7c/1b/8769c2dca84dd8ca92e48b14750c7106ff4313df4fee651dbc3cd9e345a9 PYTHON_JANUS_SETUP_TYPE = setuptools PYTHON_JANUS_LICENSE = Apache-2.0 PYTHON_JANUS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-jaraco-classes/Config.in ================================================ config BR2_PACKAGE_PYTHON_JARACO_CLASSES bool "python-jaraco-classes" select BR2_PACKAGE_PYTHON_SIX # runtime help Utility functions for Python class constructs. https://github.com/jaraco/jaraco.classes ================================================ FILE: package/python-jaraco-classes/python-jaraco-classes.hash ================================================ # md5, sha256 from https://pypi.org/pypi/jaraco.classes/json md5 63d4f5a2df2625ec3979c9633da1505e jaraco.classes-2.0.tar.gz sha256 dcc2c4a8ca4b344cdbf2e1be7124a5c4f192574cdbb453b62350ae8240a2caf5 jaraco.classes-2.0.tar.gz # Locally computed sha256 checksums sha256 a55e2ffe9b44998e621d51d8c094bed09acc4b5236ee73d7df395a33ba3c18fd LICENSE ================================================ FILE: package/python-jaraco-classes/python-jaraco-classes.mk ================================================ ################################################################################ # # python-jaraco-classes # ################################################################################ PYTHON_JARACO_CLASSES_VERSION = 2.0 PYTHON_JARACO_CLASSES_SOURCE = jaraco.classes-$(PYTHON_JARACO_CLASSES_VERSION).tar.gz PYTHON_JARACO_CLASSES_SITE = https://files.pythonhosted.org/packages/6e/27/f6ce0863a6ce574922ffe70d63c40b9771aefb686cb595cf435d184f0ca3 PYTHON_JARACO_CLASSES_LICENSE = MIT PYTHON_JARACO_CLASSES_LICENSE_FILES = LICENSE PYTHON_JARACO_CLASSES_SETUP_TYPE = setuptools PYTHON_JARACO_CLASSES_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-jaraco-functools/Config.in ================================================ config BR2_PACKAGE_PYTHON_JARACO_FUNCTOOLS bool "python-jaraco-functools" depends on BR2_PACKAGE_PYTHON3 # python-more-itertools select BR2_PACKAGE_PYTHON_MORE_ITERTOOLS # runtime help Additional functools in the spirit of stdlib’s functools. https://github.com/jaraco/jaraco.functools ================================================ FILE: package/python-jaraco-functools/python-jaraco-functools.hash ================================================ # md5, sha256 from https://pypi.org/pypi/jaraco.functools/json md5 c245ade3e753bc556415f1fec102f232 jaraco.functools-2.0.tar.gz sha256 35ba944f52b1a7beee8843a5aa6752d1d5b79893eeb7770ea98be6b637bf9345 jaraco.functools-2.0.tar.gz # Locally computed sha256 checksums sha256 a55e2ffe9b44998e621d51d8c094bed09acc4b5236ee73d7df395a33ba3c18fd LICENSE ================================================ FILE: package/python-jaraco-functools/python-jaraco-functools.mk ================================================ ################################################################################ # # python-jaraco-functools # ################################################################################ PYTHON_JARACO_FUNCTOOLS_VERSION = 2.0 PYTHON_JARACO_FUNCTOOLS_SOURCE = jaraco.functools-$(PYTHON_JARACO_FUNCTOOLS_VERSION).tar.gz PYTHON_JARACO_FUNCTOOLS_SITE = https://files.pythonhosted.org/packages/a9/1e/44f6a5cffef147a3ffd37a748b8f4c2ded9b07ca20a15f17cd9874158f24 PYTHON_JARACO_FUNCTOOLS_LICENSE = MIT PYTHON_JARACO_FUNCTOOLS_LICENSE_FILES = LICENSE PYTHON_JARACO_FUNCTOOLS_SETUP_TYPE = setuptools PYTHON_JARACO_FUNCTOOLS_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-jedi/Config.in ================================================ config BR2_PACKAGE_PYTHON_JEDI bool "python-jedi" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_PARSO # runtime help An autocompletion tool for Python that can be used for text editors. https://github.com/davidhalter/jedi ================================================ FILE: package/python-jedi/python-jedi.hash ================================================ # md5, sha256 from https://pypi.org/pypi/jedi/json md5 72707c00e8d6d0b190a5e5664be1cac5 jedi-0.18.0.tar.gz sha256 92550a404bad8afed881a137ec9a461fed49eca661414be45059329614ed0707 jedi-0.18.0.tar.gz # Locally computed sha256 checksums sha256 78e60cd0b8f28694f30195482c33d76908d846b0d15278deb7332aa22ba8e412 LICENSE.txt sha256 235e993965d399a25e7d493d25c8622f78718510884b9c051f1f1866b6f34e9d jedi/third_party/django-stubs/LICENSE.txt sha256 b41b78f562a2e65b75cab44354335f6f435d4ef73065509600ac910cf4e22fe0 jedi/third_party/typeshed/LICENSE ================================================ FILE: package/python-jedi/python-jedi.mk ================================================ ################################################################################ # # python-jedi # ################################################################################ PYTHON_JEDI_VERSION = 0.18.0 PYTHON_JEDI_SOURCE = jedi-$(PYTHON_JEDI_VERSION).tar.gz PYTHON_JEDI_SITE = https://files.pythonhosted.org/packages/ac/11/5c542bf206efbae974294a61febc61e09d74cb5d90d8488793909db92537 PYTHON_JEDI_SETUP_TYPE = setuptools PYTHON_JEDI_LICENSE = MIT, Apache-2.0 (typeshed) PYTHON_JEDI_LICENSE_FILES = LICENSE.txt jedi/third_party/django-stubs/LICENSE.txt jedi/third_party/typeshed/LICENSE $(eval $(python-package)) ================================================ FILE: package/python-jinja2/Config.in ================================================ config BR2_PACKAGE_PYTHON_JINJA2 bool "python-jinja2" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_MARKUPSAFE # runtime select BR2_PACKAGE_PYTHON3_UNICODEDATA help Jinja2 is a template engine written in pure Python. It provides a Django inspired non-XML syntax but supports inline expressions and an optional sandboxed environment. https://jinja.palletsprojects.com ================================================ FILE: package/python-jinja2/python-jinja2.hash ================================================ # md5, sha256 from https://pypi.org/pypi/jinja2/json md5 d31148abd89c1df1cdb077a55db27d02 Jinja2-3.1.2.tar.gz sha256 31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 Jinja2-3.1.2.tar.gz # Locally computed sha256 checksums sha256 3b49dcee4105eb37bac10faf1be260408fe85d252b8e9df2e0979fc1e094437b LICENSE.rst ================================================ FILE: package/python-jinja2/python-jinja2.mk ================================================ ################################################################################ # # python-jinja2 # ################################################################################ PYTHON_JINJA2_VERSION = 3.1.2 PYTHON_JINJA2_SOURCE = Jinja2-$(PYTHON_JINJA2_VERSION).tar.gz PYTHON_JINJA2_SITE = https://files.pythonhosted.org/packages/7a/ff/75c28576a1d900e87eb6335b063fab47a8ef3c8b4d88524c4bf78f670cce PYTHON_JINJA2_SETUP_TYPE = setuptools PYTHON_JINJA2_LICENSE = BSD-3-Clause PYTHON_JINJA2_LICENSE_FILES = LICENSE.rst PYTHON_JINJA2_CPE_ID_VENDOR = pocoo PYTHON_JINJA2_CPE_ID_PRODUCT = jinja2 # In host/target build, setup.py tries to download markupsafe if it is not installed PYTHON_JINJA2_DEPENDENCIES = host-python-markupsafe HOST_PYTHON_JINJA2_DEPENDENCIES = host-python-markupsafe HOST_PYTHON_JINJA2_NEEDS_HOST_PYTHON = python3 $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-jmespath/Config.in ================================================ config BR2_PACKAGE_PYTHON_JMESPATH bool "python-jmespath" help JMESPath is a query language for JSON. https://github.com/jmespath/jmespath.py ================================================ FILE: package/python-jmespath/python-jmespath.hash ================================================ # md5, sha256 from https://pypi.org/pypi/jmespath/json md5 65bdcb5fa5bcf1cc710ffa508e78e408 jmespath-0.10.0.tar.gz sha256 b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9 jmespath-0.10.0.tar.gz # Locally computed sha256 checksums sha256 66b313cce80ed0623fc7db3f24863a0c80fd83eb341a46b57864158ae74faa56 LICENSE.txt ================================================ FILE: package/python-jmespath/python-jmespath.mk ================================================ ################################################################################ # # python-jmespath # ################################################################################ PYTHON_JMESPATH_VERSION = 0.10.0 PYTHON_JMESPATH_SOURCE = jmespath-$(PYTHON_JMESPATH_VERSION).tar.gz PYTHON_JMESPATH_SITE = https://files.pythonhosted.org/packages/3c/56/3f325b1eef9791759784aa5046a8f6a1aff8f7c898a2e34506771d3b99d8 PYTHON_JMESPATH_SETUP_TYPE = setuptools PYTHON_JMESPATH_LICENSE = MIT PYTHON_JMESPATH_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-json-schema-validator/Config.in ================================================ config BR2_PACKAGE_PYTHON_JSON_SCHEMA_VALIDATOR bool "python-json-schema-validator" help JSON Schema Validator https://pypi.python.org/pypi/json-schema-validator ================================================ FILE: package/python-json-schema-validator/python-json-schema-validator.hash ================================================ # md5 from https://pypi.python.org/pypi/json-schema-validator/json, sha256 locally computed md5 7691b41739faaa8b0965279e72889932 json-schema-validator-2.4.1.tar.gz sha256 1562a21d83e56231cef09b9aa2c06e8f845974bd26f24be293de6cab9a2fac91 json-schema-validator-2.4.1.tar.gz ================================================ FILE: package/python-json-schema-validator/python-json-schema-validator.mk ================================================ ################################################################################ # # python-json-schema-validator # ################################################################################ PYTHON_JSON_SCHEMA_VALIDATOR_VERSION = 2.4.1 PYTHON_JSON_SCHEMA_VALIDATOR_SOURCE = json-schema-validator-$(PYTHON_JSON_SCHEMA_VALIDATOR_VERSION).tar.gz PYTHON_JSON_SCHEMA_VALIDATOR_SITE = https://pypi.python.org/packages/70/46/ba39cb7efad1898cfc89bf3588b8612f24d128f1c25b761994f524a59cef PYTHON_JSON_SCHEMA_VALIDATOR_LICENSE = LGPL-3.0 PYTHON_JSON_SCHEMA_VALIDATOR_SETUP_TYPE = setuptools PYTHON_JSON_SCHEMA_VALIDATOR_DEPENDENCIES = host-python-versiontools $(eval $(python-package)) ================================================ FILE: package/python-jsonmodels/Config.in ================================================ config BR2_PACKAGE_PYTHON_JSONMODELS bool "python-jsonmodels" select BR2_PACKAGE_PYTHON_DATEUTIL # runtime select BR2_PACKAGE_PYTHON_SIX # runtime help Models to make easier to deal with structures that are converted to, or read from JSON. https://github.com/beregond/jsonmodels ================================================ FILE: package/python-jsonmodels/python-jsonmodels.hash ================================================ # md5, sha256 from https://pypi.org/pypi/jsonmodels/json md5 96132e252887f840d23792c03fad2039 jsonmodels-2.4.tar.gz sha256 abc8dc334a1794513e511a75639f77c271ef6a2992b6793f3753c7335dd18775 jsonmodels-2.4.tar.gz # Locally computed sha256 checksums sha256 3b1219763eec6924ddd4c4d61dee6a53c5fc9ab62707a9ad763ee363d3050cc5 LICENSE ================================================ FILE: package/python-jsonmodels/python-jsonmodels.mk ================================================ ################################################################################ # # python-jsonmodels # ################################################################################ PYTHON_JSONMODELS_VERSION = 2.4 PYTHON_JSONMODELS_SOURCE = jsonmodels-$(PYTHON_JSONMODELS_VERSION).tar.gz PYTHON_JSONMODELS_SITE = https://files.pythonhosted.org/packages/68/00/524668dc751f9ef91e73c795b2073bf2ddb79728a474d1bcab9c6dc426d8 PYTHON_JSONMODELS_SETUP_TYPE = setuptools PYTHON_JSONMODELS_LICENSE = BSD-3-Clause PYTHON_JSONMODELS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-jsonpointer/Config.in ================================================ config BR2_PACKAGE_PYTHON_JSONPOINTER bool "python-jsonpointer" depends on BR2_PACKAGE_PYTHON3 help Resolve JSON Pointers in Python. https://github.com/stefankoegl/python-json-pointer ================================================ FILE: package/python-jsonpointer/python-jsonpointer.hash ================================================ sha256 c192ba86648e05fdae4f08a17ec25180a9aef5008d973407b581798a83975362 jsonpointer-2.0.tar.gz ================================================ FILE: package/python-jsonpointer/python-jsonpointer.mk ================================================ ################################################################################ # # python-jsonpointer # ################################################################################ PYTHON_JSONPOINTER_VERSION = 2.0 PYTHON_JSONPOINTER_SOURCE = jsonpointer-$(PYTHON_JSONPOINTER_VERSION).tar.gz PYTHON_JSONPOINTER_SITE = https://files.pythonhosted.org/packages/52/e7/246d9ef2366d430f0ce7bdc494ea2df8b49d7a2a41ba51f5655f68cfe85f PYTHON_JSONPOINTER_SETUP_TYPE = setuptools PYTHON_JSONPOINTER_LICENSE = BSD PYTHON_JSONPOINTER_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-jsonschema/Config.in ================================================ config BR2_PACKAGE_PYTHON_JSONSCHEMA bool "python-jsonschema" select BR2_PACKAGE_PYTHON_FUNCTOOLS32 if BR2_PACKAGE_PYTHON # runtime help An implementation of JSON Schema validation for Python. http://github.com/Julian/jsonschema ================================================ FILE: package/python-jsonschema/python-jsonschema.hash ================================================ # md5 from https://pypi.python.org/pypi/jsonschema/json md5 374e848fdb69a3ce8b7e778b47c30640 jsonschema-2.5.1.tar.gz # Locally computed sha256 36673ac378feed3daa5956276a829699056523d7961027911f064b52255ead41 jsonschema-2.5.1.tar.gz sha256 4f92a015a13c4d1a040bef018aa13430b4f1bc73b41b16bb846c346766de7439 COPYING sha256 837402bd25fad9b704265801ca3f92566a98157c1f9a7acd6f446299ba1c305a json/LICENSE ================================================ FILE: package/python-jsonschema/python-jsonschema.mk ================================================ ################################################################################ # # python-jsonschema # ################################################################################ PYTHON_JSONSCHEMA_VERSION = 2.5.1 PYTHON_JSONSCHEMA_SOURCE = jsonschema-$(PYTHON_JSONSCHEMA_VERSION).tar.gz PYTHON_JSONSCHEMA_SITE = https://pypi.python.org/packages/58/0d/c816f5ea5adaf1293a1d81d32e4cdfdaf8496973aa5049786d7fdb14e7e7 PYTHON_JSONSCHEMA_SETUP_TYPE = setuptools PYTHON_JSONSCHEMA_LICENSE = MIT PYTHON_JSONSCHEMA_LICENSE_FILES = COPYING json/LICENSE PYTHON_JSONSCHEMA_DEPENDENCIES = host-python-vcversioner $(eval $(python-package)) ================================================ FILE: package/python-keyring/Config.in ================================================ config BR2_PACKAGE_PYTHON_KEYRING bool "python-keyring" # python-secretstorage -> python-cryptography depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_ENTRYPOINTS # runtime select BR2_PACKAGE_PYTHON_SECRETSTORAGE # runtime help The Python keyring lib provides a easy way to access the system keyring service from Python. https://pypi.python.org/pypi/keyring ================================================ FILE: package/python-keyring/python-keyring.hash ================================================ # md5, sha256 from https://pypi.org/pypi/keyring/json md5 1eb6d586ee5794de4bf39c1f513a3139 keyring-19.2.0.tar.gz sha256 91037ccaf0c9a112a76f7740e4a416b9457a69b66c2799421581bee710a974b3 keyring-19.2.0.tar.gz # Locally computed sha256 checksums sha256 a55e2ffe9b44998e621d51d8c094bed09acc4b5236ee73d7df395a33ba3c18fd LICENSE ================================================ FILE: package/python-keyring/python-keyring.mk ================================================ ################################################################################ # # python-keyring # ################################################################################ PYTHON_KEYRING_VERSION = 19.2.0 PYTHON_KEYRING_SOURCE = keyring-$(PYTHON_KEYRING_VERSION).tar.gz PYTHON_KEYRING_SITE = https://files.pythonhosted.org/packages/ee/46/77fdb7cd2b0f1f684afbc35a59b3d7ebb6961fe528f97b86900002968914 PYTHON_KEYRING_SETUP_TYPE = setuptools PYTHON_KEYRING_LICENSE = MIT PYTHON_KEYRING_LICENSE_FILES = LICENSE PYTHON_KEYRING_CPE_ID_VENDOR = python PYTHON_KEYRING_CPE_ID_PRODUCT = keyring PYTHON_KEYRING_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-kiwisolver/Config.in ================================================ config BR2_PACKAGE_PYTHON_KIWISOLVER bool "python-kiwisolver" depends on BR2_INSTALL_LIBSTDCPP help Kiwi is an efficient C++ implementation of the Cassowary constraint solving algorithm. Kiwi is an implementation of the algorithm based on the seminal Cassowary paper. It is not a refactoring of the original C++ solver. Kiwi has been designed from the ground up to be lightweight and fast. Kiwi ranges from 10x to 500x faster than the original Cassowary solver with typical use cases gaining a 40x improvement. Memory savings are consistently > 5x. https://github.com/nucleic/kiwi comment "python-kiwisolver needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/python-kiwisolver/python-kiwisolver.hash ================================================ # Locally calculated sha256 48168c0ace18319c649e31907f6d8586f648e503560f506f128798b99393bcdb python-kiwisolver-1.1.0.tar.gz sha256 95c32f73d43fa54d8146badbcbd73b83acb7fa2cc81a7cef7784b3cd33b146a0 LICENSE ================================================ FILE: package/python-kiwisolver/python-kiwisolver.mk ================================================ ################################################################################ # # python-kiwisolver # ################################################################################ PYTHON_KIWISOLVER_VERSION = 1.1.0 PYTHON_KIWISOLVER_SITE = $(call github,nucleic,kiwi,$(PYTHON_KIWISOLVER_VERSION)) PYTHON_KIWISOLVER_LICENSE = BSD-3-Clause PYTHON_KIWISOLVER_LICENSE_FILES = LICENSE PYTHON_KIWISOLVER_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-libconfig/Config.in ================================================ comment "python-libconfig needs a glibc or uClibc toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_TOOLCHAIN_USES_MUSL config BR2_PACKAGE_PYTHON_LIBCONFIG bool "python-libconfig" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # error: invalid use of incomplete type 'struct _IO_FILE' depends on !BR2_TOOLCHAIN_USES_MUSL select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_PYTHON select BR2_PACKAGE_LIBCONFIG help Python bindings to the C++ library libconfig Libconfig is a simple library for manipulating structured configuration files. The file format is more compact and more readable than XML. And unlike XML, it is type-aware, so it is not necessary to do string parsing in application code. http://www.hyperrealm.com/libconfig/ https://github.com/cnangel/python-libconfig ================================================ FILE: package/python-libconfig/python-libconfig.hash ================================================ # locally computed sha256 f4cfb7e60b8fcee32ca3392c99932c579038db0852c1c2c42d7c4b859eea3c5c python-libconfig-b271c3d9dac938ad5cd29b67bd08cc5536a5a391.tar.gz sha256 7e47579751c8125eaa031fd10b197d3956d231323598a42612f30abf19c7fed0 README ================================================ FILE: package/python-libconfig/python-libconfig.mk ================================================ ################################################################################ # # python-libconfig # ################################################################################ PYTHON_LIBCONFIG_VERSION = b271c3d9dac938ad5cd29b67bd08cc5536a5a391 PYTHON_LIBCONFIG_SITE = $(call github,cnangel,python-libconfig,$(PYTHON_LIBCONFIG_VERSION)) PYTHON_LIBCONFIG_LICENSE = BSD PYTHON_LIBCONFIG_LICENSE_FILES = README PYTHON_LIBCONFIG_SETUP_TYPE = setuptools PYTHON_LIBCONFIG_DEPENDENCIES = libconfig boost ifeq ($(BR2_PACKAGE_PYTHON),y) PYTHON_LIBCONFIG_PYVER = $(PYTHON_VERSION_MAJOR) else ifeq ($(BR2_PACKAGE_PYTHON3),y) PYTHON_LIBCONFIG_PYVER = $(PYTHON3_VERSION_MAJOR) endif define PYTHON_LIBCONFIG_FIX_SETUP $(SED) 's/boost_python/boost_python$(subst .,,$(PYTHON_LIBCONFIG_PYVER))/g' \ $(@D)/setup.py endef PYTHON_LIBCONFIG_POST_PATCH_HOOKS += PYTHON_LIBCONFIG_FIX_SETUP $(eval $(python-package)) ================================================ FILE: package/python-libusb1/Config.in ================================================ config BR2_PACKAGE_PYTHON_LIBUSB1 bool "python-libusb1" depends on BR2_PACKAGE_PYTHON3 depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Pure-python wrapper for libusb-1.0. http://github.com/vpelletier/python-libusb1 comment "python-libusb1 needs a toolchain w/ threads, gcc >= 4.9" depends on BR2_PACKAGE_PYTHON3 depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/python-libusb1/python-libusb1.hash ================================================ # md5 from https://pypi.python.org/pypi/libusb1/json, sha256 locally computed md5 b087646fb0c8c4cf7e8123af72f885b9 libusb1-2.0.1.tar.gz sha256 d3ba82ecf7ab6a48d21dac6697e26504670cc3522b8e5941bd28fb56cf3f6c46 libusb1-2.0.1.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LESSER ================================================ FILE: package/python-libusb1/python-libusb1.mk ================================================ ################################################################################ # # python-libusb1 # ################################################################################ PYTHON_LIBUSB1_VERSION = 2.0.1 PYTHON_LIBUSB1_SOURCE = libusb1-$(PYTHON_LIBUSB1_VERSION).tar.gz PYTHON_LIBUSB1_SITE = https://files.pythonhosted.org/packages/a9/97/e8afa2af12b6de608ec86c8c4ad57f1248d98946d1b5e1aa0bff926755e9 PYTHON_LIBUSB1_SETUP_TYPE = setuptools PYTHON_LIBUSB1_LICENSE = LGPL-2.1+ PYTHON_LIBUSB1_LICENSE_FILES = COPYING.LESSER PYTHON_LIBUSB1_DEPENDENCIES = libusb $(eval $(python-package)) ================================================ FILE: package/python-lmdb/Config.in ================================================ 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 ================================================ FILE: package/python-lmdb/python-lmdb.hash ================================================ # md5, sha256 from https://pypi.org/pypi/lmdb/json md5 b8f4a2cd1748e8a5f5e352d1cb3d4350 lmdb-1.2.1.tar.gz sha256 5f76a90ebd08922acca11948779b5055f7a262687178e9e94f4e804b9f8465bc lmdb-1.2.1.tar.gz # Locally computed sha256 checksums sha256 310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569 LICENSE ================================================ FILE: package/python-lmdb/python-lmdb.mk ================================================ ################################################################################ # # python-lmdb # ################################################################################ PYTHON_LMDB_VERSION = 1.2.1 PYTHON_LMDB_SOURCE = lmdb-$(PYTHON_LMDB_VERSION).tar.gz PYTHON_LMDB_SITE = https://files.pythonhosted.org/packages/2f/df/3aea5279753cb8ab0c96dec43106e24f388d4179d5224f6d3e652016c095 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)) ================================================ FILE: package/python-lockfile/Config.in ================================================ config BR2_PACKAGE_PYTHON_LOCKFILE bool "python-lockfile" help The lockfile package exports a LockFile class which provides a simple API for locking files. Unlike the Windows msvcrt.locking function, the fcntl.lockf and flock functions, and the deprecated posixfile module, the API is identical across both Unix (including Linux and Mac) and Windows platforms. The lock mechanism relies on the atomic nature of the link (on Unix) and mkdir (on Windows) system calls. An implementation based on SQLite is also provided, more as a demonstration of the possibilities it provides than as production-quality code. https://pypi.org/project/lockfile/ ================================================ FILE: package/python-lockfile/python-lockfile.hash ================================================ # md5, sha256 from https://pypi.org/project/lockfile/#copy-hash-modal-3c1db9ec-dd6e-4d06-8543-91094f428ac0 md5 a6a1a82957a23afdf44cfdd039b65ff9 lockfile-0.12.2.tar.gz sha256 6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799 lockfile-0.12.2.tar.gz # Locally computed sha256 sha256 a26276d53dacb369641f31aa0fe37216028a0d93753f862ae206ce04f54b7b29 LICENSE ================================================ FILE: package/python-lockfile/python-lockfile.mk ================================================ ################################################################################ # # python-lockfile # ################################################################################ PYTHON_LOCKFILE_VERSION = 0.12.2 PYTHON_LOCKFILE_SOURCE = lockfile-$(PYTHON_LOCKFILE_VERSION).tar.gz PYTHON_LOCKFILE_SITE = https://files.pythonhosted.org/packages/17/47/72cb04a58a35ec495f96984dddb48232b551aafb95bde614605b754fe6f7 PYTHON_LOCKFILE_SETUP_TYPE = setuptools PYTHON_LOCKFILE_LICENSE = MIT PYTHON_LOCKFILE_LICENSE_FILES = LICENSE PYTHON_LOCKFILE_DEPENDENCIES = host-python-pbr $(eval $(python-package)) ================================================ FILE: package/python-logbook/Config.in ================================================ config BR2_PACKAGE_PYTHON_LOGBOOK bool "python-logbook" select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 help A logging replacement for Python. http://logbook.pocoo.org/ ================================================ FILE: package/python-logbook/python-logbook.hash ================================================ # md5, sha256 from https://pypi.org/pypi/logbook/json md5 719970ea22dd274797bb4328161d700f Logbook-1.5.3.tar.gz sha256 66f454ada0f56eae43066f604a222b09893f98c1adc18df169710761b8f32fe8 Logbook-1.5.3.tar.gz # Locally computed sha256 checksums sha256 2ca266337cc6947578654ab0dd6438de4d01fa78b2e6eb554b09757df1178f98 LICENSE ================================================ FILE: package/python-logbook/python-logbook.mk ================================================ ################################################################################ # # python-logbook # ################################################################################ PYTHON_LOGBOOK_VERSION = 1.5.3 PYTHON_LOGBOOK_SOURCE = Logbook-$(PYTHON_LOGBOOK_VERSION).tar.gz PYTHON_LOGBOOK_SITE = https://files.pythonhosted.org/packages/2f/d9/16ac346f7c0102835814cc9e5b684aaadea101560bb932a2403bd26b2320 PYTHON_LOGBOOK_SETUP_TYPE = setuptools PYTHON_LOGBOOK_LICENSE = BSD-3-Clause PYTHON_LOGBOOK_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-logstash/Config.in ================================================ config BR2_PACKAGE_PYTHON_LOGSTASH bool "python-logstash" help Python logging handler for Logstash. https://github.com/vklochan/python-logstash ================================================ FILE: package/python-logstash/python-logstash.hash ================================================ # md5, sha256 from https://pypi.org/pypi/python-logstash/json md5 26fafa0ea306025fb7644d70cb38982a python-logstash-0.4.6.tar.gz sha256 10943e5df83f592b4d61b63ad1afff855ccc8c9467f78718f0a59809ba1fe68c python-logstash-0.4.6.tar.gz # Locally computed sha256 checksums sha256 fea6a5c634ac9d9e047151675adc197c16f45bfba3c26ab113f48fb9fa717fff LICENSE ================================================ FILE: package/python-logstash/python-logstash.mk ================================================ ################################################################################ # # python-logstash # ################################################################################ PYTHON_LOGSTASH_VERSION = 0.4.6 PYTHON_LOGSTASH_SITE = https://files.pythonhosted.org/packages/4e/8d/7ff2e8e8e2613e7bb7654790480bb4cf51a55721371adbb631b16cb16dce PYTHON_LOGSTASH_SETUP_TYPE = distutils PYTHON_LOGSTASH_LICENSE = MIT PYTHON_LOGSTASH_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-lxml/Config.in ================================================ config BR2_PACKAGE_PYTHON_LXML bool "python-lxml" select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_LIBXSLT select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 help The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt. http://lxml.de/ ================================================ FILE: package/python-lxml/Config.in.host ================================================ config BR2_PACKAGE_HOST_PYTHON_LXML bool "host python-lxml" help The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt. http://lxml.de/ ================================================ FILE: package/python-lxml/python-lxml.hash ================================================ # Locally computed sha256 39b78571b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468 lxml-4.6.3.tar.gz sha256 41d49dd406aa0e1548a6d5f21a30d6bf638b3cd96eb7289dd348d83ed2e40392 LICENSES.txt sha256 69edb445c1335a8312d4c09271847e9956d84f0d9f724d125340cc3fad767b2a doc/licenses/BSD.txt sha256 0497ae8138811ef4466ede653bab7a59feb3d3c14f9ed50fc33a00aeb5bec32e doc/licenses/elementtree.txt sha256 56c5b13f28b78958890c36e3249c34c169041e42ebcfdce8080f3324ba2bf4de src/lxml/isoschematron/resources/rng/iso-schematron.rng ================================================ FILE: package/python-lxml/python-lxml.mk ================================================ ################################################################################ # # python-lxml # ################################################################################ PYTHON_LXML_VERSION = 4.6.3 PYTHON_LXML_SITE = https://files.pythonhosted.org/packages/e5/21/a2e4517e3d216f0051687eea3d3317557bde68736f038a3b105ac3809247 PYTHON_LXML_SOURCE = lxml-$(PYTHON_LXML_VERSION).tar.gz # Not including the GPL, because it is used only for the test scripts. PYTHON_LXML_LICENSE = BSD-3-Clause, Others PYTHON_LXML_LICENSE_FILES = \ LICENSES.txt \ doc/licenses/BSD.txt \ doc/licenses/elementtree.txt \ src/lxml/isoschematron/resources/rng/iso-schematron.rng PYTHON_LXML_CPE_ID_VENDOR = lxml PYTHON_LXML_CPE_ID_PRODUCT = lxml # python-lxml can use either setuptools, or distutils as a fallback. # So, we use setuptools. PYTHON_LXML_SETUP_TYPE = setuptools PYTHON_LXML_DEPENDENCIES = libxml2 libxslt zlib HOST_PYTHON_LXML_DEPENDENCIES = host-libxml2 host-libxslt host-zlib # python-lxml needs these scripts in order to properly detect libxml2 and # libxslt compiler and linker flags PYTHON_LXML_BUILD_OPTS = \ --xslt-config=$(STAGING_DIR)/usr/bin/xslt-config \ --xml2-config=$(STAGING_DIR)/usr/bin/xml2-config HOST_PYTHON_LXML_BUILD_OPTS = \ --xslt-config=$(HOST_DIR)/bin/xslt-config \ --xml2-config=$(HOST_DIR)/bin/xml2-config $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-m2crypto/Config.in ================================================ config BR2_PACKAGE_PYTHON_M2CRYPTO bool "python-m2crypto" select BR2_PACKAGE_OPENSSL 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_TYPING if BR2_PACKAGE_PYTHON # runtime help M2Crypto: A Python crypto and SSL toolkit. https://gitlab.com/m2crypto/m2crypto ================================================ FILE: package/python-m2crypto/python-m2crypto.hash ================================================ # md5, sha256 from https://pypi.org/pypi/m2crypto/json md5 8f39bfac730b6567e0c2179d15318c60 M2Crypto-0.38.0.tar.gz sha256 99f2260a30901c949a8dc6d5f82cd5312ffb8abc92e76633baf231bbbcb2decb M2Crypto-0.38.0.tar.gz # Locally computed sha256 checksums sha256 4eca478396f4b2b020729a111fce3f096456d74500bfd8f2b0388c3c69f997c0 LICENCE ================================================ FILE: package/python-m2crypto/python-m2crypto.mk ================================================ ################################################################################ # # python-m2crypto # ################################################################################ PYTHON_M2CRYPTO_VERSION = 0.38.0 PYTHON_M2CRYPTO_SOURCE = M2Crypto-$(PYTHON_M2CRYPTO_VERSION).tar.gz PYTHON_M2CRYPTO_SITE = https://files.pythonhosted.org/packages/2c/52/c35ec79dd97a8ecf6b2bbd651df528abb47705def774a4a15b99977274e8 PYTHON_M2CRYPTO_SETUP_TYPE = setuptools PYTHON_M2CRYPTO_LICENSE = MIT PYTHON_M2CRYPTO_LICENSE_FILES = LICENCE PYTHON_M2CRYPTO_CPE_ID_VENDOR = m2crypto_project PYTHON_M2CRYPTO_CPE_ID_PRODUCT = m2crypto PYTHON_M2CRYPTO_DEPENDENCIES = openssl host-swig PYTHON_M2CRYPTO_BUILD_OPTS = --openssl=$(STAGING_DIR)/usr $(eval $(python-package)) ================================================ FILE: package/python-m2r/Config.in ================================================ config BR2_PACKAGE_PYTHON_M2R bool "python-m2r" select BR2_PACKAGE_PYTHON_MISTUNE # runtime select BR2_PACKAGE_PYTHON_DOCUTILS # runtime help Markdown to reStructuredText converter. https://github.com/miyakogi/m2r ================================================ FILE: package/python-m2r/python-m2r.hash ================================================ # md5, sha256 from https://pypi.org/pypi/m2r/json md5 8bdb45c19e2b59bb5ffb9a0348e81ad8 m2r-0.2.1.tar.gz sha256 bf90bad66cda1164b17e5ba4a037806d2443f2a4d5ddc9f6a5554a0322aaed99 m2r-0.2.1.tar.gz # Locally computed sha256 checksums sha256 28728ec0ecbd8c171ebaeccebf69e3961282fd81f06abc7424c65546b6ae6f27 LICENSE ================================================ FILE: package/python-m2r/python-m2r.mk ================================================ ################################################################################ # # python-m2r # ################################################################################ PYTHON_M2R_VERSION = 0.2.1 PYTHON_M2R_SOURCE = m2r-$(PYTHON_M2R_VERSION).tar.gz PYTHON_M2R_SITE = https://files.pythonhosted.org/packages/39/e7/9fae11a45f5e1a3a21d8a98d02948e597c4afd7848a0dbe1a1ebd235f13e PYTHON_M2R_SETUP_TYPE = setuptools PYTHON_M2R_LICENSE = MIT PYTHON_M2R_LICENSE_FILES = LICENSE HOST_PYTHON_M2R_DEPENDENCIES = host-python-docutils host-python-mistune $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-mad/Config.in ================================================ config BR2_PACKAGE_PYTHON_MAD bool "python-mad" depends on BR2_PACKAGE_PYTHON select BR2_PACKAGE_LIBMAD help python-mad is a Python binding for the MAD library, a high-quality integer-only MPEG decoder. http://spacepants.org/src/pymad/ ================================================ FILE: package/python-mad/python-mad.hash ================================================ # locally computed sha256 1c9fc529b78de7d26e9e47cf182c9f8bf43838d8f62a9c1773540d57f5ebc522 pymad-0.6.tar.gz sha256 d245807f90032872d1438d741ed21e2490e1175dc8aa3afa5ddb6c8e529b58e5 COPYING ================================================ FILE: package/python-mad/python-mad.mk ================================================ ################################################################################ # # python-mad # ################################################################################ PYTHON_MAD_VERSION = 0.6 PYTHON_MAD_SOURCE = pymad-$(PYTHON_MAD_VERSION).tar.gz PYTHON_MAD_SITE = http://spacepants.org/src/pymad/download PYTHON_MAD_SETUP_TYPE = distutils PYTHON_MAD_LICENSE = GPL-2.0+ PYTHON_MAD_LICENSE_FILES = COPYING PYTHON_MAD_DEPENDENCIES = libmad ifeq ($(BR2_ENDIAN),"LITTLE") PYTHON_MAD_ENDIAN = little else PYTHON_MAD_ENDIAN = big endif define PYTHON_MAD_CONFIGURE_CMDS echo "endian = $(PYTHON_MAD_ENDIAN)" > $(@D)/Setup echo "mad_libs = mad" >> $(@D)/Setup echo "mad_lib_dir = $(STAGING_DIR)/usr/lib" >> $(@D)/Setup echo "mad_include_dir = $(STAGING_DIR)/usr/include" >> $(@D)/Setup endef $(eval $(python-package)) ================================================ FILE: package/python-mako/Config.in ================================================ config BR2_PACKAGE_PYTHON_MAKO bool "python-mako" help Mako is a template library written in Python. It provides a familiar, non-XML syntax which compiles into Python modules for maximum performance. https://pypi.python.org/pypi/Mako ================================================ FILE: package/python-mako/python-mako.hash ================================================ # md5, sha256 from https://pypi.org/pypi/mako/json md5 409bdc38e9ddda5eada61fb092cb12fd Mako-1.1.5.tar.gz sha256 169fa52af22a91900d852e937400e79f535496191c63712e3b9fda5a9bed6fc3 Mako-1.1.5.tar.gz # Locally computed sha256 checksums sha256 47cd0d41b1092f9161cfb629ed15e5cea185144710ff4633a4281ef088ff5de7 LICENSE ================================================ FILE: package/python-mako/python-mako.mk ================================================ ################################################################################ # # python-mako # ################################################################################ PYTHON_MAKO_VERSION = 1.1.5 PYTHON_MAKO_SOURCE = Mako-$(PYTHON_MAKO_VERSION).tar.gz PYTHON_MAKO_SITE = https://files.pythonhosted.org/packages/d1/42/ff293411e980debfc647be9306d89840c8b82ea24571b014f1a35b2ad80f PYTHON_MAKO_SETUP_TYPE = setuptools PYTHON_MAKO_LICENSE = MIT PYTHON_MAKO_LICENSE_FILES = LICENSE HOST_PYTHON_MAKO_NEEDS_HOST_PYTHON = python3 # In host build, setup.py tries to download markupsafe if it is not installed HOST_PYTHON_MAKO_DEPENDENCIES = host-python-markupsafe $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-markdown/Config.in ================================================ config BR2_PACKAGE_PYTHON_MARKDOWN bool "python-markdown" depends on BR2_PACKAGE_PYTHON3 # runtime dependency on Python's xml module select BR2_PACKAGE_PYTHON3_PYEXPAT help This is a Python implementation of John Gruber's Markdown https://pypi.python.org/pypi/Markdown ================================================ FILE: package/python-markdown/python-markdown.hash ================================================ # md5, sha256 from https://pypi.org/pypi/markdown/json md5 b6833c6326e9164ee0c662218a75e7f0 Markdown-3.3.4.tar.gz sha256 31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49 Markdown-3.3.4.tar.gz # Locally computed sha256 sha256 6f1193cb634718e65c3a537d6e25ebd614820ec0ef693cfc12248112638d64da LICENSE.md ================================================ FILE: package/python-markdown/python-markdown.mk ================================================ ################################################################################ # # python-markdown # ################################################################################ PYTHON_MARKDOWN_VERSION = 3.3.4 PYTHON_MARKDOWN_SOURCE = Markdown-$(PYTHON_MARKDOWN_VERSION).tar.gz PYTHON_MARKDOWN_SITE = https://files.pythonhosted.org/packages/49/02/37bd82ae255bb4dfef97a4b32d95906187b7a7a74970761fca1360c4ba22 PYTHON_MARKDOWN_LICENSE = BSD-3-Clause PYTHON_MARKDOWN_LICENSE_FILES = LICENSE.md PYTHON_MARKDOWN_SETUP_TYPE = setuptools $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-markdown2/Config.in ================================================ config BR2_PACKAGE_PYTHON_MARKDOWN2 bool "python-markdown2" depends on BR2_PACKAGE_PYTHON3 help A fast and complete Python implementation of Markdown. https://github.com/trentm/python-markdown2 ================================================ FILE: package/python-markdown2/python-markdown2.hash ================================================ # md5, sha256 from https://pypi.org/pypi/markdown2/json md5 6134fce06c4783b3178a90a719fa9d91 markdown2-2.4.1.tar.gz sha256 ce9265cf179c4e07934e7b6a4b03f3edb7891e66e6d0f7017755f6064bbbe13f markdown2-2.4.1.tar.gz # Locally computed sha256 checksums sha256 f8c7c4d554409cf621b8d653dbfffb719745fd36f5c49b8305258649b403ef9c LICENSE.txt ================================================ FILE: package/python-markdown2/python-markdown2.mk ================================================ ################################################################################ # # python-markdown2 # ################################################################################ PYTHON_MARKDOWN2_VERSION = 2.4.1 PYTHON_MARKDOWN2_SOURCE = markdown2-$(PYTHON_MARKDOWN2_VERSION).tar.gz PYTHON_MARKDOWN2_SITE = https://files.pythonhosted.org/packages/fb/10/4f327f4517fa5dda90021618fe174d1f4aff3c4e06abcd7f77685a455511 PYTHON_MARKDOWN2_SETUP_TYPE = setuptools PYTHON_MARKDOWN2_LICENSE = MIT PYTHON_MARKDOWN2_LICENSE_FILES = LICENSE.txt PYTHON_MARKDOWN2_CPE_ID_VENDOR = python-markdown2_project $(eval $(python-package)) ================================================ FILE: package/python-markupsafe/Config.in ================================================ config BR2_PACKAGE_PYTHON_MARKUPSAFE bool "python-markupsafe" depends on BR2_PACKAGE_PYTHON3 help MarkupSafe implements a XML/HTML/XHTML Markup safe string for Python. https://github.com/mitsuhiko/markupsafe ================================================ FILE: package/python-markupsafe/python-markupsafe.hash ================================================ # md5, sha256 from https://pypi.org/pypi/markupsafe/json md5 892e0fefa3c488387e5cc0cad2daa523 MarkupSafe-2.0.1.tar.gz sha256 594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a MarkupSafe-2.0.1.tar.gz # Locally computed sha256 checksums sha256 489a8e1108509ed98a37bb983e11e0f7e1d31f0bd8f99a79c8448e7ff37d07ea LICENSE.rst ================================================ FILE: package/python-markupsafe/python-markupsafe.mk ================================================ ################################################################################ # # python-markupsafe # ################################################################################ PYTHON_MARKUPSAFE_VERSION = 2.0.1 PYTHON_MARKUPSAFE_SOURCE = MarkupSafe-$(PYTHON_MARKUPSAFE_VERSION).tar.gz PYTHON_MARKUPSAFE_SITE = https://files.pythonhosted.org/packages/bf/10/ff66fea6d1788c458663a84d88787bae15d45daa16f6b3ef33322a51fc7e PYTHON_MARKUPSAFE_SETUP_TYPE = setuptools PYTHON_MARKUPSAFE_LICENSE = BSD-3-Clause PYTHON_MARKUPSAFE_LICENSE_FILES = LICENSE.rst HOST_PYTHON_MARKUPSAFE_NEEDS_HOST_PYTHON = python3 $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-marshmallow/Config.in ================================================ config BR2_PACKAGE_PYTHON_MARSHMALLOW bool "python-marshmallow" depends on BR2_PACKAGE_PYTHON3 help A lightweight library for converting complex objects to and from simple Python datatypes. https://github.com/marshmallow-code/marshmallow ================================================ FILE: package/python-marshmallow/python-marshmallow.hash ================================================ sha256 ea2a241f2ea69bb0863f2c00b907a8e22d7dd8b6d5b9960135906037c9dd7068 marshmallow-3.0.0rc5.tar.gz ================================================ FILE: package/python-marshmallow/python-marshmallow.mk ================================================ ################################################################################ # # python-marshmallow # ################################################################################ PYTHON_MARSHMALLOW_VERSION = 3.0.0rc5 PYTHON_MARSHMALLOW_SOURCE = marshmallow-$(PYTHON_MARSHMALLOW_VERSION).tar.gz PYTHON_MARSHMALLOW_SITE = https://files.pythonhosted.org/packages/71/78/b27626d937534d513b7de5a3210c071bc2de0721bdc72594e7d9d42beea2 PYTHON_MARSHMALLOW_SETUP_TYPE = setuptools PYTHON_MARSHMALLOW_LICENSE = Apache-2.0 PYTHON_MARSHMALLOW_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-marshmallow-peewee/Config.in ================================================ config BR2_PACKAGE_PYTHON_MARSHMALLOW_PEEWEE bool "python-marshmallow-peewee" depends on BR2_PACKAGE_PYTHON3 help Peewee integration with the marshmallow (de)serialization library. https://github.com/klen/marshmallow-peewee ================================================ FILE: package/python-marshmallow-peewee/python-marshmallow-peewee.hash ================================================ sha256 13274ee3931a126caf302244297e50e27bcc66e59776400d736428cfad098c3e Marshmallow-Peewee-2.3.0.tar.gz ================================================ FILE: package/python-marshmallow-peewee/python-marshmallow-peewee.mk ================================================ ################################################################################ # # python-marshmallow-peewee # ################################################################################ PYTHON_MARSHMALLOW_PEEWEE_VERSION = 2.3.0 PYTHON_MARSHMALLOW_PEEWEE_SOURCE = Marshmallow-Peewee-$(PYTHON_MARSHMALLOW_PEEWEE_VERSION).tar.gz PYTHON_MARSHMALLOW_PEEWEE_SITE = https://files.pythonhosted.org/packages/55/de/880e245416171d3fcc20cf47562d17ef7ce81bfbf727ec0e268c06264bde PYTHON_MARSHMALLOW_PEEWEE_SETUP_TYPE = setuptools PYTHON_MARSHMALLOW_PEEWEE_LICENSE = Apache-2.0 PYTHON_MARSHMALLOW_PEEWEE_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-matplotlib/Config.in ================================================ config BR2_PACKAGE_PYTHON_MATPLOTLIB bool "python-matplotlib" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy select BR2_PACKAGE_FREETYPE # runtime select BR2_PACKAGE_LIBPNG # runtime select BR2_PACKAGE_PYTHON_CERTIFI # runtime select BR2_PACKAGE_PYTHON_CYCLER select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON_DATEUTIL # runtime select BR2_PACKAGE_PYTHON_KIWISOLVER # runtime select BR2_PACKAGE_PYTHON_NUMPY # runtime select BR2_PACKAGE_PYTHON_PYPARSING # runtime select BR2_PACKAGE_PYTHON3_ZLIB # runtime select BR2_PACKAGE_QHULL select BR2_PACKAGE_ZLIB # runtime help Matplotlib strives to produce publication quality 2D graphics for interactive graphing, scientific publishing, user interface development and web application servers targeting multiple user interfaces and hardcopy output formats. https://matplotlib.org/ if BR2_PACKAGE_PYTHON_MATPLOTLIB config BR2_PACKAGE_PYTHON_MATPLOTLIB_QT bool "qt display" depends on BR2_PACKAGE_QT5 # python-pyqt5 select BR2_PACKAGE_PYTHON_PYQT5 select BR2_PACKAGE_QT5BASE_FONTCONFIG select BR2_PACKAGE_QT5BASE_WIDGETS endif comment "python-matplotlib needs a glibc or musl toolchain w/ C++" depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) || \ !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/python-matplotlib/python-matplotlib.hash ================================================ # sha256 from https://pypi.org/project/matplotlib/#files sha256 fc4f526dfdb31c9bd6b8ca06bf9fab663ca12f3ec9cdf4496fb44bc680140318 matplotlib-3.4.3.tar.gz # Locally computed sha256 checksums sha256 5a1a81ea301728c8bba2933da832c0cd62229daf20893a024ab3d53244468dbc LICENSE/LICENSE ================================================ FILE: package/python-matplotlib/python-matplotlib.mk ================================================ ################################################################################ # # python-matplotlib # ################################################################################ PYTHON_MATPLOTLIB_VERSION = 3.4.3 PYTHON_MATPLOTLIB_SOURCE = matplotlib-$(PYTHON_MATPLOTLIB_VERSION).tar.gz PYTHON_MATPLOTLIB_SITE = https://files.pythonhosted.org/packages/21/37/197e68df384ff694f78d687a49ad39f96c67b8d75718bc61503e1676b617 PYTHON_MATPLOTLIB_LICENSE = Python-2.0 PYTHON_MATPLOTLIB_LICENSE_FILES = LICENSE/LICENSE PYTHON_MATPLOTLIB_DEPENDENCIES = \ freetype \ host-pkgconf \ host-python-certifi \ host-python-numpy \ libpng \ python-cycler \ qhull PYTHON_MATPLOTLIB_SETUP_TYPE = setuptools ifeq ($(BR2_PACKAGE_PYTHON_MATPLOTLIB_QT),y) PYTHON_MATPLOTLIB_DEPENDENCIES += python-pyqt5 endif define PYTHON_MATPLOTLIB_COPY_SETUP_CFG cp $(PYTHON_MATPLOTLIB_PKGDIR)/setup.cfg $(@D)/setup.cfg endef PYTHON_MATPLOTLIB_PRE_CONFIGURE_HOOKS += PYTHON_MATPLOTLIB_COPY_SETUP_CFG $(eval $(python-package)) ================================================ FILE: package/python-matplotlib/setup.cfg ================================================ [libs] # Disable LTO to prevent the following error: # Relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_ZSt3hexRSt8ios_base' # which may bind externally can not be used when making a shared object; # recompile with -fPIC enable_lto = False # Freetype and qhull are provided by Buildroot system_freetype = True system_qhull = True ================================================ FILE: package/python-mbstrdecoder/Config.in ================================================ config BR2_PACKAGE_PYTHON_MBSTRDECODER bool "python-mbstrdecoder" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_CHARDET # runtime help multi-byte character string decoder. https://github.com/thombashi/mbstrdecoder ================================================ FILE: package/python-mbstrdecoder/python-mbstrdecoder.hash ================================================ # md5, sha256 from https://pypi.org/pypi/mbstrdecoder/json md5 b32ff478a38730a8ab0b884fe162cc41 mbstrdecoder-1.1.0.tar.gz sha256 f4dfd549e424ad8dfc985e6af8b55cb4ec0c208782f610d57439fe6a9a44c244 mbstrdecoder-1.1.0.tar.gz # Locally computed sha256 checksums sha256 7588265082eed5e9f4afd5090c57e610b740ec547b16aaaab739ba07c5eefb15 LICENSE ================================================ FILE: package/python-mbstrdecoder/python-mbstrdecoder.mk ================================================ ################################################################################ # # python-mbstrdecoder # ################################################################################ PYTHON_MBSTRDECODER_VERSION = 1.1.0 PYTHON_MBSTRDECODER_SOURCE = mbstrdecoder-$(PYTHON_MBSTRDECODER_VERSION).tar.gz PYTHON_MBSTRDECODER_SITE = https://files.pythonhosted.org/packages/6c/10/f82ba5a91489c91bf6adaa0e1aca38a7ab2d1d7d80195a5f6ad8c2ff387a PYTHON_MBSTRDECODER_SETUP_TYPE = setuptools PYTHON_MBSTRDECODER_LICENSE = MIT PYTHON_MBSTRDECODER_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-mimeparse/Config.in ================================================ config BR2_PACKAGE_PYTHON_MIMEPARSE bool "python-mimeparse" help A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges. https://github.com/dbtsai/python-mimeparse ================================================ FILE: package/python-mimeparse/python-mimeparse.hash ================================================ # md5, sha256 from https://pypi.org/pypi/python-mimeparse/json md5 a32ae1df93be1ddb581d1c0fa124bab4 python-mimeparse-1.6.0.tar.gz sha256 76e4b03d700a641fd7761d3cd4fdbbdcd787eade1ebfac43f877016328334f78 python-mimeparse-1.6.0.tar.gz # Locally computed sha256 checksums sha256 89807acf2309bd285f033404ee78581602f3cd9b819a16ac2f0e5f60ff4a473e LICENSE ================================================ FILE: package/python-mimeparse/python-mimeparse.mk ================================================ ################################################################################ # # python-mimeparse # ################################################################################ PYTHON_MIMEPARSE_VERSION = 1.6.0 PYTHON_MIMEPARSE_SITE = https://files.pythonhosted.org/packages/0f/40/ac5f9e44a55b678c3cd881b4c3376e5b002677dbeab6fb3a50bac5d50d29 PYTHON_MIMEPARSE_SETUP_TYPE = setuptools PYTHON_MIMEPARSE_LICENSE = MIT PYTHON_MIMEPARSE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-mistune/Config.in ================================================ config BR2_PACKAGE_PYTHON_MISTUNE bool "python-mistune" help The fastest markdown parser in pure Python with renderer features, inspired by marked. https://pypi.python.org/pypi/mistune ================================================ FILE: package/python-mistune/python-mistune.hash ================================================ # md5, sha256 from https://pypi.org/pypi/mistune/json md5 fb6ab174ece938dea09f8b2adad771e4 mistune-0.8.4.tar.gz sha256 59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e mistune-0.8.4.tar.gz # Locally computed sha256 checksums sha256 0c5259c3dd0a7c46f4835221645f62a0638c9b9faa02af08676e8069e1ff964b LICENSE ================================================ FILE: package/python-mistune/python-mistune.mk ================================================ ################################################################################ # # python-mistune # ################################################################################ PYTHON_MISTUNE_VERSION = 0.8.4 PYTHON_MISTUNE_SOURCE = mistune-$(PYTHON_MISTUNE_VERSION).tar.gz PYTHON_MISTUNE_SITE = https://files.pythonhosted.org/packages/2d/a4/509f6e7783ddd35482feda27bc7f72e65b5e7dc910eca4ab2164daf9c577 PYTHON_MISTUNE_LICENSE = BSD-3-Clause PYTHON_MISTUNE_LICENSE_FILES = LICENSE PYTHON_MISTUNE_SETUP_TYPE = setuptools $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-mock/Config.in ================================================ config BR2_PACKAGE_PYTHON_MOCK bool "python-mock" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 help mock is a library for testing in Python. It allows you to replace parts of your system under test with mock objects and make assertions about how they have been used. https://github.com/testing-cabal/mock ================================================ FILE: package/python-mock/python-mock.hash ================================================ sha256 83657d894c90d5681d62155c82bda9c1187827525880eda8ff5df4ec813437c3 mock-3.0.5.tar.gz ================================================ FILE: package/python-mock/python-mock.mk ================================================ ################################################################################ # # python-mock # ################################################################################ PYTHON_MOCK_VERSION = 3.0.5 PYTHON_MOCK_SOURCE = mock-$(PYTHON_MOCK_VERSION).tar.gz PYTHON_MOCK_SITE = https://files.pythonhosted.org/packages/2e/ab/4fe657d78b270aa6a32f027849513b829b41b0f28d9d8d7f8c3d29ea559a PYTHON_MOCK_SETUP_TYPE = setuptools PYTHON_MOCK_LICENSE = Apache-2.0 PYTHON_MOCK_LICENSE_FILES = LICENSE.txt PYTHON_MOCK_DEPENDENCIES = host-python-pbr $(eval $(python-package)) ================================================ FILE: package/python-modbus-tk/Config.in ================================================ config BR2_PACKAGE_PYTHON_MODBUS_TK bool "python-modbus-tk" select BR2_PACKAGE_PYTHON_SERIAL # runtime help Implementation of modbus protocol in python. https://github.com/ljean/modbus-tk/ ================================================ FILE: package/python-modbus-tk/python-modbus-tk.hash ================================================ # sha256 from https://pypi.org/pypi/modbus-tk/json sha256 893514bbd8c92118d20a19979e0239e7cb2a63f8f1795a0271e57def09d11770 modbus_tk-1.1.2.tar.gz # Locally computed sha256 checksums sha256 3b6a7f9c478ac1982e86cdadb45eb4788241b95839500eb26839d5053b74a24a license.txt sha256 aa7ca42152a13db6a27b31944f99851efc3b9ee813912ff21d7d6ceadca62e6f copying.txt ================================================ FILE: package/python-modbus-tk/python-modbus-tk.mk ================================================ ################################################################################ # # python-modbus-tk # ################################################################################ PYTHON_MODBUS_TK_VERSION = 1.1.2 PYTHON_MODBUS_TK_SOURCE = modbus_tk-$(PYTHON_MODBUS_TK_VERSION).tar.gz PYTHON_MODBUS_TK_SITE = https://files.pythonhosted.org/packages/ce/e9/30d86eb912bf868b8c97698b5747f10cf72dc26c674fd030249bc3275484 PYTHON_MODBUS_TK_SETUP_TYPE = setuptools PYTHON_MODBUS_TK_LICENSE = LGPL-2.1+ PYTHON_MODBUS_TK_LICENSE_FILES = license.txt copying.txt $(eval $(python-package)) ================================================ FILE: package/python-more-itertools/Config.in ================================================ config BR2_PACKAGE_PYTHON_MORE_ITERTOOLS bool "python-more-itertools" depends on BR2_PACKAGE_PYTHON3 help More routines for operating on iterables, beyond itertools. https://github.com/more-itertools/more-itertools ================================================ FILE: package/python-more-itertools/python-more-itertools.hash ================================================ # md5, sha256 from https://pypi.org/pypi/more-itertools/json md5 9930552c4f7eedc00193673d5f7f0f19 more-itertools-8.10.0.tar.gz sha256 1debcabeb1df793814859d64a81ad7cb10504c24349368ccf214c664c474f41f more-itertools-8.10.0.tar.gz # Locally computed sha256 checksums sha256 09f1c8c9e941af3e584d59641ea9b87d83c0cb0fd007eb5ef391a7e2643c1a46 LICENSE ================================================ FILE: package/python-more-itertools/python-more-itertools.mk ================================================ ################################################################################ # # python-more-itertools # ################################################################################ PYTHON_MORE_ITERTOOLS_VERSION = 8.10.0 PYTHON_MORE_ITERTOOLS_SOURCE = more-itertools-$(PYTHON_MORE_ITERTOOLS_VERSION).tar.gz PYTHON_MORE_ITERTOOLS_SITE = https://files.pythonhosted.org/packages/8a/f7/93cf3c81629c95f6f40e509f7cd63985a6ddd829181a66c1c8ef101e55f2 PYTHON_MORE_ITERTOOLS_SETUP_TYPE = setuptools PYTHON_MORE_ITERTOOLS_LICENSE = MIT PYTHON_MORE_ITERTOOLS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-msgfy/Config.in ================================================ config BR2_PACKAGE_PYTHON_MSGFY bool "python-msgfy" depends on BR2_PACKAGE_PYTHON3 help msgfy is a Python library for convert Exception instance to a human-readable error message. https://github.com/thombashi/msgfy ================================================ FILE: package/python-msgfy/python-msgfy.hash ================================================ # md5, sha256 from https://pypi.org/pypi/msgfy/json md5 4a3d8ac9908acd5f661a58b12f9e0d17 msgfy-0.1.0.tar.gz sha256 474c08302cd56ccee1300ac7976a01ebd1e42716fc9bcd947d39a311a15b7012 msgfy-0.1.0.tar.gz # Locally computed sha256 checksums sha256 fcfe96f8fb1bf3478a51c828e7f7afee01500ce1c2d4345d052edb858be05227 LICENSE ================================================ FILE: package/python-msgfy/python-msgfy.mk ================================================ ################################################################################ # # python-msgfy # ################################################################################ PYTHON_MSGFY_VERSION = 0.1.0 PYTHON_MSGFY_SOURCE = msgfy-$(PYTHON_MSGFY_VERSION).tar.gz PYTHON_MSGFY_SITE = https://files.pythonhosted.org/packages/24/b5/7cc6ba75b6489245f9b75f11a85202b934fa92f6c99a4fa1c639f08d68e8 PYTHON_MSGFY_SETUP_TYPE = setuptools PYTHON_MSGFY_LICENSE = MIT PYTHON_MSGFY_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-msgpack/Config.in ================================================ config BR2_PACKAGE_PYTHON_MSGPACK bool "python-msgpack" help MessagePack (http://msgpack.org/) is a fast, compact binary serialization format, suitable for similar data to JSON. This package provides a pure python library for reading and writing MessagePack data. https://pypi.python.org/pypi/msgpack-python/ ================================================ FILE: package/python-msgpack/python-msgpack.hash ================================================ # md5, sha256 from https://pypi.org/pypi/msgpack/json md5 68d5804254642905ba87ede509e68970 msgpack-1.0.2.tar.gz sha256 fae04496f5bc150eefad4e9571d1a76c55d021325dcd484ce45065ebbdd00984 msgpack-1.0.2.tar.gz # Locally computed sha256 checksums sha256 492dedba85da5872f78e6091bcd1fea474d660d35acb4dee964b8aab3f007427 COPYING ================================================ FILE: package/python-msgpack/python-msgpack.mk ================================================ ################################################################################ # # python-msgpack # ################################################################################ PYTHON_MSGPACK_VERSION = 1.0.2 PYTHON_MSGPACK_SOURCE = msgpack-$(PYTHON_MSGPACK_VERSION).tar.gz PYTHON_MSGPACK_SITE = https://files.pythonhosted.org/packages/59/04/87fc6708659c2ed3b0b6d4954f270b6e931def707b227c4554f99bd5401e PYTHON_MSGPACK_LICENSE = Apache-2.0 PYTHON_MSGPACK_LICENSE_FILES = COPYING PYTHON_MSGPACK_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-multidict/Config.in ================================================ config BR2_PACKAGE_PYTHON_MULTIDICT bool "python-multidict" depends on BR2_PACKAGE_PYTHON3 help Multidict is dict-like collection of key-value pairs where a key may occur more than once in the container. https://github.com/aio-libs/multidict ================================================ FILE: package/python-multidict/python-multidict.hash ================================================ # md5, sha256 from https://pypi.org/pypi/multidict/json md5 e28b9592289597b232f09e5cc3857f32 multidict-5.2.0.tar.gz sha256 0dd1c93edb444b33ba2274b66f63def8a327d607c6c790772f448a53b6ea59ce multidict-5.2.0.tar.gz # Locally computed sha256 checksums sha256 06a240ea10ba868fda2de58df859886961df873aa74bbab1e0f13eaf99f92b7b LICENSE ================================================ FILE: package/python-multidict/python-multidict.mk ================================================ ################################################################################ # # python-multidict # ################################################################################ PYTHON_MULTIDICT_VERSION = 5.2.0 PYTHON_MULTIDICT_SOURCE = multidict-$(PYTHON_MULTIDICT_VERSION).tar.gz PYTHON_MULTIDICT_SITE = https://files.pythonhosted.org/packages/8e/7c/e12a69795b7b7d5071614af2c691c97fbf16a2a513c66ec52dd7d0a115bb PYTHON_MULTIDICT_SETUP_TYPE = setuptools PYTHON_MULTIDICT_LICENSE = Apache-2.0 PYTHON_MULTIDICT_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-mutagen/Config.in ================================================ config BR2_PACKAGE_PYTHON_MUTAGEN bool "python-mutagen" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON3_PYEXPAT # runtime select BR2_PACKAGE_PYTHON3_ZLIB # runtime help Mutagen is a Python module to handle audio metadata. It supports ASF, FLAC, MP4, Monkey's Audio, MP3, Musepack, Ogg Opus, Ogg FLAC, Ogg Speex, Ogg Theora, Ogg Vorbis, True Audio, WavPack, OptimFROG, and AIFF audio files. All versions of ID3v2 are supported, and all standard ID3v2.4 frames are parsed. It can read Xing headers to accurately calculate the bitrate and length of MP3s. ID3 and APEv2 tags can be edited regardless of audio format. It can also manipulate Ogg streams on an individual packet/page level. https://mutagen.readthedocs.io/en/latest/ ================================================ FILE: package/python-mutagen/python-mutagen.hash ================================================ # md5, sha256 from https://pypi.org/pypi/mutagen/json md5 76e1f7fc2386813c0ff2716695fb06e1 mutagen-1.45.1.tar.gz sha256 6397602efb3c2d7baebd2166ed85731ae1c1d475abca22090b7141ff5034b3e1 mutagen-1.45.1.tar.gz # Locally computed sha256 checksums sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/python-mutagen/python-mutagen.mk ================================================ ################################################################################ # # python-mutagen # ################################################################################ PYTHON_MUTAGEN_VERSION = 1.45.1 PYTHON_MUTAGEN_SOURCE = mutagen-$(PYTHON_MUTAGEN_VERSION).tar.gz PYTHON_MUTAGEN_SITE = https://files.pythonhosted.org/packages/f3/d9/2232a4cb9a98e2d2501f7e58d193bc49c956ef23756d7423ba1bd87e386d PYTHON_MUTAGEN_LICENSE = GPL-2.0 PYTHON_MUTAGEN_LICENSE_FILES = COPYING PYTHON_MUTAGEN_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-mwclient/Config.in ================================================ config BR2_PACKAGE_PYTHON_MWCLIENT bool "python-mwclient" depends on BR2_PACKAGE_PYTHON3 # python-requests-oauthlib -> python-requests -> python-idna select BR2_PACKAGE_PYTHON_REQUESTS_OAUTHLIB # runtime select BR2_PACKAGE_PYTHON_SIX # runtime help Python client library to interface with the MediaWiki API https://github.com/mwclient/mwclient ================================================ FILE: package/python-mwclient/python-mwclient.hash ================================================ # md5, sha256 from https://pypi.org/pypi/mwclient/json md5 148bd36bfaaf591bd9c0076cbf1ed888 mwclient-0.10.1.tar.gz sha256 79363dd8d12f5e3b91b92b63152bf9dfef27da786c076a244e1f148c8dd67139 mwclient-0.10.1.tar.gz # Locally computed sha256 67689d1fd48a5adba31272eed653c12160dd3abbfe92ab056ac42a155e12e523 LICENSE.md ================================================ FILE: package/python-mwclient/python-mwclient.mk ================================================ ################################################################################ # # python-mwclient # ################################################################################ PYTHON_MWCLIENT_VERSION = 0.10.1 PYTHON_MWCLIENT_SOURCE = mwclient-$(PYTHON_MWCLIENT_VERSION).tar.gz PYTHON_MWCLIENT_SITE = https://files.pythonhosted.org/packages/97/b4/5fc70ad3286a8d8ec4b9ac01acad0f6b00c5a48d4a16b9d3be6519b7eb21 PYTHON_MWCLIENT_LICENSE = MIT PYTHON_MWCLIENT_LICENSE_FILES = LICENSE.md PYTHON_MWCLIENT_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-mwscrape/Config.in ================================================ config BR2_PACKAGE_PYTHON_MWSCRAPE bool "python-mwscrape" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_COUCHDB # runtime select BR2_PACKAGE_PYTHON_MWCLIENT # runtime select BR2_PACKAGE_PYTHON_PYLRU # runtime help Download rendered articles from MediaWiki API to CouchDB https://github.com/itkach/mwscrape ================================================ FILE: package/python-mwscrape/python-mwscrape.hash ================================================ # Locally computed sha256 2d0e6c747f6a866dedbc759f78830b3f496e8d03401a3c727d0b48735341c5b6 python-mwscrape-568ccbe6e12dd6391277df02adf724ba0e5f9197.tar.gz sha256 fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85 LICENSE.txt ================================================ FILE: package/python-mwscrape/python-mwscrape.mk ================================================ ################################################################################ # # python-mwscrape # ################################################################################ PYTHON_MWSCRAPE_VERSION = 568ccbe6e12dd6391277df02adf724ba0e5f9197 PYTHON_MWSCRAPE_SITE = $(call github,itkach,mwscrape,$(PYTHON_MWSCRAPE_VERSION)) PYTHON_MWSCRAPE_LICENSE = MPL-2.0 PYTHON_MWSCRAPE_LICENSE_FILES = LICENSE.txt PYTHON_MWSCRAPE_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-mwscrape2slob/Config.in ================================================ config BR2_PACKAGE_PYTHON_MWSCRAPE2SLOB bool "python-mwscrape2slob" depends on !BR2_BINFMT_FLAT # python-slob -> python-pyicu -> icu depends on BR2_HOST_GCC_AT_LEAST_4_9 # python-slob -> python-pyicu -> icu depends on BR2_INSTALL_LIBSTDCPP # python-slob -> python-pyicu -> icu depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # python-slob -> python-pyicu -> icu depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_COUCHDB # runtime select BR2_PACKAGE_PYTHON_CSSSELECT # runtime select BR2_PACKAGE_PYTHON_CSSUTILS # runtime select BR2_PACKAGE_PYTHON_LXML # runtime select BR2_PACKAGE_PYTHON_SLOB # runtime help A tool to create slob with content from a MediaWiki CouchDB created by mwscrape. https://github.com/itkach/mwscrape2slob comment "python-mwscrape2slob needs a toolchain w/ C++, gcc >= 4.9, host gcc >= 4.9" depends on BR2_PACKAGE_PYTHON3 && !BR2_BINFMT_FLAT depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/python-mwscrape2slob/python-mwscrape2slob.hash ================================================ # Locally computed sha256 f1c1c79526fb3e0dac1c2c43e57a38b8641672e7008c5530d4b75e864eff232a python-mwscrape2slob-e01d3e92f0a372ebd0f57390e437a28f9d3c0438.tar.gz ================================================ FILE: package/python-mwscrape2slob/python-mwscrape2slob.mk ================================================ ################################################################################ # # python-mwscrape2slob # ################################################################################ PYTHON_MWSCRAPE2SLOB_VERSION = e01d3e92f0a372ebd0f57390e437a28f9d3c0438 PYTHON_MWSCRAPE2SLOB_SITE = $(call github,itkach,mwscrape2slob,$(PYTHON_MWSCRAPE2SLOB_VERSION)) PYTHON_MWSCRAPE2SLOB_LICENSE = GPL-3.0, Apache-2.0 (MathJax), GPL (MediaWiki monobook style sheet) PYTHON_MWSCRAPE2SLOB_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-nested-dict/Config.in ================================================ config BR2_PACKAGE_PYTHON_NESTED_DICT bool "python-nested-dict" help Python dictionary with automatic and arbitrary levels of nestedness. http://pypi.python.org/pypi/nested_dict ================================================ FILE: package/python-nested-dict/python-nested-dict.hash ================================================ # md5, sha256 from https://pypi.org/pypi/nested-dict/json md5 e08e2e8de6d002f9ddda4eea5a4528c2 nested_dict-1.61.tar.gz sha256 de0fb5bac82ba7bcc23736f09373f18628ea57f92bbaa13480d23f261c41e771 nested_dict-1.61.tar.gz # Locally computed sha256 checksums sha256 c84eb6b667b91fd9b8991f500c168354eb51af5b2dd970d8ee51ce336d9aeed1 LICENSE.TXT ================================================ FILE: package/python-nested-dict/python-nested-dict.mk ================================================ ################################################################################ # # python-nested-dict # ################################################################################ PYTHON_NESTED_DICT_VERSION = 1.61 PYTHON_NESTED_DICT_SOURCE = nested_dict-$(PYTHON_NESTED_DICT_VERSION).tar.gz PYTHON_NESTED_DICT_SITE = https://files.pythonhosted.org/packages/42/d0/3b27fa65b16a2e44d793af59929fcdb3bb84b4664462ff2830105dfd9b7d PYTHON_NESTED_DICT_SETUP_TYPE = setuptools PYTHON_NESTED_DICT_LICENSE = MIT PYTHON_NESTED_DICT_LICENSE_FILES = LICENSE.TXT $(eval $(python-package)) ================================================ FILE: package/python-netaddr/Config.in ================================================ config BR2_PACKAGE_PYTHON_NETADDR bool "python-netaddr" help A network address manipulation library for Python. https://pypi.python.org/pypi/netaddr ================================================ FILE: package/python-netaddr/python-netaddr.hash ================================================ # md5 from https://pypi.python.org/pypi/netaddr/json md5 34cad578473b66ad77bc3b2a7613ed4a netaddr-0.8.0.tar.gz # Locally computed sha256 d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243 netaddr-0.8.0.tar.gz sha256 0e53de62547787462f41eefb5cee31a14f7ea767ba0362c6f9304f1742486d47 LICENSE ================================================ FILE: package/python-netaddr/python-netaddr.mk ================================================ ################################################################################ # # python-netaddr # ################################################################################ PYTHON_NETADDR_VERSION = 0.8.0 PYTHON_NETADDR_SOURCE = netaddr-$(PYTHON_NETADDR_VERSION).tar.gz PYTHON_NETADDR_SITE = https://pypi.python.org/packages/c3/3b/fe5bda7a3e927d9008c897cf1a0858a9ba9924a6b4750ec1824c9e617587 PYTHON_NETADDR_LICENSE = BSD-3-Clause PYTHON_NETADDR_LICENSE_FILES = LICENSE PYTHON_NETADDR_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-netifaces/Config.in ================================================ config BR2_PACKAGE_PYTHON_NETIFACES bool "python-netifaces" help Portable access to network interfaces from Python. http://alastairs-place.net/projects/netifaces ================================================ FILE: package/python-netifaces/python-netifaces.hash ================================================ # md5, sha256 from https://pypi.org/pypi/netifaces/json md5 3146dcb3297dd018ae5eb9a52b440419 netifaces-0.11.0.tar.gz sha256 043a79146eb2907edf439899f262b3dfe41717d34124298ed281139a8b93ca32 netifaces-0.11.0.tar.gz # Locally computed sha256 checksums sha256 b20b895164b72b9cc0170e6c0d60b14f9aaacc6862c0556eed41eaa348883705 LICENSE ================================================ FILE: package/python-netifaces/python-netifaces.mk ================================================ ################################################################################ # # python-netifaces # ################################################################################ PYTHON_NETIFACES_VERSION = 0.11.0 PYTHON_NETIFACES_SOURCE = netifaces-$(PYTHON_NETIFACES_VERSION).tar.gz PYTHON_NETIFACES_SITE = https://files.pythonhosted.org/packages/a6/91/86a6eac449ddfae239e93ffc1918cf33fd9bab35c04d1e963b311e347a73 PYTHON_NETIFACES_LICENSE = MIT PYTHON_NETIFACES_LICENSE_FILES = LICENSE PYTHON_NETIFACES_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-networkmanager/Config.in ================================================ config BR2_PACKAGE_PYTHON_NETWORKMANAGER bool "python-networkmanager" depends on BR2_PACKAGE_NETWORK_MANAGER # runtime depends on BR2_USE_WCHAR # dbus-python depends on BR2_TOOLCHAIN_HAS_THREADS # dbus-python depends on BR2_PACKAGE_DBUS # dbus-python select BR2_PACKAGE_DBUS_PYTHON # runtime select BR2_PACKAGE_PYTHON_SIX # runtime help python-networkmanager wraps NetworkManagers D-Bus interface so you can be less verbose when talking to NetworkManager from python. All interfaces have been wrapped in classes, properties are exposed as python properties and function calls are forwarded to the correct interface. https://pypi.python.org/pypi/python-networkmanager/ ================================================ FILE: package/python-networkmanager/python-networkmanager.hash ================================================ # md5 and sha256 from https://pypi.python.org/pypi/python-networkmanager/json md5 f638d854a3639fb37c0e06d1092a771e python-networkmanager-2.1.tar.gz sha256 aef1e34d98d7bec7cc368e0ca0f2e97493f9b5ebe6d7103f8f6460cfca3dc6fc python-networkmanager-2.1.tar.gz # Locally computed sha256 be40f44d54bb5e0f0eee28e957ad020a00a6e3adb0290262e92129eba1c044cf COPYING ================================================ FILE: package/python-networkmanager/python-networkmanager.mk ================================================ ################################################################################ # # python-networkmanager # ################################################################################ PYTHON_NETWORKMANAGER_VERSION = 2.1 PYTHON_NETWORKMANAGER_SITE = https://files.pythonhosted.org/packages/73/ec/2cc46290cedc99f59df3633d428dfa91d95946ca49af96fdb53514ee195f PYTHON_NETWORKMANAGER_SETUP_TYPE = setuptools PYTHON_NETWORKMANAGER_LICENSE = Zlib PYTHON_NETWORKMANAGER_LICENSE_FILES = COPYING $(eval $(python-package)) ================================================ FILE: package/python-networkx/Config.in ================================================ config BR2_PACKAGE_PYTHON_NETWORKX bool "python-networkx" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_DECORATOR # runtime help A Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. https://pypi.python.org/pypi/networkx ================================================ FILE: package/python-networkx/python-networkx.hash ================================================ # md5, sha256 from https://pypi.org/pypi/networkx/json md5 407eb28c54e08725559754ca7ab185e0 networkx-2.6.3.tar.gz sha256 c0946ed31d71f1b732b5aaa6da5a0388a345019af232ce2f49c766e2d6795c51 networkx-2.6.3.tar.gz # Locally computed sha256 checksums sha256 f9c25c92ced5a264a3fe857231205d5eb625ae367935aaf8d61cdd5087dfb90e LICENSE.txt ================================================ FILE: package/python-networkx/python-networkx.mk ================================================ ################################################################################ # # python-networkx # ################################################################################ PYTHON_NETWORKX_VERSION = 2.6.3 PYTHON_NETWORKX_SOURCE = networkx-$(PYTHON_NETWORKX_VERSION).tar.gz PYTHON_NETWORKX_SITE = https://files.pythonhosted.org/packages/97/ae/7497bc5e1c84af95e585e3f98585c9f06c627fac6340984c4243053e8f44 PYTHON_NETWORKX_LICENSE = BSD-3-Clause PYTHON_NETWORKX_LICENSE_FILES = LICENSE.txt PYTHON_NETWORKX_CPE_ID_VENDOR = python PYTHON_NETWORKX_CPE_ID_PRODUCT = networkx PYTHON_NETWORKX_SETUP_TYPE = setuptools HOST_PYTHON_NETWORKX_DEPENDENCIES = host-python-decorator HOST_PYTHON_NETWORKX_NEEDS_HOST_PYTHON = python3 $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-nfc/Config.in ================================================ config BR2_PACKAGE_PYTHON_NFC bool "python-nfc" depends on BR2_PACKAGE_PYTHON depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT help Python module for near field communication. https://launchpad.net/nfcpy comment "python-nfc needs a toolchain w/ threads, gcc >= 4.9" depends on BR2_PACKAGE_PYTHON depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/python-nfc/python-nfc.hash ================================================ # Locally computed: sha256 7ff9265e393e9e70173ecef5a1f9124e67d3b6e481c2dc3a9537b6a769ebe16f python-nfc-0.13.5.tar.gz sha256 0dc4b0a3362f197e250604567a6b4eb16bbc34c186425401e2201a193a82549f LICENSE ================================================ FILE: package/python-nfc/python-nfc.mk ================================================ ################################################################################ # # python-nfc # ################################################################################ PYTHON_NFC_VERSION = 0.13.5 PYTHON_NFC_SITE = $(call github,nfcpy,nfcpy,v$(PYTHON_NFC_VERSION)) PYTHON_NFC_DEPENDENCIES = libusb libusb-compat PYTHON_NFC_SETUP_TYPE = setuptools PYTHON_NFC_LICENSE = EUPL-1.1+ PYTHON_NFC_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-numpy/Config.in ================================================ config BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS bool # Numpy has some CPU specific code default y if BR2_arc default y if BR2_aarch64 default y if BR2_arm default y if BR2_armeb default y if BR2_i386 default y if BR2_mips default y if BR2_mipsel default y if BR2_powerpc default y if BR2_powerpc64 default y if BR2_sh default y if BR2_x86_64 config BR2_PACKAGE_PYTHON_NUMPY bool "python-numpy" depends on BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS # python-numpy needs fenv.h which is not provided by uclibc depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL help NumPy is the fundamental package for scientific computing with Python. Note that NumPy needs fenv.h fully supported by the C library. http://www.numpy.org/ comment "python-numpy needs glibc or musl" depends on BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) ================================================ FILE: package/python-numpy/python-numpy.hash ================================================ # Copied from https://github.com/numpy/numpy/releases/tag/v1.18.1 sha256 da204ce460aa4247e595b7c7189d2fb2ed5f796bc03197055de01dac61d0125e numpy-1.18.2.tar.gz # License files, locally calculated sha256 ad81d0c21843ba6ce6fe5fa3eaacb61120be70cd798c52f63df3f4c12a843f0c LICENSE.txt sha256 d3045980e80a6b39f98586c24bc7f39a7625b4b9f08ce72e367d12814743d047 numpy/core/src/multiarray/dragon4.c sha256 426a5a484480f57a295db48c2c04f47bb3274752dd82a7fd6541dfa2cb90f641 doc/sphinxext/LICENSE.txt sha256 154a8706fa0fdeff1073bf6239c4ecf51f562ab107066eef839dade1a45c824c doc/scipy-sphinx-theme/LICENSE.txt sha256 a14cc25e10d40a3aa705b7de2fb764a6535d8ee9b2db4e1724900585457dfd55 numpy/linalg/lapack_lite/LICENSE.txt sha256 badf51c7e3e7de9c7630bd069780f5c197b846ef7660b342a1e58d5553592d8e tools/npy_tempita/license.txt ================================================ FILE: package/python-numpy/python-numpy.mk ================================================ ################################################################################ # # python-numpy # ################################################################################ PYTHON_NUMPY_VERSION = 1.18.2 PYTHON_NUMPY_SOURCE = numpy-$(PYTHON_NUMPY_VERSION).tar.gz PYTHON_NUMPY_SITE = https://github.com/numpy/numpy/releases/download/v$(PYTHON_NUMPY_VERSION) PYTHON_NUMPY_LICENSE = BSD-3-Clause, BSD-2-Clause, PSF, Apache-2.0, MIT, Zlib PYTHON_NUMPY_LICENSE_FILES = LICENSE.txt doc/sphinxext/LICENSE.txt \ doc/scipy-sphinx-theme/LICENSE.txt \ numpy/linalg/lapack_lite/LICENSE.txt \ tools/npy_tempita/license.txt \ numpy/core/src/multiarray/dragon4.c PYTHON_NUMPY_SETUP_TYPE = setuptools PYTHON_NUMPY_DEPENDENCIES = host-python-cython HOST_PYTHON_NUMPY_DEPENDENCIES = host-python-cython ifeq ($(BR2_PACKAGE_LAPACK),y) PYTHON_NUMPY_DEPENDENCIES += lapack else PYTHON_NUMPY_ENV += BLAS=None LAPACK=None endif PYTHON_NUMPY_BUILD_OPTS = --fcompiler=None define PYTHON_NUMPY_CONFIGURE_CMDS -rm -f $(@D)/site.cfg echo "[DEFAULT]" >> $(@D)/site.cfg echo "library_dirs = $(STAGING_DIR)/usr/lib" >> $(@D)/site.cfg echo "include_dirs = $(STAGING_DIR)/usr/include" >> $(@D)/site.cfg endef # Some package may include few headers from NumPy, so let's install it # in the staging area. PYTHON_NUMPY_INSTALL_STAGING = YES $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-oauthlib/Config.in ================================================ config BR2_PACKAGE_PYTHON_OAUTHLIB bool "python-oauthlib" depends on BR2_PACKAGE_PYTHON3 help A generic, spec-compliant, thorough implementation of the OAuth request-signing logic. https://github.com/oauthlib/oauthlib ================================================ FILE: package/python-oauthlib/python-oauthlib.hash ================================================ # md5, sha256 from https://pypi.org/pypi/oauthlib/json md5 9201e30a4eacf3ecfa15503b241ad5e3 oauthlib-3.1.1.tar.gz sha256 8f0215fcc533dd8dd1bee6f4c412d4f0cd7297307d43ac61666389e3bc3198a3 oauthlib-3.1.1.tar.gz # Locally computed sha256 checksums sha256 3d1e12d8ac52c0b6c148af6d291f72400b8720ed16c0ac4a89868b6d14b1c939 LICENSE ================================================ FILE: package/python-oauthlib/python-oauthlib.mk ================================================ ################################################################################ # # python-oauthlib # ################################################################################ PYTHON_OAUTHLIB_VERSION = 3.1.1 PYTHON_OAUTHLIB_SOURCE = oauthlib-$(PYTHON_OAUTHLIB_VERSION).tar.gz PYTHON_OAUTHLIB_SITE = https://files.pythonhosted.org/packages/9e/84/001a3f8d9680f3b26d5e7711e13d5ff92e4b511766a72ac6b4a4e5f06796 PYTHON_OAUTHLIB_SETUP_TYPE = setuptools PYTHON_OAUTHLIB_LICENSE = BSD-3-Clause PYTHON_OAUTHLIB_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-opcua-asyncio/Config.in ================================================ config BR2_PACKAGE_PYTHON_OPCUA_ASYNCIO bool "python-opcua-asyncio" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-cryptography depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIOFILES # runtime select BR2_PACKAGE_PYTHON_CRYPTOGRAPHY # runtime select BR2_PACKAGE_PYTHON_DATEUTIL # runtime select BR2_PACKAGE_PYTHON_LXML # runtime select BR2_PACKAGE_PYTHON_PYTZ # runtime help opcua-asyncio is an asyncio-based asynchronous OPC UA client based on python-opcua, removing hacks for support of python < 3.6. https://github.com/FreeOpcUa/opcua-asyncio ================================================ FILE: package/python-opcua-asyncio/python-opcua-asyncio.hash ================================================ # Locally computed sha256 e5fab37a92162351fe40cab43df09db8a2e9f8b8a2a8f13ed680aa6f6d687ec3 opcua-asyncio-0.8.4.tar.gz sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 COPYING ================================================ FILE: package/python-opcua-asyncio/python-opcua-asyncio.mk ================================================ ################################################################################ # # python-opcua-asyncio # ################################################################################ PYTHON_OPCUA_ASYNCIO_VERSION = 0.8.4 PYTHON_OPCUA_ASYNCIO_SOURCE = opcua-asyncio-$(PYTHON_OPCUA_ASYNCIO_VERSION).tar.gz PYTHON_OPCUA_ASYNCIO_SITE = $(call github,FreeOpcUa,opcua-asyncio,$(PYTHON_OPCUA_ASYNCIO_VERSION)) PYTHON_OPCUA_ASYNCIO_SETUP_TYPE = setuptools PYTHON_OPCUA_ASYNCIO_LICENSE = LGPL-3.0+ PYTHON_OPCUA_ASYNCIO_LICENSE_FILES = COPYING $(eval $(python-package)) ================================================ FILE: package/python-packaging/Config.in ================================================ config BR2_PACKAGE_PYTHON_PACKAGING bool "python-packaging" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_PYPARSING # runtime help Core utilities for Python packages. https://github.com/pypa/packaging ================================================ FILE: package/python-packaging/python-packaging.hash ================================================ # md5, sha256 from https://pypi.org/pypi/packaging/json md5 240ba5823ed31051a1254e74c9d18d55 packaging-21.0.tar.gz sha256 7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7 packaging-21.0.tar.gz # Locally computed sha256 checksums sha256 cad1ef5bd340d73e074ba614d26f7deaca5c7940c3d8c34852e65c4909686c48 LICENSE sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 LICENSE.APACHE sha256 b70e7e9b742f1cc6f948b34c16aa39ffece94196364bc88ff0d2180f0028fac5 LICENSE.BSD ================================================ FILE: package/python-packaging/python-packaging.mk ================================================ ################################################################################ # # python-packaging # ################################################################################ PYTHON_PACKAGING_VERSION = 21.0 PYTHON_PACKAGING_SOURCE = packaging-$(PYTHON_PACKAGING_VERSION).tar.gz PYTHON_PACKAGING_SITE = https://files.pythonhosted.org/packages/df/86/aef78bab3afd461faecf9955a6501c4999933a48394e90f03cd512aad844 PYTHON_PACKAGING_SETUP_TYPE = setuptools PYTHON_PACKAGING_LICENSE = Apache-2.0 or BSD-2-Clause PYTHON_PACKAGING_LICENSE_FILES = LICENSE LICENSE.APACHE LICENSE.BSD $(eval $(python-package)) ================================================ FILE: package/python-paho-mqtt/Config.in ================================================ config BR2_PACKAGE_PYTHON_PAHO_MQTT bool "python-paho-mqtt" help The Paho Python Client provides a client class with support for both MQTT v3.1 and v3.1.1 on Python 2.7 or 3.x. It also provides some helper functions to make publishing messages to an MQTT server very straightforward. https://pypi.python.org/pypi/paho-mqtt ================================================ FILE: package/python-paho-mqtt/python-paho-mqtt.hash ================================================ # locally computed sha256 6e35c1be242a901fc9c00bad7d37b5cc4a497f398dfceb4ed0d8018a959be650 python-paho-mqtt-1.6.1.tar.gz sha256 66408b049249c3bdb0ba1ed285f5422ce67e371d40151bebd4d806af454ffe7c LICENSE.txt sha256 e8cf7d54ea46c19aba793983889b7f7425e1ebfcaaccec764a7db091646e203c edl-v10 sha256 8c349f80764d0648e645f41ef23772a70c995a0924b5235f735f4a3d09df127c epl-v20 ================================================ FILE: package/python-paho-mqtt/python-paho-mqtt.mk ================================================ ################################################################################ # # python-paho-mqtt # ################################################################################ PYTHON_PAHO_MQTT_VERSION = 1.6.1 PYTHON_PAHO_MQTT_SITE = $(call github,eclipse,paho.mqtt.python,v$(PYTHON_PAHO_MQTT_VERSION)) PYTHON_PAHO_MQTT_LICENSE = EPL-2.0, EDLv1.0 PYTHON_PAHO_MQTT_LICENSE_FILES = LICENSE.txt epl-v20 edl-v10 PYTHON_PAHO_MQTT_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pam/0001-dealloc.patch ================================================ [PATCH] fix two bugs in the PAM object deallocation Fixes https://bugzilla.redhat.com/show_bug.cgi?id=658955 Downloaded from: http://pkgs.fedoraproject.org/cgit/PyPAM.git/plain/PyPAM-0.5.0-dealloc.patch Signed-off-by: Peter Korsgaard diff -up PyPAM-0.5.0/PAMmodule.c.dealloc PyPAM-0.5.0/PAMmodule.c --- PyPAM-0.5.0/PAMmodule.c.dealloc 2011-01-17 22:48:22.000000000 +0100 +++ PyPAM-0.5.0/PAMmodule.c 2011-01-18 21:24:59.000000000 +0100 @@ -538,10 +538,11 @@ static void PyPAM_dealloc(PyPAMObject *s free(self->service); free(self->user); free(self->conv); - pam_end(self->pamh, PAM_SUCCESS); + if (self->pamh) + pam_end(self->pamh, PAM_SUCCESS); dlclose(self->dlh2); dlclose(self->dlh1); - PyMem_DEL(self); + PyObject_Del(self); } static PyObject * PyPAM_getattr(PyPAMObject *self, char *name) ================================================ FILE: package/python-pam/0002-nofree.patch ================================================ [PATCH] deallocate the conversation response only in case of error Fixes https://bugzilla.redhat.com/show_bug.cgi?id=679714 Downloaded from: http://pkgs.fedoraproject.org/cgit/PyPAM.git/plain/PyPAM-0.5.0-nofree.patch Signed-off-by: Peter Korsgaard diff --git a/PAMmodule.c b/PAMmodule.c index 03cb799..a7ff8a5 100644 --- a/PAMmodule.c +++ b/PAMmodule.c @@ -24,8 +24,6 @@ typedef struct { char *service; char *user; PyObject *callback; - struct pam_response *response_data; - int response_len; PyObject *user_data; void *dlh1, *dlh2; } PyPAMObject; @@ -54,15 +52,6 @@ static int PyPAM_conv(int num_msg, const struct pam_message **msg, Py_INCREF(self); - if (NULL != self->response_data) { - for (int i = 0; i < self->response_len; i++) { - free(self->response_data[0].resp); - } - free(self->response_data); - self->response_data = NULL; - self->response_len = 0; - } - PyObject* msgList = PyList_New(num_msg); for (int i = 0; i < num_msg; i++) { @@ -92,6 +81,10 @@ static int PyPAM_conv(int num_msg, const struct pam_message **msg, char* resp_text; int resp_retcode = 0; if (!PyArg_ParseTuple(respTuple, "si", &resp_text, &resp_retcode)) { + while (i > 0) { + free((--spr)->resp); + --i; + } free(*resp); Py_DECREF(respList); return PAM_CONV_ERR; @@ -100,10 +93,6 @@ static int PyPAM_conv(int num_msg, const struct pam_message **msg, spr->resp_retcode = resp_retcode; Py_DECREF(respTuple); } - - // Save this so we can free it later. - self->response_data = *resp; - self->response_len = PyList_Size(respList); Py_DECREF(respList); @@ -144,8 +133,6 @@ static PyObject * PyPAM_pam(PyObject *self, PyObject *args) p->user = NULL; Py_INCREF(Py_None); p->callback = Py_None; - p->response_data = NULL; - p->response_len = 0; Py_INCREF(Py_None); p->user_data = Py_None; ================================================ FILE: package/python-pam/0003-memory-errors-CVE2012-1502.patch ================================================ [PATCH] Fix Double Free Corruption (CVE2012-1502) Downloaded from: http://pkgs.fedoraproject.org/cgit/PyPAM.git/plain/PyPAM-0.5.0-memory-errors.patch For details, see: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1502 Signed-off-by: Peter Korsgaard diff -up PyPAM-0.5.0/PAMmodule.c.memory PyPAM-0.5.0/PAMmodule.c --- PyPAM-0.5.0/PAMmodule.c.memory 2012-05-07 17:22:54.503914026 +0200 +++ PyPAM-0.5.0/PAMmodule.c 2012-05-07 17:23:15.644381942 +0200 @@ -37,33 +37,48 @@ static void PyPAM_Err(PyPAMObject *self, err_msg = pam_strerror(self->pamh, result); error = Py_BuildValue("(si)", err_msg, result); - Py_INCREF(PyPAM_Error); PyErr_SetObject(PyPAM_Error, error); + Py_XDECREF(error); } static int PyPAM_conv(int num_msg, const struct pam_message **msg, struct pam_response **resp, void *appdata_ptr) { - PyObject *args; - + PyObject *args, *msgList, *respList, *item; + struct pam_response *response, *spr; PyPAMObject* self = (PyPAMObject *) appdata_ptr; + if (self->callback == NULL) return PAM_CONV_ERR; Py_INCREF(self); - PyObject* msgList = PyList_New(num_msg); - + msgList = PyList_New(num_msg); + if (msgList == NULL) { + Py_DECREF(self); + return PAM_CONV_ERR; + } + for (int i = 0; i < num_msg; i++) { - PyList_SetItem(msgList, i, - Py_BuildValue("(si)", msg[i]->msg, msg[i]->msg_style)); + item = Py_BuildValue("(si)", msg[i]->msg, msg[i]->msg_style); + if (item == NULL) { + Py_DECREF(msgList); + Py_DECREF(self); + return PAM_CONV_ERR; + } + PyList_SetItem(msgList, i, item); } - + args = Py_BuildValue("(OO)", self, msgList); - PyObject* respList = PyEval_CallObject(self->callback, args); + if (args == NULL) { + Py_DECREF(self); + Py_DECREF(msgList); + return PAM_CONV_ERR; + } + respList = PyEval_CallObject(self->callback, args); Py_DECREF(args); Py_DECREF(self); - + if (respList == NULL) return PAM_CONV_ERR; @@ -71,11 +86,15 @@ static int PyPAM_conv(int num_msg, const Py_DECREF(respList); return PAM_CONV_ERR; } - - *resp = (struct pam_response *) malloc( + + response = (struct pam_response *) malloc( PyList_Size(respList) * sizeof(struct pam_response)); + if (response == NULL) { + Py_DECREF(respList); + return PAM_CONV_ERR; + } + spr = response; - struct pam_response* spr = *resp; for (int i = 0; i < PyList_Size(respList); i++, spr++) { PyObject* respTuple = PyList_GetItem(respList, i); char* resp_text; @@ -85,7 +104,7 @@ static int PyPAM_conv(int num_msg, const free((--spr)->resp); --i; } - free(*resp); + free(response); Py_DECREF(respList); return PAM_CONV_ERR; } @@ -95,7 +114,8 @@ static int PyPAM_conv(int num_msg, const } Py_DECREF(respList); - + *resp = response; + return PAM_SUCCESS; } @@ -122,7 +142,11 @@ static PyObject * PyPAM_pam(PyObject *se PyPAMObject_Type.ob_type = &PyType_Type; p = (PyPAMObject *) PyObject_NEW(PyPAMObject, &PyPAMObject_Type); + if (p == NULL) + return NULL; + if ((spc = (struct pam_conv *) malloc(sizeof(struct pam_conv))) == NULL) { + Py_DECREF((PyObject *)p); PyErr_SetString(PyExc_MemoryError, "out of memory"); return NULL; } @@ -455,9 +479,15 @@ static PyObject * PyPAM_getenvlist(PyObj } retval = PyList_New(0); + if (retval == NULL) + return NULL; while ((cp = *(result++)) != NULL) { entry = Py_BuildValue("s", cp); + if (entry == NULL) { + Py_DECREF(retval); + return NULL; + } PyList_Append(retval, entry); Py_DECREF(entry); } ================================================ FILE: package/python-pam/Config.in ================================================ comment "python-pam needs a toolchain w/ wchar, locale, dynamic library" depends on BR2_PACKAGE_PYTHON depends on !BR2_ENABLE_LOCALE || !BR2_USE_WCHAR || BR2_STATIC_LIBS config BR2_PACKAGE_PYTHON_PAM bool "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 select BR2_PACKAGE_LINUX_PAM help PAM (Pluggable Authentication Module) bindings for Python. https://admin.fedoraproject.org/pkgdb/package/PyPAM/ ================================================ FILE: package/python-pam/python-pam.hash ================================================ # locally computed sha256 796ac019b9ee805696d0d277d8fb912fa2391b6ac070dc6f9f1a9a0fadbc3a5a PyPAM-0.5.0.tar.gz sha256 ca0061fc1381a3ab242310e4b3f56389f28e3d460eb2fd822ed7a21c6f030532 COPYING ================================================ FILE: package/python-pam/python-pam.mk ================================================ ################################################################################ # # python-pam # ################################################################################ PYTHON_PAM_VERSION = 0.5.0 PYTHON_PAM_SOURCE = PyPAM-$(PYTHON_PAM_VERSION).tar.gz # pangalactic.org gone PYTHON_PAM_SITE = http://pkgs.fedoraproject.org/repo/pkgs/PyPAM/PyPAM-0.5.0.tar.gz/f1e7c2c56421dda28a75ace59a3c8871 PYTHON_PAM_SETUP_TYPE = distutils PYTHON_PAM_LICENSE = LGPL-2.1 PYTHON_PAM_LICENSE_FILES = COPYING PYTHON_PAM_DEPENDENCIES = linux-pam $(eval $(python-package)) ================================================ FILE: package/python-paramiko/Config.in ================================================ config BR2_PACKAGE_PYTHON_PARAMIKO bool "python-paramiko" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-cryptography depends on BR2_PACKAGE_PYTHON3 # python-bcrypt, python-cryptography select BR2_PACKAGE_PYTHON_BCRYPT # runtime select BR2_PACKAGE_PYTHON_CRYPTOGRAPHY # runtime select BR2_PACKAGE_PYTHON_PYNACL # runtime select BR2_PACKAGE_PYTHON3_ZLIB # runtime help SSH2 protocol library. https://github.com/paramiko/paramiko/ ================================================ FILE: package/python-paramiko/python-paramiko.hash ================================================ # md5, sha256 from https://pypi.org/pypi/paramiko/json md5 44136d79da4cd7619e368018ad022619 paramiko-2.7.2.tar.gz sha256 7f36f4ba2c0d81d219f4595e35f70d56cc94f9ac40a6acdf51d6ca210ce65035 paramiko-2.7.2.tar.gz # Locally computed sha256 checksums sha256 5fa25bf5f395fd26e701c2e1de4ca7d162816986dc791c22f8f4226857ad1bb2 LICENSE ================================================ FILE: package/python-paramiko/python-paramiko.mk ================================================ ################################################################################ # # python-paramiko # ################################################################################ PYTHON_PARAMIKO_VERSION = 2.7.2 PYTHON_PARAMIKO_SOURCE = paramiko-$(PYTHON_PARAMIKO_VERSION).tar.gz PYTHON_PARAMIKO_SITE = https://files.pythonhosted.org/packages/cf/a1/20d00ce559a692911f11cadb7f94737aca3ede1c51de16e002c7d3a888e0 PYTHON_PARAMIKO_SETUP_TYPE = setuptools PYTHON_PARAMIKO_LICENSE = LGPL-2.1+ PYTHON_PARAMIKO_LICENSE_FILES = LICENSE PYTHON_PARAMIKO_CPE_ID_VENDOR = paramiko PYTHON_PARAMIKO_CPE_ID_PRODUCT = paramiko $(eval $(python-package)) ================================================ FILE: package/python-parso/Config.in ================================================ config BR2_PACKAGE_PYTHON_PARSO bool "python-parso" depends on BR2_PACKAGE_PYTHON3 help A Python Parser. https://github.com/davidhalter/parso ================================================ FILE: package/python-parso/python-parso.hash ================================================ # md5, sha256 from https://pypi.org/pypi/parso/json md5 dd8fed40ceb890d3e277ad44a678c1f1 parso-0.8.2.tar.gz sha256 12b83492c6239ce32ff5eed6d3639d6a536170723c6f3f1506869f1ace413398 parso-0.8.2.tar.gz # Locally computed sha256 checksums sha256 fa67973073753d17624caf8684d5ee816d70c89d912c5bca7ca0f08e7b150edb LICENSE.txt sha256 9c1e620a5cf8e74fe81c1fd4c55e9cc0b189fc04e677cfc7ef915de746c3f59e docs/_themes/flask/LICENSE sha256 368780dd953e09148834e8d8c6cc1b09b3d621e77dbd1c4f5e8873561acda873 test/normalizer_issue_files/LICENSE ================================================ FILE: package/python-parso/python-parso.mk ================================================ ################################################################################ # # python-parso # ################################################################################ PYTHON_PARSO_VERSION = 0.8.2 PYTHON_PARSO_SOURCE = parso-$(PYTHON_PARSO_VERSION).tar.gz PYTHON_PARSO_SITE = https://files.pythonhosted.org/packages/5e/61/d119e2683138a934550e47fc8ec023eb7f11b194883e9085dca3af5d4951 PYTHON_PARSO_SETUP_TYPE = setuptools PYTHON_PARSO_LICENSE = MIT, Python-2.0, BSD-3-Clause (flask theme) PYTHON_PARSO_LICENSE_FILES = LICENSE.txt docs/_themes/flask/LICENSE test/normalizer_issue_files/LICENSE PYTHON_PARSO_CPE_ID_VENDOR = parso_project PYTHON_PARSO_CPE_ID_PRODUCT = parso $(eval $(python-package)) ================================================ FILE: package/python-passlib/Config.in ================================================ config BR2_PACKAGE_PYTHON_PASSLIB bool "python-passlib" help comprehensive password hashing framework supporting over 30 schemes. https://passlib.readthedocs.io ================================================ FILE: package/python-passlib/python-passlib.hash ================================================ # md5, sha256 from https://pypi.org/pypi/passlib/json md5 3a229cbd00dfb33e99885b43325e0591 passlib-1.7.4.tar.gz sha256 defd50f72b65c5402ab2c573830a6978e5f202ad0d984793c8dde2c4152ebe04 passlib-1.7.4.tar.gz # Locally computed sha256 checksums sha256 a95ba8f1af88ff8d5f0d0c33519f430b7f9d8992b69d4bc369ac0423a7a05a89 LICENSE ================================================ FILE: package/python-passlib/python-passlib.mk ================================================ ################################################################################ # # python-passlib # ################################################################################ PYTHON_PASSLIB_VERSION = 1.7.4 PYTHON_PASSLIB_SOURCE = passlib-$(PYTHON_PASSLIB_VERSION).tar.gz PYTHON_PASSLIB_SITE = https://files.pythonhosted.org/packages/b6/06/9da9ee59a67fae7761aab3ccc84fa4f3f33f125b370f1ccdb915bf967c11 PYTHON_PASSLIB_SETUP_TYPE = setuptools PYTHON_PASSLIB_LICENSE = BSD-3-Clause PYTHON_PASSLIB_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-pathlib2/Config.in ================================================ config BR2_PACKAGE_PYTHON_PATHLIB2 bool "python-pathlib2" depends on BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON_SIX # runtime help Object-oriented filesystem paths. The goal of pathlib2 is to provide a backport of standard pathlib module which tracks the standard library module, so all the newest features of the standard pathlib can be used also on older Python versions. https://pypi.python.org/pypi/pathlib2 ================================================ FILE: package/python-pathlib2/python-pathlib2.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pathlib2/json md5 f2bd0a363eb0f8fa0556f35c1d9e66fb pathlib2-2.3.5.tar.gz sha256 6cd9a47b597b37cc57de1c05e56fb1a1c9cc9fab04fe78c29acd090418529868 pathlib2-2.3.5.tar.gz # Locally computed sha256 checksums sha256 f8e02f1a07e4c6fc59a4bee831ddde26b97064105c423b9e24340f35aaa80262 LICENSE.rst ================================================ FILE: package/python-pathlib2/python-pathlib2.mk ================================================ ################################################################################ # # python-pathlib2 # ################################################################################ PYTHON_PATHLIB2_VERSION = 2.3.5 PYTHON_PATHLIB2_SOURCE = pathlib2-$(PYTHON_PATHLIB2_VERSION).tar.gz PYTHON_PATHLIB2_SITE = https://files.pythonhosted.org/packages/94/d8/65c86584e7e97ef824a1845c72bbe95d79f5b306364fa778a3c3e401b309 PYTHON_PATHLIB2_LICENSE = MIT PYTHON_PATHLIB2_LICENSE_FILES = LICENSE.rst PYTHON_PATHLIB2_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pathpy/Config.in ================================================ config BR2_PACKAGE_PYTHON_PATHPY bool "python-pathpy" depends on BR2_PACKAGE_PYTHON3 help path.py implements a path objects as first-class entities, allowing common operations on files to be invoked on those path objects directly. https://github.com/jaraco/path.py ================================================ FILE: package/python-pathpy/python-pathpy.hash ================================================ # md5, sha256 from https://pypi.org/pypi/path.py/json md5 307098b1827af6031687edb49ce2c39c path.py-12.0.1.tar.gz sha256 9f2169633403aa0423f6ec000e8701dd1819526c62465f5043952f92527fea0f path.py-12.0.1.tar.gz # Locally computed sha256 checksums sha256 a55e2ffe9b44998e621d51d8c094bed09acc4b5236ee73d7df395a33ba3c18fd LICENSE ================================================ FILE: package/python-pathpy/python-pathpy.mk ================================================ ################################################################################ # # python-pathpy # ################################################################################ PYTHON_PATHPY_VERSION = 12.0.1 PYTHON_PATHPY_SOURCE = path.py-$(PYTHON_PATHPY_VERSION).tar.gz PYTHON_PATHPY_SITE = https://files.pythonhosted.org/packages/70/63/c01c1bb2df17db4c78f78cc439a2800f55bec5445cabf1f3579a37909f41 PYTHON_PATHPY_SETUP_TYPE = setuptools PYTHON_PATHPY_LICENSE = MIT PYTHON_PATHPY_LICENSE_FILES = LICENSE PYTHON_PATHPY_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-pathtools/Config.in ================================================ config BR2_PACKAGE_PYTHON_PATHTOOLS bool "python-pathtools" help File system general utilities. http://github.com/gorakhargosh/pathtools ================================================ FILE: package/python-pathtools/python-pathtools.hash ================================================ # 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 # Locally computed sha256 b52d83fba08f61bd1e603fee1b44cbc7ead9fcb512a5ceb8c53fec90ba415ac4 LICENSE ================================================ FILE: package/python-pathtools/python-pathtools.mk ================================================ ################################################################################ # # 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)) ================================================ FILE: package/python-pathvalidate/Config.in ================================================ config BR2_PACKAGE_PYTHON_PATHVALIDATE bool "python-pathvalidate" depends on BR2_PACKAGE_PYTHON3 help pathvalidate is a python library to validate/sanitize a string such as filename/variable-name. https://github.com/thombashi/pathvalidate ================================================ FILE: package/python-pathvalidate/python-pathvalidate.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pathvalidate/json md5 afc0343cd8c4ad732431a8b860d73330 pathvalidate-2.5.0.tar.gz sha256 119ba36be7e9a405d704c7b7aea4b871c757c53c9adc0ed64f40be1ed8da2781 pathvalidate-2.5.0.tar.gz # Locally computed sha256 checksums sha256 a93d75bcb0774e2990106380cadad6dcb2de193c55d435ffc56ba345a08b1dc2 LICENSE ================================================ FILE: package/python-pathvalidate/python-pathvalidate.mk ================================================ ################################################################################ # # python-pathvalidate # ################################################################################ PYTHON_PATHVALIDATE_VERSION = 2.5.0 PYTHON_PATHVALIDATE_SOURCE = pathvalidate-$(PYTHON_PATHVALIDATE_VERSION).tar.gz PYTHON_PATHVALIDATE_SITE = https://files.pythonhosted.org/packages/2e/89/7853a1ea323e848ab1e90c8930733bc19e35a935deb80d78b572c36ea33f PYTHON_PATHVALIDATE_SETUP_TYPE = setuptools PYTHON_PATHVALIDATE_LICENSE = MIT PYTHON_PATHVALIDATE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-pbr/python-pbr.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pbr/json md5 62565acc6bf3e7e10b082463421f8b46 pbr-5.6.0.tar.gz sha256 42df03e7797b796625b1029c0400279c7c34fd7df24a7d7818a1abb5b38710dd pbr-5.6.0.tar.gz # Locally computed sha256 checksums sha256 5df2a0d87d6c562f0ea11c688ac52532aa28d744cabc7994ff0537f64b3b3320 LICENSE sha256 eb4a8c8791f6caab1cf36df26db2b6f4e2ddda52657b060ff7f02abc63910aef pbr/tests/testpackage/LICENSE.txt ================================================ FILE: package/python-pbr/python-pbr.mk ================================================ ################################################################################ # # python-pbr # ################################################################################ PYTHON_PBR_VERSION = 5.6.0 PYTHON_PBR_SOURCE = pbr-$(PYTHON_PBR_VERSION).tar.gz PYTHON_PBR_SITE = https://files.pythonhosted.org/packages/35/8c/69ed04ae31ad498c9bdea55766ed4c0c72de596e75ac0d70b58aa25e0acf PYTHON_PBR_SETUP_TYPE = setuptools PYTHON_PBR_LICENSE = Apache-2.0 (module), BSD-3-Clause (test package) PYTHON_PBR_LICENSE_FILES = LICENSE pbr/tests/testpackage/LICENSE.txt $(eval $(host-python-package)) ================================================ FILE: package/python-peewee/Config.in ================================================ config BR2_PACKAGE_PYTHON_PEEWEE bool "python-peewee" depends on BR2_PACKAGE_PYTHON3 help A little ORM. https://github.com/coleifer/peewee ================================================ FILE: package/python-peewee/python-peewee.hash ================================================ sha256 f0249be468e3b119a8ad83f686e7fe161303197e0534e3cdff8fa5a5417c01a5 peewee-3.9.5.tar.gz ================================================ FILE: package/python-peewee/python-peewee.mk ================================================ ################################################################################ # # python-peewee # ################################################################################ PYTHON_PEEWEE_VERSION = 3.9.5 PYTHON_PEEWEE_SOURCE = peewee-$(PYTHON_PEEWEE_VERSION).tar.gz PYTHON_PEEWEE_SITE = https://files.pythonhosted.org/packages/ec/72/784eaf8c15d1dd0d5c126b2180bf3dd860611f7ba2b746c8e9cacee9a172 PYTHON_PEEWEE_SETUP_TYPE = setuptools PYTHON_PEEWEE_LICENSE = Apache-2.0 PYTHON_PEEWEE_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-peewee-migrate/Config.in ================================================ config BR2_PACKAGE_PYTHON_PEEWEE_MIGRATE bool "python-peewee-migrate" depends on BR2_PACKAGE_PYTHON3 help Simple migration engine for Peewee. https://github.com/klen/peewee_migrate ================================================ FILE: package/python-peewee-migrate/python-peewee-migrate.hash ================================================ sha256 9291c6cd39d214644ebc5d2ef2a43f9310f9546aedc8280015647c6f8ef92614 peewee_migrate-1.1.6.tar.gz ================================================ FILE: package/python-peewee-migrate/python-peewee-migrate.mk ================================================ ################################################################################ # # python-peewee-migrate # ################################################################################ PYTHON_PEEWEE_MIGRATE_VERSION = 1.1.6 PYTHON_PEEWEE_MIGRATE_SOURCE = peewee_migrate-$(PYTHON_PEEWEE_MIGRATE_VERSION).tar.gz PYTHON_PEEWEE_MIGRATE_SITE = https://files.pythonhosted.org/packages/d2/ed/24d221811e9f735719795a08da1e8bcc9f133b46a02d7862b521733320b6 PYTHON_PEEWEE_MIGRATE_SETUP_TYPE = setuptools PYTHON_PEEWEE_MIGRATE_LICENSE = Apache-2.0 PYTHON_PEEWEE_MIGRATE_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-periphery/Config.in ================================================ config BR2_PACKAGE_PYTHON_PERIPHERY bool "python-periphery" help A pure Python 2/3 library for peripheral I/O (GPIO, LED, PWM, SPI, I2C, MMIO, Serial) in Linux. https://github.com/vsergeev/python-periphery ================================================ FILE: package/python-periphery/python-periphery.hash ================================================ # Locally calculated sha256 385716bdbd11fcf2c5728548c3d42f12ebc0974faa64fa1a98b89b4a44dc004c python-periphery-2.3.0.tar.gz sha256 76fe342043adfe8d9453c4979aa165476875137e15b0ddea1f4c3f3fa9808361 LICENSE ================================================ FILE: package/python-periphery/python-periphery.mk ================================================ ################################################################################ # # python-periphery # ################################################################################ PYTHON_PERIPHERY_VERSION = 2.3.0 PYTHON_PERIPHERY_SITE = $(call github,vsergeev,python-periphery,v$(PYTHON_PERIPHERY_VERSION)) PYTHON_PERIPHERY_LICENSE = MIT PYTHON_PERIPHERY_LICENSE_FILES = LICENSE PYTHON_PERIPHERY_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pexpect/Config.in ================================================ 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 ================================================ FILE: package/python-pexpect/python-pexpect.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pexpect/json md5 153eb25184249d6a85fde9acf4804085 pexpect-4.8.0.tar.gz sha256 fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c pexpect-4.8.0.tar.gz # Locally computed sha256 checksums sha256 4a483ae1c4dc738a6c8b73feb49074e1835da02ab5aa686f2675029906fa364d LICENSE ================================================ FILE: package/python-pexpect/python-pexpect.mk ================================================ ################################################################################ # # python-pexpect # ################################################################################ PYTHON_PEXPECT_VERSION = 4.8.0 PYTHON_PEXPECT_SOURCE = pexpect-$(PYTHON_PEXPECT_VERSION).tar.gz PYTHON_PEXPECT_SITE = https://files.pythonhosted.org/packages/e5/9b/ff402e0e930e70467a7178abb7c128709a30dfb22d8777c043e501bc1b10 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)) ================================================ FILE: package/python-picamera/0001-enable-awb-greyworld-mode.patch ================================================ diff --git a/picamera/camera.py b/picamera/camera.py index 36b1202..a7da186 100644 --- a/picamera/camera.py +++ b/picamera/camera.py @@ -274,6 +274,7 @@ class PiCamera(object): 'incandescent': mmal.MMAL_PARAM_AWBMODE_INCANDESCENT, 'flash': mmal.MMAL_PARAM_AWBMODE_FLASH, 'horizon': mmal.MMAL_PARAM_AWBMODE_HORIZON, + 'greyworld': mmal.MMAL_PARAM_AWBMODE_GREYWORLD, } IMAGE_EFFECTS = { diff --git a/picamera/mmal.py b/picamera/mmal.py index 81b059f..82b2b5f 100644 --- a/picamera/mmal.py +++ b/picamera/mmal.py @@ -692,7 +692,8 @@ MMAL_PARAM_AWBMODE_T = ct.c_uint32 # enum MMAL_PARAM_AWBMODE_INCANDESCENT, MMAL_PARAM_AWBMODE_FLASH, MMAL_PARAM_AWBMODE_HORIZON, -) = range(10) + MMAL_PARAM_AWBMODE_GREYWORLD, +) = range(11) MMAL_PARAM_AWBMODE_MAX = 0x7fffffff class MMAL_PARAMETER_AWBMODE_T(ct.Structure): ================================================ FILE: package/python-picamera/Config.in ================================================ config BR2_PACKAGE_PYTHON_PICAMERA bool "python-picamera" ================================================ FILE: package/python-picamera/python-picamera.mk ================================================ ################################################################################ # # python-picamera # ################################################################################ PYTHON_PICAMERA_VERSION = 1.13 PYTHON_PICAMERA_SOURCE = picamera-$(PYTHON_PICAMERA_VERSION).tar.gz PYTHON_PICAMERA_SITE = https://pypi.python.org/packages/79/c4/80afe871d82ab1d5c9d8f0c0258228a8a0ed96db07a78ef17e7fba12fda8 PYTHON_PICAMERA_ENV = READTHEDOCS=True PYTHON_PICAMERA_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-pickleshare/Config.in ================================================ config BR2_PACKAGE_PYTHON_PICKLESHARE bool "python-pickleshare" select BR2_PACKAGE_PYTHON_PATHLIB2 if BR2_PACKAGE_PYTHON # runtime help Tiny 'shelve'-like database with concurrency support https://pypi.python.org/pypi/pickleshare ================================================ FILE: package/python-pickleshare/python-pickleshare.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pickleshare/json md5 44ab782615894a812ab96669a122a634 pickleshare-0.7.5.tar.gz sha256 87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca pickleshare-0.7.5.tar.gz # Locally computed sha256 checksums sha256 db1fefc1789444409514c0cae0bfab7f8e374ff9b78e092cecb1e0aeb6a36d90 LICENSE ================================================ FILE: package/python-pickleshare/python-pickleshare.mk ================================================ ################################################################################ # # python-pickleshare # ################################################################################ PYTHON_PICKLESHARE_VERSION = 0.7.5 PYTHON_PICKLESHARE_SOURCE = pickleshare-$(PYTHON_PICKLESHARE_VERSION).tar.gz PYTHON_PICKLESHARE_SITE = https://files.pythonhosted.org/packages/d8/b6/df3c1c9b616e9c0edbc4fbab6ddd09df9535849c64ba51fcb6531c32d4d8 PYTHON_PICKLESHARE_LICENSE = MIT PYTHON_PICKLESHARE_LICENSE_FILES = LICENSE PYTHON_PICKLESHARE_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-piexif/Config.in ================================================ config BR2_PACKAGE_PYTHON_PIEXIF bool "python-piexif" depends on BR2_PACKAGE_PYTHON3 help Piexif simplifies interacting with EXIF data in Python. It includes the tools necessary for extracting, creating, manipulating, converting and writing EXIF data to JPEG, WebP and TIFF files. https://github.com/hMatoba/Piexif ================================================ FILE: package/python-piexif/python-piexif.hash ================================================ # Locally computed sha256 checksums sha256 abfd9a67795e23d7a76f9407d60841efa68c5d6e43376b295bb821a30602c569 python-piexif-1.1.3.tar.gz sha256 d517a0940b8eb92ace7fc88f75892d84d260d85b3062d36d9e6445bc5091f697 LICENSE.txt ================================================ FILE: package/python-piexif/python-piexif.mk ================================================ ################################################################################ # # python-piexif # ################################################################################ PYTHON_PIEXIF_VERSION = 1.1.3 PYTHON_PIEXIF_SITE = $(call github,hMatoba,Piexif,$(PYTHON_PIEXIF_VERSION)) PYTHON_PIEXIF_LICENSE = MIT PYTHON_PIEXIF_LICENSE_FILES = LICENSE.txt PYTHON_PIEXIF_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pigpio/Config.in ================================================ config BR2_PACKAGE_PYTHON_PIGPIO bool "python-pigpio" help Pigpio is a Python module for the Raspberry Pi which talks to the pigpio daemon to allow control of the general purpose input outputs (GPIO). http://abyz.me.uk/rpi/pigpio/python.html ================================================ FILE: package/python-pigpio/python-pigpio.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pigpio/json md5 e05e3f5cb6c50f4b3eeb4ac50627507e pigpio-1.78.tar.gz sha256 91efa50e4990649da97408a384782d6ccf58342fc59cdfe21ed7a42911569975 pigpio-1.78.tar.gz ================================================ FILE: package/python-pigpio/python-pigpio.mk ================================================ ################################################################################ # # python-pigpio # ################################################################################ PYTHON_PIGPIO_VERSION = 1.78 PYTHON_PIGPIO_SOURCE = pigpio-$(PYTHON_PIGPIO_VERSION).tar.gz PYTHON_PIGPIO_SITE = https://files.pythonhosted.org/packages/a9/4a/3ebdfd90906553fb5420e80a475eb52f0809f2a29b547ba3b260db0cbc8f PYTHON_PIGPIO_SETUP_TYPE = setuptools PYTHON_PIGPIO_LICENSE = Unlicense $(eval $(python-package)) ================================================ FILE: package/python-pillow/Config.in ================================================ config BR2_PACKAGE_PYTHON_PILLOW bool "python-pillow" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON3_PYEXPAT # runtime select BR2_PACKAGE_PYTHON3_ZLIB 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/ ================================================ FILE: package/python-pillow/python-pillow.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pillow/json md5 a7fc550b80819eab11e01cc097913700 Pillow-8.3.2.tar.gz sha256 dde3f3ed8d00c72631bc19cbfff8ad3b6215062a5eed402381ad365f82f0c18c Pillow-8.3.2.tar.gz # Locally computed sha256 checksums sha256 5bb11d96b393a698df70018069a986248021f286344c437a13f299c3daf1dfd4 LICENSE ================================================ FILE: package/python-pillow/python-pillow.mk ================================================ ################################################################################ # # python-pillow # ################################################################################ PYTHON_PILLOW_VERSION = 8.3.2 PYTHON_PILLOW_SITE = https://files.pythonhosted.org/packages/90/d4/a7c9b6c5d176654aa3dbccbfd0be4fd3a263355dc24122a5f1937bdc2689 PYTHON_PILLOW_SOURCE = Pillow-$(PYTHON_PILLOW_VERSION).tar.gz PYTHON_PILLOW_LICENSE = HPND PYTHON_PILLOW_LICENSE_FILES = LICENSE PYTHON_PILLOW_CPE_ID_VENDOR = python PYTHON_PILLOW_CPE_ID_PRODUCT = pillow 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_LCMS2),y) PYTHON_PILLOW_DEPENDENCIES += lcms2 PYTHON_PILLOW_BUILD_OPTS += --enable-lcms else PYTHON_PILLOW_BUILD_OPTS += --disable-lcms endif ifeq ($(BR2_PACKAGE_LIBXCB),y) PYTHON_PILLOW_DEPENDENCIES += libxcb PYTHON_PILLOW_BUILD_OPTS += --enable-xcb else PYTHON_PILLOW_BUILD_OPTS += --disable-xcb 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 ifeq ($(BR2_PACKAGE_WEBP_DEMUX)$(BR2_PACKAGE_WEBP_MUX),yy) PYTHON_PILLOW_BUILD_OPTS += --enable-webpmux else PYTHON_PILLOW_BUILD_OPTS += --disable-webpmux endif else PYTHON_PILLOW_BUILD_OPTS += --disable-webp --disable-webpmux endif define PYTHON_PILLOW_BUILD_CMDS cd $(PYTHON_PILLOW_BUILDDIR); \ PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \ $(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); \ PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \ $(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)) ================================================ FILE: package/python-pip/Config.in ================================================ config BR2_PACKAGE_PYTHON_PIP bool "python-pip" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON3_SSL help The PyPA recommended tool for installing Python packages. https://pip.pypa.io/ ================================================ FILE: package/python-pip/python-pip.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pip/json md5 efbdb4201a5e6383fb4d12e26f78f355 pip-21.2.4.tar.gz sha256 0eb8a1516c3d138ae8689c0c1a60fde7143310832f9dc77e11d8a4bc62de193b pip-21.2.4.tar.gz # Locally computed sha256 checksums sha256 23a7361c2b1581028bc623b9da2bd24997abcaa4781ace6ad444a37944f8dae1 LICENSE.txt ================================================ FILE: package/python-pip/python-pip.mk ================================================ ################################################################################ # # python-pip # ################################################################################ PYTHON_PIP_VERSION = 21.2.4 PYTHON_PIP_SOURCE = pip-$(PYTHON_PIP_VERSION).tar.gz PYTHON_PIP_SITE = https://files.pythonhosted.org/packages/52/e1/06c018197d8151383f66ebf6979d951995cf495629fc54149491f5d157d0 PYTHON_PIP_SETUP_TYPE = setuptools PYTHON_PIP_LICENSE = MIT PYTHON_PIP_LICENSE_FILES = LICENSE.txt PYTHON_PIP_CPE_ID_VENDOR = pypa PYTHON_PIP_CPE_ID_PRODUCT = pip $(eval $(python-package)) ================================================ FILE: package/python-pluggy/Config.in ================================================ config BR2_PACKAGE_PYTHON_PLUGGY bool "python-pluggy" depends on BR2_PACKAGE_PYTHON3 help plugin and hook calling mechanisms for python. https://github.com/pytest-dev/pluggy ================================================ FILE: package/python-pluggy/python-pluggy.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pluggy/json md5 daa6fddfb6cd364f3c82e52098911e4b pluggy-1.0.0.tar.gz sha256 4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159 pluggy-1.0.0.tar.gz # Locally computed sha256 checksums sha256 d6b65e6c213a5d0b577911d34d6e5949b9f59d76c238c5071a2f3fc16cfb2606 LICENSE ================================================ FILE: package/python-pluggy/python-pluggy.mk ================================================ ################################################################################ # # python-pluggy # ################################################################################ PYTHON_PLUGGY_VERSION = 1.0.0 PYTHON_PLUGGY_SOURCE = pluggy-$(PYTHON_PLUGGY_VERSION).tar.gz PYTHON_PLUGGY_SITE = https://files.pythonhosted.org/packages/a1/16/db2d7de3474b6e37cbb9c008965ee63835bba517e22cdb8c35b5116b5ce1 PYTHON_PLUGGY_SETUP_TYPE = setuptools PYTHON_PLUGGY_LICENSE = MIT PYTHON_PLUGGY_LICENSE_FILES = LICENSE PYTHON_PLUGGY_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-ply/Config.in ================================================ config BR2_PACKAGE_PYTHON_PLY bool "python-ply" help Python Lex & Yacc. http://www.dabeaz.com/ply/ ================================================ FILE: package/python-ply/python-ply.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ply/json md5 6465f602e656455affcd7c5734c638f8 ply-3.11.tar.gz sha256 00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3 ply-3.11.tar.gz # Locally computed sha256 checksums sha256 1095b93b81d2043c5c55e0859875b416f75edb6d5eccb4bf2ace1b5445d1c84f README.md ================================================ FILE: package/python-ply/python-ply.mk ================================================ ################################################################################ # # python-ply # ################################################################################ # Please keep in sync with package/python3-ply/python3-ply.mk PYTHON_PLY_VERSION = 3.11 PYTHON_PLY_SOURCE = ply-$(PYTHON_PLY_VERSION).tar.gz PYTHON_PLY_SITE = https://files.pythonhosted.org/packages/e5/69/882ee5c9d017149285cab114ebeab373308ef0f874fcdac9beb90e0ac4da PYTHON_PLY_SETUP_TYPE = setuptools PYTHON_PLY_LICENSE = BSD-3-Clause PYTHON_PLY_LICENSE_FILES = README.md $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-portend/Config.in ================================================ config BR2_PACKAGE_PYTHON_PORTEND bool "python-portend" depends on BR2_PACKAGE_PYTHON3 # python-tempora select BR2_PACKAGE_PYTHON_TEMPORA # runtime help TCP port monitoring utilities. https://github.com/jaraco/portend ================================================ FILE: package/python-portend/python-portend.hash ================================================ # md5, sha256 from https://pypi.org/pypi/portend/json md5 0ab51a12b7462a5275946a3645a71e92 portend-2.5.tar.gz sha256 19dc27bfb3c72471bd30a235a4d5fbefef8a7e31cab367744b5d87a205e7bfd9 portend-2.5.tar.gz # Locally computed sha256 checksums sha256 a55e2ffe9b44998e621d51d8c094bed09acc4b5236ee73d7df395a33ba3c18fd LICENSE ================================================ FILE: package/python-portend/python-portend.mk ================================================ ################################################################################ # # python-portend # ################################################################################ PYTHON_PORTEND_VERSION = 2.5 PYTHON_PORTEND_SOURCE = portend-$(PYTHON_PORTEND_VERSION).tar.gz PYTHON_PORTEND_SITE = https://files.pythonhosted.org/packages/2c/59/948666fc2455ae471efd40cb2a9a990f5f6f2354a9a6b228e29b9fb4a307 PYTHON_PORTEND_LICENSE = MIT PYTHON_PORTEND_LICENSE_FILES = LICENSE PYTHON_PORTEND_SETUP_TYPE = setuptools PYTHON_PORTEND_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-posix-ipc/Config.in ================================================ config BR2_PACKAGE_PYTHON_POSIX_IPC bool "python-posix-ipc" depends on BR2_TOOLCHAIN_HAS_THREADS help The Python extension module posix_ipc gives access to POSIX inter-process semaphores, shared memory and message queues on systems that support the POSIX Realtime Extensions a.k.a. POSIX 1003.1b-1993. http://semanchuk.com/philip/posix_ipc/ comment "python-posix-ipc needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/python-posix-ipc/python-posix-ipc.hash ================================================ # md5, sha256 from https://pypi.org/pypi/posix-ipc/json md5 8c9443859492ecf3aae9182aa6b5c78c posix_ipc-1.0.5.tar.gz sha256 6cddb1ce2cf4aae383f2a0079c26c69bee257fe2720f372201ef047f8ceb8b97 posix_ipc-1.0.5.tar.gz # Locally computed sha256 checksums sha256 61f0669e70518e6d32f87e485965fe9309de60e4bef938b29cecd068b3db9a98 LICENSE ================================================ FILE: package/python-posix-ipc/python-posix-ipc.mk ================================================ ################################################################################ # # python-posix-ipc # ################################################################################ PYTHON_POSIX_IPC_VERSION = 1.0.5 PYTHON_POSIX_IPC_SOURCE = posix_ipc-$(PYTHON_POSIX_IPC_VERSION).tar.gz PYTHON_POSIX_IPC_SITE = https://files.pythonhosted.org/packages/bc/2f/9a7901aa26fb0e02a671b989ba814d059a0f45af85cea31b9c9eef7e2dda PYTHON_POSIX_IPC_LICENSE = BSD-3-Clause PYTHON_POSIX_IPC_LICENSE_FILES = LICENSE PYTHON_POSIX_IPC_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-priority/Config.in ================================================ config BR2_PACKAGE_PYTHON_PRIORITY bool "python-priority" depends on BR2_PACKAGE_PYTHON3 help A pure-Python implementation of the HTTP/2 priority tree. http://python-hyper.org/priority/ ================================================ FILE: package/python-priority/python-priority.hash ================================================ # md5, sha256 from https://pypi.org/pypi/priority/json md5 149531bf0e754782cf218bfc8cc994ae priority-2.0.0.tar.gz sha256 c965d54f1b8d0d0b19479db3924c7c36cf672dbf2aec92d43fbdaf4492ba18c0 priority-2.0.0.tar.gz # Locally computed sha256 checksums sha256 f3e9c29e3db36dc305a4be68a8a225f93949852ce2d19b5b0a3c099eee6509c5 LICENSE ================================================ FILE: package/python-priority/python-priority.mk ================================================ ################################################################################ # # python-priority # ################################################################################ PYTHON_PRIORITY_VERSION = 2.0.0 PYTHON_PRIORITY_SOURCE = priority-$(PYTHON_PRIORITY_VERSION).tar.gz PYTHON_PRIORITY_SITE = https://files.pythonhosted.org/packages/f5/3c/eb7c35f4dcede96fca1842dac5f4f5d15511aa4b52f3a961219e68ae9204 PYTHON_PRIORITY_SETUP_TYPE = setuptools PYTHON_PRIORITY_LICENSE = MIT PYTHON_PRIORITY_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-prompt-toolkit/Config.in ================================================ config BR2_PACKAGE_PYTHON_PROMPT_TOOLKIT bool "python-prompt-toolkit" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_WCWIDTH # runtime select BR2_PACKAGE_PYTHON3_PYEXPAT # runtime help Library for building powerful interactive command lines in Python. https://github.com/prompt-toolkit/python-prompt-toolkit ================================================ FILE: package/python-prompt-toolkit/python-prompt-toolkit.hash ================================================ # md5, sha256 from https://pypi.org/pypi/prompt-toolkit/json md5 ba9e63c3e7e5a4f4ce4e4770a4daba96 prompt_toolkit-3.0.20.tar.gz sha256 eb71d5a6b72ce6db177af4a7d4d7085b99756bf656d98ffcc4fecd36850eea6c prompt_toolkit-3.0.20.tar.gz # Locally computed sha256 checksums sha256 303574d9bdd85c757d6025017942bf17baeedf2778f62bd7f425d07d880f4c4a LICENSE ================================================ FILE: package/python-prompt-toolkit/python-prompt-toolkit.mk ================================================ ################################################################################ # # python-prompt-toolkit # ################################################################################ PYTHON_PROMPT_TOOLKIT_VERSION = 3.0.20 PYTHON_PROMPT_TOOLKIT_SOURCE = prompt_toolkit-$(PYTHON_PROMPT_TOOLKIT_VERSION).tar.gz PYTHON_PROMPT_TOOLKIT_SITE = https://files.pythonhosted.org/packages/b4/56/9ab5868f34ab2657fba7e2192f41316252ab04edbbeb2a8583759960a1a7 PYTHON_PROMPT_TOOLKIT_SETUP_TYPE = setuptools PYTHON_PROMPT_TOOLKIT_LICENSE = BSD-3-Clause PYTHON_PROMPT_TOOLKIT_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-protobuf/Config.in ================================================ config BR2_PACKAGE_PYTHON_PROTOBUF bool "python-protobuf" # host-protobuf only builds on certain architectures depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SIX # runtime help Python implementation of the Google Protocol Buffers. Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data. https://developers.google.com/protocol-buffers ================================================ FILE: package/python-protobuf/python-protobuf.hash ================================================ # Locally calculated sha256 4f792034070915819065c162a310142d66835333824e2e0a2ca26ed54b013408 protobuf-python-3.18.0.tar.gz sha256 6e5e117324afd944dcf67f36cf329843bc1a92229a8cd9bb573d7a83130fea7d LICENSE ================================================ FILE: package/python-protobuf/python-protobuf.mk ================================================ ################################################################################ # # python-protobuf # ################################################################################ PYTHON_PROTOBUF_VERSION = $(PROTOBUF_VERSION) PYTHON_PROTOBUF_SOURCE = protobuf-python-$(PYTHON_PROTOBUF_VERSION).tar.gz PYTHON_PROTOBUF_SITE = $(PROTOBUF_SITE) PYTHON_PROTOBUF_LICENSE = BSD-3-Clause PYTHON_PROTOBUF_LICENSE_FILES = LICENSE PYTHON_PROTOBUF_DEPENDENCIES = host-protobuf PYTHON_PROTOBUF_SETUP_TYPE = setuptools PYTHON_PROTOBUF_SUBDIR = python $(eval $(python-package)) ================================================ FILE: package/python-psutil/Config.in ================================================ config BR2_PACKAGE_PYTHON_PSUTIL bool "python-psutil" help psutil is a cross-platform library for retrieving information on running processes and system utilization (CPU, memory, disks, network) in Python. https://pypi.python.org/pypi/psutil ================================================ FILE: package/python-psutil/python-psutil.hash ================================================ # md5, sha256 from https://pypi.org/pypi/psutil/json md5 91060da163ef478002a4456dd99cbb4c psutil-5.8.0.tar.gz sha256 0c9ccb99ab76025f2f0bbecf341d4656e9c1351db8cc8a03ccd62e318ab4b5c6 psutil-5.8.0.tar.gz # Locally computed sha256 checksums sha256 24c12984500caa07ffdce19eebc06396c5e6d244b573bc6c438f4a6ef8e56c1b LICENSE ================================================ FILE: package/python-psutil/python-psutil.mk ================================================ ################################################################################ # # python-psutil # ################################################################################ # Please keep in sync with package/python3-psutil/python3-psutil.mk PYTHON_PSUTIL_VERSION = 5.8.0 PYTHON_PSUTIL_SOURCE = psutil-$(PYTHON_PSUTIL_VERSION).tar.gz PYTHON_PSUTIL_SITE = https://files.pythonhosted.org/packages/e1/b0/7276de53321c12981717490516b7e612364f2cb372ee8901bd4a66a000d7 PYTHON_PSUTIL_SETUP_TYPE = setuptools PYTHON_PSUTIL_LICENSE = BSD-3-Clause PYTHON_PSUTIL_LICENSE_FILES = LICENSE PYTHON_PSUTIL_CPE_ID_VENDOR = psutil_project PYTHON_PSUTIL_CPE_ID_PRODUCT = psutil $(eval $(python-package)) ================================================ FILE: package/python-psycopg2/Config.in ================================================ config BR2_PACKAGE_PYTHON_PSYCOPG2 bool "python-psycopg2" depends on BR2_PACKAGE_PYTHON3 depends on BR2_USE_WCHAR # postgresql select BR2_PACKAGE_POSTGRESQL help Psycopg is the most popular PostgreSQL database adapter for the Python programming language. Its main features are the complete implementation of the Python DB API 2.0 specification and the thread safety (several threads can share the same connection). It was designed for heavily multi-threaded applications that create and destroy lots of cursors and make a large number of concurrent INSERTs or UPDATEs. Psycopg 2 is mostly implemented in C as a libpq wrapper, resulting in being both efficient and secure. It features client-side and server-side cursors, asynchronous communication and notifications, COPY support. Many Python types are supported out-of-the-box and adapted to matching PostgreSQL data types; adaptation can be extended and customized thanks to a flexible objects adaptation system. Psycopg 2 is both Unicode and Python 3 friendly. http://initd.org/psycopg/ comment "python-psycopg2 needs a toolchain w/ wchar" depends on BR2_PACKAGE_PYTHON3 depends on !BR2_USE_WCHAR ================================================ FILE: package/python-psycopg2/python-psycopg2.hash ================================================ # md5, sha256 from https://pypi.org/pypi/psycopg2/json md5 182e3e8cf3381c254f65f70cad4976e5 psycopg2-2.9.1.tar.gz sha256 de5303a6f1d0a7a34b9d40e4d3bef684ccc44a49bbe3eb85e3c0bffb4a131b7c psycopg2-2.9.1.tar.gz # Locally computed sha256 checksums sha256 9614b85dfc9a72c5b2ca33144c1d7e1ed3b1c297459d9fb28a6a5762c2e8d71b LICENSE ================================================ FILE: package/python-psycopg2/python-psycopg2.mk ================================================ ################################################################################ # # python-psycopg2 # ################################################################################ PYTHON_PSYCOPG2_VERSION = 2.9.1 PYTHON_PSYCOPG2_SOURCE = psycopg2-$(PYTHON_PSYCOPG2_VERSION).tar.gz PYTHON_PSYCOPG2_SITE = https://files.pythonhosted.org/packages/aa/8a/7c80e7e44fb1b4277e89bd9ca509aefdd4dd1b2c547c6f293afe9f7ffd04 PYTHON_PSYCOPG2_SETUP_TYPE = setuptools PYTHON_PSYCOPG2_LICENSE = LGPL-3.0+ PYTHON_PSYCOPG2_LICENSE_FILES = LICENSE PYTHON_PSYCOPG2_DEPENDENCIES = postgresql # Force psycopg2 to use the Buildroot provided postgresql version # instead of the one from the host machine PYTHON_PSYCOPG2_BUILD_OPTS = build_ext --pg-config=$(STAGING_DIR)/usr/bin/pg_config PYTHON_PSYCOPG2_INSTALL_TARGET_OPTS = build_ext --pg-config=$(STAGING_DIR)/usr/bin/pg_config $(eval $(python-package)) ================================================ FILE: package/python-ptyprocess/Config.in ================================================ 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 ================================================ FILE: package/python-ptyprocess/python-ptyprocess.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ptyprocess/json md5 9da200c397cb1752209a6b718b6cfc68 ptyprocess-0.7.0.tar.gz sha256 5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220 ptyprocess-0.7.0.tar.gz # Locally computed sha256 checksums sha256 c822d385b1a73329846241799becf18690b5d44764c1bed69300b536a405030a LICENSE ================================================ FILE: package/python-ptyprocess/python-ptyprocess.mk ================================================ ################################################################################ # # python-ptyprocess # ################################################################################ PYTHON_PTYPROCESS_VERSION = 0.7.0 PYTHON_PTYPROCESS_SITE = https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e 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)) ================================================ FILE: package/python-pudb/Config.in ================================================ config BR2_PACKAGE_PYTHON_PUDB bool "python-pudb" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_URWID # runtime select BR2_PACKAGE_PYTHON_JEDI # runtime select BR2_PACKAGE_PYTHON_PYGMENTS # runtime select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON3_CURSES # runtime help A full-screen, console-based Python debugger. https://github.com/inducer/pudb ================================================ FILE: package/python-pudb/python-pudb.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pudb/json md5 100b955e103b72279604420bbdcd07a5 pudb-2021.1.tar.gz sha256 309ee82b45a0ffca0bc4c7f521fd3e357589c764f339bdf9dcabb7ad40692d6e pudb-2021.1.tar.gz # Locally computed sha256 checksums sha256 a95343fffff49cde3d9bf33cf6bb71cb3bf0ed83f47d98a7ba04b175d29c79ab LICENSE ================================================ FILE: package/python-pudb/python-pudb.mk ================================================ ################################################################################ # # python-pudb # ################################################################################ PYTHON_PUDB_VERSION = 2021.1 PYTHON_PUDB_SOURCE = pudb-$(PYTHON_PUDB_VERSION).tar.gz PYTHON_PUDB_SITE = https://files.pythonhosted.org/packages/c7/69/813e93519fc28744457ff68fa2eaac3b4ea30dda1e6994e969fe9d3008d9 PYTHON_PUDB_SETUP_TYPE = setuptools PYTHON_PUDB_LICENSE = MIT PYTHON_PUDB_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-py/Config.in ================================================ config BR2_PACKAGE_PYTHON_PY bool "python-py" help library with cross-python path, ini-parsing, io, code, log facilities. http://py.readthedocs.io/ ================================================ FILE: package/python-py/python-py.hash ================================================ # md5, sha256 from https://pypi.org/pypi/py/json md5 5f108bfe00d5468cbdb8071051f86a55 py-1.10.0.tar.gz sha256 21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3 py-1.10.0.tar.gz # Locally computed sha256 checksums sha256 2af680c39ef493fb82830356d1d3df1acb5a06033cba2dec7a19e21caa77a866 LICENSE sha256 2af680c39ef493fb82830356d1d3df1acb5a06033cba2dec7a19e21caa77a866 py/_vendored_packages/iniconfig-1.1.1.dist-info/LICENSE ================================================ FILE: package/python-py/python-py.mk ================================================ ################################################################################ # # python-py # ################################################################################ PYTHON_PY_VERSION = 1.10.0 PYTHON_PY_SOURCE = py-$(PYTHON_PY_VERSION).tar.gz PYTHON_PY_SITE = https://files.pythonhosted.org/packages/0d/8c/50e9f3999419bb7d9639c37e83fa9cdcf0f601a9d407162d6c37ad60be71 PYTHON_PY_DEPENDENCIES = host-python-setuptools-scm PYTHON_PY_SETUP_TYPE = setuptools PYTHON_PY_LICENSE = MIT PYTHON_PY_LICENSE_FILES = LICENSE py/_vendored_packages/iniconfig-1.1.1.dist-info/LICENSE PYTHON_PY_CPE_ID_VENDOR = pytest PYTHON_PY_CPE_ID_PRODUCT = py $(eval $(python-package)) ================================================ FILE: package/python-pyaes/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYAES bool "python-pyaes" help Pure-Python Implementation of the AES block-cipher and common modes of operation. https://github.com/ricmoo/pyaes ================================================ FILE: package/python-pyaes/python-pyaes.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyaes/json md5 20fd5c6e29dcfdd08098e85a859a54ec pyaes-1.6.1.tar.gz sha256 02c1b1405c38d3c370b085fb952dd8bea3fadcee6411ad99f312cc129c536d8f pyaes-1.6.1.tar.gz # Locally computed sha256 checksums sha256 1efe6c78b28b4203d397ea9b68bdc9c658d21cd9afaf8ae8223def83f2a7ebbd LICENSE.txt ================================================ FILE: package/python-pyaes/python-pyaes.mk ================================================ ################################################################################ # # python-pyaes # ################################################################################ PYTHON_PYAES_VERSION = 1.6.1 PYTHON_PYAES_SOURCE = pyaes-$(PYTHON_PYAES_VERSION).tar.gz PYTHON_PYAES_SITE = https://files.pythonhosted.org/packages/44/66/2c17bae31c906613795711fc78045c285048168919ace2220daa372c7d72 PYTHON_PYAES_SETUP_TYPE = distutils PYTHON_PYAES_LICENSE = MIT PYTHON_PYAES_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-pyalsa/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYALSA bool "python-pyalsa" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_HWDEP select BR2_PACKAGE_ALSA_LIB_MIXER select BR2_PACKAGE_ALSA_LIB_RAWMIDI select BR2_PACKAGE_ALSA_LIB_SEQ help Official ALSA Python binding, including hardware management, mixer and sequencer control. http://www.alsa-project.org/ comment "python-pyalsa needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/python-pyalsa/python-pyalsa.hash ================================================ # Locally computed sha256 2771291a5d2cf700f0abbe6629ea37468d1463a01b2330d84ef976e1e918676c pyalsa-1.1.6.tar.bz2 ================================================ FILE: package/python-pyalsa/python-pyalsa.mk ================================================ ################################################################################ # # python-pyalsa # ################################################################################ PYTHON_PYALSA_VERSION = 1.1.6 PYTHON_PYALSA_SOURCE = pyalsa-$(PYTHON_PYALSA_VERSION).tar.bz2 PYTHON_PYALSA_SITE = ftp://ftp.alsa-project.org/pub/pyalsa PYTHON_PYALSA_SETUP_TYPE = distutils PYTHON_PYALSA_LICENSE = LGPL-2.1+ PYTHON_PYALSA_DEPENDENCIES = alsa-lib $(eval $(python-package)) ================================================ FILE: package/python-pyasn1/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYASN1 bool "python-pyasn1" help ASN.1 types and codecs. https://github.com/etingof/pyasn1 ================================================ FILE: package/python-pyasn1/python-pyasn1.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyasn1/json md5 dffae4ff9f997a83324b3f33fe62be54 pyasn1-0.4.8.tar.gz sha256 aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba pyasn1-0.4.8.tar.gz # Locally computed sha256 checksums sha256 22c5cc6922ab5d69fba32d8c5ee4cdd14981508cb53afc0ebd85593847fd95a5 LICENSE.rst ================================================ FILE: package/python-pyasn1/python-pyasn1.mk ================================================ ################################################################################ # # python-pyasn1 # ################################################################################ PYTHON_PYASN1_VERSION = 0.4.8 PYTHON_PYASN1_SOURCE = pyasn1-$(PYTHON_PYASN1_VERSION).tar.gz PYTHON_PYASN1_SITE = https://files.pythonhosted.org/packages/a4/db/fffec68299e6d7bad3d504147f9094830b704527a7fc098b721d38cc7fa7 PYTHON_PYASN1_SETUP_TYPE = setuptools PYTHON_PYASN1_LICENSE = BSD-2-Clause PYTHON_PYASN1_LICENSE_FILES = LICENSE.rst $(eval $(python-package)) ================================================ FILE: package/python-pyasn1-modules/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYASN1_MODULES bool "python-pyasn1-modules" select BR2_PACKAGE_PYTHON_PYASN1 # runtime help A collection of ASN.1-based protocols modules. https://github.com/etingof/pyasn1-modules ================================================ FILE: package/python-pyasn1-modules/python-pyasn1-modules.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyasn1-modules/json md5 107e1ece7d0a41d782f69f8a95a4d9bc pyasn1-modules-0.2.8.tar.gz sha256 905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e pyasn1-modules-0.2.8.tar.gz # Locally computed sha256 checksums sha256 22c5cc6922ab5d69fba32d8c5ee4cdd14981508cb53afc0ebd85593847fd95a5 LICENSE.txt ================================================ FILE: package/python-pyasn1-modules/python-pyasn1-modules.mk ================================================ ################################################################################ # # python-pyasn1-modules # ################################################################################ PYTHON_PYASN1_MODULES_VERSION = 0.2.8 PYTHON_PYASN1_MODULES_SOURCE = pyasn1-modules-$(PYTHON_PYASN1_MODULES_VERSION).tar.gz PYTHON_PYASN1_MODULES_SITE = https://files.pythonhosted.org/packages/88/87/72eb9ccf8a58021c542de2588a867dbefc7556e14b2866d1e40e9e2b587e PYTHON_PYASN1_MODULES_SETUP_TYPE = setuptools PYTHON_PYASN1_MODULES_LICENSE = BSD-2-Clause PYTHON_PYASN1_MODULES_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-pybind/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYBIND bool "python-pybind" help PyBind is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code. http://pybind11.readthedocs.org/en/master ================================================ FILE: package/python-pybind/python-pybind.hash ================================================ # Locally calculated sha256 cdbe326d357f18b83d10322ba202d69f11b2f49e2d87ade0dc2be0c5c34f8e2a python-pybind-2.6.1.tar.gz # License files, locally calculated sha256 83965b843b98f670d3a85bd041ed4b372c8ec50d7b4a5995a83ac697ba675dcb LICENSE ================================================ FILE: package/python-pybind/python-pybind.mk ================================================ ################################################################################ # # python-pybind # ################################################################################ PYTHON_PYBIND_VERSION = 2.6.1 PYTHON_PYBIND_SITE = $(call github,pybind,pybind11,v$(PYTHON_PYBIND_VERSION)) PYTHON_PYBIND_LICENSE = BSD-3-Clause PYTHON_PYBIND_LICENSE_FILES = LICENSE PYTHON_PYBIND_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pycairo/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYCAIRO bool "python-pycairo" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_CAIRO help Python interface for cairo. https://pycairo.readthedocs.io ================================================ FILE: package/python-pycairo/python-pycairo.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pycairo/json md5 59bc5c5d1debc3af0f6791af9d612551 pycairo-1.19.1.tar.gz sha256 2c143183280feb67f5beb4e543fd49990c28e7df427301ede04fc550d3562e84 pycairo-1.19.1.tar.gz # Locally computed sha256 checksums sha256 360b9a526d47c51a7cab7f1ec49ca5893050562d639b742d588934ff84823a72 COPYING sha256 d80c9d084ebfb50ea1ed91bfbc2410d6ce542097a32c43b00781b83adcb8c77f COPYING-LGPL-2.1 sha256 53692a2ed6c6a2c6ec9b32dd0b820dfae91e0a1fcdf625ca9ed0bdf8705fcc4f COPYING-MPL-1.1 ================================================ FILE: package/python-pycairo/python-pycairo.mk ================================================ ################################################################################ # # python-pycairo # ################################################################################ PYTHON_PYCAIRO_VERSION = 1.19.1 PYTHON_PYCAIRO_SOURCE = pycairo-$(PYTHON_PYCAIRO_VERSION).tar.gz PYTHON_PYCAIRO_SITE = https://files.pythonhosted.org/packages/e8/9d/c8be300fc6b1298559d37a071c3833b0b251e0fff334d2e4c408d5789162 PYTHON_PYCAIRO_SETUP_TYPE = setuptools PYTHON_PYCAIRO_DEPENDENCIES = cairo PYTHON_PYCAIRO_LICENSE = LGPL-2.1 or MPL-1.1 PYTHON_PYCAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1 $(eval $(python-package)) ================================================ FILE: package/python-pycares/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYCARES bool "python-pycares" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_CFFI # runtime help Python interface for c-ares. http://github.com/saghul/pycares ================================================ FILE: package/python-pycares/python-pycares.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pycares/json md5 9e66aa767a0afd681e2a797b835cad1d pycares-4.1.2.tar.gz sha256 03490be0e7b51a0c8073f877bec347eff31003f64f57d9518d419d9369452837 pycares-4.1.2.tar.gz # Locally computed sha256 checksums sha256 427bb3a5372024a26e2c290b24382512bcc7ca123431c4dd178dd613beea7eee LICENSE ================================================ FILE: package/python-pycares/python-pycares.mk ================================================ ################################################################################ # # python-pycares # ################################################################################ PYTHON_PYCARES_VERSION = 4.1.2 PYTHON_PYCARES_SOURCE = pycares-$(PYTHON_PYCARES_VERSION).tar.gz PYTHON_PYCARES_SITE = https://files.pythonhosted.org/packages/83/61/17bd0cfb9c4dc8c3738484d604b50d47c78fe4fcfe0ca2c58a61a106f578 PYTHON_PYCARES_SETUP_TYPE = setuptools PYTHON_PYCARES_LICENSE = MIT PYTHON_PYCARES_LICENSE_FILES = LICENSE PYTHON_PYCARES_DEPENDENCIES = host-python-cffi $(eval $(python-package)) ================================================ FILE: package/python-pycli/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYCLI bool "python-pycli" help The cli package is a framework for making simple, correct command line applications in Python. https://pythonhosted.org/pyCLI/ ================================================ FILE: package/python-pycli/python-pycli.hash ================================================ # md5 from https://pypi.python.org/pypi/pycli/json md5 89c487e7c8068ce05d63394d2ae7ebad pyCLI-2.0.3.tar.gz # Locally computed sha256 bc53e6c5db031ae1c05d131641f153d22a201c5e82cc8c9324a945752efbb622 pyCLI-2.0.3.tar.gz sha256 591490b2ef462a4ad2be1aae5dd47738cb17e191c82d3ba38c3ae906d288e6ba lib/cli/__init__.py ================================================ FILE: package/python-pycli/python-pycli.mk ================================================ ################################################################################ # # python-pycli # ################################################################################ PYTHON_PYCLI_VERSION = 2.0.3 PYTHON_PYCLI_SOURCE = pyCLI-$(PYTHON_PYCLI_VERSION).tar.gz PYTHON_PYCLI_SITE = https://pypi.python.org/packages/95/fc/b2d86a5fbdac4072bcf70b01674b612e1a13026f54962c878fe3eca36fd1 PYTHON_PYCLI_LICENSE = ISC-like PYTHON_PYCLI_LICENSE_FILES = lib/cli/__init__.py PYTHON_PYCLI_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pycparser/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYCPARSER bool "python-pycparser" help C parser in Python https://github.com/eliben/pycparser ================================================ FILE: package/python-pycparser/python-pycparser.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pycparser/json md5 b8f88de737db8c346ee8d31c07c7a25a pycparser-2.20.tar.gz sha256 2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0 pycparser-2.20.tar.gz # Locally computed sha256 checksums sha256 3c76629880aec2f8578ed914701a4ff9e5da8b60acb8b7ec675abf83c90c5168 LICENSE ================================================ FILE: package/python-pycparser/python-pycparser.mk ================================================ ################################################################################ # # python-pycparser # ################################################################################ # Please keep in sync with package/python3-pycparser/python3-pycparser.mk PYTHON_PYCPARSER_VERSION = 2.20 PYTHON_PYCPARSER_SOURCE = pycparser-$(PYTHON_PYCPARSER_VERSION).tar.gz PYTHON_PYCPARSER_SITE = https://files.pythonhosted.org/packages/0f/86/e19659527668d70be91d0369aeaa055b4eb396b0f387a4f92293a20035bd PYTHON_PYCPARSER_SETUP_TYPE = setuptools PYTHON_PYCPARSER_LICENSE = BSD-3-Clause PYTHON_PYCPARSER_LICENSE_FILES = LICENSE $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-pycryptodomex/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYCRYPTODOMEX bool "python-pycryptodomex" help Cryptographic library for Python. https://www.pycryptodome.org ================================================ FILE: package/python-pycryptodomex/python-pycryptodomex.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pycryptodomex/json md5 3d007103f68f7e902167719655d2b57a pycryptodomex-3.11.0.tar.gz sha256 0398366656bb55ebdb1d1d493a7175fc48ade449283086db254ac44c7d318d6d pycryptodomex-3.11.0.tar.gz # Locally computed sha256 checksums sha256 c273fb45d120362875aafdd6189f4d7c70f6c36d4cb7ce427e0dc704753639df LICENSE.rst sha256 8e563c767164faa0831a333b57d23d4311cf566eb1b15d93250f4606be4eb549 Doc/LEGAL/COPYRIGHT.pycrypto ================================================ FILE: package/python-pycryptodomex/python-pycryptodomex.mk ================================================ ################################################################################ # # python-pycryptodomex # ################################################################################ # Please keep in sync with package/python3-pycryptodomex/python3-pycryptodomex.mk PYTHON_PYCRYPTODOMEX_VERSION = 3.11.0 PYTHON_PYCRYPTODOMEX_SOURCE = pycryptodomex-$(PYTHON_PYCRYPTODOMEX_VERSION).tar.gz PYTHON_PYCRYPTODOMEX_SITE = https://files.pythonhosted.org/packages/47/14/dd9ad29cd29ea4cc521286f2cb401ca7ac6fd5db0791c5e9bacaf2c9ac78 PYTHON_PYCRYPTODOMEX_SETUP_TYPE = setuptools PYTHON_PYCRYPTODOMEX_LICENSE = \ BSD-2-Clause, \ Public Domain (pycrypto original code), \ OCB patent license (OCB mode) PYTHON_PYCRYPTODOMEX_LICENSE_FILES = LICENSE.rst Doc/LEGAL/COPYRIGHT.pycrypto $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-pycups/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYCUPS bool "python-pycups" depends on BR2_PACKAGE_CUPS depends on BR2_PACKAGE_PYTHON3 help Python bindings for libcups. https://github.com/zdohnal/pycups ================================================ FILE: package/python-pycups/python-pycups.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pycups/json md5 41eef188b86d01ccfdbaaa05cf0f6ca4 pycups-2.0.1.tar.gz sha256 57434ce5f62548eb12949ca8217f066f4eeb21a5d6ab8b13471dce350e380c90 pycups-2.0.1.tar.gz # Locally computed sha256 checksums sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/python-pycups/python-pycups.mk ================================================ ################################################################################ # # python-pycups # ################################################################################ PYTHON_PYCUPS_VERSION = 2.0.1 PYTHON_PYCUPS_SOURCE = pycups-$(PYTHON_PYCUPS_VERSION).tar.gz PYTHON_PYCUPS_SITE = https://files.pythonhosted.org/packages/0c/bb/82546806a86dc16f5eeb76f62ffdc42cce3d43aacd4e25a8b5300eec0263 PYTHON_PYCUPS_SETUP_TYPE = distutils PYTHON_PYCUPS_LICENSE = GPL-2.0+ PYTHON_PYCUPS_LICENSE_FILES = COPYING PYTHON_PYCUPS_DEPENDENCIES = cups $(eval $(python-package)) ================================================ FILE: package/python-pycurl/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYCURL bool "python-pycurl" ================================================ FILE: package/python-pycurl/python-pycurl.hash ================================================ sha256 0f0cdfc7a92d4f2a5c44226162434e34f7d6967d3af416a6f1448649c09a25a4 pycurl-7.43.0.2.tar.gz ================================================ FILE: package/python-pycurl/python-pycurl.mk ================================================ ################################################################################ # # python-pycurl # ################################################################################ PYTHON_PYCURL_VERSION = 7.43.0.2 PYTHON_PYCURL_SOURCE = pycurl-$(PYTHON_PYCURL_VERSION).tar.gz PYTHON_PYCURL_SITE = https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde PYTHON_PYCURL_SETUP_TYPE = distutils PYTHON_PYCURL_BUILD_OPTS = --curl-config=$(STAGING_DIR)/usr/bin/curl-config --with-openssl PYTHON_PYCURL_INSTALL_TARGET_OPTS = --curl-config=$(STAGING_DIR)/usr/bin/curl-config --with-openssl PYTHON_PYCURL_ENV = PATH=$(PATH):$(STAGING_DIR)/usr/bin $(eval $(python-package)) ================================================ FILE: package/python-pydal/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYDAL bool python-pydal help pyDAL is a pure Python Database Abstraction Layer. It dynamically generates the SQL in real time using the specified dialect for the database back end, so that you do not have to write SQL code or learn different SQL dialects (the term SQL is used generically), and your code will be portable among different types of databases. pyDAL comes from the original web2py's DAL, with the aim of being wide-compatible. pyDAL doesn't require web2py and can be used in any Python context. https://github.com/web2py/pydal ================================================ FILE: package/python-pydal/python-pydal.hash ================================================ # sha256 locally computed sha256 32faf0b7123bc19b5f70da654fc99a22f4ce6fb20f5e4b38aba819e0ab4060aa python-pydal-20200321.1.tar.gz sha256 1f711e93f1e0c2eec576e2e60597dc2ed6f0a661e4749c6b8a39f0d4a72be468 LICENSE.txt ================================================ FILE: package/python-pydal/python-pydal.mk ================================================ ################################################################################ # # python-pydal # ################################################################################ PYTHON_PYDAL_VERSION = 20200321.1 PYTHON_PYDAL_SITE = $(call github,web2py,pydal,v$(PYTHON_PYDAL_VERSION)) PYTHON_PYDAL_LICENSE = BSD-3-Clause PYTHON_PYDAL_LICENSE_FILES = LICENSE.txt PYTHON_PYDAL_SETUP_TYPE = setuptools $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-pydantic/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYDANTIC bool "python-pydantic" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_TYPING_EXTENSIONS # runtime help Data validation and settings management using python 3.6 type hinting. https://github.com/samuelcolvin/pydantic ================================================ FILE: package/python-pydantic/python-pydantic.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pydantic/json md5 7845d2f3c8fe8602f73f53ec5b6dfa29 pydantic-1.8.2.tar.gz sha256 26464e57ccaafe72b7ad156fdaa4e9b9ef051f69e175dbbb463283000c05ab7b pydantic-1.8.2.tar.gz # Locally computed sha256 checksums sha256 9e3946690ac88b6b73e8f001a0586af13568be8852fd514e4393f39761764387 LICENSE ================================================ FILE: package/python-pydantic/python-pydantic.mk ================================================ ################################################################################ # # python-pydantic # ################################################################################ PYTHON_PYDANTIC_VERSION = 1.8.2 PYTHON_PYDANTIC_SOURCE = pydantic-$(PYTHON_PYDANTIC_VERSION).tar.gz PYTHON_PYDANTIC_SITE = https://files.pythonhosted.org/packages/b9/d2/12a808613937a6b98cd50d6467352f01322dc0d8ca9fb5b94441625d6684 PYTHON_PYDANTIC_SETUP_TYPE = setuptools PYTHON_PYDANTIC_LICENSE = MIT PYTHON_PYDANTIC_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-pyelftools/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYELFTOOLS bool "python-pyelftools" help Pyelftools is a Python library for parsing and analyzing ELF files and DWARF debug information. https://github.com/eliben/pyelftools ================================================ FILE: package/python-pyelftools/python-pyelftools.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyelftools/json md5 061d67c669a9b1f8d07f28c47fb6a65f pyelftools-0.27.tar.gz sha256 cde854e662774c5457d688ca41615f6594187ba7067af101232df889a6b7a66b pyelftools-0.27.tar.gz # Locally computed sha256 checksums sha256 ae18bf4cb82f92af7547259177bc28bc48e4fc732518bcedfe690226288d3445 LICENSE ================================================ FILE: package/python-pyelftools/python-pyelftools.mk ================================================ ################################################################################ # # python-pyelftools # ################################################################################ # Please keep in sync with package/python3-pyelftools/python3-pyelftools.mk PYTHON_PYELFTOOLS_VERSION = 0.27 PYTHON_PYELFTOOLS_SOURCE = pyelftools-$(PYTHON_PYELFTOOLS_VERSION).tar.gz PYTHON_PYELFTOOLS_SITE = https://files.pythonhosted.org/packages/6b/b5/f7022f2d950327ba970ec85fb8f85c79244031092c129b6f34ab17514ae0 PYTHON_PYELFTOOLS_LICENSE = Public domain PYTHON_PYELFTOOLS_LICENSE_FILES = LICENSE PYTHON_PYELFTOOLS_SETUP_TYPE = setuptools $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-pyftpdlib/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYFTPDLIB bool "python-pyftpdlib" help Extremely fast and scalable Python FTP server library. https://github.com/giampaolo/pyftpdlib ================================================ FILE: package/python-pyftpdlib/python-pyftpdlib.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyftpdlib/json md5 7f8089520d60171bee5dab2b721e8d00 pyftpdlib-1.5.5.tar.gz sha256 1adf1c03d1508749e7c2f26dc9850ec0ef834318d725b7ae5ac91698f5c86752 pyftpdlib-1.5.5.tar.gz # Locally computed sha256 checksums sha256 18a4ff1ddf890838e36504b307581e3eb42c890a7272ce28b18b3ce1205b7ea8 LICENSE ================================================ FILE: package/python-pyftpdlib/python-pyftpdlib.mk ================================================ ################################################################################ # # python-pyftpdlib # ################################################################################ PYTHON_PYFTPDLIB_VERSION = 1.5.5 PYTHON_PYFTPDLIB_SOURCE = pyftpdlib-$(PYTHON_PYFTPDLIB_VERSION).tar.gz PYTHON_PYFTPDLIB_SITE = https://files.pythonhosted.org/packages/27/64/06a574350c79873e908fa9f48b617e7961de50fc468acc0a05d76771bce9 PYTHON_PYFTPDLIB_SETUP_TYPE = setuptools PYTHON_PYFTPDLIB_LICENSE = MIT PYTHON_PYFTPDLIB_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-pygame/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYGAME bool "python-pygame" select BR2_PACKAGE_SDL help Pygame is a cross-platfrom library designed to make it easy to write multimedia software, such as games, in Python. Pygame requires the Python language and SDL multimedia library. It can also make use of several other popular libraries. http://www.pygame.org/ if BR2_PACKAGE_PYTHON_PYGAME config BR2_PACKAGE_PYTHON_PYGAME_IMAGE bool "pygame.image" select BR2_PACKAGE_SDL_IMAGE select BR2_PACKAGE_SDL_IMAGE_PNG select BR2_PACKAGE_SDL_IMAGE_JPEG help pygame module for loading, saving and transfering images. Will autoselect sdl_image with png and jpeg support. config BR2_PACKAGE_PYTHON_PYGAME_EXAMPLES bool "pygame.examples" help Include examples. Selecting this option adds about 1.5 MB to the target file system. config BR2_PACKAGE_PYTHON_PYGAME_FONT bool "pygame.font" select BR2_PACKAGE_SDL_TTF help pygame module for loading and rendering fonts. Will autoselect sdl_ttf. config BR2_PACKAGE_PYTHON_PYGAME_MIXER bool "pygame.mixer" select BR2_PACKAGE_SDL_MIXER help pygame module for loading and playing sounds. Will autoselect sdl_mixer. config BR2_PACKAGE_PYTHON_PYGAME_MIXER_MUSIC bool "pygame.mixer.music" depends on BR2_PACKAGE_PYTHON_PYGAME_MIXER help pygame module for controlling streamed audio config BR2_PACKAGE_PYTHON_PYGAME_SCRAP bool "pygame.scrap" depends on BR2_PACKAGE_SDL_X11 help pygame module for clipboard support (X11 needed) endif ================================================ FILE: package/python-pygame/python-pygame.hash ================================================ # Locally computed sha256 f95a7dd68ea294d415e36e068d2f533c5a01c67773452d14a535c5c7455681fe pygame-d61ea8eabd56.tar.gz sha256 a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7 LGPL ================================================ FILE: package/python-pygame/python-pygame.mk ================================================ ################################################################################ # # python-pygame # ################################################################################ # 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 = d61ea8eabd56 PYTHON_PYGAME_SOURCE = pygame-$(PYTHON_PYGAME_VERSION).tar.gz PYTHON_PYGAME_SITE = https://bitbucket.org/pygame/pygame PYTHON_PYGAME_SITE_METHOD = hg PYTHON_PYGAME_SETUP_TYPE = distutils PYTHON_PYGAME_LICENSE = LGPL-2.1+ PYTHON_PYGAME_LICENSE_FILES = LGPL ifeq ($(BR2_PACKAGE_PYTHON_PYGAME_IMAGE),y) PYTHON_PYGAME_OPT_DEPENDS += sdl_image endif ifeq ($(BR2_PACKAGE_PYTHON_PYGAME_FONT),y) PYTHON_PYGAME_OPT_DEPENDS += sdl_ttf endif ifeq ($(BR2_PACKAGE_PYTHON_PYGAME_MIXER),y) PYTHON_PYGAME_OPT_DEPENDS += sdl_mixer endif PYTHON_PYGAME_DEPENDENCIES = sdl $(PYTHON_PYGAME_OPT_DEPENDS) ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_IMAGE),y) define PYTHON_PYGAME_UNCONFIGURE_IMAGE $(SED) 's/^imageext/#imageext/' $(@D)/Setup endef endif ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_FONT),y) define PYTHON_PYGAME_UNCONFIGURE_FONT $(SED) 's/^font/#font/' $(@D)/Setup endef endif ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_MIXER),y) define PYTHON_PYGAME_UNCONFIGURE_MIXER $(SED) 's/^mixer/#mixer/g' $(@D)/Setup endef endif # Both require numpy or numeric python module define PYTHON_PYGAME_UNCONFIGURE_SNDARRAY $(SED) 's/^_numericsndarray/#_numericsndarray/' $(@D)/Setup endef define PYTHON_PYGAME_UNCONFIGURE_SURFARRAY $(SED) 's/^_numericsurfarray/#_numericsurfarray/' $(@D)/Setup endef # Requires smpeg define PYTHON_PYGAME_UNCONFIGURE_MOVIE $(SED) 's/^movie/#movie/' $(@D)/Setup endef ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_SCRAP),y) define PYTHON_PYGAME_UNCONFIGURE_SCRAP $(SED) 's/^scrap/#scrap/' $(@D)/Setup 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` # Pygame needs a Setup file where options should be commented out if # dependencies are not available define PYTHON_PYGAME_CONFIGURE_CMDS cp -f $(@D)/Setup.in $(@D)/Setup $(SED) "s~^SDL = ~SDL = $(PYTHON_PYGAME_SDL_FLAGS) \n#~" $(@D)/Setup $(SED) 's/^pypm/#pypm/' $(@D)/Setup $(PYTHON_PYGAME_UNCONFIGURE_IMAGE) $(PYTHON_PYGAME_UNCONFIGURE_FONT) $(PYTHON_PYGAME_UNCONFIGURE_MIXER) $(PYTHON_PYGAME_UNCONFIGURE_SNDARRAY) $(PYTHON_PYGAME_UNCONFIGURE_SURFARRAY) $(PYTHON_PYGAME_UNCONFIGURE_MOVIE) $(PYTHON_PYGAME_UNCONFIGURE_SCRAP) $(PYTHON_PYGAME_UNCONFIGURE_FREETYPE) endef define PYTHON_PYGAME_REMOVE_DOC rm -rf $(TARGET_DIR)/usr/lib/python*/site-packages/pygame/docs endef PYTHON_PYGAME_POST_INSTALL_TARGET_HOOKS += PYTHON_PYGAME_REMOVE_DOC define PYTHON_PYGAME_REMOVE_TESTS rm -rf $(TARGET_DIR)/usr/lib/python*/site-packages/pygame/tests endef PYTHON_PYGAME_POST_INSTALL_TARGET_HOOKS += PYTHON_PYGAME_REMOVE_TESTS ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_EXAMPLES),y) define PYTHON_PYGAME_REMOVE_EXAMPLES rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/pygame/examples endef PYTHON_PYGAME_POST_INSTALL_TARGET_HOOKS += PYTHON_PYGAME_REMOVE_EXAMPLES endif $(eval $(python-package)) ================================================ FILE: package/python-pygments/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYGMENTS bool "python-pygments" depends on BR2_PACKAGE_PYTHON3 help Pygments is a syntax highlighting package written in Python. https://pypi.python.org/pypi/Pygments ================================================ FILE: package/python-pygments/python-pygments.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pygments/json md5 390a49fa0eb5486a795b2b54b9a7b666 Pygments-2.7.4.tar.gz sha256 df49d09b498e83c1a73128295860250b0b7edd4c723a32e9bc0d295c7c2ec337 Pygments-2.7.4.tar.gz # Locally computed sha256 checksums sha256 c012cf17a2ba79142977c8cc5bb1497a675401bf79c2c9b95a7604e2ddfde8b8 LICENSE ================================================ FILE: package/python-pygments/python-pygments.mk ================================================ ################################################################################ # # python-pygments # ################################################################################ PYTHON_PYGMENTS_VERSION = 2.7.4 PYTHON_PYGMENTS_SOURCE = Pygments-$(PYTHON_PYGMENTS_VERSION).tar.gz PYTHON_PYGMENTS_SITE = https://files.pythonhosted.org/packages/e1/86/8059180e8217299079d8719c6e23d674aadaba0b1939e25e0cc15dcf075b PYTHON_PYGMENTS_LICENSE = BSD-2-Clause PYTHON_PYGMENTS_LICENSE_FILES = LICENSE PYTHON_PYGMENTS_CPE_ID_VENDOR = pygments PYTHON_PYGMENTS_CPE_ID_PRODUCT = pygments PYTHON_PYGMENTS_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pyhamcrest/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYHAMCREST bool "python-pyhamcrest" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON_SIX # runtime help Hamcrest framework for matcher objects. https://github.com/hamcrest/PyHamcrest ================================================ FILE: package/python-pyhamcrest/python-pyhamcrest.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyhamcrest/json md5 7a086f0b067f8d38958ec32f054559b4 PyHamcrest-2.0.2.tar.gz sha256 412e00137858f04bde0729913874a48485665f2d36fe9ee449f26be864af9316 PyHamcrest-2.0.2.tar.gz # Locally computed sha256 checksums sha256 71beae6c8151362cfe398cbd350191a1cc52d3d28499839a7830b25f5b50a7fe LICENSE.txt ================================================ FILE: package/python-pyhamcrest/python-pyhamcrest.mk ================================================ ################################################################################ # # python-pyhamcrest # ################################################################################ PYTHON_PYHAMCREST_VERSION = 2.0.2 PYTHON_PYHAMCREST_SOURCE = PyHamcrest-$(PYTHON_PYHAMCREST_VERSION).tar.gz PYTHON_PYHAMCREST_SITE = https://files.pythonhosted.org/packages/58/05/7b993fabb44ff0b52a90916d96bfd91a65ecf90b8248e72bba325ba8e438 PYTHON_PYHAMCREST_SETUP_TYPE = setuptools PYTHON_PYHAMCREST_LICENSE = BSD-3-Clause PYTHON_PYHAMCREST_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-pyhocon/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYHOCON bool "python-pyhocon" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_PYPARSING help HOCON parser for Python https://github.com/chimpler/pyhocon ================================================ FILE: package/python-pyhocon/python-pyhocon.hash ================================================ sha256 94ceda402ce1718ead26fc725695a4f5a5671ce643da3c50514e049017098082 pyhocon-0.3.51.tar.gz ================================================ FILE: package/python-pyhocon/python-pyhocon.mk ================================================ ################################################################################ # # python-pyhocon # ################################################################################ PYTHON_PYHOCON_VERSION = 0.3.51 PYTHON_PYHOCON_SOURCE = pyhocon-$(PYTHON_PYHOCON_VERSION).tar.gz PYTHON_PYHOCON_SITE = https://files.pythonhosted.org/packages/3f/35/34e16968df0b8b65d3696d80b8add0aaffd4f0461c1ef3c0f066fdc747e8 PYTHON_PYHOCON_LICENSE = Apache-2.0 PYTHON_PYHOCON_LICENSE_FILES = LICENSE PYTHON_PYHOCON_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pyicu/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYICU bool "python-pyicu" depends on !BR2_BINFMT_FLAT # icu depends on BR2_HOST_GCC_AT_LEAST_4_9 # icu depends on BR2_INSTALL_LIBSTDCPP # icu depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # icu select BR2_PACKAGE_ICU help Python extension wrapping the ICU C++ API. https://github.com/ovalhub/pyicu comment "python-pyicu needs a toolchain w/ C++, gcc >= 4.9, host gcc >= 4.9" depends on !BR2_BINFMT_FLAT depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/python-pyicu/python-pyicu.hash ================================================ # md5 from https://pypi.python.org/pypi/PyICU/json md5 7656f5cc53a7c18b40e653d6eefdee14 PyICU-1.9.7.tar.gz # Locally computed sha256 db27cd1cc150b879c5465872bec7fdaf340eca140aa922be03891d5b9f855b61 PyICU-1.9.7.tar.gz sha256 74bbadee4ee3c3a1ac0ecfbd74bc7ce64046de1ceddf4717dc923809ca8ffce3 LICENSE ================================================ FILE: package/python-pyicu/python-pyicu.mk ================================================ ################################################################################ # # python-pyicu # ################################################################################ PYTHON_PYICU_VERSION = 1.9.7 PYTHON_PYICU_SOURCE = PyICU-$(PYTHON_PYICU_VERSION).tar.gz PYTHON_PYICU_SITE = https://pypi.python.org/packages/6e/88/f42a1297909ca6d9113ba37b37067011ae29432fe592fdd98cf52ad23b77 PYTHON_PYICU_LICENSE = MIT PYTHON_PYICU_LICENSE_FILES = LICENSE PYTHON_PYICU_DEPENDENCIES = icu PYTHON_PYICU_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pyinotify/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYINOTIFY bool "python-pyinotify" help Monitoring filesystems events with inotify on Linux. https://github.com/seb-m/pyinotify ================================================ FILE: package/python-pyinotify/python-pyinotify.hash ================================================ # Locally calculated sha256 7943f198c5cef2bdc121d847937fbe565daaa7d4daaf1b8de8ef5689812f481c python-pyinotify-0.9.6.tar.gz sha256 97c96d577f761e23c7778bda2b163dba7b94e4defdd7873b7155bed252820608 COPYING ================================================ FILE: package/python-pyinotify/python-pyinotify.mk ================================================ ################################################################################ # # python-pyinotify # ################################################################################ PYTHON_PYINOTIFY_VERSION = 0.9.6 PYTHON_PYINOTIFY_SITE = $(call github,seb-m,pyinotify,$(PYTHON_PYINOTIFY_VERSION)) PYTHON_PYINOTIFY_SETUP_TYPE = setuptools PYTHON_PYINOTIFY_LICENSE = MIT PYTHON_PYINOTIFY_LICENSE_FILES = COPYING $(eval $(python-package)) ================================================ FILE: package/python-pyjwt/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYJWT bool "python-pyjwt" depends on BR2_PACKAGE_PYTHON3 help JSON Web Token implementation in Python. http://github.com/jpadilla/pyjwt ================================================ FILE: package/python-pyjwt/python-pyjwt.hash ================================================ # md5, sha256 from https://pypi.org/pypi/PyJWT/json md5 60cf2d463157bf21eb37be0430521036 PyJWT-2.3.0.tar.gz sha256 b888b4d56f06f6dcd777210c334e69c737be74755d3e5e9ee3fe67dc18a0ee41 PyJWT-2.3.0.tar.gz # Locally computed sha256 checksums sha256 ec82af815b5f9da8685afb300cc5beb7949e1c22b79b6c1c054796cefdf6cac6 LICENSE ================================================ FILE: package/python-pyjwt/python-pyjwt.mk ================================================ ################################################################################ # # python-pyjwt # ################################################################################ PYTHON_PYJWT_VERSION = 2.3.0 PYTHON_PYJWT_SOURCE = PyJWT-$(PYTHON_PYJWT_VERSION).tar.gz PYTHON_PYJWT_SITE = https://files.pythonhosted.org/packages/1d/8e/01bdcfdbb352daaba8ea406d9df149c5bba7dbf70f908d4fa4c269fe6a08 PYTHON_PYJWT_SETUP_TYPE = setuptools PYTHON_PYJWT_LICENSE = MIT PYTHON_PYJWT_LICENSE_FILES = LICENSE PYTHON_PYJWT_CPE_ID_VENDOR = pyjwt_project PYTHON_PYJWT_CPE_ID_PRODUCT = pyjwt $(eval $(python-package)) ================================================ FILE: package/python-pylibftdi/0001-do-not-use-find-library.patch ================================================ Hard code library loading Shortcut the search for the libraries in case the built in find_library is broken. As buildroot does not ship any of the external programs that the core procedure use to find libraries use the canonical name of the shared object and load it. In this case this affects loading libftdi and libusb. This should be reliable as we specify said libs as dependencies of this package. Signed-off-by: Christian Kellermann --- diff -purN pylibftdi-0.15.0.orig/pylibftdi/driver.py pylibftdi-0.15.0/pylibftdi/driver.py --- pylibftdi-0.15.0.orig/pylibftdi/driver.py 2015-04-26 22:41:39.000000000 +0200 +++ pylibftdi-0.15.0/pylibftdi/driver.py 2017-02-27 13:08:56.502958000 +0100 @@ -121,8 +121,8 @@ class Driver(object): lib = getattr(cdll, lib_path) break if lib is None: - raise LibraryMissingError('{} library not found (search: {})'.format( - name, search_list)) + return cdll.LoadLibrary(name + '.so') + return lib @property ================================================ FILE: package/python-pylibftdi/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYLIBFTDI bool "python-pylibftdi" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libftdi -> libusb select BR2_PACKAGE_LIBFTDI help This package contains the python language binding libftdi. https://pypi.python.org/pypi/pylibftdi comment "python-pylibftdi needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/python-pylibftdi/python-pylibftdi.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pylibftdi/json md5 c48e442cef7b1e865b4d96ab92f509ad pylibftdi-0.18.1.tar.gz sha256 bdd04076933959b20b3c8b4fb8be7882d3362675f259e7eeb23ebff03b81859d pylibftdi-0.18.1.tar.gz # Locally computed sha256 checksums sha256 0e40132339e1ef7d17d93837fbc273d1e87302e9295162bd19c9161e5700ddcc LICENSE.txt ================================================ FILE: package/python-pylibftdi/python-pylibftdi.mk ================================================ ################################################################################ # # python-pylibftdi # ################################################################################ PYTHON_PYLIBFTDI_VERSION = 0.18.1 PYTHON_PYLIBFTDI_SOURCE = pylibftdi-$(PYTHON_PYLIBFTDI_VERSION).tar.gz PYTHON_PYLIBFTDI_SITE = https://files.pythonhosted.org/packages/50/9b/1e1cdb9715bacfb83e5eaf5e69f4e2fbd92d61f43c5e185cc3935ec01b28 PYTHON_PYLIBFTDI_LICENSE = MIT PYTHON_PYLIBFTDI_LICENSE_FILES = LICENSE.txt PYTHON_PYLIBFTDI_DEPENDENCIES = libftdi PYTHON_PYLIBFTDI_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pylru/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYLRU bool "python-pylru" help A least recently used (LRU) cache implementation. https://github.com/jlhutch/pylru ================================================ FILE: package/python-pylru/python-pylru.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pylru/json md5 8f0050f86d1fa68bb18673de37da543b pylru-1.2.0.tar.gz sha256 492f934bb98dc6c8b2370c02c95c65516ddc08c8f64d27f70087eb038621d297 pylru-1.2.0.tar.gz # Locally computed sha256 checksums sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.txt ================================================ FILE: package/python-pylru/python-pylru.mk ================================================ ################################################################################ # # python-pylru # ################################################################################ PYTHON_PYLRU_VERSION = 1.2.0 PYTHON_PYLRU_SOURCE = pylru-$(PYTHON_PYLRU_VERSION).tar.gz PYTHON_PYLRU_SITE = https://files.pythonhosted.org/packages/9c/88/30972cd0518452563221c80bffc2a5832499d736648ef8fe492affae15c5 PYTHON_PYLRU_SETUP_TYPE = setuptools PYTHON_PYLRU_LICENSE = GPL-2.0 PYTHON_PYLRU_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-pymodbus/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYMODBUS bool "python-pymodbus" select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_SERIAL # runtime help Pymodbus is a full Modbus protocol implementation. https://github.com/riptideio/pymodbus ================================================ FILE: package/python-pymodbus/python-pymodbus.hash ================================================ sha256 26c1aa9919b24f2247794d5d9d80f65ec06fdfd9bd6b76b81d446b55335cabf3 pymodbus-3.5.2.tar.gz sha256 796a47993313691ea404d8af7e4c0f9daf1d2760e3900938985b59c9008eee2f doc/LICENSE ================================================ FILE: package/python-pymodbus/python-pymodbus.mk ================================================ ################################################################################ # # python-pymodbus # ################################################################################ PYTHON_PYMODBUS_VERSION = 3.5.2 PYTHON_PYMODBUS_SOURCE = pymodbus-$(PYTHON_PYMODBUS_VERSION).tar.gz PYTHON_PYMODBUS_SITE = https://files.pythonhosted.org/packages/cc/f4/0b001d0199203d5432d0347855fd666de129e248713e2479bbbb0f0788b6 PYTHON_PYMODBUS_SETUP_TYPE = setuptools PYTHON_PYMODBUS_LICENSE = BSD-3-Clause PYTHON_PYMODBUS_LICENSE_FILES = doc/LICENSE ifeq ($(BR2_PACKAGE_PYTHON),y) # only needed/valid for python 3.x define PYTHON_PYMODBUS_RM_PY3_FILES rm -rf $(TARGET_DIR)/usr/lib/python*/site-packages/pymodbus/client/asynchronous/asyncio endef PYTHON_PYMODBUS_POST_INSTALL_TARGET_HOOKS += PYTHON_PYMODBUS_RM_PY3_FILES endif $(eval $(python-package)) ================================================ FILE: package/python-pymongo/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYMONGO bool "python-pymongo" help Python driver for MongoDB http://www.mongodb.org ================================================ FILE: package/python-pymongo/python-pymongo.hash ================================================ sha256 a9c1a2538cd120283e7137ac97ce27ebdfcb675730c5055d6332b0043f4e5a55 pymongo-3.11.1.tar.gz ================================================ FILE: package/python-pymongo/python-pymongo.mk ================================================ ################################################################################ # # python-pymongo # ################################################################################ PYTHON_PYMONGO_VERSION = 3.11.1 PYTHON_PYMONGO_SOURCE = pymongo-$(PYTHON_PYMONGO_VERSION).tar.gz PYTHON_PYMONGO_SITE = https://files.pythonhosted.org/packages/15/dc/bc9f2692cd9ece34236950db1c27573ab28a2a5d1d651af57c67839aa593 PYTHON_PYMONGO_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pymupdf/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYMUPDF bool "python-pymupdf" depends on BR2_INSTALL_LIBSTDCPP # mupdf -> harfbuzz depends on BR2_TOOLCHAIN_HAS_SYNC_4 # mupdf -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # mupdf -> harfbuzz depends on BR2_PACKAGE_XORG7 depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_MUPDF select BR2_PACKAGE_ZLIB help Python bindings for the PDF rendering library MuPDF. https://github.com/pymupdf/PyMuPDF comment "python-pymupdf needs Xorg" depends on BR2_PACKAGE_PYTHON3 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_PACKAGE_XORG7 comment "python-pymupdf needs a toolchain w/ C++, gcc >= 4.8" depends on BR2_PACKAGE_PYTHON3 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/python-pymupdf/python-pymupdf.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pymupdf/json md5 70d6c2232e531772bbe9a813044262f9 PyMuPDF-1.18.14.tar.gz sha256 efe85cb80f79cc3f3890aa2ab82b962b8a999ca078e33e9bacc5d0be5c4656dc PyMuPDF-1.18.14.tar.gz # Locally computed: sha256 282751b8c98ee9e445346eb57a992c9ecbe25ed8dd554df046777313e19b10f9 COPYING ================================================ FILE: package/python-pymupdf/python-pymupdf.mk ================================================ ################################################################################ # # python-pymupdf # ################################################################################ # python-pymupdf's version must match mupdf's version PYTHON_PYMUPDF_VERSION = 1.18.14 PYTHON_PYMUPDF_SOURCE = PyMuPDF-$(PYTHON_PYMUPDF_VERSION).tar.gz PYTHON_PYMUPDF_SITE = https://files.pythonhosted.org/packages/41/f6/dbefe3d6949fa81fb7bcac9141e4345330d272724718ac5a6af78297498b PYTHON_PYMUPDF_SETUP_TYPE = setuptools PYTHON_PYMUPDF_LICENSE = GPL-3.0, AGPL-3.0+ (code generated from mupdf) PYTHON_PYMUPDF_LICENSE_FILES = COPYING # No license file included in pip, but it's present on github PYTHON_PYMUPDF_DEPENDENCIES = freetype mupdf zlib PYTHON_PYMUPDF_ENV = CFLAGS="-I$(STAGING_DIR)/usr/include/mupdf -I$(STAGING_DIR)/usr/include/freetype2" # We need to remove the original paths as we provide them in the CFLAGS: define PYTHON_PYMUPDF_REMOVE_PATHS sed -i "/\/usr\/include\/mupdf/d" $(@D)/setup.py sed -i "/\/usr\/include\/freetype2/d" $(@D)/setup.py sed -i "/\/usr\/local\/include\/mupdf/d" $(@D)/setup.py sed -i "/mupdf\/thirdparty\/freetype\/include/d" $(@D)/setup.py endef PYTHON_PYMUPDF_POST_PATCH_HOOKS = PYTHON_PYMUPDF_REMOVE_PATHS $(eval $(python-package)) ================================================ FILE: package/python-pymysql/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYMYSQL bool "python-pymysql" depends on BR2_PACKAGE_PYTHON3 help PyMySQL is a pure-Python MySQL client library. It follows the DB-API 2.0. https://pypi.python.org/pypi/PyMySQL/ ================================================ FILE: package/python-pymysql/python-pymysql.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pymysql/json md5 3fe6ff2eefb58af5c54d335c6e0216de PyMySQL-1.0.2.tar.gz sha256 816927a350f38d56072aeca5dfb10221fe1dc653745853d30a216637f5d7ad36 PyMySQL-1.0.2.tar.gz # Locally computed sha256 checksums sha256 314120dc65f0800f738a4b31400c76ee14decd1fbe77ce9c3540a421b86ea7b6 LICENSE ================================================ FILE: package/python-pymysql/python-pymysql.mk ================================================ ################################################################################ # # python-pymysql # ################################################################################ PYTHON_PYMYSQL_VERSION = 1.0.2 PYTHON_PYMYSQL_SOURCE = PyMySQL-$(PYTHON_PYMYSQL_VERSION).tar.gz PYTHON_PYMYSQL_SITE = https://files.pythonhosted.org/packages/60/ea/33b8430115d9b617b713959b21dfd5db1df77425e38efea08d121e83b712 PYTHON_PYMYSQL_LICENSE = MIT PYTHON_PYMYSQL_LICENSE_FILES = LICENSE PYTHON_PYMYSQL_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pynacl/0001-Remove-spurious-requirement-for-wheel-596.patch ================================================ From 44fb453931c611d4822343debe902cca8e1c8afe Mon Sep 17 00:00:00 2001 From: Scott Kitterman Date: Tue, 26 May 2020 20:08:16 -0400 Subject: [PATCH] Remove spurious requirement for wheel (#596) * Remove spurious requirement for wheel * Put wheel back in pyproject.toml Co-authored-by: Scott Kitterman Signed-off-by: James Hilliard [james.hilliard1@gmail.com: backport from upstream commit 44fb453931c611d4822343debe902cca8e1c8afe] --- setup.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 9319c1c..d82a7fe 100644 --- a/setup.py +++ b/setup.py @@ -35,8 +35,7 @@ except ImportError: requirements = ["six"] -setup_requirements = ["setuptools", - "wheel"] +setup_requirements = ["setuptools"] test_requirements = ["pytest>=3.2.1,!=3.3.0", "hypothesis>=3.27.0"] docs_requirements = ["sphinx>=1.6.5", -- 2.25.1 ================================================ FILE: package/python-pynacl/Config.in ================================================ 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 ================================================ FILE: package/python-pynacl/python-pynacl.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pynacl/json md5 8c6c57893327a694c72510fb620e4744 PyNaCl-1.4.0.tar.gz sha256 54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505 PyNaCl-1.4.0.tar.gz # Locally computed sha256 checksums sha256 d3174ad63e721d4c9dccb8ad4320848992d314369bc46319720b5802c9153fe9 LICENSE ================================================ FILE: package/python-pynacl/python-pynacl.mk ================================================ ################################################################################ # # python-pynacl # ################################################################################ PYTHON_PYNACL_VERSION = 1.4.0 PYTHON_PYNACL_SOURCE = PyNaCl-$(PYTHON_PYNACL_VERSION).tar.gz PYTHON_PYNACL_SITE = https://files.pythonhosted.org/packages/cf/5a/25aeb636baeceab15c8e57e66b8aa930c011ec1c035f284170cacb05025e 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)) ================================================ FILE: package/python-pyndiff/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYNDIFF bool "python-pyndiff" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_XMLJSON # runtime select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime help Generate human-readable ndiff output when comparing 2 Nmap XML scan files. https://github.com/rackerlabs/pyndiff ================================================ FILE: package/python-pyndiff/python-pyndiff.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyndiff/json md5 32a9f994509cb883bbfeb563171f2668 pyndiff-1.0.2.tar.gz sha256 8a519b18a7bbb315c043d4543719ce9fb6db8098bfcdd04cb8054b276cc91368 pyndiff-1.0.2.tar.gz # Locally computed sha256 checksums sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/python-pyndiff/python-pyndiff.mk ================================================ ################################################################################ # # python-pyndiff # ################################################################################ PYTHON_PYNDIFF_VERSION = 1.0.2 PYTHON_PYNDIFF_SOURCE = pyndiff-$(PYTHON_PYNDIFF_VERSION).tar.gz PYTHON_PYNDIFF_SITE = https://files.pythonhosted.org/packages/83/3b/fb13918710c4fba40367140f22e3449998f4f66869a7564d0e547ad99ef8 PYTHON_PYNDIFF_SETUP_TYPE = setuptools PYTHON_PYNDIFF_LICENSE = Apache-2.0 PYTHON_PYNDIFF_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-pyopenssl/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYOPENSSL bool "python-pyopenssl" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-cryptography depends on BR2_PACKAGE_PYTHON3 # 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 ================================================ FILE: package/python-pyopenssl/python-pyopenssl.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyopenssl/json md5 d9804fedbd1eb0c7d9243397b1fbf972 pyOpenSSL-19.1.0.tar.gz sha256 9a24494b2602aaf402be5c9e30a0b82d4a5c67528fe8fb475e3f3bc00dd69507 pyOpenSSL-19.1.0.tar.gz # Locally computed sha256 sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/python-pyopenssl/python-pyopenssl.mk ================================================ ################################################################################ # # python-pyopenssl # ################################################################################ PYTHON_PYOPENSSL_VERSION = 19.1.0 PYTHON_PYOPENSSL_SOURCE = pyOpenSSL-$(PYTHON_PYOPENSSL_VERSION).tar.gz PYTHON_PYOPENSSL_SITE = https://files.pythonhosted.org/packages/0d/1d/6cc4bd4e79f78be6640fab268555a11af48474fac9df187c3361a1d1d2f0 PYTHON_PYOPENSSL_LICENSE = Apache-2.0 PYTHON_PYOPENSSL_LICENSE_FILES = LICENSE PYTHON_PYOPENSSL_CPE_ID_VENDOR = pyopenssl PYTHON_PYOPENSSL_CPE_ID_PRODUCT = pyopenssl PYTHON_PYOPENSSL_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pyparsing/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYPARSING bool "python-pyparsing" help The pyparsing module is an alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions. The pyparsing module provides a library of classes that client code uses to construct the grammar directly in Python code. https://github.com/pyparsing/pyparsing/ ================================================ FILE: package/python-pyparsing/python-pyparsing.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyparsing/json md5 f0953e47a0112f7a65aec2305ffdf7b4 pyparsing-2.4.7.tar.gz sha256 c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1 pyparsing-2.4.7.tar.gz # Locally computed sha256 checksums sha256 10d5120a16805804ffda8b688c220bfb4e8f39741b57320604d455a309e01972 LICENSE ================================================ FILE: package/python-pyparsing/python-pyparsing.mk ================================================ ################################################################################ # # python-pyparsing # ################################################################################ PYTHON_PYPARSING_VERSION = 2.4.7 PYTHON_PYPARSING_SOURCE = pyparsing-$(PYTHON_PYPARSING_VERSION).tar.gz PYTHON_PYPARSING_SITE = https://files.pythonhosted.org/packages/c1/47/dfc9c342c9842bbe0036c7f763d2d6686bcf5eb1808ba3e170afdb282210 PYTHON_PYPARSING_LICENSE = MIT PYTHON_PYPARSING_LICENSE_FILES = LICENSE PYTHON_PYPARSING_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pyparted/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYPARTED bool "python-pyparted" depends on BR2_PACKAGE_PYTHON3 depends on BR2_ENABLE_LOCALE # parted depends on BR2_USE_WCHAR select BR2_PACKAGE_PARTED help Python bindings for GNU parted (libparted). https://github.com/rhinstaller/pyparted comment "pyparted needs a toolchain w/ locale, wchar" depends on BR2_PACKAGE_PYTHON3 depends on !BR2_ENABLE_LOCALE || !BR2_USE_WCHAR ================================================ FILE: package/python-pyparted/python-pyparted.hash ================================================ # Locally computed sha256 d214288ae1a70b5925861ce01b3352378eb6b1419aa3b786f509e9ef2a501c02 python-pyparted-3.11.6.tar.gz sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/python-pyparted/python-pyparted.mk ================================================ ################################################################################ # # python-pyparted # ################################################################################ PYTHON_PYPARTED_VERSION = 3.11.6 PYTHON_PYPARTED_SITE = $(call github,rhinstaller,pyparted,v$(PYTHON_PYPARTED_VERSION)) PYTHON_PYPARTED_SETUP_TYPE = distutils PYTHON_PYPARTED_LICENSE = GPL-2.0+ PYTHON_PYPARTED_LICENSE_FILES = COPYING PYTHON_PYPARTED_DEPENDENCIES = parted $(eval $(python-package)) ================================================ FILE: package/python-pypcap/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYPCAP bool "python-pypcap" depends on BR2_PACKAGE_PYTHON select BR2_PACKAGE_LIBPCAP help The pypcap module is an object-oriented wrapper of the C libpcap library. https://github.com/dugsong/pypcap ================================================ FILE: package/python-pypcap/python-pypcap.hash ================================================ # locally computed sha256 5716d97b39d40b79daf7b0c6a8c8c514f5f1de8f20561c8621ee62a90b93fb03 python-pypcap-6f46e7bf29a648256ddc732a7d0ec83d3ffca390.tar.gz sha256 48306c284fdbdf836b880528c3bdd658deac47ed78ffeb24a4ca5a8c39a39304 LICENSE ================================================ FILE: package/python-pypcap/python-pypcap.mk ================================================ ################################################################################ # # python-pypcap # ################################################################################ PYTHON_PYPCAP_VERSION = 6f46e7bf29a648256ddc732a7d0ec83d3ffca390 PYTHON_PYPCAP_SITE = $(call github,dugsong,pypcap,$(PYTHON_PYPCAP_VERSION)) PYTHON_PYPCAP_LICENSE = BSD-3-Clause PYTHON_PYPCAP_LICENSE_FILES = LICENSE PYTHON_PYPCAP_SETUP_TYPE = distutils PYTHON_PYPCAP_DEPENDENCIES = host-python-pyrex libpcap define PYTHON_PYPCAP_CONFIGURE_CMDS $(HOST_DIR)/bin/python2 $(HOST_DIR)/bin/pyrexc $(@D)/pcap.pyx (cd $(@D); \ $(HOST_DIR)/bin/python setup.py \ config --with-pcap=$(STAGING_DIR)/usr) endef $(eval $(python-package)) ================================================ FILE: package/python-pyqrcode/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYQRCODE bool "python-pyqrcode" select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 # runtime select BR2_PACKAGE_PYTHON_CODECSCJK if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_CODECSCJK if BR2_PACKAGE_PYTHON3 # runtime help A QR code generator written purely in Python with SVG, EPS, PNG and terminal output. https://github.com/mnooner256/pyqrcode ================================================ FILE: package/python-pyqrcode/python-pyqrcode.hash ================================================ # md5 from https://pypi.python.org/pypi/pyqrcode/json md5 371f29f4b03bd2830c6e0319258b1259 PyQRCode-1.2.1.tar.gz # Locally computed sha256 fdbf7634733e56b72e27f9bce46e4550b75a3a2c420414035cae9d9d26b234d5 PyQRCode-1.2.1.tar.gz sha256 bef0c3595451da5132dea99e288fb5dafcbc469e0643f993a4ba0a69980f5ec9 setup.py ================================================ FILE: package/python-pyqrcode/python-pyqrcode.mk ================================================ ################################################################################ # # python-pyqrcode # ################################################################################ PYTHON_PYQRCODE_VERSION = 1.2.1 PYTHON_PYQRCODE_SOURCE = PyQRCode-$(PYTHON_PYQRCODE_VERSION).tar.gz PYTHON_PYQRCODE_SITE = https://pypi.python.org/packages/37/61/f07226075c347897937d4086ef8e55f0a62ae535e28069884ac68d979316 PYTHON_PYQRCODE_SETUP_TYPE = setuptools PYTHON_PYQRCODE_LICENSE = BSD-3-Clause PYTHON_PYQRCODE_LICENSE_FILES = setup.py $(eval $(python-package)) ================================================ FILE: package/python-pyqt5/0001-configure-skip-qtdetail.patch ================================================ Do not run qtdetail qtdetail is a tool that generates qtdetail.out. Since this program is cross-compiled, it's not possible to run it on the host. Consequently, python-pyqt5.mk generates the qtdetail.out file before calling configure.py. Therefore, this patch makes sure that the pre-generated qtdetail.out file is kept, and that qtdetail is not executed. Signed-off-by: Gwenhael Goavec-Merou Signed-off-by: Sergey Kostanbaev --- Index: PyQt5_gpl-5.7/configure.py =================================================================== --- PyQt5_gpl-5.7.orig/configure.py +++ PyQt5_gpl-5.7/configure.py @@ -672,10 +672,6 @@ int main(int argc, char **argv) if cmd is None: error("Failed to determine the detail of your Qt installation. Try again using the --verbose flag to see more detail about the problem.") - # Create the output file, first making sure it doesn't exist. - remove_file(out_file) - run_command(cmd, verbose) - if not os.access(out_file, os.F_OK): error("%s failed to create %s. Make sure your Qt installation is correct." % (cmd, out_file)) ================================================ FILE: package/python-pyqt5/0002-fix-qt-5.6.2.patch ================================================ Fix the build with Qt 5.6.{2,3} Building PyQt 5.7 with versions of Qt older than Qt 5.7 is supposed to work, but currently fails in practice. In fact, this is due to the fact that the %Timeline variable in QtCoremod.sip didn't contain the 5.6.{2,3} Qt versions, so if this version was used, PyQt was assuming it was the later version 5.7, and therefore started enabling APIs only available in Qt 5.7, causing build failures when building against Qt 5.6.{2,3}. Adding Qt_5_6_2 and Qt_5_6_3 to the timeline fixes this problem. This fix was suggested by Phil Thompson . Signed-off-by: Thomas Petazzoni Index: PyQt5_gpl-5.7/sip/QtCore/QtCoremod.sip =================================================================== --- PyQt5_gpl-5.7.orig/sip/QtCore/QtCoremod.sip 2016-07-25 15:55:37.000000000 +0200 +++ PyQt5_gpl-5.7/sip/QtCore/QtCoremod.sip 2016-10-26 15:45:43.577153825 +0200 @@ -22,7 +22,7 @@ %Module(name=PyQt5.QtCore, call_super_init=True, default_VirtualErrorHandler=PyQt5, keyword_arguments="Optional", version=1) -%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_7_0} +%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_6_3 Qt_5_7_0} %Platforms {WS_X11 WS_WIN WS_MACX} ================================================ FILE: package/python-pyqt5/0003-remove-WindowOkButtonHint-and-WindowCancelButtonHint.patch ================================================ From bb7cbdede46f72468bbb1b9bbefd43a1dbad21c0 Mon Sep 17 00:00:00 2001 From: Zoltan Gyarmati Date: Mon, 30 Jan 2017 18:28:15 +0100 Subject: [PATCH] remove WindowOkButtonHint and WindowCancelButtonHint from qnamespace.sip as they are removed from qt5.8 Signed-off-by: Zoltan Gyarmati --- sip/QtCore/qnamespace.sip | 2 -- 1 file changed, 2 deletions(-) diff --git a/sip/QtCore/qnamespace.sip b/sip/QtCore/qnamespace.sip index 2db83b7..559f410 100644 --- a/sip/QtCore/qnamespace.sip +++ b/sip/QtCore/qnamespace.sip @@ -209,8 +209,6 @@ namespace Qt WindowContextHelpButtonHint, WindowShadeButtonHint, WindowStaysOnTopHint, - WindowOkButtonHint, - WindowCancelButtonHint, WindowStaysOnBottomHint, WindowCloseButtonHint, MacWindowToolBarButtonHint, -- 2.7.4 ================================================ FILE: package/python-pyqt5/0004-drop-qttest-qtestmouse-waitforevents.patch ================================================ Drop waitForEvents() method from qtestmouse This method was dropped in Qt 5.11: https://github.com/qt/qtbase/commit/75e583b3fcbdbbb999633eb5f2267720dd695cfa However, Python PyQt5 still generates a wrapper for it, causing a build failure. The upstream PyQt5 maintainers have not kept waitForEvents() support for older Qt versions, and instead entirely dropped it unconditionally. This can be verified by diffing PyQt 5.10 and PyQt 5.11. We take the same approach, and drop waitForEvents() unconditionally, even when PyQt5 is built against the older Qt 5.6. Fedora is using a similar solution: https://src.fedoraproject.org/rpms/python-qt5/c/47fb7fdc5d16582772f9c3fc8a6a674a41a7f605?branch=master. This patch can be dropped when PyQt5 is bumped to its 5.11 version. Signed-off-by: Thomas Petazzoni Index: b/sip/QtTest/qtestmouse.sip =================================================================== --- a/sip/QtTest/qtestmouse.sip +++ b/sip/QtTest/qtestmouse.sip @@ -41,7 +41,6 @@ void mousePress(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1); void mouseRelease(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1); void mouseEvent(QTest::MouseAction action, QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier, QPoint pos, int delay = -1); - void waitForEvents() /ReleaseGIL/; void mouseEvent(QTest::MouseAction action, QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers modifier, QPoint pos, int delay = -1); void mousePress(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers modifier = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1); void mouseRelease(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers modifier = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1); ================================================ FILE: package/python-pyqt5/Config.in ================================================ comment "python-pyqt5 needs Qt5" depends on !BR2_PACKAGE_QT5 config BR2_PACKAGE_PYTHON_PYQT5 bool "python-pyqt5" depends on BR2_PACKAGE_QT5 select BR2_PACKAGE_PYTHON_SIP select BR2_PACKAGE_QT5BASE_GUI help Python bindings for Qt 5 http://www.riverbankcomputing.com/software/pyqt/ ================================================ FILE: package/python-pyqt5/python-pyqt5.hash ================================================ # md5 from http://http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.7, sha256 locally computed md5 e3dc21f31fd714659f0688e1eb31bacf PyQt5_gpl-5.7.tar.gz sha256 892693ba5f79989abb2061dad2d5c4e6f127e9dd3240f73f8220c7152cd35b05 PyQt5_gpl-5.7.tar.gz # Hash for license file sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE ================================================ FILE: package/python-pyqt5/python-pyqt5.mk ================================================ ################################################################################ # # python-pyqt5 # ################################################################################ PYTHON_PYQT5_VERSION = 5.7 PYTHON_PYQT5_SOURCE = PyQt5_gpl-$(PYTHON_PYQT5_VERSION).tar.gz PYTHON_PYQT5_SITE = http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-$(PYTHON_PYQT5_VERSION) PYTHON_PYQT5_LICENSE = GPL-3.0 PYTHON_PYQT5_LICENSE_FILES = LICENSE PYTHON_PYQT5_DEPENDENCIES = python-sip host-python-sip qt5base PYTHON_PYQT5_MODULES = \ QtCore QtGui \ $(if $(BR2_PACKAGE_QT5BASE_DBUS),QtDBus) \ $(if $(BR2_PACKAGE_QT5BASE_NETWORK),QtNetwork) \ $(if $(BR2_PACKAGE_QT5BASE_OPENGL_LIB),QtOpenGL) \ $(if $(BR2_PACKAGE_QT5BASE_PRINTSUPPORT),QtPrintSupport) \ $(if $(BR2_PACKAGE_QT5BASE_XML),QtXml) ifeq ($(BR2_PACKAGE_PYTHON),y) PYTHON_PYQT5_PYTHON_DIR = python$(PYTHON_VERSION_MAJOR) PYTHON_PYQT5_RM_PORT_BASE = port_v3 else ifeq ($(BR2_PACKAGE_PYTHON3),y) PYTHON_PYQT5_PYTHON_DIR = python$(PYTHON3_VERSION_MAJOR) PYTHON_PYQT5_RM_PORT_BASE = port_v2 endif ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS),y) PYTHON_PYQT5_MODULES += QtWidgets # QtSql needs QtWidgets ifeq ($(BR2_PACKAGE_QT5BASE_SQL),y) PYTHON_PYQT5_MODULES += QtSql endif # QtTest needs QtWidgets ifeq ($(BR2_PACKAGE_QT5BASE_TEST),y) PYTHON_PYQT5_MODULES += QtTest endif # QtSvg needs QtWidgets ifeq ($(BR2_PACKAGE_QT5SVG),y) PYTHON_PYQT5_DEPENDENCIES += qt5svg PYTHON_PYQT5_MODULES += QtSvg endif endif ifeq ($(BR2_PACKAGE_QT5CONNECTIVITY),y) PYTHON_PYQT5_DEPENDENCIES += qt5connectivity PYTHON_PYQT5_MODULES += QtBluetooth QtNfc endif ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) PYTHON_PYQT5_DEPENDENCIES += qt5declarative PYTHON_PYQT5_MODULES += QtQml # QtQuick module needs opengl ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK)$(BR2_PACKAGE_QT5BASE_OPENGL_LIB),yy) PYTHON_PYQT5_MODULES += \ QtQuick \ $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),QtQuickWidgets) endif endif ifeq ($(BR2_PACKAGE_QT5ENGINIO),y) PYTHON_PYQT5_DEPENDENCIES += qt5enginio PYTHON_PYQT5_MODULES += Enginio endif ifeq ($(BR2_PACKAGE_QT5LOCATION),y) PYTHON_PYQT5_DEPENDENCIES += qt5location PYTHON_PYQT5_MODULES += QtPositioning ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK),y) PYTHON_PYQT5_MODULES += QtLocation endif endif ifeq ($(BR2_PACKAGE_QT5MULTIMEDIA),y) PYTHON_PYQT5_DEPENDENCIES += qt5multimedia PYTHON_PYQT5_MODULES += \ QtMultimedia \ $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),QtMultimediaWidgets) endif ifeq ($(BR2_PACKAGE_QT5SENSORS),y) PYTHON_PYQT5_DEPENDENCIES += qt5sensors PYTHON_PYQT5_MODULES += QtSensors endif ifeq ($(BR2_PACKAGE_QT5SERIALPORT),y) PYTHON_PYQT5_DEPENDENCIES += qt5serialport PYTHON_PYQT5_MODULES += QtSerialPort endif ifeq ($(BR2_PACKAGE_QT5WEBCHANNEL),y) PYTHON_PYQT5_DEPENDENCIES += qt5webchannel PYTHON_PYQT5_MODULES += QtWebChannel endif ifeq ($(BR2_PACKAGE_QT5WEBENGINE),y) PYTHON_PYQT5_DEPENDENCIES += qt5webengine PYTHON_PYQT5_MODULES += \ QtWebEngineCore \ $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),QtWebEngineWidgets) endif ifeq ($(BR2_PACKAGE_QT5WEBKIT),y) PYTHON_PYQT5_DEPENDENCIES += qt5webkit PYTHON_PYQT5_MODULES += \ QtWebKit \ $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),QtWebKitWidgets) endif ifeq ($(BR2_PACKAGE_QT5WEBSOCKETS),y) PYTHON_PYQT5_DEPENDENCIES += qt5websockets PYTHON_PYQT5_MODULES += QtWebSockets endif ifeq ($(BR2_PACKAGE_QT5X11EXTRAS),y) PYTHON_PYQT5_DEPENDENCIES += qt5x11extras PYTHON_PYQT5_MODULES += QtX11Extras endif ifeq ($(BR2_PACKAGE_QT5XMLPATTERNS),y) PYTHON_PYQT5_DEPENDENCIES += qt5xmlpatterns PYTHON_PYQT5_MODULES += QtXmlPatterns endif PYTHON_PYQT5_QTDETAIL_LICENSE = Open Source PYTHON_PYQT5_QTDETAIL_TYPE = shared # Turn off features that aren't available in current qt configuration PYTHON_PYQT5_QTDETAIL_DISABLE_FEATURES += $(if $(BR2_PACKAGE_QT5BASE_OPENGL),,PyQt_OpenGL) PYTHON_PYQT5_QTDETAIL_DISABLE_FEATURES += $(if $(BR2_PACKAGE_QT5BASE_OPENGL_DESKTOP),,PyQt_Desktop_OpenGL) PYTHON_PYQT5_QTDETAIL_DISABLE_FEATURES += $(if $(BR2_PACKAGE_OPENSSL),,PyQt_SSL) define PYTHON_PYQT5_QTDETAIL echo $(1) >> $(2)/qtdetail.out endef # Since we can't run generate qtdetail.out by running qtdetail on target device # we must generate the configuration. define PYTHON_PYQT5_GENERATE_QTDETAIL $(RM) -f $(1)/qtdetail.out $(call PYTHON_PYQT5_QTDETAIL,$(PYTHON_PYQT5_QTDETAIL_LICENSE),$(1)) $(call PYTHON_PYQT5_QTDETAIL,$(PYTHON_PYQT5_QTDETAIL_TYPE),$(1)) $(foreach f,$(PYTHON_PYQT5_QTDETAIL_DISABLE_FEATURES), $(call PYTHON_PYQT5_QTDETAIL,$(f),$(1)) \ ) endef PYTHON_PYQT5_CONF_OPTS = \ --bindir $(TARGET_DIR)/usr/bin \ --destdir $(TARGET_DIR)/usr/lib/$(PYTHON_PYQT5_PYTHON_DIR)/site-packages \ --qmake $(HOST_DIR)/bin/qmake \ --sysroot $(STAGING_DIR)/usr \ -w --confirm-license \ --no-designer-plugin \ --no-docstrings \ --no-sip-files \ $(foreach module,$(PYTHON_PYQT5_MODULES),--enable=$(module)) define PYTHON_PYQT5_CONFIGURE_CMDS $(call PYTHON_PYQT5_GENERATE_QTDETAIL,$(@D)) (cd $(@D); \ $(TARGET_MAKE_ENV) \ $(TARGET_CONFIGURE_OPTS) \ $(HOST_DIR)/bin/python configure.py \ $(PYTHON_PYQT5_CONF_OPTS) \ ) endef define PYTHON_PYQT5_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef # __init__.py is needed to import PyQt5 # __init__.pyc is needed if BR2_PACKAGE_PYTHON_PYC_ONLY is set define PYTHON_PYQT5_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) install touch $(TARGET_DIR)/usr/lib/$(PYTHON_PYQT5_PYTHON_DIR)/site-packages/PyQt5/__init__.py $(RM) -rf $(TARGET_DIR)/usr/lib/$(PYTHON_PYQT5_PYTHON_DIR)/site-packages/PyQt5/uic/$(PYTHON_PYQT5_RM_PORT_BASE) endef $(eval $(generic-package)) ================================================ FILE: package/python-pyratemp/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYRATEMP bool "python-pyratemp" help python-pyratemp is a Python library for doing html templates. written entirely in Python, that is designed to be very easy to use and very like writing Python. https://pypi.python.org/pypi/pyratemp/ ================================================ FILE: package/python-pyratemp/python-pyratemp.hash ================================================ #md5 from https://pypi.python.org/pypi?:action=show_md5&digest=e4bbe5d4a98016efef882b2b2f47defb md5 e4bbe5d4a98016efef882b2b2f47defb pyratemp-0.3.2.tgz # Locally calculated: sha256 c45ed656ada482a02fe780495f37a695e7671accb04f918f7e7f18abf877bc71 pyratemp-0.3.2.tgz sha256 3de57a97f9c8492808867ae2ac2b33b422a8a34d29d0ea981b9e85c0963462db LICENSE ================================================ FILE: package/python-pyratemp/python-pyratemp.mk ================================================ ################################################################################ # # python-pyratemp # ################################################################################ PYTHON_PYRATEMP_VERSION = 0.3.2 PYTHON_PYRATEMP_SOURCE = pyratemp-$(PYTHON_PYRATEMP_VERSION).tgz PYTHON_PYRATEMP_SITE = https://pypi.python.org/packages/source/p/pyratemp PYTHON_PYRATEMP_LICENSE = MIT PYTHON_PYRATEMP_LICENSE_FILES = LICENSE PYTHON_PYRATEMP_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-pyrex/python-pyrex.hash ================================================ # Locally calculated sha256 5f87df06831d0b3412eb4bc9d3fc2ee7bfae1b913d7da8c23ab2bf5699fb6b50 Pyrex-0.9.9.tar.gz sha256 5c1aec55fc8c399ec23968ddb2117eec8f7a53f002c15472a8b0aa7426790700 LICENSE.txt ================================================ FILE: package/python-pyrex/python-pyrex.mk ================================================ ################################################################################ # # python-pyrex # ################################################################################ PYTHON_PYREX_VERSION = 0.9.9 PYTHON_PYREX_SOURCE = Pyrex-$(PYTHON_PYREX_VERSION).tar.gz PYTHON_PYREX_SITE = http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex PYTHON_PYREX_LICENSE = Apache-2.0 PYTHON_PYREX_LICENSE_FILES = LICENSE.txt PYTHON_PYREX_SETUP_TYPE = distutils HOST_PYTHON_PYREX_NEEDS_HOST_PYTHON = python2 $(eval $(host-python-package)) ================================================ FILE: package/python-pyro/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYRO bool "python-pyro" depends on BR2_PACKAGE_PYTHON help python-pyro is a Python library stands for PYthon Remote Objects. It is an advanced and powerful Distributed Object Technology system written entirely in Python, that is designed to be very easy to use.. https://pypi.python.org/pypi/Pyro/ ================================================ FILE: package/python-pyro/python-pyro.hash ================================================ # md5 from https://pypi.python.org/pypi/pyro/json md5 59d4d3f4a8786776c9d7f9051b8f1a69 Pyro-3.16.tar.gz # Locally computed sha256 1bed508453ef7a7556b51424a58101af2349b662baab7e7331c5cb85dbe7e578 Pyro-3.16.tar.gz sha256 7c14017a2f543384bfcde86043758b68d023b47bf09700a7df6dacbae9c82103 LICENSE ================================================ FILE: package/python-pyro/python-pyro.mk ================================================ ################################################################################ # # python-pyro # ################################################################################ PYTHON_PYRO_VERSION = 3.16 PYTHON_PYRO_SOURCE = Pyro-$(PYTHON_PYRO_VERSION).tar.gz PYTHON_PYRO_SITE = https://pypi.python.org/packages/61/68/0978adae315261b87acd216517c2c7f00780396e4d1426c5412458c6a28f PYTHON_PYRO_LICENSE = MIT PYTHON_PYRO_LICENSE_FILES = LICENSE PYTHON_PYRO_CPE_ID_VENDOR = pyro_project PYTHON_PYRO_CPE_ID_PRODUCT = pyro PYTHON_PYRO_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pyroute2/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYROUTE2 bool "python-pyroute2" select BR2_PACKAGE_PYTHON_SQLITE if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_SQLITE if BR2_PACKAGE_PYTHON3 help Python netlink library - Linux network / netns / wireless / ipset configuration. https://github.com/svinota/pyroute2 ================================================ FILE: package/python-pyroute2/python-pyroute2.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyroute2/json md5 371683b62314211b8bc9807ac8ef1144 pyroute2-0.5.7.tar.gz sha256 963fce07da2841456d39e3b932b071f6de28d23dadfae014022d67a752916f98 pyroute2-0.5.7.tar.gz # Locally computed sha256 sha256 4739b32a2478e9c204bf010bad5d565d188e59ff905e3c8f71fe3398098b7093 LICENSE.Apache.v2 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL.v2 sha256 e329111754f1340de20b6084cae4d264b7b4fc8fb48964173f8ee0cb7440a51c README.license.md ================================================ FILE: package/python-pyroute2/python-pyroute2.mk ================================================ ################################################################################ # # python-pyroute2 # ################################################################################ PYTHON_PYROUTE2_VERSION = 0.5.7 PYTHON_PYROUTE2_SOURCE = pyroute2-$(PYTHON_PYROUTE2_VERSION).tar.gz PYTHON_PYROUTE2_SITE = https://files.pythonhosted.org/packages/6b/94/2a5f6c11369a21efd27a0b4cb92adf5012da7acdbce7e78055710986ca23 PYTHON_PYROUTE2_LICENSE = Apache-2.0 or GPL-2.0+ PYTHON_PYROUTE2_LICENSE_FILES = LICENSE.Apache.v2 LICENSE.GPL.v2 README.license.md PYTHON_PYROUTE2_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-pysendfile/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYSENDFILE bool "python-pysendfile" help A Python interface to sendfile(2) syscall https://github.com/giampaolo/pysendfile ================================================ FILE: package/python-pysendfile/python-pysendfile.hash ================================================ # Locally computed: sha256 f4ca8a7f0be67e3d710c0633dd9aadab6881203c31cb9eb9be4f10361ad3f937 python-pysendfile-2.0.1.tar.gz sha256 259f433563cfe0296c84c00381c600e82e0ab1b617ce20fe6e7f555a2b95af26 LICENSE ================================================ FILE: package/python-pysendfile/python-pysendfile.mk ================================================ ################################################################################ # # python-pysendfile # ################################################################################ PYTHON_PYSENDFILE_VERSION = 2.0.1 PYTHON_PYSENDFILE_SITE = $(call github,giampaolo,pysendfile,release-$(PYTHON_PYSENDFILE_VERSION)) PYTHON_PYSENDFILE_SETUP_TYPE = setuptools PYTHON_PYSENDFILE_LICENSE = MIT PYTHON_PYSENDFILE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-pysftp/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYSFTP bool "python-pysftp" depends on BR2_PACKAGE_PYTHON3 # python-paramiko -> python-bcrypt select BR2_PACKAGE_PYTHON_PARAMIKO # runtime help A friendly face on SFTP. https://bitbucket.org/dundeemt/pysftp ================================================ FILE: package/python-pysftp/python-pysftp.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pysftp/json md5 abc55b7122de3e86f0d547301f4ddf0c pysftp-0.2.9.tar.gz sha256 fbf55a802e74d663673400acd92d5373c1c7ee94d765b428d9f977567ac4854a pysftp-0.2.9.tar.gz # Locally computed sha256 checksums sha256 e648e3c7f439b52222a785a590223a0f7bad1a8a5fb89157d80d13123c7dcd25 LICENSE.txt ================================================ FILE: package/python-pysftp/python-pysftp.mk ================================================ ################################################################################ # # python-pysftp # ################################################################################ PYTHON_PYSFTP_VERSION = 0.2.9 PYTHON_PYSFTP_SOURCE = pysftp-$(PYTHON_PYSFTP_VERSION).tar.gz PYTHON_PYSFTP_SITE = https://files.pythonhosted.org/packages/36/60/45f30390a38b1f92e0a8cf4de178cd7c2bc3f874c85430e40ccf99df8fe7 PYTHON_PYSFTP_SETUP_TYPE = setuptools PYTHON_PYSFTP_LICENSE = BSD-3-Clause PYTHON_PYSFTP_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-pysmb/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYSMB bool "python-pysmb" depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_PYTHON_PYASN1 help pysmb is an experimental SMB/CIFS library written in Python. It implements the client-side SMB/CIFS protocol (SMB1 and SMB2) which allows your Python application to access and transfer files to/from SMB/CIFS shared folders like your Windows file sharing and Samba folders. https://miketeo.net/wp/index.php/projects/pysmb comment "python-pysmb needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/python-pysmb/python-pysmb.hash ================================================ # Locally computed sha256 af9db2e99eaa01e87b0ebc10f87db7c630cc880c7ae3d9dd06f1e5313e82d5a2 pysmb-1.2.7.tar.gz sha256 8c487d5c10f024e44a9cf1df21d1fd28a80bd2dfddd9f1dcd109a47d721f497f LICENSE ================================================ FILE: package/python-pysmb/python-pysmb.mk ================================================ ################################################################################ # # python-pysmb # ################################################################################ PYTHON_PYSMB_VERSION = 1.2.7 PYTHON_PYSMB_SOURCE = pysmb-$(PYTHON_PYSMB_VERSION).tar.gz PYTHON_PYSMB_SITE = https://miketeo.net/files/Projects/pysmb PYTHON_PYSMB_LICENSE = Libpng PYTHON_PYSMB_LICENSE_FILES = LICENSE PYTHON_PYSMB_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pysmi/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYSMI bool "python-pysmi" select BR2_PACKAGE_PYTHON_PLY # runtime help SNMP SMI/MIB Parser. https://github.com/etingof/pysmi ================================================ FILE: package/python-pysmi/python-pysmi.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pysmi/json md5 10a9dd140ad512eed9f37344df83ce9d pysmi-0.3.4.tar.gz sha256 bd15a15020aee8376cab5be264c26330824a8b8164ed0195bd402dd59e4e8f7c pysmi-0.3.4.tar.gz # Locally computed sha256 checksums sha256 c43704eafcfa2bc33e56168f2b498c3c34a1d7865855626a52b5af411fc5837f LICENSE.rst ================================================ FILE: package/python-pysmi/python-pysmi.mk ================================================ ################################################################################ # # python-pysmi # ################################################################################ PYTHON_PYSMI_VERSION = 0.3.4 PYTHON_PYSMI_SOURCE = pysmi-$(PYTHON_PYSMI_VERSION).tar.gz PYTHON_PYSMI_SITE = https://files.pythonhosted.org/packages/52/42/ddaeb06ff551672b17b77f81bc2e26b7c6060b28fe1552226edc6476ce37 PYTHON_PYSMI_SETUP_TYPE = setuptools PYTHON_PYSMI_LICENSE = BSD-2-Clause PYTHON_PYSMI_LICENSE_FILES = LICENSE.rst $(eval $(python-package)) ================================================ FILE: package/python-pysnmp/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYSNMP bool "python-pysnmp" select BR2_PACKAGE_PYTHON_PYSMI # runtime select BR2_PACKAGE_PYTHON_PYCRYPTODOMEX # runtime select BR2_PACKAGE_PYTHON_PYASN1 # runtime help PySNMP is a cross-platform, pure-Python SNMP engine implementation. http://pysnmp.sf.net ================================================ FILE: package/python-pysnmp/python-pysnmp.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pysnmp/json md5 2222880259daf6e2cb322e938c818276 pysnmp-4.4.12.tar.gz sha256 0c3dbef2f958caca96071fe5c19de43e9c1b0484ab02a0cf08b190bcee768ba9 pysnmp-4.4.12.tar.gz # Locally computed sha256 checksums sha256 d0b2edd772164395320fc5ad7dfaa9806fa038fb29762b347c549891d7a79237 LICENSE.rst ================================================ FILE: package/python-pysnmp/python-pysnmp.mk ================================================ ################################################################################ # # python-pysnmp # ################################################################################ PYTHON_PYSNMP_VERSION = 4.4.12 PYTHON_PYSNMP_SOURCE = pysnmp-$(PYTHON_PYSNMP_VERSION).tar.gz PYTHON_PYSNMP_SITE = https://files.pythonhosted.org/packages/4e/75/72f64c451bf5884715f84f8217b69b4025da0b67628d611cd14a5b7db217 PYTHON_PYSNMP_SETUP_TYPE = setuptools PYTHON_PYSNMP_LICENSE = BSD-3-Clause PYTHON_PYSNMP_LICENSE_FILES = LICENSE.rst $(eval $(python-package)) ================================================ FILE: package/python-pysnmp-mibs/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYSNMP_MIBS bool "python-pysnmp-mibs" depends on BR2_INSTALL_LIBSTDCPP # pysnmp -> pyasn select BR2_PACKAGE_PYTHON_PYSNMP help PySNMP MIBs is a set of IETF & IANA MIBs pre-compiled and packaged to simplify their use with the PySNMP library. http://pysnmp.sf.net comment "python-pysnmp-libs needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/python-pysnmp-mibs/python-pysnmp-mibs.hash ================================================ # md5 from https://pypi.python.org/pypi/pysnmp-mibs/json md5 01845c4595d87d3c3485c0449616cbda pysnmp-mibs-0.1.6.tar.gz # Locally computed sha256 00fa321ca598e8a14c0ad98702bf10fb5e9d57b7d06bb99dc818fea07683720c pysnmp-mibs-0.1.6.tar.gz sha256 361eda483f7fac1f8cca4e16c340fa07a1cad2bf1200577a01075745233b406c LICENSE.txt ================================================ FILE: package/python-pysnmp-mibs/python-pysnmp-mibs.mk ================================================ ################################################################################ # # python-pysnmp-mibs # ################################################################################ PYTHON_PYSNMP_MIBS_VERSION = 0.1.6 PYTHON_PYSNMP_MIBS_SOURCE = pysnmp-mibs-$(PYTHON_PYSNMP_MIBS_VERSION).tar.gz PYTHON_PYSNMP_MIBS_SITE = https://pypi.python.org/packages/bf/7c/99ab192af934ed5d41ceef92a1b949b41652f29b46241b902ffec55642f4 PYTHON_PYSNMP_MIBS_SETUP_TYPE = setuptools PYTHON_PYSNMP_MIBS_LICENSE = BSD-3-Clause PYTHON_PYSNMP_MIBS_LICENSE_FILES = LICENSE.txt PYTHON_PYSNMP_MIBS_DEPENDENCIES = python-pysnmp $(eval $(python-package)) ================================================ FILE: package/python-pysocks/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYSOCKS bool "python-pysocks" help A Python SOCKS client module. https://github.com/Anorov/PySocks ================================================ FILE: package/python-pysocks/python-pysocks.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pysocks/json md5 89b1a6865c61bae67a32417517612ee6 PySocks-1.7.1.tar.gz sha256 3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0 PySocks-1.7.1.tar.gz # Locally computed sha256 checksums sha256 7027e214e014eb78b7adcc1ceda5aca713a79fc4f6a0c52c9da5b3e707e6ffe9 LICENSE ================================================ FILE: package/python-pysocks/python-pysocks.mk ================================================ ################################################################################ # # python-pysocks # ################################################################################ PYTHON_PYSOCKS_VERSION = 1.7.1 PYTHON_PYSOCKS_SOURCE = PySocks-$(PYTHON_PYSOCKS_VERSION).tar.gz PYTHON_PYSOCKS_SITE = https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11 PYTHON_PYSOCKS_LICENSE = BSD-3-Clause PYTHON_PYSOCKS_LICENSE_FILES = LICENSE PYTHON_PYSOCKS_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pytablereader/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYTABLEREADER bool "python-pytablereader" depends on BR2_PACKAGE_PYTHON3 # python-mbstrdecoder, python-pathpy, python-beautifulsoup4, python-pathvalidate select BR2_PACKAGE_PYTHON_BEAUTIFULSOUP4 # runtime select BR2_PACKAGE_PYTHON_DATAPROPERTY # runtime select BR2_PACKAGE_PYTHON_JSONSCHEMA # runtime select BR2_PACKAGE_PYTHON_MBSTRDECODER # runtime select BR2_PACKAGE_PYTHON_PATHPY # runtime select BR2_PACKAGE_PYTHON_PATHVALIDATE # runtime select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_TABLEDATA # runtime select BR2_PACKAGE_PYTHON_TYPEPY # runtime help A python library to load structured table data from files/URL with various data formats: CSV/Excel/HTML/JSON/LTSV/Markdown/TSV. https://github.com/thombashi/pytablereader ================================================ FILE: package/python-pytablereader/python-pytablereader.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pytablereader/json md5 23ba6121e2f916dfbf4015516779dfcd pytablereader-0.26.1.tar.gz sha256 f2e1477de8886267b765af7861baacc65606761bfabb0689f118cc5d27861f26 pytablereader-0.26.1.tar.gz # Locally computed sha256 checksums sha256 7fcef461a93fea587224132a865d1285969c9bec15baf59caeb7a8c7638a8744 LICENSE ================================================ FILE: package/python-pytablereader/python-pytablereader.mk ================================================ ################################################################################ # # python-pytablereader # ################################################################################ PYTHON_PYTABLEREADER_VERSION = 0.26.1 PYTHON_PYTABLEREADER_SOURCE = pytablereader-$(PYTHON_PYTABLEREADER_VERSION).tar.gz PYTHON_PYTABLEREADER_SITE = https://files.pythonhosted.org/packages/1e/bc/f60da8a733cd87215d8533f28536f8149eca3b898bbca346b37b6c915d8d PYTHON_PYTABLEREADER_SETUP_TYPE = setuptools PYTHON_PYTABLEREADER_LICENSE = MIT PYTHON_PYTABLEREADER_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-pytablewriter/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYTABLEWRITER bool "python-pytablewriter" depends on BR2_PACKAGE_PYTHON3 # python-dataproperty, python-mbstrdecoder, python-pathvalidate select BR2_PACKAGE_PYTHON_DATAPROPERTY # runtime select BR2_PACKAGE_PYTHON_MBSTRDECODER # runtime select BR2_PACKAGE_PYTHON_MSGFY # runtime select BR2_PACKAGE_PYTHON_PATHVALIDATE # runtime select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_TABLEDATA # runtime select BR2_PACKAGE_PYTHON_TYPEPY # 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 ================================================ FILE: package/python-pytablewriter/python-pytablewriter.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pytablewriter/json md5 4909dcdba8c6df35e14dbecbc6c94b6c pytablewriter-0.46.1.tar.gz sha256 9d52ecc84bb89197c312e193b4ff04a3c934b914f3c32e4826d44a0acbc7764f pytablewriter-0.46.1.tar.gz # Locally computed sha256 checksums sha256 a93d75bcb0774e2990106380cadad6dcb2de193c55d435ffc56ba345a08b1dc2 LICENSE ================================================ FILE: package/python-pytablewriter/python-pytablewriter.mk ================================================ ################################################################################ # # python-pytablewriter # ################################################################################ PYTHON_PYTABLEWRITER_VERSION = 0.46.1 PYTHON_PYTABLEWRITER_SOURCE = pytablewriter-$(PYTHON_PYTABLEWRITER_VERSION).tar.gz PYTHON_PYTABLEWRITER_SITE = https://files.pythonhosted.org/packages/bb/86/d5f3dfec35d2d7583c9f3f1d731adf729851d1fe01011f07a747eb8c7df0 PYTHON_PYTABLEWRITER_SETUP_TYPE = setuptools PYTHON_PYTABLEWRITER_LICENSE = MIT PYTHON_PYTABLEWRITER_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-pytest/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYTEST bool "python-pytest" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_ATTRS # runtime select BR2_PACKAGE_PYTHON_INICONFIG # runtime select BR2_PACKAGE_PYTHON_PACKAGING # runtime select BR2_PACKAGE_PYTHON_PLUGGY # runtime select BR2_PACKAGE_PYTHON_PY # runtime select BR2_PACKAGE_PYTHON_TOML # runtime select BR2_PACKAGE_PYTHON3_PYEXPAT # runtime help pytest is a framework that makes building simple and scalable tests easy. Tests are expressive and readable—no boilerplate code required. https://docs.pytest.org/en/latest/ ================================================ FILE: package/python-pytest/python-pytest.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pytest/json md5 8bc467ebd5d571778dc51dd87ff09513 pytest-6.2.5.tar.gz sha256 131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89 pytest-6.2.5.tar.gz # Locally computer sha256 sha256 7898b9b164d4f93fd9a562fd0f592935518b48c4745303964110eb7f7fe64faf LICENSE ================================================ FILE: package/python-pytest/python-pytest.mk ================================================ ################################################################################ # # python-pytest # ################################################################################ PYTHON_PYTEST_VERSION = 6.2.5 PYTHON_PYTEST_SOURCE = pytest-$(PYTHON_PYTEST_VERSION).tar.gz PYTHON_PYTEST_SITE = https://files.pythonhosted.org/packages/4b/24/7d1f2d2537de114bdf1e6875115113ca80091520948d370c964b88070af2 PYTHON_PYTEST_SETUP_TYPE = setuptools PYTHON_PYTEST_LICENSE = MIT PYTHON_PYTEST_LICENSE_FILES = LICENSE PYTHON_PYTEST_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-pytest-asyncio/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYTEST_ASYNCIO bool "python-pytest-asyncio" depends on BR2_PACKAGE_PYTHON3 # pytest select BR2_PACKAGE_PYTHON_PYTEST # runtime help Pytest support for asyncio. https://github.com/pytest-dev/pytest-asyncio ================================================ FILE: package/python-pytest-asyncio/python-pytest-asyncio.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pytest-asyncio/json md5 8940c41c342b5bafe2ebb0d6e5c320ec pytest-asyncio-0.15.1.tar.gz sha256 2564ceb9612bbd560d19ca4b41347b54e7835c2f792c504f698e05395ed63f6f pytest-asyncio-0.15.1.tar.gz # Locally computed sha256 checksums sha256 cb5e8e7e5f4a3988e1063c142c60dc2df75605f4c46515e776e3aca6df976e14 LICENSE ================================================ FILE: package/python-pytest-asyncio/python-pytest-asyncio.mk ================================================ ################################################################################ # # python-pytest-asyncio # ################################################################################ PYTHON_PYTEST_ASYNCIO_VERSION = 0.15.1 PYTHON_PYTEST_ASYNCIO_SOURCE = pytest-asyncio-$(PYTHON_PYTEST_ASYNCIO_VERSION).tar.gz PYTHON_PYTEST_ASYNCIO_SITE = https://files.pythonhosted.org/packages/de/c1/b2b0119e30f61f7ec8b44f129f6fde46a1a7329de17110f124639aa8896b PYTHON_PYTEST_ASYNCIO_SETUP_TYPE = setuptools PYTHON_PYTEST_ASYNCIO_LICENSE = Apache-2.0 PYTHON_PYTEST_ASYNCIO_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-pytrie/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYTRIE bool "python-pytrie" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SORTEDCONTAINERS # runtime help A pure Python implementation of the trie data structure. https://pypi.python.org/pypi/PyTrie ================================================ FILE: package/python-pytrie/python-pytrie.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pytrie/json md5 0cbe20db2361dcc99bdcba7acacd34e6 PyTrie-0.4.0.tar.gz sha256 8f4488f402d3465993fb6b6efa09866849ed8cda7903b50647b7d0342b805379 PyTrie-0.4.0.tar.gz # Locally computed sha256 checksums sha256 97f85c2ba0d856cf5f7e5db587af7299233db2e502980eb655ace28343541d50 LICENSE ================================================ FILE: package/python-pytrie/python-pytrie.mk ================================================ ################################################################################ # # python-pytrie # ################################################################################ PYTHON_PYTRIE_VERSION = 0.4.0 PYTHON_PYTRIE_SOURCE = PyTrie-$(PYTHON_PYTRIE_VERSION).tar.gz PYTHON_PYTRIE_LICENSE = BSD-3-Clause PYTHON_PYTRIE_LICENSE_FILES = LICENSE PYTHON_PYTRIE_SITE = https://files.pythonhosted.org/packages/d3/19/15ec77ab9c85f7c36eb590d6ab7dd529f8c8516c0e2219f1a77a99d7ee77 PYTHON_PYTRIE_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pytz/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYTZ bool "python-pytz" help World timezone definitions, modern and historical. http://pythonhosted.org/pytz ================================================ FILE: package/python-pytz/python-pytz.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pytz/json md5 c3d84a465fc56a4edd52cca8873ac0df pytz-2019.3.tar.gz sha256 b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be pytz-2019.3.tar.gz # Locally computed sha256 checksums sha256 39f07c72a1bfda349cbd27bac9bcb1e6f8c5b4e5cc3fadf56900406e8cc0b792 LICENSE.txt ================================================ FILE: package/python-pytz/python-pytz.mk ================================================ ################################################################################ # # python-pytz # ################################################################################ PYTHON_PYTZ_VERSION = 2019.3 PYTHON_PYTZ_SOURCE = pytz-$(PYTHON_PYTZ_VERSION).tar.gz PYTHON_PYTZ_SITE = https://files.pythonhosted.org/packages/82/c3/534ddba230bd4fbbd3b7a3d35f3341d014cca213f369a9940925e7e5f691 PYTHON_PYTZ_SETUP_TYPE = setuptools PYTHON_PYTZ_LICENSE = MIT PYTHON_PYTZ_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-pyudev/0001-Workaround-finding-libudev-on-systems-without-ldconf.patch ================================================ From e86a1c199d45c9751da67f947af202927dee07f8 Mon Sep 17 00:00:00 2001 From: Yegor Yefremov Date: Thu, 10 Dec 2015 08:44:55 +0100 Subject: [PATCH] Workaround finding libudev on systems without ldconf This patch tries to load libudev.so directly without relying on Python's find_library(). find_library() fails on systems without library cache mechanism. Taken from pyudev issue 117 discussion: https://github.com/pyudev/pyudev/pull/117 Signed-off-by: Yegor Yefremov [Marcin: adjust to 0.22.0] Signed-off-by: Marcin Niestroj [Fabrice: Use %-formatting instead of f-string for python 2] Signed-off-by: Fabrice Fontaine --- src/pyudev/_ctypeslib/utils.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pyudev/_ctypeslib/utils.py b/src/pyudev/_ctypeslib/utils.py index 9dffb3c..aa9942f 100644 --- a/src/pyudev/_ctypeslib/utils.py +++ b/src/pyudev/_ctypeslib/utils.py @@ -28,7 +28,7 @@ from __future__ import print_function from __future__ import unicode_literals -from ctypes import CDLL +from ctypes import cdll, CDLL from ctypes.util import find_library @@ -50,10 +50,10 @@ def load_ctypes_library(name, signatures, error_checkers): :rtype: ctypes.CDLL :raises ImportError: if the library is not found """ - library_name = find_library(name) - if not library_name: + try: + lib = cdll.LoadLibrary('lib%s.so' % name) + except OSError: raise ImportError('No library named %s' % name) - lib = CDLL(library_name, use_errno=True) # Add function signatures for funcname, signature in signatures.items(): function = getattr(lib, funcname, None) -- 2.29.1 ================================================ FILE: package/python-pyudev/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYUDEV bool "python-pyudev" depends on BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 # runtime select BR2_PACKAGE_PYTHON_SIX # runtime help pyudev is a LGPL licenced, pure Python 2/3 binding to libudev, the device and hardware management and information library of Linux. https://github.com/pyudev/pyudev comment "python-pyudev needs udev /dev management" depends on !BR2_PACKAGE_HAS_UDEV ================================================ FILE: package/python-pyudev/python-pyudev.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyudev/json md5 377eda61186c91e9440f01d76dbb4206 pyudev-0.22.0.tar.gz sha256 69bb1beb7ac52855b6d1b9fe909eefb0017f38d917cba9939602c6880035b276 pyudev-0.22.0.tar.gz # Locally computed sha256 checksums sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING ================================================ FILE: package/python-pyudev/python-pyudev.mk ================================================ ################################################################################ # # python-pyudev # ################################################################################ PYTHON_PYUDEV_VERSION = 0.22.0 PYTHON_PYUDEV_SOURCE = pyudev-$(PYTHON_PYUDEV_VERSION).tar.gz PYTHON_PYUDEV_SITE = https://files.pythonhosted.org/packages/72/c8/4660d815a79b1d42c409012aaa10ebd6b07a47529b4cb6880f27a24bd646 PYTHON_PYUDEV_LICENSE = LGPL-2.1+ PYTHON_PYUDEV_LICENSE_FILES = COPYING PYTHON_PYUDEV_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-pyusb/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYUSB bool "python-pyusb" depends on BR2_PACKAGE_PYTHON3 depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help The PyUSB module provides easy access to the Universal Serial Bus (USB) from Python. http://sourceforge.net/apps/trac/pyusb/ comment "python-pyusb needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/python-pyusb/python-pyusb.hash ================================================ # md5 from https://pypi.python.org/pypi/pyusb/json md5 a9db479f1fb914e91d3106e67a13ae09 pyusb-1.1.1.tar.gz # Locally computed sha256 7d449ad916ce58aff60b89aae0b65ac130f289c24d6a5b7b317742eccffafc38 pyusb-1.1.1.tar.gz sha256 03e39fdcee9c18f2f9d0c3500a993ddeac050695eb81070ea41347587c76a7fe LICENSE ================================================ FILE: package/python-pyusb/python-pyusb.mk ================================================ ################################################################################ # # python-pyusb # ################################################################################ PYTHON_PYUSB_VERSION = 1.1.1 PYTHON_PYUSB_SOURCE = pyusb-$(PYTHON_PYUSB_VERSION).tar.gz PYTHON_PYUSB_SITE = https://files.pythonhosted.org/packages/b9/8d/25c4e446a07e918eb39b5af25c4a83a89db95ae44e4ed5a46c3c53b0a4d6 PYTHON_PYUSB_LICENSE = BSD-3-Clause PYTHON_PYUSB_LICENSE_FILES = LICENSE PYTHON_PYUSB_SETUP_TYPE = setuptools PYTHON_PYUSB_DEPENDENCIES = host-python-setuptools-scm libusb $(eval $(python-package)) ================================================ FILE: package/python-pyxb/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYXB bool "python-pyxb" help PyXB is a pure Python package that generates Python code for classes that correspond to data structures defined by XMLSchema. http://pyxb.sourceforge.net/ ================================================ FILE: package/python-pyxb/python-pyxb.hash ================================================ # md5 from https://pypi.python.org/pypi/PyXB/json, sha256 locally computed md5 4303573fc7094ce4664c5b71cd4bdb48 PyXB-1.2.6.tar.gz sha256 2a00f38dd1d87b88f92d79bc5a09718d730419b88e814545f472bbd5a3bf27b4 PyXB-1.2.6.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/python-pyxb/python-pyxb.mk ================================================ ################################################################################ # # python-pyxb # ################################################################################ PYTHON_PYXB_VERSION = 1.2.6 PYTHON_PYXB_SOURCE = PyXB-$(PYTHON_PYXB_VERSION).tar.gz PYTHON_PYXB_SITE = https://pypi.python.org/packages/e3/09/4fdb190ea2b7cb43d6d3e745276ee69f4d6181be70fcbfda7df3c5f72f0e PYTHON_PYXB_LICENSE = Apache-2.0 PYTHON_PYXB_LICENSE_FILES = LICENSE PYTHON_PYXB_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-pyyaml/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYYAML bool "python-pyyaml" select BR2_PACKAGE_LIBYAML help The PyYAML package contains binding to the libyaml API. http://pyyaml.org/ ================================================ FILE: package/python-pyyaml/python-pyyaml.hash ================================================ # md5, sha256 from https://pypi.org/pypi/PyYAML/json md5 46e25294c7efec23d4072ed6a7777f46 PyYAML-5.4.1.tar.gz sha256 607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e PyYAML-5.4.1.tar.gz # Locally computed sha256 checksums sha256 8d3928f9dc4490fd635707cb88eb26bd764102a7282954307d3e5167a577e8a4 LICENSE ================================================ FILE: package/python-pyyaml/python-pyyaml.mk ================================================ ################################################################################ # # python-pyyaml # ################################################################################ # Please keep in sync package/python3-pyyaml/python3-pyyaml.mk PYTHON_PYYAML_VERSION = 5.4.1 PYTHON_PYYAML_SOURCE = PyYAML-$(PYTHON_PYYAML_VERSION).tar.gz PYTHON_PYYAML_SITE = https://files.pythonhosted.org/packages/a0/a4/d63f2d7597e1a4b55aa3b4d6c5b029991d3b824b5bd331af8d4ab1ed687d PYTHON_PYYAML_SETUP_TYPE = setuptools PYTHON_PYYAML_LICENSE = MIT PYTHON_PYYAML_LICENSE_FILES = LICENSE PYTHON_PYYAML_CPE_ID_VENDOR = pyyaml PYTHON_PYYAML_CPE_ID_PRODUCT = pyyaml PYTHON_PYYAML_DEPENDENCIES = libyaml HOST_PYTHON_PYYAML_DEPENDENCIES = host-libyaml $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-pyzmq/0001-use-buildroot-zmq-version-instead-of-detect.patch ================================================ detect.py: fix the ZMQ version check to the ZMQ version of the buildroot The setup.py script tries to compile a test C program and runs it, to retrieve a version string for the installed ZMQ library, but if the cross compiler links it together, the result cannot be run on the host, due to different architectures and libraries. And if the host compiler would compile/link it, it would not link with the library version inside buildroot but with the library from the host, possibly returning a wrong version number. Instead of trying to run the compiled test program to get the version dynamically, return the version of the buildroot environment. Written by Michael Rommel, modified for version 16.0.2 by Lionel Flandrin. Modified for version 18.0.2 by Asaf Kahlon Signed-off-by: Lionel Flandrin Signed-off-by: Asaf Kahlon --- buildutils/detect.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/buildutils/detect.py b/buildutils/detect.py index d1380fe..4a91351 100644 --- a/buildutils/detect.py +++ b/buildutils/detect.py @@ -120,13 +120,15 @@ def detect_zmq(basedir, compiler=None, **compiler_attrs): cc = get_compiler(compiler=compiler, **compiler_attrs) efile = test_compilation(cfile, compiler=cc, **compiler_attrs) - patch_lib_paths(efile, cc.library_dirs) + #patch_lib_paths(efile, cc.library_dirs) - rc, so, se = get_output_error([efile]) - if rc: - msg = "Error running version detection script:\n%s\n%s" % (so,se) - logging.error(msg) - raise IOError(msg) + #rc, so, se = get_output_error([efile]) + # if rc: + # msg = "Error running version detection script:\n%s\n%s" % (so,se) + # logging.error(msg) + # raise IOError(msg) + + so = "vers: ##ZEROMQ_VERSION##" handlers = {'vers': lambda val: tuple(int(v) for v in val.split('.'))} -- 2.20.1 ================================================ FILE: package/python-pyzmq/Config.in ================================================ config BR2_PACKAGE_PYTHON_PYZMQ bool "python-pyzmq" depends on BR2_INSTALL_LIBSTDCPP # zeromq depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq select BR2_PACKAGE_ZEROMQ help This package contains the python language binding for zeromq. http://zeromq.org/bindings:python comment "python-pyzmq needs a toolchain w/ C++, threads" depends on BR2_PACKAGE_PYTHON depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS) ================================================ FILE: package/python-pyzmq/python-pyzmq.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyzmq/json md5 200abc1a75bdcfff7adf61304f46f55e pyzmq-19.0.2.tar.gz sha256 296540a065c8c21b26d63e3cea2d1d57902373b16e4256afe46422691903a438 pyzmq-19.0.2.tar.gz # Locally computed sha256 checksums sha256 aef3b80570351d44e29c22d080d4e9e106b34f3fdbc5cdf9636994474c72b1a2 COPYING.BSD sha256 44b23767df3c0fe27f88981f09bc7f50a1695cec4b24252fa5f55f03e76bcd6d COPYING.LESSER ================================================ FILE: package/python-pyzmq/python-pyzmq.mk ================================================ ################################################################################ # # python-pyzmq # ################################################################################ PYTHON_PYZMQ_VERSION = 19.0.2 PYTHON_PYZMQ_SOURCE = pyzmq-$(PYTHON_PYZMQ_VERSION).tar.gz PYTHON_PYZMQ_SITE = https://files.pythonhosted.org/packages/05/77/7483975d84fe1fd24cc67881ba7810e0e7b3ee6c2a0e002a5d6703cca49b PYTHON_PYZMQ_LICENSE = LGPL-3.0+, BSD-3-Clause, Apache-2.0 # Apache license only online: http://www.apache.org/licenses/LICENSE-2.0 PYTHON_PYZMQ_LICENSE_FILES = COPYING.LESSER COPYING.BSD PYTHON_PYZMQ_DEPENDENCIES = zeromq PYTHON_PYZMQ_SETUP_TYPE = distutils PYTHON_PYZMQ_BUILD_OPTS = --zmq=$(STAGING_DIR)/usr # Due to issues with cross-compiling, hardcode to the zeromq in BR define PYTHON_PYZMQ_PATCH_ZEROMQ_VERSION $(SED) 's/##ZEROMQ_VERSION##/$(ZEROMQ_VERSION)/' \ $(@D)/buildutils/detect.py endef PYTHON_PYZMQ_POST_PATCH_HOOKS += PYTHON_PYZMQ_PATCH_ZEROMQ_VERSION ifeq ($(BR2_PACKAGE_ZEROMQ_DRAFTS),y) PYTHON_PYZMQ_BUILD_OPTS += --enable-drafts endif $(eval $(python-package)) ================================================ FILE: package/python-raven/Config.in ================================================ config BR2_PACKAGE_PYTHON_RAVEN bool "python-raven" select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SSL if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_SSL if BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_UNICODEDATA if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_UNICODEDATA if BR2_PACKAGE_PYTHON3 help Raven is a client for Sentry (https://getsentry.com). https://github.com/getsentry/raven-python ================================================ FILE: package/python-raven/python-raven.hash ================================================ # md5, sha256 from https://pypi.org/pypi/raven/json md5 3676f31dadfa61526444dd0245c78a38 raven-6.10.0.tar.gz sha256 3fa6de6efa2493a7c827472e984ce9b020797d0da16f1db67197bcc23c8fae54 raven-6.10.0.tar.gz # Locally computed sha256 checksums sha256 5ce9459bc19ced99cc9eb135d4f559ed01e336354bdf16dd998be85aa688c233 LICENSE ================================================ FILE: package/python-raven/python-raven.mk ================================================ ################################################################################ # # python-raven # ################################################################################ PYTHON_RAVEN_VERSION = 6.10.0 PYTHON_RAVEN_SOURCE = raven-$(PYTHON_RAVEN_VERSION).tar.gz PYTHON_RAVEN_SITE = https://files.pythonhosted.org/packages/79/57/b74a86d74f96b224a477316d418389af9738ba7a63c829477e7a86dd6f47 PYTHON_RAVEN_SETUP_TYPE = setuptools PYTHON_RAVEN_LICENSE = BSD-3-Clause PYTHON_RAVEN_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-redis/Config.in ================================================ config BR2_PACKAGE_PYTHON_REDIS bool "python-redis" help Python client for Redis key-value store. https://github.com/andymccurdy/redis-py ================================================ FILE: package/python-redis/python-redis.hash ================================================ # md5, sha256 from https://pypi.org/pypi/redis/json md5 7a00d4540374f34e152a33faa1fcee5f redis-3.5.3.tar.gz sha256 0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2 redis-3.5.3.tar.gz # Locally computed sha256 checksums sha256 790148d8c12f8a38b2707a74be2343316bad126995ff54801a181b8b231ba124 LICENSE ================================================ FILE: package/python-redis/python-redis.mk ================================================ ################################################################################ # # python-redis # ################################################################################ PYTHON_REDIS_VERSION = 3.5.3 PYTHON_REDIS_SOURCE = redis-$(PYTHON_REDIS_VERSION).tar.gz PYTHON_REDIS_SITE = https://files.pythonhosted.org/packages/b3/17/1e567ff78c83854e16b98694411fe6e08c3426af866ad11397cddceb80d3 PYTHON_REDIS_SETUP_TYPE = setuptools PYTHON_REDIS_LICENSE = MIT PYTHON_REDIS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-reentry/Config.in ================================================ config BR2_PACKAGE_PYTHON_REENTRY bool "python-reentry" select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON_CLICK # runtime select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_PATHLIB2 if BR2_PACKAGE_PYTHON # runtime help A plugin manager based on setuptools entry points mechanism. https://pypi.org/project/reentry/ ================================================ FILE: package/python-reentry/python-reentry.hash ================================================ # md5, sha256 from https://pypi.org/pypi/reentry/json md5 398c1e5bbda657aa645c8d2d38afb63f reentry-1.3.2.tar.gz sha256 c6667e59aeabbb4d122aadc2170102a270e6a811d16a5431c5c3b91fabd7cf02 reentry-1.3.2.tar.gz # Locally computed sha256 checksums sha256 4ae7f3216208a7e2327236e95bcd2397b2495f1c2298c708986c893bea608509 LICENSE ================================================ FILE: package/python-reentry/python-reentry.mk ================================================ ################################################################################ # # python-reentry # ################################################################################ PYTHON_REENTRY_VERSION = 1.3.2 PYTHON_REENTRY_SOURCE = reentry-$(PYTHON_REENTRY_VERSION).tar.gz PYTHON_REENTRY_SITE = https://files.pythonhosted.org/packages/a0/88/eb0c107c19227a2292ed11711034a3d80c0dc1368d2b3ebeb3fe7b936a8e PYTHON_REENTRY_SETUP_TYPE = setuptools PYTHON_REENTRY_LICENSE = MIT PYTHON_REENTRY_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-regex/Config.in ================================================ config BR2_PACKAGE_PYTHON_REGEX bool "python-regex" help Alternative regular expression module, to replace re. https://bitbucket.org/mrabarnett/mrab-regex ================================================ FILE: package/python-regex/python-regex.hash ================================================ # md5, sha256 from https://pypi.org/pypi/regex/json md5 cd206281327b4c087bb20bf93cee4ab9 regex-2021.4.4.tar.gz sha256 52ba3d3f9b942c49d7e4bc105bb28551c44065f139a65062ab7912bef10c9afb regex-2021.4.4.tar.gz ================================================ FILE: package/python-regex/python-regex.mk ================================================ ################################################################################ # # python-regex # ################################################################################ # Please keep in sync with package/python3-regex/python3-regex.mk PYTHON_REGEX_VERSION = 2021.4.4 PYTHON_REGEX_SOURCE = regex-$(PYTHON_REGEX_VERSION).tar.gz PYTHON_REGEX_SITE = https://files.pythonhosted.org/packages/38/3f/4c42a98c9ad7d08c16e7d23b2194a0e4f3b2914662da8bc88986e4e6de1f PYTHON_REGEX_SETUP_TYPE = setuptools PYTHON_REGEX_LICENSE = CNRI-Python $(eval $(python-package)) ================================================ FILE: package/python-remi/Config.in ================================================ config BR2_PACKAGE_PYTHON_REMI bool "python-remi" select BR2_PACKAGE_PYTHON_SSL if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_SSL if BR2_PACKAGE_PYTHON3 # runtime select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime help Remi is a GUI library for Python applications which transpiles an application's interface into HTML to be rendered in a web browser. This removes platform-specific dependencies and lets you easily develop cross-platform applications in Python! https://github.com/dddomodossola/remi/tree/master ================================================ FILE: package/python-remi/python-remi.hash ================================================ # sha256 from https://pypi.org/pypi/remi/json sha256 c8691f007dc30b91013131b6aded3521c17ef8ec9fdd152a0ad481b8cb793f14 remi-2021.3.2.tar.gz ================================================ FILE: package/python-remi/python-remi.mk ================================================ ################################################################################ # # python-remi # ################################################################################ PYTHON_REMI_VERSION = 2021.3.2 PYTHON_REMI_SOURCE = remi-$(PYTHON_REMI_VERSION).tar.gz PYTHON_REMI_SITE = https://files.pythonhosted.org/packages/c0/99/94bd825cf8baee369b959f76c802a51ccc69d4d62ec113e26db4835f710c PYTHON_REMI_LICENSE = Apache-2.0 PYTHON_REMI_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-request-id/Config.in ================================================ config BR2_PACKAGE_PYTHON_REQUEST_ID bool "python-request-id" select BR2_PACKAGE_PYTHON_WEBOB # runtime help Attach a unique identifier to every WSGI request. https://github.com/mmerickel/request_id ================================================ FILE: package/python-request-id/python-request-id.hash ================================================ # md5, sha256 from https://pypi.org/pypi/request-id/json md5 abf0125561fb38198893ba4b46c5ce28 request-id-1.0.1.tar.gz sha256 4adf1dc880085571454667ee4dba36a12b720eea5dbbfbbbd840c5a24268b4f7 request-id-1.0.1.tar.gz # Locally computed sha256 checksums sha256 2d65d17b4df34f184557b8031df05e4c264d2fa6b82e560be074967eff3b326c LICENSE.txt ================================================ FILE: package/python-request-id/python-request-id.mk ================================================ ################################################################################ # # python-request-id # ################################################################################ PYTHON_REQUEST_ID_VERSION = 1.0.1 PYTHON_REQUEST_ID_SOURCE = request-id-$(PYTHON_REQUEST_ID_VERSION).tar.gz PYTHON_REQUEST_ID_SITE = https://files.pythonhosted.org/packages/9b/b3/30617b85b1766b6a804f2b8abc0ca7496f6349236f7eec28cb42687ca8e3 PYTHON_REQUEST_ID_SETUP_TYPE = setuptools PYTHON_REQUEST_ID_LICENSE = MIT PYTHON_REQUEST_ID_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-requests/Config.in ================================================ config BR2_PACKAGE_PYTHON_REQUESTS bool "python-requests" depends on BR2_PACKAGE_PYTHON3 # python-idna select BR2_PACKAGE_PYTHON_CERTIFI # runtime select BR2_PACKAGE_PYTHON_CHARSET_NORMALIZER # runtime select BR2_PACKAGE_PYTHON_IDNA # runtime select BR2_PACKAGE_PYTHON_URLLIB3 # runtime select BR2_PACKAGE_PYTHON3_SSL # runtime select BR2_PACKAGE_PYTHON3_ZLIB # runtime help Requests is an Apache2 Licensed HTTP library, written in Python, for human beings. http://www.python-requests.org/ ================================================ FILE: package/python-requests/python-requests.hash ================================================ # md5, sha256 from https://pypi.org/pypi/requests/json md5 8c745949ad3e9ae83d9927fed213db8a requests-2.26.0.tar.gz sha256 b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7 requests-2.26.0.tar.gz # Locally computed sha256 checksums sha256 09e8a9bcec8067104652c168685ab0931e7868f9c8284b66f5ae6edae5f1130b LICENSE ================================================ FILE: package/python-requests/python-requests.mk ================================================ ################################################################################ # # python-requests # ################################################################################ PYTHON_REQUESTS_VERSION = 2.26.0 PYTHON_REQUESTS_SOURCE = requests-$(PYTHON_REQUESTS_VERSION).tar.gz PYTHON_REQUESTS_SITE = https://files.pythonhosted.org/packages/e7/01/3569e0b535fb2e4a6c384bdbed00c55b9d78b5084e0fb7f4d0bf523d7670 PYTHON_REQUESTS_SETUP_TYPE = setuptools PYTHON_REQUESTS_LICENSE = Apache-2.0 PYTHON_REQUESTS_LICENSE_FILES = LICENSE PYTHON_REQUESTS_CPE_ID_VENDOR = python PYTHON_REQUESTS_CPE_ID_PRODUCT = requests HOST_PYTHON_REQUESTS_NEEDS_HOST_PYTHON = python3 $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-requests-oauthlib/Config.in ================================================ config BR2_PACKAGE_PYTHON_REQUESTS_OAUTHLIB bool "python-requests-oauthlib" depends on BR2_PACKAGE_PYTHON3 # python-requests -> python-idna select BR2_PACKAGE_PYTHON_OAUTHLIB # runtime select BR2_PACKAGE_PYTHON_REQUESTS # runtime help OAuthlib authentication support for Requests. https://github.com/requests/requests-oauthlib ================================================ FILE: package/python-requests-oauthlib/python-requests-oauthlib.hash ================================================ # md5, sha256 from https://pypi.org/pypi/requests-oauthlib/json md5 1ebcd55f1b1b9281940b4bc33010e2ba requests-oauthlib-1.3.0.tar.gz sha256 b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a requests-oauthlib-1.3.0.tar.gz # Locally computed sha256 checksums sha256 ae01846afad8a8291fe6a08966f3015af9a8ff675d84b981f9793c122f7876e8 LICENSE ================================================ FILE: package/python-requests-oauthlib/python-requests-oauthlib.mk ================================================ ################################################################################ # # python-requests-oauthlib # ################################################################################ PYTHON_REQUESTS_OAUTHLIB_VERSION = 1.3.0 PYTHON_REQUESTS_OAUTHLIB_SOURCE = requests-oauthlib-$(PYTHON_REQUESTS_OAUTHLIB_VERSION).tar.gz PYTHON_REQUESTS_OAUTHLIB_SITE = https://files.pythonhosted.org/packages/23/eb/68fc8fa86e0f5789832f275c8289257d8dc44dbe93fce7ff819112b9df8f PYTHON_REQUESTS_OAUTHLIB_SETUP_TYPE = setuptools PYTHON_REQUESTS_OAUTHLIB_LICENSE = ISC PYTHON_REQUESTS_OAUTHLIB_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-requests-toolbelt/Config.in ================================================ config BR2_PACKAGE_PYTHON_REQUESTS_TOOLBELT bool "python-requests-toolbelt" depends on BR2_PACKAGE_PYTHON3 # python-requests -> python-idna select BR2_PACKAGE_PYTHON_REQUESTS # runtime help A utility belt for advanced users of python-requests. https://toolbelt.readthedocs.org ================================================ FILE: package/python-requests-toolbelt/python-requests-toolbelt.hash ================================================ # md5, sha256 from https://pypi.org/pypi/requests-toolbelt/json md5 b1509735c4b4cf95df2619facbc3672e requests-toolbelt-0.9.1.tar.gz sha256 968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0 requests-toolbelt-0.9.1.tar.gz # Locally computed sha256 checksums sha256 3a1a3cffa7abc000cbd726a664f56c33c532a55480f9e056dfe941cf93b7c37f LICENSE ================================================ FILE: package/python-requests-toolbelt/python-requests-toolbelt.mk ================================================ ################################################################################ # # python-requests-toolbelt # ################################################################################ PYTHON_REQUESTS_TOOLBELT_VERSION = 0.9.1 PYTHON_REQUESTS_TOOLBELT_SOURCE = requests-toolbelt-$(PYTHON_REQUESTS_TOOLBELT_VERSION).tar.gz PYTHON_REQUESTS_TOOLBELT_SITE = https://files.pythonhosted.org/packages/28/30/7bf7e5071081f761766d46820e52f4b16c8a08fef02d2eb4682ca7534310 PYTHON_REQUESTS_TOOLBELT_SETUP_TYPE = setuptools PYTHON_REQUESTS_TOOLBELT_LICENSE = Apache-2.0 PYTHON_REQUESTS_TOOLBELT_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-rpi-gpio/0001-fix-build-with-gcc-10.x.patch ================================================ Description: This patch fixes the "multiple definition of" errors with gcc10 Signed-off-by: Michael Fischer diff -purN python-rpi-gpio.org/source/common.c python-rpi-gpio/source/common.c --- python-rpi-gpio.org/source/common.c 2019-07-21 14:41:22.000000000 +0200 +++ python-rpi-gpio/source/common.c 2020-08-07 09:31:33.948575964 +0200 @@ -28,6 +28,9 @@ const int pin_to_gpio_rev1[41] = {-1, -1, -1, 0, -1, 1, -1, 4, 14, -1, 15, 17, 18, 21, -1, 22, 23, -1, 24, 10, -1, 9, 25, 11, 8, -1, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }; const int pin_to_gpio_rev2[41] = {-1, -1, -1, 2, -1, 3, -1, 4, 14, -1, 15, 17, 18, 27, -1, 22, 23, -1, 24, 10, -1, 9, 25, 11, 8, -1, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }; const int pin_to_gpio_rev3[41] = {-1, -1, -1, 2, -1, 3, -1, 4, 14, -1, 15, 17, 18, 27, -1, 22, 23, -1, 24, 10, -1, 9, 25, 11, 8, -1, 7, -1, -1, 5, -1, 6, 12, 13, -1, 19, 16, 26, 20, -1, 21 }; +const int (*pin_to_gpio)[41]; +int gpio_direction[54]; +rpi_info rpiinfo; int setup_error = 0; int module_setup = 0; diff -purN python-rpi-gpio.org/source/common.h python-rpi-gpio/source/common.h --- python-rpi-gpio.org/source/common.h 2019-07-21 14:41:22.000000000 +0200 +++ python-rpi-gpio/source/common.h 2020-08-07 09:31:33.948575964 +0200 @@ -30,14 +30,14 @@ SOFTWARE. #define I2C 42 #define PWM 43 -int gpio_mode; -const int pin_to_gpio_rev1[41]; -const int pin_to_gpio_rev2[41]; -const int pin_to_gpio_rev3[41]; -const int (*pin_to_gpio)[41]; -int gpio_direction[54]; -rpi_info rpiinfo; -int setup_error; -int module_setup; +extern int gpio_mode; +extern const int pin_to_gpio_rev1[41]; +extern const int pin_to_gpio_rev2[41]; +extern const int pin_to_gpio_rev3[41]; +extern const int (*pin_to_gpio)[41]; +extern int gpio_direction[54]; +extern rpi_info rpiinfo; +extern int setup_error; +extern int module_setup; int check_gpio_priv(void); int get_gpio_number(int channel, unsigned int *gpio); diff -purN python-rpi-gpio.org/source/constants.c python-rpi-gpio/source/constants.c --- python-rpi-gpio.org/source/constants.c 2019-07-21 14:41:22.000000000 +0200 +++ python-rpi-gpio/source/constants.c 2020-08-07 09:32:15.522196618 +0200 @@ -21,6 +21,7 @@ */ #include "Python.h" +#define CONSTANTS_C #include "constants.h" #include "common.h" #include "c_gpio.h" diff -purN python-rpi-gpio.org/source/constants.h python-rpi-gpio/source/constants.h --- python-rpi-gpio.org/source/constants.h 2019-07-21 14:41:22.000000000 +0200 +++ python-rpi-gpio/source/constants.h 2020-08-07 09:32:15.522196618 +0200 @@ -23,22 +23,28 @@ SOFTWARE. #define PY_PUD_CONST_OFFSET 20 #define PY_EVENT_CONST_OFFSET 30 -PyObject *high; -PyObject *low; -PyObject *input; -PyObject *output; -PyObject *pwm; -PyObject *serial; -PyObject *i2c; -PyObject *spi; -PyObject *unknown; -PyObject *board; -PyObject *bcm; -PyObject *pud_off; -PyObject *pud_up; -PyObject *pud_down; -PyObject *rising_edge; -PyObject *falling_edge; -PyObject *both_edge; +#ifdef CONSTANTS_C +#define MAYBE_EXTERN +#else +#define MAYBE_EXTERN extern +#endif + +MAYBE_EXTERN PyObject *high; +MAYBE_EXTERN PyObject *low; +MAYBE_EXTERN PyObject *input; +MAYBE_EXTERN PyObject *output; +MAYBE_EXTERN PyObject *pwm; +MAYBE_EXTERN PyObject *serial; +MAYBE_EXTERN PyObject *i2c; +MAYBE_EXTERN PyObject *spi; +MAYBE_EXTERN PyObject *unknown; +MAYBE_EXTERN PyObject *board; +MAYBE_EXTERN PyObject *bcm; +MAYBE_EXTERN PyObject *pud_off; +MAYBE_EXTERN PyObject *pud_up; +MAYBE_EXTERN PyObject *pud_down; +MAYBE_EXTERN PyObject *rising_edge; +MAYBE_EXTERN PyObject *falling_edge; +MAYBE_EXTERN PyObject *both_edge; void define_constants(PyObject *module); diff -purN python-rpi-gpio.org/source/event_gpio.c python-rpi-gpio/source/event_gpio.c --- python-rpi-gpio.org/source/event_gpio.c 2019-07-21 14:41:22.000000000 +0200 +++ python-rpi-gpio/source/event_gpio.c 2020-08-07 09:42:05.564483136 +0200 @@ -57,7 +57,7 @@ struct callback }; struct callback *callbacks = NULL; -pthread_t threads; +static pthread_t threads; int event_occurred[54] = { 0 }; int thread_running = 0; int epfd_thread = -1; diff -purN python-rpi-gpio.org/source/py_pwm.h python-rpi-gpio/source/py_pwm.h --- python-rpi-gpio.org/source/py_pwm.h 2019-07-21 14:41:22.000000000 +0200 +++ python-rpi-gpio/source/py_pwm.h 2020-08-07 09:38:49.445646807 +0200 @@ -20,5 +20,5 @@ OUT OF OR IN CONNECTION WITH THE SOFTWAR SOFTWARE. */ -PyTypeObject PWMType; +extern PyTypeObject PWMType; PyTypeObject *PWM_init_PWMType(void); diff -purN python-rpi-gpio.org/source/soft_pwm.c python-rpi-gpio/source/soft_pwm.c --- python-rpi-gpio.org/source/soft_pwm.c 2019-07-21 14:41:22.000000000 +0200 +++ python-rpi-gpio/source/soft_pwm.c 2020-08-07 09:42:40.753160437 +0200 @@ -25,7 +25,7 @@ SOFTWARE. #include #include "c_gpio.h" #include "soft_pwm.h" -pthread_t threads; +static pthread_t threads; struct pwm { diff -purN python-rpi-gpio.org/source/soft_pwm.h python-rpi-gpio/source/soft_pwm.h --- python-rpi-gpio.org/source/soft_pwm.h 2019-07-21 14:41:22.000000000 +0200 +++ python-rpi-gpio/source/soft_pwm.h 2020-08-07 09:39:25.916811352 +0200 @@ -26,4 +26,4 @@ void pwm_set_duty_cycle(unsigned int gpi void pwm_set_frequency(unsigned int gpio, float freq); void pwm_start(unsigned int gpio); void pwm_stop(unsigned int gpio); -int pwm_exists(unsigned int gpio); +extern int pwm_exists(unsigned int gpio); ================================================ FILE: package/python-rpi-gpio/Config.in ================================================ 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 ================================================ FILE: package/python-rpi-gpio/python-rpi-gpio.hash ================================================ # md5 from https://pypi.python.org/pypi/rpi_gpio/json # sha256 from https://pypi.python.org/pypi/rpi_gpio/json md5 777617f9dea9a1680f9af43db0cf150e RPi.GPIO-0.7.0.tar.gz sha256 7424bc6c205466764f30f666c18187a0824077daf20b295c42f08aea2cb87d3f RPi.GPIO-0.7.0.tar.gz # Locally computed sha256 a668b3edecb3e69e81ec25987257008208ffcba9d6c43682033b8060c5f2f994 LICENCE.txt ================================================ FILE: package/python-rpi-gpio/python-rpi-gpio.mk ================================================ ################################################################################ # # python-rpi-gpio # ################################################################################ PYTHON_RPI_GPIO_VERSION = 0.7.0 PYTHON_RPI_GPIO_SOURCE = RPi.GPIO-$(PYTHON_RPI_GPIO_VERSION).tar.gz PYTHON_RPI_GPIO_SITE = https://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)) ================================================ FILE: package/python-rpi-ws281x/Config.in ================================================ config BR2_PACKAGE_PYTHON_RPI_WS281X bool "python-rpi-ws281x" help Userspace Raspberry Pi PWM/PCM/SPI library for SK6812 and WS281X LEDs. https://github.com/rpi-ws281x/rpi-ws281x-python/ ================================================ FILE: package/python-rpi-ws281x/python-rpi-ws281x.hash ================================================ # md5, sha256 from https://pypi.org/pypi/rpi-ws281x/json md5 016e1f03f9168ef03d4baf074aa60f03 rpi_ws281x-4.3.4.tar.gz sha256 072eff1787e579d1710381b27c467709e3aab28ac579c7a47d7cc87398496f28 rpi_ws281x-4.3.4.tar.gz # Locally computed sha256 checksums sha256 7bbf6337c1eee7169579e6acd398f31ea274dfa3a1689ab7e654ca3585d5a8a9 LICENSE sha256 7bbf6337c1eee7169579e6acd398f31ea274dfa3a1689ab7e654ca3585d5a8a9 lib/LICENSE ================================================ FILE: package/python-rpi-ws281x/python-rpi-ws281x.mk ================================================ ################################################################################ # # python-rpi-ws281x # ################################################################################ PYTHON_RPI_WS281X_VERSION = 4.3.4 PYTHON_RPI_WS281X_SOURCE = rpi_ws281x-$(PYTHON_RPI_WS281X_VERSION).tar.gz PYTHON_RPI_WS281X_SITE = https://files.pythonhosted.org/packages/e2/d4/75fcc4f3412b9b16e39e6cd6156f2e171fe7b2e79057be17d1acf38fded4 PYTHON_RPI_WS281X_SETUP_TYPE = setuptools PYTHON_RPI_WS281X_LICENSE = BSD-2-Clause PYTHON_RPI_WS281X_LICENSE_FILES = LICENSE lib/LICENSE $(eval $(python-package)) ================================================ FILE: package/python-rq/Config.in ================================================ config BR2_PACKAGE_PYTHON_RQ bool "python-rq" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 help Simple job queues for Python. https://python-rq.org/ ================================================ FILE: package/python-rq/python-rq.hash ================================================ sha256 22de332ed7e061634eb893dc8cc9ca96c8641480f46c403cabef8d43a2eca867 rq-1.0.tar.gz ================================================ FILE: package/python-rq/python-rq.mk ================================================ ################################################################################ # # python-rq # ################################################################################ PYTHON_RQ_VERSION = 1.0 PYTHON_RQ_SOURCE = rq-$(PYTHON_RQ_VERSION).tar.gz PYTHON_RQ_SITE = https://files.pythonhosted.org/packages/9d/f5/6a302ee297d8031ff955f26c0f38b043972fa5f45708f6865598bdac249f PYTHON_RQ_SETUP_TYPE = setuptools PYTHON_RQ_LICENSE = Apache-2.0 PYTHON_RQ_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-rsa/Config.in ================================================ config BR2_PACKAGE_PYTHON_RSA bool "python-rsa" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_PYASN1 # runtime help Python-RSA is a pure-Python RSA implementation. It supports encryption and decryption, signing and verifying signatures, and key generation according to PKCS\#1 version 1.5. It can be used as a Python library as well as on the command line. https://stuvel.eu/rsa ================================================ FILE: package/python-rsa/python-rsa.hash ================================================ # From https://pypi.org/project/rsa/ sha256 9d689e6ca1b3038bc82bf8d23e944b6b6037bc02301a574935b2dd946e0353b9 rsa-4.7.2.tar.gz # Locally computed sha256 073f28b7d389c8fe74f607e17c27f81eaa5ace69edc43a884f23f41b41c5c726 LICENSE ================================================ FILE: package/python-rsa/python-rsa.mk ================================================ ################################################################################ # # python-rsa # ################################################################################ PYTHON_RSA_VERSION = 4.7.2 PYTHON_RSA_SOURCE = rsa-$(PYTHON_RSA_VERSION).tar.gz PYTHON_RSA_SITE = https://files.pythonhosted.org/packages/db/b5/475c45a58650b0580421746504b680cd2db4e81bc941e94ca53785250269 PYTHON_RSA_SETUP_TYPE = setuptools PYTHON_RSA_LICENSE = Apache-2.0 PYTHON_RSA_LICENSE_FILES = LICENSE PYTHON_RSA_CPE_ID_VENDOR = python-rsa_project $(eval $(python-package)) ================================================ FILE: package/python-rtslib-fb/Config.in ================================================ config BR2_PACKAGE_PYTHON_RTSLIB_FB bool "python-rtslib-fb" select BR2_PACKAGE_PYTHON_SIX help rtslib-fb is an object-based Python library for configuring the LIO generic SCSI target, present in 3.x Linux kernel versions. https://github.com/open-iscsi/rtslib-fb ================================================ FILE: package/python-rtslib-fb/python-rtslib-fb.hash ================================================ # locally computed sha256 d5d81a78046b4c228d29ba88d9950e0f63858e5fcf601e3d0f8bf107fbaadc03 python-rtslib-fb-2.1.fb57.tar.gz sha256 5df2a0d87d6c562f0ea11c688ac52532aa28d744cabc7994ff0537f64b3b3320 COPYING ================================================ FILE: package/python-rtslib-fb/python-rtslib-fb.mk ================================================ ################################################################################ # # python-rtslib-fb # ################################################################################ # When upgrading the version, be sure to also upgrade # python-configshell-fb and targetcli-fb at the same time. PYTHON_RTSLIB_FB_VERSION = 2.1.fb57 # Do not switch site to PyPI: it does not contain the latest version. PYTHON_RTSLIB_FB_SITE = $(call github,open-iscsi,rtslib-fb,v$(PYTHON_RTSLIB_FB_VERSION)) PYTHON_RTSLIB_FB_LICENSE = Apache-2.0 PYTHON_RTSLIB_FB_LICENSE_FILES = COPYING PYTHON_RTSLIB_FB_SETUP_TYPE = setuptools PYTHON_RTSLIB_FB_DEPENDENCIES = python-six $(eval $(python-package)) ================================================ FILE: package/python-s3transfer/Config.in ================================================ config BR2_PACKAGE_PYTHON_S3TRANSFER bool "python-s3transfer" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_BOTOCORE # runtime help An Amazon S3 Transfer Manager. https://github.com/boto/s3transfer ================================================ FILE: package/python-s3transfer/python-s3transfer.hash ================================================ # md5, sha256 from https://pypi.org/pypi/s3transfer/json md5 9416d1c7d33506501a8627bb1f7baf66 s3transfer-0.5.0.tar.gz sha256 50ed823e1dc5868ad40c8dc92072f757aa0e653a192845c94a3b676f4a62da4c s3transfer-0.5.0.tar.gz # Locally computed sha256 checksums sha256 8c6db340475136df3c1201d458fa5755698eace76e510471ecc9d857d6083dac LICENSE.txt ================================================ FILE: package/python-s3transfer/python-s3transfer.mk ================================================ ################################################################################ # # python-s3transfer # ################################################################################ PYTHON_S3TRANSFER_VERSION = 0.5.0 PYTHON_S3TRANSFER_SOURCE = s3transfer-$(PYTHON_S3TRANSFER_VERSION).tar.gz PYTHON_S3TRANSFER_SITE = https://files.pythonhosted.org/packages/88/ef/4d1b3f52ae20a7e72151fde5c9f254cd83f8a49047351f34006e517e1655 PYTHON_S3TRANSFER_SETUP_TYPE = setuptools PYTHON_S3TRANSFER_LICENSE = Apache-2.0 PYTHON_S3TRANSFER_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-scandir/Config.in ================================================ config BR2_PACKAGE_PYTHON_SCANDIR bool "python-scandir" help scandir, a better directory iterator and faster os.walk() https://pypi.python.org/pypi/scandir ================================================ FILE: package/python-scandir/python-scandir.hash ================================================ # md5, sha256 from https://pypi.org/pypi/scandir/json md5 f8378f4d9f95a6a78e97ab01aa900c1d scandir-1.10.0.tar.gz sha256 4d4631f6062e658e9007ab3149a9b914f3548cb38bfb021c64f39a025ce578ae scandir-1.10.0.tar.gz # Locally computed sha256 checksums sha256 a5e2fbdc239744419d29407cdbc92793c4d9c1d956c174f7cb7f96fa6d058c86 LICENSE.txt ================================================ FILE: package/python-scandir/python-scandir.mk ================================================ ################################################################################ # # python-scandir # ################################################################################ PYTHON_SCANDIR_VERSION = 1.10.0 PYTHON_SCANDIR_SOURCE = scandir-$(PYTHON_SCANDIR_VERSION).tar.gz PYTHON_SCANDIR_SITE = https://files.pythonhosted.org/packages/df/f5/9c052db7bd54d0cbf1bc0bb6554362bba1012d03e5888950a4f5c5dadc4e PYTHON_SCANDIR_LICENSE = BSD-3-Clause PYTHON_SCANDIR_LICENSE_FILES = LICENSE.txt PYTHON_SCANDIR_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-scapy/Config.in ================================================ config BR2_PACKAGE_PYTHON_SCAPY bool "python-scapy" select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 help Scapy: interactive packet manipulation tool. http://www.secdev.org/projects/scapy ================================================ FILE: package/python-scapy/python-scapy.hash ================================================ # md5, sha256 from https://pypi.org/pypi/scapy/json md5 54072af118e9291b6c7898b4ea87cdaf scapy-2.4.5.tar.gz sha256 bc707e3604784496b6665a9e5b2a69c36cc9fb032af4864b29051531b24c8593 scapy-2.4.5.tar.gz # Locally computed sha256 checksums sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/python-scapy/python-scapy.mk ================================================ ################################################################################ # # python-scapy # ################################################################################ PYTHON_SCAPY_VERSION = 2.4.5 PYTHON_SCAPY_SOURCE = scapy-$(PYTHON_SCAPY_VERSION).tar.gz PYTHON_SCAPY_SITE = https://files.pythonhosted.org/packages/85/47/c919432ca258f354bb2c1e645623f891603f185bfc7563d4a21f6432e7ed PYTHON_SCAPY_SETUP_TYPE = setuptools PYTHON_SCAPY_LICENSE = GPL-2.0 PYTHON_SCAPY_LICENSE_FILES = LICENSE PYTHON_SCAPY_CPE_ID_VENDOR = scapy PYTHON_SCAPY_CPE_ID_PRODUCT = scapy $(eval $(python-package)) ================================================ FILE: package/python-schedule/Config.in ================================================ config BR2_PACKAGE_PYTHON_SCHEDULE bool "python-schedule" depends on BR2_PACKAGE_PYTHON3 help Job scheduling for humans. https://github.com/dbader/schedule ================================================ FILE: package/python-schedule/python-schedule.hash ================================================ # md5, sha256 from https://pypi.org/pypi/schedule/json md5 9bf7544e37824e450457187633a17b17 schedule-1.1.0.tar.gz sha256 e6ca13585e62c810e13a08682e0a6a8ad245372e376ba2b8679294f377dfc8e4 schedule-1.1.0.tar.gz # Locally computed sha256 checksums sha256 30a8352c318ce1b645acde0299697342d4380ed2637d7ca18a8ad25661e3b41b LICENSE.txt ================================================ FILE: package/python-schedule/python-schedule.mk ================================================ ################################################################################ # # python-schedule # ################################################################################ PYTHON_SCHEDULE_VERSION = 1.1.0 PYTHON_SCHEDULE_SOURCE = schedule-$(PYTHON_SCHEDULE_VERSION).tar.gz PYTHON_SCHEDULE_SITE = https://files.pythonhosted.org/packages/a8/b5/a291a4c0faa491fd5baefa6d89011ece581cff47b23c0a39b42a63383358 PYTHON_SCHEDULE_SETUP_TYPE = setuptools PYTHON_SCHEDULE_LICENSE = MIT PYTHON_SCHEDULE_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-sdnotify/Config.in ================================================ 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 ================================================ FILE: package/python-sdnotify/python-sdnotify.hash ================================================ # md5, sha256 from https://pypi.org/pypi/sdnotify/json md5 749ddca1c70be1697fecc443fb1fdb16 sdnotify-0.3.2.tar.gz sha256 73977fc746b36cc41184dd43c3fe81323e7b8b06c2bb0826c4f59a20c56bb9f1 sdnotify-0.3.2.tar.gz # Locally computed sha256 checksums sha256 038351c6f544a386576da41d5fe1320437ed211507565dd9c334c8290055b88e LICENSE.txt ================================================ FILE: package/python-sdnotify/python-sdnotify.mk ================================================ ################################################################################ # # python-sdnotify # ################################################################################ PYTHON_SDNOTIFY_VERSION = 0.3.2 PYTHON_SDNOTIFY_SOURCE = sdnotify-$(PYTHON_SDNOTIFY_VERSION).tar.gz PYTHON_SDNOTIFY_SITE = https://files.pythonhosted.org/packages/ce/d8/9fdc36b2a912bf78106de4b3f0de3891ff8f369e7a6f80be842b8b0b6bd5 PYTHON_SDNOTIFY_SETUP_TYPE = distutils PYTHON_SDNOTIFY_LICENSE = MIT PYTHON_SDNOTIFY_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-secretstorage/Config.in ================================================ config BR2_PACKAGE_PYTHON_SECRETSTORAGE bool "python-secretstorage" depends on BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-cryptography select BR2_PACKAGE_PYTHON_CRYPTOGRAPHY # runtime help Python bindings to FreeDesktop.org Secret Service API. https://github.com/mitya57/secretstorage ================================================ FILE: package/python-secretstorage/python-secretstorage.hash ================================================ # md5, sha256 from https://pypi.org/pypi/secretstorage/json md5 c2a8c0e08e5da198fc38c379b98c28f1 SecretStorage-3.1.2.tar.gz sha256 15da8a989b65498e29be338b3b279965f1b8f09b9668bd8010da183024c8bff6 SecretStorage-3.1.2.tar.gz # Locally computed sha256 checksums sha256 70f6bfca77633c35efa218328eda5486d7054c2914d61820980e378797520a25 LICENSE ================================================ FILE: package/python-secretstorage/python-secretstorage.mk ================================================ ################################################################################ # # python-secretstorage # ################################################################################ PYTHON_SECRETSTORAGE_VERSION = 3.1.2 PYTHON_SECRETSTORAGE_SOURCE = SecretStorage-$(PYTHON_SECRETSTORAGE_VERSION).tar.gz PYTHON_SECRETSTORAGE_SITE = https://files.pythonhosted.org/packages/fd/9f/36197c75d9a09b1ab63f56cb985af6cd858ca3fc41fd9cd890ce69bae5b9 PYTHON_SECRETSTORAGE_SETUP_TYPE = setuptools PYTHON_SECRETSTORAGE_LICENSE = BSD-3-Clause PYTHON_SECRETSTORAGE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-see/Config.in ================================================ config BR2_PACKAGE_PYTHON_SEE bool "python-see" help dir for humans. https://ljcooke.github.io/see/ ================================================ FILE: package/python-see/python-see.hash ================================================ # md5 from https://pypi.python.org/pypi/see/json, sha256 locally computed md5 cb3bf4d314f73a8f7a2fd3d2d99aab54 see-1.4.1.tar.gz sha256 14f8f8a88a909a7d7dea81f0016e3fdfabd3b5d335992e102a382e1a71672bd1 see-1.4.1.tar.gz sha256 dccbd040a7deacee7f05e5e46a8eba6e786ac319f0cb94c36f92d789585911a6 LICENSE ================================================ FILE: package/python-see/python-see.mk ================================================ ################################################################################ # # python-see # ################################################################################ PYTHON_SEE_VERSION = 1.4.1 PYTHON_SEE_SOURCE = see-$(PYTHON_SEE_VERSION).tar.gz PYTHON_SEE_SITE = https://pypi.python.org/packages/ff/fc/fcabb6a9bfe7c56798285839780cae67342256b823b97e94d862b0ba21d6 PYTHON_SEE_SETUP_TYPE = setuptools PYTHON_SEE_LICENSE = BSD-3-Clause PYTHON_SEE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-semantic-version/python-semantic-version.hash ================================================ # md5, sha256 from https://pypi.org/pypi/semantic-version/json md5 76d7364def7ee487b6153d40b13de904 semantic_version-2.8.5.tar.gz sha256 d2cb2de0558762934679b9a104e82eca7af448c9f4974d1f3eeccff651df8a54 semantic_version-2.8.5.tar.gz # Locally computed sha256 checksums sha256 a85e7ef2fbc670d26781ed6844cd31a7e8ada65d21328f75a0b02402faae37ea LICENSE ================================================ FILE: package/python-semantic-version/python-semantic-version.mk ================================================ ################################################################################ # # python-semantic-version # ################################################################################ PYTHON_SEMANTIC_VERSION_VERSION = 2.8.5 PYTHON_SEMANTIC_VERSION_SOURCE = semantic_version-$(PYTHON_SEMANTIC_VERSION_VERSION).tar.gz PYTHON_SEMANTIC_VERSION_SITE = https://files.pythonhosted.org/packages/d4/52/3be868c7ed1f408cb822bc92ce17ffe4e97d11c42caafce0589f05844dd0 PYTHON_SEMANTIC_VERSION_SETUP_TYPE = setuptools PYTHON_SEMANTIC_VERSION_LICENSE = BSD-2-Clause PYTHON_SEMANTIC_VERSION_LICENSE_FILES = LICENSE $(eval $(host-python-package)) ================================================ FILE: package/python-semver/Config.in ================================================ config BR2_PACKAGE_PYTHON_SEMVER bool "python-semver" help Python helper for Semantic Versioning (http://semver.org/). https://github.com/python-semver/python-semver ================================================ FILE: package/python-semver/python-semver.hash ================================================ # md5, sha256 from https://pypi.org/pypi/semver/json md5 e98b5fb283ea84daa5195087de83ebf1 semver-2.13.0.tar.gz sha256 fa0fe2722ee1c3f57eac478820c3a5ae2f624af8264cbdf9000c980ff7f75e3f semver-2.13.0.tar.gz # Locally computed sha256 cda490c32e61d3884dc17791fc8078f2a3e564fba98dd18b4dc64eb2720b2b6f LICENSE.txt ================================================ FILE: package/python-semver/python-semver.mk ================================================ ################################################################################ # # python-semver # ################################################################################ PYTHON_SEMVER_VERSION = 2.13.0 PYTHON_SEMVER_SOURCE = semver-$(PYTHON_SEMVER_VERSION).tar.gz PYTHON_SEMVER_SITE = https://files.pythonhosted.org/packages/31/a9/b61190916030ee9af83de342e101f192bbb436c59be20a4cb0cdb7256ece PYTHON_SEMVER_SETUP_TYPE = setuptools PYTHON_SEMVER_LICENSE = BSD-3-Clause PYTHON_SEMVER_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-sentry-sdk/Config.in ================================================ config BR2_PACKAGE_PYTHON_SENTRY_SDK bool "python-sentry-sdk" select BR2_PACKAGE_PYTHON_CERTIFI # runtime select BR2_PACKAGE_PYTHON_URLLIB3 # runtime help Python client for Sentry (https://sentry.io). https://github.com/getsentry/sentry-python ================================================ FILE: package/python-sentry-sdk/python-sentry-sdk.hash ================================================ # md5, sha256 from https://pypi.org/pypi/sentry-sdk/json md5 6dc8c7586d95f7679c7bf7f749336cf8 sentry-sdk-1.4.3.tar.gz sha256 b9844751e40710e84a457c5bc29b21c383ccb2b63d76eeaad72f7f1c808c8828 sentry-sdk-1.4.3.tar.gz # Locally computed sha256 checksums sha256 59404d4c854e579097d41bfccd5006afde9d6d70e646cf55074cdbfead5ecf1c LICENSE ================================================ FILE: package/python-sentry-sdk/python-sentry-sdk.mk ================================================ ################################################################################ # # python-sentry-sdk # ################################################################################ PYTHON_SENTRY_SDK_VERSION = 1.4.3 PYTHON_SENTRY_SDK_SOURCE = sentry-sdk-$(PYTHON_SENTRY_SDK_VERSION).tar.gz PYTHON_SENTRY_SDK_SITE = https://files.pythonhosted.org/packages/a7/30/1d967b2e0cac2fa388344b2968fa57e69d5382b922e57cda43af54b9063a PYTHON_SENTRY_SDK_SETUP_TYPE = setuptools PYTHON_SENTRY_SDK_LICENSE = BSD-2-Clause PYTHON_SENTRY_SDK_LICENSE_FILES = LICENSE ifeq ($(BR2_PACKAGE_PYTHON),y) # only needed/valid for python 3.x define PYTHON_SENTRY_SDK_RM_PY3_FILES rm -f $(addprefix $(TARGET_DIR)/usr/lib/python*/site-packages/sentry_sdk/integrations/,\ aiohttp.py asgi.py django/asgi.py httpx.py sanic.py tornado.py) endef PYTHON_SENTRY_SDK_POST_INSTALL_TARGET_HOOKS += PYTHON_SENTRY_SDK_RM_PY3_FILES endif $(eval $(python-package)) ================================================ FILE: package/python-serial/Config.in ================================================ config BR2_PACKAGE_PYTHON_SERIAL bool "python-serial" help python-serial is a Python library to access serial ports. https://github.com/pyserial/pyserial ================================================ FILE: package/python-serial/python-serial.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyserial/json md5 1cf25a76da59b530dbfc2cf99392dc83 pyserial-3.5.tar.gz sha256 3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb pyserial-3.5.tar.gz # Locally computed sha256 checksums sha256 f91cb9813de6a5b142b8f7f2dede630b5134160aedaeaf55f4d6a7e2593ca3f3 LICENSE.txt ================================================ FILE: package/python-serial/python-serial.mk ================================================ ################################################################################ # # python-serial # ################################################################################ PYTHON_SERIAL_VERSION = 3.5 PYTHON_SERIAL_SOURCE = pyserial-$(PYTHON_SERIAL_VERSION).tar.gz PYTHON_SERIAL_SITE = https://files.pythonhosted.org/packages/1e/7d/ae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082 PYTHON_SERIAL_LICENSE = BSD-3-Clause PYTHON_SERIAL_LICENSE_FILES = LICENSE.txt PYTHON_SERIAL_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-serial-asyncio/Config.in ================================================ config BR2_PACKAGE_PYTHON_SERIAL_ASYNCIO bool "python-serial-asyncio" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SERIAL help asyncio extension package for pyserial. https://github.com/pyserial/pyserial-asyncio ================================================ FILE: package/python-serial-asyncio/python-serial-asyncio.hash ================================================ # md5, sha256 from https://pypi.org/pypi/pyserial-asyncio/json md5 409f32a35a3b530e6b2224e2a5b367da pyserial-asyncio-0.6.tar.gz sha256 b6032923e05e9d75ec17a5af9a98429c46d2839adfaf80604d52e0faacd7a32f pyserial-asyncio-0.6.tar.gz # Locally computed sha256 checksums sha256 64f3e548f0300d43c5af90b667150a9c57a4307c0f75fe741f76d0419905224a LICENSE.txt ================================================ FILE: package/python-serial-asyncio/python-serial-asyncio.mk ================================================ ################################################################################ # # python-serial-asyncio # ################################################################################ PYTHON_SERIAL_ASYNCIO_VERSION = 0.6 PYTHON_SERIAL_ASYNCIO_SOURCE = pyserial-asyncio-$(PYTHON_SERIAL_ASYNCIO_VERSION).tar.gz PYTHON_SERIAL_ASYNCIO_SITE = https://files.pythonhosted.org/packages/4a/9a/8477699dcbc1882ea51dcff4d3c25aa3f2063ed8f7d7a849fd8f610506b6 PYTHON_SERIAL_ASYNCIO_LICENSE = BSD-3-Clause PYTHON_SERIAL_ASYNCIO_LICENSE_FILES = LICENSE.txt PYTHON_SERIAL_ASYNCIO_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-service-identity/Config.in ================================================ config BR2_PACKAGE_PYTHON_SERVICE_IDENTITY bool "python-service-identity" # python-pyopenssl -> python-cryptography depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-pyopenssl -> python-cryptography depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_ATTRS # runtime select BR2_PACKAGE_PYTHON_CHARACTERISTIC # runtime select BR2_PACKAGE_PYTHON_PYASN1 # runtime select BR2_PACKAGE_PYTHON_PYASN1_MODULES # runtime select BR2_PACKAGE_PYTHON_PYOPENSSL # runtime help Service identity verification for pyOpenSSL. https://pypi.python.org/pypi/service_identity ================================================ FILE: package/python-service-identity/python-service-identity.hash ================================================ # md5, sha256 from https://pypi.org/pypi/service_identity/json md5 c6b8bac93e7d899a1da313a19cc6570a service_identity-18.1.0.tar.gz sha256 0858a54aabc5b459d1aafa8a518ed2081a285087f349fe3e55197989232e2e2d service_identity-18.1.0.tar.gz # Locally computed sha256 checksums sha256 c5075126e1272b176504e36af369781a95c5c1124239da8e4f61b0f9c15a56cf LICENSE ================================================ FILE: package/python-service-identity/python-service-identity.mk ================================================ ################################################################################ # # python-service-identity # ################################################################################ PYTHON_SERVICE_IDENTITY_VERSION = 18.1.0 PYTHON_SERVICE_IDENTITY_SOURCE = service_identity-$(PYTHON_SERVICE_IDENTITY_VERSION).tar.gz PYTHON_SERVICE_IDENTITY_SITE = https://files.pythonhosted.org/packages/9a/3d/9eb0563e066ea0540cf580695593ab079376e920016d4d1b3ff2fd8abf4b PYTHON_SERVICE_IDENTITY_LICENSE = MIT PYTHON_SERVICE_IDENTITY_LICENSE_FILES = LICENSE PYTHON_SERVICE_IDENTITY_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-setproctitle/Config.in ================================================ config BR2_PACKAGE_PYTHON_SETPROCTITLE bool "python-setproctitle" depends on BR2_PACKAGE_PYTHON3 help A Python module to customize the process title. https://pypi.python.org/pypi/setproctitle ================================================ FILE: package/python-setproctitle/python-setproctitle.hash ================================================ # md5, sha256 from https://pypi.org/pypi/setproctitle/json md5 9898587a1668f1c53f6699ca5d35256d setproctitle-1.2.2.tar.gz sha256 7dfb472c8852403d34007e01d6e3c68c57eb66433fb8a5c77b13b89a160d97df setproctitle-1.2.2.tar.gz # Locally computed sha256 85bd836337aa702e0a4e2a54676c6ae046ffb357dbf4a990189595a60fcd1648 COPYRIGHT ================================================ FILE: package/python-setproctitle/python-setproctitle.mk ================================================ ################################################################################ # # python-setproctitle # ################################################################################ PYTHON_SETPROCTITLE_VERSION = 1.2.2 PYTHON_SETPROCTITLE_SOURCE = setproctitle-$(PYTHON_SETPROCTITLE_VERSION).tar.gz PYTHON_SETPROCTITLE_SITE = https://files.pythonhosted.org/packages/a1/7f/a1d4f4c7b66f0fc02f35dc5c85f45a8b4e4a7988357a29e61c14e725ef86 PYTHON_SETPROCTITLE_LICENSE = BSD-3-Clause PYTHON_SETPROCTITLE_LICENSE_FILES = COPYRIGHT PYTHON_SETPROCTITLE_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-setupnovernormalize/Config.in.host ================================================ config BR2_PACKAGE_HOST_PYTHON_SETUPNOVERNORMALIZE bool "host python-setupnovernormalize" help Prevent version normalization when packaging Python projects with setuptools. For more details, see https://github.com/pypa/setuptools/issues/308. https://github.com/ccrisan/setup-no-ver-normalize ================================================ FILE: package/python-setupnovernormalize/python-setupnovernormalize.hash ================================================ sha256 440ddfb209c40d8ff55472251fda33e8cef3741596462d045d139cd5743b0988 setupnovernormalize-1.0.1.tar.gz ================================================ FILE: package/python-setupnovernormalize/python-setupnovernormalize.mk ================================================ ################################################################################ # # python-setupnovernormalize # ################################################################################ PYTHON_SETUPNOVERNORMALIZE_VERSION = 1.0.1 PYTHON_SETUPNOVERNORMALIZE_SOURCE = setupnovernormalize-$(PYTHON_SETUPNOVERNORMALIZE_VERSION).tar.gz PYTHON_SETUPNOVERNORMALIZE_SITE = https://files.pythonhosted.org/packages/1d/52/fa80eef76aa8e1672f113a63326a4d12f5a1dc7a75798a2e08dc2dea3a8c PYTHON_SETUPNOVERNORMALIZE_SETUP_TYPE = setuptools PYTHON_SETUPNOVERNORMALIZE_LICENSE = UNLICENSE $(eval $(host-python-package)) ================================================ FILE: package/python-setuptools/0001-add-executable.patch ================================================ From 9b3d307f8f6a1af88f3f810f5a6cf0835830e1e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krause?= Date: Mon, 7 Dec 2015 01:14:33 +0100 Subject: [PATCH 1/1] add executable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a new --executable option to distribute so that we can force the shebang line in installed python scripts. [Thomas: refresh for setuptools 5.8.] [Jörg: refresh for setuptools 18.7.1] Signed-off-by: Gustavo Zacarias Signed-off-by: Thomas Petazzoni Signed-off-by: Jörg Krause --- setuptools/command/install.py | 2 ++ setuptools/command/install_scripts.py | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/setuptools/command/install.py b/setuptools/command/install.py index d2bca2e..b60ef19 100644 --- a/setuptools/command/install.py +++ b/setuptools/command/install.py @@ -16,6 +16,7 @@ class install(orig.install): """Use easy_install to install the package, w/dependencies""" user_options = orig.install.user_options + [ + ('executable=', 'e', "specify final destination interpreter path"), ('old-and-unmanageable', None, "Try not to use this!"), ('single-version-externally-managed', None, "used by system package builders to create 'flat' eggs"), @@ -31,6 +32,7 @@ class install(orig.install): def initialize_options(self): orig.install.initialize_options(self) + self.executable = None self.old_and_unmanageable = None self.single_version_externally_managed = None diff --git a/setuptools/command/install_scripts.py b/setuptools/command/install_scripts.py index be66cb2..07afaf8 100755 --- a/setuptools/command/install_scripts.py +++ b/setuptools/command/install_scripts.py @@ -11,6 +11,13 @@ class install_scripts(orig.install_scripts): def initialize_options(self): orig.install_scripts.initialize_options(self) self.no_ep = False + self.executable = None + + def finalize_options(self): + orig.install_scripts.finalize_options(self) + self.set_undefined_options('install', + ('executable','executable') + ) def run(self): import setuptools.command.easy_install as ei @@ -31,6 +38,8 @@ class install_scripts(orig.install_scripts): ) bs_cmd = self.get_finalized_command('build_scripts') exec_param = getattr(bs_cmd, 'executable', None) + if self.executable is not None: + exec_param = self.executable bw_cmd = self.get_finalized_command("bdist_wininst") is_wininst = getattr(bw_cmd, '_is_running', False) writer = ei.ScriptWriter -- 2.6.3 ================================================ FILE: package/python-setuptools/Config.in ================================================ config BR2_PACKAGE_PYTHON_SETUPTOOLS bool "python-setuptools" select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 # runtime select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 # runtime help Download, build, install, upgrade, and uninstall Python packages. http://pypi.python.org/pypi/setuptools ================================================ FILE: package/python-setuptools/python-setuptools.hash ================================================ # From https://pypi.org/pypi/setuptools/json md5 32b6cdce670ce462086d246bea181e9d setuptools-44.0.0.zip sha256 e5baf7723e5bb8382fc146e33032b241efc63314211a3a120aaa55d62d2bb008 setuptools-44.0.0.zip sha256 c32a3ac395af6321efd28be73d06a00f0db6ab887d1c21d4fec46128d2056d5a LICENSE ================================================ FILE: package/python-setuptools/python-setuptools.mk ================================================ ################################################################################ # # python-setuptools # ################################################################################ # Please keep in sync with # package/python3-setuptools/python3-setuptools.mk PYTHON_SETUPTOOLS_VERSION = 44.0.0 PYTHON_SETUPTOOLS_SOURCE = setuptools-$(PYTHON_SETUPTOOLS_VERSION).zip PYTHON_SETUPTOOLS_SITE = https://files.pythonhosted.org/packages/b0/f3/44da7482ac6da3f36f68e253cb04de37365b3dba9036a3c70773b778b485 PYTHON_SETUPTOOLS_LICENSE = MIT PYTHON_SETUPTOOLS_LICENSE_FILES = LICENSE PYTHON_SETUPTOOLS_CPE_ID_VENDOR = python PYTHON_SETUPTOOLS_CPE_ID_PRODUCT = setuptools PYTHON_SETUPTOOLS_SETUP_TYPE = setuptools HOST_PYTHON_SETUPTOOLS_NEEDS_HOST_PYTHON = python2 define PYTHON_SETUPTOOLS_EXTRACT_CMDS $(UNZIP) -d $(@D) $(PYTHON_SETUPTOOLS_DL_DIR)/$(PYTHON_SETUPTOOLS_SOURCE) mv $(@D)/setuptools-$(PYTHON_SETUPTOOLS_VERSION)/* $(@D) $(RM) -r $(@D)/setuptools-$(PYTHON_SETUPTOOLS_VERSION) endef define HOST_PYTHON_SETUPTOOLS_EXTRACT_CMDS $(UNZIP) -d $(@D) $(HOST_PYTHON_SETUPTOOLS_DL_DIR)/$(PYTHON_SETUPTOOLS_SOURCE) mv $(@D)/setuptools-$(PYTHON_SETUPTOOLS_VERSION)/* $(@D) $(RM) -r $(@D)/setuptools-$(PYTHON_SETUPTOOLS_VERSION) endef $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-setuptools-rust/python-setuptools-rust.hash ================================================ # md5, sha256 from https://pypi.org/pypi/setuptools-rust/json md5 33c3fd3bcde2877483ab782353bee54c setuptools-rust-0.12.1.tar.gz sha256 647009e924f0ae439c7f3e0141a184a69ad247ecb9044c511dabde232d3d570e setuptools-rust-0.12.1.tar.gz # Locally computed sha256 checksums sha256 b20668c1590582b3882854050ccfbdb7aee1f71a1ffe9eacc4c5aeb08a14161b LICENSE ================================================ FILE: package/python-setuptools-rust/python-setuptools-rust.mk ================================================ ################################################################################ # # python-setuptools-rust # ################################################################################ PYTHON_SETUPTOOLS_RUST_VERSION = 0.12.1 PYTHON_SETUPTOOLS_RUST_SOURCE = setuptools-rust-$(PYTHON_SETUPTOOLS_RUST_VERSION).tar.gz PYTHON_SETUPTOOLS_RUST_SITE = https://files.pythonhosted.org/packages/12/22/6ba3031e7cbd6eb002e13ffc7397e136df95813b6a2bd71ece52a8f89613 PYTHON_SETUPTOOLS_RUST_SETUP_TYPE = setuptools PYTHON_SETUPTOOLS_RUST_LICENSE = MIT PYTHON_SETUPTOOLS_RUST_LICENSE_FILES = LICENSE HOST_PYTHON_SETUPTOOLS_RUST_DEPENDENCIES = host-rustc host-python-setuptools-scm host-python-toml host-python-semantic-version HOST_PYTHON_SETUPTOOLS_RUST_NEEDS_HOST_PYTHON = python3 $(eval $(host-python-package)) ================================================ FILE: package/python-setuptools-scm/python-setuptools-scm.hash ================================================ # md5, sha256 from https://pypi.org/pypi/setuptools-scm/json md5 c11bf23d80224691a46ee5deb84c42db setuptools_scm-5.0.1.tar.gz sha256 c85b6b46d0edd40d2301038cdea96bb6adc14d62ef943e75afb08b3e7bcf142a setuptools_scm-5.0.1.tar.gz # sha256 locally computed sha256 89807acf2309bd285f033404ee78581602f3cd9b819a16ac2f0e5f60ff4a473e LICENSE ================================================ FILE: package/python-setuptools-scm/python-setuptools-scm.mk ================================================ ################################################################################ # # python-setuptools-scm # ################################################################################ PYTHON_SETUPTOOLS_SCM_VERSION = 5.0.1 PYTHON_SETUPTOOLS_SCM_SOURCE = setuptools_scm-$(PYTHON_SETUPTOOLS_SCM_VERSION).tar.gz PYTHON_SETUPTOOLS_SCM_SITE = https://files.pythonhosted.org/packages/af/df/f8aa8a78d4d29e0cffa4512e9bc223ed02f24893fe1837c6cee2749ebd67 PYTHON_SETUPTOOLS_SCM_LICENSE = MIT PYTHON_SETUPTOOLS_SCM_LICENSE_FILES = LICENSE PYTHON_SETUPTOOLS_SCM_SETUP_TYPE = setuptools $(eval $(host-python-package)) ================================================ FILE: package/python-setuptools-scm-git-archive/python-setuptools-scm-git-archive.hash ================================================ # md5, sha256 from https://pypi.org/pypi/setuptools-scm-git-archive/json md5 1c9351fa5cebd12e76488737a7c78f2e setuptools_scm_git_archive-1.1.tar.gz sha256 6026f61089b73fa1b5ee737e95314f41cb512609b393530385ed281d0b46c062 setuptools_scm_git_archive-1.1.tar.gz # Locally computed sha256 checksums sha256 89807acf2309bd285f033404ee78581602f3cd9b819a16ac2f0e5f60ff4a473e LICENSE ================================================ FILE: package/python-setuptools-scm-git-archive/python-setuptools-scm-git-archive.mk ================================================ ################################################################################ # # python-setuptools-scm-git-archive # ################################################################################ PYTHON_SETUPTOOLS_SCM_GIT_ARCHIVE_VERSION = 1.1 PYTHON_SETUPTOOLS_SCM_GIT_ARCHIVE_SOURCE = setuptools_scm_git_archive-$(PYTHON_SETUPTOOLS_SCM_GIT_ARCHIVE_VERSION).tar.gz PYTHON_SETUPTOOLS_SCM_GIT_ARCHIVE_SITE = https://files.pythonhosted.org/packages/7e/2c/0c15b29a1b5940250bfdc4a4f53272e35cd7cf8a34159291b6b4ec9eb291 PYTHON_SETUPTOOLS_SCM_GIT_ARCHIVE_SETUP_TYPE = setuptools PYTHON_SETUPTOOLS_SCM_GIT_ARCHIVE_LICENSE = MIT PYTHON_SETUPTOOLS_SCM_GIT_ARCHIVE_LICENSE_FILES = LICENSE HOST_PYTHON_SETUPTOOLS_SCM_GIT_ARCHIVE_DEPENDENCIES = host-python-setuptools-scm $(eval $(host-python-package)) ================================================ FILE: package/python-sh/Config.in ================================================ config BR2_PACKAGE_PYTHON_SH bool "python-sh" help Python subprocess replacement that allows you to call any program as if it were a function. https://github.com/amoffat/sh ================================================ FILE: package/python-sh/python-sh.hash ================================================ # md5, sha256 from https://pypi.org/pypi/sh/json md5 33becadcb5214afd00b9eec05fa98c06 sh-1.14.2.tar.gz sha256 9d7bd0334d494b2a4609fe521b2107438cdb21c0e469ffeeb191489883d6fe0d sh-1.14.2.tar.gz # Locally computed sha256 d8491c6e236568d04f7c8c07f2f1b8f5d142706dab6ab88f6e0d2dd476b6c706 LICENSE.txt ================================================ FILE: package/python-sh/python-sh.mk ================================================ ################################################################################ # # python-sh # ################################################################################ PYTHON_SH_VERSION = 1.14.2 PYTHON_SH_SOURCE = sh-$(PYTHON_SH_VERSION).tar.gz PYTHON_SH_SITE = https://files.pythonhosted.org/packages/80/39/ed280d183c322453e276a518605b2435f682342f2c3bcf63228404d36375 PYTHON_SH_SETUP_TYPE = setuptools PYTHON_SH_LICENSE = MIT PYTHON_SH_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-shutilwhich/Config.in ================================================ config BR2_PACKAGE_PYTHON_SHUTILWHICH bool "python-shutilwhich" help shutil.which for those not using Python 3.3 yet. https://pypi.python.org/pypi/shutilwhich/ ================================================ FILE: package/python-shutilwhich/python-shutilwhich.hash ================================================ # 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 ================================================ FILE: package/python-shutilwhich/python-shutilwhich.mk ================================================ ################################################################################ # # python-shutilwhich # ################################################################################ PYTHON_SHUTILWHICH_VERSION = 1.1.0 PYTHON_SHUTILWHICH_SOURCE = shutilwhich-$(PYTHON_SHUTILWHICH_VERSION).tar.gz PYTHON_SHUTILWHICH_SITE = https://pypi.python.org/packages/source/s/shutilwhich PYTHON_SHUTILWHICH_LICENSE = Python-2.0 PYTHON_SHUTILWHICH_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-simpleaudio/Config.in ================================================ config BR2_PACKAGE_PYTHON_SIMPLEAUDIO bool "python-simpleaudio" depends on BR2_PACKAGE_PYTHON3 depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib select BR2_PACKAGE_ALSA_LIB help The simplaudio package provides cross-platform, dependency-free audio playback capability for Python 3 on OSX, Windows, and Linux. https://github.com/hamiltron/py-simple-audio comment "python-simpleaudio needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/python-simpleaudio/python-simpleaudio.hash ================================================ # md5, sha256 from https://pypi.org/pypi/simpleaudio/json md5 8bd62157c286824e289e1f258419b98c simpleaudio-1.0.4.tar.gz sha256 691c88649243544db717e7edf6a9831df112104e1aefb5f6038a5d071e8cf41d simpleaudio-1.0.4.tar.gz # Locally computed sha256 checksums sha256 b4340683e83f0f25ea40f992773ceec6c749c4d64ec2c09dfa49d7f5b029adbf LICENSE.txt ================================================ FILE: package/python-simpleaudio/python-simpleaudio.mk ================================================ ################################################################################ # # python-simpleaudio # ################################################################################ PYTHON_SIMPLEAUDIO_VERSION = 1.0.4 PYTHON_SIMPLEAUDIO_SOURCE = simpleaudio-$(PYTHON_SIMPLEAUDIO_VERSION).tar.gz PYTHON_SIMPLEAUDIO_SITE = https://files.pythonhosted.org/packages/94/1b/4dc29653733202b68c09d9c6ca085cf67ac54859ee860647ef21ac1ff3dc PYTHON_SIMPLEAUDIO_LICENSE = MIT PYTHON_SIMPLEAUDIO_LICENSE_FILES = LICENSE.txt PYTHON_SIMPLEAUDIO_SETUP_TYPE = setuptools PYTHON_SIMPLEAUDIO_DEPENDENCIES = alsa-lib $(eval $(python-package)) ================================================ FILE: package/python-simplegeneric/Config.in ================================================ config BR2_PACKAGE_PYTHON_SIMPLEGENERIC bool "python-simplegeneric" help Simple generic functions (similar to Python's own len(), pickle.dump(), etc.) https://pypi.python.org/pypi/simplegeneric ================================================ FILE: package/python-simplegeneric/python-simplegeneric.hash ================================================ # md5 from https://pypi.python.org/pypi/simplegeneric, sha256 locally computed md5 f9c1fab00fd981be588fc32759f474e3 simplegeneric-0.8.1.zip sha256 dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173 simplegeneric-0.8.1.zip ================================================ FILE: package/python-simplegeneric/python-simplegeneric.mk ================================================ ################################################################################ # # python-simplegeneric # ################################################################################ PYTHON_SIMPLEGENERIC_VERSION = 0.8.1 PYTHON_SIMPLEGENERIC_SOURCE = simplegeneric-$(PYTHON_SIMPLEGENERIC_VERSION).zip PYTHON_SIMPLEGENERIC_SITE = https://pypi.python.org/packages/3d/57/4d9c9e3ae9a255cd4e1106bb57e24056d3d0709fc01b2e3e345898e49d5b PYTHON_SIMPLEGENERIC_LICENSE = ZPL-2.1 # Force setup-type to be 'setuptools' in order to force the package to # be installed with --single-version-externally-managed. Otherwise we # end up with a .egg file, which is a zip archive, and as such forces # us to have 'zlib' as a runtime dependency PYTHON_SIMPLEGENERIC_SETUP_TYPE = setuptools define PYTHON_SIMPLEGENERIC_EXTRACT_CMDS unzip $(PYTHON_SIMPLEGENERIC_DL_DIR)/$(PYTHON_SIMPLEGENERIC_SOURCE) -d $(@D) mv $(@D)/simplegeneric-$(PYTHON_SIMPLEGENERIC_VERSION)/* $(@D) rmdir $(@D)/simplegeneric-$(PYTHON_SIMPLEGENERIC_VERSION) endef $(eval $(python-package)) ================================================ FILE: package/python-simplejson/Config.in ================================================ config BR2_PACKAGE_PYTHON_SIMPLEJSON bool "python-simplejson" help Simple, fast, extensible JSON encoder/decoder for Python. https://pypi.python.org/pypi/simplejson/ ================================================ FILE: package/python-simplejson/python-simplejson.hash ================================================ # md5, sha256 from https://pypi.org/pypi/simplejson/json md5 1756427859454004e90e028d263cf23e simplejson-3.17.5.tar.gz sha256 91cfb43fb91ff6d1e4258be04eee84b51a4ef40a28d899679b9ea2556322fb50 simplejson-3.17.5.tar.gz # Locally computed sha256 checksums sha256 fcaa1e313a99304322e2e0836ea4ee7d839ce9a480438f3922a853edfdde129f LICENSE.txt ================================================ FILE: package/python-simplejson/python-simplejson.mk ================================================ ################################################################################ # # python-simplejson # ################################################################################ PYTHON_SIMPLEJSON_VERSION = 3.17.5 PYTHON_SIMPLEJSON_SOURCE = simplejson-$(PYTHON_SIMPLEJSON_VERSION).tar.gz PYTHON_SIMPLEJSON_SITE = https://files.pythonhosted.org/packages/01/52/41c71718f941c9a5abebfaa24e3c14e3c0229327b7ebd21348989845ed8f PYTHON_SIMPLEJSON_LICENSE = Academic Free License (AFL), MIT PYTHON_SIMPLEJSON_LICENSE_FILES = LICENSE.txt PYTHON_SIMPLEJSON_CPE_ID_VENDOR = simplejson_project PYTHON_SIMPLEJSON_CPE_ID_PRODUCT = simplejson PYTHON_SIMPLEJSON_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-simplelogging/Config.in ================================================ config BR2_PACKAGE_PYTHON_SIMPLELOGGING bool "python-simplelogging" depends on BR2_PACKAGE_PYTHON3 # python-colorlog select BR2_PACKAGE_PYTHON_COLORLOG # runtime help Logging made simple, no excuse for any debug print call. https://github.com/vpoulailleau/simplelogging ================================================ FILE: package/python-simplelogging/python-simplelogging.hash ================================================ # md5, sha256 from https://pypi.org/pypi/simplelogging/json md5 97b5f2a5cd9cff1b60c727cd03b3ffe1 simplelogging-0.11.0.tar.gz sha256 23a128b47d3e88213adc51fdd102aae15a398cf459d782eb19534945d23f0bc5 simplelogging-0.11.0.tar.gz # Locally computed sha256 checksums sha256 bd2a0fe3b3bab7092ffa7f58d46bb05d98f12f107b3a6be947c098f7c2ad1d1a LICENSE ================================================ FILE: package/python-simplelogging/python-simplelogging.mk ================================================ ################################################################################ # # python-simplelogging # ################################################################################ PYTHON_SIMPLELOGGING_VERSION = 0.11.0 PYTHON_SIMPLELOGGING_SOURCE = simplelogging-$(PYTHON_SIMPLELOGGING_VERSION).tar.gz PYTHON_SIMPLELOGGING_SITE = https://files.pythonhosted.org/packages/73/d6/4c06aa7f2c3b9fc09429a1196fd357357cc555de5e16c09b2d12e9db1ebb PYTHON_SIMPLELOGGING_SETUP_TYPE = setuptools PYTHON_SIMPLELOGGING_LICENSE = BSD-3-Clause PYTHON_SIMPLELOGGING_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-simplesqlite/Config.in ================================================ config BR2_PACKAGE_PYTHON_SIMPLESQLITE bool "python-simplesqlite" depends on BR2_PACKAGE_PYTHON3 # python-mbstrdecoder, python-pathvalidate select BR2_PACKAGE_PYTHON_DATAPROPERTY # runtime select BR2_PACKAGE_PYTHON_MBSTRDECODER # runtime select BR2_PACKAGE_PYTHON_PATHVALIDATE # runtime select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON3_SQLITE # runtime select BR2_PACKAGE_PYTHON_SQLITESCHEMA # runtime select BR2_PACKAGE_PYTHON_TABLEDATA # runtime select BR2_PACKAGE_PYTHON_TYPEPY # runtime help SimpleSQLite is a Python library to simplify SQLite database operations: table creation, data insertion and get data as other data formats. https://github.com/thombashi/SimpleSQLite ================================================ FILE: package/python-simplesqlite/python-simplesqlite.hash ================================================ # md5, sha256 from https://pypi.org/pypi/simplesqlite/json md5 f1d4f2ec14e2c782a62e451587477598 SimpleSQLite-0.45.2.tar.gz sha256 0b19c99c36b63173a715649f94a2fc3aee8deb9b70c683d584bca85e5930244b SimpleSQLite-0.45.2.tar.gz # Locally computed sha256 checksums sha256 98799b7c99b561c5ffa3ac86600e501f761afa8e72af8a2515026445fe134105 LICENSE ================================================ FILE: package/python-simplesqlite/python-simplesqlite.mk ================================================ ################################################################################ # # python-simplesqlite # ################################################################################ PYTHON_SIMPLESQLITE_VERSION = 0.45.2 PYTHON_SIMPLESQLITE_SOURCE = SimpleSQLite-$(PYTHON_SIMPLESQLITE_VERSION).tar.gz PYTHON_SIMPLESQLITE_SITE = https://files.pythonhosted.org/packages/b3/d1/bc3668ed7d90ee70d556124b8b5b3329505d72b5290bb393626f1afe714d PYTHON_SIMPLESQLITE_SETUP_TYPE = setuptools PYTHON_SIMPLESQLITE_LICENSE = MIT PYTHON_SIMPLESQLITE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-singledispatch/Config.in ================================================ 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 https://pypi.python.org/pypi/singledispatch ================================================ FILE: package/python-singledispatch/python-singledispatch.hash ================================================ # md5 from https://pypi.python.org/pypi?:action=show_md5&digest=af2fc6a3d6cc5a02d0bf54d909785fcb md5 af2fc6a3d6cc5a02d0bf54d909785fcb singledispatch-3.4.0.3.tar.gz # Locally computed sha256 5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c singledispatch-3.4.0.3.tar.gz sha256 5a724c436f88585973787af91cecf58503cbf09e5c1721c516880614700767ef setup.py ================================================ FILE: package/python-singledispatch/python-singledispatch.mk ================================================ ################################################################################ # # python-singledispatch # ################################################################################ PYTHON_SINGLEDISPATCH_VERSION = 3.4.0.3 PYTHON_SINGLEDISPATCH_SOURCE = singledispatch-$(PYTHON_SINGLEDISPATCH_VERSION).tar.gz PYTHON_SINGLEDISPATCH_SITE = https://pypi.python.org/packages/source/s/singledispatch PYTHON_SINGLEDISPATCH_LICENSE = MIT PYTHON_SINGLEDISPATCH_LICENSE_FILES = setup.py PYTHON_SINGLEDISPATCH_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-sip/Config.in ================================================ config BR2_PACKAGE_PYTHON_SIP bool "python-sip" depends on BR2_PACKAGE_QT5 help SIP is a tool that makes it very easy to create Python bindings for C and C++ libraries. It was originally developed to create PyQt, the Python bindings for the Qt toolkit, but can be used to create bindings for any C or C++ library. SIP comprises a code generator and a Python module. The code generator processes a set of specification files and generates C or C++ code which is then compiled to create the bindings extension module. The SIP Python module provides support functions to the automatically generated code. http://www.riverbankcomputing.com/software/sip/intro ================================================ FILE: package/python-sip/python-sip.hash ================================================ # From https://sourceforge.net/projects/pyqt/files/sip/sip-4.18/ md5 78724bf2a79878201c3bc81a1d8248ea sip-4.18.tar.gz # Locally calculated: sha256 f1dc5c81c07a9ad97edcd4a0af964a41e420024ba7ca165afd2b351efd249cb6 sip-4.18.tar.gz sha256 accecbfda71ad4497bce0d451796706e734e405e5ecf3b3f9ee0cc68300a3d9c LICENSE sha256 7ebb61006e46b9e9340dd135d5f4afbbcb1d1d6c6709f74473b35929007b9aeb LICENSE-GPL2 sha256 63cb5f5c1ea39b732c495f354f971e40f6db84c567ca5573a68bb65af07741f8 LICENSE-GPL3 ================================================ FILE: package/python-sip/python-sip.mk ================================================ ################################################################################ # # python-sip # ################################################################################ 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 GPL-2.0 or GPL-3.0 PYTHON_SIP_LICENSE_FILES = LICENSE LICENSE-GPL2 LICENSE-GPL3 PYTHON_SIP_DEPENDENCIES = qt5base ifeq ($(BR2_PACKAGE_PYTHON),y) PYTHON_SIP_DEPENDENCIES += python HOST_PYTHON_SIP_DEPENDENCIES += host-python PYTHON_SIP_LIB_DIR = usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages PYTHON_SIP_INCLUDE_DIR = usr/include/python$(PYTHON_VERSION_MAJOR) else ifeq ($(BR2_PACKAGE_PYTHON3),y) PYTHON_SIP_DEPENDENCIES += python3 HOST_PYTHON_SIP_DEPENDENCIES += host-python3 PYTHON_SIP_LIB_DIR = usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages PYTHON_SIP_INCLUDE_DIR = usr/include/python$(PYTHON3_VERSION_MAJOR) endif define HOST_PYTHON_SIP_CONFIGURE_CMDS (cd $(@D); \ $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(HOST_DIR)/bin/python configure.py) endef define HOST_PYTHON_SIP_BUILD_CMDS $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define HOST_PYTHON_SIP_INSTALL_CMDS $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) install -C $(@D) endef define PYTHON_SIP_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(HOST_DIR)/bin/python configure.py \ --bindir $(TARGET_DIR)/usr/bin \ --destdir $(TARGET_DIR)/$(PYTHON_SIP_LIB_DIR) \ --incdir $(STAGING_DIR)/$(PYTHON_SIP_INCLUDE_DIR) \ --sipdir $(TARGET_DIR)/usr/share/sip \ --sysroot $(STAGING_DIR)/usr \ --use-qmake && \ $(HOST_DIR)/bin/qmake) endef define PYTHON_SIP_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define PYTHON_SIP_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) install -C $(@D) endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/python-six/Config.in ================================================ config BR2_PACKAGE_PYTHON_SIX bool "python-six" help Six is a Python 2 and 3 compatibility library. It provides utility functions for smoothing over the differences between the Python versions with the goal of writing Python code that is compatible on both Python versions. http://pythonhosted.org/six ================================================ FILE: package/python-six/Config.in.host ================================================ config BR2_PACKAGE_HOST_PYTHON_SIX bool "host python-six" help Six is a Python 2 and 3 compatibility library. It provides utility functions for smoothing over the differences between the Python versions with the goal of writing Python code that is compatible on both Python versions. http://pythonhosted.org/six ================================================ FILE: package/python-six/python-six.hash ================================================ # md5, sha256 from https://pypi.org/pypi/six/json md5 a7c927740e4964dd29b72cebfc1429bb six-1.16.0.tar.gz sha256 1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 six-1.16.0.tar.gz # Locally computed sha256 checksums sha256 8bb850c565aa389fdc16f3a46965ad23d82adff60f2393fc2762b63185e8e6c9 LICENSE ================================================ FILE: package/python-six/python-six.mk ================================================ ################################################################################ # # python-six # ################################################################################ # Please keep in sync with package/python3-six/python3-six.mk PYTHON_SIX_VERSION = 1.16.0 PYTHON_SIX_SOURCE = six-$(PYTHON_SIX_VERSION).tar.gz PYTHON_SIX_SITE = https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e PYTHON_SIX_SETUP_TYPE = setuptools PYTHON_SIX_LICENSE = MIT PYTHON_SIX_LICENSE_FILES = LICENSE $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-slob/Config.in ================================================ config BR2_PACKAGE_PYTHON_SLOB bool "python-slob" depends on !BR2_BINFMT_FLAT # python-pyicu -> icu depends on BR2_HOST_GCC_AT_LEAST_4_9 # python-pyicu -> icu depends on BR2_INSTALL_LIBSTDCPP # python-pyicu -> icu depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # python-pyicu -> icu depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_PYICU # runtime # although optional, it is used as default compression select BR2_PACKAGE_PYTHON3_XZ # runtime help slob.py is a reference implementation of slob format reader and writer. https://github.com/itkach/slob comment "python-slob needs a toolchain w/ C++, gcc >= 4.9, host gcc >= 4.9" depends on BR2_PACKAGE_PYTHON3 && !BR2_BINFMT_FLAT depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/python-slob/python-slob.hash ================================================ # Locally computed sha256 18eb4f45d09d49b1f776cac52ea70ab951566c60cd30bbec39e88f10908fd8ff python-slob-31ad0e769360a5b10a4893f686587bb8e48c3895.tar.gz sha256 db09bc6733ab28dc59bfbcd01819feb9d05241cbef3ca3f5f58ec739b341d56f LICENSE ================================================ FILE: package/python-slob/python-slob.mk ================================================ ################################################################################ # # python-slob # ################################################################################ PYTHON_SLOB_VERSION = 31ad0e769360a5b10a4893f686587bb8e48c3895 PYTHON_SLOB_SITE = $(call github,itkach,slob,$(PYTHON_SLOB_VERSION)) PYTHON_SLOB_LICENSE = GPL-3.0 PYTHON_SLOB_LICENSE_FILES = LICENSE PYTHON_SLOB_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-smbus-cffi/Config.in ================================================ config BR2_PACKAGE_PYTHON_SMBUS_CFFI bool "python-smbus-cffi" select BR2_PACKAGE_PYTHON_CFFI help This Python module allows SMBus access through the I2C /dev interface on Linux hosts. The host kernel must have I2C support, I2C device interface support, and a bus adapter driver. https://github.com/bivab/smbus-cffi ================================================ FILE: package/python-smbus-cffi/python-smbus-cffi.hash ================================================ # md5 from https://pypi.python.org/pypi?:action=show_md5&digest=f621c871bd658ee665751ad78e3b2df9 md5 f621c871bd658ee665751ad78e3b2df9 smbus-cffi-0.5.1.tar.gz # Locally computed sha256 fb4195aaabfc01586863f60d3190b5cb1bf8f12622fd597e23e48768dad6bde8 smbus-cffi-0.5.1.tar.gz sha256 d54f57bf73bd1ff19a424b6deab6ff08f6089a2469c8de360b167f755e4ecb4c LICENSE ================================================ FILE: package/python-smbus-cffi/python-smbus-cffi.mk ================================================ ################################################################################ # # python-smbus-cffi # ################################################################################ PYTHON_SMBUS_CFFI_VERSION = 0.5.1 PYTHON_SMBUS_CFFI_SOURCE = smbus-cffi-$(PYTHON_SMBUS_CFFI_VERSION).tar.gz PYTHON_SMBUS_CFFI_SITE = https://pypi.python.org/packages/source/s/smbus-cffi PYTHON_SMBUS_CFFI_SETUP_TYPE = setuptools PYTHON_SMBUS_CFFI_LICENSE = GPL-2.0 PYTHON_SMBUS_CFFI_LICENSE_FILES = LICENSE PYTHON_SMBUS_CFFI_DEPENDENCIES = host-python-cffi $(eval $(python-package)) ================================================ FILE: package/python-smbus2/Config.in ================================================ config BR2_PACKAGE_PYTHON_SMBUS2 bool "python-smbus2" help A drop-in replacement for smbus-cffi/smbus-python in pure Python. https://github.com/kplindegaard/smbus2 ================================================ FILE: package/python-smbus2/python-smbus2.hash ================================================ sha256 6276eb599b76c4e74372f2582d2282f03b4398f0da16bc996608e4f21557ca9b smbus2-0.4.1.tar.gz ================================================ FILE: package/python-smbus2/python-smbus2.mk ================================================ ################################################################################ # # python-smbus2 # ################################################################################ PYTHON_SMBUS2_VERSION = 0.4.1 PYTHON_SMBUS2_SOURCE = smbus2-$(PYTHON_SMBUS2_VERSION).tar.gz PYTHON_SMBUS2_SITE = https://files.pythonhosted.org/packages/d9/33/787448c69603eec96af07d36f7ae3a7e3fce4020632eddb55152dc903233 PYTHON_SMBUS2_SETUP_TYPE = setuptools PYTHON_SMBUS2_LICENSE = MIT $(eval $(python-package)) ================================================ FILE: package/python-smmap2/Config.in ================================================ config BR2_PACKAGE_PYTHON_SMMAP2 bool "python-smmap2" depends on BR2_PACKAGE_PYTHON3 help Smmap wraps an interface around mmap and tracks the mapped files as well as the amount of clients who use it. If the system runs out of resources, or if a memory limit is reached, it will automatically unload unused maps to allow continued operation. https://github.com/gitpython-developers/smmap ================================================ FILE: package/python-smmap2/python-smmap2.hash ================================================ # md5, sha256 from https://pypi.org/pypi/smmap/json md5 61882572be57023980c36f5493523077 smmap-4.0.0.tar.gz sha256 7e65386bd122d45405ddf795637b7f7d2b532e7e401d46bbe3fb49b9986d5182 smmap-4.0.0.tar.gz # Locally computed sha256 checksums sha256 88e9d93f708d110b328a834302dd1d5c6afbda530e7721d15d80b3511d86f235 LICENSE ================================================ FILE: package/python-smmap2/python-smmap2.mk ================================================ ################################################################################ # # python-smmap2 # ################################################################################ PYTHON_SMMAP2_VERSION = 4.0.0 PYTHON_SMMAP2_SOURCE = smmap-$(PYTHON_SMMAP2_VERSION).tar.gz PYTHON_SMMAP2_SITE = https://files.pythonhosted.org/packages/dd/d4/2b4f196171674109f0fbb3951b8beab06cd0453c1b247ec0c4556d06648d PYTHON_SMMAP2_SETUP_TYPE = setuptools PYTHON_SMMAP2_LICENSE = BSD-3-Clause PYTHON_SMMAP2_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-snappy/Config.in ================================================ config BR2_PACKAGE_PYTHON_SNAPPY bool "python-snappy" depends on BR2_INSTALL_LIBSTDCPP # snappy select BR2_PACKAGE_SNAPPY help Python library for the snappy compression library from Google. http://github.com/andrix/python-snappy comment "python-snappy needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/python-snappy/python-snappy.hash ================================================ # md5, sha256 from https://pypi.org/pypi/python-snappy/json md5 82e09ffd44204096fc70d6de14d0ea2f python-snappy-0.5.4.tar.gz sha256 d9c26532cfa510f45e8d135cde140e8a5603d3fb254cfec273ebc0ecf9f668e2 python-snappy-0.5.4.tar.gz # Locally computed sha256 checksums sha256 d007cb05f143d99d16d5cd0d1bf291daf037adb36800344e440ec26edb938f9a LICENSE ================================================ FILE: package/python-snappy/python-snappy.mk ================================================ ################################################################################ # # python-snappy # ################################################################################ PYTHON_SNAPPY_VERSION = 0.5.4 PYTHON_SNAPPY_SITE = https://files.pythonhosted.org/packages/45/35/65d9f8cc537129894b4b32647d80212d1fa342877581c5b8a69872cea8be PYTHON_SNAPPY_SETUP_TYPE = setuptools PYTHON_SNAPPY_LICENSE = BSD-3-Clause PYTHON_SNAPPY_LICENSE_FILES = LICENSE PYTHON_SNAPPY_DEPENDENCIES = snappy $(eval $(python-package)) ================================================ FILE: package/python-socketio/Config.in ================================================ config BR2_PACKAGE_PYTHON_SOCKETIO bool "python-socketio" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_BIDICT # runtime select BR2_PACKAGE_PYTHON_ENGINEIO # runtime help Socket.IO server. http://github.com/miguelgrinberg/python-socketio/ ================================================ FILE: package/python-socketio/python-socketio.hash ================================================ # md5, sha256 from https://pypi.org/pypi/python-socketio/json md5 0507825ca4bd6527cbaed81ec5767bfe python-socketio-5.4.0.tar.gz sha256 ca807c9e1f168e96dea412d64dd834fb47c470d27fd83da0504aa4b248ba2544 python-socketio-5.4.0.tar.gz # Locally computed sha256 checksums sha256 c9e97d3dbc1fbbcdb4f7808b282cd646db887aff4f5313fe6bbe8d4c31405a9c LICENSE ================================================ FILE: package/python-socketio/python-socketio.mk ================================================ ################################################################################ # # python-socketio # ################################################################################ PYTHON_SOCKETIO_VERSION = 5.4.0 PYTHON_SOCKETIO_SITE = https://files.pythonhosted.org/packages/72/70/9b992f4b8adfcbf0724c079c18629d83f20b36fb0eb64d4fdf874054becf PYTHON_SOCKETIO_SETUP_TYPE = setuptools PYTHON_SOCKETIO_LICENSE = MIT PYTHON_SOCKETIO_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-sockjs/Config.in ================================================ config BR2_PACKAGE_PYTHON_SOCKJS bool "python-sockjs" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_AIOHTTP # runtime help SockJS server implementation for aiohttp. https://github.com/aio-libs/sockjs/ ================================================ FILE: package/python-sockjs/python-sockjs.hash ================================================ # md5, sha256 from https://pypi.org/pypi/sockjs/json md5 e28c1a82aa84c3994817905090abb169 sockjs-0.11.0.tar.gz sha256 0347d404ed9ef3196506787ed8018f87ee4e2d0baea49d420cdd53a969bec229 sockjs-0.11.0.tar.gz # Locally computed sha256 checksums sha256 7be23c071df0314fadeba6077a3830340a5121ad88bfa66b0c095051a766e141 LICENSE.txt ================================================ FILE: package/python-sockjs/python-sockjs.mk ================================================ ################################################################################ # # python-sockjs # ################################################################################ PYTHON_SOCKJS_VERSION = 0.11.0 PYTHON_SOCKJS_SOURCE = sockjs-$(PYTHON_SOCKJS_VERSION).tar.gz PYTHON_SOCKJS_SITE = https://files.pythonhosted.org/packages/88/e9/af7b321f70325fd2af3941aa147efd097156150da635e09efc7ccf70e54d PYTHON_SOCKJS_SETUP_TYPE = setuptools PYTHON_SOCKJS_LICENSE = Apache-2.0 PYTHON_SOCKJS_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-sortedcontainers/Config.in ================================================ config BR2_PACKAGE_PYTHON_SORTEDCONTAINERS bool "python-sortedcontainers" help Python Sorted Container Types: SortedList, SortedDict, and SortedSet. http://www.grantjenks.com/docs/sortedcontainers/ ================================================ FILE: package/python-sortedcontainers/python-sortedcontainers.hash ================================================ # md5, sha256 from https://pypi.org/pypi/sortedcontainers/json md5 50eeb6cb739568b590b28f9a3f445c78 sortedcontainers-2.4.0.tar.gz sha256 25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 sortedcontainers-2.4.0.tar.gz # Locally computed sha256 checksums sha256 1db7cae7fce6452e2e608e401a0f953e0133e4c2d75db69fb8ae851d2086f5b6 LICENSE ================================================ FILE: package/python-sortedcontainers/python-sortedcontainers.mk ================================================ ################################################################################ # # python-sortedcontainers # ################################################################################ PYTHON_SORTEDCONTAINERS_VERSION = 2.4.0 PYTHON_SORTEDCONTAINERS_SOURCE = sortedcontainers-$(PYTHON_SORTEDCONTAINERS_VERSION).tar.gz PYTHON_SORTEDCONTAINERS_SITE = https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111 PYTHON_SORTEDCONTAINERS_SETUP_TYPE = setuptools PYTHON_SORTEDCONTAINERS_LICENSE = Apache-2.0 PYTHON_SORTEDCONTAINERS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-soupsieve/Config.in ================================================ config BR2_PACKAGE_PYTHON_SOUPSIEVE bool "python-soupsieve" depends on BR2_PACKAGE_PYTHON3 help A modern CSS selector implementation for Beautiful Soup. https://github.com/facelessuser/soupsieve ================================================ FILE: package/python-soupsieve/python-soupsieve.hash ================================================ # md5, sha256 from https://pypi.org/pypi/soupsieve/json md5 73ff6ce22ba973fe2d47197834e0f728 soupsieve-2.2.1.tar.gz sha256 052774848f448cf19c7e959adf5566904d525f33a3f8b6ba6f6f8f26ec7de0cc soupsieve-2.2.1.tar.gz # Locally computed sha256 checksums sha256 e34a760fe8bb3e3c1ffaa88abe495cf76e56f8ae3c7a6dde0e4b41cd013c41d4 LICENSE.md ================================================ FILE: package/python-soupsieve/python-soupsieve.mk ================================================ ################################################################################ # # python-soupsieve # ################################################################################ PYTHON_SOUPSIEVE_VERSION = 2.2.1 PYTHON_SOUPSIEVE_SOURCE = soupsieve-$(PYTHON_SOUPSIEVE_VERSION).tar.gz PYTHON_SOUPSIEVE_SITE = https://files.pythonhosted.org/packages/c8/3f/e71d92e90771ac2d69986aa0e81cf0dfda6271e8483698f4847b861dd449 PYTHON_SOUPSIEVE_SETUP_TYPE = setuptools PYTHON_SOUPSIEVE_LICENSE = MIT PYTHON_SOUPSIEVE_LICENSE_FILES = LICENSE.md $(eval $(python-package)) ================================================ FILE: package/python-spidev/Config.in ================================================ config BR2_PACKAGE_PYTHON_SPIDEV bool "python-spidev" help Python module for interfacing with SPI devices from user space via the spidev linux kernel driver. https://pypi.python.org/pypi/spidev ================================================ FILE: package/python-spidev/python-spidev.hash ================================================ # sha256 from https://pypi.org/project/spidev sha256 8a7f5c289f161ea2ac4697fa8a10918232c990678dd0053084b3c43b1363910d spidev-3.5.tar.gz # locally computed sha256 153a6f02f41aebe292cf3307f973a80b4fb0c988d8d3e7d126c7a66c20b1cc27 README.md ================================================ FILE: package/python-spidev/python-spidev.mk ================================================ ################################################################################ # # python-spidev # ################################################################################ PYTHON_SPIDEV_VERSION = 3.5 PYTHON_SPIDEV_SOURCE = spidev-$(PYTHON_SPIDEV_VERSION).tar.gz PYTHON_SPIDEV_SITE = https://files.pythonhosted.org/packages/62/56/de649e7d95f9fcfaf965a6eb937b4a46bc77ef21487c99cde1a7a0546040 PYTHON_SPIDEV_SETUP_TYPE = setuptools PYTHON_SPIDEV_LICENSE = MIT PYTHON_SPIDEV_LICENSE_FILES = README.md $(eval $(python-package)) ================================================ FILE: package/python-sqlalchemy/Config.in ================================================ config BR2_PACKAGE_PYTHON_SQLALCHEMY bool "python-sqlalchemy" help SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. It provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language. http://www.sqlalchemy.org ================================================ FILE: package/python-sqlalchemy/python-sqlalchemy.hash ================================================ # md5, sha256 from https://pypi.org/pypi/sqlalchemy/json md5 af9722657ba51131703dbe75f24b054a SQLAlchemy-1.3.10.tar.gz sha256 0f0768b5db594517e1f5e1572c73d14cf295140756431270d89496dc13d5e46c SQLAlchemy-1.3.10.tar.gz # Locally computed sha256 checksums sha256 0acffa15f3427e94014235e3c44376f6fe5df0ff461a93a9116eebcce74c056e LICENSE ================================================ FILE: package/python-sqlalchemy/python-sqlalchemy.mk ================================================ ################################################################################ # # python-sqlalchemy # ################################################################################ PYTHON_SQLALCHEMY_VERSION = 1.3.10 PYTHON_SQLALCHEMY_SOURCE = SQLAlchemy-$(PYTHON_SQLALCHEMY_VERSION).tar.gz PYTHON_SQLALCHEMY_SITE = https://files.pythonhosted.org/packages/14/0e/487f7fc1e432cec50d2678f94e4133f2b9e9356e35bacc30d73e8cb831fc PYTHON_SQLALCHEMY_SETUP_TYPE = setuptools PYTHON_SQLALCHEMY_LICENSE = MIT PYTHON_SQLALCHEMY_LICENSE_FILES = LICENSE PYTHON_SQLALCHEMY_CPE_ID_VENDOR = sqlalchemy PYTHON_SQLALCHEMY_CPE_ID_PRODUCT = sqlalchemy $(eval $(python-package)) ================================================ FILE: package/python-sqliteschema/Config.in ================================================ config BR2_PACKAGE_PYTHON_SQLITESCHEMA bool "python-sqliteschema" depends on BR2_PACKAGE_PYTHON3 # python-mbstrdecoder select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON_MBSTRDECODER # runtime select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_TABLEDATA # runtime select BR2_PACKAGE_PYTHON_TYPEPY # runtime help A Python library to dump table schema of a SQLite database file. https://github.com/thombashi/sqliteschema ================================================ FILE: package/python-sqliteschema/python-sqliteschema.hash ================================================ # md5, sha256 from https://pypi.org/pypi/sqliteschema/json md5 ca70006e289f1d506124de779ed73d64 sqliteschema-1.2.0.tar.gz sha256 4c18f141239c58b6dbdc69130be41ed9740d8209a7ab6d529ba982a8b79c071a sqliteschema-1.2.0.tar.gz # Locally computed sha256 checksums sha256 7588265082eed5e9f4afd5090c57e610b740ec547b16aaaab739ba07c5eefb15 LICENSE ================================================ FILE: package/python-sqliteschema/python-sqliteschema.mk ================================================ ################################################################################ # # python-sqliteschema # ################################################################################ PYTHON_SQLITESCHEMA_VERSION = 1.2.0 PYTHON_SQLITESCHEMA_SOURCE = sqliteschema-$(PYTHON_SQLITESCHEMA_VERSION).tar.gz PYTHON_SQLITESCHEMA_SITE = https://files.pythonhosted.org/packages/5c/d3/0c2e4c989a8d45f9443e431d7cbf89af4aba719fb0647b5f722716ef3990 PYTHON_SQLITESCHEMA_SETUP_TYPE = setuptools PYTHON_SQLITESCHEMA_LICENSE = MIT PYTHON_SQLITESCHEMA_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-sqlparse/Config.in ================================================ config BR2_PACKAGE_PYTHON_SQLPARSE bool "python-sqlparse" help sqlparse is a non-validating SQL parser for Python. It provides support for parsing, splitting and formatting SQL statements. https://github.com/andialbrecht/sqlparse ================================================ FILE: package/python-sqlparse/python-sqlparse.hash ================================================ # md5, sha256 from https://pypi.org/pypi/sqlparse/json md5 2ce34181d6b7b234c9f3c0ecd1ffb93e sqlparse-0.3.0.tar.gz sha256 7c3dca29c022744e95b547e867cee89f4fce4373f3549ccd8797d8eb52cdb873 sqlparse-0.3.0.tar.gz # Locally computed sha256 checksums sha256 c1938235b80d39e93138eae89edc3af67e18ecbc40d266529fa57b2dce426310 LICENSE ================================================ FILE: package/python-sqlparse/python-sqlparse.mk ================================================ ################################################################################ # # python-sqlparse # ################################################################################ PYTHON_SQLPARSE_VERSION = 0.3.0 PYTHON_SQLPARSE_SOURCE = sqlparse-$(PYTHON_SQLPARSE_VERSION).tar.gz PYTHON_SQLPARSE_SITE = https://files.pythonhosted.org/packages/63/c8/229dfd2d18663b375975d953e2bdc06d0eed714f93dcb7732f39e349c438 PYTHON_SQLPARSE_SETUP_TYPE = setuptools PYTHON_SQLPARSE_LICENSE = BSD-3-Clause PYTHON_SQLPARSE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-subprocess32/Config.in ================================================ config BR2_PACKAGE_PYTHON_SUBPROCESS32 bool "python-subprocess32" depends on BR2_PACKAGE_PYTHON depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 || !BR2_MIPS_NABI64 help A backport of the Python 3 subprocess module for use on Python 2. https://github.com/google/python-subprocess32 comment "python-subprocess32 needs a toolchain w/ headers >= 3.10 on MIPS N64" depends on BR2_MIPS_NABI64 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 ================================================ FILE: package/python-subprocess32/python-subprocess32.hash ================================================ # md5, sha256 from https://pypi.org/pypi/subprocess32/json md5 748844d560be5f0c707931cba1cdb48b subprocess32-3.5.4.tar.gz sha256 eb2937c80497978d181efa1b839ec2d9622cf9600a039a79d0e108d1f9aec79d subprocess32-3.5.4.tar.gz # Locally computed sha256 checksums sha256 826b43437249d39422642f695154d064da64de92eb1476048a615f50bc1beb4a LICENSE ================================================ FILE: package/python-subprocess32/python-subprocess32.mk ================================================ ################################################################################ # # python-subprocess32 # ################################################################################ PYTHON_SUBPROCESS32_VERSION = 3.5.4 PYTHON_SUBPROCESS32_SOURCE = subprocess32-$(PYTHON_SUBPROCESS32_VERSION).tar.gz PYTHON_SUBPROCESS32_SITE = https://files.pythonhosted.org/packages/32/c8/564be4d12629b912ea431f1a50eb8b3b9d00f1a0b1ceff17f266be190007 PYTHON_SUBPROCESS32_SETUP_TYPE = setuptools PYTHON_SUBPROCESS32_LICENSE = Python-2.0 PYTHON_SUBPROCESS32_LICENSE_FILES = LICENSE # The configure step needs to be run outside of the setup.py since it isn't # run correctly for cross-compiling define PYTHON_SUBPROCESS32_CONFIGURE_CMDS (cd $(@D) && \ $(TARGET_CONFIGURE_OPTS) \ $(TARGET_CONFIGURE_ARGS) \ ./configure \ --target=$(GNU_TARGET_NAME) \ --host=$(GNU_TARGET_NAME) \ --build=$(GNU_HOST_NAME) \ --prefix=/usr \ --exec-prefix=/usr \ --sysconfdir=/etc \ --program-prefix="" \ ) endef $(eval $(python-package)) ================================================ FILE: package/python-systemd/Config.in ================================================ config BR2_PACKAGE_PYTHON_SYSTEMD bool "python-systemd" depends on BR2_PACKAGE_SYSTEMD help Python module for native access to the systemd facilities. https://github.com/systemd/python-systemd comment "python-systemd needs systemd" depends on !BR2_PACKAGE_SYSTEMD ================================================ FILE: package/python-systemd/python-systemd.hash ================================================ # md5 from https://pypi.python.org/pypi/systemd-python/ md5 5071ea5bcb976186e92a3f5e75df221d systemd-python-234.tar.gz # Locally computed sha256 fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895db83e7 systemd-python-234.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSE.txt ================================================ FILE: package/python-systemd/python-systemd.mk ================================================ ################################################################################ # # python-systemd # ################################################################################ PYTHON_SYSTEMD_VERSION = 234 # Should be kept in sync with $(SYSTEMD_VERSION) PYTHON_SYSTEMD_SOURCE = systemd-python-$(PYTHON_SYSTEMD_VERSION).tar.gz PYTHON_SYSTEMD_SITE = https://pypi.python.org/packages/e8/a8/00ba0f605837a8f69523e6c3a4fb14675a6430c163f836540129c50b3aef PYTHON_SYSTEMD_SETUP_TYPE = distutils PYTHON_SYSTEMD_LICENSE = LGPL-2.1 PYTHON_SYSTEMD_LICENSE_FILES = LICENSE.txt PYTHON_SYSTEMD_DEPENDENCIES = systemd # To be able to link against libsystemd $(eval $(python-package)) ================================================ FILE: package/python-tabledata/Config.in ================================================ config BR2_PACKAGE_PYTHON_TABLEDATA bool "python-tabledata" depends on BR2_PACKAGE_PYTHON3 # python-dataproperty, python-typepy select BR2_PACKAGE_PYTHON_DATAPROPERTY # runtime select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_TYPEPY # runtime help A Python library to represent tabular data for pytablewriter/pytablereader/SimpleSQLite. https://github.com/thombashi/tabledata ================================================ FILE: package/python-tabledata/python-tabledata.hash ================================================ # md5, sha256 from https://pypi.org/pypi/tabledata/json md5 1874cb0bf69cbc824a7bec67431023a9 tabledata-1.3.0.tar.gz sha256 54541b0c9e58f8fa38251ea0a60965dbaf95737027fa80e6ab56f98d7e4d61e9 tabledata-1.3.0.tar.gz # Locally computed sha256 checksums sha256 bebbdf0524a147f89a615fff53d79bdc90cbc7631550fb4b725cd3f3bdcd24f6 LICENSE ================================================ FILE: package/python-tabledata/python-tabledata.mk ================================================ ################################################################################ # # python-tabledata # ################################################################################ PYTHON_TABLEDATA_VERSION = 1.3.0 PYTHON_TABLEDATA_SOURCE = tabledata-$(PYTHON_TABLEDATA_VERSION).tar.gz PYTHON_TABLEDATA_SITE = https://files.pythonhosted.org/packages/ed/ed/dd0d6975963967492ac2c230107587593c7bd94acfa802b0c60a5395125c PYTHON_TABLEDATA_SETUP_TYPE = setuptools PYTHON_TABLEDATA_LICENSE = MIT PYTHON_TABLEDATA_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-tempora/Config.in ================================================ config BR2_PACKAGE_PYTHON_TEMPORA bool "python-tempora" depends on BR2_PACKAGE_PYTHON3 # python-jaraco-functools select BR2_PACKAGE_PYTHON_JARACO_FUNCTOOLS # runtime select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_PYTZ # runtime help Objects and routines pertaining to date and time. https://github.com/jaraco/tempora ================================================ FILE: package/python-tempora/python-tempora.hash ================================================ # md5, sha256 from https://pypi.org/pypi/tempora/json md5 f8b2b0df1adf3f83b829a85e31bddb2d tempora-1.14.1.tar.gz sha256 cb60b1d2b1664104e307f8e5269d7f4acdb077c82e35cd57246ae14a3427d2d6 tempora-1.14.1.tar.gz # Locally computed sha256 checksums sha256 a55e2ffe9b44998e621d51d8c094bed09acc4b5236ee73d7df395a33ba3c18fd LICENSE ================================================ FILE: package/python-tempora/python-tempora.mk ================================================ ################################################################################ # # python-tempora # ################################################################################ PYTHON_TEMPORA_VERSION = 1.14.1 PYTHON_TEMPORA_SOURCE = tempora-$(PYTHON_TEMPORA_VERSION).tar.gz PYTHON_TEMPORA_SITE = https://files.pythonhosted.org/packages/2f/b5/5b0464385454c5ca93a39a1c6acefdf574aeb10ef45fa8958b3832cc7d96 PYTHON_TEMPORA_LICENSE = MIT PYTHON_TEMPORA_LICENSE_FILES = LICENSE PYTHON_TEMPORA_SETUP_TYPE = setuptools PYTHON_TEMPORA_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-termcolor/Config.in ================================================ config BR2_PACKAGE_PYTHON_TERMCOLOR bool "python-termcolor" help ANSII Color formatting for output in terminal. http://pypi.python.org/pypi/termcolor ================================================ FILE: package/python-termcolor/python-termcolor.hash ================================================ # md5, sha256 from https://pypi.org/pypi/termcolor/json md5 043e89644f8909d462fbbfa511c768df termcolor-1.1.0.tar.gz sha256 1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b termcolor-1.1.0.tar.gz # Locally computed sha256 checksums sha256 497b3272b67b94a7aa58fa3748d21b62b29ccb783b1cda816f594e3932590bbf COPYING.txt ================================================ FILE: package/python-termcolor/python-termcolor.mk ================================================ ################################################################################ # # python-termcolor # ################################################################################ PYTHON_TERMCOLOR_VERSION = 1.1.0 PYTHON_TERMCOLOR_SOURCE = termcolor-$(PYTHON_TERMCOLOR_VERSION).tar.gz PYTHON_TERMCOLOR_SITE = https://files.pythonhosted.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981 PYTHON_TERMCOLOR_SETUP_TYPE = distutils PYTHON_TERMCOLOR_LICENSE = MIT PYTHON_TERMCOLOR_LICENSE_FILES = COPYING.txt $(eval $(python-package)) ================================================ FILE: package/python-terminaltables/Config.in ================================================ config BR2_PACKAGE_PYTHON_TERMINALTABLES bool "python-terminaltables" help Generate simple tables in terminals from a nested list of strings. https://github.com/Robpol86/terminaltables ================================================ FILE: package/python-terminaltables/python-terminaltables.hash ================================================ # md5, sha256 from https://pypi.org/pypi/terminaltables/json md5 863797674d8f75d22e16e6c1fdcbeb41 terminaltables-3.1.0.tar.gz sha256 f3eb0eb92e3833972ac36796293ca0906e998dc3be91fbe1f8615b331b853b81 terminaltables-3.1.0.tar.gz ================================================ FILE: package/python-terminaltables/python-terminaltables.mk ================================================ ################################################################################ # # python-terminaltables # ################################################################################ PYTHON_TERMINALTABLES_VERSION = 3.1.0 PYTHON_TERMINALTABLES_SOURCE = terminaltables-$(PYTHON_TERMINALTABLES_VERSION).tar.gz PYTHON_TERMINALTABLES_SITE = https://files.pythonhosted.org/packages/9b/c4/4a21174f32f8a7e1104798c445dacdc1d4df86f2f26722767034e4de4bff PYTHON_TERMINALTABLES_SETUP_TYPE = setuptools PYTHON_TERMINALTABLES_LICENSE = MIT $(eval $(python-package)) ================================================ FILE: package/python-texttable/Config.in ================================================ config BR2_PACKAGE_PYTHON_TEXTTABLE bool "python-texttable" help module for creating simple ASCII tables. https://github.com/foutaise/texttable/ ================================================ FILE: package/python-texttable/python-texttable.hash ================================================ # md5, sha256 from https://pypi.org/pypi/texttable/json md5 15faadc07ba44d337cc1675ea6092a02 texttable-1.6.4.tar.gz sha256 42ee7b9e15f7b225747c3fa08f43c5d6c83bc899f80ff9bae9319334824076e9 texttable-1.6.4.tar.gz # Locally computed sha256 checksums sha256 4ba7bdab54504a3bc44eb33ecca873a26a63ab902822101a87bb46235da63594 LICENSE ================================================ FILE: package/python-texttable/python-texttable.mk ================================================ ################################################################################ # # python-texttable # ################################################################################ PYTHON_TEXTTABLE_VERSION = 1.6.4 PYTHON_TEXTTABLE_SOURCE = texttable-$(PYTHON_TEXTTABLE_VERSION).tar.gz PYTHON_TEXTTABLE_SITE = https://files.pythonhosted.org/packages/d5/78/dbc2a5eab57a01fedaf975f2c16f04e76f09336dbeadb9994258aa0a2b1a PYTHON_TEXTTABLE_SETUP_TYPE = setuptools PYTHON_TEXTTABLE_LICENSE = MIT PYTHON_TEXTTABLE_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-thrift/Config.in ================================================ config BR2_PACKAGE_PYTHON_THRIFT bool "python-thrift" select BR2_PACKAGE_PYTHON_SIX # runtime help Python bindings for the Apache Thrift RPC system. https://thrift.apache.org ================================================ FILE: package/python-thrift/python-thrift.hash ================================================ # md5, sha256 from https://pypi.org/pypi/thrift/json md5 c3bc8d9a910d2c9ce26f2ad1f7c96762 thrift-0.13.0.tar.gz sha256 9af1c86bf73433afc6010ed376a6c6aca2b54099cc0d61895f640870a9ae7d89 thrift-0.13.0.tar.gz # Locally computed sha256 checksums sha256 c13578ae9d0529d0252e1c7375b917bacf58723dce1fcd40c7ed59183401b468 LICENSE ================================================ FILE: package/python-thrift/python-thrift.mk ================================================ ################################################################################ # # python-thrift # ################################################################################ PYTHON_THRIFT_VERSION = 0.13.0 PYTHON_THRIFT_SOURCE = thrift-$(PYTHON_THRIFT_VERSION).tar.gz PYTHON_THRIFT_SITE = https://files.pythonhosted.org/packages/97/1e/3284d19d7be99305eda145b8aa46b0c33244e4a496ec66440dac19f8274d PYTHON_THRIFT_SETUP_TYPE = setuptools PYTHON_THRIFT_LICENSE = Apache-2.0 PYTHON_THRIFT_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-tinyrpc/Config.in ================================================ config BR2_PACKAGE_PYTHON_TINYRPC bool "python-tinyrpc" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SIX # runtime help A small, modular, transport and protocol neutral RPC library that, among other things, supports JSON-RPC and zmq. http://github.com/mbr/tinyrpc ================================================ FILE: package/python-tinyrpc/python-tinyrpc.hash ================================================ # md5, sha256 from https://pypi.org/pypi/tinyrpc/json md5 34d7b41ab48297b6b8fbf937e3d43a57 tinyrpc-1.1.1.tar.gz sha256 9e68d7b9688dac8deaa342a2507d04f0b2ece64a9d19382aa2ee13d692e87d7f tinyrpc-1.1.1.tar.gz # Locally computed sha256 checksums sha256 587f1ea174824613f4a7e0d7fb95fda000a7f58ca17df12416e014c9ee82e619 LICENSE ================================================ FILE: package/python-tinyrpc/python-tinyrpc.mk ================================================ ################################################################################ # # python-tinyrpc # ################################################################################ PYTHON_TINYRPC_VERSION = 1.1.1 PYTHON_TINYRPC_SOURCE = tinyrpc-$(PYTHON_TINYRPC_VERSION).tar.gz PYTHON_TINYRPC_SITE = https://files.pythonhosted.org/packages/6a/63/0851365686da1ca9ab03d63b035eccf87a1d85b743ce07d079462350da33 PYTHON_TINYRPC_SETUP_TYPE = setuptools PYTHON_TINYRPC_LICENSE = MIT PYTHON_TINYRPC_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-tomako/Config.in ================================================ config BR2_PACKAGE_PYTHON_TOMAKO bool "python-tomako" depends on BR2_PACKAGE_PYTHON3 # python-tornado 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 ================================================ FILE: package/python-tomako/python-tomako.hash ================================================ # md5 from https://pypi.python.org/pypi/tomako/json md5 a2e9e99be4ddf2263ed441ddc3dfcf96 tomako-0.1.0.post1.tar.gz # Locally computed sha256 2d8ec113199408eb16ec00361aac6f10b716925779b6331083f304d01dafd150 tomako-0.1.0.post1.tar.gz sha256 2b55167354e331f089d5f7a9a9ef4149b0baa95abd6860b6390a04001e1f2bb8 LICENSE ================================================ FILE: package/python-tomako/python-tomako.mk ================================================ ################################################################################ # # 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)) ================================================ FILE: package/python-toml/Config.in ================================================ config BR2_PACKAGE_PYTHON_TOML bool "python-toml" help Python Library for Tom's Obvious, Minimal Language. https://github.com/uiri/toml ================================================ FILE: package/python-toml/python-toml.hash ================================================ # md5, sha256 from https://pypi.org/pypi/toml/json md5 59bce5d8d67e858735ec3f399ec90253 toml-0.10.2.tar.gz sha256 b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f toml-0.10.2.tar.gz # Locally computed sha256 checksums sha256 2d9294823df6c89357c8be4927fce79361d6561e5ee7532d5926e63939aaa536 LICENSE ================================================ FILE: package/python-toml/python-toml.mk ================================================ ################################################################################ # # python-toml # ################################################################################ PYTHON_TOML_VERSION = 0.10.2 PYTHON_TOML_SOURCE = toml-$(PYTHON_TOML_VERSION).tar.gz PYTHON_TOML_SITE = https://files.pythonhosted.org/packages/be/ba/1f744cdc819428fc6b5084ec34d9b30660f6f9daaf70eead706e3203ec3c PYTHON_TOML_SETUP_TYPE = setuptools PYTHON_TOML_LICENSE = MIT PYTHON_TOML_LICENSE_FILES = LICENSE $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-tornado/Config.in ================================================ config BR2_PACKAGE_PYTHON_TORNADO bool "python-tornado" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON3_ZLIB select BR2_PACKAGE_PYTHON3_SSL help Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. http://www.tornadoweb.org ================================================ FILE: package/python-tornado/python-tornado.hash ================================================ # md5, sha256 from https://pypi.org/pypi/tornado/json md5 cf39425f3d7eba9a54287f3e795a2f23 tornado-6.0.4.tar.gz sha256 0fe2d45ba43b00a41cd73f8be321a44936dc1aba233dee979f17a042b83eb6dc tornado-6.0.4.tar.gz # Locally computed sha256 checksums sha256 3ddf9be5c28fe27dad143a5dc76eea25222ad1dd68934a047064e56ed2fa40c5 LICENSE ================================================ FILE: package/python-tornado/python-tornado.mk ================================================ ################################################################################ # # python-tornado # ################################################################################ PYTHON_TORNADO_VERSION = 6.0.4 PYTHON_TORNADO_SOURCE = tornado-$(PYTHON_TORNADO_VERSION).tar.gz PYTHON_TORNADO_SITE = https://files.pythonhosted.org/packages/95/84/119a46d494f008969bf0c775cb2c6b3579d3c4cc1bb1b41a022aa93ee242 PYTHON_TORNADO_LICENSE = Apache-2.0 PYTHON_TORNADO_LICENSE_FILES = LICENSE PYTHON_TORNADO_CPE_ID_VENDOR = tornadoweb PYTHON_TORNADO_CPE_ID_PRODUCT = tornado PYTHON_TORNADO_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-tqdm/Config.in ================================================ config BR2_PACKAGE_PYTHON_TQDM bool "python-tqdm" help A Fast, Extensible Progress Bar for Python and CLI. https://tqdm.github.io ================================================ FILE: package/python-tqdm/python-tqdm.hash ================================================ # md5, sha256 from https://pypi.org/project/tqdm md5 285af1f905f4c375f03a86a667047950 tqdm-4.40.1.tar.gz sha256 e405d16c98fcf30725d0c9d493ed07302a18846b5452de5253030ccd18996f87 tqdm-4.40.1.tar.gz # Locally computed sha256 checksums sha256 1bbf12d09d437844527b3cdaba01d379dac651b5cbb5ebb0d764274684d2680b LICENCE ================================================ FILE: package/python-tqdm/python-tqdm.mk ================================================ ################################################################################ # # python-tqdm # ################################################################################ PYTHON_TQDM_VERSION = 4.40.1 PYTHON_TQDM_SOURCE = tqdm-$(PYTHON_TQDM_VERSION).tar.gz PYTHON_TQDM_SITE = https://files.pythonhosted.org/packages/4c/45/830c5c4bfaba60ef7d356a53c7751a86c81d148a16fda0daf3ac5ca8e288 PYTHON_TQDM_SETUP_TYPE = setuptools PYTHON_TQDM_LICENSE = MPL-2.0, MIT PYTHON_TQDM_LICENSE_FILES = LICENCE PYTHON_TQDM_CPE_ID_VENDOR = tqdm_project PYTHON_TQDM_CPE_ID_PRODUCT = tqdm $(eval $(python-package)) ================================================ FILE: package/python-traitlets/Config.in ================================================ config BR2_PACKAGE_PYTHON_TRAITLETS bool "python-traitlets" depends on BR2_PACKAGE_PYTHON3 help A configuration system for Python applications. https://pypi.python.org/pypi/traitlets ================================================ FILE: package/python-traitlets/python-traitlets.hash ================================================ # md5, sha256 from https://pypi.org/pypi/traitlets/json md5 19483ec0685e837912cff128209aa845 traitlets-5.1.0.tar.gz sha256 bd382d7ea181fbbcce157c133db9a829ce06edffe097bcf3ab945b435452b46d traitlets-5.1.0.tar.gz # Locally computed sha256 checksums sha256 71c89129039b870cc92309466c4fbe8f285a82fa0ea36f0e840fa83979cbe31f COPYING.md ================================================ FILE: package/python-traitlets/python-traitlets.mk ================================================ ################################################################################ # # python-traitlets # ################################################################################ PYTHON_TRAITLETS_VERSION = 5.1.0 PYTHON_TRAITLETS_SOURCE = traitlets-$(PYTHON_TRAITLETS_VERSION).tar.gz PYTHON_TRAITLETS_SITE = https://files.pythonhosted.org/packages/d5/bc/37d490908e7ac949614d62767db3c86f37bc5adb6129d378c35859a75b87 PYTHON_TRAITLETS_LICENSE = BSD-3-Clause PYTHON_TRAITLETS_LICENSE_FILES = COPYING.md PYTHON_TRAITLETS_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/python-treq/Config.in ================================================ config BR2_PACKAGE_PYTHON_TREQ bool "python-treq" # python-pyopenssl -> python-cryptography depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-idna, python-pyopenssl -> python-cryptography depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_ATTRS # runtime select BR2_PACKAGE_PYTHON_IDNA # runtime select BR2_PACKAGE_PYTHON_INCREMENTAL # runtime select BR2_PACKAGE_PYTHON_PYOPENSSL # runtime 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 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 ================================================ FILE: package/python-treq/python-treq.hash ================================================ # md5, sha256 from https://pypi.org/pypi/treq/json md5 b75f6c89fd481989a9cfdec8d61a6d84 treq-20.3.0.tar.gz sha256 a72d7587d6f81c7a32620b00175825b4334bafbde73d37098d139ac7b11dca98 treq-20.3.0.tar.gz # Locally computed sha256 checksums sha256 7cc1b65e1937b1cc07052bb864ec96d8e5fd413400c0842e5b89a8201a600293 LICENSE ================================================ FILE: package/python-treq/python-treq.mk ================================================ ################################################################################ # # python-treq # ################################################################################ PYTHON_TREQ_VERSION = 20.3.0 PYTHON_TREQ_SOURCE = treq-$(PYTHON_TREQ_VERSION).tar.gz PYTHON_TREQ_SITE = https://files.pythonhosted.org/packages/98/09/25064d7224efde9fd51e8865353d516c53306e476eab27ab21fb258cf7d4 PYTHON_TREQ_LICENSE = MIT PYTHON_TREQ_LICENSE_FILES = LICENSE PYTHON_TREQ_SETUP_TYPE = setuptools PYTHON_TREQ_DEPENDENCIES = host-python-incremental $(eval $(python-package)) ================================================ FILE: package/python-twisted/Config.in ================================================ config BR2_PACKAGE_PYTHON_TWISTED bool "python-twisted" depends on BR2_PACKAGE_PYTHON3 # python-pyhamcrest; python-hyperlink -> python-idna select BR2_PACKAGE_PYTHON_INCREMENTAL select BR2_PACKAGE_PYTHON_ATTRS # runtime select BR2_PACKAGE_PYTHON_AUTOMAT # runtime select BR2_PACKAGE_PYTHON_CONSTANTLY # runtime select BR2_PACKAGE_PYTHON_HYPERLINK # runtime select BR2_PACKAGE_PYTHON_PYHAMCREST # runtime select BR2_PACKAGE_PYTHON_ZOPE_INTERFACE # runtime help Twisted is an event-driven networking engine written in Python. https://twistedmatrix.com/trac/ if BR2_PACKAGE_PYTHON_TWISTED config BR2_PACKAGE_PYTHON_TWISTED_HTTP2 bool "HTTP2 support" select BR2_PACKAGE_PYTHON_H2 # runtime select BR2_PACKAGE_PYTHON_PRIORITY # runtime config BR2_PACKAGE_PYTHON_TWISTED_TLS bool "TLS support" # python-{pyopenssl,service-identity} depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS select BR2_PACKAGE_PYTHON_IDNA # runtime select BR2_PACKAGE_PYTHON_PYOPENSSL # runtime select BR2_PACKAGE_PYTHON_SERVICE_IDENTITY # runtime endif ================================================ FILE: package/python-twisted/python-twisted.hash ================================================ # md5, sha256 from https://pypi.org/pypi/twisted/json md5 fc16d575730db7d0cddd09fc35af3eea Twisted-20.3.0.tar.bz2 sha256 d72c55b5d56e176563b91d11952d13b01af8725c623e498db5507b6614fc1e10 Twisted-20.3.0.tar.bz2 # Locally computed sha256 sha256 98426fd47315df70098e0d85efbb5d7dd8001c9c536386937354640d6d8d75b9 LICENSE ================================================ FILE: package/python-twisted/python-twisted.mk ================================================ ################################################################################ # # python-twisted # ################################################################################ PYTHON_TWISTED_VERSION = 20.3.0 PYTHON_TWISTED_SOURCE = Twisted-$(PYTHON_TWISTED_VERSION).tar.bz2 PYTHON_TWISTED_SITE = https://files.pythonhosted.org/packages/4a/b4/4973c7ccb5be2ec0abc779b7d5f9d5f24b17b0349e23240cfc9dc3bd83cc PYTHON_TWISTED_SETUP_TYPE = setuptools PYTHON_TWISTED_LICENSE = MIT PYTHON_TWISTED_LICENSE_FILES = LICENSE PYTHON_TWISTED_CPE_ID_VENDOR = twistedmatrix PYTHON_TWISTED_CPE_ID_PRODUCT = twisted PYTHON_TWISTED_DEPENDENCIES = python-incremental host-python-incremental $(eval $(python-package)) ================================================ FILE: package/python-txaio/Config.in ================================================ config BR2_PACKAGE_PYTHON_TXAIO bool "python-txaio" depends on BR2_PACKAGE_PYTHON3 help Compatibility API between asyncio/Twisted/Trollius. https://pypi.python.org/pypi/txaio ================================================ FILE: package/python-txaio/python-txaio.hash ================================================ # md5, sha256 from https://pypi.org/pypi/txaio/json md5 7e80b80ed7797245a5eef803043bdede txaio-21.2.1.tar.gz sha256 7d6f89745680233f1c4db9ddb748df5e88d2a7a37962be174c0fd04c8dba1dc8 txaio-21.2.1.tar.gz # Locally computed sha256 checksums sha256 0387eefce570453daaa60633f28676003731eeca28b2d0a0071c628e3a0004ef LICENSE ================================================ FILE: package/python-txaio/python-txaio.mk ================================================ ################################################################################ # # python-txaio # ################################################################################ PYTHON_TXAIO_VERSION = 21.2.1 PYTHON_TXAIO_SOURCE = txaio-$(PYTHON_TXAIO_VERSION).tar.gz PYTHON_TXAIO_SITE = https://files.pythonhosted.org/packages/c5/39/2e715062283f8443d8ceeea32276db71741664d78d43c3edd3675498e926 PYTHON_TXAIO_LICENSE = MIT PYTHON_TXAIO_LICENSE_FILES = LICENSE PYTHON_TXAIO_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-txdbus/Config.in ================================================ config BR2_PACKAGE_PYTHON_TXDBUS bool "python-txdbus" # python-twisted -> python-cryptography depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-twisted -> python-cryptography depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_TWISTED # runtime select BR2_PACKAGE_PYTHON_SIX # runtime help A native Python implementation of the DBus protocol for Twisted applications. https://github.com/cocagne/txdbus ================================================ FILE: package/python-txdbus/python-txdbus.hash ================================================ # md5, sha256 from https://pypi.org/pypi/txdbus/json md5 d397357dee78750385f92ca9c6c1f063 txdbus-1.1.2.tar.gz sha256 8375a5fb68a12054f0def91af800c821fb2232949337756ed975f88d8ea2bc97 txdbus-1.1.2.tar.gz ================================================ FILE: package/python-txdbus/python-txdbus.mk ================================================ ################################################################################ # # python-txdbus # ################################################################################ PYTHON_TXDBUS_VERSION = 1.1.2 PYTHON_TXDBUS_SOURCE = txdbus-$(PYTHON_TXDBUS_VERSION).tar.gz PYTHON_TXDBUS_SITE = https://files.pythonhosted.org/packages/d6/ef/43377e975b8d37862fd1166a4998f908651f5e205ddc9bbd7a57c6e5b4b6 PYTHON_TXDBUS_SETUP_TYPE = setuptools PYTHON_TXDBUS_LICENSE = MIT $(eval $(python-package)) ================================================ FILE: package/python-txtorcon/Config.in ================================================ config BR2_PACKAGE_PYTHON_TXTORCON bool "python-txtorcon" # python-pyopenssl -> python-cryptography depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_PYTHON3 # python-idna select BR2_PACKAGE_PYTHON_AUTOMAT # runtime select BR2_PACKAGE_PYTHON_IDNA # runtime select BR2_PACKAGE_PYTHON_INCREMENTAL # runtime select BR2_PACKAGE_PYTHON_PYOPENSSL # runtime select BR2_PACKAGE_PYTHON_SERVICE_IDENTITY # runtime select BR2_PACKAGE_PYTHON_TWISTED # runtime select BR2_PACKAGE_PYTHON_ZOPE_INTERFACE # runtime help Twisted-based Tor controller client, with state-tracking and configuration abstractions. https://github.com/meejah/txtorcon ================================================ FILE: package/python-txtorcon/python-txtorcon.hash ================================================ # md5, sha256 from https://pypi.org/pypi/txtorcon/json md5 dbb53821a3ce3e921e09c5de4f722fdb txtorcon-21.1.0.tar.gz sha256 aebf0b9ec6c69a029f6b61fd534e785692e28fdcd2fd003ce3cc132b9393b7d6 txtorcon-21.1.0.tar.gz # Locally computed sha256 checksums sha256 3ada1c32ef38c23d96d7f4e8f4a226c527f51e0202883c7543b06f9cc5228a2b LICENSE ================================================ FILE: package/python-txtorcon/python-txtorcon.mk ================================================ ################################################################################ # # python-txtorcon # ################################################################################ PYTHON_TXTORCON_VERSION = 21.1.0 PYTHON_TXTORCON_SOURCE = txtorcon-$(PYTHON_TXTORCON_VERSION).tar.gz PYTHON_TXTORCON_SITE = https://files.pythonhosted.org/packages/eb/43/2426009377cef519c53bdc8969590cb100e9fd745846859963c881c6d176 PYTHON_TXTORCON_SETUP_TYPE = setuptools PYTHON_TXTORCON_LICENSE = MIT PYTHON_TXTORCON_LICENSE_FILES = LICENSE ifeq ($(BR2_PACKAGE_PYTHON),y) # only needed/valid for python 3.x define PYTHON_TXTORCON_RM_PY3_FILE rm -f $(TARGET_DIR)/usr/lib/python*/site-packages/txtorcon/controller_py3.py endef PYTHON_TXTORCON_POST_INSTALL_TARGET_HOOKS += PYTHON_TXTORCON_RM_PY3_FILE endif $(eval $(python-package)) ================================================ FILE: package/python-typepy/Config.in ================================================ config BR2_PACKAGE_PYTHON_TYPEPY bool "python-typepy" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_MBSTRDECODER # runtime help A Python library for variable type checker/validator/converter at a run time. https://github.com/thombashi/typepy ================================================ FILE: package/python-typepy/python-typepy.hash ================================================ # md5, sha256 from https://pypi.org/pypi/typepy/json md5 9f73bef9ce9e9ccf49ed63a2dadada90 typepy-1.3.0.tar.gz sha256 96788530614083164993d1443959f6c58e6bb8e2da839812ddf462c203e4b84c typepy-1.3.0.tar.gz # Locally computed sha256 checksums sha256 bebbdf0524a147f89a615fff53d79bdc90cbc7631550fb4b725cd3f3bdcd24f6 LICENSE ================================================ FILE: package/python-typepy/python-typepy.mk ================================================ ################################################################################ # # python-typepy # ################################################################################ PYTHON_TYPEPY_VERSION = 1.3.0 PYTHON_TYPEPY_SOURCE = typepy-$(PYTHON_TYPEPY_VERSION).tar.gz PYTHON_TYPEPY_SITE = https://files.pythonhosted.org/packages/07/7b/fb32933f2a17992af75c0f96e5538a25fecebd439a82dcc31926ba55d336 PYTHON_TYPEPY_SETUP_TYPE = setuptools PYTHON_TYPEPY_LICENSE = MIT PYTHON_TYPEPY_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-typing/Config.in ================================================ config BR2_PACKAGE_PYTHON_TYPING bool "python-typing" depends on BR2_PACKAGE_PYTHON help Type Hints for Python. This is a backport of the standard library typing module to Python versions older than 3.5. https://docs.python.org/3/library/typing.html ================================================ FILE: package/python-typing/python-typing.hash ================================================ # md5, sha256 from https://pypi.org/pypi/typing/json md5 d6dd450cfe0c8c6547eef09a0491775d typing-3.10.0.0.tar.gz sha256 13b4ad211f54ddbf93e5901a9967b1e07720c1d1b78d596ac6a439641aa1b130 typing-3.10.0.0.tar.gz # Locally computed sha256 checksums sha256 ff17ce94e102024deb68773eb1cc74ca76da4e658f373531f0ac22d68a6bb1ad LICENSE ================================================ FILE: package/python-typing/python-typing.mk ================================================ ################################################################################ # # python-typing # ################################################################################ PYTHON_TYPING_VERSION = 3.10.0.0 PYTHON_TYPING_SOURCE = typing-$(PYTHON_TYPING_VERSION).tar.gz PYTHON_TYPING_SITE = https://files.pythonhosted.org/packages/b0/1b/835d4431805939d2996f8772aca1d2313a57e8860fec0e48e8e7dfe3a477 PYTHON_TYPING_SETUP_TYPE = setuptools PYTHON_TYPING_LICENSE = Python-2.0, others PYTHON_TYPING_LICENSE_FILES = LICENSE $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-typing-extensions/Config.in ================================================ config BR2_PACKAGE_PYTHON_TYPING_EXTENSIONS bool "python-typing-extensions" select BR2_PACKAGE_PYTHON_TYPING if BR2_PACKAGE_PYTHON # runtime help Backported and Experimental Type Hints for Python 3.5+. https://github.com/python/typing/blob/master/typing_extensions/README.rst ================================================ FILE: package/python-typing-extensions/python-typing-extensions.hash ================================================ # md5, sha256 from https://pypi.org/pypi/typing_extensions/json md5 ed80ecc8eac5cb15840535ca54eb43f3 typing_extensions-3.10.0.2.tar.gz sha256 49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e typing_extensions-3.10.0.2.tar.gz # Locally computed sha256 checksums sha256 ff17ce94e102024deb68773eb1cc74ca76da4e658f373531f0ac22d68a6bb1ad LICENSE ================================================ FILE: package/python-typing-extensions/python-typing-extensions.mk ================================================ ################################################################################ # # python-typing-extensions # ################################################################################ PYTHON_TYPING_EXTENSIONS_VERSION = 3.10.0.2 PYTHON_TYPING_EXTENSIONS_SOURCE = typing_extensions-$(PYTHON_TYPING_EXTENSIONS_VERSION).tar.gz PYTHON_TYPING_EXTENSIONS_SITE = https://files.pythonhosted.org/packages/ed/12/c5079a15cf5c01d7f4252b473b00f7e68ee711be605b9f001528f0298b98 PYTHON_TYPING_EXTENSIONS_SETUP_TYPE = setuptools PYTHON_TYPING_EXTENSIONS_LICENSE = Python-2.0 PYTHON_TYPING_EXTENSIONS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-u-msgpack/Config.in ================================================ 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 ================================================ FILE: package/python-u-msgpack/python-u-msgpack.hash ================================================ # md5, sha256 from https://pypi.org/pypi/u-msgpack-python/json md5 8691cea6bc7b44bce6e2115260a54323 u-msgpack-python-2.7.1.tar.gz sha256 b7e7d433cab77171a4c752875d91836f3040306bab5063fb6dbe11f64ea69551 u-msgpack-python-2.7.1.tar.gz # Locally computed sha256 checksums sha256 268ae7b7efbf67cd7bc0a9efea844fcf448d03f9cc6b8c79e8fe311815985030 LICENSE ================================================ FILE: package/python-u-msgpack/python-u-msgpack.mk ================================================ ################################################################################ # # python-u-msgpack # ################################################################################ PYTHON_U_MSGPACK_VERSION = 2.7.1 PYTHON_U_MSGPACK_SOURCE = u-msgpack-python-$(PYTHON_U_MSGPACK_VERSION).tar.gz PYTHON_U_MSGPACK_SITE = https://files.pythonhosted.org/packages/62/94/a4f485b628310534d377b3e7cb6f85b8066dc823dbff0e4421fb4227fb7e PYTHON_U_MSGPACK_SETUP_TYPE = setuptools PYTHON_U_MSGPACK_LICENSE = MIT PYTHON_U_MSGPACK_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-ubjson/Config.in ================================================ 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 ================================================ FILE: package/python-ubjson/python-ubjson.hash ================================================ # md5, sha256 from https://pypi.org/pypi/py-ubjson/json md5 0f9f2b4d68ae8e70c6f624b1cdaca161 py-ubjson-0.16.1.tar.gz sha256 b9bfb8695a1c7e3632e800fb83c943bf67ed45ddd87cd0344851610c69a5a482 py-ubjson-0.16.1.tar.gz # Locally computed sha256 checksums sha256 ca182abcb84ad9984c9af2e30cb70c4fe0e1772674355207e8fcdb85e8c5e75f LICENSE ================================================ FILE: package/python-ubjson/python-ubjson.mk ================================================ ################################################################################ # # python-ubjson # ################################################################################ PYTHON_UBJSON_VERSION = 0.16.1 PYTHON_UBJSON_SOURCE = py-ubjson-$(PYTHON_UBJSON_VERSION).tar.gz PYTHON_UBJSON_SITE = https://files.pythonhosted.org/packages/1d/c7/28220d37e041fe1df03e857fe48f768dcd30cd151480bf6f00da8713214a PYTHON_UBJSON_LICENSE = Apache-2.0 PYTHON_UBJSON_LICENSE_FILES = LICENSE PYTHON_UBJSON_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-ujson/0001-Add-support-for-aarch64_be-or1k-and-microblazebe.patch ================================================ From 768a445f0c28311bf88685bf0bb990505c12fd4c Mon Sep 17 00:00:00 2001 From: Florian Loitsch Date: Sat, 8 Sep 2018 18:18:15 +0200 Subject: [PATCH] Add support for aarch64_be, or1k and microblazebe. Fixes #73. [Retrieved from: https://github.com/google/double-conversion/commit/768a445f0c28311bf88685bf0bb990505c12fd4c] Signed-off-by: Fabrice Fontaine --- double-conversion/utils.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/deps/double-conversion/ouble-conversion/utils.h b/deps/double-conversion/double-conversion/utils.h index 98a2a11..492bc97 100644 --- a/deps/double-conversion/double-conversion/utils.h +++ b/deps/double-conversion/double-conversion/utils.h @@ -76,8 +76,9 @@ inline void abort_noreturn() { abort(); } defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ defined(__SH4__) || defined(__alpha__) || \ defined(_MIPS_ARCH_MIPS32R2) || \ - defined(__AARCH64EL__) || defined(__aarch64__) || \ - defined(__riscv) + defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \ + defined(__riscv) || \ + defined(__or1k__) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(__mc68000__) || \ defined(__pnacl__) || defined(__native_client__) ================================================ FILE: package/python-ujson/0002-Add-support-of-ARC-architecture.patch ================================================ From eafa625a34fd5d8bec18eddfccbca55ce77b4849 Mon Sep 17 00:00:00 2001 From: Alexey Brodkin Date: Thu, 1 Nov 2018 17:36:17 +0200 Subject: [PATCH] Add support of ARC architecture (#82) More info about ARC architecture is here: [1] & [2]. We need ARC supported here for many things like: - ICU (see [3]) - Qt5 etc [1] https://www.synopsys.com/designware-ip/processor-solutions/arc-processors.html [2] https://en.wikipedia.org/wiki/ARC_(processor) [3] https://unicode-org.atlassian.net/browse/ICU-20155 Fixes #81 [Retrieved from: https://github.com/google/double-conversion/commit/eafa625a34fd5d8bec18eddfccbca55ce77b4849] Signed-off-by: Fabrice Fontaine --- double-conversion/utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/double-conversion/double-conversion/utils.h b/deps/double-conversion/double-conversion/utils.h index 41c5b02..2e1be0d 100644 --- a/deps/double-conversion/double-conversion/utils.h +++ b/deps/double-conversion/double-conversion/utils.h @@ -94,7 +94,7 @@ int main(int argc, char** argv) { defined(_MIPS_ARCH_MIPS32R2) || \ defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \ defined(__riscv) || \ - defined(__or1k__) + defined(__or1k__) || defined(__arc__) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(__mc68000__) || \ defined(__pnacl__) || defined(__native_client__) ================================================ FILE: package/python-ujson/0003-Add-support-for-microblaze.patch ================================================ From 5cc233e98b74c5c370de888198a2b35200d55468 Mon Sep 17 00:00:00 2001 From: Florian Loitsch Date: Sat, 12 Oct 2019 14:35:52 +0200 Subject: [PATCH] Add support for microblaze. Really fixes #73. [Retrieved (and backported) from: https://github.com/google/double-conversion/commit/5cc233e98b74c5c370de888198a2b35200d55468] Signed-off-by: Fabrice Fontaine --- Changelog | 4 ++++ double-conversion/utils.h | 1 + 2 files changed, 5 insertions(+) diff --git a/deps/idouble-conversion/double-conversion/utils.h b/deps/double-conversion/double-conversion/utils.h index 1a71df0..221467f 100644 --- a/deps/doyble-conversion/double-conversion/utils.h +++ b/deps/double-conversion/double-conversion/utils.h @@ -102,6 +102,7 @@ int main(int argc, char** argv) { defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \ defined(__riscv) || \ - defined(__or1k__) || defined(__arc__) + defined(__or1k__) || defined(__arc__) || \ + defined(__microblaze__) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(__mc68000__) #undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS ================================================ FILE: package/python-ujson/0004-Pseiderer-add-nios2-and-xtensa-001.patch ================================================ From a54561be5588ac9b16d3c20760b9b554168bb8aa Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 31 Oct 2019 21:26:27 +0100 Subject: [PATCH] Pseiderer/add nios2 and xtensa 001 (#119) * double-conversion: enable for nios2 Nios2 supports double conversion, tested using qemu: ./main || echo "correct" correct uname -a Linux buildroot 4.19.16 #4 Sat Aug 3 14:46:48 CEST 2019 nios2 GNU/Linux Solves build error In file included from double-conversion.h:42:0, from number_decimalquantity.cpp:19: double-conversion-utils.h:119:2: error: #error Target architecture was not detected as supported by Double-Conversion. #error Target architecture was not detected as supported by Double-Conversion. detected by buildroot autobuilders: http://autobuild.buildroot.net/results/91e/91eaec34708d91f8a05af189243be0b7cabce31b/ Patch sent upstream: https://github.com/unicode-org/icu/pull/725 Bug report: https://unicode-org.atlassian.net/browse/ICU-20751 [Bernd: Fixed path] Signed-off-by: Bernd Kuhls [Added Changelog entry] Signed-off-by: Peter Seiderer * double-conversion: enable for xtensa Signed-off-by: Peter Seiderer [Retrieved (dand backported) from: https://github.com/google/double-conversion/commit/a54561be5588ac9b16d3c20760b9b554168bb8aa] Signed-off-by: Fabrice Fontaine --- Note: Double-conversion tested with: $ cat div.c double Div_double(double x, double y) { return x / y; } $ cat main.c double Div_double(double x, double y); int main(int argc, char** argv) { double result = Div_double(89255.0, 1e22); if (result == 89255e-22) { printf("correct result %e\n", result); return 1; } else { printf("wrong result %e\n", result); return 0; } } Tested for xtensa (using qemu_xtensa_lx60_defconfig plus BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE): $ ./host/bin/xtensa-buildroot-linux-uclibc-gcc -c div.c $ ./host/bin/xtensa-buildroot-linux-uclibc-gcc -c main.c $ ./host/bin/xtensa-buildroot-linux-uclibc-gcc -o main main.o div.o $ ./host/bin/qemu-xtensa -L staging main correct result 8.925500e-18 --- Changelog | 4 ++++ double-conversion/utils.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/deps/double-conversion/double-conversion/utils.h b/deps/double-conversion/double-conversion/utils.h index 221467f..98ec28b 100644 --- a/deps/double-conversion/double-conversion/utils.h +++ b/deps/double-conversion/double-conversion/utils.h @@ -94,6 +94,7 @@ int main(int argc, char** argv) { defined(__ARMEL__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \ defined(__hppa__) || defined(__ia64__) || \ defined(__mips__) || \ + defined(__nios2__) || \ defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \ defined(_POWER) || defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \ defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ @@ -102,7 +103,7 @@ int main(int argc, char** argv) { defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \ defined(__riscv) || defined(__e2k__) || \ defined(__or1k__) || defined(__arc__) || \ - defined(__microblaze__) + defined(__microblaze__) || defined(__XTENSA__) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(__mc68000__) #undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS ================================================ FILE: package/python-ujson/Config.in ================================================ config BR2_PACKAGE_PYTHON_UJSON bool "python-ujson" depends on BR2_PACKAGE_PYTHON3 help UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 3. https://pypi.python.org/pypi/ujson ================================================ FILE: package/python-ujson/python-ujson.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ujson/json md5 9a90e2e9f1d465c2121b8d10f837f53a ujson-4.2.0.tar.gz sha256 fffe509f556861c7343c6cba57ed05fe7bcf4b48a934a5b946ccb45428cf8883 ujson-4.2.0.tar.gz # Locally computed sha256 checksums sha256 6a00a8f8b4050303368b694147bde1aed9c96bdff869c181dbbf3ccb784a1501 LICENSE.txt ================================================ FILE: package/python-ujson/python-ujson.mk ================================================ ################################################################################ # # python-ujson # ################################################################################ PYTHON_UJSON_VERSION = 4.2.0 PYTHON_UJSON_SOURCE = ujson-$(PYTHON_UJSON_VERSION).tar.gz PYTHON_UJSON_SITE = https://files.pythonhosted.org/packages/df/69/e8f615e1a779e2d2d23d29d56dc55bbb1db2a828f0ef36d10bc697d63968 PYTHON_UJSON_SETUP_TYPE = setuptools PYTHON_UJSON_LICENSE = BSD-3-Clause PYTHON_UJSON_LICENSE_FILES = LICENSE.txt PYTHON_UJSON_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-unittest-xml-reporting/Config.in ================================================ config BR2_PACKAGE_PYTHON_UNITTEST_XML_REPORTING bool "python-unittest-xml-reporting" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON3_PYEXPAT help unittest-based test runner with Ant/JUnit like XML reporting. http://github.com/xmlrunner/unittest-xml-reporting/ ================================================ FILE: package/python-unittest-xml-reporting/python-unittest-xml-reporting.hash ================================================ # md5, sha256 from https://pypi.org/pypi/unittest-xml-reporting/json md5 474cd89f9609828ef6039a0f00afd9db unittest-xml-reporting-3.0.4.tar.gz sha256 984cebba69e889401bfe3adb9088ca376b3a1f923f0590d005126c1bffd1a695 unittest-xml-reporting-3.0.4.tar.gz # Locally calculated sha256 0596648105bee470f9cafd62753b931efe52392096439d88e2564cf7d7cf0e68 LICENSE ================================================ FILE: package/python-unittest-xml-reporting/python-unittest-xml-reporting.mk ================================================ ################################################################################ # # python-unittest-xml-reporting # ################################################################################ PYTHON_UNITTEST_XML_REPORTING_VERSION = 3.0.4 PYTHON_UNITTEST_XML_REPORTING_SOURCE = unittest-xml-reporting-$(PYTHON_UNITTEST_XML_REPORTING_VERSION).tar.gz PYTHON_UNITTEST_XML_REPORTING_SITE = https://files.pythonhosted.org/packages/bc/09/677086169c8e302b614de7d4a97c45c4446a382f31cc010fb31177258508 # License file missing in Pypi tarball, download separately. Issue # reported at # https://github.com/xmlrunner/unittest-xml-reporting/issues/259 PYTHON_UNITTEST_XML_REPORTING_EXTRA_DOWNLOADS = https://raw.githubusercontent.com/xmlrunner/unittest-xml-reporting/$(PYTHON_UNITTEST_XML_REPORTING_VERSION)/LICENSE PYTHON_UNITTEST_XML_REPORTING_SETUP_TYPE = setuptools PYTHON_UNITTEST_XML_REPORTING_LICENSE = BSD-2-Clause PYTHON_UNITTEST_XML_REPORTING_LICENSE_FILES = LICENSE define PYTHON_UNITTEST_XML_REPORTING_ADD_LICENSE_FILE $(INSTALL) -D -m 0644 $(PYTHON_UNITTEST_XML_REPORTING_DL_DIR)/LICENSE $(@D)/LICENSE endef PYTHON_UNITTEST_XML_REPORTING_POST_EXTRACT_HOOKS += PYTHON_UNITTEST_XML_REPORTING_ADD_LICENSE_FILE $(eval $(python-package)) ================================================ FILE: package/python-unqlite/Config.in ================================================ config BR2_PACKAGE_PYTHON_UNQLITE bool "python-unqlite" select BR2_PACKAGE_HOST_PYTHON_CYTHON help Fast Python bindings for UnQLite, a lightweight, embedded NoSQL database and JSON document store. https://github.com/coleifer/unqlite-python ================================================ FILE: package/python-unqlite/python-unqlite.hash ================================================ sha256 eba7d4bab1028b9a1e22ebef4f39147dd6f6ed64ab6e62872d602cce9ef88bc7 unqlite-0.9.1.tar.gz ================================================ FILE: package/python-unqlite/python-unqlite.mk ================================================ ################################################################################ # # python-unqlite # ################################################################################ PYTHON_UNQLITE_VERSION = 0.9.1 PYTHON_UNQLITE_SOURCE = unqlite-$(PYTHON_UNQLITE_VERSION).tar.gz PYTHON_UNQLITE_SITE = https://files.pythonhosted.org/packages/a9/f8/2d1aa85426036b2582ed190e41dcdf3305d8f375778f9acea60a5bbcb0e0 PYTHON_UNQLITE_LICENSE = MIT PYTHON_UNQLITE_LICENSE_FILES = LICENSE PYTHON_UNQLITE_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-urllib3/Config.in ================================================ config BR2_PACKAGE_PYTHON_URLLIB3 bool "python-urllib3" select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 # runtime help Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more. http://urllib3.readthedocs.org/ ================================================ FILE: package/python-urllib3/python-urllib3.hash ================================================ # md5, sha256 from https://pypi.org/pypi/urllib3/json md5 e0051a87a956e618a6bb514a07fa7773 urllib3-1.26.7.tar.gz sha256 4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece urllib3-1.26.7.tar.gz # Locally computed sha256 checksums sha256 c37bf186e27cf9dbe9619e55edfe3cea7b30091ceb3da63c7dacbe0e6d77907b LICENSE.txt ================================================ FILE: package/python-urllib3/python-urllib3.mk ================================================ ################################################################################ # # python-urllib3 # ################################################################################ PYTHON_URLLIB3_VERSION = 1.26.7 PYTHON_URLLIB3_SOURCE = urllib3-$(PYTHON_URLLIB3_VERSION).tar.gz PYTHON_URLLIB3_SITE = https://files.pythonhosted.org/packages/80/be/3ee43b6c5757cabea19e75b8f46eaf05a2f5144107d7db48c7cf3a864f73 PYTHON_URLLIB3_LICENSE = MIT PYTHON_URLLIB3_LICENSE_FILES = LICENSE.txt PYTHON_URLLIB3_CPE_ID_VENDOR = python PYTHON_URLLIB3_CPE_ID_PRODUCT = urllib3 PYTHON_URLLIB3_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-urwid/Config.in ================================================ config BR2_PACKAGE_PYTHON_URWID bool "python-urwid" depends on BR2_PACKAGE_PYTHON3 help Urwid is a console user interface library for Python http://urwid.org/ ================================================ FILE: package/python-urwid/python-urwid.hash ================================================ # md5, sha256 from https://pypi.org/pypi/urwid/json md5 f7f4e6bed9ba38965dbd619520f39287 urwid-2.1.2.tar.gz sha256 588bee9c1cb208d0906a9f73c613d2bd32c3ed3702012f51efe318a3f2127eae urwid-2.1.2.tar.gz # Locally computed sha256 checksums sha256 36b6d3fa47916943fd5fec313c584784946047ec1337a78b440e5992cb595f89 COPYING ================================================ FILE: package/python-urwid/python-urwid.mk ================================================ ################################################################################ # # python-urwid # ################################################################################ PYTHON_URWID_VERSION = 2.1.2 PYTHON_URWID_SOURCE = urwid-$(PYTHON_URWID_VERSION).tar.gz PYTHON_URWID_SITE = https://files.pythonhosted.org/packages/94/3f/e3010f4a11c08a5690540f7ebd0b0d251cc8a456895b7e49be201f73540c PYTHON_URWID_LICENSE = LGPL-2.1+ PYTHON_URWID_LICENSE_FILES = COPYING PYTHON_URWID_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-uvloop/Config.in ================================================ config BR2_PACKAGE_PYTHON_UVLOOP bool "python-uvloop" depends on BR2_PACKAGE_PYTHON3 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv depends on BR2_USE_MMU # libuv depends on !BR2_STATIC_LIBS # libuv depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv select BR2_PACKAGE_LIBUV select BR2_PACKAGE_PYTHON3_SSL help Fast implementation of asyncio event loop on top of libuv. http://github.com/MagicStack/uvloop comment "python-uvloop needs a toolchain w/ NPTL, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_MMU ================================================ FILE: package/python-uvloop/python-uvloop.hash ================================================ # md5, sha256 from https://pypi.org/pypi/uvloop/json md5 79f9a7f3cfe154daf0aade23555dc9d4 uvloop-0.16.0.tar.gz sha256 f74bc20c7b67d1c27c72601c78cf95be99d5c2cdd4514502b4f3eb0933ff1228 uvloop-0.16.0.tar.gz # Locally computed sha256 checksums sha256 2fdc436a67077941295c58647f521fbef8f50e46db0970552fa1a4dd8ae261c6 LICENSE-APACHE sha256 9185f3c77e9f6ef8859a6ba4c94128ac1329876be3e813aad32d7645e51ae409 LICENSE-MIT ================================================ FILE: package/python-uvloop/python-uvloop.mk ================================================ ################################################################################ # # python-uvloop # ################################################################################ PYTHON_UVLOOP_VERSION = 0.16.0 PYTHON_UVLOOP_SOURCE = uvloop-$(PYTHON_UVLOOP_VERSION).tar.gz PYTHON_UVLOOP_SITE = https://files.pythonhosted.org/packages/ab/d9/22bbffa8f8d7e075ccdb29e8134107adfb4710feb10039f9d357db8b589c PYTHON_UVLOOP_SETUP_TYPE = setuptools PYTHON_UVLOOP_LICENSE = Apache-2.0, MIT PYTHON_UVLOOP_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT PYTHON_UVLOOP_BUILD_OPTS = build_ext --inplace --use-system-libuv PYTHON_UVLOOP_INSTALL_TARGET_OPTS = build_ext --inplace --use-system-libuv PYTHON_UVLOOP_DEPENDENCIES = libuv $(eval $(python-package)) ================================================ FILE: package/python-validators/Config.in ================================================ config BR2_PACKAGE_PYTHON_VALIDATORS bool "python-validators" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_DECORATOR # runtime help Python Data Validation for Humans. https://github.com/kvesteri/validators ================================================ FILE: package/python-validators/python-validators.hash ================================================ # md5, sha256 from https://pypi.org/pypi/validators/json md5 2f0446f2a15aa694be0cfd8728eb4444 validators-0.15.0.tar.gz sha256 31e8bb01b48b48940a021b8a9576b840f98fa06b91762ef921d02cb96d38727a validators-0.15.0.tar.gz # Locally computed sha256 checksums sha256 a7fd9d761c7ca1c6508b9baf030f6e21f5752d1caea3e49a270634aa9ef01e6f LICENSE ================================================ FILE: package/python-validators/python-validators.mk ================================================ ################################################################################ # # python-validators # ################################################################################ PYTHON_VALIDATORS_VERSION = 0.15.0 PYTHON_VALIDATORS_SOURCE = validators-$(PYTHON_VALIDATORS_VERSION).tar.gz PYTHON_VALIDATORS_SITE = https://files.pythonhosted.org/packages/c4/4a/4f9c892f9a9f08ee5f99c32bbd4297499099c2c5f7eff8c617a57d31a7d8 PYTHON_VALIDATORS_SETUP_TYPE = setuptools PYTHON_VALIDATORS_LICENSE = MIT PYTHON_VALIDATORS_LICENSE_FILES = LICENSE PYTHON_VALIDATORS_CPE_ID_VENDOR = validators_project PYTHON_VALIDATORS_CPE_ID_PRODUCT = validators $(eval $(python-package)) ================================================ FILE: package/python-vcversioner/python-vcversioner.hash ================================================ # md5 from https://pypi.python.org/pypi/vcversioner/json, sha256 locally computed md5 aab6ef5e0cf8614a1b1140ed5b7f107d vcversioner-2.16.0.0.tar.gz sha256 dae60c17a479781f44a4010701833f1829140b1eeccd258762a74974aa06e19b vcversioner-2.16.0.0.tar.gz ================================================ FILE: package/python-vcversioner/python-vcversioner.mk ================================================ ################################################################################ # # python-vcversioner # ################################################################################ PYTHON_VCVERSIONER_VERSION = 2.16.0.0 PYTHON_VCVERSIONER_SOURCE = vcversioner-$(PYTHON_VCVERSIONER_VERSION).tar.gz PYTHON_VCVERSIONER_SITE = https://pypi.python.org/packages/c5/cc/33162c0a7b28a4d8c83da07bc2b12cee58c120b4a9e8bba31c41c8d35a16 PYTHON_VCVERSIONER_SETUP_TYPE = setuptools PYTHON_VCVERSIONER_LICENSE = ISC $(eval $(host-python-package)) ================================================ FILE: package/python-versiontools/Config.in ================================================ config BR2_PACKAGE_PYTHON_VERSIONTOOLS bool "python-versiontools" help Smart replacement for plain tuple used in __version__. https://pypi.python.org/pypi/versiontools ================================================ FILE: package/python-versiontools/python-versiontools.hash ================================================ # locally computed sha256 a969332887a18a9c98b0df0ea4d4ca75972f24ca94f06fb87d591377e83414f6 versiontools-1.9.1.tar.gz ================================================ FILE: package/python-versiontools/python-versiontools.mk ================================================ ################################################################################ # # python-versiontools # ################################################################################ PYTHON_VERSIONTOOLS_VERSION = 1.9.1 PYTHON_VERSIONTOOLS_SOURCE = versiontools-$(PYTHON_VERSIONTOOLS_VERSION).tar.gz PYTHON_VERSIONTOOLS_SITE = https://pypi.python.org/packages/source/v/versiontools PYTHON_VERSIONTOOLS_SETUP_TYPE = setuptools PYTHON_VERSIONTOOLS_LICENSE = LGPL-3.0 $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-visitor/Config.in ================================================ config BR2_PACKAGE_PYTHON_VISITOR bool "python-visitor" help A tiny pythonic visitor implementation. http://github.com/mbr/visitor ================================================ FILE: package/python-visitor/python-visitor.hash ================================================ # md5 from https://pypi.python.org/pypi/visitor/json, sha256 locally computed md5 94a024ed0ec1b02b4497c15267d319ca visitor-0.1.3.tar.gz sha256 2c737903b2b6864ebc6167eef7cf3b997126f1aa94bdf590f90f1436d23e480a visitor-0.1.3.tar.gz sha256 184d1ebb65da97ada36447f3c028f2fd4890b874f17b18c023ce200dd96639af LICENSE ================================================ FILE: package/python-visitor/python-visitor.mk ================================================ ################################################################################ # # python-visitor # ################################################################################ PYTHON_VISITOR_VERSION = 0.1.3 PYTHON_VISITOR_SOURCE = visitor-$(PYTHON_VISITOR_VERSION).tar.gz PYTHON_VISITOR_SITE = https://pypi.python.org/packages/d7/58/785fcd6de4210049da5fafe62301b197f044f3835393594be368547142b0 PYTHON_VISITOR_SETUP_TYPE = setuptools PYTHON_VISITOR_LICENSE = MIT PYTHON_VISITOR_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-watchdog/Config.in ================================================ config BR2_PACKAGE_PYTHON_WATCHDOG bool "python-watchdog" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_ARGH # runtime select BR2_PACKAGE_PYTHON_PATHTOOLS # runtime select BR2_PACKAGE_PYTHON_PYYAML # runtime select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime help Python API and shell utilities to monitor file system events. http://github.com/gorakhargosh/watchdog ================================================ FILE: package/python-watchdog/python-watchdog.hash ================================================ # md5, sha256 from https://pypi.org/pypi/watchdog/json md5 6aac660b0f3358c63658806a0579b832 watchdog-2.1.6.tar.gz sha256 a36e75df6c767cbf46f61a91c70b3ba71811dfa0aca4a324d9407a06a8b7a2e7 watchdog-2.1.6.tar.gz # Locally computed sha256 checksums sha256 02c8760f988a76e92a9d6cb525456a86f7b0fd1953870dd491de5955cb974d41 COPYING sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/python-watchdog/python-watchdog.mk ================================================ ################################################################################ # # python-watchdog # ################################################################################ PYTHON_WATCHDOG_VERSION = 2.1.6 PYTHON_WATCHDOG_SOURCE = watchdog-$(PYTHON_WATCHDOG_VERSION).tar.gz PYTHON_WATCHDOG_SITE = https://files.pythonhosted.org/packages/e8/a8/fc4edd7d768361b00ea850e5310211d157df6b5a1db6148dd434e787d898 PYTHON_WATCHDOG_SETUP_TYPE = setuptools PYTHON_WATCHDOG_LICENSE = Apache-2.0 PYTHON_WATCHDOG_LICENSE_FILES = LICENSE COPYING $(eval $(python-package)) ================================================ FILE: package/python-wcwidth/Config.in ================================================ 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 ================================================ FILE: package/python-wcwidth/python-wcwidth.hash ================================================ # md5, sha256 from https://pypi.org/pypi/wcwidth/json md5 b32584cd6084b4a8c81df13a2a6b4351 wcwidth-0.1.9.tar.gz sha256 ee73862862a156bf77ff92b09034fc4825dd3af9cf81bc5b360668d425f3c5f1 wcwidth-0.1.9.tar.gz # Locally computed sha256 0eddcc52cd3ef5d30798b8d43a14d3f0f1dcf0a6e4c1d0f2e177c44ce85bb69c LICENSE.txt ================================================ FILE: package/python-wcwidth/python-wcwidth.mk ================================================ ################################################################################ # # python-wcwidth # ################################################################################ PYTHON_WCWIDTH_VERSION = 0.1.9 PYTHON_WCWIDTH_SOURCE = wcwidth-$(PYTHON_WCWIDTH_VERSION).tar.gz PYTHON_WCWIDTH_SITE = https://pypi.python.org/packages/25/9d/0acbed6e4a4be4fc99148f275488580968f44ddb5e69b8ceb53fc9df55a0 PYTHON_WCWIDTH_SETUP_TYPE = setuptools PYTHON_WCWIDTH_LICENSE = MIT PYTHON_WCWIDTH_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-web2py/Config.in ================================================ config BR2_PACKAGE_PYTHON_WEB2PY bool "python-web2py" select BR2_PACKAGE_PYTHON_PYDAL # runtime select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 # 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_SQLITE if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_SQLITE if BR2_PACKAGE_PYTHON3 # runtime select BR2_PACKAGE_PYTHON_YATL # runtime help web2py is a free open source full-stack framework for rapid development of fast, scalable, secure and portable database-driven web-based applications. http://web2py.com if BR2_PACKAGE_PYTHON_WEB2PY config BR2_PACKAGE_PYTHON_WEB2PY_INSTALL_ADMIN bool "install admin panel application" default y help This option install web2py admin panel application. It can be removed to save space on embedded systems. if BR2_PACKAGE_PYTHON_WEB2PY_INSTALL_ADMIN config BR2_PACKAGE_PYTHON_WEB2PY_PASSWORD string "admin panel password" default web2py help Set the admin panel password. endif endif ================================================ FILE: package/python-web2py/S51web2py ================================================ #!/bin/sh case "$1" in start) printf "Starting web2py: " start-stop-daemon -S -q -m -p /run/web2py.pid \ -c www-data \ -b -x /var/www/web2py/web2py.py \ -- --nogui -a '""' -i 0.0.0.0 -p 8000 [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping web2py: " start-stop-daemon -K -q -p /run/web2py.pid [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart) "$0" stop sleep 1 "$0" start ;; *) echo "Usage: $0 {start|stop|restart}" ;; esac ================================================ FILE: package/python-web2py/python-web2py.hash ================================================ # sha256 locally computed sha256 44556376468139de874e9c29c9ef56e60ecd5f7536c7bee46d74b1f9d4178825 python-web2py-2.21.1.tar.gz sha256 2aae96826184a492bc799add49aed7b29036e7aba2d2294fb65053bd30fe55fe LICENSE ================================================ FILE: package/python-web2py/python-web2py.mk ================================================ ################################################################################ # # python-web2py # ################################################################################ PYTHON_WEB2PY_VERSION = 2.21.1 PYTHON_WEB2PY_SITE = $(call github,web2py,web2py,v$(PYTHON_WEB2PY_VERSION)) PYTHON_WEB2PY_LICENSE = LGPL-3.0 PYTHON_WEB2PY_LICENSE_FILES = LICENSE PYTHON_WEB2PY_CPE_ID_VENDOR = web2py PYTHON_WEB2PY_CPE_ID_PRODUCT = web2py PYTHON_WEB2PY_DEPENDENCIES = $(if $(BR2_PACKAGE_PYTHON3),host-python3 python3,host-python python) \ host-python-pydal host-python-yatl PYTHON_WEB2PY_EXCLUSIONS = \ welcome.w2p \ applications/examples \ applications/welcome \ deposit \ docs \ examples \ extras \ handlers \ scripts \ ABOUT \ anyserver.py \ CHANGELOG \ Makefile \ MANIFEST.in \ README.markdown \ setup.py \ tox.ini define PYTHON_WEB2PY_GENERATE_PASSWORD $(HOST_DIR)/bin/python -c 'import os; \ os.chdir("$(@D)"); \ from gluon.main import save_password; \ save_password($(BR2_PACKAGE_PYTHON_WEB2PY_PASSWORD),8000)' endef ifeq ($(BR2_PACKAGE_PYTHON_WEB2PY_INSTALL_ADMIN),y) PYTHON_WEB2PY_POST_BUILD_HOOKS += PYTHON_WEB2PY_GENERATE_PASSWORD else PYTHON_WEB2PY_EXCLUSIONS += applications/admin endif define PYTHON_WEB2PY_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/var/www/web2py rsync -a $(@D)/ $(TARGET_DIR)/var/www/web2py/ \ $(addprefix --exclude=,$(PYTHON_WEB2PY_EXCLUSIONS)) endef define PYTHON_WEB2PY_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/python-web2py/S51web2py \ $(TARGET_DIR)/etc/init.d/S51web2py endef define PYTHON_WEB2PY_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/python-web2py/web2py.service \ $(TARGET_DIR)/usr/lib/systemd/system/web2py.service endef # www-data user and group are used for web2py. Because these user and group # are already set by buildroot, it is not necessary to redefine them. # See system/skeleton/etc/passwd # username: www-data uid: 33 # groupname: www-data gid: 33 # # So, we just need to create the directories used by web2py with the right # ownership. define PYTHON_WEB2PY_PERMISSIONS /var/www/web2py r 750 33 33 - - - - - endef $(eval $(generic-package)) ================================================ FILE: package/python-web2py/web2py.service ================================================ [Unit] Description=Web2py daemon After=network.target [Service] Type=simple ExecStart=/var/www/web2py/web2py.py --nogui -a '' -i 0.0.0.0 -p 8000 User=www-data [Install] WantedBy=multi-user.target ================================================ FILE: package/python-webargs/Config.in ================================================ config BR2_PACKAGE_PYTHON_WEBARGS bool "python-webargs" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 help webargs is a Python library for parsing and validating HTTP request objects, with built-in support for popular web frameworks, including Flask, Django, Bottle, Tornado, Pyramid, webapp2, Falcon, and aiohttp. https://github.com/marshmallow-code/webargs ================================================ FILE: package/python-webargs/python-webargs.hash ================================================ sha256 888f3e7e0b74b760732388da4e73640fcab452045d78268c31fb610b3cb397b9 webargs-5.3.1.tar.gz ================================================ FILE: package/python-webargs/python-webargs.mk ================================================ ################################################################################ # # python-webargs # ################################################################################ PYTHON_WEBARGS_VERSION = 5.3.1 PYTHON_WEBARGS_SOURCE = webargs-$(PYTHON_WEBARGS_VERSION).tar.gz PYTHON_WEBARGS_SITE = https://files.pythonhosted.org/packages/b2/df/156e105358c06b6f76a17cb3ee3eb82789a3abbc482a5a2f8b576e81112c PYTHON_WEBARGS_SETUP_TYPE = setuptools PYTHON_WEBARGS_LICENSE = Apache-2.0 PYTHON_WEBARGS_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-webencodings/Config.in ================================================ config BR2_PACKAGE_PYTHON_WEBENCODINGS bool "python-webencodings" help Character encoding aliases for legacy web content. https://github.com/SimonSapin/python-webencodings ================================================ FILE: package/python-webencodings/python-webencodings.hash ================================================ # md5, sha256 from https://pypi.org/pypi/webencodings/json md5 32f6e261d52e57bf7e1c4d41546d15b8 webencodings-0.5.1.tar.gz sha256 b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923 webencodings-0.5.1.tar.gz # Locally computed sha256 checksumms sha256 c27693b0174d6d04dafd0242857ae72763f5404b675972c777fd865bc3c0abe1 PKG-INFO ================================================ FILE: package/python-webencodings/python-webencodings.mk ================================================ ################################################################################ # # python-webencodings # ################################################################################ PYTHON_WEBENCODINGS_VERSION = 0.5.1 PYTHON_WEBENCODINGS_SOURCE = webencodings-$(PYTHON_WEBENCODINGS_VERSION).tar.gz PYTHON_WEBENCODINGS_SITE = https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47 PYTHON_WEBENCODINGS_SETUP_TYPE = setuptools PYTHON_WEBENCODINGS_LICENSE = BSD-3-Clause PYTHON_WEBENCODINGS_LICENSE_FILES = PKG-INFO $(eval $(python-package)) ================================================ FILE: package/python-webob/Config.in ================================================ config BR2_PACKAGE_PYTHON_WEBOB bool "python-webob" select BR2_PACKAGE_PYTHON_HASHLIB if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 # runtime help WSGI request and response object. http://webob.org/ ================================================ FILE: package/python-webob/python-webob.hash ================================================ # md5, sha256 from https://pypi.org/pypi/webob/json md5 10191c69fa5a2c00f3b9abfb8937b415 WebOb-1.8.7.tar.gz sha256 b64ef5141be559cfade448f044fa45c2260351edcb6a8ef6b7e00c7dcef0c323 WebOb-1.8.7.tar.gz # Locally computed sha256 checksums sha256 27bc4919e7e9e6b6cda40644517ca74d32203e32fba89ef832aba1ed93e457b3 docs/license.txt ================================================ FILE: package/python-webob/python-webob.mk ================================================ ################################################################################ # # python-webob # ################################################################################ PYTHON_WEBOB_VERSION = 1.8.7 PYTHON_WEBOB_SOURCE = WebOb-$(PYTHON_WEBOB_VERSION).tar.gz PYTHON_WEBOB_SITE = https://files.pythonhosted.org/packages/c7/45/ee5f034fb4ebe3236fa49e5a4fcbc54444dd22ecf33079cf56f9606d479d PYTHON_WEBOB_SETUP_TYPE = setuptools PYTHON_WEBOB_LICENSE = MIT PYTHON_WEBOB_LICENSE_FILES = docs/license.txt $(eval $(python-package)) ================================================ FILE: package/python-webpy/Config.in ================================================ config BR2_PACKAGE_PYTHON_WEBPY bool "python-webpy" depends on BR2_PACKAGE_PYTHON3 # python-cheroot select BR2_PACKAGE_PYTHON_CHEROOT # runtime select BR2_PACKAGE_PYTHON_MARKDOWN # runtime help web.py is a web framework for Python that is as simple as it is powerful. http://webpy.org/ ================================================ FILE: package/python-webpy/python-webpy.hash ================================================ # md5, sha256 from https://pypi.org/pypi/web.py/json md5 4e7ec89e7ae1e938d01fff01ba752606 web.py-0.40.tar.gz sha256 dc5e42ffbc42d77d07f75b7acca9975a3368ae609774e49ddebb497a784131f3 web.py-0.40.tar.gz # Locally computed sha256 checksums sha256 791bf6e9419435f114a19fc6519ff33738021eb3c41b18490943230ab0894df9 LICENSE.txt ================================================ FILE: package/python-webpy/python-webpy.mk ================================================ ################################################################################ # # python-webpy # ################################################################################ PYTHON_WEBPY_VERSION = 0.40 PYTHON_WEBPY_SOURCE = web.py-$(PYTHON_WEBPY_VERSION).tar.gz PYTHON_WEBPY_SITE = https://files.pythonhosted.org/packages/e3/23/ed84b174add09153329c6357984c8433e2f350de91c3859fa48c3cdbf7dc PYTHON_WEBPY_SETUP_TYPE = setuptools PYTHON_WEBPY_LICENSE = Public Domain PYTHON_WEBPY_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-websocket-client/Config.in ================================================ config BR2_PACKAGE_PYTHON_WEBSOCKET_CLIENT bool "python-websocket-client" select BR2_PACKAGE_PYTHON_SIX # runtime select BR2_PACKAGE_PYTHON_SSL if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_SSL if BR2_PACKAGE_PYTHON3 # runtime help WebSocket client for python. hybi13 is supported. https://github.com/websocket-client/websocket-client.git ================================================ FILE: package/python-websocket-client/python-websocket-client.hash ================================================ # md5, sha256 from https://pypi.org/pypi/websocket-client/json md5 8fc86b13dc97dc032855c6257f9168df websocket_client-0.58.0.tar.gz sha256 63509b41d158ae5b7f67eb4ad20fecbb4eee99434e73e140354dc3ff8e09716f websocket_client-0.58.0.tar.gz # Locally computed sha256 checksums sha256 7c6699c75f87b52bdc542db26d6b1b92892577cda46e20eceb79e2790a1c291b LICENSE ================================================ FILE: package/python-websocket-client/python-websocket-client.mk ================================================ ################################################################################ # # python-websocket-client # ################################################################################ PYTHON_WEBSOCKET_CLIENT_VERSION = 0.58.0 PYTHON_WEBSOCKET_CLIENT_SOURCE = websocket_client-$(PYTHON_WEBSOCKET_CLIENT_VERSION).tar.gz PYTHON_WEBSOCKET_CLIENT_SITE = https://files.pythonhosted.org/packages/4a/df/112c278ba1ead96786d24d973429ce1e1a2c86b9843183d9f8ef8c6330d7 PYTHON_WEBSOCKET_CLIENT_SETUP_TYPE = setuptools PYTHON_WEBSOCKET_CLIENT_LICENSE = LGPL-2.1+ PYTHON_WEBSOCKET_CLIENT_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-websockets/Config.in ================================================ config BR2_PACKAGE_PYTHON_WEBSOCKETS bool "python-websockets" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON3_ZLIB select BR2_PACKAGE_PYTHON3_SSL help An implementation of the WebSocket Protocol (RFC 6455 & 7692). https://github.com/aaugustin/websockets ================================================ FILE: package/python-websockets/python-websockets.hash ================================================ # md5, sha256 from https://pypi.org/pypi/websockets/json md5 ebb9e4930bf2c35cd3723be0dfa83d89 websockets-10.0.tar.gz sha256 c4fc9a1d242317892590abe5b61a9127f1a61740477bfb121743f290b8054002 websockets-10.0.tar.gz # Locally computed sha256 checksums sha256 daeca11bf3608da35e546ea0c32be18958a8be1441fa3de9cbd20e4c8bc718e6 LICENSE ================================================ FILE: package/python-websockets/python-websockets.mk ================================================ ################################################################################ # # python-websockets # ################################################################################ PYTHON_WEBSOCKETS_VERSION = 10.0 PYTHON_WEBSOCKETS_SOURCE = websockets-$(PYTHON_WEBSOCKETS_VERSION).tar.gz PYTHON_WEBSOCKETS_SITE = https://files.pythonhosted.org/packages/1c/f4/61aee1eb4baadf8477fb7f3bc6b04a50fe683ef8ad2f60282806821e4b3b PYTHON_WEBSOCKETS_SETUP_TYPE = setuptools PYTHON_WEBSOCKETS_LICENSE = BSD-3-Clause PYTHON_WEBSOCKETS_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-werkzeug/Config.in ================================================ config BR2_PACKAGE_PYTHON_WERKZEUG bool "python-werkzeug" select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 # runtime help Werkzeug is a WSGI utility library for Python. It's widely used and BSD licensed. http://werkzeug.pocoo.org/ ================================================ FILE: package/python-werkzeug/python-werkzeug.hash ================================================ # md5, sha256 from https://pypi.org/pypi/werkzeug/json md5 5d499cfdd30de5d9c946994783772efd Werkzeug-1.0.1.tar.gz sha256 6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c Werkzeug-1.0.1.tar.gz # Locally computed sha256 checksums sha256 3b49dcee4105eb37bac10faf1be260408fe85d252b8e9df2e0979fc1e094437b LICENSE.rst ================================================ FILE: package/python-werkzeug/python-werkzeug.mk ================================================ ################################################################################ # # python-werkzeug # ################################################################################ PYTHON_WERKZEUG_VERSION = 1.0.1 PYTHON_WERKZEUG_SOURCE = Werkzeug-$(PYTHON_WERKZEUG_VERSION).tar.gz PYTHON_WERKZEUG_SITE = https://files.pythonhosted.org/packages/10/27/a33329150147594eff0ea4c33c2036c0eadd933141055be0ff911f7f8d04 PYTHON_WERKZEUG_SETUP_TYPE = setuptools PYTHON_WERKZEUG_LICENSE = BSD-3-Clause PYTHON_WERKZEUG_LICENSE_FILES = LICENSE.rst PYTHON_WERKZEUG_CPE_ID_VENDOR = palletsprojects PYTHON_WERKZEUG_CPE_ID_PRODUCT = werkzeug $(eval $(python-package)) ================================================ FILE: package/python-whoosh/Config.in ================================================ config BR2_PACKAGE_PYTHON_WHOOSH bool "python-whoosh" select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 # runtime help Whoosh is a fast, pure-Python full text indexing, search and spell checking library. https://pypi.python.org/pypi/Whoosh/ ================================================ FILE: package/python-whoosh/python-whoosh.hash ================================================ # md5 from https://pypi.python.org/pypi/whoosh/json md5 c2710105f20b3e29936bd2357383c325 Whoosh-2.7.4.tar.gz # Locally computed sha256 7ca5633dbfa9e0e0fa400d3151a8a0c4bec53bd2ecedc0a67705b17565c31a83 Whoosh-2.7.4.tar.gz sha256 464ef68037a0e5545e4716b4ff99f3f85ca89cf9e9a7ecfd7a02039ba1c34a90 LICENSE.txt ================================================ FILE: package/python-whoosh/python-whoosh.mk ================================================ ################################################################################ # # python-whoosh # ################################################################################ PYTHON_WHOOSH_VERSION = 2.7.4 PYTHON_WHOOSH_SOURCE = Whoosh-$(PYTHON_WHOOSH_VERSION).tar.gz PYTHON_WHOOSH_SITE = https://pypi.python.org/packages/25/2b/6beed2107b148edc1321da0d489afc4617b9ed317ef7b72d4993cad9b684 PYTHON_WHOOSH_SETUP_TYPE = setuptools PYTHON_WHOOSH_LICENSE = BSD-3-Clause PYTHON_WHOOSH_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-wrapt/Config.in ================================================ config BR2_PACKAGE_PYTHON_WRAPT bool "python-wrapt" help Module for decorators, wrappers and monkey patching. https://github.com/GrahamDumpleton/wrapt ================================================ FILE: package/python-wrapt/python-wrapt.hash ================================================ # md5, sha256 from https://pypi.org/pypi/wrapt/json md5 6d56ed0de4336462a73350341462f45e wrapt-1.12.1.tar.gz sha256 b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7 wrapt-1.12.1.tar.gz # Locally computed sha256 checksums sha256 e37c13f84fb3c9a54161b0fcf75f4d302fb86ce42cd6106147bda79e4197d9f2 LICENSE ================================================ FILE: package/python-wrapt/python-wrapt.mk ================================================ ################################################################################ # # python-wrapt # ################################################################################ PYTHON_WRAPT_VERSION = 1.12.1 PYTHON_WRAPT_SOURCE = wrapt-$(PYTHON_WRAPT_VERSION).tar.gz PYTHON_WRAPT_SITE = https://files.pythonhosted.org/packages/82/f7/e43cefbe88c5fd371f4cf0cf5eb3feccd07515af9fd6cf7dbf1d1793a797 PYTHON_WRAPT_SETUP_TYPE = distutils PYTHON_WRAPT_LICENSE = BSD-2-Clause PYTHON_WRAPT_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-ws4py/0001-Adjust-ws4py-for-Python-3.7-syntax.patch ================================================ From dfe6f65b7078315c32cebb727e9c47ead7603475 Mon Sep 17 00:00:00 2001 From: Asaf Kahlon Date: Sun, 13 Oct 2019 16:44:44 +0300 Subject: [PATCH 1/1] Adjust ws4py for Python 3.7 syntax Since Python 3.7, "async" has become a keyword and cannot be used. Thus, instead of asyncio.async we will use asyncio.ensure_future. There's also a pull request with this change: https://github.com/Lawouach/WebSocket-for-Python/pull/245 Signed-off-by: Asaf Kahlon --- ws4py/async_websocket.py | 4 ++-- ws4py/server/tulipserver.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ws4py/async_websocket.py b/ws4py/async_websocket.py index 9e2a4c7..ea296b4 100644 --- a/ws4py/async_websocket.py +++ b/ws4py/async_websocket.py @@ -84,7 +84,7 @@ class WebSocket(_WebSocket): def closeit(): yield from self.proto.writer.drain() self.proto.writer.close() - asyncio.async(closeit()) + asyncio.ensure_future(closeit()) def _write(self, data): """ @@ -94,7 +94,7 @@ class WebSocket(_WebSocket): def sendit(data): self.proto.writer.write(data) yield from self.proto.writer.drain() - asyncio.async(sendit(data)) + asyncio.ensure_future(sendit(data)) @asyncio.coroutine def run(self): diff --git a/ws4py/server/tulipserver.py b/ws4py/server/tulipserver.py index 2786c16..85312a2 100644 --- a/ws4py/server/tulipserver.py +++ b/ws4py/server/tulipserver.py @@ -40,7 +40,7 @@ class WebSocketProtocol(asyncio.StreamReaderProtocol): #self.stream.set_transport(transport) asyncio.StreamReaderProtocol.connection_made(self, transport) # Let make it concurrent for others to tag along - f = asyncio.async(self.handle_initial_handshake()) + f = asyncio.ensure_future(self.handle_initial_handshake()) f.add_done_callback(self.terminated) @property -- 2.20.1 ================================================ FILE: package/python-ws4py/Config.in ================================================ config BR2_PACKAGE_PYTHON_WS4PY bool "python-ws4py" help ws4py is a Python package implementing the WebSocket protocol as defined in RFC 6455. https://ws4py.readthedocs.org ================================================ FILE: package/python-ws4py/python-ws4py.hash ================================================ # md5, sha256 from https://pypi.org/pypi/ws4py/json md5 68e0cfae9659dd059ff7e7a8218af548 ws4py-0.5.1.tar.gz sha256 29d073d7f2e006373e6a848b1d00951a1107eb81f3742952be905429dc5a5483 ws4py-0.5.1.tar.gz # Locally computed sha256 checksums sha256 3c98d9e820de01b1ae3be846419700ab9cefa22b09aa0ef441b3bfd5613c3ba1 LICENSE ================================================ FILE: package/python-ws4py/python-ws4py.mk ================================================ ################################################################################ # # python-ws4py # ################################################################################ PYTHON_WS4PY_VERSION = 0.5.1 PYTHON_WS4PY_SOURCE = ws4py-$(PYTHON_WS4PY_VERSION).tar.gz PYTHON_WS4PY_SITE = https://files.pythonhosted.org/packages/53/20/4019a739b2eefe9282d3822ef6a225250af964b117356971bd55e274193c PYTHON_WS4PY_SETUP_TYPE = setuptools PYTHON_WS4PY_LICENSE = BSD-3-Clause PYTHON_WS4PY_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-wsaccel/Config.in ================================================ config BR2_PACKAGE_PYTHON_WSACCEL bool "python-wsaccel" help Accelerator for ws4py and AutobahnPython. https://pypi.python.org/pypi/wsaccel ================================================ FILE: package/python-wsaccel/python-wsaccel.hash ================================================ # md5, sha256 from https://pypi.org/pypi/wsaccel/json md5 973168711818dd98b8b28a4c2db77a27 wsaccel-0.6.3.tar.gz sha256 fdb27866bb6b6e7a29e45222778ff97938782a0ce92eff07dfb20af8fb9301c4 wsaccel-0.6.3.tar.gz # Locally computed sha256 checksums sha256 b6982974cb838b985b54b663d1780d280735086249c2e28015f25dd455df25da LICENSE ================================================ FILE: package/python-wsaccel/python-wsaccel.mk ================================================ ################################################################################ # # python-wsaccel # ################################################################################ PYTHON_WSACCEL_VERSION = 0.6.3 PYTHON_WSACCEL_SOURCE = wsaccel-$(PYTHON_WSACCEL_VERSION).tar.gz PYTHON_WSACCEL_SITE = https://files.pythonhosted.org/packages/f5/d1/3e99875a764d0d6ec94a74977ed72dd3022a7f31d036622da9cff8fc072f PYTHON_WSACCEL_LICENSE = Apache-2.0 PYTHON_WSACCEL_LICENSE_FILES = LICENSE PYTHON_WSACCEL_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-wtforms/Config.in ================================================ config BR2_PACKAGE_PYTHON_WTFORMS bool "python-wtforms" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_MARKUPSAFE # runtime help A flexible forms validation and rendering library for Python web development. https://wtforms.readthedocs.io/ ================================================ FILE: package/python-wtforms/python-wtforms.hash ================================================ # md5, sha256 from https://pypi.org/pypi/wtforms/json md5 2b6ea167a71c6becf20f0934417fd06c WTForms-2.3.3.tar.gz sha256 81195de0ac94fbc8368abbaf9197b88c4f3ffd6c2719b5bf5fc9da744f3d829c WTForms-2.3.3.tar.gz # Locally computed sha256 checksums sha256 cf40d60ff34f6b2b68a53d220f8b66567b5ac8dd1119b37b62fd15e9518fe59b LICENSE.rst sha256 c9362a7258a11c84a8f7e825ccbbb5c425c6fc02368d3aee6494533fb99ba1f4 docs/license.rst ================================================ FILE: package/python-wtforms/python-wtforms.mk ================================================ ################################################################################ # # python-wtforms # ################################################################################ PYTHON_WTFORMS_VERSION = 2.3.3 PYTHON_WTFORMS_SOURCE = WTForms-$(PYTHON_WTFORMS_VERSION).tar.gz PYTHON_WTFORMS_SITE = https://files.pythonhosted.org/packages/dd/3f/f25d26b1c66896e2876124a12cd8be8f606abf4e1890a20f3ca04e4a1555 PYTHON_WTFORMS_SETUP_TYPE = setuptools PYTHON_WTFORMS_LICENSE = BSD-3-Clause PYTHON_WTFORMS_LICENSE_FILES = LICENSE.rst docs/license.rst $(eval $(python-package)) ================================================ FILE: package/python-xlib/Config.in ================================================ config BR2_PACKAGE_PYTHON_XLIB bool "python-xlib" select BR2_PACKAGE_PYTHON_SIX # runtime help XLib in pure Python (Py2/Py3 compatible) https://github.com/python-xlib/python-xlib ================================================ FILE: package/python-xlib/python-xlib.hash ================================================ # md5, sha256 from https://pypi.org/pypi/python-xlib/json md5 3a87f81bff4cb4f8a52881097ba51a49 python-xlib-0.27.tar.bz2 sha256 a90667c70905c6ef0754c8a09fa61acbc1e1b7ddb946d527831800d7cbfe9348 python-xlib-0.27.tar.bz2 # Locally computed sha256 checksums sha256 06eb1c441443cf15ac84f309003f4c43c62246939d37c75fc3e056c2d34cd300 LICENSE ================================================ FILE: package/python-xlib/python-xlib.mk ================================================ ################################################################################ # # python-xlib # ################################################################################ PYTHON_XLIB_VERSION = 0.27 PYTHON_XLIB_SOURCE = python-xlib-$(PYTHON_XLIB_VERSION).tar.bz2 PYTHON_XLIB_SITE = https://files.pythonhosted.org/packages/e8/fa/a61ef33df117de4c57d11b4ba0b624f5352f21aa2e1eda404860155e8855 PYTHON_XLIB_SETUP_TYPE = setuptools PYTHON_XLIB_LICENSE = LGPL-2.1+ PYTHON_XLIB_LICENSE_FILES = LICENSE PYTHON_XLIB_DEPENDENCIES = host-python-setuptools-scm $(eval $(python-package)) ================================================ FILE: package/python-xlrd/Config.in ================================================ 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/ ================================================ FILE: package/python-xlrd/Config.in.host ================================================ config BR2_PACKAGE_HOST_PYTHON_XLRD bool "host python-xlrd" help Library for developers to extract data from Microsoft Excel(tm) spreadsheet files. http://www.python-excel.org/ ================================================ FILE: package/python-xlrd/python-xlrd.hash ================================================ # md5, sha256 from https://pypi.org/pypi/xlrd/json md5 ae3f951c857a490d432f0a7d722352bf xlrd-2.0.1.tar.gz sha256 f72f148f54442c6b056bf931dbc34f986fd0c3b0b6b5a58d013c9aef274d0c88 xlrd-2.0.1.tar.gz # Locally computed sha256 checksums sha256 b5a5dbce60265e305a815a6cb83ed07f24519d8ba644f2a307994488bced8815 LICENSE ================================================ FILE: package/python-xlrd/python-xlrd.mk ================================================ ################################################################################ # # python-xlrd # ################################################################################ PYTHON_XLRD_VERSION = 2.0.1 PYTHON_XLRD_SOURCE = xlrd-$(PYTHON_XLRD_VERSION).tar.gz PYTHON_XLRD_SITE = https://files.pythonhosted.org/packages/a6/b3/19a2540d21dea5f908304375bd43f5ed7a4c28a370dc9122c565423e6b44 PYTHON_XLRD_SETUP_TYPE = setuptools PYTHON_XLRD_LICENSE = BSD-3-Clause PYTHON_XLRD_LICENSE_FILES = LICENSE $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-xlsxwriter/Config.in ================================================ config BR2_PACKAGE_PYTHON_XLSXWRITER bool "python-xlsxwriter" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON3_ZLIB help A Python module for creating Excel XLSX files. https://github.com/jmcnamara/XlsxWriter ================================================ FILE: package/python-xlsxwriter/python-xlsxwriter.hash ================================================ # md5, sha256 from https://pypi.org/pypi/xlsxwriter/json md5 5f759dccf222e8f2a9924e90c4afaf84 XlsxWriter-3.0.1.tar.gz sha256 3f39bf581c55f3ad1438bc170d7f4c4649cee8b6b7a80d21f79508118eeea52a XlsxWriter-3.0.1.tar.gz # Locally computed sha256 checksums sha256 8fbb9b28ef0afac1c7d999102fd2634f347448d069c8c821976f3dbd2b3f812c LICENSE.txt ================================================ FILE: package/python-xlsxwriter/python-xlsxwriter.mk ================================================ ################################################################################ # # python-xlsxwriter # ################################################################################ PYTHON_XLSXWRITER_VERSION = 3.0.1 PYTHON_XLSXWRITER_SOURCE = XlsxWriter-$(PYTHON_XLSXWRITER_VERSION).tar.gz PYTHON_XLSXWRITER_SITE = https://files.pythonhosted.org/packages/5d/36/e943d07af9d26cc2f11861955dbf0031e891f77f3d55f70217fd6a0f4d9f PYTHON_XLSXWRITER_SETUP_TYPE = setuptools PYTHON_XLSXWRITER_LICENSE = BSD-2-Clause PYTHON_XLSXWRITER_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-xlutils/Config.in ================================================ 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 ================================================ FILE: package/python-xlutils/python-xlutils.hash ================================================ # 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 # Locally computed sha256 28907976ee86414cc720fafc966563b16eeb6a6aeb1da5f5ed40bac3a8808bcf xlutils/license.txt ================================================ FILE: package/python-xlutils/python-xlutils.mk ================================================ ################################################################################ # # 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)) ================================================ FILE: package/python-xlwt/Config.in ================================================ 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/ ================================================ FILE: package/python-xlwt/python-xlwt.hash ================================================ # md5, sha256 from https://pypi.org/pypi/xlwt/json md5 4b1ca8a3cef3261f4b4dc3f138e383a8 xlwt-1.3.0.tar.gz sha256 c59912717a9b28f1a3c2a98fd60741014b06b043936dcecbc113eaaada156c88 xlwt-1.3.0.tar.gz # Locally computed sha256 7f7b66f23fdac4f68fe3b342dd16b329d511017a901784a5ceb83f505f2de7c6 docs/licenses.rst ================================================ FILE: package/python-xlwt/python-xlwt.mk ================================================ ################################################################################ # # python-xlwt # ################################################################################ PYTHON_XLWT_VERSION = 1.3.0 PYTHON_XLWT_SOURCE = xlwt-$(PYTHON_XLWT_VERSION).tar.gz PYTHON_XLWT_SITE = https://files.pythonhosted.org/packages/06/97/56a6f56ce44578a69343449aa5a0d98eefe04085d69da539f3034e2cd5c1 PYTHON_XLWT_SETUP_TYPE = setuptools PYTHON_XLWT_LICENSE = BSD-3-Clause, BSD-4-Clause PYTHON_XLWT_LICENSE_FILES = docs/licenses.rst $(eval $(python-package)) ================================================ FILE: package/python-xmljson/Config.in ================================================ config BR2_PACKAGE_PYTHON_XMLJSON bool "python-xmljson" help Converts XML into JSON/Python dicts/arrays and vice-versa. https://github.com/sanand0/xmljson ================================================ FILE: package/python-xmljson/python-xmljson.hash ================================================ # md5, sha256 from https://pypi.org/pypi/xmljson/json md5 fc4df2390ad209928ee4311a3540cb17 xmljson-0.2.1.tar.gz sha256 b4158e66aa1e62ee39f7f80eb2fe4f767670ba3c0d5de9804420dc53427fdec8 xmljson-0.2.1.tar.gz # Locally computed sha256 checksums sha256 5ce42ba7d76e81428bdacef83658eb6213dbd1ad4a3b6d380bb6e0e8c73f0fb7 LICENSE ================================================ FILE: package/python-xmljson/python-xmljson.mk ================================================ ################################################################################ # # python-xmljson # ################################################################################ PYTHON_XMLJSON_VERSION = 0.2.1 PYTHON_XMLJSON_SOURCE = xmljson-$(PYTHON_XMLJSON_VERSION).tar.gz PYTHON_XMLJSON_SITE = https://files.pythonhosted.org/packages/e8/6f/d9f109ba19be510fd3098bcb72143c67ca6743cedb48ac75aef05ddfe960 PYTHON_XMLJSON_SETUP_TYPE = setuptools PYTHON_XMLJSON_LICENSE = MIT PYTHON_XMLJSON_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-xmltodict/Config.in ================================================ config BR2_PACKAGE_PYTHON_XMLTODICT bool "python-xmltodict" select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON # runtime select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 # runtime help Makes working with XML feel like you are working with JSON. https://github.com/martinblech/xmltodict ================================================ FILE: package/python-xmltodict/python-xmltodict.hash ================================================ # md5, sha256 from https://pypi.org/pypi/xmltodict/json md5 ddb2bd078cef4f7e3021a578034ad941 xmltodict-0.12.0.tar.gz sha256 50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21 xmltodict-0.12.0.tar.gz # Locally computed sha256 checksums sha256 d66d5eb8f83a0ba21d3dd04318b8817588e8764daabea852d1035e3f07ffda55 LICENSE ================================================ FILE: package/python-xmltodict/python-xmltodict.mk ================================================ ################################################################################ # # python-xmltodict # ################################################################################ PYTHON_XMLTODICT_VERSION = 0.12.0 PYTHON_XMLTODICT_SOURCE = xmltodict-$(PYTHON_XMLTODICT_VERSION).tar.gz PYTHON_XMLTODICT_SITE = https://files.pythonhosted.org/packages/58/40/0d783e14112e064127063fbf5d1fe1351723e5dfe9d6daad346a305f6c49 PYTHON_XMLTODICT_SETUP_TYPE = setuptools PYTHON_XMLTODICT_LICENSE = MIT PYTHON_XMLTODICT_LICENSE_FILES = LICENSE $(eval $(python-package)) ================================================ FILE: package/python-xmodem/Config.in ================================================ config BR2_PACKAGE_PYTHON_XMODEM bool "python-xmodem" help XMODEM protocol implementation. https://github.com/tehmaze/xmodem ================================================ FILE: package/python-xmodem/python-xmodem.hash ================================================ # md5, sha256 from https://pypi.org/pypi/xmodem/json md5 f876cb35caf276b61990377710a3b4c4 xmodem-0.4.6.tar.gz sha256 089737298f5738eabc43f2519efdc80b402693768f16383f7013b9e6f8f279d7 xmodem-0.4.6.tar.gz # locally calculated sha256 5ddb38acab95bb77e1e92e22830e358082d879d2dd59ba05577c47791edaa78e PKG-INFO ================================================ FILE: package/python-xmodem/python-xmodem.mk ================================================ ################################################################################ # # python-xmodem # ################################################################################ PYTHON_XMODEM_VERSION = 0.4.6 PYTHON_XMODEM_SOURCE = xmodem-$(PYTHON_XMODEM_VERSION).tar.gz PYTHON_XMODEM_SITE = https://files.pythonhosted.org/packages/29/5d/a20d7957f207fc4c4c143881ca7b9617ab7700c153012372ef0a934c7710 PYTHON_XMODEM_SETUP_TYPE = setuptools PYTHON_XMODEM_LICENSE = MIT PYTHON_XMODEM_LICENSE_FILES = PKG-INFO $(eval $(python-package)) ================================================ FILE: package/python-yarl/Config.in ================================================ config BR2_PACKAGE_PYTHON_YARL bool "python-yarl" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_MULTIDICT select BR2_PACKAGE_PYTHON_IDNA help Yet another URL library. http://yarl.readthedocs.io/ ================================================ FILE: package/python-yarl/python-yarl.hash ================================================ # md5, sha256 from https://pypi.org/pypi/yarl/json md5 acd3eb25a9c46b10a699a3bee5fb9777 yarl-1.7.2.tar.gz sha256 45399b46d60c253327a460e99856752009fcee5f5d3c80b2f7c0cae1c38d56dd yarl-1.7.2.tar.gz # Locally computed sha256 checksums sha256 56d6ac6c8105c0a51304c21db060e361af9a8ea0af9a75c239c28b5d13693838 LICENSE ================================================ FILE: package/python-yarl/python-yarl.mk ================================================ ################################################################################ # # python-yarl # ################################################################################ PYTHON_YARL_VERSION = 1.7.2 PYTHON_YARL_SOURCE = yarl-$(PYTHON_YARL_VERSION).tar.gz PYTHON_YARL_SITE = https://files.pythonhosted.org/packages/f6/da/46d1b3d69a9a0835dabf9d59c7eb0f1600599edd421a4c5a15ab09f527e0 PYTHON_YARL_LICENSE = Apache-2.0 PYTHON_YARL_LICENSE_FILES = LICENSE PYTHON_YARL_SETUP_TYPE = setuptools $(eval $(python-package)) ================================================ FILE: package/python-yatl/Config.in ================================================ config BR2_PACKAGE_PYTHON_YATL bool "python-yatl" help Yet Another Template Language. https://github.com/web2py/yatl ================================================ FILE: package/python-yatl/python-yatl.hash ================================================ # md5, sha256 from https://pypi.org/pypi/yatl/json md5 2954413784ced7e52513ae12b2183c88 yatl-20210326.1.tar.gz sha256 add729efdc2c9c06e0fcf640d97d4c500de611a38d5fdcc2ec12545d5ab14ca1 yatl-20210326.1.tar.gz ================================================ FILE: package/python-yatl/python-yatl.mk ================================================ ################################################################################ # # python-yatl # ################################################################################ PYTHON_YATL_VERSION = 20210326.1 PYTHON_YATL_SOURCE = yatl-$(PYTHON_YATL_VERSION).tar.gz PYTHON_YATL_SITE = https://files.pythonhosted.org/packages/9d/76/5906d641f452dc2ee56795e2152dafc1d212cd411d1cb893af29a7d06e33 PYTHON_YATL_SETUP_TYPE = setuptools PYTHON_YATL_LICENSE = BSD-3-Clause $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-yieldfrom/Config.in ================================================ config BR2_PACKAGE_PYTHON_YIELDFROM bool "python-yieldfrom" depends on BR2_PACKAGE_PYTHON help A backport of the `yield from` semantic from Python 3.x to Python 2.7. https://github.com/Nurdok/yieldfrom/ ================================================ FILE: package/python-yieldfrom/python-yieldfrom.hash ================================================ # md5, sha256 from https://pypi.org/pypi/yieldfrom/json md5 fd94120625ac1e69bb5946d5e63182da yieldfrom-1.0.5.tar.gz sha256 eb75e58641410f06083f85013a438f28bceaabfe5af9c3206d5049362c37aca0 yieldfrom-1.0.5.tar.gz # Locally computed sha256 checksums sha256 b3092d61cce29e25f3799285495095d220e5e015b88c1c70e1e72dae052f21e8 LICENSE ================================================ FILE: package/python-yieldfrom/python-yieldfrom.mk ================================================ ################################################################################ # # python-yieldfrom # ################################################################################ PYTHON_YIELDFROM_VERSION = 1.0.5 PYTHON_YIELDFROM_SOURCE = yieldfrom-$(PYTHON_YIELDFROM_VERSION).tar.gz PYTHON_YIELDFROM_SITE = https://files.pythonhosted.org/packages/4d/f9/395917f574ace618eb234bcbae8df3fabaa9624532d96d1fbd3a20678b1e PYTHON_YIELDFROM_SETUP_TYPE = setuptools PYTHON_YIELDFROM_LICENSE = MIT PYTHON_YIELDFROM_LICENSE_FILES = LICENSE $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/python-zc-lockfile/Config.in ================================================ config BR2_PACKAGE_PYTHON_ZC_LOCKFILE bool "python-zc-lockfile" help Basic inter-process locks. https://github.com/zopefoundation/zc.lockfile ================================================ FILE: package/python-zc-lockfile/python-zc-lockfile.hash ================================================ # md5, sha256 from https://pypi.org/pypi/zc.lockfile/json md5 3895445752278ddcc4578658c3c9a492 zc.lockfile-2.0.tar.gz sha256 307ad78227e48be260e64896ec8886edc7eae22d8ec53e4d528ab5537a83203b zc.lockfile-2.0.tar.gz # Locally computed sha256 checksums sha256 3e671db11df687516cc1db5b3d65e4aa383eaca3c20cea3faf53a0f7335d0a3c LICENSE.txt ================================================ FILE: package/python-zc-lockfile/python-zc-lockfile.mk ================================================ ################################################################################ # # python-zc-lockfile # ################################################################################ PYTHON_ZC_LOCKFILE_VERSION = 2.0 PYTHON_ZC_LOCKFILE_SOURCE = zc.lockfile-$(PYTHON_ZC_LOCKFILE_VERSION).tar.gz PYTHON_ZC_LOCKFILE_SITE = https://files.pythonhosted.org/packages/11/98/f21922d501ab29d62665e7460c94f5ed485fd9d8348c126697947643a881 PYTHON_ZC_LOCKFILE_SETUP_TYPE = setuptools PYTHON_ZC_LOCKFILE_LICENSE = ZPL-2.1 PYTHON_ZC_LOCKFILE_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python-zeroconf/Config.in ================================================ config BR2_PACKAGE_PYTHON_ZEROCONF bool "python-zeroconf" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_IFADDR # runtime help Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible). https://github.com/jstasiak/python-zeroconf ================================================ FILE: package/python-zeroconf/python-zeroconf.hash ================================================ # md5, sha256 from https://pypi.org/pypi/zeroconf/json md5 98e683a247fe9915a5d4845c38b37ff3 zeroconf-0.29.0.tar.gz sha256 7aefbb658b452b1fd7e51124364f938c6f5e42d6ea893fa2557bea8c06c540af zeroconf-0.29.0.tar.gz # Locally computed sha256 checksums sha256 bb117c0fbd7f57f64170b690285d7df07c2371b578e3b3cd3aa2e1155ef461a0 COPYING ================================================ FILE: package/python-zeroconf/python-zeroconf.mk ================================================ ################################################################################ # # python-zeroconf # ################################################################################ PYTHON_ZEROCONF_VERSION = 0.29.0 PYTHON_ZEROCONF_SOURCE = zeroconf-$(PYTHON_ZEROCONF_VERSION).tar.gz PYTHON_ZEROCONF_SITE = https://files.pythonhosted.org/packages/ca/77/eb6137997adc60811c6c46b28b00abac5c16daf14383f61d8a0180326b38 PYTHON_ZEROCONF_SETUP_TYPE = setuptools PYTHON_ZEROCONF_LICENSE = LGPL-2.1+ PYTHON_ZEROCONF_LICENSE_FILES = COPYING $(eval $(python-package)) ================================================ FILE: package/python-zope-interface/Config.in ================================================ config BR2_PACKAGE_PYTHON_ZOPE_INTERFACE bool "python-zope-interface" select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime help This package provides an implementation of "object interfaces" for Python. Interfaces are a mechanism for labeling objects as conforming to a given API or contract. So, this package can be considered as implementation of the Design By Contract methodology support in Python. https://zopeinterface.readthedocs.io/ ================================================ FILE: package/python-zope-interface/python-zope-interface.hash ================================================ # md5, sha256 from https://pypi.org/pypi/zope-interface/json md5 c58b31da83449631efb499de13c68c6a zope.interface-5.4.0.tar.gz sha256 5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e zope.interface-5.4.0.tar.gz # Locally computed sha256 checksums sha256 3e671db11df687516cc1db5b3d65e4aa383eaca3c20cea3faf53a0f7335d0a3c LICENSE.txt ================================================ FILE: package/python-zope-interface/python-zope-interface.mk ================================================ ################################################################################ # # python-zope-interface # ################################################################################ PYTHON_ZOPE_INTERFACE_VERSION = 5.4.0 PYTHON_ZOPE_INTERFACE_SOURCE = zope.interface-$(PYTHON_ZOPE_INTERFACE_VERSION).tar.gz PYTHON_ZOPE_INTERFACE_SITE = https://files.pythonhosted.org/packages/ae/58/e0877f58daa69126a5fb325d6df92b20b77431cd281e189c5ec42b722f58 PYTHON_ZOPE_INTERFACE_SETUP_TYPE = setuptools PYTHON_ZOPE_INTERFACE_LICENSE = ZPL-2.1 PYTHON_ZOPE_INTERFACE_LICENSE_FILES = LICENSE.txt $(eval $(python-package)) ================================================ FILE: package/python3/0001-Make-the-build-of-pyc-files-conditional.patch ================================================ From 322724e166d7ec0393aec577c12fdf6ef2b61e1d Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 22 Feb 2017 16:21:31 -0800 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 [ Andrey Smrinov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov --- Makefile.pre.in | 2 ++ configure.ac | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/Makefile.pre.in b/Makefile.pre.in index 77f91e72b1..0c809f3d8a 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1550,6 +1550,7 @@ libinstall: build_all $(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 \ -j0 -d $(LIBDEST) -f \ @@ -1577,6 +1578,7 @@ libinstall: build_all $(srcdir)/Modules/xxmodule.c $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \ -j0 -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 d60f05251a..1ee5a09588 100644 --- a/configure.ac +++ b/configure.ac @@ -1121,6 +1121,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.25.1 ================================================ FILE: package/python3/0002-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch ================================================ From 72e20220f3a592b3ab9f440fbe74efa9f9e82d49 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 with IPv6 support Signed-off-by: Vanya Sergeev --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 1ee5a09588..c2445edc88 100644 --- a/configure.ac +++ b/configure.ac @@ -4210,7 +4210,7 @@ fi AC_MSG_RESULT($ac_cv_buggy_getaddrinfo) -if test $have_getaddrinfo = no || test "$ac_cv_buggy_getaddrinfo" = yes +if test $have_getaddrinfo = no || test "$cross_compiling" != "yes" -a "$ac_cv_buggy_getaddrinfo" = yes then if test $ipv6 = yes then -- 2.25.1 ================================================ FILE: package/python3/0003-Add-infrastructure-to-disable-the-build-of-certain-e.patch ================================================ From df7c95b4ceecf390b961d843a556c470ac9080b2 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 22 Feb 2017 16:33:22 -0800 Subject: [PATCH] Add infrastructure to disable the build of certain extensions Some of the extensions part of the Python core have dependencies on external libraries (sqlite, tk, etc.) or are relatively big and not necessarly always useful (CJK codecs for example). By extensions, we mean part of Python modules that are written in C and therefore compiled to binary code. Therefore, we introduce a small infrastructure that allows to disable some of those extensions. This can be done inside the configure.ac by adding values to the DISABLED_EXTENSIONS variable (which is a word-separated list of extensions). The implementation works as follow : * configure.ac defines a DISABLED_EXTENSIONS variable, which is substituted (so that when Makefile.pre is generated from Makefile.pre.in, the value of the variable is substituted). For now, this DISABLED_EXTENSIONS variable is empty, later patches will use it. * Makefile.pre.in passes the DISABLED_EXTENSIONS value down to the variables passed in the environment when calling the setup.py script that actually builds and installs those extensions. * setup.py is modified so that the existing "disabled_module_list" is filled with those pre-disabled extensions listed in DISABLED_EXTENSIONS. Patch ported to python2.7 by Maxime Ripard , and then extended by Thomas Petazzoni . Signed-off-by: Thomas Petazzoni [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov --- Makefile.pre.in | 6 +++++- configure.ac | 2 ++ setup.py | 5 ++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 0c809f3d8a..7c3dde8dd4 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -216,6 +216,8 @@ FILEMODE= 644 # configure script arguments CONFIG_ARGS= @CONFIG_ARGS@ +# disabled extensions +DISABLED_EXTENSIONS= @DISABLED_EXTENSIONS@ # Subdirectories with code SRCDIRS= @SRCDIRS@ @@ -632,6 +634,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o esac; \ echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ + DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build"; \ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ @@ -1696,7 +1699,8 @@ libainstall: @DEF_MAKE_RULE@ python-config # Install the dynamically loadable modules # This goes into $(exec_prefix) sharedinstall: sharedmods - $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ + $(RUNSHARED) DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \ + $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ --prefix=$(prefix) \ --install-scripts=$(BINDIR) \ --install-platlib=$(DESTSHARED) \ diff --git a/configure.ac b/configure.ac index c2445edc88..73d66167de 100644 --- a/configure.ac +++ b/configure.ac @@ -3081,6 +3081,8 @@ LIBS="$withval $LIBS" PKG_PROG_PKG_CONFIG +AC_SUBST(DISABLED_EXTENSIONS) + # Check for use of the system expat library AC_MSG_CHECKING(for --with-system-expat) AC_ARG_WITH(system_expat, diff --git a/setup.py b/setup.py index 770866bca7..b6c829b3a5 100644 --- a/setup.py +++ b/setup.py @@ -44,7 +44,10 @@ from distutils.spawn import find_executable TEST_EXTENSIONS = True # This global variable is used to hold the list of modules to be disabled. -DISABLED_MODULE_LIST = [] +try: + DISABLED_MODULE_LIST = sysconfig.get_config_var("DISABLED_EXTENSIONS").split(" ") +except KeyError: + DISABLED_MODULE_LIST = list() def get_platform(): -- 2.25.1 ================================================ FILE: package/python3/0004-Adjust-library-header-paths-for-cross-compilation.patch ================================================ From 61af65485f1dade4aa08d0cf2b24082aeda24c51 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 When cross-compiling third-party extensions, the get_python_inc() or get_python_lib() can be called, to return the path to headers or libraries. However, they use the sys.prefix of the host Python, which returns incorrect paths when cross-compiling (paths pointing to host headers and libraries). In order to fix this, we introduce the _python_sysroot, _python_prefix and _python_exec_prefix variables, that allow to override these values, and get correct header/library paths when cross-compiling third-party Python modules. Signed-off-by: Thomas Petazzoni --- Lib/distutils/command/build_ext.py | 5 ++++- Lib/distutils/sysconfig.py | 15 +++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index 1a9bd1200f..3cf7d6746e 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -234,7 +234,10 @@ class build_ext(Command): if (sysconfig.get_config_var('Py_ENABLE_SHARED')): if not sysconfig.python_build: # building third party extensions - self.library_dirs.append(sysconfig.get_config_var('LIBDIR')) + libdir = sysconfig.get_config_var('LIBDIR') + if "_python_sysroot" in os.environ: + libdir = os.environ.get("_python_sysroot") + libdir + self.library_dirs.append(libdir) else: # building python standard extensions self.library_dirs.append('.') diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py index 37feae5df7..e9c3a27856 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -17,10 +17,17 @@ import sys from .errors import DistutilsPlatformError # These are needed in a couple of spots, so just compute them once. -PREFIX = os.path.normpath(sys.prefix) -EXEC_PREFIX = os.path.normpath(sys.exec_prefix) -BASE_PREFIX = os.path.normpath(sys.base_prefix) -BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) +if "_python_sysroot" in os.environ: + _sysroot=os.environ.get('_python_sysroot') + PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_prefix')) + EXEC_PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_exec_prefix')) + BASE_PREFIX = PREFIX + BASE_EXEC_PREFIX = EXEC_PREFIX +else: + PREFIX = os.path.normpath(sys.prefix) + EXEC_PREFIX = os.path.normpath(sys.exec_prefix) + BASE_PREFIX = os.path.normpath(sys.base_prefix) + BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) # Path to the base directory of the project. On Windows the binary may # live in project/PCbuild/win32 or project/PCbuild/amd64. -- 2.25.1 ================================================ FILE: package/python3/0005-Don-t-look-in-usr-lib-termcap-for-libraries.patch ================================================ From 60d71e37d167ea89445250be436170a6cfee84e7 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 Signed-off-by: Thomas Petazzoni --- setup.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/setup.py b/setup.py index b6c829b3a5..ec3ba60607 100644 --- a/setup.py +++ b/setup.py @@ -1041,12 +1041,9 @@ class PyBuildExt(build_ext): pass # Issue 7384: Already linked against curses or tinfo. elif curses_library: readline_libs.append(curses_library) - elif self.compiler.find_library_file(self.lib_dirs + - ['/usr/lib/termcap'], - 'termcap'): + elif self.compiler.find_library_file(self.lib_dirs, 'termcap'): readline_libs.append('termcap') self.add(Extension('readline', ['readline.c'], - library_dirs=['/usr/lib/termcap'], extra_link_args=readline_extra_link_args, libraries=readline_libs)) else: -- 2.25.1 ================================================ FILE: package/python3/0006-Don-t-add-multiarch-paths.patch ================================================ From f5933b8f973cd11698b52d535a10d0474e49f5a5 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 The add_multiarch_paths() function leads, in certain build environments, to the addition of host header paths to the CFLAGS, which is not appropriate for cross-compilation. This patch fixes that by simply removing the call to add_multiarch_paths() when we're cross-compiling. Investigation done by David . Signed-off-by: Thomas Petazzoni --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index ec3ba60607..e27620035c 100644 --- a/setup.py +++ b/setup.py @@ -734,10 +734,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') + self.add_multiarch_paths() # only change this for cross builds for 3.3, issues on Mageia if CROSS_COMPILING: self.add_cross_compiling_paths() - self.add_multiarch_paths() self.add_ldflags_cppflags() def init_inc_lib_dirs(self): -- 2.25.1 ================================================ FILE: package/python3/0007-Abort-on-failed-module-build.patch ================================================ From 188c0ebfdb71f5252fa7701013b8d1209f28aef7 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 When building a Python module fails, the setup.py script currently doesn't exit with an error, and simply continues. This is not a really nice behavior, so this patch changes setup.py to abort with an error, so that the build issue is clearly noticeable. Signed-off-by: Thomas Petazzoni --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index e27620035c..d3f0e663f2 100644 --- a/setup.py +++ b/setup.py @@ -524,6 +524,7 @@ class PyBuildExt(build_ext): print("Failed to build these modules:") print_three_column(failed) print() + sys.exit(1) if self.failed_on_import: failed = self.failed_on_import[:] -- 2.25.1 ================================================ FILE: package/python3/0008-Serial-ioctl-workaround.patch ================================================ From 9e6211b0d6d4610e5fb7d2c7e1152eb7c64d968b Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Wed, 23 Dec 2015 11:44:02 +0100 Subject: [PATCH] Serial ioctl() workaround The ioctls.h of some architectures (notably xtensa) references structs from linux/serial.h. Make sure to include this header as well. Also, undef TIOCTTYGSTRUCT that require reference to internal kernel tty_struct, but isn't actually referenced in modern kernels. Signed-off-by: Baruch Siach --- Modules/termios.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Modules/termios.c b/Modules/termios.c index 75e5e52320..eefbddfe69 100644 --- a/Modules/termios.c +++ b/Modules/termios.c @@ -15,7 +15,9 @@ #endif #include +#include #include +#undef TIOCTTYGSTRUCT /* HP-UX requires that this be included to pick up MDCD, MCTS, MDSR, * MDTR, MRI, and MRTS (apparently used internally by some things -- 2.25.1 ================================================ FILE: package/python3/0009-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch ================================================ From cb595a591c71e0bf7c63a3706b0be45ac6a642e3 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 cross-compilation The copy_scripts() method in distutils copies the scripts listed in the setup file and adjusts the first line to refer to the current Python interpreter. When cross-compiling, this means that the adjusted shebang refers to the host Python interpreter. This patch modifies copy_scripts() to preserve the shebang when cross-compilation is detected. Signed-off-by: Christophe Vu-Brugier --- Lib/distutils/command/build_scripts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/distutils/command/build_scripts.py b/Lib/distutils/command/build_scripts.py index ccc70e6465..d6d54195c1 100644 --- a/Lib/distutils/command/build_scripts.py +++ b/Lib/distutils/command/build_scripts.py @@ -91,7 +91,7 @@ class build_scripts(Command): adjust = True post_interp = match.group(1) or b'' - if adjust: + if adjust and not '_python_sysroot' in os.environ: log.info("copying and adjusting %s -> %s", script, self.build_dir) updated_files.append(outfile) -- 2.25.1 ================================================ FILE: package/python3/0010-Misc-python-config.sh.in-ensure-sed-invocations-only.patch ================================================ From eb51497e4b5799f8ab0277426d3e54414acb9d4b 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 beginning of strings The build/real prefix handling using sed breaks if build != real and the standard include / lib directories are used ($prefix/include and $prefix/lib). E.G. prefix_build="/usr", libdir="$prefix/lib", includedir="$prefix/include". If this gets installed with make DESTDIR="/foo" install, then we end up with prefix_real = prefix = "/foo/usr" as expected, but includedir="/foo/foo/usr/include" and libdir="/foo/foo/usr/lib" because of the double sed invocation (prefix is already expanded). Work around it by ensuring we only match the beginning of the string. Submitted upstream: http://bugs.python.org/issue22907 Signed-off-by: Peter Korsgaard --- Misc/python-config.sh.in | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Misc/python-config.sh.in b/Misc/python-config.sh.in index 2602fe24c0..a1bc3cd5f7 100644 --- a/Misc/python-config.sh.in +++ b/Misc/python-config.sh.in @@ -24,18 +24,19 @@ installed_prefix () echo $RESULT } +prefix_build="@prefix@" prefix_real=$(installed_prefix "$0") # Use sed to fix paths from their built-to locations to their installed-to # locations. Keep prefix & exec_prefix using their original values in case # they are referenced in other configure variables, to prevent double # substitution, issue #22140. -prefix="@prefix@" -exec_prefix="@exec_prefix@" +prefix=$(echo "$prefix_build" | sed "s#^$prefix_build#$prefix_real#") +exec_prefix=$(echo "$exec_prefix_build" | sed "s#^$exec_prefix_build#$prefix_real#") exec_prefix_real=${prefix_real} -includedir=$(echo "@includedir@" | sed "s#$prefix#$prefix_real#") -libdir=$(echo "@libdir@" | sed "s#$prefix#$prefix_real#") -CFLAGS=$(echo "@CFLAGS@" | sed "s#$prefix#$prefix_real#") +includedir=$(echo "@includedir@" | sed "s#^$prefix_build#$prefix_real#") +libdir=$(echo "@libdir@" | sed "s#^$prefix_build#$prefix_real#") +CFLAGS=$(echo "@CFLAGS@" | sed "s#^$prefix_build#$prefix_real#") VERSION="@VERSION@" LIBM="@LIBM@" LIBC="@LIBC@" @@ -49,7 +50,7 @@ OPT="@OPT@" PY_ENABLE_SHARED="@PY_ENABLE_SHARED@" LDVERSION="@LDVERSION@" LIBDEST=${prefix_real}/lib/python${VERSION} -LIBPL=$(echo "@LIBPL@" | sed "s#$prefix#$prefix_real#") +LIBPL=$(echo "@LIBPL@" | sed "s#^$prefix_build#$prefix_real#") SO="@EXT_SUFFIX@" PYTHONFRAMEWORK="@PYTHONFRAMEWORK@" INCDIR="-I$includedir/python${VERSION}${ABIFLAGS}" -- 2.25.1 ================================================ FILE: package/python3/0011-Override-system-locale-and-set-to-default-when-addin.patch ================================================ From e4ae670e3489544a49dabd1618c32fe73504a7ba 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 paths Forces the use of the default locale in the function add_gcc_paths, which is called when cross compiling to add the include and library paths. This is necessary because otherwise the gcc output is localized and the output parsing fails, which results in no paths added and detect_modules not able to find any system library (eg. libz, libssl, etc.) [Thomas: patch taken from https://bugs.python.org/issue23767.] Signed-off-by: Samuel Cabrero Signed-off-by: Thomas Petazzoni [james.hilliard1@gmail.com: adapt to python 3.9] Signed-off-by: James Hilliard --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index d3f0e663f2..926c16f58f 100644 --- a/setup.py +++ b/setup.py @@ -680,7 +680,7 @@ class PyBuildExt(build_ext): tmpfile = os.path.join(self.build_temp, 'ccpaths') if not os.path.exists(self.build_temp): os.makedirs(self.build_temp) - ret = run_command('%s -E -v - %s 1>/dev/null' % (cc, tmpfile)) + ret = run_command('LC_ALL=C %s -E -v - %s 1>/dev/null' % (cc, tmpfile)) is_gcc = False is_clang = False in_incdirs = False -- 2.25.1 ================================================ FILE: package/python3/0012-Add-importlib-fix-for-PEP-3147-issue.patch ================================================ From e2ea659eac1849db471d3c01a0d0af9d6fca2e9a Mon Sep 17 00:00:00 2001 From: Christophe Vu-Brugier Date: Wed, 22 Feb 2017 16:48:49 -0800 Subject: [PATCH] Add importlib fix for PEP 3147 issue Python 3 has a new standard for installing .pyc file, called PEP 3147. Unfortunately, this standard requires both the .py and .pyc files to be installed for a Python module to be found. This is quite annoying on space-constrained embedded systems, since the .py file is technically not required for execution. This patch changes cache_from_source() and source_from_cache() in importlib to get rid of the "__pycache__" directory. This effectively disables PEP 3147 for: * The python standard library * Packages built with distutils or setuptools * Packages built with automake that use the `py-compile` helper Signed-off-by: Christophe Vu-Brugier [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov --- Lib/importlib/_bootstrap_external.py | 44 ++++------------------------ 1 file changed, 5 insertions(+), 39 deletions(-) diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py index 25a3f8c0e0..2cb9a9aa52 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py @@ -373,8 +373,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. - """ if debug_override is not None: _warnings.warn('the debug_override parameter is deprecated; use ' @@ -386,10 +384,7 @@ def cache_from_source(path, debug_override=None, *, optimization=None): path = _os.fspath(path) 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') - 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 = '' @@ -426,46 +421,17 @@ def cache_from_source(path, debug_override=None, *, optimization=None): head.lstrip(path_separators), filename, ) - return _path_join(head, _PYCACHE, filename) + return _path_join(head, filename) def source_from_cache(path): """Given the path to a .pyc. file, return the path to its .py file. 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 file. """ - if sys.implementation.cache_tag is None: - raise NotImplementedError('sys.implementation.cache_tag is None') - path = _os.fspath(path) - head, pycache_filename = _path_split(path) - found_in_pycache_prefix = False - if sys.pycache_prefix is not None: - stripped_path = sys.pycache_prefix.rstrip(path_separators) - if head.startswith(stripped_path + path_sep): - head = head[len(stripped_path):] - found_in_pycache_prefix = True - if not found_in_pycache_prefix: - head, pycache = _path_split(head) - if pycache != _PYCACHE: - raise ValueError(f'{_PYCACHE} not bottom-level directory in ' - f'{path!r}') - dot_count = pycache_filename.count('.') - if dot_count not in {2, 3}: - raise ValueError(f'expected only 2 or 3 dots in {pycache_filename!r}') - elif dot_count == 3: - optimization = pycache_filename.rsplit('.', 2)[-2] - if not optimization.startswith(_OPT): - raise ValueError("optimization portion of filename does not start " - f"with {_OPT!r}") - opt_level = optimization[len(_OPT):] - if not opt_level.isalnum(): - raise ValueError(f"optimization level {optimization!r} is not an " - "alphanumeric value") - base_filename = pycache_filename.partition('.')[0] + head, filename = _path_split(path) + base_filename = filename.partition('.')[0] return _path_join(head, base_filename + SOURCE_SUFFIXES[0]) -- 2.25.1 ================================================ FILE: package/python3/0013-Add-an-option-to-disable-installation-of-test-module.patch ================================================ From 0337342d413d13f437fd089de91faee70a8bf3f9 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 22 Feb 2017 17:01:18 -0800 Subject: [PATCH] Add an option to disable installation of test modules The Python standard distribution comes with many test modules, that are not necessarly useful on embedded targets. Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov [james.hilliard1@gmail.com: adapt to python 3.9] Signed-off-by: James Hilliard --- Makefile.pre.in | 56 ++++++++++++++++++++++++++++++++----------------- configure.ac | 5 +++++ 2 files changed, 42 insertions(+), 19 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 7c3dde8dd4..204f293d53 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1406,8 +1406,29 @@ maninstall: altmaninstall # Install the library 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 \ + +LIBSUBDIRS= tkinter site-packages \ + asyncio \ + collections concurrent concurrent/futures encodings \ + email email/mime \ + ensurepip ensurepip/_bundled \ + html json http dbm xmlrpc \ + sqlite3 \ + logging csv wsgiref urllib \ + lib2to3 lib2to3/fixes lib2to3/pgen2 \ + ctypes ctypes/macholib \ + idlelib idlelib/Icons \ + distutils distutils/command $(XMLLIBSUBDIRS) \ + importlib \ + turtledemo \ + multiprocessing multiprocessing/dummy \ + unittest \ + venv venv/scripts venv/scripts/common venv/scripts/posix \ + curses pydoc_data \ + zoneinfo + +TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ + tkinter/test/test_ttk test \ test/audiodata \ test/capath test/data \ test/cjkencodings test/decimaltestdata \ @@ -1468,28 +1489,25 @@ LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \ test/test_importlib/zipdata02 \ test/test_zoneinfo test/test_zoneinfo/data \ test/ziptestdata \ - asyncio \ test/test_asyncio \ - collections concurrent concurrent/futures encodings \ - email email/mime test/test_email test/test_email/data \ - ensurepip ensurepip/_bundled \ - html json test/test_json http dbm xmlrpc \ - sqlite3 sqlite3/test \ - logging csv wsgiref urllib \ - lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \ + test/test_email test/test_email/data \ + test/test_json \ + sqlite3/test \ + lib2to3/tests \ lib2to3/tests/data lib2to3/tests/data/fixers \ lib2to3/tests/data/fixers/myfixes \ - ctypes ctypes/test ctypes/macholib \ - idlelib idlelib/Icons idlelib/idle_test \ - distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \ + ctypes/test \ + idlelib/idle_test \ + distutils/tests \ test/test_peg_generator \ + test/test_importlib test/test_importlib/builtin \ test/test_tools test/test_warnings test/test_warnings/data \ - turtledemo \ - multiprocessing multiprocessing/dummy \ - unittest unittest/test unittest/test/testmock \ - venv venv/scripts venv/scripts/common venv/scripts/posix \ - curses pydoc_data \ - zoneinfo + unittest/test unittest/test/testmock + +ifeq (@TEST_MODULES@,yes) +LIBSUBDIRS += $(TESTSUBDIRS) +endif + libinstall: build_all $(srcdir)/Modules/xxmodule.c @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ diff --git a/configure.ac b/configure.ac index 73d66167de..92e28d02ee 100644 --- a/configure.ac +++ b/configure.ac @@ -3358,6 +3358,11 @@ if test "$posix_threads" = "yes"; then AC_CHECK_FUNCS(pthread_getcpuclockid) fi +AC_SUBST(TEST_MODULES) + +AC_ARG_ENABLE(test-modules, + AS_HELP_STRING([--disable-test-modules], [disable test modules]), + [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ]) # Check for enable-ipv6 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified]) -- 2.25.1 ================================================ FILE: package/python3/0014-Add-an-option-to-disable-pydoc.patch ================================================ From a65e5d3caf8e076d531191164c23c6240461f675 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 22 Feb 2017 17:07:56 -0800 Subject: [PATCH] Add an option to disable pydoc It removes 0.5 MB of data from the target plus the pydoc script itself. Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov --- Makefile.pre.in | 8 +++++++- configure.ac | 6 ++++++ setup.py | 9 +++++++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 204f293d53..63e3df0470 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1374,7 +1374,9 @@ bininstall: altbininstall -rm -f $(DESTDIR)$(BINDIR)/idle3 (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3) -rm -f $(DESTDIR)$(BINDIR)/pydoc3 +ifeq (@PYDOC@,yes) (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3) +endif -rm -f $(DESTDIR)$(BINDIR)/2to3 (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3) if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \ @@ -1424,7 +1426,7 @@ LIBSUBDIRS= tkinter site-packages \ multiprocessing multiprocessing/dummy \ unittest \ venv venv/scripts venv/scripts/common venv/scripts/posix \ - curses pydoc_data \ + curses \ zoneinfo TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ @@ -1508,6 +1510,10 @@ ifeq (@TEST_MODULES@,yes) LIBSUBDIRS += $(TESTSUBDIRS) endif +ifeq (@PYDOC@,yes) +LIBSUBDIRS += pydoc_data +endif + libinstall: build_all $(srcdir)/Modules/xxmodule.c @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ diff --git a/configure.ac b/configure.ac index 92e28d02ee..174ed85a7c 100644 --- a/configure.ac +++ b/configure.ac @@ -3358,6 +3358,12 @@ if test "$posix_threads" = "yes"; then AC_CHECK_FUNCS(pthread_getcpuclockid) fi +AC_SUBST(PYDOC) + +AC_ARG_ENABLE(pydoc, + AS_HELP_STRING([--disable-pydoc], [disable pydoc]), + [ PYDOC="${enableval}" ], [ PYDOC=yes ]) + AC_SUBST(TEST_MODULES) AC_ARG_ENABLE(test-modules, diff --git a/setup.py b/setup.py index 926c16f58f..1fc5fac90c 100644 --- a/setup.py +++ b/setup.py @@ -2565,6 +2565,12 @@ def main(): # turn off warnings when deprecated modules are imported import warnings warnings.filterwarnings("ignore",category=DeprecationWarning) + + scripts = ['Tools/scripts/idle3', 'Tools/scripts/2to3', + 'Lib/smtpd.py'] + if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"): + scripts += [ 'Tools/scripts/pydoc3' ] + setup(# PyPI Metadata (PEP 301) name = "Python", version = sys.version.split()[0], @@ -2589,8 +2595,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 - scripts = ["Tools/scripts/pydoc3", "Tools/scripts/idle3", - "Tools/scripts/2to3"] + scripts = scripts ) # --install-platlib -- 2.25.1 ================================================ FILE: package/python3/0015-Add-an-option-to-disable-lib2to3.patch ================================================ From f034b1b0f33a7bd4dde23f0bc1fa8e00e3518c9d Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 22 Feb 2017 17:15:31 -0800 Subject: [PATCH] Add an option to disable lib2to3 lib2to3 is a library to convert Python 2.x code to Python 3.x. As such, it is probably not very useful on embedded system targets. Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov --- Makefile.pre.in | 16 ++++++++++++---- configure.ac | 6 ++++++ setup.py | 5 +++-- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 63e3df0470..8b7de12999 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1378,7 +1378,9 @@ ifeq (@PYDOC@,yes) (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3) endif -rm -f $(DESTDIR)$(BINDIR)/2to3 +ifeq (@LIB2TO3@,yes) (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3) +endif if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \ rm -f $(DESTDIR)$(BINDIR)/python3-32$(EXE); \ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-32$(EXE) python3-32$(EXE)) \ @@ -1417,7 +1419,6 @@ LIBSUBDIRS= tkinter site-packages \ html json http dbm xmlrpc \ sqlite3 \ logging csv wsgiref urllib \ - lib2to3 lib2to3/fixes lib2to3/pgen2 \ ctypes ctypes/macholib \ idlelib idlelib/Icons \ distutils distutils/command $(XMLLIBSUBDIRS) \ @@ -1495,9 +1496,6 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ test/test_email test/test_email/data \ test/test_json \ sqlite3/test \ - lib2to3/tests \ - lib2to3/tests/data lib2to3/tests/data/fixers \ - lib2to3/tests/data/fixers/myfixes \ ctypes/test \ idlelib/idle_test \ distutils/tests \ @@ -1506,6 +1504,14 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ test/test_tools test/test_warnings test/test_warnings/data \ unittest/test unittest/test/testmock +ifeq (@LIB2TO3@,yes) +LIBSUBDIRS += lib2to3 lib2to3/fixes lib2to3/pgen2 +TESTSUBDIRS += lib2to3/tests \ + lib2to3/tests/data \ + lib2to3/tests/data/fixers \ + lib2to3/tests/data/fixers/myfixes +endif + ifeq (@TEST_MODULES@,yes) LIBSUBDIRS += $(TESTSUBDIRS) endif @@ -1606,10 +1612,12 @@ ifeq (@PYC_BUILD@,yes) -j0 -d $(LIBDEST)/site-packages -f \ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages endif +ifeq (@LIB2TO3@,yes) -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt +endif # bpo-21536: Misc/python-config.sh is generated in the build directory # from $(srcdir)Misc/python-config.sh.in. diff --git a/configure.ac b/configure.ac index 174ed85a7c..f1f5e9a7b0 100644 --- a/configure.ac +++ b/configure.ac @@ -3370,6 +3370,12 @@ AC_ARG_ENABLE(test-modules, AS_HELP_STRING([--disable-test-modules], [disable test modules]), [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ]) +AC_SUBST(LIB2TO3) + +AC_ARG_ENABLE(lib2to3, + AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]), + [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ]) + # Check for enable-ipv6 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 1fc5fac90c..4063d7ffa5 100644 --- a/setup.py +++ b/setup.py @@ -2566,10 +2566,11 @@ def main(): import warnings warnings.filterwarnings("ignore",category=DeprecationWarning) - scripts = ['Tools/scripts/idle3', 'Tools/scripts/2to3', - 'Lib/smtpd.py'] + scripts = ['Tools/scripts/idle3', 'Lib/smtpd.py'] if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"): scripts += [ 'Tools/scripts/pydoc3' ] + if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"): + scripts += [ 'Tools/scripts/2to3' ] setup(# PyPI Metadata (PEP 301) name = "Python", -- 2.25.1 ================================================ FILE: package/python3/0016-Add-option-to-disable-the-sqlite3-module.patch ================================================ From dd2722dec08eb9c72c36313e93661eeca3ad64d8 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 22 Feb 2017 17:20:45 -0800 Subject: [PATCH] Add option to disable the sqlite3 module Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov --- Makefile.pre.in | 7 +++++-- configure.ac | 9 +++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 8b7de12999..d826d8ac4b 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1417,7 +1417,6 @@ LIBSUBDIRS= tkinter site-packages \ email email/mime \ ensurepip ensurepip/_bundled \ html json http dbm xmlrpc \ - sqlite3 \ logging csv wsgiref urllib \ ctypes ctypes/macholib \ idlelib idlelib/Icons \ @@ -1495,7 +1494,6 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ test/test_asyncio \ test/test_email test/test_email/data \ test/test_json \ - sqlite3/test \ ctypes/test \ idlelib/idle_test \ distutils/tests \ @@ -1512,6 +1510,11 @@ TESTSUBDIRS += lib2to3/tests \ lib2to3/tests/data/fixers/myfixes endif +ifeq (@SQLITE3@,yes) +LIBSUBDIRS += sqlite3 +TESTSUBDIRS += sqlite3/test +endif + ifeq (@TEST_MODULES@,yes) LIBSUBDIRS += $(TESTSUBDIRS) endif diff --git a/configure.ac b/configure.ac index f1f5e9a7b0..8b5c65974c 100644 --- a/configure.ac +++ b/configure.ac @@ -3358,6 +3358,15 @@ if test "$posix_threads" = "yes"; then AC_CHECK_FUNCS(pthread_getcpuclockid) fi +AC_SUBST(SQLITE3) +AC_ARG_ENABLE(sqlite3, + AS_HELP_STRING([--disable-sqlite3], [disable sqlite3]), + [ SQLITE3="${enableval}" ], [ SQLITE3=yes ]) + +if test "$SQLITE3" = "no" ; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3" +fi + AC_SUBST(PYDOC) AC_ARG_ENABLE(pydoc, -- 2.25.1 ================================================ FILE: package/python3/0017-Add-an-option-to-disable-the-tk-module.patch ================================================ From ad6b66b34f71ff6b60b3be5f6fd3e781cdeecd59 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 22 Feb 2017 17:23:42 -0800 Subject: [PATCH] Add an option to disable the tk module Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov --- Makefile.pre.in | 11 ++++++++--- configure.ac | 9 +++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index d826d8ac4b..dc84384680 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1411,7 +1411,7 @@ maninstall: altmaninstall # Install the library XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax -LIBSUBDIRS= tkinter site-packages \ +LIBSUBDIRS= site-packages \ asyncio \ collections concurrent concurrent/futures encodings \ email email/mime \ @@ -1429,8 +1429,7 @@ LIBSUBDIRS= tkinter site-packages \ curses \ zoneinfo -TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ - tkinter/test/test_ttk test \ +TESTSUBDIRS= test \ test/audiodata \ test/capath test/data \ test/cjkencodings test/decimaltestdata \ @@ -1502,6 +1501,12 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ test/test_tools test/test_warnings test/test_warnings/data \ unittest/test unittest/test/testmock +ifeq (@TK@,yes) +LIBSUBDIRS += tkinter +TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \ + tkinter/test/test_ttk +endif + ifeq (@LIB2TO3@,yes) LIBSUBDIRS += lib2to3 lib2to3/fixes lib2to3/pgen2 TESTSUBDIRS += lib2to3/tests \ diff --git a/configure.ac b/configure.ac index 8b5c65974c..4c72dae960 100644 --- a/configure.ac +++ b/configure.ac @@ -3367,6 +3367,15 @@ if test "$SQLITE3" = "no" ; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3" fi +AC_SUBST(TK) +AC_ARG_ENABLE(tk, + AS_HELP_STRING([--disable-tk], [disable tk]), + [ TK="${enableval}" ], [ TK=yes ]) + +if test "$TK" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter" +fi + AC_SUBST(PYDOC) AC_ARG_ENABLE(pydoc, -- 2.25.1 ================================================ FILE: package/python3/0018-Add-an-option-to-disable-the-curses-module.patch ================================================ From 962deb43f5f340a8472d432ae8e6d61186f9040e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 22 Feb 2017 17:31:51 -0800 Subject: [PATCH] Add an option to disable the curses module Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov --- Makefile.pre.in | 5 ++++- configure.ac | 9 +++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index dc84384680..2a82f3308f 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1426,7 +1426,6 @@ LIBSUBDIRS= site-packages \ multiprocessing multiprocessing/dummy \ unittest \ venv venv/scripts venv/scripts/common venv/scripts/posix \ - curses \ zoneinfo TESTSUBDIRS= test \ @@ -1507,6 +1506,10 @@ TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \ tkinter/test/test_ttk endif +ifeq (@CURSES@,yes) +LIBSUBDIRS += curses +endif + ifeq (@LIB2TO3@,yes) LIBSUBDIRS += lib2to3 lib2to3/fixes lib2to3/pgen2 TESTSUBDIRS += lib2to3/tests \ diff --git a/configure.ac b/configure.ac index 4c72dae960..acd98381a3 100644 --- a/configure.ac +++ b/configure.ac @@ -3376,6 +3376,15 @@ if test "$TK" = "no"; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter" fi +AC_SUBST(CURSES) +AC_ARG_ENABLE(curses, + AS_HELP_STRING([--disable-curses], [disable curses]), + [ CURSES="${enableval}" ], [ CURSES=yes ]) + +if test "$CURSES" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _curses _curses_panel" +fi + AC_SUBST(PYDOC) AC_ARG_ENABLE(pydoc, -- 2.25.1 ================================================ FILE: package/python3/0019-Add-an-option-to-disable-expat.patch ================================================ From 7e0e7dc25f50acd6922493ae620ee5cbf107a79a Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 22 Feb 2017 17:40:45 -0800 Subject: [PATCH] Add an option to disable expat This patch replaces the existing --with-system-expat option with a --with-expat={system,builtin,none} option, which allows to tell Python whether we want to use the system expat (already installed), the expat builtin the Python sources, or no expat at all (which disables the installation of XML modules). Signed-off-by: Thomas Petazzoni Signed-off-by: Samuel Martin [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov --- Makefile.pre.in | 6 +++++- configure.ac | 18 +++++++++++++----- setup.py | 2 +- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 2a82f3308f..e678c8817e 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1420,7 +1420,7 @@ LIBSUBDIRS= site-packages \ logging csv wsgiref urllib \ ctypes ctypes/macholib \ idlelib idlelib/Icons \ - distutils distutils/command $(XMLLIBSUBDIRS) \ + distutils distutils/command \ importlib \ turtledemo \ multiprocessing multiprocessing/dummy \ @@ -1510,6 +1510,10 @@ ifeq (@CURSES@,yes) LIBSUBDIRS += curses endif +ifeq (@EXPAT@,yes) +LIBSUBDIRS += $(XMLLIBSUBDIRS) +endif + ifeq (@LIB2TO3@,yes) LIBSUBDIRS += lib2to3 lib2to3/fixes lib2to3/pgen2 TESTSUBDIRS += lib2to3/tests \ diff --git a/configure.ac b/configure.ac index acd98381a3..9ef0ecd42f 100644 --- a/configure.ac +++ b/configure.ac @@ -3084,13 +3084,21 @@ PKG_PROG_PKG_CONFIG AC_SUBST(DISABLED_EXTENSIONS) # Check for use of the system expat library -AC_MSG_CHECKING(for --with-system-expat) -AC_ARG_WITH(system_expat, - AS_HELP_STRING([--with-system-expat], [build pyexpat module using an installed expat library, see Doc/library/pyexpat.rst (default is no)]), +AC_MSG_CHECKING(for --with-expat) +AC_ARG_WITH(expat, + AS_HELP_STRING([--with-expat], [select which expat version to use: system, builtin, none]), [], - [with_system_expat="no"]) + [with_expat="builtin"]) -AC_MSG_RESULT($with_system_expat) +AC_MSG_RESULT($with_expat) + +if test "$with_expat" != "none"; then + EXPAT=yes +else + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} pyexpat" + EXPAT=no +fi +AC_SUBST(EXPAT) # Check for use of the system libffi library AC_MSG_CHECKING(for --with-system-ffi) diff --git a/setup.py b/setup.py index 4063d7ffa5..211a160f29 100644 --- a/setup.py +++ b/setup.py @@ -1666,7 +1666,7 @@ class PyBuildExt(build_ext): # # More information on Expat can be found at www.libexpat.org. # - if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"): + if '--with-expat=system' in sysconfig.get_config_var("CONFIG_ARGS"): expat_inc = [] define_macros = [] extra_compile_args = [] -- 2.25.1 ================================================ FILE: package/python3/0020-Add-an-option-to-disable-CJK-codecs.patch ================================================ From 2c0d31bb91fc7f94283c3ab632925fbbe24e94d6 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 Signed-off-by: Thomas Petazzoni --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 9ef0ecd42f..18e6fd70a0 100644 --- a/configure.ac +++ b/configure.ac @@ -3375,6 +3375,12 @@ if test "$SQLITE3" = "no" ; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3" fi +AC_ARG_ENABLE(codecs-cjk, + AS_HELP_STRING([--disable-codecs-cjk], [disable CJK codecs]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk _codecs_iso2022" + fi]) + AC_SUBST(TK) AC_ARG_ENABLE(tk, AS_HELP_STRING([--disable-tk], [disable tk]), -- 2.25.1 ================================================ FILE: package/python3/0021-Add-an-option-to-disable-NIS.patch ================================================ From 2041d0c8dba87991edaf088b16e37b5189a3466d 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 NIS is not necessarily available in uClibc, so we need an option to not compile support for it. Signed-off-by: Thomas Petazzoni --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 18e6fd70a0..46d2a8131e 100644 --- a/configure.ac +++ b/configure.ac @@ -3381,6 +3381,12 @@ AC_ARG_ENABLE(codecs-cjk, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk _codecs_iso2022" fi]) +AC_ARG_ENABLE(nis, + AS_HELP_STRING([--disable-nis], [disable NIS]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" + fi]) + AC_SUBST(TK) AC_ARG_ENABLE(tk, AS_HELP_STRING([--disable-tk], [disable tk]), -- 2.25.1 ================================================ FILE: package/python3/0022-Add-an-option-to-disable-unicodedata.patch ================================================ From dd82a401ff6ba4ba116bf4d520e981a1808ed443 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 Signed-off-by: Thomas Petazzoni --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 46d2a8131e..5844e3b73f 100644 --- a/configure.ac +++ b/configure.ac @@ -3387,6 +3387,12 @@ AC_ARG_ENABLE(nis, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" fi]) +AC_ARG_ENABLE(unicodedata, + AS_HELP_STRING([--disable-unicodedata], [disable unicodedata]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} unicodedata" + fi]) + AC_SUBST(TK) AC_ARG_ENABLE(tk, AS_HELP_STRING([--disable-tk], [disable tk]), -- 2.25.1 ================================================ FILE: package/python3/0023-Add-an-option-to-disable-IDLE.patch ================================================ From f1b15834045d0641c43014b970721df066fa71f7 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 22 Feb 2017 17:45:14 -0800 Subject: [PATCH] Add an option to disable IDLE IDLE is an IDE embedded into python, written using Tk, so it doesn't make much sense to have it into our build. Signed-off-by: Maxime Ripard [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov --- Makefile.pre.in | 7 ++++++- configure.ac | 6 ++++++ setup.py | 4 +++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index e678c8817e..1148bd8708 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1372,7 +1372,9 @@ bininstall: altbininstall -rm -f $(DESTDIR)$(LIBPC)/python3-embed.pc (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)-embed.pc python3-embed.pc) -rm -f $(DESTDIR)$(BINDIR)/idle3 +ifeq (@IDLE@,yes) (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3) +endif -rm -f $(DESTDIR)$(BINDIR)/pydoc3 ifeq (@PYDOC@,yes) (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3) @@ -1419,7 +1421,6 @@ LIBSUBDIRS= site-packages \ html json http dbm xmlrpc \ logging csv wsgiref urllib \ ctypes ctypes/macholib \ - idlelib idlelib/Icons \ distutils distutils/command \ importlib \ turtledemo \ @@ -1514,6 +1515,10 @@ ifeq (@EXPAT@,yes) LIBSUBDIRS += $(XMLLIBSUBDIRS) endif +ifeq (@IDLE@,yes) +LIBSUBDIRS += idlelib idlelib/Icons +endif + ifeq (@LIB2TO3@,yes) LIBSUBDIRS += lib2to3 lib2to3/fixes lib2to3/pgen2 TESTSUBDIRS += lib2to3/tests \ diff --git a/configure.ac b/configure.ac index 5844e3b73f..7bd4623ccd 100644 --- a/configure.ac +++ b/configure.ac @@ -3429,6 +3429,12 @@ AC_ARG_ENABLE(lib2to3, AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]), [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ]) +AC_SUBST(IDLE) + +AC_ARG_ENABLE(idle3, + AS_HELP_STRING([--disable-idle3], [disable idle3 IDE]), + [ IDLE="${enableval}" ], [ IDLE=yes ]) + # Check for enable-ipv6 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 211a160f29..c4ee989ba3 100644 --- a/setup.py +++ b/setup.py @@ -2566,11 +2566,13 @@ def main(): import warnings warnings.filterwarnings("ignore",category=DeprecationWarning) - scripts = ['Tools/scripts/idle3', 'Lib/smtpd.py'] + scripts = [ 'Lib/smtpd.py'] if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"): scripts += [ 'Tools/scripts/pydoc3' ] if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"): scripts += [ 'Tools/scripts/2to3' ] + if not '--disable-idle3' in sysconfig.get_config_var("CONFIG_ARGS"): + scripts += [ 'Tools/scripts/idle3' ] setup(# PyPI Metadata (PEP 301) name = "Python", -- 2.25.1 ================================================ FILE: package/python3/0024-Add-an-option-to-disable-decimal.patch ================================================ From d5fe81cbd51da2a84ed89d1e4c80d921d4efce26 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 This patch replaces the existing --with-system-libmpdec option with a --with-libmpdec={system,builtin,none} option, which allows to tell Python whether we want to use the system libmpdec (already installed), the libmpdec builtin the Python sources, or no libmpdec at all. Signed-off-by: Thomas Petazzoni [aduskett@gmail.com: Update for python 3.7.0] Signed-off-by: Adam Duskett [james.hilliard1@gmail.com: adapt to python 3.9] Signed-off-by: James Hilliard --- configure.ac | 17 ++++++++++++----- setup.py | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 7bd4623ccd..e513ef6a20 100644 --- a/configure.ac +++ b/configure.ac @@ -3135,13 +3135,20 @@ fi AC_SUBST(LIBFFI_INCLUDEDIR) # Check for use of the system libmpdec library -AC_MSG_CHECKING(for --with-system-libmpdec) -AC_ARG_WITH(system_libmpdec, - AS_HELP_STRING([--with-system-libmpdec], [build _decimal module using an installed libmpdec library, see Doc/library/decimal.rst (default is no)]), +AC_MSG_CHECKING(for --with-libmpdec) +AC_ARG_WITH(libmpdec, + AS_HELP_STRING([--with-libmpdec], [select which libmpdec version to use: system, builtin, none]), [], - [with_system_libmpdec="no"]) + [with_libmpdec="builtin"]) -AC_MSG_RESULT($with_system_libmpdec) +AC_MSG_RESULT($with_libmpdec) +if test "$with_libmpdec" != "none"; then + MPDEC=yes +else + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _decimal" + MPDEC=no +fi +AC_SUBST(MPDEC) # Check whether _decimal should use a coroutine-local or thread-local context AC_MSG_CHECKING(for --with-decimal-contextvar) diff --git a/setup.py b/setup.py index c4ee989ba3..3d0c74bb7f 100644 --- a/setup.py +++ b/setup.py @@ -2195,7 +2195,7 @@ class PyBuildExt(build_ext): # Stefan Krah's _decimal module extra_compile_args = [] undef_macros = [] - if '--with-system-libmpdec' in sysconfig.get_config_var("CONFIG_ARGS"): + if '--with-libmpdec=system' in sysconfig.get_config_var("CONFIG_ARGS"): include_dirs = [] libraries = [':libmpdec.so.2'] sources = ['_decimal/_decimal.c'] -- 2.25.1 ================================================ FILE: package/python3/0025-Add-an-option-to-disable-the-ossaudiodev-module.patch ================================================ From 9bedc56d2a4b8856162650a11c1fcb6ec38f160b 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 Signed-off-by: Thomas Petazzoni --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index e513ef6a20..c07505e89e 100644 --- a/configure.ac +++ b/configure.ac @@ -3165,6 +3165,12 @@ fi AC_MSG_RESULT($with_decimal_contextvar) +AC_ARG_ENABLE(ossaudiodev, + AS_HELP_STRING([--disable-ossaudiodev], [disable OSSAUDIODEV]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ossaudiodev" + fi]) + # Check for support for loadable sqlite extensions AC_MSG_CHECKING(for --enable-loadable-sqlite-extensions) AC_ARG_ENABLE(loadable-sqlite-extensions, -- 2.25.1 ================================================ FILE: package/python3/0026-Add-an-option-to-disable-openssl-support.patch ================================================ From 90ed5c692b8b5596ca0b3ae1436276c8181251d8 Mon Sep 17 00:00:00 2001 From: Nicolas Cavallari Date: Wed, 22 Feb 2017 17:55:59 -0800 Subject: [PATCH] Add an option to disable openssl support. Signed-off-by: Nicolas Cavallari --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index c07505e89e..612e32faf5 100644 --- a/configure.ac +++ b/configure.ac @@ -3406,6 +3406,12 @@ AC_ARG_ENABLE(unicodedata, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} unicodedata" fi]) +AC_ARG_ENABLE(openssl, + AS_HELP_STRING([--disable-openssl], [disable openssl support]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ssl _ssl _hashlib" + fi]) + AC_SUBST(TK) AC_ARG_ENABLE(tk, AS_HELP_STRING([--disable-tk], [disable tk]), -- 2.25.1 ================================================ FILE: package/python3/0027-Add-an-option-to-disable-the-readline-module.patch ================================================ From 049e7a51e1ffd0d28d6608c707ab4b54e816d338 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 23:29:05 +0100 Subject: [PATCH] Add an option to disable the readline module Signed-off-by: Thomas Petazzoni --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 612e32faf5..2a6aaeff60 100644 --- a/configure.ac +++ b/configure.ac @@ -3412,6 +3412,12 @@ AC_ARG_ENABLE(openssl, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ssl _ssl _hashlib" fi]) +AC_ARG_ENABLE(readline, + AS_HELP_STRING([--disable-readline], [disable readline]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} readline" + fi]) + AC_SUBST(TK) AC_ARG_ENABLE(tk, AS_HELP_STRING([--disable-tk], [disable tk]), -- 2.25.1 ================================================ FILE: package/python3/0028-Add-options-to-disable-zlib-bzip2-and-xz-modules.patch ================================================ From 146730a04dfe98e3d7971ebf5410801ceae88e11 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 7 Mar 2017 23:31:11 +0100 Subject: [PATCH] Add options to disable zlib, bzip2 and xz modules Signed-off-by: Thomas Petazzoni --- configure.ac | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/configure.ac b/configure.ac index 2a6aaeff60..21479bbd7d 100644 --- a/configure.ac +++ b/configure.ac @@ -3418,6 +3418,24 @@ AC_ARG_ENABLE(readline, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} readline" fi]) +AC_ARG_ENABLE(bzip2, + AS_HELP_STRING([--disable-bzip2], [disable bzip2]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _bz2" + fi]) + +AC_ARG_ENABLE(zlib, + AS_HELP_STRING([--disable-zlib], [disable zlib]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} zlib" + fi]) + +AC_ARG_ENABLE(xz, + AS_HELP_STRING([--disable-xz], [disable xz]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _lzma" + fi]) + AC_SUBST(TK) AC_ARG_ENABLE(tk, AS_HELP_STRING([--disable-tk], [disable tk]), -- 2.25.1 ================================================ FILE: package/python3/0029-python-config.sh-don-t-reassign-prefix.patch ================================================ From 106d9378c61e7fa9cad0a63ba068668d54cd11b8 Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Fri, 6 Oct 2017 09:54:15 -0500 Subject: [PATCH] python-config.sh: don't reassign ${prefix} When prefix is set to a path like /usr during crossbuild the sed operations end up executing twice, once for the prefix reassignment and another for includedir if it is set as a string including the ${prefix} variable. This results in an issue when the build directory is under /usr. This patch updates the remaining location which uses the prefix variable to also sed and update to use the real path. Upstream bug report: https://bugs.python.org/issue31713 Buildroot bug: https://bugs.busybox.net/show_bug.cgi?id=10361 Fixes failures like the following: dbus-python-1.2.4 | NOK | http://autobuild.buildroot.net/results/758858efa97b6273c1b470513f5492258a6d8853 Signed-off-by: Matthew Weber --- Misc/python-config.sh.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Misc/python-config.sh.in b/Misc/python-config.sh.in index a1bc3cd5f7..164d2d3603 100644 --- a/Misc/python-config.sh.in +++ b/Misc/python-config.sh.in @@ -31,7 +31,7 @@ prefix_real=$(installed_prefix "$0") # locations. Keep prefix & exec_prefix using their original values in case # they are referenced in other configure variables, to prevent double # substitution, issue #22140. -prefix=$(echo "$prefix_build" | sed "s#^$prefix_build#$prefix_real#") +prefix=$prefix_build exec_prefix=$(echo "$exec_prefix_build" | sed "s#^$exec_prefix_build#$prefix_real#") exec_prefix_real=${prefix_real} includedir=$(echo "@includedir@" | sed "s#^$prefix_build#$prefix_real#") @@ -49,7 +49,7 @@ LDLIBRARY="@LDLIBRARY@" OPT="@OPT@" PY_ENABLE_SHARED="@PY_ENABLE_SHARED@" LDVERSION="@LDVERSION@" -LIBDEST=${prefix_real}/lib/python${VERSION} +LIBDEST=$( echo "${prefix}/lib/python${VERSION}" | sed "s#^$prefix_build#$prefix_real#") LIBPL=$(echo "@LIBPL@" | sed "s#^$prefix_build#$prefix_real#") SO="@EXT_SUFFIX@" PYTHONFRAMEWORK="@PYTHONFRAMEWORK@" -- 2.25.1 ================================================ FILE: package/python3/0030-Fix-cross-compiling-the-uuid-module.patch ================================================ From d7b90b157eddefbd0ed59e35c90b083c0c03b644 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Fri, 20 Jul 2018 10:17:39 -0400 Subject: [PATCH] Fix cross compiling the uuid module Python 3.7 has a new _uuid module, however, the include directory search path for uuid.h is hardcoded to /usr/include/uuid, which should not be used when cross-compiling. To fix this, use the same solution as the one used by the NIS detection: append "uuid" to each of the include directories in "inc_dirs", instead of hardcoding /usr/include/uuid. Signed-off-by: Adam Duskett [Thomas: drop STAGING_DIR based solution, use a solution similar to the one used for the NIS detection.] Signed-off-by: Thomas Petazzoni --- setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 3d0c74bb7f..c7be85f352 100644 --- a/setup.py +++ b/setup.py @@ -1764,7 +1764,8 @@ class PyBuildExt(build_ext): def detect_uuid(self): # Build the _uuid module if possible - uuid_incs = find_file("uuid.h", self.inc_dirs, ["/usr/include/uuid"]) + uuid_incs = find_file("uuid.h", self.inc_dirs, + [os.path.join(inc_dir, 'uuid') for inc_dir in self.inc_dirs]) if uuid_incs is not None: if self.compiler.find_library_file(self.lib_dirs, 'uuid'): uuid_libs = ['uuid'] -- 2.25.1 ================================================ FILE: package/python3/0031-Add-an-option-to-disable-uuid-module.patch ================================================ From 3bb693408eda77dda145ec5fecee56ea73031e9f Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 18 Aug 2018 10:54:56 +0200 Subject: [PATCH] Add an option to disable uuid module Signed-off-by: Thomas Petazzoni --- configure.ac | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/configure.ac b/configure.ac index 21479bbd7d..615c16aced 100644 --- a/configure.ac +++ b/configure.ac @@ -3454,6 +3454,15 @@ if test "$CURSES" = "no"; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _curses _curses_panel" fi +AC_SUBST(UUID) +AC_ARG_ENABLE(uuid, + AS_HELP_STRING([--disable-uuid], [disable uuid]), + [ UUID="${enableval}" ], [ UUID=yes ]) + +if test "$UUID" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _uuid" +fi + AC_SUBST(PYDOC) AC_ARG_ENABLE(pydoc, -- 2.25.1 ================================================ FILE: package/python3/0032-fix-building-on-older-distributions.patch ================================================ From 94c62f96ca61f1a28124c837d7ec5ed0b9ae8786 Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Thu, 16 Aug 2018 14:52:37 -0700 Subject: [PATCH] fix building on older distributions Python > 3.6.3 calls os.replace in the update_file.py script, during the regen-importlib phase of the build process. According to Doc/whatsnew/3.3.rst line 1631, os.replace acts in the same way as os.rename, however, it is now cross-platform compatible for Windows. Because BuildRoot is guaranteed only to be built in POSIX environment, it is safe to change os.replace back to os.rename. This change fixes building on older systems such as CentOS7, that only come with python 2. Signed-off-by: Adam Duskett --- Tools/scripts/update_file.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tools/scripts/update_file.py b/Tools/scripts/update_file.py index 224585c69b..ef458c0c63 100644 --- a/Tools/scripts/update_file.py +++ b/Tools/scripts/update_file.py @@ -16,7 +16,7 @@ def main(old_path, new_path): with open(new_path, 'rb') as f: new_contents = f.read() if old_contents != new_contents: - os.replace(new_path, old_path) + os.rename(new_path, old_path) else: os.unlink(new_path) -- 2.25.1 ================================================ FILE: package/python3/0033-configure.ac-fixup-CC-print-multiarch-output-for-mus.patch ================================================ From edc0757c56090364e0a95aabfa9f645a16a27569 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Fri, 2 Aug 2019 15:53:16 +0200 Subject: [PATCH] configure.ac: fixup $CC --print-multiarch output for musl/uclibc GCC 8+ toolchains GCC commit 6834b83784dcf0364eb820e8 (multiarch support for non-glibc linux systems), which is part of GCC 8+, changed the multiarch logic to use $arch-linux-musl / $arch-linux-uclibc rather than $arch-linux-gnu. This then causes the python3 configure script to error out: checking for the platform triplet based on compiler characteristics... powerpc-linux-gnu configure: error: internal configure error for the platform triplet, please file a bug report http://autobuild.buildroot.net/results/cb4/cb49c539501342e45cbe5ade82e588fcdf51f05b As it requires that the --print-multiarch output (if not empty) matches the deduced triplet (which always uses -linux-gnu). It isn't quite clear why --print-multiarch returns something for a non-multiarch toolchain on some architectures (E.G. PowerPC), but as a workaround, rewrite the --print-multiarch output to match older GCC versions to keep the configure script happy. Signed-off-by: Peter Korsgaard --- configure.ac | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 615c16aced..241298e6cf 100644 --- a/configure.ac +++ b/configure.ac @@ -727,7 +727,9 @@ then fi -MULTIARCH=$($CC --print-multiarch 2>/dev/null) +# GCC 8+ returns $arch-linux-{musl,uclibc} for musl/uClibc based +# toolchains confusing python. Fix that up +MULTIARCH=$($CC --print-multiarch 2>/dev/null | sed -E 's/-linux-(musl|uclibc)*$/-linux-gnu/') AC_SUBST(MULTIARCH) AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) -- 2.25.1 ================================================ FILE: package/python3/0034-Add-an-option-to-disable-the-berkeleydb-module.patch ================================================ From cf4d7fd9f7cb6c1ced32ee323b2b5755640051b7 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sat, 11 Apr 2020 22:01:40 +0200 Subject: [PATCH] Add an option to disable the berkeleydb module Signed-off-by: Bernd Kuhls --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 72c1d86e82..8c3912d237 100644 --- a/configure.ac +++ b/configure.ac @@ -3465,6 +3465,12 @@ if test "$UUID" = "no"; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _uuid" fi +AC_ARG_ENABLE(berkeleydb, + AS_HELP_STRING([--disable-berkeleydb], [disable berkeleydb]), + [ if test "$enableval" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _dbm" + fi]) + AC_SUBST(PYDOC) AC_ARG_ENABLE(pydoc, -- 2.25.0 ================================================ FILE: package/python3/0035-lib-crypt-uClibc-ng-doesn-t-set-errno-when-encryptio.patch ================================================ From 3c83eedcc2df3ecf6c4a17953ca24dff60c1378e Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Thu, 12 Nov 2020 00:16:18 +0100 Subject: [PATCH] lib/crypt: uClibc-ng doesn't set errno when encryption method is not available Since commit [1] in cpython, an exception is raised when an encryption method is not available. This eception is handled only if errno is set to EINVAL by crypt() but uClibc-ng doesn't set errno in crypt() [2]. Fixes: https://gitlab.com/buildroot.org/buildroot/-/jobs/830981961 https://gitlab.com/buildroot.org/buildroot/-/jobs/830981979 [1] https://github.com/python/cpython/commit/0d3fe8ae4961bf551e7d5e42559e2ede1a08fd7c [2] https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/tree/libcrypt/crypt.c?h=v1.0.36#n29 Signed-off-by: Romain Naour --- Lib/crypt.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Lib/crypt.py b/Lib/crypt.py index 33dbc46bb3..4692a5270c 100644 --- a/Lib/crypt.py +++ b/Lib/crypt.py @@ -94,7 +94,9 @@ def _add_method(name, *args, rounds=None): result = crypt('', salt) except OSError as e: # Not all libc libraries support all encryption methods. - if e.errno == errno.EINVAL: + # Not all libc libraries set errno when encryption method is not + # available. + if e.errno == errno.EINVAL or e.errno == 0: return False raise if result and len(result) == method.total_size: -- 2.25.4 ================================================ FILE: package/python3/0036-Fix-dictionary-iteration-error-in-_ExecutorManagerTh.patch ================================================ From 331966be70c371b268a4fcce9e97280cd869f137 Mon Sep 17 00:00:00 2001 From: Jakub Kulik Date: Mon, 15 Mar 2021 08:49:28 +0100 Subject: [PATCH] Fix dictionary iteration error in _ExecutorManagerThread [Thomas: Taken from upstream pull request https://github.com/python/cpython/pull/24868, which is aimed at fixing https://bugs.python.org/issue43498] Signed-off-by: Thomas Petazzoni --- Lib/concurrent/futures/process.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/concurrent/futures/process.py b/Lib/concurrent/futures/process.py index 90bc98bf2ec..e3b36dff572 100644 --- a/Lib/concurrent/futures/process.py +++ b/Lib/concurrent/futures/process.py @@ -373,7 +373,7 @@ class _ExecutorManagerThread(threading.Thread): assert not self.thread_wakeup._closed wakeup_reader = self.thread_wakeup._reader readers = [result_reader, wakeup_reader] - worker_sentinels = [p.sentinel for p in self.processes.values()] + worker_sentinels = [p.sentinel for p in self.processes.copy().values()] ready = mp.connection.wait(readers + worker_sentinels) cause = None -- 2.31.1 ================================================ FILE: package/python3/Config.in ================================================ comment "python3 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 config BR2_PACKAGE_PYTHON3 bool "python3" depends on !BR2_PACKAGE_PYTHON depends on BR2_USE_WCHAR # uses fork() depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_THREADS # libffi depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBFFI select BR2_PACKAGE_BLUEZ5_UTILS_HEADERS if BR2_PACKAGE_BLUEZ5_UTILS help The python language interpreter. http://www.python.org/ if BR2_PACKAGE_PYTHON3 choice prompt "python3 module format to install" default BR2_PACKAGE_PYTHON3_PYC_ONLY help Select Python module format to install on target (py, pyc or both) config BR2_PACKAGE_PYTHON3_PY_ONLY bool ".py sources only" config BR2_PACKAGE_PYTHON3_PYC_ONLY bool ".pyc compiled sources only" config BR2_PACKAGE_PYTHON3_PY_PYC bool ".py sources and .pyc compiled" endchoice menu "core python3 modules" comment "The following modules are unusual or require extra libraries" config BR2_PACKAGE_PYTHON3_2TO3 bool "2to3 module" help code translation from python 2 to 3 config BR2_PACKAGE_PYTHON3_BERKELEYDB bool "berkeleydb" select BR2_PACKAGE_BERKELEYDB help berkeleydb module for Python3 config BR2_PACKAGE_PYTHON3_BZIP2 bool "bz2 module" select BR2_PACKAGE_BZIP2 help bzip2 module for Python3 config BR2_PACKAGE_PYTHON3_CODECSCJK bool "codecscjk module" help Chinese/Japanese/Korean codecs module for Python (large). config BR2_PACKAGE_PYTHON3_CURSES bool "curses module" select BR2_PACKAGE_NCURSES help curses module for Python3. config BR2_PACKAGE_PYTHON3_DECIMAL bool "decimal module" select BR2_PACKAGE_MPDECIMAL help decimal module for Python3. config BR2_PACKAGE_PYTHON3_OSSAUDIODEV bool "ossaudiodev module" help ossaudiodev module for Python3. config BR2_PACKAGE_PYTHON3_READLINE bool "readline" select BR2_PACKAGE_READLINE help readline module for Python3 (required for command-line editing in the Python shell). config BR2_PACKAGE_PYTHON3_SSL bool "ssl" select BR2_PACKAGE_OPENSSL help _ssl module for Python3 (required for https in urllib etc). config BR2_PACKAGE_PYTHON3_UNICODEDATA bool "unicodedata module" default y help Unicode character database (used by stringprep module) (large). config BR2_PACKAGE_PYTHON3_SQLITE bool "sqlite module" select BR2_PACKAGE_SQLITE help SQLite database support config BR2_PACKAGE_PYTHON3_PYEXPAT bool "xml module" select BR2_PACKAGE_EXPAT help pyexpat and xml libraries for Python3. config BR2_PACKAGE_PYTHON3_XZ bool "xz module" select BR2_PACKAGE_XZ help xz (a.k.a lzma) module for Python3 config BR2_PACKAGE_PYTHON3_ZLIB bool "zlib module" select BR2_PACKAGE_ZLIB help zlib support in Python3 endmenu endif ================================================ FILE: package/python3/Config.in.host ================================================ config BR2_PACKAGE_HOST_PYTHON3 bool "host python3" help The python language interpreter. Host package. http://www.python.org/ if BR2_PACKAGE_HOST_PYTHON3 config BR2_PACKAGE_HOST_PYTHON3_BZIP2 bool "bzip2" help bz2 module for host Python3. config BR2_PACKAGE_HOST_PYTHON3_SSL bool "ssl" select BR2_PACKAGE_HOST_OPENSSL help _ssl module for host Python3. endif ================================================ FILE: package/python3/python3.hash ================================================ # From https://www.python.org/downloads/release/python-397/ md5 fddb060b483bc01850a3f412eea1d954 Python-3.9.7.tar.xz # Locally computed sha256 f8145616e68c00041d1a6399b76387390388f8359581abc24432bb969b5e3c57 Python-3.9.7.tar.xz sha256 599826df92bfdcd2702eac691072498bb096c55af04ee984cf90f70ed77b5a70 LICENSE ================================================ FILE: package/python3/python3.mk ================================================ ################################################################################ # # python3 # ################################################################################ PYTHON3_VERSION_MAJOR = 3.9 PYTHON3_VERSION = $(PYTHON3_VERSION_MAJOR).7 PYTHON3_SOURCE = Python-$(PYTHON3_VERSION).tar.xz PYTHON3_SITE = https://python.org/ftp/python/$(PYTHON3_VERSION) PYTHON3_LICENSE = Python-2.0, others PYTHON3_LICENSE_FILES = LICENSE PYTHON3_CPE_ID_VENDOR = python PYTHON3_CPE_ID_PRODUCT = python # This host Python is installed in $(HOST_DIR), as it is needed when # cross-compiling third-party Python modules. HOST_PYTHON3_CONF_OPTS += \ --without-ensurepip \ --without-cxx-main \ --disable-sqlite3 \ --disable-tk \ --with-expat=system \ --disable-curses \ --disable-codecs-cjk \ --disable-nis \ --enable-unicodedata \ --disable-test-modules \ --disable-idle3 \ --disable-ossaudiodev # Make sure that LD_LIBRARY_PATH overrides -rpath. # This is needed because libpython may be installed at the same time that # python is called. # Make python believe we don't have 'hg', so that it doesn't try to # communicate over the network during the build. HOST_PYTHON3_CONF_ENV += \ LDFLAGS="$(HOST_LDFLAGS) -Wl,--enable-new-dtags" \ ac_cv_prog_HAS_HG=/bin/false PYTHON3_DEPENDENCIES = host-python3 libffi HOST_PYTHON3_DEPENDENCIES = host-autoconf-archive host-expat host-zlib host-libffi ifeq ($(BR2_PACKAGE_HOST_PYTHON3_BZIP2),y) HOST_PYTHON3_DEPENDENCIES += host-bzip2 else HOST_PYTHON3_CONF_OPTS += --disable-bzip2 endif ifeq ($(BR2_PACKAGE_HOST_PYTHON3_SSL),y) HOST_PYTHON3_DEPENDENCIES += host-openssl else HOST_PYTHON3_CONF_OPTS += --disable-openssl endif PYTHON3_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_PYTHON3_2TO3),y) PYTHON3_CONF_OPTS += --enable-lib2to3 else PYTHON3_CONF_OPTS += --disable-lib2to3 endif ifeq ($(BR2_PACKAGE_PYTHON3_BERKELEYDB),y) PYTHON3_DEPENDENCIES += berkeleydb else PYTHON3_CONF_OPTS += --disable-berkeleydb endif ifeq ($(BR2_PACKAGE_PYTHON3_READLINE),y) PYTHON3_DEPENDENCIES += readline else PYTHON3_CONF_OPTS += --disable-readline endif ifeq ($(BR2_PACKAGE_PYTHON3_CURSES),y) PYTHON3_DEPENDENCIES += ncurses else PYTHON3_CONF_OPTS += --disable-curses endif ifeq ($(BR2_PACKAGE_PYTHON3_DECIMAL),y) PYTHON3_DEPENDENCIES += mpdecimal PYTHON3_CONF_OPTS += --with-libmpdec=system else PYTHON3_CONF_OPTS += --with-libmpdec=none endif ifeq ($(BR2_PACKAGE_PYTHON3_PYEXPAT),y) PYTHON3_DEPENDENCIES += expat PYTHON3_CONF_OPTS += --with-expat=system else PYTHON3_CONF_OPTS += --with-expat=none endif ifeq ($(BR2_PACKAGE_PYTHON3_SQLITE),y) PYTHON3_DEPENDENCIES += sqlite else PYTHON3_CONF_OPTS += --disable-sqlite3 endif ifeq ($(BR2_PACKAGE_PYTHON3_SSL),y) PYTHON3_DEPENDENCIES += openssl else PYTHON3_CONF_OPTS += --disable-openssl endif ifneq ($(BR2_PACKAGE_PYTHON3_CODECSCJK),y) PYTHON3_CONF_OPTS += --disable-codecs-cjk endif ifneq ($(BR2_PACKAGE_PYTHON3_UNICODEDATA),y) PYTHON3_CONF_OPTS += --disable-unicodedata endif # Disable auto-detection of uuid.h (util-linux) # which would add _uuid module support, instead # default to the pure python implementation PYTHON3_CONF_OPTS += --disable-uuid ifeq ($(BR2_PACKAGE_PYTHON3_BZIP2),y) PYTHON3_DEPENDENCIES += bzip2 else PYTHON3_CONF_OPTS += --disable-bzip2 endif ifeq ($(BR2_PACKAGE_PYTHON3_XZ),y) PYTHON3_DEPENDENCIES += xz else PYTHON3_CONF_OPTS += --disable-xz endif ifeq ($(BR2_PACKAGE_PYTHON3_ZLIB),y) PYTHON3_DEPENDENCIES += zlib else PYTHON3_CONF_OPTS += --disable-zlib endif ifeq ($(BR2_PACKAGE_PYTHON3_OSSAUDIODEV),y) PYTHON3_CONF_OPTS += --enable-ossaudiodev else PYTHON3_CONF_OPTS += --disable-ossaudiodev endif # Make python believe we don't have 'hg', so that it doesn't try to # communicate over the network during the build. PYTHON3_CONF_ENV += \ ac_cv_have_long_long_format=yes \ ac_cv_file__dev_ptmx=yes \ ac_cv_file__dev_ptc=yes \ ac_cv_working_tzset=yes \ ac_cv_prog_HAS_HG=/bin/false # GCC is always compliant with IEEE754 ifeq ($(BR2_ENDIAN),"LITTLE") PYTHON3_CONF_ENV += ac_cv_little_endian_double=yes else PYTHON3_CONF_ENV += ac_cv_big_endian_double=yes endif # uClibc is known to have a broken wcsftime() implementation, so tell # Python 3 to fall back to strftime() instead. ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) PYTHON3_CONF_ENV += ac_cv_func_wcsftime=no endif ifeq ($(BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL),y) PYTHON3_DEPENDENCIES += gettext endif PYTHON3_CONF_OPTS += \ --without-ensurepip \ --without-cxx-main \ --with-system-ffi \ --disable-pydoc \ --disable-test-modules \ --disable-tk \ --disable-nis \ --disable-idle3 \ --disable-pyc-build # # Some of CPython's source code is generated using Python interpreter # and some helper tools such as "Programs/_freeze_importlib" or # "Parser/pgen" (look for regen-* targets in Makefile.pre.in for more # info). Normally CPython codebase ships with those files # pre-generated, so just regular "make" with no additional steps # should be sufficient for a succesfull build, however due to # Buildroot's "Add importlib fix for PEP 3147 issue" custom patch we # end up modifying "Lib/importlib/_bootstrap_external.py" which means # we have to do "regen-importlib" step before building CPython # (Importlib is a builtin module that needs to be "frozen"/converted # to a C array of bytecode using "Programs/_freeze_importlib") # # To achive that we add pre-build steps to host-python3 as well as # python3 that execute "regen-importlib" target. # # Unfortunately, for the target Python, "Programs/_freeze_importlib" # is built for the target, while we need to run them at build time. So # when installing host-python3, we copy them to $(HOST_DIR)/bin... # define HOST_PYTHON3_MAKE_REGEN_IMPORTLIB $(HOST_MAKE_ENV) $(PYTHON3_CONF_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) regen-importlib cp $(@D)/Programs/_freeze_importlib $(HOST_DIR)/bin/python-freeze-importlib endef HOST_PYTHON3_PRE_BUILD_HOOKS += HOST_PYTHON3_MAKE_REGEN_IMPORTLIB # # ... And then, when building the target python we first buid # 'Programs/_freeze_importlib' to force GNU Make to update all of the # prerequisites of 'Programs/_freeze_importlib', then copy our stashed # "host-usable" version over the one that was just build and then # build "regen-importlib" target # define PYTHON3_MAKE_REGEN_IMPORTLIB $(TARGET_MAKE_ENV) $(PYTHON3_CONF_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) Programs/_freeze_importlib cp $(HOST_DIR)/bin/python-freeze-importlib $(@D)/Programs/_freeze_importlib $(TARGET_MAKE_ENV) $(PYTHON3_CONF_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) regen-importlib endef PYTHON3_PRE_BUILD_HOOKS += PYTHON3_MAKE_REGEN_IMPORTLIB # # Remove useless files. In the config/ directory, only the Makefile # and the pyconfig.h files are needed at runtime. # define PYTHON3_REMOVE_USELESS_FILES rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)-config rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)m-config rm -f $(TARGET_DIR)/usr/bin/python3-config rm -f $(TARGET_DIR)/usr/bin/smtpd.py.3 rm -f $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/distutils/command/wininst*.exe for i in `find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)m-*/ \ -type f -not -name Makefile` ; do \ rm -f $$i ; \ done rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/__pycache__/ rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/lib-dynload/sysconfigdata/__pycache__ rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/collections/__pycache__ rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/importlib/__pycache__ endef PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_REMOVE_USELESS_FILES # # Make sure libpython gets stripped out on target # define PYTHON3_ENSURE_LIBPYTHON_STRIPPED chmod u+w $(TARGET_DIR)/usr/lib/libpython$(PYTHON3_VERSION_MAJOR)*.so endef PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_ENSURE_LIBPYTHON_STRIPPED PYTHON3_AUTORECONF = YES PYTHON3_AUTORECONF_OPTS = --include=$(HOST_DIR)/share/autoconf-archive define PYTHON3_INSTALL_SYMLINK ln -fs python3 $(TARGET_DIR)/usr/bin/python endef ifneq ($(BR2_PACKAGE_PYTHON),y) PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_INSTALL_SYMLINK endif # Some packages may have build scripts requiring python3, whatever is the # python version chosen for the target. # Only install the python symlink in the host tree if python3 is enabled # for the target. ifeq ($(BR2_PACKAGE_PYTHON3),y) define HOST_PYTHON3_INSTALL_SYMLINK ln -fs python3 $(HOST_DIR)/bin/python ln -fs python3-config $(HOST_DIR)/bin/python-config endef HOST_PYTHON3_POST_INSTALL_HOOKS += HOST_PYTHON3_INSTALL_SYMLINK endif # Provided to other packages PYTHON3_PATH = $(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/ # Support for socket.AF_BLUETOOTH ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_HEADERS),y) PYTHON3_DEPENDENCIES += bluez5_utils-headers endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ifeq ($(BR2_REPRODUCIBLE),y) define PYTHON3_FIX_TIME find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) -name '*.py' -print0 | \ xargs -0 --no-run-if-empty touch -d @$(SOURCE_DATE_EPOCH) endef endif define PYTHON3_CREATE_PYC_FILES $(PYTHON3_FIX_TIME) PYTHONPATH="$(PYTHON3_PATH)" \ $(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR) \ $(TOPDIR)/support/scripts/pycompile.py \ $(if $(VERBOSE),--verbose) \ --strip-root $(TARGET_DIR) \ $(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_REMOVE_PY_FILES find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) -name '*.py' \ $(if $(strip $(KEEP_PYTHON_PY_FILES)),-not \( $(call finddirclauses,$(TARGET_DIR),$(KEEP_PYTHON_PY_FILES)) \) ) \ -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_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 # 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 ================================================ FILE: package/python3-cffi/python3-cffi.mk ================================================ ################################################################################ # # python3-cffi # ################################################################################ # Please keep in sync with package/python-cffi/python-cffi.mk PYTHON3_CFFI_VERSION = 1.14.6 PYTHON3_CFFI_SOURCE = cffi-$(PYTHON3_CFFI_VERSION).tar.gz PYTHON3_CFFI_SITE = https://files.pythonhosted.org/packages/2e/92/87bb61538d7e60da8a7ec247dc048f7671afe17016cd0008b3b710012804 PYTHON3_CFFI_SETUP_TYPE = setuptools PYTHON3_CFFI_LICENSE = MIT PYTHON3_CFFI_LICENSE_FILES = LICENSE # This host package uses pkg-config to find libffi, so we have to # provide the proper hints for pkg-config to behave properly for host # packages. HOST_PYTHON3_CFFI_ENV = \ PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \ PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ PKG_CONFIG_SYSROOT_DIR="/" \ PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/share/pkgconfig" HOST_PYTHON3_CFFI_DEPENDENCIES = host-pkgconf host-python3-pycparser host-libffi HOST_PYTHON3_CFFI_DL_SUBDIR = python-cffi HOST_PYTHON3_CFFI_NEEDS_HOST_PYTHON = python3 $(eval $(host-python-package)) ================================================ FILE: package/python3-cheetah/python3-cheetah.mk ================================================ ################################################################################ # # python3-cheetah # ################################################################################ # Please keep in sync with # package/python-cheetah/python-cheetah.mk PYTHON3_CHEETAH_VERSION = 3.2.6.post2 PYTHON3_CHEETAH_SOURCE = Cheetah3-$(PYTHON3_CHEETAH_VERSION).tar.gz PYTHON3_CHEETAH_SITE = https://files.pythonhosted.org/packages/c0/97/c3fa47e223207e6ca6b501a954c5c959ed3e99f2a1ceec9918238ce38418 PYTHON3_CHEETAH_LICENSE = MIT PYTHON3_CHEETAH_LICENSE_FILES = LICENSE PYTHON3_CHEETAH_SETUP_TYPE = setuptools HOST_PYTHON3_CHEETAH_DL_SUBDIR = python-cheetah HOST_PYTHON3_CHEETAH_NEEDS_HOST_PYTHON = python3 $(eval $(host-python-package)) ================================================ FILE: package/python3-cython/python3-cython.mk ================================================ ################################################################################ # # python3-cython # ################################################################################ # Please keep in sync with package/python-cython/python-cython.mk PYTHON3_CYTHON_VERSION = 0.29.24 PYTHON3_CYTHON_SOURCE = Cython-$(PYTHON3_CYTHON_VERSION).tar.gz PYTHON3_CYTHON_SITE = https://files.pythonhosted.org/packages/59/e3/78c921adf4423fff68da327cc91b73a16c63f29752efe7beb6b88b6dd79d PYTHON3_CYTHON_SETUP_TYPE = setuptools PYTHON3_CYTHON_LICENSE = Apache-2.0 PYTHON3_CYTHON_LICENSE_FILES = COPYING.txt LICENSE.txt HOST_PYTHON3_CYTHON_NEEDS_HOST_PYTHON = python3 $(eval $(host-python-package)) ================================================ FILE: package/python3-ply/python3-ply.mk ================================================ ################################################################################ # # python3-ply # ################################################################################ PYTHON3_PLY_VERSION = 3.11 PYTHON3_PLY_SOURCE = ply-$(PYTHON3_PLY_VERSION).tar.gz PYTHON3_PLY_SITE = https://files.pythonhosted.org/packages/e5/69/882ee5c9d017149285cab114ebeab373308ef0f874fcdac9beb90e0ac4da PYTHON3_PLY_SETUP_TYPE = setuptools PYTHON3_PLY_LICENSE = BSD-3-Clause PYTHON3_PLY_LICENSE_FILES = README.md HOST_PYTHON3_PLY_NEEDS_HOST_PYTHON = python3 $(eval $(host-python-package)) ================================================ FILE: package/python3-psutil/python3-psutil.mk ================================================ ################################################################################ # # python3-psutil # ################################################################################ # Please keep in sync with package/python-psutil/python-psutil.mk PYTHON3_PSUTIL_VERSION = 5.8.0 PYTHON3_PSUTIL_SOURCE = psutil-$(PYTHON3_PSUTIL_VERSION).tar.gz PYTHON3_PSUTIL_SITE = https://files.pythonhosted.org/packages/e1/b0/7276de53321c12981717490516b7e612364f2cb372ee8901bd4a66a000d7 PYTHON3_PSUTIL_SETUP_TYPE = setuptools PYTHON3_PSUTIL_LICENSE = BSD-3-Clause PYTHON3_PSUTIL_LICENSE_FILES = LICENSE PYTHON3_PSUTIL_CPE_ID_VENDOR = psutil_project PYTHON3_PSUTIL_CPE_ID_PRODUCT = psutil HOST_PYTHON3_PSUTIL_DL_SUBDIR = python-psutil HOST_PYTHON3_PSUTIL_NEEDS_HOST_PYTHON = python3 $(eval $(host-python-package)) ================================================ FILE: package/python3-pycparser/python3-pycparser.mk ================================================ ################################################################################ # # python3-pycparser # ################################################################################ # Please keep in sync with package/python-pycparser/python-pycparser.mk PYTHON3_PYCPARSER_VERSION = 2.20 PYTHON3_PYCPARSER_SOURCE = pycparser-$(PYTHON3_PYCPARSER_VERSION).tar.gz PYTHON3_PYCPARSER_SITE = https://files.pythonhosted.org/packages/0f/86/e19659527668d70be91d0369aeaa055b4eb396b0f387a4f92293a20035bd PYTHON3_PYCPARSER_SETUP_TYPE = setuptools PYTHON3_PYCPARSER_LICENSE = BSD-3-Clause PYTHON3_PYCPARSER_LICENSE_FILES = LICENSE HOST_PYTHON3_PYCPARSER_DL_SUBDIR = python-pycparser HOST_PYTHON3_PYCPARSER_NEEDS_HOST_PYTHON = python3 $(eval $(host-python-package)) ================================================ FILE: package/python3-pycryptodomex/python3-pycryptodomex.mk ================================================ ################################################################################ # # python3-pycryptodomex # ################################################################################ # Please keep in sync with package/python-pycryptodomex/python-pycryptodomex.mk PYTHON3_PYCRYPTODOMEX_VERSION = 3.11.0 PYTHON3_PYCRYPTODOMEX_SOURCE = pycryptodomex-$(PYTHON3_PYCRYPTODOMEX_VERSION).tar.gz PYTHON3_PYCRYPTODOMEX_SITE = https://files.pythonhosted.org/packages/47/14/dd9ad29cd29ea4cc521286f2cb401ca7ac6fd5db0791c5e9bacaf2c9ac78 PYTHON3_PYCRYPTODOMEX_SETUP_TYPE = setuptools PYTHON3_PYCRYPTODOMEX_LICENSE = \ BSD-2-Clause, \ Public Domain (pycrypto original code), \ OCB patent license (OCB mode) PYTHON3_PYCRYPTODOMEX_LICENSE_FILES = LICENSE.rst Doc/LEGAL/COPYRIGHT.pycrypto HOST_PYTHON3_PYCRYPTODOMEX_DL_SUBDIR = python-pycryptodomex HOST_PYTHON3_PYCRYPTODOMEX_NEEDS_HOST_PYTHON = python3 $(eval $(host-python-package)) ================================================ FILE: package/python3-pyelftools/python3-pyelftools.mk ================================================ ################################################################################ # # python3-pyelftools # ################################################################################ # Please keep in sync with package/python-pyelftools/python-pyelftools.mk PYTHON3_PYELFTOOLS_VERSION = 0.27 PYTHON3_PYELFTOOLS_SOURCE = pyelftools-$(PYTHON3_PYELFTOOLS_VERSION).tar.gz PYTHON3_PYELFTOOLS_SITE = https://files.pythonhosted.org/packages/6b/b5/f7022f2d950327ba970ec85fb8f85c79244031092c129b6f34ab17514ae0 PYTHON3_PYELFTOOLS_LICENSE = Public domain PYTHON3_PYELFTOOLS_LICENSE_FILES = LICENSE PYTHON3_PYELFTOOLS_SETUP_TYPE = setuptools HOST_PYTHON3_PYELFTOOLS_DL_SUBDIR = python-pyelftools HOST_PYTHON3_PYELFTOOLS_NEEDS_HOST_PYTHON = python3 $(eval $(host-python-package)) ================================================ FILE: package/python3-pyyaml/python3-pyyaml.mk ================================================ ################################################################################ # # python3-pyyaml # ################################################################################ # Please keep in sync with package/python-pyyaml/python-pyyaml.mk PYTHON3_PYYAML_VERSION = 5.4.1 PYTHON3_PYYAML_SOURCE = PyYAML-$(PYTHON3_PYYAML_VERSION).tar.gz PYTHON3_PYYAML_SITE = https://files.pythonhosted.org/packages/a0/a4/d63f2d7597e1a4b55aa3b4d6c5b029991d3b824b5bd331af8d4ab1ed687d PYTHON3_PYYAML_SETUP_TYPE = setuptools PYTHON3_PYYAML_LICENSE = MIT PYTHON3_PYYAML_LICENSE_FILES = LICENSE PYTHON3_PYYAML_CPE_ID_VENDOR = pyyaml PYTHON3_PYYAML_CPE_ID_PRODUCT = pyyaml HOST_PYTHON3_PYYAML_DL_SUBDIR = python-pyyaml HOST_PYTHON3_PYYAML_NEEDS_HOST_PYTHON = python3 HOST_PYTHON3_PYYAML_DEPENDENCIES = host-libyaml $(eval $(host-python-package)) ================================================ FILE: package/python3-regex/python3-regex.mk ================================================ ################################################################################ # # python3-regex # ################################################################################ # Please keep in sync with package/python-regex/python-regex.mk PYTHON3_REGEX_VERSION = 2021.4.4 PYTHON3_REGEX_SOURCE = regex-$(PYTHON3_REGEX_VERSION).tar.gz PYTHON3_REGEX_SITE = https://files.pythonhosted.org/packages/38/3f/4c42a98c9ad7d08c16e7d23b2194a0e4f3b2914662da8bc88986e4e6de1f PYTHON3_REGEX_SETUP_TYPE = setuptools PYTHON3_REGEX_LICENSE = CNRI-Python HOST_PYTHON3_REGEX_DL_SUBDIR = python-regex HOST_PYTHON3_REGEX_NEEDS_HOST_PYTHON = python3 $(eval $(host-python-package)) ================================================ FILE: package/python3-setuptools/python3-setuptools.mk ================================================ ################################################################################ # # python3-setuptools # ################################################################################ # Please keep in sync with # package/python-setuptools/python-setuptools.mk PYTHON3_SETUPTOOLS_VERSION = 44.0.0 PYTHON3_SETUPTOOLS_SOURCE = setuptools-$(PYTHON3_SETUPTOOLS_VERSION).zip PYTHON3_SETUPTOOLS_SITE = https://files.pythonhosted.org/packages/b0/f3/44da7482ac6da3f36f68e253cb04de37365b3dba9036a3c70773b778b485 PYTHON3_SETUPTOOLS_LICENSE = MIT PYTHON3_SETUPTOOLS_LICENSE_FILES = LICENSE PYTHON3_SETUPTOOLS_CPE_ID_VENDOR = python PYTHON3_SETUPTOOLS_CPE_ID_PRODUCT = setuptools PYTHON3_SETUPTOOLS_SETUP_TYPE = setuptools HOST_PYTHON3_SETUPTOOLS_DL_SUBDIR = python-setuptools HOST_PYTHON3_SETUPTOOLS_NEEDS_HOST_PYTHON = python3 define HOST_PYTHON3_SETUPTOOLS_EXTRACT_CMDS $(UNZIP) -d $(@D) $(HOST_PYTHON3_SETUPTOOLS_DL_DIR)/$(PYTHON3_SETUPTOOLS_SOURCE) mv $(@D)/setuptools-$(PYTHON3_SETUPTOOLS_VERSION)/* $(@D) $(RM) -r $(@D)/setuptools-$(PYTHON3_SETUPTOOLS_VERSION) endef $(eval $(host-python-package)) ================================================ FILE: package/python3-six/python3-six.mk ================================================ ################################################################################ # # python3-six # ################################################################################ # Please keep in sync with package/python-six/python-six.mk PYTHON3_SIX_VERSION = 1.16.0 PYTHON3_SIX_SOURCE = six-$(PYTHON3_SIX_VERSION).tar.gz PYTHON3_SIX_SITE = https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e PYTHON3_SIX_SETUP_TYPE = setuptools PYTHON3_SIX_LICENSE = MIT PYTHON3_SIX_LICENSE_FILES = LICENSE HOST_PYTHON3_SIX_DL_SUBDIR = python-six HOST_PYTHON3_SIX_NEEDS_HOST_PYTHON = python3 $(eval $(host-python-package)) ================================================ FILE: package/qcom-db410c-firmware/Config.in ================================================ config BR2_PACKAGE_QCOM_DB410C_FIRMWARE bool "qcom-db410c-firmware" select BR2_PACKAGE_HOST_MTOOLS help Wifi/BT firmware for Qualcomm Dragonboard 410c SBC. https://releases.linaro.org/96boards/dragonboard410c/qualcomm/firmware/ ================================================ FILE: package/qcom-db410c-firmware/qcom-db410c-firmware.hash ================================================ # Locally calculated sha256 46953b974c5c58c7ca66db414437c0268b033ac9d28127e98d9c4e1a49359da5 linux-board-support-package-r1034.2.1.zip sha256 11e60ad6f83c2a86e40dca374c24230b53650dd3e0adf2e72c15f8cafedc2e5a LICENSE ================================================ FILE: package/qcom-db410c-firmware/qcom-db410c-firmware.mk ================================================ ################################################################################ # # qcom-db410c-firmware # ################################################################################ QCOM_DB410C_FIRMWARE_VERSION = 1034.2.1 QCOM_DB410C_FIRMWARE_BASE = linux-board-support-package-r$(QCOM_DB410C_FIRMWARE_VERSION) QCOM_DB410C_FIRMWARE_SOURCE = $(QCOM_DB410C_FIRMWARE_BASE).zip QCOM_DB410C_FIRMWARE_SITE = https://releases.linaro.org/96boards/dragonboard410c/qualcomm/firmware QCOM_DB410C_FIRMWARE_LICENCE = Qualcomm firmware license QCOM_DB410C_FIRMWARE_LICENSE_FILES = LICENSE QCOM_DB410C_FIRMWARE_DEPENDENCIES = host-mtools define QCOM_DB410C_FIRMWARE_EXTRACT_CMDS $(UNZIP) -d $(@D) \ $(QCOM_DB410C_FIRMWARE_DL_DIR)/$(QCOM_DB410C_FIRMWARE_SOURCE) mv $(@D)/$(QCOM_DB410C_FIRMWARE_BASE)/* $(@D) rmdir $(@D)/$(QCOM_DB410C_FIRMWARE_BASE) endef # Install the Wifi/Bt firmware blobs to target. These commands are # based on firmware-qcom-dragonboard410c_*.bb in the OpenEmbedded # meta-qcom layer, see https://github.com/ndechesne/meta-qcom define QCOM_DB410C_FIRMWARE_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0644 \ $(@D)/efs-seed/fs_image_linux.tar.gz.mbn.img \ $(TARGET_DIR)/boot/modem_fsg $(INSTALL) -d $(TARGET_DIR)/lib/firmware cp -r $(@D)/proprietary-linux/wlan \ $(TARGET_DIR)/lib/firmware/ $(INSTALL) -d $(TARGET_DIR)/lib/firmware/qcom/msm8916 MTOOLS_SKIP_CHECK=1 $(HOST_DIR)/bin/mcopy -n -i \ $(@D)/bootloaders-linux/NON-HLOS.bin \ ::image/modem.* ::image/mba.mbn ::image/wcnss.* \ $(TARGET_DIR)/lib/firmware/qcom/msm8916 endef $(eval $(generic-package)) ================================================ FILE: package/qdecoder/Config.in ================================================ config BR2_PACKAGE_QDECODER bool "qdecoder" depends on !BR2_STATIC_LIBS help qDecoder is a simple and powerful CGI library for the C/C++ programming language. http://wolkykim.github.io/qdecoder ================================================ FILE: package/qdecoder/qdecoder.hash ================================================ # Locally calculated sha256 3911576ad8766697a9c8c767458edc953ae686eb53cd31d21e38edd7831ed9aa qdecoder-12.0.8.tar.gz sha256 17e647523e5c5c75fd02861dcf3ea91a146d918ab303460ee58135c9dd70904e COPYING ================================================ FILE: package/qdecoder/qdecoder.mk ================================================ ################################################################################ # # qdecoder # ################################################################################ QDECODER_VERSION = 12.0.8 QDECODER_SITE = $(call github,wolkykim,qdecoder,v$(QDECODER_VERSION)) QDECODER_LICENSE = BSD-2-Clause QDECODER_LICENSE_FILES = COPYING QDECODER_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' QDECODER_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/qemu/0002-softmmu-qemu-seccomp.c-add-missing-header-for-CLONE_.patch ================================================ From df07d3754bdf15e0efac244cfee290c9bac86352 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Mon, 2 May 2022 23:17:46 +0200 Subject: [PATCH] softmmu/qemu-seccomp.c: add missing header for CLONE_NEWGROUP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With seccomp support enabled Qemu 7.0.0 fail to build with the following error: ../softmmu/qemu-seccomp.c:116:19: error: ‘CLONE_NEWCGROUP’ undeclared here (not in a function) 116 | FORBID_CLONE_FLAG(CLONE_NEWCGROUP); | ^~~~~~~~~~~~~~~ ../softmmu/qemu-seccomp.c:73:18: note: in definition of macro ‘FORBID_CLONE_FLAG’ 73 | .datum_a = flag, .datum_b = flag } } | ^~~~ CLONE_NEWCGROUP has been added in Qemu 7.0.0 by commit [1]. [1] https://git.qemu.org/?p=qemu.git;a=commitdiff;h=5a2f693f07a1e93ada5277b2fb1530b2698be0fa Signed-off-by: Romain Naour --- softmmu/qemu-seccomp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/softmmu/qemu-seccomp.c b/softmmu/qemu-seccomp.c index deaf8a4ef5..96c83e121f 100644 --- a/softmmu/qemu-seccomp.c +++ b/softmmu/qemu-seccomp.c @@ -21,6 +21,7 @@ #include #include #include "sysemu/seccomp.h" +#include #include /* For some architectures (notably ARM) cacheflush is not supported until -- 2.35.1 ================================================ FILE: package/qemu/0002-tests-fp-disable-fp-bench-build-by-default.patch ================================================ From 83d976d6d7f0357659d5daa0f01c52048a609e88 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Wed, 25 Aug 2021 21:55:53 +0200 Subject: [PATCH] tests/fp: disable fp-bench build by default Fixes: https://lists.nongnu.org/archive/html/qemu-devel/2021-03/msg00947.html Signed-off-by: Romain Naour --- tests/fp/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/fp/meson.build b/tests/fp/meson.build index 8bd0979f67..2fe019d2c6 100644 --- a/tests/fp/meson.build +++ b/tests/fp/meson.build @@ -636,6 +636,7 @@ fpbench = executable( dependencies: [qemuutil], include_directories: [sfinc, include_directories(tfdir)], c_args: fpcflags, + build_by_default: false, ) fptestlog2 = executable( -- 2.35.1 ================================================ FILE: package/qemu/0003-target-sh4-Mask-restore-of-env-flags-from-tb-flags.patch ================================================ From bc2331635ce18ff068d2bb1e493bc546e1f786e1 Mon Sep 17 00:00:00 2001 From: Guenter Roeck Date: Mon, 12 Dec 2022 09:03:17 -0600 Subject: [PATCH] target/sh4: Mask restore of env->flags from tb->flags The values in env->flags are a subset of tb->flags. Restore only the bits that belong. Cc: qemu-stable@nongnu.org Fixes: ab419fd8a035 ("target/sh4: Fix TB_FLAG_UNALIGN") Signed-off-by: Guenter Roeck Message-ID: <20221212011345.GA2235238@roeck-us.net> [rth: Reduce to only the the superh_cpu_synchronize_from_tb change] Signed-off-by: Richard Henderson [yann.morin.1998@free.fr: backport from upstream] Signed-off-by: Yann E. MORIN --- target/sh4/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/sh4/cpu.c b/target/sh4/cpu.c index 951eb6b9c8..f0934b20fa 100644 --- a/target/sh4/cpu.c +++ b/target/sh4/cpu.c @@ -47,7 +47,7 @@ static void superh_cpu_synchronize_from_tb(CPUState *cs, SuperHCPU *cpu = SUPERH_CPU(cs); cpu->env.pc = tb_pc(tb); - cpu->env.flags = tb->flags; + cpu->env.flags = tb->flags & TB_FLAG_ENVFLAGS_MASK; } static void superh_restore_state_to_opc(CPUState *cs, -- 2.25.1 ================================================ FILE: package/qemu/Config.in ================================================ config BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET bool # Only tested on these architectures default y if BR2_aarch64 default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 default y if BR2_i386 default y if BR2_mips default y if BR2_mipsel default y if BR2_powerpc64 default y if BR2_powerpc64le default y if BR2_x86_64 comment "QEMU requires a toolchain with wchar, threads, gcc >= 8" depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET depends on BR2_USE_MMU depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR) || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_8 menuconfig BR2_PACKAGE_QEMU bool "QEMU" depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR # gettext depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_ZLIB select BR2_PACKAGE_QEMU_SYSTEM if !BR2_PACKAGE_QEMU_LINUX_USER help QEMU is a generic and open source machine emulator and virtualizer. When used as a machine emulator, QEMU can run OSes and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation, it achieves very good performance. When used as a virtualizer, QEMU achieves near native performances by executing the guest code directly on the host CPU. QEMU supports virtualization when executing under the Xen hypervisor or using the KVM kernel module in Linux. When using KVM, QEMU can virtualize x86, server and embedded PowerPC, and S390 guests. http://qemu.org/ if BR2_PACKAGE_QEMU comment "Emulators selection" config BR2_PACKAGE_QEMU_SYSTEM bool "Enable systems emulation" depends on !BR2_STATIC_LIBS # dtc select BR2_PACKAGE_PIXMAN help Say 'y' to build system emulators/virtualisers. if BR2_PACKAGE_QEMU_SYSTEM config BR2_PACKAGE_QEMU_BLOBS bool "Install binary blobs" default y help Say 'y' here (the default) to install binary blobs (such as BIOS or firmwares for the different machines simulated by QEMU). Say 'n' to not install those blobs. Note: Some machines may be unbootable without those blobs. If unsure, say 'y'. config BR2_PACKAGE_QEMU_SLIRP bool "Enable user mode networking (SLIRP)" select BR2_PACKAGE_SLIRP help Enable user mode network stack, which is the default networking backend. It requires no administrator privileges and generally is the easiest to use but has some limitations: - there is a lot of overhead so the performance is poor; - in general ICMP does not work (can't ping from/to a guest) - on Linux hosts, ping does work from within the guest, but it needs initial setup by root (once per host) - the guest is not directly accessible from the host or the external network User Networking is implemented using "slirp", which provides a full TCP/IP stack within QEMU and uses that stack to implement a virtual NAT'd network. Notice that this option does not disable other networking modes. config BR2_PACKAGE_QEMU_SDL bool "Enable SDL frontend" select BR2_PACKAGE_SDL2 help Say 'y' to enable the SDL frontend, that is, a graphical window presenting the VM's display. config BR2_PACKAGE_QEMU_FDT bool "Enable FDT" select BR2_PACKAGE_DTC help Say 'y' here to have QEMU capable of constructing Device Trees, and passing them to the VMs. endif # BR2_PACKAGE_QEMU_SYSTEM comment "systems emulation needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_QEMU_LINUX_USER bool "Enable Linux user-land emulation" # Incompatible "struct sigevent" definition on musl depends on !BR2_TOOLCHAIN_USES_MUSL help Say 'y' to build Linux user-land emulators. # Note: bsd-user can not be build on Linux comment "Linux user-land emulation needs a glibc or uClibc toolchain" depends on BR2_TOOLCHAIN_USES_MUSL config BR2_PACKAGE_QEMU_CHOOSE_TARGETS bool "Select individual emulator targets" help By default, all targets (system and/or user, subject to the corresponding options, above) are built. If you only need a subset of the emulated targets, say 'y' here and enable at least one target, below. if BR2_PACKAGE_QEMU_CHOOSE_TARGETS config BR2_PACKAGE_QEMU_TARGET_AARCH64 bool "aarch64" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help ARM 64-bit architecture. config BR2_PACKAGE_QEMU_TARGET_AARCH64_BE bool "aarch64_be (linux-user, only)" depends on BR2_PACKAGE_QEMU_LINUX_USER help ARM 64-bit architecture, big-endian. config BR2_PACKAGE_QEMU_TARGET_ALPHA bool "alpha" help DEC Alpha 64-bit RISC architecture. config BR2_PACKAGE_QEMU_TARGET_ARM bool "arm" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help ARM EABI architecture, little-endian. config BR2_PACKAGE_QEMU_TARGET_ARMEB bool "armeb (linux-user, only)" depends on BR2_PACKAGE_QEMU_LINUX_USER help ARM EABI architecture, big-endian. config BR2_PACKAGE_QEMU_TARGET_AVR bool "avr (system, only)" depends on BR2_PACKAGE_QEMU_SYSTEM help AVR 8-bit microcontroller architecture. config BR2_PACKAGE_QEMU_TARGET_CRIS bool "cris" help ETRAX CRIS microcontroller architecture. config BR2_PACKAGE_QEMU_TARGET_HEXAGON bool "hexagon (linux-user, only)" depends on BR2_PACKAGE_QEMU_LINUX_USER help Qualcomm's Hexagon VLSI DSP architecture. config BR2_PACKAGE_QEMU_TARGET_HPPA bool "hppa" help HP PA-RISC architecture. config BR2_PACKAGE_QEMU_TARGET_I386 bool "i386" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help Intel i386 32-bit architecture. config BR2_PACKAGE_QEMU_TARGET_LOONGARCH64 bool "loongarch64" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help Loongson 64-bit RISC architecture. config BR2_PACKAGE_QEMU_TARGET_M68K bool "m68k" help Motorola 68000 architecture. config BR2_PACKAGE_QEMU_TARGET_MICROBLAZE bool "microblaze" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help Xilinix MicroBlaze soft processor. config BR2_PACKAGE_QEMU_TARGET_MICROBLAZEEL bool "microblazeel" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help Xilinix MicroBlaze EL soft processor. config BR2_PACKAGE_QEMU_TARGET_MIPS bool "mips" help MIPS 32-bit architecture. config BR2_PACKAGE_QEMU_TARGET_MIPSEL bool "mipsel" help MIPS 32-bit architecture, little-endian. config BR2_PACKAGE_QEMU_TARGET_MIPS64 bool "mips64" help MIPS 64-bit architecture. config BR2_PACKAGE_QEMU_TARGET_MIPS64EL bool "mips64el" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help MIPS 64-bit architecture, little-endian. config BR2_PACKAGE_QEMU_TARGET_MIPSN32 bool "mipsn32 (linux-user, only)" depends on BR2_PACKAGE_QEMU_LINUX_USER help MIPS N32 architecture. config BR2_PACKAGE_QEMU_TARGET_MIPSN32EL bool "mipsn32el (linux-user, only)" depends on BR2_PACKAGE_QEMU_LINUX_USER help MIPS N32 architecture, little-endian. config BR2_PACKAGE_QEMU_TARGET_NIOS2 bool "nios2" help Nios II architecture. config BR2_PACKAGE_QEMU_TARGET_OR1K bool "or1k" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help OpenRISC 1000 architecture. config BR2_PACKAGE_QEMU_TARGET_PPC bool "ppc" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help PoewerPC 32-bit architecture. config BR2_PACKAGE_QEMU_TARGET_PPC64 bool "ppc64" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help PoewerPC 64-bit architecture. config BR2_PACKAGE_QEMU_TARGET_PPC64LE bool "ppc64le (linux-user, only)" depends on BR2_PACKAGE_QEMU_LINUX_USER help PoewerPC 64-bit architecture, little-endian. config BR2_PACKAGE_QEMU_TARGET_RISCV32 bool "riscv32" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help RISC-V 33-bit architecture. config BR2_PACKAGE_QEMU_TARGET_RISCV64 bool "riscv64" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help RISC-V 64-bit architecture. config BR2_PACKAGE_QEMU_TARGET_RX bool "rx (system-only)" depends on BR2_PACKAGE_QEMU_SYSTEM select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help Renesas Electronics RX 32-bit architecture. config BR2_PACKAGE_QEMU_TARGET_S390X bool "s390x" help IBM z/Architecture 64-bit mainframe (s390x) config BR2_PACKAGE_QEMU_TARGET_SH4 bool "sh4" help Super-H 32-bit RISC architecture. config BR2_PACKAGE_QEMU_TARGET_SH4EB bool "sh4eb" help Super-H EB 32-bit RISC architecture. config BR2_PACKAGE_QEMU_TARGET_SPARC bool "sparc" help SPARC 32-bit RISC architecture. config BR2_PACKAGE_QEMU_TARGET_SPARC32PLUS bool "sparc32plus (linux-user, only)" depends on BR2_PACKAGE_QEMU_LINUX_USER help SPARC 32-bit RISC architecture (Sun's v8plus). config BR2_PACKAGE_QEMU_TARGET_SPARC64 bool "sparc64" help SPARC 64-bit RISC architecture. config BR2_PACKAGE_QEMU_TARGET_TRICORE bool "tricore (system, only)" depends on BR2_PACKAGE_QEMU_SYSTEM help Infineon TriCore 32-bit RISC architecture. config BR2_PACKAGE_QEMU_TARGET_X86_64 bool "x86_64" select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM help Intel x86 64-bit architecture. config BR2_PACKAGE_QEMU_TARGET_XTENSA bool "xtensa" help Xtensa 32-bit RISC architecture. config BR2_PACKAGE_QEMU_TARGET_XTENSAEB bool "xtensaeb" help Xtensa 32-bit RISC architecture, big-endian. endif # BR2_PACKAGE_QEMU_CHOOSE_TARGETS comment "Tools selection" config BR2_PACKAGE_QEMU_TOOLS bool "Enable tools" help Say 'y' here to include tools packaged with QEMU (e.g. qemu-img). endif # BR2_PACKAGE_QEMU ================================================ FILE: package/qemu/Config.in.host ================================================ config BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS bool default y if BR2_arm default y if BR2_armeb default y if BR2_aarch64 default y if BR2_i386 default y if BR2_m68k default y if BR2_microblazeel default y if BR2_microblazebe default y if BR2_mips default y if BR2_mipsel default y if BR2_nios2 default y if BR2_or1k default y if BR2_powerpc default y if BR2_powerpc64 default y if BR2_powerpc64le default y if BR2_riscv default y if BR2_s390x default y if BR2_sh default y if BR2_sparc default y if BR2_sparc64 default y if BR2_xtensa default y if BR2_x86_64 depends on !BR2_x86_steamroller && !BR2_x86_core_avx2 depends on !BR2_powerpc_620 && !BR2_powerpc_630 && !BR2_powerpc_970 config BR2_PACKAGE_HOST_QEMU_SYSTEM_ARCH_SUPPORTS bool default y if BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS default y if BR2_mips64 default y if BR2_mips64el config BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORTS bool default y if BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS config BR2_PACKAGE_HOST_QEMU bool "host qemu" depends on BR2_PACKAGE_HOST_QEMU_SYSTEM_ARCH_SUPPORTS || BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORTS depends on BR2_HOST_GCC_AT_LEAST_8 select BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE \ if !BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE && BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORTS select BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE \ if !BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORTS help QEMU is a generic and open source machine emulator and virtualizer. This option builds an emulator for your selected architecture. http://www.qemu.org comment "host-qemu needs a host gcc >= 8" depends on BR2_PACKAGE_HOST_QEMU_SYSTEM_ARCH_SUPPORTS || \ BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORT depends on !BR2_HOST_GCC_AT_LEAST_8 if BR2_PACKAGE_HOST_QEMU comment "Emulators selection" config BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE bool "Enable system emulation" depends on BR2_PACKAGE_HOST_QEMU_SYSTEM_ARCH_SUPPORTS 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" depends on BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORTS help Enables the build of the user-land emulator, which allows to run user-space applications. Note that system calls made by the emulated user-land are serviced by the running host kernel. Therefore, if the kernel headers used by your target are more recent than the running host kernel, you may run into invalid system calls, which may yield surprising effects. config BR2_PACKAGE_HOST_QEMU_USER_MODE_ARGS string default "-cpu Nehalem,check=false" if BR2_x86_corei7 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. config BR2_PACKAGE_HOST_QEMU_VIRTFS bool "Virtual filesystem support" depends on BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE help Enables support for virtual filesystem in Qemu allowing shared filesystem between Qemu and its emulated target. config BR2_PACKAGE_HOST_QEMU_USB bool "USB passthrough support" help Enables USB passthrough support from guest to host. endif ================================================ FILE: package/qemu/qemu.hash ================================================ # Locally computed, tarball verified with GPG signature sha256 5b49ce2687744dad494ae90a898c52204a3406e84d072482a1e1be854eeb2157 qemu-7.2.0.tar.xz sha256 6f04ae8364d0079a192b14635f4b1da294ce18724c034c39a6a41d1b09df6100 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB ================================================ FILE: package/qemu/qemu.mk ================================================ ################################################################################ # # qemu # ################################################################################ # When updating the version, check whether the list of supported targets # needs to be updated. QEMU_VERSION = 7.2.0 QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.xz QEMU_SITE = http://download.qemu.org QEMU_LICENSE = GPL-2.0, LGPL-2.1, MIT, BSD-3-Clause, BSD-2-Clause, Others/BSD-1c QEMU_LICENSE_FILES = COPYING COPYING.LIB # NOTE: there is no top-level license file for non-(L)GPL licenses; # the non-(L)GPL license texts are specified in the affected # individual source files. QEMU_CPE_ID_VENDOR = qemu #------------------------------------------------------------- # The build system is now partly based on Meson. # However, building is still done with configure and make as in previous versions of QEMU. # Target-qemu QEMU_DEPENDENCIES = \ host-meson \ host-pkgconf \ host-python3 \ libglib2 \ zlib # Need the LIBS variable because librt and libm are # not automatically pulled. :-( QEMU_LIBS = -lrt -lm QEMU_OPTS = QEMU_VARS = LIBTOOL=$(HOST_DIR)/bin/libtool # If we want to build all emulation targets, we just need to either enable -user # and/or -system emulation appropriately. # Otherwise, if we want only a subset of targets, we must still enable all of # them, so that QEMU properly builds a list of default targets from which it # checks if the specified sub-set is valid. ifeq ($(BR2_PACKAGE_QEMU_SYSTEM),y) QEMU_DEPENDENCIES += pixman QEMU_OPTS += --enable-system QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_AARCH64) += aarch64-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_ALPHA) += alpha-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_ARM) += arm-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_AVR) += avr-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_CRIS) += cris-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_HPPA) += hppa-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_I386) += i386-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_LOONGARCH64) += loongarch64-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_M68K) += m68k-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MICROBLAZE) += microblaze-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MICROBLAZEEL) += microblazeel-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MIPS) += mips-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MIPS64) += mips64-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MIPS64EL) += mips64el-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MIPSEL) += mipsel-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_NIOS2) += nios2-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_OR1K) += or1k-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_PPC) += ppc-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_PPC64) += ppc64-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_RISCV32) += riscv32-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_RISCV64) += riscv64-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_RX) += rx-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_S390X) += s390x-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_SH4) += sh4-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_SH4EB) += sh4eb-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_SPARC) += sparc-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_SPARC64) += sparc64-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_TRICORE) += tricore-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_X86_64) += x86_64-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_XTENSA) += xtensa-softmmu QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_XTENSAEB) += xtensaeb-softmmu else QEMU_OPTS += --disable-system endif ifeq ($(BR2_PACKAGE_QEMU_LINUX_USER),y) QEMU_OPTS += --enable-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_AARCH64) += aarch64-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_AARCH64_BE) += aarch64_be-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_ALPHA) += alpha-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_ARM) += arm-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_ARMEB) += armeb-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_CRIS) += cris-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_HEXAGON) += hexagon-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_HPPA) += hppa-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_I386) += i386-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_LOONGARCH64) += loongarch64-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_M68K) += m68k-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MICROBLAZE) += microblaze-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MICROBLAZEEL) += microblazeel-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MIPS) += mips-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MIPS64) += mips64-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MIPS64EL) += mips64el-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MIPSEL) += mipsel-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MIPSN32) += mipsn32-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_MIPSN32EL) += mipsn32el-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_NIOS2) += nios2-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_OR1K) += or1k-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_PPC) += ppc-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_PPC64) += ppc64-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_PPC64LE) += ppc64le-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_RISCV32) += riscv32-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_RISCV64) += riscv64-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_S390X) += s390x-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_SH4) += sh4-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_SH4EB) += sh4eb-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_SPARC) += sparc-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_SPARC32PLUS) += sparc32plus-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_SPARC64) += sparc64-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_X86_64) += x86_64-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_XTENSA) += xtensa-linux-user QEMU_TARGET_LIST_$(BR2_PACKAGE_QEMU_TARGET_XTENSAEB) += xtensaeb-linux-user else QEMU_OPTS += --disable-linux-user endif # Build the list of desired targets, if any. ifeq ($(BR2_PACKAGE_QEMU_CHOOSE_TARGETS),y) QEMU_TARGET_LIST = $(strip $(QEMU_TARGET_LIST_y)) ifeq ($(BR_BUILDING).$(QEMU_TARGET_LIST),y.) $(error "No emulator target has ben chosen") endif QEMU_OPTS += --target-list="$(QEMU_TARGET_LIST)" endif ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) QEMU_OPTS += --disable-vhost-user else QEMU_OPTS += --enable-vhost-user endif ifeq ($(BR2_PACKAGE_QEMU_SLIRP),y) QEMU_OPTS += --enable-slirp QEMU_DEPENDENCIES += slirp else QEMU_OPTS += --disable-slirp endif ifeq ($(BR2_PACKAGE_QEMU_SDL),y) QEMU_OPTS += --enable-sdl QEMU_DEPENDENCIES += sdl2 QEMU_VARS += SDL2_CONFIG=$(STAGING_DIR)/usr/bin/sdl2-config else QEMU_OPTS += --disable-sdl endif ifeq ($(BR2_PACKAGE_QEMU_FDT),y) QEMU_OPTS += --enable-fdt QEMU_DEPENDENCIES += dtc else QEMU_OPTS += --disable-fdt endif ifeq ($(BR2_PACKAGE_QEMU_TOOLS),y) QEMU_OPTS += --enable-tools else QEMU_OPTS += --disable-tools endif ifeq ($(BR2_PACKAGE_LIBFUSE3),y) QEMU_OPTS += --enable-fuse --enable-fuse-lseek QEMU_DEPENDENCIES += libfuse3 else QEMU_OPTS += --disable-fuse --disable-fuse-lseek endif ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) QEMU_OPTS += --enable-seccomp QEMU_DEPENDENCIES += libseccomp else QEMU_OPTS += --disable-seccomp endif ifeq ($(BR2_PACKAGE_LIBSSH),y) QEMU_OPTS += --enable-libssh QEMU_DEPENDENCIES += libssh else QEMU_OPTS += --disable-libssh endif ifeq ($(BR2_PACKAGE_LIBUSB),y) QEMU_OPTS += --enable-libusb QEMU_DEPENDENCIES += libusb else QEMU_OPTS += --disable-libusb endif ifeq ($(BR2_PACKAGE_LIBVNCSERVER),y) QEMU_OPTS += \ --enable-vnc \ --disable-vnc-sasl QEMU_DEPENDENCIES += libvncserver ifeq ($(BR2_PACKAGE_LIBPNG),y) QEMU_OPTS += --enable-png QEMU_DEPENDENCIES += libpng else QEMU_OPTS += --disable-png endif ifeq ($(BR2_PACKAGE_JPEG),y) QEMU_OPTS += --enable-vnc-jpeg QEMU_DEPENDENCIES += jpeg else QEMU_OPTS += --disable-vnc-jpeg endif else QEMU_OPTS += --disable-vnc endif ifeq ($(BR2_PACKAGE_NETTLE),y) QEMU_OPTS += --enable-nettle QEMU_DEPENDENCIES += nettle else QEMU_OPTS += --disable-nettle endif ifeq ($(BR2_PACKAGE_NUMACTL),y) QEMU_OPTS += --enable-numa QEMU_DEPENDENCIES += numactl else QEMU_OPTS += --disable-numa endif ifeq ($(BR2_PACKAGE_SPICE),y) QEMU_OPTS += --enable-spice QEMU_DEPENDENCIES += spice else QEMU_OPTS += --disable-spice endif ifeq ($(BR2_PACKAGE_USBREDIR),y) QEMU_OPTS += --enable-usb-redir QEMU_DEPENDENCIES += usbredir else QEMU_OPTS += --disable-usb-redir endif ifeq ($(BR2_STATIC_LIBS),y) QEMU_OPTS += --static endif ifeq ($(BR2_PACKAGE_QEMU_BLOBS),y) QEMU_OPTS += --enable-install-blobs else QEMU_OPTS += --disable-install-blobs endif # Override CPP, as it expects to be able to call it like it'd # call the compiler. define QEMU_CONFIGURE_CMDS unset TARGET_DIR; \ cd $(@D); \ LIBS='$(QEMU_LIBS)' \ $(TARGET_CONFIGURE_OPTS) \ $(TARGET_CONFIGURE_ARGS) \ CPP="$(TARGET_CC) -E" \ $(QEMU_VARS) \ ./configure \ --prefix=/usr \ --cross-prefix=$(TARGET_CROSS) \ --audio-drv-list= \ --meson=$(HOST_DIR)/bin/meson \ --ninja=$(HOST_DIR)/bin/ninja \ --disable-alsa \ --disable-bpf \ --disable-brlapi \ --disable-bsd-user \ --disable-cap-ng \ --disable-capstone \ --disable-containers \ --disable-coreaudio \ --disable-curl \ --disable-curses \ --disable-dbus-display \ --disable-docs \ --disable-dsound \ --disable-hvf \ --disable-jack \ --disable-libiscsi \ --disable-linux-aio \ --disable-linux-io-uring \ --disable-malloc-trim \ --disable-membarrier \ --disable-mpath \ --disable-netmap \ --disable-opengl \ --disable-oss \ --disable-pa \ --disable-rbd \ --disable-sanitizers \ --disable-selinux \ --disable-sparse \ --disable-strip \ --disable-vde \ --disable-vhost-crypto \ --disable-vhost-user-blk-server \ --disable-virtfs \ --disable-virtiofsd \ --disable-whpx \ --disable-xen \ --enable-attr \ --enable-kvm \ --enable-vhost-net \ --with-git-submodules=ignore \ $(QEMU_OPTS) endef define QEMU_BUILD_CMDS unset TARGET_DIR; \ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define QEMU_INSTALL_TARGET_CMDS unset TARGET_DIR; \ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(QEMU_MAKE_ENV) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) #------------------------------------------------------------- # Host-qemu HOST_QEMU_DEPENDENCIES = \ host-libglib2 \ host-meson \ host-pixman \ host-pkgconf \ host-python3 \ host-slirp \ host-zlib # BR ARCH qemu # ------- ---- # arm arm # armeb armeb # i486 i386 # i586 i386 # i686 i386 # x86_64 x86_64 # m68k m68k # microblaze microblaze # mips mips # mipsel mipsel # mips64 mips64 # mips64el mips64el # nios2 nios2 # or1k or1k # powerpc ppc # powerpc64 ppc64 # powerpc64le ppc64 (system) / ppc64le (usermode) # sh2a not supported # sh4 sh4 # sh4eb sh4eb # sh4a sh4 # sh4aeb sh4eb # sparc sparc # sparc64 sparc64 # xtensa xtensa HOST_QEMU_ARCH = $(ARCH) ifeq ($(HOST_QEMU_ARCH),armeb) HOST_QEMU_SYS_ARCH = arm endif ifeq ($(HOST_QEMU_ARCH),i486) HOST_QEMU_ARCH = i386 endif ifeq ($(HOST_QEMU_ARCH),i586) HOST_QEMU_ARCH = i386 endif ifeq ($(HOST_QEMU_ARCH),i686) HOST_QEMU_ARCH = i386 endif ifeq ($(HOST_QEMU_ARCH),powerpc) HOST_QEMU_ARCH = ppc endif ifeq ($(HOST_QEMU_ARCH),powerpc64) HOST_QEMU_ARCH = ppc64 endif ifeq ($(HOST_QEMU_ARCH),powerpc64le) HOST_QEMU_ARCH = ppc64le HOST_QEMU_SYS_ARCH = ppc64 endif ifeq ($(HOST_QEMU_ARCH),sh4a) HOST_QEMU_ARCH = sh4 endif ifeq ($(HOST_QEMU_ARCH),sh4aeb) HOST_QEMU_ARCH = sh4eb endif HOST_QEMU_SYS_ARCH ?= $(HOST_QEMU_ARCH) HOST_QEMU_CFLAGS = $(HOST_CFLAGS) ifeq ($(BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE),y) HOST_QEMU_TARGETS += $(HOST_QEMU_SYS_ARCH)-softmmu HOST_QEMU_OPTS += --enable-system --enable-fdt HOST_QEMU_CFLAGS += -I$(HOST_DIR)/include/libfdt 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") endif 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 # virtfs-proxy-helper is the only user of libcap-ng. ifeq ($(BR2_PACKAGE_HOST_QEMU_VIRTFS),y) HOST_QEMU_OPTS += --enable-virtfs --enable-cap-ng HOST_QEMU_DEPENDENCIES += host-libcap-ng else HOST_QEMU_OPTS += --disable-virtfs --disable-cap-ng endif ifeq ($(BR2_PACKAGE_HOST_QEMU_USB),y) HOST_QEMU_OPTS += --enable-libusb HOST_QEMU_DEPENDENCIES += host-libusb else HOST_QEMU_OPTS += --disable-libusb endif # Override CPP, as it expects to be able to call it like it'd # call the compiler. define HOST_QEMU_CONFIGURE_CMDS unset TARGET_DIR; \ cd $(@D); $(HOST_CONFIGURE_OPTS) CPP="$(HOSTCC) -E" \ ./configure \ --target-list="$(HOST_QEMU_TARGETS)" \ --prefix="$(HOST_DIR)" \ --interp-prefix=$(STAGING_DIR) \ --cc="$(HOSTCC)" \ --host-cc="$(HOSTCC)" \ --extra-cflags="$(HOST_QEMU_CFLAGS)" \ --extra-ldflags="$(HOST_LDFLAGS)" \ --meson=$(HOST_DIR)/bin/meson \ --ninja=$(HOST_DIR)/bin/ninja \ --disable-alsa \ --disable-bpf \ --disable-bzip2 \ --disable-containers \ --disable-coreaudio \ --disable-curl \ --disable-dbus-display \ --disable-docs \ --disable-dsound \ --disable-jack \ --disable-libssh \ --disable-linux-aio \ --disable-linux-io-uring \ --disable-netmap \ --disable-oss \ --disable-pa \ --disable-sdl \ --disable-selinux \ --disable-vde \ --disable-vhost-user-blk-server \ --disable-virtiofsd \ --disable-vnc-jpeg \ --disable-png \ --disable-vnc-sasl \ --enable-slirp \ --enable-tools \ $(HOST_QEMU_OPTS) endef define HOST_QEMU_BUILD_CMDS unset TARGET_DIR; \ $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_QEMU_INSTALL_CMDS unset TARGET_DIR; \ $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install endef # install symlink to qemu-system ifeq ($(BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE),y) define HOST_QEMU_POST_INSTALL_SYMLINK ln -sf ./qemu-system-$(HOST_QEMU_ARCH) $(HOST_DIR)/bin/qemu-system endef HOST_QEMU_POST_INSTALL_HOOKS += HOST_QEMU_POST_INSTALL_SYMLINK endif $(eval $(host-generic-package)) # variable used by other packages QEMU_USER = $(HOST_DIR)/bin/qemu-$(HOST_QEMU_ARCH) ================================================ FILE: package/qextserialport/0001-Create-a-main-include-file-QExtSerialPort.patch ================================================ From 62fbe9c3539945df6204501b7e3ae0d51db075a3 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 24 Nov 2016 22:30:40 +0100 Subject: [PATCH] Create a main include file QExtSerialPort This main include file will be installed in so that Qt applications can use this library by including header files in a Qt-like style. Signed-off-by: Thomas Petazzoni [Arnout: add it to qextserialport.pri so it is installed] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- src/QExtSerialPort | 2 ++ src/qextserialport.pri | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 src/QExtSerialPort diff --git a/src/QExtSerialPort b/src/QExtSerialPort new file mode 100644 index 0000000..a48aeea --- /dev/null +++ b/src/QExtSerialPort @@ -0,0 +1,2 @@ +#include "qextserialport.h" +#include "qextserialenumerator.h" diff --git a/src/qextserialport.pri b/src/qextserialport.pri index 461d56f..f8a678d 100644 --- a/src/qextserialport.pri +++ b/src/qextserialport.pri @@ -3,7 +3,8 @@ PUBLIC_HEADERS += $$PWD/qextserialport.h \ $$PWD/qextserialenumerator.h \ - $$PWD/qextserialport_global.h + $$PWD/qextserialport_global.h \ + $$PWD/QExtSerialPort HEADERS += $$PUBLIC_HEADERS \ $$PWD/qextserialport_p.h \ ================================================ FILE: package/qextserialport/0002-Tell-qmake-to-add-a-pkgconfig-file-to-ease-usage-wit.patch ================================================ From 14d4d3e7b5c748118acffddd397fb67b37fd5054 Mon Sep 17 00:00:00 2001 From: "Arnout Vandecappelle (Essensium/Mind)" Date: Thu, 24 Nov 2016 22:44:02 +0100 Subject: [PATCH] Tell qmake to add a pkgconfig file to ease usage with applications Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- qextserialport.pro | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qextserialport.pro b/qextserialport.pro index 8d2c03a..2fcb39c 100644 --- a/qextserialport.pro +++ b/qextserialport.pro @@ -42,7 +42,8 @@ TEMPLATE=lib include(src/qextserialport.pri) #create_prl is needed, otherwise, MinGW can't found libqextserialport1.a -CONFIG += create_prl +CONFIG += create_prl create_pc +QMAKE_PKGCONFIG_DESTDIR = pkgconfig #mac framework is designed for shared library macx:qesp_mac_framework:qesp_static: CONFIG -= qesp_static -- 2.10.2 ================================================ FILE: package/qextserialport/Config.in ================================================ config BR2_PACKAGE_QEXTSERIALPORT bool "qextserialport" depends on BR2_PACKAGE_QT5 help A Qt library to manage serial ports http://qextserialport.github.io/ ================================================ FILE: package/qextserialport/qextserialport.hash ================================================ # locally computed sha256 23e3b10a8d8a1e2fb071047144222c43d150748ce6670e5d047ba5b0502ad0b2 qextserialport-ada321a9ee463f628e7b781b8ed00ff219152158.tar.gz sha256 363f34c4e9ee62df5e88788723beb9d0ad2c62fa36625355f261f7e6d672aaf5 LICENSE.md ================================================ FILE: package/qextserialport/qextserialport.mk ================================================ ################################################################################ # # qextserialport # ################################################################################ QEXTSERIALPORT_VERSION = ada321a9ee463f628e7b781b8ed00ff219152158 QEXTSERIALPORT_SITE = $(call github,qextserialport,qextserialport,$(QEXTSERIALPORT_VERSION)) QEXTSERIALPORT_LICENSE = MIT QEXTSERIALPORT_LICENSE_FILES = LICENSE.md QEXTSERIALPORT_INSTALL_STAGING = YES ifeq ($(BR2_STATIC_LIBS),y) QEXTSERIALPORT_CONF_OPTS += CONFIG+=qesp_static endif $(eval $(qmake-package)) ================================================ FILE: package/qhull/Config.in ================================================ config BR2_PACKAGE_QHULL bool "qhull" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 # needs gcc >= 4.4 help Qhull computes the convex hull, Delaunay triangulation, Voronoi diagram, halfspace intersection about a point, furthest-site Delaunay triangulation, and furthest-site Voronoi diagram. The source code runs in 2-d, 3-d, 4-d, and higher dimensions. Qhull implements the Quickhull algorithm for computing the convex hull. It handles roundoff errors from floating point arithmetic. It computes volumes, surface areas, and approximations to the convex hull. http://www.qhull.org comment "qhull needs a toolchain w/ C++, gcc >= 4.4" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 ================================================ FILE: package/qhull/qhull.hash ================================================ # From http://www.qhull.org/download/qhull-2020-src-8.0.2-tgz.md5sum md5 ed767244864488d5e9a22dfa788663a9 qhull-2020-src-8.0.2-tgz # Locally computed sha256 b5c2d7eb833278881b952c8a52d20179eab87766b00b865000469a45c1838b7e qhull-2020-src-8.0.2.tgz sha256 106d55c931fd6a84822e5345d900273d059f1c27310d02567ccb313c5d18c55d COPYING.txt ================================================ FILE: package/qhull/qhull.mk ================================================ ################################################################################ # # qhull # ################################################################################ QHULL_VERSION = 8.0.2 QHULL_SITE = http://www.qhull.org/download QHULL_SOURCE = qhull-2020-src-$(QHULL_VERSION).tgz QHULL_INSTALL_STAGING = YES QHULL_LICENSE = BSD-Style QHULL_LICENSE_FILES = COPYING.txt # Force Release mode to always build qhull_r instead of qhull_rd QHULL_CONF_OPTS = -DCMAKE_BUILD_TYPE=Release # BUILD_SHARED_LIBS is handled in pkg-cmake.mk as it is a generic cmake variable # although BUILD_STATIC_LIBS=ON is default, make it explicit, # cmake and static/shared libs is confusing enough already. ifeq ($(BR2_STATIC_LIBS),y) QHULL_CONF_OPTS += -DBUILD_STATIC_LIBS=ON else ifeq ($(BR2_SHARED_STATIC_LIBS),y) QHULL_CONF_OPTS += -DBUILD_STATIC_LIBS=ON else ifeq ($(BR2_SHARED_LIBS),y) QHULL_CONF_OPTS += -DBUILD_STATIC_LIBS=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/qjson/Config.in ================================================ config BR2_PACKAGE_QJSON bool "qjson" depends on BR2_PACKAGE_QT5 help QJson is a Qt-based library that maps JSON data to QVariant objects and vice versa. http://qjson.sourceforge.net ================================================ FILE: package/qjson/qjson.hash ================================================ # locally computed sha256 e812617477f3c2bb990561767a4cd8b1d3803a52018d4878da302529552610d4 qjson-0.9.0.tar.gz sha256 758a0cd48d2bec59cbd04ab616737b7aa0cdceac87508adbc9468715ac90722b COPYING.lib ================================================ FILE: package/qjson/qjson.mk ================================================ ################################################################################ # # qjson # ################################################################################ QJSON_VERSION = 0.9.0 QJSON_SITE = $(call github,flavio,qjson,$(QJSON_VERSION)) QJSON_INSTALL_STAGING = YES QJSON_DEPENDENCIES = qt5base QJSON_LICENSE = LGPL-2.1 QJSON_LICENSE_FILES = COPYING.lib $(eval $(cmake-package)) ================================================ FILE: package/qlibc/Config.in ================================================ config BR2_PACKAGE_QLIBC bool "qlibc" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help qLibc is currently one of the most functionally complete public licensed C/C++ libraries. The C/C++ library which includes all kinds of containers and general library routines. It provides ready-made set of common container APIs with consistant API look. https://github.com/wolkykim/qlibc comment "qlibc needs a toolchain w/ threads, wchar, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || BR2_STATIC_LIBS ================================================ FILE: package/qlibc/qlibc.hash ================================================ # Locally calculated sha256 e195c97453c260acea4421146ba992d9a4d89732eac345b3765c43cc3326d2ad qlibc-2.4.5.tar.gz sha256 7c9d03656af4c0acf0a35e29459086498dd64080eac6d2945bc1c064aaf18132 LICENSE ================================================ FILE: package/qlibc/qlibc.mk ================================================ ################################################################################ # # qlibc # ################################################################################ QLIBC_VERSION = 2.4.5 QLIBC_SITE = $(call github,wolkykim,qlibc,v$(QLIBC_VERSION)) QLIBC_LICENSE = BSD-2-Clause QLIBC_LICENSE_FILES = LICENSE QLIBC_INSTALL_STAGING = YES QLIBC_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv) # The configure.ac checks for these use AC_CHECK_FILE() which doesn't # work for cross-compilation. If someone wants to enable the support # for OpenSSL or MySQL, some changes to the configure.ac will be # needed. QLIBC_CONF_OPTS = --without-mysql --without-openssl $(eval $(autotools-package)) ================================================ FILE: package/qoriq-rcw/Config.in.host ================================================ config BR2_PACKAGE_HOST_QORIQ_RCW bool "host qoriq-rcw" help This package provides an reset configuration word(RCW) compiler to build NXP QoriQ/LS PBL/RCW binary(s). The package installs example configurations and scripts for each devkit supported in the current release see $(HOST_DIR)/share/rcw. Either a SDK or post scripts can then use this toolset and examples. https://source.codeaurora.org/external/qoriq/qoriq-components/rcw/ if BR2_PACKAGE_HOST_QORIQ_RCW config BR2_PACKAGE_HOST_QORIQ_RCW_CUSTOM_PATH string "RCW Source file paths" help Space-separated list of .rcw and .rcwi files, that will be used to generate a RCW binary. The entire list of .rcwi files used by the .rcw file must be specified. There must be a single .rcw file in the list. This is optional. If left empty, the rcw package will be included for use in the SDK or with post scripts but no RCW binary will not be generated. endif ================================================ FILE: package/qoriq-rcw/qoriq-rcw.hash ================================================ # Locally calculated sha256 bbb595f0b68beb114620f7aeaff073b90938329e10cd6b36daa9f2087f3119a0 qoriq-rcw-LSDK-20.12-br1.tar.gz sha256 68f4b15ecc085729419bc60ca6eeadca5af0237bbfec791e8a79da9c943d42e9 LICENSE ================================================ FILE: package/qoriq-rcw/qoriq-rcw.mk ================================================ ################################################################################ # # qoriq-rcw # ################################################################################ QORIQ_RCW_VERSION = LSDK-20.12 QORIQ_RCW_SITE = https://source.codeaurora.org/external/qoriq/qoriq-components/rcw QORIQ_RCW_SITE_METHOD = git QORIQ_RCW_LICENSE = BSD-3-Clause QORIQ_RCW_LICENSE_FILES = LICENSE HOST_QORIQ_RCW_DEPENDENCIES = $(BR2_PYTHON3_HOST_DEPENDENCY) QORIQ_RCW_FILES = $(call qstrip,$(BR2_PACKAGE_HOST_QORIQ_RCW_CUSTOM_PATH)) ifneq ($(QORIQ_RCW_FILES),) QORIQ_RCW_INCLUDES = $(filter-out %.rcw,$(QORIQ_RCW_FILES)) # Get the name of the custom rcw file from the custom list QORIQ_RCW_PROJECT = $(notdir $(filter %.rcw,$(QORIQ_RCW_FILES))) # Error if there are no or more than one .rcw file ifeq ($(BR_BUILDING),y) ifneq ($(words $(QORIQ_RCW_PROJECT)),1) $(error BR2_PACKAGE_HOST_QORIQ_RCW_CUSTOM_PATH must have exactly one .rcw file) endif endif ifneq ($(QORIQ_RCW_INCLUDES),) define HOST_QORIQ_RCW_ADD_CUSTOM_RCW_INCLUDES mkdir -p $(@D)/custom_board cp -f $(QORIQ_RCW_INCLUDES) $(@D)/custom_board endef HOST_QORIQ_RCW_POST_PATCH_HOOKS += HOST_QORIQ_RCW_ADD_CUSTOM_RCW_INCLUDES endif define HOST_QORIQ_RCW_ADD_CUSTOM_RCW_FILES mkdir -p $(@D)/custom_board/rcw cp -f $(filter %.rcw,$(QORIQ_RCW_FILES)) $(@D)/custom_board/rcw endef HOST_QORIQ_RCW_POST_PATCH_HOOKS += HOST_QORIQ_RCW_ADD_CUSTOM_RCW_FILES # rcw.py is a python3-only script, and we can be using either the # system-provided python3, or our own built with host-python3. # Fortunately, rcw.py uses #!/usr/bin/env python3, so it will # easily find it from PATH. define HOST_QORIQ_RCW_BUILD_CMDS PATH=$(BR_PATH) \ $(@D)/rcw.py \ -i $(@D)/custom_board/rcw/$(QORIQ_RCW_PROJECT) \ -I $(@D)/custom_board -o $(@D)/PBL.bin endef define HOST_QORIQ_RCW_INSTALL_DELIVERY_FILE $(INSTALL) -D -m 0644 $(@D)/PBL.bin $(BINARIES_DIR)/PBL.bin endef endif # Copy source files and script into $(HOST_DIR)/share/rcw/ so a developer # could use a post image or SDK to build/install PBL files. define HOST_QORIQ_RCW_INSTALL_CMDS mkdir -p $(HOST_DIR)/share/rcw cp -a $(@D)/* $(HOST_DIR)/share/rcw $(HOST_QORIQ_RCW_INSTALL_DELIVERY_FILE) endef $(eval $(host-generic-package)) ================================================ FILE: package/qpdf/0001-libtests-cxx11.cc-fix-build-with-gcc-4.8.patch ================================================ From e70c2605a11d12a8eeee3e7eec46077956e11e1f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 17 Feb 2020 22:36:08 +0100 Subject: [PATCH] libtests/cxx11.cc: fix build with gcc 4.8 Build fails on gcc 4.8 since version 9.1.1 and commit 752416554086d5d34323bc14164d5084db83cfbd: libtests/cxx11.cc: In function 'void do_regex()': libtests/cxx11.cc:347:42: error: 'strlen' is not a member of 'std' std::cregex_iterator m3(str7, str7 + std::strlen(str7), expr4); ^ To fix the build failure, add missing include on cstring Fixes: - http://autobuild.buildroot.org/results/ad7fb68ae87850a85509eed80fd0cae8721b10c5 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/qpdf/qpdf/pull/400] --- libtests/cxx11.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/libtests/cxx11.cc b/libtests/cxx11.cc index fa1dc6b..91ed7b1 100644 --- a/libtests/cxx11.cc +++ b/libtests/cxx11.cc @@ -1,5 +1,6 @@ #include #include +#include #include #include #include -- 2.24.1 ================================================ FILE: package/qpdf/0002-Fix-some-pipelines-to-be-safe-if-downstream-write-fails.patch ================================================ From dc92574c10f3e2516ec6445b88c5d584f40df4e5 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Mon, 4 Jan 2021 11:55:28 -0500 Subject: [PATCH] Fix some pipelines to be safe if downstream write fails (fuzz issue 28262) [Retrieved (and updated to remove updates on ChangeLog and fuzz) from: https://github.com/qpdf/qpdf/commit/dc92574c10f3e2516ec6445b88c5d584f40df4e5] Signed-off-by: Fabrice Fontaine --- ChangeLog | 6 ++++++ fuzz/qpdf_extra/28262.fuzz | Bin 0 -> 40395 bytes libqpdf/Pl_AES_PDF.cc | 2 +- libqpdf/Pl_ASCII85Decoder.cc | 7 +++++-- libqpdf/Pl_ASCIIHexDecoder.cc | 6 ++++-- libqpdf/Pl_Count.cc | 2 +- 6 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 fuzz/qpdf_extra/28262.fuzz diff --git a/libqpdf/Pl_AES_PDF.cc b/libqpdf/Pl_AES_PDF.cc index 18cf3a4d..2865f804 100644 --- a/libqpdf/Pl_AES_PDF.cc +++ b/libqpdf/Pl_AES_PDF.cc @@ -238,6 +238,6 @@ Pl_AES_PDF::flush(bool strip_padding) } } } - getNext()->write(this->outbuf, bytes); this->offset = 0; + getNext()->write(this->outbuf, bytes); } diff --git a/libqpdf/Pl_ASCII85Decoder.cc b/libqpdf/Pl_ASCII85Decoder.cc index b8df3e87..9d9f6704 100644 --- a/libqpdf/Pl_ASCII85Decoder.cc +++ b/libqpdf/Pl_ASCII85Decoder.cc @@ -119,10 +119,13 @@ Pl_ASCII85Decoder::flush() QTC::TC("libtests", "Pl_ASCII85Decoder partial flush", (this->pos == 5) ? 0 : 1); - getNext()->write(outbuf, this->pos - 1); - + // Reset before calling getNext()->write in case that throws an + // exception. + auto t = this->pos - 1; this->pos = 0; memset(this->inbuf, 117, 5); + + getNext()->write(outbuf, t); } void diff --git a/libqpdf/Pl_ASCIIHexDecoder.cc b/libqpdf/Pl_ASCIIHexDecoder.cc index f20a9769..7845268e 100644 --- a/libqpdf/Pl_ASCIIHexDecoder.cc +++ b/libqpdf/Pl_ASCIIHexDecoder.cc @@ -97,12 +97,14 @@ Pl_ASCIIHexDecoder::flush() QTC::TC("libtests", "Pl_ASCIIHexDecoder partial flush", (this->pos == 2) ? 0 : 1); - getNext()->write(&ch, 1); - + // Reset before calling getNext()->write in case that throws an + // exception. this->pos = 0; this->inbuf[0] = '0'; this->inbuf[1] = '0'; this->inbuf[2] = '\0'; + + getNext()->write(&ch, 1); } void diff --git a/libqpdf/Pl_Count.cc b/libqpdf/Pl_Count.cc index 8077092a..c35619b8 100644 --- a/libqpdf/Pl_Count.cc +++ b/libqpdf/Pl_Count.cc @@ -27,8 +27,8 @@ Pl_Count::write(unsigned char* buf, size_t len) if (len) { this->m->count += QIntC::to_offset(len); - getNext()->write(buf, len); this->m->last_char = buf[len - 1]; + getNext()->write(buf, len); } } ================================================ FILE: package/qpdf/Config.in ================================================ config BR2_PACKAGE_QPDF bool "qpdf" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 select BR2_PACKAGE_ZLIB select BR2_PACKAGE_JPEG help QPDF is a command-line program that does structural, content- preserving transformations on PDF files. It could have been called something like pdf-to-pdf. It also provides many useful capabilities to developers of PDF-producing software or for people who just want to look at the innards of a PDF file to learn more about how they work. http://qpdf.sourceforge.net/ comment "qpdf needs a toolchain w/ C++, wchar, gcc >= 4.7" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/qpdf/qpdf.hash ================================================ # From https://sourceforge.net/projects/qpdf/files/qpdf/9.1.1/qpdf-9.1.1.sha512/download sha512 008a11fef663a57ca173631f2053988023babea6c333cfe01db0ef955c8cd36d387ed9f2039f55bd5f9ca94c7a8e400461a09a15c5f89e03bc0817fdd0d3d585 qpdf-9.1.1.tar.gz # Locally computed: sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt sha256 fb929ac30decb4dc3a2eea2bec6c43296a797c5d2d602deb3784ee39430583d5 Artistic-2.0 ================================================ FILE: package/qpdf/qpdf.mk ================================================ ################################################################################ # # qpdf # ################################################################################ QPDF_VERSION = 9.1.1 QPDF_SITE = http://downloads.sourceforge.net/project/qpdf/qpdf/$(QPDF_VERSION) QPDF_INSTALL_STAGING = YES QPDF_LICENSE = Apache-2.0 or Artistic-2.0 QPDF_LICENSE_FILES = LICENSE.txt Artistic-2.0 QPDF_CPE_ID_VENDOR = qpdf_project QPDF_DEPENDENCIES = host-pkgconf zlib jpeg QPDF_CONF_OPTS = --with-random=/dev/urandom # 0002-Fix-some-pipelines-to-be-safe-if-downstream-write-fails.patch QPDF_IGNORE_CVES += CVE-2021-36978 ifeq ($(BR2_PACKAGE_GNUTLS),y) QPDF_CONF_OPTS += --enable-crypto-gnutls QPDF_DEPENDENCIES += gnutls else QPDF_CONF_OPTS += --disable-crypto-gnutls endif $(eval $(autotools-package)) ================================================ FILE: package/qpid-proton/Config.in ================================================ config BR2_PACKAGE_QPID_PROTON bool "qpid-proton" depends on !BR2_STATIC_LIBS # build a shared library select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help The AMQP messaging toolkit Qpid Proton is a high-performance, lightweight messaging library. It can be used in the widest range of messaging applications, including brokers, client libraries, routers, bridges, proxies, and more. https://qpid.apache.org/proton/ comment "qpid-proton needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/qpid-proton/qpid-proton.hash ================================================ # Hash from: https://www.apache.org/dist/qpid/proton/0.35.0/qpid-proton-0.35.0.tar.gz.sha512 sha512 1031e3d45854107a516699e1d18269c6acb22549b2709c1fc1cd25eb870096de109077445f1b400edf231bb21a476a268e2d6674e986fc50e92a281549085543 qpid-proton-0.35.0.tar.gz # Locally computed sha256 52310e65489d30afeefc8589479fc02862a875349c19edd165658a915009da82 LICENSE.txt ================================================ FILE: package/qpid-proton/qpid-proton.mk ================================================ ################################################################################ # # qpid-proton # ################################################################################ QPID_PROTON_VERSION = 0.35.0 QPID_PROTON_SITE = \ https://downloads.apache.org/qpid/proton/$(QPID_PROTON_VERSION) QPID_PROTON_LICENSE = Apache-2.0 QPID_PROTON_LICENSE_FILES = LICENSE.txt QPID_PROTON_CPE_ID_VENDOR = apache QPID_PROTON_CPE_ID_PRODUCT = qpid_proton QPID_PROTON_INSTALL_STAGING = YES QPID_PROTON_DEPENDENCIES = \ host-python3 \ util-linux \ $(if $(BR2_PACKAGE_LIBUV),libuv) \ $(if $(BR2_PACKAGE_OPENSSL),openssl) # python and ruby language bindings are enabled when host-swig tool is present # in HOST_DIR. # go language binding is enabled when host-go is present # For now, disable all of them. QPID_PROTON_CONF_OPTS = \ -DBUILD_GO=OFF \ -DBUILD_PYTHON=OFF \ -DBUILD_RUBY=OFF \ -DENABLE_FUZZ_TESTING=OFF \ -DENABLE_VALGRIND=OFF \ -DENABLE_WARNING_ERROR=OFF \ -DPYTHON_EXECUTABLE=$(HOST_DIR)/bin/python3 # epoll proactor unconditionally uses pthread and cpp (C++) bindings # unconditionally use proactor ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) ifeq ($(BR2_INSTALL_LIBSTDCPP),y) QPID_PROTON_CONF_OPTS += -DBUILD_CPP=ON else QPID_PROTON_CONF_OPTS += -DBUILD_CPP=OFF endif else QPID_PROTON_CONF_OPTS += \ -DBUILD_CPP=OFF \ -DPROACTOR=none endif ifeq ($(BR2_PACKAGE_JSONCPP),y) QPID_PROTON_DEPENDENCIES += jsoncpp QPID_PROTON_CONF_OPTS += -DENABLE_JSONCPP=ON else QPID_PROTON_CONF_OPTS += -DENABLE_JSONCPP=OFF endif define QPID_PROTON_REMOVE_USELESS_FILES rm -fr $(TARGET_DIR)/usr/share/proton/ endef QPID_PROTON_POST_INSTALL_TARGET_HOOKS += QPID_PROTON_REMOVE_USELESS_FILES $(eval $(cmake-package)) ================================================ FILE: package/qprint/Config.in ================================================ config BR2_PACKAGE_QPRINT bool "qprint" help qprint is a program that encodes and decodes binary data in the Quoted-Printable encoding, defined as a part of the MIME specification in RFC 1521. This encoding allows for efficient transfer of mostly ASCII data over transports that are only 7-bit clean, like SMTP without 8BITMIME or BINARYMIME extensions. It also allows the transfer of long lines of text by wrapping them every 76 characters. Usually, a sophisticated MUA will take care of automatically choosing the best encodings for an e-mail. Nevertheless, this utility may be useful when a MTA (e.g. msmtp) is used without a MUA, or if using this encoding for other purposes is desired. https://www.fourmilab.ch/webtools/qprint/ ================================================ FILE: package/qprint/qprint.hash ================================================ # Locally computed sha256 ffa9ca1d51c871fb3b56a4bf0165418348cf080f01ff7e59cd04511b9665019c qprint-1.1.tar.gz sha256 3bd4089942977a357fed0d3c84b6ea877000c20c7c344c2feabf4b10db9f7495 COPYING ================================================ FILE: package/qprint/qprint.mk ================================================ ################################################################################ # # qprint # ################################################################################ QPRINT_VERSION = 1.1 QPRINT_SITE = https://www.fourmilab.ch/webtools/qprint QPRINT_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-bin QPRINT_LICENSE = Public Domain QPRINT_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/qt-webkit-kiosk/Config.in ================================================ config BR2_PACKAGE_QT_WEBKIT_KIOSK bool "qt-webkit-kiosk" depends on BR2_PACKAGE_QT5 depends on !BR2_STATIC_LIBS # qt5webkit depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5webkit depends on BR2_HOST_GCC_AT_LEAST_4_9 # qt5webkit -> icu depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # qt5webkit -> icu depends on !BR2_BINFMT_FLAT # qt5webkit -> icu depends on !BR2_MIPS_SOFT_FLOAT # qt5webkit select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_WIDGETS select BR2_PACKAGE_QT5WEBKIT select BR2_PACKAGE_QT5MULTIMEDIA help Simple kiosk-mode browser powered by Qt5Webkit https://github.com/sergey-dryabzhinsky/qt-webkit-kiosk if BR2_PACKAGE_QT_WEBKIT_KIOSK config BR2_PACKAGE_QT_WEBKIT_KIOSK_SOUNDS bool "Install browser sound files" help Deploy browser sound files on target endif comment "qt-webkit-kiosk needs a toolchain w/ dynamic library, gcc >= 4.9, host gcc >= 4.9" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_4_9 depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE depends on !BR2_BINFMT_FLAT depends on !BR2_MIPS_SOFT_FLOAT ================================================ FILE: package/qt-webkit-kiosk/qt-webkit-kiosk.hash ================================================ # Locally computed sha256 5c3992cc35260d165f9a16094bd224529f012f799e0bc21317a39480cedb1fd2 qt-webkit-kiosk-a7720e50f2bd70aad99e0b465f5c4a57aca48127-br1.tar.gz sha256 de59ec6c939f4c4def79c0a996b3bd5626895fcbd1ae108e7bddb1dac8218381 doc/lgpl.html ================================================ FILE: package/qt-webkit-kiosk/qt-webkit-kiosk.mk ================================================ ################################################################################ # # qt-webkit-kiosk # ################################################################################ QT_WEBKIT_KIOSK_VERSION = a7720e50f2bd70aad99e0b465f5c4a57aca48127 QT_WEBKIT_KIOSK_SITE = https://github.com/sergey-dryabzhinsky/qt-webkit-kiosk.git QT_WEBKIT_KIOSK_SITE_METHOD = git QT_WEBKIT_KIOSK_DEPENDENCIES = qt5webkit qt5multimedia QT_WEBKIT_KIOSK_LICENSE = LGPL-3.0 QT_WEBKIT_KIOSK_LICENSE_FILES = doc/lgpl.html QT_WEBKIT_KIOSK_CONF_OPTS = PREFIX=/usr define QT_WEBKIT_KIOSK_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src -f Makefile.qt-webkit-kiosk \ INSTALL_ROOT=$(TARGET_DIR) \ install_target $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ INSTALL_ROOT=$(TARGET_DIR) \ install_config \ $(if $(BR2_PACKAGE_QT_WEBKIT_KIOSK_SOUNDS),install_sound) endef $(eval $(qmake-package)) ================================================ FILE: package/qt5/Config.in ================================================ config BR2_PACKAGE_QT5_GL_AVAILABLE bool default y depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES config BR2_PACKAGE_QT5_JSCORE_AVAILABLE bool default y # Javascript engine is only available on certain architectures depends on BR2_arm || BR2_aarch64 || BR2_i386 || BR2_x86_64 || BR2_mipsel # ARM needs BLX, so v5t+ depends on !BR2_ARM_CPU_ARMV4 comment "Qt5 needs host g++ >= 5.0, and a toolchain w/ gcc >= 5.0, wchar, NPTL, C++, dynamic library" depends on !BR2_ARM_CPU_ARMV4 depends on !BR2_arc depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS || \ !BR2_HOST_GCC_AT_LEAST_5 || !BR2_TOOLCHAIN_GCC_AT_LEAST_5 menuconfig BR2_PACKAGE_QT5 bool "Qt5" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_HOST_GCC_AT_LEAST_5 # Full C++11 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++11, GCC_BUG_57694 depends on !BR2_ARM_CPU_ARMV4 # needs ARMv5+ # no built-in double-conversion support depends on !BR2_arc depends on !BR2_STATIC_LIBS select BR2_PACKAGE_QT5BASE help This option enables the Qt5 framework. Sub-options allow to select which modules should be built. http://qt.io if BR2_PACKAGE_QT5 source "package/qt5/qt53d/Config.in" source "package/qt5/qt5base/Config.in" source "package/qt5/qt5charts/Config.in" source "package/qt5/qt5coap/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/qt5knx/Config.in" source "package/qt5/qt5location/Config.in" source "package/qt5/qt5lottie/Config.in" source "package/qt5/qt5mqtt/Config.in" source "package/qt5/qt5multimedia/Config.in" source "package/qt5/qt5opcua/Config.in" source "package/qt5/qt5quickcontrols/Config.in" source "package/qt5/qt5quickcontrols2/Config.in" source "package/qt5/qt5quicktimeline/Config.in" source "package/qt5/qt5remoteobjects/Config.in" source "package/qt5/qt5script/Config.in" source "package/qt5/qt5scxml/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/qt5virtualkeyboard/Config.in" source "package/qt5/qt5wayland/Config.in" source "package/qt5/qt5webchannel/Config.in" source "package/qt5/qt5webkit/Config.in" source "package/qt5/qt5webkit-examples/Config.in" source "package/qt5/qt5webengine/Config.in" source "package/qt5/qt5websockets/Config.in" source "package/qt5/qt5webview/Config.in" source "package/qt5/qt5x11extras/Config.in" source "package/qt5/qt5xmlpatterns/Config.in" endif ================================================ FILE: package/qt5/qt5.mk ================================================ ################################################################################ # # qt5 # ################################################################################ QT5_VERSION_MAJOR = 5.15 QT5_VERSION = $(QT5_VERSION_MAJOR).2 QT5_SOURCE_TARBALL_PREFIX = everywhere-src QT5_SITE = https://download.qt.io/archive/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/submodules include $(sort $(wildcard package/qt5/*/*.mk)) # The file "qt.conf" can be used to override the hard-coded paths that are # compiled into the Qt library. We need it to make "qmake" relocatable and # tweak the per-package install pathes define QT5_INSTALL_QT_CONF rm -f $(HOST_DIR)/bin/qt.conf sed -e "s|@@HOST_DIR@@|$(HOST_DIR)|" -e "s|@@STAGING_DIR@@|$(STAGING_DIR)|" \ $(QT5BASE_PKGDIR)/qt.conf.in > $(HOST_DIR)/bin/qt.conf endef ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y) define QT5_QT_CONF_FIXUP $(QT5_INSTALL_QT_CONF) endef endif # Variable for other Qt applications to use QT5_QMAKE = $(HOST_DIR)/bin/qmake -spec devices/linux-buildroot-g++ ================================================ FILE: package/qt5/qt53d/Config.in ================================================ config BR2_PACKAGE_QT53D bool "qt53d" depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative depends on BR2_PACKAGE_QT5_GL_AVAILABLE # qt5declarative_quick select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_QT5DECLARATIVE_QUICK help Qt is a cross-platform application and UI framework for developers using C++. This package corresponds to the qt53d module. This module was in tech preview in Qt 5.6, and promoted to a core module in Qt 5.7.0. 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" depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE depends on !BR2_PACKAGE_QT5_GL_AVAILABLE ================================================ FILE: package/qt5/qt53d/qt53d.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qt3d-everywhere-src-5.15.2.tar.xz.sha256 sha256 03ed6a48c813c75296c19f5d721184ab168280b69d2656cf16f877d3d4c55c1d qt3d-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPL sha256 245248009fd0af1725d183248380e476c1283383909358a13686606352bf2a17 LICENSE.GPLv3 sha256 9ae1959e86bd49b9680f78e0b49d4e52ae88a3f234d497e175e42a7e8ed59216 LICENSE.LGPLv3 ================================================ FILE: package/qt5/qt53d/qt53d.mk ================================================ ################################################################################ # # qt53d # ################################################################################ QT53D_VERSION = $(QT5_VERSION) QT53D_SITE = $(QT5_SITE) QT53D_SOURCE = qt3d-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT53D_VERSION).tar.xz QT53D_DEPENDENCIES = qt5declarative QT53D_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_ASSIMP),y) QT53D_DEPENDENCIES += assimp endif QT53D_LICENSE = GPL-2.0 or GPL-3.0 or LGPL-3.0 QT53D_LICENSE_FILES = LICENSE.GPL LICENSE.GPLv3 LICENSE.LGPLv3 $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5base/0001-qtbase-Fix-build-error-when-using-EGL.patch ================================================ From c11299086b7718332e2b4fbc37ce6f6ff427c5ba Mon Sep 17 00:00:00 2001 From: Yuqing Zhu Date: Mon, 27 Mar 2017 15:33:35 +0800 Subject: [PATCH] qtbase: Fix build error when using EGL MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit A build error was occurring due to missing EGL configuration. Fixed by adding the necessary ties to the EGL pkg-config. Task-number: QTBUG-61712 Change-Id: I87190ea39392b4604c563cf9d89edb85068d85fc Upstream-Status: Pending Signed-off-by: Gaël PORTAY --- mkspecs/features/egl.prf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mkspecs/features/egl.prf b/mkspecs/features/egl.prf index 9fa0c9e219..85d5852ba6 100644 --- a/mkspecs/features/egl.prf +++ b/mkspecs/features/egl.prf @@ -1,3 +1,9 @@ +# egl headers need a definition +PKG_CONFIG = $$pkgConfigExecutable() +PKGCONFIG_CFLAGS = $$system($$PKG_CONFIG --cflags egl) +PKGCONFIG_CFLAGS = $$find(PKGCONFIG_CFLAGS, ^-D.*) +QMAKE_CFLAGS_EGL = $$PKGCONFIG_CFLAGS + INCLUDEPATH += $$QMAKE_INCDIR_EGL LIBS_PRIVATE += $$QMAKE_LIBS_EGL QMAKE_CFLAGS += $$QMAKE_CFLAGS_EGL -- 2.16.1 ================================================ FILE: package/qt5/qt5base/0002-double-conversion-enable-for-microblaze.patch ================================================ From a02b5e3bb41026ca6031d01942a093e9ce54edf3 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Tue, 21 Aug 2018 21:11:40 +0200 Subject: [PATCH] double-conversion: enable for microblaze Signed-off-by: Peter Seiderer [Rebased for Qt5.12.0] Signed-off-by: Peter Seiderer [Rebased for Qt5.14.0] Signed-off-by: Peter Seiderer --- src/3rdparty/double-conversion/include/double-conversion/utils.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h index 70e697ca..2bb8e389 100644 --- a/src/3rdparty/double-conversion/include/double-conversion/utils.h +++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h @@ -102,6 +102,7 @@ int main(int argc, char** argv) { defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \ defined(__riscv) || \ defined(__or1k__) || defined(__arc__) || \ + defined(__microblaze__) || \ defined(__EMSCRIPTEN__) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(__mc68000__) || \ -- 2.23.0 ================================================ FILE: package/qt5/qt5base/0003-double-conversion-enable-for-nios2.patch ================================================ From e3f63db3124caf5bde9cf688eba563f7f025662d Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Sun, 8 Mar 2020 18:08:26 +0100 Subject: [PATCH] double-conversion: enable for nios2 [Upstream: https://github.com/google/double-conversion/commit/a54561be5588ac9b16d3c20760b9b554168bb8aa] Signed-off-by: Peter Seiderer --- src/3rdparty/double-conversion/include/double-conversion/utils.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h index d29de950..55ca5bf5 100644 --- a/src/3rdparty/double-conversion/include/double-conversion/utils.h +++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h @@ -87,6 +87,7 @@ int main(int argc, char** argv) { defined(__ARMEL__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \ defined(__hppa__) || defined(__ia64__) || \ defined(__mips__) || \ + defined(__nios2__) || \ defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \ defined(_POWER) || defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \ defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ -- 2.25.1 ================================================ FILE: package/qt5/qt5base/0004-double-conversion-enable-for-xtensa.patch ================================================ From f423f160b984c47d831b10447af046bfbd6a3ba1 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Tue, 10 Mar 2020 09:01:31 +0100 Subject: [PATCH] double-conversion: enable for xtensa [Upstream: https://github.com/google/double-conversion/commit/a54561be5588ac9b16d3c20760b9b554168bb8aa] Signed-off-by: Peter Seiderer [Rebased for qtbase-everywhere-src-5.14.0] Signed-off-by: Peter Seiderer --- .../double-conversion/include/double-conversion/utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h index 89ab1a31..001ce55f 100644 --- a/src/3rdparty/double-conversion/include/double-conversion/utils.h +++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h @@ -103,7 +103,7 @@ int main(int argc, char** argv) { defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \ defined(__riscv) || \ defined(__or1k__) || defined(__arc__) || \ - defined(__microblaze__) || \ + defined(__microblaze__) || defined(__XTENSA__) || \ defined(__EMSCRIPTEN__) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(__mc68000__) || \ -- 2.26.0 ================================================ FILE: package/qt5/qt5base/0005-eglfs-avoid-breaking-compilation-for-obscure-EGLNativeDisplayType-types.patch ================================================ From 0eb7058b473069a04cde60a800dfd04148c0c8b1 Mon Sep 17 00:00:00 2001 From: Yann E. MORIN Date: Sat, 14 Dec 2020 21:15:17 +0100 Subject: [PATCH] plugins/eglfs/gbm: don't FTBFS when EGLNativeDisplayType is not a pointer On some platforms, EGLNativeDisplayType is not a pointer, but some kind of integer, like an int (e.g. TI's SGX) or an unsigned int. In those cases, the build breaks with: qeglfskmsgbmintegration.cpp: In member function ‘virtual void* QEglFSKmsGbmIntegration::createDisplay(EGLNativeDisplayType)’: qeglfskmsgbmintegration.cpp:83:60: error: invalid conversion from ‘EGLNativeDisplayType’ {aka ‘int’} to ‘void*’ [-fpermissive] 83 | display = getPlatformDisplay(EGL_PLATFORM_GBM_KHR, nativeDisplay, nullptr); | ^~~~~~~~~~~~~ | | | EGLNativeDisplayType {aka int} We fix that by casting nativeDisplay to void* as expected by getPlatformDisplay(). We can do that, because usually, nativeDisplay is already a pointer, and thus this cast is a no-op. When it is not already a pointer, we either don't care because the code path will not be taken at runtime, or the integer really is an opaque handle to some internal, low-level memory management, much like a void* is an pointer to an opaque memory type... It is to be noted, though, that in some ABIs (like x32), the size of a nativeDisplay that is not already a pointer, might be bigger than that of a pointer. There is not much we can do here anyway, since there would be no way to fit that in a void* to begin with, and the build will still fail for those situations. Those types of ABIs are far frome being widespread, the most prominent one, x32, even being retired... To be noted further: a more usual solution (as suggested in QTBUG-72567 or in Gerrit:248270) would be to first cast to a qintptr or a quintptr, before finally casting to a void*. However, casting to either (resp.) qintptr or quintptr first, risk the case that nativeDisplay is of the other kind of signedness, (resp.) unsigned or signed, which would also cause some compile-time breakage. Finally, if nativeDisplay is something that is not an int-like, and that can't be cast into a void*, this would be hugely weird, so much so, that we do not even attempt to catter for that case. Fixes: QTBUG-72567 Inspired-by: https://codereview.qt-project.org/c/qt/qtbase/+/248270 Signed-off-by: Yann E. MORIN --- diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp index d495a8d..059a580 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp @@ -80,7 +80,9 @@ } if (getPlatformDisplay) { - display = getPlatformDisplay(EGL_PLATFORM_GBM_KHR, nativeDisplay, nullptr); + // EGLNativeDisplayType may be int on some platforms but those + // won't hit this path. Have to keep it compiling nonetheless. + display = getPlatformDisplay(EGL_PLATFORM_GBM_KHR, reinterpret_cast(nativeDisplay), nullptr); } else { qCDebug(qLcEglfsKmsDebug, "No eglGetPlatformDisplay for GBM, falling back to eglGetDisplay"); display = eglGetDisplay(nativeDisplay); ================================================ FILE: package/qt5/qt5base/0006-Fix-build-with-GCC-11-include-limits.patch ================================================ From 9c56d4da2ff631a8c1c30475bd792f6c86bda53c Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 18 Jan 2021 07:40:54 -0800 Subject: [PATCH] Fix build with GCC 11: include Fixes: QTBUG-90395 Pick-to: 6.0 Change-Id: Iecc74d2000eb40dfbe7bfffd165b5dd3708b7a40 Reviewed-by: Edward Welbourne [Retrieved (and backported) from: https://github.com/qt/qtbase/commit/9c56d4da2ff631a8c1c30475bd792f6c86bda53c] Signed-off-by: Fabrice Fontaine --- src/corelib/global/qendian.h | 6 ++++-- src/corelib/global/qfloat16.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/corelib/global/qendian.h b/src/corelib/global/qendian.h index 99b529f17cd..c874c5e47ab 100644 --- a/src/corelib/global/qendian.h +++ b/src/corelib/global/qendian.h @@ -1,7 +1,7 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. -** Copyright (C) 2016 Intel Corporation. +** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2021 Intel Corporation. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. @@ -44,6 +44,8 @@ #include #include +#include + // include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems #include #include diff --git a/src/corelib/global/qfloat16.h b/src/corelib/global/qfloat16.h index e9477d2ecec..a25fac28862 100644 --- a/src/corelib/global/qfloat16.h +++ b/src/corelib/global/qfloat16.h @@ -44,6 +44,7 @@ #include #include +#include #include #if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__) ================================================ FILE: package/qt5/qt5base/0007-Build-fixes-for-GCC-11.patch ================================================ From 86494659b2ab14edc653cd2d9260561ad4c4e4e8 Mon Sep 17 00:00:00 2001 From: Ville Voutilainen Date: Mon, 18 Jan 2021 09:58:17 +0200 Subject: [PATCH] Build fixes for GCC 11 Task-number: QTBUG-89977 Change-Id: Ic1b7ddbffb8a0a00f8c621d09a868f1d94a52c21 Reviewed-by: Lars Knoll Reviewed-by: Thiago Macieira [Retrieved (and backported) from: https://github.com/qt/qtbase/commit/813a928c7c3cf98670b6043149880ed5c955efb9] Signed-off-by: Maxim Kochetkov --- src/corelib/text/qbytearraymatcher.h | 2 ++ src/corelib/tools/qsharedpointer_impl.h | 3 --- src/plugins/platforms/xcb/qxcbwindow.cpp | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/corelib/text/qbytearraymatcher.h b/src/corelib/text/qbytearraymatcher.h index 0eedfc1d20..f5f9bef7b8 100644 --- a/src/corelib/text/qbytearraymatcher.h +++ b/src/corelib/text/qbytearraymatcher.h @@ -42,6 +42,8 @@ #include +#include + QT_BEGIN_NAMESPACE diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h index 790c187cb9..4aee98af53 100644 --- a/src/corelib/tools/qsharedpointer_impl.h +++ b/src/corelib/tools/qsharedpointer_impl.h @@ -155,9 +155,6 @@ namespace QtSharedPointer { #endif inline void checkQObjectShared(...) { } inline void setQObjectShared(...) { } - - inline void operator delete(void *ptr) { ::operator delete(ptr); } - inline void operator delete(void *, void *) { } }; // sizeof(ExternalRefCountData) = 12 (32-bit) / 16 (64-bit) diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index 9e7e1a5572..f0866a90ac 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -698,7 +698,7 @@ void QXcbWindow::show() if (isTransient(window())) { const QWindow *tp = window()->transientParent(); if (tp && tp->handle()) - transientXcbParent = static_cast(tp->handle())->winId(); + transientXcbParent = tp->handle()->winId(); // Default to client leader if there is no transient parent, else modal dialogs can // be hidden by their parents. if (!transientXcbParent) -- 2.31.1 ================================================ FILE: package/qt5/qt5base/0008-Add-missing-limits-include.patch ================================================ From 87a869a8404047240cccaa9f101351aeb9417a26 Mon Sep 17 00:00:00 2001 From: Nicolas Fella Date: Sun, 20 Jun 2021 17:36:41 +0200 Subject: [PATCH] Add missing limits include The code uses std::numeric_limits but is lacking the appropriate include Pick-to: 5.15 6.1 6.2 Change-Id: I41fa5ac4d8c4e06f35b5b1551ef2ad8417df80bd Reviewed-by: Giuseppe D'Angelo [Upstream: https://code.qt.io/cgit/qt/qtbase.git/patch/?id=2b2b3155d9f6ba1e4f859741468fbc47db09292b] Signed-off-by: Peter Seiderer --- src/corelib/tools/qoffsetstringarray_p.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/tools/qoffsetstringarray_p.h b/src/corelib/tools/qoffsetstringarray_p.h index 4dd9e960..e26a57ff 100644 --- a/src/corelib/tools/qoffsetstringarray_p.h +++ b/src/corelib/tools/qoffsetstringarray_p.h @@ -55,6 +55,7 @@ #include #include +#include QT_BEGIN_NAMESPACE -- 2.32.0 ================================================ FILE: package/qt5/qt5base/0009-Fix-build-on-riscv32.patch ================================================ From 035dc537bee26e3b63a211b2835d8560439e161f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 27 Aug 2021 16:28:32 +0200 Subject: Fix build on riscv32 riscv32 fails to build because __NR_futex is not defined on this architecture: In file included from thread/qmutex_linux.cpp:45, from thread/qmutex.cpp:804: thread/qfutex_p.h: In function 'int QtLinuxFutex::_q_futex(int*, int, int, quintptr, int*, int)': thread/qfutex_p.h:116:30: error: '__NR_futex' was not declared in this scope; did you mean '_q_futex'? 116 | int result = syscall(__NR_futex, addr, op | FUTEX_PRIVATE_FLAG, val, val2, addr2, val3); | ^~~~~~~~~~ | _q_futex Pick-to: 6.1 6.2 Fixes: QTBUG-96067 Change-Id: Ib6a9bcc496f37e69ac39362cb0a021fccaf311f5 Reviewed-by: Thiago Macieira [Retrieved from: https://code.qt.io/cgit/qt/qtbase.git/commit/?id=035dc537bee26e3b63a211b2835d8560439e161f] --- src/corelib/thread/qfutex_p.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/corelib/thread/qfutex_p.h b/src/corelib/thread/qfutex_p.h index 40482b6fc1..037207a5c0 100644 --- a/src/corelib/thread/qfutex_p.h +++ b/src/corelib/thread/qfutex_p.h @@ -103,6 +103,11 @@ QT_END_NAMESPACE // if not defined in linux/futex.h # define FUTEX_PRIVATE_FLAG 128 // added in v2.6.22 +// RISC-V does not supply __NR_futex +# ifndef __NR_futex +# define __NR_futex __NR_futex_time64 +# endif + QT_BEGIN_NAMESPACE namespace QtLinuxFutex { constexpr inline bool futexAvailable() { return true; } -- cgit v1.2.1 ================================================ FILE: package/qt5/qt5base/Config.in ================================================ config BR2_PACKAGE_QT5BASE bool "qt5base" select BR2_PACKAGE_ZLIB select BR2_PACKAGE_PCRE2 select BR2_PACKAGE_PCRE2_16 select BR2_PACKAGE_LIBOPENSSL_ENABLE_PSK if BR2_PACKAGE_LIBOPENSSL help Qt is a cross-platform application and UI framework for developers using C++. This package corresponds to the qt5base module, which contains the base Qt libraries: QtCore, QtNetwork, QtGui, QtWidgets, etc. http://qt.io if BR2_PACKAGE_QT5BASE config BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS string "Custom configuration options" help Define custom qt5 configuration options which can be used to enable or disable options not managed by buildroot. These options are appended to the ones generated by buildroot and passed to qt5base during configuration. E.g. to remove the Windows Vista style option, add the option -no-feature-style_windowsvista. config BR2_PACKAGE_QT5BASE_CONFIG_FILE string "Config file" help Configure options allow to set which modules are being compiled or not in Qt, but Qt also provide a more fine-grained mechanism to configure which features should be enabled or disabled, through a header file. Examples of such header files can be found in src/corelib/global/qconfig-*.h in the Qt sources. This option allows to set the path of such a configuration file, which Buildroot will give to Qt at compile time. config BR2_PACKAGE_QT5BASE_EXAMPLES bool "Compile and install examples (with code)" select BR2_PACKAGE_QT5BASE_NETWORK select BR2_PACKAGE_QT5BASE_XML help If unsure, say N. config BR2_PACKAGE_QT5BASE_NETWORK def_bool y config BR2_PACKAGE_QT5BASE_CONCURRENT bool "concurrent module" help This options enables the Qt5Concurrent library. config BR2_PACKAGE_QT5BASE_SQL def_bool y if BR2_PACKAGE_QT5BASE_SQL config BR2_PACKAGE_QT5BASE_MYSQL bool "MySQL Plugin" depends on BR2_USE_MMU # mysql select BR2_PACKAGE_MYSQL select BR2_PACKAGE_NCURSES select BR2_PACKAGE_READLINE help Build MySQL plugin If unsure, say n. config BR2_PACKAGE_QT5BASE_PSQL bool "PostgreSQL Plugin" depends on BR2_USE_MMU # postgresql depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR # postgresql select BR2_PACKAGE_POSTGRESQL help Build PostgreSQL plugin If unsure, say n. comment "PostgreSQL plugin needs a toolchain w/ wchar, dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR choice prompt "SQLite 3 support" default BR2_PACKAGE_QT5BASE_SQLITE_NONE help Select SQLite support. config BR2_PACKAGE_QT5BASE_SQLITE_NONE bool "No sqlite support" help Do not compile any kind of SQLite support. config BR2_PACKAGE_QT5BASE_SQLITE_QT bool "Qt SQLite" help Use Qt bundled SQLite support. config BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM bool "System SQLite" select BR2_PACKAGE_SQLITE select BR2_PACKAGE_SQLITE_ENABLE_COLUMN_METADATA help Use system SQLite. endchoice endif config BR2_PACKAGE_QT5BASE_TEST def_bool y config BR2_PACKAGE_QT5BASE_XML def_bool y config BR2_PACKAGE_QT5BASE_GUI bool "gui module" select BR2_PACKAGE_FREETYPE # At least one graphic backend must be enabled, so enable # linuxfb if nothing is enabled. select BR2_PACKAGE_QT5BASE_LINUXFB if \ !BR2_PACKAGE_QT5BASE_DIRECTFB && \ !BR2_PACKAGE_QT5BASE_XCB && \ !BR2_PACKAGE_QT5BASE_EGLFS help This option enables the Qt5Gui library. if BR2_PACKAGE_QT5BASE_GUI config BR2_PACKAGE_QT5BASE_WIDGETS bool "widgets module" select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_QT5BASE_XCB help This option enables the Qt5Widgets library. comment "OpenGL support needs an OpenGL-capable backend" depends on !BR2_PACKAGE_QT5_GL_AVAILABLE config BR2_PACKAGE_QT5BASE_OPENGL bool "OpenGL support" depends on BR2_PACKAGE_QT5_GL_AVAILABLE help This option enables OpenGL support. if BR2_PACKAGE_QT5BASE_OPENGL choice prompt "OpenGL API" help Select OpenGL API. config BR2_PACKAGE_QT5BASE_OPENGL_DESKTOP bool "Desktop OpenGL" depends on BR2_PACKAGE_HAS_LIBGL help Use desktop OpenGL. config BR2_PACKAGE_QT5BASE_OPENGL_ES2 bool "OpenGL ES 2.0+" depends on BR2_PACKAGE_HAS_LIBGLES help Use OpenGL ES 2.0 and later versions. endchoice config BR2_PACKAGE_QT5BASE_OPENGL_LIB bool "opengl module" select BR2_PACKAGE_QT5BASE_WIDGETS help This option enables the Qt5OpenGL library. This library includes OpenGL support classes provided to ease porting from Qt 4.x. endif config BR2_PACKAGE_QT5BASE_LINUXFB bool "linuxfb support" config BR2_PACKAGE_QT5BASE_DIRECTFB bool "directfb support" depends on BR2_PACKAGE_DIRECTFB comment "directfb backend available if directfb is enabled" depends on !BR2_PACKAGE_DIRECTFB config BR2_PACKAGE_QT5BASE_XCB bool "X.org XCB support" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_LIBXCB select BR2_PACKAGE_XCB_UTIL_IMAGE select BR2_PACKAGE_XCB_UTIL_KEYSYMS select BR2_PACKAGE_XCB_UTIL_RENDERUTIL select BR2_PACKAGE_XCB_UTIL_WM select BR2_PACKAGE_LIBXKBCOMMON comment "X.org XCB backend available if X.org is enabled" depends on !BR2_PACKAGE_XORG7 config BR2_PACKAGE_QT5BASE_EGLFS bool "eglfs support" depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_QT5_GL_AVAILABLE select BR2_PACKAGE_QT5BASE_OPENGL comment "eglfs backend available if OpenGL and EGL are enabled" depends on !BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_QT5_GL_AVAILABLE config BR2_PACKAGE_QT5BASE_DEFAULT_QPA string "Default graphical platform" help Choose the default platform abstraction to use for graphical applications (e.g xcb, linuxfb, eglfs, ...). If this is empty, the default for your architecture will be used (usually this is eglfs). You can get a list of supported platforms by running a Qt application with the option "-platform help" on your target. You can choose a different platform at runtime with the -platform option. config BR2_PACKAGE_QT5BASE_PRINTSUPPORT depends on BR2_PACKAGE_QT5BASE_WIDGETS def_bool y config BR2_PACKAGE_QT5BASE_FONTCONFIG bool "fontconfig support" select BR2_PACKAGE_FONTCONFIG help This option enables Fontconfig and Freetype support using the system fontconfig and freetype2 libraries. config BR2_PACKAGE_QT5BASE_HARFBUZZ bool "harfbuzz support" select BR2_PACKAGE_HARFBUZZ if \ BR2_TOOLCHAIN_HAS_SYNC_4 && \ BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 help This option enables HarfBuzz support (either system harfbuzz if the toolchain supports __sync for 4 bytes, or the qt provided one which avoids this dependency by using QAtomic). config BR2_PACKAGE_QT5BASE_GIF bool "GIF support" help This compiles and installs the plugin for GIF reading support. config BR2_PACKAGE_QT5BASE_JPEG bool "JPEG support" select BR2_PACKAGE_JPEG help This option enables JPEG support using the system libjpeg library. config BR2_PACKAGE_QT5BASE_PNG bool "PNG support" select BR2_PACKAGE_LIBPNG help This option enables PNG support using the system libpng library. endif config BR2_PACKAGE_QT5BASE_SYSLOG bool "syslog support" help Logs to the standard UNIX logging mechanism. config BR2_PACKAGE_QT5BASE_DBUS bool "DBus module" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU select BR2_PACKAGE_DBUS help This option enables the D-Bus module. config BR2_PACKAGE_QT5BASE_ICU bool "Enable ICU support" depends on !BR2_BINFMT_FLAT # icu depends on BR2_HOST_GCC_AT_LEAST_4_9 # icu depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # icu select BR2_PACKAGE_ICU help This option enables ICU support in Qt5. This is for example needed for Qt5Webkit. comment "icu support needs a toolchain w/ gcc >= 4.9, host gcc >= 4.9" depends on !BR2_BINFMT_FLAT depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_4_9 config BR2_PACKAGE_QT5BASE_TSLIB bool "Enable Tslib support" select BR2_PACKAGE_TSLIB help This options enables the Tslib plugin endif ================================================ FILE: package/qt5/qt5base/qmake.conf.in ================================================ # Qt5 has a mechanism to support "device" profiles, so that people can # specify the compiler, compiler flags and so on for a specific device. # We leverage this mechanism in the Buildroot packaging of qt5 to # simplify cross-compilation: we have our own "device" definition, which # allows us to easily pass the cross-compiler paths and flags from our # qt5.mk. include(../common/linux_device_pre.conf) # modifications to g++-unix.conf QMAKE_CC = $${CROSS_COMPILE}gcc QMAKE_CXX = $${CROSS_COMPILE}g++ # modifications to gcc-base.conf QMAKE_CFLAGS += $${BR_COMPILER_CFLAGS} QMAKE_CXXFLAGS += $${BR_COMPILER_CXXFLAGS} # Remove all optimisation flags, we really only want our own. QMAKE_CFLAGS_OPTIMIZE = QMAKE_CFLAGS_OPTIMIZE_DEBUG = QMAKE_CFLAGS_OPTIMIZE_FULL = QMAKE_CFLAGS_OPTIMIZE_SIZE = QMAKE_CFLAGS_DEBUG = QMAKE_CXXFLAGS_DEBUG = QMAKE_CFLAGS_RELEASE = QMAKE_CXXFLAGS_RELEASE = CONFIG += nostrip QMAKE_LIBS += -lrt -lpthread -ldl QMAKE_CFLAGS_ISYSTEM = # Architecture specific configuration include(arch.conf) @EGLFS_DEVICE@ include(../common/linux_device_post.conf) load(qt_config) ================================================ FILE: package/qt5/qt5base/qplatformdefs.h ================================================ #include "../../linux-g++/qplatformdefs.h" ================================================ FILE: package/qt5/qt5base/qt.conf.in ================================================ [Paths] Prefix=/usr HostPrefix=@@HOST_DIR@@ Sysroot=@@STAGING_DIR@@ Headers=/usr/include/qt5 Plugins=/usr/lib/qt/plugins Examples=/usr/lib/qt/examples ================================================ FILE: package/qt5/qt5base/qt5base.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtbase-everywhere-src-5.15.2.tar.xz.sha256 sha256 909fad2591ee367993a75d7e2ea50ad4db332f05e1c38dd7a5a274e156a4e0f8 qtbase-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 88ec689407cf2df9b2eb5c45952564d51ce73c129a3bdffb15c0d2d161ad7558 LICENSE.LGPLv3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL sha256 2a886915de4f296cdae5ed67064f86dba01d0c55286d86e8487f2a5caaf40216 src/3rdparty/harfbuzz-ng/COPYING ================================================ FILE: package/qt5/qt5base/qt5base.mk ================================================ ################################################################################ # # qt5base # ################################################################################ QT5BASE_VERSION = $(QT5_VERSION) QT5BASE_SITE = $(QT5_SITE) QT5BASE_SOURCE = qtbase-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5BASE_VERSION).tar.xz QT5BASE_DEPENDENCIES = host-pkgconf pcre2 zlib QT5BASE_INSTALL_STAGING = YES # A few comments: # * -no-pch to workaround the issue described at # http://comments.gmane.org/gmane.comp.lib.qt.devel/5933. # * -system-zlib because zlib is mandatory for Qt build, and we # want to use the Buildroot packaged zlib # * -system-pcre because pcre is mandatory to build Qt, and we # want to use the one packaged in Buildroot # * -no-feature-relocatable to work around path mismatch # while searching qml files and buildroot BR2_ROOTFS_MERGED_USR # feature enabled QT5BASE_CONFIGURE_OPTS += \ -optimized-qmake \ -no-iconv \ -system-zlib \ -system-pcre \ -no-pch \ -shared \ -no-feature-relocatable # starting from version 5.9.0, -optimize-debug is enabled by default # for debug builds and it overrides -O* with -Og which is not what we # want. QT5BASE_CONFIGURE_OPTS += -no-optimize-debug QT5BASE_CFLAGS = $(TARGET_CFLAGS) QT5BASE_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_90620),y) QT5BASE_CFLAGS += -O0 QT5BASE_CXXFLAGS += -O0 endif ifeq ($(BR2_X86_CPU_HAS_SSE2),) QT5BASE_CONFIGURE_OPTS += -no-sse2 else ifeq ($(BR2_X86_CPU_HAS_SSE3),) QT5BASE_CONFIGURE_OPTS += -no-sse3 else ifeq ($(BR2_X86_CPU_HAS_SSSE3),) QT5BASE_CONFIGURE_OPTS += -no-ssse3 else ifeq ($(BR2_X86_CPU_HAS_SSE4),) QT5BASE_CONFIGURE_OPTS += -no-sse4.1 else ifeq ($(BR2_X86_CPU_HAS_SSE42),) QT5BASE_CONFIGURE_OPTS += -no-sse4.2 else ifeq ($(BR2_X86_CPU_HAS_AVX),) QT5BASE_CONFIGURE_OPTS += -no-avx else ifeq ($(BR2_X86_CPU_HAS_AVX2),) QT5BASE_CONFIGURE_OPTS += -no-avx2 else # no buildroot BR2_X86_CPU_HAS_AVX512 option yet for qt configure # option '-no-avx512' endif ifeq ($(BR2_PACKAGE_LIBDRM),y) QT5BASE_CONFIGURE_OPTS += -kms QT5BASE_DEPENDENCIES += libdrm else QT5BASE_CONFIGURE_OPTS += -no-kms endif # Uses libgbm from mesa3d ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y) QT5BASE_CONFIGURE_OPTS += -gbm QT5BASE_DEPENDENCIES += mesa3d else ifeq ($(BR2_PACKAGE_GCNANO_BINARIES),y) QT5BASE_CONFIGURE_OPTS += -gbm QT5BASE_DEPENDENCIES += gcnano-binaries else ifeq ($(BR2_PACKAGE_TI_SGX_UM),y) QT5BASE_CONFIGURE_OPTS += -gbm QT5BASE_DEPENDENCIES += ti-sgx-um else ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL),y) QT5BASE_CONFIGURE_OPTS += -gbm QT5BASE_DEPENDENCIES += imx-gpu-viv else QT5BASE_CONFIGURE_OPTS += -no-gbm endif ifeq ($(BR2_ENABLE_RUNTIME_DEBUG),y) QT5BASE_CONFIGURE_OPTS += -debug else QT5BASE_CONFIGURE_OPTS += -release endif QT5BASE_CONFIGURE_OPTS += -opensource -confirm-license QT5BASE_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5BASE_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPLv3 LICENSE.FDL ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y) QT5BASE_LICENSE += , BSD-3-Clause (examples) endif QT5BASE_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_QT5BASE_CONFIG_FILE)) ifneq ($(QT5BASE_CONFIG_FILE),) QT5BASE_CONFIGURE_OPTS += -qconfig buildroot endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) QT5BASE_DEPENDENCIES += udev endif ifeq ($(BR2_PACKAGE_CUPS), y) QT5BASE_DEPENDENCIES += cups QT5BASE_CONFIGURE_OPTS += -cups else QT5BASE_CONFIGURE_OPTS += -no-cups endif # Qt5 SQL Plugins ifeq ($(BR2_PACKAGE_QT5BASE_SQL),y) ifeq ($(BR2_PACKAGE_QT5BASE_MYSQL),y) QT5BASE_CONFIGURE_OPTS += -plugin-sql-mysql -mysql_config $(STAGING_DIR)/usr/bin/mysql_config QT5BASE_DEPENDENCIES += mysql else QT5BASE_CONFIGURE_OPTS += -no-sql-mysql endif ifeq ($(BR2_PACKAGE_QT5BASE_PSQL),y) QT5BASE_CONFIGURE_OPTS += -plugin-sql-psql -psql_config $(STAGING_DIR)/usr/bin/pg_config QT5BASE_DEPENDENCIES += postgresql else QT5BASE_CONFIGURE_OPTS += -no-sql-psql endif QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_SQLITE_QT),-plugin-sql-sqlite) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM),-system-sqlite) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM),sqlite) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_SQLITE_NONE),-no-sql-sqlite) endif ifeq ($(BR2_PACKAGE_QT5BASE_GUI),y) QT5BASE_CONFIGURE_OPTS += -gui -system-freetype QT5BASE_DEPENDENCIES += freetype else QT5BASE_CONFIGURE_OPTS += -no-gui -no-freetype endif ifeq ($(BR2_PACKAGE_QT5BASE_HARFBUZZ),y) ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_4),y) # system harfbuzz in case __sync for 4 bytes is supported QT5BASE_CONFIGURE_OPTS += -system-harfbuzz QT5BASE_DEPENDENCIES += harfbuzz else # qt harfbuzz otherwise (using QAtomic instead) QT5BASE_CONFIGURE_OPTS += -qt-harfbuzz QT5BASE_LICENSE += , MIT (harfbuzz) QT5BASE_LICENSE_FILES += src/3rdparty/harfbuzz-ng/COPYING endif else QT5BASE_CONFIGURE_OPTS += -no-harfbuzz endif QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),-widgets,-no-widgets) # We have to use --enable-linuxfb, otherwise Qt thinks that -linuxfb # is to add a link against the "inuxfb" library. QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_LINUXFB),--enable-linuxfb,-no-linuxfb) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),-directfb,-no-directfb) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),directfb) ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y) QT5BASE_CONFIGURE_OPTS += -xcb QT5BASE_CONFIGURE_OPTS += -xkbcommon QT5BASE_DEPENDENCIES += \ libxcb \ xcb-util-wm \ xcb-util-image \ xcb-util-keysyms \ xcb-util-renderutil \ xlib_libX11 \ libxkbcommon ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS),y) QT5BASE_DEPENDENCIES += xlib_libXext endif else QT5BASE_CONFIGURE_OPTS += -no-xcb endif ifeq ($(BR2_PACKAGE_QT5BASE_OPENGL_DESKTOP),y) QT5BASE_CONFIGURE_OPTS += -opengl desktop QT5BASE_DEPENDENCIES += libgl else ifeq ($(BR2_PACKAGE_QT5BASE_OPENGL_ES2),y) QT5BASE_CONFIGURE_OPTS += -opengl es2 QT5BASE_DEPENDENCIES += libgles else QT5BASE_CONFIGURE_OPTS += -no-opengl 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_QT5BASE_EGLFS),y) QT5BASE_CONFIGURE_OPTS += -eglfs QT5BASE_DEPENDENCIES += libegl else QT5BASE_CONFIGURE_OPTS += -no-eglfs endif QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_OPENSSL),-openssl,-no-openssl) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENSSL),openssl) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_FONTCONFIG),-fontconfig,-no-fontconfig) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_FONTCONFIG),fontconfig) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_GIF),,-no-gif) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_JPEG),-system-libjpeg,-no-libjpeg) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_JPEG),jpeg) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_PNG),-system-libpng,-no-libpng) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_PNG),libpng) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_DBUS),-dbus,-no-dbus) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_DBUS),dbus) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_TSLIB),-tslib,-no-tslib) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_TSLIB),tslib) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_LIBGLIB2),-glib,-no-glib) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBGLIB2),libglib2) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_ICU),-icu,-no-icu) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_ICU),icu) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_EXAMPLES),-make,-nomake) examples ifeq ($(BR2_PACKAGE_LIBINPUT),y) QT5BASE_CONFIGURE_OPTS += -libinput QT5BASE_DEPENDENCIES += libinput else QT5BASE_CONFIGURE_OPTS += -no-libinput endif # only enable gtk support if libgtk3 X11 backend is enabled ifeq ($(BR2_PACKAGE_LIBGTK3)$(BR2_PACKAGE_LIBGTK3_X11),yy) QT5BASE_CONFIGURE_OPTS += -gtk QT5BASE_DEPENDENCIES += libgtk3 else QT5BASE_CONFIGURE_OPTS += -no-gtk endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) QT5BASE_CONFIGURE_OPTS += -journald QT5BASE_DEPENDENCIES += systemd else QT5BASE_CONFIGURE_OPTS += -no-journald endif ifeq ($(BR2_PACKAGE_QT5BASE_SYSLOG),y) QT5BASE_CONFIGURE_OPTS += -syslog else QT5BASE_CONFIGURE_OPTS += -no-syslog endif ifeq ($(BR2_PACKAGE_IMX_GPU_VIV),y) # use vivante backend QT5BASE_EGLFS_DEVICE = EGLFS_DEVICE_INTEGRATION = eglfs_viv else ifeq ($(BR2_PACKAGE_SUNXI_MALI_MAINLINE),y) # use mali backend QT5BASE_EGLFS_DEVICE = EGLFS_DEVICE_INTEGRATION = eglfs_mali endif ifneq ($(QT5BASE_CONFIG_FILE),) define QT5BASE_CONFIGURE_CONFIG_FILE cp $(QT5BASE_CONFIG_FILE) $(@D)/src/corelib/global/qconfig-buildroot.h endef endif QT5BASE_ARCH_CONFIG_FILE = $(@D)/mkspecs/devices/linux-buildroot-g++/arch.conf ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) # Qt 5.8 needs atomics, which on various architectures are in -latomic define QT5BASE_CONFIGURE_ARCH_CONFIG printf '!host_build { \n LIBS += -latomic\n }' >$(QT5BASE_ARCH_CONFIG_FILE) endef endif # This allows to use ccache when available define QT5BASE_CONFIGURE_HOSTCC $(SED) 's,^QMAKE_CC\s*=.*,QMAKE_CC = $(HOSTCC),' $(@D)/mkspecs/common/g++-base.conf $(SED) 's,^QMAKE_CXX\s*=.*,QMAKE_CXX = $(HOSTCXX),' $(@D)/mkspecs/common/g++-base.conf endef # Must be last so can override all options set by Buildroot QT5BASE_CONFIGURE_OPTS += $(call qstrip,$(BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS)) define QT5BASE_CONFIGURE_CMDS mkdir -p $(@D)/mkspecs/devices/linux-buildroot-g++/ sed 's/@EGLFS_DEVICE@/$(QT5BASE_EGLFS_DEVICE)/g' \ $(QT5BASE_PKGDIR)/qmake.conf.in > \ $(@D)/mkspecs/devices/linux-buildroot-g++/qmake.conf $(INSTALL) -m 0644 -D $(QT5BASE_PKGDIR)/qplatformdefs.h \ $(@D)/mkspecs/devices/linux-buildroot-g++/qplatformdefs.h $(QT5BASE_CONFIGURE_CONFIG_FILE) touch $(QT5BASE_ARCH_CONFIG_FILE) $(QT5BASE_CONFIGURE_ARCH_CONFIG) $(QT5BASE_CONFIGURE_HOSTCC) (cd $(@D); \ $(TARGET_MAKE_ENV) \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ MAKEFLAGS="-j$(PARALLEL_JOBS) $(MAKEFLAGS)" \ ./configure \ -v \ -prefix /usr \ -hostprefix $(HOST_DIR) \ -headerdir /usr/include/qt5 \ -sysroot $(STAGING_DIR) \ -plugindir /usr/lib/qt/plugins \ -examplesdir /usr/lib/qt/examples \ -no-rpath \ -nomake tests \ -device buildroot \ -device-option CROSS_COMPILE="$(TARGET_CROSS)" \ -device-option BR_COMPILER_CFLAGS="$(QT5BASE_CFLAGS)" \ -device-option BR_COMPILER_CXXFLAGS="$(QT5BASE_CXXFLAGS)" \ $(QT5BASE_CONFIGURE_OPTS) \ ) endef QT5BASE_POST_INSTALL_STAGING_HOOKS += QT5_INSTALL_QT_CONF $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5charts/Config.in ================================================ config BR2_PACKAGE_QT5CHARTS bool "qt5charts" select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_WIDGETS help Qt is a cross-platform application and UI framework for developers using C++. Qt Charts module provides a set of easy to use chart components. https://doc.qt.io/qt-5/qtcharts-index.html ================================================ FILE: package/qt5/qt5charts/qt5charts.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtcharts-everywhere-src-5.15.2.tar.xz.sha256 sha256 e0750e4195bd8a8b9758ab4d98d437edbe273cd3d289dd6a8f325df6d13f3d11 qtcharts-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 ================================================ FILE: package/qt5/qt5charts/qt5charts.mk ================================================ ################################################################################ # # qt5charts # ################################################################################ QT5CHARTS_VERSION = $(QT5_VERSION) QT5CHARTS_SITE = $(QT5_SITE) QT5CHARTS_SOURCE = qtcharts-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5CHARTS_VERSION).tar.xz QT5CHARTS_INSTALL_STAGING = YES QT5CHARTS_LICENSE = GPL-3.0 QT5CHARTS_LICENSE_FILES = LICENSE.GPL3 ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) QT5CHARTS_DEPENDENCIES += qt5declarative endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5coap/Config.in ================================================ config BR2_PACKAGE_QT5COAP bool "qt5coap" help Qt is a cross-platform application and UI framework for developers using C++. CoAP is a protocol for IoT devices, and machine to machine communication. The Qt CoAP module implements the client side of CoAP defined by RFC 7252. https://doc.qt.io/QtCoAP/qtcoap-index.html ================================================ FILE: package/qt5/qt5coap/qt5coap.hash ================================================ # Hash locally calculated sha256 0ad05a2305437b9b96a4322bfadaa26f043ba16845d5303e53c00c82b37b243f qt5coap-5.15.2-br1.tar.gz # Hashes for license files: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 f827ad079686ba92cc94811e35492d0e8966f704008b6da9eeda0b659fb58a8d LICENSE.FDL ================================================ FILE: package/qt5/qt5coap/qt5coap.mk ================================================ ################################################################################ # # qt5coap # ################################################################################ QT5COAP_VERSION = $(QT5_VERSION) QT5COAP_SITE = https://code.qt.io/cgit/qt/qtcoap.git QT5COAP_SITE_METHOD = git QT5COAP_INSTALL_STAGING = YES QT5COAP_LICENSE = GPL-3.0, GFDL-1.3 QT5COAP_LICENSE_FILES = LICENSE.GPL3 LICENSE.FDL QT5COAP_SYNC_QT_HEADERS = YES $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5connectivity/Config.in ================================================ config BR2_PACKAGE_QT5CONNECTIVITY bool "qt5connectivity" depends on BR2_PACKAGE_NEARD || BR2_PACKAGE_BLUEZ5_UTILS select BR2_PACKAGE_QT5BASE_CONCURRENT select BR2_PACKAGE_QT5BASE_DBUS help Qt is a cross-platform application and UI framework for developers using C++. Qt Connectivity module provides support for Bluetooth/NFC peripherials. http://doc.qt.io/qt-5/qtbluetooth-index.html http://doc.qt.io/qt-5/qtnfc-index.html comment "qt5connectivity needs neard and/or bluez5_utils" depends on !BR2_PACKAGE_NEARD && !BR2_PACKAGE_BLUEZ5_UTILS ================================================ FILE: package/qt5/qt5connectivity/qt5connectivity.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtconnectivity-everywhere-src-5.15.2.tar.xz.sha256 sha256 0380327871f76103e5b8c2a305988d76d352b6a982b3e7b3bc3cdc184c64bfa0 qtconnectivity-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5connectivity/qt5connectivity.mk ================================================ ################################################################################ # # qt5connectivity # ################################################################################ QT5CONNECTIVITY_VERSION = $(QT5_VERSION) QT5CONNECTIVITY_SITE = $(QT5_SITE) QT5CONNECTIVITY_SOURCE = qtconnectivity-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5CONNECTIVITY_VERSION).tar.xz QT5CONNECTIVITY_INSTALL_STAGING = YES QT5CONNECTIVITY_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5CONNECTIVITY_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y) QT5CONNECTIVITY_LICENSE += , BSD-3-Clause (examples) endif QT5CONNECTIVITY_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5DECLARATIVE),qt5declarative) QT5CONNECTIVITY_DEPENDENCIES += $(if $(BR2_PACKAGE_BLUEZ5_UTILS),bluez5_utils) QT5CONNECTIVITY_DEPENDENCIES += $(if $(BR2_PACKAGE_NEARD),neard) $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5declarative/0001-qsgtexture-fix-debug-build-with-uclibc.patch ================================================ From dfa9555010535003eac69788597f53d3ff44168f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 29 Nov 2018 23:33:10 +0100 Subject: [PATCH] qsgtexture: fix debug build with uclibc Debug build of gsgtexture fails on uclibc since version 5.11 and https://github.com/qt/qtdeclarative/commit/7c507eaac3f848f92f2ebdafe8ded4a064d68351: scenegraph/util/qsgtexture.cpp:69:22: fatal error: execinfo.h: No such file or directory #include Indeed, !defined(__UCLIBC__) has been replaced by defined(__GBLIBC__) to fix build on musl but as a result, build fails on uclibc because uclibc also defines __GLIBC__ (and it does not have execinfo like musl) This error is raised only when building in debug mode because CAN_BACKTRACE_EXECINFO is undefined if QT_NO_DEBUG is set So keep defined(__GLIBC__), but put back !defined(__UCLIBC__) Fixes: - http://autobuild.buildroot.org/results/6fce0ce5aea943e097532efbbc8d1e28f41e5866 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/qt/qtdeclarative/pull/4] [Rebased for Qt5.14.0] Signed-off-by: Peter Seiderer --- src/quick/scenegraph/coreapi/qsgtexture.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/quick/scenegraph/coreapi/qsgtexture.cpp b/src/quick/scenegraph/coreapi/qsgtexture.cpp index dfbe4d3f..6a7bc79b 100644 --- a/src/quick/scenegraph/coreapi/qsgtexture.cpp +++ b/src/quick/scenegraph/coreapi/qsgtexture.cpp @@ -46,7 +46,7 @@ #include #include -#if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID) && defined(__GLIBC__) +#if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID) && defined(__GLIBC__) && !defined(__UCLIBC__) #define CAN_BACKTRACE_EXECINFO #endif -- 2.23.0 ================================================ FILE: package/qt5/qt5declarative/0002-qv4regexp_p-needs-c-limits-include-instead-of-plain-.patch ================================================ From bfd3d907f48aba870be00cd251f0b63d34985be2 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 22 Jul 2021 23:02:29 +0200 Subject: [PATCH] qv4regexp_p: needs c++ limits include (instead of plain c limit.h) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes gcc-11 compile: In file included from jsruntime/qv4regexp_p.h:62, from jsruntime/qv4regexp.cpp:40: ../3rdparty/masm/yarr/Yarr.h:46:44: error: ‘numeric_limits’ is not a member of ‘std’ 46 | static const unsigned offsetNoMatch = std::numeric_limits::max(); | ^~~~~~~~~~~~~~ ../3rdparty/masm/yarr/Yarr.h:46:59: error: expected primary-expression before ‘unsigned’ 46 | static const unsigned offsetNoMatch = std::numeric_limits::max(); | ^~~~~~~~ Signed-off-by: Peter Seiderer --- src/qml/jsruntime/qv4regexp_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qml/jsruntime/qv4regexp_p.h b/src/qml/jsruntime/qv4regexp_p.h index 6afb10ea95..c64f3d3c38 100644 --- a/src/qml/jsruntime/qv4regexp_p.h +++ b/src/qml/jsruntime/qv4regexp_p.h @@ -57,7 +57,7 @@ #include #include -#include +#include #include #include -- 2.32.0 ================================================ FILE: package/qt5/qt5declarative/0003-qqmlprofilerevent_p-needs-c-limits-inlcude-fixes-gcc.patch ================================================ From cc8d62f556c065d28a52e4b784b5d22f2cca3001 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 22 Jul 2021 23:13:43 +0200 Subject: [PATCH] qqmlprofilerevent_p: needs c++ limits inlcude (fixes gcc-11 compile) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: In file included from qqmlprofilertypedevent_p.h:43, from qqmlprofilertypedevent.cpp:40: qqmlprofilerevent_p.h: In member function ‘void QQmlProfilerEvent::assignNumbers(const Container&)’: qqmlprofilerevent_p.h:314:65: error: ‘numeric_limits’ is not a member of ‘std’ 314 | static_cast(numbers.size()) : std::numeric_limits::max(); | ^~~~~~~~~~~~~~ qqmlprofilerevent_p.h:314:87: error: expected primary-expression before ‘>’ token 314 | static_cast(numbers.size()) : std::numeric_limits::max(); | ^ qqmlprofilerevent_p.h:314:90: error: ‘::max’ has not been declared; did you mean ‘std::max’? 314 | static_cast(numbers.size()) : std::numeric_limits::max(); | ^~~ | std::max Signed-off-by: Peter Seiderer --- src/qmldebug/qqmlprofilerevent_p.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qmldebug/qqmlprofilerevent_p.h b/src/qmldebug/qqmlprofilerevent_p.h index a7e37d1964..01b2f58f16 100644 --- a/src/qmldebug/qqmlprofilerevent_p.h +++ b/src/qmldebug/qqmlprofilerevent_p.h @@ -48,6 +48,7 @@ #include #include +#include #include // -- 2.32.0 ================================================ FILE: package/qt5/qt5declarative/Config.in ================================================ config BR2_PACKAGE_QT5DECLARATIVE bool "qt5declarative" depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE select BR2_PACKAGE_QT5BASE_GUI help Qt is a cross-platform application and UI framework for developers using C++. Qt Declarative module provides the Qt QML and Qt Quick modules for developing UIs with the QML language http://doc.qt.io/qt-5/qtqml-index.html http://doc.qt.io/qt-5/qtquick-index.html if BR2_PACKAGE_QT5DECLARATIVE config BR2_PACKAGE_QT5DECLARATIVE_QUICK bool "quick module" select BR2_PACKAGE_QT5BASE_OPENGL if BR2_PACKAGE_QT5_GL_AVAILABLE endif ================================================ FILE: package/qt5/qt5declarative/qt5declarative.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtdeclarative-everywhere-src-5.15.2.tar.xz.sha256 sha256 c600d09716940f75d684f61c5bdaced797f623a86db1627da599027f6c635651 qtdeclarative-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5declarative/qt5declarative.mk ================================================ ################################################################################ # # qt5declarative # ################################################################################ QT5DECLARATIVE_VERSION = $(QT5_VERSION) QT5DECLARATIVE_SITE = $(QT5_SITE) QT5DECLARATIVE_SOURCE = qtdeclarative-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5DECLARATIVE_VERSION).tar.xz QT5DECLARATIVE_INSTALL_STAGING = YES QT5DECLARATIVE_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5DECLARATIVE_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5enginio/0001-Do-not-use-deprecated-QLinkedList.patch ================================================ From ca81a62bb3f8ce67d564631bb8d4e11619acf430 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Fri, 3 Apr 2020 19:59:47 +0200 Subject: [PATCH] Do not use deprecated QLinkedList MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Do not use (internally already by QT_NO_LINKED_LIST) deprecated QLinkeList, use QList instead. Fixes: ../../include/Enginio/1.6.3/Enginio/private/../../../../../src/enginio_client/enginioclient_p.h:293:5: error: ‘QLinkedList’ does not name a type Signed-off-by: Peter Seiderer --- src/enginio_client/enginioclient_p.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/enginio_client/enginioclient_p.h b/src/enginio_client/enginioclient_p.h index 6b5dc53..f3fe68e 100644 --- a/src/enginio_client/enginioclient_p.h +++ b/src/enginio_client/enginioclient_p.h @@ -290,7 +290,11 @@ public: QByteArray _backendId; EnginioIdentity *_identity; +#if defined(QT_NO_LINKED_LIST) + QList _connections; +#else QLinkedList _connections; +#endif QVarLengthArray _identityConnections; QUrl _serviceUrl; QSharedPointer _networkManager; -- 2.26.0 ================================================ FILE: package/qt5/qt5enginio/Config.in ================================================ config BR2_PACKAGE_QT5ENGINIO bool "qt5enginio" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_NETWORK help Qt is a cross-platform application and UI framework for developers using C++. Enginio is a Backend-as-a-Service solution for simplifying backend development of connected and data-driven applications. This package has been tagged as deprecated since version 5.6 and not recommended for new design. http://doc.qt.io/archives/qt-5.5/enginio-index.html ================================================ FILE: package/qt5/qt5enginio/qt5enginio.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtenginio-opensource-src-1.6.3.tar.xz.mirrorlist sha256 d907060b355512ceb7a8c3f6980e3979c20d54320b6804303b6c5e8ed42d3912 qtenginio-opensource-src-1.6.3.tar.xz # Hashes for license files: sha256 245248009fd0af1725d183248380e476c1283383909358a13686606352bf2a17 LICENSE.GPLv3 sha256 1996a36160b2158c2be264d2ddfa6148ebe0f1ececff55aca8d754a1ddcc7bb8 LICENSE.LGPLv21 sha256 438c1f9a2b256e47dac33249f2ad6d4a9df643f1ec5312216d528a2f7ad82084 LGPL_EXCEPTION.txt sha256 5ceb37d1c7c1d92878b82af3c0fd5558087f3d5a08a3a4d43850bad4ad265a52 LICENSE.LGPLv3 sha256 f827ad079686ba92cc94811e35492d0e8966f704008b6da9eeda0b659fb58a8d LICENSE.FDL ================================================ FILE: package/qt5/qt5enginio/qt5enginio.mk ================================================ ################################################################################ # # qt5enginio # ################################################################################ # Qt5Enginio does not follow Qt versionning # see https://bugreports.qt.io/browse/QTBUG-50111 QT5ENGINIO_VERSION = 1.6.3 QT5ENGINIO_SITE = https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules QT5ENGINIO_SOURCE = qtenginio-opensource-src-$(QT5ENGINIO_VERSION).tar.xz QT5ENGINIO_DEPENDENCIES = openssl QT5ENGINIO_INSTALL_STAGING = YES QT5ENGINIO_LICENSE = GPL-3.0 or LGPL-2.1 with exception or LGPL-3.0, GFDL-1.3 (docs) QT5ENGINIO_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y) QT5ENGINIO_LICENSE += , BSD-3-Clause (examples) endif ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) QT5ENGINIO_DEPENDENCIES += qt5declarative endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5graphicaleffects/Config.in ================================================ config BR2_PACKAGE_QT5GRAPHICALEFFECTS bool "qt5graphicaleffects" depends on BR2_PACKAGE_QT5_GL_AVAILABLE depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE select BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_QT5DECLARATIVE_QUICK help Qt is a cross-platform application and UI framework for developers using C++. The Qt Graphical Effects module provides a set of QML types for adding visually impressive and configurable effects to user interfaces. http://doc.qt.io/qt-5/qtgraphicaleffects-index.html comment "qt5graphicaleffects needs an OpenGL-capable backend" depends on !BR2_PACKAGE_QT5_GL_AVAILABLE depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE ================================================ FILE: package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtgraphicaleffects-everywhere-src-5.15.2.tar.xz.sha256 sha256 ec8d67f64967d5046410490b549c576f9b9e8b47ec68594ae84aa8870173dfe4 qtgraphicaleffects-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk ================================================ ################################################################################ # # qt5graphicaleffects # ################################################################################ QT5GRAPHICALEFFECTS_VERSION = $(QT5_VERSION) QT5GRAPHICALEFFECTS_SITE = $(QT5_SITE) QT5GRAPHICALEFFECTS_SOURCE = qtgraphicaleffects-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5GRAPHICALEFFECTS_VERSION).tar.xz QT5GRAPHICALEFFECTS_DEPENDENCIES = qt5declarative QT5GRAPHICALEFFECTS_INSTALL_STAGING = YES QT5GRAPHICALEFFECTS_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5GRAPHICALEFFECTS_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5imageformats/Config.in ================================================ config BR2_PACKAGE_QT5IMAGEFORMATS bool "qt5imageformats" select BR2_PACKAGE_QT5BASE_GUI help Qt is a cross-platform application and UI framework for developers using C++. The Qt Image Formats module provides plugins for additional image formats: TIFF, MNG, TGA, WBMP http://doc.qt.io/qt-5/qtimageformats-index.html ================================================ FILE: package/qt5/qt5imageformats/qt5imageformats.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtimageformats-everywhere-src-5.15.2.tar.xz.sha256 sha256 bf8285c7ce04284527ab823ddc7cf48a1bb79131db3a7127342167f4814253d7 qtimageformats-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2 sha256 245248009fd0af1725d183248380e476c1283383909358a13686606352bf2a17 LICENSE.GPLv3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 5ceb37d1c7c1d92878b82af3c0fd5558087f3d5a08a3a4d43850bad4ad265a52 LICENSE.LGPLv3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5imageformats/qt5imageformats.mk ================================================ ################################################################################ # # qt5imageformats # ################################################################################ QT5IMAGEFORMATS_VERSION = $(QT5_VERSION) QT5IMAGEFORMATS_SITE = $(QT5_SITE) QT5IMAGEFORMATS_SOURCE = qtimageformats-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5IMAGEFORMATS_VERSION).tar.xz QT5IMAGEFORMATS_INSTALL_STAGING = YES QT5IMAGEFORMATS_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5IMAGEFORMATS_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.GPL3-EXCEPT LICENSE.LGPLv3 LICENSE.FDL $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5knx/Config.in ================================================ config BR2_PACKAGE_QT5KNX bool "qt5knx" help Qt is a cross-platform application and UI framework for developers using C++. The Qt KNX module implements the client side of a connection between a client and a KNXnet/IP server. This connection can be used to send messages to the KNX bus and to control the functionalities of the KNX devices. https://doc.qt.io/QtKNX/index.html ================================================ FILE: package/qt5/qt5knx/qt5knx.hash ================================================ # Hash locally calculated sha256 932ea512aa8ceb514ac40ce1fcbebe86c306caff1a0b11320d9a36fd84bae10c qt5knx-5.15.2-br1.tar.gz # Hashes for license files: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 f827ad079686ba92cc94811e35492d0e8966f704008b6da9eeda0b659fb58a8d LICENSE.FDL ================================================ FILE: package/qt5/qt5knx/qt5knx.mk ================================================ ################################################################################ # # qt5knx # ################################################################################ QT5KNX_VERSION = $(QT5_VERSION) QT5KNX_SITE = https://code.qt.io/cgit/qt/qtknx.git QT5KNX_SITE_METHOD = git QT5KNX_INSTALL_STAGING = YES QT5KNX_LICENSE = GPL-3.0 with exception QT5KNX_LICENSE_FILES = LICENSE.GPL3 LICENSE.GPL3-EXCEPT QT5KNX_SYNC_QT_HEADERS = YES $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5location/0001-3rdparty-mapbox-gl-native-fix-musl-compile-pthread_g.patch ================================================ From acf752757ee4bf2913289ee1142f4968fdb22a4a Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Wed, 15 Sep 2021 23:05:52 +0200 Subject: [PATCH] 3rdparty: mapbox-gl-native: fix musl compile (pthread_getname_np) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - pthread_getname_np not available with musl libc (patch inspired/ported from [1]) Fixes: platform/default/thread.cpp: In function ‘std::string mbgl::platform::getCurrentThreadName()’: platform/default/thread.cpp:14:5: error: ‘pthread_getname_np’ was not declared in this scope; did you mean ‘pthread_setname_np’? 14 | pthread_getname_np(pthread_self(), name, sizeof(name)); | ^~~~~~~~~~~~~~~~~~ | pthread_setname_np [1] https://github.com/void-linux/void-packages/blob/e64dd67f43c409d2b2db08214084e842d92ad620/srcpkgs/qt5/patches/0014-musl-set_thread_name_np.patch Signed-off-by: Peter Seiderer [yann.morin.1998@free.fr: add uClibc] Signed-off-by: Yann E. MORIN --- src/3rdparty/mapbox-gl-native/platform/default/thread.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/3rdparty/mapbox-gl-native/platform/default/thread.cpp b/src/3rdparty/mapbox-gl-native/platform/default/thread.cpp index c7c79b4..3f135eb 100644 --- a/src/3rdparty/mapbox-gl-native/platform/default/thread.cpp +++ b/src/3rdparty/mapbox-gl-native/platform/default/thread.cpp @@ -11,8 +11,9 @@ namespace platform { std::string getCurrentThreadName() { char name[32] = "unknown"; +#if defined(__GLIBC__) || defined(__UCLIBC__) pthread_getname_np(pthread_self(), name, sizeof(name)); - +#endif return name; } -- 2.33.0 ================================================ FILE: package/qt5/qt5location/Config.in ================================================ config BR2_PACKAGE_QT5LOCATION bool "qt5location" select BR2_PACKAGE_QT5BASE_GUI help Qt is a cross-platform application and UI framework for developers using C++. The Qt Location API helps you create viable mapping solutions using the data available from some of the popular location services. http://doc.qt.io/qt-5/qtlocation-index.html ================================================ FILE: package/qt5/qt5location/qt5location.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtlocation-everywhere-src-5.15.2.tar.xz.sha256 sha256 984fcb09e108df49a8dac35d5ce6dffc49caafd2acb1c2f8a5173a6a21f392a0 qtlocation-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5location/qt5location.mk ================================================ ################################################################################ # # qt5location # ################################################################################ QT5LOCATION_VERSION = $(QT5_VERSION) QT5LOCATION_SITE = $(QT5_SITE) QT5LOCATION_SOURCE = qtlocation-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5LOCATION_VERSION).tar.xz QT5LOCATION_INSTALL_STAGING = YES QT5LOCATION_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5LOCATION_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) QT5LOCATION_DEPENDENCIES += qt5declarative endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5lottie/Config.in ================================================ config BR2_PACKAGE_QT5LOTTIE bool "qt5lottie" depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE select BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_QT5DECLARATIVE_QUICK help Qt is a cross-platform application and UI framework for developers using C++. This package corresponds to the qt5lottie module. https://doc.qt.io/qt-5/qtlottieanimation-index.html ================================================ FILE: package/qt5/qt5lottie/qt5lottie.hash ================================================ # Hash from: http://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtlottie-everywhere-src-5.15.2.tar.xz.sha256 sha256 cec6095ab8f714e609d2ad3ea8c4fd819461ce8793adc42abe37d0f6dc432517 qtlottie-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT ================================================ FILE: package/qt5/qt5lottie/qt5lottie.mk ================================================ ################################################################################ # # qt5lottie # ################################################################################ QT5LOTTIE_VERSION = $(QT5_VERSION) QT5LOTTIE_SITE = $(QT5_SITE) QT5LOTTIE_SOURCE = qtlottie-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5LOTTIE_VERSION).tar.xz QT5LOTTIE_DEPENDENCIES = qt5declarative QT5LOTTIE_INSTALL_STAGING = YES QT5LOTTIE_LICENSE = GPL-3.0 QT5LOTTIE_LICENSE_FILES = LICENSE.GPL3 LICENSE.GPL3-EXCEPT $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5mqtt/Config.in ================================================ config BR2_PACKAGE_QT5MQTT bool "qt5mqtt" help Qt is a cross-platform application and UI framework for developers using C++. The Qt MQTT module provides a standard compliant implementation of the MQTT protocol specification. It enables applications to act as telemetry displays and devices to publish telemetry data. The supported versions are MQTT 3.1, MQTT 3.1.1, and MQTT 5.0. https://doc.qt.io/QtMQTT/index.html ================================================ FILE: package/qt5/qt5mqtt/qt5mqtt.hash ================================================ # Hash locally calculated sha256 38f2bc1bcbdf76d30d78c86426c85f62a6c2091c997cad4b087039f795b2b406 qt5mqtt-5.15.2-br1.tar.gz # Hashes for license files: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT ================================================ FILE: package/qt5/qt5mqtt/qt5mqtt.mk ================================================ ################################################################################ # # qt5mqtt # ################################################################################ QT5MQTT_VERSION = $(QT5_VERSION) QT5MQTT_SITE = https://code.qt.io/cgit/qt/qtmqtt.git QT5MQTT_SITE_METHOD = git QT5MQTT_INSTALL_STAGING = YES QT5MQTT_LICENSE = GPL-3.0 with exception QT5MQTT_LICENSE_FILES = LICENSE.GPL3 LICENSE.GPL3-EXCEPT QT5MQTT_SYNC_QT_HEADERS = YES $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5multimedia/Config.in ================================================ config BR2_PACKAGE_QT5MULTIMEDIA bool "qt5multimedia" 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++. The Qt Multimedia module provides a rich feature set that enables you to easily take advantage of a platform's multimedia capabilities such as media playback and the use of camera and radio devices. http://doc.qt.io/qt-5/multimediaoverview.html ================================================ FILE: package/qt5/qt5multimedia/qt5multimedia.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtmultimedia-everywhere-src-5.15.2.tar.xz.sha256 sha256 0c3758810e5131aabcf76e4965e4c18b8911af54d9edd9305d2a8278d8346df5 qtmultimedia-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL sha256 c1d75c15db4409bcbb182180d582f410a263dc9a631cd546b256e95f1da42165 examples/multimedia/spectrum/3rdparty/fftreal/license.txt ================================================ FILE: package/qt5/qt5multimedia/qt5multimedia.mk ================================================ ################################################################################ # # qt5multimedia # ################################################################################ QT5MULTIMEDIA_VERSION = $(QT5_VERSION) QT5MULTIMEDIA_SITE = $(QT5_SITE) QT5MULTIMEDIA_SOURCE = qtmultimedia-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5MULTIMEDIA_VERSION).tar.xz QT5MULTIMEDIA_INSTALL_STAGING = YES QT5MULTIMEDIA_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5MULTIMEDIA_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y) QT5MULTIMEDIA_DEPENDENCIES += gst1-plugins-base endif ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) QT5MULTIMEDIA_DEPENDENCIES += qt5declarative endif ifeq ($(BR2_PACKAGE_LIBGLIB2)$(BR2_PACKAGE_PULSEAUDIO),yy) QT5MULTIMEDIA_DEPENDENCIES += libglib2 pulseaudio endif ifeq ($(BR2_PACKAGE_ALSA_LIB),y) QT5MULTIMEDIA_DEPENDENCIES += alsa-lib endif ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y) QT5MULTIMEDIA_LICENSE += , LGPL-2.1+ (examples/multimedia/spectrum/3rdparty/fftreal) QT5MULTIMEDIA_LICENSE_FILES += examples/multimedia/spectrum/3rdparty/fftreal/license.txt endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5opcua/Config.in ================================================ config BR2_PACKAGE_QT5OPCUA bool "qt5opcua" depends on BR2_PACKAGE_QT5 help Qt is a cross-platform application and UI framework for developers using C++. The Qt OPC UA module implements a Qt API to interact with OPC UA on top of a 3rd party OPC UA stack. ================================================ FILE: package/qt5/qt5opcua/qt5opcua.hash ================================================ # Hash locally calculated sha256 562171c6dfd6f4f072316ddb6d7c5bcc8907a68ba31005cb8c20ed75beff34fb qt5opcua-5.15.2-br1.tar.gz # Hashes for license files: sha256 d93cc415382f0013088fa276d9cf82373badf244c78220a926f15ee46f0fe3c4 LICENSE-CC0 sha256 f827ad079686ba92cc94811e35492d0e8966f704008b6da9eeda0b659fb58a8d LICENSE.FDL sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 6c3f3c31b93985f1b93bfbb35fb609d37281697d0efc220c9f91cf4b59eaabde LICENSE.GPLv2 sha256 75d800e60c8d58c2e7f0338e8552ea6123a9ce7e5dd8e1cdf2095e013b737488 LICENSE.LGPLv3 ================================================ FILE: package/qt5/qt5opcua/qt5opcua.mk ================================================ ################################################################################ # # qt5opcua # ################################################################################ QT5OPCUA_VERSION = $(QT5_VERSION) QT5OPCUA_SITE = https://code.qt.io/qt/qtopcua.git QT5OPCUA_SITE_METHOD = git QT5OPCUA_INSTALL_STAGING = YES QT5OPCUA_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) CC0-1.0 QT5OPCUA_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPLv3 LICENSE.FDL LICENSE-CC0 QT5OPCUA_SYNC_QT_HEADERS = YES ifeq ($(BR2_PACKAGE_MBEDTLS),y) QT5OPCUA_DEPENDENCIES += mbedtls endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5quickcontrols/Config.in ================================================ config BR2_PACKAGE_QT5QUICKCONTROLS bool "qt5quickcontrols" depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE select BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_QT5DECLARATIVE_QUICK help Qt is a cross-platform application and UI framework for developers using C++. The Qt Quick Controls module provides a set of controls that can be used to build complete interfaces in Qt Quick. http://doc.qt.io/qt-5/qtquickcontrols-index.html ================================================ FILE: package/qt5/qt5quickcontrols/qt5quickcontrols.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtquickcontrols-everywhere-src-5.15.2.tar.xz.sha256 sha256 c393fb7384b1f047f10e91a6832cf3e6a4c2a41408b8cb2d05af2283e8549fb5 qtquickcontrols-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5quickcontrols/qt5quickcontrols.mk ================================================ ################################################################################ # # qt5quickcontrols # ################################################################################ QT5QUICKCONTROLS_VERSION = $(QT5_VERSION) QT5QUICKCONTROLS_SITE = $(QT5_SITE) QT5QUICKCONTROLS_SOURCE = qtquickcontrols-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5QUICKCONTROLS_VERSION).tar.xz QT5QUICKCONTROLS_DEPENDENCIES = qt5declarative QT5QUICKCONTROLS_INSTALL_STAGING = YES QT5QUICKCONTROLS_LICENSE = GPL-2.0 or GPL-3.0 or LGPL-3.0, GFDL-1.3 (docs) QT5QUICKCONTROLS_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.LGPL3 LICENSE.FDL $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5quickcontrols2/Config.in ================================================ config BR2_PACKAGE_QT5QUICKCONTROLS2 bool "qt5quickcontrols2" depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative/quick select BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_QT5DECLARATIVE_QUICK help Qt is a cross-platform application and UI framework for developers using C++. This package corresponds to the qt5quickcontrols2 module. This module was in tech preview in Qt 5.6, and promoted to a core module in Qt 5.7.0. https://doc.qt.io/qt-5/qtquickcontrols2-index.html ================================================ FILE: package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtquickcontrols2-everywhere-src-5.15.2.tar.xz.sha256 sha256 671b6ce5f4b8ecc94db622d5d5fb29ef4ff92819be08e5ea55bfcab579de8919 qtquickcontrols2-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 d2cfc059acb4abd8e513cd0a73cd8489f34cbafa7bc34d5d31fb3210821cf8ca LICENSE.GPLv3 sha256 9e63a04ce021b8bf811b30881fa51c8c3db88afeead942cd59322f2fb69c75bc LICENSE.LGPLv3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk ================================================ ################################################################################ # # qt5quickcontrols2 # ################################################################################ QT5QUICKCONTROLS2_VERSION = $(QT5_VERSION) QT5QUICKCONTROLS2_SITE = $(QT5_SITE) QT5QUICKCONTROLS2_SOURCE = qtquickcontrols2-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5QUICKCONTROLS2_VERSION).tar.xz QT5QUICKCONTROLS2_DEPENDENCIES = qt5declarative QT5QUICKCONTROLS2_INSTALL_STAGING = YES QT5QUICKCONTROLS2_LICENSE = GPL-3.0 or LGPL-3.0, GFDL-1.3 (docs) QT5QUICKCONTROLS2_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv3 LICENSE.FDL $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5quicktimeline/Config.in ================================================ config BR2_PACKAGE_QT5QUICKTIMELINE bool "qt5quicktimeline" depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative select BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_QT5DECLARATIVE_QUICK help Qt is a cross-platform application and UI framework for developers using C++. This package corresponds to the qt5quicktimeline module. https://doc.qt.io/qt-5/qtquicktimeline-index.html ================================================ FILE: package/qt5/qt5quicktimeline/qt5quicktimeline.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtquicktimeline-everywhere-src-5.15.2.tar.xz.sha256 sha256 b9c247227607437acec7c7dd18ad46179d20369c9d22bdb1e9fc128dfb832a28 qtquicktimeline-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 ================================================ FILE: package/qt5/qt5quicktimeline/qt5quicktimeline.mk ================================================ ################################################################################ # # qt5quicktimeline # ################################################################################ QT5QUICKTIMELINE_VERSION = $(QT5_VERSION) QT5QUICKTIMELINE_SITE = $(QT5_SITE) QT5QUICKTIMELINE_SOURCE = qtquicktimeline-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5QUICKTIMELINE_VERSION).tar.xz QT5QUICKTIMELINE_DEPENDENCIES = qt5declarative QT5QUICKTIMELINE_INSTALL_STAGING = YES QT5QUICKTIMELINE_LICENSE = GPL-3.0, GFDL-1.3 (docs) QT5QUICKTIMELINE_LICENSE_FILES = LICENSE.GPL3 $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5remoteobjects/Config.in ================================================ config BR2_PACKAGE_QT5REMOTEOBJECTS bool "qt5remoteobjects" select BR2_PACKAGE_QT5BASE select BR2_PACKAGE_QT5BASE_NETWORK help Qt is a cross-platform application and UI framework for developers using C++. Qt Remote Objects (QtRO) is an Inter-Process Communication (IPC) module developed for Qt. This module extends Qt's existing functionalities to enable information exchange between processes or computers, easily. https://doc.qt.io/qt-5/qtremoteobjects-index.html ================================================ FILE: package/qt5/qt5remoteobjects/qt5remoteobjects.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtremoteobjects-everywhere-src-5.15.2.tar.xz.sha256 sha256 6781b6bc90888254ea77ce812736dac00c67fa4eeb3095f5cd65e4b9c15dcfc2 qtremoteobjects-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 ================================================ FILE: package/qt5/qt5remoteobjects/qt5remoteobjects.mk ================================================ ################################################################################ # # qt5remoteobjects # ################################################################################ QT5REMOTEOBJECTS_VERSION = $(QT5_VERSION) QT5REMOTEOBJECTS_SITE = $(QT5_SITE) QT5REMOTEOBJECTS_SOURCE = qtremoteobjects-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5REMOTEOBJECTS_VERSION).tar.xz QT5REMOTEOBJECTS_DEPENDENCIES = qt5base QT5REMOTEOBJECTS_INSTALL_STAGING = YES QT5REMOTEOBJECTS_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception (tools), GFDL-1.3 (docs) QT5REMOTEOBJECTS_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) QT5REMOTEOBJECTS_DEPENDENCIES += qt5declarative endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5script/0001-Detect-32-bits-armv8-a-architecture.patch ================================================ From daf2e222903bacf85f27dfb0fffc4459bbf58b77 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Ga=C3=ABl=20PORTAY?= Date: Sun, 10 Jun 2018 08:23:50 -0400 Subject: [PATCH] Detect 32-bits armv8-a architecture MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit These toolchains define __ARM_ARCH_8A__ (for ARM architecture version) and __arm__ (for 32-bits word-size; __aarch64__ for 64-bits). This commit catches this new architecture (armv8a) within a #ifdef/#endif inside the if statement dedicated for 32-bits ARM detection. See commit from WebKit [1] and [2]. Fixes: In file included from ../3rdparty/javascriptcore/JavaScriptCore/config.h:26, from ../3rdparty/javascriptcore/JavaScriptCore/pcre/pcre_compile.cpp:44: ../3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h:370:6: error: #error "Not supported ARM architecture" # error "Not supported ARM architecture" ^~~~~ [1]: https://github.com/WebKit/webkit/commit/313d9fc4bdd2f020a5d0cf834c3c61982f161ebb [2]: https://github.com/WebKit/webkit/commit/98f0de0709786f5d9b09dfd5908266990eb909d6 Signed-off-by: Gaël PORTAY --- src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h index 00caa6d..c4b758e 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h @@ -306,6 +306,10 @@ || defined(__ARM_ARCH_7R__) #define WTF_ARM_ARCH_VERSION 7 +#elif defined(__ARM_ARCH_8__) \ + || defined(__ARM_ARCH_8A__) +#define WTF_ARM_ARCH_VERSION 8 + /* RVCT sets _TARGET_ARCH_ARM */ #elif defined(__TARGET_ARCH_ARM) #define WTF_ARM_ARCH_VERSION __TARGET_ARCH_ARM -- 2.17.1 ================================================ FILE: package/qt5/qt5script/Config.in ================================================ config BR2_PACKAGE_QT5SCRIPT bool "qt5script" depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE help Qt is a cross-platform application and UI framework for developers using C++. Qt Script provides support for making Qt applications scriptable. Provided for Qt 4.x compatibility. This package has been tagged as deprecated since version 5.5.0 and should be replaced by Qt QML module in new design. http://doc.qt.io/qt-5/qtscript-index.html ================================================ FILE: package/qt5/qt5script/qt5script.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtscript-everywhere-src-5.15.2.tar.xz.sha256 sha256 a299715369afbd1caa4d7fa2875d442eab91adcaacafce54a36922442624673e qtscript-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL sha256 5094ecb9c9dcd0eadc34f3c11511d9b5535063032bc150164ecd1a5d5a445547 src/3rdparty/javascriptcore/JavaScriptCore/COPYING.LIB sha256 43b007cd3ac7b7ea5284b13e9580334028e6f42e859059605d57558f39374197 src/3rdparty/javascriptcore/JavaScriptCore/pcre/COPYING ================================================ FILE: package/qt5/qt5script/qt5script.mk ================================================ ################################################################################ # # qt5script # ################################################################################ QT5SCRIPT_VERSION = $(QT5_VERSION) QT5SCRIPT_SITE = $(QT5_SITE) QT5SCRIPT_SOURCE = qtscript-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5SCRIPT_VERSION).tar.xz QT5SCRIPT_INSTALL_STAGING = YES # JavaScriptCore contains files under BSD-2-Clause, BSD-3-Clause, and LGPL-2+. # This is linked into libQt5Script, which also contains Qt sources under # LGPL-2.1 (only). Therefore, the library is LGPL-2.1 and BSD-3-Clause. # libQt5ScriptTools is under the normal Qt opensource license. QT5SCRIPT_LICENSE = LGPL-2.1, BSD-3-Clause, LGPL-3.0 or GPL-2.0+ (libQt5ScriptTools), GFDL-1.3 (docs) # LGPL-2.1 license file is missing QT5SCRIPT_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.LGPL3 LICENSE.FDL # License files from JavaScriptCore QT5SCRIPT_LICENSE_FILES += \ src/3rdparty/javascriptcore/JavaScriptCore/COPYING.LIB \ src/3rdparty/javascriptcore/JavaScriptCore/pcre/COPYING $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5scxml/Config.in ================================================ config BR2_PACKAGE_QT5SCXML bool "qt5scxml" depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative select BR2_PACKAGE_QT5DECLARATIVE help Qt is a cross-platform application and UI framework for developers using C++. The Qt SCXML module provides functionality to create state machines from SCXML files. https://doc.qt.io/qt-5/qtscxml-index.html ================================================ FILE: package/qt5/qt5scxml/qt5scxml.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtscxml-everywhere-src-5.15.2.tar.xz.sha256 sha256 60b9590b9a41c60cee7b8a8c8410ee4625f0389c1ff8d79883ec5a985638a7dc qtscxml-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 ================================================ FILE: package/qt5/qt5scxml/qt5scxml.mk ================================================ ################################################################################ # # qt5scxml # ################################################################################ QT5SCXML_VERSION = $(QT5_VERSION) QT5SCXML_SITE = $(QT5_SITE) QT5SCXML_SOURCE = qtscxml-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5SCXML_VERSION).tar.xz QT5SCXML_DEPENDENCIES = qt5declarative QT5SCXML_INSTALL_STAGING = YES QT5SCXML_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5SCXML_LICENSE_FILES = LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y) QT5SCXML_LICENSE += , BSD-3-Clause (examples) endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5sensors/Config.in ================================================ config BR2_PACKAGE_QT5SENSORS bool "qt5sensors" help Qt is a cross-platform application and UI framework for developers using C++. The Qt Sensors API provides access to sensor hardware via QML and C++ interfaces. http://doc.qt.io/qt-5/qtsensors-index.html ================================================ FILE: package/qt5/qt5sensors/qt5sensors.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtsensors-everywhere-src-5.15.2.tar.xz.sha256 sha256 3f0011f9e9942cad119146b54d960438f4568a22a274cdad4fae06bb4e0e4839 qtsensors-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5sensors/qt5sensors.mk ================================================ ################################################################################ # # qt5sensors # ################################################################################ QT5SENSORS_VERSION = $(QT5_VERSION) QT5SENSORS_SITE = $(QT5_SITE) QT5SENSORS_SOURCE = qtsensors-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5SENSORS_VERSION).tar.xz QT5SENSORS_INSTALL_STAGING = YES QT5SENSORS_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5SENSORS_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) QT5SENSORS_DEPENDENCIES += qt5declarative endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5serialbus/Config.in ================================================ config BR2_PACKAGE_QT5SERIALBUS bool "qt5serialbus" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 # CAN FD 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. This module was in tech preview in Qt 5.6, and promoted to a core module in Qt 5.8.0. http://doc.qt.io/qt-5/qtserialbus-index.html comment "qt5serialbus needs headers >= 3.6" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 ================================================ FILE: package/qt5/qt5serialbus/qt5serialbus.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtserialbus-everywhere-src-5.15.2.tar.xz.sha256 sha256 aeeb7e5c0d3f8503215b22e1a84c0002ca67cf63862f6e3c6ef44a67ca31bd88 qtserialbus-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2 sha256 245248009fd0af1725d183248380e476c1283383909358a13686606352bf2a17 LICENSE.GPLv3 sha256 5ceb37d1c7c1d92878b82af3c0fd5558087f3d5a08a3a4d43850bad4ad265a52 LICENSE.LGPLv3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5serialbus/qt5serialbus.mk ================================================ ################################################################################ # # qt5serialbus # ################################################################################ QT5SERIALBUS_VERSION = $(QT5_VERSION) QT5SERIALBUS_SITE = $(QT5_SITE) QT5SERIALBUS_SOURCE = qtserialbus-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5SERIALBUS_VERSION).tar.xz QT5SERIALBUS_DEPENDENCIES = qt5serialport QT5SERIALBUS_INSTALL_STAGING = YES QT5SERIALBUS_LICENSE = GPL-2.0 or GPL-3.0 or LGPL-3.0, GFDL-1.3 (docs) QT5SERIALBUS_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv3 LICENSE.FDL $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5serialport/Config.in ================================================ config BR2_PACKAGE_QT5SERIALPORT bool "qt5serialport" help Qt is a cross-platform application and UI framework for developers using C++. Qt Serial Port provides the basic functionality, which includes configuring, I/O operations, getting and setting the control signals of the RS-232 pinouts. http://doc.qt.io/qt-5/qtserialport-index.html ================================================ FILE: package/qt5/qt5serialport/qt5serialport.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtserialport-everywhere-src-5.15.2.tar.xz.sha256 sha256 59c559d748417306bc1b2cf2315c1e63eed011ace38ad92946af71f23e2ef79d qtserialport-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5serialport/qt5serialport.mk ================================================ ################################################################################ # # qt5serialport # ################################################################################ QT5SERIALPORT_VERSION = $(QT5_VERSION) QT5SERIALPORT_SITE = $(QT5_SITE) QT5SERIALPORT_SOURCE = qtserialport-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5SERIALPORT_VERSION).tar.xz QT5SERIALPORT_INSTALL_STAGING = YES QT5SERIALPORT_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5SERIALPORT_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5svg/Config.in ================================================ config BR2_PACKAGE_QT5SVG bool "qt5svg" select BR2_PACKAGE_QT5BASE_GUI help Qt is a cross-platform application and UI framework for developers using C++. Qt SVG provides classes for rendering and displaying SVG drawings in widgets and on other paint devices. http://doc.qt.io/qt-5/qtsvg-index.html ================================================ FILE: package/qt5/qt5svg/qt5svg.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtsvg-everywhere-src-5.15.2.tar.xz.sha256 sha256 8bc3c2c1bc2671e9c67d4205589a8309b57903721ad14c60ea21a5d06acb585e qtsvg-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 245248009fd0af1725d183248380e476c1283383909358a13686606352bf2a17 LICENSE.GPLv3 sha256 5ceb37d1c7c1d92878b82af3c0fd5558087f3d5a08a3a4d43850bad4ad265a52 LICENSE.LGPLv3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5svg/qt5svg.mk ================================================ ################################################################################ # # qt5svg # ################################################################################ QT5SVG_VERSION = $(QT5_VERSION) QT5SVG_SITE = $(QT5_SITE) QT5SVG_SOURCE = qtsvg-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5SVG_VERSION).tar.xz QT5SVG_INSTALL_STAGING = YES QT5SVG_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5SVG_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPLv3 LICENSE.LGPLv3 LICENSE.FDL $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5tools/0001-Disable-designer-tool-fixes-configure-error.patch ================================================ From 22d7a9050b04b021e33430d0f7e3c5ee80c24caa Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Tue, 17 Dec 2019 11:01:59 +0100 Subject: [PATCH] Disable designer tool (fixes configure error). Fixes: .../build/qt5tools-5.14.0/src/designer/src/components/lib/lib.pro Project ERROR: Multiple modules claim plugin type 'designer' (uitools, in addition to designer) Signed-off-by: Peter Seiderer [Rebased for Qt5.15.0] Signed-off-by: Peter Seiderer [Rebased for Qt5.15.1] Signed-off-by: Peter Seiderer [Rebased for Qt5.15.2] Signed-off-by: Peter Seiderer --- src/linguist/linguist/linguist.pro | 2 +- src/src.pro | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/linguist/linguist/linguist.pro b/src/linguist/linguist/linguist.pro index d083896..7d74cfc 100644 --- a/src/linguist/linguist/linguist.pro +++ b/src/linguist/linguist/linguist.pro @@ -1,4 +1,4 @@ -QT += core-private gui-private widgets uitools-private printsupport +QT += core-private gui-private widgets printsupport DEFINES += QT_NO_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII diff --git a/src/src.pro b/src/src.pro index f2675c7..360de50 100644 --- a/src/src.pro +++ b/src/src.pro @@ -6,12 +6,9 @@ qtHaveModule(widgets) { } else { QT_FOR_CONFIG += widgets qtConfig(pushbutton):qtConfig(toolbutton) { - SUBDIRS = designer \ - pixeltool + SUBDIRS = pixeltool !static|contains(QT_PLUGINS, qsqlite): SUBDIRS += assistant - - linguist.depends = designer } qtHaveModule(quick):qtConfig(thread):qtConfig(toolbutton): SUBDIRS += distancefieldgenerator } -- 2.29.2 ================================================ FILE: package/qt5/qt5tools/Config.in ================================================ config BR2_PACKAGE_QT5TOOLS bool "qt5tools" help Qt is a cross-platform application and UI framework for developers using C++. Qt Tools provides tools facilitate the development and design of applications. http://doc.qt.io/qt-5/qtmodules.html#qt-tools 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_QDOC_TOOL bool "qdoc host tool" # Needs llvm-config and libclang for the host, which is not # currently supported in Buildroot, unless the target is # already supported by llvm. depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS # llvm, clang depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # llvm, clang depends on BR2_TOOLCHAIN_HAS_THREADS # llvm, clang depends on BR2_INSTALL_LIBSTDCPP # llvm, clang depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # llvm, clang depends on !BR2_STATIC_LIBS # llvm, clang depends on BR2_USE_WCHAR # llvm, clang help This option enables the qdoc host tool. 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 ================================================ FILE: package/qt5/qt5tools/qt5tools.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qttools-everywhere-src-5.15.2.tar.xz.sha256 sha256 c189d0ce1ff7c739db9a3ace52ac3e24cb8fd6dbf234e49f075249b38f43c1cc qttools-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5tools/qt5tools.mk ================================================ ################################################################################ # # qt5tools # ################################################################################ QT5TOOLS_VERSION = $(QT5_VERSION) QT5TOOLS_SITE = $(QT5_SITE) QT5TOOLS_SOURCE = qttools-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5TOOLS_VERSION).tar.xz 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 QT5TOOLS_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5TOOLS_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL QT5TOOLS_BUILD_DIRS_$(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS) += \ linguist/lconvert linguist/lrelease linguist/lupdate QT5TOOLS_INSTALL_STAGING_DIR_$(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS) += \ linguist ifeq ($(BR2_PACKAGE_QT5TOOLS_QDOC_TOOL),y) QT5TOOLS_BUILD_DIRS_y += qdoc QT5TOOLS_INSTALL_STAGING_DIR_y += qdoc QT5TOOLS_DEPENDENCIES += host-clang 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_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 # use install target to copy cmake module files define QT5TOOLS_INSTALL_STAGING_CMDS $(foreach p,$(QT5TOOLS_INSTALL_STAGING_DIR_y), \ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src/$(p) install$(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 $(qmake-package)) ================================================ FILE: package/qt5/qt5virtualkeyboard/Config.in ================================================ config BR2_PACKAGE_QT5VIRTUALKEYBOARD bool "qt5virtualkeyboard" depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative select BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_QT5DECLARATIVE_QUICK select BR2_PACKAGE_QT5SVG help Qt Virtual Keyboard is a virtual keyboard framework that consists of a C++ backend supporting custom input methods as well as a UI frontend implemented in QML. https://doc.qt.io/qt-5/qtvirtualkeyboard-index.html if BR2_PACKAGE_QT5VIRTUALKEYBOARD config BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS string "language layouts" default "en_GB" help The Virtual Keyboard supports the following languages: - Arabic (ar_AR) - Danish (da_DK) - English (en_GB) - Finnish (fi_FI) - French (fr_FR) - German (de_DE) - Hindi (hi_IN) - Italian (it_IT) - Japanese (ja_JP) - Korean (ko_KR) - Norwegian (nb_NO) - Persian/Farsi (fa_FA) - Polish (pl_PL) - Portugese (pt_PT) - Romanian (ro_RO) - Russian (ru_RU) - Simplified Chinese (zh_CN) - Traditional Chinese (zh_TW) - Spanish (es_ES) - Swedish (sv_SE) Note: the special value "all" can be used to install support for all supported languages. config BR2_PACKAGE_QT5VIRTUALKEYBOARD_HANDWRITING bool "handwriting" help Handwriting support, with gestures for fullscreen input. Lipi Toolkit (LipiTk) is an open source toolkit for online Handwriting Recognition. config BR2_PACKAGE_QT5VIRTUALKEYBOARD_ARROW_KEY_NAVIGATION bool "Arrow key navigation" help Allows controlling the keyboard using the arrow and return keys. endif ================================================ FILE: package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtvirtualkeyboard-everywhere-src-5.15.2.tar.xz.sha256 sha256 9a3193913be30f09a896e3b8c2f9696d2e9b3f88a63ae9ca8c97a2786b68cf55 qtvirtualkeyboard-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 7a45a9769d19545480a241230e6ea520b5156fac00930dcd69b6886749743d10 src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/MIT_LICENSE.txt sha256 05cc719deafd0ab083b03296bb2911de10d116953b626a7629b9ca59938038b1 src/plugins/openwnn/3rdparty/openwnn/NOTICE sha256 b5830d96fb5a7e7e7ebcc295f352846b4b998e78fdc8f9aa68e134d2e4b39986 src/plugins/pinyin/3rdparty/pinyin/NOTICE sha256 9400a6128693d2f25653698e695f554660c71efccc8c21af28bf143e35199db6 src/plugins/tcime/3rdparty/tcime/COPYING ================================================ FILE: package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk ================================================ ################################################################################ # # qt5virtualkeyboard # ################################################################################ QT5VIRTUALKEYBOARD_VERSION = $(QT5_VERSION) QT5VIRTUALKEYBOARD_SITE = $(QT5_SITE) QT5VIRTUALKEYBOARD_SOURCE = qtvirtualkeyboard-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5VIRTUALKEYBOARD_VERSION).tar.xz QT5VIRTUALKEYBOARD_DEPENDENCIES = qt5declarative qt5svg QT5VIRTUALKEYBOARD_INSTALL_STAGING = YES QT5VIRTUALKEYBOARD_LICENSE = GPL-3.0 QT5VIRTUALKEYBOARD_LICENSE_FILES = LICENSE.GPL3 QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS = $(call qstrip,$(BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) ifneq ($(strip $(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) QT5VIRTUALKEYBOARD_QMAKEFLAGS += CONFIG+="$(foreach lang,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS),lang-$(lang))" ifneq ($(filter ja_JP all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) QT5VIRTUALKEYBOARD_LICENSE += , Apache-2.0 (openwnn) QT5VIRTUALKEYBOARD_LICENSE_FILES += src/plugins/openwnn/3rdparty/openwnn/NOTICE endif ifneq ($(filter zh_CN all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) QT5VIRTUALKEYBOARD_LICENSE += , Apache-2.0 (pinyin) QT5VIRTUALKEYBOARD_LICENSE_FILES += src/plugins/pinyin/3rdparty/pinyin/NOTICE endif ifneq ($(filter zh_TW all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) QT5VIRTUALKEYBOARD_LICENSE += , Apache-2.0 (tcime), BSD-3-Clause (tcime) QT5VIRTUALKEYBOARD_LICENSE_FILES += src/plugins/tcime/3rdparty/tcime/COPYING endif endif ifeq ($(BR2_PACKAGE_QT5VIRTUALKEYBOARD_HANDWRITING),y) QT5VIRTUALKEYBOARD_CONF_OPTS += CONFIG+=handwriting QT5VIRTUALKEYBOARD_LICENSE += , MIT (lipi-toolkit) QT5VIRTUALKEYBOARD_LICENSE_FILES += src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/MIT_LICENSE.txt endif ifeq ($(BR2_PACKAGE_QT5VIRTUALKEYBOARD_ARROW_KEY_NAVIGATION),y) QT5VIRTUALKEYBOARD_CONF_OPTS += CONFIG+=arrow-key-navigation endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5wayland/Config.in ================================================ comment "qt5wayland needs an OpenGL-capable backend" depends on !BR2_PACKAGE_QT5_GL_AVAILABLE config BR2_PACKAGE_QT5WAYLAND bool "qt5wayland" depends on BR2_PACKAGE_QT5_GL_AVAILABLE select BR2_PACKAGE_WAYLAND help Qt is a cross-platform application and UI framework for developers using C++. This package corresponds to the qt5wayland module. http://qt.io if BR2_PACKAGE_QT5WAYLAND config BR2_PACKAGE_QT5WAYLAND_COMPOSITOR bool "Enable compositor (experimental)" help The compositor API is still experimental, and not built by default. endif ================================================ FILE: package/qt5/qt5wayland/qt5wayland.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtwayland-everywhere-src-5.15.2.tar.xz.sha256 sha256 193732229ff816f3aaab9a5e2f6bed71ddddbf1988ce003fe8dd84a92ce9aeb5 qtwayland-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5wayland/qt5wayland.mk ================================================ ################################################################################ # # qt5wayland # ################################################################################ QT5WAYLAND_VERSION = $(QT5_VERSION) QT5WAYLAND_SITE = $(QT5_SITE) QT5WAYLAND_SOURCE = qtwayland-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5WAYLAND_VERSION).tar.xz QT5WAYLAND_DEPENDENCIES = wayland QT5WAYLAND_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK),y) QT5WAYLAND_DEPENDENCIES += qt5declarative endif ifeq ($(BR2_PACKAGE_LIBXKBCOMMON),y) QT5WAYLAND_DEPENDENCIES += libxkbcommon endif QT5WAYLAND_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5WAYLAND_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL ifeq ($(BR2_PACKAGE_QT5WAYLAND_COMPOSITOR),y) QT5WAYLAND_CONF_OPTS += CONFIG+=wayland-compositor endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5webchannel/Config.in ================================================ config BR2_PACKAGE_QT5WEBCHANNEL bool "qt5webchannel" select BR2_PACKAGE_QT5WEBSOCKETS help Qt is a cross-platform application and UI framework for developers using C++. Qt WebChannel enables peer-to-peer communication between a server (QML/C++ application) and a client (HTML/JavaScript or QML application). http://doc.qt.io/qt-5/qtwebchannel-index.html ================================================ FILE: package/qt5/qt5webchannel/qt5webchannel.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtwebchannel-everywhere-src-5.15.2.tar.xz.sha256 sha256 127fe79c43b386713f151ed7d411cd81e45e29f9c955584f29736f78c9303ec1 qtwebchannel-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5webchannel/qt5webchannel.mk ================================================ ################################################################################ # # qt5webchannel # ################################################################################ QT5WEBCHANNEL_VERSION = $(QT5_VERSION) QT5WEBCHANNEL_SITE = $(QT5_SITE) QT5WEBCHANNEL_SOURCE = qtwebchannel-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5WEBCHANNEL_VERSION).tar.xz QT5WEBCHANNEL_DEPENDENCIES = qt5websockets QT5WEBCHANNEL_INSTALL_STAGING = YES QT5WEBCHANNEL_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5WEBCHANNEL_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y) QT5WEBCHANNEL_LICENSE += , BSD-3-Clause (examples) endif ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) QT5WEBCHANNEL_DEPENDENCIES += qt5declarative endif define QT5WEBCHANNEL_INSTALL_TARGET_JAVASCRIPT $(INSTALL) -m 0644 -D $(@D)/examples/webchannel/shared/qwebchannel.js \ $(TARGET_DIR)/var/www/qwebchannel.js endef QT5WEBCHANNEL_POST_INSTALL_TARGET_HOOKS += QT5WEBCHANNEL_INSTALL_TARGET_JAVASCRIPT $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch ================================================ From 7ae73da23ad998bd1e63ad213cf7a02e61191951 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sat, 23 May 2020 19:01:19 +0200 Subject: [PATCH] gn.pro: don't link statically with libstc++ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit While cross-compiling, qt5webengine is building a host tool but want to link the libstdc++ statically. This requires to install libstdc++-static package on the host (Fedora package name). Otherwise the link fail with: [185/185] LINK gn FAILED: gn /usr/bin/g++ -O3 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-strip-all -Wl,--as-needed -static-libstdc++ -pthread -o gn -Wl,--start-group tools/gn/gn_main.o base.a gn_lib.a -Wl,--end-group -ldl /usr/bin/ld : unable to find -lstdc++ [...] Project ERROR: GN build error! Add --no-static-libstdc++ argument to gn.pro to link to libstdc++.so.6 instead of libstdc++.a. --no-static-libstdc++ has been added by [1] but it force linking statically by default. [1] https://github.com/qt/qtwebengine-chromium/commit/cfab9198a9917f42cf08b1caf84ab9b71aac1911#diff-905c8f054808213577c0a92d1b704615 Signed-off-by: Romain Naour --- src/buildtools/gn.pro | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro index 033202e6..5dd8e241 100644 --- a/src/buildtools/gn.pro +++ b/src/buildtools/gn.pro @@ -20,7 +20,8 @@ build_pass|!debug_and_release { gn_gen_args = --no-last-commit-position --out-path $$out_path \ --cc \"$$which($$QMAKE_CC)\" --cxx \"$$which($$QMAKE_CXX)\" \ - --ld \"$$which($$QMAKE_LINK)\" + --ld \"$$which($$QMAKE_LINK)\" \ + --no-static-libstdc++ msvc:!clang_cl: gn_gen_args += --use-lto -- 2.25.4 ================================================ FILE: package/qt5/qt5webengine/Config.in ================================================ config BR2_PACKAGE_QT5WEBENGINE_ARCH_SUPPORTS bool default y if BR2_aarch64 || BR2_arm || \ BR2_i386 || BR2_x86_64 || \ BR2_mips || BR2_mips64 # -m32 flag is used for 32bit builds and host tools have # limited architecture support depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative depends on !BR2_BINFMT_FLAT # qt5base-icu depends on BR2_USE_MMU # libglib2, qt5base-dbus comment "qt5webengine needs udev /dev management and a glibc toolchain w/ gcc >= 4.9, host gcc >= 4.9, threads, wchar" depends on BR2_PACKAGE_QT5WEBENGINE_ARCH_SUPPORTS depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_4_9 || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR comment "qt5webengine needs an OpenGL and EGL-capable backend" depends on BR2_PACKAGE_QT5WEBENGINE_ARCH_SUPPORTS depends on !BR2_PACKAGE_QT5_GL_AVAILABLE || !BR2_PACKAGE_HAS_LIBEGL config BR2_PACKAGE_QT5WEBENGINE bool "qt5webengine" depends on BR2_PACKAGE_QT5WEBENGINE_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_USES_GLIBC # execinfo.h, mallinfo depends on BR2_HOST_GCC_AT_LEAST_4_9 # qt5base-icu depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # qt5base-icu depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2, libvpx, qt5base-dbus depends on BR2_USE_WCHAR # libglib2 depends on BR2_PACKAGE_QT5_GL_AVAILABLE # qt5declarative, qt5base-eglfs depends on BR2_PACKAGE_HAS_LIBEGL # qt5base-eglfs depends on BR2_PACKAGE_HAS_UDEV # v8 (a chromium 3rd-party) compiles its internal host-tools with the # same word size as the target. For 32-bits targets, it adds the -m32 # flag (for 64-bits, it adds the -m64 flag). # https://github.com/v8/v8/blob/5.6.326.55/gypfiles/toolchain.gypi#L1036-L1037 select BR2_HOSTARCH_NEEDS_IA32_COMPILER if !BR2_ARCH_IS_64 # v8/chromium select BR2_PACKAGE_FFMPEG select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBNSS select BR2_PACKAGE_LIBVPX select BR2_PACKAGE_LIBXKBCOMMON select BR2_PACKAGE_OPUS select BR2_PACKAGE_WEBP select BR2_PACKAGE_WEBP_DEMUX select BR2_PACKAGE_QT5BASE_DBUS select BR2_PACKAGE_QT5BASE_EGLFS select BR2_PACKAGE_QT5BASE_FONTCONFIG select BR2_PACKAGE_QT5BASE_ICU select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_WIDGETS select BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_QT5DECLARATIVE_QUICK select BR2_PACKAGE_QT5QUICKCONTROLS select BR2_PACKAGE_QT5QUICKCONTROLS2 select BR2_PACKAGE_QT5SVG if BR2_PACKAGE_QT5BASE_EXAMPLES select BR2_PACKAGE_QT5WEBCHANNEL select BR2_PACKAGE_XLIB_LIBXCOMPOSITE if BR2_PACKAGE_QT5BASE_XCB select BR2_PACKAGE_XLIB_LIBXCURSOR if BR2_PACKAGE_QT5BASE_XCB select BR2_PACKAGE_XLIB_LIBXI if BR2_PACKAGE_QT5BASE_XCB select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_QT5BASE_XCB select BR2_PACKAGE_XLIB_LIBXSCRNSAVER if BR2_PACKAGE_QT5BASE_XCB select BR2_PACKAGE_XLIB_LIBXTST if BR2_PACKAGE_QT5BASE_XCB help The Qt WebEngine module provides a web browser engine that makes it easy to embed content from the World Wide Web into your Qt application. Qt WebEngine provides C++ classes and QML types for rendering HTML, XHTML, and SVG documents, styled using Cascading Style Sheets (CSS) and scripted with JavaScript. HTML documents can be made fully editable by the user through the use of the contenteditable attribute on HTML elements. http://doc.qt.io/qt-5/qtwebengine-index.html if BR2_PACKAGE_QT5WEBENGINE config BR2_PACKAGE_QT5WEBENGINE_PROPRIETARY_CODECS bool "proprietary codecs" help Qt WebEngine supports the MPEG-4 Part 14 (MP4) file format, which includes required proprietary audio and video codecs, such as H.264 and MPEG layer-3 (MP3). config BR2_PACKAGE_QT5WEBENGINE_ALSA bool "alsa" select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_MIXER select BR2_PACKAGE_ALSA_LIB_RAWMIDI select BR2_PACKAGE_ALSA_LIB_HWDEP select BR2_PACKAGE_ALSA_LIB_SEQ help Enable ALSA support. endif ================================================ FILE: package/qt5/qt5webengine/chromium-latest.inc ================================================ # (echo "QT5WEBENGINE_CHROMIUM_LICENSE_FILES = \\" ; \ # find src/3rdparty/ -type f \ # \( -iname 'license*' -o -iname 'copying*' -o -name 'APPLE_LICENSE' -o -name 'Copyright' -o -path '*/license_texts/*' -o -path '*/licenses/*' \) \ # -a -not -name '*.cc' -not -name '*.py' -not -name '*.pyc' -not -name '*.h' -not -name 'LICENSE.sha1' -not -name 'licensecheck.pl*' -not -name 'license.after' -not -name 'license.before' | \ # sort | sed 's%^\(.*\)$%\t\1 \\%') > package/qt5/qt5webengine/chromium-latest.inc QT5WEBENGINE_CHROMIUM_LICENSE_FILES = \ src/3rdparty/chromium/base/third_party/cityhash/COPYING \ src/3rdparty/chromium/base/third_party/double_conversion/LICENSE \ src/3rdparty/chromium/base/third_party/dynamic_annotations/LICENSE \ src/3rdparty/chromium/base/third_party/icu/LICENSE \ src/3rdparty/chromium/base/third_party/libevent/LICENSE \ src/3rdparty/chromium/base/third_party/nspr/LICENSE \ src/3rdparty/chromium/base/third_party/superfasthash/LICENSE \ src/3rdparty/chromium/base/third_party/symbolize/LICENSE \ src/3rdparty/chromium/base/third_party/valgrind/LICENSE \ src/3rdparty/chromium/base/third_party/xdg_mime/LICENSE \ src/3rdparty/chromium/base/third_party/xdg_user_dirs/LICENSE \ src/3rdparty/chromium/buildtools/LICENSE \ src/3rdparty/chromium/LICENSE \ src/3rdparty/chromium/LICENSE.chromium_os \ src/3rdparty/chromium/mojo/public/LICENSE \ src/3rdparty/chromium/net/third_party/mozilla_security_manager/LICENSE \ src/3rdparty/chromium/net/third_party/nss/LICENSE \ src/3rdparty/chromium/net/third_party/quiche/src/LICENSE \ src/3rdparty/chromium/net/third_party/uri_template/LICENSE \ src/3rdparty/chromium/ppapi/LICENSE \ src/3rdparty/chromium/third_party/abseil-cpp/LICENSE \ src/3rdparty/chromium/third_party/angle/LICENSE \ src/3rdparty/chromium/third_party/angle/src/common/third_party/smhasher/LICENSE \ src/3rdparty/chromium/third_party/angle/src/common/third_party/xxhash/LICENSE \ src/3rdparty/chromium/third_party/angle/src/third_party/compiler/LICENSE \ src/3rdparty/chromium/third_party/angle/src/third_party/libXNVCtrl/LICENSE \ src/3rdparty/chromium/third_party/angle/src/third_party/volk/LICENSE.md \ src/3rdparty/chromium/third_party/angle/third_party/rapidjson/src/bin/jsonschema/LICENSE \ src/3rdparty/chromium/third_party/angle/third_party/rapidjson/src/contrib/natvis/LICENSE \ src/3rdparty/chromium/third_party/angle/third_party/rapidjson/src/license.txt \ src/3rdparty/chromium/third_party/angle/third_party/vulkan-headers/src/LICENSE.txt \ src/3rdparty/chromium/third_party/angle/third_party/vulkan-loader/src/LICENSE.txt \ src/3rdparty/chromium/third_party/angle/third_party/vulkan-tools/src/LICENSE.txt \ src/3rdparty/chromium/third_party/angle/tools/flex-bison/third_party/m4sugar/LICENSE \ src/3rdparty/chromium/third_party/angle/tools/flex-bison/third_party/skeletons/LICENSE \ src/3rdparty/chromium/third_party/angle/util/windows/third_party/StackWalker/LICENSE \ src/3rdparty/chromium/third_party/apple_apsl/LICENSE \ src/3rdparty/chromium/third_party/arcore-android-sdk-client/LICENSE \ src/3rdparty/chromium/third_party/arcore-android-sdk/LICENSE \ src/3rdparty/chromium/third_party/axe-core/LICENSE \ src/3rdparty/chromium/third_party/bazel/LICENSE \ src/3rdparty/chromium/third_party/blanketjs/LICENSE \ src/3rdparty/chromium/third_party/blink/LICENSE_FOR_ABOUT_CREDITS \ src/3rdparty/chromium/third_party/blink/renderer/core/LICENSE-APPLE \ src/3rdparty/chromium/third_party/blink/renderer/core/LICENSE-LGPL-2 \ src/3rdparty/chromium/third_party/blink/renderer/core/LICENSE-LGPL-2.1 \ src/3rdparty/chromium/third_party/blink/renderer/platform/testing/data/third_party/Noto/LICENSE_OFL.txt \ src/3rdparty/chromium/third_party/blink/renderer/platform/testing/data/third_party/Roboto/LICENSE.txt \ src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/LICENSE.md \ src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/third_party/enum/enum/LICENSE \ src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/third_party/h2/LICENSE \ src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/third_party/hpack/LICENSE \ src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/third_party/html5lib/LICENSE \ src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/third_party/hyperframe/LICENSE \ src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/third_party/six/LICENSE \ src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/wptserve/LICENSE \ src/3rdparty/chromium/third_party/boringssl/src/LICENSE \ src/3rdparty/chromium/third_party/boringssl/src/third_party/fiat/LICENSE \ src/3rdparty/chromium/third_party/boringssl/src/third_party/googletest/LICENSE \ src/3rdparty/chromium/third_party/boringssl/src/third_party/wycheproof_testvectors/LICENSE \ src/3rdparty/chromium/third_party/bouncycastle/LICENSE \ src/3rdparty/chromium/third_party/breakpad/breakpad/LICENSE \ src/3rdparty/chromium/third_party/breakpad/breakpad/src/third_party/curl/COPYING \ src/3rdparty/chromium/third_party/breakpad/breakpad/src/third_party/libdisasm/LICENSE \ src/3rdparty/chromium/third_party/breakpad/LICENSE \ src/3rdparty/chromium/third_party/brotli/LICENSE \ src/3rdparty/chromium/third_party/bspatch/LICENSE \ src/3rdparty/chromium/third_party/byte_buddy/LICENSE \ src/3rdparty/chromium/third_party/catapult/common/eslint/LICENSE \ src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/third_party/rcssmin/bench/LICENSE.cssmin \ src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/third_party/rcssmin/LICENSE \ src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/third_party/rjsmin/LICENSE \ src/3rdparty/chromium/third_party/catapult/third_party/polymer/components/polymer/LICENSE.txt \ src/3rdparty/chromium/third_party/catapult/tracing/LICENSE \ src/3rdparty/chromium/third_party/catapult/tracing/third_party/chai/LICENSE \ src/3rdparty/chromium/third_party/catapult/tracing/third_party/d3/LICENSE \ src/3rdparty/chromium/third_party/catapult/tracing/third_party/devscripts/COPYING \ src/3rdparty/chromium/third_party/catapult/tracing/third_party/gl-matrix/LICENSE.md \ src/3rdparty/chromium/third_party/catapult/tracing/third_party/jpeg-js/LICENSE \ src/3rdparty/chromium/third_party/catapult/tracing/third_party/jszip/LICENSE.markdown \ src/3rdparty/chromium/third_party/catapult/tracing/third_party/mocha/LICENSE \ src/3rdparty/chromium/third_party/catapult/tracing/third_party/pako/LICENSE \ src/3rdparty/chromium/third_party/ced/LICENSE \ src/3rdparty/chromium/third_party/ced/src/LICENSE \ src/3rdparty/chromium/third_party/chaijs/LICENSE \ src/3rdparty/chromium/third_party/checkstyle/LICENSE \ src/3rdparty/chromium/third_party/checkstyle/LICENSE.apache20 \ src/3rdparty/chromium/third_party/cld_3/LICENSE \ src/3rdparty/chromium/third_party/cld_3/src/LICENSE \ src/3rdparty/chromium/third_party/closure_compiler/compiler/COPYING \ src/3rdparty/chromium/third_party/closure_compiler/LICENSE \ src/3rdparty/chromium/third_party/crashpad/crashpad/LICENSE \ src/3rdparty/chromium/third_party/crashpad/crashpad/third_party/apple_cf/APPLE_LICENSE \ src/3rdparty/chromium/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/LICENSE \ src/3rdparty/chromium/third_party/crashpad/crashpad/third_party/getopt/LICENSE \ src/3rdparty/chromium/third_party/crashpad/crashpad/third_party/glibc/COPYING.LIB \ src/3rdparty/chromium/third_party/crashpad/crashpad/third_party/xnu/APPLE_LICENSE \ src/3rdparty/chromium/third_party/crc32c/src/LICENSE \ src/3rdparty/chromium/third_party/cros_system_api/LICENSE \ src/3rdparty/chromium/third_party/custom_tabs_client/LICENSE \ src/3rdparty/chromium/third_party/d3/src/LICENSE \ src/3rdparty/chromium/third_party/dav1d/libdav1d/COPYING \ src/3rdparty/chromium/third_party/dav1d/LICENSE \ src/3rdparty/chromium/third_party/dawn/LICENSE \ src/3rdparty/chromium/third_party/decklink/LICENSE \ src/3rdparty/chromium/third_party/devscripts/COPYING \ src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/cm/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/cm/LICENSE_python \ src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/cm_modes/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/dagre_layout/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/formatter_worker/acorn/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/LICENSES.deps \ src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/fabricjs/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/lighthouse/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/lit-html/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/wasmparser/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/abbrev/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/accepts/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/acorn-jsx/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/acorn/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/acorn-walk/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ajv/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/amdefine/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ansi-colors/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ansi-escapes/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ansi-regex/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ansi-styles/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ansi-wrap/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/anymatch/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/append-transform/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/argparse/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/array-find-index/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/arr-diff/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/arr-union/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/asap/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/assert/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/assign-symbols/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/astral-regex/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ast-types/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/async/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/async-limiter/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/code-frame/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/generator/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/generator/node_modules/source-map/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/helper-function-name/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/helper-get-function-arity/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/helper-split-export-declaration/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/highlight/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/parser/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/template/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/traverse/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/types/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/balanced-match/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/base64-arraybuffer/LICENSE-MIT \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/base64id/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/base64-js/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/binary-extensions/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/.bin/license-checker \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/blob/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/bluebird/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/body-parser/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/body-parser/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/body-parser/node_modules/ms/license.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/brace-expansion/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/braces/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browserify-aes/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browserify-cipher/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browserify-des/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browserify-rsa/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browserify-sign/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browserify-zlib/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browser-resolve/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browser-stdout/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/buffer-from/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/buffer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/buffer-xor/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/builtin-status-codes/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/bytes/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/callsites/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/camelcase-keys/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/camelcase/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/chai/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/chalk/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/chardet/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/check-error/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/chokidar/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/glob-parent/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/cipher-base/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/cli-cursor/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/cliui/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/cli-width/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/clone/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/code-point-at/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/color-convert/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/color-name/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/colors/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/combine-source-map/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/combine-source-map/node_modules/convert-source-map/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/combine-source-map/node_modules/source-map/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/commander/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/compare-versions/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/component-emitter/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/concat-map/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/concat-stream/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/concat-stream/node_modules/readable-stream/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/concat-stream/node_modules/safe-buffer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/concat-stream/node_modules/string_decoder/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/connect/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/connect/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/connect/node_modules/ms/license.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/content-type/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/convert-source-map/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/convert-source-map/node_modules/safe-buffer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/cookie/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/core-js/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/core-util-is/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/create-ecdh/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/create-hash/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/create-hmac/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/cross-spawn/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/crypto-browserify/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/currently-unhandled/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/custom-event/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/date-format/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/dateformat/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/debuglog/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/decamelize/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/deep-eql/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/deep-is/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/default-require-extensions/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/defaults/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/define-properties/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/depd/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/dezalgo/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/diffie-hellman/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/diff/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/diff-match-patch/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/di/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/doctrine/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/doctrine/LICENSE.closure-compiler \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/doctrine/LICENSE.esprima \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/domain-browser/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ee-first/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/emoji-regex/LICENSE-MIT.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/encodeurl/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/end-of-stream/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io-client/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io-client/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io-client/node_modules/ms/license.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io/node_modules/ms/license.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io-parser/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ent/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/error-ex/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/es6-object-assign/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/es6-promise/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/es-abstract/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/escape-html/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/escape-string-regexp/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/escodegen/LICENSE.BSD \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/escodegen/node_modules/esprima/LICENSE.BSD \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eslint/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eslint-plugin-rulesdir/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eslint-scope/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eslint-utils/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eslint-visitor-keys/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/espree/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/esprima/LICENSE.BSD \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/esquery/license.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/es-to-primitive/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/estraverse/LICENSE.BSD \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/esutils/LICENSE.BSD \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eventemitter3/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/events/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/evp_bytestokey/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/execa/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/extend/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/extend-shallow/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/external-editor/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/extract-zip/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/extract-zip/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/extract-zip/node_modules/ms/license.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fast-deep-equal/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fast-json-stable-stringify/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fast-levenshtein/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fd-slicer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/figures/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/file-entry-cache/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fileset/LICENSE-MIT \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fill-range/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/finalhandler/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/finalhandler/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/finalhandler/node_modules/ms/license.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/find-up/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/flat-cache/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/flat-cache/node_modules/rimraf/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/flat/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/flatted/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/follow-redirects/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/follow-redirects/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fsevents/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fs-extra/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fs.realpath/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/functional-red-black-tree/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/function-bind/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/get-caller-file/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/get-func-name/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/get-stream/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/globals/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/glob/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/glob-parent/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/glob-parent/node_modules/is-glob/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/graceful-fs/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/handlebars/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/has-binary2/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/has-flag/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/hash-base/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/has/LICENSE-MIT \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/has-symbols/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/he/LICENSE-MIT.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/hosted-git-info/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/http-errors/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/http-errors/node_modules/inherits/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/http-proxy/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/https-browserify/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/https-proxy-agent/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/iconv-lite/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ieee754/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ignore/LICENSE-MIT \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/import-fresh/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/indent-string/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inflight/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inherits/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inline-source-map/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inline-source-map/node_modules/source-map/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inquirer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-regex/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/strip-ansi/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/invert-kv/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-arguments/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-arrayish/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/isbinaryfile/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-binary-path/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-buffer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-callable/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-date-object/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/isexe/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-extendable/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-extglob/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-finite/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-fullwidth-code-point/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-generator-function/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-glob/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-nan/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-number/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/isobject/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-plain-object/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-promise/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-regex/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-stream/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-symbol/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-api/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-diff/node_modules/minimist/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-coverage/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-hook/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-instrument/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-instrument/node_modules/semver/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-report/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-report/node_modules/supports-color/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-source-maps/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-source-maps/node_modules/rimraf/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/async/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/escodegen/LICENSE.BSD \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/escodegen/LICENSE.source-map \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/esprima/LICENSE.BSD \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/estraverse/LICENSE.BSD \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/glob/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/has-flag/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/source-map/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/supports-color/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-reports/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-utf8/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/jsesc/LICENSE-MIT.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/jsonfile/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/json-parse-better-errors/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/json-schema-traverse/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/json-stable-stringify-without-jsonify/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/json-stringify-safe/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/js-tokens/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/js-yaml/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/js-yaml/node_modules/esprima/LICENSE.BSD \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-chai/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-chrome-launcher/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-coverage-istanbul-instrumenter/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-coverage-istanbul-reporter/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-coverage/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-coverage/LICENSE-istanbul \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/source-map/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-mocha/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-mocha/node_modules/minimist/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma/node_modules/rimraf/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-sourcemap-loader/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-typescript/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-typescript/node_modules/acorn/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-typescript/node_modules/async/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-typescript/node_modules/source-map/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-typescript/node_modules/tmp/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-typescript/node_modules/tmp/node_modules/rimraf/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/lcid/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/levn/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/license-checker/bin/license-checker \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/license-checker/lib/license-files.js \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/license-checker/lib/license.js \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/license-checker/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/license-checker/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/license-checker/node_modules/nopt/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/load-json-file/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/load-json-file/node_modules/pify/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/load-json-file/node_modules/strip-bom/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/locate-path/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/locate-path/node_modules/path-exists/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/lodash-deep/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/lodash/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/lodash.memoize/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/log4js/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/log-symbols/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/loud-rejection/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/lru-cache/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/make-dir/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/map-age-cleaner/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/map-obj/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/md5.js/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/media-typer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mem/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mem/node_modules/mimic-fn/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/meow/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/meow/node_modules/minimist/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mime-db/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mime/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mime-types/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mimic-fn/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/minimalistic-assert/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/minimatch/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/minimist/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mkdirp/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/ansi-colors/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/diff/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/find-up/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/glob/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/ms/license.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/supports-color/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ms/license.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mute-stream/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/negotiator/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/neo-async/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/nice-try/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/nopt/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/normalize-package-data/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/normalize-package-data/node_modules/resolve/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/normalize-path/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/npm-run-path/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/number-is-nan/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object-assign/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object.assign/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object.entries/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object.getownpropertydescriptors/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object-inspect/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object-is/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object-keys/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/omit-deep-lodash/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/once/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/onetime/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/on-finished/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/optimist/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/optimist/node_modules/wordwrap/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/optionator/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/os-browserify/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/osenv/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/os-homedir/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/os-locale/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/os-tmpdir/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pad/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pako/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/parent-module/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/parse-asn1/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/parse-json/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/parseqs/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/parseuri/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/parseurl/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-browserify/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-dirname/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-exists/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-is-absolute/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-key/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-parse/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-type/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-type/node_modules/pify/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pathval/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pbkdf2/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/p-defer/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pend/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/p-finally/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/picomatch/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pify/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pinkie/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pinkie-promise/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/p-is-promise/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/p-limit/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/p-locate/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/plugin-error/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/prelude-ls/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/private/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/process/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/process-nextick-args/license.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/progress/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pseudomap/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/p-try/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/public-encrypt/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pump/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/punycode/LICENSE-MIT.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/puppeteer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/rimraf/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/qs/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/querystring-es3/License.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/querystring/License.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ramda/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/randombytes/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/randomfill/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/range-parser/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/raw-body/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/readable-stream/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/readdirp/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/readdir-scoped-modules/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/read-installed/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/read-package-json/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/read-pkg/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/read-pkg-up/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/recast/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/recast/node_modules/esprima/LICENSE.BSD \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/redent/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/regexpp/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/remap-istanbul/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/repeating/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/require-directory/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/require-main-filename/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/requires-port/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/resolve-from/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/resolve/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/restore-cursor/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rfdc/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rimraf/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ripemd160/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rollup/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/run-async/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rxjs/_esm2015/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rxjs/_esm5/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rxjs/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rxjs/src/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/safe-buffer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/safer-buffer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/semver/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/set-blocking/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/setimmediate/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/setprototypeof/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/sha.js/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/shebang-command/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/shebang-regex/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/signal-exit/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/slice-ansi/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/slide/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-adapter/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-client/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-client/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-client/node_modules/ms/license.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io/node_modules/ms/license.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-parser/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-parser/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-parser/node_modules/ms/license.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/source-map/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/spdx-compare/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/spdx-correct/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/spdx-expression-parse/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/spdx-ranges/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/spdx-satisfies/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/sprintf-js/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/statuses/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/stream-browserify/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/stream-browserify/node_modules/readable-stream/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/stream-browserify/node_modules/safe-buffer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/stream-browserify/node_modules/string_decoder/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/stream-http/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/streamroller/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/streamroller/node_modules/debug/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/string_decoder/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/string.prototype.trimleft/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/string.prototype.trimright/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/string-width/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/strip-ansi/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/strip-bom/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/strip-eof/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/strip-indent/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/strip-json-comments/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/supports-color/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/table/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/table/node_modules/ansi-regex/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/table/node_modules/string-width/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/table/node_modules/strip-ansi/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/text-table/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/through2/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/through/LICENSE.APACHE2 \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/through/LICENSE.MIT \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/timers-browserify/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/tmp/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/to-fast-properties/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/toidentifier/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/to-regex-range/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/treeify/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/trim-newlines/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/tslib/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/tsutils/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/tty-browserify/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/type-check/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/typedarray/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/type-detect/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/type-is/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/chai/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/color-name/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/experimental-utils/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-scope/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/parser/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/node_modules/glob/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/typescript/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/eslint-visitor-keys/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/estree/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/filesystem/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/json-schema/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/mocha/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/node/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/puppeteer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/uglify-js/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ultron/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/universalify/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/unpipe/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/url/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/url/node_modules/punycode/LICENSE-MIT.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/useragent/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/util-deprecate/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/util-extend/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/util/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/utils-merge/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/validate-npm-package-license/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/vm-browserify/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/void-elements/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wcwidth/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/which/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/which-module/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wide-align/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wordwrap/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wrap-ansi/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wrap-ansi/node_modules/ansi-regex/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wrap-ansi/node_modules/string-width/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wrap-ansi/node_modules/strip-ansi/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wrappy/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/write/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ws/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ws/node_modules/safe-buffer/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/xmlhttprequest-ssl/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/xtend/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/y18n/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yallist/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-regex/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/camelcase/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/cliui/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/color-convert/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/color-name/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/emoji-regex/LICENSE-MIT.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/find-up/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/is-fullwidth-code-point/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/locate-path/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/path-exists/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/p-locate/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/string-width/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/strip-ansi/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/wrap-ansi/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-parser/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-parser/node_modules/camelcase/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/camelcase/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/find-up/license \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/get-caller-file/LICENSE.md \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/require-main-filename/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs-parser/LICENSE.txt \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yauzl/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yeast/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/closure/COPYING \ src/3rdparty/chromium/third_party/devtools-frontend/src/third_party/axe-core/LICENSE \ src/3rdparty/chromium/third_party/devtools-frontend/src/third_party/pyjson5/src/LICENSE \ src/3rdparty/chromium/third_party/dom_distiller_js/LICENSE \ src/3rdparty/chromium/third_party/dpkg-shlibdeps/LICENSE \ src/3rdparty/chromium/third_party/emoji-segmenter/LICENSE \ src/3rdparty/chromium/third_party/emoji-segmenter/src/LICENSE \ src/3rdparty/chromium/third_party/espresso/LICENSE \ src/3rdparty/chromium/third_party/expat/src/expat/COPYING \ src/3rdparty/chromium/third_party/ffmpeg/chromium/scripts/license_texts/full_lgpl.txt \ src/3rdparty/chromium/third_party/ffmpeg/chromium/scripts/license_texts/jpeg.txt \ src/3rdparty/chromium/third_party/ffmpeg/chromium/scripts/license_texts/mips.txt \ src/3rdparty/chromium/third_party/ffmpeg/chromium/scripts/license_texts/oggparse_ahlberg_rullgayrd_2005.txt \ src/3rdparty/chromium/third_party/ffmpeg/COPYING.GPLv2 \ src/3rdparty/chromium/third_party/ffmpeg/COPYING.GPLv3 \ src/3rdparty/chromium/third_party/ffmpeg/COPYING.LGPLv2.1 \ src/3rdparty/chromium/third_party/ffmpeg/COPYING.LGPLv3 \ src/3rdparty/chromium/third_party/ffmpeg/LICENSE.md \ src/3rdparty/chromium/third_party/flac/COPYING.FDL \ src/3rdparty/chromium/third_party/flac/COPYING.GPL \ src/3rdparty/chromium/third_party/flac/COPYING.LGPL \ src/3rdparty/chromium/third_party/flac/COPYING.Xiph \ src/3rdparty/chromium/third_party/flatbuffers/LICENSE \ src/3rdparty/chromium/third_party/flatbuffers/src/dart/LICENSE \ src/3rdparty/chromium/third_party/flatbuffers/src/LICENSE.txt \ src/3rdparty/chromium/third_party/fontconfig/LICENSE \ src/3rdparty/chromium/third_party/fontconfig/src/COPYING \ src/3rdparty/chromium/third_party/freetype/src/docs/LICENSE.TXT \ src/3rdparty/chromium/third_party/fuchsia-sdk/LICENSE \ src/3rdparty/chromium/third_party/gif_player/LICENSE \ src/3rdparty/chromium/third_party/glfw/src/LICENSE.md \ src/3rdparty/chromium/third_party/glslang/LICENSE \ src/3rdparty/chromium/third_party/glslang/src/LICENSE.txt \ src/3rdparty/chromium/third_party/googletest/src/googlemock/LICENSE \ src/3rdparty/chromium/third_party/googletest/src/googlemock/scripts/generator/LICENSE \ src/3rdparty/chromium/third_party/googletest/src/googletest/LICENSE \ src/3rdparty/chromium/third_party/googletest/src/LICENSE \ src/3rdparty/chromium/third_party/google-truth/LICENSE \ src/3rdparty/chromium/third_party/guava/LICENSE \ src/3rdparty/chromium/third_party/gvr-android-keyboard/LICENSE \ src/3rdparty/chromium/third_party/gvr-android-sdk/LICENSE \ src/3rdparty/chromium/third_party/hamcrest/LICENSE \ src/3rdparty/chromium/third_party/harfbuzz-ng/src/COPYING \ src/3rdparty/chromium/third_party/harfbuzz-ng/src/src/ms-use/COPYING \ src/3rdparty/chromium/third_party/hunspell/COPYING \ src/3rdparty/chromium/third_party/hunspell/COPYING.LESSER \ src/3rdparty/chromium/third_party/hunspell/COPYING.MPL \ src/3rdparty/chromium/third_party/iaccessible2/LICENSE \ src/3rdparty/chromium/third_party/iccjpeg/LICENSE \ src/3rdparty/chromium/third_party/icu4j/LICENSE \ src/3rdparty/chromium/third_party/icu/LICENSE \ src/3rdparty/chromium/third_party/icu/license.html \ src/3rdparty/chromium/third_party/icu/scripts/LICENSE \ src/3rdparty/chromium/third_party/ijar/LICENSE \ src/3rdparty/chromium/third_party/ink/LICENSE \ src/3rdparty/chromium/third_party/inspector_protocol/LICENSE \ src/3rdparty/chromium/third_party/isimpledom/LICENSE \ src/3rdparty/chromium/third_party/jacoco/LICENSE \ src/3rdparty/chromium/third_party/javalang/LICENSE \ src/3rdparty/chromium/third_party/jetifier_standalone/LICENSE \ src/3rdparty/chromium/third_party/jinja2/LICENSE \ src/3rdparty/chromium/third_party/jsoncpp/LICENSE \ src/3rdparty/chromium/third_party/jsoncpp/source/LICENSE \ src/3rdparty/chromium/third_party/jstemplate/COPYING \ src/3rdparty/chromium/third_party/khronos/LICENSE \ src/3rdparty/chromium/third_party/leveldatabase/src/LICENSE \ src/3rdparty/chromium/third_party/libaddressinput/LICENSE \ src/3rdparty/chromium/third_party/libaddressinput/src/cpp/LICENSE.chromium \ src/3rdparty/chromium/third_party/libaddressinput/src/LICENSE \ src/3rdparty/chromium/third_party/libaom/source/libaom/LICENSE \ src/3rdparty/chromium/third_party/libaom/source/libaom/third_party/fastfeat/LICENSE \ src/3rdparty/chromium/third_party/libaom/source/libaom/third_party/googletest/src/googletest/LICENSE \ src/3rdparty/chromium/third_party/libaom/source/libaom/third_party/libwebm/LICENSE.TXT \ src/3rdparty/chromium/third_party/libaom/source/libaom/third_party/vector/LICENSE \ src/3rdparty/chromium/third_party/libaom/source/libaom/third_party/x86inc/LICENSE \ src/3rdparty/chromium/third_party/libcxx-pretty-printers/LICENSE \ src/3rdparty/chromium/third_party/libgav1/src/LICENSE \ src/3rdparty/chromium/third_party/libgifcodec/LICENSE.md \ src/3rdparty/chromium/third_party/libipp/LICENSE \ src/3rdparty/chromium/third_party/libjingle_xmpp/LICENSE \ src/3rdparty/chromium/third_party/libjpeg_turbo/LICENSE.md \ src/3rdparty/chromium/third_party/libovr/LICENSE \ src/3rdparty/chromium/third_party/libpng/LICENSE \ src/3rdparty/chromium/third_party/libprotobuf-mutator/src/LICENSE \ src/3rdparty/chromium/third_party/libsecret/LICENSE \ src/3rdparty/chromium/third_party/libsrtp/LICENSE \ src/3rdparty/chromium/third_party/libsync/LICENSE \ src/3rdparty/chromium/third_party/libudev/LICENSE \ src/3rdparty/chromium/third_party/libusb/src/COPYING \ src/3rdparty/chromium/third_party/libvpx/source/libvpx/LICENSE \ src/3rdparty/chromium/third_party/libvpx/source/libvpx/third_party/googletest/src/LICENSE \ src/3rdparty/chromium/third_party/libvpx/source/libvpx/third_party/libwebm/LICENSE.TXT \ src/3rdparty/chromium/third_party/libvpx/source/libvpx/third_party/libyuv/LICENSE \ src/3rdparty/chromium/third_party/libvpx/source/libvpx/third_party/x86inc/LICENSE \ src/3rdparty/chromium/third_party/libwebm/source/LICENSE.TXT \ src/3rdparty/chromium/third_party/libwebp/LICENSE \ src/3rdparty/chromium/third_party/libxml/src/COPYING \ src/3rdparty/chromium/third_party/libxml/src/Copyright \ src/3rdparty/chromium/third_party/libXNVCtrl/LICENSE \ src/3rdparty/chromium/third_party/libxslt/linux/COPYING \ src/3rdparty/chromium/third_party/libxslt/src/Copyright \ src/3rdparty/chromium/third_party/libyuv/LICENSE \ src/3rdparty/chromium/third_party/lottie/LICENSE \ src/3rdparty/chromium/third_party/lzma_sdk/LICENSE \ src/3rdparty/chromium/third_party/mako/LICENSE \ src/3rdparty/chromium/third_party/markupsafe/LICENSE \ src/3rdparty/chromium/third_party/material_design_icons/LICENSE \ src/3rdparty/chromium/third_party/mesa_headers/LICENSE \ src/3rdparty/chromium/third_party/metrics_proto/LICENSE \ src/3rdparty/chromium/third_party/microsoft_webauthn/LICENSE \ src/3rdparty/chromium/third_party/minigbm/LICENSE \ src/3rdparty/chromium/third_party/minigbm/src/LICENSE \ src/3rdparty/chromium/third_party/minizip/src/lib/bzip2/LICENSE \ src/3rdparty/chromium/third_party/minizip/src/LICENSE \ src/3rdparty/chromium/third_party/mocha/LICENSE \ src/3rdparty/chromium/third_party/mockito/LICENSE \ src/3rdparty/chromium/third_party/modp_b64/LICENSE \ src/3rdparty/chromium/third_party/motemplate/LICENSE \ src/3rdparty/chromium/third_party/mozilla/LICENSE \ src/3rdparty/chromium/third_party/nasm/LICENSE \ src/3rdparty/chromium/third_party/netty4/LICENSE \ src/3rdparty/chromium/third_party/netty-tcnative/LICENSE \ src/3rdparty/chromium/third_party/node/LICENSE \ src/3rdparty/chromium/third_party/objenesis/LICENSE \ src/3rdparty/chromium/third_party/ocmock/License.txt \ src/3rdparty/chromium/third_party/one_euro_filter/LICENSE \ src/3rdparty/chromium/third_party/openh264/src/LICENSE \ src/3rdparty/chromium/third_party/openscreen/src/LICENSE \ src/3rdparty/chromium/third_party/openscreen/src/third_party/mozilla/LICENSE.txt \ src/3rdparty/chromium/third_party/openvr/src/LICENSE \ src/3rdparty/chromium/third_party/opus/src/COPYING \ src/3rdparty/chromium/third_party/opus/src/LICENSE_PLEASE_READ.txt \ src/3rdparty/chromium/third_party/ots/LICENSE \ src/3rdparty/chromium/third_party/ow2_asm/LICENSE \ src/3rdparty/chromium/third_party/pdfium/LICENSE \ src/3rdparty/chromium/third_party/pdfium/third_party/bigint/LICENSE \ src/3rdparty/chromium/third_party/pdfium/third_party/libpng16/LICENSE \ src/3rdparty/chromium/third_party/pdfium/third_party/pymock/LICENSE.txt \ src/3rdparty/chromium/third_party/perfetto/LICENSE \ src/3rdparty/chromium/third_party/pexpect/LICENSE \ src/3rdparty/chromium/third_party/pffft/LICENSE \ src/3rdparty/chromium/third_party/ply/LICENSE \ src/3rdparty/chromium/third_party/ply/license.patch \ src/3rdparty/chromium/third_party/polymer/LICENSE.polymer \ src/3rdparty/chromium/third_party/polymer/v1_0/components-chromium/polymer2/LICENSE.txt \ src/3rdparty/chromium/third_party/polymer/v1_0/components-chromium/polymer/LICENSE.txt \ src/3rdparty/chromium/third_party/polymer/v3_0/components-chromium/polymer/LICENSE.txt \ src/3rdparty/chromium/third_party/private-join-and-compute/src/crypto/LICENSE \ src/3rdparty/chromium/third_party/private-join-and-compute/src/LICENSE \ src/3rdparty/chromium/third_party/private-join-and-compute/src/util/LICENSE \ src/3rdparty/chromium/third_party/proguard/LICENSE \ src/3rdparty/chromium/third_party/protobuf/LICENSE \ src/3rdparty/chromium/third_party/pycoverage/LICENSE \ src/3rdparty/chromium/third_party/pyelftools/elftools/construct/LICENSE \ src/3rdparty/chromium/third_party/pyelftools/LICENSE \ src/3rdparty/chromium/third_party/pyjson5/src/LICENSE \ src/3rdparty/chromium/third_party/pymock/LICENSE.txt \ src/3rdparty/chromium/third_party/pystache/LICENSE \ src/3rdparty/chromium/third_party/Python-Markdown/LICENSE.md \ src/3rdparty/chromium/third_party/pywebsocket3/src/LICENSE \ src/3rdparty/chromium/third_party/qcms/src/COPYING \ src/3rdparty/chromium/third_party/quic_trace/src/LICENSE \ src/3rdparty/chromium/third_party/quic_trace/src/third_party/fonts/LICENSE \ src/3rdparty/chromium/third_party/quic_trace/src/third_party/glew/LICENSE.txt \ src/3rdparty/chromium/third_party/qunit/LICENSE \ src/3rdparty/chromium/third_party/r8/LICENSE \ src/3rdparty/chromium/third_party/re2/LICENSE \ src/3rdparty/chromium/third_party/re2/src/LICENSE \ src/3rdparty/chromium/third_party/requests/LICENSE \ src/3rdparty/chromium/third_party/rnnoise/COPYING \ src/3rdparty/chromium/third_party/robolectric/LICENSE \ src/3rdparty/chromium/third_party/robolectric/licenses/extreme.indiana.edu.license.txt \ src/3rdparty/chromium/third_party/robolectric/licenses/javolution.license.txt \ src/3rdparty/chromium/third_party/robolectric/licenses/pivotal.labs.license.txt \ src/3rdparty/chromium/third_party/s2cellid/LICENSE \ src/3rdparty/chromium/third_party/schema_org/LICENSE \ src/3rdparty/chromium/third_party/shaderc/src/LICENSE \ src/3rdparty/chromium/third_party/shaderc/src/third_party/LICENSE.glslang \ src/3rdparty/chromium/third_party/shaderc/src/third_party/LICENSE.spirv-tools \ src/3rdparty/chromium/third_party/simplejson/LICENSE.txt \ src/3rdparty/chromium/third_party/sinonjs/LICENSE \ src/3rdparty/chromium/third_party/six/LICENSE \ src/3rdparty/chromium/third_party/six/src/LICENSE \ src/3rdparty/chromium/third_party/skia/include/third_party/skcms/LICENSE \ src/3rdparty/chromium/third_party/skia/include/third_party/vulkan/LICENSE \ src/3rdparty/chromium/third_party/skia/LICENSE \ src/3rdparty/chromium/third_party/skia/modules/canvaskit/canvaskit/LICENSE \ src/3rdparty/chromium/third_party/skia/modules/pathkit/npm-asmjs/LICENSE \ src/3rdparty/chromium/third_party/skia/modules/pathkit/npm-wasm/LICENSE \ src/3rdparty/chromium/third_party/skia/third_party/etc1/LICENSE \ src/3rdparty/chromium/third_party/skia/third_party/skcms/LICENSE \ src/3rdparty/chromium/third_party/skia/third_party/vulkanmemoryallocator/include/LICENSE.txt \ src/3rdparty/chromium/third_party/skia/third_party/vulkanmemoryallocator/LICENSE \ src/3rdparty/chromium/third_party/skia/third_party/wuffs/LICENSE \ src/3rdparty/chromium/third_party/smhasher/LICENSE \ src/3rdparty/chromium/third_party/snappy/src/COPYING \ src/3rdparty/chromium/third_party/spirv-cross/spirv-cross/LICENSE \ src/3rdparty/chromium/third_party/spirv-headers/LICENSE \ src/3rdparty/chromium/third_party/spirv-headers/src/LICENSE \ src/3rdparty/chromium/third_party/SPIRV-Tools/LICENSE \ src/3rdparty/chromium/third_party/SPIRV-Tools/src/LICENSE \ src/3rdparty/chromium/third_party/SPIRV-Tools/src/utils/vscode/src/lsp/LICENSE \ src/3rdparty/chromium/third_party/sqlite4java/LICENSE \ src/3rdparty/chromium/third_party/sqlite/LICENSE \ src/3rdparty/chromium/third_party/sqlite/src/autoconf/tea/license.terms \ src/3rdparty/chromium/third_party/sqlite/src/LICENSE.md \ src/3rdparty/chromium/third_party/subresource-filter-ruleset/LICENSE \ src/3rdparty/chromium/third_party/sudden_motion_sensor/LICENSE \ src/3rdparty/chromium/third_party/swiftshader/LICENSE.txt \ src/3rdparty/chromium/third_party/tcmalloc/LICENSE \ src/3rdparty/chromium/third_party/tcmalloc/vendor/COPYING \ src/3rdparty/chromium/third_party/test_fonts/LICENSE \ src/3rdparty/chromium/third_party/tlslite/LICENSE \ src/3rdparty/chromium/third_party/turbine/LICENSE \ src/3rdparty/chromium/third_party/ub-uiautomator/LICENSE \ src/3rdparty/chromium/third_party/unrar/LICENSE \ src/3rdparty/chromium/third_party/unrar/src/license.txt \ src/3rdparty/chromium/third_party/usb_ids/LICENSE \ src/3rdparty/chromium/third_party/usrsctp/LICENSE \ src/3rdparty/chromium/third_party/usrsctp/usrsctplib/LICENSE.md \ src/3rdparty/chromium/third_party/v4l-utils/COPYING.libv4l \ src/3rdparty/chromium/third_party/wds/LICENSE \ src/3rdparty/chromium/third_party/wds/src/COPYING \ src/3rdparty/chromium/third_party/web-animations-js/LICENSE \ src/3rdparty/chromium/third_party/web-animations-js/sources/COPYING \ src/3rdparty/chromium/third_party/webdriver/COPYING \ src/3rdparty/chromium/third_party/webdriver/LICENSE \ src/3rdparty/chromium/third_party/webgpu-cts/src/LICENSE.txt \ src/3rdparty/chromium/third_party/webgpu-cts/src/third_party/jquery/LICENSE.txt \ src/3rdparty/chromium/third_party/webrtc/common_audio/third_party/fft4g/LICENSE \ src/3rdparty/chromium/third_party/webrtc/common_audio/third_party/spl_sqrt_floor/LICENSE \ src/3rdparty/chromium/third_party/webrtc/examples/androidapp/third_party/autobanh/LICENSE \ src/3rdparty/chromium/third_party/webrtc/examples/androidapp/third_party/autobanh/LICENSE.md \ src/3rdparty/chromium/third_party/webrtc/examples/objc/AppRTCMobile/third_party/SocketRocket/LICENSE \ src/3rdparty/chromium/third_party/webrtc/LICENSE \ src/3rdparty/chromium/third_party/webrtc/license_template.txt \ src/3rdparty/chromium/third_party/webrtc/modules/third_party/fft/LICENSE \ src/3rdparty/chromium/third_party/webrtc/modules/third_party/g711/LICENSE \ src/3rdparty/chromium/third_party/webrtc/modules/third_party/g722/LICENSE \ src/3rdparty/chromium/third_party/webrtc/modules/third_party/portaudio/LICENSE \ src/3rdparty/chromium/third_party/webrtc/rtc_base/third_party/base64/LICENSE \ src/3rdparty/chromium/third_party/webrtc/rtc_base/third_party/sigslot/LICENSE \ src/3rdparty/chromium/third_party/webxr_test_pages/LICENSE \ src/3rdparty/chromium/third_party/webxr_test_pages/webxr-samples/js/cottontail/LICENSE.md \ src/3rdparty/chromium/third_party/webxr_test_pages/webxr-samples/js/third-party/dat.gui/LICENSE \ src/3rdparty/chromium/third_party/webxr_test_pages/webxr-samples/js/third-party/gl-matrix/LICENSE \ src/3rdparty/chromium/third_party/webxr_test_pages/webxr-samples/LICENSE.md \ src/3rdparty/chromium/third_party/weston/LICENSE \ src/3rdparty/chromium/third_party/weston/src/COPYING \ src/3rdparty/chromium/third_party/weston/src/data/COPYING \ src/3rdparty/chromium/third_party/widevine/LICENSE \ src/3rdparty/chromium/third_party/woff2/LICENSE \ src/3rdparty/chromium/third_party/wuffs/LICENSE \ src/3rdparty/chromium/third_party/wuffs/src/LICENSE \ src/3rdparty/chromium/third_party/xdg-utils/LICENSE \ src/3rdparty/chromium/third_party/xstream/LICENSE \ src/3rdparty/chromium/third_party/yasm/source/patched-yasm/COPYING \ src/3rdparty/chromium/third_party/zlib/LICENSE \ src/3rdparty/chromium/tools/grit/third_party/six/LICENSE \ src/3rdparty/chromium/tools/origin_trials/third_party/ed25519/LICENSE \ src/3rdparty/chromium/tools/page_cycler/acid3/LICENSE \ src/3rdparty/chromium/tools/win/ChromeDebug/ChromeDebug/LICENSE \ src/3rdparty/chromium/url/third_party/mozilla/LICENSE.txt \ src/3rdparty/chromium/v8/LICENSE \ src/3rdparty/chromium/v8/LICENSE.fdlibm \ src/3rdparty/chromium/v8/LICENSE.strongtalk \ src/3rdparty/chromium/v8/LICENSE.v8 \ src/3rdparty/chromium/v8/LICENSE.valgrind \ src/3rdparty/chromium/v8/src/third_party/siphash/LICENSE \ src/3rdparty/chromium/v8/src/third_party/utf8-decoder/LICENSE \ src/3rdparty/chromium/v8/src/third_party/valgrind/LICENSE \ src/3rdparty/chromium/v8/src/third_party/vtune/LICENSE \ src/3rdparty/chromium/v8/third_party/colorama/LICENSE \ src/3rdparty/chromium/v8/third_party/inspector_protocol/LICENSE \ src/3rdparty/chromium/v8/third_party/v8/builtins/LICENSE \ src/3rdparty/chromium/v8/third_party/wasm-api/LICENSE \ src/3rdparty/gn/base/third_party/icu/LICENSE \ src/3rdparty/gn/LICENSE \ src/3rdparty/ninja/COPYING \ ================================================ FILE: package/qt5/qt5webengine/host-pkg-config.in ================================================ #!/bin/sh PKG_CONFIG_SYSROOT_DIR="/" \ PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \ PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \ PKG_CONFIG_LIBDIR="@HOST_DIR@/lib/pkgconfig:@HOST_DIR@/share/pkgconfig" \ exec @HOST_DIR@/bin/pkgconf "$@" ================================================ FILE: package/qt5/qt5webengine/qt5webengine.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtwebengine-everywhere-src-5.15.2.tar.xz.sha256 sha256 c8afca0e43d84f7bd595436fbe4d13a5bbdb81ec5104d605085d07545b6f91e0 qtwebengine-everywhere-src-5.15.2.tar.xz # Locally calculated sha256 f34787ef0342c614b667186a6ec2f5d6b9d650e30142a2788a589a89743e88e9 LICENSE.Chromium sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 245248009fd0af1725d183248380e476c1283383909358a13686606352bf2a17 LICENSE.GPLv3 sha256 9ae1959e86bd49b9680f78e0b49d4e52ae88a3f234d497e175e42a7e8ed59216 LICENSE.LGPL3 # Locally calculated with: # for i in $(find src/3rdparty/ -type f \( -iname 'license*' -o -iname 'copying*' -o -name 'APPLE_LICENSE' -o -name 'Copyright' -o -path '*/license_texts/*' -o -path '*/licenses/*' \) -a -not -name '*.cc' -not -name '*.py' -not -name '*.pyc' -not -name '*.h' -not -name 'LICENSE.sha1' -not -name 'licensecheck.pl*' -not -name 'license.after' -not -name 'license.before') ; do echo -n "sha256 " ; sha256sum $i ; done | sort --key=3 sha256 3ed00dd93c75655599456c83cba2f69c6824fd53f24fc24206ba27b65057709d src/3rdparty/chromium/base/third_party/cityhash/COPYING sha256 4af93c12062c58058378de2397dc1c92bbff9ddfb1d583a01c84127557ce97ca src/3rdparty/chromium/base/third_party/double_conversion/LICENSE sha256 96e7ccbf8d17e319dd77c4ebd4965b64a820bbcc3142a2478fbf95af77417b6a src/3rdparty/chromium/base/third_party/dynamic_annotations/LICENSE sha256 5d85142a5609ad177a2d7a2e7cae060b886b8b42f25c5b9803cf0cb5ee04ad2f src/3rdparty/chromium/base/third_party/icu/LICENSE sha256 9ad1d4223b80349f3d3ab9cec92f93431b9da14a1b5d41de468ce054a28cf8aa src/3rdparty/chromium/base/third_party/libevent/LICENSE sha256 d55a403514532af12dc2fbfb2e41900090a5dd6c7c76c8e4d9b20bcc737eac35 src/3rdparty/chromium/base/third_party/nspr/LICENSE sha256 90b2201c340cee36b40a443f949d9eb416f0a0d204c32d350aff87fedeb67ae8 src/3rdparty/chromium/base/third_party/superfasthash/LICENSE sha256 538edc6f52c563cf06eca1bac8dd785ff60ef5a371a950265700d5d40386db6e src/3rdparty/chromium/base/third_party/symbolize/LICENSE sha256 79955cd80438f041387eb080f2675394e36a806b8b17eca63a4bc568d839509e src/3rdparty/chromium/base/third_party/valgrind/LICENSE sha256 c45766baef552c59eeb1fdfbbc690e52e4cd5b135dfd325f21bdfe8ddfe28ce6 src/3rdparty/chromium/base/third_party/xdg_mime/LICENSE sha256 18351de3d7e2dc469cc83e77d38a3e25d010251e34eb348bbd1a76275e313997 src/3rdparty/chromium/base/third_party/xdg_user_dirs/LICENSE sha256 7a209dd1b94cabdb5ea9c6f9164b9546ffa5daaa671e7767d49510db055f5c51 src/3rdparty/chromium/buildtools/LICENSE sha256 845022e0c1db1abb41a6ba4cd3c4b674ec290f3359d9d3c78ae558d4c0ed9308 src/3rdparty/chromium/LICENSE sha256 212c5a071f61512786b5e5840b3d70c85e017f3f82939ad4d4a870fc48b33477 src/3rdparty/chromium/LICENSE.chromium_os sha256 7a209dd1b94cabdb5ea9c6f9164b9546ffa5daaa671e7767d49510db055f5c51 src/3rdparty/chromium/mojo/public/LICENSE sha256 bed70fc84f1bea2b4b144564b9a0f9a5a3bc7b0d78f6e62092aeb689cac56bdd src/3rdparty/chromium/net/third_party/mozilla_security_manager/LICENSE sha256 a20c1a32d1f8102432360b42e932869f7c11c7cdbacf9cac554c422132af47f4 src/3rdparty/chromium/net/third_party/nss/LICENSE sha256 845022e0c1db1abb41a6ba4cd3c4b674ec290f3359d9d3c78ae558d4c0ed9308 src/3rdparty/chromium/net/third_party/quiche/src/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/net/third_party/uri_template/LICENSE sha256 834ee20e8fc3235722ed801bae30cc539c2775be656ff9cc2810fe674e53d5ec src/3rdparty/chromium/ppapi/LICENSE sha256 c79a7fea0e3cac04cd43f20e7b648e5a0ff8fa5344e644b0ee09ca1162b62747 src/3rdparty/chromium/third_party/abseil-cpp/LICENSE sha256 bf4da21bd20bcfb5b60b7ecc67fa864a79be049e21d6178076887f178dd6c71a src/3rdparty/chromium/third_party/angle/LICENSE sha256 3f6f1b520bc53e878ccbb698ad0bacef3752a5f4e4b50a26552bd70f60b40748 src/3rdparty/chromium/third_party/angle/src/common/third_party/smhasher/LICENSE sha256 86ec6953794503942b70fcd4f35b565d44f63f703b7037ce44dad965c4aaae91 src/3rdparty/chromium/third_party/angle/src/common/third_party/xxhash/LICENSE sha256 a08ba10adec47027ef8078848729837b1c5a42f140718d7afd65c23f1eeec392 src/3rdparty/chromium/third_party/angle/src/third_party/compiler/LICENSE sha256 31346421254a3e6e12687cf17f19f6357ee73a617fa7b3d3ccefdcbabe49bdd3 src/3rdparty/chromium/third_party/angle/src/third_party/libXNVCtrl/LICENSE sha256 336f505f8d5aa73ea40b4d798dde86953e9c1f6525757f1d7f18120fea09bb1d src/3rdparty/chromium/third_party/angle/src/third_party/volk/LICENSE.md sha256 837402bd25fad9b704265801ca3f92566a98157c1f9a7acd6f446299ba1c305a src/3rdparty/chromium/third_party/angle/third_party/rapidjson/src/bin/jsonschema/LICENSE sha256 394faaedb93c1da8ecbd61322518834908fee64381117e01a611bf9fac20baa6 src/3rdparty/chromium/third_party/angle/third_party/rapidjson/src/contrib/natvis/LICENSE sha256 a140e5d46fe734a1c78f1a3c3ef207871dd75648be71fdda8e309b23ab8b1f32 src/3rdparty/chromium/third_party/angle/third_party/rapidjson/src/license.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/angle/third_party/vulkan-headers/src/LICENSE.txt sha256 43c0a37e6a0fa7ff3c843b3ec5a4fac84b712558ddac103fbd4c1649662a9ece src/3rdparty/chromium/third_party/angle/third_party/vulkan-loader/src/LICENSE.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/angle/third_party/vulkan-tools/src/LICENSE.txt sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 src/3rdparty/chromium/third_party/angle/tools/flex-bison/third_party/m4sugar/LICENSE sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 src/3rdparty/chromium/third_party/angle/tools/flex-bison/third_party/skeletons/LICENSE sha256 bfec18debedcb337f8af53f143ccf0b1575d0b7c30deaee137f10397eca0d353 src/3rdparty/chromium/third_party/angle/util/windows/third_party/StackWalker/LICENSE sha256 b23e682fda7310afe43505ed6041919ccff8f9e0c6799ebd7542cbcef11102e3 src/3rdparty/chromium/third_party/apple_apsl/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/arcore-android-sdk-client/LICENSE sha256 584e795ba5833279c327245594d6dc216fc664144fa3626a0bdf136bc00af76c src/3rdparty/chromium/third_party/arcore-android-sdk/LICENSE sha256 af175b9d96ee93c21a036152e1b905b0b95304d4ae8c2c921c7609100ba8df7e src/3rdparty/chromium/third_party/axe-core/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/bazel/LICENSE sha256 0518cf49c09398259d54fcfff0b5fd36456162c6439886660e53627b3073ef22 src/3rdparty/chromium/third_party/blanketjs/LICENSE sha256 a661d10f8f194b1963a75bb4d308f17b078cc064624313a556902d89705f6876 src/3rdparty/chromium/third_party/blink/LICENSE_FOR_ABOUT_CREDITS sha256 0b5d3a7cc325942567373b0ecd757d07c132e0ebd7c97bfc63f7e1a76094edb4 src/3rdparty/chromium/third_party/blink/renderer/core/LICENSE-APPLE sha256 7555fa34bc131a75ca56d65c40cc1ea8f9515d23e353d4c15d58573a042f7805 src/3rdparty/chromium/third_party/blink/renderer/core/LICENSE-LGPL-2 sha256 f2b3bd09663381deb99721109d22b47af1213bb43007a8b56a06c6375c8050ce src/3rdparty/chromium/third_party/blink/renderer/core/LICENSE-LGPL-2.1 sha256 6a73f9541c2de74158c0e7cf6b0a58ef774f5a780bf191f2d7ec9cc53efe2bf2 src/3rdparty/chromium/third_party/blink/renderer/platform/testing/data/third_party/Noto/LICENSE_OFL.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/blink/renderer/platform/testing/data/third_party/Roboto/LICENSE.txt sha256 5a7b465d39b5e018bc40cc34162176269f7c476989cb4dbcf0ec0b81701545a7 src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/LICENSE.md sha256 88ec6a6c8eafa3b9757e745783938bef3f5e4d5e3c76b1db576aa3ab520e5e1d src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/third_party/enum/enum/LICENSE sha256 663f9253e13519b82ab4a6b1caab6bed05aada70517f28cd0254be8a9fa19ed6 src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/third_party/h2/LICENSE sha256 763a9342a04df62046c9dc748a5287934eb0a5331c6863b3ca0aee20e18cb4ed src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/third_party/hpack/LICENSE sha256 16a39991619e92f18680932da2a9199fdf7d95df3ecaedc52ea06218aabafd6f src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/third_party/html5lib/LICENSE sha256 763a9342a04df62046c9dc748a5287934eb0a5331c6863b3ca0aee20e18cb4ed src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/third_party/hyperframe/LICENSE sha256 b7529b8c07171a78a8c36c3283905528e4812945d977d125eb926e8ccbf245b6 src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/third_party/six/LICENSE sha256 df336397e09e764416fc33b555703b1cdddd3a0cfea8a013ad1cad565c8be2f5 src/3rdparty/chromium/third_party/blink/tools/blinkpy/third_party/wpt/wpt/tools/wptserve/LICENSE sha256 60bd7c54856bf9387221bde5ab55d516d7cea15870d0fed69406bcd1c8ec7c9d src/3rdparty/chromium/third_party/boringssl/src/LICENSE sha256 0c125a4dab5ab869473e6491db22f6c0a7f8a4de58588d03bb2b16c0c8ebd7de src/3rdparty/chromium/third_party/boringssl/src/third_party/fiat/LICENSE sha256 9702de7e4117a8e2b20dafab11ffda58c198aede066406496bef670d40a22138 src/3rdparty/chromium/third_party/boringssl/src/third_party/googletest/LICENSE sha256 58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd src/3rdparty/chromium/third_party/boringssl/src/third_party/wycheproof_testvectors/LICENSE sha256 5740985669353ef52e0f320413ff68dc62b6c23a596cd78b6d6b80764f1c50ab src/3rdparty/chromium/third_party/bouncycastle/LICENSE sha256 f9752a0a4ac5215eaa3a4f0ec29cd52563c883de5d7870525cc0bc3a21cb8e15 src/3rdparty/chromium/third_party/breakpad/breakpad/LICENSE sha256 4d03f91b94e0db3bdc9ddaf0060dd41cc94a2096094fbc1417713a2f059658c7 src/3rdparty/chromium/third_party/breakpad/breakpad/src/third_party/curl/COPYING sha256 d8eaba95b8d03c5912da9b5823de2c920e84a993133039a22fc8100f9edb33a1 src/3rdparty/chromium/third_party/breakpad/breakpad/src/third_party/libdisasm/LICENSE sha256 015b2d5cedb3024339446a63963d073fa831544cf253c5ddd713fccc8d83e939 src/3rdparty/chromium/third_party/breakpad/LICENSE sha256 3d180008e36922a4e8daec11c34c7af264fed5962d07924aea928c38e8663c94 src/3rdparty/chromium/third_party/brotli/LICENSE sha256 98f8746a39f9a42da35df7046a15b56d0e2f4f76eefc352d67f1bf76e85360b4 src/3rdparty/chromium/third_party/bspatch/LICENSE sha256 b5730da9a26472a405b0b1c61d3d166714d9d654ab3282e54e4a01a5f66316c3 src/3rdparty/chromium/third_party/byte_buddy/LICENSE sha256 0154852797380b35195ecd829582f1efd00bfe244eab427a6bbf1e3f3dd57b1f src/3rdparty/chromium/third_party/catapult/common/eslint/LICENSE sha256 65d4ed698fb5cbcd1d44c78bc6a02c5bf1da00df5395d2d6ac43bdafe6bc20dc src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/third_party/rcssmin/bench/LICENSE.cssmin sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/third_party/rcssmin/LICENSE sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/third_party/rjsmin/LICENSE sha256 984fb04a16a9f1e0145ffd891125dc366a01cd921f58c9b0369be400c720790d src/3rdparty/chromium/third_party/catapult/third_party/polymer/components/polymer/LICENSE.txt sha256 f77133324f35589f9f170473456321fe76aa35b750293cb8a475e26afa8f2bac src/3rdparty/chromium/third_party/catapult/tracing/LICENSE sha256 17afb4516438c26ee15213c5a082206340d976a68472b8eab2499d7bce4debec src/3rdparty/chromium/third_party/catapult/tracing/third_party/chai/LICENSE sha256 1920d2326ebbad34dcbd9681b4fe4926f113aa5e7dc9a92fceb456d859ee142e src/3rdparty/chromium/third_party/catapult/tracing/third_party/d3/LICENSE sha256 5a2ed53cc5975569e9fa146c4245eaf53377dc1a88bdcb923da6487e53cba55e src/3rdparty/chromium/third_party/catapult/tracing/third_party/devscripts/COPYING sha256 e8b80a53d0f95a3cf0f992f8cfc6b3911a7f32f47e0e4a8d4fd66582eeae9484 src/3rdparty/chromium/third_party/catapult/tracing/third_party/gl-matrix/LICENSE.md sha256 be3fd324066af702fad2a9ef05664ce9665495ebc1824fd7b28960802ec7891e src/3rdparty/chromium/third_party/catapult/tracing/third_party/jpeg-js/LICENSE sha256 aae03c510d63d96de72d37ce5650fbbac63b322d09ac0ee0df50b8950329e840 src/3rdparty/chromium/third_party/catapult/tracing/third_party/jszip/LICENSE.markdown sha256 1f194a987fa1dc60e4bcf5e04e0fc03fff8f2ee587c52136adb2cebb397250b8 src/3rdparty/chromium/third_party/catapult/tracing/third_party/mocha/LICENSE sha256 a04665b3b2de56c66730c1f720f528175739e4104f79073614aa611da1e85539 src/3rdparty/chromium/third_party/catapult/tracing/third_party/pako/LICENSE sha256 ef5b39dfcafe08323262e3f51a3a9de649978a55ed8ef8eef3c451f2c1e78a53 src/3rdparty/chromium/third_party/ced/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/ced/src/LICENSE sha256 3d1d2669d0ba87069b5e202f106193c4eb0e140a2aead31dca9670a0581dd979 src/3rdparty/chromium/third_party/chaijs/LICENSE sha256 a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7 src/3rdparty/chromium/third_party/checkstyle/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/checkstyle/LICENSE.apache20 sha256 c2d13ec3b431617beb314705c0f42d17ca579eed00032ed8a13dbcd23fc9bdd5 src/3rdparty/chromium/third_party/cld_3/LICENSE sha256 c2d13ec3b431617beb314705c0f42d17ca579eed00032ed8a13dbcd23fc9bdd5 src/3rdparty/chromium/third_party/cld_3/src/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/closure_compiler/compiler/COPYING sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/closure_compiler/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/crashpad/crashpad/LICENSE sha256 212846e0145aa50fb3a5aef254a370311a93acf6c1e792e47e0068d64c8c3885 src/3rdparty/chromium/third_party/crashpad/crashpad/third_party/apple_cf/APPLE_LICENSE sha256 4b45cbe16d7b71b89ae6127e26e0d90a029198ca5e958ad8e3d0b8bbed364d8b src/3rdparty/chromium/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/LICENSE sha256 f40ee07401827b6ac9cf0aee1aaffb00e42a3f2c729f9c83f96a3daafef5d944 src/3rdparty/chromium/third_party/crashpad/crashpad/third_party/getopt/LICENSE sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 src/3rdparty/chromium/third_party/crashpad/crashpad/third_party/glibc/COPYING.LIB sha256 e5881019d8766c1e88a5fe1dbca4ba40c78011d41fcb18f6e9f50df60182685b src/3rdparty/chromium/third_party/crashpad/crashpad/third_party/xnu/APPLE_LICENSE sha256 a1f30b77c01e0995fa32a00119e00749e8731ee8a3c4c3549bce74083c72b0b6 src/3rdparty/chromium/third_party/crc32c/src/LICENSE sha256 e9427cf6abc4eaeda0bcd094fca46af4067970079f426b65d5cbacb87bff6366 src/3rdparty/chromium/third_party/cros_system_api/LICENSE sha256 09e8a9bcec8067104652c168685ab0931e7868f9c8284b66f5ae6edae5f1130b src/3rdparty/chromium/third_party/custom_tabs_client/LICENSE sha256 7a3cb0e5055874e67db9aa2d5fe26de23204fa994ffbad198901ffe9c812a717 src/3rdparty/chromium/third_party/d3/src/LICENSE sha256 b327887de263238deaa80c34cdd2ff3e0ba1d35db585ce14a37ce3e74ee389e9 src/3rdparty/chromium/third_party/dav1d/libdav1d/COPYING sha256 2da4494d2a8b5c742afbb905b10621e40129284c977ac138e3081ed0d9d83aed src/3rdparty/chromium/third_party/dav1d/LICENSE sha256 b77e952e3feaebd807d27784988b19fb60f83f9fc9a0c03e6aedbbffd5d6f8ee src/3rdparty/chromium/third_party/dawn/LICENSE sha256 43452b94e6aa0c2d076ad25b87f580c11571689d52f3aa1a1f7bdcab31a0bd15 src/3rdparty/chromium/third_party/decklink/LICENSE sha256 5a2ed53cc5975569e9fa146c4245eaf53377dc1a88bdcb923da6487e53cba55e src/3rdparty/chromium/third_party/devscripts/COPYING sha256 a3f2fe2ac6b471aa80c737c5d283dd049bdc903a73835ee6d4d2cac02fdd53bf src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/cm/LICENSE sha256 c6daa4e8737d15aa7140b4f7eb82b9d4829bd2fd27132c43e282203b9c67dfc4 src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/cm/LICENSE_python sha256 13110d66c514a7890c4b388a353bc08fa094fe13d5ed7f3a222cc0a0caa3fd17 src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/cm_modes/LICENSE sha256 9fea307fe830918e12b6822f943f4b59bd7715614efb68e834a141ca758bd5f2 src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/dagre_layout/LICENSE sha256 7cdb44aabddbdd78998119d68a39c87424119b663945c79891fc1b022301824c src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/formatter_worker/acorn/LICENSE sha256 f734f7708439c275f3599e2df7de84cd9f360bd13620a30ab376af6c9deb213b src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/LICENSES.deps sha256 b60e9b66bf4f9ab3aa5d1d20b18410a632fd624cf4ce3aa1eb839087caf35958 src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/fabricjs/LICENSE sha256 7ec9661a8afafab1eee3523d6f1a193eff76314a5ab10b4ce96aefd87621b0c3 src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/lighthouse/LICENSE sha256 55efdea1a9fe503ed3cd89c2776d3d2131795defaebea421754b428333fbfba3 src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/lit-html/LICENSE sha256 1a5ae5ab221af81b68f4f4c156c0d2e044851272c5e2e6c07d685946557878ea src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/LICENSE sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/wasmparser/LICENSE sha256 7a209dd1b94cabdb5ea9c6f9164b9546ffa5daaa671e7767d49510db055f5c51 src/3rdparty/chromium/third_party/devtools-frontend/src/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/abbrev/LICENSE sha256 71f83c4c0621102a56d9853812777b85751bce7e9726f686f5b056c1f8a4b0e6 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/accepts/LICENSE sha256 cfa72b62b9ae173078823a3796b25c027a9071046a263beddf966df67018ce06 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/acorn-jsx/LICENSE sha256 7cdb44aabddbdd78998119d68a39c87424119b663945c79891fc1b022301824c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/acorn/LICENSE sha256 7cdb44aabddbdd78998119d68a39c87424119b663945c79891fc1b022301824c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/acorn-walk/LICENSE sha256 e85e131fa4ed25538ff1f4962ced1fb6f68b079bd9164a790597a0f30b8fd030 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ajv/LICENSE sha256 ea97081f183590d87376f5fe73b7150c79863a73167f47ed87c41e191f89eb0b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/amdefine/LICENSE sha256 10e7818a114cf8b702a2263ad424b3cd9d34254df6039e47bb3f412000b0ae00 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ansi-colors/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ansi-escapes/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ansi-regex/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ansi-styles/license sha256 0798f37cff4a3f438c071316e41f94ffe110116a313ab0fc4f8caa07218f1f0f src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ansi-wrap/LICENSE sha256 5a3b0007c4203f10fe11b3fe8747253eb994f135e10b73e1f88ada941af09c6e src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/anymatch/LICENSE sha256 0b61ac8491c66669491fdb328200203822b91d2a0461f5cd898fe0944ea97e41 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/append-transform/license sha256 c8442419dc614089ea022b3da6bfc089b41a58fb7b9030d1e651f2f36189dce2 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/argparse/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/array-find-index/license sha256 f4a48aa8354a257785aa534bab2ac5ff2c2a98cd59cdf4a637bb68ee185683f7 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/arr-diff/LICENSE sha256 3672fb6ef1c214578dfee689643516c2685f61ab08d130517ca8ea24f383a840 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/arr-union/LICENSE sha256 e80373b1ed0f33cecc47173b4b0c6afe0d0318b32dbd84116a1a957e3f7f43a8 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/asap/LICENSE.md sha256 6239c6144c31e58cf925c34483606969c555574d64ffa96518ab5d7f45c75d43 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/assert/LICENSE sha256 0798f37cff4a3f438c071316e41f94ffe110116a313ab0fc4f8caa07218f1f0f src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/assign-symbols/LICENSE sha256 69dee148a2cc470554dfa7142e830662062394d0fe67cddd379aba90dc60d6b3 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/astral-regex/license sha256 a374b737c41b30b1ec04c5fcc17d1b853f008f217cc43a9dbea441abd9afde70 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ast-types/LICENSE sha256 d9fed24f132985934fca621c4dc1dfb53e03377a24d0568d424383d7eaa9c0ac src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/async/LICENSE sha256 e5a57cdd72e279910183799153134d0e749a5664fc459c8eacbecf72532b7db3 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/async-limiter/LICENSE sha256 117da2af0d4ce0fe1c8e19b5cff9dcd806adf973d328d27b11d4448c4ff24f76 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/code-frame/LICENSE sha256 117da2af0d4ce0fe1c8e19b5cff9dcd806adf973d328d27b11d4448c4ff24f76 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/generator/LICENSE sha256 6cb0631f71c7749763fd3dd1d5bee52dd1070ec17f2edc1710079ad070bd2fbd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/generator/node_modules/source-map/LICENSE sha256 4e32449bd377d3dbced215dfd66dc234994c28e561aef73dbd29d6b5a1a00484 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/helper-function-name/LICENSE sha256 517913953e6a69da35bccb95c2d801f70d73e8f267cdad1a1615bfe8974ad3ad src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/helper-get-function-arity/LICENSE sha256 117da2af0d4ce0fe1c8e19b5cff9dcd806adf973d328d27b11d4448c4ff24f76 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/helper-split-export-declaration/LICENSE sha256 117da2af0d4ce0fe1c8e19b5cff9dcd806adf973d328d27b11d4448c4ff24f76 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/highlight/LICENSE sha256 2e97627cb278aa7556fb9e8817368302301a595b6c7582512b8d74c57b773652 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/parser/LICENSE sha256 117da2af0d4ce0fe1c8e19b5cff9dcd806adf973d328d27b11d4448c4ff24f76 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/template/LICENSE sha256 117da2af0d4ce0fe1c8e19b5cff9dcd806adf973d328d27b11d4448c4ff24f76 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/traverse/LICENSE sha256 117da2af0d4ce0fe1c8e19b5cff9dcd806adf973d328d27b11d4448c4ff24f76 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@babel/types/LICENSE sha256 a1bd5deadb6a06dd74efa852c1b8b23f63b67f2214fbe9c8bd591da51da69268 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/balanced-match/LICENSE.md sha256 f3eca6ff762533fa5a77caf954a143e48afa204668cf97dce758c45a9e006be3 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/base64-arraybuffer/LICENSE-MIT sha256 de6059eadd0c1327f30a22663392e57d36b97b0ac9bb48f4875c8008ba823c30 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/base64id/LICENSE sha256 5b37224c080cdcc97c871ada971c224e9926370fe74f11b539aa1cf9f3b1aca1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/base64-js/LICENSE sha256 85fe65eefab89e2a683232b96e6f689279821a0bd3b351e9ab6a6ebd19dea567 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/binary-extensions/license sha256 150d7707d4532d57bdb5718637ff62fff1f075921c5ffaa084df27f900bfea76 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/.bin/license-checker sha256 7d3e0d8d5604632b94ff9aea3001153c506566cd1c6c7bb37000acdb1fb37417 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/blob/LICENSE sha256 87092fe7ffd1e92eba5d1dd39b73a73fdb4fdd4df3474beacc3d9f6b08ece82c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/bluebird/LICENSE sha256 23d466b1b134b415b66fa50c6526b4cf3e7b9258554da88d3abb371721e7ce68 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/body-parser/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/body-parser/node_modules/debug/LICENSE sha256 6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/body-parser/node_modules/ms/license.md sha256 68f12f6e2c33688699249c01d8f9623c534da20aa71989c57b061b7bc1676d14 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/brace-expansion/LICENSE sha256 e70ff771504ba41f2be55de812a017ff46433d7a250c862e38fc419159e44500 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/braces/LICENSE sha256 82ba430b068b75a41438568e1e4ed1f96e02699c9b51735154af03e9b59d6b0d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browserify-aes/LICENSE sha256 dc09aa476634db0dbae1a296f099d5bd39e27c96b876d4d20b236fa565002bb6 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browserify-cipher/LICENSE sha256 e54f1a2edadb1d8d3a482bcd0712acad2947337ae35e40ca34b22eb77940863f src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browserify-des/license sha256 672eb2c2ad92bee7ef6c894f1431a66d7e8fdd7965cfdca5aa4fc206951a7c9c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browserify-rsa/LICENSE sha256 a0e06d86a5a17341fa6134ee30ef18d73251cf32b8a577cdfd6aad6ad34af61d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browserify-sign/LICENSE sha256 ddd770379e07bf0574dfaa4485be80a23b3248b36d09f33ec79276c09b829daf src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browserify-zlib/LICENSE sha256 0e91be39cb38da2972a6e0649dcd4e8a49595996b3ab4b04e72ef9ea71de9079 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browser-resolve/LICENSE sha256 fd595a25dd3c90492a8cc3b888aa9ae47630173181efed17f71b4c689d99d0ec src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/browser-stdout/LICENSE sha256 14275f5c8139d02054c5259d52a88ccbba662a86af18c30f071c8d082dc6004c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/buffer-from/LICENSE sha256 06bafa45fdad2579ba0e43b0c9b2c6290287c99c4203c300254a462b38a307f6 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/buffer/LICENSE sha256 51ad9defd71911dbe413daf277bcb2e1077743f5ee5ae48d0a3b90a5b7486f55 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/buffer-xor/LICENSE sha256 f057f36739d53d228a746de4440c1e0c644ecde06d6beab45337d39c9d12a393 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/builtin-status-codes/license sha256 e3b44af066615de2ea48d18d852d0762f18c0b2efcea714fa48a6f729d405b85 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/bytes/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/callsites/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/camelcase-keys/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/camelcase/license sha256 b181da80336ff9dd1043fc8be1a764d7382363433319aa872e4d2cb5ce2a3066 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/chai/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/chalk/license sha256 7df1d6cf5b4112cbe277a84269e02ae631603a9a3a21b8328a34c30b8c3dd1ab src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/chardet/LICENSE sha256 e5aee0714b6ecc416454b968d1017570ef609f20d8722ab84b07acd550b78198 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/check-error/LICENSE sha256 db9ba183d4cbfbaf6c27db2effddbb84b46340c33ed32a066bc0b144a3ea1298 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/chokidar/LICENSE sha256 2c46f1325bd3822a33c1e2c1e49c18d13127ac00f9c8b3b79196c7a126f73cd9 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/glob-parent/LICENSE sha256 cf93ad78cfd5f3523248675aeb2a46e003367596883d4fa26a0c38d553ab0f61 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/cipher-base/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/cli-cursor/license sha256 2dc0465729366c3a7890dfa9e972a1ba7048a26c02116fb8b419a6a1ac110149 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/cliui/LICENSE.txt sha256 33fa5470b2195e410b075a32516b6ad27784b8a8ff74ae90cfd60c14b76e6644 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/cli-width/LICENSE sha256 3fb0857ef0133928cf72c88dfc464e931486e88778961eedec25585e2321507f src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/clone/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/code-point-at/license sha256 693866fc419c6f61c8570438ec00659d156ec2b4d4a4d04091711f5f11a365d4 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/color-convert/LICENSE sha256 7357445bac398c76c0aef75a587009fe406d40de6a79789eb5b7ecbbad317ef2 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/color-name/LICENSE sha256 77ffe84006509949525fd57df06f4a6a80ad862c5314b66ab5bb6ac4cee6280b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/colors/LICENSE sha256 1fa6ee8bb95a81ae3d73a5bd074a3ac380ffec13697051063ca1a601921b91db src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/combine-source-map/LICENSE sha256 1fa6ee8bb95a81ae3d73a5bd074a3ac380ffec13697051063ca1a601921b91db src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/combine-source-map/node_modules/convert-source-map/LICENSE sha256 6cb0631f71c7749763fd3dd1d5bee52dd1070ec17f2edc1710079ad070bd2fbd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/combine-source-map/node_modules/source-map/LICENSE sha256 04512a63dce4d2d506ad612dc0bd7681ccf6e3655f7b6eaef7dfac8323d1ec0b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/commander/LICENSE sha256 d682394bef4a34d279b0237feecf145abadd6ec1e41cbb094592b8cc9fc2f34b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/compare-versions/LICENSE sha256 0f0b408b8b871d983e767528c6dc51e0ad7efaa022890c449fe2b2e1ee24dbb7 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/component-emitter/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/concat-map/LICENSE sha256 96b29c9aaa611a05349b362d48c2ffce0966fe408401a2d1a157be312c035b5f src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/concat-stream/LICENSE sha256 ec62dc96da0099b87f4511736c87309335527fb7031639493e06c95728dc8c54 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/concat-stream/node_modules/readable-stream/LICENSE sha256 c7cc929b57080f4b9d0c6cf57669f0463fc5b39906344dfc8d3bc43426b30eac src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/concat-stream/node_modules/safe-buffer/LICENSE sha256 11f2aafb37d06b3ee5bdaf06e9811141d0da05263c316f3d627f45c20d43261b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/concat-stream/node_modules/string_decoder/LICENSE sha256 9913ff70f23424d49fda2b05902cfb72f17ae1e48aaf898c349a284289a74751 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/connect/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/connect/node_modules/debug/LICENSE sha256 6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/connect/node_modules/ms/license.md sha256 257aed98914108e91a337912727b6a802eef218248507f74b76faffaff517a38 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/content-type/LICENSE sha256 1fa6ee8bb95a81ae3d73a5bd074a3ac380ffec13697051063ca1a601921b91db src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/convert-source-map/LICENSE sha256 c7cc929b57080f4b9d0c6cf57669f0463fc5b39906344dfc8d3bc43426b30eac src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/convert-source-map/node_modules/safe-buffer/LICENSE sha256 c02110eedc16c7114f1a9bdc026c65626ce1d9c7e27fd51a8e0feee8a48a6858 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/cookie/LICENSE sha256 722e1193901ad1ed4460753dded483d68ca2ad0528c67f86f76abc46b9aa25f5 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/core-js/LICENSE sha256 33b734d60042d0fe0c92dd1fc1e874193a1c899ec3e276a2eb935d2d0bf5b710 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/core-util-is/LICENSE sha256 d4ad87ad0bb7d57c17ae73b46e064243b972edc3036c38c222172c9600a20b56 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/create-ecdh/LICENSE sha256 cf93ad78cfd5f3523248675aeb2a46e003367596883d4fa26a0c38d553ab0f61 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/create-hash/LICENSE sha256 cf93ad78cfd5f3523248675aeb2a46e003367596883d4fa26a0c38d553ab0f61 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/create-hmac/LICENSE sha256 aaa78451b6fecd1b9c4594c796c133c0e90cad100372ff8bc6de615e9ef9adf1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/cross-spawn/LICENSE sha256 6134c69bc22c8289252e70de3af20bd67071233459055be74d83acfcc4865e7e src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/crypto-browserify/LICENSE sha256 0b61ac8491c66669491fdb328200203822b91d2a0461f5cd898fe0944ea97e41 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/currently-unhandled/license sha256 53ecc31e1632c07980cb0c97dcaf3d1d20323d21194b92150987a4fecf517b3c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/custom-event/LICENSE sha256 9660914267128b5f96a102bd7f6268c249110a39cb7c4bb7f536d856445d739c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/date-format/LICENSE sha256 e38ad5868b1e32ab44c63da6e58b8b58604d8d1dd90c40d171f2feaa756b088b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/dateformat/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/debug/LICENSE sha256 5f9e03a50e10f262f7bd356fe323b12f461f14dae6762611285a0d7479340ae7 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/debuglog/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/decamelize/license sha256 e5aee0714b6ecc416454b968d1017570ef609f20d8722ab84b07acd550b78198 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/deep-eql/LICENSE sha256 f2042f3634c4136d06b5139c9c6aefb81a3a462b514548bc1845953233dfba98 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/deep-is/LICENSE sha256 d7c67af00ef4ecd9bee06e010bb1fcd8d5f0ecb02fa1b73fe3ef030a88800d4b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/default-require-extensions/license sha256 b568428993e6acff80c1214dcc4f7195241772d5b3d23d92ee6bf5406a102896 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/defaults/LICENSE sha256 00d402c2bbe7c67369bd01ce2c16b8ed46ccc949a1ee2d6bb8f9606afa8c7434 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/define-properties/LICENSE sha256 bd47ce7b88c7759630d1e2b9fcfa170a0f1fde522be09e13fb1581a79d090400 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/depd/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/dezalgo/LICENSE sha256 db6109f994692150ed82cd904bb053c73b97b23678bf52047f747bfec11e1934 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/diffie-hellman/LICENSE sha256 152f0fb43e953fcf5c56c5bfa4c834bb96b1603e4026319c613dd3e734f305cf src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/diff/LICENSE sha256 58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/diff-match-patch/LICENSE sha256 545278991ee5f1fb4372f913ec44837cff9395175140f8f21118074330a659cb src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/di/LICENSE sha256 5c272e206669b79ee20fa89fa8fa888d5b56186f16c55a5614753ad3412e2ae9 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/doctrine/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/doctrine/LICENSE.closure-compiler sha256 0e74697a68cebdcd61502c30fe80ab7f9e341d995dcd452023654d57133534b1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/doctrine/LICENSE.esprima sha256 8ffaa1b117e1c280023c8ef997a84a461133b972c8bade4579050e3e41835902 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/domain-browser/LICENSE.md sha256 965ef284f7f4c176842ec2e87fa13e79feed777d56d7a21a5a3b38f1bb6dc288 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ee-first/LICENSE sha256 483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/emoji-regex/LICENSE-MIT.txt sha256 7585ea7bba616ccbbe43cb54ecb67956688c3c5641bb84f3099a652a73193afe src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/encodeurl/LICENSE sha256 3fe8d55a98dbf260eace67c00cf9bc53edb46234e840098a0b93df3096b97fb6 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/end-of-stream/LICENSE sha256 bb996a5665c8e18041251e833e52b590f0da5050c1878aa3e3a47f71bb16fa6d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io-client/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io-client/node_modules/debug/LICENSE sha256 6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io-client/node_modules/ms/license.md sha256 8e0349070612cb59fc604588974e193d8363f0a08752caf31d3f270a609d346a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io/node_modules/debug/LICENSE sha256 6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io/node_modules/ms/license.md sha256 2a190271977c2ad47c85a9e08cc05d078fe9293643061d466d2ae89ce8e5c2f1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/engine.io-parser/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ent/LICENSE sha256 92b07a2e5b0e051d37dde85042c736d6d551cfcbc0983f39d7ef903b3986bbc1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/error-ex/LICENSE sha256 c2c31e096c312163e9a7a908a5209f335eb4c3381d6c404dd1e1b91fe65707fc src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/es6-object-assign/LICENSE sha256 da852e222c72bc04a0a9046aac35f2e5d33775a8ea9f1d8f59b1cfd195ef9bb0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/es6-promise/LICENSE sha256 00d402c2bbe7c67369bd01ce2c16b8ed46ccc949a1ee2d6bb8f9606afa8c7434 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/es-abstract/LICENSE sha256 255aa557a1f55224ce522f311629c0bf20854740a67955cefd798fbd1d3d1ded src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/escape-html/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/escape-string-regexp/license sha256 0e74697a68cebdcd61502c30fe80ab7f9e341d995dcd452023654d57133534b1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/escodegen/LICENSE.BSD sha256 94bcb9959136723aa4fb36e1a6c4d5c662a2369978cfae344dabfb83ae619e79 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/escodegen/node_modules/esprima/LICENSE.BSD sha256 db83f2ede67f36cfab1ea0721ea2ee97515863e9a65346881f305e430451cc91 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eslint/LICENSE sha256 b67ae8fe5f32d0e6164655de53075cba04bb69c23e7d11efcfed6a0fa265ef64 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/LICENSE sha256 541c415066b6139f0fb6ad55f633abbc62f0ba6b54543f1ff00c762e76a90239 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eslint-plugin-rulesdir/LICENSE.md sha256 d3a724e2ed749f172ff70b62a1d0631b7d4b0ea273782365a3464d4e2d6b6dbd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eslint-scope/LICENSE sha256 fcf6eabf68ca96988a6b506b4fdc6cc32535d80eb2e11c79724af5ac6f50262b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eslint-utils/LICENSE sha256 d8bf34ff6d190640a01e7704ad78253fc181bc128949d71273fbbaa12f33c0b4 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eslint-visitor-keys/LICENSE sha256 6273faa0d14a54972c0341a724010eb8cd928ee486745a9eea8cf80680ba5098 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/espree/LICENSE sha256 94bcb9959136723aa4fb36e1a6c4d5c662a2369978cfae344dabfb83ae619e79 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/esprima/LICENSE.BSD sha256 ac68116ae73740de4190892f334992e449a124600924ec761e64319d3aac9e6e src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/esquery/license.txt sha256 c61652db3d2808f667b48af0a358f0d85fd07ad4a0d0b1a50882dec3b764c522 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/es-to-primitive/LICENSE sha256 0e74697a68cebdcd61502c30fe80ab7f9e341d995dcd452023654d57133534b1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/estraverse/LICENSE.BSD sha256 0e74697a68cebdcd61502c30fe80ab7f9e341d995dcd452023654d57133534b1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/esutils/LICENSE.BSD sha256 3aecc12b1cb28832b5f65ab64291de96568c3f236a74d646281b4491f7bcadbf src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/eventemitter3/LICENSE sha256 631987b7616a325a5b97566c232418481ddf7dbb5ecadefb991e791876cc2599 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/events/LICENSE sha256 cf93ad78cfd5f3523248675aeb2a46e003367596883d4fa26a0c38d553ab0f61 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/evp_bytestokey/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/execa/license sha256 97af7428f93afbab9bf79cd09254da1357161794f4255eb1b4599f04dd2d2e7c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/extend/LICENSE sha256 9580cc528a1c38d1560a9d36e34404fe1ea9d8e6f44c596dac2a3104ef63cdab src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/extend-shallow/LICENSE sha256 e33b7bc13a0e5ea9ed6718e12e99a5b0b60276162f0195aa7f342397f4b0155d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/external-editor/LICENSE sha256 77b2de947c65f3062fb347118ca198ca50898ead84a8509d8153fa65741f029b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/extract-zip/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/extract-zip/node_modules/debug/LICENSE sha256 6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/extract-zip/node_modules/ms/license.md sha256 7bf9b2de73a6b356761c948d0e9eeb4be6c1270bd04c79cd489c1e400ffdfc1a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fast-deep-equal/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fast-json-stable-stringify/LICENSE sha256 942a98cb8846a6354266193f173c1354615827fbb7d67f68399599dff12c4d6a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fast-levenshtein/LICENSE.md sha256 176d95320d565cb034d8323797b6cd6160238f625453687f98aad2085c46c3b3 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fd-slicer/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/figures/license sha256 c8c8324aff32c44f9e501aac5b3b97540c26af7d6dd6af8bce5e34300596e27d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/file-entry-cache/LICENSE sha256 99513010b6a19894e01864cba86bf98291bef8251a302d90ab1a572d91ebacc8 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fileset/LICENSE-MIT sha256 35bdd8a44339719441900fb50fbefc5e2dca1ca662cbaed7a687de842c8b70f2 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fill-range/LICENSE sha256 24973d5320410e565ec92f18f73f12af7d97c634d414ba170d119fe3f98904c8 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/finalhandler/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/finalhandler/node_modules/debug/LICENSE sha256 6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/finalhandler/node_modules/ms/license.md sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/find-up/license sha256 c8c8324aff32c44f9e501aac5b3b97540c26af7d6dd6af8bce5e34300596e27d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/flat-cache/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/flat-cache/node_modules/rimraf/LICENSE sha256 95a61f61553614db5421a2cefb17c22ff6b2b4b2206f5bc8913d04f72a22b033 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/flat/LICENSE sha256 5097efeab30293dd7e26d6960b6b94f1aeca958d22f1eca3535c482a891e95a9 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/flatted/LICENSE sha256 bfa8a54bb952ccda79f0f1889721d108f5b605babbb2b8a3705ffb52f4132eb7 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/follow-redirects/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/follow-redirects/node_modules/debug/LICENSE sha256 99de4c30f4643c00d4895d9c6ade0af4ec43d301449c191f5fbe41b53bb6a13a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fsevents/LICENSE sha256 1e76029602ae9b21cc4e612db2496d92febed882ba13ba745f8b3309e85f9d39 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fs-extra/LICENSE sha256 8465b04b67f473341171b5c9c8b2c741a4a395b3f6ed58339b3a4f4db3db7472 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/fs.realpath/LICENSE sha256 e67aed7df22dc8031e4fcf5338fe91cb33e3817e5c58a99a2a2802eea9069791 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/functional-red-black-tree/LICENSE sha256 773e131a7684726005a7e4688a80b4620033bc08499bc1404dd1a1eb3bca725e src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/function-bind/LICENSE sha256 902dbb4154679fb2b8d7c33878183f45b268d01eae5e5033dddaa8852d45f213 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/get-caller-file/LICENSE.md sha256 e5aee0714b6ecc416454b968d1017570ef609f20d8722ab84b07acd550b78198 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/get-func-name/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/get-stream/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/globals/license sha256 6236fa0b88a4a0cce3dda0367979491b2052b3c8d6b1c10b3668de083e86a7f0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/glob/LICENSE sha256 a2a19c04f527f7582fb2e58887f0a90f403732fc6accd7322287f0f5949b489e src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/glob-parent/LICENSE sha256 3672fb6ef1c214578dfee689643516c2685f61ab08d130517ca8ea24f383a840 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/glob-parent/node_modules/is-glob/LICENSE sha256 2fc5460f1526810979054ecd18cd01349b57f38ea56d1e920afdea34d104540c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/graceful-fs/LICENSE sha256 8a48a335d7dcc06e3da2bea89220cfe978394b1bc84a3e628e60bc4864917915 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/handlebars/LICENSE sha256 dc1fcc41f783463ed272ada875a7d3d1baf6c6279e5efada2c4ef2ca72db39e1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/has-binary2/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/has-flag/license sha256 898f204abbbbde58c6230a31842c59aeb8040fbcffa924db28e6d0b1d7631a3a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/hash-base/LICENSE sha256 4fe5fd7b3318def0b74f8bf8c9276403f01da628fa8888822661519d80f237d3 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/has/LICENSE-MIT sha256 206c1adcf206dc0031b11232f5b054ec5f1662407ab1ca415247921cab2068ab src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/has-symbols/LICENSE sha256 483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/he/LICENSE-MIT.txt sha256 c1476ec53119cd4c8370f91f5152ac76312a29b4fae2d49b5e0e0970fe0fa5ee src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/hosted-git-info/LICENSE sha256 dcb94ff9b1e037a847bc20589dc81a1066d041fd4c16deb18b0fa968c66cf395 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/http-errors/LICENSE sha256 5ffe28e7ade7d8f10d85d5337a73fd793dac5c462fb9a28fbf8c5046c7fbca3b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/http-errors/node_modules/inherits/LICENSE sha256 589850dfc0a1d39a97c592d618d5772f84aec2b11c6898e020acb985299f3bab src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/http-proxy/LICENSE sha256 ff151c00207c908581639851dd8504ce4255be0650b2b236edec2aa90342b0cd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/https-browserify/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/https-proxy-agent/node_modules/debug/LICENSE sha256 ac779f7314c74f232ef847ea86e714abe25cf6eeb5cc97b69451b74e2af6492d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/iconv-lite/LICENSE sha256 18d45466ba3253deae04667e267a91ea8de8548f18c1125264d1c9db28194cc1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ieee754/LICENSE sha256 9c94db23dc4b1e9aaee5d195668b916afc71efed54af226b66cf0ccc4389c1c0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ignore/LICENSE-MIT sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/import-fresh/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/indent-string/license sha256 05dc4d785ac3a488676d3ed10e901b75ad89dafcc63f8e66610fd4a39cc5c7e8 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inflight/LICENSE sha256 5ffe28e7ade7d8f10d85d5337a73fd793dac5c462fb9a28fbf8c5046c7fbca3b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inherits/LICENSE sha256 1fa6ee8bb95a81ae3d73a5bd074a3ac380ffec13697051063ca1a601921b91db src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inline-source-map/LICENSE sha256 6cb0631f71c7749763fd3dd1d5bee52dd1070ec17f2edc1710079ad070bd2fbd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inline-source-map/node_modules/source-map/LICENSE sha256 e6c3f1bc47f97cdeef953f6c109b6392be0d059ae94659faf550e61b7a75ebc7 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inquirer/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-regex/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/strip-ansi/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/invert-kv/license sha256 dc0fe5a22d9336f345ee984f9bf56f11f22877a3aa5fd16a1db9a8ca0e23a5d1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-arguments/LICENSE sha256 92b07a2e5b0e051d37dde85042c736d6d551cfcbc0983f39d7ef903b3986bbc1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-arrayish/LICENSE sha256 628a0b082ba17df4f4bcb7946d41988891d2b410b25927b995c2f632a0829676 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/isbinaryfile/LICENSE.txt sha256 85fe65eefab89e2a683232b96e6f689279821a0bd3b351e9ab6a6ebd19dea567 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-binary-path/license sha256 c7cc929b57080f4b9d0c6cf57669f0463fc5b39906344dfc8d3bc43426b30eac src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-buffer/LICENSE sha256 c61652db3d2808f667b48af0a358f0d85fd07ad4a0d0b1a50882dec3b764c522 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-callable/LICENSE sha256 c61652db3d2808f667b48af0a358f0d85fd07ad4a0d0b1a50882dec3b764c522 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-date-object/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/isexe/LICENSE sha256 4922620a5741e9d1bb43dde132021a982ae7c545eed1c6e00b555d6fe978005f src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-extendable/LICENSE sha256 73b5283588baa142c5baaef5f56d3e8fdea7a30b214e8c5737e87640f882453a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-extglob/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-finite/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-fullwidth-code-point/license sha256 dc0fe5a22d9336f345ee984f9bf56f11f22877a3aa5fd16a1db9a8ca0e23a5d1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-generator-function/LICENSE sha256 4cd903859549d4b20b571041f96dfae1136ed079c476126268f9d7cc1b611150 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-glob/LICENSE sha256 dc0fe5a22d9336f345ee984f9bf56f11f22877a3aa5fd16a1db9a8ca0e23a5d1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-nan/LICENSE sha256 35bdd8a44339719441900fb50fbefc5e2dca1ca662cbaed7a687de842c8b70f2 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-number/LICENSE sha256 0ead7e8cd8b0bc66a981ee69acaf1297ffa838cfce1b156a039bb24f997c0a27 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/isobject/LICENSE sha256 4cd903859549d4b20b571041f96dfae1136ed079c476126268f9d7cc1b611150 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-plain-object/LICENSE sha256 44191656d296391e0ec97e32f5385f0d02b6f2992694082d22ea04ba0f66f9e4 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-promise/LICENSE sha256 dc0fe5a22d9336f345ee984f9bf56f11f22877a3aa5fd16a1db9a8ca0e23a5d1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-regex/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-stream/license sha256 c61652db3d2808f667b48af0a358f0d85fd07ad4a0d0b1a50882dec3b764c522 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-symbol/LICENSE sha256 b661867c1d66a1b71ee3a6109159874334cd5c182a80d1bcc7353b5a4c6823c6 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-api/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-diff/node_modules/minimist/LICENSE sha256 e09f9b52c6ce5c17ba8103cd0cbf446c33b5448b0c1d01d711b36a1f15a501ba src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-coverage/LICENSE sha256 e09f9b52c6ce5c17ba8103cd0cbf446c33b5448b0c1d01d711b36a1f15a501ba src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-hook/LICENSE sha256 e09f9b52c6ce5c17ba8103cd0cbf446c33b5448b0c1d01d711b36a1f15a501ba src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-instrument/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-instrument/node_modules/semver/LICENSE sha256 e09f9b52c6ce5c17ba8103cd0cbf446c33b5448b0c1d01d711b36a1f15a501ba src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-report/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-report/node_modules/supports-color/license sha256 b661867c1d66a1b71ee3a6109159874334cd5c182a80d1bcc7353b5a4c6823c6 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-source-maps/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-lib-source-maps/node_modules/rimraf/LICENSE sha256 d38a14ec66572a5588bba501f05eef0874e3ce929f0ddcb749c7557f4fdcb905 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/LICENSE sha256 4d3083ec594b158fd6adfdc6c9423ffe0746d2d93cebfb98f1a35b69da78051e src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/async/LICENSE sha256 0e74697a68cebdcd61502c30fe80ab7f9e341d995dcd452023654d57133534b1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/escodegen/LICENSE.BSD sha256 c9d85a24226fa4dd8c0756961de362cee34f6e9b1d19938bd480239950ad9a93 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/escodegen/LICENSE.source-map sha256 4193a099a2c3ba864dd6b94f37e2fd80757d50796999d65adbca6a8c0f3a8e0a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/esprima/LICENSE.BSD sha256 0e74697a68cebdcd61502c30fe80ab7f9e341d995dcd452023654d57133534b1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/estraverse/LICENSE.BSD sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/glob/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/has-flag/license sha256 6cb0631f71c7749763fd3dd1d5bee52dd1070ec17f2edc1710079ad070bd2fbd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/source-map/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul/node_modules/supports-color/license sha256 e09f9b52c6ce5c17ba8103cd0cbf446c33b5448b0c1d01d711b36a1f15a501ba src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/istanbul-reports/LICENSE sha256 f481fe414a74f72c6b37890ad65e1d0b7c3f51be175b6d3e992fdcdb66882bd4 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/is-utf8/LICENSE sha256 483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/jsesc/LICENSE-MIT.txt sha256 a9801fb52ba22ef808682a094da8a7a480584b7ed0dfd0d888ab543616335031 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/jsonfile/LICENSE sha256 6cf2891dd0e66460f7d2ed83e1e3fe4b4b4c1a8c1f1f96c222a3466ad12ff197 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/json-parse-better-errors/LICENSE.md sha256 7bf9b2de73a6b356761c948d0e9eeb4be6c1270bd04c79cd489c1e400ffdfc1a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/json-schema-traverse/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/json-stable-stringify-without-jsonify/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/json-stringify-safe/LICENSE sha256 2213d91c606205c71eb051a199478cdc2adde945893404d7f1421436dd6d5cc1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/js-tokens/LICENSE sha256 a07bc24468b9654ce76a547d47a2db282d07733b715db4c73a98bd63961f9550 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/js-yaml/LICENSE sha256 94bcb9959136723aa4fb36e1a6c4d5c662a2369978cfae344dabfb83ae619e79 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/js-yaml/node_modules/esprima/LICENSE.BSD sha256 e3d4ed2aa50e7583730b1531034331ba9093c8bef7414234c7c9306db3858913 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-chai/LICENSE sha256 296b9a3c5e4eb7b79a6f1dca9a27ee31e48fe5c9d48a32ec31ac924b65ff287c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-chrome-launcher/LICENSE sha256 be13520ed43fa818f7bbe9d3a2beccaf1931421d818d35b42bdae3c127241ed3 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-coverage-istanbul-instrumenter/LICENSE sha256 55c6f6d52a0b60393333dd4e9d385957c7e784517daa9cfbf5b09ec812811eec src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-coverage-istanbul-reporter/LICENSE sha256 296b9a3c5e4eb7b79a6f1dca9a27ee31e48fe5c9d48a32ec31ac924b65ff287c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-coverage/LICENSE sha256 d38a14ec66572a5588bba501f05eef0874e3ce929f0ddcb749c7557f4fdcb905 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-coverage/LICENSE-istanbul sha256 6cb0631f71c7749763fd3dd1d5bee52dd1070ec17f2edc1710079ad070bd2fbd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/source-map/LICENSE sha256 6e4e577107740b24ebd73cb813be506861d706129e502ca7160683a5cea4c129 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma/LICENSE sha256 296b9a3c5e4eb7b79a6f1dca9a27ee31e48fe5c9d48a32ec31ac924b65ff287c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-mocha/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-mocha/node_modules/minimist/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma/node_modules/rimraf/LICENSE sha256 2b3adc1e55676b9443f76bdb17e42371de98a4be6abd3ae6e5f3590f6f3e4f6f src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-sourcemap-loader/LICENSE sha256 3c50a3d2df1468f5e7b723d4c931c1c7ba6775740aa1ef9fa49586ddb7b168fd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-typescript/LICENSE sha256 7cdb44aabddbdd78998119d68a39c87424119b663945c79891fc1b022301824c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-typescript/node_modules/acorn/LICENSE sha256 d9fed24f132985934fca621c4dc1dfb53e03377a24d0568d424383d7eaa9c0ac src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-typescript/node_modules/async/LICENSE sha256 6cb0631f71c7749763fd3dd1d5bee52dd1070ec17f2edc1710079ad070bd2fbd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-typescript/node_modules/source-map/LICENSE sha256 162413c61e0982abe89a06bf7a02ec760dc49a7364d838bd9f01daebb5b95954 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-typescript/node_modules/tmp/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/karma-typescript/node_modules/tmp/node_modules/rimraf/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/lcid/license sha256 b9eb082c39fe245e38793699074c394c43a722c51fce031c3c165cb92a31035c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/levn/LICENSE sha256 150d7707d4532d57bdb5718637ff62fff1f075921c5ffaa084df27f900bfea76 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/license-checker/bin/license-checker sha256 455629980585dfdadbdcbaf846659b65da3dd092ac9bfd10b07717a0e2f84ef5 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/license-checker/lib/license-files.js sha256 37932d5f93a7f9e762346358ae427e703d69fdaae6e7cd67158b35eea91c9eec src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/license-checker/lib/license.js sha256 adeb5a7f7d027ec14c3698be7a0f248978516ab39ccec4fb70689ba4753cdd67 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/license-checker/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/license-checker/node_modules/debug/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/license-checker/node_modules/nopt/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/load-json-file/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/load-json-file/node_modules/pify/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/load-json-file/node_modules/strip-bom/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/locate-path/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/locate-path/node_modules/path-exists/license sha256 d778ae0088806b771424967d88efb68f3adb3705c31c3b7c0a052fe2eebd5268 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/lodash-deep/LICENSE sha256 f71e8ed126b46346494aad5486874cd8f0aafe95092ed67d2e3cb6110f939abc src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/lodash/LICENSE sha256 90df9e2220f682e1f77e24b1c0f72d2de18b818096c957a65698e74c41a4826f src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/lodash.memoize/LICENSE.txt sha256 66da8b277e527c270de6abc57727c58032267d161a81dbac02c3eed45fd13366 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/log4js/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/log-symbols/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/loud-rejection/license sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/lru-cache/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/make-dir/license sha256 3d3fba5375126ff321d3a51938899d744b1189896618e0f2d088d9e1ebf2822a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/map-age-cleaner/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/map-obj/license sha256 898f204abbbbde58c6230a31842c59aeb8040fbcffa924db28e6d0b1d7631a3a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/md5.js/LICENSE sha256 74d8054d56d522bdaa340d3d71130cb204997d523a5292c85ac1264dd77c8d06 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/media-typer/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mem/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mem/node_modules/mimic-fn/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/meow/license sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/meow/node_modules/minimist/LICENSE sha256 965ef284f7f4c176842ec2e87fa13e79feed777d56d7a21a5a3b38f1bb6dc288 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mime-db/LICENSE sha256 8f2658c03422c408b2b2ce4d151decc3b1a6fd3d86e5ca9433777bccdcdf75a2 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mime/LICENSE sha256 71f83c4c0621102a56d9853812777b85751bce7e9726f686f5b056c1f8a4b0e6 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mime-types/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mimic-fn/license sha256 136fee1129ea96ce18b41c26a72f5d4ba196ee41bfd73b55d0b8509cdda148e9 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/minimalistic-assert/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/minimatch/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/minimist/LICENSE sha256 05991c2e8f070b69ec5b656c2c12fd07cd0153dd157d39b050b82af59b319a01 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mkdirp/LICENSE sha256 bd5663836feb58ffb7d0e6b9e62010f4c3399f2bb0a4cf6514a15d597bbdd577 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/LICENSE sha256 94e1923e52409cfd50e97988d9772c0de15f65700097e3227fec367a39e82b94 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/ansi-colors/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/debug/LICENSE sha256 152f0fb43e953fcf5c56c5bfa4c834bb96b1603e4026319c613dd3e734f305cf src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/diff/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/find-up/license sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/glob/LICENSE sha256 6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/ms/license.md sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/supports-color/license sha256 6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ms/license.md sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/mute-stream/LICENSE sha256 553d4d20029a24e315b428a1a54a9e109eaa340f2e958a4f50a92362c2c4070b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/negotiator/LICENSE sha256 811238ba7d85f6fe6b820703a32f92705bcf77bc352ddc3476783491c64a129a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/neo-async/LICENSE sha256 bd220c219b05e6c22b7c23613ca926f60932d07c9fe141dd6e04b80dbc4b4e52 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/nice-try/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/nopt/LICENSE sha256 d16b2b8c511d9f2bef8bbf49f0e2a94f032b6b8d181f71c83912c34c116a02e1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/normalize-package-data/LICENSE sha256 60acd7711e6c138e6041836e32d922705254cc1568a30fdf16aa8f59bb87aeaa src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/normalize-package-data/node_modules/resolve/LICENSE sha256 e70ff771504ba41f2be55de812a017ff46433d7a250c862e38fc419159e44500 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/normalize-path/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/npm-run-path/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/number-is-nan/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object-assign/license sha256 a596744eec6b05682ed972bf93937668bbc8da2caed93fbf6510389de019b5c0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object.assign/LICENSE sha256 c61652db3d2808f667b48af0a358f0d85fd07ad4a0d0b1a50882dec3b764c522 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object.entries/LICENSE sha256 c61652db3d2808f667b48af0a358f0d85fd07ad4a0d0b1a50882dec3b764c522 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object.getownpropertydescriptors/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object-inspect/LICENSE sha256 dc0fe5a22d9336f345ee984f9bf56f11f22877a3aa5fd16a1db9a8ca0e23a5d1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object-is/LICENSE sha256 5640e5cbe2e9f57f6ccfdd8dbfbeadb875495bdbcb69d2666ce3177ccd0942e4 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/object-keys/LICENSE sha256 30792070c6ec188caccbadc5ee32c3e33fdc5e9044c2f08cb1d01213e5a01084 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/omit-deep-lodash/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/once/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/onetime/license sha256 8089bcc08845ec143e5761f4a101a65b8c792a0dedbfeeb90a15560c0b77f768 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/on-finished/LICENSE sha256 05991c2e8f070b69ec5b656c2c12fd07cd0153dd157d39b050b82af59b319a01 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/optimist/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/optimist/node_modules/wordwrap/LICENSE sha256 b9eb082c39fe245e38793699074c394c43a722c51fce031c3c165cb92a31035c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/optionator/LICENSE sha256 d25d1d6d28c35cb6f358e2833e405c4e53fec2fa24d156323ddea5cd438d3407 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/os-browserify/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/osenv/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/os-homedir/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/os-locale/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/os-tmpdir/license sha256 a6859a1cdfa7b6ebcdd52505c41bb72e747675b3e7fe0b908c0ac09280f0ba93 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pad/LICENSE sha256 a04665b3b2de56c66730c1f720f528175739e4104f79073614aa611da1e85539 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pako/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/parent-module/license sha256 bc5ed4eed738303bf403ec3b7e0a8e76760ef60664ad050a0ff61db23da77e66 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/parse-asn1/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/parse-json/license sha256 a41d7b212c43bf90af534ec5d73d24a65e3a8cf17941b6d10e9398346a179698 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/parseqs/LICENSE sha256 15c35ddf8c82a5fc84e3801db12e279b744605d6ad810e1b52ad09832fc71806 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/parseuri/LICENSE sha256 11d017c3b9f1ee3f44caf7203035f0461d5b57e0db8ce1bc03a9af34fa7d3f6b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/parseurl/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-browserify/LICENSE sha256 9c791b69df62b2264d0a846786f82b00bd6943200a0b10eba66a1ba7a7785fc8 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-dirname/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-exists/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-is-absolute/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-key/license sha256 3f4609137f65070541b9214300ea0d640af8192857de0eeb2b03403003d9228a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-parse/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-type/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/path-type/node_modules/pify/license sha256 5d45910e7ed82fecc3e29b40a5b3a17ceb609fda19f860aa2ec180d87f4f9d4a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pathval/LICENSE sha256 a9667a8bf55e7f20cf894cb47774f94ebd4eb366408aafb980f1f6547bcdc10a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pbkdf2/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/p-defer/license sha256 7e64acffcb0d20d33f5a86949ffd4a99ae045b10c7332a9c3a58635876c16880 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pend/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/p-finally/license sha256 d0cd141b0c322fded5dfad1d4645bb2fedfc05b7321fe1009469638190d59ef9 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/picomatch/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pify/license sha256 6ee0feb1f6ef996ff5a68600f8cf98909cf412d39ef3cdceaefd87d636fa1b7f src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pinkie/license sha256 6ee0feb1f6ef996ff5a68600f8cf98909cf412d39ef3cdceaefd87d636fa1b7f src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pinkie-promise/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/p-is-promise/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/p-limit/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/p-locate/license sha256 f476f01d5da0d8124355eeb79b42b95d2ad2a88d229dbe02b815628760a8cb43 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/plugin-error/LICENSE sha256 b9eb082c39fe245e38793699074c394c43a722c51fce031c3c165cb92a31035c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/prelude-ls/LICENSE sha256 f4bbb78fa28677ad9b9c0a4b7a255e23c0b24e619c873ed66a11d47c16c88114 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/private/LICENSE sha256 59a400d04c5078579acc27ddd6452c1bdf763f9506e01364700935fbb1a7c91b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/process/LICENSE sha256 ecdccbcf39024f624ded480c01c0b25458e1eca8f26ecf040933865ce56d9a4f src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/process-nextick-args/license.md sha256 d7d2a7786de7c7cfd96f920c6f12927d74e1d2a861ca4498bf465c3bc3f4c21c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/progress/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pseudomap/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/p-try/license sha256 db6109f994692150ed82cd904bb053c73b97b23678bf52047f747bfec11e1934 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/public-encrypt/LICENSE sha256 3fe8d55a98dbf260eace67c00cf9bc53edb46234e840098a0b93df3096b97fb6 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/pump/LICENSE sha256 483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/punycode/LICENSE-MIT.txt sha256 a1e4522979cd422b42d0b464072eb7d0d218651659f56bf09f8c147384e3f105 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/puppeteer/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/rimraf/LICENSE sha256 3de284c8e6fa7e8437eff6f53695471e0332129a5b42a79361e17b7637de94b3 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/LICENSE sha256 d2f9d2835eb09ccf673e118e4fdc372075437c1787e66c2202912fbe3e5ee9e1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/qs/LICENSE sha256 cb72d9714ddc21e758d63f423be0caddf909d23ccbb10a2f5201a870818e4f57 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/querystring-es3/License.md sha256 cb72d9714ddc21e758d63f423be0caddf909d23ccbb10a2f5201a870818e4f57 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/querystring/License.md sha256 f0606775704212c0b49fb4df8193f7ec190d057551fc857d9f3aaa482b878e29 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ramda/LICENSE.txt sha256 ddc0dd5947bd2966b9a4cfde098566b011de0acfbe7814536955636ce9e3eced src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/randombytes/LICENSE sha256 ddc0dd5947bd2966b9a4cfde098566b011de0acfbe7814536955636ce9e3eced src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/randomfill/LICENSE sha256 f655e6291356ec0de7a8f0e69f294961a2cea86678ec94588be1e6a492e278ab src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/range-parser/LICENSE sha256 c8e6bca7230689d536a3bd7158f66e9c4f89f95d0748743a0370ac229e9023ad src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/raw-body/LICENSE sha256 ec62dc96da0099b87f4511736c87309335527fb7031639493e06c95728dc8c54 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/readable-stream/LICENSE sha256 dffec71d93f273d2af7b54c6c7e7e70b3289c632ec0d7253210ec21ac336d5ac src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/readdirp/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/readdir-scoped-modules/LICENSE sha256 5ffe28e7ade7d8f10d85d5337a73fd793dac5c462fb9a28fbf8c5046c7fbca3b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/read-installed/LICENSE sha256 69be713b3d6c33e0dba76c4d23d986d568593abca04ce47d75162af255d6a345 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/read-package-json/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/read-pkg/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/read-pkg-up/license sha256 6ca87d1dce5b82873603e566fd83dabe8771fb169013337d4a14bb9bbf794687 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/recast/LICENSE sha256 94bcb9959136723aa4fb36e1a6c4d5c662a2369978cfae344dabfb83ae619e79 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/recast/node_modules/esprima/LICENSE.BSD sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/redent/license sha256 fcf6eabf68ca96988a6b506b4fdc6cc32535d80eb2e11c79724af5ac6f50262b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/regexpp/LICENSE sha256 aac9937f6a8dbc3328d2b90ab19691333ec4931634ea808673c897e623a9efc1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/remap-istanbul/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/repeating/license sha256 a92e52eb1fa7cd746e3827bf01d3a3589bbc8e1e51348b1da042aad165525ad1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/require-directory/LICENSE sha256 365496ca1f56da40b23c9815fc40fa9005847b2f8f8fd1c1a4929ef25ec8cd1d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/require-main-filename/LICENSE.txt sha256 3b2a6a268aa815dec121d614245e03b5c68db1f044d5b525e36db7d5dc7fb9c3 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/requires-port/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/resolve-from/license sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/resolve/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/restore-cursor/license sha256 1ce941682a96c7b898ecd125d0f2e22319758ea6f3adbf498a65d649b0f3f7dd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rfdc/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rimraf/LICENSE sha256 4847d2fd9ed54cc006dd79f5a14fa5dd35eb8274dca511418166e195e277c05b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ripemd160/LICENSE sha256 cc9426fe569f331f48fd3134b3a03b5bbe3fc7bd25d604be0006bd55a6134cf5 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rollup/LICENSE.md sha256 e5c1364118b39fa98b959138ce4aa4d0e68cfbee12d115e69730579fecb1dc1b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/run-async/LICENSE sha256 81c407ac717813b0e3795402960e04003c7bba8ba59b621624707028531c9ade src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rxjs/_esm2015/LICENSE.txt sha256 81c407ac717813b0e3795402960e04003c7bba8ba59b621624707028531c9ade src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rxjs/_esm5/LICENSE.txt sha256 81c407ac717813b0e3795402960e04003c7bba8ba59b621624707028531c9ade src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rxjs/LICENSE.txt sha256 81c407ac717813b0e3795402960e04003c7bba8ba59b621624707028531c9ade src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/rxjs/src/LICENSE.txt sha256 c7cc929b57080f4b9d0c6cf57669f0463fc5b39906344dfc8d3bc43426b30eac src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/safe-buffer/LICENSE sha256 4bc935e71be198c67ddf3c2b5fddb195f6edc182bfc155a96a6db61b44b494b9 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/safer-buffer/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/semver/LICENSE sha256 365496ca1f56da40b23c9815fc40fa9005847b2f8f8fd1c1a4929ef25ec8cd1d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/set-blocking/LICENSE.txt sha256 c4b4ad3a5746f1f5249a6dd90396ec519264e1bb02e01e48a6522c48a3a97cb4 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/setimmediate/LICENSE.txt sha256 76d6d1ea0c268da37dd3c961b4fcfb23dee8417fff9e8786d4d44c585b781b69 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/setprototypeof/LICENSE sha256 58dcf38be1438f739412b87eb70d64bf00e9976d529bb119f700d8b3167924f0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/sha.js/LICENSE sha256 e6fdf7ac2af533b4436d99aa75df32aa78690510f7d68a3e73e8576967298d2f src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/shebang-command/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/shebang-regex/license sha256 e05b1eaf5b5f99b7ad75cd1f38858ff9a311780b97715ead67936d60bf96aa7e src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/signal-exit/LICENSE.txt sha256 3dc3b3d3a284d871f7f307655c90fb101d73abbf87bbddeefd2f67883353bdbc src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/slice-ansi/license sha256 05dc4d785ac3a488676d3ed10e901b75ad89dafcc63f8e66610fd4a39cc5c7e8 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/slide/LICENSE sha256 56b7b228fde8d638cc7f1c3d0022cf111764083ac4f803b7a50a90388dce3788 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-adapter/LICENSE sha256 62e2032a1e1458b1d92a62f5fc51be48e08b95062295c91a9f3bd3686809d37e src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-client/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-client/node_modules/debug/LICENSE sha256 6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-client/node_modules/ms/license.md sha256 c10d192d935165dac336ae245f9eef4c42bb37e7c6f5c5f6f7663db778122df1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io/node_modules/debug/LICENSE sha256 6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io/node_modules/ms/license.md sha256 56b7b228fde8d638cc7f1c3d0022cf111764083ac4f803b7a50a90388dce3788 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-parser/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-parser/node_modules/debug/LICENSE sha256 6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/socket.io-parser/node_modules/ms/license.md sha256 6cb0631f71c7749763fd3dd1d5bee52dd1070ec17f2edc1710079ad070bd2fbd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/source-map/LICENSE sha256 c5ca60a739543ef97683dfa0a94773b214c86c826c76a27b8f8e6eb38148cbce src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/spdx-compare/LICENSE.md sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/spdx-correct/LICENSE sha256 7edb57f7065309027de249642341292a5b21410d5773cc55bba73ff9cf01060e src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/spdx-expression-parse/LICENSE sha256 c5ca60a739543ef97683dfa0a94773b214c86c826c76a27b8f8e6eb38148cbce src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/spdx-ranges/LICENSE.md sha256 a21ab121cef9bed38553faad40e49b27ae3d2578d07a70956664e681021c9875 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/spdx-satisfies/LICENSE sha256 a4cdda44b5adea4731d53dcae78fb5124f8fd853e994f01e25d8c33a7daf818b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/sprintf-js/LICENSE sha256 512cfa4d5e7a7569c7ae4dd95241cb6ae2aaf648ef9ebd080c01bd24868d26e9 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/statuses/LICENSE sha256 ff151c00207c908581639851dd8504ce4255be0650b2b236edec2aa90342b0cd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/stream-browserify/LICENSE sha256 ec62dc96da0099b87f4511736c87309335527fb7031639493e06c95728dc8c54 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/stream-browserify/node_modules/readable-stream/LICENSE sha256 c7cc929b57080f4b9d0c6cf57669f0463fc5b39906344dfc8d3bc43426b30eac src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/stream-browserify/node_modules/safe-buffer/LICENSE sha256 11f2aafb37d06b3ee5bdaf06e9811141d0da05263c316f3d627f45c20d43261b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/stream-browserify/node_modules/string_decoder/LICENSE sha256 a0e6357a5e8ea65827addeb383e0948a1874d2f46bc7feaf6349b7a376ed6e98 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/stream-http/LICENSE sha256 9660914267128b5f96a102bd7f6268c249110a39cb7c4bb7f536d856445d739c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/streamroller/LICENSE sha256 98c970de440dcfc77471610aec2377c9d9b0db2b3be6d1add524a586e1d7f422 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/streamroller/node_modules/debug/LICENSE sha256 11f2aafb37d06b3ee5bdaf06e9811141d0da05263c316f3d627f45c20d43261b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/string_decoder/LICENSE sha256 c61652db3d2808f667b48af0a358f0d85fd07ad4a0d0b1a50882dec3b764c522 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/string.prototype.trimleft/LICENSE sha256 c61652db3d2808f667b48af0a358f0d85fd07ad4a0d0b1a50882dec3b764c522 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/string.prototype.trimright/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/string-width/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/strip-ansi/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/strip-bom/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/strip-eof/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/strip-indent/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/strip-json-comments/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/supports-color/license sha256 37b6932865726cf59cbfb8b32a5c9fd82c834c2deba4d53aa4a6b433ae69cdda src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/table/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/table/node_modules/ansi-regex/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/table/node_modules/string-width/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/table/node_modules/strip-ansi/license sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/text-table/LICENSE sha256 faae57631e1c7d641c3b6f9b110c2a7a28c8b383d08d7796ac472c509f075850 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/through2/LICENSE.md sha256 e8734448285a2dd773d40136ed5d5e8163a70701dd540cdc796cfca232f67d55 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/through/LICENSE.APACHE2 sha256 d72dea1a8cdf3f4dfa2f594253d0c5b37baefc76e806f5ecb0e426393edcd505 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/through/LICENSE.MIT sha256 d5f14c3258420dfe5a3b641a143d6e6dd90eabb5962244d937e25699c3a45ec9 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/timers-browserify/LICENSE.md sha256 162413c61e0982abe89a06bf7a02ec760dc49a7364d838bd9f01daebb5b95954 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/tmp/LICENSE sha256 61b82d27e63b14eabc706960aabf6caa1b27d044eb00d7908f92e68085301c3a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/to-fast-properties/license sha256 a832d679750e49ab433626ab196350b89964b60eb0d3edd3341887c7d5f4c128 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/toidentifier/LICENSE sha256 e7d1fee7347ffddccc5fd03327ffdb50f8c112be0d5016d62388a92c4ae6e7a9 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/to-regex-range/LICENSE sha256 83927d1555a8e1d5ed9896991fbb2b4cdfb64f45f5e12b7446c3bff5cea538d3 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/treeify/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/trim-newlines/license sha256 a5e9f9b1575301c7a7a03508fdaa2e05a918cc17fd21c6e898096a96d6a34f61 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/tslib/LICENSE.txt sha256 ed0ff5ab79bc82703690fde4644e352c9ce73e9b890b87ea68b1a1fc5805792b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/tsutils/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/tty-browserify/LICENSE sha256 b9eb082c39fe245e38793699074c394c43a722c51fce031c3c165cb92a31035c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/type-check/LICENSE sha256 26181ebee1063f3dc6766a3b6d05999a0da058f172eadf2ca5d15105ffd9735a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/typedarray/LICENSE sha256 e5aee0714b6ecc416454b968d1017570ef609f20d8722ab84b07acd550b78198 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/type-detect/LICENSE sha256 23d466b1b134b415b66fa50c6526b4cf3e7b9258554da88d3abb371721e7ce68 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/type-is/LICENSE sha256 27ebda9d51f0a56b7e281ccd8230a27236dcb51c05f64b07869ecf6e965d68b0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/chai/LICENSE sha256 27ebda9d51f0a56b7e281ccd8230a27236dcb51c05f64b07869ecf6e965d68b0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/color-name/LICENSE sha256 5938d4fe4890c79ad14e02e643c385b25b8b6c7bbb97ab08996034b586512df5 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/LICENSE sha256 fcf6eabf68ca96988a6b506b4fdc6cc32535d80eb2e11c79724af5ac6f50262b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/LICENSE sha256 5938d4fe4890c79ad14e02e643c385b25b8b6c7bbb97ab08996034b586512df5 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/experimental-utils/LICENSE sha256 d3a724e2ed749f172ff70b62a1d0631b7d4b0ea273782365a3464d4e2d6b6dbd src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-scope/LICENSE sha256 e2fc706570305bcb7dfadb1cac951d5934ce0d7331a7a7ff1bbc254dbe1d9ef8 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/parser/LICENSE sha256 635818d8f39384751c8a5f3f3e735022f07afb3ccdb26eb17ff8eca28428f888 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/LICENSE sha256 6236fa0b88a4a0cce3dda0367979491b2052b3c8d6b1c10b3668de083e86a7f0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/node_modules/glob/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/LICENSE sha256 a5e9f9b1575301c7a7a03508fdaa2e05a918cc17fd21c6e898096a96d6a34f61 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/typescript/LICENSE.txt sha256 27ebda9d51f0a56b7e281ccd8230a27236dcb51c05f64b07869ecf6e965d68b0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/eslint-visitor-keys/LICENSE sha256 27ebda9d51f0a56b7e281ccd8230a27236dcb51c05f64b07869ecf6e965d68b0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/estree/LICENSE sha256 27ebda9d51f0a56b7e281ccd8230a27236dcb51c05f64b07869ecf6e965d68b0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/filesystem/LICENSE sha256 27ebda9d51f0a56b7e281ccd8230a27236dcb51c05f64b07869ecf6e965d68b0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/json-schema/LICENSE sha256 27ebda9d51f0a56b7e281ccd8230a27236dcb51c05f64b07869ecf6e965d68b0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/mocha/LICENSE sha256 27ebda9d51f0a56b7e281ccd8230a27236dcb51c05f64b07869ecf6e965d68b0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/node/LICENSE sha256 27ebda9d51f0a56b7e281ccd8230a27236dcb51c05f64b07869ecf6e965d68b0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/@types/puppeteer/LICENSE sha256 b00ae96f0815ae8fa49c09044467306e98cd89d6770c535fb596ccbd350c6ab4 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/uglify-js/LICENSE sha256 3b2a6a268aa815dec121d614245e03b5c68db1f044d5b525e36db7d5dc7fb9c3 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ultron/LICENSE sha256 3fda5977c0904e226190b4e21d64340c1731e2142d6fe5f3dee0090a216b8b63 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/universalify/LICENSE sha256 1a526fbe8d8577f5a4b1c2821842b55b7c0e18862531c62ae4ce69c9b19b74b6 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/unpipe/LICENSE sha256 97f780d3c79a42236f2b3435860f284c0ac6b958622f6bc9f1ac43fd49689b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/url/LICENSE sha256 483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/url/node_modules/punycode/LICENSE-MIT.txt sha256 1da14af109d9baaa8dee3094add5cc65a7772487dd94c8d2adfd36935b678c49 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/useragent/LICENSE sha256 0154425673db15cdfa80ecba2c9b1f1a867f7197a006764712849bfc3a93cbb7 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/util-deprecate/LICENSE sha256 6239c6144c31e58cf925c34483606969c555574d64ffa96518ab5d7f45c75d43 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/util-extend/LICENSE sha256 6239c6144c31e58cf925c34483606969c555574d64ffa96518ab5d7f45c75d43 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/util/LICENSE sha256 6e7d699cdd1e4fa837ba7718ea49841aa67201b449ea8b3f9cf274be15974a64 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/utils-merge/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/validate-npm-package-license/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/vm-browserify/LICENSE sha256 405a272eaef556691ad7dda96db3237c9544afe18725842a1a5b3ec308960222 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/void-elements/LICENSE sha256 6294da0e0a201bbe1de254445c9d07133a9448af05e4e44d0a2364747d114368 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wcwidth/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/which/LICENSE sha256 852bf81203aa93aa89afc9f881ebb035322dc7334aaceff435c557634c94a815 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/which-module/LICENSE sha256 0cef05dfff8b6aa7f35596984f5709f0d17c2582924a751efa471a76de7cdc11 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wide-align/LICENSE sha256 435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wordwrap/LICENSE sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wrap-ansi/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wrap-ansi/node_modules/ansi-regex/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wrap-ansi/node_modules/string-width/license sha256 6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wrap-ansi/node_modules/strip-ansi/license sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/wrappy/LICENSE sha256 0ead7e8cd8b0bc66a981ee69acaf1297ffa838cfce1b156a039bb24f997c0a27 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/write/LICENSE sha256 3de284c8e6fa7e8437eff6f53695471e0332129a5b42a79361e17b7637de94b3 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ws/LICENSE sha256 c7cc929b57080f4b9d0c6cf57669f0463fc5b39906344dfc8d3bc43426b30eac src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/ws/node_modules/safe-buffer/LICENSE sha256 a5f35901ee8b2039a7431144c23dd10bd47c1d07bcee0cd3a536421d86412214 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/xmlhttprequest-ssl/LICENSE sha256 82e67379203d5794e7c44549847d8d64ae6904591381682360470898bd306821 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/xtend/LICENSE sha256 2034cce3b6fafcddd642c4175e01d3ddfc332a53b9f20fdc46b1466dc89ac469 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/y18n/LICENSE sha256 4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yallist/LICENSE sha256 fe71524a15f30aab0f39af7165d38fc64a4269b7d2a0caffebc907355aec9c92 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-regex/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/camelcase/license sha256 2dc0465729366c3a7890dfa9e972a1ba7048a26c02116fb8b419a6a1ac110149 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/cliui/LICENSE.txt sha256 693866fc419c6f61c8570438ec00659d156ec2b4d4a4d04091711f5f11a365d4 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/color-convert/LICENSE sha256 7357445bac398c76c0aef75a587009fe406d40de6a79789eb5b7ecbbad317ef2 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/color-name/LICENSE sha256 483acb265f182907d1caf6cff9c16c96f31325ed23792832cc5d8b12d5f88c8a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/emoji-regex/LICENSE-MIT.txt sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/find-up/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/is-fullwidth-code-point/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/locate-path/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/path-exists/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/p-locate/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/string-width/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/strip-ansi/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/wrap-ansi/license sha256 365496ca1f56da40b23c9815fc40fa9005847b2f8f8fd1c1a4929ef25ec8cd1d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt sha256 365496ca1f56da40b23c9815fc40fa9005847b2f8f8fd1c1a4929ef25ec8cd1d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-parser/LICENSE.txt sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-parser/node_modules/camelcase/license sha256 30877d17f7e38530d46b49fb375ee98ce2e8b085b3ee72d4c2888710416ef139 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/LICENSE sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/camelcase/license sha256 48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/find-up/license sha256 902dbb4154679fb2b8d7c33878183f45b268d01eae5e5033dddaa8852d45f213 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/get-caller-file/LICENSE.md sha256 365496ca1f56da40b23c9815fc40fa9005847b2f8f8fd1c1a4929ef25ec8cd1d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/require-main-filename/LICENSE.txt sha256 fe71524a15f30aab0f39af7165d38fc64a4269b7d2a0caffebc907355aec9c92 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/LICENSE sha256 365496ca1f56da40b23c9815fc40fa9005847b2f8f8fd1c1a4929ef25ec8cd1d src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs-parser/LICENSE.txt sha256 b303783d5eb7ca50b853ffa5f145e4e7998fab339831d848f507ca6cd970577a src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yauzl/LICENSE sha256 3b2a6a268aa815dec121d614245e03b5c68db1f044d5b525e36db7d5dc7fb9c3 src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/yeast/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/closure/COPYING sha256 af175b9d96ee93c21a036152e1b905b0b95304d4ae8c2c921c7609100ba8df7e src/3rdparty/chromium/third_party/devtools-frontend/src/third_party/axe-core/LICENSE sha256 a8ad31b1c3f40dca5a84119351b8fa8ddc868edd77fad8a8ebf6d8f2d16fa4ae src/3rdparty/chromium/third_party/devtools-frontend/src/third_party/pyjson5/src/LICENSE sha256 4f5753ce8acf3feafc758599058746d30bda07bc0d4cc3a6a1eb8e039fdba1dc src/3rdparty/chromium/third_party/dom_distiller_js/LICENSE sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 src/3rdparty/chromium/third_party/dpkg-shlibdeps/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/emoji-segmenter/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/emoji-segmenter/src/LICENSE sha256 9021fdb5341ebbb2eb5c771ac5cfac527790673179d3b21a42de1ab2798ec30f src/3rdparty/chromium/third_party/espresso/LICENSE sha256 46336ab2fec900803e2f1a4253e325ac01d998efb09bc6906651f7259e636f76 src/3rdparty/chromium/third_party/expat/src/expat/COPYING sha256 d9c904abd0ead61b3fbaef0a609285548076ff9c3f814cc1cf019c5d7150736d src/3rdparty/chromium/third_party/ffmpeg/chromium/scripts/license_texts/full_lgpl.txt sha256 a8579e3fc40c11ab147bc299257733eb749cd455010385f7c117f70d7aef24e4 src/3rdparty/chromium/third_party/ffmpeg/chromium/scripts/license_texts/jpeg.txt sha256 857d5f537af3aa164e7a27eda60147d34195e5781abe7b1d358d9fb01e222ae0 src/3rdparty/chromium/third_party/ffmpeg/chromium/scripts/license_texts/mips.txt sha256 b4c85cce2b772f27d83f4562c20787057dc6949fcecc820a82c1d2e7047e89c3 src/3rdparty/chromium/third_party/ffmpeg/chromium/scripts/license_texts/oggparse_ahlberg_rullgayrd_2005.txt sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 src/3rdparty/chromium/third_party/ffmpeg/COPYING.GPLv2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 src/3rdparty/chromium/third_party/ffmpeg/COPYING.GPLv3 sha256 b634ab5640e258563c536e658cad87080553df6f34f62269a21d554844e58bfe src/3rdparty/chromium/third_party/ffmpeg/COPYING.LGPLv2.1 sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 src/3rdparty/chromium/third_party/ffmpeg/COPYING.LGPLv3 sha256 cb48bf09a11f5fb576cddb0431c8f5ed0a60157a9ec942adffc13907cbe083f2 src/3rdparty/chromium/third_party/ffmpeg/LICENSE.md sha256 f45cc81b400a048b56c9edbd4c3317f7a8958463dfd55aa96f268ecfd6baa12c src/3rdparty/chromium/third_party/flac/COPYING.FDL sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 src/3rdparty/chromium/third_party/flac/COPYING.GPL sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a src/3rdparty/chromium/third_party/flac/COPYING.LGPL sha256 946b733afbaa20a192c8dc022b4e43090e78f28fd293494d1b307f7301552c9b src/3rdparty/chromium/third_party/flac/COPYING.Xiph sha256 7ec9661a8afafab1eee3523d6f1a193eff76314a5ab10b4ce96aefd87621b0c3 src/3rdparty/chromium/third_party/flatbuffers/LICENSE sha256 3112ebbfc0fe10ad40a97672f5590c4292536a28cbfe3506820b15dec70b2258 src/3rdparty/chromium/third_party/flatbuffers/src/dart/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/flatbuffers/src/LICENSE.txt sha256 fa4cd9ab005185e10cd8f7504518856c7dd36c01e766c2bac87f4fc638e9f886 src/3rdparty/chromium/third_party/fontconfig/LICENSE sha256 fa4cd9ab005185e10cd8f7504518856c7dd36c01e766c2bac87f4fc638e9f886 src/3rdparty/chromium/third_party/fontconfig/src/COPYING sha256 fd056de4196903a676208ef58cfddafc7d583d1f28fa2e44c309cf84a59e62fb src/3rdparty/chromium/third_party/freetype/src/docs/LICENSE.TXT sha256 56e67061ab590046b09876a084478ea87c4ece1579deb194347096e61c2537dd src/3rdparty/chromium/third_party/fuchsia-sdk/LICENSE sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 src/3rdparty/chromium/third_party/gif_player/LICENSE sha256 8ea14fdc7efee7fe53c79101b97049bd547dc6686cfa05df4f0686146a561423 src/3rdparty/chromium/third_party/glfw/src/LICENSE.md sha256 23353f4505b1c8ce4f8f72fc3b11dc74b4a8a7bf95921d93ff77f227c171a710 src/3rdparty/chromium/third_party/glslang/LICENSE sha256 d3cbc77d99642114bc925cce51eda84b48ae4879947ac89941a2e2aa4150db76 src/3rdparty/chromium/third_party/glslang/src/LICENSE.txt sha256 9702de7e4117a8e2b20dafab11ffda58c198aede066406496bef670d40a22138 src/3rdparty/chromium/third_party/googletest/src/googlemock/LICENSE sha256 5e0df8c845c742e76f2f64d2d9ce1b7e74a2422fddbc577ae6a56319083de0bf src/3rdparty/chromium/third_party/googletest/src/googlemock/scripts/generator/LICENSE sha256 9702de7e4117a8e2b20dafab11ffda58c198aede066406496bef670d40a22138 src/3rdparty/chromium/third_party/googletest/src/googletest/LICENSE sha256 9702de7e4117a8e2b20dafab11ffda58c198aede066406496bef670d40a22138 src/3rdparty/chromium/third_party/googletest/src/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/google-truth/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/guava/LICENSE sha256 ca382aa537f8923d6c0991fb976d184a2009eb76080313bf10dcecdc9311f0dd src/3rdparty/chromium/third_party/gvr-android-keyboard/LICENSE sha256 f54c49d3ff865458c5d3c68c3367a1f6e0d7b3f686f8c88a6a563ef90f84ad9e src/3rdparty/chromium/third_party/gvr-android-sdk/LICENSE sha256 96e5bbd81970983d666e702fa56f67dfd2fdaa363b8a4266e8d98847374cd7c8 src/3rdparty/chromium/third_party/hamcrest/LICENSE sha256 beb3f017ceb41387667f78237a7cecf84defa0ed257c505894663d6a9f13211b src/3rdparty/chromium/third_party/harfbuzz-ng/src/COPYING sha256 c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 src/3rdparty/chromium/third_party/harfbuzz-ng/src/src/ms-use/COPYING sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 src/3rdparty/chromium/third_party/hunspell/COPYING sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 src/3rdparty/chromium/third_party/hunspell/COPYING.LESSER sha256 53692a2ed6c6a2c6ec9b32dd0b820dfae91e0a1fcdf625ca9ed0bdf8705fcc4f src/3rdparty/chromium/third_party/hunspell/COPYING.MPL sha256 610809f1586ee4d22468f1e97c256153cea8be7a662193db70d6ca424e0f17c8 src/3rdparty/chromium/third_party/iaccessible2/LICENSE sha256 a412a53925efc6b50800bf8519a2e033949243d5a5a8c5422bae8a5007ad09c8 src/3rdparty/chromium/third_party/iccjpeg/LICENSE sha256 d18e75f216f177d41304f5e94c2cba7d1bf9f8f8583a0777cceb5cca0c5ad137 src/3rdparty/chromium/third_party/icu4j/LICENSE sha256 6a18c5fac70d7860b57f5b72b4e2c9a1ba6b3d2741eef7ff9767c5379364f10d src/3rdparty/chromium/third_party/icu/LICENSE sha256 c62d7697c03979f5056d28b338fafc7a1152820f7b379adf4a9d88cd37160f96 src/3rdparty/chromium/third_party/icu/license.html sha256 845022e0c1db1abb41a6ba4cd3c4b674ec290f3359d9d3c78ae558d4c0ed9308 src/3rdparty/chromium/third_party/icu/scripts/LICENSE sha256 8c6db340475136df3c1201d458fa5755698eace76e510471ecc9d857d6083dac src/3rdparty/chromium/third_party/ijar/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/ink/LICENSE sha256 b9be92f13356083392d97da13cab8ae543c7911f44eff5289b693da8b17b9e08 src/3rdparty/chromium/third_party/inspector_protocol/LICENSE sha256 7a92c5e7a83b5ddcc693bb84ea8bdb842308509c1758cffdfe24717609154c75 src/3rdparty/chromium/third_party/isimpledom/LICENSE sha256 ed8d7a24769ac9d57d08769b5f8be27519dd8811d06b0995dbe8ca6714e96d08 src/3rdparty/chromium/third_party/jacoco/LICENSE sha256 33b6816eb449962d307495946519ed78cef8743819f6f1d60e8b3d4e86c38b1c src/3rdparty/chromium/third_party/javalang/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/jetifier_standalone/LICENSE sha256 7975c0027cfa5d08253fbb6ff4676acc38248bd5e046d0dbab3d810971e97970 src/3rdparty/chromium/third_party/jinja2/LICENSE sha256 76c45ece83a26117f86f4e349e7df118708e061e87225328fb478ce1e8b3eb86 src/3rdparty/chromium/third_party/jsoncpp/LICENSE sha256 95039d77a20e75b428207740d9a8f97b2dce3c89da4b21f1ad862b5997160e0a src/3rdparty/chromium/third_party/jsoncpp/source/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/jstemplate/COPYING sha256 71a19392a0eb3255ab2055ed978bb0f93865cea84d31a3510eaffb74d8981e7f src/3rdparty/chromium/third_party/khronos/LICENSE sha256 ccc19f1da0798ed666609b65a5b44dd8b3abe6fc08b9c0592eb76e82e174db19 src/3rdparty/chromium/third_party/leveldatabase/src/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/libaddressinput/LICENSE sha256 c9a5bd7c8cc1267ddacdc5228c68ecd811cf6d74286e9141bc80d8af2eb1a025 src/3rdparty/chromium/third_party/libaddressinput/src/cpp/LICENSE.chromium sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/libaddressinput/src/LICENSE sha256 4764a286d8b2faeaf42f4418e7d7a28d58fc8fd4d00a3d0a7f44b0a4099de7f2 src/3rdparty/chromium/third_party/libaom/source/libaom/LICENSE sha256 043dcfd059386f9facd376351b2bd79325778744aa442177390cdfcca54babed src/3rdparty/chromium/third_party/libaom/source/libaom/third_party/fastfeat/LICENSE sha256 9702de7e4117a8e2b20dafab11ffda58c198aede066406496bef670d40a22138 src/3rdparty/chromium/third_party/libaom/source/libaom/third_party/googletest/src/googletest/LICENSE sha256 5aec868f669e384a22372a4e8a1a6cd7d44c64cd451f960ca69cc170d1e13acf src/3rdparty/chromium/third_party/libaom/source/libaom/third_party/libwebm/LICENSE.TXT sha256 ff6c857ce2708e87701323078aef115c1872a1f80a9649f86dc899b48083bc60 src/3rdparty/chromium/third_party/libaom/source/libaom/third_party/vector/LICENSE sha256 719d8fa235f2068e0ae6d6a7dceb0a7720d7840f0f0ebed29957989e6ded3cd8 src/3rdparty/chromium/third_party/libaom/source/libaom/third_party/x86inc/LICENSE sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 src/3rdparty/chromium/third_party/libcxx-pretty-printers/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/libgav1/src/LICENSE sha256 d56bafdaeaa793331a29e9766b7efe66524c98533da798a57201e291863ef625 src/3rdparty/chromium/third_party/libgifcodec/LICENSE.md sha256 37d8bfba91b745693ea58f846f2f1276229745adf532974b73c1911cfd144241 src/3rdparty/chromium/third_party/libipp/LICENSE sha256 ab00a482b6a3902e40211b43c5d0441962ea99b6cc7c25c0f243fa270b78d482 src/3rdparty/chromium/third_party/libjingle_xmpp/LICENSE sha256 8412238c5ad95965cf3c3197791e9dea8b5fae505d133449e33ee2fa754fe61e src/3rdparty/chromium/third_party/libjpeg_turbo/LICENSE.md sha256 3bf128851aff9f392953276ea8ade3e41da0f40b853fde58ec21034aa91ccc31 src/3rdparty/chromium/third_party/libovr/LICENSE sha256 bf5e22b9dce8464064ae17a48ea1133c3369ac9e1d80ef9e320e5219aa14ea9b src/3rdparty/chromium/third_party/libpng/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/libprotobuf-mutator/src/LICENSE sha256 a1a33180d02960ab1c5de36cf20b1a2f0fe9888d83826ad263da5db52f1b183b src/3rdparty/chromium/third_party/libsecret/LICENSE sha256 8e19d42a1eec9561f3f347253ddf2e385c55f392f025bb0fd41b88dbf38db5ae src/3rdparty/chromium/third_party/libsrtp/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/libsync/LICENSE sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 src/3rdparty/chromium/third_party/libudev/LICENSE sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a src/3rdparty/chromium/third_party/libusb/src/COPYING sha256 8267348d5af1262c11d1a08de2f5afc77457755f1ac658627dd9acf71011d615 src/3rdparty/chromium/third_party/libvpx/source/libvpx/LICENSE sha256 9702de7e4117a8e2b20dafab11ffda58c198aede066406496bef670d40a22138 src/3rdparty/chromium/third_party/libvpx/source/libvpx/third_party/googletest/src/LICENSE sha256 5aec868f669e384a22372a4e8a1a6cd7d44c64cd451f960ca69cc170d1e13acf src/3rdparty/chromium/third_party/libvpx/source/libvpx/third_party/libwebm/LICENSE.TXT sha256 2b2cc1180c7e6988328ad2033b04b80117419db9c4c584918bbb3cfec7e9364f src/3rdparty/chromium/third_party/libvpx/source/libvpx/third_party/libyuv/LICENSE sha256 719d8fa235f2068e0ae6d6a7dceb0a7720d7840f0f0ebed29957989e6ded3cd8 src/3rdparty/chromium/third_party/libvpx/source/libvpx/third_party/x86inc/LICENSE sha256 5aec868f669e384a22372a4e8a1a6cd7d44c64cd451f960ca69cc170d1e13acf src/3rdparty/chromium/third_party/libwebm/source/LICENSE.TXT sha256 6de6fe48ff7b249a51ec5522d1af618dd50effc6f030fd24e17878566ad2ca5d src/3rdparty/chromium/third_party/libwebp/LICENSE sha256 c5c63674f8a83c4d2e385d96d1c670a03cb871ba2927755467017317878574bd src/3rdparty/chromium/third_party/libxml/src/COPYING sha256 c5c63674f8a83c4d2e385d96d1c670a03cb871ba2927755467017317878574bd src/3rdparty/chromium/third_party/libxml/src/Copyright sha256 31346421254a3e6e12687cf17f19f6357ee73a617fa7b3d3ccefdcbabe49bdd3 src/3rdparty/chromium/third_party/libXNVCtrl/LICENSE sha256 7e48e290b6bfccc2ec1b297023a1d77f2fd87417f71fbb9f50aabef40a851819 src/3rdparty/chromium/third_party/libxslt/linux/COPYING sha256 7e48e290b6bfccc2ec1b297023a1d77f2fd87417f71fbb9f50aabef40a851819 src/3rdparty/chromium/third_party/libxslt/src/Copyright sha256 2b2cc1180c7e6988328ad2033b04b80117419db9c4c584918bbb3cfec7e9364f src/3rdparty/chromium/third_party/libyuv/LICENSE sha256 0d4077a7055ead389c4c5a9a6ac4bb8b784fc6e9e37be2caf544fcceed26cb16 src/3rdparty/chromium/third_party/lottie/LICENSE sha256 6e3e0a978f1e136cb3efb89702f4314671581a0c70c9a52447669e00f7b129e8 src/3rdparty/chromium/third_party/lzma_sdk/LICENSE sha256 c3b124673c93872156757a934c75b498d68eec09510e25e549d9dc2013776499 src/3rdparty/chromium/third_party/mako/LICENSE sha256 0bbe88228fd63d20ec097f64e58d5a0a465123ae139140a18d406c60b48824b5 src/3rdparty/chromium/third_party/markupsafe/LICENSE sha256 58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd src/3rdparty/chromium/third_party/material_design_icons/LICENSE sha256 536284e40c611f371f6ce5d74efac37a20d993cd3af96259b9b9e20b1669ff1e src/3rdparty/chromium/third_party/mesa_headers/LICENSE sha256 845022e0c1db1abb41a6ba4cd3c4b674ec290f3359d9d3c78ae558d4c0ed9308 src/3rdparty/chromium/third_party/metrics_proto/LICENSE sha256 27ebda9d51f0a56b7e281ccd8230a27236dcb51c05f64b07869ecf6e965d68b0 src/3rdparty/chromium/third_party/microsoft_webauthn/LICENSE sha256 83bb6bd9ccd2cf5230cb1807ed16258289768dc4d9cb80069a814e04415a1275 src/3rdparty/chromium/third_party/minigbm/LICENSE sha256 8610954adbca6c6b85d8b1ae5613b44b0014e437d32fcad6683bb27541411686 src/3rdparty/chromium/third_party/minigbm/src/LICENSE sha256 4919cfb14a73cd64fcef67b107613970cf1659a09aa675dba31314f373bc7204 src/3rdparty/chromium/third_party/minizip/src/lib/bzip2/LICENSE sha256 87642305968765a4030fd202ff7006afa67274da7f9bde84506e51ae58ecc2b4 src/3rdparty/chromium/third_party/minizip/src/LICENSE sha256 bd5663836feb58ffb7d0e6b9e62010f4c3399f2bb0a4cf6514a15d597bbdd577 src/3rdparty/chromium/third_party/mocha/LICENSE sha256 380893a2f01aea5c3328b1a8b08cdc488bf236916abac3af0d1f1a5d2634c31a src/3rdparty/chromium/third_party/mockito/LICENSE sha256 d47e8390fb0d7ad4a18f26aedd6283c7ab6b5b4fabab536ccb4db7f9f6d90c08 src/3rdparty/chromium/third_party/modp_b64/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/motemplate/LICENSE sha256 7a92c5e7a83b5ddcc693bb84ea8bdb842308509c1758cffdfe24717609154c75 src/3rdparty/chromium/third_party/mozilla/LICENSE sha256 1563996c52e220e15ef2418e67d39488255aa8c28c89e617074d3afe3ee329e0 src/3rdparty/chromium/third_party/nasm/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/netty4/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/netty-tcnative/LICENSE sha256 0cd1bd4b934ffdc5e7f1bcfa9d08bd17295e5414bdca99c06b1036278b01f0b1 src/3rdparty/chromium/third_party/node/LICENSE sha256 b5730da9a26472a405b0b1c61d3d166714d9d654ab3282e54e4a01a5f66316c3 src/3rdparty/chromium/third_party/objenesis/LICENSE sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 src/3rdparty/chromium/third_party/ocmock/License.txt sha256 8bed129a6a15e631c93a624985e631eb62a55f7e072b78f4e1c3dde7c745283d src/3rdparty/chromium/third_party/one_euro_filter/LICENSE sha256 dd5c1c9668512530fa5a96e4c29ac4033d70a7eeb0eed7a42fddb6dd794ebdbb src/3rdparty/chromium/third_party/openh264/src/LICENSE sha256 34a5c58db7cc4d3265d14a9aa26e38067fe114311d8bec31f909d1c240e626c4 src/3rdparty/chromium/third_party/openscreen/src/LICENSE sha256 284545e873c704952e5b1b39d457dd83a3b115a51d9f1eb5175137bd69b8fa1b src/3rdparty/chromium/third_party/openscreen/src/third_party/mozilla/LICENSE.txt sha256 f56ff606104d4ef18e617921a75c73ad73b5a1a1d70c69590c29de16919e04ad src/3rdparty/chromium/third_party/openvr/src/LICENSE sha256 8338ce8d922bb4416ce3dd1e5680173332435e3f0755007ac7801ccd674fe682 src/3rdparty/chromium/third_party/opus/src/COPYING sha256 7efb4989e0cd1b256229bdf2f09300c5d14e35db0e7476bfb87fac243498273d src/3rdparty/chromium/third_party/opus/src/LICENSE_PLEASE_READ.txt sha256 0d74de3c3cd3196a9ed1bc612cfd5f81d7509d66c4be34a50f99d61bd1ad00d4 src/3rdparty/chromium/third_party/ots/LICENSE sha256 9dd8d2fb95ba862a5d166a167682c1c67a209acd3bf09b6fd03f76d3579729bc src/3rdparty/chromium/third_party/ow2_asm/LICENSE sha256 76621fcfb65adfd6602b700708b74c8e20f3325b32f1a54bec83a5cf7c679f53 src/3rdparty/chromium/third_party/pdfium/LICENSE sha256 32759d1397d8f7b9e15ece146e4038b22b90e93b4935b5a840bcef4d2ba5ea55 src/3rdparty/chromium/third_party/pdfium/third_party/bigint/LICENSE sha256 bf5e22b9dce8464064ae17a48ea1133c3369ac9e1d80ef9e320e5219aa14ea9b src/3rdparty/chromium/third_party/pdfium/third_party/libpng16/LICENSE sha256 c5b14f5a3814d2e57b9bb9520dcf57a2c3817b65c4f989e5c82e332c82af1038 src/3rdparty/chromium/third_party/pdfium/third_party/pymock/LICENSE.txt sha256 e323929b7c2178e2efc9ac70e62166670274bd772f90a8d83a90300c5f60002c src/3rdparty/chromium/third_party/perfetto/LICENSE sha256 9f98bab33648b77578d85ac0f1d1c3941a72aa6d7e65015ba181f2fe804bb85d src/3rdparty/chromium/third_party/pexpect/LICENSE sha256 a46200592eb193853527250da098e6bb0c75424e7a2c7db8da526c4f301c3d88 src/3rdparty/chromium/third_party/pffft/LICENSE sha256 dd4930c619afd8527591353c7d3d1c1d7f4bf62ed1cb411f4f507dbdee7738a2 src/3rdparty/chromium/third_party/ply/LICENSE sha256 d6c873c08a8806f08fdafe1aa00ba38837f6ac29f91d6b26510614b0df2001e0 src/3rdparty/chromium/third_party/ply/license.patch sha256 24699c6858472311aa9acc6c2b7112ff9de6e7792569158ba9e439deb0529ef6 src/3rdparty/chromium/third_party/polymer/LICENSE.polymer sha256 a5adc2955c0dd848c97aa6afb14e0047a610f0fcfa6ce0011efad01a0e051406 src/3rdparty/chromium/third_party/polymer/v1_0/components-chromium/polymer2/LICENSE.txt sha256 984fb04a16a9f1e0145ffd891125dc366a01cd921f58c9b0369be400c720790d src/3rdparty/chromium/third_party/polymer/v1_0/components-chromium/polymer/LICENSE.txt sha256 a5adc2955c0dd848c97aa6afb14e0047a610f0fcfa6ce0011efad01a0e051406 src/3rdparty/chromium/third_party/polymer/v3_0/components-chromium/polymer/LICENSE.txt sha256 58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd src/3rdparty/chromium/third_party/private-join-and-compute/src/crypto/LICENSE sha256 58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd src/3rdparty/chromium/third_party/private-join-and-compute/src/LICENSE sha256 58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd src/3rdparty/chromium/third_party/private-join-and-compute/src/util/LICENSE sha256 294f58267c6f473c4ce7270bf5c8d34b2003cb43804552459654c36553431276 src/3rdparty/chromium/third_party/proguard/LICENSE sha256 6e5e117324afd944dcf67f36cf329843bc1a92229a8cd9bb573d7a83130fea7d src/3rdparty/chromium/third_party/protobuf/LICENSE sha256 2ab28b982a7f3150e1597befaa87e1636b9973c80aef3752597945d270c4c4e4 src/3rdparty/chromium/third_party/pycoverage/LICENSE sha256 f8d0c347a0dcc6ebe1671640dfae8d2411b6ded892e06a6764f8208b218b2af4 src/3rdparty/chromium/third_party/pyelftools/elftools/construct/LICENSE sha256 f8c8ccecdbb044fd6fa1a586c596a055fb2b14fb3e335d8ed282db58d80b7410 src/3rdparty/chromium/third_party/pyelftools/LICENSE sha256 cb5e8e7e5f4a3988e1063c142c60dc2df75605f4c46515e776e3aca6df976e14 src/3rdparty/chromium/third_party/pyjson5/src/LICENSE sha256 c5b14f5a3814d2e57b9bb9520dcf57a2c3817b65c4f989e5c82e332c82af1038 src/3rdparty/chromium/third_party/pymock/LICENSE.txt sha256 318cea263a2fb726d767e2777771a431a3220008e6940dd5138a235a1fc498fc src/3rdparty/chromium/third_party/pystache/LICENSE sha256 956c3b678228a216142df38d039bba56ee6509d3298e7a4b8dd5bc3eaa80fe33 src/3rdparty/chromium/third_party/Python-Markdown/LICENSE.md sha256 5a2954f05e7fcc1bf240a3b58534f974760b5aae02438ce875c9c7fe0bdb4cf9 src/3rdparty/chromium/third_party/pywebsocket3/src/LICENSE sha256 c903100da706172066fa1b6f02eba60f202fea63036492d2c4a01267e32aa7a8 src/3rdparty/chromium/third_party/qcms/src/COPYING sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/quic_trace/src/LICENSE sha256 38751245389e1e23f73e6f5384b5cbe7fa972cc4410c5adc9c04b082a0b9561a src/3rdparty/chromium/third_party/quic_trace/src/third_party/fonts/LICENSE sha256 8991cd11befec7c6a63662700f03c0cc42e864b6e77c7e70b80297c951a7f0ff src/3rdparty/chromium/third_party/quic_trace/src/third_party/glew/LICENSE.txt sha256 f98f3db81b4dd3873d8672117e409286142cfae9b7673ab6d7aab4bae1527d20 src/3rdparty/chromium/third_party/qunit/LICENSE sha256 68834f116f8ff545f05d14753357b620748156d60ee36b26beab4cb3f317efe4 src/3rdparty/chromium/third_party/r8/LICENSE sha256 6040cda75d90b1738292a631d89934c411ef7ffd543c4d6a1b7edfc8edf29449 src/3rdparty/chromium/third_party/re2/LICENSE sha256 6040cda75d90b1738292a631d89934c411ef7ffd543c4d6a1b7edfc8edf29449 src/3rdparty/chromium/third_party/re2/src/LICENSE sha256 e479bcdfa777738226b4282bf8536cc5416a25cec3100cbe210b8be4d1e2ed84 src/3rdparty/chromium/third_party/requests/LICENSE sha256 e2f59ff41d9d03adc3dcf3deff170f8c8cf4a6eb4a9b174762a7656d23200ffa src/3rdparty/chromium/third_party/rnnoise/COPYING sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 src/3rdparty/chromium/third_party/robolectric/LICENSE sha256 19c9b910bec5a4f2c420747d1bf81e975ffdb1377ad91c5d9b1e8dd3e38f4c17 src/3rdparty/chromium/third_party/robolectric/licenses/extreme.indiana.edu.license.txt sha256 a7436c952fa2dc0701860cf4187d1e8e8e6de6720dec0ae9e0b641bc50eebced src/3rdparty/chromium/third_party/robolectric/licenses/javolution.license.txt sha256 5b6ac717e37db4f6d17bda7791f4ce3f99947aeb21e6e72b705aa3d1ee2de480 src/3rdparty/chromium/third_party/robolectric/licenses/pivotal.labs.license.txt sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/s2cellid/LICENSE sha256 3f941b3b89cf7b8370ceb83cc76d2120d471b58735d8ca60238a751a48d7f72f src/3rdparty/chromium/third_party/schema_org/LICENSE sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 src/3rdparty/chromium/third_party/shaderc/src/LICENSE sha256 b5a00e94f058edc87e05978329b55730d8689abe61205d9018443d03de4f07da src/3rdparty/chromium/third_party/shaderc/src/third_party/LICENSE.glslang sha256 47e20ce182bc68fab1a0cfb129b03c326aaf4f2b6b7905aa9d376d31018bd29f src/3rdparty/chromium/third_party/shaderc/src/third_party/LICENSE.spirv-tools sha256 33c9a2fe619e1200937629f318895898ffcd1bf7d0ddd39adc382c030925e61e src/3rdparty/chromium/third_party/simplejson/LICENSE.txt sha256 b25948e48c44312d04ffc626a9d52cae7c04539a1a8e0c1be47b7bfa0da03e1d src/3rdparty/chromium/third_party/sinonjs/LICENSE sha256 8bb850c565aa389fdc16f3a46965ad23d82adff60f2393fc2762b63185e8e6c9 src/3rdparty/chromium/third_party/six/LICENSE sha256 8bb850c565aa389fdc16f3a46965ad23d82adff60f2393fc2762b63185e8e6c9 src/3rdparty/chromium/third_party/six/src/LICENSE sha256 e59bb5c5c6ba426a9ac4ba9fe667ad14c5166b12aa25be8af1d122b14fbe2e36 src/3rdparty/chromium/third_party/skia/include/third_party/skcms/LICENSE sha256 e59bb5c5c6ba426a9ac4ba9fe667ad14c5166b12aa25be8af1d122b14fbe2e36 src/3rdparty/chromium/third_party/skia/include/third_party/vulkan/LICENSE sha256 5f787c1dee3c56547f09ccc2906ab5f5293c4d8dd6c8654e573216c38e908dbd src/3rdparty/chromium/third_party/skia/LICENSE sha256 d27678cba0d529e77201e2d2a053628143e986aad8f1e77f7039ad4366c8f978 src/3rdparty/chromium/third_party/skia/modules/canvaskit/canvaskit/LICENSE sha256 d27678cba0d529e77201e2d2a053628143e986aad8f1e77f7039ad4366c8f978 src/3rdparty/chromium/third_party/skia/modules/pathkit/npm-asmjs/LICENSE sha256 d27678cba0d529e77201e2d2a053628143e986aad8f1e77f7039ad4366c8f978 src/3rdparty/chromium/third_party/skia/modules/pathkit/npm-wasm/LICENSE sha256 5366e97b4478f15a1e2fd7e6094337426597df28de50cd9fed3f2e7e87f1229e src/3rdparty/chromium/third_party/skia/third_party/etc1/LICENSE sha256 e59bb5c5c6ba426a9ac4ba9fe667ad14c5166b12aa25be8af1d122b14fbe2e36 src/3rdparty/chromium/third_party/skia/third_party/skcms/LICENSE sha256 e21477eed484b07902a861a1b18d1e4ecd3e6f22fa81e2410f0770cfb67290e8 src/3rdparty/chromium/third_party/skia/third_party/vulkanmemoryallocator/include/LICENSE.txt sha256 d27678cba0d529e77201e2d2a053628143e986aad8f1e77f7039ad4366c8f978 src/3rdparty/chromium/third_party/skia/third_party/vulkanmemoryallocator/LICENSE sha256 e59bb5c5c6ba426a9ac4ba9fe667ad14c5166b12aa25be8af1d122b14fbe2e36 src/3rdparty/chromium/third_party/skia/third_party/wuffs/LICENSE sha256 3f6f1b520bc53e878ccbb698ad0bacef3752a5f4e4b50a26552bd70f60b40748 src/3rdparty/chromium/third_party/smhasher/LICENSE sha256 55172044f7e241207117448a4d9d6ba1d0925c8ad66b5d4c08c70adfa9cc3de6 src/3rdparty/chromium/third_party/snappy/src/COPYING sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/spirv-cross/spirv-cross/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/spirv-headers/LICENSE sha256 9b243f6f0bf44e295ff411a0f7b7642d1d0dff7cdc42507e9f7206f439e51b5a src/3rdparty/chromium/third_party/spirv-headers/src/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/SPIRV-Tools/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/SPIRV-Tools/src/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/SPIRV-Tools/src/utils/vscode/src/lsp/LICENSE sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 src/3rdparty/chromium/third_party/sqlite4java/LICENSE sha256 06545a6ec25fbbff6c62f205f94a35be49e38f33bea827a8cfb07d7b82e4b083 src/3rdparty/chromium/third_party/sqlite/LICENSE sha256 66e056b6e8687f32af30d5187611b98b12a8f46f07aaf62f43585f276e8f0ac9 src/3rdparty/chromium/third_party/sqlite/src/autoconf/tea/license.terms sha256 9c6479123f32a1ed50d9a0af203dfe8972e65035b0cdeef436b5f8d0924517fe src/3rdparty/chromium/third_party/sqlite/src/LICENSE.md sha256 033d0150b3bd78b36894c88fcc68da0c3f2e661d3b3485e8cc9a61b2c2bf7895 src/3rdparty/chromium/third_party/subresource-filter-ruleset/LICENSE sha256 28113a6e9e2fd7584187c738a7c5484452a1c383307a1741bec50a73262fac08 src/3rdparty/chromium/third_party/sudden_motion_sensor/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/swiftshader/LICENSE.txt sha256 ad4672b403488876635d2b455918f74b829d478da868ffc0c621a00fc99195f5 src/3rdparty/chromium/third_party/tcmalloc/LICENSE sha256 81ebf38708899097aacaac9723679b3ffa17640c14cd3193c46b75197de18b2c src/3rdparty/chromium/third_party/tcmalloc/vendor/COPYING sha256 d600ff20c150a675461dde76752e35f4cc3be6e7d8e70b8da3e775ea7e5ec4aa src/3rdparty/chromium/third_party/test_fonts/LICENSE sha256 bb04dd22ee55fe3c24ee2a3c82bd1efdebbd965f7c178224a2977edc2457bb2f src/3rdparty/chromium/third_party/tlslite/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/turbine/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/ub-uiautomator/LICENSE sha256 0a90947436dc17f047f8c95b64593e2cc9a2b6d4ff6618f2f0beba5a9b568c14 src/3rdparty/chromium/third_party/unrar/LICENSE sha256 6ecc1687808b7d66b24f874755abfed7464d9751ed0001cd4e8e5d9bf397ff8a src/3rdparty/chromium/third_party/unrar/src/license.txt sha256 6629d6edceffa9c68f4245b817137d2265fdab1e98068893420edb6689ccce9e src/3rdparty/chromium/third_party/usb_ids/LICENSE sha256 7a4a31e05391919c05a996f09fc20ffc80c69af72cb3e69ac71b70c825fbdd1d src/3rdparty/chromium/third_party/usrsctp/LICENSE sha256 fa53711b25af4b9a9b8dadfea3cb38166ec4b96760c8d62b284055554537d9ef src/3rdparty/chromium/third_party/usrsctp/usrsctplib/LICENSE.md sha256 5a7f623a50e384aaf6d2ced068339ddf93d0a50d3a0ecbe86f125b07804ecc78 src/3rdparty/chromium/third_party/v4l-utils/COPYING.libv4l sha256 376b54d4c5f4aa99421823fa4da93e3ab73096fce2400e89858632aa7da24a14 src/3rdparty/chromium/third_party/wds/LICENSE sha256 376b54d4c5f4aa99421823fa4da93e3ab73096fce2400e89858632aa7da24a14 src/3rdparty/chromium/third_party/wds/src/COPYING sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/web-animations-js/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/web-animations-js/sources/COPYING sha256 d51b39e7ed0391e75e0add75d1a162fdf4a0d6b49fba7635ed0ac4e16f324773 src/3rdparty/chromium/third_party/webdriver/COPYING sha256 6d83e980b9b843cf6fe24cb94714d00f9b0cf69cb00d0e3b0bed018d49d6f24f src/3rdparty/chromium/third_party/webdriver/LICENSE sha256 fec8eb2896784d7b9ef5bcb1c64b97156455a3c88df4fdd36538fb55c0decac4 src/3rdparty/chromium/third_party/webgpu-cts/src/LICENSE.txt sha256 e30fbe869f1fa489901bb08888a919c5d50ddb5be6d16b9e4a2cb226263dd7db src/3rdparty/chromium/third_party/webgpu-cts/src/third_party/jquery/LICENSE.txt sha256 25b7731b70c77ecd5f3bb19303fbaa99be18860f81d44f71da670fdcd04829db src/3rdparty/chromium/third_party/webrtc/common_audio/third_party/fft4g/LICENSE sha256 41d791701e3e1c1073470403de7e342442d1e6a2af72681023b13a2f45f2125c src/3rdparty/chromium/third_party/webrtc/common_audio/third_party/spl_sqrt_floor/LICENSE sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 src/3rdparty/chromium/third_party/webrtc/examples/androidapp/third_party/autobanh/LICENSE sha256 26d2d16d48825edf1194cb3907c5c0b7d01f9c5527eb0fefb949c51f304635e9 src/3rdparty/chromium/third_party/webrtc/examples/androidapp/third_party/autobanh/LICENSE.md sha256 21a742dd8cceebb1d5df7c6f945c75ccf1ad4f0d4c17e404517500c1a7de86a4 src/3rdparty/chromium/third_party/webrtc/examples/objc/AppRTCMobile/third_party/SocketRocket/LICENSE sha256 ab00a482b6a3902e40211b43c5d0441962ea99b6cc7c25c0f243fa270b78d482 src/3rdparty/chromium/third_party/webrtc/LICENSE sha256 1f7a086c17fa2bdbe27d3eb6424a64b9bea9d7db89a4e220fef52ca24addb9e9 src/3rdparty/chromium/third_party/webrtc/license_template.txt sha256 6fdbabd2c95c5efc6f1e46175278239afb9343120a3022ed0e0cb04267a6aeb3 src/3rdparty/chromium/third_party/webrtc/modules/third_party/fft/LICENSE sha256 b29c8f13f91feb2dab7d6655444369fa9f29c0d7121a52dab90ff97e40343a85 src/3rdparty/chromium/third_party/webrtc/modules/third_party/g711/LICENSE sha256 61862327fd00d6a4deb2c1276577782c2500f4fe103e072018fc369d8e37e876 src/3rdparty/chromium/third_party/webrtc/modules/third_party/g722/LICENSE sha256 641007ea2810c4cfc10a5d1a44db33983ec1409305e953c7119cc2457ec5c536 src/3rdparty/chromium/third_party/webrtc/modules/third_party/portaudio/LICENSE sha256 a508773ebf00f8c777a910e941e5fd0072195843e1b72a90eb8787d26d4ab1d7 src/3rdparty/chromium/third_party/webrtc/rtc_base/third_party/base64/LICENSE sha256 905bc5ab1c66eea2669aee6cb5185488508264df6492f71ae1a6595180ff8c2b src/3rdparty/chromium/third_party/webrtc/rtc_base/third_party/sigslot/LICENSE sha256 eb077b108bac4c81abe7410274af0930456790add09a6fe5316910e2b936c0f9 src/3rdparty/chromium/third_party/webxr_test_pages/LICENSE sha256 eb077b108bac4c81abe7410274af0930456790add09a6fe5316910e2b936c0f9 src/3rdparty/chromium/third_party/webxr_test_pages/webxr-samples/js/cottontail/LICENSE.md sha256 47754d3064047c300714af25258efa782e144fdf1e835bfd1edbeb7f8f4ef9e4 src/3rdparty/chromium/third_party/webxr_test_pages/webxr-samples/js/third-party/dat.gui/LICENSE sha256 71819b5a0a080b6a3d35b3579817c2c558abcf3c92bb5abc052145a7c106573e src/3rdparty/chromium/third_party/webxr_test_pages/webxr-samples/js/third-party/gl-matrix/LICENSE sha256 eb077b108bac4c81abe7410274af0930456790add09a6fe5316910e2b936c0f9 src/3rdparty/chromium/third_party/webxr_test_pages/webxr-samples/LICENSE.md sha256 88d855a8e07a39df758fe9964f5d04d5c2fab39416e566e9d91588e254ca27dc src/3rdparty/chromium/third_party/weston/LICENSE sha256 fdb65868f65d0fbdb05c2d3b779e10ce9969fa0c4b9262ba4f260e87086ab860 src/3rdparty/chromium/third_party/weston/src/COPYING sha256 a34730970264d619f352598bf30295ad505a60fc3a493add8aa851645ce3ea47 src/3rdparty/chromium/third_party/weston/src/data/COPYING sha256 20de375707692099b3132084695377ce5fec0aec05813dedcce094b8eda44386 src/3rdparty/chromium/third_party/widevine/LICENSE sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 src/3rdparty/chromium/third_party/woff2/LICENSE sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 src/3rdparty/chromium/third_party/wuffs/LICENSE sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 src/3rdparty/chromium/third_party/wuffs/src/LICENSE sha256 b244f73c3d21edaf44ec253b9a7c389ec43313c417f52f8b71914b0c40d87325 src/3rdparty/chromium/third_party/xdg-utils/LICENSE sha256 1cf71700f3403ca26f002e2dc1d1861dcb3d2af9bb9d98d529a903be9d7f06fc src/3rdparty/chromium/third_party/xstream/LICENSE sha256 795f8d76eade6130129b680ac72ea81cb3e143467a65ea1f5f64946151d7fa20 src/3rdparty/chromium/third_party/yasm/source/patched-yasm/COPYING sha256 942755efa272dbfbcd7afea7a38556801e36c16dcad002d572378367094a2593 src/3rdparty/chromium/third_party/zlib/LICENSE sha256 a4c8c5abf82b36c22f8c9f8bd6229584f32eb9f7a2429dd9664dda43e63e9fda src/3rdparty/chromium/tools/grit/third_party/six/LICENSE sha256 63f0c0039b477857e54708d9501ed91b7a46e828ac3c623bedbc318129ceb174 src/3rdparty/chromium/tools/origin_trials/third_party/ed25519/LICENSE sha256 f5b244982699ca9fe5cc8fa8a7c08cf5dee5d3a0c8896892899e5df13316e1b7 src/3rdparty/chromium/tools/page_cycler/acid3/LICENSE sha256 7389900fb68d920c6cb21b70702a2bc240523472a3fd091023d6135cf01d1c5c src/3rdparty/chromium/tools/win/ChromeDebug/ChromeDebug/LICENSE sha256 284545e873c704952e5b1b39d457dd83a3b115a51d9f1eb5175137bd69b8fa1b src/3rdparty/chromium/url/third_party/mozilla/LICENSE.txt sha256 f10a1808e442ae7dbfecf6b54ae4de84193a768770e189a67d5f397730acdbc9 src/3rdparty/chromium/v8/LICENSE sha256 e7115e18444dae09d17f361ddc365fb1d342640fe500796209c63f7c80dfae10 src/3rdparty/chromium/v8/LICENSE.fdlibm sha256 6a585a9f466654abc8fc0829d56b1bc987e3a073d31faa03bba37d33640a23cd src/3rdparty/chromium/v8/LICENSE.strongtalk sha256 4af93c12062c58058378de2397dc1c92bbff9ddfb1d583a01c84127557ce97ca src/3rdparty/chromium/v8/LICENSE.v8 sha256 cae8c00ca6e90a682c321ec11e7a5a345d0d317aa0b8f038e03ef03a18095b2f src/3rdparty/chromium/v8/LICENSE.valgrind sha256 36ffd9dc085d529a7e60e1276d73ae5a030b020313e6c5408593a6ae2af39673 src/3rdparty/chromium/v8/src/third_party/siphash/LICENSE sha256 3f712e5fbdfdbd5ee7d9b8c8152580220df55de47f4eba2f26c95c4de19ad096 src/3rdparty/chromium/v8/src/third_party/utf8-decoder/LICENSE sha256 ebf25b8ce59c9e8883acd1ca75b6fc121937ca034f666c4077d2be739d2e1622 src/3rdparty/chromium/v8/src/third_party/valgrind/LICENSE sha256 cfe7599e45f340a35b4635090382897ca1526bc49b5e1889047f0168d131c415 src/3rdparty/chromium/v8/src/third_party/vtune/LICENSE sha256 15137d6c822e3ab097093a33c3a39a9df699f373f6438867ad534ff60762a947 src/3rdparty/chromium/v8/third_party/colorama/LICENSE sha256 b9be92f13356083392d97da13cab8ae543c7911f44eff5289b693da8b17b9e08 src/3rdparty/chromium/v8/third_party/inspector_protocol/LICENSE sha256 b9a6d9320b8f2693e8d41e496ce56caadacaddcca9be2a64a61749278f425cf2 src/3rdparty/chromium/v8/third_party/v8/builtins/LICENSE sha256 c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08 src/3rdparty/chromium/v8/third_party/wasm-api/LICENSE sha256 5d85142a5609ad177a2d7a2e7cae060b886b8b42f25c5b9803cf0cb5ee04ad2f src/3rdparty/gn/base/third_party/icu/LICENSE sha256 845022e0c1db1abb41a6ba4cd3c4b674ec290f3359d9d3c78ae558d4c0ed9308 src/3rdparty/gn/LICENSE sha256 eb7e9ab9690124c5c9f42bdc81383d886a3dede26345b6ed15bbad7caf81f7ea src/3rdparty/ninja/COPYING ================================================ FILE: package/qt5/qt5webengine/qt5webengine.mk ================================================ ################################################################################ # # qt5webengine # ################################################################################ QT5WEBENGINE_VERSION = $(QT5_VERSION) QT5WEBENGINE_SITE = $(QT5_SITE) QT5WEBENGINE_SOURCE = qtwebengine-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5WEBENGINE_VERSION).tar.xz QT5WEBENGINE_DEPENDENCIES = ffmpeg libglib2 libvpx libxkbcommon opus webp \ qt5declarative qt5webchannel host-bison host-flex host-gperf \ host-pkgconf host-python QT5WEBENGINE_INSTALL_STAGING = YES include package/qt5/qt5webengine/chromium-latest.inc QT5WEBENGINE_LICENSE = GPL-2.0 or LGPL-3.0 or GPL-3.0 or GPL-3.0 with exception QT5WEBENGINE_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT \ LICENSE.GPLv3 LICENSE.LGPL3 $(QT5WEBENGINE_CHROMIUM_LICENSE_FILES) ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y) QT5WEBENGINE_DEPENDENCIES += qt5svg endif ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y) QT5WEBENGINE_DEPENDENCIES += xlib_libXScrnSaver xlib_libXcomposite \ xlib_libXcursor xlib_libXi xlib_libXrandr xlib_libXtst endif QT5WEBENGINE_DEPENDENCIES += host-libpng host-libnss libnss QT5WEBENGINE_CONF_OPTS += WEBENGINE_CONFIG+=use_system_ffmpeg ifeq ($(BR2_PACKAGE_QT5WEBENGINE_PROPRIETARY_CODECS),y) QT5WEBENGINE_CONF_OPTS += WEBENGINE_CONFIG+=use_proprietary_codecs endif ifeq ($(BR2_PACKAGE_QT5WEBENGINE_ALSA),y) QT5WEBENGINE_DEPENDENCIES += alsa-lib else QT5WEBENGINE_CONF_OPTS += QT_CONFIG-=alsa endif # QtWebengine'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. QT5WEBENGINE_ENV = PATH=$(@D)/host-bin:$(BR_PATH) define QT5WEBENGINE_PYTHON2_SYMLINK mkdir -p $(@D)/host-bin ln -sf $(HOST_DIR)/bin/python2 $(@D)/host-bin/python endef QT5WEBENGINE_PRE_CONFIGURE_HOOKS += QT5WEBENGINE_PYTHON2_SYMLINK QT5WEBENGINE_ENV += NINJAFLAGS="-j$(PARALLEL_JOBS)" define QT5WEBENGINE_CREATE_HOST_PKG_CONFIG sed s%@HOST_DIR@%$(HOST_DIR)%g $(QT5WEBENGINE_PKGDIR)/host-pkg-config.in > $(@D)/host-bin/host-pkg-config chmod +x $(@D)/host-bin/host-pkg-config endef QT5WEBENGINE_PRE_CONFIGURE_HOOKS += QT5WEBENGINE_CREATE_HOST_PKG_CONFIG QT5WEBENGINE_ENV += GN_PKG_CONFIG_HOST=$(@D)/host-bin/host-pkg-config QT5WEBENGINE_CONF_ENV = $(QT5WEBENGINE_ENV) QT5WEBENGINE_MAKE_ENV = $(QT5WEBENGINE_ENV) $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5webkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch ================================================ 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 ================================================ FILE: package/qt5/qt5webkit/0002-Exclude-backtrace-API-for-non-glibc-libraries.patch ================================================ 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 ================================================ FILE: package/qt5/qt5webkit/0003-Detect-32-bits-armv8-a-architecture.patch ================================================ From 068bf2d2d91382ea0d8ec24a142a30ea429704db Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Ga=C3=ABl=20PORTAY?= Date: Tue, 15 Aug 2017 18:28:49 -0400 Subject: [PATCH] Detect 32-bits armv8-a architecture MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Adds WTF platform support for the 32-bits armv8-a architectures. Theses toolchains define __ARM_ARCH_8A__ (for ARM architecture version) and __arm__ (for 32-bits word-size; __aarch64__ for 64-bits). This commit catches this new architecture (armv8a) within a #ifdef/#endif inside the if statement dedicated for 32-bits ARM detection. Fixes: In file included from ./config.h:30:0, from ... ./wtf/Platform.h:323:6: error: #error "Not supported ARM architecture" # error "Not supported ARM architecture" ^~~~~ Upstream-Status: Backport [with adaptations] Signed-off-by: Gaël PORTAY --- Source/WTF/wtf/Platform.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h index 562840cf7..9cf656845 100644 --- a/Source/WTF/wtf/Platform.h +++ b/Source/WTF/wtf/Platform.h @@ -243,6 +243,10 @@ || defined(__ARM_ARCH_7S__) #define WTF_ARM_ARCH_VERSION 7 +#elif defined(__ARM_ARCH_8__) \ + || defined(__ARM_ARCH_8A__) +#define WTF_ARM_ARCH_VERSION 8 + /* MSVC sets _M_ARM */ #elif defined(_M_ARM) #define WTF_ARM_ARCH_VERSION _M_ARM -- 2.16.1 ================================================ FILE: package/qt5/qt5webkit/0004-Fix-installation-of-class-headers.patch ================================================ From 7d763d441fd4fa78553a818ee75ac477eb6dbcbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Sun, 2 Feb 2020 10:48:50 +0100 Subject: [PATCH] Fix installation of class headers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since Qt 5.11 (see commit [1]), the key word HEADER_CLASSES has been removed. It has been replaced by a new variable GENERATED_HEADER_FILES. The class headers were not generated, this commit moves them directly to HEADER_FILES. [1]: https://github.com/qt/qtbase/commit/9c4c136bc9f29bab1cc9684dfced55a92a8bbe96 Signed-off-by: Gaël PORTAY [Converted to git formated patch] Signed-off-by: Peter Seiderer --- include/QtWebKit/headers.pri | 3 +-- include/QtWebKitWidgets/headers.pri | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/include/QtWebKit/headers.pri b/include/QtWebKit/headers.pri index 6775f3a6..3a5c14cd 100644 --- a/include/QtWebKit/headers.pri +++ b/include/QtWebKit/headers.pri @@ -1,5 +1,4 @@ -SYNCQT.HEADER_FILES = WebKit/qt/Api/qwebdatabase.h WebKit/qt/Api/qwebelement.h WebKit/qt/Api/qwebhistory.h WebKit/qt/Api/qwebhistoryinterface.h WebKit/qt/Api/qwebkitglobal.h WebKit/qt/Api/qwebkitplatformplugin.h WebKit/qt/Api/qwebpluginfactory.h WebKit/qt/Api/qwebsecurityorigin.h WebKit/qt/Api/qwebsettings.h ../include/QtWebKit/qtwebkitversion.h ../include/QtWebKit/QtWebKit -SYNCQT.HEADER_CLASSES = ../include/QtWebKit/QWebDatabase ../include/QtWebKit/QWebElement ../include/QtWebKit/QWebElementCollection ../include/QtWebKit/QWebHistoryItem ../include/QtWebKit/QWebHistory ../include/QtWebKit/QWebHistoryInterface ../include/QtWebKit/QWebSelectData ../include/QtWebKit/QWebSelectMethod ../include/QtWebKit/QWebNotificationData ../include/QtWebKit/QWebNotificationPresenter ../include/QtWebKit/QWebHapticFeedbackPlayer ../include/QtWebKit/QWebTouchModifier ../include/QtWebKit/QWebFullScreenVideoHandler ../include/QtWebKit/QWebSpellChecker ../include/QtWebKit/QWebKitPlatformPlugin ../include/QtWebKit/QWebPluginFactory ../include/QtWebKit/QWebSecurityOrigin ../include/QtWebKit/QWebSettings ../include/QtWebKit/QtWebKitVersion +SYNCQT.HEADER_FILES = WebKit/qt/Api/qwebdatabase.h WebKit/qt/Api/qwebelement.h WebKit/qt/Api/qwebhistory.h WebKit/qt/Api/qwebhistoryinterface.h WebKit/qt/Api/qwebkitglobal.h WebKit/qt/Api/qwebkitplatformplugin.h WebKit/qt/Api/qwebpluginfactory.h WebKit/qt/Api/qwebsecurityorigin.h WebKit/qt/Api/qwebsettings.h ../include/QtWebKit/qtwebkitversion.h ../include/QtWebKit/QtWebKit ../include/QtWebKit/QWebDatabase ../include/QtWebKit/QWebElement ../include/QtWebKit/QWebElementCollection ../include/QtWebKit/QWebHistoryItem ../include/QtWebKit/QWebHistory ../include/QtWebKit/QWebHistoryInterface ../include/QtWebKit/QWebSelectData ../include/QtWebKit/QWebSelectMethod ../include/QtWebKit/QWebNotificationData ../include/QtWebKit/QWebNotificationPresenter ../include/QtWebKit/QWebHapticFeedbackPlayer ../include/QtWebKit/QWebTouchModifier ../include/QtWebKit/QWebFullScreenVideoHandler ../include/QtWebKit/QWebSpellChecker ../include/QtWebKit/QWebKitPlatformPlugin ../include/QtWebKit/QWebPluginFactory ../include/QtWebKit/QWebSecurityOrigin ../include/QtWebKit/QWebSettings ../include/QtWebKit/QtWebKitVersion SYNCQT.PRIVATE_HEADER_FILES = WebKit/qt/Api/qhttpheader_p.h WebKit/qt/Api/qwebdatabase_p.h WebKit/qt/Api/qwebelement_p.h WebKit/qt/Api/qwebhistory_p.h WebKit/qt/Api/qwebplugindatabase_p.h WebKit/qt/Api/qwebscriptworld.h WebKit/qt/Api/qwebscriptworld_p.h WebKit/qt/Api/qwebsecurityorigin_p.h WebKit2/UIProcess/API/qt/qquicknetworkreply_p.h WebKit2/UIProcess/API/qt/qquicknetworkrequest_p.h WebKit2/UIProcess/API/qt/qquickurlschemedelegate_p.h WebKit2/UIProcess/API/qt/qquickwebpage_p.h WebKit2/UIProcess/API/qt/qquickwebpage_p_p.h WebKit2/UIProcess/API/qt/qquickwebview_p.h WebKit2/UIProcess/API/qt/qquickwebview_p_p.h WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h WebKit2/UIProcess/API/qt/qwebchannelwebkittransport_p.h WebKit2/UIProcess/API/qt/qwebdownloaditem_p.h WebKit2/UIProcess/API/qt/qwebdownloaditem_p_p.h WebKit2/UIProcess/API/qt/qwebiconimageprovider_p.h WebKit2/UIProcess/API/qt/qwebkittest_p.h WebKit2/UIProcess/API/qt/qwebloadrequest_p.h WebKit2/UIProcess/API/qt/qwebnavigationhistory_p.h WebKit2/UIProcess/API/qt/qwebnavigationhistory_p_p.h WebKit2/UIProcess/API/qt/qwebnavigationrequest_p.h WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h WebKit2/UIProcess/API/qt/qwebpreferences_p.h WebKit2/UIProcess/API/qt/qwebpreferences_p_p.h WebKit2/UIProcess/API/qt/raw/qrawwebview_p.h WebKit2/UIProcess/API/qt/raw/qrawwebview_p_p.h WebKit2/UIProcess/API/qt/tests/bytearraytestdata.h WebKit2/UIProcess/API/qt/tests/testwindow.h WebKit2/UIProcess/API/qt/tests/util.h SYNCQT.INJECTED_PRIVATE_HEADER_FILES = SYNCQT.QPA_HEADER_FILES = diff --git a/include/QtWebKitWidgets/headers.pri b/include/QtWebKitWidgets/headers.pri index 9d386e29..2b8b095c 100644 --- a/include/QtWebKitWidgets/headers.pri +++ b/include/QtWebKitWidgets/headers.pri @@ -1,5 +1,4 @@ -SYNCQT.HEADER_FILES = WebKit/qt/WidgetApi/qgraphicswebview.h WebKit/qt/WidgetApi/qwebframe.h WebKit/qt/WidgetApi/qwebinspector.h WebKit/qt/WidgetApi/qwebpage.h WebKit/qt/WidgetApi/qwebview.h ../include/QtWebKitWidgets/qtwebkitwidgetsversion.h ../include/QtWebKitWidgets/QtWebKitWidgets -SYNCQT.HEADER_CLASSES = ../include/QtWebKitWidgets/QGraphicsWebView ../include/QtWebKitWidgets/QWebHitTestResult ../include/QtWebKitWidgets/QWebFrame ../include/QtWebKitWidgets/QWebInspector ../include/QtWebKitWidgets/QWebPage ../include/QtWebKitWidgets/QWebView ../include/QtWebKitWidgets/QtWebKitWidgetsVersion +SYNCQT.HEADER_FILES = WebKit/qt/WidgetApi/qgraphicswebview.h WebKit/qt/WidgetApi/qwebframe.h WebKit/qt/WidgetApi/qwebinspector.h WebKit/qt/WidgetApi/qwebpage.h WebKit/qt/WidgetApi/qwebview.h ../include/QtWebKitWidgets/qtwebkitwidgetsversion.h ../include/QtWebKitWidgets/QtWebKitWidgets ../include/QtWebKitWidgets/QGraphicsWebView ../include/QtWebKitWidgets/QWebHitTestResult ../include/QtWebKitWidgets/QWebFrame ../include/QtWebKitWidgets/QWebInspector ../include/QtWebKitWidgets/QWebPage ../include/QtWebKitWidgets/QWebView ../include/QtWebKitWidgets/QtWebKitWidgetsVersion SYNCQT.PRIVATE_HEADER_FILES = WebKit/qt/WidgetApi/qwebframe_p.h WebKit/qt/WidgetApi/qwebinspector_p.h WebKit/qt/WidgetApi/qwebpage_p.h WebKit/qt/WidgetApi/qwebviewaccessible_p.h SYNCQT.INJECTED_PRIVATE_HEADER_FILES = SYNCQT.QPA_HEADER_FILES = -- 2.25.0 ================================================ FILE: package/qt5/qt5webkit/0005-Fix-ICU-related-compile-failures.patch ================================================ From 38e3436db7222ac403a405db7e0fd1d472f1704a Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Sun, 2 Feb 2020 10:51:00 +0100 Subject: [PATCH] Fix ICU related compile failures. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ICU macro U16_NEXT() needs a trailing semicolon. Fixes: platform/graphics/SegmentedFontData.cpp:65:9: error: expected ‘;’ before ‘if’ dom/Document.cpp:3850:5: error: expected ‘;’ before ‘if’ dom/Document.cpp:3855:9: error: expected ‘;’ before ‘if’ dom/Document.cpp:3918:9: error: expected ‘;’ before ‘if’ Signed-off-by: Peter Seiderer --- Source/WebCore/dom/Document.cpp | 6 +++--- Source/WebCore/platform/graphics/SegmentedFontData.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp index af63b141..26f7312b 100644 --- a/Source/WebCore/dom/Document.cpp +++ b/Source/WebCore/dom/Document.cpp @@ -3846,12 +3846,12 @@ static bool isValidNameNonASCII(const UChar* characters, unsigned length) unsigned i = 0; UChar32 c; - U16_NEXT(characters, i, length, c) + U16_NEXT(characters, i, length, c); if (!isValidNameStart(c)) return false; while (i < length) { - U16_NEXT(characters, i, length, c) + U16_NEXT(characters, i, length, c); if (!isValidNamePart(c)) return false; } @@ -3914,7 +3914,7 @@ bool Document::parseQualifiedName(const String& qualifiedName, String& prefix, S const UChar* s = qualifiedName.characters(); for (unsigned i = 0; i < length;) { UChar32 c; - U16_NEXT(s, i, length, c) + U16_NEXT(s, i, length, c); if (c == ':') { if (sawColon) { ec = NAMESPACE_ERR; diff --git a/Source/WebCore/platform/graphics/SegmentedFontData.cpp b/Source/WebCore/platform/graphics/SegmentedFontData.cpp index efb20a8c..99b3e86c 100644 --- a/Source/WebCore/platform/graphics/SegmentedFontData.cpp +++ b/Source/WebCore/platform/graphics/SegmentedFontData.cpp @@ -61,7 +61,7 @@ bool SegmentedFontData::containsCharacters(const UChar* characters, int length) { UChar32 c; for (int i = 0; i < length; ) { - U16_NEXT(characters, i, length, c) + U16_NEXT(characters, i, length, c); if (!containsCharacter(c)) return false; } -- 2.25.0 ================================================ FILE: package/qt5/qt5webkit/0006-configure-remove-legacy-reference-to-qtConfig-mircli.patch ================================================ From c408484e3a442ecf99d3cc61402f20c45c894b7c Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Mon, 3 Feb 2020 21:19:57 +0100 Subject: [PATCH] configure: remove legacy reference to qtConfig(mirclient) The optio mirclient is removed since Qt-5.14.x (see [1]) Fixes: Project ERROR: Could not find feature mirclient. [1] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=8c73ddd8e3fb43cc22fa111b855ab1f9f5b83405 Signed-off-by: Peter Seiderer --- Tools/qmake/mkspecs/features/configure.prf | 3 --- 1 file changed, 3 deletions(-) diff --git a/Tools/qmake/mkspecs/features/configure.prf b/Tools/qmake/mkspecs/features/configure.prf index 23d99040..783f6752 100644 --- a/Tools/qmake/mkspecs/features/configure.prf +++ b/Tools/qmake/mkspecs/features/configure.prf @@ -130,9 +130,6 @@ defineTest(finalizeConfigure) { addReasonForSkippingBuild("Build not supported on Android.") } QT_FOR_CONFIG += gui-private - production_build:qtConfig(mirclient) { - addReasonForSkippingBuild("Build not supported on Ubuntu Touch.") - } !gnu_thin_archives:!win32-msvc2013:!mingw:qtConfig(static) { addReasonForSkippingBuild("QtWebKit cannot be built as a static library on this platform. Check your configuration in qtbase/config.summary.") } -- 2.25.0 ================================================ FILE: package/qt5/qt5webkit/0007-Let-Bison-generate-the-header-directly-to-fix-build-.patch ================================================ From 894a5448ee8ce0f134845c877b4c0a2a660e4ab3 Mon Sep 17 00:00:00 2001 From: Dmitry Shachnev Date: Tue, 4 Aug 2020 21:04:06 +0300 Subject: [PATCH] Let Bison generate the header directly, to fix build with Bison 3.7 Starting with Bison 3.7, the generated C++ file #include's the header by default, instead of duplicating it. So we should not delete it. Remove the code to add #ifdef guards to the header, since Bison adds them itself since version 2.6.3. [Original patch taken from https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20200309-bison-3.7.patch?id=69e618c88a9134f754264efc11aa0b1fdc028b88 ported to qtwebkit-opensource-src-5.9.1] Signed-off-by: Peter Seiderer --- Source/WebCore/css/makegrammar.pl | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/Source/WebCore/css/makegrammar.pl b/Source/WebCore/css/makegrammar.pl index 4e0452ed..9ef32963 100644 --- a/Source/WebCore/css/makegrammar.pl +++ b/Source/WebCore/css/makegrammar.pl @@ -73,23 +73,4 @@ if ($suffix eq ".y.in") { } my $fileBase = File::Spec->join($outputDir, $filename); -system("$bison -d -p $symbolsPrefix $grammarFilePath -o $fileBase.cpp"); - -open HEADER, ">$fileBase.h" or die; -print HEADER << "EOF"; -#ifndef CSSGRAMMAR_H -#define CSSGRAMMAR_H -EOF - -open HPP, "<$fileBase.cpp.h" or open HPP, "<$fileBase.hpp" or die; -while () { - print HEADER; -} -close HPP; - -print HEADER "#endif\n"; -close HEADER; - -unlink("$fileBase.cpp.h"); -unlink("$fileBase.hpp"); - +system("$bison --defines=$fileBase.h -p $symbolsPrefix $grammarFilePath -o $fileBase.cpp"); -- 2.28.0 ================================================ FILE: package/qt5/qt5webkit/0008-let-bison-generate-the-header-directly-to-fix-build-.patch ================================================ From 8959e226fac7f73b9a40e202610bd5e12334561b Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Tue, 15 Sep 2020 19:11:18 +0200 Subject: [PATCH] let bison generate the header directly, to fix build with bison 3.7 Do the same as the patch taken from [1] for the bison call in Source/WebCore/DerivedSources.pri to fix file generation for bison 3.7. Signed-off-by: Peter Seiderer --- Source/WebCore/DerivedSources.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/WebCore/DerivedSources.pri b/Source/WebCore/DerivedSources.pri index 57a6b0f7..e9f52614 100644 --- a/Source/WebCore/DerivedSources.pri +++ b/Source/WebCore/DerivedSources.pri @@ -987,7 +987,7 @@ GENERATORS += pluginsresources # GENERATOR 11: XPATH grammar xpathbison.output = ${QMAKE_FILE_BASE}.cpp xpathbison.input = XPATHBISON -xpathbison.commands = bison -d -p xpathyy ${QMAKE_FILE_NAME} -o ${QMAKE_FUNC_FILE_OUT_PATH}/${QMAKE_FILE_BASE}.tab.c && $(MOVE) ${QMAKE_FUNC_FILE_OUT_PATH}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.c ${QMAKE_FUNC_FILE_OUT_PATH}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.cpp && $(MOVE) ${QMAKE_FUNC_FILE_OUT_PATH}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.h ${QMAKE_FUNC_FILE_OUT_PATH}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.h +xpathbison.commands = bison --defines=${QMAKE_FUNC_FILE_OUT_PATH}/${QMAKE_FILE_BASE}.h -p xpathyy ${QMAKE_FILE_NAME} -o ${QMAKE_FUNC_FILE_OUT_PATH}/${QMAKE_FILE_BASE}.cpp xpathbison.depends = ${QMAKE_FILE_NAME} GENERATORS += xpathbison -- 2.28.0 ================================================ FILE: package/qt5/qt5webkit/0009-Fix-ICU-related-compile-failures-from-capital-bool-d.patch ================================================ From 37ee268d9d07a8dad02c1d8db3bf96e0b30df10b Mon Sep 17 00:00:00 2001 From: Henri Roosen Date: Thu, 18 Mar 2021 11:53:57 +0100 Subject: [PATCH] Fix ICU related compile failures from capital bool defines See ICU-21267 Signed-off-by: Henri Roosen --- .../platform/text/TextBreakIteratorICU.cpp | 16 ++++++++-------- Source/WebCore/platform/text/TextCodecICU.cpp | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Source/WebCore/platform/text/TextBreakIteratorICU.cpp b/Source/WebCore/platform/text/TextBreakIteratorICU.cpp index b4046ac9..832890a2 100644 --- a/Source/WebCore/platform/text/TextBreakIteratorICU.cpp +++ b/Source/WebCore/platform/text/TextBreakIteratorICU.cpp @@ -214,12 +214,12 @@ static inline bool textInChunkOrOutOfRange(UText* text, int64_t nativeIndex, int // Ensure chunk offset is well formed if computed offset exceeds int32_t range. ASSERT(offset < numeric_limits::max()); text->chunkOffset = offset < numeric_limits::max() ? static_cast(offset) : 0; - isAccessible = TRUE; + isAccessible = true; return true; } if (nativeIndex >= nativeLength && text->chunkNativeLimit == nativeLength) { text->chunkOffset = text->chunkLength; - isAccessible = FALSE; + isAccessible = false; return true; } } else { @@ -228,12 +228,12 @@ static inline bool textInChunkOrOutOfRange(UText* text, int64_t nativeIndex, int // Ensure chunk offset is well formed if computed offset exceeds int32_t range. ASSERT(offset < numeric_limits::max()); text->chunkOffset = offset < numeric_limits::max() ? static_cast(offset) : 0; - isAccessible = TRUE; + isAccessible = true; return true; } if (nativeIndex <= 0 && !text->chunkNativeStart) { text->chunkOffset = 0; - isAccessible = FALSE; + isAccessible = false; return true; } } @@ -243,7 +243,7 @@ static inline bool textInChunkOrOutOfRange(UText* text, int64_t nativeIndex, int static UBool textLatin1Access(UText* text, int64_t nativeIndex, UBool forward) { if (!text->context) - return FALSE; + return false; int64_t nativeLength = textNativeLength(text); UBool isAccessible; if (textInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible)) @@ -263,7 +263,7 @@ static UBool textLatin1Access(UText* text, int64_t nativeIndex, UBool forward) ASSERT(newContext == PriorContext); textLatin1SwitchToPriorContext(text, nativeIndex, nativeLength, forward); } - return TRUE; + return true; } static const struct UTextFuncs textLatin1Funcs = { @@ -364,7 +364,7 @@ static void textUTF16SwitchToPriorContext(UText* text, int64_t nativeIndex, int6 static UBool textUTF16Access(UText* text, int64_t nativeIndex, UBool forward) { if (!text->context) - return FALSE; + return false; int64_t nativeLength = textNativeLength(text); UBool isAccessible; if (textInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible)) @@ -384,7 +384,7 @@ static UBool textUTF16Access(UText* text, int64_t nativeIndex, UBool forward) ASSERT(newContext == PriorContext); textUTF16SwitchToPriorContext(text, nativeIndex, nativeLength, forward); } - return TRUE; + return true; } static const struct UTextFuncs textUTF16Funcs = { diff --git a/Source/WebCore/platform/text/TextCodecICU.cpp b/Source/WebCore/platform/text/TextCodecICU.cpp index 86d4ea17..da152edd 100644 --- a/Source/WebCore/platform/text/TextCodecICU.cpp +++ b/Source/WebCore/platform/text/TextCodecICU.cpp @@ -269,7 +269,7 @@ void TextCodecICU::createICUConverter() const m_converterICU = ucnv_open(m_canonicalConverterName, &err); ASSERT(U_SUCCESS(err)); if (m_converterICU) - ucnv_setFallback(m_converterICU, TRUE); + ucnv_setFallback(m_converterICU, true); } int TextCodecICU::decodeToBuffer(UChar* target, UChar* targetLimit, const char*& source, const char* sourceLimit, int32_t* offsets, bool flush, UErrorCode& err) -- 2.20.1 ================================================ FILE: package/qt5/qt5webkit/Config.in ================================================ config BR2_PACKAGE_QT5WEBKIT bool "qt5webkit" depends on !BR2_STATIC_LIBS depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE depends on BR2_INSTALL_LIBSTDCPP # leveldb depends on BR2_HOST_GCC_AT_LEAST_4_9 # icu, host-ruby depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # icu depends on BR2_TOOLCHAIN_HAS_THREADS # leveldb depends on !BR2_BINFMT_FLAT # icu # assumes a FPU is available on MIPS depends on !BR2_MIPS_SOFT_FLOAT select BR2_PACKAGE_LEVELDB select BR2_PACKAGE_QT5BASE_ICU select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_SQLITE select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_QT5BASE_XCB select BR2_PACKAGE_XLIB_LIBXRENDER if BR2_PACKAGE_QT5BASE_XCB help Qt is a cross-platform application and UI framework for developers using C++. The Qt WebKit module provides the WebView API, which allows QML applications to render regions of dynamic web content. 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://doc.qt.io/archives/qt-5.5/qtwebkit-index.html comment "qt5webkit needs a toolchain w/ dynamic library, gcc >= 4.9, host gcc >= 4.9" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_4_9 depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE depends on !BR2_BINFMT_FLAT depends on !BR2_MIPS_SOFT_FLOAT ================================================ FILE: package/qt5/qt5webkit/qt5webkit.hash ================================================ # hash from: https://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtwebkit-opensource-src-5.9.1.tar.xz.mirrorlist sha256 28a560becd800a4229bfac317c2e5407cd3cc95308bc4c3ca90dba2577b052cf qtwebkit-opensource-src-5.9.1.tar.xz # Hashes for license files: sha256 7555fa34bc131a75ca56d65c40cc1ea8f9515d23e353d4c15d58573a042f7805 Source/WebCore/LICENSE-LGPL-2 sha256 f2b3bd09663381deb99721109d22b47af1213bb43007a8b56a06c6375c8050ce Source/WebCore/LICENSE-LGPL-2.1 sha256 a3db6c7f3027aa27489c25a2fa259185cdee945780c32e01c60cbfabf4743b6c LICENSE.LGPLv21 ================================================ FILE: package/qt5/qt5webkit/qt5webkit.mk ================================================ ################################################################################ # # qt5webkit # ################################################################################ QT5WEBKIT_VERSION = 5.9.1 QT5WEBKIT_SITE = https://download.qt.io/official_releases/qt/5.9/5.9.1/submodules QT5WEBKIT_SOURCE = qtwebkit-opensource-src-$(QT5WEBKIT_VERSION).tar.xz QT5WEBKIT_DEPENDENCIES = \ host-bison host-flex host-gperf host-python host-ruby \ leveldb sqlite QT5WEBKIT_INSTALL_STAGING = YES QT5WEBKIT_LICENSE_FILES = Source/WebCore/LICENSE-LGPL-2 Source/WebCore/LICENSE-LGPL-2.1 QT5WEBKIT_LICENSE = LGPL-2.1+, BSD-3-Clause, BSD-2-Clause # Source files contain references to LGPL_EXCEPTION.txt but it is not included # in the archive. QT5WEBKIT_LICENSE_FILES += LICENSE.LGPLv21 ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y) QT5WEBKIT_DEPENDENCIES += xlib_libXext xlib_libXrender endif 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_CONF_ENV = PATH=$(@D)/host-bin:$(BR_PATH) QT5WEBKIT_MAKE_ENV = PATH=$(@D)/host-bin:$(BR_PATH) define QT5WEBKIT_PYTHON2_SYMLINK mkdir -p $(@D)/host-bin ln -sf $(HOST_DIR)/bin/python2 $(@D)/host-bin/python endef QT5WEBKIT_PRE_CONFIGURE_HOOKS += QT5WEBKIT_PYTHON2_SYMLINK QT5WEBKIT_CONF_OPTS = WEBKIT_CONFIG+=use_system_leveldb define QT5WEBKIT_INSTALL_TARGET_EXTRAS cp -dpf $(@D)/bin/* $(TARGET_DIR)/usr/bin/ endef QT5WEBKIT_POST_INSTALL_TARGET_HOOKS += QT5WEBKIT_INSTALL_TARGET_EXTRAS $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5webkit-examples/0001-Build-examples.patch ================================================ From 78f558df35860484711a600d155ae7a13ebf44b2 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Ga=C3=ABl=20PORTAY?= Date: Tue, 28 Nov 2017 23:14:42 -0500 Subject: [PATCH 1/1] Build examples MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Gaël PORTAY [gportay: build imageanalyzer example if concurrent module is built] --- examples/webkitwidgets/webkitwidgets.pro | 7 ++++--- qtwebkit-examples.pro | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/webkitwidgets/webkitwidgets.pro b/examples/webkitwidgets/webkitwidgets.pro index ab20df4..67f6785 100644 --- a/examples/webkitwidgets/webkitwidgets.pro +++ b/examples/webkitwidgets/webkitwidgets.pro @@ -4,9 +4,10 @@ SUBDIRS += domtraversal \ previewer \ fancybrowser \ simpleselector \ - imageanalyzer \ framecapture \ browser \ embedded \ - scroller \ - xmlpatterns + scroller + +qtHaveModule(xmlpatterns): SUBDIRS += xmlpatterns +qtHaveModule(concurrent): SUBDIRS += imageanalyzer diff --git a/qtwebkit-examples.pro b/qtwebkit-examples.pro index 3fcecf1..2ade7ff 100644 --- a/qtwebkit-examples.pro +++ b/qtwebkit-examples.pro @@ -3,3 +3,4 @@ requires(qtHaveModule(webkit)) load(qt_parts) SUBDIRS += doc +SUBDIRS += examples -- 2.15.0 ================================================ FILE: package/qt5/qt5webkit-examples/0002-Fix-QWebView-path.patch ================================================ From 9fa73707216bd55dff380031a33aca701a7d9c8b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 12 May 2019 23:29:05 +0200 Subject: [PATCH] Fix QWebView path QWebView is installed under QtWebKitWidgets Fixes: - http://autobuild.buildroot.org/results/68dd6f1ffed49f8e2570f7364e5e635573807d3e Signed-off-by: Fabrice Fontaine --- examples/webkitwidgets/formextractor/formextractor.ui | 2 +- examples/webkitwidgets/previewer/previewer.ui | 2 +- examples/webkitwidgets/simpleselector/window.ui | 2 +- .../xmlpatterns/qobjectxmlmodel/forms/mainwindow.ui | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/webkitwidgets/formextractor/formextractor.ui b/examples/webkitwidgets/formextractor/formextractor.ui index 5c4afec..a38bdd5 100644 --- a/examples/webkitwidgets/formextractor/formextractor.ui +++ b/examples/webkitwidgets/formextractor/formextractor.ui @@ -151,7 +151,7 @@ QWebView QWidget -
    QtWebKit/QWebView
    +
    QtWebKitWidgets/QWebView
    diff --git a/examples/webkitwidgets/previewer/previewer.ui b/examples/webkitwidgets/previewer/previewer.ui index d4c9992..69adb2e 100644 --- a/examples/webkitwidgets/previewer/previewer.ui +++ b/examples/webkitwidgets/previewer/previewer.ui @@ -74,7 +74,7 @@ QWebView QWidget -
    QtWebKit/QWebView
    +
    QtWebKitWidgets/QWebView
    diff --git a/examples/webkitwidgets/simpleselector/window.ui b/examples/webkitwidgets/simpleselector/window.ui index aa824df..7906186 100644 --- a/examples/webkitwidgets/simpleselector/window.ui +++ b/examples/webkitwidgets/simpleselector/window.ui @@ -64,7 +64,7 @@ QWebView QWidget -
    QtWebKit/QWebView
    +
    QtWebKitWidgets/QWebView
    diff --git a/examples/webkitwidgets/xmlpatterns/qobjectxmlmodel/forms/mainwindow.ui b/examples/webkitwidgets/xmlpatterns/qobjectxmlmodel/forms/mainwindow.ui index ad43284..000cae7 100644 --- a/examples/webkitwidgets/xmlpatterns/qobjectxmlmodel/forms/mainwindow.ui +++ b/examples/webkitwidgets/xmlpatterns/qobjectxmlmodel/forms/mainwindow.ui @@ -188,7 +188,7 @@ p, li { white-space: pre-wrap; } QWebView QWidget -
    QtWebKit/QWebView
    +
    QtWebKitWidgets/QWebView
    -- 2.20.1 ================================================ FILE: package/qt5/qt5webkit-examples/0003-Fix-QPainterPath-include.patch ================================================ From 452123a4491b26c5b078934477bd5864f1d004e4 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 28 May 2020 20:58:26 +0200 Subject: [PATCH] Fix QPainterPath include MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add missing QPainterPath (needed for Qt-5.15.0 compile). Fixes: searchlineedit.cpp:121:18: error: aggregate ‘QPainterPath myPath’ has incomplete type and cannot be defined QPainterPath myPath; ^~~~~~ Signed-off-by: Peter Seiderer --- examples/webkitwidgets/browser/searchlineedit.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/webkitwidgets/browser/searchlineedit.cpp b/examples/webkitwidgets/browser/searchlineedit.cpp index fbd73cb..7462c82 100644 --- a/examples/webkitwidgets/browser/searchlineedit.cpp +++ b/examples/webkitwidgets/browser/searchlineedit.cpp @@ -34,6 +34,7 @@ #include "searchlineedit.h" #include +#include #include #include #include -- 2.26.2 ================================================ FILE: package/qt5/qt5webkit-examples/Config.in ================================================ 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. http://qt.io ================================================ FILE: package/qt5/qt5webkit-examples/qt5webkit-examples.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtwebkit-examples-opensource-src-5.9.1.tar.xz.mirrorlist sha256 e4ce4de6b468243abad2baabbe8ddfb05d25b186529bfe88cb8662fc983f54d0 qtwebkit-examples-opensource-src-5.9.1.tar.xz # Hashes for license files: sha256 a3db6c7f3027aa27489c25a2fa259185cdee945780c32e01c60cbfabf4743b6c LICENSE.LGPLv21 sha256 04505ee290cbe7b29b3766e00ff81987e84658f620cb43bd6e7bb52ee4234e1b LICENSE.LGPLv3 sha256 6c3f3c31b93985f1b93bfbb35fb609d37281697d0efc220c9f91cf4b59eaabde LICENSE.GPLv2 sha256 d3d9052b838761dbe00067168ed9ebc437734d53ebf71dea1c8e9f7532a5333b LICENSE.GPLv3 ================================================ FILE: package/qt5/qt5webkit-examples/qt5webkit-examples.mk ================================================ ################################################################################ # # qt5webkit-examples # ################################################################################ QT5WEBKIT_EXAMPLES_VERSION = 5.9.1 QT5WEBKIT_EXAMPLES_SITE = https://download.qt.io/official_releases/qt/5.9/5.9.1/submodules QT5WEBKIT_EXAMPLES_SOURCE = qtwebkit-examples-opensource-src-$(QT5WEBKIT_VERSION).tar.xz QT5WEBKIT_EXAMPLES_DEPENDENCIES = qt5webkit QT5WEBKIT_EXAMPLES_LICENSE_FILES = LICENSE.LGPLv21 LICENSE.LGPLv3 LICENSE.GPLv2 LICENSE.GPLv3 QT5WEBKIT_EXAMPLES_LICENSE = LGPL-2.1 with exception or LGPL-3 or GPL-2 or GPL-3 # Source files contain references to LGPL_EXCEPTION.txt but it is not included # in the archive. ifeq ($(BR2_PACKAGE_QT5XMLPATTERNS),y) QT5WEBKIT_EXAMPLES_DEPENDENCIES += qt5xmlpatterns endif ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) QT5WEBKIT_EXAMPLES_DEPENDENCIES += qt5declarative endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5websockets/Config.in ================================================ config BR2_PACKAGE_QT5WEBSOCKETS bool "qt5websockets" select BR2_PACKAGE_QT5BASE_NETWORK help Qt is a cross-platform application and UI framework for developers using C++. The Qt WebSockets module provides C++ and QML interfaces that enable Qt applications to act as a server that can process WebSocket requests, or a client that can consume data received from the server, or both. http://doc.qt.io/qt-5/qtwebsockets-index.html ================================================ FILE: package/qt5/qt5websockets/qt5websockets.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtwebsockets-everywhere-src-5.15.2.tar.xz.sha256 sha256 a0b42d85dd34ff6e2d23400e02f83d8b85bcd80e60efd1521d12d9625d4a233f qtwebsockets-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 ================================================ FILE: package/qt5/qt5websockets/qt5websockets.mk ================================================ ################################################################################ # # qt5websockets # ################################################################################ QT5WEBSOCKETS_VERSION = $(QT5_VERSION) QT5WEBSOCKETS_SITE = $(QT5_SITE) QT5WEBSOCKETS_SOURCE = qtwebsockets-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5WEBSOCKETS_VERSION).tar.xz QT5WEBSOCKETS_INSTALL_STAGING = YES QT5WEBSOCKETS_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools) QT5WEBSOCKETS_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y) QT5WEBSOCKETS_LICENSE += , BSD-3-Clause (examples) endif ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) QT5WEBSOCKETS_DEPENDENCIES += qt5declarative endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5webview/Config.in ================================================ config BR2_PACKAGE_QT5WEBVIEW bool "qt5webview" depends on BR2_PACKAGE_QT5WEBENGINE help Qt is a cross-platform application and UI framework for developers using C++. Qt WebView provides a way to display web content in a QML application without necessarily including a full web browser stack by using native APIs where it makes sense. https://doc.qt.io/qt-5/qtwebview-index.html comment "qt5webview needs qt5webengine module" depends on !BR2_PACKAGE_QT5WEBENGINE ================================================ FILE: package/qt5/qt5webview/qt5webview.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtwebview-everywhere-src-5.15.2.tar.xz.sha256 sha256 be9f46167e4977ead5ef5ecf883fdb812a4120f2436383583792f65557e481e7 qtwebview-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2 sha256 245248009fd0af1725d183248380e476c1283383909358a13686606352bf2a17 LICENSE.GPLv3 sha256 5ceb37d1c7c1d92878b82af3c0fd5558087f3d5a08a3a4d43850bad4ad265a52 LICENSE.LGPLv3 ================================================ FILE: package/qt5/qt5webview/qt5webview.mk ================================================ ################################################################################ # # qt5webview # ################################################################################ QT5WEBVIEW_VERSION = $(QT5_VERSION) QT5WEBVIEW_SITE = $(QT5_SITE) QT5WEBVIEW_SOURCE = qtwebview-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5WEBVIEW_VERSION).tar.xz QT5WEBVIEW_DEPENDENCIES = qt5webengine QT5WEBVIEW_INSTALL_STAGING = YES QT5WEBVIEW_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0, GFDL-1.3 (docs) QT5WEBVIEW_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv3 LICENSE.FDL ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y) QT5WEBVIEW_LICENSE += , BSD-3-Clause (examples) endif $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5x11extras/Config.in ================================================ config BR2_PACKAGE_QT5X11EXTRAS bool "qt5x11extras" depends on BR2_PACKAGE_QT5BASE_XCB select BR2_PACKAGE_QT5BASE_WIDGETS help Qt is a cross-platform application and UI framework for developers using C++. Qt X11 Extras enables the Qt programmer to write applications for the Linux/X11 platform. http://doc.qt.io/qt-5/qtx11extras-index.html ================================================ FILE: package/qt5/qt5x11extras/qt5x11extras.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtx11extras-everywhere-src-5.15.2.tar.xz.sha256 sha256 7014702ee9a644a5a93da70848ac47c18851d4f8ed622b29a72eed9282fc6e3e qtx11extras-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5x11extras/qt5x11extras.mk ================================================ ################################################################################ # # qt5x11extras # ################################################################################ QT5X11EXTRAS_VERSION = $(QT5_VERSION) QT5X11EXTRAS_SITE = $(QT5_SITE) QT5X11EXTRAS_SOURCE = qtx11extras-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5X11EXTRAS_VERSION).tar.xz QT5X11EXTRAS_INSTALL_STAGING = YES QT5X11EXTRAS_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5X11EXTRAS_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL $(eval $(qmake-package)) ================================================ FILE: package/qt5/qt5xmlpatterns/Config.in ================================================ config BR2_PACKAGE_QT5XMLPATTERNS bool "qt5xmlpatterns" help Qt is a cross-platform application and UI framework for developers using C++. The Qt XML Patterns module provides support for XPath, XQuery, XSLT, and XML Schema validation. http://doc.qt.io/qt-5/qtxmlpatterns-index.html ================================================ FILE: package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash ================================================ # Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtxmlpatterns-everywhere-src-5.15.2.tar.xz.sha256 sha256 76ea2162a7c349188d7e7e4f6c77b78e8a205494c90fee3cea3487a1ae2cf2fa qtxmlpatterns-everywhere-src-5.15.2.tar.xz # Hashes for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE.LGPL3 sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL ================================================ FILE: package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk ================================================ ################################################################################ # # qt5xmlpatterns # ################################################################################ QT5XMLPATTERNS_VERSION = $(QT5_VERSION) QT5XMLPATTERNS_SITE = $(QT5_SITE) QT5XMLPATTERNS_SOURCE = qtxmlpatterns-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5XMLPATTERNS_VERSION).tar.xz QT5XMLPATTERNS_INSTALL_STAGING = YES QT5XMLPATTERNS_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5XMLPATTERNS_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) QT5XMLPATTERNS_DEPENDENCIES += qt5declarative endif ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y) QT5XMLPATTERNS_LICENSE += , BSD-3-Clause (examples) endif $(eval $(qmake-package)) ================================================ FILE: package/qt5cinex/0001-Fix-execution-problem-with-Qt5.3.patch ================================================ From 9b045ee7988daf3bb4c7cbe1ed1b9d744820e82b Mon Sep 17 00:00:00 2001 From: Pierre Le Magourou Date: Mon, 15 Dec 2014 11:54:51 +0100 Subject: [PATCH] Fix execution problem with Qt5.3. This patch has been inspired from Open Embedded meta-qt5. Signed-off-by: Pierre Le Magourou --- content/SettingsView.qml | 4 ++-- content/Switch.qml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/content/SettingsView.qml b/content/SettingsView.qml index 7944803..a0ddcc8 100644 --- a/content/SettingsView.qml +++ b/content/SettingsView.qml @@ -127,8 +127,8 @@ Item { Switch { text: "Do you l-o-v-e colors?" checked: settings.showColors - onText: "Yes" - offText: "No!" + textON: "Yes" + textOFF: "No!" onCheckedChanged: { settings.showColors = checked; } diff --git a/content/Switch.qml b/content/Switch.qml index 967c03f..66955fc 100644 --- a/content/Switch.qml +++ b/content/Switch.qml @@ -6,8 +6,8 @@ Item { property alias text: textItem.text property bool checked: false - property string onText: "On" - property string offText: "Off" + property string textON: "On" + property string textOFF: "Off" QtObject { id: priv @@ -120,7 +120,7 @@ Item { color: "#000000" font.pixelSize: 18 font.bold: true - text: onText + text: textON } Text { anchors.verticalCenter: parent.verticalCenter @@ -129,7 +129,7 @@ Item { color: "#ffffff" font.pixelSize: 18 font.bold: true - text: offText + text: textOFF } Image { -- 2.1.3 ================================================ FILE: package/qt5cinex/CinematicExperience-demo ================================================ #!/bin/sh exec /usr/share/Qt5/CinematicExperience/Qt5_CinematicExperience "$@" ================================================ FILE: package/qt5cinex/Config.in ================================================ comment "qt5cinex needs an Open(E)GL-capable backend" depends on BR2_PACKAGE_QT5 depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE depends on !BR2_PACKAGE_QT5_GL_AVAILABLE || !BR2_PACKAGE_HAS_LIBEGL config BR2_PACKAGE_QT5CINEX bool "qt5cinex" depends on BR2_PACKAGE_QT5 depends on BR2_PACKAGE_HAS_LIBEGL # qt5base-eglfs depends on BR2_PACKAGE_QT5_GL_AVAILABLE # No comment needed for this option, it's an architecture # dependency. depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE select BR2_PACKAGE_QT5BASE_NETWORK select BR2_PACKAGE_QT5BASE_PNG select BR2_PACKAGE_QT5BASE_WIDGETS select BR2_PACKAGE_QT5BASE_EGLFS select BR2_PACKAGE_QT5GRAPHICALEFFECTS help This application demonstrates the power of Qt5 and few of the new additions available in QtQuick 2.0. http://quitcoding.com/?page=work#cinex if BR2_PACKAGE_QT5CINEX config BR2_PACKAGE_QT5CINEX_HD bool "High-definition version (aka RPi Edition)" help High definition version (1920x1080 resolution) of the application, optimised for Raspberry PI cards. This version can also be run on any platform supported by Qt5. endif ================================================ FILE: package/qt5cinex/qt5cinex.hash ================================================ # Locally computed sha256 0dd602983ced5f7c0cfd5ad0fbfe2b0b7e3c9ff715e4ef23eef818ccc2b6c60b Qt5_CinematicExperience_rpi_1.0.tgz sha256 0e547e0259667915a24e84ade5efdcd0c553f81786734452c2c8dbce19a19f44 Qt5_CinematicExperience_1.0.tgz sha256 bf6206061bcffb43c82999b8845360f223ac5cb4f574219fe95543ffd6755614 README ================================================ FILE: package/qt5cinex/qt5cinex.mk ================================================ ################################################################################ # # qt5cinex # ################################################################################ QT5CINEX_VERSION = 1.0 QT5CINEX_SITE = http://quitcoding.com/download ifeq ($(BR2_PACKAGE_QT5CINEX_HD),y) QT5CINEX_HD = rpi_ endif QT5CINEX_SOURCE = Qt5_CinematicExperience_$(QT5CINEX_HD)$(QT5CINEX_VERSION).tgz QT5CINEX_DEPENDENCIES = qt5declarative QT5CINEX_LICENSE = CC-BY-3.0 QT5CINEX_LICENSE_FILES = README # In addition to the Cinematic Experience itself, we also install a # wrapper shell script to /usr/bin: the Cinematic Experience binary # wants its resource files to be available directly under a contents/ # sub-directory, which isn't very practical to install in /usr/bin/. define QT5CINEX_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/Qt5_CinematicExperience \ $(TARGET_DIR)/usr/share/Qt5/CinematicExperience/Qt5_CinematicExperience $(INSTALL) -D -m 0664 $(@D)/Qt5_CinematicExperience.qml \ $(TARGET_DIR)/usr/share/Qt5/CinematicExperience/Qt5_CinematicExperience.qml cp -dpfr $(@D)/content $(TARGET_DIR)/usr/share/Qt5/CinematicExperience/content $(INSTALL) -m 0755 -D package/qt5cinex/CinematicExperience-demo \ $(TARGET_DIR)/usr/bin/CinematicExperience-demo endef $(eval $(qmake-package)) ================================================ FILE: package/quagga/0001-fix-ipctl-forwarding.patch ================================================ Add definitions for IPCTL_FORWARDING and IP6CTL_FORWARDING. Inspired from http://svn.gnumonks.org/trunk/grouter/build/src/quagga/quagga/quagga-0.99.1-forward_sysctl-2.6.14.patch Signed-off-by: Thomas Petazzoni Index: quagga-0.99.16/zebra/ipforward_sysctl.c =================================================================== --- quagga-0.99.16.orig/zebra/ipforward_sysctl.c 2010-06-20 23:40:45.000000000 +0200 +++ quagga-0.99.16/zebra/ipforward_sysctl.c 2010-06-20 23:41:37.000000000 +0200 @@ -31,6 +31,15 @@ #define MIB_SIZ 4 +/* Fix for recent (2.6.14) kernel headers */ +#ifndef IPCTL_FORWARDING +#define IPCTL_FORWARDING NET_IPV4_FORWARD +#endif + +#ifndef IP6CTL_FORWARDING +#define IP6CTL_FORWARDING NET_IPV6_FORWARDING +#endif + extern struct zebra_privs_t zserv_privs; /* IPv4 forwarding control MIB. */ ================================================ FILE: package/quagga/0002-lib-prefix.h-fix-build-with-gcc-10.patch ================================================ From 01bcd0f7411f86eea44247bf91b48882cae35519 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 21 Sep 2020 23:12:25 +0200 Subject: [PATCH] lib/prefix.h: fix build with gcc 10 Remove __packed to fix the following build failure with gcc 10 (which defaults to -fno-common): CCLD libzebra.la /tmp/instance-1/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: .libs/sockunion.o:(.bss+0x0): multiple definition of `__packed'; .libs/vty.o:(.bss+0x6c): first defined here Fixes: - http://autobuild.buildroot.org/results/82b15cff3f7b943eb93d8270790f1b8561d31d6a Signed-off-by: Fabrice Fontaine [Upstream status: https://bugzilla.quagga.net/show_bug.cgi?id=1014] --- lib/prefix.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/prefix.h b/lib/prefix.h index 2cf0b20b..a5306eee 100644 --- a/lib/prefix.h +++ b/lib/prefix.h @@ -44,7 +44,7 @@ */ struct ethaddr { u_char octet[ETHER_ADDR_LEN]; -} __packed; +}; /* -- 2.28.0 ================================================ FILE: package/quagga/0003-Fix-build-with-gcc-10.patch ================================================ From 7a446434302d7b71211b81b3c6cd12a7b35223d1 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 6 Mar 2021 16:28:37 +0100 Subject: [PATCH] Fix build with gcc 10 Fix the following build failure with gcc 10 (which defaults to -fno-common): CCLD pimd /home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: pimd.o:(.bss+0x8): multiple definition of `qpim_static_route_list'; pim_main.o:(.bss+0x8): first defined here /home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: pimd.o:(.bss+0x28): multiple definition of `qpim_mroute_del_last'; pim_main.o:(.bss+0x10): first defined here Fixes: - http://autobuild.buildroot.org/results/fd5ee2b52a3cfaec268fafd3ffe4c30e51465c7e Signed-off-by: Fabrice Fontaine [Upstream status: https://bugzilla.quagga.net/show_bug.cgi?id=1014] --- pimd/pim_version.h | 2 +- pimd/pimd.c | 1 + pimd/pimd.h | 66 +++++++++++++++++++++++----------------------- 3 files changed, 35 insertions(+), 34 deletions(-) diff --git a/pimd/pim_version.h b/pimd/pim_version.h index ef9f370c..891d4314 100644 --- a/pimd/pim_version.h +++ b/pimd/pim_version.h @@ -25,6 +25,6 @@ #define PIMD_VERSION_STR "0.166" -const char * const PIMD_VERSION; +extern const char * const PIMD_VERSION; #endif /* PIM_VERSION_H */ diff --git a/pimd/pimd.c b/pimd/pimd.c index 97fb2233..d7340cc0 100644 --- a/pimd/pimd.c +++ b/pimd/pimd.c @@ -50,6 +50,7 @@ int64_t qpim_mroute_socket_creation = 0; /* timestamp of creat struct thread *qpim_mroute_socket_reader = 0; int qpim_mroute_oif_highest_vif_index = -1; struct list *qpim_channel_oil_list = 0; +struct in_addr qpim_all_pim_routers_addr; int qpim_t_periodic = PIM_DEFAULT_T_PERIODIC; /* Period between Join/Prune Messages */ struct list *qpim_upstream_list = 0; struct zclient *qpim_zclient_update = 0; diff --git a/pimd/pimd.h b/pimd/pimd.h index 9a7e6058..8b3496fd 100644 --- a/pimd/pimd.h +++ b/pimd/pimd.h @@ -68,39 +68,39 @@ #define PIM_MASK_PIM_J_P (1 << 12) #define PIM_MASK_STATIC (1 << 13) -const char *const PIM_ALL_SYSTEMS; -const char *const PIM_ALL_ROUTERS; -const char *const PIM_ALL_PIM_ROUTERS; -const char *const PIM_ALL_IGMP_ROUTERS; - -struct thread_master *master; -uint32_t qpim_debugs; -int qpim_mroute_socket_fd; -int64_t qpim_mroute_socket_creation; /* timestamp of creation */ -struct thread *qpim_mroute_socket_reader; -int qpim_mroute_oif_highest_vif_index; -struct list *qpim_channel_oil_list; /* list of struct channel_oil */ -struct in_addr qpim_all_pim_routers_addr; -int qpim_t_periodic; /* Period between Join/Prune Messages */ -struct list *qpim_upstream_list; /* list of struct pim_upstream */ -struct zclient *qpim_zclient_update; -struct zclient *qpim_zclient_lookup; -struct pim_assert_metric qpim_infinite_assert_metric; -long qpim_rpf_cache_refresh_delay_msec; -struct thread *qpim_rpf_cache_refresher; -int64_t qpim_rpf_cache_refresh_requests; -int64_t qpim_rpf_cache_refresh_events; -int64_t qpim_rpf_cache_refresh_last; -struct in_addr qpim_inaddr_any; -struct list *qpim_ssmpingd_list; /* list of struct ssmpingd_sock */ -struct in_addr qpim_ssmpingd_group_addr; -int64_t qpim_scan_oil_events; -int64_t qpim_scan_oil_last; -int64_t qpim_mroute_add_events; -int64_t qpim_mroute_add_last; -int64_t qpim_mroute_del_events; -int64_t qpim_mroute_del_last; -struct list *qpim_static_route_list; /* list of routes added statically */ +extern const char *const PIM_ALL_SYSTEMS; +extern const char *const PIM_ALL_ROUTERS; +extern const char *const PIM_ALL_PIM_ROUTERS; +extern const char *const PIM_ALL_IGMP_ROUTERS; + +extern struct thread_master *master; +extern uint32_t qpim_debugs; +extern int qpim_mroute_socket_fd; +extern int64_t qpim_mroute_socket_creation; /* timestamp of creation */ +extern struct thread *qpim_mroute_socket_reader; +extern int qpim_mroute_oif_highest_vif_index; +extern struct list *qpim_channel_oil_list; /* list of struct channel_oil */ +extern struct in_addr qpim_all_pim_routers_addr; +extern int qpim_t_periodic; /* Period between Join/Prune Messages */ +extern struct list *qpim_upstream_list; /* list of struct pim_upstream */ +extern struct zclient *qpim_zclient_update; +extern struct zclient *qpim_zclient_lookup; +extern struct pim_assert_metric qpim_infinite_assert_metric; +extern long qpim_rpf_cache_refresh_delay_msec; +extern struct thread *qpim_rpf_cache_refresher; +extern int64_t qpim_rpf_cache_refresh_requests; +extern int64_t qpim_rpf_cache_refresh_events; +extern int64_t qpim_rpf_cache_refresh_last; +extern struct in_addr qpim_inaddr_any; +extern struct list *qpim_ssmpingd_list; /* list of struct ssmpingd_sock */ +extern struct in_addr qpim_ssmpingd_group_addr; +extern int64_t qpim_scan_oil_events; +extern int64_t qpim_scan_oil_last; +extern int64_t qpim_mroute_add_events; +extern int64_t qpim_mroute_add_last; +extern int64_t qpim_mroute_del_events; +extern int64_t qpim_mroute_del_last; +extern struct list *qpim_static_route_list; /* list of routes added statically */ #define PIM_JP_HOLDTIME (qpim_t_periodic * 7 / 2) -- 2.30.0 ================================================ FILE: package/quagga/Config.in ================================================ config BR2_PACKAGE_QUAGGA bool "quagga" depends on BR2_USE_MMU # fork() help Routing software suite, providing implementations of OSPFv2, OSPFv3 (IPv6), RIP v1 and v2, RIPng (IPv6) and BGPv4+. http://www.quagga.net/ if BR2_PACKAGE_QUAGGA config BR2_PACKAGE_QUAGGA_ZEBRA bool "zebra daemon" help Build zebra daemon. config BR2_PACKAGE_QUAGGA_TCP_ZEBRA bool "Use TCP sockets between zebra and protocol daemons" depends on BR2_PACKAGE_QUAGGA_ZEBRA help Use a TCP socket to communicate between zebra (supervisor) and the different protocol daemons. You'll want this enabled if zebra and the protocol daemon(s) run on different hosts. config BR2_PACKAGE_QUAGGA_BGPD bool "BGPv4+ protocol" help Build bgpd daemon. config BR2_PACKAGE_QUAGGA_BGP_ANNOUNCE bool "BGP route announcement" depends on BR2_PACKAGE_QUAGGA_BGPD config BR2_PACKAGE_QUAGGA_ISISD bool "IS-IS protocol" help Enable isisd support in quagga. config BR2_PACKAGE_QUAGGA_NHRPD bool "NHRPD protocol" select BR2_PACKAGE_C_ARES help Build Next Hop Routing Protocol daemon. config BR2_PACKAGE_QUAGGA_OSPFD bool "OSPFv2 protocol" help Build ospfd daemon. config BR2_PACKAGE_QUAGGA_OSPF6D bool "OSPFv3 (IPv6) protocol" help Build ospf6d daemon. config BR2_PACKAGE_QUAGGA_RIPD bool "RIPv2/v3 protocol" help Build ripd daemon. config BR2_PACKAGE_QUAGGA_RIPNGD bool "RIPng (IPv6) protocol" help Build ripngd daemon. config BR2_PACKAGE_QUAGGA_PIMD bool "PIMd protocol" help Provides IPv4 PIM-SSM multicast routing. config BR2_PACKAGE_QUAGGA_WATCHQUAGGA bool "Build watchquagga" help Build and install watchquagga, a zebra/protocol daemon supervisor. config BR2_PACKAGE_QUAGGA_VTYSH bool "Build vtysh" select BR2_PACKAGE_READLINE help Build and install vtysh, a vty shell for Quagga. config BR2_PACKAGE_QUAGGA_SNMP bool "SNMP support" depends on BR2_USE_MMU # net-snmp select BR2_PACKAGE_NETSNMP help Make quagga information available via SNMP SMUX. comment "AgentX support must be enabled in net-snmp or the build will break" depends on BR2_PACKAGE_QUAGGA_SNMP endif ================================================ FILE: package/quagga/quagga.hash ================================================ # Locally calculated after checking pgp signature sha256 e364c082c3309910e1eb7b068bf39ee298e2f2f3f31a6431a5c115193bd653d3 quagga-1.2.4.tar.gz # Hash for license file sha256 b39c1bad4e51e2a3389cd25fc4addebe41a3ae7c11100795683f9330de1536e5 COPYING ================================================ FILE: package/quagga/quagga.mk ================================================ ################################################################################ # # quagga # ################################################################################ QUAGGA_VERSION = 1.2.4 QUAGGA_SITE = http://download.savannah.gnu.org/releases/quagga QUAGGA_INSTALL_STAGING = YES QUAGGA_DEPENDENCIES = host-gawk host-pkgconf QUAGGA_LICENSE = GPL-2.0+ QUAGGA_LICENSE_FILES = COPYING QUAGGA_CPE_ID_VENDOR = quagga QUAGGA_SELINUX_MODULES = zebra # 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 # quagga has its own internal copy of getopt_long. To avoid conflicts with libc's # getopt, we need to make sure that the getopt function itself is also built. QUAGGA_CONF_ENV = \ CFLAGS="$(TARGET_CFLAGS) -DREALLY_NEED_PLAIN_GETOPT" ifeq ($(BR2_PACKAGE_LIBCAP),y) QUAGGA_CONF_OPTS += --enable-capabilities QUAGGA_DEPENDENCIES += libcap else QUAGGA_CONF_OPTS += --disable-capabilities endif ifeq ($(BR2_PACKAGE_PROTOBUF_C),y) QUAGGA_CONF_OPTS += --enable-protobuf QUAGGA_DEPENDENCIES += protobuf-c else QUAGGA_CONF_OPTS += --disable-protobuf endif QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_ZEBRA),--enable-zebra,--disable-zebra) 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 --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_ZEBRA),--enable-tcp-zebra,--disable-tcp-zebra) 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 # In order for the QUAGGA_PERMISSIONS variable above to work, # /etc/quagga has to exist. However, this package without any # sub-option enabled will not create /etc/quagga, so let's create it # unconditionally in a post-install hook, in case it hasn't been # already created by the quagga installation. define QUAGGA_CREATE_ETC_QUAGGA mkdir -p $(TARGET_DIR)/etc/quagga endef QUAGGA_POST_INSTALL_TARGET_HOOKS += QUAGGA_CREATE_ETC_QUAGGA ifeq ($(BR2_PACKAGE_QUAGGA_NHRPD),y) QUAGGA_CONF_OPTS += --enable-nhrpd QUAGGA_DEPENDENCIES += c-ares else QUAGGA_CONF_OPTS += --disable-nhrpd endif ifeq ($(BR2_PACKAGE_QUAGGA_SNMP),y) QUAGGA_CONF_ENV += ac_cv_path_NETSNMP_CONFIG=$(STAGING_DIR)/usr/bin/net-snmp-config QUAGGA_CONF_OPTS += --enable-snmp=agentx QUAGGA_DEPENDENCIES += netsnmp endif ifeq ($(BR2_PACKAGE_QUAGGA_VTYSH),y) QUAGGA_CONF_OPTS += --enable-vtysh QUAGGA_DEPENDENCIES += readline else QUAGGA_CONF_OPTS += --disable-vtysh endif 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)) ================================================ FILE: package/quagga/quagga@.service ================================================ [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 ================================================ FILE: package/quagga/quagga_tmpfiles.conf ================================================ d /var/run/quagga/ 1755 quagga quagga - ================================================ FILE: package/quazip/Config.in ================================================ config BR2_PACKAGE_QUAZIP bool "quazip" depends on BR2_PACKAGE_QT5 select BR2_PACKAGE_ZLIB help QuaZIP is a simple C++ wrapper over Gilles Vollant's ZIP/UNZIP package that can be used to access ZIP archives. It uses the Qt toolkit. http://quazip.sourceforge.net ================================================ FILE: package/quazip/quazip.hash ================================================ # Locally computed sha256 54edce9c11371762bd4f0003c2937b5d8806a2752dd9c0fd9085e90792612ad0 quazip-1.1.tar.gz sha256 3aab586a5bdc8ffbbf033c7106550fd3e849fd8888e33cbc9bfd30a433c4b1cb COPYING ================================================ FILE: package/quazip/quazip.mk ================================================ ################################################################################ # # quazip # ################################################################################ QUAZIP_VERSION = 1.1 QUAZIP_SITE = $(call github,stachenov,quazip,v$(QUAZIP_VERSION)) QUAZIP_INSTALL_STAGING = YES QUAZIP_DEPENDENCIES = \ zlib \ qt5base QUAZIP_LICENSE = LGPL-2.1 QUAZIP_LICENSE_FILES = COPYING $(eval $(cmake-package)) ================================================ FILE: package/quickjs/Config.in ================================================ config BR2_PACKAGE_QUICKJS bool "quickjs" depends on !BR2_nios2 # fenv.h lacks FE_{DOWN,UP}WARD on nios2 depends on !BR2_STATIC_LIBS # No way to check for fenv support. depends on !BR2_TOOLCHAIN_USES_UCLIBC depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C11/stdatomic.h depends on BR2_HOST_GCC_AT_LEAST_4_9 # C11/stdatomic.h depends on BR2_USE_MMU # fork() help QuickJS is a small and embeddable Javascript engine. It supports the ES2020 specification including modules, asynchronous generators, proxies and BigInt. https://bellard.org/quickjs/ comment "quickjs needs a glibc or musl toolchain w/ gcc >= 4.9, host gcc >= 4.9, dynamic library" depends on !BR2_nios2 depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_UCLIBC || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/quickjs/quickjs.hash ================================================ # Locally calculated sha256 a45bface4c3379538dea8533878d694e289330488ea7028b105f72572fe7fe1a quickjs-2021-03-27.tar.xz sha256 f41baf09eef895d468d18c23055d74f711e4b8b2641cef279b5d71285c07bfe8 LICENSE ================================================ FILE: package/quickjs/quickjs.mk ================================================ ################################################################################ # # quickjs # ################################################################################ QUICKJS_VERSION = 2021-03-27 QUICKJS_SOURCE = quickjs-$(QUICKJS_VERSION).tar.xz QUICKJS_SITE = https://bellard.org/quickjs QUICKJS_LICENSE = MIT QUICKJS_LICENSE_FILES = LICENSE QUICKJS_INSTALL_STAGING = YES ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) QUICKJS_EXTRA_LIBS += -latomic endif define QUICKJS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ CROSS_PREFIX="$(TARGET_CROSS)" \ EXTRA_LIBS="$(QUICKJS_EXTRA_LIBS)" \ all endef define QUICKJS_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ CROSS_PREFIX="$(TARGET_CROSS)" \ EXTRA_LIBS="$(QUICKJS_EXTRA_LIBS)" \ DESTDIR=$(STAGING_DIR) \ STRIP=/bin/true \ prefix=/usr \ install endef define QUICKJS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ CROSS_PREFIX="$(TARGET_CROSS)" \ EXTRA_LIBS="$(QUICKJS_EXTRA_LIBS)" \ DESTDIR=$(TARGET_DIR) \ STRIP=/bin/true \ prefix=/usr \ install endef $(eval $(generic-package)) ================================================ FILE: package/quota/0001-quota-Use-realloc-3-instead-of-reallocarray-3.patch ================================================ From 02b222a335527f1031cc9495d8c5ebc1bc5b1d4e Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 11 Nov 2020 15:00:47 +0100 Subject: [PATCH] quota: Use realloc(3) instead of reallocarray(3) reallocarray(3) has been added to glibc relatively recently (version 2.26, from 2017) and apparently not all users run new enough glibc. Just use realloc(3) for now since in this case there's no real risk of overflow. Signed-off-by: Fabrice Fontaine Signed-off-by: Jan Kara [Retrieved from: https://sourceforge.net/p/linuxquota/code/ci/02b222a335527f1031cc9495d8c5ebc1bc5b1d4e] --- quota.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quota.c b/quota.c index a6ed61f..a60de12 100644 --- a/quota.c +++ b/quota.c @@ -385,7 +385,7 @@ int main(int argc, char **argv) break; case 259: fscount++; - fsnames = reallocarray(fsnames, fscount, sizeof(char *)); + fsnames = realloc(fsnames, fscount * sizeof(char *)); if (!fsnames) die(1, _("Not enough memory for filesystem names")); fsnames[fscount - 1] = optarg; -- 2.28.0 ================================================ FILE: package/quota/Config.in ================================================ config BR2_PACKAGE_QUOTA bool "quota" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_TOOLCHAIN_HAS_THREADS # libtirpc select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC help Implementation of the disk quota system. http://sourceforge.net/projects/linuxquota/ comment "quota needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || \ !(BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_HAS_NATIVE_RPC) ================================================ FILE: package/quota/quota.hash ================================================ # From http://sourceforge.net/projects/linuxquota/files/quota-tools/4.06/ (click on info button) md5 aef94648438832b684978d46fdf75110 quota-4.06.tar.gz sha1 98288699cc14da42f762301c2b6731ec7c777681 quota-4.06.tar.gz # Locally calculated sha256 2f3e03039f378d4f0d97acdb49daf581dcaad64d2e1ddf129495fd579fbd268d quota-4.06.tar.gz sha256 32a5fd41e7a257f7f0373988ea8d45cebdbf376060703c242c11c000751b1203 COPYING ================================================ FILE: package/quota/quota.mk ================================================ ################################################################################ # # quota # ################################################################################ QUOTA_VERSION = 4.06 QUOTA_SITE = http://downloads.sourceforge.net/project/linuxquota/quota-tools/$(QUOTA_VERSION) QUOTA_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) host-nfs-utils QUOTA_LICENSE = GPL-2.0+ QUOTA_LICENSE_FILES = COPYING QUOTA_CPE_ID_VENDOR = jan_kara QUOTA_CPE_ID_PRODUCT = linux_diskquota QUOTA_SELINUX_MODULES = quota QUOTA_CONF_ENV = LIBS="$(TARGET_NLS_LIBS)" QUOTA_CONF_OPTS = --disable-pie ifeq ($(BR2_PACKAGE_DBUS)$(BR2_PACKAGE_LIBNL),yy) QUOTA_DEPENDENCIES += host-pkgconf dbus libnl QUOTA_CONF_OPTS += --enable-netlink else QUOTA_CONF_OPTS += --disable-netlink endif ifeq ($(BR2_PACKAGE_E2FSPROGS),y) QUOTA_DEPENDENCIES += host-pkgconf e2fsprogs QUOTA_CONF_OPTS += --enable-ext2direct else QUOTA_CONF_OPTS += --disable-ext2direct endif ifeq ($(BR2_PACKAGE_LIBTIRPC),y) QUOTA_DEPENDENCIES += libtirpc host-pkgconf endif ifeq ($(BR2_PACKAGE_OPENLDAP):$(BR2_STATIC_LIBS),y:) QUOTA_DEPENDENCIES += openldap QUOTA_CONF_OPTS += --enable-ldapmail else QUOTA_CONF_OPTS += --disable-ldapmail endif $(eval $(autotools-package)) ================================================ FILE: package/quotatool/0001-fix-missing-__P-definition-for-musl-compile.patch ================================================ From 0e096badc901f755f3bcefabdc57091725a5a0c5 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 1 Feb 2018 23:50:43 +0100 Subject: [PATCH] fix missing __P definition for musl compile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: In file included from src/quota.h:40:0, from src/parse.c:26: src/linux/linux_quota.h:120:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__P’ long quotactl __P((int, const char *, qid_t, caddr_t)); ^~~ Signed-off-by: Peter Seiderer --- src/linux/linux_quota.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/linux/linux_quota.h b/src/linux/linux_quota.h index 11f9871..2b29a89 100644 --- a/src/linux/linux_quota.h +++ b/src/linux/linux_quota.h @@ -14,6 +14,7 @@ #ifndef LINUX_QUOTA_H #define LINUX_QUOTA_H +#include #include #include "system.h" -- 2.16.1 ================================================ FILE: package/quotatool/Config.in ================================================ config BR2_PACKAGE_QUOTATOOL bool "quotatool" help Quotatool is a utility to manipulate filesystem quotas from the commandline. http://quotatool.ekenberg.se/ ================================================ FILE: package/quotatool/quotatool.hash ================================================ # Locally computed sha256 e53adc480d54ae873d160dc0e88d78095f95d9131e528749fd982245513ea090 quotatool-1.6.2.tar.gz # Hash for license files: sha256 94686eeb98a40edc64106c6f8644068d8a08816a510a3cde75e50f1bf470564d COPYING ================================================ FILE: package/quotatool/quotatool.mk ================================================ ################################################################################ # # quotatool # ################################################################################ QUOTATOOL_VERSION = 1.6.2 QUOTATOOL_SITE = http://quotatool.ekenberg.se QUOTATOOL_LICENSE = GPL-2.0 QUOTATOOL_LICENSE_FILES = COPYING # men="" allows to disable installing the man pages, which fails # because the package Makefile doesn't create the appropriate # directory. QUOTATOOL_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install men="" $(eval $(autotools-package)) ================================================ FILE: package/qwt/Config.in ================================================ config BR2_PACKAGE_QWT bool "qwt" depends on BR2_PACKAGE_QT5 select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_WIDGETS # printsupport select BR2_PACKAGE_QT5BASE_CONCURRENT help Qwt is a graphics extension to the Qt GUI application framework. It provides a 2D plotting widget and more. http://qwt.sourceforge.net/ if BR2_PACKAGE_QWT config BR2_PACKAGE_QWT_SVG bool "SVG support" select BR2_PACKAGE_QT5SVG config BR2_PACKAGE_QWT_MATHML bool "MathML support" config BR2_PACKAGE_QWT_OPENGL bool "OpenGL support" depends on BR2_PACKAGE_QT5_GL_AVAILABLE select BR2_PACKAGE_QT5BASE_OPENGL select BR2_PACKAGE_QT5BASE_OPENGL_LIB endif ================================================ FILE: package/qwt/qwt.hash ================================================ # From https://sourceforge.net/projects/qwt/files/qwt/6.1.6 md5 cc71be5d6c33c2fc19ae8082ccdd3e83 qwt-6.1.6.tar.bz2 sha1 b1f17a86c9b1b0790a0c0067ef69fb6277efac79 qwt-6.1.6.tar.bz2 # Locally computed sha256 99460d31c115ee4117b0175d885f47c2c590d784206f09815dc058fbe5ede1f6 qwt-6.1.6.tar.bz2 sha256 d8737db330e1eeb439962e11654ab7f1aece3561d9415454a8c538643824ede6 COPYING ================================================ FILE: package/qwt/qwt.mk ================================================ ################################################################################ # # qwt # ################################################################################ QWT_VERSION = 6.1.6 QWT_SOURCE = qwt-$(QWT_VERSION).tar.bz2 QWT_SITE = http://downloads.sourceforge.net/project/qwt/qwt/$(QWT_VERSION) QWT_INSTALL_STAGING = YES QWT_LICENSE = LGPL-2.1 with exceptions QWT_LICENSE_FILES = COPYING QWT_CONFIG = 's%QWT_INSTALL_PREFIX.*/usr/local/.*%QWT_INSTALL_PREFIX = /usr%' QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDesigner.*$$/\# QWT_CONFIG += QwtDesigner/' QWT_CONFIG += -e 's%/features%/mkspecs/features%' ifeq ($(BR2_PACKAGE_QWT_SVG),y) QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtSvg.*$$/QWT_CONFIG += QwtSvg/' QWT_DEPENDENCIES += qt5svg else QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtSvg.*$$/\# QWT_CONFIG += QwtSvg/' endif ifeq ($(BR2_PACKAGE_QWT_MATHML),y) QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtMathML.*$$/QWT_CONFIG += QwtMathML/' else QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtMathML.*$$/\# QWT_CONFIG += QwtMathML/' endif ifeq ($(BR2_PACKAGE_QWT_OPENGL),y) QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtOpenGL.*$$/QWT_CONFIG += QwtOpenGL/' else QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtOpenGL.*$$/\# QWT_CONFIG += QwtOpenGL/' endif ifeq ($(BR2_STATIC_LIBS),y) QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/\# QWT_CONFIG += QwtDll/' else QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/QWT_CONFIG += QwtDll/' endif define QWT_TWEAK_QWTCONFIG_PRI $(SED) $(QWT_CONFIG) $(@D)/qwtconfig.pri endef QWT_PRE_CONFIGURE_HOOKS += QWT_TWEAK_QWTCONFIG_PRI # After installation, we fixup the INSTALL_PREFIX in qwtconfig.pri so # that when building with qmake, -L$(STAGING_DIR)/usr/lib is used and # not -L/usr/lib. define QWT_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install INSTALL_ROOT=$(STAGING_DIR) $(SED) "s%QWT_INSTALL_PREFIX = .*%QWT_INSTALL_PREFIX = $(STAGING_DIR)/usr%" \ $(STAGING_DIR)/usr/mkspecs/features/qwtconfig.pri endef define QWT_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install INSTALL_ROOT=$(TARGET_DIR) rm -Rf $(TARGET_DIR)/usr/mkspecs endef $(eval $(qmake-package)) ================================================ FILE: package/rabbitmq-c/Config.in ================================================ config BR2_PACKAGE_RABBITMQ_C bool "rabbitmq-c" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS help This is a C-language AMQP client library for use with v2.0+ of the RabbitMQ broker. https://github.com/alanxz/rabbitmq-c comment "rabbitmq-c needs a toolchain w/ dynamic library, threads" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/rabbitmq-c/rabbitmq-c.hash ================================================ # Locally calculated sha256 437d45e0e35c18cf3e59bcfe5dfe37566547eb121e69fca64b98f5d2c1c2d424 rabbitmq-c-0.11.0.tar.gz sha256 94a12c906acb31a66c2c8a6c1b6e46cab52bc5694c5ada2a06d86b05d3d3f422 LICENSE-MIT ================================================ FILE: package/rabbitmq-c/rabbitmq-c.mk ================================================ ################################################################################ # # rabbitmq-c # ################################################################################ RABBITMQ_C_VERSION = 0.11.0 RABBITMQ_C_SITE = $(call github,alanxz,rabbitmq-c,v$(RABBITMQ_C_VERSION)) RABBITMQ_C_LICENSE = MIT RABBITMQ_C_LICENSE_FILES = LICENSE-MIT RABBITMQ_C_CPE_ID_VENDOR = rabbitmq-c_project RABBITMQ_C_INSTALL_STAGING = YES RABBITMQ_C_CONF_OPTS = \ -DBUILD_API_DOCS=OFF \ -DBUILD_TOOLS_DOCS=OFF # BUILD_SHARED_LIBS is handled in pkg-cmake.mk as it is a generic cmake variable ifeq ($(BR2_SHARED_STATIC_LIBS),y) RABBITMQ_C_CONF_OPTS += -DBUILD_STATIC_LIBS=ON else ifeq ($(BR2_SHARED_LIBS),y) RABBITMQ_C_CONF_OPTS += -DBUILD_STATIC_LIBS=OFF endif ifeq ($(BR2_PACKAGE_OPENSSL),y) RABBITMQ_C_CONF_OPTS += -DENABLE_SSL_SUPPORT=ON RABBITMQ_C_DEPENDENCIES += openssl else RABBITMQ_C_CONF_OPTS += -DENABLE_SSL_SUPPORT=OFF endif ifeq ($(BR2_PACKAGE_POPT),y) RABBITMQ_C_CONF_OPTS += -DBUILD_TOOLS=ON RABBITMQ_C_DEPENDENCIES += popt else RABBITMQ_C_CONF_OPTS += -DBUILD_TOOLS=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/rabbitmq-server/Config.in ================================================ config BR2_PACKAGE_RABBITMQ_SERVER bool "rabbitmq-server" depends on BR2_PACKAGE_ERLANG select BR2_PACKAGE_LIBXSLT select BR2_PACKAGE_OPENSSL # Required to build Erlang's crypto and ssl # applications help High-performance AMQP-compliant message broker written in Erlang. http://www.rabbitmq.com comment "rabbitmq-server needs erlang" depends on !BR2_PACKAGE_ERLANG ================================================ FILE: package/rabbitmq-server/S50rabbitmq-server ================================================ #!/bin/sh # # Start/stop rabbitmq-server # INSTALLUSER=rabbitmq RUNDIR=/var/run/rabbitmq LOGDIR=/var/log/rabbitmq case "$1" in start) install -d -o "$INSTALLUSER" -g "$INSTALLUSER" "$RUNDIR" || exit 1 install -d -o "$INSTALLUSER" -g "$INSTALLUSER" "$LOGDIR" || exit 1 printf "Starting rabbitmq-server: " su -c "/usr/sbin/rabbitmq-server -detached" - "$INSTALLUSER" 2>/dev/null [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping rabbitmq-server: " su -c "/usr/sbin/rabbitmqctl stop" - "$INSTALLUSER" [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart|reload) "$0" stop || true "$0" start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: package/rabbitmq-server/rabbitmq-server.hash ================================================ # Locally computed sha256 8c6729b985cb21bab13363b1c806cfa15845b046be9e641ab1496bd5a1eaf19d rabbitmq-server-3.8.2.tar.xz sha256 a96b7ed2e7def9c86d84d9ca0e79e4a55fc8e6e202ac89caa4f9791ccb9cf2a3 LICENSE sha256 acd82bfce369b066e7e612197206da4fa38b8614486658775d0b6f66ac30114a LICENSE-APACHE2 sha256 aac73b3148f6d1d7111dbca32099f68d26c644c6813ae1e4f05f6579aa2663fe LICENSE-APACHE2-excanvas sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE-APACHE2-ExplorerCanvas sha256 b04c8850fdf64d17233f0acbe4eb632f03bd663094233c949bdbe788858bb841 LICENSE-APL2-Stomp-Websocket sha256 3c69f8327beaaa45d2f3d7831edf211d0f37d1d9c7754267478320697e1882e9 LICENSE-BSD-base64js sha256 af7b5cdf5e16446c64d6e755b2a6386e38c56500ae27587edcd94c96d330ee35 LICENSE-BSD-recon sha256 7615ea96ccddc822655cb48a9d2a5cac2f176fca7fe28131af934ce21f48cbc8 LICENSE-erlcloud sha256 c69d6e3fc8c51730a706aba5dcd5df978cb0c7b20c7bfe788e063cbc7fc1b234 LICENSE-httpc_aws sha256 c0e940d13f488849c27963e7d87f3fc27a2f5843cfd49148029a558251014689 LICENSE-ISC-cowboy sha256 af399cded8f343407fb68eeb51755676e9700c65c380f073376afd8d20f428a1 LICENSE-MIT-EJS sha256 b2614726fe57ee8267324ecfdebe6e578e5aaa5a77a7f84b9d26463c058147d1 LICENSE-MIT-EJS10 sha256 0f26e121a7a1dab675bd8474cdc517428863036a668260033467c7278f488cd4 LICENSE-MIT-Erlware-Commons sha256 52cb566b16d84314b92b91361ed072eaaf166e8d3dfa3d0fd3577613925f205c LICENSE-MIT-Flot sha256 8cb9a8ff8cafd6a085fd4f086e797b719c334a621df19354dc286591003da3f5 LICENSE-MIT-jQuery sha256 44f25d51c90aa55dd4b3ba7f3d6e9a594073fcbefe651e16e74cabd48005b476 LICENSE-MIT-jQuery164 sha256 fc93cc7361401413887f4c1349e4b0be4bcef936eaafbcc7485038abe197c692 LICENSE-MIT-Mochi sha256 b80081a5bb527dbe6b79f18a40f44b4ba6303e4856cadd249672c97b90e6dd7c LICENSE-MIT-Sammy sha256 cfc50fa0d7ee02c2d71c8866ef211a4814e8c89c50b725d27e8bdf550291a9ed LICENSE-MIT-Sammy060 sha256 c008551400c9629d5f35a4f4fb6a671cf574d41cb365ae57e3d90341e51b3bdd LICENSE-MPL sha256 c008551400c9629d5f35a4f4fb6a671cf574d41cb365ae57e3d90341e51b3bdd LICENSE-MPL-RabbitMQ sha256 66a3107d5ad6a058aab753eaac2047ccb2ed0e39465dd0fe5844da3e300d5172 LICENSE-MPL2 sha256 c69d6e3fc8c51730a706aba5dcd5df978cb0c7b20c7bfe788e063cbc7fc1b234 LICENSE-rabbitmq_aws ================================================ FILE: package/rabbitmq-server/rabbitmq-server.mk ================================================ ################################################################################ # # rabbitmq-server # ################################################################################ RABBITMQ_SERVER_VERSION = 3.8.2 RABBITMQ_SERVER_SITE = https://github.com/rabbitmq/rabbitmq-server/releases/download/v$(RABBITMQ_SERVER_VERSION) RABBITMQ_SERVER_SOURCE = rabbitmq-server-$(RABBITMQ_SERVER_VERSION).tar.xz RABBITMQ_SERVER_LICENSE = MPL-1.1, Apache-2.0, BSD-3-Clause, BSD-2-Clause, MIT, MPL-2.0, ISC RABBITMQ_SERVER_LICENSE_FILES = \ LICENSE \ LICENSE-APACHE2 \ LICENSE-APACHE2-excanvas \ LICENSE-APACHE2-ExplorerCanvas \ LICENSE-APL2-Stomp-Websocket \ LICENSE-BSD-base64js \ LICENSE-BSD-recon \ LICENSE-erlcloud \ LICENSE-httpc_aws \ LICENSE-ISC-cowboy \ LICENSE-MIT-EJS \ LICENSE-MIT-EJS10 \ LICENSE-MIT-Erlware-Commons \ LICENSE-MIT-Flot \ LICENSE-MIT-jQuery \ LICENSE-MIT-jQuery164 \ LICENSE-MIT-Mochi \ LICENSE-MIT-Sammy \ LICENSE-MIT-Sammy060 \ LICENSE-MPL \ LICENSE-MPL-RabbitMQ \ LICENSE-MPL2 \ LICENSE-rabbitmq_aws RABBITMQ_SERVER_CPE_ID_VENDOR = pivotal_software RABBITMQ_SERVER_CPE_ID_PRODUCT = rabbitmq RABBITMQ_SERVER_SELINUX_MODULES = rabbitmq RABBITMQ_SERVER_DEPENDENCIES = host-elixir host-libxslt host-zip erlang libxslt RABBITMQ_SERVER_TARGET_BINS = rabbitmq-plugins rabbitmq-server rabbitmqctl rabbitmq-env rabbitmq-defaults define RABBITMQ_SERVER_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define RABBITMQ_SERVER_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) PREFIX=$(TARGET_DIR)/usr -C $(@D) install for bin in $(RABBITMQ_SERVER_TARGET_BINS); do \ ln -sf ../lib/erlang/lib/rabbitmq_server-$(RABBITMQ_SERVER_VERSION)/sbin/$$bin \ $(TARGET_DIR)/usr/sbin/$$bin; \ done endef define RABBITMQ_SERVER_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/rabbitmq-server/rabbitmq-server.service \ $(TARGET_DIR)/usr/lib/systemd/system/rabbitmq-server.service endef define RABBITMQ_SERVER_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/rabbitmq-server/S50rabbitmq-server \ $(TARGET_DIR)/etc/init.d/S50rabbitmq-server endef define RABBITMQ_SERVER_USERS rabbitmq -1 rabbitmq -1 * /var/lib/rabbitmq /bin/sh - rabbitmq-server daemon endef $(eval $(generic-package)) ================================================ FILE: package/rabbitmq-server/rabbitmq-server.service ================================================ [Unit] Description=RabbitMQ Messaging Server After=syslog.target network.target [Service] Type=simple User=rabbitmq Group=rabbitmq Environment=HOME=/var/lib/rabbitmq WorkingDirectory=/var/lib/rabbitmq LogsDirectory=/var/log/rabbitmq ExecStart=/usr/sbin/rabbitmq-server ExecStop=/usr/sbin/rabbitmqctl stop [Install] WantedBy=multi-user.target ================================================ FILE: package/racehound/0001-Fix-module-install-path-lib-instead-of-usr-lib-prefi.patch ================================================ From 4f8ed39ddaf17c7dd4ddbdb88e67097f00c98173 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 16 Jul 2015 23:11:25 +0200 Subject: [PATCH] Fix module install path (/lib instead of /usr/lib prefix) Signed-off-by: Peter Seiderer --- cmake/modules/path_prefixes.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/modules/path_prefixes.cmake b/cmake/modules/path_prefixes.cmake index 3cb1fe2..9dc50a4 100644 --- a/cmake/modules/path_prefixes.cmake +++ b/cmake/modules/path_prefixes.cmake @@ -113,7 +113,7 @@ set(RH_INSTALL_PREFIX_DOC # Set derivative prefixes # additional, 1 -set(RH_INSTALL_PREFIX_KMODULE "${RH_INSTALL_PREFIX_LIB}/modules/${KBUILD_VERSION_STRING}/misc") +set(RH_INSTALL_PREFIX_KMODULE "/lib/modules/${KBUILD_VERSION_STRING}/misc") # Another variant #"${RH_INSTALL_PREFIX_LIB}/modules/${KBUILD_VERSION_STRING}/extra") # additional, 2 -- 2.1.4 ================================================ FILE: package/racehound/Config.in ================================================ config BR2_PACKAGE_RACEHOUND bool "racehound" depends on BR2_LINUX_KERNEL depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # elfutils depends on !BR2_STATIC_LIBS # elfutils depends on BR2_TOOLCHAIN_HAS_THREADS # elfutils depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils # only x86/x86_64 supported depends on BR2_i386 || BR2_x86_64 select BR2_PACKAGE_ELFUTILS select BR2_LINUX_NEEDS_MODULES # not using kernel-module infra help RaceHound can be used to detect data races in the Linux kernel on x86. RaceHound needs the following kernel configurations enabled: - CONFIG_X86_32 or CONFIG_X86_64 - CONFIG_MODULES - CONFIG_MODULE_UNLOAD - CONFIG_SYSFS - CONFIG_DEBUG_FS - CONFIG_KALLSYMS - CONFIG_KALLSYMS_ALL - CONFIG_KPROBES https://github.com/winnukem/racehound comment "racehound needs an Linux kernel >= 3.14 to be built" depends on !BR2_LINUX_KERNEL depends on BR2_i386 || BR2_x86_64 comment "racehound needs a uClibc or glibc toolchain w/ C++, wchar, dynamic library, threads" depends on BR2_i386 || BR2_x86_64 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || BR2_STATIC_LIBS \ || !BR2_TOOLCHAIN_HAS_THREADS \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) ================================================ FILE: package/racehound/racehound.hash ================================================ # locally computed sha256 935bc4a7c7b645dee5b905f6e97d0db3f0ac4f48e71d15f4e3982811017ac43c racehound-f09f06fcc3c77c8c5541be3ba5be80aa8148ce0c.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/racehound/racehound.mk ================================================ ################################################################################ # # racehound # ################################################################################ RACEHOUND_VERSION = f09f06fcc3c77c8c5541be3ba5be80aa8148ce0c RACEHOUND_SITE = $(call github,winnukem,racehound,$(RACEHOUND_VERSION)) RACEHOUND_LICENSE = GPL-2.0 RACEHOUND_LICENSE_FILES = LICENSE RACEHOUND_SUPPORTS_IN_SOURCE_BUILD = NO RACEHOUND_DEPENDENCIES = elfutils linux # override auto detection (uses host parameters, not cross compile # ready) RACEHOUND_CONF_OPTS += \ -DKERNEL_VERSION_OK=YES \ -DMODULE_BUILD_SUPPORTED=YES \ -DKERNEL_CONFIG_OK=YES \ -DKBUILD_BUILD_DIR=$(LINUX_DIR) \ -DKBUILD_VERSION_STRING=$(LINUX_VERSION_PROBED) # cross compile environment for linux kernel module RACEHOUND_MAKE_ENV = $(LINUX_MAKE_FLAGS) $(eval $(cmake-package)) ================================================ FILE: package/radvd/50-radvd.preset ================================================ disable radvd.service ================================================ FILE: package/radvd/Config.in ================================================ config BR2_PACKAGE_RADVD bool "radvd" depends on BR2_USE_MMU # fork() help IPv6 Router Advertisement Daemon. On busybox and sysvinit systems, radvd will be started only if a /etc/radvd.conf exists. To enable it at build time with systemd, add /etc/radvd.conf and a /etc/systemd/system-preset/40-radvd.preset file with enable radvd.service http://www.litech.org/radvd/ ================================================ FILE: package/radvd/S50radvd ================================================ #!/bin/sh DAEMON="radvd" PIDFILE="/var/run/$DAEMON.pid" RADVD_ARGS="-m syslog" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" [ -f /etc/radvd.conf ] || exit 0 [ -f /proc/sys/net/ipv6/conf/all/forwarding ] || { echo "Error: radvd requires IPv6 forwarding support." exit 1 } start() { printf 'Starting %s: ' "$DAEMON" echo "1" > /proc/sys/net/ipv6/conf/all/forwarding # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- $RADVD_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop) "$1";; restart|reload) restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/radvd/radvd.hash ================================================ # From http://www.litech.org/radvd/dist/radvd-2.19.tar.gz.sha512 sha512 caa621fd77e34ff6858d60a41b0ee02aff967ac14f2b84c402359744f4bece5c1563419860431c328adc0385e9893ed1f2421d652247a3aa0dfc0aaad1e01233 radvd-2.19.tar.gz sha256 40a6db00cf0b97f031eaa6c6e87157788f40ced1b88e3ea6d78779bd2a39dc80 COPYRIGHT ================================================ FILE: package/radvd/radvd.mk ================================================ ################################################################################ # # radvd # ################################################################################ RADVD_VERSION = 2.19 RADVD_SITE = http://www.litech.org/radvd/dist RADVD_DEPENDENCIES = host-bison host-flex host-pkgconf # We need to ignore , because radvd already includes # , which conflicts with . RADVD_CONF_ENV = \ ac_cv_prog_cc_c99='-std=gnu99' \ ac_cv_header_linux_if_arp_h=no RADVD_LICENSE = BSD-4-Clause-like RADVD_LICENSE_FILES = COPYRIGHT RADVD_SELINUX_MODULES = radvd ifeq ($(BR2_TOOLCHAIN_HAS_SSP),y) RADVD_CONF_OPTS += --with-stack-protector else RADVD_CONF_OPTS += --without-stack-protector endif # We don't provide /etc/radvd.conf, so disable the service by default. define RADVD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/radvd/50-radvd.preset \ $(TARGET_DIR)/usr/lib/systemd/system-preset/50-radvd.preset endef define RADVD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/radvd/S50radvd $(TARGET_DIR)/etc/init.d/S50radvd endef $(eval $(autotools-package)) ================================================ FILE: package/ramsmp/Config.in ================================================ config BR2_PACKAGE_RAMSMP bool "ramspeed/smp" depends on BR2_USE_MMU # fork() help RAMspeed/SMP is a free open source command line utility to measure cache and memory performance of multiprocessor machines. http://alasir.com/software/ramspeed/ ================================================ FILE: package/ramsmp/Makefile ================================================ all: generic generic: ramsmp.c fltmem.c fltmark.c intmem.c intmark.c $(CC) $(CFLAGS) $(LDFLAGS) $^ -o ramsmp i386: ramsmp.c i386/*.s i386/cpuinfo/*.s $(CC) $(CFLAGS) -DI386_ASM $(LDFLAGS) $^ -o ramsmp x86_64: ramsmp.c amd64/*.s $(CC) $(CFLAGS) -DAMD64_ASM $(LDFLAGS) $^ -o ramsmp clean: rm -f *.o ramsmp ================================================ FILE: package/ramsmp/ramsmp.hash ================================================ # Locally computed sha256 39fb15493fb3c293575746d56f6ab9faaa1d876d8b1f0d8e5a4042d2ace95839 ramsmp-3.5.0.tar.gz sha256 2c308cffbab01762f8f6b11725725a227080746ef865f2756c9c9e1591dddaad LICENCE ================================================ FILE: package/ramsmp/ramsmp.mk ================================================ ################################################################################ # # ramsmp # ################################################################################ RAMSMP_VERSION = 3.5.0 RAMSMP_SITE = http://www.alasir.com/software/ramspeed RAMSMP_ARCH = $(if $(BR2_i386),i386)$(if $(BR2_x86_64),x86_64) RAMSMP_LICENSE = Alasir License RAMSMP_LICENSE_FILES = LICENCE define RAMSMP_BUILD_CMDS cp -f package/ramsmp/Makefile $(@D) $(TARGET_CONFIGURE_OPTS) make -C $(@D) $(RAMSMP_ARCH) endef define RAMSMP_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/ramsmp $(TARGET_DIR)/usr/bin/ramsmp endef $(eval $(generic-package)) ================================================ FILE: package/ramspeed/Config.in ================================================ config BR2_PACKAGE_RAMSPEED bool "ramspeed" help RAMspeed is a free open source command line utility to measure cache and memory performance. http://alasir.com/software/ramspeed/ ================================================ FILE: package/ramspeed/Makefile ================================================ all: generic generic: ramspeed.c fltmem.c fltmark.c intmem.c intmark.c $(CC) $(CFLAGS) $(LDFLAGS) $^ -o ramspeed i386: ramspeed.c i386/*.s i386/cpuinfo/*.s $(CC) $(CFLAGS) -DI386_ASM $(LDFLAGS) $^ -o ramspeed x86_64: ramspeed.c amd64/*.s $(CC) $(CFLAGS) -DAMD64_ASM $(LDFLAGS) $^ -o ramspeed clean: rm -f *.o ramspeed ================================================ FILE: package/ramspeed/ramspeed.hash ================================================ # Locally computed sha256 f84e2e42b2b6b221ef9b586f6ae63d863db4ff21858e0ce7c84622a7c9522950 ramspeed-2.6.0.tar.gz sha256 2c308cffbab01762f8f6b11725725a227080746ef865f2756c9c9e1591dddaad LICENCE ================================================ FILE: package/ramspeed/ramspeed.mk ================================================ ################################################################################ # # ramspeed # ################################################################################ RAMSPEED_VERSION = 2.6.0 RAMSPEED_SITE = http://www.alasir.com/software/ramspeed RAMSPEED_ARCH = $(if $(BR2_i386),i386)$(if $(BR2_x86_64),x86_64) RAMSPEED_LICENSE = Alasir License RAMSPEED_LICENSE_FILES = LICENCE define RAMSPEED_BUILD_CMDS cp -f package/ramspeed/Makefile $(@D) $(TARGET_CONFIGURE_OPTS) make -C $(@D) $(RAMSPEED_ARCH) endef define RAMSPEED_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/ramspeed $(TARGET_DIR)/usr/bin/ramspeed endef $(eval $(generic-package)) ================================================ FILE: package/ranger/0001-colorscheme-check-for-compiled-python-files.patch ================================================ From 654e3116825c4d12340613196279fb13a5662113 Mon Sep 17 00:00:00 2001 From: Thijs Vermeir Date: Tue, 20 Oct 2015 18:13:36 +0200 Subject: [PATCH] colorscheme: check for compiled python files Some systems only provide *.pyc files Patch accepted upstream: https://github.com/hut/ranger/commit/d69f1ed3207c785d1a39ddd2992f6abb021b7540 Signed-off-by: Thijs Vermeir --- ranger/gui/colorscheme.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ranger/gui/colorscheme.py b/ranger/gui/colorscheme.py index d6afcac..d2b3b2d 100644 --- a/ranger/gui/colorscheme.py +++ b/ranger/gui/colorscheme.py @@ -86,7 +86,7 @@ def _colorscheme_name_to_class(signal): usecustom = not ranger.arg.clean def exists(colorscheme): - return os.path.exists(colorscheme + '.py') + return os.path.exists(colorscheme + '.py') or os.path.exists(colorscheme + '.pyc') def is_scheme(x): try: -- 2.6.1 ================================================ FILE: package/ranger/Config.in ================================================ config BR2_PACKAGE_RANGER bool "ranger" depends on BR2_USE_MMU # python3 depends on BR2_USE_WCHAR # python3 depends on BR2_TOOLCHAIN_HAS_THREADS # python3 depends on !BR2_STATIC_LIBS # python3 select BR2_PACKAGE_PYTHON3 if !BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON_CURSES if BR2_PACKAGE_PYTHON select BR2_PACKAGE_PYTHON3_CURSES if BR2_PACKAGE_PYTHON3 help ranger is a console file manager with VI key bindings. It provides a minimalistic and nice curses interface with a view on the directory hierarchy. It ships with "rifle", a file launcher that is good at automatically finding out which program to use for what file type. http://ranger.nongnu.org comment "ranger 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 ================================================ FILE: package/ranger/ranger.hash ================================================ # Locally calculated after checking pgp signature sha256 94f6e342daee4445f15db5a7440a11138487c49cc25da0c473bbf1b8978f5b79 ranger-1.7.2.tar.gz # Locally computed sha256 fa3b40d44066b033ac8a134b792a4a4a1915aa7bc7757098e0f67080648a3271 AUTHORS ================================================ FILE: package/ranger/ranger.mk ================================================ ################################################################################ # # ranger # ################################################################################ RANGER_VERSION = 1.7.2 RANGER_SITE = http://ranger.nongnu.org RANGER_SETUP_TYPE = distutils RANGER_LICENSE = GPL-3.0 RANGER_LICENSE_FILES = AUTHORS # The ranger script request python to be called with -O (optimize generated # bytecode slightly; also PYTHONOPTIMIZE=x). This implicitly requires the python # source files to be present. Therefore, the -O flag is removed when only the .pyc # files are installed. define RANGER_DO_NOT_GENERATE_BYTECODE_AT_RUNTIME $(SED) 's%/usr/bin/python -O%/usr/bin/python%g' $(@D)/scripts/ranger endef ifeq ($(BR2_PACKAGE_PYTHON3_PYC_ONLY)$(BR2_PACKAGE_PYTHON_PYC_ONLY),y) RANGER_POST_PATCH_HOOKS += RANGER_DO_NOT_GENERATE_BYTECODE_AT_RUNTIME endif $(eval $(python-package)) ================================================ FILE: package/rapidjson/Config.in ================================================ config BR2_PACKAGE_RAPIDJSON bool "rapidjson" depends on BR2_INSTALL_LIBSTDCPP help A fast JSON parser/generator for C++ with both SAX/DOM style API. http://rapidjson.org/ comment "rapidjson needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/rapidjson/rapidjson.hash ================================================ # Locally calculated sha256 bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e rapidjson-1.1.0.tar.gz sha256 a140e5d46fe734a1c78f1a3c3ef207871dd75648be71fdda8e309b23ab8b1f32 license.txt ================================================ FILE: package/rapidjson/rapidjson.mk ================================================ ################################################################################ # # rapidjson # ################################################################################ RAPIDJSON_VERSION = 1.1.0 RAPIDJSON_SITE = $(call github,miloyip,rapidjson,v$(RAPIDJSON_VERSION)) RAPIDJSON_LICENSE = MIT RAPIDJSON_LICENSE_FILES = license.txt RAPIDJSON_CPE_ID_VENDOR = tencent # rapidjson is a header-only C++ library RAPIDJSON_INSTALL_TARGET = NO RAPIDJSON_INSTALL_STAGING = YES RAPIDJSON_CONF_OPTS = \ -DRAPIDJSON_BUILD_DOC=OFF \ -DRAPIDJSON_BUILD_EXAMPLES=OFF \ -DRAPIDJSON_BUILD_TESTS=OFF $(eval $(cmake-package)) ================================================ FILE: package/rapidxml/0001-ensure-internal-print-operations-are-declared-before.patch ================================================ [PATCH] ensure internal print operations are declared before use Stock rapidxml-1.13 does not allow implementers of the `rapidxml_print.hpp` header to build under GCC 4.7 (or newer) due to compliation issues. This is a result of "Name lookup changes" introduced in GCC 4.7 [1]. The following adds forward declarations required to compile with GCC 4.7+. This issue has been mentioned upstream [2], but it has yet to be fixed in official sources. [1]: https://gcc.gnu.org/gcc-4.7/porting_to.html [2]: https://sourceforge.net/p/rapidxml/bugs/16/ Signed-off-by: James Knight Index: b/rapidxml_print.hpp =================================================================== --- a/rapidxml_print.hpp +++ b/rapidxml_print.hpp @@ -101,7 +101,16 @@ /////////////////////////////////////////////////////////////////////////// // Internal printing operations - + + template inline OutIt print_cdata_node(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_children(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_comment_node(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_data_node(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_declaration_node(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_doctype_node(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_element_node(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_pi_node(OutIt out, const xml_node *node, int flags, int indent); + // Print node template inline OutIt print_node(OutIt out, const xml_node *node, int flags, int indent) ================================================ FILE: package/rapidxml/Config.in ================================================ config BR2_PACKAGE_RAPIDXML bool "rapidxml" help RapidXml is an attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility. It is an in-situ parser with parsing speed approaching speed of strlen function executed on the same data. http://sourceforge.net/projects/rapidxml/ https://en.wikipedia.org/wiki/RapidXml ================================================ FILE: package/rapidxml/rapidxml.hash ================================================ # From https://sourceforge.net/projects/rapidxml/files/rapidxml/rapidxml%201.13/ sha1 f5fd4fbc5ad7e96045313697811d65ea8089a950 rapidxml-1.13.zip md5 7b4b42c9331c90aded23bb55dc725d6a rapidxml-1.13.zip # Locally calculated sha256 c3f0b886374981bb20fabcf323d755db4be6dba42064599481da64a85f5b3571 rapidxml-1.13.zip sha256 794bf3b2ecf5cf0c740ac6c524d66ce6284c4b1de1f983d21a242b8abbeb9720 license.txt ================================================ FILE: package/rapidxml/rapidxml.mk ================================================ ################################################################################ # # rapidxml # ################################################################################ RAPIDXML_VERSION = 1.13 RAPIDXML_SOURCE = rapidxml-$(RAPIDXML_VERSION).zip RAPIDXML_SITE = http://downloads.sourceforge.net/project/rapidxml/rapidxml/rapidxml%20$(RAPIDXML_VERSION) RAPIDXML_LICENSE = BSL-1.0 or MIT RAPIDXML_LICENSE_FILES = license.txt # C++ headers only RAPIDXML_INSTALL_TARGET = NO RAPIDXML_INSTALL_STAGING = YES define RAPIDXML_EXTRACT_CMDS $(UNZIP) -d $(@D) $(RAPIDXML_DL_DIR)/$(RAPIDXML_SOURCE) mv $(@D)/rapidxml-$(RAPIDXML_VERSION)/* $(@D)/ rmdir $(@D)/rapidxml-$(RAPIDXML_VERSION) endef define RAPIDXML_INSTALL_STAGING_CMDS mkdir -p $(STAGING_DIR)/usr/include/rapidxml cp -dpfr $(@D)/*hpp $(STAGING_DIR)/usr/include/rapidxml endef $(eval $(generic-package)) ================================================ FILE: package/raptor/0001-configure.ac-remove-conditional-lib-inclusion.patch ================================================ 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" ================================================ FILE: package/raptor/0002-Calcualte-max-nspace-declarations-correctly-for-XML-.patch ================================================ From 590681e546cd9aa18d57dc2ea1858cb734a3863f Mon Sep 17 00:00:00 2001 From: Dave Beckett Date: Sun, 16 Apr 2017 23:15:12 +0100 Subject: [PATCH] Calcualte max nspace declarations correctly for XML writer (raptor_xml_writer_start_element_common): Calculate max including for each attribute a potential name and value. Fixes Issues #0000617 http://bugs.librdf.org/mantis/view.php?id=617 and #0000618 http://bugs.librdf.org/mantis/view.php?id=618 [Peter: fixes CVE-2017-18926, upstream: https://github.com/dajobe/raptor/commit/590681e546cd9aa18d57dc2ea1858cb734a3863f] Signed-off-by: Peter Korsgaard --- src/raptor_xml_writer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/raptor_xml_writer.c b/src/raptor_xml_writer.c index 693b9468..0d3a36a5 100644 --- a/src/raptor_xml_writer.c +++ b/src/raptor_xml_writer.c @@ -181,9 +181,10 @@ raptor_xml_writer_start_element_common(raptor_xml_writer* xml_writer, size_t nspace_declarations_count = 0; unsigned int i; - /* max is 1 per element and 1 for each attribute + size of declared */ if(nstack) { - int nspace_max_count = element->attribute_count+1; + int nspace_max_count = element->attribute_count * 2; /* attr and value */ + if(element->name->nspace) + nspace_max_count++; if(element->declared_nspaces) nspace_max_count += raptor_sequence_size(element->declared_nspaces); if(element->xml_language) @@ -237,7 +238,7 @@ raptor_xml_writer_start_element_common(raptor_xml_writer* xml_writer, } } - /* Add the attribute + value */ + /* Add the attribute's value */ nspace_declarations[nspace_declarations_count].declaration= raptor_qname_format_as_xml(element->attributes[i], &nspace_declarations[nspace_declarations_count].length); -- 2.20.1 ================================================ FILE: package/raptor/Config.in ================================================ 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/ ================================================ FILE: package/raptor/raptor.hash ================================================ # Locally calculated sha256 ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed raptor2-2.0.15.tar.gz sha256 6b926a47abfb87451c436fbd4a868defec963d0232c70b806ac02d4a2a6e1968 LICENSE.txt ================================================ FILE: package/raptor/raptor.mk ================================================ ################################################################################ # # 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 = GPL-2.0+ or LGPL-2.1+ or Apache-2.0+ RAPTOR_LICENSE_FILES = LICENSE.txt RAPTOR_CPE_ID_VENDOR = librdf RAPTOR_CPE_ID_PRODUCT = raptor_rdf_syntax_library RAPTOR_INSTALL_STAGING = YES # Flag is added to make sure the patch is applied for the configure.ac of raptor. RAPTOR_AUTORECONF = YES # 0002-Calcualte-max-nspace-declarations-correctly-for-XML-.patch RAPTOR_IGNORE_CVES += CVE-2017-18926 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)) ================================================ FILE: package/raspberrypi-usbboot/0001-Makefile-allow-passing-CFLAGS-LDFLAGS.patch ================================================ From 38b730c00f45abf324caf687b5b00662ff4252c2 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 2 Dec 2016 23:09:44 +0100 Subject: [PATCH] Makefile: allow passing CFLAGS/LDFLAGS This might be needed to pass some custom CFLAGS/LDFLAGS when building rpiboot. Submitted-upstream: https://github.com/raspberrypi/usbboot/pull/2 Signed-off-by: Thomas Petazzoni [Rebased on 9324fd7] Signed-off-by: Peter Seiderer --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 822e714..875e717 100755 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ rpiboot: main.c msd/bootcode.h msd/start.h msd/bootcode4.h msd/start4.h - $(CC) -Wall -Wextra -g -o $@ $< -lusb-1.0 + $(CC) -Wall -Wextra -g $(CFLAGS) -o $@ $< -lusb-1.0 $(LDFLAGS) %.h: %.bin ./bin2c ./bin2c $< $@ -- 2.31.1 ================================================ FILE: package/raspberrypi-usbboot/Config.in.host ================================================ config BR2_PACKAGE_HOST_RASPBERRYPI_USBBOOT bool "host raspberrypi-usbboot" depends on BR2_arm || BR2_aarch64 depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb help This package builds and install the "rpiboot" tool for the host machine. This tool allows to boot the Broadcom BCM processor used in the RaspberryPi to boot over USB, and have it expose a USB mass storage device in order to reflash the built-in storage of the RaspberryPi (useful for the eMMC built into the Compute module). https://github.com/raspberrypi/usbboot comment "host raspberrypi-usbboot needs a toolchain w/ host gcc >= 4.9" depends on BR2_arm || BR2_aarch64 depends on !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/raspberrypi-usbboot/raspberrypi-usbboot.hash ================================================ # Locally calculated sha256 e4a07df05c23e0eba100d4013367e7823e3b8bc72da7b79b031bd346616c6ae5 raspberrypi-usbboot-9324fd7034b9d3606aed8a27da74d6d57e066e7e.tar.gz # License files sha256 b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1 LICENSE ================================================ FILE: package/raspberrypi-usbboot/raspberrypi-usbboot.mk ================================================ ################################################################################ # # raspberrypi-usbboot # ################################################################################ RASPBERRYPI_USBBOOT_VERSION = 9324fd7034b9d3606aed8a27da74d6d57e066e7e RASPBERRYPI_USBBOOT_SITE = $(call github,raspberrypi,usbboot,$(RASPBERRYPI_USBBOOT_VERSION)) RASPBERRYPI_USBBOOT_LICENSE = Apache-2.0 RASPBERRYPI_USBBOOT_LICENSE_FILES = LICENSE HOST_RASPBERRYPI_USBBOOT_DEPENDENCIES = host-libusb define HOST_RASPBERRYPI_USBBOOT_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) endef define HOST_RASPBERRYPI_USBBOOT_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/rpiboot $(HOST_DIR)/bin/rpiboot endef $(eval $(host-generic-package)) ================================================ FILE: package/raspi-gpio/Config.in ================================================ config BR2_PACKAGE_RASPI_GPIO bool "raspi-gpio" help Tool to help debug / hack at the BCM283x GPIO. You can dump the state of a GPIO or (all GPIOs). You can change a GPIO mode and pulls (and level if set as an output). Beware this tool writes directly to the BCM283x GPIO registers, ignoring anything else that may be using them (like Linux drivers). https://github.com/RPi-Distro/raspi-gpio ================================================ FILE: package/raspi-gpio/raspi-gpio.hash ================================================ # Locally calculated sha256 2526dcec1e5a171b13c44b1fb6f2faed5ec849f08021278e2be09bc18264a2fd raspi-gpio-4edfde183ff3ac9ed66cdc015ae25e45f3a5502d.tar.gz sha256 6e02227e1fb942687163996678d94add7911890c50025912d0ae7ee66d256bb2 LICENSE ================================================ FILE: package/raspi-gpio/raspi-gpio.mk ================================================ ################################################################################ # # raspi-gpio # ################################################################################ RASPI_GPIO_VERSION = 4edfde183ff3ac9ed66cdc015ae25e45f3a5502d RASPI_GPIO_SITE = $(call github,RPi-Distro,raspi-gpio,$(RASPI_GPIO_VERSION)) RASPI_GPIO_LICENSE = BSD-3-Clause RASPI_GPIO_LICENSE_FILES = LICENSE $(eval $(autotools-package)) ================================================ FILE: package/ratpoison/Config.in ================================================ config BR2_PACKAGE_RATPOISON bool "ratpoison" depends on BR2_USE_MMU depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_LIBERATION select BR2_PACKAGE_XLIB_LIBX11 help Ratpoison is a simple Window Manager. It is largely modelled after GNU Screen and focuses on the keyboard instead of a mouse. The screen can be split into non-overlapping frames. All windows are kept maximized inside their frames to take full advantage of your precious screen real estate. http://www.nongnu.org/ratpoison/ ================================================ FILE: package/ratpoison/ratpoison.hash ================================================ # Locally computed sha256 d98fa4be025ecca453c407ff311ab3949f29f20d6d8abedf8f0716b85fc8d1f1 ratpoison-1.4.9.tar.xz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/ratpoison/ratpoison.mk ================================================ ################################################################################ # # ratpoison # ################################################################################ RATPOISON_VERSION = 1.4.9 RATPOISON_SOURCE = ratpoison-$(RATPOISON_VERSION).tar.xz RATPOISON_SITE = http://download.savannah.nongnu.org/releases/ratpoison RATPOISON_LICENSE = GPL-2.0+ RATPOISON_LICENSE_FILES = COPYING RATPOISON_CONF_OPTS = \ --x-includes=$(STAGING_DIR)/usr/include/X11 \ --x-libraries=$(STAGING_DIR)/usr/lib \ --without-xkb \ --without-xft RATPOISON_DEPENDENCIES = xlib_libX11 ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) RATPOISON_DEPENDENCIES += xlib_libXrandr RATPOISON_CONF_OPTS += --with-xrandr else RATPOISON_CONF_OPTS += --without-xrandr endif $(eval $(autotools-package)) ================================================ FILE: package/rauc/Config.in ================================================ config BR2_PACKAGE_RAUC bool "rauc" depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 depends on BR2_USE_WCHAR # glib2 select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_DBUS select BR2_PACKAGE_SQUASHFS # run-time dependency select BR2_PACKAGE_UBOOT_TOOLS if BR2_TARGET_UBOOT # run-time dependency select BR2_PACKAGE_UBOOT_TOOLS_FWPRINTENV if BR2_TARGET_UBOOT help RAUC is the Robust Auto-Update Controller developed by Pengutronix. It supports updating embedded Linux systems over the network or from disks and provides a d-bus interface. http://rauc.io/ if BR2_PACKAGE_RAUC config BR2_PACKAGE_RAUC_NETWORK bool "network support" select BR2_PACKAGE_LIBCURL help This option enables support for updating firmware over the network using libcurl. config BR2_PACKAGE_RAUC_JSON bool "JSON output support" select BR2_PACKAGE_JSON_GLIB help This option enables support for providing output in JSON format. endif comment "rauc needs a toolchain w/ wchar, threads" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU ================================================ FILE: package/rauc/Config.in.host ================================================ config BR2_PACKAGE_HOST_RAUC bool "host rauc" select BR2_PACKAGE_HOST_SQUASHFS # run-time dependency help RAUC is the Robust Auto-Update Controller developed by Pengutronix. Enable this option to build the rauc host tool which may be used to generate firmware bundles that are handled by the target rauc service. http://rauc.io/ ================================================ FILE: package/rauc/rauc.hash ================================================ # Locally calculated, after verifying against # https://github.com/rauc/rauc/releases/download/v1.5.1/rauc-1.5.1.tar.xz.asc sha256 d4ea009ce702bcb083d942398ccfedec959c6bbb7adc0fd77ae9314ce11d9d91 rauc-1.5.1.tar.xz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/rauc/rauc.mk ================================================ ################################################################################ # # rauc # ################################################################################ RAUC_VERSION = 1.5.1 RAUC_SITE = https://github.com/rauc/rauc/releases/download/v$(RAUC_VERSION) RAUC_SOURCE = rauc-$(RAUC_VERSION).tar.xz RAUC_LICENSE = LGPL-2.1 RAUC_LICENSE_FILES = COPYING RAUC_CPE_ID_VENDOR = pengutronix RAUC_DEPENDENCIES = host-pkgconf openssl libglib2 dbus ifeq ($(BR2_PACKAGE_RAUC_NETWORK),y) RAUC_CONF_OPTS += --enable-network RAUC_DEPENDENCIES += libcurl else RAUC_CONF_OPTS += --disable-network endif ifeq ($(BR2_PACKAGE_RAUC_JSON),y) RAUC_CONF_OPTS += --enable-json RAUC_DEPENDENCIES += json-glib else RAUC_CONF_OPTS += --disable-json endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) # configure uses pkg-config --variable=systemdsystemunitdir systemd RAUC_DEPENDENCIES += systemd endif define RAUC_INSTALL_INIT_SYSTEMD mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/rauc.service.d printf '[Install]\nWantedBy=multi-user.target\n' \ >$(TARGET_DIR)/usr/lib/systemd/system/rauc.service.d/buildroot-enable.conf endef HOST_RAUC_DEPENDENCIES = \ host-pkgconf \ host-openssl \ host-libglib2 \ host-squashfs \ $(if $(BR2_PACKAGE_HOST_LIBP11),host-libp11) HOST_RAUC_CONF_OPTS += \ --disable-network \ --disable-json \ --disable-service \ --without-dbuspolicydir \ --with-systemdunitdir=no $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/rcw-smarc-sal28/Config.in ================================================ config BR2_PACKAGE_RCW_SMARC_SAL28 bool "rcw-smarc-sal28" help The reset configuration word for the SMARC-sAL28 board. All available RCWs are copied into the images output directory. Additionally, you have to choose one default RCW which is used for booting the board. if BR2_PACKAGE_RCW_SMARC_SAL28 config BR2_PACKAGE_RCW_SMARC_SAL28_BUILD_UPDATE_SCRIPT bool "Build RCW u-boot update script" select BR2_PACKAGE_HOST_UBOOT_TOOLS help Build the RCW updater script which can be used in the bootloader to change the installed RCW during runtime. The update script is called update-rcw.img and will be copied to the output directory. config BR2_PACKAGE_RCW_SMARC_SAL28_BOOT_VARIANT string "RCW variant for booting" default "3-11_q" help The suffix of the RCW filename without the ".bin" part. E.g. setting this to "3-11_q" will use "sl28-3-11_q.bin". endif ================================================ FILE: package/rcw-smarc-sal28/rcw-smarc-sal28.hash ================================================ # locally computed sha256 8c1c3e26407141ee8d8bd16a43c16c0459b01a60e6e25ca47e22c7499b3e4e65 rcw-smarc-sal28-11.tar.gz sha256 803c65088eed36a6697ca9f03f4379bbad24e276dc8da7fef5eb4dc4008415a1 COPYING ================================================ FILE: package/rcw-smarc-sal28/rcw-smarc-sal28.mk ================================================ ################################################################################ # # rcw-smarc-sal28 # ################################################################################ RCW_SMARC_SAL28_VERSION = 11 RCW_SMARC_SAL28_SITE = $(call github,kontron,rcw-smarc-sal28,v$(RCW_SMARC_SAL28_VERSION)) RCW_SMARC_SAL28_LICENSE = BSD-2-Clause RCW_SMARC_SAL28_LICENSE_FILES = COPYING RCW_SMARC_SAL28_INSTALL_TARGET = NO RCW_SMARC_SAL28_INSTALL_IMAGES = YES RCW_SMARC_SAL28_BOOT_VARIANT = $(call qstrip,$(BR2_PACKAGE_RCW_SMARC_SAL28_BOOT_VARIANT)) ifeq ($(BR2_PACKAGE_RCW_SMARC_SAL28_BUILD_UPDATE_SCRIPT),y) RCW_SMARC_SAL28_DEPENDENCIES += host-uboot-tools define RCW_SMARC_SAL28_UPDATE_SCRIPT_BUILD_CMDS MKIMAGE=$(HOST_DIR)/bin/mkimage $(MAKE) -C $(@D)/contrib all endef define RCW_SMARC_SAL28_UPDATE_SCRIPT_INSTALL_CMDS $(INSTALL) -D -m 0644 $(@D)/contrib/update-rcw.img $(BINARIES_DIR)/ endef endif define RCW_SMARC_SAL28_BUILD_CMDS $(RCW_SMARC_SAL28_UPDATE_SCRIPT_BUILD_CMDS) endef define RCW_SMARC_SAL28_INSTALL_IMAGES_CMDS $(INSTALL) -d $(BINARIES_DIR)/rcw $(INSTALL) -D -m 0644 $(@D)/sl28-*.bin $(BINARIES_DIR)/rcw/ ln -sf rcw/sl28-$(RCW_SMARC_SAL28_BOOT_VARIANT).bin $(BINARIES_DIR)/rcw.bin $(RCW_SMARC_SAL28_UPDATE_SCRIPT_INSTALL_CMDS) endef $(eval $(generic-package)) ================================================ FILE: package/rdesktop/0001-8bit-colors.patch ================================================ diff -urpN rdesktop-1.5.0-orig/xwin.c rdesktop-1.5.0/xwin.c --- rdesktop-1.5.0-orig/xwin.c 2007-01-17 12:01:18.000000000 +0100 +++ rdesktop-1.5.0/xwin.c 2007-01-17 12:05:02.000000000 +0100 @@ -1461,7 +1461,7 @@ select_visual(int screen_num) } /* we use a colourmap, so the default visual should do */ - g_owncolmap = True; +// g_owncolmap = True; g_visual = vmatches[0].visual; g_depth = vmatches[0].depth; } @@ -1568,7 +1568,7 @@ ui_init(void) { g_xcolmap = XCreateColormap(g_display, RootWindowOfScreen(g_screen), g_visual, - AllocNone); + (g_depth <= 8) ? AllocAll : AllocNone); if (g_depth <= 8) warning("Display colour depth is %d bit: you may want to use -C for a private colourmap.\n", g_depth); } ================================================ FILE: package/rdesktop/Config.in ================================================ config BR2_PACKAGE_RDESKTOP bool "rdesktop" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # gnutls depends on BR2_USE_WCHAR # gnutls depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_GNUTLS select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBTASN1 select BR2_PACKAGE_NETTLE select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXCURSOR select BR2_PACKAGE_XLIB_LIBXT help rdesktop is an open source client for Windows NT Terminal Server and Windows 2000/2003 Terminal Services, capable of natively speaking Remote Desktop Protocol (RDP) in order to present the user's NT desktop. http://rdesktop.sf.net/ comment "rdesktop needs a toolchain w/ wchar, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS ================================================ FILE: package/rdesktop/rdesktop.hash ================================================ # Locally calculated sha256 473c2f312391379960efe41caad37852c59312bc8f100f9b5f26609ab5704288 rdesktop-1.9.0.tar.gz sha256 fc82ca8b6fdb18d4e3e85cfd8ab58d1bcd3f1b29abe782895abd91d64763f8e7 COPYING ================================================ FILE: package/rdesktop/rdesktop.mk ================================================ ################################################################################ # # rdesktop # ################################################################################ RDESKTOP_VERSION = 1.9.0 RDESKTOP_SITE = \ https://github.com/rdesktop/rdesktop/releases/download/v$(RDESKTOP_VERSION) RDESKTOP_DEPENDENCIES = \ host-pkgconf \ gnutls \ libtasn1 \ nettle \ xlib_libX11 \ xlib_libXcursor \ xlib_libXt \ $(if $(BR2_PACKAGE_ALSA_LIB_PCM),alsa-lib) \ $(if $(BR2_PACKAGE_LIBAO),libao) \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) \ $(if $(BR2_PACKAGE_LIBSAMPLERATE),libsamplerate) \ $(if $(BR2_PACKAGE_PULSEAUDIO),pulseaudio) \ $(if $(BR2_PACKAGE_XLIB_LIBXRANDR),xlib_libXrandr) RDESKTOP_CONF_OPTS = --disable-credssp RDESKTOP_LICENSE = GPL-3.0+ RDESKTOP_LICENSE_FILES = COPYING RDESKTOP_CPE_ID_VENDOR = rdesktop ifeq ($(BR2_PACKAGE_PCSC_LITE),y) RDESKTOP_DEPENDENCIES += pcsc-lite else RDESKTOP_CONF_OPTS += --disable-smartcard endif $(eval $(autotools-package)) ================================================ FILE: package/re2/Config.in ================================================ config BR2_PACKAGE_RE2 bool "re2" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # needs C++11 depends on BR2_TOOLCHAIN_HAS_THREADS help RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library. https://github.com/google/re2 comment "re2 needs a toolchain w/ C++, threads, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/re2/re2.hash ================================================ # locally calculated sha256 cd8c950b528f413e02c12970dce62a7b6f37733d7f68807e73a2d9bc9db79bc8 re2-2021-08-01.tar.gz sha256 6040cda75d90b1738292a631d89934c411ef7ffd543c4d6a1b7edfc8edf29449 LICENSE ================================================ FILE: package/re2/re2.mk ================================================ ################################################################################ # # re2 # ################################################################################ RE2_VERSION = 2021-08-01 RE2_SITE = $(call github,google,re2,$(RE2_VERSION)) RE2_LICENSE = BSD-3-Clause RE2_LICENSE_FILES = LICENSE RE2_INSTALL_STAGING = YES RE2_CONF_OPTS += -DRE2_BUILD_TESTING=OFF HOST_RE2_CONF_OPTS += -DRE2_BUILD_TESTING=OFF -DBUILD_SHARED_LIBS=ON $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/read-edid/0001-Fix-install-file-list.patch ================================================ From 562f48bee3443bda0ac257f2b0c52a72208163e0 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Mon, 7 Dec 2015 21:20:38 +0100 Subject: [PATCH] Fix install file list. Fixes: CMake Error at cmake_install.cmake:40 (file): file INSTALL cannot find ".../build/read-edid-3.0.2/COPYING". Signed-off-by: Peter Seiderer --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7bf4561..2b9bc86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,5 +13,5 @@ endif () add_subdirectory (parse-edid) INSTALL(FILES get-edid.1 DESTINATION share/man/man1) -INSTALL(FILES AUTHORS ChangeLog COPYING README DESTINATION +INSTALL(FILES AUTHORS ChangeLog README DESTINATION share/doc/read-edid) -- 2.1.4 ================================================ FILE: package/read-edid/0002-Fix-compiler-check.patch ================================================ Fix compiler check By default CMake looks for c++ which the project does not need. Patch by Thomas: http://lists.busybox.net/pipermail/buildroot/2015-December/146865.html Signed-off-by: Bernd Kuhls diff -uNr read-edid-3.0.2.org/CMakeLists.txt read-edid-3.0.2/CMakeLists.txt --- read-edid-3.0.2.org/CMakeLists.txt 2014-02-05 17:27:26.000000000 +0100 +++ read-edid-3.0.2/CMakeLists.txt 2015-12-13 16:08:43.000000000 +0100 @@ -1,5 +1,5 @@ cmake_minimum_required (VERSION 2.6) -project (read-edid) +project (read-edid C) option(I2CBUILD "Build I2C get-edid implementation" ON) option(CLASSICBUILD "Build VBE get-edid implementation" ON) ================================================ FILE: package/read-edid/0003-fix-build-with-gcc-10.patch ================================================ fix build with gcc 10 Define quiet as static to avoid the following build failure with gcc 10 (which defaults to -fno-common): /home/naourr/work/instance-2/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: CMakeFiles/get-edid.dir/i2c.c.o:(.bss+0x0): multiple definition of `quiet'; CMakeFiles/get-edid.dir/get-edid.c.o:(.bss+0x0): first defined here Fixes: - http://autobuild.buildroot.org/results/28bde8049b6610273bceae26eca407c819a37dcd Signed-off-by: Fabrice Fontaine [Upstream status: sent to pyrophobicman@gmail.com] diff -Nura read-edid-3.0.2.orig/get-edid/classic.c read-edid-3.0.2/get-edid/classic.c --- read-edid-3.0.2.orig/get-edid/classic.c 2020-09-25 23:25:01.928805414 +0200 +++ read-edid-3.0.2/get-edid/classic.c 2020-09-25 23:26:37.440807301 +0200 @@ -26,7 +26,7 @@ #define dosmemput(buffer,length,offset) memcpy(offset,buffer,length) #define display(...) if (quiet == 0) { fprintf(stderr, __VA_ARGS__); } -int quiet; +static int quiet; real_ptr far_ptr_to_real_ptr( uint32 farptr ) { diff -Nura read-edid-3.0.2.orig/get-edid/get-edid.c read-edid-3.0.2/get-edid/get-edid.c --- read-edid-3.0.2.orig/get-edid/get-edid.c 2020-09-25 23:25:01.928805414 +0200 +++ read-edid-3.0.2/get-edid/get-edid.c 2020-09-25 23:28:20.740809341 +0200 @@ -9,7 +9,7 @@ #include #include -int quiet=0; +static int quiet=0; int i2conly=0; //0=both, 1=i2conly, 2=classiconly int i2cbus=-1; int classmon=0; diff -Nura read-edid-3.0.2.orig/get-edid/i2c.c read-edid-3.0.2/get-edid/i2c.c --- read-edid-3.0.2.orig/get-edid/i2c.c 2020-09-25 23:25:01.928805414 +0200 +++ read-edid-3.0.2/get-edid/i2c.c 2020-09-25 23:28:32.152809567 +0200 @@ -15,7 +15,7 @@ //Ideas (but not too much actual code) taken from i2c-tools. Thanks guys. -int quiet; +static int quiet; #define display(...) if (quiet == 0) { fprintf(stderr, __VA_ARGS__); } ================================================ FILE: package/read-edid/Config.in ================================================ config BR2_PACKAGE_READ_EDID bool "read-edid" help Read-edid is a pair of tools for reading the EDID from a monitor. It should work with most monitors made since 1996 (except for newer ones with 256-byte EDID's - WiP), assuming the video card supports the standard read commands (most do). Read-edid is a set of two tools - get-edid, which gets the raw edid information from the monitor, and parse-edid, which turns the raw binary information into an XF86Config-compatible monitor section. http://polypux.org/projects/read-edid/ ================================================ FILE: package/read-edid/read-edid.hash ================================================ # Locally calculated sha256 c7c6d8440f5b90f98e276829271ccea5b2ff5a3413df8a0f87ec09f834af186f read-edid-3.0.2.tar.gz sha256 1f8e8a59865d73076ab0a015330bc5bde7332384281260093878a3c366b778b7 LICENSE ================================================ FILE: package/read-edid/read-edid.mk ================================================ ################################################################################ # # read-edid # ################################################################################ READ_EDID_VERSION = 3.0.2 READ_EDID_SITE = http://www.polypux.org/projects/read-edid READ_EDID_LICENSE = BSD-like READ_EDID_LICENSE_FILES = LICENSE # disable classic get-edid support (needs libx86) READ_EDID_CONF_OPTS += -DCLASSICBUILD=OFF $(eval $(cmake-package)) ================================================ FILE: package/readline/0001-curses-link.patch ================================================ link readline directly to ncurses since it needs symbols from it upstream readline does this on purpose (no direct linking), but it doesn't make much sense in a Linux world Signed-off-by: Gustavo Zacarias --- a/support/shobj-conf +++ b/support/shobj-conf @@ -42,7 +42,7 @@ SHOBJ_LIBS= SHLIB_XLDFLAGS= -SHLIB_LIBS= +SHLIB_LIBS=-lncurses SHLIB_DOT='.' SHLIB_LIBPREF='lib' ================================================ FILE: package/readline/Config.in ================================================ config BR2_PACKAGE_READLINE bool "readline" select BR2_PACKAGE_NCURSES help 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://tiswww.case.edu/php/chet/readline/rltop.html config BR2_PACKAGE_READLINE_BRACKETED_PASTE bool "Enable bracketed paste" depends on BR2_PACKAGE_READLINE help Enable the "bracketed paste" feature in libreadline. Bracketed paste is helpful for interactive sessions when one wants to prevent pasted text from being interpreted as typed-in commands. However, it also causes control characters to show up in the raw output of a (telnet) session. This can cause issues and throw off pattern matching if the session output is being captured for automated processing. For further information on this feature and whether you may want it, see: https://cirw.in/blog/bracketed-paste ================================================ FILE: package/readline/inputrc ================================================ # /etc/inputrc - global inputrc for libreadline # See readline(3readline) and `info readline' for more information. # Be 8 bit clean. set input-meta on set output-meta on set bell-style visible # To allow the use of 8bit-characters like the german umlauts, comment out # the line below. However this makes the meta key not work as a meta key, # which is annoying to those which don't need to type in 8-bit characters. # set convert-meta off "\e0d": backward-word "\e0c": forward-word "\e[h": beginning-of-line "\e[f": end-of-line "\e[1~": beginning-of-line "\e[4~": end-of-line #"\e[5~": beginning-of-history #"\e[6~": end-of-history "\e[3~": delete-char "\e[2~": quoted-insert # Common standard keypad and cursor # (codes courtsey Werner Fink, ) #"\e[1~": history-search-backward "\e[2~": yank "\e[3~": delete-char #"\e[4~": set-mark "\e[5~": history-search-backward "\e[6~": history-search-forward # Normal keypad and cursor of xterm "\e[F": end-of-line "\e[H": beginning-of-line # Application keypad and cursor of xterm "\eOA": previous-history "\eOC": forward-char "\eOB": next-history "\eOD": backward-char "\eOF": end-of-line "\eOH": beginning-of-line ================================================ FILE: package/readline/readline.hash ================================================ # Locally calculated after checking pgp signature sha256 f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02 readline-8.1.tar.gz # Hash for license file sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/readline/readline.mk ================================================ ################################################################################ # # readline # ################################################################################ READLINE_VERSION = 8.1 READLINE_SITE = $(BR2_GNU_MIRROR)/readline READLINE_INSTALL_STAGING = YES READLINE_DEPENDENCIES = ncurses host-autoconf HOST_READLINE_DEPENDENCIES = host-ncurses host-autoconf READLINE_CONF_ENV = bash_cv_func_sigsetjmp=yes \ bash_cv_wcwidth_broken=no READLINE_CONF_OPTS = --disable-install-examples READLINE_LICENSE = GPL-3.0+ READLINE_LICENSE_FILES = COPYING READLINE_CPE_ID_VENDOR = gnu ifeq ($(BR2_PACKAGE_READLINE_BRACKETED_PASTE),y) READLINE_CONF_OPTS += --enable-bracketed-paste-default else READLINE_CONF_OPTS += --disable-bracketed-paste-default endif define READLINE_INSTALL_INPUTRC $(INSTALL) -D -m 644 package/readline/inputrc $(TARGET_DIR)/etc/inputrc endef READLINE_POST_INSTALL_TARGET_HOOKS += READLINE_INSTALL_INPUTRC $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/reaver/Config.in ================================================ config BR2_PACKAGE_REAVER bool "reaver" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBPCAP help Reaver is a tool to audit networks against brute WPS pins attacks. It is complementary to "Aircrack-ng". https://code.google.com/archive/p/reaver-wps/wikis/README.wiki https://github.com/t6x/reaver-wps-fork-t6x comment "reaver needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/reaver/reaver.hash ================================================ # locally computed sha256 73189782b208d12b8dddc4f29d32e1f72b1f3609e573c9ea9510deebec394583 reaver-1.6.6.tar.gz sha256 bb40cfd5e9ca6e8465ea3c236f3f2293e8300af1bfe87e72fabe482ae6cc995a docs/LICENSE ================================================ FILE: package/reaver/reaver.mk ================================================ ################################################################################ # # reaver # ################################################################################ # Older repos for this project will not cross-compile easily # while this one works right away REAVER_VERSION = 1.6.6 REAVER_SITE = $(call github,t6x,reaver-wps-fork-t6x,v$(REAVER_VERSION)) REAVER_LICENSE = GPL-2.0+ REAVER_LICENSE_FILES = docs/LICENSE REAVER_SUBDIR = src REAVER_DEPENDENCIES = libpcap ifeq ($(BR2_STATIC_LIBS),y) REAVER_CONF_ENV += \ LIBS="`$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs`" \ LDFLAGS="$(TARGET_LDFLAGS) `$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs`" endif $(eval $(autotools-package)) ================================================ FILE: package/redir/Config.in ================================================ config BR2_PACKAGE_REDIR bool "redir" depends on BR2_USE_MMU # fork() help This is a TCP port redirector for UNIX. https://github.com/troglobit/redir ================================================ FILE: package/redir/redir.hash ================================================ # From https://github.com/troglobit/redir/releases/download/v3.3/redir-3.3.tar.xz.md5 md5 b452e1ca6faded7bab9c76dd61d9d983 redir-3.3.tar.xz # License files sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/redir/redir.mk ================================================ ################################################################################ # # redir # ################################################################################ REDIR_VERSION = 3.3 REDIR_SOURCE = redir-$(REDIR_VERSION).tar.xz REDIR_SITE = https://github.com/troglobit/redir/releases/download/v$(REDIR_VERSION) REDIR_LICENSE = GPL-2.0+ REDIR_LICENSE_FILES = COPYING REDIR_CONF_OPTS = \ --disable-compat \ --enable-shaper \ --enable-ftp $(eval $(autotools-package)) ================================================ FILE: package/redis/0001-uclibc.patch ================================================ redis-001-uclibc.patch: This patch fixes redis so that it can be compiled against uclibc. Patch originates from: Support cross-compiling for uClibc targets https://github.com/antirez/redis/pull/537 Mike Steinert, mike.steinert@gmail.com Signed-off-by: Daniel Price [Martin: adapt to 3.0.3] Signed-off-by: Martin Bark [Titouan: adapt to 5.0.4] Signed-off-by: Titouan Christophe [Fabrice: update for 6.0.9] Signed-off-by: Fabrice Fontaine ========================================================================= diff -ur old/src/config.h new/src/config.h --- old/src/config.h 2012-10-26 07:20:24.000000000 -0700 +++ new/src/config.h 2012-10-31 13:41:51.206309564 -0700 @@ -62,7 +62,7 @@ #endif /* Test for backtrace() */ -#if defined(__APPLE__) || (defined(__linux__) && defined(__GLIBC__)) || \ +#if defined(__APPLE__) || (defined(__linux__) && defined(__GLIBC__) && !defined(__UCLIBC__)) || \ defined(__FreeBSD__) || ((defined(__OpenBSD__) || defined(__NetBSD__)) && defined(USE_BACKTRACE))\ || defined(__DragonFly__) #define HAVE_BACKTRACE 1 ================================================ FILE: package/redis/0002-largefile-conditional-define.patch ================================================ Define _LARGEFILE_SOURCE and _FILE_OFFSET_BITS conditionally In order to avoid ugly warnings at compile time, only define _LARGEFILE_SOURCE and _FILE_OFFSET_BITS if they have not already been defined through the build command line. Avoids: In file included from redis.h:33:0, from migrate.c:1: fmacros.h:45:0: warning: "_LARGEFILE_SOURCE" redefined :0:0: note: this is the location of the previous definition Signed-off-by: Thomas Petazzoni Index: redis-2.6.11/src/fmacros.h =================================================================== --- redis-2.6.11.orig/src/fmacros.h 2013-03-25 22:09:15.000000000 +0100 +++ redis-2.6.11/src/fmacros.h 2013-03-25 22:09:40.000000000 +0100 @@ -42,7 +42,12 @@ #define _XOPEN_SOURCE #endif +#ifndef _LARGEFILE_SOURCE #define _LARGEFILE_SOURCE +#endif + +#ifndef _FILE_OFFSET_BITS #define _FILE_OFFSET_BITS 64 +#endif #endif ================================================ FILE: package/redis/0003-redis.conf-adjust-defauts-for-buildroot.patch ================================================ From f79d1d1bf9e6f54b67e5482602084fbff7fd9cc9 Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Fri, 28 Oct 2016 12:50:34 -0300 Subject: [PATCH] redis.conf: adjust defauts for buildroot Based on Martin Bark's patch hence archlinux package. We just need to specify a proper db directory. Signed-off-by: Gustavo Zacarias --- redis.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redis.conf b/redis.conf index 22e00bc..3bb0430 100644 --- a/redis.conf +++ b/redis.conf @@ -244,7 +244,7 @@ dbfilename dump.rdb # The Append Only File will also be created inside this directory. # # Note that you must specify a directory here, not a file name. -dir ./ +dir /var/lib/redis/ ################################# REPLICATION ################################# -- 2.7.3 ================================================ FILE: package/redis/Config.in ================================================ config BR2_PACKAGE_REDIS bool "redis" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # _Atomic keyword depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # pthread_setname_np() help Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. http://www.redis.io comment "redis needs a toolchain w/ gcc>=4.9, dynamic library, nptl" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/redis/S50redis ================================================ #!/bin/sh # # start redis # start() { printf "Starting redis: " umask 077 start-stop-daemon -S -q -c redis:redis -b \ --exec /usr/bin/redis-server -- /etc/redis.conf [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping redis: " /usr/bin/redis-cli shutdown [ $? = 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 $? ================================================ FILE: package/redis/redis.hash ================================================ # From https://github.com/redis/redis-hashes/blob/master/README sha256 5b2b8b7a50111ef395bf1c1d5be11e6e167ac018125055daa8b5c2317ae131ab redis-6.2.6.tar.gz # Locally calculated sha256 97f0a15b7bbae580d2609dad2e11f1956ae167be296ab60f4691ab9c30ee9828 COPYING ================================================ FILE: package/redis/redis.mk ================================================ ################################################################################ # # redis # ################################################################################ REDIS_VERSION = 6.2.6 REDIS_SITE = http://download.redis.io/releases REDIS_LICENSE = BSD-3-Clause (core); MIT and BSD family licenses (Bundled components) REDIS_LICENSE_FILES = COPYING REDIS_CPE_ID_VENDOR = redislabs REDIS_SELINUX_MODULES = redis define REDIS_USERS redis -1 redis -1 * /var/lib/redis /bin/false - Redis Server endef # Uses __atomic_fetch_add_4. Adding -latomic to LDFLAGS does not work, # because LDFLAGS is used before the list of object files. We need to # add -latomic to FINAL_LIBS to provide -latomic at the correct place # in the linking command. ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) define REDIS_FIX_MAKEFILE $(SED) 's/FINAL_LIBS=-lm/FINAL_LIBS=-lm -latomic/' $(@D)/src/Makefile endef REDIS_POST_PATCH_HOOKS = REDIS_FIX_MAKEFILE endif # Redis doesn't support DESTDIR (yet, see # https://github.com/antirez/redis/pull/609). We set PREFIX # instead. REDIS_BUILDOPTS = $(TARGET_CONFIGURE_OPTS) \ PREFIX=$(TARGET_DIR)/usr MALLOC=libc ifeq ($(BR2_PACKAGE_SYSTEMD),y) REDIS_DEPENDENCIES += systemd REDIS_BUILDOPTS += USE_SYSTEMD=yes else REDIS_BUILDOPTS += USE_SYSTEMD=no endif ifeq ($(BR2_PACKAGE_LIBOPENSSL),y) REDIS_DEPENDENCIES += libopenssl REDIS_BUILDOPTS += BUILD_TLS=yes else REDIS_BUILDOPTS += BUILD_TLS=no endif define REDIS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(REDIS_BUILDOPTS) -C $(@D) endef define REDIS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(REDIS_BUILDOPTS) -C $(@D) \ LDCONFIG=true install $(INSTALL) -D -m 0644 $(@D)/redis.conf \ $(TARGET_DIR)/etc/redis.conf endef define REDIS_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/redis/S50redis \ $(TARGET_DIR)/etc/init.d/S50redis endef define REDIS_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/redis/redis.service \ $(TARGET_DIR)/usr/lib/systemd/system/redis.service endef $(eval $(generic-package)) ================================================ FILE: package/redis/redis.service ================================================ [Unit] Description=Redis data structure server Documentation=https://redis.io/documentation After=network.target [Service] Type=notify User=redis Group=redis ExecStart=/usr/bin/redis-server --supervised systemd --daemonize no TimeoutStartSec=5 TimeoutStopSec=5 CapabilityBoundingSet= PrivateTmp=true PrivateDevices=true ProtectSystem=full ProtectHome=true NoNewPrivileges=true RuntimeDirectory=redis RuntimeDirectoryMode=755 LimitNOFILE=10032 [Install] WantedBy=multi-user.target ================================================ FILE: package/refpolicy/2.20210908/0001-policy-modules-services-samba.te-make-crack-optional.patch ================================================ From 7c58f2508efc115dea03e18e1fa611ebf81f6ee6 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 4 Aug 2021 11:12:01 +0200 Subject: [PATCH] policy/modules/services/samba.te: make crack optional Make crack optional to avoid the following build failure: Compiling targeted policy.31 env LD_LIBRARY_PATH="/tmp/instance-5/output-1/host/lib:/tmp/instance-5/output-1/host/usr/lib" /tmp/instance-5/output-1/host/usr/bin/checkpolicy -c 31 -U deny -S -O -E policy.conf -o policy.31 policy/modules/services/samba.te:399:ERROR 'type crack_db_t is not within scope' at token ';' on line 360232: allow smbd_t crack_db_t:dir { getattr search open }; #line 399 checkpolicy: error(s) encountered while parsing configuration Fixes: - http://autobuild.buildroot.org/results/ab7098948d1920e42fa587e07f0513f23ba7fc74 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/SELinuxProject/refpolicy/pull/407] --- policy/modules/services/samba.te | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/policy/modules/services/samba.te b/policy/modules/services/samba.te index 9d4665ae6..6c37625a9 100644 --- a/policy/modules/services/samba.te +++ b/policy/modules/services/samba.te @@ -396,8 +396,6 @@ userdom_signal_all_users(smbd_t) userdom_home_filetrans_user_home_dir(smbd_t) userdom_user_home_dir_filetrans_user_home_content(smbd_t, { dir file lnk_file sock_file fifo_file }) -usermanage_read_crack_db(smbd_t) - ifdef(`hide_broken_symptoms',` files_dontaudit_getattr_default_dirs(smbd_t) files_dontaudit_getattr_boot_dirs(smbd_t) @@ -413,18 +411,6 @@ tunable_policy(`samba_create_home_dirs',` userdom_create_user_home_dirs(smbd_t) ') -tunable_policy(`samba_domain_controller',` - gen_require(` - class passwd passwd; - ') - - usermanage_domtrans_passwd(smbd_t) - usermanage_kill_passwd(smbd_t) - usermanage_domtrans_useradd(smbd_t) - usermanage_domtrans_groupadd(smbd_t) - allow smbd_t self:passwd passwd; -') - tunable_policy(`samba_enable_home_dirs',` userdom_manage_user_home_content_dirs(smbd_t) userdom_manage_user_home_content_files(smbd_t) @@ -505,6 +491,24 @@ optional_policy(` seutil_sigchld_newrole(smbd_t) ') +optional_policy(` + usermanage_read_crack_db(smbd_t) +') + +optional_policy(` + tunable_policy(`samba_domain_controller',` + gen_require(` + class passwd passwd; + ') + + usermanage_domtrans_passwd(smbd_t) + usermanage_kill_passwd(smbd_t) + usermanage_domtrans_useradd(smbd_t) + usermanage_domtrans_groupadd(smbd_t) + allow smbd_t self:passwd passwd; + ') +') + ######################################## # # Nmbd Local policy -- 2.30.2 ================================================ FILE: package/refpolicy/2.20210908/0002-policy-modules-services-wireguard.te-make-iptables-o.patch ================================================ From 67394d078c2e1438293b25d08cf408b0b0d55755 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 22 Sep 2021 23:55:59 +0200 Subject: [PATCH] policy/modules/services/wireguard.te: make iptables optional Make iptables optional to avoid the following build failure raised since version 2.20210908 and https://github.com/SELinuxProject/refpolicy/commit/7f1a7b1cacd5d211077ce62fbb4e91890e65c820: Compiling targeted policy.33 env LD_LIBRARY_PATH="/tmp/instance-0/output-1/host/lib:/tmp/instance-0/output-1/host/usr/lib" /tmp/instance-0/output-1/host/usr/bin/checkpolicy -c 33 -U deny -S -O -E policy.conf -o policy.33 policy/modules/services/wireguard.te:66:ERROR 'type iptables_exec_t is not within scope' at token ';' on line 591892: #line 66 allow wireguard_t iptables_exec_t:file { getattr open map read execute ioctl }; checkpolicy: error(s) encountered while parsing configuration make[1]: *** [Rules.monolithic:79: policy.33] Error 1 Fixes: - http://autobuild.buildroot.org/results/a4223accc6adb70b06fd4e74ca4f28484446b6fa Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/SELinuxProject/refpolicy/pull/408] --- policy/modules/services/wireguard.te | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/policy/modules/services/wireguard.te b/policy/modules/services/wireguard.te index 7241f65e6..33fd3c55d 100644 --- a/policy/modules/services/wireguard.te +++ b/policy/modules/services/wireguard.te @@ -61,10 +61,6 @@ corecmd_exec_shell(wireguard_t) domain_use_interactive_fds(wireguard_t) -# wg-quick can be configured to run iptables and other networking -# config tools when bringing up/down the wg interfaces -iptables_domtrans(wireguard_t) - # wg-quick tries to read /proc/filesystem when running "stat" and "mv" commands kernel_dontaudit_read_system_state(wireguard_t) kernel_dontaudit_search_kernel_sysctl(wireguard_t) @@ -75,3 +71,9 @@ miscfiles_read_localization(wireguard_t) sysnet_run_ifconfig(wireguard_t, wireguard_roles) userdom_use_user_terminals(wireguard_t) + +# wg-quick can be configured to run iptables and other networking +# config tools when bringing up/down the wg interfaces +optional_policy(` + iptables_domtrans(wireguard_t) +') -- 2.33.0 ================================================ FILE: package/refpolicy/Config.in ================================================ config BR2_PACKAGE_REFPOLICY bool "refpolicy" depends on BR2_TOOLCHAIN_HAS_THREADS # libsepol # Even though libsepol is not necessary for building, we get # the policy version from libsepol, so we select it, and treat # it like a runtime dependency. select BR2_PACKAGE_LIBSEPOL help The SELinux Reference Policy project (refpolicy) is a complete SELinux policy that can be used as the system policy for a variety of systems and used as the basis for creating other policies. Reference Policy was originally based on the NSA example policy, but aims to accomplish many additional goals. The current refpolicy does not fully support Buildroot and needs modifications to work with the default system file layout. These changes should be added as patches to the refpolicy that modify a single SELinux policy. The refpolicy works for the most part in permissive mode. Only the basic set of utilities are enabled in the example policy config and some of the pathing in the policies is not correct. Individual policies would need to be tweaked to get everything functioning properly. https://github.com/TresysTechnology/refpolicy if BR2_PACKAGE_REFPOLICY choice prompt "Refpolicy version" default BR2_PACKAGE_REFPOLICY_UPSTREAM_VERSION config BR2_PACKAGE_REFPOLICY_UPSTREAM_VERSION bool "Upstream version" help Use the refpolicy as provided by Buildroot. config BR2_PACKAGE_REFPOLICY_CUSTOM_GIT bool "Custom git repository" help Allows to get the refpolicy from a custom git repository. The custom refpolicy must define the full policy explicitly, and must be a fork of the original refpolicy, to have the same build system. When this is selected, only the custom policy definition are taken into account and all the modules of the policy are built into the binary policy. endchoice if BR2_PACKAGE_REFPOLICY_CUSTOM_GIT config BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_URL string "URL of custom repository" config BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_VERSION string "Custom repository version" help Revision to use in the typical format used by Git. E.g. a sha id, tag, branch... endif choice prompt "SELinux default state" default BR2_PACKAGE_REFPOLICY_POLICY_STATE_PERMISSIVE config BR2_PACKAGE_REFPOLICY_POLICY_STATE_ENFORCING bool "Enforcing" help SELinux security policy is enforced config BR2_PACKAGE_REFPOLICY_POLICY_STATE_PERMISSIVE bool "Permissive" help SELinux prints warnings instead of enforcing config BR2_PACKAGE_REFPOLICY_POLICY_STATE_DISABLED bool "Disabled" help No SELinux policy is loaded endchoice config BR2_PACKAGE_REFPOLICY_POLICY_STATE string default "permissive" if BR2_PACKAGE_REFPOLICY_POLICY_STATE_PERMISSIVE default "enforcing" if BR2_PACKAGE_REFPOLICY_POLICY_STATE_ENFORCING default "disabled" if BR2_PACKAGE_REFPOLICY_POLICY_STATE_DISABLED if BR2_PACKAGE_REFPOLICY_UPSTREAM_VERSION config BR2_REFPOLICY_EXTRA_MODULES_DIRS string "Extra modules directories" help Specify a space-separated list of directories containing SELinux modules that will be built into the SELinux policy. The modules will be automatically enabled in the policy. Each of those directories must contain the SELinux policy .fc, .if and .te files directly at the top-level, with no sub-directories. Also, you cannot have several modules with the same name in different directories. config BR2_REFPOLICY_EXTRA_MODULES string "Extra modules to enable" help List of extra SELinux modules to enable in the refpolicy. endif endif comment "refpolicy needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/refpolicy/config ================================================ # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled SELINUXTYPE=targeted ================================================ FILE: package/refpolicy/refpolicy.hash ================================================ # From https://github.com/SELinuxProject/refpolicy/releases sha256 4d3140d9fbb91322f5de36d73959464ce1d8946dcd149e36fcaf60e92444e902 refpolicy-2.20210908.tar.bz2 # Locally computed sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/refpolicy/refpolicy.mk ================================================ ################################################################################ # # refpolicy # ################################################################################ REFPOLICY_LICENSE = GPL-2.0 REFPOLICY_LICENSE_FILES = COPYING REFPOLICY_CPE_ID_VENDOR = selinuxproject REFPOLICY_INSTALL_STAGING = YES REFPOLICY_DEPENDENCIES = \ host-m4 \ host-checkpolicy \ host-policycoreutils \ host-python3 \ host-setools \ host-gawk \ host-libxml2 ifeq ($(BR2_PACKAGE_REFPOLICY_CUSTOM_GIT),y) REFPOLICY_VERSION = $(call qstrip,$(BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_VERSION)) REFPOLICY_SITE = $(call qstrip,$(BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_URL)) REFPOLICY_SITE_METHOD = git BR_NO_CHECK_HASH_FOR += $(REFPOLICY_SOURCE) else REFPOLICY_VERSION = 2.20210908 REFPOLICY_SOURCE = refpolicy-$(REFPOLICY_VERSION).tar.bz2 REFPOLICY_SITE = https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_$(subst .,_,$(REFPOLICY_VERSION)) endif # Cannot use multiple threads to build the reference policy REFPOLICY_MAKE = \ PYTHON=$(HOST_DIR)/usr/bin/python3 \ XMLLINT=$(LIBXML2_HOST_BINARY) \ TEST_TOOLCHAIN=$(HOST_DIR) \ $(TARGET_MAKE_ENV) \ $(MAKE1) REFPOLICY_POLICY_VERSION = $(BR2_PACKAGE_LIBSEPOL_POLICY_VERSION) REFPOLICY_POLICY_STATE = \ $(call qstrip,$(BR2_PACKAGE_REFPOLICY_POLICY_STATE)) ifeq ($(BR2_PACKAGE_REFPOLICY_UPSTREAM_VERSION),y) # Allow to provide out-of-tree SELinux modules in addition to the ones # in the refpolicy. REFPOLICY_EXTRA_MODULES_DIRS = \ $(strip \ $(call qstrip,$(BR2_REFPOLICY_EXTRA_MODULES_DIRS)) \ $(PACKAGES_SELINUX_EXTRA_MODULES_DIRS)) $(foreach dir,$(REFPOLICY_EXTRA_MODULES_DIRS),\ $(if $(wildcard $(dir)),,\ $(error BR2_REFPOLICY_EXTRA_MODULES_DIRS contains nonexistent directory $(dir)))) REFPOLICY_MODULES = \ application \ authlogin \ getty \ init \ libraries \ locallogin \ logging \ miscfiles \ modutils \ mount \ selinuxutil \ storage \ sysadm \ sysnetwork \ unconfined \ userdomain \ $(PACKAGES_SELINUX_MODULES) \ $(call qstrip,$(BR2_REFPOLICY_EXTRA_MODULES)) \ $(foreach d,$(REFPOLICY_EXTRA_MODULES_DIRS),\ $(basename $(notdir $(wildcard $(d)/*.te)))) define REFPOLICY_COPY_EXTRA_MODULES mkdir -p $(@D)/policy/modules/buildroot rsync -au $(addsuffix /*,$(REFPOLICY_EXTRA_MODULES_DIRS)) \ $(@D)/policy/modules/buildroot/ if [ ! -f $(@D)/policy/modules/buildroot/metadata.xml ]; then \ echo "Buildroot extra modules" > \ $(@D)/policy/modules/buildroot/metadata.xml; \ fi endef # In the context of a monolithic policy enabling a piece of the policy as # 'base' or 'module' is equivalent, so we enable them as 'base'. define REFPOLICY_CONFIGURE_MODULES $(SED) "s/ = module/ = no/g" $(@D)/policy/modules.conf $(foreach m,$(sort $(REFPOLICY_MODULES)), $(SED) "/^$(m) =/c\$(m) = base" $(@D)/policy/modules.conf ) endef endif # BR2_PACKAGE_REFPOLICY_UPSTREAM_VERSION = y ifeq ($(BR2_INIT_SYSTEMD),y) define REFPOLICY_CONFIGURE_SYSTEMD $(SED) "/SYSTEMD/c\SYSTEMD = y" $(@D)/build.conf endef endif define REFPOLICY_CONFIGURE_CMDS $(SED) "/OUTPUT_POLICY/c\OUTPUT_POLICY = $(REFPOLICY_POLICY_VERSION)" \ $(@D)/build.conf $(SED) "/MONOLITHIC/c\MONOLITHIC = y" $(@D)/build.conf $(SED) "/NAME/c\NAME = targeted" $(@D)/build.conf $(REFPOLICY_CONFIGURE_SYSTEMD) $(if $(REFPOLICY_EXTRA_MODULES_DIRS), \ $(REFPOLICY_COPY_EXTRA_MODULES) ) $(REFPOLICY_MAKE) -C $(@D) bare conf $(REFPOLICY_CONFIGURE_MODULES) endef define REFPOLICY_BUILD_CMDS $(REFPOLICY_MAKE) -C $(@D) policy endef define REFPOLICY_INSTALL_STAGING_CMDS $(REFPOLICY_MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) \ install-src install-headers endef define REFPOLICY_INSTALL_TARGET_CMDS $(REFPOLICY_MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install $(INSTALL) -m 0755 -D package/refpolicy/config \ $(TARGET_DIR)/etc/selinux/config $(SED) "/^SELINUX=/c\SELINUX=$(REFPOLICY_POLICY_STATE)" \ $(TARGET_DIR)/etc/selinux/config endef $(eval $(generic-package)) ================================================ FILE: package/resiprocate/Config.in ================================================ comment "resiprocate needs a toolchain w/ C++, threads, wchar" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR config BR2_PACKAGE_RESIPROCATE bool "resiprocate" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() select BR2_PACKAGE_C_ARES select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL help reSIProcate is a framework that aims to fully implement the SIP protocol in first class C++. It is intended for use in other applications, such as the repro SIP proxy. By default this package provides the core libraries: librutil (utilities), libresip (SIP stack/RFC compliant message parsing) and libdum (SIP Dialog Usage Manager, a state machine for SIP dialogs). https://www.resiprocate.org/ if BR2_PACKAGE_RESIPROCATE config BR2_PACKAGE_RESIPROCATE_DTLS_SUPPORT bool "DTLS support" select BR2_PACKAGE_OPENSSL help Enable DTLS support (requires OpenSSL) config BR2_PACKAGE_RESIPROCATE_REND bool "resiprocate-rend" select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_POPT help Rend is tool that is was created specifically to load test gtSIP based presence servers. config BR2_PACKAGE_RESIPROCATE_APPS bool "resiprocate-apps" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_PCRE help Build apps clicktocall and sipdial endif # BR2_PACKAGE_RESIPROCATE ================================================ FILE: package/resiprocate/resiprocate.hash ================================================ # http://list.resiprocate.org/pipermail/resiprocate-announce/2020-May/000000.html sha256 046826503d3c8682ae0e42101b28f903c5f988235f1ff4a98dbfb9066d0d3d49 resiprocate-1.12.0.tar.gz # Locally Computed sha256 16b0fd1938a10fcd145904cc2dad74500fef9d27fc15b44cf8e8f92011f94d35 COPYING ================================================ FILE: package/resiprocate/resiprocate.mk ================================================ ################################################################################ # # resiprocate # ################################################################################ RESIPROCATE_VERSION = 1.12.0 RESIPROCATE_SITE = https://www.resiprocate.org/files/pub/reSIProcate/releases # For complete details see https://www.resiprocate.org/License RESIPROCATE_LICENSE = VSL-1.0, BSD-3-Clause RESIPROCATE_LICENSE_FILES = COPYING RESIPROCATE_CPE_ID_VENDOR = resiprocate RESIPROCATE_INSTALL_STAGING = YES # Utilize c-ares from buildroot instead built in ARES library # NOTE: resiprocate doesn't support --without- syntax as it will try # to build with package if specified RESIPROCATE_DEPENDENCIES = c-ares RESIPROCATE_CONF_OPTS = -with-c-ares \ --with-sysroot="$(STAGING_DIR)" ifeq ($(BR2_PACKAGE_OPENSSL),y) RESIPROCATE_DEPENDENCIES += openssl host-pkgconf RESIPROCATE_CONF_OPTS += --with-ssl # Configure.ac does not include '-lz' when statically linking against openssl RESIPROCATE_CONF_ENV += LIBS=`$(PKG_CONFIG_HOST_BINARY) --libs openssl` endif ifeq ($(BR2_PACKAGE_POPT),y) RESIPROCATE_CONF_OPTS += --with-popt RESIPROCATE_DEPENDENCIES += popt endif ifeq ($(BR2_PACKAGE_RESIPROCATE_DTLS_SUPPORT),y) RESIPROCATE_CONF_OPTS += --with-dtls endif ifeq ($(BR2_PACKAGE_RESIPROCATE_REND),y) RESIPROCATE_CONF_OPTS += --with-rend RESIPROCATE_DEPENDENCIES += boost endif ifeq ($(BR2_PACKAGE_RESIPROCATE_APPS),y) RESIPROCATE_CONF_OPTS += --with-apps RESIPROCATE_DEPENDENCIES += pcre endif $(eval $(autotools-package)) ================================================ FILE: package/restclient-cpp/Config.in ================================================ config BR2_PACKAGE_RESTCLIENT_CPP bool "restclient-cpp" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 select BR2_PACKAGE_LIBCURL help restclient-cpp is a C++ client library for making HTTP/REST requests http://code.mrtazz.com/restclient-cpp/ comment "restclient-cpp needs a toolchain w/ C++, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/restclient-cpp/restclient-cpp.hash ================================================ # Computed locally sha256 d62ba618f9a938652fd53b483289e8662a99451839e59058c8beb286dfbc65ec restclient-cpp-0.5.2.tar.gz sha256 1c2f79e825a39eb61d8919044776627f4d079ff38975410a3bde340154fc94a4 LICENSE ================================================ FILE: package/restclient-cpp/restclient-cpp.mk ================================================ ################################################################################ # # restclient-cpp # ################################################################################ RESTCLIENT_CPP_VERSION = 0.5.2 RESTCLIENT_CPP_SITE = $(call github,mrtazz,restclient-cpp,$(RESTCLIENT_CPP_VERSION)) RESTCLIENT_CPP_LICENSE = MIT RESTCLIENT_CPP_LICENSE_FILES = LICENSE RESTCLIENT_CPP_INSTALL_STAGING = YES # Source from github, no configure script provided RESTCLIENT_CPP_AUTORECONF = YES RESTCLIENT_CPP_DEPENDENCIES = libcurl $(eval $(autotools-package)) ================================================ FILE: package/restorecond/Config.in ================================================ config BR2_PACKAGE_RESTORECOND bool "restorecond" depends on BR2_USE_MMU # libglib2 depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on !BR2_STATIC_LIBS # libselinux select BR2_PACKAGE_DBUS select BR2_PACKAGE_DBUS_GLIB select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBSELINUX select BR2_PACKAGE_LIBSEPOL help restorecond is a daemon that watches for file creation and then sets the default SELinux file context for that file. https://github.com/SELinuxProject/selinux/wiki/Releases comment "restorecond needs a toolchain w/ wchar, threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ BR2_STATIC_LIBS ================================================ FILE: package/restorecond/S02restorecond ================================================ #!/bin/sh DAEMON=restorecond PIDFILE=/var/run/$DAEMON.pid RESTORECOND_ARGS="" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- $RESTORECOND_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p $PIDFILE -R TERM/30/KILL/5 -n $DAEMON status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) restart;; *) echo $"Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/restorecond/restorecond.hash ================================================ # https://github.com/SELinuxProject/selinux/wiki/Releases sha256 471c17e64aa6d7226e861d4d0125d15fdf9b38892c542be32bd83d999e5e75f5 restorecond-3.2.tar.gz # Hash for license file sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/restorecond/restorecond.mk ================================================ ################################################################################ # # restorecond # ################################################################################ RESTORECOND_VERSION = 3.2 RESTORECOND_SITE = https://github.com/SELinuxProject/selinux/releases/download/$(RESTORECOND_VERSION) RESTORECOND_LICENSE = GPL-2.0 RESTORECOND_LICENSE_FILES = COPYING RESTORECOND_DEPENDENCIES = libglib2 libsepol libselinux dbus-glib # Undefining _FILE_OFFSET_BITS here because of a "bug" with glibc fts.h # large file support. # See https://bugzilla.redhat.com/show_bug.cgi?id=574992 for more information RESTORECOND_MAKE_OPTS += \ $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS) -U_FILE_OFFSET_BITS" \ CPPFLAGS="$(TARGET_CPPFLAGS) -U_FILE_OFFSET_BITS" \ ARCH="$(BR2_ARCH)" # We need to pass DESTDIR at build time because it's used by # restorecond build system to find headers and libraries. define RESTORECOND_BUILD_CMDS $(MAKE) -C $(@D) $(RESTORECOND_MAKE_OPTS) DESTDIR=$(STAGING_DIR) all endef define RESTORECOND_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/restorecond/S02restorecond \ $(TARGET_DIR)/etc/init.d/S02restorecond endef define RESTORECOND_INSTALL_INIT_SYSTEMD $(INSTALL) -m 0644 -D $(@D)/restorecond.service \ $(TARGET_DIR)/usr/lib/systemd/system/restorecond.service mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants ln -fs ../../../../usr/lib/systemd/system/restorecond.service \ $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/restorecond.service $(INSTALL) -m 0600 -D $(@D)/org.selinux.Restorecond.service \ $(TARGET_DIR)/etc/systemd/system/org.selinux.Restorecond.service endef define RESTORECOND_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/restorecond.conf $(TARGET_DIR)/etc/selinux/restorecond.conf $(INSTALL) -m 0644 -D $(@D)/restorecond_user.conf $(TARGET_DIR)/etc/selinux/restorecond_user.conf $(INSTALL) -m 0755 -D $(@D)/restorecond $(TARGET_DIR)/usr/sbin/restorecond endef $(eval $(generic-package)) ================================================ FILE: package/rhash/Config.in ================================================ config BR2_PACKAGE_RHASH bool "rhash" select BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160 if BR2_PACKAGE_LIBOPENSSL help LibRHash is a professional, portable, thread-safe C library for computing a wide variety of hash sums, such as CRC32, MD4, MD5, SHA1, SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R 34.11-94, RIPEMD-160, HAS-160, EDON-R, Whirlpool and Snefru. https://github.com/rhash/RHash if BR2_PACKAGE_RHASH config BR2_PACKAGE_RHASH_BIN bool "rhash binary" depends on !BR2_STATIC_LIBS help Install rhash console utility comment "rhash binary needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS endif ================================================ FILE: package/rhash/rhash.hash ================================================ # From https://sourceforge.net/projects/rhash/files/rhash/1.4.2/ sha1 fdb0b0c16f3ba3eba734b3adf9f2fc4c427ff987 rhash-1.4.2-src.tar.gz # Locally calculated sha256 600d00f5f91ef04194d50903d3c79412099328c42f28ff43a0bdb777b00bec62 rhash-1.4.2-src.tar.gz sha256 953e55838353335148c90b5a38a4894292680b1d4c37228ffddddbf18ce54bf5 COPYING ================================================ FILE: package/rhash/rhash.mk ================================================ ################################################################################ # # rhash # ################################################################################ RHASH_VERSION = 1.4.2 RHASH_SOURCE = rhash-$(RHASH_VERSION)-src.tar.gz RHASH_SITE = https://sourceforge.net/projects/rhash/files/rhash/$(RHASH_VERSION) RHASH_LICENSE = 0BSD RHASH_LICENSE_FILES = COPYING RHASH_CPE_ID_VENDOR = rhash_project RHASH_INSTALL_STAGING = YES RHASH_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) RHASH_ADDLDFLAGS = $(TARGET_NLS_LIBS) ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) RHASH_CONF_OPTS += --disable-gettext else RHASH_CONF_OPTS += --enable-gettext endif ifeq ($(BR2_PACKAGE_OPENSSL)x$(BR2_STATIC_LIBS),yx) RHASH_CONF_OPTS += --enable-openssl RHASH_DEPENDENCIES += openssl else RHASH_CONF_OPTS += --disable-openssl endif define RHASH_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure \ --prefix=/usr \ --cc=$(TARGET_CC) \ --target=$(GNU_TARGET_NAME) \ $(RHASH_CONF_OPTS) \ ) endef ifeq ($(BR2_SHARED_LIBS),y) RHASH_BUILD_TARGETS = lib-shared build-shared RHASH_INSTALL_TARGETS = install-lib-shared install-so-link else ifeq ($(BR2_STATIC_LIBS),y) RHASH_BUILD_TARGETS = lib-static RHASH_INSTALL_TARGETS = install-lib-static else RHASH_BUILD_TARGETS = lib-static lib-shared build-shared RHASH_INSTALL_TARGETS = install-lib-static install-lib-shared install-so-link endif define RHASH_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ $(RHASH_MAKE_OPTS) $(RHASH_BUILD_TARGETS) endef define RHASH_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/librhash \ DESTDIR="$(STAGING_DIR)" $(RHASH_MAKE_OPTS) $(RHASH_INSTALL_TARGETS) \ install-lib-headers endef ifeq ($(BR2_PACKAGE_RHASH_BIN),y) define RHASH_INSTALL_TARGET_RHASH_BIN $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ DESTDIR="$(TARGET_DIR)" $(RHASH_MAKE_OPTS) build-install-binary endef endif define RHASH_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/librhash \ DESTDIR="$(TARGET_DIR)" $(RHASH_MAKE_OPTS) $(RHASH_INSTALL_TARGETS) $(RHASH_INSTALL_TARGET_RHASH_BIN) endef $(eval $(generic-package)) ================================================ FILE: package/riemann-c-client/Config.in ================================================ config BR2_PACKAGE_RIEMANN_C_CLIENT bool "riemann-c-client" depends on BR2_INSTALL_LIBSTDCPP # protobuf-c depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf-c depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" # protobuf-c select BR2_PACKAGE_PROTOBUF_C help Riemann-c-client is a C client library for the Riemann monitoring system, providing a convenient and simple API, high test coverage and a copyleft license, along with API and ABI stability. https://github.com/algernon/riemann-c-client comment "riemann-c-client needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" ================================================ FILE: package/riemann-c-client/riemann-c-client.hash ================================================ # Locally calculated sha256 334874f0b9a507a8abbc7138df719cba4f28f12c02c39d5e55090b8edb86f9d2 riemann-c-client-1.10.4.tar.gz sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSE ================================================ FILE: package/riemann-c-client/riemann-c-client.mk ================================================ ################################################################################ # # riemann-c-client # ################################################################################ RIEMANN_C_CLIENT_VERSION = 1.10.4 RIEMANN_C_CLIENT_SITE = \ $(call github,algernon,riemann-c-client,riemann-c-client-$(RIEMANN_C_CLIENT_VERSION)) RIEMANN_C_CLIENT_LICENSE = LGPL-3.0+ RIEMANN_C_CLIENT_LICENSE_FILES = LICENSE RIEMANN_C_CLIENT_INSTALL_STAGING = YES RIEMANN_C_CLIENT_MAKE = $(MAKE1) # From git RIEMANN_C_CLIENT_AUTORECONF = YES RIEMANN_C_CLIENT_DEPENDENCIES = \ host-pkgconf protobuf-c \ $(if $(BR2_PACKAGE_GNUTLS),gnutls) \ $(if $(BR2_PACKAGE_JSON_C),json-c) $(eval $(autotools-package)) ================================================ FILE: package/rings/Config.in ================================================ config BR2_PACKAGE_RINGS bool "rings" help Provides a way to create new Lua states from within Lua. http://github.com/keplerproject/rings ================================================ FILE: package/rings/rings.hash ================================================ # computed by luarocks/buildroot sha256 627ac55d4a420fab766e6870fcd82cb39da12fb4ec8efddc7220b188a4ad4bc3 rings-1.3.0-1.src.rock sha256 f582a0c43737391070827ef273df0145b594b095ad2f49595701368b729e024f rings-v_1_3_0/doc/us/license.html ================================================ FILE: package/rings/rings.mk ================================================ ################################################################################ # # rings # ################################################################################ RINGS_VERSION_MAJOR = 1.3.0 RINGS_VERSION = $(RINGS_VERSION_MAJOR)-1 RINGS_SUBDIR = rings-v_$(subst .,_,$(RINGS_VERSION_MAJOR)) RINGS_LICENSE = MIT RINGS_LICENSE_FILES = $(RINGS_SUBDIR)/doc/us/license.html $(eval $(luarocks-package)) ================================================ FILE: package/ripgrep/0001-puts-jemalloc-allocator-behind-a-cargo-feature-flag.patch ================================================ From 68c2a4d7a5d9b46f65121958fdb12d5270bfd1b6 Mon Sep 17 00:00:00 2001 From: Jonathan Stites Date: Wed, 6 May 2020 12:55:35 +0000 Subject: [PATCH] puts jemalloc allocator behind a cargo feature flag Retrieved from: https://github.com/BurntSushi/ripgrep/pull/1569 Moves jemalloc behind a feature for musl builds, where it is not supported by the upstream project, so ripgrep will fail to build. Signed-off-by: Sam Voss --- .github/workflows/ci.yml | 6 ++++++ .github/workflows/release.yml | 8 +++++++- Cargo.toml | 8 +++++++- README.md | 9 +++++++++ crates/core/main.rs | 8 ++++++-- 5 files changed, 35 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ab154ec..aa567d9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -149,6 +149,12 @@ jobs: if: matrix.target != '' run: ${{ env.CARGO }} test --verbose --workspace ${{ env.TARGET_FLAGS }} + - name: Run tests with jemalloc (Musl) + # We only use the jemalloc allocator when building with musl. + # The system allocator is good enough for other platforms. + if: matrix.os == 'nightly-musl' + run: ${{ env.CARGO }} test --verbose --all --features jemalloc ${{ env.TARGET_FLAGS }} + - name: Test for existence of build artifacts (Windows) if: matrix.os == 'windows-2019' shell: bash diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7cfb6a4..ad6b82d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -133,7 +133,13 @@ jobs: echo "target flag is: ${{ env.TARGET_FLAGS }}" echo "target dir is: ${{ env.TARGET_DIR }}" - - name: Build release binary + - name: Build release binary (linux) + if: matrix.build == 'linux' + # Use jemalloc allocator for much better performance over the musl default allocator + run: ${{ env.CARGO }} build --verbose --release --features "pcre2 jemalloc" ${{ env.TARGET_FLAGS }} + + - name: Build release binary (non-linux) + if: matrix.build != 'linux' run: ${{ env.CARGO }} build --verbose --release --features pcre2 ${{ env.TARGET_FLAGS }} - name: Strip release binary (linux and macos) diff --git a/Cargo.toml b/Cargo.toml index fb78fcb..0d34b1e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,8 +56,9 @@ version = "2.33.0" default-features = false features = ["suggestions"] -[target.'cfg(all(target_env = "musl", target_pointer_width = "64"))'.dependencies.jemallocator] +[dependencies.jemallocator] version = "0.3.0" +optional = true [build-dependencies] lazy_static = "1.1.0" @@ -75,6 +76,11 @@ walkdir = "2" [features] simd-accel = ["grep/simd-accel"] pcre2 = ["grep/pcre2"] +# The jemalloc allocator is used for improved +# performance on x86 musl builds. +# Cargo does not yet support platform-specific features +# https://github.com/rust-lang/cargo/issues/1197 +jemalloc = ["jemallocator"] [profile.release] debug = 1 diff --git a/README.md b/README.md index 46938bc..9917b29 100644 --- a/README.md +++ b/README.md @@ -406,6 +406,15 @@ build a static executable with MUSL and with PCRE2, then you will need to have `musl-gcc` installed, which might be in a separate package from the actual MUSL library, depending on your Linux distribution. +When building with the MUSL target on Linux, it is recommended to use the +jemalloc allocator for performance: + +``` +$ rustup target add x86_64-unknown-linux-musl +$ cargo build --release --target x86_64-unknown-linux-musl --features jemalloc +``` + + ### Running tests diff --git a/crates/core/main.rs b/crates/core/main.rs index 47385de..c9dae5a 100644 --- a/crates/core/main.rs +++ b/crates/core/main.rs @@ -31,7 +31,7 @@ mod subject; // have the fastest version of everything. Its goal is to be small and amenable // to static compilation.) Even though ripgrep isn't particularly allocation // heavy, musl's allocator appears to slow down ripgrep quite a bit. Therefore, -// when building with musl, we use jemalloc. +// we expose a feature for using jemalloc when building with musl. // // We don't unconditionally use jemalloc because it can be nice to use the // system's default allocator by default. Moreover, jemalloc seems to increase @@ -39,7 +39,11 @@ mod subject; // // Moreover, we only do this on 64-bit systems since jemalloc doesn't support // i686. -#[cfg(all(target_env = "musl", target_pointer_width = "64"))] +#[cfg(all( + target_env = "musl", + target_pointer_width = "64", + feature = "jemalloc" +))] #[global_allocator] static ALLOC: jemallocator::Jemalloc = jemallocator::Jemalloc; -- 2.32.0 ================================================ FILE: package/ripgrep/Config.in ================================================ config BR2_PACKAGE_RIPGREP bool "ripgrep" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS select BR2_PACKAGE_HOST_RUSTC help ripgrep is a line-oriented search tool that recursively searches your current directory for a regex pattern while respecting your gitignore rules. ripgrep is similar to other popular search tools like The Silver Searcher, ack and grep. https://github.com/BurntSushi/ripgrep ================================================ FILE: package/ripgrep/ripgrep.hash ================================================ # Locally calculated sha256 0fb17aaf285b3eee8ddab17b833af1e190d73de317ff9648751ab0660d763ed2 ripgrep-13.0.0.tar.gz sha256 0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f LICENSE-MIT ================================================ FILE: package/ripgrep/ripgrep.mk ================================================ ################################################################################ # # ripgrep # ################################################################################ RIPGREP_VERSION = 13.0.0 RIPGREP_SITE = $(call github,burntsushi,ripgrep,$(RIPGREP_VERSION)) RIPGREP_LICENSE = MIT RIPGREP_LICENSE_FILES = LICENSE-MIT RIPGREP_CPE_ID_VENDOR = ripgrep_project # CVE only impacts ripgrep on Windows RIPGREP_IGNORE_CVES += CVE-2021-3013 RIPGREP_DEPENDENCIES = host-rustc RIPGREP_CARGO_ENV = CARGO_HOME=$(HOST_DIR)/share/cargo \ __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" \ CARGO_TARGET_APPLIES_TO_HOST="false" RIPGREP_BIN_DIR = target/$(RUSTC_TARGET_NAME)/$(RIPGREP_CARGO_BIN_SUBDIR) RIPGREP_CARGO_OPTS = \ -Z target-applies-to-host \ --target=$(RUSTC_TARGET_NAME) \ --manifest-path=$(@D)/Cargo.toml ifeq ($(BR2_ENABLE_RUNTIME_DEBUG),y) RIPGREP_CARGO_BIN_SUBDIR = debug else RIPGREP_CARGO_OPTS += --release RIPGREP_CARGO_BIN_SUBDIR = release endif define RIPGREP_BUILD_CMDS $(TARGET_MAKE_ENV) $(RIPGREP_CARGO_ENV) \ cargo build $(RIPGREP_CARGO_OPTS) endef define RIPGREP_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/$(RIPGREP_BIN_DIR)/rg \ $(TARGET_DIR)/usr/bin/rg endef $(eval $(generic-package)) ================================================ FILE: package/riscv64-elf-toolchain/riscv64-elf-toolchain.mk ================================================ ################################################################################ # # riscv64-elf-toolchain # ################################################################################ RISCV64_ELF_TOOLCHAIN_VERSION = 2020.12.8 RISCV64_ELF_TOOLCHAIN_SITE = https://static.dev.sifive.com/dev-tools/freedom-tools/v2020.12 RISCV64_ELF_TOOLCHAIN_SOURCE = riscv64-unknown-elf-toolchain-10.2.0-$(RISCV64_ELF_TOOLCHAIN_VERSION)-x86_64-linux-centos6.tar.gz HOST_RISCV64_ELF_TOOLCHAIN_INSTALL_DIR = $(HOST_DIR)/opt/riscv64-elf define HOST_RISCV64_ELF_TOOLCHAIN_INSTALL_CMDS rm -rf $(HOST_RISCV64_ELF_TOOLCHAIN_INSTALL_DIR) mkdir -p $(HOST_RISCV64_ELF_TOOLCHAIN_INSTALL_DIR) cp -rf $(@D)/* $(HOST_RISCV64_ELF_TOOLCHAIN_INSTALL_DIR)/ mkdir -p $(HOST_DIR)/bin cd $(HOST_DIR)/bin && \ for i in ../opt/riscv64-elf/bin/*; do \ ln -sf $$i; \ done endef $(eval $(host-generic-package)) ================================================ FILE: package/rkbin/Config.in ================================================ config BR2_PACKAGE_RKBIN bool "rkbin" help Rockchip binary blobs ================================================ FILE: package/rkbin/rkbin.mk ================================================ ################################################################################ # # rkbin # ################################################################################ RKBIN_VERSION = b0c100f1a260d807df450019774993c761beb79d RKBIN_SITE = https://github.com/rockchip-linux/rkbin.git RKBIN_SITE_METHOD = git RKBIN_INSTALL_IMAGES = YES define RKBIN_INSTALL_IMAGES_CMDS mkdir -p $(BINARIES_DIR)/rkbin cp -a $(@D)/* $(BINARIES_DIR)/rkbin endef $(eval $(generic-package)) ================================================ FILE: package/rng-tools/Config.in ================================================ config BR2_PACKAGE_RNG_TOOLS bool "rng-tools" # pthread_setaffinity_np depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL select BR2_PACKAGE_OPENSSL help Daemon to use hardware random number generators. http://sourceforge.net/projects/gkernel/ if BR2_PACKAGE_RNG_TOOLS config BR2_PACKAGE_RNG_TOOLS_JITTERENTROPY_LIBRARY bool "Jitterentropy Library support" default y select BR2_PACKAGE_JITTERENTROPY_LIBRARY help Enable Jitterentropy Library support. The Jitter RNG provides a noise source using the CPU execution timing jitter. It does not depend on any system resource other than a high-resolution time stamp. config BR2_PACKAGE_RNG_TOOLS_NISTBEACON bool "NIST Entropy Beacon support" select BR2_PACKAGE_JANSSON select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBXML2 help Enable NIST Entropy Beacon support. Entropy gathered from the NIST network entropy beacon. Note that this entropy source is disabled by default as it should never be used for cryptographic purposes, or any use case in which random data should be known only by a single entity. endif comment "rng-tools needs a toolchain w/ NPTL" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL ================================================ FILE: package/rng-tools/S21rngd ================================================ #!/bin/sh NAME="rngd" DAEMON="/usr/sbin/${NAME}" DAEMON_ARGS="" CFG_FILE="/etc/default/${NAME}" PID_FILE="/var/run/${NAME}.pid" # Read configuration variable file if it is present [ -r "${CFG_FILE}" ] && . "${CFG_FILE}" start() { printf "Starting ${NAME}: " start-stop-daemon -S -q -x "${DAEMON}" -- ${DAEMON_ARGS} [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping ${NAME}: " # This daemon does not exit properly with the default TERM signal unless # it's forced to work by something reading /dev/random. Killing it and # removing its PID file is more straightforward. if start-stop-daemon -K -q -s KILL -p "${PID_FILE}" -n "${NAME}"; then rm -f "${PID_FILE}" echo "OK" else echo "FAIL" fi } case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; *) echo "Usage: $0 {start|stop|restart|reload}" >&2 exit 1 ;; esac ================================================ FILE: package/rng-tools/rng-tools.hash ================================================ # Locally computed sha256 4dd86f6ae37d917a8489f44070d39d7feddcc622429b95efd7aa85a1f3cfdf81 rng-tools-6.14.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/rng-tools/rng-tools.mk ================================================ ################################################################################ # # rng-tools # ################################################################################ RNG_TOOLS_VERSION = 6.14 RNG_TOOLS_SITE = $(call github,nhorman,$(RNG_TOOLS_NAME),v$(RNG_TOOLS_VERSION)) RNG_TOOLS_LICENSE = GPL-2.0 RNG_TOOLS_LICENSE_FILES = COPYING RNG_TOOLS_CPE_ID_VENDOR = rng-tools_project RNG_TOOLS_SELINUX_MODULES = rngd RNG_TOOLS_DEPENDENCIES = host-pkgconf openssl # From git RNG_TOOLS_AUTORECONF = YES RNG_TOOLS_CONF_OPTS = --without-pkcs11 # Work around for uClibc or musl toolchains which lack argp_*() # functions. ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y) RNG_TOOLS_CONF_ENV += LIBS="-largp" RNG_TOOLS_DEPENDENCIES += argp-standalone endif ifeq ($(BR2_PACKAGE_LIBRTLSDR),y) RNG_TOOLS_DEPENDENCIES += librtlsdr RNG_TOOLS_CONF_OPTS += --with-rtlsdr else RNG_TOOLS_CONF_OPTS += --without-rtlsdr endif ifeq ($(BR2_PACKAGE_RNG_TOOLS_JITTERENTROPY_LIBRARY),y) RNG_TOOLS_DEPENDENCIES += jitterentropy-library RNG_TOOLS_CONF_OPTS += --enable-jitterentropy else RNG_TOOLS_CONF_OPTS += --disable-jitterentropy endif ifeq ($(BR2_PACKAGE_RNG_TOOLS_NISTBEACON),y) RNG_TOOLS_DEPENDENCIES += jansson libcurl libxml2 RNG_TOOLS_CONF_OPTS += --with-nistbeacon else RNG_TOOLS_CONF_OPTS += --without-nistbeacon endif define RNG_TOOLS_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/rng-tools/S21rngd \ $(TARGET_DIR)/etc/init.d/S21rngd endef define RNG_TOOLS_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/rng-tools/rngd.service \ $(TARGET_DIR)/usr/lib/systemd/system/rngd.service endef $(eval $(autotools-package)) ================================================ FILE: package/rng-tools/rngd.service ================================================ [Unit] Description=Hardware RNG Entropy Gatherer Daemon [Service] ExecStart=/usr/sbin/rngd -f $DAEMON_ARGS EnvironmentFile=-/etc/default/rngd [Install] WantedBy=multi-user.target ================================================ FILE: package/rocksdb/0001-build_tools-build_detect_platform-fix-C-tests.patch ================================================ From 23739c6f9694d7fc436967439f170173dbb4c6b4 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 24 Feb 2020 10:22:13 +0100 Subject: [PATCH] build_tools/build_detect_platform: fix C++ tests Replace -o /dev/null by -o test.o when testing for C++ features such as -faligned-new otherwise tests will fail with some bugged binutils (https://sourceware.org/bugzilla/show_bug.cgi?id=19526): output/host/bin/xtensa-buildroot-linux-uclibc-g++ -faligned-new -x c++ - -o /dev/null < [Upstream status: https://github.com/facebook/rocksdb/pull/6479] --- build_tools/build_detect_platform | 66 +++++++++++++++---------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/build_tools/build_detect_platform b/build_tools/build_detect_platform index 2535d8124..64a0ae76c 100755 --- a/build_tools/build_detect_platform +++ b/build_tools/build_detect_platform @@ -172,7 +172,7 @@ case "$TARGET_OS" in PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -lpthread -lrt -ldl" if test $ROCKSDB_USE_IO_URING; then # check for liburing - $CXX $PLATFORM_CXXFLAGS -x c++ - -luring -o /dev/null 2>/dev/null </dev/null < int main() { struct io_uring ring; @@ -245,7 +245,7 @@ if [ "$CROSS_COMPILE" = "true" -o "$FBCODE_BUILD" = "true" ]; then else if ! test $ROCKSDB_DISABLE_FALLOCATE; then # Test whether fallocate is available - $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null < #include int main() { @@ -261,7 +261,7 @@ EOF if ! test $ROCKSDB_DISABLE_SNAPPY; then # Test whether Snappy library is installed # http://code.google.com/p/snappy/ - $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null < int main() {} EOF @@ -276,7 +276,7 @@ EOF # Test whether gflags library is installed # http://gflags.github.io/gflags/ # check if the namespace is gflags - if $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null 2>/dev/null << EOF + if $CXX $PLATFORM_CXXFLAGS -x c++ - -o test.o 2>/dev/null << EOF #include using namespace GFLAGS_NAMESPACE; int main() {} @@ -323,7 +323,7 @@ EOF COMMON_FLAGS="$COMMON_FLAGS -DGFLAGS=1" PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -lgflags" # check if namespace is gflags - elif $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null 2>/dev/null << EOF + elif $CXX $PLATFORM_CXXFLAGS -x c++ - -o test.o 2>/dev/null << EOF #include using namespace gflags; int main() {} @@ -285,7 +285,7 @@ EOF COMMON_FLAGS="$COMMON_FLAGS -DGFLAGS=1 -DGFLAGS_NAMESPACE=gflags" PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -lgflags" # check if namespace is google - elif $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null 2>/dev/null << EOF + elif $CXX $PLATFORM_CXXFLAGS -x c++ - -o test.o 2>/dev/null << EOF #include using namespace google; int main() {} @@ -299,7 +299,7 @@ EOF if ! test $ROCKSDB_DISABLE_ZLIB; then # Test whether zlib library is installed - $CXX $PLATFORM_CXXFLAGS $COMMON_FLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null < int main() {} EOF @@ -312,7 +312,7 @@ EOF if ! test $ROCKSDB_DISABLE_BZIP; then # Test whether bzip library is installed - $CXX $PLATFORM_CXXFLAGS $COMMON_FLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null < int main() {} EOF @@ -325,7 +325,7 @@ EOF if ! test $ROCKSDB_DISABLE_LZ4; then # Test whether lz4 library is installed - $CXX $PLATFORM_CXXFLAGS $COMMON_FLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null < #include int main() {} @@ -339,7 +339,7 @@ EOF if ! test $ROCKSDB_DISABLE_ZSTD; then # Test whether zstd library is installed - $CXX $PLATFORM_CXXFLAGS $COMMON_FLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null < int main() {} EOF @@ -352,7 +352,7 @@ EOF if ! test $ROCKSDB_DISABLE_NUMA; then # Test whether numa is available - $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null -lnuma 2>/dev/null </dev/null < #include int main() {} @@ -366,7 +366,7 @@ EOF if ! test $ROCKSDB_DISABLE_TBB; then # Test whether tbb is available - $CXX $PLATFORM_CXXFLAGS $LDFLAGS -x c++ - -o /dev/null -ltbb 2>/dev/null </dev/null < int main() {} EOF @@ -379,7 +379,7 @@ EOF if ! test $ROCKSDB_DISABLE_JEMALLOC; then # Test whether jemalloc is available - if echo 'int main() {}' | $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null -ljemalloc \ + if echo 'int main() {}' | $CXX $PLATFORM_CXXFLAGS -x c++ - -o test.o -ljemalloc \ 2>/dev/null; then # This will enable some preprocessor identifiers in the Makefile JEMALLOC=1 @@ -400,7 +400,7 @@ EOF fi if ! test $JEMALLOC && ! test $ROCKSDB_DISABLE_TCMALLOC; then # jemalloc is not available. Let's try tcmalloc - if echo 'int main() {}' | $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null \ + if echo 'int main() {}' | $CXX $PLATFORM_CXXFLAGS -x c++ - -o test.o \ -ltcmalloc 2>/dev/null; then PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -ltcmalloc" JAVA_LDFLAGS="$JAVA_LDFLAGS -ltcmalloc" @@ -409,7 +409,7 @@ EOF if ! test $ROCKSDB_DISABLE_MALLOC_USABLE_SIZE; then # Test whether malloc_usable_size is available - $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null < int main() { size_t res = malloc_usable_size(0); @@ -424,7 +424,7 @@ EOF if ! test $ROCKSDB_DISABLE_MEMKIND; then # Test whether memkind library is installed - $CXX $PLATFORM_CXXFLAGS $COMMON_FLAGS -lmemkind -x c++ - -o /dev/null 2>/dev/null </dev/null < int main() { memkind_malloc(MEMKIND_DAX_KMEM, 1024); @@ -486,7 +486,7 @@ EOF if ! test $ROCKSDB_DISABLE_PTHREAD_MUTEX_ADAPTIVE_NP; then # Test whether PTHREAD_MUTEX_ADAPTIVE_NP mutex type is available - $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null < int main() { int x = PTHREAD_MUTEX_ADAPTIVE_NP; @@ -439,7 +439,7 @@ EOF if ! test $ROCKSDB_DISABLE_BACKTRACE; then # Test whether backtrace is available - $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null < int main() { void* frames[1]; @@ -451,7 +451,7 @@ EOF COMMON_FLAGS="$COMMON_FLAGS -DROCKSDB_BACKTRACE" else # Test whether execinfo library is installed - $CXX $PLATFORM_CXXFLAGS -lexecinfo -x c++ - -o /dev/null 2>/dev/null </dev/null < int main() { void* frames[1]; @@ -468,7 +468,7 @@ EOF if ! test $ROCKSDB_DISABLE_PG; then # Test if -pg is supported - $CXX $PLATFORM_CXXFLAGS -pg -x c++ - -o /dev/null 2>/dev/null </dev/null </dev/null </dev/null < int main() { int fd = open("/dev/null", 0); @@ -494,7 +494,7 @@ EOF if ! test $ROCKSDB_DISABLE_SCHED_GETCPU; then # Test whether sched_getcpu is supported - $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null < int main() { int cpuid = sched_getcpu(); @@ -508,7 +508,7 @@ EOF if ! test $ROCKSDB_DISABLE_AUXV_GETAUXVAL; then # Test whether getauxval is supported - $CXX $PLATFORM_CXXFLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null < int main() { uint64_t auxv = getauxval(AT_HWCAP); @@ -522,7 +522,7 @@ EOF if ! test $ROCKSDB_DISABLE_ALIGNED_NEW; then # Test whether c++17 aligned-new is supported - $CXX $PLATFORM_CXXFLAGS -faligned-new -x c++ - -o /dev/null 2>/dev/null </dev/null </dev/null </dev/null </dev/null </dev/null < #include int main() { @@ -617,7 +617,7 @@ elif test "$USE_SSE"; then echo "warning: USE_SSE specified but compiler could not use SSE intrinsics, disabling" >&2 fi -$CXX $PLATFORM_CXXFLAGS $COMMON_FLAGS $TRY_PCLMUL -x c++ - -o /dev/null 2>/dev/null </dev/null < #include int main() { @@ -634,7 +634,7 @@ elif test "$USE_SSE"; then echo "warning: USE_SSE specified but compiler could not use PCLMUL intrinsics, disabling" >&2 fi -$CXX $PLATFORM_CXXFLAGS $COMMON_FLAGS $TRY_AVX2 -x c++ - -o /dev/null 2>/dev/null </dev/null < #include int main() { @@ -649,7 +649,7 @@ elif test "$USE_SSE"; then echo "warning: USE_SSE specified but compiler could not use AVX2 intrinsics, disabling" >&2 fi -$CXX $PLATFORM_CXXFLAGS $COMMON_FLAGS $TRY_BMI -x c++ - -o /dev/null 2>/dev/null </dev/null < #include int main(int argc, char *argv[]) { @@ -739,7 +739,7 @@ elif test "$USE_SSE"; then echo "warning: USE_SSE specified but compiler could not use BMI intrinsics, disabling" >&2 fi -$CXX $PLATFORM_CXXFLAGS $COMMON_FLAGS $TRY_LZCNT -x c++ - -o /dev/null 2>/dev/null </dev/null < #include int main(int argc, char *argv[]) { @@ -753,7 +753,7 @@ elif test "$USE_SSE"; then echo "warning: USE_SSE specified but compiler could not use LZCNT intrinsics, disabling" >&2 fi -$CXX $PLATFORM_CXXFLAGS $COMMON_FLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null < int main() { uint64_t a = 0xffffFFFFffffFFFF; @@ -666,7 +666,7 @@ fi # succeed because the cross-compiler flags are added by the Makefile, not this # script. if [ "$PLATFORM" != IOS ]; then - $CXX $COMMON_FLAGS -x c++ - -o /dev/null 2>/dev/null </dev/null </dev/null + $CXX $COMMON_FLAGS $PLATFORM_SHARED_LDFLAGS test_dl.o -o test.o 2>/dev/null if [ "$?" = 0 ]; then EXEC_LDFLAGS+="-ldl" rm -f test_dl.o -- 2.25.0 ================================================ FILE: package/rocksdb/Config.in ================================================ config BR2_PACKAGE_ROCKSDB_ARCH_SUPPORTS bool # see utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h default y if BR2_aarch64 || BR2_aarch64_be default y if BR2_i386 || BR2_x86_64 default y if BR2_powerpc64 || BR2_powerpc64le config BR2_PACKAGE_ROCKSDB bool "rocksdb" depends on BR2_PACKAGE_ROCKSDB_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::future help The RocksDB library provides a persistent key value store. Keys and values are arbitrary byte arrays. The keys are ordered within the key value store according to a user-specified comparator function. The library is maintained by the Facebook Database Engineering Team, and is based on LevelDB, by Sanjay Ghemawat and Jeff Dean at Google. http://rocksdb.org comment "rocksdb needs a toolchain w/ C++, threads, wchar, gcc >= 4.8" depends on BR2_PACKAGE_ROCKSDB_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 comment "rocksdb needs a toolchain not affected by GCC bug 64735" depends on BR2_PACKAGE_ROCKSDB_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/rocksdb/rocksdb.hash ================================================ # Locally computed: sha256 c6502c7aae641b7e20fafa6c2b92273d935d2b7b2707135ebd9a67b092169dca rocksdb-6.20.3.tar.gz # Hash for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.Apache sha256 b568f1f37a5a1d37a3e981e7c8b7fc4856ca33b2ca0a45bc8e847aaaf7afe485 LICENSE.leveldb sha256 e62e4f73402cf6a16969673f0b7eb46bc91782e50a2afe400dd0157547bc09f0 README.md ================================================ FILE: package/rocksdb/rocksdb.mk ================================================ ################################################################################ # # rocksdb # ################################################################################ ROCKSDB_VERSION = 6.20.3 ROCKSDB_SITE = $(call github,facebook,rocksdb,v$(ROCKSDB_VERSION)) ROCKSDB_LICENSE = GPL-2.0 or Apache-2.0 ROCKSDB_LICENSE_FILES = COPYING LICENSE.Apache LICENSE.leveldb README.md ROCKSDB_INSTALL_STAGING = YES ROCKSDB_MAKE_OPTS = \ PORTABLE=1 \ PREFIX=/usr # Internal error, aborting at dwarf2cfi.c:2802 in connect_traces # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58864 ifeq ($(BR2_m68k_cf),y) ROCKSDB_EXTRA_CXXFLAGS += -fno-defer-pop endif ifeq ($(BR2_PACKAGE_BZIP2),y) ROCKSDB_DEPENDENCIES += bzip2 ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_BZ2=0 else ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_BZ2=1 endif ifeq ($(BR2_PACKAGE_GFLAGS),y) ROCKSDB_DEPENDENCIES += gflags ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_GFLAGS=0 else ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_GFLAGS=1 endif ifeq ($(BR2_PACKAGE_JEMALLOC),y) ROCKSDB_DEPENDENCIES += jemalloc ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_JEMALLOC=0 else ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_JEMALLOC=1 endif ifeq ($(BR2_PACKAGE_LZ4),y) ROCKSDB_DEPENDENCIES += lz4 ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_LZ4=0 else ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_LZ4=1 endif ifeq ($(BR2_PACKAGE_SNAPPY),y) ROCKSDB_DEPENDENCIES += snappy ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_SNAPPY=0 else ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_SNAPPY=1 endif ifeq ($(BR2_PACKAGE_ZLIB),y) ROCKSDB_DEPENDENCIES += zlib ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_ZLIB=0 else ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_ZLIB=1 endif ifeq ($(BR2_PACKAGE_ZSTD),y) ROCKSDB_DEPENDENCIES += zstd ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_ZSTD=0 else ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_ZSTD=1 endif ifeq ($(BR2_GCC_ENABLE_LTO),y) ROCKSDB_MAKE_OPTS += USE_LTO=1 else ROCKSDB_MAKE_OPTS += USE_LTO=0 endif ifeq ($(BR2_STATIC_LIBS),y) ROCKSDB_BUILD_TARGETS += static_lib ROCKSDB_INSTALL_TARGETS += install-static ROCKSDB_EXTRA_CXXFLAGS += -DROCKSDB_NO_DYNAMIC_EXTENSION else ifeq ($(BR2_SHARED_LIBS),y) ROCKSDB_BUILD_TARGETS += shared_lib ROCKSDB_INSTALL_TARGETS += install-shared else ifeq ($(BR2_SHARED_STATIC_LIBS),y) ROCKSDB_BUILD_TARGETS += shared_lib static_lib ROCKSDB_INSTALL_TARGETS += install-shared install-static endif ROCKSDB_MAKE_OPTS += EXTRA_CXXFLAGS="$(ROCKSDB_EXTRA_CXXFLAGS)" define ROCKSDB_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) $(ROCKSDB_MAKE_OPTS) -C $(@D) \ $(ROCKSDB_BUILD_TARGETS) endef define ROCKSDB_INSTALL_STAGING_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) $(ROCKSDB_MAKE_OPTS) -C $(@D) \ DESTDIR=$(STAGING_DIR) $(ROCKSDB_INSTALL_TARGETS) endef define ROCKSDB_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) $(ROCKSDB_MAKE_OPTS) -C $(@D) \ DESTDIR=$(TARGET_DIR) $(ROCKSDB_INSTALL_TARGETS) endef $(eval $(generic-package)) ================================================ FILE: package/rp-pppoe/0001-krn-plugin.patch ================================================ [Fabrice: update patch for 3.14] Signed-off-by: Fabrice Fontaine diff -Nura rp-pppoe-3.11.orig/src/configure rp-pppoe-3.11/src/configure --- rp-pppoe-3.11.orig/src/configure 2012-08-21 10:01:10.536440032 -0300 +++ rp-pppoe-3.11/src/configure 2012-08-21 10:01:45.353442397 -0300 @@ -4517,7 +4517,7 @@ modprobe pppoe > /dev/null 2>&1 fi if test "$cross_compiling" = yes; then : - ac_cv_linux_kernel_pppoe=no; echo "cross-compiling, default: " + ac_cv_linux_kernel_pppoe=yes; echo "cross-compiling, default: " else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ diff -Nura rp-pppoe-3.11.orig/src/pppoe-server.c rp-pppoe-3.11/src/pppoe-server.c --- rp-pppoe-3.11.orig/src/pppoe-server.c 2012-08-21 10:01:10.535440032 -0300 +++ rp-pppoe-3.11/src/pppoe-server.c 2012-08-21 10:02:02.597443569 -0300 @@ -20,6 +20,9 @@ #include "config.h" +/* Patched hack to make this cross compile */ +#define HAVE_LINUX_KERNEL_PPPOE 1 + #if defined(HAVE_NETPACKET_PACKET_H) || defined(HAVE_LINUX_IF_PACKET_H) #define _POSIX_SOURCE 1 /* For sigaction defines */ #endif ================================================ FILE: package/rp-pppoe/Config.in ================================================ 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_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 this package if you are implementing the pppoe server that will service other pppoe client devices. Otherwise the normal client functionality already exists in the pppd package (and kernel). https://dianne.skoll.ca/projects/rp-pppoe/ ================================================ FILE: package/rp-pppoe/rp-pppoe.hash ================================================ # Locally calculated after checking pgp signature sha256 b1f318bc7e4e5b0fd8a8e23e8803f5e6e43165245a5a10a7162a92a6cf17829a rp-pppoe-3.15.tar.gz # Locally computed sha256 464006ba771074f4022db14f58a29a0b447b6fdde9529cf0331be396b6279162 doc/LICENSE ================================================ FILE: package/rp-pppoe/rp-pppoe.mk ================================================ ################################################################################ # # rp-pppoe # ################################################################################ RP_PPPOE_VERSION = 3.15 RP_PPPOE_SITE = https://dianne.skoll.ca/projects/rp-pppoe/download RP_PPPOE_LICENSE = GPL-2.0 RP_PPPOE_LICENSE_FILES = doc/LICENSE RP_PPPOE_CPE_ID_VENDOR = rp-pppoe_project RP_PPPOE_DEPENDENCIES = pppd RP_PPPOE_SUBDIR = src RP_PPPOE_TARGET_FILES = pppoe pppoe-server pppoe-relay pppoe-sniff RP_PPPOE_TARGET_SCRIPTS = pppoe-connect pppoe-init pppoe-setup pppoe-start \ pppoe-status pppoe-stop RP_PPPOE_MAKE_OPTS = PLUGIN_DIR=/usr/lib/pppd/$(PPPD_VERSION) RP_PPPOE_CONF_OPTS = --disable-debugging # The pppd, echo, setsid and id paths must be the ones on the # target. Indeed, the result of these checks is used to replace # variables in scripts that are installed in the target. RP_PPPOE_CONF_ENV = \ rpppoe_cv_pack_bitfields=normal \ ac_cv_path_PPPD=/usr/sbin/pppd \ ac_cv_path_ECHO=/bin/echo \ ac_cv_path_SETSID=/usr/bin/setsid \ ac_cv_path_ID=/usr/bin/id \ PPPD_H=$(PPPD_DIR)/pppd/pppd.h define RP_PPPOE_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0644 $(@D)/configs/pppoe.conf \ $(TARGET_DIR)/etc/ppp/pppoe.conf for ff in $(RP_PPPOE_TARGET_FILES); do \ $(INSTALL) -m 0755 $(@D)/src/$$ff $(TARGET_DIR)/usr/sbin/$$ff || exit 1; \ done for ff in $(RP_PPPOE_TARGET_SCRIPTS); do \ $(INSTALL) -m 0755 $(@D)/scripts/$$ff $(TARGET_DIR)/usr/sbin/$$ff || exit 1; \ done endef $(eval $(autotools-package)) ================================================ FILE: package/rpcbind/0001-Remove-yellow-pages-support.patch ================================================ From 226b9c57ff403b407dbf1ff8a615da455a4cbd23 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 10 Nov 2012 22:03:43 +0100 Subject: [PATCH] Remove yellow pages support This support requires yellow pages support in libtirpc, which isn't available. As most Buildroot users are most likely never going to need such feature, get rid of it. Signed-off-by: Thomas Petazzoni [ rebased for 1.2.6 ] Signed-off-by: Petr Vorel --- src/security.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/security.c b/src/security.c index 38967dd..0a70635 100644 --- a/src/security.c +++ b/src/security.c @@ -318,24 +318,9 @@ check_callit(SVCXPRT *xprt, struct r_rmtcall_args *args, int versnum /*__unused* args->rmt_proc != MOUNTPROC_UMNT) break; goto deny; - case YPBINDPROG: - if (args->rmt_proc != YPBINDPROC_SETDOM) - break; - /* FALLTHROUGH */ - case YPPASSWDPROG: case NFS_PROGRAM: case RQUOTAPROG: goto deny; - case YPPROG: - switch (args->rmt_proc) { - case YPPROC_ALL: - case YPPROC_MATCH: - case YPPROC_FIRST: - case YPPROC_NEXT: - goto deny; - default: - break; - } default: break; } -- 2.31.1 ================================================ FILE: package/rpcbind/Config.in ================================================ config BR2_PACKAGE_RPCBIND bool "rpcbind" # We really need libtirpc and can't work with the native RPC # implementation of toolchains. depends on BR2_TOOLCHAIN_HAS_THREADS # libtirpc depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBTIRPC help The rpcbind utility is a server that converts RPC program numbers into universal addresses. https://sourceforge.net/projects/rpcbind/ comment "rpcbind needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU ================================================ FILE: package/rpcbind/S30rpcbind ================================================ #!/bin/sh # # Starts rpcbind. # start() { printf "Starting rpcbind: " umask 077 start-stop-daemon -S -q -p /var/run/rpcbind.pid --exec /usr/sbin/rpcbind echo "OK" } stop() { printf "Stopping rpcbind daemon: " start-stop-daemon -K -q -p /var/run/rpcbind.pid echo "OK" } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/rpcbind/rpcbind.hash ================================================ # Locally computed: sha256 5613746489cae5ae23a443bb85c05a11741a5f12c8f55d2bb5e83b9defeee8de rpcbind-1.2.6.tar.bz2 sha256 2b9477d2f4ab277b29702958f0058546edc120aae4b5fb8b8d1a9652104e1ba3 COPYING ================================================ FILE: package/rpcbind/rpcbind.mk ================================================ ################################################################################ # # rpcbind # ################################################################################ RPCBIND_VERSION = 1.2.6 RPCBIND_SITE = http://downloads.sourceforge.net/project/rpcbind/rpcbind/$(RPCBIND_VERSION) RPCBIND_SOURCE = rpcbind-$(RPCBIND_VERSION).tar.bz2 RPCBIND_LICENSE = BSD-3-Clause RPCBIND_LICENSE_FILES = COPYING RPCBIND_CPE_ID_VENDOR = rpcbind_project RPCBIND_SELINUX_MODULES = rpcbind RPCBIND_CONF_ENV += \ CFLAGS="$(TARGET_CFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc`" RPCBIND_DEPENDENCIES += libtirpc host-pkgconf RPCBIND_CONF_OPTS += --with-rpcuser=root ifeq ($(BR2_INIT_SYSTEMD),y) RPCBIND_CONF_OPTS += --enable-warmstarts \ --with-systemdsystemunitdir=/usr/lib/systemd/system RPCBIND_DEPENDENCIES += systemd else RPCBIND_CONF_OPTS += --with-systemdsystemunitdir=no endif define RPCBIND_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/rpcbind/S30rpcbind \ $(TARGET_DIR)/etc/init.d/S30rpcbind endef $(eval $(autotools-package)) ================================================ FILE: package/rpi-armmem/Config.in ================================================ config BR2_PACKAGE_RPI_ARMMEM bool "rpi-armmem" depends on BR2_arm && BR2_PACKAGE_RPI_FIRMWARE && BR2_PACKAGE_RPI_USERLAND help A replacement for memcpy and memset functionality for the Raspberry Pi with the intention of gaining greater performance. https://github.com/bavison/arm-mem/ ================================================ FILE: package/rpi-armmem/rpi-armmem.mk ================================================ ################################################################################ # # rpi-armmem # ################################################################################ RPI_ARMMEM_VERSION = b48ea154fd74410022d8189003cd69fad8f3d02c RPI_ARMMEM_SITE = $(call github,bavison,arm-mem,$(RPI_ARMMEM_VERSION)) CFLAGS = -fPIC -std=gnu99 -O2 define RPI_ARMMEM_BUILD_CMDS $(MAKE) CROSS_COMPILE="$(TARGET_CROSS)" CFLAGS="$(CFLAGS)" all -C $(@D) endef define RPI_ARMMEM_INSTALL_TARGET_CMDS if [ -n "$(BR2_cortex_a7)" ]; then suffix="v7l"; else suffix="v6l"; fi; \ $(INSTALL) -D -m 0755 $(@D)/libarmmem-$${suffix}.so $(TARGET_DIR)/usr/lib/libarmmem.so endef $(eval $(generic-package)) ================================================ FILE: package/rpi-bt-firmware/Config.in ================================================ config BR2_PACKAGE_RPI_BT_FIRMWARE bool "rpi-bt-firmware" depends on BR2_arm || BR2_aarch64 help Raspberry Pi 3 and Zero W Broadcom BCM43438 Bluetooth module firmware. Raspberry Pi 3 Model B+ Broadcom BCM4345C0 Bluetooth module firmware. https://github.com/LibreELEC/brcmfmac_sdio-firmware-rpi ================================================ FILE: package/rpi-bt-firmware/rpi-bt-firmware.hash ================================================ # Locally computed sha256 e51b717c2a60ca29fcdd8e04e07c00996226cb48fa56a8ad1934b5f4ddee2e3d rpi-bt-firmware-ea9963f3f77b4bb6cd280577eb115152bdd67e8d.tar.gz sha256 b16056fc91b82a0e3e8de8f86c2dac98201aa9dc3cbd33e8d38f1b087fcec30d LICENCE.broadcom_bcm43xx ================================================ FILE: package/rpi-bt-firmware/rpi-bt-firmware.mk ================================================ ################################################################################ # # rpi-bt-firmware # ################################################################################ RPI_BT_FIRMWARE_VERSION = ea9963f3f77b4bb6cd280577eb115152bdd67e8d RPI_BT_FIRMWARE_SITE = $(call github,LibreELEC,brcmfmac_sdio-firmware-rpi,$(RPI_BT_FIRMWARE_VERSION)) RPI_BT_FIRMWARE_LICENSE = PROPRIETARY RPI_BT_FIRMWARE_LICENSE_FILES = LICENCE.broadcom_bcm43xx define RPI_BT_FIRMWARE_INSTALL_TARGET_CMDS $(INSTALL) -d $(TARGET_DIR)/lib/firmware/brcm $(INSTALL) -m 0644 $(@D)/firmware/brcm/*.hcd $(TARGET_DIR)/lib/firmware/brcm endef $(eval $(generic-package)) ================================================ FILE: package/rpi-firmware/Config.in ================================================ config BR2_PACKAGE_RPI_FIRMWARE bool "rpi-firmware" depends on BR2_arm || BR2_aarch64 help RaspberryPi Firmware Pre-compiled binaries of the current bootloader and GPU firmware https://github.com/raspberrypi/firmware if BR2_PACKAGE_RPI_FIRMWARE config BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN bool "rpi 0/1/2/3 bootcode.bin" help The bootcode.bin for versions Zero/1/2/3 (not needed on rpi4, because it has been replaced by boot code in the onboard EEPROM). config BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI bool "rpi 0/1/2/3 (default)" help The default set of files for versions Zero/1/2/3. config BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI_X bool "rpi 0/1/2/3 (extended)" help The extended set of files for versions Zero/1/2/3 (additional GPU features, eg. more audio/video codecs). config BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI_CD bool "rpi 0/1/2/3 (cut-down)" help The cut-down set of files for versions Zero/1/2/3 (only features required to boot a Linux kernel). config BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI_DB bool "rpi 0/1/2/3 (debug)" help The debug set of files for versions Zero/1/2/3. config BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4 bool "rpi 4 (default)" help The default set of files for versions 4 (standard GPU features). config BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X bool "rpi 4 (extended)" help The extended set of files for versions 4 (additional GPU features, eg. more audio/video codecs). config BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_CD bool "rpi 4 (cut-down)" help The cut-down set of files for versions 4 (only features required to boot a Linux kernel). config BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_DB bool "rpi 4 (debug)" help The debug set of files for versions 4. config BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE string "Path to a file stored as boot/config.txt" help Path to a file stored as config.txt in the boot partiton of the generated SD card image. config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS bool "Install Device Tree Blobs (DTBs)" default y depends on !BR2_LINUX_KERNEL_DTS_SUPPORT help If you are using a Linux kernel <= 3.18, you should say 'y' here. If you are using a Linux kernel >= 3.19, you should say 'n' here, and enable BR2_LINUX_KERNEL_DTS_SUPPORT to let the kernel build the DTB. config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS bool "Install DTB overlays" default y depends on BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS \ || BR2_LINUX_KERNEL_DTS_SUPPORT select BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT \ if BR2_LINUX_KERNEL_DTS_SUPPORT help Say 'y' here if you need to load one or more of the DTB overlays, to support HATs (Hardware Attached on Top, add-on modules). config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_VCDBG bool "vcdbg" depends on BR2_arm # prebuilt arm binary, rpi-userland depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_INSTALL_LIBSTDCPP # rpi-userland select BR2_PACKAGE_RPI_USERLAND help Install vcdbg, to help debug communication with the GPU. comment "vcdbg needs a glibc toolchain w/ C++" depends on BR2_arm depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP endif # BR2_PACKAGE_RPI_FIRMWARE ================================================ FILE: package/rpi-firmware/cmdline.txt ================================================ root=/dev/mmcblk0p2 rootwait console=tty1 console=ttyAMA0,115200 ================================================ FILE: package/rpi-firmware/rpi-firmware.hash ================================================ # Locally computed sha256 a4d9a2d28bca88f8c6f2b8282dbb12789d2363d83cc6534392766276873d2d35 rpi-firmware-61966732d03de9b71baf561f920e018b54c241ac.tar.gz sha256 c7283ff51f863d93a275c66e3b4cb08021a5dd4d8c1e7acc47d872fbe52d3d6b boot/LICENCE.broadcom ================================================ FILE: package/rpi-firmware/rpi-firmware.mk ================================================ ################################################################################ # # rpi-firmware # ################################################################################ RPI_FIRMWARE_VERSION = 61966732d03de9b71baf561f920e018b54c241ac RPI_FIRMWARE_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_VERSION)) RPI_FIRMWARE_LICENSE = BSD-3-Clause RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom RPI_FIRMWARE_INSTALL_IMAGES = YES RPI_FIRMWARE_FILES = \ $(if $(BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN), bootcode.bin) \ $(if $(BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI), start.elf fixup.dat) \ $(if $(BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI_X), start_x.elf fixup_x.dat) \ $(if $(BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI_CD), start_cd.elf fixup_cd.dat) \ $(if $(BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI_DB), start_db.elf fixup_db.dat) \ $(if $(BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4), start4.elf fixup4.dat) \ $(if $(BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X), start4x.elf fixup4x.dat) \ $(if $(BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_CD), start4cd.elf fixup4cd.dat) \ $(if $(BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_DB), start4db.elf fixup4db.dat) define RPI_FIRMWARE_INSTALL_BIN $(foreach f,$(RPI_FIRMWARE_FILES), \ $(INSTALL) -D -m 0644 $(@D)/boot/$(f) $(BINARIES_DIR)/rpi-firmware/$(f) ) endef RPI_FIRMWARE_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE)) ifneq ($(RPI_FIRMWARE_CONFIG_FILE),) define RPI_FIRMWARE_INSTALL_CONFIG $(INSTALL) -D -m 0644 $(RPI_FIRMWARE_CONFIG_FILE) \ $(BINARIES_DIR)/rpi-firmware/config.txt endef endif ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS),y) define RPI_FIRMWARE_INSTALL_DTB $(foreach dtb,$(wildcard $(@D)/boot/*.dtb), \ $(INSTALL) -D -m 0644 $(dtb) $(BINARIES_DIR)/rpi-firmware/$(notdir $(dtb)) ) endef endif ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS),y) define RPI_FIRMWARE_INSTALL_DTB_OVERLAYS $(foreach ovldtb,$(wildcard $(@D)/boot/overlays/*.dtbo), \ $(INSTALL) -D -m 0644 $(ovldtb) $(BINARIES_DIR)/rpi-firmware/overlays/$(notdir $(ovldtb)) ) endef else # Still create the directory, so a genimage.cfg can include it independently of # whether _INSTALL_DTB_OVERLAYS is selected or not. define RPI_FIRMWARE_INSTALL_DTB_OVERLAYS $(INSTALL) -d $(BINARIES_DIR)/rpi-firmware/overlays endef 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 \ $(TARGET_DIR)/usr/sbin/vcdbg $(INSTALL) -D -m 0644 $(@D)/$(if BR2_ARM_EABIHF,hardfp/)opt/vc/lib/libelftoolchain.so \ $(TARGET_DIR)/usr/lib/libelftoolchain.so endef endif # INSTALL_VCDBG define RPI_FIRMWARE_INSTALL_IMAGES_CMDS $(INSTALL) -D -m 0644 package/rpi-firmware/cmdline.txt $(BINARIES_DIR)/rpi-firmware/cmdline.txt $(RPI_FIRMWARE_INSTALL_BIN) $(RPI_FIRMWARE_INSTALL_CONFIG) $(RPI_FIRMWARE_INSTALL_DTB) $(RPI_FIRMWARE_INSTALL_DTB_OVERLAYS) endef $(eval $(generic-package)) ================================================ FILE: package/rpi-userland/0001-Add-.pc-files-for-the-OpenGLESv2-EGL-and-bcm_host-li.patch ================================================ From 4824be8986c2b6ef0b0bd2b32bc99c4ba6406640 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sat, 24 Jan 2015 19:44:14 +0100 Subject: [PATCH] Add .pc files for the OpenGLESv2, EGL and bcm_host libraries Those pkg-config files make it easier for Qt5 to find those libraries and the appropriate link flags. Signed-off-by: Thomas Petazzoni Signed-off-by: "Yann E. MORIN" [Rebased for rpi-userland-a1b89e91f393c7134b4cdc36431f863bb3333163] Signed-off-by: Peter Seiderer --- host_applications/linux/libs/bcm_host/CMakeLists.txt | 4 ++++ host_applications/linux/libs/bcm_host/bcm_host.pc.in | 10 ++++++++++ interface/khronos/CMakeLists.txt | 8 ++++++++ interface/khronos/egl/egl.pc.in | 11 +++++++++++ interface/khronos/glxx/glesv2.pc.in | 10 ++++++++++ 5 files changed, 43 insertions(+) create mode 100644 host_applications/linux/libs/bcm_host/bcm_host.pc.in create mode 100644 interface/khronos/egl/egl.pc.in create mode 100644 interface/khronos/glxx/glesv2.pc.in diff --git a/host_applications/linux/libs/bcm_host/CMakeLists.txt b/host_applications/linux/libs/bcm_host/CMakeLists.txt index 1edf50a..1f29ead 100644 --- a/host_applications/linux/libs/bcm_host/CMakeLists.txt +++ b/host_applications/linux/libs/bcm_host/CMakeLists.txt @@ -20,3 +20,7 @@ target_link_libraries(bcm_host vcos vchostif) install(TARGETS bcm_host DESTINATION lib) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bcm_host.pc.in" + "${CMAKE_CURRENT_BINARY_DIR}/bcm_host.pc" @ONLY) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bcm_host.pc" + DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig") diff --git a/host_applications/linux/libs/bcm_host/bcm_host.pc.in b/host_applications/linux/libs/bcm_host/bcm_host.pc.in new file mode 100644 index 0000000..d40d350 --- /dev/null +++ b/host_applications/linux/libs/bcm_host/bcm_host.pc.in @@ -0,0 +1,10 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: bcm_host +Description: Broadcom VideoCore host API library +Version: 1 +Libs: -L${libdir} -lbcm_host -lvcos -lvchiq_arm +Cflags: -I${includedir} -I${includedir}/interface/vmcs_host/linux -I${includedir}/interface/vcos/pthreads -DUSE_VCHIQ_ARM diff --git a/interface/khronos/CMakeLists.txt b/interface/khronos/CMakeLists.txt index 4231af4..2844ebd 100644 --- a/interface/khronos/CMakeLists.txt +++ b/interface/khronos/CMakeLists.txt @@ -74,6 +74,14 @@ target_link_libraries(OpenVG EGL) install(TARGETS EGL GLESv2 OpenVG WFC khrn_client DESTINATION lib) install(TARGETS EGL_static GLESv2_static khrn_static DESTINATION lib) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/egl/egl.pc.in" + "${CMAKE_CURRENT_BINARY_DIR}/egl/egl.pc" @ONLY) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/egl/egl.pc" + DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig") +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/glxx/glesv2.pc.in" + "${CMAKE_CURRENT_BINARY_DIR}/glxx/glesv2.pc" @ONLY) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glxx/glesv2.pc" + DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig") # recommended names to use to avoid conflicts with mesa libs add_library(brcmEGL ${SHARED} ${EGL_SOURCE}) diff --git a/interface/khronos/egl/egl.pc.in b/interface/khronos/egl/egl.pc.in new file mode 100644 index 0000000..5868706 --- /dev/null +++ b/interface/khronos/egl/egl.pc.in @@ -0,0 +1,11 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: egl +Description: RasberryPi implementation of EGL +Version: 10 +Libs: -L${libdir} -lEGL -lGLESv2 -lbcm_host -lvchostif +Cflags: -I${includedir}/ -I${includedir}/interface/vcos/pthreads/ \ + -I${includedir}/interface/vmcs_host/linux/ diff --git a/interface/khronos/glxx/glesv2.pc.in b/interface/khronos/glxx/glesv2.pc.in new file mode 100644 index 0000000..2f58eed --- /dev/null +++ b/interface/khronos/glxx/glesv2.pc.in @@ -0,0 +1,10 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: glesv2 +Description: RasberryPi implementation of OpenGL ESv2 +Version: 2.0 +Libs: -L${libdir} -lGLESv2 +Cflags: -I${includedir}/ -- 2.8.1 ================================================ FILE: package/rpi-userland/0002-interface-remove-faulty-assert-to-make-weston-happy-.patch ================================================ From a126ee5a3235792abb58daffd9d4b3e1012f675b Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sat, 24 Jan 2015 22:07:19 +0100 Subject: [PATCH] interface: remove faulty assert() to make weston happy at runtime This was removed after a discussion on IRC with the weston guys ('daniels' on irc.freenode.net/#wayland). Upstream status: no, will be pushed by weston guys later. If not, I'll do it. Signed-off-by: "Yann E. MORIN" [Rebased for rpi-userland-a1b89e91f393c7134b4cdc36431f863bb3333163] Signed-off-by: Peter Seiderer --- interface/vmcs_host/vc_vchi_dispmanx.c | 1 - 1 file changed, 1 deletion(-) diff --git a/interface/vmcs_host/vc_vchi_dispmanx.c b/interface/vmcs_host/vc_vchi_dispmanx.c index 133e86d..0c7873c 100755 --- a/interface/vmcs_host/vc_vchi_dispmanx.c +++ b/interface/vmcs_host/vc_vchi_dispmanx.c @@ -1306,7 +1306,6 @@ static void *dispmanx_notify_func( void *arg ) { // Decrement the use count - the corresponding "use" is in vc_dispmanx_update_submit. vchi_service_release(dispmanx_client.notify_handle[0]); if (dispmanx_client.update_callback ) { - vcos_assert( dispmanx_client.pending_update_handle == handle); dispmanx_client.update_callback(handle, dispmanx_client.update_callback_param); } } else { -- 2.8.1 ================================================ FILE: package/rpi-userland/0003-Disable-Werror-everywhere.patch ================================================ From cc9ac86bcff79697d354cc51d3a984fd0f362868 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Thu, 22 Sep 2016 22:59:11 +0200 Subject: [PATCH] Disable Werror everywhere With gcc-5.1, some constructs that were previously accepted (but wrong) are now considered warnings, and thus -Werror makes them errors. Ditch -Werror altoghether. Signed-off-by: "Yann E. MORIN" [Rebased for rpi-userland-a1b89e91f393c7134b4cdc36431f863bb3333163] Signed-off-by: Peter Seiderer [Rebased for rpi-userland-8f0abfb07b96e7ee85f46e59d895014ec5e25f5e] Signed-off-by: Peter Seiderer [Rebased for rpi-userland-5070cb7fc150fc98f1ed64a7739c3356970d9f76] Signed-off-by: Peter Seiderer --- host_applications/android/apps/vidtex/CMakeLists.txt | 2 +- host_applications/linux/apps/gencmd/CMakeLists.txt | 2 +- host_applications/linux/apps/raspicam/CMakeLists.txt | 2 +- host_applications/linux/apps/smem/CMakeLists.txt | 2 +- host_applications/linux/libs/bcm_host/CMakeLists.txt | 2 +- host_applications/linux/libs/sm/CMakeLists.txt | 2 +- interface/mmal/CMakeLists.txt | 2 +- interface/vcos/CMakeLists.txt | 2 +- interface/vcos/pthreads/CMakeLists.txt | 2 +- interface/vmcs_host/CMakeLists.txt | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/host_applications/android/apps/vidtex/CMakeLists.txt b/host_applications/android/apps/vidtex/CMakeLists.txt index 6d66d69..06a3192 100644 --- a/host_applications/android/apps/vidtex/CMakeLists.txt +++ b/host_applications/android/apps/vidtex/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 2.8) -SET(COMPILE_DEFINITIONS -Werror -Wall) +SET(COMPILE_DEFINITIONS -Wall) # Set --no-as-needed to stop the linker discarding mmal_vc_client # as it can't see that the constructor registers a load of functionality diff --git a/host_applications/linux/apps/gencmd/CMakeLists.txt b/host_applications/linux/apps/gencmd/CMakeLists.txt index f95d1a1..034bf20 100644 --- a/host_applications/linux/apps/gencmd/CMakeLists.txt +++ b/host_applications/linux/apps/gencmd/CMakeLists.txt @@ -4,7 +4,7 @@ if (WIN32) set(VCOS_PLATFORM win32) else () set(VCOS_PLATFORM pthreads) - add_definitions(-Wall -Werror) + add_definitions(-Wall ) endif () include_directories( ../../../.. diff --git a/host_applications/linux/apps/raspicam/CMakeLists.txt b/host_applications/linux/apps/raspicam/CMakeLists.txt index f7db21e..b94bdc3 100644 --- a/host_applications/linux/apps/raspicam/CMakeLists.txt +++ b/host_applications/linux/apps/raspicam/CMakeLists.txt @@ -1,7 +1,7 @@ # raspistill/raspivid/raspiyuv -SET(COMPILE_DEFINITIONS -Werror) +SET(COMPILE_DEFINITIONS ) # Set --no-as-needed to stop the linker discarding mmal_vc_client # as it can't see that the constructor registers a load of functionality diff --git a/host_applications/linux/apps/smem/CMakeLists.txt b/host_applications/linux/apps/smem/CMakeLists.txt index 0fa8328..f0d1e77 100644 --- a/host_applications/linux/apps/smem/CMakeLists.txt +++ b/host_applications/linux/apps/smem/CMakeLists.txt @@ -4,7 +4,7 @@ get_filename_component (VIDEOCORE_ROOT ../../../.. ABSOLUTE) include (${VIDEOCORE_ROOT}/makefiles/cmake/global_settings.cmake) if (NOT WIN32) - add_definitions(-Wall -Werror) + add_definitions(-Wall ) endif () include_directories ( diff --git a/host_applications/linux/libs/bcm_host/CMakeLists.txt b/host_applications/linux/libs/bcm_host/CMakeLists.txt index 2154e53..c23779b 100644 --- a/host_applications/linux/libs/bcm_host/CMakeLists.txt +++ b/host_applications/linux/libs/bcm_host/CMakeLists.txt @@ -3,7 +3,7 @@ if (WIN32) set(VCOS_PLATFORM win32) else () set(VCOS_PLATFORM pthreads) - add_definitions(-Wall -Werror) + add_definitions(-Wall ) endif () # set this as we want all the source of vchostif to be available in libbcm_host diff --git a/host_applications/linux/libs/sm/CMakeLists.txt b/host_applications/linux/libs/sm/CMakeLists.txt index 5ce5aca..02aea7c 100644 --- a/host_applications/linux/libs/sm/CMakeLists.txt +++ b/host_applications/linux/libs/sm/CMakeLists.txt @@ -3,7 +3,7 @@ if (WIN32) set(VCOS_PLATFORM win32) else () set(VCOS_PLATFORM pthreads) - add_definitions(-Wall -Werror) + add_definitions(-Wall ) endif () include_directories( ../../../.. diff --git a/interface/mmal/CMakeLists.txt b/interface/mmal/CMakeLists.txt index 46f149d..06273dc 100644 --- a/interface/mmal/CMakeLists.txt +++ b/interface/mmal/CMakeLists.txt @@ -3,7 +3,7 @@ if (NOT DEFINED LIBRARY_TYPE) set(LIBRARY_TYPE SHARED) endif (NOT DEFINED LIBRARY_TYPE) -add_definitions(-Wall -Werror) +add_definitions(-Wall ) add_library(mmal SHARED util/mmal_util.c) diff --git a/interface/vcos/CMakeLists.txt b/interface/vcos/CMakeLists.txt index 23a8d72..988b104 100644 --- a/interface/vcos/CMakeLists.txt +++ b/interface/vcos/CMakeLists.txt @@ -43,7 +43,7 @@ foreach (header ${HEADERS}) endforeach () if (CMAKE_COMPILER_IS_GNUCC) - add_definitions (-ggdb -Werror -Wall) + add_definitions (-ggdb -Wall) endif () if (CMAKE_COMPILER_2005) diff --git a/interface/vcos/pthreads/CMakeLists.txt b/interface/vcos/pthreads/CMakeLists.txt index 1d81ca3..b35cd8e 100644 --- a/interface/vcos/pthreads/CMakeLists.txt +++ b/interface/vcos/pthreads/CMakeLists.txt @@ -1,7 +1,7 @@ # MSVC5 does not fully support C99, enabling declaration-after-statement # warnings allows a common MSVC5 build error to be detected in Linux builds. if (CMAKE_COMPILER_IS_GNUCC) - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -Wdeclaration-after-statement") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wdeclaration-after-statement") add_definitions (-D_GNU_SOURCE) endif () diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt index a157db1..dc384ca 100755 --- a/interface/vmcs_host/CMakeLists.txt +++ b/interface/vmcs_host/CMakeLists.txt @@ -2,7 +2,7 @@ # interface/vmcs_host # not working in release build -# add_definitions(-Werror) +# add_definitions() # vc_vchi_gencmd.c has a type-punning problem in vc_gencmd_read_response add_definitions(-fno-strict-aliasing) -- 2.23.0 ================================================ FILE: package/rpi-userland/0004-host-applications-disable-missing-applications.patch ================================================ From c8d2c332da2a03ed80d62628bbf54187a66f49b6 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Fri, 24 Jul 2015 20:20:33 +0200 Subject: [PATCH] host-applications: disable missing applications Those applications are missing from the public rpi-firmware package, so do not even try to build them. Signed-off-by: "Yann E. MORIN" [Rebased for rpi-userland-a1b89e91f393c7134b4cdc36431f863bb3333163] Signed-off-by: Peter Seiderer --- host_applications/linux/CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/host_applications/linux/CMakeLists.txt b/host_applications/linux/CMakeLists.txt index 5a648e7..83bb66e 100644 --- a/host_applications/linux/CMakeLists.txt +++ b/host_applications/linux/CMakeLists.txt @@ -12,10 +12,7 @@ add_subdirectory(apps/dtoverlay) add_subdirectory(apps/dtmerge) if(ALL_APPS) - add_subdirectory(apps/vcdbg) - add_subdirectory(libs/elftoolchain) # add_subdirectory(apps/smct) - add_subdirectory(apps/edid_parser) add_subdirectory(apps/hello_pi) endif() -- 2.8.1 ================================================ FILE: package/rpi-userland/0005-dtmerge-add-missing-include-for-va_list.patch ================================================ 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 ================================================ FILE: package/rpi-userland/Config.in ================================================ config BR2_PACKAGE_RPI_USERLAND bool "rpi-userland" depends on BR2_arm depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBGLES select BR2_PACKAGE_HAS_LIBOPENVG select BR2_PACKAGE_HAS_LIBOPENMAX help Raspberry Pi Userland contains the necessary library to use the VideoCore driver. Includes source for the ARM side code to interface to: EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG. https://github.com/raspberrypi/userland/ if BR2_PACKAGE_RPI_USERLAND config BR2_PACKAGE_PROVIDES_LIBEGL default "rpi-userland" config BR2_PACKAGE_PROVIDES_LIBGLES default "rpi-userland" config BR2_PACKAGE_PROVIDES_LIBOPENVG default "rpi-userland" config BR2_PACKAGE_PROVIDES_LIBOPENMAX default "rpi-userland" config BR2_PACKAGE_RPI_USERLAND_HELLO bool "hello_pi examples" help Install the hello-pi examples to test the HW (GPU, camera...) endif comment "rpi-userland needs a toolchain w/ C++, threads, dynamic library" depends on BR2_arm depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS ================================================ FILE: package/rpi-userland/rpi-userland.hash ================================================ # Locally computed sha256 ab8a5b27c34cf1b97de87b895448a6355229f73b679866b47c51a723273cc8ae rpi-userland-c4fd1b8986c6d6d4ae5cd51e65a8bbeb495dfa4e.tar.gz sha256 bee6f1249175683d8610651706e1aa7dffcbfd3f9c4c05bc1e5ab34f313c2db5 LICENCE ================================================ FILE: package/rpi-userland/rpi-userland.mk ================================================ ################################################################################ # # rpi-userland # ################################################################################ RPI_USERLAND_VERSION = c4fd1b8986c6d6d4ae5cd51e65a8bbeb495dfa4e RPI_USERLAND_SITE = $(call github,raspberrypi,userland,$(RPI_USERLAND_VERSION)) RPI_USERLAND_LICENSE = BSD-3-Clause RPI_USERLAND_LICENSE_FILES = LICENCE RPI_USERLAND_INSTALL_STAGING = YES RPI_USERLAND_CONF_OPTS = -DVMCS_INSTALL_PREFIX=/usr RPI_USERLAND_PROVIDES = libegl libgles libopenmax libopenvg define RPI_USERLAND_INSTALL_LIBFDT $(INSTALL) -m 0644 -D \ $(@D)/build/lib/libfdt.so \ $(TARGET_DIR)/usr/lib/libfdt.so endef RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_INSTALL_LIBFDT ifeq ($(BR2_PACKAGE_RPI_USERLAND_HELLO),y) RPI_USERLAND_CONF_OPTS += -DALL_APPS=ON define RPI_USERLAND_EXTRA_LIBS_TARGET $(INSTALL) -m 0644 -D \ $(@D)/build/lib/libilclient.so \ $(TARGET_DIR)/usr/lib/libilclient.so endef RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_EXTRA_LIBS_TARGET define RPI_USERLAND_EXTRA_LIBS_STAGING $(INSTALL) -m 0644 -D \ $(@D)/build/lib/libilclient.so \ $(STAGING_DIR)/usr/lib/libilclient.so endef RPI_USERLAND_POST_INSTALL_STAGING_HOOKS += RPI_USERLAND_EXTRA_LIBS_STAGING else RPI_USERLAND_CONF_OPTS += -DALL_APPS=OFF endif # BR2_PACKAGE_RPI_USERLAND_HELLO define RPI_USERLAND_POST_TARGET_CLEANUP rm -Rf $(TARGET_DIR)/usr/src endef RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP $(eval $(cmake-package)) ================================================ FILE: package/rpi-wifi-firmware/Config.in ================================================ config BR2_PACKAGE_RPI_WIFI_FIRMWARE bool "rpi-wifi-firmware" depends on BR2_arm || BR2_aarch64 depends on !BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX help Raspberry Pi 3 and Zero W Broadcom BCM43430 wifi module NVRAM data. Raspberry Pi 3 Model B+ Broadcom BCM43455 wifi module NVRAM data. https://github.com/LibreELEC/brcmfmac_sdio-firmware-rpi comment "rpi-wifi-firmware conflicts with linux-firmware Broadcom BRCM bcm43xx" depends on BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX ================================================ FILE: package/rpi-wifi-firmware/rpi-wifi-firmware.hash ================================================ # Locally calculated sha256 e51b717c2a60ca29fcdd8e04e07c00996226cb48fa56a8ad1934b5f4ddee2e3d rpi-wifi-firmware-ea9963f3f77b4bb6cd280577eb115152bdd67e8d.tar.gz sha256 b16056fc91b82a0e3e8de8f86c2dac98201aa9dc3cbd33e8d38f1b087fcec30d LICENCE.broadcom_bcm43xx ================================================ FILE: package/rpi-wifi-firmware/rpi-wifi-firmware.mk ================================================ ################################################################################ # # rpi-wifi-firmware # ################################################################################ RPI_WIFI_FIRMWARE_VERSION = ea9963f3f77b4bb6cd280577eb115152bdd67e8d RPI_WIFI_FIRMWARE_SITE = $(call github,LibreELEC,brcmfmac_sdio-firmware-rpi,$(RPI_WIFI_FIRMWARE_VERSION)) RPI_WIFI_FIRMWARE_LICENSE = PROPRIETARY RPI_WIFI_FIRMWARE_LICENSE_FILES = LICENCE.broadcom_bcm43xx define RPI_WIFI_FIRMWARE_INSTALL_TARGET_CMDS $(INSTALL) -d $(TARGET_DIR)/lib/firmware/brcm $(INSTALL) -m 0644 $(@D)/firmware/brcm/brcmfmac* $(TARGET_DIR)/lib/firmware/brcm ln -sf ../cypress/cyfmac43430-sdio.bin $(TARGET_DIR)/lib/firmware/brcm/brcmfmac43430-sdio.bin ln -sf ../cypress/cyfmac43430-sdio.clm_blob $(TARGET_DIR)/lib/firmware/brcm/brcmfmac43430-sdio.clm_blob ln -sf brcmfmac43430-sdio.txt $(TARGET_DIR)/lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt ln -sf brcmfmac43430-sdio.txt $(TARGET_DIR)/lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt ln -sf ../cypress/cyfmac43455-sdio.bin $(TARGET_DIR)/lib/firmware/brcm/brcmfmac43455-sdio.bin ln -sf ../cypress/cyfmac43455-sdio.clm_blob $(TARGET_DIR)/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob ln -sf brcmfmac43455-sdio.txt $(TARGET_DIR)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.txt ln -sf brcmfmac43455-sdio.txt $(TARGET_DIR)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt ln -sf brcmfmac43455-sdio.txt $(TARGET_DIR)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt $(INSTALL) -d $(TARGET_DIR)/lib/firmware/cypress $(INSTALL) -m 0644 $(@D)/firmware/cypress/cyfmac* $(TARGET_DIR)/lib/firmware/cypress endef $(eval $(generic-package)) ================================================ FILE: package/rpm/Config.in ================================================ comment "rpm needs a toolchain w/ dynamic library, threads and lua >= 5.3" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \ || !BR2_PACKAGE_LUA || BR2_PACKAGE_LUA_5_1 depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS depends on BR2_USE_MMU config BR2_PACKAGE_RPM bool "rpm" depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS depends on BR2_PACKAGE_LUA && !BR2_PACKAGE_LUA_5_1 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_FILE select BR2_PACKAGE_POPT select BR2_PACKAGE_ZLIB help The RPM Package Manager (RPM). http://www.rpm.org/ if BR2_PACKAGE_RPM comment "rpm2archive support needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR config BR2_PACKAGE_RPM_RPM2ARCHIVE bool "rpm2archive command" default y depends on BR2_USE_WCHAR select BR2_PACKAGE_LIBARCHIVE help Enable rpm2archive endif ================================================ FILE: package/rpm/rpm.hash ================================================ # From https://rpm.org/wiki/Releases/4.17.0.html sha256 2e0d220b24749b17810ed181ac1ed005a56bbb6bc8ac429c21f314068dc65e6a rpm-4.17.0.tar.bz2 # Hash for license file sha256 171d94d9f1641316bff7f157a903237dc69cdb5fca405fed8c832c76ed8370f9 COPYING ================================================ FILE: package/rpm/rpm.mk ================================================ ################################################################################ # # rpm # ################################################################################ RPM_VERSION_MAJOR = 4.17 RPM_VERSION = $(RPM_VERSION_MAJOR).0 RPM_SOURCE = rpm-$(RPM_VERSION).tar.bz2 RPM_SITE = http://ftp.rpm.org/releases/rpm-$(RPM_VERSION_MAJOR).x RPM_DEPENDENCIES = \ host-pkgconf \ $(if $(BR2_PACKAGE_BZIP2),bzip2) \ $(if $(BR2_PACKAGE_ELFUTILS),elfutils) \ file \ lua \ popt \ $(if $(BR2_PACKAGE_XZ),xz) \ zlib \ $(TARGET_NLS_DEPENDENCIES) RPM_LICENSE = GPL-2.0 or LGPL-2.0 (library only) RPM_LICENSE_FILES = COPYING RPM_CPE_ID_VENDOR = rpm RPM_SELINUX_MODULES = rpm # Don't set --{dis,en}-openmp as upstream wants to abort the build if # --enable-openmp is provided and OpenMP is < 4.5: # https://github.com/rpm-software-management/rpm/pull/1433 RPM_CONF_OPTS = \ --disable-python \ --disable-rpath \ --with-gnu-ld ifeq ($(BR2_PACKAGE_ACL),y) RPM_DEPENDENCIES += acl RPM_CONF_OPTS += --with-acl else RPM_CONF_OPTS += --without-acl endif ifeq ($(BR2_PACKAGE_AUDIT),y) RPM_DEPENDENCIES += audit RPM_CONF_OPTS += --with-audit else RPM_CONF_OPTS += --without-audit endif ifeq ($(BR2_PACKAGE_DBUS),y) RPM_DEPENDENCIES += dbus RPM_CONF_OPTS += --enable-plugins else RPM_CONF_OPTS += --disable-plugins endif ifeq ($(BR2_PACKAGE_LIBCAP),y) RPM_DEPENDENCIES += libcap RPM_CONF_OPTS += --with-cap else RPM_CONF_OPTS += --without-cap endif ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) RPM_DEPENDENCIES += libgcrypt RPM_CONF_OPTS += --with-crypto=libgcrypt else RPM_DEPENDENCIES += openssl RPM_CONF_OPTS += --with-crypto=openssl endif ifeq ($(BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL),y) RPM_CONF_OPTS += --with-libintl-prefix=$(STAGING_DIR)/usr else RPM_CONF_OPTS += --without-libintl-prefix endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) RPM_DEPENDENCIES += libselinux RPM_CONF_OPTS += --with-selinux else RPM_CONF_OPTS += --without-selinux endif ifeq ($(BR2_PACKAGE_SQLITE),y) RPM_DEPENDENCIES += sqlite RPM_CONF_OPTS += --enable-sqlite else RPM_CONF_OPTS += --disable-sqlite endif ifeq ($(BR2_PACKAGE_ZSTD),y) RPM_DEPENDENCIES += zstd RPM_CONF_OPTS += --enable-zstd else RPM_CONF_OPTS += --disable-zstd endif ifeq ($(BR2_PACKAGE_RPM_RPM2ARCHIVE),y) RPM_DEPENDENCIES += libarchive RPM_CONF_OPTS += --with-archive else RPM_CONF_OPTS += --without-archive endif # ac_cv_prog_cc_c99: RPM uses non-standard GCC extensions (ex. `asm`). RPM_CONF_ENV = \ ac_cv_prog_cc_c99='-std=gnu99' \ CFLAGS="$(TARGET_CFLAGS) $(RPM_CFLAGS)" \ LIBS=$(TARGET_NLS_LIBS) $(eval $(autotools-package)) ================================================ FILE: package/rrdtool/Config.in ================================================ config BR2_PACKAGE_RRDTOOL bool "rrdtool" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 help RRDtool is the OpenSource industry standard, high performance data logging and graphing system for time series data. http://oss.oetiker.ch/rrdtool/ if BR2_PACKAGE_RRDTOOL config BR2_PACKAGE_RRDTOOL_RRDGRAPH bool "rrd_graph" default y depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # pango -> harfbuzz depends on BR2_INSTALL_LIBSTDCPP # freetype support from pango select BR2_PACKAGE_CAIRO select BR2_PACKAGE_CAIRO_PDF select BR2_PACKAGE_CAIRO_PNG select BR2_PACKAGE_CAIRO_PS select BR2_PACKAGE_CAIRO_SVG select BR2_PACKAGE_PANGO help This enables the graphing capabilities ('rrdgraph'). Without this it will only act as a database backend. comment "rrd_graph support needs a toolchain w/ C++, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_HAS_SYNC_4 endif comment "rrdtool needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/rrdtool/rrdtool.hash ================================================ # Locally calculated sha256 a199faeb7eff7cafc46fac253e682d833d08932f3db93a550a4a5af180ca58db rrdtool-1.7.2.tar.gz sha256 ab6b4646e9e01f1ec287c29c351c886c4cb7f945c11efc0a1be9f6e5e6cc5320 COPYRIGHT sha256 d8c320ffc0030d1b096ae4732b50d2b811cf95e9a9b7377c1127b2563e0a0388 LICENSE ================================================ FILE: package/rrdtool/rrdtool.mk ================================================ ################################################################################ # # rrdtool # ################################################################################ RRDTOOL_VERSION = 1.7.2 RRDTOOL_SITE = http://oss.oetiker.ch/rrdtool/pub RRDTOOL_LICENSE = GPL-2.0+ with FLOSS license exceptions as explained in COPYRIGHT RRDTOOL_LICENSE_FILES = COPYRIGHT LICENSE RRDTOOL_DEPENDENCIES = host-pkgconf libglib2 $(TARGET_NLS_DEPENDENCIES) # 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 RRDTOOL_CONF_OPTS = \ --disable-examples \ --disable-libdbi \ --disable-librados \ --disable-libwrap \ --disable-lua \ --disable-perl \ --disable-python \ --disable-ruby \ --disable-tcl ifeq ($(BR2_PACKAGE_RRDTOOL_RRDGRAPH),y) RRDTOOL_DEPENDENCIES += cairo pango else RRDTOOL_CONF_OPTS += --disable-rrd_graph endif ifeq ($(BR2_PACKAGE_LIBXML2),y) RRDTOOL_DEPENDENCIES += libxml2 else RRDTOOL_CONF_OPTS += --disable-rrd_restore endif $(eval $(autotools-package)) ================================================ FILE: package/rs485conf/Config.in ================================================ 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 ================================================ FILE: package/rs485conf/rs485conf.hash ================================================ # Locally computed sha256 f163f81cd50aae6fa39cbb4f6408a3699da7a87a56649c4b96d6f168c9be6a7d rs485conf-5c8d00cf70950fab3454549b81dea843d844492a.tar.gz sha256 3e5c80d50879a9572ac9e463215a942490a67b56dfd8a3e27004d7c62e0493c8 LICENSE ================================================ FILE: package/rs485conf/rs485conf.mk ================================================ ################################################################################ # # rs485conf # ################################################################################ RS485CONF_VERSION = 5c8d00cf70950fab3454549b81dea843d844492a RS485CONF_SITE = $(call github,mniestroj,rs485conf,$(RS485CONF_VERSION)) RS485CONF_LICENSE = BSD-3-Clause RS485CONF_LICENSE_FILES = LICENSE define RS485CONF_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define RS485CONF_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) PREFIX="$(TARGET_DIR)/usr" -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/rsh-redone/Config.in ================================================ config BR2_PACKAGE_RSH_REDONE bool "rsh-redone" help Rsh-redone is a reimplementation of the remote shell clients and servers. It is written from the ground up to avoid the bugs found in the standard clients and servers. It also fully supports IPv6. http://packages.debian.org/source/sid/rsh-redone if BR2_PACKAGE_RSH_REDONE config BR2_PACKAGE_RSH_REDONE_RLOGIN bool "rlogin" config BR2_PACKAGE_RSH_REDONE_RLOGIND bool "rlogind" depends on !BR2_STATIC_LIBS depends on BR2_ENABLE_LOCALE && BR2_USE_WCHAR depends on !BR2_TOOLCHAIN_USES_MUSL depends on BR2_USE_MMU # linux-pam select BR2_PACKAGE_LINUX_PAM 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 config BR2_PACKAGE_RSH_REDONE_RSH bool "rsh" config BR2_PACKAGE_RSH_REDONE_RSHD bool "rshd" depends on BR2_ENABLE_LOCALE && BR2_USE_WCHAR depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # linux-pam select BR2_PACKAGE_LINUX_PAM comment "rshd needs a toolchain w/ wchar, locale, dynamic library" depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \ || BR2_STATIC_LIBS endif ================================================ FILE: package/rsh-redone/rsh-redone.hash ================================================ # From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/r/rsh-redone/rsh-redone_85-2.dsc sha256 55ac8ee2acacbc3490f073e3922c0cde46ffe4ea3c593e05c48fed4c1e1a8811 rsh-redone_85.orig.tar.gz # Locally computed sha256 92c3a6a0efe5347c282081c6f67aebfec0f33b880c9efb87eb5232dcdd748369 rsh.c ================================================ FILE: package/rsh-redone/rsh-redone.mk ================================================ ################################################################################ # # rsh-redone # ################################################################################ RSH_REDONE_VERSION = 85 RSH_REDONE_SOURCE = rsh-redone_$(RSH_REDONE_VERSION).orig.tar.gz RSH_REDONE_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/r/rsh-redone RSH_REDONE_LICENSE = GPL-2.0 RSH_REDONE_LICENSE_FILES = rsh.c RSH_REDONE_BINS-y = RSH_REDONE_BINS-$(BR2_PACKAGE_RSH_REDONE_RLOGIN) += rlogin RSH_REDONE_BINS-$(BR2_PACKAGE_RSH_REDONE_RSH) += rsh RSH_REDONE_SBINS-y = RSH_REDONE_SBINS-$(BR2_PACKAGE_RSH_REDONE_RLOGIND) += in.rlogind RSH_REDONE_SBINS-$(BR2_PACKAGE_RSH_REDONE_RSHD) += in.rshd RSH_REDONE_MAKE_FLAGS = \ BIN="$(RSH_REDONE_BINS-y)" SBIN="$(RSH_REDONE_SBINS-y)" ifneq ($(BR2_PACKAGE_RSH_REDONE_RSHD)$(BR2_PACKAGE_RSH_REDONE_RLOGIND),) RSH_REDONE_DEPENDENCIES += linux-pam endif define RSH_REDONE_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(RSH_REDONE_MAKE_FLAGS) endef define RSH_REDONE_INSTALL_TARGET_CMDS $(if $(RSH_REDONE_BINS-y)$(RSH_REDONE_SBINS-y), $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(RSH_REDONE_MAKE_FLAGS) DESTDIR=$(TARGET_DIR) \ $(if $(RSH_REDONE_BINS-y),install-bin) \ $(if $(RSH_REDONE_SBINS-y),install-sbin)) endef $(eval $(generic-package)) ================================================ FILE: package/rsync/0001-rsync-ssl-Verify-the-hostname-in-the-certificate-when-using-openssl.patch ================================================ From c3f7414c450faaf6a8281cc4a4403529aeb7d859 Mon Sep 17 00:00:00 2001 From: Matt McCutchen Date: Wed, 26 Aug 2020 12:16:08 -0400 Subject: [PATCH] rsync-ssl: Verify the hostname in the certificate when using openssl. Signed-off-by: Fabrice Fontaine [Retrieved from: https://git.samba.org/?p=rsync.git;a=commitdiff;h=c3f7414c450faaf6a8281cc4a4403529aeb7d859] --- rsync-ssl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rsync-ssl b/rsync-ssl index 8101975a..46701af1 100755 --- a/rsync-ssl +++ b/rsync-ssl @@ -129,7 +129,7 @@ function rsync_ssl_helper { fi if [[ $RSYNC_SSL_TYPE == openssl ]]; then - exec $RSYNC_SSL_OPENSSL s_client $caopt $certopt -quiet -verify_quiet -servername $hostname -connect $hostname:$port + exec $RSYNC_SSL_OPENSSL s_client $caopt $certopt -quiet -verify_quiet -servername $hostname -verify_hostname $hostname -connect $hostname:$port elif [[ $RSYNC_SSL_TYPE == gnutls ]]; then exec $RSYNC_SSL_GNUTLS --logfile=/dev/null $gnutls_cert_opt $gnutls_opts $hostname:$port else -- 2.25.1 ================================================ FILE: package/rsync/Config.in ================================================ config BR2_PACKAGE_RSYNC bool "rsync" # fork() depends on BR2_USE_MMU select BR2_PACKAGE_ZLIB select BR2_PACKAGE_POPT help File transfer program to keep remote files in sync. http://rsync.samba.org/ ================================================ FILE: package/rsync/rsync.hash ================================================ # Locally calculated after checking pgp signature # https://download.samba.org/pub/rsync/src/rsync-3.2.3.tar.gz.asc sha256 becc3c504ceea499f4167a260040ccf4d9f2ef9499ad5683c179a697146ce50e rsync-3.2.3.tar.gz # Locally calculated sha256 0d33aa97d302cb9df27f99dfa28d58001c2479a02317956f1a7a890f3937a976 COPYING ================================================ FILE: package/rsync/rsync.mk ================================================ ################################################################################ # # rsync # ################################################################################ RSYNC_VERSION = 3.2.3 RSYNC_SITE = http://rsync.samba.org/ftp/rsync/src RSYNC_LICENSE = GPL-3.0+ with exceptions RSYNC_LICENSE_FILES = COPYING RSYNC_CPE_ID_VENDOR = samba RSYNC_SELINUX_MODULES = rsync RSYNC_DEPENDENCIES = zlib popt RSYNC_CONF_OPTS = \ --with-included-zlib=no \ --with-included-popt=no \ --disable-simd \ --disable-openssl \ --disable-xxhash \ --disable-zstd \ --disable-lz4 \ --disable-asm # 0001-rsync-ssl-Verify-the-hostname-in-the-certificate-when-using-openssl.patch RSYNC_IGNORE_CVES += CVE-2020-14387 ifeq ($(BR2_PACKAGE_ACL),y) RSYNC_DEPENDENCIES += acl else RSYNC_CONF_OPTS += --disable-acl-support endif $(eval $(autotools-package)) ================================================ FILE: package/rsyslog/Config.in ================================================ config BR2_PACKAGE_RSYSLOG bool "rsyslog" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # modules depends on !BR2_TOOLCHAIN_USES_MUSL # GLOB_BRACE # 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 select BR2_PACKAGE_ZLIB select BR2_PACKAGE_LIBESTR select BR2_PACKAGE_LIBLOGGING select BR2_PACKAGE_LIBFASTJSON help Rsyslog is a powerful and flexible syslog implementation http://www.rsyslog.com comment "rsyslog needs a uClibc or glibc 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 \ || BR2_TOOLCHAIN_USES_MUSL depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/rsyslog/S01rsyslogd ================================================ #!/bin/sh DAEMON="rsyslogd" PIDFILE="/var/run/$DAEMON.pid" RSYSLOGD_ARGS="" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- $RSYSLOGD_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature (does not # reconfigure/restart on SIGHUP, just closes all open files). restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/rsyslog/rsyslog.hash ================================================ # From http://www.rsyslog.com/downloads/download-v8-stable/ sha256 19b232f765c4ba7a35b91ef1f5f9af775f6ff78ef56bb7737a2ce79ccbb32b98 rsyslog-8.2010.0.tar.gz # Locally calculated sha256 054b3a047d9232376a46b87356b19b0c0c2924cb5e6911ab96a01fc4b515f083 COPYING sha256 8743ad560dea1229d4f46cd603e10874db41a27f3c74f64e958ef123f3943fab COPYING.ASL20 sha256 4038442ca5bde8ffd243cfc235cb4455e7d618d47558ea3d8284733f71d904ed COPYING.LESSER ================================================ FILE: package/rsyslog/rsyslog.mk ================================================ ################################################################################ # # rsyslog # ################################################################################ RSYSLOG_VERSION = 8.2010.0 RSYSLOG_SITE = http://rsyslog.com/files/download/rsyslog RSYSLOG_LICENSE = GPL-3.0, LGPL-3.0, Apache-2.0 RSYSLOG_LICENSE_FILES = COPYING COPYING.LESSER COPYING.ASL20 RSYSLOG_CPE_ID_VENDOR = rsyslog # rsyslog uses weak permissions for generating log files. # Ignoring this CVE as Buildroot normally doesn't have local users and a build # could customize the rsyslog.conf to be more restrictive ($FileCreateMode 0640) RSYSLOG_IGNORE_CVES += CVE-2015-3243 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 \ mail omprog omruleset omstdout omuxsock \ pmaixforwardedfrom pmciscoios pmcisconames pmlastmsg pmsnare ifeq ($(BR2_PACKAGE_LIBRELP),y) RSYSLOG_DEPENDENCIES += librelp RSYSLOG_PLUGINS += relp endif RSYSLOG_CONF_OPTS = --disable-generate-man-pages \ $(foreach x,$(call qstrip,$(RSYSLOG_PLUGINS)),--enable-$(x)) # Disable items requiring libcurl RSYSLOG_CONF_OPTS += --disable-elasticsearch \ --disable-clickhouse \ --disable-omhttp \ --disable-fmhttp \ --disable-imdocker \ --disable-omhttpfs \ --disable-mmkubernetes ifeq ($(BR2_PACKAGE_CIVETWEB_LIB),y) RSYSLOG_DEPENDENCIES += civetweb RSYSLOG_CONF_OPTS += --enable-imhttp else RSYSLOG_CONF_OPTS += --disable-imhttp 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 ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) RSYSLOG_DEPENDENCIES += libgcrypt RSYSLOG_CONF_ENV += LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config RSYSLOG_CONF_OPTS += --enable-libgcrypt else RSYSLOG_CONF_OPTS += --disable-libgcrypt endif ifeq ($(BR2_PACKAGE_LIBPCAP),y) RSYSLOG_DEPENDENCIES += libpcap RSYSLOG_CONF_OPTS += --enable-impcap else RSYSLOG_CONF_OPTS += --disable-impcap endif ifeq ($(BR2_PACKAGE_MYSQL),y) RSYSLOG_DEPENDENCIES += mysql RSYSLOG_CONF_OPTS += --enable-mysql RSYSLOG_CONF_ENV += ac_cv_prog_MYSQL_CONFIG=$(STAGING_DIR)/usr/bin/mysql_config else RSYSLOG_CONF_OPTS += --disable-mysql endif ifeq ($(BR2_PACKAGE_POSTGRESQL),y) RSYSLOG_DEPENDENCIES += postgresql RSYSLOG_CONF_OPTS += --enable-pgsql RSYSLOG_CONF_ENV += ac_cv_prog_PG_CONFIG=$(STAGING_DIR)/usr/bin/pg_config else RSYSLOG_CONF_OPTS += --disable-pgsql endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y) RSYSLOG_DEPENDENCIES += util-linux RSYSLOG_CONF_OPTS += --enable-uuid else RSYSLOG_CONF_OPTS += --disable-uuid endif ifeq ($(BR2_INIT_SYSTEMD),y) RSYSLOG_CONF_OPTS += \ --enable-imjournal \ --enable-omjournal \ --with-systemdsystemunitdir=/usr/lib/systemd/system RSYSLOG_DEPENDENCIES += systemd else RSYSLOG_CONF_OPTS += \ --disable-imjournal \ --disable-omjournal endif define RSYSLOG_INSTALL_INIT_SYSTEMD $(INSTALL) -m 0755 -D package/rsyslog/rsyslog.service \ $(TARGET_DIR)/usr/lib/systemd/system/rsyslog.service endef define RSYSLOG_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/rsyslog/S01rsyslogd \ $(TARGET_DIR)/etc/init.d/S01rsyslogd endef define RSYSLOG_INSTALL_CONF $(INSTALL) -m 0644 -D $(@D)/platform/redhat/rsyslog.conf \ $(TARGET_DIR)/etc/rsyslog.conf mkdir -p $(TARGET_DIR)/etc/rsyslog.d endef RSYSLOG_POST_INSTALL_TARGET_HOOKS += RSYSLOG_INSTALL_CONF $(eval $(autotools-package)) ================================================ FILE: package/rsyslog/rsyslog.service ================================================ [Unit] Description=System Logging Service Requires=syslog.socket Documentation=man:rsyslogd(8) Documentation=https://www.rsyslog.com/doc/ [Service] Type=notify ExecStart=/usr/sbin/rsyslogd -n -iNONE StandardOutput=null Restart=on-failure # Increase the default a bit in order to allow many simultaneous # files to be monitored, we might need a lot of fds. LimitNOFILE=16384 [Install] WantedBy=multi-user.target Alias=syslog.service ================================================ FILE: package/rt-tests/0001-Fix-a-build-issue-with-uClibc-ng.patch ================================================ 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 ================================================ FILE: package/rt-tests/0002-Makefile-drop-explicit-undefine-PYLIB-for-compatibil.patch ================================================ From 84fea5d784e010f84c860b34e55ea2c855c17b3b Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Wed, 12 May 2021 09:18:33 +0200 Subject: [PATCH] Makefile: drop explicit undefine PYLIB for compatibility with make 3.81 GNU make 3.81 does not like the explicit tab-indented undefine: Makefile:41: *** commands commence before first target. Stop. Dropping the indentation also doesn't work: Makefile:41: *** missing separator. Stop. So simply drop the undefine logic. As explained in the GNU make manual, undefine is not commonly needed as E.G. ifdef checks for a non-zero string: https://www.gnu.org/software/make/manual/html_node/Undefine-Directive.html https://www.gnu.org/software/make/manual/html_node/Conditional-Syntax.html Fixes: http://autobuild.buildroot.net/results/cf7c4f360f5464c700788cc8299fd086544c80e8/build-end.log Signed-off-by: Peter Korsgaard [Upstream: https://marc.info/?l=linux-rt-users&m=162080462211139&w=2] --- Makefile | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Makefile b/Makefile index b17ac09..ec85ac8 100644 --- a/Makefile +++ b/Makefile @@ -36,11 +36,6 @@ LDFLAGS ?= PYLIB ?= $(shell python3 -c 'import distutils.sysconfig; print (distutils.sysconfig.get_python_lib())') -# Check for errors, such as python3 not available -ifeq (${PYLIB},) - undefine PYLIB -endif - MANPAGES = src/cyclictest/cyclictest.8 \ src/pi_tests/pi_stress.8 \ src/ptsematest/ptsematest.8 \ -- 2.20.1 ================================================ FILE: package/rt-tests/Config.in ================================================ config BR2_PACKAGE_RT_TESTS bool "rt-tests" 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(), numactl depends on !BR2_STATIC_LIBS # dlopen depends on !BR2_TOOLCHAIN_USES_MUSL # cyclictest select BR2_PACKAGE_NUMACTL help Set of utilities for testing the real-time behaviour of a Linux system. All tools are simple C programs with no dependencies, except the hwlatdetect utility, which is a Python script and therefore requires the Python interpreter. It will only be installed if a Python interpreter has been selected in the Buildroot configuration. Note that this package requires a toolchain built with the NPTL implementation of the pthread API (this is always the case with glibc toolchains, but may not necessarily be the case with uClibc toolchains, since the thread implementation is configurable). https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/rt-tests comment "rt-tests may not work on MIPS with an external uClibc toolchain" depends on BR2_PACKAGE_RT_TESTS depends on BR2_TOOLCHAIN_EXTERNAL_UCLIBC depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el 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 ================================================ FILE: package/rt-tests/rt-tests.hash ================================================ # From https://mirrors.edge.kernel.org/pub/linux/utils/rt-tests/sha256sums.asc sha256 48346ab2b5bf2ffbdb1ed0d4540e9e8e22f6665e6bb3d59c22614f9722b13a91 rt-tests-2.2.tar.xz # locally computed hash sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/rt-tests/rt-tests.mk ================================================ ################################################################################ # # rt-tests # ################################################################################ RT_TESTS_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/rt-tests RT_TESTS_SOURCE = rt-tests-$(RT_TESTS_VERSION).tar.xz RT_TESTS_VERSION = 2.2 RT_TESTS_LICENSE = GPL-2.0+ RT_TESTS_LICENSE_FILES = COPYING RT_TESTS_DEPENDENCIES = numactl RT_TESTS_CPE_ID_VENDOR = kernel define RT_TESTS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ CC="$(TARGET_CC)" \ CFLAGS="$(TARGET_CFLAGS)" \ prefix=/usr endef define RT_TESTS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ DESTDIR="$(TARGET_DIR)" \ prefix=/usr \ PYLIB="$(if $(BR2_PACKAGE_PYTHON3),/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/)" \ install endef $(eval $(generic-package)) ================================================ FILE: package/rtai/Config.in ================================================ config BR2_PACKAGE_RTAI bool "rtai" depends on BR2_LINUX_KERNEL_EXT_RTAI select BR2_LINUX_NEEDS_MODULES # not using kernel-module infra help RTAI - the RealTime Application Interface for Linux. http://www.rtai.org ================================================ FILE: package/rtai/rtai.hash ================================================ # Locally computed sha256 13669da744a0ba411bdb8e47fa47b6e19171646ae42c8dbb2735d12e555fb1a3 rtai-4.0.1.tar.bz2 ================================================ FILE: package/rtai/rtai.mk ================================================ ################################################################################ # # rtai # ################################################################################ RTAI_VERSION = 4.0.1 RTAI_SOURCE = rtai-$(RTAI_VERSION).tar.bz2 RTAI_SITE = https://www.rtai.org/userfiles/downloads/RTAI RTAI_INSTALL_STAGING = YES # The _CONFIG_SCRIPTS cannot apply here to the specificities of rtai-config define RTAI_POST_PATCH_FIXUP $(SED) 's%^staging=.*%staging=$(STAGING_DIR)%' $(STAGING_DIR)/usr/bin/rtai-config endef RTAI_POST_INSTALL_STAGING_HOOKS += RTAI_POST_PATCH_FIXUP RTAI_DEPENDENCIES = linux RTAI_CONF_OPTS = \ --includedir=/usr/include/rtai \ --with-linux-dir=$(LINUX_DIR) \ --disable-leds \ --enable-usi \ --enable-align-priority \ --disable-rtailab \ --with-module-dir=/lib/modules/$(LINUX_VERSION_PROBED)/rtai RTAI_MAKE = $(MAKE1) $(eval $(autotools-package)) ================================================ FILE: package/rtc-tools/Config.in ================================================ config BR2_PACKAGE_RTC_TOOLS bool "rtc-tools" help This package provide a set of user-space tools that can be used to manipulate Real Time Clock Devices. https://git.kernel.org/pub/scm/linux/kernel/git/abelloni/rtc-tools.git/ ================================================ FILE: package/rtc-tools/rtc-tools.hash ================================================ # Locally calculated sha256 8614e140b04da3dbb787760bdb0fe2ac5fe8907f5d3e9a74c6713e3d17fc3650 rtc-tools-33ef4aa1c92b0c92a351284d93d1ac5570de9cc7-br1.tar.gz sha256 7ae50a5344af14d6231aff6814632a220b3127da4099aea2c6070fd79c407c1a COPYING ================================================ FILE: package/rtc-tools/rtc-tools.mk ================================================ ################################################################################ # # rtc-tools # ################################################################################ RTC_TOOLS_VERSION = 33ef4aa1c92b0c92a351284d93d1ac5570de9cc7 RTC_TOOLS_SITE = git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/rtc-tools.git RTC_TOOLS_LICENSE = GPL-2.0 RTC_TOOLS_LICENSE_FILES = COPYING RTC_TOOLS_BINARIES = rtc rtc-range ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) RTC_TOOLS_BINARIES += rtc-sync endif define RTC_TOOLS_BUILD_CMDS $(foreach bin,$(RTC_TOOLS_BINARIES),\ $(TARGET_CC) $(TARGET_CFLAGS) -o $(@D)/$(bin) $(@D)/$(bin).c ) endef define RTC_TOOLS_INSTALL_TARGET_CMDS $(foreach bin,$(RTC_TOOLS_BINARIES),\ $(INSTALL) -D -m 0755 $(@D)/$(bin) $(TARGET_DIR)/usr/bin/$(bin) ) endef $(eval $(generic-package)) ================================================ FILE: package/rtl8188eu/Config.in ================================================ config BR2_PACKAGE_RTL8188EU bool "rtl8188eu" depends on BR2_LINUX_KERNEL help A standalone driver for the RTL8188EU USB Wi-Fi adapter. This is needed only for Linux kernels before 3.12. Since 3.12, there is a (staging) driver in mainline, with a similar codebase. Make sure your target kernel has the CONFIG_WIRELESS_EXT config option enabled. Note: this package needs a firmware loading mechanism to load the binary blob for the chip to work. https://github.com/lwfinger/rtl8188eu comment "rtl8188eu needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL ================================================ FILE: package/rtl8188eu/rtl8188eu.hash ================================================ # Locally computed sha256 b2b06c842bccd730d68a26b1c1b5a24f18373401e907147bf5e775fa42a36bbb rtl8188eu-60cb0b5a3cfc95e3f2e6fc294a28d987096b0559.tar.gz sha256 af8067302947c01fd9eee72befa54c7e3ef8a48fecde7fd71277f2290b2bf0f7 COPYING ================================================ FILE: package/rtl8188eu/rtl8188eu.mk ================================================ ################################################################################ # # rtl8188eu # ################################################################################ RTL8188EU_VERSION = 60cb0b5a3cfc95e3f2e6fc294a28d987096b0559 RTL8188EU_SITE = $(call github,lwfinger,rtl8188eu,$(RTL8188EU_VERSION)) RTL8188EU_LICENSE = GPL-2.0, proprietary (rtl8188eufw.bin firmware blob) RTL8188EU_LICENSE_FILES = COPYING RTL8188EU_MODULE_MAKE_OPTS = CONFIG_RTL8188EU=m define RTL8188EU_INSTALL_FIRMWARE $(INSTALL) -D -m 644 $(@D)/rtl8188eufw.bin \ $(TARGET_DIR)/lib/firmware/rtlwifi/rtl8188eufw.bin endef RTL8188EU_POST_INSTALL_TARGET_HOOKS += RTL8188EU_INSTALL_FIRMWARE $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/rtl8189fs/0001-include-disable-debug-messages.patch ================================================ From 5d3a44ff1aeb8ace6e08df3cad16102aaac1ef09 Mon Sep 17 00:00:00 2001 From: Sergey Matyukevich Date: Sun, 13 Jun 2021 15:51:51 +0300 Subject: [PATCH] include: disable debug messages Disable debug messages to make rtl8189fs driver less noisy. Signed-off-by: Sergey Matyukevich --- include/autoconf.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/autoconf.h b/include/autoconf.h index 44efe42..b5df57b 100644 --- a/include/autoconf.h +++ b/include/autoconf.h @@ -224,8 +224,6 @@ /* * Debug Related Config */ -#define CONFIG_DEBUG /* DBG_871X, etc... */ - #ifdef CONFIG_DEBUG #define DBG 1 // for ODM & BTCOEX debug //#define CONFIG_DEBUG_RTL871X /* RT_TRACE, RT_PRINT_DATA, _func_enter_, _func_exit_ */ -- 2.32.0 ================================================ FILE: package/rtl8189fs/Config.in ================================================ config BR2_PACKAGE_RTL8189FS bool "rtl8189fs" depends on BR2_LINUX_KERNEL help Wireless driver rtl8189fs. https://github.com/jwrdegoede/rtl8189ES_linux.git comment "rtl8189fs needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL ================================================ FILE: package/rtl8189fs/rtl8189fs.hash ================================================ # Locally calculated sha256 7d425e18ebc427b3df5ff31185b4dc29c6bfd54f8e167f57c2254cea341a26c6 rtl8189fs-62c31d577c385316bb99107f60e63169dacc37db.tar.gz ================================================ FILE: package/rtl8189fs/rtl8189fs.mk ================================================ ################################################################################ # # rtl8189fs # ################################################################################ RTL8189FS_VERSION = 62c31d577c385316bb99107f60e63169dacc37db RTL8189FS_SITE = $(call github,jwrdegoede,rtl8189ES_linux,$(RTL8189FS_VERSION)) RTL8189FS_LICENSE = GPL-2.0 RTL8189FS_MODULE_MAKE_OPTS = \ CONFIG_RTL8189FS=m \ KVER=$(LINUX_VERSION_PROBED) \ KSRC=$(LINUX_DIR) $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/rtl8723bs/0001-rtl8723bs-add-debug-level-modparam.patch ================================================ From 9f70428f506ac9d5af325004c01c59c62669d7eb Mon Sep 17 00:00:00 2001 From: Jason Abele Date: Sat, 15 Aug 2015 18:20:54 -0700 Subject: [PATCH] rtl8723bs: add debug level modparam For ease of controlling debug printk verbosity, add a module parameter which sets debug level at module load. Signed-off-by: Jason Abele [Fixed to apply on current version] Signed-off-by: Ariel D'Alessandro --- os_dep/os_intfs.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/os_dep/os_intfs.c b/os_dep/os_intfs.c index b30c2a0..eeb8946 100644 --- a/os_dep/os_intfs.c +++ b/os_dep/os_intfs.c @@ -231,6 +231,10 @@ module_param(rtw_decrypt_phy_file, int, 0644); MODULE_PARM_DESC(rtw_decrypt_phy_file,"Enable Decrypt PHY File"); #endif +int rtw_debug_level = _drv_err_; +module_param(rtw_debug_level, int, 0644); +MODULE_PARM_DESC(rtw_debug_level,"Set Driver Debug Verbosity"); + int _netdev_open(struct net_device *pnetdev); int netdev_open (struct net_device *pnetdev); static int netdev_close (struct net_device *pnetdev); @@ -347,6 +351,7 @@ static uint loadparam(struct adapter *padapter, _nic_hdl pnetdev) registry_par->qos_opt_enable = (u8)rtw_qos_opt_enable; registry_par->hiq_filter = (u8)rtw_hiq_filter; + GlobalDebugLevel = rtw_debug_level; return status; } -- 2.8.3 ================================================ FILE: package/rtl8723bs/Config.in ================================================ config BR2_PACKAGE_RTL8723BS bool "rtl8723bs" depends on BR2_LINUX_KERNEL help rtl8723bs wifi driver https://github.com/hadess/rtl8723bs comment "rtl8723bs needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL ================================================ FILE: package/rtl8723bs/rtl8723bs.mk ================================================ ################################################################################ # # rtl8723bs # ################################################################################ RTL8723BS_VERSION = 11ab92d8ccd71c80f0102828366b14ef6b676fb2 RTL8723BS_SITE = $(call github,hadess,rtl8723bs,$(RTL8723BS_VERSION)) RTL8723BS_LICENSE = GPL-2.0, proprietary (*.bin firmware blobs) RTL8723BS_MODULE_MAKE_OPTS = \ CONFIG_RTL8723BS=m \ KVER=$(LINUX_VERSION_PROBED) \ KSRC=$(LINUX_DIR) RTL8723BS_BINS = rtl8723bs_ap_wowlan.bin rtl8723bs_wowlan.bin \ rtl8723bs_bt.bin rtl8723bs_nic.bin define RTL8723BS_INSTALL_FIRMWARE $(foreach bin, $(RTL8723BS_BINS), \ $(INSTALL) -D -m 644 $(@D)/$(bin) $(TARGET_DIR)/lib/firmware/rtlwifi/$(bin) ) endef RTL8723BS_POST_INSTALL_TARGET_HOOKS += RTL8723BS_INSTALL_FIRMWARE $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/rtl8723bu/Config.in ================================================ config BR2_PACKAGE_RTL8723BU bool "rtl8723bu" depends on BR2_LINUX_KERNEL help rtl8723bu wifi driver https://github.com/lwfinger/rtl8723bu comment "rtl8723bu needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL ================================================ FILE: package/rtl8723bu/rtl8723bu.hash ================================================ # Locally computed sha256 4c7314dccebda1e55ec8dcf0d5ca8915c2490d17a9f56923f25e6e0e945c10cc rtl8723bu-9ce1c38439f4f574bb7adaf33949835c25536a28.tar.gz ================================================ FILE: package/rtl8723bu/rtl8723bu.mk ================================================ ################################################################################ # # rtl8723bu # ################################################################################ RTL8723BU_VERSION = 9ce1c38439f4f574bb7adaf33949835c25536a28 RTL8723BU_SITE = $(call github,lwfinger,rtl8723bu,$(RTL8723BU_VERSION)) RTL8723BU_LICENSE = GPL-2.0, proprietary (*.bin firmware blobs) RTL8723BU_MODULE_MAKE_OPTS = \ KVER=$(LINUX_VERSION_PROBED) \ KSRC=$(LINUX_DIR) define RTL8723BU_INSTALL_TARGET_CMDS $(INSTALL) -D -m 644 $(@D)/rtl8723b_fw.bin $(TARGET_DIR)/lib/firmware/rtlwifi/rtl8723b_fw.bin endef $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/rtl8812au-aircrack-ng/Config.in ================================================ comment "rtl8812au-aircrack-ng needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_RTL8812AU_AIRCRACK_NG bool "rtl8812au-aircrack-ng" depends on BR2_LINUX_KERNEL help rtl8812au wifi driver (aircrack-ng repository) https://github.com/aircrack-ng/rtl8812au ================================================ FILE: package/rtl8812au-aircrack-ng/rtl8812au-aircrack-ng.hash ================================================ # Locally calculated sha256 2c5d8286a00273343fc10d0e16afc52e788ac73b7df57c8159e58a40707f61da rtl8812au-aircrack-ng-b8167e66b4ac046b3b76c2c40008d84528e91594.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/rtl8812au-aircrack-ng/rtl8812au-aircrack-ng.mk ================================================ ################################################################################ # # rtl8812au-aircrack-ng # ################################################################################ RTL8812AU_AIRCRACK_NG_VERSION = b8167e66b4ac046b3b76c2c40008d84528e91594 RTL8812AU_AIRCRACK_NG_SITE = $(call github,aircrack-ng,rtl8812au,$(RTL8812AU_AIRCRACK_NG_VERSION)) RTL8812AU_AIRCRACK_NG_LICENSE = GPL-2.0 RTL8812AU_AIRCRACK_NG_LICENSE_FILES = LICENSE RTL8812AU_AIRCRACK_NG_MODULE_MAKE_OPTS = \ CONFIG_88XXAU=m \ KVER=$(LINUX_VERSION_PROBED) \ USER_EXTRA_CFLAGS="-DCONFIG_$(call qstrip,$(BR2_ENDIAN))_ENDIAN" $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/rtl8821au/0001-Fix-implicit-fallthrough-comments-for-kernel-5.3.patch ================================================ From 99f1e8bd7172ddf9613db3531a8b37921ed73351 Mon Sep 17 00:00:00 2001 From: Jesper Skov Date: Fri, 25 Oct 2019 10:05:41 +0200 Subject: [PATCH] Fix implicit fallthrough comments for kernel 5.3 [Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/e8a30a4c5a80efbbd5b1dbfe11b22916df4492f9.patch] Signed-off-by: Peter Seiderer Signed-off-by: Christian Stewart --- core/rtw_mlme_ext.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/rtw_mlme_ext.c b/core/rtw_mlme_ext.c index 24565ea..380f507 100644 --- a/core/rtw_mlme_ext.c +++ b/core/rtw_mlme_ext.c @@ -758,7 +758,9 @@ void mgt_dispatcher(_adapter *padapter, union recv_frame *precv_frame) else ptable->func = &OnAuthClient; //pass through + //fallthrough case WIFI_ASSOCREQ: + //fallthrough case WIFI_REASSOCREQ: _mgt_dispatcher(padapter, ptable, precv_frame); #ifdef CONFIG_HOSTAPD_MLME -- 2.28.0 ================================================ FILE: package/rtl8821au/0002-Fix-kernel-5.3-driver-crashes-from-aircrack-ng-rtl88.patch ================================================ From cde2dbf6e94e00fcf198422b03de01d3090675d9 Mon Sep 17 00:00:00 2001 From: Jesper Skov Date: Fri, 25 Oct 2019 10:10:29 +0200 Subject: [PATCH] Fix kernel 5.3 driver crashes, from aircrack-ng/rtl8812au#421 [Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/822b485d36d6f72304a219c3be228f40968b542b.patch] Signed-off-by: Peter Seiderer Signed-off-by: Christian Stewart --- os_dep/linux/rtw_cfgvendor.c | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/os_dep/linux/rtw_cfgvendor.c b/os_dep/linux/rtw_cfgvendor.c index e7ba90a..81fc8af 100644 --- a/os_dep/linux/rtw_cfgvendor.c +++ b/os_dep/linux/rtw_cfgvendor.c @@ -1173,6 +1173,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = BRCM_VENDOR_SCMD_PRIV_STR }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_priv_string_handler }, #if defined(GSCAN_SUPPORT) && 0 @@ -1182,6 +1185,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = GSCAN_SUBCMD_GET_CAPABILITIES }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_gscan_get_capabilities }, { @@ -1190,6 +1196,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = GSCAN_SUBCMD_SET_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_set_scan_cfg }, { @@ -1198,6 +1207,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = GSCAN_SUBCMD_SET_SCAN_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_set_batch_scan_cfg }, { @@ -1206,6 +1218,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = GSCAN_SUBCMD_ENABLE_GSCAN }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_initiate_gscan }, { @@ -1214,6 +1229,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = GSCAN_SUBCMD_ENABLE_FULL_SCAN_RESULTS }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_enable_full_scan_result }, { @@ -1222,6 +1240,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = GSCAN_SUBCMD_SET_HOTLIST }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_hotlist_cfg }, { @@ -1230,6 +1251,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = GSCAN_SUBCMD_SET_SIGNIFICANT_CHANGE_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_significant_change_cfg }, { @@ -1238,6 +1262,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = GSCAN_SUBCMD_GET_SCAN_RESULTS }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_gscan_get_batch_results }, { @@ -1246,6 +1273,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = GSCAN_SUBCMD_GET_CHANNEL_LIST }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_gscan_get_channel_list }, #endif /* GSCAN_SUPPORT */ @@ -1256,6 +1286,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = RTT_SUBCMD_SET_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_rtt_set_config }, { @@ -1264,6 +1297,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = RTT_SUBCMD_CANCEL_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_rtt_cancel_config }, { @@ -1272,6 +1308,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = RTT_SUBCMD_GETCAPABILITY }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = wl_cfgvendor_rtt_get_capability }, #endif /* RTT_SUPPORT */ @@ -1281,6 +1320,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = ANDR_WIFI_SUBCMD_GET_FEATURE_SET }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_get_feature_set }, { @@ -1289,6 +1331,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { .subcmd = ANDR_WIFI_SUBCMD_GET_FEATURE_SET_MATRIX }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_get_feature_set_matrix } }; -- 2.28.0 ================================================ FILE: package/rtl8821au/0003-Fix-using-sprintf-for-extending-string-which-causes-.patch ================================================ From 5b6641978e8fa68bca05d224a61f8513b010eda8 Mon Sep 17 00:00:00 2001 From: Coleman Date: Fri, 17 Jul 2020 08:53:00 +0800 Subject: [PATCH] Fix using sprintf for extending string, which causes undefined behavior [Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/be57045a0933d64e958878696883e9cf998e1bf3.patch] Signed-off-by: Coleman Signed-off-by: Christian Stewart --- core/rtw_mp.c | 2 +- os_dep/linux/ioctl_linux.c | 108 ++++++++++++++++++------------------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/core/rtw_mp.c b/core/rtw_mp.c index c2e400d..989bb3e 100644 --- a/core/rtw_mp.c +++ b/core/rtw_mp.c @@ -1871,7 +1871,7 @@ u32 mp_query_psd(PADAPTER pAdapter, u8 *data) } else { psd_data = rtw_GetPSDData(pAdapter, i); } - sprintf(data, "%s%x ", data, psd_data); + sprintf(data + strlen(data), "%x ", psd_data); i++; } diff --git a/os_dep/linux/ioctl_linux.c b/os_dep/linux/ioctl_linux.c index c74a153..9543fa3 100644 --- a/os_dep/linux/ioctl_linux.c +++ b/os_dep/linux/ioctl_linux.c @@ -9080,19 +9080,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, sprintf(extra, "\n"); for (i = 0; i < EFUSE_MAP_SIZE; i += 16) { // DBG_871X("0x%02x\t", i); - sprintf(extra, "%s0x%02x\t", extra, i); + sprintf(extra + strlen(extra), "0x%02x\t", i); for (j=0; j<8; j++) { // DBG_871X("%02X ", data[i+j]); - sprintf(extra, "%s%02X ", extra, PROMContent[i+j]); + sprintf(extra + strlen(extra), "%02X ", PROMContent[i+j]); } // DBG_871X("\t"); - sprintf(extra, "%s\t", extra); + sprintf(extra + strlen(extra), "\t"); for (; j<16; j++) { // DBG_871X("%02X ", data[i+j]); - sprintf(extra, "%s%02X ", extra, PROMContent[i+j]); + sprintf(extra + strlen(extra), "%02X ", PROMContent[i+j]); } // DBG_871X("\n"); - sprintf(extra,"%s\n",extra); + sprintf(extra + strlen(extra), "\n"); } // DBG_871X("\n"); } else if (strcmp(tmp[0], "realmap") == 0) { @@ -9107,19 +9107,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, sprintf(extra, "\n"); for (i = 0; i < EFUSE_MAP_SIZE; i += 16) { // DBG_871X("0x%02x\t", i); - sprintf(extra, "%s0x%02x\t", extra, i); + sprintf(extra + strlen(extra), "0x%02x\t", i); for (j=0; j<8; j++) { // DBG_871X("%02X ", data[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseInitMap[i+j]); + sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeEfuseInitMap[i+j]); } // DBG_871X("\t"); - sprintf(extra, "%s\t", extra); + sprintf(extra + strlen(extra), "\t"); for (; j<16; j++) { // DBG_871X("%02X ", data[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseInitMap[i+j]); + sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeEfuseInitMap[i+j]); } // DBG_871X("\n"); - sprintf(extra,"%s\n",extra); + sprintf(extra + strlen(extra), "\n"); } // DBG_871X("\n"); } else if (strcmp(tmp[0], "rmap") == 0) { @@ -9158,7 +9158,7 @@ static int rtw_mp_efuse_get(struct net_device *dev, *extra = 0; for (i=0; iBTEfuseInitMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); + sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]); } // DBG_871X("\t"); - sprintf(extra,"%s\t",extra); + sprintf(extra + strlen(extra), "\t"); for (; j<16; j++) { // DBG_871X("%02X ", pEfuseHal->BTEfuseInitMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); + sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]); } // DBG_871X("\n"); - sprintf(extra, "%s\n", extra); + sprintf(extra + strlen(extra), "\n"); } // DBG_871X("\n"); } else if (strcmp(tmp[0],"btbmap") == 0) { @@ -9384,19 +9384,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, sprintf(extra, "\n"); for (i=512; i<1024 ; i+=16) { // DBG_871X("0x%03x\t", i); - sprintf(extra, "%s0x%03x\t", extra, i); + sprintf(extra + strlen(extra), "0x%03x\t", i); for (j=0; j<8; j++) { // DBG_871X("%02X ", data[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); + sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]); } // DBG_871X("\t"); - sprintf(extra,"%s\t",extra); + sprintf(extra + strlen(extra), "\t"); for (; j<16; j++) { // DBG_871X("%02X ", data[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); + sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]); } // DBG_871X("\n"); - sprintf(extra, "%s\n", extra); + sprintf(extra + strlen(extra), "\n"); } // DBG_871X("\n"); } else if (strcmp(tmp[0],"btrmap") == 0) { @@ -9436,7 +9436,7 @@ static int rtw_mp_efuse_get(struct net_device *dev, // DBG_871X("%s: bt efuse data={", __FUNCTION__); for (i=0; ifakeBTEfuseModifiedMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); + sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); } // DBG_871X("\t"); - sprintf(extra, "%s\t", extra); + sprintf(extra + strlen(extra), "\t"); for (; j<16; j++) { // DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); + sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); } // DBG_871X("\n"); - sprintf(extra, "%s\n", extra); + sprintf(extra + strlen(extra), "\n"); } // DBG_871X("\n"); } else if (strcmp(tmp[0],"btbfake") == 0) { @@ -9465,19 +9465,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, sprintf(extra, "\n"); for (i=512; i<1024; i+=16) { // DBG_871X("0x%03x\t", i); - sprintf(extra, "%s0x%03x\t", extra, i); + sprintf(extra + strlen(extra), "0x%03x\t", i); for (j=0; j<8; j++) { // DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); + sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); } // DBG_871X("\t"); - sprintf(extra, "%s\t", extra); + sprintf(extra + strlen(extra), "\t"); for (; j<16; j++) { // DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); + sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); } // DBG_871X("\n"); - sprintf(extra, "%s\n", extra); + sprintf(extra + strlen(extra), "\n"); } // DBG_871X("\n"); } else if (strcmp(tmp[0],"wlrfkmap")== 0) { @@ -9485,19 +9485,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, sprintf(extra, "\n"); for (i=0; ifakeEfuseModifiedMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseModifiedMap[i+j]); + sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeEfuseModifiedMap[i+j]); } // DBG_871X("\t"); - sprintf(extra, "%s\t", extra); + sprintf(extra + strlen(extra), "\t"); for (; j<16; j++) { // DBG_871X("%02X ", pEfuseHal->fakeEfuseModifiedMap[i+j]); - sprintf(extra, "%s %02X", extra, pEfuseHal->fakeEfuseModifiedMap[i+j]); + sprintf(extra + strlen(extra), " %02X", pEfuseHal->fakeEfuseModifiedMap[i+j]); } // DBG_871X("\n"); - sprintf(extra, "%s\n", extra); + sprintf(extra + strlen(extra), "\n"); } // DBG_871X("\n"); @@ -9523,7 +9523,7 @@ static int rtw_mp_efuse_get(struct net_device *dev, *extra = 0; for (i=0; ifakeEfuseModifiedMap[addr+i]); - sprintf(extra, "%s0x%02X ", extra, pEfuseHal->fakeEfuseModifiedMap[addr+i]); + sprintf(extra + strlen(extra), "0x%02X ", pEfuseHal->fakeEfuseModifiedMap[addr+i]); } } else if (strcmp(tmp[0],"btrfkrmap")== 0) { if ((tmp[1]==NULL) || (tmp[2]==NULL)) { @@ -9547,7 +9547,7 @@ static int rtw_mp_efuse_get(struct net_device *dev, *extra = 0; for (i=0; ifakeBTEfuseModifiedMap[addr+i]); - sprintf(extra, "%s0x%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[addr+i]); + sprintf(extra + strlen(extra), "0x%02X ", pEfuseHal->fakeBTEfuseModifiedMap[addr+i]); } } else { sprintf(extra, "Command not found!"); @@ -10409,7 +10409,7 @@ static int rtw_mp_read_reg(struct net_device *dev, pnext++; if ( *pnext != '\0' ) { strtout = simple_strtoul (pnext , &ptmp, 16); - sprintf( extra, "%s %d" ,extra ,strtout ); + sprintf(extra + strlen(extra), " %d" ,strtout ); } else { break; } @@ -10443,7 +10443,7 @@ static int rtw_mp_read_reg(struct net_device *dev, pnext++; if ( *pnext != '\0' ) { strtout = simple_strtoul (pnext , &ptmp, 16); - sprintf( extra, "%s %d" ,extra ,strtout ); + sprintf(extra + strlen(extra), " %d" ,strtout ); } else { break; } @@ -10566,7 +10566,7 @@ static int rtw_mp_read_rf(struct net_device *dev, pnext++; if ( *pnext != '\0' ) { strtou = simple_strtoul (pnext , &ptmp, 16); - sprintf( extra, "%s %d" ,extra ,strtou ); + sprintf(extra + strlen(extra), " %d" ,strtou ); } else { break; } @@ -12155,14 +12155,14 @@ todo: goto exit; #ifdef CONFIG_RTL8723A - sprintf(extra, "%s %d ", extra, (pMptCtx->mptOutBuf[i]& 0x3f)); + sprintf(extra + strlen(extra), " %d ", (pMptCtx->mptOutBuf[i]& 0x3f)); #else - sprintf(extra, "%s %d ", extra, (pMptCtx->mptOutBuf[i]& 0x1f)); + sprintf(extra + strlen(extra), " %d ", (pMptCtx->mptOutBuf[i]& 0x1f)); #endif } } else { for (i=4; imptOutLen; i++) { - sprintf(extra, "%s 0x%x ", extra, pMptCtx->mptOutBuf[i]); + sprintf(extra + strlen(extra), " 0x%x ", pMptCtx->mptOutBuf[i]); } } -- 2.28.0 ================================================ FILE: package/rtl8821au/0004-rename-sha256_state-to-rtl_sha256_state-to-avoid-nam.patch ================================================ From 19aee91e45788d594615a9be58fa5d0879ec816a Mon Sep 17 00:00:00 2001 From: youcai Date: Tue, 18 Aug 2020 00:43:16 +0800 Subject: [PATCH] rename sha256_state to rtl_sha256_state to avoid name conflict with crypto [Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/pull/338/commits/af6f6c1578f16145478326a939bb7593bbcdb4e7.patch] Signed-off-by: Coleman Signed-off-by: Christian Stewart --- core/rtw_security.c | 10 +++++----- include/rtw_security.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core/rtw_security.c b/core/rtw_security.c index d54e6af..de2d91f 100644 --- a/core/rtw_security.c +++ b/core/rtw_security.c @@ -2200,7 +2200,7 @@ BIP_exit: #ifndef PLATFORM_FREEBSD /* compress 512-bits */ -static int sha256_compress(struct sha256_state *md, unsigned char *buf) +static int sha256_compress(struct rtl_sha256_state *md, unsigned char *buf) { u32 S[8], W[64], t0, t1; u32 t; @@ -2249,7 +2249,7 @@ static int sha256_compress(struct sha256_state *md, unsigned char *buf) } /* Initialize the hash state */ -static void sha256_init(struct sha256_state *md) +static void sha256_init(struct rtl_sha256_state *md) { md->curlen = 0; md->length = 0; @@ -2270,7 +2270,7 @@ static void sha256_init(struct sha256_state *md) @param inlen The length of the data (octets) @return CRYPT_OK if successful */ -static int sha256_process(struct sha256_state *md, unsigned char *in, +static int sha256_process(struct rtl_sha256_state *md, unsigned char *in, unsigned long inlen) { unsigned long n; @@ -2311,7 +2311,7 @@ static int sha256_process(struct sha256_state *md, unsigned char *in, @param out [out] The destination of the hash (32 bytes) @return CRYPT_OK if successful */ -static int sha256_done(struct sha256_state *md, unsigned char *out) +static int sha256_done(struct rtl_sha256_state *md, unsigned char *out) { int i; @@ -2363,7 +2363,7 @@ static int sha256_done(struct sha256_state *md, unsigned char *out) static int sha256_vector(size_t num_elem, u8 *addr[], size_t *len, u8 *mac) { - struct sha256_state ctx; + struct rtl_sha256_state ctx; size_t i; sha256_init(&ctx); diff --git a/include/rtw_security.h b/include/rtw_security.h index d41014e..98feb69 100644 --- a/include/rtw_security.h +++ b/include/rtw_security.h @@ -233,7 +233,7 @@ struct security_priv { #endif /* DBG_SW_SEC_CNT */ }; -struct sha256_state { +struct rtl_sha256_state { u64 length; u32 state[8], curlen; u8 buf[64]; -- 2.28.0 ================================================ FILE: package/rtl8821au/0005-disable-rtw_mgmt_frame_register-on-kernel-5.8.0.patch ================================================ From 9421b0763e5f20babb2c0fd437979a71fbac1739 Mon Sep 17 00:00:00 2001 From: Christian Stewart Date: Tue, 8 Sep 2020 22:46:45 -0700 Subject: [PATCH] disable rtw_mgmt_frame_register on kernel 5.8.0 rtl8812au: fix build for kernel 5.8 [Source: https://github.com/lwfinger/rtl8812au/commit/ec1591b90dd323185717fa42887f96444cca5921.patch] Signed-off-by: Larry Finger Signed-off-by: Christian Stewart --- os_dep/linux/ioctl_cfg80211.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c index 019daf9..13238cb 100644 --- a/os_dep/linux/ioctl_cfg80211.c +++ b/os_dep/linux/ioctl_cfg80211.c @@ -5177,6 +5177,7 @@ exit: return ret; } +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) static void cfg80211_rtw_mgmt_frame_register(struct wiphy *wiphy, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) struct wireless_dev *wdev, @@ -5205,6 +5206,7 @@ static void cfg80211_rtw_mgmt_frame_register(struct wiphy *wiphy, exit: return; } +#endif #if defined(CONFIG_TDLS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) static int cfg80211_rtw_tdls_mgmt(struct wiphy *wiphy, @@ -6021,7 +6023,9 @@ static struct cfg80211_ops rtw_cfg80211_ops = { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE) .mgmt_tx = cfg80211_rtw_mgmt_tx, +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) .mgmt_frame_register = cfg80211_rtw_mgmt_frame_register, +#endif #elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,34) && LINUX_VERSION_CODE<=KERNEL_VERSION(2,6,35)) .action = cfg80211_rtw_mgmt_tx, #endif -- 2.28.0 ================================================ FILE: package/rtl8821au/0006-rtw_proc-convert-file_operations-to-proc_ops-for-5.6.patch ================================================ From e0ed05200e6e4b86e26e092dc1f16fc8fc1e2b67 Mon Sep 17 00:00:00 2001 From: Christian Stewart Date: Tue, 8 Sep 2020 23:08:39 -0700 Subject: [PATCH] rtw_proc: convert file_operations to proc_ops for 5.6.x compat Signed-off-by: Christian Stewart [Fix < 5.6.x compile - missing semicolon] Signed-off-by: Peter Seiderer --- os_dep/linux/rtw_proc.c | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/os_dep/linux/rtw_proc.c b/os_dep/linux/rtw_proc.c index 048080a..6295f66 100644 --- a/os_dep/linux/rtw_proc.c +++ b/os_dep/linux/rtw_proc.c @@ -65,9 +65,15 @@ inline struct proc_dir_entry *rtw_proc_create_dir(const char *name, struct proc_ } inline struct proc_dir_entry *rtw_proc_create_entry(const char *name, struct proc_dir_entry *parent, - const struct file_operations *fops, void * data) + #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0)) + const struct file_operations *fops, + #else + const struct proc_ops *fops, + #endif + void * data + ) { - struct proc_dir_entry *entry; + struct proc_dir_entry *entry; #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)) entry = proc_create_data(name, S_IFREG|S_IRUGO|S_IWUGO, parent, fops, data); @@ -167,6 +173,7 @@ static ssize_t rtw_drv_proc_write(struct file *file, const char __user *buffer, return -EROFS; } +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0)) static const struct file_operations rtw_drv_proc_fops = { .owner = THIS_MODULE, .open = rtw_drv_proc_open, @@ -175,6 +182,15 @@ static const struct file_operations rtw_drv_proc_fops = { .release = single_release, .write = rtw_drv_proc_write, }; +#else +static const struct proc_ops rtw_drv_proc_fops = { + .proc_open = rtw_drv_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = seq_release, + .proc_write = rtw_drv_proc_write, +}; +#endif int rtw_drv_proc_init(void) { @@ -776,6 +792,7 @@ static ssize_t rtw_adapter_proc_write(struct file *file, const char __user *buff return -EROFS; } +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0)) static const struct file_operations rtw_adapter_proc_fops = { .owner = THIS_MODULE, .open = rtw_adapter_proc_open, @@ -784,6 +801,15 @@ static const struct file_operations rtw_adapter_proc_fops = { .release = single_release, .write = rtw_adapter_proc_write, }; +#else +static const struct proc_ops rtw_adapter_proc_fops = { + .proc_open = rtw_adapter_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, + .proc_write = rtw_adapter_proc_write, +}; +#endif int proc_get_odm_dbg_comp(struct seq_file *m, void *v) { @@ -1030,6 +1056,7 @@ static ssize_t rtw_odm_proc_write(struct file *file, const char __user *buffer, return -EROFS; } +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0)) static const struct file_operations rtw_odm_proc_fops = { .owner = THIS_MODULE, .open = rtw_odm_proc_open, @@ -1038,6 +1065,15 @@ static const struct file_operations rtw_odm_proc_fops = { .release = single_release, .write = rtw_odm_proc_write, }; +#else +static const struct proc_ops rtw_odm_proc_fops = { + .proc_open = rtw_odm_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, + .proc_write = rtw_odm_proc_write, +}; +#endif struct proc_dir_entry *rtw_odm_proc_init(struct net_device *dev) { -- 2.29.0 ================================================ FILE: package/rtl8821au/Config.in ================================================ comment "rtl8821au needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_RTL8821AU bool "rtl8821au" depends on BR2_LINUX_KERNEL help rtl8821au wifi driver https://github.com/abperiasamy/rtl8812AU_8821AU_linux ================================================ FILE: package/rtl8821au/rtl8821au.hash ================================================ # Locally calculated sha256 9c8e127dcf2b4d87df546f7f51afdbca0a0561cdba9bcc2689722e1090c46204 rtl8821au-4235b0ec7d7220a6364586d8e25b1e8cb99c36f1.tar.gz sha256 6d66dec8f6c253a1af2ffd858167c722b1ce3218215446172c81355d0a49e7fc LICENSE ================================================ FILE: package/rtl8821au/rtl8821au.mk ================================================ ################################################################################ # # rtl8821au # ################################################################################ RTL8821AU_VERSION = 4235b0ec7d7220a6364586d8e25b1e8cb99c36f1 RTL8821AU_SITE = $(call github,abperiasamy,rtl8812AU_8821AU_linux,$(RTL8821AU_VERSION)) RTL8821AU_LICENSE = GPL-2.0 RTL8821AU_LICENSE_FILES = LICENSE RTL8821AU_MODULE_MAKE_OPTS = \ CONFIG_RTL8812AU_8821AU=m \ KVER=$(LINUX_VERSION_PROBED) \ USER_EXTRA_CFLAGS="-DCONFIG_$(call qstrip,$(BR2_ENDIAN))_ENDIAN \ -Wno-error" $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/rtl_433/Config.in ================================================ config BR2_PACKAGE_RTL_433 bool "rtl_433" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBOPENSSL_ENABLE_PSK if BR2_PACKAGE_LIBOPENSSL help rtl_433 (despite the name) is a generic data receiver, mainly for the 433.92 MHz, 868 MHz (SRD), 315 MHz, 345 MHz, and 915 MHz ISM bands. https://github.com/merbanan/rtl_433 comment "rtl_433 needs a toolchain w/ dynamic library, threads" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/rtl_433/rtl_433.hash ================================================ # Locally calculated sha256 d8b87535b4e65264018771b6b288259d81137482fc938d01e0c03ac071c03bd5 rtl_433-21.05.tar.gz # License file, locally calculated sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/rtl_433/rtl_433.mk ================================================ ################################################################################ # # rtl_433 # ################################################################################ RTL_433_VERSION = 21.05 RTL_433_SITE = $(call github,merbanan,rtl_433,$(RTL_433_VERSION)) RTL_433_LICENSE = GPL-2.0+ RTL_433_LICENSE_FILES = COPYING # Force Release build to remove ASAN. RTL_433_CONF_OPTS = \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_DOCUMENTATION=OFF \ -DBUILD_TESTING=OFF \ -DBUILD_TESTING_ANALYZER=OFF \ -DENABLE_SOAPYSDR=OFF ifeq ($(BR2_PACKAGE_LIBRTLSDR),y) RTL_433_DEPENDENCIES += librtlsdr RTL_433_CONF_OPTS += -DENABLE_RTLSDR=ON else RTL_433_CONF_OPTS += -DENABLE_RTLSDR=OFF endif ifeq ($(BR2_PACKAGE_OPENSSL),y) RTL_433_DEPENDENCIES += openssl RTL_433_CONF_OPTS += -DENABLE_OPENSSL=ON else RTL_433_CONF_OPTS += -DENABLE_OPENSSL=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/rtmpdump/0001-include-limits.h.patch ================================================ From b9d010d2c07e07eeffa510f14ff833ecb10dc0c8 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Mon, 24 Jun 2019 21:11:33 +0200 Subject: [PATCH] include Needed after https://repo.or.cz/rtmpdump.git/commitdiff/c5f04a58fc2aeea6296ca7c44ee4734c18401aa3 to fix rtmp.c: In function 'HTTP_read': rtmp.c:4459:26: error: 'INT_MAX' undeclared (first use in this function); did you mean 'INT8_MAX'? reported by buildroot autobuilders: http://autobuild.buildroot.net/?reason=rtmpdump-c5f04a58fc2aeea6296ca7c44ee4734c18401aa3 Patch sent upstream by e-mail to author of https://repo.or.cz/rtmpdump.git/patch/c5f04a58fc2aeea6296ca7c44ee4734c18401aa3 Signed-off-by: Bernd Kuhls --- librtmp/rtmp.h | 1 + 1 file changed, 1 insertion(+) diff --git a/librtmp/rtmp.h b/librtmp/rtmp.h index 6d7dd89..48d4fc3 100644 --- a/librtmp/rtmp.h +++ b/librtmp/rtmp.h @@ -32,6 +32,7 @@ #include #include #include +#include #include "amf.h" -- 2.20.1 ================================================ FILE: package/rtmpdump/Config.in ================================================ config BR2_PACKAGE_RTMPDUMP bool "librtmp" select BR2_PACKAGE_ZLIB help rtmpdump - RTMPDump Real-Time Messaging Protocol API Only librtmp is installed by this package. http://rtmpdump.mplayerhq.hu ================================================ FILE: package/rtmpdump/rtmpdump.hash ================================================ # Locally computed sha256 e362202d94b92632b17abc7ef909afc56de06a2cb40e308edfad901d799bbd9c rtmpdump-c5f04a58fc2aeea6296ca7c44ee4734c18401aa3-br1.tar.gz sha256 03fe7ca91cc28e99b4003d5b3bd4ce3b084d4c475fdf9975cf0e7fdf4dc739cd librtmp/COPYING ================================================ FILE: package/rtmpdump/rtmpdump.mk ================================================ ################################################################################ # # rtmpdump # ################################################################################ RTMPDUMP_VERSION = c5f04a58fc2aeea6296ca7c44ee4734c18401aa3 RTMPDUMP_SITE = git://git.ffmpeg.org/rtmpdump RTMPDUMP_INSTALL_STAGING = YES # Note that rtmpdump is GPL-2.0 but librtmp has its own license and since we only # care about librtmp, it's LGPL-2.1+ RTMPDUMP_LICENSE = LGPL-2.1+ RTMPDUMP_LICENSE_FILES = librtmp/COPYING RTMPDUMP_CPE_ID_VENDOR = rtmpdump_project RTMPDUMP_DEPENDENCIES = zlib ifeq ($(BR2_PACKAGE_GNUTLS),y) RTMPDUMP_DEPENDENCIES += gnutls RTMPDUMP_CRYPTO = GNUTLS else # no crypto RTMPDUMP_CRYPTO = endif RTMPDUMP_CFLAGS = $(TARGET_CFLAGS) ifneq ($(BR2_STATIC_LIBS),y) RTMPDUMP_CFLAGS += -fPIC else RTMPDUMP_SHARED = "SHARED=" endif RTMPDUMP_MAKE_FLAGS = \ CRYPTO=$(RTMPDUMP_CRYPTO) \ prefix=/usr \ $(RTMPDUMP_SHARED) define RTMPDUMP_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(RTMPDUMP_MAKE_FLAGS) \ XCFLAGS="$(RTMPDUMP_CFLAGS)" \ XLDFLAGS="$(TARGET_LDFLAGS)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ -C $(@D)/librtmp endef define RTMPDUMP_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/librtmp install DESTDIR=$(STAGING_DIR) $(RTMPDUMP_MAKE_FLAGS) endef define RTMPDUMP_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/librtmp install DESTDIR=$(TARGET_DIR) $(RTMPDUMP_MAKE_FLAGS) endef $(eval $(generic-package)) ================================================ FILE: package/rtorrent/Config.in ================================================ config BR2_PACKAGE_RTORRENT bool "rtorrent" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() # gcc < 4.9 cause an "internal compiler error" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_TOOLCHAIN_HAS_SYNC_1 && BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBTORRENT select BR2_PACKAGE_NCURSES select BR2_PACKAGE_OPENSSL help BitTorrent Client using libtorrent https://github.com/rakshasa/rtorrent comment "rtorrent needs a toolchain w/ C++, threads, wchar, gcc >= 4.9" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_1 && BR2_TOOLCHAIN_HAS_SYNC_4 depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && \ BR2_TOOLCHAIN_HAS_THREADS && BR2_TOOLCHAIN_GCC_AT_LEAST_4_9) ================================================ FILE: package/rtorrent/rtorrent.hash ================================================ # Locally calculated sha256 9edf0304bf142215d3bc85a0771446b6a72d0ad8218efbe184b41e4c9c7542af rtorrent-0.9.8.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/rtorrent/rtorrent.mk ================================================ ################################################################################ # # rtorrent # ################################################################################ RTORRENT_VERSION = 0.9.8 RTORRENT_SITE = http://rtorrent.net/downloads RTORRENT_DEPENDENCIES = host-pkgconf libcurl libtorrent ncurses RTORRENT_LICENSE = GPL-2.0 RTORRENT_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/rtptools/Config.in ================================================ config BR2_PACKAGE_RTPTOOLS bool "rtptools" help The rtptools distribution consists of a number of small applications that can be used for processing RTP data. http://www.cs.columbia.edu/irt/software/rtptools/ ================================================ FILE: package/rtptools/rtptools.hash ================================================ # Locally calculated sha256 2c76b2a423fb943820c91194372133a44cbdc456ebf69c51616ec50eeb068c28 rtptools-1.22.tar.gz sha256 f864592065e232c0b444ae9682a7a1a2c6aafe96712999f794bec24d4441a6a9 LICENSE ================================================ FILE: package/rtptools/rtptools.mk ================================================ ################################################################################ # # rtptools # ################################################################################ RTPTOOLS_VERSION = 1.22 RTPTOOLS_SITE = http://www.cs.columbia.edu/irt/software/rtptools/download RTPTOOLS_LICENSE = BSD-3-Clause RTPTOOLS_LICENSE_FILES = LICENSE RTPTOOLS_CONF_ENV = ac_cv_prog_FOUND_CLANG=no $(eval $(autotools-package)) ================================================ FILE: package/rtty/Config.in ================================================ config BR2_PACKAGE_RTTY bool "rtty" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBEV help Access your device's terminal from anywhere via the web. https://github.com/zhaojh329/rtty ================================================ FILE: package/rtty/rtty.hash ================================================ sha256 9bc5d30dfa9bd664a62711b6229f47505b83adb364907f24e3a404aad52a4802 rtty-7.4.0.tar.gz sha256 99efed4bbc0b62f96f999ef23399e38234fb91651af734fd389a52b033a85b55 LICENSE ================================================ FILE: package/rtty/rtty.mk ================================================ ################################################################################ # # rtty # ################################################################################ RTTY_VERSION = 7.4.0 RTTY_SITE = https://github.com/zhaojh329/rtty/releases/download/v$(RTTY_VERSION) RTTY_LICENSE = MIT RTTY_LICENSE_FILES = LICENSE RTTY_DEPENDENCIES = libev ifeq ($(BR2_PACKAGE_MBEDTLS),y) RTTY_DEPENDENCIES += mbedtls RTTY_CONF_OPTS += \ -DRTTY_SSL_SUPPORT=ON \ -DRTTY_USE_MBEDTLS=ON \ -DRTTY_USE_OPENSSL=OFF \ -DRTTY_USE_WOLFSSL=OFF else ifeq ($(BR2_PACKAGE_OPENSSL),y) RTTY_DEPENDENCIES += host-pkgconf openssl RTTY_CONF_OPTS += \ -DRTTY_SSL_SUPPORT=ON \ -DRTTY_USE_MBEDTLS=OFF \ -DRTTY_USE_OPENSSL=ON \ -DRTTY_USE_WOLFSSL=OFF else ifeq ($(BR2_PACKAGE_WOLFSSL),y) RTTY_DEPENDENCIES += wolfssl RTTY_CONF_OPTS += \ -DRTTY_SSL_SUPPORT=ON \ -DRTTY_USE_MBEDTLS=OFF \ -DRTTY_USE_OPENSSL=OFF \ -DRTTY_USE_WOLFSSL=ON else RTTY_CONF_OPTS += -DRTTY_SSL_SUPPORT=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/rubix/0001-dont-use-legacy-functions.patch ================================================ Use strstr() instead of index(), since index() is a legacy function and it may not be available in uClibc, depending on the configuration. Signed-off-by: Thomas Petazzoni Index: rubix-1.0.5/cube.c =================================================================== --- rubix-1.0.5.orig/cube.c 2010-02-14 14:19:05.000000000 +0100 +++ rubix-1.0.5/cube.c 2010-02-14 14:19:14.000000000 +0100 @@ -257,7 +257,7 @@ if (i==-1) goto finish; if (buffer[0]=='%') goto new_section; buffer[0]=toupper(buffer[0]); - ptr = index(buffer, '='); + ptr = strstr(buffer, '='); if (ptr) { ++ptr; while (isspace(*ptr)) ++ptr; ================================================ FILE: package/rubix/0002-misc-fixes.patch ================================================ diff -Nrup rubix-1.0.5/fillpoly.c rubix-1.0.5-avr32/fillpoly.c --- rubix-1.0.5/fillpoly.c 2003-10-12 15:41:43.000000000 -0400 +++ rubix-1.0.5-avr32/fillpoly.c 2008-02-29 12:39:51.000000000 -0500 @@ -435,7 +435,7 @@ void fill_lines(device *d, int thecol) ); #endif } - } else if (d->depth==16) { /* here 16bpp */ + } else if ((d->depth==16) | (d->depth==15)) { /* here 16bpp */ register int i; #ifndef PC_ARCHI register int j; diff -Nrup rubix-1.0.5/line.c rubix-1.0.5-avr32/line.c --- rubix-1.0.5/line.c 2003-10-12 14:15:19.000000000 -0400 +++ rubix-1.0.5-avr32/line.c 2008-02-29 12:39:51.000000000 -0500 @@ -1317,7 +1317,7 @@ void drawline(device *d, line *l) #endif if (d->depth==8) drawline8(d, l); - else if (d->depth==16) + else if ((d->depth==16) | (d->depth==15)) drawline16(d, l); else if (d->depth==24) drawline24(d, l); diff -Nrup rubix-1.0.5/Makefile rubix-1.0.5-avr32/Makefile --- rubix-1.0.5/Makefile 2003-12-04 14:27:58.000000000 -0500 +++ rubix-1.0.5-avr32/Makefile 2008-02-29 12:58:30.000000000 -0500 @@ -11,21 +11,17 @@ # Customize to fit your needs (especially if it does not work for now). LANGUAGE=ENGLISH -GAMESDIR=/usr/games #architecture=-DPC_ARCHI # For Solaris #EXTRALIBS=-lsocket -CC=gcc CFLAGS=-Wall -O3 -fomit-frame-pointer -ffast-math \ -DGAMESDIR="\"$(GAMESDIR)\"" \ -D$(LANGUAGE) $(architecture) #CFLAGS=-Wall -g -ffast-math -Iplayer $(architecture) -XINC=-I/usr/X11R6/include -XLIB=-L/usr/X11R6/lib -lX11 #the following should not be changed. @@ -37,7 +33,7 @@ rubix : $(OBJ) install : mkdir -p $(GAMESDIR) - install -c -s rubix $(GAMESDIR) + install -c rubix $(GAMESDIR) clean : rm -f *.o *~ core *.bak *.dat gmon.out diff -Nrup rubix-1.0.5/screen.c rubix-1.0.5-avr32/screen.c --- rubix-1.0.5/screen.c 2004-04-26 04:26:05.000000000 -0400 +++ rubix-1.0.5-avr32/screen.c 2008-02-29 12:39:51.000000000 -0500 @@ -80,11 +80,17 @@ void error_statement(SCREEN *s) int reset_data_buffers(SCREEN *s) { + int temp; if (s->im) XDestroyImage(s->im); + if (s->depth == 15) { + temp=16; + } else { + temp=s->depth; + } - s->buffer=(char *)malloc(((SCREEN_X+7)/8)*SCREEN_Y*s->depth); + s->buffer=(char *)malloc(((SCREEN_X+7)/8)*SCREEN_Y*temp); if (!s->buffer) { error_statement(s); @@ -106,7 +112,7 @@ int reset_data_buffers(SCREEN *s) */ /* Sed - december 2003 - no it has to be 8 */ s->im=XCreateImage(s->d, DefaultVisual(s->d, DefaultScreen(s->d)), - s->depth==32?24:s->depth, ZPixmap, + s->depth, ZPixmap, 0, s->buffer, SCREEN_X, SCREEN_Y, 8, 0); if (!s->im) { @@ -139,8 +145,8 @@ int init_screen(SCREEN *s) s->depth=DefaultDepth(s->d, DefaultScreen(s->d)); - if (s->depth!=8 && s->depth!=16 && s->depth!=24) { - fprintf(stderr, "screen depth not supported (only 8, 16 and 24bpp (which means 32bpp too) handled\n"); + if (s->depth!=8 && s->depth!=15 && s->depth!=16 && s->depth!=24) { + fprintf(stderr, "screen depth not supported (only 8, 15, 16 and 24bpp (which means 32bpp too) handled\n"); XCloseDisplay(s->d); s->d=(Display *)0; return -1; @@ -182,10 +188,10 @@ int init_screen(SCREEN *s) /* let's create and map our window */ s->w=XCreateWindow(s->d, DefaultRootWindow(s->d), 0, 0, - SCREEN_X, SCREEN_Y, 3, s->depth==32?24:s->depth, + SCREEN_X, SCREEN_Y, 3, s->depth, CopyFromParent, CopyFromParent, 0, NULL); s->h=XCreateWindow(s->d, DefaultRootWindow(s->d), 0, 0, - HELP_X, HELP_Y, 3, s->depth==32?24:s->depth, + HELP_X, HELP_Y, 3, s->depth, CopyFromParent, CopyFromParent, 0, NULL); xch.res_name = "rubix"; @@ -946,13 +952,18 @@ void close_screen(SCREEN *s) void clear_screen(SCREEN *s) { /* fill s->im with pixel[10], avoid XPutPixel which is rather slow... */ - int i, w, dw; + int i, w, dw, temp; + if (s->depth == 15) { + temp = 16; + } else { + temp = s->depth; + } w = (SCREEN_X+7)/8; - dw = s->depth/8; + dw = temp/8; XPutPixel(s->im, 0, 0, pixel[10]); for (i=1; i<8*w; i++) memcpy(s->buffer + i*dw, s->buffer, dw); - w = w * s->depth; + w = w * temp; for (i=1; ibuffer + i*w, s->buffer, w); } ================================================ FILE: package/rubix/Config.in ================================================ config BR2_PACKAGE_RUBIX bool "rubix" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBX11 help A 3D rubiks cube game for X http://sed.free.fr/rubix ================================================ FILE: package/rubix/rubix.hash ================================================ # Locally calculated sha256 ccff4c98373f76c6bab751f5f5a60df7ad8691c79b56157e4aba2dd76f501a87 rubix-1.0.6.tar.bz2 sha256 429d04118c02bc92d834c430601f8c0c8df1ab27e3617ec73ad3f66c5953475d LICENCE ================================================ FILE: package/rubix/rubix.mk ================================================ ################################################################################ # # rubix # ################################################################################ RUBIX_VERSION = 1.0.6 RUBIX_SOURCE = rubix-$(RUBIX_VERSION).tar.bz2 RUBIX_SITE = http://sed.free.fr/rubix RUBIX_LICENSE = Public Domain RUBIX_LICENSE_FILES = LICENCE RUBIX_DEPENDENCIES = xlib_libX11 RUBIX_MAKE_OPTS = \ CC="$(TARGET_CC)" \ XINC="-I$(STAGING_DIR)/usr/include/X11" \ XLIB="-L$(STAGING_DIR)/usr/lib -lX11" RUBIX_INSTALL_TARGET_OPTS = GAMESDIR=$(TARGET_DIR)/usr/games install define RUBIX_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(RUBIX_MAKE_OPTS) rubix endef define RUBIX_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(RUBIX_MAKE_OPTS) \ $(RUBIX_INSTALL_TARGET_OPTS) endef $(eval $(generic-package)) ================================================ FILE: package/ruby/0001-fix-default-coroutine-selection.patch ================================================ fixed default coroutine selection for musl/uclibc https://github.com/ruby/ruby/pull/3567/commits/b570e7de87aaad8c903176d835e8124127f627b3 Signed-off-by: Waldemar Brodkorb diff -Nur ruby-3.0.0.orig/configure.ac ruby-3.0.0/configure.ac --- ruby-3.0.0.orig/configure.ac 2020-12-25 04:33:01.000000000 +0100 +++ ruby-3.0.0/configure.ac 2021-02-22 13:00:53.990314464 +0100 @@ -2441,7 +2441,10 @@ rb_cv_coroutine=copy ], [ - rb_cv_coroutine=ucontext + AC_CHECK_FUNCS([getcontext swapcontext makecontext], + [rb_cv_coroutine=ucontext], + [rb_cv_coroutine=copy; break] + ) ] ) AC_MSG_RESULT(${rb_cv_coroutine}) ================================================ FILE: package/ruby/0002-Needs-AC_PROG_CC.patch ================================================ From 912a8dcfc5369d840dcd6bf0f88ee0bac7d902d6 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Thu, 30 Sep 2021 18:24:37 +0900 Subject: [PATCH] Needs `AC_PROG_CC` Although `AC_PROG_CC_C99` has been obsolete, `AC_PROG_CC` is not and the latter is necessary not to make C++ compiler mandatory. [Retrieved from: https://github.com/ruby/ruby/commit/912a8dcfc5369d840dcd6bf0f88ee0bac7d902d6] Signed-off-by: Fabrice Fontaine --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index b24a8f59b0d2..c7059ee1ecf4 100644 --- a/configure.ac +++ b/configure.ac @@ -218,7 +218,7 @@ rb_test_CXXFLAGS=${CXXFLAGS+yes} # BSD's ports and MacPorts prefix GNU binutils with 'g' dnl Seems necessarily in order to add -std=gnu99 option for gcc 4.9. -m4_version_prereq([2.70], [], [AC_PROG_CC_C99]) +m4_version_prereq([2.70], [AC_PROG_CC], [AC_PROG_CC_C99]) AC_PROG_CXX AC_PROG_CPP ================================================ FILE: package/ruby/Config.in ================================================ config BR2_PACKAGE_RUBY bool "ruby" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_HOST_GCC_AT_LEAST_4_9 help Object Oriented Scripting Language. http://www.ruby-lang.org/ comment "ruby needs a toolchain w/ wchar, threads, dynamic library, gcc >= 4.9, host gcc >= 4.9" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/ruby/ruby.hash ================================================ # https://www.ruby-lang.org/en/news/2021/07/07/ruby-3-0-2-released/ sha512 0f702e2d8ca1342a9d4284dbdd234a3588e057b92566353aa7c21835cf09a3932864b2acf459a976960a1704e9befa562155d36b98b7cda8bd99526e10a374c4 ruby-3.0.2.tar.xz # License files, Locally calculated sha256 274f8d7983052448e7fd691c81043465c92ee6fb7bd8ab3f20a7997862f2778e LEGAL sha256 967586d538a28955ec2541910cf63c5ac345fcdea94bfb1f1705a1f6eb36bcbb COPYING sha256 36a9a6e7347214bbba599a412617204e65bff065dcbe5c46f5cb454c80de9eb0 BSDL ================================================ FILE: package/ruby/ruby.mk ================================================ ################################################################################ # # ruby # ################################################################################ RUBY_VERSION_MAJOR = 3.0 RUBY_VERSION = $(RUBY_VERSION_MAJOR).2 RUBY_VERSION_EXT = 3.0.0 RUBY_SITE = http://cache.ruby-lang.org/pub/ruby/$(RUBY_VERSION_MAJOR) RUBY_SOURCE = ruby-$(RUBY_VERSION).tar.xz RUBY_DEPENDENCIES = host-pkgconf host-ruby HOST_RUBY_DEPENDENCIES = host-pkgconf host-openssl RUBY_MAKE_ENV = $(TARGET_MAKE_ENV) RUBY_CONF_OPTS = --disable-install-doc --disable-rpath --disable-rubygems HOST_RUBY_CONF_OPTS = \ --disable-install-doc \ --with-out-ext=curses,readline \ --without-gmp RUBY_LICENSE = Ruby or BSD-2-Clause, BSD-3-Clause, others RUBY_LICENSE_FILES = LEGAL COPYING BSDL RUBY_CPE_ID_VENDOR = ruby-lang # 0001-fix-default-coroutine-selection.patch RUBY_AUTORECONF = YES ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) RUBY_CONF_ENV += LIBS=-latomic endif ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) # On uClibc, finite, isinf and isnan are not directly implemented as # functions. Instead math.h #define's these to __finite, __isinf and # __isnan, confusing the Ruby configure script. Tell it that they # really are available. RUBY_CONF_ENV += \ ac_cv_func_finite=yes \ ac_cv_func_isinf=yes \ ac_cv_func_isnan=yes endif ifeq ($(BR2_TOOLCHAIN_HAS_SSP),) RUBY_CONF_ENV += stack_protector=no endif # Force optionals to build before we do ifeq ($(BR2_PACKAGE_BERKELEYDB),y) RUBY_DEPENDENCIES += berkeleydb endif ifeq ($(BR2_PACKAGE_LIBFFI),y) RUBY_DEPENDENCIES += libffi else # Disable fiddle to avoid a build failure with bundled-libffi on MIPS RUBY_CONF_OPTS += --with-out-ext=fiddle endif ifeq ($(BR2_PACKAGE_GDBM),y) RUBY_DEPENDENCIES += gdbm endif ifeq ($(BR2_PACKAGE_LIBYAML),y) RUBY_DEPENDENCIES += libyaml endif ifeq ($(BR2_PACKAGE_NCURSES),y) RUBY_DEPENDENCIES += ncurses endif ifeq ($(BR2_PACKAGE_OPENSSL),y) RUBY_DEPENDENCIES += openssl endif ifeq ($(BR2_PACKAGE_READLINE),y) RUBY_DEPENDENCIES += readline endif ifeq ($(BR2_PACKAGE_ZLIB),y) RUBY_DEPENDENCIES += zlib endif ifeq ($(BR2_PACKAGE_GMP),y) RUBY_DEPENDENCIES += gmp RUBY_CONF_OPTS += --with-gmp else RUBY_CONF_OPTS += --without-gmp endif RUBY_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_83143),y) RUBY_CFLAGS += -freorder-blocks-algorithm=simple endif RUBY_CONF_OPTS += CFLAGS="$(RUBY_CFLAGS)" # Remove rubygems and friends, as they need extensions that aren't # built and a target compiler. RUBY_EXTENSIONS_REMOVE = rake* rdoc* rubygems* define RUBY_REMOVE_RUBYGEMS rm -f $(addprefix $(TARGET_DIR)/usr/bin/, gem rdoc ri rake) rm -rf $(TARGET_DIR)/usr/lib/ruby/gems rm -rf $(addprefix $(TARGET_DIR)/usr/lib/ruby/$(RUBY_VERSION_EXT)/, \ $(RUBY_EXTENSIONS_REMOVE)) endef RUBY_POST_INSTALL_TARGET_HOOKS += RUBY_REMOVE_RUBYGEMS $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/runc/Config.in ================================================ config BR2_PACKAGE_RUNC bool "runc" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_TOOLCHAIN_USES_UCLIBC # no fexecve 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 glibc or musl toolchain w/ threads" depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS && \ BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_UCLIBC ================================================ FILE: package/runc/runc.hash ================================================ # Locally computed sha256 6c3cca4bbeb5d9b2f5e3c0c401c9d27bc8a5d2a0db8a2f6a06efd03ad3c38a33 runc-1.0.2.tar.gz sha256 552a739c3b25792263f731542238b92f6f8d07e9a488eae27e6c4690038a8243 LICENSE ================================================ FILE: package/runc/runc.mk ================================================ ################################################################################ # # runc # ################################################################################ RUNC_VERSION = 1.0.2 RUNC_SITE = $(call github,opencontainers,runc,v$(RUNC_VERSION)) RUNC_LICENSE = Apache-2.0 RUNC_LICENSE_FILES = LICENSE RUNC_CPE_ID_VENDOR = linuxfoundation RUNC_LDFLAGS = -X main.version=$(RUNC_VERSION) RUNC_TAGS = cgo static_build ifeq ($(BR2_PACKAGE_LIBAPPARMOR),y) RUNC_DEPENDENCIES += libapparmor RUNC_TAGS += apparmor endif ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) RUNC_TAGS += seccomp RUNC_DEPENDENCIES += libseccomp host-pkgconf endif $(eval $(golang-package)) ================================================ FILE: package/rust/rust.hash ================================================ # From https://static.rust-lang.org/dist/rustc-1.66.1-src.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rustc-1.66.1-src.tar.xz.asc sha256 07ac4e6c93e0d8ecfaf3b86c4c78bbbde3f5be675f0334e7fb343cb4a0b81ebe rustc-1.66.1-src.tar.xz # Locally generated sha256 62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a LICENSE-APACHE sha256 23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 LICENSE-MIT ================================================ FILE: package/rust/rust.mk ================================================ ################################################################################ # # rust # ################################################################################ # When updating this version, check whether support/download/cargo-post-process # still generates the same archives. RUST_VERSION = 1.66.1 RUST_SOURCE = rustc-$(RUST_VERSION)-src.tar.xz RUST_SITE = https://static.rust-lang.org/dist RUST_LICENSE = Apache-2.0 or MIT RUST_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT HOST_RUST_PROVIDES = host-rustc HOST_RUST_DEPENDENCIES = \ toolchain \ host-pkgconf \ host-python3 \ host-rust-bin \ host-openssl \ $(BR2_CMAKE_HOST_DEPENDENCY) HOST_RUST_VERBOSITY = $(if $(VERBOSE),2,0) # Some vendor crates contain Cargo.toml.orig files. The associated # .cargo-checksum.json file will contain a checksum for Cargo.toml.orig but # support/scripts/apply-patches.sh will delete them. This will cause the build # to fail, as Cargo will not be able to find the file and verify the checksum. # So, remove all Cargo.toml.orig entries from the affected .cargo-checksum.json # files define HOST_RUST_EXCLUDE_ORIG_FILES for file in $$(find $(@D) -name '*.orig'); do \ crate=$$(dirname $${file}); \ fn=$${crate}/.cargo-checksum.json; \ sed -i -e 's/"Cargo.toml.orig":"[a-z0-9]\+",//g' $${fn}; \ done endef HOST_RUST_POST_EXTRACT_HOOKS += HOST_RUST_EXCLUDE_ORIG_FILES define HOST_RUST_CONFIGURE_CMDS ( \ echo '[build]'; \ echo 'target = ["$(RUSTC_TARGET_NAME)"]'; \ echo 'cargo = "$(HOST_RUST_BIN_DIR)/cargo/bin/cargo"'; \ echo 'rustc = "$(HOST_RUST_BIN_DIR)/rustc/bin/rustc"'; \ echo 'python = "$(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR)"'; \ echo 'submodules = false'; \ echo 'vendor = true'; \ echo 'extended = true'; \ echo 'tools = ["cargo"]'; \ echo 'compiler-docs = false'; \ echo 'docs = false'; \ echo 'verbose = $(HOST_RUST_VERBOSITY)'; \ echo '[install]'; \ echo 'prefix = "$(HOST_DIR)"'; \ echo 'sysconfdir = "$(HOST_DIR)/etc"'; \ echo '[rust]'; \ echo 'channel = "stable"'; \ echo 'musl-root = "$(STAGING_DIR)"' ; \ echo '[target.$(RUSTC_TARGET_NAME)]'; \ echo 'cc = "$(TARGET_CROSS)gcc"'; \ echo '[llvm]'; \ echo 'ninja = false'; \ ) > $(@D)/config.toml endef define HOST_RUST_BUILD_CMDS cd $(@D); $(HOST_MAKE_ENV) $(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR) x.py build endef HOST_RUST_INSTALL_OPTS = \ --prefix=$(HOST_DIR) \ --disable-ldconfig define HOST_RUST_INSTALL_RUSTC cd $(@D)/build/tmp/tarball/rust/$(RUSTC_HOST_NAME)/rust-$(RUST_VERSION)-$(RUSTC_HOST_NAME); \ ./install.sh $(HOST_RUST_INSTALL_OPTS) --components=rustc,cargo,rust-std-$(RUSTC_HOST_NAME) endef ifeq ($(BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS),y) define HOST_RUST_INSTALL_LIBSTD_TARGET cd $(@D)/build/tmp/tarball/rust-std/$(RUSTC_TARGET_NAME)/rust-std-$(RUST_VERSION)-$(RUSTC_TARGET_NAME); \ ./install.sh $(HOST_RUST_INSTALL_OPTS) endef endif define HOST_RUST_INSTALL_CMDS cd $(@D); $(HOST_MAKE_ENV) $(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR) x.py dist $(HOST_RUST_INSTALL_RUSTC) $(HOST_RUST_INSTALL_LIBSTD_TARGET) endef $(eval $(host-generic-package)) ================================================ FILE: package/rust-bin/rust-bin.hash ================================================ # From https://static.rust-lang.org/dist/rust-1.66.1-aarch64-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-1.66.1-aarch64-unknown-linux-gnu.tar.xz.asc sha256 a1279760f91b3571733e0b0268128d143be2734916753900b5fe7b8ecc3c0900 rust-1.66.1-aarch64-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-1.66.1-i686-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-1.66.1-i686-unknown-linux-gnu.tar.xz.asc sha256 835b4e1b4d396674f7866a83b9a4f44db16fd12f01a7eaed527282b3700a9b92 rust-1.66.1-i686-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-1.66.1-mips-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-1.66.1-mips-unknown-linux-gnu.tar.xz.asc sha256 c7349617c42274bf50f6e3662dfb4f6832a93780099c3bb510be1a5b93d04c37 rust-1.66.1-mips-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-1.66.1-mipsel-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-1.66.1-mipsel-unknown-linux-gnu.tar.xz.asc sha256 fc38663870f0af47a27241d980ca886c3f7d432267920deb412ac8576bef68f0 rust-1.66.1-mipsel-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-1.66.1-powerpc-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-1.66.1-powerpc-unknown-linux-gnu.tar.xz.asc sha256 2b1a6c54db49a9e62d60cc96c1768f405e0f4c59d698186bf3a28a1bb017b6b5 rust-1.66.1-powerpc-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-1.66.1-powerpc64-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-1.66.1-powerpc64-unknown-linux-gnu.tar.xz.asc sha256 777d3a650448c15048710282388e90d10740540f570f5d17ed4a2dbdabb89552 rust-1.66.1-powerpc64-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-1.66.1-powerpc64le-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-1.66.1-powerpc64le-unknown-linux-gnu.tar.xz.asc sha256 875bb310bae7c8c1d2d228a49aa4b547608b6c807ddc9ec44bc87272c77d869b rust-1.66.1-powerpc64le-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-1.66.1-riscv64gc-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-1.66.1-riscv64gc-unknown-linux-gnu.tar.xz.asc sha256 89164ccf75909b3d02bdcb787e33876cad87e55ab0e6239b030b4b6631ed356a rust-1.66.1-riscv64gc-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-1.66.1-s390x-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-1.66.1-s390x-unknown-linux-gnu.tar.xz.asc sha256 e83f9fc473072db23376783595a008cdd9b2f2e9b3be109e55939392864840eb rust-1.66.1-s390x-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-1.66.1-x86_64-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-1.66.1-x86_64-unknown-linux-gnu.tar.xz.asc sha256 a201aa4595ec8015662b7103b1409a4787c6d1f1d540bb68746633527d855858 rust-1.66.1-x86_64-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-aarch64-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-aarch64-unknown-linux-gnu.tar.xz.asc sha256 9d96ba6a5a255339cd04af079d906753d56c85503c727279c227d24bd4987e24 rust-std-1.66.1-aarch64-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-aarch64-unknown-linux-musl.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-aarch64-unknown-linux-musl.tar.xz.asc sha256 520ac446f20490685cc4d73192cfbb4c9b9e55c884aa4ae2b098e3a54d891de8 rust-std-1.66.1-aarch64-unknown-linux-musl.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-arm-unknown-linux-gnueabi.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-arm-unknown-linux-gnueabi.tar.xz.asc sha256 42afd189ef64988f64976f767a734734bccd7c71e578780e902148c98226fa29 rust-std-1.66.1-arm-unknown-linux-gnueabi.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-arm-unknown-linux-gnueabihf.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-arm-unknown-linux-gnueabihf.tar.xz.asc sha256 506126773af9c3dacc506776a0b2e12fe6fa0c95eaf4f4ebb5cdbd335feb83fa rust-std-1.66.1-arm-unknown-linux-gnueabihf.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-arm-unknown-linux-musleabihf.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-arm-unknown-linux-musleabihf.tar.xz.asc sha256 3d21b478fbf07bd27902bdd189e6988341f0c2c0108b538f926cea3031bc8ea6 rust-std-1.66.1-arm-unknown-linux-musleabihf.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-arm-unknown-linux-musleabi.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-arm-unknown-linux-musleabi.tar.xz.asc sha256 5282fc97111a7eafbead3463ed7bc0f3065332f21aec6a39a740157fe42f943a rust-std-1.66.1-arm-unknown-linux-musleabi.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-armv5te-unknown-linux-gnueabi.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-armv5te-unknown-linux-gnueabi.tar.xz.asc sha256 0ebf0178bbe9c5572d1db89e190dee23aef0e2f667995abedbd66e33d0bd73ab rust-std-1.66.1-armv5te-unknown-linux-gnueabi.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-armv5te-unknown-linux-musleabi.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-armv5te-unknown-linux-musleabi.tar.xz.asc sha256 938e7442c21ea0895c44ec78fa718ea1d3abe32ed0425ed328c905e188af250e rust-std-1.66.1-armv5te-unknown-linux-musleabi.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-armv7-unknown-linux-gnueabihf.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-armv7-unknown-linux-gnueabihf.tar.xz.asc sha256 bdc491f4c05669e7a3382b6bfdaeaa20e2cfa5ef553305df0e0d73729a45e6e4 rust-std-1.66.1-armv7-unknown-linux-gnueabihf.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-armv7-unknown-linux-gnueabi.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-armv7-unknown-linux-gnueabi.tar.xz.asc sha256 d75c6dc3c00d662b0d3f6ce7fde0f76057542edfbc97a20b29247842c8a711d2 rust-std-1.66.1-armv7-unknown-linux-gnueabi.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-armv7-unknown-linux-musleabihf.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-armv7-unknown-linux-musleabihf.tar.xz.asc sha256 830285e5388081c68fac9dc955aa824a4d919b0e24eadc6e0b95b30103d79db9 rust-std-1.66.1-armv7-unknown-linux-musleabihf.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-armv7-unknown-linux-musleabi.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-armv7-unknown-linux-musleabi.tar.xz.asc sha256 d720bd1e493f53797f90d83dbe6d52ecbe1ff3cae282f4b2e18c37fe92c9adf6 rust-std-1.66.1-armv7-unknown-linux-musleabi.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-i586-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-i586-unknown-linux-gnu.tar.xz.asc sha256 90eb8e2490283930e682b79842d664d4867414563353d53dafc47eccf44aea17 rust-std-1.66.1-i586-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-i586-unknown-linux-musl.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-i586-unknown-linux-musl.tar.xz.asc sha256 c4bab2d63223d0c6e63806082e30d8c38b37eefc10ee2e7380971e3012c00bca rust-std-1.66.1-i586-unknown-linux-musl.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-i686-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-i686-unknown-linux-gnu.tar.xz.asc sha256 b32cbbb9002f8a20b302823a2ff122a91f077b5e1a7bc1340de690ded86bf10b rust-std-1.66.1-i686-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-i686-unknown-linux-musl.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-i686-unknown-linux-musl.tar.xz.asc sha256 52013329eb6697d94f5dce01dd509b4b93b473c18a3a2c05d0230b9dfeab14d1 rust-std-1.66.1-i686-unknown-linux-musl.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-mips-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-mips-unknown-linux-gnu.tar.xz.asc sha256 e6029b4cec5d6c06c34a0dbec614fa252fdc8cf31013d6e561112cf90f742568 rust-std-1.66.1-mips-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-mips-unknown-linux-musl.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-mips-unknown-linux-musl.tar.xz.asc sha256 23f917eccaca59d4c911eb96d8ffefe86834dbcdf902c9ab6dad8558c31c4575 rust-std-1.66.1-mips-unknown-linux-musl.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-mips64-unknown-linux-gnuabi64.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-mips64-unknown-linux-gnuabi64.tar.xz.asc sha256 70d1406e0981d5d31c1d3f85c848bba0476e0ff6203e7706f66b4d2212f01b66 rust-std-1.66.1-mips64-unknown-linux-gnuabi64.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-mips64-unknown-linux-muslabi64.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-mips64-unknown-linux-muslabi64.tar.xz.asc sha256 0fd221d4b4205ce548e83f0e7416c8332eb12b64d5a43c0b3ed61e9f7d6edf13 rust-std-1.66.1-mips64-unknown-linux-muslabi64.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-mips64el-unknown-linux-gnuabi64.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-mips64el-unknown-linux-gnuabi64.tar.xz.asc sha256 132d6d5750a877972ebc6f23e831f2ef3077465b2ab24ca645d32ea83c496fe3 rust-std-1.66.1-mips64el-unknown-linux-gnuabi64.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-mips64el-unknown-linux-muslabi64.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-mips64el-unknown-linux-muslabi64.tar.xz.asc sha256 533f370368ac8b6192e1450289c64544ebf9cacc38c3a52ef6c0ecded7ee6fa5 rust-std-1.66.1-mips64el-unknown-linux-muslabi64.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-mipsel-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-mipsel-unknown-linux-gnu.tar.xz.asc sha256 8bfa3d6079c6df049978fe61b1ccaf992aecd006e23df2439ecfc883bd8bc31b rust-std-1.66.1-mipsel-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-mipsel-unknown-linux-musl.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-mipsel-unknown-linux-musl.tar.xz.asc sha256 d7028820888d0decde047a6e77b866e690532aa09522c9a23a3fbf8780a72257 rust-std-1.66.1-mipsel-unknown-linux-musl.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-powerpc-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-powerpc-unknown-linux-gnu.tar.xz.asc sha256 417b12a9bf090d694514937cd8c321ed625f155248f63c0de8207b17fa4b35b1 rust-std-1.66.1-powerpc-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-powerpc64-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-powerpc64-unknown-linux-gnu.tar.xz.asc sha256 7074c4ea9fcc683ceb0adcca6ba07544a1d91f0e5d2a4cf14c81eb14316ebf35 rust-std-1.66.1-powerpc64-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-powerpc64le-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-powerpc64le-unknown-linux-gnu.tar.xz.asc sha256 4c64a09be872b5832b50d681fbe29691b6a5d3e23ee5535020fa22b8b453c770 rust-std-1.66.1-powerpc64le-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-riscv64gc-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-riscv64gc-unknown-linux-gnu.tar.xz.asc sha256 776eff6f451845e88224714ee6da7819e34f01b7625bf927394c2b91e5c8243c rust-std-1.66.1-riscv64gc-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-s390x-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-s390x-unknown-linux-gnu.tar.xz.asc sha256 51d1567e1d28e43c2165886f5a4955dcdaa41aa5ddcec5fb08200491fd1f6062 rust-std-1.66.1-s390x-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-sparc64-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-sparc64-unknown-linux-gnu.tar.xz.asc sha256 3aee03fa61c28bb242023efb09a22e38a76b075cc72bcad9894560be8b28a927 rust-std-1.66.1-sparc64-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-x86_64-unknown-linux-gnu.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-x86_64-unknown-linux-gnu.tar.xz.asc sha256 c5e2c9b160bd8d99514f13cfbc0e42a722fd9ca14e6aaca4b9b77731a7a48377 rust-std-1.66.1-x86_64-unknown-linux-gnu.tar.xz # From https://static.rust-lang.org/dist/rust-std-1.66.1-x86_64-unknown-linux-musl.tar.xz.sha256 # Verified using https://static.rust-lang.org/dist/rust-std-1.66.1-x86_64-unknown-linux-musl.tar.xz.asc sha256 a9710727ba28955deb7fbec799faed19486c9af3c7e3088ec6659a257515ffca rust-std-1.66.1-x86_64-unknown-linux-musl.tar.xz # Locally generated sha256 62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a LICENSE-APACHE sha256 23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 LICENSE-MIT ================================================ FILE: package/rust-bin/rust-bin.mk ================================================ ################################################################################ # # rust-bin # ################################################################################ # When updating this version, check whether support/download/cargo-post-process # still generates the same archives. RUST_BIN_VERSION = 1.66.1 RUST_BIN_SITE = https://static.rust-lang.org/dist RUST_BIN_LICENSE = Apache-2.0 or MIT RUST_BIN_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT HOST_RUST_BIN_PROVIDES = host-rustc HOST_RUST_BIN_SOURCE = rust-$(RUST_BIN_VERSION)-$(RUSTC_HOST_NAME).tar.xz ifeq ($(BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS),y) HOST_RUST_BIN_EXTRA_DOWNLOADS += rust-std-$(RUST_BIN_VERSION)-$(RUSTC_TARGET_NAME).tar.xz endif HOST_RUST_BIN_LIBSTD_HOST_PREFIX = rust-std-$(RUSTC_HOST_NAME) define HOST_RUST_BIN_LIBSTD_EXTRACT mkdir -p $(@D)/std $(foreach f,$(HOST_RUST_BIN_EXTRA_DOWNLOADS), \ $(call suitable-extractor,$(f)) $(HOST_RUST_BIN_DL_DIR)/$(f) | \ $(TAR) -C $(@D)/std $(TAR_OPTIONS) - ) mkdir -p $(@D)/rustc/lib/rustlib/$(RUSTC_HOST_NAME)/lib cd $(@D)/rustc/lib/rustlib/$(RUSTC_HOST_NAME)/lib; \ ln -sf ../../../../../$(HOST_RUST_BIN_LIBSTD_HOST_PREFIX)/lib/rustlib/$(RUSTC_HOST_NAME)/lib/* . endef HOST_RUST_BIN_POST_EXTRACT_HOOKS += HOST_RUST_BIN_LIBSTD_EXTRACT HOST_RUST_BIN_INSTALL_COMMON_OPTS = \ --prefix=$(HOST_DIR) \ --disable-ldconfig HOST_RUST_BIN_INSTALL_OPTS = \ $(HOST_RUST_BIN_INSTALL_COMMON_OPTS) \ --components=rustc,cargo,rust-std-$(RUSTC_HOST_NAME) define HOST_RUST_BIN_INSTALL_RUSTC (cd $(@D); \ ./install.sh $(HOST_RUST_BIN_INSTALL_OPTS)) endef ifeq ($(BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS),y) define HOST_RUST_BIN_INSTALL_LIBSTD_TARGET (cd $(@D)/std/rust-std-$(RUST_BIN_VERSION)-$(RUSTC_TARGET_NAME); \ ./install.sh $(HOST_RUST_BIN_INSTALL_COMMON_OPTS)) endef endif define HOST_RUST_BIN_INSTALL_CMDS $(HOST_RUST_BIN_INSTALL_RUSTC) $(HOST_RUST_BIN_INSTALL_LIBSTD_TARGET) endef HOST_RUST_BIN_POST_INSTALL_HOOKS += HOST_RUST_INSTALL_CARGO_CONFIG $(eval $(host-generic-package)) ================================================ FILE: package/rustc/Config.in.host ================================================ # All host rust packages should depend on this option config BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS bool default y if BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" # The pre-built Rust standard library is only available for a number # of architectures/C libraries combinations, with different levels of # support: Tier 1 platforms, Tier 2 platforms with host tools, Tier 2 # platforms, Tier 3 platforms. Below, we support Tier 1, Tier 2 with # host tools and Tier 2 platforms. # The below entries match Tier 1 platforms as described at # https://doc.rust-lang.org/nightly/rustc/platform-support.html. config BR2_PACKAGE_HOST_RUSTC_TARGET_TIER1_PLATFORMS bool # aarch64-unknown-linux-gnu default y if BR2_aarch64 && BR2_TOOLCHAIN_USES_GLIBC # i686-unknown-linux-gnu default y if (BR2_i686 || BR2_x86_pentiumpro || BR2_X86_CPU_HAS_MMX) && BR2_TOOLCHAIN_USES_GLIBC # x86_64-unknown-linux-gnu default y if BR2_x86_64 && BR2_TOOLCHAIN_USES_GLIBC # The below entries match Tier 2 platforms with host tools as # described at # https://doc.rust-lang.org/nightly/rustc/platform-support.html. config BR2_PACKAGE_HOST_RUSTC_TARGET_TIER2_HOST_TOOLS_PLATFORMS bool # aarch64-unknown-linux-musl default y if BR2_aarch64 && BR2_TOOLCHAIN_USES_MUSL # arm-unknown-linux-gnueabi default y if BR2_ARM_CPU_ARMV6 && BR2_ARM_EABI && BR2_TOOLCHAIN_USES_GLIBC # arm-unknown-linux-gnueabihf default y if BR2_ARM_CPU_ARMV6 && BR2_ARM_EABIHF && BR2_TOOLCHAIN_USES_GLIBC # armv7-unknown-linux-gnueabihf default y if BR2_ARM_CPU_ARMV7A && BR2_ARM_EABIHF && BR2_TOOLCHAIN_USES_GLIBC # mips-unknown-linux-gnu default y if BR2_mips && BR2_TOOLCHAIN_USES_GLIBC && !BR2_MIPS_CPU_MIPS32R6 # mips64-unknown-linux-gnuabi64 default y if BR2_mips64 && BR2_TOOLCHAIN_USES_GLIBC && BR2_MIPS_NABI64 && !BR2_MIPS_CPU_MIPS64R6 # mipsel-unknown-linux-gnu default y if BR2_mipsel && BR2_TOOLCHAIN_USES_GLIBC && !BR2_MIPS_CPU_MIPS32R6 # mips64el-unknown-linux-gnuabi64 default y if BR2_mips64el && BR2_TOOLCHAIN_USES_GLIBC && BR2_MIPS_NABI64 && !BR2_MIPS_CPU_MIPS64R6 # powerpc-unknown-linux-gnu default y if BR2_powerpc && BR2_TOOLCHAIN_USES_GLIBC # powerpc64-unknown-linux-gnu default y if BR2_powerpc64 && BR2_TOOLCHAIN_USES_GLIBC # powerpc64le-unknown-linux-gnu default y if BR2_powerpc64le && BR2_TOOLCHAIN_USES_GLIBC # riscv64gc-unknown-linux-gnu # "g" stands for imafd, and we also need "c". default y if BR2_riscv && BR2_RISCV_ISA_RVI && BR2_RISCV_ISA_RVM && \ BR2_RISCV_ISA_RVA && BR2_RISCV_ISA_RVF && \ BR2_RISCV_ISA_RVD && BR2_RISCV_ISA_RVC && \ BR2_TOOLCHAIN_USES_GLIBC # x86_64-unknown-linux-musl default y if BR2_x86_64 && BR2_TOOLCHAIN_USES_MUSL # The below entries match Tier 2 platforms without host tools as # described at # https://doc.rust-lang.org/nightly/rustc/platform-support.html. config BR2_PACKAGE_HOST_RUSTC_TARGET_TIER2_PLATFORMS bool # arm-unknown-linux-musleabi default y if BR2_ARM_CPU_ARMV6 && BR2_ARM_EABI && BR2_TOOLCHAIN_USES_MUSL # arm-unknown-linux-musleabihf default y if BR2_ARM_CPU_ARMV6 && BR2_ARM_EABIHF && BR2_TOOLCHAIN_USES_MUSL # armv5te-unknown-linux-gnueabi default y if BR2_ARM_CPU_ARMV5 && BR2_ARM_EABI && BR2_TOOLCHAIN_USES_GLIBC # armv5te-unknown-linux-musleabi default y if BR2_ARM_CPU_ARMV5 && BR2_ARM_EABI && BR2_TOOLCHAIN_USES_MUSL # armv7-unknown-linux-gnueabi default y if BR2_ARM_CPU_ARMV7A && BR2_ARM_EABI && BR2_TOOLCHAIN_USES_GLIBC # armv7-unknown-linux-musleabi default y if BR2_ARM_CPU_ARMV7A && BR2_ARM_EABI && BR2_TOOLCHAIN_USES_MUSL # armv7-unknown-linux-musleabihf default y if BR2_ARM_CPU_ARMV7A && BR2_ARM_EABIHF && BR2_TOOLCHAIN_USES_MUSL # i586-unknown-linux-gnu default y if BR2_i586 && BR2_TOOLCHAIN_USES_GLIBC # i586-unknown-linux-musl default y if BR2_i586 && BR2_TOOLCHAIN_USES_MUSL # i686-unknown-linux-musl default y if (BR2_i686 || BR2_x86_pentiumpro || BR2_X86_CPU_HAS_MMX) && BR2_TOOLCHAIN_USES_MUSL # mips-unknown-linux-musl default y if BR2_mips && BR2_TOOLCHAIN_USES_MUSL && !BR2_MIPS_CPU_MIPS32R6 # mips64-unknown-linux-muslabi64 default y if BR2_mips64 && BR2_TOOLCHAIN_USES_MUSL && BR2_MIPS_NABI64 && !BR2_MIPS_CPU_MIPS64R6 # mips64el-unknown-linux-muslabi64 default y if BR2_mips64el && BR2_TOOLCHAIN_USES_MUSL && BR2_MIPS_NABI64 && !BR2_MIPS_CPU_MIPS64R6 # mipsel-unknown-linux-musl default y if BR2_mipsel && BR2_TOOLCHAIN_USES_MUSL && !BR2_MIPS_CPU_MIPS32R6 # sparc64-unknown-linux-gnu default y if BR2_sparc64 && BR2_TOOLCHAIN_USES_GLIBC # All target rust packages should depend on this option config BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS bool default y if BR2_PACKAGE_HOST_RUSTC_TARGET_TIER1_PLATFORMS default y if BR2_PACKAGE_HOST_RUSTC_TARGET_TIER2_HOST_TOOLS_PLATFORMS default y if BR2_PACKAGE_HOST_RUSTC_TARGET_TIER2_PLATFORMS depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS config BR2_PACKAGE_HOST_RUSTC_ARCH string default "armv7" if BR2_ARM_CPU_ARMV7A default BR2_ARCH if !BR2_ARM_CPU_ARMV7A config BR2_PACKAGE_HOST_RUSTC_ABI string default "eabi" if BR2_ARM_EABI default "eabihf" if BR2_ARM_EABIHF default "abi64" if BR2_MIPS_NABI64 config BR2_PACKAGE_HOST_RUSTC bool "host rustc" depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS help Compiler for the Rust language http://www.rust-lang.org if BR2_PACKAGE_HOST_RUSTC choice prompt "Rust compiler variant" default BR2_PACKAGE_HOST_RUST_BIN help Select a Rust compiler config BR2_PACKAGE_HOST_RUST bool "host rust" # RUSTC_TARGET_NAME must be set for building host-rust # otherwise config.toml is broken. depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # triggers ICE on trunc_int_for_mode, at explow.c:56 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 || !BR2_aarch64 help This package will build the compiler for the host as well as two flavors of the standard library: one for the host, another for the target. Both are installed in the host directory. comment "host-rust needs a toolchain w/ gcc >= 5" depends on BR2_aarch64 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_5 config BR2_PACKAGE_HOST_RUST_BIN bool "host rust (pre-built)" help This package will install pre-built versions of the compiler for the host and the Rust standard library for the target. endchoice endif config BR2_PACKAGE_PROVIDES_HOST_RUSTC string default "host-rust" if BR2_PACKAGE_HOST_RUST # Default to host-rust-bin as long as host arch supports it default "host-rust-bin" if !BR2_PACKAGE_HOST_RUST depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS ================================================ FILE: package/rustc/cargo-config.in ================================================ [target.@RUSTC_TARGET_NAME@] linker = "@CROSS_PREFIX@gcc" ================================================ FILE: package/rustc/rustc.mk ================================================ ################################################################################ # # rustc # ################################################################################ RUSTC_ARCH = $(call qstrip,$(BR2_PACKAGE_HOST_RUSTC_ARCH)) RUSTC_ABI = $(call qstrip,$(BR2_PACKAGE_HOST_RUSTC_ABI)) ifeq ($(BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS),y) RUSTC_TARGET_NAME = $(RUSTC_ARCH)-unknown-linux-$(LIBC)$(RUSTC_ABI) endif ifeq ($(HOSTARCH),x86) RUSTC_HOST_ARCH = i686 else RUSTC_HOST_ARCH = $(HOSTARCH) endif RUSTC_HOST_NAME = $(RUSTC_HOST_ARCH)-unknown-linux-gnu $(eval $(host-virtual-package)) ifeq ($(BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS),y) define RUSTC_INSTALL_CARGO_CONFIG mkdir -p $(HOST_DIR)/share/cargo sed -e 's/@RUSTC_TARGET_NAME@/$(RUSTC_TARGET_NAME)/' \ -e 's/@CROSS_PREFIX@/$(notdir $(TARGET_CROSS))/' \ package/rustc/cargo-config.in \ > $(HOST_DIR)/share/cargo/config endef # check-package disable TypoInPackageVariable - TOOLCHAIN intended TOOLCHAIN_POST_INSTALL_STAGING_HOOKS += RUSTC_INSTALL_CARGO_CONFIG endif ================================================ FILE: package/rwmem/Config.in ================================================ config BR2_PACKAGE_RWMEM bool "rwmem" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # fmt select BR2_PACKAGE_FMT select BR2_PACKAGE_INIH help Simple program to read/write from/to any location in memory. https://github.com/tomba/rwmem comment "rwmem needs a toolchain w/ C++, wchar, gcc >= 5" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 ================================================ FILE: package/rwmem/rwmem.hash ================================================ sha256 55d28f029c0cd5c21d3e1c89371e2905d5217f571ef5389ed0fce163804d1c4a rwmem-c8291705c82bb0686be9adf6a427a2b72114719a.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/rwmem/rwmem.mk ================================================ ################################################################################ # # rwmem # ################################################################################ RWMEM_VERSION = c8291705c82bb0686be9adf6a427a2b72114719a RWMEM_SITE = $(call github,tomba,rwmem,$(RWMEM_VERSION)) RWMEM_LICENSE = GPL-2.0 RWMEM_LICENSE_FILES = LICENSE RWMEM_CONF_OPTS = -Dpyrwmem=disabled RWMEM_DEPENDENCIES = host-pkgconf fmt inih $(eval $(meson-package)) ================================================ FILE: package/rygel/Config.in ================================================ config BR2_PACKAGE_RYGEL bool "rygel" depends on BR2_USE_WCHAR # gupnp-av depends on BR2_TOOLCHAIN_HAS_THREADS # gupnp-av depends on BR2_USE_MMU # gupnp-av select BR2_PACKAGE_GUPNP_AV select BR2_PACKAGE_LIBGEE select BR2_PACKAGE_LIBMEDIAART select BR2_PACKAGE_SQLITE help Rygel is a home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices. Additionally, media player software may use Rygel to become a MediaRenderer that may be controlled remotely by a UPnP or DLNA Controller. Rygel achieves interoperability with other devices in the market by trying to conform to the very strict requirements of DLNA and by converting media on-the-fly to formats that client devices can handle. Most Rygel functionality is implemented through a plug-in mechanism. https://wiki.gnome.org/Projects/Rygel if BR2_PACKAGE_RYGEL choice prompt "media engine" default BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE bool "simple" config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1 bool "gstreamer1" select BR2_PACKAGE_GDK_PIXBUF select BR2_PACKAGE_GUPNP_DLNA select BR2_PACKAGE_GSTREAMER1 select BR2_PACKAGE_GST1_PLUGINS_BASE endchoice comment "rygel needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS endif # BR2_PACKAGE_RYGEL ================================================ FILE: package/rygel/S99rygel ================================================ #!/bin/sh NAME=rygel PIDFILE=/var/run/$NAME.pid DAEMON=/usr/bin/$NAME start() { printf "Starting $NAME: " start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON [ $? = 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|reload}" exit 1 esac exit $? ================================================ FILE: package/rygel/rygel.hash ================================================ # Hash from: http://ftp.gnome.org/pub/gnome/sources/rygel/0.38/rygel-0.38.3.sha256sum: sha256 08c21a577f7bdad26446a75ffa32778b26842c3b1188165f0b19818559747d00 rygel-0.38.3.tar.xz # Locally calculated sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING sha256 c7d881be8ae01162510e982a32001446c6d6d18a9cecc89cc41a28bd215a0262 COPYING.logo ================================================ FILE: package/rygel/rygel.mk ================================================ ################################################################################ # # rygel # ################################################################################ RYGEL_VERSION_MAJOR = 0.38 RYGEL_VERSION = $(RYGEL_VERSION_MAJOR).3 RYGEL_SOURCE = rygel-$(RYGEL_VERSION).tar.xz RYGEL_SITE = http://ftp.gnome.org/pub/gnome/sources/rygel/$(RYGEL_VERSION_MAJOR) RYGEL_LICENSE = LGPL-2.1+, CC-BY-SA-3.0 (logo) RYGEL_LICENSE_FILES = COPYING COPYING.logo RYGEL_DEPENDENCIES = \ gupnp-av \ libgee \ libmediaart \ sqlite \ $(TARGET_NLS_DEPENDENCIES) RYGEL_INSTALL_STAGING = YES RYGEL_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) RYGEL_CONF_OPTS += \ --disable-apidocs \ --disable-coverage \ --disable-example-plugins \ --enable-external-plugin \ --enable-lms-plugin \ --enable-mpris-plugin \ --enable-ruih-plugin \ --disable-tracker-plugin ifeq ($(BR2_PACKAGE_GDK_PIXBUF),y) RYGEL_DEPENDENCIES += gdk-pixbuf endif ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) RYGEL_CONF_OPTS += --enable-introspection RYGEL_DEPENDENCIES += gobject-introspection else RYGEL_CONF_OPTS += --disable-introspection endif ifeq ($(BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1),y) RYGEL_CONF_OPTS += \ --with-media-engine=gstreamer \ --enable-playbin-plugin \ --enable-media_export-plugin \ --enable-gst-launch-plugin RYGEL_DEPENDENCIES += \ gupnp-dlna \ gst1-plugins-base \ gstreamer1 else ifeq ($(BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE),y) RYGEL_CONF_OPTS += \ --with-media-engine=simple \ --disable-playbin-plugin \ --disable-media_export-plugin \ --disable-gst-launch-plugin endif ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) RYGEL_CONF_OPTS += --with-ui RYGEL_DEPENDENCIES += libgtk3 else RYGEL_CONF_OPTS += --without-ui endif define RYGEL_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/rygel/S99rygel \ $(TARGET_DIR)/etc/init.d/S99rygel endef define RYGEL_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/rygel/rygel.service \ $(TARGET_DIR)/usr/lib/systemd/system/rygel.service endef $(eval $(autotools-package)) ================================================ FILE: package/rygel/rygel.service ================================================ [Unit] Description=Rygel DLNA server After=network.target [Service] ExecStart=/usr/bin/rygel Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/s390-tools/0004-zipl-boot-Makefile-no-pie-is-not-a-valid-ld-flag.patch ================================================ From 9fd3c733c645be13a2e39a3bae3983f88530b48d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20M=C3=A4rdian?= Date: Thu, 7 Jan 2021 12:46:22 +0100 Subject: [PATCH] zipl/boot/Makefile: -no-pie is not a valid ld flag The "-no-pie" option never has been a valid flag of ld. It breaks the build with newer binutils. See: https://sourceware.org/bugzilla/show_bug.cgi?id=27050 https://bugs.launchpad.net/ubuntu/+source/s390-tools/+bug/1907789 [Retrieved from: https://github.com/ibm-s390-linux/s390-tools/pull/106] Signed-off-by: Fabrice Fontaine --- zipl/boot/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zipl/boot/Makefile b/zipl/boot/Makefile index a2e5f190..b81df778 100644 --- a/zipl/boot/Makefile +++ b/zipl/boot/Makefile @@ -109,7 +109,7 @@ stage3.bin: stage3.exec $< $@ data.o: $(FILES) - $(LD) $(NO_PIE_LDFLAGS) -r -b binary -o data.o $(FILES) + $(LD) -r -b binary -o data.o $(FILES) data.h: data.o rm -f data.h ================================================ FILE: package/s390-tools/Config.in ================================================ comment "s390-tools needs a glibc toolchain w/ C++, wchar, dynamic library" depends on BR2_s390x depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_S390_TOOLS bool "s390-tools" depends on BR2_s390x depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_ZLIB help Tools for use with the s390 Linux kernel and device drivers. https://github.com/ibm-s390-linux/s390-tools ================================================ FILE: package/s390-tools/s390-tools.hash ================================================ # Locally computed: sha256 a1e2118152a85201984d2045033d49f7fd92e8cd0ea80ae0a5ebeb0d258cdedb s390-tools-2.18.0.tar.gz sha256 cca17a9a944ebec769adee4aebd805c912c357785ff2705a99ffe68563021f75 LICENSE ================================================ FILE: package/s390-tools/s390-tools.mk ================================================ ################################################################################ # # s390-tools # ################################################################################ S390_TOOLS_VERSION = 2.18.0 S390_TOOLS_SITE = $(call github,ibm-s390-linux,s390-tools,v$(S390_TOOLS_VERSION)) S390_TOOLS_LICENSE = MIT S390_TOOLS_LICENSE_FILES = LICENSE S390_TOOLS_DEPENDENCIES = zlib S390_TOOLS_MAKE_OPTS = \ ARCH=$(BR2_ARCH) \ CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" \ LINK="$(TARGET_CC)" \ LINKXX="$(TARGET_CXX)" ifeq ($(BR2_PACKAGE_LIBCURL),y) S390_TOOLS_DEPENDENCIES += libcurl S390_TOOLS_MAKE_OPTS += \ CURL_CONFIG=$(STAGING_DIR)/usr/bin/curl-config \ HAVE_CURL=1 \ HAVE_LIBCURL=1 else S390_TOOLS_MAKE_OPTS += \ HAVE_CURL=0 \ HAVE_LIBCURL=0 endif ifeq ($(BR2_PACKAGE_JSON_C),y) S390_TOOLS_DEPENDENCIES += json-c S390_TOOLS_MAKE_OPTS += HAVE_JSONC=1 else S390_TOOLS_MAKE_OPTS += HAVE_JSONC=0 endif ifeq ($(BR2_PACKAGE_OPENSSL),y) S390_TOOLS_DEPENDENCIES += openssl S390_TOOLS_MAKE_OPTS += HAVE_OPENSSL=1 else S390_TOOLS_MAKE_OPTS += HAVE_OPENSSL=0 endif ifeq ($(BR2_PACKAGE_CRYPTSETUP),y) S390_TOOLS_DEPENDENCIES += cryptsetup S390_TOOLS_MAKE_OPTS += HAVE_CRYPTSETUP2=1 else S390_TOOLS_MAKE_OPTS += HAVE_CRYPTSETUP2=0 endif ifeq ($(BR2_PACKAGE_LIBGLIB2),y) S390_TOOLS_DEPENDENCIES += libglib2 S390_TOOLS_MAKE_OPTS += HAVE_GLIB2=1 else S390_TOOLS_MAKE_OPTS += HAVE_GLIB2=0 endif ifeq ($(BR2_PACKAGE_LIBXML2),y) S390_TOOLS_DEPENDENCIES += libxml2 S390_TOOLS_MAKE_OPTS += \ HAVE_LIBXML2=1 \ XML2_CONFIG=$(STAGING_DIR)/usr/bin/xml2-config else S390_TOOLS_MAKE_OPTS += HAVE_LIBXML2=0 endif ifeq ($(BR2_PACKAGE_NCURSES),y) S390_TOOLS_DEPENDENCIES += ncurses S390_TOOLS_MAKE_OPTS += HAVE_NCURSES=1 else S390_TOOLS_MAKE_OPTS += HAVE_NCURSES=0 endif ifeq ($(BR2_PACKAGE_LIBPFM4),y) S390_TOOLS_DEPENDENCIES += libpfm4 S390_TOOLS_MAKE_OPTS += HAVE_PFM=1 else S390_TOOLS_MAKE_OPTS += HAVE_PFM=0 endif ifeq ($(BR2_PACKAGE_LIBFUSE),y) S390_TOOLS_DEPENDENCIES += libfuse S390_TOOLS_MAKE_OPTS += HAVE_FUSE=1 else S390_TOOLS_MAKE_OPTS += HAVE_FUSE=0 endif ifeq ($(BR2_PACKAGE_NETSNMP),y) S390_TOOLS_DEPENDENCIES += netsnmp S390_TOOLS_MAKE_OPTS += \ NET_SNMP_CONFIG=$(STAGING_DIR)/usr/bin/net-snmp-config \ HAVE_SNMP=1 else S390_TOOLS_MAKE_OPTS += HAVE_SNMP=0 endif define S390_TOOLS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ $(S390_TOOLS_MAKE_OPTS) endef define S390_TOOLS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) install \ $(S390_TOOLS_MAKE_OPTS) DESTDIR="$(TARGET_DIR)" endef $(eval $(generic-package)) ================================================ FILE: package/s6/Config.in ================================================ config BR2_PACKAGE_S6 bool "s6" depends on BR2_USE_MMU # execline select BR2_PACKAGE_EXECLINE help s6 is a small suite of programs for UNIX, designed to allow process supervision (a.k.a service supervision), in the line of daemontools and runit, as well as various operations on processes and daemons. http://skarnet.org/software/s6/ ================================================ FILE: package/s6/s6.hash ================================================ # Locally generated sha256 1d21373151704150df0e8ed199f097f6ee5d2befb9a68aca4f20f3862e5d8757 s6-2.10.0.3.tar.gz sha256 adecb8bedfaae27fcfe65ecb3ef0e2e71aa2a2b49dc21886a200bc677d93e6ec COPYING ================================================ FILE: package/s6/s6.mk ================================================ ################################################################################ # # s6 # ################################################################################ S6_VERSION = 2.10.0.3 S6_SITE = http://skarnet.org/software/s6 S6_LICENSE = ISC S6_LICENSE_FILES = COPYING S6_INSTALL_STAGING = YES S6_DEPENDENCIES = execline S6_CONF_OPTS = \ --prefix=/ \ --with-sysdeps=$(STAGING_DIR)/lib/skalibs/sysdeps \ --with-include=$(STAGING_DIR)/include \ --with-dynlib=$(STAGING_DIR)/lib \ --with-lib=$(STAGING_DIR)/lib/execline \ --with-lib=$(STAGING_DIR)/lib/skalibs \ $(if $(BR2_STATIC_LIBS),,--disable-allstatic) \ $(SHARED_STATIC_LIBS_OPTS) define S6_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(S6_CONF_OPTS)) endef define S6_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define S6_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef define S6_REMOVE_STATIC_LIB_DIR rm -rf $(TARGET_DIR)/usr/lib/s6 endef S6_POST_INSTALL_TARGET_HOOKS += S6_REMOVE_STATIC_LIB_DIR define S6_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef HOST_S6_DEPENDENCIES = host-execline HOST_S6_CONF_OPTS = \ --prefix=$(HOST_DIR) \ --with-sysdeps=$(HOST_DIR)/lib/skalibs/sysdeps \ --with-include=$(HOST_DIR)/include \ --with-dynlib=$(HOST_DIR)/lib \ --disable-static \ --enable-shared \ --disable-allstatic define HOST_S6_CONFIGURE_CMDS (cd $(@D); $(HOST_CONFIGURE_OPTS) ./configure $(HOST_S6_CONF_OPTS)) endef define HOST_S6_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_S6_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install-dynlib install-include endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/s6-dns/Config.in ================================================ config BR2_PACKAGE_S6_DNS bool "s6-dns" depends on BR2_USE_MMU # skalibs select BR2_PACKAGE_SKALIBS help s6-dns is a suite of DNS client programs and libraries for Unix systems, as an alternative to the BIND, djbdns or other DNS clients. http://skarnet.org/software/s6-dns/ ================================================ FILE: package/s6-dns/s6-dns.hash ================================================ # Locally generated sha256 0c1d50e5d7bc65cbf59b6f37fbd7f6f5645694224bb8c4dc1943d7921bc74f63 s6-dns-2.3.5.1.tar.gz sha256 adecb8bedfaae27fcfe65ecb3ef0e2e71aa2a2b49dc21886a200bc677d93e6ec COPYING ================================================ FILE: package/s6-dns/s6-dns.mk ================================================ ################################################################################ # # s6-dns # ################################################################################ S6_DNS_VERSION = 2.3.5.1 S6_DNS_SITE = http://skarnet.org/software/s6-dns S6_DNS_LICENSE = ISC S6_DNS_LICENSE_FILES = COPYING S6_DNS_INSTALL_STAGING = YES S6_DNS_DEPENDENCIES = skalibs S6_DNS_CONF_OPTS = \ --prefix=/ \ --with-sysdeps=$(STAGING_DIR)/lib/skalibs/sysdeps \ --with-include=$(STAGING_DIR)/include \ --with-dynlib=$(STAGING_DIR)/lib \ --with-lib=$(STAGING_DIR)/lib/skalibs \ $(if $(BR2_STATIC_LIBS),,--disable-allstatic) \ $(SHARED_STATIC_LIBS_OPTS) define S6_DNS_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(S6_DNS_CONF_OPTS)) endef define S6_DNS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define S6_DNS_REMOVE_STATIC_LIB_DIR rm -rf $(TARGET_DIR)/usr/lib/s6-dns endef S6_DNS_POST_INSTALL_TARGET_HOOKS += S6_DNS_REMOVE_STATIC_LIB_DIR define S6_DNS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef define S6_DNS_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/s6-linux-init/0001-configure-add-D_GNU_SOURCE.patch ================================================ From dadb157df58e79c7f560cacae80ea51953606fca Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 11 Apr 2021 11:02:20 +0200 Subject: [PATCH] configure: add -D_GNU_SOURCE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This will fix the following build failure with uclibc-ng which is raised since version 1.0.6.1 and https://github.com/skarnet/s6-linux-init/commit/355a75e08bbc8af8af97576bad07471dd1b431d8: src/shutdown/s6-linux-init-shutdownd.c: In function ‘main’: src/shutdown/s6-linux-init-shutdownd.c:294:24: error: ‘F_DUPFD_CLOEXEC’ undeclared (first use in this function); did you mean ‘FD_CLOEXEC’? 294 | fd[0] = fcntl(1, F_DUPFD_CLOEXEC, 0) ; | ^~~~~~~~~~~~~~~ | FD_CLOEXEC Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/skarnet/s6-linux-init/pull/3] --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 47db5b2..90fbb3b 100755 --- a/configure +++ b/configure @@ -138,7 +138,7 @@ getmacrostring () { # Actual script CC_AUTO= -CPPFLAGS_AUTO="-D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -iquote src/include-local -Isrc/include" +CPPFLAGS_AUTO="-D_GNU_SOURCE -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -iquote src/include-local -Isrc/include" CPPFLAGS_POST="$CPPFLAGS" CPPFLAGS= CFLAGS_AUTO="-pipe -Wall" -- 2.30.2 ================================================ FILE: package/s6-linux-init/Config.in ================================================ config BR2_PACKAGE_S6_LINUX_INIT bool "s6-linux-init" depends on BR2_USE_MMU # s6 select BR2_PACKAGE_S6 select BR2_PACKAGE_S6_LINUX_UTILS select BR2_PACKAGE_S6_PORTABLE_UTILS help s6-linux-init is a set of minimalistic tools to create a s6-based init system, including a /sbin/init binary, on a Linux kernel. http://skarnet.org/software/s6-linux-init/ ================================================ FILE: package/s6-linux-init/s6-linux-init.hash ================================================ # Locally generated sha256 29e368516b1a3c61a6d1f8680645cc122a2e02127debec91738f170a3b93b8c5 s6-linux-init-1.0.6.3.tar.gz sha256 4a5e44a69d649f0c37b29d7f6e5df1bb292b09898247be07f0c97814dac4b15d COPYING ================================================ FILE: package/s6-linux-init/s6-linux-init.mk ================================================ ################################################################################ # # s6-linux-init # ################################################################################ S6_LINUX_INIT_VERSION = 1.0.6.3 S6_LINUX_INIT_SITE = http://skarnet.org/software/s6-linux-init S6_LINUX_INIT_LICENSE = ISC S6_LINUX_INIT_LICENSE_FILES = COPYING S6_LINUX_INIT_DEPENDENCIES = s6 s6-linux-utils s6-portable-utils S6_LINUX_INIT_CONF_OPTS = \ --prefix=/ \ --with-sysdeps=$(STAGING_DIR)/lib/skalibs/sysdeps \ --with-include=$(STAGING_DIR)/include \ --with-dynlib=$(STAGING_DIR)/lib \ --with-lib=$(STAGING_DIR)/lib/execline \ --with-lib=$(STAGING_DIR)/lib/s6 \ --with-lib=$(STAGING_DIR)/lib/skalibs \ $(if $(BR2_STATIC_LIBS),,--disable-allstatic) \ $(SHARED_STATIC_LIBS_OPTS) define S6_LINUX_INIT_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(S6_LINUX_INIT_CONF_OPTS)) endef define S6_LINUX_INIT_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define S6_LINUX_INIT_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/s6-linux-utils/Config.in ================================================ config BR2_PACKAGE_S6_LINUX_UTILS bool "s6-linux-utils" depends on BR2_USE_MMU # skalibs select BR2_PACKAGE_SKALIBS help s6-linux-utils is a set of minimalistic Linux-specific system utilities. http://skarnet.org/software/s6-linux-utils/ ================================================ FILE: package/s6-linux-utils/s6-linux-utils.hash ================================================ # Locally generated sha256 c300dbf36b533083f82c6827830c55ce34bfc6cd493c782f207d199669a345ba s6-linux-utils-2.5.1.5.tar.gz sha256 adecb8bedfaae27fcfe65ecb3ef0e2e71aa2a2b49dc21886a200bc677d93e6ec COPYING ================================================ FILE: package/s6-linux-utils/s6-linux-utils.mk ================================================ ################################################################################ # # s6-linux-utils # ################################################################################ S6_LINUX_UTILS_VERSION = 2.5.1.5 S6_LINUX_UTILS_SITE = http://skarnet.org/software/s6-linux-utils S6_LINUX_UTILS_LICENSE = ISC S6_LINUX_UTILS_LICENSE_FILES = COPYING S6_LINUX_UTILS_DEPENDENCIES = skalibs S6_LINUX_UTILS_CONF_OPTS = \ --prefix=/ \ --with-sysdeps=$(STAGING_DIR)/lib/skalibs/sysdeps \ --with-include=$(STAGING_DIR)/include \ --with-dynlib=$(STAGING_DIR)/lib \ --with-lib=$(STAGING_DIR)/lib/skalibs \ $(if $(BR2_STATIC_LIBS),,--disable-allstatic) \ $(SHARED_STATIC_LIBS_OPTS) define S6_LINUX_UTILS_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(S6_LINUX_UTILS_CONF_OPTS)) endef define S6_LINUX_UTILS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define S6_LINUX_UTILS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/s6-networking/Config.in ================================================ config BR2_PACKAGE_S6_NETWORKING bool "s6-networking" depends on BR2_USE_MMU # s6 select BR2_PACKAGE_S6_DNS select BR2_PACKAGE_S6 help s6-networking is a suite of small networking utilities for Unix systems. It includes command-line client and server management, TCP access control, privilege escalation across UNIX domain sockets, IDENT protocol management and clock synchronization. http://skarnet.org/software/s6-networking/ ================================================ FILE: package/s6-networking/s6-networking.hash ================================================ # Locally generated sha256 a3fbca789dc5c82b3055fdbd2f55110902198f3136447617ce8f8b79fa8aa554 s6-networking-2.4.1.1.tar.gz sha256 adecb8bedfaae27fcfe65ecb3ef0e2e71aa2a2b49dc21886a200bc677d93e6ec COPYING ================================================ FILE: package/s6-networking/s6-networking.mk ================================================ ################################################################################ # # s6-networking # ################################################################################ S6_NETWORKING_VERSION = 2.4.1.1 S6_NETWORKING_SITE = http://skarnet.org/software/s6-networking S6_NETWORKING_LICENSE = ISC S6_NETWORKING_LICENSE_FILES = COPYING S6_NETWORKING_INSTALL_STAGING = YES S6_NETWORKING_DEPENDENCIES = s6-dns s6 S6_NETWORKING_CONF_OPTS = \ --prefix=/ \ --with-sysdeps=$(STAGING_DIR)/lib/skalibs/sysdeps \ --with-include=$(STAGING_DIR)/include \ --with-dynlib=$(STAGING_DIR)/lib \ --with-lib=$(STAGING_DIR)/lib/execline \ --with-lib=$(STAGING_DIR)/lib/s6 \ --with-lib=$(STAGING_DIR)/lib/s6-dns \ --with-lib=$(STAGING_DIR)/lib/skalibs \ $(if $(BR2_STATIC_LIBS),,--disable-allstatic) \ $(SHARED_STATIC_LIBS_OPTS) ifeq ($(BR2_PACKAGE_LIBRESSL),y) S6_NETWORKING_CONF_OPTS += --enable-ssl=libressl S6_NETWORKING_DEPENDENCIES += libressl else ifeq ($(BR2_PACKAGE_BEARSSL),y) S6_NETWORKING_CONF_OPTS += --enable-ssl=bearssl S6_NETWORKING_DEPENDENCIES += bearssl endif define S6_NETWORKING_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(S6_NETWORKING_CONF_OPTS)) endef define S6_NETWORKING_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define S6_NETWORKING_REMOVE_STATIC_LIB_DIR rm -rf $(TARGET_DIR)/usr/lib/s6-networking endef S6_NETWORKING_POST_INSTALL_TARGET_HOOKS += S6_NETWORKING_REMOVE_STATIC_LIB_DIR define S6_NETWORKING_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef define S6_NETWORKING_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/s6-portable-utils/Config.in ================================================ config BR2_PACKAGE_S6_PORTABLE_UTILS bool "s6-portable-utils" depends on BR2_USE_MMU # skalibs select BR2_PACKAGE_SKALIBS help s6-portable-utils is a set of tiny general Unix utilities, often performing well-known tasks such as cut and grep, but optimized for simplicity and small size. They were designed for embedded systems and other constrained environments, but they work everywhere. http://skarnet.org/software/s6-portable-utils/ ================================================ FILE: package/s6-portable-utils/s6-portable-utils.hash ================================================ # Locally generated sha256 6627a2d3ea263539e83512a36f10a587fa0dd5e899bc3612187e9e3b9faf769c s6-portable-utils-2.2.3.2.tar.gz sha256 adecb8bedfaae27fcfe65ecb3ef0e2e71aa2a2b49dc21886a200bc677d93e6ec COPYING ================================================ FILE: package/s6-portable-utils/s6-portable-utils.mk ================================================ ################################################################################ # # s6-portable-utils # ################################################################################ S6_PORTABLE_UTILS_VERSION = 2.2.3.2 S6_PORTABLE_UTILS_SITE = http://skarnet.org/software/s6-portable-utils S6_PORTABLE_UTILS_LICENSE = ISC S6_PORTABLE_UTILS_LICENSE_FILES = COPYING S6_PORTABLE_UTILS_DEPENDENCIES = skalibs S6_PORTABLE_UTILS_CONF_OPTS = \ --prefix=/ \ --with-sysdeps=$(STAGING_DIR)/lib/skalibs/sysdeps \ --with-include=$(STAGING_DIR)/include \ --with-dynlib=$(STAGING_DIR)/lib \ --with-lib=$(STAGING_DIR)/lib/skalibs \ $(if $(BR2_STATIC_LIBS),,--disable-allstatic) \ $(SHARED_STATIC_LIBS_OPTS) define S6_PORTABLE_UTILS_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(S6_PORTABLE_UTILS_CONF_OPTS)) endef define S6_PORTABLE_UTILS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define S6_PORTABLE_UTILS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/s6-rc/Config.in ================================================ config BR2_PACKAGE_S6_RC bool "s6-rc" depends on BR2_USE_MMU # s6 select BR2_PACKAGE_S6 help s6-rc is a service manager for s6-based systems, i.e. a suite of programs that can start and stop services, both long-running daemons and one-time initialization scripts, in the proper order according to a dependency tree. http://skarnet.org/software/s6-rc/ ================================================ FILE: package/s6-rc/Config.in.host ================================================ config BR2_PACKAGE_HOST_S6_RC bool "host s6-rc" depends on BR2_PACKAGE_S6_RC help This package provides the host variant of the s6-rc tools, required to build the s6-rc service database offline. http://skarnet.org/software/s6-rc/ ================================================ FILE: package/s6-rc/s6-rc.hash ================================================ # Locally generated sha256 2a8d1cd455c05c8502b34517cfe79841aa46d08ad969076b37a15d3910617f89 s6-rc-0.5.2.2.tar.gz sha256 4a5e44a69d649f0c37b29d7f6e5df1bb292b09898247be07f0c97814dac4b15d COPYING ================================================ FILE: package/s6-rc/s6-rc.mk ================================================ ################################################################################ # # s6-rc # ################################################################################ S6_RC_VERSION = 0.5.2.2 S6_RC_SITE = http://skarnet.org/software/s6-rc S6_RC_LICENSE = ISC S6_RC_LICENSE_FILES = COPYING S6_RC_INSTALL_STAGING = YES S6_RC_DEPENDENCIES = s6 S6_RC_CONF_OPTS = \ --prefix=/ \ --with-sysdeps=$(STAGING_DIR)/lib/skalibs/sysdeps \ --with-include=$(STAGING_DIR)/include \ --with-dynlib=$(STAGING_DIR)/lib \ --with-lib=$(STAGING_DIR)/lib/execline \ --with-lib=$(STAGING_DIR)/lib/s6 \ --with-lib=$(STAGING_DIR)/lib/skalibs \ $(if $(BR2_STATIC_LIBS),,--disable-allstatic) \ $(SHARED_STATIC_LIBS_OPTS) define S6_RC_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(S6_RC_CONF_OPTS)) endef define S6_RC_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define S6_RC_REMOVE_STATIC_LIB_DIR rm -rf $(TARGET_DIR)/usr/lib/s6-rc endef S6_RC_POST_INSTALL_TARGET_HOOKS += S6_RC_REMOVE_STATIC_LIB_DIR define S6_RC_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef define S6_RC_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef HOST_S6_RC_DEPENDENCIES = host-s6 HOST_S6_RC_CONF_OPTS = \ --prefix=$(HOST_DIR) \ --libexecdir=/usr/libexec \ --with-sysdeps=$(HOST_DIR)/lib/skalibs/sysdeps \ --with-include=$(HOST_DIR)/include \ --with-dynlib=$(HOST_DIR)/lib \ --disable-static \ --enable-shared \ --disable-allstatic define HOST_S6_RC_CONFIGURE_CMDS (cd $(@D); $(HOST_CONFIGURE_OPTS) ./configure $(HOST_S6_RC_CONF_OPTS)) endef define HOST_S6_RC_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_S6_RC_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install-dynlib install-bin rm -f $(HOST_DIR)/bin/s6-rc-dryrun endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/safeclib/Config.in ================================================ config BR2_PACKAGE_SAFECLIB bool "safeclib" help safec fork with all C11 Annex K functions This library implements the secure C11 Annex K functions on top of most libc implementations, which are missing from them. https://rurban.github.io/safeclib/ ================================================ FILE: package/safeclib/safeclib.hash ================================================ # From https://github.com/rurban/safeclib/releases/tag/v08112019 sha256 bc2f25875522c50a3a5901981020d906db0b6a7d365619b8d72412c126be3923 libsafec-08112019.0-gad76c7.tar.bz2 # Hash for license file sha256 c33e77efd5781e3d59a2bb648c82d2a615035ef0d24cf58880380e3af906510b COPYING ================================================ FILE: package/safeclib/safeclib.mk ================================================ ################################################################################ # # safeclib # ################################################################################ SAFECLIB_VERSION = 08112019 SAFECLIB_SITE = \ https://github.com/rurban/safeclib/releases/download/v$(SAFECLIB_VERSION) SAFECLIB_SOURCE = libsafec-$(SAFECLIB_VERSION).0-gad76c7.tar.bz2 SAFECLIB_LICENSE = MIT SAFECLIB_LICENSE_FILES = COPYING SAFECLIB_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/sam-ba/Config.in.host ================================================ config BR2_PACKAGE_HOST_SAM_BA bool "host sam-ba" depends on BR2_HOSTARCH = "x86_64" select BR2_HOSTARCH_NEEDS_IA32_LIBS help Atmel SAM-BA software provides an open set of tools for programming the Atmel SAM3, SAM7 and SAM9 ARM-based microcontrollers. http://www.at91.com/linux4sam/bin/view/Linux4SAM/SoftwareTools https://www.microchip.com/en-us/development-tool/SAM-BA-IN-SYSTEM-PROGRAMMER ================================================ FILE: package/sam-ba/sam-ba.hash ================================================ # sha256 locally computed sha256 f66e431f0401b197e80599156ea93aa3aab050bc4d16523c95fae1107ef9101c sam-ba_3.5-linux_x86_64.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.txt ================================================ FILE: package/sam-ba/sam-ba.mk ================================================ ################################################################################ # # sam-ba # ################################################################################ SAM_BA_VERSION = 3.5 SAM_BA_SITE = https://www.microchip.com/content/dam/mchp/documents/MPU32/ProductDocuments/SoftwareTools SAM_BA_SOURCE = sam-ba_$(SAM_BA_VERSION)-linux_x86_64.tar.gz SAM_BA_LICENSE = GPLv2 SAM_BA_LICENSE_FILES = LICENSE.txt # Since it's a prebuilt application and it does not conform to the # usual Unix hierarchy, we install it in $(HOST_DIR)/opt/sam-ba and # then create a symbolic link from $(HOST_DIR)/bin to the # application binary, for easier usage. define HOST_SAM_BA_INSTALL_CMDS mkdir -p $(HOST_DIR)/opt/sam-ba/ cp -a $(@D)/* $(HOST_DIR)/opt/sam-ba/ mkdir -p $(HOST_DIR)/bin/ ln -sf ../opt/sam-ba/sam-ba $(HOST_DIR)/bin/sam-ba endef $(eval $(host-generic-package)) ================================================ FILE: package/samba4/0001-libreplace-disable-libbsd-support.patch ================================================ From 4df82c9e03b68dc1621fe4c9ac6a29ae3e64e07e Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Wed, 7 Sep 2016 23:03:43 -0300 Subject: [PATCH] libreplace: disable libbsd support Disable libbsd support, samba4 uses a global config.h for its own codebase and that of heimdal (when building with builtin). This causes redefinition conflicts for link(2) when both standard unistd.h and bsd/unistd.h get included. Signed-off-by: Gustavo Zacarias [Bernd: rebased for versions 4.7.3, 4.8.0, 4.8.5 & 4.11.13] Signed-off-by: Bernd Kuhls --- lib/replace/wscript | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/lib/replace/wscript b/lib/replace/wscript index 240d730cbee..c6d8df43c74 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -406,21 +406,6 @@ def configure(conf): strlcpy_in_bsd = False - # libbsd on some platforms provides strlcpy and strlcat - if not conf.CHECK_FUNCS('strlcpy strlcat'): - if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', - checklibc=True): - strlcpy_in_bsd = True - if not conf.CHECK_FUNCS('getpeereid'): - conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') - if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): - conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') - if not conf.CHECK_FUNCS('setproctitle_init'): - conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') - - if not conf.CHECK_FUNCS('closefrom'): - conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') - conf.CHECK_CODE(''' struct ucred cred; socklen_t cred_len; -- 2.20.1 ================================================ FILE: package/samba4/0002-build-find-pre-built-heimdal-build-tools-in-case-of-.patch ================================================ From e002d2ef2688d5433d2bd03aa4d77a0ec5ac4e63 Mon Sep 17 00:00:00 2001 From: Uri Simchoni Date: Sun, 20 Oct 2019 00:03:14 +0300 Subject: [PATCH] build: find pre-built heimdal build tools in case of embedded heimdal This patch fixes the case of finding asn1_compile and compile_et for building embedded heimdal, by setting --bundled-libraries='!asn1_compile,!compile_et' as configure flags. The Heimdal build tools compile_et and asn1_compile are needed *only* if we use the embedded heimdal (otherwise we don't build heimdal and use headers that have been generated by those tools elsewhere). For cross-compilation with embedded heimdal, it is vital to use host build tools, and so asn1_compile and compile_et must be supplied and not built. One way of doing this would be to set the COMPILE_ET and ASN1_COMPILE env vars to the location of supplied binaries. Another way, which is more commonly used, is to exclude asn1_compile and compile_et from bundled packages via the switch -bundled-libraries='!asn1_compile,!compile_et'. When this is done, the build script searches the path for those tools and sets the ASN1_COMPILE and COMPILE_ET vars accordingly. (this is admittedly kind of a round-about way of doing things but this has become the de-facto standard amongst embedded distro builders). In commit 8061983d4882f3ba3f12da71443b035d7b672eec, this process of finding the binaris has been moved to be carried out only in the system heimdal case. As explained above, we only need these tools, and hence the check, in bundled mode. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14164 Signed-off-by: Uri Simchoni Signed-off-by: Bernd Kuhls [Bernd: rebased for version 4.11.13] --- wscript_configure_embedded_heimdal | 11 +++++++++++ wscript_configure_system_heimdal | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/wscript_configure_embedded_heimdal b/wscript_configure_embedded_heimdal index 8c55ae2a938..4fdae8062c5 100644 --- a/wscript_configure_embedded_heimdal +++ b/wscript_configure_embedded_heimdal @@ -1 +1,12 @@ conf.RECURSE('source4/heimdal_build') + +def check_system_heimdal_binary(name): + if conf.LIB_MAY_BE_BUNDLED(name): + return False + if not conf.find_program(name, var=name.upper()): + return False + conf.define('USING_SYSTEM_%s' % name.upper(), 1) + return True + +check_system_heimdal_binary("compile_et") +check_system_heimdal_binary("asn1_compile") diff --git a/wscript_configure_system_heimdal b/wscript_configure_system_heimdal index 0ff6dad2f55..f77c177442f 100644 --- a/wscript_configure_system_heimdal +++ b/wscript_configure_system_heimdal @@ -37,14 +37,6 @@ def check_system_heimdal_lib(name, functions='', headers='', onlyif=None): conf.define('USING_SYSTEM_%s' % name.upper(), 1) return True -def check_system_heimdal_binary(name): - if conf.LIB_MAY_BE_BUNDLED(name): - return False - if not conf.find_program(name, var=name.upper()): - return False - conf.define('USING_SYSTEM_%s' % name.upper(), 1) - return True - check_system_heimdal_lib("com_err", "com_right_r com_err", "com_err.h") if check_system_heimdal_lib("roken", "rk_socket_set_reuseaddr", "roken.h"): @@ -96,7 +96,4 @@ #if conf.CHECK_BUNDLED_SYSTEM('tommath', checkfunctions='mp_init', headers='tommath.h'): # conf.define('USING_SYSTEM_TOMMATH', 1) -check_system_heimdal_binary("compile_et") -check_system_heimdal_binary("asn1_compile") - conf.define('USING_SYSTEM_KRB5', 1) -- 2.20.1 ================================================ FILE: package/samba4/0003-ldap_message_test.c-include-stdint.h-before-cmoka.h.patch ================================================ From b2ea5dc3639d68b878c6534f4992da446dbbf2d4 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 16 May 2020 18:15:38 +0200 Subject: [PATCH] ldap_message_test.c: include stdint.h before cmoka.h This fix the following build failure on uclibc: In file included from /home/giuliobenetti/autobuild/run/instance-1/output-1/host/opt/ext-toolchain/lib/gcc/mips64el-buildroot-linux-uclibc/5.5.0/include/stdint.h:9:0, from /home/giuliobenetti/autobuild/run/instance-1/output-1/host/mips64el-buildroot-linux-uclibc/sysroot/usr/include/inttypes.h:27, from ../../lib/replace/../replace/replace.h:64, from ../../source4/include/includes.h:23, from ../../libcli/ldap/tests/ldap_message_test.c:41: /home/giuliobenetti/autobuild/run/instance-1/output-1/host/mips64el-buildroot-linux-uclibc/sysroot/usr/include/stdint.h:122:27: error: conflicting types for 'uintptr_t' typedef unsigned long int uintptr_t; ^ Fixes: - http://autobuild.buildroot.org/results/09e84d15efe755bdefa9f8c6b8355c49ddbc2f65 Signed-off-by: Fabrice Fontaine [Upstream status: not sent yet] --- libcli/ldap/tests/ldap_message_test.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libcli/ldap/tests/ldap_message_test.c b/libcli/ldap/tests/ldap_message_test.c index c5aacd4bc6b..51331e5c600 100644 --- a/libcli/ldap/tests/ldap_message_test.c +++ b/libcli/ldap/tests/ldap_message_test.c @@ -34,6 +34,7 @@ */ #include #include +#include #include #include -- 2.26.2 ================================================ FILE: package/samba4/0004-dcesrv_core-fix-build.patch ================================================ From 44bccdf7d158ae93ba9a5515038aac2a5ac4fd85 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sat, 27 Mar 2021 17:17:34 +0100 Subject: [PATCH] dcesrv_core: fix build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move include of system/network.h to avoid a build error: In file included from ../../lib/replace/system/network.h:35, from ../../librpc/rpc/dcesrv_core.c:2658: usr/include/unistd.h: At top level: usr/include/unistd.h:675:16: error: conflicting types for ‘geteuid’ 675 | extern __uid_t geteuid (void) __THROW; Patch sent upstream: https://gitlab.com/samba-team/samba/-/merge_requests/1871 Signed-off-by: Bernd Kuhls --- librpc/rpc/dcesrv_core.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/librpc/rpc/dcesrv_core.c b/librpc/rpc/dcesrv_core.c index 70e0245532e..e761329d157 100644 --- a/librpc/rpc/dcesrv_core.c +++ b/librpc/rpc/dcesrv_core.c @@ -32,6 +32,7 @@ #include "lib/tsocket/tsocket.h" #include "librpc/gen_ndr/ndr_dcerpc.h" #include "lib/util/tevent_ntstatus.h" +#include "system/network.h" #undef DBGC_CLASS @@ -2633,16 +2634,6 @@ _PUBLIC_ void dcesrv_cleanup_broken_connections(struct dcesrv_context *dce_ctx) } } -/* We need this include to be able to compile on some plateforms - * (ie. freebsd 7.2) as it seems that is not included - * correctly. - * It has to be that deep because otherwise we have a conflict on - * const struct dcesrv_interface declaration. - * This is mostly due to socket_wrapper defining #define bind swrap_bind - * which conflict with the bind used before. - */ -#include "system/network.h" - struct dcesrv_sock_reply_state { struct dcesrv_connection *dce_conn; struct dcesrv_call_state *call; -- 2.29.2 ================================================ FILE: package/samba4/Config.in ================================================ comment "samba4 needs a uClibc or glibc toolchain w/ wchar, dynamic library, NPTL" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_USE_WCHAR || BR2_TOOLCHAIN_USES_MUSL \ || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_USE_MMU config BR2_PACKAGE_SAMBA4 bool "samba4" depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR # python depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # python -> libffi depends on !BR2_STATIC_LIBS # cmocka, python, gnutls depends on !BR2_nios2 # binary too large, relocations don't fit depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_USES_MUSL select BR2_PACKAGE_CMOCKA select BR2_PACKAGE_E2FSPROGS select BR2_PACKAGE_GNUTLS select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_PACKAGE_POPT select BR2_PACKAGE_ZLIB 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/ if BR2_PACKAGE_SAMBA4 config BR2_PACKAGE_SAMBA4_AD_DC bool "AD DC" depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_JANSSON select BR2_PACKAGE_PYTHON_DNSPYTHON select BR2_PACKAGE_PYTHON_MARKDOWN select BR2_PACKAGE_SAMBA4_ADS help Enable Active Directory Domain Controller functionality. comment "AD DC depends on python3" depends on !BR2_PACKAGE_PYTHON3 config BR2_PACKAGE_SAMBA4_ADS bool "ADS" select BR2_PACKAGE_OPENLDAP help Enable Active Directory member Server functionality. config BR2_PACKAGE_SAMBA4_SMBTORTURE bool "smbtorture" help Install the smbtorture test suite. It's normally used for validation and stress testing. Approximately +5 MB of stripped uncompressed target space. endif ================================================ FILE: package/samba4/S91smb ================================================ #!/bin/sh [ -f /etc/samba/smb.conf ] || exit 0 mkdir -p /var/log/samba start() { printf "Starting SMB services: " smbd -D [ $? = 0 ] && echo "OK" || echo "FAIL" printf "Starting NMB services: " nmbd -D [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Shutting down SMB services: " kill -9 `pidof smbd` [ $? = 0 ] && echo "OK" || echo "FAIL" printf "Shutting down NMB services: " kill -9 `pidof nmbd` [ $? = 0 ] && echo "OK" || echo "FAIL" } restart() { stop start } reload() { printf "Reloading smb.conf file: " kill -HUP `pidof smbd` [ $? = 0 ] && echo "OK" || echo "FAIL" } case "$1" in start) start ;; stop) stop ;; restart) restart ;; reload) reload ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac exit $? ================================================ FILE: package/samba4/samba4-cache.txt ================================================ Checking simple C program: OK rpath library support: OK -Wl,--version-script support: OK Checking getconf LFS_CFLAGS: NO Checking for large file support without additional flags: OK Checking for -D_LARGE_FILES: OK Checking correct behavior of strtoll: NO Checking for working strptime: OK Checking for C99 vsnprintf: OK Checking for HAVE_SHARED_MMAP: OK Checking for HAVE_MREMAP: OK Checking for HAVE_INCOHERENT_MMAP: NO Checking for HAVE_SECURE_MKSTEMP: OK Checking for HAVE_IFACE_GETIFADDRS: OK Checking for kernel change notify support: OK Checking for Linux kernel oplocks: OK Checking for kernel share modes: OK Checking if can we convert from CP850 to UCS-2LE: OK Checking if can we convert from UTF-8 to UCS-2LE: OK Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK Checking whether we can use Linux thread-specific credentials: OK Checking whether setreuid is available: OK Checking whether setresuid is available: OK Checking whether seteuid is available: OK Checking whether fcntl locking is available: OK Checking whether fcntl lock supports open file description locks: OK Checking for the maximum value of the 'time_t' type: OK Checking whether the realpath function allows a NULL argument: OK Checking whether POSIX capabilities are available: OK Checking for ftruncate extend: OK vfs_fileid checking for statfs() and struct statfs.f_fsid: OK getcwd takes a NULL argument: OK Checking uname sysname type: "Linux" Checking uname release type: "3.0.0" Checking uname version type: "#1 Tue Nov 1 12:34:56 UTC 2013" Checking value of NSIG: "65" Checking value of _NSIG: "65" Checking value of SIGRTMAX: "64" Checking value of SIGRTMIN: "34" Checking errno of iconv for illegal multibyte sequence: "0" checking for clnt_create(): OK Checking for a 64-bit host to support lmdb: NO Checking value of GNUTLS_CIPHER_AES_128_CFB8: 29 Checking value of GNUTLS_MAC_AES_CMAC_128: 203 Checking whether fcntl supports flags to send direct I/O availability signals: OK ================================================ FILE: package/samba4/samba4.hash ================================================ # Locally calculated after checking pgp signature # https://download.samba.org/pub/samba/stable/samba-4.14.10.tar.asc sha256 107ee862f58062682cec362ec68a24251292805f89aa4c97e7ab80237f91c7af samba-4.14.10.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/samba4/samba4.mk ================================================ ################################################################################ # # samba4 # ################################################################################ SAMBA4_VERSION = 4.14.10 SAMBA4_SITE = https://download.samba.org/pub/samba/stable SAMBA4_SOURCE = samba-$(SAMBA4_VERSION).tar.gz SAMBA4_INSTALL_STAGING = YES SAMBA4_LICENSE = GPL-3.0+ SAMBA4_LICENSE_FILES = COPYING SAMBA4_CPE_ID_VENDOR = samba SAMBA4_CPE_ID_PRODUCT = samba SAMBA4_SELINUX_MODULES = samba SAMBA4_DEPENDENCIES = \ host-e2fsprogs host-flex host-heimdal host-nfs-utils \ host-perl host-perl-parse-yapp host-python3 \ cmocka e2fsprogs gnutls popt zlib \ $(if $(BR2_PACKAGE_LIBAIO),libaio) \ $(if $(BR2_PACKAGE_LIBCAP),libcap) \ $(if $(BR2_PACKAGE_READLINE),readline) \ $(TARGET_NLS_DEPENDENCIES) SAMBA4_CFLAGS = $(TARGET_CFLAGS) SAMBA4_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) SAMBA4_CONF_ENV = \ CFLAGS="$(SAMBA4_CFLAGS)" \ LDFLAGS="$(SAMBA4_LDFLAGS)" \ XSLTPROC=false \ WAF_NO_PREFORK=1 SAMBA4_PYTHON = PYTHON="$(HOST_DIR)/bin/python3" ifeq ($(BR2_PACKAGE_PYTHON3),y) SAMBA4_PYTHON += PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python3-config" SAMBA4_DEPENDENCIES += python3 else SAMBA4_CONF_OPTS += --disable-python endif ifeq ($(BR2_PACKAGE_LIBTIRPC),y) SAMBA4_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc` SAMBA4_LDFLAGS += `$(PKG_CONFIG_HOST_BINARY) --libs libtirpc` SAMBA4_DEPENDENCIES += libtirpc host-pkgconf endif ifeq ($(BR2_PACKAGE_ACL),y) SAMBA4_CONF_OPTS += --with-acl-support SAMBA4_DEPENDENCIES += acl else SAMBA4_CONF_OPTS += --without-acl-support endif ifeq ($(BR2_PACKAGE_CUPS),y) SAMBA4_CONF_ENV += CUPS_CONFIG="$(STAGING_DIR)/usr/bin/cups-config" SAMBA4_CONF_OPTS += --enable-cups SAMBA4_DEPENDENCIES += cups else SAMBA4_CONF_OPTS += --disable-cups endif ifeq ($(BR2_PACKAGE_DBUS),y) SAMBA4_DEPENDENCIES += dbus SAMBA4_SHARED_MODULES += vfs_snapper else SAMBA4_SHARED_MODULES += !vfs_snapper endif ifeq ($(BR2_PACKAGE_DBUS)$(BR2_PACKAGE_AVAHI_DAEMON),yy) SAMBA4_CONF_OPTS += --enable-avahi SAMBA4_DEPENDENCIES += avahi else SAMBA4_CONF_OPTS += --disable-avahi endif ifeq ($(BR2_PACKAGE_GAMIN),y) SAMBA4_CONF_OPTS += --with-fam SAMBA4_DEPENDENCIES += gamin else SAMBA4_CONF_OPTS += --without-fam endif ifeq ($(BR2_PACKAGE_LIBARCHIVE),y) SAMBA4_CONF_OPTS += --with-libarchive SAMBA4_DEPENDENCIES += libarchive else SAMBA4_CONF_OPTS += --without-libarchive endif ifeq ($(BR2_PACKAGE_NCURSES),y) SAMBA4_CONF_ENV += NCURSES_CONFIG="$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS)" SAMBA4_DEPENDENCIES += ncurses else SAMBA4_CONF_OPTS += --without-regedit endif # The ctdb tests (cluster) need bash and take up some space # They're normally intended for debugging so remove them define SAMBA4_REMOVE_CTDB_TESTS rm -rf $(TARGET_DIR)/usr/lib/ctdb-tests rm -rf $(TARGET_DIR)/usr/share/ctdb-tests rm -f $(TARGET_DIR)/usr/bin/ctdb_run_*tests endef SAMBA4_POST_INSTALL_TARGET_HOOKS += SAMBA4_REMOVE_CTDB_TESTS define SAMBA4_CONFIGURE_CMDS $(INSTALL) -m 0644 package/samba4/samba4-cache.txt $(@D)/cache.txt; echo 'Checking whether fcntl supports setting/geting hints: $(if $(BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13),OK,NO)' >>$(@D)/cache.txt; echo 'Checking uname machine type: $(BR2_ARCH)' >>$(@D)/cache.txt; (cd $(@D); \ $(SAMBA4_PYTHON) \ python_LDFLAGS="" \ python_LIBDIR="" \ PERL="$(HOST_DIR)/bin/perl" \ $(TARGET_CONFIGURE_OPTS) \ $(SAMBA4_CONF_ENV) \ ./buildtools/bin/waf configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-libiconv=$(STAGING_DIR)/usr \ --enable-fhs \ --cross-compile \ --cross-answers=$(@D)/cache.txt \ --hostcc=gcc \ --disable-rpath \ --disable-rpath-install \ --disable-iprint \ --without-pam \ --without-dmapi \ --without-gpgme \ --without-ldb-lmdb \ --disable-glusterfs \ --with-cluster-support \ --bundled-libraries='!asn1_compile,!compile_et' \ --with-shared-modules=$(subst $(space),$(comma),$(strip $(SAMBA4_SHARED_MODULES))) \ $(SAMBA4_CONF_OPTS) \ ) endef define SAMBA4_BUILD_CMDS $(TARGET_MAKE_ENV) $(SAMBA4_PYTHON) $(MAKE) -C $(@D) endef define SAMBA4_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(SAMBA4_PYTHON) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef define SAMBA4_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(SAMBA4_PYTHON) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef ifeq ($(BR2_PACKAGE_SAMBA4_AD_DC),y) # host-python-dnspython and host-python-markdown are not strictly # needed on the host, but on the target. however, samba's configure # tests for their availability on the host. SAMBA4_DEPENDENCIES += \ jansson \ host-python-dnspython \ host-python-markdown \ python-dnspython \ python-markdown else SAMBA4_CONF_OPTS += --without-ad-dc --without-json endif ifeq ($(BR2_PACKAGE_SAMBA4_ADS),y) SAMBA4_CONF_OPTS += --with-ads --with-ldap SAMBA4_DEPENDENCIES += openldap SAMBA4_SHARED_MODULES += idmap_ad else SAMBA4_CONF_OPTS += --without-ads --without-ldap SAMBA4_SHARED_MODULES += !idmap_ad endif ifeq ($(BR2_PACKAGE_SAMBA4_SMBTORTURE),) define SAMBA4_REMOVE_SMBTORTURE rm -f $(TARGET_DIR)/usr/bin/smbtorture endef SAMBA4_POST_INSTALL_TARGET_HOOKS += SAMBA4_REMOVE_SMBTORTURE endif define SAMBA4_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/samba4/S91smb \ $(TARGET_DIR)/etc/init.d/S91smb endef ifeq ($(BR2_INIT_SYSTEMD),y) SAMBA4_CONF_OPTS += --systemd-install-services SAMBA4_DEPENDENCIES += systemd endif define SAMBA4_INSTALL_INIT_SYSTEMD $(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)) ================================================ FILE: package/sane-backends/0001-sane_backend-add-missing-config.h.patch ================================================ From 13aadf79659dd238b618c8be7c1de44960bd5d50 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Fri, 11 Nov 2016 22:20:03 +0100 Subject: [PATCH] sane_backend: add missing config.h We should include config.h from sanei_backend.h in order to use the correct if/else HAVE_FOO. For some reason with Glibc or uClibc there is no problem but with musl we have the following weird issue: In file included from epsonds.h:41:0, from epsonds-jpeg.c:18: ../include/sane/sanei_backend.h:99:33: error: expected ';', identifier or '(' before 'int' # define sigset_t int ^ ../include/sane/sanei_backend.h:99:33: warning: useless type name in empty declaration That's because HAVE_SIGPROCMASK is not defined although it's correctly detected by the configure script. $ grep config.log config.log:#define HAVE_SIGPROCMASK 1 So, include config.h to avoid to redefine sigset_t. Fixes: http://autobuild.buildroot.net/results/9f1/9f1f1cb727b5c5407e69172280a3dee880e55cdf Signed-off-by: Romain Naour --- include/sane/sanei_backend.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/sane/sanei_backend.h b/include/sane/sanei_backend.h index 1b5afe2..2a96532 100644 --- a/include/sane/sanei_backend.h +++ b/include/sane/sanei_backend.h @@ -8,6 +8,7 @@ * @sa sanei.h sanei_thread.h */ +#include "../include/sane/config.h" /* * Compiler related options -- 2.5.5 ================================================ FILE: package/sane-backends/0002-genesys-fix-gcc-4.8-compile.patch ================================================ From f67cfd6a534e9faaca83afebd61a6d77d7837174 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Mon, 15 Mar 2021 20:53:55 +0100 Subject: [PATCH] genesys: fix gcc-4.8 compile Fixes: genesys/utilities.h:229:23: error: invalid initialization of non-const reference of type 'std::basic_ios&' from an rvalue of type '' stream_{stream} ^ genesys/image_pipeline.cpp:715:19: error: invalid initialization of non-const reference of type 'genesys::ImagePipelineNode&' from an rvalue of type '' source_{source} ^ [Upstream: https://gitlab.com/sane-project/backends/-/merge_requests/609] Signed-off-by: Peter Seiderer --- backend/genesys/image_pipeline.cpp | 2 +- backend/genesys/utilities.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/genesys/image_pipeline.cpp b/backend/genesys/image_pipeline.cpp index 4161e95..14e2f8d 100644 --- a/backend/genesys/image_pipeline.cpp +++ b/backend/genesys/image_pipeline.cpp @@ -712,7 +712,7 @@ ImagePipelineNodeCalibrate::ImagePipelineNodeCalibrate(ImagePipelineNode& source const std::vector& bottom, const std::vector& top, std::size_t x_start) : - source_{source} + source_(source) { std::size_t size = 0; if (bottom.size() >= x_start && top.size() >= x_start) { diff --git a/backend/genesys/utilities.h b/backend/genesys/utilities.h index 6e637d0..2ef2ddd 100644 --- a/backend/genesys/utilities.h +++ b/backend/genesys/utilities.h @@ -226,7 +226,7 @@ class BasicStreamStateSaver { public: explicit BasicStreamStateSaver(std::basic_ios& stream) : - stream_{stream} + stream_(stream) { flags_ = stream_.flags(); width_ = stream_.width(); -- 2.30.1 ================================================ FILE: package/sane-backends/0003-genesys-use-usleep-instead-of-std-this_thread-sleep_.patch ================================================ From b6e21e3cd0825e7ec2b3b7e6401d25b901deeed2 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Wed, 31 Mar 2021 22:51:03 +0200 Subject: [PATCH] genesys: use usleep instead of std::this_thread::sleep_for to re-enable thread less compile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: genesys/scanner_interface_usb.cpp: In member function ‘virtual void genesys::ScannerInterfaceUsb::sleep_us(unsigned int)’: genesys/scanner_interface_usb.cpp:484:10: error: ‘std::this_thread’ has not been declared 484 | std::this_thread::sleep_for(std::chrono::microseconds{microseconds}); | ^~~~~~~~~~~ [Upstream: https://gitlab.com/sane-project/backends/-/merge_requests/619] Signed-off-by: Peter Seiderer --- backend/genesys/scanner_interface_usb.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/genesys/scanner_interface_usb.cpp b/backend/genesys/scanner_interface_usb.cpp index 117297c..2ca78ab 100644 --- a/backend/genesys/scanner_interface_usb.cpp +++ b/backend/genesys/scanner_interface_usb.cpp @@ -43,7 +43,6 @@ #include "scanner_interface_usb.h" #include "low.h" -#include namespace genesys { @@ -481,7 +480,7 @@ void ScannerInterfaceUsb::sleep_us(unsigned microseconds) if (sanei_usb_is_replay_mode_enabled()) { return; } - std::this_thread::sleep_for(std::chrono::microseconds{microseconds}); + usleep(microseconds); } void ScannerInterfaceUsb::record_progress_message(const char* msg) -- 2.30.2 ================================================ FILE: package/sane-backends/0004-backend-microtek-fix-uclibc-compile-include-stdarg.h.patch ================================================ From 145e16008e7479ea58278e55f71d6dfcd4db714b Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Fri, 18 Jun 2021 19:51:45 +0200 Subject: [PATCH] backend/microtek: fix uclibc compile (include stdarg.h for va_list/va_start/va_end) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: microtek.c: In function ‘MDBG_INIT’: microtek.c:163:3: error: unknown type name ‘va_list’ 163 | va_list ap; | ^~~~~~~ microtek.c:78:1: note: ‘va_list’ is defined in header ‘’; did you forget to ‘#include ’? 77 | #include "microtek.h" +++ |+#include 78 | microtek.c:164:3: warning: implicit declaration of function ‘va_start’; did you mean ‘sane_start’? [-Wimplicit-function-declaration] 164 | va_start(ap, format); | ^~~~~~~~ | sane_start microtek.c:165:54: warning: passing argument 4 of ‘vsnprintf’ makes pointer from integer without a cast [-Wint-conversion] 165 | vsnprintf(_mdebug_string, MAX_MDBG_LENGTH, format, ap); | ^~ | | | int In file included from ../include/sane/sanei_config.h:50, from microtek.c:70: .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/stdio.h:359:57: note: expected ‘__va_list_tag *’ but argument is of type ‘int’ 359 | const char *__restrict __format, __gnuc_va_list __arg) | ~~~~~~~~~~~~~~~^~~~~ microtek.c:166:3: warning: implicit declaration of function ‘va_end’ [-Wimplicit-function-declaration] 166 | va_end(ap); | ^~~~~~ [Upstream: https://gitlab.com/sane-project/backends/-/merge_requests/638] Signed-off-by: Peter Seiderer --- backend/microtek.c | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/microtek.c b/backend/microtek.c index 200a69c1a..63560179c 100644 --- a/backend/microtek.c +++ b/backend/microtek.c @@ -57,6 +57,7 @@ #include "../include/sane/config.h" +#include #include #include #include -- 2.31.1 ================================================ FILE: package/sane-backends/0005-backend-sm3600-scanutil-fix-uclibc-compile-include-s.patch ================================================ From 7dafc52dda96fa68f39058b10eec3d822fd5ea9d Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Fri, 18 Jun 2021 19:56:56 +0200 Subject: [PATCH] backend/sm3600-scanutil: fix uclibc compile (include stdarg.h for va_list/va_start/va_end) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: sm3600-scanutil.c: In function ‘debug_printf’: sm3600-scanutil.c:69:3: error: unknown type name ‘va_list’ 69 | va_list ap; | ^~~~~~~ sm3600-scanutil.c:48:1: note: ‘va_list’ is defined in header ‘’; did you forget to ‘#include ’? 47 | #include "sm3600-scantool.h" +++ |+#include 48 | sm3600-scanutil.c:75:3: warning: implicit declaration of function ‘va_start’; did you mean ‘sane_start’? [-Wimplicit-function-declaration] 75 | va_start(ap,szFormat); | ^~~~~~~~ | sane_start sm3600-scanutil.c:76:28: warning: passing argument 3 of ‘vfprintf’ makes pointer from integer without a cast [-Wint-conversion] 76 | vfprintf(stderr,szFormat,ap); | ^~ | | | int In file included from ../include/sane/sanei_config.h:50, from sm3600.c:70: .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/stdio.h:339:23: note: expected ‘__va_list_tag *’ but argument is of type ‘int’ 339 | __gnuc_va_list __arg); | ~~~~~~~~~~~~~~~^~~~~ In file included from sm3600.c:94: sm3600-scanutil.c:77:3: warning: implicit declaration of function ‘va_end’ [-Wimplicit-function-declaration] 77 | va_end(ap); | ^~~~~~ [Upstream: https://gitlab.com/sane-project/backends/-/merge_requests/638] Signed-off-by: Peter Seiderer --- backend/sm3600-scanutil.c | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/sm3600-scanutil.c b/backend/sm3600-scanutil.c index 6fe67ed0c..616bf3f4c 100644 --- a/backend/sm3600-scanutil.c +++ b/backend/sm3600-scanutil.c @@ -43,6 +43,7 @@ Userspace scan tool for the Microtek 3600 scanner ====================================================================== */ +#include #include #include "sm3600-scantool.h" -- 2.31.1 ================================================ FILE: package/sane-backends/Config.in ================================================ config BR2_PACKAGE_SANE_BACKENDS bool "sane-backends" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS help SANE - Scanner Access Now Easy http://www.sane-project.org Backends are included automatically based on the libraries that have been selected: libusb, jpeg, tiff, avahi (with dbus and libglib2), and netsnmp. comment "sane-backends needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/sane-backends/sane-backends.hash ================================================ # From https://gitlab.com/sane-project/backends/uploads/a705aadf854ca0dc8bf66df937308861/sane-backends-1.0.32.sha256.txt sha256 3a28c237c0a72767086202379f6dc92dbb63ec08dfbab22312cba80e238bb114 sane-backends-1.0.32.tar.gz # Hash for license file sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/sane-backends/sane-backends.mk ================================================ ################################################################################ # # sane-backends # ################################################################################ SANE_BACKENDS_VERSION = 1.0.32 SANE_BACKENDS_SITE = \ https://gitlab.com/sane-project/backends/uploads/104f09c07d35519cc8e72e604f11643f SANE_BACKENDS_CONFIG_SCRIPTS = sane-config SANE_BACKENDS_LICENSE = GPL-2.0+ SANE_BACKENDS_LICENSE_FILES = COPYING SANE_BACKENDS_CPE_ID_VENDOR = sane-backends_project SANE_BACKENDS_INSTALL_STAGING = YES SANE_BACKENDS_CONF_OPTS = \ $(if $(BR2_TOOLCHAIN_HAS_THREADS),--enable-pthread,--disable-pthread) ifeq ($(BR2_INIT_SYSTEMD),y) SANE_BACKENDS_CONF_OPTS += --with-systemd SANE_BACKENDS_DEPENDENCIES += systemd else SANE_BACKENDS_CONF_OPTS += --without-systemd endif ifeq ($(BR2_PACKAGE_LIBUSB),y) SANE_BACKENDS_DEPENDENCIES += libusb SANE_BACKENDS_CONF_OPTS += --with-usb else SANE_BACKENDS_CONF_OPTS += --without-usb endif ifeq ($(BR2_PACKAGE_JPEG),y) SANE_BACKENDS_DEPENDENCIES += jpeg endif ifeq ($(BR2_PACKAGE_TIFF),y) SANE_BACKENDS_DEPENDENCIES += tiff endif ifeq ($(BR2_PACKAGE_LIBV4L),y) SANE_BACKENDS_DEPENDENCIES += libv4l endif ifeq ($(BR2_PACKAGE_AVAHI)$(BR2_PACKAGE_DBUS)$(BR2_PACKAGE_LIBGLIB2),yyy) SANE_BACKENDS_DEPENDENCIES += avahi SANE_BACKENDS_CONF_OPTS += --with-avahi endif ifeq ($(BR2_PACKAGE_NETSNMP),y) SANE_BACKENDS_CONF_ENV += ac_cv_path_SNMP_CONFIG_PATH=$(STAGING_DIR)/usr/bin/net-snmp-config SANE_BACKENDS_DEPENDENCIES += netsnmp else SANE_BACKENDS_CONF_OPTS += --without-snmp endif ifeq ($(BR2_PACKAGE_LIBCURL),y) SANE_BACKENDS_DEPENDENCIES += libcurl SANE_BACKENDS_CONF_OPTS += --with-libcurl else SANE_BACKENDS_CONF_OPTS += --without-libcurl endif ifeq ($(BR2_PACKAGE_POPPLER)$(BR2_PACKAGE_CAIRO)$(BR2_PACKAGE_LIBGLIB2),yyy) SANE_BACKENDS_DEPENDENCIES += poppler libglib2 SANE_BACKENDS_CONF_OPTS += --with-poppler-glib else SANE_BACKENDS_CONF_OPTS += --without-poppler-glib endif ifeq ($(BR2_PACKAGE_LIBXML2),y) SANE_BACKENDS_DEPENDENCIES += libxml2 SANE_BACKENDS_CONF_OPTS += --with-usb-record-replay else SANE_BACKENDS_CONF_OPTS += --without-usb-record-replay endif define SANE_BACKENDS_DISABLE_DOCS $(SED) 's/ doc//' $(@D)/Makefile endef SANE_BACKENDS_POST_CONFIGURE_HOOKS += SANE_BACKENDS_DISABLE_DOCS define SANE_BACKENDS_USERS saned -1 saned -1 * /etc/sane.d - - Saned User endef define SANE_BACKENDS_INSTALL_INIT_SYSTEMD $(INSTALL) -m 0644 -D package/sane-backends/saned.socket \ $(TARGET_DIR)/usr/lib/systemd/system/saned.socket $(INSTALL) -m 0644 -D package/sane-backends/saned@.service \ $(TARGET_DIR)/usr/lib/systemd/system/saned@.service endef $(eval $(autotools-package)) ================================================ FILE: package/sane-backends/saned.socket ================================================ [Unit] Description=saned incoming socket [Socket] ListenStream=6566 Accept=yes MaxConnections=1 [Install] WantedBy=sockets.target ================================================ FILE: package/sane-backends/saned@.service ================================================ [Unit] Description=Scanner Service Requires=saned.socket [Service] ExecStart=/usr/sbin/saned User=saned Group=saned StandardInput=null StandardOutput=syslog StandardError=syslog Environment=SANE_CONFIG_DIR=/etc/sane.d # If you need to debug your configuration uncomment the next line and # change it as appropriate to set the desired debug options # Environment=SANE_DEBUG_DLL=255 SANE_DEBUG_BJNP=5 [Install] Also=saned.socket ================================================ FILE: package/sbc/0001-sbc_primitives-Fix-build-on-non-x86.patch ================================================ From 909a9bdf7ab143e1f0baaf9736baebd3cd79aacf Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 22 Dec 2020 11:04:26 +0000 Subject: [PATCH] sbc_primitives: Fix build on non-x86. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't call __builtin_cpu_init unless targeting i386 or x86_64. Otherwise we get an error at link time: CC sbc/sbc_primitives.lo sbc/sbc_primitives.c: In function ‘sbc_init_primitives_x86’: sbc/sbc_primitives.c:596:2: warning: implicit declaration of function ‘__builtin_cpu_init’; did you mean ‘__builtin_irint’? [-Wimplicit-function-declaration] [...] CCLD src/sbcdec ld: sbc/.libs/libsbc-private.a(sbc_primitives.o): in function `sbc_init_primitives': sbc_primitives.c:(.text+0x3a30): undefined reference to `__builtin_cpu_init' Signed-off-by: Pierre-Jean Texier [Upstream status: backport from upstream commit 909a9bdf7ab143e1f0baaf9736baebd3cd79aacf] --- sbc/sbc_primitives.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbc/sbc_primitives.c b/sbc/sbc_primitives.c index 97a75be..09c214a 100644 --- a/sbc/sbc_primitives.c +++ b/sbc/sbc_primitives.c @@ -593,6 +593,7 @@ static int sbc_calc_scalefactors_j( static void sbc_init_primitives_x86(struct sbc_encoder_state *state) { +#if defined(__x86_64__) || defined(__i386__) __builtin_cpu_init(); #ifdef SBC_BUILD_WITH_MMX_SUPPORT @@ -604,6 +605,7 @@ static void sbc_init_primitives_x86(struct sbc_encoder_state *state) if (__builtin_cpu_supports("sse4.2")) sbc_init_primitives_sse(state); #endif +#endif } /* -- 2.17.1 ================================================ FILE: package/sbc/Config.in ================================================ config BR2_PACKAGE_SBC bool "sbc" select BR2_PACKAGE_LIBSNDFILE help An audio codec to connect bluetooth high quality audio devices like headphones or loudspeakers. http://www.bluez.org/ ================================================ FILE: package/sbc/sbc.hash ================================================ # From https://www.kernel.org/pub/linux/bluetooth/sha256sums.asc sha256 0cbad69823a99e8421fe0700e8cf9eeb8fa0c1ad28e8dbc2182b3353507931d2 sbc-1.5.tar.xz # sha256 locally computed sha256 b499eddebda05a8859e32b820a64577d91f1de2b52efa2a1575a2cb4000bc259 COPYING sha256 ec60b993835e2c6b79e6d9226345f4e614e686eb57dc13b6420c15a33a8996e5 COPYING.LIB ================================================ FILE: package/sbc/sbc.mk ================================================ ################################################################################ # # sbc # ################################################################################ SBC_VERSION = 1.5 SBC_SOURCE = sbc-$(SBC_VERSION).tar.xz SBC_SITE = $(BR2_KERNEL_MIRROR)/linux/bluetooth SBC_INSTALL_STAGING = YES SBC_DEPENDENCIES = libsndfile host-pkgconf SBC_LICENSE = GPL-2.0+ (programs), LGPL-2.1+ (library) SBC_LICENSE_FILES = COPYING COPYING.LIB $(eval $(autotools-package)) ================================================ FILE: package/sconeserver/0001-sconex-Descriptor.cpp-fix-build-with-gcc-11.patch ================================================ From 5e4cb613d9bb287e9f54da86f99a51d0338b1faa Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 10 Aug 2021 10:36:53 +0200 Subject: [PATCH] sconex/Descriptor.cpp: fix build with gcc 11 Fix the following build failure with gcc 11: In file included from ../sconex/sconex.h:229, from ../sconex/Descriptor.h:63, from Descriptor.cpp:22: Descriptor.cpp: In member function 'void scx::Descriptor::add_stream(scx::Stream*)': Descriptor.cpp:150:22: error: ordered comparison of pointer with integer zero ('scx::Stream*' and 'int') 150 | DEBUG_ASSERT(stream>=0,"add_stream() Invalid stream"); | ~~~~~~^~~ | ^~~~ Descriptor.cpp: In member function 'bool scx::Descriptor::remove_stream(scx::Stream*)': Descriptor.cpp:204:22: error: ordered comparison of pointer with integer zero ('scx::Stream*' and 'int') 204 | DEBUG_ASSERT(stream>=0,"remove_stream() Invalid stream"); | ~~~~~~^~~ Fixes: - http://autobuild.buildroot.org/results/ccc9562e83fd2bd312d21b3124be42dfe4b7e850 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/sconemad/sconeserver/pull/4] --- sconex/Descriptor.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sconex/Descriptor.cpp b/sconex/Descriptor.cpp index 590adba..4adfd86 100644 --- a/sconex/Descriptor.cpp +++ b/sconex/Descriptor.cpp @@ -147,7 +147,7 @@ bool Descriptor::dup(int d) //============================================================================= void Descriptor::add_stream(Stream* stream) { - DEBUG_ASSERT(stream>=0,"add_stream() Invalid stream"); + DEBUG_ASSERT(stream!=0,"add_stream() Invalid stream"); m_streams.push_back(stream); stream->set_endpoint(this); @@ -201,7 +201,7 @@ void Descriptor::add_stream_after(Stream* stream,const Stream* after) //============================================================================= bool Descriptor::remove_stream(Stream* stream) { - DEBUG_ASSERT(stream>=0,"remove_stream() Invalid stream"); + DEBUG_ASSERT(stream!=0,"remove_stream() Invalid stream"); std::list::iterator it = m_streams.begin(); while (it != m_streams.end()) { -- 2.30.2 ================================================ FILE: package/sconeserver/Config.in ================================================ 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_ZLIB help Sconeserver is a modular, object-orientated and extremely versatile network server framework for GNU/Linux and UNIX-like platforms. http://www.sconemad.com/sconeserver/ if BR2_PACKAGE_SCONESERVER comment "Sconeserver modules" config BR2_PACKAGE_SCONESERVER_EXAMPLES bool "examples" help Example modules for Sconeserver config BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE bool "http::sconesite" select BR2_PACKAGE_LIBXML2 help http::sconesite module for Sconeserver config BR2_PACKAGE_SCONESERVER_MYSQL bool "mysql" depends on BR2_USE_MMU # mysql select BR2_PACKAGE_MYSQL help MySQL module for Sconeserver config BR2_PACKAGE_SCONESERVER_BLUETOOTH bool "bluetooth" depends on BR2_USE_WCHAR # bluez5_utils -> libglib2 depends on BR2_USE_MMU # bluez5_utils -> dbus depends on BR2_TOOLCHAIN_HAS_THREADS # bluez5_utils -> dbus, libglib2 depends on !BR2_STATIC_LIBS # bluez5_utils depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # bluez5_utils depends on BR2_TOOLCHAIN_HAS_SYNC_4 # bluez5_utils select BR2_PACKAGE_BLUEZ5_UTILS help Bluetooth module for Sconeserver comment "bluetooth support needs a toolchain w/ wchar, threads, dynamic library, headers >= 3.4" 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_TOOLCHAIN_HEADERS_AT_LEAST_3_4 config BR2_PACKAGE_SCONESERVER_RSS bool "rss" select BR2_PACKAGE_LIBXML2 help RSS module for Sconeserver config BR2_PACKAGE_SCONESERVER_LOCATION bool "location" depends on BR2_USE_MMU # gpsd depends on BR2_TOOLCHAIN_HAS_THREADS # gpsd depends on !BR2_STATIC_LIBS # gpsd select BR2_PACKAGE_GPSD help Location module for Sconeserver comment "location support needs a toolchain w/ theads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBRARY config BR2_PACKAGE_SCONESERVER_MATHS bool "maths" select BR2_PACKAGE_MPFR help Mathematics module for Sconeserver config BR2_PACKAGE_SCONESERVER_TESTBUILDER bool "testbuilder" help Testbuilder module for Sconeserver endif # BR2_PACKAGE_SCONESERVER comment "sconeserver needs a toolchain with dynamic library, C++, NPTL" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \ || BR2_STATIC_LIBS ================================================ FILE: package/sconeserver/sconeserver.hash ================================================ # Locally computed sha256 dfdbbcd29c089eeb341dd3bbd434cca97fefaa97f94c91525e5953d3ab0a2d9a sconeserver-6b932d7d8dbb700b830205e7111e469cefff490c.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/sconeserver/sconeserver.mk ================================================ ################################################################################ # # sconeserver # ################################################################################ SCONESERVER_VERSION = 6b932d7d8dbb700b830205e7111e469cefff490c SCONESERVER_SITE = $(call github,sconemad,sconeserver,$(SCONESERVER_VERSION)) SCONESERVER_LICENSE = GPL-2.0+ SCONESERVER_LICENSE_FILES = COPYING # fetching from Git, we need to generate the configure script SCONESERVER_AUTORECONF = YES SCONESERVER_DEPENDENCIES = \ host-pkgconf \ $(if $(BR2_PACKAGE_PCRE),pcre) \ zlib # disable image as it fails to build with ImageMagick # 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 SCONESERVER_CONF_OPTS += \ --with-ip \ --with-local \ --with-ip6 \ --without-image \ --without-markdown # Sconeserver configure script fails to find the libxml2 headers. ifeq ($(BR2_PACKAGE_LIBXML2),y) SCONESERVER_CONF_OPTS += \ --with-xml2-config="$(STAGING_DIR)/usr/bin/xml2-config" endif ifeq ($(BR2_PACKAGE_OPENSSL),y) SCONESERVER_DEPENDENCIES += openssl SCONESERVER_CONF_OPTS += --with-ssl else SCONESERVER_CONF_OPTS += --without-ssl endif ifeq ($(BR2_PACKAGE_SCONESERVER_EXAMPLES),y) SCONESERVER_CONF_OPTS += --with-examples else SCONESERVER_CONF_OPTS += --without-examples endif ifeq ($(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE),y) SCONESERVER_DEPENDENCIES += libxml2 SCONESERVER_CONF_OPTS += --with-sconesite else SCONESERVER_CONF_OPTS += --without-sconesite endif ifeq ($(BR2_PACKAGE_SCONESERVER_MYSQL),y) SCONESERVER_DEPENDENCIES += mysql SCONESERVER_CONF_OPTS += \ --with-mysql \ --with-mysql_config="$(STAGING_DIR)/usr/bin/mysql_config" \ LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib/mysql" else SCONESERVER_CONF_OPTS += --without-mysql endif ifeq ($(BR2_PACKAGE_SCONESERVER_BLUETOOTH),y) SCONESERVER_DEPENDENCIES += bluez5_utils SCONESERVER_CONF_OPTS += --with-bluetooth else SCONESERVER_CONF_OPTS += --without-bluetooth endif ifeq ($(BR2_PACKAGE_SCONESERVER_RSS),y) SCONESERVER_DEPENDENCIES += libxml2 SCONESERVER_CONF_OPTS += --with-rss else SCONESERVER_CONF_OPTS += --without-rss endif ifeq ($(BR2_PACKAGE_SCONESERVER_LOCATION),y) SCONESERVER_DEPENDENCIES += gpsd SCONESERVER_CONF_OPTS += --with-location else SCONESERVER_CONF_OPTS += --without-location endif ifeq ($(BR2_PACKAGE_SCONESERVER_MATHS),y) SCONESERVER_DEPENDENCIES += mpfr SCONESERVER_CONF_OPTS += --with-maths else SCONESERVER_CONF_OPTS += --without-maths endif ifeq ($(BR2_PACKAGE_SCONESERVER_TESTBUILDER),y) SCONESERVER_CONF_OPTS += --with-testbuilder else SCONESERVER_CONF_OPTS += --without-testbuilder endif $(eval $(autotools-package)) ================================================ FILE: package/scons/scons.hash ================================================ # Locally computed: sha256 7801f3f62f654528e272df780be10c0e9337e897650b62ddcee9f39fde13f8fb scons-3.1.2.tar.gz sha256 72ed889165fb28378cadac14552be4a959f1ebab6b148abb5dd2b49712c3c6f6 LICENSE.txt ================================================ FILE: package/scons/scons.mk ================================================ ################################################################################ # # scons # ################################################################################ SCONS_VERSION = 3.1.2 SCONS_SITE = http://downloads.sourceforge.net/project/scons/scons/$(SCONS_VERSION) SCONS_LICENSE = MIT SCONS_LICENSE_FILES = LICENSE.txt SCONS_SETUP_TYPE = distutils HOST_SCONS_INSTALL_OPTS = \ --install-lib=$(HOST_DIR)/lib/scons-$(SCONS_VERSION) $(eval $(host-python-package)) # variables used by other packages SCONS = $(HOST_DIR)/bin/scons $(if $(QUIET),-s) ================================================ FILE: package/screen/0001-no-memcpy-fallback.patch ================================================ From: Maarten ter Huurne Date: Sat, 13 Sep 2014 11:37:59 +0200 Subject: Do not use memcpy as an alternative for bcopy/memmove The configure script runs a small test program to check whether memcpy can handle overlapping memory areas. However, it is not valid to conclude that if a single case of overlapping memory is handled correctly, all cases will be handled correctly. Since screen already has its own bcopy implementation as a fallback 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 [Bernd: rebase on top of 4.7.0] Signed-off-by: Bernd Kuhls --- acconfig.h | 3 +-- configure.ac | 18 +----------------- os.h | 8 ++------ osdef.h.in | 10 +--------- 4 files changed, 5 insertions(+), 34 deletions(-) diff --git a/acconfig.h b/acconfig.h index 2e46985..9b0b9d4 100644 --- a/acconfig.h +++ b/acconfig.h @@ -476,7 +476,7 @@ #undef GETTTYENT /* - * Define USEBCOPY if the bcopy/memcpy from your system's C library + * Define USEBCOPY if the bcopy from your system's C library * supports the overlapping of source and destination blocks. When * undefined, screen uses its own (probably slower) version of bcopy(). * @@ -487,7 +487,6 @@ * Their memove fails the test in the configure script. Sigh. (Juergen) */ #undef USEBCOPY -#undef USEMEMCPY #undef USEMEMMOVE /* 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)) -AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments) +AC_CHECKING(whether memmove/bcopy handles overlapping arguments) AC_TRY_RUN([ main() { char buf[10]; @@ -1175,22 +1175,6 @@ main() { exit(0); /* libc version works properly. */ }], AC_DEFINE(USEMEMMOVE)) - -AC_TRY_RUN([ -#define bcopy(s,d,l) memcpy(d,s,l) -main() { - char buf[10]; - strcpy(buf, "abcdefghi"); - bcopy(buf, buf + 2, 3); - if (strncmp(buf, "ababcf", 6)) - exit(1); - strcpy(buf, "abcdefghi"); - bcopy(buf + 2, buf, 3); - if (strncmp(buf, "cdedef", 6)) - exit(1); - exit(0); /* libc version works properly. */ -}], AC_DEFINE(USEMEMCPY),,:) - AC_SYS_LONG_FILE_NAMES AC_MSG_CHECKING(for vsprintf) diff --git a/os.h b/os.h index e827ac9..0b41fb9 100644 --- a/os.h +++ b/os.h @@ -142,12 +142,8 @@ extern int errno; # ifdef USEMEMMOVE # define bcopy(s,d,len) memmove(d,s,len) # else -# ifdef USEMEMCPY -# define bcopy(s,d,len) memcpy(d,s,len) -# else -# define NEED_OWN_BCOPY -# define bcopy xbcopy -# endif +# define NEED_OWN_BCOPY +# define bcopy xbcopy # endif #endif diff --git a/osdef.h.in b/osdef.h.in index 8687b60..e4057a0 100644 --- a/osdef.h.in +++ b/osdef.h.in @@ -58,16 +58,8 @@ extern int bcmp __P((char *, char *, int)); extern int killpg __P((int, int)); #endif -#ifndef USEBCOPY -# ifdef USEMEMCPY -extern void memcpy __P((char *, char *, int)); -# else -# ifdef USEMEMMOVE +#if defined(USEMEMMOVE) && !defined(USEBCOPY) extern void memmove __P((char *, char *, int)); -# else -extern void bcopy __P((char *, char *, int)); -# endif -# endif #else extern void bcopy __P((char *, char *, int)); #endif -- 1.8.4.5 ================================================ FILE: package/screen/0002-install-no-backup-binary.patch ================================================ From: Maarten ter Huurne Date: Sun, 14 Sep 2014 23:58:34 +0200 Subject: Do not create backup of old installed binary This is a rather unusual feature that packagers will not expect. Signed-off-by: Maarten ter Huurne [baruch: update for 4.6.2] Signed-off-by: Baruch Siach --- Makefile.in | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Makefile.in b/Makefile.in index 187a69b..65549e9 100644 --- a/Makefile.in +++ b/Makefile.in @@ -83,12 +83,9 @@ screen: $(OFILES) $(OPTIONS) $(CFLAGS) $< install_bin: .version screen installdirs - -if [ -f $(DESTDIR)$(bindir)/$(SCREEN) ] && [ ! -f $(DESTDIR)$(bindir)/$(SCREEN).old ]; \ - then mv $(DESTDIR)$(bindir)/$(SCREEN) $(DESTDIR)$(bindir)/$(SCREEN).old; fi $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN) -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN) # This doesn't work if $(bindir)/screen is a symlink - -if [ -f $(DESTDIR)$(bindir)/screen ] && [ ! -f $(DESTDIR)$(bindir)/screen.old ]; then mv $(DESTDIR)$(bindir)/screen $(DESTDIR)$(bindir)/screen.old; fi rm -f $(DESTDIR)$(bindir)/screen (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen) cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS) @@ -113,7 +110,6 @@ installdirs: uninstall: .version rm -f $(DESTDIR)$(bindir)/$(SCREEN) rm -f $(DESTDIR)$(bindir)/screen - -mv $(DESTDIR)$(bindir)/screen.old $(DESTDIR)$(bindir)/screen rm -f $(DESTDIR)$(ETCSCREENRC) cd doc; $(MAKE) uninstall -- 1.8.4.5 ================================================ FILE: package/screen/0003-install-always-chmod.patch ================================================ From: Maarten ter Huurne Date: Mon, 15 Sep 2014 00:03:05 +0200 Subject: Change binary permission flags even if chown fails Typically when creating a package, the build is not run as root, so the chown will fail. But the chmod can still be done. Signed-off-by: Maarten ter Huurne --- Makefile.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index 65549e9..3c12fdb 100644 --- a/Makefile.in +++ b/Makefile.in @@ -84,7 +84,8 @@ screen: $(OFILES) install_bin: .version screen $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN) - -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN) + -chown root $(DESTDIR)$(bindir)/$(SCREEN) + -chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN) # This doesn't work if $(bindir)/screen is a symlink rm -f $(DESTDIR)$(bindir)/screen (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen) -- 1.8.4.5 ================================================ FILE: package/screen/0004-install-nonversioned-binary.patch ================================================ From: Maarten ter Huurne Date: Mon, 15 Sep 2014 00:06:20 +0200 Subject: Support overriding SCREEN to get a non-versioned binary If a packager runs "make install SCREEN=screen", do not create "screen" as a symlink to itself. Signed-off-by: Maarten ter Huurne --- Makefile.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile.in b/Makefile.in index 3c12fdb..860f351 100644 --- a/Makefile.in +++ b/Makefile.in @@ -86,9 +86,11 @@ install_bin: .version screen $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN) -chown root $(DESTDIR)$(bindir)/$(SCREEN) -chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN) +ifneq (${SCREEN},screen) # This doesn't work if $(bindir)/screen is a symlink rm -f $(DESTDIR)$(bindir)/screen (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen) +endif cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS) ############################################################################### -- 1.8.4.5 ================================================ FILE: package/screen/0005-rename-sched_h.patch ================================================ From: Maarten ter Huurne Date: Mon, 15 Sep 2014 00:24:41 +0200 Subject: Renamed sched.h to eventqueue.h There is a system header that got shadowed by "sched.h". While Screen itself doesn't include , other system headers might include it indirectly. This broke the build when using uClibc with pthread support. Signed-off-by: Maarten ter Huurne --- eventqueue.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ sched.h | 48 ------------------------------------------------ screen.h | 2 +- 3 files changed, 49 insertions(+), 49 deletions(-) create mode 100644 eventqueue.h delete mode 100644 sched.h diff --git a/eventqueue.h b/eventqueue.h new file mode 100644 index 0000000..fdc3fc4 --- /dev/null +++ b/eventqueue.h @@ -0,0 +1,48 @@ +/* Copyright (c) 2008, 2009 + * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) + * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) + * Micah Cowan (micah@cowan.name) + * Sadrul Habib Chowdhury (sadrul@users.sourceforge.net) + * Copyright (c) 1993-2002, 2003, 2005, 2006, 2007 + * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) + * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) + * Copyright (c) 1987 Oliver Laumann + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program (see the file COPYING); if not, see + * https://www.gnu.org/licenses/, or contact Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + * + **************************************************************** + * $Id$ GNU + */ + +struct event +{ + struct event *next; + void (*handler) __P((struct event *, char *)); + char *data; + int fd; + int type; + int pri; + struct timeval timeout; + int queued; /* in evs queue */ + int active; /* in fdset */ + int *condpos; /* only active if condpos - condneg > 0 */ + int *condneg; +}; + +#define EV_TIMEOUT 0 +#define EV_READ 1 +#define EV_WRITE 2 +#define EV_ALWAYS 3 diff --git a/sched.h b/sched.h deleted file mode 100644 index fdc3fc4..0000000 --- a/sched.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (c) 2008, 2009 - * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) - * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) - * Micah Cowan (micah@cowan.name) - * Sadrul Habib Chowdhury (sadrul@users.sourceforge.net) - * Copyright (c) 1993-2002, 2003, 2005, 2006, 2007 - * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) - * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) - * Copyright (c) 1987 Oliver Laumann - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program (see the file COPYING); if not, see - * https://www.gnu.org/licenses/, or contact Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA - * - **************************************************************** - * $Id$ GNU - */ - -struct event -{ - struct event *next; - void (*handler) __P((struct event *, char *)); - char *data; - int fd; - int type; - int pri; - struct timeval timeout; - int queued; /* in evs queue */ - int active; /* in fdset */ - int *condpos; /* only active if condpos - condneg > 0 */ - int *condneg; -}; - -#define EV_TIMEOUT 0 -#define EV_READ 1 -#define EV_WRITE 2 -#define EV_ALWAYS 3 diff --git a/screen.h b/screen.h index 603ca3f..34238c8 100644 --- a/screen.h +++ b/screen.h @@ -43,7 +43,7 @@ #include "osdef.h" #include "ansi.h" -#include "sched.h" +#include "eventqueue.h" #include "acls.h" #include "comm.h" #include "layer.h" -- 1.8.4.5 ================================================ FILE: package/screen/0006-comm-h-now-depends-on-term-h.patch ================================================ From 39c5f1c76f1fcef4b5958bf828a63f53426b6984 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Tue, 24 Dec 2013 22:16:31 -0500 Subject: comm.h now depends on term.h Signed-off-by: Fabrice Fontaine [Patch retrieved and updated from: http://git.savannah.gnu.org/cgit/screen.git/commit/?id=39c5f1c] --- src/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index e791e79..d4f7c0b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -113,7 +113,7 @@ term.h: term.c term.sh kmapdef.c: term.h -comm.h: comm.c comm.sh config.h +comm.h: comm.c comm.sh config.h term.h AWK=$(AWK) CC="$(CC) $(CFLAGS)" srcdir=${srcdir} sh $(srcdir)/comm.sh docs: -- cgit v1.0-41-gc330 ================================================ FILE: package/screen/0007-comm.h-needed-for-list_-display-generic-.o.patch ================================================ From b719314d201a3e9e1e57c65746a468c47bfc847f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 3 Oct 2018 22:29:32 +0200 Subject: [PATCH] comm.h needed for list_{display,generic}.o comm.h is needed to build list_display.o and list_generic.o otherwise parallel builds will sometimes fail Fixes: - http://autobuild.buildroot.org/results/43105f14857dbe72d8878fc7b3db67f7bdca93cc - http://autobuild.buildroot.org/results/47f4ecbec1355285633df287fc9c4e7cccde9378 Signed-off-by: Fabrice Fontaine [Upstream status: https://savannah.gnu.org/bugs/index.php?54776] --- Makefile.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.in b/Makefile.in index af5938b..e6d5247 100644 --- a/Makefile.in +++ b/Makefile.in @@ -265,7 +265,7 @@ braille.h viewport.o: layout.h viewport.h canvas.h viewport.c config.h screen.h os.h osdef.h ansi.h acls.h \ comm.h layer.h term.h image.h display.h window.h extern.h \ braille.h -list_generic.o: list_generic.h list_generic.c layer.h screen.h osdef.h -list_display.o: list_generic.h list_display.c layer.h screen.h osdef.h +list_generic.o: list_generic.h list_generic.c layer.h screen.h osdef.h comm.h +list_display.o: list_generic.h list_display.c layer.h screen.h osdef.h comm.h list_window.o: list_generic.h list_window.c window.h layer.h screen.h osdef.h comm.h -- 2.17.1 ================================================ FILE: package/screen/0008_CVE-2021-26937.patch ================================================ Description: [CVE-2021-26937] Fix out of bounds array access Author: Michael Schröder Bug-Debian: https://bugs.debian.org/982435 Bug: https://savannah.gnu.org/bugs/?60030 Bug: https://lists.gnu.org/archive/html/screen-devel/2021-02/msg00000.html Bug-OSS-Security: https://www.openwall.com/lists/oss-security/2021/02/09/3 Origin: https://lists.gnu.org/archive/html/screen-devel/2021-02/msg00010.html Downloaded from Debian: https://sources.debian.org/data/main/s/screen/4.8.0-5/debian/patches/99_CVE-2021-26937.patch Signed-off-by: Peter Korsgaard --- a/encoding.c +++ b/encoding.c @@ -43,7 +43,7 @@ # ifdef UTF8 static int recode_char __P((int, int, int)); static int recode_char_to_encoding __P((int, int)); -static void comb_tofront __P((int, int)); +static void comb_tofront __P((int)); # ifdef DW_CHARS static int recode_char_dw __P((int, int *, int, int)); static int recode_char_dw_to_encoding __P((int, int *, int)); @@ -1263,6 +1263,8 @@ {0x30000, 0x3FFFD}, }; + if (c >= 0xdf00 && c <= 0xdfff) + return 1; /* dw combining sequence */ return ((bisearch(c, wide, sizeof(wide) / sizeof(struct interval) - 1)) || (cjkwidth && bisearch(c, ambiguous, @@ -1330,11 +1332,12 @@ } static void -comb_tofront(root, i) -int root, i; +comb_tofront(i) +int i; { for (;;) { + int root = i >= 0x700 ? 0x801 : 0x800; debug1("bring to front: %x\n", i); combchars[combchars[i]->prev]->next = combchars[i]->next; combchars[combchars[i]->next]->prev = combchars[i]->prev; @@ -1396,9 +1399,9 @@ { /* full, recycle old entry */ if (c1 >= 0xd800 && c1 < 0xe000) - comb_tofront(root, c1 - 0xd800); + comb_tofront(c1 - 0xd800); i = combchars[root]->prev; - if (c1 == i + 0xd800) + if (i == 0x800 || i == 0x801 || c1 == i + 0xd800) { /* completely full, can't recycle */ debug("utf8_handle_comp: completely full!\n"); @@ -1422,7 +1425,7 @@ mc->font = (i >> 8) + 0xd8; mc->fontx = 0; debug3("combinig char %x %x -> %x\n", c1, c, i + 0xd800); - comb_tofront(root, i); + comb_tofront(i); } #else /* !UTF8 */ ================================================ FILE: package/screen/Config.in ================================================ config BR2_PACKAGE_SCREEN bool "screen" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NCURSES help Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells. Each virtual terminal provides the functions of the DEC VT100 terminal and, in addition, several control functions from the ANSI X3.64 (ISO 6429) and ISO 2022 standards (e.g., insert/delete line and support for multiple character sets). http://www.gnu.org/software/screen/ ================================================ FILE: package/screen/screen.hash ================================================ # Locally calculated after checking pgp signature # https://ftp.gnu.org/gnu/screen/screen-4.8.0.tar.gz.sig sha256 6e11b13d8489925fde25dfb0935bf6ed71f9eb47eff233a181e078fde5655aa1 screen-4.8.0.tar.gz # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/screen/screen.mk ================================================ ################################################################################ # # screen # ################################################################################ SCREEN_VERSION = 4.8.0 SCREEN_SITE = $(BR2_GNU_MIRROR)/screen SCREEN_LICENSE = GPL-3.0+ SCREEN_LICENSE_FILES = COPYING SCREEN_CPE_ID_VENDOR = gnu SCREEN_SELINUX_MODULES = screen SCREEN_DEPENDENCIES = ncurses SCREEN_AUTORECONF = YES SCREEN_CONF_ENV = CFLAGS="$(TARGET_CFLAGS)" SCREEN_CONF_OPTS = --enable-colors256 SCREEN_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) SCREEN=screen install_bin # 0008_CVE-2021-26937.patch SCREEN_IGNORE_CVES += CVE-2021-26937 ifeq ($(BR2_PACKAGE_LINUX_PAM),y) SCREEN_DEPENDENCIES += linux-pam SCREEN_CONF_OPTS += --enable-pam else SCREEN_CONF_OPTS += --disable-pam endif define SCREEN_INSTALL_SCREENRC $(INSTALL) -m 0755 -D $(@D)/etc/screenrc $(TARGET_DIR)/etc/screenrc endef SCREEN_POST_INSTALL_TARGET_HOOKS += SCREEN_INSTALL_SCREENRC # Add /usr/bin/screen to /etc/shells otherwise some login tools like dropbear # can reject the user connection. See man shells. define SCREEN_ADD_SCREEN_TO_SHELLS grep -qsE '^/usr/bin/screen$$' $(TARGET_DIR)/etc/shells \ || echo "/usr/bin/screen" >> $(TARGET_DIR)/etc/shells endef SCREEN_TARGET_FINALIZE_HOOKS += SCREEN_ADD_SCREEN_TO_SHELLS $(eval $(autotools-package)) ================================================ FILE: package/screenfetch/Config.in ================================================ config BR2_PACKAGE_SCREENFETCH bool "screenfetch" depends on BR2_USE_MMU # bash depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash select BR2_PACKAGE_BASH # runtime dependency help screenFetch is a bash script to display distro info. https://github.com/KittyKatt/screenFetch ================================================ FILE: package/screenfetch/screenfetch.hash ================================================ sha256 aa97dcd2a8576ae18de6c16c19744aae1573a3da7541af4b98a91930a30a3178 screenfetch-3.9.1.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/screenfetch/screenfetch.mk ================================================ ################################################################################ # # screenfetch # ################################################################################ SCREENFETCH_VERSION = 3.9.1 SCREENFETCH_SITE = $(call github,KittyKatt,screenFetch,v$(SCREENFETCH_VERSION)) SCREENFETCH_LICENSE = GPL-3.0+ SCREENFETCH_LICENSE_FILES = COPYING define SCREENFETCH_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/screenfetch-dev \ $(TARGET_DIR)/usr/bin/screenfetch endef $(eval $(generic-package)) ================================================ FILE: package/scrub/0001-configure-ac-make-sure-m4-macros-are-included-in-the-build.patch ================================================ From 11d30916dd9c11a26c7c8a0f6db9e6ebca301594 Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Mon, 18 Jan 2016 21:45:23 +0100 Subject: [PATCH] configure.ac: make sure m4 macros are included in the build This change prevents the following error to occur when calling autoreconf: >>> scrub 2.6.1 Autoreconfiguring cd /work/build/scrub/build/scrub-2.6.1/ && PATH="/work/build/scrub/host/bin:/work/build/scrub/host/sbin:/work/build/scrub/host/usr/bin:/work/build/scrub/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/sbin:/usr/sbin" AR="/usr/bin/ar" AS="/usr/bin/as" LD="/usr/bin/ld" NM="/usr/bin/nm" CC="/usr/bin/gcc" GCC="/usr/bin/gcc" CXX="/usr/bin/g++" CPP="/usr/bin/cpp" OBJCOPY="/usr/bin/objcopy" RANLIB="/usr/bin/ranlib" CPPFLAGS="-I/work/build/scrub/host/usr/include" CFLAGS="-O2 -I/work/build/scrub/host/usr/include" CXXFLAGS="-O2 -I/work/build/scrub/host/usr/include" LDFLAGS="-L/work/build/scrub/host/lib -L/work/build/scrub/host/usr/lib -Wl,-rpath,/work/build/scrub/host/usr/lib" PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG="/work/build/scrub/host/usr/bin/pkg-config" PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_LIBDIR="/work/build/scrub/host/usr/lib/pkgconfig:/work/build/scrub/host/usr/share/pkgconfig" INTLTOOL_PERL=/usr/bin/perl ACLOCAL="/work/build/scrub/host/usr/bin/aclocal -I /work/build/scrub/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/share/aclocal" AUTOCONF="/work/build/scrub/host/usr/bin/autoconf" AUTOHEADER="/work/build/scrub/host/usr/bin/autoheader" AUTOMAKE="/work/build/scrub/host/usr/bin/automake" AUTOPOINT=/bin/true /work/build/scrub/host/usr/bin/autoreconf -f -i -I "/work/build/scrub/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/share/aclocal" -I "/work/build/scrub/host/usr/share/aclocal" libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'config'. libtoolize: copying file 'config/ltmain.sh' libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac, libtoolize: and rerunning libtoolize and aclocal. libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am. configure.ac:10: error possibly undefined macro: X_AC_META If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.ac:11: error possibly undefined macro: X_AC_EXPAND_INSTALL_DIRS configure.ac:51: error possibly undefined macro: AC_PKGCONFIG configure.ac:70: error possibly undefined macro: X_AC_CHECK_PTHREADS autoreconf: /work/build/scrub/host/usr/bin/autoconf failed with exit status: 1 package/pkg-generic.mk:185: recipe for target '/work/build/scrub/build/scrub-2.6.1/.stamp_configured' failed make: *** [/work/build/scrub/build/scrub-2.6.1/.stamp_configured] Error 1 make: Leaving directory '/work/repos/buildroot' Signed-off-by: Samuel Martin [Upstream commit: https://github.com/chaos/scrub/commit/11d30916dd9c11a26c7c8a0f6db9e6ebca301594] Signed-off-by: Thomas Petazzoni --- configure.ac | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac index 3d71289..07eaf33 100644 --- a/configure.ac +++ b/configure.ac @@ -7,6 +7,7 @@ AC_INIT(m4_esyscmd([awk '/Name:/ {printf "%s",$2; exit}' META]), AC_CONFIG_AUX_DIR([config]) AC_CONFIG_SRCDIR([NEWS]) AC_CANONICAL_SYSTEM +AC_CONFIG_MACRO_DIR([config]) X_AC_META X_AC_EXPAND_INSTALL_DIRS ================================================ FILE: package/scrub/Config.in ================================================ 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/ ================================================ FILE: package/scrub/scrub.hash ================================================ # Locally computed sha256 838b061b2e1932b342fb9695c5579cdff5d2d72506cb41d6d8032eba18aed969 scrub-2.6.1.tar.gz # License files, locally calculated sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING sha256 f76abbfb80cde1036cb553cdecb08bb846a48e33c91ef56c0f494172fd407f33 DISCLAIMER ================================================ FILE: package/scrub/scrub.mk ================================================ ################################################################################ # # scrub # ################################################################################ SCRUB_VERSION = 2.6.1 SCRUB_SITE = $(call github,chaos,scrub,$(SCRUB_VERSION)) SCRUB_LICENSE = GPL-2.0+ SCRUB_LICENSE_FILES = COPYING DISCLAIMER # Fetching from the git repo, no configure/Makefile generated, and patching # configure.ac SCRUB_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/scrypt/Config.in ================================================ config BR2_PACKAGE_SCRYPT bool "scrypt" select BR2_PACKAGE_OPENSSL help A password-based key derivation function specifically designed to make it costly to perform large-scale custom hardware attacks by requiring large amounts of memory. http://www.tarsnap.com/scrypt.html ================================================ FILE: package/scrypt/scrypt.hash ================================================ # From http://www.tarsnap.com/scrypt/scrypt-sigs-1.3.1.asc sha256 df2f23197c9589963267f85f9c5307ecf2b35a98b83a551bf1b1fb7a4d06d4c2 scrypt-1.3.1.tgz # Locally computed sha256 1fb4da0e9000287414066a238f378528d5652f89b72b4a1d6b89fdd20031b22d COPYRIGHT ================================================ FILE: package/scrypt/scrypt.mk ================================================ ################################################################################ # # scrypt # ################################################################################ SCRYPT_VERSION = 1.3.1 SCRYPT_SOURCE = scrypt-$(SCRYPT_VERSION).tgz SCRYPT_SITE = http://www.tarsnap.com/scrypt SCRYPT_LICENSE = BSD-2-Clause SCRYPT_LICENSE_FILES = COPYRIGHT SCRYPT_DEPENDENCIES = openssl SCRYPT_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/sdbusplus/Config.in ================================================ config BR2_PACKAGE_SDBUSPLUS bool "sdbusplus" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_SYSTEMD depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 help A C++ library for sd-bus with a bindings and doc generator. This will build the target library. See the host package for the bindings and documentation generation program. https://github.com/openbmc/sdbusplus comment "sdbusplus needs systemd and a toolchain w/ C++, gcc >= 7" depends on !BR2_PACKAGE_SYSTEMD || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 ================================================ FILE: package/sdbusplus/Config.in.host ================================================ config BR2_PACKAGE_HOST_SDBUSPLUS bool "host-sdbusplus" select BR2_PACKAGE_HOST_PKGCONF help A C++ library for sd-bus with a bindings and doc generator. This will build the Python host side generation tool for bindings and documentation. https://github.com/openbmc/sdbusplus ================================================ FILE: package/sdbusplus/sdbusplus.hash ================================================ # Locally calculated sha256 c67b8f3d9b74fd0d70eb6eec3b2ec2d496d0f169deedf6fc07dbff2c2f275d2b sdbusplus-4212292bcf136d04b38ba5116aa568b0fa312798.tar.gz # License file, locally calculated sha256 b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1 LICENSE ================================================ FILE: package/sdbusplus/sdbusplus.mk ================================================ ################################################################################ # # sdbusplus # ################################################################################ SDBUSPLUS_VERSION = 4212292bcf136d04b38ba5116aa568b0fa312798 SDBUSPLUS_SITE = $(call github,openbmc,sdbusplus,$(SDBUSPLUS_VERSION)) SDBUSPLUS_DEPENDENCIES = host-autoconf-archive host-pkgconf systemd HOST_SDBUSPLUS_DEPENDENCIES = \ host-autoconf-archive \ host-pkgconf \ host-python3 \ host-python-inflection \ host-python-mako \ host-python-pyyaml SDBUSPLUS_CONF_OPTS = --disable-sdbuspp HOST_SDBUSPLUS_CONF_OPTS = --disable-libsdbusplus SDBUSPLUS_AUTORECONF = YES SDBUSPLUS_AUTORECONF_OPTS = --include=$(HOST_DIR)/share/autoconf-archive SDBUSPLUS_INSTALL_STAGING = YES SDBUSPLUS_LICENSE = Apache-2.0 SDBUSPLUS_LICENSE_FILES = LICENSE # Autoreconf is missing the m4/ directory, which might actually be missing # iff it was the first argument, but unfortunately we are overriding the # first include directory above. Thus we need that hook here. define SDBUSPLUS_CREATE_M4 mkdir -p $(@D)/m4 endef SDBUSPLUS_POST_PATCH_HOOKS += SDBUSPLUS_CREATE_M4 HOST_SDBUSPLUS_POST_PATCH_HOOKS += SDBUSPLUS_CREATE_M4 $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/sdl/0001-use-correct-directfb-config.patch ================================================ [PATCH] configure.in: use correct directfb-config in version check The configure script has just checked for the correct directfb-config script, so also use it for the version check instead of whatever might be in the path. Signed-off-by: Peter Korsgaard --- configure.in | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Index: SDL-1.2.15/configure.in =================================================================== --- SDL-1.2.15.orig/configure.in +++ SDL-1.2.15/configure.in @@ -1276,7 +1276,7 @@ else set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'` NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3` - set -- `directfb-config --version | sed 's/\./ /g'` + set -- `$DIRECTFBCONFIG --version | sed 's/\./ /g'` HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3` if test $HAVE_VERSION -ge $NEED_VERSION; then DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags` ================================================ FILE: package/sdl/0002-fix-compilation-with-libx11.patch ================================================ sdl: Fix compilation with libX11 >= 1.5.99.902 Signed-off-by: Vicente Olivert Riera # HG changeset patch # User Azamat H. Hackimov # Date 1370184533 -21600 # Node ID 91ad7b43317a6387e115ecdf63a49137f47e42c8 # Parent f7fd5c3951b9ed922fdf696f7182e71b58a13268 Fix compilation with libX11 >= 1.5.99.902. These changes fixes bug #1769 for SDL 1.2 (http://bugzilla.libsdl.org/show_bug.cgi?id=1769). diff -r f7fd5c3951b9 -r 91ad7b43317a configure.in --- a/configure.in Wed Apr 17 00:56:53 2013 -0700 +++ b/configure.in Sun Jun 02 20:48:53 2013 +0600 @@ -1169,6 +1169,17 @@ if test x$definitely_enable_video_x11_xrandr = xyes; then AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR) fi + AC_MSG_CHECKING(for const parameter to _XData32) + have_const_param_xdata32=no + AC_TRY_COMPILE([ + #include + extern int _XData32(Display *dpy,register _Xconst long *data,unsigned len); + ],[ + ],[ + have_const_param_xdata32=yes + AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32) + ]) + AC_MSG_RESULT($have_const_param_xdata32) fi fi } diff -r f7fd5c3951b9 -r 91ad7b43317a include/SDL_config.h.in --- a/include/SDL_config.h.in Wed Apr 17 00:56:53 2013 -0700 +++ b/include/SDL_config.h.in Sun Jun 02 20:48:53 2013 +0600 @@ -283,6 +283,7 @@ #undef SDL_VIDEO_DRIVER_WINDIB #undef SDL_VIDEO_DRIVER_WSCONS #undef SDL_VIDEO_DRIVER_X11 +#undef SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32 #undef SDL_VIDEO_DRIVER_X11_DGAMOUSE #undef SDL_VIDEO_DRIVER_X11_DYNAMIC #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT diff -r f7fd5c3951b9 -r 91ad7b43317a src/video/x11/SDL_x11sym.h --- a/src/video/x11/SDL_x11sym.h Wed Apr 17 00:56:53 2013 -0700 +++ b/src/video/x11/SDL_x11sym.h Sun Jun 02 20:48:53 2013 +0600 @@ -165,7 +165,11 @@ */ #ifdef LONG64 SDL_X11_MODULE(IO_32BIT) +#if SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32 +SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return) +#else SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return) +#endif SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),) #endif ================================================ FILE: package/sdl/Config.in ================================================ config BR2_PACKAGE_SDL bool "SDL" help Simple DirectMedia Layer - SDL is a library that allows programs portable low level access to a video framebuffer, audio output, mouse, and keyboard. http://www.libsdl.org/ if BR2_PACKAGE_SDL config BR2_PACKAGE_SDL_FBCON bool "SDL framebuffer console video driver" default y config BR2_PACKAGE_SDL_DIRECTFB bool "SDL DirectFB video driver" depends on BR2_PACKAGE_DIRECTFB config BR2_PACKAGE_SDL_X11 bool "SDL X11 video driver" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT endif ================================================ FILE: package/sdl/sdl.hash ================================================ # Locally calculated after checking pgp signature sha256 d6d316a793e5e348155f0dd93b979798933fb98aa1edebcc108829d6474aad00 SDL-1.2.15.tar.gz # Locally computed sha256 bb117c0fbd7f57f64170b690285d7df07c2371b578e3b3cd3aa2e1155ef461a0 COPYING ================================================ FILE: package/sdl/sdl.mk ================================================ ################################################################################ # # sdl # ################################################################################ SDL_VERSION = 1.2.15 SDL_SOURCE = SDL-$(SDL_VERSION).tar.gz SDL_SITE = http://www.libsdl.org/release SDL_LICENSE = LGPL-2.1+ SDL_LICENSE_FILES = COPYING SDL_CPE_ID_VENDOR = libsdl SDL_CPE_ID_PRODUCT = simple_directmedia_layer SDL_INSTALL_STAGING = YES # we're patching configure.in, but package cannot autoreconf with our version of # autotools, so we have to do it manually instead of setting SDL_AUTORECONF = YES define SDL_RUN_AUTOGEN cd $(@D) && PATH=$(BR_PATH) ./autogen.sh endef SDL_PRE_CONFIGURE_HOOKS += SDL_RUN_AUTOGEN HOST_SDL_PRE_CONFIGURE_HOOKS += SDL_RUN_AUTOGEN SDL_DEPENDENCIES += host-automake host-autoconf host-libtool HOST_SDL_DEPENDENCIES += host-automake host-autoconf host-libtool SDL_CONF_OPTS += --enable-video-qtopia=no ifeq ($(BR2_PACKAGE_SDL_FBCON),y) SDL_CONF_OPTS += --enable-video-fbcon=yes else SDL_CONF_OPTS += --enable-video-fbcon=no endif ifeq ($(BR2_PACKAGE_SDL_DIRECTFB),y) SDL_DEPENDENCIES += directfb SDL_CONF_OPTS += --enable-video-directfb=yes SDL_CONF_ENV = ac_cv_path_DIRECTFBCONFIG=$(STAGING_DIR)/usr/bin/directfb-config else SDL_CONF_OPTS += --enable-video-directfb=no endif ifeq ($(BR2_PACKAGE_SDL_X11),y) SDL_CONF_OPTS += --enable-video-x11=yes SDL_DEPENDENCIES += \ xlib_libX11 xlib_libXext \ $(if $(BR2_PACKAGE_XLIB_LIBXRENDER), xlib_libXrender) \ $(if $(BR2_PACKAGE_XLIB_LIBXRANDR), xlib_libXrandr) else SDL_CONF_OPTS += --enable-video-x11=no endif ifneq ($(BR2_USE_MMU),y) SDL_CONF_OPTS += --enable-dga=no endif # overwrite autodection (prevents confusion with host libpth version) ifeq ($(BR2_PACKAGE_LIBPTHSEM_COMPAT),y) SDL_CONF_OPTS += --enable-pth SDL_CONF_ENV += ac_cv_path_PTH_CONFIG=$(STAGING_DIR)/usr/bin/pth-config SDL_DEPENDENCIES += libpthsem else SDL_CONF_OPTS += --disable-pth endif ifeq ($(BR2_PACKAGE_TSLIB),y) SDL_DEPENDENCIES += tslib endif ifeq ($(BR2_PACKAGE_ALSA_LIB),y) SDL_DEPENDENCIES += alsa-lib endif ifeq ($(BR2_PACKAGE_MESA3D),y) SDL_DEPENDENCIES += mesa3d endif SDL_CONF_OPTS += \ --disable-rpath \ --enable-pulseaudio=no \ --disable-arts \ --disable-esd \ --disable-nasm \ --disable-video-ps3 HOST_SDL_CONF_OPTS += \ --enable-pulseaudio=no \ --enable-video-x11=no \ --disable-arts \ --disable-esd \ --disable-nasm \ --disable-video-ps3 SDL_CONFIG_SCRIPTS = sdl-config $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/sdl2/Config.in ================================================ config BR2_PACKAGE_SDL2 bool "sdl2" depends on !BR2_STATIC_LIBS help Simple DirectMedia Layer 2 - SDL2 is a library that allows programs portable low level access to a video framebuffer, audio output, mouse, and keyboard. It is not compatible with SDL1. http://www.libsdl.org/ if BR2_PACKAGE_SDL2 config BR2_PACKAGE_SDL2_DIRECTFB bool "DirectFB video driver" depends on BR2_PACKAGE_DIRECTFB comment "DirectFB video driver needs directfb" depends on !BR2_PACKAGE_DIRECTFB config BR2_PACKAGE_SDL2_X11 bool "X11 video driver" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT comment "X11 video driver needs X.org" depends on !BR2_PACKAGE_XORG7 depends on BR2_USE_MMU config BR2_PACKAGE_SDL2_KMSDRM bool "KMS/DRM video driver" depends on BR2_PACKAGE_LIBDRM depends on BR2_PACKAGE_MESA3D_GBM comment "KMS/DRM video driver needs libdrm" depends on !BR2_PACKAGE_LIBDRM comment "KMS/DRM video driver needs mesa3d w/ GBM" depends on !BR2_PACKAGE_MESA3D_GBM config BR2_PACKAGE_SDL2_OPENGL bool "OpenGL (GLX)" depends on BR2_PACKAGE_HAS_LIBGL depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU # X11 video driver select BR2_PACKAGE_SDL2_X11 comment "OpenGL support needs X11 and an OpenGL provider" depends on BR2_USE_MMU depends on !BR2_PACKAGE_HAS_LIBGL || !BR2_PACKAGE_XORG7 config BR2_PACKAGE_SDL2_OPENGLES bool "OpenGL ES" depends on BR2_PACKAGE_HAS_LIBGLES comment "OpenGL ES support needs an OpenGL ES provider" depends on !BR2_PACKAGE_HAS_LIBGLES endif comment "sdl2 needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/sdl2/sdl2.hash ================================================ # Locally calculated after checking http://www.libsdl.org/release/SDL2-2.0.16.tar.gz.sig sha256 65be9ff6004034b5b2ce9927b5a4db1814930f169c4b2dae0a1e4697075f287b SDL2-2.0.16.tar.gz # Locally calculated sha256 52d41d0c82507721ca1fd92c20dc2bf9ca531b3a288ef845a8275c550f118804 LICENSE.txt ================================================ FILE: package/sdl2/sdl2.mk ================================================ ################################################################################ # # sdl2 # ################################################################################ SDL2_VERSION = 2.0.16 SDL2_SOURCE = SDL2-$(SDL2_VERSION).tar.gz SDL2_SITE = http://www.libsdl.org/release SDL2_LICENSE = Zlib SDL2_LICENSE_FILES = LICENSE.txt SDL2_CPE_ID_VENDOR = libsdl SDL2_CPE_ID_PRODUCT = simple_directmedia_layer SDL2_INSTALL_STAGING = YES SDL2_CONFIG_SCRIPTS = sdl2-config SDL2_CONF_OPTS += \ --disable-rpath \ --disable-arts \ --disable-esd \ --disable-dbus \ --disable-pulseaudio \ --disable-video-wayland # We are using autotools build system for sdl2, so the sdl2-config.cmake # include path are not resolved like for sdl2-config script. # Change the absolute /usr path to resolve relatively to the sdl2-config.cmake location. # https://bugzilla.libsdl.org/show_bug.cgi?id=4597 define SDL2_FIX_SDL2_CONFIG_CMAKE $(SED) '2iget_filename_component(PACKAGE_PREFIX_DIR "$${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)\n' \ $(STAGING_DIR)/usr/lib/cmake/SDL2/sdl2-config.cmake $(SED) 's%"/usr"%$${PACKAGE_PREFIX_DIR}%' \ $(STAGING_DIR)/usr/lib/cmake/SDL2/sdl2-config.cmake endef SDL2_POST_INSTALL_STAGING_HOOKS += SDL2_FIX_SDL2_CONFIG_CMAKE # We must enable static build to get compilation successful. SDL2_CONF_OPTS += --enable-static ifeq ($(BR2_PACKAGE_HAS_UDEV),y) SDL2_DEPENDENCIES += udev SDL2_CONF_OPTS += --enable-libudev else SDL2_CONF_OPTS += --disable-libudev endif ifeq ($(BR2_X86_CPU_HAS_SSE),y) SDL2_CONF_OPTS += --enable-sse else SDL2_CONF_OPTS += --disable-sse endif ifeq ($(BR2_X86_CPU_HAS_3DNOW),y) SDL2_CONF_OPTS += --enable-3dnow else SDL2_CONF_OPTS += --disable-3dnow endif ifeq ($(BR2_PACKAGE_SDL2_DIRECTFB),y) SDL2_DEPENDENCIES += directfb SDL2_CONF_OPTS += --enable-video-directfb SDL2_CONF_ENV = ac_cv_path_DIRECTFBCONFIG=$(STAGING_DIR)/usr/bin/directfb-config else SDL2_CONF_OPTS += --disable-video-directfb endif ifeq ($(BR2_PACKAGE_SDL2_OPENGLES)$(BR2_PACKAGE_RPI_USERLAND),yy) SDL2_DEPENDENCIES += rpi-userland SDL2_CONF_OPTS += --enable-video-rpi else SDL2_CONF_OPTS += --disable-video-rpi endif # x-includes and x-libraries must be set for cross-compiling # By default x_includes and x_libraries contains unsafe paths. # (/usr/X11R6/include and /usr/X11R6/lib) ifeq ($(BR2_PACKAGE_SDL2_X11),y) SDL2_DEPENDENCIES += xlib_libX11 xlib_libXext # X11/extensions/shape.h is provided by libXext. SDL2_CONF_OPTS += --enable-video-x11 \ --with-x=$(STAGING_DIR) \ --x-includes=$(STAGING_DIR)/usr/include \ --x-libraries=$(STAGING_DIR)/usr/lib \ --enable-video-x11-xshape ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) SDL2_DEPENDENCIES += xlib_libXcursor SDL2_CONF_OPTS += --enable-video-x11-xcursor else SDL2_CONF_OPTS += --disable-video-x11-xcursor endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) SDL2_DEPENDENCIES += xlib_libXinerama SDL2_CONF_OPTS += --enable-video-x11-xinerama else SDL2_CONF_OPTS += --disable-video-x11-xinerama endif ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y) SDL2_DEPENDENCIES += xlib_libXi SDL2_CONF_OPTS += --enable-video-x11-xinput else SDL2_CONF_OPTS += --disable-video-x11-xinput endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) SDL2_DEPENDENCIES += xlib_libXrandr SDL2_CONF_OPTS += --enable-video-x11-xrandr else SDL2_CONF_OPTS += --disable-video-x11-xrandr endif ifeq ($(BR2_PACKAGE_XLIB_LIBXSCRNSAVER),y) SDL2_DEPENDENCIES += xlib_libXScrnSaver SDL2_CONF_OPTS += --enable-video-x11-scrnsaver else SDL2_CONF_OPTS += --disable-video-x11-scrnsaver endif ifeq ($(BR2_PACKAGE_XLIB_LIBXXF86VM),y) SDL2_DEPENDENCIES += xlib_libXxf86vm SDL2_CONF_OPTS += --enable-video-x11-vm else SDL2_CONF_OPTS += --disable-video-x11-vm endif else SDL2_CONF_OPTS += --disable-video-x11 --without-x endif ifeq ($(BR2_PACKAGE_SDL2_OPENGL),y) SDL2_CONF_OPTS += --enable-video-opengl SDL2_DEPENDENCIES += libgl else SDL2_CONF_OPTS += --disable-video-opengl endif ifeq ($(BR2_PACKAGE_SDL2_OPENGLES),y) SDL2_CONF_OPTS += --enable-video-opengles SDL2_DEPENDENCIES += libgles else SDL2_CONF_OPTS += --disable-video-opengles endif ifeq ($(BR2_PACKAGE_ALSA_LIB),y) SDL2_DEPENDENCIES += alsa-lib SDL2_CONF_OPTS += --enable-alsa else SDL2_CONF_OPTS += --disable-alsa endif ifeq ($(BR2_PACKAGE_SDL2_KMSDRM),y) SDL2_DEPENDENCIES += libdrm mesa3d SDL2_CONF_OPTS += --enable-video-kmsdrm else SDL2_CONF_OPTS += --disable-video-kmsdrm endif $(eval $(autotools-package)) ================================================ FILE: package/sdl2_gfx/Config.in ================================================ 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 ================================================ FILE: package/sdl2_gfx/sdl2_gfx.hash ================================================ # Locally calculated sha256 63e0e01addedc9df2f85b93a248f06e8a04affa014a835c2ea34bfe34e576262 SDL2_gfx-1.0.4.tar.gz sha256 ec9036525fe1adde787041cce6c4b7fbb262863c238bb9051037e29a57e27bfc COPYING sha256 18e6fad60b809b0e30bd2576a0d33c179ca2ac694504a849d05b6579e3c481dd SDL2_framerate.h ================================================ FILE: package/sdl2_gfx/sdl2_gfx.mk ================================================ ################################################################################ # # sdl2_gfx # ################################################################################ SDL2_GFX_VERSION = 1.0.4 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)) ================================================ FILE: package/sdl2_image/Config.in ================================================ 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/ ================================================ FILE: package/sdl2_image/sdl2_image.hash ================================================ # Locally calculated sha256 bdd5f6e026682f7d7e1be0b6051b209da2f402a2dd8bd1c4bd9c25ad263108d0 SDL2_image-2.0.5.tar.gz sha256 45079362e2230154205413a6940544ca94e3479ccf76205c71c4f542a6815d25 COPYING.txt ================================================ FILE: package/sdl2_image/sdl2_image.mk ================================================ ################################################################################ # # sdl2_image # ################################################################################ SDL2_IMAGE_VERSION = 2.0.5 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 SDL2_IMAGE_CPE_ID_VENDOR = libsdl SDL2_IMAGE_CPE_ID_PRODUCT = sdl_image # 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)) ================================================ FILE: package/sdl2_mixer/Config.in ================================================ config BR2_PACKAGE_SDL2_MIXER bool "sdl2_mixer" depends on BR2_PACKAGE_SDL2 help SDL_mixer is a sample multi-channel audio mixer library. It supports any number of simultaneously playing channels of 16 bit stereo audio, plus a single channel of music, mixed by the popular FLAC, MikMod MOD, Timidity MIDI, Ogg Vorbis, and SMPEG MP3 libraries. http://www.libsdl.org/projects/SDL_mixer/ ================================================ FILE: package/sdl2_mixer/sdl2_mixer.hash ================================================ # Locally calculated sha256 b4cf5a382c061cd75081cf246c2aa2f9df8db04bdda8dcdc6b6cca55bede2419 SDL2_mixer-2.0.4.tar.gz sha256 113727180e7956cb9718b03b41da85b63ea54743a33047071a623bf672895a10 COPYING.txt ================================================ FILE: package/sdl2_mixer/sdl2_mixer.mk ================================================ ################################################################################ # # sdl2_mixer # ################################################################################ SDL2_MIXER_VERSION = 2.0.4 SDL2_MIXER_SOURCE = SDL2_mixer-$(SDL2_MIXER_VERSION).tar.gz SDL2_MIXER_SITE = http://www.libsdl.org/projects/SDL_mixer/release SDL2_MIXER_LICENSE = Zlib SDL2_MIXER_LICENSE_FILES = COPYING.txt SDL2_MIXER_INSTALL_STAGING = YES SDL2_MIXER_DEPENDENCIES = sdl2 host-pkgconf SDL2_MIXER_CONF_OPTS = --disable-music-mp3 ifeq ($(BR2_PACKAGE_FLAC),y) SDL2_MIXER_CONF_OPTS += --enable-music-flac SDL2_MIXER_DEPENDENCIES += flac else SDL2_MIXER_CONF_OPTS += --disable-music-flac endif ifeq ($(BR2_PACKAGE_FLUIDSYNTH),y) SDL2_MIXER_CONF_OPTS += --enable-music-midi-fluidsynth SDL2_MIXER_DEPENDENCIES += fluidsynth else SDL2_MIXER_CONF_OPTS += --disable-music-midi-fluidsynth endif ifeq ($(BR2_PACKAGE_LIBMODPLUG),y) SDL2_MIXER_CONF_OPTS += --enable-music-mod-modplug SDL2_MIXER_DEPENDENCIES += libmodplug else SDL2_MIXER_CONF_OPTS += --disable-music-mod-modplug endif ifeq ($(BR2_PACKAGE_OPUSFILE),y) SDL2_MIXER_CONF_OPTS += --enable-music-opus SDL2_MIXER_DEPENDENCIES += opusfile else SDL2_MIXER_CONF_OPTS += --disable-music-opus endif ifeq ($(BR2_PACKAGE_TREMOR),y) SDL2_MIXER_CONF_OPTS += --enable-music-ogg-tremor SDL2_MIXER_DEPENDENCIES += tremor else SDL2_MIXER_CONF_OPTS += --disable-music-ogg-tremor endif $(eval $(autotools-package)) ================================================ FILE: package/sdl2_net/Config.in ================================================ config BR2_PACKAGE_SDL2_NET bool "sdl2_net" depends on BR2_PACKAGE_SDL2 help This is a small sample cross-platform networking library, with a sample chat client and server application. The chat client uses the GUIlib GUI framework library. http://www.libsdl.org/projects/SDL_net/ ================================================ FILE: package/sdl2_net/sdl2_net.hash ================================================ # Locally calculated sha256 15ce8a7e5a23dafe8177c8df6e6c79b6749a03fff1e8196742d3571657609d21 SDL2_net-2.0.1.tar.gz sha256 f09845a238245402a8b8388db6634d8a5b2c3e1dc098f16f9d8c74a276ef4594 COPYING.txt ================================================ FILE: package/sdl2_net/sdl2_net.mk ================================================ ################################################################################ # # sdl2_net # ################################################################################ SDL2_NET_VERSION = 2.0.1 SDL2_NET_SOURCE = SDL2_net-$(SDL2_NET_VERSION).tar.gz SDL2_NET_SITE = http://www.libsdl.org/projects/SDL_net/release SDL2_NET_LICENSE = Zlib SDL2_NET_LICENSE_FILES = COPYING.txt SDL2_NET_INSTALL_STAGING = YES SDL2_NET_DEPENDENCIES = sdl2 host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/sdl2_ttf/Config.in ================================================ 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/ ================================================ FILE: package/sdl2_ttf/sdl2_ttf.hash ================================================ # Locally calculated sha256 a9eceb1ad88c1f1545cd7bd28e7cbc0b2c14191d40238f531a15b01b1b22cd33 SDL2_ttf-2.0.15.tar.gz sha256 f6370809c9f644760920d9945c5be07aed17664975f2e4741013d4d9a2ec696f COPYING.txt ================================================ FILE: package/sdl2_ttf/sdl2_ttf.mk ================================================ ################################################################################ # # sdl2_ttf # ################################################################################ SDL2_TTF_VERSION = 2.0.15 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)) ================================================ FILE: package/sdl_gfx/Config.in ================================================ config BR2_PACKAGE_SDL_GFX bool "SDL_gfx" depends on BR2_PACKAGE_SDL help The SDL_gfx library is an extension to the SDL 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://cms.ferzkopp.net/index.php/software/13-sdl-gfx ================================================ FILE: package/sdl_gfx/sdl_gfx.hash ================================================ # From http://sourceforge.net/projects/sdlgfx/files/ md5 fcc3c4f2d1b4943409bf7e67dd65d03a SDL_gfx-2.0.23.tar.gz sha1 aae60e7fed539f3f8a0a0bd6da3bbcf625642596 SDL_gfx-2.0.23.tar.gz # Locally computed sha256 4f5df842266c59b2d7e6ef35b53d7f37b13795d93baf3ed211f502c216f7bc89 COPYING sha256 5f3bc98e0bd2de83279bd62868d4bc0c2b4f811ab828b036d36a4a6d1cd5672d LICENSE ================================================ FILE: package/sdl_gfx/sdl_gfx.mk ================================================ ################################################################################ # # sdl_gfx # ################################################################################ SDL_GFX_VERSION_MAJOR = 2.0 SDL_GFX_VERSION = $(SDL_GFX_VERSION_MAJOR).23 SDL_GFX_SOURCE = SDL_gfx-$(SDL_GFX_VERSION).tar.gz SDL_GFX_SITE = http://www.ferzkopp.net/Software/SDL_gfx-$(SDL_GFX_VERSION_MAJOR) SDL_GFX_LICENSE = Zlib SDL_GFX_LICENSE_FILES = COPYING LICENSE SDL_GFX_INSTALL_STAGING = YES SDL_GFX_DEPENDENCIES = sdl SDL_GFX_CONF_OPTS = \ --with-sdl-prefix=$(STAGING_DIR)/usr \ --disable-sdltest \ --enable-static # Even though x86_64 processors support MMX, the MMX-specific assembly # code in sdl_gfx is IA32 specific, and does not build for x86_64. ifeq ($(BR2_i386)$(BR2_X86_CPU_HAS_MMX),yy) SDL_GFX_CONF_OPTS += --enable-mmx else SDL_GFX_CONF_OPTS += --disable-mmx endif $(eval $(autotools-package)) ================================================ FILE: package/sdl_image/Config.in ================================================ menuconfig BR2_PACKAGE_SDL_IMAGE bool "SDL_image" depends on BR2_PACKAGE_SDL help SDL_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/ if BR2_PACKAGE_SDL_IMAGE config BR2_PACKAGE_SDL_IMAGE_BMP bool "BMP support" default y config BR2_PACKAGE_SDL_IMAGE_GIF bool "GIF support" config BR2_PACKAGE_SDL_IMAGE_JPEG bool "JPEG support" select BR2_PACKAGE_JPEG config BR2_PACKAGE_SDL_IMAGE_LBM bool "LBM support" config BR2_PACKAGE_SDL_IMAGE_PCX bool "PCX support" config BR2_PACKAGE_SDL_IMAGE_PNG bool "PNG support" select BR2_PACKAGE_LIBPNG config BR2_PACKAGE_SDL_IMAGE_PNM bool "PNM support" config BR2_PACKAGE_SDL_IMAGE_TARGA bool "TARGA support" config BR2_PACKAGE_SDL_IMAGE_TIFF bool "TIFF support" select BR2_PACKAGE_TIFF config BR2_PACKAGE_SDL_IMAGE_WEBP bool "WEBP support" select BR2_PACKAGE_WEBP config BR2_PACKAGE_SDL_IMAGE_XCF bool "XCF support" config BR2_PACKAGE_SDL_IMAGE_XPM bool "XPM support" config BR2_PACKAGE_SDL_IMAGE_XV bool "XV support" endif ================================================ FILE: package/sdl_image/sdl_image.hash ================================================ # Locally calculated sha256 abaf55f6c3bbd7c7271b523767f360317f1fbb2a79e74c38c0523a123970ac89 sdl_image-5d792dde2f764daf15dc48521774a3354330db69.tar.gz sha256 653649692218d56e5807bdc5b72f51aa6067bc44d30b757e18c03b32bcaf98da COPYING ================================================ FILE: package/sdl_image/sdl_image.mk ================================================ ################################################################################ # # sdl_image # ################################################################################ # The latest officially released version of SDL_image is 1.2.12, released in 2012. # Since then, there have been many bugfixes, including security fixes. # # This commit points to the SDL-1.2 branch from 14 Mar 2021. SDL_IMAGE_VERSION = 5d792dde2f764daf15dc48521774a3354330db69 SDL_IMAGE_SITE = $(call github,libsdl-org,SDL_image,$(SDL_IMAGE_VERSION)) SDL_IMAGE_INSTALL_STAGING = YES SDL_IMAGE_LICENSE = Zlib SDL_IMAGE_LICENSE_FILES = COPYING SDL_IMAGE_CPE_ID_VENDOR = libsdl SDL_IMAGE_CONF_OPTS = \ --with-sdl-prefix=$(STAGING_DIR)/usr \ --with-sdl-exec-prefix=$(STAGING_DIR)/usr \ --disable-sdltest \ --disable-static \ --disable-jpg-shared \ --disable-png-shared \ --disable-tif-shared \ --disable-webp-shared \ --enable-bmp=$(if $(BR2_PACKAGE_SDL_IMAGE_BMP),yes,no) \ --enable-gif=$(if $(BR2_PACKAGE_SDL_IMAGE_GIF),yes,no) \ --enable-jpg=$(if $(BR2_PACKAGE_SDL_IMAGE_JPEG),yes,no) \ --enable-lbm=$(if $(BR2_PACKAGE_SDL_IMAGE_LBM),yes,no) \ --enable-pcx=$(if $(BR2_PACKAGE_SDL_IMAGE_PCX),yes,no) \ --enable-png=$(if $(BR2_PACKAGE_SDL_IMAGE_PNG),yes,no) \ --enable-pnm=$(if $(BR2_PACKAGE_SDL_IMAGE_PNM),yes,no) \ --enable-tga=$(if $(BR2_PACKAGE_SDL_IMAGE_TARGA),yes,no) \ --enable-tif=$(if $(BR2_PACKAGE_SDL_IMAGE_TIFF),yes,no) \ --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) SDL_IMAGE_DEPENDENCIES = sdl \ $(if $(BR2_PACKAGE_SDL_IMAGE_JPEG),jpeg) \ $(if $(BR2_PACKAGE_SDL_IMAGE_PNG),libpng) \ $(if $(BR2_PACKAGE_SDL_IMAGE_TIFF),tiff) \ $(if $(BR2_PACKAGE_SDL_IMAGE_WEBP),webp) HOST_SDL_IMAGE_CONF_OPTS = \ --with-sdl-prefix=$(HOST_DIR) \ --with-sdl-exec-prefix=$(HOST_DIR) \ --disable-sdltest \ --disable-static \ --disable-jpg-shared \ --disable-png-shared \ --disable-tif-shared \ --disable-webp-shared HOST_SDL_IMAGE_DEPENDENCIES = host-libjpeg host-libpng host-sdl $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/sdl_mixer/0001-Add-Libs.private-field-to-pkg-config-file.patch ================================================ 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.ac 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.ac | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.in b/Makefile.in index 027a99b..18015a2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -61,7 +61,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) $(LDFLAGS) $(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.ac b/configure.ac index 01a3d83..3ad3b4f 100644 --- a/configure.ac +++ b/configure.ac @@ -200,7 +200,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.27.0 ================================================ FILE: package/sdl_mixer/0002-configure__set_macro_directory.patch ================================================ # HG changeset patch # User "Yann E. MORIN" # Date 1581183281 -3600 # Sat Feb 08 18:34:41 2020 +0100 # Node ID 753a1f394620056c35790a571ff5f7c248445943 # Parent eb5f08bf9994bf5164ca68015f2e030c2c9dddcd configure: set macro directory Setting the macro directory in configure.in, rather than specifying it on the command line, ensures that it is properly searched in the correct order, and that autoreconf properly updates our macros with the newer system ones, if any. Fixes: http://autobuild.buildroot.org/results/63a/63ae0bddb3c4436efe967c318e299047f496c5a5/build-end.log libtool: Version mismatch error. This is libtool 2.4.6, but the libtool: definition of this LT_INIT comes from libtool 2.2.6. libtool: You should recreate aclocal.m4 with macros from libtool 2.4.6 libtool: and run autoconf again. Signed-off-by: Yann E. MORIN diff --git a/configure.ac b/configure.ac --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(README) AC_CONFIG_AUX_DIR(build-scripts) +AC_CONFIG_MACRO_DIR([acinclude]) dnl Set various version strings - taken gratefully from the GTk sources ================================================ FILE: package/sdl_mixer/0003-configure.ac-fix-static-linking-with-tremor.patch ================================================ From 02e247a0b820753977315786087b969f3b2c53da Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 10 Apr 2021 11:50:17 +0200 Subject: [PATCH] configure.ac: fix linking with tremor backported from: https://github.com/libsdl-org/SDL_mixer/pull/312 Signed-off-by: Fabrice Fontaine --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index c8dbcdb..93d5db0 100644 --- a/configure.ac +++ b/configure.ac @@ -453,7 +453,7 @@ if test x$enable_music_ogg = xyes; then echo "-- dynamic libvorbisidec -> $ogg_lib" EXTRA_CFLAGS="$EXTRA_CFLAGS -DOGG_DYNAMIC=\\\"$ogg_lib\\\"" else - EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lvorbisidec -lvorbis" + EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lvorbisidec" fi else AC_MSG_WARN([*** Unable to find Ogg Vorbis Tremor library (http://www.xiph.org/)]) ================================================ FILE: package/sdl_mixer/Config.in ================================================ config BR2_PACKAGE_SDL_MIXER bool "SDL_mixer" depends on BR2_PACKAGE_SDL help SDL_mixer is a sample multi-channel audio mixer library. It supports any number of simultaneously playing channels of 16 bit stereo audio, plus a single channel of music, mixed by the popular MikMod MOD, Timidity MIDI, Ogg Vorbis, and SMPEG MP3 libraries. http://www.libsdl.org/projects/SDL_mixer/ if BR2_PACKAGE_SDL_MIXER config BR2_PACKAGE_SDL_MIXER_MIDI_TIMIDITY bool "MIDI support with built-in Timidity synth" help Support MIDI audio using the built-in synth based on Timidity. You will need MIDI instruments installed in the filesystem. endif ================================================ FILE: package/sdl_mixer/sdl_mixer.hash ================================================ # Locally calculated sha256 b3c0f36500b23a6f5832d472f3e07b74f1d3f6bd00bf6700bc5e99babc9ba2ab sdl_mixer-d1725fcb7c4e987aeb7ecdc94cb8b6375b702170.tar.gz sha256 bc4c3bc32b311044d81c32b5e5402a6bc971a3b235850bb63445ec14bb6fe59e COPYING ================================================ FILE: package/sdl_mixer/sdl_mixer.mk ================================================ ################################################################################ # # sdl_mixer # ################################################################################ # The latest officially released version of SDL_mixer is 1.2.12, released in 2012. # Since then, there have been many bugfixes on master. # # This commit points to the SDL-1.2 branch from 15 Mar 2021. SDL_MIXER_VERSION = d1725fcb7c4e987aeb7ecdc94cb8b6375b702170 SDL_MIXER_SITE = $(call github,libsdl-org,SDL_mixer,$(SDL_MIXER_VERSION)) SDL_MIXER_LICENSE = Zlib SDL_MIXER_LICENSE_FILES = COPYING # Package does not build in parallel due to improper make rules SDL_MIXER_MAKE = $(MAKE1) 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_CONF_OPTS = \ --with-sdl-prefix=$(STAGING_DIR)/usr \ --disable-music-mod \ --disable-music-mp3 \ --disable-music-flac # configure script fails when cross compiling ifeq ($(BR2_PACKAGE_FLUIDSYNTH),y) SDL_MIXER_DEPENDENCIES += fluidsynth SDL_MIXER_CONF_OPTS += \ --enable-music-midi \ --enable-music-fluidsynth-midi SDL_MIXER_HAS_MIDI = YES endif ifeq ($(BR2_PACKAGE_SDL_MIXER_MIDI_TIMIDITY),y) SDL_MIXER_CONF_OPTS += \ --enable-music-midi \ --enable-music-timidity-midi SDL_MIXER_HAS_MIDI = YES endif ifneq ($(SDL_MIXER_HAS_MIDI),YES) SDL_MIXER_CONF_OPTS += --disable-music-midi endif ifeq ($(BR2_PACKAGE_LIBMAD),y) SDL_MIXER_CONF_OPTS += --enable-music-mp3-mad-gpl SDL_MIXER_DEPENDENCIES += libmad else SDL_MIXER_CONF_OPTS += --disable-music-mp3-mad-gpl endif ifeq ($(BR2_PACKAGE_LIBMODPLUG),y) SDL_MIXER_CONF_OPTS += --enable-music-mod-modplug SDL_MIXER_DEPENDENCIES += host-pkgconf libmodplug else SDL_MIXER_CONF_OPTS += --disable-music-mod-modplug endif ifeq ($(BR2_PACKAGE_TREMOR),y) SDL_MIXER_CONF_OPTS += --enable-music-ogg-tremor SDL_MIXER_DEPENDENCIES += tremor else ifeq ($(BR2_PACKAGE_LIBVORBIS),y) SDL_MIXER_CONF_OPTS += --enable-music-ogg SDL_MIXER_DEPENDENCIES += libvorbis else SDL_MIXER_CONF_OPTS += --disable-music-ogg endif $(eval $(autotools-package)) ================================================ FILE: package/sdl_net/Config.in ================================================ config BR2_PACKAGE_SDL_NET bool "SDL_net" depends on BR2_PACKAGE_SDL help SDL_net is a small, low-level, cross-platform network library, that can be used with the Simple DirectMedia Layer library (SDL). http://www.libsdl.org/projects/SDL_net/ ================================================ FILE: package/sdl_net/sdl_net.hash ================================================ # Locally calculated sha256 7549dbc91813c37986300e7f34e63a068b42fd91abb41cabcaca63b4c7404ea5 SDL_net-620b0ba7dd84a0fdbd4cc8ef1b2be1cc10f90ae3.tar.gz sha256 e542f822a6cd82deccf82cf0f50192917b0158d725a6bc6348ab1ccdd890ecbe COPYING ================================================ FILE: package/sdl_net/sdl_net.mk ================================================ ################################################################################ # # sdl_net # ################################################################################ # The latest officially released version of SDL_image is 1.2.8, released in 2012. # Since then, there have been several bugfixes. # # This commit points to the SDL-1.2 branch from 18 Feb 2021. SDL_NET_VERSION = 620b0ba7dd84a0fdbd4cc8ef1b2be1cc10f90ae3 SDL_NET_SITE = $(call github,libsdl-org,SDL_net,$(SDL_NET_VERSION)) SDL_NET_SOURCE = SDL_net-$(SDL_NET_VERSION).tar.gz SDL_NET_LICENSE = Zlib SDL_NET_LICENSE_FILES = COPYING SDL_NET_CONF_OPTS = \ --with-sdl-prefix=$(STAGING_DIR)/usr \ --with-sdl-exec-prefix=$(STAGING_DIR)/usr SDL_NET_INSTALL_STAGING = YES SDL_NET_DEPENDENCIES = sdl $(eval $(autotools-package)) ================================================ FILE: package/sdl_sound/0001-fix-constness.patch ================================================ decoders/speex: fix constness of speex mode Signed-off-by: "Yann E. MORIN" diff -durN sdl_sound-1.0.3.orig/decoders/speex.c sdl_sound-1.0.3/decoders/speex.c --- sdl_sound-1.0.3.orig/decoders/speex.c 2014-11-17 19:40:09.543553556 +0100 +++ sdl_sound-1.0.3/decoders/speex.c 2014-11-17 19:40:37.119864580 +0100 @@ -124,7 +124,7 @@ static int process_header(speex_t *speex, Sound_Sample *sample) { - SpeexMode *mode; + const SpeexMode * mode; SpeexHeader *hptr; SpeexHeader header; int enh_enabled = SPEEX_USE_PERCEPTUAL_ENHANCER; ================================================ FILE: package/sdl_sound/0002-remove-werror.patch ================================================ Do not add -Werror when --enable-debug is used Using -Werror causes some problems due to warnings in the SDL_sound code, so let's disable it. We patch configure directly, because: 1/ configure.in doesn't autoreconf properly out of the box. 2/ the length of the configure or configure.in patch would be exactly the same (one line), or maybe more for the configure.in patch if we want the package to autoreconf properly 3/ the patch will never go upstream, because upstream is dead. Signed-off-by: Thomas Petazzoni Index: b/configure =================================================================== --- a/configure +++ b/configure @@ -19561,7 +19561,6 @@ else CFLAGS="-O0" fi - CFLAGS="$CFLAGS -Werror" cat >>confdefs.h <<\_ACEOF #define DEBUG 1 ================================================ FILE: package/sdl_sound/0003-renamed-physfs-export.patch ================================================ This patch is taken from the Arch Linux User Repository, see: https://aur.archlinux.org/packages/sdl_sound-patched-hg/ Signed-off-by: Sam Bobroff diff -ru SDL_sound.orig/playsound/physfsrwops.h SDL_sound/playsound/physfsrwops.h --- SDL_sound.orig/playsound/physfsrwops.h 2014-01-11 06:28:35.494936000 +0100 +++ SDL_sound/playsound/physfsrwops.h 2014-01-11 06:31:38.315675483 +0100 @@ -29,6 +29,11 @@ extern "C" { #endif +/* renamed in physfs dev, add alias */ +#ifdef PHYSFS_DECL +#define __EXPORT__ PHYSFS_DECL +#endif + /** * Open a platform-independent filename for reading, and make it accessible * via an SDL_RWops structure. The file will be closed in PhysicsFS when the @@ -77,6 +82,11 @@ */ __EXPORT__ SDL_RWops *PHYSFSRWOPS_makeRWops(PHYSFS_file *handle); +/* renamed in physfs dev, remove alias */ +#ifdef PHYSFS_DECL +#undef __EXPORT__ +#endif + #ifdef __cplusplus } #endif ================================================ FILE: package/sdl_sound/Config.in ================================================ config BR2_PACKAGE_SDL_SOUND bool "SDL_sound" depends on BR2_PACKAGE_SDL select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help SDL_sound is a library that handles the decoding of several popular sound file formats, such as .WAV and .MP3. It is meant to make the programmer's sound playback tasks simpler. The programmer gives SDL_sound a filename, or feeds it data directly from one of many sources, and then reads the decoded waveform data back at her leisure. http://icculus.org/SDL_sound/ if BR2_PACKAGE_SDL_SOUND config BR2_PACKAGE_SDL_SOUND_PLAYSOUND bool "install playsound tool" help Enable this option to install the playsound/playsound_simple tools to target. endif ================================================ FILE: package/sdl_sound/sdl_sound.hash ================================================ # Locally calculated sha256 3999fd0bbb485289a52be14b2f68b571cb84e380cc43387eadf778f64c79e6df SDL_sound-1.0.3.tar.gz sha256 2a781dd2f8c5435c59cfa3b79dfea1c1d7df676ed318ecc802139f76ac345d07 COPYING ================================================ FILE: package/sdl_sound/sdl_sound.mk ================================================ ################################################################################ # # sdl_sound # ################################################################################ SDL_SOUND_VERSION = 1.0.3 SDL_SOUND_SOURCE = SDL_sound-$(SDL_SOUND_VERSION).tar.gz SDL_SOUND_SITE = http://icculus.org/SDL_sound/downloads SDL_SOUND_LICENSE = LGPL-2.1+ SDL_SOUND_LICENSE_FILES = COPYING SDL_SOUND_INSTALL_STAGING = YES SDL_SOUND_DEPENDENCIES = sdl SDL_SOUND_CONF_OPTS = \ --with-sdl-prefix=$(STAGING_DIR)/usr \ --with-sdl-exec-prefix=$(STAGING_DIR)/usr \ --disable-sdltest \ --enable-static ifneq ($(BR2_ENABLE_LOCALE),y) SDL_SOUND_DEPENDENCIES += libiconv endif # optional dependencies ifeq ($(BR2_PACKAGE_FLAC)$(BR2_PACKAGE_LIBOGG),yy) SDL_SOUND_CONF_OPTS += --enable-flac SDL_SOUND_DEPENDENCIES += flac libogg else SDL_SOUND_CONF_OPTS += --disable-flac endif ifeq ($(BR2_PACKAGE_LIBMODPLUG),y) SDL_SOUND_CONF_OPTS += --enable-modplug SDL_SOUND_DEPENDENCIES += libmodplug else SDL_SOUND_CONF_OPTS += --disable-modplug endif ifeq ($(BR2_PACKAGE_LIBVORBIS),y) SDL_SOUND_CONF_OPTS += --enable-ogg SDL_SOUND_DEPENDENCIES += libvorbis else SDL_SOUND_CONF_OPTS += --disable-ogg endif ifeq ($(BR2_PACKAGE_SPEEX),y) SDL_SOUND_CONF_OPTS += --enable-speex SDL_SOUND_DEPENDENCIES += speex else SDL_SOUND_CONF_OPTS += --disable-speex endif ifeq ($(BR2_PACKAGE_PHYSFS),y) SDL_SOUND_CONF_OPTS += --enable-physfs SDL_SOUND_DEPENDENCIES += physfs else SDL_SOUND_CONF_OPTS += --disable-physfs endif ifeq ($(BR2_X86_CPU_HAS_MMX),y) SDL_SOUND_CONF_OPTS += --enable-mmx else SDL_SOUND_CONF_OPTS += --disable-mmx endif define SDL_SOUND_REMOVE_PLAYSOUND rm $(addprefix $(TARGET_DIR)/usr/bin/,playsound playsound_simple) endef ifneq ($(BR2_PACKAGE_SDL_SOUND_PLAYSOUND),y) SDL_SOUND_POST_INSTALL_TARGET_HOOKS += SDL_SOUND_REMOVE_PLAYSOUND endif $(eval $(autotools-package)) ================================================ FILE: package/sdl_ttf/Config.in ================================================ config BR2_PACKAGE_SDL_TTF bool "SDL_TTF" depends on BR2_PACKAGE_SDL select BR2_PACKAGE_FREETYPE help SDL_ttf is a sample TrueType font library. It allows you to use TrueType fonts in your SDL applications. http://www.libsdl.org/projects/SDL_ttf/ ================================================ FILE: package/sdl_ttf/sdl_ttf.hash ================================================ # Locally calculated sha256 c24e3b48f5ffa5afb3256d23700506fad72117ac2834147c2e46ee94c3cb12b5 sdl_ttf-70b2940cc75e92aab02a67d2f827caf2836a2c74.tar.gz sha256 b609721d3d4ac67facaf86f068c8b311b6c5f6cef89b6d84268aa38b7867ab7b COPYING ================================================ FILE: package/sdl_ttf/sdl_ttf.mk ================================================ ################################################################################ # # sdl_ttf # ################################################################################ # There is unlikely to be a new SDL_ttf release for the foreseeable future: # https://bugzilla.libsdl.org/show_bug.cgi?id=5344#c1 SDL_TTF_VERSION = 70b2940cc75e92aab02a67d2f827caf2836a2c74 SDL_TTF_SITE = $(call github,libsdl-org,SDL_ttf,$(SDL_TTF_VERSION)) SDL_TTF_LICENSE = Zlib SDL_TTF_LICENSE_FILES = COPYING SDL_TTF_INSTALL_STAGING = YES SDL_TTF_DEPENDENCIES = sdl freetype SDL_TTF_CONF_OPTS = \ --without-x \ --with-freetype-prefix=$(STAGING_DIR)/usr \ --with-sdl-prefix=$(STAGING_DIR)/usr SDL_TTF_MAKE_OPTS = \ INCLUDES="-I$(STAGING_DIR)/usr/include/SDL" \ LDFLAGS="-L$(STAGING_DIR)/usr/lib" $(eval $(autotools-package)) ================================================ FILE: package/sdparm/Config.in ================================================ config BR2_PACKAGE_SDPARM bool "sdparm" help Utility to accesses SCSI device parameters. http://sg.danny.cz/sg/sdparm.html ================================================ FILE: package/sdparm/sdparm.hash ================================================ # Locally calculated sha256 7dc9e148cef22744e00809dad21b59ac544e3615001bc1b2399978f73e1d58ca sdparm-1.10.tar.xz sha256 4f98444e14adb18a94a65c3ded5f0dad42d382c6a2288b593a2d5bd5ecc4f46d COPYING ================================================ FILE: package/sdparm/sdparm.mk ================================================ ################################################################################ # # sdparm # ################################################################################ SDPARM_VERSION = 1.10 SDPARM_SOURCE = sdparm-$(SDPARM_VERSION).tar.xz SDPARM_SITE = http://sg.danny.cz/sg/p SDPARM_LICENSE = BSD-3-Clause SDPARM_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_SG3_UTILS),y) SDPARM_DEPENDENCIES += sg3_utils else SDPARM_CONF_OPTS += --disable-libsgutils endif $(eval $(autotools-package)) ================================================ FILE: package/seatd/Config.in ================================================ menuconfig BR2_PACKAGE_SEATD bool "seatd" select BR2_PACKAGE_SEATD_BUILTIN \ if !BR2_PACKAGE_SYSTEMD_LOGIND && !BR2_PACKAGE_SEATD_DAEMON help Seat management daemon and support library. https://git.sr.ht/~kennylevinsen/seatd if BR2_PACKAGE_SEATD config BR2_PACKAGE_SEATD_BUILTIN bool "builtin backend" help Builtin in-process seatd implementation inside libseat. config BR2_PACKAGE_SEATD_DAEMON bool "seatd daemon" depends on BR2_USE_MMU # fork() help Build the seatd daemon and support for it inside libseat. endif ================================================ FILE: package/seatd/S70seatd ================================================ #! /bin/sh DAEMON="seatd" DAEMON_EXE="/usr/bin/${DAEMON}" PIDFILE="/run/${DAEMON}.pid" start() { printf 'Starting %s: ' "${DAEMON}" start-stop-daemon -S -x "${DAEMON_EXE}" -p "${PIDFILE}" -m -b -- -g video status=$? if [ "$status" -eq 0 ]; then echo OK else echo FAIL fi return "$status" } stop() { printf 'Stopping %s: ' "${DAEMON}" start-stop-daemon -K -x "${DAEMON_EXE}" -p "${PIDFILE}" status=$? if [ "$status" -eq 0 ]; then echo OK else echo FAIL fi return "$status" } restart() { stop sleep 1 start } case "${1}" in start|stop|restart) "${1}";; reload) restart;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac ================================================ FILE: package/seatd/seatd.hash ================================================ # Calculated locally sha256 5226850c163b485aebe71da0d3f4941761637e146a5c9393cb40c52617ad84a8 0.6.3.tar.gz # License files sha256 282a494803d666616bd726e0279636b5f6a31387ae19a707459074050f2600d3 LICENSE ================================================ FILE: package/seatd/seatd.mk ================================================ ################################################################################ # # seatd # ################################################################################ SEATD_VERSION = 0.6.3 SEATD_SOURCE = $(SEATD_VERSION).tar.gz SEATD_SITE = https://git.sr.ht/~kennylevinsen/seatd/archive SEATD_LICENSE = MIT SEATD_LICENSE_FILES = LICENSE SEATD_INSTALL_STAGING = YES SEATD_CONF_OPTS += \ -Dman-pages=disabled \ -Dexamples=disabled \ -Dwerror=false ifeq ($(BR2_PACKAGE_SYSTEMD_LOGIND),y) SEATD_CONF_OPTS += -Dlibseat-logind=enabled SEATD_DEPENDENCIES += systemd else SEATD_CONF_OPTS += -Dlibseat-logind=disabled endif ifeq ($(BR2_PACKAGE_SEATD_BUILTIN),y) SEATD_CONF_OPTS += -Dlibseat-builtin=enabled else SEATD_CONF_OPTS += -Dlibseat-builtin=disabled endif ifeq ($(BR2_PACKAGE_SEATD_DAEMON),y) SEATD_CONF_OPTS += -Dlibseat-seatd=enabled -Dserver=enabled define SEATD_USERS - - video -1 - - - - - endef define SEATD_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D $(SEATD_PKGDIR)/S70seatd \ $(TARGET_DIR)/etc/init.d/S70seatd endef define SEATD_INSTALL_INIT_SYSTEMD $(INSTALL) -m 0644 -D $(@D)/contrib/systemd/seatd.service \ $(TARGET_DIR)/usr/lib/systemd/system/seatd.service endef else SEATD_CONF_OPTS += -Dlibseat-seatd=disabled -Dserver=disabled endif $(eval $(meson-package)) ================================================ FILE: package/sed/Config.in ================================================ config BR2_PACKAGE_SED bool "sed" depends on BR2_USE_WCHAR depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help sed (stream editor) is a non-interactive command-line text editor. https://www.gnu.org/software/sed/ comment "sed needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/sed/sed.hash ================================================ # Locally calculated after checking pgp signature # https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz.sig # with the key 155D3FC500C834486D1EEA677FD9FCCB000BEEEE sha256 f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633 sed-4.8.tar.xz # Locally calculated sha256 e79e9c8a0c85d735ff98185918ec94ed7d175efc377012787aebcf3b80f0d90b COPYING ================================================ FILE: package/sed/sed.mk ================================================ ################################################################################ # # sed # ################################################################################ SED_VERSION = 4.8 SED_SOURCE = sed-$(SED_VERSION).tar.xz SED_SITE = $(BR2_GNU_MIRROR)/sed SED_LICENSE = GPL-3.0 SED_LICENSE_FILES = COPYING SED_CPE_ID_VENDOR = gnu SED_CONF_OPTS = \ --bindir=/bin \ --libdir=/lib \ --libexecdir=/usr/lib \ --sysconfdir=/etc \ --datadir=/usr/share \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --include=$(STAGING_DIR)/usr/include $(eval $(autotools-package)) ================================================ FILE: package/sedutil/0001-Common-log.h-time-2-needs-time.h.patch ================================================ From a7a48e1cda997afbfcdd985c594c3ec0516b6279 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Tue, 25 Sep 2018 22:49:58 +0200 Subject: [PATCH] Common/log.h: time(2) needs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise the build fails with: In file included from ./linux/os.h:28:0, from Common/DtaOptions.cpp:20: ./Common/log.h: In function ‘std::__cxx11::string NowTime()’: ./Common/log.h:349:12: error: ‘time’ was not declared in this scope time(&t); Upstream-status: https://github.com/Drive-Trust-Alliance/sedutil/pull/250 Signed-off-by: Peter Korsgaard --- Common/log.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Common/log.h b/Common/log.h index 8c08c40..2b718ad 100644 --- a/Common/log.h +++ b/Common/log.h @@ -341,6 +341,7 @@ inline std::string NowTime() { #else +#include #include inline std::string NowTime() { -- 2.11.0 ================================================ FILE: package/sedutil/Config.in ================================================ config BR2_PACKAGE_SEDUTIL_ARCH_SUPPORTS bool # no big endian support default y if BR2_arcle || BR2_arm || BR2_aarch64 || BR2_csky \ || BR2_i386 || BR2_microblazeel || BR2_mipsel \ || BR2_mips64el || BR2_nios2 || BR2_powerpc64le \ || BR2_sh4 || BR2_sh4a || BR2_x86_64 \ || BR2_XTENSA_LITTLE_ENDIAN config BR2_PACKAGE_SEDUTIL bool "sedutil" depends on BR2_PACKAGE_SEDUTIL_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 # linux/nvme.h depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS # 4.4.1 headers depends on BR2_INSTALL_LIBSTDCPP help The Drive Trust Alliance Self Encrypting Drive Utility, allowing configuration the SEDs that comply with the TCG OPAL 2.00 standard. https://github.com/Drive-Trust-Alliance/sedutil comment "sedutil needs a toolchain w/ C++, gcc >= 4.8, headers >= 3.12" depends on BR2_PACKAGE_SEDUTIL_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 ================================================ FILE: package/sedutil/sedutil.hash ================================================ # Locally calculated sha256 9259466b4f73af276153c5245834a56f48f8721ea7263611b5d5e8326bc43d9e sedutil-1.15.1.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 Common/LICENSE.txt ================================================ FILE: package/sedutil/sedutil.mk ================================================ ################################################################################ # # sedutil # ################################################################################ SEDUTIL_VERSION = 1.15.1 SEDUTIL_SITE = $(call github,Drive-Trust-Alliance,sedutil,$(SEDUTIL_VERSION)) SEDUTIL_LICENSE = GPL-3.0+ SEDUTIL_LICENSE_FILES = Common/LICENSE.txt # Fetched from Github with no configure script SEDUTIL_AUTORECONF = YES # Calls git to figure out version info define SEDUTIL_SET_VERSION echo '#define GIT_VERSION "$(SEDUTIL_VERSION)"' > $(@D)/linux/Version.h endef SEDUTIL_POST_CONFIGURE_HOOKS += SEDUTIL_SET_VERSION $(eval $(autotools-package)) ================================================ FILE: package/selinux-python/Config.in ================================================ config BR2_PACKAGE_SELINUX_PYTHON bool "selinux-python" depends on !BR2_PACKAGE_PYTHON depends on BR2_USE_MMU depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PYTHON3 help A set of SELinux tools written in python that help with managing a system with SELinux enabled. If no packages are selected nothing will actually be built. https://github.com/SELinuxProject/selinux/wiki if BR2_PACKAGE_SELINUX_PYTHON config BR2_PACKAGE_SELINUX_PYTHON_AUDIT2ALLOW bool "audit2allow" select BR2_PACKAGE_CHECKPOLICY select BR2_PACKAGE_SELINUX_PYTHON_SEPOLGEN select BR2_PACKAGE_SEMODULE_UTILS help This module installs two programs: audit2allow - Generate SELinux policy allow/dontaudit rules from logs of denied operations. audit2why - translates SELinux audit messages into a description of why the access was denied (audit2allow -w) config BR2_PACKAGE_SELINUX_PYTHON_SEPOLGEN bool "sepolgen" select BR2_PACKAGE_SEMODULE_UTILS help This package contains a Python module that allows you to generate an initial SELinux policy module template. endif comment "selinux-python needs python3" depends on BR2_USE_MMU depends on BR2_PACKAGE_PYTHON comment "selinux-python packages 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 ================================================ FILE: package/selinux-python/selinux-python.hash ================================================ # https://github.com/SELinuxProject/selinux/wiki/Releases sha256 770855ea8120ef23007fdb9db94b1ed6e8cd77917b584ed8877bbee9c16e74fb selinux-python-3.2.tar.gz # Hash for license file sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/selinux-python/selinux-python.mk ================================================ ################################################################################ # # selinux-python # ################################################################################ SELINUX_PYTHON_VERSION = 3.2 SELINUX_PYTHON_SITE = https://github.com/SELinuxProject/selinux/releases/download/$(SELINUX_PYTHON_VERSION) SELINUX_PYTHON_LICENSE = GPL-2.0 SELINUX_PYTHON_LICENSE_FILES = COPYING SELINUX_PYTHON_DEPENDENCIES = python3 SELINUX_PYTHON_MAKE_OPTS += \ $(TARGET_CONFIGURE_OPTS) \ ARCH="$(BR2_ARCH)" \ LIBDIR="$(STAGING_DIR)/usr/lib" \ PYTHONLIBDIR="usr/lib/python$(PYTHON3_VERSION_MAJOR)" ifeq ($(BR2_PACKAGE_SELINUX_PYTHON_AUDIT2ALLOW),y) SELINUX_PYTHON_DEPENDENCIES += checkpolicy SELINUX_PYTHON_MAKE_DIRS += audit2allow endif ifeq ($(BR2_PACKAGE_SELINUX_PYTHON_SEPOLGEN),y) SELINUX_PYTHON_MAKE_DIRS += sepolgen/src/sepolgen endif define SELINUX_PYTHON_BUILD_CMDS $(foreach d,$(SELINUX_PYTHON_MAKE_DIRS), $(MAKE) -C $(@D)/$(d) $(SELINUX_PYTHON_MAKE_OPTS) \ all ) endef define SELINUX_PYTHON_INSTALL_TARGET_CMDS $(foreach d,$(SELINUX_PYTHON_MAKE_DIRS), $(MAKE) -C $(@D)/$(d) $(SELINUX_PYTHON_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) install ) endef $(eval $(generic-package)) ================================================ FILE: package/semodule-utils/Config.in ================================================ config BR2_PACKAGE_SEMODULE_UTILS bool "semodule-utils" depends on BR2_TOOLCHAIN_HAS_THREADS # libsepol select BR2_PACKAGE_LIBSEPOL help semodule-utils is a package that contains tools for handling selinux modules. The package will install the following utilities: * semodule_deps - Show the dependencies between SELinux policy packages. * semodule_expand - Expand a SELinux policy module package. * semodule_link - Link SELinux policy module packages together * semodule_package - Create a SELinux policy module package. https://github.com/SELinuxProject/selinux/wiki/Releases comment "semodule-utils needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/semodule-utils/semodule-utils.hash ================================================ # https://github.com/SELinuxProject/selinux/wiki/Releases sha256 be155654883c8dc4d05493e04a3eb9e56d28803009f1fdd721d42c68b878f757 semodule-utils-3.2.tar.gz # Hash for license file sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/semodule-utils/semodule-utils.mk ================================================ ################################################################################ # # semodule-utils # ################################################################################ SEMODULE_UTILS_VERSION = 3.2 SEMODULE_UTILS_SITE = https://github.com/SELinuxProject/selinux/releases/download/$(SEMODULE_UTILS_VERSION) SEMODULE_UTILS_LICENSE = GPL-2.0 SEMODULE_UTILS_LICENSE_FILES = COPYING SEMODULE_UTILS_DEPENDENCIES = libsepol SEMODULE_UTILS_MAKE_OPTS += \ $(TARGET_CONFIGURE_OPTS) \ LIBSEPOLA=$(STAGING_DIR)/usr/lib/libsepol.a # We need to pass DESTDIR at build time because it's used by # semodule-utils build system to find headers and libraries. define SEMODULE_UTILS_BUILD_CMDS $(MAKE) -C $(@D) $(SEMODULE_UTILS_MAKE_OPTS) DESTDIR=$(STAGING_DIR) all endef define SEMODULE_UTILS_INSTALL_TARGET_CMDS $(MAKE) -C $(@D) $(SEMODULE_UTILS_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/semver-sort/Config.in ================================================ config BR2_PACKAGE_SEMVER_SORT bool "semver-sort" ================================================ FILE: package/semver-sort/semver-sort.mk ================================================ ################################################################################ # # semver-sort # ################################################################################ SEMVER_SORT_VERSION = 1.1.0 SEMVER_SORT_SITE = $(call github,ccrisan,semver-sort,version-$(SEMVER_SORT_VERSION)) SEMVER_SORT_LICENSE = MIT define SEMVER_SORT_BUILD_CMDS make CC="$(TARGET_CC)" -C "$(@D)" semver-sort endef define SEMVER_SORT_INSTALL_TARGET_CMDS cp $(@D)/semver-sort $(TARGET_DIR)/usr/bin/ endef $(eval $(generic-package)) ================================================ FILE: package/sentry-native/0001-sentry.h-include-ucontext.h.patch ================================================ From 6a3b7b28f34c91c72d8b849903d93de2997b82f1 Mon Sep 17 00:00:00 2001 From: Joseph Kogut Date: Tue, 8 Sep 2020 11:40:01 -0700 Subject: [PATCH] sentry.h: include ucontext.h This is included by signal.h in newer versions of glibc, but results in an unknown type name error in older versions. Signed-off-by: Joseph Kogut --- include/sentry.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/sentry.h b/include/sentry.h index 25754d9..a55cc00 100644 --- a/include/sentry.h +++ b/include/sentry.h @@ -78,6 +78,7 @@ extern "C" { # include #else # include +# include #endif /** -- 2.28.0 ================================================ FILE: package/sentry-native/Config.in ================================================ config BR2_PACKAGE_SENTRY_NATIVE bool "sentry-native" depends on BR2_INSTALL_LIBSTDCPP # google-breakpad depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # google-breakpad depends on BR2_USE_WCHAR # google-breakpad depends on BR2_TOOLCHAIN_HAS_THREADS # google-breakpad # google-breakpad is restricted to glibc or uClibc, but # sentry-native needs , so it restricts further to # just glibc. depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS # google-breakpad depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS # google-breakpad select BR2_PACKAGE_GOOGLE_BREAKPAD select BR2_PACKAGE_LIBCURL help The Sentry Native SDK is an error and crash reporting client for native applications, optimized for C and C++. https://github.com/getsentry/sentry-native comment "sentry-native needs a glibc toolchain with w/ wchar, thread, C++, gcc >= 4.8" depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/sentry-native/sentry-native.hash ================================================ # locally calculated sha256 a7d04fe9b9175c30a58ce20ae23b510595045a66884a447dd21ff2d0c749751b sentry-native-0.4.1.tar.gz sha256 5ef07a3d95f1f779c1597c0fbaecbb7ba242128ff0587ed1e3214c7ac6154523 LICENSE ================================================ FILE: package/sentry-native/sentry-native.mk ================================================ ################################################################################ # # sentry-native # ################################################################################ SENTRY_NATIVE_VERSION = 0.4.1 SENTRY_NATIVE_SITE = $(call github,getsentry,sentry-native,$(SENTRY_NATIVE_VERSION)) SENTRY_NATIVE_LICENSE = MIT SENTRY_NATIVE_LICENSE_FILES = LICENSE SENTRY_NATIVE_DEPENDENCIES = libcurl google-breakpad SENTRY_NATIVE_INSTALL_STAGING = YES # Use the built system breakpad client instead of bundling SENTRY_NATIVE_CONF_OPTS += -DSENTRY_BREAKPAD_SYSTEM=ON $(eval $(cmake-package)) ================================================ FILE: package/ser2net/Config.in ================================================ config BR2_PACKAGE_SER2NET bool "ser2net" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_GENSIO select BR2_PACKAGE_LIBYAML help Ser2net provides a way for a user to connect from a network connection to a serial port. http://ser2net.sourceforge.net ================================================ FILE: package/ser2net/S50ser2net ================================================ #!/bin/sh # # Startup script for ser2net # start() { printf "Starting ser2net: " if [ ! -f /etc/ser2net.conf ] && [ ! -f /etc/ser2net/ser2net.yaml ] ; 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 $? ================================================ FILE: package/ser2net/ser2net.hash ================================================ # From https://sourceforge.net/projects/ser2net/files/ser2net/ md5 e6d88a440852e28b8e2978003b00e154 ser2net-4.3.4.tar.gz sha1 74d02c19c2eef219b59a47fbc61b4fb09cf608d3 ser2net-4.3.4.tar.gz # Locally computed: sha256 c714d6777849100b2ca3f216d1cfc36d4573639ececc91d5c7809dfe27c8428e ser2net-4.3.4.tar.gz sha256 501f3108e6c03e5a0a5585ebaaa369171aead5319cd0a7a4dc1f66211c1f09f1 COPYING ================================================ FILE: package/ser2net/ser2net.mk ================================================ ################################################################################ # # ser2net # ################################################################################ SER2NET_VERSION = 4.3.4 SER2NET_SITE = https://downloads.sourceforge.net/project/ser2net/ser2net SER2NET_LICENSE = GPL-2.0+ SER2NET_LICENSE_FILES = COPYING SER2NET_DEPENDENCIES = gensio libyaml ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) SER2NET_CONF_OPTS += --with-pthreads else SER2NET_CONF_OPTS += --without-pthreads endif # fix gensio detection with openssl enabled ifeq ($(BR2_PACKAGE_OPENSSL),y) SER2NET_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs openssl`" endif define SER2NET_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/ser2net/S50ser2net \ $(TARGET_DIR)/etc/init.d/S50ser2net endef $(eval $(autotools-package)) ================================================ FILE: package/setools/0001-Do-not-export-use-setools.InfoFlowAnalysis-and-setoo.patch ================================================ From ae84e5ef59bb24d5b8fd17e6756952f42c2d5c36 Mon Sep 17 00:00:00 2001 From: rpm-build Date: Thu, 23 Feb 2017 08:17:07 +0100 Subject: [PATCH] Do not export/use setools.InfoFlowAnalysis and setools.DomainTransitionAnalysis dta and infoflow modules require networkx which brings lot of dependencies. These dependencies are not necessary for setools module itself as it's used in policycoreutils. Therefore it's better to use setools.infoflow.InfoFlowAnalysis and setools.dta.DomainTransitionAnalysis and let the package containing sedta and seinfoflow to require python3-networkx Signed-off-by: Antoine Tenart [Refreshed for 4.3.0] Signed-off-by: Adam Duskett [Refreshed for 4.4.0] --- sedta | 3 ++- seinfoflow | 5 +++-- setools/__init__.py | 4 ++-- setoolsgui/apol/dta.py | 2 +- setoolsgui/apol/infoflow.py | 2 +- tests/dta.py | 2 +- tests/infoflow.py | 2 +- 7 files changed, 11 insertions(+), 9 deletions(-) diff --git a/sedta b/sedta index 60861ca630a5..0056172a55e5 100755 --- a/sedta +++ b/sedta @@ -23,6 +23,7 @@ import logging import signal import setools +import setools.dta def print_transition(trans: setools.DomainTransition) -> None: @@ -114,7 +115,7 @@ else: try: p = setools.SELinuxPolicy(args.policy) - g = setools.DomainTransitionAnalysis(p, reverse=args.reverse, exclude=args.exclude) + g = setools.dta.DomainTransitionAnalysis(p, reverse=args.reverse, exclude=args.exclude) if args.shortest_path or args.all_paths: if args.shortest_path: diff --git a/seinfoflow b/seinfoflow index f10c39de4d8e..fe733bbd0787 100755 --- a/seinfoflow +++ b/seinfoflow @@ -18,6 +18,7 @@ # import setools +import setools.infoflow import argparse import sys import logging @@ -102,8 +103,8 @@ elif args.booleans is not None: try: p = setools.SELinuxPolicy(args.policy) m = setools.PermissionMap(args.map) - g = setools.InfoFlowAnalysis(p, m, min_weight=args.min_weight, exclude=args.exclude, - booleans=booleans) + g = setools.infoflow.InfoFlowAnalysis(p, m, min_weight=args.min_weight, exclude=args.exclude, + booleans=booleans) if args.shortest_path or args.all_paths: if args.shortest_path: diff --git a/setools/__init__.py b/setools/__init__.py index d72d343..4d5aaaa 100644 --- a/setools/__init__.py +++ b/setools/__init__.py @@ -91,11 +91,11 @@ from .pcideviceconquery import PcideviceconQuery from .devicetreeconquery import DevicetreeconQuery # Information Flow Analysis -from .infoflow import InfoFlowAnalysis +# from .infoflow import InfoFlowAnalysis from .permmap import PermissionMap, RuleWeight, Mapping # Domain Transition Analysis -from .dta import DomainTransitionAnalysis, DomainEntrypoint, DomainTransition +# from .dta import DomainTransitionAnalysis, DomainEntrypoint, DomainTransition # Policy difference from .diff import PolicyDifference diff --git a/setoolsgui/apol/dta.py b/setoolsgui/apol/dta.py index 4608b9dbf34e..2cde44c142e9 100644 --- a/setoolsgui/apol/dta.py +++ b/setoolsgui/apol/dta.py @@ -24,7 +24,7 @@ from PyQt5.QtCore import pyqtSignal, Qt, QStringListModel, QThread from PyQt5.QtGui import QPalette, QTextCursor from PyQt5.QtWidgets import QCompleter, QHeaderView, QMessageBox, QProgressDialog, \ QTreeWidgetItem -from setools import DomainTransitionAnalysis +from setools.dta import DomainTransitionAnalysis from ..logtosignal import LogHandlerToSignal from .analysistab import AnalysisSection, AnalysisTab diff --git a/setoolsgui/apol/infoflow.py b/setoolsgui/apol/infoflow.py index 7bca299d23fc..7fee2778f35f 100644 --- a/setoolsgui/apol/infoflow.py +++ b/setoolsgui/apol/infoflow.py @@ -26,7 +26,7 @@ from PyQt5.QtCore import pyqtSignal, Qt, QStringListModel, QThread from PyQt5.QtGui import QPalette, QTextCursor from PyQt5.QtWidgets import QCompleter, QHeaderView, QMessageBox, QProgressDialog, \ QTreeWidgetItem -from setools import InfoFlowAnalysis +from setools.infoflow import InfoFlowAnalysis from setools.exception import UnmappedClass, UnmappedPermission from ..logtosignal import LogHandlerToSignal diff --git a/tests/dta.py b/tests/dta.py index a0cc9381469c..177e6fb0b961 100644 --- a/tests/dta.py +++ b/tests/dta.py @@ -18,7 +18,7 @@ import os import unittest -from setools import DomainTransitionAnalysis +from setools.dta import DomainTransitionAnalysis from setools import TERuletype as TERT from setools.exception import InvalidType from setools.policyrep import Type diff --git a/tests/infoflow.py b/tests/infoflow.py index aa0e44a7e4f8..fca2848aeca5 100644 --- a/tests/infoflow.py +++ b/tests/infoflow.py @@ -18,7 +18,7 @@ import os import unittest -from setools import InfoFlowAnalysis +from setools.infoflow import InfoFlowAnalysis from setools import TERuletype as TERT from setools.exception import InvalidType from setools.permmap import PermissionMap -- 2.26.2 ================================================ FILE: package/setools/Config.in ================================================ config BR2_PACKAGE_SETOOLS bool "setools" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR depends on BR2_USE_MMU depends on BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_NETWORKX # runtime select BR2_PACKAGE_PYTHON_SETUPTOOLS select BR2_PACKAGE_LIBSELINUX help SETools is an open source project designed to facilitate SELinux policy analysis. The primary tools are: * apol - analyze a SELinux policy. (requires python-qt5) * sediff - semantic policy difference tool for SELinux. * sedta - Perform domain transition analyses * seinfoflow - information flow analysis for SELinux * sesearch - Search rules (allow, type_transition, etc.) https://github.com/SELinuxProject/setools/ comment "setools needs a toolchain w/ threads, wchar, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_USE_WCHAR comment "setools needs python3" depends on BR2_USE_MMU depends on !BR2_PACKAGE_PYTHON3 ================================================ FILE: package/setools/setools.hash ================================================ # Locally computed sha256 202eac5f857475937bee8136cff278aa2b4a4b94a0dec63fbbbe18c9eb644a4e setools-4.4.0.tar.gz sha256 2f7547e10f76a382c24c053595f38a5cc6dda9347f508f254ca490e0046a9624 COPYING sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING.GPL sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPL ================================================ FILE: package/setools/setools.mk ================================================ ################################################################################ # # setools # ################################################################################ SETOOLS_VERSION = 4.4.0 SETOOLS_SITE = $(call github,SELinuxProject,setools,$(SETOOLS_VERSION)) SETOOLS_DEPENDENCIES = libselinux libsepol python-setuptools host-bison host-flex host-python-cython host-swig SETOOLS_INSTALL_STAGING = YES SETOOLS_LICENSE = GPL-2.0+, LGPL-2.1+ SETOOLS_LICENSE_FILES = COPYING COPYING.GPL COPYING.LGPL SETOOLS_CPE_ID_VENDOR = selinuxproject SETOOLS_SETUP_TYPE = setuptools HOST_SETOOLS_DEPENDENCIES = host-python3-cython host-libselinux host-libsepol host-python-networkx HOST_SETOOLS_NEEDS_HOST_PYTHON = python3 define SETOOLS_FIX_SETUP # By default, setup.py will look for libsepol.a in the host machines # /usr/lib directory. This needs to be changed to the staging directory. $(SED) "s@lib_dirs =.*@lib_dirs = ['$(STAGING_DIR)/usr/lib']@g" \ $(@D)/setup.py endef SETOOLS_POST_PATCH_HOOKS += SETOOLS_FIX_SETUP define HOST_SETOOLS_FIX_SETUP # By default, setup.py will look for libsepol.a in the host machines # /usr/lib directory. This needs to be changed to the host directory. $(SED) "s@lib_dirs =.*@lib_dirs = ['$(HOST_DIR)/lib']@g" \ $(@D)/setup.py endef HOST_SETOOLS_POST_PATCH_HOOKS += HOST_SETOOLS_FIX_SETUP # apol requires pyqt5. However, the setools installation # process will install apol even if pyqt5 is missing. # Remove these scripts from the target it pyqt5 is not selected. ifeq ($(BR2_PACKAGE_PYTHON_PYQT5),) define SETOOLS_REMOVE_QT_SCRIPTS $(RM) $(TARGET_DIR)/usr/bin/apol $(RM) -r $(TARGET_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/setoolsgui/ endef SETOOLS_POST_INSTALL_TARGET_HOOKS += SETOOLS_REMOVE_QT_SCRIPTS endif # pyqt5 is not a host-package, remove apol from the host directory. define HOST_SETOOLS_REMOVE_BROKEN_SCRIPTS $(RM) $(HOST_DIR)/bin/apol endef HOST_SETOOLS_POST_INSTALL_HOOKS += HOST_SETOOLS_REMOVE_BROKEN_SCRIPTS $(eval $(python-package)) $(eval $(host-python-package)) ================================================ FILE: package/setserial/0001-build-system-fix.patch ================================================ Install the setserial program in /usr/bin instead of /bin, and make sure that the directories (especially the manpages directory) are created before installing files to them. This is similar to what automake does. Signed-off-by: Thomas Petazzoni --- Makefile.in | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) Index: setserial-2.17/Makefile.in =================================================================== --- setserial-2.17.orig/Makefile.in +++ setserial-2.17/Makefile.in @@ -26,9 +26,10 @@ setserial.cat: setserial.8 nroff -man setserial.8 > setserial.cat install: setserial setserial.8 - $(INSTALL_PROGRAM) setserial $(DESTDIR)/bin - $(STRIP) $(DESTDIR)/bin/setserial - $(INSTALL_DATA) setserial.8 $(DESTDIR)/usr/man/man8 + mkdir -p $(DESTDIR)/usr/bin + $(INSTALL_PROGRAM) setserial $(DESTDIR)/usr/bin + mkdir -p $(DESTDIR)/usr/share/man/man8 + $(INSTALL_DATA) setserial.8 $(DESTDIR)/usr/share/man/man8 clean: $(RM) setserial setserial.o setserial.cat *~ ================================================ FILE: package/setserial/0002-tiocghayesesp-build-fix.patch ================================================ [PATCH] setserial: fix build with 2.6.33+ kernel headers linux/hayesesp.h got removed in 2.6.33, but some archs (like x86) still define the TIOCGHAYESESP ioctl, breaking the build. It's very unlikely to be of interest anymore, so just undef it. Signed-off-by: Peter Korsgaard --- setserial.c | 5 +++++ 1 file changed, 5 insertions(+) Index: setserial-2.17/setserial.c =================================================================== --- setserial-2.17.orig/setserial.c +++ setserial-2.17/setserial.c @@ -24,6 +24,11 @@ #endif #include +/* linux/hayesesp.h got removed in 2.6.33 but some archs (like x86) + still define TIOCGHAYESESP. It's very unlikely to be of interest + anymore, so just undef it */ +#undef TIOCGHAYESESP + #include "version.h" static char version_str[] = "setserial version " SETSERIAL_VERSION ", " ================================================ FILE: package/setserial/Config.in ================================================ config BR2_PACKAGE_SETSERIAL bool "setserial" # Uses fork() depends on BR2_USE_MMU help Setserial : configuration of serial ports http://setserial.sourceforge.net/ ================================================ FILE: package/setserial/setserial.hash ================================================ # From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/s/setserial/setserial_2.17-45.3.dsc sha256 7e4487d320ac31558563424189435d396ddf77953bb23111a17a3d1487b5794a setserial_2.17.orig.tar.gz sha256 33db87e8a86cf12b7c97efca9e056865e71358e8cfeb3931118b2647ce1eecc6 setserial_2.17-45.3.diff.gz # Locally computed sha256 1d7e810ed28daf370def626dfd4c502f2f77d2b678f1ac72e2ba675dd6f9af0d debian/copyright ================================================ FILE: package/setserial/setserial.mk ================================================ ################################################################################ # # setserial # ################################################################################ SETSERIAL_VERSION = 2.17 SETSERIAL_PATCH = setserial_2.17-45.3.diff.gz SETSERIAL_SOURCE = setserial_$(SETSERIAL_VERSION).orig.tar.gz SETSERIAL_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/s/setserial SETSERIAL_LICENSE = GPL-2.0 SETSERIAL_LICENSE_FILES = debian/copyright # make all also builds setserial.cat which needs nroff SETSERIAL_MAKE_OPTS = setserial define SETSERIAL_APPLY_DEBIAN_PATCHES # Touching gorhack.h is needed for the Debian patch 18 to work if [ -d $(@D)/debian/patches ]; then \ touch $(@D)/gorhack.h; \ rm $(@D)/debian/patches/01_makefile.dpatch; \ $(APPLY_PATCHES) $(@D) $(@D)/debian/patches *.dpatch; \ fi endef SETSERIAL_POST_PATCH_HOOKS += SETSERIAL_APPLY_DEBIAN_PATCHES $(eval $(autotools-package)) ================================================ FILE: package/sg3_utils/0001-src-sg_dd.c-fix-musl-build.patch ================================================ From c93ad13ecd8ddfbb8bb3e4d5d5ad7f3f2c633db6 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 14 Nov 2021 12:37:16 +0100 Subject: [PATCH] src/sg_dd.c: fix musl build Fix the following build failure on musl raised since version 1.47 and https://github.com/doug-gilbert/sg3_utils/commit/f0195003bb0c66ba55084b2f7e0fe982f08c5675: sg_dd.c: In function 'main': sg_dd.c:2402:17: error: unknown type name 'uint'; did you mean 'int'? 2402 | uint off; | ^~~~ | int Fixes: - http://autobuild.buildroot.org/results/9ead59ffefefe2a4e3b94a153b3d23231736d882 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/doug-gilbert/sg3_utils/pull/7] --- src/sg_dd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sg_dd.c b/src/sg_dd.c index 9d05c93..35e2423 100644 --- a/src/sg_dd.c +++ b/src/sg_dd.c @@ -2399,7 +2399,7 @@ main(int argc, char * argv[]) res = blocks * blk_sz; if (iflag.zero && iflag.ff && (blk_sz >= 4)) { uint32_t pos = (uint32_t)skip; - uint off; + uint32_t off; for (k = 0, off = 0; k < blocks; ++k, off += blk_sz, ++pos) { for (j = 0; j < (blk_sz - 3); j += 4) -- 2.33.0 ================================================ FILE: package/sg3_utils/0002-configure.ac-fix-uclibc-ng-build.patch ================================================ From 1e95d5b8c507a49f6d15d2795dc46d82b4d1ded0 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 16 Nov 2021 08:41:48 +0100 Subject: [PATCH] configure.ac: fix uclibc-ng build Fix the following build failure with uclibc-ng raised because SG_IO is not defined: /home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: sg_dd.o: in function `sg_read_low.constprop.0': sg_dd.c:(.text+0xc6c): undefined reference to `sg_chk_n_print3' Fixes: - http://autobuild.buildroot.org/results/38a0dfc70a21ce574368b7a485deb231f778b3e7 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/doug-gilbert/sg3_utils/pull/8] --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 0a65d94..23378ad 100644 --- a/configure.ac +++ b/configure.ac @@ -107,7 +107,7 @@ case "${host}" in AC_DEFINE_UNQUOTED(HAVE_NVME, 1, [Found NVMe]) check_for_getrandom CFLAGS="$CFLAGS -D__USE_MINGW_ANSI_STDIO";; - *-*-linux-gnu* | *-*-linux*) + *-*-linux-gnu* | *-*-linux* | *-*-uclinux-gnu* | *-*-uclinux*) AC_DEFINE_UNQUOTED(SG_LIB_LINUX, 1, [sg3_utils on linux]) check_for_linux_sg_v4_hdr check_for_getrandom -- 2.33.0 ================================================ FILE: package/sg3_utils/Config.in ================================================ config BR2_PACKAGE_SG3_UTILS bool "sg3-utils" depends on BR2_TOOLCHAIN_HAS_THREADS help Low level utilities for devices that use a SCSI command set. This option install only libsgutils2 library not programs. http://sg.danny.cz/sg/sg3_utils.html if BR2_PACKAGE_SG3_UTILS config BR2_PACKAGE_SG3_UTILS_PROGS bool "install programs" endif comment "sg3-utils needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/sg3_utils/sg3_utils.hash ================================================ # Locally calculated from download (no sig, hash) sha256 ddb0cab85fedd8b0db020f3e3f02f6967a055616bf16ea9d5c7408cde41472b2 sg3_utils-1.47.tar.xz # Hash for license files sha256 d212debdb0a5d7754c977f6dc53bb6c88b4ace7ab784ddbccd06bb970adb1a37 COPYING sha256 8ddd1d82f2be2f5cbd5b5c3b5c2ee94a90d2ca7112958448da74dd78384fd96a BSD_LICENSE ================================================ FILE: package/sg3_utils/sg3_utils.mk ================================================ ################################################################################ # # sg3_utils # ################################################################################ SG3_UTILS_VERSION = 1.47 SG3_UTILS_SOURCE = sg3_utils-$(SG3_UTILS_VERSION).tar.xz SG3_UTILS_SITE = http://sg.danny.cz/sg/p SG3_UTILS_LICENSE = BSD-2-Clause (library) # Some utils progs are GPL-2.0+ licensed while others are BSD-3-Clause ifeq ($(BR2_PACKAGE_SG3_UTILS_PROGS),y) SG3_UTILS_LICENSE += , GPL-2.0+ (programs), BSD-2-Clause (programs) endif SG3_UTILS_LICENSE_FILES = COPYING BSD_LICENSE # We're patching configure.ac SG3_UTILS_AUTORECONF = YES # install the libsgutils2 library SG3_UTILS_INSTALL_STAGING = YES # Uses __atomic_fetch_add_4 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) SG3_UTILS_CONF_ENV += LIBS="-latomic" endif ifeq ($(BR2_PACKAGE_SG3_UTILS_PROGS),) define SG3_UTILS_REMOVE_PROGS for prog in \ compare_and_write copy_results dd decode_sense \ emc_trespass format get_config \ 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_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 \ 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 \ logging_level mandat readcap ready satl start stop \ temperature; do \ $(RM) $(TARGET_DIR)/usr/bin/scsi_$${prog} ; \ done for prog in \ sginfo sgm_dd sgp_dd; do \ $(RM) $(TARGET_DIR)/usr/bin/$${prog}; \ done endef SG3_UTILS_POST_INSTALL_TARGET_HOOKS += SG3_UTILS_REMOVE_PROGS endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/shadowsocks-libev/0001-configure.ac-use-pkg-config-to-find-netfilter_conntr.patch ================================================ From b3c61360a93b7f08fc9c33526056211408301ea9 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 23 Nov 2020 21:16:38 +0100 Subject: [PATCH] configure.ac: use pkg-config to find netfilter_conntrack Use pkg-config to retrieve the dependencies of netfilter_conntrack and avoid the following build failure when building statically: configure:13096: /data/buildroot-test/instance-1/output-1/host/bin/x86_64-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -static -I/data/buildroot-test/instance-1/output-1/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include -DPCRE_STATIC -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -L/data/buildroot-test/instance-1/output-1/host/x86_64-buildroot-linux-uclibc/sysroot/usr/lib conftest.c -lnetfilter_conntrack -lnfnetlink -lev -lcares -lsodium -lmbedcrypto -lpcre >&5 /data/buildroot-test/instance-1/output-1/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-uclibc/8.3.0/../../../../x86_64-buildroot-linux-uclibc/bin/ld: /data/buildroot-test/instance-1/output-1/host/x86_64-buildroot-linux-uclibc/sysroot/usr/lib/libnetfilter_conntrack.a(api.o): in function `nfct_fill_hdr.constprop.4': api.c:(.text+0x3f): undefined reference to `mnl_nlmsg_put_header' Fixes: - http://autobuild.buildroot.org/results/6cad497a7ab941a0ee3fd7007defc81e30cdcbe0 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/shadowsocks/shadowsocks-libev/pull/2773] --- configure.ac | 5 +++-- src/Makefile.am | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 9787bc2..207c041 100755 --- a/configure.ac +++ b/configure.ac @@ -252,7 +252,8 @@ AC_ARG_ENABLE(connmarktos, if test x"$enable_connmarktos" = "xyes" ; then AC_MSG_NOTICE([Linux Netfilter Conntrack support requested by --enable-connmarktos: ${enable_connmarktos}]) if test "x$enable_connmarktos" != "xno"; then - AC_SEARCH_LIBS([nfct_query], [netfilter_conntrack],,[ + PKG_CHECK_MODULES([NETFILTER_CONNTRACK], [libnetfilter_conntrack],, + [AC_SEARCH_LIBS([nfct_query], [netfilter_conntrack],,[ if test x"$enable_connmarktos" = "xyes"; then AC_MSG_ERROR([--enable-connmarktos specified but libnetfilter-conntrack library not found]) fi @@ -262,7 +263,7 @@ if test x"$enable_connmarktos" = "xyes" ; then if test x"$enable_connmarktos" = "xyes"; then AC_MSG_ERROR([--enable-connmarktos specified but libnetfilter-conntrack headers not found]) fi - with_netfilter_conntrack=no]) + with_netfilter_conntrack=no])]) # If nothing is broken; enable the libraries usage. if test "x$with_netfilter_conntrack" != "xno"; then with_netfilter_conntrack=yes diff --git a/src/Makefile.am b/src/Makefile.am index c261ed0..b81ced7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -9,7 +9,7 @@ AM_CFLAGS += -I$(top_srcdir)/libcork/include endif AM_CFLAGS += $(LIBPCRE_CFLAGS) -SS_COMMON_LIBS = $(INET_NTOP_LIB) $(LIBPCRE_LIBS) +SS_COMMON_LIBS = $(INET_NTOP_LIB) $(LIBPCRE_LIBS) $(NETFILTER_CONNTRACK_LIBS) if !USE_SYSTEM_SHARED_LIB SS_COMMON_LIBS += $(top_builddir)/libbloom/libbloom.la \ $(top_builddir)/libipset/libipset.la \ -- 2.29.2 ================================================ FILE: package/shadowsocks-libev/Config.in ================================================ config BR2_PACKAGE_SHADOWSOCKS_LIBEV bool "shadowsocks-libev" depends on BR2_TOOLCHAIN_HAS_SYNC_4 # for libcork depends on BR2_TOOLCHAIN_HAS_SYNC_8 || !BR2_ARCH_IS_64 # for libcork depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_C_ARES select BR2_PACKAGE_LIBEV select BR2_PACKAGE_LIBSODIUM select BR2_PACKAGE_MBEDTLS select BR2_PACKAGE_PCRE help Shadowsocks-libev is a lightweight secured SOCKS5 proxy for embedded devices and low-end boxes. https://github.com/shadowsocks/shadowsocks-libev config BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS bool "connmarktos support in ss-server" depends on BR2_PACKAGE_SHADOWSOCKS_LIBEV select BR2_PACKAGE_LIBNETFILTER_CONNTRACK help Build ss-server with the connmark to TOS feature. This feature requires advanced tc, iptables and conntrack rules to perform QoS on the server side. If unsure, don't enable this option comment "shadowsocks-libev needs a toolchain w/ threads" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_TOOLCHAIN_HAS_SYNC_8 || !BR2_ARCH_IS_64 depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/shadowsocks-libev/shadowsocks-libev.hash ================================================ # Locally computed sha256 cfc8eded35360f4b67e18dc447b0c00cddb29cc57a3cec48b135e5fb87433488 shadowsocks-libev-3.3.5.tar.gz # License files, locally calculated sha256 736883f97d44dbec288bb82819f18f4f86d02ae3192f6a9abefa00db76bace41 COPYING sha256 c41a4bc2c4c43e4daa3051e77e31b2d5c8500498afaeac6d831d55a4bb8de3fb libbloom/LICENSE sha256 4fa2ada54f8c0410ec243265378242ffe862386d5ac517f8dd30a1911d25ae93 libcork/COPYING ================================================ FILE: package/shadowsocks-libev/shadowsocks-libev.mk ================================================ ################################################################################ # # shadowsocks-libev # ################################################################################ SHADOWSOCKS_LIBEV_VERSION = 3.3.5 SHADOWSOCKS_LIBEV_SITE = https://github.com/shadowsocks/shadowsocks-libev/releases/download/v$(SHADOWSOCKS_LIBEV_VERSION) SHADOWSOCKS_LIBEV_LICENSE = GPL-3.0+, BSD-2-Clause (libbloom), BSD-3-Clause (libcork, libipset) SHADOWSOCKS_LIBEV_LICENSE_FILES = COPYING libbloom/LICENSE libcork/COPYING SHADOWSOCKS_LIBEV_CPE_ID_VENDOR = shadowsocks SHADOWSOCKS_LIBEV_DEPENDENCIES = host-pkgconf c-ares libev libsodium mbedtls pcre SHADOWSOCKS_LIBEV_INSTALL_STAGING = YES # We're patching configure.ac SHADOWSOCKS_LIBEV_AUTORECONF = YES SHADOWSOCKS_LIBEV_CONF_OPTS = \ --with-pcre=$(STAGING_DIR)/usr \ --disable-ssp ifeq ($(BR2_PACKAGE_SHADOWSOCKS_LIBEV_CONNMARKTOS),y) SHADOWSOCKS_LIBEV_DEPENDENCIES += libnetfilter_conntrack SHADOWSOCKS_LIBEV_CONF_OPTS += --enable-connmarktos else SHADOWSOCKS_LIBEV_CONF_OPTS += --disable-connmarktos endif $(eval $(autotools-package)) ================================================ FILE: package/shairport-sync/0001-configure.ac-find-sndfile-through-pkg-config.patch ================================================ From 900b1827c55cc6020b3242640075174c2e6b12a5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 4 Aug 2021 22:16:40 +0200 Subject: [PATCH] configure.ac: find sndfile through pkg-config Find sndfile through pkg-config to retrieve sndfile dependencies such as flac and avoid the following static build failure: /tmp/instance-3/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/10.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: /tmp/instance-3/output-1/host/bin/../xtensa-buildroot-linux-uclibc/sysroot/usr/lib/libsndfile.a(libsndfile_la-flac.o): in function `flac_byterate': flac.c:(.text+0xfc): undefined reference to `FLAC__StreamDecoderErrorStatusString' Fixes: - http://autobuild.buildroot.org/results/92ed30a6855ca11800b779718822bcba4a69c9a3 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/mikebrady/shairport-sync/pull/1263] --- configure.ac | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index f77087c5..9b982c51 100644 --- a/configure.ac +++ b/configure.ac @@ -304,7 +304,14 @@ AC_ARG_WITH(convolution, [AS_HELP_STRING([--with-convolution],[choose audio DSP if test "x$with_convolution" = "xyes" ; then AM_INIT_AUTOMAKE([subdir-objects]) AC_DEFINE([CONFIG_CONVOLUTION], 1, [Include audio DSP convolution support.]) - AC_CHECK_LIB([sndfile], [sf_open], , AC_MSG_ERROR(Convolution support requires the sndfile library -- libsndfile1-dev suggested!)) + if test "x${with_pkg_config}" = xyes ; then + PKG_CHECK_MODULES( + [sndfile], [sndfile], + [CFLAGS="${sndfile_CFLAGS} ${CFLAGS}" + LIBS="${sndfile_LIBS} ${LIBS}"], AC_MSG_ERROR(Convolution support requires the sndfile library -- libsndfile1-dev suggested!)) + else + AC_CHECK_LIB([sndfile], [sf_open], , AC_MSG_ERROR(Convolution support requires the sndfile library -- libsndfile1-dev suggested!)) + fi fi AM_CONDITIONAL([USE_CONVOLUTION], [test "x$with_convolution" = "xyes"]) -- 2.30.2 ================================================ FILE: package/shairport-sync/0002-configure.ac-fix-build-with-automake-1.16.5.patch ================================================ From ad22edb303a470b6f9eda9fd9d3f588bb2eff8cb Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 15 Oct 2021 08:02:23 +0200 Subject: [PATCH] configure.ac: fix build with automake 1.16.5 Fix the following build failure with convolution raised since automake 1.16.5 and https://git.savannah.gnu.org/cgit/automake.git/commit/?id=f4a3a70f69e1dbccb6578f39ef47835098a04624: configure.ac:305: error: AM_INIT_AUTOMAKE expanded multiple times /home/giuliobenetti/autobuild/run/instance-1/output-1/host/share/aclocal-1.16/init.m4:29: AM_INIT_AUTOMAKE is expanded from... configure.ac:6: the top level /home/giuliobenetti/autobuild/run/instance-1/output-1/host/share/aclocal-1.16/init.m4:29: AM_INIT_AUTOMAKE is expanded from... configure.ac:305: the top level Fixes: - http://autobuild.buildroot.org/results/464148bdccb705d8992dc860262bfdeb01b7e2a1 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/mikebrady/shairport-sync/pull/1314] --- configure.ac | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index f77087c5..aa533a2d 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.50]) AC_INIT([shairport-sync], [3.3.8], [4265913+mikebrady@users.noreply.github.com]) -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([subdir-objects]) AC_CONFIG_SRCDIR([shairport.c]) AC_CONFIG_HEADERS([config.h]) AC_PROG_RANLIB @@ -302,7 +302,6 @@ AM_CONDITIONAL([USE_PA], [test "x$with_pa" = "xyes"]) # Look for Convolution flag AC_ARG_WITH(convolution, [AS_HELP_STRING([--with-convolution],[choose audio DSP convolution support])]) if test "x$with_convolution" = "xyes" ; then - AM_INIT_AUTOMAKE([subdir-objects]) AC_DEFINE([CONFIG_CONVOLUTION], 1, [Include audio DSP convolution support.]) AC_CHECK_LIB([sndfile], [sf_open], , AC_MSG_ERROR(Convolution support requires the sndfile library -- libsndfile1-dev suggested!)) fi -- 2.33.0 ================================================ FILE: package/shairport-sync/Config.in ================================================ config BR2_PACKAGE_SHAIRPORT_SYNC bool "shairport-sync" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_MIXER select BR2_PACKAGE_LIBCONFIG select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_MBEDTLS select BR2_PACKAGE_POPT help Shairport Sync emulates an AirPort Express for the purpose of streaming audio from iTunes, iPods, iPhones, iPads and AppleTVs. Audio played by a Shairport Sync-powered device stays in synchrony with the source and thus with other devices that are playing the same source synchronously. Thus, for example, synchronised multi-room audio is possible without difficulty. https://github.com/mikebrady/shairport-sync if BR2_PACKAGE_SHAIRPORT_SYNC config BR2_PACKAGE_SHAIRPORT_SYNC_CONVOLUTION bool "convolution support" select BR2_PACKAGE_LIBSNDFILE help Enable audio DSP convolution support. config BR2_PACKAGE_SHAIRPORT_SYNC_DBUS bool "dbus support" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 help Enable support for support for the MPRIS and native Shairport Sync D-Bus interface. comment "shairport-sync dbus support needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_SHAIRPORT_SYNC_LIBSOXR bool "libsoxr support" select BR2_PACKAGE_LIBSOXR help Enable support for libsoxr, the SoX Resampler library. Briefly, Shairport Sync keeps in step with the audio source by deleting or inserting frames of audio into the stream as needed. This "interpolation" is normally inaudible, but it can be heard in some circumstances. Libsoxr allows this interpolation to be done much more smoothly and subtly. config BR2_PACKAGE_SHAIRPORT_SYNC_MQTT bool "mqtt support" depends on BR2_USE_MMU # avahi depends on BR2_TOOLCHAIN_HAS_THREADS # avahi depends on !BR2_STATIC_LIBS # avahi select BR2_PACKAGE_AVAHI select BR2_PACKAGE_AVAHI_DAEMON select BR2_PACKAGE_DBUS select BR2_PACKAGE_MOSQUITTO help Enable support for the MQTT, the Message Queuing Telemetry Transport protocol. comment "shairport-sync mqtt support needs a toolchain w/ dynamic library, threads" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS endif comment "shairport-sync needs a toolchain w/ C++, NPTL" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL ================================================ FILE: package/shairport-sync/S99shairport-sync ================================================ #! /bin/sh # Additional options that are passed to Shairport Sync OPTIONS="-d" case "$1" in start) printf "Starting shairport-sync: " start-stop-daemon -S -q --exec /usr/bin/shairport-sync -- $OPTIONS [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping shairport-sync: " start-stop-daemon -K -q --exec /usr/bin/shairport-sync \ -p /var/run/shairport-sync/shairport-sync.pid [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac ================================================ FILE: package/shairport-sync/shairport-sync.hash ================================================ # Locally calculated sha256 c92f9a2d86dd1138673abc66e0010c94412ad6a46da8f36c3d538f4fa6b9faca shairport-sync-3.3.8.tar.gz sha256 1daaa904985807b7f9f2fa91f6b19f3faadf8df4e813f7451a691f89a6965e3f LICENSES ================================================ FILE: package/shairport-sync/shairport-sync.mk ================================================ ################################################################################ # # shairport-sync # ################################################################################ SHAIRPORT_SYNC_VERSION = 3.3.8 SHAIRPORT_SYNC_SITE = $(call github,mikebrady,shairport-sync,$(SHAIRPORT_SYNC_VERSION)) SHAIRPORT_SYNC_LICENSE = MIT, BSD-3-Clause SHAIRPORT_SYNC_LICENSE_FILES = LICENSES SHAIRPORT_SYNC_DEPENDENCIES = alsa-lib libconfig popt host-pkgconf # git clone, no configure SHAIRPORT_SYNC_AUTORECONF = YES SHAIRPORT_SYNC_CONF_OPTS = --with-alsa \ --with-metadata \ --with-pipe \ --with-stdout SHAIRPORT_SYNC_CONF_ENV += LIBS="$(SHAIRPORT_SYNC_CONF_LIBS)" # Avahi or tinysvcmdns (shaiport-sync bundles its own version of tinysvcmdns). # Avahi support needs libavahi-client, which is built by avahi if avahi-daemon # and dbus is selected. Since there is no BR2_PACKAGE_LIBAVAHI_CLIENT config # option yet, use the avahi-daemon and dbus congig symbols to check for # libavahi-client. ifeq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_DBUS),yy) SHAIRPORT_SYNC_DEPENDENCIES += avahi SHAIRPORT_SYNC_CONF_OPTS += --with-avahi --without-tinysvcmdns else SHAIRPORT_SYNC_CONF_OPTS += --without-avahi --with-tinysvcmdns endif ifeq ($(BR2_PACKAGE_LIBDAEMON),y) SHAIRPORT_SYNC_DEPENDENCIES += libdaemon SHAIRPORT_SYNC_CONF_OPTS += --with-libdaemon else SHAIRPORT_SYNC_CONF_OPTS += --without-libdaemon endif # OpenSSL or mbedTLS ifeq ($(BR2_PACKAGE_OPENSSL),y) SHAIRPORT_SYNC_DEPENDENCIES += openssl SHAIRPORT_SYNC_CONF_OPTS += --with-ssl=openssl else SHAIRPORT_SYNC_DEPENDENCIES += mbedtls SHAIRPORT_SYNC_CONF_OPTS += --with-ssl=mbedtls SHAIRPORT_SYNC_CONF_LIBS += -lmbedx509 -lmbedcrypto ifeq ($(BR2_PACKAGE_MBEDTLS_COMPRESSION),y) SHAIRPORT_SYNC_CONF_LIBS += -lz endif endif ifeq ($(BR2_PACKAGE_SHAIRPORT_SYNC_CONVOLUTION),y) SHAIRPORT_SYNC_DEPENDENCIES += libsndfile SHAIRPORT_SYNC_CONF_OPTS += --with-convolution else SHAIRPORT_SYNC_CONF_OPTS += --without-convolution endif ifeq ($(BR2_PACKAGE_SHAIRPORT_SYNC_DBUS),y) SHAIRPORT_SYNC_DEPENDENCIES += libglib2 SHAIRPORT_SYNC_CONF_OPTS += --with-dbus-interface --with-mpris-interface else SHAIRPORT_SYNC_CONF_OPTS += --without-dbus-interface --without-mpris-interface endif ifeq ($(BR2_PACKAGE_SHAIRPORT_SYNC_LIBSOXR),y) SHAIRPORT_SYNC_DEPENDENCIES += libsoxr SHAIRPORT_SYNC_CONF_OPTS += --with-soxr else SHAIRPORT_SYNC_CONF_OPTS += --without-soxr endif ifeq ($(BR2_PACKAGE_SHAIRPORT_SYNC_MQTT),y) SHAIRPORT_SYNC_DEPENDENCIES += avahi dbus mosquitto SHAIRPORT_SYNC_CONF_OPTS += --with-mqtt-client else SHAIRPORT_SYNC_CONF_OPTS += --without-mqtt-client endif define SHAIRPORT_SYNC_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/shairport-sync \ $(TARGET_DIR)/usr/bin/shairport-sync $(INSTALL) -D -m 0644 $(@D)/scripts/shairport-sync.conf \ $(TARGET_DIR)/etc/shairport-sync.conf endef define SHAIRPORT_SYNC_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/shairport-sync/S99shairport-sync \ $(TARGET_DIR)/etc/init.d/S99shairport-sync endef $(eval $(autotools-package)) ================================================ FILE: package/shapelib/Config.in ================================================ config BR2_PACKAGE_SHAPELIB bool "shapelib" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS help The Shapefile C Library provides the ability to write simple C programs for reading, writing and updating (to a limited extent) ESRI Shapefiles, and the associated attribute file (.dbf). http://shapelib.maptools.org/ comment "shapelib needs a toolchain w/ C++, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/shapelib/shapelib.hash ================================================ # Locally computed sha256 1fc0a480982caef9e7b9423070b47750ba34cd0ba82668f2e638fab1d07adae1 shapelib-1.5.0.tar.gz sha256 7eb803a70990017a1c4e38a8342d7413c5dfeec3ed1ac407e15ae2c274e560ff COPYING sha256 a638278f7f1cb7d0cdc73b47a6c87261b882e356a8e79922e90d44d7ef1dd2c7 web/license.html ================================================ FILE: package/shapelib/shapelib.mk ================================================ ################################################################################ # # shapelib # ################################################################################ SHAPELIB_VERSION = 1.5.0 SHAPELIB_SITE = http://download.osgeo.org/shapelib SHAPELIB_LICENSE = MIT or LGPL-2.0 SHAPELIB_LICENSE_FILES = web/license.html COPYING SHAPELIB_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/shared-mime-info/0001-Remove-incorrect-dependency-from-install-data-hook.patch ================================================ 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 [Upstream status: https://gitlab.freedesktop.org/xdg/shared-mime-info/merge_requests/18] --- 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 ================================================ FILE: package/shared-mime-info/Config.in ================================================ config BR2_PACKAGE_SHARED_MIME_INFO bool "shared-mime-info" 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 The shared-mime-info package contains the core database of common types and the update-mime-database command used to extend it. https://freedesktop.org/wiki/Software/shared-mime-info/ comment "shared-mime-info needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/shared-mime-info/shared-mime-info.hash ================================================ # Locally calculated sha256 18b2f0fe07ed0d6f81951a5fd5ece44de9c8aeb4dc5bb20d4f595f6cc6bd403e shared-mime-info-1.12.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/shared-mime-info/shared-mime-info.mk ================================================ ################################################################################ # # shared-mime-info # ################################################################################ SHARED_MIME_INFO_VERSION = 1.12 SHARED_MIME_INFO_SOURCE = shared-mime-info-$(SHARED_MIME_INFO_VERSION).tar.xz SHARED_MIME_INFO_SITE = \ https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/80c7f1afbcad2769f38aeb9ba6317a51 SHARED_MIME_INFO_INSTALL_STAGING = YES # 0001-Remove-incorrect-dependency-from-install-data-hook.patch SHARED_MIME_INFO_AUTORECONF = YES SHARED_MIME_INFO_CONF_ENV = XMLLINT=$(HOST_DIR)/bin/xmllint SHARED_MIME_INFO_DEPENDENCIES = host-shared-mime-info libxml2 libglib2 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 = GPL-2.0 SHARED_MIME_INFO_LICENSE_FILES = COPYING HOST_SHARED_MIME_INFO_DEPENDENCIES = \ host-pkgconf host-intltool host-libxml2 host-libglib2 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 endef $(eval $(autotools-package)) $(eval $(host-autotools-package)) # shared-mime-info for the host SHARED_MIME_INFO_HOST_BINARY = $(HOST_DIR)/bin/update-mime-database ================================================ FILE: package/shellinabox/0001-Makefile-disable-always-building-statically.patch ================================================ 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 ================================================ FILE: package/shellinabox/0002-CVE-2018-16789-fix-for-broken-multipart-form-data.patch ================================================ From 7f47efe1717c381f86566fabe0b1ced8cb98fe8f Mon Sep 17 00:00:00 2001 From: irsl Date: Fri, 26 Oct 2018 11:51:15 +0200 Subject: [PATCH] fix for broken multipart/form-data Malformed multipart/form-data payload results in infinite loop and thus denial of service [Upstream status: https://github.com/shellinabox/shellinabox/pull/446] Signed-off-by: Fabrice Fontaine --- libhttp/url.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libhttp/url.c b/libhttp/url.c index ed29475..4177871 100644 --- a/libhttp/url.c +++ b/libhttp/url.c @@ -312,6 +312,9 @@ static void urlParsePostBody(struct URL *url, } } } + } else { + warn("[http] broken multipart/form-data!"); + break; } } if (lastPart) { ================================================ FILE: package/shellinabox/Config.in ================================================ 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 ================================================ FILE: package/shellinabox/shellinabox.hash ================================================ # Locally calculated sha256 27a5ec6c3439f87aee238c47cc56e7357a6249e5ca9ed0f044f0057ef389d81e shellinabox-2.20.tar.gz sha256 04ef60ab9b83cde6f0862ea18474454477efb34c52ebce1f8d8260a398a39362 COPYING sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 GPL-2 ================================================ FILE: package/shellinabox/shellinabox.mk ================================================ ################################################################################ # # shellinabox # ################################################################################ SHELLINABOX_VERSION = 2.20 SHELLINABOX_SITE = $(call github,shellinabox,shellinabox,v$(SHELLINABOX_VERSION)) SHELLINABOX_LICENSE = GPL-2.0 with OpenSSL exception SHELLINABOX_LICENSE_FILES = COPYING GPL-2 SHELLINABOX_CPE_ID_VENDOR = shellinabox_project # 0002-CVE-2018-16789-fix-for-broken-multipart-form-data.patch SHELLINABOX_IGNORE_CVES += CVE-2018-16789 # 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_OPTS += --disable-utmp endif $(eval $(autotools-package)) ================================================ FILE: package/sigrok-cli/Config.in ================================================ config BR2_PACKAGE_SIGROK_CLI bool "sigrok-cli" # libsigrok->libglib2: depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # libsigrok->libzip depends on !BR2_STATIC_LIBS # libsigrok depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 depends on BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBSIGROK help Sigrok-cli is a command-line frontend for the sigrok software suite. http://sigrok.org/wiki/Sigrok-cli comment "sigrok-cli needs a toolchain w/ locale, wchar, threads, dynamic library, gcc >= 4.7" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || BR2_STATIC_LIBS \ || !BR2_ENABLE_LOCALE ================================================ FILE: package/sigrok-cli/sigrok-cli.hash ================================================ # Locally computed sha256 71d0443f36897bf565732dec206830dbea0f2789b6601cf10536b286d1140ab8 sigrok-cli-0.7.2.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/sigrok-cli/sigrok-cli.mk ================================================ ################################################################################ # # sigrok-cli # ################################################################################ SIGROK_CLI_VERSION = 0.7.2 SIGROK_CLI_SITE = http://sigrok.org/download/source/sigrok-cli SIGROK_CLI_LICENSE = GPL-3.0+ SIGROK_CLI_LICENSE_FILES = COPYING SIGROK_CLI_SELINUX_MODULES = sigrok SIGROK_CLI_DEPENDENCIES = host-pkgconf libsigrok ifeq ($(BR2_PACKAGE_LIBSIGROKDECODE),y) SIGROK_CLI_CONF_OPTS += --with-libsigrokdecode SIGROK_CLI_DEPENDENCIES += libsigrokdecode else SIGROK_CLI_CONF_OPTS += --with-libsigrokdecode=NO endif $(eval $(autotools-package)) ================================================ FILE: package/siproxd/Config.in ================================================ config BR2_PACKAGE_SIPROXD bool "siproxd" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBOSIP2 select BR2_PACKAGE_LIBTOOL select BR2_PACKAGE_SQLITE help Siproxd is a proxy/masquerading daemon for SIP (Session Initiation Protocol), which is used in IP telephony. It handles registrations of SIP clients on a private IP network and performs rewriting of the SIP message bodies to make SIP connections work via a masquerading firewall (NAT). It allows SIP software clients (like kphone, linphone) or SIP hardware clients (Voice over IP phones which are SIP-compatible, such as those from Cisco, Grandstream or Snom) to work behind an IP masquerading firewall or NAT router. http://siproxd.sourceforge.net/ comment "siproxd needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/siproxd/siproxd.hash ================================================ # Locally calculated after checking pgp signature from: # https://downloads.sourceforge.net/project/siproxd/siproxd/0.8.3/siproxd-0.8.3.tar.gz.asc sha256 9a6d7a6bb6fff162775b1e1fb7018de9c69642cbf8626185dc6ffceeeba07736 siproxd-0.8.3.tar.gz # https://sourceforge.net/projects/siproxd/files/siproxd/0.8.3/ sha1 d13d4a05b8a16dbe20d04b99b535610e49050d9d siproxd-0.8.3.tar.gz md5 9a9d2c89e5f0c59fdde9444a66d8372c siproxd-0.8.3.tar.gz # Hash for license files: sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/siproxd/siproxd.mk ================================================ ################################################################################ # # siproxd # ################################################################################ SIPROXD_VERSION = 0.8.3 SIPROXD_SITE = https://downloads.sourceforge.net/project/siproxd/siproxd/$(SIPROXD_VERSION) SIPROXD_LICENSE = GPL-2.0+ SIPROXD_LICENSE_FILES = COPYING SIPROXD_DEPENDENCIES = libosip2 libtool sqlite SIPROXD_CONF_OPTS = --without-included-ltdl $(eval $(autotools-package)) ================================================ FILE: package/sispmctl/Config.in ================================================ config BR2_PACKAGE_SISPMCTL bool "sispmctl" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT help sispmctl is an application enabling the use of the GEMBIRD SiS-PM and mSiS(sispm) USB-controlled power-outlet device under Linux. Note that the device is also sold under different Names, i.e. as "IntelliPlug" in Germany. http://sispmctl.sourceforge.net/ comment "sispmctl needs a toolchain w/ threads, wchar, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_USE_MMU ================================================ FILE: package/sispmctl/sispmctl.hash ================================================ # Locally computed: sha256 6a9ec7125e8c01bb45d4a3b56f07fb41fc437020c8dcd8c0f29ebb98dc55a647 sispmctl-4.9.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/sispmctl/sispmctl.mk ================================================ ################################################################################ # # sispmctl # ################################################################################ SISPMCTL_VERSION = 4.9 SISPMCTL_SITE = http://downloads.sourceforge.net/project/sispmctl/sispmctl/sispmctl-$(SISPMCTL_VERSION) SISPMCTL_LICENSE = GPL-2.0+ SISPMCTL_LICENSE_FILES = COPYING SISPMCTL_DEPENDENCIES = libusb-compat SISPMCTL_CONF_OPTS = --enable-webless $(eval $(autotools-package)) ================================================ FILE: package/skalibs/Config.in ================================================ config BR2_PACKAGE_SKALIBS bool "skalibs" depends on BR2_USE_MMU # fork() help skalibs is a package centralizing the FOSS C development files used for building all software at skarnet.org: it contains essentially general-purpose libraries. http://skarnet.org/software/skalibs/ ================================================ FILE: package/skalibs/skalibs.hash ================================================ # Locally generated sha256 b780b0ae650dda0c3ec5f8975174998af2d24c2a2e2be669b1bab46e73b1464d skalibs-2.10.0.3.tar.gz sha256 adecb8bedfaae27fcfe65ecb3ef0e2e71aa2a2b49dc21886a200bc677d93e6ec COPYING ================================================ FILE: package/skalibs/skalibs.mk ================================================ ################################################################################ # # skalibs # ################################################################################ SKALIBS_VERSION = 2.10.0.3 SKALIBS_SITE = http://skarnet.org/software/skalibs SKALIBS_LICENSE = ISC SKALIBS_LICENSE_FILES = COPYING SKALIBS_INSTALL_STAGING = YES SKALIBS_CONF_OPTS = \ --prefix=/ \ --with-default-path=/sbin:/usr/sbin:/bin:/usr/bin \ --with-sysdep-devurandom=yes \ $(SHARED_STATIC_LIBS_OPTS) define SKALIBS_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(SKALIBS_CONF_OPTS)) endef define SKALIBS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define SKALIBS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install rm -rf $(TARGET_DIR)/usr/lib/skalibs endef define SKALIBS_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef HOST_SKALIBS_CONF_OPTS = \ --prefix=$(HOST_DIR) \ --disable-static \ --enable-shared \ --disable-allstatic define HOST_SKALIBS_CONFIGURE_CMDS (cd $(@D); $(HOST_CONFIGURE_OPTS) ./configure $(HOST_SKALIBS_CONF_OPTS)) endef define HOST_SKALIBS_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_SKALIBS_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/skeleton/Config.in ================================================ config BR2_PACKAGE_SKELETON bool default y config BR2_PACKAGE_HAS_SKELETON bool config BR2_PACKAGE_PROVIDES_SKELETON string ================================================ FILE: package/skeleton/skeleton.mk ================================================ ################################################################################ # # skeleton # ################################################################################ # 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 # on skeleton. SKELETON_ADD_TOOLCHAIN_DEPENDENCY = NO SKELETON_ADD_SKELETON_DEPENDENCY = NO # We create a compatibility symlink in case a post-build script still # uses $(HOST_DIR)/usr define HOST_SKELETON_INSTALL_CMDS $(Q)ln -snf . $(HOST_DIR)/usr $(Q)mkdir -p $(HOST_DIR)/lib $(Q)mkdir -p $(HOST_DIR)/include $(Q)case $(HOSTARCH) in \ (*64) ln -snf lib $(HOST_DIR)/lib64;; \ (*) ln -snf lib $(HOST_DIR)/lib32;; \ esac endef $(eval $(virtual-package)) $(eval $(host-generic-package)) ================================================ FILE: package/skeleton-custom/Config.in ================================================ config BR2_PACKAGE_SKELETON_CUSTOM bool select BR2_PACKAGE_HAS_SKELETON config BR2_PACKAGE_PROVIDES_SKELETON default "skeleton-custom" if BR2_PACKAGE_SKELETON_CUSTOM ================================================ FILE: package/skeleton-custom/skeleton-custom.mk ================================================ ################################################################################ # # skeleton-custom # ################################################################################ # 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 # on skeleton. SKELETON_CUSTOM_ADD_TOOLCHAIN_DEPENDENCY = NO SKELETON_CUSTOM_ADD_SKELETON_DEPENDENCY = NO SKELETON_CUSTOM_PROVIDES = skeleton SKELETON_CUSTOM_INSTALL_STAGING = YES SKELETON_CUSTOM_PATH = $(call qstrip,$(BR2_ROOTFS_SKELETON_CUSTOM_PATH)) ifeq ($(BR2_PACKAGE_SKELETON_CUSTOM)$(BR_BUILDING),yy) ifeq ($(SKELETON_CUSTOM_PATH),) $(error No path specified for the custom skeleton) endif endif # For a merged /usr, ensure that /lib, /bin and /sbin and their /usr # counterparts are appropriately setup as symlinks ones to the others. ifeq ($(BR2_ROOTFS_MERGED_USR),y) SKELETON_CUSTOM_NOT_MERGED_USR_DIRS = \ $(shell support/scripts/check-merged-usr.sh $(SKELETON_CUSTOM_PATH)) endif # merged /usr ifeq ($(BR2_PACKAGE_SKELETON_CUSTOM)$(BR_BUILDING),yy) ifneq ($(SKELETON_CUSTOM_NOT_MERGED_USR_DIRS),) $(error The custom skeleton in $(SKELETON_CUSTOM_PATH) is not \ using a merged /usr for the following directories: \ $(SKELETON_CUSTOM_NOT_MERGED_USR_DIRS)) endif endif # The target-dir-warning file and the lib{32,64} symlinks are the only # things we customise in the custom skeleton. define SKELETON_CUSTOM_INSTALL_TARGET_CMDS $(call SYSTEM_RSYNC,$(SKELETON_CUSTOM_PATH),$(TARGET_DIR)) $(call SYSTEM_USR_SYMLINKS_OR_DIRS,$(TARGET_DIR)) $(call SYSTEM_LIB_SYMLINK,$(TARGET_DIR)) $(INSTALL) -m 0644 support/misc/target-dir-warning.txt \ $(TARGET_DIR_WARNING_FILE) endef # For the staging dir, we don't really care what we install, but we # need the /lib and /usr/lib appropriately setup. Since we ensure, # above, that they are correct in the skeleton, we can simply copy the # skeleton to staging. define SKELETON_CUSTOM_INSTALL_STAGING_CMDS $(call SYSTEM_RSYNC,$(SKELETON_CUSTOM_PATH),$(STAGING_DIR)) $(call SYSTEM_USR_SYMLINKS_OR_DIRS,$(STAGING_DIR)) $(call SYSTEM_LIB_SYMLINK,$(STAGING_DIR)) endef $(eval $(generic-package)) ================================================ FILE: package/skeleton-init-common/Config.in ================================================ config BR2_PACKAGE_SKELETON_INIT_COMMON bool ================================================ FILE: package/skeleton-init-common/skeleton-init-common.mk ================================================ ################################################################################ # # skeleton-init-common # ################################################################################ # 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 # on skeleton. SKELETON_INIT_COMMON_ADD_TOOLCHAIN_DEPENDENCY = NO SKELETON_INIT_COMMON_ADD_SKELETON_DEPENDENCY = NO # The skeleton also handles the merged /usr case in the sysroot SKELETON_INIT_COMMON_INSTALL_STAGING = YES SKELETON_INIT_COMMON_PATH = system/skeleton define SKELETON_INIT_COMMON_INSTALL_TARGET_CMDS $(call SYSTEM_RSYNC,$(SKELETON_INIT_COMMON_PATH),$(TARGET_DIR)) $(call SYSTEM_USR_SYMLINKS_OR_DIRS,$(TARGET_DIR)) $(call SYSTEM_LIB_SYMLINK,$(TARGET_DIR)) $(SED) 's,@PATH@,$(BR2_SYSTEM_DEFAULT_PATH),' $(TARGET_DIR)/etc/profile $(INSTALL) -m 0644 support/misc/target-dir-warning.txt \ $(TARGET_DIR_WARNING_FILE) endef define SKELETON_INIT_CLEANUP board/common/cleanup.sh $(TARGET_DIR) board=$(shell basename $(shell dirname $(TARGET_DIR))) \ test -x board/$${board}/cleanup.sh && board/$${board}/cleanup.sh $(TARGET_DIR) || true endef SKELETON_INIT_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_INIT_CLEANUP # We don't care much about what goes in staging, as long as it is # correctly setup for merged/non-merged /usr. The simplest is to # fill it in with the content of the skeleton. define SKELETON_INIT_COMMON_INSTALL_STAGING_CMDS $(call SYSTEM_RSYNC,$(SKELETON_INIT_COMMON_PATH),$(STAGING_DIR)) $(call SYSTEM_USR_SYMLINKS_OR_DIRS,$(STAGING_DIR)) $(call SYSTEM_LIB_SYMLINK,$(STAGING_DIR)) $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include endef SKELETON_INIT_COMMON_HOSTNAME = $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME)) SKELETON_INIT_COMMON_ISSUE = $(call qstrip,$(BR2_TARGET_GENERIC_ISSUE)) SKELETON_INIT_COMMON_ROOT_PASSWD = $(call qstrip,$(BR2_TARGET_GENERIC_ROOT_PASSWD)) SKELETON_INIT_COMMON_PASSWD_METHOD = $(call qstrip,$(BR2_TARGET_GENERIC_PASSWD_METHOD)) SKELETON_INIT_COMMON_BIN_SH = $(call qstrip,$(BR2_SYSTEM_BIN_SH)) ifneq ($(SKELETON_INIT_COMMON_HOSTNAME),) SKELETON_INIT_COMMON_HOSTS_LINE = $(SKELETON_INIT_COMMON_HOSTNAME) SKELETON_INIT_COMMON_SHORT_HOSTNAME = $(firstword $(subst ., ,$(SKELETON_INIT_COMMON_HOSTNAME))) ifneq ($(SKELETON_INIT_COMMON_HOSTNAME),$(SKELETON_INIT_COMMON_SHORT_HOSTNAME)) SKELETON_INIT_COMMON_HOSTS_LINE += $(SKELETON_INIT_COMMON_SHORT_HOSTNAME) endif define SKELETON_INIT_COMMON_SET_HOSTNAME mkdir -p $(TARGET_DIR)/etc # Following test commands are required due to the fact that /etc/{hosts,hostname} are symlinks in thingOS test -f $(TARGET_DIR)/etc/hostname && \ echo "$(SKELETON_INIT_COMMON_HOSTNAME)" > $(TARGET_DIR)/etc/hostname || true test -f $(TARGET_DIR)/etc/hosts && \ $(SED) '$$a \127.0.1.1\t$(SKELETON_INIT_COMMON_HOSTS_LINE)' \ -e '/^127.0.1.1/d' $(TARGET_DIR)/etc/hosts || true endef SKELETON_INIT_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_INIT_COMMON_SET_HOSTNAME endif ifneq ($(SKELETON_INIT_COMMON_ISSUE),) define SKELETON_INIT_COMMON_SET_ISSUE mkdir -p $(TARGET_DIR)/etc # Following test command is required due to the fact that /etc/issue is a symlink in thingOS test -f $(TARGET_DIR)/etc/issue && \ echo "$(SKELETON_INIT_COMMON_ISSUE)" > $(TARGET_DIR)/etc/issue || true endef SKELETON_INIT_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_INIT_COMMON_SET_ISSUE endif ifeq ($(BR2_TARGET_ENABLE_ROOT_LOGIN),y) ifneq ($(filter $$1$$% $$5$$% $$6$$%,$(SKELETON_INIT_COMMON_ROOT_PASSWD)),) SKELETON_INIT_COMMON_ROOT_PASSWORD = '$(SKELETON_INIT_COMMON_ROOT_PASSWD)' else ifneq ($(SKELETON_INIT_COMMON_ROOT_PASSWD),) # 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. SKELETON_INIT_COMMON_ROOT_PASSWORD = "`$(MKPASSWD) -m "$(SKELETON_INIT_COMMON_PASSWD_METHOD)" "$(SKELETON_INIT_COMMON_ROOT_PASSWD)"`" endif else # !BR2_TARGET_ENABLE_ROOT_LOGIN SKELETON_INIT_COMMON_ROOT_PASSWORD = "*" endif define SKELETON_INIT_COMMON_SET_ROOT_PASSWD # Following test command is required due to the fact that /etc/shadow is a symlink in thingOS test -f $(TARGET_DIR)/etc/shadow && $(SED) s,^root:[^:]*:,root:$(SKELETON_INIT_COMMON_ROOT_PASSWORD):, $(TARGET_DIR)/etc/shadow || true endef SKELETON_INIT_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_INIT_COMMON_SET_ROOT_PASSWD ifeq ($(BR2_SYSTEM_BIN_SH_NONE),y) define SKELETON_INIT_COMMON_SET_BIN_SH rm -f $(TARGET_DIR)/bin/sh endef else # Add /bin/sh to /etc/shells otherwise some login tools like dropbear # can reject the user connection. See man shells. define SKELETON_INIT_COMMON_ADD_SH_TO_SHELLS grep -qsE '^/bin/sh$$' $(TARGET_DIR)/etc/shells \ || echo "/bin/sh" >> $(TARGET_DIR)/etc/shells endef SKELETON_INIT_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_INIT_COMMON_ADD_SH_TO_SHELLS ifneq ($(SKELETON_INIT_COMMON_BIN_SH),) define SKELETON_INIT_COMMON_SET_BIN_SH ln -sf $(SKELETON_INIT_COMMON_BIN_SH) $(TARGET_DIR)/bin/sh $(SED) '/^root:/s,[^/]*$$,$(SKELETON_INIT_COMMON_BIN_SH),' \ $(TARGET_DIR)/etc/passwd endef endif endif SKELETON_INIT_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_INIT_COMMON_SET_BIN_SH $(eval $(generic-package)) ================================================ FILE: package/skeleton-init-none/Config.in ================================================ config BR2_PACKAGE_SKELETON_INIT_NONE bool select BR2_PACKAGE_HAS_SKELETON select BR2_PACKAGE_SKELETON_INIT_COMMON config BR2_PACKAGE_PROVIDES_SKELETON default "skeleton-init-none" if BR2_PACKAGE_SKELETON_INIT_NONE ================================================ FILE: package/skeleton-init-none/skeleton-init-none.mk ================================================ ################################################################################ # # skeleton-init-none # ################################################################################ # 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 # on skeleton. SKELETON_INIT_NONE_ADD_TOOLCHAIN_DEPENDENCY = NO SKELETON_INIT_NONE_ADD_SKELETON_DEPENDENCY = NO SKELETON_INIT_NONE_DEPENDENCIES = skeleton-init-common SKELETON_INIT_NONE_PROVIDES = skeleton $(eval $(generic-package)) ================================================ FILE: package/skeleton-init-openrc/Config.in ================================================ config BR2_PACKAGE_SKELETON_INIT_OPENRC bool select BR2_PACKAGE_HAS_SKELETON select BR2_PACKAGE_SKELETON_INIT_COMMON config BR2_PACKAGE_PROVIDES_SKELETON default "skeleton-init-openrc" if BR2_PACKAGE_SKELETON_INIT_OPENRC ================================================ FILE: package/skeleton-init-openrc/skeleton/etc/conf.d/.empty ================================================ ================================================ FILE: package/skeleton-init-openrc/skeleton/etc/fstab ================================================ # /dev/root / ext2 ro,noauto 0 0 tmpfs /tmp tmpfs mode=1777 0 0 tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0 ================================================ FILE: package/skeleton-init-openrc/skeleton/etc/runlevels/default/.empty ================================================ ================================================ FILE: package/skeleton-init-openrc/skeleton-init-openrc.mk ================================================ ################################################################################ # # skeleton-init-openrc # ################################################################################ # 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 # on skeleton. SKELETON_INIT_OPENRC_ADD_TOOLCHAIN_DEPENDENCY = NO SKELETON_INIT_OPENRC_ADD_SKELETON_DEPENDENCY = NO SKELETON_INIT_OPENRC_DEPENDENCIES = skeleton-init-common SKELETON_INIT_OPENRC_PROVIDES = skeleton ifeq ($(BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW),y) # Comment /dev/root entry in fstab. When openrc does not find fstab entry for # "/", it will try to remount "/" as "rw". define SKELETON_INIT_OPENRC_ROOT_RO_OR_RW $(SED) '\:^/dev/root[[:blank:]]:s/^/# /' $(TARGET_DIR)/etc/fstab endef else # Uncomment /dev/root entry in fstab which has "ro" option so openrc notices # it and doesn't remount root to rw. define SKELETON_INIT_OPENRC_ROOT_RO_OR_RW $(SED) '\:^#[[:blank:]]*/dev/root[[:blank:]]:s/^# //' $(TARGET_DIR)/etc/fstab endef endif # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW define SKELETON_INIT_OPENRC_INSTALL_TARGET_CMDS $(call SYSTEM_RSYNC,$(SKELETON_INIT_OPENRC_PKGDIR)/skeleton,$(TARGET_DIR)) $(SKELETON_INIT_OPENRC_ROOT_RO_OR_RW) endef $(eval $(generic-package)) ================================================ FILE: package/skeleton-init-systemd/Config.in ================================================ config BR2_PACKAGE_SKELETON_INIT_SYSTEMD bool select BR2_PACKAGE_HAS_SKELETON select BR2_PACKAGE_SKELETON_INIT_COMMON config BR2_PACKAGE_PROVIDES_SKELETON default "skeleton-init-systemd" if BR2_PACKAGE_SKELETON_INIT_SYSTEMD ================================================ FILE: package/skeleton-init-systemd/skeleton-init-systemd.mk ================================================ ################################################################################ # # skeleton-init-systemd # ################################################################################ # 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 # on skeleton. SKELETON_INIT_SYSTEMD_ADD_TOOLCHAIN_DEPENDENCY = NO SKELETON_INIT_SYSTEMD_ADD_SKELETON_DEPENDENCY = NO SKELETON_INIT_SYSTEMD_DEPENDENCIES = skeleton-init-common SKELETON_INIT_SYSTEMD_PROVIDES = skeleton ifeq ($(BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW),y) define SKELETON_INIT_SYSTEMD_ROOT_RO_OR_RW echo "/dev/root / auto rw 0 1" >$(TARGET_DIR)/etc/fstab endef else # On a R/O rootfs, /var is a tmpfs filesystem. So, at build time, we # redirect /var to the "factory settings" location. Just before the # filesystem gets created, the /var symlink will be replaced with # a real (but empty) directory, and the "factory files" will be copied # back there by the tmpfiles.d mechanism. define SKELETON_INIT_SYSTEMD_ROOT_RO_OR_RW mkdir -p $(TARGET_DIR)/etc/systemd/tmpfiles.d echo "/dev/root / auto ro 0 1" >$(TARGET_DIR)/etc/fstab echo "tmpfs /var tmpfs mode=1777 0 0" >>$(TARGET_DIR)/etc/fstab endef define SKELETON_INIT_SYSTEMD_PRE_ROOTFS_VAR rm -rf $(TARGET_DIR)/usr/share/factory/var mv $(TARGET_DIR)/var $(TARGET_DIR)/usr/share/factory/var mkdir -p $(TARGET_DIR)/var for i in $(TARGET_DIR)/usr/share/factory/var/* \ $(TARGET_DIR)/usr/share/factory/var/lib/* \ $(TARGET_DIR)/usr/share/factory/var/lib/systemd/*; do \ [ -e "$${i}" ] || continue; \ j="$${i#$(TARGET_DIR)/usr/share/factory}"; \ if [ -L "$${i}" ]; then \ printf "L+! %s - - - - %s\n" \ "$${j}" "../usr/share/factory/$${j}" \ || exit 1; \ else \ printf "C! %s - - - -\n" "$${j}" \ || exit 1; \ fi; \ done >$(TARGET_DIR)/etc/tmpfiles.d/var-factory.conf endef SKELETON_INIT_SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SKELETON_INIT_SYSTEMD_PRE_ROOTFS_VAR endif define SKELETON_INIT_SYSTEMD_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/home mkdir -p $(TARGET_DIR)/srv mkdir -p $(TARGET_DIR)/var ln -s ../run $(TARGET_DIR)/var/run $(SKELETON_INIT_SYSTEMD_ROOT_RO_OR_RW) endef $(eval $(generic-package)) ================================================ FILE: package/skeleton-init-sysv/Config.in ================================================ config BR2_PACKAGE_SKELETON_INIT_SYSV bool select BR2_PACKAGE_HAS_SKELETON select BR2_PACKAGE_SKELETON_INIT_COMMON config BR2_PACKAGE_PROVIDES_SKELETON default "skeleton-init-sysv" if BR2_PACKAGE_SKELETON_INIT_SYSV ================================================ FILE: package/skeleton-init-sysv/skeleton/dev/pts/.empty ================================================ ================================================ FILE: package/skeleton-init-sysv/skeleton/dev/shm/.empty ================================================ ================================================ FILE: package/skeleton-init-sysv/skeleton/etc/fstab ================================================ # /dev/root / ext2 rw,noauto 0 1 proc /proc proc defaults 0 0 devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0 tmpfs /dev/shm tmpfs mode=0777 0 0 tmpfs /tmp tmpfs mode=1777 0 0 tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0 sysfs /sys sysfs defaults 0 0 ================================================ FILE: package/skeleton-init-sysv/skeleton-init-sysv.mk ================================================ ################################################################################ # # skeleton-init-sysv # ################################################################################ # 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 # on skeleton. SKELETON_INIT_SYSV_ADD_TOOLCHAIN_DEPENDENCY = NO SKELETON_INIT_SYSV_ADD_SKELETON_DEPENDENCY = NO SKELETON_INIT_SYSV_DEPENDENCIES = skeleton-init-common SKELETON_INIT_SYSV_PROVIDES = skeleton define SKELETON_INIT_SYSV_INSTALL_TARGET_CMDS $(call SYSTEM_RSYNC,$(SKELETON_INIT_SYSV_PKGDIR)/skeleton,$(TARGET_DIR)) endef # enable/disable swapon/off calls depending on availability of the commands define SKELETON_INIT_SYSV_SWAPON_SWAPOFF_INITTAB if [ -x $(TARGET_DIR)/sbin/swapon -a -x $(TARGET_DIR)/sbin/swapoff ]; then \ $(SED) '/^#.*\/sbin\/swap/s/^#\+[[:blank:]]*//' $(TARGET_DIR)/etc/inittab; \ else \ $(SED) '/^[^#].*\/sbin\/swap/s/^/#/' $(TARGET_DIR)/etc/inittab; \ fi endef SKELETON_INIT_SYSV_TARGET_FINALIZE_HOOKS += SKELETON_INIT_SYSV_SWAPON_SWAPOFF_INITTAB $(eval $(generic-package)) ================================================ FILE: package/sl/Config.in ================================================ config BR2_PACKAGE_SL bool "sl" select BR2_PACKAGE_NCURSES help SL (Steam Locomotive) runs across your terminal when you type "sl" as you meant to type "ls". It's just a joke command, and not useful at all. https://github.com/mtoyoda/sl ================================================ FILE: package/sl/sl.hash ================================================ # Locally calculated sha256 1e5996757f879c81f202a18ad8e982195cf51c41727d3fea4af01fdcbbb5563a sl-5.02.tar.gz sha256 72c7d262e2c9ddf019edc90af852a01a410338efff4e75e1c005b77ada4be7c4 LICENSE ================================================ FILE: package/sl/sl.mk ================================================ ################################################################################ # # sl # ################################################################################ SL_VERSION = 5.02 SL_SITE = $(call github,mtoyoda,sl,$(SL_VERSION)) SL_LICENSE = Custom SL_LICENSE_FILES = LICENSE SL_DEPENDENCIES = ncurses define SL_BUILD_CMDS $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) endef define SL_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/sl $(TARGET_DIR)/usr/bin/sl endef $(eval $(generic-package)) ================================================ FILE: package/slang/0001-slsh-libs.patch ================================================ Link against sources instead of installation paths that aren't DESTDIRed. Patch taken from gentoo portage, upstream status unknown, author probably Diego Pettenò. Signed-off-by: Gustavo Zacarias [Bernd: rebased against 2.3.1a] Signed-off-by: Bernd Kuhls --- a/slsh/Makefile.in +++ b/slsh/Makefile.in @@ -92,7 +92,7 @@ $(OBJDIR)/slsh_exe: $(OBJDIR)/slsh.o $(OBJDIR)/readline.o $(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh_exe $(LDFLAGS) $(DLINK_FLAGS) $(SRC_LIBS) $(OBJDIR)/slsh: $(OBJDIR)/slsh.o $(OBJDIR)/readline.o - $(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh $(LDFLAGS) $(DLINK_FLAGS) $(INST_LIBS) + $(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh $(LDFLAGS) $(DLINK_FLAGS) $(SRC_LIBS) $(OBJDIR)/slsh.o: $(OBJDIR_TSTAMP) slsh.c slsh.h config.h Makefile cd $(OBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(DEFS) $(SRCDIR)/slsh.c $(OBJDIR)/readline.o: $(OBJDIR_TSTAMP) readline.c slsh.h config.h Makefile ================================================ FILE: package/slang/Config.in ================================================ config BR2_PACKAGE_SLANG bool "slang" depends on BR2_USE_MMU # fork() help Multi-platform console display library. http://www.jedsoft.org/slang/index.html ================================================ FILE: package/slang/slang.hash ================================================ # sha1 from http://www.jedsoft.org/releases/slang/, sha256 locally computed sha1 bbf7f2dcc14e7c7fca40868fd4b411a2bd9e2655 slang-2.3.2.tar.bz2 sha256 fc9e3b0fc4f67c3c1f6d43c90c16a5c42d117b8e28457c5b46831b8b5d3ae31a slang-2.3.2.tar.bz2 # License file, locally computed sha256 ff05a90962e7773f8bdc47b2a9585130526039102759b524c1dffbd57cfe469b COPYING ================================================ FILE: package/slang/slang.mk ================================================ ################################################################################ # # slang # ################################################################################ SLANG_VERSION = 2.3.2 SLANG_SOURCE = slang-$(SLANG_VERSION).tar.bz2 SLANG_SITE = http://www.jedsoft.org/releases/slang SLANG_LICENSE = GPL-2.0+ SLANG_LICENSE_FILES = COPYING SLANG_INSTALL_STAGING = YES SLANG_CONF_OPTS = --with-onig=no SLANG_MAKE = $(MAKE1) # Racy and we don't have/do libtermcap define SLANG_DISABLE_TERMCAP $(SED) '/^TERMCAP=/s:=.*:=:' $(@D)/configure endef SLANG_POST_PATCH_HOOKS += SLANG_DISABLE_TERMCAP # Absolute path hell, sigh... ifeq ($(BR2_PACKAGE_LIBPNG),y) SLANG_CONF_OPTS += --with-png=$(STAGING_DIR)/usr SLANG_DEPENDENCIES += libpng else SLANG_CONF_OPTS += --with-png=no endif ifeq ($(BR2_PACKAGE_PCRE),y) SLANG_CONF_OPTS += --with-pcre=$(STAGING_DIR)/usr SLANG_DEPENDENCIES += pcre else SLANG_CONF_OPTS += --with-pcre=no endif ifeq ($(BR2_PACKAGE_ZLIB),y) SLANG_CONF_OPTS += --with-z=$(STAGING_DIR)/usr SLANG_DEPENDENCIES += zlib else SLANG_CONF_OPTS += --with-z=no endif ifeq ($(BR2_PACKAGE_NCURSES),y) SLANG_DEPENDENCIES += ncurses SLANG_CONF_ENV += ac_cv_path_nc5config=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS) else SLANG_CONF_OPTS += ac_cv_path_nc5config=no endif ifeq ($(BR2_PACKAGE_READLINE),y) SLANG_CONF_OPTS += --with-readline=gnu SLANG_DEPENDENCIES += readline ifeq ($(BR2_STATIC_LIBS),y) SLANG_CONF_ENV += LIBS="`$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS) --libs`" endif endif ifeq ($(BR2_STATIC_LIBS),y) SLANG_MAKE_OPTS = static SLANG_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-static SLANG_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-static endif $(eval $(autotools-package)) ================================================ FILE: package/slirp/Config.in ================================================ config BR2_PACKAGE_SLIRP bool "slirp" depends on BR2_USE_MMU # libglib2 depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 select BR2_PACKAGE_LIBGLIB2 help libslirp is a user-mode networking library used by virtual machines, containers or various tools. https://gitlab.freedesktop.org/slirp/libslirp/ NOTE: This package has some history of a unique kind: - originally developped as 'slirp' by Danny Gasparovski, and seemingly abandonned (developper /disapeared/) - then re-maintained at sourceforge by "Kelly", up to some time around 2009: http://slirp.sourceforge.net/ - during that period, QEMU (Fabrice BELLARD) forked the code and included it in QEMU - and it was imported from this breed by the Spice project around May 2009 which archived it in 2012 - So we switched to https://gitlab.freedesktop.org/slirp/libslirp comment "slirp needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/slirp/slirp.hash ================================================ # Locally computed: sha256 358ce8b6ea59ec9deac937cc754f0115b992839e7b0cddf30ffb8f77dc21da82 libslirp-v4.7.0.tar.bz2 sha256 b28aecf4796a6a22054167f0a976de13d9db335669d37afd2dc7ea4c335e1e13 COPYRIGHT ================================================ FILE: package/slirp/slirp.mk ================================================ ################################################################################ # # slirp # ################################################################################ SLIRP_VERSION = 4.7.0 SLIRP_SOURCE = libslirp-v$(SLIRP_VERSION).tar.bz2 SLIRP_SITE = https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v$(SLIRP_VERSION) SLIRP_LICENSE = BSD-3-Clause SLIRP_LICENSE_FILES = COPYRIGHT SLIRP_CPE_ID_VENDOR = libslirp_project SLIRP_CPE_ID_PRODUCT = libslirp SLIRP_INSTALL_STAGING = YES SLIRP_DEPENDENCIES = libglib2 HOST_SLIRP_DEPENDENCIES = host-libglib2 $(eval $(meson-package)) $(eval $(host-meson-package)) ================================================ FILE: package/sloci-image/Config.in.host ================================================ config BR2_PACKAGE_HOST_SLOCI_IMAGE bool "host sloci-image" help A simple CLI tool for packing rootfs into a single-layer OCI image. https://github.com/jirutka/sloci-image ================================================ FILE: package/sloci-image/sloci-image.hash ================================================ # Locally computed sha256 4c5baee9a4915ca88e3a54befa1ccb8616be20208070cf54ac366c195647da79 sloci-image-0.1.2.tar.gz # Hash for license files: sha256 4c86c21e003875b85b4b9299156f8cec72c8e8e1abf5aa1f2d3c4dc665a3bea0 LICENSE ================================================ FILE: package/sloci-image/sloci-image.mk ================================================ ################################################################################ # # sloci-image # ################################################################################ SLOCI_IMAGE_VERSION = 0.1.2 SLOCI_IMAGE_SITE = $(call github,jirutka,sloci-image,v$(SLOCI_IMAGE_VERSION)) SLOCI_IMAGE_LICENSE = MIT SLOCI_IMAGE_LICENSE_FILES = LICENSE HOST_SLOCI_IMAGE_DEPENDENCIES = host-gawk define HOST_SLOCI_IMAGE_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) PREFIX=$(HOST_DIR) -C $(@D) install endef $(eval $(host-generic-package)) ================================================ FILE: package/smack/Config.in ================================================ config BR2_PACKAGE_SMACK bool "smack" depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 help User space programs and libraries for SMACK. SMACK stands for Simplified Mandatory Access Control Kernel. It is a Linux Security Module which provides a Mandatory Access Control mechanism, aimed towards simplicity. This package provides a library which allows applications to work with SMACK and tools to load/unload rules from the kernel, as well as query the policy. SMACK requires the following kernel options to be enabled: - CONFIG_SECURITY - CONFIG_SECURITY_SMACK - CONFIG_SECURITY_NETWORK 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. To activate SMACK, do not forget to add "security=smack" to your kernel command line. https://github.com/smack-team/smack comment "smack needs a toolchain w/ dynamic library, threads, headers >= 3.0" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 \ || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/smack/smack.hash ================================================ # Locally computed sha256 1a607da3b1a661dc76b7a5b8571f4a2d56b4d61d78376088d19f2d8637dc6822 smack-1.3.1.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/smack/smack.mk ================================================ ################################################################################ # # smack # ################################################################################ SMACK_VERSION = 1.3.1 SMACK_SITE = $(call github,smack-team,smack,v$(SMACK_VERSION)) SMACK_LICENSE = LGPL-2.1 SMACK_LICENSE_FILES = COPYING SMACK_INSTALL_STAGING = YES SMACK_DEPENDENCIES = host-pkgconf # Sources from GitHub, no configure script included. SMACK_AUTORECONF = YES define SMACK_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_SECURITY) $(call KCONFIG_ENABLE_OPT,CONFIG_SECURITY_SMACK) $(call KCONFIG_ENABLE_OPT,CONFIG_SECURITY_NETWORK) endef $(eval $(autotools-package)) ================================================ FILE: package/smartmontools/Config.in ================================================ config BR2_PACKAGE_SMARTMONTOOLS bool "smartmontools" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # fork() help Control and monitor storage systems using S.M.A.R.T. http://smartmontools.sourceforge.net/ comment "smartmontools needs a toolchain w/ C++" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/smartmontools/smartmontools.hash ================================================ # From http://sourceforge.net/projects/smartmontools/files/smartmontools/7.2/ md5 e8d134c69ae4959a05cb56b31172ffb1 smartmontools-7.2.tar.gz sha1 8d68241096f6ed5b1bbcd8b427fa4a881c1f3e33 smartmontools-7.2.tar.gz # Locally computed sha256 5cd98a27e6393168bc6aaea070d9e1cd551b0f898c52f66b2ff2e5d274118cd6 smartmontools-7.2.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/smartmontools/smartmontools.mk ================================================ ################################################################################ # # smartmontools # ################################################################################ SMARTMONTOOLS_VERSION = 7.2 SMARTMONTOOLS_SITE = http://downloads.sourceforge.net/project/smartmontools/smartmontools/$(SMARTMONTOOLS_VERSION) SMARTMONTOOLS_LICENSE = GPL-2.0+ SMARTMONTOOLS_LICENSE_FILES = COPYING SMARTMONTOOLS_CPE_ID_VENDOR = smartmontools SMARTMONTOOLS_SELINUX_MODULES = smartmon ifeq ($(BR2_PACKAGE_LIBCAP_NG),y) SMARTMONTOOLS_CONF_OPTS += --with-libcap-ng SMARTMONTOOLS_DEPENDENCIES += libcap-ng else SMARTMONTOOLS_CONF_OPTS += --without-libcap-ng endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) SMARTMONTOOLS_CONF_OPTS += --with-selinux SMARTMONTOOLS_DEPENDENCIES += libselinux else SMARTMONTOOLS_CONF_OPTS += --without-selinux endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) SMARTMONTOOLS_CONF_OPTS += --with-libsystemd SMARTMONTOOLS_DEPENDENCIES += systemd else SMARTMONTOOLS_CONF_OPTS += --without-libsystemd endif $(eval $(autotools-package)) ================================================ FILE: package/smcroute/0001-Avoid-trying-to-delete-inactive-VIFs.patch ================================================ From 8ce1d117a31e35d97fb955b82edf13514267eaab Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Tue, 28 Sep 2021 11:09:47 +0200 Subject: [PATCH] Avoid trying to delete inactive VIFs Organization: Westermo Network Technologies AB When probing interfaces at startup, there's a check for IFF_MULTICAST, if this flag is not set we try to delete its corresponding VIF/MIF. This is for hanlding .conf reload scenarios where an interface has had its MULTICAST flag dropped. However, when starting up on Linux systems, the loopback interface has no MULTICAST flag set. This leads to the following bogus warning: Failed deleting VIF for iface lo: Resource temporarily unavailable This patch makes sure to check if we have a registered kernel VIF/MIF for an interface before attempting to delete it. Signed-off-by: Joachim Wiberg --- src/mroute.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mroute.c b/src/mroute.c index 291e9c4..6a80a47 100644 --- a/src/mroute.c +++ b/src/mroute.c @@ -298,6 +298,9 @@ static int mroute4_del_vif(struct iface *iface) if (iface->mrdisc) rc = mrdisc_deregister(iface->vif); + if (iface->vif == ALL_VIFS) + return 0; + if (kern_vif_del(iface)) { switch (errno) { case ENOENT: @@ -910,6 +913,9 @@ static int mroute6_del_mif(struct iface *iface) { int rc = 0; + if (iface->mif == ALL_VIFS) + return 0; + if (kern_mif_del(iface) && errno != ENOENT) { switch (errno) { case ENOENT: -- 2.25.1 ================================================ FILE: package/smcroute/Config.in ================================================ config BR2_PACKAGE_SMCROUTE bool "smcroute" depends on BR2_USE_MMU # fork() help SMCRoute is a command line tool to manipulate the multicast routes of a UNIX kernel. It supports both IPv4 and IPv6 multicast routing. SMCRoute can be used as an alternative to dynamic multicast routers like mrouted or pimd in setups where static multicast routes should be maintained and/or no proper IGMP or MLD signaling exists. https://github.com/troglobit/smcroute ================================================ FILE: package/smcroute/S41smcroute ================================================ #!/bin/sh NAME="smcroute" DAEMON="smcrouted" PIDFILE="/var/run/$NAME.pid" # shellcheck source=/dev/null [ -r "/etc/default/$NAME" ] && . "/etc/default/$NAME" cmd() { start-stop-daemon -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" "$@" status=$? if [ $status -eq 0 ]; then echo "OK" else echo "FAIL" fi return $status } case "$1" in start) printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting cmd -S -- $SMCROUTED_ARGS ;; stop) printf 'Stopping %s: ' "$DAEMON" cmd -K ;; restart) $0 stop sleep 1 $0 start ;; reload) printf 'Reloading %s: ' "$DAEMON" cmd -K -s HUP ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/smcroute/smcroute.hash ================================================ # Upstream .sha256 from GitHub sha256 4342b95c99e410cab75e9ee80f20480e0170d8b07b8e31553ba1bec3e377fc56 smcroute-2.5.3.tar.gz # Locally generated sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING sha256 d260ea4b9d4b01317568850c3271e3923b546ea4ad57c899e79434f1cc8bcf0b 0001-Avoid-trying-to-delete-inactive-VIFs.patch ================================================ FILE: package/smcroute/smcroute.mk ================================================ ################################################################################ # # smcroute # ################################################################################ SMCROUTE_VERSION = 2.5.3 SMCROUTE_SITE = https://github.com/troglobit/smcroute/releases/download/$(SMCROUTE_VERSION) SMCROUTE_LICENSE = GPL-2.0+ SMCROUTE_LICENSE_FILES = COPYING SMCROUTE_CPE_ID_VENDOR = troglobit SMCROUTE_CONF_OPTS = --enable-mrdisc ifeq ($(BR2_PACKAGE_LIBCAP),y) SMCROUTE_DEPENDENCIES += libcap SMCROUTE_CONF_OPTS += --with-libcap else SMCROUTE_CONF_OPTS += --without-libcap endif define SMCROUTE_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/smcroute/S41smcroute \ $(TARGET_DIR)/etc/init.d/S41smcroute endef define SMCROUTE_PRUNE_COMPAT_SCRIPT rm -f $(TARGET_DIR)/usr/sbin/smcroute endef SMCROUTE_POST_INSTALL_TARGET_HOOKS += SMCROUTE_PRUNE_COMPAT_SCRIPT # We will asume that CONFIG_NET and CONFIG_INET are already # set in the kernel configuration provided by the user. define SMCROUTE_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_IP_MULTICAST) $(call KCONFIG_ENABLE_OPT,CONFIG_IP_MROUTE) endef $(eval $(autotools-package)) ================================================ FILE: package/smstools3/0001-fix-Makefile.patch ================================================ Makefile: fix rules In a Makefile, recipes should follow rules, there can not be variable definitions in-between. Although make-3.81 is happy about it, make-4.0 (and probably 3.82 too) do whine loudly. Signed-off-by: "Yann E. MORIN" [Fabrice: update for 3.1.21] Signed-off-by: Fabrice Fontaine diff -durN smstools3-3.1.15.orig/src/Makefile smstools3-3.1.15/src/Makefile --- smstools3-3.1.15.orig/src/Makefile 2010-09-21 13:29:14.000000000 +0200 +++ smstools3-3.1.15/src/Makefile 2014-09-01 22:27:02.719939329 +0200 @@ -39,14 +39,13 @@ all: smsd -smsd: smsd.c extras.o locking.o cfgfile.o logging.o alarm.o smsd_cfg.o charset.o stats.o blacklist.o whitelist.o modeminit.o pdu.o charshift.o - ifneq (,$(findstring SOLARIS,$(CFLAGS))) ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS))) override LFLAGS += -lsocket -lnsl endif endif +smsd: smsd.c extras.o locking.o cfgfile.o logging.o alarm.o smsd_cfg.o charset.o stats.o blacklist.o whitelist.o modeminit.o pdu.o charshift.o ifneq (,$(findstring NOSTATS,$(CFLAGS))) $(CC) $(CFLAGS) -o $@ $^ $(LFLAGS) else ================================================ FILE: package/smstools3/0002-fix-build-with-gcc-10.x.patch ================================================ Description: fix of FTBFS with gcc10 Author: Thorsten Alteholz Fetch from: Signed-off-by: Michael Fischer Index: smstools/src/smsd_cfg.h =================================================================== --- smstools.orig/src/smsd_cfg.h 2020-08-05 19:02:50.536596441 +0000 +++ smstools/src/smsd_cfg.h 2020-08-05 19:33:22.915005150 +0000 @@ -126,17 +126,17 @@ #define ALPHABET_UNKNOWN 4 #define ALPHABET_DEFAULT 0 -char process_title[32]; // smsd for main task, NOTIFIER or CHILD, name of a modem for other tasks. -int process_id; // -1 for main task, all modems have numbers starting with 0. +extern char process_title[32]; // smsd for main task, NOTIFIER or CHILD, name of a modem for other tasks. +extern int process_id; // -1 for main task, all modems have numbers starting with 0. // This is the same as device, can be used like devices[process_id] if IS_MODEM_PROCESS. -time_t process_start_time; +extern time_t process_start_time; -int modem_handle; // Handle for modem. +extern int modem_handle; // Handle for modem. -int put_command_timeouts; -unsigned long long put_command_sent; // 3.1.16beta. -char tmpdir[PATH_MAX]; // 3.1.16beta. +extern int put_command_timeouts; +extern unsigned long long put_command_sent; // 3.1.16beta. +extern char tmpdir[PATH_MAX]; // 3.1.16beta. typedef struct { @@ -284,204 +284,204 @@ // NOTE for regular run intervals: effective value is at least delaytime. -char configfile[PATH_MAX]; // Path to config file -char d_spool[PATH_MAX]; // Spool directory -char d_failed[PATH_MAX]; // Failed spool directory -char d_failed_copy[PATH_MAX]; // 3.1.17. -char d_incoming[PATH_MAX]; // Incoming spool directory -char d_incoming_copy[PATH_MAX]; // 3.1.16beta2. -char d_report[PATH_MAX]; // Incoming report spool directory -char d_report_copy[PATH_MAX]; // 3.1.17. -char d_phonecalls[PATH_MAX]; // Incoming phonecalls data directory -char d_saved[PATH_MAX]; // Directory for smsd's internal use, concatenation storage files etc. -char d_sent[PATH_MAX]; // Sent spool directory -char d_sent_copy[PATH_MAX]; // 3.1.17. -char d_checked[PATH_MAX]; // Spool directory for checked messages (only used when no provider queues used) -char eventhandler[PATH_MAX]; // Global event handler program or script -char alarmhandler[PATH_MAX]; // Global alarm handler program or script -char checkhandler[PATH_MAX]; // Handler that checks if the sms file is valid. -int alarmlevel; // Alarm Level (9=highest). Verbosity of alarm handler. -char logfile[PATH_MAX]; // Name or Handle of Log File -int loglevel; // Log Level (9=highest). Verbosity of log file. -_queue queues[NUMBER_OF_MODEMS]; // Queues -_device devices[NUMBER_OF_MODEMS]; // Modem devices -int delaytime; // sleep-time after workless -int delaytime_mainprocess; // sleep-time after workless, main process. If -1, delaytime is used. -int blocktime; // sleep-time after multiple errors -int blockafter; // Block modem after n errors -int errorsleeptime; // sleep-time after each error -int autosplit; // Splitting of large text messages 0=no, 1=yes 2=number with text, 3=number with UDH -int receive_before_send; // if 1 smsd tries to receive one message before sending -int store_received_pdu; // 0=no, 1=unsupported pdu's only, 2=unsupported and 8bit/unicode, 3=all -int store_sent_pdu; // 0=no, 1=failed pdu's only, 2=failed and 8bit/unicode, 3=all -int validity_period; // Validity period for messages. -int decode_unicode_text; // 1 if unicode text is decoded internally. -int internal_combine; // 1 if multipart message is combined internally. -int internal_combine_binary; // 1 if multipart binary message is combined internally. Defaults to internal_combine. -int keep_filename; // 0 if unique filename is created to each directory when a message file is moved. -int store_original_filename; // 1 if an original filename is saved to message file when it's moved from - // outgoing directory to spooler. Works together with keep_filename. -int date_filename; // 1 or 2 if YYYYMMDD is included to the filename of incoming message. -char regular_run[PATH_MAX]; // Script/program which is run regularly. -int regular_run_interval; // Number of seconds between running a regular_run script/progdam. -char admin_to[SIZE_TO]; // Destination number for administrative messages. -int filename_preview; // Number of chars of message text to concatenate to filename. -int incoming_utf8; // 1 if incoming files are saved using UTF-8 character set. -int outgoing_utf8; // 1 if outgoing files are automatically converted from UTF-8 to ISO and GSM. -int log_charconv; // 1 if character set conversion is logged. -int log_single_lines; // 1 if linefeeds are removed from the modem response to be logged. -int executable_check; // 0 if eventhandler and other executables are NOT checked during the startup checking. -int keep_messages; // For testing purposes: messages are not deleted and smsd stops after first run. -char priviledged_numbers[SIZE_PRIVILEDGED_NUMBERS]; // Priviledged numbers in incoming messages. -int ic_purge_hours; // If internal_combine is used, concatenation storage is checked every ic_purge_interval minutes -int ic_purge_minutes; // and if there is message parts older than defined, they are handled or deleted. -int ic_purge_read; // 1 = message parts are stored as single messages. 0 = parts are just deleted. -int ic_purge_interval; // -char shell[PATH_MAX]; // Shell used to run eventhandler, defaults to /bin/sh -char adminmessage_device[32]; // Name of device used to send administrative messages of mainspooler. -int smart_logging; // 1 = if loglevel is less than 7, degug log is written is there has been any errors. -int status_signal_quality; // 1 = signal quality is written to status file. -int status_include_counters; // 1 = succeeded, failed and received counters are included in the status line. -int status_include_uptime; // 3.1.16beta: 1 = include started & uptime line in the status file. -int hangup_incoming_call; // 1 = if detected unexpected input contains RING and we want to end call. -int max_continuous_sending; // Defines when sending is breaked to do check/do other tasks. Time in minutes. -int voicecall_hangup_ath; // If ATH is used instead of AT+CHUP. +extern char configfile[PATH_MAX]; // Path to config file +extern char d_spool[PATH_MAX]; // Spool directory +extern char d_failed[PATH_MAX]; // Failed spool directory +extern char d_failed_copy[PATH_MAX]; // 3.1.17. +extern char d_incoming[PATH_MAX]; // Incoming spool directory +extern char d_incoming_copy[PATH_MAX]; // 3.1.16beta2. +extern char d_report[PATH_MAX]; // Incoming report spool directory +extern char d_report_copy[PATH_MAX]; // 3.1.17. +extern char d_phonecalls[PATH_MAX]; // Incoming phonecalls data directory +extern char d_saved[PATH_MAX]; // Directory for smsd's internal use, concatenation storage files etc. +extern char d_sent[PATH_MAX]; // Sent spool directory +extern char d_sent_copy[PATH_MAX]; // 3.1.17. +extern char d_checked[PATH_MAX]; // Spool directory for checked messages (only used when no provider queues used) +extern char eventhandler[PATH_MAX]; // Global event handler program or script +extern char alarmhandler[PATH_MAX]; // Global alarm handler program or script +extern char checkhandler[PATH_MAX]; // Handler that checks if the sms file is valid. +extern int alarmlevel; // Alarm Level (9=highest). Verbosity of alarm handler. +extern char logfile[PATH_MAX]; // Name or Handle of Log File +extern int loglevel; // Log Level (9=highest). Verbosity of log file. +extern _queue queues[NUMBER_OF_MODEMS]; // Queues +extern _device devices[NUMBER_OF_MODEMS]; // Modem devices +extern int delaytime; // sleep-time after workless +extern int delaytime_mainprocess; // sleep-time after workless, main process. If -1, delaytime is used. +extern int blocktime; // sleep-time after multiple errors +extern int blockafter; // Block modem after n errors +extern int errorsleeptime; // sleep-time after each error +extern int autosplit; // Splitting of large text messages 0=no, 1=yes 2=number with text, 3=number with UDH +extern int receive_before_send; // if 1 smsd tries to receive one message before sending +extern int store_received_pdu; // 0=no, 1=unsupported pdu's only, 2=unsupported and 8bit/unicode, 3=all +extern int store_sent_pdu; // 0=no, 1=failed pdu's only, 2=failed and 8bit/unicode, 3=all +extern int validity_period; // Validity period for messages. +extern int decode_unicode_text; // 1 if unicode text is decoded internally. +extern int internal_combine; // 1 if multipart message is combined internally. +extern int internal_combine_binary; // 1 if multipart binary message is combined internally. Defaults to internal_combine. +extern int keep_filename; // 0 if unique filename is created to each directory when a message file is moved. +extern int store_original_filename; // 1 if an original filename is saved to message file when it's moved from +// outgoing directory to spooler. Works together with keep_filename. +extern int date_filename; // 1 or 2 if YYYYMMDD is included to the filename of incoming message. +extern char regular_run[PATH_MAX]; // Script/program which is run regularly. +extern int regular_run_interval; // Number of seconds between running a regular_run script/progdam. +extern char admin_to[SIZE_TO]; // Destination number for administrative messages. +extern int filename_preview; // Number of chars of message text to concatenate to filename. +extern int incoming_utf8; // 1 if incoming files are saved using UTF-8 character set. +extern int outgoing_utf8; // 1 if outgoing files are automatically converted from UTF-8 to ISO and GSM. +extern int log_charconv; // 1 if character set conversion is logged. +extern int log_single_lines; // 1 if linefeeds are removed from the modem response to be logged. +extern int executable_check; // 0 if eventhandler and other executables are NOT checked during the startup checking. +extern int keep_messages; // For testing purposes: messages are not deleted and smsd stops after first run. +extern char priviledged_numbers[SIZE_PRIVILEDGED_NUMBERS]; // Priviledged numbers in incoming messages. +extern int ic_purge_hours; // If internal_combine is used, concatenation storage is checked every ic_purge_interval minutes +extern int ic_purge_minutes; // and if there is message parts older than defined, they are handled or deleted. +extern int ic_purge_read; // 1 = message parts are stored as single messages. 0 = parts are just deleted. +extern int ic_purge_interval; // +extern char shell[PATH_MAX]; // Shell used to run eventhandler, defaults to /bin/sh +extern char adminmessage_device[32]; // Name of device used to send administrative messages of mainspooler. +extern int smart_logging; // 1 = if loglevel is less than 7, degug log is written is there has been any errors. +extern int status_signal_quality; // 1 = signal quality is written to status file. +extern int status_include_counters; // 1 = succeeded, failed and received counters are included in the status line. +extern int status_include_uptime; // 3.1.16beta: 1 = include started & uptime line in the status file. +extern int hangup_incoming_call; // 1 = if detected unexpected input contains RING and we want to end call. +extern int max_continuous_sending; // Defines when sending is breaked to do check/do other tasks. Time in minutes. +extern int voicecall_hangup_ath; // If ATH is used instead of AT+CHUP. // 3.1.5: -int trust_outgoing; // 1 = it's _sure_ that files are created by rename AND permissions are correct. Speeds up spooling. +extern int trust_outgoing; // 1 = it's _sure_ that files are created by rename AND permissions are correct. Speeds up spooling. // 3.1.5: -int ignore_outgoing_priority; // 1 = Priority: high header is not checked. Speeds up spooling. +extern int ignore_outgoing_priority; // 1 = Priority: high header is not checked. Speeds up spooling. // 3.1.7: -int ignore_exec_output; // 1 = stdout and stderr of eventhandlers is _not_ checked. +extern int ignore_exec_output; // 1 = stdout and stderr of eventhandlers is _not_ checked. // 3.1.7: -mode_t conf_umask; // File mode creation mask for smsd and modem processes. +extern mode_t conf_umask; // File mode creation mask for smsd and modem processes. // 3.1.7: -int trim_text; // 1 = trailing whitespaces are removed from text: +extern int trim_text; // 1 = trailing whitespaces are removed from text: // 3.1.7: -int use_linux_ps_trick; // 1 = change argv[0] to "smsd: MAINPROCESS", "smsd: GSM1" etc. +extern int use_linux_ps_trick; // 1 = change argv[0] to "smsd: MAINPROCESS", "smsd: GSM1" etc. // 3.1.7: -int log_unmodified; +extern int log_unmodified; // 3.1.7: -char suspend_filename[PATH_MAX]; +extern char suspend_filename[PATH_MAX]; // 3.1.9: -int spool_directory_order; +extern int spool_directory_order; // 3.1.9: 1 if read_from_modem is logged. -int log_read_from_modem; +extern int log_read_from_modem; // 3.1.16beta2: log_read_timing for performance tuning. -int log_read_timing; +extern int log_read_timing; // 3.1.16beta: -int log_response_time; +extern int log_response_time; // 3.1.16beta2: -int default_alphabet; +extern int default_alphabet; // 3.1.17: Child process for the mainprocess: -char mainprocess_child[PATH_MAX]; -char mainprocess_child_args[PATH_MAX]; +extern char mainprocess_child[PATH_MAX]; +extern char mainprocess_child_args[PATH_MAX]; // 3.1.17: Notifier for the mainprocess: -int mainprocess_notifier; +extern int mainprocess_notifier; // 3.1.17: If *_copy was made, evenhandler can use it instead of original file: -int eventhandler_use_copy; +extern int eventhandler_use_copy; // 3.1.17: This defines how long to sleep while looping: -int sleeptime_mainprocess; +extern int sleeptime_mainprocess; // 3.1.17: Defines how often PID is checked to detect if another smsd is running: -int check_pid_interval; +extern int check_pid_interval; // 3.1.18: start script/program for mainprocess: -char mainprocess_start[PATH_MAX]; -char mainprocess_start_args[PATH_MAX]; +extern char mainprocess_start[PATH_MAX]; +extern char mainprocess_start_args[PATH_MAX]; -int message_count; // Counter for sent messages. Multipart message is one message. +extern int message_count; // Counter for sent messages. Multipart message is one message. -volatile sig_atomic_t break_workless_delay; // To break the delay when SIGCONT is received. -volatile sig_atomic_t terminate; // To terminate when SIGTERM is received. +extern volatile sig_atomic_t break_workless_delay; // To break the delay when SIGCONT is received. +extern volatile sig_atomic_t terminate; // To terminate when SIGTERM is received. -char username[65]; // user and group name which are used to run. -char groupname[65]; // (max length is just a guess) +extern char username[65]; // user and group name which are used to run. +extern char groupname[65]; // (max length is just a guess) -char infofile[PATH_MAX]; // Hepler file for stopping the smsd smoothly. -char pidfile[PATH_MAX]; // File where a process id is stored. +extern char infofile[PATH_MAX]; // Hepler file for stopping the smsd smoothly. +extern char pidfile[PATH_MAX]; // File where a process id is stored. // Command line arguments: -char arg_username[65]; -char arg_groupname[65]; -char arg_infofile[PATH_MAX]; -char arg_pidfile[PATH_MAX]; -char arg_logfile[PATH_MAX]; -int arg_terminal; +extern char arg_username[65]; +extern char arg_groupname[65]; +extern char arg_infofile[PATH_MAX]; +extern char arg_pidfile[PATH_MAX]; +extern char arg_logfile[PATH_MAX]; +extern int arg_terminal; // 3.1.7: -char arg_7bit_packed[512]; -int do_encode_decode_arg_7bit_packed; +extern char arg_7bit_packed[512]; +extern int do_encode_decode_arg_7bit_packed; -int terminal; // 1 if smsd is communicating with terminal. -pid_t device_pids[NUMBER_OF_MODEMS]; // Pid's of modem processes. -char run_info[PATH_MAX]; // Information about external script/program execution. +extern int terminal; // 1 if smsd is communicating with terminal. +extern pid_t device_pids[NUMBER_OF_MODEMS]; // Pid's of modem processes. +extern char run_info[PATH_MAX]; // Information about external script/program execution. -char communicate[32]; // Device name for terminal communication mode. +extern char communicate[32]; // Device name for terminal communication mode. -char international_prefixes[PATH_MAX +1]; -char national_prefixes[PATH_MAX +1]; +extern char international_prefixes[PATH_MAX +1]; +extern char national_prefixes[PATH_MAX +1]; // Storage for startup errors: -char *startup_err_str; -int startup_err_count; +extern char *startup_err_str; +extern int startup_err_count; // Storage for PDU's: -char *incoming_pdu_store; -char *outgoing_pdu_store; -char *routed_pdu_store; +extern char *incoming_pdu_store; +extern char *outgoing_pdu_store; +extern char *routed_pdu_store; // Storage for getfile errors: -char *getfile_err_store; +extern char *getfile_err_store; // Text buffer for error messages: -char tb[SIZE_TB]; +extern char tb[SIZE_TB]; // Buffer for SIM memory checking: -char *check_memory_buffer; -size_t check_memory_buffer_size; +extern char *check_memory_buffer; +extern size_t check_memory_buffer_size; -int os_cygwin; // 1 if we are on Cygwin. +extern int os_cygwin; // 1 if we are on Cygwin. -char language_file[PATH_MAX]; // File name of translated headers. -char yes_chars[SIZE_HEADER]; // Characters which mean "yes" in the yesno() question. -char no_chars[SIZE_HEADER]; // See details inside read_translation() function. -char yes_word[SIZE_HEADER]; // "yes" printed as an output. -char no_word[SIZE_HEADER]; // "no" -char datetime_format[SIZE_HEADER]; // strftime format string for time stamps (not inside status reports). -char logtime_format[SIZE_HEADER]; // 3.1.7: strftime format string for logging time stamps -char date_filename_format[SIZE_HEADER]; // 3.1.7: strftime format string for date_filename -int translate_incoming; // 0 if incoming message headers are NOT transtaled. +extern char language_file[PATH_MAX]; // File name of translated headers. +extern char yes_chars[SIZE_HEADER]; // Characters which mean "yes" in the yesno() question. +extern char no_chars[SIZE_HEADER]; // See details inside read_translation() function. +extern char yes_word[SIZE_HEADER]; // "yes" printed as an output. +extern char no_word[SIZE_HEADER]; // "no" +extern char datetime_format[SIZE_HEADER]; // strftime format string for time stamps (not inside status reports). +extern char logtime_format[SIZE_HEADER]; // 3.1.7: strftime format string for logging time stamps +extern char date_filename_format[SIZE_HEADER]; // 3.1.7: strftime format string for date_filename +extern int translate_incoming; // 0 if incoming message headers are NOT transtaled. // 3.1.14: -int logtime_us; -int logtime_ms; +extern int logtime_us; +extern int logtime_ms; // 3.1.14: -int shell_test; +extern int shell_test; // Next two are for debugging purposes: -int enable_smsd_debug; -char smsd_debug[SIZE_SMSD_DEBUG]; // Header of an outgoing message file. +extern int enable_smsd_debug; +extern char smsd_debug[SIZE_SMSD_DEBUG]; // Header of an outgoing message file. // 3.1.20: Alt keys in communication mode: #define COMMUNICATE_A_KEY_COUNT 10 -char communicate_a_keys[COMMUNICATE_A_KEY_COUNT][256]; +extern char communicate_a_keys[COMMUNICATE_A_KEY_COUNT][256]; /* initialize all variable with default values */ Index: smstools/src/smsd_cfg.c =================================================================== --- smstools.orig/src/smsd_cfg.c 2020-07-27 19:00:41.616207603 +0000 +++ smstools/src/smsd_cfg.c 2020-08-05 19:17:41.595712888 +0000 @@ -38,6 +38,221 @@ #include "modeminit.h" #include "charshift.h" + +/* global variables */ +char process_title[32]; // smsd for main task, NOTIFIER or CHILD, name of a modem for other tasks. +int process_id; // -1 for main task, all modems have numbers starting with 0. + // This is the same as device, can be used like devices[process_id] if IS_MODEM_PROCESS. + +time_t process_start_time; + +int modem_handle; // Handle for modem. + +int put_command_timeouts; +unsigned long long put_command_sent; // 3.1.16beta. +char tmpdir[PATH_MAX]; // 3.1.16beta. + +// NOTE for regular run intervals: effective value is at least delaytime. + +char configfile[PATH_MAX]; // Path to config file +char d_spool[PATH_MAX]; // Spool directory +char d_failed[PATH_MAX]; // Failed spool directory +char d_failed_copy[PATH_MAX]; // 3.1.17. +char d_incoming[PATH_MAX]; // Incoming spool directory +char d_incoming_copy[PATH_MAX]; // 3.1.16beta2. +char d_report[PATH_MAX]; // Incoming report spool directory +char d_report_copy[PATH_MAX]; // 3.1.17. +char d_phonecalls[PATH_MAX]; // Incoming phonecalls data directory +char d_saved[PATH_MAX]; // Directory for smsd's internal use, concatenation storage files etc. +char d_sent[PATH_MAX]; // Sent spool directory +char d_sent_copy[PATH_MAX]; // 3.1.17. +char d_checked[PATH_MAX]; // Spool directory for checked messages (only used when no provider queues used) +char eventhandler[PATH_MAX]; // Global event handler program or script +char alarmhandler[PATH_MAX]; // Global alarm handler program or script +char checkhandler[PATH_MAX]; // Handler that checks if the sms file is valid. +int alarmlevel; // Alarm Level (9=highest). Verbosity of alarm handler. +char logfile[PATH_MAX]; // Name or Handle of Log File +int loglevel; // Log Level (9=highest). Verbosity of log file. +_queue queues[NUMBER_OF_MODEMS]; // Queues +_device devices[NUMBER_OF_MODEMS]; // Modem devices +int delaytime; // sleep-time after workless +int delaytime_mainprocess; // sleep-time after workless, main process. If -1, delaytime is used. +int blocktime; // sleep-time after multiple errors +int blockafter; // Block modem after n errors +int errorsleeptime; // sleep-time after each error +int autosplit; // Splitting of large text messages 0=no, 1=yes 2=number with text, 3=number with UDH +int receive_before_send; // if 1 smsd tries to receive one message before sending +int store_received_pdu; // 0=no, 1=unsupported pdu's only, 2=unsupported and 8bit/unicode, 3=all +int store_sent_pdu; // 0=no, 1=failed pdu's only, 2=failed and 8bit/unicode, 3=all +int validity_period; // Validity period for messages. +int decode_unicode_text; // 1 if unicode text is decoded internally. +int internal_combine; // 1 if multipart message is combined internally. +int internal_combine_binary; // 1 if multipart binary message is combined internally. Defaults to internal_combine. +int keep_filename; // 0 if unique filename is created to each directory when a message file is moved. +int store_original_filename; // 1 if an original filename is saved to message file when it's moved from + // outgoing directory to spooler. Works together with keep_filename. +int date_filename; // 1 or 2 if YYYYMMDD is included to the filename of incoming message. +char regular_run[PATH_MAX]; // Script/program which is run regularly. +int regular_run_interval; // Number of seconds between running a regular_run script/progdam. +char admin_to[SIZE_TO]; // Destination number for administrative messages. +int filename_preview; // Number of chars of message text to concatenate to filename. +int incoming_utf8; // 1 if incoming files are saved using UTF-8 character set. +int outgoing_utf8; // 1 if outgoing files are automatically converted from UTF-8 to ISO and GSM. +int log_charconv; // 1 if character set conversion is logged. +int log_single_lines; // 1 if linefeeds are removed from the modem response to be logged. +int executable_check; // 0 if eventhandler and other executables are NOT checked during the startup checking. +int keep_messages; // For testing purposes: messages are not deleted and smsd stops after first run. +char priviledged_numbers[SIZE_PRIVILEDGED_NUMBERS]; // Priviledged numbers in incoming messages. +int ic_purge_hours; // If internal_combine is used, concatenation storage is checked every ic_purge_interval minutes +int ic_purge_minutes; // and if there is message parts older than defined, they are handled or deleted. +int ic_purge_read; // 1 = message parts are stored as single messages. 0 = parts are just deleted. +int ic_purge_interval; // +char shell[PATH_MAX]; // Shell used to run eventhandler, defaults to /bin/sh +char adminmessage_device[32]; // Name of device used to send administrative messages of mainspooler. +int smart_logging; // 1 = if loglevel is less than 7, degug log is written is there has been any errors. +int status_signal_quality; // 1 = signal quality is written to status file. +int status_include_counters; // 1 = succeeded, failed and received counters are included in the status line. +int status_include_uptime; // 3.1.16beta: 1 = include started & uptime line in the status file. +int hangup_incoming_call; // 1 = if detected unexpected input contains RING and we want to end call. +int max_continuous_sending; // Defines when sending is breaked to do check/do other tasks. Time in minutes. +int voicecall_hangup_ath; // If ATH is used instead of AT+CHUP. + +// 3.1.5: +int trust_outgoing; // 1 = it's _sure_ that files are created by rename AND permissions are correct. Speeds up spooling. + +// 3.1.5: +int ignore_outgoing_priority; // 1 = Priority: high header is not checked. Speeds up spooling. + +// 3.1.7: +int ignore_exec_output; // 1 = stdout and stderr of eventhandlers is _not_ checked. + +// 3.1.7: +mode_t conf_umask; // File mode creation mask for smsd and modem processes. + +// 3.1.7: +int trim_text; // 1 = trailing whitespaces are removed from text: + +// 3.1.7: +int use_linux_ps_trick; // 1 = change argv[0] to "smsd: MAINPROCESS", "smsd: GSM1" etc. + +// 3.1.7: +int log_unmodified; + +// 3.1.7: +char suspend_filename[PATH_MAX]; + +// 3.1.9: +int spool_directory_order; + +// 3.1.9: 1 if read_from_modem is logged. +int log_read_from_modem; + +// 3.1.16beta2: log_read_timing for performance tuning. +int log_read_timing; + +// 3.1.16beta: +int log_response_time; + +// 3.1.16beta2: +int default_alphabet; + +// 3.1.17: Child process for the mainprocess: +char mainprocess_child[PATH_MAX]; +char mainprocess_child_args[PATH_MAX]; + +// 3.1.17: Notifier for the mainprocess: +int mainprocess_notifier; + +// 3.1.17: If *_copy was made, evenhandler can use it instead of original file: +int eventhandler_use_copy; + +// 3.1.17: This defines how long to sleep while looping: +int sleeptime_mainprocess; + +// 3.1.17: Defines how often PID is checked to detect if another smsd is running: +int check_pid_interval; + +// 3.1.18: start script/program for mainprocess: +char mainprocess_start[PATH_MAX]; +char mainprocess_start_args[PATH_MAX]; + +int message_count; // Counter for sent messages. Multipart message is one message. + +volatile sig_atomic_t break_workless_delay; // To break the delay when SIGCONT is received. +volatile sig_atomic_t terminate; // To terminate when SIGTERM is received. + +char username[65]; // user and group name which are used to run. +char groupname[65]; // (max length is just a guess) + +char infofile[PATH_MAX]; // Hepler file for stopping the smsd smoothly. +char pidfile[PATH_MAX]; // File where a process id is stored. + +// Command line arguments: +char arg_username[65]; +char arg_groupname[65]; +char arg_infofile[PATH_MAX]; +char arg_pidfile[PATH_MAX]; +char arg_logfile[PATH_MAX]; +int arg_terminal; +// 3.1.7: +char arg_7bit_packed[512]; +int do_encode_decode_arg_7bit_packed; + +int terminal; // 1 if smsd is communicating with terminal. +pid_t device_pids[NUMBER_OF_MODEMS]; // Pid's of modem processes. +char run_info[PATH_MAX]; // Information about external script/program execution. + +char communicate[32]; // Device name for terminal communication mode. + +char international_prefixes[PATH_MAX +1]; +char national_prefixes[PATH_MAX +1]; + +// Storage for startup errors: +char *startup_err_str; +int startup_err_count; + +// Storage for PDU's: +char *incoming_pdu_store; +char *outgoing_pdu_store; +char *routed_pdu_store; + +// Storage for getfile errors: +char *getfile_err_store; + +// Text buffer for error messages: +char tb[SIZE_TB]; + +// Buffer for SIM memory checking: +char *check_memory_buffer; +size_t check_memory_buffer_size; + +int os_cygwin; // 1 if we are on Cygwin. + +char language_file[PATH_MAX]; // File name of translated headers. +char yes_chars[SIZE_HEADER]; // Characters which mean "yes" in the yesno() question. +char no_chars[SIZE_HEADER]; // See details inside read_translation() function. +char yes_word[SIZE_HEADER]; // "yes" printed as an output. +char no_word[SIZE_HEADER]; // "no" +char datetime_format[SIZE_HEADER]; // strftime format string for time stamps (not inside status reports). +char logtime_format[SIZE_HEADER]; // 3.1.7: strftime format string for logging time stamps +char date_filename_format[SIZE_HEADER]; // 3.1.7: strftime format string for date_filename +int translate_incoming; // 0 if incoming message headers are NOT transtaled. + +// 3.1.14: +int logtime_us; +int logtime_ms; + +// 3.1.14: +int shell_test; + +// Next two are for debugging purposes: +int enable_smsd_debug; +char smsd_debug[SIZE_SMSD_DEBUG]; // Header of an outgoing message file. + +// 3.1.20: Alt keys in communication mode: +#define COMMUNICATE_A_KEY_COUNT 10 +char communicate_a_keys[COMMUNICATE_A_KEY_COUNT][256]; + char *msg_dir = "%s directory %s cannot be opened."; char *msg_file = "%s directory %s is not writable."; char *msg_not_executable = "is not executable for smsd."; Index: smstools/src/logging.c =================================================================== --- smstools.orig/src/logging.c 2020-07-27 19:00:41.612207583 +0000 +++ smstools/src/logging.c 2020-08-05 19:27:38.373800111 +0000 @@ -25,6 +25,16 @@ #include "smsd_cfg.h" #include "stats.h" + +// 3.1.16beta2: Moved logch() and prch() from charset.c to logging.c: +char logch_buffer[8192]; + +char prch(char ch); + +// 3.1.16beta: changed type: +//int trouble_logging_started; +time_t trouble_logging_started; + int Filehandle = -1; int Level; int SavedLevel; Index: smstools/src/logging.h =================================================================== --- smstools.orig/src/logging.h 2020-07-27 19:00:41.612207583 +0000 +++ smstools/src/logging.h 2020-08-05 19:27:52.077848035 +0000 @@ -18,7 +18,7 @@ #include // 3.1.16beta2: Moved logch() and prch() from charset.c to logging.c: -char logch_buffer[8192]; +extern char logch_buffer[8192]; #ifdef __GNUC__ void logch(char* format, ...) __attribute__ ((format(printf, 1, 2))); @@ -26,11 +26,11 @@ void logch(char* format, ...); #endif -char prch(char ch); +extern char prch(char ch); // 3.1.16beta: changed type: //int trouble_logging_started; -time_t trouble_logging_started; +extern time_t trouble_logging_started; int change_loglevel(int new_level); void restore_loglevel(); Index: smstools/src/stats.c =================================================================== --- smstools.orig/src/stats.c 2020-07-27 19:00:41.616207603 +0000 +++ smstools/src/stats.c 2020-08-05 19:28:58.094078936 +0000 @@ -29,6 +29,20 @@ #include #endif + +_stats* statistics[NUMBER_OF_MODEMS]; // Statistic data (shared memory!) +int rejected_counter; // Statistic counter, rejected SM, number does not fit into any queue +time_t start_time; // Start time of smsd, allows statistic functions +int printstatus; // if 1 smsd outputs status on stdout +time_t last_stats; // time when the last stats file was created +char d_stats[PATH_MAX]; // path to statistic files +int stats_interval; // time between statistic files in seconds. +int stats_no_zeroes; // Suppress files that contain only zeroes +int status_interval; // time between updating status file in seconds + +char *shared_buffer; + + char newstatus[NUMBER_OF_MODEMS +1] = {0}; char oldstatus[NUMBER_OF_MODEMS +1] = {0}; Index: smstools/src/stats.h =================================================================== --- smstools.orig/src/stats.h 2020-07-27 19:00:41.616207603 +0000 +++ smstools/src/stats.h 2020-08-05 19:29:14.750137182 +0000 @@ -33,17 +33,17 @@ int ber; } _stats; -_stats* statistics[NUMBER_OF_MODEMS]; // Statistic data (shared memory!) -int rejected_counter; // Statistic counter, rejected SM, number does not fit into any queue -time_t start_time; // Start time of smsd, allows statistic functions -int printstatus; // if 1 smsd outputs status on stdout -time_t last_stats; // time when the last stats file was created -char d_stats[PATH_MAX]; // path to statistic files -int stats_interval; // time between statistic files in seconds. -int stats_no_zeroes; // Suppress files that contain only zeroes -int status_interval; // time between updating status file in seconds +extern _stats* statistics[NUMBER_OF_MODEMS]; // Statistic data (shared memory!) +extern int rejected_counter; // Statistic counter, rejected SM, number does not fit into any queue +extern time_t start_time; // Start time of smsd, allows statistic functions +extern int printstatus; // if 1 smsd outputs status on stdout +extern time_t last_stats; // time when the last stats file was created +extern char d_stats[PATH_MAX]; // path to statistic files +extern int stats_interval; // time between statistic files in seconds. +extern int stats_no_zeroes; // Suppress files that contain only zeroes +extern int status_interval; // time between updating status file in seconds -char *shared_buffer; +extern char *shared_buffer; /* Creates shared memory variables for statistic data */ Index: smstools/src/blacklist.c =================================================================== --- smstools.orig/src/blacklist.c 2020-07-27 19:00:41.612207583 +0000 +++ smstools/src/blacklist.c 2020-08-05 19:34:13.903183463 +0000 @@ -23,6 +23,8 @@ #include "alarm.h" #include "smsd_cfg.h" +char blacklist[256]; // Filename of the black-list + int inblacklist(char* msisdn) { FILE* file; Index: smstools/src/blacklist.h =================================================================== --- smstools.orig/src/blacklist.h 2020-07-27 19:00:41.612207583 +0000 +++ smstools/src/blacklist.h 2020-08-05 19:34:04.903151994 +0000 @@ -15,7 +15,7 @@ #ifndef BLACK_H #define BLACK_H -char blacklist[256]; // Filename of the black-list +extern char blacklist[256]; // Filename of the black-list int inblacklist(char* msisdn); Index: smstools/src/whitelist.c =================================================================== --- smstools.orig/src/whitelist.c 2020-07-27 19:00:41.616207603 +0000 +++ smstools/src/whitelist.c 2020-08-05 19:39:23.436266057 +0000 @@ -23,6 +23,8 @@ #include "alarm.h" #include "smsd_cfg.h" +char whitelist[256]; // Filename of the white-list + /* Used with >= 3.1x */ int inwhitelist_q(char* msisdn, char *queuename) { Index: smstools/src/whitelist.h =================================================================== --- smstools.orig/src/whitelist.h 2020-07-27 19:00:41.616207603 +0000 +++ smstools/src/whitelist.h 2020-08-05 19:34:29.959239624 +0000 @@ -15,7 +15,7 @@ #ifndef WHITE_H #define WHITE_H -char whitelist[256]; // Filename of the white-list +extern char whitelist[256]; // Filename of the white-list /* Used with >= 3.1x */ int inwhitelist_q(char* msisdn, char *queuename); ================================================ FILE: package/smstools3/Config.in ================================================ config BR2_PACKAGE_SMSTOOLS3 bool "smstools3" depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS help The SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones. http://smstools3.kekekasvi.com/ if BR2_PACKAGE_SMSTOOLS3 config BR2_PACKAGE_SMSTOOLS3_NB_MODEMS int "Number of modems to support" default 1 help To reduce memory footprint of SMS Server Tools, you can specify the exact number of modems connected to your board. By default only 1 modem is used. endif comment "smstools3 needs a toolchain w/ wchar, threads" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU ================================================ FILE: package/smstools3/S50smsd ================================================ #!/bin/sh # # Starts the SMS Server Tools 3 # NAME=smsd DAEMON=/usr/bin/$NAME PIDFILE=/var/run/$NAME.pid SPOOL=/var/spool/sms start() { printf "Starting $NAME: " mkdir -p $SPOOL/outgoing mkdir -p $SPOOL/incoming mkdir -p $SPOOL/checked start-stop-daemon -S -q -p $PIDFILE --exec $DAEMON -- -c /etc/smsd.conf && echo "OK" || echo "Failed" } stop() { printf "Stopping $NAME: " start-stop-daemon -K -q -p $PIDFILE && echo "OK" || echo "Failed" rm -f $PIDFILE } case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/smstools3/smstools3.hash ================================================ # From http://smstools3.kekekasvi.com/packages/ md5 6a9f038fb38a49cc3a4f8f14a88fb8af smstools-3.1.21.tar.gz sha256 a26ba4c02b16f6cf13177bffca6c9230dc5fefaeba8e3030cd4e4905f6a92084 smstools3-3.1.21.tar.gz # Hash for license files sha256 884d8f0377259f291432f4fa31d5a9720eefa0e0d797652ae686b6325a434624 doc/license.html sha256 786b4da4dd900cad87a7dc17769458607bdeae575d62e6e98ad7144e9225f8d3 LICENSE ================================================ FILE: package/smstools3/smstools3.mk ================================================ ################################################################################ # # smstools3 # ################################################################################ SMSTOOLS3_VERSION = 3.1.21 SMSTOOLS3_SITE = http://smstools3.kekekasvi.com/packages SMSTOOLS3_LICENSE = GPL-2.0+ SMSTOOLS3_LICENSE_FILES = doc/license.html LICENSE SMSTOOLS3_SELINUX_MODULES = smstools SMSTOOLS3_CFLAGS = $(TARGET_CFLAGS) SMSTOOLS3_CFLAGS += -D NUMBER_OF_MODEMS=$(BR2_PACKAGE_SMSTOOLS3_NB_MODEMS) SMSTOOLS3_CFLAGS += -D NOSTATS define SMSTOOLS3_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CFLAGS="$(SMSTOOLS3_CFLAGS)" -C $(@D) endef define SMSTOOLS3_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/smstools3/S50smsd \ $(TARGET_DIR)/etc/init.d/S50smsd endef define SMSTOOLS3_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/src/smsd \ $(TARGET_DIR)/usr/bin/smsd $(INSTALL) -m 0755 -D $(@D)/scripts/sendsms \ $(TARGET_DIR)/usr/bin/sendsms $(INSTALL) -m 0644 -D $(@D)/examples/smsd.conf.easy \ $(TARGET_DIR)/etc/smsd.conf endef $(eval $(generic-package)) ================================================ FILE: package/snappy/Config.in ================================================ config BR2_PACKAGE_SNAPPY bool "snappy" depends on BR2_INSTALL_LIBSTDCPP help Snappy is a compression/decompression library. It does not aim for maximum compression, or compatibility with any other compression library; instead, it aims for very high speeds and reasonable compression. http://google.github.io/snappy/ comment "snappy needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/snappy/snappy.hash ================================================ # Locally calculated sha256 16b677f07832a612b0836178db7f374e414f94657c138e6993cbfc5dcc58651f snappy-1.1.8.tar.gz sha256 55172044f7e241207117448a4d9d6ba1d0925c8ad66b5d4c08c70adfa9cc3de6 COPYING ================================================ FILE: package/snappy/snappy.mk ================================================ ################################################################################ # # snappy # ################################################################################ SNAPPY_VERSION = 1.1.8 SNAPPY_SITE = $(call github,google,snappy,$(SNAPPY_VERSION)) SNAPPY_LICENSE = BSD-3-Clause SNAPPY_LICENSE_FILES = COPYING SNAPPY_CPE_ID_VENDOR = google SNAPPY_INSTALL_STAGING = YES SNAPPY_CONF_OPTS = -DSNAPPY_BUILD_TESTS=OFF $(eval $(cmake-package)) ================================================ FILE: package/sngrep/Config.in ================================================ comment "sngrep needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_SNGREP bool "sngrep" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_NCURSES select BR2_PACKAGE_LIBPCAP help sngrep is a tool for displaying SIP calls message flows from terminal. It supports live capture to display realtime SIP packets and can also be used as PCAP viewer. https://github.com/irontec/sngrep ================================================ FILE: package/sngrep/sngrep.hash ================================================ # From https://github.com/irontec/sngrep/releases/download/v1.4.7/sngrep-1.4.7.tar.gz.md5sum md5 78fe753e24f36ddaf627bc2b734f45ba sngrep-1.4.7.tar.gz # Locally computed sha256 3c96aadd8b8c6b7adb5552d6fb4234f2000f15109b0f6c5feb632c81306cc49b sngrep-1.4.7.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE ================================================ FILE: package/sngrep/sngrep.mk ================================================ ################################################################################ # # sngrep # ################################################################################ SNGREP_VERSION = 1.4.7 SNGREP_SITE = $(call github,irontec,sngrep,v$(SNGREP_VERSION)) SNGREP_LICENSE = GPL-3.0+ SNGREP_LICENSE_FILES = LICENSE SNGREP_AUTORECONF = YES SNGREP_DEPENDENCIES = libpcap ncurses host-pkgconf SNGREP_CONF_ENV += \ $(if $(BR2_STATIC_LIBS),LIBS="`$(STAGING_DIR)/usr/bin/pcap-config --static --libs`") SNGREP_CONF_OPTS += --disable-unicode # openssl and gnutls can't be enabled at the same time. ifeq ($(BR2_PACKAGE_OPENSSL),y) SNGREP_DEPENDENCIES += openssl SNGREP_CONF_OPTS += --with-openssl --without-gnutls # gnutls support also requires libgcrypt else ifeq ($(BR2_PACKAGE_GNUTLS)$(BR2_PACKAGE_LIBGCRYPT),yy) SNGREP_CONF_ENV += LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config SNGREP_DEPENDENCIES += gnutls libgcrypt SNGREP_CONF_OPTS += --with-gnutls --without-openssl else SNGREP_CONF_OPTS += --without-gnutls --without-openssl endif ifeq ($(BR2_PACKAGE_PCRE),y) SNGREP_DEPENDENCIES += pcre SNGREP_CONF_OPTS += --with-pcre else SNGREP_CONF_OPTS += --without-pcre endif $(eval $(autotools-package)) ================================================ FILE: package/snmpclitools/Config.in ================================================ config BR2_PACKAGE_SNMPCLITOOLS bool "snmpclitools" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_PYSMI # runtime select BR2_PACKAGE_PYTHON_PYSNMP # runtime help SNMP command-line tools. https://github.com/etingof/snmpclitools ================================================ FILE: package/snmpclitools/snmpclitools.hash ================================================ # md5, sha256 from https://pypi.org/pypi/snmpclitools/json md5 132b100f5e7b80715e6c1d424e89687c snmpclitools-0.6.4.tar.gz sha256 820c45de419bf355c845a96610a395ec18a15176ac0362d388da7740266ea1ac snmpclitools-0.6.4.tar.gz # Locally computed sha256 checksums sha256 ed5561a0f5b75e93aa026c1b9fdef58e7ccbf6b2e9a2458be732afc288209d23 PKG-INFO ================================================ FILE: package/snmpclitools/snmpclitools.mk ================================================ ################################################################################ # # snmpclitools # ################################################################################ SNMPCLITOOLS_VERSION = 0.6.4 SNMPCLITOOLS_SITE = https://files.pythonhosted.org/packages/03/2a/8488828e92a82c5416e33fba6089283162937b0f73e5b15205fb6ec3bbea SNMPCLITOOLS_SETUP_TYPE = setuptools SNMPCLITOOLS_LICENSE = BSD-2-Clause SNMPCLITOOLS_LICENSE_FILES = PKG-INFO $(eval $(python-package)) ================================================ FILE: package/snmppp/Config.in ================================================ config BR2_PACKAGE_SNMPPP bool "snmp++" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS help SNMP++v3.x is a C++ API which supports SNMP v1, v2c, and v3. http://www.agentpp.com/snmp_pp3_x/snmp_pp3_x.html if BR2_PACKAGE_SNMPPP config BR2_PACKAGE_SNMPPP_LOGGING bool "enable logging" help Enable logging output for SNMP++. According to the SNMP++ documentation, disabling logging "increases performance drastically and minimizes memory consumption". config BR2_PACKAGE_SNMPPP_SNMPV3 bool "enable SNMPv3" default y depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL help Enable optional support for SNMP++. This selects OpenSSL. comment "SNMPv3 needs a toolchain w/ gcc >= 4.8" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 endif comment "snmp++ needs a toolchain w/ threads, C++, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS ================================================ FILE: package/snmppp/snmppp.hash ================================================ # Locally computed: sha256 a3eb75e2310c315d9b2c2094154c7cd9b46684adb80a4b36b8957dcc09af4041 snmp++-3.4.2.tar.gz sha256 f6fd4321c7eb6e51a272f91f964aea7f53039bb2b55f690d5a9d042f3a5d79b9 src/v3.cpp ================================================ FILE: package/snmppp/snmppp.mk ================================================ ################################################################################ # # snmppp # ################################################################################ SNMPPP_VERSION = 3.4.2 SNMPPP_SOURCE = snmp++-$(SNMPPP_VERSION).tar.gz SNMPPP_SITE = http://www.agentpp.com/download SNMPPP_DEPENDENCIES = host-pkgconf SNMPPP_INSTALL_STAGING = YES SNMPPP_CONF_OPTS = $(if $(BR2_PACKAGE_SNMPPP_LOGGING),--enable-logging,--disable-logging) SNMPPP_LICENSE = SNMP++ SNMPPP_LICENSE_FILES = src/v3.cpp ifeq ($(BR2_PACKAGE_SNMPPP_SNMPV3),y) SNMPPP_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" SNMPPP_CONF_OPTS += --enable-snmpv3 SNMPPP_DEPENDENCIES += openssl else SNMPPP_CONF_OPTS += --disable-snmpv3 endif $(eval $(autotools-package)) ================================================ FILE: package/snort/0001-configure.in-Avoid-path-poisoning-with-libpcap.patch ================================================ From 732459ca3423799ae3386df3de3f5d6ea2af1b95 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 1 Apr 2018 15:18:51 +0200 Subject: [PATCH] configure.in: Avoid path poisoning with libpcap Prevent usage of unsafe libpcap header path when cross compiling. Signed-off-by: Romain Naour Cc: Sergio Prado --- From http://patchwork.ozlabs.org/patch/860363/ --- configure.in | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index 4b3a5db..1e940b1 100644 --- a/configure.in +++ b/configure.in @@ -70,8 +70,10 @@ case "$host" in *-linux*) linux="yes" AC_DEFINE([LINUX],[1],[Define if Linux]) - AC_SUBST(extra_incl) - extra_incl="-I/usr/include/pcap" + if test -z "x$with_libpcap_includes"; then + AC_SUBST(extra_incl) + extra_incl="-I/usr/include/pcap" + fi ;; *-hpux10*|*-hpux11*) AC_DEFINE([HPUX],[1],[Define if HP-UX 10 or 11]) -- 2.14.3 ================================================ FILE: package/snort/0002-configure.in-Allow-to-override-the-INADDR_NONE-check.patch ================================================ From a6817677a42d1294f1a3ce7b9f46b10ec557ddfa Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 1 Apr 2018 15:23:59 +0200 Subject: [PATCH] configure.in: Allow to override the INADDR_NONE check Prevent configure script from trying to run programs in a cross compilation environment to check if INADDR_NONE is defined. In the context of Buildroot, INADDR_NONE is always defined. The snort package will set have_inaddr_none=yes in SNORT_CONF_ENV. Signed-off-by: Romain Naour Cc: Sergio Prado --- configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index 1e940b1..938409f 100644 --- a/configure.in +++ b/configure.in @@ -284,8 +284,8 @@ AC_CHECK_TYPES([int8_t,int16_t,int32_t,int64_t]) AC_CHECK_TYPES([boolean]) # In case INADDR_NONE is not defined (like on Solaris) +AC_CACHE_CHECK([for INADDR_NONE], [have_inaddr_none], [ have_inaddr_none="no" -AC_MSG_CHECKING([for INADDR_NONE]) AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[ @@ -298,7 +298,7 @@ AC_RUN_IFELSE( return 0; ]])], [have_inaddr_none="yes"], -[have_inaddr_none="no"]) +[have_inaddr_none="no"])]) AC_MSG_RESULT($have_inaddr_none) if test "x$have_inaddr_none" = "xno"; then AC_DEFINE([INADDR_NONE],[-1],[For INADDR_NONE definition]) -- 2.14.3 ================================================ FILE: package/snort/0003-configure.in-convert-AC_RUN_IFELSE-to-AC_CHECK_MEMBE.patch ================================================ From 1ef6bdaeb0463a208a14e5d90646ce337df738fc Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 1 Apr 2018 15:38:55 +0200 Subject: [PATCH] configure.in: convert AC_RUN_IFELSE to AC_CHECK_MEMBERS With AC_CHECK_MEMBERS, we don't need to compile and run a test program to check if a daq structure element is defined. Also check DAQ_Data_Channel_Params_t with params.flags typedef struct _DAQ_Data_Channel_Params_t { unsigned flags; /* DAQ_DATA_CHANNEL_* flags*/ unsigned timeout_ms;/* timeout of the data channel in milliseconds */ unsigned length; /* [Future] length of the data associated with the data channel */ uint8_t* data; /* [Future] opaque data blob to return with the data channel */ } DAQ_Data_Channel_Params_t; https://github.com/Xiche/libdaq/blob/master/api/daq_common.h Signed-off-by: Romain Naour Cc: Sergio Prado --- configure.in | 143 +++++++++++++++++------------------------------------------ 1 file changed, 41 insertions(+), 102 deletions(-) diff --git a/configure.in b/configure.in index 938409f..571322b 100644 --- a/configure.in +++ b/configure.in @@ -718,17 +718,11 @@ fi AC_CHECK_FUNCS([daq_hup_apply] [daq_acquire_with_meta] [daq_dp_add_dc]) AC_MSG_CHECKING([for daq real addresses]) -AC_RUN_IFELSE( -[AC_LANG_PROGRAM( -[[ -#include -]], -[[ - DAQ_PktHdr_t hdr; - hdr.n_real_dPort = 0; -]])], -[have_daq_real_addresses="yes"], -[have_daq_real_addresses="no"]) + +AC_CHECK_MEMBERS([DAQ_PktHdr_t hdr.n_real_dPort], + [have_daq_real_addresses="yes"], + [have_daq_real_addresses="no"], + [[#include ]]) AC_MSG_RESULT($have_daq_real_addresses) if test "x$have_daq_real_addresses" = "xyes"; then AC_DEFINE([HAVE_DAQ_REAL_ADDRESSES],[1], @@ -756,17 +750,11 @@ if test "x$ac_cv_func_daq_dp_add_dc" = "xyes"; then fi AC_MSG_CHECKING([for daq address space ID]) -AC_RUN_IFELSE( -[AC_LANG_PROGRAM( -[[ -#include -]], -[[ - DAQ_PktHdr_t hdr; - hdr.address_space_id = 0; -]])], -[have_daq_address_space_id="yes"], -[have_daq_address_space_id="no"]) + +AC_CHECK_MEMBERS([DAQ_PktHdr_t hdr.address_space_id], + [have_daq_address_space_id="yes"], + [have_daq_address_space_id="no"], + [[#include ]]) AC_MSG_RESULT($have_daq_address_space_id) if test "x$have_daq_address_space_id" = "xyes"; then AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1], @@ -774,17 +762,10 @@ if test "x$have_daq_address_space_id" = "xyes"; then fi AC_MSG_CHECKING([for daq flow ID]) -AC_RUN_IFELSE( -[AC_LANG_PROGRAM( -[[ -#include -]], -[[ - DAQ_PktHdr_t hdr; - hdr.flow_id = 0; -]])], -[have_daq_flow_id="yes"], -[have_daq_flow_id="no"]) +AC_CHECK_MEMBERS([DAQ_PktHdr_t hdr.flow_id], + [have_daq_flow_id="yes"], + [have_daq_flow_id="no"], + [[#include ]]) AC_MSG_RESULT($have_daq_flow_id) if test "x$have_daq_flow_id" = "xyes"; then AC_DEFINE([HAVE_DAQ_FLOW_ID],[1], @@ -792,19 +773,10 @@ if test "x$have_daq_flow_id" = "xyes"; then fi AC_MSG_CHECKING([for daq extended flow modifiers]) -AC_RUN_IFELSE( -[AC_LANG_PROGRAM( -[[ -#include -]], -[[ - DAQ_ModFlow_t mod; - mod.type = 0; - mod.length = 0; - mod.value = NULL; -]])], -[have_daq_ext_modflow="yes"], -[have_daq_ext_modflow="no"]) +AC_CHECK_MEMBERS([DAQ_ModFlow_t mod.type, DAQ_ModFlow_t mod.length, DAQ_ModFlow_t mod.value], + [have_daq_ext_modflow="yes"], + [have_daq_ext_modflow="no"], + [[#include ]]) AC_MSG_RESULT($have_daq_ext_modflow) if test "x$have_daq_ext_modflow" = "xyes"; then CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_EXT_MODFLOW" @@ -813,19 +785,11 @@ if test "x$have_daq_ext_modflow" = "xyes"; then fi AC_MSG_CHECKING([for daq query flow]) -AC_RUN_IFELSE( -[AC_LANG_PROGRAM( -[[ -#include -]], -[[ - DAQ_QueryFlow_t mod; - mod.type = 0; - mod.length = 0; - mod.value = NULL; -]])], -[have_daq_queryflow="yes"], -[have_daq_queryflow="no"]) + +AC_CHECK_MEMBERS([DAQ_QueryFlow_t mod.type, DAQ_QueryFlow_t mod.length, DAQ_QueryFlow_t mod.value], + [have_daq_queryflow="yes"], + [have_daq_queryflow="no"], + [[#include ]]) AC_MSG_RESULT($have_daq_queryflow) if test "x$have_daq_queryflow" = "xyes"; then CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_QUERYFLOW" @@ -834,16 +798,11 @@ if test "x$have_daq_queryflow" = "xyes"; then fi AC_MSG_CHECKING([for daq data channel flags]) -AC_RUN_IFELSE( -[AC_LANG_PROGRAM( -[[ -#include -]], -[[ - DAQ_Data_Channel_Params_t params; -]])], -[have_daq_data_channel_flags="yes"], -[have_daq_data_channel_flags="no"]) + +AC_CHECK_MEMBERS([DAQ_Data_Channel_Params_t params.flags], + [have_daq_data_channel_flags="yes"], + [have_daq_data_channel_flags="no"], + [[#include ]]) AC_MSG_RESULT($have_daq_data_channel_flags) if test "x$have_daq_data_channel_flags" = "xyes"; then CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_PARAMS" @@ -852,17 +811,10 @@ if test "x$have_daq_data_channel_flags" = "xyes"; then fi AC_MSG_CHECKING([for separate IP versions on pinhole endpoints]) -AC_RUN_IFELSE( -[AC_LANG_PROGRAM( -[[ -#include -]], -[[ - DAQ_DP_key_t dpKey; - dpKey.src_af = 0; -]])], -[have_daq_data_channel_separate_ip_versions="yes"], -[have_daq_data_channel_separate_ip_versions="no"]) +AC_CHECK_MEMBERS([DAQ_DP_key_t dpKey.src_af], + [have_daq_data_channel_separate_ip_versions="yes"], + [have_daq_data_channel_separate_ip_versions="no"], + [[#include ]]) AC_MSG_RESULT($have_daq_data_channel_separate_ip_versions) if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_SEPARATE_IP_VERSIONS" @@ -889,17 +841,10 @@ if test "x$have_daq_verdict_retry" = "xyes"; then fi AC_MSG_CHECKING([for daq packet trace]) -AC_RUN_IFELSE( -[AC_LANG_PROGRAM( -[[ -#include -]], -[[ - DAQ_PktHdr_t hdr; - hdr.flags = DAQ_PKT_FLAG_TRACE_ENABLED; -]])], -[have_daq_packet_trace="yes"], -[have_daq_packet_trace="no"]) +AC_CHECK_MEMBERS([DAQ_PktHdr_t hdr.flags], + [have_daq_packet_trace="yes"], + [have_daq_packet_trace="no"], + [[#include ]]) AC_MSG_RESULT($have_daq_packet_trace) if test "x$have_daq_packet_trace" = "xyes"; then AC_DEFINE([HAVE_DAQ_PKT_TRACE],[1], @@ -909,17 +854,11 @@ else fi AC_MSG_CHECKING([for daq verdict reason]) -AC_RUN_IFELSE( -[AC_LANG_PROGRAM( -[[ -#include -]], -[[ - DAQ_ModFlow_t fl; - fl.type = DAQ_MODFLOW_TYPE_VER_REASON; -]])], -[have_daq_verdict_reason="yes"], -[have_daq_verdict_reason="no"]) + +AC_CHECK_MEMBERS([DAQ_ModFlow_t fl.type], + [have_daq_verdict_reason="yes"], + [have_daq_verdict_reason="no"], + [[#include ]]) AC_MSG_RESULT($have_daq_verdict_reason) if test "x$have_daq_verdict_reason" = "xyes"; then AC_DEFINE([HAVE_DAQ_VERDICT_REASON],[1], -- 2.14.3 ================================================ FILE: package/snort/0004-configure.in-convert-AC_RUN_IFELSE-to-AC_COMPILE_IFE.patch ================================================ From 075b5cf8d3940ed2c39fb37c1e14a652e4a6f2fc Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 1 Apr 2018 16:21:31 +0200 Subject: [PATCH] configure.in: convert AC_RUN_IFELSE to AC_COMPILE_IFELSE Prevent configure script from trying to run programs in a cross compilation environment. Signed-off-by: Romain Naour Cc: Sergio Prado --- configure.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.in b/configure.in index 571322b..e489037 100644 --- a/configure.in +++ b/configure.in @@ -431,7 +431,7 @@ if test "x$LPCAP" = "xno"; then fi AC_MSG_CHECKING([for pcap_lex_destroy]) -AC_RUN_IFELSE( +AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include @@ -823,7 +823,7 @@ if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then fi AC_MSG_CHECKING([for DAQ_VERDICT_RETRY]) -AC_RUN_IFELSE( +AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include @@ -886,7 +886,7 @@ if eval "echo $host_cpu|grep -i sparc >/dev/null"; then OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -mcpu=v9 " AC_MSG_CHECKING([for sparc %time register]) - AC_RUN_IFELSE( + AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[]], [[ -- 2.14.3 ================================================ FILE: package/snort/0005-fix-sparc.patch ================================================ When checking if the architecture supports the %time register instruction, do not force -mcpu to v9 while doing so. Otherwise it's like "let's see if this v9 instruction exists when I force the compiler to think I'm using v9", which is non-sensical. Signed-off-by: Fabrice Fontaine diff -Naurp ./snort-2.9.11.1-orig/configure.in snort-2.9.11.1/configure.in --- ./snort-2.9.11.1-orig/configure.in 2018-05-10 12:20:19.253510678 +0200 +++ snort-2.9.11.1/configure.in 2018-05-10 12:40:18.547584998 +0200 @@ -942,8 +942,6 @@ fi # check for sparc %time register if eval "echo $host_cpu|grep -i sparc >/dev/null"; then - OLD_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -mcpu=v9 " AC_MSG_CHECKING([for sparc %time register]) AC_RUN_IFELSE( [AC_LANG_PROGRAM( @@ -957,8 +955,6 @@ if eval "echo $host_cpu|grep -i sparc >/ AC_MSG_RESULT($sparcv9) if test "x$sparcv9" = "xyes"; then AC_DEFINE([SPARCV9],[1],[For sparc v9 with %time register]) - else - CFLAGS="$OLD_CFLAGS" fi fi ================================================ FILE: package/snort/0006-Fix-compile-error-when-building-against-uclibc-or-mu.patch ================================================ From dc2f54097da3cd493b8f4d06a14ef40be484d24f Mon Sep 17 00:00:00 2001 From: Sergio Prado Date: Thu, 21 Feb 2019 15:02:08 -0300 Subject: [PATCH] Fix compile error when building against uclibc or musl The build fails when dereferencing the rpcent structure with uclibc or musl C libraries. ../../../src/dynamic-preprocessors/appid/service_plugins/service_rpc.c:241:20: error: dereferencing pointer to incomplete type ‘struct rpcent’ if (rpc->r_name) That's because rpc.h should be included when using these C libraries. Signed-off-by: Sergio Prado --- src/dynamic-preprocessors/appid/service_plugins/service_rpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dynamic-preprocessors/appid/service_plugins/service_rpc.c b/src/dynamic-preprocessors/appid/service_plugins/service_rpc.c index 81bc8a5db8ab..2e45246083a8 100644 --- a/src/dynamic-preprocessors/appid/service_plugins/service_rpc.c +++ b/src/dynamic-preprocessors/appid/service_plugins/service_rpc.c @@ -32,7 +32,7 @@ #include "flow.h" #include "service_api.h" -#if defined(FREEBSD) || defined(OPENBSD) +#if defined(FREEBSD) || defined(OPENBSD) || (defined(LINUX) && defined(__UCLIBC__) && !defined(__UCLIBC_HAS_RPC__) || !defined(__GLIBC__)) #include "rpc/rpc.h" #endif -- 2.7.4 ================================================ FILE: package/snort/0007-Fix-error-when-building-on-a-Fedora-host-machine.patch ================================================ From eae97632157b73f0ca7c099232617b2777d0fa54 Mon Sep 17 00:00:00 2001 From: Sergio Prado Date: Sat, 21 Dec 2019 12:00:42 -0300 Subject: [PATCH] Fix error when building on a Fedora host machine. Remove the code that adds unsafe header/library path when cross-compiling on a Fedora host machine. Signed-off-by: Sergio Prado [Fabrice: Update for 2.9.18.1 (also fix build on Centos host machine)] Signed-off-by: Fabrice Fontaine --- configure.in | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/configure.in b/configure.in index e6586f399898..fb35d4d7e3e3 100644 --- a/configure.in +++ b/configure.in @@ -957,54 +957,6 @@ if test "x$enable_dlclose" = "xno"; then AC_DEFINE([DISABLE_DLCLOSE_FOR_VALGRIND_TESTING],[1],[Don't close opened shared objects for valgrind leak testing of dynamic libraries]) fi -################################################## -# Fedora 28+ does not have inbuilt SunRPC support# -# in glibc and is separately availble in tirpc # -# package. Make sure we've got the library and # -# link it # -################################################## - -if test -f /etc/fedora-release ; then - DISTRO_VERSION=$(awk '{ print $3 }' /etc/fedora-release) - if test $DISTRO_VERSION -ge 28 ; then - TIRPC="" - AC_CHECK_LIB(tirpc,bindresvport,, TIRPC="no") - echo "$TIRPC" - if test "x$TIRPC" = "xno"; then - echo - echo " ERROR! tirpc not found, get it by running " - echo " yum install libtirpc-devel " - exit - fi - LIBS="${LIBS} -ltirpc" - extra_incl="-I/usr/include/tirpc" - fi -fi - -################################################## -# Centos 8+ does not have inbuilt SunRPC support # -# in glibc and is separately availble in tirpc # -# package. Make sure we've got the library and # -# link it # -################################################## -if test -f /etc/centos-release ; then - LINUX_FLAVOUR=$(awk '{ print $1 }' /etc/centos-release) - DISTRO_VERSION=`cut -d ' ' -f 4 /etc/centos-release | cut -d '.' -f 1` - if [[ "$LINUX_FLAVOUR" == "CentOS" ]] && [[ $DISTRO_VERSION -ge 8 ]]; then - TIRPC="" - AC_CHECK_LIB(tirpc,bindresvport,, TIRPC="no") - echo "$TIRPC" - if test "x$TIRPC" = "xno"; then - echo - echo " ERROR! tirpc not found, get it by running " - echo " yum install libtirpc-devel or dnf install libtirpc-devel" - exit - fi - LIBS="${LIBS} -ltirpc" - extra_incl="-I/usr/include/tirpc" - fi -fi - Z_LIB="" AC_CHECK_HEADERS(zlib.h,, Z_LIB="no") if test "x$Z_LIB" = "xno"; then -- 2.17.1 ================================================ FILE: package/snort/Config.in ================================================ config BR2_PACKAGE_SNORT bool "snort" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # daq depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_TOOLCHAIN_HAS_THREADS # libtirpc select BR2_PACKAGE_LIBDNET select BR2_PACKAGE_LIBPCAP select BR2_PACKAGE_DAQ select BR2_PACKAGE_PCRE select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_PACKAGE_ZLIB help Snort is a free and open source network intrusion prevention system (IPS) and network intrusion detection system (IDS). It can perform protocol analysis, content searching/matching, and can be used to detect a variety of attacks and probes, such as buffer overflows, stealth port scans, CGI attacks, SMB probes, OS fingerprinting attempts, and much more. https://www.snort.org comment "snort 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 || BR2_TOOLCHAIN_HAS_NATIVE_RPC) ================================================ FILE: package/snort/snort.hash ================================================ # From https://www.snort.org/downloads/snort/md5s md5 2b4e30300ef6feca1f60c267e727c6c0 snort-2.9.18.1.tar.gz # Locally computed: sha256 da8af0f1b2e4f247d970c6a3c0e83fb6dcd5c84faa21aea49f306f269e8e28aa snort-2.9.18.1.tar.gz # Hash for license files: sha256 f98260a6d3e5ef4ede8a2a6b698e5ac91d64c09243f7171e1c5b17b920a835c7 LICENSE sha256 3f1cbfb20bb2c608e1a474421880d08b8cba6abb00ab7736d22c481d71656a6d COPYING ================================================ FILE: package/snort/snort.mk ================================================ ################################################################################ # # snort # ################################################################################ SNORT_VERSION = 2.9.18.1 SNORT_SITE = https://www.snort.org/downloads/snort SNORT_LICENSE = GPL-2.0 SNORT_LICENSE_FILES = LICENSE COPYING SNORT_CPE_ID_VENDOR = snort SNORT_SELINUX_MODULES = snort SNORT_DEPENDENCIES = libpcap libdnet daq pcre zlib host-pkgconf # patching configure.in SNORT_AUTORECONF = YES SNORT_CONF_OPTS = \ --with-libpcre-includes=$(STAGING_DIR)/usr/include \ --with-libpcre-libraries=$(STAGING_DIR)/usr/lib \ --with-libpcap-includes=$(STAGING_DIR)/usr/include/pcap \ --disable-static-daq ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) SNORT_CFLAGS += -O0 endif ifeq ($(BR2_PACKAGE_LIBTIRPC),y) SNORT_DEPENDENCIES += libtirpc SNORT_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc` SNORT_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs libtirpc` endif # luajit and openssl should be enabled to build with # OpenAppID support ifeq ($(BR2_PACKAGE_LUAJIT)$(BR2_PACKAGE_OPENSSL),yy) SNORT_DEPENDENCIES += luajit openssl SNORT_CONF_OPTS += --enable-open-appid else SNORT_CONF_OPTS += --disable-open-appid endif SNORT_CONF_ENV = \ CFLAGS="$(TARGET_CFLAGS) $(SNORT_CFLAGS)" \ LIBS="$(SNORT_LIBS)" \ have_inaddr_none=yes $(eval $(autotools-package)) ================================================ FILE: package/snort3/Config.in ================================================ config BR2_PACKAGE_SNORT3 bool "snort3" depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit depends on !(BR2_PACKAGE_DAQ || BR2_PACKAGE_SNORT) depends on BR2_USE_MMU # fork() depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS # daq3 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS # daq3, hwloc depends on BR2_USE_WCHAR select BR2_PACKAGE_DAQ3 select BR2_PACKAGE_FLEX select BR2_PACKAGE_HWLOC select BR2_PACKAGE_LIBDNET select BR2_PACKAGE_LIBPCAP select BR2_PACKAGE_LUAJIT select BR2_PACKAGE_PCRE select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help Snort 3 is the next generation Snort IPS (Intrusion Prevention System). - Support multiple packet processing threads - Shared configuration and attribute table - Use a simple, scriptable configuration - Make key components pluggable - Autodetect services for portless configuration - Support sticky buffers in rules - Autogenerate reference documentation - Provide better cross platform support https://www.snort.org/snort3 comment "snort3 needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 4.9" depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS depends on !(BR2_PACKAGE_DAQ || BR2_PACKAGE_SNORT) depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/snort3/snort3.hash ================================================ # Locally computed: sha256 4f7852898eaac48a7cfaff61c79a3c3a5a86a54db9d2a7d5b758297bf52f1f12 snort3-3.1.6.0.tar.gz # Hash for license files: sha256 3f1cbfb20bb2c608e1a474421880d08b8cba6abb00ab7736d22c481d71656a6d COPYING sha256 f98260a6d3e5ef4ede8a2a6b698e5ac91d64c09243f7171e1c5b17b920a835c7 LICENSE ================================================ FILE: package/snort3/snort3.mk ================================================ ################################################################################ # # snort3 # ################################################################################ SNORT3_VERSION = 3.1.6.0 SNORT3_SITE = $(call github,snort3,snort3,$(SNORT3_VERSION)) SNORT3_LICENSE = GPL-2.0 SNORT3_LICENSE_FILES = COPYING LICENSE SNORT3_DEPENDENCIES = \ host-pkgconf daq3 flex hwloc libdnet libpcap luajit openssl pcre zlib SNORT3_CONF_OPTS = \ -DENABLE_GDB=OFF \ -DENABLE_STATIC_DAQ=OFF \ -DMAKE_DOC=OFF ifeq ($(BR2_PACKAGE_FLATBUFFERS),y) SNORT3_DEPENDENCIES += flatbuffers SNORT3_CONF_OPTS += -DHAVE_FLATBUFFERS=ON else SNORT3_CONF_OPTS += -DHAVE_FLATBUFFERS=OFF endif ifeq ($(BR2_PACKAGE_LIBICONV),y) SNORT3_DEPENDENCIES += libiconv SNORT3_CONF_OPTS += -DHAVE_ICONV=ON endif ifeq ($(BR2_PACKAGE_LIBTIRPC),y) SNORT3_DEPENDENCIES += libtirpc endif ifeq ($(BR2_PACKAGE_SAFECLIB),y) SNORT3_DEPENDENCIES += safeclib SNORT3_CONF_OPTS += -DENABLE_SAFEC=ON else SNORT3_CONF_OPTS += -DENABLE_SAFEC=OFF endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y) SNORT3_DEPENDENCIES += util-linux SNORT3_CONF_OPTS += -DHAVE_UUID=ON else SNORT3_CONF_OPTS += -DHAVE_UUID=OFF endif ifeq ($(BR2_PACKAGE_XZ),y) SNORT3_DEPENDENCIES += xz SNORT3_CONF_OPTS += -DHAVE_LZMA=ON else SNORT3_CONF_OPTS += -DHAVE_LZMA=OFF endif # Uses __atomic_load_8 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) SNORT3_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif $(eval $(cmake-package)) ================================================ FILE: package/socat/0001-no-documentation.patch ================================================ socat: disable documentation build/installation The documentation generation process requires a special yold2man program, for which we don't have a package in Buildroot. Since we generally don't care much about documentation of packages, just adjust the package Makefile.in to not build/install its documentation. Signed-off-by: Thomas Petazzoni Index: b/Makefile.in =================================================================== --- a/Makefile.in +++ b/Makefile.in @@ -93,7 +93,7 @@ Config/Makefile.Cygwin-1-5-25 Config/config.Cygwin-1-5-25.h \ Config/Makefile.MacOSX-10-5 Config/config.MacOSX-10-5.h -all: progs doc +all: progs scmclean: gitclean @@ -136,13 +136,11 @@ strip: progs strip $(PROGS) -install: progs $(srcdir)/doc/socat.1 +install: progs mkdir -p $(DESTDIR)$(BINDEST) $(INSTALL) -m 755 socat $(DESTDIR)$(BINDEST) $(INSTALL) -m 755 procan $(DESTDIR)$(BINDEST) $(INSTALL) -m 755 filan $(DESTDIR)$(BINDEST) - mkdir -p $(DESTDIR)$(MANDEST)/man1 - $(INSTALL) -m 644 $(srcdir)/doc/socat.1 $(DESTDIR)$(MANDEST)/man1/ uninstall: rm -f $(DESTDIR)$(BINDEST)/socat ================================================ FILE: package/socat/0002-compat-set-NETDB_INTERNAL.patch ================================================ From e7804d1750652e39c7a5803d360b29b2637a695f Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 28 Aug 2016 21:04:01 +0200 Subject: [PATCH] compat: set NETDB_INTERNAL Musl doesn't provide NETDB_INTERNAL which is defined in resolv/netdb.h in Glibc [1]. Set NETDB_INTERNAL to -1 locally if not already defined. Based on [2]. [1] https://sourceware.org/git/?p=glibc.git;a=blob;f=resolv/netdb.h;h=3aba530932c7a62a4f23e3193e9186da677f552b;hb=fdfc9260b61d3d72541f18104d24c7bcb0ce5ca2#l74 [2] http://git.alpinelinux.org/cgit/aports/tree/main/socat/netdb-internal.patch?id=5a45173b50892cb634197c30b3506ebff98d3b7d Signed-off-by: Romain Naour --- compat.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compat.h b/compat.h index 19a929f..4f5ee6d 100644 --- a/compat.h +++ b/compat.h @@ -666,6 +666,8 @@ typedef int sig_atomic_t; #if !defined(NETDB_INTERNAL) && defined(h_NETDB_INTERNAL) # define NETDB_INTERNAL h_NETDB_INTERNAL +#elif !defined(NETDB_INTERNAL) +# define NETDB_INTERNAL (-1) #endif #ifndef INET_ADDRSTRLEN -- 2.5.5 ================================================ FILE: package/socat/Config.in ================================================ config BR2_PACKAGE_SOCAT bool "socat" depends on BR2_USE_MMU # fork() help Multipurpose socket relay program. http://www.dest-unreach.org/socat/ ================================================ FILE: package/socat/socat.hash ================================================ # From http://www.dest-unreach.org/socat/download.md5sum md5 36cad050ecf4981ab044c3fbd75c643f socat-1.7.4.1.tar.bz2 # From http://www.dest-unreach.org/socat/download.sha256sum sha256 3faca25614e89123dff5045680549ecef519d02e331aaf3c4f5a8f6837c675e9 socat-1.7.4.1.tar.bz2 # Locally calculated sha256 b1ebebbce145027f4268211f36d121b083aeeabdc1736eb144b8afd8e86ce8da README sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 fd9e48ca316a5032069b9521f4f4b4d9b1c60365012bae1e62286bcd5bd2e761 COPYING.OpenSSL ================================================ FILE: package/socat/socat.mk ================================================ ################################################################################ # # socat # ################################################################################ SOCAT_VERSION = 1.7.4.1 SOCAT_SOURCE = socat-$(SOCAT_VERSION).tar.bz2 SOCAT_SITE = http://www.dest-unreach.org/socat/download SOCAT_LICENSE = GPL-2.0 with OpenSSL exception SOCAT_LICENSE_FILES = README COPYING COPYING.OpenSSL SOCAT_CPE_ID_VENDOR = dest-unreach ifeq ($(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpc64le),y) SOCAT_CONF_ENV += \ sc_cv_sys_crdly_shift=12 \ sc_cv_sys_tabdly_shift=10 \ sc_cv_sys_csize_shift=8 else SOCAT_CONF_ENV += \ sc_cv_sys_crdly_shift=9 \ sc_cv_sys_tabdly_shift=11 \ sc_cv_sys_csize_shift=4 endif # We need to run autoconf to regenerate the configure script, since we patch # configure.in and Makefile.in. However, the package only uses autoconf and not # automake, so we can't use the normal autoreconf logic. SOCAT_DEPENDENCIES = host-autoconf # incompatibile license (GPL-3.0+) SOCAT_CONF_OPTS = --disable-readline ifeq ($(BR2_PACKAGE_OPENSSL),y) SOCAT_DEPENDENCIES += openssl else SOCAT_CONF_OPTS += --disable-openssl endif define SOCAT_RUN_AUTOCONF (cd $(@D); $(AUTOCONF)) endef SOCAT_PRE_CONFIGURE_HOOKS += SOCAT_RUN_AUTOCONF $(eval $(autotools-package)) ================================================ FILE: package/socketcand/0001-Fix-GCC10-build-failure.patch ================================================ From ae0af080058a576d62c72ffc011d644d0b4dcb98 Mon Sep 17 00:00:00 2001 From: Yegor Yefremov Date: Tue, 7 Jul 2020 19:39:41 +0200 Subject: [PATCH] Fix GCC10 build failure (#17) GCC10 breaks on multiple definitions: ld: /tmp/ccFiGYO7.o:(.bss+0x114): multiple definition of `tv'; /tmp/cc7f6J5h.o:(.bss+0x80): first defined here Change the scope of the related variables. Signed-off-by: Yegor Yefremov [Retrieved from: https://github.com/linux-can/socketcand/commit/ae0af080058a576d62c72ffc011d644d0b4dcb98] Signed-off-by: Fabrice Fontaine --- socketcand.c | 3 ++- state_bcm.c | 4 ++-- state_isotp.c | 2 +- state_raw.c | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/socketcand.c b/socketcand.c index 8d84754..6125be9 100644 --- a/socketcand.c +++ b/socketcand.c @@ -102,7 +102,6 @@ socklen_t unaddrlen; struct sockaddr_un remote_unaddr; socklen_t remote_unaddrlen; char* interface_string; -struct ifreq ifr, ifr_brd; int state_changed(char *buf, int current_state) { @@ -666,6 +665,8 @@ int receive_command(int socket, char *buffer) { } void determine_adress() { + struct ifreq ifr, ifr_brd; + int probe_socket = socket(AF_INET, SOCK_DGRAM, 0); if(probe_socket < 0) { diff --git a/state_bcm.c b/state_bcm.c index cfaa8ed..05a5f7c 100644 --- a/state_bcm.c +++ b/state_bcm.c @@ -28,8 +28,6 @@ #define RXLEN 128 int sc = -1; -fd_set readfds; -struct timeval tv; void state_bcm() { int i, j, ret; @@ -38,6 +36,7 @@ void state_bcm() { struct ifreq ifr; char rxmsg[RXLEN]; char buf[MAXLEN]; + fd_set readfds; struct { struct bcm_msg_head msg_head; @@ -91,6 +90,7 @@ void state_bcm() { } if (FD_ISSET(sc, &readfds)) { + struct timeval tv; ret = recvfrom(sc, &msg, sizeof(msg), 0, (struct sockaddr*)&caddr, &caddrlen); diff --git a/state_isotp.c b/state_isotp.c index 5c671f9..e1b944b 100644 --- a/state_isotp.c +++ b/state_isotp.c @@ -25,7 +25,6 @@ #include int si = -1; -fd_set readfds; void state_isotp() { int i, items, ret; @@ -39,6 +38,7 @@ void state_isotp() { char buf[MAXLEN]; /* inet commands to can */ unsigned char isobuf[ISOTPLEN+1]; /* binary buffer for isotp socket */ unsigned char tmp; + fd_set readfds; while(previous_state != STATE_ISOTP) { diff --git a/state_raw.c b/state_raw.c index e83e6ec..2c49975 100644 --- a/state_raw.c +++ b/state_raw.c @@ -25,7 +25,6 @@ int raw_socket; struct ifreq ifr; struct sockaddr_can addr; -fd_set readfds; struct msghdr msg; struct can_frame frame; struct iovec iov; @@ -36,6 +35,7 @@ struct cmsghdr *cmsg; void state_raw() { char buf[MAXLEN]; int i, ret, items; + fd_set readfds; if(previous_state != STATE_RAW) { ================================================ FILE: package/socketcand/Config.in ================================================ config BR2_PACKAGE_SOCKETCAND bool "socketcand" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() help Socketcand is a daemon that provides access to CAN interfaces on a machine via a network interface. https://github.com/dschanoeh/socketcand comment "socketcand needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/socketcand/socketcand.hash ================================================ # Locally computed sha256 3c5cc7af4ff707ac344e62d2e37a74b59aeccd14b88e837cc142c52b69d64a39 socketcand-69e2201222f015a1abe7a58ecf61325012cd91b1.tar.gz sha256 18bda0db4e3c56cefdb1b9b01b7eada7764c0746f6321378c30d78f5ee81cfee socketcand.c ================================================ FILE: package/socketcand/socketcand.mk ================================================ ################################################################################ # # socketcand # ################################################################################ SOCKETCAND_VERSION = 69e2201222f015a1abe7a58ecf61325012cd91b1 SOCKETCAND_SITE = $(call github,linux-can,socketcand,$(SOCKETCAND_VERSION)) SOCKETCAND_AUTORECONF = YES SOCKETCAND_LICENSE = BSD-3-Clause or GPL-2.0 SOCKETCAND_LICENSE_FILES = socketcand.c ifeq ($(BR2_PACKAGE_LIBCONFIG),y) SOCKETCAND_DEPENDENCIES += libconfig else SOCKETCAND_CONF_OPTS = --without-config endif $(eval $(autotools-package)) ================================================ FILE: package/sofia-sip/Config.in ================================================ config BR2_PACKAGE_SOFIA_SIP bool "sofia-sip" depends on BR2_TOOLCHAIN_HAS_THREADS help Sofia-SIP is an open-source SIP User-Agent library, compliant with the IETF RFC3261 specification (see the feature table). It can be used as a building block for SIP client software for uses such as VoIP, IM, and many other real-time and person-to-person communication services. https://github.com/freeswitch/sofia-sip comment "sofia-sip needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/sofia-sip/sofia-sip.hash ================================================ # Locally computed sha256 b539444a5d03e281b829ee9133ae9e717f2d2a03399808365e5ab85574e25d95 sofia-sip-1.13.3-8071e8accd.tar.gz sha256 e1c0890440efe31b6cd2ee2abf895eb917c787799f079133f5809414d90d5d60 COPYING sha256 b402ae58cf355b33be8fa023f704a039e3d41ecaccd2bbcda43ca31d703e4556 COPYRIGHTS ================================================ FILE: package/sofia-sip/sofia-sip.mk ================================================ ################################################################################ # # sofia-sip # ################################################################################ SOFIA_SIP_VERSION = 1.13.3-8071e8accd SOFIA_SIP_SITE = https://files.freeswitch.org/downloads/libs SOFIA_SIP_INSTALL_STAGING = YES SOFIA_SIP_DEPENDENCIES = host-pkgconf SOFIA_SIP_LICENSE = LGPL-2.1+ SOFIA_SIP_LICENSE_FILES = COPYING COPYRIGHTS SOFIA_SIP_CONF_OPTS = --with-doxygen=no ifeq ($(BR2_PACKAGE_LIBGLIB2),y) SOFIA_SIP_CONF_OPTS += --with-glib SOFIA_SIP_DEPENDENCIES += libglib2 else SOFIA_SIP_CONF_OPTS += --without-glib endif ifeq ($(BR2_PACKAGE_OPENSSL),y) SOFIA_SIP_CONF_OPTS += \ --enable-nth \ --with-openssl=pkg-config SOFIA_SIP_DEPENDENCIES += openssl else SOFIA_SIP_CONF_OPTS += \ --disable-nth \ --without-openssl endif $(eval $(autotools-package)) ================================================ FILE: package/softether/0001-Create-autotools-plumbing-for-SoftEther.patch ================================================ From c5e5d7e93c6f3302adf5821c29c4efdb7630e418 Mon Sep 17 00:00:00 2001 From: Darik Horn Date: Sat, 12 Apr 2014 17:46:04 -0400 Subject: [PATCH] Create autotools plumbing for SoftEther. Add autoconf and automake capabilities to SoftEther so that it can be built like this: # autoreconf --force --install # ./configure # make install DESTDIR=/tmp/softether All standard configure parameters are supported, plus: # ./configure --enable-debug Autotools support makes porting, cross compiling, and optimization much easier. These GNU autoconf-archive components are used for dependency checking: * ax_check_openssl.m4 * ax_check_zlib.m4 * ax_lib_readline.m4 * ax_pthread.m4 * ax_with_curses.m4 NB: http://www.gnu.org/software/autoconf-archive/ [Upstream commit: https://github.com/dajhorn/SoftEtherVPN/commit/c5e5d7e93c6f3302adf5821c29c4efdb7630e418] Signed-off-by: Thomas Petazzoni [Fabrice: update for 4.30-9700-beta] Signed-off-by: Fabrice Fontaine --- Makefile.am | 21 ++ autotools/ax_check_openssl.m4 | 124 ++++++++++ autotools/ax_check_zlib.m4 | 142 +++++++++++ autotools/ax_lib_readline.m4 | 107 +++++++++ autotools/ax_pthread.m4 | 332 ++++++++++++++++++++++++++ autotools/ax_with_curses.m4 | 518 +++++++++++++++++++++++++++++++++++++++++ autotools/softether.am | 39 ++++ configure.ac | 96 ++++++++ configure => manual_configure | 0 src/Cedar/Makefile.am | 82 +++++++ src/Makefile.am | 26 +++ src/Mayaqua/Makefile.am | 43 ++++ src/bin/hamcore/Makefile.am | 29 +++ src/hamcorebuilder/Makefile.am | 29 +++ src/vpnbridge/Makefile.am | 29 +++ src/vpnclient/Makefile.am | 29 +++ src/vpncmd/Makefile.am | 29 +++ src/vpnserver/Makefile.am | 29 +++ 18 files changed, 1704 insertions(+) create mode 100644 Makefile.am create mode 100644 autotools/ax_check_openssl.m4 create mode 100644 autotools/ax_check_zlib.m4 create mode 100644 autotools/ax_lib_readline.m4 create mode 100644 autotools/ax_pthread.m4 create mode 100644 autotools/ax_with_curses.m4 create mode 100644 autotools/softether.am create mode 100644 configure.ac rename configure => manual_configure (100%) create mode 100644 src/Cedar/Makefile.am create mode 100644 src/Makefile.am create mode 100644 src/Mayaqua/Makefile.am create mode 100644 src/bin/hamcore/Makefile.am create mode 100644 src/hamcorebuilder/Makefile.am create mode 100644 src/vpnbridge/Makefile.am create mode 100644 src/vpnclient/Makefile.am create mode 100644 src/vpncmd/Makefile.am create mode 100644 src/vpnserver/Makefile.am diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 00000000..aa73b2ba --- /dev/null +++ b/Makefile.am @@ -0,0 +1,21 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +ACLOCAL_AMFLAGS = -I autotools +include $(top_srcdir)/autotools/softether.am +SUBDIRS = src diff --git a/autotools/ax_check_openssl.m4 b/autotools/ax_check_openssl.m4 new file mode 100644 index 00000000..a87c5a6b --- /dev/null +++ b/autotools/ax_check_openssl.m4 @@ -0,0 +1,124 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_openssl.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_OPENSSL([action-if-found[, action-if-not-found]]) +# +# DESCRIPTION +# +# Look for OpenSSL in a number of default spots, or in a user-selected +# spot (via --with-openssl). Sets +# +# OPENSSL_INCLUDES to the include directives required +# OPENSSL_LIBS to the -l directives required +# OPENSSL_LDFLAGS to the -L or -R flags required +# +# and calls ACTION-IF-FOUND or ACTION-IF-NOT-FOUND appropriately +# +# This macro sets OPENSSL_INCLUDES such that source files should use the +# openssl/ directory in include directives: +# +# #include +# +# LICENSE +# +# Copyright (c) 2009,2010 Zmanda Inc. +# Copyright (c) 2009,2010 Dustin J. Mitchell +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 8 + +AU_ALIAS([CHECK_SSL], [AX_CHECK_OPENSSL]) +AC_DEFUN([AX_CHECK_OPENSSL], [ + found=false + AC_ARG_WITH([openssl], + [AS_HELP_STRING([--with-openssl=DIR], + [root of the OpenSSL directory])], + [ + case "$withval" in + "" | y | ye | yes | n | no) + AC_MSG_ERROR([Invalid --with-openssl value]) + ;; + *) ssldirs="$withval" + ;; + esac + ], [ + # if pkg-config is installed and openssl has installed a .pc file, + # then use that information and don't search ssldirs + AC_PATH_PROG([PKG_CONFIG], [pkg-config]) + if test x"$PKG_CONFIG" != x""; then + OPENSSL_LDFLAGS=`$PKG_CONFIG openssl --libs-only-L 2>/dev/null` + if test $? = 0; then + OPENSSL_LIBS=`$PKG_CONFIG openssl --libs-only-l 2>/dev/null` + OPENSSL_INCLUDES=`$PKG_CONFIG openssl --cflags-only-I 2>/dev/null` + found=true + fi + fi + + # no such luck; use some default ssldirs + if ! $found; then + ssldirs="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr" + fi + ] + ) + + + # note that we #include , so the OpenSSL headers have to be in + # an 'openssl' subdirectory + + if ! $found; then + OPENSSL_INCLUDES= + for ssldir in $ssldirs; do + AC_MSG_CHECKING([for openssl/ssl.h in $ssldir]) + if test -f "$ssldir/include/openssl/ssl.h"; then + OPENSSL_INCLUDES="-I$ssldir/include" + OPENSSL_LDFLAGS="-L$ssldir/lib" + OPENSSL_LIBS="-lssl -lcrypto" + found=true + AC_MSG_RESULT([yes]) + break + else + AC_MSG_RESULT([no]) + fi + done + + # if the file wasn't found, well, go ahead and try the link anyway -- maybe + # it will just work! + fi + + # try the preprocessor and linker with our new flags, + # being careful not to pollute the global LIBS, LDFLAGS, and CPPFLAGS + + AC_MSG_CHECKING([whether compiling and linking against OpenSSL works]) + echo "Trying link with OPENSSL_LDFLAGS=$OPENSSL_LDFLAGS;" \ + "OPENSSL_LIBS=$OPENSSL_LIBS; OPENSSL_INCLUDES=$OPENSSL_INCLUDES" >&AS_MESSAGE_LOG_FD + + save_LIBS="$LIBS" + save_LDFLAGS="$LDFLAGS" + save_CPPFLAGS="$CPPFLAGS" + LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS" + LIBS="$OPENSSL_LIBS $LIBS" + CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([#include ], [SSL_new(NULL)])], + [ + AC_MSG_RESULT([yes]) + $1 + ], [ + AC_MSG_RESULT([no]) + $2 + ]) + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + + AC_SUBST([OPENSSL_INCLUDES]) + AC_SUBST([OPENSSL_LIBS]) + AC_SUBST([OPENSSL_LDFLAGS]) +]) diff --git a/autotools/ax_check_zlib.m4 b/autotools/ax_check_zlib.m4 new file mode 100644 index 00000000..ae5705f6 --- /dev/null +++ b/autotools/ax_check_zlib.m4 @@ -0,0 +1,142 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_zlib.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_ZLIB([action-if-found], [action-if-not-found]) +# +# DESCRIPTION +# +# This macro searches for an installed zlib library. If nothing was +# specified when calling configure, it searches first in /usr/local and +# then in /usr, /opt/local and /sw. If the --with-zlib=DIR is specified, +# it will try to find it in DIR/include/zlib.h and DIR/lib/libz.a. If +# --without-zlib is specified, the library is not searched at all. +# +# If either the header file (zlib.h) or the library (libz) is not found, +# shell commands 'action-if-not-found' is run. If 'action-if-not-found' is +# not specified, the configuration exits on error, asking for a valid zlib +# installation directory or --without-zlib. +# +# If both header file and library are found, shell commands +# 'action-if-found' is run. If 'action-if-found' is not specified, the +# default action appends '-I${ZLIB_HOME}/include' to CPFLAGS, appends +# '-L$ZLIB_HOME}/lib' to LDFLAGS, prepends '-lz' to LIBS, and calls +# AC_DEFINE(HAVE_LIBZ). You should use autoheader to include a definition +# for this symbol in a config.h file. Sample usage in a C/C++ source is as +# follows: +# +# #ifdef HAVE_LIBZ +# #include +# #endif /* HAVE_LIBZ */ +# +# LICENSE +# +# Copyright (c) 2008 Loic Dachary +# Copyright (c) 2010 Bastien Chevreux +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 14 + +AU_ALIAS([CHECK_ZLIB], [AX_CHECK_ZLIB]) +AC_DEFUN([AX_CHECK_ZLIB], +# +# Handle user hints +# +[AC_MSG_CHECKING(if zlib is wanted) +zlib_places="/usr/local /usr /opt/local /sw" +AC_ARG_WITH([zlib], +[ --with-zlib=DIR root directory path of zlib installation @<:@defaults to + /usr/local or /usr if not found in /usr/local@:>@ + --without-zlib to disable zlib usage completely], +[if test "$withval" != no ; then + AC_MSG_RESULT(yes) + if test -d "$withval" + then + zlib_places="$withval $zlib_places" + else + AC_MSG_WARN([Sorry, $withval does not exist, checking usual places]) + fi +else + zlib_places= + AC_MSG_RESULT(no) +fi], +[AC_MSG_RESULT(yes)]) + +# +# Locate zlib, if wanted +# +if test -n "${zlib_places}" +then + # check the user supplied or any other more or less 'standard' place: + # Most UNIX systems : /usr/local and /usr + # MacPorts / Fink on OSX : /opt/local respectively /sw + for ZLIB_HOME in ${zlib_places} ; do + if test -f "${ZLIB_HOME}/include/zlib.h"; then break; fi + ZLIB_HOME="" + done + + ZLIB_OLD_LDFLAGS=$LDFLAGS + ZLIB_OLD_CPPFLAGS=$CPPFLAGS + if test -n "${ZLIB_HOME}"; then + LDFLAGS="$LDFLAGS -L${ZLIB_HOME}/lib" + CPPFLAGS="$CPPFLAGS -I${ZLIB_HOME}/include" + fi + AC_LANG_SAVE + AC_LANG_C + AC_CHECK_LIB([z], [inflateEnd], [zlib_cv_libz=yes], [zlib_cv_libz=no]) + AC_CHECK_HEADER([zlib.h], [zlib_cv_zlib_h=yes], [zlib_cv_zlib_h=no]) + AC_LANG_RESTORE + if test "$zlib_cv_libz" = "yes" && test "$zlib_cv_zlib_h" = "yes" + then + # + # If both library and header were found, action-if-found + # + m4_ifblank([$1],[ + CPPFLAGS="$CPPFLAGS -I${ZLIB_HOME}/include" + LDFLAGS="$LDFLAGS -L${ZLIB_HOME}/lib" + LIBS="-lz $LIBS" + AC_DEFINE([HAVE_LIBZ], [1], + [Define to 1 if you have `z' library (-lz)]) + ],[ + # Restore variables + LDFLAGS="$ZLIB_OLD_LDFLAGS" + CPPFLAGS="$ZLIB_OLD_CPPFLAGS" + $1 + ]) + else + # + # If either header or library was not found, action-if-not-found + # + m4_default([$2],[ + AC_MSG_ERROR([either specify a valid zlib installation with --with-zlib=DIR or disable zlib usage with --without-zlib]) + ]) + fi +fi +]) diff --git a/autotools/ax_lib_readline.m4 b/autotools/ax_lib_readline.m4 new file mode 100644 index 00000000..056f25c2 --- /dev/null +++ b/autotools/ax_lib_readline.m4 @@ -0,0 +1,107 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_lib_readline.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_LIB_READLINE +# +# DESCRIPTION +# +# Searches for a readline compatible library. If found, defines +# `HAVE_LIBREADLINE'. If the found library has the `add_history' function, +# sets also `HAVE_READLINE_HISTORY'. Also checks for the locations of the +# necessary include files and sets `HAVE_READLINE_H' or +# `HAVE_READLINE_READLINE_H' and `HAVE_READLINE_HISTORY_H' or +# 'HAVE_HISTORY_H' if the corresponding include files exists. +# +# The libraries that may be readline compatible are `libedit', +# `libeditline' and `libreadline'. Sometimes we need to link a termcap +# library for readline to work, this macro tests these cases too by trying +# to link with `libtermcap', `libcurses' or `libncurses' before giving up. +# +# Here is an example of how to use the information provided by this macro +# to perform the necessary includes or declarations in a C file: +# +# #ifdef HAVE_LIBREADLINE +# # if defined(HAVE_READLINE_READLINE_H) +# # include +# # elif defined(HAVE_READLINE_H) +# # include +# # else /* !defined(HAVE_READLINE_H) */ +# extern char *readline (); +# # endif /* !defined(HAVE_READLINE_H) */ +# char *cmdline = NULL; +# #else /* !defined(HAVE_READLINE_READLINE_H) */ +# /* no readline */ +# #endif /* HAVE_LIBREADLINE */ +# +# #ifdef HAVE_READLINE_HISTORY +# # if defined(HAVE_READLINE_HISTORY_H) +# # include +# # elif defined(HAVE_HISTORY_H) +# # include +# # else /* !defined(HAVE_HISTORY_H) */ +# extern void add_history (); +# extern int write_history (); +# extern int read_history (); +# # endif /* defined(HAVE_READLINE_HISTORY_H) */ +# /* no history */ +# #endif /* HAVE_READLINE_HISTORY */ +# +# LICENSE +# +# Copyright (c) 2008 Ville Laurikari +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 6 + +AU_ALIAS([VL_LIB_READLINE], [AX_LIB_READLINE]) +AC_DEFUN([AX_LIB_READLINE], [ + AC_CACHE_CHECK([for a readline compatible library], + ax_cv_lib_readline, [ + ORIG_LIBS="$LIBS" + for readline_lib in readline edit editline; do + for termcap_lib in "" termcap curses ncurses; do + if test -z "$termcap_lib"; then + TRY_LIB="-l$readline_lib" + else + TRY_LIB="-l$readline_lib -l$termcap_lib" + fi + LIBS="$ORIG_LIBS $TRY_LIB" + AC_TRY_LINK_FUNC(readline, ax_cv_lib_readline="$TRY_LIB") + if test -n "$ax_cv_lib_readline"; then + break + fi + done + if test -n "$ax_cv_lib_readline"; then + break + fi + done + if test -z "$ax_cv_lib_readline"; then + ax_cv_lib_readline="no" + fi + LIBS="$ORIG_LIBS" + ]) + + if test "$ax_cv_lib_readline" != "no"; then + LIBS="$LIBS $ax_cv_lib_readline" + AC_DEFINE(HAVE_LIBREADLINE, 1, + [Define if you have a readline compatible library]) + AC_CHECK_HEADERS(readline.h readline/readline.h) + AC_CACHE_CHECK([whether readline supports history], + ax_cv_lib_readline_history, [ + ax_cv_lib_readline_history="no" + AC_TRY_LINK_FUNC(add_history, ax_cv_lib_readline_history="yes") + ]) + if test "$ax_cv_lib_readline_history" = "yes"; then + AC_DEFINE(HAVE_READLINE_HISTORY, 1, + [Define if your readline library has \`add_history']) + AC_CHECK_HEADERS(history.h readline/history.h) + fi + fi +])dnl diff --git a/autotools/ax_pthread.m4 b/autotools/ax_pthread.m4 new file mode 100644 index 00000000..d383ad5c --- /dev/null +++ b/autotools/ax_pthread.m4 @@ -0,0 +1,332 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_pthread.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +# +# DESCRIPTION +# +# This macro figures out how to build C programs using POSIX threads. It +# sets the PTHREAD_LIBS output variable to the threads library and linker +# flags, and the PTHREAD_CFLAGS output variable to any special C compiler +# flags that are needed. (The user can also force certain compiler +# flags/libs to be tested by setting these environment variables.) +# +# Also sets PTHREAD_CC to any special C compiler that is needed for +# multi-threaded programs (defaults to the value of CC otherwise). (This +# is necessary on AIX to use the special cc_r compiler alias.) +# +# NOTE: You are assumed to not only compile your program with these flags, +# but also link it with them as well. e.g. you should link with +# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS +# +# If you are only building threads programs, you may wish to use these +# variables in your default LIBS, CFLAGS, and CC: +# +# LIBS="$PTHREAD_LIBS $LIBS" +# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CC="$PTHREAD_CC" +# +# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant +# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name +# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +# +# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the +# PTHREAD_PRIO_INHERIT symbol is defined when compiling with +# PTHREAD_CFLAGS. +# +# ACTION-IF-FOUND is a list of shell commands to run if a threads library +# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it +# is not found. If ACTION-IF-FOUND is not specified, the default action +# will define HAVE_PTHREAD. +# +# Please let the authors know if this macro fails on any platform, or if +# you have any other suggestions or comments. This macro was based on work +# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help +# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by +# Alejandro Forero Cuervo to the autoconf macro repository. We are also +# grateful for the helpful feedback of numerous users. +# +# Updated for Autoconf 2.68 by Daniel Richard G. +# +# LICENSE +# +# Copyright (c) 2008 Steven G. Johnson +# Copyright (c) 2011 Daniel Richard G. +# +# 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 . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 21 + +AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) +AC_DEFUN([AX_PTHREAD], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_LANG_PUSH([C]) +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) + AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes]) + AC_MSG_RESULT([$ax_pthread_ok]) + if test x"$ax_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case ${host_os} in + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" + ;; + + darwin*) + ax_pthread_flags="-pthread $ax_pthread_flags" + ;; +esac + +# Clang doesn't consider unrecognized options an error unless we specify +# -Werror. We throw in some extra Clang-specific options to ensure that +# this doesn't happen for GCC, which also accepts -Werror. + +AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags]) +save_CFLAGS="$CFLAGS" +ax_pthread_extra_flags="-Werror" +CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument" +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])], + [AC_MSG_RESULT([yes])], + [ax_pthread_extra_flags= + AC_MSG_RESULT([no])]) +CFLAGS="$save_CFLAGS" + +if test x"$ax_pthread_ok" = xno; then +for flag in $ax_pthread_flags; do + + case $flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; + + -*) + AC_MSG_CHECKING([whether pthreads work with $flag]) + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) + if test x"$ax_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + AC_MSG_CHECKING([for the pthreads library -l$flag]) + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include + static void routine(void *a) { a = 0; } + static void *start_routine(void *a) { return a; }], + [pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */])], + [ax_pthread_ok=yes], + []) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + AC_MSG_RESULT([$ax_pthread_ok]) + if test "x$ax_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$ax_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + AC_MSG_CHECKING([for joinable pthread attribute]) + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [int attr = $attr; return attr /* ; */])], + [attr_name=$attr; break], + []) + done + AC_MSG_RESULT([$attr_name]) + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name], + [Define to necessary symbol if this constant + uses a non-standard name on your system.]) + fi + + AC_MSG_CHECKING([if more special flags are required for pthreads]) + flag=no + case ${host_os} in + aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; + osf* | hpux*) flag="-D_REENTRANT";; + solaris*) + if test "$GCC" = "yes"; then + flag="-D_REENTRANT" + else + # TODO: What about Clang on Solaris? + flag="-mt -D_REENTRANT" + fi + ;; + esac + AC_MSG_RESULT([$flag]) + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], + [ax_cv_PTHREAD_PRIO_INHERIT], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[int i = PTHREAD_PRIO_INHERIT;]])], + [ax_cv_PTHREAD_PRIO_INHERIT=yes], + [ax_cv_PTHREAD_PRIO_INHERIT=no]) + ]) + AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"], + [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])]) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != xyes; then + case $host_os in + aix*) + AS_CASE(["x/$CC"], + [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], + [#handle absolute path differently from PATH based program lookup + AS_CASE(["x$CC"], + [x/*], + [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])], + [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])]) + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + +AC_SUBST([PTHREAD_LIBS]) +AC_SUBST([PTHREAD_CFLAGS]) +AC_SUBST([PTHREAD_CC]) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$ax_pthread_ok" = xyes; then + ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) + : +else + ax_pthread_ok=no + $2 +fi +AC_LANG_POP +])dnl AX_PTHREAD diff --git a/autotools/ax_with_curses.m4 b/autotools/ax_with_curses.m4 new file mode 100644 index 00000000..e4cbd31b --- /dev/null +++ b/autotools/ax_with_curses.m4 @@ -0,0 +1,518 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_with_curses.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_WITH_CURSES +# +# DESCRIPTION +# +# This macro checks whether a SysV or X/Open-compatible Curses library is +# present, along with the associated header file. The NcursesW +# (wide-character) library is searched for first, followed by Ncurses, +# then the system-default plain Curses. The first library found is the +# one returned. +# +# The following options are understood: --with-ncursesw, --with-ncurses, +# --without-ncursesw, --without-ncurses. The "--with" options force the +# macro to use that particular library, terminating with an error if not +# found. The "--without" options simply skip the check for that library. +# The effect on the search pattern is: +# +# (no options) - NcursesW, Ncurses, Curses +# --with-ncurses --with-ncursesw - NcursesW only [*] +# --without-ncurses --with-ncursesw - NcursesW only [*] +# --with-ncursesw - NcursesW only [*] +# --with-ncurses --without-ncursesw - Ncurses only [*] +# --with-ncurses - NcursesW, Ncurses [**] +# --without-ncurses --without-ncursesw - Curses only +# --without-ncursesw - Ncurses, Curses +# --without-ncurses - NcursesW, Curses +# +# [*] If the library is not found, abort the configure script. +# +# [**] If the second library (Ncurses) is not found, abort configure. +# +# The following preprocessor symbols may be defined by this macro if the +# appropriate conditions are met: +# +# HAVE_CURSES - if any SysV or X/Open Curses library found +# HAVE_CURSES_ENHANCED - if library supports X/Open Enhanced functions +# HAVE_CURSES_COLOR - if library supports color (enhanced functions) +# HAVE_CURSES_OBSOLETE - if library supports certain obsolete features +# HAVE_NCURSESW - if NcursesW (wide char) library is to be used +# HAVE_NCURSES - if the Ncurses library is to be used +# +# HAVE_CURSES_H - if is present and should be used +# HAVE_NCURSESW_H - if should be used +# HAVE_NCURSES_H - if should be used +# HAVE_NCURSESW_CURSES_H - if should be used +# HAVE_NCURSES_CURSES_H - if should be used +# +# (These preprocessor symbols are discussed later in this document.) +# +# The following output variable is defined by this macro; it is precious +# and may be overridden on the ./configure command line: +# +# CURSES_LIB - library to add to xxx_LDADD +# +# The library listed in CURSES_LIB is NOT added to LIBS by default. You +# need to add CURSES_LIB to the appropriate xxx_LDADD line in your +# Makefile.am. For example: +# +# prog_LDADD = @CURSES_LIB@ +# +# If CURSES_LIB is set on the configure command line (such as by running +# "./configure CURSES_LIB=-lmycurses"), then the only header searched for +# is . The user may use the CPPFLAGS precious variable to +# override the standard #include search path. If the user needs to +# specify an alternative path for a library (such as for a non-standard +# NcurseW), the user should use the LDFLAGS variable. +# +# The following shell variables may be defined by this macro: +# +# ax_cv_curses - set to "yes" if any Curses library found +# ax_cv_curses_enhanced - set to "yes" if Enhanced functions present +# ax_cv_curses_color - set to "yes" if color functions present +# ax_cv_curses_obsolete - set to "yes" if obsolete features present +# +# ax_cv_ncursesw - set to "yes" if NcursesW library found +# ax_cv_ncurses - set to "yes" if Ncurses library found +# ax_cv_plaincurses - set to "yes" if plain Curses library found +# ax_cv_curses_which - set to "ncursesw", "ncurses", "plaincurses" or "no" +# +# These variables can be used in your configure.ac to determine the level +# of support you need from the Curses library. For example, if you must +# have either Ncurses or NcursesW, you could include: +# +# AX_WITH_CURSES +# if test "x$ax_cv_ncursesw" != xyes && test "x$ax_cv_ncurses" != xyes; then +# AC_MSG_ERROR([requires either NcursesW or Ncurses library]) +# fi +# +# If any Curses library will do (but one must be present and must support +# color), you could use: +# +# AX_WITH_CURSES +# if test "x$ax_cv_curses" != xyes || test "x$ax_cv_curses_color" != xyes; then +# AC_MSG_ERROR([requires an X/Open-compatible Curses library with color]) +# fi +# +# Certain preprocessor symbols and shell variables defined by this macro +# can be used to determine various features of the Curses library. In +# particular, HAVE_CURSES and ax_cv_curses are defined if the Curses +# library found conforms to the traditional SysV and/or X/Open Base Curses +# definition. Any working Curses library conforms to this level. +# +# HAVE_CURSES_ENHANCED and ax_cv_curses_enhanced are defined if the +# library supports the X/Open Enhanced Curses definition. In particular, +# the wide-character types attr_t, cchar_t and wint_t, the functions +# wattr_set() and wget_wch() and the macros WA_NORMAL and _XOPEN_CURSES +# are checked. The Ncurses library does NOT conform to this definition, +# although NcursesW does. +# +# HAVE_CURSES_COLOR and ax_cv_curses_color are defined if the library +# supports color functions and macros such as COLOR_PAIR, A_COLOR, +# COLOR_WHITE, COLOR_RED and init_pair(). These are NOT part of the +# X/Open Base Curses definition, but are part of the Enhanced set of +# functions. The Ncurses library DOES support these functions, as does +# NcursesW. +# +# HAVE_CURSES_OBSOLETE and ax_cv_curses_obsolete are defined if the +# library supports certain features present in SysV and BSD Curses but not +# defined in the X/Open definition. In particular, the functions +# getattrs(), getcurx() and getmaxx() are checked. +# +# To use the HAVE_xxx_H preprocessor symbols, insert the following into +# your system.h (or equivalent) header file: +# +# #if defined HAVE_NCURSESW_CURSES_H +# # include +# #elif defined HAVE_NCURSESW_H +# # include +# #elif defined HAVE_NCURSES_CURSES_H +# # include +# #elif defined HAVE_NCURSES_H +# # include +# #elif defined HAVE_CURSES_H +# # include +# #else +# # error "SysV or X/Open-compatible Curses header file required" +# #endif +# +# For previous users of this macro: you should not need to change anything +# in your configure.ac or Makefile.am, as the previous (serial 10) +# semantics are still valid. However, you should update your system.h (or +# equivalent) header file to the fragment shown above. You are encouraged +# also to make use of the extended functionality provided by this version +# of AX_WITH_CURSES, as well as in the additional macros +# AX_WITH_CURSES_PANEL, AX_WITH_CURSES_MENU and AX_WITH_CURSES_FORM. +# +# LICENSE +# +# Copyright (c) 2009 Mark Pulford +# Copyright (c) 2009 Damian Pietras +# Copyright (c) 2012 Reuben Thomas +# Copyright (c) 2011 John Zaitseff +# +# 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 . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 15 + +AU_ALIAS([MP_WITH_CURSES], [AX_WITH_CURSES]) +AC_DEFUN([AX_WITH_CURSES], [ + AC_ARG_VAR([CURSES_LIB], [linker library for Curses, e.g. -lcurses]) + AC_ARG_WITH([ncurses], [AS_HELP_STRING([--with-ncurses], + [force the use of Ncurses or NcursesW])], + [], [with_ncurses=check]) + AC_ARG_WITH([ncursesw], [AS_HELP_STRING([--without-ncursesw], + [do not use NcursesW (wide character support)])], + [], [with_ncursesw=check]) + + ax_saved_LIBS=$LIBS + AS_IF([test "x$with_ncurses" = xyes || test "x$with_ncursesw" = xyes], + [ax_with_plaincurses=no], [ax_with_plaincurses=check]) + + ax_cv_curses_which=no + + # Test for NcursesW + + AS_IF([test "x$CURSES_LIB" = x && test "x$with_ncursesw" != xno], [ + LIBS="$ax_saved_LIBS -lncursesw" + + AC_CACHE_CHECK([for NcursesW wide-character library], [ax_cv_ncursesw], [ + AC_LINK_IFELSE([AC_LANG_CALL([], [initscr])], + [ax_cv_ncursesw=yes], [ax_cv_ncursesw=no]) + ]) + AS_IF([test "x$ax_cv_ncursesw" = xno && test "x$with_ncursesw" = xyes], [ + AC_MSG_ERROR([--with-ncursesw specified but could not find NcursesW library]) + ]) + + AS_IF([test "x$ax_cv_ncursesw" = xyes], [ + ax_cv_curses=yes + ax_cv_curses_which=ncursesw + CURSES_LIB="-lncursesw" + AC_DEFINE([HAVE_NCURSESW], [1], [Define to 1 if the NcursesW library is present]) + AC_DEFINE([HAVE_CURSES], [1], [Define to 1 if a SysV or X/Open compatible Curses library is present]) + + AC_CACHE_CHECK([for working ncursesw/curses.h], [ax_cv_header_ncursesw_curses_h], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + @%:@define _XOPEN_SOURCE_EXTENDED 1 + @%:@include + ]], [[ + chtype a = A_BOLD; + int b = KEY_LEFT; + chtype c = COLOR_PAIR(1) & A_COLOR; + attr_t d = WA_NORMAL; + cchar_t e; + wint_t f; + int g = getattrs(stdscr); + int h = getcurx(stdscr) + getmaxx(stdscr); + initscr(); + init_pair(1, COLOR_WHITE, COLOR_RED); + wattr_set(stdscr, d, 0, NULL); + wget_wch(stdscr, &f); + ]])], + [ax_cv_header_ncursesw_curses_h=yes], + [ax_cv_header_ncursesw_curses_h=no]) + ]) + AS_IF([test "x$ax_cv_header_ncursesw_curses_h" = xyes], [ + ax_cv_curses_enhanced=yes + ax_cv_curses_color=yes + ax_cv_curses_obsolete=yes + AC_DEFINE([HAVE_CURSES_ENHANCED], [1], [Define to 1 if library supports X/Open Enhanced functions]) + AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) + AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) + AC_DEFINE([HAVE_NCURSESW_CURSES_H], [1], [Define to 1 if is present]) + ]) + + AC_CACHE_CHECK([for working ncursesw.h], [ax_cv_header_ncursesw_h], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + @%:@define _XOPEN_SOURCE_EXTENDED 1 + @%:@include + ]], [[ + chtype a = A_BOLD; + int b = KEY_LEFT; + chtype c = COLOR_PAIR(1) & A_COLOR; + attr_t d = WA_NORMAL; + cchar_t e; + wint_t f; + int g = getattrs(stdscr); + int h = getcurx(stdscr) + getmaxx(stdscr); + initscr(); + init_pair(1, COLOR_WHITE, COLOR_RED); + wattr_set(stdscr, d, 0, NULL); + wget_wch(stdscr, &f); + ]])], + [ax_cv_header_ncursesw_h=yes], + [ax_cv_header_ncursesw_h=no]) + ]) + AS_IF([test "x$ax_cv_header_ncursesw_h" = xyes], [ + ax_cv_curses_enhanced=yes + ax_cv_curses_color=yes + ax_cv_curses_obsolete=yes + AC_DEFINE([HAVE_CURSES_ENHANCED], [1], [Define to 1 if library supports X/Open Enhanced functions]) + AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) + AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) + AC_DEFINE([HAVE_NCURSESW_H], [1], [Define to 1 if is present]) + ]) + + AC_CACHE_CHECK([for working ncurses.h], [ax_cv_header_ncurses_h_with_ncursesw], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + @%:@define _XOPEN_SOURCE_EXTENDED 1 + @%:@include + ]], [[ + chtype a = A_BOLD; + int b = KEY_LEFT; + chtype c = COLOR_PAIR(1) & A_COLOR; + attr_t d = WA_NORMAL; + cchar_t e; + wint_t f; + int g = getattrs(stdscr); + int h = getcurx(stdscr) + getmaxx(stdscr); + initscr(); + init_pair(1, COLOR_WHITE, COLOR_RED); + wattr_set(stdscr, d, 0, NULL); + wget_wch(stdscr, &f); + ]])], + [ax_cv_header_ncurses_h_with_ncursesw=yes], + [ax_cv_header_ncurses_h_with_ncursesw=no]) + ]) + AS_IF([test "x$ax_cv_header_ncurses_h_with_ncursesw" = xyes], [ + ax_cv_curses_enhanced=yes + ax_cv_curses_color=yes + ax_cv_curses_obsolete=yes + AC_DEFINE([HAVE_CURSES_ENHANCED], [1], [Define to 1 if library supports X/Open Enhanced functions]) + AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) + AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) + AC_DEFINE([HAVE_NCURSES_H], [1], [Define to 1 if is present]) + ]) + + AS_IF([test "x$ax_cv_header_ncursesw_curses_h" = xno && test "x$ax_cv_header_ncursesw_h" = xno && test "x$ax_cv_header_ncurses_h_with_ncursesw" = xno], [ + AC_MSG_WARN([could not find a working ncursesw/curses.h, ncursesw.h or ncurses.h]) + ]) + ]) + ]) + + # Test for Ncurses + + AS_IF([test "x$CURSES_LIB" = x && test "x$with_ncurses" != xno && test "x$ax_cv_curses_which" = xno], [ + LIBS="$ax_saved_LIBS -lncurses" + + AC_CACHE_CHECK([for Ncurses library], [ax_cv_ncurses], [ + AC_LINK_IFELSE([AC_LANG_CALL([], [initscr])], + [ax_cv_ncurses=yes], [ax_cv_ncurses=no]) + ]) + AS_IF([test "x$ax_cv_ncurses" = xno && test "x$with_ncurses" = xyes], [ + AC_MSG_ERROR([--with-ncurses specified but could not find Ncurses library]) + ]) + + AS_IF([test "x$ax_cv_ncurses" = xyes], [ + ax_cv_curses=yes + ax_cv_curses_which=ncurses + CURSES_LIB="-lncurses" + AC_DEFINE([HAVE_NCURSES], [1], [Define to 1 if the Ncurses library is present]) + AC_DEFINE([HAVE_CURSES], [1], [Define to 1 if a SysV or X/Open compatible Curses library is present]) + + AC_CACHE_CHECK([for working ncurses/curses.h], [ax_cv_header_ncurses_curses_h], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + @%:@include + ]], [[ + chtype a = A_BOLD; + int b = KEY_LEFT; + chtype c = COLOR_PAIR(1) & A_COLOR; + int g = getattrs(stdscr); + int h = getcurx(stdscr) + getmaxx(stdscr); + initscr(); + init_pair(1, COLOR_WHITE, COLOR_RED); + ]])], + [ax_cv_header_ncurses_curses_h=yes], + [ax_cv_header_ncurses_curses_h=no]) + ]) + AS_IF([test "x$ax_cv_header_ncurses_curses_h" = xyes], [ + ax_cv_curses_color=yes + ax_cv_curses_obsolete=yes + AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) + AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) + AC_DEFINE([HAVE_NCURSES_CURSES_H], [1], [Define to 1 if is present]) + ]) + + AC_CACHE_CHECK([for working ncurses.h], [ax_cv_header_ncurses_h], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + @%:@include + ]], [[ + chtype a = A_BOLD; + int b = KEY_LEFT; + chtype c = COLOR_PAIR(1) & A_COLOR; + int g = getattrs(stdscr); + int h = getcurx(stdscr) + getmaxx(stdscr); + initscr(); + init_pair(1, COLOR_WHITE, COLOR_RED); + ]])], + [ax_cv_header_ncurses_h=yes], + [ax_cv_header_ncurses_h=no]) + ]) + AS_IF([test "x$ax_cv_header_ncurses_h" = xyes], [ + ax_cv_curses_color=yes + ax_cv_curses_obsolete=yes + AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) + AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) + AC_DEFINE([HAVE_NCURSES_H], [1], [Define to 1 if is present]) + ]) + + AS_IF([test "x$ax_cv_header_ncurses_curses_h" = xno && test "x$ax_cv_header_ncurses_h" = xno], [ + AC_MSG_WARN([could not find a working ncurses/curses.h or ncurses.h]) + ]) + ]) + ]) + + # Test for plain Curses (or if CURSES_LIB was set by user) + + AS_IF([test "x$with_plaincurses" != xno && test "x$ax_cv_curses_which" = xno], [ + AS_IF([test "x$CURSES_LIB" != x], [ + LIBS="$ax_saved_LIBS $CURSES_LIB" + ], [ + LIBS="$ax_saved_LIBS -lcurses" + ]) + + AC_CACHE_CHECK([for Curses library], [ax_cv_plaincurses], [ + AC_LINK_IFELSE([AC_LANG_CALL([], [initscr])], + [ax_cv_plaincurses=yes], [ax_cv_plaincurses=no]) + ]) + + AS_IF([test "x$ax_cv_plaincurses" = xyes], [ + ax_cv_curses=yes + ax_cv_curses_which=plaincurses + AS_IF([test "x$CURSES_LIB" = x], [ + CURSES_LIB="-lcurses" + ]) + AC_DEFINE([HAVE_CURSES], [1], [Define to 1 if a SysV or X/Open compatible Curses library is present]) + + # Check for base conformance (and header file) + + AC_CACHE_CHECK([for working curses.h], [ax_cv_header_curses_h], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + @%:@include + ]], [[ + chtype a = A_BOLD; + int b = KEY_LEFT; + initscr(); + ]])], + [ax_cv_header_curses_h=yes], + [ax_cv_header_curses_h=no]) + ]) + AS_IF([test "x$ax_cv_header_curses_h" = xyes], [ + AC_DEFINE([HAVE_CURSES_H], [1], [Define to 1 if is present]) + + # Check for X/Open Enhanced conformance + + AC_CACHE_CHECK([for X/Open Enhanced Curses conformance], [ax_cv_plaincurses_enhanced], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + @%:@define _XOPEN_SOURCE_EXTENDED 1 + @%:@include + @%:@ifndef _XOPEN_CURSES + @%:@error "this Curses library is not enhanced" + "this Curses library is not enhanced" + @%:@endif + ]], [[ + chtype a = A_BOLD; + int b = KEY_LEFT; + chtype c = COLOR_PAIR(1) & A_COLOR; + attr_t d = WA_NORMAL; + cchar_t e; + wint_t f; + initscr(); + init_pair(1, COLOR_WHITE, COLOR_RED); + wattr_set(stdscr, d, 0, NULL); + wget_wch(stdscr, &f); + ]])], + [ax_cv_plaincurses_enhanced=yes], + [ax_cv_plaincurses_enhanced=no]) + ]) + AS_IF([test "x$ax_cv_plaincurses_enhanced" = xyes], [ + ax_cv_curses_enhanced=yes + ax_cv_curses_color=yes + AC_DEFINE([HAVE_CURSES_ENHANCED], [1], [Define to 1 if library supports X/Open Enhanced functions]) + AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) + ]) + + # Check for color functions + + AC_CACHE_CHECK([for Curses color functions], [ax_cv_plaincurses_color], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + @%:@define _XOPEN_SOURCE_EXTENDED 1 + @%:@include + ]], [[ + chtype a = A_BOLD; + int b = KEY_LEFT; + chtype c = COLOR_PAIR(1) & A_COLOR; + initscr(); + init_pair(1, COLOR_WHITE, COLOR_RED); + ]])], + [ax_cv_plaincurses_color=yes], + [ax_cv_plaincurses_color=no]) + ]) + AS_IF([test "x$ax_cv_plaincurses_color" = xyes], [ + ax_cv_curses_color=yes + AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) + ]) + + # Check for obsolete functions + + AC_CACHE_CHECK([for obsolete Curses functions], [ax_cv_plaincurses_obsolete], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + @%:@include + ]], [[ + chtype a = A_BOLD; + int b = KEY_LEFT; + int g = getattrs(stdscr); + int h = getcurx(stdscr) + getmaxx(stdscr); + initscr(); + ]])], + [ax_cv_plaincurses_obsolete=yes], + [ax_cv_plaincurses_obsolete=no]) + ]) + AS_IF([test "x$ax_cv_plaincurses_obsolete" = xyes], [ + ax_cv_curses_obsolete=yes + AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) + ]) + ]) + + AS_IF([test "x$ax_cv_header_curses_h" = xno], [ + AC_MSG_WARN([could not find a working curses.h]) + ]) + ]) + ]) + + AS_IF([test "x$ax_cv_curses" != xyes], [ax_cv_curses=no]) + AS_IF([test "x$ax_cv_curses_enhanced" != xyes], [ax_cv_curses_enhanced=no]) + AS_IF([test "x$ax_cv_curses_color" != xyes], [ax_cv_curses_color=no]) + AS_IF([test "x$ax_cv_curses_obsolete" != xyes], [ax_cv_curses_obsolete=no]) + + LIBS=$ax_saved_LIBS +])dnl diff --git a/autotools/softether.am b/autotools/softether.am new file mode 100644 index 00000000..e5e91eeb --- /dev/null +++ b/autotools/softether.am @@ -0,0 +1,39 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +if CONFIGURE_ENABLE_DEBUG +DEBUG_CFLAGS = -g -D_DEBUG -DDEBUG +else +DEBUG_CFLAGS = -DNDEBUG -DVPN_SPEED +endif + +AM_CFLAGS = \ + $(DEBUG_CFLAGS) \ + -I$(top_srcdir)/src \ + -I$(top_srcdir)/src/Mayaqua \ + -I$(top_srcdir)/src/Cedar \ + -DUNIX \ + -DUNIX_LINUX \ + -D_REENTRANT \ + -DREENTRANT \ + -D_THREAD_SAFE \ + -D_THREADSAFE \ + -DTHREAD_SAFE \ + -DTHREADSAFE \ + -D_FILE_OFFSET_BITS=64 \ + -fsigned-char diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..4a3fc2ba --- /dev/null +++ b/configure.ac @@ -0,0 +1,96 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +AC_INIT([SoftEther], [1], [http://www.vpnusers.com/], [softether], [http://www.softether.org/]) +AC_CONFIG_AUX_DIR([autotools]) +AC_CONFIG_MACRO_DIR([autotools]) +AM_INIT_AUTOMAKE([foreign -Wall -Werror]) +AM_PROG_AR +AC_PROG_CC +AC_PROG_LIBTOOL +AC_CONFIG_HEADERS([softether_config.h]) +AC_CONFIG_FILES([ + Makefile + src/Makefile + src/Mayaqua/Makefile + src/Cedar/Makefile + src/hamcorebuilder/Makefile + src/bin/hamcore/Makefile + src/vpnserver/Makefile + src/vpnclient/Makefile + src/vpnbridge/Makefile + src/vpncmd/Makefile +]) + + +AC_ARG_ENABLE( + [debug], + AS_HELP_STRING([--enable-debug], [build SoftEther with debugging features]), + [debug=yes] +) +AM_CONDITIONAL([CONFIGURE_ENABLE_DEBUG], [test _"$debug" = _yes]) + + +AX_PTHREAD([ + AC_SUBST(PTHREAD_CC) + AC_SUBST(PTHREAD_CFLAGS) + AC_SUBST(PTHREAD_LIBS) +],[ + AC_MSG_ERROR([pthread capabilities not found]) +]) + +CC="$PTHREAD_CC" +CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +LIBS="$PTHREAD_LIBS $LIBS" + + +AX_CHECK_OPENSSL([ + AC_SUBST(OPENSSL_LIBS) + AC_SUBST(OPENSSL_LDFLAGS) +],[ + AC_MSG_ERROR([openssl not found]) +]) + +LIBS="$LIBS $OPENSSL_LIBS" +LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS" + + +# This macro automatically updates build variables. +AX_CHECK_ZLIB(, AC_MSG_ERROR([zlib not found])) + + +AX_WITH_CURSES +if test "_$ax_cv_curses" != _yes +then + AC_MSG_ERROR([libcurses, libncurses, or libncursesw not found]) +else + AC_SUBST(CURSES_LIB) + LIBS="$LIBS $CURSES_LIB" +fi + + +AX_LIB_READLINE +if test "_$ax_cv_lib_readline" = _no +then + AC_MSG_ERROR([libreadline not found]) +else + : This macro automatically updates build variables. +fi + + +AC_OUTPUT --- a/configure 2017-07-16 04:53:31.000000000 +0200 +++ b/configure 1970-01-01 01:00:00.000000000 +0100 @@ -1,112 +0,0 @@ -#!/bin/sh - -echo '---------------------------------------------------------------------' -echo 'SoftEther VPN for Unix' -echo -echo 'Copyright (c) Daiyuu Nobori.' -echo 'Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan.' -echo 'Copyright (c) SoftEther Corporation.' -echo 'Copyright (c) all contributors on SoftEther VPN project in GitHub.' -echo -echo 'License: The Apache License, Version 2.0' -echo -echo 'Read and understand README.TXT, LICENSE.TXT and WARNING.TXT before use.' -echo '---------------------------------------------------------------------' -echo - -echo 'Welcome to the corner-cutting configure script !' -echo - -OS="" -case "`uname -s`" in -Linux) - OS="linux" - ;; -FreeBSD) - OS="freebsd" - ;; -SunOS) - OS="solaris" - ;; -Darwin) - OS="macos" - ;; -OpenBSD) - OS="openbsd" - ;; -*) - echo 'Select your operating system below:' - echo ' 1: Linux' - echo ' 2: FreeBSD' - echo ' 3: Solaris' - echo ' 4: Mac OS X' - echo ' 5: OpenBSD' - echo - echo -n 'Which is your operating system (1 - 5) ? : ' - read TMP - echo - if test "$TMP" = "1" - then - OS="linux" - fi - if test "$TMP" = "2" - then - OS="freebsd" - fi - if test "$TMP" = "3" - then - OS="solaris" - fi - if test "$TMP" = "4" - then - OS="macos" - fi - if test "$TMP" = "5" - then - OS="openbsd" - fi - - if test "$OS" = "" - then - echo "Wrong number." - exit 1 - fi - ;; -esac - -CPU="" -case "`uname -m`" in -x86_64|amd64|aarch64|arm64|armv8*|mips64|ppc64|sparc64|alpha|ia64) - CPU=64bit - ;; -i?86|x86pc|i86pc|armv4*|armv5*|armv6*|armv7*) - CPU=32bit - ;; -*) - echo 'Select your CPU bits below:' - echo ' 1: 32-bit' - echo ' 2: 64-bit' - echo - echo -n 'Which is the type of your CPU (1 - 2) ? : ' - read TMP - echo - if test "$TMP" = "1" - then - CPU="32bit" - fi - if test "$TMP" = "2" - then - CPU="64bit" - fi - - if test "$CPU" = "" - then - echo "Wrong number." - exit 1 - fi - ;; -esac - -cp src/makefiles/${OS}_${CPU}.mak Makefile - -echo "The Makefile is generated. Run 'make' to build SoftEther VPN." --- a/manual_configure 1970-01-01 01:00:00.000000000 +0100 +++ b/manual_configure 2017-07-16 04:53:31.000000000 +0200 @@ -0,0 +1,112 @@ +#!/bin/sh + +echo '---------------------------------------------------------------------' +echo 'SoftEther VPN for Unix' +echo +echo 'Copyright (c) SoftEther VPN Project at University of Tsukuba, Japan.' +echo 'Copyright (c) Daiyuu Nobori. All Rights Reserved.' +echo +echo 'This program is free software; you can redistribute it and/or' +echo 'modify it under the terms of the GNU General Public License' +echo 'version 2 as published by the Free Software Foundation.' +echo +echo 'Read and understand README.TXT, LICENSE.TXT and WARNING.TXT before use.' +echo '---------------------------------------------------------------------' +echo + +echo 'Welcome to the corner-cutting configure script !' +echo + +OS="" +case "`uname -s`" in +Linux) + OS="linux" + ;; +FreeBSD) + OS="freebsd" + ;; +SunOS) + OS="solaris" + ;; +Darwin) + OS="macos" + ;; +OpenBSD) + OS="openbsd" + ;; +*) + echo 'Select your operating system below:' + echo ' 1: Linux' + echo ' 2: FreeBSD' + echo ' 3: Solaris' + echo ' 4: Mac OS X' + echo ' 5: OpenBSD' + echo + echo -n 'Which is your operating system (1 - 5) ? : ' + read TMP + echo + if test "$TMP" = "1" + then + OS="linux" + fi + if test "$TMP" = "2" + then + OS="freebsd" + fi + if test "$TMP" = "3" + then + OS="solaris" + fi + if test "$TMP" = "4" + then + OS="macos" + fi + if test "$TMP" = "5" + then + OS="openbsd" + fi + + if test "$OS" = "" + then + echo "Wrong number." + exit 1 + fi + ;; +esac + +CPU="" +case "`uname -m`" in +x86_64|amd64|aarch64|arm64|armv8*|mips64|ppc64|sparc64|alpha|ia64) + CPU=64bit + ;; +i?86|x86pc|i86pc|armv4*|armv5*|armv6*|armv7*) + CPU=32bit + ;; +*) + echo 'Select your CPU bits below:' + echo ' 1: 32-bit' + echo ' 2: 64-bit' + echo + echo -n 'Which is the type of your CPU (1 - 2) ? : ' + read TMP + echo + if test "$TMP" = "1" + then + CPU="32bit" + fi + if test "$TMP" = "2" + then + CPU="64bit" + fi + + if test "$CPU" = "" + then + echo "Wrong number." + exit 1 + fi + ;; +esac + +cp src/makefiles/${OS}_${CPU}.mak Makefile + +echo "The Makefile is generated. Run 'make' to build SoftEther VPN." diff --git a/src/Cedar/Makefile.am b/src/Cedar/Makefile.am new file mode 100644 index 00000000..5346537d --- /dev/null +++ b/src/Cedar/Makefile.am @@ -0,0 +1,82 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +include $(top_srcdir)/autotools/softether.am + +noinst_LTLIBRARIES = libcedar.la + +libcedar_la_SOURCES = \ + Account.c \ + Admin.c \ + AzureClient.c \ + AzureServer.c \ + Bridge.c \ + BridgeUnix.c \ + BridgeWin32.c \ + Cedar.c \ + CedarPch.c \ + Client.c \ + CM.c \ + Command.c \ + Connection.c \ + Console.c \ + Database.c \ + DDNS.c \ + EM.c \ + EtherLog.c \ + Hub.c \ + Interop_OpenVPN.c \ + Interop_SSTP.c \ + IPsec.c \ + IPsec_EtherIP.c \ + IPsec_IKE.c \ + IPsec_IkePacket.c \ + IPsec_IPC.c \ + IPsec_L2TP.c \ + IPsec_PPP.c \ + IPsec_Win7.c \ + Layer3.c \ + Link.c \ + Listener.c \ + Logging.c \ + Nat.c \ + NativeStack.c \ + NM.c \ + NullLan.c \ + Protocol.c \ + Radius.c \ + Remote.c \ + Sam.c \ + SecureInfo.c \ + SecureNAT.c \ + SeLowUser.c \ + Server.c \ + Session.c \ + SM.c \ + SW.c \ + UdpAccel.c \ + UT.c \ + VG.c \ + Virtual.c \ + VLan.c \ + VLanUnix.c \ + VLanWin32.c \ + WaterMark.c \ + WebUI.c \ + WinUi.c \ + Wpc.c diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 00000000..dc745426 --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,26 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +# These components are built as libtool convenience libraries. +SUBDIRS = Mayaqua Cedar + +# This is a nodist helper. +SUBDIRS += hamcorebuilder + +# These are final build products. +SUBDIRS += bin/hamcore vpnserver vpnclient vpnbridge vpncmd diff --git a/src/Mayaqua/Makefile.am b/src/Mayaqua/Makefile.am new file mode 100644 index 00000000..6b8dc1a6 --- /dev/null +++ b/src/Mayaqua/Makefile.am @@ -0,0 +1,43 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +include $(top_srcdir)/autotools/softether.am + +noinst_LTLIBRARIES = libmayaqua.la + +libmayaqua_la_SOURCES = \ + Cfg.c \ + Encrypt.c \ + FileIO.c \ + Internat.c \ + Kernel.c \ + Mayaqua.c \ + Memory.c \ + Microsoft.c \ + Network.c \ + Object.c \ + OS.c \ + Pack.c \ + Secure.c \ + Str.c \ + Table.c \ + TcpIp.c \ + Tick64.c \ + Tracking.c \ + Unix.c \ + Win32.c diff --git a/src/bin/hamcore/Makefile.am b/src/bin/hamcore/Makefile.am new file mode 100644 index 00000000..37b0291e --- /dev/null +++ b/src/bin/hamcore/Makefile.am @@ -0,0 +1,29 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +include $(top_srcdir)/autotools/softether.am + +# This is required to use a custom build rule with -Wall and -Werror enabled. +AUTOMAKE_OPTIONS = -Wno-override +EXEEXT = +HAMCOREBUILDER = $(top_builddir)/src/hamcorebuilder/hamcorebuilder + +sbin_PROGRAMS = hamcore.se2 + +hamcore.se2$(EXEEXT): $(HAMCOREBUILDER) + $(HAMCOREBUILDER) $(top_srcdir)/src/bin/hamcore $@ diff --git a/src/hamcorebuilder/Makefile.am b/src/hamcorebuilder/Makefile.am new file mode 100644 index 00000000..a22429f0 --- /dev/null +++ b/src/hamcorebuilder/Makefile.am @@ -0,0 +1,29 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +include $(top_srcdir)/autotools/softether.am + +noinst_PROGRAMS = \ + hamcorebuilder + +hamcorebuilder_SOURCES = \ + hamcorebuilder.c + +hamcorebuilder_LDADD = \ + $(top_builddir)/src/Mayaqua/libmayaqua.la \ + $(top_builddir)/src/Cedar/libcedar.la diff --git a/src/vpnbridge/Makefile.am b/src/vpnbridge/Makefile.am new file mode 100644 index 00000000..35fe043d --- /dev/null +++ b/src/vpnbridge/Makefile.am @@ -0,0 +1,29 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +include $(top_srcdir)/autotools/softether.am + +sbin_PROGRAMS = \ + vpnbridge + +vpnbridge_SOURCES = \ + vpnbridge.c + +vpnbridge_LDADD = \ + $(top_builddir)/src/Mayaqua/libmayaqua.la \ + $(top_builddir)/src/Cedar/libcedar.la diff --git a/src/vpnclient/Makefile.am b/src/vpnclient/Makefile.am new file mode 100644 index 00000000..1aa55330 --- /dev/null +++ b/src/vpnclient/Makefile.am @@ -0,0 +1,29 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +include $(top_srcdir)/autotools/softether.am + +sbin_PROGRAMS = \ + vpnclient + +vpnclient_SOURCES = \ + vpncsvc.c + +vpnclient_LDADD = \ + $(top_builddir)/src/Mayaqua/libmayaqua.la \ + $(top_builddir)/src/Cedar/libcedar.la diff --git a/src/vpncmd/Makefile.am b/src/vpncmd/Makefile.am new file mode 100644 index 00000000..d8042aa2 --- /dev/null +++ b/src/vpncmd/Makefile.am @@ -0,0 +1,29 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +include $(top_srcdir)/autotools/softether.am + +sbin_PROGRAMS = \ + vpncmd + +vpncmd_SOURCES = \ + vpncmd.c + +vpncmd_LDADD = \ + $(top_builddir)/src/Mayaqua/libmayaqua.la \ + $(top_builddir)/src/Cedar/libcedar.la diff --git a/src/vpnserver/Makefile.am b/src/vpnserver/Makefile.am new file mode 100644 index 00000000..c1c33570 --- /dev/null +++ b/src/vpnserver/Makefile.am @@ -0,0 +1,29 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +include $(top_srcdir)/autotools/softether.am + +sbin_PROGRAMS = \ + vpnserver + +vpnserver_SOURCES = \ + vpnserver.c + +vpnserver_LDADD = \ + $(top_builddir)/src/Mayaqua/libmayaqua.la \ + $(top_builddir)/src/Cedar/libcedar.la ================================================ FILE: package/softether/0002-Create-libsoftether.so-and-dynamically-link.patch ================================================ From 75625af541fd128f51079d0ffe5ef24645b8f421 Mon Sep 17 00:00:00 2001 From: Darik Horn Date: Sun, 13 Apr 2014 12:51:15 -0400 Subject: [PATCH] Create libsoftether.so and dynamically link the userland. Sharing object code between vpnbridge, vpnclient, vpnserver, and vpncmd reduces the binary size of SoftEther by 85% and its administrative memory footprint by 50%. [Upstream commit https://github.com/dajhorn/SoftEtherVPN/commit/75625af541fd128f51079d0ffe5ef24645b8f421] Signed-off-by: Thomas Petazzoni --- configure.ac | 1 + src/Makefile.am | 7 +++++-- src/libsoftether/Makefile.am | 34 ++++++++++++++++++++++++++++++++++ src/vpnbridge/Makefile.am | 3 +-- src/vpnclient/Makefile.am | 3 +-- src/vpncmd/Makefile.am | 3 +-- src/vpnserver/Makefile.am | 3 +-- 7 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 src/libsoftether/Makefile.am diff --git a/configure.ac b/configure.ac index 4a3fc2ba..94639c44 100644 --- a/configure.ac +++ b/configure.ac @@ -30,6 +30,7 @@ AC_CONFIG_FILES([ src/Mayaqua/Makefile src/Cedar/Makefile src/hamcorebuilder/Makefile + src/libsoftether/Makefile src/bin/hamcore/Makefile src/vpnserver/Makefile src/vpnclient/Makefile diff --git a/src/Makefile.am b/src/Makefile.am index dc745426..1d041d47 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -22,5 +22,8 @@ SUBDIRS = Mayaqua Cedar # This is a nodist helper. SUBDIRS += hamcorebuilder -# These are final build products. -SUBDIRS += bin/hamcore vpnserver vpnclient vpnbridge vpncmd +# These are shared components. +SUBDIRS += libsoftether bin/hamcore + +# These are the final build products. +SUBDIRS += vpnserver vpnclient vpnbridge vpncmd diff --git a/src/libsoftether/Makefile.am b/src/libsoftether/Makefile.am new file mode 100644 index 00000000..601920d9 --- /dev/null +++ b/src/libsoftether/Makefile.am @@ -0,0 +1,34 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +include $(top_srcdir)/autotools/softether.am + +lib_LTLIBRARIES = \ + libsoftether.la + +libsoftether_la_SOURCES = + +libsoftether_la_LDFLAGS = \ + -avoid-version + +libsoftether_la_LIBTOOLFLAGS = \ + --tag=disable-static + +libsoftether_la_LIBADD = \ + $(top_builddir)/src/Mayaqua/libmayaqua.la \ + $(top_builddir)/src/Cedar/libcedar.la diff --git a/src/vpnbridge/Makefile.am b/src/vpnbridge/Makefile.am index 35fe043d..fb91dd2d 100644 --- a/src/vpnbridge/Makefile.am +++ b/src/vpnbridge/Makefile.am @@ -25,5 +25,4 @@ vpnbridge_SOURCES = \ vpnbridge.c vpnbridge_LDADD = \ - $(top_builddir)/src/Mayaqua/libmayaqua.la \ - $(top_builddir)/src/Cedar/libcedar.la + $(top_builddir)/src/libsoftether/libsoftether.la diff --git a/src/vpnclient/Makefile.am b/src/vpnclient/Makefile.am index 1aa55330..c225c416 100644 --- a/src/vpnclient/Makefile.am +++ b/src/vpnclient/Makefile.am @@ -25,5 +25,4 @@ vpnclient_SOURCES = \ vpncsvc.c vpnclient_LDADD = \ - $(top_builddir)/src/Mayaqua/libmayaqua.la \ - $(top_builddir)/src/Cedar/libcedar.la + $(top_builddir)/src/libsoftether/libsoftether.la diff --git a/src/vpncmd/Makefile.am b/src/vpncmd/Makefile.am index d8042aa2..271affb0 100644 --- a/src/vpncmd/Makefile.am +++ b/src/vpncmd/Makefile.am @@ -25,5 +25,4 @@ vpncmd_SOURCES = \ vpncmd.c vpncmd_LDADD = \ - $(top_builddir)/src/Mayaqua/libmayaqua.la \ - $(top_builddir)/src/Cedar/libcedar.la + $(top_builddir)/src/libsoftether/libsoftether.la diff --git a/src/vpnserver/Makefile.am b/src/vpnserver/Makefile.am index c1c33570..1f7b7f98 100644 --- a/src/vpnserver/Makefile.am +++ b/src/vpnserver/Makefile.am @@ -25,5 +25,4 @@ vpnserver_SOURCES = \ vpnserver.c vpnserver_LDADD = \ - $(top_builddir)/src/Mayaqua/libmayaqua.la \ - $(top_builddir)/src/Cedar/libcedar.la + $(top_builddir)/src/libsoftether/libsoftether.la ================================================ FILE: package/softether/0003-use-fhs-install-directories.patch ================================================ From b9420c3bfc2a8b9d35d0c8e5f6849007c2bc21fa Mon Sep 17 00:00:00 2001 From: Darik Horn Date: Mon, 14 Apr 2014 13:22:24 -0400 Subject: [PATCH] Use FHS installation directories. Install to `/usr/sbin`, `/usr/lib`, and `/var/lib` according to the Linux filesystem hierarchy standard if SoftEther is built through autotools. In a managed installation, the FHS stipulates that the application must accomodate a read-only installation path. This requires a new `GetStateDir` function that substitues `GetExeDir` in some parts of the code. Taken from Github at https://github.com/dajhorn/SoftEtherVPN/commit/b9420c3bfc2a8b9d35d0c8e5f6849007c2bc21fa. Signed-off-by: Bernd Kuhls Signed-off-by: Thomas Petazzoni [Updated for 4.28 build 9669 beta - src/Mayaqua/Encrypt.c dropped IsXRevoked() Signed-off-by: Matthew Weber --- autotools/softether.am | 1 + src/Cedar/Admin.c | 2 +- src/Cedar/Command.c | 6 +++++- src/Cedar/Logging.c | 2 +- src/Cedar/Server.c | 4 ++-- src/Mayaqua/FileIO.c | 39 ++++++++++++++++++++++++++++++++++++--- src/Mayaqua/FileIO.h | 2 ++ src/Mayaqua/Mayaqua.c | 4 ++++ src/Mayaqua/Table.c | 6 +++++- src/Mayaqua/Unix.c | 6 +++--- src/bin/hamcore/Makefile.am | 8 ++++++-- 11 files changed, 66 insertions(+), 14 deletions(-) Index: b/autotools/softether.am =================================================================== --- a/autotools/softether.am +++ b/autotools/softether.am @@ -27,6 +27,7 @@ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/Mayaqua \ -I$(top_srcdir)/src/Cedar \ + -DSTATE_DIR='"@localstatedir@/lib/softether"' \ -DUNIX \ -DUNIX_LINUX \ -D_REENTRANT \ Index: b/src/Cedar/Admin.c =================================================================== --- a/src/Cedar/Admin.c +++ b/src/Cedar/Admin.c @@ -10334,7 +10334,7 @@ Zero(t, sizeof(RPC_READ_LOG_FILE)); - GetExeDir(exe_dir, sizeof(exe_dir)); + GetStateDir(exe_dir, sizeof(exe_dir)); Format(full_path, sizeof(full_path), "%s/%s", exe_dir, filepath); // Read file Index: b/src/Cedar/Command.c =================================================================== --- a/src/Cedar/Command.c +++ b/src/Cedar/Command.c @@ -527,7 +527,7 @@ UINT i; GetExeName(exe, sizeof(exe)); - GetExeDir(exe_dir, sizeof(exe_dir)); + GetStateDir(exe_dir, sizeof(exe_dir)); ok = false; dirs = EnumDir(exe_dir); @@ -552,7 +552,11 @@ UCHAR *buf; IO *io; #ifndef OS_WIN32 +#ifdef STATE_DIR + wchar_t *filename = L"" STATE_DIR L"/vpn_checker_tmp"; +#else wchar_t *filename = L"/tmp/vpn_checker_tmp"; +#endif #else // OS_WIN32 wchar_t filename[MAX_PATH]; CombinePathW(filename, sizeof(filename), MsGetMyTempDirW(), L"vpn_checker_tmp"); Index: b/src/Cedar/Logging.c =================================================================== --- a/src/Cedar/Logging.c +++ b/src/Cedar/Logging.c @@ -508,7 +508,7 @@ e = ZeroMalloc(sizeof(ERASER)); - GetExeDir(dir, sizeof(dir)); + GetStateDir(dir, sizeof(dir)); e->Log = log; e->MinFreeSpace = min_size; Index: b/src/Cedar/Server.c =================================================================== --- a/src/Cedar/Server.c +++ b/src/Cedar/Server.c @@ -1060,7 +1060,7 @@ hubname = NULL; } - GetExeDir(exe_dir, sizeof(exe_dir)); + GetStateDir(exe_dir, sizeof(exe_dir)); // Enumerate in the server_log if (hubname == NULL) @@ -1134,7 +1134,7 @@ return; } - GetExeDir(exe_dir, sizeof(exe_dir)); + GetStateDir(exe_dir, sizeof(exe_dir)); Format(dir_full_path, sizeof(dir_full_path), "%s/%s", exe_dir, dirname); dir = EnumDir(dir_full_path); Index: b/src/Mayaqua/FileIO.c =================================================================== --- a/src/Mayaqua/FileIO.c +++ b/src/Mayaqua/FileIO.c @@ -122,8 +122,14 @@ #include #include +#ifdef STATE_DIR +static char exe_file_name[MAX_SIZE] = STATE_DIR "/a.out"; +static wchar_t exe_file_name_w[MAX_SIZE] = L"" STATE_DIR L"/a.out"; +#else static char exe_file_name[MAX_SIZE] = "/tmp/a.out"; static wchar_t exe_file_name_w[MAX_SIZE] = L"/tmp/a.out"; +#endif + static LIST *hamcore = NULL; static IO *hamcore_io = NULL; @@ -1038,7 +1044,7 @@ } // If the file exist in hamcore/ directory on the local disk, read it - GetExeDirW(exe_dir, sizeof(exe_dir)); + GetStateDirW(exe_dir, sizeof(exe_dir)); UniFormat(tmp, sizeof(tmp), L"%s/%S/%S", exe_dir, HAMCORE_DIR_NAME, filename); @@ -1154,7 +1160,7 @@ return; } - GetExeDirW(exe_dir, sizeof(exe_dir)); + GetStateDirW(exe_dir, sizeof(exe_dir)); UniFormat(tmp, sizeof(tmp), L"%s/%S", exe_dir, HAMCORE_FILE_NAME); UniFormat(tmp2, sizeof(tmp2), L"%s/%S", exe_dir, HAMCORE_FILE_NAME_2); @@ -1438,6 +1444,33 @@ GetDirNameFromFilePathW(name, size, exe_file_name_w); } +void GetStateDir(char *name, UINT size) +{ + // Validate arguments + if (name == NULL) + { + return; + } +#ifdef STATE_DIR + StrCpy(name, size, STATE_DIR); +#else + GetExeDir(name, size) +#endif +} +void GetStateDirW(wchar_t *name, UINT size) +{ + // Validate arguments + if (name == NULL) + { + return; + } +#ifdef STATE_DIR + UniStrCpy(name, size, L"" STATE_DIR L""); +#else + GetExeDirW(name, size) +#endif +} + // Get the EXE file name void GetExeName(char *name, UINT size) { @@ -2389,7 +2422,7 @@ else { wchar_t dir[MAX_SIZE]; - GetExeDirW(dir, sizeof(dir)); + GetStateDirW(dir, sizeof(dir)); ConbinePathW(dst, size, dir, &src[1]); } } Index: b/src/Mayaqua/FileIO.h =================================================================== --- a/src/Mayaqua/FileIO.h +++ b/src/Mayaqua/FileIO.h @@ -349,6 +349,8 @@ void GetExeNameW(wchar_t *name, UINT size); void GetExeDir(char *name, UINT size); void GetExeDirW(wchar_t *name, UINT size); +void GetStateDir(char *name, UINT size); +void GetStateDirW(wchar_t *name, UINT size); void BuildHamcore(char *dst_filename, char *src_dir, bool unix_only); int CompareHamcore(void *p1, void *p2); void InitHamcore(); Index: b/src/Mayaqua/Mayaqua.c =================================================================== --- a/src/Mayaqua/Mayaqua.c +++ b/src/Mayaqua/Mayaqua.c @@ -611,7 +611,11 @@ _exit(0); } +#ifndef STATE_DIR + // This check causes hamcorebuilder to fail in an unprivileged + // environment, and is unnecessary for a managed installation. CheckUnixTempDir(); +#endif // Initialization of Probe InitProbe(); Index: b/src/Mayaqua/Table.c =================================================================== --- a/src/Mayaqua/Table.c +++ b/src/Mayaqua/Table.c @@ -1191,7 +1191,7 @@ return; } - GetExeDirW(exe, sizeof(exe)); + GetStateDirW(exe, sizeof(exe)); UniStrCpy(hashtemp, sizeof(hashtemp), strfilename); BinToStrW(tmp, sizeof(tmp), filehash, MD5_SIZE); UniStrCat(hashtemp, sizeof(hashtemp), tmp); @@ -1204,7 +1204,11 @@ UniStrLower(tmp); #ifndef OS_WIN32 +#ifdef STATE_DIR + UniStrCpy(exe, sizeof(exe), L"" STATE_DIR L""); +#else UniStrCpy(exe, sizeof(exe), L"/tmp"); +#endif #else // OS_WIN32 StrToUni(exe, sizeof(exe), MsGetTempDir()); #endif // OS_WIN32 Index: b/src/Mayaqua/Unix.c =================================================================== --- a/src/Mayaqua/Unix.c +++ b/src/Mayaqua/Unix.c @@ -928,7 +928,7 @@ StrCpy(tmp, sizeof(tmp), instance_name); } - GetExeDir(dir, sizeof(dir)); + GetStateDir(dir, sizeof(dir)); // File name generation Format(name, sizeof(name), "%s/.%s", dir, tmp); @@ -2260,7 +2260,7 @@ return; } - GetExeDir(dir, sizeof(dir)); + GetStateDir(dir, sizeof(dir)); GetExeName(exe_name, sizeof(exe_name)); StrCat(exe_name, sizeof(exe_name), ":pid_hash"); @@ -2305,7 +2305,7 @@ return; } - GetExeDir(dir, sizeof(dir)); + GetStateDir(dir, sizeof(dir)); GetExeName(exe_name, sizeof(exe_name)); StrCat(exe_name, sizeof(exe_name), ":pid_hash"); Index: b/src/bin/hamcore/Makefile.am =================================================================== --- a/src/bin/hamcore/Makefile.am +++ b/src/bin/hamcore/Makefile.am @@ -18,12 +18,16 @@ include $(top_srcdir)/autotools/softether.am -# This is required to use a custom build rule with -Wall and -Werror enabled. +# An empty EXEEXT required for overrides with -Wall and -Werror enabled. AUTOMAKE_OPTIONS = -Wno-override EXEEXT = + HAMCOREBUILDER = $(top_builddir)/src/hamcorebuilder/hamcorebuilder -sbin_PROGRAMS = hamcore.se2 +noinst_PROGRAMS = hamcore.se2 hamcore.se2$(EXEEXT): $(HAMCOREBUILDER) $(HAMCOREBUILDER) $(top_srcdir)/src/bin/hamcore $@ + +install-exec-local: hamcore.se2$(EXEEXT) + $(INSTALL_DATA) -D hamcore.se2$(EXEEXT) $(DESTDIR)$(localstatedir)/lib/softether/hamcore.se2 ================================================ FILE: package/softether/0004-create-non-forking-softetherd-for-upstart-and-systemd.patch ================================================ From 64dd780905ae339a0a57e4aba541799016816a1a Mon Sep 17 00:00:00 2001 From: Darik Horn Date: Fri, 3 Oct 2014 13:30:24 -0400 Subject: [PATCH] Create a non-forking softetherd for upstart and systemd. Implement a daemon that expects to be invoked by a new-style init like upstart or systemd as: /usr/sbin/softetherd [vpnbridge|vpnclient|vpnserver] Alternatively, if the command line argument is empty, then use the `SOFTETHER_MODE` environment variable instead. Conflicts: src/bin/hamcore/strtable_en.stb Taken from Github at https://github.com/dajhorn/SoftEtherVPN/commit/64dd780905ae339a0a57e4aba541799016816a1a. Signed-off-by: Bernd Kuhls Signed-off-by: Thomas Petazzoni --- configure.ac | 1 + src/Makefile.am | 3 ++ src/bin/hamcore/strtable_en.stb | 1 + src/softetherd/Makefile.am | 28 ++++++++++ src/softetherd/softetherd.c | 114 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 147 insertions(+) create mode 100644 src/softetherd/Makefile.am create mode 100644 src/softetherd/softetherd.c Index: b/configure.ac =================================================================== --- a/configure.ac +++ b/configure.ac @@ -36,6 +36,7 @@ src/vpnclient/Makefile src/vpnbridge/Makefile src/vpncmd/Makefile + src/softetherd/Makefile ]) Index: b/src/Makefile.am =================================================================== --- a/src/Makefile.am +++ b/src/Makefile.am @@ -27,3 +27,6 @@ # These are the final build products. SUBDIRS += vpnserver vpnclient vpnbridge vpncmd + +# This is a daemon for upstart and systemd. +SUBDIRS += softetherd Index: b/src/bin/hamcore/strtable_en.stb =================================================================== --- a/src/bin/hamcore/strtable_en.stb +++ b/src/bin/hamcore/strtable_en.stb @@ -1062,6 +1062,7 @@ # Concerning services (UNIX) +UNIX_DAEMON_HELP SoftEther VPN non-forking daemon for upstart and systemd.\nCommand Usage:\n %S vpnbridge - Enable bridging features.\n %S vpnclient - Enable client features.\n %S vpnserver - Enable all features.\nThe parameter can be set in the SOFTETHER_MODE environment variable.\n\n UNIX_SVC_HELP %S service program\nCopyright (c) SoftEther VPN Project. All Rights Reserved.\n\n%S command usage:\n %S start - Start the %S service.\n %S stop - Stop the %S service if the service has been already started.\n\n UNIX_SVC_STARTED The %S service has been started.\n UNIX_SVC_STOPPING Stopping the %S service ...\n Index: b/src/softetherd/Makefile.am =================================================================== --- /dev/null +++ b/src/softetherd/Makefile.am @@ -0,0 +1,28 @@ +# Copyright 2014 Darik Horn +# +# This file is part of SoftEther. +# +# SoftEther 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. +# +# SoftEther 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 +# SoftEther. If not, see . + + +include $(top_srcdir)/autotools/softether.am + +sbin_PROGRAMS = \ + softetherd + +softetherd_SOURCES = \ + softetherd.c + +softetherd_LDADD = \ + $(top_builddir)/src/libsoftether/libsoftether.la Index: b/src/softetherd/softetherd.c =================================================================== --- /dev/null +++ b/src/softetherd/softetherd.c @@ -0,0 +1,114 @@ +// SoftEther VPN daemon for upstart and systemd. +// +// Copyright 2014 Darik Horn +// +// This file is part of SoftEther. +// +// SoftEther 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. +// +// SoftEther 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 +// SoftEther. If not, see . + + +#include + +#define VPN_EXE + +#include +#include +#include +#include +#include +#include +#include +#include + +void DaemonUsage(char *name) +{ + UniPrint(_UU("UNIX_DAEMON_HELP"), name, name, name); +} + + +void DaemonStartProcess() +{ + // This environment variable is exported by upstart. + char *upstart_job = getenv("UPSTART_JOB"); + + InitCedar(); + StInit(); + StStartServer(false); + + // Notify upstart that softetherd is ready. + if (upstart_job != NULL) + { + unsetenv("UPSTART_JOB"); + raise(SIGSTOP); + } +} + + +void DaemonStopProcess() +{ + StStopServer(); + StFree(); + FreeCedar(); +} + + +int main(int argc, char *argv[]) +{ + // This environment variable is sourced and exported by the init process from /etc/default/softether. + char *softether_mode = getenv("SOFTETHER_MODE"); + + InitMayaqua(false, false, argc, argv); + + // Check for an explicit invocation. (eg: "/usr/sbin/softetherd vpnserver") + if (argc >= 2) + { + if (StrCmpi(argv[1], "vpnbridge") == 0 + || StrCmpi(argv[1], "vpnclient") == 0 + || StrCmpi(argv[1], "vpnserver") == 0) + { + UnixExecService(argv[1], DaemonStartProcess, DaemonStopProcess); + FreeMayaqua(); + return 0; + } + + // Exit status codes 150..199 are reserved for the application by the LSB. + fprintf(stderr, "Error: Unrecognized parameter: %s\n", argv[1]); + fflush(stderr); + FreeMayaqua(); + return 150; + } + + // Alternatively, use the environment variable. + if (softether_mode != NULL) + { + if (StrCmpi(softether_mode, "vpnbridge") == 0 + || StrCmpi(softether_mode, "vpnclient") == 0 + || StrCmpi(softether_mode, "vpnserver") == 0) + { + UnixExecService(softether_mode, DaemonStartProcess, DaemonStopProcess); + FreeMayaqua(); + return 0; + } + + // Exit status codes 150..199 are reserved for the application by the LSB. + fprintf(stderr, "Error: Unrecognized environment variable: SOFTETHER_MODE=%s\n", softether_mode); + fflush(stderr); + FreeMayaqua(); + return 151; + } + + DaemonUsage(argv[0]); + FreeMayaqua(); + return 3; +} ================================================ FILE: package/softether/0005-change-GetExeDir-to-GetStateDir-in-Cedar-and-Mayaqua.patch ================================================ From d68db9f2cee975aad5e07b44485615f3d842ab45 Mon Sep 17 00:00:00 2001 From: Darik Horn Date: Fri, 11 Jul 2014 16:17:18 -0400 Subject: [PATCH] Change GetExeDir to GetStateDir in Cedar and Mayaqua. Resolve this AppArmor error by ensuring that certificate files files are written into /var/lib/softether instead of the current working directory: Profile: /usr/sbin/softetherd Operation: mkdir Name: /usr/sbin/chain_certs Denied: c Logfile: /var/log/kern.log type=1400 audit: apparmor="DENIED" operation="mkdir" profile="/usr/sbin/softetherd" name="/usr/sbin/chain_certs/" pid=36448 comm="softetherd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0 Taken from Github https://github.com/dajhorn/SoftEtherVPN/commit/d68db9f2cee975aad5e07b44485615f3d842ab45. Signed-off-by: Bernd Kuhls Signed-off-by: Thomas Petazzoni --- src/Cedar/Protocol.c | 12 ++++++------ src/Mayaqua/Network.c | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) Index: b/src/Cedar/Protocol.c =================================================================== --- a/src/Cedar/Protocol.c +++ b/src/Cedar/Protocol.c @@ -161,10 +161,10 @@ UINT i; DIRLIST *dir; wchar_t dirname[MAX_SIZE]; - wchar_t exedir[MAX_SIZE]; + wchar_t statedir[MAX_SIZE]; - GetExeDirW(exedir, sizeof(exedir)); - CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs"); + GetStateDirW(statedir, sizeof(statedir)); + CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs"); MakeDirExW(dirname); if (auto_save) @@ -461,7 +461,7 @@ void AddAllChainCertsToCertList(LIST *o) { wchar_t dirname[MAX_SIZE]; - wchar_t exedir[MAX_SIZE]; + wchar_t statedir[MAX_SIZE]; DIRLIST *dir; // Validate arguments if (o == NULL) @@ -469,9 +469,9 @@ return; } - GetExeDirW(exedir, sizeof(exedir)); + GetStateDirW(statedir, sizeof(statedir)); - CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs"); + CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs"); MakeDirExW(dirname); Index: b/src/Mayaqua/Network.c =================================================================== --- a/src/Mayaqua/Network.c +++ b/src/Mayaqua/Network.c @@ -12588,7 +12588,7 @@ void AddChainSslCertOnDirectory(struct ssl_ctx_st *ctx) { wchar_t dirname[MAX_SIZE]; - wchar_t exedir[MAX_SIZE]; + wchar_t statedir[MAX_SIZE]; wchar_t txtname[MAX_SIZE]; DIRLIST *dir; LIST *o; @@ -12602,9 +12602,9 @@ o = NewListFast(NULL); - GetExeDirW(exedir, sizeof(exedir)); + GetStateDirW(statedir, sizeof(statedir)); - CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs"); + CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs"); MakeDirExW(dirname); ================================================ FILE: package/softether/0006-cross-compile.patch ================================================ Host version of hamcorebuilder is needed during cross-compile Signed-off-by: Bernd Kuhls diff -uNr SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824.org/src/bin/hamcore/Makefile.am SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824/src/bin/hamcore/Makefile.am --- SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824.org/src/bin/hamcore/Makefile.am 2014-09-27 12:56:53.108725793 +0200 +++ SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824/src/bin/hamcore/Makefile.am 2014-09-27 12:57:50.280009025 +0200 @@ -26,8 +26,8 @@ noinst_PROGRAMS = hamcore.se2 -hamcore.se2$(EXEEXT): $(HAMCOREBUILDER) - $(HAMCOREBUILDER) $(top_srcdir)/src/bin/hamcore $@ +hamcore.se2$(EXEEXT): + hamcorebuilder $(top_srcdir)/src/bin/hamcore $@ install-exec-local: hamcore.se2$(EXEEXT) $(INSTALL_DATA) -D hamcore.se2$(EXEEXT) $(DESTDIR)$(localstatedir)/lib/softether/hamcore.se2 diff -uNr SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824.org/src/Makefile.am SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824/src/Makefile.am --- SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824.org/src/Makefile.am 2014-09-27 12:56:53.136726809 +0200 +++ SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824/src/Makefile.am 2014-09-27 12:58:12.959723109 +0200 @@ -20,7 +20,7 @@ SUBDIRS = Mayaqua Cedar # This is a nodist helper. -SUBDIRS += hamcorebuilder +# SUBDIRS += hamcorebuilder # These are shared components. SUBDIRS += libsoftether bin/hamcore ================================================ FILE: package/softether/0007-iconv.patch ================================================ Fix linking with libiconv Inspired by https://github.com/el1n/OpenWRT-package-softether/blob/4cb1cd9073a76edf34c512e587069626e02e2404/patches/120-fix-iconv-headers-common.patch Signed-off-by: Bernd Kuhls Index: b/src/Mayaqua/Mayaqua.h =================================================================== --- a/src/Mayaqua/Mayaqua.h +++ b/src/Mayaqua/Mayaqua.h @@ -282,17 +282,7 @@ #include #endif // MAYAQUA_SUPPORTS_GETIFADDRS -#ifdef UNIX_LINUX -typedef void *iconv_t; -iconv_t iconv_open (__const char *__tocode, __const char *__fromcode); -size_t iconv (iconv_t __cd, char **__restrict __inbuf, - size_t *__restrict __inbytesleft, - char **__restrict __outbuf, - size_t *__restrict __outbytesleft); -int iconv_close (iconv_t __cd); -#else // UNIX_LINUX #include -#endif // UNIX_LINUX ================================================ FILE: package/softether/0008-librt.patch ================================================ Downloaded from https://github.com/dajhorn/SoftEtherVPN/commit/9a8538a6f2287fe8bebd0a7185de408e31e5a7df Fixes http://autobuild.buildroot.net/results/48f/48f778a891e0bf6a60ed2e4bec057c338ec25ec9/ and many others Signed-off-by: Bernd Kuhls From 9a8538a6f2287fe8bebd0a7185de408e31e5a7df Mon Sep 17 00:00:00 2001 From: Darik Horn Date: Thu, 5 Jun 2014 21:02:02 -0400 Subject: [PATCH] Add an explicit autoconf check for librt. The realtime extensions library is not automatically linked on Debian ARM platforms, so do an AC_CHECK_LIB for it in the configuration macro. --- configure.ac | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac index 165623a..6f85393 100644 --- a/configure.ac +++ b/configure.ac @@ -60,6 +60,7 @@ CC="$PTHREAD_CC" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" +AC_CHECK_LIB([rt],[clock_gettime]) AX_CHECK_OPENSSL([ AC_SUBST(OPENSSL_LIBS) ================================================ FILE: package/softether/0009-uclibc-ai-addrconfig.patch ================================================ Only enable getifaddrs support when available On uClibc, the ifaddrs.h support is optional. While the default Buildroot uClibc configuration has it enabled, some external toolchains may not. Therefore this patch detects that and adjusts softether usage of ifaddrs accordingly. Based on an initial patch from Bernd Kuhls. Signed-off-by: Thomas Petazzoni Index: b/src/Mayaqua/Mayaqua.h =================================================================== --- a/src/Mayaqua/Mayaqua.h +++ b/src/Mayaqua/Mayaqua.h @@ -235,9 +235,11 @@ #ifdef OS_UNIX #ifndef UNIX_SOLARIS #ifndef CPU_SH4 +#if !defined(__UCLIBC__) || defined(__UCLIBC_SUPPORT_AI_ADDRCONFIG__) // Getifaddrs system call is supported on UNIX other than Solaris. // However, it is not supported also by the Linux on SH4 CPU #define MAYAQUA_SUPPORTS_GETIFADDRS +#endif // !UCLIBC || UCLIBC_SUPPORT_AI_ADDRCONFIG #endif // CPU_SH4 #endif // UNIX_SOLARIS #endif // OS_UNIX ================================================ FILE: package/softether/Config.in ================================================ config BR2_PACKAGE_SOFTETHER bool "softether" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES select BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 select BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4 select BR2_PACKAGE_READLINE help The SoftEther Server is a fully integrated implementation of the SSTP, L2TP, L2TPv3, OpenVPN, and IPSec virtual private networking protocols on Linux and several other platforms. It is generally compatible with other implementations by Apple, Cisco, Juniper, Microsoft, et al. Convenient Layer-2 and Layer-3 bridging capabilities can connect several branch offices into a single broadcast or routing domain, even behind a NAT or without a static IPv4 address. In addition to supporting most VPN protocols, the SoftEther Client can penetrate hardened firewalls and captured gateways through HTTPS, DNS, and ICMP exfiltration. http://www.softether.org comment "softether needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !(BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS) ================================================ FILE: package/softether/softether.hash ================================================ # Locally computed sha256 f579fa938f6d5d0622f23b3c163b3de5dc171e30175e44511bf269b3bb9fb1fc softether-4.30-9700-beta.tar.gz sha256 5da6241ddb987c4543bf1cbba6b40a3cd3ecb624dbd4a63daf04440911656bde LICENSE ================================================ FILE: package/softether/softether.mk ================================================ ################################################################################ # # softether # ################################################################################ SOFTETHER_VERSION = 4.30-9700-beta SOFTETHER_SITE = $(call github,SoftEtherVPN,SoftEtherVPN_stable,v$(SOFTETHER_VERSION)) SOFTETHER_LICENSE = Apache-2.0 SOFTETHER_LICENSE_FILES = LICENSE SOFTETHER_DEPENDENCIES = host-pkgconf host-softether libopenssl readline SOFTETHER_AUTORECONF = YES ifeq ($(BR2_ENABLE_LOCALE),) SOFTETHER_DEPENDENCIES += libiconv SOFTETHER_CONF_ENV = LIBS+=" -liconv" endif SOFTETHER_CONF_OPTS = --with-zlib="$(STAGING_DIR)/usr" # host-libiconv does not exist, therefore we need this extra line HOST_SOFTETHER_DEPENDENCIES = host-pkgconf host-libopenssl host-readline # target build creates the file hamcore.se2 which needs the host variant of # hamcorebuilder, for details see http://www.vpnusers.com/viewtopic.php?p=5426 define HOST_SOFTETHER_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/src/Mayaqua $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/src/Cedar $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/src/hamcorebuilder endef define HOST_SOFTETHER_INSTALL_CMDS $(INSTALL) -m 0755 $(@D)/src/hamcorebuilder/hamcorebuilder $(HOST_DIR)/bin/hamcorebuilder endef $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/softhsm2/Config.in ================================================ config BR2_PACKAGE_SOFTHSM2 bool "softhsm2" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # dlopen() select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES help SoftHSM is an implementation of a cryptographic store accessible through a PKCS#11 interface. You can use it to explore PKCS#11 without having a Hardware Security Module. https://www.opendnssec.org/softhsm comment "softhsm2 needs a toolchain w/ C++, threads, gcc >= 4.8 and dynamic library support" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/softhsm2/softhsm2.hash ================================================ # From https://www.opendnssec.org/2020/04/1602/ sha256 61249473054bcd1811519ef9a989a880a7bdcc36d317c9c25457fc614df475f2 softhsm-2.6.1.tar.gz # Locally computed sha256 230cab7102816e99f7ce03ef476352fcad09d742fcbc6580d44393db6280b64c LICENSE ================================================ FILE: package/softhsm2/softhsm2.mk ================================================ ################################################################################ # # softhsm2 # ################################################################################ SOFTHSM2_VERSION = 2.6.1 SOFTHSM2_SOURCE = softhsm-$(SOFTHSM2_VERSION).tar.gz SOFTHSM2_SITE = https://dist.opendnssec.org/source SOFTHSM2_LICENSE = BSD-2-Clause SOFTHSM2_LICENSE_FILES = LICENSE SOFTHSM2_DEPENDENCIES = openssl SOFTHSM2_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_P11_KIT),y) SOFTHSM2_CONF_OPTS += \ --enable-p11-kit \ --with-p11-kit=/usr/share/p11-kit/modules SOFTHSM2_DEPENDENCIES += p11-kit else SOFTHSM2_CONF_OPTS += --disable-p11-kit endif $(eval $(autotools-package)) ================================================ FILE: package/solarus/0001-cmake-remove-Werror.patch ================================================ From 5f372ba3502369c6501c77650a761300d26f64c0 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Thu, 22 Jun 2017 00:19:56 +0200 Subject: [PATCH] cmake: remove Werror Signed-off-by: Romain Naour --- cmake/AddCompilationFlags.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/AddCompilationFlags.cmake b/cmake/AddCompilationFlags.cmake index 2c105db7f..cb5c5719a 100644 --- a/cmake/AddCompilationFlags.cmake +++ b/cmake/AddCompilationFlags.cmake @@ -25,7 +25,7 @@ endif() set(CMAKE_CXX_FLAGS_RELEASE "-Wno-error -Wall -Wextra -Wno-unknown-pragmas -Wno-fatal-errors ${CMAKE_CXX_FLAGS_RELEASE} -O3") # Be more pedantic in debug mode for developers. -set(CMAKE_CXX_FLAGS_DEBUG "-Werror -Wall -Wextra -Wno-error=deprecated-declarations -pedantic ${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") +set(CMAKE_CXX_FLAGS_DEBUG "-Wno-error -Wall -Wextra -Wno-error=deprecated-declarations -pedantic ${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") if(CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wsuggest-override") endif() -- 2.14.5 ================================================ FILE: package/solarus/0002-Add-a-basic-FindOpenGLES2.cmake.patch ================================================ From 2bf0e98f17d92fd86ee61be179e3cebe93f75ea7 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Sun, 3 Jan 2021 12:38:13 +0000 Subject: [PATCH] Add a basic FindOpenGLES2.cmake Fixes #1324 --- cmake/modules/FindOpenGLES2.cmake | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 cmake/modules/FindOpenGLES2.cmake diff --git a/cmake/modules/FindOpenGLES2.cmake b/cmake/modules/FindOpenGLES2.cmake new file mode 100644 index 000000000..70fd5e6f0 --- /dev/null +++ b/cmake/modules/FindOpenGLES2.cmake @@ -0,0 +1,28 @@ +# Try to find OpenGLES2. Once done this will define: +# OPENGLES2_FOUND +# OPENGLES2_INCLUDE_DIRS +# OPENGLES2_LIBRARIES +# OPENGLES2_DEFINITIONS + +find_package(PkgConfig QUIET) + +pkg_check_modules(PC_OPENGLES2 glesv2) + +if (PC_OPENGLES2_FOUND) + set(OPENGLES2_DEFINITIONS ${PC_OPENGLES2_CFLAGS_OTHER}) +endif () + +find_path(OPENGLES2_INCLUDE_DIRS NAMES GLES2/gl2.h + HINTS ${PC_OPENGLES2_INCLUDEDIR} ${PC_OPENGLES2_INCLUDE_DIRS} +) + +set(OPENGLES2_NAMES ${OPENGLES2_NAMES} glesv2 GLESv2) +find_library(OPENGLES2_LIBRARIES NAMES ${OPENGLES2_NAMES} + HINTS ${PC_OPENGLES2_LIBDIR} ${PC_OPENGLES2_LIBRARY_DIRS} +) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(OpenGLES2 REQUIRED_VARS OPENGLES2_INCLUDE_DIRS OPENGLES2_LIBRARIES + FOUND_VAR OPENGLES2_FOUND) + +mark_as_advanced(OPENGLES2_INCLUDE_DIRS OPENGLES2_LIBRARIES) -- 2.27.0 ================================================ FILE: package/solarus/Config.in ================================================ config BR2_PACKAGE_SOLARUS bool "solarus" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # openal depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # openal depends on !BR2_STATIC_LIBS # SDL2 depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES select BR2_PACKAGE_GLM select BR2_PACKAGE_LIBMODPLUG select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_LIBPNG # runtime select BR2_PACKAGE_LIBVORBIS select BR2_PACKAGE_OPENAL select BR2_PACKAGE_PHYSFS select BR2_PACKAGE_SDL2 select BR2_PACKAGE_SDL2_IMAGE select BR2_PACKAGE_SDL2_TTF help Solarus is an open-source Zelda-like 2D game engine written in C++. It can run games scripted in Lua. This engine is used by our Zelda fangames. Solarus is licensed under GPL v3. http://www.solarus-games.org https://github.com/solarus-games/solarus comment "solarus needs OpenGL and a toolchain w/ C++, gcc >= 4.9, NPTL, dynamic library, and luajit or lua 5.1" depends on !BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \ || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS \ || !BR2_PACKAGE_HAS_LIBGL ================================================ FILE: package/solarus/solarus.hash ================================================ # Locally calculated sha256 4b4ac59df8ab63ee2e305cbf48118d6be0cf9665968eb0b06dd1acdf4346516f solarus-v1.6.5.tar.bz2 sha256 309875d925041d909bc705473d6c4b7905272aea15c1c2389088c26c161bae1f license.txt ================================================ FILE: package/solarus/solarus.mk ================================================ ################################################################################ # # solarus # ################################################################################ SOLARUS_VERSION = 1.6.5 SOLARUS_SITE = \ https://gitlab.com/solarus-games/solarus/-/archive/v$(SOLARUS_VERSION) SOLARUS_SOURCE = solarus-v$(SOLARUS_VERSION).tar.bz2 SOLARUS_LICENSE = GPL-3.0 (code), CC-BY-SA-4.0 (Solarus logos and icons), \ CC-BY-SA-3.0 (GUI icons) SOLARUS_LICENSE_FILES = license.txt # Install libsolarus.so SOLARUS_INSTALL_STAGING = YES SOLARUS_DEPENDENCIES = glm libmodplug libogg libvorbis openal physfs \ sdl2 sdl2_image sdl2_ttf # Disable launcher GUI (requires Qt5) SOLARUS_CONF_OPTS = \ -DSOLARUS_GUI=OFF \ -DSOLARUS_TESTS=OFF ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) SOLARUS_DEPENDENCIES += libgl else SOLARUS_CONF_OPTS += -DSOLARUS_GL_ES=ON SOLARUS_DEPENDENCIES += libgles endif ifeq ($(BR2_PACKAGE_LUAJIT),y) SOLARUS_CONF_OPTS += -DSOLARUS_USE_LUAJIT=ON SOLARUS_DEPENDENCIES += luajit else SOLARUS_CONF_OPTS += -DSOLARUS_USE_LUAJIT=OFF SOLARUS_DEPENDENCIES += lua endif $(eval $(cmake-package)) ================================================ FILE: package/sound-theme-borealis/Config.in ================================================ config BR2_PACKAGE_SOUND_THEME_BOREALIS bool "sound-theme-borealis" help Borealis sound theme. http://kde-look.org/content/show.php?content=12584 ================================================ FILE: package/sound-theme-borealis/sound-theme-borealis.hash ================================================ # Locally calculated sha256 dd80a9c6317de29d42786ba7d95b114b64d06ec6c0c17dd18df853a5c668e727 Borealis_sound_theme_ogg-0.9a.tar.bz2 ================================================ FILE: package/sound-theme-borealis/sound-theme-borealis.mk ================================================ ################################################################################ # # sound-theme-borealis # ################################################################################ SOUND_THEME_BOREALIS_VERSION = 0.9a SOUND_THEME_BOREALIS_SITE = http://ico.bukvic.net/Linux/Borealis_soundtheme SOUND_THEME_BOREALIS_SOURCE = \ Borealis_sound_theme_ogg-$(SOUND_THEME_BOREALIS_VERSION).tar.bz2 define SOUND_THEME_BOREALIS_INSTALL_TARGET_CMDS for f in $(@D)/*.ogg ; do \ $(INSTALL) -D -m 0644 $$f $(TARGET_DIR)/usr/share/sounds/borealis/stereo/`basename $$f` || exit 1; \ done endef $(eval $(generic-package)) ================================================ FILE: package/sound-theme-freedesktop/Config.in ================================================ config BR2_PACKAGE_SOUND_THEME_FREEDESKTOP bool "sound-theme-freedesktop" help Default theme for the XDG Sound Theme Specification. http://freedesktop.org/wiki/Specifications/sound-theme-spec ================================================ FILE: package/sound-theme-freedesktop/sound-theme-freedesktop.hash ================================================ # Locally calculated sha256 e6595afb02b76099ef6df42c2ac7c4f9680c21c3f26b2a7ca0943d1fdbbd9aef sound-theme-freedesktop-0.7.tar.bz2 ================================================ FILE: package/sound-theme-freedesktop/sound-theme-freedesktop.mk ================================================ ################################################################################ # # sound-theme-freedesktop # ################################################################################ SOUND_THEME_FREEDESKTOP_VERSION = 0.7 SOUND_THEME_FREEDESKTOP_SITE = \ http://people.freedesktop.org/~mccann/dist SOUND_THEME_FREEDESKTOP_SOURCE = \ sound-theme-freedesktop-$(SOUND_THEME_FREEDESKTOP_VERSION).tar.bz2 SOUND_THEME_FREEDESKTOP_DEPENDENCIES = host-intltool $(eval $(autotools-package)) ================================================ FILE: package/sox/0001-uclibc.patch ================================================ Make SoX support uclibc-based toolchains, from: http://sourceforge.net/p/sox/bugs/179/ Signed-off-by: Gustavo Zacarias Index: sox-14.4.1/src/formats.c =================================================================== --- sox-14.4.1.orig/src/formats.c +++ sox-14.4.1/src/formats.c @@ -409,7 +409,7 @@ static void UNUSED rewind_pipe(FILE * fp #if defined _FSTDIO || defined _NEWLIB_VERSION || defined __APPLE__ fp->_p -= PIPE_AUTO_DETECT_SIZE; fp->_r += PIPE_AUTO_DETECT_SIZE; -#elif defined __GLIBC__ +#elif defined __GLIBC__ && ! defined __UCLIBC__ fp->_IO_read_ptr = fp->_IO_read_base; #elif defined _MSC_VER || defined _WIN32 || defined _WIN64 || defined _ISO_STDIO_ISO_H fp->_ptr = fp->_base; @@ -417,7 +417,6 @@ static void UNUSED rewind_pipe(FILE * fp /* To fix this #error, either simply remove the #error line and live without * file-type detection with pipes, or add support for your compiler in the * lines above. Test with cat monkey.wav | ./sox --info - */ - #error FIX NEEDED HERE #define NO_REWIND_PIPE (void)fp; #endif ================================================ FILE: package/sox/0002-configure.ac-put-back-disable-stack-protector.patch ================================================ From 18ace560a15207503805d4df25b90c7a756bcbf6 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 2 Feb 2021 23:53:39 +0100 Subject: [PATCH] configure.ac: put back --disable-stack-protector Put back --disable-stack-protector which has been removed by commit 70c85915eace83142b84e4f65f5db421cf0c09e3. This will allow the user to disable it or to let a higher buildsystem such as buildroot to finely configure it. Indeed, without this patch, build can fail as some compilers (such as uclibc) could missed the needed library (-lssp or -lssp_nonshared) at linking step: CCLD libsox.la /home/fabrice/br-test-pkg/br-arm-full/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/5.5.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: cannot find -lssp_nonshared /home/fabrice/br-test-pkg/br-arm-full/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/5.5.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: cannot find -lssp Signed-off-by: Fabrice Fontaine [Upstream status: https://sourceforge.net/p/sox/patches/122/] --- configure.ac | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 39306398..a1665467 100644 --- a/configure.ac +++ b/configure.ac @@ -32,7 +32,12 @@ AC_PROG_LN_S PKG_PROG_PKG_CONFIG PKG_INSTALLDIR -AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong]) +AC_ARG_ENABLE([stack-protector], + AS_HELP_STRING([--disable-stack-protector], [Disable -fstack-protector-strong]), + [enable_stack_protector=$enableval], [enable_stack_protector=yes]) +AS_IF([test x"$enable_stack_protector" = "xyes"], + [AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong])]) + AX_APPEND_COMPILE_FLAGS([-Wall -Wmissing-prototypes -Wstrict-prototypes]) AX_APPEND_LINK_FLAGS([-Wl,--as-needed]) -- 2.29.2 ================================================ FILE: package/sox/0003-configure.ac-fix-static-linking-with-id3tag.patch ================================================ From 8df3a56cfb104c84d4701562ae2e3c9dc4686798 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 6 Feb 2021 11:08:45 +0100 Subject: [PATCH] configure.ac: fix static linking with id3tag Put back -lz (i.e. ZLIB_LIBS) when searching for id3tag which was wrongly removed by commit 6ff0e9322f9891f5a6ac6c9b3bceffbfca16bec3. This will fix the following static build failure: configure:15290: checking for id3_file_open in -lid3tag configure:15315: /home/buildroot/autobuild/instance-0/output-1/host/bin/arm-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -static -Wall -Wmissing-prototypes -Wstrict-prototypes -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -Wl,--as-needed conftest.c -lid3tag >&5 conftest.c:60:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] 60 | char id3_file_open (); | ^~~~ conftest.c:62:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] 62 | main () | ^~~~ /home/buildroot/autobuild/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/9.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/buildroot/autobuild/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libid3tag.a(util.o): in function `id3_util_compress': util.c:(.text+0x1ac): undefined reference to `compress2' /home/buildroot/autobuild/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/9.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/buildroot/autobuild/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libid3tag.a(util.o): in function `id3_util_decompress': util.c:(.text+0x240): undefined reference to `uncompress' Fixes: - http://autobuild.buildroot.org/results/73efdacf237e3d567fa66f3b3f68e624f5e35bc7 Signed-off-by: Fabrice Fontaine [Upstream status: https://sourceforge.net/p/sox/patches/123] --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 39306398..896714f5 100644 --- a/configure.ac +++ b/configure.ac @@ -83,7 +83,7 @@ dnl Various libraries SOX_WITH_LIB([magic], [magic.h], [magic], [magic_open]) SOX_CHECK_LIB([ZLIB], [zlib.h], [z], [uncompress]) SOX_WITH_LIB([png], [png.h], [png], [png_set_rows], [], [], [], [$ZLIB_LIBS]) -SOX_WITH_LIB([id3tag], [id3tag.h], [id3tag], [id3_file_open]) +SOX_WITH_LIB([id3tag], [id3tag.h], [id3tag], [id3_file_open], [], [], [], [$ZLIB_LIBS]) SOX_WITH_LIB([libgsm], [gsm/gsm.h gsm.h], [gsm], [gsm_create]) dnl Optional formats -- 2.29.2 ================================================ FILE: package/sox/0004-configure.ac-fix-static-linking-with-magic.patch ================================================ From 4630e574e6c0269b94fd910e7c72b8ad1ee62ce7 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 3 Mar 2021 16:48:57 +0100 Subject: [PATCH] configure.ac: fix static linking with magic Use SOX_FMT_PKG to retrieve magic dependencies (e.g. bzip2 or zlib) indeed -lz (i.e. ZLIB_LIBS) was wrongly removed by commit 6ff0e9322f9891f5a6ac6c9b3bceffbfca16bec3. This will fix the following static build failure: configure:11677: checking for magic_open in -lmagic configure:11702: /srv/storage/autobuild/run/instance-0/output-1/host/bin/arm-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -static -Wall -Wmissing-prototypes -Wstrict-prototypes -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -Wl,--as-needed conftest.c -lmagic >&5 conftest.c:53:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] 53 | char magic_open (); | ^~~~ conftest.c:55:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] 55 | main () | ^~~~ /srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/9.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /srv/storage/autobuild/run/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libmagic.a(compress.o): in function `uncompresszlib': compress.c:(.text+0x1d0): undefined reference to `inflateInit_' /srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/9.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: compress.c:(.text+0x1e4): undefined reference to `inflate' /srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/9.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: compress.c:(.text+0x1fc): undefined reference to `inflateEnd' Fixes: - http://autobuild.buildroot.org/results/d96f27cd96926060046e2e1115777f5bceda3741 Signed-off-by: Fabrice Fontaine [Upstream status: not sent yet (waiting for feedback on third patch)] --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 896714f5..8ae3202c 100644 --- a/configure.ac +++ b/configure.ac @@ -80,7 +80,7 @@ SOX_REPORT([other], [LADSPA effect plugins], [$HAVE_LADSPA]) dnl Various libraries -SOX_WITH_LIB([magic], [magic.h], [magic], [magic_open]) +SOX_FMT_PKG([magic], [libmagic]) SOX_CHECK_LIB([ZLIB], [zlib.h], [z], [uncompress]) SOX_WITH_LIB([png], [png.h], [png], [png_set_rows], [], [], [], [$ZLIB_LIBS]) SOX_WITH_LIB([id3tag], [id3tag.h], [id3tag], [id3_file_open], [], [], [], [$ZLIB_LIBS]) -- 2.30.1 ================================================ FILE: package/sox/0005-configure.ac-fix-static-linking-with-sndfile.patch ================================================ From 06109c84ab6930265287049c4bf9405e7ebc4986 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 4 Aug 2021 10:27:16 +0200 Subject: [PATCH] configure.ac: fix static linking with sndfile Use SOX_FMT_PKG to retrieve sndfile dependencies (e.g. flac, opus or vorbis). This will fix the following static build failure: configure:14720: checking for sf_open_virtual in -lsndfile configure:14745: /tmp/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -Os -g0 -static -Wall -Wmissing-prototypes -Wstrict-prototypes -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -Wl,--as-needed conftest.c -lsndfile >&5 conftest.c:73:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] 73 | char sf_open_virtual (); | ^~~~ conftest.c:75:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] 75 | main () | ^~~~ /tmp/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/10.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: /tmp/instance-1/output-1/host/xtensa-buildroot-linux-uclibc/sysroot/usr/lib/libsndfile.a(libsndfile_la-flac.o): in function `flac_byterate': flac.c:(.text+0xfc): undefined reference to `FLAC__StreamDecoderErrorStatusString' Fixes: - http://autobuild.buildroot.org/results/4bc58ed68b29642876bb02710d0cd4f31540de86 Signed-off-by: Fabrice Fontaine [Upstream status: not sent yet (waiting for feedback on third patch)] --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 8ae3202c..26510769 100644 --- a/configure.ac +++ b/configure.ac @@ -117,7 +117,7 @@ SOX_FMT_REQ([mp3], [MAD LAME TWOLAME]) SOX_FMT_PKG([oggvorbis], [ogg vorbis vorbisenc vorbisfile]) SOX_FMT_PKG([opus], [opusfile]) -SOX_DL_LIB([libsndfile], [sndfile.h], [sndfile], [sf_open_virtual]) +SOX_FMT_PKG([libsndfile], [sndfile]) SOX_FMT_REQ([sndfile], [LIBSNDFILE]) SOX_FMT_LIB([wavpack], [wavpack/wavpack.h], [wavpack], [WavpackGetSampleRate]) -- 2.30.2 ================================================ FILE: package/sox/Config.in ================================================ config BR2_PACKAGE_SOX bool "sox" help SoX is a cross-platform (Windows, Linux, MacOS X, etc.) command line utility that can convert various formats of computer audio files into other formats. It can also apply various effects to these sound files, and, as an added bonus, SoX can play and record audio files on most platforms. http://sox.sourceforge.net/ ================================================ FILE: package/sox/sox.hash ================================================ # Locally computed sha256 3d06ba8fc39ac92f16da73593be48afe0a704fe4dc4f6eca2e5137ef77cd5115 sox-7524160b29a476f7e87bc14fddf12d349f9a3c5e-br1.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 LICENSE.GPL sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a LICENSE.LGPL ================================================ FILE: package/sox/sox.mk ================================================ ################################################################################ # # sox # ################################################################################ SOX_VERSION = 7524160b29a476f7e87bc14fddf12d349f9a3c5e SOX_SITE = git://git.code.sf.net/p/sox/code SOX_SITE_METHOD = git SOX_DEPENDENCIES = host-autoconf-archive host-pkgconf SOX_LICENSE = GPL-2.0+ (sox binary), LGPL-2.1+ (libraries) SOX_LICENSE_FILES = LICENSE.GPL LICENSE.LGPL SOX_CPE_ID_VENDOR = sound_exchange_project SOX_CPE_ID_PRODUCT = sound_exchange # From git and we're patching configure.ac SOX_AUTORECONF = YES SOX_AUTORECONF_OPTS = --include=$(HOST_DIR)/share/autoconf-archive SOX_INSTALL_STAGING = YES SOX_IGNORE_CVES += CVE-2017-11332 CVE-2017-11358 CVE-2017-11359 \ CVE-2017-15370 CVE-2017-15371 CVE-2017-15372 CVE-2017-15642 \ CVE-2017-18189 CVE-2019-8354 CVE-2019-8355 CVE-2019-8356 \ CVE-2019-8357 CVE-2019-13590 SOX_CONF_OPTS = \ --with-distro="Buildroot" \ --disable-stack-protector ifeq ($(BR2_PACKAGE_ALSA_LIB_PCM),y) SOX_DEPENDENCIES += alsa-lib SOX_CONF_OPTS += --enable-alsa else SOX_CONF_OPTS += --disable-alsa endif ifeq ($(BR2_PACKAGE_FILE),y) SOX_DEPENDENCIES += file SOX_CONF_OPTS += --enable-magic else SOX_CONF_OPTS += --disable-magic endif ifeq ($(BR2_PACKAGE_FLAC),y) SOX_DEPENDENCIES += flac SOX_CONF_OPTS += --enable-flac else SOX_CONF_OPTS += --disable-flac endif ifeq ($(BR2_PACKAGE_LAME),y) SOX_DEPENDENCIES += lame SOX_CONF_OPTS += --with-lame else SOX_CONF_OPTS += --without-lame endif ifeq ($(BR2_PACKAGE_LIBAO),y) SOX_DEPENDENCIES += libao SOX_CONF_OPTS += --enable-ao else SOX_CONF_OPTS += --disable-ao endif ifeq ($(BR2_PACKAGE_LIBGSM),y) SOX_DEPENDENCIES += libgsm SOX_CONF_OPTS += --enable-gsm else SOX_CONF_OPTS += --disable-gsm endif ifeq ($(BR2_PACKAGE_LIBID3TAG),y) SOX_DEPENDENCIES += libid3tag SOX_CONF_OPTS += --with-id3tag else SOX_CONF_OPTS += --without-id3tag endif ifeq ($(BR2_PACKAGE_LIBMAD),y) SOX_DEPENDENCIES += libmad SOX_CONF_OPTS += --with-mad else SOX_CONF_OPTS += --without-mad endif ifeq ($(BR2_PACKAGE_LIBPNG),y) SOX_DEPENDENCIES += libpng SOX_CONF_OPTS += --with-png else SOX_CONF_OPTS += --without-png endif ifeq ($(BR2_PACKAGE_LIBSNDFILE),y) SOX_DEPENDENCIES += libsndfile SOX_CONF_OPTS += --enable-sndfile else SOX_CONF_OPTS += --disable-sndfile endif ifeq ($(BR2_PACKAGE_LIBVORBIS),y) SOX_DEPENDENCIES += libvorbis SOX_CONF_OPTS += --enable-oggvorbis else SOX_CONF_OPTS += --disable-oggvorbis endif ifeq ($(BR2_PACKAGE_OPENCORE_AMR),y) SOX_DEPENDENCIES += opencore-amr SOX_CONF_OPTS += --enable-amrwb --enable-amrnb else SOX_CONF_OPTS += --disable-amrwb --disable-amrnb endif ifeq ($(BR2_PACKAGE_OPUSFILE),y) SOX_DEPENDENCIES += opusfile SOX_CONF_OPTS += --enable-opus else SOX_CONF_OPTS += --disable-opus endif ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) SOX_DEPENDENCIES += pulseaudio SOX_CONF_OPTS += --enable-pulseaudio else SOX_CONF_OPTS += --disable-pulseaudio endif ifeq ($(BR2_PACKAGE_TWOLAME),y) SOX_DEPENDENCIES += twolame SOX_CONF_OPTS += --with-twolame else SOX_CONF_OPTS += --without-twolame endif ifeq ($(BR2_PACKAGE_WAVPACK),y) SOX_DEPENDENCIES += wavpack SOX_CONF_OPTS += --enable-wavpack else SOX_CONF_OPTS += --disable-wavpack endif $(eval $(autotools-package)) ================================================ FILE: package/sp-oops-extract/0001-Make-the-Makefile-more-cross-compiler-friendly.patch ================================================ Fetch from: https://github.com/Schischu/ptxdist_sh/tree/master/patches/sp-oops-extract-0.0.7 From: Bernhard Walle Date: Wed, 21 Mar 2012 15:55:06 +0100 Subject: [PATCH] Make the Makefile more cross-compiler friendly Signed-off-by: Bernhard Walle --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index cf5b550..e05eb1f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -9,4 +9,4 @@ distclean: clean $(RM) $(TARGETS) sp-oops-extract: oopslog.c - gcc -Wall -s -o $@ $^ + $(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) -Wall -o $@ $^ ================================================ FILE: package/sp-oops-extract/0002-stdint-cleanup.patch ================================================ consolidate use of stdint types Change u_int*_t to uint*_t for compatibility with a larger number of C libraries. Signed-off-by: Doug Kehn Index: sp-oops-extract-0.0.7-1/src/oopslog.c =================================================================== --- sp-oops-extract-0.0.7-1.orig/src/oopslog.c +++ sp-oops-extract-0.0.7-1/src/oopslog.c @@ -64,8 +64,8 @@ static int try_to_check_for_bad_blocks(v int main(const int argc, const char *argv[]) { - u_int32_t *count, maxcount = 0xffffffff; - u_int32_t *magic_ptr, magic_value = 0x5d005d00; + uint32_t *count, maxcount = 0xffffffff; + uint32_t *magic_ptr, magic_value = 0x5d005d00; unsigned char *charbuf; unsigned long size; @@ -137,8 +137,8 @@ int main(const int argc, const char *arg errx(-1, "%s is something weird", device); charbuf = buf; - count = (u_int32_t *) buf; - magic_ptr = (u_int32_t *) (buf + sizeof(u_int32_t)); + count = (uint32_t *) buf; + magic_ptr = (uint32_t *) (buf + sizeof(uint32_t)); for (i = 0; i < (size / OOPS_PAGE_SIZE); i++) { pread(fd, buf, OOPS_PAGE_SIZE, i * OOPS_PAGE_SIZE); ================================================ FILE: package/sp-oops-extract/Config.in ================================================ config BR2_PACKAGE_SP_OOPS_EXTRACT bool "sp-oops-extract" help A tool for extracting OOPS/panic logs from MTD. http://maemo.org/packages/view/sp-oops-extract/ ================================================ FILE: package/sp-oops-extract/sp-oops-extract.hash ================================================ # Locally computed: sha256 85601a569af1f4584db75fad21d3a70e377ce12d1bccad7dbe1112abd3b43d93 sp-oops-extract_0.0.7-1.tar.gz sha256 c38aee9e3c8c4d5d594ff548a1be05453023016d6286931f6512db215ec1fd42 COPYING ================================================ FILE: package/sp-oops-extract/sp-oops-extract.mk ================================================ ################################################################################ # # sp-oops-extract # ################################################################################ SP_OOPS_EXTRACT_VERSION = 0.0.7-1 SP_OOPS_EXTRACT_SITE = http://repository.maemo.org/pool/maemo5.0/free/s/sp-oops-extract SP_OOPS_EXTRACT_SOURCE = sp-oops-extract_$(SP_OOPS_EXTRACT_VERSION).tar.gz SP_OOPS_EXTRACT_LICENSE = GPL-2.0 SP_OOPS_EXTRACT_LICENSE_FILES = COPYING define SP_OOPS_EXTRACT_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) endef define SP_OOPS_EXTRACT_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install \ DESTDIR=$(TARGET_DIR) endef $(eval $(generic-package)) ================================================ FILE: package/spandsp/0001-configure.ac-fix-AVX-SSE-and-MMX-options.patch ================================================ From e7330bfe63efd0062fa51d50a4aaa0f1abd5ff75 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 22 Nov 2020 17:02:43 +0100 Subject: [PATCH] configure.ac: fix AVX, SSE and MMX options AVX, SSE and MMX options are broken since https://github.com/freeswitch/spandsp/commit/87a900c70df73e128a5926587047f529105f5f64 For example, when the user enables SSE, it will also enable MMX and the user can't disable MMX Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/freeswitch/spandsp/pull/20] --- configure.ac | 8 -------- 1 file changed, 8 deletions(-) diff --git a/configure.ac b/configure.ac index 83fb3fd..ac2592e 100644 --- a/configure.ac +++ b/configure.ac @@ -486,35 +486,27 @@ armv7[bl] | armv7-*) x86_64-* | i386-* | i686-*) if test "$enable_avx2" = "yes" ; then AC_DEFINE([SPANDSP_USE_AVX2], [1], [Use the AVX2 instruction set (i386 and x86_64 only).]) - enable_avx="yes" fi if test "$enable_avx" = "yes" ; then AC_DEFINE([SPANDSP_USE_AVX], [1], [Use the AVX instruction set (i386 and x86_64 only).]) - enable_sse4_2="yes" fi if test "$enable_sse4_2" = "yes" ; then AC_DEFINE([SPANDSP_USE_SSE4_2], [1], [Use the SSE4.2 instruction set (i386 and x86_64 only).]) - enable_sse4_1="yes" fi if test "$enable_sse4_1" = "yes" ; then AC_DEFINE([SPANDSP_USE_SSE4_1], [1], [Use the SSE4.1 instruction set (i386 and x86_64 only).]) - enable_ssse3="yes" fi if test "$enable_ssse3" = "yes" ; then AC_DEFINE([SPANDSP_USE_SSSE3], [1], [Use the SSSE3 instruction set (i386 and x86_64 only).]) - enable_sse3="yes" fi if test "$enable_sse3" = "yes" ; then AC_DEFINE([SPANDSP_USE_SSE3], [1], [Use the SSE3 instruction set (i386 and x86_64 only).]) - enable_sse2="yes" fi if test "$enable_sse2" = "yes" ; then AC_DEFINE([SPANDSP_USE_SSE2], [1], [Use the SSE2 instruction set (i386 and x86_64 only).]) - enable_sse="yes" fi if test "$enable_sse" = "yes" ; then AC_DEFINE([SPANDSP_USE_SSE], [1], [Use the SSE instruction set (i386 and x86_64 only).]) - enable_mmx="yes" fi if test "$enable_mmx" = "yes" ; then AC_DEFINE([SPANDSP_USE_MMX], [1], [Use the MMX instruction set (i386 and x86_64 only).]) -- 2.29.2 ================================================ FILE: package/spandsp/Config.in ================================================ config BR2_PACKAGE_SPANDSP bool "spandsp" select BR2_PACKAGE_TIFF select BR2_PACKAGE_TIFF_JPEG help Spandsp is a library of many DSP functions for telephony. These range from simple modules, such as DTMF detection, to a complete software FAX machine. https://github.com/freeswitch/spandsp ================================================ FILE: package/spandsp/spandsp.hash ================================================ # sha256 locally computed sha256 a11beed46b488a4cac3b0c42042ad28448bcee4c0027a82d5449180bbb178836 spandsp-3.0.0-6ec23e5a7e.tar.gz sha256 366576cb0b869cd9e95a4882878607314650488ac635e5df0692180382e9666a COPYING ================================================ FILE: package/spandsp/spandsp.mk ================================================ ################################################################################ # # spandsp # ################################################################################ SPANDSP_VERSION = 3.0.0-6ec23e5a7e SPANDSP_SITE = https://files.freeswitch.org/downloads/libs SPANDSP_LICENSE = LGPL-2.1 (library), GPL-2.0 (test suite) SPANDSP_LICENSE_FILES = COPYING # We're patching configure.ac SPANDSP_AUTORECONF = YES SPANDSP_DEPENDENCIES = tiff host-pkgconf SPANDSP_INSTALL_STAGING = YES SPANDSP_CONF_ENV = LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libtiff-4`" # MMX on i686 raises a build failure SPANDSP_CONF_OPTS = \ --disable-builtin-tiff \ $(if $(BR2_x86_64),--enable-mmx,--disable-mmx) \ $(if $(BR2_X86_CPU_HAS_SSE),--enable-sse,--disable-sse) \ $(if $(BR2_X86_CPU_HAS_SSE2),--enable-sse2,--disable-sse2) \ $(if $(BR2_X86_CPU_HAS_SSE3),--enable-sse3,--disable-sse3) \ $(if $(BR2_X86_CPU_HAS_SSSE3),--enable-ssse3,--disable-ssse3) \ $(if $(BR2_X86_CPU_HAS_SSE4),--enable-sse4-1,--disable-sse4-1) \ $(if $(BR2_X86_CPU_HAS_SSE42),--enable-sse4-2,--disable-sse4-2) $(eval $(autotools-package)) ================================================ FILE: package/spawn-fcgi/Config.in ================================================ config BR2_PACKAGE_SPAWN_FCGI bool "spawn-fcgi" depends on BR2_USE_MMU # fork() help FastCGI process spawner. Project split from lighttpd. http://redmine.lighttpd.net/projects/spawn-fcgi ================================================ FILE: package/spawn-fcgi/spawn-fcgi.hash ================================================ # From http://redmine.lighttpd.net/news/9 sha256 a3cfc7c9581b6ddc31084b379c9160323fa345d357ace6cd2d3d3af3593e2873 spawn-fcgi-1.6.4.tar.bz2 # Locally computed sha256 5c98cad2fbaf5c5e2562bcbab401a7c557c1bb1bac9914ecc63730925052fb13 COPYING ================================================ FILE: package/spawn-fcgi/spawn-fcgi.mk ================================================ ################################################################################ # # spawn-fcgi # ################################################################################ SPAWN_FCGI_VERSION = 1.6.4 SPAWN_FCGI_SITE = http://www.lighttpd.net/download SPAWN_FCGI_SOURCE = spawn-fcgi-$(SPAWN_FCGI_VERSION).tar.bz2 SPAWN_FCGI_LICENSE = BSD-3-Clause SPAWN_FCGI_LICENSE_FILES = COPYING SPAWN_FCGI_CPE_ID_VENDOR = lighttpd $(eval $(autotools-package)) ================================================ FILE: package/spdlog/Config.in ================================================ config BR2_PACKAGE_SPDLOG bool "spdlog" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR # fmt select BR2_PACKAGE_FMT help Very fast, header-only/compiled, C++ logging library. https://github.com/gabime/spdlog comment "spdlog needs a toolchain w/ C++, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_USE_WCHAR ================================================ FILE: package/spdlog/spdlog.hash ================================================ # Locally calculated sha256 6fff9215f5cb81760be4cc16d033526d1080427d236e86d70bb02994f85e3d38 spdlog-1.9.2.tar.gz sha256 a7241a379cb98d37788f82c2fc2e484c3ae85dae881fd3406f0637644850926f LICENSE ================================================ FILE: package/spdlog/spdlog.mk ================================================ ################################################################################ # # spdlog # ################################################################################ SPDLOG_VERSION = 1.9.2 SPDLOG_SITE = $(call github,gabime,spdlog,v$(SPDLOG_VERSION)) SPDLOG_LICENSE = MIT SPDLOG_LICENSE_FILES = LICENSE SPDLOG_INSTALL_STAGING = YES SPDLOG_DEPENDENCIES = fmt SPDLOG_CONF_OPTS += \ -DSPDLOG_BUILD_TESTS=OFF \ -DSPDLOG_BUILD_EXAMPLE=OFF \ -DSPDLOG_BUILD_BENCH=OFF \ -DSPDLOG_FMT_EXTERNAL=ON ifeq ($(BR2_STATIC_LIBS),y) SPDLOG_CONF_OPTS += -DSPDLOG_BUILD_SHARED=OFF else SPDLOG_CONF_OPTS += -DSPDLOG_BUILD_SHARED=ON endif $(eval $(cmake-package)) ================================================ FILE: package/speex/0001-thumb2-support.patch ================================================ Make speex Thumb2 compatible Patch written by Michael Hope from Linaro, available at http://lists.xiph.org/pipermail/speex-dev/2010-November/008041.html. Signed-off-by: Thomas Petazzoni [Bernd: rebased for 1.2.0] Signed-off-by: Bernd Kuhls diff --git a/libspeex/filters_arm4.h b/libspeex/filters_arm4.h index 7a74042..6ec1f75 100644 --- a/libspeex/filters_arm4.h +++ b/libspeex/filters_arm4.h @@ -47,8 +47,10 @@ int normalize16(const spx_sig_t *x, spx_word16_t *y, spx_sig_t max_scale, int le "\tldr %4, [%0], #4 \n" "\tcmp %4, %1 \n" + "\tit gt \n" "\tmovgt %1, %4 \n" "\tcmp %4, %3 \n" + "\tit lt \n" "\tmovlt %3, %4 \n" "\tsubs %2, %2, #1 \n" @@ -56,6 +58,7 @@ int normalize16(const spx_sig_t *x, spx_word16_t *y, spx_sig_t max_scale, int le "\trsb %3, %3, #0 \n" "\tcmp %1, %3 \n" + "\tit lt \n" "\tmovlt %1, %3 \n" : "=r" (dead1), "=r" (max_val), "=r" (dead3), "=r" (dead4), "=r" (dead5), "=r" (dead6) diff --git a/libspeex/fixed_arm4.h b/libspeex/fixed_arm4.h index b6981ca..b6218ca 100644 --- a/libspeex/fixed_arm4.h +++ b/libspeex/fixed_arm4.h @@ -69,72 +69,90 @@ static inline short DIV32_16(int a, int b) __asm__ __volatile__ ( "\teor %5, %0, %1\n" "\tmovs %4, %0\n" + "\tit mi \n" "\trsbmi %0, %0, #0 \n" "\tmovs %4, %1\n" + "\tit mi \n" "\trsbmi %1, %1, #0 \n" "\tmov %4, #1\n" "\tsubs %3, %0, %1, asl #14 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #14 \n" "\tsubs %3, %0, %1, asl #13 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #13 \n" "\tsubs %3, %0, %1, asl #12 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #12 \n" "\tsubs %3, %0, %1, asl #11 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #11 \n" "\tsubs %3, %0, %1, asl #10 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #10 \n" "\tsubs %3, %0, %1, asl #9 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #9 \n" "\tsubs %3, %0, %1, asl #8 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #8 \n" "\tsubs %3, %0, %1, asl #7 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #7 \n" "\tsubs %3, %0, %1, asl #6 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #6 \n" "\tsubs %3, %0, %1, asl #5 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #5 \n" "\tsubs %3, %0, %1, asl #4 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #4 \n" "\tsubs %3, %0, %1, asl #3 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #3 \n" "\tsubs %3, %0, %1, asl #2 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #2 \n" "\tsubs %3, %0, %1, asl #1 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4, asl #1 \n" "\tsubs %3, %0, %1 \n" + "\titt pl \n" "\tmovpl %0, %3 \n" "\torrpl %2, %2, %4 \n" "\tmovs %5, %5, lsr #31 \n" + "\tit ne \n" "\trsbne %2, %2, #0 \n" : "=r" (dead1), "=r" (dead2), "=r" (res), "=r" (dead3), "=r" (dead4), "=r" (dead5) diff --git a/libspeex/fixed_arm5e.h b/libspeex/fixed_arm5e.h index 9b4861c..bdadd02 100644 --- a/libspeex/fixed_arm5e.h +++ b/libspeex/fixed_arm5e.h @@ -97,72 +97,90 @@ static inline short DIV32_16(int a, int b) __asm__ __volatile__ ( "\teor %5, %0, %1\n" "\tmovs %4, %0\n" + "\tit mi \n" "\trsbmi %0, %0, #0 \n" "\tmovs %4, %1\n" + "\tit mi \n" "\trsbmi %1, %1, #0 \n" "\tmov %4, #1\n" "\tsubs %3, %0, %1, asl #14 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #14 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #13 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #13 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #12 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #12 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #11 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #11 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #10 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #10 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #9 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #9 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #8 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #8 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #7 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #7 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #6 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #6 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #5 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #5 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #4 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #4 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #3 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #3 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #2 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #2 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1, asl #1 \n" + "\titt pl \n" "\torrpl %2, %2, %4, asl #1 \n" "\tmovpl %0, %3 \n" "\tsubs %3, %0, %1 \n" + "\titt pl \n" "\torrpl %2, %2, %4 \n" "\tmovpl %0, %3 \n" "\tmovs %5, %5, lsr #31 \n" + "\tit ne \n" "\trsbne %2, %2, #0 \n" : "=r" (dead1), "=r" (dead2), "=r" (res), "=r" (dead3), "=r" (dead4), "=r" (dead5) ================================================ FILE: package/speex/Config.in ================================================ config BR2_PACKAGE_SPEEX bool "speex" select BR2_PACKAGE_LIBOGG help Speex is an Open Source/Free Software patent-free audio compression format designed for speech. It can be used for Voice over IP http://www.speex.org/ if BR2_PACKAGE_SPEEX config BR2_PACKAGE_SPEEX_ARM4 bool default y depends on BR2_ARM_CPU_ARMV4 config BR2_PACKAGE_SPEEX_ARM5E bool default y depends on BR2_arm && !BR2_PACKAGE_SPEEX_ARM4 endif ================================================ FILE: package/speex/speex.hash ================================================ # From https://downloads.xiph.org/releases/speex/SHA256SUMS.txt sha256 eaae8af0ac742dc7d542c9439ac72f1f385ce838392dc849cae4536af9210094 speex-1.2.0.tar.gz # From https://downloads.xiph.org/releases/speex/MD5SUMS md5 8ab7bb2589110dfaf0ed7fa7757dc49c speex-1.2.0.tar.gz # Locally computed sha256 671bb5d8fd3c6b05a2e831d90f978ac27965c92bd8ea6d16b3df76e3440c0e9f COPYING ================================================ FILE: package/speex/speex.mk ================================================ ################################################################################ # # speex # ################################################################################ SPEEX_VERSION = 1.2.0 SPEEX_SITE = https://downloads.xiph.org/releases/speex SPEEX_LICENSE = BSD-3-Clause SPEEX_LICENSE_FILES = COPYING SPEEX_CPE_ID_VENDOR = xiph SPEEX_INSTALL_STAGING = YES SPEEX_DEPENDENCIES = host-pkgconf libogg SPEEX_CONF_OPTS = \ --enable-fixed-point ifeq ($(BR2_PACKAGE_SPEEXDSP),y) SPEEX_DEPENDENCIES += speexdsp endif ifeq ($(BR2_PACKAGE_SPEEX_ARM4),y) SPEEX_CONF_OPTS += --enable-arm4-asm endif ifeq ($(BR2_PACKAGE_SPEEX_ARM5E),y) SPEEX_CONF_OPTS += --enable-arm5e-asm endif define SPEEX_LIBTOOL_FIXUP $(SED) 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' $(@D)/libtool $(SED) 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' $(@D)/libtool endef SPEEX_POST_CONFIGURE_HOOKS += SPEEX_LIBTOOL_FIXUP $(eval $(autotools-package)) ================================================ FILE: package/speexdsp/Config.in ================================================ config BR2_PACKAGE_SPEEXDSP bool "speexdsp" help DSP library derived from speex. https://www.speex.org ================================================ FILE: package/speexdsp/speexdsp.hash ================================================ # Locally computed sha256 c92c7e428cb5ca11b4e6f13118ff288332f330b6fefc93cb39bf7b43b13cb1f7 speexdsp-SpeexDSP-1.2.0-br1.tar.gz sha256 671bb5d8fd3c6b05a2e831d90f978ac27965c92bd8ea6d16b3df76e3440c0e9f COPYING ================================================ FILE: package/speexdsp/speexdsp.mk ================================================ ################################################################################ # # speexdsp # ################################################################################ SPEEXDSP_VERSION = SpeexDSP-1.2.0 SPEEXDSP_SITE = https://gitlab.xiph.org/xiph/speexdsp.git SPEEXDSP_SITE_METHOD = git SPEEXDSP_LICENSE = BSD-3-Clause SPEEXDSP_LICENSE_FILES = COPYING SPEEXDSP_INSTALL_STAGING = YES SPEEXDSP_DEPENDENCIES = host-pkgconf SPEEXDSP_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/sphinxbase/Config.in ================================================ 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 ================================================ FILE: package/sphinxbase/sphinxbase.hash ================================================ # Locally computed sha256 06971dbe272d2f73bde0ef7b3538c0c8f8ea885cb171fd6b17a5975bced66e64 sphinxbase-5prealpha.tar.gz sha256 26f12e0152a5d58c69904e439761a1b2fbb9267b5f04674dbf93667e3e6dd043 src/libsphinxbase/util/bio.c ================================================ FILE: package/sphinxbase/sphinxbase.mk ================================================ ################################################################################ # # sphinxbase # ################################################################################ SPHINXBASE_VERSION = 5prealpha SPHINXBASE_SITE = http://downloads.sourceforge.net/project/cmusphinx/sphinxbase/5prealpha SPHINXBASE_LICENSE = BSD-2-Clause # 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)) ================================================ FILE: package/spi-tools/Config.in ================================================ config BR2_PACKAGE_SPI_TOOLS bool "spi-tools" help This package contains some simple command line tools to help using Linux spidev devices. https://github.com/cpb-/spi-tools ================================================ FILE: package/spi-tools/spi-tools.hash ================================================ # locally computed hash sha256 5eb24670461dcf2c58471114dc69b5204dab1c0cc5053878f6de79503bd8cc9f spi-tools-1.0.0.tar.gz sha256 a01259a1b522cf0de95824f9860613b453153eebac468e96196d5d7dba84786c LICENSE ================================================ FILE: package/spi-tools/spi-tools.mk ================================================ ################################################################################ # # spi-tools # ################################################################################ SPI_TOOLS_VERSION = 1.0.0 SPI_TOOLS_SITE = $(call github,cpb-,spi-tools,$(SPI_TOOLS_VERSION)) # autoreconf must be run as specified in package documentation SPI_TOOLS_AUTORECONF = YES SPI_TOOLS_LICENSE = GPL-2.0 SPI_TOOLS_LICENSE_FILES = LICENSE $(eval $(autotools-package)) ================================================ FILE: package/spice/Config.in ================================================ comment "spice server needs a toolchain w/ wchar, threads" depends on BR2_i386 || BR2_x86_64 depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_SPICE bool "spice server" depends on BR2_i386 || BR2_x86_64 depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_PIXMAN select BR2_PACKAGE_SPICE_PROTOCOL help The Spice project aims to provide a complete open source solution for interaction with virtualized desktop devices. The Spice project deals with both the virtualized devices and the front-end. Interaction between front-end and back-end is done using VD-Interfaces. This package implements the server-part of Spice. http://www.spice-space.org/ ================================================ FILE: package/spice/spice.hash ================================================ # Locally calculated sha256 b320cf8f4bd2852750acb703c15b72856027e5a8554f8217dfbb3cc09deba0f5 spice-0.15.0.tar.bz2 sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/spice/spice.mk ================================================ ################################################################################ # # spice # ################################################################################ SPICE_VERSION = 0.15.0 SPICE_SOURCE = spice-$(SPICE_VERSION).tar.bz2 SPICE_SITE = http://www.spice-space.org/download/releases/spice-server SPICE_LICENSE = LGPL-2.1+ SPICE_LICENSE_FILES = COPYING SPICE_CPE_ID_VENDOR = spice_project SPICE_INSTALL_STAGING = YES SPICE_DEPENDENCIES = \ host-pkgconf \ jpeg \ libglib2 \ openssl \ pixman \ spice-protocol # We disable everything for now, because the dependency tree can become # quite deep if we try to enable some features, and I have not tested that. SPICE_CONF_OPTS = \ --disable-gstreamer \ --disable-opengl \ --disable-smartcard \ --without-sasl \ --disable-manual \ --disable-tests SPICE_DEPENDENCIES += host-pkgconf ifeq ($(BR2_PACKAGE_LZ4),y) SPICE_CONF_OPTS += --enable-lz4 SPICE_DEPENDENCIES += lz4 else SPICE_CONF_OPTS += --disable-lz4 endif ifeq ($(BR2_PACKAGE_OPUS),y) SPICE_CONF_OPTS += --enable-opus SPICE_DEPENDENCIES += opus else SPICE_CONF_OPTS += --disable-opus endif # We need to tweak spice.pc because it /forgets/ (for static linking) that # it should link against libz and libjpeg. libz is pkg-config-aware, while # libjpeg isn't, hence the two-line tweak define SPICE_POST_INSTALL_STAGING_FIX_PC $(SED) 's/^\(Requires.private:.*\)$$/\1 zlib/; s/^\(Libs.private:.*\)$$/\1 -ljpeg/;' \ "$(STAGING_DIR)/usr/lib/pkgconfig/spice-server.pc" endef SPICE_POST_INSTALL_STAGING_HOOKS += SPICE_POST_INSTALL_STAGING_FIX_PC # It is currently not possible to detect if stack-protection is available # or not, because it requires support from both the compiler *and* the # C library, but the C library (eg. uClibc) can be compiled without that # support, even if gcc accepts the -fstack-protector-all option. # spice's ./configure only checks for gcc's -fstack-protector-all option, # so it misses the case where the C library doe not provide the requires # support. # A correct fix would be to fix spice's ./configure to also check the C # library, but it might be much more involved. # So, we simply disable it for now. After all, as uClibc's help puts it: # Note that NOEXECSTACK on a kernel with address space randomization # is generally sufficient to prevent most buffer overflow exploits # without increasing code size. SPICE_CONF_OPTS += gl_cv_warn__fstack_protector_all=no $(eval $(autotools-package)) ================================================ FILE: package/spice-protocol/Config.in ================================================ config BR2_PACKAGE_SPICE_PROTOCOL bool "spice protocol" help The Spice project aims to provide a complete open source solution for interaction with virtualized desktop devices. The Spice project deals with both the virtualized devices and the front-end. Interaction between front-end and back-end is done using VD-Interfaces. This package implements the protocol-part of Spice. http://www.spice-space.org/ ================================================ FILE: package/spice-protocol/spice-protocol.hash ================================================ # From https://www.spice-space.org/download/releases/spice-protocol-0.14.3.tar.xz.sha256sum sha256 f986e5bc2a1598532c4897f889afb0df9257ac21c160c083703ae7c8de99487a spice-protocol-0.14.3.tar.xz # Hash for license file sha256 eb55ea746be694c449224c7ddce6340648b075fd377281712a19094e7fb7ef92 COPYING ================================================ FILE: package/spice-protocol/spice-protocol.mk ================================================ ################################################################################ # # spice-protocol # ################################################################################ SPICE_PROTOCOL_VERSION = 0.14.3 SPICE_PROTOCOL_SOURCE = spice-protocol-$(SPICE_PROTOCOL_VERSION).tar.xz SPICE_PROTOCOL_SITE = http://www.spice-space.org/download/releases SPICE_PROTOCOL_LICENSE = BSD-3-Clause SPICE_PROTOCOL_LICENSE_FILES = COPYING SPICE_PROTOCOL_INSTALL_STAGING = YES $(eval $(meson-package)) ================================================ FILE: package/spidev_test/Config.in ================================================ config BR2_PACKAGE_SPIDEV_TEST bool "spidev_test" help SPI testing utility (using spidev driver). This package builds and installs the userspace 'spidev_test' command. It is up to the user to ensure that the kernel configuration has all suitable options enabled to allow a proper operation of 'spidev_test'. The version used is based on your toolchain headers version, if it's older than 3.15 then 3.0 is used, otherwise 3.15 is used. This means you won't have quad-pumped SPI support if your toolchain is too old. https://www.kernel.org/doc/html/latest/spi/index.html ================================================ FILE: package/spidev_test/spidev_test.hash ================================================ # Locally calculated sha256 80471c330d8c0bf5ba6479c434a54a54bdd2dc59a703b9c76c2541ec04cfb8c3 spidev_test.c?id=v3.0 sha256 3cf76b15d9a8644f3f5cbc0387cc02a7d4a392ade39788cbc6367cce98552e2f spidev_test.c?id=v4.10 ================================================ FILE: package/spidev_test/spidev_test.mk ================================================ ################################################################################ # # spidev_test # ################################################################################ # Build the latest version that is compatible with the toolchain's kernel headers # v3.15+ requires SPI_TX_QUAD/SPI_RX_QUAD to build # Normally kernel headers can't be newer than kernel so switch based on that. # If you need quad-pumped spi support you need to upgrade your toolchain. # Note that the location of spidev_test.c changes from v4.5 onwards. ifeq ($(BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15),y) SPIDEV_TEST_VERSION = 4.10 SPIDEV_TEST_PATH = tools/spi else SPIDEV_TEST_VERSION = 3.0 SPIDEV_TEST_PATH = Documentation/spi endif SPIDEV_TEST_SITE = http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/$(SPIDEV_TEST_PATH) SPIDEV_TEST_SOURCE = spidev_test.c?id=v$(SPIDEV_TEST_VERSION) SPIDEV_TEST_LICENSE = GPL-2.0 # 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_TEST_ADD_LINUX_IOCTL $(SED) 's~^#include ~#include \n#include ~' \ $(@D)/spidev_test.c endef SPIDEV_TEST_POST_PATCH_HOOKS += SPIDEV_TEST_ADD_LINUX_IOCTL define SPIDEV_TEST_EXTRACT_CMDS cp $(SPIDEV_TEST_DL_DIR)/$(SPIDEV_TEST_SOURCE) $(@D)/spidev_test.c endef define SPIDEV_TEST_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CC) $(TARGET_CFLAGS) \ -o $(@D)/spidev_test $(@D)/spidev_test.c endef define SPIDEV_TEST_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/spidev_test \ $(TARGET_DIR)/usr/sbin/spidev_test endef $(eval $(generic-package)) ================================================ FILE: package/sqlcipher/Config.in ================================================ config BR2_PACKAGE_SQLCIPHER bool "sqlcipher" depends on !BR2_PACKAGE_SQLITE depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_OPENSSL help SQLCipher is an SQLite extension that provides 256 bits AES encryption of database files. Note that it is a fork of SQLite and they cannot be installed side-by-side. http://sqlcipher.net if BR2_PACKAGE_SQLCIPHER config BR2_PACKAGE_SQLCIPHER_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_SQLCIPHER_STAT3 bool "Additional query optimizations (stat3)" help Adds additional logic to the ANALYZE command and to the query planner that can help SQLite to choose a better query plan under certain situations. endif comment "sqlcipher conflicts with sqlite" depends on BR2_PACKAGE_SQLITE comment "sqlcipher needs a toolchain w/ threads" depends on !BR2_PACKAGE_SQLITE depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/sqlcipher/sqlcipher.hash ================================================ # locally computed sha256 b8df69b998c042ce7f8a99f07cf11f45dfebe51110ef92de95f1728358853133 sqlcipher-4.4.3.tar.gz sha256 3eee3c7964a9becc94d747bd36703d31fc86eb994680b06a61bfd4f2661eaac8 LICENSE ================================================ FILE: package/sqlcipher/sqlcipher.mk ================================================ ################################################################################ # # sqlcipher # ################################################################################ SQLCIPHER_VERSION = 4.4.3 SQLCIPHER_SITE = $(call github,sqlcipher,sqlcipher,v$(SQLCIPHER_VERSION)) SQLCIPHER_LICENSE = BSD-3-Clause SQLCIPHER_LICENSE_FILES = LICENSE SQLCIPHER_CPE_ID_VENDOR = zetetic SQLCIPHER_DEPENDENCIES = host-pkgconf openssl host-tcl SQLCIPHER_INSTALL_STAGING = YES SQLCIPHER_CONF_ENV = \ CFLAGS="$(TARGET_CFLAGS) $(SQLCIPHER_CFLAGS)" \ TCLSH_CMD=$(HOST_DIR)/bin/tclsh$(TCL_VERSION_MAJOR) SQLCIPHER_CONF_OPTS = \ --enable-threadsafe \ --disable-tcl SQLCIPHER_CFLAGS += -DSQLITE_HAS_CODEC # Required according to the README SQLCIPHER_CONF_ENV += LIBS=`$(PKG_CONFIG_HOST_BINARY) --libs openssl` ifeq ($(BR2_PACKAGE_SQLCIPHER_STAT3),y) SQLCIPHER_CFLAGS += -DSQLITE_ENABLE_STAT3 endif ifeq ($(BR2_PACKAGE_SQLCIPHER_READLINE),y) SQLCIPHER_DEPENDENCIES += ncurses readline SQLCIPHER_CONF_OPTS += --with-readline-inc="-I$(STAGING_DIR)/usr/include" else SQLCIPHER_CONF_OPTS += --disable-readline endif ifeq ($(BR2_STATIC_LIBS),y) SQLCIPHER_CONF_OPTS += --disable-load-extension else SQLCIPHER_CONF_OPTS += --enable-load-extension endif $(eval $(autotools-package)) ================================================ FILE: package/sqlite/Config.in ================================================ config BR2_PACKAGE_SQLITE bool "sqlite" help SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. https://www.sqlite.org/ if BR2_PACKAGE_SQLITE config BR2_PACKAGE_SQLITE_STAT4 bool "Additional query optimizations (stat4)" help Adds additional logic to the ANALYZE command and to the query planner that can help SQLite to choose a better query plan under certain situations. config BR2_PACKAGE_SQLITE_ENABLE_COLUMN_METADATA bool "Enable convenient access to meta-data about tables and queries" help When this option is defined there are some additional APIs enabled to acces meta-data about tables and queries (see https://sqlite.org/compile.html). config BR2_PACKAGE_SQLITE_ENABLE_FTS3 bool "Enable version 3 of the full-text search engine" help When this option is defined in the amalgamation (see http://www.sqlite.org/amalgamation.html), version 3 of the full-text search engine is added to the build automatically. config BR2_PACKAGE_SQLITE_ENABLE_JSON1 bool "Enable the JSON extensions for SQLite" help When this option is defined in the amalgamation, the JSON extensions are added to the build automatically. config BR2_PACKAGE_SQLITE_ENABLE_UNLOCK_NOTIFY bool "Enable sqlite3_unlock_notify() interface" help This option enables the sqlite3_unlock_notify() interface and its accosiated functionality. See the documentation http://www.sqlite.org/unlock_notify.html for additional information. config BR2_PACKAGE_SQLITE_SECURE_DELETE bool "Set the secure_delete pragma on by default" help This compile-time option changes the default settings of the secure_delete pragma. When this option is not used, secure_delete defaults to off. When this option is present, secure_delete defaults to on. The secure_delete setting causes deleted content to be overwritten with zeros. There is a small performance penalty for this since additional I/O must occur. On the other hand, secure_delete can prevent sensitive information from lingering in unused parts of the database file after it has allegedly been deleted. See the documentation on the http://www.sqlite.org/pragma.html#pragma_secure_delete for additional information. config BR2_PACKAGE_SQLITE_NO_SYNC bool "Disable fsync" help By default SQLite forces all database transactions to storage immediately using fsync() to protect against data loss in case of power failure. This option turns this behavior off resulting in higher performance especially when using slow flash storage. endif ================================================ FILE: package/sqlite/sqlite.hash ================================================ # Locally computed sha256 bd90c3eb96bee996206b83be7065c9ce19aef38c3f4fb53073ada0d0b69bbce3 sqlite-autoconf-3360000.tar.gz sha256 66e056b6e8687f32af30d5187611b98b12a8f46f07aaf62f43585f276e8f0ac9 tea/license.terms ================================================ FILE: package/sqlite/sqlite.mk ================================================ ################################################################################ # # sqlite # ################################################################################ SQLITE_VERSION = 3.36.0 SQLITE_TAR_VERSION = 3360000 SQLITE_SOURCE = sqlite-autoconf-$(SQLITE_TAR_VERSION).tar.gz SQLITE_SITE = https://www.sqlite.org/2021 SQLITE_LICENSE = Public domain SQLITE_LICENSE_FILES = tea/license.terms SQLITE_CPE_ID_VENDOR = sqlite SQLITE_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_SQLITE_STAT4),y) SQLITE_CFLAGS += -DSQLITE_ENABLE_STAT4 endif ifeq ($(BR2_PACKAGE_SQLITE_ENABLE_COLUMN_METADATA),y) SQLITE_CFLAGS += -DSQLITE_ENABLE_COLUMN_METADATA endif ifeq ($(BR2_PACKAGE_SQLITE_ENABLE_FTS3),y) SQLITE_CFLAGS += -DSQLITE_ENABLE_FTS3 endif ifeq ($(BR2_PACKAGE_SQLITE_ENABLE_JSON1),y) SQLITE_CFLAGS += -DSQLITE_ENABLE_JSON1 endif ifeq ($(BR2_PACKAGE_SQLITE_ENABLE_UNLOCK_NOTIFY),y) SQLITE_CFLAGS += -DSQLITE_ENABLE_UNLOCK_NOTIFY endif ifeq ($(BR2_PACKAGE_SQLITE_SECURE_DELETE),y) SQLITE_CFLAGS += -DSQLITE_SECURE_DELETE endif ifeq ($(BR2_PACKAGE_SQLITE_NO_SYNC),y) SQLITE_CFLAGS += -DSQLITE_NO_SYNC endif # Building with Microblaze Gcc 4.9 makes compiling to hang. # Work around using -O0 ifeq ($(BR2_microblaze):$(BR2_TOOLCHAIN_GCC_AT_LEAST_5),y:) SQLITE_CFLAGS += $(TARGET_CFLAGS) -O0 else # fallback to standard -O3 when -Ofast is present to avoid -ffast-math SQLITE_CFLAGS += $(subst -Ofast,-O3,$(TARGET_CFLAGS)) endif SQLITE_CONF_ENV = CFLAGS="$(SQLITE_CFLAGS)" ifeq ($(BR2_STATIC_LIBS),y) SQLITE_CONF_OPTS += --enable-dynamic-extensions=no else SQLITE_CONF_OPTS += --disable-static-shell endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) SQLITE_CONF_OPTS += --enable-threadsafe else SQLITE_CONF_OPTS += --disable-threadsafe SQLITE_CFLAGS += -DSQLITE_THREADSAFE=0 endif ifeq ($(BR2_PACKAGE_NCURSES)$(BR2_PACKAGE_READLINE),yy) SQLITE_DEPENDENCIES += ncurses 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-editline --disable-readline endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/squashfs/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch ================================================ From e1cdcfd94172a0b1ba4c9df70f4d69a41c687404 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 26 Jan 2020 18:35:13 +0000 Subject: [PATCH] squashfs-tools: fix build failure against gcc-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On gcc-10 (and gcc-9 -fno-common) build fails as: ``` cc ... -o mksquashfs ld: read_fs.o:(.bss+0x0): multiple definition of `fwriter_buffer'; mksquashfs.o:(.bss+0x400c90): first defined here ld: read_fs.o:(.bss+0x8): multiple definition of `bwriter_buffer'; mksquashfs.o:(.bss+0x400c98): first defined here ``` gcc-10 will change the default from -fcommon to fno-common: https://gcc.gnu.org/PR85678. The error also happens if CFLAGS=-fno-common passed explicitly. Reported-by: Toralf Förster Bug: https://bugs.gentoo.org/706456 Signed-off-by: Sergei Trofimovich [Upstream: https://github.com/plougher/squashfs-tools/commit/fe2f5da4b0f8994169c53e84b7cb8a0feefc97b5.patch] Signed-off-by: Peter Seiderer --- squashfs-tools/mksquashfs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/squashfs-tools/mksquashfs.h b/squashfs-tools/mksquashfs.h index 1beefef..b650306 100644 --- a/squashfs-tools/mksquashfs.h +++ b/squashfs-tools/mksquashfs.h @@ -143,7 +143,7 @@ struct append_file { #endif extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache; -struct cache *bwriter_buffer, *fwriter_buffer; +extern struct cache *bwriter_buffer, *fwriter_buffer; extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer, *to_frag, *locked_fragment, *to_process_frag; extern struct append_file **file_mapping; -- 2.26.2 ================================================ FILE: package/squashfs/Config.in ================================================ config BR2_PACKAGE_SQUASHFS bool "squashfs" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() # ensure at least on compression backend (defaults to gzip) select BR2_PACKAGE_SQUASHFS_GZIP if !( \ BR2_PACKAGE_SQUASHFS_LZ4 || \ BR2_PACKAGE_SQUASHFS_LZMA || \ BR2_PACKAGE_SQUASHFS_LZO || \ BR2_PACKAGE_SQUASHFS_XZ || \ BR2_PACKAGE_SQUASHFS_ZSTD) help Tools to generate SquashFS filesystems. https://github.com/plougher/squashfs-tools if BR2_PACKAGE_SQUASHFS config BR2_PACKAGE_SQUASHFS_GZIP bool "gzip support" default y select BR2_PACKAGE_ZLIB help Support GZIP compression algorithm config BR2_PACKAGE_SQUASHFS_LZ4 bool "lz4 support" select BR2_PACKAGE_LZ4 help Support LZ4 compression algorithm config BR2_PACKAGE_SQUASHFS_LZMA bool "lzma support" select BR2_PACKAGE_XZ help Support LZMA compression algorithm config BR2_PACKAGE_SQUASHFS_LZO bool "lzo support" select BR2_PACKAGE_LZO help Support LZO compression algorithm config BR2_PACKAGE_SQUASHFS_XZ bool "xz support" select BR2_PACKAGE_XZ help Support XZ compression algorithm config BR2_PACKAGE_SQUASHFS_ZSTD bool "zstd support" select BR2_PACKAGE_ZSTD help Support ZSTD compression algorithm endif comment "squashfs needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU ================================================ FILE: package/squashfs/Config.in.host ================================================ config BR2_PACKAGE_HOST_SQUASHFS bool "host squashfs" help Tools to generate SquashFS filesystems. https://github.com/plougher/squashfs-tools ================================================ FILE: package/squashfs/squashfs.hash ================================================ # Locally computed sha256 a7fa4845e9908523c38d4acf92f8a41fdfcd19def41bd5090d7ad767a6dc75c3 squashfs-4.4.tar.gz # License files sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/squashfs/squashfs.mk ================================================ ################################################################################ # # squashfs # ################################################################################ SQUASHFS_VERSION = 4.4 SQUASHFS_SITE = $(call github,plougher,squashfs-tools,$(SQUASHFS_VERSION)) SQUASHFS_LICENSE = GPL-2.0+ SQUASHFS_LICENSE_FILES = COPYING SQUASHFS_CPE_ID_VENDOR = squashfs_project SQUASHFS_MAKE_ARGS = XATTR_SUPPORT=1 ifeq ($(BR2_PACKAGE_SQUASHFS_LZ4),y) SQUASHFS_DEPENDENCIES += lz4 SQUASHFS_MAKE_ARGS += LZ4_SUPPORT=1 COMP_DEFAULT=lz4 else SQUASHFS_MAKE_ARGS += LZ4_SUPPORT=0 endif ifeq ($(BR2_PACKAGE_SQUASHFS_LZMA),y) SQUASHFS_DEPENDENCIES += xz SQUASHFS_MAKE_ARGS += LZMA_XZ_SUPPORT=1 COMP_DEFAULT=lzma else SQUASHFS_MAKE_ARGS += LZMA_XZ_SUPPORT=0 endif ifeq ($(BR2_PACKAGE_SQUASHFS_XZ),y) SQUASHFS_DEPENDENCIES += xz SQUASHFS_MAKE_ARGS += XZ_SUPPORT=1 COMP_DEFAULT=xz else SQUASHFS_MAKE_ARGS += XZ_SUPPORT=0 endif ifeq ($(BR2_PACKAGE_SQUASHFS_LZO),y) SQUASHFS_DEPENDENCIES += lzo SQUASHFS_MAKE_ARGS += LZO_SUPPORT=1 COMP_DEFAULT=lzo else SQUASHFS_MAKE_ARGS += LZO_SUPPORT=0 endif ifeq ($(BR2_PACKAGE_SQUASHFS_ZSTD),y) SQUASHFS_DEPENDENCIES += zstd SQUASHFS_MAKE_ARGS += ZSTD_SUPPORT=1 COMP_DEFAULT=zstd else SQUASHFS_MAKE_ARGS += ZSTD_SUPPORT=0 endif ifeq ($(BR2_PACKAGE_SQUASHFS_GZIP),y) SQUASHFS_DEPENDENCIES += zlib SQUASHFS_MAKE_ARGS += GZIP_SUPPORT=1 COMP_DEFAULT=gzip else SQUASHFS_MAKE_ARGS += GZIP_SUPPORT=0 endif HOST_SQUASHFS_DEPENDENCIES = host-zlib host-lz4 host-lzo host-xz host-zstd HOST_SQUASHFS_MAKE_ARGS = \ XATTR_SUPPORT=1 \ XZ_SUPPORT=1 \ GZIP_SUPPORT=1 \ LZ4_SUPPORT=1 \ LZO_SUPPORT=1 \ LZMA_XZ_SUPPORT=1 \ ZSTD_SUPPORT=1 define SQUASHFS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) \ CC="$(TARGET_CC)" \ EXTRA_CFLAGS="$(TARGET_CFLAGS) -fgnu89-inline" \ EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \ $(SQUASHFS_MAKE_ARGS) \ -C $(@D)/squashfs-tools/ endef define SQUASHFS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(SQUASHFS_MAKE_ARGS) \ -C $(@D)/squashfs-tools/ INSTALL_DIR=$(TARGET_DIR)/usr/bin install endef define HOST_SQUASHFS_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) \ CC="$(HOSTCC)" \ EXTRA_CFLAGS="$(HOST_CFLAGS)" \ EXTRA_LDFLAGS="$(HOST_LDFLAGS)" \ $(HOST_SQUASHFS_MAKE_ARGS) \ -C $(@D)/squashfs-tools/ endef define HOST_SQUASHFS_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) $(HOST_SQUASHFS_MAKE_ARGS) \ -C $(@D)/squashfs-tools/ INSTALL_DIR=$(HOST_DIR)/bin install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/squeezelite/Config.in ================================================ config BR2_PACKAGE_SQUEEZELITE bool "squeezelite" depends on BR2_USE_WCHAR # flac depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_USE_MMU # mpg123 depends on !BR2_STATIC_LIBS # dlopen select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_MIXER select BR2_PACKAGE_FLAC select BR2_PACKAGE_LIBMAD select BR2_PACKAGE_LIBVORBIS select BR2_PACKAGE_MPG123 help Logitech Media Server client https://github.com/ralph-irving/squeezelite/ 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 config BR2_PACKAGE_SQUEEZELITE_DSD bool "Enable DSD decoding" config BR2_PACKAGE_SQUEEZELITE_LIRC bool "Enable lirc support" depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_LIRC_TOOLS comment "lirc support needs a toolchain with C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_SQUEEZELITE_RESAMPLE bool "Enable resampling support" select BR2_PACKAGE_LIBSOXR config BR2_PACKAGE_SQUEEZELITE_VISEXPORT bool "Enable visualiser support" endif comment "squeezelite needs a toolchain w/ wchar, NPTL, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \ || BR2_STATIC_LIBS ================================================ FILE: package/squeezelite/squeezelite.hash ================================================ # Locally calculated sha256 7f0342f4943d3c3498d930060f5a1e8d63ccb7282b9c21f964926e310449d592 squeezelite-71c012ad9ba102feb95823b7b9dc17e5305689c7.tar.gz sha256 dc01c3da33fea11ed918f9e437b88baa59c70401aab0dad747e33dd9e8035706 LICENSE.txt ================================================ FILE: package/squeezelite/squeezelite.mk ================================================ ################################################################################ # # squeezelite # ################################################################################ SQUEEZELITE_VERSION = 71c012ad9ba102feb95823b7b9dc17e5305689c7 SQUEEZELITE_SITE = $(call github,ralph-irving,squeezelite,$(SQUEEZELITE_VERSION)) SQUEEZELITE_LICENSE = GPL-3.0 SQUEEZELITE_LICENSE_FILES = LICENSE.txt SQUEEZELITE_DEPENDENCIES = alsa-lib flac libmad libvorbis mpg123 SQUEEZELITE_MAKE_OPTS = -DLINKALL ifeq ($(BR2_PACKAGE_FAAD2),y) SQUEEZELITE_DEPENDENCIES += faad2 else SQUEEZELITE_MAKE_OPTS += -DNO_FAAD endif ifeq ($(BR2_PACKAGE_SQUEEZELITE_FFMPEG),y) SQUEEZELITE_DEPENDENCIES += ffmpeg SQUEEZELITE_MAKE_OPTS += -DFFMPEG endif ifeq ($(BR2_PACKAGE_SQUEEZELITE_DSD),y) SQUEEZELITE_MAKE_OPTS += -DDSD endif ifeq ($(BR2_PACKAGE_SQUEEZELITE_LIRC),y) SQUEEZELITE_DEPENDENCIES += lirc-tools SQUEEZELITE_MAKE_OPTS += -DIR endif ifeq ($(BR2_PACKAGE_SQUEEZELITE_RESAMPLE),y) SQUEEZELITE_DEPENDENCIES += libsoxr SQUEEZELITE_MAKE_OPTS += -DRESAMPLE endif ifeq ($(BR2_PACKAGE_SQUEEZELITE_VISEXPORT),y) SQUEEZELITE_MAKE_OPTS += -DVISEXPORT endif define SQUEEZELITE_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ OPTS="$(SQUEEZELITE_MAKE_OPTS)" -C $(@D) all endef define SQUEEZELITE_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/squeezelite \ $(TARGET_DIR)/usr/bin/squeezelite endef $(eval $(generic-package)) ================================================ FILE: package/squid/Config.in ================================================ comment "squid needs a toolchain w/ C++, gcc >= 4.8 not affected by bug 64735" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 || \ !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 config BR2_PACKAGE_SQUID bool "squid" depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::current_exception depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 # needs fork() depends on BR2_USE_MMU select BR2_PACKAGE_LIBCAP select BR2_PACKAGE_LIBTOOL select BR2_PACKAGE_LIBXML2 help Caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. http://www.squid-cache.org/ ================================================ FILE: package/squid/S97squid ================================================ #!/bin/sh [ -f /etc/squid.conf ] || exit 0 case "$1" in start) printf "Starting squid: " if [ ! -d /var/log/squid ]; then mkdir -p /var/log/squid chown squid:squid /var/log/squid fi start-stop-daemon -S -x /usr/sbin/squid [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping squid: " /usr/sbin/squid -k shutdown [ $? = 0 ] && echo "OK" || echo "FAIL" ;; reload) printf "Reloading squid configuration: " /usr/sbin/squid -k reconfigure [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart) printf "Restarting squid: " /usr/sbin/squid -k restart [ $? = 0 ] && echo "OK" || echo "FAIL" ;; *) echo "Usage: $0 {start|stop|reload|restart}" exit 1 esac exit 0 ================================================ FILE: package/squid/squid.hash ================================================ # From http://www.squid-cache.org/Versions/v4/squid-4.17.tar.xz.asc md5 47b94b2d27516f1764c9d5dc1b9645e5 squid-4.17.tar.xz sha1 f6bd15fabbd67b53a831fe9f67de3279868036c1 squid-4.17.tar.xz # Locally calculated sha256 cb928ac08c7c86b151b1c8f827abe1a84d83181a2a86e0d512286163e1e31418 squid-4.17.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/squid/squid.mk ================================================ ################################################################################ # # squid # ################################################################################ SQUID_VERSION = 4.17 SQUID_SOURCE = squid-$(SQUID_VERSION).tar.xz SQUID_SITE = http://www.squid-cache.org/Versions/v4 SQUID_LICENSE = GPL-2.0+ SQUID_LICENSE_FILES = COPYING SQUID_CPE_ID_VENDOR = squid-cache SQUID_SELINUX_MODULES = apache squid SQUID_DEPENDENCIES = libcap host-libcap libtool libxml2 host-pkgconf \ $(if $(BR2_PACKAGE_LIBNETFILTER_CONNTRACK),libnetfilter_conntrack) SQUID_CONF_ENV = \ ac_cv_epoll_works=yes \ ac_cv_func_setresuid=yes \ ac_cv_func_va_copy=yes \ ac_cv_func___va_copy=yes \ ac_cv_func_strnstr=no \ ac_cv_have_squid=yes \ BUILDCXX="$(HOSTCXX)" \ BUILDCXXFLAGS="$(HOST_CXXFLAGS)" SQUID_CONF_OPTS = \ --enable-async-io=8 \ --enable-linux-netfilter \ --enable-removal-policies="lru,heap" \ --with-filedescriptors=1024 \ --disable-ident-lookups \ --enable-auth-basic="fake getpwnam" \ --enable-auth-digest="file" \ --enable-auth-negotiate="wrapper" \ --enable-auth-ntlm="fake" \ --disable-strict-error-checking \ --enable-external-acl-helpers="file_userip" \ --disable-ltdl-install \ --without-included-ltdl \ --with-logdir=/var/log/squid/ \ --with-pidfile=/var/run/squid.pid \ --with-swapdir=/var/cache/squid/ \ --with-default-user=squid ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) SQUID_CONF_ENV += LIBS=-latomic endif ifeq ($(BR2_PACKAGE_LIBKRB5),y) SQUID_CONF_OPTS += --with-mit-krb5 SQUID_DEPENDENCIES += libkrb5 else SQUID_CONF_OPTS += --without-mit-krb5 endif ifeq ($(BR2_PACKAGE_OPENSSL),y) SQUID_CONF_OPTS += --with-openssl SQUID_DEPENDENCIES += openssl else SQUID_CONF_OPTS += --without-openssl endif ifeq ($(BR2_PACKAGE_GNUTLS),y) SQUID_CONF_OPTS += --with-gnutls SQUID_DEPENDENCIES += gnutls else SQUID_CONF_OPTS += --without-gnutls endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) SQUID_CONF_OPTS += --with-systemd SQUID_DEPENDENCIES += systemd else SQUID_CONF_OPTS += --without-systemd endif define SQUID_CLEANUP_TARGET rm -f $(addprefix $(TARGET_DIR)/usr/bin/, \ RunCache RunAccel) rm -f $(addprefix $(TARGET_DIR)/etc/, \ cachemgr.conf mime.conf.default squid.conf.default) endef SQUID_POST_INSTALL_TARGET_HOOKS += SQUID_CLEANUP_TARGET define SQUID_USERS squid -1 squid -1 * - - - Squid proxy cache endef define SQUID_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/squid/S97squid \ $(TARGET_DIR)/etc/init.d/S97squid endef define SQUID_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 $(@D)/tools/systemd/squid.service \ $(TARGET_DIR)/usr/lib/systemd/system/squid.service endef $(eval $(autotools-package)) ================================================ FILE: package/sredird/0001-termio.patch ================================================ Fix musl build Patch was inspired by http://svnweb.freebsd.org/ports/head/comms/sredird/files/patch-sredird.c?revision=363168&view=markup http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/sysutils/sredird/patches/patch-aa https://github.com/bitrig/bitrig-ports/blob/master/comms/sredird/patches/patch-sredird_c Signed-off-by: Bernd Kuhls diff -uNr sredird-2.2.2.org/sredird.c sredird-2.2.2/sredird.c --- sredird-2.2.2.org/sredird.c 2005-08-12 16:10:46.000000000 +0200 +++ sredird-2.2.2/sredird.c 2016-01-31 18:53:08.000000000 +0100 @@ -110,7 +110,6 @@ #include #include #include -#include #include #include #include ================================================ FILE: package/sredird/Config.in ================================================ config BR2_PACKAGE_SREDIRD bool "sredird" help Sredird is a serial port redirector that is compliant with the RFC 2217 "Telnet Com Port Control Option" protocol. This protocol lets you share a serial port through the network. http://freecode.com/projects/sredird ================================================ FILE: package/sredird/sredird.hash ================================================ # Locally computed sha256 640c47dcd84b3b90640165a38eb336a675fdab06c14c09cae2f4a604cae560d3 sredird-2.2.2.tar.gz sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/sredird/sredird.mk ================================================ ################################################################################ # # sredird # ################################################################################ SREDIRD_VERSION = 2.2.2 SREDIRD_SITE = http://www.ibiblio.org/pub/Linux/system/serial SREDIRD_LICENSE = GPL-2.0+ SREDIRD_LICENSE_FILES = COPYING define SREDIRD_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define SREDIRD_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/sredird $(TARGET_DIR)/usr/sbin/sredird endef $(eval $(generic-package)) ================================================ FILE: package/ssdp-responder/Config.in ================================================ config BR2_PACKAGE_SSDP_RESPONDER bool "ssdp-responder" depends on BR2_USE_MMU help Simple Service Discovery Protocol daemon (SSDP) for networked Linux and UNIX devices. Useful in any setup, big or small, but targeted more at embedded systems that need to announce themselves to Windows systems. ssdpd is a stand-alone UNIX, no external dependencies but the standard C library. It has a built-in web server for serving the UPnP XML description which Windows use to present the icon, by default an InternetGatewayDevice is announced. Also included is ssdp-scan, a tool similar to mdns-scan, which continuously scans for SSDP capable hosts on the network. Take care only to use for debugging since it scans the network quite aggressively. https://github.com/troglobit/ssdp-responder/ ================================================ FILE: package/ssdp-responder/S50ssdpd ================================================ #!/bin/sh NAME=ssdpd PIDFILE=/var/run/$NAME.pid DAEMON=/usr/sbin/$NAME CFGFILE=/etc/default/$NAME DAEMON_ARGS="" # Read configuration variable file if it is present [ -f $CFGFILE ] && . $CFGFILE start() { printf 'Starting %s: ' "$NAME" start-stop-daemon -S -q -p $PIDFILE -x $DAEMON -- $DAEMON_ARGS [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf 'Stopping %s: ' "$NAME" start-stop-daemon -K -q -p $PIDFILE -x $DAEMON [ $? = 0 ] && echo "OK" || echo "FAIL" } restart() { stop start } case "$1" in start|stop|restart) "$1" ;; reload) restart ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac exit $? ================================================ FILE: package/ssdp-responder/ssdp-responder.hash ================================================ # Locally calculated sha256 7ae49229e7c7a55fed9e36598b12e2173eecef0fffe0a386b6a10fad30f3c79f ssdp-responder-1.8.tar.gz sha256 e17dc0bc91bf499d8cca5e016c22c6d2a4770e3cc1a43756a7973375a83ddb90 LICENSE ================================================ FILE: package/ssdp-responder/ssdp-responder.mk ================================================ ################################################################################ # # ssdp-responder # ################################################################################ SSDP_RESPONDER_VERSION = 1.8 SSDP_RESPONDER_SITE = https://github.com/troglobit/ssdp-responder/releases/download/v$(SSDP_RESPONDER_VERSION) SSDP_RESPONDER_LICENSE = ISC SSDP_RESPONDER_LICENSE_FILES = LICENSE SSDP_RESPONDER_CPE_ID_VENDOR = \ simple_service_discovery_protocol_responder_project SSDP_RESPONDER_CPE_ID_PRODUCT = simple_service_discovery_protocol_responder SSDP_RESPONDER_DEPENDENCIES = host-pkgconf ifeq ($(BR2_PACKAGE_SYSTEMD),y) SSDP_RESPONDER_DEPENDENCIES += systemd SSDP_RESPONDER_CONF_OPTS += --with-systemd else SSDP_RESPONDER_CONF_OPTS += --without-systemd endif define SSDP_RESPONDER_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/ssdp-responder/S50ssdpd \ $(TARGET_DIR)/etc/init.d/S50ssdpd endef define SSDP-RESPONDER_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(@D)/ssdp-responder.service \ $(TARGET_DIR)/usr/lib/systemd/system/ssdp-responder.service endef $(eval $(autotools-package)) ================================================ FILE: package/sshfs/Config.in ================================================ config BR2_PACKAGE_SSHFS bool "sshfs (FUSE)" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse3, glib2 depends on BR2_USE_MMU # libfuse3, glib2 depends on !BR2_STATIC_LIBS # libfuse3 select BR2_PACKAGE_LIBFUSE3 select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_OPENSSH help FUSE filesystem client based on the SSH File Transfer Protocol. https://github.com/libfuse/sshfs comment "sshfs 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 ================================================ FILE: package/sshfs/sshfs.hash ================================================ # Locally calculated after checking pgp signature sha256 fe5d3436d61b46974889e0c4515899c21a9d67851e3793c209989f72353d7750 sshfs-3.7.1.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/sshfs/sshfs.mk ================================================ ################################################################################ # # sshfs # ################################################################################ SSHFS_VERSION = 3.7.1 SSHFS_SOURCE = sshfs-$(SSHFS_VERSION).tar.xz SSHFS_SITE = https://github.com/libfuse/sshfs/releases/download/sshfs-$(SSHFS_VERSION) SSHFS_LICENSE = GPL-2.0 SSHFS_LICENSE_FILES = COPYING SSHFS_DEPENDENCIES = \ libglib2 libfuse3 openssh \ $(TARGET_NLS_DEPENDENCIES) \ $(if $(BR2_ENABLE_LOCALE),,libiconv) $(eval $(meson-package)) ================================================ FILE: package/sshguard/Config.in ================================================ config BR2_PACKAGE_SSHGUARD bool "sshguard" depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_IPTABLES # runtime help sshguard protects hosts from brute-force attacks against SSH and other services. It aggregates system logs and blocks repeat offenders using one of several firewall backends, including iptables, ipfw, and pf. https://www.sshguard.net comment "sshguard needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/sshguard/S49sshguard ================================================ #!/bin/sh DAEMON="sshguard" PIDFILE="/var/run/$DAEMON.pid" start() { printf 'Starting %s: ' "$DAEMON" iptables -L sshguard > /dev/null 2>&1 || \ (iptables -N sshguard && iptables -A INPUT -j sshguard) start-stop-daemon -S -q -b -p /run/sshguard.pid \ -x /usr/sbin/sshguard -- -i /run/sshguard.pid status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/sshguard/sshguard.hash ================================================ # sha256 from https://sourceforge.net/projects/sshguard/files/sshguard/2.4.2/sshguard-2.4.2.sha256 sha256 2770b776e5ea70a9bedfec4fd84d57400afa927f0f7522870d2dcbbe1ace37e8 sshguard-2.4.2.tar.gz # Locally calculated sha256 c3ae64f12153a1bc55bc234d09f40a08ab0e0149fffc972c0b7f02d5a12c1a5c COPYING ================================================ FILE: package/sshguard/sshguard.mk ================================================ ################################################################################ # # sshguard # ################################################################################ SSHGUARD_VERSION = 2.4.2 SSHGUARD_SITE = https://sourceforge.net/projects/sshguard/files/sshguard/$(SSHGUARD_VERSION) SSHGUARD_LICENSE = ISC, Public Domain (fnv hash), BSD-3-Clause (SimCList) SSHGUARD_LICENSE_FILES = COPYING define SSHGUARD_INSTALL_CONFIG $(INSTALL) -D -m 0644 $(@D)/examples/sshguard.conf.sample \ $(TARGET_DIR)/etc/sshguard.conf $(SED) '/^#BACKEND/c\BACKEND="/usr/libexec/sshg-fw-iptables"' \ -e '/^#FILES/c\FILES="/var/log/messages"' $(TARGET_DIR)/etc/sshguard.conf endef SSHGUARD_POST_INSTALL_TARGET_HOOKS += SSHGUARD_INSTALL_CONFIG define SSHGUARD_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/sshguard/S49sshguard \ $(TARGET_DIR)/etc/init.d/S49sshguard endef define SSHGUARD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 $(@D)/examples/sshguard.service \ $(TARGET_DIR)/usr/lib/systemd/system/sshguard.service endef $(eval $(autotools-package)) ================================================ FILE: package/sshpass/Config.in ================================================ config BR2_PACKAGE_SSHPASS bool "sshpass" depends on BR2_USE_MMU # fork() help Sshpass is a tool for non-interactivly performing password authentication with SSH's so called "interactive keyboard password authentication". http://sshpass.sourceforge.net ================================================ FILE: package/sshpass/sshpass.hash ================================================ # Locally computed: sha256 c6324fcee608b99a58f9870157dfa754837f8c48be3df0f5e2f3accf145dee60 sshpass-1.06.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/sshpass/sshpass.mk ================================================ ################################################################################ # # sshpass # ################################################################################ SSHPASS_VERSION = 1.06 SSHPASS_SITE = http://downloads.sourceforge.net/project/sshpass/sshpass/$(SSHPASS_VERSION) SSHPASS_LICENSE = GPL-2.0+ SSHPASS_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/sslh/0001-Makefile-fix-static-linking-with-pcre.patch ================================================ From 0d9e004d324cc030c173de04c40db51a0f22bb5c Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 15 Oct 2020 07:58:05 +0200 Subject: [PATCH] Makefile: fix static linking with pcre Static build with pcre is broken since version 1.19b and https://github.com/yrutschle/sslh/commit/cb90cc97ae64a445242e517847c6e44b7003eda4 because -lpcre has been replaced by -lpcreposix which will result in the following static build failure: /srv/storage/autobuild/run/instance-1/output-1/host/bin/mipsel-linux-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -static -static -o echosrv echosrv.o probe.o common.o tls.o -lpcreposix -lconfig -lcap /srv/storage/autobuild/run/instance-1/output-1/host/opt/ext-toolchain/bin/../lib/gcc/mipsel-buildroot-linux-uclibc/8.3.0/../../../../mipsel-buildroot-linux-uclibc/bin/ld: /srv/storage/autobuild/run/instance-1/output-1/host/mipsel-buildroot-linux-uclibc/sysroot/usr/lib/libpcreposix.a(libpcreposix_la-pcreposix.o): in function `regfree': pcreposix.c:(.text+0x120): undefined reference to `pcre_free' So append -lpcre after -lpcreposix Fixes: - http://autobuild.buildroot.org/results/a601824fc0c205a6a940e0f9f079ce2c39840605 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/yrutschle/sslh/pull/280] --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 986cf1c..ecadc22 100644 --- a/Makefile +++ b/Makefile @@ -43,7 +43,7 @@ endif ifneq ($(strip $(USELIBPCRE)),) CPPFLAGS+=-DLIBPCRE - LIBS:=$(LIBS) -lpcreposix + LIBS:=$(LIBS) -lpcreposix -lpcre endif ifneq ($(strip $(USELIBCONFIG)),) -- 2.28.0 ================================================ FILE: package/sslh/Config.in ================================================ config BR2_PACKAGE_SSLH bool "sslh" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBCONFIG if BR2_PACKAGE_SYSTEMD help Applicative protocol multiplexer http://www.rutschle.net/tech/sslh.shtml ================================================ FILE: package/sslh/S35sslh ================================================ #!/bin/sh # # Starts the SSLH server # # default setup : listen on port 8090 forward ssh traffic to # localhost:22 and http traffic to localhost:80 SSLH_ARGS="--listen 0.0.0.0:8090 --ssh 127.0.0.1:22 --http 127.0.0.1:80" # Allow a few customizations from a config file (overrides # default setup) test -r /etc/default/sslh && . /etc/default/sslh start() { SSLH_ARGS="$SSLH_ARGS --user root" echo -n "Starting sslh: " start-stop-daemon -S -q -p /var/run/sslh.pid \ --exec /usr/sbin/sslh -- $SSLH_ARGS [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping sslh: " start-stop-daemon -K -q -p /var/run/sslh.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 $? ================================================ FILE: package/sslh/sslh.hash ================================================ # Locally calculated sha256 3bfe783726f82c1f5a4be630ddc494ebb08dbb69980662cd7ffdeb7bc9e1e706 sslh-v1.21c.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/sslh/sslh.mk ================================================ ################################################################################ # # sslh # ################################################################################ SSLH_VERSION = 1.21c SSLH_SOURCE = sslh-v$(SSLH_VERSION).tar.gz SSLH_SITE = http://www.rutschle.net/tech/sslh SSLH_LICENSE = GPL-2.0+ SSLH_LICENSE_FILES = COPYING SSLH_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS) ifeq ($(BR2_PACKAGE_LIBBSD),y) SSLH_DEPENDENCIES += libbsd SSLH_MAKE_OPTS += USELIBBSD=1 else SSLH_MAKE_OPTS += USELIBBSD= endif ifeq ($(BR2_PACKAGE_LIBCAP),y) SSLH_DEPENDENCIES += libcap SSLH_MAKE_OPTS += USELIBCAP=1 else SSLH_MAKE_OPTS += USELIBCAP= endif ifeq ($(BR2_PACKAGE_LIBCONFIG),y) SSLH_DEPENDENCIES += libconfig SSLH_MAKE_OPTS += USELIBCONFIG=1 else SSLH_MAKE_OPTS += USELIBCONFIG= endif ifeq ($(BR2_PACKAGE_PCRE),y) SSLH_DEPENDENCIES += pcre SSLH_MAKE_OPTS += USELIBPCRE=1 else SSLH_MAKE_OPTS += USELIBPCRE= endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) SSLH_DEPENDENCIES += systemd SSLH_MAKE_OPTS += USESYSTEMD=1 else SSLH_MAKE_OPTS += USESYSTEMD= endif define SSLH_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(SSLH_MAKE_OPTS) -C $(@D) endef define SSLH_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(SSLH_MAKE_OPTS) -C $(@D) \ DESTDIR=$(TARGET_DIR) install endef define SSLH_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/sslh/S35sslh $(TARGET_DIR)/etc/init.d/S35sslh endef $(eval $(generic-package)) ================================================ FILE: package/start-stop-daemon/0001-add-uclibc-alias-and-musl.patch ================================================ From 31e4116ec355701e239cddcca720314523512a47 Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Sun, 21 Mar 2021 17:59:15 +0100 Subject: [PATCH] add uclibc alias and musl Make linux-uclibcgnueabi an alias for linux-uclibceabi since it's what we use in buildroot toolchains. Slightly tweak musleabi to match the buildroot-used tuple. Signed-off-by: Gustavo Zacarias [Rebased on 1.20.7.1] Signed-off-by: Peter Seiderer --- data/ostable | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/ostable b/data/ostable index 99c1f88..087dc6e 100644 --- a/data/ostable +++ b/data/ostable @@ -14,10 +14,10 @@ # system part of the output of the GNU config.guess script. # # -eabi-uclibc-linux linux-uclibceabi linux[^-]*-uclibceabi +eabi-uclibc-linux linux-uclibceabi linux[^-]*-uclibc.*eabi base-uclibc-linux linux-uclibc linux[^-]*-uclibc eabihf-musl-linux linux-musleabihf linux[^-]*-musleabihf -base-musl-linux linux-musl linux[^-]*-musl +base-musl-linux linux-musl linux[^-]*-musl[^-]* eabihf-gnu-linux linux-gnueabihf linux[^-]*-gnueabihf eabi-gnu-linux linux-gnueabi linux[^-]*-gnueabi abin32-gnu-linux linux-gnuabin32 linux[^-]*-gnuabin32 @@ -38,6 +38,6 @@ base-bsd-netbsd netbsd netbsd[^-]* base-bsd-openbsd openbsd openbsd[^-]* base-sysv-aix aix aix[^-]* base-sysv-solaris solaris solaris[^-]* -eabi-uclibc-uclinux uclinux-uclibceabi uclinux[^-]*-uclibceabi +eabi-uclibc-uclinux uclinux-uclibceabi uclinux[^-]*-uclibc.*eabi base-uclibc-uclinux uclinux-uclibc uclinux[^-]*(-uclibc.*)? base-tos-mint mint mint[^-]* -- 2.30.2 ================================================ FILE: package/start-stop-daemon/0002-just-warn-on-missing-arch.patch ================================================ From 7b20d3f012013edd4e3bb48541bd2bda10dac186 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Sun, 21 Mar 2021 18:03:28 +0100 Subject: [PATCH] just warn on missing arch Just warn on missing arch Some architectures are not listed in dpkg list (e.g. mips64el, xtensa, sh4a). Don't break the build for that. Signed-off-by: Baruch Siach [Rebased on 1.20.7.1] Signed-off-by: Peter Seiderer --- m4/dpkg-arch.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/m4/dpkg-arch.m4 b/m4/dpkg-arch.m4 index 71044c9..1394531 100644 --- a/m4/dpkg-arch.m4 +++ b/m4/dpkg-arch.m4 @@ -58,7 +58,7 @@ AC_DEFUN([DPKG_ARCHITECTURE], [ AC_MSG_CHECKING([dpkg architecture name]) _DPKG_ARCHITECTURE([DEB_HOST_ARCH], [dpkg_arch]) AS_IF([test "x$dpkg_arch" = "x"], [ - AC_MSG_ERROR([cannot determine host dpkg architecture]) + AC_MSG_WARN([cannot determine host dpkg architecture]) ], [ AC_MSG_RESULT([$dpkg_arch]) ]) -- 2.30.2 ================================================ FILE: package/start-stop-daemon/Config.in ================================================ 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. https://tracker.debian.org/pkg/dpkg ================================================ FILE: package/start-stop-daemon/start-stop-daemon.hash ================================================ # From https://snapshot.debian.org/archive/debian/20210109T083441Z/pool/main/d/dpkg/dpkg_1.20.7.1.dsc sha256 0aad2de687f797ef8ebdabc7bafd16dc1497f1ce23bd9146f9aa73f396a5636f dpkg_1.20.7.1.tar.xz # Locally computed sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/start-stop-daemon/start-stop-daemon.mk ================================================ ################################################################################ # # start-stop-daemon # ################################################################################ # 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.20.7.1 START_STOP_DAEMON_SOURCE = dpkg_$(START_STOP_DAEMON_VERSION).tar.xz START_STOP_DAEMON_SITE = https://snapshot.debian.org/archive/debian/20210109T083441Z/pool/main/d/dpkg START_STOP_DAEMON_CONF_OPTS = \ --disable-dselect \ --disable-update-alternatives \ --disable-install-info \ --exec-prefix=/ START_STOP_DAEMON_CONF_ENV = \ dpkg_cv_va_copy=yes \ dpkg_cv_c99_snprintf=yes \ DPKG_DEVEL_MODE=1 START_STOP_DAEMON_DEPENDENCIES = host-pkgconf # Patching m4/dpkg-arch.m4 START_STOP_DAEMON_AUTORECONF = YES START_STOP_DAEMON_LICENSE = GPL-2.0+ START_STOP_DAEMON_LICENSE_FILES = COPYING define START_STOP_DAEMON_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/lib/compat $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/utils endef define START_STOP_DAEMON_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/utils/start-stop-daemon \ $(TARGET_DIR)/sbin/start-stop-daemon endef $(eval $(autotools-package)) ================================================ FILE: package/startup-notification/Config.in ================================================ config BR2_PACKAGE_STARTUP_NOTIFICATION bool "startup-notification" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBX11 help Startup-notification is a library used to monitor application startup. http://freedesktop.org/software/startup-notification/releases ================================================ FILE: package/startup-notification/startup-notification.hash ================================================ # Locally calculated sha256 c2fa09f9a49d8b319e79638e49e967c682df8726006e03059b1ffca5ab82099c startup-notification-0.9.tar.gz sha256 29935974beae046f50da806b5f4e54532401dd7bcfbc696a0b645f4cbcce9dbb COPYING ================================================ FILE: package/startup-notification/startup-notification.mk ================================================ ################################################################################ # # startup-notification # ################################################################################ STARTUP_NOTIFICATION_VERSION = 0.9 STARTUP_NOTIFICATION_SITE = http://freedesktop.org/software/startup-notification/releases STARTUP_NOTIFICATION_INSTALL_STAGING = YES STARTUP_NOTIFICATION_DEPENDENCIES = xlib_libX11 STARTUP_NOTIFICATION_CONF_ENV = lf_cv_sane_realloc=yes STARTUP_NOTIFICATION_CONF_OPTS = --with-x \ --x-includes="$(STAGING_DIR)/usr/include/X11" \ --x-libraries="$(STAGING_DIR)/usr/lib" STARTUP_NOTIFICATION_LICENSE = LGPL-2.0 STARTUP_NOTIFICATION_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/statserial/0001-ncurses-link.patch ================================================ Link to libncurses instead of the legacy libcurses. Signed-off-by: Gustavo Zacarias diff -Nura statserial-1.1.orig/Makefile statserial-1.1/Makefile --- statserial-1.1.orig/Makefile 2014-07-04 12:47:41.279440415 -0300 +++ statserial-1.1/Makefile 2014-07-04 12:47:47.948665740 -0300 @@ -10,7 +10,7 @@ LDFLAGS = -s -N statserial: statserial.o - $(LD) $(LDFLAGS) -o statserial statserial.o -lcurses + $(LD) $(LDFLAGS) -o statserial statserial.o -lncurses statserial.o: statserial.c $(CC) $(CFLAGS) -c statserial.c ================================================ FILE: package/statserial/Config.in ================================================ config BR2_PACKAGE_STATSERIAL bool "statserial" select BR2_PACKAGE_NCURSES help Displays a table of the signals on a standard 9-pin or 25-pin serial port, and indicates the status of the handshaking lines. It can be useful for debugging problems with serial ports or modems. https://sites.google.com/site/tranter/software ================================================ FILE: package/statserial/statserial.hash ================================================ # Locally calculated sha256 40cf3bd506852942aa98f468c90ed4ea66dbd343b93efacd40d617b55caf3967 statserial-1.1.tar.gz sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING ================================================ FILE: package/statserial/statserial.mk ================================================ ################################################################################ # # statserial # ################################################################################ STATSERIAL_VERSION = 1.1 STATSERIAL_SITE = http://www.ibiblio.org/pub/Linux/system/serial STATSERIAL_DEPENDENCIES = ncurses STATSERIAL_LICENSE = GPL-2.0+ STATSERIAL_LICENSE_FILES = COPYING define STATSERIAL_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" -C $(@D) endef define STATSERIAL_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/statserial $(TARGET_DIR)/usr/bin/statserial endef $(eval $(generic-package)) ================================================ FILE: package/stella/Config.in ================================================ config BR2_PACKAGE_STELLA bool "stella" depends on !BR2_STATIC_LIBS # sdl2 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_6 # C++14 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr select BR2_PACKAGE_SDL2 select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_ZLIB help Stella is a multi-platform Atari 2600 VCS emulator. https://stella-emu.github.io/ comment "stella needs a toolchain w/ dynamic library, C++, threads, gcc >= 6" depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_6 comment "stella needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/stella/stella.hash ================================================ # Locally computed: sha256 0346900e9ba4b6d532b72d956adc5078502a9bd6bbc1648bb3dd68f5ffd4859b stella-6.4-src.tar.xz sha256 d207ee9e563fdd062582df8cbb6c8303b9879bd107692c0db2a32477e47dfa35 Copyright.txt sha256 58530d09b6fcb91ae27071be0081af90e6c2d7fdf991d34a29e234a2a5e75455 License.txt ================================================ FILE: package/stella/stella.mk ================================================ ################################################################################ # # stella # ################################################################################ STELLA_VERSION = 6.4 STELLA_SOURCE = stella-$(STELLA_VERSION)-src.tar.xz STELLA_SITE = https://github.com/stella-emu/stella/releases/download/$(STELLA_VERSION) STELLA_LICENSE = GPL-2.0+ 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)) ================================================ FILE: package/stellarium/Config.in ================================================ config BR2_PACKAGE_STELLARIUM bool "stellarium" depends on BR2_PACKAGE_QT5 depends on BR2_PACKAGE_QT5_GL_AVAILABLE depends on BR2_PACKAGE_HAS_LIBGL # does not support OpenGL ES select BR2_PACKAGE_QT5BASE_CONCURRENT select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_NETWORK select BR2_PACKAGE_QT5BASE_OPENGL select BR2_PACKAGE_QT5BASE_PRINTSUPPORT select BR2_PACKAGE_QT5BASE_WIDGETS select BR2_PACKAGE_QT5LOCATION select BR2_PACKAGE_QT5MULTIMEDIA select BR2_PACKAGE_ZLIB help Stellarium is a free open source planetarium for your computer. It shows a realistic sky in 3D, just like what you see with the naked eye, binoculars or a telescope. https://stellarium.org comment "stellarium needs Qt5 and an OpenGL provider" depends on !BR2_PACKAGE_QT5 || !BR2_PACKAGE_HAS_LIBGL ================================================ FILE: package/stellarium/stellarium.hash ================================================ # From https://github.com/Stellarium/stellarium/releases sha1 e61b66eae54888cf90f6dab7b49bc4ca6d9d941b stellarium-0.21.2.tar.gz sha256 e588b66a173834f74a6462f5219ce4d38e8f87405b932267f6f1d2d4dbff4a82 stellarium-0.21.2.tar.gz # Locally computed sha256 3aeeb5bb98bf7041ab82cffe15efa28ac58ee2bdf162b71301f5c192be631259 COPYING ================================================ FILE: package/stellarium/stellarium.mk ================================================ ################################################################################ # # stellarium # ################################################################################ STELLARIUM_VERSION = 0.21.2 STELLARIUM_SITE = https://github.com/Stellarium/stellarium/releases/download/v$(STELLARIUM_VERSION) STELLARIUM_LICENSE = GPL-2.0+ STELLARIUM_LICENSE_FILES = COPYING STELLARIUM_DEPENDENCIES = \ qt5base \ qt5location \ qt5multimedia \ zlib STELLARIUM_CONF_OPTS = \ -DENABLE_MEDIA=ON \ -DENABLE_NLS=OFF \ -DUSE_SYSTEM_ZLIB=ON ifeq ($(BR2_PACKAGE_QT5SCRIPT),y) STELLARIUM_DEPENDENCIES += qt5script STELLARIUM_CONF_OPTS += -DENABLE_SCRIPTING=ON else STELLARIUM_CONF_OPTS += -DENABLE_SCRIPTING=OFF endif ifeq ($(BR2_PACKAGE_QT5SERIALPORT),y) STELLARIUM_DEPENDENCIES += qt5serialport ifeq ($(BR2_PACKAGE_GPSD),y) STELLARIUM_DEPENDENCIES += gpsd endif STELLARIUM_CONF_OPTS += \ -DENABLE_GPS=ON \ -DUSE_PLUGIN_TELESCOPECONTROL=ON else STELLARIUM_CONF_OPTS += \ -DENABLE_GPS=OFF \ -DUSE_PLUGIN_TELESCOPECONTROL=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/stm32flash/Config.in ================================================ config BR2_PACKAGE_STM32FLASH bool "stm32flash" help Open source cross platform flash program for the STM32 ARM microcontrollers using the built-in ST serial bootloader over UART or I2C. http://sourceforge.net/projects/stm32flash/ ================================================ FILE: package/stm32flash/stm32flash.hash ================================================ # Locally computed: sha256 dec1a81a3ba85a61dfa39ec12e391ea16a8d431470f41d34413f7ab183da46ef stm32flash-v0.6-br1.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 gpl-2.0.txt ================================================ FILE: package/stm32flash/stm32flash.mk ================================================ ################################################################################ # # stm32flash # ################################################################################ STM32FLASH_VERSION = v0.6 STM32FLASH_SITE = git://git.code.sf.net/p/stm32flash/code STM32FLASH_LICENSE = GPL-2.0+ STM32FLASH_LICENSE_FILES = gpl-2.0.txt define STM32FLASH_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define STM32FLASH_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)" PREFIX="/usr" \ -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/strace/0001-Avoid-relying-on-presence-of-ipx-h.patch ================================================ From 568ee52f885c463e7a283240f5ef6bbf9351bdb3 Mon Sep 17 00:00:00 2001 From: Eugene Syromyatnikov Date: Wed, 3 Nov 2021 00:48:59 +0100 Subject: [PATCH] Avoid relying on presence of ipx.h After Linux has broken UAPI in commit v5.15-rc1~157^2~207, it is well possible that neither kernel nor libc (such as musl, for example) provides an IPX-related header. Avoid relying on its presence in the strace's code and conditionalise the relevant checks in the tests. * configure.ac (AC_CHECK_HEADERS): Add linux/ipx.h. * src/net.c: Remove / includes. * src/sockaddr.c: Likewise. (IPX_NODE_LEN): New macro constant. (struct sockaddr_ipx): New type definition. * src/xlat/sock_ipx_options.in (IPX_TYPE): Provide a fallback value. * tests/net-sockaddr.c [!HAVE_LINUX_IPX_H]: Do not include . [!HAVE_LINUX_IPX_H && HAVE_NETIPX_IPX_H]: Include . [!(HAVE_LINUX_IPX_H || defined HAVE_NETIPX_IPX_H)] (check_ipx): Do not define. (main) [!(HAVE_LINUX_IPX_H || defined HAVE_NETIPX_IPX_H)]: Do not call check_ipx. Closes: https://github.com/strace/strace/issues/201 [Retrieved (and backported) from: https://github.com/strace/strace/commit/568ee52f885c463e7a283240f5ef6bbf9351bdb3] Signed-off-by: Fabrice Fontaine --- configure.ac | 1 + src/net.c | 5 ----- src/sockaddr.c | 16 ++++++++++------ src/xlat/sock_ipx_options.in | 2 +- tests/net-sockaddr.c | 10 +++++++++- 5 files changed, 21 insertions(+), 13 deletions(-) diff --git a/configure.ac b/configure.ac index b5053b7aff..c074a70c01 100644 --- a/configure.ac +++ b/configure.ac @@ -424,6 +424,7 @@ AC_CHECK_HEADERS(m4_normalize([ elf.h gcov.h iconv.h + linux/ipx.h mqueue.h netinet/sctp.h netipx/ipx.h diff --git a/src/net.c b/src/net.c index bc2b1ad048..42696bfe89 100644 --- a/src/net.c +++ b/src/net.c @@ -28,11 +28,6 @@ #include #include #include -#ifdef HAVE_NETIPX_IPX_H -# include -#else -# include -#endif #include #include "netlink.h" diff --git a/src/sockaddr.c b/src/sockaddr.c index bdd5a5bb7a..27fda59f26 100644 --- a/src/sockaddr.c +++ b/src/sockaddr.c @@ -24,12 +24,6 @@ #include #include -#ifdef HAVE_NETIPX_IPX_H -# include -#else -# include -#endif - #include "xlat/addrfams.h" #include "xlat/arp_hardware_types.h" #include "xlat/ethernet_protocols.h" @@ -42,6 +36,16 @@ #define SIZEOF_SA_FAMILY sizeof_field(struct sockaddr, sa_family) +#define IPX_NODE_LEN 6 +struct sockaddr_ipx { + uint16_t sipx_family; + uint16_t sipx_port; + uint32_t sipx_network; + unsigned char sipx_node[IPX_NODE_LEN]; + uint8_t sipx_type; + unsigned char sipx_zero; +}; + static void print_sockaddr_data_un(struct tcb *tcp, const void *const buf, const int addrlen) { diff --git a/src/xlat/sock_ipx_options.in b/src/xlat/sock_ipx_options.in index eba97fd719..b09be117e4 100644 --- a/src/xlat/sock_ipx_options.in +++ b/src/xlat/sock_ipx_options.in @@ -1 +1 @@ -IPX_TYPE +IPX_TYPE 1 diff --git a/tests/net-sockaddr.c b/tests/net-sockaddr.c index f1f9b01cdd..c8049fd68b 100644 --- a/tests/net-sockaddr.c +++ b/tests/net-sockaddr.c @@ -24,7 +24,11 @@ #include #include #include -#include +#if defined HAVE_LINUX_IPX_H +# include +#elif defined HAVE_NETIPX_IPX_H +# include +#endif #ifdef HAVE_BLUETOOTH_BLUETOOTH_H # include # include @@ -269,6 +273,7 @@ check_in6(void) printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in6, len, ret); } +#if defined HAVE_LINUX_IPX_H || defined HAVE_NETIPX_IPX_H static void check_ipx(void) { @@ -295,6 +300,7 @@ check_ipx(void) c_ipx.sipx_node[4], c_ipx.sipx_node[5], c_ipx.sipx_type, len, ret); } +#endif /* HAVE_LINUX_IPX_H || defined HAVE_NETIPX_IPX_H */ /* for a bit more compact AX.25 address definitions */ #define AX25_ADDR(c_, s_) \ @@ -773,7 +779,9 @@ main(void) check_un(); check_in(); check_in6(); +#if defined HAVE_LINUX_IPX_H || defined HAVE_NETIPX_IPX_H check_ipx(); +#endif check_ax25(); check_x25(); check_nl(); ================================================ FILE: package/strace/Config.in ================================================ config BR2_PACKAGE_STRACE bool "strace" # needs at least kernel headers 4.0 on nios2 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 || !BR2_nios2 # needs at least kernel headers 5.0 on xtensa depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 || !BR2_xtensa depends on !BR2_nds32 && !BR2_RISCV_32 help A useful diagnostic, instructional, and debugging tool. Allows you to track what system calls a program makes while it is running. If you want 'strace -k' to work, make sure to enable the 'libunwind' package. https://strace.io comment "strace needs a toolchain w/ headers >= 4.0 on nios2" depends on BR2_nios2 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 comment "strace needs a toolchain w/ headers >= 5.0 on xtensa" depends on BR2_xtensa depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 ================================================ FILE: package/strace/strace.hash ================================================ # Locally calculated after checking signature with RSA key 0xA8041FA839E16E36 # https://strace.io/files/5.14/strace-5.14.tar.xz.asc sha256 901bee6db5e17debad4530dd9ffb4dc9a96c4a656edbe1c3141b7cb307b11e73 strace-5.14.tar.xz sha256 f847d5ef26ad1151ca63bb88536b23a4cac5040c67917f3d5ee7ea1316e2b736 COPYING sha256 7c379436436a562834aa7d2f5dcae1f80a25230fa74201046ca1fba4367d39aa LGPL-2.1-or-later ================================================ FILE: package/strace/strace.mk ================================================ ################################################################################ # # strace # ################################################################################ STRACE_VERSION = 5.14 STRACE_SOURCE = strace-$(STRACE_VERSION).tar.xz STRACE_SITE = https://strace.io/files/$(STRACE_VERSION) STRACE_LICENSE = LGPL-2.1+ STRACE_LICENSE_FILES = COPYING LGPL-2.1-or-later STRACE_CPE_ID_VENDOR = strace_project # We're patching configure.ac STRACE_AUTORECONF = YES STRACE_CONF_OPTS = --enable-mpers=no ifeq ($(BR2_PACKAGE_LIBUNWIND),y) STRACE_DEPENDENCIES += libunwind STRACE_CONF_OPTS += --with-libunwind else STRACE_CONF_OPTS += --without-libunwind endif # Demangling symbols in stack trace needs libunwind and libiberty. ifeq ($(BR2_PACKAGE_BINUTILS)$(BR2_PACKAGE_LIBUNWIND),yy) STRACE_DEPENDENCIES += binutils STRACE_CONF_OPTS += --with-libiberty=check else STRACE_CONF_OPTS += --without-libiberty endif ifeq ($(BR2_PACKAGE_PERL),) define STRACE_REMOVE_STRACE_GRAPH rm -f $(TARGET_DIR)/usr/bin/strace-graph endef STRACE_POST_INSTALL_TARGET_HOOKS += STRACE_REMOVE_STRACE_GRAPH endif $(eval $(autotools-package)) ================================================ FILE: package/streameye/Config.in ================================================ config BR2_PACKAGE_STREAMEYE bool "streameye" ================================================ FILE: package/streameye/streameye.mk ================================================ ################################################################################ # # streameye # ################################################################################ STREAMEYE_VERSION = 502a63bb14f8105a3daa9f0940b237300fe76d6f STREAMEYE_SITE = $(call github,ccrisan,streameye,$(STREAMEYE_VERSION)) STREAMEYE_LICENSE = GPLv3 define STREAMEYE_BUILD_CMDS make CC="$(TARGET_CC)" -C "$(@D)" endef define STREAMEYE_INSTALL_TARGET_CMDS cp $(@D)/streameye $(TARGET_DIR)/usr/bin/ cp $(@D)/extras/raspimjpeg.py $(TARGET_DIR)/usr/bin/ endef $(eval $(generic-package)) ================================================ FILE: package/stress/Config.in ================================================ config BR2_PACKAGE_STRESS bool "stress" depends on BR2_USE_MMU # fork() help A deliberately simple workload generator for POSIX systems. It imposes a configurable amount of CPU, memory, I/O, and disk stress on the system. http://people.seas.harvard.edu/~apw/stress/ ================================================ FILE: package/stress/stress.hash ================================================ # Locally calculated after checking pgp signature sha256 057e4fc2a7706411e1014bf172e4f94b63a12f18412378fca8684ca92408825b stress-1.0.4.tar.gz # Locally computed sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/stress/stress.mk ================================================ ################################################################################ # # stress # ################################################################################ STRESS_VERSION = 1.0.4 STRESS_SITE = http://people.seas.harvard.edu/~apw/stress STRESS_LICENSE = GPL-2.0+ STRESS_LICENSE_FILES = COPYING # Stress is linked statically if the --enable-static is specified. # However, this option is always specified in the global # SHARED_STATIC_LIBS_OPTS to tell packages to build static libraries, # if supported. # # If the BR2_STATIC_LIBS is not defined, we have to specify # --disable-static explicitly to get stress linked dynamically. # # Also, disable documentation by undefining makeinfo STRESS_CONF_OPTS = \ $(if $(BR2_STATIC_LIBS),,--disable-static) \ MAKEINFO=: $(eval $(autotools-package)) ================================================ FILE: package/stress-ng/Config.in ================================================ config BR2_PACKAGE_STRESS_NG bool "stress-ng" depends on BR2_USE_MMU # fork() # perf.c needs PERF_COUNT_HW_REF_CPU_CYCLES depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 # fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2 and ARC depends on !BR2_nios2 depends on !BR2_arc help stress-ng will stress test a computer system in various selectable ways. It was designed to exercise various physical subsystems of a computer as well as the various operating system kernel interfaces. https://github.com/ColinIanKing/stress-ng comment "stress-ng needs a toolchain w/ headers >= 3.3" depends on !BR2_nios2 && !BR2_arc depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 ================================================ FILE: package/stress-ng/stress-ng.hash ================================================ # Locally calculated sha256 1973b142b9b731952dd4ce77c3618a7e3c62494587e23bf37c8683503d048f68 stress-ng-0.13.01.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/stress-ng/stress-ng.mk ================================================ ################################################################################ # # stress-ng # ################################################################################ STRESS_NG_VERSION = 0.13.01 STRESS_NG_SITE = $(call github,ColinIanKing,stress-ng,V$(STRESS_NG_VERSION)) STRESS_NG_LICENSE = GPL-2.0+ STRESS_NG_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_LIBBSD),y) STRESS_NG_DEPENDENCIES += libbsd endif ifeq ($(BR2_PACKAGE_KEYUTILS),y) STRESS_NG_DEPENDENCIES += keyutils endif define STRESS_NG_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef # Don't use make install otherwise stress-ng will be rebuild without # required link libraries if any. Furthermore, using INSTALL allow to # set the file permission correcly on the target. define STRESS_NG_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/stress-ng $(TARGET_DIR)/usr/bin/stress-ng endef $(eval $(generic-package)) ================================================ FILE: package/strongswan/Config.in ================================================ 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 Linux operating system. It is based on the discontinued FreeS/WAN project and the X.509 patch. The focus is on: - simplicity of configuration - strong encryption and authentication methods - powerful IPsec policies supporting large and complex VPN networks strongSwan provide many plugins. Only a few are presented here. http://www.strongswan.org/ if BR2_PACKAGE_STRONGSWAN choice prompt "Cryptographic backend" default BR2_PACKAGE_STRONGSWAN_GMP config BR2_PACKAGE_STRONGSWAN_BOTAN bool "botan" depends on BR2_PACKAGE_BOTAN_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 select BR2_PACKAGE_BOTAN comment "botan backend needs a toolchain w/ C++, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_PACKAGE_BOTAN_ARCH_SUPPORTS comment "botan backend needs a toolchain not affected by GCC bug 64735" depends on BR2_PACKAGE_BOTAN_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 config BR2_PACKAGE_STRONGSWAN_OPENSSL bool "OpenSSL" select BR2_PACKAGE_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 bool "GNU MP (libgmp)" select BR2_PACKAGE_GMP config BR2_PACKAGE_STRONGSWAN_WOLFSSL bool "wolfssl" select BR2_PACKAGE_WOLFSSL endchoice config BR2_PACKAGE_STRONGSWAN_AF_ALG bool "Enable AF_ALG crypto interface to Linux Crypto API" config BR2_PACKAGE_STRONGSWAN_CURL bool "Enable CURL fetcher plugin to fetch files via libcurl" select BR2_PACKAGE_LIBCURL config BR2_PACKAGE_STRONGSWAN_MD4 bool "Enable MD4 hash algorithm" config BR2_PACKAGE_STRONGSWAN_CHARON bool "Enable the IKEv1/IKEv2 keying daemon charon" default y if BR2_PACKAGE_STRONGSWAN_CHARON config BR2_PACKAGE_STRONGSWAN_TNCCS_11 bool "Enable TNCCS 1.1 protocol module" select BR2_PACKAGE_LIBXML2 config BR2_PACKAGE_STRONGSWAN_TNCCS_20 bool "Enable TNCCS 2.0 protocol module" config BR2_PACKAGE_STRONGSWAN_TNCCS_DYNAMIC bool "Enable dynamic TNCCS protocol discovery module" config BR2_PACKAGE_STRONGSWAN_SYSTIME_FIX bool "Enable systime-fix plugin" config BR2_PACKAGE_STRONGSWAN_EAP_SIM bool "Enable EAP-SIM" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy config BR2_PACKAGE_STRONGSWAN_EAP_SIM_FILE bool "Enable EAP-SIM file backend" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy select BR2_PACKAGE_STRONGSWAN_EAP_SIM config BR2_PACKAGE_STRONGSWAN_EAP_SIM_PCSC bool "Enable EAP-SIM smart card backend" depends on !BR2_STATIC_LIBS # pcsc-lite select BR2_PACKAGE_PCSC_LITE select BR2_PACKAGE_STRONGSWAN_EAP_SIM config BR2_PACKAGE_STRONGSWAN_EAP_AKA bool "Enable EAP-AKA" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy config BR2_PACKAGE_STRONGSWAN_EAP_AKA_3GPP2 bool "Enable EAP-AKA 3GPP2 algorithms" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy select BR2_PACKAGE_GMP select BR2_PACKAGE_STRONGSWAN_EAP_AKA config BR2_PACKAGE_STRONGSWAN_EAP_SIMAKA_SQL bool "Enable EAP-SIM/AKA backend based on a triplet/quintuplet SQL database" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy select BR2_PACKAGE_STRONGSWAN_EAP_AKA select BR2_PACKAGE_STRONGSWAN_EAP_SIM config BR2_PACKAGE_STRONGSWAN_EAP_SIMAKA_PSEUDONYM bool "Enable EAP-SIM/AKA pseudonym storage" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy select BR2_PACKAGE_STRONGSWAN_EAP_AKA select BR2_PACKAGE_STRONGSWAN_EAP_SIM config BR2_PACKAGE_STRONGSWAN_EAP_SIMAKA_REAUTH bool "Enable EAP-SIM/AKA reauthentication data storage" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy select BR2_PACKAGE_STRONGSWAN_EAP_AKA select BR2_PACKAGE_STRONGSWAN_EAP_SIM config BR2_PACKAGE_STRONGSWAN_EAP_IDENTITY bool "Enable EAP-Identity" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy config BR2_PACKAGE_STRONGSWAN_EAP_MD5 bool "Enable EAP-MD5" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy config BR2_PACKAGE_STRONGSWAN_EAP_GTC bool "Enable EAP-GDC" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy config BR2_PACKAGE_STRONGSWAN_EAP_MSCHAPV2 bool "Enable EAP-MSCHAPv2" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy select BR2_PACKAGE_STRONGSWAN_MD4 config BR2_PACKAGE_STRONGSWAN_EAP_PEAP bool "Enable EAP-PEAP" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy config BR2_PACKAGE_STRONGSWAN_EAP_RADIUS bool "Enable EAP-RADIUS" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy config BR2_PACKAGE_STRONGSWAN_EAP_TLS bool "Enable EAP-TLS" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy config BR2_PACKAGE_STRONGSWAN_EAP_TTLS bool "Enable EAP-TTLS" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy config BR2_PACKAGE_STRONGSWAN_EAP_DYNAMIC bool "Enable EAP-DYNAMIC" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy config BR2_PACKAGE_STRONGSWAN_EAP_TNC bool "Enable EAP-TNC" default y if BR2_PACKAGE_STRONGSWAN_EAP # legacy config BR2_PACKAGE_STRONGSWAN_UNITY bool "Enables Cisco Unity extension plugin" config BR2_PACKAGE_STRONGSWAN_STROKE bool "Enable charons stroke configuration backend" default y config BR2_PACKAGE_STRONGSWAN_SQL bool "Enable SQL database configuration backend" depends on BR2_PACKAGE_SQLITE || BR2_PACKAGE_MYSQL endif config BR2_PACKAGE_STRONGSWAN_PKI bool "Enable pki certificate utility" default y config BR2_PACKAGE_STRONGSWAN_SCEP bool "Enable SCEP client tool" config BR2_PACKAGE_STRONGSWAN_SCRIPTS bool "Enable additional utilities (found in scripts directory)" default y depends on BR2_PACKAGE_STRONGSWAN_CHARON config BR2_PACKAGE_STRONGSWAN_VICI bool "Enable vici/swanctl" default y depends on BR2_PACKAGE_STRONGSWAN_CHARON endif ================================================ FILE: package/strongswan/strongswan.hash ================================================ # From http://download.strongswan.org/strongswan-5.9.4.tar.bz2.md5 md5 9c387eb77f0159fdefbcf7e81c905c35 strongswan-5.9.4.tar.bz2 # Calculated based on the hash above sha256 45fdf1a4c2af086d8ff5b76fd7b21d3b6f0890f365f83bf4c9a75dda26887518 strongswan-5.9.4.tar.bz2 # Locally calculated sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 2292e21797754548dccdef9eef6aee7584e552fbd890fa914e1de8d3577d23f0 LICENSE ================================================ FILE: package/strongswan/strongswan.mk ================================================ ################################################################################ # # strongswan # ################################################################################ STRONGSWAN_VERSION = 5.9.4 STRONGSWAN_SOURCE = strongswan-$(STRONGSWAN_VERSION).tar.bz2 STRONGSWAN_SITE = http://download.strongswan.org STRONGSWAN_LICENSE = GPL-2.0+ STRONGSWAN_LICENSE_FILES = COPYING LICENSE STRONGSWAN_CPE_ID_VENDOR = strongswan STRONGSWAN_DEPENDENCIES = host-pkgconf STRONGSWAN_INSTALL_STAGING = YES STRONGSWAN_CONF_OPTS += \ --without-lib-prefix \ --enable-led \ --enable-pkcs11=yes \ --enable-kernel-netlink=yes \ --enable-socket-default=yes \ --enable-botan=$(if $(BR2_PACKAGE_STRONGSWAN_BOTAN),yes,no) \ --enable-openssl=$(if $(BR2_PACKAGE_STRONGSWAN_OPENSSL),yes,no) \ --enable-gcrypt=$(if $(BR2_PACKAGE_STRONGSWAN_GCRYPT),yes,no) \ --enable-gmp=$(if $(BR2_PACKAGE_STRONGSWAN_GMP),yes,no) \ --enable-af-alg=$(if $(BR2_PACKAGE_STRONGSWAN_AF_ALG),yes,no) \ --enable-curl=$(if $(BR2_PACKAGE_STRONGSWAN_CURL),yes,no) \ --enable-charon=$(if $(BR2_PACKAGE_STRONGSWAN_CHARON),yes,no) \ --enable-tnccs-11=$(if $(BR2_PACKAGE_STRONGSWAN_TNCCS_11),yes,no) \ --enable-tnccs-20=$(if $(BR2_PACKAGE_STRONGSWAN_TNCCS_20),yes,no) \ --enable-tnccs-dynamic=$(if $(BR2_PACKAGE_STRONGSWAN_TNCCS_DYNAMIC),yes,no) \ --enable-eap-sim-pcsc=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_SIM_PCSC),yes,no) \ --enable-unity=$(if $(BR2_PACKAGE_STRONGSWAN_UNITY),yes,no) \ --enable-stroke=$(if $(BR2_PACKAGE_STRONGSWAN_STROKE),yes,no) \ --enable-sql=$(if $(BR2_PACKAGE_STRONGSWAN_SQL),yes,no) \ --enable-pki=$(if $(BR2_PACKAGE_STRONGSWAN_PKI),yes,no) \ --enable-scepclient=$(if $(BR2_PACKAGE_STRONGSWAN_SCEP),yes,no) \ --enable-scripts=$(if $(BR2_PACKAGE_STRONGSWAN_SCRIPTS),yes,no) \ --enable-vici=$(if $(BR2_PACKAGE_STRONGSWAN_VICI),yes,no) \ --enable-swanctl=$(if $(BR2_PACKAGE_STRONGSWAN_VICI),yes,no) \ --enable-wolfssl=$(if $(BR2_PACKAGE_STRONGSWAN_WOLFSSL),yes,no) \ --enable-md4=$(if $(BR2_PACKAGE_STRONGSWAN_MD4),yes,no) \ --enable-systime-fix=$(if $(BR2_PACKAGE_STRONGSWAN_SYSTIME_FIX),yes,no) \ --enable-eap-sim=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_SIM),yes,no) \ --enable-eap-sim-file=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_SIM_FILE),yes,no) \ --enable-eap-aka=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_AKA),yes,no) \ --enable-eap-aka-3gpp2=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_AKA_3GPP2),yes,no) \ --enable-eap-simaka-sql=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_SIMAKA_SQL),yes,no) \ --enable-eap-simaka-pseudonym=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_SIMAKA_PSEUDONYM),yes,no) \ --enable-eap-simaka-reauth=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_SIMAKA_REAUTH),yes,no) \ --enable-eap-identity=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_IDENTITY),yes,no) \ --enable-eap-md5=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_MD5),yes,no) \ --enable-eap-gtc=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_GTC),yes,no) \ --enable-eap-mschapv2=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_MSCHAPV2),yes,no) \ --enable-eap-tls=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_TLS),yes,no) \ --enable-eap-ttls=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_TTLS),yes,no) \ --enable-eap-peap=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_PEAP),yes,no) \ --enable-eap-tnc=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_TNC),yes,no) \ --enable-eap-dynamic=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_DYNAMIC),yes,no) \ --enable-eap-radius=$(if $(BR2_PACKAGE_STRONGSWAN_EAP_RADIUS),yes,no) \ --with-ipseclibdir=/usr/lib \ --with-plugindir=/usr/lib/ipsec/plugins \ --with-imcvdir=/usr/lib/ipsec/imcvs \ --with-dev-headers=/usr/include ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) STRONGSWAN_CONF_ENV += LIBS='-latomic' endif STRONGSWAN_DEPENDENCIES += \ $(if $(BR2_PACKAGE_STRONGSWAN_BOTAN),botan) \ $(if $(BR2_PACKAGE_STRONGSWAN_OPENSSL),openssl) \ $(if $(BR2_PACKAGE_STRONGSWAN_GCRYPT),libgcrypt) \ $(if $(BR2_PACKAGE_STRONGSWAN_GMP),gmp) \ $(if $(BR2_PACKAGE_STRONGSWAN_EAP_AKA_3GPP2),gmp) \ $(if $(BR2_PACKAGE_STRONGSWAN_CURL),libcurl) \ $(if $(BR2_PACKAGE_STRONGSWAN_TNCCS_11),libxml2) \ $(if $(BR2_PACKAGE_STRONGSWAN_EAP_SIM_PCSC),pcsc-lite) \ $(if $(BR2_PACKAGE_STRONGSWAN_WOLFSSL),wolfssl) ifeq ($(BR2_PACKAGE_STRONGSWAN_SQL),y) STRONGSWAN_DEPENDENCIES += \ $(if $(BR2_PACKAGE_SQLITE),sqlite) \ $(if $(BR2_PACKAGE_MYSQL),mysql) endif # disable connmark/forecast until net/if.h vs. linux/if.h conflict resolved # problem exist since linux 4.5 header changes STRONGSWAN_CONF_OPTS += \ --disable-connmark \ --disable-forecast $(eval $(autotools-package)) ================================================ FILE: package/stunnel/Config.in ================================================ config BR2_PACKAGE_STUNNEL bool "stunnel" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL help Stunnel is a program that wraps any TCP connection with an SSL connection. http://www.stunnel.org/ ================================================ FILE: package/stunnel/S50stunnel ================================================ #!/bin/sh start() { printf "Starting stunnel: " start-stop-daemon -S -q -p /var/run/stunnel.pid --exec /usr/bin/stunnel [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping stunnel: " start-stop-daemon -K -q -p /var/run/stunnel.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 $? ================================================ FILE: package/stunnel/stunnel.hash ================================================ # From https://www.stunnel.org/downloads/stunnel-5.60.tar.gz.sha256 sha256 c45d765b1521861fea9b03b425b9dd7d48b3055128c0aec673bba5ef9b8f787d stunnel-5.60.tar.gz # Locally calculated sha256 28b55d0157efd5ceb63640faeebb50fda13b1f49aec0b9c1240b9a3ea9f0eb4c COPYING.md sha256 62f171d4d8b6726df61f18a6bbc0a70f79c4bc2134d837d35c81fc6289a2d84d COPYRIGHT.md ================================================ FILE: package/stunnel/stunnel.mk ================================================ ################################################################################ # # stunnel # ################################################################################ STUNNEL_VERSION_MAJOR = 5 STUNNEL_VERSION = $(STUNNEL_VERSION_MAJOR).60 STUNNEL_SITE = http://www.usenix.org.uk/mirrors/stunnel/archive/$(STUNNEL_VERSION_MAJOR).x STUNNEL_DEPENDENCIES = host-pkgconf openssl STUNNEL_CONF_OPTS = --with-ssl=$(STAGING_DIR)/usr --with-threads=fork \ --disable-libwrap STUNNEL_CONF_ENV = \ ax_cv_check_cflags___fstack_protector=$(if $(BR2_TOOLCHAIN_HAS_SSP),yes,no) \ LIBS=`$(PKG_CONFIG_HOST_BINARY) --libs openssl` STUNNEL_LICENSE = GPL-2.0+ STUNNEL_LICENSE_FILES = COPYING.md COPYRIGHT.md STUNNEL_CPE_ID_VENDOR = stunnel STUNNEL_SELINUX_MODULES = stunnel ifeq ($(BR2_INIT_SYSTEMD),y) STUNNEL_DEPENDENCIES += systemd else STUNNEL_CONF_OPTS += --disable-systemd endif define STUNNEL_INSTALL_CONF $(INSTALL) -m 0644 -D $(@D)/tools/stunnel.conf \ $(TARGET_DIR)/etc/stunnel/stunnel.conf rm -f $(TARGET_DIR)/etc/stunnel/stunnel.conf-sample endef STUNNEL_POST_INSTALL_TARGET_HOOKS += STUNNEL_INSTALL_CONF define STUNNEL_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/stunnel/S50stunnel $(TARGET_DIR)/etc/init.d/S50stunnel endef $(eval $(autotools-package)) ================================================ FILE: package/subversion/0001-workaround-ac-run-ifelse.patch ================================================ build/ac-macros/macosx.m4: workaround AC_RUN_IFELSE The SVN_LIB_MACHO_ITERATE macro contains an AC_RUN_IFELSE test that doesn't work when cross-compiling. However, this macro is related to testing Mac OS X APIs, so in the context of Buildroot, we don't care, and the test program is not even going to build. So we simply workaround this by turning the test into an AC_COMPILE_IFELSE. Signed-off-by: Thomas Petazzoni Index: b/build/ac-macros/macosx.m4 =================================================================== --- a/build/ac-macros/macosx.m4 +++ b/build/ac-macros/macosx.m4 @@ -24,7 +24,7 @@ AC_DEFUN(SVN_LIB_MACHO_ITERATE, [ AC_MSG_CHECKING([for Mach-O dynamic module iteration functions]) - AC_RUN_IFELSE([AC_LANG_PROGRAM([[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #include ]],[[ ================================================ FILE: package/subversion/Config.in ================================================ config BR2_PACKAGE_SUBVERSION bool "subversion" # apr really needs shared library support depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # apr select BR2_PACKAGE_APR select BR2_PACKAGE_APR_UTIL select BR2_PACKAGE_EXPAT select BR2_PACKAGE_LZ4 select BR2_PACKAGE_UTF8PROC select BR2_PACKAGE_ZLIB select BR2_PACKAGE_SQLITE help Subversion is an open source version control system http://subversion.apache.org/ comment "subversion needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/subversion/subversion.hash ================================================ # From https://www.apache.org/dist/subversion/subversion-1.14.1.tar.bz2.sha512 sha512 0a70c7152b77cdbcb810a029263e4b3240b6ef41d1c19714e793594088d3cca758d40dfbc05622a806b06463becb73207df249393924ce591026b749b875fcdd subversion-1.14.1.tar.bz2 # Locally calculated sha256 484aff0cfbb81155a10f903ed756e27e9fc65578c245a295bae295c4bb51eaad LICENSE ================================================ FILE: package/subversion/subversion.mk ================================================ ################################################################################ # # subversion # ################################################################################ SUBVERSION_VERSION = 1.14.1 SUBVERSION_SOURCE = subversion-$(SUBVERSION_VERSION).tar.bz2 SUBVERSION_SITE = https://downloads.apache.org/subversion SUBVERSION_LICENSE = Apache-2.0 SUBVERSION_LICENSE_FILES = LICENSE SUBVERSION_CPE_ID_VENDOR = apache SUBVERSION_DEPENDENCIES = \ host-pkgconf \ apr \ apr-util \ expat \ lz4 \ utf8proc \ zlib \ sqlite \ $(TARGET_NLS_DEPENDENCIES) SUBVERSION_AUTORECONF = YES SUBVERSION_CONF_OPTS = \ --with-expat=$(STAGING_DIR)/usr/include:$(STAGING_DIR)/usr/lib: \ --with-apr=$(STAGING_DIR)/usr \ --with-apr-util=$(STAGING_DIR)/usr \ --with-lz4=$(STAGING_DIR)/usr \ --with-utf8proc=$(STAGING_DIR)/usr \ --with-zlib=$(STAGING_DIR)/usr \ --without-serf \ --without-apxs \ --without-berkeley-db \ --without-sasl \ --without-gnome-keyring \ --without-libmagic SUBVERSION_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) $(eval $(autotools-package)) ================================================ FILE: package/sudo/Config.in ================================================ config BR2_PACKAGE_SUDO bool "sudo" # uses fork() depends on BR2_USE_MMU help Sudo is a program designed to allow a sysadmin to give limited root privileges to users and log root activity. The basic philosophy is to give as few privileges as possible but still allow people to get their work done. http://www.sudo.ws/sudo/ ================================================ FILE: package/sudo/sudo.hash ================================================ # From: http://www.sudo.ws/download.html sha256 9e3b8b8da7def43b6e60c257abe80467205670fd0f7c081de1423c414b680f2d sudo-1.9.8p2.tar.gz # Locally calculated sha256 b678438594f04a7070a5fd125f7edffc871e13234baad318690b647bfc60705d doc/LICENSE ================================================ FILE: package/sudo/sudo.mk ================================================ ################################################################################ # # sudo # ################################################################################ SUDO_VERSION_MAJOR = 1.9.8 SUDO_VERSION_MINOR = p2 SUDO_VERSION = $(SUDO_VERSION_MAJOR)$(SUDO_VERSION_MINOR) SUDO_SITE = https://www.sudo.ws/sudo/dist SUDO_LICENSE = ISC, BSD-3-Clause SUDO_LICENSE_FILES = doc/LICENSE SUDO_CPE_ID_VERSION = $(SUDO_VERSION_MAJOR) SUDO_CPE_ID_UPDATE = $(SUDO_VERSION_MINOR) SUDO_SELINUX_MODULES = sudo # This is to avoid sudo's make install from chown()ing files which fails SUDO_INSTALL_TARGET_OPTS = INSTALL_OWNER="" DESTDIR="$(TARGET_DIR)" install SUDO_CONF_OPTS = \ --without-lecture \ --without-sendmail \ --without-umask \ --with-logging=syslog \ --without-interfaces \ --with-env-editor ifeq ($(BR2_PACKAGE_LINUX_PAM),y) define SUDO_INSTALL_PAM_CONF $(INSTALL) -D -m 0644 package/sudo/sudo.pam $(TARGET_DIR)/etc/pam.d/sudo endef SUDO_DEPENDENCIES += linux-pam SUDO_CONF_OPTS += --with-pam SUDO_POST_INSTALL_TARGET_HOOKS += SUDO_INSTALL_PAM_CONF else SUDO_CONF_OPTS += --without-pam endif ifeq ($(BR2_PACKAGE_ZLIB),y) SUDO_CONF_OPTS += --enable-zlib SUDO_DEPENDENCIES += zlib else SUDO_CONF_OPTS += --disable-zlib endif ifeq ($(BR2_PACKAGE_OPENLDAP),y) SUDO_DEPENDENCIES += openldap SUDO_CONF_OPTS += --with-ldap # If we are building sudo statically and openldap was linked with openssl, then # when we link sudo with openldap we need to specify the openssl libs, otherwise # it will fail with "undefined reference" errors. ifeq ($(BR2_STATIC_LIBS)$(BR2_PACKAGE_OPENSSL),yy) SUDO_DEPENDENCIES += host-pkgconf SUDO_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libssl libcrypto`" endif else SUDO_CONF_OPTS += --without-ldap endif # mksigname/mksiglist needs to run on build host to generate source files define SUDO_BUILD_MKSIGNAME_MKSIGLIST_HOST $(MAKE) $(HOST_CONFIGURE_OPTS) \ CPPFLAGS="$(HOST_CPPFLAGS) -I../../include -I../.." \ -C $(@D)/lib/util mksigname mksiglist endef SUDO_POST_CONFIGURE_HOOKS += SUDO_BUILD_MKSIGNAME_MKSIGLIST_HOST define SUDO_PERMISSIONS /usr/bin/sudo f 4755 0 0 - - - - - endef define SUDO_REMOVE_DIST_EXAMPLES $(RM) $(TARGET_DIR)/etc/sudoers.dist rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/etc/sudoers.d endef SUDO_POST_INSTALL_TARGET_HOOKS += SUDO_REMOVE_DIST_EXAMPLES define SUDO_USERS - - sudo -1 - - - - endef define SUDO_ENABLE_SUDO_GROUP_RULE $(SED) '/^# \%sudo\tALL=(ALL) ALL/s/^# //' $(TARGET_DIR)/etc/sudoers endef SUDO_POST_INSTALL_TARGET_HOOKS += SUDO_ENABLE_SUDO_GROUP_RULE $(eval $(autotools-package)) ================================================ FILE: package/sudo/sudo.pam ================================================ auth sufficient pam_rootok.so auth required pam_wheel.so use_uid auth required pam_env.so auth required pam_unix.so nullok account required pam_unix.so password required pam_unix.so nullok session required pam_limits.so session required pam_env.so session required pam_unix.so ================================================ FILE: package/sunwait/Config.in ================================================ config BR2_PACKAGE_SUNWAIT bool "sunwait" depends on BR2_INSTALL_LIBSTDCPP help Sunwait calculates sunrise or sunset times with civil, nautical, astronomical and custom twilights. https://github.com/risacher/sunwait comment "sunwait needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/sunwait/sunwait.hash ================================================ # sha256 locally computed sha256 ef26ed05882d5286a64a37c4044f99b877cc54f58a46f0e37ca60c93398df910 sunwait-7326b53e5406c7ebd552ae6dc0fc659252a18e7f.tar.gz sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 LICENSE ================================================ FILE: package/sunwait/sunwait.mk ================================================ ################################################################################ # # sunwait # ################################################################################ SUNWAIT_VERSION = 7326b53e5406c7ebd552ae6dc0fc659252a18e7f SUNWAIT_SITE = $(call github,risacher,sunwait,$(SUNWAIT_VERSION)) SUNWAIT_LICENSE = GPL-3.0 SUNWAIT_LICENSE_FILES = LICENSE SUNWAIT_MAKE_OPTS = \ $(TARGET_CONFIGURE_OPTS) \ C=$(TARGET_CXX) \ CFLAGS="$(TARGET_CFLAGS) -c" \ LDFLAGS="$(TARGET_LDFLAGS) -lm" define SUNWAIT_BUILD_CMDS $(MAKE) $(SUNWAIT_MAKE_OPTS) -C $(@D) all endef define SUNWAIT_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/sunwait $(TARGET_DIR)/usr/bin/sunwait endef $(eval $(generic-package)) ================================================ FILE: package/sunxi-boards/Config.in ================================================ config BR2_PACKAGE_SUNXI_BOARDS bool "sunxi script.bin board file" depends on BR2_arm depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-sunxi-tools select BR2_PACKAGE_HOST_SUNXI_TOOLS help Sunxi-boards requires a compiled .fex files for hardware description, used by the kernel during boot for hardware initialization. This package is specific for linux-sunxi kernel and it is useless for mainline kernel versions. https://github.com/linux-sunxi/sunxi-boards if BR2_PACKAGE_SUNXI_BOARDS config BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE string ".fex file to compile" help This field defines the name of the .fex file for which the .bin file should be generated. This should be the path of the .fex file relative to the sys_config/ directory, and including the .fex extension. See inside sys_config/ directory in sunxi-boards source code to see the list of valid .fex files. endif comment "sunxi script.bin board file needs a toolchain w/ host gcc >= 4.9" depends on BR2_arm depends on !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/sunxi-boards/sunxi-boards.hash ================================================ # locally computed sha256 ff1fa509fd5716d26c23a82e59300876a848122f745713a610f8f3c47d448064 sunxi-boards-a6a4e94066f4ec6b26fc7060dc453a6bcf26a504.tar.gz ================================================ FILE: package/sunxi-boards/sunxi-boards.mk ================================================ ################################################################################ # # sunxi-boards # ################################################################################ SUNXI_BOARDS_VERSION = a6a4e94066f4ec6b26fc7060dc453a6bcf26a504 SUNXI_BOARDS_SITE = $(call github,linux-sunxi,sunxi-boards,$(SUNXI_BOARDS_VERSION)) SUNXI_BOARDS_DEPENDENCIES = host-sunxi-tools SUNXI_BOARDS_INSTALL_IMAGES = YES SUNXI_BOARDS_INSTALL_TARGET = NO SUNXI_BOARDS_FEX_FILE = $(call qstrip,$(BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE)) define SUNXI_BOARDS_INSTALL_IMAGES_CMDS $(FEX2BIN) $(@D)/sys_config/$(SUNXI_BOARDS_FEX_FILE) \ $(BINARIES_DIR)/script.bin endef ifeq ($(BR2_PACKAGE_SUNXI_BOARDS)$(BR_BUILDING),yy) # we NEED a board name ifeq ($(SUNXI_BOARDS_FEX_FILE),) $(error No sunxi .fex file specified. Check your BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE settings) endif endif $(eval $(generic-package)) ================================================ FILE: package/sunxi-cedarx/Config.in ================================================ config BR2_PACKAGE_SUNXI_CEDARX bool "sunxi-cedarx" depends on BR2_arm depends on BR2_TOOLCHAIN_USES_GLIBC help Sunxi CedarX decoder libraries. CedarX is Allwinner's multimedia co-processing technology for hardware accelerated video and image decoding, as used inside their A10 SoC's and others. http://github.com/linux-sunxi/cedarx-libs http://linux-sunxi.org/CedarX comment "sunxi-cedarx needs a glibc toolchain" depends on BR2_arm depends on !BR2_TOOLCHAIN_USES_GLIBC ================================================ FILE: package/sunxi-cedarx/sunxi-cedarx.hash ================================================ # locally computed sha256 ea7426f83325d247ba0d4734eaf1cb53bab178a81f935e2535ddb3069f70ba84 sunxi-cedarx-b8f52d913f73720e50d8f1b2f8610467b575dc45.tar.gz ================================================ FILE: package/sunxi-cedarx/sunxi-cedarx.mk ================================================ ################################################################################ # # sunxi-cedarx # ################################################################################ SUNXI_CEDARX_VERSION = b8f52d913f73720e50d8f1b2f8610467b575dc45 SUNXI_CEDARX_SITE = $(call github,linux-sunxi,cedarx-libs,$(SUNXI_CEDARX_VERSION)) SUNXI_CEDARX_INSTALL_STAGING = YES SUNXI_CEDARX_CONFIGURE_OPTS = \ CROSS_COMPILE=$(TARGET_CROSS) ifeq ($(BR2_ARM_EABIHF),y) SUNXI_CEDARX_BIN_DIR = $(@D)/libcedarv/linux-armhf else SUNXI_CEDARX_BIN_DIR = $(@D)/libcedarv/linux-armel2 endif define SUNXI_CEDARX_BUILD_AVHEAP $(TARGET_CC) $(TARGET_CFLAGS) -fPIC \ -c $(SUNXI_CEDARX_BIN_DIR)/adapter/avheap/avheap.c \ -o $(SUNXI_CEDARX_BIN_DIR)/adapter/avheap/avheap.o \ -I $(SUNXI_CEDARX_BIN_DIR)/adapter/avheap \ -I $(SUNXI_CEDARX_BIN_DIR)/ $(TARGET_CC) -shared -L./ -Wl,-soname,libavheap.so \ -o $(SUNXI_CEDARX_BIN_DIR)/adapter/avheap/libavheap.so \ $(SUNXI_CEDARX_BIN_DIR)/adapter/avheap/avheap.o endef define SUNXI_CEDARX_INSTALL_AVHEAP $(INSTALL) -D -m 755 $(SUNXI_CEDARX_BIN_DIR)/adapter/avheap/libavheap.so \ $(1)/usr/lib/libavheap.so endef define SUNXI_CEDARX_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(SUNXI_CEDARX_BIN_DIR) \ $(SUNXI_CEDARX_CONFIGURE_OPTS) $(SUNXI_CEDARX_BUILD_AVHEAP) endef define SUNXI_CEDARX_INSTALL_STAGING_CMDS $(INSTALL) -d -m 755 $(STAGING_DIR)/usr/include/libvecore $(INSTALL) -m 664 $(SUNXI_CEDARX_BIN_DIR)/libvecore/*.h \ $(STAGING_DIR)/usr/include/libvecore $(INSTALL) -m 644 $(SUNXI_CEDARX_BIN_DIR)/*.h \ $(STAGING_DIR)/usr/include/ $(INSTALL) -D -m 755 $(SUNXI_CEDARX_BIN_DIR)/libvecore/libvecore.so \ $(STAGING_DIR)/usr/lib/libvecore.so $(call SUNXI_CEDARX_INSTALL_AVHEAP, $(STAGING_DIR)) endef define SUNXI_CEDARX_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(SUNXI_CEDARX_BIN_DIR)/libvecore/libvecore.so \ $(TARGET_DIR)/usr/lib/libvecore.so $(call SUNXI_CEDARX_INSTALL_AVHEAP, $(TARGET_DIR)) endef $(eval $(generic-package)) ================================================ FILE: package/sunxi-mali-mainline/Config.in ================================================ config BR2_PACKAGE_SUNXI_MALI_MAINLINE bool "sunxi-mali-mainline" depends on BR2_aarch64 || (BR2_ARM_EABIHF && BR2_arm) depends on BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBGLES help Install userspace Allwinner OpenGL libraries. https://github.com/bootlin/mali-blobs if BR2_PACKAGE_SUNXI_MALI_MAINLINE config BR2_PACKAGE_PROVIDES_LIBEGL default "sunxi-mali-mainline" config BR2_PACKAGE_PROVIDES_LIBGLES default "sunxi-mali-mainline" choice prompt "Version" default BR2_PACKAGE_SUNXI_MALI_MAINLINE_R6P2 help Select the version of the userspace module. config BR2_PACKAGE_SUNXI_MALI_MAINLINE_R6P2 bool "r6p2" config BR2_PACKAGE_SUNXI_MALI_MAINLINE_R8P1 bool "r8p1" endchoice config BR2_PACKAGE_SUNXI_MALI_MAINLINE_REVISION string default "r6p2" if BR2_PACKAGE_SUNXI_MALI_MAINLINE_R6P2 default "r8p1" if BR2_PACKAGE_SUNXI_MALI_MAINLINE_R8P1 endif comment "sunxi-mali needs an EABIhf glibc toolchain" depends on BR2_arm depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_ARM_EABIHF ================================================ FILE: package/sunxi-mali-mainline/egl.pc ================================================ prefix=/usr/ exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: egl Description: ARM Mali implementation of EGL Version: 1.4 Requires: Libs: -L${libdir} -lEGL -lGLESv2 Cflags: -I${includedir} ================================================ FILE: package/sunxi-mali-mainline/glesv2.pc ================================================ 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} ================================================ FILE: package/sunxi-mali-mainline/sunxi-mali-mainline.hash ================================================ # Locally calculated sha256 b5e7e8f9f2886ed0b273f72ea16ae4868711726fe33e3d80ef24e86269c90fd2 sunxi-mali-mainline-418f55585e76f375792dbebb3e97532f0c1c556d.tar.gz sha256 8a06bcae44a41a886f339b4338422415a786787f113e9ed6456ae117104a0b6a EULA_for_Mali_400MP_AW.pdf ================================================ FILE: package/sunxi-mali-mainline/sunxi-mali-mainline.mk ================================================ ################################################################################ # # sunxi-mali-mainline # ################################################################################ SUNXI_MALI_MAINLINE_VERSION = 418f55585e76f375792dbebb3e97532f0c1c556d SUNXI_MALI_MAINLINE_SITE = $(call github,bootlin,mali-blobs,$(SUNXI_MALI_MAINLINE_VERSION)) SUNXI_MALI_MAINLINE_INSTALL_STAGING = YES SUNXI_MALI_MAINLINE_PROVIDES = libegl libgles SUNXI_MALI_MAINLINE_LICENSE = Allwinner End User Licence Agreement SUNXI_MALI_MAINLINE_EULA_ORIGINAL = EULA\ for\ Mali\ 400MP\ _AW.pdf SUNXI_MALI_MAINLINE_EULA_NO_SPACES = EULA_for_Mali_400MP_AW.pdf SUNXI_MALI_MAINLINE_LICENSE_FILES = $(SUNXI_MALI_MAINLINE_EULA_NO_SPACES) SUNXI_MALI_MAINLINE_REV = $(call qstrip,$(BR2_PACKAGE_SUNXI_MALI_MAINLINE_REVISION)) ifeq ($(BR2_arm),y) SUNXI_MALI_MAINLINE_ARCH=arm else ifeq ($(BR2_aarch64),y) SUNXI_MALI_MAINLINE_ARCH=arm64 endif define SUNXI_MALI_MAINLINE_INSTALL_STAGING_CMDS mkdir -p $(STAGING_DIR)/usr/lib $(STAGING_DIR)/usr/include cp -rf $(@D)/$(SUNXI_MALI_MAINLINE_REV)/$(SUNXI_MALI_MAINLINE_ARCH)/fbdev/*.so* \ $(STAGING_DIR)/usr/lib/ cp -rf $(@D)/include/fbdev/* $(STAGING_DIR)/usr/include/ $(INSTALL) -D -m 0644 package/sunxi-mali-mainline/egl.pc \ $(STAGING_DIR)/usr/lib/pkgconfig/egl.pc $(INSTALL) -D -m 0644 package/sunxi-mali-mainline/glesv2.pc \ $(STAGING_DIR)/usr/lib/pkgconfig/glesv2.pc endef define SUNXI_MALI_MAINLINE_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/usr/lib cp -rf $(@D)/$(SUNXI_MALI_MAINLINE_REV)/$(SUNXI_MALI_MAINLINE_ARCH)/fbdev/*.so* \ $(TARGET_DIR)/usr/lib/ endef define SUNXI_MALI_MAINLINE_FIXUP_LICENSE_FILE mv $(@D)/$(SUNXI_MALI_MAINLINE_EULA_ORIGINAL) $(@D)/$(SUNXI_MALI_MAINLINE_EULA_NO_SPACES) endef SUNXI_MALI_MAINLINE_POST_PATCH_HOOKS += SUNXI_MALI_MAINLINE_FIXUP_LICENSE_FILE $(eval $(generic-package)) ================================================ FILE: package/sunxi-mali-mainline-driver/Config.in ================================================ comment "sunxi-mali-mainline-driver needs a Linux kernel to be built" depends on BR2_PACKAGE_SUNXI_MALI_MAINLINE depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_SUNXI_MALI_MAINLINE_DRIVER bool "sunxi-mali-mainline-driver" default y depends on BR2_PACKAGE_SUNXI_MALI_MAINLINE # runtime depends on BR2_LINUX_KERNEL select BR2_LINUX_NEEDS_MODULES # not using kernel-module infra help This package builds and installs the Linux kernel driver for the Mali GPU on Allwinner platforms, compatible with recent Linux kernels (>= 4.4). Note that it should be installed together with the corresponding userspace OpenGL libraries, which are provided as binaries only at: https://github.com/bootlin/mali-blobs sunxi-mali-mainline-driver requires a Linux kernel >= 4.4 with the following options enabled: - CONFIG_CMA - CONFIG_DMA_CMA starting from Linux Kernel >= 4.20 following options must be enabled: - CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM The following kernel command line options must be passed: - drm_kms_helper.drm_leak_fbdev_smem = 1 since drm_kms_helper.drm_leak_fbdev_smem is set to 0 by default - drm_kms_helper.drm_fbdev_overalloc >= 200 since the driver requires at least double buffering and fails to work with the default value(100). https://github.com/mripard/sunxi-mali/blob/master/README.md ================================================ FILE: package/sunxi-mali-mainline-driver/sunxi-mali-mainline-driver.hash ================================================ # Locally calculated sha256 0197271dbf503e866dd4873091f61bb3de1f2c3031701aac1ba205d1e2f267ac sunxi-mali-mainline-driver-e4a91c95096bb31450b556fcb13f3c4ba79f60b4.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/sunxi-mali-mainline-driver/sunxi-mali-mainline-driver.mk ================================================ ################################################################################ # # sunxi-mali-mainline-driver # ################################################################################ SUNXI_MALI_MAINLINE_DRIVER_VERSION = e4a91c95096bb31450b556fcb13f3c4ba79f60b4 SUNXI_MALI_MAINLINE_DRIVER_SITE = $(call github,mripard,sunxi-mali,$(SUNXI_MALI_MAINLINE_DRIVER_VERSION)) SUNXI_MALI_MAINLINE_DRIVER_DEPENDENCIES = linux SUNXI_MALI_MAINLINE_DRIVER_LICENSE = GPL-2.0 SUNXI_MALI_MAINLINE_DRIVER_LICENSE_FILES = LICENSE SUNXI_MALI_MAINLINE_DRIVER_MAKE_OPTS = \ $(LINUX_MAKE_FLAGS) \ KDIR=$(LINUX_DIR) define SUNXI_MALI_MAINLINE_DRIVER_USE_APPLY_PATCHES ln -sf $(SUNXI_MALI_MAINLINE_REV)/series $(@D)/patches $(SED) 's|quilt push -a|$(TOPDIR)/support/scripts/apply-patches.sh . ../patches|' \ $(@D)/build.sh endef SUNXI_MALI_MAINLINE_DRIVER_POST_PATCH_HOOKS += SUNXI_MALI_MAINLINE_DRIVER_USE_APPLY_PATCHES define SUNXI_MALI_MAINLINE_DRIVER_BUILD_CMDS cd $(@D) && $(SUNXI_MALI_MAINLINE_DRIVER_MAKE_OPTS) \ $(SHELL) ./build.sh -r $(SUNXI_MALI_MAINLINE_REV) -j $(PARALLEL_JOBS) -b endef define SUNXI_MALI_MAINLINE_DRIVER_INSTALL_TARGET_CMDS cd $(@D) && $(SUNXI_MALI_MAINLINE_DRIVER_MAKE_OPTS) \ $(SHELL) ./build.sh -r $(SUNXI_MALI_MAINLINE_REV) -j $(PARALLEL_JOBS) -i endef define SUNXI_MALI_MAINLINE_DRIVER_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_CMA) $(call KCONFIG_ENABLE_OPT,CONFIG_DMA_CMA) $(call KCONFIG_ENABLE_OPT,CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM) endef $(eval $(generic-package)) ================================================ FILE: package/sunxi-tools/0001-meminfo-Access-to-io-memory-via-pointers.patch ================================================ From 5c0a443ba336f10a8db6a99c769aa84ad37ed4d2 Mon Sep 17 00:00:00 2001 From: Vadim Kochan Date: Wed, 20 Feb 2019 02:48:43 +0200 Subject: [PATCH] meminfo: Access to io memory via pointers The main reason for this is to be able compile with musl library, because there is no support of inx/outx functions for ARM platform. Signed-off-by: Vadim Kochan --- meminfo.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/meminfo.c b/meminfo.c index 0b0ff23..7d9f10f 100644 --- a/meminfo.c +++ b/meminfo.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include "common.h" @@ -74,24 +73,26 @@ static enum sunxi_soc_version soc_version; unsigned int sunxi_io_read(void *base, int offset) { - return inl((unsigned long) (base + offset)); + unsigned long port = (unsigned long) (base + offset); + return *((volatile unsigned long *) port); } void sunxi_io_write(void *base, int offset, unsigned int value) { - outl(value, (unsigned long) (base + offset)); + unsigned long port = (unsigned long) (base + offset); + *((volatile unsigned long *) port) = value; } void sunxi_io_mask(void *base, int offset, unsigned int value, unsigned int mask) { - unsigned int tmp = inl((unsigned long) (base + offset)); + unsigned int tmp = sunxi_io_read(base, offset); tmp &= ~mask; tmp |= value & mask; - outl(tmp, (unsigned long) (base + offset)); + sunxi_io_write(base, offset, tmp); } -- 2.14.1 ================================================ FILE: package/sunxi-tools/Config.in ================================================ config BR2_PACKAGE_SUNXI_TOOLS bool "sunxi-tools" depends on BR2_arm help Tools for Allwinner A10 (aka sun4i) and A13 (aka sun5i) based devices. http://linux-sunxi.org/Sunxi-tools if BR2_PACKAGE_SUNXI_TOOLS config BR2_PACKAGE_SUNXI_TOOLS_FEXC bool "sunxi-fexc (fex2bin & bin2fex)" help Convert between .fex board definition files and binary format. These tools are specific for the linux-sunxi kernel and do not apply to the mainline Linux kernel version. config BR2_PACKAGE_SUNXI_TOOLS_BOOTINFO bool "sunxi-bootinfo" help Displays information about sunxi boot code. config BR2_PACKAGE_SUNXI_TOOLS_FEL bool "sunxi-fel" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help The sunxi-fel command can interact with a sunxi device in fel mode. This allows do download code to memory and execute it. comment "sunxi-fel needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_PACKAGE_SUNXI_TOOLS_NAND_PART bool "sunxi-nand-part" default y help The sunxi-nand-part command allows to repartition the internal NAND on sunxi devices. config BR2_PACKAGE_SUNXI_TOOLS_PIO bool "sunxi-pio" help GPIO manipulation tool for sunxi boards. config BR2_PACKAGE_SUNXI_TOOLS_MEMINFO bool "sunxi-meminfo" help Utility to retrieve DRAM information from registers on Allwinner SoCs. Specific for the linux-sunxi kernel - does not apply to the mainline Linux kernel version. config BR2_PACKAGE_SUNXI_TOOLS_PHOENIX_INFO bool "phoenix_info" help Display information about self-installing SD card images (created with Phoenix Card). https://linux-sunxi.org/PhoenixCard config BR2_PACKAGE_SUNXI_TOOLS_NAND_IMAGE_BUILDER bool "sunxi-nand-image-builder" help Creates a raw NAND image that can be read by the sunxi NAND controller. endif # BR2_PACKAGE_SUNXI_TOOLS ================================================ FILE: package/sunxi-tools/Config.in.host ================================================ config BR2_PACKAGE_HOST_SUNXI_TOOLS bool "host sunxi-tools" depends on BR2_arm depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb help Tools for Allwinner A10 (aka sun4i) and A13 (aka sun5i) based devices. This includes fex2bin which can be used to compile .fex board definition files to the binary script.bin format required by the linux-sunxi kernel. These tools are specific for linux-sunxi kernel and do not apply to the mainline Linux kernel version. http://linux-sunxi.org/Sunxi-tools comment "host sunxi-tools needs a toolchain w/ host gcc >= 4.9" depends on BR2_arm depends on !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/sunxi-tools/sunxi-tools.hash ================================================ # Locally calculated sha256 81f48014a520cb83cac4e17f5ae627a637c4d6a422b60c693c5a705c92e43822 sunxi-tools-1.4.2.tar.gz sha256 2b0d4dda4bf8034e1506507a67f80f982131137afe62bf144d248f9faea31da4 LICENSE.md ================================================ FILE: package/sunxi-tools/sunxi-tools.mk ================================================ ################################################################################ # # sunxi-tools # ################################################################################ SUNXI_TOOLS_VERSION = 1.4.2 SUNXI_TOOLS_SITE = $(call github,linux-sunxi,sunxi-tools,v$(SUNXI_TOOLS_VERSION)) SUNXI_TOOLS_LICENSE = GPL-2.0+ SUNXI_TOOLS_LICENSE_FILES = LICENSE.md HOST_SUNXI_TOOLS_DEPENDENCIES = host-libusb host-pkgconf FEX2BIN = $(HOST_DIR)/bin/fex2bin SUNXI_TOOLS_TARGETS_$(BR2_PACKAGE_SUNXI_TOOLS_FEXC) += sunxi-fexc SUNXI_TOOLS_TARGETS_$(BR2_PACKAGE_SUNXI_TOOLS_BOOTINFO) += sunxi-bootinfo SUNXI_TOOLS_TARGETS_$(BR2_PACKAGE_SUNXI_TOOLS_FEL) += sunxi-fel SUNXI_TOOLS_TARGETS_$(BR2_PACKAGE_SUNXI_TOOLS_NAND_PART) += sunxi-nand-part SUNXI_TOOLS_TARGETS_$(BR2_PACKAGE_SUNXI_TOOLS_PIO) += sunxi-pio SUNXI_TOOLS_TARGETS_$(BR2_PACKAGE_SUNXI_TOOLS_MEMINFO) += sunxi-meminfo SUNXI_TOOLS_TARGETS_$(BR2_PACKAGE_SUNXI_TOOLS_PHOENIX_INFO) += phoenix_info SUNXI_TOOLS_TARGETS_$(BR2_PACKAGE_SUNXI_TOOLS_NAND_IMAGE_BUILDER) += \ sunxi-nand-image-builder ifeq ($(BR2_PACKAGE_SUNXI_TOOLS_FEXC),y) SUNXI_TOOLS_FEXC_LINKS += fex2bin bin2fex endif ifeq ($(BR2_PACKAGE_SUNXI_TOOLS_FEL),y) SUNXI_TOOLS_DEPENDENCIES += libusb host-pkgconf endif define HOST_SUNXI_TOOLS_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) CROSS_COMPILE="" CC="$(HOSTCC)" \ PREFIX=$(HOST_DIR) EXTRA_CFLAGS="$(HOST_CFLAGS)" \ LDFLAGS="$(HOST_LDFLAGS)" -C $(@D) tools misc endef define HOST_SUNXI_TOOLS_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) CROSS_COMPILE="" CC="$(HOSTCC)" \ PREFIX=$(HOST_DIR) EXTRA_CFLAGS="$(HOST_CFLAGS)" \ LDFLAGS="$(HOST_LDFLAGS)" -C $(@D) install-tools install-misc endef define SUNXI_TOOLS_BUILD_CMDS $(foreach t,$(SUNXI_TOOLS_TARGETS_y), \ $(TARGET_MAKE_ENV) $(MAKE) CROSS_COMPILE="$(TARGET_CROSS)" \ CC="$(TARGET_CC)" PREFIX=/usr \ EXTRA_CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" -C $(@D) $(t) ) endef define SUNXI_TOOLS_INSTALL_TARGET_CMDS $(foreach t,$(SUNXI_TOOLS_TARGETS_y), \ $(INSTALL) -D -m 0755 $(@D)/$(t) $(TARGET_DIR)/usr/bin/$(t) ) $(foreach t,$(SUNXI_TOOLS_FEXC_LINKS), \ ln -nfs sunxi-fexc $(TARGET_DIR)/usr/bin/$(t) ) endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/supertux/0001-CMakeLists.txt-compile-squirrel-with-fPIC.patch ================================================ From 23d0bb0ef0fde52d1cffe235edead09287326fb4 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 4 Oct 2020 01:11:30 +0200 Subject: [PATCH] CMakeLists.txt: compile squirrel with -fPIC Ensure that squirrel is compiled with -fPIC to allow linking the static libraries with dynamically linked programs. This is not a requirement for most architectures but is mandatory for ARM. Fixes: x86_64-buildroot-linux-musl/bin/ld: CMakeFiles/sq_static.dir/sq.c.o: relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIC x86_64-buildroot-linux-musl/bin/ld: final link failed: nonrepresentable section on output Signed-off-by: Romain Naour --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b1dafa1e..07c603cce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -412,7 +412,8 @@ ExternalProject_Add(squirrel -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_INSTALL_PREFIX=${SQUIRREL_PREFIX} - -DINSTALL_INC_DIR=include) + -DINSTALL_INC_DIR=include + -DCMAKE_POSITION_INDEPENDENT_CODE=ON) if(WIN32) add_library(squirrel_lib SHARED IMPORTED) -- 2.25.4 ================================================ FILE: package/supertux/Config.in ================================================ config BR2_PACKAGE_SUPERTUX bool "supertux" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_HAS_LIBGL # libglew depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on BR2_PACKAGE_XORG7 # libglew, SDL2 OpenGL (GLX) depends on BR2_TOOLCHAIN_GCC_AT_LEAST_6 # C++14 depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # openal depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem depends on BR2_USE_MMU # SDL2 OpenGL (GLX) depends on !BR2_STATIC_LIBS # SDL2 depends on BR2_USE_WCHAR # Boost select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_DATE_TIME select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_LOCALE select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBGLEW select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_LIBVORBIS select BR2_PACKAGE_OPENAL select BR2_PACKAGE_PHYSFS select BR2_PACKAGE_SDL2 select BR2_PACKAGE_SDL2_IMAGE select BR2_PACKAGE_SDL2_OPENGL help SuperTux is a free classic 2D jump'n run sidescroller game in a style similar to the original Super Mario games covered under the GNU GPL. http://supertux.github.io/ comment "supertux needs OpenGL and a toolchain w/ C++, gcc >= 6, NPTL, dynamic library, wchar" depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_HAS_LIBGL || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_6 || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ BR2_STATIC_LIBS || !BR2_USE_WCHAR ================================================ FILE: package/supertux/supertux.hash ================================================ # Locally calculated sha256 26a9e56ea2d284148849f3239177d777dda5b675a10ab2d76ee65854c91ff598 SuperTux-v0.6.2-Source.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.txt sha256 09645215102c1013a1ef8c16a30bacdb9a78924ca064372290405fabd3e7074d data/AUTHORS ================================================ FILE: package/supertux/supertux.mk ================================================ ################################################################################ # # supertux # ################################################################################ SUPERTUX_VERSION = 0.6.2 SUPERTUX_SITE = https://github.com/SuperTux/supertux/releases/download/v$(SUPERTUX_VERSION) SUPERTUX_SOURCE = SuperTux-v$(SUPERTUX_VERSION)-Source.tar.gz # Supertux itself is GPL-3.0+, but it bundles a few libraries with different # licenses (sexp-cpp, squirrel, tinygettext) which are linked statically. SUPERTUX_LICENSE = GPL-3.0+ (code), CC-BY-SA-2.0, CC-BY-SA-3.0, CC-BY-SA-4.0, GPL-2.0+ (images music sounds) SUPERTUX_LICENSE_FILES = LICENSE.txt data/AUTHORS # Use bundled squirrel, tinygettext sexp-cpp packages which are hardcoded in # the CMake build system. SUPERTUX_DEPENDENCIES = host-pkgconf boost freetype libcurl libgl libglew \ libogg libpng libvorbis openal physfs sdl2 sdl2_image # CMAKE_BUILD_TYPE=Release: disable profiling code (-pg) # ENABLE_BOOST_STATIC_LIBS=OFF: use boost shared libraries since supertux # depends on !BR2_STATIC_LIBS and boost provide only shared libraries with # BR2_SHARED_LIBS. # ENABLE_OPENGL=ON: Can be disabled but will make SuperTux unplayable slow. # GLBINDING_ENABLED=OFF: use GLEW (default) instead of glbinding. # Install the game directly in /usr/bin and game data in /usr/share/supertux2. # Force using physfs.so from staging since the check on PHYSFS_getPrefDir symbol # in physfs.h (CHECK_SYMBOL_EXISTS) doesn't work. # ENABLE_OPENGLES2=OFF: Disable opengles2 for now. SUPERTUX_CONF_OPTS += \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) -DGLEW_NO_GLU" \ -DENABLE_BOOST_STATIC_LIBS=OFF \ -DBUILD_DOCUMENTATION=OFF \ -DENABLE_OPENGL=ON \ -DGLBINDING_ENABLED=OFF \ -DINSTALL_SUBDIR_BIN="bin" \ -DINSTALL_SUBDIR_SHARE="share/supertux2" \ -DUSE_SYSTEM_PHYSFS=ON \ -DENABLE_OPENGLES2=OFF # Avoid incompatible posix_memalign declaration on x86 and x86_64 with # musl. # https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01425.html ifeq ($(BR2_TOOLCHAIN_USES_MUSL):$(BR2_i386)$(BR2_x86_64),y:y) define SUPERTUX_REMOVE_PEDANTIC $(SED) 's% -pedantic%%' $(@D)/CMakeLists.txt $(SED) 's%CHECK_CXX_FLAG(pedantic)%%' $(@D)/external/tinygettext/CMakeLists.txt endef SUPERTUX_POST_PATCH_HOOKS += SUPERTUX_REMOVE_PEDANTIC endif # From https://bugs.debian.org/cgi-bin/bugreport.cgi/?bug=770670 # "The problem lies within SDL_cpuinfo.h. It includes altivec.h, which by # definition provides an unconditional vector, pixel and bool define in # standard-c++ mode. In GNU-c++ mode this names are only defined # context-sensitive by cpp. SDL_cpuinfo.h is included by SDL.h. # Including altivec.h makes arbitrary code break." # # Acording to a bug report in GCC [1]: # "You need to use -std=g++11 or undefine bool after the include of altivec.h # as context sensitive keywords is not part of the C++11 standard". # So use gnu++11 instead of c++11 only for altivec system. # [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58241#c3 ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y) define SUPERTUX_FIX_ALTIVEC_ISSUE $(SED) 's%std=c++0x%std=gnu++0x%' $(@D)/external/tinygettext/CMakeLists.txt endef SUPERTUX_POST_PATCH_HOOKS += SUPERTUX_FIX_ALTIVEC_ISSUE endif $(eval $(cmake-package)) ================================================ FILE: package/supertuxkart/Config.in ================================================ config BR2_PACKAGE_SUPERTUXKART bool "supertuxkart" depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on BR2_i386 || BR2_x86_64 depends on BR2_USE_MMU # fork() depends on BR2_INSTALL_LIBSTDCPP # openal depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # 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_FREETYPE select BR2_PACKAGE_ENET select BR2_PACKAGE_HARFBUZZ select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBFRIBIDI select BR2_PACKAGE_LIBGLEW select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_LIBSQUISH select BR2_PACKAGE_LIBVORBIS select BR2_PACKAGE_NETTLE if !BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENAL select BR2_PACKAGE_XLIB_LIBXRANDR select BR2_PACKAGE_ZLIB select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID if BR2_PACKAGE_BLUEZ5_UTILS # runtime 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++, gcc >= 4.9" depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on BR2_i386 || BR2_x86_64 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_TOOLCHAIN_GCC_AT_LEAST_4_9 \ || !BR2_PACKAGE_HAS_LIBGL \ || BR2_TOOLCHAIN_USES_MUSL ================================================ FILE: package/supertuxkart/supertuxkart.hash ================================================ # Locally computed sha256 e9b02b0b11ab68aacaec38306903feffe59a501224805cd3645cebf10e880ae8 supertuxkart-1.1-src.tar.xz # From https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart/1.1/ sha1 68be26f4b15d30dede26563cbcc6de999036c5e0 supertuxkart-1.1-src.tar.xz md5 731569c58428f32a0e46943fad7ba1e3 supertuxkart-1.1-src.tar.xz # Locally computed sha256 d27207a5213f746aac53893e9ecc18456e9595d3ffa662bd1ec9eb10787c214a COPYING ================================================ FILE: package/supertuxkart/supertuxkart.mk ================================================ ################################################################################ # # supertuxkart # ################################################################################ SUPERTUXKART_VERSION = 1.1 SUPERTUXKART_SOURCE = supertuxkart-$(SUPERTUXKART_VERSION)-src.tar.xz SUPERTUXKART_SITE = http://downloads.sourceforge.net/project/supertuxkart/SuperTuxKart/$(SUPERTUXKART_VERSION) # Supertuxkart itself is GPL-3.0+, but it bundles a few libraries with different # licenses. Irrlicht, bullet and angelscript have Zlib license, while glew is # BSD-3-Clause. Since they are linked statically, the result is GPL-3.0+. SUPERTUXKART_LICENSE = GPL-3.0+ SUPERTUXKART_LICENSE_FILES = COPYING SUPERTUXKART_DEPENDENCIES = \ host-pkgconf \ freetype \ enet \ harfbuzz \ jpeg \ libcurl \ libfribidi \ libgl \ libglew \ libogg \ libpng \ libsquish \ 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. # Disable In-game recorder (there is no libopenglrecorder package) SUPERTUXKART_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF \ -DBUILD_RECORDER=OFF \ -DUSE_SYSTEM_GLEW=ON \ -DUSE_SYSTEM_ENET=ON \ -DUSE_SYSTEM_SQUISH=ON ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS),y) SUPERTUXKART_DEPENDENCIES += bluez5_utils SUPERTUXKART_CONF_OPTS += -DUSE_WIIUSE=ON -DUSE_SYSTEM_WIIUSE=ON else # Wiimote support relies on bluez5. SUPERTUXKART_CONF_OPTS += -DUSE_WIIUSE=OFF endif # Prefer openssl (the default) over nettle. ifeq ($(BR2_PACKAGE_OPENSSL),y) SUPERTUXKART_DEPENDENCIES += openssl SUPERTUXKART_CONF_OPTS += -DUSE_CRYPTO_OPENSSL=ON else SUPERTUXKART_DEPENDENCIES += nettle SUPERTUXKART_CONF_OPTS += -DUSE_CRYPTO_OPENSSL=OFF endif ifeq ($(BR2_PACKAGE_SQLITE),y) SUPERTUXKART_DEPENDENCIES += sqlite SUPERTUXKART_CONF_OPTS += -DUSE_SQLITE3=ON else SUPERTUXKART_CONF_OPTS += -DUSE_SQLITE3=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/supervisor/Config.in ================================================ config BR2_PACKAGE_SUPERVISOR bool "supervisor" depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime dependency help A client/server system that allows its users to control a number of processes on UNIX-like operating systems. http://supervisord.org/ comment "supervisor needs a python interpreter" depends on !BR2_PACKAGE_PYTHON depends on !BR2_PACKAGE_PYTHON3 ================================================ FILE: package/supervisor/S99supervisord ================================================ #!/bin/sh mkdir -p /var/log/supervisor case "$1" in start) printf "Starting supervisord: " start-stop-daemon -S -q -p /var/run/supervisord.pid --exec /usr/bin/supervisord echo "done" ;; stop) printf "Stopping supervisord: " start-stop-daemon -K -q -p /var/run/supervisord.pid echo "done" ;; restart) "$0" stop sleep 5 "$0" start ;; reload) start-stop-daemon -K -q -p /var/run/supervisord.pid -s HUP ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac exit $? ================================================ FILE: package/supervisor/supervisor.hash ================================================ # Locally calculated sha256 5b2b8882ec8a3c3733cce6965cc098b6d80b417f21229ab90b18fe551d619f90 supervisor-4.2.2.tar.gz sha256 7b8dbd54ab1543b07b2fc5f6f5ab50d89d26c1c4952af93a579d8c52c56b8de4 COPYRIGHT.txt sha256 4c35fda9f70bb7883fd94e5a4d5addd88ad1a6d5d15e21c9d17c4d96fdc5e369 LICENSES.txt ================================================ FILE: package/supervisor/supervisor.mk ================================================ ################################################################################ # # supervisor # ################################################################################ SUPERVISOR_VERSION = 4.2.2 SUPERVISOR_SITE = https://files.pythonhosted.org/packages/d3/7f/c780b7471ba0ff4548967a9f7a8b0bfce222c3a496c3dfad0164172222b0 SUPERVISOR_LICENSE = BSD-like, rdflib (http_client.py), PSF (medusa) SUPERVISOR_LICENSE_FILES = COPYRIGHT.txt LICENSES.txt SUPERVISOR_CPE_ID_VENDOR = supervisord SUPERVISOR_SETUP_TYPE = setuptools define SUPERVISOR_INSTALL_CONF_FILES $(INSTALL) -d -m 755 $(TARGET_DIR)/etc/supervisor.d $(INSTALL) -D -m 644 package/supervisor/supervisord.conf \ $(TARGET_DIR)/etc/supervisord.conf endef SUPERVISOR_POST_INSTALL_TARGET_HOOKS += SUPERVISOR_INSTALL_CONF_FILES define SUPERVISOR_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/supervisor/S99supervisord \ $(TARGET_DIR)/etc/init.d/S99supervisord endef define SUPERVISOR_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/supervisor/supervisord.service \ $(TARGET_DIR)/usr/lib/systemd/system/supervisord.service endef $(eval $(python-package)) ================================================ FILE: package/supervisor/supervisord.conf ================================================ [unix_http_server] file = /var/run/supervisor.sock [supervisord] logfile = /var/log/supervisor/supervisord.log logfile_maxbytes = 200KB logfile_backups = 1 pidfile = /var/run/supervisord.pid childlogdir = /var/log/supervisor [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl = unix:///var/run/supervisor.sock [include] files = /etc/supervisor.d/*.conf ================================================ FILE: package/supervisor/supervisord.service ================================================ [Unit] Description=Process Control System After=syslog.target [Service] ExecStart=/usr/bin/supervisord -n Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/suricata/0001-python-ensure-proper-shabang-on-python-scripts.patch ================================================ From 44fe2328b715db25134ee095526d2fa47e6cd834 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Wed, 1 Jan 2020 15:25:57 +0100 Subject: [PATCH] python: ensure proper shabang on python scripts When instlling python scripts, distutils would use the python used to run setup.py as shabang for the scripts it installs. However, when cross-compiling, this is most often not correct. Instead, using '/usr/bin/env python' is guaranteed to find the proper python in the PATH, so we need to instruct setyup.py to use that as the executable. [yann.morin.1998@free.fr: - author did not provide their SoB, but it's simple enough to not require it for once - provide proper commit log ] Signed-off-by: Yann E. MORIN [Fabrice: update for 6.0.0] Signed-off-by: Fabrice Fontaine --- python/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/Makefile.am b/python/Makefile.am index 59d195f29..a41604f72 100644 --- a/python/Makefile.am +++ b/python/Makefile.am @@ -6,11 +6,11 @@ EXTRA_DIST = setup.py \ if HAVE_PYTHON_DISTUTILS all-local: cd $(srcdir) && \ - $(HAVE_PYTHON) setup.py build --build-base "$(abs_builddir)" + $(HAVE_PYTHON) setup.py build -e "/usr/bin/env python" --build-base "$(abs_builddir)" install-exec-local: cd $(srcdir) && \ - $(HAVE_PYTHON) setup.py build --build-base "$(abs_builddir)" \ + $(HAVE_PYTHON) setup.py build -e "/usr/bin/env python" --build-base "$(abs_builddir)" \ install --prefix $(DESTDIR)$(prefix) uninstall-local: -- 2.20.1 ================================================ FILE: package/suricata/0002-configure.ac-allow-the-user-to-override-RUST_TARGET.patch ================================================ From 7ab4d5eb55e1d3900390b76e5f46e80e22d4e80e Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 10 Oct 2020 21:34:21 +0200 Subject: [PATCH] configure.ac: allow the user to override RUST_TARGET When cross-compiling, RUST_TARGET is not always equal to host_triplet (e.g. buildroot) so allow the user to override this default value through RUST_TARGET environment variable Signed-off-by: Fabrice Fontaine --- configure.ac | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 32c230209..7d7c9373f 100644 --- a/configure.ac +++ b/configure.ac @@ -2489,7 +2489,12 @@ fi have_rust_vendor="no" if test "x$cross_compiling" = "xyes"; then - RUST_SURICATA_LIB_XC_DIR="${host_alias}/" + if test "x$RUST_TARGET" != "x"; then + RUST_SURICATA_LIB_XC_DIR="$RUST_TARGET/" + AC_SUBST([RUST_TARGET],["--target $RUST_TARGET"]) + else + RUST_SURICATA_LIB_XC_DIR="${host_alias}/" + fi else if test "x$CARGO_BUILD_TARGET" = "x"; then RUST_SURICATA_LIB_XC_DIR= -- 2.28.0 ================================================ FILE: package/suricata/Config.in ================================================ config BR2_PACKAGE_SURICATA bool "suricata" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_HOST_RUSTC select BR2_PACKAGE_JANSSON select BR2_PACKAGE_LIBHTP select BR2_PACKAGE_LIBPCAP select BR2_PACKAGE_LIBYAML select BR2_PACKAGE_PCRE help Suricata is a free and open source, mature, fast and robust network threat detection engine. The Suricata engine is capable of real time intrusion detection (IDS), inline intrusion prevention (IPS), network security monitoring (NSM) and offline pcap processing. https://suricata-ids.org comment "suricata needs a toolchain w/ wchar, threads" depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/suricata/S99suricata ================================================ #!/bin/sh DAEMON=suricata PIDFILE=/var/run/$DAEMON.pid SURICATA_ARGS="-c /etc/suricata/suricata.yaml -i eth0" SURICATA_RELOAD=0 [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" mkdir -p /var/log/suricata start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/bin/$DAEMON" \ -- $SURICATA_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } # SIGUSR2 makes suricata reload rules reload() { printf 'Reloading %s: ' "$DAEMON" start-stop-daemon -K -s "$SURICATA_RELOAD" -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } case "$1" in start|stop|restart|reload) "$1";; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/suricata/suricata.hash ================================================ # Locally computed: sha256 a8f197e33d1678689ebbf7bc1abe84934c465d22c504c47c2c7e9b74aa042d0d suricata-6.0.4.tar.gz # Hash for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/suricata/suricata.mk ================================================ ################################################################################ # # suricata # ################################################################################ SURICATA_VERSION = 6.0.4 SURICATA_SITE = https://www.openinfosecfoundation.org/download SURICATA_LICENSE = GPL-2.0 SURICATA_LICENSE_FILES = COPYING LICENSE SURICATA_CPE_ID_VENDOR = oisf # 0001-python-ensure-proper-shabang-on-python-scripts.patch # 0002-configure.ac-allow-the-user-to-override-RUST_TARGET.patch SURICATA_AUTORECONF = YES SURICATA_DEPENDENCIES = \ host-pkgconf \ host-rustc \ jansson \ $(if $(BR2_PACKAGE_LIBCAP_NG),libcap-ng) \ $(if $(BR2_PACKAGE_LIBEVENT),libevent) \ libhtp \ $(if $(BR2_PACKAGE_LIBNFNETLINK),libnfnetlink) \ libpcap \ libyaml \ $(if $(BR2_PACKAGE_LZ4),lz4) \ pcre \ $(if $(BR2_PACKAGE_XZ),xz) SURICATA_CONF_ENV = \ ac_cv_path_HAVE_SPHINXBUILD=no \ CARGO_HOME=$(HOST_DIR)/share/cargo \ RUST_TARGET=$(RUSTC_TARGET_NAME) SURICATA_CONF_OPTS = \ --disable-gccprotect \ --disable-pie \ --disable-suricata-update \ --enable-non-bundled-htp # install: install binaries # install-conf: install initial configuration files # install-full: install binaries, configuration and rules (rules will be # download through wget/curl) SURICATA_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install install-conf ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) SURICATA_CONF_ENV += LIBS=-latomic endif ifeq ($(BR2_PACKAGE_FILE),y) SURICATA_DEPENDENCIES += file SURICATA_CONF_OPTS += --enable-libmagic else SURICATA_CONF_OPTS += --disable-libmagic endif ifeq ($(BR2_PACKAGE_LIBMAXMINDDB),y) SURICATA_DEPENDENCIES += libmaxminddb SURICATA_CONF_OPTS += --enable-geoip else SURICATA_CONF_OPTS += --disable-geoip endif ifeq ($(BR2_PACKAGE_HIREDIS),y) SURICATA_DEPENDENCIES += hiredis SURICATA_CONF_OPTS += --enable-hiredis else SURICATA_CONF_OPTS += --disable-hiredis endif ifeq ($(BR2_PACKAGE_LIBNET),y) SURICATA_DEPENDENCIES += libnet SURICATA_CONF_OPTS += --with-libnet-includes=$(STAGING_DIR)/usr/include endif ifeq ($(BR2_PACKAGE_LIBNETFILTER_LOG),y) SURICATA_DEPENDENCIES += libnetfilter_log SURICATA_CONF_OPTS += --enable-nflog else SURICATA_CONF_OPTS += --disable-nflog endif ifeq ($(BR2_PACKAGE_LIBNETFILTER_QUEUE),y) SURICATA_DEPENDENCIES += libnetfilter_queue SURICATA_CONF_OPTS += --enable-nfqueue else SURICATA_CONF_OPTS += --disable-nfqueue endif ifeq ($(BR2_PACKAGE_LIBNSPR),y) SURICATA_DEPENDENCIES += libnspr SURICATA_CONF_OPTS += --enable-nspr else SURICATA_CONF_OPTS += --disable-nspr endif ifeq ($(BR2_PACKAGE_LIBNSS),y) SURICATA_DEPENDENCIES += libnss SURICATA_CONF_OPTS += --enable-nss else SURICATA_CONF_OPTS += --disable-nss endif ifeq ($(BR2_PACKAGE_LUA),y) SURICATA_CONF_OPTS += --enable-lua SURICATA_DEPENDENCIES += lua else SURICATA_CONF_OPTS += --disable-lua endif ifeq ($(BR2_PACKAGE_LUAJIT),y) SURICATA_CONF_OPTS += --enable-luajit SURICATA_DEPENDENCIES += luajit else SURICATA_CONF_OPTS += --disable-luajit endif ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y) SURICATA_CONF_OPTS += --enable-python SURICATA_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON),python,python3) else SURICATA_CONF_OPTS += --disable-python endif define SURICATA_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/suricata/S99suricata \ $(TARGET_DIR)/etc/init.d/S99suricata endef define SURICATA_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/suricata/suricata.service \ $(TARGET_DIR)/usr/lib/systemd/system/suricata.service endef $(eval $(autotools-package)) ================================================ FILE: package/suricata/suricata.service ================================================ [Unit] Description=Suricata Intrusion Detection Service After=network.target [Service] EnvironmentFile=-/etc/default/suricata ExecStartPre=/bin/rm -f /var/run/suricata.pid ExecStartPre=/usr/bin/mkdir -p /var/log/suricata ExecStart=/usr/bin/suricata -c /etc/suricata/suricata.yaml -i eth0 --pidfile /var/run/suricata.pid ExecReload=/bin/kill -USR2 $MAINPID Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/swig/Config.in.host ================================================ config BR2_PACKAGE_HOST_SWIG bool "host swig" help swig is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. http://www.swig.org/ ================================================ FILE: package/swig/swig.hash ================================================ # Locally computed: sha256 d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc swig-4.0.2.tar.gz sha256 f53abaeed775018d519a1b9615f0ca17894772bd9ca21c2a156bf340ac41c13e LICENSE sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE-GPL sha256 7f50d942373a871211c5efee03f3db2f9efd1cff1002b0ef8e3748baa611a5c2 LICENSE-UNIVERSITIES ================================================ FILE: package/swig/swig.mk ================================================ ################################################################################ # # swig # ################################################################################ SWIG_VERSION_MAJOR = 4.0 SWIG_VERSION = $(SWIG_VERSION_MAJOR).2 SWIG_SITE = http://downloads.sourceforge.net/project/swig/swig/swig-$(SWIG_VERSION) HOST_SWIG_DEPENDENCIES = host-bison host-pcre HOST_SWIG_CONF_OPTS = \ --with-pcre \ --disable-ccache \ --without-octave SWIG_LICENSE = GPL-3.0+, BSD-2-Clause, BSD-3-Clause SWIG_LICENSE_FILES = LICENSE LICENSE-GPL LICENSE-UNIVERSITIES # CMake looks first at swig3.0, then swig2.0 and then swig. However, # when doing the search, it will look into the PATH for swig2.0 first, # and then for swig. # While the PATH contains first our $(HOST_DIR)/bin, it also contains # /usr/bin and other system directories. Therefore, if there is an # installed swig3.0 on the system, it will get the preference over the # swig installed in $(HOST_DIR)/bin, which isn't nice. To prevent # this from happening we create a symbolic link swig3.0 -> swig, so that # our swig always gets used. define HOST_SWIG_INSTALL_SYMLINK ln -fs swig $(HOST_DIR)/bin/swig$(SWIG_VERSION_MAJOR) ln -fs swig $(HOST_DIR)/bin/swig3.0 endef HOST_SWIG_POST_INSTALL_HOOKS += HOST_SWIG_INSTALL_SYMLINK $(eval $(host-autotools-package)) SWIG = $(HOST_DIR)/bin/swig$(SWIG_VERSION_MAJOR) ================================================ FILE: package/swupdate/10-mongoose-args ================================================ SWUPDATE_WEBSERVER_ARGS="-r /var/www/swupdate ${SWUPDATE_MONGOOSE_EXTRA_ARGS:--p 8080}" ================================================ FILE: package/swupdate/90-start-progress ================================================ exec /usr/bin/swupdate-progress -w -r & ================================================ FILE: package/swupdate/Config.in ================================================ config BR2_PACKAGE_SWUPDATE bool "swupdate" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() # swupdate requires a parser and uses libconfig as default select BR2_PACKAGE_LIBCONFIG if !BR2_PACKAGE_JSON_C && \ !BR2_PACKAGE_HAS_LUAINTERPRETER help swupdate provides a reliable way to update the software on an embedded system. swupdate is highly configurable to fit the targets requirements and to minimize the footprint. The provided default configuration file BR2_PACKAGE_SWUPDATE_CONFIG will enable swupdate with an embedded webserver, a parser and a handler for raw NAND or NOR flash. The default configuration file builds a reasonable firmware update system with minimal external dependencies in mind. If you like to use your own modified configuration, you have to select the necessary packages manually: * Select BR2_PACKAGE_LUA or BR2_PACKAGE_LUAJIT if you want want to have Lua support. * Select BR2_PACKAGE_LIBCURL if you want to use the download feature. * Select BR2_PACKAGE_OPENSSL or BR2_PACKAGE_MBEDTLS if 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_ZSTD if you want to deal with zstd compressed archives. * Select BR2_PACKAGE_ZEROMQ to add support for using a remote handler. * Select BR2_PACKAGE_LIBRSYNC to add support for using rdiff handler. * Select BR2_PACKAGE_LIBUBOOTENV to add support for setting the U-Boot environment. * Select BR2_PACKAGE_LIBGPIOD to add support for microcontroller firmware update. * Select BR2_PACKAGE_EFIBOOTMGR to add support for EFI Boot Guard. * Select BR2_PACKAGE_LIBCURL, BR2_PACKAGE_JSON_C, BR2_PACKAGE_LIBWEBSOCKETS, and BR2_PACKAGE_LIBURIPARSER to add support for the SWU forwarder. https://sbabic.github.io/swupdate if BR2_PACKAGE_SWUPDATE config BR2_PACKAGE_SWUPDATE_CONFIG string "swupdate configuration file" default "package/swupdate/swupdate.config" help Path to the swupdate configuration file. I you wish to use your own modified swupdate configuration file specify the config file location with this option. config BR2_PACKAGE_SWUPDATE_USB bool "swupdate usb" depends on BR2_PACKAGE_SYSTEMD help Enable update from USB disk. comment "swupdate usb needs systemd" depends on !BR2_PACKAGE_SYSTEMD config BR2_PACKAGE_SWUPDATE_WEBSERVER bool "swupdate webserver" default y help Enable update from remote using a web server on the target. config BR2_PACKAGE_SWUPDATE_INSTALL_WEBSITE bool "install default website" default y depends on BR2_PACKAGE_SWUPDATE_WEBSERVER help Install the provided website to /var/www/swupdate. This is necessary if you want to run swupdate with the embedded webserver and do not provide an own website to be installed to /var/www/swupdate. endif comment "swupdate needs a toolchain w/ dynamic library, threads" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/swupdate/S80swupdate ================================================ #!/bin/sh DAEMON="swupdate" DAEMON_WRAPPER="/usr/lib/swupdate/swupdate.sh" PIDFILE="/var/run/$DAEMON.pid" start() { printf 'Starting %s: ' "$DAEMON" start-stop-daemon -S -q -b -m -p "$PIDFILE" -x $DAEMON_WRAPPER status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature (does not # reconfigure/restart on SIGHUP, just closes all open files). restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/swupdate/swupdate-progress.service ================================================ [Unit] Description=swupdate progress service After=swupdate.service [Service] ExecStart=/usr/bin/swupdate-progress -r -w [Install] WantedBy=swupdate.service ================================================ FILE: package/swupdate/swupdate-usb.rules ================================================ ACTION=="add", KERNEL=="sd*", SUBSYSTEM=="block", ENV{ID_BUS}=="usb", ENV{ID_FS_USAGE}=="filesystem", TAG+="systemd", ENV{SYSTEMD_WANTS}+="swupdate-usb@%k.service" ================================================ FILE: package/swupdate/swupdate-usb@.service ================================================ [Unit] Description=usb media swupdate service Requires=swupdate-progress.service [Service] ExecStartPre=/bin/mount /dev/%I /mnt ExecStart=/bin/sh -c "swupdate-client -v /mnt/*.swu" ExecStopPost=/bin/umount /mnt ================================================ FILE: package/swupdate/swupdate.config ================================================ # # Automatically generated file; DO NOT EDIT. # Swupdate Configuration # CONFIG_HAVE_DOT_CONFIG=y # # Swupdate Settings # # # General Configuration # # CONFIG_CURL is not set # CONFIG_CURL_SSL is not set # CONFIG_SYSTEMD is not set CONFIG_DEFAULT_CONFIG_FILE="/etc/swupdate.cfg" CONFIG_SCRIPTS=y # CONFIG_HW_COMPATIBILITY is not set CONFIG_SW_VERSIONS_FILE="/etc/sw-versions" # # Socket Paths # CONFIG_SOCKET_CTRL_PATH="/tmp/sockinstctrl" CONFIG_SOCKET_PROGRESS_PATH="/tmp/swupdateprog" CONFIG_SOCKET_REMOTE_HANDLER_DIRECTORY="/tmp/" # # MTD support needs libmtd # # # Lua support needs a Lua interpreter # # CONFIG_FEATURE_SYSLOG is not set # # Build Options # CONFIG_CROSS_COMPILE="" CONFIG_SYSROOT="" CONFIG_EXTRA_CFLAGS="" CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDLIBS="" # # Debugging Options # # CONFIG_DEBUG is not set # CONFIG_WERROR is not set # CONFIG_NOCLEANUP is not set # # EFI Boot Guard needs libebgenv and libz # CONFIG_BOOTLOADER_NONE=y # CONFIG_BOOTLOADER_GRUB is not set # # U-Boot support needs libubootenv, libz # CONFIG_SSL_IMPL_NONE=y # # Image downloading support needs libcurl # # # Hash checking needs an SSL implementation # # # Image signature verification needs an SSL implementation # # # Image encryption needs an SSL implementation # # CONFIG_SURICATTA is not set CONFIG_WEBSERVER=y CONFIG_MONGOOSE=y CONFIG_MONGOOSEIPV6=y # # SSL support needs an SSL implementation # # # Parser Features # CONFIG_LIBCONFIG=y CONFIG_PARSERROOT="" # # JSON config parser support needs json-c # # CONFIG_SETSWDESCRIPTION is not set # # Image Handlers # # # ubivol support needs libubi # # CONFIG_DISKPART is not set CONFIG_RAW=y # CONFIG_RDIFFHANDLER is not set # CONFIG_SHELLSCRIPTHANDLER is not set # # archive support needs libarchive # # # remote handler needs zeromq # # # swuforward handler needs json-c and curl # # # SWU forwarder requires libcurl # # # swuforward handler needs json-c and curl # # CONFIG_BOOTLOADERHANDLER is not set # # Microcontroller handler depends on libgpiod # ================================================ FILE: package/swupdate/swupdate.hash ================================================ # Locally calculated sha256 5afe78ae94e869bcb911d8592251641cdab80096d8e5149d483054ea49f9aab8 swupdate-2021.04.tar.gz sha256 4cf04ed34ff0ebbf5c71345b56e6af5093fc17206364cca0ebbae92ef3940683 LICENSES/BSD-1-Clause.txt sha256 3139f288c2e4cbe4a8c0e8c13c82661f3c798d446e1fbbc27a48a69aa7b4ec0d LICENSES/BSD-2-Clause.txt sha256 e27a3e87706b3aa5ff2e50eaafe2e6ed5397fbf2d7679eaf444a6d000518a3a6 LICENSES/BSD-3-Clause.txt sha256 0558101984550fa84d1d13c2af11d116c20079d2be58711e8d99cadce7009192 LICENSES/CC0-1.0.txt sha256 6e4efcb1952c7976d3fae93b802c591384c4f50949225a802adf41bc266fa3e6 LICENSES/CC-BY-ND-4.0.txt sha256 5d51b52a40391a26cbb2accf5dc5d1c165de49a022d9d5efb50b22204d2682ec LICENSES/GPL-2.0-only.txt sha256 43fd695e9b198a9a4997cc2d02e10d26cae937e2c4930b9eff9c6d349c85cd32 LICENSES/GPL-2.0-or-later.txt sha256 492e801f1b0632185431472f148885a4fe8e990b10da57b4986a8bcf140a5374 LICENSES/ISC.txt sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSES/LGPL-2.1-or-later.txt sha256 43492b377cf2fb67942d1dd231146bd4e6578646ad13ef289297c9dd75cbc478 LICENSES/LicenseRef-OpenSSL-Exception.txt sha256 89807acf2309bd285f033404ee78581602f3cd9b819a16ac2f0e5f60ff4a473e LICENSES/MIT.txt ================================================ FILE: package/swupdate/swupdate.mk ================================================ ################################################################################ # # swupdate # ################################################################################ SWUPDATE_VERSION = 2021.04 SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION)) SWUPDATE_LICENSE = GPL-2.0, GPL-2.0+ with OpenSSL exception, LGPL-2.1+, MIT, ISC, BSD-1-Clause, BSD-2-Clause, BSD-3-Clause, CC0-1.0, CC-BY-ND-4.0 SWUPDATE_LICENSE_FILES = LICENSES/BSD-1-Clause.txt \ LICENSES/BSD-2-Clause.txt \ LICENSES/BSD-3-Clause.txt \ LICENSES/CC0-1.0.txt \ LICENSES/CC-BY-ND-4.0.txt \ LICENSES/GPL-2.0-only.txt \ LICENSES/GPL-2.0-or-later.txt \ LICENSES/ISC.txt \ LICENSES/LGPL-2.1-or-later.txt \ LICENSES/LicenseRef-OpenSSL-Exception.txt \ LICENSES/MIT.txt # swupdate uses $CROSS-cc instead of $CROSS-gcc, which is not # available in all external toolchains, and use CC for linking. Ensure # TARGET_CC is used for both. SWUPDATE_MAKE_ENV = CC="$(TARGET_CC)" LD="$(TARGET_CC)" SKIP_STRIP=y # swupdate bundles its own version of mongoose (version 6.16) ifeq ($(BR2_PACKAGE_E2FSPROGS),y) SWUPDATE_DEPENDENCIES += e2fsprogs endif ifeq ($(BR2_PACKAGE_EFIBOOTMGR),y) SWUPDATE_DEPENDENCIES += efibootmgr SWUPDATE_MAKE_ENV += HAVE_LIBEBGENV=y else SWUPDATE_MAKE_ENV += HAVE_LIBEBGENV=n endif ifeq ($(BR2_PACKAGE_JSON_C),y) SWUPDATE_DEPENDENCIES += json-c SWUPDATE_MAKE_ENV += HAVE_JSON_C=y 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_UTIL_LINUX_LIBBLKID),y) SWUPDATE_DEPENDENCIES += util-linux SWUPDATE_MAKE_ENV += HAVE_LIBBLKID=y else SWUPDATE_MAKE_ENV += HAVE_LIBBLKID=n endif ifeq ($(BR2_PACKAGE_LIBCONFIG),y) SWUPDATE_DEPENDENCIES += libconfig SWUPDATE_MAKE_ENV += HAVE_LIBCONFIG=y else SWUPDATE_MAKE_ENV += HAVE_LIBCONFIG=n endif ifeq ($(BR2_PACKAGE_LIBCURL),y) SWUPDATE_DEPENDENCIES += libcurl SWUPDATE_MAKE_ENV += HAVE_LIBCURL=y else SWUPDATE_MAKE_ENV += HAVE_LIBCURL=n endif ifeq ($(BR2_PACKAGE_LIBGPIOD),y) SWUPDATE_DEPENDENCIES += libgpiod SWUPDATE_MAKE_ENV += HAVE_LIBGPIOD=y else SWUPDATE_MAKE_ENV += HAVE_LIBGPIOD=n endif ifeq ($(BR2_PACKAGE_LIBURIPARSER),y) SWUPDATE_DEPENDENCIES += liburiparser SWUPDATE_MAKE_ENV += HAVE_URIPARSER=y else SWUPDATE_MAKE_ENV += HAVE_URIPARSER=n endif ifeq ($(BR2_PACKAGE_LIBWEBSOCKETS),y) SWUPDATE_DEPENDENCIES += libwebsockets SWUPDATE_MAKE_ENV += HAVE_LIBWEBSOCKETS=y else SWUPDATE_MAKE_ENV += HAVE_LIBWEBSOCKETS=n endif ifeq ($(BR2_PACKAGE_HAS_LUAINTERPRETER),y) SWUPDATE_DEPENDENCIES += luainterpreter host-pkgconf # defines the base name for the pkg-config file ("lua" or "luajit") define SWUPDATE_SET_LUA_VERSION $(call KCONFIG_SET_OPT,CONFIG_LUAPKG,$(BR2_PACKAGE_PROVIDES_LUAINTERPRETER)) endef SWUPDATE_MAKE_ENV += HAVE_LUA=y else SWUPDATE_MAKE_ENV += HAVE_LUA=n endif ifeq ($(BR2_PACKAGE_MTD),y) SWUPDATE_DEPENDENCIES += mtd SWUPDATE_MAKE_ENV += HAVE_LIBMTD=y SWUPDATE_MAKE_ENV += HAVE_LIBUBI=y else SWUPDATE_MAKE_ENV += HAVE_LIBMTD=n SWUPDATE_MAKE_ENV += HAVE_LIBUBI=n endif # OpenSSL or mbedTLS ifeq ($(BR2_PACKAGE_OPENSSL),y) SWUPDATE_DEPENDENCIES += openssl SWUPDATE_MAKE_ENV += HAVE_LIBSSL=y SWUPDATE_MAKE_ENV += HAVE_LIBCRYPTO=y SWUPDATE_MAKE_ENV += HAVE_MBEDTLS=n else SWUPDATE_MAKE_ENV += HAVE_LIBSSL=n SWUPDATE_MAKE_ENV += HAVE_LIBCRYPTO=n ifeq ($(BR2_PACKAGE_MBEDTLS),y) SWUPDATE_DEPENDENCIES += mbedtls SWUPDATE_MAKE_ENV += HAVE_MBEDTLS=y else SWUPDATE_MAKE_ENV += HAVE_MBEDTLS=n endif endif ifeq ($(BR2_PACKAGE_P11_KIT),y) SWUPDATE_DEPENDENCIES += p11-kit SWUPDATE_MAKE_ENV += HAVE_P11KIT=y else SWUPDATE_MAKE_ENV += HAVE_P11KIT=n endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) SWUPDATE_DEPENDENCIES += systemd define SWUPDATE_SET_SYSTEMD $(call KCONFIG_ENABLE_OPT,CONFIG_SYSTEMD) endef else define SWUPDATE_SET_SYSTEMD $(call KCONFIG_DISABLE_OPT,CONFIG_SYSTEMD) endef endif ifeq ($(BR2_PACKAGE_LIBUBOOTENV),y) SWUPDATE_DEPENDENCIES += libubootenv SWUPDATE_MAKE_ENV += HAVE_LIBUBOOTENV=y else SWUPDATE_MAKE_ENV += HAVE_LIBUBOOTENV=n endif ifeq ($(BR2_PACKAGE_WOLFSSL),y) SWUPDATE_DEPENDENCIES += wolfssl SWUPDATE_MAKE_ENV += HAVE_WOLFSSL=y else SWUPDATE_MAKE_ENV += HAVE_WOLFSSL=n endif ifeq ($(BR2_PACKAGE_ZEROMQ),y) SWUPDATE_DEPENDENCIES += zeromq SWUPDATE_MAKE_ENV += HAVE_LIBZEROMQ=y else SWUPDATE_MAKE_ENV += HAVE_LIBZEROMQ=n endif ifeq ($(BR2_PACKAGE_ZLIB),y) SWUPDATE_DEPENDENCIES += zlib SWUPDATE_MAKE_ENV += HAVE_ZLIB=y else SWUPDATE_MAKE_ENV += HAVE_ZLIB=n endif ifeq ($(BR2_PACKAGE_ZSTD),y) SWUPDATE_DEPENDENCIES += zstd SWUPDATE_MAKE_ENV += HAVE_ZSTD=y else SWUPDATE_MAKE_ENV += HAVE_ZSTD=n endif ifeq ($(BR2_PACKAGE_LIBRSYNC),y) SWUPDATE_DEPENDENCIES += librsync endif ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER),y) define SWUPDATE_SET_WEBSERVER $(call KCONFIG_ENABLE_OPT,CONFIG_WEBSERVER) endef else define SWUPDATE_SET_WEBSERVER $(call KCONFIG_DISABLE_OPT,CONFIG_WEBSERVER) endef endif SWUPDATE_BUILD_CONFIG = $(@D)/.config SWUPDATE_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_SWUPDATE_CONFIG)) SWUPDATE_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig SWUPDATE_MAKE_OPTS = \ CROSS_COMPILE="$(TARGET_CROSS)" \ CONFIG_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \ CONFIG_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" define SWUPDATE_KCONFIG_FIXUP_CMDS $(SWUPDATE_SET_LUA_VERSION) $(SWUPDATE_SET_SYSTEMD) $(SWUPDATE_SET_WEBSERVER) endef define SWUPDATE_BUILD_CMDS $(TARGET_MAKE_ENV) $(SWUPDATE_MAKE_ENV) $(MAKE) -C $(@D) $(SWUPDATE_MAKE_OPTS) endef define SWUPDATE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(SWUPDATE_MAKE_ENV) $(MAKE) -C $(@D) \ $(SWUPDATE_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install $(if $(BR2_PACKAGE_SWUPDATE_INSTALL_WEBSITE), \ mkdir -p $(TARGET_DIR)/var/www/swupdate; \ cp -dpfr $(@D)/examples/www/v2/* $(TARGET_DIR)/var/www/swupdate) endef # Checks to give errors that the user can understand # Must be before we call to kconfig-package ifeq ($(BR2_PACKAGE_SWUPDATE)$(BR_BUILDING),yy) ifeq ($(call qstrip,$(BR2_PACKAGE_SWUPDATE_CONFIG)),) $(error No Swupdate configuration file specified, check your BR2_PACKAGE_SWUPDATE_CONFIG setting) endif endif # Services and configs derived from meta-swupdate(MIT license) # https://github.com/sbabic/meta-swupdate/tree/master/recipes-support/swupdate/swupdate define SWUPDATE_INSTALL_COMMON mkdir -p $(TARGET_DIR)/etc/swupdate/conf.d \ $(TARGET_DIR)/usr/lib/swupdate/conf.d $(INSTALL) -D -m 755 $(SWUPDATE_PKGDIR)/swupdate.sh \ $(TARGET_DIR)/usr/lib/swupdate/swupdate.sh $(if $(BR2_PACKAGE_SWUPDATE_WEBSERVER), \ $(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/10-mongoose-args \ $(TARGET_DIR)/usr/lib/swupdate/conf.d/10-mongoose-args) endef define SWUPDATE_INSTALL_INIT_SYSTEMD $(SWUPDATE_INSTALL_COMMON) $(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/swupdate.service \ $(TARGET_DIR)/usr/lib/systemd/system/swupdate.service $(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/swupdate.socket \ $(TARGET_DIR)/usr/lib/systemd/system/swupdate.socket $(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/swupdate-usb@.service \ $(TARGET_DIR)/usr/lib/systemd/system/swupdate-usb@.service $(if $(BR2_PACKAGE_SWUPDATE_USB), \ $(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/swupdate-usb.rules \ $(TARGET_DIR)/lib/udev/rules.d/swupdate-usb.rules) $(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/swupdate-progress.service \ $(TARGET_DIR)/usr/lib/systemd/system/swupdate-progress.service $(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/tmpfiles-swupdate.conf \ $(TARGET_DIR)/usr/lib/tmpfiles.d/tmpfiles-swupdate.conf endef define SWUPDATE_INSTALL_INIT_SYSV $(SWUPDATE_INSTALL_COMMON) $(INSTALL) -D -m 755 $(SWUPDATE_PKGDIR)/S80swupdate \ $(TARGET_DIR)/etc/init.d/S80swupdate $(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/90-start-progress \ $(TARGET_DIR)/usr/lib/swupdate/conf.d/90-start-progress endef $(eval $(kconfig-package)) ================================================ FILE: package/swupdate/swupdate.service ================================================ [Unit] Description=SWUpdate daemon Documentation=https://github.com/sbabic/swupdate Documentation=https://sbabic.github.io/swupdate [Service] ExecStart=/usr/lib/swupdate/swupdate.sh KillMode=mixed [Install] WantedBy=multi-user.target ================================================ FILE: package/swupdate/swupdate.sh ================================================ #!/bin/sh # Based on example script created by Adrian Freihofer # https://github.com/sbabic/meta-swupdate/blob/master/recipes-support/swupdate/swupdate/swupdate.sh # Override these variables in sourced script(s) located # in /usr/lib/swupdate/conf.d or /etc/swupdate/conf.d # NOTE: There are substrings used in some swupdate commands which will # need to be wrapped in a script to prevent tokenizing # ( -p/-P post/pre cmds are good examples) SWUPDATE_ARGS="-v ${SWUPDATE_EXTRA_ARGS}" SWUPDATE_WEBSERVER_ARGS="" SWUPDATE_SURICATTA_ARGS="" # source all files from /etc/swupdate/conf.d and /usr/lib/swupdate/conf.d/ # A file found in /etc replaces the same file in /usr for f in `(test -d /usr/lib/swupdate/conf.d/ && ls -1 /usr/lib/swupdate/conf.d/; test -d /etc/swupdate/conf.d && ls -1 /etc/swupdate/conf.d) | sort -u`; do if [ -f /etc/swupdate/conf.d/$f ]; then . /etc/swupdate/conf.d/$f else . /usr/lib/swupdate/conf.d/$f fi done if [ "$SWUPDATE_WEBSERVER_ARGS" != "" -a "$SWUPDATE_SURICATTA_ARGS" != "" ]; then exec /usr/bin/swupdate $SWUPDATE_ARGS -w "$SWUPDATE_WEBSERVER_ARGS" -u "$SWUPDATE_SURICATTA_ARGS" elif [ "$SWUPDATE_WEBSERVER_ARGS" != "" ]; then exec /usr/bin/swupdate $SWUPDATE_ARGS -w "$SWUPDATE_WEBSERVER_ARGS" elif [ "$SWUPDATE_SURICATTA_ARGS" != "" ]; then exec /usr/bin/swupdate $SWUPDATE_ARGS -u "$SWUPDATE_SURICATTA_ARGS" else exec /usr/bin/swupdate $SWUPDATE_ARGS fi ================================================ FILE: package/swupdate/swupdate.socket ================================================ [Unit] Description=SWUpdate socket listener Documentation=https://github.com/sbabic/swupdate Documentation=https://sbabic.github.io/swupdate [Socket] ListenStream=/tmp/sockinstctrl ListenStream=/tmp/swupdateprog [Install] WantedBy=sockets.target ================================================ FILE: package/swupdate/tmpfiles-swupdate.conf ================================================ X /tmp/datadst X /tmp/scripts ================================================ FILE: package/sylpheed/0001-harden-link-checker-before-accepting-click.patch ================================================ From ac286a71ed78429e16c612161251b9ea90ccd431 Mon Sep 17 00:00:00 2001 From: Paul Date: Sun, 23 May 2021 12:16:40 +0100 Subject: [PATCH] harden link checker before accepting click [Retrieved from: https://git.claws-mail.org/?p=claws.git;a=commit;h=ac286a71ed78429e16c612161251b9ea90ccd431] Signed-off-by: Fabrice Fontaine --- src/textview.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/textview.c b/src/textview.c index 62ad46eaf..3cdf5d911 100644 --- a/src/textview.c +++ b/src/textview.c @@ -2885,7 +2885,7 @@ gboolean textview_uri_security_check(TextView *textview, ClickableText *uri) gboolean retval = TRUE; if (is_uri_string(uri->uri) == FALSE) - return TRUE; + return FALSE; visible_str = textview_get_visible_uri(textview, uri); if (visible_str == NULL) @@ -2922,6 +2922,8 @@ gboolean textview_uri_security_check(TextView *textview, ClickableText *uri) if (aval == G_ALERTALTERNATE) retval = TRUE; } + if (strlen(uri->uri) > get_uri_len(uri->uri)) + retval = FALSE; g_free(visible_str); -- 2.25.1 ================================================ FILE: package/sylpheed/Config.in ================================================ config BR2_PACKAGE_SYLPHEED bool "sylpheed" depends on BR2_PACKAGE_LIBGTK2 help lightweight and user-friendly e-mail client. http://sylpheed.sraoss.jp/en/ ================================================ FILE: package/sylpheed/sylpheed.hash ================================================ # Locally calculated after checking pgp signature sha256 0d6bc5eb46f5d0a463757c62bc80b00d219b294b3c3662840e4540f6db2e3e49 sylpheed-3.7.0.tar.xz sha256 c38aee9e3c8c4d5d594ff548a1be05453023016d6286931f6512db215ec1fd42 COPYING sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING.LIB ================================================ FILE: package/sylpheed/sylpheed.mk ================================================ ################################################################################ # # sylpheed # ################################################################################ SYLPHEED_VERSION_MAJOR = 3.7 SYLPHEED_VERSION = $(SYLPHEED_VERSION_MAJOR).0 SYLPHEED_SOURCE = sylpheed-$(SYLPHEED_VERSION).tar.xz SYLPHEED_SITE = http://sylpheed.sraoss.jp/sylpheed/v$(SYLPHEED_VERSION_MAJOR) SYLPHEED_LICENSE = GPL-2.0+ (executables), LGPL-2.1+ (library, attachment plugin) SYLPHEED_LICENSE_FILES = COPYING COPYING.LIB SYLPHEED_CPE_ID_VENDOR = sylpheed_project SYLPHEED_CONF_OPTS = --disable-gtkspell --disable-gpgme SYLPHEED_DEPENDENCIES = host-pkgconf libgtk2 # 0001-harden-link-checker-before-accepting-click.patch SYLPHEED_IGNORE_CVES += CVE-2021-37746 # Remove the -I$(includedir) from the Makefiles # because it refers to the host /usr/include. define SYLPHEED_PRECONFIGURE for i in $$(find $(@D) -name "Makefile*"); do \ sed -i 's:-I$$(includedir)::g' $$i; \ done endef SYLPHEED_PRE_CONFIGURE_HOOKS += SYLPHEED_PRECONFIGURE ifeq ($(BR2_PACKAGE_OPENSSL),y) SYLPHEED_DEPENDENCIES += openssl SYLPHEED_CONF_OPTS += --enable-ssl else SYLPHEED_CONF_OPTS += --disable-ssl endif $(eval $(autotools-package)) ================================================ FILE: package/synergy/Config.in ================================================ config BR2_PACKAGE_SYNERGY bool "synergy" depends on BR2_PACKAGE_XORG7 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14 select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXTST help Synergy lets you easily share a single mouse and keyboard between multiple computers with different operating systems, each with its own display, without special hardware. https://github.com/symless/synergy-core/ comment "synergy needs a toolchain w/ C++, wchar, gcc >= 4.9" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && \ BR2_TOOLCHAIN_GCC_AT_LEAST_4_9) ================================================ FILE: package/synergy/synergy.hash ================================================ # Locally computed: sha256 06d1cb1d43251b0b624212652e9c0ab2657d124ac4f7e7d0c7f3e448c953c2a8 synergy-2.0.12-beta.tar.gz sha256 4921009cd76e7d38a8e873c362b25dbaf032c320bbb36a40dec775ddbdcbe1d8 LICENSE ================================================ FILE: package/synergy/synergy.mk ================================================ ################################################################################ # # synergy # ################################################################################ SYNERGY_VERSION = 2.0.12-beta SYNERGY_SITE = $(call github,symless,synergy-core,v$(SYNERGY_VERSION)) SYNERGY_LICENSE = GPL-2.0 SYNERGY_LICENSE_FILES = LICENSE SYNERGY_CPE_ID_VENDOR = symless SYNERGY_DEPENDENCIES = xlib_libX11 xlib_libXtst # Avoid using buildroot commit hash inside cmake/Version.cmake # by setting SYNERGY_VERSION_STAGE != snapshot SYNERGY_CONF_ENV += SYNERGY_VERSION_STAGE="beta" ifeq ($(BR2_PACKAGE_XLIB_LIBXEXT),y) SYNERGY_DEPENDENCIES += xlib_libXext endif ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y) SYNERGY_DEPENDENCIES += xlib_libXi endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) SYNERGY_DEPENDENCIES += xlib_libXinerama endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) SYNERGY_DEPENDENCIES += xlib_libXrandr endif define SYNERGY_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/bin/synergyc $(TARGET_DIR)/usr/bin/synergyc $(INSTALL) -D -m 0755 $(@D)/bin/synergys $(TARGET_DIR)/usr/bin/synergys endef $(eval $(cmake-package)) ================================================ FILE: package/sysdig/Config.in ================================================ config BR2_PACKAGE_SYSDIG bool "sysdig" depends on BR2_LINUX_KERNEL depends on BR2_INSTALL_LIBSTDCPP # jsoncpp depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_HAS_THREADS # elfutils, jq depends on !BR2_STATIC_LIBS # elfutils depends on BR2_USE_WCHAR # elfutils depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils depends on BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 select BR2_PACKAGE_ELFUTILS select BR2_PACKAGE_JQ select BR2_PACKAGE_JSONCPP select BR2_PACKAGE_LIBB64 select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_NCURSES select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help Sysdig is open source, system-level exploration: capture system state and activity from a running Linux instance, then save, filter and analyze. Think of it as strace + tcpdump + lsof + awesome sauce. With a little Lua cherry on top. https://github.com/draios/sysdig/wiki comment "sysdig needs a glibc or uclibc toolchain w/ C++, threads, gcc >= 4.8, dynamic library, a Linux kernel, and luajit or lua 5.1 to be built" depends on !BR2_LINUX_KERNEL || !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || BR2_STATIC_LIBS \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) \ || !BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 ================================================ FILE: package/sysdig/sysdig.hash ================================================ # sha256 locally computed sha256 57d5b713b875eba35546a1408bf3f20c2703904a17d956be115ee55272db4cfa sysdig-0.23.1.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/sysdig/sysdig.mk ================================================ ################################################################################ # # sysdig # ################################################################################ SYSDIG_VERSION = 0.23.1 SYSDIG_SITE = $(call github,draios,sysdig,$(SYSDIG_VERSION)) SYSDIG_LICENSE = GPL-2.0 SYSDIG_LICENSE_FILES = COPYING SYSDIG_CPE_ID_VENDOR = sysdig SYSDIG_CONF_OPTS = -DENABLE_DKMS=OFF -DUSE_BUNDLED_DEPS=OFF SYSDIG_SUPPORTS_IN_SOURCE_BUILD = NO SYSDIG_DEPENDENCIES = \ elfutils \ jq \ jsoncpp \ libb64 \ libcurl \ luainterpreter \ ncurses \ openssl \ zlib # sysdig creates the module Makefile from a template, which contains a # single place-holder, KBUILD_FLAGS, wich is only replaced with two # things: # - debug flags, which we don't care about here, # - 'sysdig-feature' flags, which are never set, so always empty # So, just replace the place-holder with the only meaningful value: nothing. define SYSDIG_MODULE_GEN_MAKEFILE $(INSTALL) -m 0644 $(@D)/driver/Makefile.in $(@D)/driver/Makefile $(SED) 's/@KBUILD_FLAGS@//;' $(@D)/driver/Makefile $(SED) 's/@PROBE_NAME@/sysdig-probe/;' $(@D)/driver/Makefile endef SYSDIG_POST_PATCH_HOOKS += SYSDIG_MODULE_GEN_MAKEFILE # Don't build the driver as part of the 'standard' procedure, we'll # build it on our own with the kernel-module infra. SYSDIG_CONF_OPTS += -DBUILD_DRIVER=OFF SYSDIG_MODULE_SUBDIRS = driver SYSDIG_MODULE_MAKE_OPTS = KERNELDIR=$(LINUX_DIR) $(eval $(kernel-module)) $(eval $(cmake-package)) ================================================ FILE: package/sysklogd/Config.in ================================================ config BR2_PACKAGE_SYSKLOGD bool "sysklogd" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help The continuation of the original sysklogd package, based on the original Berkeley syslog daemon. Now with kernel logging, and log rotation built-in. It can both receive from and send to remote syslog servers. The v2.x series include extended support for RFC5424 with an alt. syslogp() API for clients. https://github.com/troglobit/sysklogd/ if BR2_PACKAGE_SYSKLOGD config BR2_PACKAGE_SYSKLOGD_REMOTE_DELAY int "Retry delay (sec)" default "180" help Retry delay (seconds) for sending to remote syslog servers. When set up to forward logs to a remote syslog server, the network may not always be available. E.g., default interface down, or no route to the remote server. This setting controls the back-off time before retrying. Default: 180 seconds config BR2_PACKAGE_SYSKLOGD_LOGGER bool "logger tool" help Generate log messages from scripts or from the command line. This version of logger is receommended for use with sysklogd. It makes use of the new syslogp() API for RFC5424 style logs, e.g. MSGID, strucutred data (SD), etc. The BusyBox, or util-linux, logger tools can also be used, but are limited to RFC3164 style messages. endif comment "sysklogd needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/sysklogd/S01syslogd ================================================ #!/bin/sh DAEMON="syslogd" PIDFILE="/var/run/$DAEMON.pid" SYSLOGD_ARGS="-m 0" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "/sbin/$DAEMON" \ -- $SYSLOGD_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } # SIGHUP makes syslogd reload its configuration reload() { printf 'Reloading %s: ' "$DAEMON" start-stop-daemon -K -s HUP -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } case "$1" in start|stop|restart|reload) "$1";; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/sysklogd/sysklogd.hash ================================================ # Upstream .md5 and .sha256 from GitHub md5 2c6749c49f52b8c5dad18e9a9315e7dd sysklogd-2.2.3.tar.gz sha256 e7ea09c15511a63c430e84f65ce3bf55a0386ee419ab52e9341c4a9fabae59ad sysklogd-2.2.3.tar.gz # Locally calculated sha256 7a71d7603a7c4456df441463e54da35acf151c1be0879246de63544f1f34f477 LICENSE ================================================ FILE: package/sysklogd/sysklogd.mk ================================================ ################################################################################ # # sysklogd # ################################################################################ SYSKLOGD_VERSION = 2.2.3 SYSKLOGD_SITE = https://github.com/troglobit/sysklogd/releases/download/v$(SYSKLOGD_VERSION) SYSKLOGD_LICENSE = BSD-3-Clause SYSKLOGD_LICENSE_FILES = LICENSE SYSKLOGD_CPE_ID_VENDOR = sysklogd_project # Busybox install logger in /usr/bin, and syslogd in /sbin, so install in # the same locations so that busybox does not install its applets in there. SYSKLOGD_CONF_OPTS = \ --bindir=/usr/bin \ --sbindir=/sbin \ --with-suspend-time=$(BR2_PACKAGE_SYSKLOGD_REMOTE_DELAY) # Disable/Enable utilities ifeq ($(BR2_PACKAGE_SYSKLOGD_LOGGER),y) SYSKLOGD_CONF_OPTS += --with-logger else SYSKLOGD_CONF_OPTS += --without-logger endif define SYSKLOGD_INSTALL_SAMPLE_CONFIG $(INSTALL) -D -m 0644 $(@D)/syslog.conf \ $(TARGET_DIR)/etc/syslog.conf endef SYSKLOGD_POST_INSTALL_TARGET_HOOKS += SYSKLOGD_INSTALL_SAMPLE_CONFIG define SYSKLOGD_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/sysklogd/S01syslogd \ $(TARGET_DIR)/etc/init.d/S01syslogd endef define SYSKLOGD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(SYSKLOGD_PKGDIR)/syslogd.service \ $(TARGET_DIR)/usr/lib/systemd/system/syslogd.service endef $(eval $(autotools-package)) ================================================ FILE: package/sysklogd/syslogd.service ================================================ [Unit] Description=System Logging Service Requires=syslog.socket [Service] EnvironmentFile=-/etc/default/syslogd ExecStart=/sbin/syslogd -m 0 -F $SYSLOGD_ARGS StandardOutput=null Restart=on-failure [Install] WantedBy=multi-user.target Alias=syslog.service ================================================ FILE: package/syslog-ng/0001-fix-build-on-uclibc.patch ================================================ From 98bd6106f8c48bc8f0a27bd712ed4ba6249e9a5f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 13 Jan 2019 11:03:51 +0100 Subject: [PATCH] fix build on m68k with uclibc uclibc on m68k defines pthread_spinlock_t but does not define pthread_spin_trylock so check for this function before using it Fixes: - http://autobuild.buildroot.org/results/0a6de11c030a4f39e402917809fc6d33fb463d1b Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/buytenh/ivykis/pull/17] --- configure.ac | 3 +++ src/spinlock.h | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/lib/ivykis/configure.ac b/lib/ivykis/configure.ac index e9b10c0..24152a9 100644 --- a/lib/ivykis/configure.ac +++ b/lib/ivykis/configure.ac @@ -110,6 +110,9 @@ AC_CACHE_CHECK(for linux/netfilter_ipv4.h, ac_cv_header_linux_netfilter_ipv4_h, # Check for pthread_spinlock_t. AC_CHECK_TYPES([pthread_spinlock_t], [], [], [[#include ]]) +# Check for pthread_spin_trylock +AC_CHECK_FUNCS([pthread_spin_trylock]) + # Check which header file defines 'struct timespec'. for hdr in sys/time.h sys/timers.h time.h pthread.h do diff --git a/lib/ivykis/src/spinlock.h b/lib/ivykis/src/spinlock.h index ebcdbec..d837df8 100644 --- a/lib/ivykis/src/spinlock.h +++ b/lib/ivykis/src/spinlock.h @@ -76,7 +76,11 @@ static inline void fallback_spin_unlock(fallback_spinlock_t *lock) static inline int pthread_spinlocks_available(void) { +#ifdef HAVE_PTHREAD_SPIN_TRYLOCK return !!(pthread_spin_trylock != NULL); +#else + return 0; +#endif } -- 2.14.1 ================================================ FILE: package/syslog-ng/Config.in ================================================ config BR2_PACKAGE_SYSLOG_NG bool "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 select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_PCRE select BR2_PACKAGE_OPENSSL help syslog-ng is an enhanced log daemon, supporting a wide range of input and output methods: syslog, unstructured text, queueing, SQL & NoSQL https://www.syslog-ng.com/products/open-source-log-management/ 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 ================================================ FILE: package/syslog-ng/S01syslog-ng ================================================ #!/bin/sh DAEMON="syslog-ng" PIDFILE="/var/run/$DAEMON.pid" SYSLOG_NG_ARGS="" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- $SYSLOG_NG_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } # SIGHUP makes syslog-ng reload its configuration reload() { printf 'Reloading %s: ' "$DAEMON" start-stop-daemon -K -s HUP -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } case "$1" in start|stop|restart|reload) "$1";; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/syslog-ng/syslog-ng.conf ================================================ @version: 3.34 source s_sys { file("/proc/kmsg" program_override("kernel")); unix-stream ("/dev/log"); internal(); }; destination d_all { file("/var/log/messages"); }; log { source(s_sys); destination(d_all); }; ================================================ FILE: package/syslog-ng/syslog-ng.hash ================================================ # Locally computed sha256 cece39ec1c68c88d493705e0a528b83d038da384e89d4838393ccc75f62a2d4c syslog-ng-3.34.1.tar.gz sha256 e912cf1e1c09b81d61c0154eb6c179588622c31ad07bfb4a90c612d07ff09d9b COPYING sha256 ce3324c9f22299cfc7c281e5a6ab40fbe9c2ea1a67cee87226cb8cd39db1e1d2 GPL.txt sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LGPL.txt ================================================ FILE: package/syslog-ng/syslog-ng.mk ================================================ ################################################################################ # # syslog-ng # ################################################################################ # When updating the version, please check at runtime if the version in # syslog-ng.conf header needs to be updated SYSLOG_NG_VERSION = 3.34.1 SYSLOG_NG_SITE = https://github.com/balabit/syslog-ng/releases/download/syslog-ng-$(SYSLOG_NG_VERSION) SYSLOG_NG_LICENSE = LGPL-2.1+ (syslog-ng core), GPL-2.0+ (modules) SYSLOG_NG_LICENSE_FILES = COPYING GPL.txt LGPL.txt SYSLOG_NG_CPE_ID_VENDOR = oneidentity SYSLOG_NG_DEPENDENCIES = host-bison host-flex host-pkgconf \ libglib2 openssl pcre # We're patching configure.ac SYSLOG_NG_AUTORECONF = YES SYSLOG_NG_CONF_OPTS = --disable-manpages --localstatedir=/var/run \ --disable-java --disable-java-modules --disable-mongodb ifeq ($(BR2_PACKAGE_GEOIP),y) SYSLOG_NG_DEPENDENCIES += geoip SYSLOG_NG_CONF_OPTS += --enable-geoip else SYSLOG_NG_CONF_OPTS += --disable-geoip endif ifeq ($(BR2_PACKAGE_LIBCAP),y) SYSLOG_NG_DEPENDENCIES += libcap SYSLOG_NG_CONF_OPTS += --enable-linux-caps else SYSLOG_NG_CONF_OPTS += --disable-linux-caps endif ifeq ($(BR2_PACKAGE_PYTHON),y) SYSLOG_NG_DEPENDENCIES += python SYSLOG_NG_CONF_OPTS += \ --enable-python \ --with-python=$(PYTHON_VERSION_MAJOR) else ifeq ($(BR2_PACKAGE_PYTHON3),y) SYSLOG_NG_DEPENDENCIES += python3 SYSLOG_NG_CONF_OPTS += \ --enable-python \ --with-python=$(PYTHON3_VERSION_MAJOR) else SYSLOG_NG_CONF_OPTS += --disable-python endif ifeq ($(BR2_PACKAGE_LIBESMTP),y) SYSLOG_NG_DEPENDENCIES += libesmtp SYSLOG_NG_CONF_OPTS += --enable-smtp SYSLOG_NG_CONF_OPTS += --with-libesmtp="$(STAGING_DIR)/usr" else SYSLOG_NG_CONF_OPTS += --disable-smtp endif ifeq ($(BR2_PACKAGE_JSON_C),y) SYSLOG_NG_DEPENDENCIES += json-c SYSLOG_NG_CONF_OPTS += --enable-json else SYSLOG_NG_CONF_OPTS += --disable-json endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y) SYSLOG_NG_DEPENDENCIES += util-linux endif ifeq ($(BR2_PACKAGE_LIBNET),y) SYSLOG_NG_DEPENDENCIES += libnet SYSLOG_NG_CONF_OPTS += \ --with-libnet=$(STAGING_DIR)/usr/bin \ --enable-spoof-source else SYSLOG_NG_CONF_OPTS += --disable-spoof-source endif ifeq ($(BR2_PACKAGE_LIBCURL),y) SYSLOG_NG_DEPENDENCIES += libcurl SYSLOG_NG_CONF_OPTS += --enable-http SYSLOG_NG_CONF_OPTS += --with-libcurl="$(STAGING_DIR)/usr" else SYSLOG_NG_CONF_OPTS += --disable-http endif ifeq ($(BR2_PACKAGE_RABBITMQ_C),y) SYSLOG_NG_DEPENDENCIES += rabbitmq-c SYSLOG_NG_CONF_OPTS += --enable-amqp else SYSLOG_NG_CONF_OPTS += --disable-amqp endif ifeq ($(BR2_INIT_SYSTEMD),y) SYSLOG_NG_DEPENDENCIES += systemd SYSLOG_NG_CONF_OPTS += \ --enable-systemd \ --with-systemdsystemunitdir=/usr/lib/systemd/system else SYSLOG_NG_CONF_OPTS += --disable-systemd endif ifeq ($(BR2_PACKAGE_NETSNMP),y) SYSLOG_NG_DEPENDENCIES += netsnmp SYSLOG_NG_CONF_OPTS += --enable-afsnmp SYSLOG_NG_CONF_OPTS += --with-net-snmp="$(STAGING_DIR)/usr/bin" else SYSLOG_NG_CONF_OPTS += --disable-afsnmp endif define SYSLOG_NG_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/syslog-ng/S01syslog-ng \ $(TARGET_DIR)/etc/init.d/S01syslog-ng endef # By default syslog-ng installs a .service that requires a config file at # /etc/default, so provide one with the default values. define SYSLOG_NG_INSTALL_INIT_SYSTEMD mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/syslog-ng@.service.d printf '[Install]\nDefaultInstance=default\n' \ >$(TARGET_DIR)/usr/lib/systemd/system/syslog-ng@.service.d/buildroot-default-instance.conf endef # By default syslog-ng installs a number of sample configuration # files. Some of these rely on optional features being # enabled. Because of this buildroot uninstalls the shipped config # files and provides a simplified configuration. define SYSLOG_NG_FIXUP_CONFIG $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ DESTDIR=$(TARGET_DIR) scl-uninstall-local $(INSTALL) -D -m 0644 package/syslog-ng/syslog-ng.conf \ $(TARGET_DIR)/etc/syslog-ng.conf endef SYSLOG_NG_POST_INSTALL_TARGET_HOOKS = SYSLOG_NG_FIXUP_CONFIG $(eval $(autotools-package)) ================================================ FILE: package/sysprof/0001-define-NT_GNU_BUILD_ID.patch ================================================ On uclibc elf.h does not have GNU extentions but we need this define so we define it locally if its not getting it from elf.h Signed-off-by: Khem Raj Upstream-Status: Pending Index: git/elfparser.h =================================================================== --- git.orig/elfparser.h 2011-07-16 18:57:41.000000000 -0700 +++ git/elfparser.h 2011-07-16 20:28:54.733829895 -0700 @@ -17,6 +17,10 @@ */ #include +#ifndef NT_GNU_BUILD_ID +#define NT_GNU_BUILD_ID 3 +#endif + typedef struct ElfSym ElfSym; typedef struct ElfParser ElfParser; ================================================ FILE: package/sysprof/Config.in ================================================ config BR2_PACKAGE_SYSPROF bool "sysprof" depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_USE_MMU # glib2 # In its util.h file, sysprof contains architecture-specific # code depends on BR2_i386 || BR2_x86_64 || BR2_powerpc || BR2_sh4a || BR2_sh4aeb select BR2_PACKAGE_LIBGLIB2 help Sysprof is a statistical, system-wide profiler that can profile user and kernel code using the perf API. http://sysprof.com if BR2_PACKAGE_SYSPROF config BR2_PACKAGE_SYSPROF_GUI bool "sysprof GUI" depends on BR2_PACKAGE_LIBGTK2 select BR2_PACKAGE_LIBGLADE select BR2_PACKAGE_GDK_PIXBUF help GUI for the sysprof system-wide statistical profiler. endif comment "sysprof needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on BR2_i386 || BR2_x86_64 || BR2_powerpc || BR2_sh4a || BR2_sh4aeb depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/sysprof/sysprof.hash ================================================ # Locally calculated sha256 baf03c6fc01a845c705873e6fc7927aa89539dcda6963f9ec4c8eb4c086a64f1 sysprof-1.2.0.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/sysprof/sysprof.mk ================================================ ################################################################################ # # sysprof # ################################################################################ SYSPROF_VERSION = 1.2.0 SYSPROF_SITE = http://sysprof.com SYSPROF_DEPENDENCIES = libglib2 SYSPROF_LICENSE = GPL-2.0+ SYSPROF_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_SYSPROF_GUI),y) SYSPROF_DEPENDENCIES += libgtk2 libglade gdk-pixbuf endif $(eval $(autotools-package)) ================================================ FILE: package/sysrepo/Config.in ================================================ config BR2_PACKAGE_SYSREPO bool "sysrepo" depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 select BR2_PACKAGE_LIBYANG select BR2_PACKAGE_PCRE select BR2_PACKAGE_PCRE_UCP help Sysrepo is an YANG-based configuration and operational state data store for Unix/Linux applications. https://github.com/sysrepo if BR2_PACKAGE_SYSREPO config BR2_PACKAGE_SYSREPO_EXAMPLES bool "enable examples" help Enable sysrepo examples. endif comment "sysrepo needs a toolchain w/ C++, NPTL, dynamic library, gcc >= 4.8" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_HAS_THREADS_NPTL ================================================ FILE: package/sysrepo/S51sysrepo-plugind ================================================ #!/bin/sh DAEMON="sysrepo-plugind" EXECUTABLE="/usr/bin/$DAEMON" SYSREPO_PLUGIND_ARGS="" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" start-stop-daemon -S -q -x "$EXECUTABLE" \ -- $SYSREPO_PLUGIND_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -x "$EXECUTABLE" status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } reload() { # we do not support real reload .. just restart restart } case "$1" in start|stop|restart|reload) "$1";; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/sysrepo/sysrepo.hash ================================================ # Locally calculated sha256 2cc7537a03f48dc3c955436e1e0ed077bc3b31a755d6979d24ca42e1187fce01 sysrepo-1.4.122.tar.gz sha256 b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1 LICENSE ================================================ FILE: package/sysrepo/sysrepo.mk ================================================ ################################################################################ # # sysrepo # ################################################################################ SYSREPO_VERSION = 1.4.122 SYSREPO_SITE = $(call github,sysrepo,sysrepo,v$(SYSREPO_VERSION)) SYSREPO_INSTALL_STAGING = YES SYSREPO_LICENSE = Apache-2.0 SYSREPO_LICENSE_FILES = LICENSE SYSREPO_DEPENDENCIES = libyang pcre host-sysrepo HOST_SYSREPO_DEPENDENCIES = host-libyang host-pcre SYSREPO_CONF_OPTS = \ -DBUILD_EXAMPLES=$(if $(BR2_PACKAGE_SYSREPO_EXAMPLES),ON,OFF) \ -DENABLE_TESTS=OFF \ -DENABLE_VALGRIND_TESTS=OFF \ -DREPO_PATH=/etc/sysrepo ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) SYSREPO_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif define SYSREPO_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/sysrepo/S51sysrepo-plugind \ $(TARGET_DIR)/etc/init.d/S51sysrepo-plugind endef HOST_SYSREPO_CONF_OPTS = \ -DBUILD_EXAMPLES=OFF \ -DENABLE_TESTS=OFF \ -DENABLE_VALGRIND_TESTS=OFF \ -DREPO_PATH=$(TARGET_DIR)/etc/sysrepo $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/sysstat/Config.in ================================================ config BR2_PACKAGE_SYSSTAT bool "sysstat" depends on BR2_USE_MMU # fork() help The sysstat utilities are a collection of performance monitoring tools for Linux. These include sar, sadf, mpstat, iostat, pidstat and sa tools. Some Features : * Input / Output and transfer rate statistics (global, per device, per partition, per network filesystem and per Linux task / PID) * CPU statistics (global, per CPU and per Linux task / PID), including support for virtualization architectures * Memory and swap space utilization statistics * Virtual memory, paging and fault statistics * Per-task (per-PID) memory and page fault statistics * Global CPU and page fault statistics for tasks and all their children * Process creation activity * Interrupt statistics (global, per CPU and per interrupt, including potential APIC interrupt sources) * Extensive network statistics: network interface activity (number of packets and kB received and transmitted per second, etc.) including failures from network devices; network traffic statistics for IP, TCP, ICMP and UDP protocols based on SNMPv2 standards; support for IPv6-related protocols. * NFS server and client activity * Socket statistics * Run queue and system load statistics * Kernel internal tables utilization statistics * System and per Linux task switching activity * Swapping statistics * TTY device activity * Power management statistics http://pagesperso-orange.fr/sebastien.godard/ ================================================ FILE: package/sysstat/sysstat.hash ================================================ # From: http://sebastien.godard.pagesperso-orange.fr/download.html sha1 1e38bc029979def730ae1fb1e39f631bd1a3bc73 sysstat-12.4.2.tar.xz # Locally calculated sha256 3701b2c1883d50eb384d7b95ce5b6df0a71fdcb3c23f96cb58098d1bcffa018f sysstat-12.4.2.tar.xz sha256 db296f2f7f35bca3a174efb0eb392b3b17bd94b341851429a3dff411b1c2fc73 COPYING ================================================ FILE: package/sysstat/sysstat.mk ================================================ ################################################################################ # # sysstat # ################################################################################ SYSSTAT_VERSION = 12.4.2 SYSSTAT_SOURCE = sysstat-$(SYSSTAT_VERSION).tar.xz SYSSTAT_SITE = http://pagesperso-orange.fr/sebastien.godard SYSSTAT_CONF_OPTS = --disable-file-attr SYSSTAT_DEPENDENCIES = host-gettext $(TARGET_NLS_DEPENDENCIES) SYSSTAT_LICENSE = GPL-2.0+ SYSSTAT_LICENSE_FILES = COPYING SYSSTAT_CPE_ID_VENDOR = sysstat_project SYSSTAT_SELINUX_MODULES = sysstat ifeq ($(BR2_PACKAGE_LM_SENSORS),y) SYSSTAT_DEPENDENCIES += lm-sensors SYSSTAT_CONF_OPTS += --enable-sensors else SYSSTAT_CONF_OPTS += --disable-sensors endif $(eval $(autotools-package)) ================================================ FILE: package/system-config-printer/0001-Add-option-to-disable-xmlto-manual-generation.patch ================================================ From 731c8d7e1f9edb527785d61f74031a5e5846554b Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Sun, 25 Jul 2021 16:30:59 -0600 Subject: [PATCH] Add option to disable xmlto manual generation. Signed-off-by: James Hilliard [james.hilliard1@gmail.com: backport from upstream commit 95e0b461f5a46c74b00287aca65732ea2fc9d69b] --- Makefile.am | 7 ++++++- configure.ac | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 843ba30d..7facab94 100644 --- a/Makefile.am +++ b/Makefile.am @@ -209,9 +209,11 @@ else systemd_CLEANFILES= endif +if XMLTO man_MANS= \ man/system-config-printer.1 \ man/system-config-printer-applet.1 +endif dbus_DATA = \ dbus/com.redhat.NewPrinterNotification.conf \ @@ -274,7 +276,6 @@ EXTRA_DIST=\ $(bin_SCRIPTS) \ setup.py \ $(EXPORT_MODULES) \ - man/system-config-printer.xml \ $(dbus_DATA) \ $(dbusinterfaces_DATA) \ $(dbusservices_DATA) \ @@ -297,12 +298,16 @@ EXTRA_DIST=\ test_PhysicalDevice.py \ $(appdata_in_files) +if XMLTO +EXTRA_DIST+=man/system-config-printer.xml + # The man pages are generated from DocBook XML. .stamp-man-pages-built: $(top_srcdir)/man/system-config-printer.xml xmlto man -o man $< touch .stamp-man-pages-built $(man_MANS): .stamp-man-pages-built +endif html: $(EXPORT_MODULES) $(EXPORT_MODULES_GEN) rm -rf html diff --git a/configure.ac b/configure.ac index 811f897a..a2a66889 100644 --- a/configure.ac +++ b/configure.ac @@ -75,6 +75,11 @@ if test "x$with_systemdsystemunitdir" != xno; then fi AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) +AC_ARG_WITH(xmlto, + [AC_HELP_STRING([--with-xmlto], + [Enable xmlto manual generation @<:@default=yes@:>@])]) +AM_CONDITIONAL([XMLTO], [test x$with_xmlto != xno]) + ALL_LINGUAS="ar as ast bg bn_IN bn br bs ca cs cy da de el en_GB es et fa fi fr fur gu he hi hr hu id is it ja kn ko lt lv mai ml mr ms nb nds nl nn oc or pa pl pt_BR pt ro ru si sk sl sr@latin sr sv ta te th tr uk vi zh_CN zh_TW" AC_CONFIG_FILES([ Makefile -- 2.25.1 ================================================ FILE: package/system-config-printer/0002-configure-accept-non-system-cups-config.patch ================================================ From 75db995dda74696123cde2869e4e9b3315b91abd Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 1 Aug 2021 13:40:28 +0200 Subject: [PATCH] configure: accept non-system cups-config In cross-compilation setups, cups.config might not be installed, and might not be in the PATH. Allow a user to specify the full path to cups-config. Signed-off-by: Yann E. MORIN --- configure.ac | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index dd013b4a..9f033d18 100644 --- a/configure.ac +++ b/configure.ac @@ -33,7 +33,11 @@ fi AC_SUBST(DESKTOPVENDOR) AC_SUBST(DESKTOPPREFIX) -cupsserverbindir="`cups-config --serverbin`" +AC_ARG_WITH([cups-config], + [AC_HELP_STRING([--with-cups-config], [Specify the path of cups-config])],, + [with_cups_config=cups-config]) + +cupsserverbindir="`${with_cups_config} --serverbin`" AC_SUBST(cupsserverbindir) PKG_CHECK_MODULES(GLIB, glib-2.0, has_glib=yes, has_glib=no) -- 2.25.1 ================================================ FILE: package/system-config-printer/Config.in ================================================ config BR2_PACKAGE_SYSTEM_CONFIG_PRINTER bool "system-config-printer" depends on BR2_PACKAGE_CUPS help Graphical user interface for CUPS administration https://github.com/OpenPrinting/system-config-printer ================================================ FILE: package/system-config-printer/system-config-printer.hash ================================================ # Locally calculated: sha256 fbd226ce215bf014213dded81b43b9d4d90470524f5bf7cd21ecc71d4aefa689 system-config-printer-1.5.15.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/system-config-printer/system-config-printer.mk ================================================ ################################################################################ # # system-config-printer # ################################################################################ SYSTEM_CONFIG_PRINTER_VERSION = 1.5.15 SYSTEM_CONFIG_PRINTER_SOURCE = system-config-printer-$(SYSTEM_CONFIG_PRINTER_VERSION).tar.xz SYSTEM_CONFIG_PRINTER_SITE = https://github.com/OpenPrinting/system-config-printer/releases/download/v$(SYSTEM_CONFIG_PRINTER_VERSION) SYSTEM_CONFIG_PRINTER_LICENSE = GPL-2.0+ SYSTEM_CONFIG_PRINTER_LICENSE_FILES = COPYING SYSTEM_CONFIG_PRINTER_DEPENDENCIES = cups host-desktop-file-utils host-intltool host-pkgconf # 0001-Add-option-to-disable-xmlto-manual-generation.patch # 0002-configure-accept-non-system-cups-config.patch SYSTEM_CONFIG_PRINTER_AUTORECONF = YES SYSTEM_CONFIG_PRINTER_CONF_OPTS = --with-cups-config=$(STAGING_DIR)/usr/bin/cups-config ifeq ($(BR2_PACKAGE_LIBGLIB2),y) SYSTEM_CONFIG_PRINTER_DEPENDENCIES += libglib2 endif ifeq ($(BR2_PACKAGE_LIBGLIB2)$(BR2_PACKAGE_LIBUSB)$(BR2_PACKAGE_HAS_UDEV),yyy) SYSTEM_CONFIG_PRINTER_CONF_OPTS += --with-udev-rules=yes SYSTEM_CONFIG_PRINTER_DEPENDENCIES += libusb udev else SYSTEM_CONFIG_PRINTER_CONF_OPTS += --with-udev-rules=no endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) SYSTEM_CONFIG_PRINTER_CONF_OPTS += --with-systemdsystemunitdir=/usr/lib/systemd/system SYSTEM_CONFIG_PRINTER_DEPENDENCIES += systemd else SYSTEM_CONFIG_PRINTER_CONF_OPTS += --with-systemdsystemunitdir=no endif $(eval $(autotools-package)) ================================================ FILE: package/systemd/0001-Add-meson-option-to-disable-urlify.patch ================================================ From e5d86ebed5624ef62342c820a5868b1075deb300 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Sun, 11 Jul 2021 04:39:33 -0600 Subject: [PATCH] Add meson option to disable urlify. Useful for systems that don't use a version of less with hyperlink support. Signed-off-by: James Hilliard [james.hilliard1@gmail.com: backport from upstream commit e5d86ebed5624ef62342c820a5868b1075deb300] --- meson.build | 1 + meson_options.txt | 2 ++ src/shared/pretty-print.c | 4 ++++ 3 files changed, 7 insertions(+) diff --git a/meson.build b/meson.build index 5735cfc7ad..a2ee15bf32 100644 --- a/meson.build +++ b/meson.build @@ -278,6 +278,7 @@ conf.set_quoted('USER_PRESET_DIR', userpresetdir) conf.set_quoted('VENDOR_KEYRING_PATH', join_paths(rootlibexecdir, 'import-pubring.gpg')) conf.set('ANSI_OK_COLOR', 'ANSI_' + get_option('ok-color').underscorify().to_upper()) +conf.set10('ENABLE_URLIFY', get_option('urlify')) conf.set10('ENABLE_FEXECVE', get_option('fexecve')) conf.set10('MEMORY_ACCOUNTING_DEFAULT', memory_accounting_default) conf.set('STATUS_UNIT_FORMAT_DEFAULT', 'STATUS_UNIT_FORMAT_' + status_unit_format_default.to_upper()) diff --git a/meson_options.txt b/meson_options.txt index 163c8df87d..b60261ac24 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -444,6 +444,8 @@ option('ok-color', type : 'combo', 'highlight-cyan', 'highlight-white'], value : 'green', description: 'color of the "OK" status message') +option('urlify', type : 'boolean', value : 'true', + description : 'enable pager Hyperlink ANSI sequence support') option('fexecve', type : 'boolean', value : 'false', description : 'use fexecve() to spawn children') diff --git a/src/shared/pretty-print.c b/src/shared/pretty-print.c index 137ba77b3a..7983c0a33a 100644 --- a/src/shared/pretty-print.c +++ b/src/shared/pretty-print.c @@ -19,6 +19,7 @@ #include "util.h" bool urlify_enabled(void) { +#if ENABLE_URLIFY static int cached_urlify_enabled = -1; if (cached_urlify_enabled < 0) { @@ -32,6 +33,9 @@ bool urlify_enabled(void) { } return cached_urlify_enabled; +#else + return 0; +#endif } int terminal_urlify(const char *url, const char *text, char **ret) { -- 2.25.1 ================================================ FILE: package/systemd/80-buildroot.preset ================================================ # Higher priority than systemd presets # This file is currently empty, but is available for demonstration and future use ================================================ FILE: package/systemd/Config.in ================================================ config BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS bool # see src/basic/architecture.h default y if BR2_arc default y if BR2_aarch64 || BR2_aarch64_be default y if BR2_arm || BR2_armeb default y if BR2_i386 || BR2_x86_64 default y if BR2_m68k default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le default y if BR2_nios2 default y if BR2_riscv default y if BR2_sh4 || BR2_sh4eb || BR2_sh4a || BR2_sh4aeb default y if BR2_sparc || BR2_sparc64 default y if BR2_s390x menuconfig BR2_PACKAGE_SYSTEMD bool "systemd" depends on BR2_INIT_SYSTEMD depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS # kmod depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_TOOLCHAIN_HAS_SSP depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 depends on BR2_HOST_GCC_AT_LEAST_5 # host-systemd select BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_DBUS # runtime dependency only select BR2_PACKAGE_LIBCAP select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBS select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_AGETTY select BR2_PACKAGE_UTIL_LINUX_MOUNT select BR2_PACKAGE_UTIL_LINUX_FSCK select BR2_PACKAGE_KMOD select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # kmod-tools select BR2_PACKAGE_KMOD_TOOLS select BR2_TARGET_TZ_INFO select BR2_NEEDS_HOST_UTF8_LOCALE select BR2_PACKAGE_HOST_SYSTEMD # for systemctl preset-all, during target-finalize help systemd is a system and service manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit. Systemd requires a Linux kernel >= 3.0 with the following options enabled: - CONFIG_CGROUPS - CONFIG_INOTIFY_USER - CONFIG_FHANDLE - CONFIG_AUTOFS4_FS - CONFIG_TMPFS_POSIX_ACL - CONFIG_TMPFS_XATTR 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. Systemd also provides udev, the userspace device daemon. 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. Notice that systemd selects the fsck wrapper from util-linux but no particular fsck. is selected. You must choose the apropriate ones (e.g. e2fsck, from the e2fsprogs package) according to the system configuration. http://freedesktop.org/wiki/Software/systemd if BR2_PACKAGE_SYSTEMD config BR2_PACKAGE_PROVIDES_UDEV default "systemd" config BR2_PACKAGE_SYSTEMD_BOOT bool "systemd-boot" depends on BR2_i386 || BR2_x86_64 select BR2_PACKAGE_GNU_EFI help systemd-boot is a simple UEFI boot manager which executes configured EFI images. The default entry is selected by a configured pattern (glob) or an on-screen menu. systemd-boot operates on the EFI System Partition (ESP) only. Configuration file fragments, kernels, initrds, other EFI images need to reside on the ESP. Linux kernels need to be built with CONFIG_EFI_STUB to be able to be directly executed as an EFI image. See the Grub2 help text for details on preparing an EFI capable disk image using systemd-boot: the instructions are exactly the same, except that the systemd-boot configuration files will be located in /loader/ inside the EFI partition. https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/ config BR2_PACKAGE_SYSTEMD_INITRD bool "Services for booting from initrd" help Install various services that are only useful if systemd is run from an initrd. config BR2_PACKAGE_SYSTEMD_KERNELINSTALL bool "install kernel-install and related files" help kernel-install is used to install and remove kernel and initramfs images to and from the boot loader partition. The boot loader partition will usually be one of /boot, /efi, or /boot/efi. config BR2_PACKAGE_SYSTEMD_ANALYZE bool "systemd-analyze" help systemd-analyze may be used to determine system boot-up performance statistics and retrieve other state and tracing information from the system and service manager, and to verify the correctness of unit files. It is also used to access special functions useful for advanced system manager debugging. config BR2_PACKAGE_SYSTEMD_BOOT_EFI_ARCH string default "ia32" if BR2_i386 default "x64" if BR2_x86_64 depends on BR2_PACKAGE_SYSTEMD_BOOT config BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE bool "enable journal remote tools" select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBMICROHTTPD help journal remote functionality adds three tools: systemd-journal-gatewayd serves journal events over the network. systemd-journal-remote is a command to receive serialized journal events and store them to journal files. systemd-journal-upload will upload journal entries to the URL specified with --url=. https://www.freedesktop.org/software/systemd/man/systemd-journal-gatewayd.service.html https://www.freedesktop.org/software/systemd/man/systemd-journal-remote.service.html https://www.freedesktop.org/software/systemd/man/systemd-journal-upload.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_PSTORE bool "enable pstore support" default y help When this features is enabled, additional tools and services are built to support archiving contents of the persistent storage filesytem. https://www.freedesktop.org/software/systemd/man/systemd-pstore.html config BR2_PACKAGE_SYSTEMD_FIRSTBOOT bool "enable firstboot support" 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" select BR2_PACKAGE_SYSTEMD_INITRD 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_HOMED bool "enable home daemon" depends on BR2_TOOLCHAIN_HAS_THREADS # cryptsetup -> lvm2 depends on BR2_USE_MMU # cryptsetup -> lvm2 depends on !BR2_STATIC_LIBS # cryptsetup -> lvm2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # cryptsetup -> json-c depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 # fscrypt_key select BR2_PACKAGE_CRYPTSETUP select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_UTIL_LINUX_LIBFDISK help systemd-homed is a system service that may be used to create, remove, change or inspect home directories. https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html comment "homed support needs a toolchain w/ threads, dynamic library, kernel headers >= 4.12" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 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_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_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 creating virtual network devices. This simple network configuration solution is an alternative to dhcpcd or ISC dhcp. http://www.freedesktop.org/software/systemd/man/systemd-networkd.html config BR2_PACKAGE_SYSTEMD_OOMD bool "enable out-of-memory killer" help systemd-oomd is a system service that uses cgroups-v2 and pressure stall information (PSI) to monitor and take action on processes before an OOM occurs in kernel space. https://www.freedesktop.org/software/systemd/man/systemd-oomd.html config BR2_PACKAGE_SYSTEMD_POLKIT bool "enable polkit support" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # polkit -> c++17 depends on BR2_TOOLCHAIN_HAS_THREADS # polkit depends on BR2_USE_WCHAR # libglib2 select BR2_PACKAGE_POLKIT help 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. http://wiki.freedesktop.org/www/Software/polkit/ comment "polkit support needs a toolchain with threads, wchar, gcc >= 7" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || \ !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_SYSTEMD_PORTABLED bool "enable portable services" help Portable services are systemd services that can be dynamically attached and detached from the system. These services must come with their own root directory which they are bound to through an automatically generated drop-in. They also have restrictions applied by the host system in the form of profiles. This functionality is provided by the system service systemd-portabled along with the corresponding CLI portablectl. https://systemd.io/PORTABLE_SERVICES/ config BR2_PACKAGE_SYSTEMD_QUOTACHECK bool "enable quotacheck tools" help 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. http://www.freedesktop.org/software/systemd/man/systemd-quotacheck.service.html 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_REPART bool "enable repart support" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_UTIL_LINUX_LIBFDISK help systemd-repart grows and adds partitions to a partition table, based on the configuration files described in repart.d. https://www.freedesktop.org/software/systemd/man/systemd-repart.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" select BR2_PACKAGE_ATTR select BR2_PACKAGE_SMACK help Enable support for SMACK, the Simple Mandatory Access Control Kernel, a minimal approach to Access Control implemented as a kernel LSM. This feature requires a kernel >= 3.8. When this feature is enabled, Systemd mounts smackfs and manages security labels for sockets. config BR2_PACKAGE_SYSTEMD_SYSEXT bool "enable sysext support" help systemd-sysext activates/deactivates system extension images. System extension images may – dynamically at runtime — extend the /usr/ and /opt/ directory hierarchies with additional files. This is particularly useful on immutable system images where a /usr/ and/or /opt/ hierarchy residing on a read-only file system shall be extended temporarily at runtime without making any persistent modifications. https://www.freedesktop.org/software/systemd/man/systemd-sysext.html 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_USERDB bool "enable userdb daemon" help systemd-userdbd is a system service that multiplexes user/group lookups to all local services that provide JSON user/group record definitions to the system. In addition it synthesizes JSON user/group records from classic UNIX/glibc NSS user/group records in order to provide full backwards compatibility. https://www.freedesktop.org/software/systemd/man/systemd-userdbd.service.html config BR2_PACKAGE_SYSTEMD_VCONSOLE bool "enable vconsole tool" default y 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 ================================================ FILE: package/systemd/Config.in.host ================================================ # Select this if you need host systemd tools (e.g. systemctl) config BR2_PACKAGE_HOST_SYSTEMD bool depends on BR2_HOST_GCC_AT_LEAST_5 ================================================ FILE: package/systemd/boot-files/buildroot.conf ================================================ title Buildroot linux /bzImage options root=/dev/sda2 rootwait console=tty1 ================================================ FILE: package/systemd/boot-files/loader.conf ================================================ timeout 3 default buildroot ================================================ FILE: package/systemd/dhcp.network ================================================ [Match] Name=SYSTEMD_NETWORKD_DHCP_IFACE [Network] DHCP=ipv4 ================================================ FILE: package/systemd/systemd.hash ================================================ # sha256 locally computed sha256 773ee546ad6df0921ea6f9e12294eb102bf68c1ac9eb3dcaca1764f8306d6e13 systemd-249.5.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 LICENSE.GPL2 sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSE.LGPL2.1 sha256 f5645b4b846479859d6618fa7a5a1722681aa7fc43c1e45f8bf8e1fe5738d618 README sha256 83bb6bd9ccd2cf5230cb1807ed16258289768dc4d9cb80069a814e04415a1275 tools/chromiumos/LICENSE ================================================ FILE: package/systemd/systemd.mk ================================================ ################################################################################ # # systemd # ################################################################################ SYSTEMD_VERSION = 249.5 SYSTEMD_SITE = $(call github,systemd,systemd-stable,v$(SYSTEMD_VERSION)) SYSTEMD_LICENSE = LGPL-2.1+, GPL-2.0+ (udev), Public Domain (few source files, see README), BSD-3-Clause (tools/chromiumos) SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 README tools/chromiumos/LICENSE SYSTEMD_CPE_ID_VENDOR = freedesktop SYSTEMD_INSTALL_STAGING = YES SYSTEMD_DEPENDENCIES = \ $(BR2_COREUTILS_HOST_DEPENDENCY) \ $(if $(BR2_PACKAGE_BASH_COMPLETION),bash-completion) \ host-gperf \ host-python-jinja2 \ kmod \ libcap \ util-linux-libs \ $(TARGET_NLS_DEPENDENCIES) SYSTEMD_SELINUX_MODULES = systemd udev xdg SYSTEMD_PROVIDES = udev SYSTEMD_CONF_OPTS += \ -Ddefault-hierarchy=hybrid \ -Didn=true \ -Dima=false \ -Dkexec-path=/usr/sbin/kexec \ -Dkmod-path=/usr/bin/kmod \ -Dldconfig=false \ -Dloadkeys-path=/usr/bin/loadkeys \ -Dman=false \ -Dmount-path=/usr/bin/mount \ -Dmode=release \ -Dnss-systemd=true \ -Dquotacheck-path=/usr/sbin/quotacheck \ -Dquotaon-path=/usr/sbin/quotaon \ -Drootlibdir='/usr/lib' \ -Dsetfont-path=/usr/bin/setfont \ -Dsplit-bin=true \ -Dsplit-usr=false \ -Dsulogin-path=/usr/sbin/sulogin \ -Dsystem-gid-max=999 \ -Dsystem-uid-max=999 \ -Dsysvinit-path= \ -Dsysvrcnd-path= \ -Dtelinit-path= \ -Dtests=false \ -Dumount-path=/usr/bin/umount \ -Dutmp=false ifeq ($(BR2_PACKAGE_ACL),y) SYSTEMD_DEPENDENCIES += acl SYSTEMD_CONF_OPTS += -Dacl=true else SYSTEMD_CONF_OPTS += -Dacl=false endif ifeq ($(BR2_PACKAGE_LESS),y) SYSTEMD_CONF_OPTS += -Durlify=true else SYSTEMD_CONF_OPTS += -Durlify=false endif ifeq ($(BR2_PACKAGE_LIBAPPARMOR),y) SYSTEMD_DEPENDENCIES += libapparmor SYSTEMD_CONF_OPTS += -Dapparmor=true else SYSTEMD_CONF_OPTS += -Dapparmor=false endif ifeq ($(BR2_PACKAGE_AUDIT),y) SYSTEMD_DEPENDENCIES += audit SYSTEMD_CONF_OPTS += -Daudit=true else SYSTEMD_CONF_OPTS += -Daudit=false endif ifeq ($(BR2_PACKAGE_CRYPTSETUP),y) SYSTEMD_DEPENDENCIES += cryptsetup SYSTEMD_CONF_OPTS += -Dlibcryptsetup=true else SYSTEMD_CONF_OPTS += -Dlibcryptsetup=false endif ifeq ($(BR2_PACKAGE_ELFUTILS),y) SYSTEMD_DEPENDENCIES += elfutils SYSTEMD_CONF_OPTS += -Delfutils=true else SYSTEMD_CONF_OPTS += -Delfutils=false endif ifeq ($(BR2_PACKAGE_GNUTLS),y) SYSTEMD_DEPENDENCIES += gnutls SYSTEMD_CONF_OPTS += -Dgnutls=true else SYSTEMD_CONF_OPTS += -Dgnutls=false endif ifeq ($(BR2_PACKAGE_IPTABLES),y) SYSTEMD_DEPENDENCIES += iptables SYSTEMD_CONF_OPTS += -Dlibiptc=true else SYSTEMD_CONF_OPTS += -Dlibiptc=false endif # Both options can't be selected at the same time so prefer libidn2 ifeq ($(BR2_PACKAGE_LIBIDN2),y) SYSTEMD_DEPENDENCIES += libidn2 SYSTEMD_CONF_OPTS += -Dlibidn2=true -Dlibidn=false else ifeq ($(BR2_PACKAGE_LIBIDN),y) SYSTEMD_DEPENDENCIES += libidn SYSTEMD_CONF_OPTS += -Dlibidn=true -Dlibidn2=false else SYSTEMD_CONF_OPTS += -Dlibidn=false -Dlibidn2=false endif ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) SYSTEMD_DEPENDENCIES += libseccomp SYSTEMD_CONF_OPTS += -Dseccomp=true else SYSTEMD_CONF_OPTS += -Dseccomp=false endif ifeq ($(BR2_PACKAGE_LIBXKBCOMMON),y) SYSTEMD_DEPENDENCIES += libxkbcommon SYSTEMD_CONF_OPTS += -Dxkbcommon=true else SYSTEMD_CONF_OPTS += -Dxkbcommon=false endif ifeq ($(BR2_PACKAGE_BZIP2),y) SYSTEMD_DEPENDENCIES += bzip2 SYSTEMD_CONF_OPTS += -Dbzip2=true else SYSTEMD_CONF_OPTS += -Dbzip2=false endif ifeq ($(BR2_PACKAGE_ZSTD),y) SYSTEMD_DEPENDENCIES += zstd SYSTEMD_CONF_OPTS += -Dzstd=true else SYSTEMD_CONF_OPTS += -Dzstd=false endif ifeq ($(BR2_PACKAGE_LZ4),y) SYSTEMD_DEPENDENCIES += lz4 SYSTEMD_CONF_OPTS += -Dlz4=true else SYSTEMD_CONF_OPTS += -Dlz4=false endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) SYSTEMD_DEPENDENCIES += linux-pam SYSTEMD_CONF_OPTS += -Dpam=true else SYSTEMD_CONF_OPTS += -Dpam=false endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBFDISK),y) SYSTEMD_CONF_OPTS += -Dfdisk=true else SYSTEMD_CONF_OPTS += -Dfdisk=false endif ifeq ($(BR2_PACKAGE_VALGRIND),y) SYSTEMD_DEPENDENCIES += valgrind SYSTEMD_CONF_OPTS += -Dvalgrind=true else SYSTEMD_CONF_OPTS += -Dvalgrind=false endif ifeq ($(BR2_PACKAGE_XZ),y) SYSTEMD_DEPENDENCIES += xz SYSTEMD_CONF_OPTS += -Dxz=true else SYSTEMD_CONF_OPTS += -Dxz=false endif ifeq ($(BR2_PACKAGE_ZLIB),y) SYSTEMD_DEPENDENCIES += zlib SYSTEMD_CONF_OPTS += -Dzlib=true else SYSTEMD_CONF_OPTS += -Dzlib=false endif ifeq ($(BR2_PACKAGE_LIBCURL),y) SYSTEMD_DEPENDENCIES += libcurl SYSTEMD_CONF_OPTS += -Dlibcurl=true else SYSTEMD_CONF_OPTS += -Dlibcurl=false endif ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) SYSTEMD_DEPENDENCIES += libgcrypt SYSTEMD_CONF_OPTS += -Ddefault-dnssec=allow-downgrade -Dgcrypt=true else SYSTEMD_CONF_OPTS += -Ddefault-dnssec=no -Dgcrypt=false endif ifeq ($(BR2_PACKAGE_P11_KIT),y) SYSTEMD_DEPENDENCIES += p11-kit SYSTEMD_CONF_OPTS += -Dp11kit=true else SYSTEMD_CONF_OPTS += -Dp11kit=false endif ifeq ($(BR2_PACKAGE_OPENSSL),y) SYSTEMD_DEPENDENCIES += openssl SYSTEMD_CONF_OPTS += -Dopenssl=true else SYSTEMD_CONF_OPTS += -Dopenssl=false endif ifeq ($(BR2_PACKAGE_PCRE2),y) SYSTEMD_DEPENDENCIES += pcre2 SYSTEMD_CONF_OPTS += -Dpcre2=true else SYSTEMD_CONF_OPTS += -Dpcre2=false endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),y) SYSTEMD_CONF_OPTS += -Dblkid=true else SYSTEMD_CONF_OPTS += -Dblkid=false endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_NOLOGIN),y) SYSTEMD_CONF_OPTS += -Dnologin-path=/sbin/nologin else SYSTEMD_CONF_OPTS += -Dnologin-path=/bin/false endif ifeq ($(BR2_PACKAGE_SYSTEMD_INITRD),y) SYSTEMD_CONF_OPTS += -Dinitrd=true else SYSTEMD_CONF_OPTS += -Dinitrd=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_KERNELINSTALL),y) SYSTEMD_CONF_OPTS += -Dkernel-install=true else SYSTEMD_CONF_OPTS += -Dkernel-install=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_ANALYZE),y) SYSTEMD_CONF_OPTS += -Danalyze=true else SYSTEMD_CONF_OPTS += -Danalyze=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE),y) # remote also depends on libcurl, this is already added above. SYSTEMD_DEPENDENCIES += libmicrohttpd SYSTEMD_CONF_OPTS += -Dremote=true -Dmicrohttpd=true SYSTEMD_REMOTE_USER = systemd-journal-remote -1 systemd-journal-remote -1 * - - - systemd Journal Remote else SYSTEMD_CONF_OPTS += -Dremote=false -Dmicrohttpd=false endif ifeq ($(BR2_PACKAGE_LIBQRENCODE),y) SYSTEMD_DEPENDENCIES += libqrencode SYSTEMD_CONF_OPTS += -Dqrencode=true else SYSTEMD_CONF_OPTS += -Dqrencode=false endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) SYSTEMD_DEPENDENCIES += libselinux SYSTEMD_CONF_OPTS += -Dselinux=true else SYSTEMD_CONF_OPTS += -Dselinux=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_HWDB),y) SYSTEMD_CONF_OPTS += -Dhwdb=true define SYSTEMD_BUILD_HWDB $(HOST_DIR)/bin/udevadm hwdb --update --root $(TARGET_DIR) endef SYSTEMD_TARGET_FINALIZE_HOOKS += SYSTEMD_BUILD_HWDB define SYSTEMD_RM_HWDB_SRV rm -rf $(TARGET_DIR)/$(HOST_EUDEV_SYSCONFDIR)/udev/hwdb.d/ endef SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_RM_HWDB_SRV else SYSTEMD_CONF_OPTS += -Dhwdb=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_BINFMT),y) SYSTEMD_CONF_OPTS += -Dbinfmt=true else SYSTEMD_CONF_OPTS += -Dbinfmt=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_VCONSOLE),y) SYSTEMD_CONF_OPTS += -Dvconsole=true else SYSTEMD_CONF_OPTS += -Dvconsole=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_QUOTACHECK),y) SYSTEMD_CONF_OPTS += -Dquotacheck=true else SYSTEMD_CONF_OPTS += -Dquotacheck=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_TMPFILES),y) SYSTEMD_CONF_OPTS += -Dtmpfiles=true else SYSTEMD_CONF_OPTS += -Dtmpfiles=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_SYSUSERS),y) SYSTEMD_CONF_OPTS += -Dsysusers=true else SYSTEMD_CONF_OPTS += -Dsysusers=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_FIRSTBOOT),y) SYSTEMD_CONF_OPTS += -Dfirstboot=true else SYSTEMD_CONF_OPTS += -Dfirstboot=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_RANDOMSEED),y) SYSTEMD_CONF_OPTS += -Drandomseed=true else SYSTEMD_CONF_OPTS += -Drandomseed=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_BACKLIGHT),y) SYSTEMD_CONF_OPTS += -Dbacklight=true else SYSTEMD_CONF_OPTS += -Dbacklight=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_RFKILL),y) SYSTEMD_CONF_OPTS += -Drfkill=true else SYSTEMD_CONF_OPTS += -Drfkill=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_LOGIND),y) SYSTEMD_CONF_OPTS += -Dlogind=true else SYSTEMD_CONF_OPTS += -Dlogind=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_MACHINED),y) SYSTEMD_CONF_OPTS += -Dmachined=true -Dnss-mymachines=true else SYSTEMD_CONF_OPTS += -Dmachined=false -Dnss-mymachines=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_IMPORTD),y) SYSTEMD_CONF_OPTS += -Dimportd=true else SYSTEMD_CONF_OPTS += -Dimportd=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_HOMED),y) SYSTEMD_CONF_OPTS += -Dhomed=true SYSTEMD_DEPENDENCIES += cryptsetup openssl else SYSTEMD_CONF_OPTS += -Dhomed=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_HOSTNAMED),y) SYSTEMD_CONF_OPTS += -Dhostnamed=true else SYSTEMD_CONF_OPTS += -Dhostnamed=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_MYHOSTNAME),y) SYSTEMD_CONF_OPTS += -Dnss-myhostname=true else SYSTEMD_CONF_OPTS += -Dnss-myhostname=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_TIMEDATED),y) SYSTEMD_CONF_OPTS += -Dtimedated=true else SYSTEMD_CONF_OPTS += -Dtimedated=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_LOCALED),y) SYSTEMD_CONF_OPTS += -Dlocaled=true else SYSTEMD_CONF_OPTS += -Dlocaled=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_REPART),y) SYSTEMD_CONF_OPTS += -Drepart=true SYSTEMD_DEPENDENCIES += openssl else SYSTEMD_CONF_OPTS += -Drepart=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_USERDB),y) SYSTEMD_CONF_OPTS += -Duserdb=true else SYSTEMD_CONF_OPTS += -Duserdb=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_COREDUMP),y) SYSTEMD_CONF_OPTS += -Dcoredump=true SYSTEMD_COREDUMP_USER = systemd-coredump -1 systemd-coredump -1 * - - - systemd core dump processing else SYSTEMD_CONF_OPTS += -Dcoredump=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_PSTORE),y) SYSTEMD_CONF_OPTS += -Dpstore=true else SYSTEMD_CONF_OPTS += -Dpstore=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_OOMD),y) SYSTEMD_CONF_OPTS += -Doomd=true else SYSTEMD_CONF_OPTS += -Doomd=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_POLKIT),y) SYSTEMD_CONF_OPTS += -Dpolkit=true SYSTEMD_DEPENDENCIES += polkit else SYSTEMD_CONF_OPTS += -Dpolkit=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_PORTABLED),y) SYSTEMD_CONF_OPTS += -Dportabled=true else SYSTEMD_CONF_OPTS += -Dportabled=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_SYSEXT),y) SYSTEMD_CONF_OPTS += -Dsysext=true else SYSTEMD_CONF_OPTS += -Dsysext=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y) SYSTEMD_CONF_OPTS += -Dnetworkd=true SYSTEMD_NETWORKD_USER = systemd-network -1 systemd-network -1 * - - - systemd Network Management SYSTEMD_NETWORKD_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP)) ifneq ($(SYSTEMD_NETWORKD_DHCP_IFACE),) define SYSTEMD_INSTALL_NETWORK_CONFS sed s/SYSTEMD_NETWORKD_DHCP_IFACE/$(SYSTEMD_NETWORKD_DHCP_IFACE)/ \ $(SYSTEMD_PKGDIR)/dhcp.network > \ $(TARGET_DIR)/etc/systemd/network/$(SYSTEMD_NETWORKD_DHCP_IFACE).network endef endif else SYSTEMD_CONF_OPTS += -Dnetworkd=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_RESOLVED),y) define SYSTEMD_INSTALL_RESOLVCONF_HOOK ln -sf ../run/systemd/resolve/resolv.conf \ $(TARGET_DIR)/etc/resolv.conf endef SYSTEMD_CONF_OPTS += -Dnss-resolve=true -Dresolve=true SYSTEMD_RESOLVED_USER = systemd-resolve -1 systemd-resolve -1 * - - - systemd Resolver else SYSTEMD_CONF_OPTS += -Dnss-resolve=false -Dresolve=false endif ifeq ($(BR2_PACKAGE_GNUTLS),y) SYSTEMD_CONF_OPTS += -Ddns-over-tls=gnutls -Ddefault-dns-over-tls=opportunistic SYSTEMD_DEPENDENCIES += gnutls else ifeq ($(BR2_PACKAGE_OPENSSL),y) SYSTEMD_CONF_OPTS += -Ddns-over-tls=openssl -Ddefault-dns-over-tls=opportunistic SYSTEMD_DEPENDENCIES += openssl else SYSTEMD_CONF_OPTS += -Ddns-over-tls=false -Ddefault-dns-over-tls=no endif ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y) SYSTEMD_CONF_OPTS += -Dtimesyncd=true SYSTEMD_TIMESYNCD_USER = systemd-timesync -1 systemd-timesync -1 * - - - systemd Time Synchronization else SYSTEMD_CONF_OPTS += -Dtimesyncd=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT),y) SYSTEMD_CONF_OPTS += -Dsmack=true else SYSTEMD_CONF_OPTS += -Dsmack=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_HIBERNATE),y) SYSTEMD_CONF_OPTS += -Dhibernate=true else SYSTEMD_CONF_OPTS += -Dhibernate=false endif ifeq ($(BR2_PACKAGE_SYSTEMD_BOOT),y) SYSTEMD_INSTALL_IMAGES = YES SYSTEMD_DEPENDENCIES += gnu-efi SYSTEMD_CONF_OPTS += \ -Defi=true \ -Dgnu-efi=true \ -Defi-cc=$(TARGET_CC) \ -Defi-ld=$(TARGET_LD) \ -Defi-libdir=$(STAGING_DIR)/usr/lib \ -Defi-includedir=$(STAGING_DIR)/usr/include/efi SYSTEMD_BOOT_EFI_ARCH = $(call qstrip,$(BR2_PACKAGE_SYSTEMD_BOOT_EFI_ARCH)) define SYSTEMD_INSTALL_BOOT_FILES $(INSTALL) -D -m 0644 $(@D)/build/src/boot/efi/systemd-boot$(SYSTEMD_BOOT_EFI_ARCH).efi \ $(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(SYSTEMD_BOOT_EFI_ARCH).efi $(INSTALL) -D -m 0644 $(SYSTEMD_PKGDIR)/boot-files/loader.conf \ $(BINARIES_DIR)/efi-part/loader/loader.conf $(INSTALL) -D -m 0644 $(SYSTEMD_PKGDIR)/boot-files/buildroot.conf \ $(BINARIES_DIR)/efi-part/loader/entries/buildroot.conf endef else SYSTEMD_CONF_OPTS += -Defi=false -Dgnu-efi=false endif # BR2_PACKAGE_SYSTEMD_BOOT == y SYSTEMD_FALLBACK_HOSTNAME = $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME)) ifneq ($(SYSTEMD_FALLBACK_HOSTNAME),) SYSTEMD_CONF_OPTS += -Dfallback-hostname=$(SYSTEMD_FALLBACK_HOSTNAME) endif define SYSTEMD_INSTALL_INIT_HOOK ln -fs multi-user.target \ $(TARGET_DIR)/usr/lib/systemd/system/default.target endef define SYSTEMD_INSTALL_MACHINEID_HOOK touch $(TARGET_DIR)/etc/machine-id endef SYSTEMD_POST_INSTALL_TARGET_HOOKS += \ SYSTEMD_INSTALL_INIT_HOOK \ SYSTEMD_INSTALL_MACHINEID_HOOK define SYSTEMD_INSTALL_IMAGES_CMDS $(SYSTEMD_INSTALL_BOOT_FILES) endef define SYSTEMD_USERS # udev user groups # systemd user groups - - systemd-journal -1 * - - - Journal $(SYSTEMD_REMOTE_USER) $(SYSTEMD_COREDUMP_USER) $(SYSTEMD_NETWORKD_USER) $(SYSTEMD_RESOLVED_USER) $(SYSTEMD_TIMESYNCD_USER) endef define SYSTEMD_INSTALL_NSSCONFIG_HOOK $(SED) '/^passwd:/ {/systemd/! s/$$/ systemd/}' \ -e '/^group:/ {/systemd/! s/$$/ [SUCCESS=merge] systemd/}' \ -e '/^shadow:/ {/systemd/! s/$$/ systemd/}' \ -e '/^gshadow:/ {/systemd/! s/$$/ systemd/}' \ $(if $(BR2_PACKAGE_SYSTEMD_RESOLVED), \ -e '/^hosts:/ s/[[:space:]]*mymachines//' \ -e '/^hosts:/ {/resolve/! s/files/files resolve [!UNAVAIL=return]/}' ) \ $(if $(BR2_PACKAGE_SYSTEMD_MYHOSTNAME), \ -e '/^hosts:/ {/myhostname/! s/$$/ myhostname/}' ) \ $(if $(BR2_PACKAGE_SYSTEMD_MACHINED), \ -e '/^passwd:/ {/mymachines/! s/files/files mymachines/}' \ -e '/^group:/ {/mymachines/! s/files/files [SUCCESS=merge] mymachines/}' \ -e '/^hosts:/ {/mymachines/! s/files/files mymachines/}' ) \ $(TARGET_DIR)/etc/nsswitch.conf endef SYSTEMD_TARGET_FINALIZE_HOOKS += \ SYSTEMD_INSTALL_NSSCONFIG_HOOK \ SYSTEMD_INSTALL_RESOLVCONF_HOOK ifneq ($(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)),) # systemd provides multiple units to autospawn getty as neede # * getty@.service to start a getty on normal TTY # * sertial-getty@.service to start a getty on serial lines # * console-getty.service for generic /dev/console # * container-getty@.service for a getty on /dev/pts/* # # the generator systemd-getty-generator will # * read the console= kernel command line parameter # * enable one of the above units depending on what it finds # # Systemd defaults to enablinb getty@tty1.service # # What we want to do # * Enable a getty on $BR2_TARGET_GENERIC_TTY_PATH # * Set the baudrate for all units according to BR2_TARGET_GENERIC_GETTY_BAUDRATE # * Always enable a getty on the console using systemd-getty-generator # (backward compatibility with previous releases of buildroot) # # What we do # * disable getty@tty1 (enabled by upstream systemd) # * enable getty@xxx if $BR2_TARGET_GENERIC_TTY_PATH is a tty # * enable serial-getty@xxx for other $BR2_TARGET_GENERIC_TTY_PATH # * rewrite baudrates if a baudrate is provided define SYSTEMD_INSTALL_SERVICE_TTY mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/getty@.service.d; \ printf '[Install]\nDefaultInstance=\n' \ >$(TARGET_DIR)/usr/lib/systemd/system/getty@.service.d/buildroot-console.conf; \ if [ $(BR2_TARGET_GENERIC_GETTY_PORT) = "console" ]; \ then \ : ; \ elif echo $(BR2_TARGET_GENERIC_GETTY_PORT) | egrep -q 'tty[0-9]*$$'; \ then \ printf '[Install]\nDefaultInstance=%s\n' \ $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) \ >$(TARGET_DIR)/usr/lib/systemd/system/getty@.service.d/buildroot-console.conf; \ else \ mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/serial-getty@.service.d;\ printf '[Install]\nDefaultInstance=%s\n' \ $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) \ >$(TARGET_DIR)/usr/lib/systemd/system/serial-getty@.service.d/buildroot-console.conf;\ fi; \ if [ $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) -gt 0 ] ; \ then \ $(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/getty@.service; \ $(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/serial-getty@.service; \ $(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/console-getty@.service; \ $(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/container-getty@.service; \ fi endef endif define SYSTEMD_INSTALL_PRESET $(INSTALL) -D -m 644 $(SYSTEMD_PKGDIR)/80-buildroot.preset $(TARGET_DIR)/usr/lib/systemd/system-preset/80-buildroot.preset endef define SYSTEMD_INSTALL_INIT_SYSTEMD $(SYSTEMD_INSTALL_PRESET) $(SYSTEMD_INSTALL_SERVICE_TTY) $(SYSTEMD_INSTALL_NETWORK_CONFS) endef define SYSTEMD_PRESET_ALL $(HOST_DIR)/bin/systemctl --root=$(TARGET_DIR) preset-all endef SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_PRESET_ALL SYSTEMD_CONF_ENV = $(HOST_UTF8_LOCALE_ENV) SYSTEMD_NINJA_ENV = $(HOST_UTF8_LOCALE_ENV) define SYSTEMD_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS) $(call KCONFIG_ENABLE_OPT,CONFIG_FHANDLE) $(call KCONFIG_ENABLE_OPT,CONFIG_EPOLL) $(call KCONFIG_ENABLE_OPT,CONFIG_SIGNALFD) $(call KCONFIG_ENABLE_OPT,CONFIG_TIMERFD) $(call KCONFIG_ENABLE_OPT,CONFIG_INOTIFY_USER) $(call KCONFIG_ENABLE_OPT,CONFIG_PROC_FS) $(call KCONFIG_ENABLE_OPT,CONFIG_SYSFS) $(call KCONFIG_ENABLE_OPT,CONFIG_AUTOFS4_FS) $(call KCONFIG_ENABLE_OPT,CONFIG_TMPFS_POSIX_ACL) $(call KCONFIG_ENABLE_OPT,CONFIG_TMPFS_XATTR) endef # We need a very minimal host variant, so we disable as much as possible. HOST_SYSTEMD_CONF_OPTS = \ -Dsplit-bin=true \ -Dsplit-usr=false \ --prefix=/usr \ --libdir=lib \ --sysconfdir=/etc \ --localstatedir=/var \ -Dmode=release \ -Dutmp=false \ -Dhibernate=false \ -Dldconfig=false \ -Dresolve=false \ -Defi=false \ -Dtpm=false \ -Denvironment-d=false \ -Dbinfmt=false \ -Drepart=false \ -Dcoredump=false \ -Dpstore=false \ -Doomd=false \ -Dlogind=false \ -Dhostnamed=false \ -Dlocaled=false \ -Dmachined=false \ -Dportabled=false \ -Dsysext=false \ -Duserdb=false \ -Dhomed=false \ -Dnetworkd=false \ -Dtimedated=false \ -Dtimesyncd=false \ -Dremote=false \ -Dcreate-log-dirs=false \ -Dnss-myhostname=false \ -Dnss-mymachines=false \ -Dnss-resolve=false \ -Dnss-systemd=false \ -Dfirstboot=false \ -Drandomseed=false \ -Dbacklight=false \ -Dvconsole=false \ -Dquotacheck=false \ -Dsysusers=false \ -Dtmpfiles=false \ -Dimportd=false \ -Dhwdb=false \ -Drfkill=false \ -Dman=false \ -Dhtml=false \ -Dsmack=false \ -Dpolkit=false \ -Dblkid=false \ -Didn=false \ -Dadm-group=false \ -Dwheel-group=false \ -Dzlib=false \ -Dgshadow=false \ -Dima=false \ -Dtests=false \ -Dglib=false \ -Dacl=false \ -Dsysvinit-path='' \ -Dinitrd=false \ -Dxdg-autostart=false \ -Dkernel-install=false \ -Danalyze=false \ -Dlibcryptsetup=false \ -Daudit=false \ -Dzstd=false HOST_SYSTEMD_DEPENDENCIES = \ $(BR2_COREUTILS_HOST_DEPENDENCY) \ host-util-linux \ host-patchelf \ host-libcap \ host-gperf \ host-python-jinja2 HOST_SYSTEMD_NINJA_ENV = DESTDIR=$(HOST_DIR) # Fix RPATH After installation # * systemd provides a install_rpath instruction to meson because the binaries # need to link with libsystemd which is not in a standard path # * meson can only replace the RPATH, not append to it # * the original rpath is thus lost. # * the original path had been tweaked by buildroot via LDFLAGS to add # $(HOST_DIR)/lib # * thus re-tweak rpath after the installation for all binaries that need it HOST_SYSTEMD_HOST_TOOLS = busctl journalctl systemctl systemd-* udevadm define HOST_SYSTEMD_FIX_RPATH for f in $(addprefix $(HOST_DIR)/bin/,$(HOST_SYSTEMD_HOST_TOOLS)); do \ [ -e $$f ] || continue; \ $(HOST_DIR)/bin/patchelf --set-rpath $(HOST_DIR)/lib:$(HOST_DIR)/lib/systemd $${f} \ || exit 1; \ done endef HOST_SYSTEMD_POST_INSTALL_HOOKS += HOST_SYSTEMD_FIX_RPATH $(eval $(meson-package)) $(eval $(host-meson-package)) ================================================ FILE: package/systemd-bootchart/Config.in ================================================ config BR2_PACKAGE_SYSTEMD_BOOTCHART_ARCH_SUPPORTS bool # see src/architecture.h default y if BR2_aarch64 || BR2_aarch64_be default y if BR2_arm || BR2_armeb default y if BR2_i386 || BR2_x86_64 default y if BR2_m68k default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le default y if BR2_sh default y if BR2_sparc || BR2_sparc64 config BR2_PACKAGE_SYSTEMD_BOOTCHART bool "systemd-bootchart" depends on BR2_PACKAGE_SYSTEMD_BOOTCHART_ARCH_SUPPORTS 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_PACKAGE_SYSTEMD_BOOTCHART_ARCH_SUPPORTS depends on BR2_INIT_SYSTEMD depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 ================================================ FILE: package/systemd-bootchart/systemd-bootchart.hash ================================================ # sha256 locally computed sha256 f4cb17b21928e36ec27de5c5294dea6ec1de4acd7ee6c56d6ecc75319cbcaefa systemd-bootchart-233.tar.xz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSE.LGPL2.1 ================================================ FILE: package/systemd-bootchart/systemd-bootchart.mk ================================================ ################################################################################ # # systemd-bootchart # ################################################################################ SYSTEMD_BOOTCHART_VERSION = 233 SYSTEMD_BOOTCHART_SOURCE = systemd-bootchart-$(SYSTEMD_BOOTCHART_VERSION).tar.xz # Do not use the github helper here: the uploaded release tarball already # contains the generated autotools scripts. It also slightly differs with # two missing source files... :-/ SYSTEMD_BOOTCHART_SITE = https://github.com/systemd/systemd-bootchart/releases/download/v$(SYSTEMD_BOOTCHART_VERSION) SYSTEMD_BOOTCHART_LICENSE = LGPL-2.1+ SYSTEMD_BOOTCHART_LICENSE_FILES = LICENSE.LGPL2.1 SYSTEMD_BOOTCHART_DEPENDENCIES = systemd SYSTEMD_BOOTCHART_CONF_OPTS = --disable-man $(eval $(autotools-package)) ================================================ FILE: package/sysvinit/0001-Makefile-disable-stack-protector-strong.patch ================================================ From 0759f3f9bb2850df455599e7c82eda4ec804e3b6 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Wed, 10 Mar 2021 22:57:50 +0100 Subject: [PATCH] Makefile: disable stack-protector-strong Fixes: .../aarch64-buildroot-linux-uclibc/bin/ld: runlevel.o: in function `main': runlevel.c:(.text.startup+0x4): undefined reference to `__stack_chk_guard' .../aarch64-buildroot-linux-uclibc/bin/ld: cannot find -lssp_nonshared .../aarch64-buildroot-linux-uclibc/bin/ld: cannot find -lssp Signed-off-by: Peter Seiderer --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 1b368dc..1985929 100644 --- a/src/Makefile +++ b/src/Makefile @@ -10,7 +10,7 @@ CPPFLAGS = CFLAGS ?= -O2 -override CFLAGS += -ansi -fomit-frame-pointer -fstack-protector-strong -W -Wall -Wunreachable-code -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -D_XOPEN_SOURCE -D_GNU_SOURCE -DVERSION=\"$(VERSION)\" +override CFLAGS += -ansi -fomit-frame-pointer -W -Wall -Wunreachable-code -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -D_XOPEN_SOURCE -D_GNU_SOURCE -DVERSION=\"$(VERSION)\" override CFLAGS += $(shell getconf LFS_CFLAGS) STATIC = MANDB := s@^\('\\\\\"\)[^\*-]*-\*- coding: [^[:blank:]]\+ -\*-@\1@ -- 2.30.1 ================================================ FILE: package/sysvinit/Config.in ================================================ 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 System V style implementation of /sbin/init, parent of all processes http://savannah.nongnu.org/projects/sysvinit ================================================ FILE: package/sysvinit/inittab ================================================ # /etc/inittab # # This inittab is a basic inittab sample for sysvinit, which mimics # Buildroot's default inittab for BusyBox. id:3:initdefault: si0::sysinit:/bin/mount -t proc proc /proc si1::sysinit:/bin/mount -o remount,rw / si2::sysinit:/bin/mkdir -p /dev/pts /dev/shm si3::sysinit:/bin/mount -a si4::sysinit:/sbin/swapon -a si5::sysinit:/bin/ln -sf /proc/self/fd /dev/fd 2>/dev/null si6::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin 2>/dev/null si7::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout 2>/dev/null si8::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr 2>/dev/null si9::sysinit:/bin/hostname -F /etc/hostname rcS:12345:wait:/etc/init.d/rcS # S0:1:respawn:/sbin/getty -L ttyS0 115200 vt100 # GENERIC_SERIAL # Stuff to do for the 3-finger salute #ca::ctrlaltdel:/sbin/reboot # Stuff to do before rebooting shd0:06:wait:/etc/init.d/rcK shd1:06:wait:/sbin/swapoff -a shd2:06:wait:/bin/umount -a -r # The usual halt or reboot actions hlt0:0:wait:/sbin/halt -dhp reb0:6:wait:/sbin/reboot ================================================ FILE: package/sysvinit/sysvinit.hash ================================================ # Locally computed: sha256 b05c3677bb698afe64c997968b00c49b2a9bd320ce963523230ee7ea41197757 sysvinit-2.99.tar.xz # Hash for license files: sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/sysvinit/sysvinit.mk ================================================ ################################################################################ # # sysvinit # ################################################################################ SYSVINIT_VERSION = 2.99 SYSVINIT_SOURCE = sysvinit-$(SYSVINIT_VERSION).tar.xz SYSVINIT_SITE = http://download.savannah.nongnu.org/releases/sysvinit SYSVINIT_LICENSE = GPL-2.0+ SYSVINIT_LICENSE_FILES = COPYING SYSVINIT_CPE_ID_VENDOR = sysvinit_project SYSVINIT_MAKE_OPTS = SYSROOT=$(STAGING_DIR) ifeq ($(BR2_PACKAGE_LIBSELINUX),y) SYSVINIT_DEPENDENCIES += libselinux SYSVINIT_MAKE_OPTS += WITH_SELINUX="yes" endif define SYSVINIT_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) $(SYSVINIT_MAKE_OPTS) -C $(@D)/src endef define SYSVINIT_INSTALL_TARGET_CMDS for x in halt init shutdown killall5; do \ $(INSTALL) -D -m 0755 $(@D)/src/$$x $(TARGET_DIR)/sbin/$$x || exit 1; \ done $(INSTALL) -D -m 0644 package/sysvinit/inittab $(TARGET_DIR)/etc/inittab ln -sf /sbin/halt $(TARGET_DIR)/sbin/reboot ln -sf /sbin/halt $(TARGET_DIR)/sbin/poweroff ln -sf killall5 $(TARGET_DIR)/sbin/pidof endef ifeq ($(BR2_TARGET_GENERIC_GETTY),y) define SYSVINIT_SET_GETTY $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(shell echo $(SYSTEM_GETTY_PORT) | tail -c+4)::respawn:/sbin/getty -L $(SYSTEM_GETTY_OPTIONS) $(SYSTEM_GETTY_PORT) $(SYSTEM_GETTY_BAUDRATE) $(SYSTEM_GETTY_TERM) #~' \ $(TARGET_DIR)/etc/inittab endef else define SYSVINIT_SET_GETTY $(SED) '/# GENERIC_SERIAL$$/s~^.*#~# S0:1:respawn:/sbin/getty -L ttyS0 115200 vt100 #~' \ $(TARGET_DIR)/etc/inittab endef endif # BR2_TARGET_GENERIC_GETTY SYSVINIT_TARGET_FINALIZE_HOOKS += SYSVINIT_SET_GETTY SYSVINIT_TARGET_FINALIZE_HOOKS += SYSTEM_REMOUNT_ROOT_INITTAB $(eval $(generic-package)) ================================================ FILE: package/szip/Config.in ================================================ config BR2_PACKAGE_SZIP bool "szip" help Szip is an implementation of the extended-Rice lossless compression algorithm. The Consultative Committee on Space Data Systems (CCSDS) has adopted the extended-Rice algorithm for international standards for space applications[1,6,7]. Szip is reported to provide fast and effective compression, specifically for the EOS data generated by the NASA Earth Observatory System (EOS)[1]. It was originally developed at University of New Mexico (UNM) and integrated with HDF4 by UNM researchers and developers. http://www.hdfgroup.org/doc_resource/SZIP ================================================ FILE: package/szip/szip.hash ================================================ # Locally computed sha256 21ee958b4f2d4be2c9cabfa5e1a94877043609ce86fde5f286f105f7ff84d412 szip-2.1.1.tar.gz sha256 98cc66747133b26563fefc4630ad4c8c7848c722c7b8a60ecd4afbc4c7d7eb01 COPYING ================================================ FILE: package/szip/szip.mk ================================================ ################################################################################ # # szip # ################################################################################ SZIP_VERSION = 2.1.1 SZIP_SITE = http://www.hdfgroup.org/ftp/lib-external/szip/2.1.1/src SZIP_LICENSE = szip license SZIP_LICENSE_FILES = COPYING SZIP_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/taglib/0001-fix-taglib-config-file-for-cross-compiling-906.patch ================================================ From 7470f92a67375d00e53b3785a88fa7b26ad6f1da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krause?= Date: Fri, 17 May 2019 13:13:35 +0200 Subject: [PATCH] fix taglib-config file for cross compiling (#906) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The current taglib-config program does not work for cross-compiling as it only returns the paths to the host, which breaks building programs which uses `taglib-config` to link against taglib. Fix this by passing sysroot to the `prefix` and `exec_prefix` fields. Backported from: 7470f92a67375d00e53b3785a88fa7b26ad6f1da Signed-off-by: Jörg Krause --- CMakeLists.txt | 2 +- taglib-config.cmake | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2de06324..1a0302c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -105,7 +105,7 @@ math(EXPR TAGLIB_SOVERSION_PATCH "${TAGLIB_SOVERSION_REVISION}") include(ConfigureChecks.cmake) if(NOT WIN32) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/taglib-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/taglib-config") + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/taglib-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/taglib-config" @ONLY) install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/taglib-config" DESTINATION "${BIN_INSTALL_DIR}") endif() diff --git a/taglib-config.cmake b/taglib-config.cmake index 2bc2811a..96ef6883 100644 --- a/taglib-config.cmake +++ b/taglib-config.cmake @@ -14,10 +14,10 @@ EOH exit 1; } -prefix=${CMAKE_INSTALL_PREFIX} -exec_prefix=${CMAKE_INSTALL_PREFIX} -libdir=${LIB_INSTALL_DIR} -includedir=${INCLUDE_INSTALL_DIR} +prefix=@CMAKE_SYSROOT@@CMAKE_INSTALL_PREFIX@ +exec_prefix=@CMAKE_SYSROOT@@CMAKE_INSTALL_PREFIX@ +libdir=${exec_prefix}/lib +includedir=${prefix}/include flags="" @@ -35,7 +35,7 @@ do flags="$flags -I$includedir/taglib" ;; --version) - echo ${TAGLIB_LIB_VERSION_STRING} + echo @TAGLIB_LIB_VERSION_STRING@ ;; --prefix) echo $prefix -- 2.22.0 ================================================ FILE: package/taglib/0002-Don-t-assume-TDRC-is-an-instance-of-TextIdentificationFrame.patch ================================================ From eb9ded1206f18f2c319157337edea2533a40bea6 Mon Sep 17 00:00:00 2001 From: "Stephen F. Booth" Date: Sun, 23 Jul 2017 10:11:09 -0400 Subject: [PATCH] Don't assume TDRC is an instance of TextIdentificationFrame If TDRC is encrypted, FrameFactory::createFrame() returns UnknownFrame which causes problems in rebuildAggregateFrames() when it is assumed that TDRC is a TextIdentificationFrame [Retrieved from: https://github.com/taglib/taglib/pull/831/commits/eb9ded1206f18f2c319157337edea2533a40bea6] Signed-off-by: Fabrice Fontaine --- taglib/mpeg/id3v2/id3v2framefactory.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/taglib/mpeg/id3v2/id3v2framefactory.cpp b/taglib/mpeg/id3v2/id3v2framefactory.cpp index 759a9b7be..9347ab869 100644 --- a/taglib/mpeg/id3v2/id3v2framefactory.cpp +++ b/taglib/mpeg/id3v2/id3v2framefactory.cpp @@ -334,10 +334,11 @@ void FrameFactory::rebuildAggregateFrames(ID3v2::Tag *tag) const tag->frameList("TDAT").size() == 1) { TextIdentificationFrame *tdrc = - static_cast(tag->frameList("TDRC").front()); + dynamic_cast(tag->frameList("TDRC").front()); UnknownFrame *tdat = static_cast(tag->frameList("TDAT").front()); - if(tdrc->fieldList().size() == 1 && + if(tdrc && + tdrc->fieldList().size() == 1 && tdrc->fieldList().front().size() == 4 && tdat->data().size() >= 5) { ================================================ FILE: package/taglib/0003-Fixed-OOB-read-when-loading-invalid-ogg-flac-file.patch ================================================ From 2c4ae870ec086f2ddd21a47861a3709c36faac45 Mon Sep 17 00:00:00 2001 From: Scott Gayou Date: Tue, 9 Oct 2018 18:46:55 -0500 Subject: [PATCH] Fixed OOB read when loading invalid ogg flac file. (#868) (#869) CVE-2018-11439 is caused by a failure to check the minimum length of a ogg flac header. This header is detailed in full at: https://xiph.org/flac/ogg_mapping.html. Added more strict checking for entire header. [Retrieved from: https://github.com/taglib/taglib/commit/2c4ae870ec086f2ddd21a47861a3709c36faac45] Signed-off-by: Fabrice Fontaine --- taglib/ogg/flac/oggflacfile.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/taglib/ogg/flac/oggflacfile.cpp b/taglib/ogg/flac/oggflacfile.cpp index 53d04508a..07ea9dccc 100644 --- a/taglib/ogg/flac/oggflacfile.cpp +++ b/taglib/ogg/flac/oggflacfile.cpp @@ -231,11 +231,21 @@ void Ogg::FLAC::File::scan() if(!metadataHeader.startsWith("fLaC")) { // FLAC 1.1.2+ + // See https://xiph.org/flac/ogg_mapping.html for the header specification. + if(metadataHeader.size() < 13) + return; + + if(metadataHeader[0] != 0x7f) + return; + if(metadataHeader.mid(1, 4) != "FLAC") return; - if(metadataHeader[5] != 1) - return; // not version 1 + if(metadataHeader[5] != 1 && metadataHeader[6] != 0) + return; // not version 1.0 + + if(metadataHeader.mid(9, 4) != "fLaC") + return; metadataHeader = metadataHeader.mid(13); } ================================================ FILE: package/taglib/Config.in ================================================ config BR2_PACKAGE_TAGLIB bool "taglib" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR help TagLib is a library for reading and editing the meta-data of several popular audio formats. Currently it supports both ID3v1 and ID3v2 for MP3 files, Ogg Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC, Speex, WavPack and TrueAudio files. http://taglib.org/ comment "taglib needs a toolchain w/ C++, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR ================================================ FILE: package/taglib/taglib.hash ================================================ # Locally calculated sha256 b6d1a5a610aae6ff39d93de5efd0fdc787aa9e9dc1e7026fa4c961b26563526b taglib-1.11.1.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPL sha256 53692a2ed6c6a2c6ec9b32dd0b820dfae91e0a1fcdf625ca9ed0bdf8705fcc4f COPYING.MPL ================================================ FILE: package/taglib/taglib.mk ================================================ ################################################################################ # # taglib # ################################################################################ TAGLIB_VERSION = 1.11.1 TAGLIB_SITE = http://taglib.github.io/releases TAGLIB_INSTALL_STAGING = YES TAGLIB_LICENSE = LGPL-2.1 or MPL-1.1 TAGLIB_LICENSE_FILES = COPYING.LGPL COPYING.MPL TAGLIB_CPE_ID_VENDOR = taglib # 0002-Don-t-assume-TDRC-is-an-instance-of-TextIdentificationFrame.patch TAGLIB_IGNORE_CVES += CVE-2017-12678 # 0003-Fixed-OOB-read-when-loading-invalid-ogg-flac-file.patch TAGLIB_IGNORE_CVES += CVE-2018-11439 ifeq ($(BR2_PACKAGE_ZLIB),y) TAGLIB_DEPENDENCIES += zlib endif define TAGLIB_REMOVE_DEVFILE rm -f $(TARGET_DIR)/usr/bin/taglib-config endef TAGLIB_POST_INSTALL_TARGET_HOOKS += TAGLIB_REMOVE_DEVFILE $(eval $(cmake-package)) ================================================ FILE: package/tar/0001-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch ================================================ From a0594387565e1e6b4a8a8ba04ad13b135cc1f0b5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 1 Apr 2021 07:49:46 +0200 Subject: [PATCH] lib/getrandom.c: fix build with uclibc < 1.0.35 Fix the following build failure with uclibc < 1.0.35 which is raised since the addition of getrandom module in https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=682cc4e678aceff32dea2a84b6e5147bdf5a20a7: In file included from ./sys/random.h:40, from getrandom.c:22: /tmp/instance-0/output-1/per-package/tar/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:35: error: unknown type name 'size_t' 27 | extern int getrandom(void *__buf, size_t count, unsigned int flags) | ^~~~~~ /tmp/instance-0/output-1/per-package/tar/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:8:1: note: 'size_t' is defined in header ''; did you forget to '#include '? 7 | #include +++ |+#include 8 | This patch is not upstreamable as it is only a workaround for uclibc < 1.0.35, upstream uclibc has been patched with https://github.com/wbx-github/uclibc-ng/commit/00972c02c2b6e0a95d5def4a71bdfb188e091782 Fixes: - http://autobuild.buildroot.org/results/f40e09d621ab5ba66dd97138dec174acfb7fda2a Signed-off-by: Fabrice Fontaine --- gnu/getrandom.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/getrandom.c b/gnu/getrandom.c index 41212fb32..0ad3f9648 100644 --- a/gnu/getrandom.c +++ b/gnu/getrandom.c @@ -19,6 +19,7 @@ #include +#include #include #include -- 2.30.2 ================================================ FILE: package/tar/Config.in ================================================ 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. http://www.gnu.org/software/tar/ comment "tar needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR depends on BR2_USE_MMU depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS ================================================ FILE: package/tar/tar.hash ================================================ # Locally calculated after checking signature sha256 63bebd26879c5e1eea4352f0d03c991f966aeb3ddeb3c7445c902568d5411d28 tar-1.34.tar.xz sha256 51337b19c71df92cd4f51c50efe4dc6ddc267d31fd54679be9e9bc2e6ce8132b tar-1.34.cpio.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/tar/tar.mk ================================================ ################################################################################ # # tar # ################################################################################ TAR_VERSION = 1.34 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 # so that we don't end up with two different tar TAR_CONF_OPTS = --exec-prefix=/ TAR_LICENSE = GPL-3.0+ TAR_LICENSE_FILES = COPYING TAR_CPE_ID_VENDOR = gnu # only tar <= 1.16 TAR_IGNORE_CVES += CVE-2007-4476 ifeq ($(BR2_PACKAGE_ACL),y) TAR_DEPENDENCIES += acl TAR_CONF_OPTS += --with-posix-acls else TAR_CONF_OPTS += --without-posix-acls endif ifeq ($(BR2_PACKAGE_ATTR),y) TAR_DEPENDENCIES += attr TAR_CONF_OPTS += --with-xattrs else TAR_CONF_OPTS += --without-xattrs endif $(eval $(autotools-package)) # host-tar: use cpio.gz instead of tar.gz to prevent chicken-egg problem # of needing tar to build tar. HOST_TAR_SOURCE = tar-$(TAR_VERSION).cpio.gz define HOST_TAR_EXTRACT_CMDS mkdir -p $(@D) cd $(@D) && \ $(call suitable-extractor,$(HOST_TAR_SOURCE)) $(TAR_DL_DIR)/$(HOST_TAR_SOURCE) | cpio -i --preserve-modification-time mv $(@D)/tar-$(HOST_TAR_VERSION)/* $(@D) rmdir $(@D)/tar-$(HOST_TAR_VERSION) endef HOST_TAR_CONF_OPTS = --without-selinux # we are built before ccache HOST_TAR_CONF_ENV = \ CC="$(HOSTCC_NOCCACHE)" \ CXX="$(HOSTCXX_NOCCACHE)" $(eval $(host-autotools-package)) ================================================ FILE: package/targetcli-fb/Config.in ================================================ comment "targetcli-fb depends on Python" depends on !BR2_PACKAGE_PYTHON3 config BR2_PACKAGE_TARGETCLI_FB bool "targetcli-fb" depends on BR2_PACKAGE_PYTHON3 # python-configshell-fb select BR2_PACKAGE_PYTHON_CONFIGSHELL_FB select BR2_PACKAGE_PYTHON_RTSLIB_FB select BR2_PACKAGE_PYTHON_SIX help targetcli-fb is a command-line interface for configuring the LIO generic SCSI target, present in 3.x Linux kernel versions. https://github.com/open-iscsi/targetcli-fb ================================================ FILE: package/targetcli-fb/S50target ================================================ #!/bin/sh # # Restore / clear the Linux "SCSI target" driver configuration with `targetctl` # start() { local ret printf "Restoring target configuration: " /usr/bin/targetctl restore >/dev/null 2>&1 ret=$? echo "done" return $ret } stop() { local ret printf "Clearing target configuration: " /usr/bin/targetctl clear >/dev/null 2>&1 ret=$? echo "done" return $ret } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: package/targetcli-fb/target.service ================================================ [Unit] Description=Restore LIO kernel target configuration Requires=sys-kernel-config.mount After=sys-kernel-config.mount network.target local-fs.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/targetctl restore ExecStop=/usr/bin/targetctl clear SyslogIdentifier=target [Install] WantedBy=multi-user.target ================================================ FILE: package/targetcli-fb/targetcli-fb.hash ================================================ # locally computed sha256 0f32ab6f3ecd234280d55be5e89ce2b3a02f9c82c8dccaae66e26464cff8901a targetcli-fb-2.1.fb41.tar.gz sha256 5df2a0d87d6c562f0ea11c688ac52532aa28d744cabc7994ff0537f64b3b3320 COPYING ================================================ FILE: package/targetcli-fb/targetcli-fb.mk ================================================ ################################################################################ # # targetcli-fb # ################################################################################ # When upgrading the version, be sure to also upgrade python-rtslib-fb # and python-configshell-fb at the same time. TARGETCLI_FB_VERSION = 2.1.fb41 TARGETCLI_FB_SITE = $(call github,open-iscsi,targetcli-fb,v$(TARGETCLI_FB_VERSION)) TARGETCLI_FB_LICENSE = Apache-2.0 TARGETCLI_FB_LICENSE_FILES = COPYING TARGETCLI_FB_SETUP_TYPE = setuptools TARGETCLI_FB_DEPENDENCIES = python-configshell-fb python-rtslib-fb python-six define TARGETCLI_FB_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/targetcli-fb/S50target \ $(TARGET_DIR)/etc/init.d/S50target endef define TARGETCLI_FB_INSTALL_INIT_SYSTEMD $(INSTALL) -m 0644 -D package/targetcli-fb/target.service \ $(TARGET_DIR)/usr/lib/systemd/system/target.service endef # Targetcli stores its configuration in /etc/target/saveconfig.json # and complains if the /etc/target/ directory does not exist. define TARGETCLI_FB_INSTALL_CONF_DIR $(INSTALL) -m 0755 -d $(TARGET_DIR)/etc/target endef TARGETCLI_FB_POST_INSTALL_TARGET_HOOKS += TARGETCLI_FB_INSTALL_CONF_DIR $(eval $(python-package)) ================================================ FILE: package/taskd/0001-Fix-missing-cmakedefine-HAVE_GET_CURRENT_DIR_NAME.patch ================================================ 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 ================================================ FILE: package/taskd/0002-Use-correct-variables-for-GnuTLS-detection.patch ================================================ From 88fee5c6eb2271d3de6b9878cd29a0494999aa18 Mon Sep 17 00:00:00 2001 From: "Arnout Vandecappelle (Essensium/Mind)" Date: Sun, 20 Nov 2016 23:46:45 +0100 Subject: [PATCH] Use correct variables for GnuTLS detection At least with recent CMake, it seems the variables created by find_package (GnuTLS) are called PC_GNUTLS_INCLUDE_DIRS and PC_GNUTLS_LIBRARIES. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d8125d9..ccf827b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -110,8 +110,8 @@ message ("-- Looking for GnuTLS") find_package (GnuTLS REQUIRED) if (GNUTLS_FOUND) set (HAVE_LIBGNUTLS true) - set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${GNUTLS_INCLUDE_DIR}) - set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${GNUTLS_LIBRARIES}) + set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${PC_GNUTLS_INCLUDE_DIRS}) + set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${PC_GNUTLS_LIBRARIES}) endif (GNUTLS_FOUND) message ("-- Looking for libuuid") -- 2.10.2 ================================================ FILE: package/taskd/0003-CMakeLists-use-pkg-config-uuid-detection.patch ================================================ CMakeLists.txt: use pkg-config to detect uuid when possible In order to take into account the libraries used by libuuid when building statically, using pkg-config is recommended. This patch therefore improves the CMakeLists.txt to use pkg-config to detect libuuid when pkg-config is available. Signed-off-by: Thomas Petazzoni Index: b/CMakeLists.txt =================================================================== --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ include (CheckFunctionExists) include (CheckStructHasMember) +include (FindPkgConfig) set (HAVE_CMAKE true) @@ -119,8 +120,16 @@ # Apple and FreeBSD include the uuid functions in their libc, rather than libuuid check_function_exists (uuid_unparse_lower HAVE_UUID_UNPARSE_LOWER) else (DARWIN OR FREEBSD) - find_path (UUID_INCLUDE_DIR uuid/uuid.h) - find_library (UUID_LIBRARY NAMES uuid) + if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_UUID uuid) + if(PC_UUID_FOUND) + set (UUID_INCLUDE_DIR ${PC_UUID_INCLUDE_DIRS}) + set (UUID_LIBRARY ${PC_UUID_LIBRARIES}) + endif(PC_UUID_FOUND) + else(PKG_CONFIG_FOUND) + find_path (UUID_INCLUDE_DIR uuid/uuid.h) + find_library (UUID_LIBRARY NAMES uuid) + endif(PKG_CONFIG_FOUND) if (UUID_INCLUDE_DIR AND UUID_LIBRARY) set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${UUID_INCLUDE_DIR}) set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${UUID_LIBRARY}) ================================================ FILE: package/taskd/Config.in ================================================ config BR2_PACKAGE_TASKD bool "taskd" depends on !BR2_STATIC_LIBS # gnutls depends on BR2_USE_WCHAR # gnutls 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, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \ BR2_STATIC_LIBS ================================================ FILE: package/taskd/taskd.hash ================================================ # From http://taskwarrior.org/download/ sha1 ded339deeee65277e4712f71a9159502f8b20b52 taskd-1.1.0.tar.gz # Locally calculated sha256 7b8488e687971ae56729ff4e2e5209ff8806cf8cd57718bfd7e521be130621b4 taskd-1.1.0.tar.gz sha256 84d1a8c2e6e306864ff350857a36b6c74756e61e2eae6822cf2fa88212720f68 COPYING ================================================ FILE: package/taskd/taskd.mk ================================================ ################################################################################ # # taskd # ################################################################################ TASKD_VERSION = 1.1.0 TASKD_SITE = http://taskwarrior.org/download TASKD_LICENSE = MIT TASKD_LICENSE_FILES = COPYING TASKD_DEPENDENCIES = gnutls util-linux host-pkgconf $(eval $(cmake-package)) ================================================ FILE: package/tcf-agent/Config.in ================================================ config BR2_PACKAGE_TCF_AGENT bool "tcf-agent" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_TCF_AGENT_ARCH_SUPPORTS depends on BR2_USE_MMU # util-linux select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Target Communication Framework Agent is an example application using the Target Communication Framework Library. Target Communication Framework is universal, extensible, simple, lightweight, vendor agnostic framework for tools and targets to communicate for purpose of debugging, profiling, code patching and other device software development needs. tcf-agent is a daemon, which provides TCF services that can be used by local and remote clients. https://wiki.eclipse.org/TCF config BR2_PACKAGE_TCF_AGENT_ARCH string default "arm" if BR2_arm || BR2_armeb default "a64" if BR2_aarch64 || BR2_aarch64_be default "i686" if BR2_i386 && BR2_ARCH="i686" default "i386" if BR2_i386 && !BR2_ARCH="i686" default "x86_64" if BR2_x86_64 default "powerpc" if BR2_powerpc || BR2_powerpcle default "ppc64" if BR2_powerpc64 || BR2_powerpc64le default "microblaze" if BR2_microblaze || BR2_microblazeel config BR2_PACKAGE_TCF_AGENT_ARCH_SUPPORTS bool default y if BR2_PACKAGE_TCF_AGENT_ARCH != "" comment "tcf-agent needs a toolchain w/ threads" depends on BR2_PACKAGE_TCF_AGENT_ARCH_SUPPORTS depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/tcf-agent/S55tcf-agent ================================================ #!/bin/sh DAEMON_PATH=/usr/sbin/tcf-agent DAEMON_NAME=tcf-agent DAEMON_ARGS="-L- -l0" PIDFILE=/var/run/$DAEMON_NAME.pid [ -r /etc/default/$DAEMON_NAME ] && . /etc/default/$DAEMON_NAME start() { printf "Starting $DAEMON_NAME: " start-stop-daemon -S -o -q -p $PIDFILE -m -b \ -x $DAEMON_PATH -- $DAEMON_ARGS [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping $DAEMON_NAME: " start-stop-daemon -K -o -q -p $PIDFILE \ -x $DAEMON_PATH [ $? = 0 ] && echo "OK" || echo "FAIL" } case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: package/tcf-agent/tcf-agent.hash ================================================ # Locally computed: sha256 2f8c7be8a0bf7c86c72fd5680bc19a9e8f98792d40c94a0fee30ceb6428b8f33 org.eclipse.tcf.agent-1.7.0.tar.gz # Hash for license files: sha256 f82d01b74a513bd3504d08136026a5ac2a7e6ff62ebcde391fa74aa222d11ce0 agent/edl-v10.html ================================================ FILE: package/tcf-agent/tcf-agent.mk ================================================ ################################################################################ # # tcf-agent # ################################################################################ TCF_AGENT_VERSION = 1.7.0 # the tar.xz link was broken the time this file got authored TCF_AGENT_SOURCE = org.eclipse.tcf.agent-$(TCF_AGENT_VERSION).tar.gz TCF_AGENT_SITE = http://git.eclipse.org/c/tcf/org.eclipse.tcf.agent.git/snapshot # see https://wiki.spdx.org/view/Legal_Team/License_List/Licenses_Under_Consideration TCF_AGENT_LICENSE = BSD-3-Clause TCF_AGENT_LICENSE_FILES = agent/edl-v10.html TCF_AGENT_DEPENDENCIES = util-linux TCF_AGENT_SUBDIR = agent # there is not much purpose for the shared lib, # if wont be used (unmodifed) outside the tcf-agent application TCF_AGENT_CONF_OPTS = \ -DBUILD_SHARED_LIBS=OFF \ -DTCF_MACHINE=$(call qstrip,$(BR2_PACKAGE_TCF_AGENT_ARCH)) define TCF_AGENT_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/tcf-agent/tcf-agent.service \ $(TARGET_DIR)/usr/lib/systemd/system/tcf-agent.service endef define TCF_AGENT_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/tcf-agent/S55tcf-agent \ $(TARGET_DIR)/etc/init.d/S55tcf-agent endef $(eval $(cmake-package)) ================================================ FILE: package/tcf-agent/tcf-agent.service ================================================ [Unit] Description=Target Communication Framework Agent After=network.target [Service] ExecStart=/usr/sbin/tcf-agent -L- -l0 [Install] WantedBy=multi-user.target ================================================ FILE: package/tcl/0001-dont-build-compat.patch ================================================ From: Andrew Ruder Subject: [PATCH] Disable tcl compatibility layers Turn off building compatibility layers for old/broken versions of standard functions (strstr, strtoul, strtod) with the assumption that anything buildroot is using as a standard C library will be good enough to not have broken behavior. Signed-off-by: Andrew Ruder [Fabrice: Update for 8.6.9] Signed-off-by: Fabrice Fontaine --- diff --git a/unix/tcl.m4 b/unix/tcl.m4 --- a/unix/tcl.m4 +++ b/unix/tcl.m4 @@ -2725,7 +2725,7 @@ AC_DEFUN([SC_TCL_CHECK_BROKEN_FUNC],[ if test ["$tcl_ok"] = 1; then AC_CACHE_CHECK([proper ]$1[ implementation], [tcl_cv_]$1[_unbroken], AC_TRY_RUN([[int main() {]$2[}]],[tcl_cv_]$1[_unbroken]=ok, - [tcl_cv_]$1[_unbroken]=broken,[tcl_cv_]$1[_unbroken]=unknown)) + [tcl_cv_]$1[_unbroken]=broken,[tcl_cv_]$1[_unbroken]=ok)) if test ["$tcl_cv_]$1[_unbroken"] = "ok"; then tcl_ok=1 else ================================================ FILE: package/tcl/Config.in ================================================ comment "tcl needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS config BR2_PACKAGE_TCL bool "tcl" # fork() depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_THREADS # See this mailing list thread: # http://lists.busybox.net/pipermail/buildroot/2015-March/121198.html depends on !BR2_STATIC_LIBS help TCL (Tool Command Language) is a simple textual language. http://www.tcl.tk if BR2_PACKAGE_TCL config BR2_PACKAGE_TCL_DEL_ENCODINGS bool "delete encodings (saves 1.6Mb)" default y help Delete encoding files for TCL. If your programs do not use various tcl character recoding functions, you may safely choose Y here. It saves approx. 1.6 Mb of space. config BR2_PACKAGE_TCL_SHLIB_ONLY bool "install only shared library" default y help Install only TCL shared library and not binary tcl interpreter (tclsh). Saves ~14kb. endif ================================================ FILE: package/tcl/tcl.hash ================================================ # Locally calculated sha256 ad0cd2de2c87b9ba8086b43957a0de3eb2eb565c7159d5f53ccbba3feb915f4e tcl8.6.9-src.tar.gz sha256 c0a69a2bfd757361ec7e6143973b103c90409316b49e9c88db26ad6388e79f16 license.terms ================================================ FILE: package/tcl/tcl.mk ================================================ ################################################################################ # # tcl # ################################################################################ TCL_VERSION_MAJOR = 8.6 TCL_VERSION = $(TCL_VERSION_MAJOR).9 TCL_SOURCE = tcl$(TCL_VERSION)-src.tar.gz TCL_SITE = http://downloads.sourceforge.net/project/tcl/Tcl/$(TCL_VERSION) TCL_LICENSE = TCL TCL_LICENSE_FILES = license.terms TCL_CPE_ID_VENDOR = tcl TCL_SUBDIR = unix TCL_INSTALL_STAGING = YES TCL_AUTORECONF = YES TCL_CONF_OPTS = \ --disable-symbols \ --disable-langinfo \ --disable-framework HOST_TCL_CONF_OPTS = \ --disable-symbols \ --disable-langinfo \ --disable-framework # 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/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 $(@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 ifeq ($(BR2_PACKAGE_TCL_DEL_ENCODINGS),y) define TCL_REMOVE_ENCODINGS rm -rf $(TARGET_DIR)/usr/lib/tcl$(TCL_VERSION_MAJOR)/encoding/* endef TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_ENCODINGS endif ifeq ($(BR2_PACKAGE_TCL_SHLIB_ONLY),y) define TCL_REMOVE_TCLSH rm -f $(TARGET_DIR)/usr/bin/tclsh$(TCL_VERSION_MAJOR) endef TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_TCLSH else define TCL_SYMLINK_TCLSH ln -sf tclsh$(TCL_VERSION_MAJOR) $(TARGET_DIR)/usr/bin/tclsh endef TCL_POST_INSTALL_TARGET_HOOKS += TCL_SYMLINK_TCLSH endif # Until someone needs it, we don't handle locale installation. tcl has # a complicated method of translating LANG-style locale names into its internal # .msg name which makes it difficult to save the correct locales per the # configured whitelist. define TCL_REMOVE_EXTRA rm -fr $(TARGET_DIR)/usr/lib/tclConfig.sh \ $(TARGET_DIR)/usr/lib/tclooConfig.sh \ $(TARGET_DIR)/usr/lib/tcl$(TCL_VERSION_MAJOR)/tclAppInit.c \ $(TARGET_DIR)/usr/lib/tcl$(TCL_VERSION_MAJOR)/msgs endef TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_EXTRA TCL_DEPENDENCIES = $(if $(BR2_PACKAGE_SQLITE),sqlite) \ $(if $(BR2_PACKAGE_MYSQL),mysql) \ $(if $(BR2_PACKAGE_POSTGRESQL),postgresql) $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/tclap/Config.in ================================================ comment "tclap needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_TCLAP bool "tclap" depends on BR2_INSTALL_LIBSTDCPP help This is a small, flexible library that provides a simple interface for defining and accessing command line arguments. It was initially inspired by the user friendly CLAP libary. The difference is that this library is templatized, so the argument class is type independent. Type independence avoids identical-except-for-type objects, such as IntArg, FloatArg, and StringArg. While the library is not strictly compliant with the GNU or POSIX standards, it is close. http://tclap.sourceforge.net/ ================================================ FILE: package/tclap/tclap.hash ================================================ # Locally computed: sha256 634c5b59dbb1ccbc9d6a5f6de494a257e29a3f59dcb6fc30445ff39b45188574 tclap-1.2.4.tar.gz sha256 cd81a61d47aeb1ed63036ca260baee37719923bbd7ebd988ec4edae128f3b6eb COPYING ================================================ FILE: package/tclap/tclap.mk ================================================ ################################################################################ # # tclap # ################################################################################ TCLAP_VERSION = 1.2.4 TCLAP_SITE = http://downloads.sourceforge.net/project/tclap TCLAP_LICENSE = MIT TCLAP_LICENSE_FILES = COPYING TCLAP_INSTALL_STAGING = YES TCLAP_CPE_ID_VENDOR = tclap_project # This package is a pure C++ template library, only made of headers. TCLAP_INSTALL_TARGET = NO $(eval $(autotools-package)) ================================================ FILE: package/tcllib/Config.in ================================================ config BR2_PACKAGE_TCLLIB bool "tcllib" help Tcllib is a collection of utility modules for Tcl. These modules provide a wide variety of functionality, from implementations of standard data structures to implementations of common networking protocols. The intent is to collect commonly used function into a single library, which users can rely on to be available and stable https://www.tcl.tk/software/tcllib/ ================================================ FILE: package/tcllib/tcllib.hash ================================================ # Locally computed: sha256 0db9e17d6c0f44d3ca2df2ea5023e35c0f3767e7008c3cb26d201446eb68add1 tcllib-1.13.tar.bz2 sha256 530ec70eb11a455bd582d86b6d74c2dd7cc367d90b8bbdd59fcb43ae02f95a4b license.terms ================================================ FILE: package/tcllib/tcllib.mk ================================================ ################################################################################ # # tcllib # ################################################################################ TCLLIB_VERSION = 1.13 TCLLIB_SOURCE = tcllib-$(TCLLIB_VERSION).tar.bz2 TCLLIB_SITE = http://downloads.sourceforge.net/project/tcllib/tcllib/$(TCLLIB_VERSION) TCLLIB_LICENSE = TCL TCLLIB_LICENSE_FILES = license.terms TCLLIB_DEPENDENCIES = host-tcl TCLLIB_CONF_ENV = ac_cv_path_tclsh="$(HOST_DIR)/bin/tclsh$(TCL_VERSION_MAJOR)" $(eval $(autotools-package)) ================================================ FILE: package/tcpdump/Config.in ================================================ config BR2_PACKAGE_TCPDUMP bool "tcpdump" select BR2_PACKAGE_LIBPCAP help A tool for network monitoring and data acquisition. http://www.tcpdump.org/ if BR2_PACKAGE_TCPDUMP config BR2_PACKAGE_TCPDUMP_SMB bool "smb dump support" help enable possibly-buggy SMB printer endif ================================================ FILE: package/tcpdump/tcpdump.hash ================================================ # Locally calculated after checking pgp signature at # https://www.tcpdump.org/release/tcpdump-4.99.1.tar.gz.sig # using key 1F166A5742ABB9E0249A8D30E089DEF1D9C15D0D sha256 79b36985fb2703146618d87c4acde3e068b91c553fb93f021a337f175fd10ebe tcpdump-4.99.1.tar.gz sha256 8a54594d257e14a5260ac770f1633516cb51e3fc28c40136ce2697014eda7afd LICENSE ================================================ FILE: package/tcpdump/tcpdump.mk ================================================ ################################################################################ # # tcpdump # ################################################################################ TCPDUMP_VERSION = 4.99.1 TCPDUMP_SITE = https://www.tcpdump.org/release TCPDUMP_LICENSE = BSD-3-Clause TCPDUMP_LICENSE_FILES = LICENSE TCPDUMP_CPE_ID_VENDOR = tcpdump TCPDUMP_CONF_ENV = \ ac_cv_linux_vers=2 \ td_cv_buggygetaddrinfo=no \ PCAP_CONFIG=$(STAGING_DIR)/usr/bin/pcap-config TCPDUMP_CONF_OPTS = \ --without-crypto \ --disable-local-libpcap \ $(if $(BR2_PACKAGE_TCPDUMP_SMB),--enable-smb,--disable-smb) TCPDUMP_DEPENDENCIES = libpcap host-pkgconf TCPDUMP_SELINUX_MODULES = netutils # make install installs an unneeded extra copy of the tcpdump binary define TCPDUMP_REMOVE_DUPLICATED_BINARY rm -f $(TARGET_DIR)/usr/bin/tcpdump.$(TCPDUMP_VERSION) endef TCPDUMP_POST_INSTALL_TARGET_HOOKS += TCPDUMP_REMOVE_DUPLICATED_BINARY $(eval $(autotools-package)) ================================================ FILE: package/tcping/Config.in ================================================ config BR2_PACKAGE_TCPING bool "tcping" help tcping does a TCP connect to the given ip/port combination. The user can specify a timeout in seconds. This is useful in shell scripts running in firewalled environments. Often SYNs are just being dropped by firewalls, thus connection establishment will be retried several times (for minutes) until a TCP timeout is reached. With tcping it is possible to check first if the desired port is reachable and then start connection establishment. https://github.com/mkirchner/tcping ================================================ FILE: package/tcping/tcping.hash ================================================ # Locally calculated sha256 a731f0e48ff931d7b2a0e896e4db40867043740fe901dd225780f2164fdbdcf3 tcping-1.3.6.tar.gz sha256 4a35620e27ddb8de27898e4206c8f93633d877c1e128e98e95a035f760d94428 LICENSE ================================================ FILE: package/tcping/tcping.mk ================================================ ################################################################################ # # tcping # ################################################################################ TCPING_VERSION = 1.3.6 TCPING_SITE = $(call github,mkirchner,tcping,$(TCPING_VERSION)) TCPING_LICENSE = MIT TCPING_LICENSE_FILES = LICENSE define TCPING_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CCFLAGS="$(TARGET_CFLAGS) $(TARGET_LDFLAGS)" \ -C $(@D) tcping.linux endef define TCPING_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/tcping $(TARGET_DIR)/usr/bin/tcping endef $(eval $(generic-package)) ================================================ FILE: package/tcpreplay/0001-configure-ac-fix-without-libdnet.patch ================================================ From acee9c0c46f71f1f4c33c2dadf69d19e24b90f27 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 13 Aug 2019 20:19:23 +0200 Subject: [PATCH] configure.ac: fix --without-libdnet Allow the user to disable libdnet check through --without-libdnet. This option is useful to cross-compile tcpreplay to avoid build failures if libdnet is installed on host but not on target, see https://bugs.buildroot.org/show_bug.cgi?id=12096 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/appneta/tcpreplay/pull/567] --- configure.ac | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/configure.ac b/configure.ac index 39ba58b7..5de3dcb5 100644 --- a/configure.ac +++ b/configure.ac @@ -1464,30 +1464,32 @@ if test $have_cygwin = no ; then AC_HELP_STRING([--with-libdnet=DIR], [Use libdnet in DIR]), [trydnetdir=$withval]) - case "$build_os" in - linux*) - dnl # Debian/Ubuntu already have a package called libdnet - dnl # so you the package you want to install libdumbnet-dev - for testdir in $trydnetdir /usr/local /opt/local /usr ; do - if test -x ${testdir}/bin/dumbnet-config -a $founddnet = no ; then - LDNETINC="$($testdir/bin/dumbnet-config --cflags)" - LDNETLIB="$($testdir/bin/dumbnet-config --libs)" - libdnet_version="$($testdir/bin/dumbnet-config --version) (libdumbnet)" - founddnet=$testdir - fi - done - ;; - esac + if test $trydnetdir != no; then + case "$build_os" in + linux*) + dnl # Debian/Ubuntu already have a package called libdnet + dnl # so you the package you want to install libdumbnet-dev + for testdir in $trydnetdir /usr/local /opt/local /usr ; do + if test -x ${testdir}/bin/dumbnet-config -a $founddnet = no ; then + LDNETINC="$($testdir/bin/dumbnet-config --cflags)" + LDNETLIB="$($testdir/bin/dumbnet-config --libs)" + libdnet_version="$($testdir/bin/dumbnet-config --version) (libdumbnet)" + founddnet=$testdir + fi + done + ;; + esac - if test $founddnet = no ; then - for testdir in $trydnetdir /usr/local /opt/local $MACOSX_SDK_PATH/usr /usr ; do - if test -x ${testdir}/bin/dnet-config -a $founddnet = no ; then - LDNETINC="$($testdir/bin/dnet-config --cflags)" - LDNETLIB="$($testdir/bin/dnet-config --libs)" - libdnet_version="$($testdir/bin/dnet-config --version)" - founddnet=$testdir - fi - done + if test $founddnet = no ; then + for testdir in $trydnetdir /usr/local /opt/local $MACOSX_SDK_PATH/usr /usr ; do + if test -x ${testdir}/bin/dnet-config -a $founddnet = no ; then + LDNETINC="$($testdir/bin/dnet-config --cflags)" + LDNETLIB="$($testdir/bin/dnet-config --libs)" + libdnet_version="$($testdir/bin/dnet-config --version)" + founddnet=$testdir + fi + done + fi fi if test $founddnet = no ; then ================================================ FILE: package/tcpreplay/Config.in ================================================ config BR2_PACKAGE_TCPREPLAY bool "tcpreplay" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBPCAP help Tcpreplay is a tool for replaying network traffic from files saved with tcpdump or other tools which write pcap(3) files. http://tcpreplay.appneta.com/ ================================================ FILE: package/tcpreplay/tcpreplay.hash ================================================ # Locally calculated after checking pgp signature # https://github.com/appneta/tcpreplay/releases/download/v4.3.3/tcpreplay-4.3.3.tar.xz.asc # using key 84E4FA215C934A7D97DC76D5E9E2149793BDE17E sha256 5e960e2a4432f583adbd11fa0855d17b73d9e0f2d6453b749f27aacaee53bab5 tcpreplay-4.3.3.tar.xz sha256 5971b0c544622f4b210a9cc56436a970685d3b0666e373c09e3cf9304db15d05 docs/LICENSE ================================================ FILE: package/tcpreplay/tcpreplay.mk ================================================ ################################################################################ # # tcpreplay # ################################################################################ TCPREPLAY_VERSION = 4.3.3 TCPREPLAY_SITE = https://github.com/appneta/tcpreplay/releases/download/v$(TCPREPLAY_VERSION) TCPREPLAY_SOURCE = tcpreplay-$(TCPREPLAY_VERSION).tar.xz TCPREPLAY_LICENSE = GPL-3.0 TCPREPLAY_LICENSE_FILES = docs/LICENSE TCPREPLAY_CPE_ID_VENDOR = tcpreplay TCPREPLAY_CONF_ENV = \ ac_cv_path_ac_pt_PCAP_CONFIG="$(STAGING_DIR)/usr/bin/pcap-config" TCPREPLAY_CONF_OPTS = --with-libpcap=$(STAGING_DIR)/usr \ --enable-pcapconfig TCPREPLAY_DEPENDENCIES = libpcap # We're patching configure.ac TCPREPLAY_AUTORECONF = YES ifeq ($(BR2_STATIC_LIBS),y) TCPREPLAY_CONF_OPTS += --enable-dynamic-link=no TCPREPLAY_CONF_ENV += LIBS="`$(STAGING_DIR)/usr/bin/pcap-config --static --libs`" endif ifeq ($(BR2_PACKAGE_LIBDNET),y) TCPREPLAY_DEPENDENCIES += libdnet TCPREPLAY_CONF_OPTS += --with-libdnet=$(STAGING_DIR)/usr else TCPREPLAY_CONF_OPTS += --without-libdnet endif ifeq ($(BR2_PACKAGE_TCPDUMP),y) TCPREPLAY_CONF_ENV += ac_cv_path_tcpdump_path=/usr/sbin/tcpdump else TCPREPLAY_CONF_ENV += ac_cv_path_tcpdump_path=no endif $(eval $(autotools-package)) ================================================ FILE: package/tegrarcm/Config.in.host ================================================ config BR2_PACKAGE_HOST_TEGRARCM bool "host tegrarcm" depends on BR2_arm || BR2_armeb depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb help This program is used to send code to a Tegra device in recovery mode. https://github.com/NVIDIA/tegrarcm comment "host tegrarcm needs a toolchain w/ host gcc >= 4.9" depends on BR2_arm || BR2_armeb depends on !BR2_HOST_GCC_AT_LEAST_4_9 ================================================ FILE: package/tegrarcm/tegrarcm.hash ================================================ # Locally computed sha256 08329ee0247499b28ec37b0cc639f35443792dfb9bc4a8a182eea63dae6f64ea tegrarcm-1.8.tar.gz sha256 5f20d276321cb37346d911712a813cb7ce4c8e3a570bffc919bec820eeef13f6 LICENSE ================================================ FILE: package/tegrarcm/tegrarcm.mk ================================================ ################################################################################ # # tegrarcm # ################################################################################ TEGRARCM_VERSION = 1.8 TEGRARCM_SITE = $(call github,NVIDIA,tegrarcm,v$(TEGRARCM_VERSION)) TEGRARCM_LICENSE = BSD-3-Clause / 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)) ================================================ FILE: package/tekui/Config.in ================================================ config BR2_PACKAGE_TEKUI bool "tekui" depends on !BR2_STATIC_LIBS depends on BR2_PACKAGE_HAS_LUAINTERPRETER depends on BR2_TOOLCHAIN_HAS_THREADS 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 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 ================================================ FILE: package/tekui/tekui.hash ================================================ # Locally computed sha256 28abfaacc0f2ddae962afbbca862a7fb619c33a99a497be9edd746091013dd7f tekui-1.12.tgz sha256 92cdb348af49efe4c769ccbaeb34a23be084ddda408eace8f1a3a2c5dd4aad14 COPYRIGHT ================================================ FILE: package/tekui/tekui.mk ================================================ ################################################################################ # # 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 # Package does not build in parallel due to improper make rules TEKUI_MAKE = $(MAKE1) 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 $(TARGET_MAKE_ENV) $(MAKE) $(TEKUI_MAKE_OPTS) PREFIX="/usr" -C $(@D) all endef define TEKUI_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TEKUI_MAKE_OPTS) PREFIX="$(TARGET_DIR)/usr" -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/terminology/Config.in ================================================ config BR2_PACKAGE_TERMINOLOGY bool "terminology" depends on BR2_PACKAGE_EFL help Terminology is an EFL terminal emulator with some extra bells and whistles. https://www.enlightenment.org/about-terminology ================================================ FILE: package/terminology/terminology.hash ================================================ # From https://download.enlightenment.org/rel/apps/terminology/terminology-1.9.0.tar.xz.sha256sum sha256 3f3bc327da5cc239d468570afed29a17e2fda3b1fee02b28f02ee7ed5141e46c terminology-1.9.0.tar.xz sha256 6863ee700fc82b9c3b82a1627136f6935a9eb68e6a64491f20e00b4023c33622 COPYING ================================================ FILE: package/terminology/terminology.mk ================================================ ################################################################################ # # terminology # ################################################################################ TERMINOLOGY_VERSION = 1.9.0 TERMINOLOGY_SOURCE = terminology-$(TERMINOLOGY_VERSION).tar.xz TERMINOLOGY_SITE = https://download.enlightenment.org/rel/apps/terminology TERMINOLOGY_LICENSE = BSD-2-Clause TERMINOLOGY_LICENSE_FILES = COPYING TERMINOLOGY_CPE_ID_VENDOR = enlightenment TERMINOLOGY_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) efl host-pkgconf TERMINOLOGY_CONF_OPTS = \ -Dedje-cc=$(HOST_DIR)/bin/edje_cc \ -Deet=$(HOST_DIR)/bin/eet ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) TERMINOLOGY_CONF_OPTS += -Dnls=true else TERMINOLOGY_CONF_OPTS += -Dnls=false endif $(eval $(meson-package)) ================================================ FILE: package/tesseract-ocr/0001-Fix-timeval-structure-build-failure.patch ================================================ From ea1e1ddfc0af9966a0c613a93087bc3e0a5979a7 Mon Sep 17 00:00:00 2001 From: Gilles Talis Date: Fri, 19 Jul 2019 18:52:03 +0200 Subject: [PATCH] Fix timeval structure build failure timeval structure definition requires to be included Signed-off-by: Gilles Talis --- src/ccutil/ocrclass.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ccutil/ocrclass.h b/src/ccutil/ocrclass.h index d39a6dd..2a01118 100644 --- a/src/ccutil/ocrclass.h +++ b/src/ccutil/ocrclass.h @@ -28,6 +28,7 @@ #include #include +#include #ifdef _WIN32 #include // for timeval #endif -- 2.7.4 ================================================ FILE: package/tesseract-ocr/Config.in ================================================ comment "tesseract-ocr needs a toolchain w/ threads, C++, gcc >= 4.8, dynamic library, wchar" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || BR2_STATIC_LIBS || !BR2_USE_WCHAR menuconfig BR2_PACKAGE_TESSERACT_OCR bool "tesseract-ocr" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR select BR2_PACKAGE_LEPTONICA help Tesseract is an OCR (Optical Character Recognition) engine, It can be used directly, or (for programmers) using an API. It supports a wide variety of languages. https://github.com/tesseract-ocr/tesseract if BR2_PACKAGE_TESSERACT_OCR comment "tesseract-ocr languages support" config BR2_PACKAGE_TESSERACT_OCR_LANG_ENG bool "English" config BR2_PACKAGE_TESSERACT_OCR_LANG_FRA bool "French" config BR2_PACKAGE_TESSERACT_OCR_LANG_GER bool "German" config BR2_PACKAGE_TESSERACT_OCR_LANG_SPA bool "Spanish" config BR2_PACKAGE_TESSERACT_OCR_LANG_CHI_SIM bool "Simplified Chinese" config BR2_PACKAGE_TESSERACT_OCR_LANG_CHI_TRA bool "Traditional Chinese" endif ================================================ FILE: package/tesseract-ocr/tesseract-ocr.hash ================================================ # locally computed sha256 2a66ff0d8595bff8f04032165e6c936389b1e5727c3ce5a27b3e059d218db1cb tesseract-ocr-4.1.1.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE sha256 daa0c97d651c19fba3b25e81317cd697e9908c8208090c94c3905381c23fc047 eng.traineddata sha256 eac01c1d72540d6090facb7b2f42dd0a2ee8fc57c5be1b20548ae668e2761913 fra.traineddata sha256 896b3b4956503ab9daa10285db330881b2d74b70d889b79262cc534b9ec699a4 deu.traineddata sha256 0b0fcbb4665189e01ab8019e591f014dd7260460de072543edd4b2cb4ede7c96 spa.traineddata sha256 fc05d89ab31d8b4e226910f16a8bcbf78e43bae3e2580bb5feefd052efdab363 chi_sim.traineddata sha256 559067dc0f7c94788884742129d66a0117dde7f4ff12b263d92147173497db14 chi_tra.traineddata ================================================ FILE: package/tesseract-ocr/tesseract-ocr.mk ================================================ ################################################################################ # # tesseract-ocr # ################################################################################ TESSERACT_OCR_VERSION = 4.1.1 TESSERACT_OCR_DATA_VERSION = 4.0.0 TESSERACT_OCR_SITE = $(call github,tesseract-ocr,tesseract,$(TESSERACT_OCR_VERSION)) TESSERACT_OCR_LICENSE = Apache-2.0 TESSERACT_OCR_LICENSE_FILES = LICENSE # Source from github, no configure script provided TESSERACT_OCR_AUTORECONF = YES # cairo, pango and icu are optional dependencies, but only needed for # building training tools, which are only built explicitly with "make # training", which is not done by this package. TESSERACT_OCR_DEPENDENCIES = leptonica host-pkgconf TESSERACT_OCR_INSTALL_STAGING = YES TESSERACT_OCR_CONF_ENV = \ ac_cv_prog_have_asciidoc=false \ LIBLEPT_HEADERSDIR=$(STAGING_DIR)/usr/include/leptonica TESSERACT_OCR_CONF_OPTS = \ --disable-opencl # Language data files download ifeq ($(BR2_PACKAGE_TESSERACT_OCR_LANG_ENG),y) TESSERACT_OCR_DATA_FILES += eng.traineddata endif ifeq ($(BR2_PACKAGE_TESSERACT_OCR_LANG_FRA),y) TESSERACT_OCR_DATA_FILES += fra.traineddata endif ifeq ($(BR2_PACKAGE_TESSERACT_OCR_LANG_DEU),y) TESSERACT_OCR_DATA_FILES += deu.traineddata endif ifeq ($(BR2_PACKAGE_TESSERACT_OCR_LANG_SPA),y) TESSERACT_OCR_DATA_FILES += spa.traineddata endif ifeq ($(BR2_PACKAGE_TESSERACT_OCR_LANG_CHI_SIM),y) TESSERACT_OCR_DATA_FILES += chi_sim.traineddata endif ifeq ($(BR2_PACKAGE_TESSERACT_OCR_LANG_CHI_TRA),y) TESSERACT_OCR_DATA_FILES += chi_tra.traineddata endif TESSERACT_OCR_EXTRA_DOWNLOADS = \ $(addprefix https://github.com/tesseract-ocr/tessdata/raw/$(TESSERACT_OCR_DATA_VERSION)/,\ $(TESSERACT_OCR_DATA_FILES)) # Language data files installation define TESSERACT_OCR_INSTALL_LANG_DATA $(foreach langfile,$(TESSERACT_OCR_DATA_FILES), \ $(INSTALL) -D -m 0644 $(TESSERACT_OCR_DL_DIR)/$(langfile) \ $(TARGET_DIR)/usr/share/tessdata/$(langfile) ) endef TESSERACT_OCR_POST_INSTALL_TARGET_HOOKS += TESSERACT_OCR_INSTALL_LANG_DATA $(eval $(autotools-package)) ================================================ FILE: package/tftpd/0001-Use-extern-qualifier-to-fix-gcc-10.x-build.patch ================================================ From 6f994166d8571961a08479736ae86c5baa2bb47f Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 7 Aug 2020 12:07:45 +0200 Subject: [PATCH] Use "extern" qualifier to fix gcc 10.x build Patch from https://src.fedoraproject.org/rpms/tftp/raw/master/f/tftp-hpa-5.2-gcc10.patch. Signed-off-by: Thomas Petazzoni --- tftp/tftp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tftp/tftp.c b/tftp/tftp.c index d15da22..d067f96 100644 --- a/tftp/tftp.c +++ b/tftp/tftp.c @@ -48,7 +48,7 @@ extern int maxtimeout; #define PKTSIZE SEGSIZE+4 char ackbuf[PKTSIZE]; int timeout; -sigjmp_buf toplevel; +extern sigjmp_buf toplevel; sigjmp_buf timeoutbuf; static void nak(int, const char *); -- 2.26.2 ================================================ FILE: package/tftpd/Config.in ================================================ 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. https://git.kernel.org/pub/scm/network/tftp/tftp-hpa.git ================================================ FILE: package/tftpd/S80tftpd-hpa ================================================ #! /bin/sh OPTIONS="-c -l -s /var/lib/tftpboot" set -e PATH=/sbin:/bin:/usr/sbin:/usr/bin DESC="HPA's tftpd" NAME=tftpd DAEMON=/usr/sbin/$NAME PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/S80tftpd-hpa # # Function that starts the daemon/service. # d_start() { mkdir -p /var/lib/tftpboot chmod 1777 /var/lib/tftpboot $DAEMON $OPTIONS } # # Function that stops the daemon/service. # d_stop() { killall -q $NAME } # # Function that sends a SIGHUP to the daemon/service. # d_reload() { d_start d_stop } case "$1" in start) printf "Starting $DESC: " d_start echo "done" ;; stop) printf "Stopping $DESC: " d_stop echo "done" ;; #reload) # # If the daemon can reload its configuration without # restarting (for example, when it is sent a SIGHUP), # then implement that here. # # If the daemon responds to changes in its config file # directly anyway, make this an "exit 0". # # printf "Reloading $DESC configuration..." # d_reload # echo "done." #;; restart|force-reload) # # If the "reload" option is implemented, move the "force-reload" # option to the "reload" entry above. If not, "force-reload" is # just the same as "restart". # printf "Restarting $DESC: " d_stop sleep 1 d_start echo "done" ;; *) # echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0 ================================================ FILE: package/tftpd/tftpd.hash ================================================ # Locally calculated sha256 c86520c30dab0b6bcbae021ab26d2ac63227696596d37a9b02aa3e56ec5c2e77 tftpd-b2b34cecc8cbc18ff6f1fc00bda6ae6e9011e6c7-br1.tar.gz # Hash for license file sha256 67754ebd8f265571d3226ac97e521b1bd6fd8a61363ecd4ab7806a6f90efab92 tftpd/tftpd.c ================================================ FILE: package/tftpd/tftpd.mk ================================================ ################################################################################ # # tftpd # ################################################################################ TFTPD_VERSION = b2b34cecc8cbc18ff6f1fc00bda6ae6e9011e6c7 TFTPD_SITE = git://git.kernel.org/pub/scm/network/tftp/tftp-hpa.git TFTPD_CONF_OPTS = --without-tcpwrappers TFTPD_LICENSE = BSD-4-Clause TFTPD_LICENSE_FILES = tftpd/tftpd.c TFTPD_CPE_ID_VENDOR = tftpd-hpa_project TFTPD_CPE_ID_PRODUCT = tftpd-hpa TFTPD_SELINUX_MODULES = tftp # From git TFTPD_AUTORECONF = YES define TFTPD_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/tftp/tftp $(TARGET_DIR)/usr/bin/tftp $(INSTALL) -D $(@D)/tftpd/tftpd $(TARGET_DIR)/usr/sbin/tftpd endef define TFTPD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/tftpd/S80tftpd-hpa $(TARGET_DIR)/etc/init.d/S80tftpd-hpa endef $(eval $(autotools-package)) ================================================ FILE: package/thermald/0001-thd_trip_point-fix-32-bit-build-error-with-musl-v1.2.patch ================================================ From 074575bf3640485ab6d43ae1efed3eff9cebae13 Mon Sep 17 00:00:00 2001 From: Naveen Saini Date: Thu, 5 Mar 2020 13:45:57 +0800 Subject: [PATCH] thd_trip_point: fix 32-bit build error with musl v1.2.0 Error log: ../git/src/thd_trip_point.cpp: In member function 'bool cthd_trip_point::thd_trip_point_check(int, unsigned int, int, bool*)': | ../git/src/thd_trip_point.cpp:250:19: error: format '%ld' expects argument of type 'long int', but argument 6 has type 'time_t' {aka 'long long int'} [-Werror=format=] | 250 | thd_log_info("Too early to act zone:%d index %d tm %ld\n", musl 1.2.0 have new feature: time_t is now 64-bit on all archs (not just 64-bit archs) Commit id: https://git.musl-libc.org/cgit/musl/commit/?id=38143339646a4ccce8afe298c34467767c899f51 Release note link for musl 1.2.0: https://git.musl-libc.org/cgit/musl/diff/ use %jd and typecast with intmax_t which is maximum width integer type Signed-off-by: Naveen Saini [Upstream: https://github.com/intel/thermal_daemon/commit/a7136682b9e6ebdb53c3c8b472bcd5039d62dc78.patch] Signed-off-by: Peter Seiderer --- src/thd_trip_point.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/thd_trip_point.cpp b/src/thd_trip_point.cpp index 46f692d..6358c27 100644 --- a/src/thd_trip_point.cpp +++ b/src/thd_trip_point.cpp @@ -242,15 +242,9 @@ bool cthd_trip_point::thd_trip_point_check(int id, unsigned int read_temp, time_t tm; time(&tm); if ((tm - cdevs[i].last_op_time) < cdevs[i].sampling_priod) { -#if defined __x86_64__ && defined __ILP32__ - thd_log_info("Too early to act zone:%d index %d tm %lld\n", + thd_log_info("Too early to act zone:%d index %d tm %jd\n", zone_id, cdev->thd_cdev_get_index(), - tm - cdevs[i].last_op_time); -#else - thd_log_info("Too early to act zone:%d index %d tm %ld\n", - zone_id, cdev->thd_cdev_get_index(), - tm - cdevs[i].last_op_time); -#endif + (intmax_t)tm - cdevs[i].last_op_time); break; } cdevs[i].last_op_time = tm; -- 2.29.2 ================================================ FILE: package/thermald/Config.in ================================================ config BR2_PACKAGE_THERMALD bool "thermald" depends on BR2_i386 || BR2_x86_64 # needs depends on BR2_USE_MMU # uses fork() depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # dbus-glib -> glib2, dbus depends on BR2_USE_WCHAR # dbus-glib -> glib2 select BR2_PACKAGE_DBUS select BR2_PACKAGE_DBUS_GLIB select BR2_PACKAGE_LIBXML2 help Thermal Daemon is a Linux daemon for monitoring and controlling platform temperatures. Once the system temperature reaches a certain threshold, the Linux daemon activates various cooling methods to try to cool the system. https://01.org/linux-thermal-daemon comment "thermald needs a toolchain w/ C++, wchar, threads" depends on BR2_i386 || BR2_x86_64 depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/thermald/thermald.hash ================================================ # Locally computed: sha256 aaf5ffdc12344eef2417b41b433094bb30e4ebf321f0140b090f97bfcf24ea1f thermald-1.9.1.tar.gz sha256 e98be8bc482e038a14bfbc01caf800bbd0024fff275ef14cd999db6560254a8d COPYING ================================================ FILE: package/thermald/thermald.mk ================================================ ################################################################################ # # thermald # ################################################################################ THERMALD_VERSION = 1.9.1 THERMALD_SITE = $(call github,intel,thermal_daemon,v$(THERMALD_VERSION)) # fetched from Github, with no configure script THERMALD_AUTORECONF = YES THERMALD_DEPENDENCIES = dbus dbus-glib libxml2 $(TARGET_NLS_DEPENDENCIES) # tools are GPL-3.0+ but are not added to the target THERMALD_LICENSE = GPL-2.0+ THERMALD_LICENSE_FILES = COPYING THERMALD_CPE_ID_VENDOR = intel THERMALD_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) ifeq ($(BR2_INIT_SYSTEMD),y) THERMALD_DEPENDENCIES += systemd THERMALD_CONF_OPTS += --with-systemdsystemunitdir=/usr/lib/systemd/system endif $(eval $(autotools-package)) ================================================ FILE: package/thrift/Config.in ================================================ config BR2_PACKAGE_THRIFT bool "thrift" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_BOOST select BR2_PACKAGE_LIBEVENT select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages. http://thrift.apache.org/ comment "thrift needs a toolchain w/ C++, wchar, threads" depends on !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/thrift/thrift.hash ================================================ # From https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.tar.gz.sha256 sha256 13da5e1cd9c8a3bb89778c0337cc57eb0c29b08f3090b41cf6ab78594b410ca5 thrift-0.14.1.tar.gz # License files, locally calculated sha256 d315e6cdedc07c478de6992027bfb66f220886c6216fd7e9885ced30c3703646 LICENSE ================================================ FILE: package/thrift/thrift.mk ================================================ ################################################################################ # # thrift # ################################################################################ THRIFT_VERSION = 0.14.1 THRIFT_SITE = http://www.us.apache.org/dist/thrift/$(THRIFT_VERSION) THRIFT_LICENSE = Apache-2.0 THRIFT_LICENSE_FILES = LICENSE THRIFT_CPE_ID_VENDOR = apache THRIFT_DEPENDENCIES = host-pkgconf host-thrift boost \ libevent openssl zlib THRIFT_INSTALL_STAGING = YES HOST_THRIFT_DEPENDENCIES = host-bison host-boost \ host-flex host-libevent host-openssl host-pkgconf host-zlib THRIFT_COMMON_CONF_OPTS = -DBUILD_TUTORIALS=OFF \ -DBUILD_TESTING=OFF \ -DWITH_NODEJS=OFF \ -DWITH_PYTHON=OFF \ -DWITH_JAVA=OFF \ -DWITH_JAVASCRIPT=OFF \ -DWITH_QT5=OFF THRIFT_CONF_OPTS = $(THRIFT_COMMON_CONF_OPTS) -DBUILD_COMPILER=OFF HOST_THRIFT_CONF_OPTS = $(THRIFT_COMMON_CONF_OPTS) -DBUILD_COMPILER=ON # relocation truncated to fit: R_68K_GOT16O ifeq ($(BR2_m68k_cf),y) THRIFT_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -mxgot" endif # thrift doesn't use the regular flags BUILD_{STATIC,SHARED}_LIBS ifeq ($(BR2_STATIC_LIBS),y) THRIFT_CONF_OPTS += -DWITH_STATIC_LIB=ON -DWITH_BOOST_STATIC=ON -DWITH_SHARED_LIB=OFF else ifeq ($(BR2_SHARED_LIBS),y) THRIFT_CONF_OPTS += -DWITH_STATIC_LIB=OFF -DWITH_BOOST_STATIC=OFF -DWITH_SHARED_LIB=ON else # BR2_SHARED_STATIC_LIBS THRIFT_CONF_OPTS += -DWITH_STATIC_LIB=ON -DWITH_BOOST_STATIC=OFF -DWITH_SHARED_LIB=ON endif # Language selection for the compiler HOST_THRIFT_CONF_OPTS += -DTHRIFT_COMPILER_CSHARP=OFF \ -DTHRIFT_COMPILER_JAVA=OFF \ -DTHRIFT_COMPILER_ERL=OFF \ -DTHRIFT_COMPILER_PY=OFF \ -DTHRIFT_COMPILER_PERL=OFF \ -DTHRIFT_COMPILER_PHP=OFF \ -DTHRIFT_COMPILER_RB=OFF \ -DTHRIFT_COMPILER_HS=OFF \ -DTHRIFT_COMPILER_GO=OFF \ -DTHRIFT_COMPILER_D=OFF \ -DTHRIFT_COMPILER_LUA=OFF \ -DBUILD_C_GLIB=OFF # C bindings ifeq ($(BR2_PACKAGE_LIBGLIB2),y) THRIFT_DEPENDENCIES += libglib2 THRIFT_CONF_OPTS += -DBUILD_C_GLIB=ON else THRIFT_CONF_OPTS += -DBUILD_C_GLIB=OFF endif $(eval $(cmake-package)) $(eval $(host-cmake-package)) # to be used by other packages THRIFT = $(HOST_DIR)/bin/thrift ================================================ FILE: package/thttpd/Config.in ================================================ config BR2_PACKAGE_THTTPD bool "thttpd" depends on BR2_USE_MMU # fork() help thttpd is a simple, small, portable, fast, and secure HTTP server http://www.acme.com/software/thttpd/ ================================================ FILE: package/thttpd/S90thttpd ================================================ #!/bin/sh DAEMON="thttpd" PIDFILE="/var/run/$DAEMON.pid" THTTPD_ARGS="-C /etc/thttpd.conf" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting start-stop-daemon -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- $THTTPD_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then # thttpd does not remove the pid file on exit rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/thttpd/thttpd.hash ================================================ # Locally calculated sha256 99c09f47da326b1e7b5295c45549d2b65534dce27c44812cf7eef1441681a397 thttpd-2.29.tar.gz sha256 be059e6b8219d5bb5480fa6a2864bbb34892f56951d03d08b356bc1fa8c81a01 thttpd.c ================================================ FILE: package/thttpd/thttpd.mk ================================================ ################################################################################ # # thttpd # ################################################################################ THTTPD_VERSION = 2.29 THTTPD_SITE = https://acme.com/software/thttpd THTTPD_LICENSE = BSD-2-Clause THTTPD_LICENSE_FILES = thttpd.c THTTPD_CPE_ID_VENDOR = acme THTTPD_MAKE = $(MAKE1) define THTTPD_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/thttpd $(TARGET_DIR)/usr/sbin/thttpd $(INSTALL) -D -m 0755 $(@D)/extras/htpasswd $(TARGET_DIR)/usr/bin/htpasswd $(INSTALL) -D -m 0755 $(@D)/extras/makeweb $(TARGET_DIR)/usr/bin/makeweb $(INSTALL) -D -m 0755 $(@D)/extras/syslogtocern $(TARGET_DIR)/usr/bin/syslogtocern $(INSTALL) -D -m 0755 $(@D)/scripts/thttpd_wrapper $(TARGET_DIR)/usr/sbin/thttpd_wrapper $(SED) 's:/usr/local/sbin:/usr/sbin:g' -e \ 's:/usr/local/www/thttpd_config:/etc/thttpd.conf:g' \ $(TARGET_DIR)/usr/sbin/thttpd_wrapper $(INSTALL) -d $(TARGET_DIR)/var/www/data $(INSTALL) -d $(TARGET_DIR)/var/www/logs echo "dir=/var/www/data" > $(TARGET_DIR)/etc/thttpd.conf echo 'cgipat=**.cgi' >> $(TARGET_DIR)/etc/thttpd.conf echo "logfile=/var/www/logs/thttpd_log" >> $(TARGET_DIR)/etc/thttpd.conf echo "pidfile=/var/run/thttpd.pid" >> $(TARGET_DIR)/etc/thttpd.conf endef define THTTPD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/thttpd/S90thttpd \ $(TARGET_DIR)/etc/init.d/S90thttpd endef define THTTPD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/thttpd/thttpd.service \ $(TARGET_DIR)/usr/lib/systemd/system/thttpd.service endef $(eval $(autotools-package)) ================================================ FILE: package/thttpd/thttpd.service ================================================ [Unit] Description=Tiny HTTP Daemon [Service] PIDFile=/run/thttpd.pid ExecStart=/usr/sbin/thttpd -D -C /etc/thttpd.conf Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/ti-cgt-pru/Config.in.host ================================================ config BR2_PACKAGE_HOST_TI_CGT_PRU_ARCH_SUPPORTS bool default y depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on BR2_arm config BR2_PACKAGE_HOST_TI_CGT_PRU bool "host ti-cgt-pru" depends on BR2_PACKAGE_HOST_TI_CGT_PRU_ARCH_SUPPORTS select BR2_HOSTARCH_NEEDS_IA32_LIBS help This package provides the Code Generation Tools for the PRU unit found on some TI processors e.g. AM3358. Note: this is a binary cross toolchain that runs on x86 hosts targeting PRU cores found alongside some ARM processors. http://processors.wiki.ti.com/index.php/Programmable_Realtime_Unit_Software_Development ================================================ FILE: package/ti-cgt-pru/ti-cgt-pru.hash ================================================ # Locally calculated sha256 1f1405167214f2c0ef848591b17a7799fdcd9f55f11bc90db9ace3490d426215 ti_cgt_pru_2.3.3_linux_installer_x86.bin sha256 913cb4ab564f874b7c9a11726a16c4ccdc7ecc60be2738201281a1e28dc93641 PRU_Code_Generation_Tools_2.3.x_manifest.html sha256 5e198df9782c63cedc8363f0e298b241a9a8084398a925f6e1003dbcb60801cb pru_rts_2_3_0_82167478-F8C9-49b2-82BD-12F8550770F9.spdx ================================================ FILE: package/ti-cgt-pru/ti-cgt-pru.mk ================================================ ################################################################################ # # ti-cgt-pru # ################################################################################ TI_CGT_PRU_VERSION = 2.3.3 TI_CGT_PRU_SOURCE = ti_cgt_pru_$(TI_CGT_PRU_VERSION)_linux_installer_x86.bin TI_CGT_PRU_SITE = http://downloads.ti.com/codegen/esd/cgt_public_sw/PRU/$(TI_CGT_PRU_VERSION) TI_CGT_PRU_LICENSE = TI Technology and Software Publicly Available License (compiler + PRU library), \ BSL-1.0 (compiler), BSD-2-Clause, BSD-3-Clause, MIT, AFL-3.0, Hewlett-Packard (PRU library) TI_CGT_PRU_LICENSE_FILES = PRU_Code_Generation_Tools_2.3.x_manifest.html \ pru_rts_2_3_0_82167478-F8C9-49b2-82BD-12F8550770F9.spdx define HOST_TI_CGT_PRU_EXTRACT_CMDS chmod +x $(HOST_TI_CGT_PRU_DL_DIR)/$(TI_CGT_PRU_SOURCE) $(HOST_TI_CGT_PRU_DL_DIR)/$(TI_CGT_PRU_SOURCE) --prefix $(@D) --mode unattended mv $(@D)/ti-cgt-pru_$(TI_CGT_PRU_VERSION)/* $(@D) rmdir $(@D)/ti-cgt-pru_$(TI_CGT_PRU_VERSION)/ endef # Since this is largely prebuilt toolchain and likes to live in its # own directory, put it in $(HOST_DIR)/share/ti-cgt-pru/. # Packages wanting to use this toolchain need to use this path as TI's # standard PRU_CGT path e.g. make PRU_CGT=$(TI_CGT_PRU_INSTALLDIR)... TI_CGT_PRU_INSTALLDIR = $(HOST_DIR)/share/ti-cgt-pru define HOST_TI_CGT_PRU_INSTALL_CMDS mkdir -p $(TI_CGT_PRU_INSTALLDIR) cp -dpfr $(@D)/* $(TI_CGT_PRU_INSTALLDIR) endef $(eval $(host-generic-package)) ================================================ FILE: package/ti-gfx/0001-newclkapi.patch ================================================ This patch adjusts the omap3630 portion of the powervr driver to use the new clk kernel api. Signed-off-by: Spenser Gilliland [yann.morin.1998@free.fr: rebased ontop of 5.01.00.01] Signed-off-by: "Yann E. MORIN" diff -durN ti-gfx-5_01_00_01.orig/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c ti-gfx-5_01_00_01/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c --- ti-gfx-5_01_00_01.orig/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c 2013-12-23 15:44:20.000000000 +0100 +++ ti-gfx-5_01_00_01/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c 2014-02-26 19:17:39.829571846 +0100 @@ -182,6 +182,49 @@ @Return PVRSRV_ERROR ******************************************************************************/ +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) +int clk_disable_unprepare(struct clk *clk) +{ + return clk_disable(clk); +} +#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) +int clk_disable_unprepare(struct clk *clk) +{ + res = clk_disable(clk); + if (res < 0) + return res; + + res = clk_unprepare(clk); + if (ret < 0) + return res; + + return 0; +} +#endif + + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) +int clk_prepare_enable(struct clk *clk) +{ + return clk_enable(clk); +} +#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) +int clk_prepare_enable(struct clk *clk) +{ + res = clk_prepare(clk); + if (ret < 0) + return res; + + res = clk_enable(clk); + if (res < 0) { + clk_unprepare(clk); + return res; + } + + return 0; +} +#endif + PVRSRV_ERROR EnableSGXClocks(SYS_DATA *psSysData) { #if !defined(NO_HARDWARE) @@ -198,7 +241,7 @@ #if !defined(PM_RUNTIME_SUPPORT) PVR_DPF((PVR_DBG_MESSAGE, "EnableSGXClocks: Enabling SGX Clocks")); - res=clk_enable(psSysSpecData->psSGX_FCK); + res=clk_prepare_enable(psSysSpecData->psSGX_FCK); if (res < 0) { PVR_DPF((PVR_DBG_ERROR, "EnableSGXClocks: Couldn't enable SGX functional clock (%d)", res)); @@ -324,7 +367,7 @@ PVR_DPF((PVR_DBG_MESSAGE, "DisableSGXClocks: Disabling SGX Clocks")); #if !defined(PM_RUNTIME_SUPPORT) - clk_disable(psSysSpecData->psSGX_FCK); + clk_disable_unprepare(psSysSpecData->psSGX_FCK); #endif SysDisableSGXInterrupts(psSysData); @@ -540,14 +583,14 @@ rate = clk_get_rate(psSysSpecData->psGPT11_FCK); PVR_TRACE(("GPTIMER11 clock is %dMHz", HZ_TO_MHZ(rate))); - res = clk_enable(psSysSpecData->psGPT11_FCK); + res = clk_prepare_enable(psSysSpecData->psGPT11_FCK); if (res < 0) { PVR_DPF((PVR_DBG_ERROR, "EnableSystemClocks: Couldn't enable GPTIMER11 functional clock (%d)", res)); goto ExitError; } - res = clk_enable(psSysSpecData->psGPT11_ICK); + res = clk_prepare_enable(psSysSpecData->psGPT11_ICK); if (res < 0) { PVR_DPF((PVR_DBG_ERROR, "EnableSystemClocks: Couldn't enable GPTIMER11 interface clock (%d)", res)); @@ -610,9 +653,9 @@ ExitDisableGPT11ICK: #if defined(PVR_OMAP4_TIMING_PRCM) - clk_disable(psSysSpecData->psGPT11_ICK); + clk_disable_unprepare(psSysSpecData->psGPT11_ICK); ExitDisableGPT11FCK: - clk_disable(psSysSpecData->psGPT11_FCK); + clk_disable_unprepare(psSysSpecData->psGPT11_FCK); ExitError: #endif /* defined(PVR_OMAP4_TIMING_PRCM) */ eError = PVRSRV_ERROR_CLOCK_REQUEST_FAILED; @@ -664,9 +707,9 @@ psSysSpecData->sTimerRegPhysBase.uiAddr = 0; #endif #if defined(PVR_OMAP4_TIMING_PRCM) - clk_disable(psSysSpecData->psGPT11_ICK); + clk_disable_unprepare(psSysSpecData->psGPT11_ICK); - clk_disable(psSysSpecData->psGPT11_FCK); + clk_disable_unprepare(psSysSpecData->psGPT11_FCK); #endif /* defined(PVR_OMAP4_TIMING_PRCM) */ } #endif /* PVR_OMAP_USE_DM_TIMER_API */ ================================================ FILE: package/ti-gfx/0002-fix-build-omaplfb-linux.patch ================================================ Since commit a73fdc647417699833f22d0f239affe22e062827 in the kernel, omap_dss_device's 'output' is renamed 'src'. Fix build with at least es5.x selected (AM35xx). Signed-off-by: Hadrien Boutteville --- a/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.c +++ b/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.c @@ -176,8 +176,10 @@ #define OMAP_DSS_DRIVER(drv, dev) struct omap_dss_driver *drv = (dev) != NULL ? (dev)->driver : NULL #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) #define OMAP_DSS_MANAGER(man, dev) struct omap_overlay_manager *man = (dev) != NULL ? (dev)->manager : NULL -#else +#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0)) #define OMAP_DSS_MANAGER(man, dev) struct omap_overlay_manager *man = (dev) != NULL ? (dev)->output->manager : NULL +#else +#define OMAP_DSS_MANAGER(man, dev) struct omap_overlay_manager *man = (dev) != NULL ? (dev)->src->manager : NULL #endif #define WAIT_FOR_VSYNC(man) ((man)->wait_for_vsync) ================================================ FILE: package/ti-gfx/0003-km_install_modules.patch ================================================ Patch to add modules_install target to the modules makefile. This makes installation a little easier. Signed-off-by: Spenser Gilliland ---- Index: ti-gfx-4_09_00_01/GFX_Linux_KM/Makefile =================================================================== --- ti-gfx-4_09_00_01.orig/GFX_Linux_KM/Makefile 2013-03-07 11:00:11.000000000 -0600 +++ ti-gfx-4_09_00_01/GFX_Linux_KM/Makefile 2013-05-23 01:36:29.356676281 -0500 @@ -479,6 +479,9 @@ all: $(MAKE) -C $(KERNELDIR) M=`pwd` $* +install: + $(MAKE) -C $(KERNELDIR) M=`pwd` modules_install + clean: @find . -name "*.o" -exec rm -r {} \; @find . -name "*.ko" -exec rm -r {} \; ================================================ FILE: package/ti-gfx/Config.in ================================================ config BR2_PACKAGE_TI_GFX bool "ti-gfx" depends on BR2_LINUX_KERNEL && BR2_TOOLCHAIN_USES_GLIBC && BR2_arm depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" 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 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/ if BR2_PACKAGE_TI_GFX config BR2_PACKAGE_PROVIDES_LIBEGL default "ti-gfx" config BR2_PACKAGE_PROVIDES_LIBGLES default "ti-gfx" config BR2_PACKAGE_PROVIDES_POWERVR default "ti-gfx" config BR2_PACKAGE_TI_GFX_DEBUG bool "enable debug support" help Turns on debugging in the kernel module, install libraries built with debugging enabled, installs various tests and installs esrev script. config BR2_PACKAGE_TI_GFX_DEMOS bool "install demos" default y help Install the OGLES2ChameleonMan and OGLES2MagicLantern demos config BR2_PACKAGE_TI_GFX_EGLIMAGE bool "install eglimage version of libraries" help Installs OpenGL libaries which support the eglimage api. choice prompt "Target" default BR2_PACKAGE_TI_GFX_ES3 help Select the SOC for which you would like to install drivers. Please use the chart at http://processors.wiki.ti.com/index.php/OMAP35x_Graphics_SDK_Getting_Started_Guide config BR2_PACKAGE_TI_GFX_ES3 bool "es3.x (OMAP35xx, AM35xx Rev 3.1+)" help OMAP35xx, AM35xx Rev 3.1+ config BR2_PACKAGE_TI_GFX_ES5 bool "es5.x (AM37xx, DM37xx)" help AM37xx, DM37xx config BR2_PACKAGE_TI_GFX_ES6 bool "es6.x (AM387x, DMA814x, AM389x, DM816x)" help AM387x, DM814x, AM389x, DM816x config BR2_PACKAGE_TI_GFX_ES8 bool "es8.x (AM335x)" help AM335x endchoice endif 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) ================================================ FILE: package/ti-gfx/S80ti-gfx ================================================ #!/bin/sh start() { echo "ti-gfx: starting pvr driver" BITSPERPIXEL="$(fbset | awk '/geom/ {print $6}')" YRES="$(fbset | awk '/geom/ {print $3}')" # Set RGBA ordering to something the drivers like if [ "$BITSPERPIXEL" = "32" ] ; then fbset -rgba 8/16,8/8,8/0,8/24 fi # Try to enable triple buffering when there's enough VRAM fbset -vyres $(( YRES*3 )) modprobe pvrsrvkm modprobe omaplfb modprobe bufferclass_ti pvr_maj=$(awk '$2=="pvrsrvkm" { print $1; }' /proc/devices) rm -f /dev/pvrsrvkm mknod /dev/pvrsrvkm c $pvr_maj 0 chmod 600 /dev/pvrsrvkm if ! /usr/bin/pvrsrvctl --start --no-module; then echo "ti-gfx: unable to start server" fi } stop() { echo "ti-gfx: stopping pvr driver" rmmod bufferclass_ti rmmod omaplfb rmmod pvrsrvkm } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "ti-gfx: Please use start, stop, or restart." exit 1 ;; esac ================================================ FILE: package/ti-gfx/egl.pc ================================================ prefix=/usr/ exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: egl Description: TI Graphics SDK implementation of EGL Version: 1.9.2188537 Requires: Libs: -L${libdir} -lEGL -lGLESv2 -lIMGegl Cflags: -I${includedir} ================================================ FILE: package/ti-gfx/esrev.sh ================================================ #!/bin/sh # Debug script to determine proper ES revision for the current board. The # pvrsrvkm module must be insmoded before attempting to get the es rev. machine_id() { # return the machine ID awk 'BEGIN { FS=": " } /Hardware/ \ { gsub(" ", "_", $2); print tolower($2) } ' Date: Sun, 10 Nov 2019 22:44:44 -0300 Subject: [PATCH] Makefile: do not install init script Use a custom one, made for Buildroot, instead. Signed-off-by: Carlos Santos --- Makefile | 3 --- 1 file changed, 3 deletions(-) diff --git a/Makefile b/Makefile index 649111a..19016f3 100755 --- a/Makefile +++ b/Makefile @@ -3,7 +3,6 @@ TARGET_PRODUCT ?= jacinto6evm SRCDIR = ./targetfs/${TARGET_PRODUCT} prefix = /usr -etcdir = /etc bindir = ${prefix}/bin incdir = ${prefix}/include libdir = ${prefix}/lib @@ -11,11 +10,9 @@ libdir = ${prefix}/lib all: install: - mkdir -p ${DESTDIR}${etcdir} mkdir -p ${DESTDIR}${bindir} mkdir -p ${DESTDIR}${incdir} mkdir -p ${DESTDIR}${libdir} - cp -ar ${SRCDIR}/etc/* ${DESTDIR}${etcdir} cp -ar ${SRCDIR}/bin/* ${DESTDIR}${bindir} cp -ar ${SRCDIR}/include/* ${DESTDIR}${incdir} cp -ar ${SRCDIR}/lib/* ${DESTDIR}${libdir} -- 2.18.1 ================================================ FILE: package/ti-sgx-um/Config.in ================================================ comment "ti-sgx-um needs the ti-sgx-km driver" depends on !BR2_PACKAGE_TI_SGX_KM comment "ti-sgx-um needs udev and a glibc toolchain w/ threads" depends on !BR2_PACKAGE_HAS_UDEV || !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 depends on BR2_PACKAGE_HAS_UDEV # 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 select BR2_PACKAGE_LIBFFI select BR2_PACKAGE_WAYLAND 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. https://git.ti.com/cgit/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 ================================================ FILE: package/ti-sgx-um/S80ti-sgx ================================================ #!/bin/sh pvrsrvkm_ko="/lib/modules/$(/bin/uname -r)/extra/pvrsrvkm.ko" pvr_loaded() { /sbin/lsmod | /bin/grep -q '^\' } pvr_load() { /sbin/insmod "$pvrsrvkm_ko" > /dev/null 2>&1 } start() { printf 'Loading pvrsrvkm module: ' pvr_loaded || pvr_load status=$? if [ "$status" -eq 0 ]; then printf 'Starting PowerVR services: ' /usr/bin/pvrsrvctl --start --no-module > /dev/null 2>&1 status=$? fi if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Starting PowerVR services: ' /usr/bin/pvrsrvctl --stop > /dev/null 2>&1 status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/ti-sgx-um/ti-sgx-um.hash ================================================ # Locally computed: sha256 e52c743194516fcc92d570bc5a26dfaa26d18c13d92d41640019f544ef25be3a ti-sgx-um-909e237baf47d0bde006ff25552f5403fd7e359d-br1.tar.gz sha256 368c306246c9130b5c90a6fef2f80085f70b6225b3f552654a288c0f39fc1531 TI-Linux-Graphics-DDK-UM-Manifest.doc ================================================ FILE: package/ti-sgx-um/ti-sgx-um.mk ================================================ ################################################################################ # # ti-sgx-um # ################################################################################ # This corresponds to SDK 06.01.00.08 TI_SGX_UM_VERSION = 909e237baf47d0bde006ff25552f5403fd7e359d TI_SGX_UM_SITE = http://git.ti.com/git/graphics/omap5-sgx-ddk-um-linux.git TI_SGX_UM_SITE_METHOD = git TI_SGX_UM_LICENSE = TI TSPA License TI_SGX_UM_LICENSE_FILES = TI-Linux-Graphics-DDK-UM-Manifest.doc TI_SGX_UM_INSTALL_STAGING = YES TI_SGX_UM_TARGET=ti335x # ti-sgx-um is a egl/gles provider only if libdrm is installed TI_SGX_UM_DEPENDENCIES = libdrm wayland define TI_SGX_UM_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DISCIMAGE=$(STAGING_DIR) \ TARGET_PRODUCT=$(TI_SGX_UM_TARGET) install endef define TI_SGX_UM_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DISCIMAGE=$(TARGET_DIR) \ TARGET_PRODUCT=$(TI_SGX_UM_TARGET) install 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)) ================================================ FILE: package/ti-uim/Config.in ================================================ config BR2_PACKAGE_TI_UIM bool "ti-uim" help User Mode Initialization Manager for TI wl12xx connectivity chip shared transport drivers. This daemon is needed to get the btwilink driver to work. http://omappedia.org/wiki/Device_Driver_Interface_of_WiLink_Solution ================================================ FILE: package/ti-uim/ti-uim.hash ================================================ # Locally computed sha256 da8a66968f4bf99366ab2b63baf358d937a6b1a5636ef6179c3aa7c852cbd1b2 ti-uim-a0236bc252e6484835ce266ae4a50b361f6a902d.tar.gz sha256 4e39276507524f938459b05d061ae77562f3f85926fe73027cfcac259cb03d0e uim.h ================================================ FILE: package/ti-uim/ti-uim.mk ================================================ ################################################################################ # # ti-uim # ################################################################################ TI_UIM_VERSION = a0236bc252e6484835ce266ae4a50b361f6a902d TI_UIM_SITE = $(call github,96boards,uim,$(TI_UIM_VERSION)) TI_UIM_LICENSE = GPL-2.0+ TI_UIM_LICENSE_FILES = uim.h define TI_UIM_BUILD_CMDS $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) endef define TI_UIM_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/uim \ $(TARGET_DIR)/usr/sbin/uim endef $(eval $(generic-package)) ================================================ FILE: package/ti-utils/0001-plt.h-fix-build-with-gcc-10.patch ================================================ From 9ed1946cef876acd5346ae806eecd7fc2e1e5341 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 3 Oct 2020 10:32:48 +0200 Subject: [PATCH] plt.h: fix build with gcc 10 Drop EFUSE_PARAMETER_TYPE_ENM to avoid the following build failure with gcc 10 (which defaults to -fno-common): /home/naourr/work/instance-1/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: misc_cmds.o:(.bss+0x0): multiple definition of `EFUSE_PARAMETER_TYPE_ENM'; nvs.o:(.bss+0x0): first defined here Fixes: - http://autobuild.buildroot.org/results/e96c70910544085dc5299fa59f80ab9c5922fde2 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/gxk/ti-utils/pull/2] --- plt.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plt.h b/plt.h index 523fded..8ba01c9 100644 --- a/plt.h +++ b/plt.h @@ -363,7 +363,7 @@ enum EFUSE_PARAMETER_TYPE_ENMT { TX_BIP_PD_BUFFER_VBIAS_ERROR_E, EFUSE_NUMBER_OF_PARAMETERS_E, EFUSE_LAST_PARAMETER_E = (EFUSE_NUMBER_OF_PARAMETERS_E - 1) -} EFUSE_PARAMETER_TYPE_ENM; +}; int get_mac_addr(int ifc_num, unsigned char *mac_addr); -- 2.28.0 ================================================ FILE: package/ti-utils/Config.in ================================================ config BR2_PACKAGE_TI_UTILS bool "ti-utils" depends on BR2_TOOLCHAIN_HAS_THREADS # libnl select BR2_PACKAGE_LIBNL help The calibrator and other useful utilities for TI wireless solution, based on wl12xx driver. http://linuxwireless.sipsolutions.net/en/users/Drivers/wl12xx/calibrator/ comment "ti-utils needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/ti-utils/ti-utils.hash ================================================ # locally computed sha256 d05d4e3ad3599fca7854109938aebd24bbab72ac7d69dd053260f735a36613f9 ti-utils-06dbdb2727354b5f3ad7c723897f40051fddee49.tar.gz sha256 363cef40b276a7a91ebcff3f78626d9cfe5e5a51927c725236007259403d5fc4 COPYING ================================================ FILE: package/ti-utils/ti-utils.mk ================================================ ################################################################################ # # ti-utils # ################################################################################ TI_UTILS_VERSION = 06dbdb2727354b5f3ad7c723897f40051fddee49 TI_UTILS_SITE = $(call github,gxk,ti-utils,$(TI_UTILS_VERSION)) TI_UTILS_DEPENDENCIES = libnl host-pkgconf TI_UTILS_LICENSE = BSD-3-Clause TI_UTILS_LICENSE_FILES = COPYING TI_UTILS_CFLAGS = `$(PKG_CONFIG_HOST_BINARY) --cflags libnl-genl-3.0` TI_UTILS_LIBS = `$(PKG_CONFIG_HOST_BINARY) --libs libnl-genl-3.0` define TI_UTILS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) NFSROOT="$(STAGING_DIR)" \ CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) $(TI_UTILS_CFLAGS)" \ LIBS="$(TI_UTILS_LIBS)" -C $(@D) all endef define TI_UTILS_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/calibrator \ $(TARGET_DIR)/usr/bin/calibrator $(INSTALL) -m 0755 -D $(@D)/scripts/go.sh \ $(TARGET_DIR)/usr/share/ti-utils/scripts/go.sh cp -r $(@D)/ini_files $(TARGET_DIR)/usr/share/ti-utils endef $(eval $(generic-package)) ================================================ FILE: package/tiff/Config.in ================================================ menuconfig BR2_PACKAGE_TIFF bool "tiff" help Library for handling TIFF (Tag Image File Format) images. http://simplesystems.org/libtiff/ if BR2_PACKAGE_TIFF config BR2_PACKAGE_TIFF_CCITT bool "CCITT Group 3 & 4 support" default y config BR2_PACKAGE_TIFF_PACKBITS bool "Macintosh PackBits algorithm" default y config BR2_PACKAGE_TIFF_LZW bool "LZW algorithm" default y config BR2_PACKAGE_TIFF_THUNDER bool "ThunderScan 4-bit RLE algorithm" default y config BR2_PACKAGE_TIFF_NEXT bool "NeXT 2-bit RLE algorithm" default y config BR2_PACKAGE_TIFF_LOGLUV bool "LogLuv high dynamic range encoding" default y config BR2_PACKAGE_TIFF_MDI bool "Microsoft Document Imaging" default y config BR2_PACKAGE_TIFF_ZLIB bool "Zlib usage (required for Deflate compression)" default y select BR2_PACKAGE_ZLIB config BR2_PACKAGE_TIFF_XZ bool "XZ compression" select BR2_PACKAGE_XZ config BR2_PACKAGE_TIFF_PIXARLOG bool "Pixar log-format algorithm (requires Zlib)" default y select BR2_PACKAGE_TIFF_ZLIB config BR2_PACKAGE_TIFF_JPEG bool "JPEG compression" default y select BR2_PACKAGE_JPEG config BR2_PACKAGE_TIFF_OLD_JPEG bool "Old JPEG decompression" default y config BR2_PACKAGE_TIFF_JBIG bool "JBIG compression" default y config BR2_PACKAGE_TIFF_UTILITIES bool "tiff utilities" help Install all tiff utilities. endif ================================================ FILE: package/tiff/tiff.hash ================================================ # Locally computed sha256 0e46e5acb087ce7d1ac53cf4f56a09b221537fc86dfc5daaad1c2e89e1b37ac8 tiff-4.3.0.tar.gz sha256 fbd6fed7938541d2c809c0826225fc85e551fdbfa8732b10f0c87e0847acafd7 COPYRIGHT ================================================ FILE: package/tiff/tiff.mk ================================================ ################################################################################ # # tiff # ################################################################################ TIFF_VERSION = 4.3.0 TIFF_SITE = http://download.osgeo.org/libtiff TIFF_LICENSE = tiff license TIFF_LICENSE_FILES = COPYRIGHT TIFF_CPE_ID_VENDOR = libtiff TIFF_CPE_ID_PRODUCT = libtiff TIFF_INSTALL_STAGING = YES TIFF_CONF_OPTS = \ --disable-cxx \ --without-x 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 ifneq ($(BR2_PACKAGE_TIFF_PACKBITS),y) TIFF_CONF_OPTS += --disable-packbits endif ifneq ($(BR2_PACKAGE_TIFF_LZW),y) TIFF_CONF_OPTS += --disable-lzw endif ifneq ($(BR2_PACKAGE_TIFF_THUNDER),y) TIFF_CONF_OPTS += --disable-thunder endif ifneq ($(BR2_PACKAGE_TIFF_NEXT),y) TIFF_CONF_OPTS += --disable-next endif ifneq ($(BR2_PACKAGE_TIFF_LOGLUV),y) TIFF_CONF_OPTS += --disable-logluv endif ifneq ($(BR2_PACKAGE_TIFF_MDI),y) TIFF_CONF_OPTS += --disable-mdi endif ifneq ($(BR2_PACKAGE_TIFF_ZLIB),y) TIFF_CONF_OPTS += --disable-zlib else TIFF_DEPENDENCIES += zlib endif ifneq ($(BR2_PACKAGE_TIFF_XZ),y) TIFF_CONF_OPTS += --disable-lzma else TIFF_DEPENDENCIES += xz endif ifneq ($(BR2_PACKAGE_TIFF_PIXARLOG),y) TIFF_CONF_OPTS += --disable-pixarlog endif ifneq ($(BR2_PACKAGE_TIFF_JPEG),y) TIFF_CONF_OPTS += --disable-jpeg else TIFF_DEPENDENCIES += jpeg endif ifneq ($(BR2_PACKAGE_TIFF_OLD_JPEG),y) TIFF_CONF_OPTS += --disable-old-jpeg endif ifneq ($(BR2_PACKAGE_TIFF_JBIG),y) TIFF_CONF_OPTS += --disable-jbig endif TIFF_SUBDIRS = port libtiff ifeq ($(BR2_PACKAGE_TIFF_UTILITIES),y) TIFF_SUBDIRS += tools endif TIFF_MAKE = $(MAKE) SUBDIRS="$(TIFF_SUBDIRS)" $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/time/Config.in ================================================ 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 ================================================ FILE: package/time/time.hash ================================================ # From https://lists.gnu.org/archive/html/info-gnu/2018-03/msg00004.html sha1 75068c26abbed3ad3980685bae21d7202d288317 time-1.9.tar.gz sha256 fbacf0c81e62429df3e33bda4cee38756604f18e01d977338e23306a3e3b521e time-1.9.tar.gz # Locally calculated sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/time/time.mk ================================================ ################################################################################ # # time # ################################################################################ TIME_VERSION = 1.9 TIME_SITE = $(BR2_GNU_MIRROR)/time TIME_CONF_ENV = ac_cv_func_wait3_rusage=yes TIME_LICENSE = GPL-3.0+ TIME_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/timescaledb/Config.in ================================================ config BR2_PACKAGE_TIMESCALEDB bool "timescaledb" depends on BR2_PACKAGE_POSTGRESQL help TimescaleDB is an open-source database designed to make SQL scalable for time-series data. It is engineered up from PostgreSQL and packaged as a PostgreSQL extension, providing automatic partitioning across time and space (partitioning key), as well as full SQL support. https://www.timescale.com/ ================================================ FILE: package/timescaledb/timescaledb.hash ================================================ # Locally calculated sha256 b206a376251259eb745eee819e7a853b3fbab9dc8443303714484a0fef89a2a4 timescaledb-2.4.2.tar.gz sha256 0378e0948feefd85f579319c74d6e2b671194037f550c7176ef26649d94c895b LICENSE ================================================ FILE: package/timescaledb/timescaledb.mk ================================================ ################################################################################ # # timescaledb # ################################################################################ TIMESCALEDB_VERSION = 2.4.2 TIMESCALEDB_SITE = $(call github,timescale,timescaledb,$(TIMESCALEDB_VERSION)) TIMESCALEDB_LICENSE = Apache-2.0 TIMESCALEDB_LICENSE_FILES = LICENSE TIMESCALEDB_DEPENDENCIES = postgresql # The PG_CPPFLAGS, PG_CFLAGS, PG_LDFLAGS and PG_LIBS variables must be # non-empty, otherwise CMake will call the pg_config script, and our # pg_config replacement doesn't implement --cppflags --cflags # --ldflags and --libs. TIMESCALEDB_CONF_OPTS = \ -DTAP_CHECKS=OFF \ -DREGRESS_CHECKS=OFF \ -DWARNINGS_AS_ERRORS=OFF \ -DPG_PKGLIBDIR=lib/postgresql \ -DPG_SHAREDIR=share/postgresql \ -DPG_BINDIR=bin \ -DPG_CPPFLAGS="$(TARGET_CPPFLAGS) " \ -DPG_CFLAGS="$(TARGET_CFLAGS) " \ -DPG_LDFLAGS="$(TARGET_LDFLAGS) " \ -DPG_LIBS=" " # There's no dependency on the OpenSSL package, because USE_OPENSSL # only tells if postgresql was built with OpenSSL support or not. ifeq ($(BR2_PACKAGE_OPENSSL),y) TIMESCALEDB_CONF_OPTS += -DUSE_OPENSSL=1 else TIMESCALEDB_CONF_OPTS += -DUSE_OPENSSL=0 endif $(eval $(cmake-package)) ================================================ FILE: package/tinc/Config.in ================================================ config BR2_PACKAGE_TINC bool "tinc" depends on !BR2_STATIC_LIBS # tinc requires libdl for OpenSSL depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LZO select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help tinc is a Virtual Private Network (VPN) daemon that uses tunnelling and encryption to create a secure private network between hosts on the Internet. http://www.tinc-vpn.org/ comment "tinc needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/tinc/tinc.hash ================================================ # Locally calculated after checking pgp signature sha256 40f73bb3facc480effe0e771442a706ff0488edea7a5f2505d4ccb2aa8163108 tinc-1.0.36.tar.gz sha256 3b37ffbf3459f2aceeef169aa65ee8b111ac1f8ba24a2a1b90b079678a9c7faa COPYING sha256 9bf76a8aa304d807df20bf3d221c21d259764be63e39b58f299b80ba3ac14b5b COPYING.README ================================================ FILE: package/tinc/tinc.mk ================================================ ################################################################################ # # tinc # ################################################################################ TINC_VERSION = 1.0.36 TINC_SITE = http://www.tinc-vpn.org/packages TINC_DEPENDENCIES = lzo openssl zlib TINC_LICENSE = GPL-2.0+ with OpenSSL exception TINC_LICENSE_FILES = COPYING COPYING.README TINC_CPE_ID_VENDOR = tinc-vpn TINC_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -std=c99" ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) TINC_CONF_ENV += \ ax_cv_check_cflags___fPIE=no \ ax_cv_check_ldflags___pie=no endif ifeq ($(BR2_INIT_SYSTEMD),y) TINC_DEPENDENCIES += systemd TINC_CONF_OPTS += --with-systemdsystemunitdir=/usr/lib/systemd/system endif $(eval $(autotools-package)) ================================================ FILE: package/tini/Config.in ================================================ config BR2_PACKAGE_TINI bool "tini" depends on BR2_USE_MMU # fork() help tini is a simple but valid init binary to act as PID 1 for containers. https://github.com/krallin/tini if BR2_PACKAGE_TINI config BR2_PACKAGE_TINI_MINIMAL bool "build minimal variant" help Disables argument parsing and verbose output. endif ================================================ FILE: package/tini/tini.hash ================================================ # Locally computed sha256 e5f46bca81266bdd511cf08018d66866870531794569c04f9b45f50dd23c28b0 LICENSE sha256 0fd35a7030052acd9f58948d1d900fe1e432ee37103c5561554408bdac6bbf0d tini-0.19.0.tar.gz ================================================ FILE: package/tini/tini.mk ================================================ ################################################################################ # # tini # ################################################################################ TINI_VERSION = 0.19.0 TINI_SITE = $(call github,krallin,tini,v$(TINI_VERSION)) TINI_LICENSE = MIT TINI_LICENSE_FILES = LICENSE TINI_CPE_ID_VENDOR = tini_project TINI_CFLAGS = $(TARGET_CFLAGS) \ -static \ -DTINI_VERSION=\"$(TINI_VERSION)\" \ -DTINI_GIT=\"\" ifeq ($(BR2_PACKAGE_TINI_MINIMAL),y) TINI_CFLAGS += -DTINI_MINIMAL endif define TINI_CONFIGURE_CMDS printf "#pragma once\n" > $(@D)/src/tiniConfig.h endef define TINI_BUILD_CMDS mkdir -p $(@D)/bin $(TARGET_CC) $(TINI_CFLAGS) \ -o $(@D)/bin/tini $(@D)/src/tini.c endef define TINI_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/bin/tini $(TARGET_DIR)/usr/bin/tini ln -sf tini $(TARGET_DIR)/usr/bin/docker-init endef # Tini's CMakeLists.txt is not suitable for Buildroot. $(eval $(generic-package)) ================================================ FILE: package/tinyalsa/0001-disable-doxygen-usage.patch ================================================ Disable doxygen usage In order to avoid a dependency on doxygen on the build machine, this patch adjusts the main Makefile to not build and install the documentation. [Vincent: tweak patch for 1.1.1 version] Signed-off-by: Thomas Petazzoni Signed-off-by: Vicente Olivert Riera diff -rup a/Makefile b/Makefile --- a/Makefile 2017-05-24 05:23:57.000000000 +0100 +++ b/Makefile 2017-05-25 10:35:20.781747053 +0100 @@ -11,14 +11,12 @@ export MANDIR ?= $(PREFIX)/share/man all: $(MAKE) -C src $(MAKE) -C utils - $(MAKE) -C doxygen $(MAKE) -C examples .PHONY: clean clean: $(MAKE) -C src clean $(MAKE) -C utils clean - $(MAKE) -C doxygen clean $(MAKE) -C examples clean .PHONY: install @@ -30,5 +28,4 @@ install: install include/tinyalsa/version.h $(DESTDIR)$(INCDIR)/ $(MAKE) -C src install $(MAKE) -C utils install - $(MAKE) -C doxygen install ================================================ FILE: package/tinyalsa/0002-interval.h-add-missing-header.patch ================================================ From 685e530d8a0063134642371eaacd01fee2f62d85 Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Fri, 2 Jun 2017 12:19:03 +0300 Subject: [PATCH] interval.h: add missing header The ssize_t type requires the unistd.h header. This fixes build with musl libc: In file included from ../include/tinyalsa/limits.h:32:0, from limits.c:1: ../include/tinyalsa/interval.h:38:2: error: unknown type name 'ssize_t' ssize_t max; ^ Signed-off-by: Baruch Siach --- Upstream status: https://github.com/tinyalsa/tinyalsa/pull/98 include/tinyalsa/interval.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/tinyalsa/interval.h b/include/tinyalsa/interval.h index 3f6f3dce5d90..068571df5a63 100644 --- a/include/tinyalsa/interval.h +++ b/include/tinyalsa/interval.h @@ -30,6 +30,7 @@ #define TINYALSA_INTERVAL_H #include +#include /** A closed range signed interval. */ -- 2.11.0 ================================================ FILE: package/tinyalsa/Config.in ================================================ config BR2_PACKAGE_TINYALSA bool "tinyalsa" depends on !BR2_STATIC_LIBS help a small library to interface with ALSA in the Linux kernel The aims are: - Provide a basic pcm and mixer API - If it's not absolutely needed, don't add it to the API - Avoid supporting complex and unnecessary operations that could be dealt with at a higher level https://github.com/tinyalsa/tinyalsa comment "tinyalsa needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/tinyalsa/tinyalsa.hash ================================================ # locally computed sha256 d92b438cea348ae316c4b2cbf367b4f01ed821a947e6a34d813624e9e3c936c1 tinyalsa-1.1.1.tar.gz sha256 ca2b89a68c33fba3c8bcaec96f32907e2ede0eb33688ae61d29ec49732158f6d NOTICE ================================================ FILE: package/tinyalsa/tinyalsa.mk ================================================ ################################################################################ # # tinyalsa # ################################################################################ TINYALSA_VERSION = 1.1.1 TINYALSA_SITE = $(call github,tinyalsa,tinyalsa,$(TINYALSA_VERSION)) TINYALSA_LICENSE = BSD-3-Clause TINYALSA_LICENSE_FILES = NOTICE TINYALSA_INSTALL_STAGING = YES define TINYALSA_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CROSS_COMPILE="$(TARGET_CROSS)" -C $(@D) endef define TINYALSA_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) \ -C $(@D) \ PREFIX="/usr" \ CROSS_COMPILE="$(TARGET_CROSS)" \ DESTDIR="$(STAGING_DIR)" install endef define TINYALSA_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) \ -C $(@D) \ PREFIX="/usr" \ CROSS_COMPILE="$(TARGET_CROSS)" \ DESTDIR="$(TARGET_DIR)" install endef $(eval $(generic-package)) ================================================ FILE: package/tinycbor/Config.in ================================================ config BR2_PACKAGE_TINYCBOR bool "tinycbor" help Concise Binary Object Representation (CBOR) Library https://github.com/01org/tinycbor ================================================ FILE: package/tinycbor/tinycbor.hash ================================================ # Locally computed: sha256 e63668a71fd6d7abf1727dc31682ec7f107599a3c024a445c3e5da6af9328983 tinycbor-0.5.4.tar.gz sha256 3c6ba0b5bfa7830505301ffb336a17b0748e0d61c4d34216e9dc98f10e40395e LICENSE ================================================ FILE: package/tinycbor/tinycbor.mk ================================================ ################################################################################ # # tinycbor # ################################################################################ TINYCBOR_VERSION = 0.5.4 TINYCBOR_SITE = $(call github,intel,tinycbor,v$(TINYCBOR_VERSION)) TINYCBOR_LICENSE = MIT TINYCBOR_LICENSE_FILES = LICENSE 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 ifeq ($(BR2_STATIC_LIBS),y) TINYCBOR_MAKE_OPTS += BUILD_STATIC=1 BUILD_SHARED=0 else ifeq ($(BR2_SHARED_STATIC_LIBS),y) TINYCBOR_MAKE_OPTS += BUILD_STATIC=1 BUILD_SHARED=1 else ifeq ($(BR2_SHARED_LIBS),y) TINYCBOR_MAKE_OPTS += BUILD_STATIC=0 BUILD_SHARED=1 endif # disabled parallel build because of build failures while # producing the .config file define TINYCBOR_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) $(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)) ================================================ FILE: package/tinydtls/0001-sha2-sha2.c-fix-build-on-big-endian.patch ================================================ From 608738ccad9ac3743ccd535bde1e84f401e6176f Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 20 Jun 2020 12:50:40 +0200 Subject: [PATCH] sha2/sha2.c: fix build on big endian Build is broken since 865ec9ba1d44e629c1107c299aebd20e901a19ff because tmp is undefined in put32be and put64be: sha2.c: In function 'put32be': sha2.c:177:34: error: 'tmp' undeclared (first use in this function) MEMCPY_BCOPY(data, &val, sizeof(tmp)); ^~~ Fix this error by replacing tmp by val Moreover, move MEMCPY_BCOPY before its usage or linking step will fail Fixes: - http://autobuild.buildroot.org/results/e8704e02fdede7b63e22da552292977b23380b32 Signed-off-by: Fabrice Fontaine [Upstream: https://github.com/eclipse/tinydtls/commit/78a2d32f47165eda10cbf8f5cf79f86fa1c4872b] --- sha2/sha2.c | 58 ++++++++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/sha2/sha2.c b/sha2/sha2.c index cb6d90f..5c794c6 100644 --- a/sha2/sha2.c +++ b/sha2/sha2.c @@ -114,6 +114,33 @@ #error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN #endif +/* + * Macros for copying blocks of memory and for zeroing out ranges + * of memory. Using these macros makes it easy to switch from + * using memset()/memcpy() and using bzero()/bcopy(). + * + * Please define either SHA2_USE_MEMSET_MEMCPY or define + * SHA2_USE_BZERO_BCOPY depending on which function set you + * choose to use: + */ +#if !defined(SHA2_USE_MEMSET_MEMCPY) && !defined(SHA2_USE_BZERO_BCOPY) +/* Default to memset()/memcpy() if no option is specified */ +#define SHA2_USE_MEMSET_MEMCPY 1 +#endif +#if defined(SHA2_USE_MEMSET_MEMCPY) && defined(SHA2_USE_BZERO_BCOPY) +/* Abort with an error if BOTH options are defined */ +#error Define either SHA2_USE_MEMSET_MEMCPY or SHA2_USE_BZERO_BCOPY, not both! +#endif + +#ifdef SHA2_USE_MEMSET_MEMCPY +#define MEMSET_BZERO(p,l) memset((p), 0, (l)) +#define MEMCPY_BCOPY(d,s,l) memcpy((d), (s), (l)) +#endif +#ifdef SHA2_USE_BZERO_BCOPY +#define MEMSET_BZERO(p,l) bzero((p), (l)) +#define MEMCPY_BCOPY(d,s,l) bcopy((s), (d), (l)) +#endif + /* * Define the followingsha2_* types to types of the correct length on * the native archtecture. Most BSD systems and Linux define u_intXX_t @@ -174,7 +201,7 @@ static inline void put32be(sha2_byte* data, sha2_word32 val) data[1] = val; val >>= 8; data[0] = val; #else /* BYTE_ORDER != LITTLE_ENDIAN */ - MEMCPY_BCOPY(data, &val, sizeof(tmp)); + MEMCPY_BCOPY(data, &val, sizeof(val)); #endif /* BYTE_ORDER != LITTLE_ENDIAN */ } @@ -209,7 +236,7 @@ static inline void put64be(sha2_byte* data, sha2_word64 val) data[1] = val; val >>= 8; data[0] = val; #else /* BYTE_ORDER != LITTLE_ENDIAN */ - MEMCPY_BCOPY(data, &val, sizeof(tmp)); + MEMCPY_BCOPY(data, &val, sizeof(val)); #endif /* BYTE_ORDER != LITTLE_ENDIAN */ } @@ -225,33 +252,6 @@ static inline void put64be(sha2_byte* data, sha2_word64 val) } \ } -/* - * Macros for copying blocks of memory and for zeroing out ranges - * of memory. Using these macros makes it easy to switch from - * using memset()/memcpy() and using bzero()/bcopy(). - * - * Please define either SHA2_USE_MEMSET_MEMCPY or define - * SHA2_USE_BZERO_BCOPY depending on which function set you - * choose to use: - */ -#if !defined(SHA2_USE_MEMSET_MEMCPY) && !defined(SHA2_USE_BZERO_BCOPY) -/* Default to memset()/memcpy() if no option is specified */ -#define SHA2_USE_MEMSET_MEMCPY 1 -#endif -#if defined(SHA2_USE_MEMSET_MEMCPY) && defined(SHA2_USE_BZERO_BCOPY) -/* Abort with an error if BOTH options are defined */ -#error Define either SHA2_USE_MEMSET_MEMCPY or SHA2_USE_BZERO_BCOPY, not both! -#endif - -#ifdef SHA2_USE_MEMSET_MEMCPY -#define MEMSET_BZERO(p,l) memset((p), 0, (l)) -#define MEMCPY_BCOPY(d,s,l) memcpy((d), (s), (l)) -#endif -#ifdef SHA2_USE_BZERO_BCOPY -#define MEMSET_BZERO(p,l) bzero((p), (l)) -#define MEMCPY_BCOPY(d,s,l) bcopy((s), (d), (l)) -#endif - /*** THE SIX LOGICAL FUNCTIONS ****************************************/ /* -- 2.26.2 ================================================ FILE: package/tinydtls/Config.in ================================================ 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://projects.eclipse.org/projects/iot.tinydtls comment "tinydtls needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/tinydtls/tinydtls.hash ================================================ # Locally computed: sha256 af73742835b5a66dc0b4a9c126ca8243b5db2986b4969d76e2b4531aa7e13f67 tinydtls-0.9-rc1.tar.gz sha256 7e906fb56da52bb6bba38e77eec00e7d37fe65b0b7b28c4bf68ff036573d0de5 LICENSE ================================================ FILE: package/tinydtls/tinydtls.mk ================================================ ################################################################################ # # tinydtls # ################################################################################ TINYDTLS_VERSION = 0.9-rc1 TINYDTLS_SITE = $(call github,eclipse,tinydtls,v$(TINYDTLS_VERSION)) TINYDTLS_LICENSE = EPL-1.0 or EDL-1.0 TINYDTLS_LICENSE_FILES = LICENSE TINYDTLS_CPE_ID_VENDOR = eclipse TINYDTLS_INSTALL_STAGING = YES TINYDTLS_DEPENDENCIES = host-pkgconf # From git TINYDTLS_AUTORECONF = YES # use inttypes.h data types instead of u_intXX_t for musl compatibility TINYDTLS_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -DSHA2_USE_INTTYPES_H" # Fix build with automake >= 1.16.4 define TINYDTLS_TOUCH_AR_LIB touch $(@D)/ar-lib endef TINYDTLS_PRE_CONFIGURE_HOOKS += TINYDTLS_TOUCH_AR_LIB $(eval $(autotools-package)) ================================================ FILE: package/tinymembench/0001-arm-fix-build-on-Thumb-only-architectures.patch ================================================ From 034a3552e9700c6d424bd706db106f5bce1f5a5e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 11 Nov 2016 21:49:39 +0100 Subject: [PATCH] arm: fix build on Thumb-only architectures Building tinymembench for ARM Cortex-M currently fails, because the arm-neon.S file contains ARM code that doesn't build on Thumb-only architectures. To account for this and fix the build for Cortex-M, this patch adjusts the compile time condition to also verify that the architecture supports the ARM instruction set, by testing the __ARM_ARCH_ISA_ARM compiler define. Signed-off-by: Thomas Petazzoni --- arm-neon.S | 2 +- asm-opt.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arm-neon.S b/arm-neon.S index 4db78ce..19c30ad 100644 --- a/arm-neon.S +++ b/arm-neon.S @@ -21,7 +21,7 @@ * DEALINGS IN THE SOFTWARE. */ -#ifdef __arm__ +#if defined(__arm__) && defined(__ARM_ARCH_ISA_ARM) .text .fpu neon diff --git a/asm-opt.c b/asm-opt.c index 9da4596..eba1183 100644 --- a/asm-opt.c +++ b/asm-opt.c @@ -202,7 +202,7 @@ bench_info *get_asm_framebuffer_benchmarks(void) return empty; } -#elif defined(__arm__) +#elif defined(__arm__) && defined(__ARM_ARCH_ISA_ARM) #include "arm-neon.h" -- 2.7.4 ================================================ FILE: package/tinymembench/Config.in ================================================ config BR2_PACKAGE_TINYMEMBENCH bool "tinymembench" depends on !BR2_MIPS_NABI32 && !BR2_MIPS_NABI64 help Tinymembench is a simple memory benchmark program, which tries to measure the peak bandwidth of sequential memory accesses and the latency of random memory accesses. Bandwidth is measured by running different assembly code for the aligned memory blocks and attempting different prefetch strategies. https://github.com/ssvb/tinymembench ================================================ FILE: package/tinymembench/tinymembench.hash ================================================ # Locally calculated sha256 e37a2682065b2778f2fa7f22bd59472f5ca2191be48503952ae020b8f023f23d tinymembench-0.4.tar.gz sha256 8ba473aced4630aee2808efe17b53e904a9d68a9b3361de491717f9a4e75da39 LICENSE ================================================ FILE: package/tinymembench/tinymembench.mk ================================================ ################################################################################ # # tinymembench # ################################################################################ TINYMEMBENCH_VERSION = 0.4 TINYMEMBENCH_SITE = $(call github,ssvb,tinymembench,v$(TINYMEMBENCH_VERSION)) TINYMEMBENCH_LICENSE = MIT TINYMEMBENCH_LICENSE_FILES = LICENSE define TINYMEMBENCH_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define TINYMEMBENCH_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/tinymembench \ $(TARGET_DIR)/usr/bin/tinymembench endef $(eval $(generic-package)) ================================================ FILE: package/tinyproxy/Config.in ================================================ config BR2_PACKAGE_TINYPROXY bool "tinyproxy" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() help Tinyproxy is a small, efficient HTTP/SSL proxy daemon released under the GNU General Public License. Tinyproxy is very useful in a small network setting, where a larger proxy would be too resource intensive. https://tinyproxy.github.io comment "tinyproxy needs a toolchain w/ threads, wchar" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR depends on BR2_USE_MMU ================================================ FILE: package/tinyproxy/tinyproxy.hash ================================================ # From https://github.com/tinyproxy/tinyproxy/releases/tag/1.11.0 sha256 c1ec81cfc4c551d2c24e0227a5aeeaad8723bd9a39b61cd729e516b82eaa3f32 tinyproxy-1.11.0.tar.xz # locally computed sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING ================================================ FILE: package/tinyproxy/tinyproxy.mk ================================================ ################################################################################ # # tinyproxy # ################################################################################ TINYPROXY_VERSION = 1.11.0 TINYPROXY_SITE = https://github.com/tinyproxy/tinyproxy/releases/download/$(TINYPROXY_VERSION) TINYPROXY_SOURCE = tinyproxy-$(TINYPROXY_VERSION).tar.xz TINYPROXY_LICENSE = GPL-2.0+ TINYPROXY_LICENSE_FILES = COPYING TINYPROXY_CPE_ID_VENDOR = tinyproxy_project $(eval $(autotools-package)) ================================================ FILE: package/tinyssh/Config.in ================================================ config BR2_PACKAGE_TINYSSH bool "tinyssh" depends on BR2_USE_MMU # fork() help TinySSH is a minimalistic SSH server which implements only a subset of SSHv2 features. https://tinyssh.org ================================================ FILE: package/tinyssh/tinyssh.hash ================================================ # locally computed sha256 2a051437878998c7782d9d38ef13e5e7a76435ae6b9c3e9ec492c3a567bd6314 tinyssh-20210601.tar.gz sha256 b5dc19477e29f4111e1c16cd89ec0782f5a07b1a30e3bdb7c155425b81b12c46 LICENCE ================================================ FILE: package/tinyssh/tinyssh.mk ================================================ ################################################################################ # # tinyssh # ################################################################################ TINYSSH_VERSION = 20210601 TINYSSH_SITE = $(call github,janmojzis,tinyssh,$(TINYSSH_VERSION)) TINYSSH_LICENSE = Public Domain, CC0-1.0 TINYSSH_LICENSE_FILES = LICENCE define TINYSSH_BUILD_CMDS $(TARGET_MAKE_ENV) CC="$(TARGET_CC)" $(MAKE) -C $(@D) cross-compile endef define TINYSSH_INSTALL_TARGET_CMDS $(MAKE) DESTDIR="$(TARGET_DIR)" -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/tinyxml/Config.in ================================================ config BR2_PACKAGE_TINYXML bool "tinyxml" depends on BR2_INSTALL_LIBSTDCPP help TinyXML is a simple, small, C++ XML parser that can be easily integrating into other programs. https://github.com/leethomason/tinyxml2 comment "tinyxml needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/tinyxml/tinyxml.hash ================================================ # Locally calculated sha256 8164c9ad48b9028667768a584d62f7760cfbfb90d0dd6214ad174403058da10c tinyxml-2.6.2_2.tar.gz sha256 a65b8363834ccbe31ab7b49dcba723ed204622df30326793e0121435624c1a8d README ================================================ FILE: package/tinyxml/tinyxml.mk ================================================ ################################################################################ # # tinyxml # ################################################################################ TINYXML_VERSION = 2.6.2_2 TINYXML_SITE = http://mirrors.xbmc.org/build-deps/sources # AUTORECONF is needed because the XBMC's version of TinyXML contains a # configure.ac which is not present in mainline. TINYXML_AUTORECONF = YES TINYXML_INSTALL_STAGING = YES TINYXML_LICENSE = Zlib TINYXML_LICENSE_FILES = README $(eval $(autotools-package)) ================================================ FILE: package/tinyxml2/Config.in ================================================ config BR2_PACKAGE_TINYXML2 bool "tinyxml2" depends on BR2_INSTALL_LIBSTDCPP help TinyXML-2 is a simple, small, efficient, C++ XML parser that can be easily integrating into other programs. http://www.grinninglizard.com/tinyxml2/index.html comment "tinyxml2 needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/tinyxml2/tinyxml2.hash ================================================ # Locally calculated sha256 6ce574fbb46751842d23089485ae73d3db12c1b6639cda7721bf3a7ee862012c tinyxml2-8.0.0.tar.gz sha256 9332252e9b9e46db8285d4a3f0bf25f139bf1dca6781b956d57f2302efca6432 LICENSE.txt ================================================ FILE: package/tinyxml2/tinyxml2.mk ================================================ ################################################################################ # # tinyxml2 # ################################################################################ TINYXML2_VERSION = 8.0.0 TINYXML2_SITE = $(call github,leethomason,tinyxml2,$(TINYXML2_VERSION)) TINYXML2_LICENSE = Zlib TINYXML2_LICENSE_FILES = LICENSE.txt TINYXML2_INSTALL_STAGING = YES TINYXML2_CPE_ID_VENDOR = tinyxml2_project ifeq ($(BR2_STATIC_LIBS),y) TINYXML2_CONF_OPTS += -DBUILD_STATIC_LIBS=ON endif $(eval $(cmake-package)) ================================================ FILE: package/tio/Config.in ================================================ config BR2_PACKAGE_TIO bool "tio" depends on !BR2_sparc64 && !BR2_sparc help "tio" is a simple TTY terminal application which features a straightforward commandline interface to easily connect to TTY devices for basic input/output. https://tio.github.io/ # tio is disabled for sparc and sparc64 architectures because it fails # to build with a redefinition of 'struct termio' error, with no proper # fix or workaround for now comment "tio is disabled for sparc and sparc64 architectures" depends on BR2_sparc64 || BR2_sparc ================================================ FILE: package/tio/tio.hash ================================================ # Locally computed: sha256 a8f5ed6994cacb96780baa416b19e5a6d7d67e8c162a8ea4fd9eccd64984ae44 tio-1.32.tar.xz # Hash for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/tio/tio.mk ================================================ ################################################################################ # # tio # ################################################################################ TIO_VERSION = 1.32 TIO_SOURCE = tio-$(TIO_VERSION).tar.xz TIO_SITE = https://github.com/tio/tio/releases/download/v$(TIO_VERSION) TIO_LICENSE = GPL-2.0+ TIO_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/tk/Config.in ================================================ config BR2_PACKAGE_TK bool "tk" depends on BR2_USE_MMU # tcl depends on BR2_TOOLCHAIN_HAS_THREADS # tcl depends on !BR2_STATIC_LIBS # tcl depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_TCL select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXFT help A windowing toolkit for use with tcl http://www.tcl.tk comment "tk needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on BR2_PACKAGE_XORG7 depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/tk/tk.hash ================================================ # Locally calculated sha256 d62c371a71b4744ed830e3c21d27968c31dba74dd2c45f36b9b071e6d88eb19d tk8.6.6-src.tar.gz sha256 2cde822b93ca16ae535c954b7dfe658b4ad10df2a193628d1b358f1765e8b198 license.terms ================================================ FILE: package/tk/tk.mk ================================================ ################################################################################ # # tk # ################################################################################ TK_VERSION_MAJOR = 8.6 TK_VERSION = $(TK_VERSION_MAJOR).6 TK_SOURCE = tk$(TK_VERSION)-src.tar.gz TK_SITE = http://downloads.sourceforge.net/project/tcl/Tcl/$(TK_VERSION) TK_LICENSE = TCL TK_LICENSE_FILES = license.terms TK_SUBDIR = unix TK_INSTALL_STAGING = YES TK_DEPENDENCIES = tcl xlib_libX11 xlib_libXft # hopefully our strtod is not buggy TK_CONF_ENV = tcl_cv_strtod_buggy=no TK_CONF_OPTS = --disable-rpath \ --with-tcl=$(BUILD_DIR)/tcl-$(TCL_VERSION)/unix \ --x-includes=$(STAGING_DIR)/usr/include \ --x-libraries=$(STAGING_DIR)/usr/lib define TK_WISH_SYMLINK ln -sf /usr/bin/wish$(TK_VERSION_MAJOR) $(TARGET_DIR)/usr/bin/wish endef TK_POST_INSTALL_TARGET_HOOKS += TK_WISH_SYMLINK $(eval $(autotools-package)) ================================================ FILE: package/tmux/Config.in ================================================ 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. 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 ================================================ FILE: package/tmux/tmux.hash ================================================ # Locally computed: sha256 918f7220447bef33a1902d4faff05317afd9db4ae1c9971bef5c787ac6c88386 tmux-3.1c.tar.gz sha256 c031bd37f464c534277814f6aa38686fa023d094261d57fd2545ad592bb53ccd COPYING ================================================ FILE: package/tmux/tmux.mk ================================================ ################################################################################ # # tmux # ################################################################################ TMUX_VERSION = 3.1c TMUX_SITE = https://github.com/tmux/tmux/releases/download/$(TMUX_VERSION) TMUX_LICENSE = ISC TMUX_LICENSE_FILES = COPYING TMUX_CPE_ID_VENDOR = tmux_project TMUX_DEPENDENCIES = libevent ncurses host-pkgconf # Add /usr/bin/tmux to /etc/shells otherwise some login tools like dropbear # can reject the user connection. See man shells. define TMUX_ADD_TMUX_TO_SHELLS grep -qsE '^/usr/bin/tmux$$' $(TARGET_DIR)/etc/shells \ || echo "/usr/bin/tmux" >> $(TARGET_DIR)/etc/shells endef TMUX_TARGET_FINALIZE_HOOKS += TMUX_ADD_TMUX_TO_SHELLS $(eval $(autotools-package)) ================================================ FILE: package/tor/0001-Fix-static-linking-with-OpenSSL.patch ================================================ From ba6b8ee5b6dee19493a150c3715b0e202440d206 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Thu, 24 Jan 2019 18:19:51 +0100 Subject: [PATCH] Fix static linking with OpenSSL Adjust link order of libz to solve bug with static linking and remove host paths when looking for openssl. [Vincent: - Adapt the patch to make it apply on the new version.] [Bernd: rebased for tor-0.2.7.6, 0.2.8.10, 0.2.9.9, 0.3.1.7, 0.3.2.10, 0.3.4.8, 0.3.5.7, 0.4.4.5, 0.4.5.6 & 0.4.6.7] [Fabrice: fix detection of openssl functions in 0.3.5.8] Signed-off-by: Vicente Olivert Riera Signed-off-by: Bernd Kuhls Signed-off-by: Fabrice Fontaine --- configure.ac | 4 ++-- src/test/include.am | 8 ++++---- src/tools/include.am | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/configure.ac b/configure.ac index 05e1392cf..580befa6b 100644 --- a/configure.ac +++ b/configure.ac @@ -1074,7 +1074,7 @@ AC_ARG_WITH(ssl-dir, ]) AC_MSG_NOTICE([Now, we'll look for OpenSSL >= 1.0.1]) -TOR_SEARCH_LIBRARY(openssl, $tryssldir, [-lssl -lcrypto $TOR_LIB_GDI $TOR_LIB_WS32 $TOR_LIB_CRYPT32], +TOR_SEARCH_LIBRARY(openssl, $tryssldir, [-lssl -lcrypto -lz $TOR_LIB_GDI $TOR_LIB_WS32 $TOR_LIB_CRYPT32], [#include char *getenv(const char *);], [struct ssl_cipher_st; @@ -1104,7 +1104,7 @@ dnl Now check for particular openssl functions. save_LIBS="$LIBS" save_LDFLAGS="$LDFLAGS" save_CPPFLAGS="$CPPFLAGS" -LIBS="$TOR_OPENSSL_LIBS $LIBS" +LIBS="$TOR_OPENSSL_LIBS -lz $LIBS" LDFLAGS="$TOR_LDFLAGS_openssl $LDFLAGS" CPPFLAGS="$TOR_CPPFLAGS_openssl $CPPFLAGS" diff --git a/src/test/include.am b/src/test/include.am index ecb768957..39a622e88 100644 --- a/src/test/include.am +++ b/src/test/include.am @@ -399,8 +399,8 @@ src_test_test_ntor_cl_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) src_test_test_ntor_cl_LDADD = \ libtor.a \ $(rust_ldadd) \ - @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \ - $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \ + @TOR_LIB_MATH@ \ + $(TOR_LIBS_CRYPTLIB) @TOR_ZLIB_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \ @CURVE25519_LIBS@ @TOR_LZMA_LIBS@ @TOR_TRACE_LIBS@ src_test_test_ntor_cl_AM_CPPFLAGS = \ $(AM_CPPFLAGS) @@ -409,8 +409,8 @@ src_test_test_hs_ntor_cl_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) src_test_test_hs_ntor_cl_LDADD = \ libtor.a \ - @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \ - $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ \ + @TOR_LIB_MATH@ \ + $(TOR_LIBS_CRYPTLIB) @TOR_ZLIB_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ \ @CURVE25519_LIBS@ @TOR_TRACE_LIBS@ src_test_test_hs_ntor_cl_AM_CPPFLAGS = \ $(AM_CPPFLAGS) diff --git a/src/tools/include.am b/src/tools/include.am index f7aa7e0d1..4c4e8aa7a 100644 --- a/src/tools/include.am +++ b/src/tools/include.am @@ -35,7 +35,7 @@ src_tools_tor_gencert_LDADD = \ $(TOR_CRYPTO_LIBS) \ $(TOR_UTIL_LIBS) \ $(rust_ldadd) \ - @TOR_LIB_MATH@ @TOR_ZLIB_LIBS@ $(TOR_LIBS_CRYPTLIB) \ + @TOR_LIB_MATH@ $(TOR_LIBS_CRYPTLIB) @TOR_ZLIB_LIBS@ \ @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ @CURVE25519_LIBS@ endif @@ -45,7 +45,7 @@ src_tools_tor_print_ed_signing_cert_LDADD = \ src/trunnel/libor-trunnel.a \ $(TOR_CRYPTO_LIBS) \ $(TOR_UTIL_LIBS) \ - @TOR_LIB_MATH@ $(TOR_LIBS_CRYPTLIB) \ + @TOR_LIB_MATH@ $(TOR_LIBS_CRYPTLIB) @TOR_ZLIB_LIBS@ \ @TOR_LIB_WS32@ @TOR_LIB_USERENV@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ if USE_NSS -- 2.20.1 ================================================ FILE: package/tor/Config.in ================================================ config BR2_PACKAGE_TOR bool "tor" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_PACKAGE_LIBEVENT select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help Tor is free software and an open network that helps you defend against traffic analysis, a form of network surveillance that threatens personal freedom and privacy, confidential business activities and relationships, and state security. https://www.torproject.org comment "tor needs a toolchain w/ NPTL" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL ================================================ FILE: package/tor/tor.hash ================================================ # Locally computed sha256 15ce1a37b4cc175b07761e00acdcfa2c08f0d23d6c3ab9c97c464bd38cc5476a tor-0.4.6.8.tar.gz sha256 47b54ed17e8fdcab3c44729a1789a09b208f9a63a845a7e50def9df729eebad0 LICENSE ================================================ FILE: package/tor/tor.mk ================================================ ################################################################################ # # tor # ################################################################################ TOR_VERSION = 0.4.6.8 TOR_SITE = https://dist.torproject.org TOR_LICENSE = BSD-3-Clause TOR_LICENSE_FILES = LICENSE TOR_CPE_ID_VENDOR = torproject TOR_SELINUX_MODULES = tor TOR_DEPENDENCIES = libevent openssl zlib 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 ifeq ($(BR2_STATIC_LIBS),y) TOR_CONF_OPTS += \ --enable-static-libevent \ --enable-static-openssl \ --enable-static-tor \ --enable-static-zlib endif ifeq ($(BR2_PACKAGE_LIBCAP),y) TOR_DEPENDENCIES += libcap endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) TOR_CONF_OPTS += --enable-systemd TOR_DEPENDENCIES += host-pkgconf systemd else TOR_CONF_OPTS += --disable-systemd endif ifeq ($(BR2_PACKAGE_XZ),y) TOR_CONF_OPTS += --enable-lzma TOR_DEPENDENCIES += host-pkgconf xz else TOR_CONF_OPTS += --disable-lzma endif ifeq ($(BR2_PACKAGE_ZSTD),y) TOR_CONF_OPTS += --enable-zstd TOR_DEPENDENCIES += host-pkgconf zstd else TOR_CONF_OPTS += --disable-zstd endif ifeq ($(BR2_arm)$(BR2_armeb)$(BR2_i386)$(BR2_x86_64)$(BR2_PACKAGE_LIBSECCOMP),yy) TOR_CONF_OPTS += --enable-seccomp TOR_DEPENDENCIES += libseccomp else TOR_CONF_OPTS += --disable-seccomp endif # uses gnu extensions TOR_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) TOR_CONF_ENV += LIBS=-latomic endif define TOR_INSTALL_CONF $(INSTALL) -D -m 644 $(@D)/src/config/torrc.minimal \ $(TARGET_DIR)/etc/tor/torrc endef TOR_POST_INSTALL_TARGET_HOOKS += TOR_INSTALL_CONF $(eval $(autotools-package)) ================================================ FILE: package/tovid/0001-manpage.patch ================================================ setup.py: disable man page to kill txt2tags SVN checkout dependency Signed-off-by: Steve Kenton +diff -pruN tovid-3534.ori/setup.py tovid-3534/setup.py --- tovid-3534.ori/setup.py 2013-04-14 09:52:08.000000000 -0500 +++ tovid-3534/setup.py 2015-03-21 09:39:14.880173176 -0500 @@ -186,7 +186,7 @@ class BuildTovidInit (Command): # Build tovid-init with regular 'build' command build.sub_commands.append(('build_tovid_init', None)) -build.sub_commands.append(('build_docs', None)) +#build.sub_commands.append(('build_docs', None)) # The actual setup setup( @@ -244,8 +244,6 @@ setup( 'src/tovid.ini', ]), # Manual page - ('share/man/man1', - ['docs/man/tovid.1']), # Desktop shortcut ('share/applications', ['tovidgui.desktop', ================================================ FILE: package/tovid/Config.in ================================================ config BR2_PACKAGE_TOVID bool "tovid" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # mpv depends on BR2_TOOLCHAIN_HAS_ATOMIC # mpv depends on BR2_TOOLCHAIN_HAS_SYNC_4 # mpv depends on !BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC # mpv # The below dependencies are runtime dependencies only select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # procps_ng select BR2_PACKAGE_DVDAUTHOR select BR2_PACKAGE_DVDRW_TOOLS select BR2_PACKAGE_FFMPEG select BR2_PACKAGE_IMAGEMAGICK select BR2_PACKAGE_JPEG select BR2_PACKAGE_MJPEGTOOLS select BR2_PACKAGE_MPV select BR2_PACKAGE_PROCPS_NG # pgrep and pkill select BR2_PACKAGE_SOX help The tovid suite, also known simply as tovid, is a collection of shell and Python scripts for creating DVDs and (S)VCDs. It is pronounced "to vid" (because it converts to video disc formats). http://tovid.wikia.com/wiki/Installing_tovid comment "tovid needs a toolchain w/ threads, C++, wchar, gcc >= 4.9" depends on BR2_USE_MMU depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \ || !BR2_INSTALL_LIBSTDCPP \ || !BR2_USE_WCHAR depends on !BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC 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_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on !BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC ================================================ FILE: package/tovid/tovid.hash ================================================ # Locally calculated sha256 c03a746a3592a656bab0be4045da114a4231eb0f858d6c18503dac64049fbe48 tovid-87c676f4aadb7303d2cd921380b054bafa4b85bb.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/tovid/tovid.mk ================================================ ################################################################################ # # tovid # ################################################################################ TOVID_VERSION = 87c676f4aadb7303d2cd921380b054bafa4b85bb TOVID_SITE = $(call github,tovid-suite,tovid,$(TOVID_VERSION)) TOVID_LICENSE = GPL-2.0+ TOVID_LICENSE_FILES = COPYING TOVID_SETUP_TYPE = distutils $(eval $(python-package)) ================================================ FILE: package/tpm-tools/Config.in ================================================ config BR2_PACKAGE_TPM_TOOLS bool "tpm-tools" depends on BR2_TOOLCHAIN_HAS_THREADS # trousers depends on !BR2_STATIC_LIBS # trousers select BR2_PACKAGE_TROUSERS select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL help Tools to manage and diagnose a TPM http://trousers.sourceforge.net/ comment "tpm-tools needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/tpm-tools/tpm-tools.hash ================================================ # http://sourceforge.net/projects/trousers/files/tpm-tools/1.3.9.1/ sha1 c35cb031c6b5220dd1c8a03995654fdd12aa3031 tpm-tools-1.3.9.1.tar.gz md5 1532293aa632a0eaa7e60df87c779855 tpm-tools-1.3.9.1.tar.gz # Locally calculated sha256 9cb714e2650826e2e932f65bc0ba9d61b927dc5fea47f2c2a2b64f0fdfcbfa68 tpm-tools-1.3.9.1.tar.gz sha256 7b47225a5b77cb7825efc6a4d7e0ac57864c790542cf92f5080ec2bf310c00e5 LICENSE ================================================ FILE: package/tpm-tools/tpm-tools.mk ================================================ ################################################################################ # # tpm-tools # ################################################################################ TPM_TOOLS_VERSION = 1.3.9.1 TPM_TOOLS_SITE = http://downloads.sourceforge.net/project/trousers/tpm-tools/$(TPM_TOOLS_VERSION) TPM_TOOLS_LICENSE = Common Public License Version 1.0 TPM_TOOLS_LICENSE_FILES = LICENSE TPM_TOOLS_DEPENDENCIES = trousers openssl $(TARGET_NLS_DEPENDENCIES) TPM_TOOLS_CONF_OPTS = --disable-pkcs11-support ifeq ($(BR2_PACKAGE_LIBICONV),y) TPM_TOOLS_CONF_ENV += LIBS='-liconv' endif ifeq ($(BR2_arc770d)$(BR2_arc750d),y) TPM_TOOLS_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mno-compact-casesi" endif $(eval $(autotools-package)) ================================================ FILE: package/tpm2-abrmd/Config.in ================================================ config BR2_PACKAGE_TPM2_ABRMD bool "tpm2-abrmd" depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 depends on !BR2_STATIC_LIBS # tpm2-tss select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_TPM2_TSS help A system daemon implementing the TPM2 access broker (TAB) & Resource Manager (RM) spec from the TCG. It should be started during the OS boot process. Communication between the daemon and clients using the TPM is done with a combination of DBus and Unix pipes. The package also provides a client library for interacting with the daemon via TPM Command Transmission Interface (TCTI). It is intended for use with the SAPI library (libtss2-sys) like any other TCTI. https://github.com/tpm2-software/tpm2-abrmd comment "tpm2-abrmd needs a toolchain w/ dynamic library, wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS ================================================ FILE: package/tpm2-abrmd/S80tpm2-abrmd ================================================ #!/bin/sh my_name="$0" check_required_files() { [ -f "$1" ] || { echo "$my_name: $1 is missing" exit 1 } } check_device() { ls -1 /dev/tpm[0-9]* > /dev/null 2>&1 || { echo "device driver not loaded, skipping." exit 0 } chown tss:tss /dev/tpm[0-9]* && chmod 600 /dev/tpm* } rm_stale_pidfile() { if [ -e "$1" ]; then exe="/proc/$(cat "$1")/exe" { [ -s "$exe" ] && [ "$(readlink -f "$exe")" = "$2" ]; } || rm -f "$1" fi } start() { printf "Starting tpm2-abrmd: " check_device rm_stale_pidfile /var/run/tpm2-abrmd.pid /usr/sbin/tpm2-abrmd start-stop-daemon -S -q -o -b -m -p /var/run/tpm2-abrmd.pid -c tss:tss -x /usr/sbin/tpm2-abrmd -- ${DAEMON_OPTS} || { echo "FAIL" exit 1 } pidof /usr/sbin/tpm2-abrmd > /var/run/tpm2-abrmd.pid echo "OK" } stop() { printf "Stopping tpm2-abrmd: " start-stop-daemon -K -q -o -p /var/run/tpm2-abrmd.pid -u tss -x /usr/sbin/tpm2-abrmd || { echo "FAIL" exit 1 } rm_stale_pidfile /var/run/tpm2-abrmd.pid /usr/sbin/tpm2-abrmd echo "OK" } check_required_files /etc/dbus-1/system.d/tpm2-abrmd.conf # defaults DAEMON_OPTS="--tcti=device --logger=syslog --max-connections=20" # Read configuration variable file if it is present [ -r /etc/default/tpm2-abrmd ] && . /etc/default/tpm2-abrmd case "$1" in start) start ;; stop) stop ;; restart|reload) stop sleep 1 start ;; *) echo "Usage: tpm2-abrmd {start|stop|restart|reload}" >&2 exit 1 esac exit 0 ================================================ FILE: package/tpm2-abrmd/tpm2-abrmd.hash ================================================ # Locally computed: sha256 1e587808c6739079d59f124d9c1a0058f8d34dd84f1f656c946667fa0a181c48 tpm2-abrmd-2.3.3.tar.gz sha256 18c1bf4b1ba1fb2c4ffa7398c234d83c0d55475298e470ae1e5e3a8a8bd2e448 LICENSE ================================================ FILE: package/tpm2-abrmd/tpm2-abrmd.mk ================================================ ################################################################################ # # tpm2-abrmd # ################################################################################ TPM2_ABRMD_VERSION = 2.3.3 TPM2_ABRMD_SITE = https://github.com/tpm2-software/tpm2-abrmd/releases/download/$(TPM2_ABRMD_VERSION) TPM2_ABRMD_LICENSE = BSD-2-Clause TPM2_ABRMD_LICENSE_FILES = LICENSE TPM2_ABRMD_SELINUX_MODULES = tpm2 TPM2_ABRMD_INSTALL_STAGING = YES TPM2_ABRMD_DEPENDENCIES = libglib2 tpm2-tss host-pkgconf TPM2_ABRMD_CONF_OPTS = \ --disable-defaultflags \ --with-systemdsystemunitdir=$(if $(BR2_INIT_SYSTEMD),/usr/lib/systemd/system,no) \ --with-udevrulesdir=$(if $(BR2_PACKAGE_HAS_UDEV),/usr/lib/udev/rules.d,no) # uses C99 code but forgets to pass -std=c99 when --disable-defaultflags is used TPM2_ABRMD_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -std=c99" define TPM2_ABRMD_INSTALL_INIT_SYSTEMD $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) DESTDIR=$(TARGET_DIR) \ install-systemdpresetDATA install-systemdsystemunitDATA endef define TPM2_ABRMD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 $(TPM2_ABRMD_PKGDIR)/S80tpm2-abrmd \ $(TARGET_DIR)/etc/init.d/S80tpm2-abrmd endef define TPM2_ABRMD_USERS tss -1 tss -1 * - - - TPM2 Access Broker & Resource Management daemon endef $(eval $(autotools-package)) ================================================ FILE: package/tpm2-pkcs11/Config.in ================================================ config BR2_PACKAGE_TPM2_PKCS11 bool "tpm2-pkcs11" depends on !BR2_STATIC_LIBS # tpm2-tss depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBYAML select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_SQLITE select BR2_PACKAGE_TPM2_TSS help A PKCS#11 interface for TPM2 hardware https://github.com/tpm2-software/tpm2-pkcs11 comment "tpm2-pkcs11 needs a toolchain w/ dynamic library, threads" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/tpm2-pkcs11/tpm2-pkcs11.hash ================================================ # Locally computed: sha256 078a445ed0e9f5009675a162b4b7b88f3520436cfbc791bb2249f37bd1f475bd tpm2-pkcs11-1.7.0.tar.gz sha256 793aa007f793458434d7cc60b1c827053a399308658b32fcaa6023802adc22e1 LICENSE ================================================ FILE: package/tpm2-pkcs11/tpm2-pkcs11.mk ================================================ ################################################################################ # # tpm2-pkcs11 # ################################################################################ TPM2_PKCS11_VERSION = 1.7.0 TPM2_PKCS11_SITE = https://github.com/tpm2-software/tpm2-pkcs11/releases/download/$(TPM2_PKCS11_VERSION) TPM2_PKCS11_LICENSE = BSD-2-Clause TPM2_PKCS11_LICENSE_FILES = LICENSE TPM2_PKCS11_DEPENDENCIES = host-pkgconf libyaml openssl sqlite tpm2-tss TPM2_PKCS11_CONF_OPTS += \ --disable-hardening # Fix tpm.c:746:5: error: 'for' loop initial declarations are only allowed in C99 mode # Fix implicit declaration of function 'strnlen' TPM2_PKCS11_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -std=gnu99" # do not build man pages TPM2_PKCS11_CONF_ENV += ac_cv_prog_PANDOC='' # tpm2-pkcs11 checks for tpm2-tools programs and errors out if not # found, even though they are only used by the (unused in Buildroot) # python-based tools TPM2_PKCS11_CONF_ENV += \ ac_cv_prog_tpm2_createprimary=yes \ ac_cv_prog_tpm2_create=yes \ ac_cv_prog_tpm2_evictcontrol=yes \ ac_cv_prog_tpm2_readpublic=yes \ ac_cv_prog_tpm2_load=yes \ ac_cv_prog_tpm2_loadexternal=yes \ ac_cv_prog_tpm2_unseal=yes \ ac_cv_prog_tpm2_encryptdecrypt=yes \ ac_cv_prog_tpm2_sign=yes \ ac_cv_prog_tpm2_getcap=yes \ ac_cv_prog_tpm2_import=yes \ ac_cv_prog_tpm2_changeauth=yes ifeq ($(BR2_PACKAGE_P11_KIT),y) TPM2_PKCS11_DEPENDENCIES += p11-kit TPM2_PKCS11_CONF_OPTS += \ --with-p11kitconfigdir=/usr/share/p11-kit/modules endif $(eval $(autotools-package)) ================================================ FILE: package/tpm2-tools/0001-configure-make-build-gnu99.patch ================================================ From 521c3cc506b18c5c84d86e1e90d1daee39849b0c Mon Sep 17 00:00:00 2001 From: William Roberts Date: Mon, 8 Feb 2021 11:57:28 -0600 Subject: [PATCH] configure: make build gnu99 Signed-off-by: William Roberts [Retrieved from: https://github.com/tpm2-software/tpm2-tools/commit/521c3cc506b18c5c84d86e1e90d1daee39849b0c and updated to set gnu99 instead of c99 as done by https://github.com/tpm2-software/tpm2-tools/commit/5d0267428e96989afce406d096994ec5091ee107] Signed-off-by: Fabrice Fontaine --- configure.ac | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.ac b/configure.ac index dc15b5595..25039a0d9 100644 --- a/configure.ac +++ b/configure.ac @@ -287,6 +287,9 @@ AC_DEFUN([add_c_flag], [ # -D_GNU_SOURCE is required for execvpe() in options.c add_c_flag([-D_GNU_SOURCE], [AC_MSG_ERROR([Cannot enable -D_GNU_SOURCE])]) +# Enable gnu99 mode, since we use some of these features. +add_c_flag([-std=gnu99], [AC_MSG_ERROR([Cannot enable -std=gnu99])]) + # Best attempt compiler options that are on newer versions of GCC that # we can't widely enforce without killing other peoples builds. # Works with gcc only. Needs to be disabled on BSD and clang ================================================ FILE: package/tpm2-tools/Config.in ================================================ config BR2_PACKAGE_TPM2_TOOLS bool "tpm2-tools" depends on !BR2_STATIC_LIBS # tpm2-tss depends on BR2_USE_WCHAR # c16rtomb() not implemented in uClibc depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_TPM2_TSS select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help TPM (Trusted Platform Module) 2.0 CLI tools based on system API of TPM2-TSS. These tools can be used to manage keys, perform encryption/decryption/signing/etc crypto operations, and manage non-volatile storage through a TPM2.0 HW implementation. Notice: An in-kernel resource manager is provided by the Linux kernel since 4.12. Depending on use cases and kernel version, the user space resource manager provided by tpm2-abrmd may be needed. https://github.com/tpm2-software/tpm2-tools comment "tpm2-tools needs a glibc or musl toolchain w/ dynamic library, wchar" depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR || \ !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) ================================================ FILE: package/tpm2-tools/tpm2-tools.hash ================================================ # Locally computed: sha256 e2802d4093a24b2c65b1f913d0f4c68eadde9b8fd8a9b7a3b17a6e50765e8350 tpm2-tools-4.3.2.tar.gz sha256 f6995d52c8b8e4d2c3bace7fc9c330a77a90d808166fbad4d7ead7e8ba2fc66c doc/LICENSE ================================================ FILE: package/tpm2-tools/tpm2-tools.mk ================================================ ################################################################################ # # tpm2-tools # ################################################################################ TPM2_TOOLS_VERSION = 4.3.2 TPM2_TOOLS_SITE = https://github.com/tpm2-software/tpm2-tools/releases/download/$(TPM2_TOOLS_VERSION) TPM2_TOOLS_LICENSE = BSD-3-Clause TPM2_TOOLS_LICENSE_FILES = doc/LICENSE TPM2_TOOLS_CPE_ID_VENDOR = tpm2-tools_project TPM2_TOOLS_SELINUX_MODULES = tpm2 TPM2_TOOLS_DEPENDENCIES = libcurl openssl tpm2-tss host-pkgconf util-linux # We're patching configure.ac TPM2_TOOLS_AUTORECONF = YES # -fstack-protector-all and FORTIFY_SOURCE=2 is used by # default. Disable that so the BR2_SSP_* / BR2_FORTIFY_SOURCE_* options # in the toolchain wrapper and CFLAGS are used instead TPM2_TOOLS_CONF_OPTS = --disable-hardening # do not build man pages TPM2_TOOLS_CONF_ENV += ac_cv_prog_PANDOC='' $(eval $(autotools-package)) ================================================ FILE: package/tpm2-totp/Config.in ================================================ config BR2_PACKAGE_TPM2_TOTP bool "tpm2-totp" depends on !BR2_STATIC_LIBS # tpm2-tss depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM # glibc < 2.20 select BR2_PACKAGE_LIBQRENCODE select BR2_PACKAGE_TPM2_TSS help This is a reimplementation of Matthew Garrett's tpmtotp software for TPM 2.0 using the tpm2-tss software stack. Its purpose is to attest the trustworthiness of a device against a human using time-based one-time passwords (TOTP), facilitating the Trusted Platform Module (TPM) to bind the TOTP secret to the known trustworthy system state. In addition to the original tpmtotp, given the new capabilities of in-TPM hmac calculation, the tpm2-totp's secret HMAC keys do not have to be exported from the TPM to the CPU's RAM on boot anymore. https://github.com/tpm2-software/tpm2-totp comment "tpm2-totp needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM ================================================ FILE: package/tpm2-totp/tpm2-totp.hash ================================================ # Locally computed: sha256 0b2b63cc7ea74f5a6952f2cd689896c08f6b94ee6865f48af609f9a8ac247dc1 tpm2-totp-0.2.1.tar.gz sha256 67bc21a0bff2b0890307cfaa883bd3f5337f461eb6d8a612a015cea6d704e9ed LICENSE ================================================ FILE: package/tpm2-totp/tpm2-totp.mk ================================================ ################################################################################ # # tpm2-totp # ################################################################################ TPM2_TOTP_VERSION = 0.2.1 TPM2_TOTP_SITE = https://github.com/tpm2-software/tpm2-totp/releases/download/v$(TPM2_TOTP_VERSION) TPM2_TOTP_LICENSE = BSD-3-Clause TPM2_TOTP_LICENSE_FILES = LICENSE TPM2_TOTP_SELINUX_MODULES = tpm2 TPM2_TOTP_DEPENDENCIES = libqrencode tpm2-tss host-pkgconf TPM2_TOTP_CONF_OPTS = \ --disable-defaultflags \ --disable-doxygen-doc \ --disable-plymouth \ --without-initramfstoolsdir \ --without-mkinitcpiodir # uses C99 code but forgets to pass -std=c99 when --disable-defaultflags is used TPM2_TOTP_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -std=c99" # do not build man pages TPM2_TOTP_CONF_ENV += ac_cv_path_PANDOC='' $(eval $(autotools-package)) ================================================ FILE: package/tpm2-tss/0001-Temporary-fix-for-build-without-C.patch ================================================ From 7dc753ad27a8cd14c9b00be94ca89b847cf05ce9 Mon Sep 17 00:00:00 2001 From: Carlos Santos Date: Mon, 23 Dec 2019 08:02:19 -0300 Subject: [PATCH] Temporary fix for build without C++ C++ is required only for the fuzzing tests but AC_PROG_CXX is included by configure.ac even when fuzzing is not enabled (which we don't do on Buildroot). The patch applied upstream had issues and was reverted[1]. Use a local patch to solve the problem temporaryly. Fixes: http://autobuild.buildroot.net/results/13f5e37b47b255da4158bec34e5459136f7e60d4 http://autobuild.buildroot.net/results/1c26db2509c79e00c0de1165945277eaa57b149f http://autobuild.buildroot.net/results/b7b6b7b7aca79e847b442cbd2305427d91fe5d70 http://autobuild.buildroot.net/results/1cd5a82a0e799aa5027e2e2c03b246332cc3a15d http://autobuild.buildroot.net/results/d7ec878907f714377c83e9a496e97cbf9382d787 http://autobuild.buildroot.net/results/1c7f0c1b3ce4871cd87bd6059b1f0a6dc4e74a9c http://autobuild.buildroot.net/results/196b81d580325607c8da90beeb79e1f6b8ab8b47 http://autobuild.buildroot.net/results/f90f7b4ac710b56686635f8ae27059c11b963e47 1. https://github.com/tpm2-software/tpm2-tss/commit/60c26e4c4faba6ba12469485653e17092b510840 Signed-off-by: Carlos Santos --- configure.ac | 1 - 1 file changed, 1 deletion(-) diff --git a/configure.ac b/configure.ac index ff59dd7c..3e4028fb 100755 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,6 @@ AX_IS_RELEASE(dash-version) AX_CHECK_ENABLE_DEBUG([info]) AC_PROG_CC -AC_PROG_CXX AC_PROG_LN_S AC_USE_SYSTEM_EXTENSIONS LT_INIT() -- 2.26.2 ================================================ FILE: package/tpm2-tss/Config.in ================================================ config BR2_PACKAGE_TPM2_TSS bool "tpm2-tss" depends on !BR2_STATIC_LIBS # dlfcn.h select BR2_PACKAGE_LIBURIPARSER select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL help OSS implementation of the Trusted Computing Group's (TCG) TPM2 Software Stack (TSS). This stack consists of the following layers from top to bottom: * System API (SAPI) as described in the system level API and TPM command transmission interface specification. This API is a 1-to-1 mapping of the TPM2 commands documented in Part 3 of the TPM2 specification. Additionally there are asynchronous versions of each command. These asynchronous variants may be useful for integration into event-driven programming environments. Both the synchronous and asynchronous API are exposed through a single library: libtss2-sys. * TPM Command Transmission Interface (TCTI) that is described in the same specification. This API provides a standard interface to transmit / receive TPM command / response buffers. It is expected that any number of libraries implementing the TCTI API will be implemented as a way to abstract various platform specific IPC mechanisms. Currently this repository provides two TCTI implementations: libtss2-tcti-device and libtss2-tcti-mssim. The prior should be used for direct access to the TPM through the Linux kernel driver. The later implements the protocol exposed by the Microsoft software TPM2 simulator. https://github.com/tpm2-software/tpm2-tss if BR2_PACKAGE_TPM2_TSS config BR2_PACKAGE_TPM2_TSS_FAPI bool "fapi support" depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c select BR2_PACKAGE_JSON_C select BR2_PACKAGE_LIBCURL help This option allows to enable Feature API (FAPI). Feature API (FAPI) as described in the "TSS 2.0 Feature API Specification" along with "TSS 2.0 JSON Data Types and Policy Language Specification" This API is designed to be very high-level API, intended to make programming with the TPM as simple as possible. The API functions are exposed through a single library: libtss2-fapi. https://trustedcomputinggroup.org/wp-content/uploads/TSS_FAPI_v0.94_r04_pubrev.pdf https://trustedcomputinggroup.org/wp-content/uploads/TSS_JSON_Policy_v0.7_r04_pubrev.pdf endif comment "tpm2-tss needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/tpm2-tss/tpm2-tss.hash ================================================ # Locally computed: sha256 8900a6603f74310b749b65f23c3461cde6e2a23a5f61058b21004c25f9cf19e8 tpm2-tss-3.1.0.tar.gz sha256 18c1bf4b1ba1fb2c4ffa7398c234d83c0d55475298e470ae1e5e3a8a8bd2e448 LICENSE ================================================ FILE: package/tpm2-tss/tpm2-tss.mk ================================================ ################################################################################ # # tpm2-tss # ################################################################################ TPM2_TSS_VERSION = 3.1.0 TPM2_TSS_SITE = https://github.com/tpm2-software/tpm2-tss/releases/download/$(TPM2_TSS_VERSION) TPM2_TSS_LICENSE = BSD-2-Clause TPM2_TSS_LICENSE_FILES = LICENSE TPM2_TSS_CPE_ID_VENDOR = tpm2_software_stack_project TPM2_TSS_CPE_ID_PRODUCT = tpm2_software_stack TPM2_TSS_INSTALL_STAGING = YES TPM2_TSS_DEPENDENCIES = liburiparser openssl host-pkgconf # 0001-configure-Only-use-CXX-when-fuzzing.patch TPM2_TSS_AUTORECONF = YES # systemd-sysusers and systemd-tmpfiles are only used at install time # to trigger the creation of users adn tmpfiles, which we do not care # about at build time. groupadd, useradd, and setfacl are used in the # fallback path when systemd-sysusers or systemd-tmpfiles are missing # and their failure is ignored anyway. TPM2_TSS_CONF_OPTS = \ ac_cv_prog_result_groupadd=yes \ ac_cv_prog_result_setfacl=yes \ ac_cv_prog_systemd_sysusers=no \ ac_cv_prog_systemd_tmpfiles=no \ ac_cv_prog_result_useradd=yes \ --with-crypto=ossl \ --disable-doxygen-doc \ --disable-defaultflags # uses C99 code but forgets to pass -std=c99 when --disable-defaultflags is used TPM2_TSS_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -std=c99" ifeq ($(BR2_PACKAGE_TPM2_TSS_FAPI),y) TPM2_TSS_DEPENDENCIES += json-c libcurl TPM2_TSS_CONF_OPTS += --enable-fapi else TPM2_TSS_CONF_OPTS += --disable-fapi endif $(eval $(autotools-package)) ================================================ FILE: package/trace-cmd/Config.in ================================================ config BR2_PACKAGE_TRACE_CMD bool "trace-cmd" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # dlopen() help Command line reader for ftrace. To use this profiling tool, you should enable ftrace in your kernel configuration. This command collect traces on your target. You can analyse these traces on the target or on the host via the gui "kernel shark" http://git.kernel.org/cgit/linux/kernel/git/rostedt/trace-cmd.git comment "trace-cmd needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/trace-cmd/trace-cmd.hash ================================================ # Locally computed sha256 026cce03b4ae61f19848646acecf151dd7dd62617859edcf73ae954eb65b2653 trace-cmd-trace-cmd-v2.9.5-br1.tar.gz sha256 b1d04b850c1c7471b0f0896f6c6f0fcfc9f07e2dd183a5f5826af269fe9e88fb COPYING sha256 70f297763149e72306919c924e164f83041d5e512868d4c8c1826c171b3e49f9 COPYING.LIB sha256 f6b78c087c3ebdf0f3c13415070dd480a3f35d8fc76f3d02180a407c1c812f79 LICENSES/GPL-2.0 sha256 0b9a4febcdee6de55872501d5c1a8f5d8b0d1650cd4d5351995ceb22e889f8ca LICENSES/LGPL-2.1 ================================================ FILE: package/trace-cmd/trace-cmd.mk ================================================ ################################################################################ # # trace-cmd # ################################################################################ TRACE_CMD_VERSION = trace-cmd-v2.9.5 TRACE_CMD_SITE = https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git TRACE_CMD_SITE_METHOD = git TRACE_CMD_LICENSE = GPL-2.0, LGPL-2.1 TRACE_CMD_LICENSE_FILES = COPYING COPYING.LIB LICENSES/GPL-2.0 LICENSES/LGPL-2.1 TRACE_CMD_DEPENDENCIES = host-pkgconf TRACE_CMD_MAKE_OPTS = prefix=/usr etcdir=/etc ifeq ($(BR2_PACKAGE_AUDIT),y) TRACE_CMD_DEPENDENCIES += audit endif ifeq ($(BR2_PACKAGE_PYTHON),y) TRACE_CMD_DEPENDENCIES += python host-swig TRACE_CMD_MAKE_OPTS += PYTHON_VERS=python else ifeq ($(BR2_PACKAGE_PYTHON3),y) TRACE_CMD_DEPENDENCIES += python3 host-swig TRACE_CMD_MAKE_OPTS += PYTHON_VERS=python3 else TRACE_CMD_MAKE_OPTS += NO_PYTHON=1 endif # trace-cmd already defines _LARGEFILE64_SOURCE when necessary, # redefining it on the command line causes build problems. TRACE_CMD_CFLAGS = $(filter-out -D_LARGEFILE64_SOURCE,$(TARGET_CFLAGS)) # Sparc64 needs -fPIC ifeq ($(BR2_sparc64),y) TRACE_CMD_CFLAGS += -fPIC endif # trace-cmd use CPPFLAGS to add some extra flags. # But like for CFLAGS, $(TARGET_CPPFLAGS) contains _LARGEFILE64_SOURCE # that causes build problems. TRACE_CMD_CPPFLAGS = $(filter-out -D_LARGEFILE64_SOURCE,$(TARGET_CPPFLAGS)) define TRACE_CMD_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TRACE_CMD_CFLAGS)" \ CPPFLAGS="$(TRACE_CMD_CPPFLAGS)" \ $(MAKE) $(TRACE_CMD_MAKE_OPTS) -C $(@D) endef define TRACE_CMD_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TRACE_CMD_CFLAGS)" \ CPPFLAGS="$(TRACE_CMD_CPPFLAGS)" \ DESTDIR=$(TARGET_DIR) \ $(MAKE) $(TRACE_CMD_MAKE_OPTS) -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/traceroute/Config.in ================================================ config BR2_PACKAGE_TRACEROUTE bool "traceroute" help A new modern implementation of the traceroute(8) utility for Linux systems. It tracks the route packets taken from an IP network on their way to a given host. http://traceroute.sourceforge.net/ ================================================ FILE: package/traceroute/traceroute.hash ================================================ # Locally computed: sha256 3669d22a34d3f38ed50caba18cd525ba55c5c00d5465f2d20d7472e5d81603b6 traceroute-2.1.0.tar.gz # Hash for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB ================================================ FILE: package/traceroute/traceroute.mk ================================================ ################################################################################ # # traceroute # ################################################################################ TRACEROUTE_VERSION = 2.1.0 TRACEROUTE_SITE = http://downloads.sourceforge.net/traceroute/traceroute/traceroute-$(TRACEROUTE_VERSION) TRACEROUTE_LICENSE = GPL-2.0+, LGPL-2.1+ TRACEROUTE_LICENSE_FILES = COPYING COPYING.LIB define TRACEROUTE_BUILD_CMDS $(TARGET_MAKE_ENV) VPATH=$(STAGING_DIR)/usr/lib $(MAKE) $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" -C $(@D) endef define TRACEROUTE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ DESTDIR=$(TARGET_DIR) prefix=/usr install \ INSTALL=$(INSTALL) -C $(@D) endef $(eval $(generic-package)) ================================================ FILE: package/transmission/0001-fix-utypes.patch ================================================ Fix build error "conflicting types for 'UTP_Write'" Fetch from: http://www.adminsehow.com/2012/10/how-to-install-transmission-2-71-on-debian-6-0-squeeze/ The corresponding upstream bug report (unfixed) can be found here: https://trac.transmissionbt.com/ticket/5232 Signed-off-by: Bernd Kuhls [Fabrice: adapt to 3.00, which always uses stdbool.h] Signed-off-by: Fabrice Fontaine [yann.morin.1998@free.fr: - don't comment-out dropped code, just drop it - use CR-LF in replacement code, as used by upstream ] Signed-off-by: Yann E. MORIN --- transmission-2.82.org/third-party/libutp/utypes.h 2013-08-09 04:47:43.000000000 +0200 +++ transmission-2.82/third-party/libutp/utypes.h 2014-01-02 20:17:18.000000000 +0100 @@ -35,8 +35,8 @@ typedef const char * cstr; typedef char * str; -#ifndef __cplusplus -typedef uint8 bool; -#endif +#ifndef __cplusplus +#include +#endif #endif //__UTYPES_H__ ================================================ FILE: package/transmission/0002-fix-utp-include.patch ================================================ 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 ================================================ FILE: package/transmission/0003-configure.ac-fix-autoreconf-with-autoconf-2.70.patch ================================================ From 857ac91a03a096601f62b358fc61355d4cc25b9b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 9 Oct 2021 18:51:13 +0200 Subject: [PATCH] configure.ac: fix autoreconf with autoconf >= 2.70 Remove the whitespace before IT_PROG_INTLTOOL as suggested in https://www.mail-archive.com/bug-autoconf@gnu.org/msg04851.html to avoid the following build failure with autoconf >= 2.70: ERROR: 'IT_PROG_INTLTOOL' must appear in configure.ac for intltool to work. The problem has been introduced by upstream autoconf commit http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commit;h=b3b3af821a0b9e82ebe56b77b1731d2fe58f52de Fixes: - http://autobuild.buildroot.org/results/e8bea26f6b12adf16335b24836a7c5c31911af6a Signed-off-by: Fabrice Fontaine [Upstream status: not upstreamable as upstream swicthed to cmake ( https://github.com/transmission/transmission/issues/1573)] --- configure.ac | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index fd1132fda..04e0e19bb 100644 --- a/configure.ac +++ b/configure.ac @@ -555,9 +555,7 @@ dnl it should be safe to re-edit 0.40 back down to 0.23 use_nls=no if test "x$enable_nls" = "xyes" ; then use_nls=yes - m4_ifdef([IT_PROG_INTLTOOL], - [IT_PROG_INTLTOOL([0.35.0],[no-xml])], - [AC_MSG_ERROR("--enable-nls requires intltool to be installed.")]) +IT_PROG_INTLTOOL([0.35.0],[no-xml]) AC_CHECK_HEADERS([libintl.h]) GETTEXT_PACKAGE=transmission-gtk AC_SUBST(GETTEXT_PACKAGE) -- 2.33.0 ================================================ FILE: package/transmission/Config.in ================================================ config BR2_PACKAGE_TRANSMISSION bool "transmission" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_ZLIB select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4 if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBEVENT help Transmission is a cross-platform BitTorrent client. http://www.transmissionbt.com/ if BR2_PACKAGE_TRANSMISSION config BR2_PACKAGE_TRANSMISSION_UTP bool "Transmission uTP support" depends on BR2_INSTALL_LIBSTDCPP help Install support for uTorrent Transport Protocol comment "uTP needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_TRANSMISSION_CLI bool "transmission-cli" help Install transmission command line interface. config BR2_PACKAGE_TRANSMISSION_DAEMON bool "transmission-daemon" help Install transmission daemon. config BR2_PACKAGE_TRANSMISSION_GTK bool "transmission-gtk" depends on BR2_PACKAGE_LIBGTK3 && BR2_SYSTEM_ENABLE_NLS help Install transmission GTK-based GUI interface. comment "transmission-gtk needs NLS enabled" depends on BR2_PACKAGE_LIBGTK3 && !BR2_SYSTEM_ENABLE_NLS endif comment "transmission needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/transmission/S92transmission ================================================ #!/bin/sh # Original Author: Lennart A. Jtte, based on Rob Howell's script # Modified by Maarten Van Coile & others (on IRC) # Changes for buildroot: # USERNAME points to 'default' in standard installation # TODO: set logfile with --logfile option # Do NOT "set -e" # # ----- CONFIGURATION ----- # # For the default location Transmission uses, visit: # http://trac.transmissionbt.com/wiki/ConfigFiles # For a guide on how set the preferences, visit: # http://trac.transmissionbt.com/wiki/EditConfigFiles # For the available environement variables, visit: # http://trac.transmissionbt.com/wiki/EnvironmentVariables # # The name of the user that should run Transmission. # It's RECOMENDED to run Transmission in it's own user, # by default, this is set to 'transmission'. # For the sake of security you shouldn't set a password # on this user USERNAME=transmission # ----- *ADVANCED* CONFIGURATION ----- # Only change these options if you know what you are doing! # # The folder where Transmission stores the config & web files. # ONLY change this you have it at a non-default location #TRANSMISSION_HOME="/var/config/transmission-daemon" #TRANSMISSION_WEB_HOME="/usr/share/transmission/web" # # The arguments passed on to transmission-daemon. # ONLY change this you need to, otherwise use the # settings file as per above. #TRANSMISSION_ARGS="" # ----- END OF CONFIGURATION ----- # # PATH should only include /usr/* if it runs after the mountnfs.sh script. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DESC="bittorrent client" NAME=transmission-daemon DAEMON=$(which $NAME) PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables [ -f /etc/default/rcS ] && . /etc/default/rcS # # Function that starts the daemon/service # start() { # Export the configuration/web directory, if set if [ -n "$TRANSMISSION_HOME" ]; then export TRANSMISSION_HOME fi if [ -n "$TRANSMISSION_WEB_HOME" ]; then export TRANSMISSION_WEB_HOME fi # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE --make-pidfile \ --exec $DAEMON --background --test -- -f $TRANSMISSION_ARGS > /dev/null \ || return 1 start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE --make-pidfile \ --exec $DAEMON --background -- -f $TRANSMISSION_ARGS \ || return 2 } # # Function that stops the daemon/service # stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE --exec $DAEMON RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL" } case "$1" in start) echo "Starting $DESC" "$NAME..." start case "$?" in 0|1) echo " Starting $DESC $NAME succeeded" ;; *) echo " Starting $DESC $NAME failed" ;; esac ;; stop) echo "Stopping $DESC $NAME..." stop case "$?" in 0|1) echo " Stopping $DESC $NAME succeeded" ;; *) echo " Stopping $DESC $NAME failed" ;; esac ;; restart|force-reload) # # If the "reload" option is implemented then remove the # 'force-reload' alias # echo "Restarting $DESC $NAME..." stop case "$?" in 0|1) start case "$?" in 0|1) echo " Restarting $DESC $NAME succeeded" ;; *) echo " Restarting $DESC $NAME failed: couldn't start $NAME" ;; esac ;; *) echo " Restarting $DESC $NAME failed: couldn't stop $NAME" ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac ================================================ FILE: package/transmission/transmission.hash ================================================ # Locally calculated sha256 9144652fe742f7f7dd6657716e378da60b751aaeda8bef8344b3eefc4db255f2 transmission-3.00.tar.xz sha256 2b16da5bd02790d1e4d332cfd42b9dfd7d1b0ed3a16a75dc7e76b6ed239fdba9 COPYING ================================================ FILE: package/transmission/transmission.mk ================================================ ################################################################################ # # transmission # ################################################################################ TRANSMISSION_VERSION = 3.00 TRANSMISSION_SITE = https://github.com/transmission/transmission-releases/raw/master TRANSMISSION_SOURCE = transmission-$(TRANSMISSION_VERSION).tar.xz TRANSMISSION_DEPENDENCIES = \ host-pkgconf \ host-intltool \ libcurl \ libevent \ openssl \ zlib TRANSMISSION_AUTORECONF = YES TRANSMISSION_CONF_OPTS = \ --without-inotify \ --enable-lightweight TRANSMISSION_LICENSE = GPL-2.0 or GPL-3.0 with OpenSSL exception TRANSMISSION_LICENSE_FILES = COPYING TRANSMISSION_CPE_ID_VENDOR = transmissionbt 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 TRANSMISSION_CONF_OPTS += --disable-utp endif ifeq ($(BR2_PACKAGE_TRANSMISSION_CLI),y) TRANSMISSION_CONF_OPTS += --enable-cli else TRANSMISSION_CONF_OPTS += --disable-cli endif ifeq ($(BR2_PACKAGE_TRANSMISSION_DAEMON),y) TRANSMISSION_CONF_OPTS += --enable-daemon ifeq ($(BR2_PACKAGE_SYSTEMD),y) TRANSMISSION_DEPENDENCIES += systemd TRANSMISSION_CONF_OPTS += --with-systemd else TRANSMISSION_CONF_OPTS += --without-systemd endif define TRANSMISSION_USERS transmission -1 transmission -1 * /var/lib/transmission - transmission Transmission Daemon endef define TRANSMISSION_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/transmission/S92transmission \ $(TARGET_DIR)/etc/init.d/S92transmission endef define TRANSMISSION_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 $(@D)/daemon/transmission-daemon.service \ $(TARGET_DIR)/usr/lib/systemd/system/transmission-daemon.service endef else TRANSMISSION_CONF_OPTS += --disable-daemon endif ifeq ($(BR2_PACKAGE_TRANSMISSION_GTK),y) TRANSMISSION_CONF_OPTS += --with-gtk TRANSMISSION_DEPENDENCIES += libgtk3 else TRANSMISSION_CONF_OPTS += --without-gtk endif $(eval $(autotools-package)) ================================================ FILE: package/tree/Config.in ================================================ config BR2_PACKAGE_TREE bool "tree" depends on BR2_USE_WCHAR help Tree is a recursive directory listing command that produces a depth indented listing of files, which is colorized ala dircolors if the LS_COLORS environment variable is set and output is to tty. http://mama.indstate.edu/users/ice/tree/ comment "tree needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/tree/tree.hash ================================================ # Locally calculated sha256 715d5d4b434321ce74706d0dd067505bb60c5ea83b5f0b3655dae40aa6f9b7c2 tree-1.8.0.tgz sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 LICENSE ================================================ FILE: package/tree/tree.mk ================================================ ################################################################################ # # tree # ################################################################################ TREE_VERSION = 1.8.0 TREE_SOURCE = tree-$(TREE_VERSION).tgz TREE_SITE = http://mama.indstate.edu/users/ice/tree/src TREE_LICENSE = GPL-2.0+ TREE_LICENSE_FILES = LICENSE define TREE_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define TREE_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/tree $(TARGET_DIR)/usr/bin/tree endef $(eval $(generic-package)) ================================================ FILE: package/tremor/Config.in ================================================ config BR2_PACKAGE_TREMOR bool "tremor (fixed point vorbis decoder)" select BR2_PACKAGE_LIBOGG help Tremor is a fixed point implementation of an Ogg Vorbis decoder. It provides a decoding API similar to libvorbis, but gives much better performance on systems without a floating-point unit. https://wiki.xiph.org/Tremor ================================================ FILE: package/tremor/tremor.hash ================================================ # Locally computed sha256 a387ebb4536ca98034eb91855616b971b0a85575943699b2a6d0be79b4a9f6a9 tremor-7c30a66346199f3f09017a09567c6c8a3a0eedc8-br1.tar.gz sha256 d2ab5758336489da61c12cc5bb757da5339c4ae9001f9bb0562b4370249af814 COPYING ================================================ FILE: package/tremor/tremor.mk ================================================ ################################################################################ # # tremor # ################################################################################ TREMOR_VERSION = 7c30a66346199f3f09017a09567c6c8a3a0eedc8 TREMOR_SITE = https://gitlab.xiph.org/xiph/tremor.git TREMOR_SITE_METHOD = git TREMOR_LICENSE = BSD-3-Clause TREMOR_LICENSE_FILES = COPYING TREMOR_AUTORECONF = YES TREMOR_INSTALL_STAGING = YES TREMOR_DEPENDENCIES = libogg # tremor has ARM assembly code that cannot be compiled in Thumb2 mode, # so we must force the traditional ARM mode. # However, some ARM architectures like ARNv7-M only supports Thumb # instructions, but the tremor build configuration enables ARM assembly # code unconditionally for all arm triplets by defining _ARM_ASSEM_. # We are overriding this by undefining this macro for the ARM # architectures not supporting ARM instructions. ifeq ($(BR2_arm),y) ifeq ($(BR2_ARM_CPU_HAS_ARM),y) TREMOR_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -marm" else TREMOR_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -U_ARM_ASSEM_" endif endif $(eval $(autotools-package)) ================================================ FILE: package/triggerhappy/Config.in ================================================ config BR2_PACKAGE_TRIGGERHAPPY bool "triggerhappy" depends on BR2_USE_MMU # fork() help Triggerhappy is a hotkey daemon developed with small and embedded systems in mind, e.g. linux based routers. It attaches to the input device files and interprets the event data received and executes scripts configured in its configuration. https://github.com/wertarbyte/triggerhappy ================================================ FILE: package/triggerhappy/S10triggerhappy ================================================ #!/bin/sh NAME=thd PIDFILE=/var/run/$NAME.pid DAEMON_ARGS="--daemon --triggers /etc/triggerhappy/triggers.d --socket /var/run/thd.socket --pidfile $PIDFILE --user nobody /dev/input/event*" [ -r /etc/default/triggerhappy ] && . /etc/default/triggerhappy start() { printf "Starting $NAME: " start-stop-daemon --start --quiet --pidfile $PIDFILE --exec /usr/sbin/thd -- $DAEMON_ARGS \ && echo "OK" || echo "FAIL" } stop() { printf "Stopping $NAME: " start-stop-daemon --stop --quiet --pidfile $PIDFILE \ && echo "OK" || echo "FAIL" } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 1 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: package/triggerhappy/triggerhappy.hash ================================================ # Locally calculated sha256 af0fc196202f2d35153be401769a9ad9107b5b6387146cfa8895ae9cafad631c triggerhappy-0.5.0.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/triggerhappy/triggerhappy.mk ================================================ ################################################################################ # # triggerhappy # ################################################################################ TRIGGERHAPPY_VERSION = 0.5.0 TRIGGERHAPPY_SITE = \ $(call github,wertarbyte,triggerhappy,release/$(TRIGGERHAPPY_VERSION)) TRIGGERHAPPY_LICENSE = GPL-3.0+ TRIGGERHAPPY_LICENSE_FILES = COPYING TRIGGERHAPPY_DEPENDENCIES = host-pkgconf ifeq ($(BR2_PACKAGE_SYSTEMD),y) TRIGGERHAPPY_DEPENDENCIES += systemd endif define TRIGGERHAPPY_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) PKGCONFIG="$(PKG_CONFIG_HOST_BINARY)" \ -C $(@D) thd th-cmd endef ifeq ($(BR2_PACKAGE_HAS_UDEV),y) define TRIGGERHAPPY_INSTALL_UDEV_RULE $(INSTALL) -D -m 0644 $(@D)/udev/triggerhappy-udev.rules \ $(TARGET_DIR)/lib/udev/rules.d/triggerhappy.rules endef endif define TRIGGERHAPPY_INSTALL_TARGET_CMDS $(INSTALL) -d $(TARGET_DIR)/etc/triggerhappy/triggers.d $(INSTALL) -D -m 0755 $(@D)/thd $(TARGET_DIR)/usr/sbin/thd $(INSTALL) -D -m 0755 $(@D)/th-cmd $(TARGET_DIR)/usr/sbin/th-cmd $(TRIGGERHAPPY_INSTALL_UDEV_RULE) endef define TRIGGERHAPPY_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/triggerhappy/S10triggerhappy \ $(TARGET_DIR)/etc/init.d/S10triggerhappy endef define TRIGGERHAPPY_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/triggerhappy/triggerhappy.service \ $(TARGET_DIR)/usr/lib/systemd/system/triggerhappy.service endef $(eval $(generic-package)) ================================================ FILE: package/triggerhappy/triggerhappy.service ================================================ [Unit] Description=Triggerhappy daemon [Service] ExecStart=/usr/sbin/thd --triggers /etc/triggerhappy/triggers.d --socket /var/run/thd.socket --user nobody --deviceglob /dev/input/event* Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/trinity/0001-Fix-build-with-GCC-10.patch ================================================ From e53e25cc8dd5bdb5f7d9b4247de9e9921eec81d8 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Thu, 30 Jan 2020 22:09:45 -0800 Subject: [PATCH] Fix build with GCC 10. CC trinity /usr/bin/ld: debug.o:include/logfile.h:8: multiple definition of `mainlogfile'; child.o:include/logfile.h:8: first defined here /usr/bin/ld: log-files.o:include/logfile.h:8: multiple definition of `mainlogfile'; child.o:include/logfile.h:8: first defined here /usr/bin/ld: log.o:include/logfile.h:8: multiple definition of `mainlogfile'; child.o:include/logfile.h:8: first defined here /usr/bin/ld: main.o:include/logfile.h:8: multiple definition of `mainlogfile'; child.o:include/logfile.h:8: first defined here /usr/bin/ld: output.o:include/logfile.h:8: multiple definition of `mainlogfile'; child.o:include/logfile.h:8: first defined here /usr/bin/ld: params.o:include/logfile.h:8: multiple definition of `mainlogfile'; child.o:include/logfile.h:8: first defined here /usr/bin/ld: shm.o:include/logfile.h:8: multiple definition of `mainlogfile'; child.o:include/logfile.h:8: first defined here /usr/bin/ld: trinity.o:include/logfile.h:8: multiple definition of `mainlogfile'; child.o:include/logfile.h:8: first defined here Fixes: 13856316c259 ("reinstate the log-to-file code for now.") Signed-off-by: Vinson Lee [Retrieved from: https://github.com/kernelslacker/trinity/commit/e53e25cc8dd5bdb5f7d9b4247de9e9921eec81d8] Signed-off-by: Fabrice Fontaine --- include/logfile.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/logfile.h b/include/logfile.h index 90ea8b23..2305ac15 100644 --- a/include/logfile.h +++ b/include/logfile.h @@ -5,7 +5,7 @@ FILE *find_logfile_handle(void); void synclogs(void); -FILE *mainlogfile; +extern FILE *mainlogfile; void open_main_logfile(void); void close_logfile(FILE **handle); ================================================ FILE: package/trinity/0002-net-proto-ip-raw.c-fix-build-with-kernel-5.13.patch ================================================ From da65f0aa2bfcb4a2d9a77abfaa2955c6be3d37c9 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 17 Jul 2021 08:02:31 +0200 Subject: [PATCH] net/proto-ip-raw.c: fix build with kernel >= 5.13 Fix the following build failure with kernel >= 5.13: In file included from /home/buildroot/autobuild/instance-2/output-1/host/powerpc-buildroot-linux-uclibc/sysroot/usr/include/linux/icmp.h:23, from net/proto-ip-raw.c:1: /home/buildroot/autobuild/instance-2/output-1/host/powerpc-buildroot-linux-uclibc/sysroot/usr/include/netinet/in.h:33:5: error: redeclaration of enumerator 'IPPROTO_IP' 33 | IPPROTO_IP = 0, /* Dummy protocol for TCP. */ | ^~~~~~~~~~ /home/buildroot/autobuild/instance-2/output-1/host/powerpc-buildroot-linux-uclibc/sysroot/usr/include/linux/in.h:29:3: note: previous definition of 'IPPROTO_IP' was here 29 | IPPROTO_IP = 0, /* Dummy protocol for TCP */ | ^~~~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/c58119baed8d7711da799e34a5ee1117f46b96f4 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/kernelslacker/trinity/pull/35] --- net/proto-ip-raw.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/proto-ip-raw.c b/net/proto-ip-raw.c index 95f2cb13..b407bb68 100644 --- a/net/proto-ip-raw.c +++ b/net/proto-ip-raw.c @@ -1,3 +1,4 @@ +#include #include #include "net.h" #include "trinity.h" -- 2.30.2 ================================================ FILE: package/trinity/Config.in ================================================ config BR2_PACKAGE_TRINITY_ARCH_SUPPORTS bool default y depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_SYNC_4 # __sync_val_compare_and_swap_4 depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 || \ BR2_mips || BR2_mipsel || BR2_powerpc || BR2_powerpc64 || \ BR2_powerpc64le || BR2_sparc || BR2_x86_64 config BR2_PACKAGE_TRINITY bool "trinity" depends on BR2_PACKAGE_TRINITY_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # IPV6_UNICAST_IF help A Linux System call fuzz tester http://codemonkey.org.uk/projects/trinity/ comment "trinity needs a toolchain w/ headers >= 3.4" depends on BR2_PACKAGE_TRINITY_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 ================================================ FILE: package/trinity/trinity.hash ================================================ # Locally calculated sha256 7e0da953c2cc6fb3907d1f37d35f61836433fb50e97117a72eef113abb783dc6 trinity-1.9.tar.xz sha256 35e3fc68c89fd7b8f72fd910b521cb3292f859e9181f3c26bd0df84d144bc1d4 COPYING ================================================ FILE: package/trinity/trinity.mk ================================================ ################################################################################ # # trinity # ################################################################################ TRINITY_VERSION = 1.9 TRINITY_SITE = http://codemonkey.org.uk/projects/trinity TRINITY_SOURCE = trinity-$(TRINITY_VERSION).tar.xz TRINITY_LICENSE = GPL-2.0 TRINITY_LICENSE_FILES = COPYING TRINITY_CPE_ID_VENDOR = trinity_project define TRINITY_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure) endef define TRINITY_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define TRINITY_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR)/usr install endef # Install helper scripts define TRINITY_INSTALL_HELPER_SCRIPTS mkdir -p $(TARGET_DIR)/usr/libexec/trinity cp -p $(@D)/scripts/* $(TARGET_DIR)/usr/libexec/trinity/ endef TRINITY_POST_INSTALL_TARGET_HOOKS += TRINITY_INSTALL_HELPER_SCRIPTS $(eval $(generic-package)) ================================================ FILE: package/trousers/0001-Check-if-the-compiler-understands-pie-and-relro-options.patch ================================================ From 9abda1bb380bdbef1affaec381742ced394ca118 Mon Sep 17 00:00:00 2001 From: Lada Trimasova Date: Mon, 18 Jan 2016 15:58:19 +0300 Subject: [PATCH] Check if the compiler understands pie and relro options -pie and -fpie enable the building of position-independent executables, and -Wl,-z,relro turns on read-only relocation support in gcc. Add checks to ensure that the compiler and linker understand these options. Signed-off-by: Lada Trimasova [Bernd: Rebased for version 0.3.14] Signed-off-by: Bernd Kuhls --- configure.ac | 5 +++ m4/ax_check_compile_flag.m4 | 72 ++++++++++++++++++++++++++++++++++++ m4/ax_check_link_flag.m4 | 71 +++++++++++++++++++++++++++++++++++ src/tcsd/Makefile.am | 4 +- 4 files changed, 150 insertions(+), 2 deletions(-) create mode 100644 m4/ax_check_compile_flag.m4 create mode 100644 m4/ax_check_link_flag.m4 diff --git a/configure.in b/configure.in index add23dc..9603353 100644 --- a/configure.ac +++ b/configure.ac @@ -12,6 +12,7 @@ TSS_VER_MINOR=3 # compute $target AC_CANONICAL_TARGET AM_INIT_AUTOMAKE([foreign subdir-objects 1.6]) +AC_CONFIG_MACRO_DIR([m4]) # Debugging support AC_ARG_ENABLE([debug], @@ -383,6 +384,10 @@ elif test x"${prefix}" = x"NONE"; then localstatedir="/usr/local/var" fi +AX_CHECK_COMPILE_FLAG([-fPIE -DPIE], [PIE_CFLAGS="-fPIE -DPIE"]) +AX_CHECK_LINK_FLAG([-pie], [PIE_LDFLAGS="$PIE_LDFLAGS -pie"]) +AX_CHECK_LINK_FLAG([-Wl,-z,relro], [LDFLAGS="$LDFLAGS -Wl,-z,relro"]) + AC_OUTPUT(dist/tcsd.conf \ dist/fedora/trousers.spec \ dist/trousers.spec \ diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4 new file mode 100644 index 0000000..c3a8d69 --- /dev/null +++ b/m4/ax_check_compile_flag.m4 @@ -0,0 +1,72 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the current language's compiler +# or gives an error. (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# 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 . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 2 + +AC_DEFUN([AX_CHECK_COMPILE_FLAG], +[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl +AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ + ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS + _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) +AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes], + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_COMPILE_FLAGS diff --git a/m4/ax_check_link_flag.m4 b/m4/ax_check_link_flag.m4 new file mode 100644 index 0000000..e2d0d36 --- /dev/null +++ b/m4/ax_check_link_flag.m4 @@ -0,0 +1,71 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the linker or gives an error. +# (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the linker's default flags +# when the check is done. The check is thus made with the flags: "LDFLAGS +# EXTRA-FLAGS FLAG". This can for example be used to force the linker to +# issue an error when a bad flag is given. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# 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 . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 2 + +AC_DEFUN([AX_CHECK_LINK_FLAG], +[AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl +AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [ + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $4 $1" + AC_LINK_IFELSE([AC_LANG_PROGRAM()], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + LDFLAGS=$ax_check_save_flags]) +AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes], + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_LINK_FLAGS diff --git a/src/tcsd/Makefile.am b/src/tcsd/Makefile.am index 2210734..6640ab2 100644 --- a/src/tcsd/Makefile.am +++ b/src/tcsd/Makefile.am @@ -1,8 +1,8 @@ sbin_PROGRAMS=tcsd -tcsd_CFLAGS=-DAPPID=\"TCSD\" -DVAR_PREFIX=\"@localstatedir@\" -DETC_PREFIX=\"@sysconfdir@\" -I${top_srcdir}/src/include -fPIE -DPIE +tcsd_CFLAGS=-DAPPID=\"TCSD\" -DVAR_PREFIX=\"@localstatedir@\" -DETC_PREFIX=\"@sysconfdir@\" -I${top_srcdir}/src/include $(PIE_CFLAGS) tcsd_LDADD=${top_builddir}/src/tcs/libtcs.a ${top_builddir}/src/tddl/libtddl.a -lpthread @CRYPTOLIB@ -tcsd_LDFLAGS=@TCSD_LDFLAGS@ +tcsd_LDFLAGS=$(PIE_LDFLAGS) $(RELRO_LDFLAGS) tcsd_SOURCES=svrside.c tcsd_conf.c tcsd_threads.c platform.c if TSS_BUILD_PS ================================================ FILE: package/trousers/0002-Check-that-getpwent_r-is-available-before-using-it.patch ================================================ 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 [Bernd: Rebased for version 0.3.14] Signed-off-by: Bernd Kuhls --- configure.ac | 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.ac +++ b/configure.ac @@ -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 ================================================ FILE: package/trousers/Config.in ================================================ config BR2_PACKAGE_TROUSERS bool "trousers" depends on BR2_TOOLCHAIN_HAS_THREADS # doesn't build properly in static only configurations depends on !BR2_STATIC_LIBS select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help The open-source TCG Software Stack (TSS). This library enables the use of a Trusted Platform Module that complies with the TPM specification, version 1.2. It implements the TSS specification, version 1.2. http://trousers.sourceforge.net/ comment "trousers needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/trousers/trousers.hash ================================================ # http://sourceforge.net/projects/trousers/files/trousers/0.3.15/ sha1 75cd40e17c9385299e50ff2099905865442b59f1 trousers-0.3.15.tar.gz md5 eb1b02e98c7d360749b9076196db3f0f trousers-0.3.15.tar.gz # Locally computed sha256 1e5be93e518372acf1d92d2f567d01a46fdb0b730487e544e6fb896c59cac77f trousers-0.3.15.tar.gz sha256 1ad596d12e7471549663c03e280b5b5d084a2e853fb86e4d766109818f9d7dae LICENSE ================================================ FILE: package/trousers/trousers.mk ================================================ ################################################################################ # # trousers # ################################################################################ TROUSERS_VERSION = 0.3.15 TROUSERS_SITE = http://downloads.sourceforge.net/project/trousers/trousers/$(TROUSERS_VERSION) TROUSERS_LICENSE = BSD-3-Clause TROUSERS_LICENSE_FILES = LICENSE TROUSERS_CPE_ID_VENDOR = trustedcomputinggroup TROUSERS_INSTALL_STAGING = YES # Need autoreconf because of a patch touching configure.in and Makefile.am TROUSERS_AUTORECONF = YES TROUSERS_DEPENDENCIES = host-pkgconf openssl ifeq ($(BR2_PACKAGE_LIBICONV),y) TROUSERS_DEPENDENCIES += libiconv endif ifeq ($(BR2_arc770d)$(BR2_arc750d),y) TROUSERS_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mno-compact-casesi" endif # The TrouSerS build system attempts to create the tss user and group # on the host system. Disable the user checking feature as a # workaround. TROUSERS_CONF_OPTS += --disable-usercheck ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) TROUSERS_CONF_ENV += \ ax_cv_check_cflags___fPIE__DPIE=no \ ax_cv_check_ldflags___pie=no endif $(eval $(autotools-package)) ================================================ FILE: package/ts4900-fpga/Config.in ================================================ config BR2_PACKAGE_TS4900_FPGA bool "ts4900-fpga" depends on BR2_arm help TS-4900's FPGA implements clocks, UART MUX, and GPIOs. One of these GPIOs is used to enable the wifi module. It is loaded by U-Boot during the boot sequence, the default U-boot script expects to find it in the /boot folder. http://wiki.embeddedarm.com/wiki/TS-4900#FPGA_Changelog ================================================ FILE: package/ts4900-fpga/ts4900-fpga.hash ================================================ # From ftp://ftp.embeddedarm.com/ts-socket-macrocontrollers/ts-4900-linux/fpga/ts4900-fpga-20150930.bin.md5 md5 bf93c03ef914cf008287c8cd60781cc8 ts4900-fpga-20150930.bin # Locally calculated sha256 242ac6a90bea9a95c937ea8952cdc9b02f543cea24a0359bed66a408a6dd8bf9 ts4900-fpga-20150930.bin ================================================ FILE: package/ts4900-fpga/ts4900-fpga.mk ================================================ ################################################################################ # # ts4900-fpga # ################################################################################ TS4900_FPGA_VERSION = 20150930 TS4900_FPGA_SOURCE = ts4900-fpga-$(TS4900_FPGA_VERSION).bin TS4900_FPGA_SITE = ftp://ftp.embeddedarm.com/ts-socket-macrocontrollers/ts-4900-linux/fpga # No license file provided, Yocto recipe from the vendor claims MIT. # https://github.com/embeddedarm/meta-ts/blob/f31860f1204b64f765a5380d3b93a2cf18234f90/recipes-extras/ts4900-fpga/ts4900-fpga.bb#L6 define TS4900_FPGA_EXTRACT_CMDS cp $(TS4900_FPGA_DL_DIR)/$(TS4900_FPGA_SOURCE) $(@D) endef define TS4900_FPGA_INSTALL_TARGET_CMDS $(INSTALL) -m 0644 -D $(@D)/$(TS4900_FPGA_SOURCE) $(TARGET_DIR)/boot/ts4900-fpga.bin endef $(eval $(generic-package)) ================================================ FILE: package/tslib/Config.in ================================================ config BR2_PACKAGE_TSLIB bool "tslib" help Tslib is a filtering layer for touchscreen panel events. http://tslib.org ================================================ FILE: package/tslib/tslib.hash ================================================ # https://github.com/libts/tslib/releases/download/1.22/tslib-1.22.tar.xz.sha256 sha256 aaf0aed410a268d7b51385d07fe4d9d64312038e87c447ec8a24c8db0a15617a tslib-1.22.tar.xz # Locally computed sha256 9b872a8a070b8ad329c4bd380fb1bf0000f564c75023ec8e1e6803f15364b9e9 COPYING ================================================ FILE: package/tslib/tslib.mk ================================================ ################################################################################ # # tslib # ################################################################################ TSLIB_VERSION = 1.22 TSLIB_SITE = https://github.com/libts/tslib/releases/download/$(TSLIB_VERSION) TSLIB_SOURCE = tslib-$(TSLIB_VERSION).tar.xz TSLIB_LICENSE = GPL-2.0+ (programs), LGPL-2.1+ (libraries) TSLIB_LICENSE_FILES = COPYING TSLIB_INSTALL_STAGING = YES TSLIB_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) LDFLAGS=-L$(STAGING_DIR)/usr/lib install ifeq ($(BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6),) TSLIB_CONF_OPTS += --disable-tools endif ifeq ($(BR2_STATIC_LIBS),y) TSLIB_CONF_OPTS += \ --enable-input=static \ --enable-linear=static \ --enable-median=static \ --enable-pthres=static \ --enable-iir=static \ --enable-dejitter=static \ --enable-debounce=static \ --enable-skip=static \ --enable-lowpass=static \ --enable-invert=static \ --enable-evthres=static endif $(eval $(autotools-package)) ================================================ FILE: package/tstools/0001-build-get-along-with-buildroot.patch ================================================ From 44f80bce0914d4d9c5e7486c7cdb521ba637b324 Mon Sep 17 00:00:00 2001 From: Tzu-Jung Lee Date: Fri, 19 Jul 2013 22:45:18 +0800 Subject: [PATCH] build: get along with buildroot Signed-off-by: Tzu-Jung Lee --- Makefile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 2c3568e..98bb994 100644 --- a/Makefile +++ b/Makefile @@ -34,12 +34,6 @@ SHELL = /bin/sh .SUFFIXES: .SUFFIXES: .c .o -ifdef CROSS_COMPILE -CC = $(CROSS_COMPILE)gcc -else -CC = gcc -endif - # Use WARN=1 periodically to get too many warnings... ifdef WARN WARNING_FLAGS = -Wall -W -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wcast-qual -Wconversion -Wmissing-prototypes -Wmissing-declarations -Wunreachable-code -Winline @@ -452,3 +446,9 @@ test_lists: $(BINDIR)/test_nal_unit_list $(BINDIR)/test_es_unit_list @echo +++ Testing ES unit lists $(BINDIR)/test_es_unit_list @echo +++ Test succeeded + +.PHONY: install +install: + @for i in $(PROGS); do \ + cp -f $$i $(DESTDIR)/usr/bin/; \ + done -- 1.8.3.2 ================================================ FILE: package/tstools/Config.in ================================================ 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. The emphasis is on relatively simple tools which concentrate on MPEG (H.264 and H.262) data packaged according to H.222 (i.e., TS or PS), with a particular interest in checking for conformance. Transport Stream (TS) is typically used for distribution of cable and satellite data. Program Stream (PS) is typically used to store 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 ================================================ FILE: package/tstools/tstools.hash ================================================ # Locally calculated sha256 3d2b2375e2874933f9aa59d4f25bb6b334747219eb0d7a076974e61222d59bf6 tstools-08f6be304040e7b84760ac3920bcff4a563b6cd2.tar.gz ================================================ FILE: package/tstools/tstools.mk ================================================ ################################################################################ # # tstools # ################################################################################ # No releases or tags yet. Use the latest commit ID from master branch. TSTOOLS_VERSION = 08f6be304040e7b84760ac3920bcff4a563b6cd2 TSTOOLS_SITE = $(call github,kynesim,tstools,$(TSTOOLS_VERSION)) # tstools upstream doesn't contain any license file so far. See: # https://github.com/kynesim/tstools/issues/32 TSTOOLS_LICENSE = MPL-1.1 TSTOOLS_LICENSE_FILES = define TSTOOLS_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) LD="$(TARGET_CC)" $(TARGET_MAKE_ENV) \ $(MAKE1) -C $(@D) endef define TSTOOLS_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/ttyd/Config.in ================================================ config BR2_PACKAGE_TTYD bool "ttyd" depends on !BR2_STATIC_LIBS # libuv, libwebsockets depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv, json-c depends on BR2_USE_MMU # libuv select BR2_PACKAGE_JSON_C select BR2_PACKAGE_LIBUV select BR2_PACKAGE_LIBWEBSOCKETS select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help ttyd is a simple command-line tool for sharing terminal over the web. https://github.com/tsl0922/ttyd comment "ttyd needs a toolchain w/ NPTL, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 ================================================ FILE: package/ttyd/ttyd.hash ================================================ # Locally computed: sha256 1116419527edfe73717b71407fb6e06f46098fc8a8e6b0bb778c4c75dc9f64b9 ttyd-1.6.3.tar.gz sha256 711762f081c180ade3d09d7b0b7537eaf35eca8d1671e47bc66eaa39376edb12 LICENSE ================================================ FILE: package/ttyd/ttyd.mk ================================================ ################################################################################ # # ttyd # ################################################################################ TTYD_VERSION = 1.6.3 TTYD_SITE = $(call github,tsl0922,ttyd,$(TTYD_VERSION)) TTYD_LICENSE = MIT TTYD_LICENSE_FILES = LICENSE TTYD_DEPENDENCIES = json-c libuv libwebsockets openssl zlib $(eval $(cmake-package)) ================================================ FILE: package/tunctl/Config.in ================================================ config BR2_PACKAGE_TUNCTL bool "tunctl" help Tunctl is a tool for controlling the TUN/TAP driver in Linux. https://sourceforge.net/projects/tunctl/ ================================================ FILE: package/tunctl/tunctl.hash ================================================ # Locally computed: sha256 aa2a6c4cc6bfacb11e0d9f62334a6638a0d435475c61230116f00b6af8b14fff tunctl-1.5.tar.gz sha256 bcd12b6749dbd86c051cc2ef9e838096741602d4db213cc866b1da6cfeda5f16 tunctl.c ================================================ FILE: package/tunctl/tunctl.mk ================================================ ################################################################################ # # tunctl # ################################################################################ TUNCTL_VERSION = 1.5 TUNCTL_SITE = http://downloads.sourceforge.net/project/tunctl/tunctl/$(TUNCTL_VERSION) TUNCTL_LICENSE = GPL-2.0 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)) ================================================ FILE: package/turbolua/Config.in ================================================ 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 ================================================ FILE: package/turbolua/turbolua.hash ================================================ # Locally calculated sha256 4dbfbe4919118977c2ca40a4da81054ffe407d09f38bf5420eec5ae1449299d3 turbolua-2.1.3.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/turbolua/turbolua.mk ================================================ ################################################################################ # # turbolua # ################################################################################ TURBOLUA_VERSION = 2.1.3 TURBOLUA_SITE = $(call github,kernelsauce,turbo,v$(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 $(TARGET_MAKE_ENV) $(MAKE) $(TURBOLUA_MAKE_OPTS) -C $(@D) all endef define TURBOLUA_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TURBOLUA_MAKE_OPTS) LDCONFIG=true \ PREFIX="$(TARGET_DIR)/usr" -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/tvheadend/0001-no-check_config.patch ================================================ Makefile: do not use check_config test(1) only uses the second to compare two files dates. test(1) also does a strict comparison wrt. dates. But, on very fast systems, the configure and .config.mk files may be created in the same second, and so would lead to a false comparison of the files' dates. Signed-off-by: "Yann E. MORIN" diff -durN tvheadend-c84bc2b72b462ef2dbed305f3fd0bb3fa5046fc3.orig/Makefile tvheadend-c84bc2b72b462ef2dbed305f3fd0bb3fa5046fc3/Makefile --- tvheadend-c84bc2b72b462ef2dbed305f3fd0bb3fa5046fc3.orig/Makefile 2014-03-09 14:47:43.780025330 +0100 +++ tvheadend-c84bc2b72b462ef2dbed305f3fd0bb3fa5046fc3/Makefile 2014-03-09 14:48:40.836539093 +0100 @@ -708,7 +708,7 @@ $(ROOTDIR)/configure $(CONFIGURE_ARGS) # Binary -${PROG}: .config.mk make_webui $(OBJS) +${PROG}: make_webui $(OBJS) $(pCC) -o $@ $(OBJS) $(CFLAGS) $(LDFLAGS) # Object ================================================ FILE: package/tvheadend/Config.in ================================================ comment "tvheadend needs a toolchain w/ NPTL, headers >= 3.2, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 || BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_SYNC_4 menuconfig BR2_PACKAGE_TVHEADEND bool "tvheadend" depends on !BR2_STATIC_LIBS # dladdr() depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_DTV_SCAN_TABLES select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL help Tvheadend is a TV streaming server for Linux supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as input sources. https://www.lonelycoder.com/redmine/projects/tvheadend/ Note: - 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 if BR2_PACKAGE_TVHEADEND config BR2_PACKAGE_TVHEADEND_DESCRAMBLER bool "descrambler support" default y help Enable support for various descrambler modules. config BR2_PACKAGE_TVHEADEND_IPTV bool "IPTV support" default y help Enable IPTV support. Note that some IPTV streams will need to be piped through ffmpeg (the commandline tool), so you may have to enable it with: BR2_PACKAGE_FFMPEG=y BR2_PACKAGE_FFMPEG_FFMPEG=y config BR2_PACKAGE_TVHEADEND_SATIP bool "SAT>IP support" default y help Enable SAT>IP support. config BR2_PACKAGE_TVHEADEND_TIMESHIFT bool "timeshift support" default y help Enable timeshift support. config BR2_PACKAGE_TVHEADEND_TRANSCODING bool "transcoding support" depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS select BR2_PACKAGE_FFMPEG select BR2_PACKAGE_FFMPEG_AVRESAMPLE select BR2_PACKAGE_FFMPEG_GPL # needed for x264 support select BR2_PACKAGE_FFMPEG_SWSCALE select BR2_PACKAGE_LIBVPX select BR2_PACKAGE_X264 help Enable transcoding support. endif ================================================ FILE: package/tvheadend/S99tvheadend ================================================ #! /bin/sh # tvheadend startup script inspired by the Debian one in the package # Author: Yann E. MORIN PATH=/usr/sbin:/usr/bin:/sbin:/bin NAME=tvheadend PIDFILE=/var/run/$NAME.pid # Read configuration variable file if it is present [ -r "/etc/default/${NAME}" ] && . "/etc/default/${NAME}" ARGS="-f" [ -z "${TVH_USER}" ] || ARGS="${ARGS} -u ${TVH_USER}" [ -z "${TVH_GROUP}" ] || ARGS="${ARGS} -g ${TVH_GROUP}" [ -z "${TVH_ADAPTERS}" ] || ARGS="${ARGS} -a ${TVH_ADAPTERS}" [ -z "${TVH_HTTP_PORT}" ] || ARGS="${ARGS} -w ${TVH_HTTP_PORT}" [ -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: " if start-stop-daemon -S -q -p ${PIDFILE} -m --exec /usr/bin/tvheadend -- ${ARGS}; then printf "OK\n" else printf "failed\n" fi ;; stop) printf "Stopping TVHeadend daemon: " start-stop-daemon -K -q -p ${PIDFILE} -s TERM sleep 2 if start-stop-daemon -K -q -p ${PIDFILE} -t; then printf "failed, killing: " start-stop-daemon -K -q -p ${PIDFILE} -s KILL -o fi printf "OK\n" ;; restart|force-reload) "${0}" stop sleep 2 "${0}" start ;; *) echo "Usage: $0 {start|stop|restart|force-reload}" >&2 exit 1 ;; esac : ================================================ FILE: package/tvheadend/etc.default.tvheadend ================================================ TVH_USER=tvheadend TVH_GROUP=tvheadend #TVH_ADAPTERS= #TVH_HTTP_PORT=9981 #TVH_HTSP_PORT=9982 #TVH_DEBUG=1 ================================================ FILE: package/tvheadend/tvheadend.hash ================================================ # Locally computed sha256 fc734c36c98aa1535172621c3b6fcac9f1d253f850abc50d01b771937bfd2a76 tvheadend-dbaa0f850394af8ab845df802f5f781ac0218ec4.tar.gz sha256 54dc3cbc00bf126bcba43e2af7f3ad1dc00f335985da1409fa943c7b7256d942 LICENSE.md ================================================ FILE: package/tvheadend/tvheadend.mk ================================================ ################################################################################ # # tvheadend # ################################################################################ TVHEADEND_VERSION = dbaa0f850394af8ab845df802f5f781ac0218ec4 TVHEADEND_SITE = $(call github,tvheadend,tvheadend,$(TVHEADEND_VERSION)) TVHEADEND_LICENSE = GPL-3.0+ TVHEADEND_LICENSE_FILES = LICENSE.md TVHEADEND_DEPENDENCIES = \ host-gettext \ host-pkgconf \ host-pngquant \ host-python3 \ openssl ifeq ($(BR2_PACKAGE_AVAHI),y) TVHEADEND_DEPENDENCIES += avahi endif ifeq ($(BR2_PACKAGE_DBUS),y) TVHEADEND_DEPENDENCIES += dbus TVHEADEND_CONF_OPTS += --enable-dbus-1 else TVHEADEND_CONF_OPTS += --disable-dbus-1 endif ifeq ($(BR2_PACKAGE_TVHEADEND_TRANSCODING),y) TVHEADEND_CONF_OPTS += --enable-libav --enable-libx264 TVHEADEND_DEPENDENCIES += ffmpeg x264 ifeq ($(BR2_PACKAGE_LIBVA),y) TVHEADEND_CONF_OPTS += --enable-vaapi TVHEADEND_DEPENDENCIES += libva else TVHEADEND_CONF_OPTS += --disable-vaapi endif ifeq ($(BR2_PACKAGE_OPUS),y) TVHEADEND_CONF_OPTS += --enable-libopus TVHEADEND_DEPENDENCIES += opus else TVHEADEND_CONF_OPTS += --disable-libopus endif ifeq ($(BR2_PACKAGE_RPI_USERLAND),y) TVHEADEND_CONF_OPTS += --enable-omx TVHEADEND_DEPENDENCIES += rpi-userland else TVHEADEND_CONF_OPTS += --disable-omx endif ifeq ($(BR2_PACKAGE_X265),y) TVHEADEND_CONF_OPTS += --enable-libx265 TVHEADEND_DEPENDENCIES += x265 else TVHEADEND_CONF_OPTS += --disable-libx265 endif else TVHEADEND_CONF_OPTS += \ --disable-libav \ --disable-libopus \ --disable-omx \ --disable-vaapi \ --disable-libx264 \ --disable-libx265 endif ifeq ($(BR2_PACKAGE_TVHEADEND_DESCRAMBLER),y) TVHEADEND_CONF_OPTS += \ --enable-cardclient \ --enable-cwc \ --enable-cccam \ --enable-capmt \ --enable-constcw else TVHEADEND_CONF_OPTS += \ --disable-cardclient \ --disable-cwc \ --disable-cccam \ --disable-capmt \ --disable-constcw endif ifeq ($(BR2_PACKAGE_TVHEADEND_IPTV),y) TVHEADEND_CONF_OPTS += --enable-iptv else TVHEADEND_CONF_OPTS += --disable-iptv endif ifeq ($(BR2_PACKAGE_TVHEADEND_SATIP),y) TVHEADEND_CONF_OPTS += --enable-satip_client --enable-satip_server else TVHEADEND_CONF_OPTS += --disable-satip_client --disable-satip_server endif ifeq ($(BR2_PACKAGE_TVHEADEND_TIMESHIFT),y) TVHEADEND_CONF_OPTS += --enable-timeshift else TVHEADEND_CONF_OPTS += --disable-timeshift endif ifeq ($(BR2_PACKAGE_LIBDVBCSA),y) TVHEADEND_DEPENDENCIES += libdvbcsa TVHEADEND_CONF_OPTS += --enable-tvhcsa else TVHEADEND_CONF_OPTS += --disable-tvhcsa endif ifeq ($(BR2_PACKAGE_LIBHDHOMERUN),y) TVHEADEND_DEPENDENCIES += libhdhomerun TVHEADEND_CONF_OPTS += --enable-hdhomerun_client else TVHEADEND_CONF_OPTS += --disable-hdhomerun_client endif ifeq ($(BR2_PACKAGE_LIBICONV),y) TVHEADEND_DEPENDENCIES += libiconv endif TVHEADEND_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_PACKAGE_LIBURIPARSER),y) TVHEADEND_DEPENDENCIES += liburiparser TVHEADEND_CFLAGS += $(if $(BR2_USE_WCHAR),,-DURI_NO_UNICODE) endif ifeq ($(BR2_PACKAGE_PCRE),y) TVHEADEND_DEPENDENCIES += pcre TVHEADEND_CONF_OPTS += --enable-pcre else TVHEADEND_CONF_OPTS += --disable-pcre endif ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) TVHEADEND_CONF_OPTS += --disable-pie endif TVHEADEND_DEPENDENCIES += dtv-scan-tables # The tvheadend build system expects the transponder data to be present inside # its source tree. To prevent a download initiated by the build system just # copy the data files in the right place and add the corresponding stamp file. define TVHEADEND_INSTALL_DTV_SCAN_TABLES $(INSTALL) -d $(@D)/data/dvb-scan cp -r $(TARGET_DIR)/usr/share/dvb/* $(@D)/data/dvb-scan/ touch $(@D)/data/dvb-scan/.stamp endef TVHEADEND_PRE_CONFIGURE_HOOKS += TVHEADEND_INSTALL_DTV_SCAN_TABLES define TVHEADEND_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_CONFIGURE_OPTS) \ $(TARGET_CONFIGURE_ARGS) \ CFLAGS="$(TVHEADEND_CFLAGS)" \ ./configure \ --prefix=/usr \ --arch="$(ARCH)" \ --cpu="$(GCC_TARGET_CPU)" \ --nowerror \ --python="$(HOST_DIR)/bin/python3" \ --enable-dvbscan \ --enable-bundle \ --enable-pngquant \ --disable-ffmpeg_static \ --disable-hdhomerun_static \ $(TVHEADEND_CONF_OPTS) \ ) endef define TVHEADEND_FIX_PNGQUANT_PATH $(SED) "s%^pngquant_bin =.*%pngquant_bin = '$(HOST_DIR)/bin/pngquant'%" \ $(@D)/support/mkbundle endef TVHEADEND_POST_CONFIGURE_HOOKS += TVHEADEND_FIX_PNGQUANT_PATH define TVHEADEND_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define TVHEADEND_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" install endef # Remove documentation and source files that are not needed because we # use the bundled web interface version. define TVHEADEND_CLEAN_SHARE rm -rf $(TARGET_DIR)/usr/share/tvheadend/docs rm -rf $(TARGET_DIR)/usr/share/tvheadend/src endef TVHEADEND_POST_INSTALL_TARGET_HOOKS += TVHEADEND_CLEAN_SHARE #---------------------------------------------------------------------------- # To run tvheadend, we need: # - a startup script, and its config file # - 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 $(INSTALL) -D package/tvheadend/S99tvheadend \ $(TARGET_DIR)/etc/init.d/S99tvheadend 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)) ================================================ FILE: package/twolame/Config.in ================================================ config BR2_PACKAGE_TWOLAME bool "twolame" help TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and portions of LAME. http://www.twolame.org/ ================================================ FILE: package/twolame/twolame.hash ================================================ # Locally computed: sha256 cc35424f6019a88c6f52570b63e1baf50f62963a3eac52a03a800bb070d7c87d twolame-0.4.0.tar.gz sha256 257a842724705950b07da76ce0e22ffa80ec77b3e9dfc6702522ac342409da0f COPYING ================================================ FILE: package/twolame/twolame.mk ================================================ ################################################################################ # # twolame # ################################################################################ TWOLAME_VERSION = 0.4.0 TWOLAME_SITE = http://downloads.sourceforge.net/project/twolame/twolame/$(TWOLAME_VERSION) TWOLAME_INSTALL_STAGING = YES TWOLAME_LICENSE = LGPL-2.1+ TWOLAME_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_LIBSNDFILE),y) TWOLAME_DEPENDENCIES += host-pkgconf libsndfile TWOLAME_CONF_OPTS += --enable-sndfile else TWOLAME_CONF_OPTS += --disable-sndfile endif $(eval $(autotools-package)) ================================================ FILE: package/tz/Config.in ================================================ config BR2_PACKAGE_TZ bool help Timezone info for uClibc. ================================================ FILE: package/tz/tz.mk ================================================ ################################################################################ # # tz # ################################################################################ TZ_DEPENDENCIES = host-tzdata host-tzdump TZ_LICENSE = Public domain TZ_LOCALTIME = $(call qstrip,$(BR2_TARGET_LOCALTIME)) ifneq ($(TZ_LOCALTIME),) define TZ_SET_LOCALTIME if [ ! -f $(TARGET_DIR)/usr/share/zoneinfo/uclibc/$(TZ_LOCALTIME) ]; then \ printf "Error: '%s' is not a valid timezone, check your BR2_TARGET_LOCALTIME setting\n" \ "$(TZ_LOCALTIME)"; \ exit 1; \ fi ln -sf ../usr/share/zoneinfo/uclibc/$(TZ_LOCALTIME) $(TARGET_DIR)/etc/TZ endef endif define TZ_BUILD_CMDS (cd $(HOST_DIR)/share/zoneinfo/posix/; \ for i in $$(find . -type f); do \ mkdir -p $(@D)/output/$$(dirname $$i); \ $(TZDUMP) -p . -q $${i#./} | sed '1d' > $(@D)/output/$$i; \ done \ ) endef define TZ_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0644 $(HOST_DIR)/share/zoneinfo/zone.tab \ $(TARGET_DIR)/usr/share/zoneinfo/zone.tab $(INSTALL) -D -m 0644 $(HOST_DIR)/share/zoneinfo/iso3166.tab \ $(TARGET_DIR)/usr/share/zoneinfo/iso3166.tab mkdir -p $(TARGET_DIR)/usr/share/zoneinfo/uclibc cp -a $(@D)/output/* $(TARGET_DIR)/usr/share/zoneinfo/uclibc $(TZ_SET_LOCALTIME) endef $(eval $(generic-package)) ================================================ FILE: package/tzdata/Config.in ================================================ # This package is not meant to be user-visible. # It gets selected by BR2_TARGET_TZ in system/Config.in config BR2_PACKAGE_TZDATA bool help Time zone database http://www.iana.org/time-zones/repository/tz-link.html ================================================ FILE: package/tzdata/tzdata.hash ================================================ # From https://mm.icann.org/pipermail/tz-announce/2021-January/000065.html sha512 7cdd762ec90ce12a30fa36b1d66d1ea82d9fa21e514e2b9c7fcbe2541514ee0fadf30843ff352c65512fb270857b51d1517b45e1232b89c6f954ba9ff1833bb3 tzdata2021a.tar.gz # Locally computed: sha256 0613408568889f5739e5ae252b722a2659c02002839ad970a63dc5e9174b27cf LICENSE ================================================ FILE: package/tzdata/tzdata.mk ================================================ ################################################################################ # # tzdata # ################################################################################ TZDATA_VERSION = 2021a TZDATA_SOURCE = tzdata$(TZDATA_VERSION).tar.gz TZDATA_SITE = https://www.iana.org/time-zones/repository/releases TZDATA_STRIP_COMPONENTS = 0 TZDATA_DEPENDENCIES = host-tzdata HOST_TZDATA_DEPENDENCIES = host-zic TZDATA_LICENSE = Public domain TZDATA_LICENSE_FILES = LICENSE # Take care when re-ordering this list since this might break zone # dependencies TZDATA_DEFAULT_ZONELIST = \ africa antarctica asia australasia europe northamerica \ southamerica etcetera backward factory ifeq ($(call qstrip,$(BR2_TARGET_TZ_ZONELIST)),default) TZDATA_ZONELIST = $(TZDATA_DEFAULT_ZONELIST) else TZDATA_ZONELIST = $(call qstrip,$(BR2_TARGET_TZ_ZONELIST)) endif TZDATA_LOCALTIME = $(call qstrip,$(BR2_TARGET_LOCALTIME)) ifneq ($(TZDATA_LOCALTIME),) define TZDATA_SET_LOCALTIME if [ ! -f $(TARGET_DIR)/usr/share/zoneinfo/$(TZDATA_LOCALTIME) ]; then \ printf "Error: '%s' is not a valid timezone, check your BR2_TARGET_LOCALTIME setting\n" \ "$(TZDATA_LOCALTIME)"; \ exit 1; \ fi ln -sf ../usr/share/zoneinfo/$(TZDATA_LOCALTIME) $(TARGET_DIR)/etc/localtime echo "$(TZDATA_LOCALTIME)" >$(TARGET_DIR)/etc/timezone endef endif define TZDATA_INSTALL_TARGET_CMDS $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/share/zoneinfo cp -a $(HOST_DIR)/share/zoneinfo/* $(TARGET_DIR)/usr/share/zoneinfo cd $(TARGET_DIR)/usr/share/zoneinfo; \ for zone in posix/*; do \ ln -sfn "$${zone}" "$${zone##*/}"; \ done $(TZDATA_SET_LOCALTIME) endef define HOST_TZDATA_BUILD_CMDS (cd $(@D); \ for zone in $(TZDATA_ZONELIST); do \ $(ZIC) -b fat -d _output/posix $$zone || exit 1; \ $(ZIC) -b fat -d _output/right -L leapseconds $$zone || exit 1; \ done; \ ) endef define HOST_TZDATA_INSTALL_CMDS $(INSTALL) -d -m 0755 $(HOST_DIR)/share/zoneinfo cp -a $(@D)/_output/* $(@D)/*.tab $(HOST_DIR)/share/zoneinfo endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/tzdump/tzdump.hash ================================================ # locally computed sha256 e078ba9bd90cb46368beb3cfef2288194e5edefd53ad9565961a97d1c7d6c59f tzdump-e1a52ce12a701b8ea4163d6719713e38c0e53d35.tar.gz ================================================ FILE: package/tzdump/tzdump.mk ================================================ ################################################################################ # # tzdump # ################################################################################ TZDUMP_VERSION = e1a52ce12a701b8ea4163d6719713e38c0e53d35 TZDUMP_SITE = $(call github,alexandrebelloni,tzdump,$(TZDUMP_VERSION)) HOST_TZDUMP_DEPENDENCIES = host-zic define HOST_TZDUMP_BUILD_CMDS cd $(@D) && $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o tzdump tzdump.c endef define HOST_TZDUMP_INSTALL_CMDS $(INSTALL) -m 0755 -D $(@D)/tzdump $(HOST_DIR)/sbin/tzdump endef $(eval $(host-generic-package)) TZDUMP = $(HOST_DIR)/sbin/tzdump ================================================ FILE: package/uacme/Config.in ================================================ config BR2_PACKAGE_UACME bool "uacme" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_OPENSSL if !(BR2_PACKAGE_GNUTLS || BR2_PACKAGE_MBEDTLS) select BR2_PACKAGE_LIBCURL help uacme is a client for the ACMEv2 protocol described in RFC8555, written in plain C with minimal dependencies (libcurl and either of GnuTLS, OpenSSL or mbedTLS). The ACMEv2 protocol allows a Certificate Authority (https://letsencrypt.org is a popular one) and an applicant to automate the process of verification and certificate issuance. https://github.com/ndilieto/uacme if BR2_PACKAGE_UACME config BR2_PACKAGE_UACME_UALPN bool "enable ualpn" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_OPENSSL || BR2_PACKAGE_GNUTLS select BR2_PACKAGE_LIBEV help Build and install ualpn, the transparent proxying tls-alpn-01 challenge responder. comment "ualpn needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS comment "ualpn needs either OpenSSL or GnuTLS" depends on !(BR2_PACKAGE_OPENSSL || BR2_PACKAGE_GNUTLS) endif ================================================ FILE: package/uacme/uacme.hash ================================================ # Locally computed: sha256 36027a587256cbaa86650cec2a5b3eb000480e1150bd83941565661b392625ac uacme-1.7.1.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/uacme/uacme.mk ================================================ ################################################################################ # # uacme # ################################################################################ UACME_VERSION = 1.7.1 # Released versions are on branch upstream/latest, tagged as # upstream/X.Y.Z Do not use vX.Y.Z tags from master, as they do not # include .tarball-version UACME_SITE = $(call github,ndilieto,uacme,upstream/$(UACME_VERSION)) UACME_LICENSE = GPL-3.0+ UACME_LICENSE_FILES = COPYING UACME_DEPENDENCIES = libcurl UACME_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' ifeq ($(BR2_PACKAGE_GNUTLS),y) UACME_CONF_OPTS += --with-gnutls UACME_DEPENDENCIES += gnutls else ifeq ($(BR2_PACKAGE_OPENSSL),y) UACME_CONF_OPTS += --with-openssl UACME_DEPENDENCIES += openssl else ifeq ($(BR2_PACKAGE_MBEDTLS),y) UACME_CONF_OPTS += --with-mbedtls UACME_DEPENDENCIES += mbedtls endif ifeq ($(BR2_PACKAGE_UACME_UALPN),y) UACME_DEPENDENCIES += libev UACME_CONF_OPTS += --with-ualpn else UACME_CONF_OPTS += --without-ualpn endif $(eval $(autotools-package)) ================================================ FILE: package/uboot-tools/0001-drop-configh-from-tools.patch ================================================ From ab8b54cfc9d3fddba297c343a2d8dea9dbe20017 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] drop configh from tools MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We need to build u-boot tools without a board configuration for the target. fw_env just uses config.h to define the default environment of the created image, so it really isn't mandatory. Signed-off-by: Gustavo Zacarias [Jörg Krause: update for version 2015.07] Signed-off-by: Jörg Krause [Romain: update for version 2017.05 after commit 9d80b49a671c9922931adcd823aab0ed319a42d1] Signed-off-by: Romain Naour [Pierre-Jean: update for version 2019.04] Signed-off-by: Pierre-Jean Texier --- tools/env/fw_env_private.h | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/tools/env/fw_env_private.h b/tools/env/fw_env_private.h index 86be16d..3c62ac4 100644 --- a/tools/env/fw_env_private.h +++ b/tools/env/fw_env_private.h @@ -4,17 +4,6 @@ * Wolfgang Denk, DENX Software Engineering, wd@denx.de. */ -/* Pull in the current config to define the default environment */ -#include - -#ifndef __ASSEMBLY__ -#define __ASSEMBLY__ /* get only #defines from config.h */ -#include -#undef __ASSEMBLY__ -#else -#include -#endif - /* * To build the utility with the static configuration * comment out the next line. -- 2.9.4 ================================================ FILE: package/uboot-tools/0002-tools-only-in-no-dot-config-targets.patch ================================================ From 460646b3c4c1718860915c38586ee8d2fbda38e4 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] tools only in no dot config targets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Revert upstream commit c7ad5cbb1ef2c33883f0fa7d0455095004fd306d: Makefile: drop "tools-only" from no-dot-config-targets This indirectly pulls in a build-dependency on libssl-dev used for FIT image support, and possibly GPL/OpenSSL licensing incompatibility issues. Based on Debian patch from u-boot-tools: http://ftp.de.debian.org/debian/pool/main/u/u-boot/u-boot_2014.10+dfsg1-2.1.debian.tar.xz Signed-off-by: Jörg Krause [fabio: adapt it to 2016.09] Signed-off-by: Fabio Estevam [Fabrice: adapt it to 2021.04] Signed-off-by: Fabrice Fontaine --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6aa08964ff..fcec83d183 100644 --- a/Makefile +++ b/Makefile @@ -486,7 +486,7 @@ defaultenv_h := include/generated/defaultenv_autogenerated.h no-dot-config-targets := clean clobber mrproper distclean \ help %docs check% coccicheck \ - ubootversion backup tests check qcheck tcheck + ubootversion backup tests tools-only check qcheck tcheck config-targets := 0 mixed-targets := 0 -- 2.20.1 ================================================ FILE: package/uboot-tools/0003-tools-Makefile-fix-C-LD-FLAGS-with-CROSS_BUILD_TOOLS.patch ================================================ From 3b89170333ef0fdfffee14751ce3e1d66d7dfa00 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 14 Sep 2021 19:08:02 +0200 Subject: [PATCH] tools/Makefile: fix {C,LD}FLAGS with CROSS_BUILD_TOOLS When CROSS_BUILD_TOOLS is set, set KBUILD_HOST{CF,LD}FLAGS to {C,LD}FLAGS otherwise CC will be used with HOST{C,LD}FLAGS which seems wrong. It should be noted that, for an unknown reason, overriding HOST{C,LD}FLAGS don't work. Signed-off-by: Fabrice Fontaine --- tools/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/Makefile b/tools/Makefile index 4a86321f64..98bb92990d 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -316,7 +316,8 @@ subdir- += env ifneq ($(CROSS_BUILD_TOOLS),) override HOSTCC = $(CC) -override HOSTCFLAGS = $(CFLAGS) +override KBUILD_HOSTCFLAGS = $(CFLAGS) +override KBUILD_HOSTLDFLAGS = $(LDFLAGS) quiet_cmd_crosstools_strip = STRIP $^ cmd_crosstools_strip = $(STRIP) $^; touch $@ -- 2.33.0 ================================================ FILE: package/uboot-tools/Config.in ================================================ config BR2_PACKAGE_UBOOT_TOOLS bool "u-boot tools" help Companion tools for Das U-Boot bootloader. http://www.denx.de/wiki/U-Boot/WebHome if BR2_PACKAGE_UBOOT_TOOLS 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 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. 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 Enables support for FIT Signature Verification. Flat Image Trees (FIT) supports hashing of images so that these hashes can be checked on loading. This protects against corruption of the image. However it does not prevent the substitution of one image for another. The signature feature allows the hash to be signed with a private key such that it can be verified using a public key later. Provided that the private key is kept secret and the public key is stored in a non-volatile place, any image can be verified in this way. Enabling this option pulls in a dependency on libssl and libcrypto, and possibly GPL/OpenSSL licensing incompatibility issues. config BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN bool "fit_check_sign" depends on BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT help Install the fit_check_sign tool on the target system The fit_check_sign tool from Das U-Boot bootloader, which allows FIT image signature validation on target system. 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. config BR2_PACKAGE_UBOOT_TOOLS_FWPRINTENV bool "fw_printenv" default y help 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 ================================================ FILE: package/uboot-tools/Config.in.host ================================================ config BR2_PACKAGE_HOST_UBOOT_TOOLS bool "host u-boot tools" help Companion tools for Das U-Boot bootloader. http://www.denx.de/wiki/U-Boot/WebHome 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 Enables support for FIT Signature Verification. Flat Image Trees (FIT) supports hashing of images so that these hashes can be checked on loading. This protects against corruption of the image. However it does not prevent the substitution of one image for another. The signature feature allows the hash to be signed with a private key such that it can be verified using a public key later. Provided that the private key is kept secret and the public key is stored in a non-volatile place, any image can be verified in this way. endif # BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT config BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE bool "Environment image" help Generate a valid binary environment image from a text file describing the key=value pairs of the environment. This option can be useful to build enviornment configurations as part of a Linux / rootfs only defconfig instead of using post scripts. This supports a hardware use case of a single bootloader only defconfig but multiple Linux / rootfs defconfigs with different boot environments. The environment image will be called uboot-env.bin. if BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE config BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE string "Source files for environment" default BR2_TARGET_UBOOT_ENVIMAGE_SOURCE if BR2_TARGET_UBOOT_ENVIMAGE_SOURCE != "" # legacy help 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. Leave empty to generate image from compiled-in env if a U-boot target build is configured (BR2_TARGET_UBOOT) config BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE string "Size of environment" default BR2_TARGET_UBOOT_ENVIMAGE_SIZE if BR2_TARGET_UBOOT_ENVIMAGE_SIZE != "" # legacy help Size of envronment, can be prefixed with 0x for hexadecimal values. config BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_REDUNDANT bool "Environment has two copies" help Some platforms define in their U-Boot configuration that the U-Boot environment should be duplicated in two locations (for extra safety). Check your U-Boot configuration for the CONFIG_ENV_ADDR_REDUND and CONFIG_ENV_SIZE_REDUND settings to see if this is the case for your platform. If it is the case, then you should enable this option to ensure that the U-Boot environment image generated by Buildroot is compatible with the "redundant environment" mechanism of U-Boot. endif # BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE config BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT bool "Generate a U-Boot boot script" help Generate a U-Boot boot script, given a file listing U-Boot commands to be executed at boot time. The generated boot script will be called 'boot.scr'. if BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT config BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE string "U-Boot boot script source" default BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE if BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE != "" # legacy help Source file to generate the U-Boot boot script. endif # BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT endif # BR2_PACKAGE_HOST_UBOOT_TOOLS ================================================ FILE: package/uboot-tools/uboot-tools.hash ================================================ # Locally computed: sha256 312b7eeae44581d1362c3a3f02c28d806647756c82ba8c72241c7cdbe68ba77e u-boot-2021.07.tar.bz2 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 Licenses/gpl-2.0.txt ================================================ FILE: package/uboot-tools/uboot-tools.mk ================================================ ################################################################################ # # uboot-tools # ################################################################################ UBOOT_TOOLS_VERSION = 2021.07 UBOOT_TOOLS_SOURCE = u-boot-$(UBOOT_TOOLS_VERSION).tar.bz2 UBOOT_TOOLS_SITE = ftp://ftp.denx.de/pub/u-boot UBOOT_TOOLS_LICENSE = GPL-2.0+ UBOOT_TOOLS_LICENSE_FILES = Licenses/gpl-2.0.txt UBOOT_TOOLS_CPE_ID_VENDOR = denx UBOOT_TOOLS_CPE_ID_PRODUCT = u-boot UBOOT_TOOLS_INSTALL_STAGING = YES # u-boot 2020.01+ needs make 4.0+ UBOOT_TOOLS_DEPENDENCIES = $(BR2_MAKE_HOST_DEPENDENCY) HOST_UBOOT_TOOLS_DEPENDENCIES = $(BR2_MAKE_HOST_DEPENDENCY) define UBOOT_TOOLS_CONFIGURE_CMDS mkdir -p $(@D)/include/config touch $(@D)/include/config/auto.conf mkdir -p $(@D)/include/generated touch $(@D)/include/generated/autoconf.h endef UBOOT_TOOLS_MAKE_OPTS = CROSS_COMPILE="$(TARGET_CROSS)" \ CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \ HOSTCFLAGS="$(HOST_CFLAGS)" \ STRIP=$(TARGET_STRIP) ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT),y) UBOOT_TOOLS_MAKE_OPTS += CONFIG_FIT=y CONFIG_MKIMAGE_DTC_PATH=dtc UBOOT_TOOLS_DEPENDENCIES += dtc endif ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT),y) UBOOT_TOOLS_MAKE_OPTS += CONFIG_FIT_SIGNATURE=y CONFIG_FIT_SIGNATURE_MAX_SIZE=0x10000000 UBOOT_TOOLS_DEPENDENCIES += openssl host-pkgconf endif ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN),y) define UBOOT_TOOLS_INSTALL_FIT_CHECK_SIGN $(INSTALL) -m 0755 -D $(@D)/tools/fit_check_sign $(TARGET_DIR)/usr/bin/fit_check_sign endef endif define UBOOT_TOOLS_BUILD_CMDS $(TARGET_MAKE_ENV) $(BR2_MAKE) -C $(@D) $(UBOOT_TOOLS_MAKE_OPTS) \ CROSS_BUILD_TOOLS=y tools-only $(TARGET_MAKE_ENV) $(BR2_MAKE) -C $(@D) $(UBOOT_TOOLS_MAKE_OPTS) \ envtools no-dot-config-targets=envtools endef 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 endif ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE),y) define UBOOT_TOOLS_INSTALL_MKENVIMAGE $(INSTALL) -m 0755 -D $(@D)/tools/mkenvimage $(TARGET_DIR)/usr/bin/mkenvimage endef endif ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_FWPRINTENV),y) define UBOOT_TOOLS_INSTALL_FWPRINTENV $(INSTALL) -m 0755 -D $(@D)/tools/env/fw_printenv $(TARGET_DIR)/usr/sbin/fw_printenv ln -sf fw_printenv $(TARGET_DIR)/usr/sbin/fw_setenv 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_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) $(UBOOT_TOOLS_INSTALL_FIT_CHECK_SIGN) endef # host-uboot-tools define HOST_UBOOT_TOOLS_CONFIGURE_CMDS mkdir -p $(@D)/include/config touch $(@D)/include/config/auto.conf mkdir -p $(@D)/include/generated touch $(@D)/include/generated/autoconf.h 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 CONFIG_MKIMAGE_DTC_PATH=dtc 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 CONFIG_FIT_SIGNATURE_MAX_SIZE=0x10000000 HOST_UBOOT_TOOLS_DEPENDENCIES += host-openssl endif ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE),y) UBOOT_TOOLS_GENERATE_ENV_FILE = $(call qstrip,$(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE)) # If BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE is left empty, we # will use the default environment provided in the U-Boot build # directory as boot-env-defaults.txt, which requires having uboot as a # dependency. # If BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE is not empty, is # might be referring to a file within the U-Boot source tree, so we # also need to have uboot as a dependency. ifeq ($(BR2_TARGET_UBOOT),y) HOST_UBOOT_TOOLS_DEPENDENCIES += uboot # Handle the case where BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE # is left empty, use the default U-Boot environment. ifeq ($(UBOOT_TOOLS_GENERATE_ENV_FILE),) UBOOT_TOOLS_GENERATE_ENV_FILE = $(@D)/boot-env-defaults.txt define HOST_UBOOT_TOOLS_GENERATE_ENV_DEFAULTS CROSS_COMPILE="$(TARGET_CROSS)" \ $(UBOOT_SRCDIR)/scripts/get_default_envs.sh \ $(UBOOT_SRCDIR) \ > $(UBOOT_TOOLS_GENERATE_ENV_FILE) endef endif # UBOOT_TOOLS_GENERATE_ENV_FILE endif # BR2_TARGET_UBOOT ifeq ($(BR_BUILDING),y) ifeq ($(call qstrip,$(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE)),) $(error Please provide U-Boot environment size (BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE setting)) endif # If U-Boot is not available, ENVIMAGE_SOURCE must be provided by user, # otherwise it is optional because the default can be taken from U-Boot ifeq ($(BR2_TARGET_UBOOT),) ifeq ($(call qstrip,$(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE)),) $(error Please provide U-Boot environment file (BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE setting)) endif endif #BR2_TARGET_UBOOT endif #BR_BUILDING define HOST_UBOOT_TOOLS_GENERATE_ENVIMAGE $(HOST_UBOOT_TOOLS_GENERATE_ENV_DEFAULTS) cat $(UBOOT_TOOLS_GENERATE_ENV_FILE) | \ $(@D)/tools/mkenvimage -s $(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE) \ $(if $(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_REDUNDANT),-r) \ $(if $(filter "BIG",$(BR2_ENDIAN)),-b) \ -o $(@D)/tools/uboot-env.bin \ - endef define HOST_UBOOT_TOOLS_INSTALL_ENVIMAGE $(INSTALL) -m 0755 -D $(@D)/tools/uboot-env.bin $(BINARIES_DIR)/uboot-env.bin endef endif #BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT),y) ifeq ($(BR_BUILDING),y) ifeq ($(call qstrip,$(BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE)),) $(error Please define a source file for U-Boot boot script (BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE setting)) endif endif #BR_BUILDING define HOST_UBOOT_TOOLS_GENERATE_BOOT_SCRIPT $(@D)/tools/mkimage -C none -A $(MKIMAGE_ARCH) -T script \ -d $(call qstrip,$(BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE)) \ $(@D)/tools/boot.scr endef define HOST_UBOOT_TOOLS_INSTALL_BOOT_SCRIPT $(INSTALL) -m 0755 -D $(@D)/tools/boot.scr $(BINARIES_DIR)/boot.scr endef endif #BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT define HOST_UBOOT_TOOLS_BUILD_CMDS $(BR2_MAKE1) -C $(@D) $(HOST_UBOOT_TOOLS_MAKE_OPTS) tools-only $(HOST_UBOOT_TOOLS_GENERATE_ENVIMAGE) $(HOST_UBOOT_TOOLS_GENERATE_BOOT_SCRIPT) endef define HOST_UBOOT_TOOLS_INSTALL_CMDS $(INSTALL) -m 0755 -D $(@D)/tools/mkimage $(HOST_DIR)/bin/mkimage $(INSTALL) -m 0755 -D $(@D)/tools/mkenvimage $(HOST_DIR)/bin/mkenvimage $(INSTALL) -m 0755 -D $(@D)/tools/dumpimage $(HOST_DIR)/bin/dumpimage $(HOST_UBOOT_TOOLS_INSTALL_ENVIMAGE) $(HOST_UBOOT_TOOLS_INSTALL_BOOT_SCRIPT) endef $(eval $(generic-package)) $(eval $(host-generic-package)) # Convenience variables for other mk files that make use of mkimage MKIMAGE = $(HOST_DIR)/bin/mkimage # mkimage supports alpha arc arm arm64 blackfin ia64 invalid m68k microblaze mips mips64 nds32 nios2 or1k powerpc riscv s390 sandbox sh sparc sparc64 x86 x86_64 xtensa # KERNEL_ARCH can be arm64 arc arm blackfin m68k microblaze mips nios2 powerpc sh sparc i386 x86_64 xtensa # For i386, we need to convert # For openrisc, we need to convert # For others, we'll just keep KERNEL_ARCH ifeq ($(KERNEL_ARCH),i386) MKIMAGE_ARCH = x86 else ifeq ($(KERNEL_ARCH),openrisc) MKIMAGE_ARCH = or1k else MKIMAGE_ARCH = $(KERNEL_ARCH) endif ================================================ FILE: package/ubus/0001-Install-server-and-client-examples.patch ================================================ From aa4aea68a9d2a38fabb5ae8e5a0d05dfd7bcf907 Mon Sep 17 00:00:00 2001 From: Rahul Jain Date: Fri, 24 Mar 2017 18:03:24 +0530 Subject: [PATCH] Install server and client examples Signed-off-by: Sergio Prado Signed-off-by: Rahul Jain [Rahul Jain: rebase the patch on latest version] --- examples/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 81f9997..38f153f 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -9,4 +9,8 @@ IF (BUILD_EXAMPLES) ADD_EXECUTABLE(client client.c count.c) TARGET_LINK_LIBRARIES(client ubus ${ubox_library}) + + INSTALL(TARGETS server client + RUNTIME DESTINATION sbin + ) ENDIF() -- 2.6.2 ================================================ FILE: package/ubus/Config.in ================================================ comment "ubus needs a toolchain w/ dynamic library" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_STATIC_LIBS config BR2_PACKAGE_UBUS bool "ubus" depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c depends on !BR2_STATIC_LIBS # libubox select BR2_PACKAGE_LIBUBOX select BR2_PACKAGE_JSON_C help IPC/RPC bus that allows communication between processes. It consists of few parts including a daemon (ubusd), a library (libubus) and a command line interface (ubus). Although created for the OpenWRT project, it can be used as a general IPC/RPC mechanism in other projects. * Select BR2_PACKAGE_LUA_5_1 if you want to have Lua support. https://openwrt.org/docs/techref/ubus if BR2_PACKAGE_UBUS config BR2_PACKAGE_UBUS_EXAMPLES bool "build and install ubus examples" help Build and install client and server ubus examples. endif ================================================ FILE: package/ubus/ubus.hash ================================================ # Locally calculated sha256 275d184006f2f60c9b0172d8fd0ccc8952f182960c0d3d0945be640873c1bef6 ubus-a72457b61df045d3c499a6211362b751710590d7-br1.tar.gz sha256 a3caa6c0e90c87b7c97c2ac3d0c0d416082ef777215faec2e9b24ea6e68f6988 ubusd_acl.h ================================================ FILE: package/ubus/ubus.mk ================================================ ################################################################################ # # ubus # ################################################################################ UBUS_VERSION = a72457b61df045d3c499a6211362b751710590d7 UBUS_SITE = https://git.openwrt.org/project/ubus.git UBUS_SITE_METHOD = git UBUS_LICENSE = LGPL-2.1 UBUS_LICENSE_FILES = ubusd_acl.h UBUS_INSTALL_STAGING = YES UBUS_DEPENDENCIES = json-c libubox # package only compiles with Lua 5.1 ifeq ($(BR2_PACKAGE_LUA_5_1),y) UBUS_DEPENDENCIES += lua UBUS_CONF_OPTS += -DBUILD_LUA=ON \ -DLUA_CFLAGS=-I$(STAGING_DIR)/usr/include \ -DLUAPATH=/usr/lib/lua/$(LUAINTERPRETER_ABIVER) else UBUS_CONF_OPTS += -DBUILD_LUA=OFF endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) UBUS_DEPENDENCIES += systemd UBUS_CONF_OPTS += -DENABLE_SYSTEMD=ON else UBUS_CONF_OPTS += -DENABLE_SYSTEMD=OFF endif ifeq ($(BR2_PACKAGE_UBUS_EXAMPLES),y) UBUS_CONF_OPTS += -DBUILD_EXAMPLES=ON else UBUS_CONF_OPTS += -DBUILD_EXAMPLES=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/uccp420wlan/Config.in ================================================ config BR2_PACKAGE_UCCP420WLAN bool "uccp420wlan" depends on BR2_LINUX_KERNEL help SoftMAC (mac80211) based WiFi driver for Imagination's Explorer RPU uccp420. This supports Dual Band WiFi with 2.4GHz - 2x2 b/g/n 40MHz, 5GHz - 2x2 a/n/11ac 80MHz modes Used in creator ci40 board. This module needs a Linux kernel >= v4.2. https://github.com/CreatorDev/uccp420wlan comment "uccp420wlan needs a Linux kernel >= 4.2 to be built" depends on !BR2_LINUX_KERNEL ================================================ FILE: package/uccp420wlan/uccp420wlan.hash ================================================ # locally computed hash sha256 1d4de62fc842dbab739708cf0d9ebce270fcdf63c1c13ac676cbc253acdaa3bb uccp420wlan-6.9.1.tar.gz sha256 af8067302947c01fd9eee72befa54c7e3ef8a48fecde7fd71277f2290b2bf0f7 COPYING sha256 9ac431585fddfe624b08cf7464876a5e96061047ff26a9e926da3d89d21a2a73 firmware/LICENSE.imagination ================================================ FILE: package/uccp420wlan/uccp420wlan.mk ================================================ ################################################################################ # # uccp420wlan # ################################################################################ UCCP420WLAN_VERSION = 6.9.1 UCCP420WLAN_SITE = $(call github,CreatorDev,uccp420wlan,v$(UCCP420WLAN_VERSION)) UCCP420WLAN_LICENSE = GPL-2.0 (kernel module), proprietary (firmware blob) UCCP420WLAN_LICENSE_FILES = COPYING firmware/LICENSE.imagination define UCCP420WLAN_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/lib/firmware/img/uccp420wlan cp $(@D)/firmware/*.ldr $(TARGET_DIR)/lib/firmware/img/uccp420wlan endef $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/ucl/ucl.hash ================================================ # Locally calculated sha256 b865299ffd45d73412293369c9754b07637680e5c826915f097577cd27350348 ucl-1.03.tar.gz sha256 70439f6e2b47057a408d2390ed6663b9875f5a08066a06a060a357ef1df89a8c COPYING ================================================ FILE: package/ucl/ucl.mk ================================================ ################################################################################ # # ucl # ################################################################################ UCL_VERSION = 1.03 UCL_SITE = http://www.oberhumer.com/opensource/ucl/download UCL_LICENSE = GPL-2.0+ UCL_LICENSE_FILES = COPYING # Fix ACC conformance test failure for host gcc 6.x HOST_UCL_CONF_ENV += CPPFLAGS="$(HOST_CPPFLAGS) -std=iso9899:1990" $(eval $(host-autotools-package)) ================================================ FILE: package/uclibc/Config.in ================================================ if BR2_TOOLCHAIN_BUILDROOT_UCLIBC comment "uClibc Options" config BR2_PACKAGE_UCLIBC bool default y select BR2_PACKAGE_LINUX_HEADERS config BR2_UCLIBC_CONFIG string "uClibc configuration file to use?" default "package/uclibc/uClibc-ng.config" help Some people may wish to use their own modified uClibc configuration file and will specify their config file location with this option. See also docs/README in this package. If unsure, use the default. config BR2_UCLIBC_CONFIG_FRAGMENT_FILES string "Additional uClibc configuration fragment files" help A space-separated list of configuration fragment files, that will be merged to the main uClibc configuration file. config BR2_TOOLCHAIN_BUILDROOT_WCHAR bool "Enable WCHAR support" select BR2_USE_WCHAR help Enable this option if you want your toolchain to support wide characters (i.e characters longer than 8 bits, needed for locale support). config BR2_TOOLCHAIN_BUILDROOT_LOCALE bool "Enable toolchain locale/i18n support" select BR2_TOOLCHAIN_BUILDROOT_WCHAR select BR2_ENABLE_LOCALE select BR2_NEEDS_HOST_UTF8_LOCALE help Enable this option if you want your toolchain to support localization and internationalization. choice prompt "Thread library implementation" help Use this option to select the thread library implementation that should be used in your toolchain. config BR2_PTHREADS_NATIVE bool "Native POSIX Threading (NPTL)" depends on BR2_USE_MMU select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL config BR2_PTHREADS bool "linuxthreads" depends on !BR2_aarch64 && !BR2_aarch64_be depends on !BR2_RISCV_64 select BR2_TOOLCHAIN_HAS_THREADS config BR2_PTHREADS_NONE bool "none" endchoice config BR2_PTHREAD_DEBUG bool "Thread library debugging" depends on BR2_PTHREADS || BR2_PTHREADS_NATIVE select BR2_TOOLCHAIN_HAS_THREADS_DEBUG help Build the thread library with debugging enabled. config BR2_TOOLCHAIN_BUILDROOT_USE_SSP bool "Enable stack protection support" depends on BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI select BR2_TOOLCHAIN_HAS_SSP help Enable stack smashing protection support using GCCs -fstack-protector-all option in uClibc. See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt for details. config BR2_UCLIBC_INSTALL_UTILS bool "Compile and install uClibc utilities" default y help Enabling this option will compile and install the getconf, ldconfig and ldd uClibc utilities for the target. You can save ~32 KiB in target space by disabling them since they're normally not needed. # Mapping from the Buildroot architecture configuration options to the # uClibc architecture names. config BR2_UCLIBC_TARGET_ARCH string default "arc" if BR2_arcle || BR2_arceb default "arm" if BR2_arm || BR2_armeb default "m68k" if BR2_m68k default "microblaze" if BR2_microblaze default "mips" if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default "or1k" if BR2_or1k default "powerpc" if BR2_powerpc default "sh" if BR2_sh default "sparc" if BR2_sparc default "xtensa" if BR2_xtensa default "i386" if BR2_i386 default "x86_64" if BR2_x86_64 default "riscv64" if BR2_RISCV_64 config BR2_UCLIBC_MIPS_ABI string default "O32" if BR2_MIPS_OABI32 default "N32" if BR2_MIPS_NABI32 default "N64" if BR2_MIPS_NABI64 depends on BR2_UCLIBC_TARGET_ARCH = "mips" config BR2_UCLIBC_MIPS_NAN string default "LEGACY" if BR2_MIPS_NAN_LEGACY default "2008" if BR2_MIPS_NAN_2008 depends on BR2_UCLIBC_TARGET_ARCH = "mips" config BR2_UCLIBC_SH_TYPE string default "SH2A" if BR2_sh2a default "SH4" if BR2_sh4 || BR2_sh4eb depends on BR2_UCLIBC_TARGET_ARCH = "sh" config BR2_UCLIBC_SPARC_TYPE string default "V7" if BR2_sparc_v7 || BR2_sparc_sparchfleon || BR2_sparc_sparcsfleon default "V8" if BR2_sparc_v8 || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleonv8 depends on BR2_UCLIBC_TARGET_ARCH = "sparc" config BR2_UCLIBC_POWERPC_TYPE string default "CLASSIC" if !BR2_powerpc_8540 && !BR2_powerpc_8548 default "E500" if BR2_powerpc_8540 || BR2_powerpc_8548 depends on BR2_UCLIBC_TARGET_ARCH = "powerpc" config BR2_UCLIBC_X86_TYPE string default "486" if BR2_x86_i486 default "586" if BR2_x86_i586 default "586MMX" if BR2_x86_pentium_mmx default "686" if BR2_x86_i686 || BR2_x86_pentiumpro default "PENTIUMII" if BR2_x86_pentium2 default "PENTIUMIII" if BR2_x86_pentium3 default "PENTIUM4" if BR2_x86_pentium4 || BR2_x86_pentium_m || \ BR2_x86_nocona || BR2_x86_core2 || BR2_x86_corei7 depends on BR2_UCLIBC_TARGET_ARCH = "i386" endif # BR2_TOOLCHAIN_BUILDROOT_UCLIBC ================================================ FILE: package/uclibc/uClibc-ng.config ================================================ 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 LDSO_RUNPATH=y LDSO_RUNPATH_OF_EXECUTABLE=y UCLIBC_HAS_UTMPX=y UCLIBC_HAS_UTMP=y UCLIBC_SUSV2_LEGACY=y UCLIBC_SUSV3_LEGACY=y UCLIBC_HAS_CONTEXT_FUNCS=y UCLIBC_SUSV4_LEGACY=y 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 UCLIBC_HAS_LIBRESOLV_STUB=y UCLIBC_HAS_LIBNSL_STUB=y UCLIBC_HAS_CTYPE_CHECKED=y UCLIBC_HAS_LIBINTL=y UCLIBC_HAS_HEXADECIMAL_FLOATS=y UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y UCLIBC_HAS_STDIO_GETC_MACRO=y UCLIBC_HAS_STDIO_PUTC_MACRO=y UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y UCLIBC_HAS_PRINTF_M_SPEC=y UCLIBC_HAS_WORDEXP=y UCLIBC_HAS_NFTW=y UCLIBC_HAS_FTW=y UCLIBC_HAS_GNU_GLOB=y RUNTIME_PREFIX="/" DEVEL_PREFIX="/usr/" UCLIBC_HAS_SSP=y UCLIBC_BUILD_NOW=y # DOSTRIP is not set ================================================ FILE: package/uclibc/uclibc.hash ================================================ # From https://downloads.uclibc-ng.org/releases/1.0.38/uClibc-ng-1.0.39.tar.xz.sha256 sha256 cb089dfe14867a38f222d6428e85d0e1191dcbb66dd9b1a671484f6bc7c81920 uClibc-ng-1.0.39.tar.xz # Locally calculated sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING.LIB ================================================ FILE: package/uclibc/uclibc.mk ================================================ ################################################################################ # # uclibc # ################################################################################ UCLIBC_VERSION = 1.0.39 UCLIBC_SOURCE = uClibc-ng-$(UCLIBC_VERSION).tar.xz UCLIBC_SITE = https://downloads.uclibc-ng.org/releases/$(UCLIBC_VERSION) UCLIBC_LICENSE = LGPL-2.1+ UCLIBC_LICENSE_FILES = COPYING.LIB UCLIBC_INSTALL_STAGING = YES UCLIBC_CPE_ID_VENDOR = uclibc-ng_project UCLIBC_CPE_ID_PRODUCT = uclibc-ng # uclibc is part of the toolchain so disable the toolchain dependency UCLIBC_ADD_TOOLCHAIN_DEPENDENCY = NO # Before uClibc is configured, we must have the first stage # cross-compiler and the kernel headers UCLIBC_DEPENDENCIES = host-gcc-initial linux-headers # specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config # setting. ifndef UCLIBC_CONFIG_FILE UCLIBC_CONFIG_FILE = $(call qstrip,$(BR2_UCLIBC_CONFIG)) endif UCLIBC_KCONFIG_EDITORS = menuconfig nconfig UCLIBC_KCONFIG_FILE = $(UCLIBC_CONFIG_FILE) UCLIBC_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_UCLIBC_CONFIG_FRAGMENT_FILES)) # UCLIBC_MAKE_FLAGS set HOSTCC to the default HOSTCC, which may be # wrapped with ccache. However, host-ccache may not already be built # and installed when we apply the configuration, so we override that # to use the non-ccached host compiler. UCLIBC_KCONFIG_OPTS = \ $(UCLIBC_MAKE_FLAGS) \ HOSTCC="$(HOSTCC_NOCCACHE)" \ PREFIX=$(STAGING_DIR) \ DEVEL_PREFIX=/usr/ \ RUNTIME_PREFIX=$(STAGING_DIR)/ UCLIBC_TARGET_ARCH = $(call qstrip,$(BR2_UCLIBC_TARGET_ARCH)) UCLIBC_GENERATE_LOCALES = $(call qstrip,$(BR2_GENERATE_LOCALE)) ifeq ($(UCLIBC_GENERATE_LOCALES),) # We need at least one locale UCLIBC_LOCALES = en_US else # Strip out the encoding part of locale names, if any UCLIBC_LOCALES = \ $(foreach locale,$(UCLIBC_GENERATE_LOCALES),\ $(firstword $(subst .,$(space),$(locale)))) endif # noMMU binary formats ifeq ($(BR2_BINFMT_FLAT_ONE),y) define UCLIBC_BINFMT_CONFIG $(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_FLAT) $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA) $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_SHARED_FLAT) $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF) endef endif ifeq ($(BR2_BINFMT_FLAT_SHARED),y) define UCLIBC_BINFMT_CONFIG $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT) $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA) $(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_SHARED_FLAT) $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF) endef endif # # ARC definitions # ifeq ($(UCLIBC_TARGET_ARCH),arc) UCLIBC_ARC_PAGE_SIZE = CONFIG_ARC_PAGE_SIZE_$(call qstrip,$(BR2_ARC_PAGE_SIZE)) define UCLIBC_ARC_PAGE_SIZE_CONFIG $(SED) '/CONFIG_ARC_PAGE_SIZE_*/d' $(@D)/.config $(call KCONFIG_ENABLE_OPT,$(UCLIBC_ARC_PAGE_SIZE)) endef ifeq ($(BR2_ARC_ATOMIC_EXT),) define UCLIBC_ARC_ATOMICS_CONFIG $(call KCONFIG_DISABLE_OPT,CONFIG_ARC_HAS_ATOMICS) endef endif endif # arc # # ARM definitions # ifeq ($(UCLIBC_TARGET_ARCH),arm) define UCLIBC_ARM_ABI_CONFIG $(SED) '/CONFIG_ARM_.ABI/d' $(@D)/.config $(call KCONFIG_ENABLE_OPT,CONFIG_ARM_EABI) endef ifeq ($(BR2_BINFMT_FLAT),y) define UCLIBC_ARM_BINFMT_FLAT $(call KCONFIG_DISABLE_OPT,DOPIC) endef 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) 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) endef endif endif # m68k/coldfire # # MIPS definitions # ifeq ($(UCLIBC_TARGET_ARCH),mips) UCLIBC_MIPS_ABI = CONFIG_MIPS_$(call qstrip,$(BR2_UCLIBC_MIPS_ABI))_ABI define UCLIBC_MIPS_ABI_CONFIG $(SED) '/CONFIG_MIPS_[NO].._ABI/d' $(@D)/.config $(call KCONFIG_ENABLE_OPT,$(UCLIBC_MIPS_ABI)) endef UCLIBC_MIPS_NAN = CONFIG_MIPS_NAN_$(call qstrip,$(BR2_UCLIBC_MIPS_NAN)) define UCLIBC_MIPS_NAN_CONFIG $(SED) '/CONFIG_MIPS_NAN_.*/d' $(@D)/.config $(call KCONFIG_ENABLE_OPT,$(UCLIBC_MIPS_NAN)) endef endif # mips # # SH definitions # ifeq ($(UCLIBC_TARGET_ARCH),sh) UCLIBC_SH_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_SH_TYPE)) define UCLIBC_SH_TYPE_CONFIG $(SED) '/CONFIG_SH[234A]*/d' $(@D)/.config $(call KCONFIG_ENABLE_OPT,$(UCLIBC_SH_TYPE)) endef endif # sh # # SPARC definitions # ifeq ($(UCLIBC_TARGET_ARCH),sparc) UCLIBC_SPARC_TYPE = CONFIG_SPARC_$(call qstrip,$(BR2_UCLIBC_SPARC_TYPE)) define UCLIBC_SPARC_TYPE_CONFIG $(SED) 's/^\(CONFIG_[^_]*[_]*SPARC[^=]*\)=.*/# \1 is not set/g' \ $(@D)/.config $(call KCONFIG_ENABLE_OPT,$(UCLIBC_SPARC_TYPE)) endef endif # sparc # # PowerPC definitions # ifeq ($(UCLIBC_TARGET_ARCH),powerpc) UCLIBC_POWERPC_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_POWERPC_TYPE)) define UCLIBC_POWERPC_TYPE_CONFIG $(call KCONFIG_DISABLE_OPT,CONFIG_GENERIC) $(call KCONFIG_DISABLE_OPT,CONFIG_E500) $(call KCONFIG_ENABLE_OPT,$(UCLIBC_POWERPC_TYPE)) endef endif # powerpc # # x86 definitions # ifeq ($(UCLIBC_TARGET_ARCH),i386) UCLIBC_X86_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_X86_TYPE)) define UCLIBC_X86_TYPE_CONFIG $(call KCONFIG_ENABLE_OPT,$(UCLIBC_X86_TYPE)) endef endif # # Debug # ifeq ($(BR2_ENABLE_DEBUG),y) define UCLIBC_DEBUG_CONFIG $(call KCONFIG_ENABLE_OPT,DODEBUG) endef endif # # Endianness # ifeq ($(call qstrip,$(BR2_ENDIAN)),BIG) define UCLIBC_ENDIAN_CONFIG $(call KCONFIG_ENABLE_OPT,ARCH_BIG_ENDIAN) $(call KCONFIG_ENABLE_OPT,ARCH_WANTS_BIG_ENDIAN) $(call KCONFIG_DISABLE_OPT,ARCH_LITTLE_ENDIAN) $(call KCONFIG_DISABLE_OPT,ARCH_WANTS_LITTLE_ENDIAN) endef else define UCLIBC_ENDIAN_CONFIG $(call KCONFIG_ENABLE_OPT,ARCH_LITTLE_ENDIAN) $(call KCONFIG_ENABLE_OPT,ARCH_WANTS_LITTLE_ENDIAN) $(call KCONFIG_DISABLE_OPT,ARCH_BIG_ENDIAN) $(call KCONFIG_DISABLE_OPT,ARCH_WANTS_BIG_ENDIAN) endef endif # # MMU # ifeq ($(BR2_USE_MMU),y) define UCLIBC_MMU_CONFIG $(call KCONFIG_ENABLE_OPT,ARCH_HAS_MMU) $(call KCONFIG_ENABLE_OPT,ARCH_USE_MMU) endef else define UCLIBC_MMU_CONFIG $(call KCONFIG_DISABLE_OPT,ARCH_HAS_MMU) $(call KCONFIG_DISABLE_OPT,ARCH_USE_MMU) endef endif # # IPv6 # UCLIBC_IPV6_CONFIG = $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_IPV6) # # soft-float # ifeq ($(BR2_SOFT_FLOAT),y) define UCLIBC_FLOAT_CONFIG $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_FPU) $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FLOATS) $(call KCONFIG_ENABLE_OPT,DO_C99_MATH) endef else define UCLIBC_FLOAT_CONFIG $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FPU) $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FLOATS) endef endif # # SSP # ifeq ($(BR2_TOOLCHAIN_BUILDROOT_USE_SSP),y) define UCLIBC_SSP_CONFIG $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_SSP) $(call KCONFIG_ENABLE_OPT,UCLIBC_BUILD_SSP) endef else define UCLIBC_SSP_CONFIG $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_SSP) $(call KCONFIG_DISABLE_OPT,UCLIBC_BUILD_SSP) endef endif # # Threads # ifeq ($(BR2_PTHREADS_NONE),y) define UCLIBC_THREAD_CONFIG $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS) $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_LINUXTHREADS) $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS_NATIVE) endef else ifeq ($(BR2_PTHREADS),y) define UCLIBC_THREAD_CONFIG $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS) $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_LINUXTHREADS) $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS_NATIVE) endef else ifeq ($(BR2_PTHREADS_NATIVE),y) define UCLIBC_THREAD_CONFIG $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS) $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_LINUXTHREADS) $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS_NATIVE) endef endif # # Thread debug # ifeq ($(BR2_PTHREAD_DEBUG),y) UCLIBC_THREAD_DEBUG_CONFIG = $(call KCONFIG_ENABLE_OPT,PTHREADS_DEBUG_SUPPORT) else UCLIBC_THREAD_DEBUG_CONFIG = $(call KCONFIG_DISABLE_OPT,PTHREADS_DEBUG_SUPPORT) endif # # Locale # ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LOCALE),y) define UCLIBC_LOCALE_CONFIG $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_LOCALE) $(call KCONFIG_DISABLE_OPT,UCLIBC_BUILD_ALL_LOCALE) $(call KCONFIG_ENABLE_OPT,UCLIBC_BUILD_MINIMAL_LOCALE) $(call KCONFIG_SET_OPT,UCLIBC_BUILD_MINIMAL_LOCALES,"$(UCLIBC_LOCALES)") $(call KCONFIG_DISABLE_OPT,UCLIBC_PREGENERATED_LOCALE_DATA) $(call KCONFIG_DISABLE_OPT,DOWNLOAD_PREGENERATED_LOCALE_DATA) $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_XLOCALE) $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_GLIBC_DIGIT_GROUPING) endef else define UCLIBC_LOCALE_CONFIG $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_LOCALE) endef endif # # wchar # ifeq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y) UCLIBC_WCHAR_CONFIG = $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_WCHAR) else UCLIBC_WCHAR_CONFIG = $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_WCHAR) endif # # static/shared libs # ifeq ($(BR2_STATIC_LIBS),y) UCLIBC_SHARED_LIBS_CONFIG = $(call KCONFIG_DISABLE_OPT,HAVE_SHARED) else UCLIBC_SHARED_LIBS_CONFIG = $(call KCONFIG_ENABLE_OPT,HAVE_SHARED) endif # # Commands # UCLIBC_MAKE_FLAGS = \ ARCH="$(UCLIBC_TARGET_ARCH)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \ HOSTCC="$(HOSTCC)" define UCLIBC_KCONFIG_FIXUP_CMDS $(call KCONFIG_SET_OPT,CROSS_COMPILER_PREFIX,"$(TARGET_CROSS)") $(call KCONFIG_ENABLE_OPT,TARGET_$(UCLIBC_TARGET_ARCH)) $(call KCONFIG_SET_OPT,TARGET_ARCH,"$(UCLIBC_TARGET_ARCH)") $(call KCONFIG_SET_OPT,KERNEL_HEADERS,"$(LINUX_HEADERS_DIR)/usr/include") $(call KCONFIG_SET_OPT,RUNTIME_PREFIX,"/") $(call KCONFIG_SET_OPT,DEVEL_PREFIX,"/usr") $(call KCONFIG_SET_OPT,SHARED_LIB_LOADER_PREFIX,"/lib") $(UCLIBC_MMU_CONFIG) $(UCLIBC_BINFMT_CONFIG) $(UCLIBC_ARC_PAGE_SIZE_CONFIG) $(UCLIBC_ARC_ATOMICS_CONFIG) $(UCLIBC_ARM_ABI_CONFIG) $(UCLIBC_ARM_BINFMT_FLAT) $(UCLIBC_ARM_NO_CONTEXT_FUNCS) $(UCLIBC_M68K_BINFMT_FLAT) $(UCLIBC_MIPS_ABI_CONFIG) $(UCLIBC_MIPS_NAN_CONFIG) $(UCLIBC_SH_TYPE_CONFIG) $(UCLIBC_SPARC_TYPE_CONFIG) $(UCLIBC_POWERPC_TYPE_CONFIG) $(UCLIBC_X86_TYPE_CONFIG) $(UCLIBC_DEBUG_CONFIG) $(UCLIBC_ENDIAN_CONFIG) $(UCLIBC_IPV6_CONFIG) $(UCLIBC_FLOAT_CONFIG) $(UCLIBC_SSP_CONFIG) $(UCLIBC_THREAD_CONFIG) $(UCLIBC_THREAD_DEBUG_CONFIG) $(UCLIBC_LOCALE_CONFIG) $(UCLIBC_WCHAR_CONFIG) $(UCLIBC_SHARED_LIBS_CONFIG) endef define UCLIBC_BUILD_CMDS $(MAKE) -C $(@D) $(UCLIBC_MAKE_FLAGS) headers $(MAKE) -C $(@D) $(UCLIBC_MAKE_FLAGS) $(MAKE) -C $(@D)/utils \ PREFIX=$(HOST_DIR) \ HOSTCC="$(HOSTCC)" hostutils endef ifeq ($(BR2_UCLIBC_INSTALL_UTILS),y) define UCLIBC_INSTALL_UTILS_TARGET $(MAKE1) -C $(@D) \ CC="$(TARGET_CC)" CPP="$(TARGET_CPP)" LD="$(TARGET_LD)" \ ARCH="$(UCLIBC_TARGET_ARCH)" \ PREFIX=$(TARGET_DIR) \ utils install_utils endef endif define UCLIBC_INSTALL_TARGET_CMDS $(MAKE1) -C $(@D) \ $(UCLIBC_MAKE_FLAGS) \ PREFIX=$(TARGET_DIR) \ DEVEL_PREFIX=/usr/ \ RUNTIME_PREFIX=/ \ install_runtime $(UCLIBC_INSTALL_UTILS_TARGET) endef # STATIC has no ld* tools, only getconf ifeq ($(BR2_STATIC_LIBS),) define UCLIBC_INSTALL_UTILS_STAGING $(INSTALL) -D -m 0755 $(@D)/utils/ldd.host $(HOST_DIR)/bin/ldd ln -sf ldd $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-ldd $(INSTALL) -D -m 0755 $(@D)/utils/ldconfig.host $(HOST_DIR)/bin/ldconfig ln -sf ldconfig $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-ldconfig endef endif define UCLIBC_INSTALL_STAGING_CMDS $(MAKE1) -C $(@D) \ $(UCLIBC_MAKE_FLAGS) \ PREFIX=$(STAGING_DIR) \ DEVEL_PREFIX=/usr/ \ RUNTIME_PREFIX=/ \ install_runtime install_dev $(UCLIBC_INSTALL_UTILS_STAGING) endef # Checks to give errors that the user can understand # Must be before we call to kconfig-package ifeq ($(BR2_PACKAGE_UCLIBC)$(BR_BUILDING),yy) ifeq ($(call qstrip,$(BR2_UCLIBC_CONFIG)),) $(error No uClibc configuration file specified, check your BR2_UCLIBC_CONFIG setting) endif endif $(eval $(kconfig-package)) ================================================ FILE: package/uclibc-ng-test/Config.in ================================================ config BR2_PACKAGE_UCLIBC_NG_TEST bool "uclibc-ng-test" help Enabling this option will compile and install the uClibc-ng test suite. This is useful if you want to check if the uClibc-ng library is working for your architecture and/or help developing uClibc-ng. The test suite will be installed into /usr/lib/uclibc-ng-test directory. To run the test suite enter the /usr/lib/uclibc-ng-test/test directory and type "sh uclibcng-testrunner.sh". See the /usr/lib/uclibc-ng-test/test/README for additional information. This is not needed at all for normal builds, so you can safely say no if you do not plan to dig into your C library. The tests can also be used for GNU libc or musl. http://www.uclibc-ng.org ================================================ FILE: package/uclibc-ng-test/uclibc-ng-test.hash ================================================ # Locally computed sha256 f731307c0547ce4bbd3f5025972f64e9b22208a147e34e5745000b54d4d3aa98 uclibc-ng-test-0844445e7358eb10e716155b55b0fb23e88d644a-br1.tar.gz sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING.LIB ================================================ FILE: package/uclibc-ng-test/uclibc-ng-test.mk ================================================ ################################################################################ # # uclibc-ng-test # ################################################################################ UCLIBC_NG_TEST_VERSION = 0844445e7358eb10e716155b55b0fb23e88d644a UCLIBC_NG_TEST_SITE = git://uclibc-ng.org/git/uclibc-ng-test UCLIBC_NG_TEST_LICENSE = LGPL-2.1+ UCLIBC_NG_TEST_LICENSE_FILES = COPYING.LIB # the math tests are recently synced from glibc and need more adaption before # regular testing is possible UCLIBC_NG_TEST_MAKE_ENV += NO_MATH=1 # obsolete encrypt and setkey functions are not available since glibc 2.28 ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y) UCLIBC_NG_TEST_MAKE_ENV += NO_CRYPT=1 endif # locale tests are not compatible with musl, yet ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) UCLIBC_NG_TEST_MAKE_ENV += NO_LOCALE=1 endif ifeq ($(BR2_USE_WCHAR),) UCLIBC_NG_TEST_MAKE_ENV += NO_WCHAR=1 endif ifeq ($(BR2_ENABLE_LOCALE),) UCLIBC_NG_TEST_MAKE_ENV += NO_LOCALE=1 endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),) UCLIBC_NG_TEST_MAKE_ENV += NO_TLS=1 NO_THREADS=1 endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),) UCLIBC_NG_TEST_MAKE_ENV += NO_TLS=1 NO_NPTL=1 endif # most NPTL/TLS tests use dlopen ifeq ($(BR2_STATIC_LIBS),y) UCLIBC_NG_TEST_MAKE_ENV += NO_TLS=1 NO_NPTL=1 NO_DL=1 endif # no TLS macros available ifeq ($(BR2_nds32)$(BR2_s390x),y) UCLIBC_NG_TEST_MAKE_ENV += NO_TLS=1 endif # to execute tests in a deterministic order, call test_gen separately define UCLIBC_NG_TEST_BUILD_CMDS $(TARGET_MAKE_ENV) $(UCLIBC_NG_TEST_MAKE_ENV) $(MAKE) -C $(@D) \ CC="$(TARGET_CC)" \ UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \ UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \ test_compile $(TARGET_MAKE_ENV) $(UCLIBC_NG_TEST_MAKE_ENV) $(MAKE1) -C $(@D) \ CC="$(TARGET_CC)" \ UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \ test_gen endef define UCLIBC_NG_TEST_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" install endef $(eval $(generic-package)) ================================================ FILE: package/udev/Config.in ================================================ config BR2_PACKAGE_HAS_UDEV bool config BR2_PACKAGE_PROVIDES_UDEV string depends on BR2_PACKAGE_HAS_UDEV ================================================ FILE: package/udev/udev.mk ================================================ ################################################################################ # # udev # ################################################################################ # Required by default rules for input devices define UDEV_USERS - - input -1 * - - - Input device group - - render -1 * - - - DRI rendering nodes - - kvm -1 * - - - kvm nodes endef $(eval $(virtual-package)) ================================================ FILE: package/udev-gentoo-scripts/Config.in ================================================ config BR2_PACKAGE_UDEV_GENTOO_SCRIPTS bool depends on BR2_PACKAGE_EUDEV depends on BR2_INIT_OPENRC help Init scripts for eudev. ================================================ FILE: package/udev-gentoo-scripts/udev-gentoo-scripts.hash ================================================ # Locally calculated sha256 b206f72c93cd2e51ed59061931918a9c23c3c1f7e6caffacc9d4f8915a42c30a udev-gentoo-scripts-33.tar.bz2 sha256 329f95829088b95650b9012ae688f09baa1637985425a7964d33683363f48702 init.d/udev-settle ================================================ FILE: package/udev-gentoo-scripts/udev-gentoo-scripts.mk ================================================ ################################################################################ # # udev-gentoo-scripts # ################################################################################ UDEV_GENTOO_SCRIPTS_VERSION = 33 UDEV_GENTOO_SCRIPTS_SOURCE = udev-gentoo-scripts-$(UDEV_GENTOO_SCRIPTS_VERSION).tar.bz2 UDEV_GENTOO_SCRIPTS_SITE = https://gitweb.gentoo.org/proj/udev-gentoo-scripts.git/snapshot UDEV_GENTOO_SCRIPTS_LICENSE = GPL-2.0 UDEV_GENTOO_SCRIPTS_LICENSE_FILES = init.d/udev-settle # We don't need to symlink /etc/init.d/udev to /etc/runlevels/sysinit, since # it's in the udev-settle and udev-trigger "need" lists. define UDEV_GENTOO_SCRIPTS_INSTALL_INIT_OPENRC $(MAKE1) -C $(@D) install DESTDIR=$(TARGET_DIR) $(INSTALL) -d -m 755 $(TARGET_DIR)/etc/runlevels/sysinit ln -s -f /etc/init.d/udev-settle /etc/init.d/udev-trigger \ $(TARGET_DIR)/etc/runlevels/sysinit endef $(eval $(generic-package)) ================================================ FILE: package/udftools/Config.in ================================================ config BR2_PACKAGE_UDFTOOLS bool "udftools" depends on BR2_USE_WCHAR select BR2_PACKAGE_READLINE help Tools for creating UDF filesystems Maintained fork of the 2004 Sourcforge package https://github.com/pali/udftools comment "udftools needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR ================================================ FILE: package/udftools/udftools.hash ================================================ # Locally computed sha256 750dcf5c797765eb42265e0a56d1a99f97f94b7f6f4534263a5410503f0caf59 udftools-2.3.tar.gz sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING ================================================ FILE: package/udftools/udftools.mk ================================================ ################################################################################ # # udftools # ################################################################################ UDFTOOLS_VERSION = 2.3 UDFTOOLS_SITE = https://github.com/pali/udftools/releases/download/$(UDFTOOLS_VERSION) UDFTOOLS_LICENSE = GPL-2.0+ UDFTOOLS_LICENSE_FILES = COPYING UDFTOOLS_DEPENDENCIES = readline host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/udisks/Config.in ================================================ config BR2_PACKAGE_UDISKS bool "udisks" depends on BR2_ENABLE_LOCALE # parted depends on BR2_PACKAGE_HAS_UDEV depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # polkit -> C++17 depends on BR2_TOOLCHAIN_HAS_THREADS # polkit depends on BR2_USE_WCHAR # dbus-glib -> glib2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libblockdev -> cryptsetup -> json-c depends on !BR2_STATIC_LIBS # polkit -> duktape select BR2_PACKAGE_DBUS select BR2_PACKAGE_DBUS_GLIB select BR2_PACKAGE_LIBATASMART select BR2_PACKAGE_LIBBLOCKDEV select BR2_PACKAGE_LIBBLOCKDEV_CRYPTO select BR2_PACKAGE_LIBBLOCKDEV_FS select BR2_PACKAGE_LIBBLOCKDEV_LOOP select BR2_PACKAGE_LIBBLOCKDEV_MDRAID select BR2_PACKAGE_LIBBLOCKDEV_PART select BR2_PACKAGE_LIBBLOCKDEV_SWAP select BR2_PACKAGE_LIBGUDEV select BR2_PACKAGE_PARTED select BR2_PACKAGE_POLKIT select BR2_PACKAGE_SG3_UTILS select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT help The udisks project provides o A storage daemon that implements well-defined D-Bus interfaces that can be used to query and manipulate storage devices. o a command-line tool, udisks(1), that can be used to query and use the daemon http://www.freedesktop.org/wiki/Software/udisks comment "udisks needs udev /dev management" depends on BR2_USE_MMU depends on !BR2_PACKAGE_HAS_UDEV comment "udisks needs a toolchain with dynamic library, locale, wchar, threads, gcc >= 7" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_STATIC_LIBS || !BR2_ENABLE_LOCALE || \ !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 ================================================ FILE: package/udisks/udisks.hash ================================================ # Locally calculated sha256 b6b60ebab0d5e09624120c5d158882e87d8c2473db60783b63deeba74cb18d1c udisks-2.9.4.tar.bz2 sha256 98046e932dc6c739001e79d7079a3bd958fc55475dcd917d27f884c0c93525cc COPYING ================================================ FILE: package/udisks/udisks.mk ================================================ ################################################################################ # # udisks # ################################################################################ UDISKS_VERSION = 2.9.4 UDISKS_SOURCE = udisks-$(UDISKS_VERSION).tar.bz2 UDISKS_SITE = https://github.com/storaged-project/udisks/releases/download/udisks-$(UDISKS_VERSION) UDISKS_LICENSE = GPL-2.0+ UDISKS_LICENSE_FILES = COPYING UDISKS_CPE_ID_VENDOR = freedesktop UDISKS_DEPENDENCIES = \ host-pkgconf \ dbus \ dbus-glib \ libatasmart \ libblockdev \ libgudev \ parted \ polkit \ sg3_utils \ udev \ util-linux UDISKS_CONF_OPTS = \ --disable-acl \ --disable-bcache \ --disable-btrfs \ --disable-fhs-media \ --disable-introspection \ --disable-iscsi \ --disable-lsm \ --disable-lvm2 \ --disable-lvmcache \ --disable-man \ --disable-rpath \ --disable-vdo \ --disable-zram $(eval $(autotools-package)) ================================================ FILE: package/udpcast/Config.in ================================================ comment "udpcast needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_UDPCAST bool "udpcast" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() help A multicast protocol implementation which happens to be very handy for imaging drives over the network. http://www.udpcast.linux.lu/ if BR2_PACKAGE_UDPCAST config BR2_PACKAGE_UDPCAST_SENDER bool "sender" help The udpcast transmitter. config BR2_PACKAGE_UDPCAST_RECEIVER bool "receiver" help The udpcast receiver. endif ================================================ FILE: package/udpcast/udpcast.hash ================================================ # locally computed hash sha256 9c19eebaa6e2f78127f0d59e95d0ce003b687d61e283b5963a1da6b8ac41f21a udpcast-20200328.tar.gz sha256 422befd3503b1f39a6027017f639874c1f274e37ec60ba3174894646b584ccbc COPYING ================================================ FILE: package/udpcast/udpcast.mk ================================================ ################################################################################ # # udpcast # ################################################################################ UDPCAST_VERSION = 20200328 UDPCAST_SITE = http://www.udpcast.linux.lu/download UDPCAST_DEPENDENCIES = host-m4 UDPCAST_LICENSE = BSD-2-Clause, GPL-2.0+ UDPCAST_LICENSE_FILES = COPYING define UDPCAST_REMOVE_UDP_SENDER rm -f $(TARGET_DIR)/usr/sbin/udp-sender rm -f $(TARGET_DIR)/usr/sbin/udp-sender.1 endef ifneq ($(BR2_PACKAGE_UDPCAST_SENDER),y) UDPCAST_POST_INSTALL_TARGET_HOOKS += UDPCAST_REMOVE_UDP_SENDER endif define UDPCAST_REMOVE_UDP_RECEIVER rm -f $(TARGET_DIR)/usr/sbin/udp-receiver rm -f $(TARGET_DIR)/usr/sbin/udp-receiver.1 endef ifneq ($(BR2_PACKAGE_UDPCAST_RECEIVER),y) UDPCAST_POST_INSTALL_TARGET_HOOKS += UDPCAST_REMOVE_UDP_RECEIVER endif $(eval $(autotools-package)) ================================================ FILE: package/udpxy/Config.in ================================================ config BR2_PACKAGE_UDPXY bool "udpxy" depends on BR2_USE_MMU help udpxy is a UDP-to-HTTP multicast traffic relay daemon: it forwards UDP traffic from a given multicast subscription to the requesting HTTP client. http://www.udpxy.com/ ================================================ FILE: package/udpxy/udpxy.hash ================================================ # Locally computed sha256 6ce33b1d14a1aeab4bd2566aca112e41943df4d002a7678d9a715108e6b714bd udpxy.1.0.23-9-prod.tar.gz sha256 60ead3913246c7cd930fe653c0053aba1af2cd9f82b266befdbbd6e0b8ecb750 README ================================================ FILE: package/udpxy/udpxy.mk ================================================ ################################################################################ # # udpxy # ################################################################################ UDPXY_VERSION = 1.0.23-9-prod UDPXY_SOURCE = udpxy.$(UDPXY_VERSION).tar.gz UDPXY_SITE = http://www.udpxy.com/download/1_23 UDPXY_LICENSE = GPL-3.0+ UDPXY_LICENSE_FILES = README define UDPXY_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define UDPXY_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) PREFIX=/usr \ -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/uemacs/01-clear-ixon-termios-flag.patch ================================================ [PATCH] clear ixon termios flag on initialization Otherwise ctrl-S/Q gets intercepted by the tty layer instead of handled by uemacs. Signed-off-by: Peter Korsgaard diff --git a/posix.c b/posix.c index 97edd9f052b1..352c4712b689 100644 --- a/posix.c +++ b/posix.c @@ -53,17 +53,17 @@ void ttopen(void) /* * base new settings on old ones - don't change things * we don't know about */ ntermios = otermios; /* raw CR/NL etc input handling, but keep ISTRIP if we're on a 7-bit line */ ntermios.c_iflag &= ~(IGNBRK | BRKINT | IGNPAR | PARMRK - | INPCK | INLCR | IGNCR | ICRNL); + | INPCK | INLCR | IGNCR | ICRNL | IXON); /* raw CR/NR etc output handling */ ntermios.c_oflag &= ~(OPOST | ONLCR | OLCUC | OCRNL | ONOCR | ONLRET); /* No signal handling, no echo etc */ ntermios.c_lflag &= ~(ISIG | ICANON | XCASE | ECHO | ECHOE | ECHOK | ECHONL | NOFLSH | TOSTOP | ECHOCTL | ================================================ FILE: package/uemacs/Config.in ================================================ config BR2_PACKAGE_UEMACS bool "uemacs" select BR2_PACKAGE_NCURSES help A small emacs. https://git.kernel.org/cgit/editors/uemacs/uemacs.git/ ================================================ FILE: package/uemacs/uemacs.hash ================================================ # Locally computed sha256 96e30247365bb27bd74c550b637f5b2ffd2978379872a32a840f6667cec5fa2a uemacs-1cdcf9df88144049750116e36fe20c8c39fa2517-br1.tar.gz sha256 6e2a4cf41ec8d4379c154923349733bc0d3935c6fa72c4337cf1bc137b98b90a README ================================================ FILE: package/uemacs/uemacs.mk ================================================ ################################################################################ # # uemacs # ################################################################################ UEMACS_VERSION = 1cdcf9df88144049750116e36fe20c8c39fa2517 UEMACS_SITE = https://git.kernel.org/pub/scm/editors/uemacs/uemacs.git UEMACS_SITE_METHOD = git UEMACS_DEPENDENCIES = ncurses UEMACS_LICENSE = MicroEMACS copyright notice UEMACS_LICENSE_FILES = README define UEMACS_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ CC="$(TARGET_CC)" DEFINES="-DAUTOCONF -DPOSIX -DUSG" \ CFLAGS+="$(TARGET_CFLAGS) " LIBS="$(TARGET_CFLAGS) -lncurses" endef define UEMACS_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/em $(TARGET_DIR)/usr/bin/em endef $(eval $(generic-package)) ================================================ FILE: package/uftp/Config.in ================================================ config BR2_PACKAGE_UFTP bool "uftp" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR help Encrypted UDP based FTP with multicast. http://uftp-multicast.sourceforge.net/ comment "uftp needs a toolchain w/ threads, wchar" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR ================================================ FILE: package/uftp/uftp.hash ================================================ # Locally computed sha256 sha256 562f71ea5a24b615eb491f5744bad01e9c2e58244c1d6252d5ae98d320d308e0 uftp-5.0.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.txt ================================================ FILE: package/uftp/uftp.mk ================================================ ################################################################################ # # uftp # ################################################################################ UFTP_VERSION = 5.0 UFTP_SITE = http://sourceforge.net/projects/uftp-multicast/files/source-tar UFTP_LICENSE = GPL-3.0+ UFTP_LICENSE_FILES = LICENSE.txt ifeq ($(BR2_PACKAGE_OPENSSL),y) UFTP_DEPENDENCIES += host-pkgconf openssl UFTP_MAKE_OPTS += CRYPT_LIB="`$(PKG_CONFIG_HOST_BINARY) --libs libcrypto`" else UFTP_MAKE_OPTS += NO_ENCRYPTION=1 endif define UFTP_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(UFTP_MAKE_OPTS) endef define UFTP_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(UFTP_MAKE_OPTS) \ DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/uftrace/0001-cmds-records-replace-ADDR_NO_RANDOMIZE-by-its-value.patch ================================================ From dc0a75b1679debbc3712b262e5127e90961f92db Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 23 Apr 2021 22:57:56 +0200 Subject: [PATCH] cmds/records: replace ADDR_NO_RANDOMIZE by its value uClibc-ng lacks the definition of ADDR_NO_RANDOMIZE, causing a build failure. A patch was submitted to upstream uClibc-ng to address this issue, but in the mean time, use an hardcoded value. Using a #ifdef ... #endif test doesn't work as this value is defined through an enum in glibc. Signed-off-by: Thomas Petazzoni --- cmds/record.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmds/record.c b/cmds/record.c index e750f053..fc4eaed4 100644 --- a/cmds/record.c +++ b/cmds/record.c @@ -2110,7 +2110,7 @@ int do_child_exec(int ready, struct opts *opts, if (opts->no_randomize_addr) { /* disable ASLR (Address Space Layout Randomization) */ - if (personality(ADDR_NO_RANDOMIZE) < 0) + if (personality(0x0040000 /* ADDR_NO_RANDOMIZE */) < 0) pr_dbg("disabling ASLR failed\n"); } -- 2.30.2 ================================================ FILE: package/uftrace/0002-arch-arm-mcount-support.c-define-EF_ARM_VFP_FLOAT-wh.patch ================================================ From 4e543097e62eb052650433d1d4c9c5996d30f242 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 23 Apr 2021 23:06:01 +0200 Subject: [PATCH] arch/arm/mcount-support.c: define EF_ARM_VFP_FLOAT when not available uClibc-ng doesn't define EF_ARM_VFP_FLOAT, so let's define it. Signed-off-by: Thomas Petazzoni --- arch/arm/mcount-support.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/mcount-support.c b/arch/arm/mcount-support.c index 8d23460b..51331740 100644 --- a/arch/arm/mcount-support.c +++ b/arch/arm/mcount-support.c @@ -3,6 +3,10 @@ #include #include +#ifndef EF_ARM_VFP_FLOAT +# define EF_ARM_VFP_FLOAT 0x400 +#endif + #ifndef EF_ARM_ABI_FLOAT_HARD # define EF_ARM_ABI_FLOAT_HARD EF_ARM_VFP_FLOAT #endif -- 2.30.2 ================================================ FILE: package/uftrace/Config.in ================================================ config BR2_PACKAGE_UFTRACE_ARCH_SUPPORTS bool default y if BR2_ARM_CPU_ARMV6 || BR2_ARM_CPU_ARMV7A default y if BR2_aarch64 default y if BR2_i386 default y if BR2_x86_64 config BR2_PACKAGE_UFTRACE bool "uftrace" depends on BR2_PACKAGE_UFTRACE_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS select BR2_PACKAGE_ARGP_STANDALONE if \ BR2_TOOLCHAIN_USES_UCLIBC || \ BR2_TOOLCHAIN_USES_MUSL help The uftrace tool is to trace and analyze execution of a program written in C/C++. It was heavily inspired by the ftrace framework of the Linux kernel (especially function graph tracer) and supports userspace programs. It supports various kind of commands and filters to help analysis of the program execution and performance. https://github.com/namhyung/uftrace comment "uftrace needs a toolchain w/ threads, dynamic library" depends on BR2_PACKAGE_UFTRACE_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/uftrace/uftrace.hash ================================================ # Locally computed sha256 b8b56d540ea95c3eafe56440d6a998e0a140d53ca2584916b6ca82702795bbd9 uftrace-0.10.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/uftrace/uftrace.mk ================================================ ################################################################################ # # uftrace # ################################################################################ UFTRACE_VERSION = 0.10 UFTRACE_SITE = $(call github,namhyung,uftrace,v$(UFTRACE_VERSION)) UFTRACE_LICENSE = GPL-2.0 UFTRACE_LICENSE_FILES = COPYING UFTRACE_CONFIGURE_OPTS = \ --without-libdw \ --without-libpython \ --without-libluajit \ --without-libncurses \ --without-capstone ifeq ($(BR2_i386),y) UFTRACE_ARCH = i386 else UFTRACE_ARCH = $(BR2_ARCH) endif # Only --without- options are supported. ifeq ($(BR2_PACKAGE_ELFUTILS),y) UFTRACE_DEPENDENCIES += elfutils else UFTRACE_CONFIGURE_OPTS += --without-libelf endif ifeq ($(BR2_INSTALL_LIBSTDCPP),) UFTRACE_CONFIGURE_OPTS += --without-libstdc++ endif UFTRACE_LDFLAGS = $(TARGET_LDFLAGS) ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y) UFTRACE_DEPENDENCIES += argp-standalone UFTRACE_LDFLAGS += -largp endif define UFTRACE_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) \ LDFLAGS="$(UFTRACE_LDFLAGS)" \ ./configure \ --arch=$(UFTRACE_ARCH) \ --prefix=/usr \ $(UFTRACE_CONFIGURE_OPTS) \ -o $(@D)/.config) endef define UFTRACE_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define UFTRACE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/uhd/0001-host-CMakeLists-add-boost-unit_test_framework-requir.patch ================================================ From 881705ec581ab7cd61c8e4fe134db8854a83ec4e Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Tue, 28 Apr 2020 16:56:29 +0200 Subject: [PATCH] host: CMakeLists: add boost unit_test_framework required only when ENABLE_TESTS=ON By default, boost unit_test_framework is always required, but only use when ENABLE_TESTS=ON. This PR suppress unit_test_framework to the default list and append UHD_BOOST_REQUIRED_COMPONENTS when this library is needed [backported from https://github.com/EttusResearch/uhd/pull/341] Signed-off-by: Gwenhael Goavec-Merou --- host/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt index 8f72ece76..a7731ffbd 100644 --- a/host/CMakeLists.txt +++ b/host/CMakeLists.txt @@ -291,10 +291,14 @@ set(UHD_BOOST_REQUIRED_COMPONENTS filesystem program_options system - unit_test_framework serialization thread ) + +if(ENABLE_TESTS) + list(APPEND UHD_BOOST_REQUIRED_COMPONENTS unit_test_framework) +endif(ENABLE_TESTS) + include(UHDBoost) include_directories(${Boost_INCLUDE_DIRS}) -- 2.26.2 ================================================ FILE: package/uhd/0002-host-fix-build-boost-173.patch ================================================ From 13caaf001061db3c01082c4574a5e326c4969ab6 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Thu, 16 Jul 2020 13:07:34 +0200 Subject: [PATCH] boost: Include bind.hpp where used, add BOOST_BIND_GLOBAL_PLACEHOLDERS Consists of two changes: - Grepped for files that use boost::bind, but don't include boost/bind.hpp. Changed all of those to include bind.hpp - Add BOOST_BIND_GLOBAL_PLACEHOLDERS so that Boost doesn't complain about using bind placeholders in the global namespace. Background: boost/bind.hpp is a convenience header that pulls the Boost bind placeholders into the global namespace, but that's deprecated behaviour. For UHD 3.15, we'll keep the deprecated behaviour (modern UHD no longer uses Boost.Bind), so this fixes build failures with modern Boost, and related warnings. Patch retrieved from https://github.com/EttusResearch/uhd/commit/13caaf001061db3c01082c4574a5e326c4969ab6 Signed-off-by: Martin Braun Signed-off-by: Gwenhael Goavec-Merou --- host/cmake/Modules/UHDBoost.cmake | 3 +++ host/examples/network_relay.cpp | 1 + host/examples/rfnoc_rx_to_file.cpp | 1 + host/examples/test_clock_synch.cpp | 1 + host/examples/txrx_loopback_to_file.cpp | 1 + host/lib/rfnoc/dma_fifo_block_ctrl_impl.cpp | 1 + host/lib/rfnoc/legacy_compat.cpp | 1 + host/lib/transport/xport_benchmarker.cpp | 1 + host/lib/usrp/b100/b100_impl.cpp | 1 + host/lib/usrp/b200/b200_iface.cpp | 1 + host/lib/usrp/b200/b200_impl.cpp | 1 + host/lib/usrp/cores/rx_dsp_core_3000.cpp | 1 + host/lib/usrp/cores/tx_dsp_core_3000.cpp | 1 + host/lib/usrp/dboard/db_cbx.cpp | 1 + host/lib/usrp/dboard/db_dbsrx.cpp | 1 + host/lib/usrp/dboard/db_dbsrx2.cpp | 1 + host/lib/usrp/dboard/db_sbx_common.cpp | 1 + host/lib/usrp/dboard/db_sbx_version3.cpp | 1 + host/lib/usrp/dboard/db_sbx_version4.cpp | 1 + host/lib/usrp/dboard/db_tvrx.cpp | 1 + host/lib/usrp/dboard/db_tvrx2.cpp | 1 + host/lib/usrp/dboard/db_twinrx.cpp | 1 + host/lib/usrp/dboard/db_ubx.cpp | 1 + host/lib/usrp/dboard/db_wbx_common.cpp | 1 + host/lib/usrp/dboard/db_wbx_simple.cpp | 1 + host/lib/usrp/dboard/db_wbx_version2.cpp | 1 + host/lib/usrp/dboard/db_wbx_version3.cpp | 1 + host/lib/usrp/dboard/db_wbx_version4.cpp | 1 + host/lib/usrp/dboard/db_xcvr2450.cpp | 1 + host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.cpp | 1 + host/lib/usrp/multi_usrp.cpp | 1 + host/lib/usrp/n230/n230_resource_manager.cpp | 1 + host/lib/usrp/n230/n230_uart.cpp | 1 + host/lib/usrp/usrp1/soft_time_ctrl.cpp | 1 + host/lib/usrp/usrp1/usrp1_impl.cpp | 1 + host/lib/usrp/x300/x300_radio_ctrl_impl.cpp | 1 + host/lib/usrp_clock/octoclock/octoclock_impl.cpp | 1 + host/lib/utils/ihex.cpp | 1 + host/lib/utils/tasks.cpp | 1 + host/utils/uhd_cal_rx_iq_balance.cpp | 1 + host/utils/uhd_cal_tx_dc_offset.cpp | 1 + host/utils/uhd_cal_tx_iq_balance.cpp | 1 + 42 files changed, 44 insertions(+) diff --git a/host/cmake/Modules/UHDBoost.cmake b/host/cmake/Modules/UHDBoost.cmake index 5ebb4acef..e3ee42b50 100644 --- a/host/cmake/Modules/UHDBoost.cmake +++ b/host/cmake/Modules/UHDBoost.cmake @@ -259,6 +259,9 @@ else() # disable Boost's use of std::experimental::string_view # works for Boost 1.67.0 and newer & doesn't hurt older add_definitions(-DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW) + # UHD 3.15 still uses global placeholders (_1, _2, ...) from Boost which + # need to be enabled explicitly for some Boost versions + add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) # Boost 1.70.0's find cmake scripts don't always set the expected # return variables. Replicate the commit that fixes that issue here: diff --git a/host/examples/network_relay.cpp b/host/examples/network_relay.cpp index bf2ac9255..9a9f56eb5 100644 --- a/host/examples/network_relay.cpp +++ b/host/examples/network_relay.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/host/examples/rfnoc_rx_to_file.cpp b/host/examples/rfnoc_rx_to_file.cpp index 5bb9985ae..cbd35cbe8 100644 --- a/host/examples/rfnoc_rx_to_file.cpp +++ b/host/examples/rfnoc_rx_to_file.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include diff --git a/host/examples/test_clock_synch.cpp b/host/examples/test_clock_synch.cpp index 8556063d7..ec071f7c7 100644 --- a/host/examples/test_clock_synch.cpp +++ b/host/examples/test_clock_synch.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/host/examples/txrx_loopback_to_file.cpp b/host/examples/txrx_loopback_to_file.cpp index 271d249f6..a2f0427c9 100644 --- a/host/examples/txrx_loopback_to_file.cpp +++ b/host/examples/txrx_loopback_to_file.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/rfnoc/dma_fifo_block_ctrl_impl.cpp b/host/lib/rfnoc/dma_fifo_block_ctrl_impl.cpp index a80e2ef53..b78635002 100644 --- a/host/lib/rfnoc/dma_fifo_block_ctrl_impl.cpp +++ b/host/lib/rfnoc/dma_fifo_block_ctrl_impl.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/rfnoc/legacy_compat.cpp b/host/lib/rfnoc/legacy_compat.cpp index 91de361df..f93fe871a 100644 --- a/host/lib/rfnoc/legacy_compat.cpp +++ b/host/lib/rfnoc/legacy_compat.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include diff --git a/host/lib/transport/xport_benchmarker.cpp b/host/lib/transport/xport_benchmarker.cpp index 67582ff2c..7abd4c5fd 100644 --- a/host/lib/transport/xport_benchmarker.cpp +++ b/host/lib/transport/xport_benchmarker.cpp @@ -6,6 +6,7 @@ // #include "xport_benchmarker.hpp" +#include #include #include diff --git a/host/lib/usrp/b100/b100_impl.cpp b/host/lib/usrp/b100/b100_impl.cpp index cd4319803..08006ae32 100644 --- a/host/lib/usrp/b100/b100_impl.cpp +++ b/host/lib/usrp/b100/b100_impl.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/usrp/b200/b200_iface.cpp b/host/lib/usrp/b200/b200_iface.cpp index 082be071c..cdf88f69b 100644 --- a/host/lib/usrp/b200/b200_iface.cpp +++ b/host/lib/usrp/b200/b200_iface.cpp @@ -12,6 +12,7 @@ #include #include +#include #include #include #include diff --git a/host/lib/usrp/b200/b200_impl.cpp b/host/lib/usrp/b200/b200_impl.cpp index 1be8c263b..c0f8ee1ac 100644 --- a/host/lib/usrp/b200/b200_impl.cpp +++ b/host/lib/usrp/b200/b200_impl.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/usrp/cores/rx_dsp_core_3000.cpp b/host/lib/usrp/cores/rx_dsp_core_3000.cpp index 46fce3f69..ff7caf105 100644 --- a/host/lib/usrp/cores/rx_dsp_core_3000.cpp +++ b/host/lib/usrp/cores/rx_dsp_core_3000.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include //thread sleep #include diff --git a/host/lib/usrp/cores/tx_dsp_core_3000.cpp b/host/lib/usrp/cores/tx_dsp_core_3000.cpp index be7593841..b76a74b1c 100644 --- a/host/lib/usrp/cores/tx_dsp_core_3000.cpp +++ b/host/lib/usrp/cores/tx_dsp_core_3000.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include //sleep #include diff --git a/host/lib/usrp/dboard/db_cbx.cpp b/host/lib/usrp/dboard/db_cbx.cpp index dd0640d00..f5c7f2399 100644 --- a/host/lib/usrp/dboard/db_cbx.cpp +++ b/host/lib/usrp/dboard/db_cbx.cpp @@ -7,6 +7,7 @@ #include "db_sbx_common.hpp" #include +#include #include using namespace uhd; diff --git a/host/lib/usrp/dboard/db_dbsrx.cpp b/host/lib/usrp/dboard/db_dbsrx.cpp index 587158470..dc82b60f9 100644 --- a/host/lib/usrp/dboard/db_dbsrx.cpp +++ b/host/lib/usrp/dboard/db_dbsrx.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/usrp/dboard/db_dbsrx2.cpp b/host/lib/usrp/dboard/db_dbsrx2.cpp index e2505dfd7..da4da4148 100644 --- a/host/lib/usrp/dboard/db_dbsrx2.cpp +++ b/host/lib/usrp/dboard/db_dbsrx2.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/usrp/dboard/db_sbx_common.cpp b/host/lib/usrp/dboard/db_sbx_common.cpp index b6eaedc3d..95aff96b4 100644 --- a/host/lib/usrp/dboard/db_sbx_common.cpp +++ b/host/lib/usrp/dboard/db_sbx_common.cpp @@ -6,6 +6,7 @@ // #include "db_sbx_common.hpp" +#include using namespace uhd; using namespace uhd::usrp; diff --git a/host/lib/usrp/dboard/db_sbx_version3.cpp b/host/lib/usrp/dboard/db_sbx_version3.cpp index 369315b2e..fb829cf34 100644 --- a/host/lib/usrp/dboard/db_sbx_version3.cpp +++ b/host/lib/usrp/dboard/db_sbx_version3.cpp @@ -9,6 +9,7 @@ #include "db_sbx_common.hpp" #include #include +#include using namespace uhd; using namespace uhd::usrp; diff --git a/host/lib/usrp/dboard/db_sbx_version4.cpp b/host/lib/usrp/dboard/db_sbx_version4.cpp index d1c76287b..e1adebf99 100644 --- a/host/lib/usrp/dboard/db_sbx_version4.cpp +++ b/host/lib/usrp/dboard/db_sbx_version4.cpp @@ -9,6 +9,7 @@ #include "db_sbx_common.hpp" #include #include +#include using namespace uhd; using namespace uhd::usrp; diff --git a/host/lib/usrp/dboard/db_tvrx.cpp b/host/lib/usrp/dboard/db_tvrx.cpp index 8bf377c4d..5fbbf5bee 100644 --- a/host/lib/usrp/dboard/db_tvrx.cpp +++ b/host/lib/usrp/dboard/db_tvrx.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/usrp/dboard/db_tvrx2.cpp b/host/lib/usrp/dboard/db_tvrx2.cpp index 5dba83551..e1623487d 100644 --- a/host/lib/usrp/dboard/db_tvrx2.cpp +++ b/host/lib/usrp/dboard/db_tvrx2.cpp @@ -55,6 +55,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/usrp/dboard/db_twinrx.cpp b/host/lib/usrp/dboard/db_twinrx.cpp index de1cd3f33..aa9da8adf 100644 --- a/host/lib/usrp/dboard/db_twinrx.cpp +++ b/host/lib/usrp/dboard/db_twinrx.cpp @@ -19,6 +19,7 @@ #include #include #include "dboard_ctor_args.hpp" +#include #include #include #include diff --git a/host/lib/usrp/dboard/db_ubx.cpp b/host/lib/usrp/dboard/db_ubx.cpp index 305a69c52..e78f9db75 100644 --- a/host/lib/usrp/dboard/db_ubx.cpp +++ b/host/lib/usrp/dboard/db_ubx.cpp @@ -20,6 +20,7 @@ #include #include +#include #include #include #include diff --git a/host/lib/usrp/dboard/db_wbx_common.cpp b/host/lib/usrp/dboard/db_wbx_common.cpp index 41f323d19..fd7b2481a 100644 --- a/host/lib/usrp/dboard/db_wbx_common.cpp +++ b/host/lib/usrp/dboard/db_wbx_common.cpp @@ -12,6 +12,7 @@ #include #include #include +#include using namespace uhd; using namespace uhd::usrp; diff --git a/host/lib/usrp/dboard/db_wbx_simple.cpp b/host/lib/usrp/dboard/db_wbx_simple.cpp index 390c5c47a..e3a5667c7 100644 --- a/host/lib/usrp/dboard/db_wbx_simple.cpp +++ b/host/lib/usrp/dboard/db_wbx_simple.cpp @@ -17,6 +17,7 @@ #include #include #include +#include using namespace uhd; using namespace uhd::usrp; diff --git a/host/lib/usrp/dboard/db_wbx_version2.cpp b/host/lib/usrp/dboard/db_wbx_version2.cpp index 775ee4467..f1bf7dacc 100644 --- a/host/lib/usrp/dboard/db_wbx_version2.cpp +++ b/host/lib/usrp/dboard/db_wbx_version2.cpp @@ -16,6 +16,7 @@ #include #include +#include #include #include #include diff --git a/host/lib/usrp/dboard/db_wbx_version3.cpp b/host/lib/usrp/dboard/db_wbx_version3.cpp index 41979f8ef..b755d09a2 100644 --- a/host/lib/usrp/dboard/db_wbx_version3.cpp +++ b/host/lib/usrp/dboard/db_wbx_version3.cpp @@ -15,6 +15,7 @@ #include #include +#include #include #include #include diff --git a/host/lib/usrp/dboard/db_wbx_version4.cpp b/host/lib/usrp/dboard/db_wbx_version4.cpp index 8b3d13b37..f2976d3a7 100644 --- a/host/lib/usrp/dboard/db_wbx_version4.cpp +++ b/host/lib/usrp/dboard/db_wbx_version4.cpp @@ -15,6 +15,7 @@ #include #include +#include #include #include #include diff --git a/host/lib/usrp/dboard/db_xcvr2450.cpp b/host/lib/usrp/dboard/db_xcvr2450.cpp index 9e1c9f2b0..8f95dbb1c 100644 --- a/host/lib/usrp/dboard/db_xcvr2450.cpp +++ b/host/lib/usrp/dboard/db_xcvr2450.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.cpp b/host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.cpp index 73851656b..717fa144f 100644 --- a/host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.cpp +++ b/host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/usrp/multi_usrp.cpp b/host/lib/usrp/multi_usrp.cpp index 49ffec698..13cb03cf9 100644 --- a/host/lib/usrp/multi_usrp.cpp +++ b/host/lib/usrp/multi_usrp.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/usrp/n230/n230_resource_manager.cpp b/host/lib/usrp/n230/n230_resource_manager.cpp index 22f8ddedb..df3c9fb15 100644 --- a/host/lib/usrp/n230/n230_resource_manager.cpp +++ b/host/lib/usrp/n230/n230_resource_manager.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/usrp/n230/n230_uart.cpp b/host/lib/usrp/n230/n230_uart.cpp index 8689335c8..26fafde94 100644 --- a/host/lib/usrp/n230/n230_uart.cpp +++ b/host/lib/usrp/n230/n230_uart.cpp @@ -13,6 +13,7 @@ #include #include #include +#include using namespace uhd; using namespace uhd::transport; diff --git a/host/lib/usrp/usrp1/soft_time_ctrl.cpp b/host/lib/usrp/usrp1/soft_time_ctrl.cpp index 7f39caf8a..9a84ee188 100644 --- a/host/lib/usrp/usrp1/soft_time_ctrl.cpp +++ b/host/lib/usrp/usrp1/soft_time_ctrl.cpp @@ -8,6 +8,7 @@ #include "soft_time_ctrl.hpp" #include #include +#include #include #include #include diff --git a/host/lib/usrp/usrp1/usrp1_impl.cpp b/host/lib/usrp/usrp1/usrp1_impl.cpp index 2134f8182..1e83ce3fc 100644 --- a/host/lib/usrp/usrp1/usrp1_impl.cpp +++ b/host/lib/usrp/usrp1/usrp1_impl.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp b/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp index 8d967ae15..de36379ea 100644 --- a/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp +++ b/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/host/lib/usrp_clock/octoclock/octoclock_impl.cpp b/host/lib/usrp_clock/octoclock/octoclock_impl.cpp index f3cf3f4ea..4c11788d2 100644 --- a/host/lib/usrp_clock/octoclock/octoclock_impl.cpp +++ b/host/lib/usrp_clock/octoclock/octoclock_impl.cpp @@ -9,6 +9,7 @@ #include #include +#include #include #include #include diff --git a/host/lib/utils/ihex.cpp b/host/lib/utils/ihex.cpp index 6bb0ba9d4..7fb605627 100644 --- a/host/lib/utils/ihex.cpp +++ b/host/lib/utils/ihex.cpp @@ -7,6 +7,7 @@ #include #include +#include #include #include #include diff --git a/host/lib/utils/tasks.cpp b/host/lib/utils/tasks.cpp index 888a5a8f1..e5195fcf1 100644 --- a/host/lib/utils/tasks.cpp +++ b/host/lib/utils/tasks.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/host/utils/uhd_cal_rx_iq_balance.cpp b/host/utils/uhd_cal_rx_iq_balance.cpp index c68c96173..3f5fa1788 100644 --- a/host/utils/uhd_cal_rx_iq_balance.cpp +++ b/host/utils/uhd_cal_rx_iq_balance.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/host/utils/uhd_cal_tx_dc_offset.cpp b/host/utils/uhd_cal_tx_dc_offset.cpp index f47b5e913..2cb65d3f5 100644 --- a/host/utils/uhd_cal_tx_dc_offset.cpp +++ b/host/utils/uhd_cal_tx_dc_offset.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/host/utils/uhd_cal_tx_iq_balance.cpp b/host/utils/uhd_cal_tx_iq_balance.cpp index 2e7229fd3..ace93462e 100644 --- a/host/utils/uhd_cal_tx_iq_balance.cpp +++ b/host/utils/uhd_cal_tx_iq_balance.cpp @@ -8,6 +8,7 @@ #include "usrp_cal_utils.hpp" #include #include +#include #include #include #include -- 2.26.2 ================================================ FILE: package/uhd/0003-add-RISC-V-endian-detection.patch ================================================ From d4717a38d2287c2f583fefb2a0ed273337a92bb6 Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Mon, 11 Jan 2021 18:18:26 +0100 Subject: [PATCH] msgpack/predef: add riscV support When the target CPU is riscV, msgpack is unable to detect endianness with a list of errors like: uhd/host/lib/deps/rpclib/include/rpc/msgpack/pack.hpp:190:2: error: #error msgpack-c supports only big endian and little endian 190 | #error msgpack-c supports only big endian and little endian | ^~~~~ and with subsequent errors: uhd0/host/lib/deps/rpclib/include/rpc/msgpack/pack.hpp:236:46: error: there are no arguments to 'take8_8' that depend on a template parameter, so a declaration of 'take8_8' must be available [-fpermissive] 236 | char buf[2] = {static_cast(0xccu), take8_8(d)}; | This is due to a missing support for this architecture in msgpack. This patch adapt commit from https://github.com/boostorg/predef [backported from https://github.com/EttusResearch/uhd/pull/400] Signed-off-by: Gwenhael Goavec-Merou --- .../include/rpc/msgpack/predef/architecture.h | 1 + .../rpc/msgpack/predef/architecture/riscv.h | 48 +++++++++++++++++++ .../include/rpc/msgpack/predef/other/endian.h | 3 +- 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/riscv.h diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture.h index 4a0ce2749..1bd998c59 100644 --- a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture.h +++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture.h @@ -18,6 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt) #include #include #include +#include #include #include #include diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/riscv.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/riscv.h new file mode 100644 index 000000000..8b819d77e --- /dev/null +++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/riscv.h @@ -0,0 +1,48 @@ +/* +Copyright Andreas Schwab 2019 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_RISCV_H +#define BOOST_PREDEF_ARCHITECTURE_RISCV_H + +#include +#include + +/* tag::reference[] += `BOOST_ARCH_RISCV` + +http://en.wikipedia.org/wiki/RISC-V[RISC-V] architecture. + +[options="header"] +|=== +| {predef_symbol} | {predef_version} + +| `+__riscv+` | {predef_detection} +|=== +*/ // end::reference[] + +#define BOOST_ARCH_RISCV BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__riscv) +# undef BOOST_ARCH_RISCV +# define BOOST_ARCH_RISCV BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_ARCH_RISCV +# define BOOST_ARCH_RISCV_AVAILABLE +#endif + +#if BOOST_ARCH_RISCV +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#define BOOST_ARCH_RISCV_NAME "RISC-V" + +#endif + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_RISCV,BOOST_ARCH_RISCV_NAME) diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/other/endian.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/other/endian.h index 3f367b3d4..a7c1fb4dc 100644 --- a/host/lib/deps/rpclib/include/rpc/msgpack/predef/other/endian.h +++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/other/endian.h @@ -127,7 +127,8 @@ information and acquired knowledge: defined(__AARCH64EL__) || \ defined(_MIPSEL) || \ defined(__MIPSEL) || \ - defined(__MIPSEL__) + defined(__MIPSEL__) || \ + defined(__riscv) # undef MSGPACK_ENDIAN_LITTLE_BYTE # define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE # endif -- 2.26.2 ================================================ FILE: package/uhd/0004-lib-Fix-missing-includes-in-rpc-hpp.patch ================================================ From 9c4d9d826a6f40f199c526afd5ec168d5d088591 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Fri, 29 Jan 2021 12:23:50 +0100 Subject: [PATCH] lib: Fix missing includes in rpc.hpp [Retrieved from: https://github.com/EttusResearch/uhd/commit/9c4d9d826a6f40f199c526afd5ec168d5d088591] Signed-off-by: Fabrice Fontaine --- host/lib/include/uhdlib/utils/rpc.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/host/lib/include/uhdlib/utils/rpc.hpp b/host/lib/include/uhdlib/utils/rpc.hpp index e87a2ee324..ca89c10547 100644 --- a/host/lib/include/uhdlib/utils/rpc.hpp +++ b/host/lib/include/uhdlib/utils/rpc.hpp @@ -12,7 +12,11 @@ #include #include #include +#include #include +#include +#include +#include namespace { ================================================ FILE: package/uhd/0005-core-remove-boost-math-in-favor-of-std-cmath.patch ================================================ From dc187b5597779b14d0de4087db4aa54752a15d07 Mon Sep 17 00:00:00 2001 From: Michael Dickens Date: Fri, 2 Jul 2021 16:43:41 -0400 Subject: [PATCH] core: remove boost::math in favor of std cmath YA Boost removal!!! Justification --- const int if_freq_sign = boost::math::sign(fe_conn.get_if_freq()); _dsp_freq_offset = if_freq * (-if_freq_sign); // boost::math::sign : 1 if x > 0, -1 if x < 0, and 0 if x is zero. // ==> if if_freq_sign > 0 then * by -1 else +1 (effectively) // std::signbit : true if arg is negative, false otherwise // ==> need 'not' of input argument to invert for same result as prior algorithm double fe_if_freq = fe_conn.get_if_freq(); if (!std::signbit(fe_if_freq)) { if_freq *= -1.0; } --- The above should result in the same algorithm except possibly if fe_if_freq is exactly 0.0 in which case the results might be off by the sign (+0.0 versus -0.0). [Retrieved from: https://github.com/EttusResearch/uhd/commit/dc187b5597779b14d0de4087db4aa54752a15d07] Signed-off-by: Fabrice Fontaine --- host/lib/usrp/cores/rx_dsp_core_3000.cpp | 15 ++++++++------- host/lib/usrp/cores/rx_frontend_core_3000.cpp | 14 ++++++++------ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/host/lib/usrp/cores/rx_dsp_core_3000.cpp b/host/lib/usrp/cores/rx_dsp_core_3000.cpp index 879748fa2..1c15180ae 100644 --- a/host/lib/usrp/cores/rx_dsp_core_3000.cpp +++ b/host/lib/usrp/cores/rx_dsp_core_3000.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include @@ -81,19 +80,21 @@ class rx_dsp_core_3000_impl : public rx_dsp_core_3000 _iface->poke32(REG_DSP_RX_MUX, reg_val); if (fe_conn.get_sampling_mode() == uhd::usrp::fe_connection_t::HETERODYNE) { - // 1. Remember the sign of the IF frequency. - // It will be discarded in the next step - int if_freq_sign = boost::math::sign(fe_conn.get_if_freq()); + // 1. Remember the IF frequency + const double fe_if_freq = fe_conn.get_if_freq(); // 2. Map IF frequency to the range [0, _tick_rate) - double if_freq = std::abs(std::fmod(fe_conn.get_if_freq(), _tick_rate)); - // 3. Map IF frequency to the range [-_tick_rate/2, _tick_rate/2) + double if_freq = std::abs(std::fmod(fe_if_freq, _tick_rate)); + // 3. Map IF frequency to the range [-_tick_rate/2, _tick_rate/2] // This is the aliased frequency if (if_freq > (_tick_rate / 2.0)) { if_freq -= _tick_rate; } // 4. Set DSP offset to spin the signal in the opposite // direction as the aliased frequency - _dsp_freq_offset = if_freq * (-if_freq_sign); + if (!std::signbit(fe_if_freq)) { + if_freq *= -1.0; + } + _dsp_freq_offset = if_freq; } else { _dsp_freq_offset = 0.0; } diff --git a/host/lib/usrp/cores/rx_frontend_core_3000.cpp b/host/lib/usrp/cores/rx_frontend_core_3000.cpp index eef25f27d..b9d908534 100644 --- a/host/lib/usrp/cores/rx_frontend_core_3000.cpp +++ b/host/lib/usrp/cores/rx_frontend_core_3000.cpp @@ -119,19 +119,21 @@ class rx_frontend_core_3000_impl : public rx_frontend_core_3000 UHD_ASSERT_THROW(_adc_rate != 0.0) if (fe_conn.get_sampling_mode() == fe_connection_t::HETERODYNE) { - // 1. Remember the sign of the IF frequency. - // It will be discarded in the next step - const int if_freq_sign = boost::math::sign(fe_conn.get_if_freq()); + // 1. Remember the IF frequency + const double fe_if_freq = fe_conn.get_if_freq(); // 2. Map IF frequency to the range [0, _adc_rate) - double if_freq = std::abs(std::fmod(fe_conn.get_if_freq(), _adc_rate)); - // 3. Map IF frequency to the range [-_adc_rate/2, _adc_rate/2) + double if_freq = std::abs(std::fmod(fe_if_freq, _adc_rate)); + // 3. Map IF frequency to the range [-_adc_rate/2, _adc_rate/2] // This is the aliased frequency if (if_freq > (_adc_rate / 2.0)) { if_freq -= _adc_rate; } // 4. Set DSP offset to spin the signal in the opposite // direction as the aliased frequency - const double cordic_freq = if_freq * (-if_freq_sign); + if (!std::signbit(fe_if_freq)) { + if_freq *= -1.0; + } + const double cordic_freq = if_freq; UHD_ASSERT_THROW(uhd::math::fp_compare::fp_compare_epsilon(4.0) == std::abs(_adc_rate / cordic_freq)); ================================================ FILE: package/uhd/0006-usrp2-Replace-boost-math-iround-math-sign-with-std-l.patch ================================================ From 3796175f32f0cc24c16809d8175d423bc7053de9 Mon Sep 17 00:00:00 2001 From: StefanBruens Date: Wed, 5 May 2021 18:24:58 +0200 Subject: [PATCH] usrp2: Replace boost::math::iround/math::sign with std::lround Instead of multiplying zone with the sign repeatedly just make the zone a signed value. See #437, #438 Signed-off-by: Aaron Rossetto [gwenhael.goavec-merou@trabucayre.com: backport from upstream] Signed-off-by: Gwenhael Goavec-Merou --- host/lib/usrp/usrp2/usrp2_impl.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/host/lib/usrp/usrp2/usrp2_impl.cpp b/host/lib/usrp/usrp2/usrp2_impl.cpp index 1be4c7339..c0719a316 100644 --- a/host/lib/usrp/usrp2/usrp2_impl.cpp +++ b/host/lib/usrp/usrp2/usrp2_impl.cpp @@ -22,6 +22,7 @@ #include #include //used for htonl and ntohl #include +#include using namespace uhd; using namespace uhd::usrp; @@ -844,20 +845,19 @@ double usrp2_impl::set_tx_dsp_freq( _tree->access("/mboards/"+mb+"/tick_rate").get(); //calculate the DAC shift (multiples of rate) - const int sign = boost::math::sign(new_freq); - const int zone = std::min(boost::math::iround(new_freq/tick_rate), 2); - const double dac_shift = sign*zone*tick_rate; + const int zone = std::max(std::min(std::lround(new_freq / tick_rate), 2), -2); + const double dac_shift = zone * tick_rate; new_freq -= dac_shift; //update FPGA DSP target freq UHD_LOG_TRACE("USRP2", "DSP Tuning: Requested " + std::to_string(freq_/1e6) + " MHz, Using " - "Nyquist zone " + std::to_string(sign*zone) + ", leftover DSP tuning: " + "Nyquist zone " + std::to_string(zone) + ", leftover DSP tuning: " + std::to_string(new_freq/1e6) + " MHz."); //set the DAC shift (modulation mode) if (zone == 0) { _mbc[mb].codec->set_tx_mod_mode(0); //no shift } else { - _mbc[mb].codec->set_tx_mod_mode(sign*4/zone); //DAC interp = 4 + _mbc[mb].codec->set_tx_mod_mode(4 / zone); // DAC interp = 4 } return _mbc[mb].tx_dsp->set_freq(new_freq) + dac_shift; //actual freq -- 2.32.0 ================================================ FILE: package/uhd/0007-usrp2-Use-explicit-template-type-for-std-min-T.patch ================================================ From d1c6290fe9c8b01068abfca6f272e2a1e031b9de Mon Sep 17 00:00:00 2001 From: StefanBruens Date: Wed, 5 May 2021 18:49:40 +0200 Subject: [PATCH] usrp2: Use explicit template type for std::min Signed-off-by: Aaron Rossetto [gwenhael.goavec-merou@trabucayre.com: backport from upstream] Signed-off-by: Gwenhael Goavec-Merou --- host/lib/usrp/usrp2/usrp2_impl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/host/lib/usrp/usrp2/usrp2_impl.cpp b/host/lib/usrp/usrp2/usrp2_impl.cpp index 59fd9849c..e82a9fa71 100644 --- a/host/lib/usrp/usrp2/usrp2_impl.cpp +++ b/host/lib/usrp/usrp2/usrp2_impl.cpp @@ -845,7 +845,7 @@ double usrp2_impl::set_tx_dsp_freq( _tree->access("/mboards/"+mb+"/tick_rate").get(); //calculate the DAC shift (multiples of rate) - const int zone = std::max(std::min(std::lround(new_freq / tick_rate), 2), -2); + const int zone = std::max(std::min(std::lround(new_freq / tick_rate), 2), -2); const double dac_shift = zone * tick_rate; new_freq -= dac_shift; //update FPGA DSP target freq UHD_LOG_TRACE("USRP2", -- 2.32.0 ================================================ FILE: package/uhd/Config.in ================================================ comment "uhd needs a toolchain w/ C++, NPTL, wchar, dynamic library" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS comment "uhd needs a toolchain not affected by GCC bug 64735" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 config BR2_PACKAGE_UHD bool "uhd" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic, boost-filesystem depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_USE_MMU # use fork() depends on BR2_USE_WCHAR # boost select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_ATOMIC select BR2_PACKAGE_BOOST_CHRONO select BR2_PACKAGE_BOOST_DATE_TIME select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_MATH select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS select BR2_PACKAGE_BOOST_REGEX select BR2_PACKAGE_BOOST_SERIALIZATION select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_THREAD help Universal Software Radio Peripheral (USRP) Hardware Driver https://kb.etthus.com if BR2_PACKAGE_UHD config BR2_PACKAGE_UHD_B100 bool "b100 support" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_UHD_USB help enable B100 support comment "B100 support needs a toolchain w/ gcc >= 4.9" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_PACKAGE_UHD_B200 bool "b200 support" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_UHD_USB help enable B200 support comment "B200 support needs a toolchain w/ gcc >= 4.9" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_PACKAGE_UHD_E300 bool "E300 support" select BR2_PACKAGE_UHD_MPMD help enable E300 support config BR2_PACKAGE_UHD_E320 bool "E320 support" select BR2_PACKAGE_UHD_MPMD help enable E320 support config BR2_PACKAGE_UHD_EXAMPLES bool "uhd-examples" help Examples config BR2_PACKAGE_UHD_MPMD bool "MPMD support" help enable MPMD support config BR2_PACKAGE_UHD_N230 bool "N230 support" help enable N230 support config BR2_PACKAGE_UHD_N300 bool "N300 support" select BR2_PACKAGE_UHD_MPMD help enable N300 support config BR2_PACKAGE_UHD_N320 bool "N320 support" select BR2_PACKAGE_UHD_MPMD help enable N320 support config BR2_PACKAGE_UHD_OCTOCLOCK bool "OctoClock support" help enable OctoClock support comment "uhd python API needs python3 and a toolchain w/ glibc or musl" depends on !BR2_PACKAGE_PYTHON3 depends on !BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS depends on !(BR2_TOOLCHAIN_USES_GLIBC && BR2_TOOLCHAIN_USES_MUSL) # python-numpy config BR2_PACKAGE_UHD_PYTHON bool "python API support" depends on BR2_PACKAGE_PYTHON3 depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy select BR2_PACKAGE_PYTHON_NUMPY select BR2_PACKAGE_PYTHON_REQUESTS help enable python API support config BR2_PACKAGE_UHD_RFNOC bool "RFNoC support" help enable RFNoC support config BR2_PACKAGE_UHD_USB bool "USB support" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help enable UHD USB support comment "USB support needs a toolchain w/ gcc >= 4.9" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_PACKAGE_UHD_USRP1 bool "USRP1 support" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_UHD_USB help enable USRP1 support comment "USRP1 support needs a toolchain w/ gcc >= 4.9" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_PACKAGE_UHD_USRP2 bool "USRP2 support" help enable USRP2 support comment "uhd utils depends on python API support" depends on !BR2_PACKAGE_UHD_PYTHON config BR2_PACKAGE_UHD_UTILS bool "uhd-utils" depends on BR2_PACKAGE_UHD_PYTHON select BR2_PACKAGE_PYTHON_SIX help uhd-utils config BR2_PACKAGE_UHD_X300 bool "X300 support" help enable X300 support endif ================================================ FILE: package/uhd/uhd.hash ================================================ # Locally calculated: sha256 eed4a77d75faafff56be78985950039f8d9d1eb9fcbd58b8862e481dd49825cd uhd-3.15.0.0.tar.gz sha256 8fc99820c2419d0de6bbbd319ff935d54960b37b716d0b4bb1c75de493f3e1fd LICENSE.md sha256 70bf7e79c8cd73a81f97ce81745ea0719a617eebe299a61868165daeae71fff2 host/LICENSE ================================================ FILE: package/uhd/uhd.mk ================================================ ################################################################################ # # uhd # ################################################################################ UHD_VERSION = 3.15.0.0 UHD_SITE = $(call github,EttusResearch,uhd,v$(UHD_VERSION)) UHD_LICENSE = GPL-3.0+ UHD_LICENSE_FILES = LICENSE.md host/LICENSE UHD_SUPPORTS_IN_SOURCE_BUILD = NO UHD_SUBDIR = host UHD_INSTALL_STAGING = YES UHD_DEPENDENCIES = \ boost \ host-python3 \ host-python-mako UHD_CONF_OPTS = \ -DPYTHON_EXECUTABLE=$(HOST_DIR)/bin/python \ -DRUNTIME_PYTHON_EXECUTABLE=/usr/bin/python \ -DENABLE_C_API=ON \ -DENABLE_DOXYGEN=OFF \ -DENABLE_DPDK=OFF \ -DENABLE_LIBUHD=ON \ -DENABLE_MANUAL=OFF \ -DENABLE_MAN_PAGES=OFF \ -DENABLE_TESTS=OFF # As soon as architecture is ARM, uhd will try to use NEON. # But not all ARM cores have NEON support. # When CPU support NEON -mfpu=neon must be added to CXX_FLAGS ifeq ($(BR2_ARM_CPU_HAS_NEON),y) UHD_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) -mfpu=neon" UHD_CONF_OPTS += -DNEON_SIMD_ENABLE=ON else UHD_CONF_OPTS += -Dhave_mfpu_neon=0 UHD_CONF_OPTS += -DNEON_SIMD_ENABLE=OFF endif ifeq ($(BR2_PACKAGE_ORC),y) UHD_DEPENDENCIES += orc endif ifeq ($(BR2_PACKAGE_UHD_B100),y) UHD_CONF_OPTS += -DENABLE_B100=ON else UHD_CONF_OPTS += -DENABLE_B100=OFF endif ifeq ($(BR2_PACKAGE_UHD_B200),y) UHD_CONF_OPTS += -DENABLE_B200=ON else UHD_CONF_OPTS += -DENABLE_B200=OFF endif ifeq ($(BR2_PACKAGE_UHD_E300),y) UHD_CONF_OPTS += -DENABLE_E300=ON else UHD_CONF_OPTS += -DENABLE_E300=OFF endif ifeq ($(BR2_PACKAGE_UHD_E320),y) UHD_CONF_OPTS += -DENABLE_E320=ON else UHD_CONF_OPTS += -DENABLE_E320=OFF endif ifeq ($(BR2_PACKAGE_UHD_EXAMPLES),y) UHD_CONF_OPTS += -DENABLE_EXAMPLES=ON else UHD_CONF_OPTS += -DENABLE_EXAMPLES=OFF endif ifeq ($(BR2_PACKAGE_UHD_MPMD),y) UHD_CONF_OPTS += -DENABLE_MPMD=ON else UHD_CONF_OPTS += -DENABLE_MPMD=OFF endif ifeq ($(BR2_PACKAGE_UHD_N230),y) UHD_CONF_OPTS += -DENABLE_N230=ON else UHD_CONF_OPTS += -DENABLE_N230=OFF endif ifeq ($(BR2_PACKAGE_UHD_N300),y) UHD_CONF_OPTS += -DENABLE_N300=ON else UHD_CONF_OPTS += -DENABLE_N300=OFF endif ifeq ($(BR2_PACKAGE_UHD_N320),y) UHD_CONF_OPTS += -DENABLE_N320=ON else UHD_CONF_OPTS += -DENABLE_N320=OFF endif ifeq ($(BR2_PACKAGE_UHD_OCTOCLOCK),y) UHD_CONF_OPTS += -DENABLE_OCTOCLOCK=ON else UHD_CONF_OPTS += -DENABLE_OCTOCLOCK=OFF endif ifeq ($(BR2_PACKAGE_UHD_RFNOC),y) UHD_CONF_OPTS += -DENABLE_RFNOC=ON else UHD_CONF_OPTS += -DENABLE_RFNOC=OFF endif ifeq ($(BR2_PACKAGE_UHD_PYTHON),y) UHD_DEPENDENCIES += host-python-numpy host-python-requests \ python-numpy python-requests UHD_CONF_OPTS += -DENABLE_PYTHON_API=ON else UHD_CONF_OPTS += -DENABLE_PYTHON_API=OFF endif ifeq ($(BR2_PACKAGE_UHD_USB),y) UHD_DEPENDENCIES += libusb UHD_CONF_OPTS += -DENABLE_USB=ON else UHD_CONF_OPTS += -DENABLE_USB=OFF endif ifeq ($(BR2_PACKAGE_UHD_USRP1),y) UHD_CONF_OPTS += -DENABLE_USRP1=ON else UHD_CONF_OPTS += -DENABLE_USRP1=OFF endif ifeq ($(BR2_PACKAGE_UHD_USRP2),y) UHD_CONF_OPTS += -DENABLE_USRP2=ON else UHD_CONF_OPTS += -DENABLE_USRP2=OFF endif ifeq ($(BR2_PACKAGE_UHD_UTILS),y) UHD_DEPENDENCIES += python-six UHD_CONF_OPTS += -DENABLE_UTILS=ON else UHD_CONF_OPTS += -DENABLE_UTILS=OFF endif ifeq ($(BR2_PACKAGE_UHD_X300),y) UHD_CONF_OPTS += -DENABLE_X300=ON else UHD_CONF_OPTS += -DENABLE_X300=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/uhttpd/0001-Remove-Werror.patch ================================================ From ac52380eeca27e1e2e7eb5fb9d39059dbe58b919 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 7 Dec 2016 22:48:27 +0100 Subject: [PATCH] Remove -Werror -Werror might cause build failures with newer versions of gcc or C libraries, not tested by upstream, for example: # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" ^ cc1: all warnings being treated as errors Signed-off-by: Thomas Petazzoni --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ae8ba4..825342f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ PROJECT(uhttpd C) INCLUDE (CheckFunctionExists) SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") -ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64 -Os -Wall -Werror -Wmissing-declarations --std=gnu99 -g3) +ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64 -Os -Wall -Wmissing-declarations --std=gnu99 -g3) OPTION(TLS_SUPPORT "TLS support" ON) OPTION(LUA_SUPPORT "Lua support" ON) -- 2.7.4 ================================================ FILE: package/uhttpd/0002-Fix-TCP_FASTOPEN-related-compile-error.patch ================================================ From adbab70d3602d77736781be344cfdc5508cb0600 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Mon, 3 Apr 2017 19:22:30 +0200 Subject: [PATCH] Fix TCP_FASTOPEN related compile error. Signed-off-by: Peter Seiderer --- listen.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/listen.c b/listen.c index 2a54888..4dabe34 100644 --- a/listen.c +++ b/listen.c @@ -96,6 +96,12 @@ static void listener_cb(struct uloop_fd *fd, unsigned int events) uh_block_listener(l); } +#ifdef linux +#ifndef TCP_FASTOPEN +#define TCP_FASTOPEN 23 +#endif +#endif + void uh_setup_listeners(void) { struct listener *l; -- 2.11.0 ================================================ FILE: package/uhttpd/Config.in ================================================ config BR2_PACKAGE_UHTTPD bool "uhttpd" depends on !BR2_STATIC_LIBS # dlopen() depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBUBOX select BR2_PACKAGE_JSON_C help uHTTPd is a tiny single threaded HTTP server with TLS, CGI and Lua support. It is intended as a drop-in replacement for the Busybox HTTP daemon. https://wiki.openwrt.org/doc/howto/http.uhttpd comment "uhttpd needs a toolchain w/ dynamic library" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/uhttpd/uhttpd.hash ================================================ # Locally calculated sha256 9ae10aaf6642b214e0a4ca47d6fd9693ac4b88d61e7d6446f0f0feb3a28ca510 uhttpd-15346de8d3ba422002496526ee24c62a3601ab8c-br1.tar.gz sha256 ce1803f83f776cc88661e303fede0e5ff52faf1d9f74508fadbecf7705b4c84d uhttpd.h ================================================ FILE: package/uhttpd/uhttpd.mk ================================================ ################################################################################ # # uhttpd # ################################################################################ UHTTPD_VERSION = 15346de8d3ba422002496526ee24c62a3601ab8c UHTTPD_SITE = https://git.openwrt.org/project/uhttpd.git UHTTPD_SITE_METHOD = git UHTTPD_LICENSE = ISC UHTTPD_LICENSE_FILES = uhttpd.h UHTTPD_DEPENDENCIES = libubox json-c ifeq ($(BR2_PACKAGE_LUA_5_1),y) UHTTPD_DEPENDENCIES += lua UHTTPD_CONF_OPTS += -DLUA_SUPPORT=ON else UHTTPD_CONF_OPTS += -DLUA_SUPPORT=OFF endif ifeq ($(BR2_PACKAGE_USTREAM_SSL),y) UHTTPD_DEPENDENCIES += ustream-ssl UHTTPD_CONF_OPTS += -DTLS_SUPPORT=ON else UHTTPD_CONF_OPTS += -DTLS_SUPPORT=OFF endif ifeq ($(BR2_PACKAGE_UBUS),y) UHTTPD_DEPENDENCIES += ubus UHTTPD_CONF_OPTS += -DUBUS_SUPPORT=ON else UHTTPD_CONF_OPTS += -DUBUS_SUPPORT=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/uhubctl/Config.in ================================================ config BR2_PACKAGE_UHUBCTL bool "uhubctl" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help Control USB power per-port on smart USB hubs. https://github.com/mvp/uhubctl comment "uhubctl needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/uhubctl/uhubctl.hash ================================================ # Locally computed sha256 391f24fd1f89cacce801df38ecc289b34c3627bc08ee69eec515af7e1a283d97 uhubctl-2.4.0.tar.gz sha256 2d3aa0737e8db9dfd710f9a282b446cb7b15b2b3eecac383f0c45c64d736eea0 LICENSE sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/uhubctl/uhubctl.mk ================================================ ################################################################################ # # uhubctl # ################################################################################ UHUBCTL_VERSION = 2.4.0 UHUBCTL_SITE = $(call github,mvp,uhubctl,v$(UHUBCTL_VERSION)) UHUBCTL_LICENSE = GPL-2.0 UHUBCTL_LICENSE_FILES = LICENSE COPYING UHUBCTL_DEPENDENCIES = libusb define UHUBCTL_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) GIT_VERSION=v$(UHUBCTL_VERSION) -C $(@D) endef define UHUBCTL_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) DESTDIR=$(TARGET_DIR) \ $(MAKE) -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/ulogd/0001-ulogd-fix-build-with-musl-libc.patch ================================================ From 675e762091380590f78ff07a94a25caa459b786b Mon Sep 17 00:00:00 2001 From: Cameron Norman Date: Sat, 27 Oct 2018 13:05:45 -0700 Subject: ulogd: fix build with musl libc The attached patch fixes building ulogd2 with musl libc. It is being used on Void Linux right now. Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1278 Signed-off-by: Pablo Neira Ayuso Signed-off-by: Fabrice Fontaine [Retrrieved from: https://git.netfilter.org/ulogd2/commit/?id=675e762091380590f78ff07a94a25caa459b786b] --- src/ulogd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ulogd.c b/src/ulogd.c index b8bc57c..9cd64e8 100644 --- a/src/ulogd.c +++ b/src/ulogd.c @@ -65,6 +65,7 @@ #include #include #include +#include #include #include #ifdef DEBUG -- cgit v1.2.1 ================================================ FILE: package/ulogd/Config.in ================================================ config BR2_PACKAGE_ULOGD bool "ulogd" depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU select BR2_PACKAGE_LIBMNL select BR2_PACKAGE_LIBNETFILTER_ACCT select BR2_PACKAGE_LIBNETFILTER_CONNTRACK select BR2_PACKAGE_LIBNETFILTER_LOG select BR2_PACKAGE_LIBNFNETLINK help ulogd is a userspace logging daemon for netfilter/iptables related logging. http://www.netfilter.org/projects/ulogd/ comment "ulogd needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS depends on BR2_USE_MMU ================================================ FILE: package/ulogd/ulogd.hash ================================================ # From ftp://ftp.netfilter.org/pub/ulogd/ulogd-2.0.7.tar.bz2.{md5sum,sha1sum} md5 2bb2868cf51acbb90c35763c9f995f31 ulogd-2.0.7.tar.bz2 sha1 f2d90469e2842e2bfbe19c55cf6d56ac107aa4b9 ulogd-2.0.7.tar.bz2 # Locally calculated sha256 990a05494d9c16029ba0a83f3b7294fc05c756546b8d60d1c1572dc25249a92b ulogd-2.0.7.tar.bz2 sha256 b8a2f73f743dc1a51aff23f1aacbca4b868564db52496fa3c0caba755bfd1eaf COPYING ================================================ FILE: package/ulogd/ulogd.mk ================================================ ################################################################################ # # ulogd # ################################################################################ ULOGD_VERSION = 2.0.7 ULOGD_SOURCE = ulogd-$(ULOGD_VERSION).tar.bz2 ULOGD_SITE = http://www.netfilter.org/projects/ulogd/files ULOGD_CONF_OPTS = --without-dbi ULOGD_DEPENDENCIES = host-pkgconf \ libmnl libnetfilter_acct libnetfilter_conntrack libnetfilter_log \ libnfnetlink ULOGD_LICENSE = GPL-2.0 ULOGD_LICENSE_FILES = COPYING ULOGD_SELINUX_MODULES = ulogd # DB backends need threads ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) ifeq ($(BR2_PACKAGE_MYSQL),y) ULOGD_CONF_OPTS += --with-mysql=$(STAGING_DIR)/usr ULOGD_DEPENDENCIES += mysql else ULOGD_CONF_OPTS += --without-mysql endif ifeq ($(BR2_PACKAGE_POSTGRESQL),y) ULOGD_CONF_OPTS += --with-pgsql ULOGD_DEPENDENCIES += postgresql else ULOGD_CONF_OPTS += --without-pgsql endif ifeq ($(BR2_PACKAGE_SQLITE),y) ULOGD_CONF_OPTS += --with-sqlite ULOGD_DEPENDENCIES += sqlite else ULOGD_CONF_OPTS += --without-sqlite endif else ULOGD_CONF_OPTS += --without-mysql --without-pgsql --without-sqlite endif ifeq ($(BR2_PACKAGE_LIBPCAP),y) ULOGD_CONF_OPTS += --with-pcap ULOGD_DEPENDENCIES += libpcap else ULOGD_CONF_OPTS += --without-pcap endif ifeq ($(BR2_PACKAGE_JANSSON),y) ULOGD_CONF_OPTS += --with-jansson ULOGD_DEPENDENCIES += jansson else ULOGD_CONF_OPTS += --without-jansson endif $(eval $(autotools-package)) ================================================ FILE: package/umtprd/Config.in ================================================ config BR2_PACKAGE_UMTPRD bool "umtprd" depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 help Lightweight USB MTP responder daemon for GNU/Linux https://github.com/viveris/uMTP-Responder comment "umtprd needs a toolchain w/ threads, headers >= 3.15" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 ================================================ FILE: package/umtprd/umtprd.hash ================================================ # Locally computed sha256 cce45c7d3df0022fc013c79de21b1f11b1027d090aeb628669f08b0c20d2afdd umtprd-1.3.10.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE ================================================ FILE: package/umtprd/umtprd.mk ================================================ ################################################################################ # # umtprd # ################################################################################ UMTPRD_VERSION = 1.3.10 UMTPRD_SITE = https://github.com/viveris/uMTP-Responder/archive UMTPRD_LICENSE = GPL-3.0+ UMTPRD_LICENSE_FILES = LICENSE define UMTPRD_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) endef define UMTPRD_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/umtprd $(TARGET_DIR)/usr/sbin/umtprd endef $(eval $(generic-package)) ================================================ FILE: package/unbound/Config.in ================================================ config BR2_PACKAGE_UNBOUND bool "unbound" depends on !BR2_STATIC_LIBS select BR2_PACKAGE_EXPAT select BR2_PACKAGE_LIBEVENT select BR2_PACKAGE_OPENSSL help Unbound is a validating, recursive, and caching DNS resolver. It supports DNSSEC, QNAME minimisation, DNS-over-TLS and DNSCrypt. https://www.unbound.net if BR2_PACKAGE_UNBOUND config BR2_PACKAGE_UNBOUND_DNSCRYPT bool "enable DNSCrypt" select BR2_PACKAGE_LIBSODIUM help DNSCrypt wraps unmodified DNS queries between a client and a DNS resolver. Default port used is 443 and like with normal unencrypted DNS, it uses UDP first and falling back to TCP if response too large. There is also DNS-over-TLS, a TCP only version of proposed standard for DNS encryption (RFC 7858). Default port for DNS-over-TLS is 853 and Unbound has built-in support for it. https://tools.ietf.org/html/rfc7858 Note: Neither DNSCrypt or DNS-over-TLS encrypt the SNI. Here is some suggestions how to handle SNI encryption: https://tools.ietf.org/html/draft-ietf-tls-sni-encryption-00 endif comment "unbound needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/unbound/S70unbound ================================================ #!/bin/sh DAEMON="unbound" PIDFILE="/var/run/$DAEMON.pid" UNBOUND_ARGS="" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" start() { printf 'Starting %s: ' "$DAEMON" start-stop-daemon -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- $UNBOUND_ARGS status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" } stop() { printf 'Stopping %s: ' "$DAEMON" start-stop-daemon -K -q -p "$PIDFILE" status=$? if [ "$status" -eq 0 ]; then rm -f "$PIDFILE" echo "OK" else echo "FAIL" fi return "$status" } restart() { stop sleep 1 start } case "$1" in start|stop|restart) "$1";; reload) # Restart, since there is no true "reload" feature. restart;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/unbound/unbound.hash ================================================ # From https://nlnetlabs.nl/downloads/unbound/unbound-1.13.2.tar.gz.sha256 sha256 0a13b547f3b92a026b5ebd0423f54c991e5718037fd9f72445817f6a040e1a83 unbound-1.13.2.tar.gz # Locally calculated sha256 8eb9a16cbfb8703090bbfa3a2028fd46bb351509a2f90dc1001e51fbe6fd45db LICENSE ================================================ FILE: package/unbound/unbound.mk ================================================ ################################################################################ # # unbound # ################################################################################ UNBOUND_VERSION = 1.13.2 UNBOUND_SITE = https://www.unbound.net/downloads UNBOUND_DEPENDENCIES = host-pkgconf expat libevent openssl UNBOUND_LICENSE = BSD-3-Clause UNBOUND_LICENSE_FILES = LICENSE UNBOUND_CPE_ID_VENDOR = nlnetlabs UNBOUND_CONF_OPTS = \ --disable-rpath \ --disable-debug \ --with-conf-file=/etc/unbound/unbound.conf \ --with-pidfile=/var/run/unbound.pid \ --with-rootkey-file=/etc/unbound/root.key \ --enable-tfo-server \ --with-libexpat=$(STAGING_DIR)/usr \ --with-ssl=$(STAGING_DIR)/usr # uClibc-ng does not have MSG_FASTOPEN # so TCP Fast Open client mode disabled for it ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) UNBOUND_CONF_OPTS += --disable-tfo-client else UNBOUND_CONF_OPTS += --enable-tfo-client endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),y) UNBOUND_CONF_OPTS += --with-pthreads else UNBOUND_CONF_OPTS += --without-pthreads endif ifeq ($(BR2_GCC_ENABLE_LTO),y) UNBOUND_CONF_OPTS += --enable-flto else UNBOUND_CONF_OPTS += --disable-flto endif ifeq ($(BR2_PACKAGE_UNBOUND_DNSCRYPT),y) UNBOUND_CONF_OPTS += --enable-dnscrypt UNBOUND_DEPENDENCIES += libsodium else UNBOUND_CONF_OPTS += --disable-dnscrypt endif define UNBOUND_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/unbound/S70unbound \ $(TARGET_DIR)/etc/init.d/S70unbound endef $(eval $(autotools-package)) ================================================ FILE: package/unclutter-xfixes/Config.in ================================================ config BR2_PACKAGE_UNCLUTTER_XFIXES bool "unclutter-xfixes" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_LIBEV select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXFIXES select BR2_PACKAGE_XLIB_LIBXI help Remove idle cursor image from screen. A rewrite of unclutter using the x11-xfixes extension. https://github.com/Airblader/unclutter-xfixes ================================================ FILE: package/unclutter-xfixes/unclutter-xfixes.hash ================================================ # locally calculated sha256 35c75ad24be989dd6708db1d9ce9b2a2f814b80638c0633cdb075c6df090ed11 unclutter-xfixes-1.5.tar.gz sha256 33e94693849b57fdb34987c95fd0076b4aa4b70fcd9a3152313d00b86a3f7bf7 LICENSE ================================================ FILE: package/unclutter-xfixes/unclutter-xfixes.mk ================================================ ################################################################################ # # unclutter-xfixes # ################################################################################ UNCLUTTER_XFIXES_VERSION = 1.5 UNCLUTTER_XFIXES_SITE = $(call github,Airblader,unclutter-xfixes,v$(UNCLUTTER_XFIXES_VERSION)) UNCLUTTER_XFIXES_LICENSE = MIT UNCLUTTER_XFIXES_LICENSE_FILES = LICENSE UNCLUTTER_XFIXES_DEPENDENCIES = libev xlib_libX11 xlib_libXfixes xlib_libXi host-pkgconf define UNCLUTTER_XFIXES_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \ $(MAKE) -C $(@D) unclutter CC="$(TARGET_CC)" endef define UNCLUTTER_XFIXES_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/unclutter $(TARGET_DIR)/usr/bin/unclutter endef $(eval $(generic-package)) ================================================ FILE: package/unionfs/Config.in ================================================ config BR2_PACKAGE_UNIONFS bool "unionfs (FUSE)" depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse depends on BR2_USE_MMU # libfuse depends on !BR2_STATIC_LIBS # libfuse select BR2_PACKAGE_LIBFUSE help A userspace unionfs implementation. https://github.com/rpodgorny/unionfs-fuse comment "unionfs needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/unionfs/unionfs.hash ================================================ # Locally computed sha256 f56a5579d670e18e0667700bc599acbc0b8217ca1f76b2adb3dad7d2953c4049 LICENSE sha256 c705072a33a18cbc73ffe799331d43410b6deef5d6f2042038f8fd3ab17b6e2e unionfs-2.1.tar.gz ================================================ FILE: package/unionfs/unionfs.mk ================================================ ################################################################################ # # unionfs # ################################################################################ UNIONFS_VERSION = 2.1 UNIONFS_SITE = $(call github,rpodgorny,unionfs-fuse,v$(UNIONFS_VERSION)) UNIONFS_DEPENDENCIES = libfuse host-pkgconf UNIONFS_LICENSE = BSD-3-Clause UNIONFS_LICENSE_FILES = LICENSE $(eval $(cmake-package)) ================================================ FILE: package/unixodbc/Config.in ================================================ config BR2_PACKAGE_UNIXODBC bool "unixodbc" depends on !BR2_STATIC_LIBS # dlopen() help The unixODBC Project goals are to develop and promote unixODBC to be the definitive standard for ODBC on non MS Windows platforms. http://www.unixodbc.org comment "unixodbc needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/unixodbc/unixodbc.hash ================================================ # From ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.9.tar.gz.md5 md5 06f76e034bb41df5233554abe961a16f unixODBC-2.3.9.tar.gz # Locally computed sha256 52833eac3d681c8b0c9a5a65f2ebd745b3a964f208fc748f977e44015a31b207 unixODBC-2.3.9.tar.gz sha256 a6b9aa1e9bfade121164c06fd975e9b913a8e38bf33d25ff967dfa3ed07d12f8 COPYING sha256 1e594f4c7fd6d099eca4bd1340b39d871ce0298331d8ebd4b68935548ee45cf4 exe/COPYING ================================================ FILE: package/unixodbc/unixodbc.mk ================================================ ################################################################################ # # unixodbc # ################################################################################ UNIXODBC_VERSION = 2.3.9 UNIXODBC_SOURCE = unixODBC-$(UNIXODBC_VERSION).tar.gz UNIXODBC_SITE = ftp://ftp.unixodbc.org/pub/unixODBC UNIXODBC_INSTALL_STAGING = YES UNIXODBC_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (programs) UNIXODBC_LICENSE_FILES = COPYING exe/COPYING UNIXODBC_CPE_ID_VENDOR = unixodbc UNIXODBC_CONF_OPTS = --enable-drivers --enable-driver-conf ifeq ($(BR2_PACKAGE_LIBEDIT),y) UNIXODBC_CONF_OPTS += --enable-editline UNIXODBC_DEPENDENCIES += libedit else UNIXODBC_CONF_OPTS += --disable-editline endif ifeq ($(BR2_PACKAGE_LIBICONV),y) UNIXODBC_CONF_OPTS += --enable-iconv UNIXODBC_DEPENDENCIES += libiconv else UNIXODBC_CONF_OPTS += --disable-iconv endif ifeq ($(BR2_PACKAGE_LIBTOOL),y) UNIXODBC_CONF_OPTS += --without-included-ltdl UNIXODBC_DEPENDENCIES += libtool else UNIXODBC_CONF_OPTS += --with-included-ltdl endif ifeq ($(BR2_PACKAGE_READLINE),y) UNIXODBC_CONF_OPTS += --enable-readline UNIXODBC_DEPENDENCIES += readline else UNIXODBC_CONF_OPTS += --disable-readline endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) UNIXODBC_CONF_OPTS += --enable-threads else UNIXODBC_CONF_OPTS += --disable-threads endif $(eval $(autotools-package)) ================================================ FILE: package/unrar/Config.in ================================================ config BR2_PACKAGE_UNRAR bool "unrar" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR help RAR file uncompressor. http://www.rarlab.com/rar_add.htm comment "unrar needs a toolchain w/ C++, wchar, threads" depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP \ || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/unrar/unrar.hash ================================================ # Locally computed: sha256 3d010d14223e0c7a385ed740e8f046edcbe885e5c22c5ad5733d009596865300 unrarsrc-5.9.4.tar.gz sha256 6ecc1687808b7d66b24f874755abfed7464d9751ed0001cd4e8e5d9bf397ff8a license.txt ================================================ FILE: package/unrar/unrar.mk ================================================ ################################################################################ # # unrar # ################################################################################ UNRAR_VERSION = 5.9.4 UNRAR_SOURCE = unrarsrc-$(UNRAR_VERSION).tar.gz UNRAR_SITE = https://www.rarlab.com/rar UNRAR_LICENSE = unrar UNRAR_LICENSE_FILES = license.txt UNRAR_CPE_ID_VENDOR = rarlab define UNRAR_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CXX="$(TARGET_CXX)" STRIP="/bin/true" \ CXXFLAGS="$(TARGET_CXXFLAGS) -pthread" \ LDFLAGS="$(TARGET_LDFLAGS) -pthread" -C $(@D) endef define UNRAR_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR)/usr install endef $(eval $(generic-package)) ================================================ FILE: package/unscd/Config.in ================================================ config BR2_PACKAGE_UNSCD bool "unscd" depends on !BR2_RISCV_32 depends on BR2_TOOLCHAIN_USES_GLIBC help Micro Name Service Caching Daemon A daemon which handles passwd, group and host lookups for running programs and caches the results for the next query. You only need this package if you are using slow Name Services like LDAP, NIS or NIS+. This particular NSCD is a complete rewrite of the GNU glibc nscd which is a single threaded server process which offloads all NSS lookups to worker children; cache hits are handled by the parent, and only cache misses start worker children, making the parent immune to resource leaks, hangs, and crashes in NSS libraries. It should mostly be a drop-in replacement for existing installs using nscd. http://busybox.net/~vda/unscd comment "unscd needs a glibc toolchain" depends on !BR2_RISCV_32 depends on !BR2_TOOLCHAIN_USES_GLIBC ================================================ FILE: package/unscd/S46unscd ================================================ #!/bin/sh NAME="nscd" DAEMON="/usr/sbin/${NAME}" PID_F="/var/run/nscd/${NAME}.pid" case "$1" in start) printf "Starting ${NAME}: " start-stop-daemon -S -p ${PID_F} -x ${DAEMON} [ $? -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 ================================================ FILE: package/unscd/nscd.conf ================================================ # /etc/nscd.conf # # An example Name Service Cache config file. This file is needed by nscd. # server-user unscd debug-level 0 enable-cache passwd yes positive-time-to-live passwd 600 negative-time-to-live passwd 20 suggested-size passwd 1001 check-files passwd yes enable-cache group yes positive-time-to-live group 3600 negative-time-to-live group 60 suggested-size group 1001 check-files group yes # hosts caching is broken with gethostby* calls, hence is now disabled # by default. Specifically, the caching does not obey DNS TTLs, and # thus could lead to problems if the positive-time-to-live is # significantly larger than the actual TTL. # # You should really use a caching nameserver instead of nscd for this # sort of request. However, you can easily re-enable this by default. enable-cache hosts no positive-time-to-live hosts 3600 negative-time-to-live hosts 20 suggested-size hosts 1001 check-files hosts yes # unscd does not support services caching ================================================ FILE: package/unscd/unscd.hash ================================================ # Locally computed: sha256 90e12c71732474cac4d055bf9d104e599178b4e1ecb6d3b8c556eaa11f8f6447 nscd-0.54.c ================================================ FILE: package/unscd/unscd.mk ================================================ ################################################################################ # # unscd # ################################################################################ UNSCD_VERSION = 0.54 UNSCD_SOURCE = nscd-$(UNSCD_VERSION).c UNSCD_SITE = http://busybox.net/~vda/unscd UNSCD_LICENSE = GPL-2.0 UNSCD_LICENSE_FILES = $(UNSCD_SOURCE) define UNSCD_EXTRACT_CMDS cp $(UNSCD_DL_DIR)/$($(PKG)_SOURCE) $(@D)/ endef define UNSCD_BUILD_CMDS cd $(@D); \ $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o nscd $(UNSCD_SOURCE) endef define UNSCD_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -D $(@D)/nscd $(TARGET_DIR)/usr/sbin/nscd $(INSTALL) -m 600 -D package/unscd/nscd.conf $(TARGET_DIR)/etc/nscd.conf endef define UNSCD_INSTALL_INIT_SYSV $(INSTALL) -m 755 -D package/unscd/S46unscd \ $(TARGET_DIR)/etc/init.d/S46unscd endef define UNSCD_USERS unscd -1 unscd -1 * - - - unscd user endef $(eval $(generic-package)) ================================================ FILE: package/unzip/0001-Add-a-CMakeFile.txt-to-ease-cross-compilation.patch ================================================ From 992a497e9c5c421d3931e02a01e9d7c159f27135 Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Thu, 26 Nov 2015 12:49:10 +0100 Subject: [PATCH] Add a CMakeFile.txt to ease cross-compilation Info-ZIP's UnZip 6.0 has a complex, hand-crafted Makefile with a companion configure script which try to support an extremely wide range of UNIX-like operating systems. The result is an overly complex mass of code that does not support cross-compilation in several ways. Zip 3.0 has a similar build system, and has as many as 6 patches in Buildroot to cross-compile [0]. UnZip fails at building even with these patches adapted and a few more on top of them. Instead of tweaking and fixing a huge and complex build system, skip it entirely and add a pretty simple CMakeLists.txt that cross-compiles smoothly using CMake. It also preserves all of the Buildroot-provided build options and flags as the original Makefile does. [0] http://git.buildroot.net/buildroot/tree/package/infozip?id=2015.11-rc3 Signed-off-by: Luca Ceresoli --- CMakeLists.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..27951b4 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 2.8) +INCLUDE(CheckFunctionExists) + +project(unzip C) + +CHECK_FUNCTION_EXISTS(lchmod HAVE_LCHMOD) +if(NOT HAVE_LCHMOD) +add_definitions("-DNO_LCHMOD") +endif() + +set(UNZIP_SOURCES unzip.c crc32.c crypt.c envargs.c explode.c + extract.c fileio.c globals.c inflate.c list.c match.c process.c + ttyio.c ubz2err.c unreduce.c unshrink.c zipinfo.c unix/unix.c) + +include_directories(.) +add_executable(unzip ${UNZIP_SOURCES}) +install(TARGETS unzip DESTINATION bin) -- 1.9.1 ================================================ FILE: package/unzip/Config.in ================================================ 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 compatible both with PKWARE's PKZIP and PKUNZIP utilities for MS-DOS and with Info-ZIP's own Zip program, our primary objectives have been portability and non-MSDOS functionality. http://www.info-zip.org/UnZip.html ================================================ FILE: package/unzip/unzip.hash ================================================ # From https://snapshot.debian.org/archive/debian/20210110T204103Z/pool/main/u/unzip/unzip_6.0-26.dsc sha256 036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37 unzip_6.0.orig.tar.gz sha256 88cb7c0f1fd13252b662dfd224b64b352f9e75cd86389557fcb23fa6d2638599 unzip_6.0-26.debian.tar.xz # Locally computed: sha256 7469b81d5d29ac4fd670f7c86ba0cb9fa34f137a2d4d5198437d92ddf918984b LICENSE ================================================ FILE: package/unzip/unzip.mk ================================================ ################################################################################ # # unzip # ################################################################################ UNZIP_VERSION = 6.0 UNZIP_SOURCE = unzip_$(UNZIP_VERSION).orig.tar.gz UNZIP_PATCH = unzip_$(UNZIP_VERSION)-26.debian.tar.xz UNZIP_SITE = https://snapshot.debian.org/archive/debian/20210110T204103Z/pool/main/u/unzip UNZIP_LICENSE = Info-ZIP UNZIP_LICENSE_FILES = LICENSE UNZIP_CPE_ID_VENDOR = unzip_project # unzip_$(UNZIP_VERSION)-26.debian.tar.xz has patches to fix: UNZIP_IGNORE_CVES = \ CVE-2014-8139 \ CVE-2014-8140 \ CVE-2014-8141 \ CVE-2014-9636 \ CVE-2014-9913 \ CVE-2015-7696 \ CVE-2015-7697 \ CVE-2016-9844 \ CVE-2018-18384 \ CVE-2018-1000035 \ CVE-2019-13232 $(eval $(cmake-package)) ================================================ FILE: package/upmpdcli/Config.in ================================================ config BR2_PACKAGE_UPMPDCLI bool "upmpdcli" depends on BR2_USE_MMU # fork() depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11, libupnpp select BR2_PACKAGE_JSONCPP select BR2_PACKAGE_LIBMICROHTTPD 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 the OpenHome ohMedia services. http://www.lesbonscomptes.com/upmpdcli/ comment "upmpdcli needs a toolchain w/ C++, NPTL, gcc >= 4.9" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/upmpdcli/S99upmpdcli ================================================ #!/bin/sh NAME=upmpdcli CONFFILE=/etc/$NAME.conf PIDFILE=/var/run/$NAME.pid DAEMON_ARGS="-D -c $CONFFILE" start() { printf "Starting $NAME: " start-stop-daemon --start --quiet --background --exec /usr/bin/upmpdcli \ -- $DAEMON_ARGS \ && echo "OK" || echo "FAIL" } stop() { printf "Stopping $NAME: " start-stop-daemon --stop --quiet --pidfile $PIDFILE \ && echo "OK" || echo "FAIL" } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 1 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: package/upmpdcli/upmpdcli.hash ================================================ # From http://www.lesbonscomptes.com/upmpdcli/downloads/upmpdcli-1.5.12.tar.gz.sha256: sha256 1d7b6ab360c2549a7e3eff4f261471761dd837e18327a3ca29de1981c090ff3b upmpdcli-1.5.12.tar.gz # Hash for license file: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/upmpdcli/upmpdcli.mk ================================================ ################################################################################ # # upmpdcli # ################################################################################ UPMPDCLI_VERSION = 1.5.12 UPMPDCLI_SITE = http://www.lesbonscomptes.com/upmpdcli/downloads UPMPDCLI_LICENSE = LGPL-2.1+ UPMPDCLI_LICENSE_FILES = COPYING UPMPDCLI_DEPENDENCIES = host-pkgconf libmpdclient libupnpp libmicrohttpd jsoncpp # Disable spotify plugin which requires dlfcn.h ifeq ($(BR2_STATIC_LIBS),y) UPMPDCLI_CONF_OPTS = --disable-spotify endif # Upmpdcli only runs if user upmpdcli exists define UPMPDCLI_USERS upmpdcli -1 upmpdcli -1 * - - audio Upmpdcli MPD UPnP Renderer Front-End endef define UPMPDCLI_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/upmpdcli/S99upmpdcli $(TARGET_DIR)/etc/init.d/S99upmpdcli endef define UPMPDCLI_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(@D)/systemd/upmpdcli.service \ $(TARGET_DIR)/usr/lib/systemd/system/upmpdcli.service endef define UPMPDCLI_INSTALL_CONF_FILE $(INSTALL) -D -m 0755 $(@D)/src/upmpdcli.conf-dist $(TARGET_DIR)/etc/upmpdcli.conf endef UPMPDCLI_POST_INSTALL_TARGET_HOOKS += UPMPDCLI_INSTALL_CONF_FILE $(eval $(autotools-package)) ================================================ FILE: package/upower/Config.in ================================================ config BR2_PACKAGE_UPOWER bool "upower" depends on BR2_PACKAGE_HAS_UDEV depends on BR2_TOOLCHAIN_HAS_THREADS # libgudev, libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb depends on BR2_USE_MMU # libgudev depends on BR2_USE_WCHAR # libgudev select BR2_PACKAGE_LIBGUDEV select BR2_PACKAGE_LIBUSB help UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics. Any application or service on the system can access the org.freedesktop.UPower service via the system message bus. Note: upowerd require CONFIG_TIMER_STATS enabled in the Linux kernel. https://upower.freedesktop.org/ comment "upower needs udev /dev management" depends on BR2_USE_MMU depends on !BR2_PACKAGE_HAS_UDEV comment "upower needs a toolchain w/ threads, wchar, gcc >= 4.9" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/upower/upower.hash ================================================ # Locally calculated sha256 64b5ffbfccd5bdb15d925777979a4dbee1a957f9eaeb158dc76175267eddbdef upower-0.99.11.tar.xz sha256 c1753877db41d798d63369a825ad9225bbeb5e10a407be5fcd8de96182f1c50d COPYING ================================================ FILE: package/upower/upower.mk ================================================ ################################################################################ # # upower # ################################################################################ UPOWER_VERSION = 0.99.11 UPOWER_SOURCE = upower-$(UPOWER_VERSION).tar.xz UPOWER_SITE = https://upower.freedesktop.org/releases UPOWER_LICENSE = GPL-2.0+ UPOWER_LICENSE_FILES = COPYING # libupower-glib.so UPOWER_INSTALL_STAGING = YES UPOWER_DEPENDENCIES = \ $(TARGET_NLS_DEPENDENCIES) \ host-pkgconf \ libgudev \ libusb \ udev UPOWER_CONF_OPTS = --disable-man-pages --disable-tests $(eval $(autotools-package)) ================================================ FILE: package/upx/0001-Check-DT_REL-DT_RELA-DT_RELSZ-DT_RELASZ.patch ================================================ From 3781df9da23840e596d5e9e8493f22666802fe6c Mon Sep 17 00:00:00 2001 From: John Reiser Date: Fri, 11 Dec 2020 13:38:18 -0800 Subject: [PATCH] Check DT_REL/DT_RELA, DT_RELSZ/DT_RELASZ https://github.com/upx/upx/issues/421 modified: p_lx_elf.cpp [Retrieved from: https://github.com/upx/upx/commit/3781df9da23840e596d5e9e8493f22666802fe6c] Signed-off-by: Fabrice Fontaine --- src/p_lx_elf.cpp | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp index 182db192f..3a4101cf7 100644 --- a/src/p_lx_elf.cpp +++ b/src/p_lx_elf.cpp @@ -2222,8 +2222,20 @@ bool PackLinuxElf32::canPack() int z_rsz = dt_table[Elf32_Dyn::DT_RELSZ]; if (z_rel && z_rsz) { unsigned rel_off = get_te32(&dynseg[-1+ z_rel].d_val); + if ((unsigned)file_size <= rel_off) { + char msg[70]; snprintf(msg, sizeof(msg), + "bad Elf32_Dynamic[DT_REL] %#x\n", + rel_off); + throwCantPack(msg); + } Elf32_Rel *rp = (Elf32_Rel *)&file_image[rel_off]; unsigned relsz = get_te32(&dynseg[-1+ z_rsz].d_val); + if ((unsigned)file_size <= relsz) { + char msg[70]; snprintf(msg, sizeof(msg), + "bad Elf32_Dynamic[DT_RELSZ] %#x\n", + relsz); + throwCantPack(msg); + } Elf32_Rel *last = (Elf32_Rel *)(relsz + (char *)rp); for (; rp < last; ++rp) { unsigned r_va = get_te32(&rp->r_offset); @@ -2562,14 +2574,26 @@ PackLinuxElf64::canPack() int z_rel = dt_table[Elf64_Dyn::DT_RELA]; int z_rsz = dt_table[Elf64_Dyn::DT_RELASZ]; if (z_rel && z_rsz) { - unsigned rel_off = get_te64(&dynseg[-1+ z_rel].d_val); + upx_uint64_t rel_off = get_te64(&dynseg[-1+ z_rel].d_val); + if ((u64_t)file_size <= rel_off) { + char msg[70]; snprintf(msg, sizeof(msg), + "bad Elf64_Dynamic[DT_RELA] %#llx\n", + rel_off); + throwCantPack(msg); + } Elf64_Rela *rp = (Elf64_Rela *)&file_image[rel_off]; - unsigned relsz = get_te64(&dynseg[-1+ z_rsz].d_val); + upx_uint64_t relsz = get_te64(&dynseg[-1+ z_rsz].d_val); + if ((u64_t)file_size <= relsz) { + char msg[70]; snprintf(msg, sizeof(msg), + "bad Elf64_Dynamic[DT_RELASZ] %#llx\n", + relsz); + throwCantPack(msg); + } Elf64_Rela *last = (Elf64_Rela *)(relsz + (char *)rp); for (; rp < last; ++rp) { - unsigned r_va = get_te64(&rp->r_offset); + upx_uint64_t r_va = get_te64(&rp->r_offset); if (r_va == user_init_ava) { // found the Elf64_Rela - unsigned r_info = get_te64(&rp->r_info); + upx_uint64_t r_info = get_te64(&rp->r_info); unsigned r_type = ELF64_R_TYPE(r_info); if (Elf64_Ehdr::EM_AARCH64 == e_machine && R_AARCH64_RELATIVE == r_type) { @@ -2581,7 +2605,7 @@ PackLinuxElf64::canPack() } else { char msg[50]; snprintf(msg, sizeof(msg), - "bad relocation %#x DT_INIT_ARRAY[0]", + "bad relocation %#llx DT_INIT_ARRAY[0]", r_info); throwCantPack(msg); } ================================================ FILE: package/upx/upx.hash ================================================ # Locally computed: sha256 47774df5c958f2868ef550fb258b97c73272cb1f44fe776b798e393465993714 upx-3.96-src.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/upx/upx.mk ================================================ ################################################################################ # # upx # ################################################################################ UPX_VERSION = 3.96 UPX_SITE = https://github.com/upx/upx/releases/download/v$(UPX_VERSION) UPX_SOURCE = upx-$(UPX_VERSION)-src.tar.xz UPX_LICENSE = GPL-2.0+ UPX_LICENSE_FILES = COPYING UPX_CPE_ID_VENDOR = upx_project # 0001-Check-DT_REL-DT_RELA-DT_RELSZ-DT_RELASZ.patch UPX_IGNORE_CVES += CVE-2021-20285 HOST_UPX_DEPENDENCIES = host-ucl host-zlib # We need to specify all, otherwise the default target only prints a message # stating to "please choose a target for 'make'"... :-( define HOST_UPX_BUILD_CMDS $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) \ UPX_UCLDIR=$(HOST_DIR) CXXFLAGS_WERROR= -C $(@D) all endef # UPX has no install procedure, so install it manually. define HOST_UPX_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/src/upx.out $(HOST_DIR)/bin/upx endef $(eval $(host-generic-package)) ================================================ FILE: package/uqmi/Config.in ================================================ config BR2_PACKAGE_UQMI bool "uqmi" depends on !BR2_STATIC_LIBS # libubox depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c select BR2_PACKAGE_JSON_C select BR2_PACKAGE_LIBUBOX help This command line tool originates from the OpenWrt project to configure LTE modem in QMI mode for WAN connection. https://git.openwrt.org/project/uqmi.git comment "uqmi needs a toolchain w/ dynamic library" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_STATIC_LIBS ================================================ FILE: package/uqmi/uqmi.hash ================================================ # Locally calculated sha256 aae6a72791da8f58012303ba3bfeeb613e74597cbebfb9e7c2d9125e6f256799 uqmi-0a19b5b77140465c29e2afa7d611fe93abc9672f-br1.tar.gz sha256 a69bf44dbff15d727578d2069a654d60e9034c5e2cc3e199a012e72afef6c259 main.c ================================================ FILE: package/uqmi/uqmi.mk ================================================ ################################################################################ # # uqmi # ################################################################################ UQMI_VERSION = 0a19b5b77140465c29e2afa7d611fe93abc9672f UQMI_SITE = https://git.openwrt.org/project/uqmi.git UQMI_SITE_METHOD = git UQMI_LICENSE = LGPL-2.0+ UQMI_LICENSE_FILES = main.c UQMI_DEPENDENCIES = json-c libubox $(eval $(cmake-package)) ================================================ FILE: package/urandom-scripts/Config.in ================================================ config BR2_PACKAGE_URANDOM_SCRIPTS bool "urandom-initscripts" default y if BR2_PACKAGE_INITSCRIPTS depends on !BR2_PACKAGE_SYSTEMD help Initscript to preserve the random seed between reboots. WARNING: this is a poor fit to try and get high-quality entropy at boot. There are better ways, like haveged, or rng-tools. ================================================ FILE: package/urandom-scripts/S20urandom ================================================ #! /bin/sh # # Preserve the random seed between reboots. See urandom(4). # # Quietly do nothing if /dev/urandom does not exist [ -c /dev/urandom ] || exit 0 URANDOM_SEED="/var/lib/random-seed" # shellcheck source=/dev/null [ -r "/etc/default/urandom" ] && . "/etc/default/urandom" if pool_bits=$(cat /proc/sys/kernel/random/poolsize 2> /dev/null); then pool_size=$((pool_bits/8)) else pool_size=512 fi check_file_size() { [ -f "$URANDOM_SEED" ] || return 1 # Try to read two blocks but exactly one will be read if the file has # the correct size. size=$(dd if="$URANDOM_SEED" bs="$pool_size" count=2 2> /dev/null | wc -c) test "$size" -eq "$pool_size" } init_rng() { if check_file_size; then printf 'Initializing random number generator: ' dd if="$URANDOM_SEED" bs="$pool_size" of=/dev/urandom count=1 2> /dev/null status=$? if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi return "$status" fi } save_random_seed() { printf 'Saving random seed: ' if touch "$URANDOM_SEED" 2> /dev/null; then old_umask=$(umask) umask 077 dd if=/dev/urandom of="$URANDOM_SEED" bs="$pool_size" count=1 2> /dev/null status=$? umask "$old_umask" if [ "$status" -eq 0 ]; then echo "OK" else echo "FAIL" fi else status=$? echo "SKIP (read-only file system detected)" fi return "$status" } case "$1" in start|restart|reload) # Carry a random seed from start-up to start-up # Load and then save the whole entropy pool init_rng && save_random_seed;; stop) # Carry a random seed from shut-down to start-up # Save the whole entropy pool save_random_seed;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/urandom-scripts/urandom-scripts.mk ================================================ ################################################################################ # # urandom-scripts # ################################################################################ define URANDOM_SCRIPTS_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 $(URANDOM_SCRIPTS_PKGDIR)/S20urandom \ $(TARGET_DIR)/etc/init.d/S20urandom endef $(eval $(generic-package)) ================================================ FILE: package/uredir/Config.in ================================================ config BR2_PACKAGE_UREDIR bool "uredir" select BR2_PACKAGE_LIBUEV help A small Linux daemon to redirect UDP connections. It can be used to forward connections on small and embedded systems that do not have (or want to use) iptables. https://github.com/troglobit/uredir ================================================ FILE: package/uredir/uredir.hash ================================================ # From https://github.com/troglobit/uredir/releases/download/v3.3/uredir-3.3.tar.gz.md5 md5 a42ee27e84de2e08e35ee733508bb6ea uredir-3.3.tar.gz # License files sha256 e4b8fd3375ce44e5e03be199724a8785510ea5fa58ed92a7a34fd0ccbd35db10 LICENSE ================================================ FILE: package/uredir/uredir.mk ================================================ ################################################################################ # # uredir # ################################################################################ UREDIR_VERSION = 3.3 UREDIR_SITE = https://github.com/troglobit/uredir/releases/download/v$(UREDIR_VERSION) UREDIR_LICENSE = ISC UREDIR_LICENSE_FILES = LICENSE UREDIR_DEPENDENCIES = host-pkgconf libuev $(eval $(autotools-package)) ================================================ FILE: package/urg/0001-select-h.patch ================================================ From 08c7ebec7c58fbc9c1cc0542863b34119c75c91f Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Thu, 15 Sep 2016 06:19:57 +0200 Subject: [PATCH] Serial driver: add missing header to C and C++ serial driver Fixes: http://autobuild.buildroot.net/results/cd7/cd76699188d2ee99b5f2d32b6a797de0d832a192/ Signed-off-by: Samuel Martin --- src/c/connection/serial_ctrl_lin.c | 1 + src/cpp/connection/SerialDevice_lin.cpp | 1 + 2 files changed, 2 insertions(+) Index: b/src/c/connection/serial_ctrl_lin.c =================================================================== --- a/src/c/connection/serial_ctrl_lin.c +++ b/src/c/connection/serial_ctrl_lin.c @@ -18,6 +18,7 @@ #include #include +#include //#include enum { Index: b/src/cpp/connection/SerialDevice_lin.cpp =================================================================== --- a/src/cpp/connection/SerialDevice_lin.cpp +++ b/src/cpp/connection/SerialDevice_lin.cpp @@ -13,7 +13,7 @@ #include #include #include - +#include class RawSerialDevice { ================================================ FILE: package/urg/0002-urg-gcc6-fix-narrowing-conversion.patch ================================================ urg: fix 'narrowing conversion' with gcc6 Fixes: http://autobuild.buildroot.net/results/d0c/d0cd11163753db69a14c02e941dbda40e5f98bba/ Signed-off-by: Samuel Martin --- a/src/cpp/urg/ScipHandler.cpp 2016-09-11 16:11:16.083995214 +0200 +++ b/src/cpp/urg/ScipHandler.cpp 2016-09-11 16:11:24.380832543 +0200 @@ -120,7 +120,7 @@ struct ScipHandler::pImpl // QT ̔s int return_code = -1; - char qt_expected_response[] = { 0, -1 }; + char qt_expected_response[] = { 0, (char)-1 }; // return_code g߁AsetLaserOutput() p QT 𑗐M if (response(return_code, "QT\n", qt_expected_response)) { laser_state_ = LaserOff; @@ -139,7 +139,7 @@ struct ScipHandler::pImpl } else if (return_code == Scip11Response) { // SCIP1.1 vgȐꍇ̂݁ASCIP2.0 𑗐M - char scip20_expected_response[] = { 0, -1 }; + char scip20_expected_response[] = { 0, (char)-1 }; if (! response(return_code, "SCIP2.0\n", scip20_expected_response)) { error_message_ = "SCIP1.1 protocol is not supported. Please update URG firmware, or reconnect after a few seconds because sensor is booting."; @@ -150,7 +150,7 @@ struct ScipHandler::pImpl } else if (return_code == 0xE) { // TM [hƂ݂ȂATM2 𔭍s - char tm2_expected_response[] = { 0, -1 }; + char tm2_expected_response[] = { 0, (char)-1 }; if (response(return_code, "TM2\n", tm2_expected_response)) { laser_state_ = LaserOff; return changeBothBaudrate(baudrate); @@ -202,7 +202,7 @@ struct ScipHandler::pImpl snprintf(send_buffer, 10, "SS%06ld\n", baudrate); int return_code = -1; // !!! ɐݒΏۂ̃{[[gȀꍇ̖߂l ss_expected... ɒlj - char ss_expected_response[] = { 0, 0x3, 0x4, 0xf, -1 }; + char ss_expected_response[] = { 0, 0x3, 0x4, 0xf, (char)-1 }; if (! response(return_code, send_buffer, ss_expected_response)) { error_message_ = "Baudrate change fail."; return false; @@ -216,7 +216,7 @@ struct ScipHandler::pImpl { // PP ̑Mƃf[^̎M int return_code = -1; - char pp_expected_response[] = { 0, -1 }; + char pp_expected_response[] = { 0, (char)-1 }; vector lines; if (! response(return_code, "PP\n", pp_expected_response, &lines)) { error_message_ = "PP fail."; @@ -356,7 +356,7 @@ struct ScipHandler::pImpl if (on) { int return_code = -1; - char expected_response[] = { 0, -1 }; + char expected_response[] = { 0, (char)-1 }; if (! response(return_code, "BM\n", expected_response)) { error_message_ = "BM fail."; return false; @@ -369,7 +369,7 @@ struct ScipHandler::pImpl if (! mx_capturing_) { // 邽߂ QT ł́A҂‚ׂ int return_code = -1; - char qt_expected_response[] = { 0, -1 }; + char qt_expected_response[] = { 0, (char)-1 }; if (! response(return_code, "QT\n", qt_expected_response)) { return false; } @@ -777,7 +777,7 @@ bool ScipHandler::loadParameter(RangeSen bool ScipHandler::versionLines(vector& lines) { int return_code = -1; - char expected_response[] = { 0, -1 }; + char expected_response[] = { 0, (char)-1 }; if (! pimpl->response(return_code, "VV\n", expected_response, &lines)) { return false; } @@ -792,7 +792,7 @@ bool ScipHandler::setRawTimestampMode(bo // TM0 or TM2 ̑M int return_code = -1; - char expected_response[] = { 0, -1 }; + char expected_response[] = { 0, (char)-1 }; if (! pimpl->response(return_code, send_command, expected_response)) { pimpl->error_message_ = (on) ? "TM0 fail." : "TM2 fail."; return false; @@ -809,7 +809,7 @@ bool ScipHandler::rawTimestamp(int* time { // TM1 ̒lԂ int return_code = -1; - char expected_response[] = { 0, -1 }; + char expected_response[] = { 0, (char)-1 }; vector lines; if (! pimpl->response(return_code, "TM1\n", expected_response, &lines)) { pimpl->error_message_ = "TM1 fail."; ================================================ FILE: package/urg/Config.in ================================================ config BR2_PACKAGE_URG bool "urg" depends on BR2_INSTALL_LIBSTDCPP help Library to control Hokuyo's URG series sensors. https://sourceforge.net/p/urgnetwork/wiki/Home/ comment "urg needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/urg/urg.hash ================================================ # from http://pkgs.fedoraproject.org/repo/pkgs/urg/urg-0.8.18.zip/ md5 93f90d2ccc36e784407c5282ef6bd2cb urg-0.8.18.zip # Locally calculated sha256 b2cab7e539c90c60fc99a2350a42b5d5390ff952b694b196c3cbb54623cfee7f urg-0.8.18.zip # License files, locally calculated sha256 9ccf26cfe845e0eb8bb58053e47366e7ab6b697ae010f7650978d4b71b7d1fc1 COPYING ================================================ FILE: package/urg/urg.mk ================================================ ################################################################################ # # urg # ################################################################################ URG_VERSION = 0.8.18 URG_SITE = http://pkgs.fedoraproject.org/repo/pkgs/urg/urg-0.8.18.zip/md5/93f90d2ccc36e784407c5282ef6bd2cb URG_SOURCE = urg-$(URG_VERSION).zip URG_LICENSE = LGPL-3.0 URG_LICENSE_FILES = COPYING URG_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_SDL)$(BR2_PACKAGE_SDL_NET),yy) URG_DEPENDENCIES += sdl sdl_net URG_CONF_OPTS += \ --with-sdl-prefix=$(STAGING_DIR)/usr \ --with-sdl-exec-prefix=$(STAGING_DIR)/usr else URG_CONF_OPTS = --without-sdl URG_CONF_ENV += ac_cv_path_SDL_CONFIG="" endif URG_CONFIG_SCRIPTS = c_urg-config urg-config define URG_EXTRACT_CMDS $(UNZIP) -d $(BUILD_DIR) $(URG_DL_DIR)/$(URG_SOURCE) endef $(eval $(autotools-package)) ================================================ FILE: package/usb_modeswitch/Config.in ================================================ config BR2_PACKAGE_USB_MODESWITCH bool "usb_modeswitch" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_JIMTCL if !BR2_PACKAGE_TCL || BR2_PACKAGE_TCL_SHLIB_ONLY select BR2_PACKAGE_LIBUSB help Some USB devices such as 3G/4G broadband modems power-up in mass storage mode to provide access to drivers for the device's application mode. usb_modeswitch changes the mode of such devices from the initial power-up mode to the application mode. Specific configuration data for each device model is required. usb_modeswitch can be used with the usb_modeswitch_data package and eudev/systemd for automatic mode switching when devices are connected. For more information search the Internet for "Virtual CD-ROM switching utility". http://www.draisberghof.de/usb_modeswitch/ comment "usb_modeswitch needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/usb_modeswitch/usb_modeswitch.hash ================================================ # From https://www.draisberghof.de/usb_modeswitch/usb-modeswitch-versions.xml md5 69d00d6ed7097b97d972a159d14cfba1 usb-modeswitch-2.6.1.tar.bz2 # Locally calculated sha256 5195d9e136e52f658f19e9f93e4f982b1b67bffac197d0a455cd8c2cd245fa34 usb-modeswitch-2.6.1.tar.bz2 sha256 6195429209313925c0eba6c0da4ee7a6cb4277b99e35c886913f80f91ec20b94 COPYING ================================================ FILE: package/usb_modeswitch/usb_modeswitch.mk ================================================ ################################################################################ # # usb_modeswitch # ################################################################################ USB_MODESWITCH_VERSION = 2.6.1 USB_MODESWITCH_SOURCE = usb-modeswitch-$(USB_MODESWITCH_VERSION).tar.bz2 USB_MODESWITCH_SITE = http://www.draisberghof.de/usb_modeswitch USB_MODESWITCH_DEPENDENCIES = libusb USB_MODESWITCH_LICENSE = GPL-2.0+, BSD-2-Clause USB_MODESWITCH_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_TCL)$(BR2_PACKAGE_TCL_SHLIB_ONLY),y) USB_MODESWITCH_DEPENDENCIES += tcl USB_MODESWITCH_BUILD_TARGETS = all USB_MODESWITCH_INSTALL_TARGETS = install-script else USB_MODESWITCH_DEPENDENCIES += jimtcl USB_MODESWITCH_INSTALL_TARGETS = install-common ifeq ($(BR2_STATIC_LIBS),y) USB_MODESWITCH_BUILD_TARGETS = all-with-statlink-dispatcher else USB_MODESWITCH_BUILD_TARGETS = all-with-dynlink-dispatcher endif endif define USB_MODESWITCH_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ -C $(@D) $(USB_MODESWITCH_BUILD_TARGETS) endef define USB_MODESWITCH_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ DESTDIR=$(TARGET_DIR) \ -C $(@D) $(USB_MODESWITCH_INSTALL_TARGETS) endef $(eval $(generic-package)) ================================================ FILE: package/usb_modeswitch_data/Config.in ================================================ config BR2_PACKAGE_USB_MODESWITCH_DATA bool "usb_modeswitch_data" depends on BR2_TOOLCHAIN_HAS_THREADS # usb_modeswitch -> libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # usb_modeswitch -> libusb select BR2_PACKAGE_USB_MODESWITCH help USB mode switch data Contains udev rules and events to allow usb_modeswitch to function automatically http://www.draisberghof.de/usb_modeswitch/ comment "usb_modeswitch_data needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/usb_modeswitch_data/usb_modeswitch_data.hash ================================================ # From http://www.draisberghof.de/usb_modeswitch/ md5 e8fce7eb949cbe16c61fb71bade4cc17 usb-modeswitch-data-20191128.tar.bz2 # Locally calculated sha256 3f039b60791c21c7cb15c7986cac89650f076dc274798fa242231b910785eaf9 usb-modeswitch-data-20191128.tar.bz2 sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/usb_modeswitch_data/usb_modeswitch_data.mk ================================================ ################################################################################ # # usb_modeswitch_data # ################################################################################ USB_MODESWITCH_DATA_VERSION = 20191128 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 USB_MODESWITCH_DATA_LICENSE = GPL-2.0+ USB_MODESWITCH_DATA_LICENSE_FILES = COPYING # Nothing to build, it is a pure data package define USB_MODESWITCH_DATA_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) ================================================ FILE: package/usbguard/Config.in ================================================ config BR2_PACKAGE_USBGUARD bool "usbguard" depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # protobuf depends on BR2_INSTALL_LIBSTDCPP # protobuf depends on BR2_TOOLCHAIN_HAS_THREADS # libqb, protobuf depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # protobuf depends on !BR2_STATIC_LIBS # libqb, protobuf depends on !BR2_TOOLCHAIN_USES_MUSL depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::future select BR2_PACKAGE_PROTOBUF select BR2_PACKAGE_LIBQB select BR2_PACKAGE_LIBSODIUM if !BR2_PACKAGE_LIBGCRYPT && !BR2_PACKAGE_LIBOPENSSL help The USBGuard software framework Install a custom accept/deny list in /etc/usbguard/rules.conf (e.g. using an overlay). This file can be generated on the target using "usbguard generate-policy". https://usbguard.github.io/ comment "usbguard needs a glibc or uClibc toolchain w/ C++, threads, dynamic library, gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \ || BR2_TOOLCHAIN_USES_MUSL depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS comment "usbguard needs a toolchain not affected by GCC bug 64735" depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/usbguard/S20usbguard ================================================ #!/bin/sh # # Start psplash # PIDFILE=/var/run/$NAME.pid start() { printf "Starting usbguard daemon: " test -d /var/log/usbguard || mkdir -p /var/log/usbguard start-stop-daemon -b -S -q -m -p $PIDFILE --exec /usr/sbin/usbguard-daemon -- -f -s -c /etc/usbguard/usbguard-daemon.conf [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { printf "Stopping usbguard daemon: " start-stop-daemon -K -q -p $PIDFILE [ $? = 0 ] && echo "OK" || echo "FAIL" } case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $? ================================================ FILE: package/usbguard/usbguard.hash ================================================ # Locally calculated sha256 5617986cd5dd1a2d311041648a1977d836cf4e33a4121d7f82599f21496abc42 usbguard-1.0.0.tar.gz sha256 a45d0bb572ed792ed34627a72621834b3ba92aab6e2cc4e04301dee7a728d753 LICENSE ================================================ FILE: package/usbguard/usbguard.mk ================================================ ################################################################################ # ## usbguard # ################################################################################ USBGUARD_VERSION = 1.0.0 USBGUARD_SITE = https://github.com/USBGuard/usbguard/releases/download/usbguard-$(USBGUARD_VERSION) USBGUARD_LICENSE = GPL-2.0+ USBGUARD_LICENSE_FILES = LICENSE USBGUARD_SELINUX_MODULES = usbguard USBGUARD_CONF_OPTS = \ --with-bundled-catch \ --with-bundled-pegtl \ --disable-debug-build \ --without-dbus \ --without-polkit \ --disable-umockdev USBGUARD_DEPENDENCIES += libqb protobuf ifeq ($(BR2_PACKAGE_LIBSODIUM),y) USBGUARD_CONF_OPTS += --with-crypto-library=sodium USBGUARD_DEPENDENCIES += libsodium else ifeq ($(BR2_PACKAGE_LIBOPENSSL),y) USBGUARD_CONF_OPTS += --with-crypto-library=openssl USBGUARD_DEPENDENCIES += libopenssl else ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) USBGUARD_CONF_ENV += \ ac_cv_path_LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config USBGUARD_CONF_OPTS += --with-crypto-library=gcrypt USBGUARD_DEPENDENCIES += libgcrypt endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) USBGUARD_CONF_OPTS += --enable-systemd USBGUARD_DEPENDENCIES += systemd else USBGUARD_CONF_OPTS += --disable-systemd endif ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) USBGUARD_CONF_OPTS += --enable-seccomp USBGUARD_DEPENDENCIES += libseccomp else USBGUARD_CONF_OPTS += --disable-seccomp endif ifeq ($(BR2_PACKAGE_LIBCAP_NG),y) USBGUARD_CONF_OPTS += --enable-libcapng USBGUARD_DEPENDENCIES += libcap-ng endif define USBGUARD_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/usbguard/S20usbguard \ $(TARGET_DIR)/etc/init.d/S20usbguard endef define USBGUARD_PERMISSIONS /etc/usbguard/rules.conf f 0600 0 0 - - - - - endef $(eval $(autotools-package)) ================================================ FILE: package/usbmount/0001-rules-fix.patch ================================================ Signed-off-by: Yegor Yefremov --- usbmount.rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: b/usbmount.rules =================================================================== --- a/usbmount.rules +++ b/usbmount.rules @@ -1,7 +1,7 @@ # Rules for USBmount -*- conf -*- KERNEL=="sd*", DRIVERS=="sbp2", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add" -KERNEL=="sd*", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add" -KERNEL=="ub*", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add" +KERNEL=="sd*", SUBSYSTEM=="block", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add" +KERNEL=="ub*", SUBSYSTEM=="block", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add" KERNEL=="sd*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove" KERNEL=="ub*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove" ================================================ FILE: package/usbmount/0002-use-udev-environment-instead-of-blkid.patch ================================================ udev can provide all the values that usbmount determined using the blkid binary. This patch drops use of blkid in favor of using the environment variables set by udev. Thus it removes the dependency on blkid from usbmount. Signed-off-by: Sven Neumann --- usbmount-0.0.22/usbmount.orig 2013-06-18 14:44:40.143096147 +0200 +++ usbmount-0.0.22/usbmount 2013-06-19 16:13:09.882434896 +0200 @@ -59,11 +59,6 @@ exit 0 fi -if [ ! -x /sbin/blkid ]; then - log err "cannot execute /sbin/blkid" - exit 1 -fi - # Per Policy 9.3.2, directories under /var/run have to be created # after every reboot. if [ ! -e /var/run/usbmount ]; then @@ -83,15 +78,7 @@ trap '( lockfile-remove /var/run/usbmount/.mount )' 0 log debug "acquired lock /var/run/usbmount/.mount.lock" - # Grab device information from device and "divide it" - # FIXME: improvement: implement mounting by label (notice that labels - # can contain spaces, which makes things a little bit less comfortable). - DEVINFO=$(/sbin/blkid -p $DEVNAME) - FSTYPE=$(echo "$DEVINFO" | sed 's/.*[[:blank:]]TYPE="\([^"]*\)".*/\1/g; s/[[:blank:]]*//g;') - UUID=$(echo "$DEVINFO" | sed 's/.*[[:blank:]]UUID="\([^"]*\)".*/\1/g; s/[[:blank:]]*//g;') - USAGE=$(echo "$DEVINFO" | sed 's/.*[[:blank:]]USAGE="\([^"]*\)".*/\1/g; s/[[:blank:]]*//g;') - - if ! echo $USAGE | egrep -q "(filesystem|disklabel)"; then + if ! echo $ID_FS_USAGE | egrep -q "(filesystem|disklabel)"; then log info "$DEVNAME does not contain a filesystem or disklabel" exit 1 fi @@ -101,14 +88,14 @@ log info "executing command: mount $DEVNAME" mount $DEVNAME || log err "mount by DEVNAME with $DEVNAME wasn't successful; return code $?" - elif grep -q "^[[:blank:]]*UUID=$UUID" /etc/fstab; then - log info "executing command: mount -U $UUID" - mount -U $UUID || log err "mount by UUID with $UUID wasn't successful; return code $?" + elif grep -q "^[[:blank:]]*UUID=$ID_FS_UUID" /etc/fstab; then + log info "executing command: mount -U $ID_FS_UUID" + mount -U $ID_FS_UUID || log err "mount by UUID with $ID_FS_UUID wasn't successful; return code $?" else - log debug "$DEVNAME contains filesystem type $FSTYPE" + log debug "$DEVNAME contains filesystem type $ID_FS_TYPE" - fstype=$FSTYPE + fstype=$ID_FS_TYPE # Test if the filesystem type is in the list of filesystem # types to mount. if in_list "$fstype" "$FILESYSTEMS"; then @@ -176,11 +163,13 @@ # Run hook scripts; ignore errors. export UM_DEVICE="$DEVNAME" + export UM_UUID="$ID_FS_UUID" export UM_MOUNTPOINT="$mountpoint" export UM_FILESYSTEM="$fstype" export UM_MOUNTOPTIONS="$options" export UM_VENDOR="$vendor" export UM_MODEL="$model" + export UM_LABEL="$ID_FS_LABEL" log info "executing command: run-parts /etc/usbmount/mount.d" run-parts /etc/usbmount/mount.d || : else ================================================ FILE: package/usbmount/Config.in ================================================ config BR2_PACKAGE_USBMOUNT bool "usbmount" depends on BR2_USE_MMU # lockfile-progs -> liblockfile depends on BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_LOCKFILE_PROGS help The usbmount package automatically mounts USB mass storage devices when they are plugged in, and unmounts them when they are removed. https://wiki.debian.org/usbmount comment "usbmount requires udev to be enabled" depends on BR2_USE_MMU depends on !BR2_PACKAGE_HAS_UDEV ================================================ FILE: package/usbmount/usbmount.hash ================================================ # From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/u/usbmount/usbmount_0.0.22.dsc sha256 a2b8581534b6c92f0376d202639dbc28862d3834dac64c35bde752f84975527d usbmount_0.0.22.tar.gz # Locally computed sha256 797a416c87923338aa3ed05cce3cfdac6101f0142e72d5ab05c7bd76af5e527b debian/copyright ================================================ FILE: package/usbmount/usbmount.mk ================================================ ################################################################################ # # usbmount # ################################################################################ USBMOUNT_VERSION = 0.0.22 USBMOUNT_SOURCE = usbmount_$(USBMOUNT_VERSION).tar.gz USBMOUNT_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/u/usbmount USBMOUNT_DEPENDENCIES = udev lockfile-progs USBMOUNT_LICENSE = BSD-2-Clause USBMOUNT_LICENSE_FILES = debian/copyright define USBMOUNT_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/usbmount $(TARGET_DIR)/usr/share/usbmount/usbmount $(INSTALL) -m 0755 -D $(@D)/00_create_model_symlink \ $(TARGET_DIR)/etc/usbmount/mount.d/00_create_model_symlink $(INSTALL) -m 0755 -D $(@D)/00_remove_model_symlink \ $(TARGET_DIR)/etc/usbmount/umount.d/00_remove_model_symlink $(INSTALL) -m 0644 -D $(@D)/usbmount.rules $(TARGET_DIR)/lib/udev/rules.d/usbmount.rules $(INSTALL) -m 0644 -D $(@D)/usbmount.conf $(TARGET_DIR)/etc/usbmount/usbmount.conf mkdir -p $(addprefix $(TARGET_DIR)/media/usb,0 1 2 3 4 5 6 7) endef $(eval $(generic-package)) ================================================ FILE: package/usbredir/0001-meson-add-tests-option.patch ================================================ From 8490a7ac101d4ee0a78c44b252d3b7a6c2508c74 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 21 Aug 2021 11:55:48 +0200 Subject: [PATCH] meson: add tests option Add tests option to allow the user to disable them Signed-off-by: Fabrice Fontaine [Retrieved from: https://gitlab.freedesktop.org/spice/usbredir/-/commit/8490a7ac101d4ee0a78c44b252d3b7a6c2508c74] --- meson.build | 4 +++- meson_options.txt | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 6e773a7..a6d21b8 100644 --- a/meson.build +++ b/meson.build @@ -106,7 +106,9 @@ if host_machine.system() != 'windows' subdir('fuzzing') endif endif -subdir('tests') +if get_option('tests').enabled() + subdir('tests') +endif subdir('data') summary(summary_info, bool_yn: true) diff --git a/meson_options.txt b/meson_options.txt index b35732b..63e8c85 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -21,3 +21,8 @@ option('tools', type : 'feature', value : 'enabled', description : 'Build usbredir\'s tools such as usbredirect') + +option('tests', + type : 'feature', + value : 'enabled', + description : 'Build usbredir\'s tests such as filter') -- GitLab ================================================ FILE: package/usbredir/0002-meson-add-stack_protector-option.patch ================================================ From 54cf1897ef3aa4d0a35b5f4eb1f5c6928b033af5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 24 Sep 2021 17:24:43 +0200 Subject: [PATCH] meson: add stack_protector option Add stack_protector option to allow the user to disable it as some embedded toolchains don't support it which will result in the following build failure: /home/giuliobenetti/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/9.3.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: usbredirparser/libusbredirparser.so.1.1.0.p/usbredirparser.c.o: in function `va_log': usbredirparser.c:(.text+0x1c4): undefined reference to `__stack_chk_guard' Fixes: - http://autobuild.buildroot.org/results/40de5443e98157ad50c6841ea70a835cd5ad4fe9 Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.freedesktop.org/spice/usbredir/-/merge_requests/53] --- meson.build | 6 +++++- meson_options.txt | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index a6d21b8..4350f53 100644 --- a/meson.build +++ b/meson.build @@ -17,8 +17,12 @@ cc_flags = [ if host_machine.system() != 'windows' cc_flags += [ '-Wp,-D_FORTIFY_SOURCE=2', - '-fstack-protector', ] + if get_option('stack_protector').enabled() + cc_flags += [ + '-fstack-protector', + ] + endif endif # Check if we are building from .git diff --git a/meson_options.txt b/meson_options.txt index 63e8c85..34dd392 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -17,6 +17,11 @@ option('fuzzing-install-dir', type : 'string', description : 'Installation directory for fuzzing binaries') +option('stack_protector', + type : 'feature', + value : 'enabled', + description : 'Build usbredir\'s with stack-protector') + option('tools', type : 'feature', value : 'enabled', -- 2.33.0 ================================================ FILE: package/usbredir/0003-meson.build-make-C-optional.patch ================================================ From 55fc307d23d657b52433d1c8508467d0589754d5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 16 Oct 2021 15:45:57 +0200 Subject: [PATCH] meson.build: make C++ optional Remove cpp from meson project statement to make C++ optional and avoid the following build failure when the toolchain does not provide a C++ compiler: ../output-1/build/usbredir-0.11.0/meson.build:1:0: ERROR: Unknown compiler(s): [['/home/buildroot/autobuild/instance-3/output-1/host/bin/arm-linux-g++']] The following exception(s) were encountered: Running "/home/buildroot/autobuild/instance-3/output-1/host/bin/arm-linux-g++ --version" gave "[Errno 2] No such file or directory: '/home/buildroot/autobuild/instance-3/output-1/host/bin/arm-linux-g++'" Indeed C++ is only required for fuzzing which is already handled by meson through add_languages('cpp', required: true) Fixes: - http://autobuild.buildroot.org/results/eca1d8a2b73a769354ab1d24c7996be30f152138 Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.freedesktop.org/spice/usbredir/-/merge_requests/55] --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 49dbce4..ca19f22 100644 --- a/meson.build +++ b/meson.build @@ -1,4 +1,4 @@ -project('usbredir', 'c', 'cpp', +project('usbredir', 'c', version: '0.11.0', license: 'LGPLv2.1+', meson_version : '>= 0.53', -- 2.33.0 ================================================ FILE: package/usbredir/Config.in ================================================ comment "usbredir needs a toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_PACKAGE_USBREDIR bool "usbredir" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb select BR2_PACKAGE_LIBUSB help usbredir is the name of a network protocol for sending usb device traffic over a network connection. It is also the name of the software package offering a parsing library, a usbredirhost library and several utilities implementing this protocol. Note: only the library is installed, not the utilities. Say 'y' below if you want the server too. http://www.spice-space.org/page/UsbRedir if BR2_PACKAGE_USBREDIR config BR2_PACKAGE_USBREDIR_SERVER bool "usbredirserver on target" help If you want to serve usbredir requests on your target, say 'y' here to have the usbredir server on the target. Note: the server is not required to use the library. endif ================================================ FILE: package/usbredir/usbredir.hash ================================================ # https://spice-space.org/download/usbredir/usbredir-0.11.0.tar.xz.sha256sum sha256 72dd5f3aa90dfbc0510b5149bb5b1654c8f21fdc405dfce7b5dc163dcff19cba usbredir-0.11.0.tar.xz # Hash for license files sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 592987e8510228d546540b84a22444bde98e48d03078d3b2eefcd889bec5ce8c COPYING.LIB ================================================ FILE: package/usbredir/usbredir.mk ================================================ ################################################################################ # # usbredir # ################################################################################ USBREDIR_VERSION = 0.11.0 USBREDIR_SOURCE = usbredir-$(USBREDIR_VERSION).tar.xz USBREDIR_SITE = http://spice-space.org/download/usbredir USBREDIR_LICENSE = LGPL-2.1+ (libraries) USBREDIR_LICENSE_FILES = COPYING.LIB USBREDIR_INSTALL_STAGING = YES USBREDIR_DEPENDENCIES = host-pkgconf libusb USBREDIR_CONF_OPTS = \ -Dgit_werror=disabled \ -Dstack_protector=disabled \ -Dtests=disabled \ -Dtools=disabled ifeq ($(BR2_PACKAGE_USBREDIR_SERVER),y) USBREDIR_LICENSE += , GPL-2.0+ (program) USBREDIR_LICENSE_FILES += COPYING else # BR2_PACKAGE_USBREDIR_SERVER != y define USBREDIR_POST_INSTALL_TARGET_RM_SERVER rm -f $(TARGET_DIR)/usr/sbin/usbredirserver endef USBREDIR_POST_INSTALL_TARGET_HOOKS += USBREDIR_POST_INSTALL_TARGET_RM_SERVER endif # BR2_PACKAGE_USBREDIR_SERVER $(eval $(meson-package)) ================================================ FILE: package/usbutils/Config.in ================================================ config BR2_PACKAGE_USBUTILS bool "usbutils" depends on BR2_TOOLCHAIN_HAS_THREADS # libusb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb depends on BR2_PACKAGE_HAS_UDEV # needs hwdb select BR2_PACKAGE_LIBUSB help USB enumeration utilities http://linux-usb.sourceforge.net/ comment "usbutils needs udev /dev management and toolchain w/ threads, gcc >= 4.9" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_PACKAGE_HAS_UDEV || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 ================================================ FILE: package/usbutils/usbutils.hash ================================================ # From https://www.kernel.org/pub/linux/utils/usb/usbutils/sha256sums.asc sha256 3a079cfad60560227b67192482d7813bf96326fcbb66c04254839715f276fc69 usbutils-014.tar.xz # Locally calculated sha256 91412672119c72352b76c1d48fa1a8b7cdc7f70be7929e468c8805db468e23e4 LICENSES/GPL-2.0-only.txt sha256 4631da83311d27f99078d0d102e31bd34a4fcbcc2dae2aa40f1454a5b48125dc LICENSES/GPL-3.0-only.txt ================================================ FILE: package/usbutils/usbutils.mk ================================================ ################################################################################ # # usbutils # ################################################################################ USBUTILS_VERSION = 014 USBUTILS_SOURCE = usbutils-$(USBUTILS_VERSION).tar.xz USBUTILS_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/usb/usbutils USBUTILS_DEPENDENCIES = host-pkgconf libusb udev USBUTILS_LICENSE = GPL-2.0+ (utils) GPL-2.0 or GPL-3.0 (lsusb.py) USBUTILS_LICENSE_FILES = LICENSES/GPL-2.0-only.txt LICENSES/GPL-3.0-only.txt # Nice lsusb.py script only if there's python 3.x ifeq ($(BR2_PACKAGE_PYTHON3),) define USBUTILS_REMOVE_PYTHON rm -f $(TARGET_DIR)/usr/bin/lsusb.py endef USBUTILS_POST_INSTALL_TARGET_HOOKS += USBUTILS_REMOVE_PYTHON endif $(eval $(autotools-package)) ================================================ FILE: package/ushare/0001-Don-t-build-po-files-if-NLS-is-disabled.patch ================================================ From c9f5783bb2df4a19c6281daeda30e8ab905d2ca3 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 22 Aug 2021 10:44:48 +0200 Subject: [PATCH] Don't build po files if NLS is disabled Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/ddugovic/uShare/pull/12] --- Makefile | 7 +++++-- configure | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index ebd8f91..6686cfd 100644 --- a/Makefile +++ b/Makefile @@ -14,10 +14,13 @@ EXTRADIST = AUTHORS \ THANKS \ TODO \ -SUBDIRS = po \ - scripts \ +SUBDIRS = scripts \ src \ +ifeq ($(NLS),yes) +SUBDIRS += po +endif + all: for subdir in $(SUBDIRS); do \ $(MAKE) -C $$subdir $@; \ diff --git a/configure b/configure index 4a3efe0..f48806a 100755 --- a/configure +++ b/configure @@ -414,6 +414,8 @@ for opt do ;; --with-libdlna-dir=*) libdlnadir="$optval"; ;; + --enable-nls) nls="yes" + ;; --disable-nls) nls="no" ;; --enable-dlna) dlna="yes" @@ -723,6 +725,7 @@ append_config "LDFLAGS=$LDFLAGS" append_config "INSTALL=$INSTALL" append_config "DEBUG=$debug" +append_config "NLS=$nls" echolog "Creating $CONFIG_H ..." -- 2.32.0 ================================================ FILE: package/ushare/Config.in ================================================ config BR2_PACKAGE_USHARE bool "ushare" depends on BR2_TOOLCHAIN_HAS_THREADS # libupnp # ushare has a completely custom configure script that does # broken things with library ordering, which breaks static # linking. depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBUPNP help uShare is a UPnP (TM) A/V & DLNA Media Server. It implements the server component that provides UPnP media devices with information on available multimedia files. http://ushare.geexbox.org/ comment "ushare needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/ushare/ushare.hash ================================================ # locally computed hash sha256 e4563141a171138900540cc979f205cf666e820f709d47a98521bc77f53a99e6 ushare-2.1.tar.gz sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING ================================================ FILE: package/ushare/ushare.mk ================================================ ################################################################################ # # ushare # ################################################################################ USHARE_VERSION = 2.1 USHARE_SITE = $(call github,ddugovic,uShare,v$(USHARE_VERSION)) USHARE_DEPENDENCIES = host-pkgconf libupnp $(TARGET_NLS_DEPENDENCIES) USHARE_LICENSE = GPL-2.0+ USHARE_LICENSE_FILES = COPYING USHARE_LDFLAGS = $(TARGET_NLS_LIBS) USHARE_CONF_OPTS = \ --prefix=/usr \ --cross-compile \ --cross-prefix="$(TARGET_CROSS)" \ --sysconfdir=/etc \ --disable-strip USHARE_MAKE_OPTS = LDFLAGS="$(TARGET_LDFLAGS) $(USHARE_LDFLAGS)" ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) USHARE_CONF_OPTS += --enable-nls USHARE_MAKE_OPTS += GMSGFMT="$(HOST_DIR)/bin/msgfmt" else USHARE_CONF_OPTS += --disable-nls endif define USHARE_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_CONFIGURE_OPTS) \ ./configure \ $(USHARE_CONF_OPTS) \ ) endef define USHARE_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(USHARE_MAKE_OPTS) -C $(@D) endef define USHARE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install rm -f $(TARGET_DIR)/etc/init.d/ushare endef # Even though configure is called it's not autoconf $(eval $(generic-package)) ================================================ FILE: package/ussp-push/0001-fix-build-against-bluez-4.patch ================================================ Fix build against bluez4. Signed-off-by: Samuel Martin --- ussp-push-0.11.orig/src/obex_socket.c 2012-11-01 09:58:51.049538708 +0100 +++ ussp-push-0.11/src/obex_socket.c 2012-11-01 12:10:10.719506951 +0100 @@ -197,7 +197,7 @@ static int bt_sock_name2bth(int devid, c for (i = 0; i < niinf; i++) { char devname[128]; - if (hci_remote_name(dd, &piinf[i].bdaddr, sizeof(devname) - 1, + if (hci_read_remote_name(dd, &piinf[i].bdaddr, sizeof(devname) - 1, devname, 100000) >= 0) { if (strcasecmp(devname, btname) == 0) { *btaddr = piinf[i].bdaddr; ================================================ FILE: package/ussp-push/0002-fix-build-again-obex-bluez.patch ================================================ From 2d732026044d8e6cd16465ee87a73ac9692c021b Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Fri, 3 Nov 2017 09:04:12 +0100 Subject: [PATCH] fix build again obex/bluez [fetch from debian source: http://http.debian.net/debian/pool/main/u/ussp-push/ussp-push_0.11-4.debian.tar.xz] Signed-off-by: Samuel Martin --- src/obex_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/obex_main.c b/src/obex_main.c index a7126e6..6233d7e 100644 --- a/src/obex_main.c +++ b/src/obex_main.c @@ -197,7 +197,7 @@ obex_t *__obex_connect(int devid, void *addr, int timeout, int *err) *err = -1; return NULL; } - if (!(handle = OBEX_Init(OBEX_TRANS_CUST, obex_event, 0))) { + if (!(handle = OBEX_Init(OBEX_TRANS_CUSTOM, obex_event, 0))) { BTERROR("OBEX_Init failed: %s\n", strerror(errno)); obex_free(gt); *err = -1; -- 2.15.0 ================================================ FILE: package/ussp-push/0003-add-OBEX_CharToUnicode.patch ================================================ From eafac77d76d2a23c191a56f715d6c4afc0800da8 Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Fri, 3 Nov 2017 09:10:01 +0100 Subject: [PATCH] add OBEX_CharToUnicode [fetch from debian source: http://http.debian.net/debian/pool/main/u/ussp-push/ussp-push_0.11-4.debian.tar.xz] Signed-off-by: Samuel Martin --- src/obex_main.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/obex_main.c b/src/obex_main.c index 6233d7e..971cc37 100644 --- a/src/obex_main.c +++ b/src/obex_main.c @@ -84,7 +84,27 @@ void request_done(obex_t * handle, obex_object_t * object, int obex_cmd, int obe int bt_debug; +static int OBEX_CharToUnicode(uint8_t *uc, const uint8_t *c, int size) +{ + int len, n; + + if (uc == NULL || c == NULL) + return -1; + + len = n = strlen((char *) c); + if (n*2+2 > size) + return -1; + + uc[n*2+1] = 0; + uc[n*2] = 0; + while (n--) { + uc[n*2+1] = c[n]; + uc[n*2] = 0; + } + + return (len * 2) + 2; +} /* * These two functions are from affix/profiles/obex/obex_io.c -- 2.15.0 ================================================ FILE: package/ussp-push/Config.in ================================================ config BR2_PACKAGE_USSP_PUSH bool "ussp-push" depends on !BR2_STATIC_LIBS # bluez5_utils depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, alsa-lib, libglib2 depends on BR2_USE_MMU # dbus depends on BR2_TOOLCHAIN_HAS_SYNC_4 # bluez5_utils depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # bluez5_utils select BR2_PACKAGE_OPENOBEX select BR2_PACKAGE_BLUEZ5_UTILS help ussp-push is an OBEX object pusher for Linux, using the BlueZ BlueTooth stack. http://www.xmailserver.org/ussp-push.html comment "ussp-push needs a toolchain w/ wchar, threads, dynamic library, headers >= 3.4" 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_TOOLCHAIN_HEADERS_AT_LEAST_3_4 ================================================ FILE: package/ussp-push/ussp-push.hash ================================================ # Locally calculated sha256 bb2748eaed6164812555b4a1e186c4f2820c5ef9ce30f12d7aac28a452719bbd ussp-push-0.11.tar.gz # License files, locally calculated sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 COPYING ================================================ FILE: package/ussp-push/ussp-push.mk ================================================ ################################################################################ # # ussp-push # ################################################################################ USSP_PUSH_VERSION = 0.11 USSP_PUSH_SITE = http://www.xmailserver.org USSP_PUSH_LICENSE = GPL-2.0+ USSP_PUSH_LICENSE_FILES = COPYING USSP_PUSH_DEPENDENCIES = bluez5_utils openobex $(eval $(autotools-package)) ================================================ FILE: package/ustream-ssl/Config.in ================================================ config BR2_PACKAGE_USTREAM_SSL bool "ustream-ssl" depends on !BR2_STATIC_LIBS #libubox select BR2_PACKAGE_LIBUBOX select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_MBEDTLS help ustream SSL wrapper https://git.openwrt.org/?p=project/ustream-ssl.git;a=summary comment "ustream-ssl needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS ================================================ FILE: package/ustream-ssl/ustream-ssl.hash ================================================ # Locally computed sha256 e77e579b718085c1447339e0fcd5385b85a783d5c92544e48a6b37b1695a7f39 ustream-ssl-68d09243b6fd4473004b27ff6483352e76e6af1a-br1.tar.gz sha256 cf28f0f01a57423983fa062eb0f04bb1a78891863cb58c53059c3d8cb52c1dd4 ustream-ssl.h ================================================ FILE: package/ustream-ssl/ustream-ssl.mk ================================================ ################################################################################ # # ustream-ssl # ################################################################################ USTREAM_SSL_VERSION = 68d09243b6fd4473004b27ff6483352e76e6af1a USTREAM_SSL_SITE = https://git.openwrt.org/project/ustream-ssl.git USTREAM_SSL_SITE_METHOD = git USTREAM_SSL_LICENSE = ISC USTREAM_SSL_LICENSE_FILES = ustream-ssl.h USTREAM_SSL_INSTALL_STAGING = YES USTREAM_SSL_DEPENDENCIES = libubox ifeq ($(BR2_PACKAGE_MBEDTLS),y) USTREAM_SSL_DEPENDENCIES += mbedtls USTREAM_SSL_CONF_OPTS += -DMBEDTLS=ON else USTREAM_SSL_DEPENDENCIES += openssl endif $(eval $(cmake-package)) ================================================ FILE: package/utf8proc/Config.in ================================================ config BR2_PACKAGE_UTF8PROC bool "utf8proc" help A clean C library for processing UTF-8 Unicode data. https://juliastrings.github.io/utf8proc ================================================ FILE: package/utf8proc/utf8proc.hash ================================================ # Locally calculated sha256 4c06a9dc4017e8a2438ef80ee371d45868bda2237a98b26554de7a95406b283b utf8proc-2.6.1.tar.gz sha256 fbc720fcc90fb44396985646f67e4d19be03e0c0539f7138ed9dc6efba49dc49 LICENSE.md ================================================ FILE: package/utf8proc/utf8proc.mk ================================================ ################################################################################ # # utf8proc # ################################################################################ UTF8PROC_VERSION = 2.6.1 UTF8PROC_SITE = $(call github,JuliaStrings,utf8proc,v$(UTF8PROC_VERSION)) UTF8PROC_LICENSE = MIT UTF8PROC_LICENSE_FILES = LICENSE.md UTF8PROC_INSTALL_STAGING = YES UTF8PROC_SUPPORTS_IN_SOURCE_BUILD = NO $(eval $(cmake-package)) ================================================ FILE: package/util-linux/0001-libuuid-include-c-h-to-cover-restrict-keyword.patch ================================================ From 5f9b88f43ba7f98f81bde3538d5f4e5cd1a6c01c Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 5 Aug 2021 09:46:21 +0200 Subject: libuuid: include c.h to cover restrict keyword References: https://github.com/karelzak/util-linux/issues/1405 Signed-off-by: Karel Zak [Retrieved from: https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=5f9b88f43ba7f98f81bde3538d5f4e5cd1a6c01c] Signed-off-by: Fabrice Fontaine --- libuuid/src/unparse.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libuuid/src/unparse.c b/libuuid/src/unparse.c index f9a5e4315..ffeed2ed6 100644 --- a/libuuid/src/unparse.c +++ b/libuuid/src/unparse.c @@ -33,6 +33,7 @@ */ #include +#include "c.h" #include "uuidP.h" -- cgit 1.2.3-1.el7 ================================================ FILE: package/util-linux/0002-libblkid-don-t-mark-cache-as-probed-if-sys-not-available.patch ================================================ From 84d38ae3eca523ef990cb848563cc63de25266e6 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Fri, 19 Nov 2021 14:19:03 +0100 Subject: [PATCH] libblkid: don't mark cache as "probed" if /sys not available For "mount --all" we need to read the cache more than once in a short time. The library checks the delay between probes, and if the delay is too short, it does not read devices. This is a problem on boot when there are no /sys, and the cache is empty. In this case, we need to check for /sys until it's available constantly. https://github.com/util-linux/util-linux/issues/1492 Signed-off-by: Karel Zak [Retrieved from: https://github.com/util-linux/util-linux/commit/84d38ae3eca523ef990cb848563cc63de25266e6] Signed-off-by: Fabrice Fontaine --- libblkid/src/devname.c | 26 +++++++++++++++++--------- libblkid/src/resolve.c | 2 +- libblkid/src/tag.c | 8 +++++--- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/libblkid/src/devname.c b/libblkid/src/devname.c index 90a8245fc9..9a173e3489 100644 --- a/libblkid/src/devname.c +++ b/libblkid/src/devname.c @@ -429,6 +429,8 @@ sysfs_probe_all(blkid_cache cache, int only_if_new, int only_removable) if (!sysfs) return -BLKID_ERR_SYSFS; + DBG(DEVNAME, ul_debug(" probe /sys/block")); + /* scan /sys/block */ while ((dev = xreaddir(sysfs))) { DIR *dir = NULL; @@ -533,14 +535,18 @@ sysfs_probe_all(blkid_cache cache, int only_if_new, int only_removable) /* * Read the device data for all available block devices in the system. */ -static int probe_all(blkid_cache cache, int only_if_new) +static int probe_all(blkid_cache cache, int only_if_new, int update_interval) { + int rc; + if (!cache) return -BLKID_ERR_PARAM; if (cache->bic_flags & BLKID_BIC_FL_PROBED && - time(NULL) - cache->bic_time < BLKID_PROBE_INTERVAL) + time(NULL) - cache->bic_time < BLKID_PROBE_INTERVAL) { + DBG(PROBE, ul_debug("don't re-probe [delay < %d]", BLKID_PROBE_INTERVAL)); return 0; + } blkid_read_cache(cache); #ifdef VG_DIR @@ -548,7 +554,13 @@ static int probe_all(blkid_cache cache, int only_if_new) #endif ubi_probe_all(cache, only_if_new); - sysfs_probe_all(cache, only_if_new, 0); + rc = sysfs_probe_all(cache, only_if_new, 0); + + /* Don't mark the change as "probed" if /sys not avalable */ + if (update_interval && rc == 0) { + cache->bic_time = time(NULL); + cache->bic_flags |= BLKID_BIC_FL_PROBED; + } blkid_flush_cache(cache); return 0; @@ -567,11 +579,7 @@ int blkid_probe_all(blkid_cache cache) int ret; DBG(PROBE, ul_debug("Begin blkid_probe_all()")); - ret = probe_all(cache, 0); - if (ret == 0) { - cache->bic_time = time(NULL); - cache->bic_flags |= BLKID_BIC_FL_PROBED; - } + ret = probe_all(cache, 0, 1); DBG(PROBE, ul_debug("End blkid_probe_all() [rc=%d]", ret)); return ret; } @@ -589,7 +597,7 @@ int blkid_probe_all_new(blkid_cache cache) int ret; DBG(PROBE, ul_debug("Begin blkid_probe_all_new()")); - ret = probe_all(cache, 1); + ret = probe_all(cache, 1, 0); DBG(PROBE, ul_debug("End blkid_probe_all_new() [rc=%d]", ret)); return ret; } diff --git a/libblkid/src/resolve.c b/libblkid/src/resolve.c index 641b022860..16653fa8e1 100644 --- a/libblkid/src/resolve.c +++ b/libblkid/src/resolve.c @@ -32,7 +32,7 @@ char *blkid_get_tag_value(blkid_cache cache, const char *tagname, blkid_cache c = cache; char *ret = NULL; - DBG(TAG, ul_debug("looking for %s on %s", tagname, devname)); + DBG(TAG, ul_debug("looking for tag %s on %s device", tagname, devname)); if (!devname) return NULL; diff --git a/libblkid/src/tag.c b/libblkid/src/tag.c index 390a648648..178336505f 100644 --- a/libblkid/src/tag.c +++ b/libblkid/src/tag.c @@ -326,14 +326,14 @@ blkid_dev blkid_find_dev_with_tag(blkid_cache cache, blkid_dev dev; int pri; struct list_head *p; - int probe_new = 0; + int probe_new = 0, probe_all = 0; if (!cache || !type || !value) return NULL; blkid_read_cache(cache); - DBG(TAG, ul_debug("looking for %s=%s in cache", type, value)); + DBG(TAG, ul_debug("looking for tag %s=%s in cache", type, value)); try_again: pri = -1; @@ -366,9 +366,11 @@ blkid_dev blkid_find_dev_with_tag(blkid_cache cache, goto try_again; } - if (!dev && !(cache->bic_flags & BLKID_BIC_FL_PROBED)) { + if (!dev && !probe_all + && !(cache->bic_flags & BLKID_BIC_FL_PROBED)) { if (blkid_probe_all(cache) < 0) return NULL; + probe_all++; goto try_again; } return dev; ================================================ FILE: package/util-linux/Config.in ================================================ menuconfig BR2_PACKAGE_UTIL_LINUX bool "util-linux" help Various useful/essential linux libraries and utilities. Things like mkfs, mkswap, swapon, fdisk, mount, dmesg, etc... http://www.kernel.org/pub/linux/utils/util-linux/ if BR2_PACKAGE_UTIL_LINUX config BR2_PACKAGE_UTIL_LINUX_LIBS bool config BR2_PACKAGE_UTIL_LINUX_LIBBLKID bool "libblkid" depends on BR2_USE_MMU # fork() help Install libblkid. config BR2_PACKAGE_UTIL_LINUX_LIBFDISK bool "libfdisk" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Install libfdisk. config BR2_PACKAGE_UTIL_LINUX_LIBMOUNT bool "libmount" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_UTIL_LINUX_LIBBLKID help Install libmount. config BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS bool "libsmartcols" depends on BR2_USE_MMU # fork() help Install libsmartcols. config BR2_PACKAGE_UTIL_LINUX_LIBUUID bool "libuuid" help Install libuuid. config BR2_PACKAGE_UTIL_LINUX_BINARIES bool "basic set" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_LIBFDISK select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Install the basic set of util-linux binaries. blkdiscard, blkid, blockdev, chcpu, choom, col, colcrt, colrm, column, ctrlaltdel, dmesg, fdisk, fincore, findfs, findmnt, flock, fsfreeze, fstrim, getopt, hexdump, ipcmk, isosize, ldattach, look, lsblk, lscpu, lsipc, lslocks, lsns, mcookie, mkfs, mkswap, namei, prlimit, readprofile, renice, rev, rtcwake, script, scriptlive, scriptreplay, setarch, setsid, sfdisk, swaplabel, swapoff, swapon, uuidgen, uuidparse, whereis, wipefs The setarch utility also installs architecture-specific symlinks like linux32, linux64, uname26, i386 and x86_64. config BR2_PACKAGE_UTIL_LINUX_AGETTY bool "agetty" depends on BR2_USE_MMU # fork() help Alternative linux getty config BR2_PACKAGE_UTIL_LINUX_BFS bool "bfs" help SCO bfs filesystem support config BR2_PACKAGE_UTIL_LINUX_CAL bool "cal" help Display a calendar, or some part of it config BR2_PACKAGE_UTIL_LINUX_CHFN_CHSH bool "chfn/chsh" depends on (BR2_ENABLE_LOCALE && BR2_USE_WCHAR) # linux-pam depends on !BR2_STATIC_LIBS 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 toolchain w/ wchar, locale, dynamic library" depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \ || BR2_STATIC_LIBS config BR2_PACKAGE_UTIL_LINUX_CHMEM bool "chmem" help Sets a particular size or range of memory online or offline config BR2_PACKAGE_UTIL_LINUX_CRAMFS bool "cramfs utilities" select BR2_PACKAGE_ZLIB help Utilities for compressed ROM file system (fsck.cramfs, mkfs.cramfs) config BR2_PACKAGE_UTIL_LINUX_EJECT bool "eject" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Eject removable media config BR2_PACKAGE_UTIL_LINUX_FALLOCATE bool "fallocate" help Preallocate space to a file config BR2_PACKAGE_UTIL_LINUX_FDFORMAT bool "fdformat" help Low-level format a floppy disk config BR2_PACKAGE_UTIL_LINUX_FSCK bool "fsck" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Check and repair a linux filesystem config BR2_PACKAGE_UTIL_LINUX_HARDLINK bool "hardlink" help Consolidate duplicate files via hardlinks config BR2_PACKAGE_UTIL_LINUX_HWCLOCK bool "hwclock" help Query or set the hardware clock (RTC) config BR2_PACKAGE_UTIL_LINUX_IPCRM bool "ipcrm" help Remove certain IPC resources config BR2_PACKAGE_UTIL_LINUX_IPCS bool "ipcs" help Show information on IPC facilities config BR2_PACKAGE_UTIL_LINUX_KILL bool "kill" help Send a signal to a process config BR2_PACKAGE_UTIL_LINUX_LAST bool "last" help Show a listing of last logged in users config BR2_PACKAGE_UTIL_LINUX_LINE bool "line" help Read one line config BR2_PACKAGE_UTIL_LINUX_LOGGER bool "logger" help Enter messages into the system log config BR2_PACKAGE_UTIL_LINUX_LOGIN bool "login" depends on BR2_ENABLE_LOCALE # linux-pam depends on BR2_USE_WCHAR # linux-pam depends on !BR2_STATIC_LIBS # linux-pam depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam depends on BR2_USE_MMU # fork(), linux-pam select BR2_PACKAGE_LINUX_PAM help Begin a session on the system comment "login 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 config BR2_PACKAGE_UTIL_LINUX_LOSETUP bool "losetup" depends on BR2_USE_MMU # libsmartcols select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS help Set up and control loop devices config BR2_PACKAGE_UTIL_LINUX_LSLOGINS bool "lslogins" depends on BR2_USE_MMU # libsmartcols select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS help Display information about known users in the system config BR2_PACKAGE_UTIL_LINUX_LSMEM bool "lsmem" depends on BR2_USE_MMU # libsmartcols select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS help List the ranges of available memory with their online status config BR2_PACKAGE_UTIL_LINUX_MESG bool "mesg" help Control write access to your terminal config BR2_PACKAGE_UTIL_LINUX_MINIX bool "minix" depends on BR2_USE_MMU # fork() help Minix filesystem support config BR2_PACKAGE_UTIL_LINUX_MORE bool "more" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NCURSES help File perusal filter for crt viewing config BR2_PACKAGE_UTIL_LINUX_MOUNT bool "mount/umount" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Mount/unmount filesystems config BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT bool "mountpoint" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_LIBUUID help See if a directory is a mountpoint config BR2_PACKAGE_UTIL_LINUX_NEWGRP bool "newgrp" help Log in to a new group config BR2_PACKAGE_UTIL_LINUX_NOLOGIN bool "nologin" help Politely refuse a login config BR2_PACKAGE_UTIL_LINUX_NSENTER bool "nsenter" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 help Enter the namespaces of another process comment "nsenter needs a toolchain w/ headers >= 3.0" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 config BR2_PACKAGE_UTIL_LINUX_PG bool "pg" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NCURSES help Browse pagewise through text files config BR2_PACKAGE_UTIL_LINUX_PARTX bool "partition utilities" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS select BR2_PACKAGE_UTIL_LINUX_LIBUUID help Partition utilities (addpart, delpart, partx) config BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT bool "pivot_root" help Change the root filesystem config BR2_PACKAGE_UTIL_LINUX_RAW bool "raw" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14 help Build a linux raw character device comment "raw needs a toolchain w/ headers < 5.14" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14 config BR2_PACKAGE_UTIL_LINUX_RENAME bool "rename" help Rename files config BR2_PACKAGE_UTIL_LINUX_RFKILL bool "rfkill" depends on BR2_USE_MMU # libsmartcols select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS help Tool for enabling and disabling wireless devices. This new implementation is based upon, and backward compatible with, the original rfkill from Johannes Berg and Marcel Holtmann. config BR2_PACKAGE_UTIL_LINUX_RUNUSER bool "runuser" 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 # fork(), linux-pam select BR2_PACKAGE_LINUX_PAM help Run a command with substitute user and group ID (does not need to ask for a password, because it may be executed by the root user only) comment "runuser 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 config BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS bool "scheduling utilities" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 help Scheduling utilities (chrt, ionice, taskset, uclampset) comment "scheduling utilities need a toolchain w/ headers >= 3.14" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 config BR2_PACKAGE_UTIL_LINUX_SETPRIV bool "setpriv" select BR2_PACKAGE_LIBCAP_NG help Run a program with different Linux privilege settings config BR2_PACKAGE_UTIL_LINUX_SETTERM bool "setterm" select BR2_PACKAGE_NCURSES help Set terminal attributes config BR2_PACKAGE_UTIL_LINUX_SU bool "su" 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 # fork(), linux-pam select BR2_PACKAGE_LINUX_PAM help Run a command with substitute user and group ID comment "su 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 config BR2_PACKAGE_UTIL_LINUX_SULOGIN bool "sulogin" depends on BR2_USE_MMU # fork() help Single-user login config BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT bool "switch_root" depends on BR2_USE_MMU # fork() help Switch to another filesystem as the root of the mount tree config BR2_PACKAGE_UTIL_LINUX_TUNELP bool "tunelp" select BR2_PACKAGE_NCURSES help Set various parameters for the lp device config BR2_PACKAGE_UTIL_LINUX_UL bool "ul" select BR2_PACKAGE_NCURSES help Do underlining config BR2_PACKAGE_UTIL_LINUX_UNSHARE bool "unshare" depends on BR2_USE_MMU # fork() help Run program with some namespaces unshared from parent config BR2_PACKAGE_UTIL_LINUX_UTMPDUMP bool "utmpdump" help Dump UTMP and WTMP files in raw format config BR2_PACKAGE_UTIL_LINUX_UUIDD bool "uuidd" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_UTIL_LINUX_LIBUUID help UUID generation daemon config BR2_PACKAGE_UTIL_LINUX_VIPW bool "vipw" depends on BR2_USE_MMU # fork() help Edit the password, group, shadow-password or shadow-group file config BR2_PACKAGE_UTIL_LINUX_WALL bool "wall" depends on BR2_USE_MMU # fork() help Send a message to everybody's terminal config BR2_PACKAGE_UTIL_LINUX_WIPEFS bool "wipefs" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS help wipefs can erase filesystem, raid or partition-table signatures (magic strings) from the specified device to make the signatures invisible for libblkid. wipefs does not erase the filesystem itself nor any other data from the device. config BR2_PACKAGE_UTIL_LINUX_WDCTL bool "wdctl" depends on BR2_USE_MMU # libsmartcols select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS help Shows hardware watchdog status config BR2_PACKAGE_UTIL_LINUX_WRITE bool "write" help Send a message to another user config BR2_PACKAGE_UTIL_LINUX_ZRAMCTL bool "zramctl" depends on BR2_USE_MMU # libsmartcols select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS help Set up and control zram devices endif ================================================ FILE: package/util-linux/Config.in.host ================================================ config BR2_PACKAGE_HOST_UTIL_LINUX bool "host util-linux" help Various useful/essential linux libraries and utilities. Things like mkfs, mkswap, swapon, fdisk, mount, dmesg, etc... http://www.kernel.org/pub/linux/utils/util-linux/ ================================================ FILE: package/util-linux/su.pam ================================================ auth sufficient pam_rootok.so auth required pam_wheel.so use_uid auth required pam_env.so auth required pam_unix.so nullok account required pam_unix.so password required pam_unix.so nullok session required pam_selinux.so close session required pam_limits.so session required pam_env.so session required pam_unix.so session optional pam_lastlog.so session required pam_selinux.so open ================================================ FILE: package/util-linux/util-linux-libs/util-linux-libs.mk ================================================ ################################################################################ # # util-linux-libs # ################################################################################ # Please keep this file as similar as possible to util-linux.mk UTIL_LINUX_LIBS_VERSION = $(UTIL_LINUX_VERSION) UTIL_LINUX_LIBS_SOURCE = $(UTIL_LINUX_SOURCE) UTIL_LINUX_LIBS_SITE = $(UTIL_LINUX_SITE) UTIL_LINUX_LIBS_DL_SUBDIR = $(UTIL_LINUX_DL_SUBDIR) UTIL_LINUX_LIBS_CPE_ID_VENDOR = $(UTIL_LINUX_CPE_ID_VENDOR) UTIL_LINUX_LIBS_CPE_ID_PRODUCT = $(UTIL_LINUX_CPE_ID_PRODUCT) # README.licensing claims that some files are GPL-2.0 only, but this is not # true. Some files are GPL-3.0+ but only in tests and optionally in hwclock # (but we disable that option). rfkill uses an ISC-style license. UTIL_LINUX_LIBS_LICENSE = LGPL-2.1+ (libblkid, libfdisk, libmount), BSD-3-Clause (libuuid) UTIL_LINUX_LIBS_LICENSE_FILES = README.licensing \ Documentation/licenses/COPYING.BSD-3-Clause \ Documentation/licenses/COPYING.LGPL-2.1-or-later UTIL_LINUX_LIBS_INSTALL_STAGING = YES UTIL_LINUX_LIBS_DEPENDENCIES = \ host-pkgconf \ $(TARGET_NLS_DEPENDENCIES) UTIL_LINUX_LIBS_CONF_OPTS += \ --disable-rpath \ --disable-makeinstall-chown UTIL_LINUX_LIBS_LINK_LIBS = $(TARGET_NLS_LIBS) # Prevent the installation from attempting to move shared libraries from # ${usrlib_execdir} (/usr/lib) to ${libdir} (/lib), since both paths are # the same when merged usr is in use. ifeq ($(BR2_ROOTFS_MERGED_USR),y) UTIL_LINUX_LIBS_CONF_OPTS += --bindir=/usr/bin --sbindir=/usr/sbin --libdir=/usr/lib endif # systemd depends on util-linux-libs so we disable systemd support UTIL_LINUX_LIBS_CONF_OPTS += \ --without-systemd \ --with-systemdsystemunitdir=no # systemd/eudev depend on util-linux-libs so we disable udev support UTIL_LINUX_LIBS_CONF_OPTS += --without-udev # No libs use wchar UTIL_LINUX_LIBS_CONF_OPTS += --disable-widechar # No libs use ncurses UTIL_LINUX_LIBS_CONF_OPTS += --without-ncursesw --without-ncurses # Unfortunately, the util-linux does LIBS="" at the end of its # configure script. So we have to pass the proper LIBS value when # calling the configure script to make configure tests pass properly, # and then pass it again at build time. UTIL_LINUX_LIBS_CONF_ENV += LIBS="$(UTIL_LINUX_LIBS_LINK_LIBS)" UTIL_LINUX_LIBS_MAKE_OPTS += LIBS="$(UTIL_LINUX_LIBS_LINK_LIBS)" # libmount optionally uses selinux ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT)$(BR2_PACKAGE_LIBSELINUX),yy) UTIL_LINUX_LIBS_DEPENDENCIES += libselinux UTIL_LINUX_LIBS_CONF_OPTS += --with-selinux else UTIL_LINUX_LIBS_CONF_OPTS += --without-selinux endif # Disable utilities UTIL_LINUX_LIBS_CONF_OPTS += \ --disable-all-programs \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),--enable-libblkid,--disable-libblkid) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBFDISK),--enable-libfdisk,--disable-libfdisk) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),--enable-libmount,--disable-libmount) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS),--enable-libsmartcols,--disable-libsmartcols) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBUUID),--enable-libuuid,--disable-libuuid) # libmount python bindings are separate, will be installed by full util-linux UTIL_LINUX_LIBS_CONF_OPTS += --without-python --disable-pylibmount # No libs use readline UTIL_LINUX_LIBS_CONF_OPTS += --without-readline # No libs use audit UTIL_LINUX_LIBS_CONF_OPTS += --without-audit # No libs use libmagic UTIL_LINUX_LIBS_CONF_OPTS += --without-libmagic $(eval $(autotools-package)) ================================================ FILE: package/util-linux/util-linux.hash ================================================ # From https://www.kernel.org/pub/linux/utils/util-linux/v2.37/sha256sums.asc sha256 6a0764c1aae7fb607ef8a6dd2c0f6c47d5e5fd27aa08820abaad9ec14e28e9d9 util-linux-2.37.2.tar.xz # License files, locally calculated sha256 869660b5269f4f40a8a679da7f403ea3a6e71d46087aab5e14871b09bcb55955 README.licensing sha256 9b718a9460fed5952466421235bc79eb49d4e9eacc920d7a9dd6285ab8fd6c6d Documentation/licenses/COPYING.BSD-3-Clause sha256 ba7640f00d93e72e92b94b9d71f25ec53bac2f1682f5c4adcccb0018359f60f8 Documentation/licenses/COPYING.BSD-4-Clause-UC sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 Documentation/licenses/COPYING.GPL-2.0-or-later sha256 e53348ce276358e9997014071c5294b36a18c4b34f32f00ee57b9acce0aafd63 Documentation/licenses/COPYING.ISC sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 Documentation/licenses/COPYING.LGPL-2.1-or-later ================================================ FILE: package/util-linux/util-linux.mk ================================================ ################################################################################ # # util-linux # ################################################################################ # When making changes to this file, please check if # util-linux-libs/util-linux-libs.mk needs to be updated accordingly as well. UTIL_LINUX_VERSION_MAJOR = 2.37 UTIL_LINUX_VERSION = $(UTIL_LINUX_VERSION_MAJOR).2 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) # README.licensing claims that some files are GPL-2.0 only, but this is not # true. Some files are GPL-3.0+ but only in tests and optionally in hwclock # (but we disable that option). rfkill uses an ISC-style license. UTIL_LINUX_LICENSE = GPL-2.0+, BSD-4-Clause, LGPL-2.1+ (libblkid, libfdisk, libmount), BSD-3-Clause (libuuid), ISC (rfkill) UTIL_LINUX_LICENSE_FILES = README.licensing \ Documentation/licenses/COPYING.BSD-3-Clause \ Documentation/licenses/COPYING.BSD-4-Clause-UC \ Documentation/licenses/COPYING.GPL-2.0-or-later \ Documentation/licenses/COPYING.ISC \ Documentation/licenses/COPYING.LGPL-2.1-or-later UTIL_LINUX_CPE_ID_VENDOR = kernel UTIL_LINUX_INSTALL_STAGING = YES UTIL_LINUX_DEPENDENCIES = \ host-pkgconf \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBS),util-linux-libs) \ $(TARGET_NLS_DEPENDENCIES) UTIL_LINUX_CONF_OPTS += \ --disable-rpath \ --disable-makeinstall-chown UTIL_LINUX_LINK_LIBS = $(TARGET_NLS_LIBS) HOST_UTIL_LINUX_DEPENDENCIES = host-pkgconf # We also don't want the host-python dependency HOST_UTIL_LINUX_CONF_OPTS = \ --without-systemd \ --with-systemdsystemunitdir=no \ --without-python ifneq ($(BR2_PACKAGE_UTIL_LINUX_BINARIES)$(BR2_PACKAGE_UTIL_LINUX_CRAMFS)$(BR2_PACKAGE_UTIL_LINUX_FSCK)$(BR2_PACKAGE_UTIL_LINUX_LOSETUP),) UTIL_LINUX_SELINUX_MODULES = fstools endif # Prevent the installation from attempting to move shared libraries from # ${usrlib_execdir} (/usr/lib) to ${libdir} (/lib), since both paths are # the same when merged usr is in use. ifeq ($(BR2_ROOTFS_MERGED_USR),y) UTIL_LINUX_CONF_OPTS += --bindir=/usr/bin --sbindir=/usr/sbin --libdir=/usr/lib endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) UTIL_LINUX_CONF_OPTS += --with-systemd --with-systemdsystemunitdir=/usr/lib/systemd/system UTIL_LINUX_DEPENDENCIES += systemd else UTIL_LINUX_CONF_OPTS += --without-systemd --with-systemdsystemunitdir=no endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) UTIL_LINUX_CONF_OPTS += --with-udev UTIL_LINUX_DEPENDENCIES += udev else UTIL_LINUX_CONF_OPTS += --without-udev endif ifeq ($(BR2_PACKAGE_NCURSES),y) UTIL_LINUX_DEPENDENCIES += ncurses ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) UTIL_LINUX_CONF_OPTS += --with-ncursesw UTIL_LINUX_CONF_ENV += NCURSESW6_CONFIG=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS) else UTIL_LINUX_CONF_OPTS += --without-ncursesw --with-ncurses --disable-widechar UTIL_LINUX_CONF_ENV += NCURSES6_CONFIG=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS) endif else ifeq ($(BR2_USE_WCHAR),y) UTIL_LINUX_CONF_OPTS += --enable-widechar else UTIL_LINUX_CONF_OPTS += --disable-widechar endif UTIL_LINUX_CONF_OPTS += --without-ncursesw --without-ncurses endif # Unfortunately, the util-linux does LIBS="" at the end of its # configure script. So we have to pass the proper LIBS value when # calling the configure script to make configure tests pass properly, # and then pass it again at build time. UTIL_LINUX_CONF_ENV += LIBS="$(UTIL_LINUX_LINK_LIBS)" UTIL_LINUX_MAKE_OPTS += LIBS="$(UTIL_LINUX_LINK_LIBS)" ifeq ($(BR2_PACKAGE_LIBSELINUX),y) UTIL_LINUX_DEPENDENCIES += libselinux UTIL_LINUX_CONF_OPTS += --with-selinux else UTIL_LINUX_CONF_OPTS += --without-selinux define UTIL_LINUX_SELINUX_PAMFILES_TWEAK $(foreach f,su su-l, $(SED) '/^.*pam_selinux.so.*$$/d' \ $(TARGET_DIR)/etc/pam.d/$(f) ) endef endif # Used by setpriv UTIL_LINUX_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBCAP_NG),libcap-ng) # Used by cramfs utils UTIL_LINUX_DEPENDENCIES += $(if $(BR2_PACKAGE_ZLIB),zlib) # Used by login-utils UTIL_LINUX_DEPENDENCIES += $(if $(BR2_PACKAGE_LINUX_PAM),linux-pam) # Used by hardlink UTIL_LINUX_DEPENDENCIES += $(if $(BR2_PACKAGE_PCRE2),pcre2) # Disable/Enable utilities UTIL_LINUX_CONF_OPTS += \ $(if $(BR2_PACKAGE_UTIL_LINUX_BINARIES),--enable-all-programs,--disable-all-programs) \ $(if $(BR2_PACKAGE_UTIL_LINUX_AGETTY),--enable-agetty,--disable-agetty) \ $(if $(BR2_PACKAGE_UTIL_LINUX_BFS),--enable-bfs,--disable-bfs) \ $(if $(BR2_PACKAGE_UTIL_LINUX_CAL),--enable-cal,--disable-cal) \ $(if $(BR2_PACKAGE_UTIL_LINUX_CHFN_CHSH),--enable-chfn-chsh,--disable-chfn-chsh) \ $(if $(BR2_PACKAGE_UTIL_LINUX_CHMEM),--enable-chmem,--disable-chmem) \ $(if $(BR2_PACKAGE_UTIL_LINUX_CRAMFS),--enable-cramfs,--disable-cramfs) \ $(if $(BR2_PACKAGE_UTIL_LINUX_EJECT),--enable-eject,--disable-eject) \ $(if $(BR2_PACKAGE_UTIL_LINUX_FALLOCATE),--enable-fallocate,--disable-fallocate) \ $(if $(BR2_PACKAGE_UTIL_LINUX_FDFORMAT),--enable-fdformat,--disable-fdformat) \ $(if $(BR2_PACKAGE_UTIL_LINUX_FSCK),--enable-fsck,--disable-fsck) \ $(if $(BR2_PACKAGE_UTIL_LINUX_HARDLINK),--enable-hardlink,--disable-hardlink) \ $(if $(BR2_PACKAGE_UTIL_LINUX_HWCLOCK),--enable-hwclock --disable-hwclock-gplv3,--disable-hwclock) \ $(if $(BR2_PACKAGE_UTIL_LINUX_IPCRM),--enable-ipcrm,--disable-ipcrm) \ $(if $(BR2_PACKAGE_UTIL_LINUX_IPCS),--enable-ipcs,--disable-ipcs) \ $(if $(BR2_PACKAGE_UTIL_LINUX_KILL),--enable-kill,--disable-kill) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LAST),--enable-last,--disable-last) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),--enable-libblkid,--disable-libblkid) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBFDISK),--enable-libfdisk,--disable-libfdisk) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),--enable-libmount,--disable-libmount) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS),--enable-libsmartcols,--disable-libsmartcols) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBUUID),--enable-libuuid,--disable-libuuid) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LINE),--enable-line,--disable-line) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LOGGER),--enable-logger,--disable-logger) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LOGIN),--enable-login,--disable-login) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LOSETUP),--enable-losetup,--disable-losetup) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LSLOGINS),--enable-lslogins,--disable-lslogins) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LSMEM),--enable-lsmem,--disable-lsmem) \ $(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) \ $(if $(BR2_PACKAGE_UTIL_LINUX_MOUNT),--enable-mount,--disable-mount) \ $(if $(BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT),--enable-mountpoint,--disable-mountpoint) \ $(if $(BR2_PACKAGE_UTIL_LINUX_NEWGRP),--enable-newgrp,--disable-newgrp) \ $(if $(BR2_PACKAGE_UTIL_LINUX_NOLOGIN),--enable-nologin,--disable-nologin) \ $(if $(BR2_PACKAGE_UTIL_LINUX_NSENTER),--enable-nsenter,--disable-nsenter) \ $(if $(BR2_PACKAGE_UTIL_LINUX_PARTX),--enable-partx,--disable-partx) \ $(if $(BR2_PACKAGE_UTIL_LINUX_PG),--enable-pg,--disable-pg) \ $(if $(BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT),--enable-pivot_root,--disable-pivot_root) \ $(if $(BR2_PACKAGE_UTIL_LINUX_RAW),--enable-raw,--disable-raw) \ $(if $(BR2_PACKAGE_UTIL_LINUX_RENAME),--enable-rename,--disable-rename) \ $(if $(BR2_PACKAGE_UTIL_LINUX_RFKILL),--enable-rfkill,--disable-rfkill) \ $(if $(BR2_PACKAGE_UTIL_LINUX_RUNUSER),--enable-runuser,--disable-runuser) \ $(if $(BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS),--enable-schedutils,--disable-schedutils) \ $(if $(BR2_PACKAGE_UTIL_LINUX_SETPRIV),--enable-setpriv,--disable-setpriv) \ $(if $(BR2_PACKAGE_UTIL_LINUX_SETTERM),--enable-setterm,--disable-setterm) \ $(if $(BR2_PACKAGE_UTIL_LINUX_SU),--enable-su,--disable-su) \ $(if $(BR2_PACKAGE_UTIL_LINUX_SULOGIN),--enable-sulogin,--disable-sulogin) \ $(if $(BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT),--enable-switch_root,--disable-switch_root) \ $(if $(BR2_PACKAGE_UTIL_LINUX_TUNELP),--enable-tunelp,--disable-tunelp) \ $(if $(BR2_PACKAGE_UTIL_LINUX_UL),--enable-ul,--disable-ul) \ $(if $(BR2_PACKAGE_UTIL_LINUX_UNSHARE),--enable-unshare,--disable-unshare) \ $(if $(BR2_PACKAGE_UTIL_LINUX_UTMPDUMP),--enable-utmpdump,--disable-utmpdump) \ $(if $(BR2_PACKAGE_UTIL_LINUX_UUIDD),--enable-uuidd,--disable-uuidd) \ $(if $(BR2_PACKAGE_UTIL_LINUX_VIPW),--enable-vipw,--disable-vipw) \ $(if $(BR2_PACKAGE_UTIL_LINUX_WALL),--enable-wall,--disable-wall) \ $(if $(BR2_PACKAGE_UTIL_LINUX_WDCTL),--enable-wdctl,--disable-wdctl) \ $(if $(BR2_PACKAGE_UTIL_LINUX_WIPEFS),--enable-wipefs,--disable-wipefs) \ $(if $(BR2_PACKAGE_UTIL_LINUX_WRITE),--enable-write,--disable-write) \ $(if $(BR2_PACKAGE_UTIL_LINUX_ZRAMCTL),--enable-zramctl,--disable-zramctl) # In the host version of util-linux, we only require libuuid and # libmount (plus libblkid as an indirect dependency of libmount). # So disable all of the programs, unless BR2_PACKAGE_HOST_UTIL_LINUX is set HOST_UTIL_LINUX_CONF_OPTS += \ --enable-libblkid \ --enable-libmount \ --enable-libuuid \ --without-libmagic \ --without-ncurses \ --without-ncursesw \ --without-tinfo ifeq ($(BR2_PACKAGE_HOST_UTIL_LINUX),y) HOST_UTIL_LINUX_CONF_OPTS += --disable-makeinstall-chown # disable commands that have ncurses dependency, as well as # other ones that are useless on the host HOST_UTIL_LINUX_CONF_OPTS += \ --disable-agetty \ --disable-chfn-chsh \ --disable-chmem \ --disable-login \ --disable-lslogins \ --disable-mesg \ --disable-more \ --disable-newgrp \ --disable-nologin \ --disable-nsenter \ --disable-pg \ --disable-rfkill \ --disable-runuser \ --disable-schedutils \ --disable-setpriv \ --disable-setterm \ --disable-su \ --disable-sulogin \ --disable-tunelp \ --disable-ul \ --disable-unshare \ --disable-uuidd \ --disable-vipw \ --disable-wall \ --disable-wdctl \ --disable-write \ --disable-zramctl # Used by cramfs utils HOST_UTIL_LINUX_DEPENDENCIES += host-zlib else HOST_UTIL_LINUX_CONF_OPTS += --disable-all-programs endif # Install libmount Python bindings ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y) UTIL_LINUX_CONF_OPTS += --with-python UTIL_LINUX_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON),python,python3) ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y) UTIL_LINUX_CONF_OPTS += --enable-pylibmount else UTIL_LINUX_CONF_OPTS += --disable-pylibmount endif else UTIL_LINUX_CONF_OPTS += --without-python endif ifeq ($(BR2_PACKAGE_READLINE),y) UTIL_LINUX_CONF_OPTS += --with-readline UTIL_LINUX_LINK_LIBS += $(if $(BR2_STATIC_LIBS),-lcurses) UTIL_LINUX_DEPENDENCIES += readline else UTIL_LINUX_CONF_OPTS += --without-readline endif ifeq ($(BR2_PACKAGE_AUDIT),y) UTIL_LINUX_CONF_OPTS += --with-audit UTIL_LINUX_DEPENDENCIES += audit else UTIL_LINUX_CONF_OPTS += --without-audit endif ifeq ($(BR2_PACKAGE_FILE),y) UTIL_LINUX_CONF_OPTS += --with-libmagic UTIL_LINUX_DEPENDENCIES += file else UTIL_LINUX_CONF_OPTS += --without-libmagic endif # Install PAM configuration files ifeq ($(BR2_PACKAGE_UTIL_LINUX_SU)$(BR2_PACKAGE_LINUX_PAM),yy) define UTIL_LINUX_INSTALL_PAMFILES $(INSTALL) -D -m 0644 package/util-linux/su.pam \ $(TARGET_DIR)/etc/pam.d/su $(INSTALL) -D -m 0644 package/util-linux/su.pam \ $(TARGET_DIR)/etc/pam.d/su-l $(UTIL_LINUX_SELINUX_PAMFILES_TWEAK) endef UTIL_LINUX_POST_INSTALL_TARGET_HOOKS += UTIL_LINUX_INSTALL_PAMFILES endif # Install agetty->getty symlink to avoid breakage when there's no busybox ifeq ($(BR2_PACKAGE_UTIL_LINUX_AGETTY),y) ifeq ($(BR2_PACKAGE_BUSYBOX),) define UTIL_LINUX_GETTY_SYMLINK ln -sf agetty $(TARGET_DIR)/sbin/getty endef endif endif UTIL_LINUX_POST_INSTALL_TARGET_HOOKS += UTIL_LINUX_GETTY_SYMLINK $(eval $(autotools-package)) $(eval $(host-autotools-package)) # Must be included after the autotools-package call, to make sure all variables # are available include package/util-linux/util-linux-libs/util-linux-libs.mk ================================================ FILE: package/utp_com/Config.in.host ================================================ config BR2_PACKAGE_HOST_UTP_COM bool "host utp_com" help This package is used to send commands to hardware via Freescale's UTP protocol (similar to MFGTools) https://github.com/ixonos/utp_com ================================================ FILE: package/utp_com/utp_com.hash ================================================ # locally computed sha256 8b5ba0058a78de69faf6822bb10b457fff2f9e55dc112ccb81c35214b061c6e6 utp_com-dee512ced1e9367d223d22f10797fbf9aeacfab6.tar.gz sha256 a45d0bb572ed792ed34627a72621834b3ba92aab6e2cc4e04301dee7a728d753 LICENSE ================================================ FILE: package/utp_com/utp_com.mk ================================================ ################################################################################ # # utp_com # ################################################################################ UTP_COM_VERSION = dee512ced1e9367d223d22f10797fbf9aeacfab6 UTP_COM_SITE = $(call github,freescale,utp_com,$(UTP_COM_VERSION)) UTP_COM_LICENSE = GPL-2.0+ UTP_COM_LICENSE_FILES = LICENSE HOST_UTP_COM_DEPENDENCIES = host-sg3_utils define HOST_UTP_COM_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define HOST_UTP_COM_INSTALL_CMDS $(INSTALL) -D -m 755 $(@D)/utp_com $(HOST_DIR)/bin/utp_com endef $(eval $(host-generic-package)) ================================================ FILE: package/uvw/Config.in ================================================ config BR2_PACKAGE_UVW bool "uvw" depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv depends on BR2_USE_MMU # libuv depends on !BR2_STATIC_LIBS # libuv depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 select BR2_PACKAGE_LIBUV help Header-only, event based, tiny and easy to use libuv wrapper in modern C++. https://github.com/skypjack/uvw comment "uvw needs a toolchain w/ NPTL, dynamic library, C++, gcc >= 7" depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS || \ !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_7 depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 ================================================ FILE: package/uvw/uvw.hash ================================================ # Locally calculated sha256 30b0ba97a94d5e652490c6b1b32c95e608263f21cf3bc606308d09b3e3a114bf uvw-2.10.0_libuv_v1.42.tar.gz sha256 5de32af2469480cf3261c9781962e0887366666ba8ee1f4a32c386c77fc50c88 LICENSE ================================================ FILE: package/uvw/uvw.mk ================================================ ################################################################################ # # uvw # ################################################################################ UVW_VERSION = 2.10.0_libuv_v1.42 UVW_SITE = $(call github,skypjack,uvw,v$(UVW_VERSION)) UVW_INSTALL_STAGING = YES UVW_INSTALL_TARGET = NO UVW_SUPPORTS_IN_SOURCE_BUILD = NO UVW_DEPENDENCIES = libuv UVW_LICENSE = MIT UVW_LICENSE_FILES = LICENSE $(eval $(cmake-package)) ================================================ FILE: package/ux500-firmware/Config.in ================================================ config BR2_PACKAGE_UX500_FIRMWARE bool "ux500-firmware" help This package provides various binary firmware files (closed binary blobs) for the Azurewave AW-NH580 combo module (wifi, bt, gps). https://launchpad.net/~igloocommunity-maintainers/+archive/snowball/+files/ ================================================ FILE: package/ux500-firmware/ux500-firmware.hash ================================================ # locally computed hash sha256 81633274a9157c076e5e09b5addd81fbcef504b829fc801041cea50eea774bcd ux500-firmware_1.1.3-6linaro1.tar.gz sha256 b5bbc3fb3ff2f8e165b3bf60b25702d8970b3d7fe88b1c883f20615d550a7cb2 license.txt ================================================ FILE: package/ux500-firmware/ux500-firmware.mk ================================================ ################################################################################ # # ux500-firmware # ################################################################################ UX500_FIRMWARE_VERSION = 1.1.3-6 UX500_FIRMWARE_SOURCE = ux500-firmware_$(UX500_FIRMWARE_VERSION)linaro1.tar.gz UX500_FIRMWARE_SITE = https://launchpad.net/~igloocommunity-maintainers/+archive/snowball/+files UX500_FIRMWARE_LICENSE = Snowball click-wrap license UX500_FIRMWARE_LICENSE_FILES = license.txt UX500_FIRMWARE_REDISTRIBUTE = NO # The CG2900 linux driver has to load firmware named CG29XX_* but the firmware # filenames contained in this package are CG2900_* hence the code below define UX500_FIRMWARE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install for f in $(TARGET_DIR)/lib/firmware/CG2900* ; do \ mv $$f $${f/CG2900/CG29XX}; \ done endef $(eval $(generic-package)) ================================================ FILE: package/v4l2cpp/0001-no-log4cpp.patch.bak ================================================ diff --git a/Makefile b/Makefile index a51b316..60b801b 100644 --- a/Makefile +++ b/Makefile @@ -5,10 +5,6 @@ CXX ?= $(CROSS)g++ AR ?= $(CROSS)ar PREFIX?=/usr -ifneq ($(wildcard $(SYSROOT)$(PREFIX)/include/log4cpp/Category.hh),) -CXXFLAGS += -DHAVE_LOG4CPP -I $(SYSROOT)$(PREFIX)/include -endif - V4L2WRAPPER_CPP:=$(wildcard src/*.cpp) V4L2WRAPPER_OBJ:=$(V4L2WRAPPER_CPP:%.cpp=%.o) ================================================ FILE: package/v4l2cpp/0001-shared-lib.patch ================================================ diff --git a/Makefile b/Makefile index a51b316..7291248 100644 --- a/Makefile +++ b/Makefile @@ -5,16 +5,12 @@ CXX ?= $(CROSS)g++ AR ?= $(CROSS)ar PREFIX?=/usr -ifneq ($(wildcard $(SYSROOT)$(PREFIX)/include/log4cpp/Category.hh),) -CXXFLAGS += -DHAVE_LOG4CPP -I $(SYSROOT)$(PREFIX)/include -endif - V4L2WRAPPER_CPP:=$(wildcard src/*.cpp) V4L2WRAPPER_OBJ:=$(V4L2WRAPPER_CPP:%.cpp=%.o) .DEFAULT_GOAL := all -all: libv4l2wrapper.a +all: libv4l2wrapper.a libv4l2wrapper.so %.o: %.cpp $(CXX) -c -o $@ $< $(CXXFLAGS) @@ -22,12 +18,14 @@ all: libv4l2wrapper.a libv4l2wrapper.a: $(V4L2WRAPPER_OBJ) $(AR) rcs $@ $^ +libv4l2wrapper.so: $(V4L2WRAPPER_OBJ) + $(CXX) -shared -fPIC $(CXXFLAGS) -o $@ $^ clean: - -@$(RM) *.a $(V4L2WRAPPER_OBJ) + -@$(RM) *.a *.so $(V4L2WRAPPER_OBJ) install: mkdir -p $(PREFIX)/include/libv4l2cpp/ install -D -m 0755 inc/*.h $(PREFIX)/include/libv4l2cpp/ install -D -m 0755 *.a $(PREFIX)/lib - + install -D -m 0755 *.so $(PREFIX)/lib ================================================ FILE: package/v4l2cpp/Config.in ================================================ config BR2_PACKAGE_V4L2CPP bool "v4l2cpp" help Build the V4L2 C++ Wrapper for target use. ================================================ FILE: package/v4l2cpp/v4l2cpp.mk ================================================ ############################################################# # # v4l2cpp # ############################################################# V4L2CPP_VERSION=021d887dc531bcf74c766cb413f87e8fc92579e3 V4L2CPP_SITE = https://github.com/jasaw/libv4l2cpp.git V4L2CPP_SITE_METHOD = git V4L2CPP_LICENSE = UNLICENSE V4L2CPP_LICENSE_FILES = LICENSE V4L2CPP_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_STATIC_LIBS),y) V4L2CPP_CONFIG_TARGET = linux V4L2CPP_LIBRARY_LINK = $(TARGET_AR) cr else V4L2CPP_CONFIG_TARGET = linux-with-shared-libraries V4L2CPP_LIBRARY_LINK = $(TARGET_CC) -o V4L2CPP_CFLAGS += -fPIC endif ifndef ($(BR2_ENABLE_LOCALE),y) V4L2CPP_CFLAGS += -DLOCALE_NOT_USED endif define V4L2CPP_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" AR="$(TARGET_AR)" EXTRA_CXXFLAGS="$(V4L2CPP_CFLAGS)" -C $(@D) all endef define V4L2CPP_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) PREFIX="$(STAGING_DIR)/usr" -C $(@D) install $(INSTALL) -D -m 0755 $(@D)/libv4l2wrapper.so $(TARGET_DIR)/usr/lib endef $(eval $(generic-package)) ================================================ FILE: package/v4l2grab/Config.in ================================================ config BR2_PACKAGE_V4L2GRAB bool "v4l2grab" depends on BR2_TOOLCHAIN_HAS_THREADS # libv4l depends on BR2_USE_MMU # libv4l depends on !BR2_STATIC_LIBS # libv4l depends on BR2_INSTALL_LIBSTDCPP # libv4l depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libv4l select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBV4L help Utility for grabbing JPEGs form V4L2 devices. This tool is similar to v4l2grab available from libv4l contrib directory, but provides additional features such as JPEG output. http://www.twam.info/software/v4l2grab-grabbing-jpegs-from-v4l2-devices comment "v4l2grab needs a toolchain w/ threads, dynamic library, C++ and headers >= 3.0" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \ || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 ================================================ FILE: package/v4l2grab/v4l2grab.hash ================================================ # Locally calculated sha256 9a8d0d1ca5ac9fb9f66e00300bb3265d156cf1cb67eb30f6e6637c83b0b507a1 v4l2grab-f8d8844d52387b3db7b8736f5e86156d9374f781.tar.gz sha256 7fa0d45fe86fda646fada21ecfa7672e951b01c521aecd358f586facd65fb5b3 LICENSE.md ================================================ FILE: package/v4l2grab/v4l2grab.mk ================================================ ################################################################################ # # v4l2grab # ################################################################################ V4L2GRAB_VERSION = f8d8844d52387b3db7b8736f5e86156d9374f781 V4L2GRAB_SITE = $(call github,twam,v4l2grab,$(V4L2GRAB_VERSION)) V4L2GRAB_LICENSE = GPL-2.0+ V4L2GRAB_LICENSE_FILES = LICENSE.md # Fetched from github, no pre-generated configure script provided V4L2GRAB_AUTORECONF = YES V4L2GRAB_DEPENDENCIES = jpeg libv4l $(eval $(autotools-package)) ================================================ FILE: package/v4l2loopback/Config.in ================================================ config BR2_PACKAGE_V4L2LOOPBACK bool "v4l2loopback" depends on BR2_LINUX_KERNEL help This module allows you to create "virtual video devices". Normal (v4l2) applications will read these devices as if they were ordinary video devices, but the video will not be read from e.g. a capture card but instead it is generated by another application. https://github.com/umlaeute/v4l2loopback if BR2_PACKAGE_V4L2LOOPBACK config BR2_PACKAGE_V4L2LOOPBACK_UTILS bool "utils" depends on BR2_USE_MMU # bash select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash select BR2_PACKAGE_BASH # runtime dependency select BR2_PACKAGE_SUDO # runtime dependency help Install applications to interact with v4l2-loopback devices ("virtual video devices"). Currently there is only a single command line utility: v4l2loopback-ctl: tool to set framerate, format and timeout image. endif comment "v4l2loopback needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL ================================================ FILE: package/v4l2loopback/v4l2loopback.hash ================================================ # Locally calculated sha256 e152cd6df6a8add172fb74aca3a9188264823efa5a2317fe960d45880b9406ae v4l2loopback-0.12.5.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/v4l2loopback/v4l2loopback.mk ================================================ ################################################################################ # # v4l2loopback # ################################################################################ V4L2LOOPBACK_VERSION = 0.12.5 V4L2LOOPBACK_SITE = $(call github,umlaeute,v4l2loopback,v$(V4L2LOOPBACK_VERSION)) V4L2LOOPBACK_LICENSE = GPL-2.0+ V4L2LOOPBACK_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_V4L2LOOPBACK_UTILS),y) define V4L2LOOPBACK_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/utils/v4l2loopback-ctl $(TARGET_DIR)/usr/bin/v4l2loopback-ctl endef endif $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/v4l2rtspserver/0001-use-custom-makefile.patch ================================================ diff --git a/Makefile b/Makefile index e69de29..fb3f2bf 100644 --- a/Makefile +++ b/Makefile @@ -0,0 +1,54 @@ +ifneq ($(SRC),) +VPATH=$(SRC) +endif + +ALL_PROGS = v4l2rtspserver +PREFIX?=/usr +DESTDIR?=$(PREFIX)/bin +CC?=$(CROSS)gcc +CXX?=$(CROSS)g++ +CXXFLAGS += -I$(SRC) -W -Wall -std=c++11 -g -O3 -D_POSIX_C_SOURCE=2 +CXXFLAGS += -Iinc -I$(PREFIX)/include -I$(PREFIX)/include/BasicUsageEnvironment -I$(PREFIX)/include/UsageEnvironment -I$(PREFIX)/include/liveMedia -I$(PREFIX)/include/groupsock +CXXFLAGS += $(EXTRA_CXXFLAGS) +LDFLAGS += -pthread -L$(PREFIX)/lib -lBasicUsageEnvironment -lUsageEnvironment -lliveMedia -lgroupsock -lv4l2wrapper +RM = rm -rf + +RTSPSERVER_OBJS = \ + src/DeviceSource.o \ + src/H264_V4l2DeviceSource.o \ + src/HTTPServer.o \ + src/main.o \ + src/MemoryBufferSink.o \ + src/MJPEGVideoSource.o \ + src/MulticastServerMediaSubsession.o \ + src/ServerMediaSubsession.o \ + src/TSServerMediaSubsession.o \ + src/UnicastServerMediaSubsession.o \ + + +# v4l2wrapper +CXXFLAGS += -I$(PREFIX)/include/libv4l2cpp + +# ALSA +ifneq ($(HAVE_ALSA),) +CXXFLAGS += -DHAVE_ALSA +RTSPSERVER_OBJS += src/ALSACapture.o +LDFLAGS += -lasound +endif + + +.DEFAULT_GOAL := all + +all: $(ALL_PROGS) + +v4l2rtspserver: $(RTSPSERVER_OBJS) + $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) + +src/%.o : src/%.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ + +clean: + $(RM) src/*.o v4l2rtspserver + +install: v4l2rtspserver + install -D -m 0777 v4l2rtspserver $(DESTDIR) ================================================ FILE: package/v4l2rtspserver/0001-use-system-v4l2wrapper.patch.bak ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7cf9f3c..3f967b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required(VERSION 3.0) +set(CMAKE_VERBOSE_MAKEFILE ON) + project(v4l2rtspserver) option(COVERAGE "Coverage" OFF) @@ -39,7 +41,7 @@ message(STATUS "CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") #pthread find_package (Threads) -target_link_libraries (${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT}) +target_link_libraries (${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT}) #ALSA if (ALSA) @@ -47,9 +49,9 @@ find_package(ALSA QUIET) if (ALSA_LIBRARY) message(STATUS "Alsa available") add_definitions(-DHAVE_ALSA) - target_link_libraries (${PROJECT_NAME} ${ALSA_LIBRARY}) - - SET(CPACK_DEBIAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_PACKAGE_DEPENDS}libasound2-dev,) + target_link_libraries (${PROJECT_NAME} ${ALSA_LIBRARY}) + + SET(CPACK_DEBIAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_PACKAGE_DEPENDS}libasound2-dev,) endif (ALSA_LIBRARY) endif() @@ -59,16 +61,25 @@ if (LOG4CPP_LIBRARY) message(STATUS "Log4Cpp available") add_definitions(-DHAVE_LOG4CPP) target_link_libraries(${PROJECT_NAME} "${LOG4CPP_LIBRARY}") - + SET(CPACK_DEBIAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_PACKAGE_DEPENDS}liblog4cpp5-dev,) endif () # v4l2wrapper -EXEC_PROGRAM("git submodule update --init") -aux_source_directory(v4l2wrapper/src LIBSRC_FILES) -include_directories("v4l2wrapper/inc") -add_library(v4l2wrapper STATIC ${LIBSRC_FILES}) -target_link_libraries (${PROJECT_NAME} v4l2wrapper) +#set(V4L2WRAPPER_LIBRARY ${CMAKE_SOURCE_DIR}/libv4l2wrapper.a) +target_link_libraries(${PROJECT_NAME} ${CMAKE_SOURCE_DIR}/libv4l2wrapper.a) +#find_library(V4L2WRAPPER_LIBRARY v4l2wrapper REQUIRED) +#find_package(v4l2cpp REQUIRED) +#if (V4L2CPP_LIBRARY) +# message(STATUS "v4l2wrapper available") +# target_link_libraries(${PROJECT_NAME} "${V4L2CPP_LIBRARY}") +#endif () + +# EXEC_PROGRAM("git submodule update --init") +# aux_source_directory(v4l2wrapper/src LIBSRC_FILES) +# include_directories("v4l2wrapper/inc") +# add_library(v4l2wrapper STATIC ${LIBSRC_FILES}) +# target_link_libraries (${PROJECT_NAME} v4l2wrapper) # live555 set(LIVE ${CMAKE_BINARY_DIR}/live) @@ -97,7 +108,7 @@ if (SYSTEMD_FOUND) execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=systemdsystemunitdir systemd OUTPUT_VARIABLE SYSTEMD_SERVICES_INSTALL_DIR) string(REGEX REPLACE "[ \t\n]+" "" SYSTEMD_SERVICES_INSTALL_DIR "${SYSTEMD_SERVICES_INSTALL_DIR}") message(STATUS "SystemD directory '${SYSTEMD_SERVICES_INSTALL_DIR}'") - + configure_file(v4l2rtspserver.service.in ${CMAKE_CURRENT_BINARY_DIR}/v4l2rtspserver.service @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/v4l2rtspserver.service DESTINATION ${SYSTEMD_SERVICES_INSTALL_DIR}) endif (SYSTEMD_FOUND) @@ -108,8 +119,8 @@ install (FILES index.html DESTINATION share/${PROJECT_NAME}/) install (FILES hls.js/dist/hls.light.min.js DESTINATION share/${PROJECT_NAME}/hls.js/dist/) SET(CPACK_GENERATOR "DEB") -SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Michel Promonet") -SET(CPACK_PACKAGE_CONTACT "michel.promonet@free.fr") +SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Michel Promonet") +SET(CPACK_PACKAGE_CONTACT "michel.promonet@free.fr") SET(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}) STRING(REGEX REPLACE ",$" "" CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}") SET(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) @@ -117,4 +128,3 @@ if(VERSION) SET(CPACK_PACKAGE_VERSION "${VERSION}") endif() INCLUDE(CPack) - ================================================ FILE: package/v4l2rtspserver/Config.in ================================================ config BR2_PACKAGE_V4L2RTSPSERVER bool "v4l2rtspserver" select BR2_PACKAGE_V4L2CPP select BR2_PACKAGE_LIVE555 help Provides a streaming RTSP server for the target. ================================================ FILE: package/v4l2rtspserver/v4l2rtspserver.mk ================================================ ############################################################# # # v4l2rtspserver # ############################################################# V4L2RTSPSERVER_VERSION = 13e27dc78f2ed6bc5d43fd6eb759041d8e0b4a66 V4L2RTSPSERVER_SITE = https://github.com/mpromonet/v4l2rtspserver.git V4L2RTSPSERVER_SITE_METHOD = git V4L2RTSPSERVER_LICENSE = UNLICENSE V4L2RTSPSERVER_LICENSE_FILES = LICENSE V4L2RTSPSERVER_INSTALL_TARGET = YES V4L2RTSPSERVER_DEPENDENCIES = live555 v4l2cpp V4L2RTSPSERVER_CFLAGS = $(TARGET_CFLAGS) -DVERSION=1 ifndef ($(BR2_ENABLE_LOCALE),y) V4L2RTSPSERVER_CFLAGS += -DLOCALE_NOT_USED endif ifeq ($(BR2_PACKAGE_ALSA_LIB),y) V4L2RTSPSERVER_OPTS += "HAVE_ALSA=1" endif define V4L2RTSPSERVER_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" EXTRA_CXXFLAGS="$(V4L2RTSPSERVER_CFLAGS)" PREFIX="$(STAGING_DIR)/usr" $(V4L2RTSPSERVER_OPTS) -C $(@D) all endef define V4L2RTSPSERVER_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)/usr/bin" -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/v4l2tools/02-enable-cross-compile.patch ================================================ diff --git a/Makefile b/Makefile index e69de29..f337374 100644 --- a/Makefile +++ b/Makefile @@ -0,0 +1,148 @@ +ALL_PROGS = v4l2copy v4l2source_yuv +PREFIX?=/usr +DESTDIR?=$(PREFIX)/bin +CC?=$(CROSS)gcc +CXX?=$(CROSS)g++ +CXXFLAGS += -W -Wall -g -O3 -D_POSIX_C_SOURCE=2 +CXXFLAGS += -Iinclude -I$(PREFIX)/include -I$(PREFIX)/include/libv4l2cpp +CXXFLAGS += $(EXTRA_CXXFLAGS) +LDFLAGS += -pthread -L$(PREFIX)/lib -lv4l2wrapper + +.DEFAULT_GOAL := all + +# raspberry tools +ifneq ($(HAVE_RPI_IL),) +ILCFLAGS = $(CXXFLAGS) +ILCFLAGS += -DOMX_SKIP64BIT +ILLDFLAGS = $(LDFLAGS) -lpthread -lopenmaxil -lbcm_host -lvcos -lvchostif -lvchiq_arm -lilclient + +v4l2compress_omx: src/encode_omx.cpp src/v4l2compress_omx.cpp + $(CXX) -o $@ $^ -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM -Wno-psabi $(ILCFLAGS) $(ILLDFLAGS) + +v4l2grab_h264: src/encode_omx.cpp src/v4l2grab_h264.cpp + $(CXX) -o $@ $^ -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM -Wno-psabi $(ILCFLAGS) $(ILLDFLAGS) + +v4l2display_h264: src/v4l2display_h264.cpp + $(CXX) -o $@ $^ -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM -Wno-psabi $(ILCFLAGS) $(ILLDFLAGS) + + +ALL_PROGS+=v4l2grab_h264 +ALL_PROGS+=v4l2display_h264 +ALL_PROGS+=v4l2compress_omx +endif + +ifneq ($(HAVE_RPI),) +MMALCAM_CFLAGS = $(CXXFLAGS) +MMALCAM_LDFLAGS = $(LDFLAGS) -L/opt/vc/lib -lmmal -lmmal_core -lmmal_util -lpthread -lbcm_host -lvcos -lvchostif -lvchiq_arm +RASPICAM_CFLAGS = $(CFLAGS) -Isrc/raspicam -I/opt/vc/include +RASPICAM_OBJS = \ + src/raspicam/RaspiCamControl.o \ + src/raspicam/RaspiCLI.o \ + src/raspicam/RaspiCommonSettings.o \ + src/raspicam/RaspiHelpers.o \ + src/raspicam/RaspiPreview.o + +v4l2multi_stream_mmal: src/v4l2multi_stream_mmal.cpp $(RASPICAM_OBJS) + $(CXX) -o $@ $^ -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM -Wno-psabi $(MMALCAM_CFLAGS) $(RASPICAM_CFLAGS) $(MMALCAM_LDFLAGS) + +src/raspicam/%.o : src/raspicam/%.c + $(CC) -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM -Wno-psabi $(RASPICAM_CFLAGS) -c $< -o $@ + +ALL_PROGS+=v4l2multi_stream_mmal + +endif + +# libyuv +ifneq ($(HAVE_LIBYUV),) +ALL_PROGS+=v4l2convert_yuv + +# libh264bitstream & libhevcbitstream +ifneq ($(HAVE_H264BITSTREAM),) +ifneq ($(HAVE_HEVCBITSTREAM),) +ALL_PROGS+=v4l2dump +endif +endif + +# libh264bitstream +ifneq ($(HAVE_H264BITSTREAM),) +ALL_PROGS+=v4l2compress_h264 +endif + +# libhevcbitstream +ifneq ($(HAVE_HEVCBITSTREAM),) +ALL_PROGS+=v4l2compress_x265 +endif + +# libvpx +ifneq ($(HAVE_LIBVPX),) +ALL_PROGS+=v4l2compress_vpx +endif + +# libjpeg +ifneq ($(HAVE_LIBJPEG),) +ALL_PROGS+=v4l2compress_jpeg v4l2uncompress_jpeg +CFLAGS += -DHAVE_JPEG +endif + +endif + +# libfuse +ifneq ($(HAVE_LIBFUSE),) +ALL_PROGS+=v4l2fuse +endif + +all: $(ALL_PROGS) + +# read V4L2 capture -> write V4L2 output +v4l2copy: src/v4l2copy.cpp + $(CXX) -o $@ $(CXXFLAGS) $^ $(LDFLAGS) + +# read V4L2 capture -> convert YUV format -> write V4L2 output +v4l2convert_yuv: src/v4l2convert_yuv.cpp + $(CXX) -o $@ $(CXXFLAGS) -I$(PREFIX)/include/libyuv $^ $(LDFLAGS) -lyuv -ljpeg + +# -> write V4L2 output +v4l2source_yuv: src/v4l2source_yuv.cpp + $(CXX) -o $@ $(CXXFLAGS) $^ $(LDFLAGS) + +# read V4L2 capture -> compress using libvpx -> write V4L2 output +v4l2compress_vpx: src/v4l2compress_vpx.cpp + $(CXX) -o $@ $(CXXFLAGS) -I$(PREFIX)/include/libyuv $^ $(LDFLAGS) -lvpx -lyuv -ljpeg + +# read V4L2 capture -> compress using x264 -> write V4L2 output +v4l2compress_h264: src/v4l2compress_h264.cpp + $(CXX) -o $@ $(CXXFLAGS) -I$(PREFIX)/include/libyuv $^ $(LDFLAGS) -lh264bitstream -lyuv -ljpeg + +# read V4L2 capture -> compress using x265 -> write V4L2 output +v4l2compress_x265: src/v4l2compress_x265.cpp + $(CXX) -o $@ $(CXXFLAGS) -I$(PREFIX)/include/libyuv $^ $(LDFLAGS) -lhevcbitstream -lyuv -ljpeg + +# read V4L2 capture -> compress using libjpeg -> write V4L2 output +v4l2compress_jpeg: src/v4l2compress_jpeg.cpp + $(CXX) -o $@ $(CXXFLAGS) -I$(PREFIX)/include/libyuv $^ $(LDFLAGS) -lyuv -ljpeg + +# read V4L2 capture -> uncompress using libjpeg -> write V4L2 output +v4l2uncompress_jpeg: src/v4l2uncompress_jpeg.cpp + $(CXX) -o $@ $(CXXFLAGS) -I$(PREFIX)/include/libyuv $^ $(LDFLAGS) -lyuv -ljpeg + +# try with opencv +v4l2detect_yuv: src/v4l2detect_yuv.cpp + $(CXX) -o $@ $(CXXFLAGS) -I$(PREFIX)/include/libyuv $^ $(LDFLAGS) -lopencv_core -lopencv_objdetect -lopencv_imgproc -lyuv -ljpeg + +# dump +v4l2dump: src/v4l2dump.cpp + $(CXX) -o $@ $(CXXFLAGS) -I$(PREFIX)/include/h264bitstream -I$(PREFIX)/include/hevcbitstream -I$(PREFIX)/include/libyuv $^ $(LDFLAGS) -lh264bitstream -lhevcbitstream -lyuv -ljpeg + +v4l2fuse: src/v4l2fuse.c + $(CC) -o $@ $(CFLAGS) $^ $(LDFLAGS) -D_FILE_OFFSET_BITS=64 -lfuse + + +upgrade: + git submodule foreach git pull origin master + +install: all + mkdir -p $(DESTDIR)/bin + install -D -m 0755 $(ALL_PROGS) $(DESTDIR)/bin + +clean: + -@$(RM) $(ALL_PROGS) .*o *.a src/raspicam/.*o ================================================ FILE: package/v4l2tools/Config.in ================================================ config BR2_PACKAGE_V4L2TOOLS bool "v4l2tools" select BR2_PACKAGE_V4L2CPP select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBFUSE help Build the V4L2 tools based on libv4l2cpp. Optional dependencies: libvpx, x264, x265. ================================================ FILE: package/v4l2tools/v4l2tools.mk ================================================ ############################################################# # # v4l2tools # ############################################################# V4L2TOOLS_VERSION = ab94cf8 V4L2TOOLS_SITE = https://github.com/jasaw/v4l2tools.git V4L2TOOLS_SITE_METHOD = git V4L2TOOLS_LICENSE = UNLICENSE V4L2TOOLS_LICENSE_FILES = LICENSE V4L2TOOLS_INSTALL_TARGET = YES V4L2TOOLS_DEPENDENCIES = v4l2cpp V4L2TOOLS_CFLAGS = $(TARGET_CFLAGS) define V4L2TOOLS_REMOVE_MAKEFILE rm -f $(BUILD_DIR)/v4l2tools-$(V4L2TOOLS_VERSION)/Makefile endef V4L2TOOLS_PRE_PATCH_HOOKS += V4L2TOOLS_REMOVE_MAKEFILE ifeq ($(BR2_PACKAGE_RPI_USERLAND),y) V4L2TOOLS_DEPENDENCIES += rpi-userland V4L2TOOLS_MAKE_OPTS += HAVE_RPI=1 ifeq ($(BR2_PACKAGE_RPI_USERLAND_HELLO),y) V4L2TOOLS_MAKE_OPTS += HAVE_RPI_IL=1 V4L2TOOLS_CFLAGS += -I$(STAGING_DIR)/usr/src/hello_pi/libs/ilclient endif endif # BR2_PACKAGE_RPI_USERLAND ifeq ($(BR2_PACKAGE_LIBYUV),y) V4L2TOOLS_DEPENDENCIES += libyuv V4L2TOOLS_MAKE_OPTS += HAVE_LIBYUV=1 ifeq ($(BR2_PACKAGE_H264BITSTREAM),y) # TODO: pull in h264bitstream from https://github.com/aizvorski/h264bitstream #V4L2TOOLS_DEPENDENCIES += h264bitstream #V4L2TOOLS_MAKE_OPTS += HAVE_H264BITSTREAM=1 endif ifeq ($(BR2_PACKAGE_HEVCBITSTREAM),y) # TODO: pull in hevcbitstream from https://github.com/leslie-wang/hevcbitstream #V4L2TOOLS_DEPENDENCIES += hevcbitstream #V4L2TOOLS_MAKE_OPTS += HAVE_HEVCBITSTREAM=1 endif ifeq ($(BR2_PACKAGE_LIBVPX),y) V4L2TOOLS_DEPENDENCIES += libvpx V4L2TOOLS_MAKE_OPTS += HAVE_LIBVPX=1 endif ifeq ($(BR2_PACKAGE_JPEG),y) V4L2TOOLS_DEPENDENCIES += jpeg V4L2TOOLS_MAKE_OPTS += HAVE_LIBJPEG=1 endif endif ifeq ($(BR2_PACKAGE_LIBFUSE),y) V4L2TOOLS_DEPENDENCIES += libfuse V4L2TOOLS_MAKE_OPTS += HAVE_LIBFUSE=1 endif ifndef ($(BR2_ENABLE_LOCALE),y) V4L2TOOLS_CFLAGS += -DLOCALE_NOT_USED endif define V4L2TOOLS_BUILD_CMDS $(TARGET_MAKE_ENV) CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" AR="$(TARGET_AR)" CFLAGS_EXTRA="$(V4L2TOOLS_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" ARFLAGS="$(TARGET_ARFLAGS)" PREFIX="$(STAGING_DIR)/usr" $(V4L2TOOLS_MAKE_OPTS) $(MAKE) -C $(@D) all endef define V4L2TOOLS_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/v4l2copy $(TARGET_DIR)/usr/sbin $(INSTALL) -D -m 0755 $(@D)/v4l2source_yuv $(TARGET_DIR)/usr/sbin $(if $(BR2_PACKAGE_RPI_USERLAND_HELLO), $(INSTALL) -D -m 0755 $(@D)/v4l2grab_h264 $(TARGET_DIR)/usr/sbin ) $(if $(BR2_PACKAGE_RPI_USERLAND_HELLO), $(INSTALL) -D -m 0755 $(@D)/v4l2display_h264 $(TARGET_DIR)/usr/sbin ) $(if $(BR2_PACKAGE_RPI_USERLAND_HELLO), $(INSTALL) -D -m 0755 $(@D)/v4l2compress_omx $(TARGET_DIR)/usr/sbin ) $(if $(BR2_PACKAGE_RPI_USERLAND), $(INSTALL) -D -m 0755 $(@D)/v4l2multi_stream_mmal $(TARGET_DIR)/usr/sbin ) $(if $(BR2_PACKAGE_LIBYUV), $(INSTALL) -D -m 0755 $(@D)/v4l2convert_yuv $(TARGET_DIR)/usr/sbin ) $(if $(and $(BR2_PACKAGE_LIBYUV),$(BR2_PACKAGE_H264BITSTREAM)), $(INSTALL) -D -m 0755 $(@D)/v4l2compress_h264 $(TARGET_DIR)/usr/sbin ) $(if $(and $(BR2_PACKAGE_LIBYUV),$(BR2_PACKAGE_HEVCBITSTREAM)), $(INSTALL) -D -m 0755 $(@D)/v4l2compress_x265 $(TARGET_DIR)/usr/sbin ) $(if $(and $(BR2_PACKAGE_LIBYUV),$(BR2_PACKAGE_H264BITSTREAM),$(BR2_PACKAGE_HEVCBITSTREAM)), $(INSTALL) -D -m 0755 $(@D)/v4l2dump $(TARGET_DIR)/usr/sbin ) $(if $(and $(BR2_PACKAGE_LIBYUV),$(BR2_PACKAGE_VPX)), $(INSTALL) -D -m 0755 $(@D)/v4l2compress_vpx $(TARGET_DIR)/usr/sbin ) $(if $(and $(BR2_PACKAGE_LIBYUV),$(BR2_PACKAGE_JPEG)), $(INSTALL) -D -m 0755 $(@D)/v4l2compress_jpeg $(TARGET_DIR)/usr/sbin ) $(if $(and $(BR2_PACKAGE_LIBYUV),$(BR2_PACKAGE_JPEG)), $(INSTALL) -D -m 0755 $(@D)/v4l2uncompress_jpeg $(TARGET_DIR)/usr/sbin ) $(if $(BR2_PACKAGE_LIBFUSE), $(INSTALL) -D -m 0755 $(@D)/v4l2fuse $(TARGET_DIR)/usr/sbin ) endef $(eval $(generic-package)) ================================================ FILE: package/vala/0001-dont-add-dirty-to-valac-version.patch ================================================ valac: don't append -dirty to version Don't append -dirty to the valac version number if the Buildroot Git tree has uncommited changes. The patched script is meant for the valac developers, but it also activates if you build valac in a subdirectory of a Git tree (e.g. as is commonly done in Buildroot). The effect is that valac gets built as being version x.y.z-dirty, which breaks programs (such as Midori) that explicitly check for valac-x.y.z. Signed-off-by: Simon Dawson [Fabrice: update for 0.52.4] Signed-off-by: Fabrice Fontaine diff -Nur a/build-aux/git-version-gen b/build-aux/git-version-gen --- a/build-aux/git-version-gen 2010-08-15 12:49:03.000000000 +0100 +++ b/build-aux/git-version-gen 2012-05-14 10:17:19.977204570 +0100 @@ -135,7 +135,7 @@ *) # Append the suffix only if there isn't one already. case $v in *-dirty) ;; - *) v="$v-dirty" ;; + #*) v="$v-dirty" ;; esac ;; esac fi ================================================ FILE: package/vala/vala-wrapper ================================================ #!/bin/sh $0-@VALA_VERSION@ --vapidir=${STAGING_DIR}/usr/share/vala/vapi --girdir=${STAGING_DIR}/usr/share/gir-1.0 "$@" ================================================ FILE: package/vala/vala.hash ================================================ # From https://download.gnome.org/sources/vala/0.52/vala-0.52.4.sha256sum sha256 ecde520e5160e659ee699f8b1cdc96065edbd44bbd08eb48ef5f2506751fdf31 vala-0.52.4.tar.xz # Locally computed sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING ================================================ FILE: package/vala/vala.mk ================================================ ################################################################################ # # vala # ################################################################################ VALA_VERSION_MAJOR = 0.52 VALA_VERSION = $(VALA_VERSION_MAJOR).4 VALA_SITE = http://download.gnome.org/sources/vala/$(VALA_VERSION_MAJOR) VALA_SOURCE = vala-$(VALA_VERSION).tar.xz VALA_LICENSE = LGPL-2.1+ VALA_LICENSE_FILES = COPYING VALA_CPE_ID_VENDOR = gnome HOST_VALA_DEPENDENCIES = host-bison host-flex host-libglib2 # Yes, the autoconf script understands ':' as "xsltproc is not # available". HOST_VALA_CONF_ENV = ac_cv_path_XSLTPROC=: HOST_VALA_CONF_OPTS += --disable-valadoc # We wrap vala, valac and vapigen 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)/bin/vala $(INSTALL) -D -m 0755 package/vala/vala-wrapper \ $(HOST_DIR)/bin/valac $(INSTALL) -D -m 0755 package/vala/vala-wrapper \ $(HOST_DIR)/bin/vapigen $(SED) 's,@VALA_VERSION@,$(VALA_VERSION_MAJOR),' \ $(HOST_DIR)/bin/vala \ $(HOST_DIR)/bin/valac \ $(HOST_DIR)/bin/vapigen endef HOST_VALA_POST_INSTALL_HOOKS += HOST_VALA_INSTALL_WRAPPER $(eval $(host-autotools-package)) ================================================ FILE: package/valgrind/0001-workaround-SIGSEGV-on-PPC.patch ================================================ From ff29b837f21a69c79289c3a87b03f8c23e05616e Mon Sep 17 00:00:00 2001 From: Pierre Habouzit Date: Tue, 10 May 2011 23:11:45 +0200 Subject: [PATCH] workaround SIGSEGV on PPC. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pierre Habouzit Signed-off-by: Jérôme Pouiller --- coregrind/m_machine.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/coregrind/m_machine.c b/coregrind/m_machine.c index 6110c93..298a00e 100644 --- a/coregrind/m_machine.c +++ b/coregrind/m_machine.c @@ -27,6 +27,10 @@ The GNU General Public License is contained in the file COPYING. */ +#ifdef __powerpc__ +# pragma GCC optimize ("-O0") +#endif + #include "pub_core_basics.h" #include "pub_core_vki.h" #include "pub_core_threadstate.h" -- 2.1.4 ================================================ FILE: package/valgrind/0002-Define-PTRACE_GETSIGINFO-on-PowerPC-when-not-availab.patch ================================================ From 7311686d6286972ff97cc18b2416a4cdd7fc5c7e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 31 Oct 2015 12:15:24 +0100 Subject: [PATCH] Define PTRACE_GETSIGINFO on PowerPC when not available uClibc 0.9.33.2 does not define PTRACE_GETSIGINFO in PowerPC. Even though Buildroot has a uClibc patch doing that, it doesn't solve the case of external uClibc toolchain from other sources (such as Crosstool-NG). Therefore, this patch modifies Valgrind to define PTRACE_GETSIGINFO on PowerPC to the right value, when such definition is not available from the C library. Signed-off-by: Thomas Petazzoni --- coregrind/vgdb-invoker-ptrace.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/coregrind/vgdb-invoker-ptrace.c b/coregrind/vgdb-invoker-ptrace.c index d65f59a..bdefac2 100644 --- a/coregrind/vgdb-invoker-ptrace.c +++ b/coregrind/vgdb-invoker-ptrace.c @@ -72,6 +72,12 @@ # endif #endif +#if defined(__powerpc__) +# ifndef PTRACE_GETSIGINFO +# define PTRACE_GETSIGINFO 0x4202 +# endif +#endif + // 32-bit or 64-bit wide, depending on primary architecture. typedef Addr CORE_ADDR; typedef Addr PTRACE_XFER_TYPE; -- 2.1.4 ================================================ FILE: package/valgrind/Config.in ================================================ config BR2_PACKAGE_VALGRIND_ARCH_SUPPORTS bool default y if BR2_aarch64 default y if BR2_ARM_CPU_ARMV7A default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_i386 || BR2_x86_64 default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le depends on !BR2_MIPS_SOFT_FLOAT comment "valgrind needs a toolchain w/ dynamic library" depends on BR2_PACKAGE_VALGRIND_ARCH_SUPPORTS depends on BR2_STATIC_LIBS config BR2_PACKAGE_VALGRIND bool "valgrind" depends on BR2_PACKAGE_VALGRIND_ARCH_SUPPORTS depends on !BR2_STATIC_LIBS help Tool for debugging and profiling Linux programs. http://valgrind.org/ if BR2_PACKAGE_VALGRIND config BR2_PACKAGE_VALGRIND_MEMCHECK bool "Memcheck: a memory error detector" default y help This option allows to install the Memcheck tool config BR2_PACKAGE_VALGRIND_CACHEGRIND bool "Cachegrind: a cache and branch-prediction profiler" default y help This option allows to install the Cachegrind tool config BR2_PACKAGE_VALGRIND_CALLGRIND bool "Callgrind: a call-graph generating cache and branch prediction profiler" default y help This option allows to install the Callgrind tool config BR2_PACKAGE_VALGRIND_HELGRIND bool "Helgrind: a thread error detector" default y help This option allows to install the Helgrind tool config BR2_PACKAGE_VALGRIND_DRD bool "DRD: a thread error detector" default y help This option allows to install the DRD tool config BR2_PACKAGE_VALGRIND_MASSIF bool "Massif: a heap profiler" default y help This option allows to install the Massif tool config BR2_PACKAGE_VALGRIND_DHAT bool "DHAT: a dynamic heap analysis tool" default y help This option allows to install the DHAT tool config BR2_PACKAGE_VALGRIND_SGCHECK bool "SGCheck: an experimental stack and global array overrun detector" help This option allows to install the SGCheck tool config BR2_PACKAGE_VALGRIND_BBV bool "BBV: an experimental basic block vector generation tool" help This option allows to install the BBV tool config BR2_PACKAGE_VALGRIND_LACKEY bool "Lackey: an example tool" help This option allows to install the Lackey tool config BR2_PACKAGE_VALGRIND_NULGRIND bool "Nulgrind: the minimal Valgrind tool" help This option allows to install the Nulgrind tool endif ================================================ FILE: package/valgrind/uclibc.supp ================================================ { Memcheck:Addr1 fun:_dl_strdup obj:/lib/ld-uClibc* } { Memcheck:Addr1 fun:_dl_malloc obj:/lib/ld-uClibc* } { Memcheck:Cond fun:_dl_get_ready_to_run obj:/lib/ld-uClibc* } { Memcheck:Addr1 fun:_dl_get_ready_to_run obj:/lib/ld-uClibc* } { Memcheck:Addr2 fun:_dl_get_ready_to_run obj:/lib/ld-uClibc* } { Memcheck:Addr4 fun:_dl_get_ready_to_run obj:/lib/ld-uClibc* } { Memcheck:Addr1 fun:_dl_add_elf_hash_table obj:/lib/ld-uClibc* } { Memcheck:Addr2 fun:_dl_add_elf_hash_table obj:/lib/ld-uClibc* } { Memcheck:Addr4 fun:_dl_add_elf_hash_table obj:/lib/ld-uClibc* } { Memcheck:Addr1 fun:_dl_check_if_named_library_is_loaded obj:/lib/ld-uClibc* } { Memcheck:Addr4 fun:_dl_check_if_named_library_is_loaded obj:/lib/ld-uClibc* } { Memcheck:Addr1 fun:_dl_check_hashed_files obj:/lib/ld-uClibc* } { Memcheck:Addr4 fun:_dl_check_hashed_files obj:/lib/ld-uClibc* } { Memcheck:Addr1 fun:_dl_load_elf_shared_library obj:/lib/ld-uClibc* } { Memcheck:Addr2 fun:_dl_load_elf_shared_library obj:/lib/ld-uClibc* } { Memcheck:Addr4 fun:_dl_load_elf_shared_library obj:/lib/ld-uClibc* } { Memcheck:Addr2 fun:_dl_load_shared_library obj:/lib/ld-uClibc* } { Memcheck:Addr1 fun:_dl_find_hash obj:/lib/ld-uClibc* } { Memcheck:Addr4 fun:_dl_find_hash obj:/lib/ld-uClibc* } { Memcheck:Addr4 fun:_dl_fixup obj:/lib/ld-uClibc* } { Memcheck:Addr2 fun:_dl_fixup obj:/lib/ld-uClibc* } { Memcheck:Addr4 fun:_dl_linux_resolve obj:/lib/ld-uClibc* } { Memcheck:Addr4 fun:_dl_linux_resolver obj:/lib/ld-uClibc* } { Memcheck:Addr2 fun:_dl_parse_lazy_relocation_information obj:/lib/ld-uClibc* } { Memcheck:Addr2 obj:/lib/ld-uClibc* fun:_dl_parse_lazy_relocation_information } { Memcheck:Addr4 fun:_dl_parse_lazy_relocation_information obj:/lib/ld-uClibc* } { Memcheck:Addr4 obj:/lib/ld-uClibc* obj:/lib/ld-uClibc* fun:_dl_parse_lazy_relocation_information } { Memcheck:Addr4 obj:/lib/ld-uClibc* fun:_dl_parse_lazy_relocation_information } { Memcheck:Addr2 obj:/lib/ld-uClibc* fun:_dl_parse_relocation_information } { Memcheck:Addr2 fun:_dl_parse_relocation_information obj:/lib/ld-uClibc* } { Memcheck:Addr4 fun:_dl_parse_relocation_information obj:/lib/ld-uClibc* } { Memcheck:Addr4 obj:/lib/ld-uClibc* fun:_dl_parse_relocation_information } { Memcheck:Addr4 obj:/lib/ld-uClibc* obj:/lib/ld-uClibc* fun:_dl_parse_relocation_information } { Memcheck:Addr2 obj:/lib/ld-uClibc-0.9.27.so fun:* } { Memcheck:Addr4 obj:/lib/ld-uClibc-0.9.27.so fun:* } ================================================ FILE: package/valgrind/valgrind.hash ================================================ # From https://valgrind.org/downloads/current.html md5 de56a5532b0c81781db677ca712c585a valgrind-3.18.1.tar.bz2 # locally computed sha256 00859aa13a772eddf7822225f4b46ee0d39afbe071d32778da4d99984081f7f5 valgrind-3.18.1.tar.bz2 # License files sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 56976e64523fa1e68db4e6f464f5b2cb89d7d08f54b1d012e317b8db286b3faf COPYING.DOCS ================================================ FILE: package/valgrind/valgrind.mk ================================================ ################################################################################ # # valgrind # ################################################################################ VALGRIND_VERSION = 3.18.1 VALGRIND_SITE = https://sourceware.org/pub/valgrind VALGRIND_SOURCE = valgrind-$(VALGRIND_VERSION).tar.bz2 VALGRIND_LICENSE = GPL-2.0, GFDL-1.2 VALGRIND_LICENSE_FILES = COPYING COPYING.DOCS VALGRIND_CPE_ID_VENDOR = valgrind VALGRIND_CONF_OPTS = \ --disable-ubsan \ --without-mpicc VALGRIND_INSTALL_STAGING = YES # Valgrind must be compiled with no stack protection, so forcefully # pass -fno-stack-protector to override what Buildroot may have in # TARGET_CFLAGS if BR2_SSP_* support is enabled. VALGRIND_CFLAGS = \ $(TARGET_CFLAGS) \ -fno-stack-protector # When Valgrind detects a 32-bit MIPS architecture, it forcibly adds # -march=mips32 to CFLAGS; when it detects a 64-bit MIPS architecture, # it forcibly adds -march=mips64. This causes Valgrind to be built # always for the first ISA revision level (R1), even when the user has # configured Buildroot for the second ISA revision level (R2). # # Override the CFLAGS variable (which Valgrind appends to its CFLAGS) # and pass the right -march option, so they take precedence over # Valgrind's wrongfully detected value. ifeq ($(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y) VALGRIND_CFLAGS += -march="$(GCC_TARGET_ARCH)" endif VALGRIND_CONF_ENV = CFLAGS="$(VALGRIND_CFLAGS)" # fix uclibc configure c99 support detection VALGRIND_CONF_ENV += ac_cv_prog_cc_c99='-std=gnu99' # On ARM, Valgrind only supports ARMv7, and uses the arch part of the # host tuple to determine whether it's being built for ARMv7 or # not. Therefore, we adjust the host tuple to specify we're on # ARMv7. The valgrind package is guaranteed, through Config.in, to # only be selected on ARMv7-A platforms. ifeq ($(BR2_ARM_CPU_ARMV7A),y) VALGRIND_CONF_OPTS += \ --host=$(patsubst arm-%,armv7-%,$(GNU_TARGET_NAME)) endif ifeq ($(BR2_GCC_ENABLE_LTO),y) VALGRIND_CONF_OPTS += --enable-lto else VALGRIND_CONF_OPTS += --disable-lto endif define VALGRIND_INSTALL_UCLIBC_SUPP $(INSTALL) -D -m 0644 package/valgrind/uclibc.supp $(TARGET_DIR)/usr/lib/valgrind/uclibc.supp endef VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_INSTALL_UCLIBC_SUPP ifeq ($(BR2_PACKAGE_VALGRIND_MEMCHECK),) define VALGRIND_REMOVE_MEMCHECK rm -f $(TARGET_DIR)/usr/libexec/valgrind/*memcheck* endef VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_MEMCHECK endif ifeq ($(BR2_PACKAGE_VALGRIND_CACHEGRIND),) define VALGRIND_REMOVE_CACHEGRIND rm -f $(TARGET_DIR)/usr/libexec/valgrind/*cachegrind* for i in cg_annotate cg_diff cg_merge; do \ rm -f $(TARGET_DIR)/usr/bin/$$i ; \ done endef VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_CACHEGRIND endif ifeq ($(BR2_PACKAGE_VALGRIND_CALLGRIND),) define VALGRIND_REMOVE_CALLGRIND rm -f $(TARGET_DIR)/usr/libexec/valgrind/*callgrind* for i in callgrind_annotate callgrind_control ; do \ rm -f $(TARGET_DIR)/usr/bin/$$i ; \ done endef VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_CALLGRIND endif ifeq ($(BR2_PACKAGE_VALGRIND_HELGRIND),) define VALGRIND_REMOVE_HELGRIND rm -f $(TARGET_DIR)/usr/libexec/valgrind/*helgrind* endef VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_HELGRIND endif ifeq ($(BR2_PACKAGE_VALGRIND_DRD),) define VALGRIND_REMOVE_DRD rm -f $(TARGET_DIR)/usr/libexec/valgrind/*drd* endef VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_DRD endif ifeq ($(BR2_PACKAGE_VALGRIND_MASSIF),) define VALGRIND_REMOVE_MASSIF rm -f $(TARGET_DIR)/usr/libexec/valgrind/*massif* rm -f $(TARGET_DIR)/usr/bin/ms_print endef VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_MASSIF endif ifeq ($(BR2_PACKAGE_VALGRIND_DHAT),) define VALGRIND_REMOVE_DHAT rm -f $(TARGET_DIR)/usr/libexec/valgrind/*dhat* endef VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_DHAT endif ifeq ($(BR2_PACKAGE_VALGRIND_SGCHECK),) define VALGRIND_REMOVE_SGCHECK rm -f $(TARGET_DIR)/usr/libexec/valgrind/*sgcheck* endef VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_SGCHECK endif ifeq ($(BR2_PACKAGE_VALGRIND_BBV),) define VALGRIND_REMOVE_BBV rm -f $(TARGET_DIR)/usr/libexec/valgrind/*bbv* endef VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_BBV endif ifeq ($(BR2_PACKAGE_VALGRIND_LACKEY),) define VALGRIND_REMOVE_LACKEY rm -f $(TARGET_DIR)/usr/libexec/valgrind/*lackey* endef VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_LACKEY endif ifeq ($(BR2_PACKAGE_VALGRIND_NULGRIND),) define VALGRIND_REMOVE_NULGRIND rm -f $(TARGET_DIR)/usr/libexec/valgrind/*none* endef VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_REMOVE_NULGRIND endif $(eval $(autotools-package)) ================================================ FILE: package/valijson/Config.in ================================================ 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 ================================================ FILE: package/valijson/valijson.hash ================================================ # Locally Computed: sha256 2ac881a36f90810b41b66511502dea1e7886137ad31bcfb4e917d929c5028c35 valijson-0.3.tar.gz sha256 1a0f99926a2dbec30eba3db820236d9953fbe3048976923ac24980e655fbe991 LICENSE ================================================ FILE: package/valijson/valijson.mk ================================================ ################################################################################ # # valijson # ################################################################################ VALIJSON_VERSION = 0.3 VALIJSON_SITE = $(call github,tristanpenman,valijson,v$(VALIJSON_VERSION)) VALIJSON_LICENSE = BSD-2-Clause VALIJSON_LICENSE_FILES = LICENSE VALIJSON_CPE_ID_VENDOR = valijson_project VALIJSON_INSTALL_STAGING = YES VALIJSON_INSTALL_TARGET = NO VALIJSON_DEPENDENCIES = boost VALIJSON_CONF_OPTS = -Dvalijson_INSTALL_HEADERS=TRUE -Dvalijson_BUILD_TESTS=FALSE $(eval $(cmake-package)) ================================================ FILE: package/vboot-utils/0001-Add-missing-definition-of-MTD_CHAR_MAJOR.patch ================================================ From 1438211660e700b2c9505863aae1cc957236b7c8 Mon Sep 17 00:00:00 2001 From: Alex Suykov Date: Thu, 21 Jan 2016 21:59:46 +0100 Subject: [PATCH] Add missing definition of MTD_CHAR_MAJOR This definition missing from for kernels <= 3.13 Signed-off-by: Alex Suykov --- cgpt/cgpt_wrapper.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cgpt/cgpt_wrapper.c b/cgpt/cgpt_wrapper.c index dcfaab9..4d07aad 100644 --- a/cgpt/cgpt_wrapper.c +++ b/cgpt/cgpt_wrapper.c @@ -25,6 +25,10 @@ #include "cgpt_nor.h" #include "cryptolib.h" +#ifndef MTD_CHAR_MAJOR +#define MTD_CHAR_MAJOR 90 +#endif + // Check if cmdline |argv| has "-D". "-D" signifies that GPT structs are stored // off device, and hence we should not wrap around cgpt. static bool has_dash_D(int argc, const char *const argv[]) { -- 2.6.4 ================================================ FILE: package/vboot-utils/0002-Add-missing-header-include-for-ssize_t.patch ================================================ From b6bed8d4e9453bc74ba021c8c17e20c3b5964c37 Mon Sep 17 00:00:00 2001 From: Alex Suykov Date: Thu, 21 Jan 2016 22:00:34 +0100 Subject: [PATCH] Add missing header include for ssize_t The code uses ssize_t which is usually defined in . Signed-off-by: Alex Suykov --- host/lib/fmap.c | 1 + 1 file changed, 1 insertion(+) diff --git a/host/lib/fmap.c b/host/lib/fmap.c index c95338d..e3db826 100644 --- a/host/lib/fmap.c +++ b/host/lib/fmap.c @@ -6,6 +6,7 @@ #include #include +#include #include "fmap.h" -- 2.6.4 ================================================ FILE: package/vboot-utils/0003-Avoid-RSA-type-redefinition.patch ================================================ From 593407d2b3ea3b871d55ec399671e48c84b900a7 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 21 Jan 2016 22:01:37 +0100 Subject: [PATCH] Avoid RSA type redefinition The host_key.h headers does: typedef struct rsa_st RSA; But this type definition is already done by the OpenSSL headers. While such a type redefinition is legal with recent gcc versions, it doesn't build with older gcc versions such as gcc 4.4. To work around this problem, we instead use a forward declaration of "struct rsa_st", and change the only place where the RSA type was used by "struct rsa_st". Signed-off-by: Thomas Petazzoni --- host/lib/include/host_key.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/host/lib/include/host_key.h b/host/lib/include/host_key.h index 9f98ccc..c2d01a5 100644 --- a/host/lib/include/host_key.h +++ b/host/lib/include/host_key.h @@ -12,11 +12,11 @@ #include "vboot_struct.h" -typedef struct rsa_st RSA; +struct rsa_st; /* Private key data */ typedef struct VbPrivateKey { - RSA* rsa_private_key; /* Private key data */ + struct rsa_rt* rsa_private_key; /* Private key data */ uint64_t algorithm; /* Algorithm to use when signing */ } VbPrivateKey; -- 2.6.4 ================================================ FILE: package/vboot-utils/0004-Disable-static-futility.patch ================================================ The package attempts to build a statically-linked host binary, futility_s, which is not used anywhere in buildroot but may be causing build failures if the build host lacks static libc. Signed-off-by: Alex Suykov --- a/Makefile +++ b/Makefile @@ -1079,7 +1079,7 @@ # new Firmware Utility .PHONY: futil -futil: ${FUTIL_STATIC_BIN} ${FUTIL_BIN} +futil: ${FUTIL_BIN} ${FUTIL_STATIC_BIN}: ${FUTIL_STATIC_OBJS} ${UTILLIB} @${PRINTF} " LD $(subst ${BUILD}/,,$@)\n" @@ -1091,10 +1091,10 @@ ${Q}${LD} -o $@ ${CFLAGS} ${LDFLAGS} $^ ${LDLIBS} .PHONY: futil_install -futil_install: ${FUTIL_BIN} ${FUTIL_STATIC_BIN} +futil_install: ${FUTIL_BIN} @${PRINTF} " INSTALL futility\n" ${Q}mkdir -p ${UB_DIR} - ${Q}${INSTALL} -t ${UB_DIR} ${FUTIL_BIN} ${FUTIL_STATIC_BIN} + ${Q}${INSTALL} -t ${UB_DIR} ${FUTIL_BIN} ${Q}for prog in ${FUTIL_SYMLINKS}; do \ ln -sf futility "${UB_DIR}/$$prog"; done ================================================ FILE: package/vboot-utils/0005-include-sys-sysmacros.h-for-major.patch ================================================ From 435fbcee218b37a87368e2b22fa33366875d458c Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 19 Apr 2016 13:58:49 -0400 Subject: [PATCH] include sys/sysmacros.h for major() The major() func is defined in the sys/sysmacros.h header, so include it explicitly for the prototype. Upstream C libs are moving away from having sys/types.h include it all the time implicitly. BUG=None TEST=precq passes BRANCH=None Change-Id: I56b84138f08ded2376193403f9c9db22c5f24f71 Reviewed-on: https://chromium-review.googlesource.com/339680 Commit-Ready: Mike Frysinger Tested-by: Mike Frysinger Reviewed-by: Bill Richardson Signed-off-by: Giulio Benetti --- cgpt/cgpt_wrapper.c | 1 + futility/dump_kernel_config_lib.c | 1 + 2 files changed, 2 insertions(+) diff --git a/cgpt/cgpt_wrapper.c b/cgpt/cgpt_wrapper.c index dcfaab9c..1716cdde 100644 --- a/cgpt/cgpt_wrapper.c +++ b/cgpt/cgpt_wrapper.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include diff --git a/futility/dump_kernel_config_lib.c b/futility/dump_kernel_config_lib.c index 4fe990c3..abf37ae1 100644 --- a/futility/dump_kernel_config_lib.c +++ b/futility/dump_kernel_config_lib.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include -- 2.17.1 ================================================ FILE: package/vboot-utils/0006-Update-for-openssl-1.1.patch ================================================ From 2e730b2259c701f16d473dbfb7e58e86a6e71b01 Mon Sep 17 00:00:00 2001 From: Daniel Kurtz Date: Fri, 18 Jan 2019 13:04:59 +0200 Subject: [PATCH] Update for openssl 1.1 OpenSSL 1.1 has made significant non-backwards compatible changes to its API as outlined in: https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes BRANCH=none BUG=chromium:738114 TEST=cros_workon --host start vboot_reference TEST=w/ openssl-1.0.2k: sudo emerge vboot_reference TEST=w/ openssl-1.1.0e: sudo emerge vboot_reference => both build ok $ futility version => command runs without error TEST=cros_workon --board=soraka start vboot_reference coreboot TEST=w/ openssl-1.0.2k: emerge-soraka vboot_reference coreboot TEST=w/ openssl-1.1.0e: emerge-soraka vboot_reference coreboot => All build ok Change-Id: I37cfc8cbb04a092eab7b0b3224f475b82609447c Reviewed-on: https://chromium-review.googlesource.com/557739 Commit-Ready: Daniel Kurtz Tested-by: Daniel Kurtz Reviewed-by: Randall Spangler Reviewed-by: Mike Frysinger (cherry-picked from bce7904376beee2912932433a4634c1c25afe2f5) Signed-off-by: Vadim Kochan --- futility/cmd_create.c | 5 ++++- futility/vb2_helper.c | 7 +++++-- host/include/openssl_compat.h | 26 ++++++++++++++++++++++++++ host/lib/util_misc.c | 7 +++++-- host/lib21/host_key.c | 8 +++++++- utility/dumpRSAPublicKey.c | 19 ++++++++++++++----- 6 files changed, 61 insertions(+), 11 deletions(-) create mode 100644 host/include/openssl_compat.h diff --git a/futility/cmd_create.c b/futility/cmd_create.c index 143ea9ae..80d3fd90 100644 --- a/futility/cmd_create.c +++ b/futility/cmd_create.c @@ -13,6 +13,7 @@ #include "2common.h" #include "2id.h" #include "2rsa.h" +#include "openssl_compat.h" #include "util_misc.h" #include "vb2_common.h" #include "vb2_struct.h" @@ -170,6 +171,7 @@ static int vb2_make_keypair() enum vb2_signature_algorithm sig_alg; uint8_t *pubkey_buf = 0; int has_priv = 0; + const BIGNUM *rsa_d; FILE *fp; int ret = 1; @@ -193,7 +195,8 @@ static int vb2_make_keypair() goto done; } /* Public keys doesn't have the private exponent */ - has_priv = !!rsa_key->d; + RSA_get0_key(rsa_key, NULL, NULL, &rsa_d); + has_priv = !!rsa_d; if (!has_priv) fprintf(stderr, "%s has a public key only.\n", infile); diff --git a/futility/vb2_helper.c b/futility/vb2_helper.c index 51a78375..c6cc0fdd 100644 --- a/futility/vb2_helper.c +++ b/futility/vb2_helper.c @@ -11,6 +11,7 @@ #include "2common.h" #include "2id.h" #include "2rsa.h" +#include "openssl_compat.h" #include "util_misc.h" #include "vb2_common.h" #include "vb2_struct.h" @@ -216,6 +217,7 @@ int ft_show_pem(const char *name, uint8_t *buf, uint32_t len, void *data) uint8_t *keyb, *digest; uint32_t keyb_len; int i, bits; + const BIGNUM *rsa_key_n, *rsa_key_d; /* We're called only after ft_recognize_pem, so this should work. */ rsa_key = rsa_from_buffer(buf, len); @@ -223,10 +225,11 @@ int ft_show_pem(const char *name, uint8_t *buf, uint32_t len, void *data) DIE; /* Use to presence of the private exponent to decide if it's public */ - printf("%s Key file: %s\n", rsa_key->d ? "Private" : "Public", + RSA_get0_key(rsa_key, &rsa_key_n, NULL, &rsa_key_d); + printf("%s Key file: %s\n", rsa_key_d ? "Private" : "Public", name); - bits = BN_num_bits(rsa_key->n); + bits = BN_num_bits(rsa_key_n); printf(" Key length: %d\n", bits); if (vb_keyb_from_rsa(rsa_key, &keyb, &keyb_len)) { diff --git a/host/include/openssl_compat.h b/host/include/openssl_compat.h new file mode 100644 index 00000000..7771f32a --- /dev/null +++ b/host/include/openssl_compat.h @@ -0,0 +1,26 @@ +/* Copyright 2017 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef VBOOT_REFERENCE_OPENSSL_COMPAT_H_ +#define VBOOT_REFERENCE_OPENSSL_COMPAT_H_ + +#include + +#if OPENSSL_VERSION_NUMBER < 0x10100000L + +static inline void RSA_get0_key(const RSA *rsa, const BIGNUM **n, + const BIGNUM **e, const BIGNUM **d) +{ + if (n != NULL) + *n = rsa->n; + if (e != NULL) + *e = rsa->e; + if (d != NULL) + *d = rsa->d; +} + +#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ + +#endif /* VBOOT_REFERENCE_OPENSSL_COMPAT_H_ */ diff --git a/host/lib/util_misc.c b/host/lib/util_misc.c index 03ec683f..f0a1f7ad 100644 --- a/host/lib/util_misc.c +++ b/host/lib/util_misc.c @@ -15,6 +15,7 @@ #include "cryptolib.h" #include "host_common.h" +#include "openssl_compat.h" #include "util_misc.h" #include "vboot_common.h" @@ -58,6 +59,7 @@ int vb_keyb_from_rsa(struct rsa_st *rsa_private_key, BIGNUM *N0inv = NULL, *R = NULL, *RR = NULL; BIGNUM *RRTemp = NULL, *NnumBits = NULL; BIGNUM *n = NULL, *rr = NULL; + const BIGNUM *rsa_private_key_n; BN_CTX *bn_ctx = BN_CTX_new(); uint32_t n0invout; uint32_t bufsize; @@ -65,7 +67,7 @@ int vb_keyb_from_rsa(struct rsa_st *rsa_private_key, int retval = 1; /* Size of RSA key in 32-bit words */ - nwords = BN_num_bits(rsa_private_key->n) / 32; + nwords = RSA_size(rsa_private_key) / 4; bufsize = (2 + nwords + nwords) * sizeof(uint32_t); outbuf = malloc(bufsize); @@ -94,7 +96,8 @@ int vb_keyb_from_rsa(struct rsa_st *rsa_private_key, NEW_BIGNUM(B); #undef NEW_BIGNUM - BN_copy(N, rsa_private_key->n); + RSA_get0_key(rsa_private_key, &rsa_private_key_n, NULL, NULL); + BN_copy(N, rsa_private_key_n); BN_set_word(Big1, 1L); BN_set_word(Big2, 2L); BN_set_word(Big32, 32L); diff --git a/host/lib21/host_key.c b/host/lib21/host_key.c index f7ea1622..f9419ad3 100644 --- a/host/lib21/host_key.c +++ b/host/lib21/host_key.c @@ -17,6 +17,7 @@ #include "host_common.h" #include "host_key2.h" #include "host_misc.h" +#include "openssl_compat.h" struct vb2_text_vs_enum vb2_text_vs_algorithm[] = { {"RSA1024 SHA1", VB2_ALG_RSA1024_SHA1}, @@ -544,7 +545,12 @@ int vb2_public_key_hash(struct vb2_public_key *key, enum vb2_signature_algorithm vb2_rsa_sig_alg(struct rsa_st *rsa) { - int bits = BN_num_bits(rsa->n); + const BIGNUM *e, *n; + int exp, bits; + + RSA_get0_key(rsa, &n, &e, NULL); + exp = BN_get_word(e); + bits = BN_num_bits(n); switch (bits) { case 1024: diff --git a/utility/dumpRSAPublicKey.c b/utility/dumpRSAPublicKey.c index b3b7b96b..a17b159e 100644 --- a/utility/dumpRSAPublicKey.c +++ b/utility/dumpRSAPublicKey.c @@ -14,14 +14,20 @@ #include #include +#include "openssl_compat.h" + /* Command line tool to extract RSA public keys from X.509 certificates * and output a pre-processed version of keys for use by RSA verification * routines. */ int check(RSA* key) { - int public_exponent = BN_get_word(key->e); - int modulus = BN_num_bits(key->n); + const BIGNUM *n, *e; + int public_exponent, modulus; + + RSA_get0_key(key, &n, &e, NULL); + public_exponent = BN_get_word(e); + modulus = BN_num_bits(n); if (public_exponent != 65537) { fprintf(stderr, "WARNING: Public exponent should be 65537 (but is %d).\n", @@ -40,7 +46,8 @@ int check(RSA* key) { */ void output(RSA* key) { int i, nwords; - BIGNUM *N = key->n; + const BIGNUM *key_n; + BIGNUM *N = NULL; BIGNUM *Big1 = NULL, *Big2 = NULL, *Big32 = NULL, *BigMinus1 = NULL; BIGNUM *B = NULL; BIGNUM *N0inv= NULL, *R = NULL, *RR = NULL, *RRTemp = NULL, *NnumBits = NULL; @@ -48,14 +55,15 @@ void output(RSA* key) { BN_CTX *bn_ctx = BN_CTX_new(); uint32_t n0invout; - N = key->n; /* Output size of RSA key in 32-bit words */ - nwords = BN_num_bits(N) / 32; + nwords = RSA_size(key) / 4; if (-1 == write(1, &nwords, sizeof(nwords))) goto failure; /* Initialize BIGNUMs */ + RSA_get0_key(key, &key_n, NULL, NULL); + N = BN_dup(key_n); Big1 = BN_new(); Big2 = BN_new(); Big32 = BN_new(); @@ -120,6 +128,7 @@ void output(RSA* key) { failure: /* Free BIGNUMs. */ + BN_free(N); BN_free(Big1); BN_free(Big2); BN_free(Big32); -- 2.14.1 ================================================ FILE: package/vboot-utils/0007-Make-vboot_version-extern-in-header.patch ================================================ From df4d2000a22db673a788b8e57e8e7c0cc3cee777 Mon Sep 17 00:00:00 2001 From: Leonard Chan Date: Thu, 3 Oct 2019 18:53:04 -0700 Subject: [PATCH] Make vboot_version extern in header When enabling `-fno-common` in Fuchsia, we get a bunch of linker errors when linking futility: ``` ld.lld: error: duplicate symbol: vboot_version >>> defined at futility.h:43 (../../third_party/vboot_reference/futility/futility.h:43) >>> host_x63-asan_no_detect_leaks/obj/third_party/vboot_reference/futility/futility.cmd_bdb.c.o:(vboot_version) >>> defined at futility.h:43 (../../third_party/vboot_reference/futility/futility.h:43) >>> host_x64-asan_no_detect_leaks/obj/third_party/vboot_reference/futility/futility.cmd_create.c.o:(.bss.vboot_version+0x0) ``` and think this is because -fno-common places vboot_version for unitialized global variables in the BSS section of each object file. Making it extern instead resolves each reference to its definition in futility/misc.c. Change-Id: I591f07abd1f975a8a9d078bb4366e2e0861390b4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1839207 Reviewed-by: Julius Werner Reviewed-by: Joel Kitching Commit-Queue: Julius Werner Tested-by: Julius Werner Patch taken from upstream: https://chromium.googlesource.com/chromiumos/platform/vboot_reference/+/df4d2000a22db673a788b8e57e8e7c0cc3cee777 Signed-off-by: Heiko Thiery --- futility/futility.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/futility/futility.h b/futility/futility.h index 3bce1106..5dc426dd 100644 --- a/futility/futility.h +++ b/futility/futility.h @@ -41,7 +41,7 @@ enum vboot_version { }; /* What's our preferred API & data format? */ -enum vboot_version vboot_version; +extern enum vboot_version vboot_version; /* Here's a structure to define the commands that futility implements. */ struct futil_cmd_t { -- 2.20.1 ================================================ FILE: package/vboot-utils/Config.in.host ================================================ config BR2_PACKAGE_HOST_VBOOT_UTILS bool "host vboot utils" select BR2_PACKAGE_HOST_UTIL_LINUX help Chromium OS verified boot utilities: futility and cgpt. https://www.chromium.org/chromium-os/chromiumos-design-docs/verified-boot ================================================ FILE: package/vboot-utils/vboot-utils.hash ================================================ # Locally computed sha256 9cdeaa2e4e1190c0cd200e1b07d394e5d24f57cc0efffdce861d5de934035bf7 vboot-utils-bbdd62f9b030db7ad8eef789aaf58a7ff9a25656-br1.tar.gz sha256 cb9dc8e96aedf9120b6757a60387db10f3c1a8e3fd97bb9d0f11327be5a7ed4d LICENSE ================================================ FILE: package/vboot-utils/vboot-utils.mk ================================================ ################################################################################ # # vboot-utils # ################################################################################ VBOOT_UTILS_VERSION = bbdd62f9b030db7ad8eef789aaf58a7ff9a25656 VBOOT_UTILS_SITE = https://chromium.googlesource.com/chromiumos/platform/vboot_reference VBOOT_UTILS_SITE_METHOD = git VBOOT_UTILS_LICENSE = BSD-3-Clause VBOOT_UTILS_LICENSE_FILES = LICENSE HOST_VBOOT_UTILS_DEPENDENCIES = host-openssl host-util-linux host-pkgconf # vboot_reference contains code that goes into bootloaders, # utilities intended for the target system, and a bunch of scripts # for Chromium OS build system. Most of that does not make sense # in a buildroot host-package. # # We only need futility for signing images, the keys, and cgpt for boot # media partitioning. # # make target for futility is "futil". # # The value of ARCH is only relevant for crossystem (a target tool) and # does not affect futil or cgpt in any way as long as it is one of the # supported targets. define HOST_VBOOT_UTILS_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) \ CC="$(HOSTCC)" \ CFLAGS="$(HOST_CFLAGS) -D_LARGEFILE64_SOURCE -D_GNU_SOURCE" \ LDFLAGS="$(HOST_LDFLAGS)" \ ARCH=arm \ futil cgpt endef define HOST_VBOOT_UTILS_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(HOST_DIR) \ futil_install cgpt_install devkeys_install endef $(eval $(host-generic-package)) ================================================ FILE: package/vde2/0001-no-cxx.patch ================================================ configure: do not test for CXX, it's not needed There is no C++ source file, so no reason to require a C++ compiler. Reported-by: Peter Korsgaard Signed-off-by: "Yann E. MORIN" --- Patch sent upstream ( not yet in archives, awaits moderator approval... :-/ ) diff -durN vde2-2.3.2.orig/configure.ac vde2-2.3.2/configure.ac --- vde2-2.3.2.orig/configure.ac 2011-11-23 17:41:19.000000000 +0100 +++ vde2-2.3.2/configure.ac 2012-12-14 21:56:47.146319686 +0100 @@ -11,7 +11,6 @@ AC_CONFIG_LIBOBJ_DIR(src/common) # Checks for programs. -AC_PROG_CXX AC_PROG_CC AC_PROG_INSTALL AC_PROG_LN_S ================================================ FILE: package/vde2/0002-fstp-Add-static-to-inline-functions.patch ================================================ From 67bc8443ac7e8144a78d84dee30a5cac3b5c99a4 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 27 Aug 2017 23:56:05 +0200 Subject: [PATCH] fstp: Add static to inline functions From [1] "This is needed to avoid a link error where the inline functions appear missing at link time. From c99 standard inline function should either be declared static or have an extern instance in a c file for linking. This fix is necessary to build with gcc 7; for some reason it was not trigerred before." [1] https://git.buildroot.net/buildroot/commit/?id=21133ada326c87627f7bdee4493d8086587c3cca Signed-off-by: Romain Naour --- src/vde_switch/fstp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vde_switch/fstp.c b/src/vde_switch/fstp.c index aab7324..b1e7ee8 100644 --- a/src/vde_switch/fstp.c +++ b/src/vde_switch/fstp.c @@ -30,14 +30,14 @@ static int numports; #ifdef FSTP #include /*********************** sending macro used by FSTP & Core ******************/ -void inline ltonstring(unsigned long l,unsigned char *s) { +static void inline ltonstring(unsigned long l,unsigned char *s) { s[3]=l; l>>=8; s[2]=l; l>>=8; s[1]=l; l>>=8; s[0]=l; } -unsigned long inline nstringtol(unsigned char *s) { +static unsigned long inline nstringtol(unsigned char *s) { return (s[0]<<24)+(s[1]<<16)+(s[2]<<8)+s[3]; } -- 2.9.5 ================================================ FILE: package/vde2/Config.in ================================================ config BR2_PACKAGE_VDE2 bool "vde2" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # dlopen() help VDE is an ethernet compliant virtual network that can be spawned over a set of physical computers over the Internet. VDE is part of the virtualsquare project. http://vde.sourceforge.net/ comment "vde2 needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS ================================================ FILE: package/vde2/vde2.hash ================================================ # Locally computed: sha256 cbea9b7e03097f87a6b5e98b07890d2275848f1fe4b9fcda77b8994148bc9542 vde2-2.3.2.tar.bz2 sha256 fb295d0c24b8ef4b39017ac68e772e8e6e839612ce10da12b9f48d1e8e512e2e COPYING sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING.libvdeplug sha256 d5ac74315b2d2f9c53f5839e311484f4646a9401b68d02d36f3dab386352e74d COPYING.slirpvde ================================================ FILE: package/vde2/vde2.mk ================================================ ################################################################################ # # vde2 # ################################################################################ VDE2_VERSION = 2.3.2 VDE2_SOURCE = vde2-$(VDE2_VERSION).tar.bz2 VDE2_SITE = http://downloads.sourceforge.net/project/vde/vde2/$(VDE2_VERSION) VDE2_LICENSE = GPL-2.0+, LGPL-2.1+, BSD-3-Clause VDE2_LICENSE_FILES = COPYING COPYING.libvdeplug COPYING.slirpvde VDE2_CPE_ID_VENDOR = vde_project VDE2_CPE_ID_PRODUCT = vde VDE2_INSTALL_STAGING = YES # We touch configure.ac, so we need to autoreconf VDE2_AUTORECONF = YES # Reasons for enabling/disabling stuff: # - tuntap is enabled in the hope we're using a recent-enough toolchain # that does have if_tun.h (virtually everything these days) # - kvde_switch is disabled because it requires a patched kernel # - cryptcab is disabled to not depend on openSSL # - python is disabled to not depend on Python # - pcap is disabled to not depend on libpcap # - profiling is disabled because we do not want to debug/profile # # Note: disabled features can be added with corresponding dependencies # in future commits. VDE2_CONF_OPTS = \ --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)) ================================================ FILE: package/vdr/Config.in ================================================ config BR2_PACKAGE_VDR bool "vdr" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 depends on BR2_TOOLCHAIN_USES_GLIBC # execinfo.h depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBCAP select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help This project describes how to build your own digital satellite receiver and Video Disk Recorder. http://www.tvdr.de comment "vdr needs a glibc toolchain w/ C++, dynamic library, NPTL, wchar, headers >= 3.9" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ !BR2_TOOLCHAIN_USES_GLIBC || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 ================================================ FILE: package/vdr/vdr.hash ================================================ # Locally computed sha256 27026b78a663758211d15c83a21555e28d91ab640c6d4f6cdd860f2abf1cae84 vdr-2.5.6.tar.gz sha256 ddb9db7630752f8fdc6898f7c99a99eaeeac5213627ecb093df9c82f56175dc7 COPYING ================================================ FILE: package/vdr/vdr.mk ================================================ ################################################################################ # # vdr # ################################################################################ VDR_VERSION = 2.5.6 VDR_SITE = $(call github,vdr-projects,vdr,$(VDR_VERSION)) VDR_LICENSE = GPL-2.0+ VDR_LICENSE_FILES = COPYING VDR_CPE_ID_VENDOR = tvdr VDR_INSTALL_STAGING = YES VDR_DEPENDENCIES = \ host-pkgconf \ freetype \ fontconfig \ jpeg \ libcap \ $(TARGET_NLS_DEPENDENCIES) VDR_MAKE_FLAGS = \ NO_KBD=yes \ PKG_CONFIG=$(PKG_CONFIG_HOST_BINARY) \ PLUGINLIBDIR=/usr/lib/vdr \ PREFIX=/usr \ VIDEODIR=/var/lib/vdr VDR_LDFLAGS = $(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_LIBFRIBIDI),y) VDR_DEPENDENCIES += libfribidi VDR_MAKE_FLAGS += BIDI=1 endif ifeq ($(BR2_PACKAGE_LIBICONV),y) VDR_DEPENDENCIES += libiconv VDR_LDFLAGS += -liconv endif VDR_MAKE_ENV = \ LDFLAGS="$(VDR_LDFLAGS)" \ $(VDR_MAKE_FLAGS) define VDR_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) $(VDR_MAKE_ENV) \ vdr vdr.pc include-dir endef define VDR_INSTALL_STAGING_CMDS $(MAKE1) $(TARGET_CONFIGURE_OPTS) -C $(@D) $(VDR_MAKE_ENV) \ DESTDIR=$(STAGING_DIR) \ install-dirs install-bin install-conf install-includes \ install-pc endef define VDR_INSTALL_TARGET_CMDS $(MAKE1) $(TARGET_CONFIGURE_OPTS) -C $(@D) $(VDR_MAKE_ENV) \ DESTDIR=$(TARGET_DIR) \ install-dirs install-bin install-conf endef $(eval $(generic-package)) ================================================ FILE: package/vdr-plugin-vnsiserver/Config.in ================================================ config BR2_PACKAGE_VDR_PLUGIN_VNSISERVER bool "vdr-plugin-vnsiserver" depends on BR2_PACKAGE_VDR help VDR plugin to handle KODI clients. The vdr-plugin-vnsiserver is able to handle serveral KODI clients connecting via the VNSI addon. https://github.com/FernetMenta/vdr-plugin-vnsiserver ================================================ FILE: package/vdr-plugin-vnsiserver/vdr-plugin-vnsiserver.hash ================================================ # Locally computed sha256 d5989461541a91fe4de4ca9c396d4e7b2f4a8663fc9d6155d0830d2b143fce4d vdr-plugin-vnsiserver-1.8.0.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/vdr-plugin-vnsiserver/vdr-plugin-vnsiserver.mk ================================================ ################################################################################ # # vdr-plugin-vnsiserver # ################################################################################ VDR_PLUGIN_VNSISERVER_VERSION = 1.8.0 VDR_PLUGIN_VNSISERVER_SITE = $(call github,FernetMenta,vdr-plugin-vnsiserver,v$(VDR_PLUGIN_VNSISERVER_VERSION)) VDR_PLUGIN_VNSISERVER_LICENSE = GPL-2.0+ VDR_PLUGIN_VNSISERVER_LICENSE_FILES = COPYING VDR_PLUGIN_VNSISERVER_DEPENDENCIES = vdr VDR_PLUGIN_VNSISERVER_CXXFLAGS = CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11 -fPIC" VDR_PLUGIN_VNSISERVER_INSTALL_TARGETS = install-lib ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) VDR_PLUGIN_VNSISERVER_INSTALL_TARGETS += install-i18n endif define VDR_PLUGIN_VNSISERVER_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ $(VDR_PLUGIN_VNSISERVER_CXXFLAGS) endef define VDR_PLUGIN_VNSISERVER_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ $(VDR_PLUGIN_VNSISERVER_INSTALL_TARGETS) DESTDIR=$(TARGET_DIR) \ LIBDIR=/usr/lib/vdr LOCDIR=/usr/share/locale endef $(eval $(generic-package)) ================================================ FILE: package/vim/Config.in ================================================ 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 help VIM Text editor http://www.vim.org/ if BR2_PACKAGE_VIM config BR2_PACKAGE_VIM_RUNTIME bool "install runtime" default y help Install VIM runtime (syntax highlighing + macros). This option adds about 11MB of data to /usr/share/ 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 ================================================ FILE: package/vim/vim.hash ================================================ # Locally computed sha256 16ff13ea2a11da96080510fdfccf5f3a05f82e2c7027494bd8c98704bbf14428 vim-8.2.3690.tar.gz sha256 0bcab3b635dd39208c42b496568d1e8171dad247cf3da5bab3d750c9d5883499 LICENSE sha256 96970b67f9cb38b0e759946cff22562a3c4b11ce78f62f2117d5e7ecded9ab4d README.txt ================================================ FILE: package/vim/vim.mk ================================================ ################################################################################ # # vim # ################################################################################ VIM_VERSION = 8.2.3690 VIM_SITE = $(call github,vim,vim,v$(VIM_VERSION)) VIM_DEPENDENCIES = ncurses $(TARGET_NLS_DEPENDENCIES) VIM_SUBDIR = src VIM_CONF_ENV = \ vim_cv_toupper_broken=no \ vim_cv_terminfo=yes \ vim_cv_tgetent=zero \ vim_cv_tty_group=world \ vim_cv_tty_mode=0620 \ vim_cv_getcwd_broken=no \ vim_cv_stat_ignores_slash=yes \ vim_cv_memmove_handles_overlap=yes \ ac_cv_sizeof_int=4 \ ac_cv_small_wchar_t=no # GUI/X11 headers leak from the host so forcibly disable them VIM_CONF_OPTS = --with-tlib=ncurses --enable-gui=no --without-x VIM_LICENSE = Charityware VIM_LICENSE_FILES = LICENSE README.txt VIM_CPE_ID_VENDOR = vim ifeq ($(BR2_PACKAGE_ACL),y) VIM_CONF_OPTS += --enable-acl VIM_DEPENDENCIES += acl else VIM_CONF_OPTS += --disable-acl endif ifeq ($(BR2_PACKAGE_GPM),y) VIM_CONF_OPTS += --enable-gpm VIM_DEPENDENCIES += gpm else VIM_CONF_OPTS += --disable-gpm endif ifeq ($(BR2_PACKAGE_LIBSELINUX),y) VIM_CONF_OPTS += --enable-selinux VIM_DEPENDENCIES += libselinux else VIM_CONF_OPTS += --disable-selinux endif define VIM_INSTALL_TARGET_CMDS cd $(@D)/src; \ $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) installvimbin; \ $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) installtools; \ $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) installlinks endef define VIM_INSTALL_RUNTIME_CMDS cd $(@D)/src; \ $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) installrtbase; \ $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) installmacros endef define VIM_REMOVE_DOCS $(RM) -rf $(TARGET_DIR)/usr/share/vim/vim*/doc/ endef # Avoid oopses with vipw/vigr, lack of $EDITOR and 'vi' command expectation ifeq ($(BR2_ROOTFS_MERGED_USR),y) define VIM_INSTALL_VI_SYMLINK ln -sf vim $(TARGET_DIR)/usr/bin/vi endef else define VIM_INSTALL_VI_SYMLINK ln -sf ../usr/bin/vim $(TARGET_DIR)/bin/vi endef endif VIM_POST_INSTALL_TARGET_HOOKS += VIM_INSTALL_VI_SYMLINK ifeq ($(BR2_PACKAGE_VIM_RUNTIME),y) VIM_POST_INSTALL_TARGET_HOOKS += VIM_INSTALL_RUNTIME_CMDS VIM_POST_INSTALL_TARGET_HOOKS += VIM_REMOVE_DOCS endif HOST_VIM_DEPENDENCIES = host-ncurses HOST_VIM_CONF_OPTS = \ --with-tlib=ncurses \ --enable-gui=no \ --without-x \ --disable-acl \ --disable-gpm \ --disable-selinux $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/vlc/0001-Disable-building-of-statically-linked-vlc-binary.patch ================================================ From 7c2b3343a30ee53a1cded2ca5e712d8cd7d50f5f Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Tue, 1 May 2018 22:27:21 +0200 Subject: [PATCH] Disable building of statically linked vlc binary Signed-off-by: Bernd Kuhls --- Makefile.am | 2 +- bin/Makefile.am | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 3ac82623ad..637504a3f5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -108,7 +108,7 @@ libvlc: libvlccore cd lib && $(MAKE) $(AM_MAKEFLAGS) libvlc.la core: libvlc vlc$(EXEEXT) - cd bin && $(MAKE) $(AM_MAKEFLAGS) vlc$(EXEEXT) vlc-static$(EXEEXT) + cd bin && $(MAKE) $(AM_MAKEFLAGS) vlc$(EXEEXT) doc: cd doc && $(MAKE) $(AM_MAKEFLAGS) doc diff --git a/bin/Makefile.am b/bin/Makefile.am index 2877e8b0ea..bef4160e8b 100644 --- a/bin/Makefile.am +++ b/bin/Makefile.am @@ -6,7 +6,7 @@ bin_PROGRAMS = vlc-osx noinst_PROGRAMS = vlc-osx-static else bin_PROGRAMS = vlc -noinst_PROGRAMS = vlc-static +noinst_PROGRAMS = endif endif EXTRA_DIST = vlc_win32_rc.rc.in -- 2.14.4 ================================================ FILE: package/vlc/0002-automake-add-subdir-objects-option.patch ================================================ From 54e7e0bda02099ae9d1c42abed1932ffa8d354e8 Mon Sep 17 00:00:00 2001 From: "Arnout Vandecappelle (Essensium/Mind)" Date: Tue, 1 May 2018 22:28:52 +0200 Subject: [PATCH] automake: add subdir-objects option Our version of automake warns if this option is enabled and source files in subdirectories are used. It doesn't really seems to have a noticable effect on the build, but it does remove a lot of annoying warnings. 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 206690b468..dfb4c1c329 100644 --- a/configure.ac +++ b/configure.ac @@ -24,7 +24,7 @@ AC_CANONICAL_BUILD AC_CANONICAL_HOST AC_PRESERVE_HELP_ORDER -AM_INIT_AUTOMAKE(tar-ustar color-tests foreign) +AM_INIT_AUTOMAKE(tar-ustar color-tests foreign subdir-objects) AC_CONFIG_HEADERS([config.h]) AM_SILENT_RULES([yes]) -- 2.14.4 ================================================ FILE: package/vlc/0003-build-use-pkg-config-to-get-tremor-libs.patch ================================================ From fb257e1e204c30436b3509ea3fa9f7c5fe131dc1 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 16 Oct 2018 14:25:20 +0200 Subject: [PATCH] build: use pkg-config to get tremor libs Use PKG_ENABLE_MODULES_VLC to enable tremor based on availability of ogg and vorbisidec Signed-off-by: Fabrice Fontaine --- configure.ac | 9 +-------- modules/codec/Makefile.am | 2 +- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/configure.ac b/configure.ac index 0d3222e00f..b506d735f2 100644 --- a/configure.ac +++ b/configure.ac @@ -2710,14 +2710,7 @@ PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorb dnl dnl Tremor plugin dnl -AC_ARG_ENABLE(tremor, - [ --enable-tremor Tremor decoder support (default disabled)]) -if test "${enable_tremor}" = "yes" -then - AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [ - VLC_ADD_PLUGIN([tremor]) - ],[]) -fi +PKG_ENABLE_MODULES_VLC([TREMOR], [], [vorbisidec ogg], [Tremor decoder support], [disabled]) dnl dnl Speex plugins diff --git a/modules/codec/Makefile.am b/modules/codec/Makefile.am index 075ee2a0e9..637b1d45a6 100644 --- a/modules/codec/Makefile.am +++ b/modules/codec/Makefile.am @@ -318,7 +318,7 @@ codec_LTLIBRARIES += $(LTLIBdaala) libtremor_plugin_la_SOURCES = codec/vorbis.c libtremor_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DMODULE_NAME_IS_tremor libtremor_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)' -libtremor_plugin_la_LIBADD = -lvorbisdec -logg +libtremor_plugin_la_LIBADD = $(TREMOR_LIBS) EXTRA_LTLIBRARIES += libtremor_plugin.la codec_LTLIBRARIES += $(LTLIBtremor) -- 2.17.1 ================================================ FILE: package/vlc/0004-Fix-build-error-using-uClibc-by-adding-sys-types.h.patch ================================================ From bbb15b9cbf9353423619f2c40abdf95d861e66ba Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sat, 2 Apr 2016 16:49:54 +0200 Subject: [PATCH] Fix build error using uClibc by adding sys/types.h Fixes CC core.lo In file included from libvlc_internal.h:35:0, from core.c:28: ../include/vlc/libvlc_media.h:313:18: error: expected declaration specifiers or '...' before '*' token typedef ssize_t (*libvlc_media_read_cb)(void *opaque, unsigned char *buf, ^ ../include/vlc/libvlc_media.h:423:36: error: unknown type name 'libvlc_media_read_cb' libvlc_media_read_cb read_cb, ^ Bug was reported to trac: https://trac.videolan.org/vlc/ticket/16768 This patch was suggested by courmisch in the trac ticket. Signed-off-by: Bernd Kuhls [Patch sent upstream: https://mailman.videolan.org/pipermail/vlc-devel/2016-April/106952.html] --- include/vlc/libvlc_media.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/vlc/libvlc_media.h b/include/vlc/libvlc_media.h index 383f366b69..1cbf00c3e3 100644 --- a/include/vlc/libvlc_media.h +++ b/include/vlc/libvlc_media.h @@ -26,6 +26,8 @@ #ifndef VLC_LIBVLC_MEDIA_H #define VLC_LIBVLC_MEDIA_H 1 +#include /* for ssize_t */ + # ifdef __cplusplus extern "C" { # endif -- 2.14.4 ================================================ FILE: package/vlc/0005-Don-t-assume-strerror_l-is-available.patch ================================================ From 0435cf37308652af1cf244b6429e919fa7ffaa95 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Tue, 1 May 2018 22:31:23 +0200 Subject: [PATCH] Don't assume strerror_l() is available Fix compile error CCLD vlc /home/br/br3/output/build/vlc-2.2.1/src/.libs/libvlccore.so: undefined reference to `strerror_l' Code for #else condition was taken from http://patches.osdyson.org/patch/series/view/vlc/2.2.0~rc2-1+dyson2/dyson.patch [Bernd: rebased for vlc-3.0.6 & 3.0.9.2] Signed-off-by: Bernd Kuhls --- configure.ac | 2 +- src/posix/error.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index dfb4c1c329..bfe43512a2 100644 --- a/configure.ac +++ b/configure.ac @@ -590,7 +590,7 @@ dnl Check for system libs needed need_libc=false dnl Check for usual libc functions -AC_CHECK_FUNCS([accept4 daemon fcntl flock fstatvfs fork getenv getmntent_r getpwuid_r isatty lstat memalign mkostemp mmap newlocale open_memstream openat pipe2 pread posix_fadvise posix_madvise posix_memalign setlocale stricmp strnicmp strptime uselocale]) +AC_CHECK_FUNCS([accept4 daemon fcntl flock fstatvfs fork getenv getmntent_r getpwuid_r isatty lstat memalign mkostemp mmap newlocale open_memstream openat pipe2 pread posix_fadvise posix_madvise posix_memalign setlocale strerror_l stricmp strnicmp strptime uselocale]) AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir ffsll flockfile fsync getdelim getpid lfind lldiv memrchr nrand48 poll recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tdestroy tfind timegm timespec_get strverscmp pathconf]) AC_REPLACE_FUNCS([gettimeofday]) AC_CHECK_FUNC(fdatasync,, diff --git a/src/posix/error.c b/src/posix/error.c index db51004601..b4aa6fb3ca 100644 --- a/src/posix/error.c +++ b/src/posix/error.c @@ -31,6 +31,7 @@ static const char *vlc_strerror_l(int errnum, const char *lname) { +#ifdef HAVE_STRERROR_L int saved_errno = errno; locale_t loc = newlocale(LC_MESSAGES_MASK, lname, (locale_t)0); @@ -51,6 +52,9 @@ static const char *vlc_strerror_l(int errnum, const char *lname) const char *buf = strerror_l(errnum, loc); freelocale(loc); +#else + const char *buf = strerror(errnum); +#endif return buf; } -- 2.14.4 ================================================ FILE: package/vlc/0006-posix-remove-ancient-run-time-fallback-to-real-time-.patch ================================================ From 5d561e1e2dcde3c9fca4d925f12447009d0d4a4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= Date: Wed, 18 Apr 2018 17:23:57 +0300 Subject: [PATCH] posix: remove ancient run-time fallback to real-time clock MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit posix: remove ancient run-time fallback to real-time clock For hysterical raisins, GNU/Linux and possibly some other OSes still report that monotonic clock must be checked at run-time, although I doubt that VLC or even current glibc would run on such old kernel. Drop that to simplify and avoid the systematic one-time init check. Downloaded from upstream commit to fix build error on m68k: posix/thread.c:79:5: warning: #warning Monotonic clock not available. Expect timing issues. [-Wcpp] # warning Monotonic clock not available. Expect timing issues. ^~~~~~~ posix/thread.c: In function ‘vlc_clock_setup_once’: posix/thread.c:88:18: error: lvalue required as left operand of assignment vlc_clock_id = (val < 0) ? CLOCK_REALTIME : CLOCK_MONOTONIC; Signed-off-by: Bernd Kuhls --- src/posix/thread.c | 96 +++++++----------------------------------------------- 1 file changed, 11 insertions(+), 85 deletions(-) diff --git a/src/posix/thread.c b/src/posix/thread.c index dab8b71f97..8878941913 100644 --- a/src/posix/thread.c +++ b/src/posix/thread.c @@ -51,62 +51,16 @@ # include #endif -#if !defined (_POSIX_TIMERS) -# define _POSIX_TIMERS (-1) -#endif -#if !defined (_POSIX_CLOCK_SELECTION) -/* Clock selection was defined in 2001 and became mandatory in 2008. */ -# define _POSIX_CLOCK_SELECTION (-1) -#endif -#if !defined (_POSIX_MONOTONIC_CLOCK) -# define _POSIX_MONOTONIC_CLOCK (-1) -#endif - -#if (_POSIX_TIMERS > 0) static unsigned vlc_clock_prec; -# if (_POSIX_MONOTONIC_CLOCK > 0) && (_POSIX_CLOCK_SELECTION > 0) -/* Compile-time POSIX monotonic clock support */ -# define vlc_clock_id (CLOCK_MONOTONIC) - -# elif (_POSIX_MONOTONIC_CLOCK == 0) && (_POSIX_CLOCK_SELECTION > 0) -/* Run-time POSIX monotonic clock support (see clock_setup() below) */ -static clockid_t vlc_clock_id; - -# else -/* No POSIX monotonic clock support */ -# define vlc_clock_id (CLOCK_REALTIME) -# warning Monotonic clock not available. Expect timing issues. - -# endif /* _POSIX_MONOTONIC_CLOKC */ - static void vlc_clock_setup_once (void) { -# if (_POSIX_MONOTONIC_CLOCK == 0) - long val = sysconf (_SC_MONOTONIC_CLOCK); - assert (val != 0); - vlc_clock_id = (val < 0) ? CLOCK_REALTIME : CLOCK_MONOTONIC; -# endif - struct timespec res; - if (unlikely(clock_getres (vlc_clock_id, &res) != 0 || res.tv_sec != 0)) + if (unlikely(clock_getres(CLOCK_MONOTONIC, &res) != 0 || res.tv_sec != 0)) abort (); vlc_clock_prec = (res.tv_nsec + 500) / 1000; } -static pthread_once_t vlc_clock_once = PTHREAD_ONCE_INIT; - -# define vlc_clock_setup() \ - pthread_once(&vlc_clock_once, vlc_clock_setup_once) - -#else /* _POSIX_TIMERS */ - -# include /* gettimeofday() */ - -# define vlc_clock_setup() (void)0 -# warning Monotonic clock not available. Expect timing issues. -#endif /* _POSIX_TIMERS */ - static struct timespec mtime_to_ts (mtime_t date) { lldiv_t d = lldiv (date, CLOCK_FREQ); @@ -233,14 +187,11 @@ void vlc_cond_init (vlc_cond_t *p_condvar) { pthread_condattr_t attr; - if (unlikely(pthread_condattr_init (&attr))) - abort (); -#if (_POSIX_CLOCK_SELECTION > 0) - vlc_clock_setup (); - pthread_condattr_setclock (&attr, vlc_clock_id); -#endif - if (unlikely(pthread_cond_init (p_condvar, &attr))) + if (unlikely(pthread_condattr_init (&attr)) + || unlikely(pthread_condattr_setclock(&attr, CLOCK_MONOTONIC)) + || unlikely(pthread_cond_init (p_condvar, &attr))) abort (); + pthread_condattr_destroy (&attr); } @@ -625,44 +576,27 @@ void vlc_control_cancel (int cmd, ...) mtime_t mdate (void) { -#if (_POSIX_TIMERS > 0) struct timespec ts; - vlc_clock_setup (); - if (unlikely(clock_gettime (vlc_clock_id, &ts) != 0)) + if (unlikely(clock_gettime(CLOCK_MONOTONIC, &ts) != 0)) abort (); return (INT64_C(1000000) * ts.tv_sec) + (ts.tv_nsec / 1000); - -#else - struct timeval tv; - - if (unlikely(gettimeofday (&tv, NULL) != 0)) - abort (); - return (INT64_C(1000000) * tv.tv_sec) + tv.tv_usec; - -#endif } #undef mwait void mwait (mtime_t deadline) { -#if (_POSIX_CLOCK_SELECTION > 0) - vlc_clock_setup (); + static pthread_once_t vlc_clock_once = PTHREAD_ONCE_INIT; + /* If the deadline is already elapsed, or within the clock precision, * do not even bother the system timer. */ + pthread_once(&vlc_clock_once, vlc_clock_setup_once); deadline -= vlc_clock_prec; struct timespec ts = mtime_to_ts (deadline); - while (clock_nanosleep (vlc_clock_id, TIMER_ABSTIME, &ts, NULL) == EINTR); - -#else - deadline -= mdate (); - if (deadline > 0) - msleep (deadline); - -#endif + while (clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, &ts, NULL) == EINTR); } #undef msleep @@ -670,15 +604,7 @@ void msleep (mtime_t delay) { struct timespec ts = mtime_to_ts (delay); -#if (_POSIX_CLOCK_SELECTION > 0) - vlc_clock_setup (); - while (clock_nanosleep (vlc_clock_id, 0, &ts, &ts) == EINTR); - -#else - while (nanosleep (&ts, &ts) == -1) - assert (errno == EINTR); - -#endif + while (clock_nanosleep(CLOCK_MONOTONIC, 0, &ts, &ts) == EINTR); } unsigned vlc_GetCPUCount(void) -- 2.14.4 ================================================ FILE: package/vlc/0007-Add-support-for-freerdp2.patch ================================================ From 3780bbb20bf35aa8f21ac672da3f0c5f408468e9 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Thu, 16 Aug 2018 12:27:40 +0200 Subject: [PATCH] Add support for freerdp2 Downloaded from https://gitweb.gentoo.org/repo/gentoo.git/tree/media-video/vlc/files/vlc-2.2.8-freerdp-2.patch Signed-off-by: Bernd Kuhls --- configure.ac | 2 +- modules/access/rdp.c | 51 ++++++++++++++------------------------------------- 2 files changed, 15 insertions(+), 38 deletions(-) diff --git a/configure.ac b/configure.ac index bfe43512a2..4808b8becf 100644 --- a/configure.ac +++ b/configure.ac @@ -1992,7 +1992,7 @@ PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client su dnl RDP/Remote Desktop access module dnl -PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) ) +PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp2 >= 1.0.1], (RDP/Remote Desktop client support) ) dnl dnl Real RTSP plugin diff --git a/modules/access/rdp.c b/modules/access/rdp.c index 2992090219..49986f5da9 100644 --- a/modules/access/rdp.c +++ b/modules/access/rdp.c @@ -45,18 +45,6 @@ # include #endif -#if !defined(FREERDP_VERSION_MAJOR) || \ - (defined(FREERDP_VERSION_MAJOR) && !(FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR >= 1))) -# define SoftwareGdi sw_gdi -# define Fullscreen fullscreen -# define ServerHostname hostname -# define Username username -# define Password password -# define ServerPort port -# define EncryptionMethods encryption -# define ContextSize context_size -#endif - #include #ifdef HAVE_POLL # include @@ -144,6 +132,7 @@ static void desktopResizeHandler( rdpContext *p_context ) vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_context; demux_sys_t *p_sys = p_vlccontext->p_demux->p_sys; rdpGdi *p_gdi = p_context->gdi; + unsigned bytesPerPixel; if ( p_sys->es ) { @@ -153,17 +142,21 @@ static void desktopResizeHandler( rdpContext *p_context ) /* Now init and fill es format */ vlc_fourcc_t i_chroma; - switch( p_gdi->bytesPerPixel ) + switch( p_gdi->dstFormat ) { default: - case 16: + msg_Dbg( p_vlccontext->p_demux, "unhandled dstFormat %x bpp", p_gdi->dstFormat); + case PIXEL_FORMAT_BGR16: i_chroma = VLC_CODEC_RGB16; + bytesPerPixel = 16; break; - case 24: + case PIXEL_FORMAT_BGR24: i_chroma = VLC_CODEC_RGB24; + bytesPerPixel = 24; break; - case 32: + case PIXEL_FORMAT_BGRA32: i_chroma = VLC_CODEC_RGB32; + bytesPerPixel = 32; break; } es_format_t fmt; @@ -176,7 +169,7 @@ static void desktopResizeHandler( rdpContext *p_context ) fmt.video.i_height = p_gdi->height; fmt.video.i_frame_rate_base = 1000; fmt.video.i_frame_rate = 1000 * p_sys->f_fps; - p_sys->i_framebuffersize = p_gdi->width * p_gdi->height * p_gdi->bytesPerPixel; + p_sys->i_framebuffersize = p_gdi->width * p_gdi->height * bytesPerPixel; if ( p_sys->p_block ) p_sys->p_block = block_Realloc( p_sys->p_block, 0, p_sys->i_framebuffersize ); @@ -237,28 +230,19 @@ static bool postConnectHandler( freerdp *p_instance ) vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_instance->context; msg_Dbg( p_vlccontext->p_demux, "connected to desktop %dx%d (%d bpp)", -#if defined(FREERDP_VERSION_MAJOR) && (FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR >= 1)) p_instance->settings->DesktopWidth, p_instance->settings->DesktopHeight, p_instance->settings->ColorDepth -#else - p_instance->settings->width, - p_instance->settings->height, - p_instance->settings->color_depth -#endif ); p_instance->update->DesktopResize = desktopResizeHandler; p_instance->update->BeginPaint = beginPaintHandler; p_instance->update->EndPaint = endPaintHandler; - gdi_init( p_instance, - CLRBUF_16BPP | -#if defined(FREERDP_VERSION_MAJOR) && defined(FREERDP_VERSION_MINOR) && \ - !(FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR >= 2)) - CLRBUF_24BPP | -#endif - CLRBUF_32BPP, NULL ); + if ( p_instance->settings->ColorDepth > 16 ) + gdi_init( p_instance, PIXEL_FORMAT_XRGB32); + else + gdi_init( p_instance, PIXEL_FORMAT_RGB16); desktopResizeHandler( p_instance->context ); return true; @@ -432,10 +416,6 @@ static int Open( vlc_object_t *p_this ) if ( p_sys->f_fps <= 0 ) p_sys->f_fps = 1.0; p_sys->i_frame_interval = 1000000 / p_sys->f_fps; -#if FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR < 2 - freerdp_channels_global_init(); -#endif - p_sys->p_instance = freerdp_new(); if ( !p_sys->p_instance ) { @@ -508,9 +488,6 @@ static void Close( vlc_object_t *p_this ) freerdp_disconnect( p_sys->p_instance ); freerdp_free( p_sys->p_instance ); -#if FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR < 2 - freerdp_channels_global_uninit(); -#endif if ( p_sys->p_block ) block_Release( p_sys->p_block ); -- 2.14.4 ================================================ FILE: package/vlc/0008-configure.ac-also-use-AC_PATH_PROG-to-check-for-wayl.patch ================================================ From 27635f902831fac898586f1f3dc98369f12582c9 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sun, 26 Aug 2018 12:51:04 +0200 Subject: [PATCH] configure.ac: also use AC_PATH_PROG to check for wayland-scanner When cross-compiling the .pc file might point to the wrong wayland-scanner binary (target rather than host) resulting in a non-executable and wrong scanner. Try searching the PATH first, and if that fails fall back into pkg-config. Signed-off-by: Bernd Kuhls --- configure.ac | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac index 4808b8becf..a18641ed23 100644 --- a/configure.ac +++ b/configure.ac @@ -3140,14 +3140,17 @@ AS_IF([test "${enable_wayland}" != "no"], [ AC_MSG_ERROR([$(${PKG_CONFIG} --print-errors 'wayland-protocols >= 1.4')]) ]) - AC_MSG_CHECKING([for the Wayland scanner]) - PKG_CHECK_EXISTS([wayland-scanner], [ - WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)" - AC_MSG_RESULT([${WAYLAND_SCANNER}]) - ], [ - AC_MSG_RESULT([not found]) - AC_MSG_ERROR([$(${PKG_CONFIG} --print-errors wayland-scanner)]) - ]) + AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner]) + if test "x$WAYLAND_SCANNER" = x; then + AC_MSG_CHECKING([for the Wayland scanner]) + PKG_CHECK_EXISTS([wayland-scanner], [ + WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)" + AC_MSG_RESULT([${WAYLAND_SCANNER}]) + ], [ + AC_MSG_RESULT([not found]) + AC_MSG_ERROR([$(${PKG_CONFIG} --print-errors wayland-scanner)]) + ]) + fi have_wayland="yes" -- 2.18.0 ================================================ FILE: package/vlc/0009-modules-video_filter-opencv_example.cpp-fix-build-wi.patch ================================================ From 57b1e723b73da4c8d42c20d4e28040ec4c0edd85 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 28 Feb 2020 14:29:47 +0100 Subject: [PATCH] modules/video_filter/opencv_example.cpp: fix build with opencv 3.4.9 Use cvScalar instead of CV_RGB to avoid the following build failure with opencv 3.4.9: In file included from /home/naourr/work/instance-2/output-1/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/opencv2/imgproc/imgproc.hpp:48, from video_filter/opencv_example.cpp:46: video_filter/opencv_example.cpp: In function 'picture_t* Filter(filter_t*, picture_t*)': video_filter/opencv_example.cpp:200:46: error: could not convert 'cv::Scalar_((double)0, (double)0, (double)0, (double)0)' from 'cv::Scalar' {aka 'cv::Scalar_'} to 'CvScalar' cvRectangle( p_img[0], pt1, pt2, CV_RGB(0,0,0), 3, 8, 0 ); ^~~~~~ Indeed, CV_RGB is defined as cv::Scalar instead of cvScalar since version 3.4.2 and https://github.com/opencv/opencv/commit/7f9253ea0a9fe2635926379420002dbf0c3fce0f Signed-off-by: Fabrice Fontaine [Upstream status: https://patches.videolan.org/patch/26655] --- modules/video_filter/opencv_example.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/video_filter/opencv_example.cpp b/modules/video_filter/opencv_example.cpp index 1334cd4c36..1a8d574f7a 100644 --- a/modules/video_filter/opencv_example.cpp +++ b/modules/video_filter/opencv_example.cpp @@ -202,7 +202,7 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic ) pt2.x = (r->x+r->width)*scale; pt1.y = r->y*scale; pt2.y = (r->y+r->height)*scale; - cvRectangle( p_img[0], pt1, pt2, CV_RGB(0,0,0), 3, 8, 0 ); + cvRectangle( p_img[0], pt1, pt2, cvScalar(0,0,0,0), 3, 8, 0 ); *(CvRect*)(&(p_sys->event_info.p_region[i])) = *r; p_sys->event_info.p_region[i].i_id = p_sys->i_id++; -- 2.25.0 ================================================ FILE: package/vlc/0010-modules-access-live555.cpp-fix-build-with-live555-20.patch ================================================ From eba390d13ec4089cd6b9d8687ab3f8905b9d3ac8 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 22 May 2021 22:56:04 +0200 Subject: [PATCH] modules/access/live555.cpp: fix build with live555 >= 2020.12.11 Since live555-2020.12.11, connectionEndpointAddress() member function use a "struct sockaddr_storage" in preparation for eventual support of IPv6: http://www.live555.com/liveMedia/public/changelog.txt Fixes: - http://autobuild.buildroot.org/results/83170984f96238756c45bf1f4e542363afafd45f Signed-off-by: Fabrice Fontaine --- modules/access/live555.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/access/live555.cpp b/modules/access/live555.cpp index 9d6e01ae32..32a6c294eb 100644 --- a/modules/access/live555.cpp +++ b/modules/access/live555.cpp @@ -850,7 +850,9 @@ static int SessionsSetup( demux_t *p_demux ) if( !p_sys->b_multicast ) { /* We need different rollover behaviour for multicast */ - p_sys->b_multicast = IsMulticastAddress( sub->connectionEndpointAddress() ); + struct sockaddr_storage tempAddr; + sub->getConnectionEndpointAddress( tempAddr ); + p_sys->b_multicast = IsMulticastAddress( tempAddr ); } tk = (live_track_t*)malloc( sizeof( live_track_t ) ); -- 2.30.2 ================================================ FILE: package/vlc/Config.in ================================================ config BR2_PACKAGE_VLC bool "vlc" depends on !BR2_RISCV_32 depends on BR2_USE_MMU # fork() depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 select BR2_PACKAGE_LIBVORBIS if BR2_PACKAGE_OPUS select BR2_PACKAGE_VLC_OPENCV3_BACKEND if BR2_PACKAGE_OPENCV3 select BR2_PACKAGE_ZLIB if BR2_PACKAGE_TAGLIB help VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVD, Audio CD, VCD, and various streaming protocols. http://www.videolan.org/vlc/ config BR2_PACKAGE_VLC_OPENCV3_BACKEND bool select BR2_PACKAGE_OPENCV3_LIB_IMGPROC select BR2_PACKAGE_OPENCV3_LIB_OBJDETECT comment "vlc needs a toolchain w/ C++, dynamic library, wchar, threads, gcc >= 4.9, headers >= 3.7" depends on !BR2_RISCV_32 depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS \ || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \ || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 ================================================ FILE: package/vlc/vlc.hash ================================================ # From https://get.videolan.org/vlc/3.0.16/vlc-3.0.16.tar.xz.sha256 sha256 ffae35fc64f625c175571d2346bc5f6207be99762517f15423e74f18399410f6 vlc-3.0.16.tar.xz # From https://get.videolan.org/vlc/3.0.16/vlc-3.0.16.tar.xz.sha1 sha1 e22ac839a09b5ead8992ae6aa8ea886364283e6a vlc-3.0.16.tar.xz # Locally computed sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB ================================================ FILE: package/vlc/vlc.mk ================================================ ################################################################################ # # vlc # ################################################################################ VLC_VERSION = 3.0.16 VLC_SITE = https://get.videolan.org/vlc/$(VLC_VERSION) VLC_SOURCE = vlc-$(VLC_VERSION).tar.xz VLC_LICENSE = GPL-2.0+, LGPL-2.1+ VLC_LICENSE_FILES = COPYING COPYING.LIB VLC_CPE_ID_VENDOR = videolan VLC_CPE_ID_PRODUCT = vlc_media_player VLC_DEPENDENCIES = host-pkgconf VLC_AUTORECONF = YES # Install vlc libraries in staging. VLC_INSTALL_STAGING = YES # gcc bug internal compiler error: in merge_overlapping_regs, at # regrename.c:304. This bug is fixed since gcc 6. ifeq ($(BR2_microblaze)$(BR2_or1k):$(BR2_TOOLCHAIN_GCC_AT_LEAST_6),y:) VLC_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -O0" VLC_CONF_OPTS += --disable-optimizations endif # configure check for -fstack-protector-strong is broken VLC_CONF_ENV += \ ax_cv_check_cflags___fstack_protector_strong=$(if $(BR2_TOOLCHAIN_HAS_SSP),yes,no) # VLC defines two autoconf functions which are also defined by our own pkg.m4 # from pkgconf. Unfortunately, they are defined in a different way: VLC adds # --enable- options, but pkg.m4 adds --with- options. To make sure we use # VLC's definition, rename these two functions. define VLC_OVERRIDE_PKG_M4 $(SED) 's/PKG_WITH_MODULES/VLC_PKG_WITH_MODULES/g' \ -e 's/PKG_HAVE_WITH_MODULES/VLC_PKG_HAVE_WITH_MODULES/g' \ $(@D)/configure.ac $(@D)/m4/with_pkg.m4 endef VLC_POST_PATCH_HOOKS += VLC_OVERRIDE_PKG_M4 VLC_CONF_OPTS += \ --disable-a52 \ --disable-addonmanagermodules \ --disable-aom \ --disable-aribb25 \ --disable-aribsub \ --disable-asdcp \ --disable-bpg \ --disable-caca \ --disable-chromaprint \ --disable-chromecast \ --disable-crystalhd \ --disable-dc1394 \ --disable-dca \ --disable-decklink \ --disable-dsm \ --disable-dv1394 \ --disable-fluidlite \ --disable-gme \ --disable-goom \ --disable-jack \ --disable-jpeg \ --disable-kai \ --disable-kate \ --disable-kva \ --disable-libplacebo \ --disable-linsys \ --disable-mfx \ --disable-microdns \ --disable-mmal \ --disable-mtp \ --disable-notify \ --disable-projectm \ --disable-schroedinger \ --disable-shine \ --disable-shout \ --disable-sndio \ --disable-spatialaudio \ --disable-srt \ --disable-telx \ --disable-tiger \ --disable-twolame \ --disable-vdpau \ --disable-vsxu \ --disable-wasapi \ --disable-x262 \ --disable-zvbi \ --enable-run-as-root # Uses __atomic_fetch_add_4 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) VLC_CONF_ENV += LIBS="-latomic" endif # Building static and shared doesn't work, so force static off. ifeq ($(BR2_STATIC_LIBS),) VLC_CONF_OPTS += --disable-static endif ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y) VLC_CONF_OPTS += --enable-altivec else VLC_CONF_OPTS += --disable-altivec endif ifeq ($(BR2_X86_CPU_HAS_SSE),y) VLC_CONF_OPTS += --enable-sse else VLC_CONF_OPTS += --disable-sse endif ifeq ($(BR2_PACKAGE_ALSA_LIB),y) VLC_CONF_OPTS += --enable-alsa VLC_DEPENDENCIES += alsa-lib else VLC_CONF_OPTS += --disable-alsa endif # avahi support needs avahi-client, which needs avahi-daemon and dbus ifeq ($(BR2_PACKAGE_AVAHI)$(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_DBUS),yyy) VLC_CONF_OPTS += --enable-avahi VLC_DEPENDENCIES += avahi else VLC_CONF_OPTS += --disable-avahi endif ifeq ($(BR2_PACKAGE_DAV1D),y) VLC_CONF_OPTS += --enable-dav1d VLC_DEPENDENCIES += dav1d else VLC_CONF_OPTS += --disable-dav1d endif ifeq ($(BR2_PACKAGE_DBUS),y) VLC_CONF_OPTS += --enable-dbus VLC_DEPENDENCIES += dbus else VLC_CONF_OPTS += --disable-dbus endif ifeq ($(BR2_PACKAGE_FAAD2),y) VLC_CONF_OPTS += --enable-faad VLC_DEPENDENCIES += faad2 else VLC_CONF_OPTS += --disable-faad endif ifeq ($(BR2_PACKAGE_FFMPEG),y) VLC_CONF_OPTS += --enable-avcodec VLC_DEPENDENCIES += ffmpeg else VLC_CONF_OPTS += --disable-avcodec endif ifeq ($(BR2_PACKAGE_FFMPEG_POSTPROC),y) VLC_CONF_OPTS += --enable-postproc else VLC_CONF_OPTS += --disable-postproc endif ifeq ($(BR2_PACKAGE_FFMPEG_SWSCALE),y) VLC_CONF_OPTS += --enable-swscale else VLC_CONF_OPTS += --disable-swscale endif ifeq ($(BR2_PACKAGE_FLAC),y) VLC_CONF_OPTS += --enable-flac VLC_DEPENDENCIES += flac else VLC_CONF_OPTS += --disable-flac endif ifeq ($(BR2_PACKAGE_FLUIDSYNTH),y) VLC_CONF_OPTS += --enable-fluidsynth VLC_DEPENDENCIES += fluidsynth else VLC_CONF_OPTS += --disable-fluidsynth endif ifeq ($(BR2_PACKAGE_FREERDP),y) VLC_CONF_OPTS += --enable-freerdp VLC_DEPENDENCIES += freerdp else VLC_CONF_OPTS += --disable-freerdp endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y) VLC_CONF_OPTS += --enable-gst-decode VLC_DEPENDENCIES += gst1-plugins-base else VLC_CONF_OPTS += --disable-gst-decode endif ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) VLC_DEPENDENCIES += libgl endif ifeq ($(BR2_PACKAGE_HARFBUZZ),y) VLC_CONF_OPTS += --enable-harfbuzz VLC_DEPENDENCIES += harfbuzz else VLC_CONF_OPTS += --disable-harfbuzz endif ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y) VLC_CONF_OPTS += --enable-gles2 VLC_DEPENDENCIES += libgles else VLC_CONF_OPTS += --disable-gles2 endif ifeq ($(BR2_PACKAGE_OPENCV3),y) VLC_CONF_OPTS += --enable-opencv VLC_DEPENDENCIES += opencv3 else VLC_CONF_OPTS += --disable-opencv endif ifeq ($(BR2_PACKAGE_OPUS),y) VLC_CONF_OPTS += --enable-opus VLC_DEPENDENCIES += libvorbis opus else VLC_CONF_OPTS += --disable-opus endif ifeq ($(BR2_PACKAGE_LIBARCHIVE),y) VLC_CONF_OPTS += --enable-archive VLC_DEPENDENCIES += libarchive else VLC_CONF_OPTS += --disable-archive endif ifeq ($(BR2_PACKAGE_LIBASS),y) VLC_CONF_OPTS += --enable-libass VLC_DEPENDENCIES += libass else VLC_CONF_OPTS += --disable-libass endif ifeq ($(BR2_PACKAGE_LIBBLURAY),y) VLC_CONF_OPTS += --enable-bluray VLC_DEPENDENCIES += libbluray 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 else VLC_CONF_OPTS += --disable-dvbpsi endif ifeq ($(BR2_PACKAGE_LIBDVDNAV),y) VLC_CONF_OPTS += --enable-dvdnav VLC_DEPENDENCIES += libdvdnav else VLC_CONF_OPTS += --disable-dvdnav endif ifeq ($(BR2_PACKAGE_LIBDVDREAD),y) VLC_CONF_OPTS += --enable-dvdread VLC_DEPENDENCIES += libdvdread else VLC_CONF_OPTS += --disable-dvdread endif ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) VLC_CONF_OPTS += --enable-libgcrypt VLC_DEPENDENCIES += libgcrypt VLC_CONF_ENV += \ GCRYPT_CONFIG="$(STAGING_DIR)/usr/bin/libgcrypt-config" else VLC_CONF_OPTS += --disable-libgcrypt endif ifeq ($(BR2_PACKAGE_LIBIDN),y) VLC_DEPENDENCIES += libidn endif ifeq ($(BR2_PACKAGE_LIBMAD),y) VLC_CONF_OPTS += --enable-mad VLC_DEPENDENCIES += libmad else VLC_CONF_OPTS += --disable-mad endif ifeq ($(BR2_PACKAGE_LIBMATROSKA),y) VLC_CONF_OPTS += --enable-matroska VLC_DEPENDENCIES += libmatroska else VLC_CONF_OPTS += --disable-matroska endif ifeq ($(BR2_PACKAGE_LIBMODPLUG),y) VLC_CONF_OPTS += --enable-mod VLC_DEPENDENCIES += libmodplug else VLC_CONF_OPTS += --disable-mod endif ifeq ($(BR2_PACKAGE_LIBMPEG2),y) VLC_CONF_OPTS += --enable-libmpeg2 VLC_DEPENDENCIES += libmpeg2 else VLC_CONF_OPTS += --disable-libmpeg2 endif ifeq ($(BR2_PACKAGE_LIBNFS),y) VLC_CONF_OPTS += --enable-nfs VLC_DEPENDENCIES += libnfs else VLC_CONF_OPTS += --disable-nfs endif ifeq ($(BR2_PACKAGE_LIBPNG),y) VLC_CONF_OPTS += --enable-png VLC_DEPENDENCIES += libpng else VLC_CONF_OPTS += --disable-png endif ifeq ($(BR2_PACKAGE_LIBRSVG),y) VLC_CONF_OPTS += --enable-svg --enable-svgdec VLC_DEPENDENCIES += librsvg else VLC_CONF_OPTS += --disable-svg --disable-svgdec endif ifeq ($(BR2_PACKAGE_LIBSAMPLERATE),y) VLC_CONF_OPTS += --enable-samplerate VLC_DEPENDENCIES += libsamplerate else VLC_CONF_OPTS += --disable-samplerate endif ifeq ($(BR2_PACKAGE_LIBSECRET),y) VLC_CONF_OPTS += --enable-secret VLC_DEPENDENCIES += libsecret else VLC_CONF_OPTS += --disable-secret endif ifeq ($(BR2_PACKAGE_LIBSOXR),y) VLC_CONF_OPTS += --enable-soxr VLC_DEPENDENCIES += libsoxr else VLC_CONF_OPTS += --disable-soxr 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 else VLC_CONF_OPTS += --disable-sid endif ifeq ($(BR2_PACKAGE_LIBTHEORA),y) VLC_CONF_OPTS += --enable-theora VLC_DEPENDENCIES += libtheora else VLC_CONF_OPTS += --disable-theora endif ifeq ($(BR2_PACKAGE_LIBUPNP),y) VLC_CONF_OPTS += --enable-upnp VLC_DEPENDENCIES += libupnp else VLC_CONF_OPTS += --disable-upnp endif # libva support depends on ffmpeg ifeq ($(BR2_PACKAGE_FFMPEG)$(BR2_PACKAGE_LIBVA),yy) VLC_CONF_OPTS += --enable-libva VLC_DEPENDENCIES += libva else VLC_CONF_OPTS += --disable-libva 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 else VLC_CONF_OPTS += --disable-vorbis endif ifeq ($(BR2_PACKAGE_LIBV4L),y) VLC_CONF_OPTS += --enable-v4l2 VLC_DEPENDENCIES += libv4l else VLC_CONF_OPTS += --disable-v4l2 endif ifeq ($(BR2_PACKAGE_LIBVPX),y) VLC_CONF_OPTS += --enable-vpx VLC_DEPENDENCIES += libvpx else VLC_CONF_OPTS += --disable-vpx endif ifeq ($(BR2_PACKAGE_LIBXCB),y) VLC_CONF_OPTS += --enable-xcb VLC_DEPENDENCIES += libxcb else VLC_CONF_OPTS += --disable-xcb endif ifeq ($(BR2_PACKAGE_LIBXML2),y) VLC_CONF_OPTS += --enable-libxml2 VLC_DEPENDENCIES += libxml2 else VLC_CONF_OPTS += --disable-libxml2 endif ifeq ($(BR2_PACKAGE_LIVE555),y) VLC_CONF_OPTS += --enable-live555 VLC_DEPENDENCIES += live555 ifneq ($(BR2_PACKAGE_OPENSSL),y) VLC_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -DNO_OPENSSL" endif else VLC_CONF_OPTS += --disable-live555 endif ifeq ($(BR2_PACKAGE_LUA),y) VLC_CONF_OPTS += --enable-lua VLC_DEPENDENCIES += lua host-lua else VLC_CONF_OPTS += --disable-lua endif ifeq ($(BR2_PACKAGE_MINIZIP),y) VLC_DEPENDENCIES += minizip endif ifeq ($(BR2_PACKAGE_MPG123),y) VLC_CONF_OPTS += --enable-mpg123 VLC_DEPENDENCIES += mpg123 else VLC_CONF_OPTS += --disable-mpg123 endif ifeq ($(BR2_PACKAGE_MUSEPACK),y) VLC_CONF_OPTS += --enable-mpc VLC_DEPENDENCIES += musepack else VLC_CONF_OPTS += --disable-mpc endif ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) VLC_CONF_OPTS += --enable-ncurses VLC_DEPENDENCIES += ncurses else VLC_CONF_OPTS += --disable-ncurses endif ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) VLC_CONF_OPTS += --enable-pulse VLC_DEPENDENCIES += pulseaudio else VLC_CONF_OPTS += --disable-pulse endif ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS)$(BR2_PACKAGE_QT5SVG),yy) VLC_CONF_OPTS += --enable-qt VLC_DEPENDENCIES += qt5base qt5svg ifeq ($(BR2_PACKAGE_XLIB_LIBXEXT)$(BR2_PACKAGE_XLIB_LIBXINERAMA)$(BR2_PACKAGE_XLIB_LIBXPM),yyy) VLC_CONF_OPTS += --enable-skins2 VLC_DEPENDENCIES += xlib_libXext xlib_libXinerama xlib_libXpm else VLC_CONF_OPTS += --disable-skins2 endif else VLC_CONF_OPTS += --disable-qt --disable-skins2 endif ifeq ($(BR2_PACKAGE_SDL_IMAGE),y) VLC_CONF_OPTS += --enable-sdl-image VLC_DEPENDENCIES += sdl_image else VLC_CONF_OPTS += --disable-sdl-image endif ifeq ($(BR2_PACKAGE_SAMBA4),y) VLC_CONF_OPTS += --enable-smbclient VLC_DEPENDENCIES += samba4 else VLC_CONF_OPTS += --disable-smbclient endif ifeq ($(BR2_PACKAGE_SPEEX)$(BR2_PACKAGE_SPEEXDSP),yy) VLC_CONF_OPTS += --enable-speex VLC_DEPENDENCIES += speex speexdsp else VLC_CONF_OPTS += --disable-speex endif ifeq ($(BR2_PACKAGE_TAGLIB),y) VLC_CONF_OPTS += --enable-taglib VLC_DEPENDENCIES += taglib else VLC_CONF_OPTS += --disable-taglib endif ifeq ($(BR2_PACKAGE_TREMOR),y) VLC_CONF_OPTS += --enable-tremor VLC_DEPENDENCIES += tremor else VLC_CONF_OPTS += --disable-tremor endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) VLC_CONF_OPTS += --enable-udev VLC_DEPENDENCIES += udev else VLC_CONF_OPTS += --disable-udev endif ifeq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_WAYLAND_PROTOCOLS),yy) VLC_CONF_OPTS += --enable-wayland VLC_DEPENDENCIES += wayland wayland-protocols else VLC_CONF_OPTS += --disable-wayland endif ifeq ($(BR2_PACKAGE_X264),y) VLC_CONF_OPTS += --enable-x264 VLC_DEPENDENCIES += x264 else VLC_CONF_OPTS += --disable-x264 endif ifeq ($(BR2_PACKAGE_X265),y) VLC_CONF_OPTS += --enable-x265 VLC_DEPENDENCIES += x265 else VLC_CONF_OPTS += --disable-x265 endif ifeq ($(BR2_PACKAGE_XCB_UTIL_KEYSYMS),y) VLC_DEPENDENCIES += xcb-util-keysyms endif ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) VLC_CONF_OPTS += --with-x VLC_DEPENDENCIES += xlib_libX11 else VLC_CONF_OPTS += --without-x endif ifeq ($(BR2_PACKAGE_ZLIB),y) VLC_DEPENDENCIES += zlib endif ifeq ($(BR2_PACKAGE_GNUTLS),y) VLC_CONF_OPTS += --enable-gnutls VLC_DEPENDENCIES += gnutls else VLC_CONF_OPTS += --disable-gnutls endif $(eval $(autotools-package)) ================================================ FILE: package/vmtouch/Config.in ================================================ config BR2_PACKAGE_VMTOUCH bool "vmtouch" depends on BR2_USE_MMU # fork() help vmtouch is a tool for learning about and controlling the file system cache of unix and unix-like systems. It can discover which files the OS is caching, tell the OS to cache or evict some files or regions of files, lock files into memory so the OS won't evict them, and more. https://hoytech.com/vmtouch/ ================================================ FILE: package/vmtouch/vmtouch.hash ================================================ # Locally computed sha256 d57b7b3ae1146c4516429ab7d6db6f2122401db814ddd9cdaad10980e9c8428c vmtouch-1.3.1.tar.gz # Hash for license files: sha256 13258709ed29c17394e0a3ba8c8b9360af35b85231db514f11a0ba385cecd08e LICENSE ================================================ FILE: package/vmtouch/vmtouch.mk ================================================ ################################################################################ # # vmtouch # ################################################################################ VMTOUCH_VERSION = 1.3.1 VMTOUCH_SITE = $(call github,hoytech,vmtouch,v$(VMTOUCH_VERSION)) VMTOUCH_LICENSE = BSD-3-Clause VMTOUCH_LICENSE_FILES = LICENSE define VMTOUCH_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef define VMTOUCH_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) install \ DESTDIR=$(TARGET_DIR) PREFIX=/usr endef $(eval $(generic-package)) ================================================ FILE: package/vnstat/Config.in ================================================ config BR2_PACKAGE_VNSTAT bool "vnstat" depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR # mbstowcs() select BR2_PACKAGE_SQLITE help vnStat is a console-based network traffic monitor that keeps a log of network traffic for the selected interface(s). It uses the network interface statistics provided by the kernel as information source. This means that vnStat won't actually be sniffing any traffic and also ensures light use of system resources. http://humdi.net/vnstat comment "vnstat needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR ================================================ FILE: package/vnstat/vnstat.hash ================================================ # Locally calculated sha256 03f858a7abf6bd85bb8cd595f3541fc3bd31f8f400ec092ef3034825ccb77c25 vnstat-2.8.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/vnstat/vnstat.mk ================================================ ################################################################################ # # vnstat # ################################################################################ VNSTAT_VERSION = 2.8 VNSTAT_SITE = http://humdi.net/vnstat VNSTAT_LICENSE = GPL-2.0 VNSTAT_LICENSE_FILES = COPYING VNSTAT_SELINUX_MODULES = vnstatd VNSTAT_DEPENDENCIES = host-pkgconf sqlite VNSTAT_CONF_OPTS = --disable-extra-paths ifeq ($(BR2_PACKAGE_GD)$(BR2_PACKAGE_LIBPNG),yy) VNSTAT_DEPENDENCIES += gd VNSTAT_CONF_OPTS += --enable-image-output else VNSTAT_CONF_OPTS += --disable-image-output endif $(eval $(autotools-package)) ================================================ FILE: package/vo-aacenc/Config.in ================================================ config BR2_PACKAGE_VO_AACENC bool "vo-aacenc" help This library contains an encoder implementation of the Advanced Audio Coding (AAC) audio codec. The library is based on a codec implementation by VisualOn as part of the Stagefright framework from the Google Android project. http://sourceforge.net/projects/opencore-amr/ ================================================ FILE: package/vo-aacenc/vo-aacenc.hash ================================================ # Locally computed: sha256 e51a7477a359f18df7c4f82d195dab4e14e7414cbd48cf79cc195fc446850f36 vo-aacenc-0.1.3.tar.gz sha256 8b3f1762349248d444ab9acbafe73941254e36e1064954da56bb9ddbd5873ddb COPYING ================================================ FILE: package/vo-aacenc/vo-aacenc.mk ================================================ ################################################################################ # # vo-aacenc # ################################################################################ VO_AACENC_VERSION = 0.1.3 VO_AACENC_SITE = http://downloads.sourceforge.net/project/opencore-amr/vo-aacenc VO_AACENC_LICENSE = Apache-2.0 VO_AACENC_LICENSE_FILES = COPYING VO_AACENC_INSTALL_STAGING = YES VO_AACENC_CFLAGS = $(TARGET_CFLAGS) # arm specific asm optimizations ifeq ($(BR2_arm),y) ifeq ($(BR2_ARM_CPU_HAS_ARM),y) # vo-aacenc has ARM assembly code that cannot be compiled in Thumb2 # mode, so we must force the traditional ARM mode. VO_AACENC_CFLAGS += -marm ifeq ($(BR2_ARM_CPU_HAS_NEON),y) VO_AACENC_CONF_OPTS += --enable-armv7neon # mfpu=neon needed to assemble neon code VO_AACENC_CFLAGS += -mfpu=neon else VO_AACENC_CONF_OPTS += --disable-armv7neon ifeq ($(BR2_ARM_CPU_ARMV4),) VO_AACENC_CONF_OPTS += --enable-armv5e else VO_AACENC_CONF_OPTS += --disable-armv5e endif endif # !neon else VO_AACENC_CONF_OPTS += --disable-armv7neon --disable-armv5e endif # has-arm endif # arm VO_AACENC_CONF_ENV = \ CFLAGS="$(VO_AACENC_CFLAGS)" $(eval $(autotools-package)) ================================================ FILE: package/vorbis-tools/Config.in ================================================ config BR2_PACKAGE_VORBIS_TOOLS bool "vorbis-tools" select BR2_PACKAGE_LIBAO select BR2_PACKAGE_LIBOGG select BR2_PACKAGE_LIBVORBIS select BR2_PACKAGE_LIBCURL help Standalone player, encoder and decoder for Ogg format files. Works also as a streaming player. http://www.vorbis.com/ ================================================ FILE: package/vorbis-tools/vorbis-tools.hash ================================================ # From http://downloads.xiph.org/releases/vorbis/SHA256SUMS sha256 db7774ec2bf2c939b139452183669be84fda5774d6400fc57fde37f77624f0b0 vorbis-tools-1.4.2.tar.gz # Locally computed sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/vorbis-tools/vorbis-tools.mk ================================================ ################################################################################ # # vorbis-tools # ################################################################################ VORBIS_TOOLS_VERSION = 1.4.2 VORBIS_TOOLS_SITE = http://downloads.xiph.org/releases/vorbis VORBIS_TOOLS_LICENSE = GPL-2.0 VORBIS_TOOLS_LICENSE_FILES = COPYING VORBIS_TOOLS_CPE_ID_VENDOR = xiph VORBIS_TOOLS_DEPENDENCIES = libao libogg libvorbis libcurl VORBIS_TOOLS_CONF_OPTS = --program-transform-name='' # ogg123 calls math functions but forgets to link with libm VORBIS_TOOLS_CONF_ENV = LIBS=-lm ifeq ($(BR2_PACKAGE_FLAC),y) VORBIS_TOOLS_DEPENDENCIES += flac endif ifeq ($(BR2_PACKAGE_OPUSFILE),y) VORBIS_TOOLS_DEPENDENCIES += opusfile endif ifeq ($(BR2_PACKAGE_SPEEX),y) VORBIS_TOOLS_DEPENDENCIES += speex endif $(eval $(autotools-package)) ================================================ FILE: package/vpnc/0001-Makefile-allow-to-override-the-PREFIX-variable.patch ================================================ 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 ================================================ FILE: package/vpnc/0002-Makefile-allow-to-override-the-version.patch ================================================ 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 ================================================ FILE: package/vpnc/0003-Makefile-allow-passing-custom-CFLAGS-CPPFLAGS.patch ================================================ 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 ================================================ FILE: package/vpnc/0004-Makefile-provide-an-option-to-not-build-manpages.patch ================================================ 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 ================================================ FILE: package/vpnc/0005-Makefile-allow-passing-a-custom-path-to-libgcrypt-co.patch ================================================ 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 ================================================ FILE: package/vpnc/0006-config.c-Replace-deprecated-SUSv3-functions-with-POS.patch ================================================ 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 ================================================ FILE: package/vpnc/0007-sysdep.h-don-t-assume-error.h-is-available-on-all-Li.patch ================================================ 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 ================================================ FILE: package/vpnc/0008-sysdep.c-don-t-include-linux-if_tun.h-on-Linux.patch ================================================ 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 ================================================ FILE: package/vpnc/0009-config.c-add-missing-sys-ttydefaults.h-include.patch ================================================ 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 ================================================ FILE: package/vpnc/Config.in ================================================ config BR2_PACKAGE_VPNC bool "vpnc" depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt depends on !BR2_STATIC_LIBS # gnutls 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 IOS Routers PIX/ASA Zecurity Appliances Juniper/Netscreen http://www.unix-ag.uni-kl.de/~massar/vpnc comment "vpnc needs a toolchain w/ wchar, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS ================================================ FILE: package/vpnc/vpnc.hash ================================================ # locally computed hash sha256 5929d3b7f72970c8f7850e0daba0d9d05aaaa1281c69f58ac8647be11385ede5 vpnc-0.5.3r550-2jnpr1.tar.gz sha256 bf3ec1bd1dec31a6ab8980bfd04569f506432f35ee01e88a3910847784bc2de1 COPYING ================================================ FILE: package/vpnc/vpnc.mk ================================================ ################################################################################ # # vpnc # ################################################################################ VPNC_VERSION = 0.5.3r550-2jnpr1 VPNC_SITE = $(call github,ndpgroup,vpnc,$(VPNC_VERSION)) VPNC_LICENSE = GPL-2.0+ VPNC_LICENSE_FILES = COPYING VPNC_DEPENDENCIES = libgcrypt libgpg-error gnutls host-pkgconf define VPNC_BUILD_CMDS $(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 $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install $(TARGET_CONFIGURE_OPTS) \ VERSION=$(VPNC_VERSION) MANS= \ DESTDIR="$(TARGET_DIR)" PREFIX=/usr endef $(eval $(generic-package)) ================================================ FILE: package/vsftpd/0001-utmpx-builddef.patch ================================================ Add build option to disable utmpx update code On some embedded systems the libc may have utmpx support, but the feature would be redundant. So add a build switch to disable utmpx updating, similar to compiling on systems without utmpx support. Signed-off-by: Maarten ter Huurne diff -ru vsftpd-3.0.2.orig/builddefs.h vsftpd-3.0.2/builddefs.h --- vsftpd-3.0.2.orig/builddefs.h 2012-04-05 05:24:56.000000000 +0200 +++ vsftpd-3.0.2/builddefs.h 2014-09-16 14:23:36.128003245 +0200 @@ -4,6 +4,7 @@ #undef VSF_BUILD_TCPWRAPPERS #define VSF_BUILD_PAM #undef VSF_BUILD_SSL +#define VSF_BUILD_UTMPX #endif /* VSF_BUILDDEFS_H */ diff -ru vsftpd-3.0.2.orig/sysdeputil.c vsftpd-3.0.2/sysdeputil.c --- vsftpd-3.0.2.orig/sysdeputil.c 2012-09-16 06:18:04.000000000 +0200 +++ vsftpd-3.0.2/sysdeputil.c 2014-09-16 14:26:42.686887724 +0200 @@ -1158,7 +1158,7 @@ #endif /* !VSF_SYSDEP_NEED_OLD_FD_PASSING */ -#ifndef VSF_SYSDEP_HAVE_UTMPX +#if !defined(VSF_BUILD_UTMPX) || !defined(VSF_SYSDEP_HAVE_UTMPX) void vsf_insert_uwtmp(const struct mystr* p_user_str, @@ -1173,7 +1173,7 @@ { } -#else /* !VSF_SYSDEP_HAVE_UTMPX */ +#else /* !VSF_BUILD_UTMPX || !VSF_SYSDEP_HAVE_UTMPX */ /* IMHO, the pam_unix module REALLY should be doing this in its SM component */ /* Statics */ @@ -1238,7 +1238,7 @@ updwtmpx(WTMPX_FILE, &s_utent); } -#endif /* !VSF_SYSDEP_HAVE_UTMPX */ +#endif /* !VSF_BUILD_UTMPX || !VSF_SYSDEP_HAVE_UTMPX */ void vsf_set_die_if_parent_dies() ================================================ FILE: package/vsftpd/0002-fix-CVE-2015-1419.patch ================================================ Fix CVE-2015-1419 - config option deny_file is not handled correctly. From SUSE: https://bugzilla.suse.com/show_bug.cgi?id=915522 Signed-off-by: Gustavo Zacarias Index: vsftpd-3.0.2/ls.c =================================================================== --- vsftpd-3.0.2.orig/ls.c +++ vsftpd-3.0.2/ls.c @@ -7,6 +7,7 @@ * Would you believe, code to handle directory listing. */ +#include #include "ls.h" #include "access.h" #include "defs.h" @@ -243,11 +244,42 @@ vsf_filename_passes_filter(const struct struct mystr temp_str = INIT_MYSTR; struct mystr brace_list_str = INIT_MYSTR; struct mystr new_filter_str = INIT_MYSTR; + struct mystr normalize_filename_str = INIT_MYSTR; + const char *normname; + const char *path; int ret = 0; char last_token = 0; int must_match_at_current_pos = 1; + str_copy(&filter_remain_str, p_filter_str); - str_copy(&name_remain_str, p_filename_str); + + /* normalize filepath */ + path = str_strdup(p_filename_str); + normname = realpath(path, NULL); + if (normname == NULL) + goto out; + str_alloc_text(&normalize_filename_str, normname); + + if (!str_isempty (&filter_remain_str) && !str_isempty(&normalize_filename_str)) { + if (str_get_char_at(p_filter_str, 0) == '/') { + if (str_get_char_at(&normalize_filename_str, 0) != '/') { + str_getcwd (&name_remain_str); + + if (str_getlen(&name_remain_str) > 1) /* cwd != root dir */ + str_append_char (&name_remain_str, '/'); + + str_append_str (&name_remain_str, &normalize_filename_str); + } + else + str_copy (&name_remain_str, &normalize_filename_str); + } else { + if (str_get_char_at(p_filter_str, 0) != '{') + str_basename (&name_remain_str, &normalize_filename_str); + else + str_copy (&name_remain_str, &normalize_filename_str); + } + } else + str_copy(&name_remain_str, &normalize_filename_str); while (!str_isempty(&filter_remain_str) && *iters < VSFTP_MATCHITERS_MAX) { @@ -360,6 +392,9 @@ vsf_filename_passes_filter(const struct ret = 0; } out: + free(normname); + free(path); + str_free(&normalize_filename_str); str_free(&filter_remain_str); str_free(&name_remain_str); str_free(&temp_str); Index: vsftpd-3.0.2/str.c =================================================================== --- vsftpd-3.0.2.orig/str.c +++ vsftpd-3.0.2/str.c @@ -711,3 +711,14 @@ str_replace_unprintable(struct mystr* p_ } } +void +str_basename (struct mystr* d_str, const struct mystr* path) +{ + static struct mystr tmp; + + str_copy (&tmp, path); + str_split_char_reverse(&tmp, d_str, '/'); + + if (str_isempty(d_str)) + str_copy (d_str, path); +} Index: vsftpd-3.0.2/str.h =================================================================== --- vsftpd-3.0.2.orig/str.h +++ vsftpd-3.0.2/str.h @@ -100,6 +100,7 @@ void str_replace_unprintable(struct myst int str_atoi(const struct mystr* p_str); filesize_t str_a_to_filesize_t(const struct mystr* p_str); unsigned int str_octal_to_uint(const struct mystr* p_str); +void str_basename (struct mystr* d_str, const struct mystr* path); /* PURPOSE: Extract a line of text (delimited by \n or EOF) from a string * buffer, starting at character position 'p_pos'. The extracted line will ================================================ FILE: package/vsftpd/0003-Prevent-hang-in-SIGCHLD-handler.patch ================================================ From 1e65a0a15f819b8bf1b551bd84f71d0da1f5a00c Mon Sep 17 00:00:00 2001 From: Martin Sehnoutka Date: Thu, 17 Nov 2016 13:02:27 +0100 Subject: [PATCH] Prevent hanging in SIGCHLD handler. vsftpd can now handle pam_exec.so in pam.d config without hanging in SIGCHLD handler. [Abdelmalek: Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1198259 Fetched from: https://src.fedoraproject.org/cgit/rpms/vsftpd.git/plain/0026-Prevent-hanging-in-SIGCHLD-handler.patch] Signed-off-by: Abdelmalek Benelouezzane --- sysutil.c | 4 ++-- sysutil.h | 2 +- twoprocess.c | 13 +++++++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/sysutil.c b/sysutil.c index 6d7cb3f..099748f 100644 --- a/sysutil.c +++ b/sysutil.c @@ -592,13 +592,13 @@ vsf_sysutil_exit(int exit_code) } struct vsf_sysutil_wait_retval -vsf_sysutil_wait(void) +vsf_sysutil_wait(int hang) { struct vsf_sysutil_wait_retval retval; vsf_sysutil_memclr(&retval, sizeof(retval)); while (1) { - int sys_ret = wait(&retval.exit_status); + int sys_ret = waitpid(-1, &retval.exit_status, hang ? 0 : WNOHANG); if (sys_ret < 0 && errno == EINTR) { vsf_sysutil_check_pending_actions(kVSFSysUtilUnknown, 0, 0); diff --git a/sysutil.h b/sysutil.h index c145bdf..13153cd 100644 --- a/sysutil.h +++ b/sysutil.h @@ -175,7 +175,7 @@ struct vsf_sysutil_wait_retval int PRIVATE_HANDS_OFF_syscall_retval; int PRIVATE_HANDS_OFF_exit_status; }; -struct vsf_sysutil_wait_retval vsf_sysutil_wait(void); +struct vsf_sysutil_wait_retval vsf_sysutil_wait(int hang); int vsf_sysutil_wait_reap_one(void); int vsf_sysutil_wait_get_retval( const struct vsf_sysutil_wait_retval* p_waitret); diff --git a/twoprocess.c b/twoprocess.c index 33d84dc..b1891e7 100644 --- a/twoprocess.c +++ b/twoprocess.c @@ -47,8 +47,17 @@ static void handle_sigchld(void* duff) { - struct vsf_sysutil_wait_retval wait_retval = vsf_sysutil_wait(); + struct vsf_sysutil_wait_retval wait_retval = vsf_sysutil_wait(0); (void) duff; + if (!vsf_sysutil_wait_get_exitcode(&wait_retval) && + !vsf_sysutil_wait_get_retval(&wait_retval)) + /* There was nobody to wait for, possibly caused by underlying library + * which created a new process through fork()/vfork() and already picked + * it up, e.g. by pam_exec.so or integrity check routines for libraries + * when FIPS mode is on (nss freebl), which can lead to calling prelink + * if the prelink package is installed. + */ + return; /* Child died, so we'll do the same! Report it as an error unless the child * exited normally with zero exit code */ @@ -390,7 +399,7 @@ common_do_login(struct vsf_session* p_sess, const struct mystr* p_user_str, priv_sock_send_result(p_sess->parent_fd, PRIV_SOCK_RESULT_OK); if (!p_sess->control_use_ssl) { - (void) vsf_sysutil_wait(); + (void) vsf_sysutil_wait(1); } else { -- 2.14.4 ================================================ FILE: package/vsftpd/Config.in ================================================ config BR2_PACKAGE_VSFTPD bool "vsftpd" depends on BR2_USE_MMU # fork() help vsftpd is an ftp daemon written with security in mind. http://vsftpd.beasts.org/ if BR2_PACKAGE_VSFTPD config BR2_PACKAGE_VSFTPD_UTMPX bool "log vsftpd access to utmpx" # musl 1.1.4 has an empty utmpx implementation and no WTMPX_FILE depends on !BR2_TOOLCHAIN_USES_MUSL help Enable logging of vsftpd access to utmpx. Note that Buildroot does not generate utmpx by default. endif ================================================ FILE: package/vsftpd/S70vsftpd ================================================ #! /bin/sh set -e DESC="vsftpd" NAME=vsftpd DAEMON=/usr/sbin/$NAME case "$1" in start) printf "Starting $DESC: " start-stop-daemon -S -b -x $DAEMON echo "OK" ;; stop) printf "Stopping $DESC: " start-stop-daemon -K -x $DAEMON echo "OK" ;; restart|force-reload) echo "Restarting $DESC: " $0 stop sleep 1 $0 start echo "" ;; *) echo "Usage: $0 {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0 ================================================ FILE: package/vsftpd/vsftpd.hash ================================================ # Locally calculated after checking pgp signature sha256 26b602ae454b0ba6d99ef44a09b6b9e0dfa7f67228106736df1f278c70bc91d3 vsftpd-3.0.5.tar.gz # Locally computed sha256 c9cf119e2f9dbcf187fb805ba5aded105db26a693803636fb7228c98460ffbf2 COPYING ================================================ FILE: package/vsftpd/vsftpd.mk ================================================ ################################################################################ # # vsftpd # ################################################################################ VSFTPD_VERSION = 3.0.5 VSFTPD_SITE = https://security.appspot.com/downloads VSFTPD_LIBS = -lcrypt VSFTPD_LICENSE = GPL-2.0 VSFTPD_LICENSE_FILES = COPYING VSFTPD_CPE_ID_VENDOR = vsftpd_project VSFTPD_SELINUX_MODULES = ftp define VSFTPD_DISABLE_UTMPX $(SED) 's/.*VSF_BUILD_UTMPX/#undef VSF_BUILD_UTMPX/' $(@D)/builddefs.h endef define VSFTPD_ENABLE_SSL $(SED) 's/.*VSF_BUILD_SSL/#define VSF_BUILD_SSL/' $(@D)/builddefs.h endef ifeq ($(BR2_PACKAGE_VSFTPD_UTMPX),) VSFTPD_POST_CONFIGURE_HOOKS += VSFTPD_DISABLE_UTMPX endif ifeq ($(BR2_PACKAGE_OPENSSL),y) VSFTPD_DEPENDENCIES += openssl host-pkgconf VSFTPD_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs libssl libcrypto` VSFTPD_POST_CONFIGURE_HOOKS += VSFTPD_ENABLE_SSL endif ifeq ($(BR2_PACKAGE_LIBCAP),y) VSFTPD_DEPENDENCIES += libcap VSFTPD_LIBS += -lcap endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) VSFTPD_DEPENDENCIES += linux-pam VSFTPD_LIBS += -lpam endif define VSFTPD_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" LIBS="$(VSFTPD_LIBS)" -C $(@D) endef define VSFTPD_USERS ftp -1 ftp -1 * /home/ftp - - Anonymous FTP User endef define VSFTPD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/vsftpd/vsftpd.service \ $(TARGET_DIR)/usr/lib/systemd/system/vsftpd.service endef define VSFTPD_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/vsftpd/S70vsftpd $(TARGET_DIR)/etc/init.d/S70vsftpd endef # vsftpd won't work if the jail directory is writable, it has to be # readable only otherwise you get the following error: # 500 OOPS: vsftpd: refusing to run with writable root inside chroot() # That's why we have to adjust the permissions of /home/ftp define VSFTPD_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/vsftpd $(TARGET_DIR)/usr/sbin/vsftpd test -f $(TARGET_DIR)/etc/vsftpd.conf || \ $(INSTALL) -D -m 644 $(@D)/vsftpd.conf \ $(TARGET_DIR)/etc/vsftpd.conf $(INSTALL) -d -m 700 $(TARGET_DIR)/usr/share/empty $(INSTALL) -d -m 555 $(TARGET_DIR)/home/ftp endef $(eval $(generic-package)) ================================================ FILE: package/vsftpd/vsftpd.service ================================================ [Unit] Description=vsftpd FTP server After=network.target [Service] Type=simple ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf ExecReload=/bin/kill -HUP $MAINPID Restart=always [Install] WantedBy=multi-user.target ================================================ FILE: package/vte/Config.in ================================================ config BR2_PACKAGE_VTE bool "vte" depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS # libgtk3 -> host-libgtk3 -> host-librsvg depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND || \ BR2_PACKAGE_HAS_LIBGL depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_LIBGTK3 select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_PCRE2 help VTE is a library (libvte) implementing a terminal emulator widget for GTK+, and a minimal sample application (vte) using that. Vte is mainly used in gnome-terminal, but can also be used to embed a console/terminal in games, editors, IDEs, etc. http://github.com/GNOME/vte comment "vte needs a toolchain w/ wchar, threads, C++, gcc >= 4.8" depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 comment "vte needs an OpenGL or an OpenGL-EGL/wayland backend" depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_PACKAGE_HAS_LIBEGL_WAYLAND && \ !BR2_PACKAGE_HAS_LIBGL ================================================ FILE: package/vte/vte.hash ================================================ # Locally calculated sha256 a3a9fb182740b392a45cd3f46fa61a985f68bb6b1817b52daec22034c46158c3 vte-0.48.3.tar.xz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/vte/vte.mk ================================================ ################################################################################ # # vte # ################################################################################ VTE_VERSION = 0.48.3 VTE_SOURCE = vte-$(VTE_VERSION).tar.xz VTE_SITE = http://ftp.gnome.org/pub/gnome/sources/vte/0.48 VTE_DEPENDENCIES = host-intltool host-pkgconf libgtk3 libxml2 pcre2 VTE_LICENSE = LGPL-2.1+ VTE_LICENSE_FILES = COPYING VTE_CONF_OPTS += --disable-vala ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) VTE_CONF_OPTS += --enable-introspection VTE_DEPENDENCIES += gobject-introspection else VTE_CONF_OPTS += --disable-introspection endif ifeq ($(BR2_PACKAGE_GNUTLS),y) VTE_CONF_OPTS += --with-gnutls VTE_DEPENDENCIES += gnutls else VTE_CONF_OPTS += --without-gnutls endif $(eval $(autotools-package)) ================================================ FILE: package/vtun/0001-fix-installation.patch ================================================ Makefile.in: fix installation steps Not sure what the reason for that patch is, but originally added by Ulf Samuelsson , when upgrading from 2.6.x to 3.0.2. yann.morin.1998@free.fr: the initial commit in the Buildroot tree had the SoB by Ulf, but it was not explicitly reproduced here in the patch; so I added it here directly in the patch. Somewhat-signed-off-by: Ulf Samuelsson Signed-off-by: "Yann E. MORIN" diff -durN vtun-3.0.3.orig/Makefile.in vtun-3.0.3/Makefile.in --- vtun-3.0.3.orig/Makefile.in 2012-07-09 06:55:38.000000000 +0200 +++ vtun-3.0.3/Makefile.in 2013-02-16 23:28:47.034036869 +0100 @@ -28,7 +28,7 @@ LEXFLAGS = -t INSTALL = @INSTALL@ -INSTALL_OWNER = -o root -g 0 +INSTALL_OWNER = prefix = @prefix@ exec_prefix = @exec_prefix@ @@ -89,16 +89,15 @@ install_config: $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(ETC_DIR) - if [ ! -f $(ETC_DIR)/vtund.conf ]; then \ - $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR); \ - fi + $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR); + $(INSTALL) -m 600 $(INSTALL_OWNER) scripts/vtund-start.conf $(DESTDIR)$(ETC_DIR); install: vtund install_config install_man - $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(VAR_DIR)/run $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(STAT_DIR) $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(LOCK_DIR) $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(SBIN_DIR) $(INSTALL) -m 755 $(INSTALL_OWNER) vtund $(DESTDIR)$(SBIN_DIR) - $(BIN_DIR)/strip $(DESTDIR)$(SBIN_DIR)/vtund + $(INSTALL) -m 755 -D $(INSTALL_OWNER) scripts/vtund.rc.debian \ + $(DESTDIR)$(ETC_DIR)/init.d/S90vtun # DO NOT DELETE THIS LINE -- make depend depends on it. ================================================ FILE: package/vtun/0002-fix-ssl-headers-checks.patch ================================================ configure.in: do not hard-code search patch for SSL headers Do. Not. Do. That. It breaks cross-compilation. Also use the SSL headers dir to look for blowfish headers. Signed-off-by: "Yann E. MORIN" diff -durN vtun-3.0.3.orig/configure.in vtun-3.0.3/configure.in --- vtun-3.0.3.orig/configure.in 2009-03-29 12:08:51.000000000 +0200 +++ vtun-3.0.3/configure.in 2013-02-16 23:44:44.004339680 +0100 @@ -166,7 +166,7 @@ AC_MSG_RESULT() AC_CHECKING( for md5 Library and Header files ... ) AC_SEARCH_HEADERS(md5.h, - $SSL_HDR_DIR /usr/include/openssl "" /usr/include /usr/include/ssl /usr/local/include /usr/local/ssl/include /usr/include/sys, + $SSL_HDR_DIR "" , , AC_MSG_ERROR( SSL headers not found. ) ) @@ -176,7 +176,7 @@ AC_MSG_RESULT() AC_CHECKING( for blowfish Library and Header files ... ) AC_SEARCH_HEADERS(blowfish.h, - $BLOWFISH_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto, + $BLOWFISH_HDR_DIR $SSL_HDR_DIR, AC_CHECK_LIB(crypto, BF_set_key, [ LIBS="$LIBS -lcrypto" @@ -193,7 +193,7 @@ AC_MSG_RESULT() AC_CHECKING( for AES Library and Header files ... ) AC_SEARCH_HEADERS(aes.h, - $SSL_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto, + $SSL_HDR_DIR , AC_CHECK_LIB(crypto, AES_set_encrypt_key, [ AC_DEFINE(HAVE_SSL_AES) @@ -208,7 +208,7 @@ AC_MSG_RESULT() AC_CHECKING( for EVP Library and Header files ... ) AC_SEARCH_HEADERS(evp.h, - $SSL_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto, + $SSL_HDR_DIR , AC_CHECK_LIB(crypto, EVP_EncryptInit, [ AC_DEFINE(HAVE_SSL_EVP) ================================================ FILE: package/vtun/0003-openssl11.patch ================================================ Fix build with OpenSSL 1.1.x Extracted vtun-openssl.patch from http://dl.fedoraproject.org/pub/fedora/linux/releases/27/Everything/source/tree/Packages/v/vtun-3.0.4-4.fc27.src.rpm Signed-off-by: Bernd Kuhls diff -NarU5 a/lfd_encrypt.c b/lfd_encrypt.c --- a/lfd_encrypt.c 2016-10-01 17:27:51.000000000 -0400 +++ b/lfd_encrypt.c 2017-03-20 08:43:48.013308435 -0400 @@ -93,15 +93,15 @@ static int dec_init_first_time; static unsigned long sequence_num; static char * pkey; static char * iv_buf; -static EVP_CIPHER_CTX ctx_enc; /* encrypt */ -static EVP_CIPHER_CTX ctx_dec; /* decrypt */ +static EVP_CIPHER_CTX *ctx_enc; /* encrypt */ +static EVP_CIPHER_CTX *ctx_dec; /* decrypt */ -static EVP_CIPHER_CTX ctx_enc_ecb; /* sideband ecb encrypt */ -static EVP_CIPHER_CTX ctx_dec_ecb; /* sideband ecb decrypt */ +static EVP_CIPHER_CTX *ctx_enc_ecb; /* sideband ecb encrypt */ +static EVP_CIPHER_CTX *ctx_dec_ecb; /* sideband ecb decrypt */ static int send_msg(int len, char *in, char **out); static int recv_msg(int len, char *in, char **out); static int send_ib_mesg(int *len, char **in); static int recv_ib_mesg(int *len, char **in); @@ -180,37 +180,37 @@ case VTUN_ENC_AES256CBC: blocksize = 16; keysize = 32; sb_init = 1; cipher_type = EVP_aes_256_ecb(); - pctx_enc = &ctx_enc_ecb; - pctx_dec = &ctx_dec_ecb; + pctx_enc = ctx_enc_ecb; + pctx_dec = ctx_dec_ecb; break; case VTUN_ENC_AES256ECB: blocksize = 16; keysize = 32; - pctx_enc = &ctx_enc; - pctx_dec = &ctx_dec; + pctx_enc = ctx_enc; + pctx_dec = ctx_dec; cipher_type = EVP_aes_256_ecb(); strcpy(cipher_name,"AES-256-ECB"); break; case VTUN_ENC_AES128OFB: case VTUN_ENC_AES128CFB: case VTUN_ENC_AES128CBC: blocksize = 16; keysize = 16; sb_init=1; cipher_type = EVP_aes_128_ecb(); - pctx_enc = &ctx_enc_ecb; - pctx_dec = &ctx_dec_ecb; + pctx_enc = ctx_enc_ecb; + pctx_dec = ctx_dec_ecb; break; case VTUN_ENC_AES128ECB: blocksize = 16; keysize = 16; - pctx_enc = &ctx_enc; - pctx_dec = &ctx_dec; + pctx_enc = ctx_enc; + pctx_dec = ctx_dec; cipher_type = EVP_aes_128_ecb(); strcpy(cipher_name,"AES-128-ECB"); break; case VTUN_ENC_BF256OFB: @@ -219,20 +219,20 @@ blocksize = 8; keysize = 32; var_key = 1; sb_init = 1; cipher_type = EVP_bf_ecb(); - pctx_enc = &ctx_enc_ecb; - pctx_dec = &ctx_dec_ecb; + pctx_enc = ctx_enc_ecb; + pctx_dec = ctx_dec_ecb; break; case VTUN_ENC_BF256ECB: blocksize = 8; keysize = 32; var_key = 1; - pctx_enc = &ctx_enc; - pctx_dec = &ctx_dec; + pctx_enc = ctx_enc; + pctx_dec = ctx_dec; cipher_type = EVP_bf_ecb(); strcpy(cipher_name,"Blowfish-256-ECB"); break; case VTUN_ENC_BF128OFB: @@ -241,26 +241,28 @@ blocksize = 8; keysize = 16; var_key = 1; sb_init = 1; cipher_type = EVP_bf_ecb(); - pctx_enc = &ctx_enc_ecb; - pctx_dec = &ctx_dec_ecb; + pctx_enc = ctx_enc_ecb; + pctx_dec = ctx_dec_ecb; break; case VTUN_ENC_BF128ECB: /* blowfish 128 ecb is the default */ default: blocksize = 8; keysize = 16; var_key = 1; - pctx_enc = &ctx_enc; - pctx_dec = &ctx_dec; + pctx_enc = ctx_enc; + pctx_dec = ctx_dec; cipher_type = EVP_bf_ecb(); strcpy(cipher_name,"Blowfish-128-ECB"); break; } /* switch(host->cipher) */ if (prep_key(&pkey, keysize, host) != 0) return -1; + pctx_enc = EVP_CIPHER_CTX_new(); + pctx_dec = EVP_CIPHER_CTX_new(); EVP_CIPHER_CTX_init(pctx_enc); EVP_CIPHER_CTX_init(pctx_dec); EVP_EncryptInit_ex(pctx_enc, cipher_type, NULL, NULL, NULL); EVP_DecryptInit_ex(pctx_dec, cipher_type, NULL, NULL, NULL); if (var_key) @@ -292,14 +294,14 @@ free_key(pkey); pkey = NULL; lfd_free(enc_buf); enc_buf = NULL; lfd_free(dec_buf); dec_buf = NULL; - EVP_CIPHER_CTX_cleanup(&ctx_enc); - EVP_CIPHER_CTX_cleanup(&ctx_dec); - EVP_CIPHER_CTX_cleanup(&ctx_enc_ecb); - EVP_CIPHER_CTX_cleanup(&ctx_dec_ecb); + EVP_CIPHER_CTX_free(ctx_enc); + EVP_CIPHER_CTX_free(ctx_dec); + EVP_CIPHER_CTX_free(ctx_enc_ecb); + EVP_CIPHER_CTX_free(ctx_dec_ecb); return 0; } static int encrypt_buf(int len, char *in, char **out) @@ -321,11 +323,11 @@ memset(in_ptr+len, pad, pad); outlen=len+pad; if (pad == blocksize) RAND_bytes(in_ptr+len, blocksize-1); - EVP_EncryptUpdate(&ctx_enc, out_ptr, &outlen, in_ptr, len+pad); + EVP_EncryptUpdate(ctx_enc, out_ptr, &outlen, in_ptr, len+pad); *out = enc_buf; sequence_num++; return outlen+msg_len; @@ -341,11 +343,11 @@ in = *out; in_ptr = in; outlen=len; if (!len) return 0; - EVP_DecryptUpdate(&ctx_dec, out_ptr, &outlen, in_ptr, len); + EVP_DecryptUpdate(ctx_dec, out_ptr, &outlen, in_ptr, len); recv_ib_mesg(&outlen, &out_ptr); if (!outlen) return 0; tmp_ptr = out_ptr + outlen; tmp_ptr--; pad = *tmp_ptr; if (pad < 1 || pad > blocksize) { @@ -429,17 +431,18 @@ /* if we're here, something weird's going on */ return -1; break; } /* switch(cipher) */ - EVP_CIPHER_CTX_init(&ctx_enc); - EVP_EncryptInit_ex(&ctx_enc, cipher_type, NULL, NULL, NULL); + ctx_enc = EVP_CIPHER_CTX_new(); + EVP_CIPHER_CTX_init(ctx_enc); + EVP_EncryptInit_ex(ctx_enc, cipher_type, NULL, NULL, NULL); if (var_key) - EVP_CIPHER_CTX_set_key_length(&ctx_enc, keysize); - EVP_EncryptInit_ex(&ctx_enc, NULL, NULL, pkey, NULL); - EVP_EncryptInit_ex(&ctx_enc, NULL, NULL, NULL, iv); - EVP_CIPHER_CTX_set_padding(&ctx_enc, 0); + EVP_CIPHER_CTX_set_key_length(ctx_enc, keysize); + EVP_EncryptInit_ex(ctx_enc, NULL, NULL, pkey, NULL); + EVP_EncryptInit_ex(ctx_enc, NULL, NULL, NULL, iv); + EVP_CIPHER_CTX_set_padding(ctx_enc, 0); if (enc_init_first_time) { sprintf(tmpstr,"%s encryption initialized", cipher_name); vtun_syslog(LOG_INFO, tmpstr); enc_init_first_time = 0; @@ -519,17 +522,18 @@ /* if we're here, something weird's going on */ return -1; break; } /* switch(cipher) */ - EVP_CIPHER_CTX_init(&ctx_dec); - EVP_DecryptInit_ex(&ctx_dec, cipher_type, NULL, NULL, NULL); + ctx_dec = EVP_CIPHER_CTX_new(); + EVP_CIPHER_CTX_init(ctx_dec); + EVP_DecryptInit_ex(ctx_dec, cipher_type, NULL, NULL, NULL); if (var_key) - EVP_CIPHER_CTX_set_key_length(&ctx_dec, keysize); - EVP_DecryptInit_ex(&ctx_dec, NULL, NULL, pkey, NULL); - EVP_DecryptInit_ex(&ctx_dec, NULL, NULL, NULL, iv); - EVP_CIPHER_CTX_set_padding(&ctx_dec, 0); + EVP_CIPHER_CTX_set_key_length(ctx_dec, keysize); + EVP_DecryptInit_ex(ctx_dec, NULL, NULL, pkey, NULL); + EVP_DecryptInit_ex(ctx_dec, NULL, NULL, NULL, iv); + EVP_CIPHER_CTX_set_padding(ctx_dec, 0); if (dec_init_first_time) { sprintf(tmpstr,"%s decryption initialized", cipher_name); vtun_syslog(LOG_INFO, tmpstr); dec_init_first_time = 0; @@ -557,11 +561,11 @@ memset(iv,0,blocksize); free(iv); iv = NULL; RAND_bytes(in_ptr, in - in_ptr); in_ptr = in - blocksize*2; outlen = blocksize*2; - EVP_EncryptUpdate(&ctx_enc_ecb, in_ptr, + EVP_EncryptUpdate(ctx_enc_ecb, in_ptr, &outlen, in_ptr, blocksize*2); *out = in_ptr; len = outlen; cipher_enc_state = CIPHER_SEQUENCE; break; @@ -584,11 +588,11 @@ { case CIPHER_INIT: in_ptr = in; iv = malloc(blocksize); outlen = blocksize*2; - EVP_DecryptUpdate(&ctx_dec_ecb, in_ptr, &outlen, in_ptr, blocksize*2); + EVP_DecryptUpdate(ctx_dec_ecb, in_ptr, &outlen, in_ptr, blocksize*2); if ( !strncmp(in_ptr, "ivec", 4) ) { memcpy(iv, in_ptr+4, blocksize); cipher_dec_init(iv); @@ -627,11 +631,11 @@ "Max. gibberish threshold reached"); #endif if (cipher_enc_state != CIPHER_INIT) { cipher_enc_state = CIPHER_INIT; - EVP_CIPHER_CTX_cleanup(&ctx_enc); + EVP_CIPHER_CTX_free(ctx_enc); #ifdef LFD_ENCRYPT_DEBUG vtun_syslog(LOG_INFO, "Forcing local encryptor re-init"); #endif } @@ -708,11 +712,11 @@ *len -= blocksize; if (cipher_enc_state != CIPHER_INIT) { cipher_enc_state = CIPHER_INIT; - EVP_CIPHER_CTX_cleanup(&ctx_enc); + EVP_CIPHER_CTX_free(ctx_enc); } #ifdef LFD_ENCRYPT_DEBUG vtun_syslog(LOG_INFO, "Remote requests encryptor re-init"); #endif } @@ -722,11 +726,11 @@ if (cipher_dec_state != CIPHER_INIT && cipher_enc_state != CIPHER_REQ_INIT && cipher_enc_state != CIPHER_INIT) { - EVP_CIPHER_CTX_cleanup (&ctx_dec); + EVP_CIPHER_CTX_free (ctx_dec); cipher_dec_state = CIPHER_INIT; cipher_enc_state = CIPHER_REQ_INIT; } #ifdef LFD_ENCRYPT_DEBUG vtun_syslog(LOG_INFO, "Local decryptor out of sync"); ================================================ FILE: package/vtun/Config.in ================================================ config BR2_PACKAGE_VTUN bool "vtun" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LZO select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_BLOWFISH if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_ZLIB help Tool for easily creating Virtual Tunnels over TCP/IP networks with traffic shaping, compression, and encryption. It supports IP, PPP, SLIP, Ethernet and other tunnel types. http://vtun.sourceforge.net/ ================================================ FILE: package/vtun/vtun.hash ================================================ # From https://sourceforge.net/projects/vtun/files/vtun/3.0.4/ md5 f952c5895ae8f40235aaad9a8f41a4bd vtun-3.0.4.tar.gz sha1 2335c21b56fadf9ce851dd7f342fb0ed4f522c47 vtun-3.0.4.tar.gz # Locally computed: sha256 abf8df6b15e3febeaaeae2ce24ead7105eb1537ad4ec0d830c83cbb684fd98b9 vtun-3.0.4.tar.gz sha256 5692a9a69dc5abc1aa9cbc54899d114b65c4cefbd9d7fcecc304316a2f26ced3 README.OpenSSL ================================================ FILE: package/vtun/vtun.mk ================================================ ################################################################################ # # vtun # ################################################################################ VTUN_VERSION = 3.0.4 VTUN_SITE = http://downloads.sourceforge.net/project/vtun/vtun/$(VTUN_VERSION) VTUN_LICENSE = GPL-2.0+ with OpenSSL exception VTUN_LICENSE_FILES = README.OpenSSL VTUN_DEPENDENCIES = host-bison host-flex host-pkgconf zlib lzo openssl VTUN_AUTORECONF = YES VTUN_CONF_OPTS = \ --with-ssl-headers=$(STAGING_DIR)/usr/include/openssl \ --with-lzo-headers=$(STAGING_DIR)/usr/include/lzo \ --with-lzo-lib=$(STAGING_DIR)/usr/lib # Assumes old-style gcc inline symbol visibility rules VTUN_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -std=gnu89" # configure.in forgets to link to dependent libraries of openssl breaking static # linking VTUN_CONF_ENV += LIBS=`$(PKG_CONFIG_HOST_BINARY) --libs openssl` $(eval $(autotools-package)) ================================================ FILE: package/vuejs/Config.in ================================================ config BR2_PACKAGE_VUEJS bool "vuejs" help VueJS web application framework. http://vuejs.org ================================================ FILE: package/vuejs/vuejs.hash ================================================ # Locally computed sha256 464ea5fdbcb51eee0b5f4762f169024b36a3bcd2c039ea8608b17fdd8a8595e9 vue-3.2.6.tgz sha256 1bb85cc9b13b81ef41c81c51866172fc345e0503c86726a6755b796590b70175 LICENSE ================================================ FILE: package/vuejs/vuejs.mk ================================================ ################################################################################ # # vuejs # ################################################################################ VUEJS_VERSION = 3.2.6 VUEJS_SOURCE = vue-$(VUEJS_VERSION).tgz VUEJS_SITE = https://registry.npmjs.org/vue/- VUEJS_LICENSE = MIT VUEJS_LICENSE_FILES = LICENSE # Install .prod.js as .js define VUEJS_INSTALL_TARGET_CMDS $(INSTALL) -m 644 -D $(@D)/dist/vue.global.prod.js \ $(TARGET_DIR)/var/www/vue.js endef $(eval $(generic-package)) ================================================ FILE: package/vuejs-router/Config.in ================================================ config BR2_PACKAGE_VUEJS_ROUTER bool "vuejs-router" help The official router for Vue.js. http://router.vuejs.org ================================================ FILE: package/vuejs-router/vuejs-router.hash ================================================ # Locally computed sha256 317ae9b916b9a8c5ec521697c345bef15759887d63342ddf19c18ff05ca279b9 vue-router-4.0.11.tgz sha256 9c0015250f592a09d7787efc07152afcf661fff6bda2554359f6d00987828c02 LICENSE ================================================ FILE: package/vuejs-router/vuejs-router.mk ================================================ ################################################################################ # # vuejs-router # ################################################################################ VUEJS_ROUTER_VERSION = 4.0.11 VUEJS_ROUTER_SOURCE = vue-router-$(VUEJS_ROUTER_VERSION).tgz VUEJS_ROUTER_SITE = https://registry.npmjs.org/vue-router/- VUEJS_ROUTER_LICENSE = MIT VUEJS_ROUTER_LICENSE_FILES = LICENSE # Install .prod.js as .js define VUEJS_ROUTER_INSTALL_TARGET_CMDS $(INSTALL) -m 644 -D $(@D)/dist/vue-router.global.prod.js \ $(TARGET_DIR)/var/www/vue-router.js endef $(eval $(generic-package)) ================================================ FILE: package/w_scan/0001-musl.patch ================================================ Fix musl build Signed-off-by: Bernd Kuhls diff -uNr w_scan-20141122.org/descriptors.h w_scan-20141122/descriptors.h --- w_scan-20141122.org/descriptors.h 2014-11-22 09:49:26.000000000 +0100 +++ w_scan-20141122/descriptors.h 2016-01-24 14:05:21.000000000 +0100 @@ -28,6 +28,7 @@ #ifndef __DESCRIPTORS_H__ #define __DESCRIPTORS_H__ +#include #include "extended_frontend.h" /****************************************************************************** diff -uNr w_scan-20141122.org/version.h w_scan-20141122/version.h --- w_scan-20141122.org/version.h 2014-11-22 11:59:56.000000000 +0100 +++ w_scan-20141122/version.h 2016-01-24 14:06:33.000000000 +0100 @@ -1,6 +1,6 @@ /* AUTOMATICALLY GENERATED - DO NOT EDIT MANUALLY */ #ifndef W_SCAN_VERSION_H #define W_SCAN_VERSION_H -uint version=20170107; +unsigned int version=20170107; #endif ================================================ FILE: package/w_scan/0002-si_types-h-fix-build-with-gcc-10.patch ================================================ si_types.h: fix build with gcc 10 Drop service_t, p_service_t, transponder_t and p_transponder_t to avoid the following build failure with gcc 10 (which defaults to -fno-common): /home/giuliobenetti/autobuild/run/instance-3/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -Wall -Wextra -Wno-comment -Wswitch-default -Wno-unused-parameter -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -lrt -o w_scan atsc_psip_section.o countries.o descriptors.o diseqc.o dump-dvbscan.o dump-vdr.o dump-xine.o dump-mplayer.o dump-vlc-m3u.o dvbscan.o lnb.o parse-dvbscan.o satellites.o scan.o section.o tools.o emulate.o dump-xml.o iconv_codes.o char-coding.o /home/giuliobenetti/autobuild/run/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: descriptors.o:(.bss+0x404): multiple definition of `p_transponder_t'; countries.o:(.bss+0x0): first defined here /home/giuliobenetti/autobuild/run/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: descriptors.o:(.bss+0x408): multiple definition of `transponder_t'; countries.o:(.bss+0x4): first defined here /home/giuliobenetti/autobuild/run/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: descriptors.o:(.bss+0x480): multiple definition of `p_service_t'; countries.o:(.bss+0x7c): first defined here /home/giuliobenetti/autobuild/run/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: descriptors.o:(.bss+0x484): multiple definition of `service_t'; countries.o:(.bss+0x80): first defined here Fixes: - http://autobuild.buildroot.org/results/5640442cb4ba06bcbcf31540a64f5665862d39f7 Signed-off-by: Fabrice Fontaine diff -Nura w_scan-20170107.orig/si_types.h w_scan-20170107/si_types.h --- w_scan-20170107.orig/si_types.h 2020-09-20 11:09:56.776963441 +0200 +++ w_scan-20170107/si_types.h 2020-09-20 11:13:13.149232478 +0200 @@ -114,7 +114,7 @@ uint32_t logical_channel_number; uint8_t running; void * priv; -} service_t, * p_service_t; +}; /******************************************************************************* /* transponder type. @@ -201,7 +201,7 @@ /*----------------------------*/ char * network_name; network_change_t network_change; -} __attribute__((packed)) transponder_t, * p_transponder_t; +} __attribute__((packed)); /******************************************************************************* /* satellite channel routing type. ================================================ FILE: package/w_scan/Config.in ================================================ comment "w_scan needs a toolchain w/ headers >= 3.7" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 config BR2_PACKAGE_W_SCAN bool "w_scan" depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help w_scan is a small command line utility used to perform frequency scans for DVB and ATSC transmissions. It is capable of creating channels.conf files (in different output formats !) as well as initial tuning data for scan. https://www.gen2vdr.de/wirbel/w_scan/index2.html ================================================ FILE: package/w_scan/w_scan.hash ================================================ # Locally calculated sha256 38e0f38a7bf06cff6d6ea01652ad4ee60da2cb0e937360468f936da785b46ffe w_scan-20170107.tar.bz2 sha256 ddb9db7630752f8fdc6898f7c99a99eaeeac5213627ecb093df9c82f56175dc7 COPYING ================================================ FILE: package/w_scan/w_scan.mk ================================================ ################################################################################ # # w_scan # ################################################################################ W_SCAN_VERSION = 20170107 W_SCAN_SOURCE = w_scan-$(W_SCAN_VERSION).tar.bz2 W_SCAN_SITE = http://wirbel.htpc-forum.de/w_scan W_SCAN_LICENSE = GPL-2.0+ W_SCAN_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_LIBICONV),y) W_SCAN_DEPENDENCIES += libiconv W_SCAN_CONF_ENV += LIBS=-liconv endif $(eval $(autotools-package)) ================================================ FILE: package/waf/waf.hash ================================================ # Locally computed sha1 494ada411468129ed229f946ecec3048400e320b waf-2.0.22 sha256 0a09ad26a2cfc69fa26ab871cb558165b60374b5a653ff556a0c6aca63a00df1 waf-2.0.22 # The waf script also contains its license, but is renamed `waf` in the extract # step, so this is a synonym for the above, to check WAF_LICENSE sha256 0a09ad26a2cfc69fa26ab871cb558165b60374b5a653ff556a0c6aca63a00df1 waf ================================================ FILE: package/waf/waf.mk ================================================ ################################################################################ # # waf # ################################################################################ WAF_VERSION = 2.0.22 WAF_SOURCE = waf-$(WAF_VERSION) WAF_SITE = https://waf.io WAF_LICENSE = BSD-3-Clause WAF_LICENSE_FILES = waf define HOST_WAF_EXTRACT_CMDS $(INSTALL) -D -m 0755 $(HOST_WAF_DL_DIR)/waf-$(WAF_VERSION) $(@D)/waf endef define HOST_WAF_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/waf $(HOST_DIR)/bin/waf endef $(eval $(host-generic-package)) ================================================ FILE: package/waffle/0001-cmake-forward-cflags-from-.pc-files-to-waffle-cflags.patch ================================================ From 8b0ae49c8bea78df73c3ecae0059d54a95c561fa Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 24 Dec 2017 00:11:45 +0100 Subject: [PATCH] cmake: forward cflags from *.pc files to waffle cflags When building mesa egl without x11 and gles2 the headers need a EGL_NO_X11 define to avoid including X11 headers. This define EGL_NO_X11 is lost while building waffle since CFLAGS defined by pc files are not used. EGL_NO_X11 is defined in CFLAGS from egl.pc. Signed-off-by: Romain Naour --- src/waffle/CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/waffle/CMakeLists.txt b/src/waffle/CMakeLists.txt index d76e029..2ff72c8 100644 --- a/src/waffle/CMakeLists.txt +++ b/src/waffle/CMakeLists.txt @@ -5,6 +5,14 @@ add_definitions( -DWAFFLE_API_VERSION=${waffle_api_version} -DWAFFLE_API_EXPERIMENTAL + ${egl_CFLAGS} + ${gbm_CFLAGS} + ${gl_CFLAGS} + ${GLEXT_CFLAGS} + ${libudev_CFLAGS} + ${wayland-client_CFLAGS} + ${wayland-egl_CFLAGS} + ${x11-xcb_CFLAGS} ) include_directories( -- 2.14.3 ================================================ FILE: package/waffle/Config.in ================================================ config BR2_PACKAGE_WAFFLE_SUPPORTS_GLX bool default y if BR2_PACKAGE_HAS_LIBGL && BR2_PACKAGE_XORG7 config BR2_PACKAGE_WAFFLE_SUPPORTS_WAYLAND bool default y if BR2_PACKAGE_WAYLAND && BR2_PACKAGE_HAS_LIBEGL_WAYLAND config BR2_PACKAGE_WAFFLE_SUPPORTS_X11_EGL bool default y if BR2_PACKAGE_HAS_LIBEGL && BR2_PACKAGE_XORG7 config BR2_PACKAGE_WAFFLE_SUPPORTS_GBM bool # mesa3d is for now the only GBM provider, and it is enabled # together with its EGL support default y if BR2_PACKAGE_HAS_LIBEGL && BR2_PACKAGE_MESA3D_OPENGL_EGL && BR2_PACKAGE_HAS_UDEV config BR2_PACKAGE_WAFFLE bool "waffle" depends on BR2_PACKAGE_WAFFLE_SUPPORTS_GLX || \ BR2_PACKAGE_WAFFLE_SUPPORTS_WAYLAND || \ BR2_PACKAGE_WAFFLE_SUPPORTS_X11_EGL || \ BR2_PACKAGE_WAFFLE_SUPPORTS_GBM select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_WAFFLE_SUPPORTS_GLX || BR2_PACKAGE_WAFFLE_SUPPORTS_X11_EGL select BR2_PACKAGE_LIBXCB if BR2_PACKAGE_WAFFLE_SUPPORTS_GLX || BR2_PACKAGE_WAFFLE_SUPPORTS_X11_EGL help Waffle is a cross-platform library that allows one to defer selection of an OpenGL API and of window system until runtime. For example, on Linux, Waffle enables an application to select X11/EGL with an OpenGL 3.3 core profile, Wayland with OpenGL ES2, and other window system / API combinations. Waffle's immediate goal is to enable Piglit [1] to test multiple OpenGL flavors in a cross-platform way, and to allow each Piglit test to choose its OpenGL API and window system at runtime. A future goal is to enable the ability to record (with another tool such APITrace [2]) an application's OpenGL calls on one operating system or window system, and then replay that trace on a different system. For more information, visit to Waffle's website. [1] http://piglit.freedesktop.org [2] http://github.com/apitrace/apitrace#readme http://www.waffle-gl.org ================================================ FILE: package/waffle/waffle.hash ================================================ # Locally calculated sha256 234e65bdd2dd8f7d3bc8e9ad1a7cc80fce78a1deed3a04fe7f1d2c2edac0cd8a waffle-v1.6.1.tar.bz2 sha256 630844d1911c8a1b7b888a1de9097c4860b7e381362fd5aa64141d58ab7ecc9b LICENSE.txt ================================================ FILE: package/waffle/waffle.mk ================================================ ################################################################################ # # waffle # ################################################################################ WAFFLE_VERSION = 1.6.1 WAFFLE_SOURCE = waffle-v$(WAFFLE_VERSION).tar.bz2 WAFFLE_SITE = https://gitlab.freedesktop.org/mesa/waffle/-/archive/v$(WAFFLE_VERSION) WAFFLE_INSTALL_STAGING = YES WAFFLE_LICENSE = BSD-2-Clause WAFFLE_LICENSE_FILES = LICENSE.txt WAFFLE_DEPENDENCIES = host-pkgconf WAFFLE_CONF_OPTS = -Dwaffle_build_tests=OFF \ -Dwaffle_build_examples=OFF \ -Dwaffle_build_manpages=OFF \ -Dwaffle_build_htmldocs=OFF \ -Dwaffle_has_nacl=OFF ifeq ($(BR2_PACKAGE_WAFFLE_SUPPORTS_WAYLAND),y) WAFFLE_DEPENDENCIES += libegl wayland WAFFLE_CONF_OPTS += -Dwaffle_has_wayland=ON else WAFFLE_CONF_OPTS += -Dwaffle_has_wayland=OFF endif ifeq ($(BR2_PACKAGE_WAFFLE_SUPPORTS_X11_EGL),y) WAFFLE_DEPENDENCIES += libegl libxcb xlib_libX11 WAFFLE_CONF_OPTS += -Dwaffle_has_x11_egl=ON else WAFFLE_CONF_OPTS += -Dwaffle_has_x11_egl=OFF endif ifeq ($(BR2_PACKAGE_WAFFLE_SUPPORTS_GLX),y) WAFFLE_DEPENDENCIES += libgl libxcb xlib_libX11 WAFFLE_CONF_OPTS += -Dwaffle_has_glx=ON else WAFFLE_CONF_OPTS += -Dwaffle_has_glx=OFF endif ifeq ($(BR2_PACKAGE_WAFFLE_SUPPORTS_GBM),y) WAFFLE_DEPENDENCIES += libegl udev WAFFLE_CONF_OPTS += -Dwaffle_has_gbm=ON else WAFFLE_CONF_OPTS += -Dwaffle_has_gbm=OFF endif ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y) WAFFLE_DEPENDENCIES += bash-completion endif ifeq ($(BR2_PACKAGE_MESA3D)$(BR2_PACKAGE_MESA3D_OPENGL_EGL),yy) WAFFLE_DEPENDENCIES += mesa3d WAFFLE_CONF_OPTS += -Dwaffle_has_surfaceless_egl=ON else WAFFLE_CONF_OPTS += -Dwaffle_has_surfaceless_egl=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/wampcc/0001-Add-RISC-V-endian-detection.patch ================================================ From e94589ed36c4a311355efc46ba3f76523c546057 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 7 Aug 2019 16:17:16 +0200 Subject: [PATCH] Add RISC-V endian detection 3rdparty/msgpack-c/include/msgpack/predef/other/endian.h (which comes from Boost) two ways of detecting the endianess: (1) It includes if BOOST_LIB_C_GNU is defined, and then use __BYTE_ORDER to decide the endianness. (2) Otherwise, if (1) was not possible for some reason, it uses architecture defines to decide the endianness. (1) works perfectly fine with glibc toolchains, because BOOST_LIB_C_GNU is defined, but it doesn't work with musl. Due to this, is not included, __BYTE_ORDER is not defined, and method (1) does not work, causing build failures on musl toolchains that don't have explicit handling by architecture name (method 2). So this commit fixes RISC-V musl build by adding support for the __riscv architecture define, to determine that the endianness is little endian. Signed-off-by: Thomas Petazzoni --- 3rdparty/msgpack-c/include/msgpack/predef/other/endian.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/3rdparty/msgpack-c/include/msgpack/predef/other/endian.h b/3rdparty/msgpack-c/include/msgpack/predef/other/endian.h index 3c609fa..63a5722 100644 --- a/3rdparty/msgpack-c/include/msgpack/predef/other/endian.h +++ b/3rdparty/msgpack-c/include/msgpack/predef/other/endian.h @@ -127,7 +127,8 @@ information and acquired knowledge: defined(__AARCH64EL__) || \ defined(_MIPSEL) || \ defined(__MIPSEL) || \ - defined(__MIPSEL__) + defined(__MIPSEL__) || \ + defined(__riscv) # undef MSGPACK_ENDIAN_LITTLE_BYTE # define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE # endif -- 2.21.0 ================================================ FILE: package/wampcc/0002-include-wampcc-platform.h-fix-build-with-musl-1.2.0.patch ================================================ From 9c2559434b752df3dc8460ee242d321670a40847 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 1 Jun 2020 11:41:54 +0200 Subject: [PATCH] include/wampcc/platform.h: fix build with musl 1.2.0 Fix the following build failure on musl 1.2.0 due to time_t being on 64 bits: /home/naourr/work/instance-0/output-1/build/wampcc-1.6/libs/wampcc/utils.cc: In function 'std::__cxx11::string wampcc::local_timestamp()': /home/naourr/work/instance-0/output-1/build/wampcc-1.6/libs/wampcc/utils.cc:205:15: error: cannot convert 'wampcc::time_val::type_type*' {aka 'long int*'} to 'const time_t*' {aka 'const long long int*'} localtime_r(&now.sec, &parts); ^~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/da996e189220499b85efbdb541a891ac18db38c6 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/darrenjs/wampcc/pull/62] --- include/wampcc/platform.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/wampcc/platform.h b/include/wampcc/platform.h index 24d0868..aebf950 100644 --- a/include/wampcc/platform.h +++ b/include/wampcc/platform.h @@ -27,7 +27,7 @@ namespace wampcc struct time_val { #ifndef _WIN32 - typedef long type_type; + typedef time_t type_type; #else typedef __time64_t type_type; #endif -- 2.26.2 ================================================ FILE: package/wampcc/0003-Broken-build-on-Windows.patch ================================================ From eaa70a289288db1e8d90a2a9bcde435a8975fe74 Mon Sep 17 00:00:00 2001 From: Sergey Lukashevich Date: Fri, 26 Jul 2019 21:58:34 +0300 Subject: [PATCH] Broken build on Windows: "http_parser.h(66,18): error C2039: 'runtime_error': is not a member of 'std'" Add missing include. [Retrieved from: https://github.com/darrenjs/wampcc/commit/eaa70a289288db1e8d90a2a9bcde435a8975fe74] Signed-off-by: Fabrice Fontaine --- include/wampcc/http_parser.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/wampcc/http_parser.h b/include/wampcc/http_parser.h index a9405dd..4c20417 100644 --- a/include/wampcc/http_parser.h +++ b/include/wampcc/http_parser.h @@ -11,6 +11,7 @@ #include #include #include +#include // types brought in from nodejs http-parser project struct http_parser; ================================================ FILE: package/wampcc/Config.in ================================================ config BR2_PACKAGE_WAMPCC bool "wampcc" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv depends on BR2_USE_MMU # libuv depends on !BR2_STATIC_LIBS # libuv depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::shared_future select BR2_PACKAGE_LIBUV select BR2_PACKAGE_JANSSON select BR2_PACKAGE_OPENSSL help wampcc is a C++ library that implements the Web Application Messaging Protocol. https://github.com/darrenjs/wampcc comment "wampcc needs a toolchain w/ C++, NPTL, dynamic library" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS comment "wampcc needs a toolchain not affected by GCC bug 64735" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 ================================================ FILE: package/wampcc/wampcc.hash ================================================ # Locally calculated sha256 b3c3633b4c6a74d7ac8a676a7ea30fbfde7ae19aa1fc37de3b8aa3a553b674a2 wampcc-1.6.tar.gz sha256 bd185b1ec8a292d42b42346757ff6e198073e13c1e080e9ea548d34dd42d30d8 LICENSE ================================================ FILE: package/wampcc/wampcc.mk ================================================ ################################################################################ # # wampcc # ################################################################################ WAMPCC_VERSION = 1.6 WAMPCC_SITE = $(call github,darrenjs,wampcc,v$(WAMPCC_VERSION)) WAMPCC_DEPENDENCIES = host-pkgconf libuv jansson openssl WAMPCC_INSTALL_STAGING = YES WAMPCC_LICENSE = MIT WAMPCC_LICENSE_FILES = LICENSE # Uses __atomic_fetch_add_8 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) WAMPCC_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif $(eval $(cmake-package)) ================================================ FILE: package/watchdog/Config.in ================================================ config BR2_PACKAGE_WATCHDOG bool "watchdog" depends on BR2_USE_MMU help Watchdog is a daemon that periodically pets a watchdog device if the configured system status checks pass. If they do not, the daemon may execute repair commands, shutdown the system or reboot it. https://sourceforge.net/projects/watchdog/ ================================================ FILE: package/watchdog/watchdog.hash ================================================ # Locally computed sha256 b8e7c070e1b72aee2663bdc13b5cc39f76c9232669cfbb1ac0adc7275a3b019d watchdog-5.16.tar.gz sha256 af7f3f94e85080204b37f7c53717a2c94c6b54d7fa516ebd74e008cb4c0391bd COPYING ================================================ FILE: package/watchdog/watchdog.mk ================================================ ################################################################################ # # watchdog # ################################################################################ WATCHDOG_VERSION = 5.16 WATCHDOG_SITE = http://downloads.sourceforge.net/sourceforge/watchdog WATCHDOG_LICENSE = GPL-2.0+ WATCHDOG_LICENSE_FILES = COPYING # By default installs binaries in /usr/sbin/, but we want them in # /sbin/ so that they fall at the same place as Busybox counterparts WATCHDOG_CONF_OPTS = --sbindir=/sbin $(eval $(autotools-package)) ================================================ FILE: package/watchdogd/Config.in ================================================ config BR2_PACKAGE_WATCHDOGD bool "watchdogd" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBCONFUSE select BR2_PACKAGE_LIBITE select BR2_PACKAGE_LIBUEV help Extended version of uClinux-dist watchdogd. Monitors loadavg, file descriptors and memory leaks, and capable of supervising your processes main loop using an instrumentation API. A reset reason is saved for power loss, CPU overload, or any of the monitored conditions (above). The full capabilities are limited by the kernel watchdog driver, but even the basic "softdog" driver is supported. See /etc/watchdogd.conf for details, and try watchdogctl for system status and available commands. https://github.com/troglobit/watchdogd/ if BR2_PACKAGE_WATCHDOGD config BR2_PACKAGE_WATCHDOGD_TEST_SUITE bool "Enable watchdogctl test cases" help The watchdogctl program comes with a suite of tests built-in. They can be used to verify correct operation of watchdogd and the kernel watchdog driver. config BR2_PACKAGE_WATCHDOGD_GENERIC_POLL int "Generic script monitor poll interval (sec)" default "300" help Poll interval for generic script monitor, in seconds. A value of zero (0) disables the monitor. config BR2_PACKAGE_WATCHDOGD_LOADAVG_POLL int "CPU load average monitor poll interval (sec)" default "300" help Poll interval for CPU load average monitor, in seconds. A value of zero (0) disables the monitor. config BR2_PACKAGE_WATCHDOGD_FILENR_POLL int "File descriptor leak monitor poll interval (sec)" default "300" help Poll interval for file descriptor leak monitor, in seconds. A value of zero (0) disables the monitor. config BR2_PACKAGE_WATCHDOGD_MEMINFO_POLL int "Memory leak monitor poll interval (sec)" default "300" help Poll interval for memory leak monitor, in seconds. A value of zero (0) disables the monitor. endif ================================================ FILE: package/watchdogd/S01watchdogd ================================================ #!/bin/sh DAEMON="watchdogd" PIDFILE="/var/run/$DAEMON.pid" # shellcheck source=/dev/null [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" cmd() { start-stop-daemon -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" "$@" status=$? if [ $status -eq 0 ]; then echo "OK" else echo "FAIL" fi return $status } case "$1" in start) printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting cmd -S -- $SMCROUTED_ARGS ;; stop) printf 'Stopping %s: ' "$DAEMON" cmd -K ;; restart) $0 stop sleep 1 $0 start ;; reload) printf 'Reloading %s: ' "$DAEMON" cmd -K -s HUP ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac ================================================ FILE: package/watchdogd/watchdogd.hash ================================================ # Upstream .sha256 from GitHub sha256 33ec4edc8cb4ada7a4d8324a27d897d33aae5e83257ed64d3d37508825c11237 watchdogd-3.5.tar.gz # Locally calculated sha256 fd685e20931174308c45a26418a7ce34d66704c4e4b92ab1d8299deb255cd676 LICENSE ================================================ FILE: package/watchdogd/watchdogd.mk ================================================ ################################################################################ # # watchdogd # ################################################################################ WATCHDOGD_VERSION = 3.5 WATCHDOGD_SITE = https://github.com/troglobit/watchdogd/releases/download/$(WATCHDOGD_VERSION) WATCHDOGD_LICENSE = ISC WATCHDOGD_LICENSE_FILES = LICENSE WATCHDOGD_CPE_ID_VENDOR = troglobit WATCHDOGD_DEPENDENCIES = host-pkgconf libconfuse libite libuev WATCHDOGD_CONF_OPTS = --disable-compat --disable-examples --disable-test-mode ifneq ($(BR2_PACKAGE_WATCHDOGD_TEST_SUITE),y) WATCHDOGD_CONF_OPTS += --disable-builtin-tests else WATCHDOGD_CONF_OPTS += --enable-builtin-tests endif ifeq ($(BR2_PACKAGE_WATCHDOGD_GENERIC_POLL),0) WATCHDOGD_CONF_OPTS += --without-generic else WATCHDOGD_CONF_OPTS += --with-generic=$(BR2_PACKAGE_WATCHDOGD_GENERIC_POLL) endif ifeq ($(BR2_PACKAGE_WATCHDOGD_LOADAVG_POLL),0) WATCHDOGD_CONF_OPTS += --without-loadavg else WATCHDOGD_CONF_OPTS += --with-loadavg=$(BR2_PACKAGE_WATCHDOGD_LOADAVG_POLL) endif ifeq ($(BR2_PACKAGE_WATCHDOGD_FILENR_POLL),0) WATCHDOGD_CONF_OPTS += --without-filenr else WATCHDOGD_CONF_OPTS += --with-filenr=$(BR2_PACKAGE_WATCHDOGD_FILENR_POLL) endif ifeq ($(BR2_PACKAGE_WATCHDOGD_MEMINFO_POLL),0) WATCHDOGD_CONF_OPTS += --without-meminfo else WATCHDOGD_CONF_OPTS += --with-meminfo=$(BR2_PACKAGE_WATCHDOGD_MEMINFO_POLL) endif define WATCHDOGD_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/watchdogd/S01watchdogd \ $(TARGET_DIR)/etc/init.d/S01watchdogd endef define WATCHDOGD_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 $(WATCHDOGD_SRCDIR)/watchdogd.service \ $(TARGET_DIR)/usr/lib/systemd/system/watchdogd.service endef $(eval $(autotools-package)) ================================================ FILE: package/wavemon/Config.in ================================================ config BR2_PACKAGE_WAVEMON bool "wavemon" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # libnl tools select BR2_PACKAGE_NCURSES select BR2_PACKAGE_LIBNL select BR2_PACKAGE_LIBNL_TOOLS 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/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/wavemon/wavemon.hash ================================================ # Locally calculated sha256 e7e4167292136ca7ff12ddeb880904c10f33e97620ea6aa5f7838e859fdb40ed wavemon-0.9.4.tar.gz sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 LICENSE ================================================ FILE: package/wavemon/wavemon.mk ================================================ ################################################################################ # # wavemon # ################################################################################ WAVEMON_VERSION = 0.9.4 WAVEMON_SITE = $(call github,uoaerg,wavemon,v$(WAVEMON_VERSION)) WAVEMON_LICENSE = GPL-3.0+ WAVEMON_LICENSE_FILES = LICENSE WAVEMON_DEPENDENCIES = host-pkgconf libnl ncurses # Handwritten Makefile.in, automake isn't used WAVEMON_MAKE_OPTS = CC="$(TARGET_CC)" ifeq ($(BR2_PACKAGE_LIBCAP),y) WAVEMON_CONF_OPTS += --with-libcap WAVEMON_DEPENDENCIES += libcap else WAVEMON_CONF_OPTS += --without-libcap endif $(eval $(autotools-package)) ================================================ FILE: package/wavpack/Config.in ================================================ config BR2_PACKAGE_WAVPACK bool "wavpack" select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help WavPack is a completely open audio compression format providing lossless, high-quality lossy, and a unique hybrid compression mode. http://www.wavpack.com/ ================================================ FILE: package/wavpack/wavpack.hash ================================================ # locally computed hash sha256 4bde6a6b2a86614a6bd2579e60dcc974e2c8f93608d2281110a717c1b3c28b79 wavpack-5.4.0.tar.xz sha256 f38defde000d62c4ff158f1445cb85a0c2f67cbc1d3cfa34ed882f439f6e3b43 COPYING ================================================ FILE: package/wavpack/wavpack.mk ================================================ ################################################################################ # # wavpack # ################################################################################ WAVPACK_VERSION = 5.4.0 WAVPACK_SITE = \ https://github.com/dbry/WavPack/releases/download/$(WAVPACK_VERSION) WAVPACK_SOURCE = wavpack-$(WAVPACK_VERSION).tar.xz WAVPACK_INSTALL_STAGING = YES WAVPACK_DEPENDENCIES = $(if $(BR2_ENABLE_LOCALE),,libiconv) WAVPACK_LICENSE = BSD-3-Clause WAVPACK_LICENSE_FILES = COPYING WAVPACK_CPE_ID_VENDOR = wavpack ifeq ($(BR2_PACKAGE_LIBICONV),y) WAVPACK_CONF_OPTS += LIBS=-liconv endif ifeq ($(BR2_PACKAGE_OPENSSL),y) WAVPACK_DEPENDENCIES += openssl WAVPACK_CONF_OPTS += --enable-libcrypto else WAVPACK_CONF_OPTS += --disable-libcrypto endif # WavPack "autodetects" CPU type to enable ASM code. However, the assembly code # for ARM is written for ARMv7 only and building WavPack for an ARM-non-v7 # architecture will fail. We explicitly enable ASM for the supported # architectures x86, x64 and ARMv7 and disable it for all others. ifeq ($(BR2_i386)$(BR2_x86_64)$(BR2_ARM_CPU_ARMV7A),y) WAVPACK_CONF_OPTS += --enable-asm else WAVPACK_CONF_OPTS += --disable-asm endif $(eval $(autotools-package)) ================================================ FILE: package/wayland/0001-build-add-option-to-disable-tests.patch ================================================ From 88f1605a826ca0c2ff02be6f4cf9ecabf68e8341 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Tue, 3 Mar 2020 15:27:51 -0700 Subject: [PATCH] build: add option to disable tests When building for a product, tests are not needed. Besides, one test requires a C++ compiler, which is not always available. So, add an option to configure to disable building tests altogether. Signed-off-by: "Yann E. MORIN" Signed-off-by: Alexey Brodkin Signed-off-by: James Hilliard [Upstream status: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/66] Signed-off-by: Adrian Perez de Castro [yann.morin.1998@free.fr: backport from upstream] Signed-off-by: Yann E. MORIN --- meson.build | 4 +++- meson_options.txt | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index cdb66bc..714a86d 100644 --- a/meson.build +++ b/meson.build @@ -84,7 +84,9 @@ subdir('src') if get_option('libraries') subdir('cursor') subdir('egl') - subdir('tests') + if get_option('tests') + subdir('tests') + endif if get_option('documentation') subdir('doc') endif diff --git a/meson_options.txt b/meson_options.txt index de588d1..4433fa0 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -6,6 +6,10 @@ option('scanner', description: 'Compile wayland-scanner binary', type: 'boolean', value: 'true') +option('tests', + description: 'Compile Wayland tests', + type: 'boolean', + value: 'true') option('documentation', description: 'Build the documentation (requires Doxygen, dot, xmlto, xsltproc)', type: 'boolean', -- 2.25.1 ================================================ FILE: package/wayland/0002-meson-only-require-cpp-for-tests.patch ================================================ From 4c2105312379b62dc84f6eaaf26e2ab293d51b92 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Fri, 16 Apr 2021 02:32:38 -0600 Subject: [PATCH] meson: only require cpp for tests Signed-off-by: James Hilliard [Upstream status: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/130] Signed-off-by: Adrian Perez de Castro [yann.morin.1998@free.fr: backport from upstream] Signed-off-by: Yann E. MORIN --- meson.build | 2 +- tests/meson.build | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/meson.build b/meson.build index 12b4641..cdb66bc 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project( - 'wayland', 'c', 'cpp', + 'wayland', 'c', version: '1.19.0', license: 'MIT', meson_version: '>= 0.52.1', diff --git a/tests/meson.build b/tests/meson.build index a32ac50..2e11af4 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -64,15 +64,17 @@ executable( dependencies: test_runner_dep ) -test( - 'cpp-compile-test', - executable( +if add_languages('cpp') + test( 'cpp-compile-test', - 'cpp-compile-test.cpp', - wayland_server_protocol_h, - include_directories: src_inc + executable( + 'cpp-compile-test', + 'cpp-compile-test.cpp', + wayland_server_protocol_h, + include_directories: src_inc + ) ) -) +endif sed_path = find_program('sed').path() -- 2.31.1 ================================================ FILE: package/wayland/Config.in ================================================ config BR2_PACKAGE_WAYLAND bool "wayland" depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_TOOLCHAIN_HAS_THREADS 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 of the protocol. https://wayland.freedesktop.org/ comment "wayland needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/wayland/wayland.hash ================================================ # From https://lists.freedesktop.org/archives/wayland-devel/2021-January/041692.html sha256 baccd902300d354581cd5ad3cc49daa4921d55fb416a5883e218750fef166d15 wayland-1.19.0.tar.xz sha512 d8a86f5e23e4a88e7c84b82fdb51eb350419086afe462ecb2f4d5c3ba9290ede310cbbcffd60215219ddccf5bad4adec21a5ebfbef6577200f66ac7a1b64a5ef wayland-1.19.0.tar.xz # Locally calculated sha256 6eefcb023622a463168a5c20add95fd24a38c7482622a9254a23b99b7c153061 COPYING ================================================ FILE: package/wayland/wayland.mk ================================================ ################################################################################ # # wayland # ################################################################################ WAYLAND_VERSION = 1.19.0 WAYLAND_SITE = https://wayland.freedesktop.org/releases WAYLAND_SOURCE = wayland-$(WAYLAND_VERSION).tar.xz WAYLAND_LICENSE = MIT WAYLAND_LICENSE_FILES = COPYING WAYLAND_CPE_ID_VENDOR = wayland WAYLAND_INSTALL_STAGING = YES WAYLAND_DEPENDENCIES = host-pkgconf host-wayland expat libffi libxml2 HOST_WAYLAND_DEPENDENCIES = host-pkgconf host-expat host-libffi host-libxml2 WAYLAND_CONF_OPTS = -Dtests=false -Ddocumentation=false HOST_WAYLAND_CONF_OPTS = -Dtests=false -Ddocumentation=false # Remove the DTD from the target, it's not needed at runtime define WAYLAND_TARGET_CLEANUP rm -rf $(TARGET_DIR)/usr/share/wayland endef WAYLAND_POST_INSTALL_TARGET_HOOKS += WAYLAND_TARGET_CLEANUP $(eval $(meson-package)) $(eval $(host-meson-package)) ================================================ FILE: package/wayland-protocols/0001-meson.build-wayland-scanner-is-only-needed-for-tests.patch ================================================ From 80e97bd00bf6263845aa98b411507baba28be67e Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 19 Sep 2021 11:01:00 +0200 Subject: [PATCH] meson.build: wayland-scanner is only needed for tests wayland-scanner is only needed for tests so don't require it if tests are disabled Signed-off-by: Fabrice Fontaine [Retrieved from: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/commit/80e97bd00bf6263845aa98b411507baba28be67e] --- meson.build | 2 -- tests/meson.build | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 94b49e7..15dbc37 100644 --- a/meson.build +++ b/meson.build @@ -8,8 +8,6 @@ wayland_protocols_version = meson.project_version() fs = import('fs') -dep_scanner = dependency('wayland-scanner', native: true) - stable_protocols = [ 'presentation-time', 'viewporter', diff --git a/tests/meson.build b/tests/meson.build index 66337e7..74824ae 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -1,4 +1,5 @@ prog_scan_sh = find_program('scan.sh') +dep_scanner = dependency('wayland-scanner', native: true) prog_scanner = find_program(dep_scanner.get_pkgconfig_variable('wayland_scanner')) libwayland = [ -- GitLab ================================================ FILE: package/wayland-protocols/Config.in ================================================ 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/ ================================================ FILE: package/wayland-protocols/wayland-protocols.hash ================================================ # From https://lists.freedesktop.org/archives/wayland-devel/2021-September/041979.html md5 31a6c469718db37d2688109e548506e4 wayland-protocols-1.23.tar.xz sha1 8c4ebdce35953b1e2af458c139a432a308af6f50 wayland-protocols-1.23.tar.xz sha256 6c0af1915f96f615927a6270d025bd973ff1c58e521e4ca1fc9abfc914633f76 wayland-protocols-1.23.tar.xz sha256 f1a2b233e8a9a71c40f4aa885be08a0842ac85bb8588703c1dd7e6e6502e3124 COPYING ================================================ FILE: package/wayland-protocols/wayland-protocols.mk ================================================ ################################################################################ # # wayland-protocols # ################################################################################ WAYLAND_PROTOCOLS_VERSION = 1.23 WAYLAND_PROTOCOLS_SITE = https://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 WAYLAND_PROTOCOLS_CONF_OPTS = -Dtests=false $(eval $(meson-package)) ================================================ FILE: package/wayland-utils/Config.in ================================================ config BR2_PACKAGE_WAYLAND_UTILS bool "wayland-utils" depends on BR2_PACKAGE_WAYLAND # wayland-client, wayland-server select BR2_PACKAGE_WAYLAND_PROTOCOLS help Wayland utils (wayland-info). https://gitlab.freedesktop.org/ofourdan/wayland-utils ================================================ FILE: package/wayland-utils/wayland-utils.hash ================================================ # From https://lists.freedesktop.org/archives/wayland-devel/2020-July/041565.html md5 714875aefb10e7f683cde24e58d033ad wayland-utils-1.0.0.tar.xz sha1 b5b8d498a892866d56ffbe862039d7c97acbe7bc wayland-utils-1.0.0.tar.xz sha256 64fecc4c58e87ae9b302901abe10c2e8af69c7503c221a96ecd0700e0aa268c0 wayland-utils-1.0.0.tar.xz sha512 4c6f1822435b36b3acd361c0c54e56150e8a2697a9c4b2c20a149fcfaafe237e45807df3471884ddf594d89558001099e2d938e3f48988ba6950a0f1e3538db2 wayland-utils-1.0.0.tar.xz sha256 1eba39c11640014a5841dd3017e5245fc31f47e1cf43a3287a286dd6a8de8a1a COPYING ================================================ FILE: package/wayland-utils/wayland-utils.mk ================================================ ################################################################################ # # wayland-utils # ################################################################################ WAYLAND_UTILS_VERSION = 1.0.0 WAYLAND_UTILS_SITE = https://wayland.freedesktop.org/releases WAYLAND_UTILS_SOURCE = wayland-utils-$(WAYLAND_UTILS_VERSION).tar.xz WAYLAND_UTILS_LICENSE = MIT WAYLAND_UTILS_LICENSE_FILES = COPYING WAYLAND_UTILS_DEPENDENCIES = host-pkgconf wayland wayland-protocols $(eval $(meson-package)) ================================================ FILE: package/waylandpp/Config.in ================================================ config BR2_PACKAGE_WAYLANDPP bool "waylandpp" depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND depends on BR2_HOST_GCC_AT_LEAST_4_9 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_WAYLAND help Wayland C++ bindings https://github.com/NilsBrause/waylandpp comment "waylandpp needs an OpenGL-EGL/wayland backend, a toolchain w/ gcc >= 4.9, host gcc >= 4.9, C++ support" depends on BR2_PACKAGE_WAYLAND depends on !BR2_PACKAGE_HAS_LIBEGL_WAYLAND || \ !BR2_HOST_GCC_AT_LEAST_4_9 || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \ !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/waylandpp/waylandpp.hash ================================================ # Locally computed sha256 e7f486165d3568c3558b5c7099133aea4a285b82820eeafad329fc10271c654d waylandpp-0.2.8.tar.gz sha256 8ff91f682a38f8a603b173222a60e8dc71754a79a522a316fb6b76ce138c542c LICENSE sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 scanner/gpl-3.0.txt ================================================ FILE: package/waylandpp/waylandpp.mk ================================================ ################################################################################ # # waylandpp # ################################################################################ WAYLANDPP_VERSION = 0.2.8 WAYLANDPP_SITE = $(call github,NilsBrause,waylandpp,$(WAYLANDPP_VERSION)) WAYLANDPP_LICENSE = MIT, GPL-3.0+ (wayland_scanner) WAYLANDPP_LICENSE_FILES = LICENSE scanner/gpl-3.0.txt WAYLANDPP_INSTALL_STAGING = YES # pugixml is needed only to build the host version of wayland-scanner++ HOST_WAYLANDPP_DEPENDENCIES = host-pugixml host-pkgconf host-wayland WAYLANDPP_DEPENDENCIES = libegl host-pkgconf wayland host-waylandpp # host variant of wayland-scanner++ is needed for building the target # package HOST_WAYLANDPP_CONF_OPTS = \ -DBUILD_LIBRARIES=OFF \ -DBUILD_SCANNER=ON WAYLANDPP_CONF_OPTS = \ -DBUILD_LIBRARIES=ON \ -DBUILD_SCANNER=OFF \ -DWAYLAND_SCANNERPP=$(HOST_DIR)/bin/wayland-scanner++ $(eval $(cmake-package)) $(eval $(host-cmake-package)) ================================================ FILE: package/webkitgtk/Config.in ================================================ 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_aarch64 || BR2_aarch64_be 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 depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt comment "webkitgtk needs libgtk3 and a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 7, host gcc >= 4.9" depends on BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS depends on !BR2_BINFMT_FLAT depends on !BR2_PACKAGE_LIBGTK3 || !BR2_INSTALL_LIBSTDCPP || \ !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || \ !BR2_HOST_GCC_AT_LEAST_4_9 depends on BR2_USE_MMU config BR2_PACKAGE_WEBKITGTK bool "webkitgtk" depends on !BR2_STATIC_LIBS # wayland depends on !BR2_BINFMT_FLAT # icu depends on BR2_HOST_GCC_AT_LEAST_4_9 # icu, host-ruby depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # wayland, icu, libsoup depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 depends on BR2_USE_WCHAR # icu, libsoup 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_LIBGCRYPT select BR2_PACKAGE_LIBSECRET select BR2_PACKAGE_LIBSOUP select BR2_PACKAGE_LIBTASN1 select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_LIBXSLT select BR2_PACKAGE_OPENJPEG select BR2_PACKAGE_SQLITE select BR2_PACKAGE_WEBP select BR2_PACKAGE_WEBP_DEMUX select BR2_PACKAGE_WOFF2 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_SANDBOX bool "sandboxing support" depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS # libseccomp depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 # libseccomp select BR2_PACKAGE_BUBBLEWRAP # runtime select BR2_PACKAGE_XDG_DBUS_PROXY # runtime select BR2_PACKAGE_LIBSECCOMP help Enable sandboxing of the processes used for network operation, disk access, and Web content rendering. comment "sandboxing support needs a toolchain w/ headers >= 3.12" depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 config BR2_PACKAGE_WEBKITGTK_HTTPS bool "HTTPS support" depends on !BR2_STATIC_LIBS # libsoup -> glib-networking, gnutls select BR2_PACKAGE_CA_CERTIFICATES # runtime select BR2_PACKAGE_LIBSOUP_SSL help Enable HTTPS protocol support. comment "webkitgtk https support needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_WEBKITGTK_MULTIMEDIA bool "multimedia support" select BR2_PACKAGE_GSTREAMER1 select BR2_PACKAGE_GST1_PLUGINS_BAD select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX 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_AUTODETECT select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ISOMP4 select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTSP select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VPX select BR2_PACKAGE_GST1_LIBAV help This option pulls in all of the required dependencies to enable multimedia (video/audio) support. if BR2_PACKAGE_WEBKITGTK_MULTIMEDIA config BR2_PACKAGE_WEBKITGTK_USE_GSTREAMER_GL bool "use gstreamer-gl" default y depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM help Use the GStreamer GL elements for handling video content. This is recommended as it improves performance of video playback. In some target configurations incorrect rendering might be produced, and disabling this option may help. endif config BR2_PACKAGE_WEBKITGTK_WEBDRIVER bool "WebDriver support" help Enable support for WebDriver. This will build and install the WebKitWebDriver program in the target. endif ================================================ FILE: package/webkitgtk/webkitgtk.hash ================================================ # From https://webkitgtk.org/releases/webkitgtk-2.32.4.tar.xz.sums md5 51a167e5d03bacf30c5c588e6aa23143 webkitgtk-2.32.4.tar.xz sha1 f7255ffb488e727e9e250e0dae9f192266f50f01 webkitgtk-2.32.4.tar.xz sha256 00ce2d3f798d7bc5e9039d9059f0c3c974d51de38c8b716f00e94452a177d3fd webkitgtk-2.32.4.tar.xz # Hashes for license files: sha256 0b5d3a7cc325942567373b0ecd757d07c132e0ebd7c97bfc63f7e1a76094edb4 Source/WebCore/LICENSE-APPLE sha256 f2b3bd09663381deb99721109d22b47af1213bb43007a8b56a06c6375c8050ce Source/WebCore/LICENSE-LGPL-2.1 ================================================ FILE: package/webkitgtk/webkitgtk.mk ================================================ ################################################################################ # # webkitgtk # ################################################################################ WEBKITGTK_VERSION = 2.32.4 WEBKITGTK_SITE = https://www.webkitgtk.org/releases WEBKITGTK_SOURCE = webkitgtk-$(WEBKITGTK_VERSION).tar.xz WEBKITGTK_INSTALL_STAGING = YES WEBKITGTK_LICENSE = LGPL-2.1+, BSD-2-Clause WEBKITGTK_LICENSE_FILES = \ Source/WebCore/LICENSE-APPLE \ Source/WebCore/LICENSE-LGPL-2.1 WEBKITGTK_CPE_ID_VENDOR = webkitgtk WEBKITGTK_DEPENDENCIES = host-ruby host-python3 host-gperf \ enchant harfbuzz icu jpeg libgcrypt libgtk3 libsecret libsoup \ libtasn1 libxml2 libxslt openjpeg sqlite webp woff2 WEBKITGTK_CONF_OPTS = \ -DENABLE_API_TESTS=OFF \ -DENABLE_GAMEPAD=OFF \ -DENABLE_GEOLOCATION=OFF \ -DENABLE_GTKDOC=OFF \ -DENABLE_INTROSPECTION=OFF \ -DENABLE_MINIBROWSER=ON \ -DENABLE_SPELLCHECK=ON \ -DPORT=GTK \ -DSILENCE_CROSS_COMPILATION_NOTICES=ON \ -DUSE_LIBNOTIFY=OFF \ -DUSE_LIBHYPHEN=OFF \ -DUSE_OPENJPEG=ON \ -DUSE_WOFF2=ON \ -DUSE_WPE_RENDERER=OFF ifeq ($(BR2_PACKAGE_WEBKITGTK_SANDBOX),y) WEBKITGTK_CONF_OPTS += \ -DENABLE_BUBBLEWRAP_SANDBOX=ON \ -DBWRAP_EXECUTABLE=/usr/bin/bwrap \ -DDBUS_PROXY_EXECUTABLE=/usr/bin/xdg-dbus-proxy WEBKITGTK_DEPENDENCIES += libseccomp else WEBKITGTK_CONF_OPTS += -DENABLE_BUBBLEWRAP_SANDBOX=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 else WEBKITGTK_CONF_OPTS += \ -DENABLE_VIDEO=OFF \ -DENABLE_WEB_AUDIO=OFF endif ifeq ($(BR2_PACKAGE_WEBKITGTK_WEBDRIVER),y) WEBKITGTK_CONF_OPTS += -DENABLE_WEBDRIVER=ON else WEBKITGTK_CONF_OPTS += -DENABLE_WEBDRIVER=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_GRAPHICS_CONTEXT_GL=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_GRAPHICS_CONTEXT_GL=ON WEBKITGTK_DEPENDENCIES += libgles else # Disable general OpenGL (shading) if there's no GLESv2 WEBKITGTK_CONF_OPTS += \ -DENABLE_GLES2=OFF \ -DENABLE_GRAPHICS_CONTEXT_GL=OFF endif # We must explicitly state the wayland target ifeq ($(BR2_PACKAGE_LIBGTK3_WAYLAND),y) WEBKITGTK_CONF_OPTS += -DENABLE_WAYLAND_TARGET=ON endif endif ifeq ($(BR2_PACKAGE_WEBKITGTK_USE_GSTREAMER_GL),y) WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=ON else WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF endif ifeq ($(BR2_INIT_SYSTEMD),y) WEBKITGTK_CONF_OPTS += -DUSE_SYSTEMD=ON WEBKITGTK_DEPENDENCIES += systemd else WEBKITGTK_CONF_OPTS += -DUSE_SYSTEMD=OFF endif # JIT is not supported for MIPS r6, but the WebKit build system does not # have a check for these processors. The same goes for ARMv5 and ARMv6. # Disable JIT forcibly here and use the CLoop interpreter instead. # # Also, we have to disable the sampling profiler, which does NOT work # with ENABLE_C_LOOP. # # Upstream bugs: https://bugs.webkit.org/show_bug.cgi?id=191258 # https://bugs.webkit.org/show_bug.cgi?id=172765 # ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS_CPU_MIPS64R6),y) WEBKITGTK_CONF_OPTS += -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON -DENABLE_SAMPLING_PROFILER=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/webp/Config.in ================================================ config BR2_PACKAGE_WEBP bool "webp" help WebP is a new image format that provides lossless and lossy 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. config BR2_PACKAGE_WEBP_MUX bool "webpmux" help Mux is a part of WebPMux for creation and manipulation of an extended format WebP file, which can have features like color profile, metadata and animation. endif ================================================ FILE: package/webp/webp.hash ================================================ # Locally calculated sha256 808b98d2f5b84e9b27fdef6c5372dac769c3bda4502febbfa5031bd3c4d7d018 libwebp-1.2.1.tar.gz sha256 5aec868f669e384a22372a4e8a1a6cd7d44c64cd451f960ca69cc170d1e13acf COPYING ================================================ FILE: package/webp/webp.mk ================================================ ################################################################################ # # webp # ################################################################################ WEBP_VERSION = 1.2.1 WEBP_SOURCE = libwebp-$(WEBP_VERSION).tar.gz WEBP_SITE = http://downloads.webmproject.org/releases/webp WEBP_LICENSE = BSD-3-Clause WEBP_LICENSE_FILES = COPYING WEBP_CPE_ID_VENDOR = webmproject WEBP_CPE_ID_PRODUCT = libwebp WEBP_INSTALL_STAGING = YES WEBP_CONF_OPTS += \ --with-jpegincludedir=$(STAGING_DIR)/usr/include \ --with-jpeglibdir=$(STAGING_DIR)/usr/lib \ --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_WEBP_MUX),y) WEBP_CONF_OPTS += --enable-libwebpmux else WEBP_CONF_OPTS += --disable-libwebpmux endif ifeq ($(BR2_PACKAGE_GIFLIB),y) WEBP_DEPENDENCIES += giflib WEBP_CONF_OPTS += --enable-gif else WEBP_CONF_OPTS += --disable-gif endif ifeq ($(BR2_PACKAGE_LIBFREEGLUT),y) WEBP_DEPENDENCIES += libfreeglut WEBP_CONF_OPTS += --enable-gl else WEBP_CONF_OPTS += --disable-gl endif ifeq ($(BR2_PACKAGE_LIBPNG),y) WEBP_DEPENDENCIES += libpng WEBP_CONF_ENV += ac_cv_path_LIBPNG_CONFIG=$(STAGING_DIR)/usr/bin/libpng-config else WEBP_CONF_ENV += ac_cv_path_LIBPNG_CONFIG=/bin/false endif WEBP_DEPENDENCIES += $(if $(BR2_PACKAGE_JPEG),jpeg) WEBP_DEPENDENCIES += $(if $(BR2_PACKAGE_TIFF),tiff) $(eval $(autotools-package)) ================================================ FILE: package/webrtc-audio-processing/0001-Proper-detection-of-cxxabi.h-and-execinfo.h.patch ================================================ 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 ================================================ FILE: package/webrtc-audio-processing/Config.in ================================================ config BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS bool default y if BR2_aarch64 || BR2_arm || BR2_i386 || BR2_x86_64 config BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING bool "webrtc-audio-processing" depends on BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP 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++, NPTL, gcc >= 4.8" depends on BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/webrtc-audio-processing/webrtc-audio-processing.hash ================================================ # Locally calculated sha256 a0fdd938fd85272d67e81572c5a4d9e200a0c104753cb3c209ded175ce3c5dbf webrtc-audio-processing-0.3.1.tar.xz sha256 9b79539028e216e813e152d45f5c1ed5fdd0554426ad50270fb03134e7082dac COPYING ================================================ FILE: package/webrtc-audio-processing/webrtc-audio-processing.mk ================================================ ################################################################################ # # webrtc-audio-processing # ################################################################################ WEBRTC_AUDIO_PROCESSING_VERSION = 0.3.1 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-3-Clause WEBRTC_AUDIO_PROCESSING_LICENSE_FILES = COPYING WEBRTC_AUDIO_PROCESSING_DEPENDENCIES = host-pkgconf # 0001-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 endif $(eval $(autotools-package)) ================================================ FILE: package/websocketpp/Config.in ================================================ config BR2_PACKAGE_WEBSOCKETPP bool "websocketpp" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_INSTALL_LIBSTDCPP help WebSocket++ is a header only C++ library that implements RFC6455 The WebSocket Protocol. It allows integrating WebSocket client and server functionality into C++ programs. It uses interchangeable network transport modules including one based on C++ iostreams and one based on Boost Asio. http://www.zaphoyd.com/websocketpp comment "websocketpp needs a toolchain w/ C++ and gcc >= 4.8" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 ================================================ FILE: package/websocketpp/websocketpp.hash ================================================ # Locally Computed: sha256 6ce889d85ecdc2d8fa07408d6787e7352510750daa66b5ad44aacb47bea76755 websocketpp-0.8.2.tar.gz sha256 b31e597bc777d884a39663c11d0557a0af40780e1f451de11ea5103924a69667 COPYING ================================================ FILE: package/websocketpp/websocketpp.mk ================================================ ################################################################################ # # websocketpp # ################################################################################ WEBSOCKETPP_VERSION = 0.8.2 WEBSOCKETPP_SITE = $(call github,zaphoyd,websocketpp,$(WEBSOCKETPP_VERSION)) WEBSOCKETPP_LICENSE = BSD-3-Clause, MIT, Zlib WEBSOCKETPP_LICENSE_FILES = COPYING WEBSOCKETPP_CPE_ID_VENDOR = zaphoyd WEBSOCKETPP_INSTALL_STAGING = YES # Only installs headers WEBSOCKETPP_INSTALL_TARGET = NO $(eval $(cmake-package)) ================================================ FILE: package/weston/0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch ================================================ From b10c0e843dcb8148bbe869bb15261955b94ac98c Mon Sep 17 00:00:00 2001 From: Denys Dmytriyenko Date: Tue, 8 Sep 2020 19:37:42 -0400 Subject: [PATCH] tests: include fcntl.h for open(), O_RDWR, O_CLOEXEC and O_CREAT musl libc (unlike glibc) requires explicitly incuding fcntl.h to define open(), O_RDWR, O_CLOEXEC and O_CREAT. Otherwise the build fails with the errors: | ../weston-9.0.0/tests/weston-test-fixture-compositor.c: In function 'wait_for_lock': | ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:7: warning: implicit declaration of function 'open'; did you mean 'popen'? [-Wimplicit-function-declaration] | 135 | fd = open(lock_path, O_RDWR | O_CLOEXEC | O_CREAT, 00700); | | ^~~~ | | popen | ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:23: error: 'O_RDWR' undeclared (first use in this function) | 135 | fd = open(lock_path, O_RDWR | O_CLOEXEC | O_CREAT, 00700); | | ^~~~~~ | ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:23: note: each undeclared identifier is reported only once for each function it appears in | ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:32: error: 'O_CLOEXEC' undeclared (first use in this function) | 135 | fd = open(lock_path, O_RDWR | O_CLOEXEC | O_CREAT, 00700); | | ^~~~~~~~~ | ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:44: error: 'O_CREAT' undeclared (first use in this function) | 135 | fd = open(lock_path, O_RDWR | O_CLOEXEC | O_CREAT, 00700); | | ^~~~~~~ Signed-off-by: Denys Dmytriyenko Signed-off-by: James Hilliard [james.hilliard1@gmail.com: backport from upstream commit b10c0e843dcb8148bbe869bb15261955b94ac98c] --- tests/weston-test-fixture-compositor.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/weston-test-fixture-compositor.c b/tests/weston-test-fixture-compositor.c index 1c32959c..c1eb26c4 100644 --- a/tests/weston-test-fixture-compositor.c +++ b/tests/weston-test-fixture-compositor.c @@ -35,6 +35,7 @@ #include #include #include +#include #include "shared/helpers.h" #include "weston-test-fixture-compositor.h" -- 2.25.1 ================================================ FILE: package/weston/0002-libweston-backend-drm-might-need-EGL.patch ================================================ From 4b93b71067949cc5efabb9b3d59278a3f362b11c Mon Sep 17 00:00:00 2001 From: Heiko Thiery Date: Wed, 21 Oct 2020 13:33:25 +0200 Subject: [PATCH] libweston/backend/drm: might need EGL gbm-drm.c includes gl-renderer.h. When EGL is enabled, that in turns includes egl.h. As such, dependencies for drm should include EGL if it is available. This condition is modelled after a similar one in libweston/meson.build Reported-by: Gary Bisson Reported-by: Heiko Thiery Signed-off-by: Yann E. MORIN Cc: Refik Tuzakli Cc: Thomas Petazzoni Signed-off-by: Heiko Thiery --- This patch should be a proper fix for the issue discribed in the patch from Gary [1]. Since the MR on weston upstream [2] is not merged now I add this patch to have working weston with imx in buildroot. [1] https://patchwork.ozlabs.org/project/buildroot/patch/20200402130842.918696-3-gary.bisson@boundarydevices.com/ [2] https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/508 --- libweston/backend-drm/meson.build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libweston/backend-drm/meson.build b/libweston/backend-drm/meson.build index 484c2702..e3e5b976 100644 --- a/libweston/backend-drm/meson.build +++ b/libweston/backend-drm/meson.build @@ -53,6 +53,9 @@ if get_option('renderer-gl') config_h.set('HAVE_GBM_FD_IMPORT', '1') endif deps_drm += dep_gbm + if dep_egl.found() + deps_drm += dep_egl + endif srcs_drm += 'drm-gbm.c' config_h.set('BUILD_DRM_GBM', '1') endif -- 2.20.1 ================================================ FILE: package/weston/0003-pipewire-add-support-for-0.3-API.patch ================================================ From cc08737e3fd174ec3c4c208ea4f2a3a6a9e8af3e Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Mon, 6 Jul 2020 00:58:02 -0600 Subject: [PATCH] pipewire: add support for 0.3 API Fixes: #369 Signed-off-by: James Hilliard [james.hilliard1@gmail.com: backport from upstream commit 80b585f8d2a31e780b4de41fbd187a742bea7e1a] --- .gitlab-ci.yml | 2 +- .gitlab-ci/debian-install.sh | 16 ++++- pipewire/meson.build | 28 ++++++--- pipewire/pipewire-plugin.c | 118 ++++++++++++++++++++++++++++++++++- 4 files changed, 151 insertions(+), 13 deletions(-) diff --git a/pipewire/meson.build b/pipewire/meson.build index 3d3374b8..e30a0b62 100644 --- a/pipewire/meson.build +++ b/pipewire/meson.build @@ -5,17 +5,25 @@ if get_option('pipewire') error('Attempting to build the pipewire plugin without the required DRM backend. ' + user_hint) endif - depnames = [ - 'libpipewire-0.2', 'libspa-0.1' - ] deps_pipewire = [ dep_libweston_private ] - foreach depname : depnames - dep = dependency(depname, required: false) - if not dep.found() - error('Pipewire plugin requires @0@ which was not found. '.format(depname) + user_hint) - endif - deps_pipewire += dep - endforeach + + dep_libpipewire = dependency('libpipewire-0.3', required: false) + if not dep_libpipewire.found() + dep_libpipewire = dependency('libpipewire-0.2', required: false) + endif + if not dep_libpipewire.found() + error('Pipewire plugin requires libpipewire which was not found. ' + user_hint) + endif + deps_pipewire += dep_libpipewire + + dep_libspa = dependency('libspa-0.2', required: false) + if not dep_libspa.found() + dep_libspa = dependency('libspa-0.1', required: false) + endif + if not dep_libspa.found() + error('Pipewire plugin requires libspa which was not found. ' + user_hint) + endif + deps_pipewire += dep_libspa plugin_pipewire = shared_library( 'pipewire-plugin', diff --git a/pipewire/pipewire-plugin.c b/pipewire/pipewire-plugin.c index 6f892574..ce70ea63 100644 --- a/pipewire/pipewire-plugin.c +++ b/pipewire/pipewire-plugin.c @@ -34,20 +34,27 @@ #include #include +#include + #include #include #include -#include +#if PW_CHECK_VERSION(0, 2, 90) +#include +#include +#endif #define PROP_RANGE(min, max) 2, (min), (max) +#if !PW_CHECK_VERSION(0, 2, 90) struct type { struct spa_type_media_type media_type; struct spa_type_media_subtype media_subtype; struct spa_type_format_video format_video; struct spa_type_video_format video_format; }; +#endif struct weston_pipewire { struct weston_compositor *compositor; @@ -60,12 +67,19 @@ struct weston_pipewire { struct pw_loop *loop; struct wl_event_source *loop_source; +#if PW_CHECK_VERSION(0, 2, 90) + struct pw_context *context; +#endif struct pw_core *core; struct pw_type *t; +#if PW_CHECK_VERSION(0, 2, 90) + struct spa_hook core_listener; +#else struct type type; struct pw_remote *remote; struct spa_hook remote_listener; +#endif }; struct pipewire_output { @@ -100,6 +114,7 @@ struct pipewire_frame_data { struct wl_event_source *fence_sync_event_source; }; +#if !PW_CHECK_VERSION(0, 2, 90) static inline void init_type(struct type *type, struct spa_type_map *map) { spa_type_media_type_map(map, &type->media_type); @@ -107,6 +122,7 @@ static inline void init_type(struct type *type, struct spa_type_map *map) spa_type_format_video_map(map, &type->format_video); spa_type_video_format_map(map, &type->video_format); } +#endif static void pipewire_debug_impl(struct weston_pipewire *pipewire, @@ -141,6 +157,7 @@ pipewire_debug_impl(struct weston_pipewire *pipewire, free(logstr); } +#if !PW_CHECK_VERSION(0, 2, 90) static void pipewire_debug(struct weston_pipewire *pipewire, const char *fmt, ...) { @@ -150,6 +167,7 @@ pipewire_debug(struct weston_pipewire *pipewire, const char *fmt, ...) pipewire_debug_impl(pipewire, NULL, fmt, ap); va_end(ap); } +#endif static void pipewire_output_debug(struct pipewire_output *output, const char *fmt, ...) @@ -185,7 +203,9 @@ pipewire_output_handle_frame(struct pipewire_output *output, int fd, const struct weston_drm_virtual_output_api *api = output->pipewire->virtual_output_api; size_t size = output->output->height * stride; +#if !PW_CHECK_VERSION(0, 2, 90) struct pw_type *t = output->pipewire->t; +#endif struct pw_buffer *buffer; struct spa_buffer *spa_buffer; struct spa_meta_header *h; @@ -203,7 +223,12 @@ pipewire_output_handle_frame(struct pipewire_output *output, int fd, spa_buffer = buffer->buffer; +#if PW_CHECK_VERSION(0, 2, 90) + if ((h = spa_buffer_find_meta_data(spa_buffer, SPA_META_Header, + sizeof(struct spa_meta_header)))) { +#else if ((h = spa_buffer_find_meta(spa_buffer, t->meta.Header))) { +#endif h->pts = -1; h->flags = 0; h->seq = output->seq++; @@ -375,18 +400,40 @@ pipewire_set_dpms(struct weston_output *base_output, enum dpms_enum level) static int pipewire_output_connect(struct pipewire_output *output) { +#if !PW_CHECK_VERSION(0, 2, 90) struct weston_pipewire *pipewire = output->pipewire; struct type *type = &pipewire->type; +#endif uint8_t buffer[1024]; struct spa_pod_builder builder = SPA_POD_BUILDER_INIT(buffer, sizeof(buffer)); const struct spa_pod *params[1]; +#if !PW_CHECK_VERSION(0, 2, 90) struct pw_type *t = pipewire->t; +#endif int frame_rate = output->output->current_mode->refresh / 1000; int width = output->output->width; int height = output->output->height; int ret; +#if PW_CHECK_VERSION(0, 2, 90) + params[0] = spa_pod_builder_add_object(&builder, + SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat, + SPA_FORMAT_mediaType, SPA_POD_Id(SPA_MEDIA_TYPE_video), + SPA_FORMAT_mediaSubtype, SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw), + SPA_FORMAT_VIDEO_format, SPA_POD_Id(SPA_VIDEO_FORMAT_BGRx), + SPA_FORMAT_VIDEO_size, SPA_POD_Rectangle(&SPA_RECTANGLE(width, height)), + SPA_FORMAT_VIDEO_framerate, SPA_POD_Fraction(&SPA_FRACTION (0, 1)), + SPA_FORMAT_VIDEO_maxFramerate, + SPA_POD_CHOICE_RANGE_Fraction(&SPA_FRACTION(frame_rate, 1), + &SPA_FRACTION(1, 1), + &SPA_FRACTION(frame_rate, 1))); + + ret = pw_stream_connect(output->stream, PW_DIRECTION_OUTPUT, SPA_ID_INVALID, + (PW_STREAM_FLAG_DRIVER | + PW_STREAM_FLAG_MAP_BUFFERS), + params, 1); +#else params[0] = spa_pod_builder_object(&builder, t->param.idEnumFormat, t->spa_format, "I", type->media_type.video, @@ -406,6 +453,7 @@ pipewire_output_connect(struct pipewire_output *output) (PW_STREAM_FLAG_DRIVER | PW_STREAM_FLAG_MAP_BUFFERS), params, 1); +#endif if (ret != 0) { weston_log("Failed to connect pipewire stream: %s", spa_strerror(ret)); @@ -482,26 +530,42 @@ pipewire_output_stream_state_changed(void *data, enum pw_stream_state old, } static void +#if PW_CHECK_VERSION(0, 2, 90) +pipewire_output_stream_param_changed(void *data, uint32_t id, const struct spa_pod *format) +#else pipewire_output_stream_format_changed(void *data, const struct spa_pod *format) +#endif { struct pipewire_output *output = data; +#if !PW_CHECK_VERSION(0, 2, 90) struct weston_pipewire *pipewire = output->pipewire; +#endif uint8_t buffer[1024]; struct spa_pod_builder builder = SPA_POD_BUILDER_INIT(buffer, sizeof(buffer)); const struct spa_pod *params[2]; +#if !PW_CHECK_VERSION(0, 2, 90) struct pw_type *t = pipewire->t; +#endif int32_t width, height, stride, size; const int bpp = 4; if (!format) { pipewire_output_debug(output, "format = None"); +#if PW_CHECK_VERSION(0, 2, 90) + pw_stream_update_params(output->stream, NULL, 0); +#else pw_stream_finish_format(output->stream, 0, NULL, 0); +#endif return; } +#if PW_CHECK_VERSION(0, 2, 90) + spa_format_video_raw_parse(format, &output->video_format); +#else spa_format_video_raw_parse(format, &output->video_format, &pipewire->type.format_video); +#endif width = output->video_format.size.width; height = output->video_format.size.height; @@ -510,6 +574,21 @@ pipewire_output_stream_format_changed(void *data, const struct spa_pod *format) pipewire_output_debug(output, "format = %dx%d", width, height); +#if PW_CHECK_VERSION(0, 2, 90) + params[0] = spa_pod_builder_add_object(&builder, + SPA_TYPE_OBJECT_ParamBuffers, SPA_PARAM_Buffers, + SPA_PARAM_BUFFERS_size, SPA_POD_Int(size), + SPA_PARAM_BUFFERS_stride, SPA_POD_Int(stride), + SPA_PARAM_BUFFERS_buffers, SPA_POD_CHOICE_RANGE_Int(4, 2, 8), + SPA_PARAM_BUFFERS_align, SPA_POD_Int(16)); + + params[1] = spa_pod_builder_add_object(&builder, + SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, + SPA_PARAM_META_type, SPA_POD_Id(SPA_META_Header), + SPA_PARAM_META_size, SPA_POD_Int(sizeof(struct spa_meta_header))); + + pw_stream_update_params(output->stream, params, 2); +#else params[0] = spa_pod_builder_object(&builder, t->param.idBuffers, t->param_buffers.Buffers, ":", t->param_buffers.size, @@ -527,12 +606,17 @@ pipewire_output_stream_format_changed(void *data, const struct spa_pod *format) ":", t->param_meta.size, "i", sizeof(struct spa_meta_header)); pw_stream_finish_format(output->stream, 0, params, 2); +#endif } static const struct pw_stream_events stream_events = { PW_VERSION_STREAM_EVENTS, .state_changed = pipewire_output_stream_state_changed, +#if PW_CHECK_VERSION(0, 2, 90) + .param_changed = pipewire_output_stream_param_changed, +#else .format_changed = pipewire_output_stream_format_changed, +#endif }; static struct weston_output * @@ -560,7 +644,11 @@ pipewire_output_create(struct weston_compositor *c, char *name) if (!head) goto err; +#if PW_CHECK_VERSION(0, 2, 90) + output->stream = pw_stream_new(pipewire->core, name, NULL); +#else output->stream = pw_stream_new(pipewire->remote, name, NULL); +#endif if (!output->stream) { weston_log("Cannot initialize pipewire stream\n"); goto err; @@ -704,6 +792,14 @@ weston_pipewire_loop_handler(int fd, uint32_t mask, void *data) return 0; } +#if PW_CHECK_VERSION(0, 2, 90) +static void +weston_pipewire_error(void *data, uint32_t id, int seq, int res, + const char *error) +{ + weston_log("pipewire remote error: %s\n", error); +} +#else static void weston_pipewire_state_changed(void *data, enum pw_remote_state old, enum pw_remote_state state, const char *error) @@ -725,12 +821,20 @@ weston_pipewire_state_changed(void *data, enum pw_remote_state old, break; } } +#endif +#if PW_CHECK_VERSION(0, 2, 90) +static const struct pw_core_events core_events = { + PW_VERSION_CORE_EVENTS, + .error = weston_pipewire_error, +}; +#else static const struct pw_remote_events remote_events = { PW_VERSION_REMOTE_EVENTS, .state_changed = weston_pipewire_state_changed, }; +#endif static int weston_pipewire_init(struct weston_pipewire *pipewire) @@ -745,10 +849,19 @@ weston_pipewire_init(struct weston_pipewire *pipewire) pw_loop_enter(pipewire->loop); +#if PW_CHECK_VERSION(0, 2, 90) + pipewire->context = pw_context_new(pipewire->loop, NULL, 0); +#else pipewire->core = pw_core_new(pipewire->loop, NULL); pipewire->t = pw_core_get_type(pipewire->core); init_type(&pipewire->type, pipewire->t->map); +#endif +#if PW_CHECK_VERSION(0, 2, 90) + pw_core_add_listener(pipewire->core, + &pipewire->core_listener, + &core_events, pipewire); +#else pipewire->remote = pw_remote_new(pipewire->core, NULL, 0); pw_remote_add_listener(pipewire->remote, &pipewire->remote_listener, @@ -777,6 +890,7 @@ weston_pipewire_init(struct weston_pipewire *pipewire) goto err; } } +#endif loop = wl_display_get_event_loop(pipewire->compositor->wl_display); pipewire->loop_source = @@ -786,12 +900,14 @@ weston_pipewire_init(struct weston_pipewire *pipewire) pipewire); return 0; +#if !PW_CHECK_VERSION(0, 2, 90) err: if (pipewire->remote) pw_remote_destroy(pipewire->remote); pw_loop_leave(pipewire->loop); pw_loop_destroy(pipewire->loop); return -1; +#endif } static const struct weston_pipewire_api pipewire_api = { -- 2.25.1 ================================================ FILE: package/weston/0004-pipewire-fix-null-deref-in-0-3-API.patch ================================================ From a67393c353e0f25b142910a817be5a7754d436c3 Mon Sep 17 00:00:00 2001 From: Ambareesh Balaji Date: Sat, 5 Dec 2020 20:49:55 -0500 Subject: [PATCH] pipewire: fix null deref in 0.3 API Signed-off-by: Ambareesh Balaji [Retrieved from: https://gitlab.freedesktop.org/wayland/weston/-/commit/a67393c353e0f25b142910a817be5a7754d436c3] Signed-off-by: Fabrice Fontaine --- pipewire/pipewire-plugin.c | 1 + 1 file changed, 1 insertion(+) diff --git a/pipewire/pipewire-plugin.c b/pipewire/pipewire-plugin.c index ca5cbfec1..55705acfc 100644 --- a/pipewire/pipewire-plugin.c +++ b/pipewire/pipewire-plugin.c @@ -856,6 +856,7 @@ weston_pipewire_init(struct weston_pipewire *pipewire) #if PW_CHECK_VERSION(0, 2, 90) pipewire->context = pw_context_new(pipewire->loop, NULL, 0); + pipewire->core = pw_context_connect(pipewire->context, NULL, 0); #else pipewire->core = pw_core_new(pipewire->loop, NULL); pipewire->t = pw_core_get_type(pipewire->core); -- GitLab ================================================ FILE: package/weston/Config.in ================================================ comment "weston needs udev and a toolchain w/ locale, threads, dynamic library, headers >= 3.0" depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 || BR2_STATIC_LIBS || \ !BR2_ENABLE_LOCALE config BR2_PACKAGE_WESTON bool "weston" depends on BR2_PACKAGE_HAS_UDEV depends on !BR2_STATIC_LIBS # wayland depends on BR2_TOOLCHAIN_HAS_THREADS # wayland depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 select BR2_PACKAGE_WAYLAND select BR2_PACKAGE_WAYLAND_PROTOCOLS select BR2_PACKAGE_LIBXKBCOMMON select BR2_PACKAGE_CAIRO select BR2_PACKAGE_CAIRO_PNG select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBINPUT select BR2_PACKAGE_LIBDRM # Runtime dependency select BR2_PACKAGE_XKEYBOARD_CONFIG select BR2_PACKAGE_WESTON_SHELL_DESKTOP if !BR2_PACKAGE_WESTON_HAS_SHELL help Weston is the reference implementation of a Wayland compositor, and a useful compositor in its own right. Weston has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11. http://wayland.freedesktop.org/ if BR2_PACKAGE_WESTON choice prompt "default compositor" config BR2_PACKAGE_WESTON_DEFAULT_FBDEV bool "fbdev" select BR2_PACKAGE_WESTON_FBDEV config BR2_PACKAGE_WESTON_DEFAULT_DRM bool "drm" depends on BR2_PACKAGE_MESA3D_OPENGL_EGL || BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL select BR2_PACKAGE_WESTON_DRM comment "drm backend needs mesa3d w/ EGL driver" depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL && !BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL config BR2_PACKAGE_WESTON_DEFAULT_X11 bool "X11" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_WESTON_X11 comment "X11 backend needs X.org" depends on !BR2_PACKAGE_XORG7 endchoice config BR2_PACKAGE_WESTON_DEFAULT_COMPOSITOR string default "fbdev" if BR2_PACKAGE_WESTON_DEFAULT_FBDEV default "drm" if BR2_PACKAGE_WESTON_DEFAULT_DRM default "x11" if BR2_PACKAGE_WESTON_DEFAULT_X11 config BR2_PACKAGE_WESTON_DRM bool "DRM compositor" depends on BR2_PACKAGE_MESA3D_OPENGL_EGL || BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL # Uses libgbm from mesa3d comment "DRM compositor needs an OpenGL EGL backend provided by mesa3d" depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL && !BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL config BR2_PACKAGE_WESTON_FBDEV bool "fbdev compositor" # FreeRDP needs threads and !static, already the case for weston config BR2_PACKAGE_WESTON_RDP bool "RDP compositor" depends on BR2_USE_MMU # freerdp, libglib2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_WCHAR # freerdp depends on BR2_INSTALL_LIBSTDCPP # freerdp select BR2_PACKAGE_FREERDP help This enables the RDP backend, which allows accessing weston through the network with any RDP-compliant client. Please note that one must pass those options to weston for RDP to be functional: --rdp-tls-cert=/path/to/server.crt --rdp-tls-key=/path/to/server.key By default, Buildroot installs such files in /etc/freerdp/server/ so you may want to change them in a post-build script or a rootfs overlay. comment "RDP compositor needs a toolchain w/ wchar, C++" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_WESTON_X11 bool "X11 compositor" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_LIBXCB select BR2_PACKAGE_XLIB_LIBX11 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 # Weston needs at least one shell; this can be one of the bundled ones, # below, of from a third-party package, which should then select this. config BR2_PACKAGE_WESTON_HAS_SHELL bool config BR2_PACKAGE_WESTON_SHELL_DESKTOP bool "desktop shell" default y config BR2_PACKAGE_WESTON_SHELL_FULLSCREEN bool "fullscreen shell" default y select BR2_PACKAGE_WESTON_HAS_SHELL config BR2_PACKAGE_WESTON_SHELL_IVI bool "ivi shell" default y select BR2_PACKAGE_WESTON_HAS_SHELL config BR2_PACKAGE_WESTON_SHELL_KIOSK bool "kiosk shell" default y select BR2_PACKAGE_WESTON_HAS_SHELL config BR2_PACKAGE_WESTON_DEMO_CLIENTS bool "demo clients" depends on BR2_USE_MMU # pango depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango depends on BR2_INSTALL_LIBSTDCPP # pango depends on BR2_TOOLCHAIN_HAS_THREADS # pango depends on BR2_USE_WCHAR # pango depends on BR2_PACKAGE_HAS_LIBGLES depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND select BR2_PACKAGE_PANGO help This enables the installation of Weston's demo clients. comment "demo clients needs an OpenGL ES provider, an OpenEGL-capable Wayland backend and a toolchain w/ wchar, threads, C++" 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_PACKAGE_HAS_LIBGLES || \ !BR2_PACKAGE_HAS_LIBEGL_WAYLAND endif ================================================ FILE: package/weston/weston.hash ================================================ # From https://lists.freedesktop.org/archives/wayland-devel/2020-September/041595.html md5 b406da0fe9139fd39653238fde22a6cf weston-9.0.0.tar.xz sha1 90b9540a0bd6d6f7a465817f1c696d4d393183c9 weston-9.0.0.tar.xz sha256 5cf5d6ce192e0eb15c1fc861a436bf21b5bb3b91dbdabbdebe83e1f83aa098fe weston-9.0.0.tar.xz sha512 ccc263f8279b7b23e5c593b4a8a023de2c3dc178b1b8d6593599171770bcfe97608de9fcb77aa1cab39255451d289d323e51c317dae190c7641282e085b84f90 weston-9.0.0.tar.xz sha256 fdb65868f65d0fbdb05c2d3b779e10ce9969fa0c4b9262ba4f260e87086ab860 COPYING ================================================ FILE: package/weston/weston.mk ================================================ ################################################################################ # # weston # ################################################################################ WESTON_VERSION = 9.0.0 WESTON_SITE = https://wayland.freedesktop.org/releases WESTON_SOURCE = weston-$(WESTON_VERSION).tar.xz WESTON_LICENSE = MIT WESTON_LICENSE_FILES = COPYING WESTON_CPE_ID_VENDOR = wayland WESTON_DEPENDENCIES = host-pkgconf wayland wayland-protocols \ libxkbcommon pixman libpng jpeg udev cairo libinput libdrm WESTON_CONF_OPTS = \ -Dbackend-headless=false \ -Dcolor-management-colord=false \ -Dremoting=false # Uses VIDIOC_EXPBUF, only available from 3.8+ ifeq ($(BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8),y) WESTON_CONF_OPTS += -Dsimple-clients=dmabuf-v4l else WESTON_CONF_OPTS += -Dsimple-clients= endif ifeq ($(BR2_PACKAGE_DBUS)$(BR2_PACKAGE_SYSTEMD),yy) WESTON_CONF_OPTS += -Dlauncher-logind=true WESTON_DEPENDENCIES += dbus systemd else WESTON_CONF_OPTS += -Dlauncher-logind=false endif ifeq ($(BR2_PACKAGE_WEBP),y) WESTON_CONF_OPTS += -Dimage-webp=true WESTON_DEPENDENCIES += webp else WESTON_CONF_OPTS += -Dimage-webp=false 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 += -Dweston-launch=true WESTON_DEPENDENCIES += linux-pam else WESTON_CONF_OPTS += -Dweston-launch=false endif ifeq ($(BR2_PACKAGE_HAS_LIBEGL_WAYLAND)$(BR2_PACKAGE_HAS_LIBGLES),yy) WESTON_CONF_OPTS += -Drenderer-gl=true WESTON_DEPENDENCIES += libegl libgles ifeq ($(BR2_PACKAGE_PIPEWIRE)$(BR2_PACKAGE_WESTON_DRM),yy) WESTON_CONF_OPTS += -Dpipewire=true WESTON_DEPENDENCIES += pipewire else WESTON_CONF_OPTS += -Dpipewire=false endif else WESTON_CONF_OPTS += \ -Drenderer-gl=false \ -Dpipewire=false endif ifeq ($(BR2_PACKAGE_WESTON_RDP),y) WESTON_DEPENDENCIES += freerdp WESTON_CONF_OPTS += -Dbackend-rdp=true else WESTON_CONF_OPTS += -Dbackend-rdp=false endif ifeq ($(BR2_PACKAGE_WESTON_FBDEV),y) WESTON_CONF_OPTS += -Dbackend-fbdev=true else WESTON_CONF_OPTS += -Dbackend-fbdev=false endif ifeq ($(BR2_PACKAGE_WESTON_DRM),y) WESTON_CONF_OPTS += -Dbackend-drm=true else WESTON_CONF_OPTS += -Dbackend-drm=false endif ifeq ($(BR2_PACKAGE_WESTON_X11),y) WESTON_CONF_OPTS += -Dbackend-x11=true WESTON_DEPENDENCIES += libxcb xlib_libX11 else WESTON_CONF_OPTS += -Dbackend-x11=false endif # We're guaranteed to have at least one backend WESTON_CONF_OPTS += -Dbackend-default=$(call qstrip,$(BR2_PACKAGE_WESTON_DEFAULT_COMPOSITOR)) ifeq ($(BR2_PACKAGE_WESTON_XWAYLAND),y) WESTON_CONF_OPTS += -Dxwayland=true WESTON_DEPENDENCIES += cairo libepoxy libxcb xlib_libX11 xlib_libXcursor else WESTON_CONF_OPTS += -Dxwayland=false endif ifeq ($(BR2_PACKAGE_LIBVA),y) WESTON_CONF_OPTS += -Dbackend-drm-screencast-vaapi=true WESTON_DEPENDENCIES += libva else WESTON_CONF_OPTS += -Dbackend-drm-screencast-vaapi=false endif ifeq ($(BR2_PACKAGE_LCMS2),y) WESTON_CONF_OPTS += -Dcolor-management-lcms=true WESTON_DEPENDENCIES += lcms2 else WESTON_CONF_OPTS += -Dcolor-management-lcms=false endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) WESTON_CONF_OPTS += -Dsystemd=true WESTON_DEPENDENCIES += systemd else WESTON_CONF_OPTS += -Dsystemd=false endif ifeq ($(BR2_PACKAGE_LIBXML2),y) WESTON_CONF_OPTS += -Dtest-junit-xml=true WESTON_DEPENDENCIES += libxml2 else WESTON_CONF_OPTS += -Dtest-junit-xml=false endif ifeq ($(BR2_PACKAGE_WESTON_SHELL_DESKTOP),y) WESTON_CONF_OPTS += -Dshell-desktop=true else WESTON_CONF_OPTS += -Dshell-desktop=false endif ifeq ($(BR2_PACKAGE_WESTON_SHELL_FULLSCREEN),y) WESTON_CONF_OPTS += -Dshell-fullscreen=true else WESTON_CONF_OPTS += -Dshell-fullscreen=false endif ifeq ($(BR2_PACKAGE_WESTON_SHELL_IVI),y) WESTON_CONF_OPTS += -Dshell-ivi=true else WESTON_CONF_OPTS += -Dshell-ivi=false endif ifeq ($(BR2_PACKAGE_WESTON_SHELL_KIOSK),y) WESTON_CONF_OPTS += -Dshell-kiosk=true else WESTON_CONF_OPTS += -Dshell-kiosk=false endif ifeq ($(BR2_PACKAGE_WESTON_DEMO_CLIENTS),y) WESTON_CONF_OPTS += -Ddemo-clients=true WESTON_DEPENDENCIES += pango else WESTON_CONF_OPTS += -Ddemo-clients=false endif $(eval $(meson-package)) ================================================ FILE: package/wf111/Config.in ================================================ config BR2_PACKAGE_WF111 bool "wf111" depends on BR2_LINUX_KERNEL depends on BR2_ARM_CPU_ARMV5 || BR2_ARM_CPU_ARMV7A || BR2_i386 # Binary tools are distributed alongside the driver, and are # dynamically linked against the glibc. depends on BR2_TOOLCHAIN_USES_GLIBC help Silicon Labs WF111 WiFi driver and utilities. Warning: CONFIG_WIRELESS_EXT and CONFIG_WEXT_PRIV must be selected in the Linux kernel configuration. These are blind options (i.e. not selectable directly) so they cannot be enabled by a change in linux/linux.mk. There are two choices to enable these options: - By making them non blind, with a "WF111 support" configuration entry that selects them, for example. - By enabling another random WiFi driver that select them. https://www.silabs.com/wireless/wi-fi/bluegiga-legacy-modules/device.wf111 comment "wf111 needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL depends on BR2_ARM_CPU_ARMV5 || BR2_ARM_CPU_ARMV7A || BR2_i386 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 ================================================ FILE: package/wf111/wf111.hash ================================================ # Locally calculated sha256 33de265d28702ce32bb292f29a43e9e946382a1e31f1e4feae0f4753cf18b4f4 wf111-linux-driver_5.2.2-r4_armv7-a.tar.gz sha256 fbe86a30e4025b9f510feb4cb8f846aca82f8f3e8f6c8a28a74baf45c87f6e96 wf111-linux-driver_5.2.2-r4_armv5te.tar.gz sha256 37983d73f60bab9768eb02a89695448f27cd1964e23cf462e76657344a9c67ac wf111-linux-driver-5-2-2-r3-x86.tar.gz ================================================ FILE: package/wf111/wf111.mk ================================================ ################################################################################ # # wf111 # ################################################################################ ifeq ($(BR2_ARM_CPU_ARMV7A)$(BR2_ARM_CPU_ARMV5),y) WF111_VERSION = 5.2.2-r4 else WF111_VERSION = 5-2-2-r3 endif WF111_SITE = https://www.silabs.com/documents/login/software WF111_DEPENDENCIES = linux ifeq ($(BR2_ARM_CPU_ARMV7A),y) WF111_SOURCE = wf111-linux-driver_$(WF111_VERSION)_armv7-a.tar.gz else ifeq ($(BR2_ARM_CPU_ARMV5),y) WF111_SOURCE = wf111-linux-driver_$(WF111_VERSION)_armv5te.tar.gz else ifeq ($(BR2_i386),y) WF111_SOURCE = wf111-linux-driver-$(WF111_VERSION)-x86.tar.gz endif # 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 $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) PWD=$(@D) \ $(LINUX_MAKE_FLAGS) KDIR=$(LINUX_DIR) \ OUTPUT=$(TARGET_DIR) install_static endef $(eval $(generic-package)) ================================================ FILE: package/wget/0001-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch ================================================ From a0594387565e1e6b4a8a8ba04ad13b135cc1f0b5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 1 Apr 2021 07:49:46 +0200 Subject: [PATCH] lib/getrandom.c: fix build with uclibc < 1.0.35 Fix the following build failure with uclibc < 1.0.35 which is raised since the addition of getrandom module in https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=682cc4e678aceff32dea2a84b6e5147bdf5a20a7: In file included from ./sys/random.h:40, from getrandom.c:22: /home/fabrice/buildroot/output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:35: error: unknown type name 'size_t' 27 | extern int getrandom(void *__buf, size_t count, unsigned int flags) | ^~~~~~ /home/fabrice/buildroot/output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:8:1: note: 'size_t' is defined in header ''; did you forget to '#include '? 7 | #include +++ |+#include 8 | This patch is not upstreamable as it is only a workaround for uclibc < 1.0.35, upstream uclibc has been patched with https://github.com/wbx-github/uclibc-ng/commit/00972c02c2b6e0a95d5def4a71bdfb188e091782 Fixes: - http://autobuild.buildroot.org/results/d507f8d8ae4dd6aac1e83b7cc81017caf0d2c30e Signed-off-by: Fabrice Fontaine --- lib/getrandom.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/getrandom.c b/lib/getrandom.c index 41212fb32..0ad3f9648 100644 --- a/lib/getrandom.c +++ b/lib/getrandom.c @@ -19,6 +19,7 @@ #include +#include #include #include -- 2.30.2 ================================================ FILE: package/wget/Config.in ================================================ config BR2_PACKAGE_WGET bool "wget" # fork() depends on BR2_USE_MMU depends on BR2_USE_WCHAR depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 if BR2_PACKAGE_LIBOPENSSL help Network utility to retrieve files from http, https and ftp. http://www.gnu.org/software/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 ================================================ FILE: package/wget/wget.hash ================================================ # Locally calculated after checking pgp signature # https://ftp.gnu.org/gnu/wget/wget-1.21.2.tar.lz.sig # with key 6B98F637D879C5236E277C5C64FF90AAE8C70AF9 sha256 1727a330a86acacb3e57615ce268f5f29978bf7adec4abe6a30d370207bc91b3 wget-1.21.2.tar.lz # Locally calculated sha256 e79e9c8a0c85d735ff98185918ec94ed7d175efc377012787aebcf3b80f0d90b COPYING ================================================ FILE: package/wget/wget.mk ================================================ ################################################################################ # # wget # ################################################################################ WGET_VERSION = 1.21.2 WGET_SOURCE = wget-$(WGET_VERSION).tar.lz WGET_SITE = $(BR2_GNU_MIRROR)/wget WGET_DEPENDENCIES = host-pkgconf WGET_LICENSE = GPL-3.0+ WGET_LICENSE_FILES = COPYING WGET_CPE_ID_VENDOR = gnu ifeq ($(BR2_PACKAGE_GNUTLS),y) WGET_CONF_OPTS += --with-ssl=gnutls WGET_DEPENDENCIES += gnutls else ifeq ($(BR2_PACKAGE_OPENSSL),y) WGET_CONF_OPTS += --with-ssl=openssl WGET_DEPENDENCIES += openssl else WGET_CONF_OPTS += --without-ssl endif ifeq ($(BR2_PACKAGE_LIBICONV),y) WGET_DEPENDENCIES += libiconv endif ifeq ($(BR2_PACKAGE_LIBIDN2),y) WGET_CONF_OPTS += --with-libidn WGET_DEPENDENCIES += libidn2 else WGET_CONF_OPTS += --without-libidn endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y) WGET_DEPENDENCIES += util-linux endif ifeq ($(BR2_PACKAGE_ZLIB),y) WGET_CONF_OPTS += --with-zlib WGET_DEPENDENCIES += zlib else WGET_CONF_OPTS += --without-zlib endif ifeq ($(BR2_PACKAGE_PCRE2),y) WGET_CONF_OPTS += --disable-pcre --enable-pcre2 WGET_DEPENDENCIES += pcre2 else ifeq ($(BR2_PACKAGE_PCRE),y) WGET_CONF_OPTS += --enable-pcre --disable-pcre2 WGET_DEPENDENCIES += pcre else WGET_CONF_OPTS += --disable-pcre --disable-pcre2 endif $(eval $(autotools-package)) ================================================ FILE: package/whetstone/Config.in ================================================ config BR2_PACKAGE_WHETSTONE bool "whetstone" help C Converted Whetstone Double Precision Benchmark http://www.netlib.org/benchmark/ ================================================ FILE: package/whetstone/whetstone.hash ================================================ # Locally calculated sha256 333e4ceca042c146f63eec605573d16ae8b07166cbc44a17bec1ea97c6f1efbf whetstone.c ================================================ FILE: package/whetstone/whetstone.mk ================================================ ################################################################################ # # whetstone # ################################################################################ WHETSTONE_VERSION = 1.2 WHETSTONE_SOURCE = whetstone.c WHETSTONE_SITE = http://www.netlib.org/benchmark define WHETSTONE_EXTRACT_CMDS cp $(WHETSTONE_DL_DIR)/$($(PKG)_SOURCE) $(@D)/ endef define WHETSTONE_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) LDLIBS="-lm" -C $(@D) whetstone endef define WHETSTONE_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/whetstone $(TARGET_DIR)/usr/bin/whetstone endef $(eval $(generic-package)) ================================================ FILE: package/which/Config.in ================================================ config BR2_PACKAGE_WHICH bool "which" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help The standard 'which' utility. http://carlowood.github.io/which/index.html ================================================ FILE: package/which/which.hash ================================================ # Locally calculated after checking pgp signature sha256 f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad which-2.21.tar.gz # Locally computed sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/which/which.mk ================================================ ################################################################################ # # which # ################################################################################ WHICH_VERSION = 2.21 WHICH_SITE = $(BR2_GNU_MIRROR)/which WHICH_LICENSE = GPL-3.0+ WHICH_LICENSE_FILES = COPYING $(eval $(autotools-package)) ================================================ FILE: package/whois/Config.in ================================================ config BR2_PACKAGE_WHOIS bool "whois" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Improved whois client. https://github.com/rfc1036/whois ================================================ FILE: package/whois/whois.hash ================================================ # From http://snapshot.debian.org/archive/debian/20210606T204545Z/pool/main/w/whois/whois_5.5.10.dsc sha256 2391037b079695d0e9fd3c85ab021809a539cf093d25b6c51ca65019a54158dd whois_5.5.10.tar.xz # Hash for license file: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/whois/whois.mk ================================================ ################################################################################ # # whois # ################################################################################ WHOIS_VERSION = 5.5.10 WHOIS_SITE = http://snapshot.debian.org/archive/debian/20210606T204545Z/pool/main/w/whois WHOIS_SOURCE = whois_$(WHOIS_VERSION).tar.xz WHOIS_DEPENDENCIES = \ host-pkgconf \ $(if $(BR2_PACKAGE_LIBIDN2),libidn2) \ $(TARGET_NLS_DEPENDENCIES) WHOIS_MAKE_ENV = $(TARGET_MAKE_ENV) WHOIS_MAKE_OPTS = CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \ LIBS="$(WHOIS_EXTRA_LIBS)" WHOIS_LICENSE = GPL-2.0+ WHOIS_LICENSE_FILES = COPYING WHOIS_EXTRA_LIBS = $(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_LIBICONV),y) WHOIS_DEPENDENCIES += libiconv WHOIS_EXTRA_LIBS += -liconv WHOIS_MAKE_ENV += HAVE_ICONV=1 endif ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) WHOIS_BUILD_TARGETS = WHOIS_INSTALL_TARGETS = install else WHOIS_BUILD_TARGETS = Makefile.depend whois mkpasswd WHOIS_INSTALL_TARGETS = install-whois install-mkpasswd endif define WHOIS_BUILD_CMDS $(WHOIS_MAKE_ENV) $(MAKE) $(WHOIS_MAKE_OPTS) \ $(WHOIS_BUILD_TARGETS) -C $(@D) endef define WHOIS_INSTALL_TARGET_CMDS $(WHOIS_MAKE_ENV) $(MAKE) $(WHOIS_MAKE_OPTS) \ BASEDIR="$(TARGET_DIR)" $(WHOIS_INSTALL_TARGETS) -C $(@D) endef $(eval $(generic-package)) ================================================ FILE: package/wilc1000-firmware/Config.in ================================================ config BR2_PACKAGE_WILC1000_FIRMWARE bool "wilc1000-firmware" help Firmware for Atmel Wilc1000 wireless device https://github.com/linux4sc/wireless-firmware.git ================================================ FILE: package/wilc1000-firmware/wilc1000-firmware.hash ================================================ # Locally calculated sha256 a2e7a327dd545ba2051946f7613005cbde88fdd952afb8eecdd1dacda7e767d2 v14.1_Firmware.zip ================================================ FILE: package/wilc1000-firmware/wilc1000-firmware.mk ================================================ ################################################################################ # # 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) $(WILC1000_FIRMWARE_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)) ================================================ FILE: package/wilink-bt-firmware/Config.in ================================================ config BR2_PACKAGE_WILINK_BT_FIRMWARE bool "wilink-bt-firmware" help Texas Instruments Wilink7 and Wilink8 (wl12xx/wl18xx) UART attached Bluetooth firmware. https://github.com/TI-ECS/bt-firmware ================================================ FILE: package/wilink-bt-firmware/wilink-bt-firmware.hash ================================================ # Locally calculated sha256 209e1a46a945e7d4d031e22fb7bd1e3fc96fa3b99d069051ce257c5e2e0843f4 wilink-bt-firmware-43fca73c6a98c63fcb98f82af5bf83761778e005-br1.tar.gz sha256 21fd99ce784dc33b39ec0b4a383a9a9b8dafea261d73ad4548683c4eecd87f37 LICENSE ================================================ FILE: package/wilink-bt-firmware/wilink-bt-firmware.mk ================================================ ################################################################################ # # wilink-bt-firmware # ################################################################################ WILINK_BT_FIRMWARE_VERSION = 43fca73c6a98c63fcb98f82af5bf83761778e005 WILINK_BT_FIRMWARE_SITE = git://git.ti.com/ti-bt/service-packs.git WILINK_BT_FIRMWARE_SITE_METHOD = git WILINK_BT_FIRMWARE_LICENSE = PROPRIETARY WILINK_BT_FIRMWARE_LICENSE_FILES = LICENSE define WILINK_BT_FIRMWARE_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/lib/firmware/ti-connectivity cp $(@D)/initscripts/TIInit_*.bts $(TARGET_DIR)/lib/firmware/ti-connectivity endef $(eval $(generic-package)) ================================================ FILE: package/wine/Config.in ================================================ config BR2_PACKAGE_WINE_ARCH_SUPPORTS bool default y # Wine only builds on certain architectures depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" || \ BR2_HOSTARCH = "powerpc" || BR2_HOSTARCH = "arm" || \ BR2_HOSTARCH = "aarch64" # Wine has much CPU specific code and mostly makes sense on x86 depends on BR2_i386 config BR2_PACKAGE_WINE bool "wine" depends on BR2_PACKAGE_WINE_ARCH_SUPPORTS # Wine unconditionally builds shared libraries depends on !BR2_STATIC_LIBS help Wine is a compatibility layer capable of running Windows applications on Linux. Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods. http://www.winehq.org comment "wine needs a toolchain w/ dynamic library" depends on BR2_PACKAGE_WINE_ARCH_SUPPORTS depends on BR2_STATIC_LIBS ================================================ FILE: package/wine/wine.hash ================================================ # Locally calculated after checking pgp signature sha256 b493065f2f83ee429c62e2ec58698a3cf63ef78722e1b20765823152e8582c56 wine-6.0.tar.xz # Locally calculated sha256 e237fa56668030e928551ddd60f05df5fe957f75eab874bbd017e085ed722e7c COPYING.LIB sha256 111398f1be25b1ae1f124512fe61569e6b4555408e2feb9bc82f9fe57d39b302 LICENSE ================================================ FILE: package/wine/wine.mk ================================================ ################################################################################ # # wine # ################################################################################ WINE_VERSION = 6.0 WINE_SOURCE = wine-$(WINE_VERSION).tar.xz WINE_SITE = https://dl.winehq.org/wine/source/6.0 WINE_LICENSE = LGPL-2.1+ WINE_LICENSE_FILES = COPYING.LIB LICENSE WINE_CPE_ID_VENDOR = winehq WINE_SELINUX_MODULES = wine WINE_DEPENDENCIES = host-bison host-flex host-wine HOST_WINE_DEPENDENCIES = host-bison host-flex # Wine needs its own directory structure and tools for cross compiling WINE_CONF_OPTS = \ --with-wine-tools=../host-wine-$(WINE_VERSION) \ --disable-tests \ --disable-win64 \ --without-capi \ --without-coreaudio \ --without-faudio \ --without-gettext \ --without-gettextpo \ --without-gphoto \ --without-gsm \ --without-hal \ --without-mingw \ --without-opencl \ --without-oss \ --without-vkd3d \ --without-vulkan # Wine uses a wrapper around gcc, and uses the value of --host to # construct the filename of the gcc to call. But for external # toolchains, the GNU_TARGET_NAME tuple that we construct from our # internal variables may differ from the actual gcc prefix for the # external toolchains. So, we have to override whatever the gcc # wrapper believes what the real gcc is named, and force the tuple of # the external toolchain, not the one we compute in GNU_TARGET_NAME. ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y) WINE_CONF_OPTS += TARGETFLAGS="-b $(TOOLCHAIN_EXTERNAL_PREFIX)" endif ifeq ($(BR2_PACKAGE_ALSA_LIB)$(BR2_PACKAGE_ALSA_LIB_SEQ)$(BR2_PACKAGE_ALSA_LIB_RAWMIDI),yyy) WINE_CONF_OPTS += --with-alsa WINE_DEPENDENCIES += alsa-lib else WINE_CONF_OPTS += --without-alsa endif ifeq ($(BR2_PACKAGE_CUPS),y) WINE_CONF_OPTS += --with-cups WINE_DEPENDENCIES += cups WINE_CONF_ENV += CUPS_CONFIG=$(STAGING_DIR)/usr/bin/cups-config else WINE_CONF_OPTS += --without-cups endif ifeq ($(BR2_PACKAGE_DBUS),y) WINE_CONF_OPTS += --with-dbus WINE_DEPENDENCIES += dbus else WINE_CONF_OPTS += --without-dbus endif ifeq ($(BR2_PACKAGE_FONTCONFIG),y) WINE_CONF_OPTS += --with-fontconfig WINE_DEPENDENCIES += fontconfig else WINE_CONF_OPTS += --without-fontconfig endif # To support freetype in wine we also need freetype in host-wine for the cross compiling tools ifeq ($(BR2_PACKAGE_FREETYPE),y) WINE_CONF_OPTS += --with-freetype HOST_WINE_CONF_OPTS += --with-freetype WINE_DEPENDENCIES += freetype HOST_WINE_DEPENDENCIES += host-freetype WINE_CONF_ENV += FREETYPE_CONFIG=$(STAGING_DIR)/usr/bin/freetype-config else WINE_CONF_OPTS += --without-freetype HOST_WINE_CONF_OPTS += --without-freetype endif ifeq ($(BR2_PACKAGE_GNUTLS),y) WINE_CONF_OPTS += --with-gnutls WINE_DEPENDENCIES += gnutls else WINE_CONF_OPTS += --without-gnutls endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y) WINE_CONF_OPTS += --with-gstreamer WINE_DEPENDENCIES += gst1-plugins-base else WINE_CONF_OPTS += --without-gstreamer endif ifeq ($(BR2_PACKAGE_JPEG),y) WINE_CONF_OPTS += --with-jpeg WINE_DEPENDENCIES += jpeg else WINE_CONF_OPTS += --without-jpeg endif ifeq ($(BR2_PACKAGE_LCMS2),y) WINE_CONF_OPTS += --with-cms WINE_DEPENDENCIES += lcms2 else WINE_CONF_OPTS += --without-cms endif ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) WINE_CONF_OPTS += --with-opengl WINE_DEPENDENCIES += libgl else WINE_CONF_OPTS += --without-opengl endif ifeq ($(BR2_PACKAGE_LIBKRB5),y) WINE_CONF_OPTS += --with-krb5 WINE_DEPENDENCIES += libkrb5 else WINE_CONF_OPTS += --without-krb5 endif ifeq ($(BR2_PACKAGE_LIBPCAP),y) WINE_CONF_OPTS += --with-pcap WINE_DEPENDENCIES += libpcap else WINE_CONF_OPTS += --without-pcap endif ifeq ($(BR2_PACKAGE_LIBPNG),y) WINE_CONF_OPTS += --with-png WINE_DEPENDENCIES += libpng else WINE_CONF_OPTS += --without-png endif ifeq ($(BR2_PACKAGE_LIBUSB),y) WINE_CONF_OPTS += --with-usb WINE_DEPENDENCIES += libusb else WINE_CONF_OPTS += --without-usb endif ifeq ($(BR2_PACKAGE_LIBV4L),y) WINE_CONF_OPTS += --with-v4l2 WINE_DEPENDENCIES += libv4l else WINE_CONF_OPTS += --without-v4l2 endif ifeq ($(BR2_PACKAGE_LIBXML2),y) WINE_CONF_OPTS += --with-xml WINE_DEPENDENCIES += libxml2 WINE_CONF_ENV += XML2_CONFIG=$(STAGING_DIR)/usr/bin/xml2-config else WINE_CONF_OPTS += --without-xml endif ifeq ($(BR2_PACKAGE_LIBXSLT),y) WINE_CONF_OPTS += --with-xslt WINE_DEPENDENCIES += libxslt WINE_CONF_ENV += XSLT_CONFIG=$(STAGING_DIR)/usr/bin/xslt-config else WINE_CONF_OPTS += --without-xslt endif ifeq ($(BR2_PACKAGE_MPG123),y) WINE_CONF_OPTS += --with-mpg123 WINE_DEPENDENCIES += mpg123 else WINE_CONF_OPTS += --without-mpg123 endif ifeq ($(BR2_PACKAGE_OPENAL),y) WINE_CONF_OPTS += --with-openal WINE_DEPENDENCIES += openal else WINE_CONF_OPTS += --without-openal endif ifeq ($(BR2_PACKAGE_OPENLDAP),y) WINE_CONF_OPTS += --with-ldap WINE_DEPENDENCIES += openldap else WINE_CONF_OPTS += --without-ldap endif ifeq ($(BR2_PACKAGE_MESA3D_OSMESA_GALLIUM),y) WINE_CONF_OPTS += --with-osmesa WINE_DEPENDENCIES += mesa3d else WINE_CONF_OPTS += --without-osmesa endif ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) WINE_CONF_OPTS += --with-pulse WINE_DEPENDENCIES += pulseaudio else WINE_CONF_OPTS += --without-pulse endif ifeq ($(BR2_PACKAGE_SAMBA4),y) WINE_CONF_OPTS += --with-netapi WINE_DEPENDENCIES += samba4 else WINE_CONF_OPTS += --without-netapi endif ifeq ($(BR2_PACKAGE_SANE_BACKENDS),y) WINE_CONF_OPTS += --with-sane WINE_DEPENDENCIES += sane-backends WINE_CONF_ENV += SANE_CONFIG=$(STAGING_DIR)/usr/bin/sane-config else WINE_CONF_OPTS += --without-sane endif ifeq ($(BR2_PACKAGE_SDL2),y) WINE_CONF_OPTS += --with-sdl WINE_DEPENDENCIES += sdl2 else WINE_CONF_OPTS += --without-sdl endif ifeq ($(BR2_PACKAGE_TIFF),y) WINE_CONF_OPTS += --with-tiff WINE_DEPENDENCIES += tiff else WINE_CONF_OPTS += --without-tiff endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) WINE_CONF_OPTS += --with-udev WINE_DEPENDENCIES += udev else WINE_CONF_OPTS += --without-udev endif ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) WINE_CONF_OPTS += --with-x WINE_DEPENDENCIES += xlib_libX11 else WINE_CONF_OPTS += --without-x endif ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y) WINE_CONF_OPTS += --with-xcomposite WINE_DEPENDENCIES += xlib_libXcomposite else WINE_CONF_OPTS += --without-xcomposite endif ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) WINE_CONF_OPTS += --with-xcursor WINE_DEPENDENCIES += xlib_libXcursor else WINE_CONF_OPTS += --without-xcursor endif ifeq ($(BR2_PACKAGE_XLIB_LIBXEXT),y) WINE_CONF_OPTS += --with-xshape --with-xshm WINE_DEPENDENCIES += xlib_libXext else WINE_CONF_OPTS += --without-xshape --without-xshm endif ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y) WINE_CONF_OPTS += --with-xinput --with-xinput2 WINE_DEPENDENCIES += xlib_libXi else WINE_CONF_OPTS += --without-xinput --without-xinput2 endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) WINE_CONF_OPTS += --with-xinerama WINE_DEPENDENCIES += xlib_libXinerama else WINE_CONF_OPTS += --without-xinerama endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) WINE_CONF_OPTS += --with-xrandr WINE_DEPENDENCIES += xlib_libXrandr else WINE_CONF_OPTS += --without-xrandr endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y) WINE_CONF_OPTS += --with-xrender WINE_DEPENDENCIES += xlib_libXrender else WINE_CONF_OPTS += --without-xrender endif ifeq ($(BR2_PACKAGE_XLIB_LIBXXF86VM),y) WINE_CONF_OPTS += --with-xxf86vm WINE_DEPENDENCIES += xlib_libXxf86vm else WINE_CONF_OPTS += --without-xxf86vm endif # host-gettext is essential for .po file support in host-wine wrc ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) HOST_WINE_DEPENDENCIES += host-gettext HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo else HOST_WINE_CONF_OPTS += --without-gettext --without-gettextpo endif # Wine needs to enable 64-bit build tools on 64-bit host ifeq ($(HOSTARCH),x86_64) HOST_WINE_CONF_OPTS += --enable-win64 endif # Wine only needs the host tools to be built, so cut-down the # build time by building just what we need. HOST_WINE_TOOLS = \ tools \ tools/sfnt2fon \ tools/widl \ tools/winebuild \ tools/winegcc \ tools/wmc \ tools/wrc define HOST_WINE_BUILD_CMDS $(foreach t, $(HOST_WINE_TOOLS), $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/$(t) ) endef # Wine only needs its host variant to be built, not that it is # installed, as it uses the tools from the build directory. But # we have no way in Buildroot to state that a host package should # not be installed. So, just provide an noop install command. define HOST_WINE_INSTALL_CMDS : endef # We are focused on the cross compiling tools, disable everything else HOST_WINE_CONF_OPTS += \ --disable-tests \ --disable-win16 \ --without-alsa \ --without-capi \ --without-cms \ --without-coreaudio \ --without-faudio \ --without-cups \ --without-dbus \ --without-fontconfig \ --without-gphoto \ --without-gnutls \ --without-gsm \ --without-gssapi \ --without-gstreamer \ --without-hal \ --without-jpeg \ --without-krb5 \ --without-ldap \ --without-mingw \ --without-mpg123 \ --without-netapi \ --without-openal \ --without-opencl \ --without-opengl \ --without-osmesa \ --without-oss \ --without-pcap \ --without-pulse \ --without-png \ --without-sane \ --without-sdl \ --without-tiff \ --without-usb \ --without-v4l2 \ --without-vkd3d \ --without-vulkan \ --without-x \ --without-xcomposite \ --without-xcursor \ --without-xinerama \ --without-xinput \ --without-xinput2 \ --without-xml \ --without-xrandr \ --without-xrender \ --without-xshape \ --without-xshm \ --without-xslt \ --without-xxf86vm $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/wipe/0001-musl.patch ================================================ Fix musl build In file included from main.c:46:0: rand.h:31:9: error: unknown type name ‘u_int32_t’ typedef u_int32_t u_rand_t; ^ : recipe for target 'main.o' failed Patch sent upstream: https://sourceforge.net/p/wipe/patches/4/ Signed-off-by: Bernd Kuhls diff -uNr wipe-2.3.1.org/rand.h wipe-2.3.1/rand.h --- wipe-2.3.1.org/rand.h 2003-12-03 04:01:02.000000000 +0100 +++ wipe-2.3.1/rand.h 2016-01-31 21:39:54.000000000 +0100 @@ -22,10 +22,9 @@ #ifdef HAVE_STDINT_H # include "stdint.h" -#else -# ifndef LINUX +#endif +#if !defined(u_int32_t) # define u_int32_t uint32_t -# endif #endif typedef u_int32_t u_rand_t; ================================================ FILE: package/wipe/Config.in ================================================ config BR2_PACKAGE_WIPE bool "wipe" help Wipe is a little command for securely erasing files from magnetic media. It compiles under various unix platforms. http://wipe.sourceforge.net ================================================ FILE: package/wipe/wipe.hash ================================================ # Locally computed: sha256 463916370f9b35bb34419c2c0ae3dc4c0a471db32e8595afa1d14c0337b61aa0 wipe-2.3.1.tar.bz2 sha256 890cd89006bb57ce95b460e867c7bcc81d30cbc23067a9be4644bdac6882bc14 LICENSE ================================================ FILE: package/wipe/wipe.mk ================================================ ################################################################################ # # wipe # ################################################################################ WIPE_VERSION = 2.3.1 WIPE_SITE = http://downloads.sourceforge.net/project/wipe/wipe/$(WIPE_VERSION) WIPE_SOURCE = wipe-$(WIPE_VERSION).tar.bz2 WIPE_LICENSE = GPL-2.0+ WIPE_LICENSE_FILES = LICENSE define WIPE_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/wipe $(TARGET_DIR)/usr/bin/wipe endef $(eval $(autotools-package)) ================================================ FILE: package/wireguard-linux-compat/Config.in ================================================ config BR2_PACKAGE_WIREGUARD_LINUX_COMPAT bool "wireguard linux-compat" depends on BR2_LINUX_KERNEL # kernel module requires 3.10+ depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 # kernel module in upstream linux since 5.6 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6 help WireGuard is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPSec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Support for WireGuard is included in Linux 5.6+. This package provides a backport of the kernel support for older kernels. https://www.wireguard.com comment "wireguard-linux-compat needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL comment "wireguard-linux-compat needs a toolchain w/ headers >= 3.10" depends on BR2_LINUX_KERNEL depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 ================================================ FILE: package/wireguard-linux-compat/wireguard-linux-compat.hash ================================================ # https://lists.zx2c4.com/pipermail/wireguard/2021-June/006781.html sha256 3f5d990006e6eabfd692d925ec314fff2c5ee7dcdb869a6510d579acfdd84ec0 wireguard-linux-compat-1.0.20210606.tar.xz # Locally calculated sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/wireguard-linux-compat/wireguard-linux-compat.mk ================================================ ################################################################################ # # wireguard # ################################################################################ WIREGUARD_LINUX_COMPAT_VERSION = 1.0.20210606 WIREGUARD_LINUX_COMPAT_SITE = https://git.zx2c4.com/wireguard-linux-compat/snapshot WIREGUARD_LINUX_COMPAT_SOURCE = wireguard-linux-compat-$(WIREGUARD_LINUX_COMPAT_VERSION).tar.xz WIREGUARD_LINUX_COMPAT_LICENSE = GPL-2.0 WIREGUARD_LINUX_COMPAT_LICENSE_FILES = COPYING WIREGUARD_LINUX_COMPAT_MODULE_SUBDIRS = src define WIREGUARD_LINUX_COMPAT_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_INET) $(call KCONFIG_ENABLE_OPT,CONFIG_NET) $(call KCONFIG_ENABLE_OPT,CONFIG_NET_FOU) $(call KCONFIG_ENABLE_OPT,CONFIG_CRYPTO) $(call KCONFIG_ENABLE_OPT,CONFIG_CRYPTO_MANAGER) endef $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/wireguard-tools/Config.in ================================================ config BR2_PACKAGE_WIREGUARD_TOOLS bool "wireguard tools" # kernel module requires 3.10+, userspace makes no sense without it depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 help WireGuard is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPSec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. This package provides the userspace tooling to configure WireGuard tunnels. https://www.wireguard.com comment "wireguard-tools needs a toolchain w/ headers >= 3.10" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 ================================================ FILE: package/wireguard-tools/wireguard-tools.hash ================================================ # https://lists.zx2c4.com/pipermail/wireguard/2021-September/007049.html sha256 97ff31489217bb265b7ae850d3d0f335ab07d2652ba1feec88b734bc96bd05ac wireguard-tools-1.0.20210914.tar.xz # Locally calculated sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/wireguard-tools/wireguard-tools.mk ================================================ ################################################################################ # # wireguard-tools # ################################################################################ WIREGUARD_TOOLS_VERSION = 1.0.20210914 WIREGUARD_TOOLS_SITE = https://git.zx2c4.com/wireguard-tools/snapshot WIREGUARD_TOOLS_SOURCE = wireguard-tools-$(WIREGUARD_TOOLS_VERSION).tar.xz WIREGUARD_TOOLS_LICENSE = GPL-2.0 WIREGUARD_TOOLS_LICENSE_FILES = COPYING WIREGUARD_TOOLS_SELINUX_MODULES = wireguard ifeq ($(BR2_INIT_SYSTEMD),y) WIREGUARD_TOOLS_MAKE_OPTS += WITH_SYSTEMDUNITS=yes WIREGUARD_TOOLS_DEPENDENCIES += host-pkgconf else WIREGUARD_TOOLS_MAKE_OPTS += WITH_SYSTEMDUNITS=no endif ifeq ($(BR2_PACKAGE_BASH),y) WIREGUARD_TOOLS_MAKE_OPTS += WITH_BASHCOMPLETION=yes WITH_WGQUICK=yes else WIREGUARD_TOOLS_MAKE_OPTS += WITH_BASHCOMPLETION=no WITH_WGQUICK=no endif define WIREGUARD_TOOLS_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) $(WIREGUARD_TOOLS_MAKE_OPTS) \ -C $(@D)/src endef define WIREGUARD_TOOLS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) $(WIREGUARD_TOOLS_MAKE_OPTS) \ -C $(@D)/src install DESTDIR=$(TARGET_DIR) endef $(eval $(generic-package)) ================================================ FILE: package/wireless-regdb/Config.in ================================================ config BR2_PACKAGE_WIRELESS_REGDB bool "wireless-regdb" help Wireless regulatory database. Wireless regulatory database. The database lists the allowed radio frequencies for each local jurisdiction. Since linux-4.15 the kernel supports loading the files regulatory.db/regulatory.db.p7s directly from the /lib/firmware directory, for earlier versions the crda helper application is needed. https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb ================================================ FILE: package/wireless-regdb/wireless-regdb.hash ================================================ # From https://www.kernel.org/pub/software/network/wireless-regdb/sha256sums.asc sha256 cff370c410d1e6d316ae0a7fa8ac6278fdf1efca5d3d664aca7cfd2aafa54446 wireless-regdb-2021.08.28.tar.xz # Locally computed sha256 678b0df753c86198fc496d1f1033429bbd57f101472132ee7eaaf9f5e0a7fae1 LICENSE ================================================ FILE: package/wireless-regdb/wireless-regdb.mk ================================================ ################################################################################ # # wireless-regdb # ################################################################################ WIRELESS_REGDB_VERSION = 2021.08.28 WIRELESS_REGDB_SOURCE = wireless-regdb-$(WIRELESS_REGDB_VERSION).tar.xz WIRELESS_REGDB_SITE = $(BR2_KERNEL_MIRROR)/software/network/wireless-regdb WIRELESS_REGDB_LICENSE = ISC WIRELESS_REGDB_LICENSE_FILES = LICENSE WIRELESS_REGDB_CPE_ID_VENDOR = kernel ifeq ($(BR2_PACKAGE_CRDA),y) define WIRELESS_REGDB_INSTALL_CRDA_TARGET_CMDS $(INSTALL) -m 644 -D -T $(@D)/regulatory.bin \ $(TARGET_DIR)/usr/lib/crda/regulatory.bin $(INSTALL) -m 644 -D -T $(@D)/sforshee.key.pub.pem \ $(TARGET_DIR)/etc/wireless-regdb/pubkeys/sforshee.key.pub.pem endef endif define WIRELESS_REGDB_INSTALL_TARGET_CMDS $(WIRELESS_REGDB_INSTALL_CRDA_TARGET_CMDS) $(INSTALL) -m 644 -D -T $(@D)/regulatory.db \ $(TARGET_DIR)/lib/firmware/regulatory.db $(INSTALL) -m 644 -D -T $(@D)/regulatory.db.p7s \ $(TARGET_DIR)/lib/firmware/regulatory.db.p7s endef $(eval $(generic-package)) ================================================ FILE: package/wireless_tools/0001-remove-bzero.patch ================================================ Switch all instances of deprecated bzero() to memset() equivalent. Signed-off-by: Gustavo Zacarias diff -Nura wireless_tools.30/ifrename.c wireless_tools.30-bzero/ifrename.c --- wireless_tools.30/ifrename.c 2007-10-16 20:12:41.000000000 -0300 +++ wireless_tools.30-bzero/ifrename.c 2014-06-11 09:52:59.623741119 -0300 @@ -541,7 +541,7 @@ victimname, autoname); /* Prepare request */ - bzero(&ifr, sizeof(struct ifreq)); + memset(&ifr, 0, sizeof(struct ifreq)); strncpy(ifr.ifr_name, victimname, IFNAMSIZ); strncpy(ifr.ifr_newname, autoname, IFNAMSIZ); @@ -587,7 +587,7 @@ } /* Prepare request */ - bzero(&ifr, sizeof(struct ifreq)); + memset(&ifr, 0, sizeof(struct ifreq)); strncpy(ifr.ifr_name, oldname, IFNAMSIZ); strncpy(ifr.ifr_newname, newname, IFNAMSIZ); @@ -747,7 +747,7 @@ int i; /* Get MAC address */ - bzero(&ifr, sizeof(struct ifreq)); + memset(&ifr, 0, sizeof(struct ifreq)); strncpy(ifr.ifr_name, ifname, IFNAMSIZ); ret = ioctl(skfd, SIOCGIFHWADDR, &ifr); if(ret < 0) @@ -1040,8 +1040,8 @@ return(0); /* Prepare request */ - bzero(&ifr, sizeof(struct ifreq)); - bzero(&drvinfo, sizeof(struct ethtool_drvinfo)); + memset(&ifr, 0, sizeof(struct ifreq)); + memset(&drvinfo, 0, sizeof(struct ethtool_drvinfo)); strncpy(ifr.ifr_name, ifname, IFNAMSIZ); drvinfo.cmd = ETHTOOL_GDRVINFO; ifr.ifr_data = (caddr_t) &drvinfo; @@ -1206,8 +1206,8 @@ return(0); /* Prepare request */ - bzero(&ifr, sizeof(struct ifreq)); - bzero(&map, sizeof(struct ifmap)); + memset(&ifr, 0, sizeof(struct ifreq)); + memset(&map, 0, sizeof(struct ifmap)); strncpy(ifr.ifr_name, ifname, IFNAMSIZ); /* Do it */ @@ -2050,7 +2050,7 @@ struct add_extra extrainfo; /* Reset the list of filters */ - bzero(selector_active, sizeof(selector_active)); + memset(selector_active, 0, sizeof(selector_active)); /* Check filename */ if(!strcmp(filename, "-")) diff -Nura wireless_tools.30/iwlib.c wireless_tools.30-bzero/iwlib.c --- wireless_tools.30/iwlib.c 2009-11-23 23:28:59.000000000 -0300 +++ wireless_tools.30-bzero/iwlib.c 2014-06-11 09:50:20.611371384 -0300 @@ -484,7 +484,7 @@ union iw_range_raw * range_raw; /* Cleanup */ - bzero(buffer, sizeof(buffer)); + memset(buffer, 0, sizeof(buffer)); wrq.u.data.pointer = (caddr_t) buffer; wrq.u.data.length = sizeof(buffer); @@ -513,7 +513,7 @@ else { /* Zero unknown fields */ - bzero((char *) range, sizeof(struct iw_range)); + memset((char *) range, 0, sizeof(struct iw_range)); /* Initial part unmoved */ memcpy((char *) range, @@ -3064,7 +3064,7 @@ oldwscan->next = wscan; /* Reset it */ - bzero(wscan, sizeof(struct wireless_scan)); + memset(wscan, 0, sizeof(struct wireless_scan)); /* Save cell identifier */ wscan->has_ap_addr = 1; ================================================ FILE: package/wireless_tools/Config.in ================================================ config BR2_PACKAGE_WIRELESS_TOOLS bool "wireless tools" help A collection of tools to configure wireless lan cards. https://hewlettpackard.github.io/wireless-tools/ if BR2_PACKAGE_WIRELESS_TOOLS config BR2_PACKAGE_WIRELESS_TOOLS_LIB bool "Install shared library" depends on !BR2_STATIC_LIBS help The shared library of wireless tools endif ================================================ FILE: package/wireless_tools/wireless_tools.hash ================================================ # locally computed hash sha256 abd9c5c98abf1fdd11892ac2f8a56737544fe101e1be27c6241a564948f34c63 wireless_tools.30.pre9.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/wireless_tools/wireless_tools.mk ================================================ ################################################################################ # # wireless_tools # ################################################################################ WIRELESS_TOOLS_VERSION_MAJOR = 30 WIRELESS_TOOLS_VERSION = $(WIRELESS_TOOLS_VERSION_MAJOR).pre9 WIRELESS_TOOLS_SITE = https://hewlettpackard.github.io/wireless-tools WIRELESS_TOOLS_SOURCE = wireless_tools.$(WIRELESS_TOOLS_VERSION).tar.gz WIRELESS_TOOLS_LICENSE = GPL-2.0 WIRELESS_TOOLS_LICENSE_FILES = COPYING WIRELESS_TOOLS_CPE_ID_VERSION = $(WIRELESS_TOOLS_VERSION_MAJOR) WIRELESS_TOOLS_CPE_ID_UPDATE = pre9 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 $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) PREFIX="$(STAGING_DIR)" LDCONFIG=/bin/true \ install-dynamic $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) PREFIX="$(STAGING_DIR)/usr" install-hdr endef endif define WIRELESS_TOOLS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \ $(WIRELESS_TOOLS_BUILD_TARGETS) endef define WIRELESS_TOOLS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) PREFIX="$(TARGET_DIR)" LDCONFIG=/bin/true \ $(WIRELESS_TOOLS_INSTALL_TARGETS) endef $(eval $(generic-package)) ================================================ FILE: package/wireplumber/Config.in ================================================ config BR2_PACKAGE_WIREPLUMBER bool "wireplumber" depends on BR2_PACKAGE_PIPEWIRE depends on BR2_PACKAGE_LUA_5_3 || BR2_PACKAGE_LUA_5_4 depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 help WirePlumber is a modular session / policy manager for PipeWire and a GObject-based high-level library that wraps PipeWire’s API, providing convenience for writing the daemon’s modules as well as external tools for managing PipeWire. https://pipewire.pages.freedesktop.org/wireplumber/ comment "wireplumber needs a toolchain w/ wchar, threads and Lua >= 5.3" depends on BR2_PACKAGE_PIPEWIRE depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ (!BR2_PACKAGE_LUA_5_3 && !BR2_PACKAGE_LUA_5_4) ================================================ FILE: package/wireplumber/wireplumber.hash ================================================ # Locally calculated sha256 41f174eaae5a630e195001fdd580918fa5143a71edceb050b320f85a8e65e53b wireplumber-0.4.2.tar.bz2 sha256 ff2eb9af5b05d92ac3a38cffcad27582ef555a31ff1781e1c1d4e087f77c9c81 LICENSE ================================================ FILE: package/wireplumber/wireplumber.mk ================================================ ################################################################################ # # wireplumber # ################################################################################ WIREPLUMBER_VERSION = 0.4.2 WIREPLUMBER_SOURCE = wireplumber-$(WIREPLUMBER_VERSION).tar.bz2 WIREPLUMBER_SITE = https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/$(WIREPLUMBER_VERSION) WIREPLUMBER_LICENSE = MIT WIREPLUMBER_LICENSE_FILES = LICENSE WIREPLUMBER_DEPENDENCIES = host-pkgconf dbus pipewire libglib2 lua WIREPLUMBER_CONF_OPTS = \ -Ddoc=disabled \ -Dsystem-lua=true \ -Dsystem-lua-version= ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) WIREPLUMBER_DEPENDENCIES += gobject-introspection WIREPLUMBER_CONF_OPTS += -Dintrospection=enabled else WIREPLUMBER_CONF_OPTS += -Dintrospection=disabled endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) WIREPLUMBER_DEPENDENCIES += systemd WIREPLUMBER_CONF_OPTS += \ -Dsystemd=enabled \ -Dsystemd-system-service=true \ -Dsystemd-user-service=true else WIREPLUMBER_CONF_OPTS += \ -Dsystemd=disabled \ -Dsystemd-system-service=false \ -Dsystemd-user-service=false endif $(eval $(meson-package)) ================================================ FILE: package/wireshark/0001-cmake-lemon-wipe-CMAKE_-EXE_LINKER_FLAGS-SYSROOT-if-.patch ================================================ From 33270f56477542dedf978e660cf8d08464f28797 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 26 Nov 2021 17:45:23 +0100 Subject: [PATCH] cmake: lemon: wipe CMAKE_{EXE_LINKER_FLAGS,SYSROOT} if needed Wipe CMAKE_{EXE_LINKER_FLAGS,SYSROOT} when LEMON_C_COMPILER is set to avoid a build failure when cross-compiling (e.g. with buildroot) Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.com/wireshark/wireshark/-/merge_requests/5224] --- tools/lemon/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/lemon/CMakeLists.txt b/tools/lemon/CMakeLists.txt index 8742aa9fc9..7a9263fe0d 100644 --- a/tools/lemon/CMakeLists.txt +++ b/tools/lemon/CMakeLists.txt @@ -12,6 +12,8 @@ add_executable(lemon lemon.c) if(DEFINED LEMON_C_COMPILER) set(CMAKE_C_COMPILER "${LEMON_C_COMPILER}") set(CMAKE_C_FLAGS "") + set(CMAKE_EXE_LINKER_FLAGS "") + set(CMAKE_SYSROOT "") endif() # To keep lemon.c as close to upstream as possible, deliberately ignore -- 2.33.0 ================================================ FILE: package/wireshark/Config.in ================================================ config BR2_PACKAGE_WIRESHARK bool "wireshark" depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt -> libgpg-error depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # fork(), glib2 depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 select BR2_PACKAGE_C_ARES select BR2_PACKAGE_LIBPCAP select BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_SPEEXDSP help Network traffic sniffer and protocol decoder. https://www.wireshark.org if BR2_PACKAGE_WIRESHARK config BR2_PACKAGE_WIRESHARK_GUI bool "Qt5 GUI" default y depends on BR2_INSTALL_LIBSTDCPP # qt5 depends on BR2_HOST_GCC_AT_LEAST_5 # qt5 depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # qt5 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # qt5 depends on !BR2_arc # qt5 depends on BR2_PACKAGE_HAS_UDEV # qt5 input select BR2_PACKAGE_QT5 select BR2_PACKAGE_QT5BASE_FONTCONFIG # runtime select BR2_PACKAGE_QT5BASE_PNG # runtime select BR2_PACKAGE_QT5BASE_WIDGETS select BR2_PACKAGE_QT5MULTIMEDIA select BR2_PACKAGE_QT5SVG select BR2_PACKAGE_QT5TOOLS select BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS help Enable Qt5 GUI comment "Qt5 GUI needs a udev /dev management and a toolchain w/ C++, NPTL, host gcc >= 5.0, gcc >= 5.0" depends on !BR2_arc depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \ !BR2_HOST_GCC_AT_LEAST_5 endif # BR2_PACKAGE_WIRESHARK comment "wireshark needs a toolchain w/ wchar, threads, dynamic library" depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS ================================================ FILE: package/wireshark/wireshark.hash ================================================ # From https://www.wireshark.org/download/src/all-versions/SIGNATURES-3.4.10.txt sha1 63839abd94d3ae376f860e2d2969777680106578 wireshark-3.4.10.tar.xz sha256 8aa7ef4a44ae62bb8db463cf761e2cc03b97305e0e77ed5be53fa83729187cef wireshark-3.4.10.tar.xz # Locally calculated sha256 7cdbed2b697efaa45576a033f1ac0e73cd045644a91c79bbf41d4a7d81dac7bf COPYING ================================================ FILE: package/wireshark/wireshark.mk ================================================ ################################################################################ # # wireshark # ################################################################################ WIRESHARK_VERSION = 3.4.10 WIRESHARK_SOURCE = wireshark-$(WIRESHARK_VERSION).tar.xz WIRESHARK_SITE = https://www.wireshark.org/download/src/all-versions WIRESHARK_LICENSE = wireshark license WIRESHARK_LICENSE_FILES = COPYING WIRESHARK_CPE_ID_VENDOR = wireshark WIRESHARK_SELINUX_MODULES = wireshark WIRESHARK_DEPENDENCIES = \ c-ares \ host-pkgconf \ host-python3 \ libgcrypt \ libglib2 \ libpcap \ speexdsp WIRESHARK_CONF_OPTS = \ -DDISABLE_WERROR=ON \ -DENABLE_ILBC=OFF \ -DENABLE_PCAP=ON \ -DENABLE_SMI=OFF \ -DLEMON_C_COMPILER=$(HOSTCC) ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) WIRESHARK_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic endif ifeq ($(BR2_GCC_ENABLE_LTO),y) WIRESHARK_CONF_OPTS += -DENABLE_LTO=ON else WIRESHARK_CONF_OPTS += -DENABLE_LTO=OFF endif ifeq ($(BR2_PACKAGE_WIRESHARK_GUI),y) WIRESHARK_CONF_OPTS += -DBUILD_wireshark=ON WIRESHARK_DEPENDENCIES += qt5base qt5multimedia qt5svg qt5tools else WIRESHARK_CONF_OPTS += -DBUILD_wireshark=OFF endif ifeq ($(BR2_PACKAGE_BCG729),y) WIRESHARK_CONF_OPTS += -DENABLE_BCG729=ON WIRESHARK_DEPENDENCIES += bcg729 else WIRESHARK_CONF_OPTS += -DENABLE_BCG729=OFF endif ifeq ($(BR2_PACKAGE_BROTLI),y) WIRESHARK_CONF_OPTS += -DENABLE_BROTLI=ON WIRESHARK_DEPENDENCIES += brotli else WIRESHARK_CONF_OPTS += -DENABLE_BROTLI=OFF endif ifeq ($(BR2_PACKAGE_GNUTLS),y) WIRESHARK_CONF_OPTS += -DENABLE_GNUTLS=ON WIRESHARK_DEPENDENCIES += gnutls else WIRESHARK_CONF_OPTS += -DENABLE_GNUTLS=OFF endif ifeq ($(BR2_PACKAGE_LIBKRB5),y) WIRESHARK_CONF_OPTS += -DENABLE_KERBEROS=ON WIRESHARK_DEPENDENCIES += libkrb5 else WIRESHARK_CONF_OPTS += -DENABLE_KERBEROS=OFF endif ifeq ($(BR2_PACKAGE_LIBMAXMINDDB),y) WIRESHARK_CONF_OPTS += -DBUILD_mmdbresolve=ON WIRESHARK_DEPENDENCIES += libmaxminddb else WIRESHARK_CONF_OPTS += -DBUILD_mmdbresolve=OFF endif ifeq ($(BR2_PACKAGE_LIBNL),y) WIRESHARK_CONF_OPTS += -DENABLE_NETLINK=ON WIRESHARK_DEPENDENCIES += libnl else WIRESHARK_CONF_OPTS += -DENABLE_NETLINK=OFF endif ifeq ($(BR2_PACKAGE_LIBSSH),y) WIRESHARK_CONF_OPTS += -DENABLE_LIBSSH=ON WIRESHARK_DEPENDENCIES += libssh else WIRESHARK_CONF_OPTS += -DENABLE_LIBSSH=OFF endif ifeq ($(BR2_PACKAGE_LIBXML2),y) WIRESHARK_CONF_OPTS += -DENABLE_LIBXML2=ON WIRESHARK_DEPENDENCIES += libxml2 else WIRESHARK_CONF_OPTS += -DENABLE_LIBXML2=OFF endif # no support for lua53 yet ifeq ($(BR2_PACKAGE_LUA_5_1),y) WIRESHARK_CONF_OPTS += -DENABLE_LUA=ON WIRESHARK_DEPENDENCIES += lua else WIRESHARK_CONF_OPTS += -DENABLE_LUA=OFF endif ifeq ($(BR2_PACKAGE_LZ4),y) WIRESHARK_CONF_OPTS += -DENABLE_LZ4=ON WIRESHARK_DEPENDENCIES += lz4 else WIRESHARK_CONF_OPTS += -DENABLE_LZ4=OFF endif ifeq ($(BR2_PACKAGE_NGHTTP2),y) WIRESHARK_CONF_OPTS += -DENABLE_NGHTTP2=ON WIRESHARK_DEPENDENCIES += nghttp2 else WIRESHARK_CONF_OPTS += -DENABLE_NGHTTP2=OFF endif ifeq ($(BR2_PACKAGE_OPUS),y) WIRESHARK_CONF_OPTS += -DENABLE_OPUS=ON WIRESHARK_DEPENDENCIES += opus else WIRESHARK_CONF_OPTS += -DENABLE_OPUS=OFF endif ifeq ($(BR2_PACKAGE_SBC),y) WIRESHARK_CONF_OPTS += -DENABLE_SBC=ON WIRESHARK_DEPENDENCIES += sbc else WIRESHARK_CONF_OPTS += -DENABLE_SBC=OFF endif ifeq ($(BR2_PACKAGE_SNAPPY),y) WIRESHARK_CONF_OPTS += -DENABLE_SNAPPY=ON WIRESHARK_DEPENDENCIES += snappy else WIRESHARK_CONF_OPTS += -DENABLE_SNAPPY=OFF endif ifeq ($(BR2_PACKAGE_SPANDSP),y) WIRESHARK_CONF_OPTS += -DENABLE_SPANDSP=ON WIRESHARK_DEPENDENCIES += spandsp else WIRESHARK_CONF_OPTS += -DENABLE_SPANDSP=OFF endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) WIRESHARK_CONF_OPTS += -DBUILD_sdjournal=ON WIRESHARK_DEPENDENCIES += systemd else WIRESHARK_CONF_OPTS += -DBUILD_sdjournal=OFF endif ifeq ($(BR2_PACKAGE_ZSTD),y) WIRESHARK_CONF_OPTS += -DENABLE_ZSTD=ON WIRESHARK_DEPENDENCIES += zstd else WIRESHARK_CONF_OPTS += -DENABLE_ZSTD=OFF endif # Disable plugins as some of them (like l16mono) can't be built # statically. ENABLE_STATIC=ON actually means "disable shared library" # and ENABLE_STATIC=OFF means "enable shared library". So for the # BR2_SHARED_STATIC_LIBS=y case, we want ENABLE_STATIC=OFF even if # that sounds counter-intuitive. ifeq ($(BR2_STATIC_LIBS),y) WIRESHARK_CONF_OPTS += \ -DENABLE_PLUGINS=OFF \ -DENABLE_STATIC=ON \ -DUSE_STATIC=ON else WIRESHARK_CONF_OPTS += \ -DENABLE_PLUGINS=ON \ -DENABLE_STATIC=OFF \ -DUSE_STATIC=OFF 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 $(cmake-package)) ================================================ FILE: package/wlroots/0001-Add-feature-macros-to-more-C-files-.patch ================================================ From cf37ba4c0bf31316b698ba23015f91903766871d Mon Sep 17 00:00:00 2001 From: Paul Cercueil Date: Thu, 18 Feb 2021 22:31:39 +0000 Subject: [PATCH] Add feature macros to more C files These source files use "struct timespec", which is POSIX 1993.09. Signed-off-by: Paul Cercueil [Retrieved from: https://github.com/swaywm/wlroots/pull/2493] Signed-off-by: Fabrice Fontaine --- backend/wayland/output.c | 1 + types/data_device/wlr_data_device.c | 1 + types/data_device/wlr_drag.c | 1 + types/wlr_export_dmabuf_v1.c | 1 + types/wlr_idle.c | 1 + types/wlr_keyboard_shortcuts_inhibit_v1.c | 1 + types/wlr_pointer_constraints_v1.c | 1 + types/wlr_primary_selection.c | 1 + types/wlr_relative_pointer_v1.c | 1 + types/wlr_screencopy_v1.c | 1 + types/wlr_virtual_pointer_v1.c | 1 + types/wlr_xdg_decoration_v1.c | 1 + types/xdg_shell/wlr_xdg_popup.c | 1 + types/xdg_shell/wlr_xdg_positioner.c | 1 + types/xdg_shell/wlr_xdg_shell.c | 1 + types/xdg_shell/wlr_xdg_surface.c | 1 + 16 files changed, 16 insertions(+) diff --git a/backend/wayland/output.c b/backend/wayland/output.c index d5410e0d32..8ff8fa2a00 100644 --- a/backend/wayland/output.c +++ b/backend/wayland/output.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/data_device/wlr_data_device.c b/types/data_device/wlr_data_device.c index 6cd84ec0ab..beac496124 100644 --- a/types/data_device/wlr_data_device.c +++ b/types/data_device/wlr_data_device.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/data_device/wlr_drag.c b/types/data_device/wlr_drag.c index 53bf4066a1..e3c1e249b4 100644 --- a/types/data_device/wlr_drag.c +++ b/types/data_device/wlr_drag.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/wlr_export_dmabuf_v1.c b/types/wlr_export_dmabuf_v1.c index a8e2a4bde3..98ceae68f1 100644 --- a/types/wlr_export_dmabuf_v1.c +++ b/types/wlr_export_dmabuf_v1.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/wlr_idle.c b/types/wlr_idle.c index 4c338931cc..80fd871fab 100644 --- a/types/wlr_idle.c +++ b/types/wlr_idle.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/wlr_keyboard_shortcuts_inhibit_v1.c b/types/wlr_keyboard_shortcuts_inhibit_v1.c index fe4e64b04e..8360a9c21c 100644 --- a/types/wlr_keyboard_shortcuts_inhibit_v1.c +++ b/types/wlr_keyboard_shortcuts_inhibit_v1.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/wlr_pointer_constraints_v1.c b/types/wlr_pointer_constraints_v1.c index eca45984c4..f1db8e3415 100644 --- a/types/wlr_pointer_constraints_v1.c +++ b/types/wlr_pointer_constraints_v1.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/wlr_primary_selection.c b/types/wlr_primary_selection.c index 0875462c8c..7e0e11ddaa 100644 --- a/types/wlr_primary_selection.c +++ b/types/wlr_primary_selection.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/wlr_relative_pointer_v1.c b/types/wlr_relative_pointer_v1.c index 8613f2b91c..3f8dd8b72a 100644 --- a/types/wlr_relative_pointer_v1.c +++ b/types/wlr_relative_pointer_v1.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/wlr_screencopy_v1.c b/types/wlr_screencopy_v1.c index 6feb074274..29864c2364 100644 --- a/types/wlr_screencopy_v1.c +++ b/types/wlr_screencopy_v1.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/wlr_virtual_pointer_v1.c b/types/wlr_virtual_pointer_v1.c index a9d1fd7bc4..5566e9e013 100644 --- a/types/wlr_virtual_pointer_v1.c +++ b/types/wlr_virtual_pointer_v1.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/wlr_xdg_decoration_v1.c b/types/wlr_xdg_decoration_v1.c index 544035b7b8..904474c088 100644 --- a/types/wlr_xdg_decoration_v1.c +++ b/types/wlr_xdg_decoration_v1.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/xdg_shell/wlr_xdg_popup.c b/types/xdg_shell/wlr_xdg_popup.c index 69b4cfe19f..05d6551fc8 100644 --- a/types/xdg_shell/wlr_xdg_popup.c +++ b/types/xdg_shell/wlr_xdg_popup.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include diff --git a/types/xdg_shell/wlr_xdg_positioner.c b/types/xdg_shell/wlr_xdg_positioner.c index f88bf323b8..8881c49916 100644 --- a/types/xdg_shell/wlr_xdg_positioner.c +++ b/types/xdg_shell/wlr_xdg_positioner.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include "types/wlr_xdg_shell.h" diff --git a/types/xdg_shell/wlr_xdg_shell.c b/types/xdg_shell/wlr_xdg_shell.c index 0480d5f354..c93fe7c3fb 100644 --- a/types/xdg_shell/wlr_xdg_shell.c +++ b/types/xdg_shell/wlr_xdg_shell.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include "types/wlr_xdg_shell.h" diff --git a/types/xdg_shell/wlr_xdg_surface.c b/types/xdg_shell/wlr_xdg_surface.c index edf562abcd..c1dfbfba7e 100644 --- a/types/xdg_shell/wlr_xdg_surface.c +++ b/types/xdg_shell/wlr_xdg_surface.c @@ -1,3 +1,4 @@ +#define _POSIX_C_SOURCE 199309L #include #include #include ================================================ FILE: package/wlroots/Config.in ================================================ comment "wlroots needs udev, EGL w/ Wayland backend and OpenGL ES support" depends on !BR2_PACKAGE_HAS_LIBEGL || \ !BR2_PACKAGE_HAS_LIBEGL_WAYLAND || \ !BR2_PACKAGE_HAS_LIBGLES || \ !BR2_PACKAGE_HAS_UDEV comment "wlroots needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS config BR2_PACKAGE_WLROOTS bool "wlroots" depends on !BR2_STATIC_LIBS # wayland depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm, wayland depends on BR2_PACKAGE_HAS_UDEV # libinput depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND depends on BR2_PACKAGE_HAS_LIBGLES select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBINPUT select BR2_PACKAGE_LIBXKBCOMMON select BR2_PACKAGE_PIXMAN select BR2_PACKAGE_SEATD select BR2_PACKAGE_WAYLAND select BR2_PACKAGE_WAYLAND_PROTOCOLS help wlroots is a modular Wayland library for building compositors which implements many of their common features. https://github.com/swaywm/wlroots if BR2_PACKAGE_WLROOTS config BR2_PACKAGE_WLROOTS_X11 bool "X11 backend" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_LIBXCB select BR2_PACKAGE_XCB_UTIL_RENDERUTIL select BR2_PACKAGE_XCB_UTIL_WM select BR2_PACKAGE_XLIB_LIBX11 help Support Wayland sessions nested inside a X11 window endif ================================================ FILE: package/wlroots/wlroots.hash ================================================ # Generated locally, after checking https://github.com/swaywm/wlroots/releases/download/0.14.1/wlroots-0.14.1.tar.gz.sig sha256 448a83d579ac280357c8a4e902b9477bacbab81cc4d9c140e443642d458869db wlroots-0.14.1.tar.gz # Hashes for license files: sha256 ffd3737a478b83a8b51b42757d3bf909ef36694508355879722e11fc1fa6736b LICENSE ================================================ FILE: package/wlroots/wlroots.mk ================================================ ################################################################################ # # wlroots # ################################################################################ WLROOTS_VERSION = 0.14.1 WLROOTS_SITE = https://github.com/swaywm/wlroots/releases/download/$(WLROOTS_VERSION) WLROOTS_LICENSE = MIT WLROOTS_LICENSE_FILES = LICENSE WLROOTS_INSTALL_STAGING = YES WLROOTS_DEPENDENCIES = \ host-pkgconf \ host-wayland \ libinput \ libxkbcommon \ libegl \ libgles \ pixman \ seatd \ udev \ wayland \ wayland-protocols WLROOTS_CONF_OPTS = -Dexamples=false -Dxcb-errors=disabled -Drenderers=gles2 ifeq ($(BR2_PACKAGE_FFMPEG),y) WLROOTS_DEPENDENCIES += ffmpeg endif ifeq ($(BR2_PACKAGE_LIBPNG),y) WLROOTS_DEPENDENCIES += libpng endif ifeq ($(BR2_PACKAGE_WLROOTS_X11),y) WLROOTS_CONF_OPTS += -Dx11-backend=enabled -Dxwayland=enabled WLROOTS_DEPENDENCIES += libxcb xcb-util-wm xcb-util-renderutil xlib_libX11 else WLROOTS_CONF_OPTS += -Dx11-backend=disabled -Dxwayland=disabled endif $(eval $(meson-package)) ================================================ FILE: package/wmctrl/Config.in ================================================ config BR2_PACKAGE_WMCTRL bool "wmctrl" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXMU select BR2_PACKAGE_LIBGLIB2 help Provides command line access to almost all the features defined in the EWMH specification. It can be used, for example, to get information about the window manager, to get a detailed list of desktops and managed windows, to switch and resize desktops, to make windows full-screen, always-above or sticky, and to activate, close, move, resize, maximize and minimize them. https://sites.google.com/site/tstyblo/wmctrl/ comment "wmctrl needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on BR2_PACKAGE_XORG7 depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/wmctrl/wmctrl.hash ================================================ # Locally computed sha256 d78a1efdb62f18674298ad039c5cbdb1edb6e8e149bb3a8e3a01a4750aa3cca9 wmctrl-1.07.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/wmctrl/wmctrl.mk ================================================ ################################################################################ # # wmctrl # ################################################################################ WMCTRL_VERSION = 1.07 WMCTRL_SITE = https://sites.google.com/site/tstyblo/wmctrl WMCTRL_LICENSE = GPL-2.0+ WMCTRL_LICENSE_FILES = COPYING WMCTRL_DEPENDENCIES = libglib2 xlib_libX11 xlib_libXmu WMCTRL_CONF_OPTS = \ --x-includes=$(STAGING_DIR)/usr/include \ --x-libraries=$(STAGING_DIR)/usr/lib $(eval $(autotools-package)) ================================================ FILE: package/woff2/0001-CMake-Handle-multiple-libraries-being-returned-for-B.patch ================================================ From 9a6d50b3f355c1e4d72a235aa0bac4856dff1785 Mon Sep 17 00:00:00 2001 From: Adrian Perez de Castro Date: Tue, 27 Mar 2018 19:59:23 +0100 Subject: [PATCH] CMake: Handle multiple libraries being returned for Brotli Brotli is built as three libraries: libbrotlienc, libbrotlidec, and libbrotlicommon. When requesting the linker flags using pkg-config for e.g. libbrotlidec, it will return both libbrotlidec and libbrotlicommon. The FindBrotli*.cmake files ignore the names of the libraries returned by pkg-config, and hardcode only the libbrotli{enc,dec} names. While this is fine when using shared libraries (they contain an entry for libbrotlicommon as required library in their headers), it will cause linker errors when Brotli has been built as static libraries, due to the missing symbols from libbrotlicommon being unknown to the linker. This fixes FindBrotli*.cmake files by using the library names reported by pkg-config (instead of hardcoding them), and applying find_library() to each of the libraries to find their absolute paths. If any of the libraries is missing, the corresponding BROTLI{ENC,DEC}_LIBRARIES is unset to let find_package_handle_standard_args() report an error. --- cmake/FindBrotliDec.cmake | 13 +++++++++---- cmake/FindBrotliEnc.cmake | 14 ++++++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) Signed-off-by: Adrian Perez de Castro Upstream-Status: Submitted [https://github.com/google/woff2/pull/112] diff --git a/cmake/FindBrotliDec.cmake b/cmake/FindBrotliDec.cmake index abb06f4..9cbb415 100644 --- a/cmake/FindBrotliDec.cmake +++ b/cmake/FindBrotliDec.cmake @@ -18,10 +18,15 @@ find_path(BROTLIDEC_INCLUDE_DIRS HINTS ${PC_BROTLIDEC_INCLUDEDIR} ) -find_library(BROTLIDEC_LIBRARIES - NAMES brotlidec - HINTS ${PC_BROTLIDEC_LIBDIR} -) +set(BROTLIDEC_LIBRARIES "") +foreach(_lib ${PC_BROTLIDEC_LIBRARIES}) + find_library(PC_BROTLIDEC_PATH_${_lib} ${_lib} HINTS ${PC_BROTLIDEC_LIBRARY_DIRS}) + if(NOT PC_BROTLIDEC_PATH_${_lib}) + unset(BROTLIDEC_LIBRARIES) + break() + endif() + list(APPEND BROTLIDEC_LIBRARIES "${PC_BROTLIDEC_PATH_${_lib}}") +endforeach() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(BrotliDec diff --git a/cmake/FindBrotliEnc.cmake b/cmake/FindBrotliEnc.cmake index 4be347d..55f3932 100644 --- a/cmake/FindBrotliEnc.cmake +++ b/cmake/FindBrotliEnc.cmake @@ -18,10 +18,16 @@ find_path(BROTLIENC_INCLUDE_DIRS HINTS ${PC_BROTLIENC_INCLUDEDIR} ) -find_library(BROTLIENC_LIBRARIES - NAMES brotlienc - HINTS ${PC_BROTLIENC_LIBDIR} -) +set(BROTLIENC_LIBRARIES "") +foreach(_lib ${PC_BROTLIENC_LIBRARIES}) + find_library(PC_BROTLIENC_PATH_${_lib} ${_lib} + HINTS ${PC_BROTLIENC_LIBRARY_DIRS}) + if(NOT PC_BROTLIENC_PATH_${_lib}) + unset(BROTLIENC_LIBRARIES) + break() + endif() + list(APPEND BROTLIENC_LIBRARIES "${PC_BROTLIENC_PATH_${_lib}}") +endforeach() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(BrotliEnc -- 2.16.3 ================================================ FILE: package/woff2/Config.in ================================================ config BR2_PACKAGE_WOFF2 bool "woff2" depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_BROTLI help Reference implementation for the WOFF2 font file format, typically used for Web fonts https://github.com/google/woff2 comment "woff2 needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/woff2/woff2.hash ================================================ # Locally generated: sha512 c788bba1530aec463e755e901f9342f4b599e3a07f54645fef1dc388ab5d5c30625535e5dd38e9e792e04a640574baa50eeefb6b7338ab403755f4a4e0c3044d v1.0.2.tar.gz # Hash for license files: sha512 8ee924da3fb5d16135adcf6a8fbe9e2e8f3d2d80468617e72ca4fa059a60f8455c9a5f68a8dc381b1297c8bf39c887a912d0f69246d2604ada74d3da9e8e490b LICENSE ================================================ FILE: package/woff2/woff2.mk ================================================ ################################################################################ # # woff2 # ################################################################################ WOFF2_VERSION = 1.0.2 WOFF2_SOURCE = v$(WOFF2_VERSION).tar.gz WOFF2_SITE = https://github.com/google/woff2/archive WOFF2_LICENSE = MIT WOFF2_LICENSE_FILES = LICENSE WOFF2_INSTALL_STAGING = YES WOFF2_DEPENDENCIES = brotli WOFF2_CONF_OPTS = \ -DNOISY_LOGGING=OFF # The CMake build files for woff2 manually set some RPATH handling options # which make the installation steps fail with static builds, so pass this # to prevent any attempt of mangling RPATH that CMake would do. ifneq ($(BR2_SHARED_LIBS),y) WOFF2_CONF_OPTS += -DCMAKE_SKIP_RPATH=ON endif $(eval $(cmake-package)) ================================================ FILE: package/wolfssl/Config.in ================================================ config BR2_PACKAGE_WOLFSSL bool "wolfssl" depends on BR2_TOOLCHAIN_HAS_THREADS help The wolfSSL embedded SSL library (formerly CyaSSL) is a lightweight, portable, C-language-based SSL/TLS library targeted at IoT, embedded, and RTOS environments primarily because of its size, speed, and feature set. https://www.wolfssl.com/ if BR2_PACKAGE_WOLFSSL config BR2_PACKAGE_WOLFSSL_ALL bool "enable all features, except SSLv3" help Enable all wolfSSL features, except SSL version 3.0 support. config BR2_PACKAGE_WOLFSSL_SSLV3 bool "enable SSLv3" help Enable SSL version 3.0 support. endif comment "wolfssl needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/wolfssl/wolfssl.hash ================================================ # Locally computed: sha256 50db45f348f47e00c93dd244c24108220120cb3cc9d01434789229c32937c444 wolfssl-4.8.1-stable.tar.gz # Hash for license files: sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 b23c1da1f85d699d3288d73c952b4cd02760d23dc1ddc1b221cbb8be82387189 LICENSING ================================================ FILE: package/wolfssl/wolfssl.mk ================================================ ################################################################################ # # wolfssl # ################################################################################ WOLFSSL_VERSION = 4.8.1-stable WOLFSSL_SITE = $(call github,wolfSSL,wolfssl,v$(WOLFSSL_VERSION)) WOLFSSL_INSTALL_STAGING = YES WOLFSSL_LICENSE = GPL-2.0+ WOLFSSL_LICENSE_FILES = COPYING LICENSING WOLFSSL_CPE_ID_VENDOR = wolfssl WOLFSSL_DEPENDENCIES = host-pkgconf # wolfssl's source code is released without a configure # script, so we need autoreconf WOLFSSL_AUTORECONF = YES WOLFSSL_CONF_OPTS = --disable-examples --disable-crypttests ifeq ($(BR2_PACKAGE_WOLFSSL_ALL),y) WOLFSSL_CONF_OPTS += --enable-all else WOLFSSL_CONF_OPTS += --disable-all endif ifeq ($(BR2_PACKAGE_WOLFSSL_SSLV3),y) WOLFSSL_CONF_OPTS += --enable-sslv3 else WOLFSSL_CONF_OPTS += --disable-sslv3 endif # enable ARMv8 hardware acceleration ifeq ($(BR2_ARM_CPU_ARMV8A),y) WOLFSSL_CONF_OPTS += --enable-armasm # the flag -mstrict-align is needed to prevent build errors caused by # some inline assembly in parts of the AES structure using the "m" # constraint ifeq ($(BR2_aarch64),y) WOLFSSL_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -mstrict-align" endif else WOLFSSL_CONF_OPTS += --disable-armasm endif $(eval $(autotools-package)) ================================================ FILE: package/wpa_supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch ================================================ From 8c07fa9eda13e835f3f968b2e1c9a8be3a851ff9 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Thu, 29 Aug 2019 11:52:04 +0300 Subject: [PATCH] AP: Silently ignore management frame from unexpected source address Do not process any received Management frames with unexpected/invalid SA so that we do not add any state for unexpected STA addresses or end up sending out frames to unexpected destination. This prevents unexpected sequences where an unprotected frame might end up causing the AP to send out a response to another device and that other device processing the unexpected response. In particular, this prevents some potential denial of service cases where the unexpected response frame from the AP might result in a connected station dropping its association. Signed-off-by: Jouni Malinen Signed-off-by: Fabrice Fontaine [Retrieved from: https://w1.fi/security/2019-7/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch] --- src/ap/drv_callbacks.c | 13 +++++++++++++ src/ap/ieee802_11.c | 12 ++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c index 31587685fe3b..34ca379edc3d 100644 --- a/src/ap/drv_callbacks.c +++ b/src/ap/drv_callbacks.c @@ -131,6 +131,19 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr, "hostapd_notif_assoc: Skip event with no address"); return -1; } + + if (is_multicast_ether_addr(addr) || + is_zero_ether_addr(addr) || + os_memcmp(addr, hapd->own_addr, ETH_ALEN) == 0) { + /* Do not process any frames with unexpected/invalid SA so that + * we do not add any state for unexpected STA addresses or end + * up sending out frames to unexpected destination. */ + wpa_printf(MSG_DEBUG, "%s: Invalid SA=" MACSTR + " in received indication - ignore this indication silently", + __func__, MAC2STR(addr)); + return 0; + } + random_add_randomness(addr, ETH_ALEN); hostapd_logger(hapd, addr, HOSTAPD_MODULE_IEEE80211, diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c index c85a28db44b7..e7065372e158 100644 --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c @@ -4626,6 +4626,18 @@ int ieee802_11_mgmt(struct hostapd_data *hapd, const u8 *buf, size_t len, fc = le_to_host16(mgmt->frame_control); stype = WLAN_FC_GET_STYPE(fc); + if (is_multicast_ether_addr(mgmt->sa) || + is_zero_ether_addr(mgmt->sa) || + os_memcmp(mgmt->sa, hapd->own_addr, ETH_ALEN) == 0) { + /* Do not process any frames with unexpected/invalid SA so that + * we do not add any state for unexpected STA addresses or end + * up sending out frames to unexpected destination. */ + wpa_printf(MSG_DEBUG, "MGMT: Invalid SA=" MACSTR + " in received frame - ignore this frame silently", + MAC2STR(mgmt->sa)); + return 0; + } + if (stype == WLAN_FC_STYPE_BEACON) { handle_beacon(hapd, mgmt, len, fi); return 1; -- 2.20.1 ================================================ FILE: package/wpa_supplicant/0002-ASN.1-Validate-DigestAlgorithmIdentifier-parameters.patch ================================================ From a0541334a6394f8237a4393b7372693cd7e96f15 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 13 Mar 2021 18:19:31 +0200 Subject: [PATCH] ASN.1: Validate DigestAlgorithmIdentifier parameters The supported hash algorithms do not use AlgorithmIdentifier parameters. However, there are implementations that include NULL parameters in addition to ones that omit the parameters. Previous implementation did not check the parameters value at all which supported both these cases, but did not reject any other unexpected information. Use strict validation of digest algorithm parameters and reject any unexpected value when validating a signature. This is needed to prevent potential forging attacks. Signed-off-by: Jouni Malinen Signed-off-by: Peter Korsgaard --- src/tls/pkcs1.c | 21 +++++++++++++++++++++ src/tls/x509v3.c | 20 ++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/tls/pkcs1.c b/src/tls/pkcs1.c index bbdb0d72d..5761dfed0 100644 --- a/src/tls/pkcs1.c +++ b/src/tls/pkcs1.c @@ -244,6 +244,8 @@ int pkcs1_v15_sig_ver(struct crypto_public_key *pk, os_free(decrypted); return -1; } + wpa_hexdump(MSG_MSGDUMP, "PKCS #1: DigestInfo", + hdr.payload, hdr.length); pos = hdr.payload; end = pos + hdr.length; @@ -265,6 +267,8 @@ int pkcs1_v15_sig_ver(struct crypto_public_key *pk, os_free(decrypted); return -1; } + wpa_hexdump(MSG_MSGDUMP, "PKCS #1: DigestAlgorithmIdentifier", + hdr.payload, hdr.length); da_end = hdr.payload + hdr.length; if (asn1_get_oid(hdr.payload, hdr.length, &oid, &next)) { @@ -273,6 +277,23 @@ int pkcs1_v15_sig_ver(struct crypto_public_key *pk, os_free(decrypted); return -1; } + wpa_hexdump(MSG_MSGDUMP, "PKCS #1: Digest algorithm parameters", + next, da_end - next); + + /* + * RFC 5754: The correct encoding for the SHA2 algorithms would be to + * omit the parameters, but there are implementation that encode these + * as a NULL element. Allow these two cases and reject anything else. + */ + if (da_end > next && + (asn1_get_next(next, da_end - next, &hdr) < 0 || + !asn1_is_null(&hdr) || + hdr.payload + hdr.length != da_end)) { + wpa_printf(MSG_DEBUG, + "PKCS #1: Unexpected digest algorithm parameters"); + os_free(decrypted); + return -1; + } if (!asn1_oid_equal(&oid, hash_alg)) { char txt[100], txt2[100]; diff --git a/src/tls/x509v3.c b/src/tls/x509v3.c index a8944dd2f..df337ec4d 100644 --- a/src/tls/x509v3.c +++ b/src/tls/x509v3.c @@ -1964,6 +1964,7 @@ int x509_check_signature(struct x509_certificate *issuer, os_free(data); return -1; } + wpa_hexdump(MSG_MSGDUMP, "X509: DigestInfo", hdr.payload, hdr.length); pos = hdr.payload; end = pos + hdr.length; @@ -1985,6 +1986,8 @@ int x509_check_signature(struct x509_certificate *issuer, os_free(data); return -1; } + wpa_hexdump(MSG_MSGDUMP, "X509: DigestAlgorithmIdentifier", + hdr.payload, hdr.length); da_end = hdr.payload + hdr.length; if (asn1_get_oid(hdr.payload, hdr.length, &oid, &next)) { @@ -1992,6 +1995,23 @@ int x509_check_signature(struct x509_certificate *issuer, os_free(data); return -1; } + wpa_hexdump(MSG_MSGDUMP, "X509: Digest algorithm parameters", + next, da_end - next); + + /* + * RFC 5754: The correct encoding for the SHA2 algorithms would be to + * omit the parameters, but there are implementation that encode these + * as a NULL element. Allow these two cases and reject anything else. + */ + if (da_end > next && + (asn1_get_next(next, da_end - next, &hdr) < 0 || + !asn1_is_null(&hdr) || + hdr.payload + hdr.length != da_end)) { + wpa_printf(MSG_DEBUG, + "X509: Unexpected digest algorithm parameters"); + os_free(data); + return -1; + } if (x509_sha1_oid(&oid)) { if (signature->oid.oid[6] != 5 /* sha-1WithRSAEncryption */) { -- 2.20.1 ================================================ FILE: package/wpa_supplicant/0003-Include-stdbool.h-to-allow-C99-bool-to-be-used.patch ================================================ From 99cf89555313056d3a8fa54b21d02dc880b363e1 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Mon, 20 Apr 2020 20:29:31 +0300 Subject: [PATCH] Include stdbool.h to allow C99 bool to be used We have practically started requiring some C99 features, so might as well finally go ahead and bring in the C99 bool as well. Signed-off-by: Jouni Malinen [geomatsi@gmail.com: backport from upstream] Signed-off-by: Sergey Matyukevich [yann.morin.1998@free.fr: keep upstream sha1 in header, drop numbering] Signed-off-by: Yann E. MORIN --- src/utils/includes.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/utils/includes.h b/src/utils/includes.h index 75513fc8c..741fc9c14 100644 --- a/src/utils/includes.h +++ b/src/utils/includes.h @@ -18,6 +18,7 @@ #include #include +#include #include #include #include -- 2.25.1 ================================================ FILE: package/wpa_supplicant/0004-ASN.1-Add-helper-functions-for-recognizing-tag-value.patch ================================================ From 9a990e8c4eb92dd64e0ec483599820e45c35ac23 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 13 Mar 2021 23:14:23 +0200 Subject: [PATCH] ASN.1: Add helper functions for recognizing tag values Signed-off-by: Jouni Malinen [geomatsi@gmail.com: backport asn1_is_null() from upstream 9a990e8c4eb9] Signed-off-by: Sergey Matyukevich [yann.morin.1998@free.fr: - reformat, keep the upstream sha1 and title, - drop numbering ] Signed-off-by: Yann E. MORIN --- src/tls/asn1.h | 102 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/src/tls/asn1.h b/src/tls/asn1.h index de3430adb..a4d1be473 100644 --- a/src/tls/asn1.h +++ b/src/tls/asn1.h @@ -66,6 +66,12 @@ struct wpabuf * asn1_build_alg_id(const struct asn1_oid *oid, unsigned long asn1_bit_string_to_long(const u8 *buf, size_t len); int asn1_oid_equal(const struct asn1_oid *a, const struct asn1_oid *b); +static inline bool asn1_is_null(const struct asn1_hdr *hdr) +{ + return hdr->class == ASN1_CLASS_UNIVERSAL && + hdr->tag == ASN1_TAG_NULL; +} + extern struct asn1_oid asn1_sha1_oid; extern struct asn1_oid asn1_sha256_oid; -- 2.25.1 ================================================ FILE: package/wpa_supplicant/50-wpa_supplicant.preset ================================================ disable wpa_supplicant@.service disable wpa_supplicant-nl80211@.service disable wpa_supplicant-wired@.service ================================================ FILE: package/wpa_supplicant/Config.in ================================================ menuconfig BR2_PACKAGE_WPA_SUPPLICANT bool "wpa_supplicant" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 if BR2_PACKAGE_LIBOPENSSL help WPA supplicant for secure wireless networks http://w1.fi/wpa_supplicant/ if BR2_PACKAGE_WPA_SUPPLICANT config BR2_PACKAGE_WPA_SUPPLICANT_NL80211 bool "Enable nl80211 support" default y depends on BR2_TOOLCHAIN_HAS_THREADS # libnl select BR2_PACKAGE_LIBNL help Enable support for nl80211. This is the current wireless API for Linux, supported by all wireless drivers in vanilla Linux, but may not be supported by some out-of-tree Linux wireless drivers. wpa_supplicant will still fall back to using the Wireless Extensions (wext) API with these drivers. If this option is disabled, then only the deprecated wext API will be supported, with far less features. Linux may supports using wext with modern drivers using a compatibility layer, but it must be enabled in the kernel configuration. comment "nl80211 support needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_WPA_SUPPLICANT_WEXT bool "Enable wext (deprecated)" default y if !BR2_TOOLCHAIN_HAS_THREADS help Enable support for wext. This is the historic wireless API for Linux, which is now deprecated and in maintenance-only in the kernel. It may still be required by out-of-tree drivers. config BR2_PACKAGE_WPA_SUPPLICANT_WIRED bool "Enable wired support" select BR2_PACKAGE_WPA_SUPPLICANT_EAP help Include the "wired" driver, so the internal IEEE 802.1x supplicant can be used with Ethernet. This also enables support for MACSEC. comment "wpa_supplicant will be useless without at least one driver" depends on !BR2_PACKAGE_WPA_SUPPLICANT_NL80211 && \ !BR2_PACKAGE_WPA_SUPPLICANT_WEXT && \ !BR2_PACKAGE_WPA_SUPPLICANT_WIRED config BR2_PACKAGE_WPA_SUPPLICANT_IBSS_RSN bool "Enable IBSS RSN" depends on BR2_PACKAGE_WPA_SUPPLICANT_NL80211 help Enable support for RSN/WPA2 in Ad-Hoc mode. config BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT bool "Enable AP mode" depends on BR2_PACKAGE_WPA_SUPPLICANT_NL80211 help With this option enabled, wpa_supplicant can act as an access point much like hostapd does with a limited feature set. This links in parts of hostapd functionality into wpa_supplicant, making it bigger but dispensing the need for a separate hostapd binary in some applications hence being smaller overall. It also enables support for Wi-Fi Direct. 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_MESH_NETWORKING bool "Enable mesh networking" depends on BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL help Enable support for open and secured mesh networking (IEEE 802.11s) 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 Enable support for EAP, 802.1x/WPA-Enterprise and FILS. config BR2_PACKAGE_WPA_SUPPLICANT_HOTSPOT bool "Enable HS20" select BR2_PACKAGE_WPA_SUPPLICANT_EAP help Enable Hotspot 2.0 and IEEE 802.11u interworking functionality. config BR2_PACKAGE_WPA_SUPPLICANT_DEBUG_SYSLOG bool "Enable syslog support" help Enable support for sending debug messages to syslog. config BR2_PACKAGE_WPA_SUPPLICANT_WPS bool "Enable WPS" help Enable support for Wi-Fi Protected Setup (WPS). config BR2_PACKAGE_WPA_SUPPLICANT_WPA3 bool "Enable WPA3 support" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL help Enable WPA3 support including OWE, SAE, DPP config BR2_PACKAGE_WPA_SUPPLICANT_CLI bool "Install wpa_cli binary" select BR2_PACKAGE_WPA_SUPPLICANT_CTRL_IFACE help Install wpa_cli command line utility config BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO bool "Install wpa_client shared library" depends on !BR2_STATIC_LIBS help Install libwpa_client.so. comment "wpa_client library needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS config BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE bool "Install wpa_passphrase binary" help Install wpa_passphrase command line utility. config BR2_PACKAGE_WPA_SUPPLICANT_CTRL_IFACE bool "Enable the Unix-socket control interface" help Enable support for the Unix-socket-based API. config BR2_PACKAGE_WPA_SUPPLICANT_DBUS bool "Enable support for the DBus control interface" depends on BR2_TOOLCHAIN_HAS_THREADS # dbus select BR2_PACKAGE_DBUS help Enable support for the DBus control interface. comment "dbus support needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_WPA_SUPPLICANT_DBUS_INTROSPECTION bool "Introspection support" depends on BR2_PACKAGE_WPA_SUPPLICANT_DBUS help Add introspection support for the DBus control interface. endif ================================================ FILE: package/wpa_supplicant/wpa_supplicant.conf ================================================ ctrl_interface=/var/run/wpa_supplicant ap_scan=1 network={ key_mgmt=NONE } ================================================ FILE: package/wpa_supplicant/wpa_supplicant.hash ================================================ # Locally calculated sha256 fcbdee7b4a64bea8177973299c8c824419c413ec2e3a95db63dd6a5dc3541f17 wpa_supplicant-2.9.tar.gz sha256 9da5dd0776da266b180b915e460ff75c6ff729aca1196ab396529510f24f3761 README sha256 c4d65cc13863e0237d0644198558e2c47b4ed91e2b2be4516ff590724187c4a5 0001-P2P-Fix-copying-of-secondary-device-types-for-P2P-gr.patch sha256 7f40cfec5faf5e927ea9028ab9392cd118685bde7229ad24210caf0a8f6e9611 0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch ================================================ FILE: package/wpa_supplicant/wpa_supplicant.mk ================================================ ################################################################################ # # wpa_supplicant # ################################################################################ WPA_SUPPLICANT_VERSION = 2.9 WPA_SUPPLICANT_SITE = http://w1.fi/releases WPA_SUPPLICANT_PATCH = \ https://w1.fi/security/2020-2/0001-P2P-Fix-copying-of-secondary-device-types-for-P2P-gr.patch \ https://w1.fi/security/2021-1/0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch WPA_SUPPLICANT_LICENSE = BSD-3-Clause WPA_SUPPLICANT_LICENSE_FILES = README WPA_SUPPLICANT_CPE_ID_VENDOR = w1.fi WPA_SUPPLICANT_CONFIG = $(WPA_SUPPLICANT_DIR)/wpa_supplicant/.config WPA_SUPPLICANT_SUBDIR = wpa_supplicant WPA_SUPPLICANT_DBUS_SERVICE = fi.w1.wpa_supplicant1 WPA_SUPPLICANT_CFLAGS = $(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/libnl3/ WPA_SUPPLICANT_LDFLAGS = $(TARGET_LDFLAGS) WPA_SUPPLICANT_SELINUX_MODULES = networkmanager # 0001-AP-Silently-ignore-management-frame-from-unexpected-.patch WPA_SUPPLICANT_IGNORE_CVES += CVE-2019-16275 # 0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch WPA_SUPPLICANT_IGNORE_CVES += CVE-2021-27803 # 0002-ASN.1-Validate-DigestAlgorithmIdentifier-parameters.patch WPA_SUPPLICANT_IGNORE_CVES += CVE-2021-30004 # install the wpa_client library WPA_SUPPLICANT_INSTALL_STAGING = YES WPA_SUPPLICANT_CONFIG_EDITS = WPA_SUPPLICANT_CONFIG_ENABLE = \ CONFIG_INTERNAL_LIBTOMMATH \ CONFIG_MATCH_IFACE WPA_SUPPLICANT_CONFIG_DISABLE = \ CONFIG_SMARTCARD # libnl-3 needs -lm (for rint) and -lpthread if linking statically # And library order matters hence stick -lnl-3 first since it's appended # in the wpa_supplicant Makefiles as in LIBS+=-lnl-3 ... thus failing ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_NL80211),y) ifeq ($(BR2_STATIC_LIBS),y) WPA_SUPPLICANT_LIBS += -lnl-3 -lm -lpthread endif WPA_SUPPLICANT_DEPENDENCIES += host-pkgconf libnl WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_LIBNL32 else WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_DRIVER_NL80211 endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_WEXT),) WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_DRIVER_WEXT endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_IBSS_RSN), ) WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_IBSS_RSN endif # Trailing underscore on purpose to not enable CONFIG_EAPOL_TEST ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_EAP),y) WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_EAP_ # uses dlopen() ifeq ($(BR2_STATIC_LIBS),y) WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_EAP_TNC endif else WPA_SUPPLICANT_CONFIG_DISABLE += \ CONFIG_EAP \ CONFIG_IEEE8021X_EAPOL \ CONFIG_FILS endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_WIRED),) WPA_SUPPLICANT_CONFIG_DISABLE += \ CONFIG_DRIVER_WIRED \ CONFIG_MACSEC \ CONFIG_DRIVER_MACSEC endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_HOTSPOT),) WPA_SUPPLICANT_CONFIG_DISABLE += \ CONFIG_HS20 \ CONFIG_INTERWORKING endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT),y) WPA_SUPPLICANT_CONFIG_ENABLE += \ CONFIG_AP \ CONFIG_P2P else WPA_SUPPLICANT_CONFIG_DISABLE += \ CONFIG_AP \ CONFIG_P2P endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_WIFI_DISPLAY),y) WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_WIFI_DISPLAY else WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_WIFI_DISPLAY endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_MESH_NETWORKING),y) WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_MESH else WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_MESH 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),) WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_WPS endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_WPA3),y) WPA_SUPPLICANT_CONFIG_ENABLE += \ CONFIG_DPP \ CONFIG_SAE \ CONFIG_OWE else WPA_SUPPLICANT_CONFIG_DISABLE += \ CONFIG_DPP \ CONFIG_SAE \ CONFIG_OWE endif # Try to use openssl if it's already available ifeq ($(BR2_PACKAGE_LIBOPENSSL),y) WPA_SUPPLICANT_DEPENDENCIES += host-pkgconf libopenssl WPA_SUPPLICANT_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs openssl` WPA_SUPPLICANT_CONFIG_EDITS += 's/\#\(CONFIG_TLS=openssl\)/\1/' else WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_EAP_PWD CONFIG_EAP_TEAP WPA_SUPPLICANT_CONFIG_EDITS += 's/\#\(CONFIG_TLS=\).*/\1internal/' endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_CTRL_IFACE),) WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_CTRL_IFACE\> endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_DBUS),y) WPA_SUPPLICANT_DEPENDENCIES += host-pkgconf dbus WPA_SUPPLICANT_MAKE_ENV = \ PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \ PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig" WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_CTRL_IFACE_DBUS_NEW define WPA_SUPPLICANT_INSTALL_DBUS_NEW $(INSTALL) -m 0644 -D \ $(@D)/wpa_supplicant/dbus/$(WPA_SUPPLICANT_DBUS_SERVICE).service \ $(TARGET_DIR)/usr/share/dbus-1/system-services/$(WPA_SUPPLICANT_DBUS_SERVICE).service endef ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_DBUS_INTROSPECTION),y) WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_CTRL_IFACE_DBUS_INTRO endif else WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_CTRL_IFACE_DBUS_NEW endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_DEBUG_SYSLOG),) WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_DEBUG_SYSLOG endif ifeq ($(BR2_PACKAGE_READLINE),y) WPA_SUPPLICANT_DEPENDENCIES += readline WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_READLINE endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO),y) WPA_SUPPLICANT_CONFIG_SET += CONFIG_BUILD_WPA_CLIENT_SO define WPA_SUPPLICANT_INSTALL_WPA_CLIENT_SO $(INSTALL) -m 0644 -D $(@D)/$(WPA_SUPPLICANT_SUBDIR)/libwpa_client.so \ $(TARGET_DIR)/usr/lib/libwpa_client.so $(INSTALL) -m 0644 -D $(@D)/src/common/wpa_ctrl.h \ $(TARGET_DIR)/usr/include/wpa_ctrl.h endef define WPA_SUPPLICANT_INSTALL_STAGING_WPA_CLIENT_SO $(INSTALL) -m 0644 -D $(@D)/$(WPA_SUPPLICANT_SUBDIR)/libwpa_client.so \ $(STAGING_DIR)/usr/lib/libwpa_client.so $(INSTALL) -m 0644 -D $(@D)/src/common/wpa_ctrl.h \ $(STAGING_DIR)/usr/include/wpa_ctrl.h endef endif define WPA_SUPPLICANT_CONFIGURE_CMDS cp $(@D)/wpa_supplicant/defconfig $(WPA_SUPPLICANT_CONFIG) sed -i $(patsubst %,-e 's/^#\(%\)/\1/',$(WPA_SUPPLICANT_CONFIG_ENABLE)) \ $(patsubst %,-e 's/^\(%\)/#\1/',$(WPA_SUPPLICANT_CONFIG_DISABLE)) \ $(patsubst %,-e '1i%=y',$(WPA_SUPPLICANT_CONFIG_SET)) \ $(patsubst %,-e %,$(WPA_SUPPLICANT_CONFIG_EDITS)) \ $(WPA_SUPPLICANT_CONFIG) endef # LIBS for wpa_supplicant, LIBS_c for wpa_cli, LIBS_p for wpa_passphrase define WPA_SUPPLICANT_BUILD_CMDS $(TARGET_MAKE_ENV) CFLAGS="$(WPA_SUPPLICANT_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" BINDIR=/usr/sbin \ LIBS="$(WPA_SUPPLICANT_LIBS)" LIBS_c="$(WPA_SUPPLICANT_LIBS)" \ LIBS_p="$(WPA_SUPPLICANT_LIBS)" \ $(MAKE) CC="$(TARGET_CC)" -C $(@D)/$(WPA_SUPPLICANT_SUBDIR) endef ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_CLI),y) define WPA_SUPPLICANT_INSTALL_CLI $(INSTALL) -m 0755 -D $(@D)/$(WPA_SUPPLICANT_SUBDIR)/wpa_cli \ $(TARGET_DIR)/usr/sbin/wpa_cli endef endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE),y) define WPA_SUPPLICANT_INSTALL_PASSPHRASE $(INSTALL) -m 0755 -D $(@D)/$(WPA_SUPPLICANT_SUBDIR)/wpa_passphrase \ $(TARGET_DIR)/usr/sbin/wpa_passphrase endef endif ifeq ($(BR2_PACKAGE_DBUS),y) define WPA_SUPPLICANT_INSTALL_DBUS $(INSTALL) -m 0644 -D \ $(@D)/wpa_supplicant/dbus/dbus-wpa_supplicant.conf \ $(TARGET_DIR)/etc/dbus-1/system.d/wpa_supplicant.conf $(WPA_SUPPLICANT_INSTALL_DBUS_NEW) endef endif define WPA_SUPPLICANT_INSTALL_STAGING_CMDS $(WPA_SUPPLICANT_INSTALL_STAGING_WPA_CLIENT_SO) endef define WPA_SUPPLICANT_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/$(WPA_SUPPLICANT_SUBDIR)/wpa_supplicant \ $(TARGET_DIR)/usr/sbin/wpa_supplicant $(INSTALL) -m 644 -D package/wpa_supplicant/wpa_supplicant.conf \ $(TARGET_DIR)/etc/wpa_supplicant.conf $(WPA_SUPPLICANT_INSTALL_CLI) $(WPA_SUPPLICANT_INSTALL_PASSPHRASE) $(WPA_SUPPLICANT_INSTALL_DBUS) $(WPA_SUPPLICANT_INSTALL_WPA_CLIENT_SO) endef define WPA_SUPPLICANT_INSTALL_INIT_SYSTEMD $(INSTALL) -m 0644 -D $(@D)/$(WPA_SUPPLICANT_SUBDIR)/systemd/wpa_supplicant.service \ $(TARGET_DIR)/usr/lib/systemd/system/wpa_supplicant.service $(INSTALL) -m 0644 -D $(@D)/$(WPA_SUPPLICANT_SUBDIR)/systemd/wpa_supplicant@.service \ $(TARGET_DIR)/usr/lib/systemd/system/wpa_supplicant@.service $(INSTALL) -m 0644 -D $(@D)/$(WPA_SUPPLICANT_SUBDIR)/systemd/wpa_supplicant-nl80211@.service \ $(TARGET_DIR)/usr/lib/systemd/system/wpa_supplicant-nl80211@.service $(INSTALL) -m 0644 -D $(@D)/$(WPA_SUPPLICANT_SUBDIR)/systemd/wpa_supplicant-wired@.service \ $(TARGET_DIR)/usr/lib/systemd/system/wpa_supplicant-wired@.service $(INSTALL) -D -m 644 $(WPA_SUPPLICANT_PKGDIR)/50-wpa_supplicant.preset \ $(TARGET_DIR)/usr/lib/systemd/system-preset/50-wpa_supplicant.preset endef $(eval $(generic-package)) ================================================ FILE: package/wpan-tools/Config.in ================================================ 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 ================================================ FILE: package/wpan-tools/wpan-tools.hash ================================================ # Locally calculated sha256 3e509d9ed838df1247cc9a0c6ca483cb356ae778851817bd7410044687b655e2 wpan-tools-0.9.tar.gz sha256 fe8e595c24d821a60885eb259619df5e5e3976c48465fde0be29fcd78530798f COPYING ================================================ FILE: package/wpan-tools/wpan-tools.mk ================================================ ################################################################################ # # wpan-tools # ################################################################################ WPAN_TOOLS_VERSION = 0.9 WPAN_TOOLS_SITE = $(call github,linux-wpan,wpan-tools,wpan-tools-$(WPAN_TOOLS_VERSION)) WPAN_TOOLS_DEPENDENCIES = host-pkgconf libnl WPAN_TOOLS_LICENSE = ISC WPAN_TOOLS_LICENSE_FILES = COPYING # From git WPAN_TOOLS_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/wpebackend-fdo/Config.in ================================================ comment "wpebackend-fdo needs a toolchain w/ C++, wchar, threads, dynamic library and an OpenEGL-capable Wayland backend" depends on !BR2_PACKAGE_HAS_LIBEGL_WAYLAND || !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR \ || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS config BR2_PACKAGE_WPEBACKEND_FDO bool "wpebackend-fdo" depends on !BR2_STATIC_LIBS # wayland depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # wayland, libglib2 depends on BR2_USE_WCHAR # libglib2 depends on BR2_USE_MMU # libglib2 depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND select BR2_PACKAGE_LIBEPOXY select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBWPE select BR2_PACKAGE_WAYLAND help WPEBackend interface using freedesktop.org API. https://wpewebkit.org/ ================================================ FILE: package/wpebackend-fdo/wpebackend-fdo.hash ================================================ # From https://wpewebkit.org/releases/wpebackend-fdo-1.10.0.tar.xz.sums md5 306adbb0c66dc753e1794c83b7a2682b wpebackend-fdo-1.10.0.tar.xz sha1 bf71718a213c6511dea278ade5ce90967d181995 wpebackend-fdo-1.10.0.tar.xz sha256 b89dfd3500a4dec711132cd7bff72599e67d56a419d000730e14bb99547509cc wpebackend-fdo-1.10.0.tar.xz # Hashes for license files: sha256 c9f6803371047fad3e72200ec6cd226329a5ee08ac61104c8211c2761fb46825 COPYING ================================================ FILE: package/wpebackend-fdo/wpebackend-fdo.mk ================================================ ################################################################################ # # wpebackend-fdo # ################################################################################ WPEBACKEND_FDO_VERSION = 1.10.0 WPEBACKEND_FDO_SITE = https://wpewebkit.org/releases WPEBACKEND_FDO_SOURCE = wpebackend-fdo-$(WPEBACKEND_FDO_VERSION).tar.xz WPEBACKEND_FDO_INSTALL_STAGING = YES WPEBACKEND_FDO_LICENSE = BSD-2-Clause WPEBACKEND_FDO_LICENSE_FILES = COPYING WPEBACKEND_FDO_DEPENDENCIES = libepoxy libglib2 libwpe wayland $(eval $(meson-package)) ================================================ FILE: package/wpewebkit/Config.in ================================================ config BR2_PACKAGE_WPEWEBKIT_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_aarch64 || BR2_aarch64_be 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 depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt comment "wpewebkit needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 7, host gcc >= 4.9" depends on BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS depends on !BR2_BINFMT_FLAT depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR \ || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_7 \ || !BR2_HOST_GCC_AT_LEAST_4_9 comment "wpewebkit needs an OpenGL ES w/ EGL-capable Wayland backend" depends on BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS depends on !BR2_BINFMT_FLAT depends on !BR2_PACKAGE_HAS_LIBGLES || !BR2_PACKAGE_HAS_LIBEGL \ || !BR2_PACKAGE_HAS_LIBEGL_WAYLAND config BR2_PACKAGE_WPEWEBKIT bool "wpewebkit" depends on !BR2_STATIC_LIBS # wayland depends on !BR2_BINFMT_FLAT # icu depends on BR2_HOST_GCC_AT_LEAST_4_9 # icu, host-ruby depends on BR2_INSTALL_LIBSTDCPP # harfbuzz, icu depends on BR2_TOOLCHAIN_HAS_THREADS # wayland, icu, libsoup depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 depends on BR2_USE_WCHAR # icu, libsoup depends on BR2_PACKAGE_HAS_LIBGLES # libepoxy depends on BR2_PACKAGE_HAS_LIBEGL # libepoxy depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND # wpebackend-fdo depends on BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS select BR2_PACKAGE_CAIRO select BR2_PACKAGE_CAIRO_PNG select BR2_PACKAGE_HARFBUZZ select BR2_PACKAGE_ICU select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBEPOXY select BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_LIBSOUP select BR2_PACKAGE_LIBTASN1 select BR2_PACKAGE_LIBXSLT select BR2_PACKAGE_OPENJPEG select BR2_PACKAGE_WAYLAND select BR2_PACKAGE_WAYLAND_PROTOCOLS select BR2_PACKAGE_WEBP select BR2_PACKAGE_WEBP_DEMUX select BR2_PACKAGE_WPEBACKEND_FDO help WPE (Web Platform for Embedded) port of the WebKit engine, to allow embedders to create simple and performant systems based on Web platform technologies. https://wpewebkit.org/ if BR2_PACKAGE_WPEWEBKIT config BR2_PACKAGE_WPEWEBKIT_SANDBOX bool "sandboxing support" depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS # libseccomp depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 # libseccomp select BR2_PACKAGE_BUBBLEWRAP # runtime select BR2_PACKAGE_XDG_DBUS_PROXY # runtime select BR2_PACKAGE_LIBSECCOMP help Enable sandboxing of the processes used for network operation, disk asccess, and Web content rendering. comment "sandboxing supports needs a toolchain w/ headers >= 3.12" depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 config BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA bool "multimedia support" select BR2_PACKAGE_GSTREAMER1 select BR2_PACKAGE_GST1_PLUGINS_BAD select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX 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_AUTODETECT select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ISOMP4 select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTSP select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VPX select BR2_PACKAGE_GST1_LIBAV help This option pulls in all of the required dependencies to enable multimedia (video/audio) support. if BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA config BR2_PACKAGE_WPEWEBKIT_MEDIA_STREAM bool "media-stream support" help This option enables media-stream support. config BR2_PACKAGE_WPEWEBKIT_USE_GSTREAMER_GL bool "use gstreamer-gl" default y depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM help Use the GStreamer GL elements for handling video content. This is recommended as it improves performance of video playback. In some target configurations incorrect rendering might be produced, and disabling this option may help. endif config BR2_PACKAGE_WPEWEBKIT_WEBDRIVER bool "WebDriver support" help Enable support for WebDriver. This will build and install the WebKitWebDriver program in the target. endif ================================================ FILE: package/wpewebkit/wpewebkit.hash ================================================ # From https://wpewebkit.org/releases/wpewebkit-2.32.4.tar.xz.sums md5 94ca1cc3f7b2de8b96c59d6e59cafcd0 wpewebkit-2.32.4.tar.xz sha1 19b8ebdbfef193ca50f7625703d871db87624f86 wpewebkit-2.32.4.tar.xz sha256 381f1422cbc319db1aa42dda48de39590ed90ac3bec6b81ec83f3f2cae5c3eeb wpewebkit-2.32.4.tar.xz # Hashes for license files: sha256 0b5d3a7cc325942567373b0ecd757d07c132e0ebd7c97bfc63f7e1a76094edb4 Source/WebCore/LICENSE-APPLE sha256 f2b3bd09663381deb99721109d22b47af1213bb43007a8b56a06c6375c8050ce Source/WebCore/LICENSE-LGPL-2.1 ================================================ FILE: package/wpewebkit/wpewebkit.mk ================================================ ################################################################################ # # wpewebkit # ################################################################################ WPEWEBKIT_VERSION = 2.32.4 WPEWEBKIT_SITE = http://www.wpewebkit.org/releases WPEWEBKIT_SOURCE = wpewebkit-$(WPEWEBKIT_VERSION).tar.xz WPEWEBKIT_INSTALL_STAGING = YES WPEWEBKIT_LICENSE = LGPL-2.1+, BSD-2-Clause WPEWEBKIT_LICENSE_FILES = \ Source/WebCore/LICENSE-APPLE \ Source/WebCore/LICENSE-LGPL-2.1 WPEWEBKIT_CPE_ID_VENDOR = wpewebkit WPEWEBKIT_CPE_ID_PRODUCT = wpe_webkit WPEWEBKIT_DEPENDENCIES = host-gperf host-python3 host-ruby \ harfbuzz cairo icu jpeg libepoxy libgcrypt libgles libsoup libtasn1 \ libpng libxslt openjpeg wayland-protocols webp wpebackend-fdo WPEWEBKIT_CONF_OPTS = \ -DPORT=WPE \ -DENABLE_ACCESSIBILITY=OFF \ -DENABLE_API_TESTS=OFF \ -DENABLE_MINIBROWSER=OFF \ -DSILENCE_CROSS_COMPILATION_NOTICES=ON ifeq ($(BR2_PACKAGE_WPEWEBKIT_SANDBOX),y) WPEWEBKIT_CONF_OPTS += \ -DENABLE_BUBBLEWRAP_SANDBOX=ON \ -DBWRAP_EXECUTABLE=/usr/bin/bwrap \ -DDBUS_PROXY_EXECUTABLE=/usr/bin/xdg-dbus-proxy WPEWEBKIT_DEPENDENCIES += libseccomp else WPEWEBKIT_CONF_OPTS += -DENABLE_BUBBLEWRAP_SANDBOX=OFF endif ifeq ($(BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA),y) WPEWEBKIT_CONF_OPTS += \ -DENABLE_VIDEO=ON \ -DENABLE_WEB_AUDIO=ON WPEWEBKIT_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-base else WPEWEBKIT_CONF_OPTS += \ -DENABLE_VIDEO=OFF \ -DENABLE_WEB_AUDIO=OFF endif ifeq ($(BR2_PACKAGE_WPEWEBKIT_MEDIA_STREAM),y) WPEWEBKIT_CONF_OPTS += -DENABLE_MEDIA_STREAM=ON WPEWEBKIT_DEPENDENCIES += gst1-plugins-bad else WPEWEBKIT_CONF_OPTS += -DENABLE_MEDIA_STREAM=OFF endif ifeq ($(BR2_PACKAGE_WPEWEBKIT_USE_GSTREAMER_GL),y) WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=ON else WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF endif ifeq ($(BR2_PACKAGE_WPEWEBKIT_WEBDRIVER),y) WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=ON else WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=OFF endif ifeq ($(BR2_PACKAGE_WOFF2),y) WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=ON WPEWEBKIT_DEPENDENCIES += woff2 else WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=OFF endif ifeq ($(BR2_INIT_SYSTEMD),y) WPEWEBKIT_CONF_OPTS += -DUSE_SYSTEMD=ON WPEWEBKIT_DEPENDENCIES += systemd else WPEWEBKIT_CONF_OPTS += -DUSE_SYSTEMD=OFF endif # JIT is not supported for MIPS r6, but the WebKit build system does not # have a check for these processors. The same goes for ARMv5 and ARMv6. # Disable JIT forcibly here and use the CLoop interpreter instead. # # Also, we have to disable the sampling profiler, which does NOT work # with ENABLE_C_LOOP. # # Upstream bugs: https://bugs.webkit.org/show_bug.cgi?id=191258 # https://bugs.webkit.org/show_bug.cgi?id=172765 # ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS_CPU_MIPS64R6),y) WPEWEBKIT_CONF_OPTS += -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON -DENABLE_SAMPLING_PROFILER=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/wqy-zenhei/Config.in ================================================ config BR2_PACKAGE_WQY_ZENHEI bool "wqy-zenhei" help "WenQuanYi Zen Hei" is a Hei-Ti Style (sans-serif) Chinese font capable of text formatting and on-screen display of both simplified and traditional forms of Chinese Hanzi glyphs (among many other languages). Both the proportional "WenQuanYi Zen Hei", as well as the monospaced typeface "WenQuanYi Zen Hei Mono" provides over 35,000 glyphs, including over 21,000 Chinese Hanzi. This font provides full coverage of GBK (CP936) charset, CJK Unified Ideographs, as well as the code-points needed for zh_CN, zh_SG, zh_TW, zh_HK, zh_MO, ja (Japanese) and ko (Korean) locales for fontconfig. https://sourceforge.net/projects/wqy/ ================================================ FILE: package/wqy-zenhei/wqy-zenhei.hash ================================================ # from https://sourceforge.net/projects/wqy/files/wqy-zenhei/0.9.45%20%28Fighting-state%20RC1%29/ md5 4c6c3f4e902dd5ee0a121e8c41d040bd wqy-zenhei-0.9.45.tar.gz sha1 b86b65d3048ade868fcc89229cfac6baf80a3e54 wqy-zenhei-0.9.45.tar.gz # locally calculated sha256 e4b7e306475bf9427d1757578f0e4528930c84c44eaa3f167d4c42f110ee75d6 wqy-zenhei-0.9.45.tar.gz sha256 871c2a85e6bbf7bec65043820b706a265ed95d4e58c577fbb2c9f60c39c26ca7 COPYING ================================================ FILE: package/wqy-zenhei/wqy-zenhei.mk ================================================ ################################################################################ # # wqy-zenhei # ################################################################################ WQY_ZENHEI_VERSION = 0.9.45 WQY_ZENHEI_SITE = https://downloads.sourceforge.net/project/wqy/wqy-zenhei/$(WQY_ZENHEI_VERSION)%20%28Fighting-state%20RC1%29 WQY_ZENHEI_LICENSE = GPL-2.0-with-font-exception WQY_ZENHEI_LICENSE_FILES = COPYING ifeq ($(BR2_PACKAGE_FONTCONFIG),y) define WQY_ZENHEI_FONTCONFIG_CONF_INSTALL_CMDS $(INSTALL) -D -m 0644 $(@D)/43-wqy-zenhei-sharp.conf \ $(TARGET_DIR)/usr/share/fontconfig/conf.avail/43-wqy-zenhei-sharp.conf $(INSTALL) -D -m 0644 $(@D)/44-wqy-zenhei.conf \ $(TARGET_DIR)/usr/share/fontconfig/conf.avail/44-wqy-zenhei.conf endef endif define WQY_ZENHEI_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0644 $(@D)/wqy-zenhei.ttc \ $(TARGET_DIR)/usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc $(WQY_ZENHEI_FONTCONFIG_CONF_INSTALL_CMDS) endef $(eval $(generic-package)) ================================================ FILE: package/wsapi/Config.in ================================================ config BR2_PACKAGE_WSAPI bool "wsapi" select BR2_PACKAGE_COXPCALL if BR2_PACKAGE_LUA_5_1 # runtime select BR2_PACKAGE_LUAFILESYSTEM # runtime select BR2_PACKAGE_RINGS # runtime help API that abstracts the web server from Lua web applications. https://keplerproject.github.io/wsapi/ ================================================ FILE: package/wsapi/wsapi.hash ================================================ # computed by luarocks/buildroot sha256 1a0829dffd6bdbf99f5c4278d504cda5ede9344d5089bdcf5216c9eb2999ae22 wsapi-1.7-1.src.rock sha256 6aa14e3febf7a9e810ce672b015f5a5514241ce5d1c3a6a48f921f089d270159 wsapi/doc/us/license.html sha256 c7bf3061d00a96d10cb9dbc3a737d0af22594e2ef8f788842d7ab92eeaa864f2 wsapi/doc/us/license.md ================================================ FILE: package/wsapi/wsapi.mk ================================================ ################################################################################ # # wsapi # ################################################################################ WSAPI_VERSION = 1.7-1 WSAPI_SUBDIR = wsapi WSAPI_LICENSE = MIT WSAPI_LICENSE_FILES = \ $(WSAPI_SUBDIR)/doc/us/license.html \ $(WSAPI_SUBDIR)/doc/us/license.md $(eval $(luarocks-package)) ================================================ FILE: package/wsapi-fcgi/Config.in ================================================ config BR2_PACKAGE_WSAPI_FCGI bool "wsapi-fcgi" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBFCGI select BR2_PACKAGE_WSAPI # runtime help WSAPI is an API that abstracts the web server from Lua web applications. This is the rock that contains the FCGI module lfcgi. https://luarocks.org/modules/mascarenhas/wsapi-fcgi ================================================ FILE: package/wsapi-fcgi/wsapi-fcgi.hash ================================================ # computed by luarocks/buildroot sha256 14b77861638a5e863fd10d60ad460a961dc108ea5b915f71461a18d5e6be8e4e wsapi-fcgi-1.7-1.src.rock sha256 6aa14e3febf7a9e810ce672b015f5a5514241ce5d1c3a6a48f921f089d270159 wsapi/doc/us/license.html sha256 c7bf3061d00a96d10cb9dbc3a737d0af22594e2ef8f788842d7ab92eeaa864f2 wsapi/doc/us/license.md ================================================ FILE: package/wsapi-fcgi/wsapi-fcgi.mk ================================================ ################################################################################ # # wsapi-fcgi # ################################################################################ WSAPI_FCGI_VERSION = 1.7-1 WSAPI_FCGI_SUBDIR = wsapi WSAPI_FCGI_LICENSE = MIT WSAPI_FCGI_LICENSE_FILES = \ $(WSAPI_FCGI_SUBDIR)/doc/us/license.html \ $(WSAPI_FCGI_SUBDIR)/doc/us/license.md WSAPI_FCGI_DEPENDENCIES = libfcgi $(eval $(luarocks-package)) ================================================ FILE: package/wsapi-xavante/Config.in ================================================ config BR2_PACKAGE_WSAPI_XAVANTE bool "wsapi-xavante" select BR2_PACKAGE_WSAPI # runtime select BR2_PACKAGE_XAVANTE # runtime help WSAPI is an API that abstracts the web server from Lua web applications. This is the rock that contains the Xavante adapter and launcher. https://keplerproject.github.io/wsapi/ ================================================ FILE: package/wsapi-xavante/wsapi-xavante.hash ================================================ # computed by luarocks/buildroot sha256 01211bb80dab92f87cece6e31854d73ae4a2ce06af7c48423a54313d72adf9fb wsapi-xavante-1.7-1.src.rock sha256 6aa14e3febf7a9e810ce672b015f5a5514241ce5d1c3a6a48f921f089d270159 wsapi/doc/us/license.html sha256 c7bf3061d00a96d10cb9dbc3a737d0af22594e2ef8f788842d7ab92eeaa864f2 wsapi/doc/us/license.md ================================================ FILE: package/wsapi-xavante/wsapi-xavante.mk ================================================ ################################################################################ # # wsapi-xavante # ################################################################################ WSAPI_XAVANTE_VERSION = 1.7-1 WSAPI_XAVANTE_SUBDIR = wsapi WSAPI_XAVANTE_LICENSE = MIT WSAPI_XAVANTE_LICENSE_FILES = \ $(WSAPI_XAVANTE_SUBDIR)/doc/us/license.html \ $(WSAPI_XAVANTE_SUBDIR)/doc/us/license.md $(eval $(luarocks-package)) ================================================ FILE: package/x11r7/Config.in ================================================ menuconfig BR2_PACKAGE_XORG7 bool "X.org X Window System" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # dlopen in xlib_libX11 help Support for X11R7 libraries, servers, drivers, and/or applications in the target. http://xorg.freedesktop.org if BR2_PACKAGE_XORG7 menu "X11R7 Servers" source package/x11r7/xserver_xorg-server/Config.in endmenu menu "X11R7 Libraries" source package/x11r7/libxcb/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 source package/x11r7/xcb-util-keysyms/Config.in source package/x11r7/xcb-util-renderutil/Config.in source package/x11r7/xcb-util-wm/Config.in source package/x11r7/xlib_libFS/Config.in source package/x11r7/xlib_libICE/Config.in source package/x11r7/xlib_libSM/Config.in source package/x11r7/xlib_libX11/Config.in source package/x11r7/xlib_libXScrnSaver/Config.in source package/x11r7/xlib_libXau/Config.in source package/x11r7/xlib_libXaw/Config.in source package/x11r7/xlib_libXcomposite/Config.in source package/x11r7/xlib_libXcursor/Config.in source package/x11r7/xlib_libXdamage/Config.in source package/x11r7/xlib_libXdmcp/Config.in source package/x11r7/xlib_libXext/Config.in source package/x11r7/xlib_libXfixes/Config.in source package/x11r7/xlib_libXfont/Config.in source package/x11r7/xlib_libXfont2/Config.in source package/x11r7/xlib_libXft/Config.in source package/x11r7/xlib_libXi/Config.in source package/x11r7/xlib_libXinerama/Config.in source package/x11r7/xlib_libXmu/Config.in source package/x11r7/xlib_libXpm/Config.in source package/x11r7/xlib_libXrandr/Config.in source package/x11r7/xlib_libXrender/Config.in source package/x11r7/xlib_libXres/Config.in source package/x11r7/xlib_libXt/Config.in source package/x11r7/xlib_libXtst/Config.in source package/x11r7/xlib_libXv/Config.in source package/x11r7/xlib_libXvMC/Config.in source package/x11r7/xlib_libXxf86dga/Config.in source package/x11r7/xlib_libXxf86vm/Config.in source package/x11r7/xlib_libdmx/Config.in source package/x11r7/xlib_libfontenc/Config.in source package/x11r7/xlib_libxkbfile/Config.in source package/x11r7/xlib_libxshmfence/Config.in source package/x11r7/xlib_xtrans/Config.in endmenu menu "X11R7 Applications" source package/x11r7/xapp_appres/Config.in source package/x11r7/xapp_bdftopcf/Config.in source package/x11r7/xapp_beforelight/Config.in source package/x11r7/xapp_bitmap/Config.in source package/x11r7/xapp_editres/Config.in source package/x11r7/xapp_fonttosfnt/Config.in source package/x11r7/xapp_fslsfonts/Config.in source package/x11r7/xapp_fstobdf/Config.in source package/x11r7/xapp_iceauth/Config.in source package/x11r7/xapp_ico/Config.in source package/x11r7/xapp_listres/Config.in source package/x11r7/xapp_luit/Config.in source package/x11r7/xapp_mkfontscale/Config.in source package/x11r7/xapp_oclock/Config.in source package/x11r7/xapp_rgb/Config.in source package/x11r7/xapp_rstart/Config.in source package/x11r7/xapp_scripts/Config.in source package/x11r7/xapp_sessreg/Config.in source package/x11r7/xapp_setxkbmap/Config.in source package/x11r7/xapp_showfont/Config.in source package/x11r7/xapp_smproxy/Config.in source package/x11r7/xapp_twm/Config.in source package/x11r7/xapp_viewres/Config.in source package/x11r7/xapp_x11perf/Config.in source package/x11r7/xapp_xauth/Config.in source package/x11r7/xapp_xbacklight/Config.in source package/x11r7/xapp_xbiff/Config.in source package/x11r7/xapp_xcalc/Config.in source package/x11r7/xapp_xclipboard/Config.in source package/x11r7/xapp_xclock/Config.in source package/x11r7/xapp_xcmsdb/Config.in source package/x11r7/xapp_xcompmgr/Config.in source package/x11r7/xapp_xconsole/Config.in source package/x11r7/xapp_xcursorgen/Config.in source package/x11r7/xapp_xdbedizzy/Config.in source package/x11r7/xapp_xditview/Config.in source package/x11r7/xapp_xdm/Config.in source package/x11r7/xapp_xdpyinfo/Config.in source package/x11r7/xapp_xdriinfo/Config.in source package/x11r7/xapp_xedit/Config.in source package/x11r7/xapp_xev/Config.in source package/x11r7/xapp_xeyes/Config.in source package/x11r7/xapp_xf86dga/Config.in source package/x11r7/xapp_xfd/Config.in source package/x11r7/xapp_xfindproxy/Config.in source package/x11r7/xapp_xfontsel/Config.in source package/x11r7/xapp_xfs/Config.in source package/x11r7/xapp_xfsinfo/Config.in source package/x11r7/xapp_xgamma/Config.in source package/x11r7/xapp_xgc/Config.in source package/x11r7/xapp_xhost/Config.in source package/x11r7/xapp_xinit/Config.in source package/x11r7/xapp_xinput/Config.in source package/x11r7/xapp_xinput-calibrator/Config.in source package/x11r7/xapp_xkbcomp/Config.in source package/x11r7/xapp_xkbevd/Config.in source package/x11r7/xapp_xkbprint/Config.in source package/x11r7/xapp_xkbutils/Config.in source package/x11r7/xapp_xkill/Config.in source package/x11r7/xapp_xload/Config.in source package/x11r7/xapp_xlogo/Config.in source package/x11r7/xapp_xlsatoms/Config.in source package/x11r7/xapp_xlsclients/Config.in source package/x11r7/xapp_xlsfonts/Config.in source package/x11r7/xapp_xmag/Config.in source package/x11r7/xapp_xman/Config.in source package/x11r7/xapp_xmessage/Config.in source package/x11r7/xapp_xmh/Config.in source package/x11r7/xapp_xmodmap/Config.in source package/x11r7/xapp_xmore/Config.in source package/x11r7/xapp_xpr/Config.in source package/x11r7/xapp_xprop/Config.in source package/x11r7/xapp_xrandr/Config.in source package/x11r7/xapp_xrdb/Config.in source package/x11r7/xapp_xrefresh/Config.in source package/x11r7/xapp_xset/Config.in source package/x11r7/xapp_xsetmode/Config.in source package/x11r7/xapp_xsetpointer/Config.in source package/x11r7/xapp_xsetroot/Config.in source package/x11r7/xapp_xsm/Config.in source package/x11r7/xapp_xstdcmap/Config.in source package/x11r7/xapp_xvidtune/Config.in source package/x11r7/xapp_xvinfo/Config.in source package/x11r7/xapp_xwd/Config.in source package/x11r7/xapp_xwininfo/Config.in source package/x11r7/xapp_xwud/Config.in endmenu if BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR menu "X11R7 Drivers" source package/x11r7/xdriver_xf86-input-evdev/Config.in source package/x11r7/xdriver_xf86-input-joystick/Config.in source package/x11r7/xdriver_xf86-input-keyboard/Config.in source package/x11r7/xdriver_xf86-input-libinput/Config.in source package/x11r7/xdriver_xf86-input-mouse/Config.in 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-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 source package/x11r7/xdriver_xf86-video-cirrus/Config.in source package/x11r7/xdriver_xf86-video-dummy/Config.in source package/x11r7/xdriver_xf86-video-fbdev/Config.in source package/x11r7/xdriver_xf86-video-fbturbo/Config.in source package/x11r7/xdriver_xf86-video-geode/Config.in source package/x11r7/xdriver_xf86-video-glint/Config.in source package/x11r7/xdriver_xf86-video-i128/Config.in source package/x11r7/xdriver_xf86-video-imx/Config.in source package/x11r7/xdriver_xf86-video-imx-viv/Config.in source package/x11r7/xdriver_xf86-video-intel/Config.in source package/x11r7/xdriver_xf86-video-mach64/Config.in source package/x11r7/xdriver_xf86-video-mga/Config.in source package/x11r7/xdriver_xf86-video-neomagic/Config.in source package/x11r7/xdriver_xf86-video-nouveau/Config.in source package/x11r7/xdriver_xf86-video-nv/Config.in source package/x11r7/xdriver_xf86-video-openchrome/Config.in source package/x11r7/xdriver_xf86-video-qxl/Config.in source package/x11r7/xdriver_xf86-video-r128/Config.in source package/x11r7/xdriver_xf86-video-savage/Config.in source package/x11r7/xdriver_xf86-video-siliconmotion/Config.in source package/x11r7/xdriver_xf86-video-sis/Config.in source package/x11r7/xdriver_xf86-video-tdfx/Config.in source package/x11r7/xdriver_xf86-video-tga/Config.in source package/x11r7/xdriver_xf86-video-trident/Config.in source package/x11r7/xdriver_xf86-video-vesa/Config.in source package/x11r7/xdriver_xf86-video-vmware/Config.in source package/x11r7/xdriver_xf86-video-voodoo/Config.in endmenu endif menu "X11R7 Fonts" source package/x11r7/xfont_font-util/Config.in source package/x11r7/xfont_encodings/Config.in source package/x11r7/xfont_font-adobe-100dpi/Config.in source package/x11r7/xfont_font-adobe-75dpi/Config.in source package/x11r7/xfont_font-adobe-utopia-100dpi/Config.in source package/x11r7/xfont_font-adobe-utopia-75dpi/Config.in source package/x11r7/xfont_font-adobe-utopia-type1/Config.in source package/x11r7/xfont_font-alias/Config.in source package/x11r7/xfont_font-arabic-misc/Config.in source package/x11r7/xfont_font-bh-100dpi/Config.in source package/x11r7/xfont_font-bh-75dpi/Config.in source package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/Config.in source package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/Config.in source package/x11r7/xfont_font-bh-ttf/Config.in source package/x11r7/xfont_font-bh-type1/Config.in source package/x11r7/xfont_font-bitstream-100dpi/Config.in source package/x11r7/xfont_font-bitstream-75dpi/Config.in source package/x11r7/xfont_font-bitstream-type1/Config.in source package/x11r7/xfont_font-cronyx-cyrillic/Config.in source package/x11r7/xfont_font-cursor-misc/Config.in source package/x11r7/xfont_font-daewoo-misc/Config.in source package/x11r7/xfont_font-dec-misc/Config.in source package/x11r7/xfont_font-ibm-type1/Config.in source package/x11r7/xfont_font-isas-misc/Config.in source package/x11r7/xfont_font-jis-misc/Config.in source package/x11r7/xfont_font-micro-misc/Config.in source package/x11r7/xfont_font-misc-cyrillic/Config.in source package/x11r7/xfont_font-misc-ethiopic/Config.in source package/x11r7/xfont_font-misc-meltho/Config.in source package/x11r7/xfont_font-misc-misc/Config.in source package/x11r7/xfont_font-mutt-misc/Config.in source package/x11r7/xfont_font-schumacher-misc/Config.in source package/x11r7/xfont_font-screen-cyrillic/Config.in source package/x11r7/xfont_font-sony-misc/Config.in source package/x11r7/xfont_font-sun-misc/Config.in source package/x11r7/xfont_font-winitzki-cyrillic/Config.in source package/x11r7/xfont_font-xfree86-type1/Config.in endmenu menu "X11R7 X protocols" source package/x11r7/xcb-proto/Config.in source package/x11r7/xorgproto/Config.in endmenu menu "X11R7 Utilities" source package/x11r7/xutil_makedepend/Config.in source package/x11r7/mcookie/Config.in endmenu menu "X11R7 Other data" source package/x11r7/xdata_xbitmaps/Config.in source package/x11r7/xdata_xcursor-themes/Config.in source package/x11r7/xcursor-transparent-theme/Config.in endmenu endif comment "X.org needs a toolchain w/ wchar, threads, dynamic library" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/x11r7/libxcb/Config.in ================================================ config BR2_PACKAGE_LIBXCB bool "libxcb" select BR2_PACKAGE_XCB_PROTO select BR2_PACKAGE_XLIB_LIBXDMCP select BR2_PACKAGE_XLIB_LIBXAU help The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility. http://xcb.freedesktop.org/ ================================================ FILE: package/x11r7/libxcb/libxcb.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2020-February/003039.html sha256 a55ed6db98d43469801262d81dc2572ed124edc3db31059d4e9916eb9f844c34 libxcb-1.14.tar.xz sha512 b90a23204b0d2c29d8b115577edb01df0465e02d6a8876550fecd62375d24a5d5f872ddd5946772ddba077cadce75b12c7a6d218469dc30b5b92bc82188e8bc6 libxcb-1.14.tar.xz # Locally computed sha256 c5ffbfeaa501071ceeb97b7de2c0d703fdaa35de01c0fb6cbac1c28453a3e9fd COPYING ================================================ FILE: package/x11r7/libxcb/libxcb.mk ================================================ ################################################################################ # # libxcb # ################################################################################ LIBXCB_VERSION = 1.14 LIBXCB_SOURCE = libxcb-$(LIBXCB_VERSION).tar.xz LIBXCB_SITE = http://xcb.freedesktop.org/dist LIBXCB_LICENSE = MIT LIBXCB_LICENSE_FILES = COPYING LIBXCB_CPE_ID_VENDOR = x LIBXCB_INSTALL_STAGING = YES LIBXCB_DEPENDENCIES = \ host-libxslt xcb-proto xlib_libXdmcp xlib_libXau \ host-xcb-proto host-python3 host-pkgconf HOST_LIBXCB_DEPENDENCIES = \ host-libxslt host-xcb-proto host-xlib_libXdmcp \ host-xlib_libXau host-python3 host-pkgconf LIBXCB_CONF_OPTS = --with-doxygen=no HOST_LIBXCB_CONF_OPTS = --with-doxygen=no # Force detection of Buildroot host-python3 over system python LIBXCB_CONF_OPTS += ac_cv_path_PYTHON=$(HOST_DIR)/bin/python3 HOST_LIBXCB_CONF_OPTS += ac_cv_path_PYTHON=$(HOST_DIR)/bin/python3 $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/mcookie/Config.in ================================================ config BR2_PACKAGE_MCOOKIE bool "mcookie" help cookie generator for X server http://www.x.org ================================================ FILE: package/x11r7/mcookie/mcookie.c ================================================ /* mcookie.c -- Generates random numbers for xauth * Created: Fri Feb 3 10:42:48 1995 by faith@cs.unc.edu * Revised: Fri Mar 19 07:48:01 1999 by faith@acm.org * Public Domain 1995, 1999 Rickard E. Faith (faith@acm.org) * This program comes with ABSOLUTELY NO WARRANTY. * * $Id: mcookie.c,v 1.5 1997/07/06 00:13:06 aebr Exp $ * * This program gathers some random bits of data and used the MD5 * message-digest algorithm to generate a 128-bit hexadecimal number for * use with xauth(1). * * NOTE: Unless /dev/random is available, this program does not actually * gather 128 bits of random information, so the magic cookie generated * will be considerably easier to guess than one might expect. * * 1999-02-22 Arkadiusz Mikiewicz * - added Native Language Support * 1999-03-21 aeb: Added some fragments of code from Colin Plumb. * */ #include #include #include #include #include #include #define BUFFERSIZE 4096 #ifndef MD5_H #define MD5_H #if defined (__alpha__) || defined (__ia64__) || defined (__x86_64__) typedef unsigned int uint32; #else typedef unsigned long uint32; #endif struct MD5Context { uint32 buf[4]; uint32 bits[2]; unsigned char in[64]; }; void MD5Init(struct MD5Context *context); void MD5Update(struct MD5Context *context, unsigned char const *buf, unsigned len); void MD5Final(unsigned char digest[16], struct MD5Context *context); void MD5Transform(uint32 buf[4], uint32 const in[16]); /* * This is needed to make RSAREF happy on some MS-DOS compilers. */ typedef struct MD5Context MD5_CTX; #endif /* !MD5_H */ /* * This code implements the MD5 message-digest algorithm. * The algorithm is due to Ron Rivest. This code was * written by Colin Plumb in 1993, no copyright is claimed. * This code is in the public domain; do with it what you wish. * * Equivalent code is available from RSA Data Security, Inc. * This code has been tested against that, and is equivalent, * except that you don't need to include two pages of legalese * with every copy. * * To compute the message digest of a chunk of bytes, declare an * MD5Context structure, pass it to MD5Init, call MD5Update as * needed on buffers full of bytes, and then call MD5Final, which * will fill a supplied 16-byte array with the digest. */ #include /* for memcpy() */ #include #if __BYTE_ORDER == __LITTLE_ENDIAN #define byteReverse(buf, len) /* Nothing */ #else void byteReverse(unsigned char *buf, unsigned longs); /* * Note: this code is harmless on little-endian machines. */ void byteReverse(unsigned char *buf, unsigned longs) { uint32 t; do { t = (uint32) ((unsigned) buf[3] << 8 | buf[2]) << 16 | ((unsigned) buf[1] << 8 | buf[0]); *(uint32 *) buf = t; buf += 4; } while (--longs); } #endif /* * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious * initialization constants. */ void MD5Init(struct MD5Context *ctx) { ctx->buf[0] = 0x67452301; ctx->buf[1] = 0xefcdab89; ctx->buf[2] = 0x98badcfe; ctx->buf[3] = 0x10325476; ctx->bits[0] = 0; ctx->bits[1] = 0; } /* * Update context to reflect the concatenation of another buffer full * of bytes. */ void MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len) { uint32 t; /* Update bitcount */ t = ctx->bits[0]; if ((ctx->bits[0] = t + ((uint32) len << 3)) < t) ctx->bits[1]++; /* Carry from low to high */ ctx->bits[1] += len >> 29; t = (t >> 3) & 0x3f; /* Bytes already in shsInfo->data */ /* Handle any leading odd-sized chunks */ if (t) { unsigned char *p = (unsigned char *) ctx->in + t; t = 64 - t; if (len < t) { memcpy(p, buf, len); return; } memcpy(p, buf, t); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, (uint32 *) ctx->in); buf += t; len -= t; } /* Process data in 64-byte chunks */ while (len >= 64) { memcpy(ctx->in, buf, 64); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, (uint32 *) ctx->in); buf += 64; len -= 64; } /* Handle any remaining bytes of data. */ memcpy(ctx->in, buf, len); } /* * Final wrapup - pad to 64-byte boundary with the bit pattern * 1 0* (64-bit count of bits processed, MSB-first) */ void MD5Final(unsigned char digest[16], struct MD5Context *ctx) { unsigned count; unsigned char *p; /* Compute number of bytes mod 64 */ count = (ctx->bits[0] >> 3) & 0x3F; /* Set the first char of padding to 0x80. This is safe since there is always at least one byte free */ p = ctx->in + count; *p++ = 0x80; /* Bytes of padding needed to make 64 bytes */ count = 64 - 1 - count; /* Pad out to 56 mod 64 */ if (count < 8) { /* Two lots of padding: Pad the first block to 64 bytes */ memset(p, 0, count); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, (uint32 *) ctx->in); /* Now fill the next block with 56 bytes */ memset(ctx->in, 0, 56); } else { /* Pad block to 56 bytes */ memset(p, 0, count - 8); } byteReverse(ctx->in, 14); /* Append length in bits and transform */ ((uint32 *) ctx->in)[14] = ctx->bits[0]; ((uint32 *) ctx->in)[15] = ctx->bits[1]; MD5Transform(ctx->buf, (uint32 *) ctx->in); byteReverse((unsigned char *) ctx->buf, 4); memcpy(digest, ctx->buf, 16); memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */ } /* The four core functions - F1 is optimized somewhat */ /* #define F1(x, y, z) (x & y | ~x & z) */ #define F1(x, y, z) (z ^ (x & (y ^ z))) #define F2(x, y, z) F1(z, x, y) #define F3(x, y, z) (x ^ y ^ z) #define F4(x, y, z) (y ^ (x | ~z)) /* This is the central step in the MD5 algorithm. */ #define MD5STEP(f, w, x, y, z, data, s) \ ( w += f(x, y, z) + data, w = w<>(32-s), w += x ) /* * The core of the MD5 algorithm, this alters an existing MD5 hash to * reflect the addition of 16 longwords of new data. MD5Update blocks * the data and converts bytes into longwords for this routine. */ void MD5Transform(uint32 buf[4], uint32 const in[16]) { register uint32 a, b, c, d; a = buf[0]; b = buf[1]; c = buf[2]; d = buf[3]; MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); buf[0] += a; buf[1] += b; buf[2] += c; buf[3] += d; } struct rngs { const char *path; int minlength, maxlength; } rngs[] = { { "/dev/random", 16, 16 }, /* 16 bytes = 128 bits suffice */ { "/proc/interrupts", 0, 0 }, { "/proc/slabinfo", 0, 0 }, { "/proc/stat", 0, 0 }, { "/dev/urandom", 32, 64 }, }; #define RNGS (sizeof(rngs)/sizeof(struct rngs)) int Verbose = 0; /* The basic function to hash a file */ static off_t hash_file(struct MD5Context *ctx, int fd) { off_t count = 0; ssize_t r; unsigned char buf[BUFFERSIZE]; while ((r = read(fd, buf, sizeof(buf))) > 0) { MD5Update(ctx, buf, r); count += r; } /* Separate files with a null byte */ buf[0] = 0; MD5Update(ctx, buf, 1); return count; } int main( int argc, char **argv ) { int i; struct MD5Context ctx; unsigned char digest[16]; unsigned char buf[BUFFERSIZE]; int fd; int c; pid_t pid; char *file = NULL; int r; struct timeval tv; struct timezone tz; while ((c = getopt( argc, argv, "vf:" )) != -1) switch (c) { case 'v': ++Verbose; break; case 'f': file = optarg; break; } MD5Init( &ctx ); gettimeofday( &tv, &tz ); MD5Update( &ctx, (unsigned char *)&tv, sizeof( tv ) ); pid = getppid(); MD5Update( &ctx, (unsigned char *)&pid, sizeof( pid )); pid = getpid(); MD5Update( &ctx, (unsigned char *)&pid, sizeof( pid )); if (file) { int count = 0; if (file[0] == '-' && !file[1]) fd = fileno(stdin); else fd = open( file, O_RDONLY ); if (fd < 0) { fprintf( stderr, "Could not open %s\n", file ); } else { count = hash_file( &ctx, fd ); if (Verbose) fprintf( stderr, "Got %d bytes from %s\n", count, file ); if (file[0] != '-' || file[1]) close( fd ); } } for (i = 0; i < RNGS; i++) { if ((fd = open( rngs[i].path, O_RDONLY|O_NONBLOCK )) >= 0) { int count = sizeof(buf); if (rngs[i].maxlength && count > rngs[i].maxlength) count = rngs[i].maxlength; r = read( fd, buf, count ); if (r > 0) MD5Update( &ctx, buf, r ); else r = 0; close( fd ); if (Verbose) fprintf( stderr, "Got %d bytes from %s\n", r, rngs[i].path ); if (rngs[i].minlength && r >= rngs[i].minlength) break; } else if (Verbose) fprintf( stderr, "Could not open %s\n", rngs[i].path ); } MD5Final( digest, &ctx ); for (i = 0; i < 16; i++) printf( "%02x", digest[i] ); putchar ( '\n' ); /* * The following is important for cases like disk full, so shell scripts * can bomb out properly rather than think they succeeded. */ if (fflush(stdout) < 0 || fclose(stdout) < 0) return 1; return 0; } ================================================ FILE: package/x11r7/mcookie/mcookie.mk ================================================ ################################################################################ # # mcookie # ################################################################################ MCOOKIE_LICENSE = Public Domain define MCOOKIE_EXTRACT_CMDS cp package/x11r7/mcookie/mcookie.c $(@D)/ endef define MCOOKIE_BUILD_CMDS (cd $(@D); $(TARGET_CC) -Wall -Os -s mcookie.c -o mcookie) endef define MCOOKIE_INSTALL_TARGET_CMDS install -m 0755 -D $(@D)/mcookie $(TARGET_DIR)/usr/bin/mcookie endef $(eval $(generic-package)) ================================================ FILE: package/x11r7/x11r7.mk ================================================ include $(sort $(wildcard package/x11r7/*/*.mk)) ================================================ FILE: package/x11r7/xapp_appres/Config.in ================================================ config BR2_PACKAGE_XAPP_APPRES bool "appres" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXT help list X application resource database ================================================ FILE: package/x11r7/xapp_appres/xapp_appres.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002847.html md5 f544e701043249d2bb3deed48314bc55 appres-1.0.5.tar.bz2 sha1 5e5dbffd0a125732bb8bb8a202e04555a9604089 appres-1.0.5.tar.bz2 sha256 ffad893712c81943b919e3cbfe46fc65259cc0d9eb96d5e658670e3fbb265928 appres-1.0.5.tar.bz2 sha512 70825563cd80f0f433c48ab2fdae888072939c1b22fb22340b70b9444c97916275ed92c9e5bf9a06bb76c32a5371b89ff7c0211a9a47a227c88311078c2c4137 appres-1.0.5.tar.bz2 # Locally computed sha256 5969302729a9621fd526a7f9942a51a29b858e0b682ffd28eeda5fc4dfaddf55 COPYING ================================================ FILE: package/x11r7/xapp_appres/xapp_appres.mk ================================================ ################################################################################ # # xapp_appres # ################################################################################ XAPP_APPRES_VERSION = 1.0.5 XAPP_APPRES_SOURCE = appres-$(XAPP_APPRES_VERSION).tar.bz2 XAPP_APPRES_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_APPRES_LICENSE = MIT XAPP_APPRES_LICENSE_FILES = COPYING XAPP_APPRES_DEPENDENCIES = xlib_libX11 xlib_libXt $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_bdftopcf/Config.in ================================================ config BR2_PACKAGE_XAPP_BDFTOPCF bool "bdftopcf" select BR2_PACKAGE_XLIB_LIBXFONT help X.Org bdftopcf application ================================================ FILE: package/x11r7/xapp_bdftopcf/xapp_bdftopcf.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2017-November/002821.html md5 2a455d3c02390597feb9cefb3fe97a45 bdftopcf-1.1.tar.bz2 sha1 48a783337a5aa49ebc102c9788ff0f43ea35c5c4 bdftopcf-1.1.tar.bz2 sha256 4b4df05fc53f1e98993638d6f7e178d95b31745c4568cee407e167491fd311a2 bdftopcf-1.1.tar.bz2 sha512 7b790e8d512ca2812ac889c156ef91c48798b4744a6857e5b17e0128764b5afa8c5426fe5de05a9819d64745116718db4221b3e657e3c2633465e87179c44bec bdftopcf-1.1.tar.bz2 # Locally calculated sha256 a437fb5272ba507c2977b2ef623bb391270f521b2a20271ed044785f4eaa5dbc COPYING ================================================ FILE: package/x11r7/xapp_bdftopcf/xapp_bdftopcf.mk ================================================ ################################################################################ # # xapp_bdftopcf # ################################################################################ XAPP_BDFTOPCF_VERSION = 1.1 XAPP_BDFTOPCF_SOURCE = bdftopcf-$(XAPP_BDFTOPCF_VERSION).tar.bz2 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 $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xapp_beforelight/Config.in ================================================ config BR2_PACKAGE_XAPP_BEFORELIGHT bool "beforelight" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXSCRNSAVER select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXT help screen saver ================================================ FILE: package/x11r7/xapp_beforelight/xapp_beforelight.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2013-January/002131.html sha256 8fcab6f15148ca680c0d3da8de7dcb41f8e6a076f442cf8bdcf272be9e348166 beforelight-1.0.5.tar.bz2 # Locally computed sha256 27d8cbdcde7a0bd062ce49cdf8c672201452a64e3e6823f09b1beffe2c4b8eff COPYING ================================================ FILE: package/x11r7/xapp_beforelight/xapp_beforelight.mk ================================================ ################################################################################ # # xapp_beforelight # ################################################################################ XAPP_BEFORELIGHT_VERSION = 1.0.5 XAPP_BEFORELIGHT_SOURCE = beforelight-$(XAPP_BEFORELIGHT_VERSION).tar.bz2 XAPP_BEFORELIGHT_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_BEFORELIGHT_LICENSE = MIT XAPP_BEFORELIGHT_LICENSE_FILES = COPYING XAPP_BEFORELIGHT_DEPENDENCIES = xlib_libX11 xlib_libXScrnSaver xlib_libXaw xlib_libXt XAPP_BEFORELIGHT_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_bitmap/Config.in ================================================ config BR2_PACKAGE_XAPP_BITMAP bool "bitmap" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXMU select BR2_PACKAGE_XDATA_XBITMAPS help X.Org bitmap application ================================================ FILE: package/x11r7/xapp_bitmap/xapp_bitmap.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-February/002941.html md5 b94172053ffa282bd88274f1e6a677f1 bitmap-1.0.9.tar.bz2 sha1 26ba3130b14a2db81b427f2353ac21301c5d2527 bitmap-1.0.9.tar.bz2 sha256 e0f3afad5272d796f54c33fa1b5bd1fb3f62843a54b28c87196d06a35123e5f5 bitmap-1.0.9.tar.bz2 sha512 873c626c72a0f4025fe8c8aeedbf3fe4ee5657fb487ad7410406a20da518c0358041dc45c2549926cc10e1d031977073b9d1ddb32830fdce95b716a52fe44456 bitmap-1.0.9.tar.bz2 # Locally computed sha256 03be44611edac06827bd13c0815a67ecd37ffe8fb1b9e210d6545d79bec89a3a COPYING ================================================ FILE: package/x11r7/xapp_bitmap/xapp_bitmap.mk ================================================ ################################################################################ # # xapp_bitmap # ################################################################################ XAPP_BITMAP_VERSION = 1.0.9 XAPP_BITMAP_SOURCE = bitmap-$(XAPP_BITMAP_VERSION).tar.bz2 XAPP_BITMAP_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_BITMAP_LICENSE = MIT XAPP_BITMAP_LICENSE_FILES = COPYING XAPP_BITMAP_DEPENDENCIES = xlib_libX11 xlib_libXaw xlib_libXmu xdata_xbitmaps XAPP_BITMAP_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_editres/Config.in ================================================ config BR2_PACKAGE_XAPP_EDITRES bool "editres" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXMU select BR2_PACKAGE_XLIB_LIBXT help a dynamic resource editor for X Toolkit applications ================================================ FILE: package/x11r7/xapp_editres/xapp_editres.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002846.html md5 526cf79edc0c5e379aefb21539243f96 editres-1.0.7.tar.bz2 sha1 389e953ebb5080564a6780cb34b72bafae7f5540 editres-1.0.7.tar.bz2 sha256 089ad34628e55a779b97e369f55fb12caefc96d684b508d9022eb9e12b775c11 editres-1.0.7.tar.bz2 sha512 b9c928b556116bf50cf4b6ea779bdc9fedf29f5db3e6a8cc75c122578c92e1cc530a81b226ec24aad183b8ebc2de570f200314b0d9ce7883b6e3306007365b32 editres-1.0.7.tar.bz2 # Locally computed sha256 b1049cf96db2c00428b8313541ab333ec4e06f102955f3edd44f88ec43b0acd6 COPYING ================================================ FILE: package/x11r7/xapp_editres/xapp_editres.mk ================================================ ################################################################################ # # xapp_editres # ################################################################################ XAPP_EDITRES_VERSION = 1.0.7 XAPP_EDITRES_SOURCE = editres-$(XAPP_EDITRES_VERSION).tar.bz2 XAPP_EDITRES_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_EDITRES_LICENSE = MIT XAPP_EDITRES_LICENSE_FILES = COPYING XAPP_EDITRES_DEPENDENCIES = xlib_libX11 xlib_libXaw xlib_libXmu xlib_libXt XAPP_EDITRES_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_fonttosfnt/Config.in ================================================ config BR2_PACKAGE_XAPP_FONTTOSFNT bool "fonttosfnt" select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBFONTENC help X.Org fonttosfnt application ================================================ FILE: package/x11r7/xapp_fonttosfnt/xapp_fonttosfnt.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-June/003093.html sha256 1a1bb4ef25856dea7de3d491ae7231493225b400bee0f6a1f949017ffd203a64 fonttosfnt-1.2.2.tar.bz2 sha512 ceac6ccb064043d46f9f16f31fb89c6cbf7f026d049f7b5325d6af97e809b4cd068e6149413bb328c0af601a98b5070e21d469888a6853f6cabecd5b46f60240 fonttosfnt-1.2.2.tar.bz2 # Locally computed sha256 f83378580cb7909a98b52bf5cd6a29f4894d76318c5c5312dd3f17a3e92beef1 COPYING ================================================ FILE: package/x11r7/xapp_fonttosfnt/xapp_fonttosfnt.mk ================================================ ################################################################################ # # xapp_fonttosfnt # ################################################################################ XAPP_FONTTOSFNT_VERSION = 1.2.2 XAPP_FONTTOSFNT_SOURCE = fonttosfnt-$(XAPP_FONTTOSFNT_VERSION).tar.bz2 XAPP_FONTTOSFNT_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_FONTTOSFNT_LICENSE = MIT XAPP_FONTTOSFNT_LICENSE_FILES = COPYING XAPP_FONTTOSFNT_DEPENDENCIES = freetype xlib_libX11 xlib_libfontenc $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_fslsfonts/Config.in ================================================ config BR2_PACKAGE_XAPP_FSLSFONTS bool "fslsfonts" select BR2_PACKAGE_XLIB_LIBFS select BR2_PACKAGE_XLIB_LIBX11 help list fonts served by X font server ================================================ FILE: package/x11r7/xapp_fslsfonts/xapp_fslsfonts.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2014-December/002510.html sha256 f1ed55093356b78daec2678d22f52d42ec11fe88575562d734396962e626d7f6 fslsfonts-1.0.5.tar.bz2 # Locally computed sha256 fbdfcafb5755565ad688bf3f7f808109d358040ec83ed3de496155105451fdf4 COPYING ================================================ FILE: package/x11r7/xapp_fslsfonts/xapp_fslsfonts.mk ================================================ ################################################################################ # # xapp_fslsfonts # ################################################################################ XAPP_FSLSFONTS_VERSION = 1.0.5 XAPP_FSLSFONTS_SOURCE = fslsfonts-$(XAPP_FSLSFONTS_VERSION).tar.bz2 XAPP_FSLSFONTS_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_FSLSFONTS_LICENSE = MIT XAPP_FSLSFONTS_LICENSE_FILES = COPYING XAPP_FSLSFONTS_DEPENDENCIES = xlib_libFS xlib_libX11 $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_fstobdf/Config.in ================================================ config BR2_PACKAGE_XAPP_FSTOBDF bool "fstobdf" select BR2_PACKAGE_XLIB_LIBFS select BR2_PACKAGE_XLIB_LIBX11 help generate BDF font from X font server ================================================ FILE: package/x11r7/xapp_fstobdf/xapp_fstobdf.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2014-December/002511.html sha256 66cf550326c993e7043f260a8ec4a533a3bf9d8f0e7397a6fe9cca803732e92e fstobdf-1.0.6.tar.bz2 # Locally computed sha256 b76125d919ac2bfbff96955dec98b90729633b2df5fbfa2ad3f2e4376164febb COPYING ================================================ FILE: package/x11r7/xapp_fstobdf/xapp_fstobdf.mk ================================================ ################################################################################ # # xapp_fstobdf # ################################################################################ XAPP_FSTOBDF_VERSION = 1.0.6 XAPP_FSTOBDF_SOURCE = fstobdf-$(XAPP_FSTOBDF_VERSION).tar.bz2 XAPP_FSTOBDF_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_FSTOBDF_LICENSE = MIT XAPP_FSTOBDF_LICENSE_FILES = COPYING XAPP_FSTOBDF_DEPENDENCIES = xlib_libFS xlib_libX11 $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_iceauth/Config.in ================================================ config BR2_PACKAGE_XAPP_ICEAUTH bool "iceauth" select BR2_PACKAGE_XLIB_LIBICE select BR2_PACKAGE_XLIB_LIBX11 help ICE authority file utility ================================================ FILE: package/x11r7/xapp_iceauth/xapp_iceauth.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002850.html md5 3b9b79fa0f9928161f4bad94273de7ae iceauth-1.0.8.tar.bz2 sha1 2ce23c40a17d98badeb8ce70d26e81a5ac0e178c iceauth-1.0.8.tar.bz2 sha256 e6ee213a217265cc76050e4293ea70b98c32dce6505c6421227efbda62ab60c6 iceauth-1.0.8.tar.bz2 sha512 9d4520adf951b16a3e784349dbb70d5d8176b74b956f8adc63abf55d049745c113b03ccfa60a281fc39b487db3742302dc6287c9985ce83a0157bf4674df2af1 iceauth-1.0.8.tar.bz2 # Locally computed sha256 fdd9ba8ccb92af2f31f542e7b7a18c27257e6cdce147d231bc9ba3654ad84976 COPYING ================================================ FILE: package/x11r7/xapp_iceauth/xapp_iceauth.mk ================================================ ################################################################################ # # xapp_iceauth # ################################################################################ XAPP_ICEAUTH_VERSION = 1.0.8 XAPP_ICEAUTH_SOURCE = iceauth-$(XAPP_ICEAUTH_VERSION).tar.bz2 XAPP_ICEAUTH_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_ICEAUTH_LICENSE = MIT XAPP_ICEAUTH_LICENSE_FILES = COPYING XAPP_ICEAUTH_DEPENDENCIES = xlib_libICE xlib_libX11 $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_ico/Config.in ================================================ config BR2_PACKAGE_XAPP_ICO bool "ico" select BR2_PACKAGE_XLIB_LIBX11 help animate an icosahedron or other polyhedron ================================================ FILE: package/x11r7/xapp_ico/xapp_ico.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002880.html md5 7895f2d109f4206b6d2db37257e07d12 ico-1.0.5.tar.bz2 sha1 8759ec954375f3a1b37dc920a12790bfbfb0cad3 ico-1.0.5.tar.bz2 sha256 d73b62f29eb98d850f16b76d759395180b860b613fbe1686b18eee99a6e3773f ico-1.0.5.tar.bz2 sha512 93a94a66d4a41b39d4b3657050e58f8269d352dae5d5916c9ecdda1cb14f23b9d159d67c50fdfa654b4b1c2ad11434bed140ace70703c82b05d3fe8686aab8f6 ico-1.0.5.tar.bz2 # Locally computed sha256 97ef3a622f2f385cabfc8ab7aff13dc46468c10a5520670b5edfa33f2c3999eb COPYING ================================================ FILE: package/x11r7/xapp_ico/xapp_ico.mk ================================================ ################################################################################ # # xapp_ico # ################################################################################ XAPP_ICO_VERSION = 1.0.5 XAPP_ICO_SOURCE = ico-$(XAPP_ICO_VERSION).tar.bz2 XAPP_ICO_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_ICO_LICENSE = MIT XAPP_ICO_LICENSE_FILES = COPYING XAPP_ICO_DEPENDENCIES = xlib_libX11 $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_listres/Config.in ================================================ config BR2_PACKAGE_XAPP_LISTRES bool "listres" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXMU select BR2_PACKAGE_XLIB_LIBXT help list resources in widgets ================================================ FILE: package/x11r7/xapp_listres/xapp_listres.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002848.html md5 24e05349f2881aaa58cbe160e49223ac listres-1.0.4.tar.bz2 sha1 903857c7a9ec3d8edc8a88101aef33cd27796649 listres-1.0.4.tar.bz2 sha256 6a1229f478796e141d6658762f432ebbe1f6083b27550847d52239b3f7ec2b10 listres-1.0.4.tar.bz2 sha512 925bceab6ff96fcf91f58ba2f858905d6e2eff7074ba29cfc02def7c19fb493545837884f1070dc004422451f749cd459000c01e8c9bb51a7cce7f7ab4067b8a listres-1.0.4.tar.bz2 # Locally computed sha256 aefb540c54bc95c68702cd2ae668c559e63cc1a84f55ae5c0e78547e7d75d2d5 COPYING ================================================ FILE: package/x11r7/xapp_listres/xapp_listres.mk ================================================ ################################################################################ # # xapp_listres # ################################################################################ XAPP_LISTRES_VERSION = 1.0.4 XAPP_LISTRES_SOURCE = listres-$(XAPP_LISTRES_VERSION).tar.bz2 XAPP_LISTRES_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_LISTRES_LICENSE = MIT XAPP_LISTRES_LICENSE_FILES = COPYING XAPP_LISTRES_DEPENDENCIES = xlib_libX11 xlib_libXaw xlib_libXmu xlib_libXt $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_luit/0001-posix-openpt.patch ================================================ Suggested workaround to build with recent gcc versions Upstream bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47792 Signed-off-by: Markos Chandras Index: xapp_luit-1.1.1/sys.c =================================================================== --- xapp_luit-1.1.1.orig/sys.c +++ xapp_luit-1.1.1/sys.c @@ -20,6 +20,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWAR THE SOFTWARE. */ +#define _XOPEN_SOURCE 600 + #ifdef HAVE_CONFIG_H # include "config.h" #endif ================================================ FILE: package/x11r7/xapp_luit/Config.in ================================================ config BR2_PACKAGE_XAPP_LUIT bool "luit" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBFONTENC help Locale and ISO 2022 support for Unicode terminals ================================================ FILE: package/x11r7/xapp_luit/xapp_luit.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2012-March/001894.html sha256 30b0e787cb07a0f504b70f1d6123930522111ce9d4276f6683a69b322b49c636 luit-1.1.1.tar.bz2 # Locally computed sha256 20b6a1481d9dafeaa471e2ac497ecc651428e8369cc935b5bd9d0e5b77d78081 COPYING ================================================ FILE: package/x11r7/xapp_luit/xapp_luit.mk ================================================ ################################################################################ # # xapp_luit # ################################################################################ XAPP_LUIT_VERSION = 1.1.1 XAPP_LUIT_SOURCE = luit-$(XAPP_LUIT_VERSION).tar.bz2 XAPP_LUIT_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_LUIT_LICENSE = MIT XAPP_LUIT_LICENSE_FILES = COPYING XAPP_LUIT_DEPENDENCIES = xlib_libX11 xlib_libfontenc $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_mkfontscale/Config.in ================================================ config BR2_PACKAGE_XAPP_MKFONTSCALE bool "mkfontscale" select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBFONTENC select BR2_PACKAGE_XORGPROTO select BR2_PACKAGE_ZLIB help create an index of scalable font files for X ================================================ FILE: package/x11r7/xapp_mkfontscale/xapp_mkfontscale.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002988.html md5 215940de158b1a3d8b3f8b442c606e2f mkfontscale-1.2.1.tar.bz2 sha1 fb9d0458a4476a237609b676f9cebcc64b0a8a85 mkfontscale-1.2.1.tar.bz2 sha256 ca0495eb974a179dd742bfa6199d561bda1c8da4a0c5a667f21fd82aaab6bac7 mkfontscale-1.2.1.tar.bz2 sha512 4d243160e1f7f8dfa6a8f53349c1a42a55fc99426455ebdef58352c5e951fce8b4f1fbd1061a76c9a148095b002eac372db1ae5e2647d2ccb4886635b317b18c mkfontscale-1.2.1.tar.bz2 # Locally computed sha256 80df6f5b759f7775042313e4586506db60f26fd15b98b532cf518bd8cf1e8488 COPYING ================================================ FILE: package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk ================================================ ################################################################################ # # xapp_mkfontscale # ################################################################################ XAPP_MKFONTSCALE_VERSION = 1.2.1 XAPP_MKFONTSCALE_SOURCE = mkfontscale-$(XAPP_MKFONTSCALE_VERSION).tar.bz2 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 xorgproto HOST_XAPP_MKFONTSCALE_DEPENDENCIES = \ host-zlib host-freetype host-xlib_libfontenc host-xorgproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xapp_oclock/Config.in ================================================ config BR2_PACKAGE_XAPP_OCLOCK bool "oclock" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXMU help round X clock ================================================ FILE: package/x11r7/xapp_oclock/xapp_oclock.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002856.html md5 973f6d25a6f0990720b98a15c9436b92 oclock-1.0.4.tar.bz2 sha1 0bc8f3f44290950f60af894e20e0ceb0c5e8e862 oclock-1.0.4.tar.bz2 sha256 cc20cfc1c0d5128d89e1eecd9ba52e58f111075be163e0aeda5690dbaafbaefe oclock-1.0.4.tar.bz2 sha512 6e0d36a84572a153226b2929f2253cb7adc3c9e5e3af168aeaf8c487ade2e43517b271a8e9cdb2a2c4a67ca56ed0b99c194ca63a4a822b68bfc72ca6518335e7 oclock-1.0.4.tar.bz2 # Locally computed sha256 f6cae4b0c603ef5bd76da2df96b38aa43aa7547e482adb8cb8b83f09af35e4a2 COPYING ================================================ FILE: package/x11r7/xapp_oclock/xapp_oclock.mk ================================================ ################################################################################ # # xapp_oclock # ################################################################################ XAPP_OCLOCK_VERSION = 1.0.4 XAPP_OCLOCK_SOURCE = oclock-$(XAPP_OCLOCK_VERSION).tar.bz2 XAPP_OCLOCK_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_OCLOCK_LICENSE = MIT XAPP_OCLOCK_LICENSE_FILES = COPYING XAPP_OCLOCK_DEPENDENCIES = xlib_libX11 xlib_libXext xlib_libXmu XAPP_OCLOCK_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults ifeq ($(BR2_PACKAGE_XLIB_LIBXKBFILE),y) XAPP_OCLOCK_CONF_OPTS += --with-xkb XAPP_OCLOCK_DEPENDENCIES += xlib_libxkbfile else XAPP_OCLOCK_CONF_OPTS += --without-xkb endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_rgb/Config.in ================================================ config BR2_PACKAGE_XAPP_RGB bool "rgb" select BR2_PACKAGE_XORGPROTO help uncompile an rgb color-name database ================================================ FILE: package/x11r7/xapp_rgb/xapp_rgb.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2014-November/002494.html sha256 bbca7c6aa59939b9f6a0fb9fff15dfd62176420ffd4ae30c8d92a6a125fbe6b0 rgb-1.0.6.tar.bz2 # Locally computed sha256 1d08eb3384f5dedc7735bcfae1aa58cb64643ca9389edce3312b1c3cefbfdaa7 COPYING ================================================ FILE: package/x11r7/xapp_rgb/xapp_rgb.mk ================================================ ################################################################################ # # xapp_rgb # ################################################################################ XAPP_RGB_VERSION = 1.0.6 XAPP_RGB_SOURCE = rgb-$(XAPP_RGB_VERSION).tar.bz2 XAPP_RGB_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_RGB_LICENSE = MIT XAPP_RGB_LICENSE_FILES = COPYING XAPP_RGB_DEPENDENCIES = xorgproto host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_rstart/Config.in ================================================ config BR2_PACKAGE_XAPP_RSTART bool "rstart" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBX11 help X.Org rstart application ================================================ FILE: package/x11r7/xapp_rstart/xapp_rstart.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2013-February/002168.html sha256 29134e9fdffc8d6ac6904c293b392ba6a493ce571fbd2015485b19a8e4d0ffeb rstart-1.0.5.tar.bz2 # Locally computed sha256 7561fa083e87cd511669d8725ebe89dde6cd4f72cdea35b817262dc6ad6fbe9a COPYING ================================================ FILE: package/x11r7/xapp_rstart/xapp_rstart.mk ================================================ ################################################################################ # # xapp_rstart # ################################################################################ XAPP_RSTART_VERSION = 1.0.5 XAPP_RSTART_SOURCE = rstart-$(XAPP_RSTART_VERSION).tar.bz2 XAPP_RSTART_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_RSTART_LICENSE = MIT XAPP_RSTART_LICENSE_FILES = COPYING XAPP_RSTART_DEPENDENCIES = xlib_libX11 $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_scripts/Config.in ================================================ config BR2_PACKAGE_XAPP_SCRIPTS bool "scripts" select BR2_PACKAGE_XLIB_LIBX11 help start an X program on a remote machine ================================================ FILE: package/x11r7/xapp_scripts/xapp_scripts.hash ================================================ # locally computed sha256 1b154b4359302ca499818c45396325aef9ff364d6ff4ce5c3769e4803994a136 scripts-1.0.1.tar.bz2 sha256 27d8cbdcde7a0bd062ce49cdf8c672201452a64e3e6823f09b1beffe2c4b8eff COPYING ================================================ FILE: package/x11r7/xapp_scripts/xapp_scripts.mk ================================================ ################################################################################ # # xapp_scripts # ################################################################################ XAPP_SCRIPTS_VERSION = 1.0.1 XAPP_SCRIPTS_SOURCE = scripts-$(XAPP_SCRIPTS_VERSION).tar.bz2 XAPP_SCRIPTS_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_SCRIPTS_LICENSE = MIT XAPP_SCRIPTS_LICENSE_FILES = COPYING XAPP_SCRIPTS_DEPENDENCIES = xlib_libX11 $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_sessreg/Config.in ================================================ config BR2_PACKAGE_XAPP_SESSREG bool "sessreg" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XORGPROTO help manage utmp/wtmp entries for non-init clients ================================================ FILE: package/x11r7/xapp_sessreg/xapp_sessreg.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-June/002994.html md5 92be564d4be7d8aa7b5024057b715210 sessreg-1.1.2.tar.bz2 sha1 169c1ff9fb152b4b4ca0cfbd3e1aee33af042016 sessreg-1.1.2.tar.bz2 sha256 dfcb9e954273ace63879aec053c7880466f8755752a35aa9ced3fa5f04fd2c33 sessreg-1.1.2.tar.bz2 sha512 7e3c2bdcadb7133aace463b58d8c6108d315ec95d2a42509073eeddc7f02644092a4b3168bd3b426c041736a016291092e0bf8368acd620dbeff96d53d12f98c sessreg-1.1.2.tar.bz2 # Locally computed sha256 ac8f5cc696e6c473aea4caaf18650316dc8912fcf0f370cae1df5f395cea8631 COPYING ================================================ FILE: package/x11r7/xapp_sessreg/xapp_sessreg.mk ================================================ ################################################################################ # # xapp_sessreg # ################################################################################ XAPP_SESSREG_VERSION = 1.1.2 XAPP_SESSREG_SOURCE = sessreg-$(XAPP_SESSREG_VERSION).tar.bz2 XAPP_SESSREG_SITE = https://xorg.freedesktop.org/archive/individual/app XAPP_SESSREG_LICENSE = MIT XAPP_SESSREG_LICENSE_FILES = COPYING XAPP_SESSREG_DEPENDENCIES = xlib_libX11 xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_setxkbmap/Config.in ================================================ config BR2_PACKAGE_XAPP_SETXKBMAP bool "setxkbmap" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXKBFILE help Controls the keyboard layout of a running X server. ================================================ FILE: package/x11r7/xapp_setxkbmap/xapp_setxkbmap.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-July/003007.html md5 93e736c98fb75856ee8227a0c49a128d setxkbmap-1.3.2.tar.bz2 sha1 44783734bc58fca93165a20da0bb3eca1ccb9ad9 setxkbmap-1.3.2.tar.bz2 sha256 8ff27486442725e50b02d7049152f51d125ecad71b7ce503cfa09d5d8ceeb9f5 setxkbmap-1.3.2.tar.bz2 sha512 bfa8015dee0d8d3fdbbd89afbd71c8606ce168d6edca8521d5ed05a00fecbea39bc4bfcce84b71458bdeb34c60bd80a5df27e0691ccee3966443ecdc937faf38 setxkbmap-1.3.2.tar.bz2 # Locally computed sha256 afb8ce58340b6a6b85b73e256425263ce46f5a427279785e275991cb660cce82 COPYING ================================================ FILE: package/x11r7/xapp_setxkbmap/xapp_setxkbmap.mk ================================================ ################################################################################ # # xapp_setxkbmap # ################################################################################ XAPP_SETXKBMAP_VERSION = 1.3.2 XAPP_SETXKBMAP_SOURCE = setxkbmap-$(XAPP_SETXKBMAP_VERSION).tar.bz2 XAPP_SETXKBMAP_SITE = https://xorg.freedesktop.org/archive/individual/app XAPP_SETXKBMAP_LICENSE = MIT XAPP_SETXKBMAP_LICENSE_FILES = COPYING XAPP_SETXKBMAP_DEPENDENCIES = xlib_libX11 xlib_libxkbfile $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_showfont/Config.in ================================================ config BR2_PACKAGE_XAPP_SHOWFONT bool "showfont" select BR2_PACKAGE_XLIB_LIBFS help font dumper for X font server ================================================ FILE: package/x11r7/xapp_showfont/xapp_showfont.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2014-December/002513.html sha256 e9735c1c530b8a52edfab7415cc0fd7f8d2889095114f4cb689a27476461ac89 showfont-1.0.5.tar.bz2 # Locally computed sha256 c32217021e0507207e2ee6da3fcee3d9e32816003a7153b3357c08cdc97934a8 COPYING ================================================ FILE: package/x11r7/xapp_showfont/xapp_showfont.mk ================================================ ################################################################################ # # xapp_showfont # ################################################################################ XAPP_SHOWFONT_VERSION = 1.0.5 XAPP_SHOWFONT_SOURCE = showfont-$(XAPP_SHOWFONT_VERSION).tar.bz2 XAPP_SHOWFONT_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_SHOWFONT_LICENSE = MIT XAPP_SHOWFONT_LICENSE_FILES = COPYING XAPP_SHOWFONT_DEPENDENCIES = xlib_libFS $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_smproxy/Config.in ================================================ config BR2_PACKAGE_XAPP_SMPROXY bool "smproxy" select BR2_PACKAGE_XLIB_LIBXMU select BR2_PACKAGE_XLIB_LIBXT help Session Manager Proxy ================================================ FILE: package/x11r7/xapp_smproxy/xapp_smproxy.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-April/002564.html sha256 6cf19155a2752237f36dbf8bc4184465ea190d2652f887faccb4e2a6ebf77266 smproxy-1.0.6.tar.bz2 # Locally computed sha256 92dce6d8a1fcc0c6b5e56dc44e431e7f73bfa2ed5e83295662aa314067a671d8 COPYING ================================================ FILE: package/x11r7/xapp_smproxy/xapp_smproxy.mk ================================================ ################################################################################ # # xapp_smproxy # ################################################################################ XAPP_SMPROXY_VERSION = 1.0.6 XAPP_SMPROXY_SOURCE = smproxy-$(XAPP_SMPROXY_VERSION).tar.bz2 XAPP_SMPROXY_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_SMPROXY_LICENSE = MIT XAPP_SMPROXY_LICENSE_FILES = COPYING XAPP_SMPROXY_DEPENDENCIES = xlib_libXmu xlib_libXt $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_twm/Config.in ================================================ config BR2_PACKAGE_XAPP_TWM bool "twm" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_XLIB_LIBXMU help No description available ================================================ FILE: package/x11r7/xapp_twm/xapp_twm.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2020-June/003047.html sha256 f4e8a842dec410e79741f25ed4dfac09df080835d0bba2e3983b5914569b68c7 twm-1.0.11.tar.xz sha512 948034bba23e6b6c4412fcd2e46bb11a9980297601218a54a5055165ab0229a44dde0d50f338b24e82d76f390597e2fa09d11ff7f3fe1b1d736b10083c7da20d twm-1.0.11.tar.xz # Locally computed sha256 4809ffc9656bc9a704e19ab467d1cedc97c48c9d1f9a4018e6d99d2e61f75945 COPYING ================================================ FILE: package/x11r7/xapp_twm/xapp_twm.mk ================================================ ################################################################################ # # xapp_twm # ################################################################################ XAPP_TWM_VERSION = 1.0.11 XAPP_TWM_SOURCE = twm-$(XAPP_TWM_VERSION).tar.xz XAPP_TWM_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_TWM_LICENSE = MIT XAPP_TWM_LICENSE_FILES = COPYING XAPP_TWM_DEPENDENCIES = \ host-bison xlib_libX11 xlib_libXext xlib_libXt xlib_libXmu $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_viewres/Config.in ================================================ config BR2_PACKAGE_XAPP_VIEWRES bool "viewres" select BR2_PACKAGE_XLIB_LIBXAW help graphical class browser for Xt ================================================ FILE: package/x11r7/xapp_viewres/xapp_viewres.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-August/003020.html md5 38e6568271d8098327706c5cf855dbc7 viewres-1.0.6.tar.bz2 sha1 f1d12e5b4e1180916edb44234599a486b025b480 viewres-1.0.6.tar.bz2 sha256 11c15db02066c1d5fc3febf9b185d16c1112f87e37c4b101a484dcefffb80934 viewres-1.0.6.tar.bz2 sha512 3f4cfc61608bc6c9b35ef66ceb473661ca01946d3306d54040d32803e8e0eec506a0ce37ea22bfe514544a6ba9645fd30f39b20c063aff696b3c0fda3fe95dff viewres-1.0.6.tar.bz2 # Locally computed sha256 aefb540c54bc95c68702cd2ae668c559e63cc1a84f55ae5c0e78547e7d75d2d5 COPYING ================================================ FILE: package/x11r7/xapp_viewres/xapp_viewres.mk ================================================ ################################################################################ # # xapp_viewres # ################################################################################ XAPP_VIEWRES_VERSION = 1.0.6 XAPP_VIEWRES_SOURCE = viewres-$(XAPP_VIEWRES_VERSION).tar.bz2 XAPP_VIEWRES_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_VIEWRES_LICENSE = MIT XAPP_VIEWRES_LICENSE_FILES = COPYING XAPP_VIEWRES_DEPENDENCIES = xlib_libXaw XAPP_VIEWRES_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_x11perf/Config.in ================================================ config BR2_PACKAGE_XAPP_X11PERF bool "x11perf" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXMU select BR2_PACKAGE_XLIB_LIBXFT help summarize x11perf results ================================================ FILE: package/x11r7/xapp_x11perf/xapp_x11perf.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002983.html md5 e96b56756990c56c24d2d02c2964456b x11perf-1.6.1.tar.bz2 sha1 c54ebef80b6cb565397fe2e3069e0d7470027e5a x11perf-1.6.1.tar.bz2 sha256 1c7e0b8ffc2794b4ccf11e04d551823abe0ea47b4f7db0637390db6fbe817c34 x11perf-1.6.1.tar.bz2 sha512 b386151bfe3d7c04ab9953ae1882f3c5b627d6d1afb9a8cfe87c58236a88883fc11bbadb2226b9aa61df84b4fce625a1c9e3d146a124ac17e8d7d605b35d9c0b x11perf-1.6.1.tar.bz2 # Locally computed sha256 f467ff659142e2eb4cb7275c48c789d249af398b09a405d3e181dcc339b3b922 COPYING ================================================ FILE: package/x11r7/xapp_x11perf/xapp_x11perf.mk ================================================ ################################################################################ # # xapp_x11perf # ################################################################################ XAPP_X11PERF_VERSION = 1.6.1 XAPP_X11PERF_SOURCE = x11perf-$(XAPP_X11PERF_VERSION).tar.bz2 XAPP_X11PERF_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_X11PERF_LICENSE = MIT XAPP_X11PERF_LICENSE_FILES = COPYING XAPP_X11PERF_DEPENDENCIES = xlib_libX11 xlib_libXmu xlib_libXft $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xauth/Config.in ================================================ config BR2_PACKAGE_XAPP_XAUTH bool "xauth" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXAU select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXMU help X authority file utility ================================================ FILE: package/x11r7/xapp_xauth/xapp_xauth.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-July/003005.html md5 e50587c1bb832aafd1a19d91a0890a0b xauth-1.1.tar.bz2 sha1 16180e36d75a23cb182cb91e78f24273f1a63967 xauth-1.1.tar.bz2 sha256 6d1dd1b79dd185107c5b0fdd22d1d791ad749ad6e288d0cdf80964c4ffa7530c xauth-1.1.tar.bz2 sha512 b6ecd59a853a491ef45bf8cfbff63bed36645f81cb79ae9d18458b57f7502bccf92f0d979d3337578518646f680ad379e67b1dac15a927cbb11372733e7a3a0c xauth-1.1.tar.bz2 # Locally computed sha256 dcdf5fa36a652efbe61a21def1301739b0010334ae3f049f1cff433221a8c7a5 COPYING ================================================ FILE: package/x11r7/xapp_xauth/xapp_xauth.mk ================================================ ################################################################################ # # xapp_xauth # ################################################################################ XAPP_XAUTH_VERSION = 1.1 XAPP_XAUTH_SOURCE = xauth-$(XAPP_XAUTH_VERSION).tar.bz2 XAPP_XAUTH_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XAUTH_LICENSE = MIT XAPP_XAUTH_LICENSE_FILES = COPYING XAPP_XAUTH_DEPENDENCIES = xlib_libX11 xlib_libXau xlib_libXext xlib_libXmu $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xbacklight/Config.in ================================================ config BR2_PACKAGE_XAPP_XBACKLIGHT bool "xbacklight" select BR2_PACKAGE_XCB_UTIL select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXRANDR select BR2_PACKAGE_XLIB_LIBXRENDER help xbacklight ================================================ FILE: package/x11r7/xapp_xbacklight/xapp_xbacklight.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-July/003008.html md5 5b6405973db69c0443be2fba8e1a8ab7 xbacklight-1.2.3.tar.bz2 sha1 f0a6163738143ec23542b459aef567309a119e0c xbacklight-1.2.3.tar.bz2 sha256 3a27f324777ae99fee476cfb2f064576fb8cba4eb77f97cda37adda1c1d39ade xbacklight-1.2.3.tar.bz2 sha512 717c87ce24634892fc4ac54fc59dcc0a5bc8f206aaf1d13410f95f7e4fe6e3dbc7ff8d951bcd8ea8c5e955357a00fea6ceadd4559e60b1a632e40f71290e12c7 xbacklight-1.2.3.tar.bz2 # Locally computed sha256 c9fbf1f272215babef31808c1235de8e4f7641ca5edfc4fc615b6556054b2b04 COPYING ================================================ FILE: package/x11r7/xapp_xbacklight/xapp_xbacklight.mk ================================================ ################################################################################ # # xapp_xbacklight # ################################################################################ XAPP_XBACKLIGHT_VERSION = 1.2.3 XAPP_XBACKLIGHT_SOURCE = xbacklight-$(XAPP_XBACKLIGHT_VERSION).tar.bz2 XAPP_XBACKLIGHT_SITE = https://xorg.freedesktop.org/archive/individual/app XAPP_XBACKLIGHT_LICENSE = MIT XAPP_XBACKLIGHT_LICENSE_FILES = COPYING XAPP_XBACKLIGHT_DEPENDENCIES = xlib_libX11 xlib_libXrandr xlib_libXrender xcb-util $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xbiff/Config.in ================================================ config BR2_PACKAGE_XAPP_XBIFF bool "xbiff" select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XDATA_XBITMAPS help mailbox flag for X ================================================ FILE: package/x11r7/xapp_xbiff/xapp_xbiff.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-July/003009.html md5 66dd3ebd6351b1911b831b89b2dba8ec xbiff-1.0.4.tar.bz2 sha1 193c0a2be1f7f374bb9d32217a198c92a63619e8 xbiff-1.0.4.tar.bz2 sha256 e1e1a39628a5678585008ef7fb1ff2864edaaa0e062989c2331f8c74e0fec971 xbiff-1.0.4.tar.bz2 sha512 0fb920a08640ec59f23d8a8a47bd244565dfbaff7a21c38a8a2abe1edb5eacabc970b5dbdc409163fc444fde5b75a2dc4e0114312938efec5b77228f3bf785ac xbiff-1.0.4.tar.bz2 # Locally computed sha256 9b840f2e1900889124cc999f3158da2b6b07bf6d0d77bdbb01ce65d2e702dc83 COPYING ================================================ FILE: package/x11r7/xapp_xbiff/xapp_xbiff.mk ================================================ ################################################################################ # # xapp_xbiff # ################################################################################ XAPP_XBIFF_VERSION = 1.0.4 XAPP_XBIFF_SOURCE = xbiff-$(XAPP_XBIFF_VERSION).tar.bz2 XAPP_XBIFF_SITE = https://xorg.freedesktop.org/archive/individual/app XAPP_XBIFF_LICENSE = MIT XAPP_XBIFF_LICENSE_FILES = COPYING XAPP_XBIFF_DEPENDENCIES = xlib_libXaw xdata_xbitmaps $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xcalc/Config.in ================================================ config BR2_PACKAGE_XAPP_XCALC bool "xcalc" select BR2_PACKAGE_XLIB_LIBXAW help scientific calculator for X ================================================ FILE: package/x11r7/xapp_xcalc/xapp_xcalc.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-June/002996.html md5 3b566e47c76356cecaa71eb431767ae1 xcalc-1.1.0.tar.bz2 sha1 0537f7ee56558cf80133c6b49c4757c1166aaeb6 xcalc-1.1.0.tar.bz2 sha256 d5d746954465afc3da1f355d721882806568fb04b4d059c027702c0d16a3b5eb xcalc-1.1.0.tar.bz2 sha512 877aab7bb08f409a21c26b841f4d91eb6993914ed0d26512e47d6b3d2b3e0b231158901415a106cfb45de43f03f253bf2a8733f986538d4ee810afe0e54f98d5 xcalc-1.1.0.tar.bz2 # Locally computed sha256 8dd69dbec37866a41d3040c5c478aca46e0b50c30319f178064d5e2ed9d3f912 COPYING ================================================ FILE: package/x11r7/xapp_xcalc/xapp_xcalc.mk ================================================ ################################################################################ # # xapp_xcalc # ################################################################################ XAPP_XCALC_VERSION = 1.1.0 XAPP_XCALC_SOURCE = xcalc-$(XAPP_XCALC_VERSION).tar.bz2 XAPP_XCALC_SITE = https://xorg.freedesktop.org/releases/individual/app XAPP_XCALC_LICENSE = MIT XAPP_XCALC_LICENSE_FILES = COPYING XAPP_XCALC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-exec install-data XAPP_XCALC_DEPENDENCIES = xlib_libXaw XAPP_XCALC_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xclipboard/Config.in ================================================ config BR2_PACKAGE_XAPP_XCLIPBOARD bool "xclipboard" select BR2_PACKAGE_XLIB_LIBXAW help interchange between cut buffer and selection ================================================ FILE: package/x11r7/xapp_xclipboard/xapp_xclipboard.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2013-September/002299.html sha256 9c0e0a1f4f1d49f73c6cf3ccd27b5ca0e18afc63679f1a1ee466b1d82446ebb5 xclipboard-1.1.3.tar.bz2 # Locally computed sha256 f0a362fc1b8e788845b1c0ad7ba9ade58fdfb73da750c3b9780db5d70b947657 COPYING ================================================ FILE: package/x11r7/xapp_xclipboard/xapp_xclipboard.mk ================================================ ################################################################################ # # xapp_xclipboard # ################################################################################ XAPP_XCLIPBOARD_VERSION = 1.1.3 XAPP_XCLIPBOARD_SOURCE = xclipboard-$(XAPP_XCLIPBOARD_VERSION).tar.bz2 XAPP_XCLIPBOARD_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XCLIPBOARD_LICENSE = MIT XAPP_XCLIPBOARD_LICENSE_FILES = COPYING XAPP_XCLIPBOARD_DEPENDENCIES = xlib_libXaw xlib_libXmu xlib_libXt XAPP_XCLIPBOARD_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xclock/Config.in ================================================ config BR2_PACKAGE_XAPP_XCLOCK bool "xclock" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXFT select BR2_PACKAGE_XLIB_LIBXRENDER select BR2_PACKAGE_XLIB_LIBXKBFILE help analog / digital clock for X ================================================ FILE: package/x11r7/xapp_xclock/xapp_xclock.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-July/003010.html md5 437522a96f424f68fc64ed34ece9b211 xclock-1.0.9.tar.bz2 sha1 774c711cf7ee3f601f7209bbb01ce3f0d5ddbde6 xclock-1.0.9.tar.bz2 sha256 cf461fb2c6f2ac42c54d8429ee2010fdb9a1442a370adfbfe8a7bfaf33c123bb xclock-1.0.9.tar.bz2 sha512 fcbac0b4ab1cea4ae0751ce1c0c6302048e5d98d459873c7580e4ca786ec49fa27f73e5831bdfe135abb5cfeabe886456276e9d01351ea7905c606f40f84522d xclock-1.0.9.tar.bz2 # Locally computed sha256 ee1f19f46801ef00e70498603e74df644d0b93fc82f06b55ce64c3a2c9f16e71 COPYING ================================================ FILE: package/x11r7/xapp_xclock/xapp_xclock.mk ================================================ ################################################################################ # # xapp_xclock # ################################################################################ XAPP_XCLOCK_VERSION = 1.0.9 XAPP_XCLOCK_SOURCE = xclock-$(XAPP_XCLOCK_VERSION).tar.bz2 XAPP_XCLOCK_SITE = https://xorg.freedesktop.org/archive/individual/app XAPP_XCLOCK_LICENSE = MIT XAPP_XCLOCK_LICENSE_FILES = COPYING XAPP_XCLOCK_DEPENDENCIES = xlib_libX11 xlib_libXaw xlib_libXft xlib_libXrender xlib_libxkbfile XAPP_XCLOCK_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xcmsdb/Config.in ================================================ config BR2_PACKAGE_XAPP_XCMSDB bool "xcmsdb" select BR2_PACKAGE_XLIB_LIBX11 help Device Color Characterization utility for X Color Management System ================================================ FILE: package/x11r7/xapp_xcmsdb/xapp_xcmsdb.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-April/002567.html sha256 e5585361bb8b6a05bb814a8d0e444ee93e0f00180881d3070aff4571e97f67c6 xcmsdb-1.0.5.tar.bz2 # Locally computed sha256 c3bd4ac91beb08fee5272b17a3ddee8d2791cc5eaee5bce5271042a45fa4fa6a COPYING ================================================ FILE: package/x11r7/xapp_xcmsdb/xapp_xcmsdb.mk ================================================ ################################################################################ # # xapp_xcmsdb # ################################################################################ XAPP_XCMSDB_VERSION = 1.0.5 XAPP_XCMSDB_SOURCE = xcmsdb-$(XAPP_XCMSDB_VERSION).tar.bz2 XAPP_XCMSDB_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XCMSDB_LICENSE = MIT XAPP_XCMSDB_LICENSE_FILES = COPYING XAPP_XCMSDB_DEPENDENCIES = xlib_libX11 $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xcompmgr/Config.in ================================================ config BR2_PACKAGE_XAPP_XCOMPMGR bool "xcompmgr" select BR2_PACKAGE_XLIB_LIBXCOMPOSITE select BR2_PACKAGE_XLIB_LIBXDAMAGE select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXFIXES select BR2_PACKAGE_XLIB_LIBXRENDER help xcompmgr is a sample compositing manager that enables basic eye-candy effects. ================================================ FILE: package/x11r7/xapp_xcompmgr/xapp_xcompmgr.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002989.html md5 ef8c7d4140c11efb8de4141b3968208c xcompmgr-1.1.8.tar.bz2 sha1 7bb28329b4bb687763df2d2c1723cb6ecb20945a xcompmgr-1.1.8.tar.bz2 sha256 0b89daf4f060fa3fa83cca862c45d531fef7121b5d06552c1d73d396ad9a7243 xcompmgr-1.1.8.tar.bz2 sha512 ccf29426ffb0797a53653d1ce152de5eee0cec284811fed4b8e634ea0d948180531e4619d96f47e4f9594432c57322624fe0fdaee2c9200efac427fc0904953d xcompmgr-1.1.8.tar.bz2 # Locally computed sha256 c843545f72771b3ff95eb88defc2e3ed8f9a1802d9bb6c32c196bb5eec3d3a5d COPYING ================================================ FILE: package/x11r7/xapp_xcompmgr/xapp_xcompmgr.mk ================================================ ################################################################################ # # xapp_xcompmgr # ################################################################################ XAPP_XCOMPMGR_VERSION = 1.1.8 XAPP_XCOMPMGR_SOURCE = xcompmgr-$(XAPP_XCOMPMGR_VERSION).tar.bz2 XAPP_XCOMPMGR_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XCOMPMGR_LICENSE = MIT XAPP_XCOMPMGR_LICENSE_FILES = COPYING XAPP_XCOMPMGR_DEPENDENCIES = \ xlib_libXcomposite \ xlib_libXdamage \ xlib_libXext \ xlib_libXfixes \ xlib_libXrender $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xconsole/Config.in ================================================ config BR2_PACKAGE_XAPP_XCONSOLE bool "xconsole" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_XLIB_LIBXMU select BR2_PACKAGE_XORGPROTO help xconsole - monitor system console messages with X ================================================ FILE: package/x11r7/xapp_xconsole/xapp_xconsole.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2017-January/002774.html sha256 d1144882df207378381bc83927906559defbf7b83a01d52c50ad44234c5851e0 xconsole-1.0.7.tar.bz2 # Locally computed sha256 a29ea5dbcde7ba1695c95949be6303d1ca1de0b7786a38b60f33eccf03506f9d COPYING ================================================ FILE: package/x11r7/xapp_xconsole/xapp_xconsole.mk ================================================ ################################################################################ # # xapp_xconsole # ################################################################################ XAPP_XCONSOLE_VERSION = 1.0.7 XAPP_XCONSOLE_SOURCE = xconsole-$(XAPP_XCONSOLE_VERSION).tar.bz2 XAPP_XCONSOLE_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XCONSOLE_LICENSE = MIT XAPP_XCONSOLE_LICENSE_FILES = COPYING XAPP_XCONSOLE_DEPENDENCIES = \ xlib_libX11 xlib_libXaw xlib_libXt xorgproto \ xlib_libXmu XAPP_XCONSOLE_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xcursorgen/Config.in ================================================ config BR2_PACKAGE_XAPP_XCURSORGEN bool "xcursorgen" select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXCURSOR help create an X cursor file from a collection of PNG images ================================================ FILE: package/x11r7/xapp_xcursorgen/xapp_xcursorgen.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-January/002936.html md5 25cc7ca1ce5dcbb61c2b471c55e686b5 xcursorgen-1.0.7.tar.bz2 sha1 109367eb23b0ad52cf5de15f50c02ebe872698ae xcursorgen-1.0.7.tar.bz2 sha256 35b6f844b24f1776e9006c880a745728800764dbe3b327a128772b4610d8eb3d xcursorgen-1.0.7.tar.bz2 sha512 bd13ad23691d3daa2d5dcdc5902cf62e3dcb97a0289aff362e6cd85866a1d8cafb64f98800a75bfb4cf1f3c76244ca20201847dff594543d136d0abaec7011d2 xcursorgen-1.0.7.tar.bz2 # Locally computed sha256 8c773336b654442ac8018715a52be1a8254895c57c898d5387016e9488cc2009 COPYING ================================================ FILE: package/x11r7/xapp_xcursorgen/xapp_xcursorgen.mk ================================================ ################################################################################ # # xapp_xcursorgen # ################################################################################ XAPP_XCURSORGEN_VERSION = 1.0.7 XAPP_XCURSORGEN_SOURCE = xcursorgen-$(XAPP_XCURSORGEN_VERSION).tar.bz2 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)) ================================================ FILE: package/x11r7/xapp_xdbedizzy/Config.in ================================================ config BR2_PACKAGE_XAPP_XDBEDIZZY bool "xdbedizzy" select BR2_PACKAGE_XLIB_LIBXEXT help X.Org xdbedizzy application ================================================ FILE: package/x11r7/xapp_xdbedizzy/xapp_xdbedizzy.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2010-October/001514.html sha1 281bee72116311e2d8393ae53ea832e9d267eded xdbedizzy-1.1.0.tar.bz2 # Locally computed sha256 27d8cbdcde7a0bd062ce49cdf8c672201452a64e3e6823f09b1beffe2c4b8eff COPYING ================================================ FILE: package/x11r7/xapp_xdbedizzy/xapp_xdbedizzy.mk ================================================ ################################################################################ # # xapp_xdbedizzy # ################################################################################ XAPP_XDBEDIZZY_VERSION = 1.1.0 XAPP_XDBEDIZZY_SOURCE = xdbedizzy-$(XAPP_XDBEDIZZY_VERSION).tar.bz2 XAPP_XDBEDIZZY_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XDBEDIZZY_LICENSE = MIT XAPP_XDBEDIZZY_LICENSE_FILES = COPYING XAPP_XDBEDIZZY_DEPENDENCIES = xlib_libXext $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xditview/Config.in ================================================ config BR2_PACKAGE_XAPP_XDITVIEW bool "xditview" select BR2_PACKAGE_XLIB_LIBXAW help display ditroff output ================================================ FILE: package/x11r7/xapp_xditview/xapp_xditview.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-April/002570.html md5 3a909116a3b2abe3845215cf49e09fa5 xditview-1.0.5.tar.bz2 sha1 f06f65bca31168c86bcebd7f92dbbda08817a5cc xditview-1.0.5.tar.bz2 sha256 eecb1ed51ab4edc7f454476d1248cfb7799a17c5679b3dd834e8b4658331c04b xditview-1.0.5.tar.bz2 sha512 e20c903f38394b496111267e142d84d11e69a3b89f91869652d1f2ee5c997a13f90bfa2966651b42cd3979a330b348a6e397cc6a74c45b1f3f91643e7c06765d xditview-1.0.5.tar.bz2 # Locally computed sha256 023d879308a49249181f78bbb567e93c45138ad847fe969d191e4802e7a1a005 COPYING ================================================ FILE: package/x11r7/xapp_xditview/xapp_xditview.mk ================================================ ################################################################################ # # xapp_xditview # ################################################################################ XAPP_XDITVIEW_VERSION = 1.0.5 XAPP_XDITVIEW_SOURCE = xditview-$(XAPP_XDITVIEW_VERSION).tar.bz2 XAPP_XDITVIEW_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XDITVIEW_LICENSE = MIT XAPP_XDITVIEW_LICENSE_FILES = COPYING XAPP_XDITVIEW_DEPENDENCIES = xlib_libXaw XAPP_XDITVIEW_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xdm/Config.in ================================================ config BR2_PACKAGE_XAPP_XDM bool "xdm" depends on BR2_USE_MMU # fork() # Runtime dependency: can't start an X server unless there is one depends on BR2_PACKAGE_XSERVER_XORG_SERVER select BR2_PACKAGE_XAPP_SESSREG select BR2_PACKAGE_XAPP_XRDB select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXDMCP select BR2_PACKAGE_XLIB_LIBXINERAMA select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_XORGPROTO help X.Org xdm application ================================================ FILE: package/x11r7/xapp_xdm/S99xdm ================================================ #!/bin/sh XDM_BIN=/usr/bin/xdm case "$1" in start) printf "Starting XDM: " $XDM_BIN echo "done" ;; stop) echo "Stopping XDM" killall -q xdm ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0 ================================================ FILE: package/x11r7/xapp_xdm/xapp_xdm.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002959.html md5 47c4c3bf8d59b64b64d134df8b5e5ec5 xdm-1.1.12.tar.bz2 sha1 5cc5590e40837949b1a63cb030878f8ceebd4d85 xdm-1.1.12.tar.bz2 sha256 0dd283f72dda098d09e2925b9278c95e21551e693a5802ab442d1b577d8327f4 xdm-1.1.12.tar.bz2 sha512 1a4be0a070ced5db8fda6fc74794c9f9ed0cb37fa440fda6a3a7652aff62dfc3d7ba68b9facf054671ebf0f4db2a0eec29d0aa3716e3407ccd5529bac3553bdb xdm-1.1.12.tar.bz2 # Locally computed sha256 b33b4bebbd6511b3e15315e8e29d67f25334ee45da8b7da6e6e97c53a70c6923 COPYING ================================================ FILE: package/x11r7/xapp_xdm/xapp_xdm.mk ================================================ ################################################################################ # # xapp_xdm # ################################################################################ XAPP_XDM_VERSION = 1.1.12 XAPP_XDM_SOURCE = xdm-$(XAPP_XDM_VERSION).tar.bz2 XAPP_XDM_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XDM_LICENSE = MIT XAPP_XDM_LICENSE_FILES = COPYING XAPP_XDM_CONF_ENV = ac_cv_file__dev_urandom=yes XAPP_XDM_DEPENDENCIES = \ xapp_sessreg \ xapp_xrdb \ xlib_libX11 \ xlib_libXaw \ xlib_libXdmcp \ xlib_libXinerama \ xlib_libXt \ xorgproto XAPP_XDM_CONF_OPTS = \ --with-appdefaultdir=/usr/share/X11/app-defaults \ --with-utmp-file=/var/adm/utmpx \ --with-wtmp-file=/var/adm/wtmpx define XAPP_XDM_INSTALL_INIT_SYSV $(INSTALL) -m 0755 -D package/x11r7/xapp_xdm/S99xdm \ $(TARGET_DIR)/etc/init.d/S99xdm endef $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xdpyinfo/Config.in ================================================ config BR2_PACKAGE_XAPP_XDPYINFO bool "xdpyinfo" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXTST help display information utility for X ================================================ FILE: package/x11r7/xapp_xdpyinfo/xapp_xdpyinfo.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-April/002569.html sha256 30238ed915619e06ceb41721e5f747d67320555cc38d459e954839c189ccaf51 xdpyinfo-1.3.2.tar.bz2 # Locally computed sha256 49733ead65fdfa1da0d176f9b965cc08dae74d73d66c9606488d52f6fc036abf COPYING ================================================ FILE: package/x11r7/xapp_xdpyinfo/xapp_xdpyinfo.mk ================================================ ################################################################################ # # xapp_xdpyinfo # ################################################################################ XAPP_XDPYINFO_VERSION = 1.3.2 XAPP_XDPYINFO_SOURCE = xdpyinfo-$(XAPP_XDPYINFO_VERSION).tar.bz2 XAPP_XDPYINFO_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XDPYINFO_LICENSE = MIT XAPP_XDPYINFO_LICENSE_FILES = COPYING XAPP_XDPYINFO_CONF_OPTS = --without-xf86misc # not in BR XAPP_XDPYINFO_DEPENDENCIES = xlib_libX11 xlib_libXext xlib_libXtst \ $(if $(BR2_PACKAGE_XLIB_LIBXI),xlib_libXi) \ $(if $(BR2_PACKAGE_XLIB_LIBXRENDER),xlib_libXrender) \ $(if $(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),xlib_libXcomposite) \ $(if $(BR2_PACKAGE_XLIB_LIBXXF86VM),xlib_libXxf86vm) ifeq ($(BR2_PACKAGE_XLIB_LIBXXF86DGA),y) XAPP_XDPYINFO_DEPENDENCIES += xlib_libXxf86dga else XAPP_XDPYINFO_CONF_OPTS += --without-dga endif ifeq ($(BR2_PACKAGE_XLIB_LIBDMX),y) XAPP_XDPYINFO_DEPENDENCIES += xlib_libdmx else XAPP_XDPYINFO_CONF_OPTS += --without-dmx endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) XAPP_XDPYINFO_DEPENDENCIES += xlib_libXinerama else XAPP_XDPYINFO_CONF_OPTS += --without-xinerama endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xdriinfo/Config.in ================================================ config BR2_PACKAGE_XAPP_XDRIINFO bool "xdriinfo" depends on BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XORGPROTO help query configuration information of DRI drivers comment "xdriinfo needs an OpenGL backend" depends on !BR2_PACKAGE_HAS_LIBGL ================================================ FILE: package/x11r7/xapp_xdriinfo/xapp_xdriinfo.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002858.html md5 480e63cd365f03eb2515a6527d5f4ca6 xdriinfo-1.0.6.tar.bz2 sha1 11682ae1f04a311b832651d78bbf4c6ac77f0ed9 xdriinfo-1.0.6.tar.bz2 sha256 d9ccd2c3e87899417acc9ea1f3e319a4198112babe1dc711273584f607449d51 xdriinfo-1.0.6.tar.bz2 sha512 7ddd9e19abaef93e4d85004293528ec3814ef84c470d496dbb8dc8313d804bb7520406de8d33d2bc2b3af942bd0a5d5032a109b2726438a966af63ea680a102f xdriinfo-1.0.6.tar.bz2 # Locally computed sha256 de2fbb160bbb64c48975d7a3ebe3636a312b73227df1efe37488a8cecb9c1932 COPYING ================================================ FILE: package/x11r7/xapp_xdriinfo/xapp_xdriinfo.mk ================================================ ################################################################################ # # xapp_xdriinfo # ################################################################################ XAPP_XDRIINFO_VERSION = 1.0.6 XAPP_XDRIINFO_SOURCE = xdriinfo-$(XAPP_XDRIINFO_VERSION).tar.bz2 XAPP_XDRIINFO_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XDRIINFO_LICENSE = MIT XAPP_XDRIINFO_LICENSE_FILES = COPYING XAPP_XDRIINFO_DEPENDENCIES = libgl xlib_libX11 xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xedit/Config.in ================================================ config BR2_PACKAGE_XAPP_XEDIT bool "xedit" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBXAW help simple text editor for X ================================================ FILE: package/x11r7/xapp_xedit/xapp_xedit.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-February/002535.html sha1 f37b5d0f8ec461955f0419dbb1890d8cf63d179d xedit-1.2.2.tar.bz2 sha256 69aa42885dfc06332ca22eb01cc7187e49206e6d65b74113a8ee4cc345fc2927 xedit-1.2.2.tar.bz2 # Locally computed sha256 6d3e4092277ea08fc6b3180dba061120ea53ee965afb84fce16f8ab3d35bb47a COPYING ================================================ FILE: package/x11r7/xapp_xedit/xapp_xedit.mk ================================================ ################################################################################ # # xapp_xedit # ################################################################################ XAPP_XEDIT_VERSION = 1.2.2 XAPP_XEDIT_SOURCE = xedit-$(XAPP_XEDIT_VERSION).tar.bz2 XAPP_XEDIT_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XEDIT_LICENSE = MIT XAPP_XEDIT_LICENSE_FILES = COPYING XAPP_XEDIT_DEPENDENCIES = xlib_libXaw XAPP_XEDIT_CONF_OPTS = \ --disable-selective-werror \ --with-appdefaultdir=/usr/share/X11/app-defaults $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xev/Config.in ================================================ config BR2_PACKAGE_XAPP_XEV bool "xev" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXRANDR help print contents of X events ================================================ FILE: package/x11r7/xapp_xev/xapp_xev.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2020-July/003048.html sha256 d700e08bfe751ed2dbf802baa204b056d0e49348b6eb3c6f9cb035d8ae4885e2 xev-1.2.4.tar.bz2 sha512 383472ddbfad639ba46a69080ecdd11a514a0578fd32c463fae18da02e0265c944589eebf12a858994f5fd601c02a0d51517e9b3ff61c6afe740d374f02781ca xev-1.2.4.tar.bz2 # Locally computed sha256 9b840f2e1900889124cc999f3158da2b6b07bf6d0d77bdbb01ce65d2e702dc83 COPYING ================================================ FILE: package/x11r7/xapp_xev/xapp_xev.mk ================================================ ################################################################################ # # xapp_xev # ################################################################################ XAPP_XEV_VERSION = 1.2.4 XAPP_XEV_SOURCE = xev-$(XAPP_XEV_VERSION).tar.bz2 XAPP_XEV_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XEV_LICENSE = MIT XAPP_XEV_LICENSE_FILES = COPYING XAPP_XEV_DEPENDENCIES = xlib_libX11 xlib_libXrandr $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xeyes/Config.in ================================================ config BR2_PACKAGE_XAPP_XEYES bool "xeyes" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXI select BR2_PACKAGE_XLIB_LIBXMU select BR2_PACKAGE_XLIB_LIBXT help X.Org xeyes application ================================================ FILE: package/x11r7/xapp_xeyes/xapp_xeyes.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-August/003101.html sha256 f8a17e23146bef1ab345a1e303c6749e42aaa7bcf4f25428afad41770721b6db xeyes-1.2.0.tar.bz2 sha512 2d1614614b3ba3d1ebaa0e9801a2e159389b94aaacafb962d326b7e6dc712c1eb2c12a50ceb10b3135cf0eee6ae86bbf84e73098deb08e73792f14a60616b4d8 xeyes-1.2.0.tar.bz2 # Locally computed sha256 d8de1de40e16227d1eb4b19e95117ce3f990f71f71df096a2259b0bc9931e042 COPYING ================================================ FILE: package/x11r7/xapp_xeyes/xapp_xeyes.mk ================================================ ################################################################################ # # xapp_xeyes # ################################################################################ XAPP_XEYES_VERSION = 1.2.0 XAPP_XEYES_SOURCE = xeyes-$(XAPP_XEYES_VERSION).tar.bz2 XAPP_XEYES_SITE = https://xorg.freedesktop.org/archive/individual/app XAPP_XEYES_LICENSE = MIT XAPP_XEYES_LICENSE_FILES = COPYING XAPP_XEYES_DEPENDENCIES = \ xlib_libX11 \ xlib_libXext \ xlib_libXi \ xlib_libXmu \ xlib_libXt ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y) XAPP_XEYES_DEPENDENCIES += xlib_libXrender XAPP_XEYES_CONF_OPTS += --with-xrender else XAPP_XEYES_CONF_OPTS += --without-xrender endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xf86dga/Config.in ================================================ config BR2_PACKAGE_XAPP_XF86DGA bool "xf86dga" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXXF86DGA help test program for the XFree86-DGA extension ================================================ FILE: package/x11r7/xapp_xf86dga/xapp_xf86dga.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2010-October/001515.html sha1 030659e3728f5f7142e1cf727f147aceeabe4b9e xf86dga-1.0.3.tar.bz2 # Locally computed sha256 27d8cbdcde7a0bd062ce49cdf8c672201452a64e3e6823f09b1beffe2c4b8eff COPYING ================================================ FILE: package/x11r7/xapp_xf86dga/xapp_xf86dga.mk ================================================ ################################################################################ # # xapp_xf86dga # ################################################################################ XAPP_XF86DGA_VERSION = 1.0.3 XAPP_XF86DGA_SOURCE = xf86dga-$(XAPP_XF86DGA_VERSION).tar.bz2 XAPP_XF86DGA_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XF86DGA_LICENSE = MIT XAPP_XF86DGA_LICENSE_FILES = COPYING XAPP_XF86DGA_DEPENDENCIES = \ host-pkgconf \ xlib_libX11 \ xlib_libXxf86dga $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xfd/Config.in ================================================ config BR2_PACKAGE_XAPP_XFD bool "xfd" select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXFT help X.Org xfd application ================================================ FILE: package/x11r7/xapp_xfd/xapp_xfd.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002968.html md5 f9c9f2b101a96d4b50c2a4ab9b5ab5b1 xfd-1.1.3.tar.bz2 sha1 ca6dbe2027b205992a52c6bb717a43508f12a8c4 xfd-1.1.3.tar.bz2 sha256 192f938ba5830e84cc807d8ead2ad9655b43eaed6500c830f3e083aad10ed958 xfd-1.1.3.tar.bz2 sha512 68e2d4ce5e24215353b6f3231191d69639c4dd90a703e03ccf152bbfe4012da071c387ba289f918fb0336a3be9ee49dc05cbec7273fa85f5e476ead7e10795f0 xfd-1.1.3.tar.bz2 # Locally computed sha256 57ae10f24fc110dafb3b8d7735cf26b1905ff74e716745b2520e4ccd7751095c COPYING ================================================ FILE: package/x11r7/xapp_xfd/xapp_xfd.mk ================================================ ################################################################################ # # xapp_xfd # ################################################################################ XAPP_XFD_VERSION = 1.1.3 XAPP_XFD_SOURCE = xfd-$(XAPP_XFD_VERSION).tar.bz2 XAPP_XFD_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XFD_LICENSE = MIT XAPP_XFD_LICENSE_FILES = COPYING XAPP_XFD_DEPENDENCIES = \ freetype \ fontconfig \ xlib_libXaw \ xlib_libXft \ $(TARGET_NLS_DEPENDENCIES) XAPP_XFD_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults XAPP_XFD_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) ifeq ($(BR2_PACKAGE_XLIB_LIBXKBFILE),y) XAPP_XFD_CONF_OPTS += --with-xkb XAPP_XFD_DEPENDENCIES += xlib_libxkbfile else XAPP_XFD_CONF_OPTS += --without-xkb endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xfindproxy/Config.in ================================================ config BR2_PACKAGE_XAPP_XFINDPROXY bool "xfindproxy" select BR2_PACKAGE_XLIB_LIBICE select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_XORGPROTO help xfindproxy utilizes the Proxy Management Protocol to communicate with a proxy manager to locate available X11 proxy services. ================================================ FILE: package/x11r7/xapp_xfindproxy/xapp_xfindproxy.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-April/002573.html sha256 5626bda27c7faa5cbe289a17f8552538fff08a96d542b85efdda1804ccf8a01f xfindproxy-1.0.4.tar.bz2 # Locally computed sha256 373984cd13212f3e2fbbcdf88694fd1f5a3658ed9184a6ac44f686fc2e8620f2 COPYING ================================================ FILE: package/x11r7/xapp_xfindproxy/xapp_xfindproxy.mk ================================================ ################################################################################ # # xapp_xfindproxy # ################################################################################ XAPP_XFINDPROXY_VERSION = 1.0.4 XAPP_XFINDPROXY_SOURCE = xfindproxy-$(XAPP_XFINDPROXY_VERSION).tar.bz2 XAPP_XFINDPROXY_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XFINDPROXY_LICENSE = MIT XAPP_XFINDPROXY_LICENSE_FILES = COPYING XAPP_XFINDPROXY_DEPENDENCIES = \ xlib_libICE \ xlib_libXt \ xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xfontsel/Config.in ================================================ config BR2_PACKAGE_XAPP_XFONTSEL bool "xfontsel" select BR2_PACKAGE_XLIB_LIBXAW help point and click selection of X11 font names ================================================ FILE: package/x11r7/xapp_xfontsel/xapp_xfontsel.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002861.html md5 13150ff98846bf6d9a14bee00697fa47 xfontsel-1.0.6.tar.bz2 sha1 3fd8d78cc270030b41298170c3e5222065dd1cfd xfontsel-1.0.6.tar.bz2 sha256 25aa0b7c4262f5e99c07c2b96e00e4eb25b7e53f94fa803942af9d0e8da3001c xfontsel-1.0.6.tar.bz2 sha512 2f6bc51549a302404cdaf9a5a825add383953fcbb2a0c7076691cefd4dd7e4a3c772c047be74101c8486f75d03ce0bd3e65ede14e91732cf2a932810441c9099 xfontsel-1.0.6.tar.bz2 # Locally computed sha256 a27097bcc5cdf4fa5d761dd4e5cea1f41911c51b0a7d9da6e3a48f69d9fd0c09 COPYING ================================================ FILE: package/x11r7/xapp_xfontsel/xapp_xfontsel.mk ================================================ ################################################################################ # # xapp_xfontsel # ################################################################################ XAPP_XFONTSEL_VERSION = 1.0.6 XAPP_XFONTSEL_SOURCE = xfontsel-$(XAPP_XFONTSEL_VERSION).tar.bz2 XAPP_XFONTSEL_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XFONTSEL_LICENSE = MIT XAPP_XFONTSEL_LICENSE_FILES = COPYING XAPP_XFONTSEL_DEPENDENCIES = xlib_libXaw $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xfs/Config.in ================================================ config BR2_PACKAGE_XAPP_XFS bool "xfs" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBFS select BR2_PACKAGE_XLIB_LIBXFONT2 select BR2_PACKAGE_XORGPROTO help X font server ================================================ FILE: package/x11r7/xapp_xfs/xapp_xfs.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2017-November/002826.html md5 b4d2e644bfb35cae8858d2411501b07e xfs-1.2.0.tar.bz2 sha1 00848fcc2915ed8b00e75ac311c4727327324f57 xfs-1.2.0.tar.bz2 sha256 db2212115783498f8eeaaee1349461d6c4e9d2005e142bacd3a984fe57269860 xfs-1.2.0.tar.bz2 sha512 557b08aa07919239ce345d60b288b886640200bb1a59649fc890c3ccaa8559cc6745189614e696ab1b390ec024b393be5493787b7b0d2b3545b342d743c2e0ef xfs-1.2.0.tar.bz2 # Locally computed sha256 0314ea37f40eff3c9ffe44b3924b2a768422f006a754e8286bfd1c73203d225e COPYING ================================================ FILE: package/x11r7/xapp_xfs/xapp_xfs.mk ================================================ ################################################################################ # # xapp_xfs # ################################################################################ XAPP_XFS_VERSION = 1.2.0 XAPP_XFS_SOURCE = xfs-$(XAPP_XFS_VERSION).tar.bz2 XAPP_XFS_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XFS_LICENSE = MIT XAPP_XFS_LICENSE_FILES = COPYING XAPP_XFS_DEPENDENCIES = xlib_libFS xlib_libXfont2 xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xfsinfo/Config.in ================================================ config BR2_PACKAGE_XAPP_XFSINFO bool "xfsinfo" select BR2_PACKAGE_XLIB_LIBFS select BR2_PACKAGE_XLIB_LIBX11 help X font server information utility ================================================ FILE: package/x11r7/xapp_xfsinfo/xapp_xfsinfo.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-February/002949.html md5 0060d6151427d9e570e54fc52a88e7d7 xfsinfo-1.0.6.tar.bz2 sha1 cbfe7470179f1ab5eecf992226dc1b28902c6b4c xfsinfo-1.0.6.tar.bz2 sha256 8a3e8b9b9ae6ed571989d04e1846d39b9043e28f7623b500ebe1d47762c9b1d6 xfsinfo-1.0.6.tar.bz2 sha512 901fc3817d7c95f2ba75ed0c51de91abd8efa67bbb93ad6b7d66e56a2f721af9db364e92f9ef2e719835fd48e934a5ea7402e5565c0ccd9b6b82633e869dc57b xfsinfo-1.0.6.tar.bz2 # Locally computed sha256 bae01fa08f30f21f9cfb75e8339d081b34e5e03d12677177f85a55b0ca41d0db COPYING ================================================ FILE: package/x11r7/xapp_xfsinfo/xapp_xfsinfo.mk ================================================ ################################################################################ # # xapp_xfsinfo # ################################################################################ XAPP_XFSINFO_VERSION = 1.0.6 XAPP_XFSINFO_SOURCE = xfsinfo-$(XAPP_XFSINFO_VERSION).tar.bz2 XAPP_XFSINFO_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XFSINFO_LICENSE = MIT XAPP_XFSINFO_LICENSE_FILES = COPYING XAPP_XFSINFO_DEPENDENCIES = xlib_libFS xlib_libX11 $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xgamma/Config.in ================================================ config BR2_PACKAGE_XAPP_XGAMMA bool "xgamma" select BR2_PACKAGE_XLIB_LIBXXF86VM help Alter a monitor's gamma correction through the X server ================================================ FILE: package/x11r7/xapp_xgamma/xapp_xgamma.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-April/002574.html sha256 0ef1c35b5c18b1b22317f455c8df13c0a471a8efad63c89c98ae3ce8c2b222d3 xgamma-1.0.6.tar.bz2 # Locally computed sha256 78d354d348feaaab8d67a220e84137ec24fece04af4dface2e67132c72e216a2 COPYING ================================================ FILE: package/x11r7/xapp_xgamma/xapp_xgamma.mk ================================================ ################################################################################ # # xapp_xgamma # ################################################################################ XAPP_XGAMMA_VERSION = 1.0.6 XAPP_XGAMMA_SOURCE = xgamma-$(XAPP_XGAMMA_VERSION).tar.bz2 XAPP_XGAMMA_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XGAMMA_LICENSE = MIT XAPP_XGAMMA_LICENSE_FILES = COPYING XAPP_XGAMMA_DEPENDENCIES = xlib_libXxf86vm $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xgc/Config.in ================================================ config BR2_PACKAGE_XAPP_XGC bool "xgc" select BR2_PACKAGE_XLIB_LIBXAW help X graphics demo ================================================ FILE: package/x11r7/xapp_xgc/xapp_xgc.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-April/002575.html sha256 14828d9bda358ad57efc0206bc416ee33ba542091edb186485cca5389adc2f5e xgc-1.0.5.tar.bz2 # Locally computed sha256 13ebeb3e59e406064d46e94a707ed5ec5d8d2bf840971265dd46db0850d22d02 COPYING ================================================ FILE: package/x11r7/xapp_xgc/xapp_xgc.mk ================================================ ################################################################################ # # xapp_xgc # ################################################################################ XAPP_XGC_VERSION = 1.0.5 XAPP_XGC_SOURCE = xgc-$(XAPP_XGC_VERSION).tar.bz2 XAPP_XGC_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XGC_LICENSE = MIT XAPP_XGC_LICENSE_FILES = COPYING XAPP_XGC_DEPENDENCIES = xlib_libXaw $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xhost/Config.in ================================================ config BR2_PACKAGE_XAPP_XHOST bool "xhost" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXMU help Controls host and/or user access to a running X server. ================================================ FILE: package/x11r7/xapp_xhost/xapp_xhost.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-February/002950.html md5 a48c72954ae6665e0616f6653636da8c xhost-1.0.8.tar.bz2 sha1 971670858a464d4f8eeb6f4e182f9fcd94149790 xhost-1.0.8.tar.bz2 sha256 a2dc3c579e13674947395ef8ccc1b3763f89012a216c2cc6277096489aadc396 xhost-1.0.8.tar.bz2 sha512 55581f9bc45a70a73b13fe718ca83c4cb0a6116d26addc0f07659ebeb5bf7d2379e84cab5a1702ae77a298a66f42ae03f41ddc7d5acd61c6f18448e58ad7cb6b xhost-1.0.8.tar.bz2 # Locally computed sha256 7e69bed6fcfff05ecf454d7e4b29cd265172385833f1978f04b638f92f2cfecf COPYING ================================================ FILE: package/x11r7/xapp_xhost/xapp_xhost.mk ================================================ ################################################################################ # # xapp_xhost # ################################################################################ XAPP_XHOST_VERSION = 1.0.8 XAPP_XHOST_SOURCE = xhost-$(XAPP_XHOST_VERSION).tar.bz2 XAPP_XHOST_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XHOST_LICENSE = MIT XAPP_XHOST_LICENSE_FILES = COPYING XAPP_XHOST_DEPENDENCIES = xlib_libX11 xlib_libXmu $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xinit/Config.in ================================================ config BR2_PACKAGE_XAPP_XINIT bool "xinit" depends on BR2_USE_MMU # fork() # Runtime dependency: can't start an X server unless there is one depends on BR2_PACKAGE_XSERVER_XORG_SERVER # Runtime dependency; mcookie is also in util-linux select BR2_PACKAGE_MCOOKIE if !BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_XAPP_XAUTH select BR2_PACKAGE_XLIB_LIBX11 help X Window System initializer ================================================ FILE: package/x11r7/xapp_xinit/xapp_xinit.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002962.html md5 6d506ab2efc17a08e87778654e099d37 xinit-1.4.1.tar.bz2 sha1 d874a2eecf2c30291e327851b151fdab8183260c xinit-1.4.1.tar.bz2 sha256 de9b8f617b68a70f6caf87da01fcf0ebd2b75690cdcba9c921d0ef54fa54abb9 xinit-1.4.1.tar.bz2 sha512 6cbc5d025a891c419f3f4493381b2fca57a67d78df866d2f16a83426f86bad6eca7f240fac12b25cbcc63df0fec41f625407184e044898602d66483715315340 xinit-1.4.1.tar.bz2 # Locally computed sha256 c47001aa217d4ae7787121d80634db4bdba564e49a0ecab8d48b1bdc4edee1c7 COPYING ================================================ FILE: package/x11r7/xapp_xinit/xapp_xinit.mk ================================================ ################################################################################ # # xapp_xinit # ################################################################################ XAPP_XINIT_VERSION = 1.4.1 XAPP_XINIT_SOURCE = xinit-$(XAPP_XINIT_VERSION).tar.bz2 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)) ================================================ FILE: package/x11r7/xapp_xinput/Config.in ================================================ config BR2_PACKAGE_XAPP_XINPUT bool "xinput" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXI select BR2_PACKAGE_XLIB_LIBXRANDR select BR2_PACKAGE_XLIB_LIBXINERAMA help xinput ================================================ FILE: package/x11r7/xapp_xinput/xapp_xinput.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-July/003013.html md5 ac6b7432726008b2f50eba82b0e2dbe4 xinput-1.6.3.tar.bz2 sha1 92ea7dfb3d8465921b0dca85da7d5b01cedae6c8 xinput-1.6.3.tar.bz2 sha256 35a281dd3b9b22ea85e39869bb7670ba78955d5fec17c6ef7165d61e5aeb66ed xinput-1.6.3.tar.bz2 sha512 cb2fef866ac5a71dbca3e23b4ecadaca38e65dc1b30f8bb024bad92486554fafc472706619a1af04c746a4f53ce6aea827d694b9f4f0c7d0d46bb1da81984076 xinput-1.6.3.tar.bz2 # Locally computed sha256 bbd35c7a8e8c5cb073935e84b29b0c53f7131a4ef1ce737dc2be5616941e07e1 COPYING ================================================ FILE: package/x11r7/xapp_xinput/xapp_xinput.mk ================================================ ################################################################################ # # xapp_xinput # ################################################################################ XAPP_XINPUT_VERSION = 1.6.3 XAPP_XINPUT_SOURCE = xinput-$(XAPP_XINPUT_VERSION).tar.bz2 XAPP_XINPUT_SITE = https://xorg.freedesktop.org/archive/individual/app XAPP_XINPUT_LICENSE = MIT XAPP_XINPUT_LICENSE_FILES = COPYING XAPP_XINPUT_DEPENDENCIES = xlib_libX11 xlib_libXi xlib_libXrandr xlib_libXinerama $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xinput-calibrator/Config.in ================================================ config BR2_PACKAGE_XAPP_XINPUT_CALIBRATOR bool "xinput-calibrator" depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXI help A generic touchscreen calibration program for X.Org. http://www.freedesktop.org/wiki/Software/xinput_calibrator comment "xinput-calibrator needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/x11r7/xapp_xinput-calibrator/xapp_xinput-calibrator.hash ================================================ # locally computed sha256 baa4ddca49ec94c27ba4c715bfa26692fec1132103e927213c3169e475d3d971 xinput_calibrator-0.7.5.tar.gz sha256 ba6f260bba7d9640cfedfde3a6ae1790583ab8b9ee7c547233ecc0a214d1a6d3 COPYING ================================================ FILE: package/x11r7/xapp_xinput-calibrator/xapp_xinput-calibrator.mk ================================================ ################################################################################ # # xapp_xinput-calibrator # ################################################################################ XAPP_XINPUT_CALIBRATOR_VERSION = 0.7.5 XAPP_XINPUT_CALIBRATOR_SOURCE = xinput_calibrator-$(XAPP_XINPUT_CALIBRATOR_VERSION).tar.gz XAPP_XINPUT_CALIBRATOR_SITE = http://github.com/downloads/tias/xinput_calibrator XAPP_XINPUT_CALIBRATOR_LICENSE = MIT XAPP_XINPUT_CALIBRATOR_LICENSE_FILES = COPYING XAPP_XINPUT_CALIBRATOR_DEPENDENCIES = xlib_libX11 xlib_libXi $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xkbcomp/Config.in ================================================ config BR2_PACKAGE_XAPP_XKBCOMP bool "xkbcomp" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXKBFILE help compile XKB keyboard description ================================================ FILE: package/x11r7/xapp_xkbcomp/xapp_xkbcomp.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-March/003075.html sha256 6851086c4244b6fd0cc562880d8ff193fb2bbf1e141c73632e10731b31d4b05e xkbcomp-1.4.5.tar.bz2 sha512 2e84f8d6b083e2e818cb95e5d2a184da00e50d71b280e92d1a71465a9a4348f922f4ddccb42cfeee6f76705bbfc8580ef67aedd0d958aaa1ae6bbcc66ccd8154 xkbcomp-1.4.5.tar.bz2 # Locally computed sha256 6b833fdc05906ce57f016dc791db86830d49ee4da2861ce45806c50b3f4dda9e COPYING ================================================ FILE: package/x11r7/xapp_xkbcomp/xapp_xkbcomp.mk ================================================ ################################################################################ # # xapp_xkbcomp # ################################################################################ XAPP_XKBCOMP_VERSION = 1.4.5 XAPP_XKBCOMP_SOURCE = xkbcomp-$(XAPP_XKBCOMP_VERSION).tar.bz2 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)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xapp_xkbevd/Config.in ================================================ config BR2_PACKAGE_XAPP_XKBEVD bool "xkbevd" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBXKBFILE help XKB event daemon ================================================ FILE: package/x11r7/xapp_xkbevd/xapp_xkbevd.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-April/002577.html sha256 2430a2e5302a4cb4a5530c1df8cb3721a149bbf8eb377a2898921a145197f96a xkbevd-1.1.4.tar.bz2 # Locally computed sha256 38c6dbf8f88b1c920561ff3a4d1ffdb85c069c664f5f8b64a9adb477ef347b7c COPYING ================================================ FILE: package/x11r7/xapp_xkbevd/xapp_xkbevd.mk ================================================ ################################################################################ # # xapp_xkbevd # ################################################################################ XAPP_XKBEVD_VERSION = 1.1.4 XAPP_XKBEVD_SOURCE = xkbevd-$(XAPP_XKBEVD_VERSION).tar.bz2 XAPP_XKBEVD_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XKBEVD_LICENSE = MIT XAPP_XKBEVD_LICENSE_FILES = COPYING XAPP_XKBEVD_DEPENDENCIES = xlib_libxkbfile $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xkbprint/Config.in ================================================ config BR2_PACKAGE_XAPP_XKBPRINT bool "xkbprint" select BR2_PACKAGE_XLIB_LIBXKBFILE help print an XKB keyboard description ================================================ FILE: package/x11r7/xapp_xkbprint/xapp_xkbprint.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-November/003030.html md5 9c34da77363dc3d0f616980da87244bf xkbprint-1.0.5.tar.bz2 sha1 e707caffb3c680b3a869a776aa3f80caeac9e9c3 xkbprint-1.0.5.tar.bz2 sha256 5b58fe834f0822f06d63d283fac404098c6d3f6acce61888b81016f1c41023fa xkbprint-1.0.5.tar.bz2 sha512 ac3870352f3a595b5b8a8cb64f39e9bea81b17572c73cfbf72482477a2f576d0ffcdcf735cb3c66b8a88a7fe0f7aece6738cbac87df5641e44fae1ab9b97111f xkbprint-1.0.5.tar.bz2 # Locally computed sha256 79b32f28f7f5063054a564e1fdeee56f82a525b6516303704a1f70e55fe7197e COPYING ================================================ FILE: package/x11r7/xapp_xkbprint/xapp_xkbprint.mk ================================================ ################################################################################ # # xapp_xkbprint # ################################################################################ XAPP_XKBPRINT_VERSION = 1.0.5 XAPP_XKBPRINT_SOURCE = xkbprint-$(XAPP_XKBPRINT_VERSION).tar.bz2 XAPP_XKBPRINT_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XKBPRINT_LICENSE = MIT XAPP_XKBPRINT_LICENSE_FILES = COPYING XAPP_XKBPRINT_DEPENDENCIES = xlib_libxkbfile $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xkbutils/Config.in ================================================ config BR2_PACKAGE_XAPP_XKBUTILS bool "xkbutils" select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXKBFILE help X.Org xkbutils application ================================================ FILE: package/x11r7/xapp_xkbutils/xapp_xkbutils.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2013-February/002162.html sha256 d2a18ab90275e8bca028773c44264d2266dab70853db4321bdbc18da75148130 xkbutils-1.0.4.tar.bz2 # Locally computed sha256 3d67b53c085de6d475705b60855b9277afac5d4c4ec531d0ffd1ef0d00571594 COPYING ================================================ FILE: package/x11r7/xapp_xkbutils/xapp_xkbutils.mk ================================================ ################################################################################ # # xapp_xkbutils # ################################################################################ XAPP_XKBUTILS_VERSION = 1.0.4 XAPP_XKBUTILS_SOURCE = xkbutils-$(XAPP_XKBUTILS_VERSION).tar.bz2 XAPP_XKBUTILS_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XKBUTILS_LICENSE = MIT XAPP_XKBUTILS_LICENSE_FILES = COPYING XAPP_XKBUTILS_DEPENDENCIES = xlib_libXaw xlib_libxkbfile $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xkill/Config.in ================================================ config BR2_PACKAGE_XAPP_XKILL bool "xkill" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXMU help kill a client by its X resource ================================================ FILE: package/x11r7/xapp_xkill/xapp_xkill.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002864.html md5 938177e4472c346cf031c1aefd8934fc xkill-1.0.5.tar.bz2 sha1 c5ee06b33adb252a41e4f737be6bd47651ff582a xkill-1.0.5.tar.bz2 sha256 c5f0bb6a95e1ac7c4def8a657496d5d2f21ccd41eb47ef2c9ccb03fb6d6aff6b xkill-1.0.5.tar.bz2 sha512 4603a1794f114f5cea2c885020c9d073c8421d1e785c99ff6b936ae97139c8dac8020a187b5bbd0fa6d56ed6fab879441b42ba900cc5f2f5a534dafdc86b9249 xkill-1.0.5.tar.bz2 # Locally computed sha256 13306c3890e4c8710bc468dee0eba7f9677cd94c7a67d2d81fa932d4f635b21f COPYING ================================================ FILE: package/x11r7/xapp_xkill/xapp_xkill.mk ================================================ ################################################################################ # # xapp_xkill # ################################################################################ XAPP_XKILL_VERSION = 1.0.5 XAPP_XKILL_SOURCE = xkill-$(XAPP_XKILL_VERSION).tar.bz2 XAPP_XKILL_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XKILL_LICENSE = MIT XAPP_XKILL_LICENSE_FILES = COPYING XAPP_XKILL_DEPENDENCIES = xlib_libX11 xlib_libXmu $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xload/Config.in ================================================ config BR2_PACKAGE_XAPP_XLOAD bool "xload" select BR2_PACKAGE_XLIB_LIBXAW help system load average display for X ================================================ FILE: package/x11r7/xapp_xload/xapp_xload.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002865.html md5 29afafdffe97f809d43a41db9dd63f25 xload-1.1.3.tar.bz2 sha1 fd5053d38551883309863c2a43de2ceffa908a50 xload-1.1.3.tar.bz2 sha256 f34e4803871d771325cfe52bebd98cc5b6040d3f065184ec73de436f9a375907 xload-1.1.3.tar.bz2 sha512 8dbc4f0cee7b30d7381be819152b27653d9b0049266e59bde2e2c972a88c4f2bdea766fc407bbdfef15d0aab30fedc756189a1048170a812853133a5094fe7a5 xload-1.1.3.tar.bz2 # Locally computed sha256 a09b31d26e4d2781eef1e71f39789f86cad6d81153e72064f45875910fa6258f COPYING ================================================ FILE: package/x11r7/xapp_xload/xapp_xload.mk ================================================ ################################################################################ # # xapp_xload # ################################################################################ XAPP_XLOAD_VERSION = 1.1.3 XAPP_XLOAD_SOURCE = xload-$(XAPP_XLOAD_VERSION).tar.bz2 XAPP_XLOAD_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XLOAD_LICENSE = MIT XAPP_XLOAD_LICENSE_FILES = COPYING XAPP_XLOAD_DEPENDENCIES = xlib_libXaw $(TARGET_NLS_DEPENDENCIES) XAPP_XLOAD_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults XAPP_XLOAD_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) # musl doesn't have rwhod.h, but xload can replace it with stubs XAPP_XLOAD_CONF_OPTS += CFLAGS="$(TARGET_CFLAGS) -DRLOADSTUB" endif ifeq ($(BR2_SYSTEM_ENABLE_NLS),) XAPP_XLOAD_CONF_ENV += ac_cv_search_gettext=no endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xlogo/Config.in ================================================ config BR2_PACKAGE_XAPP_XLOGO bool "xlogo" select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXRENDER select BR2_PACKAGE_XLIB_LIBXFT help X Window System logo ================================================ FILE: package/x11r7/xapp_xlogo/xapp_xlogo.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002963.html md5 e9d21de1dc8c8b9f854509a26a985cd7 xlogo-1.0.5.tar.bz2 sha1 f025a0ad30c45cbec1c2f3b1610bff94fb4e9f33 xlogo-1.0.5.tar.bz2 sha256 633d7a3aa5df61e4e643b740e5799664741ab1a0ba40593e54fcd15dc30f378e xlogo-1.0.5.tar.bz2 sha512 0d78e269b0be3c5de71de7f362b896bfd9934ecd9d0361b3302399b1269e029c4a9f35418d792121a1edc34405d753f9d69c996cc3a69ac717f2b0d1f736406b xlogo-1.0.5.tar.bz2 # Locally computed sha256 972b454b6c0da17cec61225ab9dfd4afc69fd8e7e4c629497197c6f79adc6fb0 COPYING ================================================ FILE: package/x11r7/xapp_xlogo/xapp_xlogo.mk ================================================ ################################################################################ # # xapp_xlogo # ################################################################################ XAPP_XLOGO_VERSION = 1.0.5 XAPP_XLOGO_SOURCE = xlogo-$(XAPP_XLOGO_VERSION).tar.bz2 XAPP_XLOGO_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XLOGO_LICENSE = MIT XAPP_XLOGO_LICENSE_FILES = COPYING XAPP_XLOGO_DEPENDENCIES = \ xlib_libXaw xlib_libXrender \ xlib_libXft host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xlsatoms/Config.in ================================================ config BR2_PACKAGE_XAPP_XLSATOMS bool "xlsatoms" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXMU help list interned atoms defined on server ================================================ FILE: package/x11r7/xapp_xlsatoms/xapp_xlsatoms.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-February/002951.html md5 61671fee12535347db24ec3a715032a7 xlsatoms-1.1.3.tar.bz2 sha1 9fdb1e8df6bb08529a812ac90f63d500bf5174cc xlsatoms-1.1.3.tar.bz2 sha256 57868f958c263976727881f3078e55b86b4a109dc578d2b92f5c6d690850a382 xlsatoms-1.1.3.tar.bz2 sha512 c267ccfdc5a83e834bfb5c3b144e22642badcadef4eb146eeec2df6fe6f85e9379500ae4219912c70fa2e535036a1a96cf496381f5d814e79af075e03c975f30 xlsatoms-1.1.3.tar.bz2 # Locally computed sha256 f0a362fc1b8e788845b1c0ad7ba9ade58fdfb73da750c3b9780db5d70b947657 COPYING ================================================ FILE: package/x11r7/xapp_xlsatoms/xapp_xlsatoms.mk ================================================ ################################################################################ # # xapp_xlsatoms # ################################################################################ XAPP_XLSATOMS_VERSION = 1.1.3 XAPP_XLSATOMS_SOURCE = xlsatoms-$(XAPP_XLSATOMS_VERSION).tar.bz2 XAPP_XLSATOMS_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XLSATOMS_LICENSE = MIT XAPP_XLSATOMS_LICENSE_FILES = COPYING XAPP_XLSATOMS_DEPENDENCIES = xlib_libX11 xlib_libXmu $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xlsclients/Config.in ================================================ config BR2_PACKAGE_XAPP_XLSCLIENTS bool "xlsclients" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXMU select BR2_PACKAGE_LIBXCB select BR2_PACKAGE_XCB_UTIL help X.Org xlsclients application ================================================ FILE: package/x11r7/xapp_xlsclients/xapp_xlsclients.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002866.html md5 4fa92377e0ddc137cd226a7a87b6b29a xlsclients-1.1.4.tar.bz2 sha1 175af1c216a1db3de5023ecd6cce186e7693c6e4 xlsclients-1.1.4.tar.bz2 sha256 773f2af49c7ea2c44fba4213bee64325875c1b3c9bc4bbcd8dac9261751809c1 xlsclients-1.1.4.tar.bz2 sha512 42fd848d88d3cf31168a37fed63f9f5b60ddc4f36be2956b354e574c93129d75f29e005d6631784380bcef27860b54c64f419ca18ad77f092f4520dec47b10f4 xlsclients-1.1.4.tar.bz2 # Locally computed sha256 716d6f1d18cb97cdd4a2ef7b101d944a250ca9de57578a490c038b9aaf950648 COPYING ================================================ FILE: package/x11r7/xapp_xlsclients/xapp_xlsclients.mk ================================================ ################################################################################ # # xapp_xlsclients # ################################################################################ XAPP_XLSCLIENTS_VERSION = 1.1.4 XAPP_XLSCLIENTS_SOURCE = xlsclients-$(XAPP_XLSCLIENTS_VERSION).tar.bz2 XAPP_XLSCLIENTS_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XLSCLIENTS_LICENSE = MIT XAPP_XLSCLIENTS_LICENSE_FILES = COPYING XAPP_XLSCLIENTS_DEPENDENCIES = xlib_libX11 xlib_libXmu libxcb xcb-util $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xlsfonts/Config.in ================================================ config BR2_PACKAGE_XAPP_XLSFONTS bool "xlsfonts" select BR2_PACKAGE_XLIB_LIBX11 help X.Org xlsfonts application ================================================ FILE: package/x11r7/xapp_xlsfonts/xapp_xlsfonts.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002867.html md5 5774fd4f518b3f338f2b28f270e04bfc xlsfonts-1.0.6.tar.bz2 sha1 bf95e46e0897dcb9d197ce20d4fa024b8ace5148 xlsfonts-1.0.6.tar.bz2 sha256 89b80b3a030006ab6cef717be286c12f2477894b227158b1e6133274f6ebd368 xlsfonts-1.0.6.tar.bz2 sha512 052a3b1dec23cb20fdfacd4500cb836feb3b888bf568a548ea71deb58a4ba10a1ad5392d658e95272c6d4a1832edf1f19c3de2498b78dca82c43ee52800a30c0 xlsfonts-1.0.6.tar.bz2 # Locally computed sha256 dcdf5fa36a652efbe61a21def1301739b0010334ae3f049f1cff433221a8c7a5 COPYING ================================================ FILE: package/x11r7/xapp_xlsfonts/xapp_xlsfonts.mk ================================================ ################################################################################ # # xapp_xlsfonts # ################################################################################ XAPP_XLSFONTS_VERSION = 1.0.6 XAPP_XLSFONTS_SOURCE = xlsfonts-$(XAPP_XLSFONTS_VERSION).tar.bz2 XAPP_XLSFONTS_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XLSFONTS_LICENSE = MIT XAPP_XLSFONTS_LICENSE_FILES = COPYING XAPP_XLSFONTS_DEPENDENCIES = xlib_libX11 $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xmag/Config.in ================================================ config BR2_PACKAGE_XAPP_XMAG bool "xmag" select BR2_PACKAGE_XLIB_LIBXAW help X.Org xmag application ================================================ FILE: package/x11r7/xapp_xmag/xapp_xmag.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-April/002581.html sha256 87a2bc23b251e2d8f8370d3283a4d6c8dac98a30cb5749a04336cdb55c14e161 xmag-1.0.6.tar.bz2 # Locally computed sha256 ef8744e617719339c4934579f8558ee4a5aec4396bebd6af02562b63a7c16d27 COPYING ================================================ FILE: package/x11r7/xapp_xmag/xapp_xmag.mk ================================================ ################################################################################ # # xapp_xmag # ################################################################################ XAPP_XMAG_VERSION = 1.0.6 XAPP_XMAG_SOURCE = xmag-$(XAPP_XMAG_VERSION).tar.bz2 XAPP_XMAG_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XMAG_LICENSE = MIT XAPP_XMAG_LICENSE_FILES = COPYING XAPP_XMAG_DEPENDENCIES = xlib_libXaw XAPP_XMAG_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xman/Config.in ================================================ config BR2_PACKAGE_XAPP_XMAN bool "xman" select BR2_PACKAGE_XLIB_LIBXAW help Manual page display program for the X Window System ================================================ FILE: package/x11r7/xapp_xman/xapp_xman.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-July/003011.html md5 629436867b202098967636b17c8d303c xman-1.1.5.tar.bz2 sha1 ec76dbd010f68974e05dfe8bc4b91731a3b7285b xman-1.1.5.tar.bz2 sha256 4e3c2c7497e9734a6d3c8e1b6a364612892bb31e9f33076c9fdae7177ab60978 xman-1.1.5.tar.bz2 sha512 f6b2be424a79f298bf1a81edce4172572195c9efc9454e5b7b7046f344ed08154c77ccaa763ccdf3f1a30b64aa4802783bf813ee637437ccb1fba434fc5d4400 xman-1.1.5.tar.bz2 # Locally computed sha256 4c3d6d6fc5661c64285931a0871728f3745d962d877477235dc66e4043db3d36 COPYING ================================================ FILE: package/x11r7/xapp_xman/xapp_xman.mk ================================================ ################################################################################ # # xapp_xman # ################################################################################ XAPP_XMAN_VERSION = 1.1.5 XAPP_XMAN_SOURCE = xman-$(XAPP_XMAN_VERSION).tar.bz2 XAPP_XMAN_SITE = https://xorg.freedesktop.org/archive/individual/app XAPP_XMAN_LICENSE = MIT XAPP_XMAN_LICENSE_FILES = COPYING XAPP_XMAN_DEPENDENCIES = xlib_libXaw XAPP_XMAN_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults XAPP_XMAN_CONF_ENV = \ ac_cv_file__etc_man_conf=no \ ac_cv_file__etc_man_config=no \ ac_cv_file__etc_manpath_config=no \ ac_cv_file__usr_share_misc_man_conf=no $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xmessage/Config.in ================================================ config BR2_PACKAGE_XAPP_XMESSAGE bool "xmessage" select BR2_PACKAGE_XLIB_LIBXAW help display a message or query in a window (X-based /bin/echo) ================================================ FILE: package/x11r7/xapp_xmessage/xapp_xmessage.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002868.html md5 e50ffae17eeb3943079620cb78f5ce0b xmessage-1.0.5.tar.bz2 sha1 d3eca72c7173d0d9547c676a16bcec51ca1213a2 xmessage-1.0.5.tar.bz2 sha256 373dfb81e7a6f06d3d22485a12fcde6e255d58c6dee1bbaeb00c7d0caa9b2029 xmessage-1.0.5.tar.bz2 sha512 a8423c3986b1576fa67800c315a605a527bb9a8f594ac269a736ae7b91eed0d4d83deb89148197dc3cd3f0e51894146958ce2979f78e97dcdb99c5326e34dabe xmessage-1.0.5.tar.bz2 # Locally computed sha256 dfd5427188bd6d6647ad1a9a0644428403c6239f6aa7f9d1a17629d8cc0a4ecd COPYING ================================================ FILE: package/x11r7/xapp_xmessage/xapp_xmessage.mk ================================================ ################################################################################ # # xapp_xmessage # ################################################################################ XAPP_XMESSAGE_VERSION = 1.0.5 XAPP_XMESSAGE_SOURCE = xmessage-$(XAPP_XMESSAGE_VERSION).tar.bz2 XAPP_XMESSAGE_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XMESSAGE_LICENSE = MIT XAPP_XMESSAGE_LICENSE_FILES = COPYING XAPP_XMESSAGE_DEPENDENCIES = xlib_libXaw XAPP_XMESSAGE_CONF_OPTS = --with-appdefaultdir=/usr/share/X11/app-defaults $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xmh/Config.in ================================================ config BR2_PACKAGE_XAPP_XMH bool "xmh" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XDATA_XBITMAPS help send and read mail with an X interface to MH ================================================ FILE: package/x11r7/xapp_xmh/xapp_xmh.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-April/002582.html sha256 b92f4f912a5fb6346d52cc2b639aea087b347f3b2e4e1a4fc7a165b1345f5689 xmh-1.0.3.tar.bz2 # Locally computed sha256 27d8cbdcde7a0bd062ce49cdf8c672201452a64e3e6823f09b1beffe2c4b8eff COPYING ================================================ FILE: package/x11r7/xapp_xmh/xapp_xmh.mk ================================================ ################################################################################ # # xapp_xmh # ################################################################################ XAPP_XMH_VERSION = 1.0.3 XAPP_XMH_SOURCE = xmh-$(XAPP_XMH_VERSION).tar.bz2 XAPP_XMH_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XMH_LICENSE = MIT XAPP_XMH_LICENSE_FILES = COPYING XAPP_XMH_DEPENDENCIES = xlib_libXaw xdata_xbitmaps $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xmodmap/Config.in ================================================ config BR2_PACKAGE_XAPP_XMODMAP bool "xmodmap" select BR2_PACKAGE_XLIB_LIBX11 help utility for modifying keymaps and pointer button mappings in X ================================================ FILE: package/x11r7/xapp_xmodmap/xapp_xmodmap.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-February/002952.html md5 51f1d30a525e9903280ffeea2744b1f6 xmodmap-1.0.10.tar.bz2 sha1 69e041f8a8c501bd1feb68805a0880633a685bc8 xmodmap-1.0.10.tar.bz2 sha256 473f0941d7439d501bb895ff358832b936ec34c749b9704c37a15e11c318487c xmodmap-1.0.10.tar.bz2 sha512 324c7dcef843186088f16b3bc47485eb3c9b4331e56ce43b692deb4bb3d4f4f27512480e91a379cceac8383df920dc5e37cd825246b50b6343291cec48134c04 xmodmap-1.0.10.tar.bz2 # Locally computed sha256 c149563cf2cb0ecfb1148b6eb8f604c62bed43452a0d0fbafb97286a97840f5c COPYING ================================================ FILE: package/x11r7/xapp_xmodmap/xapp_xmodmap.mk ================================================ ################################################################################ # # xapp_xmodmap # ################################################################################ XAPP_XMODMAP_VERSION = 1.0.10 XAPP_XMODMAP_SOURCE = xmodmap-$(XAPP_XMODMAP_VERSION).tar.bz2 XAPP_XMODMAP_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XMODMAP_LICENSE = MIT XAPP_XMODMAP_LICENSE_FILES = COPYING XAPP_XMODMAP_DEPENDENCIES = xlib_libX11 $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xmore/Config.in ================================================ config BR2_PACKAGE_XAPP_XMORE bool "xmore" select BR2_PACKAGE_XLIB_LIBXAW help plain text display program for the X Window System ================================================ FILE: package/x11r7/xapp_xmore/xapp_xmore.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002964.html md5 8e1279352192e4142740c21db58f9be9 xmore-1.0.3.tar.bz2 sha1 b57b92afd783d28c4c505e0c95556939f24c3ec9 xmore-1.0.3.tar.bz2 sha256 644a1e0d5182d7708d413722d0579a587dc56b9a8cb60640df076d302e09251b xmore-1.0.3.tar.bz2 sha512 e3e44831cd87a54bb585f80ef0d87f69dc35f6c834a73241aad9f6e2b0999b53c51a0a3f915a94ae4d6dc9bdfb9f60b6576f0bdcec441443abd98efa6c51b1d3 xmore-1.0.3.tar.bz2 # Locally computed sha256 27d8cbdcde7a0bd062ce49cdf8c672201452a64e3e6823f09b1beffe2c4b8eff COPYING ================================================ FILE: package/x11r7/xapp_xmore/xapp_xmore.mk ================================================ ################################################################################ # # xapp_xmore # ################################################################################ XAPP_XMORE_VERSION = 1.0.3 XAPP_XMORE_SOURCE = xmore-$(XAPP_XMORE_VERSION).tar.bz2 XAPP_XMORE_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XMORE_LICENSE = MIT XAPP_XMORE_LICENSE_FILES = COPYING XAPP_XMORE_DEPENDENCIES = xlib_libXaw $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xpr/Config.in ================================================ config BR2_PACKAGE_XAPP_XPR bool "xpr" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXMU help X.Org xpr application ================================================ FILE: package/x11r7/xapp_xpr/xapp_xpr.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002869.html md5 eaac255076ea351fd08d76025788d9f9 xpr-1.0.5.tar.bz2 sha1 0632c7d8632ac9d23f285811aaea805a2956e155 xpr-1.0.5.tar.bz2 sha256 b936e0f1f8d63f5ad097a0bbdce2e67c34f5d49b7263f32a832ff62d394d1e1f xpr-1.0.5.tar.bz2 sha512 d5dfb936ec4ad0067d02654dec8e862fe337ff6a2c2f974b2b3a612a829c2e728a0d51e7aba00ed2a94dc96dc50cc69f2c59f522e0635013f5f4f5bb3f4ab967 xpr-1.0.5.tar.bz2 # Locally computed sha256 5e8ff9b5d3fc86b5d0bc5957c9ee0aa1a6d0fb9a6b116aae70762b628a0d5069 COPYING ================================================ FILE: package/x11r7/xapp_xpr/xapp_xpr.mk ================================================ ################################################################################ # # xapp_xpr # ################################################################################ XAPP_XPR_VERSION = 1.0.5 XAPP_XPR_SOURCE = xpr-$(XAPP_XPR_VERSION).tar.bz2 XAPP_XPR_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XPR_LICENSE = MIT XAPP_XPR_LICENSE_FILES = COPYING XAPP_XPR_DEPENDENCIES = xlib_libX11 xlib_libXmu $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xprop/Config.in ================================================ config BR2_PACKAGE_XAPP_XPROP bool "xprop" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXMU help property displayer for X ================================================ FILE: package/x11r7/xapp_xprop/xapp_xprop.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2020-November/003064.html sha256 9b92ed0316bf2486121d8bac88bd1878f16b43bd335f18009b1f941f1eca93a1 xprop-1.2.5.tar.bz2 sha512 93cfa621fa76ca6e8e780a252c508380b6dc9db39b67bfca16bb9800f0d39110f5d18189409a8577ef79e98bf5eece17f5e23f2218ca72ae8bb04ee7b429d559 xprop-1.2.5.tar.bz2 # Locally computed sha256 f19ff982936cca133b9593a6561c3817512207e0b4c951d0e4eb5956d30d4415 COPYING ================================================ FILE: package/x11r7/xapp_xprop/xapp_xprop.mk ================================================ ################################################################################ # # xapp_xprop # ################################################################################ XAPP_XPROP_VERSION = 1.2.5 XAPP_XPROP_SOURCE = xprop-$(XAPP_XPROP_VERSION).tar.bz2 XAPP_XPROP_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XPROP_LICENSE = MIT XAPP_XPROP_LICENSE_FILES = COPYING XAPP_XPROP_DEPENDENCIES = xlib_libX11 xlib_libXmu $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xrandr/Config.in ================================================ config BR2_PACKAGE_XAPP_XRANDR bool "xrandr" select BR2_PACKAGE_XLIB_LIBXRANDR select BR2_PACKAGE_XLIB_LIBX11 help primitive command line interface to RandR extension ================================================ FILE: package/x11r7/xapp_xrandr/xapp_xrandr.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-August/003018.html md5 fe40f7a4fd39dd3a02248d3e0b1972e4 xrandr-1.5.1.tar.xz sha1 9f72957e0d2a26ece509336ea7e1529cc9ea881e xrandr-1.5.1.tar.xz sha256 7bc76daf9d72f8aff885efad04ce06b90488a1a169d118dea8a2b661832e8762 xrandr-1.5.1.tar.xz sha512 3d0d37e974b9dffb996276ee7fd676327fd0956e5f5f572dd142a651a35d3cdfa2f6dd415cf27bf87f306981957aba4cc014c12baebefcabaa5d66b78a114922 xrandr-1.5.1.tar.xz # Locally computed sha256 0dd9a3d62c48dd7b87790029e39fb5e11756d33fded3bc1644e11585c87b2038 COPYING ================================================ FILE: package/x11r7/xapp_xrandr/xapp_xrandr.mk ================================================ ################################################################################ # # xapp_xrandr # ################################################################################ XAPP_XRANDR_VERSION = 1.5.1 XAPP_XRANDR_SOURCE = xrandr-$(XAPP_XRANDR_VERSION).tar.xz XAPP_XRANDR_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XRANDR_LICENSE = MIT XAPP_XRANDR_LICENSE_FILES = COPYING XAPP_XRANDR_DEPENDENCIES = xlib_libXrandr xlib_libX11 XAPP_XRANDR_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xrdb/Config.in ================================================ config BR2_PACKAGE_XAPP_XRDB bool "xrdb" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXMU help X server resource database utility ================================================ FILE: package/x11r7/xapp_xrdb/xapp_xrdb.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-August/003107.html sha256 4f5d031c214ffb88a42ae7528492abde1178f5146351ceb3c05f3b8d5abee8b4 xrdb-1.2.1.tar.bz2 sha512 d88135cdfea8536523dfb986249ee42761d5363c936352f12f55b4d0c849f21236f7d74d39869c5ec5b549019d6ed89d9096cde4b3c2b4816c2778a8e370b5c9 xrdb-1.2.1.tar.bz2 # Locally computed sha256 ca1b3e2f9f37c35876b69a9c1c5a7860fae59b7ba87a1d2dc541b722e29b1ecc COPYING ================================================ FILE: package/x11r7/xapp_xrdb/xapp_xrdb.mk ================================================ ################################################################################ # # xapp_xrdb # ################################################################################ XAPP_XRDB_VERSION = 1.2.1 XAPP_XRDB_SOURCE = xrdb-$(XAPP_XRDB_VERSION).tar.bz2 XAPP_XRDB_SITE = https://xorg.freedesktop.org/archive/individual/app XAPP_XRDB_LICENSE = MIT XAPP_XRDB_LICENSE_FILES = COPYING XAPP_XRDB_DEPENDENCIES = xlib_libX11 xlib_libXmu $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xrefresh/Config.in ================================================ config BR2_PACKAGE_XAPP_XREFRESH bool "xrefresh" select BR2_PACKAGE_XLIB_LIBX11 help refresh all or part of an X screen ================================================ FILE: package/x11r7/xapp_xrefresh/xapp_xrefresh.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002872.html md5 c56fa4adbeed1ee5173f464a4c4a61a6 xrefresh-1.0.6.tar.bz2 sha1 11eb5b3f905631281d2cedd86a0b666bab0d9bdc xrefresh-1.0.6.tar.bz2 sha256 287dfb9bb7e8d780d07e672e3252150850869cb550958ed5f8401f0835cd6353 xrefresh-1.0.6.tar.bz2 sha512 361e97fecfc2706d5eeab69df0d4dd4baa55b6783cfddabf51d8561b7c930d71ce6c217e0512c6564208d69b04f89c69ea8c0bfb2e4f6cc25b062b55e4db3674 xrefresh-1.0.6.tar.bz2 # Locally computed sha256 4f51c9a91cd277697cbea6604bf4cb240c1ed14cdba82550cb9cac8f1286f663 COPYING ================================================ FILE: package/x11r7/xapp_xrefresh/xapp_xrefresh.mk ================================================ ################################################################################ # # xapp_xrefresh # ################################################################################ XAPP_XREFRESH_VERSION = 1.0.6 XAPP_XREFRESH_SOURCE = xrefresh-$(XAPP_XREFRESH_VERSION).tar.bz2 XAPP_XREFRESH_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XREFRESH_LICENSE = MIT XAPP_XREFRESH_LICENSE_FILES = COPYING XAPP_XREFRESH_DEPENDENCIES = xlib_libX11 $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xset/Config.in ================================================ config BR2_PACKAGE_XAPP_XSET bool "xset" select BR2_PACKAGE_XLIB_LIBXMU help X.Org xset application ================================================ FILE: package/x11r7/xapp_xset/xapp_xset.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002873.html md5 70ea7bc7bacf1a124b1692605883f620 xset-1.2.4.tar.bz2 sha1 41a857f30ff5bb0dfbda1549bb703984344ea228 xset-1.2.4.tar.bz2 sha256 e4fd95280df52a88e9b0abc1fee11dcf0f34fc24041b9f45a247e52df941c957 xset-1.2.4.tar.bz2 sha512 f24714c9a82081a09d3054bbad98553de9366992f22eaf3e2bcadbb58fad1d3dad2547fef6fa9898d8a9df064573c29df9d82a5c801fa92248604c95f65dc83d xset-1.2.4.tar.bz2 # Locally computed sha256 6bfc619b6d37dd0e6ca575edcb3a05194136e04d1d9989b8e14e6f7850587382 COPYING ================================================ FILE: package/x11r7/xapp_xset/xapp_xset.mk ================================================ ################################################################################ # # xapp_xset # ################################################################################ XAPP_XSET_VERSION = 1.2.4 XAPP_XSET_SOURCE = xset-$(XAPP_XSET_VERSION).tar.bz2 XAPP_XSET_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XSET_LICENSE = MIT XAPP_XSET_LICENSE_FILES = COPYING XAPP_XSET_DEPENDENCIES = xlib_libXmu $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xsetmode/Config.in ================================================ config BR2_PACKAGE_XAPP_XSETMODE bool "xsetmode" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXI help set the mode for an X Input device ================================================ FILE: package/x11r7/xapp_xsetmode/xapp_xsetmode.hash ================================================ # locally computed sha256 988b47cd922991c6e6adbce15dc386ac75690b61744b526c3af5a4eaa9afa0aa xsetmode-1.0.0.tar.bz2 sha256 8f22998f14924220f0f530660811d24e5371a8d7672287c9d22f1eafb7256863 COPYING ================================================ FILE: package/x11r7/xapp_xsetmode/xapp_xsetmode.mk ================================================ ################################################################################ # # xapp_xsetmode # ################################################################################ XAPP_XSETMODE_VERSION = 1.0.0 XAPP_XSETMODE_SOURCE = xsetmode-$(XAPP_XSETMODE_VERSION).tar.bz2 XAPP_XSETMODE_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XSETMODE_LICENSE = MIT XAPP_XSETMODE_LICENSE_FILES = COPYING XAPP_XSETMODE_DEPENDENCIES = xlib_libX11 xlib_libXi $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xsetpointer/Config.in ================================================ config BR2_PACKAGE_XAPP_XSETPOINTER bool "xsetpointer" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXI select BR2_PACKAGE_XORGPROTO help set an X Input device as the main pointer ================================================ FILE: package/x11r7/xapp_xsetpointer/xapp_xsetpointer.hash ================================================ # From https://lists.freedesktop.org/archives/xorg-announce/2006-November/000150.html md5 9e5bcbeda4aaf02bfa095e41d30baee4 xsetpointer-1.0.1.tar.bz2 sha1 a8b01c6f27625a6f6943f9be17b1e5511f69d710 xsetpointer-1.0.1.tar.bz2 # locally computed sha256 495d88871eb5081e98bbae55f813f73cb3ce4145d6ca3e8f2826800166c04571 xsetpointer-1.0.1.tar.bz2 sha256 8f22998f14924220f0f530660811d24e5371a8d7672287c9d22f1eafb7256863 COPYING ================================================ FILE: package/x11r7/xapp_xsetpointer/xapp_xsetpointer.mk ================================================ ################################################################################ # # xapp_xsetpointer # ################################################################################ XAPP_XSETPOINTER_VERSION = 1.0.1 XAPP_XSETPOINTER_SOURCE = xsetpointer-$(XAPP_XSETPOINTER_VERSION).tar.bz2 XAPP_XSETPOINTER_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XSETPOINTER_LICENSE = MIT XAPP_XSETPOINTER_LICENSE_FILES = COPYING XAPP_XSETPOINTER_DEPENDENCIES = xlib_libX11 xlib_libXi xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xsetroot/Config.in ================================================ config BR2_PACKAGE_XAPP_XSETROOT bool "xsetroot" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXMU select BR2_PACKAGE_XLIB_LIBXCURSOR select BR2_PACKAGE_XDATA_XBITMAPS help X.Org xsetroot application ================================================ FILE: package/x11r7/xapp_xsetroot/xapp_xsetroot.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002874.html md5 5fe769c8777a6e873ed1305e4ce2c353 xsetroot-1.1.2.tar.bz2 sha1 42ab81761823b44974feab86477007c49dbace50 xsetroot-1.1.2.tar.bz2 sha256 10c442ba23591fb5470cea477a0aa5f679371f4f879c8387a1d9d05637ae417c xsetroot-1.1.2.tar.bz2 sha512 0b9df1b72305e5c24f1e1664578aa4411a5ffcdc5d318458117594e641f01c34700205b0d16c08abf4a8106d36128ccdbe1ea1f1035fce9018d6b52801a8b72b xsetroot-1.1.2.tar.bz2 # Locally computed sha256 48e9c9572e0dc1c14b93b753542f780e7751dd7f035816374d8a8be0211a4520 COPYING ================================================ FILE: package/x11r7/xapp_xsetroot/xapp_xsetroot.mk ================================================ ################################################################################ # # xapp_xsetroot # ################################################################################ XAPP_XSETROOT_VERSION = 1.1.2 XAPP_XSETROOT_SOURCE = xsetroot-$(XAPP_XSETROOT_VERSION).tar.bz2 XAPP_XSETROOT_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XSETROOT_LICENSE = MIT XAPP_XSETROOT_LICENSE_FILES = COPYING XAPP_XSETROOT_DEPENDENCIES = xlib_libX11 xlib_libXmu xlib_libXcursor xdata_xbitmaps $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xsm/Config.in ================================================ config BR2_PACKAGE_XAPP_XSM bool "xsm" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBXAW help X Session Manager ================================================ FILE: package/x11r7/xapp_xsm/xapp_xsm.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002875.html md5 bd32c14f09d58f46084b6a8f20e6e8f1 xsm-1.0.4.tar.bz2 sha1 dd41234e276fe8b2d0a853879568f73b6d98812a xsm-1.0.4.tar.bz2 sha256 9934b6893a4e52cf7435368fc8d425c371b5e32d96e420ead30166eb82d64425 xsm-1.0.4.tar.bz2 sha512 d4e4da7c309a4eae126d2b58a13684f4dbc06b09f76dde9c89c707375df2843614f3d83bc44f9cd02f239200db3397abd86796dca0dbafc69f60482b0af5a176 xsm-1.0.4.tar.bz2 # Locally computed sha256 27d8cbdcde7a0bd062ce49cdf8c672201452a64e3e6823f09b1beffe2c4b8eff COPYING ================================================ FILE: package/x11r7/xapp_xsm/xapp_xsm.mk ================================================ ################################################################################ # # xapp_xsm # ################################################################################ XAPP_XSM_VERSION = 1.0.4 XAPP_XSM_SOURCE = xsm-$(XAPP_XSM_VERSION).tar.bz2 XAPP_XSM_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XSM_LICENSE = MIT XAPP_XSM_LICENSE_FILES = COPYING XAPP_XSM_DEPENDENCIES = xlib_libXaw $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xstdcmap/Config.in ================================================ config BR2_PACKAGE_XAPP_XSTDCMAP bool "xstdcmap" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXMU help X standard colormap utility ================================================ FILE: package/x11r7/xapp_xstdcmap/xapp_xstdcmap.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-February/002954.html md5 da67142c128d18386ff145882e0afc66 xstdcmap-1.0.4.tar.bz2 sha1 a5eff72ba31625e5b11506add800140019a39636 xstdcmap-1.0.4.tar.bz2 sha256 06898b3f1eaad0b205ff3c75bdefa3207868b889d4cb37b32b8267b2bbfe6f8b xstdcmap-1.0.4.tar.bz2 sha512 2adbb0aec1766341e04090efa962241ff6c9e32c612851b7221cec0ee16852107d406a08ec5251070f39df882c13e3c8c9edcd88f278187a9f373e1727643a8f xstdcmap-1.0.4.tar.bz2 # Locally computed sha256 f0a362fc1b8e788845b1c0ad7ba9ade58fdfb73da750c3b9780db5d70b947657 COPYING ================================================ FILE: package/x11r7/xapp_xstdcmap/xapp_xstdcmap.mk ================================================ ################################################################################ # # xapp_xstdcmap # ################################################################################ XAPP_XSTDCMAP_VERSION = 1.0.4 XAPP_XSTDCMAP_SOURCE = xstdcmap-$(XAPP_XSTDCMAP_VERSION).tar.bz2 XAPP_XSTDCMAP_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XSTDCMAP_LICENSE = MIT XAPP_XSTDCMAP_LICENSE_FILES = COPYING XAPP_XSTDCMAP_DEPENDENCIES = xlib_libX11 xlib_libXmu $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xvidtune/Config.in ================================================ config BR2_PACKAGE_XAPP_XVIDTUNE bool "xvidtune" select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXXF86VM help video mode tuner for Xorg ================================================ FILE: package/x11r7/xapp_xvidtune/xapp_xvidtune.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2013-January/002129.html sha256 24e5e103933a04bfb2e1d18562619ed74031ab515e7343eb546bacdbcbeecf01 xvidtune-1.0.3.tar.bz2 # Locally computed sha256 f3da8eaed19e27e4f67e6f076d4ebdb8d649e15a8ad33a415fb65a23de1b6689 COPYING ================================================ FILE: package/x11r7/xapp_xvidtune/xapp_xvidtune.mk ================================================ ################################################################################ # # xapp_xvidtune # ################################################################################ XAPP_XVIDTUNE_VERSION = 1.0.3 XAPP_XVIDTUNE_SOURCE = xvidtune-$(XAPP_XVIDTUNE_VERSION).tar.bz2 XAPP_XVIDTUNE_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XVIDTUNE_LICENSE = MIT XAPP_XVIDTUNE_LICENSE_FILES = COPYING XAPP_XVIDTUNE_DEPENDENCIES = xlib_libXaw xlib_libXxf86vm $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xvinfo/Config.in ================================================ config BR2_PACKAGE_XAPP_XVINFO bool "xvinfo" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXV help Print out X-Video extension adaptor information ================================================ FILE: package/x11r7/xapp_xvinfo/xapp_xvinfo.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-February/002955.html md5 b13afec137b9b331814a9824ab03ec80 xvinfo-1.1.4.tar.bz2 sha1 136a70a72b23c81f4fe8f4c8cb7073316be16b44 xvinfo-1.1.4.tar.bz2 sha256 0353220d6606077ba42363db65f50410759f9815352f77adc799e2adfa76e73f xvinfo-1.1.4.tar.bz2 sha512 85e1f936c5c826f0fdde3670bd77d5cde8641c6e8e7849e42142e91b5aa01d7e0e60d2b064eb6fef4f5666321813ca2dc9f9656756ccbe6dcda37b119ee8a63e xvinfo-1.1.4.tar.bz2 # Locally computed sha256 7725b0484faa1832534814ecb577f5a86acc74f1bcce25f92c55dfc1b693717d COPYING ================================================ FILE: package/x11r7/xapp_xvinfo/xapp_xvinfo.mk ================================================ ################################################################################ # # xapp_xvinfo # ################################################################################ XAPP_XVINFO_VERSION = 1.1.4 XAPP_XVINFO_SOURCE = xvinfo-$(XAPP_XVINFO_VERSION).tar.bz2 XAPP_XVINFO_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XVINFO_LICENSE = MIT XAPP_XVINFO_LICENSE_FILES = COPYING XAPP_XVINFO_DEPENDENCIES = xlib_libX11 xlib_libXv $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xwd/Config.in ================================================ config BR2_PACKAGE_XAPP_XWD bool "xwd" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXKBFILE select BR2_PACKAGE_XLIB_LIBXMU help dump an image of an X window ================================================ FILE: package/x11r7/xapp_xwd/xapp_xwd.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-August/003102.html sha256 fbaa2b34163714fe7be22b60920ea4683f63b355babb1781aec2e452a033031b xwd-1.0.8.tar.bz2 sha512 d2aaf42c60d20c4b09f4947d3702058dbfad4633b2c5c8ea62e8897fc9ced1ab3417ce99255a223286d21a731f543019470737e3074f1bc68033b4eb47bc773e xwd-1.0.8.tar.bz2 # Locally computed sha256 7cfda56afd92a1ecd2f23bd0064e01b5141053390d854785504adfe2c0fbd946 COPYING ================================================ FILE: package/x11r7/xapp_xwd/xapp_xwd.mk ================================================ ################################################################################ # # xapp_xwd # ################################################################################ XAPP_XWD_VERSION = 1.0.8 XAPP_XWD_SOURCE = xwd-$(XAPP_XWD_VERSION).tar.bz2 XAPP_XWD_SITE = https://xorg.freedesktop.org/archive/individual/app XAPP_XWD_LICENSE = MIT XAPP_XWD_LICENSE_FILES = COPYING XAPP_XWD_DEPENDENCIES = xlib_libX11 xlib_libXmu xlib_libxkbfile $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xwininfo/Config.in ================================================ config BR2_PACKAGE_XAPP_XWININFO bool "xwininfo" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXMU help window information utility for X ================================================ FILE: package/x11r7/xapp_xwininfo/xapp_xwininfo.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-July/003012.html md5 26d46f7ef0588d3392da3ad5802be420 xwininfo-1.1.5.tar.bz2 sha1 9f67b1eb07c5824d437bf577cf6198962af1aeb7 xwininfo-1.1.5.tar.bz2 sha256 7a405441dfc476666c744f5fcd1bc8a75abf8b5b1d85db7b88b370982365080e xwininfo-1.1.5.tar.bz2 sha512 a3268bbeeeeafac94e589fdd47554a965910d40df7cc3d9c36c7c24fa4f5dd49615484d5916ccb41efca9cd4cf9d8981a4c60953b921220b3f4f57f9cce0e1a6 xwininfo-1.1.5.tar.bz2 # Locally computed sha256 443d675237c023a47e4886506b72796afbb2633394812027f91d6e8fa433b2af COPYING ================================================ FILE: package/x11r7/xapp_xwininfo/xapp_xwininfo.mk ================================================ ################################################################################ # # xapp_xwininfo # ################################################################################ XAPP_XWININFO_VERSION = 1.1.5 XAPP_XWININFO_SOURCE = xwininfo-$(XAPP_XWININFO_VERSION).tar.bz2 XAPP_XWININFO_SITE = https://xorg.freedesktop.org/archive/individual/app XAPP_XWININFO_LICENSE = MIT XAPP_XWININFO_LICENSE_FILES = COPYING XAPP_XWININFO_DEPENDENCIES = xlib_libX11 xlib_libXmu $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xapp_xwud/Config.in ================================================ config BR2_PACKAGE_XAPP_XWUD bool "xwud" select BR2_PACKAGE_XLIB_LIBX11 help image displayer for X ================================================ FILE: package/x11r7/xapp_xwud/xapp_xwud.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002878.html md5 79972093bb0766fcd0223b2bd6d11932 xwud-1.0.5.tar.bz2 sha1 a85d84a1b81f8e667ea6ac126d447590c93eb079 xwud-1.0.5.tar.bz2 sha256 99997051f8a892313f22edf41dab45864e86e7062ee9012d5dbb6a40fc6b10a9 xwud-1.0.5.tar.bz2 sha512 27a0ce7481978ae6cd94b0d94374af72185e270d68f2496620e148bb00945427c4827138d9efc48745e6382e3da3390ed0cdff7dbd02dcf9706e8ecccae97184 xwud-1.0.5.tar.bz2 # Locally computed sha256 be3db9aa060c462490a8c1ed44a4d059b32bba359f4688b1ecf3f794d363539e COPYING ================================================ FILE: package/x11r7/xapp_xwud/xapp_xwud.mk ================================================ ################################################################################ # # xapp_xwud # ################################################################################ XAPP_XWUD_VERSION = 1.0.5 XAPP_XWUD_SOURCE = xwud-$(XAPP_XWUD_VERSION).tar.bz2 XAPP_XWUD_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XWUD_LICENSE = MIT XAPP_XWUD_LICENSE_FILES = COPYING XAPP_XWUD_DEPENDENCIES = xlib_libX11 $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xcb-proto/Config.in ================================================ config BR2_PACKAGE_XCB_PROTO bool "xcb-proto" help The protocol headers that define XCB. http://xcb.freedesktop.org/ ================================================ FILE: package/x11r7/xcb-proto/xcb-proto.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2020-October/003061.html sha256 f04add9a972ac334ea11d9d7eb4fc7f8883835da3e4859c9afa971efdf57fcc3 xcb-proto-1.14.1.tar.xz sha512 140fbf48483bacc7f6b70fdcf76f9e4ff0e87df9cb3a071cea47d8fe4574407cdefcfbd674099014d297e5fc010748e71d8609fca4cc32e8b25c634f928b727d xcb-proto-1.14.1.tar.xz # Locally computed sha256 c5ffbfeaa501071ceeb97b7de2c0d703fdaa35de01c0fb6cbac1c28453a3e9fd COPYING ================================================ FILE: package/x11r7/xcb-proto/xcb-proto.mk ================================================ ################################################################################ # # xcb-proto # ################################################################################ XCB_PROTO_VERSION = 1.14.1 XCB_PROTO_SOURCE = xcb-proto-$(XCB_PROTO_VERSION).tar.xz XCB_PROTO_SITE = https://xorg.freedesktop.org/archive/individual/proto XCB_PROTO_LICENSE = MIT XCB_PROTO_LICENSE_FILES = COPYING XCB_PROTO_INSTALL_STAGING = YES XCB_PROTO_DEPENDENCIES = host-python3 HOST_XCB_PROTO_DEPENDENCIES = host-python3 # Force detection of Buildroot host-python3 over system python XCB_PROTO_CONF_OPTS += ac_cv_path_PYTHON=$(HOST_DIR)/bin/python3 HOST_XCB_PROTO_CONF_OPTS += ac_cv_path_PYTHON=$(HOST_DIR)/bin/python3 $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xcb-util/Config.in ================================================ config BR2_PACKAGE_XCB_UTIL bool "xcb-util" depends on BR2_PACKAGE_LIBXCB help Libraries which sit on top of libxcb, the core X protocol library, and some of the extension libraries. http://xcb.freedesktop.org/ ================================================ FILE: package/x11r7/xcb-util/xcb-util.hash ================================================ # locally computed sha256 46e49469cb3b594af1d33176cd7565def2be3fa8be4371d62271fabb5eae50e9 xcb-util-0.4.0.tar.bz2 sha256 325b64f0b0284e08bbb7a78ae3e55c1edc2a7cd77f603225ae4b8ffc35423e37 COPYING ================================================ FILE: package/x11r7/xcb-util/xcb-util.mk ================================================ ################################################################################ # # xcb-util # ################################################################################ XCB_UTIL_VERSION = 0.4.0 XCB_UTIL_SOURCE = xcb-util-$(XCB_UTIL_VERSION).tar.bz2 XCB_UTIL_SITE = http://xcb.freedesktop.org/dist XCB_UTIL_LICENSE = MIT XCB_UTIL_LICENSE_FILES = COPYING XCB_UTIL_INSTALL_STAGING = YES XCB_UTIL_DEPENDENCIES = libxcb $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xcb-util-cursor/Config.in ================================================ config BR2_PACKAGE_XCB_UTIL_CURSOR bool "xcb-util-cursor" depends on BR2_PACKAGE_LIBXCB select BR2_PACKAGE_XCB_UTIL select BR2_PACKAGE_XCB_UTIL_IMAGE select BR2_PACKAGE_XCB_UTIL_RENDERUTIL help The XCB util modules provides a number of libraries which sit on top of libxcb, the core X protocol library, and some of the extension libraries. These experimental libraries provide convenience functions and interfaces which make the raw X protocol more usable. Some of the libraries also provide client-side code which is not strictly part of the X protocol but which have traditionally been provided by Xlib. XCB util-cursor module provides the following libraries: - cursor: port of libxcursor http://xcb.freedesktop.org/ ================================================ FILE: package/x11r7/xcb-util-cursor/xcb-util-cursor.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2016-May/002691.html sha1 26562eb6d4151307f7b6a53453d360ecfc0563ac xcb-util-cursor-0.1.3.tar.bz2 # Locally computed sha256 0dde91ae1d443105dc9e13cbaed6674c36683b7095836ad9ddfce26be270aad5 COPYING ================================================ FILE: package/x11r7/xcb-util-cursor/xcb-util-cursor.mk ================================================ ################################################################################ # # xcb-util-cursor # ################################################################################ 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 XCB_UTIL_CURSOR_LICENSE_FILES = COPYING XCB_UTIL_CURSOR_INSTALL_STAGING = YES XCB_UTIL_CURSOR_DEPENDENCIES = xcb-util xcb-util-image xcb-util-renderutil $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xcb-util-image/Config.in ================================================ config BR2_PACKAGE_XCB_UTIL_IMAGE bool "xcb-util-image" select BR2_PACKAGE_XCB_UTIL help The XCB util modules provides a number of libraries which sit on top of libxcb, the core X protocol library, and some of the extension libraries. These experimental libraries provide convenience functions and interfaces which make the raw X protocol more usable. Some of the libraries also provide client-side code which is not strictly part of the X protocol but which have traditionally been provided by Xlib. XCB util-image module provides the following library: - image: Port of Xlib's XImage and XShmImage functions. http://xcb.freedesktop.org/ ================================================ FILE: package/x11r7/xcb-util-image/xcb-util-image.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2014-October/002489.html sha256 2db96a37d78831d643538dd1b595d7d712e04bdccf8896a5e18ce0f398ea2ffc xcb-util-image-0.4.0.tar.bz2 # License file, locally calculated sha256 19672c6153d8c4870abe734fa4dd2197481a311f4788d02ad729be07e116b26b COPYING ================================================ FILE: package/x11r7/xcb-util-image/xcb-util-image.mk ================================================ ################################################################################ # # xcb-util-image # ################################################################################ XCB_UTIL_IMAGE_VERSION = 0.4.0 XCB_UTIL_IMAGE_SITE = http://xcb.freedesktop.org/dist XCB_UTIL_IMAGE_SOURCE = xcb-util-image-$(XCB_UTIL_IMAGE_VERSION).tar.bz2 XCB_UTIL_IMAGE_INSTALL_STAGING = YES XCB_UTIL_IMAGE_LICENSE = MIT XCB_UTIL_IMAGE_LICENSE_FILES = COPYING XCB_UTIL_IMAGE_DEPENDENCIES = xcb-util $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xcb-util-keysyms/Config.in ================================================ config BR2_PACKAGE_XCB_UTIL_KEYSYMS bool "xcb-util-keysyms" select BR2_PACKAGE_LIBXCB help The XCB util modules provides a number of libraries which sit on top of libxcb, the core X protocol library, and some of the extension libraries. These experimental libraries provide convenience functions and interfaces which make the raw X protocol more usable. Some of the libraries also provide client-side code which is not strictly part of the X protocol but which have traditionally been provided by Xlib. XCB util-keysyms module provides the following library: keysyms: Standard X key constants and conversion to/from keycodes. http://xcb.freedesktop.org/ ================================================ FILE: package/x11r7/xcb-util-keysyms/xcb-util-keysyms.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2014-October/002485.html sha256 0ef8490ff1dede52b7de533158547f8b454b241aa3e4dcca369507f66f216dd9 xcb-util-keysyms-0.4.0.tar.bz2 ================================================ FILE: package/x11r7/xcb-util-keysyms/xcb-util-keysyms.mk ================================================ ################################################################################ # # xcb-util-keysyms # ################################################################################ XCB_UTIL_KEYSYMS_VERSION = 0.4.0 XCB_UTIL_KEYSYMS_SOURCE = xcb-util-keysyms-$(XCB_UTIL_KEYSYMS_VERSION).tar.bz2 XCB_UTIL_KEYSYMS_SITE = http://xcb.freedesktop.org/dist # unfortunately, no license file XCB_UTIL_KEYSYMS_LICENSE = MIT XCB_UTIL_KEYSYMS_INSTALL_STAGING = YES XCB_UTIL_KEYSYMS_DEPENDENCIES = host-pkgconf libxcb $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xcb-util-renderutil/Config.in ================================================ config BR2_PACKAGE_XCB_UTIL_RENDERUTIL bool "xcb-util-renderutil" depends on BR2_PACKAGE_LIBXCB # xcb-util select BR2_PACKAGE_XCB_UTIL help The XCB util modules provides a number of libraries which sit on top of libxcb, the core X protocol library, and some of the extension libraries. These experimental libraries provide convenience functions and interfaces which make the raw X protocol more usable. Some of the libraries also provide client-side code which is not strictly part of the X protocol but which have traditionally been provided by Xlib. XCB util-renderutil module provides the following library: - renderutil: Convenience functions for the Render extension. http://xcb.freedesktop.org/ ================================================ FILE: package/x11r7/xcb-util-renderutil/xcb-util-renderutil.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2014-June/002446.html sha256 c6e97e48fb1286d6394dddb1c1732f00227c70bd1bedb7d1acabefdd340bea5b xcb-util-renderutil-0.3.9.tar.bz2 # Locally computed sha256 271169dd66674e9c396697af0b4822d1c59ccd2342b7740864d667a02963068b COPYING ================================================ FILE: package/x11r7/xcb-util-renderutil/xcb-util-renderutil.mk ================================================ ################################################################################ # # xcb-util-renderutil # ################################################################################ XCB_UTIL_RENDERUTIL_VERSION = 0.3.9 XCB_UTIL_RENDERUTIL_SITE = http://xcb.freedesktop.org/dist XCB_UTIL_RENDERUTIL_SOURCE = xcb-util-renderutil-$(XCB_UTIL_RENDERUTIL_VERSION).tar.bz2 XCB_UTIL_RENDERUTIL_LICENSE = MIT XCB_UTIL_RENDERUTIL_LICENSE_FILES = COPYING XCB_UTIL_RENDERUTIL_INSTALL_STAGING = YES XCB_UTIL_RENDERUTIL_DEPENDENCIES = xcb-util $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xcb-util-wm/Config.in ================================================ config BR2_PACKAGE_XCB_UTIL_WM bool "xcb-util-wm" select BR2_PACKAGE_LIBXCB help The XCB util modules provides a number of libraries which sit on top of libxcb, the core X protocol library, and some of the extension libraries. These experimental libraries provide convenience functions and interfaces which make the raw X protocol more usable. Some of the libraries also provide client-side code which is not strictly part of the X protocol but which have traditionally been provided by Xlib. XCB util-wm module provides the following libraries: - ewmh: Both client and window-manager helpers for EWMH. - icccm: Both client and window-manager helpers for ICCCM. http://xcb.freedesktop.org/ ================================================ FILE: package/x11r7/xcb-util-wm/xcb-util-wm.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2014-February/002401.html sha256 28bf8179640eaa89276d2b0f1ce4285103d136be6c98262b6151aaee1d3c2a3f xcb-util-wm-0.4.1.tar.bz2 # License file, locally calculated sha256 12ab3559977a4b22ae3030b90c64a386e6ec51ab0e4eab1ff530f81a2639400a COPYING ================================================ FILE: package/x11r7/xcb-util-wm/xcb-util-wm.mk ================================================ ################################################################################ # # xcb-util-wm # ################################################################################ XCB_UTIL_WM_VERSION = 0.4.1 XCB_UTIL_WM_SITE = http://xcb.freedesktop.org/dist XCB_UTIL_WM_SOURCE = xcb-util-wm-$(XCB_UTIL_WM_VERSION).tar.bz2 XCB_UTIL_WM_INSTALL_STAGING = YES XCB_UTIL_WM_LICENSE = MIT XCB_UTIL_WM_LICENSE_FILES = COPYING XCB_UTIL_WM_DEPENDENCIES = libxcb $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xcursor-transparent-theme/0001-fix-symlink.patch ================================================ Do not symlink to a host directory The installation of xcursor-transparent-theme creates many symbolic links to the 'transp' cursor file, but it does so using an absolute directory, that happens to point to the installation location, which is incorrect when cross-compiling. Also add the -f option so that the package can be reinstalled even if it has already been installed. Signed-off-by: Thomas Petazzoni Index: b/cursors/Makefile.am =================================================================== --- a/cursors/Makefile.am +++ b/cursors/Makefile.am @@ -91,6 +91,6 @@ $(INSTALL_DATA) $(CURSOR_REAL) $(DESTDIR)$(CURSOR_DIR)/ for CURSOR in $(CURSOR_NAMES); do \ echo '-- Installing cursor '$$CURSOR; \ - ln -s $(DESTDIR)$(CURSOR_DIR)/transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \ + ln -sf transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \ done Index: b/cursors/Makefile.in =================================================================== --- a/cursors/Makefile.in +++ b/cursors/Makefile.in @@ -177,7 +177,7 @@ $(INSTALL_DATA) $(CURSOR_REAL) $(DESTDIR)$(CURSOR_DIR)/ for CURSOR in $(CURSOR_NAMES); do \ echo '-- Installing cursor '$$CURSOR; \ - ln -s $(DESTDIR)$(CURSOR_DIR)/transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \ + ln -sf transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \ done # Tell versions [3.59,3.63) of GNU make to not export all variables. ================================================ FILE: package/x11r7/xcursor-transparent-theme/Config.in ================================================ config BR2_PACKAGE_XCURSOR_TRANSPARENT_THEME bool "xcursor-transparent-theme" select BR2_PACKAGE_XLIB_LIBXCURSOR help Completely transparent theme for hiding the X11 cursor. No upstream site. ================================================ FILE: package/x11r7/xcursor-transparent-theme/index.theme ================================================ [Icon Theme] Inherits=xcursor-transparent ================================================ FILE: package/x11r7/xcursor-transparent-theme/xcursor-transparent-theme.hash ================================================ # locally computed sha256 b26adf2d503d01299718390ae39dab4691a67220de09423be0364e9a060bf7e4 xcursor-transparent-theme-0.1.1.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/x11r7/xcursor-transparent-theme/xcursor-transparent-theme.mk ================================================ ################################################################################ # # xcursor-transparent-theme # ################################################################################ XCURSOR_TRANSPARENT_THEME_VERSION = 0.1.1 XCURSOR_TRANSPARENT_THEME_SITE = http://downloads.yoctoproject.org/releases/matchbox/utils XCURSOR_TRANSPARENT_THEME_DEPENDENCIES = xlib_libXcursor host-xapp_xcursorgen XCURSOR_TRANSPARENT_THEME_LICENSE = GPL-2.0 XCURSOR_TRANSPARENT_THEME_LICENSE_FILES = COPYING define XCURSOR_TRANSPARENT_THEME_ICONS_DEFAULT_CONFIG_INSTALL $(INSTALL) -m 0755 -D package/x11r7/xcursor-transparent-theme/index.theme \ $(TARGET_DIR)/usr/share/icons/default/index.theme endef XCURSOR_TRANSPARENT_THEME_POST_INSTALL_TARGET_HOOKS += \ XCURSOR_TRANSPARENT_THEME_ICONS_DEFAULT_CONFIG_INSTALL $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdata_xbitmaps/Config.in ================================================ config BR2_PACKAGE_XDATA_XBITMAPS bool "xbitmaps" help No description available ================================================ FILE: package/x11r7/xdata_xbitmaps/xdata_xbitmaps.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-March/002881.html md5 cedeef095918aca86da79a2934e03daf xbitmaps-1.1.2.tar.bz2 sha1 1cb0e485a66280e9a64b48426140b8a0de9cf169 xbitmaps-1.1.2.tar.bz2 sha256 b9f0c71563125937776c8f1f25174ae9685314cbd130fb4c2efce811981e07ee xbitmaps-1.1.2.tar.bz2 sha512 eed5e2fce9fc6c532984e6ed1262e440591e311ca6c61a7fe7a5c877df84bfc2d7aff388fb9c894fc098785b8e5352f0bd7c918252247a040cf123874847450d xbitmaps-1.1.2.tar.bz2 # Locally computed sha256 e121ec6605558ee021674d33b1ab9306e16b9ea7d30453df42286556247be17a COPYING ================================================ FILE: package/x11r7/xdata_xbitmaps/xdata_xbitmaps.mk ================================================ ################################################################################ # # xdata_xbitmaps # ################################################################################ XDATA_XBITMAPS_VERSION = 1.1.2 XDATA_XBITMAPS_SOURCE = xbitmaps-$(XDATA_XBITMAPS_VERSION).tar.bz2 XDATA_XBITMAPS_SITE = http://xorg.freedesktop.org/releases/individual/data XDATA_XBITMAPS_LICENSE = MIT XDATA_XBITMAPS_LICENSE_FILES = COPYING XDATA_XBITMAPS_INSTALL_STAGING = YES $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdata_xcursor-themes/Config.in ================================================ config BR2_PACKAGE_XDATA_XCURSOR_THEMES bool "xdata_xcursor-themes" select BR2_PACKAGE_XLIB_LIBXCURSOR help No description available ================================================ FILE: package/x11r7/xdata_xcursor-themes/xdata_xcursor-themes.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-February/002945.html md5 aea14eabf40528ec4db18f1cfcf5c458 xcursor-themes-1.0.6.tar.bz2 sha1 b56fd5bf5b1ada0532a85c27db0d296e392168c5 xcursor-themes-1.0.6.tar.bz2 sha256 ee1ec574741293abcf66ac14ce7e74add7ac6be7deb8b38179ef010d22354999 xcursor-themes-1.0.6.tar.bz2 sha512 2ad3586a5571a5ddc0001187362b54b839644916164834213af98e58698044aec4392dd6e1e42f1794fda85c8fedf259b09214a9636bd0e71a1629c710f198d3 xcursor-themes-1.0.6.tar.bz2 # Locally computed sha256 e437aed89c3440a9fe7e19968a3f2eeb97041ef6c9616837a3fd42d0874fc0e6 COPYING ================================================ FILE: package/x11r7/xdata_xcursor-themes/xdata_xcursor-themes.mk ================================================ ################################################################################ # # xdata_xcursor-themes # ################################################################################ XDATA_XCURSOR_THEMES_VERSION = 1.0.6 XDATA_XCURSOR_THEMES_SOURCE = xcursor-themes-$(XDATA_XCURSOR_THEMES_VERSION).tar.bz2 XDATA_XCURSOR_THEMES_SITE = http://xorg.freedesktop.org/releases/individual/data XDATA_XCURSOR_THEMES_LICENSE = MIT XDATA_XCURSOR_THEMES_LICENSE_FILES = COPYING XDATA_XCURSOR_THEMES_INSTALL_STAGING = YES XDATA_XCURSOR_THEMES_DEPENDENCIES = xlib_libXcursor host-xapp_xcursorgen $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-input-evdev/0001-build-get-rid-of-sdkdir.patch ================================================ From 1ad5e1593556f767150c2ca75176453bee4771e6 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 23 Oct 2016 22:00:10 +0200 Subject: [PATCH] build: get rid of sdkdir Use of sdkdir causes problems during cross-compilation, where the full path is then appended to the DESTDIR, leading to host paths being appended in the target: https://bugs.busybox.net/show_bug.cgi?id=8696 Other drivers (e.g. keyboard) got rid of sdkdir. Do the same. Signed-off-by: "Yann E. MORIN" --- Makefile.am | 4 ---- configure.ac | 9 --------- include/Makefile.am | 5 ++++- xorg-evdev.pc.in | 10 ++++++++-- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/Makefile.am b/Makefile.am index 1cc3ea6..1ae042a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -18,10 +18,6 @@ # 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. - -# Provide an sdk location that is writable by the evdev module -DISTCHECK_CONFIGURE_FLAGS = --with-sdkdir='$${includedir}/xorg' - SUBDIRS = src man include MAINTAINERCLEANFILES = ChangeLog INSTALL diff --git a/configure.ac b/configure.ac index e4887a3..4adfa43 100644 --- a/configure.ac +++ b/configure.ac @@ -66,15 +66,6 @@ AC_ARG_WITH(xorg-conf-dir, [xorgconfdir="$prefix/share/X11/xorg.conf.d"]) AC_SUBST(xorgconfdir) -# X Server SDK location is required to install evdev header files -# This location is also relayed in the xorg-evdev.pc file -sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server` - -# Workaround overriding sdkdir to be able to create a tarball when user has no -# write permission in sdkdir. See DISTCHECK_CONFIGURE_FLAGS in Makefile.am -AC_ARG_WITH([sdkdir], [], [sdkdir="$withval"]) -AC_SUBST([sdkdir]) - DRIVER_NAME=evdev AC_SUBST([DRIVER_NAME]) diff --git a/include/Makefile.am b/include/Makefile.am index 0e3fc1b..afc96ed 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1 +1,4 @@ -sdk_HEADERS = evdev-properties.h +# location formerly known as 'sdkdir': +xorgincludedir = $(includedir)/xorg + +xorginclude_HEADERS = evdev-properties.h diff --git a/xorg-evdev.pc.in b/xorg-evdev.pc.in index 20710a6..fcbf511 100644 --- a/xorg-evdev.pc.in +++ b/xorg-evdev.pc.in @@ -1,6 +1,12 @@ -sdkdir=@sdkdir@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ +datarootdir=@datarootdir@ +moduledir=@moduledir@ +sysconfigdir=@sysconfigdir@ Name: xorg-evdev Description: X.Org evdev input driver. Version: @PACKAGE_VERSION@ -Cflags: -I${sdkdir} +Cflags: -I${includedir}/xorg -- 2.7.4 ================================================ FILE: package/x11r7/xdriver_xf86-input-evdev/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV bool "xf86-input-evdev" depends on BR2_PACKAGE_HAS_UDEV # libudev is configure dependency select BR2_PACKAGE_LIBEVDEV select BR2_PACKAGE_MTDEV select BR2_PACKAGE_XORGPROTO help Generic Linux input driver comment "xf86-input-evdev requires udev to be enabled" depends on !BR2_PACKAGE_HAS_UDEV ================================================ FILE: package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-May/002898.html md5 e8bd1edc6751f92e425cae7eba3c61eb xf86-input-evdev-2.10.6.tar.bz2 sha1 660de292d5a40e2b8f385965c6a4e149c981ba59 xf86-input-evdev-2.10.6.tar.bz2 sha256 8726073e81861bc7b2321e76272cbdbd33c7e1a121535a9827977265b9033ec0 xf86-input-evdev-2.10.6.tar.bz2 sha512 560b0a6491d50a46913a5890a35c0367e59f550670993493bd9712d712a9747ddaa6fe5086daabf2fcafa24b0159383787eb273da4a2a60c089bfc0a77ad2ad1 xf86-input-evdev-2.10.6.tar.bz2 # Locally computed sha256 f6b9b4732932434cad03b29cb3151d20edcf7d6e5681f40ee3c47f03dbd92dc9 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk ================================================ ################################################################################ # # xdriver_xf86-input-evdev # ################################################################################ XDRIVER_XF86_INPUT_EVDEV_VERSION = 2.10.6 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 XDRIVER_XF86_INPUT_EVDEV_LICENSE_FILES = COPYING XDRIVER_XF86_INPUT_EVDEV_AUTORECONF = YES XDRIVER_XF86_INPUT_EVDEV_DEPENDENCIES = \ host-pkgconf \ libevdev \ mtdev \ xorgproto \ xserver_xorg-server \ udev $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-input-joystick/0001-build-get-rid-of-sdkdir.patch ================================================ From 2826691dcd01f470d30dc8eb3bbd24a96cd3a93c Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 23 Oct 2016 22:29:29 +0200 Subject: [PATCH] build: get rid of sdkdir Use of sdkdir causes problems during cross-compilation, where the full path is then appended to the DESTDIR, leading to host paths being appended in the target: https://bugs.busybox.net/show_bug.cgi?id=8696 Other drivers (e.g. keyboard) got rid of sdkdir. Do the same. Signed-off-by: "Yann E. MORIN" --- Makefile.am | 1 - configure.ac | 9 --------- include/Makefile.am | 5 ++++- xorg-joystick.pc.in | 2 +- 4 files changed, 5 insertions(+), 12 deletions(-) diff --git a/Makefile.am b/Makefile.am index 13946b8..c1567ae 100644 --- a/Makefile.am +++ b/Makefile.am @@ -18,7 +18,6 @@ # 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. -DISTCHECK_CONFIGURE_FLAGS = --with-sdkdir=\$${includedir}/xorg SUBDIRS = src man config include MAINTAINERCLEANFILES = ChangeLog INSTALL diff --git a/configure.ac b/configure.ac index b5834a5..44b9d27 100644 --- a/configure.ac +++ b/configure.ac @@ -66,15 +66,6 @@ AC_ARG_WITH(xorg-module-dir, inputdir=${moduledir}/input AC_SUBST(inputdir) -# Define a configure option for an alternate X Server SDK Headers -# X Server SDK location is required to install joystick header files -AC_ARG_WITH(sdkdir, - AS_HELP_STRING([--with-sdkdir=], - [Xorg X Server sdk headers (default is autodetected)]), - [sdkdir="$withval"], - [sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`]) -AC_SUBST(sdkdir) - # Define a configure option to enable code debugging AC_ARG_ENABLE(debug, AS_HELP_STRING([--disable-debug], [Disable debugging code (default: enabled)]), diff --git a/include/Makefile.am b/include/Makefile.am index ed618c2..d656568 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -18,4 +18,7 @@ # 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. -sdk_HEADERS = joystick-properties.h +# Location formerly known as 'sdkdir' +xorgincludedir = $(includedir)/xorg + +xorginclude_HEADERS = joystick-properties.h diff --git a/xorg-joystick.pc.in b/xorg-joystick.pc.in index 76bb92f..a5972c7 100644 --- a/xorg-joystick.pc.in +++ b/xorg-joystick.pc.in @@ -4,4 +4,4 @@ includedir=@includedir@ Name: xorg-joystick Description: X.Org joystick input driver. Version: @PACKAGE_VERSION@ -Cflags: -I${includedir} +Cflags: -I${includedir}/xorg -- 2.7.4 ================================================ FILE: package/x11r7/xdriver_xf86-input-joystick/50-joystick.conf ================================================ Section "InputClass" Identifier "joystick catchall" MatchIsJoystick "on" MatchDevicePath "/dev/input/event*" Driver "joystick" EndSection ================================================ FILE: package/x11r7/xdriver_xf86-input-joystick/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_INPUT_JOYSTICK bool "xf86-input-joystick" select BR2_PACKAGE_XORGPROTO help X.Org driver for joystick input devices ================================================ FILE: package/x11r7/xdriver_xf86-input-joystick/xdriver_xf86-input-joystick.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2016-November/002742.html sha256 9e7669ecf0f23b8e5dc39d5397cf28296f692aa4c0e4255f5e02816612c18eab xf86-input-joystick-1.6.3.tar.bz2 # Locally calculated sha256 460cf612147407317a3911ce03a215707d8d6d5f3e604a53fefa6e54974ad07e COPYING ================================================ FILE: package/x11r7/xdriver_xf86-input-joystick/xdriver_xf86-input-joystick.mk ================================================ ################################################################################ # # xdriver_xf86-input-joystick # ################################################################################ XDRIVER_XF86_INPUT_JOYSTICK_VERSION = 1.6.3 XDRIVER_XF86_INPUT_JOYSTICK_SOURCE = xf86-input-joystick-$(XDRIVER_XF86_INPUT_JOYSTICK_VERSION).tar.bz2 XDRIVER_XF86_INPUT_JOYSTICK_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_INPUT_JOYSTICK_LICENSE = MIT XDRIVER_XF86_INPUT_JOYSTICK_LICENSE_FILES = COPYING XDRIVER_XF86_INPUT_JOYSTICK_DEPENDENCIES = xserver_xorg-server xorgproto XDRIVER_XF86_INPUT_JOYSTICK_AUTORECONF = YES 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)) ================================================ FILE: package/x11r7/xdriver_xf86-input-keyboard/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_INPUT_KEYBOARD bool "xf86-input-keyboard" select BR2_PACKAGE_XORGPROTO help Keyboard input driver ================================================ FILE: package/x11r7/xdriver_xf86-input-keyboard/xdriver_xf86-input-keyboard.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2016-November/002739.html sha256 f7c900f21752683402992b288d5a2826de7a6c0c0abac2aadd7e8a409e170388 xf86-input-keyboard-1.9.0.tar.bz2 # Locally calculated sha256 b91b17c53724c79685e3025a38028b7d48c966fdd239e0efe2d98874d3c139a0 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-input-keyboard/xdriver_xf86-input-keyboard.mk ================================================ ################################################################################ # # xdriver_xf86-input-keyboard # ################################################################################ XDRIVER_XF86_INPUT_KEYBOARD_VERSION = 1.9.0 XDRIVER_XF86_INPUT_KEYBOARD_SOURCE = xf86-input-keyboard-$(XDRIVER_XF86_INPUT_KEYBOARD_VERSION).tar.bz2 XDRIVER_XF86_INPUT_KEYBOARD_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_INPUT_KEYBOARD_LICENSE = MIT XDRIVER_XF86_INPUT_KEYBOARD_LICENSE_FILES = COPYING XDRIVER_XF86_INPUT_KEYBOARD_DEPENDENCIES = xserver_xorg-server xorgproto XDRIVER_XF86_INPUT_KEYBOARD_CONF_OPTS = --disable-selective-werror $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-input-libinput/0001-build-get-rid-of-sdkdir.patch ================================================ From 1b2cf6e6c2640e08166af36eee775542a45325af Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 23 Oct 2016 22:36:40 +0200 Subject: [PATCH] build: get rid of sdkdir Use of sdkdir causes problems during cross-compilation, where the full path is then appended to the DESTDIR, leading to host paths being appended in the target: https://bugs.busybox.net/show_bug.cgi?id=8696 Other drivers (e.g. keyboard) got rid of sdkdir. Do the same. Signed-off-by: "Yann E. MORIN" --- Makefile.am | 2 -- configure.ac | 8 -------- include/Makefile.am | 4 +++- xorg-libinput.pc.in | 5 +++-- 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/Makefile.am b/Makefile.am index a447d61..7aa5523 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,8 +19,6 @@ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -DISTCHECK_CONFIGURE_FLAGS = --with-sdkdir='$${includedir}/xorg' - SUBDIRS = src include man test MAINTAINERCLEANFILES = ChangeLog INSTALL diff --git a/configure.ac b/configure.ac index 9894817..fe198cb 100644 --- a/configure.ac +++ b/configure.ac @@ -63,14 +63,6 @@ AC_ARG_WITH(xorg-conf-dir, [xorgconfdir='${prefix}/share/X11/xorg.conf.d']) AC_SUBST(xorgconfdir) -# X Server SDK location is required to install header files -sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server` - -# Workaround overriding sdkdir to be able to create a tarball when user has no -# write permission in sdkdir. See DISTCHECK_CONFIGURE_FLAGS in Makefile.am -AC_ARG_WITH([sdkdir], [], [sdkdir="$withval"]) -AC_SUBST([sdkdir]) - DRIVER_NAME=libinput AC_SUBST([DRIVER_NAME]) diff --git a/include/Makefile.am b/include/Makefile.am index 0d52b9b..271ffac 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1 +1,3 @@ -sdk_HEADERS = libinput-properties.h +# Location formerly known as 'sdkdir' +xorgincludedir = $(includedir)/xorg +xorginclude_HEADERS = libinput-properties.h diff --git a/xorg-libinput.pc.in b/xorg-libinput.pc.in index ff98189..9c0f506 100644 --- a/xorg-libinput.pc.in +++ b/xorg-libinput.pc.in @@ -1,6 +1,7 @@ -sdkdir=@sdkdir@ +prefix=@prefix@ +includedir=@includedir@ Name: xorg-libinput Description: X.Org libinput input driver. Version: @PACKAGE_VERSION@ -Cflags: -I${sdkdir} +Cflags: -I${includedir}/xorg -- 2.7.4 ================================================ FILE: package/x11r7/xdriver_xf86-input-libinput/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_INPUT_LIBINPUT bool "xf86-input-libinput" depends on BR2_PACKAGE_HAS_UDEV # libinput select BR2_PACKAGE_LIBINPUT select BR2_PACKAGE_XORGPROTO help This is an X driver based on libinput. It is a thin wrapper around libinput, so while it does provide all features that libinput supports it does little beyond. comment "xf86-input-libinput needs udev /dev management" depends on !BR2_PACKAGE_HAS_UDEV ================================================ FILE: package/x11r7/xdriver_xf86-input-libinput/xdriver_xf86-input-libinput.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-June/003094.html sha256 e11d2a41419124a6e9b148f1df181bf7819fc7398c8ee9a1b6390b0742c68d16 xf86-input-libinput-1.1.0.tar.bz2 sha512 7def9a4834a9203d1672613b1a4b384a0eb3d664818865b375969bf9ca96c512b752859acc8916de9224f7e488f8d59953308e53b983dfa8031ca01fd707fa2b xf86-input-libinput-1.1.0.tar.bz2 # Locally computed sha256 4114220b281561e80f3422f0e7ae8d3e1fc85131ffc2e3b6265119e66f1adb27 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-input-libinput/xdriver_xf86-input-libinput.mk ================================================ ################################################################################ # # xdriver_xf86-input-libinput # ################################################################################ XDRIVER_XF86_INPUT_LIBINPUT_VERSION = 1.1.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 XDRIVER_XF86_INPUT_LIBINPUT_LICENSE_FILES = COPYING XDRIVER_XF86_INPUT_LIBINPUT_DEPENDENCIES = libinput xserver_xorg-server xorgproto XDRIVER_XF86_INPUT_LIBINPUT_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-input-mouse/0001-build-get-rid-of-sdkdir.patch ================================================ From aef3d9bca4d77db833f71d50b1c84b16c69d7deb Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 23 Oct 2016 22:53:21 +0200 Subject: [PATCH] build: get rid of sdkdir Use of sdkdir causes problems during cross-compilation, where the full path is then appended to the DESTDIR, leading to host paths being appended in the target: https://bugs.busybox.net/show_bug.cgi?id=8696 Other drivers (e.g. keyboard) got rid of sdkdir. Do the same. Signed-off-by: "Yann E. MORIN" --- Makefile.am | 3 --- configure.ac | 10 ---------- include/Makefile.am | 4 +++- xorg-mouse.pc.in | 3 +-- 4 files changed, 4 insertions(+), 16 deletions(-) diff --git a/Makefile.am b/Makefile.am index 7142485..efe66cb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -34,9 +34,6 @@ ChangeLog: dist-hook: ChangeLog INSTALL -# Provide an sdk location that is writable by this module -DISTCHECK_CONFIGURE_FLAGS = --with-sdkdir='$${includedir}/xorg' - if LINT # Check source code with tools like lint & sparse lint: diff --git a/configure.ac b/configure.ac index 15d9047..515681d 100644 --- a/configure.ac +++ b/configure.ac @@ -60,16 +60,6 @@ AC_ARG_WITH(xorg-module-dir, inputdir=${moduledir}/input AC_SUBST(inputdir) -# X Server SDK location is required to install xf86-mouse-properties.h -# This location is also relayed in the xorg-mouse.pc file -sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server` - -# Workaround overriding sdkdir to be able to create a tarball when user has no -# write permission in sdkdir. See DISTCHECK_CONFIGURE_FLAGS in Makefile.am -AC_ARG_WITH([sdkdir], [], [sdkdir="$withval"]) -AC_SUBST([sdkdir]) - - # Work out which OS mouse driver we need to build case $host_os in linux*) diff --git a/include/Makefile.am b/include/Makefile.am index 27ce0fb..2b85e4e 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1 +1,3 @@ -sdk_HEADERS = xf86-mouse-properties.h +# Location formerly known as 'sdkdir' +xorgincludedir = $(includedir)/xorg +xorginclude_HEADERS = xf86-mouse-properties.h diff --git a/xorg-mouse.pc.in b/xorg-mouse.pc.in index 57df596..8355e61 100644 --- a/xorg-mouse.pc.in +++ b/xorg-mouse.pc.in @@ -1,6 +1,7 @@ prefix=@prefix@ -sdkdir=@sdkdir@ +prefix=@prefix@ +includedir=@includedir@ Name: xorg-mouse Description: X.Org mouse input driver for non-evdev OS'es Version: @PACKAGE_VERSION@ -Cflags: -I${sdkdir} +Cflags: -I${includedir}/xorg -- 2.7.4 ================================================ FILE: package/x11r7/xdriver_xf86-input-mouse/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE bool "xf86-input-mouse" select BR2_PACKAGE_XORGPROTO help X.Org driver for mouse input devices ================================================ FILE: package/x11r7/xdriver_xf86-input-mouse/xdriver_xf86-input-mouse.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-June/002903.html md5 a2104693bbcfe1413397f7905eecd3dc xf86-input-mouse-1.9.3.tar.bz2 sha1 b3982998808ba43117fc066c4ecc94ce67c5818e xf86-input-mouse-1.9.3.tar.bz2 sha256 93ecb350604d05be98b7d4e5db3b8155a44890069a7d8d6b800c0bea79c85cc5 xf86-input-mouse-1.9.3.tar.bz2 sha512 d99f5b4b1ef1aa4cbf1a92549e412f54f121bc804e4d6643248ad7ea18081b38b958bd289dc8476ebc0f6ef5f7424c2f2a8abcfaa30cae5378829549af6b148f xf86-input-mouse-1.9.3.tar.bz2 # Locally computed sha256 472ff645ead9bf3ffb48d42c596376ffc595897e0c0993a071a7ada0da1f4f10 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-input-mouse/xdriver_xf86-input-mouse.mk ================================================ ################################################################################ # # xdriver_xf86-input-mouse # ################################################################################ XDRIVER_XF86_INPUT_MOUSE_VERSION = 1.9.3 XDRIVER_XF86_INPUT_MOUSE_SOURCE = xf86-input-mouse-$(XDRIVER_XF86_INPUT_MOUSE_VERSION).tar.bz2 XDRIVER_XF86_INPUT_MOUSE_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_INPUT_MOUSE_LICENSE = MIT XDRIVER_XF86_INPUT_MOUSE_LICENSE_FILES = COPYING XDRIVER_XF86_INPUT_MOUSE_DEPENDENCIES = xserver_xorg-server xorgproto XDRIVER_XF86_INPUT_MOUSE_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-input-synaptics/0001-build-get-rid-of-sdkdir.patch ================================================ From 231a35e99fee8aba23f18cce21dfb5fa8bef0c36 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 23 Oct 2016 23:07:33 +0200 Subject: [PATCH] build: get rid of sdkdir Use of sdkdir causes problems during cross-compilation, where the full path is then appended to the DESTDIR, leading to host paths being appended in the target: https://bugs.busybox.net/show_bug.cgi?id=8696 Other drivers (e.g. keyboard) got rid of sdkdir. Do the same. Signed-off-by: "Yann E. MORIN" --- Makefile.am | 1 - configure.ac | 9 --------- include/Makefile.am | 4 +++- xorg-synaptics.pc.in | 5 +++-- 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/Makefile.am b/Makefile.am index 678124c..c48c5c8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -21,7 +21,6 @@ # During distcheck, system locations (as provided by pkg-config) may # not be writable; provide instead relative locations. DISTCHECK_CONFIGURE_FLAGS = \ - --with-sdkdir='$${includedir}/xorg' \ --with-xorg-conf-dir='$${datadir}/X11/xorg.conf.d' SUBDIRS = include src man tools conf diff --git a/configure.ac b/configure.ac index 970dd5f..574353b 100644 --- a/configure.ac +++ b/configure.ac @@ -55,11 +55,6 @@ XORG_DRIVER_CHECK_EXT(RANDR, randrproto) # Obtain compiler/linker options for the Synaptics driver dependencies PKG_CHECK_MODULES(XORG, [inputproto >= 2.1.99.3] [xorg-server >= 1.12] xproto inputproto $REQUIRED_MODULES) -# X Server SDK location is required to install Synaptics header files -# This location is also relayed in the xorg-synaptics.pc file -sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server` -AC_SUBST([sdkdir]) - # ----------------------------------------------------------------------------- # Configuration options # ----------------------------------------------------------------------------- @@ -154,10 +149,6 @@ if test "x$have_libxtst" = "xyes" ; then fi # ----------------------------------------------------------------------------- -# Workaround overriding sdkdir to be able to create a tarball when user has no -# write permission in sdkdir. See DISTCHECK_CONFIGURE_FLAGS in Makefile.am -AC_ARG_WITH([sdkdir], [], [sdkdir="$withval"]) - AC_CONFIG_FILES([Makefile src/Makefile man/Makefile diff --git a/include/Makefile.am b/include/Makefile.am index 8234020..565868b 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -18,4 +18,6 @@ # 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. -sdk_HEADERS = synaptics-properties.h +# Location formerly known as 'sdkdir' +xorgincludedir = $(includedir)/xorg +xorginclude_HEADERS = synaptics-properties.h diff --git a/xorg-synaptics.pc.in b/xorg-synaptics.pc.in index 159cfbf..68e0fbe 100644 --- a/xorg-synaptics.pc.in +++ b/xorg-synaptics.pc.in @@ -1,6 +1,7 @@ -sdkdir=@sdkdir@ +prefix=@prefix@ +includedir=@includedir@ Name: synaptics Description: X.Org synaptics input driver. Version: @PACKAGE_VERSION@ -Cflags: -I${sdkdir} +Cflags: -I${includedir}/xorg -- 2.7.4 ================================================ FILE: package/x11r7/xdriver_xf86-input-synaptics/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_INPUT_SYNAPTICS bool "xf86-input-synaptics" select BR2_PACKAGE_LIBEVDEV select BR2_PACKAGE_MTDEV select BR2_PACKAGE_XORGPROTO help X.Org driver for synaptics input devices ================================================ FILE: package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-May/002899.html md5 cfb79d3c975151f9bbf30b727c260cb9 xf86-input-synaptics-1.9.1.tar.bz2 sha1 07eeef716820105cae959bbc3aa103e2fcfd0084 xf86-input-synaptics-1.9.1.tar.bz2 sha256 7af83526eff1c76e8b9e1553b34245c203d029028d8044dd9dcf71eef1001576 xf86-input-synaptics-1.9.1.tar.bz2 sha512 978eddd456aa7361047bc3d72e5127b24b13de29b0dddb6a0acc9f9da93931baa2b22fb5d1e6be164f629a11e5d97d753b835426435396b45b1af5eb8d546c3f xf86-input-synaptics-1.9.1.tar.bz2 # Locally computed sha256 e14dc9a27158cadaeea8bcc2c70069762f05adb29030a444336bfde268751dc7 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics.mk ================================================ ################################################################################ # # xdriver_xf86-input-synaptics # ################################################################################ XDRIVER_XF86_INPUT_SYNAPTICS_VERSION = 1.9.1 XDRIVER_XF86_INPUT_SYNAPTICS_SOURCE = xf86-input-synaptics-$(XDRIVER_XF86_INPUT_SYNAPTICS_VERSION).tar.bz2 XDRIVER_XF86_INPUT_SYNAPTICS_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_INPUT_SYNAPTICS_LICENSE = MIT XDRIVER_XF86_INPUT_SYNAPTICS_LICENSE_FILES = COPYING XDRIVER_XF86_INPUT_SYNAPTICS_DEPENDENCIES = libevdev xserver_xorg-server xorgproto mtdev XDRIVER_XF86_INPUT_SYNAPTICS_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-input-tslib/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_INPUT_TSLIB bool "xf86-input-tslib" select BR2_PACKAGE_XORGPROTO select BR2_PACKAGE_TSLIB help Touch screen library input driver https://github.com/merge/xf86-input-tslib ================================================ FILE: package/x11r7/xdriver_xf86-input-tslib/xdriver_xf86-input-tslib.hash ================================================ # https://github.com/merge/xf86-input-tslib/releases/download/1.1.1/xf86-input-tslib-1.1.1.tar.bz2.sha256 sha256 8b6a9f2ad73598a3619e66e252bd54b1792c4deba0213101fa4d272b5e9217ec xf86-input-tslib-1.1.1.tar.bz2 # Locally computed sha256 edfc46c9b91499699fc54d39e986756a2dcce8a919c6066be177123441532856 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-input-tslib/xdriver_xf86-input-tslib.mk ================================================ ################################################################################ # # xdriver_xf86-input-tslib # ################################################################################ XDRIVER_XF86_INPUT_TSLIB_VERSION = 1.1.1 XDRIVER_XF86_INPUT_TSLIB_SOURCE = xf86-input-tslib-$(XDRIVER_XF86_INPUT_TSLIB_VERSION).tar.bz2 XDRIVER_XF86_INPUT_TSLIB_SITE = https://github.com/merge/xf86-input-tslib/releases/download/$(XDRIVER_XF86_INPUT_TSLIB_VERSION) XDRIVER_XF86_INPUT_TSLIB_LICENSE = MIT XDRIVER_XF86_INPUT_TSLIB_LICENSE_FILES = COPYING XDRIVER_XF86_INPUT_TSLIB_DEPENDENCIES = \ xserver_xorg-server \ xorgproto \ tslib $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-input-vmmouse/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_INPUT_VMMOUSE bool "xf86-input-vmmouse" depends on BR2_i386 || BR2_x86_64 select BR2_PACKAGE_XORGPROTO help VMWare mouse input driver ================================================ FILE: package/x11r7/xdriver_xf86-input-vmmouse/xdriver_xf86-input-vmmouse.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-June/002616.html sha256 0af558957ac1be1b2863712c2475de8f4d7f14921fd01ded2e2fde4921b19319 xf86-input-vmmouse-13.1.0.tar.bz2 # Locally calculated sha256 804737a1582428fdde4e2bfd1e9f3ca07971fc3bdce20ba2d06cc2bba6c84a9e COPYING ================================================ FILE: package/x11r7/xdriver_xf86-input-vmmouse/xdriver_xf86-input-vmmouse.mk ================================================ ################################################################################ # # xdriver_xf86-input-vmmouse # ################################################################################ XDRIVER_XF86_INPUT_VMMOUSE_VERSION = 13.1.0 XDRIVER_XF86_INPUT_VMMOUSE_SOURCE = xf86-input-vmmouse-$(XDRIVER_XF86_INPUT_VMMOUSE_VERSION).tar.bz2 XDRIVER_XF86_INPUT_VMMOUSE_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_INPUT_VMMOUSE_LICENSE = MIT XDRIVER_XF86_INPUT_VMMOUSE_LICENSE_FILES = COPYING XDRIVER_XF86_INPUT_VMMOUSE_DEPENDENCIES = xserver_xorg-server xorgproto ifeq ($(BR2_PACKAGE_HAS_UDEV),y) XDRIVER_XF86_INPUT_VMMOUSE_CONF_OPTS += --with-libudev XDRIVER_XF86_INPUT_VMMOUSE_DEPENDENCIES += udev else XDRIVER_XF86_INPUT_VMMOUSE_CONF_OPTS += --without-libudev endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-amdgpu/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_AMDGPU bool "xf86-video-amdgpu" depends on BR2_USE_MMU # libdrm 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_XORGPROTO help AMD GPU video driver comment "xf86-video-amdgpu needs egl/opengl support from mesa3d" depends on BR2_USE_MMU depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL || \ !BR2_PACKAGE_MESA3D_DRI_DRIVER ================================================ FILE: package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-October/003026.html md5 55ad19b858e186a2cf4e91ed832c05e7 xf86-video-amdgpu-19.1.0.tar.bz2 sha1 044a97ea2f36dd3d2d4844bb503dd4e2b2854d56 xf86-video-amdgpu-19.1.0.tar.bz2 sha256 4f0ea4e0ae61995ac2b7c72433d31deab63b60c78763020aaa1b28696124fe5d xf86-video-amdgpu-19.1.0.tar.bz2 sha512 ccdaa2378492da1a2f3d18fedacd1318c4708da534a8a959276a82730d5420619d83ad1ec8d7835c55655fe56123cd9bffb44e6223c5a97033c01f598af4a173 xf86-video-amdgpu-19.1.0.tar.bz2 # Locally computed sha256 58847c8e97190c401afa84b3f0b8b147379c876a184e99af2cb51bfd40ac8936 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.mk ================================================ ################################################################################ # # xdriver_xf86-video-amdgpu # ################################################################################ XDRIVER_XF86_VIDEO_AMDGPU_VERSION = 19.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 \ xorgproto \ 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)) ================================================ FILE: package/x11r7/xdriver_xf86-video-ark/0001-mibstore.patch ================================================ From 3a3eb72baec46f48e6cf15a834271c3d3386deac Mon Sep 17 00:00:00 2001 From: Gaetan Nadon Date: Tue, 17 Sep 2013 19:55:37 +0000 Subject: Remove usage of mibstore.h (removed from server) The module had a compile error for this missing header file. Changes similar to vmware commit 23d87c92b7211cc5249eefe4ab3a2c7f370e279e Reviewed-by: Alex Deucher Signed-off-by: Gaetan Nadon --- Fetch from: http://cgit.freedesktop.org/xorg/driver/xf86-video-ark/commit/?id=3a3eb72baec46f48e6cf15a834271c3d3386deac Signed-off-by: Bernd Kuhls diff --git a/src/ark_driver.c b/src/ark_driver.c index b7c287c..65cfe84 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -39,7 +39,6 @@ #include "compiler.h" #include "mipointer.h" #include "micmap.h" -#include "mibstore.h" #include "fb.h" #include "ark.h" @@ -538,7 +537,6 @@ static Bool ARKScreenInit(SCREEN_INIT_ARGS_DECL) fbPictureInit (pScreen, 0, 0); - miInitializeBackingStore(pScreen); xf86SetBackingStore(pScreen); if (!pARK->NoAccel) { -- cgit v0.9.0.2-2-gbebe ================================================ FILE: package/x11r7/xdriver_xf86-video-ark/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_ARK bool "xf86-video-ark" select BR2_PACKAGE_XORGPROTO help X.Org driver for ark cards ================================================ FILE: package/x11r7/xdriver_xf86-video-ark/xdriver_xf86-video-ark.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2012-July/002007.html sha256 c690e046f34a393aac1c8d9616b4790e93cda60a460b00b9597d322175dbe51e xf86-video-ark-0.7.5.tar.bz2 # Locally calculated sha256 8ba9850fb0ecd9033bb1d25c1be85625cb53ca56ce76b71f78f4a034f7310bda COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-ark/xdriver_xf86-video-ark.mk ================================================ ################################################################################ # # xdriver_xf86-video-ark # ################################################################################ XDRIVER_XF86_VIDEO_ARK_VERSION = 0.7.5 XDRIVER_XF86_VIDEO_ARK_SOURCE = xf86-video-ark-$(XDRIVER_XF86_VIDEO_ARK_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_ARK_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_ARK_LICENSE = MIT XDRIVER_XF86_VIDEO_ARK_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_ARK_DEPENDENCIES = xserver_xorg-server xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-ast/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_AST bool "xf86-video-ast" select BR2_PACKAGE_XORGPROTO help No description available ================================================ FILE: package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.hash ================================================ # Locally computed sha256 1edbbc55d47d3fd71dec99b15c2483e22738c642623a0fb86ef4a81a9067a2de xf86-video-ast-1.1.5.tar.bz2 # Locally calculated sha256 1cdd3d57e2fdcbd21b8a7b788ffbe6f809216a9bdd36b2225cff6c4b4404a170 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.mk ================================================ ################################################################################ # # xdriver_xf86-video-ast # ################################################################################ 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 XDRIVER_XF86_VIDEO_AST_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_AST_DEPENDENCIES = xorgproto xserver_xorg-server $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-ati/0001-Fix-link-failure-with-gcc-10.patch ================================================ From f223035f4ffcff2a9296d1e907a5193f8e8845a3 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 4 Feb 2020 16:38:06 -0500 Subject: [PATCH xf86-video-ati] Fix link failure with gcc 10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without the 'extern' this looks like a definition not just a declaration, in every file that includes the header. gcc 10 is stricter about this kind of multiple definition. Reviewed-by: Michel Dänzer [backport from upstream: f223035f4ffcff2a9296d1e907a5193f8e8845a3] Signed-off-by: Romain Naour --- src/drmmode_display.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/drmmode_display.h b/src/drmmode_display.h index 96eaef0a..8cd8a0a6 100644 --- a/src/drmmode_display.h +++ b/src/drmmode_display.h @@ -262,7 +262,7 @@ Bool drmmode_wait_vblank(xf86CrtcPtr crtc, drmVBlankSeqType type, uint64_t *ust, uint32_t *result_seq); -miPointerSpriteFuncRec drmmode_sprite_funcs; +extern miPointerSpriteFuncRec drmmode_sprite_funcs; #endif -- 2.25.4 ================================================ FILE: package/x11r7/xdriver_xf86-video-ati/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_ATI bool "xf86-video-ati" depends on BR2_i386 || BR2_x86_64 # DRI radeon r100 driver depends on BR2_PACKAGE_MESA3D select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBDRM_RADEON select BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON select BR2_PACKAGE_XLIB_LIBXCOMPOSITE select BR2_PACKAGE_XORGPROTO help ATI video driver comment "xf86-video-ati needs mesa3d" depends on BR2_i386 || BR2_x86_64 depends on !BR2_PACKAGE_MESA3D ================================================ FILE: package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-October/003027.html md5 6e49d3c2839582af415ceded76e626e6 xf86-video-ati-19.1.0.tar.bz2 sha1 aea1d11c05531b03f2eb67c6785cddf6d7f30e5f xf86-video-ati-19.1.0.tar.bz2 sha256 659f5a1629eea5f5334d9b39b18e6807a63aa1efa33c1236d9cc53acbb223c49 xf86-video-ati-19.1.0.tar.bz2 sha512 73a81f6c492daf2e89067fb52b3033dc0fe6841f109627ddca1aee54a45a738c8c134443753a2a2aaa2c131e1d560057ebc76351ff2304c16407df3ff568fcd6 xf86-video-ati-19.1.0.tar.bz2 # Locally computed sha256 58847c8e97190c401afa84b3f0b8b147379c876a184e99af2cb51bfd40ac8936 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.mk ================================================ ################################################################################ # # xdriver_xf86-video-ati # ################################################################################ XDRIVER_XF86_VIDEO_ATI_VERSION = 19.1.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 XDRIVER_XF86_VIDEO_ATI_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_ATI_DEPENDENCIES = \ libdrm \ xlib_libXcomposite \ xorgproto \ xserver_xorg-server ifeq ($(BR2_PACKAGE_HAS_LIBEGL)$(BR2_PACKAGE_HAS_LIBGL)$(BR2_PACKAGE_LIBEPOXY),yyy) XDRIVER_XF86_VIDEO_ATI_CONF_OPTS = --enable-glamor else XDRIVER_XF86_VIDEO_ATI_CONF_OPTS = --disable-glamor endif # xdriver_xf86-video-ati requires O_CLOEXEC XDRIVER_XF86_VIDEO_ATI_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-cirrus/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_CIRRUS bool "xf86-video-cirrus" select BR2_PACKAGE_XORGPROTO help Cirrus Logic video driver ================================================ FILE: package/x11r7/xdriver_xf86-video-cirrus/xdriver_xf86-video-cirrus.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-May/002600.html sha256 edc87b20a55259126b5239b5c1ef913419eab7ded0ed12ae9ae989460d7351ab xf86-video-cirrus-1.5.3.tar.bz2 # Locally calculated sha256 a113cf02dcfa523593727790a17172080ac87d8de16e766bda4cbbe73dd8dc62 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-cirrus/xdriver_xf86-video-cirrus.mk ================================================ ################################################################################ # # xdriver_xf86-video-cirrus # ################################################################################ XDRIVER_XF86_VIDEO_CIRRUS_VERSION = 1.5.3 XDRIVER_XF86_VIDEO_CIRRUS_SOURCE = xf86-video-cirrus-$(XDRIVER_XF86_VIDEO_CIRRUS_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_CIRRUS_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_CIRRUS_LICENSE = MIT XDRIVER_XF86_VIDEO_CIRRUS_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_CIRRUS_DEPENDENCIES = xserver_xorg-server xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-dummy/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_DUMMY bool "xf86-video-dummy" select BR2_PACKAGE_XORGPROTO help X.Org driver for dummy cards ================================================ FILE: package/x11r7/xdriver_xf86-video-dummy/xdriver_xf86-video-dummy.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2016-December/002751.html sha256 3712bb869307233491e4c570732d6073c0dc3d99adfdb9977396a3fdf84e95b9 xf86-video-dummy-0.3.8.tar.bz2 # Locally calculated sha256 e29aa81e74563d14e5633963107c030e74e8352ea7dafee1a9d7e19b7d0e887b COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-dummy/xdriver_xf86-video-dummy.mk ================================================ ################################################################################ # # xdriver_xf86-video-dummy # ################################################################################ XDRIVER_XF86_VIDEO_DUMMY_VERSION = 0.3.8 XDRIVER_XF86_VIDEO_DUMMY_SOURCE = xf86-video-dummy-$(XDRIVER_XF86_VIDEO_DUMMY_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_DUMMY_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_DUMMY_LICENSE = MIT XDRIVER_XF86_VIDEO_DUMMY_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_DUMMY_DEPENDENCIES = xserver_xorg-server xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-fbdev/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_FBDEV bool "xf86-video-fbdev" select BR2_PACKAGE_XORGPROTO help video driver for framebuffer device ================================================ FILE: package/x11r7/xdriver_xf86-video-fbdev/xdriver_xf86-video-fbdev.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2013-September/002324.html sha256 dcc3d85f378022180e437a9ec00a59b6cb7680ff79c40394d695060af2374699 xf86-video-fbdev-0.5.0.tar.bz2 # Locally calculated sha256 e437aed89c3440a9fe7e19968a3f2eeb97041ef6c9616837a3fd42d0874fc0e6 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-fbdev/xdriver_xf86-video-fbdev.mk ================================================ ################################################################################ # # xdriver_xf86-video-fbdev # ################################################################################ XDRIVER_XF86_VIDEO_FBDEV_VERSION = 0.5.0 XDRIVER_XF86_VIDEO_FBDEV_SOURCE = xf86-video-fbdev-$(XDRIVER_XF86_VIDEO_FBDEV_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_FBDEV_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_FBDEV_LICENSE = MIT XDRIVER_XF86_VIDEO_FBDEV_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_FBDEV_DEPENDENCIES = xserver_xorg-server xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-fbturbo/0001-sunxi_x_g2d-drop-unused-dri2-include.patch ================================================ From 232c5b6924652f65ef5c047754e84b87b5fc6ac8 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Sat, 3 Oct 2015 19:01:38 +0200 Subject: [PATCH] sunxi_x_g2d: drop unused dri2 include The driver doesn't use DRI for anything. [Upstream-status: submitted (https://github.com/ssvb/xf86-video-fbturbo/pull/45)] Signed-off-by: Peter Korsgaard --- src/sunxi_x_g2d.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sunxi_x_g2d.c b/src/sunxi_x_g2d.c index d826027..8888abe 100644 --- a/src/sunxi_x_g2d.c +++ b/src/sunxi_x_g2d.c @@ -31,7 +31,6 @@ #include "xf86_OSproc.h" #include "xf86.h" #include "xf86drm.h" -#include "dri2.h" #include "damage.h" #include "fb.h" #include "gcstruct.h" -- 2.1.4 ================================================ FILE: package/x11r7/xdriver_xf86-video-fbturbo/0002-Use-own-thunk-functions-instead-of-fbdevHW-Weak.patch ================================================ From 2186a4e5ed6b8b8f24ebd4d2045df10d1f895999 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 21 May 2014 09:49:56 -0400 Subject: [PATCH] Use own thunk functions instead of fbdevHW*Weak I plan to remove the Weak functions from a future server. Signed-off-by: Adam Jackson [Upstream https://gitlab.freedesktop.org/xorg/driver/xf86-video-fbdev/-/commit/2673e727063fe28310836f1e6e9eda552930218a ported to xf86-video-fbturbo] Signed-off-by: Peter Seiderer --- src/fbdev.c | 86 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 71 insertions(+), 15 deletions(-) diff --git a/src/fbdev.c b/src/fbdev.c index 90d9f39..81bd1fb 100644 --- a/src/fbdev.c +++ b/src/fbdev.c @@ -269,6 +269,35 @@ FBDevIdentify(int flags) xf86PrintChipsets(FBDEV_NAME, "driver for framebuffer", FBDevChipsets); } +static Bool +fbdevSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode) +{ + return fbdevHWSwitchMode(pScrn, mode); +} + +static void +fbdevAdjustFrame(ScrnInfoPtr pScrn, int x, int y) +{ + fbdevHWAdjustFrame(pScrn, x, y); +} + +static Bool +fbdevEnterVT(ScrnInfoPtr pScrn) +{ + return fbdevHWEnterVT(pScrn); +} + +static void +fbdevLeaveVT(ScrnInfoPtr pScrn) +{ + fbdevHWLeaveVT(pScrn); +} + +static ModeStatus +fbdevValidMode(ScrnInfoPtr pScrn, DisplayModePtr mode, Bool verbose, int flags) +{ + return fbdevHWValidMode(pScrn, mode, verbose, flags); +} #ifdef XSERVER_LIBPCIACCESS static Bool FBDevPciProbe(DriverPtr drv, int entity_num, @@ -294,11 +323,11 @@ static Bool FBDevPciProbe(DriverPtr drv, int entity_num, pScrn->Probe = FBDevProbe; pScrn->PreInit = FBDevPreInit; pScrn->ScreenInit = FBDevScreenInit; - pScrn->SwitchMode = fbdevHWSwitchModeWeak(); - pScrn->AdjustFrame = fbdevHWAdjustFrameWeak(); - pScrn->EnterVT = fbdevHWEnterVTWeak(); - pScrn->LeaveVT = fbdevHWLeaveVTWeak(); - pScrn->ValidMode = fbdevHWValidModeWeak(); + pScrn->SwitchMode = fbdevSwitchMode; + pScrn->AdjustFrame = fbdevAdjustFrame; + pScrn->EnterVT = fbdevEnterVT; + pScrn->LeaveVT = fbdevLeaveVT; + pScrn->ValidMode = fbdevValidMode; xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "claimed PCI slot %d@%d:%d:%d\n", @@ -411,11 +440,11 @@ FBDevProbe(DriverPtr drv, int flags) pScrn->Probe = FBDevProbe; pScrn->PreInit = FBDevPreInit; pScrn->ScreenInit = FBDevScreenInit; - pScrn->SwitchMode = fbdevHWSwitchModeWeak(); - pScrn->AdjustFrame = fbdevHWAdjustFrameWeak(); - pScrn->EnterVT = fbdevHWEnterVTWeak(); - pScrn->LeaveVT = fbdevHWLeaveVTWeak(); - pScrn->ValidMode = fbdevHWValidModeWeak(); + pScrn->SwitchMode = fbdevSwitchMode; + pScrn->AdjustFrame = fbdevAdjustFrame; + pScrn->EnterVT = fbdevEnterVT; + pScrn->LeaveVT = fbdevLeaveVT; + pScrn->ValidMode = fbdevValidMode; xf86DrvMsg(pScrn->scrnIndex, X_INFO, "using %s\n", dev ? dev : "default device"); @@ -656,6 +685,17 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags) return TRUE; } +static void +fbdevUpdateRotatePacked(ScreenPtr pScreen, shadowBufPtr pBuf) +{ + shadowUpdateRotatePacked(pScreen, pBuf); +} + +static void +fbdevUpdatePacked(ScreenPtr pScreen, shadowBufPtr pBuf) +{ + shadowUpdatePacked(pScreen, pBuf); +} static Bool FBDevCreateScreenResources(ScreenPtr pScreen) @@ -675,7 +715,7 @@ FBDevCreateScreenResources(ScreenPtr pScreen) pPixmap = pScreen->GetScreenPixmap(pScreen); if (!shadowAdd(pScreen, pPixmap, fPtr->rotate ? - shadowUpdateRotatePackedWeak() : shadowUpdatePackedWeak(), + fbdevUpdateRotatePacked : fbdevUpdatePacked, FBDevWindowLinear, fPtr->rotate, NULL)) { return FALSE; } @@ -699,6 +739,23 @@ FBDevShadowInit(ScreenPtr pScreen) return TRUE; } +static void +fbdevLoadPalette(ScrnInfoPtr pScrn, int num, int *i, LOCO *col, VisualPtr pVis) +{ + fbdevHWLoadPalette(pScrn, num, i, col, pVis); +} + +static void +fbdevDPMSSet(ScrnInfoPtr pScrn, int mode, int flags) +{ + fbdevHWDPMSSet(pScrn, mode, flags); +} + +static Bool +fbdevSaveScreen(ScreenPtr pScreen, int mode) +{ + return fbdevHWSaveScreen(pScreen, mode); +} static Bool FBDevScreenInit(SCREEN_INIT_ARGS_DECL) @@ -1025,13 +1082,12 @@ FBDevScreenInit(SCREEN_INIT_ARGS_DECL) return FALSE; } flags = CMAP_PALETTED_TRUECOLOR; - if(!xf86HandleColormaps(pScreen, 256, 8, fbdevHWLoadPaletteWeak(), - NULL, flags)) + if(!xf86HandleColormaps(pScreen, 256, 8, fbdevLoadPalette, NULL, flags)) return FALSE; - xf86DPMSInit(pScreen, fbdevHWDPMSSetWeak(), 0); + xf86DPMSInit(pScreen, fbdevDPMSSet, 0); - pScreen->SaveScreen = fbdevHWSaveScreenWeak(); + pScreen->SaveScreen = fbdevSaveScreen; /* Wrap the current CloseScreen function */ fPtr->CloseScreen = pScreen->CloseScreen; -- 2.31.1 ================================================ FILE: package/x11r7/xdriver_xf86-video-fbturbo/0003-Update-for-1.20-ABI.patch ================================================ From 5112829fe3f9f4776276800a175bf460061f83b1 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 30 May 2018 12:31:04 -0400 Subject: [PATCH] Update for 1.20 ABI Signed-off-by: Adam Jackson [Upstream https://gitlab.freedesktop.org/xorg/driver/xf86-video-fbdev/-/commit/67525c485f3b32ce0c9bff250d905852f75dfc1c ported to xf86-video-fbturbo] Signed-off-by: Peter Seiderer --- src/fbdev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/fbdev.c b/src/fbdev.c index 81bd1fb..489a231 100644 --- a/src/fbdev.c +++ b/src/fbdev.c @@ -1036,7 +1036,9 @@ FBDevScreenInit(SCREEN_INIT_ARGS_DECL) xf86DrvMsg(pScrn->scrnIndex, X_INFO, "display rotated; disabling DGA\n"); xf86DrvMsg(pScrn->scrnIndex, X_INFO, "using driver rotation; disabling " "XRandR\n"); +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 24 xf86DisableRandR(); +#endif if (pScrn->bitsPerPixel == 24) xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "rotation might be broken at 24 " "bits per pixel\n"); -- 2.31.1 ================================================ FILE: package/x11r7/xdriver_xf86-video-fbturbo/0004-xorg.conf-add-mandatory-modules-fb-shadow-fbdevhw.patch ================================================ From 04d1f756ac1204b8d5be1757499ac3a239bd93e1 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Wed, 2 Jun 2021 21:42:56 +0200 Subject: [PATCH] xorg.conf: add mandatory modules (fb, shadow, fbdevhw) Xorg does not implement real dynamic linking and requires that its modules get loaded so add mandatory modules: - fbdevhw, fixes: [ 303.906] (II) LoadModule: "fbturbo" [ 303.906] (II) Loading /usr/lib/xorg/modules/drivers/fbturbo_drv.so [ 303.907] (EE) Failed to load /usr/lib/xorg/modules/drivers/fbturbo_drv.so: /usr/lib/xorg/modules/drivers/fbturbo_drv.so: undefined symbol: fbdevHWSave [ 303.907] (EE) Failed to load module "fbturbo" (loader failed, 0) [ 303.907] (EE) No drivers available. - shadow, fixes: [ 426.403] (II) LoadModule: "fbturbo" [ 426.404] (II) Loading /usr/lib/xorg/modules/drivers/fbturbo_drv.so [ 426.404] (EE) Failed to load /usr/lib/xorg/modules/drivers/fbturbo_drv.so: /usr/lib/xorg/modules/drivers/fbturbo_drv.so: undefined symbol: shadowRemove [ 426.404] (EE) Failed to load module "fbturbo" (loader failed, 0) [ 426.404] (EE) No drivers available. - fb, fixes: [ 471.912] (II) LoadModule: "shadow" [ 471.913] (II) Loading /usr/lib/xorg/modules/libshadow.so [ 471.913] (EE) Failed to load /usr/lib/xorg/modules/libshadow.so: /usr/lib/xorg/modules/libshadow.so: undefined symbol: fbGetScreenPrivateKey [ 471.913] (EE) Failed to load module "shadow" (loader failed, 0) Signed-off-by: Peter Seiderer --- xorg.conf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/xorg.conf b/xorg.conf index 6217d11..fda62e3 100644 --- a/xorg.conf +++ b/xorg.conf @@ -8,6 +8,12 @@ # Run "man fbturbo" to get additional information about the extra # configuration options for tuning the driver. +Section "Module" + Load "fb" + Load "shadow" + Load "fbdevhw" +EndSection + Section "Device" Identifier "Allwinner A10/A13 FBDEV" Driver "fbturbo" -- 2.31.1 ================================================ FILE: package/x11r7/xdriver_xf86-video-fbturbo/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_FBTURBO bool "xf86-video-fbturbo" select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_PIXMAN select BR2_PACKAGE_XORGPROTO help video driver, primarily optimized for the devices powered by the Allwinner SoC (A10, A13, A20). It can use some of the 2D/3D hardware acceleration features. https://github.com/ssvb/xf86-video-fbturbo ================================================ FILE: package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.hash ================================================ # locally computed sha256 10411686de0a9d8b2cde300b0d68e9f1d22e3611470d357ef3afc337f123ca0f xdriver_xf86-video-fbturbo-0.4.0.tar.gz sha256 8333e3fa5b0f8d8aceca2f060d4eceeb6033cefed2301b03c3e92f6e3ebbffce COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk ================================================ ################################################################################ # # xdriver_xf86-video-fbturbo # ################################################################################ XDRIVER_XF86_VIDEO_FBTURBO_VERSION = 0.4.0 XDRIVER_XF86_VIDEO_FBTURBO_SITE = $(call github,ssvb,xf86-video-fbturbo,$(XDRIVER_XF86_VIDEO_FBTURBO_VERSION)) XDRIVER_XF86_VIDEO_FBTURBO_LICENSE = MIT XDRIVER_XF86_VIDEO_FBTURBO_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_FBTURBO_DEPENDENCIES = \ xserver_xorg-server \ libdrm \ pixman \ xorgproto ifeq ($(BR2_PACKAGE_LIBPCIACCESS),y) XDRIVER_XF86_VIDEO_FBTURBO_DEPENDENCIES += libpciaccess XDRIVER_XF86_VIDEO_FBTURBO_CONF_OPTS += --enable-pciaccess else XDRIVER_XF86_VIDEO_FBTURBO_CONF_OPTS += --disable-pciaccess endif define XDRIVER_XF86_VIDEO_FBTURBO_INSTALL_CONF_FILE $(INSTALL) -m 0644 -D $(@D)/xorg.conf $(TARGET_DIR)/etc/X11/xorg.conf endef XDRIVER_XF86_VIDEO_FBTURBO_POST_INSTALL_TARGET_HOOKS += XDRIVER_XF86_VIDEO_FBTURBO_INSTALL_CONF_FILE $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-geode/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_GEODE bool "xf86-video-geode" depends on BR2_i386 select BR2_PACKAGE_XORGPROTO help video driver for geode device ================================================ FILE: package/x11r7/xdriver_xf86-video-geode/xdriver_xf86-video-geode.hash ================================================ # Locally calculated sha256 f497d0bfb09f36c72e3467e2d701f57f6b03ab8992c5d570e66582f714f84d64 xf86-video-geode-2.11.20.tar.bz2 sha256 3994ef7cee54f0935a4b57b1c34efd904da567931dd9e1a2d9390d22c8332ea2 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-geode/xdriver_xf86-video-geode.mk ================================================ ################################################################################ # # xdriver_xf86-video-geode # ################################################################################ XDRIVER_XF86_VIDEO_GEODE_VERSION = 2.11.20 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 XDRIVER_XF86_VIDEO_GEODE_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_GEODE_DEPENDENCIES = xserver_xorg-server xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-glint/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_GLINT bool "xf86-video-glint" depends on BR2_PACKAGE_MESA3D select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_XORGPROTO help GLINT/Permedia video driver comment "xf86-video-glint needs mesa3d" depends on !BR2_PACKAGE_MESA3D ================================================ FILE: package/x11r7/xdriver_xf86-video-glint/xdriver_xf86-video-glint.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2017-January/002759.html sha256 852833ab2ea9ce519195dfd061a6c7aa5945a093cdc19546d1e9e69df7d577d2 xf86-video-glint-1.2.9.tar.bz2 # Locally calculated sha256 6ca8e1a7e1d491f3618d3f14df1be64dbc8adefae7bbaf11d4920240dfb12f6e COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-glint/xdriver_xf86-video-glint.mk ================================================ ################################################################################ # # xdriver_xf86-video-glint # ################################################################################ XDRIVER_XF86_VIDEO_GLINT_VERSION = 1.2.9 XDRIVER_XF86_VIDEO_GLINT_SOURCE = xf86-video-glint-$(XDRIVER_XF86_VIDEO_GLINT_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_GLINT_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_GLINT_LICENSE = MIT XDRIVER_XF86_VIDEO_GLINT_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_GLINT_DEPENDENCIES = xserver_xorg-server libdrm xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-i128/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_I128 bool "xf86-video-i128" select BR2_PACKAGE_XORGPROTO help Number 9 I128 video driver ================================================ FILE: package/x11r7/xdriver_xf86-video-i128/xdriver_xf86-video-i128.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-December/002932.html md5 a980f1b8532ccfe81932580bc4e0f2a0 xf86-video-i128-1.4.0.tar.bz2 sha1 56d5b897b2695222c13e59d2ade74620a99e1011 xf86-video-i128-1.4.0.tar.bz2 sha256 8f2c0a6bf5a169dad3fc07c6dd4537b492d0e44489e4a1297311e617c3bed0ea xf86-video-i128-1.4.0.tar.bz2 sha512 d58baee3f20b3ad2ece6853da0ff20a6d54b984c6e3289bad2715cc003b277a0b44d20ded25cfc116400468df552390bdb5d80fbd3fb60861488ee5d027664b2 xf86-video-i128-1.4.0.tar.bz2 # Locally computed sha256 7677424d79633dbf255a81bd4e05dd621931b89997af33c31522269ec2ed391e COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-i128/xdriver_xf86-video-i128.mk ================================================ ################################################################################ # # xdriver_xf86-video-i128 # ################################################################################ XDRIVER_XF86_VIDEO_I128_VERSION = 1.4.0 XDRIVER_XF86_VIDEO_I128_SOURCE = xf86-video-i128-$(XDRIVER_XF86_VIDEO_I128_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_I128_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_I128_LICENSE = MIT XDRIVER_XF86_VIDEO_I128_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_I128_DEPENDENCIES = xserver_xorg-server xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-imx/0001-Update-to-newer-swap-macros.patch ================================================ From fc7f191a1a0f290a4e808dd8f9bd58ba1dbd2be4 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Sat, 29 Dec 2012 18:00:36 -0200 Subject: [PATCH 1/2] ext: Update to newer swap macros The swap macros now use an internal temporary variable so we need to adapt the code according. Upstream-Status: Pending Signed-off-by: Otavio Salvador --- src/imx_ext.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/imx_ext.c b/src/imx_ext.c index f12469a..710cba4 100644 --- a/src/imx_ext.c +++ b/src/imx_ext.c @@ -57,8 +57,6 @@ void imxExtInit() static int Proc_IMX_EXT_GetPixmapPhysAddr(ClientPtr client) { - int n; - REQUEST(xIMX_EXT_GetPixmapPhysAddrReq); REQUEST_SIZE_MATCH(xIMX_EXT_GetPixmapPhysAddrReq); @@ -96,10 +94,10 @@ Proc_IMX_EXT_GetPixmapPhysAddr(ClientPtr client) /* Check if any reply values need byte swapping */ if (client->swapped) { - swaps(&rep.sequenceNumber, n); - swapl(&rep.length, n); - swapl(&rep.pixmapPhysAddr, n); - swapl(&rep.pixmapPitch, n); + swaps(&rep.sequenceNumber); + swapl(&rep.length); + swapl(&rep.pixmapPhysAddr); + swapl(&rep.pixmapPitch); } /* Reply to client */ @@ -123,16 +121,14 @@ Proc_IMX_EXT_Dispatch(ClientPtr client) static int SProc_IMX_EXT_GetPixmapPhysAddr(ClientPtr client) { - int n; - REQUEST(xIMX_EXT_GetPixmapPhysAddrReq); /* Swap request message length and verify it is correct. */ - swaps(&stuff->length, n); + swaps(&stuff->length); REQUEST_SIZE_MATCH(xIMX_EXT_GetPixmapPhysAddrReq); /* Swap remaining request message parameters. */ - swapl(&stuff->pixmap, n); + swapl(&stuff->pixmap); return Proc_IMX_EXT_GetPixmapPhysAddr(client); } -- 1.7.10.4 ================================================ FILE: package/x11r7/xdriver_xf86-video-imx/0002-Fix-error-unknown-type-name-uint.patch ================================================ From ccdfce5e75ba707deacdd5808a8f3de8744848d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20B=C3=A9nard?= Date: Tue, 5 Feb 2013 10:57:47 +0100 Subject: [PATCH] Fix "error: unknown type name 'uint'" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In file included from imx_driver.c:33:0: .../sysroots/imx53qsb/usr/src/kernel/include/linux/mxcfb.h:107:2: error: unknown type name 'uint' Upstream-Status: Pending Signed-off-by: Eric Bénard --- src/imx_driver.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/imx_driver.c b/src/imx_driver.c index f4b3e38..4cf662d 100644 --- a/src/imx_driver.c +++ b/src/imx_driver.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include -- 1.7.10.4 ================================================ FILE: package/x11r7/xdriver_xf86-video-imx/0003-support-glibc-2.20.patch ================================================ Fix build errors seen with glibc 2.20 /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/imx53qsb/usr/include/xorg/os.h:579:1: error: expected identifier or '(' before '__extension__' strndup(const char *str, size_t n); ^ Signed-off-by: Khem Raj Upstream-Status: Pending Index: xserver-xorg-video-imx-11.09.01/src/imx_accel.c =================================================================== --- xserver-xorg-video-imx-11.09.01.orig/src/imx_accel.c 2011-07-26 14:22:47.000000000 -0700 +++ xserver-xorg-video-imx-11.09.01/src/imx_accel.c 2014-08-29 15:54:43.648070587 -0700 @@ -21,6 +21,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include #include #include "xf86.h" Index: xserver-xorg-video-imx-11.09.01/src/imx_exa_offscreen.c =================================================================== --- xserver-xorg-video-imx-11.09.01.orig/src/imx_exa_offscreen.c 2014-08-29 15:26:31.992070587 -0700 +++ xserver-xorg-video-imx-11.09.01/src/imx_exa_offscreen.c 2014-08-29 15:54:54.632070587 -0700 @@ -53,7 +53,7 @@ * When allocating, the contiguous block of areas with the minimum eviction * cost is found and evicted in order to make room for the new allocation. */ - +#include #include "xf86.h" #include "exa.h" Index: xserver-xorg-video-imx-11.09.01/src/imx_exa_z160.c =================================================================== --- xserver-xorg-video-imx-11.09.01.orig/src/imx_exa_z160.c 2014-08-29 15:26:31.992070587 -0700 +++ xserver-xorg-video-imx-11.09.01/src/imx_exa_z160.c 2014-08-29 15:54:36.056070587 -0700 @@ -21,6 +21,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include #include "xf86.h" #include "xf86_OSproc.h" Index: xserver-xorg-video-imx-11.09.01/src/imx_ext.c =================================================================== --- xserver-xorg-video-imx-11.09.01.orig/src/imx_ext.c 2014-08-29 15:26:32.064070587 -0700 +++ xserver-xorg-video-imx-11.09.01/src/imx_ext.c 2014-08-29 15:55:18.048070587 -0700 @@ -21,6 +21,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include #include #include ================================================ FILE: package/x11r7/xdriver_xf86-video-imx/0004-Make-video-API-forward-and-backward-compatible.patch ================================================ From 5216cb0f14414b5451f58df48a36c1c62c035276 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Sat, 29 Dec 2012 18:02:11 -0200 Subject: [PATCH] Make video API forward and backward compatible This updates the video API in a forward and backward compatible way using the "compat-api.h" as used in Xorg maintained drivers. Upstream-Status: Pending Signed-off-by: Otavio Salvador --- src/compat-api.h | 106 +++++++++++++++++++++++++++++++++++++++++++++++ src/imx_display.c | 22 +++++----- src/imx_display.h | 8 ++-- src/imx_driver.c | 60 ++++++++++++++------------- src/imx_exa_offscreen.c | 12 +++--- src/imx_exa_z160.c | 53 ++++++++++++------------ src/imx_xv_ipu.c | 4 +- 7 files changed, 188 insertions(+), 77 deletions(-) create mode 100644 src/compat-api.h diff --git a/src/compat-api.h b/src/compat-api.h new file mode 100644 index 0000000..73ac8a2 --- /dev/null +++ b/src/compat-api.h @@ -0,0 +1,106 @@ +/* + * Copyright 2012 Red Hat, Inc. + * + * 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 (including the next + * paragraph) 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. + * + * Author: Dave Airlie + */ + +/* this file provides API compat between server post 1.13 and pre it, + it should be reused inside as many drivers as possible */ +#ifndef COMPAT_API_H +#define COMPAT_API_H + +#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR +#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum] +#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p +#endif + +#ifndef XF86_HAS_SCRN_CONV +#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum] +#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] +#endif + +#ifndef XF86_SCRN_INTERFACE + +#define SCRN_ARG_TYPE int +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)] + +#define SCREEN_ARG_TYPE int +#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)] + +#define SCREEN_INIT_ARGS_DECL int index, ScreenPtr pScreen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask +#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask + +#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen +#define CLOSE_SCREEN_ARGS scrnIndex, pScreen +#define CLOSE_SCREEN_DECL_ScrnInfoPtr ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + +#define FBDEVHWADJUSTFRAME_ARGS(x, y) scrnIndex, (x), (y), 0 + +#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags + +#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags + +#define FREE_SCREEN_ARGS_DECL int arg, int flags +#define FREE_SCREEN_ARGS(x) (x)->scrnIndex, 0 + +#define VT_FUNC_ARGS_DECL int arg, int flags +#define VT_FUNC_ARGS(flags) pScrn->scrnIndex, (flags) + +#define ENABLE_DISABLE_FB_ACCESS_ARGS(pScrn, b) pScrn->scrnIndex, b + +#define XF86_ENABLEDISABLEFB_ARG(x) ((x)->scrnIndex) +#else +#define SCRN_ARG_TYPE ScrnInfoPtr +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1) + +#define SCREEN_ARG_TYPE ScreenPtr +#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1) + +#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask +#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask + +#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen +#define CLOSE_SCREEN_ARGS pScreen +#define CLOSE_SCREEN_DECL_ScrnInfoPtr ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + +#define FBDEVHWADJUSTFRAME_ARGS(x, y) pScrn, (x), (y) + +#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y +#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode + +#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg +#define FREE_SCREEN_ARGS(x) (x) + +#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg +#define VT_FUNC_ARGS(flags) pScrn + +#define ENABLE_DISABLE_FB_ACCESS_ARGS(pScrn, b) pScrn, b + +#define XF86_ENABLEDISABLEFB_ARG(x) (x) + +#endif + +#endif diff --git a/src/imx_display.c b/src/imx_display.c index fcb8195..e2dc36a 100644 --- a/src/imx_display.c +++ b/src/imx_display.c @@ -42,6 +42,8 @@ #include "imx.h" #include "imx_display.h" +#include "compat-api.h" + #include #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,7,6,0,0) @@ -1373,19 +1375,19 @@ imxDisplayPreInit(ScrnInfoPtr pScrn) Bool imxDisplayStartScreenInit(int scrnIndex, ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ImxPtr fPtr = IMXPTR(pScrn); if (!xf86SetDesiredModes(pScrn)) { - xf86DrvMsg(scrnIndex, X_ERROR, "mode initialization failed\n"); + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "mode initialization failed\n"); return FALSE; } #if 0 if (!fbdevHWModeInit(pScrn, pScrn->currentMode)) { - xf86DrvMsg(scrnIndex, X_ERROR, "mode initialization failed\n"); + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "mode initialization failed\n"); return FALSE; } pScrn->displayWidth = @@ -1463,29 +1465,29 @@ imxDisplayFinishScreenInit(int scrnIndex, ScreenPtr pScreen) /* -------------------------------------------------------------------- */ Bool -imxDisplaySwitchMode(int scrnIndex, DisplayModePtr mode, int flags) +imxDisplaySwitchMode(SWITCH_MODE_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); return xf86SetSingleMode(pScrn, mode, RR_Rotate_0); } void -imxDisplayAdjustFrame(int scrnIndex, int x, int y, int flags) +imxDisplayAdjustFrame(ADJUST_FRAME_ARGS_DECL) { -// fbdevHWAdjustFrame(scrnIndex, x, y, flags); +// fbdevHWAdjustFrame(pScrn->scrnIndex, x, y, flags); } Bool -imxDisplayEnterVT(int scrnIndex, int flags) +imxDisplayEnterVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); return xf86SetDesiredModes(pScrn); } void -imxDisplayLeaveVT(int scrnIndex, int flags) +imxDisplayLeaveVT(VT_FUNC_ARGS_DECL) { } diff --git a/src/imx_display.h b/src/imx_display.h index 4a5d5aa..3a3d43a 100644 --- a/src/imx_display.h +++ b/src/imx_display.h @@ -59,16 +59,16 @@ imxDisplayValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags); extern Bool -imxDisplaySwitchMode(int scrnIndex, DisplayModePtr mode, int flags); +imxDisplaySwitchMode(SWITCH_MODE_ARGS_DECL); extern void -imxDisplayAdjustFrame(int scrnIndex, int x, int y, int flags); +imxDisplayAdjustFrame(ADJUST_FRAME_ARGS_DECL); extern Bool -imxDisplayEnterVT(int scrnIndex, int flags); +imxDisplayEnterVT(VT_FUNC_ARGS_DECL); extern void -imxDisplayLeaveVT(int scrnIndex, int flags); +imxDisplayLeaveVT(VT_FUNC_ARGS_DECL); extern Bool imxDisplayChangeFrameBufferRotateEPDC(int scrnIndex, int fbRotate); diff --git a/src/imx_driver.c b/src/imx_driver.c index 178e36e..f4b3e38 100644 --- a/src/imx_driver.c +++ b/src/imx_driver.c @@ -46,6 +46,8 @@ #include "fb.h" #include "fbdevhw.h" +#include "compat-api.h" + #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6 #include "xf86Resources.h" #include "xf86RAC.h" @@ -435,17 +437,17 @@ errorPreInit: } static void -imxFreeScreen(int scrnIndex, int flags) +imxFreeScreen(FREE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); imxFreeRec(pScrn); } static Bool -imxCloseScreen(int scrnIndex, ScreenPtr pScreen) +imxCloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + CLOSE_SCREEN_DECL_ScrnInfoPtr; ImxPtr fPtr = IMXPTR(pScrn); fbdevHWRestore(pScrn); @@ -453,7 +455,7 @@ imxCloseScreen(int scrnIndex, ScreenPtr pScreen) pScrn->vtSema = FALSE; pScreen->CloseScreen = fPtr->saveCloseScreen; - return (*pScreen->CloseScreen)(scrnIndex, pScreen); + return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS); } static int @@ -488,9 +490,9 @@ LCM(a, b) } static Bool -imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +imxScreenInit(SCREEN_INIT_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ImxPtr fPtr = IMXPTR(pScrn); VisualPtr visual; int init_picture = 0; @@ -514,7 +516,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* Map frame buffer memory */ fPtr->fbMemoryBase = fbdevHWMapVidmem(pScrn); if (NULL == fPtr->fbMemoryBase) { - xf86DrvMsg(scrnIndex,X_ERROR,"mapping of video memory" + xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"mapping of video memory" " failed\n"); return FALSE; } @@ -558,7 +560,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) const int fbOffsetScreen2 = IMX_ALIGN(fbMaxScreenSize, fbMaxAlignOffset); fPtr->fbMemoryScreenReserve = fbMaxScreenSize; - xf86DrvMsg(scrnIndex, X_INFO, + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "reserve %d bytes of frame buffer for screen\n", fPtr->fbMemoryScreenReserve); fPtr->fbMemoryStart2 = NULL; @@ -568,12 +570,12 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) fPtr->fbMemoryScreenReserve += fbOffsetScreen2; - xf86DrvMsg(scrnIndex, X_INFO, + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "reserve same number of bytes for XRandR rotated screen at offset %d\n", fbOffsetScreen2); } - if (!imxDisplayStartScreenInit(scrnIndex, pScreen)) { + if (!imxDisplayStartScreenInit(pScrn->scrnIndex, pScreen)) { return FALSE; } @@ -582,7 +584,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) miClearVisualTypes(); if (pScrn->bitsPerPixel > 8) { if (!miSetVisualTypes(pScrn->depth, TrueColorMask, pScrn->rgbBits, TrueColor)) { - xf86DrvMsg(scrnIndex,X_ERROR,"visual type setup failed" + xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"visual type setup failed" " for %d bits per pixel [1]\n", pScrn->bitsPerPixel); return FALSE; @@ -591,14 +593,14 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) if (!miSetVisualTypes(pScrn->depth, miGetDefaultVisualMask(pScrn->depth), pScrn->rgbBits, pScrn->defaultVisual)) { - xf86DrvMsg(scrnIndex,X_ERROR,"visual type setup failed" + xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"visual type setup failed" " for %d bits per pixel [2]\n", pScrn->bitsPerPixel); return FALSE; } } if (!miSetPixmapDepths()) { - xf86DrvMsg(scrnIndex,X_ERROR,"pixmap depth setup failed\n"); + xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"pixmap depth setup failed\n"); return FALSE; } @@ -607,10 +609,10 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) has a padding which is independent from the depth (controlfb) */ pScrn->displayWidth = fbdevHWGetLineLength(pScrn) / (pScrn->bitsPerPixel / 8); - xf86DrvMsg(scrnIndex, X_INFO, "displayWidth = %d\n", pScrn->displayWidth); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "displayWidth = %d\n", pScrn->displayWidth); if (pScrn->displayWidth != pScrn->virtualX) { - xf86DrvMsg(scrnIndex, X_INFO, + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Pitch updated to %d after ModeInit\n", pScrn->displayWidth); } @@ -633,7 +635,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) init_picture = 1; break; default: - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "internal error: invalid number of bits per" " pixel (%d) encountered in" " imxScreenInit()\n", pScrn->bitsPerPixel); @@ -644,7 +646,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) case FBDEVHW_INTERLEAVED_PLANES: /* This should never happen ... * we should check for this much much earlier ... */ - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "internal error: interleaved planes are not yet " "supported by the imx driver\n"); ret = FALSE; @@ -652,20 +654,20 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) case FBDEVHW_TEXT: /* This should never happen ... * we should check for this much much earlier ... */ - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "internal error: text mode is not supported by the " "imx driver\n"); ret = FALSE; break; case FBDEVHW_VGA_PLANES: /* Not supported yet */ - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "internal error: EGA/VGA Planes are not yet " "supported by the imx driver\n"); ret = FALSE; break; default: - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "internal error: unrecognised hardware type (%d) " "encountered in imxScreenInit()\n", type); ret = FALSE; @@ -699,7 +701,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* INIT ACCELERATION BEFORE INIT FOR BACKING STORE & SOFTWARE CURSOR */ if (fPtr->useAccel) { - if (!imxExaZ160Setup(scrnIndex, pScreen)) { + if (!imxExaZ160Setup(pScrn->scrnIndex, pScreen)) { fPtr->useAccel = FALSE; } @@ -731,29 +733,29 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* XXX It would be simpler to use miCreateDefColormap() in all cases. */ case FBDEVHW_PACKED_PIXELS: if (!miCreateDefColormap(pScreen)) { - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "internal error: miCreateDefColormap failed " "in imxScreenInit()\n"); return FALSE; } break; case FBDEVHW_INTERLEAVED_PLANES: - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "internal error: interleaved planes are not yet " "supported by the imx driver\n"); return FALSE; case FBDEVHW_TEXT: - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "internal error: text mode is not supported by " "the imx driver\n"); return FALSE; case FBDEVHW_VGA_PLANES: - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "internal error: EGA/VGA planes are not yet " "supported by the imx driver\n"); return FALSE; default: - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "internal error: unrecognised imx hardware type " "(%d) encountered in imxScreenInit()\n", type); return FALSE; @@ -782,7 +784,7 @@ imxScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) } #endif - if (!imxDisplayFinishScreenInit(scrnIndex, pScreen)) { + if (!imxDisplayFinishScreenInit(pScrn->scrnIndex, pScreen)) { return FALSE; } @@ -810,7 +812,7 @@ IMXGetPixmapProperties( } /* Access screen associated with this pixmap. */ - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); /* Check if the screen associated with this pixmap has IMX driver. */ if (0 != strcmp(IMX_DRIVER_NAME, pScrn->driverName)) { diff --git a/src/imx_exa_offscreen.c b/src/imx_exa_offscreen.c index 3a5c24d..0fbe2fc 100644 --- a/src/imx_exa_offscreen.c +++ b/src/imx_exa_offscreen.c @@ -79,7 +79,7 @@ static void imxExaOffscreenValidate (ScreenPtr pScreen) { /* Access the driver specific data. */ - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ImxPtr imxPtr = IMXPTR(pScrn); ImxExaPtr imxExaPtr = IMXEXAPTR(imxPtr); ExaOffscreenArea *prev = 0, *area; @@ -135,7 +135,7 @@ imxExaOffscreenMerge (ImxExaPtr imxExaPtr, ExaOffscreenArea *area) ExaOffscreenArea * imxExaOffscreenFree (ScreenPtr pScreen, ExaOffscreenArea *area) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ImxPtr imxPtr = IMXPTR(pScrn); ImxExaPtr imxExaPtr = IMXEXAPTR(imxPtr); ExaOffscreenArea *next = area->next; @@ -281,7 +281,7 @@ imxExaOffscreenAlloc (ScreenPtr pScreen, int size, int align, pointer privData) { ExaOffscreenArea *area; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ImxPtr imxPtr = IMXPTR(pScrn); ImxExaPtr imxExaPtr = IMXEXAPTR(imxPtr); int real_size = 0, largest_avail = 0; @@ -418,7 +418,7 @@ imxExaOffscreenSwapIn (ScreenPtr pScreen) Bool imxExaOffscreenInit (ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ImxPtr imxPtr = IMXPTR(pScrn); ImxExaPtr imxExaPtr = IMXEXAPTR(imxPtr); ExaOffscreenArea *area; @@ -453,7 +453,7 @@ imxExaOffscreenInit (ScreenPtr pScreen) void imxExaOffscreenFini (ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ImxPtr imxPtr = IMXPTR(pScrn); ImxExaPtr imxExaPtr = IMXEXAPTR(imxPtr); ExaOffscreenArea *area; @@ -472,7 +472,7 @@ imxExaOffscreenFini (ScreenPtr pScreen) void imxExaOffscreenSwapOut (ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ImxPtr imxPtr = IMXPTR(pScrn); ImxExaPtr imxExaPtr = IMXEXAPTR(imxPtr); diff --git a/src/imx_exa_z160.c b/src/imx_exa_z160.c index fb718e0..3d0bc96 100644 --- a/src/imx_exa_z160.c +++ b/src/imx_exa_z160.c @@ -32,6 +32,7 @@ #include #include +#include "compat-api.h" /* Set if handles pixmap allocation and migration, i.e, EXA_HANDLES_PIXMAPS */ #define IMX_EXA_ENABLE_HANDLES_PIXMAPS \ @@ -299,7 +300,7 @@ imxExaZ160GetPixmapAddress(PixmapPtr pPixmap) return fPixmapPtr->ptr; #else /* Access screen associated with this pixmap. */ - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); /* Access driver specific data */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -344,7 +345,7 @@ imxExaZ160GetPixmapProperties( #else /* Access screen associated with this pixmap. */ - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); /* Make sure pixmap is in framebuffer */ if (!exaDrawableIsOffscreen(&(pPixmap->drawable))) { @@ -856,7 +857,7 @@ imxExaZ160SyncIfBusyPixmap(PixmapPtr pPixmap) { /* Access screen associated with this pixmap. */ ScreenPtr pScreen = pPixmap->drawable.pScreen; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); /* Access driver specific data for screen. */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -924,7 +925,7 @@ imxExaZ160CreatePixmap2(ScreenPtr pScreen, int width, int height, } /* Access the driver specific data. */ - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ImxPtr imxPtr = IMXPTR(pScrn); ImxExaZ160Ptr fPtr = IMXEXAZ160PTR(imxPtr); @@ -1028,7 +1029,7 @@ imxExaZ160DestroyPixmap(ScreenPtr pScreen, void *driverPriv) ImxExaPixmapPtr fPixmapPtr = (ImxExaPixmapPtr)driverPriv; /* Access the driver specific data. */ - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ImxPtr imxPtr = IMXPTR(pScrn); ImxExaZ160Ptr fPtr = IMXEXAZ160PTR(imxPtr); @@ -1068,7 +1069,7 @@ imxExaZ160ModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, } /* Access screen associated with this pixmap */ - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); /* Access driver specific data */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -1194,7 +1195,7 @@ imxExaZ160TrackBusyPixmap(ImxExaZ160Ptr fPtr, PixmapPtr pPixmap) static void imxExaZ160WaitMarker(ScreenPtr pScreen, int marker) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); /* Access driver specific data associated with the screen. */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -1249,7 +1250,7 @@ imxExaZ160PrepareSolid(PixmapPtr pPixmap, int alu, Pixel planemask, Pixel fg) } /* Access screen associated with this pixmap */ - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); /* Access driver specific data */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -1352,7 +1353,7 @@ static void imxExaZ160Solid(PixmapPtr pPixmap, int x1, int y1, int x2, int y2) { /* Access screen associated with this pixmap */ - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); /* Access driver specific data */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -1423,7 +1424,7 @@ static void imxExaZ160DoneSolid(PixmapPtr pPixmap) { /* Access screen associated with this pixmap */ - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); /* Access driver specific data */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -1485,7 +1486,7 @@ imxExaZ160PrepareCopy( } /* Access the screen associated with this pixmap. */ - ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); /* Access driver specific data */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -1599,7 +1600,7 @@ static void imxExaZ160Copy(PixmapPtr pPixmapDst, int srcX, int srcY, int dstX, int dstY, int width, int height) { /* Access screen associated with dst pixmap */ - ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); /* Access driver specific data */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -1661,7 +1662,7 @@ static void imxExaZ160DoneCopy(PixmapPtr pPixmapDst) { /* Access screen associated with this pixmap */ - ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); /* Access driver specific data */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -1770,7 +1771,7 @@ imxExaZ160CheckComposite(int op, PicturePtr pPictureSrc, PicturePtr pPictureMask } /* Access screen associated with dst pixmap (same screen as for src pixmap). */ - ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); /* Check the number of entities, and fail if it isn't one. */ if (pScrn->numEntities != 1) { @@ -1987,7 +1988,7 @@ imxExaZ160PrepareComposite( { /* Access screen associated with dst pixmap. */ /* Should be same screen as for src pixmap. */ - ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); /* NOTE - many preconditions already verified in CheckComposite. */ @@ -2196,7 +2197,7 @@ imxExaZ160Composite( int height) { /* Access screen associated with dst pixmap */ - ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); /* Access driver specific data */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -2275,7 +2276,7 @@ static void imxExaZ160DoneComposite(PixmapPtr pPixmapDst) { /* Access screen associated with this pixmap */ - ScrnInfoPtr pScrn = xf86Screens[pPixmapDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmapDst->drawable.pScreen); /* Access driver specific data */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -2323,7 +2324,7 @@ imxExaZ160UploadToScreen( /* Access screen associated with this pixmap */ ScreenPtr pScreen = pPixmapDst->drawable.pScreen; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); /* Access driver specific data */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -2381,7 +2382,7 @@ imxExaZ160DownloadFromScreen( /* Access screen associated with this pixmap */ ScreenPtr pScreen = pPixmapSrc->drawable.pScreen; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); /* Access driver specific data */ ImxPtr imxPtr = IMXPTR(pScrn); @@ -2412,9 +2413,9 @@ imxExaZ160DownloadFromScreen( } Bool -imxExaZ160CloseScreen(int scrnIndex, ScreenPtr pScreen) +imxExaZ160CloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + CLOSE_SCREEN_DECL_ScrnInfoPtr; ImxPtr imxPtr = IMXPTR(pScrn); ImxExaZ160Ptr fPtr = IMXEXAZ160PTR(imxPtr); @@ -2504,7 +2505,7 @@ imxExaZ160CloseScreen(int scrnIndex, ScreenPtr pScreen) /* Install our CloseScreen function so that it gets called. */ if (NULL != pScreen->CloseScreen) { - return (*pScreen->CloseScreen)(scrnIndex, pScreen); + return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS); } return TRUE; @@ -2514,7 +2515,7 @@ Bool imxExaZ160Setup(int scrnIndex, ScreenPtr pScreen) { /* Access the screen info and then private data structures. */ - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ImxPtr imxPtr = IMXPTR(pScrn); /* Private data structure must not already be in use. */ @@ -2582,7 +2583,7 @@ imxExaZ160Setup(int scrnIndex, ScreenPtr pScreen) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Initialize Z160 interfaces failed.\n"); - imxExaZ160CloseScreen(scrnIndex, pScreen); + imxExaZ160CloseScreen(CLOSE_SCREEN_ARGS); return FALSE; } @@ -2592,7 +2593,7 @@ imxExaZ160Setup(int scrnIndex, ScreenPtr pScreen) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Allocate EXA driver structure.\n"); - imxExaZ160CloseScreen(scrnIndex, pScreen); + imxExaZ160CloseScreen(CLOSE_SCREEN_ARGS); return FALSE; } @@ -2657,7 +2658,7 @@ imxExaZ160Setup(int scrnIndex, ScreenPtr pScreen) if (!exaDriverInit(pScreen, exaDriverPtr)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "EXA initialization failed.\n"); - imxExaZ160CloseScreen(scrnIndex, pScreen); + imxExaZ160CloseScreen(CLOSE_SCREEN_ARGS); return FALSE; } fPtr->imxExaRec.exaDriverPtr = exaDriverPtr; diff --git a/src/imx_xv_ipu.c b/src/imx_xv_ipu.c index a517742..fc8a827 100644 --- a/src/imx_xv_ipu.c +++ b/src/imx_xv_ipu.c @@ -398,7 +398,7 @@ xf86XVFillKeyHelper1 (ScreenPtr pScreen, CARD32 key, RegionPtr clipboxes) xRectangle *rects; GCPtr gc; - if(!xf86Screens[pScreen->myNum]->vtSema) return; + if(!xf86ScreenToScrn(pScreen)->vtSema) return; gc = GetScratchGC(root->depth, pScreen); pval[0] = key; @@ -771,7 +771,7 @@ MXXVInitializeAdaptor XF86VideoAdaptorPtr **pppAdaptor ) { - ScreenPtr pScreen = screenInfo.screens[pScreenInfo->scrnIndex]; + ScreenPtr pScreen = xf86ScrnToScreen(pScreenInfo); XF86VideoAdaptorPtr *ppAdaptor = NULL; IMXPtr fPtr = IMXPTR(pScreenInfo); int nAdaptor; -- 1.7.10.4 ================================================ FILE: package/x11r7/xdriver_xf86-video-imx/0005-xf86-video-imxfb-fix-m4-hardcodded-paths.patch ================================================ From 5b348e7be67957f4be6fcfa4942128c04f6db905 Mon Sep 17 00:00:00 2001 From: Adrian Alonso Date: Thu, 4 Aug 2011 14:24:26 -0500 Subject: [PATCH] xf86-video-imxfb: fix m4 hardcodded paths * Fix m4 macros lookup location; remove /usr/share/aclocal path Signed-off-by: Adrian Alonso --- Makefile.am | 2 +- Makefile.in | 2 +- configure.ac | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index 6752256..e205657 100644 --- a/Makefile.am +++ b/Makefile.am @@ -20,4 +20,4 @@ AUTOMAKE_OPTIONS = foreign SUBDIRS = src -ACLOCAL_AMFLAGS = -I /usr/share/aclocal +ACLOCAL_AMFLAGS = -I m4 diff --git a/Makefile.in b/Makefile.in index 5c0ba0e..f829db7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -243,7 +243,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign SUBDIRS = src -ACLOCAL_AMFLAGS = -I /usr/share/aclocal +ACLOCAL_AMFLAGS = -I m4 all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive diff --git a/configure.ac b/configure.ac index a1ac73b..0078b86 100644 --- a/configure.ac +++ b/configure.ac @@ -29,7 +29,7 @@ AC_INIT([xf86-video-imx], AC_CONFIG_SRCDIR([Makefile.am]) AM_CONFIG_HEADER([config.h]) AC_CONFIG_AUX_DIR(.) -AC_CONFIG_MACRO_DIR([/usr/share/aclocal]) +AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([dist-bzip2]) -- 1.7.4.1 ================================================ FILE: package/x11r7/xdriver_xf86-video-imx/0006-xserver-1.14-compat.patch ================================================ Fix building using new Xorg 1.14 mibstore functions are no longer supported. This patch removes them from this driver, following the pattern in http://patches.openembedded.org/patch/46133/ This checkin shows when/where the changes to the X server were made that deleted the header mibstore.h and mentions the reasons. http://lists.x.org/archives/xorg-devel/2012-September/033575.html Upstream-Status: Pending Signed-off-by: Otavio Salvador Index: xserver-xorg-video-imx-11.09.01/src/imx_driver.c =================================================================== --- xserver-xorg-video-imx-11.09.01.orig/src/imx_driver.c +++ xserver-xorg-video-imx-11.09.01/src/imx_driver.c @@ -37,7 +37,6 @@ #include "xf86_OSproc.h" #include "mipointer.h" -#include "mibstore.h" #include "micmap.h" #include "colormapst.h" #include "xf86cmap.h" @@ -722,7 +721,6 @@ imxScreenInit(SCREEN_INIT_ARGS_DECL) /* Initialize for X extensions. */ imxExtInit(); - miInitializeBackingStore(pScreen); xf86SetBackingStore(pScreen); /* software cursor */ ================================================ FILE: package/x11r7/xdriver_xf86-video-imx/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX bool "xf86-video-imx" depends on BR2_ARM_EABI # libz160 depends on BR2_TOOLCHAIN_USES_GLIBC # libz160 depends on BR2_LINUX_KERNEL # linux/mxcfb.h depends on BR2_PACKAGE_GPU_AMD_BIN_MX51_OUTPUT_X11 select BR2_PACKAGE_LIBZ160 select BR2_PACKAGE_XORGPROTO help X.Org driver for iMX5 GPU To use this driver, add the correct configuration to your /etc/X11/xorg.conf, as follows: Section "Device" [...] Driver "imx" Option "fbdev" "/dev/fb0" EndSection comment "xf86-video-imx needs an EABI toolchain w/ glibc" depends on BR2_arm depends on !BR2_ARM_EABI || !BR2_TOOLCHAIN_USES_GLIBC comment "xf86-video-imx needs gpu-amd-bin-mx51 with X11 output and a Linux kernel to be built" depends on BR2_arm depends on !BR2_LINUX_KERNEL || !BR2_PACKAGE_GPU_AMD_BIN_MX51_OUTPUT_X11 ================================================ FILE: package/x11r7/xdriver_xf86-video-imx/xdriver_xf86-video-imx.hash ================================================ # locally computed sha256 d7d85e9f13c6dd58addab89847f3a8a67f6382a54135c7978c9a95368af024d4 xserver-xorg-video-imx-11.09.01.tar.gz ================================================ FILE: package/x11r7/xdriver_xf86-video-imx/xdriver_xf86-video-imx.mk ================================================ ################################################################################ # # xdriver_xf86-video-imx # ################################################################################ XDRIVER_XF86_VIDEO_IMX_VERSION = 11.09.01 XDRIVER_XF86_VIDEO_IMX_SOURCE = xserver-xorg-video-imx-$(XDRIVER_XF86_VIDEO_IMX_VERSION).tar.gz XDRIVER_XF86_VIDEO_IMX_SITE = $(FREESCALE_IMX_SITE) XDRIVER_XF86_VIDEO_IMX_DEPENDENCIES = linux libz160 xserver_xorg-server \ xorgproto XDRIVER_XF86_VIDEO_IMX_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -I$(LINUX_DIR)/include" $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-imx-viv/Config.in ================================================ 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_PACKAGE_IMX_GPU_G2D 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 select BR2_PACKAGE_XORGPROTO help X.Org driver for iMX6 GPU (Vivante) Notice EGL and GLes2 APIs are correctly supported. This driver should also be able to provide Desktop OpenGL implementation but, this feature seems broken since quite some time. To use this driver, add correct configuration to your /etc/X11/xorg.conf: Section "Device" [...] Driver "vivante" Option "vivante_fbdev" "/dev/fbX" EndSection Don't forget to load galcore.ko and create /dev/galcore before using this driver (else, Xorg will exit with an obscur message like "Segmentation fault at address 0xc"). 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 comment "xf86-video-imx-viv depends on imx-gpu-g2d" depends on BR2_arm depends on !BR2_PACKAGE_IMX_GPU_G2D depends on BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11 depends on BR2_TOOLCHAIN_HAS_SYNC_1 ================================================ FILE: package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.hash ================================================ # Locally calculated sha256 638a8aa8b64f860900d003527529689bc342d18ff5e41a9e1750884544898e67 xdriver_xf86-video-imx-viv-rel_imx_4.9.x_1.0.0_ga-br1.tar.gz sha256 9d3e373f0440cc0c58853e963636a7c1ffda9308ec5f30ebe9adfb9c16a8a1e4 COPYING-MIT ================================================ FILE: package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk ================================================ ################################################################################ # # xdriver_xf86-video-imx-viv # ################################################################################ XDRIVER_XF86_VIDEO_IMX_VIV_VERSION = rel_imx_4.9.x_1.0.0_ga XDRIVER_XF86_VIDEO_IMX_VIV_SITE = https://source.codeaurora.org/external/imx/xf86-video-imx-vivante XDRIVER_XF86_VIDEO_IMX_VIV_SITE_METHOD = git XDRIVER_XF86_VIDEO_IMX_VIV_DEPENDENCIES = imx-gpu-viv imx-gpu-g2d xserver_xorg-server \ xorgproto libdrm 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 define XDRIVER_XF86_VIDEO_IMX_VIV_BUILD_CMDS $(XDRIVER_XF86_VIDEO_IMX_VIV_MAKE_CMD) sysroot=$(STAGING_DIR) \ BUSID_HAS_NUMBER=1 BUILD_IN_YOCTO=1 XSERVER_GREATER_THAN_13=1 \ CFLAGS="$(TARGET_CFLAGS)" endef define XDRIVER_XF86_VIDEO_IMX_VIV_INSTALL_STAGING_CMDS $(XDRIVER_XF86_VIDEO_IMX_VIV_MAKE_CMD) prefix=$(STAGING_DIR)/usr install $(INSTALL) -D -m 644 $(@D)/EXA/src/vivante_gal/vivante_priv.h \ $(STAGING_DIR)/usr/include/vivante_priv.h $(INSTALL) -D -m 644 $(@D)/EXA/src/vivante_gal/vivante_gal.h \ $(STAGING_DIR)/usr/include/vivante_gal.h endef define XDRIVER_XF86_VIDEO_IMX_VIV_INSTALL_TARGET_CMDS $(XDRIVER_XF86_VIDEO_IMX_VIV_MAKE_CMD) prefix=$(TARGET_DIR)/usr install endef $(eval $(generic-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-intel/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL bool "xf86-video-intel" depends on (BR2_i386 || BR2_x86_64) select BR2_PACKAGE_LIBPCIACCESS select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBDRM_INTEL select BR2_PACKAGE_XLIB_LIBXRANDR select BR2_PACKAGE_XORGPROTO help Intel video driver ================================================ FILE: package/x11r7/xdriver_xf86-video-intel/xdriver_xf86-video-intel.hash ================================================ # Locally computed sha256 11f48628d2b1f495446c49df93de40569ced664c6fdbd5d3f8f7a863e4a1124c xdriver_xf86-video-intel-31486f40f8e8f8923ca0799aea84b58799754564-br1.tar.gz sha256 5808e89f4b9a30afc59f335bfa8219ecf2dacb89a81d16b322bc6d92993a48fa COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-intel/xdriver_xf86-video-intel.mk ================================================ ################################################################################ # # xdriver_xf86-video-intel # ################################################################################ XDRIVER_XF86_VIDEO_INTEL_VERSION = 31486f40f8e8f8923ca0799aea84b58799754564 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 # -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 -O2" XDRIVER_XF86_VIDEO_INTEL_CONF_OPTS = \ --disable-xvmc \ --enable-sna \ --disable-xaa \ --disable-dga \ --disable-tools \ --disable-async-swap XDRIVER_XF86_VIDEO_INTEL_DEPENDENCIES = \ libdrm \ libpciaccess \ xlib_libXrandr \ xorgproto \ xserver_xorg-server # X.org server support for DRI depends on a Mesa3D DRI driver ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y) XDRIVER_XF86_VIDEO_INTEL_CONF_OPTS += \ --enable-dri2 \ --enable-dri3 \ --enable-uxa endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-mach64/0001-cross-compile.patch ================================================ --- a/configure.ac 2008-06-23 10:39:28.000000000 -0400 +++ b/configure.ac 2008-06-23 10:40:46.000000000 -0400 @@ -85,14 +85,20 @@ sdkdir=$(pkg-config --variable=sdkdir xo AC_HEADER_STDC if test "$DRI" != no; then - AC_CHECK_FILE([${sdkdir}/dri.h], + if test "$cross_compiling" = "no" ; then + AC_CHECK_FILE([${sdkdir}/dri.h], [have_dri_h="yes"], [have_dri_h="no"]) - AC_CHECK_FILE([${sdkdir}/sarea.h], + AC_CHECK_FILE([${sdkdir}/sarea.h], [have_sarea_h="yes"], [have_sarea_h="no"]) - AC_CHECK_FILE([${sdkdir}/dristruct.h], + AC_CHECK_FILE([${sdkdir}/dristruct.h], [have_dristruct_h="yes"], [have_dristruct_h="no"]) - AC_CHECK_FILE([${sdkdir}/damage.h], + AC_CHECK_FILE([${sdkdir}/damage.h], [have_damage_h="yes"], [have_damage_h="no"]) + else + have_dri_h="yes" + have_sarea_h="yes" + have_dristruct_h="yes" + fi fi AC_MSG_CHECKING([whether to include DRI support]) ================================================ FILE: package/x11r7/xdriver_xf86-video-mach64/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_MACH64 bool "xf86-video-mach64" select BR2_PACKAGE_XORGPROTO help mach64 video driver ================================================ FILE: package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-May/002896.html md5 0e12f9a3b5659e1e27e03adc42b04d99 xf86-video-mach64-6.9.6.tar.bz2 sha1 1fdf0c3488ab88cb46b563efee166a5d54a01932 xf86-video-mach64-6.9.6.tar.bz2 sha256 7a0707c71bb522430f83bb5e9d9ee697e661e35534a3a2d10834f86b327a3c9c xf86-video-mach64-6.9.6.tar.bz2 sha512 687f6ac60491b704d5c4788463763d2f4bf725611e10bd2163156963fe0a8fdbffe0a1b7c737eff131f01759e43b5ec3544a7dabe66a67e85b286dcb969da2f1 xf86-video-mach64-6.9.6.tar.bz2 # Locally computed sha256 a7d68021893bced0d709338a59a137c74b11e624880e110e4a2f14ccef475120 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.mk ================================================ ################################################################################ # # xdriver_xf86-video-mach64 # ################################################################################ XDRIVER_XF86_VIDEO_MACH64_VERSION = 6.9.6 XDRIVER_XF86_VIDEO_MACH64_SOURCE = xf86-video-mach64-$(XDRIVER_XF86_VIDEO_MACH64_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_MACH64_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_MACH64_LICENSE = MIT XDRIVER_XF86_VIDEO_MACH64_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_MACH64_AUTORECONF = YES XDRIVER_XF86_VIDEO_MACH64_DEPENDENCIES = xserver_xorg-server xorgproto ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) XDRIVER_XF86_VIDEO_MACH64_CONF_OPTS = --disable-dri endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-mga/0001-misc-fixes.patch ================================================ --- xf86-video-mga-1.4.9/configure.ac.orig 2007-06-10 11:55:24.000000000 +0200 +++ xf86-video-mga-1.4.9/configure.ac 2007-06-10 12:00:37.000000000 +0200 @@ -77,12 +77,18 @@ AC_HEADER_STDC if test "x$DRI" != xno; then + if test "$cross_compiling" = no; then AC_CHECK_FILE([${sdkdir}/dri.h], [have_dri_h="yes"], [have_dri_h="no"]) AC_CHECK_FILE([${sdkdir}/sarea.h], [have_sarea_h="yes"], [have_sarea_h="no"]) AC_CHECK_FILE([${sdkdir}/dristruct.h], [have_dristruct_h="yes"], [have_dristruct_h="no"]) + else + have_dri_h="yes" + have_sarea_h="yes" + have_dristruct_h="yes" + fi fi AC_MSG_CHECKING([whether to include DRI support]) ================================================ FILE: package/x11r7/xdriver_xf86-video-mga/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_MGA bool "xf86-video-mga" depends on BR2_PACKAGE_MESA3D select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_XORGPROTO help Matrox video driver comment "xf86-video-mga needs mesa3d" depends on !BR2_PACKAGE_MESA3D ================================================ FILE: package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-December/002933.html md5 b8fc99b4adea8bfe80156b13df4b6c9c xf86-video-mga-2.0.0.tar.bz2 sha1 833f2710a1fd7b3f2db3700b2ad055527da5033b xf86-video-mga-2.0.0.tar.bz2 sha256 268946e1a13e9d80e4f724a0740df9e6e8c8bad37697fcbf456924e9fdbb5d79 xf86-video-mga-2.0.0.tar.bz2 sha512 b92006486aef815ff4399f291d610c65d88c0b32a9dae97658c644715ff62b221b01495b5c7a2311745e26f699c1c1f753b81c7bf54cf75567af9f78ac015540 xf86-video-mga-2.0.0.tar.bz2 # Locally computed sha256 6c567575e381478c7616eedff3ea2ae5228a5b54fbdd22d4070ebae312fa085c COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.mk ================================================ ################################################################################ # # xdriver_xf86-video-mga # ################################################################################ XDRIVER_XF86_VIDEO_MGA_VERSION = 2.0.0 XDRIVER_XF86_VIDEO_MGA_SOURCE = xf86-video-mga-$(XDRIVER_XF86_VIDEO_MGA_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_MGA_SITE = http://xorg.freedesktop.org/archive/individual/driver XDRIVER_XF86_VIDEO_MGA_LICENSE = MIT XDRIVER_XF86_VIDEO_MGA_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_MGA_AUTORECONF = YES XDRIVER_XF86_VIDEO_MGA_DEPENDENCIES = xserver_xorg-server libdrm xorgproto ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) XDRIVER_XF86_VIDEO_MGA_CONF_OPTS = --disable-dri endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-neomagic/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_NEOMAGIC bool "xf86-video-neomagic" select BR2_PACKAGE_XORGPROTO help Neomagic video driver ================================================ FILE: package/x11r7/xdriver_xf86-video-neomagic/xdriver_xf86-video-neomagic.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-December/002934.html md5 349d5254d09eb46f2a1f151cd423b89a xf86-video-neomagic-1.3.0.tar.bz2 sha1 6bccfa15ea05d5264120cd96ccf13687642e8f6d xf86-video-neomagic-1.3.0.tar.bz2 sha256 93833950fae7757088eb6abb125e15e8c245e5e25681c19c3ad4213ec7319064 xf86-video-neomagic-1.3.0.tar.bz2 sha512 25d019a2556e52aeb4e25942f444437a921e76d527c10ddd420f16aa7d85bf2b8a51612c382a2a7e3e407bb1e8d610d063101184eea0889c3e1a69bfb3b37735 xf86-video-neomagic-1.3.0.tar.bz2 # Locally computed sha256 95063ce9aa09850025dd317549ce688519079a8d3cf66ceb3d882cb2bafcced9 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-neomagic/xdriver_xf86-video-neomagic.mk ================================================ ################################################################################ # # xdriver_xf86-video-neomagic # ################################################################################ XDRIVER_XF86_VIDEO_NEOMAGIC_VERSION = 1.3.0 XDRIVER_XF86_VIDEO_NEOMAGIC_SOURCE = xf86-video-neomagic-$(XDRIVER_XF86_VIDEO_NEOMAGIC_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_NEOMAGIC_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_NEOMAGIC_LICENSE = MIT XDRIVER_XF86_VIDEO_NEOMAGIC_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_NEOMAGIC_DEPENDENCIES = xserver_xorg-server xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-nouveau/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_NOUVEAU bool "xf86-video-nouveau" depends on BR2_PACKAGE_MESA3D select BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBDRM_NOUVEAU select BR2_PACKAGE_XORGPROTO help Nouveau video driver http://nouveau.freedesktop.org comment "xf86-video-nouveau needs mesa3d" depends on !BR2_PACKAGE_MESA3D ================================================ FILE: package/x11r7/xdriver_xf86-video-nouveau/xdriver_xf86-video-nouveau.hash ================================================ # From https://lists.freedesktop.org/archives/nouveau/2021-January/037766.html sha256 499322e27a55c8183166bf2dd1e47d085eb834143e0d7036baba8427b90c156b xf86-video-nouveau-1.0.17.tar.bz2 sha512 adba58ba5298d1a5b3f9f8540f9ef2cb2e10e47bba8e374103ec2e1f92e915f5f4393ed0021168cd649646e12315135a1efcdf77e8fb1648e1295914d87279b2 xf86-video-nouveau-1.0.17.tar.bz2 # Locally computed sha256 27d8cbdcde7a0bd062ce49cdf8c672201452a64e3e6823f09b1beffe2c4b8eff COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-nouveau/xdriver_xf86-video-nouveau.mk ================================================ ################################################################################ # # xdriver_xf86-video-nouveau # ################################################################################ XDRIVER_XF86_VIDEO_NOUVEAU_VERSION = 1.0.17 XDRIVER_XF86_VIDEO_NOUVEAU_SOURCE = xf86-video-nouveau-$(XDRIVER_XF86_VIDEO_NOUVEAU_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_NOUVEAU_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_NOUVEAU_LICENSE = MIT XDRIVER_XF86_VIDEO_NOUVEAU_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_NOUVEAU_DEPENDENCIES = \ host-pkgconf \ libdrm \ xorgproto \ xserver_xorg-server # xdriver_xf86-video-nouveau requires O_CLOEXEC XDRIVER_XF86_VIDEO_NOUVEAU_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-nv/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_NV bool "xf86-video-nv" select BR2_PACKAGE_XORGPROTO help NVIDIA video driver ================================================ FILE: package/x11r7/xdriver_xf86-video-nv/xdriver_xf86-video-nv.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2017-January/002761.html sha256 1f98649e6ff0e8214b9d5dcac661f1d004be8e73823d8247b9c7025fd81db32d xf86-video-nv-2.1.21.tar.bz2 # Locally calculated sha256 10d10e1ec37594d481c3de8dda22a40b731ebd43be7ccd462baaa7394738a9f3 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-nv/xdriver_xf86-video-nv.mk ================================================ ################################################################################ # # xdriver_xf86-video-nv # ################################################################################ XDRIVER_XF86_VIDEO_NV_VERSION = 2.1.21 XDRIVER_XF86_VIDEO_NV_SOURCE = xf86-video-nv-$(XDRIVER_XF86_VIDEO_NV_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_NV_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_NV_LICENSE = MIT XDRIVER_XF86_VIDEO_NV_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_NV_DEPENDENCIES = xserver_xorg-server xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-openchrome/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_OPENCHROME bool "xf86-video-openchrome" depends on BR2_PACKAGE_MESA3D_DRI_DRIVER select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXCOMPOSITE select BR2_PACKAGE_XLIB_LIBXVMC select BR2_PACKAGE_XORGPROTO help 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 a DRI driver from mesa3d" depends on !BR2_PACKAGE_MESA3D_DRI_DRIVER ================================================ FILE: package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2017-March/002781.html md5 c87f164739729b00f7e1a9934420c22d xf86-video-openchrome-0.6.0.tar.bz2 sha1 2077181ded4d86e9cbe6d3e9b1245339692e848d xf86-video-openchrome-0.6.0.tar.bz2 sha256 da2975c6379358de52c1257710c67eb59139a7f0a1cd28d00cc64cc3e1c02f75 xf86-video-openchrome-0.6.0.tar.bz2 # Locally computed sha256 1fde58bce5cff8c32e9a0a80bfa3e60213a2767954e30a367127d5afa2884ca2 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.mk ================================================ ################################################################################ # # xdriver_xf86-video-openchrome # ################################################################################ XDRIVER_XF86_VIDEO_OPENCHROME_VERSION = 0.6.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 XDRIVER_XF86_VIDEO_OPENCHROME_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_OPENCHROME_DEPENDENCIES = \ xserver_xorg-server \ libdrm \ xlib_libX11 \ xlib_libXcomposite \ xlib_libXvMC \ xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-qxl/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_QXL bool "xf86-video-qxl" depends on (BR2_i386 || BR2_x86_64) select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_HAS_UDEV # for KMS select BR2_PACKAGE_LIBPCIACCESS select BR2_PACKAGE_SPICE_PROTOCOL select BR2_PACKAGE_XLIB_LIBXFONT2 if !BR2_PACKAGE_XLIB_LIBXFONT select BR2_PACKAGE_XORGPROTO help QEMU QXL paravirt video driver http://www.spice-space.org/page/XorgQXL ================================================ FILE: package/x11r7/xdriver_xf86-video-qxl/xdriver_xf86-video-qxl.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2016-December/002753.html sha256 b18682e04503c6326f7bf7190f3ee50a3d4d69758a2a3cc9af102a6b3f114c92 xf86-video-qxl-0.1.5.tar.bz2 # Locally calculated sha256 83f3bf7be3fbf5e66174b8184bd837a6b44264f8e340126ea4d9e9ce956a1866 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-qxl/xdriver_xf86-video-qxl.mk ================================================ ################################################################################ # # xdriver_xf86-video-qxl # ################################################################################ XDRIVER_XF86_VIDEO_QXL_VERSION = 0.1.5 XDRIVER_XF86_VIDEO_QXL_SOURCE = xf86-video-qxl-$(XDRIVER_XF86_VIDEO_QXL_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_QXL_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_QXL_LICENSE = MIT XDRIVER_XF86_VIDEO_QXL_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_QXL_CONF_OPTS = \ --enable-xspice=no XDRIVER_XF86_VIDEO_QXL_DEPENDENCIES = \ libpciaccess \ spice-protocol \ xorgproto \ xserver_xorg-server # configure doesn't look for drm headers in the appropiate place, so help it # libdrm is only useful with udev for KMS ifeq ($(BR2_PACKAGE_HAS_UDEV),y) XDRIVER_XF86_VIDEO_QXL_CONF_ENV += REQUIRED_MODULES=libdrm XDRIVER_XF86_VIDEO_QXL_DEPENDENCIES += libdrm else XDRIVER_XF86_VIDEO_QXL_CONF_OPTS += --disable-kms endif ifeq ($(BR2_PACKAGE_XLIB_LIBXFONT2),y) XDRIVER_XF86_VIDEO_QXL_DEPENDENCIES += xlib_libXfont2 else XDRIVER_XF86_VIDEO_QXL_DEPENDENCIES += xlib_libXfont endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-r128/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_R128 bool "xf86-video-r128" select BR2_PACKAGE_XORGPROTO help R128 video driver ================================================ FILE: package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-October/002926.html md5 105ebcfe1bac06fe84645ac3def91184 xf86-video-r128-6.12.0.tar.bz2 sha1 7cfa41d386fa43b5d30299203e4845d8afba4899 xf86-video-r128-6.12.0.tar.bz2 sha256 801c86882cbd2bbb3084d471dcc5cfee2c1754dcbfb4dc446676d58a6bd9e057 xf86-video-r128-6.12.0.tar.bz2 sha512 0e667e2cfa8a87a00846361d86528c93754c403c812b66798953fa4c857b2143b2c4c44885da467e7f910d8cb910b69492cdcb6f25e2197bae6617364d152e38 xf86-video-r128-6.12.0.tar.bz2 # Locally computed sha256 69f7c71859dc8f51aabdbe7a9ee915a480933eb81658f8af2bf4c918e65afe8b COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.mk ================================================ ################################################################################ # # xdriver_xf86-video-r128 # ################################################################################ XDRIVER_XF86_VIDEO_R128_VERSION = 6.12.0 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 XDRIVER_XF86_VIDEO_R128_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_R128_DEPENDENCIES = xserver_xorg-server xorgproto ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) XDRIVER_XF86_VIDEO_R128_CONF_OPTS = --disable-dri endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-savage/0001-cross-compile.patch ================================================ --- a/configure.ac 2008-05-21 16:04:23.000000000 -0400 +++ b/configure.ac 2008-06-23 11:41:50.000000000 -0400 @@ -68,12 +68,18 @@ sdkdir=$(pkg-config --variable=sdkdir xo AC_HEADER_STDC if test "$DRI" != no; then - AC_CHECK_FILE([${sdkdir}/dri.h], - [have_dri_h="yes"], [have_dri_h="no"]) - AC_CHECK_FILE([${sdkdir}/sarea.h], - [have_sarea_h="yes"], [have_sarea_h="no"]) - AC_CHECK_FILE([${sdkdir}/dristruct.h], - [have_dristruct_h="yes"], [have_dristruct_h="no"]) + if test "$cross_compiling" = "no" ; then + AC_CHECK_FILE([${sdkdir}/dri.h], + [have_dri_h="yes"], [have_dri_h="no"]) + AC_CHECK_FILE([${sdkdir}/sarea.h], + [have_sarea_h="yes"], [have_sarea_h="no"]) + AC_CHECK_FILE([${sdkdir}/dristruct.h], + [have_dristruct_h="yes"], [have_dristruct_h="no"]) + else + have_dri_h="yes" + have_sarea_h="yes" + have_dristruct_h="yes" + fi fi AC_MSG_CHECKING([whether to include DRI support]) ================================================ FILE: package/x11r7/xdriver_xf86-video-savage/0002-xorg-xserver120.patch ================================================ Fix build with modular-xorg-server-1.20 Downloaded from http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/x11/xf86-video-savage/patches/patch-src_savage__driver.c?rev=1.3&content-type=text/x-cvsweb-markup Patch was sent upstream by Thomas Klausner : https://lists.x.org/archives/xorg-devel/2018-May/056952.html Signed-off-by: Bernd Kuhls --- a/src/savage_driver.c.orig 2017-01-17 22:43:40.000000000 +0000 +++ b/src/savage_driver.c @@ -2034,8 +2034,10 @@ static Bool SavagePreInit(ScrnInfoPtr pS xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Detected current MCLK value of %1.3f MHz\n", mclk / 1000.0); +#if 0 pScrn->maxHValue = 2048 << 3; /* 11 bits of h_total 8-pixel units */ pScrn->maxVValue = 2048; /* 11 bits of v_total */ +#endif pScrn->virtualX = pScrn->display->virtualX; pScrn->virtualY = pScrn->display->virtualY; ================================================ FILE: package/x11r7/xdriver_xf86-video-savage/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_SAVAGE bool "xf86-video-savage" depends on BR2_PACKAGE_MESA3D select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_XORGPROTO help S3 Savage video driver comment "xf86-video-savage needs mesa3d" depends on !BR2_PACKAGE_MESA3D ================================================ FILE: package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2017-January/002760.html sha256 2c93c4db1f71e725dda0caee5821253129d4b52d7aa0fd720593e7769bceec86 xf86-video-savage-2.3.9.tar.bz2 # Locally calculated sha256 611f4020815e3d5011a39a58f0958262715cd3becd9cb1ef14cc166fd84ec5a6 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.mk ================================================ ################################################################################ # # xdriver_xf86-video-savage # ################################################################################ XDRIVER_XF86_VIDEO_SAVAGE_VERSION = 2.3.9 XDRIVER_XF86_VIDEO_SAVAGE_SOURCE = xf86-video-savage-$(XDRIVER_XF86_VIDEO_SAVAGE_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_SAVAGE_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_SAVAGE_LICENSE = MIT XDRIVER_XF86_VIDEO_SAVAGE_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_SAVAGE_AUTORECONF = YES XDRIVER_XF86_VIDEO_SAVAGE_DEPENDENCIES = xserver_xorg-server libdrm xorgproto ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) XDRIVER_XF86_VIDEO_SAVAGE_CONF_OPTS = --disable-dri endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-siliconmotion/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_SILICONMOTION bool "xf86-video-siliconmotion" select BR2_PACKAGE_XORGPROTO help Silicon Motion video driver ================================================ FILE: package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2017-January/002763.html sha256 d0f3c691e71108d27a061beb62bf78b36ec35bd755905692734dd68cfb3359bc xf86-video-siliconmotion-1.7.9.tar.bz2 # Locally calculated sha256 e1e3ce7ce1f63fff96444206e09c8490ad7a4af7457c81ea6cdee4f1fee1f960 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.mk ================================================ ################################################################################ # # xdriver_xf86-video-siliconmotion # ################################################################################ XDRIVER_XF86_VIDEO_SILICONMOTION_VERSION = 1.7.9 XDRIVER_XF86_VIDEO_SILICONMOTION_SOURCE = xf86-video-siliconmotion-$(XDRIVER_XF86_VIDEO_SILICONMOTION_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_SILICONMOTION_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_SILICONMOTION_LICENSE = MIT XDRIVER_XF86_VIDEO_SILICONMOTION_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_SILICONMOTION_DEPENDENCIES = xserver_xorg-server xorgproto XDRIVER_XF86_VIDEO_SILICONMOTION_CONF_OPTS = --disable-selective-werror $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-sis/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_SIS bool "xf86-video-sis" depends on BR2_PACKAGE_MESA3D select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_XORGPROTO help SiS and XGI video driver comment "xf86-video-sis needs mesa3d" depends on !BR2_PACKAGE_MESA3D ================================================ FILE: package/x11r7/xdriver_xf86-video-sis/xdriver_xf86-video-sis.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-December/003033.html md5 b8ec9c21758043b1480f11baec296f5d xf86-video-sis-0.12.0.tar.bz2 sha1 d22f0d0081e222a62f9e788f5e73246c6d339f80 xf86-video-sis-0.12.0.tar.bz2 sha256 119d3f17d53c862ec4bf891ed696a6f1d32cdf8bd11d944a9f0ad24625333a5b xf86-video-sis-0.12.0.tar.bz2 sha512 5aa101e5217f15667f2c94f7a76f4afcf47717b61f5d206ce65efe35dc3f674ca294f98ca8586971c6467f31decdd94d8255ebfc7dc220fac0179afc61995952 xf86-video-sis-0.12.0.tar.bz2 # Locally computed sha256 e7958f9497a4daa3ae5aeaf885e4565520af2c540b6e4e04b52bf95d41d56c39 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-sis/xdriver_xf86-video-sis.mk ================================================ ################################################################################ # # xdriver_xf86-video-sis # ################################################################################ XDRIVER_XF86_VIDEO_SIS_VERSION = 0.12.0 XDRIVER_XF86_VIDEO_SIS_SOURCE = xf86-video-sis-$(XDRIVER_XF86_VIDEO_SIS_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_SIS_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_SIS_LICENSE = MIT XDRIVER_XF86_VIDEO_SIS_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_SIS_DEPENDENCIES = xserver_xorg-server libdrm xorgproto ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) XDRIVER_XF86_VIDEO_SIS_CONF_OPTS += --disable-dri endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-tdfx/0001-cross.patch ================================================ --- xf86-video-tdfx-1.3.0/configure.ac.orig 2007-06-10 21:01:54.000000000 +0200 +++ xf86-video-tdfx-1.3.0/configure.ac 2007-06-10 21:02:06.000000000 +0200 @@ -67,13 +67,20 @@ # Checks for header files. AC_HEADER_STDC -if test "$DRI" != no; then +if test "x$DRI" != xno; then + if test "$cross_compiling" = "no" ; then AC_CHECK_FILE([${sdkdir}/dri.h], [have_dri_h="yes"], [have_dri_h="no"]) AC_CHECK_FILE([${sdkdir}/sarea.h], [have_sarea_h="yes"], [have_sarea_h="no"]) AC_CHECK_FILE([${sdkdir}/dristruct.h], [have_dristruct_h="yes"], [have_dristruct_h="no"]) + AC_CHECK_HEADER + else + have_dri_h="yes" + have_sarea_h="yes" + have_dristruct_h="yes" + fi fi AC_MSG_CHECKING([whether to include DRI support]) ================================================ FILE: package/x11r7/xdriver_xf86-video-tdfx/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_TDFX bool "xf86-video-tdfx" depends on BR2_PACKAGE_MESA3D select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_XORGPROTO help 3Dfx video driver comment "xf86-video-tdfx needs mesa3d" depends on !BR2_PACKAGE_MESA3D ================================================ FILE: package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-February/002944.html md5 4697f0cc69ff1ff90bc770863c158d29 xf86-video-tdfx-1.5.0.tar.bz2 sha1 8042dd0c2bc5a396b2cfeb5418b03059a089be25 xf86-video-tdfx-1.5.0.tar.bz2 sha256 2f4580e1f66901dd578d6e1f73df8150fd4b8480eb0c9653d4c5d8e0f8e78561 xf86-video-tdfx-1.5.0.tar.bz2 sha512 eca3359c7db56183a1cfcce7295e41ccc349005ee1cbcf75209f1e4e8e04e887ba511712ef35efc11c940713c8327b0b8ab8b6c86facf02062b3e84c0b1af5ff xf86-video-tdfx-1.5.0.tar.bz2 # Locally computed sha256 5bb3d3baff0b7bbef885215ca9c12a5be1a42c848c96601b699637557fbb41ec COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.mk ================================================ ################################################################################ # # xdriver_xf86-video-tdfx # ################################################################################ XDRIVER_XF86_VIDEO_TDFX_VERSION = 1.5.0 XDRIVER_XF86_VIDEO_TDFX_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_TDFX_SOURCE = xf86-video-tdfx-$(XDRIVER_XF86_VIDEO_TDFX_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_TDFX_LICENSE = MIT XDRIVER_XF86_VIDEO_TDFX_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_TDFX_AUTORECONF = YES XDRIVER_XF86_VIDEO_TDFX_DEPENDENCIES = \ libdrm \ xorgproto \ xserver_xorg-server ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) XDRIVER_XF86_VIDEO_TDFX_CONF_OPTS = --disable-dri endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-tga/0001-mibstore.patch ================================================ From b7022db0559cd1b6cd3eb6b5abf6896a607b478d Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 25 Sep 2012 12:55:00 +0000 Subject: Remove mibstore.h Signed-off-by: Adam Jackson --- Fetch from: http://cgit.freedesktop.org/xorg/driver/xf86-video-tga/commit/?id=b7022db0559cd1b6cd3eb6b5abf6896a607b478d Signed-off-by: Bernd Kuhls diff --git a/src/tga_accel.c b/src/tga_accel.c index 35af1a4..b414df5 100644 --- a/src/tga_accel.c +++ b/src/tga_accel.c @@ -37,7 +37,6 @@ #include "xf86cmap.h" #include "mipointer.h" -#include "mibstore.h" #include "miline.h" #include "tga_regs.h" diff --git a/src/tga_driver.c b/src/tga_driver.c index dd4f3e6..90d2660 100644 --- a/src/tga_driver.c +++ b/src/tga_driver.c @@ -46,8 +46,6 @@ /* software cursor */ #include "mipointer.h" -/* backing store */ -#include "mibstore.h" /* #include "mibank.h" */ /* colormap manipulation */ @@ -1451,7 +1449,6 @@ TGAScreenInit(SCREEN_INIT_ARGS_DECL) fbPictureInit (pScreen, 0, 0); - miInitializeBackingStore(pScreen); xf86SetBackingStore(pScreen); xf86SetSilkenMouse(pScreen); -- cgit v0.9.0.2-2-gbebe ================================================ FILE: package/x11r7/xdriver_xf86-video-tga/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_TGA bool "xf86-video-tga" select BR2_PACKAGE_XORGPROTO help X.Org driver for tga cards ================================================ FILE: package/x11r7/xdriver_xf86-video-tga/xdriver_xf86-video-tga.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2012-July/002025.html sha256 2023818000200eb50a59476e36d59b07a361b110e73b1d9cc526beb669306131 xf86-video-tga-1.2.2.tar.bz2 # Locally calculated sha256 92e36c6b7c99c8335e5823d53686e58ebd82ee8051a6360f60c8c0fb05745954 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-tga/xdriver_xf86-video-tga.mk ================================================ ################################################################################ # # xdriver_xf86-video-tga # ################################################################################ XDRIVER_XF86_VIDEO_TGA_VERSION = 1.2.2 XDRIVER_XF86_VIDEO_TGA_SOURCE = xf86-video-tga-$(XDRIVER_XF86_VIDEO_TGA_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_TGA_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_TGA_LICENSE = MIT XDRIVER_XF86_VIDEO_TGA_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_TGA_DEPENDENCIES = xserver_xorg-server xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-trident/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_TRIDENT bool "xf86-video-trident" select BR2_PACKAGE_XORGPROTO help Trident video driver ================================================ FILE: package/x11r7/xdriver_xf86-video-trident/xdriver_xf86-video-trident.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2017-January/002762.html sha256 9e5119d974c3e2221994542d35e3a0b3426a441869ddd6dd08a84f324856ac3f xf86-video-trident-1.3.8.tar.bz2 # Locally calculated sha256 4f065198c49eac1513b915bc4478152c21119f31a97919a6ea8f3e1d10133d15 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-trident/xdriver_xf86-video-trident.mk ================================================ ################################################################################ # # xdriver_xf86-video-trident # ################################################################################ XDRIVER_XF86_VIDEO_TRIDENT_VERSION = 1.3.8 XDRIVER_XF86_VIDEO_TRIDENT_SOURCE = xf86-video-trident-$(XDRIVER_XF86_VIDEO_TRIDENT_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_TRIDENT_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_TRIDENT_LICENSE = MIT XDRIVER_XF86_VIDEO_TRIDENT_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_TRIDENT_DEPENDENCIES = xserver_xorg-server xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-vesa/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_VESA bool "xf86-video-vesa" select BR2_PACKAGE_XORGPROTO help Generic VESA video driver ================================================ FILE: package/x11r7/xdriver_xf86-video-vesa/xdriver_xf86-video-vesa.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2020-September/003060.html sha256 1f1624f3c73906801ad1bc98335a2cb5676a7a4d18e5374d9a1d18464e54c659 xf86-video-vesa-2.5.0.tar.bz2 sha512 36fd921f54f33eb25966b5f9ea1e1b3e9009965c012c8b9c676686b472111719921b80cf62dafc746058878253e21f0ef341a2ff2d650df22ca1e35e81716a8b xf86-video-vesa-2.5.0.tar.bz2 # Locally computed sha256 bda49ba1e860501c20fd444423bc790f6da4f769561b69acc0cbe5abff9409b6 COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-vesa/xdriver_xf86-video-vesa.mk ================================================ ################################################################################ # # xdriver_xf86-video-vesa # ################################################################################ XDRIVER_XF86_VIDEO_VESA_VERSION = 2.5.0 XDRIVER_XF86_VIDEO_VESA_SOURCE = xf86-video-vesa-$(XDRIVER_XF86_VIDEO_VESA_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_VESA_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_VESA_LICENSE = MIT XDRIVER_XF86_VIDEO_VESA_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_VESA_DEPENDENCIES = xserver_xorg-server xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-vmware/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_VMWARE bool "xf86-video-vmware" depends on BR2_PACKAGE_MESA3D depends on BR2_i386 || BR2_x86_64 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA select BR2_PACKAGE_XORGPROTO help VMware SVGA video driver comment "xf86-video-vmware needs mesa3d" depends on !BR2_PACKAGE_MESA3D ================================================ FILE: package/x11r7/xdriver_xf86-video-vmware/xdriver_xf86-video-vmware.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-May/002895.html md5 08d66d062055080ff699ab4869726ea2 xf86-video-vmware-13.3.0.tar.bz2 sha1 f01335fe6bdb507e749571bfcd69163aed97312a xf86-video-vmware-13.3.0.tar.bz2 sha256 47971924659e51666a757269ad941a059ef5afe7a47b5101c174a6022ac4066c xf86-video-vmware-13.3.0.tar.bz2 sha512 c318de893cae7b2b11e11c1b389ee47478b7c8d1f52c27099dbe453efec28f3e9da449217307a8c2251999eada66312f766996be1a6ead413b8b6dedc42c68ca xf86-video-vmware-13.3.0.tar.bz2 # Locally computed sha256 7e59b8ca2a161855a60561f27ada8dfdbb678733eacdb23423fff6d21f9ad43b COPYING ================================================ FILE: package/x11r7/xdriver_xf86-video-vmware/xdriver_xf86-video-vmware.mk ================================================ ################################################################################ # # xdriver_xf86-video-vmware # ################################################################################ XDRIVER_XF86_VIDEO_VMWARE_VERSION = 13.3.0 XDRIVER_XF86_VIDEO_VMWARE_SOURCE = xf86-video-vmware-$(XDRIVER_XF86_VIDEO_VMWARE_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_VMWARE_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_VMWARE_LICENSE = MIT XDRIVER_XF86_VIDEO_VMWARE_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_VMWARE_DEPENDENCIES = mesa3d xserver_xorg-server xorgproto ifeq ($(BR2_PACKAGE_HAS_UDEV),y) XDRIVER_XF86_VIDEO_VMWARE_CONF_OPTS += --with-libudev XDRIVER_XF86_VIDEO_VMWARE_DEPENDENCIES += udev else XDRIVER_XF86_VIDEO_VMWARE_CONF_OPTS += --without-libudev endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xdriver_xf86-video-voodoo/Config.in ================================================ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_VOODOO bool "xf86-video-voodoo" select BR2_PACKAGE_XORGPROTO help Voodoo video driver ================================================ FILE: package/x11r7/xdriver_xf86-video-voodoo/xdriver_xf86-video-voodoo.mk ================================================ ################################################################################ # # xdriver_xf86-video-voodoo # ################################################################################ XDRIVER_XF86_VIDEO_VOODOO_VERSION = 9172ae566a0e85313fc80ab62b4455393eefe593 XDRIVER_XF86_VIDEO_VOODOO_SITE = git://anongit.freedesktop.org/xorg/driver/xf86-video-voodoo XDRIVER_XF86_VIDEO_VOODOO_LICENSE = MIT XDRIVER_XF86_VIDEO_VOODOO_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_VOODOO_AUTORECONF = YES XDRIVER_XF86_VIDEO_VOODOO_DEPENDENCIES = xserver_xorg-server xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_encodings/Config.in ================================================ config BR2_PACKAGE_XFONT_ENCODINGS bool "encodings" select BR2_PACKAGE_XUTIL_UTIL_MACROS help No description available ================================================ FILE: package/x11r7/xfont_encodings/xfont_encodings.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-June/002998.html md5 bbae4f247b88ccde0e85ed6a403da22a encodings-1.0.5.tar.bz2 sha1 7ffec76dba1cfd5040c5b43ccfae930c83ddf92e encodings-1.0.5.tar.bz2 sha256 bd96e16143a044b19e87f217cf6a3763a70c561d1076aad6f6d862ec41774a31 encodings-1.0.5.tar.bz2 sha512 920e49f0b3545f181a1574ca3280ac9adef1e68fe27566c195dd7013f728d355c0d759132789357fcf8fa7391fcbe1e17edf2bd85aa5611df5a4d99740011008 encodings-1.0.5.tar.bz2 # Locally computed sha256 13b4a0f9431f0fdd6ee36ed386e0b7d1eb429c5cb88df73353896078cbb5a137 COPYING ================================================ FILE: package/x11r7/xfont_encodings/xfont_encodings.mk ================================================ ################################################################################ # # xfont_encodings # ################################################################################ XFONT_ENCODINGS_VERSION = 1.0.5 XFONT_ENCODINGS_SOURCE = encodings-$(XFONT_ENCODINGS_VERSION).tar.bz2 XFONT_ENCODINGS_SITE = https://xorg.freedesktop.org/releases/individual/font 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)) ================================================ FILE: package/x11r7/xfont_font-adobe-100dpi/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_ADOBE_100DPI bool "font-adobe-100dpi" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-adobe-100dpi/xfont_font-adobe-100dpi.hash ================================================ # locally computed sha256 b2c08433eab5cb202470aa9f779efefce8d9cab2534f34f3aa4a31d05671c054 font-adobe-100dpi-1.0.3.tar.bz2 sha256 bf6d862672b4fcc86f3f38bc138ad44e52d52207dd8689b8d3701630fc331194 COPYING ================================================ FILE: package/x11r7/xfont_font-adobe-100dpi/xfont_font-adobe-100dpi.mk ================================================ ################################################################################ # # xfont_font-adobe-100dpi # ################################################################################ XFONT_FONT_ADOBE_100DPI_VERSION = 1.0.3 XFONT_FONT_ADOBE_100DPI_SOURCE = font-adobe-100dpi-$(XFONT_FONT_ADOBE_100DPI_VERSION).tar.bz2 XFONT_FONT_ADOBE_100DPI_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_ADOBE_100DPI_LICENSE = MIT XFONT_FONT_ADOBE_100DPI_LICENSE_FILES = COPYING XFONT_FONT_ADOBE_100DPI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_ADOBE_100DPI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_ADOBE_100DPI_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-adobe-75dpi/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_ADOBE_75DPI bool "font-adobe-75dpi" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-adobe-75dpi/xfont_font-adobe-75dpi.hash ================================================ # locally computed sha256 c6024a1e4a1e65f413f994dd08b734efd393ce0a502eb465deb77b9a36db4d09 font-adobe-75dpi-1.0.3.tar.bz2 sha256 bf6d862672b4fcc86f3f38bc138ad44e52d52207dd8689b8d3701630fc331194 COPYING ================================================ FILE: package/x11r7/xfont_font-adobe-75dpi/xfont_font-adobe-75dpi.mk ================================================ ################################################################################ # # xfont_font-adobe-75dpi # ################################################################################ XFONT_FONT_ADOBE_75DPI_VERSION = 1.0.3 XFONT_FONT_ADOBE_75DPI_SOURCE = font-adobe-75dpi-$(XFONT_FONT_ADOBE_75DPI_VERSION).tar.bz2 XFONT_FONT_ADOBE_75DPI_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_ADOBE_75DPI_LICENSE = MIT XFONT_FONT_ADOBE_75DPI_LICENSE_FILES = COPYING XFONT_FONT_ADOBE_75DPI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_ADOBE_75DPI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_ADOBE_75DPI_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-adobe-utopia-100dpi/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_ADOBE_UTOPIA_100DPI bool "font-adobe-utopia-100dpi" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-adobe-utopia-100dpi/xfont_font-adobe-utopia-100dpi.hash ================================================ # locally computed sha256 d16f5e3f227cc6dd07a160a71f443559682dbc35f1c056a5385085aaec4fada5 font-adobe-utopia-100dpi-1.0.4.tar.bz2 sha256 234c2a8109afa8034c787dbf69696a9bdd374914aadf937d2a103831d95c1867 COPYING ================================================ FILE: package/x11r7/xfont_font-adobe-utopia-100dpi/xfont_font-adobe-utopia-100dpi.mk ================================================ ################################################################################ # # xfont_font-adobe-utopia-100dpi # ################################################################################ XFONT_FONT_ADOBE_UTOPIA_100DPI_VERSION = 1.0.4 XFONT_FONT_ADOBE_UTOPIA_100DPI_SOURCE = font-adobe-utopia-100dpi-$(XFONT_FONT_ADOBE_UTOPIA_100DPI_VERSION).tar.bz2 XFONT_FONT_ADOBE_UTOPIA_100DPI_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_ADOBE_UTOPIA_100DPI_LICENSE = Adobe License (no modification allowed) XFONT_FONT_ADOBE_UTOPIA_100DPI_LICENSE_FILES = COPYING XFONT_FONT_ADOBE_UTOPIA_100DPI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_ADOBE_UTOPIA_100DPI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_ADOBE_UTOPIA_100DPI_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-adobe-utopia-75dpi/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_ADOBE_UTOPIA_75DPI bool "font-adobe-utopia-75dpi" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-adobe-utopia-75dpi/xfont_font-adobe-utopia-75dpi.hash ================================================ # locally computed sha256 8732719c61f3661c8bad63804ebfd54fc7de21ab848e9a26a19b1778ef8b5c94 font-adobe-utopia-75dpi-1.0.4.tar.bz2 sha256 234c2a8109afa8034c787dbf69696a9bdd374914aadf937d2a103831d95c1867 COPYING ================================================ FILE: package/x11r7/xfont_font-adobe-utopia-75dpi/xfont_font-adobe-utopia-75dpi.mk ================================================ ################################################################################ # # xfont_font-adobe-utopia-75dpi # ################################################################################ XFONT_FONT_ADOBE_UTOPIA_75DPI_VERSION = 1.0.4 XFONT_FONT_ADOBE_UTOPIA_75DPI_SOURCE = font-adobe-utopia-75dpi-$(XFONT_FONT_ADOBE_UTOPIA_75DPI_VERSION).tar.bz2 XFONT_FONT_ADOBE_UTOPIA_75DPI_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_ADOBE_UTOPIA_75DPI_LICENSE = Adobe License (no modification allowed) XFONT_FONT_ADOBE_UTOPIA_75DPI_LICENSE_FILES = COPYING XFONT_FONT_ADOBE_UTOPIA_75DPI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_ADOBE_UTOPIA_75DPI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_ADOBE_UTOPIA_75DPI_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-adobe-utopia-type1/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_ADOBE_UTOPIA_TYPE1 bool "font-adobe-utopia-type1" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-adobe-utopia-type1/xfont_font-adobe-utopia-type1.hash ================================================ # locally computed sha256 979435105f897a70f8993fa02c8362160b0513366c2ab896965416f96dbb8077 font-adobe-utopia-type1-1.0.4.tar.bz2 sha256 234c2a8109afa8034c787dbf69696a9bdd374914aadf937d2a103831d95c1867 COPYING ================================================ FILE: package/x11r7/xfont_font-adobe-utopia-type1/xfont_font-adobe-utopia-type1.mk ================================================ ################################################################################ # # xfont_font-adobe-utopia-type1 # ################################################################################ XFONT_FONT_ADOBE_UTOPIA_TYPE1_VERSION = 1.0.4 XFONT_FONT_ADOBE_UTOPIA_TYPE1_SOURCE = font-adobe-utopia-type1-$(XFONT_FONT_ADOBE_UTOPIA_TYPE1_VERSION).tar.bz2 XFONT_FONT_ADOBE_UTOPIA_TYPE1_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_ADOBE_UTOPIA_TYPE1_LICENSE = Adobe License (no modification allowed) XFONT_FONT_ADOBE_UTOPIA_TYPE1_LICENSE_FILES = COPYING XFONT_FONT_ADOBE_UTOPIA_TYPE1_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_ADOBE_UTOPIA_TYPE1_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_ADOBE_UTOPIA_TYPE1_DEPENDENCIES = xfont_font-util host-xfont_font-util host-xapp_mkfontscale host-xapp_bdftopcf $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-alias/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_ALIAS bool "font-alias" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-alias/xfont_font-alias.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2020-August/003054.html sha256 f3111ae8bf2e980f5f56af400e8eefe5fc9f4207f4a412ea79637fd66c945276 font-alias-1.0.4.tar.bz2 sha512 c67ac2ee344a601fcc09471580214b30c3fd6acc4800702840de44f0733e6d18b3faeec2fa3f4e2314025cc1724d7d6796ebaf620398fe350710182fd2c4b07d font-alias-1.0.4.tar.bz2 # locally computed sha256 bdba5452fc080c0f1a56d66978ac4150d1d1a00a9cc0248bba4f0b76c80ad47e COPYING ================================================ FILE: package/x11r7/xfont_font-alias/xfont_font-alias.mk ================================================ ################################################################################ # # xfont_font-alias # ################################################################################ XFONT_FONT_ALIAS_VERSION = 1.0.4 XFONT_FONT_ALIAS_SOURCE = font-alias-$(XFONT_FONT_ALIAS_VERSION).tar.bz2 XFONT_FONT_ALIAS_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_ALIAS_LICENSE = MIT XFONT_FONT_ALIAS_LICENSE_FILES = COPYING XFONT_FONT_ALIAS_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_ALIAS_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_ALIAS_DEPENDENCIES = xfont_font-util host-xfont_font-util host-xapp_mkfontscale host-xapp_bdftopcf $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-arabic-misc/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_ARABIC_MISC bool "font-arabic-misc" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-arabic-misc/xfont_font-arabic-misc.hash ================================================ # locally computed sha256 505d9b12a7093389e67a925dfda6346bde26d114c67f0cdca7aeda6e5d3344f4 font-arabic-misc-1.0.3.tar.bz2 sha256 192b677a887c20f9671cc357cd5ea7bae586003d61c1f8f6e164e8f5530abf57 COPYING ================================================ FILE: package/x11r7/xfont_font-arabic-misc/xfont_font-arabic-misc.mk ================================================ ################################################################################ # # xfont_font-arabic-misc # ################################################################################ XFONT_FONT_ARABIC_MISC_VERSION = 1.0.3 XFONT_FONT_ARABIC_MISC_SOURCE = font-arabic-misc-$(XFONT_FONT_ARABIC_MISC_VERSION).tar.bz2 XFONT_FONT_ARABIC_MISC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_ARABIC_MISC_LICENSE = MIT XFONT_FONT_ARABIC_MISC_LICENSE_FILES = COPYING XFONT_FONT_ARABIC_MISC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_ARABIC_MISC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_ARABIC_MISC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-bh-100dpi/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_BH_100DPI bool "font-bh-100dpi" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-bh-100dpi/xfont_font-bh-100dpi.hash ================================================ # locally computed sha256 23c07162708e4b79eb33095c8bfa62c783717a9431254bbf44863734ea239481 font-bh-100dpi-1.0.3.tar.bz2 sha256 888fd79d2c7e6332559d661c62f7a50f92fc5842e6ff0e0bd4c59b0083dabce9 COPYING ================================================ FILE: package/x11r7/xfont_font-bh-100dpi/xfont_font-bh-100dpi.mk ================================================ ################################################################################ # # xfont_font-bh-100dpi # ################################################################################ XFONT_FONT_BH_100DPI_VERSION = 1.0.3 XFONT_FONT_BH_100DPI_SOURCE = font-bh-100dpi-$(XFONT_FONT_BH_100DPI_VERSION).tar.bz2 XFONT_FONT_BH_100DPI_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_BH_100DPI_LICENSE = Bigelow & Holmes License (no modification) XFONT_FONT_BH_100DPI_LICENSE_FILES = COPYING XFONT_FONT_BH_100DPI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_BH_100DPI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_BH_100DPI_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-bh-75dpi/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_BH_75DPI bool "font-bh-75dpi" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-bh-75dpi/xfont_font-bh-75dpi.hash ================================================ # locally computed sha256 3486aa51ac92c646a448fe899c5c3dae0024b1fef724d5100d52640d1cac721c font-bh-75dpi-1.0.3.tar.bz2 sha256 888fd79d2c7e6332559d661c62f7a50f92fc5842e6ff0e0bd4c59b0083dabce9 COPYING ================================================ FILE: package/x11r7/xfont_font-bh-75dpi/xfont_font-bh-75dpi.mk ================================================ ################################################################################ # # xfont_font-bh-75dpi # ################################################################################ XFONT_FONT_BH_75DPI_VERSION = 1.0.3 XFONT_FONT_BH_75DPI_SOURCE = font-bh-75dpi-$(XFONT_FONT_BH_75DPI_VERSION).tar.bz2 XFONT_FONT_BH_75DPI_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_BH_75DPI_LICENSE = Bigelow & Holmes License (no modification) XFONT_FONT_BH_75DPI_LICENSE_FILES = COPYING XFONT_FONT_BH_75DPI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_BH_75DPI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_BH_75DPI_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_BH_LUCIDATYPEWRITER_100DPI bool "font-bh-lucidatypewriter-100dpi" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/xfont_font-bh-lucidatypewriter-100dpi.hash ================================================ # locally computed sha256 62a83363c2536095fda49d260d21e0847675676e4e3415054064cbdffa641fbb font-bh-lucidatypewriter-100dpi-1.0.3.tar.bz2 sha256 9428a98add4fada4c98e031ae0f29d27f8b15a2c8c6e8830591a4c18ea26a6cd COPYING ================================================ FILE: package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/xfont_font-bh-lucidatypewriter-100dpi.mk ================================================ ################################################################################ # # xfont_font-bh-lucidatypewriter-100dpi # ################################################################################ XFONT_FONT_BH_LUCIDATYPEWRITER_100DPI_VERSION = 1.0.3 XFONT_FONT_BH_LUCIDATYPEWRITER_100DPI_SOURCE = font-bh-lucidatypewriter-100dpi-$(XFONT_FONT_BH_LUCIDATYPEWRITER_100DPI_VERSION).tar.bz2 XFONT_FONT_BH_LUCIDATYPEWRITER_100DPI_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_BH_LUCIDATYPEWRITER_100DPI_LICENSE = Bigelow & Holmes License (no modification) XFONT_FONT_BH_LUCIDATYPEWRITER_100DPI_LICENSE_FILES = COPYING XFONT_FONT_BH_LUCIDATYPEWRITER_100DPI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_BH_LUCIDATYPEWRITER_100DPI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_BH_LUCIDATYPEWRITER_100DPI_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_BH_LUCIDATYPEWRITER_75DPI bool "font-bh-lucidatypewriter-75dpi" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/xfont_font-bh-lucidatypewriter-75dpi.hash ================================================ # locally computed sha256 4ac16afbe205480cc5572e2977ea63488c543d05be0ea8e5a94c845a6eebcb31 font-bh-lucidatypewriter-75dpi-1.0.3.tar.bz2 sha256 9428a98add4fada4c98e031ae0f29d27f8b15a2c8c6e8830591a4c18ea26a6cd COPYING ================================================ FILE: package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/xfont_font-bh-lucidatypewriter-75dpi.mk ================================================ ################################################################################ # # xfont_font-bh-lucidatypewriter-75dpi # ################################################################################ XFONT_FONT_BH_LUCIDATYPEWRITER_75DPI_VERSION = 1.0.3 XFONT_FONT_BH_LUCIDATYPEWRITER_75DPI_SOURCE = font-bh-lucidatypewriter-75dpi-$(XFONT_FONT_BH_LUCIDATYPEWRITER_75DPI_VERSION).tar.bz2 XFONT_FONT_BH_LUCIDATYPEWRITER_75DPI_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_BH_LUCIDATYPEWRITER_75DPI_LICENSE = Bigelow & Holmes License (no modification) XFONT_FONT_BH_LUCIDATYPEWRITER_75DPI_LICENSE_FILES = COPYING XFONT_FONT_BH_LUCIDATYPEWRITER_75DPI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_BH_LUCIDATYPEWRITER_75DPI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_BH_LUCIDATYPEWRITER_75DPI_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-bh-ttf/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_BH_TTF bool "font-bh-ttf" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-bh-ttf/xfont_font-bh-ttf.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2010-November/001537.html sha1 f42ebd527096011040a312e0f9cdf78d64177419 font-bh-ttf-1.0.3.tar.bz2 # Locally computed sha256 27d47d50006773f1c0bd97661252ae27bb8cfd6951f253bd9d3ef81ed1243934 COPYING ================================================ FILE: package/x11r7/xfont_font-bh-ttf/xfont_font-bh-ttf.mk ================================================ ################################################################################ # # xfont_font-bh-ttf # ################################################################################ XFONT_FONT_BH_TTF_VERSION = 1.0.3 XFONT_FONT_BH_TTF_SOURCE = font-bh-ttf-$(XFONT_FONT_BH_TTF_VERSION).tar.bz2 XFONT_FONT_BH_TTF_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_BH_TTF_LICENSE = Bigelow & Holmes License (no modification) XFONT_FONT_BH_TTF_LICENSE_FILES = COPYING XFONT_FONT_BH_TTF_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_BH_TTF_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_BH_TTF_DEPENDENCIES = xfont_font-util host-xfont_font-util host-xapp_mkfontscale host-xapp_bdftopcf $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-bh-type1/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_BH_TYPE1 bool "font-bh-type1" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-bh-type1/xfont_font-bh-type1.hash ================================================ # locally computed sha256 761455a297486f3927a85d919b5c948d1d324181d4bea6c95d542504b68a63c1 font-bh-type1-1.0.3.tar.bz2 sha256 27d47d50006773f1c0bd97661252ae27bb8cfd6951f253bd9d3ef81ed1243934 COPYING ================================================ FILE: package/x11r7/xfont_font-bh-type1/xfont_font-bh-type1.mk ================================================ ################################################################################ # # xfont_font-bh-type1 # ################################################################################ XFONT_FONT_BH_TYPE1_VERSION = 1.0.3 XFONT_FONT_BH_TYPE1_SOURCE = font-bh-type1-$(XFONT_FONT_BH_TYPE1_VERSION).tar.bz2 XFONT_FONT_BH_TYPE1_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_BH_TYPE1_LICENSE = Bigelow & Holmes License (no modification) XFONT_FONT_BH_TYPE1_LICENSE_FILES = COPYING XFONT_FONT_BH_TYPE1_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_BH_TYPE1_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_BH_TYPE1_DEPENDENCIES = xfont_font-util host-xfont_font-util host-xapp_mkfontscale host-xapp_bdftopcf $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-bitstream-100dpi/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_BITSTREAM_100DPI bool "font-bitstream-100dpi" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-bitstream-100dpi/xfont_font-bitstream-100dpi.hash ================================================ # locally computed sha256 ebe0d7444e3d7c8da7642055ac2206f0190ee060700d99cd876f8fc9964cb6ce font-bitstream-100dpi-1.0.3.tar.bz2 sha256 6faf32f092c2b92f3f99e0d63db9d802b11b4dd5aa0ce991f107a398d7f1ae80 COPYING ================================================ FILE: package/x11r7/xfont_font-bitstream-100dpi/xfont_font-bitstream-100dpi.mk ================================================ ################################################################################ # # xfont_font-bitstream-100dpi # ################################################################################ XFONT_FONT_BITSTREAM_100DPI_VERSION = 1.0.3 XFONT_FONT_BITSTREAM_100DPI_SOURCE = font-bitstream-100dpi-$(XFONT_FONT_BITSTREAM_100DPI_VERSION).tar.bz2 XFONT_FONT_BITSTREAM_100DPI_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_BITSTREAM_100DPI_LICENSE = MIT XFONT_FONT_BITSTREAM_100DPI_LICENSE_FILES = COPYING XFONT_FONT_BITSTREAM_100DPI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_BITSTREAM_100DPI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_BITSTREAM_100DPI_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-bitstream-75dpi/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_BITSTREAM_75DPI bool "font-bitstream-75dpi" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-bitstream-75dpi/xfont_font-bitstream-75dpi.hash ================================================ # locally computed sha256 ba3f5e4610c07bd5859881660753ec6d75d179f26fc967aa776dbb3d5d5cf48e font-bitstream-75dpi-1.0.3.tar.bz2 sha256 6faf32f092c2b92f3f99e0d63db9d802b11b4dd5aa0ce991f107a398d7f1ae80 COPYING ================================================ FILE: package/x11r7/xfont_font-bitstream-75dpi/xfont_font-bitstream-75dpi.mk ================================================ ################################################################################ # # xfont_font-bitstream-75dpi # ################################################################################ XFONT_FONT_BITSTREAM_75DPI_VERSION = 1.0.3 XFONT_FONT_BITSTREAM_75DPI_SOURCE = font-bitstream-75dpi-$(XFONT_FONT_BITSTREAM_75DPI_VERSION).tar.bz2 XFONT_FONT_BITSTREAM_75DPI_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_BITSTREAM_75DPI_LICENSE = MIT XFONT_FONT_BITSTREAM_75DPI_LICENSE_FILES = COPYING XFONT_FONT_BITSTREAM_75DPI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_BITSTREAM_75DPI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_BITSTREAM_75DPI_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-bitstream-type1/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_BITSTREAM_TYPE1 bool "font-bitstream-type1" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-bitstream-type1/xfont_font-bitstream-type1.hash ================================================ # locally computed sha256 c6ea0569adad2c577f140328dc3302e729cb1b1ea90cd0025caf380625f8a688 font-bitstream-type1-1.0.3.tar.bz2 sha256 ecad5afdbd1308634896744a4c962361e9eca73e7d9969bb3aad94533c66d046 COPYING ================================================ FILE: package/x11r7/xfont_font-bitstream-type1/xfont_font-bitstream-type1.mk ================================================ ################################################################################ # # xfont_font-bitstream-type1 # ################################################################################ XFONT_FONT_BITSTREAM_TYPE1_VERSION = 1.0.3 XFONT_FONT_BITSTREAM_TYPE1_SOURCE = font-bitstream-type1-$(XFONT_FONT_BITSTREAM_TYPE1_VERSION).tar.bz2 XFONT_FONT_BITSTREAM_TYPE1_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_BITSTREAM_TYPE1_LICENSE = MIT XFONT_FONT_BITSTREAM_TYPE1_LICENSE_FILES = COPYING XFONT_FONT_BITSTREAM_TYPE1_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_BITSTREAM_TYPE1_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_BITSTREAM_TYPE1_DEPENDENCIES = xfont_font-util host-xfont_font-util host-xapp_mkfontscale host-xapp_bdftopcf $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-cronyx-cyrillic/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_CRONYX_CYRILLIC bool "font-cronyx-cyrillic" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-cronyx-cyrillic/xfont_font-cronyx-cyrillic.hash ================================================ # locally computed sha256 6e8631936157677c77ba032b5c7b1fb3cb2ee872dbcea0444f12cd602cd9212a font-cronyx-cyrillic-1.0.3.tar.bz2 sha256 857fa9f8d12bd7ce7fb235393d775dd5e0b5130fac7a88fdea9156d75b609402 COPYING ================================================ FILE: package/x11r7/xfont_font-cronyx-cyrillic/xfont_font-cronyx-cyrillic.mk ================================================ ################################################################################ # # xfont_font-cronyx-cyrillic # ################################################################################ XFONT_FONT_CRONYX_CYRILLIC_VERSION = 1.0.3 XFONT_FONT_CRONYX_CYRILLIC_SOURCE = font-cronyx-cyrillic-$(XFONT_FONT_CRONYX_CYRILLIC_VERSION).tar.bz2 XFONT_FONT_CRONYX_CYRILLIC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_CRONYX_CYRILLIC_LICENSE = MIT XFONT_FONT_CRONYX_CYRILLIC_LICENSE_FILES = COPYING XFONT_FONT_CRONYX_CYRILLIC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_CRONYX_CYRILLIC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_CRONYX_CYRILLIC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-cursor-misc/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_CURSOR_MISC bool "font-cursor-misc" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-cursor-misc/xfont_font-cursor-misc.hash ================================================ # locally computed sha256 17363eb35eece2e08144da5f060c70103b59d0972b4f4d77fd84c9a7a2dba635 font-cursor-misc-1.0.3.tar.bz2 sha256 c22415fb2144d7298e995dbeee2eb120822d653c61ae43c64fa0fda2cc3ca3a0 COPYING ================================================ FILE: package/x11r7/xfont_font-cursor-misc/xfont_font-cursor-misc.mk ================================================ ################################################################################ # # xfont_font-cursor-misc # ################################################################################ XFONT_FONT_CURSOR_MISC_VERSION = 1.0.3 XFONT_FONT_CURSOR_MISC_SOURCE = font-cursor-misc-$(XFONT_FONT_CURSOR_MISC_VERSION).tar.bz2 XFONT_FONT_CURSOR_MISC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_CURSOR_MISC_LICENSE = unencumbered XFONT_FONT_CURSOR_MISC_LICENSE_FILES = COPYING XFONT_FONT_CURSOR_MISC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_CURSOR_MISC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_CURSOR_MISC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-daewoo-misc/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_DAEWOO_MISC bool "font-daewoo-misc" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-daewoo-misc/xfont_font-daewoo-misc.hash ================================================ # locally computed sha256 bc65de70bee12698caa95b523d3b652c056347e17b68cc8b5d6bbdff235c4be8 font-daewoo-misc-1.0.3.tar.bz2 ================================================ FILE: package/x11r7/xfont_font-daewoo-misc/xfont_font-daewoo-misc.mk ================================================ ################################################################################ # # xfont_font-daewoo-misc # ################################################################################ XFONT_FONT_DAEWOO_MISC_VERSION = 1.0.3 XFONT_FONT_DAEWOO_MISC_SOURCE = font-daewoo-misc-$(XFONT_FONT_DAEWOO_MISC_VERSION).tar.bz2 XFONT_FONT_DAEWOO_MISC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_DAEWOO_MISC_LICENSE_FILES = COPYING XFONT_FONT_DAEWOO_MISC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_DAEWOO_MISC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_DAEWOO_MISC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-dec-misc/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_DEC_MISC bool "font-dec-misc" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-dec-misc/xfont_font-dec-misc.hash ================================================ # locally computed sha256 e19ddf8b5f8de914d81675358fdfe37762e9ce524887cc983adef34f2850ff7b font-dec-misc-1.0.3.tar.bz2 sha256 bf4d44be4b5eb66c53bf5f7eb2d9d4817fb937788b37ed6ceda1876fdb964817 COPYING ================================================ FILE: package/x11r7/xfont_font-dec-misc/xfont_font-dec-misc.mk ================================================ ################################################################################ # # xfont_font-dec-misc # ################################################################################ XFONT_FONT_DEC_MISC_VERSION = 1.0.3 XFONT_FONT_DEC_MISC_SOURCE = font-dec-misc-$(XFONT_FONT_DEC_MISC_VERSION).tar.bz2 XFONT_FONT_DEC_MISC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_DEC_MISC_LICENSE = MIT XFONT_FONT_DEC_MISC_LICENSE_FILES = COPYING XFONT_FONT_DEC_MISC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_DEC_MISC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_DEC_MISC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-ibm-type1/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_IBM_TYPE1 bool "font-ibm-type1" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-ibm-type1/xfont_font-ibm-type1.hash ================================================ # locally computed sha256 fddb28d3db5a07f4b4ca15388488a9680a10e1367a18f358f903b2a608a5d2df font-ibm-type1-1.0.3.tar.bz2 sha256 fc0fd4df7ac7ac7f9b1ff3a221f28c52edea4506dc4c84f1869a3f4281360ca1 COPYING ================================================ FILE: package/x11r7/xfont_font-ibm-type1/xfont_font-ibm-type1.mk ================================================ ################################################################################ # # xfont_font-ibm-type1 # ################################################################################ XFONT_FONT_IBM_TYPE1_VERSION = 1.0.3 XFONT_FONT_IBM_TYPE1_SOURCE = font-ibm-type1-$(XFONT_FONT_IBM_TYPE1_VERSION).tar.bz2 XFONT_FONT_IBM_TYPE1_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_IBM_TYPE1_LICENSE = IBM/MIT X Consortium Courier Typefont agreement (no modification) XFONT_FONT_IBM_TYPE1_LICENSE_FILES = COPYING XFONT_FONT_IBM_TYPE1_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_IBM_TYPE1_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_IBM_TYPE1_DEPENDENCIES = xfont_font-util host-xfont_font-util host-xapp_mkfontscale host-xapp_bdftopcf $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-isas-misc/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_ISAS_MISC bool "font-isas-misc" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-isas-misc/xfont_font-isas-misc.hash ================================================ # locally computed sha256 5824ab4b485951107dd245b8f7717d2822f1a6dbf6cea98f1ac7f49905c0a867 font-isas-misc-1.0.3.tar.bz2 sha256 32d5d082b8186051bbe75ea9cbedc646830217ca931b1b7a1e534a828c94e839 COPYING ================================================ FILE: package/x11r7/xfont_font-isas-misc/xfont_font-isas-misc.mk ================================================ ################################################################################ # # xfont_font-isas-misc # ################################################################################ XFONT_FONT_ISAS_MISC_VERSION = 1.0.3 XFONT_FONT_ISAS_MISC_SOURCE = font-isas-misc-$(XFONT_FONT_ISAS_MISC_VERSION).tar.bz2 XFONT_FONT_ISAS_MISC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_ISAS_MISC_LICENSE = MIT XFONT_FONT_ISAS_MISC_LICENSE_FILES = COPYING XFONT_FONT_ISAS_MISC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_ISAS_MISC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_ISAS_MISC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-jis-misc/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_JIS_MISC bool "font-jis-misc" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-jis-misc/xfont_font-jis-misc.hash ================================================ # locally computed sha256 2b18ce10b367ebafe95a17de799b6db9a24e2337188d124adaf68af05b1fac65 font-jis-misc-1.0.3.tar.bz2 ================================================ FILE: package/x11r7/xfont_font-jis-misc/xfont_font-jis-misc.mk ================================================ ################################################################################ # # xfont_font-jis-misc # ################################################################################ XFONT_FONT_JIS_MISC_VERSION = 1.0.3 XFONT_FONT_JIS_MISC_SOURCE = font-jis-misc-$(XFONT_FONT_JIS_MISC_VERSION).tar.bz2 XFONT_FONT_JIS_MISC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_JIS_MISC_LICENSE_FILES = COPYING XFONT_FONT_JIS_MISC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_JIS_MISC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_JIS_MISC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-micro-misc/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_MICRO_MISC bool "font-micro-misc" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-micro-misc/xfont_font-micro-misc.hash ================================================ # locally computed sha256 9a3381c10f32d9511f0ad4179df395914c50779103c16cddf7017f5220ed8db6 font-micro-misc-1.0.3.tar.bz2 sha256 1711d038bca0efb51b5114e902412019d1c21531882866b1a6908c6386268cfb COPYING ================================================ FILE: package/x11r7/xfont_font-micro-misc/xfont_font-micro-misc.mk ================================================ ################################################################################ # # xfont_font-micro-misc # ################################################################################ XFONT_FONT_MICRO_MISC_VERSION = 1.0.3 XFONT_FONT_MICRO_MISC_SOURCE = font-micro-misc-$(XFONT_FONT_MICRO_MISC_VERSION).tar.bz2 XFONT_FONT_MICRO_MISC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_MICRO_MISC_LICENSE = Public Domain XFONT_FONT_MICRO_MISC_LICENSE_FILES = COPYING XFONT_FONT_MICRO_MISC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_MICRO_MISC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_MICRO_MISC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-misc-cyrillic/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_MISC_CYRILLIC bool "font-misc-cyrillic" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-misc-cyrillic/xfont_font-misc-cyrillic.hash ================================================ # locally computed sha256 e40fe3e3323c62b738550795457ad555c70c008aa91b5912dfd46f8e745f5e60 font-misc-cyrillic-1.0.3.tar.bz2 sha256 8765722448e0ca6ce113d0406554c40224f74abfc005f4b2ef927567349f1529 COPYING ================================================ FILE: package/x11r7/xfont_font-misc-cyrillic/xfont_font-misc-cyrillic.mk ================================================ ################################################################################ # # xfont_font-misc-cyrillic # ################################################################################ XFONT_FONT_MISC_CYRILLIC_VERSION = 1.0.3 XFONT_FONT_MISC_CYRILLIC_SOURCE = font-misc-cyrillic-$(XFONT_FONT_MISC_CYRILLIC_VERSION).tar.bz2 XFONT_FONT_MISC_CYRILLIC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_MISC_CYRILLIC_LICENSE = MIT / Public Domain XFONT_FONT_MISC_CYRILLIC_LICENSE_FILES = COPYING XFONT_FONT_MISC_CYRILLIC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_MISC_CYRILLIC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_MISC_CYRILLIC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-misc-ethiopic/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_MISC_ETHIOPIC bool "font-misc-ethiopic" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-misc-ethiopic/xfont_font-misc-ethiopic.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2020-August/003055.html sha256 698c0f6ddf9ca482250bdafa08293893148393bb9cb23e0a9ca313c6dbfc4ae0 font-misc-ethiopic-1.0.4.tar.bz2 sha512 4fed9ff3782746898c56dac199e9ca89356f4967779937049b9ff4ffad202317c023859f92d44b371dfa5485d5368ccad648e64b12cde0ed21f7d4aee5affcd5 font-misc-ethiopic-1.0.4.tar.bz2 # locally computed sha256 94835f274f1ddad34f8fd3a06b2c493222a68e4094f4097000d101f22ee0d0d5 COPYING ================================================ FILE: package/x11r7/xfont_font-misc-ethiopic/xfont_font-misc-ethiopic.mk ================================================ ################################################################################ # # xfont_font-misc-ethiopic # ################################################################################ XFONT_FONT_MISC_ETHIOPIC_VERSION = 1.0.4 XFONT_FONT_MISC_ETHIOPIC_SOURCE = font-misc-ethiopic-$(XFONT_FONT_MISC_ETHIOPIC_VERSION).tar.bz2 XFONT_FONT_MISC_ETHIOPIC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_MISC_ETHIOPIC_LICENSE = MIT XFONT_FONT_MISC_ETHIOPIC_LICENSE_FILES = COPYING XFONT_FONT_MISC_ETHIOPIC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_MISC_ETHIOPIC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_MISC_ETHIOPIC_DEPENDENCIES = xfont_font-util host-xfont_font-util host-xapp_mkfontscale host-xapp_bdftopcf $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-misc-meltho/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_MISC_MELTHO bool "font-misc-meltho" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-misc-meltho/xfont_font-misc-meltho.hash ================================================ # locally computed sha256 3721323f13855cf7ca609115a1f7b182491e9b2b9c6e01eb1a2c7f8edd480791 font-misc-meltho-1.0.3.tar.bz2 sha256 6a02b45e4877b9df8c1bdaa21e1e8fba86d85e3be4c90f2791183a501e0cbd25 COPYING ================================================ FILE: package/x11r7/xfont_font-misc-meltho/xfont_font-misc-meltho.mk ================================================ ################################################################################ # # xfont_font-misc-meltho # ################################################################################ XFONT_FONT_MISC_MELTHO_VERSION = 1.0.3 XFONT_FONT_MISC_MELTHO_SOURCE = font-misc-meltho-$(XFONT_FONT_MISC_MELTHO_VERSION).tar.bz2 XFONT_FONT_MISC_MELTHO_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_MISC_MELTHO_LICENSE = Meltho License XFONT_FONT_MISC_MELTHO_LICENSE_FILES = COPYING XFONT_FONT_MISC_MELTHO_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_MISC_MELTHO_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_MISC_MELTHO_DEPENDENCIES = xfont_font-util host-xfont_font-util host-xapp_mkfontscale host-xapp_bdftopcf $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-misc-misc/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_MISC_MISC bool "font-misc-misc" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-misc-misc/xfont_font-misc-misc.hash ================================================ # locally computed sha256 b8e77940e4e1769dc47ef1805918d8c9be37c708735832a07204258bacc11794 font-misc-misc-1.1.2.tar.bz2 sha256 1711d038bca0efb51b5114e902412019d1c21531882866b1a6908c6386268cfb COPYING ================================================ FILE: package/x11r7/xfont_font-misc-misc/xfont_font-misc-misc.mk ================================================ ################################################################################ # # xfont_font-misc-misc # ################################################################################ XFONT_FONT_MISC_MISC_VERSION = 1.1.2 XFONT_FONT_MISC_MISC_SOURCE = font-misc-misc-$(XFONT_FONT_MISC_MISC_VERSION).tar.bz2 XFONT_FONT_MISC_MISC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_MISC_MISC_LICENSE = Public Domain XFONT_FONT_MISC_MISC_LICENSE_FILES = COPYING XFONT_FONT_MISC_MISC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_MISC_MISC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_MISC_MISC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-mutt-misc/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_MUTT_MISC bool "font-mutt-misc" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-mutt-misc/xfont_font-mutt-misc.hash ================================================ # locally computed sha256 bd5f7adb34367c197773a9801df5bce7b019664941900b2a31fbfe1ff2830f8f font-mutt-misc-1.0.3.tar.bz2 sha256 81d42a6eeaf3ac2fcc1e1408fb6e2039d1162ca85d4abaf75e3daddcb250e4ff COPYING ================================================ FILE: package/x11r7/xfont_font-mutt-misc/xfont_font-mutt-misc.mk ================================================ ################################################################################ # # xfont_font-mutt-misc # ################################################################################ XFONT_FONT_MUTT_MISC_VERSION = 1.0.3 XFONT_FONT_MUTT_MISC_SOURCE = font-mutt-misc-$(XFONT_FONT_MUTT_MISC_VERSION).tar.bz2 XFONT_FONT_MUTT_MISC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_MUTT_MISC_LICENSE = MIT XFONT_FONT_MUTT_MISC_LICENSE_FILES = COPYING XFONT_FONT_MUTT_MISC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_MUTT_MISC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_MUTT_MISC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-schumacher-misc/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_SCHUMACHER_MISC bool "font-schumacher-misc" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-schumacher-misc/xfont_font-schumacher-misc.hash ================================================ # locally computed sha256 e444028656e0767e2eddc6d9aca462b16a2be75a47244dbc199b2c44eca87e5a font-schumacher-misc-1.1.2.tar.bz2 sha256 4e2b9933887950acad3a780dce91c71770c8887f132bcd0c2ba6146cdc372407 COPYING ================================================ FILE: package/x11r7/xfont_font-schumacher-misc/xfont_font-schumacher-misc.mk ================================================ ################################################################################ # # xfont_font-schumacher-misc # ################################################################################ XFONT_FONT_SCHUMACHER_MISC_VERSION = 1.1.2 XFONT_FONT_SCHUMACHER_MISC_SOURCE = font-schumacher-misc-$(XFONT_FONT_SCHUMACHER_MISC_VERSION).tar.bz2 XFONT_FONT_SCHUMACHER_MISC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_SCHUMACHER_MISC_LICENSE = MIT XFONT_FONT_SCHUMACHER_MISC_LICENSE_FILES = COPYING XFONT_FONT_SCHUMACHER_MISC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_SCHUMACHER_MISC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_SCHUMACHER_MISC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-screen-cyrillic/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_SCREEN_CYRILLIC bool "font-screen-cyrillic" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-screen-cyrillic/xfont_font-screen-cyrillic.hash ================================================ # From http://www.x.org/archive/current/src/everything/CHECKSUMS sha256 824231e8dffe15299454e47259f29d98001c9cf8ad3d6b5171399e4d71705e79 font-screen-cyrillic-1.0.4.tar.bz2 # Locally computed sha256 5234cbcbdcc9865ce2b576b5f67e77e40ccdc1aa01e6528bea5a17784934b894 COPYING ================================================ FILE: package/x11r7/xfont_font-screen-cyrillic/xfont_font-screen-cyrillic.mk ================================================ ################################################################################ # # xfont_font-screen-cyrillic # ################################################################################ XFONT_FONT_SCREEN_CYRILLIC_VERSION = 1.0.4 XFONT_FONT_SCREEN_CYRILLIC_SOURCE = font-screen-cyrillic-$(XFONT_FONT_SCREEN_CYRILLIC_VERSION).tar.bz2 XFONT_FONT_SCREEN_CYRILLIC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_SCREEN_CYRILLIC_LICENSE = MIT XFONT_FONT_SCREEN_CYRILLIC_LICENSE_FILES = COPYING XFONT_FONT_SCREEN_CYRILLIC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_SCREEN_CYRILLIC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_SCREEN_CYRILLIC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-sony-misc/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_SONY_MISC bool "font-sony-misc" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-sony-misc/xfont_font-sony-misc.hash ================================================ # From http://www.x.org/archive/current/src/everything/CHECKSUMS sha256 2043a326ba347c9da5ca1e9bc363e2521c3ea40b43b1f9662d333efd4867cff5 font-sony-misc-1.0.3.tar.bz2 # Locally computed sha256 8233ff7d7bc8b5b46cbba3f6cd0069d2ef875bd1b1e0090ca4145282aa096739 COPYING ================================================ FILE: package/x11r7/xfont_font-sony-misc/xfont_font-sony-misc.mk ================================================ ################################################################################ # # xfont_font-sony-misc # ################################################################################ XFONT_FONT_SONY_MISC_VERSION = 1.0.3 XFONT_FONT_SONY_MISC_SOURCE = font-sony-misc-$(XFONT_FONT_SONY_MISC_VERSION).tar.bz2 XFONT_FONT_SONY_MISC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_SONY_MISC_LICENSE = MIT XFONT_FONT_SONY_MISC_LICENSE_FILES = COPYING XFONT_FONT_SONY_MISC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_SONY_MISC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_SONY_MISC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-sun-misc/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_SUN_MISC bool "font-sun-misc" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-sun-misc/xfont_font-sun-misc.hash ================================================ # From http://www.x.org/archive/current/src/everything/CHECKSUMS sha256 481f4fcbbf7005658b080b3cf342c8c76de752e77f47958b2b383de73266d2e0 font-sun-misc-1.0.3.tar.bz2 # Locally computed sha256 dd6da1d39832ab2878c3304405c1c7883c6da292ffde262fca1785239534c40f COPYING ================================================ FILE: package/x11r7/xfont_font-sun-misc/xfont_font-sun-misc.mk ================================================ ################################################################################ # # xfont_font-sun-misc # ################################################################################ XFONT_FONT_SUN_MISC_VERSION = 1.0.3 XFONT_FONT_SUN_MISC_SOURCE = font-sun-misc-$(XFONT_FONT_SUN_MISC_VERSION).tar.bz2 XFONT_FONT_SUN_MISC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_SUN_MISC_LICENSE = MIT XFONT_FONT_SUN_MISC_LICENSE_FILES = COPYING XFONT_FONT_SUN_MISC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_SUN_MISC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_SUN_MISC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-util/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_UTIL bool "font-util" help No description available ================================================ FILE: package/x11r7/xfont_font-util/xfont_font-util.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-August/003019.html md5 3d6adb76fdd072db8c8fae41b40855e8 font-util-1.3.2.tar.bz2 sha1 1b36275c174b64a9c16da5c902c91546789a67ef font-util-1.3.2.tar.bz2 sha256 3ad880444123ac06a7238546fa38a2a6ad7f7e0cc3614de7e103863616522282 font-util-1.3.2.tar.bz2 sha512 7cac529b12ae71185b89c72c1569b9826f52eeaecc1c76010338e7c42c4078ae339f18220b580bbd68fb5dc09df6ecf169a47c32e6104d8ee53bd443fa21d167 font-util-1.3.2.tar.bz2 # Locally calculated sha256 ce16c3ee6f2a38db6870b66bdb54fce9dcf24acd1161840789e321f6faa1251c COPYING ================================================ FILE: package/x11r7/xfont_font-util/xfont_font-util.mk ================================================ ################################################################################ # # xfont_font-util # ################################################################################ XFONT_FONT_UTIL_VERSION = 1.3.2 XFONT_FONT_UTIL_SOURCE = font-util-$(XFONT_FONT_UTIL_VERSION).tar.bz2 XFONT_FONT_UTIL_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_UTIL_LICENSE = MIT/BSD-2-Clause 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 $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xfont_font-winitzki-cyrillic/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_WINITZKI_CYRILLIC bool "font-winitzki-cyrillic" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-winitzki-cyrillic/xfont_font-winitzki-cyrillic.hash ================================================ # From http://www.x.org/archive/current/src/everything/CHECKSUMS sha256 abd13b63d02fcaec488686c23683e5cf640b43bd32f8ca22eeae6f84df0a36a0 font-winitzki-cyrillic-1.0.3.tar.bz2 # Locally computed sha256 ca60a2aa1133e39e8c72a01af06cf0c927f5ddfe70d469d1535231100618095d COPYING ================================================ FILE: package/x11r7/xfont_font-winitzki-cyrillic/xfont_font-winitzki-cyrillic.mk ================================================ ################################################################################ # # xfont_font-winitzki-cyrillic # ################################################################################ XFONT_FONT_WINITZKI_CYRILLIC_VERSION = 1.0.3 XFONT_FONT_WINITZKI_CYRILLIC_SOURCE = font-winitzki-cyrillic-$(XFONT_FONT_WINITZKI_CYRILLIC_VERSION).tar.bz2 XFONT_FONT_WINITZKI_CYRILLIC_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_WINITZKI_CYRILLIC_LICENSE = Public Domain XFONT_FONT_WINITZKI_CYRILLIC_LICENSE_FILES = COPYING XFONT_FONT_WINITZKI_CYRILLIC_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_WINITZKI_CYRILLIC_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_WINITZKI_CYRILLIC_DEPENDENCIES = \ xfont_font-util \ host-xfont_font-util \ host-xapp_mkfontscale \ host-xapp_bdftopcf \ host-gzip $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xfont_font-xfree86-type1/Config.in ================================================ config BR2_PACKAGE_XFONT_FONT_XFREE86_TYPE1 bool "font-xfree86-type1" select BR2_PACKAGE_XFONT_FONT_UTIL help No description available ================================================ FILE: package/x11r7/xfont_font-xfree86-type1/xfont_font-xfree86-type1.hash ================================================ # From http://www.x.org/archive/current/src/everything/CHECKSUMS sha256 caebf42aec7be7f3bd40e0f232d6f34881b853dc84acfcdf7458358701fbe34a font-xfree86-type1-1.0.4.tar.bz2 # Locally computed sha256 51e6bc6513b3fa94512d8dd570240498c878605f25292c3883d92fdfca18d0c6 COPYING ================================================ FILE: package/x11r7/xfont_font-xfree86-type1/xfont_font-xfree86-type1.mk ================================================ ################################################################################ # # xfont_font-xfree86-type1 # ################################################################################ XFONT_FONT_XFREE86_TYPE1_VERSION = 1.0.4 XFONT_FONT_XFREE86_TYPE1_SOURCE = font-xfree86-type1-$(XFONT_FONT_XFREE86_TYPE1_VERSION).tar.bz2 XFONT_FONT_XFREE86_TYPE1_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_FONT_XFREE86_TYPE1_LICENSE = MIT XFONT_FONT_XFREE86_TYPE1_LICENSE_FILES = COPYING XFONT_FONT_XFREE86_TYPE1_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install XFONT_FONT_XFREE86_TYPE1_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) MKFONTSCALE=$(HOST_DIR)/bin/mkfontscale MKFONTDIR=$(HOST_DIR)/bin/mkfontdir install-data XFONT_FONT_XFREE86_TYPE1_DEPENDENCIES = xfont_font-util host-xfont_font-util host-xapp_mkfontscale host-xapp_bdftopcf $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xkeyboard-config/Config.in ================================================ config BR2_PACKAGE_XKEYBOARD_CONFIG bool "xkeyboard-config" # Runtime dependencies select BR2_PACKAGE_XAPP_XKBCOMP if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XORGPROTO if BR2_PACKAGE_XORG7 help keyboard configuration database for X https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config ================================================ FILE: package/x11r7/xkeyboard-config/xkeyboard-config.hash ================================================ # Locally computed sha256 1feee317ba39b91902b0cbd2987c0c73e6afbfc8f4c096367a5c86c216c036a8 xkeyboard-config-2.32.tar.bz2 sha256 6ca90f4b67dced4062894d6d77f4cc39343df9e359fc12f5e5d3c89ef2a3ef6d COPYING ================================================ FILE: package/x11r7/xkeyboard-config/xkeyboard-config.mk ================================================ ################################################################################ # # xkeyboard-config # ################################################################################ XKEYBOARD_CONFIG_VERSION = 2.32 XKEYBOARD_CONFIG_SOURCE = xkeyboard-config-$(XKEYBOARD_CONFIG_VERSION).tar.bz2 XKEYBOARD_CONFIG_SITE = https://www.x.org/releases/individual/data/xkeyboard-config XKEYBOARD_CONFIG_LICENSE = MIT XKEYBOARD_CONFIG_LICENSE_FILES = COPYING XKEYBOARD_CONFIG_DEPENDENCIES = \ $(BR2_PYTHON3_HOST_DEPENDENCY) \ host-gettext \ host-xapp_xkbcomp # xkeyboard-config.pc XKEYBOARD_CONFIG_INSTALL_STAGING = YES XKEYBOARD_CONFIG_CONF_OPTS = --disable-runtime-deps $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libFS/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBFS bool "libFS" select BR2_PACKAGE_XLIB_XTRANS select BR2_PACKAGE_XORGPROTO help X.Org FS library ================================================ FILE: package/x11r7/xlib_libFS/xlib_libFS.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002970.html md5 4e1196275aa743d6ebd3d3d5ec1dff9c libFS-1.0.8.tar.bz2 sha1 70173cc15a7a55defb7b22b00a9387901acad634 libFS-1.0.8.tar.bz2 sha256 c8e13727149b2ddfe40912027459b2522042e3844c5cd228c3300fe5eef6bd0f libFS-1.0.8.tar.bz2 sha512 466198ae5c0b83e3579713d86ddfd0b039f5c5b511cf6d5dc0e9664ee2d40aec9e8929445c8e97394d85faf76a7cf2f81bddb13d23de7ce19919e3b1e36ba56f libFS-1.0.8.tar.bz2 # Locally computed sha256 5386724e7475b89394dd836b954a6688f875efab99e43e8eb7e8775f5b99a341 COPYING ================================================ FILE: package/x11r7/xlib_libFS/xlib_libFS.mk ================================================ ################################################################################ # # xlib_libFS # ################################################################################ XLIB_LIBFS_VERSION = 1.0.8 XLIB_LIBFS_SOURCE = libFS-$(XLIB_LIBFS_VERSION).tar.bz2 XLIB_LIBFS_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBFS_LICENSE = MIT XLIB_LIBFS_LICENSE_FILES = COPYING XLIB_LIBFS_CPE_ID_VENDOR = x XLIB_LIBFS_CPE_ID_PRODUCT = libfs XLIB_LIBFS_INSTALL_STAGING = YES XLIB_LIBFS_DEPENDENCIES = xlib_xtrans xorgproto host-pkgconf XLIB_LIBFS_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libICE/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBICE bool "libICE" select BR2_PACKAGE_XLIB_XTRANS select BR2_PACKAGE_XORGPROTO help X.Org ICE library ================================================ FILE: package/x11r7/xlib_libICE/xlib_libICE.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-July/003006.html md5 76d77499ee7120a56566891ca2c0dbcf libICE-1.0.10.tar.bz2 sha1 5b5eb125d4f43a3ab8153b0f850963ee6c982c24 libICE-1.0.10.tar.bz2 sha256 6f86dce12cf4bcaf5c37dddd8b1b64ed2ddf1ef7b218f22b9942595fb747c348 libICE-1.0.10.tar.bz2 sha512 2f1ef2c32c833c71894a08fa7e7ed53f301f6c7bd22485d71c12884d8e8b36b99f362ec886349dcc84d08edc81c8b2cea035320831d64974edeba021b433c468 libICE-1.0.10.tar.bz2 # Locally computed sha256 60105b7ea93cb07a67fee8443b092b727e3db7f0dff4fbe05bc6cd7747fb53c8 COPYING ================================================ FILE: package/x11r7/xlib_libICE/xlib_libICE.mk ================================================ ################################################################################ # # xlib_libICE # ################################################################################ XLIB_LIBICE_VERSION = 1.0.10 XLIB_LIBICE_SOURCE = libICE-$(XLIB_LIBICE_VERSION).tar.bz2 XLIB_LIBICE_SITE = https://xorg.freedesktop.org/archive/individual/lib XLIB_LIBICE_LICENSE = MIT XLIB_LIBICE_LICENSE_FILES = COPYING XLIB_LIBICE_CPE_ID_VENDOR = freedesktop XLIB_LIBICE_CPE_ID_PRODUCT = libice XLIB_LIBICE_INSTALL_STAGING = YES XLIB_LIBICE_DEPENDENCIES = xlib_xtrans xorgproto host-pkgconf $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libSM/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBSM bool "libSM" select BR2_PACKAGE_XLIB_LIBICE select BR2_PACKAGE_XLIB_XTRANS select BR2_PACKAGE_XORGPROTO help X.Org SM library ================================================ FILE: package/x11r7/xlib_libSM/xlib_libSM.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-October/002922.html md5 87c7fad1c1813517979184c8ccd76628 libSM-1.2.3.tar.bz2 sha1 437d7b13fa2eba325df3a106f177df46ccec6546 libSM-1.2.3.tar.bz2 sha256 2d264499dcb05f56438dee12a1b4b71d76736ce7ba7aa6efbf15ebb113769cbb libSM-1.2.3.tar.bz2 sha512 74c42e27029db78475e62025b4711dbac5e22d2f8e8a24be98a1c31b03c0fc4afe859928f851800ea0b76854f12147900dc4f27bbfd3d8ea45daaaf24b70a903 libSM-1.2.3.tar.bz2 # Locally computed sha256 af7926a14d85ad367622688636e8c9c6f7807c8a6867536af1c530b5c262bfba COPYING ================================================ FILE: package/x11r7/xlib_libSM/xlib_libSM.mk ================================================ ################################################################################ # # xlib_libSM # ################################################################################ XLIB_LIBSM_VERSION = 1.2.3 XLIB_LIBSM_SOURCE = libSM-$(XLIB_LIBSM_VERSION).tar.bz2 XLIB_LIBSM_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBSM_LICENSE = MIT XLIB_LIBSM_LICENSE_FILES = COPYING XLIB_LIBSM_INSTALL_STAGING = YES XLIB_LIBSM_DEPENDENCIES = xlib_libICE xlib_xtrans xorgproto XLIB_LIBSM_CONF_OPTS = --without-libuuid $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libX11/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBX11 bool "libX11" select BR2_PACKAGE_LIBXCB select BR2_PACKAGE_XUTIL_UTIL_MACROS select BR2_PACKAGE_XLIB_XTRANS select BR2_PACKAGE_XLIB_LIBXAU select BR2_PACKAGE_XLIB_LIBXDMCP select BR2_PACKAGE_XORGPROTO help X.Org X11 library ================================================ FILE: package/x11r7/xlib_libX11/xlib_libX11.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-June/003092.html sha256 1cfa35e37aaabbe4792e9bb690468efefbfbf6b147d9c69d6f90d13c3092ea6c libX11-1.7.2.tar.bz2 sha512 d01e5c1848c76218605e5af2d353de6b301a251555b52a38dbe930e6635d5e8a92d1486eb6d328ad5d42a5939e0d16868ffa19a75e5a7863d1a32e0d0727bdc7 libX11-1.7.2.tar.bz2 # Locally computed sha256 2daec087a88e7c9b8082557cdeebad5bbb8155a4137472f0b22e269cd99d0c1e COPYING ================================================ FILE: package/x11r7/xlib_libX11/xlib_libX11.mk ================================================ ################################################################################ # # xlib_libX11 # ################################################################################ XLIB_LIBX11_VERSION = 1.7.2 XLIB_LIBX11_SOURCE = libX11-$(XLIB_LIBX11_VERSION).tar.bz2 XLIB_LIBX11_SITE = https://xorg.freedesktop.org/archive/individual/lib XLIB_LIBX11_LICENSE = MIT XLIB_LIBX11_LICENSE_FILES = COPYING XLIB_LIBX11_CPE_ID_VENDOR = x.org XLIB_LIBX11_CPE_ID_PRODUCT = libx11 XLIB_LIBX11_INSTALL_STAGING = YES XLIB_LIBX11_DEPENDENCIES = \ libxcb \ xutil_util-macros \ xlib_xtrans \ xlib_libXau \ xlib_libXdmcp \ xorgproto \ host-xorgproto HOST_XLIB_LIBX11_DEPENDENCIES = \ host-libxcb \ host-xutil_util-macros \ host-xlib_xtrans \ host-xlib_libXau \ host-xlib_libXdmcp \ host-xorgproto XLIB_LIBX11_CONF_OPTS = \ --disable-malloc0returnsnull \ --disable-specs \ --without-perl HOST_XLIB_LIBX11_CONF_OPTS = \ --disable-specs \ --without-perl $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xlib_libXScrnSaver/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXSCRNSAVER bool "libXScrnSaver" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XORGPROTO help X.Org XScrnSaver library ================================================ FILE: package/x11r7/xlib_libXScrnSaver/xlib_libXScrnSaver.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-July/002906.html md5 eeea9d5af3e6c143d0ea1721d27a5e49 libXScrnSaver-1.2.3.tar.bz2 sha1 70c791c5755a298ecf1a0823e239a24fa4b2b42f libXScrnSaver-1.2.3.tar.bz2 sha256 f917075a1b7b5a38d67a8b0238eaab14acd2557679835b154cf2bca576e89bf8 libXScrnSaver-1.2.3.tar.bz2 sha512 7ea628324a11b25ee82c7b11c6bf98f37de219354de51c1e29467b5de422669ba1ab121f3b9dc674093c8f3960e93c5d5428122f5539092f79bc8451c768354a libXScrnSaver-1.2.3.tar.bz2 # Locally computed sha256 5cf3e16f5dd753a4c0853e8227134ab65f5562d9ef89b1a2d7681f5c8ac9feb5 COPYING ================================================ FILE: package/x11r7/xlib_libXScrnSaver/xlib_libXScrnSaver.mk ================================================ ################################################################################ # # xlib_libXScrnSaver # ################################################################################ XLIB_LIBXSCRNSAVER_VERSION = 1.2.3 XLIB_LIBXSCRNSAVER_SOURCE = libXScrnSaver-$(XLIB_LIBXSCRNSAVER_VERSION).tar.bz2 XLIB_LIBXSCRNSAVER_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXSCRNSAVER_LICENSE = MIT XLIB_LIBXSCRNSAVER_LICENSE_FILES = COPYING XLIB_LIBXSCRNSAVER_INSTALL_STAGING = YES XLIB_LIBXSCRNSAVER_DEPENDENCIES = xlib_libX11 xlib_libXext xorgproto XLIB_LIBXSCRNSAVER_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXau/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXAU bool "libXau" select BR2_PACKAGE_XORGPROTO select BR2_PACKAGE_XUTIL_UTIL_MACROS help X.Org Xau library ================================================ FILE: package/x11r7/xlib_libXau/xlib_libXau.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-February/002942.html md5 c5f16288f2da9f071b29111d68797480 libXau-1.0.9.tar.bz2 sha1 ef9b1ad00f958c8b6e30a1bbc11fdfac311c9733 libXau-1.0.9.tar.bz2 sha256 ccf8cbf0dbf676faa2ea0a6d64bcc3b6746064722b606c8c52917ed00dcb73ec libXau-1.0.9.tar.bz2 sha512 3ca454ba466a807ea28b0f715066d73dc76ad312697b121d43e4d5766215052e9b7ffb8fe3ed3e496fa3f2a13f164ac692ff85cc428e26731b679f0f06a1d562 libXau-1.0.9.tar.bz2 # Locally computed sha256 56abe29bb1d9806a9e04fa9f80fed2c0f18027594df3f098148d814aef6bddfa COPYING ================================================ FILE: package/x11r7/xlib_libXau/xlib_libXau.mk ================================================ ################################################################################ # # xlib_libXau # ################################################################################ XLIB_LIBXAU_VERSION = 1.0.9 XLIB_LIBXAU_SOURCE = libXau-$(XLIB_LIBXAU_VERSION).tar.bz2 XLIB_LIBXAU_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXAU_LICENSE = MIT XLIB_LIBXAU_LICENSE_FILES = COPYING XLIB_LIBXAU_INSTALL_STAGING = YES XLIB_LIBXAU_DEPENDENCIES = host-pkgconf xutil_util-macros xorgproto HOST_XLIB_LIBXAU_DEPENDENCIES = \ host-pkgconf host-xutil_util-macros host-xorgproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xlib_libXaw/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXAW bool "libXaw" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_XLIB_LIBXMU select BR2_PACKAGE_XLIB_LIBXPM select BR2_PACKAGE_XORGPROTO help X.Org Xaw library ================================================ FILE: package/x11r7/xlib_libXaw/xlib_libXaw.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-March/003077.html sha256 76aef98ea3df92615faec28004b5ce4e5c6855e716fa16de40c32030722a6f8e libXaw-1.0.14.tar.bz2 sha512 29d1c151369523ae6cb418e636b0b7b39ccccc35462a0b394dbeb46d5b6d780badd2eb872a55d9fbba1ee1af034e76c0463f40f8d8a7be2c336d08b3b1bf81d4 libXaw-1.0.14.tar.bz2 # Locally calculated sha256 9f5adb26952f93b3e4650285b94ec6c61a27aab5a21088bfb6694001be1b360d COPYING ================================================ FILE: package/x11r7/xlib_libXaw/xlib_libXaw.mk ================================================ ################################################################################ # # xlib_libXaw # ################################################################################ XLIB_LIBXAW_VERSION = 1.0.14 XLIB_LIBXAW_SOURCE = libXaw-$(XLIB_LIBXAW_VERSION).tar.bz2 XLIB_LIBXAW_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXAW_LICENSE = MIT XLIB_LIBXAW_LICENSE_FILES = COPYING XLIB_LIBXAW_INSTALL_STAGING = YES XLIB_LIBXAW_DEPENDENCIES = xlib_libX11 xlib_libXt xlib_libXmu xlib_libXpm xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXcomposite/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXCOMPOSITE bool "libXcomposite" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXFIXES select BR2_PACKAGE_XORGPROTO help X.Org Xcomposite library ================================================ FILE: package/x11r7/xlib_libXcomposite/xlib_libXcomposite.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002971.html md5 3fa0841ea89024719b20cd702a9b54e0 libXcomposite-0.4.5.tar.bz2 sha1 902631efb55a798c81086e5ff90b60349839db40 libXcomposite-0.4.5.tar.bz2 sha256 b3218a2c15bab8035d16810df5b8251ffc7132ff3aa70651a1fba0bfe9634e8f libXcomposite-0.4.5.tar.bz2 sha512 502fd51fd9097bb3ca72174ac5b25b9d3b1ff240d32c4765199df03d89337d94b4ddea49e90b177b370862430089d966ce9c38988337156352cfeae911c2d3d5 libXcomposite-0.4.5.tar.bz2 # Locally computed sha256 efa0219ed8485ac555c1a3fb82daf34539b2e0dcf4dadc99c01f1e39c69a4a68 COPYING ================================================ FILE: package/x11r7/xlib_libXcomposite/xlib_libXcomposite.mk ================================================ ################################################################################ # # xlib_libXcomposite # ################################################################################ XLIB_LIBXCOMPOSITE_VERSION = 0.4.5 XLIB_LIBXCOMPOSITE_SOURCE = libXcomposite-$(XLIB_LIBXCOMPOSITE_VERSION).tar.bz2 XLIB_LIBXCOMPOSITE_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXCOMPOSITE_LICENSE = MIT XLIB_LIBXCOMPOSITE_LICENSE_FILES = COPYING XLIB_LIBXCOMPOSITE_INSTALL_STAGING = YES XLIB_LIBXCOMPOSITE_DEPENDENCIES = xlib_libX11 xlib_libXext xlib_libXfixes xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXcursor/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXCURSOR bool "libXcursor" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXFIXES select BR2_PACKAGE_XLIB_LIBXRENDER select BR2_PACKAGE_XORGPROTO help X.Org Xcursor library ================================================ FILE: package/x11r7/xlib_libXcursor/xlib_libXcursor.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002972.html md5 9b9be0e289130fb820aedf67705fc549 libXcursor-1.2.0.tar.bz2 sha1 cca0b34955d3c2f657f05a2a2c40f75353ddd912 libXcursor-1.2.0.tar.bz2 sha256 3ad3e9f8251094af6fe8cb4afcf63e28df504d46bfa5a5529db74a505d628782 libXcursor-1.2.0.tar.bz2 sha512 2b12d0fd17e311ce269dbba58588698885815eb07aa44d48525ed5cd9e5f379bb90138a792a191e2f74888ab10b3ca9a4f507f21de0984ed79748973ab927a03 libXcursor-1.2.0.tar.bz2 # Locally computed sha256 1f1588aff23eec0cb6bb9cfe02f8a75abbe43faf3d9b1eff54b7fbc42774b3ad COPYING ================================================ FILE: package/x11r7/xlib_libXcursor/xlib_libXcursor.mk ================================================ ################################################################################ # # xlib_libXcursor # ################################################################################ XLIB_LIBXCURSOR_VERSION = 1.2.0 XLIB_LIBXCURSOR_SOURCE = libXcursor-$(XLIB_LIBXCURSOR_VERSION).tar.bz2 XLIB_LIBXCURSOR_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXCURSOR_LICENSE = MIT XLIB_LIBXCURSOR_LICENSE_FILES = COPYING XLIB_LIBXCURSOR_INSTALL_STAGING = YES XLIB_LIBXCURSOR_CPE_ID_VENDOR = x XLIB_LIBXCURSOR_CPE_ID_PRODUCT = libxcursor XLIB_LIBXCURSOR_DEPENDENCIES = xlib_libX11 xlib_libXfixes xlib_libXrender xorgproto HOST_XLIB_LIBXCURSOR_DEPENDENCIES = \ host-xlib_libX11 host-xlib_libXfixes host-xlib_libXrender \ host-xorgproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xlib_libXdamage/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXDAMAGE bool "libXdamage" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXFIXES select BR2_PACKAGE_XORGPROTO help X.Org Xdamage library ================================================ FILE: package/x11r7/xlib_libXdamage/xlib_libXdamage.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002973.html md5 e3f554267a7a04b042dc1f6352bd6d99 libXdamage-1.1.5.tar.bz2 sha1 719ae6ab8c1b972c6386b654976c479255af5572 libXdamage-1.1.5.tar.bz2 sha256 b734068643cac3b5f3d2c8279dd366b5bf28c7219d9e9d8717e1383995e0ea45 libXdamage-1.1.5.tar.bz2 sha512 a3ca6cc33b1727f717a3e2aa5593f660508a81a47918a0aa949e9e8fba105e303fe5071983b48caac92feea0fe6e8e01620805e4d19b41f21f20d837b191c124 libXdamage-1.1.5.tar.bz2 # Locally computed sha256 33effe928634be12e668465c3935c5570ff2787b970b15d9243d69df42302c57 COPYING ================================================ FILE: package/x11r7/xlib_libXdamage/xlib_libXdamage.mk ================================================ ################################################################################ # # xlib_libXdamage # ################################################################################ XLIB_LIBXDAMAGE_VERSION = 1.1.5 XLIB_LIBXDAMAGE_SOURCE = libXdamage-$(XLIB_LIBXDAMAGE_VERSION).tar.bz2 XLIB_LIBXDAMAGE_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXDAMAGE_LICENSE = MIT XLIB_LIBXDAMAGE_LICENSE_FILES = COPYING XLIB_LIBXDAMAGE_INSTALL_STAGING = YES XLIB_LIBXDAMAGE_DEPENDENCIES = xlib_libX11 xlib_libXfixes xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXdmcp/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXDMCP bool "libXdmcp" select BR2_PACKAGE_XUTIL_UTIL_MACROS select BR2_PACKAGE_XORGPROTO help X.Org Xdmcp library ================================================ FILE: package/x11r7/xlib_libXdmcp/xlib_libXdmcp.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002974.html md5 115c5c12ecce0e749cd91d999a5fd160 libXdmcp-1.1.3.tar.bz2 sha1 0a8f8a274f829331efb1e8e2027c38631b204dd0 libXdmcp-1.1.3.tar.bz2 sha256 20523b44aaa513e17c009e873ad7bbc301507a3224c232610ce2e099011c6529 libXdmcp-1.1.3.tar.bz2 sha512 cb1d4650f97d66e73acd2465ec7d757b9b797cce2f85e301860a44997a461837eea845ec9bd5b639ec5ca34c804f8bdd870697a5ce3f4e270b687c9ef74f25ec libXdmcp-1.1.3.tar.bz2 # Locally computed sha256 8a3c3f35b0dbcb60a4e242b9e4394a352a65bb27deb2938ea1e2e62a626e16e9 COPYING ================================================ FILE: package/x11r7/xlib_libXdmcp/xlib_libXdmcp.mk ================================================ ################################################################################ # # xlib_libXdmcp # ################################################################################ XLIB_LIBXDMCP_VERSION = 1.1.3 XLIB_LIBXDMCP_SOURCE = libXdmcp-$(XLIB_LIBXDMCP_VERSION).tar.bz2 XLIB_LIBXDMCP_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXDMCP_LICENSE = MIT XLIB_LIBXDMCP_LICENSE_FILES = COPYING XLIB_LIBXDMCP_CPE_ID_VENDOR = x.org XLIB_LIBXDMCP_CPE_ID_PRODUCT = libxdmcp XLIB_LIBXDMCP_INSTALL_STAGING = YES XLIB_LIBXDMCP_DEPENDENCIES = xutil_util-macros xorgproto host-pkgconf HOST_XLIB_LIBXDMCP_DEPENDENCIES = host-xutil_util-macros host-xorgproto host-pkgconf $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xlib_libXext/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXEXT bool "libXext" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XORGPROTO help X.Org Xext library ================================================ FILE: package/x11r7/xlib_libXext/xlib_libXext.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002975.html md5 f5b48bb76ba327cd2a8dc7a383532a95 libXext-1.3.4.tar.bz2 sha1 14e2451162e8766173b5b14c73e94a22b1fcab55 libXext-1.3.4.tar.bz2 sha256 59ad6fcce98deaecc14d39a672cf218ca37aba617c9a0f691cac3bcd28edf82b libXext-1.3.4.tar.bz2 sha512 09146397d95f80c04701be1cc0a9c580ab5a085842ac31d17dfb6d4c2e42b4253b89cba695e54444e520be359883a76ffd02f42484c9e2ba2c33a5a40c29df4a libXext-1.3.4.tar.bz2 # Locally computed sha256 80767ac915f2f0f94de9efb15f0197a59b6f1e609cae85059f8703272dc3e146 COPYING ================================================ FILE: package/x11r7/xlib_libXext/xlib_libXext.mk ================================================ ################################################################################ # # xlib_libXext # ################################################################################ XLIB_LIBXEXT_VERSION = 1.3.4 XLIB_LIBXEXT_SOURCE = libXext-$(XLIB_LIBXEXT_VERSION).tar.bz2 XLIB_LIBXEXT_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXEXT_LICENSE = MIT XLIB_LIBXEXT_LICENSE_FILES = COPYING XLIB_LIBXEXT_CPE_ID_VENDOR = x XLIB_LIBXEXT_CPE_ID_PRODUCT = libxext XLIB_LIBXEXT_INSTALL_STAGING = YES XLIB_LIBXEXT_DEPENDENCIES = xlib_libX11 xorgproto XLIB_LIBXEXT_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXfixes/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXFIXES bool "libXfixes" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XORGPROTO help X.Org Xfixes library ================================================ FILE: package/x11r7/xlib_libXfixes/xlib_libXfixes.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-May/003086.html sha256 a7c1a24da53e0b46cac5aea79094b4b2257321c621b258729bc3139149245b4c libXfixes-6.0.0.tar.bz2 sha512 1985ef156f382e9a7e1cc7e044e0f626de1e4c82557a511cbcf6431994c0ac25b1f8b3a0293bd3089331593db8ce01d3a71ddec68f19b5fe6029d5082fb6885d libXfixes-6.0.0.tar.bz2 # Locally calculated sha256 d64e671ffeb483d4543f98c842788ab34c77427e27d83d6b082065a4438d4885 COPYING ================================================ FILE: package/x11r7/xlib_libXfixes/xlib_libXfixes.mk ================================================ ################################################################################ # # xlib_libXfixes # ################################################################################ XLIB_LIBXFIXES_VERSION = 6.0.0 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_CPE_ID_VENDOR = x XLIB_LIBXFIXES_CPE_ID_PRODUCT = libxfixes XLIB_LIBXFIXES_INSTALL_STAGING = YES XLIB_LIBXFIXES_DEPENDENCIES = xlib_libX11 xorgproto HOST_XLIB_LIBXFIXES_DEPENDENCIES = \ host-xlib_libX11 host-xorgproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xlib_libXfont/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXFONT bool "libXfont" select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_XLIB_LIBFONTENC select BR2_PACKAGE_XLIB_XTRANS select BR2_PACKAGE_XFONT_ENCODINGS select BR2_PACKAGE_XORGPROTO help X.Org Xfont library ================================================ FILE: package/x11r7/xlib_libXfont/xlib_libXfont.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2017-November/002825.html md5 16eaf156edd79b68038b6a7c44aa9e9b libXfont-1.5.4.tar.bz2 sha1 9db050f63b9c4cb19e0dbb40575558ccb95719ca libXfont-1.5.4.tar.bz2 sha256 1a7f7490774c87f2052d146d1e0e64518d32e6848184a18654e8d0bb57883242 libXfont-1.5.4.tar.bz2 sha512 864edbaff45c44bd92bc4b06275c73fdf584a9b88bc523a297d4c75c01ca253f438463e929af70d753ddecfa648bb0b9bcf0ec72267db9f2b1704f7afa906cb3 libXfont-1.5.4.tar.bz2 # Locally calculated sha256 97e413bb4962bbb5773085cd5405502bf1d4eadeaf98ff5be015eacacc840462 COPYING ================================================ FILE: package/x11r7/xlib_libXfont/xlib_libXfont.mk ================================================ ################################################################################ # # xlib_libXfont # ################################################################################ XLIB_LIBXFONT_VERSION = 1.5.4 XLIB_LIBXFONT_SOURCE = libXfont-$(XLIB_LIBXFONT_VERSION).tar.bz2 XLIB_LIBXFONT_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXFONT_LICENSE = MIT XLIB_LIBXFONT_LICENSE_FILES = COPYING XLIB_LIBXFONT_INSTALL_STAGING = YES XLIB_LIBXFONT_DEPENDENCIES = freetype xlib_libfontenc xlib_xtrans xorgproto HOST_XLIB_LIBXFONT_DEPENDENCIES = \ host-freetype host-xlib_libfontenc host-xlib_xtrans \ host-xorgproto XLIB_LIBXFONT_CONF_OPTS = --disable-devel-docs HOST_XLIB_LIBXFONT_CONF_OPTS = --disable-devel-docs ifeq ($(BR2_microblaze),y) # The microblaze toolchains don't define the __ELF__ preprocessor # symbol even though they do use the elf format. LibXfont checks for # this symbol to know if weak symbols are supported, and otherwise # falls back to emulation code using dlopen - Causing linker issues # for stuff using libXfont. # Work around it by defining the symbol here as well. XLIB_LIBXFONT_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -D__ELF__" endif XLIB_LIBXFONT_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) XLIB_LIBXFONT_CFLAGS += -O0 endif XLIB_LIBXFONT_CONF_ENV += CFLAGS="$(XLIB_LIBXFONT_CFLAGS)" $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xlib_libXfont2/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXFONT2 bool "libXfont2" select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_XLIB_LIBFONTENC select BR2_PACKAGE_XLIB_XTRANS select BR2_PACKAGE_XFONT_ENCODINGS select BR2_PACKAGE_XORGPROTO help X.Org Xfont library ================================================ FILE: package/x11r7/xlib_libXfont2/xlib_libXfont2.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-August/003103.html sha256 aa7c6f211cf7215c0ab4819ed893dc98034363d7b930b844bb43603c2e10b53e libXfont2-2.0.5.tar.bz2 sha512 64d0635d14676bb645d61932afb177eb3808a46525b26e7ee31abc975eca75207743e85523fdd82b08010ce124eb4802338b508ee7b126875d2a3c12f8ac4faa libXfont2-2.0.5.tar.bz2 # Locally calculated sha256 97e413bb4962bbb5773085cd5405502bf1d4eadeaf98ff5be015eacacc840462 COPYING ================================================ FILE: package/x11r7/xlib_libXfont2/xlib_libXfont2.mk ================================================ ################################################################################ # # xlib_libXfont2 # ################################################################################ XLIB_LIBXFONT2_VERSION = 2.0.5 XLIB_LIBXFONT2_SOURCE = libXfont2-$(XLIB_LIBXFONT2_VERSION).tar.bz2 XLIB_LIBXFONT2_SITE = https://xorg.freedesktop.org/archive/individual/lib XLIB_LIBXFONT2_LICENSE = MIT XLIB_LIBXFONT2_LICENSE_FILES = COPYING XLIB_LIBXFONT2_CPE_ID_VENDOR = x XLIB_LIBXFONT2_CPE_ID_PRODUCT = libxfont XLIB_LIBXFONT2_INSTALL_STAGING = YES # 0001-configure-define-HAVE_LIBBSD-when-libbsd-was-found.patch XLIB_LIBXFONT2_AUTORECONF = YES XLIB_LIBXFONT2_DEPENDENCIES = \ freetype \ xlib_libfontenc \ xlib_xtrans \ xorgproto \ xfont_encodings ifeq ($(BR2_PACKAGE_LIBBSD),y) XLIB_LIBXFONT2_DEPENDENCIES += libbsd endif HOST_XLIB_LIBXFONT2_DEPENDENCIES = \ host-freetype \ host-xlib_libfontenc \ host-xlib_xtrans \ host-xorgproto \ host-xfont_encodings XLIB_LIBXFONT2_CONF_OPTS = --disable-devel-docs HOST_XLIB_LIBXFONT2_CONF_OPTS = --disable-devel-docs XLIB_LIBXFONT2_CFLAGS = $(TARGET_CFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) XLIB_LIBXFONT2_CFLAGS += -O0 endif XLIB_LIBXFONT2_CONF_ENV = CFLAGS="$(XLIB_LIBXFONT2_CFLAGS)" $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xlib_libXft/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXFT bool "libXft" select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXRENDER select BR2_PACKAGE_XORGPROTO help X.Org Xft library ================================================ FILE: package/x11r7/xlib_libXft/xlib_libXft.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-August/003104.html sha256 57dedaab20914002146bdae0cb0c769ba3f75214c4c91bd2613d6ef79fc9abdd libXft-2.3.4.tar.bz2 sha512 5bb019750982ed4643880efd7368bc226ad49cfa8c0c8c6d4614dfeed74f588c65e1ba69adcc12284ec07d841e5b58fc1c27f3fddf83fe1a2837b29dd9ecec51 libXft-2.3.4.tar.bz2 # Locally computed sha256 7cda22286b1379b9b73df695f72cbad36595e65b039a5fbc5c89b69ecc44438c COPYING ================================================ FILE: package/x11r7/xlib_libXft/xlib_libXft.mk ================================================ ################################################################################ # # xlib_libXft # ################################################################################ XLIB_LIBXFT_VERSION = 2.3.4 XLIB_LIBXFT_SOURCE = libXft-$(XLIB_LIBXFT_VERSION).tar.bz2 XLIB_LIBXFT_SITE = https://xorg.freedesktop.org/archive/individual/lib XLIB_LIBXFT_LICENSE = MIT XLIB_LIBXFT_LICENSE_FILES = COPYING XLIB_LIBXFT_INSTALL_STAGING = YES XLIB_LIBXFT_DEPENDENCIES = fontconfig freetype xlib_libX11 xlib_libXext xlib_libXrender xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXi/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXI bool "libXi" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXFIXES select BR2_PACKAGE_XORGPROTO help X.Org Xi library ================================================ FILE: package/x11r7/xlib_libXi/xlib_libXi.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-June/002999.html md5 62c4af0839072024b4b1c8cbe84216c7 libXi-1.7.10.tar.bz2 sha1 79052e50ea07ce2431f8988a60553d9091d46207 libXi-1.7.10.tar.bz2 sha256 36a30d8f6383a72e7ce060298b4b181fd298bc3a135c8e201b7ca847f5f81061 libXi-1.7.10.tar.bz2 sha512 591f0860bf5904897587c4990d6c852f3729a212d1ef390362d41242440e078221877c31db2232d5cc81727fe97f4e194b077f7de917e251e60641bbd06ee218 libXi-1.7.10.tar.bz2 # Locally computed sha256 9392174bc86e291369fd2f61f3ed325962735a5f5c585ce8d7ebd365e2a5639f COPYING ================================================ FILE: package/x11r7/xlib_libXi/xlib_libXi.mk ================================================ ################################################################################ # # xlib_libXi # ################################################################################ XLIB_LIBXI_VERSION = 1.7.10 XLIB_LIBXI_SOURCE = libXi-$(XLIB_LIBXI_VERSION).tar.bz2 XLIB_LIBXI_SITE = https://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXI_LICENSE = MIT XLIB_LIBXI_LICENSE_FILES = COPYING XLIB_LIBXI_CPE_ID_VENDOR = x.org XLIB_LIBXI_CPE_ID_PRODUCT = libxi XLIB_LIBXI_INSTALL_STAGING = YES XLIB_LIBXI_DEPENDENCIES = \ host-pkgconf \ xlib_libX11 \ xlib_libXext \ xlib_libXfixes \ xorgproto XLIB_LIBXI_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXinerama/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXINERAMA bool "libXinerama" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XORGPROTO help X.Org Xinerama library ================================================ FILE: package/x11r7/xlib_libXinerama/xlib_libXinerama.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-July/002905.html md5 0d5f826a197dae74da67af4a9ef35885 libXinerama-1.1.4.tar.bz2 sha1 34a1d9908ffbd46805d2357c6b05f5e341a8dc7c libXinerama-1.1.4.tar.bz2 sha256 0008dbd7ecf717e1e507eed1856ab0d9cf946d03201b85d5dcf61489bb02d720 libXinerama-1.1.4.tar.bz2 sha512 cff777ad942614fbf6bc6d8529f399e62debf3ecbf6cc0694a94e38c022bf929ffd5636fb59f55533c394d89b23af3ea51fa5128927f12a85787e16239330f14 libXinerama-1.1.4.tar.bz2 # Locally computed sha256 f661fd883b6e980b3b118e0fbe230fbf10eef8d4d4a35931355f29ed647ddbe3 COPYING ================================================ FILE: package/x11r7/xlib_libXinerama/xlib_libXinerama.mk ================================================ ################################################################################ # # xlib_libXinerama # ################################################################################ XLIB_LIBXINERAMA_VERSION = 1.1.4 XLIB_LIBXINERAMA_SOURCE = libXinerama-$(XLIB_LIBXINERAMA_VERSION).tar.bz2 XLIB_LIBXINERAMA_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXINERAMA_LICENSE = MIT XLIB_LIBXINERAMA_LICENSE_FILES = COPYING XLIB_LIBXINERAMA_CPE_ID_VENDOR = x XLIB_LIBXINERAMA_CPE_ID_PRODUCT = libxinerama XLIB_LIBXINERAMA_INSTALL_STAGING = YES XLIB_LIBXINERAMA_DEPENDENCIES = xlib_libX11 xlib_libXext xorgproto XLIB_LIBXINERAMA_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXmu/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXMU bool "libXmu" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_XORGPROTO help X.Org Xmu library ================================================ FILE: package/x11r7/xlib_libXmu/xlib_libXmu.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002978.html md5 ac774cff8b493f566088a255dbf91201 libXmu-1.1.3.tar.bz2 sha1 7ff54ce38379fb795aebed38f6be404ee0dfeec6 libXmu-1.1.3.tar.bz2 sha256 9c343225e7c3dc0904f2122b562278da5fed639b1b5e880d25111561bac5b731 libXmu-1.1.3.tar.bz2 sha512 8c6cc65b22aa031ad870dd92736681a068a0878a425a53dbed909943da1136c4a24034d467cfd3785c3a8d78f66850b69f1ebe1eb24aaf9bc176b1d171a5c762 libXmu-1.1.3.tar.bz2 # Locally computed sha256 e65a4a8bbf8b0dfd2439d6bc6d86df03e2b8e693b757593b25149e099aeb8ec4 COPYING ================================================ FILE: package/x11r7/xlib_libXmu/xlib_libXmu.mk ================================================ ################################################################################ # # xlib_libXmu # ################################################################################ XLIB_LIBXMU_VERSION = 1.1.3 XLIB_LIBXMU_SOURCE = libXmu-$(XLIB_LIBXMU_VERSION).tar.bz2 XLIB_LIBXMU_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXMU_LICENSE = MIT XLIB_LIBXMU_LICENSE_FILES = COPYING XLIB_LIBXMU_INSTALL_STAGING = YES XLIB_LIBXMU_DEPENDENCIES = xlib_libX11 xlib_libXext xlib_libXt xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXpm/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXPM bool "libXpm" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_XORGPROTO help X.Org Xpm library ================================================ FILE: package/x11r7/xlib_libXpm/xlib_libXpm.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-December/003034.html md5 6f0ecf8d103d528cfc803aa475137afa libXpm-3.5.13.tar.bz2 sha1 38b1a2728adb49f4e255aba1530f51789815ffc4 libXpm-3.5.13.tar.bz2 sha256 9cd1da57588b6cb71450eff2273ef6b657537a9ac4d02d0014228845b935ac25 libXpm-3.5.13.tar.bz2 sha512 3b8f6e926272f39b1d95135c2274c00f5aaee1f9fb2ef79f71628df5edeb7ba20158819ef6a778101cc4092493a3b5b613c53634fdccadcc0fc85f0605e5e9a5 libXpm-3.5.13.tar.bz2 # Locally calculated sha256 ed3b06bb3b75a0954bd6837a96b41a4676f60dfeee647271613aadecc0fd596e COPYING sha256 cbe4ced0abc8a32bea471204ae01038c202758ce4e772d3d329a341ffa761e71 COPYRIGHT ================================================ FILE: package/x11r7/xlib_libXpm/xlib_libXpm.mk ================================================ ################################################################################ # # xlib_libXpm # ################################################################################ XLIB_LIBXPM_VERSION = 3.5.13 XLIB_LIBXPM_SOURCE = libXpm-$(XLIB_LIBXPM_VERSION).tar.bz2 XLIB_LIBXPM_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXPM_LICENSE = MIT XLIB_LIBXPM_LICENSE_FILES = COPYING COPYRIGHT XLIB_LIBXPM_CPE_ID_VENDOR = libxpm_project XLIB_LIBXPM_CPE_ID_PRODUCT = libxpm XLIB_LIBXPM_INSTALL_STAGING = YES XLIB_LIBXPM_DEPENDENCIES = xlib_libX11 xlib_libXext xlib_libXt xorgproto \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) \ $(TARGET_NLS_DEPENDENCIES) XLIB_LIBXPM_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) ifeq ($(BR2_SYSTEM_ENABLE_NLS),) XLIB_LIBXPM_CONF_ENV += ac_cv_search_gettext=no endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXrandr/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXRANDR bool "libXrandr" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXRENDER select BR2_PACKAGE_XORGPROTO help X.Org Xrandr library ================================================ FILE: package/x11r7/xlib_libXrandr/xlib_libXrandr.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002979.html md5 18f3b20d522f45e4dadd34afb5bea048 libXrandr-1.5.2.tar.bz2 sha1 7a1f6df239341b76fd59ebbe101d6f180adb43bb libXrandr-1.5.2.tar.bz2 sha256 8aea0ebe403d62330bb741ed595b53741acf45033d3bda1792f1d4cc3daee023 libXrandr-1.5.2.tar.bz2 sha512 fcd005f9839e7ef980607128a5d76d7b671cc2f5755949e03c569c500d7e987cb3f6932750ab8bf6e2c1086ec69dde09d5831f0c2098b9f9ad46be4f56db0d87 libXrandr-1.5.2.tar.bz2 # Locally computed sha256 73777e5be1cef2827d843e4b186803f050c66db472cf8076d88e2b5f71696e67 COPYING ================================================ FILE: package/x11r7/xlib_libXrandr/xlib_libXrandr.mk ================================================ ################################################################################ # # xlib_libXrandr # ################################################################################ XLIB_LIBXRANDR_VERSION = 1.5.2 XLIB_LIBXRANDR_SOURCE = libXrandr-$(XLIB_LIBXRANDR_VERSION).tar.bz2 XLIB_LIBXRANDR_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXRANDR_LICENSE = MIT XLIB_LIBXRANDR_LICENSE_FILES = COPYING XLIB_LIBXRANDR_CPE_ID_VENDOR = x.org XLIB_LIBXRANDR_CPE_ID_PRODUCT = libxrandr XLIB_LIBXRANDR_INSTALL_STAGING = YES XLIB_LIBXRANDR_DEPENDENCIES = xlib_libX11 xlib_libXext xlib_libXrender xorgproto XLIB_LIBXRANDR_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXrender/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXRENDER bool "libXrender" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XORGPROTO help X.Org Xrender library ================================================ FILE: package/x11r7/xlib_libXrender/xlib_libXrender.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2016-October/002725.html sha256 c06d5979f86e64cabbde57c223938db0b939dff49fdb5a793a1d3d0396650949 libXrender-0.9.10.tar.bz2 # Locally calculated sha256 bbe1db89c48816c48248796adac91defd8fbde1141b145f01511781ab87f29a1 COPYING ================================================ FILE: package/x11r7/xlib_libXrender/xlib_libXrender.mk ================================================ ################################################################################ # # xlib_libXrender # ################################################################################ XLIB_LIBXRENDER_VERSION = 0.9.10 XLIB_LIBXRENDER_SOURCE = libXrender-$(XLIB_LIBXRENDER_VERSION).tar.bz2 XLIB_LIBXRENDER_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXRENDER_LICENSE = MIT XLIB_LIBXRENDER_LICENSE_FILES = COPYING XLIB_LIBXRENDER_CPE_ID_VENDOR = x.org XLIB_LIBXRENDER_CPE_ID_PRODUCT = libxrender XLIB_LIBXRENDER_INSTALL_STAGING = YES XLIB_LIBXRENDER_DEPENDENCIES = xlib_libX11 xorgproto HOST_XLIB_LIBXRENDER_DEPENDENCIES = \ host-xlib_libX11 host-xorgproto XLIB_LIBXRENDER_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xlib_libXres/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXRES bool "libXres" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XORGPROTO help X.Org XRes library ================================================ FILE: package/x11r7/xlib_libXres/xlib_libXres.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-March/003078.html sha256 b6e6fb1ebb61610e56017edd928fb89a5f53b3f4f990078309877468663b2b11 libXres-1.2.1.tar.bz2 sha512 c17d28406e17e305dc4976f095e88059735f5bd8c600adf2e556523c9e0dd7fa01dcbf7a9d28a642e77e49a5b30f54bb9b2fc34bfbedce467ee2a020bba5cdf1 libXres-1.2.1.tar.bz2 # Locally calculated sha256 0d7300168f85833ea2564835f66a61e036ede90b33e76c06a7b4078096fedbcc COPYING ================================================ FILE: package/x11r7/xlib_libXres/xlib_libXres.mk ================================================ ################################################################################ # # xlib_libXres # ################################################################################ XLIB_LIBXRES_VERSION = 1.2.1 XLIB_LIBXRES_SOURCE = libXres-$(XLIB_LIBXRES_VERSION).tar.bz2 XLIB_LIBXRES_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXRES_LICENSE = MIT XLIB_LIBXRES_LICENSE_FILES = COPYING XLIB_LIBXRES_CPE_ID_VENDOR = x XLIB_LIBXRES_CPE_ID_PRODUCT = libxres XLIB_LIBXRES_INSTALL_STAGING = YES XLIB_LIBXRES_DEPENDENCIES = xlib_libX11 xlib_libXext xorgproto XLIB_LIBXRES_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXt/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXT bool "libXt" select BR2_PACKAGE_XLIB_LIBSM select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XORGPROTO select BR2_PACKAGE_XCB_PROTO select BR2_PACKAGE_LIBXCB help X.Org Xt library ================================================ FILE: package/x11r7/xlib_libXt/xlib_libXt.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-January/003070.html sha256 679cc08f1646dbd27f5e48ffe8dd49406102937109130caab02ca32c083a3d60 libXt-1.2.1.tar.bz2 sha512 6877af61ba91eeed6b6f80471b84f354ad0ec0827249c7ee0a00c13508063fe8d2696dd400a4bdbc6ca2ff67cbe1317ad5ac24522fd96099dc56535e33ca052c libXt-1.2.1.tar.bz2 # Locally calculated sha256 a2866ccc0b1745149e4a2258d934314d40cbb43bd8318c6fa597f233995b0a81 COPYING ================================================ FILE: package/x11r7/xlib_libXt/xlib_libXt.mk ================================================ ################################################################################ # # xlib_libXt # ################################################################################ XLIB_LIBXT_VERSION = 1.2.1 XLIB_LIBXT_SOURCE = libXt-$(XLIB_LIBXT_VERSION).tar.bz2 XLIB_LIBXT_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXT_LICENSE = MIT XLIB_LIBXT_LICENSE_FILES = COPYING XLIB_LIBXT_INSTALL_STAGING = YES XLIB_LIBXT_CPE_ID_VENDOR = x XLIB_LIBXT_CPE_ID_PRODUCT = libxt XLIB_LIBXT_DEPENDENCIES = xlib_libSM xlib_libX11 xorgproto xcb-proto libxcb host-xorgproto XLIB_LIBXT_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXtst/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXTST bool "libXtst" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXI select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XORGPROTO help X.Org Xtst library ================================================ FILE: package/x11r7/xlib_libXtst/xlib_libXtst.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2016-October/002726.html sha256 4655498a1b8e844e3d6f21f3b2c4e2b571effb5fd83199d428a6ba7ea4bf5204 libXtst-1.2.3.tar.bz2 # Locally computed sha256 940190489c7a0e5ae3d83fc4fcbd79e0cd1b765bf1a4efd408293c1ee0332ceb COPYING ================================================ FILE: package/x11r7/xlib_libXtst/xlib_libXtst.mk ================================================ ################################################################################ # # xlib_libXtst # ################################################################################ XLIB_LIBXTST_VERSION = 1.2.3 XLIB_LIBXTST_SOURCE = libXtst-$(XLIB_LIBXTST_VERSION).tar.bz2 XLIB_LIBXTST_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXTST_LICENSE = MIT XLIB_LIBXTST_LICENSE_FILES = COPYING XLIB_LIBXTST_INSTALL_STAGING = YES XLIB_LIBXTST_CPE_ID_VENDOR = x XLIB_LIBXTST_CPE_ID_PRODUCT = libxtst XLIB_LIBXTST_DEPENDENCIES = \ xlib_libX11 \ xlib_libXext \ xlib_libXi \ xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXv/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXV bool "libXv" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XORGPROTO help X.Org Xv library ================================================ FILE: package/x11r7/xlib_libXv/xlib_libXv.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2016-October/002727.html sha256 d26c13eac99ac4504c532e8e76a1c8e4bd526471eb8a0a4ff2a88db60cb0b088 libXv-1.0.11.tar.bz2 # Locally calculated sha256 4fac4d581d00f11c459d68b7cb970f3d4e5a5bbfb53784d85f59a90076280301 COPYING ================================================ FILE: package/x11r7/xlib_libXv/xlib_libXv.mk ================================================ ################################################################################ # # xlib_libXv # ################################################################################ XLIB_LIBXV_VERSION = 1.0.11 XLIB_LIBXV_SOURCE = libXv-$(XLIB_LIBXV_VERSION).tar.bz2 XLIB_LIBXV_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXV_LICENSE = ISC-like XLIB_LIBXV_LICENSE_FILES = COPYING XLIB_LIBXV_CPE_ID_VENDOR = x.org XLIB_LIBXV_CPE_ID_PRODUCT = libxv XLIB_LIBXV_INSTALL_STAGING = YES XLIB_LIBXV_DEPENDENCIES = xlib_libX11 xlib_libXext xorgproto XLIB_LIBXV_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXvMC/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXVMC bool "libXvMC" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXV select BR2_PACKAGE_XORGPROTO help X.Org XvMC library ================================================ FILE: package/x11r7/xlib_libXvMC/xlib_libXvMC.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-September/003023.html md5 3569ff7f3e26864d986d6a21147eaa58 libXvMC-1.0.12.tar.bz2 sha1 4871f92a83faa86aff5c630a2d6016c67bf11b97 libXvMC-1.0.12.tar.bz2 sha256 6b3da7977b3f7eaf4f0ac6470ab1e562298d82c4e79077765787963ab7966dcd libXvMC-1.0.12.tar.bz2 sha512 62cb9a72b20af3b081d2d555a253b0e2b8b26b31f4fad10bd3e53bbf96e1663b61bd8df2b78b16f18218cd37cce0c9e6809ae16ded226b37a8b199e41b223955 libXvMC-1.0.12.tar.bz2 # Locally computed sha256 b7c709df281675a07eb60a71c5fa2599d1ef538eb79ae7ad6e774b10e4a804c4 COPYING ================================================ FILE: package/x11r7/xlib_libXvMC/xlib_libXvMC.mk ================================================ ################################################################################ # # xlib_libXvMC # ################################################################################ XLIB_LIBXVMC_VERSION = 1.0.12 XLIB_LIBXVMC_SOURCE = libXvMC-$(XLIB_LIBXVMC_VERSION).tar.bz2 XLIB_LIBXVMC_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXVMC_LICENSE = MIT XLIB_LIBXVMC_LICENSE_FILES = COPYING XLIB_LIBXVMC_CPE_ID_VENDOR = x.org XLIB_LIBXVMC_CPE_ID_PRODUCT = libxvmc XLIB_LIBXVMC_INSTALL_STAGING = YES XLIB_LIBXVMC_DEPENDENCIES = xlib_libX11 xlib_libXext xlib_libXv xorgproto XLIB_LIBXVMC_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXxf86dga/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXXF86DGA bool "libXxf86dga" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XORGPROTO help X.Org Xxf86dga library ================================================ FILE: package/x11r7/xlib_libXxf86dga/xlib_libXxf86dga.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002982.html md5 0ddeafc13b33086357cfa96fae41ee8e libXxf86dga-1.1.5.tar.bz2 sha1 332ba80d1b3d06473f7bbfe1612e7c5b58fbdf69 libXxf86dga-1.1.5.tar.bz2 sha256 2b98bc5f506c6140d4eddd3990842d30f5dae733b64f198a504f07461bdb7203 libXxf86dga-1.1.5.tar.bz2 sha512 0e77c4003aeba737b10c17d55aeefa935fc57c4ba9e8f79a834f3f8c690d6a1d98f69ad707eded784346c1cf40c41829719d257283b5eae3207147fb4c79ed89 libXxf86dga-1.1.5.tar.bz2 # Locally computed sha256 dd27933ebc5c063128b158b085e4c442a36b0e6f704cf753116da119610191da COPYING ================================================ FILE: package/x11r7/xlib_libXxf86dga/xlib_libXxf86dga.mk ================================================ ################################################################################ # # xlib_libXxf86dga # ################################################################################ XLIB_LIBXXF86DGA_VERSION = 1.1.5 XLIB_LIBXXF86DGA_SOURCE = libXxf86dga-$(XLIB_LIBXXF86DGA_VERSION).tar.bz2 XLIB_LIBXXF86DGA_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXXF86DGA_LICENSE = MIT XLIB_LIBXXF86DGA_LICENSE_FILES = COPYING XLIB_LIBXXF86DGA_CPE_ID_VENDOR = x XLIB_LIBXXF86DGA_CPE_ID_PRODUCT = libxxf86dga XLIB_LIBXXF86DGA_INSTALL_STAGING = YES XLIB_LIBXXF86DGA_DEPENDENCIES = xlib_libX11 xlib_libXext xorgproto XLIB_LIBXXF86DGA_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libXxf86vm/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXXF86VM bool "libXxf86vm" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XORGPROTO help X.Org Xxf86vm library ================================================ FILE: package/x11r7/xlib_libXxf86vm/xlib_libXxf86vm.hash ================================================ # From http://lists.x.org/archives/xorg-announce/2015-February/002539.html sha1 78ef18ca2be157131899e01c62679e247409a13f libXxf86vm-1.1.4.tar.bz2 sha256 afee27f93c5f31c0ad582852c0fb36d50e4de7cd585fcf655e278a633d85cd57 libXxf86vm-1.1.4.tar.bz2 # Locally calculated sha256 f3da8eaed19e27e4f67e6f076d4ebdb8d649e15a8ad33a415fb65a23de1b6689 COPYING ================================================ FILE: package/x11r7/xlib_libXxf86vm/xlib_libXxf86vm.mk ================================================ ################################################################################ # # xlib_libXxf86vm # ################################################################################ XLIB_LIBXXF86VM_VERSION = 1.1.4 XLIB_LIBXXF86VM_SOURCE = libXxf86vm-$(XLIB_LIBXXF86VM_VERSION).tar.bz2 XLIB_LIBXXF86VM_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXXF86VM_LICENSE = MIT XLIB_LIBXXF86VM_LICENSE_FILES = COPYING XLIB_LIBXXF86VM_CPE_ID_VENDOR = x XLIB_LIBXXF86VM_CPE_ID_PRODUCT = libxxf86vm XLIB_LIBXXF86VM_INSTALL_STAGING = YES XLIB_LIBXXF86VM_DEPENDENCIES = xlib_libX11 xlib_libXext xorgproto XLIB_LIBXXF86VM_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libdmx/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBDMX bool "libdmx" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XORGPROTO help X.Org dmx library ================================================ FILE: package/x11r7/xlib_libdmx/xlib_libdmx.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-May/002894.html md5 d2f1f0ec68ac3932dd7f1d9aa0a7a11c libdmx-1.1.4.tar.bz2 sha1 499e2540ca0e94ca858037865243c3c60908fd94 libdmx-1.1.4.tar.bz2 sha256 253f90005d134fa7a209fbcbc5a3024335367c930adf0f3203e754cf32747243 libdmx-1.1.4.tar.bz2 sha512 77aba6cadfd17db0cc7e1bc26f14d908223a0fdb135d46f86c3be34e3bc7e2f843f08d4d0ef773357e83b17122bffe56a0442d12908378c05a22177b10ae10e9 libdmx-1.1.4.tar.bz2 # Locally computed sha256 819e8dcd3dd2a44850c350331aa492230f86bccb0983dd739dec5ba36d7d2b8e COPYING ================================================ FILE: package/x11r7/xlib_libdmx/xlib_libdmx.mk ================================================ ################################################################################ # # xlib_libdmx # ################################################################################ XLIB_LIBDMX_VERSION = 1.1.4 XLIB_LIBDMX_SOURCE = libdmx-$(XLIB_LIBDMX_VERSION).tar.bz2 XLIB_LIBDMX_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBDMX_LICENSE = MIT XLIB_LIBDMX_LICENSE_FILES = COPYING XLIB_LIBDMX_CPE_ID_VENDOR = x XLIB_LIBDMX_CPE_ID_PRODUCT = libdmx XLIB_LIBDMX_INSTALL_STAGING = YES XLIB_LIBDMX_DEPENDENCIES = xlib_libX11 xlib_libXext xorgproto XLIB_LIBDMX_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_libfontenc/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBFONTENC bool "libfontenc" select BR2_PACKAGE_XORGPROTO select BR2_PACKAGE_ZLIB help X.Org fontenc library ================================================ FILE: package/x11r7/xlib_libfontenc/xlib_libfontenc.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-February/002956.html md5 6447db6a689fb530c218f0f8328c3abc libfontenc-1.1.4.tar.bz2 sha1 d4f232b0b07487b984e13422ce4130b61a8b9edb libfontenc-1.1.4.tar.bz2 sha256 2cfcce810ddd48f2e5dc658d28c1808e86dcf303eaff16728b9aa3dbc0092079 libfontenc-1.1.4.tar.bz2 sha512 76fa851d00113241f15fdd5b5bb7e927b8d8b9a82ce3fcb0678b8c7e32cb5e8d898c4bda1d60dafb7748145049d3240627ac34a2360c64e98a7a912ea7c30582 libfontenc-1.1.4.tar.bz2 # Locally computed sha256 a4dda7a643b517794bfa23dc9605da030055df38ac8a5b9e1905e690975a59c4 COPYING ================================================ FILE: package/x11r7/xlib_libfontenc/xlib_libfontenc.mk ================================================ ################################################################################ # # xlib_libfontenc # ################################################################################ XLIB_LIBFONTENC_VERSION = 1.1.4 XLIB_LIBFONTENC_SOURCE = libfontenc-$(XLIB_LIBFONTENC_VERSION).tar.bz2 XLIB_LIBFONTENC_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBFONTENC_LICENSE = MIT XLIB_LIBFONTENC_LICENSE_FILES = COPYING XLIB_LIBFONTENC_INSTALL_STAGING = YES XLIB_LIBFONTENC_DEPENDENCIES = zlib xorgproto host-pkgconf HOST_XLIB_LIBFONTENC_DEPENDENCIES = host-zlib host-xorgproto host-pkgconf $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xlib_libxkbfile/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXKBFILE bool "libxkbfile" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XORGPROTO help X.Org xkbfile library ================================================ FILE: package/x11r7/xlib_libxkbfile/xlib_libxkbfile.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002977.html md5 dd7e1e946def674e78c0efbc5c7d5b3b libxkbfile-1.1.0.tar.bz2 sha1 487f314b6dbc17e93d0fe1e3741392156a9ca895 libxkbfile-1.1.0.tar.bz2 sha256 758dbdaa20add2db4902df0b1b7c936564b7376c02a0acd1f2a331bd334b38c7 libxkbfile-1.1.0.tar.bz2 sha512 1c6a57564e916ccdc3df3c49b9f3589f701df0cec55112c12ddc35ac3ed556608c28fe98e5ba0ac1962e9a65ed1e90eb7e6169b564951bf55a7cf3499b745826 libxkbfile-1.1.0.tar.bz2 # Locally computed sha256 e1b3fdad8037ab3f986ef9caaa7c8da47d8d55875e680c7d6011f6c07363ea7c COPYING ================================================ FILE: package/x11r7/xlib_libxkbfile/xlib_libxkbfile.mk ================================================ ################################################################################ # # xlib_libxkbfile # ################################################################################ XLIB_LIBXKBFILE_VERSION = 1.1.0 XLIB_LIBXKBFILE_SOURCE = libxkbfile-$(XLIB_LIBXKBFILE_VERSION).tar.bz2 XLIB_LIBXKBFILE_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXKBFILE_LICENSE = MIT XLIB_LIBXKBFILE_LICENSE_FILES = COPYING XLIB_LIBXKBFILE_INSTALL_STAGING = YES XLIB_LIBXKBFILE_DEPENDENCIES = xlib_libX11 xorgproto HOST_XLIB_LIBXKBFILE_DEPENDENCIES = host-xlib_libX11 host-xorgproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xlib_libxshmfence/Config.in ================================================ config BR2_PACKAGE_XLIB_LIBXSHMFENCE bool "libxshmfence" # Due to use of SYS_futex - can be enabled again when upstream # adds SYS_futex64 as an alternative depends on !BR2_RISCV_32 depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_XORGPROTO help X.Org shmfence library ================================================ FILE: package/x11r7/xlib_libxshmfence/xlib_libxshmfence.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2018-February/002840.html md5 42dda8016943dc12aff2c03a036e0937 libxshmfence-1.3.tar.bz2 sha1 3472218fc0e8ee8183533d22dbcd4bbe90bf3ab8 libxshmfence-1.3.tar.bz2 sha256 b884300d26a14961a076fbebc762a39831cb75f92bed5ccf9836345b459220c7 libxshmfence-1.3.tar.bz2 sha512 c446e055f8fac62b9aa266132289a4cfc030282147974c45ce96d1768a98d1afb997470e58e4a68513174c404cbf373bdde2f0cd4b34abdbce1d89dd0b6fe2b7 libxshmfence-1.3.tar.bz2 # Locally computed sha256 64a579d1a0b3347301d87c94698a58ea7933d0ae6ca7e8fdd702fde2ea376301 COPYING ================================================ FILE: package/x11r7/xlib_libxshmfence/xlib_libxshmfence.mk ================================================ ################################################################################ # # xlib_libxshmfence # ################################################################################ XLIB_LIBXSHMFENCE_VERSION = 1.3 XLIB_LIBXSHMFENCE_SOURCE = libxshmfence-$(XLIB_LIBXSHMFENCE_VERSION).tar.bz2 XLIB_LIBXSHMFENCE_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXSHMFENCE_LICENSE = MIT XLIB_LIBXSHMFENCE_LICENSE_FILES = COPYING XLIB_LIBXSHMFENCE_INSTALL_STAGING = YES XLIB_LIBXSHMFENCE_DEPENDENCIES = host-pkgconf xorgproto $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xlib_xtrans/Config.in ================================================ config BR2_PACKAGE_XLIB_XTRANS bool "xtrans" help X.Org xtrans library ================================================ FILE: package/x11r7/xlib_xtrans/xlib_xtrans.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002980.html md5 ce2fb8100c6647ee81451ebe388b17ad xtrans-1.4.0.tar.bz2 sha1 7c490026efb450798e02b040c05eba5212291c08 xtrans-1.4.0.tar.bz2 sha256 377c4491593c417946efcd2c7600d1e62639f7a8bbca391887e2c4679807d773 xtrans-1.4.0.tar.bz2 sha512 4fea89a3455c0e13321cbefa43340016dbb59bdd0dbdb5b796c1a6d2a6b1fd63cf1327b769ab426286b9c54b32ec764a50cd2b46228e4e43b841bda6b94de214 xtrans-1.4.0.tar.bz2 # Locally computed sha256 a9c96c832e00774266b492d4d41556f12a64f039ba3ef645c4b8c6010fcb8f2a COPYING ================================================ FILE: package/x11r7/xlib_xtrans/xlib_xtrans.mk ================================================ ################################################################################ # # xlib_xtrans # ################################################################################ XLIB_XTRANS_VERSION = 1.4.0 XLIB_XTRANS_SOURCE = xtrans-$(XLIB_XTRANS_VERSION).tar.bz2 XLIB_XTRANS_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_XTRANS_LICENSE = MIT XLIB_XTRANS_LICENSE_FILES = COPYING XLIB_XTRANS_INSTALL_STAGING = YES $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xorgproto/Config.in ================================================ config BR2_PACKAGE_XORGPROTO bool "xorgproto" help This package combines the protocol headers, which were formerly scattered in individual packages. ================================================ FILE: package/x11r7/xorgproto/xorgproto.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-April/003085.html sha256 0f5157030162844b398e7ce69b8bb967c2edb8064b0a9c9bb5517eb621459fbf xorgproto-2021.4.tar.bz2 sha512 0d905e5f135daf7005e23371cbdc41a62d99567e0a20784e71ead0092ffd1e7582733819f7198add1d97edcc9aa80012ae01d2be8367280d69b41d0c25349367 xorgproto-2021.4.tar.bz2 # Locally computed sha256 aacd931f191b610902aee1e526090c2858aabc07969441fa2537ffd3e7049555 COPYING-applewmproto sha256 dabc025f93129a0eb2d17f37c719dbe5ecbcb5bc8f7bc7f4ce89fe04576cc0c2 COPYING-bigreqsproto sha256 ab587ca94282c1e60797ffe4a77aea195418387db20ec7e0c24cedf2c844f8c1 COPYING-compositeproto sha256 f67a18cb46c4c203c5122b4a901cfcc3178b2a62f83f31ca5fef5bdca3966094 COPYING-damageproto sha256 819e8dcd3dd2a44850c350331aa492230f86bccb0983dd739dec5ba36d7d2b8e COPYING-dmxproto sha256 0c306691492c4d7a8cda1ec3847668b797887dddcd7e986b4c166ae27619af7d COPYING-dri2proto sha256 64a579d1a0b3347301d87c94698a58ea7933d0ae6ca7e8fdd702fde2ea376301 COPYING-dri3proto sha256 0aa43d03da3cedbd9882c0ded621b0d855353eb9e551f9eed940d75c8a0b03c1 COPYING-evieproto sha256 65cb0b867b00fb27f066a37353713b265645b3301146562570d7638ed2ddd548 COPYING-fixesproto sha256 1ab381e978bff63d68be2e4f235d51935f3f16f3ba3bebf83afa99a70c0484a2 COPYING-fontcacheproto sha256 f4af05774b02ae149357cc26f7bf5ef1116c2e09373c2492081a3a1892c58417 COPYING-fontsproto sha256 823deb4673d3f26aa8c90e704888299648f00be3262f9363eaeecedcd65b936d COPYING-glproto sha256 5e083a2ace0215a6084c877c023a6079952ba803d692488203ba4269196debe3 COPYING-inputproto sha256 d397a67d4b28e897bc5fce79b2b917df9905b54f961fc3ad1f49c7fe3803f92c COPYING-kbproto sha256 7a5dd5d4c989c167da50f15879959f42bbda960e06d0a0aea7197f61fe1dc846 COPYING-lg3dproto sha256 8442b5f22f2fb13017a4302a906e7dedc899267b41f613558970941120170128 COPYING-pmproto sha256 64a579d1a0b3347301d87c94698a58ea7933d0ae6ca7e8fdd702fde2ea376301 COPYING-presentproto sha256 6b890b118261694865988378dbba876bcd9caa1a421c5c0d626116948bc0ae35 COPYING-printproto sha256 41c13dcd09147ed2440286f2fb8151df8ebee06deee4ed78ddf094601c216d3d COPYING-randrproto sha256 ee10aee0f1697ffdbe870a39f037361d4f7136f2976bb7919a41b3f66407caee COPYING-recordproto sha256 9e48921a94da36d7a69fe71809223ee0bb46370db9842dccdeeb55b5a9946872 COPYING-renderproto sha256 403e7be948674530ad40669b1e3a31adeddb656502f3b0ef810d5d3cc35d0b52 COPYING-resourceproto sha256 fcbd3c628bf4d28ee3e6032054bf44bbe58f3b1a944dad856a8d3eb6b37ea412 COPYING-scrnsaverproto sha256 d6d3513f5a7099748dc387f54498d799380b45f8a444f13aa98aa45a860ae55b COPYING-trapproto sha256 f8f49bbad61967ebc890fb79fff5bfb7cfc1c341aa8f8dee13eb3fb534040b47 COPYING-videoproto sha256 eb183a00c61bb47992f096b6993ed7ec17518bea9c285fe87efff7f622cc6c12 COPYING-windowswmproto sha256 3bd8e0c41497bfe6ab8d11c3c90c5e79edd0b2437f2bf81161575f54bae53f21 COPYING-x11proto sha256 5531d18cfcc944dab39991f63f182cbbce3fe493ba0c7cf08a25c0d01ee84482 COPYING-xcmiscproto sha256 fb42146c6c06a200a9b121220eb692ff9101ba0fbd0b224b9e16a016c59ae86a COPYING-xextproto sha256 3591964e01a9cdfc9cc4149a847a431a3f3d98328cc9e5864c7a7831b29c4058 COPYING-xf86bigfontproto sha256 3591964e01a9cdfc9cc4149a847a431a3f3d98328cc9e5864c7a7831b29c4058 COPYING-xf86dgaproto sha256 4a05d06752388d9db71ee1006f371d4fb2c316a821fc2fc272db90b3ef978334 COPYING-xf86driproto sha256 3591964e01a9cdfc9cc4149a847a431a3f3d98328cc9e5864c7a7831b29c4058 COPYING-xf86miscproto sha256 3591964e01a9cdfc9cc4149a847a431a3f3d98328cc9e5864c7a7831b29c4058 COPYING-xf86rushproto sha256 942bb46a3503a708948491699171b00b9e0dfb47818d9268b160bccc5f51a4b9 COPYING-xf86vidmodeproto sha256 b2d8cda803e900915ce10f0ba735ff2c033b39c7cc5a8a436667ca583d4066fa COPYING-xineramaproto ================================================ FILE: package/x11r7/xorgproto/xorgproto.mk ================================================ ################################################################################ # # xorgproto # ################################################################################ XORGPROTO_VERSION = 2021.4 XORGPROTO_SOURCE = xorgproto-$(XORGPROTO_VERSION).tar.bz2 XORGPROTO_SITE = https://xorg.freedesktop.org/archive/individual/proto XORGPROTO_LICENSE = MIT XORGPROTO_LICENSE_FILES = \ COPYING-applewmproto \ COPYING-bigreqsproto \ COPYING-compositeproto \ COPYING-damageproto \ COPYING-dmxproto \ COPYING-dri2proto \ COPYING-dri3proto \ COPYING-evieproto \ COPYING-fixesproto \ COPYING-fontcacheproto \ COPYING-fontsproto \ COPYING-glproto \ COPYING-inputproto \ COPYING-kbproto \ COPYING-lg3dproto \ COPYING-pmproto \ COPYING-presentproto \ COPYING-printproto \ COPYING-randrproto \ COPYING-recordproto \ COPYING-renderproto \ COPYING-resourceproto \ COPYING-scrnsaverproto \ COPYING-trapproto \ COPYING-videoproto \ COPYING-windowswmproto \ COPYING-x11proto \ COPYING-xcmiscproto \ COPYING-xextproto \ COPYING-xf86bigfontproto \ COPYING-xf86dgaproto \ COPYING-xf86driproto \ COPYING-xf86miscproto \ COPYING-xf86rushproto \ COPYING-xf86vidmodeproto \ COPYING-xineramaproto XORGPROTO_INSTALL_STAGING = YES XORGPROTO_INSTALL_TARGET = NO # xproxymngproto is needed by xfindproxy XORGPROTO_CONF_OPTS += --enable-legacy $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11r7/xserver_xorg-server/0001-modesettings-needs-dri2.patch ================================================ 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://gitlab.freedesktop.org/xorg/xserver/issues/479 [rebased for version 1.20.0] 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 @@ -1962,7 +1962,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 XORG_DRIVER_MODESETTING=yes fi ================================================ FILE: package/x11r7/xserver_xorg-server/0002-include-misc.h-fix-uClibc-build.patch ================================================ From 2e8fca00f5bdb02f2f59aaa428d1e9d808ab0e86 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sat, 16 Jun 2018 19:20:16 +0200 Subject: [PATCH] include/misc.h: fix uClibc build A similar fix was used for Dovecot: https://www.dovecot.org/list/dovecot/2017-November/110019.html Signed-off-by: Bernd Kuhls --- include/misc.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/misc.h b/include/misc.h index 14920c3c3..390e52b60 100644 --- a/include/misc.h +++ b/include/misc.h @@ -185,6 +185,10 @@ typedef struct _xReq *xReqPtr; #endif #endif +#undef bswap_16 +#undef bswap_32 +#undef bswap_64 + /** * Calculate the number of bytes needed to hold bits. * @param bits The minimum number of bits needed. -- 2.17.1 ================================================ FILE: package/x11r7/xserver_xorg-server/0003-hw-xwayland-Makefile.am-fix-build-without-glx.patch ================================================ From b1d2a82d644518c1a75775244ac63be738aaf062 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 19 Apr 2019 10:19:50 +0200 Subject: [PATCH] hw/xwayland/Makefile.am: fix build without glx Commit d8ec33fe0542141aed1d9016d2ecaf52da944b4b added libglxvnd.la to Xwayland_LDFLAGS but GLX can be disabled through --disable-glx. In this case, build fails on: make[3]: *** No rule to make target '../../glx/libglxvnd.la', needed by 'Xwayland'. Stop. make[3]: *** Waiting for unfinished jobs.... Fixes: - http://autobuild.buildroot.org/results/397f8098c57fc6c88aa12dc8d35ebb1b933d52ef Signed-off-by: Fabrice Fontaine [Upstream status: https://gitlab.freedesktop.org/xorg/xserver/merge_requests/173] --- hw/xwayland/Makefile.am | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/xwayland/Makefile.am b/hw/xwayland/Makefile.am index bc1cb8506..502879e2a 100644 --- a/hw/xwayland/Makefile.am +++ b/hw/xwayland/Makefile.am @@ -21,10 +21,14 @@ Xwayland_SOURCES = \ $(top_srcdir)/Xi/stubs.c \ $(top_srcdir)/mi/miinitext.c +if GLX +GLXVND_LIB = $(top_builddir)/glx/libglxvnd.la +endif + Xwayland_LDADD = \ $(glamor_lib) \ $(XWAYLAND_LIBS) \ - $(top_builddir)/glx/libglxvnd.la \ + $(GLXVND_LIB) \ $(XWAYLAND_SYS_LIBS) \ $(top_builddir)/Xext/libXvidmode.la \ $(XSERVER_SYS_LIBS) -- 2.20.1 ================================================ FILE: package/x11r7/xserver_xorg-server/0004-hw-xfree86-common-xf86Init.c-fix-build-without-glx.patch ================================================ From 49456e0a37fac7bc9d1f01bc1519fb0d699956db Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 27 Dec 2019 23:33:37 +0100 Subject: [PATCH] hw/xfree86/common/xf86Init.c: fix build without glx Since commit d8ec33fe0542141aed1d9016d2ecaf52da944b4b, an include on glxvndabi.h has been added to hw/xfree86/common/xf86Init.c However, if glx is disabled through --disable-glx and GLX headers are not installed in the build's environment, build fails on: In file included from xf86Init.c:81: ../../../include/glxvndabi.h:64:10: fatal error: GL/glxproto.h: No such file or directory 64 | #include | ^~~~~~~~~~~~~~~ Fix this failure by removing this include which does not seem to be needed (an other option would have been to keep it under an ifdef GLXEXT block) Fixes: - http://autobuild.buildroot.org/results/de838a843f97673d1381a55fd4e9b07164693913 Signed-off-by: Fabrice Fontaine [Retrieved from: https://gitlab.freedesktop.org/xorg/xserver/commit/49456e0a37fac7bc9d1f01bc1519fb0d699956db] --- hw/xfree86/common/xf86Init.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index 0631c7237..e6fb11398 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -78,7 +78,6 @@ #include "xf86InPriv.h" #include "picturestr.h" #include "randrstr.h" -#include "glxvndabi.h" #include "xf86Bus.h" #ifdef XSERVER_LIBPCIACCESS #include "xf86VGAarbiter.h" -- 2.24.1 ================================================ FILE: package/x11r7/xserver_xorg-server/0005-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch ================================================ From e50c85f4ebf559a3bac4817b41074c43d4691779 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 26 Oct 2018 17:47:30 -0700 Subject: [PATCH] Fix segfault on probing a non-PCI platform device on a system with PCI. Some Broadcom set-top-box boards have PCI busses, but the GPU is still probed through DT. We would dereference a null busid here in that case. Signed-off-by: Eric Anholt Backported from: e50c85f4ebf559a3bac4817b41074c43d4691779 Signed-off-by: Joseph Kogut --- hw/xfree86/common/xf86platformBus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c index cef47da03..dadbac6c8 100644 --- a/hw/xfree86/common/xf86platformBus.c +++ b/hw/xfree86/common/xf86platformBus.c @@ -289,7 +289,7 @@ xf86platformProbe(void) for (i = 0; i < xf86_num_platform_devices; i++) { char *busid = xf86_platform_odev_attributes(i)->busid; - if (pci && (strncmp(busid, "pci:", 4) == 0)) { + if (pci && busid && (strncmp(busid, "pci:", 4) == 0)) { platform_find_pci_info(&xf86_platform_devices[i], busid); } -- 2.24.1 ================================================ FILE: package/x11r7/xserver_xorg-server/0006-compiler.h-don-t-define-inb-outb-and-friends-on-mips.patch ================================================ From de5e24b5036a1a5a877f8f30169e3497d0e296d6 Mon Sep 17 00:00:00 2001 From: Julien Cristau Date: Wed, 6 Jan 2021 10:20:53 +0100 Subject: [PATCH] compiler.h: don't define inb/outb and friends on mips MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The definition relies on IOPortBase, which is only ever set in hw/xfree86/os-support/bsd/arm_video.c This caused build failures on linux/mips with GCC 10, due to this change (from https://gcc.gnu.org/gcc-10/changes.html#c): "GCC now defaults to -fno-common. As a result, global variable accesses are more efficient on various targets. In C, global variables with multiple tentative definitions now result in linker errors. With -fcommon such definitions are silently merged during linking." As a result anything including compiler.h would get its own definition of IOPortBase and the linker would error out. Signed-off-by: Raphaël Mélotte --- hw/xfree86/common/compiler.h | 8 ++------ hw/xfree86/os-support/bsd/arm_video.c | 3 +++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h index 2b2008b3f..eb788d3fd 100644 --- a/hw/xfree86/common/compiler.h +++ b/hw/xfree86/common/compiler.h @@ -518,14 +518,10 @@ xf86WriteMmio32Le(__volatile__ void *base, const unsigned long offset, barrier(); } -#elif defined(__mips__) || (defined(__arm32__) && !defined(__linux__)) -#if defined(__arm32__) || defined(__mips64) +#elif defined(__arm32__) && !defined(__linux__) #define PORT_SIZE long -#else -#define PORT_SIZE short -#endif -_X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */ +extern _X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */ static __inline__ void outb(unsigned PORT_SIZE port, unsigned char val) diff --git a/hw/xfree86/os-support/bsd/arm_video.c b/hw/xfree86/os-support/bsd/arm_video.c index dd1020e33..180d70543 100644 --- a/hw/xfree86/os-support/bsd/arm_video.c +++ b/hw/xfree86/os-support/bsd/arm_video.c @@ -65,6 +65,7 @@ #include "xf86Priv.h" #include "xf86_OSlib.h" #include "xf86OSpriv.h" +#include "compiler.h" #if defined(__NetBSD__) && !defined(MAP_FILE) #define MAP_FLAGS MAP_SHARED @@ -162,6 +163,8 @@ xf86DisableIO() #if defined(USE_ARC_MMAP) || defined(__arm32__) +unsigned int IOPortBase; + Bool xf86EnableIO() { -- 2.32.0 ================================================ FILE: package/x11r7/xserver_xorg-server/Config.in ================================================ comment "xorg-server needs a glibc or uClibc toolchain" depends on BR2_arm && BR2_TOOLCHAIN_USES_MUSL config BR2_PACKAGE_XSERVER_XORG_SERVER bool "xorg-server" depends on BR2_USE_MMU # fork() # xserver uses inb/outb on arm, which aren't available with musl depends on !(BR2_arm && BR2_TOOLCHAIN_USES_MUSL) # We need a SHA1 implementation. If either openssl or # libgcrypt are already part of the build, we'll use one of # them, otherwise, use the small libsha1 library. select BR2_PACKAGE_LIBSHA1 if (!BR2_PACKAGE_OPENSSL && !BR2_PACKAGE_LIBGCRYPT) select BR2_PACKAGE_MCOOKIE select BR2_PACKAGE_PIXMAN select BR2_PACKAGE_XFONT_FONT_ALIAS if !BR2_PACKAGE_XSERVER_XORG_SERVER_BUILTIN_FONTS select BR2_PACKAGE_XFONT_FONT_MISC_MISC if !BR2_PACKAGE_XSERVER_XORG_SERVER_BUILTIN_FONTS select BR2_PACKAGE_XFONT_FONT_CURSOR_MISC if !BR2_PACKAGE_XSERVER_XORG_SERVER_BUILTIN_FONTS select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXAU select BR2_PACKAGE_XLIB_LIBXCURSOR select BR2_PACKAGE_XLIB_LIBXDAMAGE select BR2_PACKAGE_XLIB_LIBXDMCP select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXFIXES select BR2_PACKAGE_XLIB_LIBXFONT2 select BR2_PACKAGE_XLIB_LIBXFT select BR2_PACKAGE_XLIB_LIBXI select BR2_PACKAGE_XLIB_LIBXINERAMA select BR2_PACKAGE_XLIB_LIBXRANDR select BR2_PACKAGE_XLIB_LIBXRENDER select BR2_PACKAGE_XLIB_LIBXRES select BR2_PACKAGE_XLIB_LIBXXF86VM select BR2_PACKAGE_XLIB_LIBXKBFILE select BR2_PACKAGE_XLIB_XTRANS select BR2_PACKAGE_XDATA_XBITMAPS select BR2_PACKAGE_XORGPROTO select BR2_PACKAGE_XUTIL_UTIL_MACROS select BR2_PACKAGE_XKEYBOARD_CONFIG help X.Org X server http://xorg.freedesktop.org if BR2_PACKAGE_XSERVER_XORG_SERVER choice prompt "X Window System server type" help Select the X Window System server to use config BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR bool "Modular X.org" depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBPCIACCESS select BR2_PACKAGE_XLIB_LIBXSHMFENCE if \ (BR2_TOOLCHAIN_HAS_SYNC_4 && !BR2_RISCV_32) help This variant of the X.org server is the full-blown variant, as used by desktop GNU/Linux distributions. The drivers (for input and graphics) are built separately from the X.org server (see the xdriver* packages). comment "Modular X.org needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE bool "KDrive / TinyX" help This variant of the X.org server is a lightweight version intended for embedded systems. The drivers (for input and graphics) are built into the server. It is generally used directly on top of the Linux framebuffer without DRM or video card specific drivers. endchoice comment "Optional Servers" config BR2_PACKAGE_XSERVER_XORG_SERVER_XVFB bool "Xvfb server" help Virtual frame buffer X server. config BR2_PACKAGE_XSERVER_XORG_SERVER_XEPHYR bool "Xephyr server" help Xephyr nested X server; successor to Xnest. endif ================================================ FILE: package/x11r7/xserver_xorg-server/S40xorg ================================================ #!/bin/sh # # Starts Xorg # BIN=/usr/bin/Xorg PIDFILE=/var/run/xorg.pid # ":0.0 vt01" makes sure Xorg finds the correct terminal. # -allowMouseOpenFail allows the server to start up even if the mouse device # can't be opened or initialised. # -noreset prevents a server reset when the last client connection is closed. XORG_ARGS=":0.0 vt01 -s 0 -noreset -allowMouseOpenFail" start() { printf "Starting Xorg: " start-stop-daemon -S -q -b -m -p $PIDFILE --exec $BIN -- $XORG_ARGS [ $? = 0 ] && sleep 3 && echo "OK" || echo "FAIL" } stop() { printf "Stopping Xorg: " start-stop-daemon -K -q -p $PIDFILE [ $? = 0 ] && echo "OK" || echo "FAIL" } restart() { stop sleep 2 start } case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ================================================ FILE: package/x11r7/xserver_xorg-server/xorg.service ================================================ [Unit] Description=Xorg server After=network.target [Service] Type=simple ExecStart=/usr/bin/Xorg :0.0 vt01 -s 0 -noreset -allowMouseOpenFail Restart=always [Install] WantedBy=graphical.target ================================================ FILE: package/x11r7/xserver_xorg-server/xserver_xorg-server.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-July/003100.html sha256 40aa4e96a56a81a301f15a9b10e06a22700f12b42d9e0e453c7f11d354386300 xorg-server-1.20.13.tar.xz sha512 4e0b7bd4e070dc52cb2c51c2056feb133de2c0487d359392ed63abba9702910cd2e2983e9415973d8d6e9672eac78be6f39202687fc56610877914ce722554b3 xorg-server-1.20.13.tar.xz # Locally calculated sha256 4cc0447a22635c7b2f1a93fec4aa94f1970fadeb72a063de006b51cf4963a06f COPYING ================================================ FILE: package/x11r7/xserver_xorg-server/xserver_xorg-server.mk ================================================ ################################################################################ # # xserver_xorg-server # ################################################################################ XSERVER_XORG_SERVER_VERSION = 1.20.13 XSERVER_XORG_SERVER_SOURCE = xorg-server-$(XSERVER_XORG_SERVER_VERSION).tar.xz XSERVER_XORG_SERVER_SITE = https://xorg.freedesktop.org/archive/individual/xserver XSERVER_XORG_SERVER_LICENSE = MIT XSERVER_XORG_SERVER_LICENSE_FILES = COPYING XSERVER_XORG_SERVER_SELINUX_MODULES = xdg xserver XSERVER_XORG_SERVER_INSTALL_STAGING = YES # xfont_font-util is needed only for autoreconf XSERVER_XORG_SERVER_AUTORECONF = YES XSERVER_XORG_SERVER_DEPENDENCIES = \ xfont_font-util \ xutil_util-macros \ xlib_libX11 \ xlib_libXau \ xlib_libXdmcp \ xlib_libXext \ xlib_libXfixes \ xlib_libXfont2 \ xlib_libXi \ xlib_libXrender \ xlib_libXres \ xlib_libXft \ xlib_libXcursor \ xlib_libXinerama \ xlib_libXrandr \ xlib_libXdamage \ xlib_libXxf86vm \ xlib_libxkbfile \ xlib_xtrans \ xdata_xbitmaps \ xorgproto \ xkeyboard-config \ pixman \ 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 \ --enable-record \ --disable-xnest \ --disable-dmx \ --disable-unit-tests \ --with-builder-addr=buildroot@buildroot.org \ CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/pixman-1 -O2" \ --with-fontrootdir=/usr/share/fonts/X11/ \ --$(if $(BR2_PACKAGE_XSERVER_XORG_SERVER_XEPHYR),en,dis)able-xephyr \ --$(if $(BR2_PACKAGE_XSERVER_XORG_SERVER_XVFB),en,dis)able-xvfb ifeq ($(BR2_PACKAGE_SYSTEMD),y) XSERVER_XORG_SERVER_CONF_OPTS += \ --with-systemd-daemon \ --enable-systemd-logind XSERVER_XORG_SERVER_DEPENDENCIES += \ systemd else XSERVER_XORG_SERVER_CONF_OPTS += \ --without-systemd-daemon \ --disable-systemd-logind endif # Xwayland support needs libdrm, libepoxy, wayland and libxcomposite ifeq ($(BR2_PACKAGE_LIBDRM)$(BR2_PACKAGE_LIBEPOXY)$(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_WAYLAND_PROTOCOLS)$(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),yyyyy) XSERVER_XORG_SERVER_CONF_OPTS += --enable-xwayland XSERVER_XORG_SERVER_DEPENDENCIES += libdrm libepoxy wayland wayland-protocols xlib_libXcomposite else XSERVER_XORG_SERVER_CONF_OPTS += --disable-xwayland endif ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR),y) XSERVER_XORG_SERVER_CONF_OPTS += --enable-xorg XSERVER_XORG_SERVER_DEPENDENCIES += libpciaccess ifeq ($(BR2_PACKAGE_LIBDRM),y) XSERVER_XORG_SERVER_DEPENDENCIES += libdrm XSERVER_XORG_SERVER_CONF_OPTS += --enable-libdrm else XSERVER_XORG_SERVER_CONF_OPTS += --disable-libdrm endif else XSERVER_XORG_SERVER_CONF_OPTS += --disable-xorg endif ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE),y) XSERVER_XORG_SERVER_CONF_OPTS += \ --enable-kdrive \ --disable-glx \ --disable-dri else # modular XSERVER_XORG_SERVER_CONF_OPTS += --disable-kdrive endif ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-glx XSERVER_XORG_SERVER_DEPENDENCIES += libgl else XSERVER_XORG_SERVER_CONF_OPTS += --disable-dri --disable-glx endif # Optional packages ifeq ($(BR2_PACKAGE_HAS_UDEV),y) XSERVER_XORG_SERVER_DEPENDENCIES += udev XSERVER_XORG_SERVER_CONF_OPTS += --enable-config-udev # udev kms support depends on libdrm and dri2 ifeq ($(BR2_PACKAGE_LIBDRM),y) XSERVER_XORG_SERVER_CONF_OPTS += --enable-config-udev-kms else XSERVER_XORG_SERVER_CONF_OPTS += --disable-config-udev-kms endif endif ifeq ($(BR2_PACKAGE_DBUS),y) XSERVER_XORG_SERVER_DEPENDENCIES += dbus XSERVER_XORG_SERVER_CONF_OPTS += --enable-config-dbus endif ifeq ($(BR2_PACKAGE_FREETYPE),y) XSERVER_XORG_SERVER_DEPENDENCIES += freetype endif ifeq ($(BR2_PACKAGE_LIBUNWIND),y) XSERVER_XORG_SERVER_DEPENDENCIES += libunwind XSERVER_XORG_SERVER_CONF_OPTS += --enable-libunwind else XSERVER_XORG_SERVER_CONF_OPTS += --disable-libunwind endif ifneq ($(BR2_PACKAGE_XLIB_LIBXVMC),y) XSERVER_XORG_SERVER_CONF_OPTS += --disable-xvmc endif ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y) XSERVER_XORG_SERVER_DEPENDENCIES += xlib_libXcomposite else XSERVER_XORG_SERVER_CONF_OPTS += --disable-composite endif ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR),y) XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri2 ifeq ($(BR2_PACKAGE_XLIB_LIBXSHMFENCE),y) XSERVER_XORG_SERVER_DEPENDENCIES += xlib_libxshmfence XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri3 ifeq ($(BR2_PACKAGE_HAS_LIBEGL)$(BR2_PACKAGE_HAS_LIBGL)$(BR2_PACKAGE_LIBEPOXY),yyy) XSERVER_XORG_SERVER_DEPENDENCIES += libepoxy XSERVER_XORG_SERVER_CONF_OPTS += --enable-glamor else XSERVER_XORG_SERVER_CONF_OPTS += --disable-glamor endif else XSERVER_XORG_SERVER_CONF_OPTS += --disable-dri3 --disable-glamor endif else XSERVER_XORG_SERVER_CONF_OPTS += --disable-dri2 --disable-dri3 --disable-glamor endif ifeq ($(BR2_PACKAGE_XLIB_LIBXSCRNSAVER),y) XSERVER_XORG_SERVER_DEPENDENCIES += xlib_libXScrnSaver XSERVER_XORG_SERVER_CONF_OPTS += --enable-screensaver else XSERVER_XORG_SERVER_CONF_OPTS += --disable-screensaver endif ifneq ($(BR2_PACKAGE_XLIB_LIBDMX),y) XSERVER_XORG_SERVER_CONF_OPTS += --disable-dmx endif ifeq ($(BR2_PACKAGE_OPENSSL),y) XSERVER_XORG_SERVER_CONF_OPTS += --with-sha1=libcrypto XSERVER_XORG_SERVER_DEPENDENCIES += openssl else ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) XSERVER_XORG_SERVER_CONF_OPTS += --with-sha1=libgcrypt XSERVER_XORG_SERVER_DEPENDENCIES += libgcrypt else XSERVER_XORG_SERVER_CONF_OPTS += --with-sha1=libsha1 XSERVER_XORG_SERVER_DEPENDENCIES += libsha1 endif define XSERVER_XORG_SERVER_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0644 package/x11r7/xserver_xorg-server/xorg.service \ $(TARGET_DIR)/usr/lib/systemd/system/xorg.service endef # init script conflicts with S90nodm ifneq ($(BR2_PACKAGE_NODM),y) define XSERVER_XORG_SERVER_INSTALL_INIT_SYSV $(INSTALL) -D -m 755 package/x11r7/xserver_xorg-server/S40xorg \ $(TARGET_DIR)/etc/init.d/S40xorg endef endif $(eval $(autotools-package)) ================================================ FILE: package/x11r7/xutil_makedepend/Config.in ================================================ config BR2_PACKAGE_XUTIL_MAKEDEPEND bool "makedepend" select BR2_PACKAGE_XORGPROTO help No description available ================================================ FILE: package/x11r7/xutil_makedepend/xutil_makedepend.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2019-March/002985.html md5 b2ca7f2f21f1c04a88b6a254c19c9b68 makedepend-1.0.6.tar.bz2 sha1 3f321f7b570ec98f1fabc441267d29347a2e1456 makedepend-1.0.6.tar.bz2 sha256 d558a52e8017d984ee59596a9582c8d699a1962391b632bec3bb6804bf4d501c makedepend-1.0.6.tar.bz2 sha512 eb0e8ee8ab7515806d7d98a060cdcd392ec38e4225e5e05db26daa6651f185d0b764aab403edeea904d4d23211b1f7db20daeee6eafce8abe65225784ed0aa42 makedepend-1.0.6.tar.bz2 # Locally computed sha256 0530078db78c47ae978dc2bd77f4f427e6cd97df868672c95b1ef284113c8cb7 COPYING ================================================ FILE: package/x11r7/xutil_makedepend/xutil_makedepend.mk ================================================ ################################################################################ # # xutil_makedepend # ################################################################################ XUTIL_MAKEDEPEND_VERSION = 1.0.6 XUTIL_MAKEDEPEND_SOURCE = makedepend-$(XUTIL_MAKEDEPEND_VERSION).tar.bz2 XUTIL_MAKEDEPEND_SITE = http://xorg.freedesktop.org/releases/individual/util XUTIL_MAKEDEPEND_LICENSE = MIT XUTIL_MAKEDEPEND_LICENSE_FILES = COPYING XUTIL_MAKEDEPEND_DEPENDENCIES = xorgproto host-pkgconf HOST_XUTIL_MAKEDEPEND_DEPENDENCIES = host-xorgproto host-pkgconf $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/x11vnc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch ================================================ From daecf59cc8b294265666482a4766aaa3148c308b Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 30 Nov 2019 11:43:32 -0800 Subject: [PATCH] Fix build on 32bit arches with 64bit time_t time element is deprecated on new input_event structure in kernel's input.h [1] [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f [Retrieved from: https://github.com/LibVNC/x11vnc/commit/daecf59cc8b294265666482a4766aaa3148c308b] Signed-off-by: Fabrice Fontaine --- src/uinput.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/uinput.c b/src/uinput.c index 28fbad3..d71bcde 100644 --- a/src/uinput.c +++ b/src/uinput.c @@ -54,6 +54,11 @@ so, delete this exception statement from your version. #include #include +#ifndef input_event_sec +#define input_event_sec time.tv_sec +#define input_event_usec time.tv_usec +#endif + #if !defined(EV_SYN) || !defined(SYN_REPORT) #undef UINPUT_OK #endif @@ -710,6 +715,7 @@ void parse_uinput_str(char *in) { static void ptr_move(int dx, int dy) { #ifdef UINPUT_OK struct input_event ev; + struct timeval tval; int d = direct_rel_fd < 0 ? fd : direct_rel_fd; if (injectable && strchr(injectable, 'M') == NULL) { @@ -720,7 +726,9 @@ static void ptr_move(int dx, int dy) { if (db) fprintf(stderr, "ptr_move(%d, %d) fd=%d\n", dx, dy, d); - gettimeofday(&ev.time, NULL); + gettimeofday(&tval, NULL); + ev.input_event_sec = tval.tv_sec; + ev.input_event_usec = tval.tv_usec; ev.type = EV_REL; ev.code = REL_Y; ev.value = dy; @@ -755,6 +763,7 @@ static void apply_tslib(int *x, int *y) { static void ptr_abs(int x, int y, int p) { #ifdef UINPUT_OK struct input_event ev; + struct timeval tval; int x0, y0; int d = direct_abs_fd < 0 ? fd : direct_abs_fd; @@ -773,7 +782,9 @@ static void ptr_abs(int x, int y, int p) { if (db) fprintf(stderr, "ptr_abs(%d, %d => %d %d, p=%d) fd=%d\n", x0, y0, x, y, p, d); - gettimeofday(&ev.time, NULL); + gettimeofday(&tval, NULL); + ev.input_event_sec = tval.tv_sec; + ev.input_event_usec = tval.tv_usec; ev.type = EV_ABS; ev.code = ABS_Y; ev.value = y; @@ -950,6 +961,7 @@ if (0) {usleep(100*1000) ;} static void button_click(int down, int btn) { #ifdef UINPUT_OK struct input_event ev; + struct timeval tval; int d = direct_btn_fd < 0 ? fd : direct_btn_fd; if (injectable && strchr(injectable, 'B') == NULL) { @@ -959,7 +971,9 @@ static void button_click(int down, int btn) { if (db) fprintf(stderr, "button_click: btn %d %s fd=%d\n", btn, down ? "down" : "up", d); memset(&ev, 0, sizeof(ev)); - gettimeofday(&ev.time, NULL); + gettimeofday(&tval, NULL); + ev.input_event_sec = tval.tv_sec; + ev.input_event_usec = tval.tv_usec; ev.type = EV_KEY; ev.value = down; @@ -1230,6 +1244,7 @@ void uinput_pointer_command(int mask, int x, int y, rfbClientPtr client) { void uinput_key_command(int down, int keysym, rfbClientPtr client) { #ifdef UINPUT_OK struct input_event ev; + struct timeval tval; int scancode; allowed_input_t input; int d = direct_key_fd < 0 ? fd : direct_key_fd; @@ -1253,7 +1268,9 @@ void uinput_key_command(int down, int keysym, rfbClientPtr client) { if (db) fprintf(stderr, "uinput_key_command: %d -> %d %s fd=%d\n", keysym, scancode, down ? "down" : "up", d); memset(&ev, 0, sizeof(ev)); - gettimeofday(&ev.time, NULL); + gettimeofday(&tval, NULL); + ev.input_event_sec = tval.tv_sec; + ev.input_event_usec = tval.tv_usec; ev.type = EV_KEY; ev.code = (unsigned char) scancode; ev.value = down; ================================================ FILE: package/x11vnc/0002-scan-limit-access-to-shared-memory-segments-to-current-user.patch ================================================ From 69eeb9f7baa14ca03b16c9de821f9876def7a36a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=A9nal=20DAVALAN?= Date: Wed, 18 Nov 2020 08:40:45 +0100 Subject: [PATCH] scan: limit access to shared memory segments to current user [Retrieved from: https://github.com/LibVNC/x11vnc/commit/69eeb9f7baa14ca03b16c9de821f9876def7a36a] Signed-off-by: Fabrice Fontaine --- src/scan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scan.c b/src/scan.c index 43e00d2..12994d5 100644 --- a/src/scan.c +++ b/src/scan.c @@ -320,7 +320,7 @@ static int shm_create(XShmSegmentInfo *shm, XImage **ximg_ptr, int w, int h, #if HAVE_XSHM shm->shmid = shmget(IPC_PRIVATE, - xim->bytes_per_line * xim->height, IPC_CREAT | 0777); + xim->bytes_per_line * xim->height, IPC_CREAT | 0600); if (shm->shmid == -1) { rfbErr("shmget(%s) failed.\n", name); ================================================ FILE: package/x11vnc/Config.in ================================================ config BR2_PACKAGE_X11VNC bool "x11vnc" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU # fork() depends on !BR2_nios2 # libvncserver select BR2_PACKAGE_LIBVNCSERVER select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXTST select BR2_PACKAGE_LIBOPENSSL_ENABLE_BLOWFISH if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4 if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160 if BR2_PACKAGE_LIBOPENSSL help VNC server for X11 display http://www.karlrunge.com/x11vnc/ ================================================ FILE: package/x11vnc/x11vnc.hash ================================================ # Locally computed: sha256 885e5b5f5f25eec6f9e4a1e8be3d0ac71a686331ee1cfb442dba391111bd32bd x11vnc-0.9.16.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/x11vnc/x11vnc.mk ================================================ ################################################################################ # # x11vnc # ################################################################################ X11VNC_VERSION = 0.9.16 X11VNC_SITE = $(call github,LibVNC,x11vnc,$(X11VNC_VERSION)) # sdl support is not used in x11vnc, but host include / library search paths # leak in if host has sdl-config X11VNC_CONF_OPTS = --without-sdl X11VNC_DEPENDENCIES = xlib_libXt xlib_libXext xlib_libXtst libvncserver X11VNC_LICENSE = GPL-2.0+ X11VNC_LICENSE_FILES = COPYING X11VNC_CPE_ID_VENDOR = x11vnc_project # 0002-scan-limit-access-to-shared-memory-segments-to-current-user.patch X11VNC_IGNORE_CVES += CVE-2020-29074 # Source coming from github, no configure included X11VNC_AUTORECONF = YES ifeq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_DBUS),yy) X11VNC_DEPENDENCIES += avahi dbus else X11VNC_CONF_OPTS += --without-avahi endif ifeq ($(BR2_PACKAGE_JPEG),y) X11VNC_DEPENDENCIES += jpeg else X11VNC_CONF_OPTS += --without-jpeg endif ifeq ($(BR2_PACKAGE_OPENSSL),y) X11VNC_DEPENDENCIES += openssl else X11VNC_CONF_OPTS += --without-ssl --without-crypto endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) X11VNC_DEPENDENCIES += xlib_libXinerama else X11VNC_CONF_OPTS += --without-xinerama endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) X11VNC_DEPENDENCIES += xlib_libXrandr else X11VNC_CONF_OPTS += --without-xrandr endif ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y) X11VNC_DEPENDENCIES += xlib_libXfixes else X11VNC_CONF_OPTS += --without-xfixes endif ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y) X11VNC_DEPENDENCIES += xlib_libXdamage else X11VNC_CONF_OPTS += --without-xdamage endif ifeq ($(BR2_PACKAGE_ZLIB),y) X11VNC_DEPENDENCIES += zlib else X11VNC_CONF_OPTS += --without-zlib endif $(eval $(autotools-package)) ================================================ FILE: package/x264/Config.in ================================================ config BR2_PACKAGE_X264 bool "x264" help x264 is a free software library and application for encoding video streams into the H.264/MPEG-4 AVC compression format, and is released under the terms of the GNU GPL. https://www.videolan.org/developers/x264.html if BR2_PACKAGE_X264 config BR2_PACKAGE_X264_CLI bool "CLI" help Command-line tool to encode video streams into the H.264/MPEG-4 AVC compression format. endif ================================================ FILE: package/x264/x264.hash ================================================ # Locally computed sha256 58f39bf23a4e38ac3dd841a3f9ccf2aa16d2b0c35df9aecd9f3b5062780e5d74 x264-35417dcd65a57321fbadf98c9a4cff1cb741db4b-br1.tar.gz sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING ================================================ FILE: package/x264/x264.mk ================================================ ################################################################################ # # x264 # ################################################################################ X264_VERSION = 35417dcd65a57321fbadf98c9a4cff1cb741db4b X264_SITE = https://code.videolan.org/videolan/x264.git X264_SITE_METHOD = git X264_LICENSE = GPL-2.0+ X264_DEPENDENCIES = host-pkgconf X264_LICENSE_FILES = COPYING X264_INSTALL_STAGING = YES X264_CONF_OPTS = --disable-avs --disable-lavf --disable-swscale ifeq ($(BR2_i386)$(BR2_x86_64),y) # nasm needed for assembly files X264_DEPENDENCIES += host-nasm X264_CONF_ENV += AS="$(HOST_DIR)/bin/nasm" else ifeq ($(BR2_ARM_CPU_ARMV7A)$(BR2_aarch64),y) # We need to pass gcc as AS, because the ARM assembly files have to be # preprocessed X264_CONF_ENV += AS="$(TARGET_CC)" else X264_CONF_OPTS += --disable-asm endif ifeq ($(BR2_STATIC_LIBS),) X264_CONF_OPTS += --enable-pic --enable-shared endif ifeq ($(BR2_PACKAGE_X264_CLI),) X264_CONF_OPTS += --disable-cli endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),) X264_CONF_OPTS += --disable-thread endif # Even though the configure script is not generated by autoconf, x264 # uses config.sub/config.guess, so we want up-to-date versions of # them. X264_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK # the configure script is not generated by autoconf define X264_CONFIGURE_CMDS (cd $(@D); $(TARGET_CONFIGURE_OPTS) $(X264_CONF_ENV) ./configure \ --prefix=/usr \ --host="$(GNU_TARGET_NAME)" \ --cross-prefix="$(TARGET_CROSS)" \ --disable-ffms \ --enable-static \ --disable-opencl \ $(X264_CONF_OPTS) \ ) endef define X264_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define X264_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(STAGING_DIR)" -C $(@D) install endef define X264_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)" -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/x265/0001-fix-gcc-options.patch ================================================ # HG changeset patch # User Bertrand Jacquin # Date 1444431941 -3600 # Node ID 5c6d2a6f2f9a0534933cc999b3845be4344e1af0 # Parent b6156a08b1def3584647f26096866c1a0c11e54a build: Disable -march selection from CMakeLists.txt x32 arch as defined on https://sites.google.com/site/x32abi is neither X86 nor X64, then forcing -march=i686 leads to build failure as wrong -march is used. Forcing -march, -mfloat-abi and -mfpu for ARM is also wrong As a global sanity sake, disable all forced -march in CMakeLists Backported from upstream pull request: https://bitbucket.org/multicoreware/x265/pull-requests/21 Signed-off-by: Bernd Kuhls diff -r 58dddcf01b7d source/CMakeLists.txt --- a/source/CMakeLists.txt Mon Jan 23 09:50:33 2017 +0530 +++ b/source/CMakeLists.txt Mon Jan 23 21:03:10 2017 +0100 @@ -194,28 +194,6 @@ if(NATIVE_BUILD) if(INTEL_CXX) add_definitions(-xhost) - else() - add_definitions(-march=native) - endif() - elseif(X86 AND NOT X64) - string(FIND "${CMAKE_CXX_FLAGS}" "-march" marchPos) - if(marchPos LESS "0") - add_definitions(-march=i686) - if(WIN32 AND NOT INTEL_CXX AND NOT CLANG AND - CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0) - add_definitions(-mpreferred-stack-boundary=2) - endif() - endif() - endif() - if(ARM AND CROSS_COMPILE_ARM) - set(ARM_ARGS -march=armv6 -mfloat-abi=soft -mfpu=vfp -marm -fPIC) - elseif(ARM) - find_package(Neon) - if(CPU_HAS_NEON) - set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC) - add_definitions(-DHAVE_NEON) - else() - set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=vfp -marm) endif() endif() add_definitions(${ARM_ARGS}) ================================================ FILE: package/x265/0002-arm-asm-primitives.patch ================================================ Fixes "arm assembly fail to compile on 1.8" Downloaded from upstream bug report: https://bitbucket.org/multicoreware/x265/issues/406 Signed-off-by: Bernd Kuhls --- ./source/common/arm/asm-primitives.cpp.orig 2018-05-21 02:33:10.000000000 -0600 +++ ./source/common/arm/asm-primitives.cpp 2018-05-28 20:38:37.302378303 -0600 @@ -48,77 +48,77 @@ void setupAssemblyPrimitives(EncoderPrim p.ssim_4x4x2_core = PFX(ssim_4x4x2_core_neon); // addAvg - p.pu[LUMA_4x4].addAvg = PFX(addAvg_4x4_neon); - p.pu[LUMA_4x8].addAvg = PFX(addAvg_4x8_neon); - p.pu[LUMA_4x16].addAvg = PFX(addAvg_4x16_neon); - p.pu[LUMA_8x4].addAvg = PFX(addAvg_8x4_neon); - p.pu[LUMA_8x8].addAvg = PFX(addAvg_8x8_neon); - p.pu[LUMA_8x16].addAvg = PFX(addAvg_8x16_neon); - p.pu[LUMA_8x32].addAvg = PFX(addAvg_8x32_neon); - p.pu[LUMA_12x16].addAvg = PFX(addAvg_12x16_neon); - p.pu[LUMA_16x4].addAvg = PFX(addAvg_16x4_neon); - p.pu[LUMA_16x8].addAvg = PFX(addAvg_16x8_neon); - p.pu[LUMA_16x12].addAvg = PFX(addAvg_16x12_neon); - p.pu[LUMA_16x16].addAvg = PFX(addAvg_16x16_neon); - p.pu[LUMA_16x32].addAvg = PFX(addAvg_16x32_neon); - p.pu[LUMA_16x64].addAvg = PFX(addAvg_16x64_neon); - p.pu[LUMA_24x32].addAvg = PFX(addAvg_24x32_neon); - p.pu[LUMA_32x8].addAvg = PFX(addAvg_32x8_neon); - p.pu[LUMA_32x16].addAvg = PFX(addAvg_32x16_neon); - p.pu[LUMA_32x24].addAvg = PFX(addAvg_32x24_neon); - p.pu[LUMA_32x32].addAvg = PFX(addAvg_32x32_neon); - p.pu[LUMA_32x64].addAvg = PFX(addAvg_32x64_neon); - p.pu[LUMA_48x64].addAvg = PFX(addAvg_48x64_neon); - p.pu[LUMA_64x16].addAvg = PFX(addAvg_64x16_neon); - p.pu[LUMA_64x32].addAvg = PFX(addAvg_64x32_neon); - p.pu[LUMA_64x48].addAvg = PFX(addAvg_64x48_neon); - p.pu[LUMA_64x64].addAvg = PFX(addAvg_64x64_neon); + p.pu[LUMA_4x4].addAvg[ALIGNED] = PFX(addAvg_4x4_neon); + p.pu[LUMA_4x8].addAvg[ALIGNED] = PFX(addAvg_4x8_neon); + p.pu[LUMA_4x16].addAvg[ALIGNED] = PFX(addAvg_4x16_neon); + p.pu[LUMA_8x4].addAvg[ALIGNED] = PFX(addAvg_8x4_neon); + p.pu[LUMA_8x8].addAvg[ALIGNED] = PFX(addAvg_8x8_neon); + p.pu[LUMA_8x16].addAvg[ALIGNED] = PFX(addAvg_8x16_neon); + p.pu[LUMA_8x32].addAvg[ALIGNED] = PFX(addAvg_8x32_neon); + p.pu[LUMA_12x16].addAvg[ALIGNED] = PFX(addAvg_12x16_neon); + p.pu[LUMA_16x4].addAvg[ALIGNED] = PFX(addAvg_16x4_neon); + p.pu[LUMA_16x8].addAvg[ALIGNED] = PFX(addAvg_16x8_neon); + p.pu[LUMA_16x12].addAvg[ALIGNED] = PFX(addAvg_16x12_neon); + p.pu[LUMA_16x16].addAvg[ALIGNED] = PFX(addAvg_16x16_neon); + p.pu[LUMA_16x32].addAvg[ALIGNED] = PFX(addAvg_16x32_neon); + p.pu[LUMA_16x64].addAvg[ALIGNED] = PFX(addAvg_16x64_neon); + p.pu[LUMA_24x32].addAvg[ALIGNED] = PFX(addAvg_24x32_neon); + p.pu[LUMA_32x8].addAvg[ALIGNED] = PFX(addAvg_32x8_neon); + p.pu[LUMA_32x16].addAvg[ALIGNED] = PFX(addAvg_32x16_neon); + p.pu[LUMA_32x24].addAvg[ALIGNED] = PFX(addAvg_32x24_neon); + p.pu[LUMA_32x32].addAvg[ALIGNED] = PFX(addAvg_32x32_neon); + p.pu[LUMA_32x64].addAvg[ALIGNED] = PFX(addAvg_32x64_neon); + p.pu[LUMA_48x64].addAvg[ALIGNED] = PFX(addAvg_48x64_neon); + p.pu[LUMA_64x16].addAvg[ALIGNED] = PFX(addAvg_64x16_neon); + p.pu[LUMA_64x32].addAvg[ALIGNED] = PFX(addAvg_64x32_neon); + p.pu[LUMA_64x48].addAvg[ALIGNED] = PFX(addAvg_64x48_neon); + p.pu[LUMA_64x64].addAvg[ALIGNED] = PFX(addAvg_64x64_neon); // chroma addAvg - p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].addAvg = PFX(addAvg_4x2_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_4x4].addAvg = PFX(addAvg_4x4_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_4x8].addAvg = PFX(addAvg_4x8_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_4x16].addAvg = PFX(addAvg_4x16_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].addAvg = PFX(addAvg_6x8_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_8x2].addAvg = PFX(addAvg_8x2_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_8x4].addAvg = PFX(addAvg_8x4_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_8x6].addAvg = PFX(addAvg_8x6_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_8x8].addAvg = PFX(addAvg_8x8_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_8x16].addAvg = PFX(addAvg_8x16_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_8x32].addAvg = PFX(addAvg_8x32_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].addAvg = PFX(addAvg_12x16_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_16x4].addAvg = PFX(addAvg_16x4_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_16x8].addAvg = PFX(addAvg_16x8_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_16x12].addAvg = PFX(addAvg_16x12_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_16x16].addAvg = PFX(addAvg_16x16_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_16x32].addAvg = PFX(addAvg_16x32_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_24x32].addAvg = PFX(addAvg_24x32_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_32x8].addAvg = PFX(addAvg_32x8_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_32x16].addAvg = PFX(addAvg_32x16_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_32x24].addAvg = PFX(addAvg_32x24_neon); - p.chroma[X265_CSP_I420].pu[CHROMA_420_32x32].addAvg = PFX(addAvg_32x32_neon); - - p.chroma[X265_CSP_I422].pu[CHROMA_422_4x8].addAvg = PFX(addAvg_4x8_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_4x16].addAvg = PFX(addAvg_4x16_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_4x32].addAvg = PFX(addAvg_4x32_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_6x16].addAvg = PFX(addAvg_6x16_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_8x4].addAvg = PFX(addAvg_8x4_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_8x8].addAvg = PFX(addAvg_8x8_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_8x12].addAvg = PFX(addAvg_8x12_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_8x16].addAvg = PFX(addAvg_8x16_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_8x32].addAvg = PFX(addAvg_8x32_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_8x64].addAvg = PFX(addAvg_8x64_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].addAvg = PFX(addAvg_12x32_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_16x8].addAvg = PFX(addAvg_16x8_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_16x16].addAvg = PFX(addAvg_16x16_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_16x24].addAvg = PFX(addAvg_16x24_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_16x32].addAvg = PFX(addAvg_16x32_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_16x64].addAvg = PFX(addAvg_16x64_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_24x64].addAvg = PFX(addAvg_24x64_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_32x16].addAvg = PFX(addAvg_32x16_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_32x32].addAvg = PFX(addAvg_32x32_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_32x48].addAvg = PFX(addAvg_32x48_neon); - p.chroma[X265_CSP_I422].pu[CHROMA_422_32x64].addAvg = PFX(addAvg_32x64_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].addAvg[ALIGNED] = PFX(addAvg_4x2_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_4x4].addAvg[ALIGNED] = PFX(addAvg_4x4_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_4x8].addAvg[ALIGNED] = PFX(addAvg_4x8_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_4x16].addAvg[ALIGNED] = PFX(addAvg_4x16_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].addAvg[ALIGNED] = PFX(addAvg_6x8_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_8x2].addAvg[ALIGNED] = PFX(addAvg_8x2_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_8x4].addAvg[ALIGNED] = PFX(addAvg_8x4_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_8x6].addAvg[ALIGNED] = PFX(addAvg_8x6_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_8x8].addAvg[ALIGNED] = PFX(addAvg_8x8_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_8x16].addAvg[ALIGNED] = PFX(addAvg_8x16_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_8x32].addAvg[ALIGNED] = PFX(addAvg_8x32_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].addAvg[ALIGNED] = PFX(addAvg_12x16_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_16x4].addAvg[ALIGNED] = PFX(addAvg_16x4_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_16x8].addAvg[ALIGNED] = PFX(addAvg_16x8_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_16x12].addAvg[ALIGNED] = PFX(addAvg_16x12_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_16x16].addAvg[ALIGNED] = PFX(addAvg_16x16_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_16x32].addAvg[ALIGNED] = PFX(addAvg_16x32_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_24x32].addAvg[ALIGNED] = PFX(addAvg_24x32_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_32x8].addAvg[ALIGNED] = PFX(addAvg_32x8_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_32x16].addAvg[ALIGNED] = PFX(addAvg_32x16_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_32x24].addAvg[ALIGNED] = PFX(addAvg_32x24_neon); + p.chroma[X265_CSP_I420].pu[CHROMA_420_32x32].addAvg[ALIGNED] = PFX(addAvg_32x32_neon); + + p.chroma[X265_CSP_I422].pu[CHROMA_422_4x8].addAvg[ALIGNED] = PFX(addAvg_4x8_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_4x16].addAvg[ALIGNED] = PFX(addAvg_4x16_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_4x32].addAvg[ALIGNED] = PFX(addAvg_4x32_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_6x16].addAvg[ALIGNED] = PFX(addAvg_6x16_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_8x4].addAvg[ALIGNED] = PFX(addAvg_8x4_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_8x8].addAvg[ALIGNED] = PFX(addAvg_8x8_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_8x12].addAvg[ALIGNED] = PFX(addAvg_8x12_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_8x16].addAvg[ALIGNED] = PFX(addAvg_8x16_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_8x32].addAvg[ALIGNED] = PFX(addAvg_8x32_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_8x64].addAvg[ALIGNED] = PFX(addAvg_8x64_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].addAvg[ALIGNED] = PFX(addAvg_12x32_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_16x8].addAvg[ALIGNED] = PFX(addAvg_16x8_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_16x16].addAvg[ALIGNED] = PFX(addAvg_16x16_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_16x24].addAvg[ALIGNED] = PFX(addAvg_16x24_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_16x32].addAvg[ALIGNED] = PFX(addAvg_16x32_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_16x64].addAvg[ALIGNED] = PFX(addAvg_16x64_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_24x64].addAvg[ALIGNED] = PFX(addAvg_24x64_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_32x16].addAvg[ALIGNED] = PFX(addAvg_32x16_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_32x32].addAvg[ALIGNED] = PFX(addAvg_32x32_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_32x48].addAvg[ALIGNED] = PFX(addAvg_32x48_neon); + p.chroma[X265_CSP_I422].pu[CHROMA_422_32x64].addAvg[ALIGNED] = PFX(addAvg_32x64_neon); // quant p.quant = PFX(quant_neon); @@ -402,7 +402,7 @@ void setupAssemblyPrimitives(EncoderPrim p.scale2D_64to32 = PFX(scale2D_64to32_neon); // scale1D_128to64 - p.scale1D_128to64 = PFX(scale1D_128to64_neon); + p.scale1D_128to64[ALIGNED] = PFX(scale1D_128to64_neon); // copy_count p.cu[BLOCK_4x4].copy_cnt = PFX(copy_cnt_4_neon); @@ -411,37 +411,37 @@ void setupAssemblyPrimitives(EncoderPrim p.cu[BLOCK_32x32].copy_cnt = PFX(copy_cnt_32_neon); // filterPixelToShort - p.pu[LUMA_4x4].convert_p2s = PFX(filterPixelToShort_4x4_neon); - p.pu[LUMA_4x8].convert_p2s = PFX(filterPixelToShort_4x8_neon); - p.pu[LUMA_4x16].convert_p2s = PFX(filterPixelToShort_4x16_neon); - p.pu[LUMA_8x4].convert_p2s = PFX(filterPixelToShort_8x4_neon); - p.pu[LUMA_8x8].convert_p2s = PFX(filterPixelToShort_8x8_neon); - p.pu[LUMA_8x16].convert_p2s = PFX(filterPixelToShort_8x16_neon); - p.pu[LUMA_8x32].convert_p2s = PFX(filterPixelToShort_8x32_neon); - p.pu[LUMA_12x16].convert_p2s = PFX(filterPixelToShort_12x16_neon); - p.pu[LUMA_16x4].convert_p2s = PFX(filterPixelToShort_16x4_neon); - p.pu[LUMA_16x8].convert_p2s = PFX(filterPixelToShort_16x8_neon); - p.pu[LUMA_16x12].convert_p2s = PFX(filterPixelToShort_16x12_neon); - p.pu[LUMA_16x16].convert_p2s = PFX(filterPixelToShort_16x16_neon); - p.pu[LUMA_16x32].convert_p2s = PFX(filterPixelToShort_16x32_neon); - p.pu[LUMA_16x64].convert_p2s = PFX(filterPixelToShort_16x64_neon); - p.pu[LUMA_24x32].convert_p2s = PFX(filterPixelToShort_24x32_neon); - p.pu[LUMA_32x8].convert_p2s = PFX(filterPixelToShort_32x8_neon); - p.pu[LUMA_32x16].convert_p2s = PFX(filterPixelToShort_32x16_neon); - p.pu[LUMA_32x24].convert_p2s = PFX(filterPixelToShort_32x24_neon); - p.pu[LUMA_32x32].convert_p2s = PFX(filterPixelToShort_32x32_neon); - p.pu[LUMA_32x64].convert_p2s = PFX(filterPixelToShort_32x64_neon); - p.pu[LUMA_48x64].convert_p2s = PFX(filterPixelToShort_48x64_neon); - p.pu[LUMA_64x16].convert_p2s = PFX(filterPixelToShort_64x16_neon); - p.pu[LUMA_64x32].convert_p2s = PFX(filterPixelToShort_64x32_neon); - p.pu[LUMA_64x48].convert_p2s = PFX(filterPixelToShort_64x48_neon); - p.pu[LUMA_64x64].convert_p2s = PFX(filterPixelToShort_64x64_neon); + p.pu[LUMA_4x4].convert_p2s[ALIGNED] = PFX(filterPixelToShort_4x4_neon); + p.pu[LUMA_4x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_4x8_neon); + p.pu[LUMA_4x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_4x16_neon); + p.pu[LUMA_8x4].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x4_neon); + p.pu[LUMA_8x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x8_neon); + p.pu[LUMA_8x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x16_neon); + p.pu[LUMA_8x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x32_neon); + p.pu[LUMA_12x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_12x16_neon); + p.pu[LUMA_16x4].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x4_neon); + p.pu[LUMA_16x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x8_neon); + p.pu[LUMA_16x12].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x12_neon); + p.pu[LUMA_16x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x16_neon); + p.pu[LUMA_16x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x32_neon); + p.pu[LUMA_16x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x64_neon); + p.pu[LUMA_24x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_24x32_neon); + p.pu[LUMA_32x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x8_neon); + p.pu[LUMA_32x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x16_neon); + p.pu[LUMA_32x24].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x24_neon); + p.pu[LUMA_32x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x32_neon); + p.pu[LUMA_32x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x64_neon); + p.pu[LUMA_48x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_48x64_neon); + p.pu[LUMA_64x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x16_neon); + p.pu[LUMA_64x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x32_neon); + p.pu[LUMA_64x48].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x48_neon); + p.pu[LUMA_64x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x64_neon); // Block_fill - p.cu[BLOCK_4x4].blockfill_s = PFX(blockfill_s_4x4_neon); - p.cu[BLOCK_8x8].blockfill_s = PFX(blockfill_s_8x8_neon); - p.cu[BLOCK_16x16].blockfill_s = PFX(blockfill_s_16x16_neon); - p.cu[BLOCK_32x32].blockfill_s = PFX(blockfill_s_32x32_neon); + p.cu[BLOCK_4x4].blockfill_s[ALIGNED] = PFX(blockfill_s_4x4_neon); + p.cu[BLOCK_8x8].blockfill_s[ALIGNED] = PFX(blockfill_s_8x8_neon); + p.cu[BLOCK_16x16].blockfill_s[ALIGNED] = PFX(blockfill_s_16x16_neon); + p.cu[BLOCK_32x32].blockfill_s[ALIGNED] = PFX(blockfill_s_32x32_neon); // Blockcopy_ss p.cu[BLOCK_4x4].copy_ss = PFX(blockcopy_ss_4x4_neon); @@ -495,21 +495,21 @@ void setupAssemblyPrimitives(EncoderPrim p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].copy_sp = PFX(blockcopy_sp_32x64_neon); // pixel_add_ps - p.cu[BLOCK_4x4].add_ps = PFX(pixel_add_ps_4x4_neon); - p.cu[BLOCK_8x8].add_ps = PFX(pixel_add_ps_8x8_neon); - p.cu[BLOCK_16x16].add_ps = PFX(pixel_add_ps_16x16_neon); - p.cu[BLOCK_32x32].add_ps = PFX(pixel_add_ps_32x32_neon); - p.cu[BLOCK_64x64].add_ps = PFX(pixel_add_ps_64x64_neon); + p.cu[BLOCK_4x4].add_ps[ALIGNED] = PFX(pixel_add_ps_4x4_neon); + p.cu[BLOCK_8x8].add_ps[ALIGNED] = PFX(pixel_add_ps_8x8_neon); + p.cu[BLOCK_16x16].add_ps[ALIGNED] = PFX(pixel_add_ps_16x16_neon); + p.cu[BLOCK_32x32].add_ps[ALIGNED] = PFX(pixel_add_ps_32x32_neon); + p.cu[BLOCK_64x64].add_ps[ALIGNED] = PFX(pixel_add_ps_64x64_neon); // chroma add_ps - p.chroma[X265_CSP_I420].cu[BLOCK_420_4x4].add_ps = PFX(pixel_add_ps_4x4_neon); - p.chroma[X265_CSP_I420].cu[BLOCK_420_8x8].add_ps = PFX(pixel_add_ps_8x8_neon); - p.chroma[X265_CSP_I420].cu[BLOCK_420_16x16].add_ps = PFX(pixel_add_ps_16x16_neon); - p.chroma[X265_CSP_I420].cu[BLOCK_420_32x32].add_ps = PFX(pixel_add_ps_32x32_neon); - p.chroma[X265_CSP_I422].cu[BLOCK_422_4x8].add_ps = PFX(pixel_add_ps_4x8_neon); - p.chroma[X265_CSP_I422].cu[BLOCK_422_8x16].add_ps = PFX(pixel_add_ps_8x16_neon); - p.chroma[X265_CSP_I422].cu[BLOCK_422_16x32].add_ps = PFX(pixel_add_ps_16x32_neon); - p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].add_ps = PFX(pixel_add_ps_32x64_neon); + p.chroma[X265_CSP_I420].cu[BLOCK_420_4x4].add_ps[ALIGNED] = PFX(pixel_add_ps_4x4_neon); + p.chroma[X265_CSP_I420].cu[BLOCK_420_8x8].add_ps[ALIGNED] = PFX(pixel_add_ps_8x8_neon); + p.chroma[X265_CSP_I420].cu[BLOCK_420_16x16].add_ps[ALIGNED] = PFX(pixel_add_ps_16x16_neon); + p.chroma[X265_CSP_I420].cu[BLOCK_420_32x32].add_ps[ALIGNED] = PFX(pixel_add_ps_32x32_neon); + p.chroma[X265_CSP_I422].cu[BLOCK_422_4x8].add_ps[ALIGNED] = PFX(pixel_add_ps_4x8_neon); + p.chroma[X265_CSP_I422].cu[BLOCK_422_8x16].add_ps[ALIGNED] = PFX(pixel_add_ps_8x16_neon); + p.chroma[X265_CSP_I422].cu[BLOCK_422_16x32].add_ps[ALIGNED] = PFX(pixel_add_ps_16x32_neon); + p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].add_ps[ALIGNED] = PFX(pixel_add_ps_32x64_neon); // cpy2Dto1D_shr p.cu[BLOCK_4x4].cpy2Dto1D_shr = PFX(cpy2Dto1D_shr_4x4_neon); @@ -518,10 +518,10 @@ void setupAssemblyPrimitives(EncoderPrim p.cu[BLOCK_32x32].cpy2Dto1D_shr = PFX(cpy2Dto1D_shr_32x32_neon); // ssd_s - p.cu[BLOCK_4x4].ssd_s = PFX(pixel_ssd_s_4x4_neon); - p.cu[BLOCK_8x8].ssd_s = PFX(pixel_ssd_s_8x8_neon); - p.cu[BLOCK_16x16].ssd_s = PFX(pixel_ssd_s_16x16_neon); - p.cu[BLOCK_32x32].ssd_s = PFX(pixel_ssd_s_32x32_neon); + p.cu[BLOCK_4x4].ssd_s[ALIGNED] = PFX(pixel_ssd_s_4x4_neon); + p.cu[BLOCK_8x8].ssd_s[ALIGNED] = PFX(pixel_ssd_s_8x8_neon); + p.cu[BLOCK_16x16].ssd_s[ALIGNED] = PFX(pixel_ssd_s_16x16_neon); + p.cu[BLOCK_32x32].ssd_s[ALIGNED] = PFX(pixel_ssd_s_32x32_neon); // sse_ss p.cu[BLOCK_4x4].sse_ss = PFX(pixel_sse_ss_4x4_neon); @@ -548,10 +548,10 @@ void setupAssemblyPrimitives(EncoderPrim p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].sub_ps = PFX(pixel_sub_ps_32x64_neon); // calc_Residual - p.cu[BLOCK_4x4].calcresidual = PFX(getResidual4_neon); - p.cu[BLOCK_8x8].calcresidual = PFX(getResidual8_neon); - p.cu[BLOCK_16x16].calcresidual = PFX(getResidual16_neon); - p.cu[BLOCK_32x32].calcresidual = PFX(getResidual32_neon); + p.cu[BLOCK_4x4].calcresidual[ALIGNED] = PFX(getResidual4_neon); + p.cu[BLOCK_8x8].calcresidual[ALIGNED] = PFX(getResidual8_neon); + p.cu[BLOCK_16x16].calcresidual[ALIGNED] = PFX(getResidual16_neon); + p.cu[BLOCK_32x32].calcresidual[ALIGNED] = PFX(getResidual32_neon); // sse_pp p.cu[BLOCK_4x4].sse_pp = PFX(pixel_sse_pp_4x4_neon); @@ -722,31 +722,31 @@ void setupAssemblyPrimitives(EncoderPrim p.pu[LUMA_64x64].sad_x4 = PFX(sad_x4_64x64_neon); // pixel_avg_pp - p.pu[LUMA_4x4].pixelavg_pp = PFX(pixel_avg_pp_4x4_neon); - p.pu[LUMA_4x8].pixelavg_pp = PFX(pixel_avg_pp_4x8_neon); - p.pu[LUMA_4x16].pixelavg_pp = PFX(pixel_avg_pp_4x16_neon); - p.pu[LUMA_8x4].pixelavg_pp = PFX(pixel_avg_pp_8x4_neon); - p.pu[LUMA_8x8].pixelavg_pp = PFX(pixel_avg_pp_8x8_neon); - p.pu[LUMA_8x16].pixelavg_pp = PFX(pixel_avg_pp_8x16_neon); - p.pu[LUMA_8x32].pixelavg_pp = PFX(pixel_avg_pp_8x32_neon); - p.pu[LUMA_12x16].pixelavg_pp = PFX(pixel_avg_pp_12x16_neon); - p.pu[LUMA_16x4].pixelavg_pp = PFX(pixel_avg_pp_16x4_neon); - p.pu[LUMA_16x8].pixelavg_pp = PFX(pixel_avg_pp_16x8_neon); - p.pu[LUMA_16x12].pixelavg_pp = PFX(pixel_avg_pp_16x12_neon); - p.pu[LUMA_16x16].pixelavg_pp = PFX(pixel_avg_pp_16x16_neon); - p.pu[LUMA_16x32].pixelavg_pp = PFX(pixel_avg_pp_16x32_neon); - p.pu[LUMA_16x64].pixelavg_pp = PFX(pixel_avg_pp_16x64_neon); - p.pu[LUMA_24x32].pixelavg_pp = PFX(pixel_avg_pp_24x32_neon); - p.pu[LUMA_32x8].pixelavg_pp = PFX(pixel_avg_pp_32x8_neon); - p.pu[LUMA_32x16].pixelavg_pp = PFX(pixel_avg_pp_32x16_neon); - p.pu[LUMA_32x24].pixelavg_pp = PFX(pixel_avg_pp_32x24_neon); - p.pu[LUMA_32x32].pixelavg_pp = PFX(pixel_avg_pp_32x32_neon); - p.pu[LUMA_32x64].pixelavg_pp = PFX(pixel_avg_pp_32x64_neon); - p.pu[LUMA_48x64].pixelavg_pp = PFX(pixel_avg_pp_48x64_neon); - p.pu[LUMA_64x16].pixelavg_pp = PFX(pixel_avg_pp_64x16_neon); - p.pu[LUMA_64x32].pixelavg_pp = PFX(pixel_avg_pp_64x32_neon); - p.pu[LUMA_64x48].pixelavg_pp = PFX(pixel_avg_pp_64x48_neon); - p.pu[LUMA_64x64].pixelavg_pp = PFX(pixel_avg_pp_64x64_neon); + p.pu[LUMA_4x4].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_4x4_neon); + p.pu[LUMA_4x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_4x8_neon); + p.pu[LUMA_4x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_4x16_neon); + p.pu[LUMA_8x4].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x4_neon); + p.pu[LUMA_8x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x8_neon); + p.pu[LUMA_8x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x16_neon); + p.pu[LUMA_8x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x32_neon); + p.pu[LUMA_12x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_12x16_neon); + p.pu[LUMA_16x4].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x4_neon); + p.pu[LUMA_16x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x8_neon); + p.pu[LUMA_16x12].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x12_neon); + p.pu[LUMA_16x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x16_neon); + p.pu[LUMA_16x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x32_neon); + p.pu[LUMA_16x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x64_neon); + p.pu[LUMA_24x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_24x32_neon); + p.pu[LUMA_32x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x8_neon); + p.pu[LUMA_32x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x16_neon); + p.pu[LUMA_32x24].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x24_neon); + p.pu[LUMA_32x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x32_neon); + p.pu[LUMA_32x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x64_neon); + p.pu[LUMA_48x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_48x64_neon); + p.pu[LUMA_64x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x16_neon); + p.pu[LUMA_64x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x32_neon); + p.pu[LUMA_64x48].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x48_neon); + p.pu[LUMA_64x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x64_neon); // planecopy p.planecopy_cp = PFX(pixel_planecopy_cp_neon); ================================================ FILE: package/x265/Config.in ================================================ config BR2_PACKAGE_X265 bool "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 offered under either the GNU General Public License (GPL) 2 license or a commercial license, similar to the x264 project. https://bitbucket.org/multicoreware/x265/wiki/Home if BR2_PACKAGE_X265 config BR2_PACKAGE_X265_CLI bool "CLI" help Command-line tool to encode video streams into the H.265/HEVC compression format. 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 ================================================ FILE: package/x265/x265.hash ================================================ # From https://mailman.videolan.org/pipermail/x265-devel/2020-February/012880.html md5 0c8c747b59b5411dea8cf557554636c1 x265_3.3.tar.gz # Locally generated sha256 f26e148ed1f4dfb33fd1eb3ff5e60e08078d1b2017e88bcbb045b3fb58300b9c x265_3.3.tar.gz sha256 d8afb1bcc7a2cfc603683b168d6987ef0a48e59e0da3693bf55c5d33b67e2b49 COPYING ================================================ FILE: package/x265/x265.mk ================================================ ################################################################################ # # x265 # ################################################################################ X265_VERSION = 3.3 X265_SOURCE = x265_$(X265_VERSION).tar.gz X265_SITE = https://bitbucket.org/multicoreware/x265/downloads X265_LICENSE = GPL-2.0+ X265_LICENSE_FILES = COPYING X265_CPE_ID_VENDOR = multicorewareinc X265_SUBDIR = source X265_INSTALL_STAGING = YES X265_MAKE = $(MAKE1) ifeq ($(BR2_i386)$(BR2_x86_64),y) X265_DEPENDENCIES += host-nasm endif # disable altivec, it has build issues # https://bitbucket.org/multicoreware/x265/issues/320/ ifeq ($(BR2_powerpc64)$(BR2_powerpc64le),y) X265_CONF_OPTS += -DENABLE_ALTIVEC=OFF endif ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) X265_CONF_OPTS += -DENABLE_SHARED=ON -DENABLE_PIC=ON else X265_CONF_OPTS += -DENABLE_SHARED=OFF endif ifeq ($(BR2_PACKAGE_X265_CLI),y) X265_CONF_OPTS += -DENABLE_CLI=ON else X265_CONF_OPTS += -DENABLE_CLI=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/xapian/Config.in ================================================ config BR2_PACKAGE_XAPIAN bool "xapian" depends on BR2_USE_MMU # fork() depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_ZLIB help Xapian is an open Source search engine Library It is a highly adaptable toolkit which allows developers to easily add advanced indexing and search facilities to their own applications. It has built-in support for several families of weighting models and supports a rich set of boolean query operators. https://xapian.org/ comment "xapian needs a toolchain w/ C++" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP ================================================ FILE: package/xapian/xapian.hash ================================================ # From https://lists.xapian.org/pipermail/xapian-discuss/2021-January/009856.html sha256 196ddbb4ad10450100f0991a599e4ed944cbad92e4a6fe813be6dce160244b77 xapian-core-1.4.18.tar.xz # locally computed sha256 c38aee9e3c8c4d5d594ff548a1be05453023016d6286931f6512db215ec1fd42 COPYING ================================================ FILE: package/xapian/xapian.mk ================================================ ################################################################################ # # xapian # ################################################################################ XAPIAN_VERSION = 1.4.18 XAPIAN_SOURCE = xapian-core-$(XAPIAN_VERSION).tar.xz XAPIAN_SITE = https://oligarchy.co.uk/xapian/$(XAPIAN_VERSION) XAPIAN_LICENSE = GPL-2.0+ XAPIAN_LICENSE_FILES = COPYING XAPIAN_CPE_ID_VENDOR = xapian XAPIAN_CPE_ID_PRODUCT = xapian-core XAPIAN_INSTALL_STAGING = YES XAPIAN_DEPENDENCIES = zlib $(eval $(autotools-package)) ================================================ FILE: package/xavante/Config.in ================================================ config BR2_PACKAGE_XAVANTE bool "xavante" select BR2_PACKAGE_COPAS # runtime select BR2_PACKAGE_LUAFILESYSTEM # runtime select BR2_PACKAGE_LUASOCKET # runtime help Xavante is a Lua HTTP 1.1 Web server that uses a modular architecture based on URI mapped handlers. Xavante currently offers a file handler, a redirect handler and a WSAPI handler. Those are used for general files, URI remapping and WSAPI applications respectively. http://keplerproject.github.io/xavante ================================================ FILE: package/xavante/xavante.hash ================================================ # computed by luarocks/buildroot sha256 67c738f981e7d65d18c717f3acac59a37f95d5139c00fb0de5d3167262025273 xavante-2.4.0-1.src.rock sha256 57b2c50f08bf500c969fe13500f217adb36582e4d8e75c9e2ed04191cb4a045c xavante-2.4.0/doc/us/license.html ================================================ FILE: package/xavante/xavante.mk ================================================ ################################################################################ # # xavante # ################################################################################ XAVANTE_VERSION = 2.4.0-1 XAVANTE_LICENSE = MIT XAVANTE_LICENSE_FILES = $(XAVANTE_SUBDIR)/doc/us/license.html $(eval $(luarocks-package)) ================================================ FILE: package/xdg-dbus-proxy/0001-Fix-musl-compilation-by-adding-TEMP_FAILURE_RETRY.patch ================================================ From 645c45f0334bb1d6e31b5927cece5e446f129cbb Mon Sep 17 00:00:00 2001 From: Danilo Spinella Date: Sat, 7 Dec 2019 00:05:21 +0100 Subject: [PATCH] Fix musl compilation by adding TEMP_FAILURE_RETRY Fetch from: https://github.com/flatpak/xdg-dbus-proxy/pull/13 Upstream-Status: Accepted Signed-off-by: Adrian Perez de Castro --- dbus-proxy.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dbus-proxy.c b/dbus-proxy.c index 163df21..4b07931 100644 --- a/dbus-proxy.c +++ b/dbus-proxy.c @@ -30,6 +30,15 @@ #include #include "flatpak-proxy.h" +// Taken from glibc unistd.h +#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 static const char *argv0; static GList *proxies; -- 2.24.1 ================================================ FILE: package/xdg-dbus-proxy/Config.in ================================================ config BR2_PACKAGE_XDG_DBUS_PROXY bool "xdg-dbus-proxy" depends on BR2_USE_WCHAR # libglib2 -> gettext depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 help Filtering proxy for D-Bus connections. https://github.com/flatpak/xdg-dbus-proxy comment "xdg-dbus-proxy needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/xdg-dbus-proxy/xdg-dbus-proxy.hash ================================================ # From https://github.com/flatpak/xdg-dbus-proxy/releases/tag/0.1.2 sha256 1749d6f9f46dcc9edc87725641cf56cf91dcad1b01707891ea0850c1000c520f xdg-dbus-proxy-0.1.2.tar.xz # Hash for license files: sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/xdg-dbus-proxy/xdg-dbus-proxy.mk ================================================ ################################################################################ # # bubblewrap # ################################################################################ XDG_DBUS_PROXY_VERSION = 0.1.2 XDG_DBUS_PROXY_SITE = https://github.com/flatpak/xdg-dbus-proxy/releases/download/$(XDG_DBUS_PROXY_VERSION) XDG_DBUS_PROXY_SOURCE = xdg-dbus-proxy-$(XDG_DBUS_PROXY_VERSION).tar.xz XDG_DBUS_PROXY_DEPENDENCIES = host-pkgconf libglib2 XDG_DBUS_PROXY_LICENSE = LGPL-2.1+ XDG_DBUS_PROXY_LICENSE_FILES = COPYING XDG_DBUS_PROXY_CONF_OPTS = --disable-man $(eval $(autotools-package)) ================================================ FILE: package/xdotool/Config.in ================================================ config BR2_PACKAGE_XDOTOOL bool "xdotool" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU # fork() select BR2_PACKAGE_XLIB_LIBXTST select BR2_PACKAGE_XLIB_LIBXINERAMA select BR2_PACKAGE_LIBXKBCOMMON select BR2_PACKAGE_XLIB_LIBX11 help Command-line X11 automation tool http://www.semicomplete.com/projects/xdotool ================================================ FILE: package/xdotool/xdotool.hash ================================================ # locally computed hash sha256 ddafca1239075c203769c17a5a184587731e56fbe0438c09d08f8af1704e117a xdotool-3.20160805.1.tar.gz sha256 129d156c35b1cb19350f3716129173c8c89e019c0497d9df073db5b801becef2 COPYRIGHT ================================================ FILE: package/xdotool/xdotool.mk ================================================ ################################################################################ # # xdotool # ################################################################################ XDOTOOL_VERSION = 3.20160805.1 XDOTOOL_SITE = $(call github,jordansissel,xdotool,v$(XDOTOOL_VERSION)) XDOTOOL_LICENSE = BSD-3-Clause XDOTOOL_LICENSE_FILES = COPYRIGHT XDOTOOL_DEPENDENCIES = xlib_libXtst xlib_libXinerama libxkbcommon xlib_libX11 define XDOTOOL_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) endef # Avoid 'install' target to skip 'post-install' which runs ldconfig on host define XDOTOOL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ pre-install installlib installprog installheader \ PREFIX="$(TARGET_DIR)/usr" endef $(eval $(generic-package)) ================================================ FILE: package/xen/0001-9pfs-include-linux-limits.h-for-XATTR_SIZE_MAX.patch ================================================ Message-Id: <07010a2ad79559c412949f0005dbe3cb03d8416e.1498504812.git.ps@pks.im> From: Patrick Steinhardt Date: Mon, 26 Jun 2017 21:20:45 +0200 Subject: [PATCH] 9pfs: include for XATTR_SIZE_MAX The function `v9fs_xattrcreate` makes use of the define `XATTR_SIZE_MAX` to reject attempts of creating xattrs with an invalid size, which is defined in . On glibc-based systems, this header is indirectly included via , , , but on other platforms this is not guaranteed due to not being part of the POSIX standard. One examples are systems based on musl libc, which do not include the indirectly, which leads to `XATTR_SIZE_MAX` being undefined. Fix this error by directly include . As the 9P fs code is being Linux-based either way, we can simply do so without breaking other platforms. This enables building 9pfs on musl-based systems. Signed-off-by: Patrick Steinhardt [ Changes by AF - Apply to the QEMU tree inside of Xen ] Signed-off-by: Alistair Francis --- Upstream Status: Pending review and acceptance tools/qemu-xen/hw/9pfs/9p.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/qemu-xen/hw/9pfs/9p.c b/tools/qemu-xen/hw/9pfs/9p.c index 96d2683348..48cd558e96 100644 --- a/tools/qemu-xen/hw/9pfs/9p.c +++ b/tools/qemu-xen/hw/9pfs/9p.c @@ -13,6 +13,7 @@ #include "qemu/osdep.h" #include +#include #include "hw/virtio/virtio.h" #include "qapi/error.h" #include "qemu/error-report.h" -- 2.13.2 ================================================ FILE: package/xen/0002-Fix-build-with-64-bits-time_t.patch ================================================ From f7a6df5f5bf3acc219352a1b25573ae2082d7e42 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 3 Dec 2020 20:58:19 +0100 Subject: [PATCH] Fix build with 64 bits time_t time element is deprecated on new input_event structure in kernel's input.h [1] This will avoid the following build failure: hw/input/virtio-input-host.c: In function 'virtio_input_host_handle_status': hw/input/virtio-input-host.c:198:28: error: 'struct input_event' has no member named 'time' 198 | if (gettimeofday(&evdev.time, NULL)) { | ^ Fixes: - http://autobuild.buildroot.org/results/a538167e288c14208d557cd45446df86d3d599d5 - http://autobuild.buildroot.org/results/efd4474fb4b6c0ce0ab3838ce130429c51e43bbb [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f Signed-off-by: Fabrice Fontaine Message-Id: <20201203195819.583626-1-fontaine.fabrice@gmail.com> Fixes: https://gitlab.com/qemu-project/qemu/-/issues/246 Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin [Retrieved (and updated for qemu-xen) from: https://github.com/qemu/qemu/commit/f7a6df5f5bf3acc219352a1b25573ae2082d7e42] Signed-off-by: Fabrice Fontaine --- contrib/vhost-user-input/main.c | 8 ++++++-- hw/input/virtio-input-host.c | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tools/qemu-xen/contrib/vhost-user-input/main.c b/tools/qemu-xen/contrib/vhost-user-input/main.c index c15d18c33f0c..081230da548a 100644 --- a/tools/qemu-xen/contrib/vhost-user-input/main.c +++ b/tools/qemu-xen/contrib/vhost-user-input/main.c @@ -6,13 +6,14 @@ #include "qemu/osdep.h" #include -#include +#include #include "qemu/iov.h" #include "qemu/bswap.h" #include "qemu/sockets.h" #include "contrib/libvhost-user/libvhost-user.h" #include "contrib/libvhost-user/libvhost-user-glib.h" +#include "standard-headers/linux/input.h" #include "standard-headers/linux/virtio_input.h" #include "qapi/error.h" @@ -113,13 +114,16 @@ vi_evdev_watch(VuDev *dev, int condition, void *data) static void vi_handle_status(VuInput *vi, virtio_input_event *event) { struct input_event evdev; + struct timeval tval; int rc; - if (gettimeofday(&evdev.time, NULL)) { + if (gettimeofday(&tval, NULL)) { perror("vi_handle_status: gettimeofday"); return; } + evdev.input_event_sec = tval.tv_sec; + evdev.input_event_usec = tval.tv_usec; evdev.type = le16toh(event->type); evdev.code = le16toh(event->code); evdev.value = le32toh(event->value); diff --git a/tools/qemu-xen/hw/input/virtio-input-host.c b/tools/qemu-xen/hw/input/virtio-input-host.c index 85daf73f1a80..137efba57b0f 100644 --- a/tools/qemu-xen/hw/input/virtio-input-host.c +++ b/tools/qemu-xen/hw/input/virtio-input-host.c @@ -193,13 +193,16 @@ static void virtio_input_host_handle_status(VirtIOInput *vinput, { VirtIOInputHost *vih = VIRTIO_INPUT_HOST(vinput); struct input_event evdev; + struct timeval tval; int rc; - if (gettimeofday(&evdev.time, NULL)) { + if (gettimeofday(&tval, NULL)) { perror("virtio_input_host_handle_status: gettimeofday"); return; } + evdev.input_event_sec = tval.tv_sec; + evdev.input_event_usec = tval.tv_usec; evdev.type = le16_to_cpu(event->type); evdev.code = le16_to_cpu(event->code); evdev.value = le32_to_cpu(event->value); ================================================ FILE: package/xen/0003-libs-light-fix-tv_sec-printf-format.patch ================================================ From a8ac01aa3e3ea5e6a9a1620aa8fa7e9da3458120 Mon Sep 17 00:00:00 2001 From: Manuel Bouyer Date: Tue, 26 Jan 2021 23:47:55 +0100 Subject: [PATCH] libs/light: fix tv_sec printf format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't assume tv_sec is a unsigned long, it is 64 bits on NetBSD 32 bits. Use %jd and cast to (intmax_t) instead Signed-off-by: Manuel Bouyer Reviewed-by: Roger Pau Monné [Retrieved (and backported) from: https://gitlab.com/xen-project/xen/-/commit/a8ac01aa3e3ea5e6a9a1620aa8fa7e9da3458120] Signed-off-by: Fabrice Fontaine --- tools/libs/light/libxl_create.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index 8616113e72..9848d65f36 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -496,7 +496,7 @@ int libxl__domain_build(libxl__gc *gc, vments[2] = "image/ostype"; vments[3] = "hvm"; vments[4] = "start_time"; - vments[5] = GCSPRINTF("%lu.%02d", start_time.tv_sec,(int)start_time.tv_usec/10000); + vments[5] = GCSPRINTF("%jd.%02d", (intmax_t)start_time.tv_sec,(int)start_time.tv_usec/10000); localents = libxl__calloc(gc, 13, sizeof(char *)); i = 0; @@ -535,7 +535,7 @@ int libxl__domain_build(libxl__gc *gc, vments[i++] = "image/kernel"; vments[i++] = (char *) state->pv_kernel.path; vments[i++] = "start_time"; - vments[i++] = GCSPRINTF("%lu.%02d", start_time.tv_sec,(int)start_time.tv_usec/10000); + vments[i++] = GCSPRINTF("%jd.%02d", (intmax_t)start_time.tv_sec,(int)start_time.tv_usec/10000); if (state->pv_ramdisk.path) { vments[i++] = "image/ramdisk"; vments[i++] = (char *) state->pv_ramdisk.path; @@ -1502,7 +1502,7 @@ static void domcreate_stream_done(libxl__egc *egc, vments[2] = "image/ostype"; vments[3] = "hvm"; vments[4] = "start_time"; - vments[5] = GCSPRINTF("%lu.%02d", start_time.tv_sec,(int)start_time.tv_usec/10000); + vments[5] = GCSPRINTF("%jd.%02d", (intmax_t)start_time.tv_sec,(int)start_time.tv_usec/10000); break; case LIBXL_DOMAIN_TYPE_PV: vments = libxl__calloc(gc, 11, sizeof(char *)); @@ -1512,7 +1512,7 @@ static void domcreate_stream_done(libxl__egc *egc, vments[i++] = "image/kernel"; vments[i++] = (char *) state->pv_kernel.path; vments[i++] = "start_time"; - vments[i++] = GCSPRINTF("%lu.%02d", start_time.tv_sec,(int)start_time.tv_usec/10000); + vments[i++] = GCSPRINTF("%jd.%02d", (intmax_t)start_time.tv_sec,(int)start_time.tv_usec/10000); if (state->pv_ramdisk.path) { vments[i++] = "image/ramdisk"; vments[i++] = (char *) state->pv_ramdisk.path; -- GitLab ================================================ FILE: package/xen/0004-libs-light-fix-tv_sec-fprintf-format.patch ================================================ From 4881285bcfd8f2e2c913c6e9f011b1e90652f414 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 28 Aug 2021 11:00:07 +0200 Subject: [PATCH] libs/light: fix tv_sec fprintf format Don't assume tv_sec is a unsigned long, it is 64 bits on NetBSD 32 bits. Use %jd and cast to (intmax_t) instead Signed-off-by: Fabrice Fontaine [Upstream status: sent to xen-devel@lists.xenproject.org] --- tools/libs/light/libxl_domain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/libxl/libxl_domain.c b/tools/libxl/libxl_domain.c index c00c36c928..51a6127552 100644 --- a/tools/libxl/libxl_domain.c +++ b/tools/libxl/libxl_domain.c @@ -1444,7 +1444,7 @@ static int libxl__mark_domid_recent(libxl__gc *gc, uint32_t domid) } } - r = fprintf(nf, "%lu %u\n", ctxt.ts.tv_sec, domid); + r = fprintf(nf, "%jd %u\n", (intmax_t)ctxt.ts.tv_sec, domid); if (r < 0) { LOGED(ERROR, domid, "failed to write to '%s'", new); goto out; -- 2.32.0 ================================================ FILE: package/xen/Config.in ================================================ 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_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_WCHAR # libglib2 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_SLIRP 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_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS endif ================================================ FILE: package/xen/xen.hash ================================================ # Locally computed sha256 a3dad76a772393a1875e8f44a6059a95fea4bde40f97b800966969ac6f3a498d xen-4.14.3.tar.gz sha256 ecca9538e9d3f7e3c2bff827502f4495e2ef9e22c451298696ea08886b176c2c COPYING ================================================ FILE: package/xen/xen.mk ================================================ ################################################################################ # # Xen # ################################################################################ XEN_VERSION = 4.14.3 XEN_SITE = https://downloads.xenproject.org/release/xen/$(XEN_VERSION) XEN_LICENSE = GPL-2.0 XEN_LICENSE_FILES = COPYING XEN_CPE_ID_VENDOR = xen XEN_CPE_ID_PREFIX = cpe:2.3:o XEN_DEPENDENCIES = host-acpica host-python3 # Calculate XEN_ARCH ifeq ($(ARCH),aarch64) XEN_ARCH = arm64 else ifeq ($(ARCH),arm) XEN_ARCH = arm32 endif XEN_CONF_OPTS = \ --disable-golang \ --disable-ocamltools \ --with-initddir=/etc/init.d XEN_CONF_ENV = PYTHON=$(HOST_DIR)/bin/python3 XEN_MAKE_ENV = \ XEN_TARGET_ARCH=$(XEN_ARCH) \ CROSS_COMPILE=$(TARGET_CROSS) \ HOST_EXTRACFLAGS="-Wno-error" \ XEN_HAS_CHECKPOLICY=n \ $(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 slirp 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 XEN_CONF_OPTS += --with-extra-qemuu-configure-args="--disable-sdl --disable-opengl" 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)) ================================================ FILE: package/xenomai/3.0.10/0001-lib-boilerplate-iniparser-Allow-building-with-GCC-10-2-2020101.patch ================================================ From 8acdbd718b7828b5d8903a6254b2fa198b866491 Mon Sep 17 00:00:00 2001 From: Florian Bezdeka Date: Thu, 12 Nov 2020 11:45:28 +0000 Subject: [PATCH] lib/boilerplate/iniparser: Allow building with GCC 10.2 2020101 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updating to upstream revision f858275f7f307eecba84c2f5429483f9f28007f8. Upstream repository is located at [1]. The reason for updating was the following compiler error when trying to compile with GCC 10.2 10.2.1 20201016. As it turned out the problem was already addressed upstream: iniparser/iniparser.c: In function ‘iniparser_load’: iniparser/iniparser.c:616:13: error: ‘sprintf’ arguments 3, 4 may overlap destination object ‘buf’ [-Werror=restrict] 616 | sprintf(tmp, "%s:%s", section, key); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I reviewed especially the API changes. Most of them are cleanups only but two things should be pointed out: - The type of the size field of struct _dictionary_ changed from int to ssize_t. The only user of this struct is lib/analogy/calibration.c which uses this structure for internal things only. It is never exposed to any public API so updating is OK and fully backward compatible. - dictionary_new changed its signature from dictionary_new(int size) to dictionary_new(size_t size). This function is not part of any public API. So updating does not break backward compatibility. [1] https://github.com/ndevilla/iniparser Signed-off-by: Florian Bezdeka Signed-off-by: Jan Kiszka [Retrieved from: https://gitlab.denx.de/Xenomai/xenomai/-/commit/8acdbd718b7828b5d8903a6254b2fa198b866491] Signed-off-by: Fabrice Fontaine --- lib/boilerplate/iniparser/dictionary.c | 409 ++++++++++---------- lib/boilerplate/iniparser/dictionary.h | 43 ++- lib/boilerplate/iniparser/iniparser.c | 491 +++++++++++++++++-------- lib/boilerplate/iniparser/iniparser.h | 131 +++++-- 4 files changed, 646 insertions(+), 428 deletions(-) diff --git a/lib/boilerplate/iniparser/dictionary.c b/lib/boilerplate/iniparser/dictionary.c index 5299b77ed..cb7ccd49e 100644 --- a/lib/boilerplate/iniparser/dictionary.c +++ b/lib/boilerplate/iniparser/dictionary.c @@ -1,10 +1,8 @@ /*-------------------------------------------------------------------------*/ /** - @file dictionary.c - @author N. Devillard - @date Sep 2007 - @version $Revision: 1.27 $ - @brief Implements a dictionary for string variables. + @file dictionary.c + @author N. Devillard + @brief Implements a dictionary for string variables. This module implements a simple dictionary object, i.e. a list of string/string associations. This object is useful to store e.g. @@ -12,12 +10,8 @@ */ /*--------------------------------------------------------------------------*/ -/* - $Id: dictionary.c,v 1.27 2007-11-23 21:39:18 ndevilla Exp $ - $Revision: 1.27 $ -*/ /*--------------------------------------------------------------------------- - Includes + Includes ---------------------------------------------------------------------------*/ #include "dictionary.h" @@ -27,33 +21,18 @@ #include /** Maximum value size for integers and doubles. */ -#define MAXVALSZ 1024 +#define MAXVALSZ 1024 /** Minimal allocated number of entries in a dictionary */ -#define DICTMINSZ 128 +#define DICTMINSZ 128 /** Invalid key token */ #define DICT_INVALID_KEY ((char*)-1) /*--------------------------------------------------------------------------- - Private functions + Private functions ---------------------------------------------------------------------------*/ -/* Doubles the allocated size associated to a pointer */ -/* 'size' is the current allocated size. */ -static void * mem_double(void * ptr, int size) -{ - void * newptr ; - - newptr = calloc(2*size, 1); - if (newptr==NULL) { - return NULL ; - } - memcpy(newptr, ptr, size); - free(ptr); - return newptr ; -} - /*-------------------------------------------------------------------------*/ /** @brief Duplicate a string @@ -67,23 +46,68 @@ static void * mem_double(void * ptr, int size) static char * xstrdup(const char * s) { char * t ; + size_t len ; if (!s) return NULL ; - t = malloc(strlen(s)+1) ; + + len = strlen(s) + 1 ; + t = (char*) malloc(len) ; if (t) { - strcpy(t,s); + memcpy(t, s, len) ; } return t ; } +/*-------------------------------------------------------------------------*/ +/** + @brief Double the size of the dictionary + @param d Dictionary to grow + @return This function returns non-zero in case of failure + */ +/*--------------------------------------------------------------------------*/ +static int dictionary_grow(dictionary * d) +{ + char ** new_val ; + char ** new_key ; + unsigned * new_hash ; + + new_val = (char**) calloc(d->size * 2, sizeof *d->val); + new_key = (char**) calloc(d->size * 2, sizeof *d->key); + new_hash = (unsigned*) calloc(d->size * 2, sizeof *d->hash); + if (!new_val || !new_key || !new_hash) { + /* An allocation failed, leave the dictionary unchanged */ + if (new_val) + free(new_val); + if (new_key) + free(new_key); + if (new_hash) + free(new_hash); + return -1 ; + } + /* Initialize the newly allocated space */ + memcpy(new_val, d->val, d->size * sizeof(char *)); + memcpy(new_key, d->key, d->size * sizeof(char *)); + memcpy(new_hash, d->hash, d->size * sizeof(unsigned)); + /* Delete previous data */ + free(d->val); + free(d->key); + free(d->hash); + /* Actually update the dictionary */ + d->size *= 2 ; + d->val = new_val; + d->key = new_key; + d->hash = new_hash; + return 0 ; +} + /*--------------------------------------------------------------------------- - Function codes + Function codes ---------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/ /** - @brief Compute the hash key for a string. - @param key Character string to use for key. - @return 1 unsigned int on at least 32 bits. + @brief Compute the hash key for a string. + @param key Character string to use for key. + @return 1 unsigned int on at least 32 bits. This hash function has been taken from an Article in Dr Dobbs Journal. This is normally a collision-free function, distributing keys evenly. @@ -93,84 +117,88 @@ static char * xstrdup(const char * s) /*--------------------------------------------------------------------------*/ unsigned dictionary_hash(const char * key) { - int len ; - unsigned hash ; - int i ; - - len = strlen(key); - for (hash=0, i=0 ; i>6) ; - } - hash += (hash <<3); - hash ^= (hash >>11); - hash += (hash <<15); - return hash ; + size_t len ; + unsigned hash ; + size_t i ; + + if (!key) + return 0 ; + + len = strlen(key); + for (hash=0, i=0 ; i>6) ; + } + hash += (hash <<3); + hash ^= (hash >>11); + hash += (hash <<15); + return hash ; } /*-------------------------------------------------------------------------*/ /** - @brief Create a new dictionary object. - @param size Optional initial size of the dictionary. - @return 1 newly allocated dictionary objet. + @brief Create a new dictionary object. + @param size Optional initial size of the dictionary. + @return 1 newly allocated dictionary objet. This function allocates a new dictionary object of given size and returns it. If you do not know in advance (roughly) the number of entries in the dictionary, give size=0. */ -/*--------------------------------------------------------------------------*/ -dictionary * dictionary_new(int size) +/*-------------------------------------------------------------------------*/ +dictionary * dictionary_new(size_t size) { - dictionary * d ; - - /* If no size was specified, allocate space for DICTMINSZ */ - if (sizesize = size ; - d->val = (char **)calloc(size, sizeof(char*)); - d->key = (char **)calloc(size, sizeof(char*)); - d->hash = (unsigned int *)calloc(size, sizeof(unsigned)); - return d ; + dictionary * d ; + + /* If no size was specified, allocate space for DICTMINSZ */ + if (sizesize = size ; + d->val = (char**) calloc(size, sizeof *d->val); + d->key = (char**) calloc(size, sizeof *d->key); + d->hash = (unsigned*) calloc(size, sizeof *d->hash); + } + return d ; } /*-------------------------------------------------------------------------*/ /** - @brief Delete a dictionary object - @param d dictionary object to deallocate. - @return void + @brief Delete a dictionary object + @param d dictionary object to deallocate. + @return void Deallocate a dictionary object and all memory associated to it. */ /*--------------------------------------------------------------------------*/ void dictionary_del(dictionary * d) { - int i ; - - if (d==NULL) return ; - for (i=0 ; isize ; i++) { - if (d->key[i]!=NULL) - free(d->key[i]); - if (d->val[i]!=NULL) - free(d->val[i]); - } - free(d->val); - free(d->key); - free(d->hash); - free(d); - return ; + ssize_t i ; + + if (d==NULL) return ; + for (i=0 ; isize ; i++) { + if (d->key[i]!=NULL) + free(d->key[i]); + if (d->val[i]!=NULL) + free(d->val[i]); + } + free(d->val); + free(d->key); + free(d->hash); + free(d); + return ; } /*-------------------------------------------------------------------------*/ /** - @brief Get a value from a dictionary. - @param d dictionary object to search. - @param key Key to look for in the dictionary. + @brief Get a value from a dictionary. + @param d dictionary object to search. + @param key Key to look for in the dictionary. @param def Default value to return if key not found. - @return 1 pointer to internally allocated character string. + @return 1 pointer to internally allocated character string. This function locates a key in a dictionary and returns a pointer to its value, or the passed 'def' pointer if no such key can be found in @@ -178,24 +206,24 @@ void dictionary_del(dictionary * d) dictionary object, you should not try to free it or modify it. */ /*--------------------------------------------------------------------------*/ -const char * dictionary_get(dictionary * d, const char * key, const char * def) +const char * dictionary_get(const dictionary * d, const char * key, const char * def) { - unsigned hash ; - int i ; + unsigned hash ; + ssize_t i ; - hash = dictionary_hash(key); - for (i=0 ; isize ; i++) { + hash = dictionary_hash(key); + for (i=0 ; isize ; i++) { if (d->key[i]==NULL) continue ; /* Compare hash */ - if (hash==d->hash[i]) { + if (hash==d->hash[i]) { /* Compare string, to avoid hash collisions */ if (!strcmp(key, d->key[i])) { - return d->val[i] ; - } - } - } - return def ; + return d->val[i] ; + } + } + } + return def ; } /*-------------------------------------------------------------------------*/ @@ -226,66 +254,57 @@ const char * dictionary_get(dictionary * d, const char * key, const char * def) /*--------------------------------------------------------------------------*/ int dictionary_set(dictionary * d, const char * key, const char * val) { - int i ; - unsigned hash ; - - if (d==NULL || key==NULL) return -1 ; - - /* Compute hash for this key */ - hash = dictionary_hash(key) ; - /* Find if value is already in dictionary */ - if (d->n>0) { - for (i=0 ; isize ; i++) { + ssize_t i ; + unsigned hash ; + + if (d==NULL || key==NULL) return -1 ; + + /* Compute hash for this key */ + hash = dictionary_hash(key) ; + /* Find if value is already in dictionary */ + if (d->n>0) { + for (i=0 ; isize ; i++) { if (d->key[i]==NULL) continue ; - if (hash==d->hash[i]) { /* Same hash value */ - if (!strcmp(key, d->key[i])) { /* Same key */ - /* Found a value: modify and return */ - if (d->val[i]!=NULL) - free(d->val[i]); - d->val[i] = val ? xstrdup(val) : NULL ; + if (hash==d->hash[i]) { /* Same hash value */ + if (!strcmp(key, d->key[i])) { /* Same key */ + /* Found a value: modify and return */ + if (d->val[i]!=NULL) + free(d->val[i]); + d->val[i] = (val ? xstrdup(val) : NULL); /* Value has been modified: return */ - return 0 ; - } - } - } - } - /* Add a new value */ - /* See if dictionary needs to grow */ - if (d->n==d->size) { - - /* Reached maximum size: reallocate dictionary */ - d->val = (char **)mem_double(d->val, d->size * sizeof(char*)) ; - d->key = (char **)mem_double(d->key, d->size * sizeof(char*)) ; - d->hash = (unsigned int *)mem_double(d->hash, d->size * sizeof(unsigned)) ; - if ((d->val==NULL) || (d->key==NULL) || (d->hash==NULL)) { - /* Cannot grow dictionary */ - return -1 ; + return 0 ; + } + } } - /* Double size */ - d->size *= 2 ; - } + } + /* Add a new value */ + /* See if dictionary needs to grow */ + if (d->n==d->size) { + /* Reached maximum size: reallocate dictionary */ + if (dictionary_grow(d) != 0) + return -1; + } - /* Insert key in the first empty slot */ - for (i=0 ; isize ; i++) { - if (d->key[i]==NULL) { - /* Add key here */ - break ; - } + /* Insert key in the first empty slot. Start at d->n and wrap at + d->size. Because d->n < d->size this will necessarily + terminate. */ + for (i=d->n ; d->key[i] ; ) { + if(++i == d->size) i = 0; } - /* Copy key */ - d->key[i] = xstrdup(key); - d->val[i] = val ? xstrdup(val) : NULL ; - d->hash[i] = hash; - d->n ++ ; - return 0 ; + /* Copy key */ + d->key[i] = xstrdup(key); + d->val[i] = (val ? xstrdup(val) : NULL) ; + d->hash[i] = hash; + d->n ++ ; + return 0 ; } /*-------------------------------------------------------------------------*/ /** - @brief Delete a key in a dictionary - @param d dictionary object to modify. - @param key Key to remove. + @brief Delete a key in a dictionary + @param d dictionary object to modify. + @param key Key to remove. @return void This function deletes a key in a dictionary. Nothing is done if the @@ -294,26 +313,26 @@ int dictionary_set(dictionary * d, const char * key, const char * val) /*--------------------------------------------------------------------------*/ void dictionary_unset(dictionary * d, const char * key) { - unsigned hash ; - int i ; + unsigned hash ; + ssize_t i ; - if (key == NULL) { - return; - } + if (key == NULL || d == NULL) { + return; + } - hash = dictionary_hash(key); - for (i=0 ; isize ; i++) { + hash = dictionary_hash(key); + for (i=0 ; isize ; i++) { if (d->key[i]==NULL) continue ; /* Compare hash */ - if (hash==d->hash[i]) { + if (hash==d->hash[i]) { /* Compare string, to avoid hash collisions */ if (!strcmp(key, d->key[i])) { /* Found key */ break ; - } - } - } + } + } + } if (i>=d->size) /* Key not found */ return ; @@ -331,75 +350,31 @@ void dictionary_unset(dictionary * d, const char * key) /*-------------------------------------------------------------------------*/ /** - @brief Dump a dictionary to an opened file pointer. - @param d Dictionary to dump - @param out Opened file pointer. - @return void + @brief Dump a dictionary to an opened file pointer. + @param d Dictionary to dump + @param f Opened file pointer. + @return void Dumps a dictionary onto an opened file pointer. Key pairs are printed out as @c [Key]=[Value], one per line. It is Ok to provide stdout or stderr as output file pointers. */ /*--------------------------------------------------------------------------*/ -void dictionary_dump(dictionary * d, FILE * out) +void dictionary_dump(const dictionary * d, FILE * out) { - int i ; - - if (d==NULL || out==NULL) return ; - if (d->n<1) { - fprintf(out, "empty dictionary\n"); - return ; - } - for (i=0 ; isize ; i++) { + ssize_t i ; + + if (d==NULL || out==NULL) return ; + if (d->n<1) { + fprintf(out, "empty dictionary\n"); + return ; + } + for (i=0 ; isize ; i++) { if (d->key[i]) { fprintf(out, "%20s\t[%s]\n", d->key[i], d->val[i] ? d->val[i] : "UNDEF"); } - } - return ; -} - - -/* Test code */ -#ifdef TESTDIC -#define NVALS 20000 -int main(int argc, char *argv[]) -{ - dictionary * d ; - char * val ; - int i ; - char cval[90] ; - - /* Allocate dictionary */ - printf("allocating...\n"); - d = dictionary_new(0); - - /* Set values in dictionary */ - printf("setting %d values...\n", NVALS); - for (i=0 ; in != 0) { - printf("error deleting values\n"); } - printf("deallocating...\n"); - dictionary_del(d); - return 0 ; + return ; } -#endif -/* vim: set ts=4 et sw=4 tw=75 */ diff --git a/lib/boilerplate/iniparser/dictionary.h b/lib/boilerplate/iniparser/dictionary.h index fa4dcb727..d04b6ce71 100644 --- a/lib/boilerplate/iniparser/dictionary.h +++ b/lib/boilerplate/iniparser/dictionary.h @@ -3,8 +3,6 @@ /** @file dictionary.h @author N. Devillard - @date Sep 2007 - @version $Revision: 1.12 $ @brief Implements a dictionary for string variables. This module implements a simple dictionary object, i.e. a list @@ -13,18 +11,11 @@ */ /*--------------------------------------------------------------------------*/ -/* - $Id: dictionary.h,v 1.12 2007-11-23 21:37:00 ndevilla Exp $ - $Author: ndevilla $ - $Date: 2007-11-23 21:37:00 $ - $Revision: 1.12 $ -*/ - #ifndef _DICTIONARY_H_ #define _DICTIONARY_H_ /*--------------------------------------------------------------------------- - Includes + Includes ---------------------------------------------------------------------------*/ #include @@ -32,14 +23,18 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + /*--------------------------------------------------------------------------- - New types + New types ---------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/ /** - @brief Dictionary object + @brief Dictionary object This object contains a list of string/string associations. Each association is identified by a unique string key. Looking up values @@ -48,16 +43,16 @@ */ /*-------------------------------------------------------------------------*/ typedef struct _dictionary_ { - int n ; /** Number of entries in dictionary */ - int size ; /** Storage size */ - char ** val ; /** List of string values */ - char ** key ; /** List of string keys */ - unsigned * hash ; /** List of hash values for keys */ + int n ; /** Number of entries in dictionary */ + ssize_t size ; /** Storage size */ + char ** val ; /** List of string values */ + char ** key ; /** List of string keys */ + unsigned * hash ; /** List of hash values for keys */ } dictionary ; /*--------------------------------------------------------------------------- - Function prototypes + Function prototypes ---------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/ @@ -85,7 +80,7 @@ unsigned dictionary_hash(const char * key); dictionary, give size=0. */ /*--------------------------------------------------------------------------*/ -dictionary * dictionary_new(int size); +dictionary * dictionary_new(size_t size); /*-------------------------------------------------------------------------*/ /** @@ -112,7 +107,7 @@ void dictionary_del(dictionary * vd); dictionary object, you should not try to free it or modify it. */ /*--------------------------------------------------------------------------*/ -const char * dictionary_get(dictionary * d, const char * key, const char * def); +const char * dictionary_get(const dictionary * d, const char * key, const char * def); /*-------------------------------------------------------------------------*/ @@ -161,7 +156,7 @@ void dictionary_unset(dictionary * d, const char * key); /** @brief Dump a dictionary to an opened file pointer. @param d Dictionary to dump - @param out Opened file pointer. + @param f Opened file pointer. @return void Dumps a dictionary onto an opened file pointer. Key pairs are printed out @@ -169,6 +164,10 @@ void dictionary_unset(dictionary * d, const char * key); output file pointers. */ /*--------------------------------------------------------------------------*/ -void dictionary_dump(dictionary * d, FILE * out); +void dictionary_dump(const dictionary * d, FILE * out); + +#ifdef __cplusplus +} +#endif #endif diff --git a/lib/boilerplate/iniparser/iniparser.c b/lib/boilerplate/iniparser/iniparser.c index 5b2094a00..f1d165896 100644 --- a/lib/boilerplate/iniparser/iniparser.c +++ b/lib/boilerplate/iniparser/iniparser.c @@ -3,19 +3,12 @@ /** @file iniparser.c @author N. Devillard - @date Sep 2007 - @version 3.0 @brief Parser for ini files. */ /*--------------------------------------------------------------------------*/ -/* - $Id: iniparser.c,v 2.18 2008-01-03 18:35:39 ndevilla Exp $ - $Revision: 2.18 $ - $Date: 2008-01-03 18:35:39 $ -*/ /*---------------------------- Includes ------------------------------------*/ #include -#include +#include #include "iniparser.h" /*---------------------------- Defines -------------------------------------*/ @@ -39,65 +32,115 @@ typedef enum _line_status_ { /*-------------------------------------------------------------------------*/ /** - @brief Convert a string to lowercase. - @param s String to convert. - @return ptr to statically allocated string. - - This function returns a pointer to a statically allocated string - containing a lowercased version of the input string. Do not free - or modify the returned string! Since the returned string is statically - allocated, it will be modified at each function call (not re-entrant). + @brief Convert a string to lowercase. + @param in String to convert. + @param out Output buffer. + @param len Size of the out buffer. + @return ptr to the out buffer or NULL if an error occured. + + This function convert a string into lowercase. + At most len - 1 elements of the input string will be converted. */ /*--------------------------------------------------------------------------*/ - -static char strbuf[ASCIILINESZ+1]; - -static char * strlwc(const char * s) +static const char * strlwc(const char * in, char *out, unsigned len) { - int i ; + unsigned i ; - if (s==NULL) return NULL ; - memset(strbuf, 0, ASCIILINESZ+1); + if (in==NULL || out == NULL || len==0) return NULL ; i=0 ; - while (s[i] && i s) { + if (!isspace((int)*(last-1))) + break ; + last -- ; + } + *last = (char)0; + + memmove(dest,s,last - s + 1); + return last - s; +} + +/*-------------------------------------------------------------------------*/ +/** + @brief Default error callback for iniparser: wraps `fprintf(stderr, ...)`. + */ +/*--------------------------------------------------------------------------*/ +static int default_error_callback(const char *format, ...) +{ + int ret; + va_list argptr; + va_start(argptr, format); + ret = vfprintf(stderr, format, argptr); + va_end(argptr); + return ret; } +static int (*iniparser_error_callback)(const char*, ...) = default_error_callback; + /*-------------------------------------------------------------------------*/ /** - @brief Remove blanks at the beginning and the end of a string. - @param s String to parse. - @return ptr to statically allocated string. - - This function returns a pointer to a statically allocated string, - which is identical to the input string, except that all blank - characters at the end and the beg. of the string have been removed. - Do not free or modify the returned string! Since the returned string - is statically allocated, it will be modified at each function call - (not re-entrant). + @brief Configure a function to receive the error messages. + @param errback Function to call. + + By default, the error will be printed on stderr. If a null pointer is passed + as errback the error callback will be switched back to default. */ /*--------------------------------------------------------------------------*/ -static char * strstrip(const char * s) +void iniparser_set_error_callback(int (*errback)(const char *, ...)) { - char * last ; - - if (s==NULL) return NULL ; - - while (isspace((int)*s) && *s) s++; - memset(strbuf, 0, ASCIILINESZ+1); - strcpy(strbuf, s); - last = strbuf + strlen(strbuf); - while (last > strbuf) { - if (!isspace((int)*(last-1))) - break ; - last -- ; - } - *last = (char)0; - return (char*)strbuf ; + if (errback) { + iniparser_error_callback = errback; + } else { + iniparser_error_callback = default_error_callback; + } } /*-------------------------------------------------------------------------*/ @@ -118,7 +161,7 @@ static char * strstrip(const char * s) This function returns -1 in case of error. */ /*--------------------------------------------------------------------------*/ -int iniparser_getnsec(dictionary * d) +int iniparser_getnsec(const dictionary * d) { int i ; int nsec ; @@ -149,7 +192,7 @@ int iniparser_getnsec(dictionary * d) This function returns NULL in case of error. */ /*--------------------------------------------------------------------------*/ -const char * iniparser_getsecname(dictionary * d, int n) +const char * iniparser_getsecname(const dictionary * d, int n) { int i ; int foundsec ; @@ -184,7 +227,7 @@ const char * iniparser_getsecname(dictionary * d, int n) purposes mostly. */ /*--------------------------------------------------------------------------*/ -void iniparser_dump(dictionary * d, FILE * f) +void iniparser_dump(const dictionary * d, FILE * f) { int i ; @@ -212,13 +255,11 @@ void iniparser_dump(dictionary * d, FILE * f) It is Ok to specify @c stderr or @c stdout as output files. */ /*--------------------------------------------------------------------------*/ -void iniparser_dump_ini(dictionary * d, FILE * f) +void iniparser_dump_ini(const dictionary * d, FILE * f) { - int i, j ; - char keym[ASCIILINESZ+1]; - int nsec ; - const char * secname ; - int seclen ; + int i ; + int nsec ; + const char * secname ; if (d==NULL || f==NULL) return ; @@ -234,24 +275,126 @@ void iniparser_dump_ini(dictionary * d, FILE * f) } for (i=0 ; isize ; j++) { - if (d->key[j]==NULL) - continue ; - if (!strncmp(d->key[j], keym, seclen+1)) { - fprintf(f, - "%-30s = %s\n", - d->key[j]+seclen+1, - d->val[j] ? d->val[j] : ""); - } + iniparser_dumpsection_ini(d, secname, f); + } + fprintf(f, "\n"); + return ; +} + +/*-------------------------------------------------------------------------*/ +/** + @brief Save a dictionary section to a loadable ini file + @param d Dictionary to dump + @param s Section name of dictionary to dump + @param f Opened file pointer to dump to + @return void + + This function dumps a given section of a given dictionary into a loadable ini + file. It is Ok to specify @c stderr or @c stdout as output files. + */ +/*--------------------------------------------------------------------------*/ +void iniparser_dumpsection_ini(const dictionary * d, const char * s, FILE * f) +{ + int j ; + char keym[ASCIILINESZ+1]; + int seclen ; + + if (d==NULL || f==NULL) return ; + if (! iniparser_find_entry(d, s)) return ; + + seclen = (int)strlen(s); + fprintf(f, "\n[%s]\n", s); + sprintf(keym, "%s:", s); + for (j=0 ; jsize ; j++) { + if (d->key[j]==NULL) + continue ; + if (!strncmp(d->key[j], keym, seclen+1)) { + fprintf(f, + "%-30s = %s\n", + d->key[j]+seclen+1, + d->val[j] ? d->val[j] : ""); } } fprintf(f, "\n"); return ; } +/*-------------------------------------------------------------------------*/ +/** + @brief Get the number of keys in a section of a dictionary. + @param d Dictionary to examine + @param s Section name of dictionary to examine + @return Number of keys in section + */ +/*--------------------------------------------------------------------------*/ +int iniparser_getsecnkeys(const dictionary * d, const char * s) +{ + int seclen, nkeys ; + char keym[ASCIILINESZ+1]; + int j ; + + nkeys = 0; + + if (d==NULL) return nkeys; + if (! iniparser_find_entry(d, s)) return nkeys; + + seclen = (int)strlen(s); + strlwc(s, keym, sizeof(keym)); + keym[seclen] = ':'; + + for (j=0 ; jsize ; j++) { + if (d->key[j]==NULL) + continue ; + if (!strncmp(d->key[j], keym, seclen+1)) + nkeys++; + } + + return nkeys; + +} + +/*-------------------------------------------------------------------------*/ +/** + @brief Get the number of keys in a section of a dictionary. + @param d Dictionary to examine + @param s Section name of dictionary to examine + @param keys Already allocated array to store the keys in + @return The pointer passed as `keys` argument or NULL in case of error + + This function queries a dictionary and finds all keys in a given section. + The keys argument should be an array of pointers which size has been + determined by calling `iniparser_getsecnkeys` function prior to this one. + + Each pointer in the returned char pointer-to-pointer is pointing to + a string allocated in the dictionary; do not free or modify them. + */ +/*--------------------------------------------------------------------------*/ +const char ** iniparser_getseckeys(const dictionary * d, const char * s, const char ** keys) +{ + int i, j, seclen ; + char keym[ASCIILINESZ+1]; + + if (d==NULL || keys==NULL) return NULL; + if (! iniparser_find_entry(d, s)) return NULL; + + seclen = (int)strlen(s); + strlwc(s, keym, sizeof(keym)); + keym[seclen] = ':'; + + i = 0; + + for (j=0 ; jsize ; j++) { + if (d->key[j]==NULL) + continue ; + if (!strncmp(d->key[j], keym, seclen+1)) { + keys[i] = d->key[j]; + i++; + } + } + + return keys; +} + /*-------------------------------------------------------------------------*/ /** @brief Get the string associated to a key @@ -267,24 +410,27 @@ void iniparser_dump_ini(dictionary * d, FILE * f) the dictionary, do not free or modify it. */ /*--------------------------------------------------------------------------*/ -const char * iniparser_getstring(dictionary * d, const char * key, const char * def) +const char * iniparser_getstring(const dictionary * d, const char * key, const char * def) { - char * lc_key ; + const char * lc_key ; + const char * sval ; + char tmp_str[ASCIILINESZ+1]; if (d==NULL || key==NULL) return def ; - lc_key = strlwc(key); - return dictionary_get(d, lc_key, def); + lc_key = strlwc(key, tmp_str, sizeof(tmp_str)); + sval = dictionary_get(d, lc_key, def); + return sval ; } /*-------------------------------------------------------------------------*/ /** - @brief Get the string associated to a key, convert to an int + @brief Get the string associated to a key, convert to an long int @param d Dictionary to search @param key Key string to look for @param notfound Value to return in case of error - @return integer + @return long integer This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, @@ -305,13 +451,46 @@ const char * iniparser_getstring(dictionary * d, const char * key, const char * Credits: Thanks to A. Becker for suggesting strtol() */ /*--------------------------------------------------------------------------*/ -int iniparser_getint(dictionary * d, const char * key, int notfound) +long int iniparser_getlongint(const dictionary * d, const char * key, long int notfound) { - const char * str ; + const char * str ; str = iniparser_getstring(d, key, INI_INVALID_KEY); if (str==INI_INVALID_KEY) return notfound ; - return (int)strtol(str, NULL, 0); + return strtol(str, NULL, 0); +} + + +/*-------------------------------------------------------------------------*/ +/** + @brief Get the string associated to a key, convert to an int + @param d Dictionary to search + @param key Key string to look for + @param notfound Value to return in case of error + @return integer + + This function queries a dictionary for a key. A key as read from an + ini file is given as "section:key". If the key cannot be found, + the notfound value is returned. + + Supported values for integers include the usual C notation + so decimal, octal (starting with 0) and hexadecimal (starting with 0x) + are supported. Examples: + + "42" -> 42 + "042" -> 34 (octal -> decimal) + "0x42" -> 66 (hexa -> decimal) + + Warning: the conversion may overflow in various ways. Conversion is + totally outsourced to strtol(), see the associated man page for overflow + handling. + + Credits: Thanks to A. Becker for suggesting strtol() + */ +/*--------------------------------------------------------------------------*/ +int iniparser_getint(const dictionary * d, const char * key, int notfound) +{ + return (int)iniparser_getlongint(d, key, notfound); } /*-------------------------------------------------------------------------*/ @@ -327,9 +506,9 @@ int iniparser_getint(dictionary * d, const char * key, int notfound) the notfound value is returned. */ /*--------------------------------------------------------------------------*/ -double iniparser_getdouble(dictionary * d, const char * key, double notfound) +double iniparser_getdouble(const dictionary * d, const char * key, double notfound) { - const char * str ; + const char * str ; str = iniparser_getstring(d, key, INI_INVALID_KEY); if (str==INI_INVALID_KEY) return notfound ; @@ -368,10 +547,10 @@ double iniparser_getdouble(dictionary * d, const char * key, double notfound) necessarily have to be 0 or 1. */ /*--------------------------------------------------------------------------*/ -int iniparser_getboolean(dictionary * d, const char * key, int notfound) +int iniparser_getboolean(const dictionary * d, const char * key, int notfound) { - const char * c ; - int ret ; + int ret ; + const char * c ; c = iniparser_getstring(d, key, INI_INVALID_KEY); if (c==INI_INVALID_KEY) return notfound ; @@ -397,10 +576,7 @@ int iniparser_getboolean(dictionary * d, const char * key, int notfound) of querying for the presence of sections in a dictionary. */ /*--------------------------------------------------------------------------*/ -int iniparser_find_entry( - dictionary * ini, - const char * entry -) +int iniparser_find_entry(const dictionary * ini, const char * entry) { int found=0 ; if (iniparser_getstring(ini, entry, INI_INVALID_KEY)!=INI_INVALID_KEY) { @@ -418,13 +594,14 @@ int iniparser_find_entry( @return int 0 if Ok, -1 otherwise. If the given entry can be found in the dictionary, it is modified to - contain the provided value. If it cannot be found, -1 is returned. + contain the provided value. If it cannot be found, the entry is created. It is Ok to set val to NULL. */ /*--------------------------------------------------------------------------*/ int iniparser_set(dictionary * ini, const char * entry, const char * val) { - return dictionary_set(ini, strlwc(entry), val) ; + char tmp_str[ASCIILINESZ+1]; + return dictionary_set(ini, strlwc(entry, tmp_str, sizeof(tmp_str)), val) ; } /*-------------------------------------------------------------------------*/ @@ -439,12 +616,13 @@ int iniparser_set(dictionary * ini, const char * entry, const char * val) /*--------------------------------------------------------------------------*/ void iniparser_unset(dictionary * ini, const char * entry) { - dictionary_unset(ini, strlwc(entry)); + char tmp_str[ASCIILINESZ+1]; + dictionary_unset(ini, strlwc(entry, tmp_str, sizeof(tmp_str))); } /*-------------------------------------------------------------------------*/ /** - @brief Load a single line from an INI file + @brief Load a single line from an INI file @param input_line Input line, may be concatenated multi-line input @param section Output space to store section @param key Output space to store key @@ -457,34 +635,39 @@ static line_status iniparser_line( char * section, char * key, char * value) -{ +{ line_status sta ; - char line[ASCIILINESZ+1]; - int len ; + char * line = NULL; + size_t len ; - strcpy(line, strstrip(input_line)); - len = (int)strlen(line); + line = xstrdup(input_line); + len = strstrip(line); sta = LINE_UNPROCESSED ; if (len<1) { /* Empty line */ sta = LINE_EMPTY ; - } else if (line[0]=='#') { + } else if (line[0]=='#' || line[0]==';') { /* Comment line */ - sta = LINE_COMMENT ; + sta = LINE_COMMENT ; } else if (line[0]=='[' && line[len-1]==']') { /* Section name */ sscanf(line, "[%[^]]", section); - strcpy(section, strstrip(section)); - strcpy(section, strlwc(section)); + strstrip(section); + strlwc(section, section, len); sta = LINE_SECTION ; } else if (sscanf (line, "%[^=] = \"%[^\"]\"", key, value) == 2 - || sscanf (line, "%[^=] = '%[^\']'", key, value) == 2 - || sscanf (line, "%[^=] = %[^;#]", key, value) == 2) { - /* Usual key=value, with or without comments */ - strcpy(key, strstrip(key)); - strcpy(key, strlwc(key)); - strcpy(value, strstrip(value)); + || sscanf (line, "%[^=] = '%[^\']'", key, value) == 2) { + /* Usual key=value with quotes, with or without comments */ + strstrip(key); + strlwc(key, key, len); + /* Don't strip spaces from values surrounded with quotes */ + sta = LINE_VALUE ; + } else if (sscanf (line, "%[^=] = %[^;#]", key, value) == 2) { + /* Usual key=value without quotes, with or without comments */ + strstrip(key); + strlwc(key, key, len); + strstrip(value); /* * sscanf cannot handle '' or "" as empty values * this is done here @@ -501,14 +684,16 @@ static line_status iniparser_line( * key=; * key=# */ - strcpy(key, strstrip(key)); - strcpy(key, strlwc(key)); + strstrip(key); + strlwc(key, key, len); value[0]=0 ; sta = LINE_VALUE ; } else { /* Generate syntax error */ sta = LINE_ERROR ; } + + free(line); return sta ; } @@ -528,44 +713,33 @@ static line_status iniparser_line( /*--------------------------------------------------------------------------*/ dictionary * iniparser_load(const char * ininame) { - char *buf; FILE * in ; - char *line; - char *section; - char *key; - char *tmp; - char *val; + char line [ASCIILINESZ+1] ; + char section [ASCIILINESZ+1] ; + char key [ASCIILINESZ+1] ; + char tmp [(ASCIILINESZ * 2) + 2] ; + char val [ASCIILINESZ+1] ; int last=0 ; int len ; int lineno=0 ; int errs=0; - int ret; + int mem_err=0; dictionary * dict ; - if ((in=fopen(ininame, "r"))==NULL) + if ((in=fopen(ininame, "r"))==NULL) { + iniparser_error_callback("iniparser: cannot open %s\n", ininame); return NULL ; + } dict = dictionary_new(0) ; if (!dict) { fclose(in); - errno = ENOMEM; return NULL ; } - buf = malloc((ASCIILINESZ+1) * 5); - if (buf == NULL) { - errno = -ENOMEM; - return NULL; - } - line = buf; - section = line + ASCIILINESZ + 1; - key = section + ASCIILINESZ + 1; - tmp = key + ASCIILINESZ + 1; - val = tmp + ASCIILINESZ + 1; - memset(line, 0, ASCIILINESZ); memset(section, 0, ASCIILINESZ); memset(key, 0, ASCIILINESZ); @@ -575,18 +749,16 @@ dictionary * iniparser_load(const char * ininame) while (fgets(line+last, ASCIILINESZ-last, in)!=NULL) { lineno++ ; len = (int)strlen(line)-1; + if (len<=0) + continue; /* Safety check against buffer overflows */ - if (last > 0 && line[len]!='\n') { -#if 0 - warning(anon_scope, - "iniparser: input line too long in %s (%d)\n", - ininame, - lineno); -#endif + if (line[len]!='\n' && !feof(in)) { + iniparser_error_callback( + "iniparser: input line too long in %s (%d)\n", + ininame, + lineno); dictionary_del(dict); fclose(in); - free(buf); - errno = EINVAL; return NULL ; } /* Get rid of \n and spaces at end of line */ @@ -595,8 +767,11 @@ dictionary * iniparser_load(const char * ininame) line[len]=0 ; len-- ; } + if (len < 0) { /* Line was entirely \n and/or spaces */ + len = 0; + } /* Detect multi-line */ - if (len >= 0 && line[len]=='\\') { + if (line[len]=='\\') { /* Multi-line value */ last=len ; continue ; @@ -609,24 +784,20 @@ dictionary * iniparser_load(const char * ininame) break ; case LINE_SECTION: - errs = dictionary_set(dict, section, NULL); + mem_err = dictionary_set(dict, section, NULL); break ; case LINE_VALUE: sprintf(tmp, "%s:%s", section, key); - errs = dictionary_set(dict, tmp, val) ; + mem_err = dictionary_set(dict, tmp, val); break ; - case LINE_ERROR: -#if 0 - printf("iniparser: syntax error in %s (%d):\n", - ininame, - lineno); - printf( "-> %s\n", line); - -#endif - - ret = EINVAL; + case LINE_ERROR: + iniparser_error_callback( + "iniparser: syntax error in %s (%d):\n-> %s\n", + ininame, + lineno, + line); errs++ ; break; @@ -635,18 +806,16 @@ dictionary * iniparser_load(const char * ininame) } memset(line, 0, ASCIILINESZ); last=0; - if (errs<0) { - ret = ENOMEM; + if (mem_err<0) { + iniparser_error_callback("iniparser: memory allocation failure\n"); break ; } } - fclose(in); - free(buf); if (errs) { dictionary_del(dict); dict = NULL ; - errno = ret; } + fclose(in); return dict ; } @@ -665,5 +834,3 @@ void iniparser_freedict(dictionary * d) { dictionary_del(d); } - -/* vim: set ts=4 et sw=4 tw=75 */ diff --git a/lib/boilerplate/iniparser/iniparser.h b/lib/boilerplate/iniparser/iniparser.h index d454cef34..37ff7b71b 100644 --- a/lib/boilerplate/iniparser/iniparser.h +++ b/lib/boilerplate/iniparser/iniparser.h @@ -3,22 +3,15 @@ /** @file iniparser.h @author N. Devillard - @date Sep 2007 - @version 3.0 @brief Parser for ini files. */ /*--------------------------------------------------------------------------*/ -/* - $Id: iniparser.h,v 1.24 2007-11-23 21:38:19 ndevilla Exp $ - $Revision: 1.24 $ -*/ - #ifndef _INIPARSER_H_ #define _INIPARSER_H_ /*--------------------------------------------------------------------------- - Includes + Includes ---------------------------------------------------------------------------*/ #include @@ -34,12 +27,21 @@ #include "dictionary.h" -/*--------------------------------------------------------------------------- - Macros - ---------------------------------------------------------------------------*/ -/** For backwards compatibility only */ -#define iniparser_getstr(d, k) iniparser_getstring(d, k, NULL) -#define iniparser_setstr iniparser_setstring +#ifdef __cplusplus +extern "C" { +#endif + +/*-------------------------------------------------------------------------*/ +/** + @brief Configure a function to receive the error messages. + @param errback Function to call. + + By default, the error will be printed on stderr. If a null pointer is passed + as errback the error callback will be switched back to default. + */ +/*--------------------------------------------------------------------------*/ + +void iniparser_set_error_callback(int (*errback)(const char *, ...)); /*-------------------------------------------------------------------------*/ /** @@ -60,7 +62,7 @@ */ /*--------------------------------------------------------------------------*/ -int iniparser_getnsec(dictionary * d); +int iniparser_getnsec(const dictionary * d); /*-------------------------------------------------------------------------*/ @@ -78,7 +80,7 @@ int iniparser_getnsec(dictionary * d); */ /*--------------------------------------------------------------------------*/ -const char * iniparser_getsecname(dictionary * d, int n); +const char * iniparser_getsecname(const dictionary * d, int n); /*-------------------------------------------------------------------------*/ @@ -93,7 +95,22 @@ const char * iniparser_getsecname(dictionary * d, int n); */ /*--------------------------------------------------------------------------*/ -void iniparser_dump_ini(dictionary * d, FILE * f); +void iniparser_dump_ini(const dictionary * d, FILE * f); + +/*-------------------------------------------------------------------------*/ +/** + @brief Save a dictionary section to a loadable ini file + @param d Dictionary to dump + @param s Section name of dictionary to dump + @param f Opened file pointer to dump to + @return void + + This function dumps a given section of a given dictionary into a loadable ini + file. It is Ok to specify @c stderr or @c stdout as output files. + */ +/*--------------------------------------------------------------------------*/ + +void iniparser_dumpsection_ini(const dictionary * d, const char * s, FILE * f); /*-------------------------------------------------------------------------*/ /** @@ -108,7 +125,36 @@ void iniparser_dump_ini(dictionary * d, FILE * f); purposes mostly. */ /*--------------------------------------------------------------------------*/ -void iniparser_dump(dictionary * d, FILE * f); +void iniparser_dump(const dictionary * d, FILE * f); + +/*-------------------------------------------------------------------------*/ +/** + @brief Get the number of keys in a section of a dictionary. + @param d Dictionary to examine + @param s Section name of dictionary to examine + @return Number of keys in section + */ +/*--------------------------------------------------------------------------*/ +int iniparser_getsecnkeys(const dictionary * d, const char * s); + +/*-------------------------------------------------------------------------*/ +/** + @brief Get the number of keys in a section of a dictionary. + @param d Dictionary to examine + @param s Section name of dictionary to examine + @param keys Already allocated array to store the keys in + @return The pointer passed as `keys` argument or NULL in case of error + + This function queries a dictionary and finds all keys in a given section. + The keys argument should be an array of pointers which size has been + determined by calling `iniparser_getsecnkeys` function prior to this one. + + Each pointer in the returned char pointer-to-pointer is pointing to + a string allocated in the dictionary; do not free or modify them. + */ +/*--------------------------------------------------------------------------*/ +const char ** iniparser_getseckeys(const dictionary * d, const char * s, const char ** keys); + /*-------------------------------------------------------------------------*/ /** @@ -125,7 +171,7 @@ void iniparser_dump(dictionary * d, FILE * f); the dictionary, do not free or modify it. */ /*--------------------------------------------------------------------------*/ -const char * iniparser_getstring(dictionary * d, const char * key, const char * def); +const char * iniparser_getstring(const dictionary * d, const char * key, const char * def); /*-------------------------------------------------------------------------*/ /** @@ -154,7 +200,35 @@ const char * iniparser_getstring(dictionary * d, const char * key, const char * Credits: Thanks to A. Becker for suggesting strtol() */ /*--------------------------------------------------------------------------*/ -int iniparser_getint(dictionary * d, const char * key, int notfound); +int iniparser_getint(const dictionary * d, const char * key, int notfound); + +/*-------------------------------------------------------------------------*/ +/** + @brief Get the string associated to a key, convert to an long int + @param d Dictionary to search + @param key Key string to look for + @param notfound Value to return in case of error + @return integer + + This function queries a dictionary for a key. A key as read from an + ini file is given as "section:key". If the key cannot be found, + the notfound value is returned. + + Supported values for integers include the usual C notation + so decimal, octal (starting with 0) and hexadecimal (starting with 0x) + are supported. Examples: + + - "42" -> 42 + - "042" -> 34 (octal -> decimal) + - "0x42" -> 66 (hexa -> decimal) + + Warning: the conversion may overflow in various ways. Conversion is + totally outsourced to strtol(), see the associated man page for overflow + handling. + */ +/*--------------------------------------------------------------------------*/ +long int iniparser_getlongint(const dictionary * d, const char * key, long int notfound); + /*-------------------------------------------------------------------------*/ /** @@ -169,7 +243,7 @@ int iniparser_getint(dictionary * d, const char * key, int notfound); the notfound value is returned. */ /*--------------------------------------------------------------------------*/ -double iniparser_getdouble(dictionary * d, const char * key, double notfound); +double iniparser_getdouble(const dictionary * d, const char * key, double notfound); /*-------------------------------------------------------------------------*/ /** @@ -203,7 +277,7 @@ double iniparser_getdouble(dictionary * d, const char * key, double notfound); necessarily have to be 0 or 1. */ /*--------------------------------------------------------------------------*/ -int iniparser_getboolean(dictionary * d, const char * key, int notfound); +int iniparser_getboolean(const dictionary * d, const char * key, int notfound); /*-------------------------------------------------------------------------*/ @@ -212,17 +286,16 @@ int iniparser_getboolean(dictionary * d, const char * key, int notfound); @param ini Dictionary to modify. @param entry Entry to modify (entry name) @param val New value to associate to the entry. - @return int 0 if Ok, -1 otherwise. + @return int 0 if Ok, -1 otherwise. If the given entry can be found in the dictionary, it is modified to - contain the provided value. If it cannot be found, -1 is returned. + contain the provided value. If it cannot be found, the entry is created. It is Ok to set val to NULL. */ /*--------------------------------------------------------------------------*/ -int iniparser_setstring(dictionary * ini, const char * entry, const char * val); - int iniparser_set(dictionary * ini, const char * entry, const char * val); + /*-------------------------------------------------------------------------*/ /** @brief Delete an entry in a dictionary @@ -247,7 +320,7 @@ void iniparser_unset(dictionary * ini, const char * entry); of querying for the presence of sections in a dictionary. */ /*--------------------------------------------------------------------------*/ -int iniparser_find_entry(dictionary * ini, const char * entry) ; +int iniparser_find_entry(const dictionary * ini, const char * entry) ; /*-------------------------------------------------------------------------*/ /** @@ -278,4 +351,8 @@ dictionary * iniparser_load(const char * ininame); /*--------------------------------------------------------------------------*/ void iniparser_freedict(dictionary * d); +#ifdef __cplusplus +} +#endif + #endif -- GitLab ================================================ FILE: package/xenomai/3.0.10/0002-Add-disable-demo-testsuite-options.patch ================================================ From 702697cafcec735e55f075594a2990204c8ea17d Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 10 Aug 2021 18:01:48 +0200 Subject: [PATCH] Add --disable-{demo,testsuite} options MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allow the user to disable demo and testsuite to avoid the following build failures on arc and riscv32: latency.c: In function 'display': latency.c:326:21: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'time_t' {aka 'long long int'} [-Werror=format=] 326 | ("RTT| %.2ld:%.2ld:%.2ld (%s, %Ld us period, " | ~~~~^ | | | long int | %.2lld 327 | "priority %d)\n", dt / 3600, | ~~~~~~~~~ | | | time_t {aka long long int} altency.c: In function ‘display’: altency.c:262:21: error: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘time_t’ {aka ‘long long int’} [-Werror=format=] 262 | ("RTT| %.2ld:%.2ld:%.2ld (%s, %Ld us period, " | ~~~~^ | | | long int | %.2lld 263 | "priority %d)\n", dt / 3600, | ~~~~~~~~~ | | | time_t {aka long long int} Fixes: - http://autobuild.buildroot.org/results/448efe22e8fe058a1b354a3c124874e30b9ce138 Signed-off-by: Fabrice Fontaine --- Makefile.am | 12 ++++++++++-- configure.ac | 12 ++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 891e53f66..604644277 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,9 +6,17 @@ SUBDIRS = \ config \ include \ scripts \ - testsuite \ - utils \ + utils + +if XENO_ENABLE_DEMO +SUBDIRS += \ demo +endif + +if XENO_ENABLE_TESTSUITE +SUBDIRS += \ + testsuite +endif EXTRA_DIST = kernel debian diff --git a/configure.ac b/configure.ac index bd5fd5ba9..29dfd16e5 100644 --- a/configure.ac +++ b/configure.ac @@ -200,6 +200,18 @@ test \! x$debug_mode = x && AC_DEFINE(CONFIG_XENO_DEBUG,1,[config]) AM_CONDITIONAL(XENO_DEBUG_FULL,[test x$debug_mode = xfull]) test x$debug_mode = xfull && AC_DEFINE(CONFIG_XENO_DEBUG_FULL,1,[config]) +dnl Demo (default: on) + +AC_ARG_ENABLE(demo, + AS_HELP_STRING([--disable-demo], [Disable demo])) +AM_CONDITIONAL(XENO_ENABLE_DEMO,[test x$enable_demo != xno]) + +dnl Testsuite (default: on) + +AC_ARG_ENABLE(testsuite, + AS_HELP_STRING([--disable-testsuite], [Disable testsuite])) +AM_CONDITIONAL(XENO_ENABLE_TESTSUITE,[test x$enable_testsuite != xno]) + dnl Low resolution clock (default: off) unset lores_clock -- 2.30.2 ================================================ FILE: package/xenomai/Config.in ================================================ config BR2_PACKAGE_XENOMAI_COBALT_ARCH_SUPPORTS bool default y if BR2_i386 default y if BR2_x86_64 default y if BR2_powerpc default y if BR2_arm && !BR2_ARM_CPU_ARMV7M && !BR2_ARM_CPU_ARMV8A comment "xenomai needs a glibc or uClibc toolchain w/ threads" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_MUSL config BR2_PACKAGE_XENOMAI bool "Xenomai Userspace" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_TOOLCHAIN_HAS_THREADS # uses , __WORDSIZE and bits/local_lim.h depends on !BR2_TOOLCHAIN_USES_MUSL help Real-Time Framework for Linux http://www.xenomai.org Xenomai is split in two parts: a kernel part and an userspace part. This package contains the userspace part, which consists mainly in libraries to write userspace real-time programs that interact with the in-kernel Xenomai real-time core. For those libraries to work, you need a Xenomai-enabled kernel. This is possible in two ways: - if you compile your kernel with Buildroot, you need to go to Linux Kernel -> Linux Kernel Extensions to enable the Xenomai extension. - if you compile your kernel outside of Buildroot, you need to make sure that it is Xenomai-enabled. Finally, if you are using a static /dev, make sure to uncomment the Xenomai entries listed in target/generic/device_table_dev.txt. if BR2_PACKAGE_XENOMAI choice bool "Xenomai version" help Make sure that the selected version has a patch for your selected Linux kernel. If it does not, download and select a patch manually with BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH, in the Linux Kernel -> Linux Kernel Extensions menu. config BR2_PACKAGE_XENOMAI_LATEST_VERSION bool "Latest version (3.0.10)" config BR2_PACKAGE_XENOMAI_CUSTOM_VERSION bool "Custom version" config BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL bool "Custom tarball" config BR2_PACKAGE_XENOMAI_CUSTOM_GIT bool "Custom Git repository" endchoice config BR2_PACKAGE_XENOMAI_REPOSITORY string "URL of custom repository" default "https://gitlab.denx.de/Xenomai/xenomai.git" depends on BR2_PACKAGE_XENOMAI_CUSTOM_GIT config BR2_PACKAGE_XENOMAI_VERSION string "Custom Xenomai version" if \ !BR2_PACKAGE_XENOMAI_LATEST_VERSION && \ !BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL default "3.0.10" if BR2_PACKAGE_XENOMAI_LATEST_VERSION default "custom" if BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL config BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL_URL string "URL of custom tarball" depends on BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL choice prompt "Xenomai core" default BR2_PACKAGE_XENOMAI_MERCURY help Select the Xenomai core: dual kernel (Cobalt) or native Linux Kernel (Mercury). config BR2_PACKAGE_XENOMAI_MERCURY bool "Mercury" depends on !BR2_LINUX_KERNEL_EXT_XENOMAI help Select Mercury core for the Xenomai userspace. You want to use it if you have the native Linux Kernel. config BR2_PACKAGE_XENOMAI_COBALT bool "Cobalt" depends on BR2_PACKAGE_XENOMAI_COBALT_ARCH_SUPPORTS help Select Cobalt core (dual kernel) for the Xenomai userspace. Use this if you use a Xenomai-patched Linux kernel. If you want to use Cobalt core, your kernel must have the Adeos and Xenomai patches applied to it. You can add these through the BR2_LINUX_KERNEL_EXT_XENOMAI option in the Linux Kernel Extensions menu. endchoice config BR2_PACKAGE_XENOMAI_ENABLE_SMP bool "Enable SMP support" default y # SMP not supported below armv6 depends on !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 help This option enables SMP support in Xenomai userspace. If this option is turned on while no SMP support is enabled in the kernel, things will still work. However, if SMP is enabled in the kernel but this option is not turned on, Xenomai applications will complain with: feature mismatch: missing="smp/nosmp" Please refer to this troubleshooting guide for more information: http://xenomai.org/troubleshooting-a-dual-kernel-configuration/#feature_mismatch_missing8221smpnosmp8221 config BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY bool "Enable registry" depends on !BR2_STATIC_LIBS # libfuse depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse depends on BR2_USE_MMU # libfuse select BR2_PACKAGE_LIBFUSE help Xenomai APIs can export their internal state through a pseudo-filesystem, whose files may be read to obtain information about the existing real-time objects, such as tasks, semaphores, message queues and so on. comment "registry needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY_PATH string "Custom registry root path" depends on BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY help Specify the root path of the registry here. To use the Xenomai default (currently: /var/run/xenomai), leave this option empty. config BR2_PACKAGE_XENOMAI_ADDITIONAL_CONF_OPTS string "Additional configure options" help Specify any additional options to pass to the configure script here. See Xenomai documentation for details. config BR2_PACKAGE_XENOMAI_TESTSUITE bool "Install testsuite" help This option allows to install the Xenomai test programs. config BR2_PACKAGE_XENOMAI_RTCAN bool "RTCan utilities" help This option allows to install the Xenomai RT-CAN utilities. config BR2_PACKAGE_XENOMAI_ANALOGY bool "Analogy libs and utils" help This option allows to install the Xenomai Analogy utilities and libraries menu "Skin selection" config BR2_PACKAGE_XENOMAI_NATIVE_SKIN bool "Alchemy (native) skin" default y help This option allows to install the Alchemy Xenomai skin, previously called 'native' config BR2_PACKAGE_XENOMAI_POSIX_SKIN bool "POSIX skin" default y help This option allows to install the POSIX Xenomai skin config BR2_PACKAGE_XENOMAI_PSOS_SKIN bool "pSOS skin" help This option allows to install the pSOS Xenomai skin config BR2_PACKAGE_XENOMAI_RTAI_SKIN bool "RTAI skin" help This option allows to install the RTAI Xenomai skin config BR2_PACKAGE_XENOMAI_UITRON_SKIN bool "uITRON skin" help This option allows to install the uITRON Xenomai skin config BR2_PACKAGE_XENOMAI_VRTX_SKIN bool "VRTX skin" help This option allows to install the VRTX Xenomai skin config BR2_PACKAGE_XENOMAI_VXWORKS_SKIN bool "VxWorks skin" help This option allows to install the VxWorks Xenomai skin endmenu endif ================================================ FILE: package/xenomai/xenomai.hash ================================================ # Locally computed; sha256 080f893d6ab8e3065285fbb482695477a0502b9490dccd1f744cebaac94691e5 xenomai-3.0.10.tar.bz2 sha256 d37ebe86bf618942dad958927c44403f9b02fbebb3071a4a08408ccbdab5290f debian/copyright sha256 f3380321da72ff509bf6939aa80e6d02fd22268f5c705137b34c205b39bc63a0 include/COPYING sha256 d6b6d8ed1b12309085caf1cf775ea4acdad3288c7f7d993c2502bd19c87e4764 kernel/cobalt/COPYING sha256 d6b6d8ed1b12309085caf1cf775ea4acdad3288c7f7d993c2502bd19c87e4764 kernel/cobalt/posix/COPYING sha256 9c90501baa30534ffed6b39eef413bd1727170ef691fd9768dc8644c3042df54 kernel/cobalt/rtdm/COPYING sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/alchemy/COPYING sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/analogy/COPYING sha256 0519083691511d71408f8c9a2794fa2f6ad13a5eec00717f4572b54d18d6f9da lib/boilerplate/iniparser/LICENSE sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/boilerplate/COPYING sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/cobalt/COPYING sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/copperplate/COPYING sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/psos/COPYING sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/smokey/COPYING sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/trank/COPYING sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/vxworks/COPYING ================================================ FILE: package/xenomai/xenomai.mk ================================================ ################################################################################ # # xenomai # ################################################################################ XENOMAI_VERSION = $(call qstrip,$(BR2_PACKAGE_XENOMAI_VERSION)) ifeq ($(BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL),y) XENOMAI_TARBALL = $(call qstrip,$(BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL_URL)) XENOMAI_SOURCE = $(notdir $(XENOMAI_TARBALL)) XENOMAI_SITE = $(patsubst %/,%,$(dir $(XENOMAI_TARBALL))) else ifeq ($(BR2_PACKAGE_XENOMAI_CUSTOM_GIT),y) XENOMAI_SITE = $(call qstrip,$(BR2_PACKAGE_XENOMAI_REPOSITORY)) XENOMAI_SITE_METHOD = git else XENOMAI_SOURCE = xenomai-$(XENOMAI_VERSION).tar.bz2 XENOMAI_SITE = http://xenomai.org/downloads/xenomai/stable endif # We're patching configure.ac XENOMAI_AUTORECONF = YES # Exclude all from the hash check, but the latest version. ifeq ($(BR2_PACKAGE_XENOMAI)$(BR2_PACKAGE_XENOMAI_LATEST_VERSION),y) BR_NO_CHECK_HASH_FOR += $(XENOMAI_SOURCE) endif XENOMAI_LICENSE = GPL-2.0+ with exception (headers), LGPL-2.1+ (libraries), GPL-2.0+ (kernel), GFDL-1.2+ (docs), GPL-2.0 (ipipe patch, can driver) # GFDL is not included but refers to gnu.org XENOMAI_LICENSE_FILES = debian/copyright include/COPYING kernel/cobalt/COPYING \ kernel/cobalt/posix/COPYING kernel/cobalt/rtdm/COPYING \ lib/alchemy/COPYING lib/analogy/COPYING \ lib/boilerplate/iniparser/LICENSE lib/boilerplate/COPYING \ lib/cobalt/COPYING lib/copperplate/COPYING lib/psos/COPYING \ lib/smokey/COPYING lib/trank/COPYING lib/vxworks/COPYING XENOMAI_DEPENDENCIES = host-pkgconf XENOMAI_INSTALL_STAGING = YES XENOMAI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-user XENOMAI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-user XENOMAI_CONF_OPTS += \ --disable-demo \ --disable-testsuite \ --includedir=/usr/include/xenomai/ ifeq ($(BR2_PACKAGE_XENOMAI_MERCURY),y) XENOMAI_CONF_OPTS += --with-core=mercury else XENOMAI_CONF_OPTS += --with-core=cobalt endif ifeq ($(BR2_PACKAGE_XENOMAI_ENABLE_SMP),y) XENOMAI_CONF_OPTS += --enable-smp else XENOMAI_CONF_OPTS += --disable-smp endif ifeq ($(BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY),y) XENOMAI_DEPENDENCIES += libfuse XENOMAI_REGISTRY_PATH = $(call qstrip,$(BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY_PATH)) ifeq ($(XENOMAI_REGISTRY_PATH),) XENOMAI_CONF_OPTS += --enable-registry else XENOMAI_CONF_OPTS += --enable-registry=$(XENOMAI_REGISTRY_PATH) endif else XENOMAI_CONF_OPTS += --disable-registry endif XENOMAI_CONF_OPTS += $(call qstrip,$(BR2_PACKAGE_XENOMAI_ADDITIONAL_CONF_OPTS)) # Some of these files may be desired by some users -- at that point specific # config options need to be added to keep a particular set. define XENOMAI_REMOVE_UNNEEDED_FILES for i in xeno xeno-config xeno-info wrap-link.sh ; do \ rm -f $(TARGET_DIR)/usr/bin/$$i ; \ done for i in cobalt modechk ; do \ rm -f $(TARGET_DIR)/usr/lib/$$i.wrappers ; \ done for i in autotune corectl hdb rtnet nomaccfg rtcfg rtifconfig \ rtiwconfig rtping rtroute tdmacfg rtps slackspot version; do \ rm -f $(TARGET_DIR)/usr/sbin/$$i ; \ done endef XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_UNNEEDED_FILES ifeq ($(BR2_PACKAGE_XENOMAI_TESTSUITE),) define XENOMAI_REMOVE_TESTSUITE rm -rf $(TARGET_DIR)/usr/share/xenomai/ for i in clocktest gpiotest latency smokey spitest switchtest \ xeno-test-run-wrapper dohell xeno-test-run xeno-test ; do \ rm -f $(TARGET_DIR)/usr/bin/$$i ; \ done rm -rf $(TARGET_DIR)/usr/demo/ endef XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_TESTSUITE endif ifeq ($(BR2_PACKAGE_XENOMAI_RTCAN),) define XENOMAI_REMOVE_RTCAN_PROGS for i in rtcanrecv rtcansend ; do \ rm -f $(TARGET_DIR)/usr/bin/$$i ; \ done rm -f $(TARGET_DIR)/usr/sbin/rtcanconfig endef XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_RTCAN_PROGS endif ifeq ($(BR2_PACKAGE_XENOMAI_ANALOGY),) define XENOMAI_REMOVE_ANALOGY for i in cmd_read cmd_write cmd_bits insn_read insn_write insn_bits \ wf_generate ; do \ rm -f $(TARGET_DIR)/usr/bin/$$i ; \ done for i in analogy_config analogy_calibrate ; do \ rm -f $(TARGET_DIR)/usr/sbin/$$i ; \ done rm -f $(TARGET_DIR)/usr/lib/libanalogy.* endef XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_ANALOGY endif XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_NATIVE_SKIN),,alchemy) XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_POSIX_SKIN),,posix) XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_PSOS_SKIN),,psos) XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_RTAI_SKIN),,rtai) XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_TESTSUITE),,smokey) XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_UITRON_SKIN),,uitron) XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_VXWORKS_SKIN),,vxworks) XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_VRTX_SKIN),,vrtx) define XENOMAI_REMOVE_LIBS for i in $(XENOMAI_REMOVE_LIBS_LIST) ; do \ rm -f $(TARGET_DIR)/usr/lib/lib$$i.* ; \ done endef XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_LIBS define XENOMAI_DEVICES /dev/rtheap c 666 0 0 10 254 0 0 - /dev/rtscope c 666 0 0 10 253 0 0 - /dev/rtp c 666 0 0 150 0 0 1 32 endef ifeq ($(BR2_PACKAGE_HAS_UDEV),y) XENOMAI_DEPENDENCIES += udev define XENOMAI_INSTALL_UDEV_RULES if test -d $(TARGET_DIR)/etc/udev/rules.d ; then \ for f in $(@D)/kernel/cobalt/udev/*.rules ; do \ cp $$f $(TARGET_DIR)/etc/udev/rules.d/ || exit 1 ; \ done ; \ fi; endef XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_INSTALL_UDEV_RULES endif # udev $(eval $(autotools-package)) ================================================ FILE: package/xerces/0001-fix-static-linking-with-curl.patch ================================================ From 26e3f1440bbc75c704fc93ff43a2abbfbe4c0203 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 11 Oct 2018 22:56:50 +0200 Subject: [PATCH] fix static linking with curl When curl is statically built with openssl support, xerces needs to link with openssl libraries so use pkg_check_modules to get any needed dependencies Fixes: - http://autobuild.buildroot.org/results/29ca90fff2c8e38f2edf7240eca3aa3fe7397c45 Signed-off-by: Fabrice Fontaine --- cmake/XercesNetAccessorSelection.cmake | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cmake/XercesNetAccessorSelection.cmake b/cmake/XercesNetAccessorSelection.cmake index 7a63f1f6b..e90fcf034 100644 --- a/cmake/XercesNetAccessorSelection.cmake +++ b/cmake/XercesNetAccessorSelection.cmake @@ -31,7 +31,13 @@ if(network) # Requires select() which is UNIX only if(UNIX) - find_package(CURL) + find_package(PkgConfig) + if (PkgConfig_FOUND) + pkg_check_modules(CURL libcurl) + if (NOT CURL_FOUND) + find_package(CURL) + endif() + endif() if(CURL_FOUND) list(APPEND netaccessors curl) endif() -- 2.17.1 ================================================ FILE: package/xerces/0002-InMemMsgLoader-loadMsg-fix-memory-leak-when-transcod.patch ================================================ From 1bdf6d8ba878c1fe1d779824be70001fc0bebd2c Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 27 Aug 2021 01:33:27 +0200 Subject: [PATCH] InMemMsgLoader::loadMsg(): fix memory leak when transcoding fails. Seen with the IconvGNU transcoder when parsing " --- .../MsgLoaders/InMemory/InMemMsgLoader.cpp | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp b/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp index cda103226..6971fde96 100644 --- a/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp +++ b/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp @@ -25,6 +25,7 @@ // --------------------------------------------------------------------------- #include #include +#include #include #include #include @@ -153,14 +154,28 @@ bool InMemMsgLoader::loadMsg(const XMLMsgLoader::XMLMsgId msgToLoad XMLCh* tmp4 = 0; bool bRet = false; - if (repText1) - tmp1 = XMLString::transcode(repText1, manager); - if (repText2) - tmp2 = XMLString::transcode(repText2, manager); - if (repText3) - tmp3 = XMLString::transcode(repText3, manager); - if (repText4) - tmp4 = XMLString::transcode(repText4, manager); + try + { + if (repText1) + tmp1 = XMLString::transcode(repText1, manager); + if (repText2) + tmp2 = XMLString::transcode(repText2, manager); + if (repText3) + tmp3 = XMLString::transcode(repText3, manager); + if (repText4) + tmp4 = XMLString::transcode(repText4, manager); + } + catch( const TranscodingException& ) + { + if (tmp1) + manager->deallocate(tmp1); + if (tmp2) + manager->deallocate(tmp2); + if (tmp3) + manager->deallocate(tmp3); + // Note: tmp4 cannot leak + throw; + } bRet = loadMsg(msgToLoad, toFill, maxChars, tmp1, tmp2, tmp3, tmp4, manager); -- 2.17.1 ================================================ FILE: package/xerces/Config.in ================================================ config BR2_PACKAGE_XERCES bool "xerces-c++" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR help Xerces-C++ is a validating XML parser written in portable C++. http://xerces.apache.org/xerces-c/ if BR2_PACKAGE_XERCES config BR2_PACKAGE_XERCES_ENABLE_NETWORK bool "Enable network support" default y help Enable network support in xerces endif comment "xerces-c++ needs a toolchain w/ C++, dynamic library, wchar" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ !BR2_USE_WCHAR ================================================ FILE: package/xerces/xerces.hash ================================================ # From http://www.apache.org/dist/xerces/c/3/sources/xerces-c-3.2.3.tar.xz.sha256 sha256 12fc99a9fc1d1a79bd0e927b8b5637a576d6656f45b0d5e70ee3694d379cc149 xerces-c-3.2.3.tar.xz # Hash for license file sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/xerces/xerces.mk ================================================ ################################################################################ # # xerces # ################################################################################ XERCES_VERSION = 3.2.3 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_CPE_ID_VENDOR = apache XERCES_CPE_ID_PRODUCT = xerces-c\+\+ XERCES_INSTALL_STAGING = YES define XERCES_DISABLE_SAMPLES $(SED) 's/add_subdirectory(samples)//' $(@D)/CMakeLists.txt endef XERCES_POST_PATCH_HOOKS += XERCES_DISABLE_SAMPLES ifeq ($(BR2_PACKAGE_ICU),y) XERCES_DEPENDENCIES += icu endif ifeq ($(BR2_PACKAGE_LIBICONV),y) XERCES_CONF_ENV += LIBS=-liconv XERCES_DEPENDENCIES += libiconv endif ifeq ($(BR2_PACKAGE_XERCES_ENABLE_NETWORK),y) ifeq ($(BR2_PACKAGE_LIBCURL),y) XERCES_CONF_OPTS += -Dnetwork-accessor=curl XERCES_DEPENDENCIES += libcurl else XERCES_CONF_OPTS += -Dnetwork-accessor=socket endif else XERCES_CONF_OPTS += -Dnetwork=OFF endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) XERCES_CONF_OPTS += -Dthreads=ON else XERCES_CONF_OPTS += -Dthreads=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/xfsprogs/0001-mdrestore-do-not-do-dynamic-linking-of-libtool-libra.patch ================================================ From d5cbb4f43cc9c30100fbf18a3e0d1fb95e1c1b0a Mon Sep 17 00:00:00 2001 From: Vicente Olivert Riera Date: Wed, 25 Nov 2015 10:50:00 +0000 Subject: [PATCH] mdrestore, scrub: do not do dynamic linking of libtool libraries As explained in commit ece49daeff1a3cad765e106d678c608925c9d768, use -static-libtool-libs instead of -static to allow fallback to the dynamic linking for libuuid only. Otherwise the build will fail like this: ld: attempted static link of dynamic object `/usr/lib/libuuid.so' Signed-off-by: Vicente Olivert Riera [Sent upstream: https://www.spinics.net/lists/xfs/msg36149.html] [baruch: update for v4.15.1; extend to include scrub] Signed-off-by: Baruch Siach [matt: update for v4.16.1; adjusted libunistring -> libicu] Signed-off-by: Matt Weber --- mdrestore/Makefile | 2 +- scrub/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mdrestore/Makefile b/mdrestore/Makefile index 136ae716d691..75ff1bad78e9 100644 --- a/mdrestore/Makefile +++ b/mdrestore/Makefile @@ -10,7 +10,7 @@ CFILES = xfs_mdrestore.c LLDLIBS = $(LIBXFS) $(LIBFROG) $(LIBRT) $(LIBPTHREAD) $(LIBUUID) LTDEPENDENCIES = $(LIBXFS) $(LIBFROG) -LLDFLAGS = -static +LLDFLAGS = -static-libtool-libs default: depend $(LTCOMMAND) diff --git a/scrub/Makefile b/scrub/Makefile index 063279400262..949f6fd8ba94 100644 --- a/scrub/Makefile +++ b/scrub/Makefile @@ -70,7 +70,7 @@ xfs_scrub.c LLDLIBS += $(LIBHANDLE) $(LIBFROG) $(LIBPTHREAD) $(LIBICU_LIBS) $(LIBRT) LTDEPENDENCIES += $(LIBHANDLE) $(LIBFROG) -LLDFLAGS = -static +LLDFLAGS = -static-libtool-libs ifeq ($(HAVE_MALLINFO),yes) LCFLAGS += -DHAVE_MALLINFO -- 2.16.2 ================================================ FILE: package/xfsprogs/0002-libxfs-do-not-try-to-run-the-crc32selftest.patch ================================================ From 3a77dfc54271059dcac305384bf6ace34fe1f3d3 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 18 Dec 2016 15:37:27 +0100 Subject: [PATCH] libxfs: do not try to run the crc32selftest Even though the crc32selftest is natively compiled (because it is to be executed), it fails in cross-compilation as the host may lack the required headers, like uuid/uuid.h (e.g. in a minimal environment). Moreover, running the crc32selftest natively is completely wrong, because it passing on the host does not mean it would still pass n the target (because endianness or bitness or alignment differences). So, just disable running the crc32selftest altogether. Note that there's a remaining bug-in-hiding, because the crc32 table generator is natively built, but with the target CFLAGS. Signed-off-by: "Yann E. MORIN" Signed-off-by: "Fabrice Fontaine" [Update for 4.18.0: crc32 has been moved from libxfs to libfrog] --- libxfs/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libfrog/Makefile b/libxfs/Makefile index 62608bd..e021625 100644 --- a/libfrog/Makefile +++ b/libfrog/Makefile @@ -112,9 +112,9 @@ LTLIBS = $(LIBPTHREAD) $(LIBRT) # don't try linking xfs_repair with a debug libxfs. DEBUG = -DNDEBUG -LDIRT = gen_crc32table crc32table.h crc32selftest +LDIRT = gen_crc32table crc32table.h -default: crc32selftest ltdepend $(LTLIBRARY) +default: ltdepend $(LTLIBRARY) crc32table.h: gen_crc32table.c @echo " [CC] gen_crc32table" -- 2.7.4 ================================================ FILE: package/xfsprogs/Config.in ================================================ comment "xfsprogs needs a toolchain w/ threads" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_XFSPROGS bool "xfsprogs" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_INIH select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_UTIL_LINUX_LIBBLKID help The XFS file system utilities and libraries http://xfs.org ================================================ FILE: package/xfsprogs/xfsprogs.hash ================================================ # From https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/sha256sums.asc sha256 e04017e46d43e4d54b9a560fd7cea922520f8f6ef882404969d20cd4e5c790e9 xfsprogs-5.10.0.tar.xz # Hash for license files sha256 f6b78c087c3ebdf0f3c13415070dd480a3f35d8fc76f3d02180a407c1c812f79 LICENSES/GPL-2.0 sha256 0b9a4febcdee6de55872501d5c1a8f5d8b0d1650cd4d5351995ceb22e889f8ca LICENSES/LGPL-2.1 ================================================ FILE: package/xfsprogs/xfsprogs.mk ================================================ ################################################################################ # # xfsprogs # ################################################################################ XFSPROGS_VERSION = 5.10.0 XFSPROGS_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/fs/xfs/xfsprogs XFSPROGS_SOURCE = xfsprogs-$(XFSPROGS_VERSION).tar.xz XFSPROGS_LICENSE = GPL-2.0, GPL-2.0+, LGPL-2.1 (libhandle, few headers) XFSPROGS_LICENSE_FILES = LICENSES/GPL-2.0 LICENSES/LGPL-2.1 XFSPROGS_DEPENDENCIES = inih util-linux XFSPROGS_CONF_ENV = ac_cv_header_aio_h=yes ac_cv_lib_rt_lio_listio=yes PLATFORM="linux" XFSPROGS_CONF_OPTS = \ --enable-lib64=no \ --enable-gettext=no \ INSTALL_USER=root \ INSTALL_GROUP=root \ --enable-static ifeq ($(BR2_PACKAGE_ICU),y) XFSPROGS_DEPENDENCIES += icu XFSPROGS_CONF_OPTS += --enable-libicu else XFSPROGS_CONF_OPTS += --disable-libicu endif XFSPROGS_INSTALL_TARGET_OPTS = DIST_ROOT=$(TARGET_DIR) install $(eval $(autotools-package)) ================================================ FILE: package/xinetd/0001-ar.patch ================================================ This patch changes all of the hard-coded invocations of "ar" to $(AR), to support a cross-compilation toolchain. The content of this patch was copied from the OpenWrt project: https://dev.openwrt.org/browser/packages/net/xinetd/patches/001-ar.patch Signed-off-by: Danomi Manchego --- a/libs/src/misc/Makefile.in +++ b/libs/src/misc/Makefile.in @@ -62,7 +62,7 @@ $(LIBNAME): $(OBJECTS) - ar r $@ $? + $(AR) r $@ $? $(RANLIB) $@ install: $(LIBNAME) --- a/libs/src/portable/Makefile.in +++ b/libs/src/portable/Makefile.in @@ -57,7 +57,7 @@ $(LIBNAME): $(OBJECTS) - ar r $@ $? + $(AR) r $@ $? $(RANLIB) $@ install: $(LIBNAME) --- a/libs/src/pset/Makefile.in +++ b/libs/src/pset/Makefile.in @@ -53,7 +53,7 @@ mv $(LIBNAME) $(LIBDIR)/optimized $(LIBNAME): $(OBJECTS) - ar r $@ $? + $(AR) r $@ $? $(RANLIB) $@ install: $(LIBNAME) --- a/libs/src/sio/Makefile.in +++ b/libs/src/sio/Makefile.in @@ -52,7 +52,7 @@ $(INSTALL) $(FMODE) $(LIBNAME) $(LIBDIR)/optimized $(LIBNAME): $(OBJECTS) - ar r $@ $? + $(AR) r $@ $? $(RANLIB) $@ install: $(LIBNAME) --- a/libs/src/str/Makefile.in +++ b/libs/src/str/Makefile.in @@ -63,7 +63,7 @@ $(INSTALL) $(FMODE) $(LIBNAME) $(LIBDIR)-O $(LIBNAME): $(OBJECTS) - ar r $@ $? + $(AR) r $@ $? $(RANLIB) $@ LINT_IGNORE=possible pointer alignment|RCSid unused --- a/libs/src/xlog/Makefile.in +++ b/libs/src/xlog/Makefile.in @@ -58,7 +58,7 @@ $(INSTALL) $(FMODE) $(LIBNAME) $(LIBDIR)/optimized $(LIBNAME): $(OBJECTS) - ar r $@ $? + $(AR) r $@ $? $(RANLIB) $@ install: $(LIBNAME) ================================================ FILE: package/xinetd/0002-destdir.patch ================================================ This patch adds $(DESTDIR) to xinetd's installation paths, to support installation to a cross-compiled RFS area. The content of this patch was inspired by the OpenWrt project: https://dev.openwrt.org/browser/packages/net/xinetd/patches/002-destdir.patch Signed-off-by: Danomi Manchego diff -urN xinetd-2.3.15.ORIG/Makefile.in xinetd-2.3.15/Makefile.in --- xinetd-2.3.15.ORIG/Makefile.in 2007-09-20 13:01:52.000000000 -0400 +++ xinetd-2.3.15/Makefile.in 2012-06-18 10:20:00.540864388 -0400 @@ -75,27 +75,27 @@ install: build for i in $(DAEMONDIR) $(BINDIR) $(MANDIR)/man5 $(MANDIR)/man8 ; do \ - test -d $$i || mkdir -p $$i ; done - $(INSTALL_CMD) -m 755 xinetd/xinetd $(DAEMONDIR) - $(INSTALL_CMD) -m 755 xinetd/itox $(DAEMONDIR) - $(INSTALL_CMD) -m 755 $(SRCDIR)/xinetd/xconv.pl $(DAEMONDIR) - $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.conf.man $(MANDIR)/man5/xinetd.conf.5 - $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.log.man $(MANDIR)/man8/xinetd.log.8 - $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.man $(MANDIR)/man8/xinetd.8 - $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/itox.8 $(MANDIR)/man8/itox.8 - $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xconv.pl.8 $(MANDIR)/man8/xconv.pl.8 + test -d $(DESTDIR)$$i || mkdir -p $(DESTDIR)$$i ; done + $(INSTALL_CMD) -m 755 xinetd/xinetd $(DESTDIR)$(DAEMONDIR) + $(INSTALL_CMD) -m 755 xinetd/itox $(DESTDIR)$(DAEMONDIR) + $(INSTALL_CMD) -m 755 $(SRCDIR)/xinetd/xconv.pl $(DESTDIR)$(DAEMONDIR) + $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.conf.man $(DESTDIR)$(MANDIR)/man5/xinetd.conf.5 + $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.log.man $(DESTDIR)$(MANDIR)/man8/xinetd.log.8 + $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.man $(DESTDIR)$(MANDIR)/man8/xinetd.8 + $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/itox.8 $(DESTDIR)$(MANDIR)/man8/itox.8 + $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xconv.pl.8 $(DESTDIR)$(MANDIR)/man8/xconv.pl.8 @echo "You must put your xinetd.conf in /etc/xinetd.conf" @echo "There is a sample config file in xinetd/sample.conf and you can" @echo "use xconv.pl to convert your old inetd.conf file to an xinetd format" uninstall: - rm -f $(DAEMONDIR)/xinetd - rm -f $(DAEMONDIR)/itox - rm -f $(DAEMONDIR)/xconv.pl - rm -f $(MANDIR)/man5/xinetd.conf.5 - rm -f $(MANDIR)/man8/xinetd.log.8 - rm -f $(MANDIR)/man8/xinetd.8 - rm -f $(MANDIR)/man8/itox.8 + rm -f $(DESTDIR)$(DAEMONDIR)/xinetd + rm -f $(DESTDIR)$(DAEMONDIR)/itox + rm -f $(DESTDIR)$(DAEMONDIR)/xconv.pl + rm -f $(DESTDIR)$(MANDIR)/man5/xinetd.conf.5 + rm -f $(DESTDIR)$(MANDIR)/man8/xinetd.log.8 + rm -f $(DESTDIR)$(MANDIR)/man8/xinetd.8 + rm -f $(DESTDIR)$(MANDIR)/man8/itox.8 distclean: clean rm -f config.cache config.log Makefile config.status xinetd/itox ================================================ FILE: package/xinetd/0003-rpc-fix.patch ================================================ This patch fixes compiling xinetd without RPC support. The content of this patch was copied from the OpenWrt project: https://dev.openwrt.org/browser/packages/net/xinetd/patches/003-rpc_fix.patch Signed-off-by: Danomi Manchego --- a/xinetd/confparse.c +++ b/xinetd/confparse.c @@ -745,7 +745,7 @@ static status_e check_entry( struct serv } } -/* #ifndef NO_RPC */ +#ifndef NO_RPC #if defined(HAVE_RPC_RPCENT_H) || defined(HAVE_NETDB_H) if ( SC_IS_RPC( scp ) && !SC_IS_UNLISTED( scp ) ) { @@ -759,6 +759,7 @@ static status_e check_entry( struct serv SC_RPCDATA( scp )->rd_program_number = rep->r_number ; } else +#endif #endif /* ! NO_RPC */ { if ( !SC_IS_UNLISTED( scp ) ) ================================================ FILE: package/xinetd/0004-configure-rlim_t.patch ================================================ Have the configure script look for rlim_t in That's where POSIX says it should be. Some libcs will include its definition via as well, but musl doesn't. Signed-off-by: Maarten ter Huurne --- xinetd-2.3.15.orig/configure 2007-09-20 16:58:27.000000000 +0200 +++ xinetd-2.3.15/configure 2014-09-16 17:20:22.787665449 +0200 @@ -7909,7 +7909,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#include #if STDC_HEADERS #include #endif ================================================ FILE: package/xinetd/0005-CVE-2013-4342-xinetd-ignores-user-and-group-directiv.patch ================================================ From 91e2401a219121eae15244a6b25d2e79c1af5864 Mon Sep 17 00:00:00 2001 From: Thomas Swan Date: Wed, 2 Oct 2013 23:17:17 -0500 Subject: [PATCH] CVE-2013-4342: xinetd: ignores user and group directives for TCPMUX services Originally reported to Debian in 2005 and rediscovered , xinetd would execute TCPMUX services without dropping privilege to match the service configuration allowing the service to run with same privilege as the xinetd process (root). Signed-off-by: Peter Korsgaard --- xinetd/builtins.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xinetd/builtins.c b/xinetd/builtins.c index 3b85579..34a5bac 100644 --- a/xinetd/builtins.c +++ b/xinetd/builtins.c @@ -617,7 +617,7 @@ static void tcpmux_handler( const struct server *serp ) if( SC_IS_INTERNAL( scp ) ) { SC_INTERNAL(scp, nserp); } else { - exec_server(nserp); + child_process(nserp); } } -- 2.20.1 ================================================ FILE: package/xinetd/Config.in ================================================ config BR2_PACKAGE_XINETD bool "xinetd" depends on BR2_USE_MMU # fork() help xinetd is a secure replacement for inetd. It was originally written by panos@cs.colorado.edu. http://www.xinetd.org ================================================ FILE: package/xinetd/xinetd.hash ================================================ # locally computed sha256 620b25f4ab4d72fdf32b13797156ea40df2049f1c07e640177e5fec544e9a94c xinetd-2.3.15.tar.gz sha256 2f3dd19831b1837f7360f80a7700a130c04a59e387d4359299d6df712308bbed COPYRIGHT ================================================ FILE: package/xinetd/xinetd.mk ================================================ ################################################################################ # # xinetd # ################################################################################ XINETD_VERSION = 2.3.15 XINETD_SITE = \ $(call github,xinetd-org,xinetd,xinetd-$(subst .,-,$(XINETD_VERSION))) XINETD_LICENSE = xinetd license XINETD_LICENSE_FILES = COPYRIGHT XINETD_CPE_ID_VENDOR = xinetd # 0005-CVE-2013-4342-xinetd-ignores-user-and-group-directiv.patch XINETD_IGNORE_CVES += CVE-2013-4342 XINETD_CFLAGS = $(TARGET_CFLAGS) # Three cases here: # 1. We have libtirpc, use it by passing special flags # 2. We have native RPC support, use it, no need to pass special # flags (so this case 2 is implicit and not visible below) # 3. We don't have RPC support, pass -DNO_RPC to disable it ifeq ($(BR2_PACKAGE_LIBTIRPC),y) XINETD_DEPENDENCIES += libtirpc host-pkgconf XINETD_CFLAGS += "`$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc`" XINETD_LIBS += "`$(PKG_CONFIG_HOST_BINARY) --libs libtirpc`" else ifeq ($(BR2_TOOLCHAIN_HAS_NATIVE_RPC),) XINETD_CFLAGS += -DNO_RPC endif XINETD_CONF_ENV += \ CFLAGS="$(XINETD_CFLAGS)" \ LIBS="$(XINETD_LIBS)" XINETD_MAKE_OPTS = AR="$(TARGET_AR)" $(eval $(autotools-package)) ================================================ FILE: package/xl2tp/Config.in ================================================ config BR2_PACKAGE_XL2TP bool "xl2tp" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBPCAP help Layer 2 Tunnelling Protocol (RFC2661). xl2tpd is an open source implementation of the L2TP tunneling protocol. xl2tpd is forked from l2tpd and is maintained by Xelerance Corporation. http://www.xelerance.com/software/xl2tpd/ ================================================ FILE: package/xl2tp/xl2tp.hash ================================================ # locally computed sha256 c28608b315adb25c8bf9579c1d6ab52ab47c4c43b68a5ab63c5d039196fd180f xl2tp-1.3.16.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE ================================================ FILE: package/xl2tp/xl2tp.mk ================================================ ################################################################################ # # xl2tp # ################################################################################ XL2TP_VERSION = 1.3.16 XL2TP_SITE = $(call github,xelerance,xl2tpd,v$(XL2TP_VERSION)) XL2TP_DEPENDENCIES = libpcap XL2TP_LICENSE = GPL-2.0 XL2TP_LICENSE_FILES = LICENSE XL2TP_SELINUX_MODULES = l2tp ifeq ($(BR2_STATIC_LIBS),y) XL2TP_LDLIBS = LDLIBS="`$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs`" endif define XL2TP_BUILD_CMDS $(SED) 's/ -O2 //' $(@D)/Makefile $(TARGET_CONFIGURE_OPTS) $(MAKE) $(XL2TP_LDLIBS) -C $(@D) endef define XL2TP_INSTALL_TARGET_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) DESTDIR=$(TARGET_DIR) PREFIX=/usr -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/xl2tp/xl2tpd ================================================ #!/bin/sh # PATH=/bin:/usr/bin:/sbin:/usr/sbin DAEMON=/usr/sbin/xl2tpd PIDFILE=/var/run/xl2tpd.pid test -f $DAEMON || exit 0 case "$1" in start) start-stop-daemon -S -p $PIDFILE -x $DAEMON -- -D & ;; stop) start-stop-daemon -K -p $PIDFILE -x $DAEMON ;; restart|force-reload) start-stop-daemon -K -p $PIDFILE -x $DAEMON sleep 1 start-stop-daemon -S -p $PIDFILE -x $DAEMON ;; *) echo "Usage: /etc/init.d/xl2tdp {start|stop|restart|force-reload}" exit 1 ;; esac exit 0 ================================================ FILE: package/xml-security-c/0001-autoconf-variable-cache-option-for-getcwd-test.patch ================================================ From 9d14fad412a497fe83cfc6ab594ddc612512f02a Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Thu, 4 Jun 2020 20:34:11 -0500 Subject: [PATCH] autoconf variable cache option for getcwd test The cached variable allows cross compiled builds to successfully set the desired default for this value without invoking a test. Fixes: https://issues.apache.org/jira/browse/SANTUARIO-549 Signed-off-by: Matthew Weber --- configure.ac | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac index b43d7a5..c3d4489 100644 --- a/configure.ac +++ b/configure.ac @@ -74,14 +74,18 @@ AC_CHECK_FUNCS([strcasecmp]) # Check whether getcwd can dynamically allocate memory. AC_MSG_CHECKING([whether getcwd(NULL, 0) works]) -AC_RUN_IFELSE([AC_LANG_PROGRAM([#include - #include ], -[char *cwd = getcwd(NULL, 0); -return (cwd != NULL) ? EXIT_SUCCESS : EXIT_FAILURE;])], - [AC_MSG_RESULT(yes) - AC_DEFINE([XSEC_HAVE_GETCWD_DYN], [1], - [Define to 1 if getcwd(NULL, 0) works])], - [AC_MSG_RESULT(no)]) +AC_CACHE_VAL([xml_cv_func_getcwd_null], +[AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include + #include + char *cwd = getcwd(NULL, 0); + return (cwd != NULL) ? EXIT_SUCCESS : EXIT_FAILURE;]])], + [xml_cv_func_getcwd_null=yes], + [xml_cv_func_getcwd_null=no])]) +AC_MSG_RESULT([$xml_cv_func_getcwd_null]) +if test $xml_cv_func_getcwd_null = yes; then +AC_DEFINE([XSEC_HAVE_GETCWD_DYN], [1], + [Define to 1 if getcwd(NULL, 0) works]) +fi AC_LANG(C++) -- 2.17.1 ================================================ FILE: package/xml-security-c/Config.in ================================================ config BR2_PACKAGE_XML_SECURITY_C bool "xml-security-c" depends on BR2_INSTALL_LIBSTDCPP # xerces depends on !BR2_STATIC_LIBS # xerces depends on BR2_USE_WCHAR # xerces depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_XERCES help The xml-security-c library is a C++ implementation of the XML Digital Signature and Encryption specifications. https://santuario.apache.org/cindex.html comment "xml-security-c needs a toolchain w/ C++, wchar, dynamic library, gcc >= 4.7" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/xml-security-c/xml-security-c.hash ================================================ # From http://www.apache.org/dist/santuario/c-library/xml-security-c-2.0.2.tar.gz.sha256 sha256 c303a2b08cb9ca0f5594adcbb83829b1e793175d7114a82f7d78def8bb2e30df xml-security-c-2.0.2.tar.gz sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE.txt ================================================ FILE: package/xml-security-c/xml-security-c.mk ================================================ ################################################################################ # # xml-security-c # ################################################################################ XML_SECURITY_C_VERSION = 2.0.2 XML_SECURITY_C_SITE = http://archive.apache.org/dist/santuario/c-library XML_SECURITY_C_LICENSE = Apache-2.0 XML_SECURITY_C_LICENSE_FILES = LICENSE.txt XML_SECURITY_C_DEPENDENCIES = openssl xerces XML_SECURITY_C_INSTALL_STAGING = YES XML_SECURITY_C_CONF_ENV = \ xml_cv_func_getcwd_null=yes \ CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" # Patched configure.ac XML_SECURITY_C_AUTORECONF = YES $(eval $(autotools-package)) ================================================ FILE: package/xmlstarlet/Config.in ================================================ config BR2_PACKAGE_XMLSTARLET bool "xmlstarlet" select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_LIBXSLT select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Command Line XML Toolkit http://xmlstar.sourceforge.net/ ================================================ FILE: package/xmlstarlet/xmlstarlet.hash ================================================ # 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 # Locally computed sha256 6641cc5b00c1651fa22175f34efd01695e64a348b1ba07048538276f44866862 COPYING ================================================ FILE: package/xmlstarlet/xmlstarlet.mk ================================================ ################################################################################ # # xmlstarlet # ################################################################################ XMLSTARLET_VERSION = 1.6.1 XMLSTARLET_SITE = http://downloads.sourceforge.net/project/xmlstar/xmlstarlet/$(XMLSTARLET_VERSION) XMLSTARLET_LICENSE = MIT XMLSTARLET_LICENSE_FILES = COPYING XMLSTARLET_DEPENDENCIES += libxml2 libxslt \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) XMLSTARLET_CONF_OPTS += \ --with-libxml-prefix=$(STAGING_DIR)/usr \ --with-libxslt-prefix=$(STAGING_DIR)/usr \ --with-libiconv-prefix=$(STAGING_DIR)/usr ifeq ($(BR2_STATIC_LIBS),y) XMLSTARLET_CONF_OPTS += --enable-static-libs XMLSTARLET_CONF_ENV = LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libxml-2.0 libexslt`" else XMLSTARLET_CONF_OPTS += --disable-static-libs endif HOST_XMLSTARLET_DEPENDENCIES += host-libxml2 host-libxslt HOST_XMLSTARLET_CONF_OPTS += \ --with-libxml-prefix=$(HOST_DIR) \ --with-libxslt-prefix=$(HOST_DIR) $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/xmrig/Config.in ================================================ config BR2_PACKAGE_XMRIG bool "xmrig" # archs officially supported by upstream depends on BR2_aarch64 || BR2_x86_64 || BR2_i386 depends on BR2_USE_MMU # libuv depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv # xmrig needs fenv.h which is not provided by uclibc depends on !BR2_TOOLCHAIN_USES_UCLIBC depends on !BR2_STATIC_LIBS # libuv select BR2_PACKAGE_LIBUV help RandomX, CryptoNight, AstroBWT and Argon2 CPU/GPU miner. https://xmrig.com comment "xmrig needs a glibc or musl toolchain w/ NPTL, dynamic library" depends on BR2_aarch64 || BR2_x86_64 || BR2_i386 depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ BR2_TOOLCHAIN_USES_UCLIBC || BR2_STATIC_LIBS ================================================ FILE: package/xmrig/xmrig.hash ================================================ # Locally calculated sha256 27a6c34ee1bec60f8c49a5e2b97223971f579a26a4632fb64c4a4556b3bb04ae xmrig-6.15.2.tar.gz sha256 589ed823e9a84c56feb95ac58e7cf384626b9cbf4fda2a907bc36e103de1bad2 LICENSE ================================================ FILE: package/xmrig/xmrig.mk ================================================ ################################################################################ # # xmrig # ################################################################################ XMRIG_VERSION = 6.15.2 XMRIG_SITE = $(call github,xmrig,xmrig,v$(XMRIG_VERSION)) XMRIG_LICENSE = GPL-3.0+ XMRIG_LICENSE_FILES = LICENSE XMRIG_DEPENDENCIES = libuv XMRIG_CONF_OPTS = -DWITH_CUDA=OFF ifeq ($(BR2_PACKAGE_HAS_LIBOPENCL),y) XMRIG_CONF_OPTS += -DWITH_OPENCL=ON XMRIG_DEPENDENCIES += libopencl else XMRIG_CONF_OPTS += -DWITH_OPENCL=OFF endif ifeq ($(BR2_PACKAGE_HWLOC),y) XMRIG_CONF_OPTS += -DWITH_HWLOC=ON XMRIG_DEPENDENCIES += hwloc else XMRIG_CONF_OPTS += -DWITH_HWLOC=OFF endif ifeq ($(BR2_PACKAGE_OPENSSL),y) XMRIG_CONF_OPTS += -DWITH_TLS=ON XMRIG_DEPENDENCIES += openssl else XMRIG_CONF_OPTS += -DWITH_TLS=OFF XMRIG_SUFFIX = -notls endif # Upstream provides no installation rule: # *** No rule to make target 'install/fast'. Stop. define XMRIG_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/xmrig$(XMRIG_SUFFIX) \ $(TARGET_DIR)/usr/bin/xmrig$(XMRIG_SUFFIX) endef $(eval $(cmake-package)) ================================================ FILE: package/xorcurses/Config.in ================================================ config BR2_PACKAGE_XORCURSES bool "xorcurses" select BR2_PACKAGE_NCURSES help XorCurses is a game remake of the 8-bit game 'Xor'. Your task is to roam around a series of mazes where you have to collect all blue masks before finding the exit. Note that the game needs a terminal with colors, i.e. make sure that the TERM environment variable is set to "linux" ("vt100" won't work). https://github.com/jwm-art-net/XorCurses/ ================================================ FILE: package/xorcurses/xorcurses.hash ================================================ # Locally calculated sha256 6c60a41b9a74ecd5f6ded337b9982e81eaf7b31a654a4a32b219e3a2ff638ae3 xorcurses-04b664826c5bd30dd483f6a5c8c189ef97e255da.tar.gz sha256 8632a67e5a76be4cdf7fd0fc6509e21bd6c647183bd9d2325310d5098c652a3a README ================================================ FILE: package/xorcurses/xorcurses.mk ================================================ ################################################################################ # # xorcurses # ################################################################################ XORCURSES_VERSION = 04b664826c5bd30dd483f6a5c8c189ef97e255da XORCURSES_SITE = $(call github,jwm-art-net,XorCurses,$(XORCURSES_VERSION)) XORCURSES_DEPENDENCIES = ncurses XORCURSES_LICENSE = GPL-3.0 XORCURSES_LICENSE_FILES = README define XORCURSES_BUILD_CMDS $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS) -std=gnu99 \ -DDATADIR='\"/usr/share/xorcurses\"' \ -DVERSION='\"$(XORCURSES_VERSION)\"'" endef define XORCURSES_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/xorcurses $(TARGET_DIR)/usr/bin/xorcurses mkdir -p $(TARGET_DIR)/usr/share/xorcurses/maps $(INSTALL) -D -m 0644 $(@D)/maps/*.xcm \ $(TARGET_DIR)/usr/share/xorcurses/maps/ endef $(eval $(generic-package)) ================================================ FILE: package/xorriso/Config.in ================================================ config BR2_PACKAGE_XORRISO bool "xorriso" depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE 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 comment "xorriso needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ================================================ FILE: package/xorriso/Config.in.host ================================================ 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 ================================================ FILE: package/xorriso/xorriso.hash ================================================ # Locally computed sha256 3ec7393d4a9dcbf5f74309c28a415f55227ec62770b95ae993ac8d7a3b152972 xorriso-1.5.4.pl02.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING sha256 72e99e72cd68f226415e5d898f3b38e24ae7991ed038ed72d789fff5b060f028 COPYRIGHT ================================================ FILE: package/xorriso/xorriso.mk ================================================ ################################################################################ # # xorriso # ################################################################################ XORRISO_VERSION = 1.5.4.pl02 XORRISO_SITE = $(BR2_GNU_MIRROR)/xorriso XORRISO_LICENSE = GPL-3.0+ XORRISO_LICENSE_FILES = COPYING COPYRIGHT # Disable everything until we actually need those features, and add the correct # host libraries HOST_XORRISO_CONF_OPTS = \ --enable-zlib \ --disable-xattr-h-pref-attr \ --disable-libbz2 \ --disable-libcdio \ --disable-libreadline \ --disable-libedit \ --disable-libacl HOST_XORRISO_DEPENDENCIES = host-zlib # libcdio doesn't make sense for Linux # http://lists.gnu.org/archive/html/bug-xorriso/2017-04/msg00004.html XORRISO_CONF_OPTS = --disable-libcdio # we need sys/xattr.h XORRISO_CONF_OPTS += \ --disable-xattr-h-pref-attr ifeq ($(BR2_PACKAGE_LIBICONV),y) XORRISO_DEPENDENCIES += libiconv endif ifeq ($(BR2_PACKAGE_READLINE),y) XORRISO_DEPENDENCIES += readline XORRISO_CONF_OPTS += --enable-libreadline else XORRISO_CONF_OPTS += --disable-libreadline endif ifeq ($(BR2_PACKAGE_ACL),y) XORRISO_DEPENDENCIES += acl XORRISO_CONF_OPTS += --enable-libacl else XORRISO_CONF_OPTS += --disable-libacl endif ifeq ($(BR2_PACKAGE_ATTR),y) XORRISO_DEPENDENCIES += attr XORRISO_CONF_OPTS += --enable-xattr else XORRISO_CONF_OPTS += --disable-xattr endif ifeq ($(BR2_PACKAGE_ZLIB),y) XORRISO_DEPENDENCIES += zlib XORRISO_CONF_OPTS += --enable-zlib else XORRISO_CONF_OPTS += --disable-zlib endif ifeq ($(BR2_PACKAGE_BZIP2),y) XORRISO_DEPENDENCIES += bzip2 XORRISO_CONF_OPTS += --enable-libbz2 else XORRISO_CONF_OPTS += --disable-libbz2 endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) XORRISO_CONF_OPTS += --enable-jtethreads else XORRISO_CONF_OPTS += --disable-jtethreads endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/xr819-xradio/Config.in ================================================ config BR2_PACKAGE_XR819_XRADIO bool "xr819-xradio" depends on BR2_LINUX_KERNEL help Wireless driver for SDIO WiFi chip XR819 https://github.com/fifteenhex/xradio comment "xr819-xradio driver needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL ================================================ FILE: package/xr819-xradio/xr819-xradio.hash ================================================ # Locally computed sha256 5900821a777b9008d7cf9b8128e0cb75a4623ecb608b45438e17c7a056cde1bf xr819-xradio-6bf0e2e21c80456e2a3d4ad1267caecde7165871.tar.gz # Locally computed sha256 db296f2f7f35bca3a174efb0eb392b3b17bd94b341851429a3dff411b1c2fc73 LICENSE ================================================ FILE: package/xr819-xradio/xr819-xradio.mk ================================================ ################################################################################ # # xr819-xradio # ################################################################################ XR819_XRADIO_VERSION = 6bf0e2e21c80456e2a3d4ad1267caecde7165871 XR819_XRADIO_SITE = $(call github,fifteenhex,xradio,$(XR819_XRADIO_VERSION)) XR819_XRADIO_LICENSE = GPL-2.0 XR819_XRADIO_LICENSE_FILES = LICENSE $(eval $(kernel-module)) $(eval $(generic-package)) ================================================ FILE: package/xscreensaver/Config.in ================================================ config BR2_PACKAGE_XSCREENSAVER bool "xscreensaver" depends on BR2_PACKAGE_XORG7 depends on BR2_INSTALL_LIBSTDCPP # libgtk2 -> pango depends on BR2_TOOLCHAIN_HAS_THREADS # gdk-pixbuf, libgtk2 -> glib2 depends on BR2_USE_WCHAR # gdk-pixbuf, libgtk2 -> glib2 depends on BR2_USE_MMU # gdk-pixbuf, libgtk2 -> glib2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # libgtk2 -> pango -> harfbuzz select BR2_PACKAGE_GDK_PIXBUF select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_HAS_LIBGL select BR2_PACKAGE_LIBGTK2 select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_JPEG select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXT help XScreenSaver is the standard screen saver collection shipped on most Linux and Unix systems running the X11 Window System. On X11 systems, XScreenSaver is two things: it is both a large collection of screen savers; and it is also the framework for blanking and locking the screen. http://www.jwz.org/xscreensaver/ comment "xscreensaver needs a toolchain w/ wchar, C++, threads, gcc >= 4.8" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \ !BR2_USE_WCHAR ================================================ FILE: package/xscreensaver/xscreensaver.hash ================================================ # Locally calculated sha256 7016df6736ba0126a68c1f35abcf411a695fe93bc01a18ebd9df46c9a9f4d50d xscreensaver-5.45.tar.gz sha256 8a03451ba5c4c9af669b53e47e50c38c149b9e152d3d627809b962da7b760bbd hacks/screenhack.h sha256 56db580415bb313a4a82c5e08f106304904d15d42faf8e6ab14b34e14e2087a5 hacks/glx/chessmodels.h ================================================ FILE: package/xscreensaver/xscreensaver.mk ================================================ ################################################################################ # # xscreensaver # ################################################################################ XSCREENSAVER_VERSION = 5.45 XSCREENSAVER_SITE = https://www.jwz.org/xscreensaver # N.B. GPL-2.0+ code (in the hacks/glx subdirectory) is not currently built. XSCREENSAVER_LICENSE = MIT-like, GPL-2.0+ XSCREENSAVER_LICENSE_FILES = hacks/screenhack.h hacks/glx/chessmodels.h XSCREENSAVER_CPE_ID_VENDOR = xscreensaver_project XSCREENSAVER_SELINUX_MODULES = xdg xscreensaver xserver XSCREENSAVER_DEPENDENCIES = \ gdk-pixbuf \ jpeg \ libgtk2 \ libxml2 \ xlib_libX11 \ xlib_libXt \ $(TARGET_NLS_DEPENDENCIES) \ host-intltool # otherwise we end up with host include/library dirs passed to the # compiler/linker XSCREENSAVER_CONF_OPTS = \ --includedir=$(STAGING_DIR)/usr/include \ --libdir=$(STAGING_DIR)/usr/lib ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) XSCREENSAVER_CONF_OPTS += --with-gl=yes XSCREENSAVER_DEPENDENCIES += libgl libglu else XSCREENSAVER_CONF_OPTS += --with-gl=no endif ifeq ($(BR2_PACKAGE_LIBPNG),y) XSCREENSAVER_CONF_OPTS += --with-png=yes XSCREENSAVER_DEPENDENCIES += libpng else XSCREENSAVER_CONF_OPTS += --with-png=no endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) XSCREENSAVER_CONF_OPTS += --with-systemd=yes XSCREENSAVER_DEPENDENCIES += systemd else XSCREENSAVER_CONF_OPTS += --with-systemd=no endif ifeq ($(BR2_PACKAGE_XLIB_LIBXFT),y) XSCREENSAVER_CONF_OPTS += --with-xft=yes XSCREENSAVER_DEPENDENCIES += xlib_libXft else XSCREENSAVER_CONF_OPTS += --with-xft=no endif ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y) XSCREENSAVER_CONF_OPTS += --with-xinput-ext=yes XSCREENSAVER_DEPENDENCIES += xlib_libXi else XSCREENSAVER_CONF_OPTS += --with-xinput-ext=no endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) XSCREENSAVER_CONF_OPTS += --with-xinerama-ext=yes XSCREENSAVER_DEPENDENCIES += xlib_libXinerama else XSCREENSAVER_CONF_OPTS += --with-xinerama-ext=no endif ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) XSCREENSAVER_CONF_OPTS += --with-randr-ext=yes XSCREENSAVER_DEPENDENCIES += xlib_libXrandr else XSCREENSAVER_CONF_OPTS += --with-randr-ext=no endif ifeq ($(BR2_PACKAGE_XLIB_LIBXXF86VM),y) XSCREENSAVER_CONF_OPTS += --with-xf86vmode-ext=yes XSCREENSAVER_DEPENDENCIES += xlib_libXxf86vm else XSCREENSAVER_CONF_OPTS += --with-xf86vmode-ext=no endif XSCREENSAVER_INSTALL_TARGET_OPTS = install_prefix="$(TARGET_DIR)" install $(eval $(autotools-package)) ================================================ FILE: package/xtables-addons/Config.in ================================================ comment "xtables-addons needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL comment "xtables-addons needs a toolchain w/ dynamic library, threads" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_XTABLES_ADDONS bool "xtables-addons" depends on BR2_LINUX_KERNEL depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # extensions are .so select BR2_PACKAGE_IPTABLES select BR2_LINUX_NEEDS_MODULES # not using kernel-module infra help Xtables-addons is the successor to patch-o-matic(-ng). Likewise, it contains extensions that were not, or are not yet, accepted in the main kernel/iptables packages. https://inai.de/projects/xtables-addons/ ================================================ FILE: package/xtables-addons/xtables-addons.hash ================================================ # Locally calculated sha256 2a640535f209ec59467b8c8b4343b446801a21a112a3fc189818d6e2697f5cf1 xtables-addons-3.17.tar.xz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 LICENSE ================================================ FILE: package/xtables-addons/xtables-addons.mk ================================================ ################################################################################ # # xtables-addons # ################################################################################ XTABLES_ADDONS_VERSION = 3.17 XTABLES_ADDONS_SOURCE = xtables-addons-$(XTABLES_ADDONS_VERSION).tar.xz XTABLES_ADDONS_SITE = https://inai.de/files/xtables-addons XTABLES_ADDONS_DEPENDENCIES = iptables linux host-pkgconf XTABLES_ADDONS_LICENSE = GPL-2.0+ XTABLES_ADDONS_LICENSE_FILES = LICENSE XTABLES_ADDONS_CONF_OPTS = \ --with-kbuild="$(LINUX_DIR)" \ --with-xtables="$(STAGING_DIR)/usr" \ --with-xtlibdir="/usr/lib/xtables" # geoip helpers need perl with modules and unzip so disable define XTABLES_ADDONS_DISABLE_GEOIP_HELPERS $(SED) 's/ geoip//' $(@D)/Makefile.in endef XTABLES_ADDONS_POST_PATCH_HOOKS += XTABLES_ADDONS_DISABLE_GEOIP_HELPERS define XTABLES_ADDONS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(LINUX_MAKE_FLAGS) endef define XTABLES_ADDONS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(LINUX_MAKE_FLAGS) DESTDIR="$(TARGET_DIR)" install endef define XTABLES_ADDONS_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_ADVANCED) $(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK) $(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK_MARK) $(call KCONFIG_ENABLE_OPT,CONFIG_NF_NAT) endef $(eval $(autotools-package)) ================================================ FILE: package/xterm/Config.in ================================================ config BR2_PACKAGE_XTERM bool "xterm" depends on BR2_PACKAGE_XORG7 depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NCURSES select BR2_PACKAGE_XLIB_LIBXAW help xterm terminal emulator http://invisible-island.net/xterm/ ================================================ FILE: package/xterm/xterm.hash ================================================ # Locally calculated after checking pgp signature sha256 27f1a8b1c756e269fd5684e60802b545f0be9b36b8b5d6bdbc840c6b000dc51f xterm-367.tgz # Locally calculated sha256 dfb668cc977e24649500f3cc54de3e2b793928d210715a445ab1227930b07ba6 COPYING ================================================ FILE: package/xterm/xterm.mk ================================================ ################################################################################ # # xterm # ################################################################################ XTERM_VERSION = 367 XTERM_SOURCE = xterm-$(XTERM_VERSION).tgz XTERM_SITE = http://invisible-mirror.net/archives/xterm XTERM_DEPENDENCIES = ncurses xlib_libXaw host-pkgconf XTERM_LICENSE = MIT XTERM_LICENSE_FILES = COPYING XTERM_CPE_ID_VENDOR = invisible-island XTERM_CONF_OPTS = --enable-256-color \ --x-includes=$(STAGING_DIR)/usr/include \ --x-libraries=$(STAGING_DIR)/usr/lib # Avoid freetype2 path poisoning by imake XTERM_CONF_ENV = ac_cv_path_IMAKE="" ifeq ($(BR2_PACKAGE_XLIB_LIBXFT),y) XTERM_DEPENDENCIES += xlib_libXft XTERM_CONF_OPTS += --enable-freetype \ --with-freetype-config=auto else XTERM_CONF_OPTS += --disable-freetype endif ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) XTERM_DEPENDENCIES += xlib_libXinerama XTERM_CONF_OPTS += --with-xinerama else XTERM_CONF_OPTS += --without-xinerama endif $(eval $(autotools-package)) ================================================ FILE: package/xutil_util-macros/Config.in ================================================ config BR2_PACKAGE_XUTIL_UTIL_MACROS bool "util-macros" help No description available ================================================ FILE: package/xutil_util-macros/xutil_util-macros.hash ================================================ # From https://lists.x.org/archives/xorg-announce/2021-January/003069.html sha256 0f812e6e9d2786ba8f54b960ee563c0663ddbe2434bf24ff193f5feab1f31971 util-macros-1.19.3.tar.bz2 sha512 b9c7398a912c688a782eab5b1e0f6da2df11a430775c5c98fc3269f73a665de6eeb60d300a849e38d345714a6e51f74e9334cb6039767304cca4b93d823a53a2 util-macros-1.19.3.tar.bz2 # Locally computed sha256 489b630a75e3255485732eae3d50ff4d29d3feb66760bb3acb04f897e4d9e375 COPYING ================================================ FILE: package/xutil_util-macros/xutil_util-macros.mk ================================================ ################################################################################ # # xutil_util-macros # ################################################################################ XUTIL_UTIL_MACROS_VERSION = 1.19.3 XUTIL_UTIL_MACROS_SOURCE = util-macros-$(XUTIL_UTIL_MACROS_VERSION).tar.bz2 XUTIL_UTIL_MACROS_SITE = http://xorg.freedesktop.org/releases/individual/util XUTIL_UTIL_MACROS_LICENSE = MIT XUTIL_UTIL_MACROS_LICENSE_FILES = COPYING XUTIL_UTIL_MACROS_INSTALL_STAGING = YES XUTIL_UTIL_MACROS_INSTALL_TARGET = NO $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/xvisor/0001-fix-build-with-gcc-10.patch ================================================ From 8458abb357cd981f55d730ec2d74459a3042e571 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 6 Oct 2020 21:52:20 +0200 Subject: [PATCH] fix build with gcc 10 Define variables in header files as extern to avoid the following build failure with gcc 10 (which defaults to -fno-common): /home/giuliobenetti/autobuild/run/instance-3/output-1/host/bin/arm-buildroot-linux-gnueabihf-ld: /home/giuliobenetti/autobuild/run/instance-3/output-1/build/xvisor-0.3.0/build/drivers/mmc/core/mmc.o:/home/giuliobenetti/autobuild/run/instance-3/output-1/build/xvisor-0.3.0/drivers/mmc/core/core.h:67: multiple definition of `sdio_func_type'; /home/giuliobenetti/autobuild/run/instance-3/output-1/build/xvisor-0.3.0/build/drivers/mmc/core/core.o:/home/giuliobenetti/autobuild/run/instance-3/output-1/build/xvisor-0.3.0/drivers/mmc/core/core.h:67: first defined here Fixes: - http://autobuild.buildroot.org/results/b6070c0721b33824e71833ce53423979980aa598 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/xvisor/xvisor/pull/125] --- drivers/mmc/core/core.h | 2 +- emulators/display/drawfn.h | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/mmc/core/core.h b/drivers/mmc/core/core.h index d75d135a..e2ca3141 100644 --- a/drivers/mmc/core/core.h +++ b/drivers/mmc/core/core.h @@ -64,7 +64,7 @@ int mmc_go_idle(struct mmc_host *host); * Note: Must be called with host->lock held. */ extern struct vmm_bus sdio_bus_type; -struct vmm_device_type sdio_func_type; +extern struct vmm_device_type sdio_func_type; int __sdio_attach(struct mmc_host *host); diff --git a/emulators/display/drawfn.h b/emulators/display/drawfn.h index f9163cff..385deaf6 100644 --- a/emulators/display/drawfn.h +++ b/emulators/display/drawfn.h @@ -69,14 +69,14 @@ typedef void (*drawfn)(struct vmm_surface *, DRAWFN_ORDER_MAX * \ DRAWFN_FORMAT_MAX) -drawfn drawfn_surface_fntable_8[DRAWFN_FNTABLE_SIZE]; +extern drawfn drawfn_surface_fntable_8[DRAWFN_FNTABLE_SIZE]; -drawfn drawfn_surface_fntable_15[DRAWFN_FNTABLE_SIZE]; +extern drawfn drawfn_surface_fntable_15[DRAWFN_FNTABLE_SIZE]; -drawfn drawfn_surface_fntable_16[DRAWFN_FNTABLE_SIZE]; +extern drawfn drawfn_surface_fntable_16[DRAWFN_FNTABLE_SIZE]; -drawfn drawfn_surface_fntable_24[DRAWFN_FNTABLE_SIZE]; +extern drawfn drawfn_surface_fntable_24[DRAWFN_FNTABLE_SIZE]; -drawfn drawfn_surface_fntable_32[DRAWFN_FNTABLE_SIZE]; +extern drawfn drawfn_surface_fntable_32[DRAWFN_FNTABLE_SIZE]; #endif -- 2.28.0 ================================================ FILE: package/xvisor/0002-psmouse-back.c-fix-build-with-gcc-11.patch ================================================ From 0e07e82121697d99470a147eadad9a708889c4df Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 2 Sep 2021 18:13:03 +0200 Subject: [PATCH] psmouse-back.c: fix build with gcc 11 Fix the following build failures with gcc 11 by defining inline functions as static: /home/buildroot/autobuild/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/11.1.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: /home/buildroot/autobuild/instance-3/output-1/build/xvisor-0.3.0/build/drivers/drivers.o: in function `psmouse_extensions': /home/buildroot/autobuild/instance-3/output-1/build/xvisor-0.3.0/drivers/input/mouse/psmouse-base.c:783: undefined reference to `lifebook_detect' /home/buildroot/autobuild/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/11.1.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: /home/buildroot/autobuild/instance-3/output-1/build/xvisor-0.3.0/drivers/input/mouse/psmouse-base.c:783: undefined reference to `alps_detect' /home/buildroot/autobuild/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/11.1.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: /home/buildroot/autobuild/instance-3/output-1/build/xvisor-0.3.0/drivers/input/mouse/psmouse-base.c:783: undefined reference to `ps2pp_init' /home/buildroot/autobuild/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/11.1.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: /home/buildroot/autobuild/instance-3/output-1/build/xvisor-0.3.0/drivers/input/mouse/psmouse-base.c:783: undefined reference to `trackpoint_detect' /home/buildroot/autobuild/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/11.1.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: /home/buildroot/autobuild/instance-3/output-1/build/xvisor-0.3.0/drivers/input/mouse/psmouse-base.c:783: undefined reference to `fsp_detect' Fixes: - http://autobuild.buildroot.org/results/69062b9c80567d135edd48890165e69881cf7295 Signed-off-by: Fabrice Fontaine --- drivers/input/mouse/alps.h | 4 ++-- drivers/input/mouse/lifebook.h | 6 +++--- drivers/input/mouse/logips2pp.h | 2 +- drivers/input/mouse/sentelic.h | 4 ++-- drivers/input/mouse/trackpoint.h | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/input/mouse/alps.h b/drivers/input/mouse/alps.h index ae1ac354..acc1e89e 100644 --- a/drivers/input/mouse/alps.h +++ b/drivers/input/mouse/alps.h @@ -51,11 +51,11 @@ struct alps_data { int alps_detect(struct psmouse *psmouse, bool set_properties); int alps_init(struct psmouse *psmouse); #else -inline int alps_detect(struct psmouse *psmouse, bool set_properties) +static inline int alps_detect(struct psmouse *psmouse, bool set_properties) { return -ENOSYS; } -inline int alps_init(struct psmouse *psmouse) +static inline int alps_init(struct psmouse *psmouse) { return -ENOSYS; } diff --git a/drivers/input/mouse/lifebook.h b/drivers/input/mouse/lifebook.h index 4c4326c6..0baf02a7 100644 --- a/drivers/input/mouse/lifebook.h +++ b/drivers/input/mouse/lifebook.h @@ -16,14 +16,14 @@ void lifebook_module_init(void); int lifebook_detect(struct psmouse *psmouse, bool set_properties); int lifebook_init(struct psmouse *psmouse); #else -inline void lifebook_module_init(void) +static inline void lifebook_module_init(void) { } -inline int lifebook_detect(struct psmouse *psmouse, bool set_properties) +static inline int lifebook_detect(struct psmouse *psmouse, bool set_properties) { return -ENOSYS; } -inline int lifebook_init(struct psmouse *psmouse) +static inline int lifebook_init(struct psmouse *psmouse) { return -ENOSYS; } diff --git a/drivers/input/mouse/logips2pp.h b/drivers/input/mouse/logips2pp.h index 0c186f02..439e9c58 100644 --- a/drivers/input/mouse/logips2pp.h +++ b/drivers/input/mouse/logips2pp.h @@ -14,7 +14,7 @@ #ifdef CONFIG_MOUSE_PS2_LOGIPS2PP int ps2pp_init(struct psmouse *psmouse, bool set_properties); #else -inline int ps2pp_init(struct psmouse *psmouse, bool set_properties) +static inline int ps2pp_init(struct psmouse *psmouse, bool set_properties) { return -ENOSYS; } diff --git a/drivers/input/mouse/sentelic.h b/drivers/input/mouse/sentelic.h index aa697ece..42df9e3b 100644 --- a/drivers/input/mouse/sentelic.h +++ b/drivers/input/mouse/sentelic.h @@ -123,11 +123,11 @@ struct fsp_data { extern int fsp_detect(struct psmouse *psmouse, bool set_properties); extern int fsp_init(struct psmouse *psmouse); #else -inline int fsp_detect(struct psmouse *psmouse, bool set_properties) +static inline int fsp_detect(struct psmouse *psmouse, bool set_properties) { return -ENOSYS; } -inline int fsp_init(struct psmouse *psmouse) +static inline int fsp_init(struct psmouse *psmouse) { return -ENOSYS; } diff --git a/drivers/input/mouse/trackpoint.h b/drivers/input/mouse/trackpoint.h index e558a709..f14e59c0 100644 --- a/drivers/input/mouse/trackpoint.h +++ b/drivers/input/mouse/trackpoint.h @@ -145,7 +145,7 @@ struct trackpoint_data #ifdef CONFIG_MOUSE_PS2_TRACKPOINT int trackpoint_detect(struct psmouse *psmouse, bool set_properties); #else -inline int trackpoint_detect(struct psmouse *psmouse, bool set_properties) +static inline int trackpoint_detect(struct psmouse *psmouse, bool set_properties) { return -ENOSYS; } -- 2.32.0 ================================================ FILE: package/xvisor/Config.in ================================================ config BR2_PACKAGE_XVISOR_ARCH_SUPPORTS bool default y depends on BR2_USE_MMU depends on BR2_arm || BR2_aarch64 || BR2_x86_64 depends on !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV7M menuconfig BR2_PACKAGE_XVISOR bool "xvisor" depends on BR2_PACKAGE_XVISOR_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 help Xvisor is an open-source type-1 hypervisor, which aims at providing a monolithic, light-weight, portable, and flexible virtualization solution. http://www.xhypervisor.org/ if BR2_PACKAGE_XVISOR choice prompt "Xvisor configuration" default BR2_PACKAGE_XVISOR_USE_DEFCONFIG config BR2_PACKAGE_XVISOR_USE_DEFCONFIG bool "Using an in-tree defconfig file" config BR2_PACKAGE_XVISOR_USE_CUSTOM_CONFIG bool "Using a custom (def)config file" endchoice config BR2_PACKAGE_XVISOR_DEFCONFIG string "Defconfig name" default "generic-v5" if BR2_ARM_CPU_ARMV5 default "generic-v6" if BR2_ARM_CPU_ARMV6 default "generic-v7" if BR2_ARM_CPU_ARMV7A default "generic-v8" if BR2_aarch64 default "x86_64_generic" if BR2_x86_64 depends on BR2_PACKAGE_XVISOR_USE_DEFCONFIG help Name of the Xvisor defconfig file to use, without the trailing -defconfig. The defconfig is located in arch//configs in the source tree. config BR2_PACKAGE_XVISOR_CUSTOM_CONFIG_FILE string "Configuration file path" depends on BR2_PACKAGE_XVISOR_USE_CUSTOM_CONFIG help Path to the Xvisor configuration file config BR2_PACKAGE_XVISOR_CREATE_UBOOT_IMAGE bool "Create U-Boot image of Xvisor" depends on BR2_arm select BR2_PACKAGE_HOST_UBOOT_TOOLS help Create an image file of Xvisor loadable from Das U-Boot. config BR2_PACKAGE_XVISOR_BUILD_TEST_DTB bool "Build test device-tree blobs" help Build test device-tree blobs for popular boards. endif comment "xvisor needs a toolchain w/ gcc >= 4.9" depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 depends on BR2_PACKAGE_XVISOR_ARCH_SUPPORTS ================================================ FILE: package/xvisor/xvisor.hash ================================================ # Locally generated sha256 81660d26a0bc63979ba40872f10511df777185712eba2d0e19e816438388de05 xvisor-0.3.0.tar.xz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/xvisor/xvisor.mk ================================================ ################################################################################ # # xvisor # ################################################################################ XVISOR_VERSION = 0.3.0 XVISOR_SOURCE = xvisor-$(XVISOR_VERSION).tar.xz XVISOR_SITE = http://www.xhypervisor.org/tarball XVISOR_LICENSE = GPL-2.0+ XVISOR_LICENSE_FILES = COPYING XVISOR_INSTALL_IMAGES = YES XVISOR_INSTALL_TARGET = NO XVISOR_DEPENDENCIES = host-bison host-dtc host-flex XVISOR_MAKE_TARGETS = all ifeq ($(BR2_PACKAGE_XVISOR_BUILD_TEST_DTB),y) XVISOR_MAKE_TARGETS += dtbs endif XVISOR_KCONFIG_DOTCONFIG = build/openconf/.config ifeq ($(BR2_PACKAGE_XVISOR_USE_DEFCONFIG),y) XVISOR_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_PACKAGE_XVISOR_DEFCONFIG))-defconfig else ifeq ($(BR2_PACKAGE_XVISOR_USE_CUSTOM_CONFIG),y) XVISOR_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_XVISOR_CUSTOM_CONFIG_FILE)) endif XVISOR_KCONFIG_EDITORS = menuconfig ifeq ($(BR2_x86_64),y) XVISOR_ARCH = x86 else ifeq ($(BR2_arm)$(BR2_aarch64),y) XVISOR_ARCH = arm endif ifeq ($(BR2_PACKAGE_XVISOR)$(BR_BUILDING),yy) ifeq ($(XVISOR_ARCH),) $(error "Architecture not supported by XVisor") endif endif XVISOR_MAKE_ENV = \ ARCH=$(XVISOR_ARCH) \ CROSS_COMPILE=$(TARGET_CROSS) XVISOR_MAKE_OPTS = $(if $(VERBOSE),VERBOSE=1) define XVISOR_BUILD_CMDS $(TARGET_MAKE_ENV) $(XVISOR_MAKE_ENV) $(MAKE) $(XVISOR_MAKE_OPTS) \ -C $(@D) $(XVISOR_MAKE_TARGETS) endef define XVISOR_INSTALL_IMAGES_CMDS $(INSTALL) -m 0644 -D $(@D)/build/vmm.bin $(BINARIES_DIR)/vmm.bin endef ifeq ($(BR2_PACKAGE_XVISOR_CREATE_UBOOT_IMAGE),y) XVISOR_DEPENDENCIES += host-uboot-tools define XVISOR_CREATE_UBOOT_IMAGE $(MKIMAGE) -A $(MKIMAGE_ARCH) -O linux -T kernel -C none \ -a 0x00008000 -e 0x00008000 \ -n Xvisor -d $(BINARIES_DIR)/vmm.bin $(BINARIES_DIR)/uvmm.bin endef endif XVISOR_POST_INSTALL_IMAGES_HOOKS += XVISOR_CREATE_UBOOT_IMAGE # Checks to give errors that the user can understand ifeq ($(BR_BUILDING),y) ifeq ($(BR2_PACKAGE_XVISOR_USE_DEFCONFIG),y) ifeq ($(call qstrip,$(BR2_PACKAGE_XVISOR_DEFCONFIG)),) $(error No Xvisor defconfig name specified, check your BR2_PACKAGE_XVISOR_DEFCONFIG setting) endif endif ifeq ($(BR2_PACKAGE_XVISOR_USE_CUSTOM_CONFIG),y) ifeq ($(BR2_PACKAGE_XVISOR_CUSTOM_CONFIG_FILE),) $(error No Xvisor configuration file specified, check your BR2_PACKAGE_XVISOR_CUSTOM_CONFIG_FILE setting) endif endif endif $(eval $(kconfig-package)) ================================================ FILE: package/xvkbd/Config.in ================================================ config BR2_PACKAGE_XVKBD bool "xvkbd" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBICE select BR2_PACKAGE_XLIB_LIBSM select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXAW select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXMU select BR2_PACKAGE_XLIB_LIBXPM select BR2_PACKAGE_XLIB_LIBXT select BR2_PACKAGE_XLIB_LIBXTST help on-screen keyboard for X http://t-sato.in.coocan.jp/xvkbd ================================================ FILE: package/xvkbd/xvkbd.hash ================================================ # Locally calculated sha256 952d07df0fe1e45286520b7c98b4fd00fd60dbf3e3e8ff61e12c259f76a3bef4 xvkbd-4.1.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING sha256 5dada320d6b4fb7c76ef110a027b019feaf1149576acf7ac5cacf0d0dcdc3671 README ================================================ FILE: package/xvkbd/xvkbd.mk ================================================ ################################################################################ # # xvkbd # ################################################################################ XVKBD_VERSION = 4.1 XVKBD_SITE = http://t-sato.in.coocan.jp/xvkbd XVKBD_LICENSE = GPL-2.0+ XVKBD_LICENSE_FILES = COPYING README XVKBD_DEPENDENCIES = \ xlib_libICE \ xlib_libSM \ xlib_libX11 \ xlib_libXaw \ xlib_libXext \ xlib_libXmu \ xlib_libXpm \ xlib_libXt \ xlib_libXtst $(eval $(autotools-package)) ================================================ FILE: package/xxhash/Config.in ================================================ config BR2_PACKAGE_XXHASH bool "xxhash" help xxHash is an extremely fast hash algorithm, running at RAM speed limits. https://github.com/Cyan4973/xxHash ================================================ FILE: package/xxhash/xxhash.hash ================================================ # locally computed sha256 7054c3ebd169c97b64a92d7b994ab63c70dd53a06974f1f630ab782c28db0f4f xxhash-0.8.0.tar.gz sha256 9da63520e9293d82c4b1613be5c84058cadb82b02f5972179bad13731d589910 LICENSE ================================================ FILE: package/xxhash/xxhash.mk ================================================ ################################################################################ # # xxhash # ################################################################################ XXHASH_VERSION = 0.8.0 XXHASH_SITE = $(call github,Cyan4973,xxHash,v$(XXHASH_VERSION)) XXHASH_LICENSE = BSD-2-Clause (library), GPL-2.0+ (xxhsum) XXHASH_LICENSE_FILES = LICENSE define XXHASH_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) xxhsum endef define XXHASH_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/xxhsum $(TARGET_DIR)/usr/bin/xxhsum endef $(eval $(generic-package)) ================================================ FILE: package/xz/Config.in ================================================ config BR2_PACKAGE_XZ bool "xz-utils" help XZ is the successor to the Lempel-Ziv/Markov-chain Algorithm compression format, which provides memory-hungry but powerful compression (often better than bzip2) and fast, easy decompression. This package provides the command line tools for working with XZ compression, including xz, unxz, xzcat, xzgrep, and so on. They can also handle the older LZMA format, and if invoked via appropriate symlinks will emulate the behavior of the commands in the lzma package. https://tukaani.org/xz/ ================================================ FILE: package/xz/xz.hash ================================================ # Locally calculated after checking pgp signature sha256 5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df xz-5.2.5.tar.bz2 # Hash for license files sha256 bcb02973ef6e87ea73d331b3a80df7748407f17efdb784b61b47e0e610d3bb5c COPYING sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING.GPLv2 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING.GPLv3 sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPLv2.1 ================================================ FILE: package/xz/xz.mk ================================================ ################################################################################ # # xz # ################################################################################ XZ_VERSION = 5.2.5 XZ_SOURCE = xz-$(XZ_VERSION).tar.bz2 XZ_SITE = https://tukaani.org/xz XZ_INSTALL_STAGING = YES XZ_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' XZ_LICENSE = Public Domain, GPL-2.0+, GPL-3.0+, LGPL-2.1+ XZ_LICENSE_FILES = COPYING COPYING.GPLv2 COPYING.GPLv3 COPYING.LGPLv2.1 XZ_CPE_ID_VENDOR = tukaani ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) XZ_CONF_OPTS = --enable-threads else XZ_CONF_OPTS = --disable-threads endif # we are built before ccache HOST_XZ_CONF_ENV = \ CC="$(HOSTCC_NOCCACHE)" \ CXX="$(HOSTCXX_NOCCACHE)" $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/yad/Config.in ================================================ config BR2_PACKAGE_YAD bool "yad" depends on BR2_PACKAGE_XORG7 depends on BR2_PACKAGE_LIBGTK2 || BR2_PACKAGE_LIBGTK3_X11 help YAD (yet another dialog) is a tool for create graphical dialogs from shell scripts. http://sourceforge.net/projects/yad-dialog/ comment "yad needs libgtk2 or libgtk3 w/ X11 backend" depends on BR2_PACKAGE_XORG7 depends on !BR2_PACKAGE_LIBGTK2 && !BR2_PACKAGE_LIBGTK3_X11 ================================================ FILE: package/yad/yad.hash ================================================ # From http://sourceforge.net/projects/yad-dialog/files/ md5 82d458a2e1695dd0709f71ad26109812 yad-0.40.0.tar.xz sha1 4376eb42f8e38972124dc81e534cbdc9088109fb yad-0.40.0.tar.xz # Hash for license file sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING ================================================ FILE: package/yad/yad.mk ================================================ ################################################################################ # # yad # ################################################################################ YAD_VERSION = 0.40.0 YAD_SOURCE = yad-$(YAD_VERSION).tar.xz YAD_SITE = http://sourceforge.net/projects/yad-dialog/files YAD_LICENSE = GPL-3.0 YAD_LICENSE_FILES = COPYING YAD_DEPENDENCIES = host-intltool host-pkgconf $(TARGET_NLS_DEPENDENCIES) YAD_CONF_ENV = LIBS=$(TARGET_NLS_LIBS) YAD_CONF_OPTS = --enable-html=no ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) YAD_DEPENDENCIES += libgtk3 YAD_CONF_OPTS += --with-gtk=gtk3 else YAD_DEPENDENCIES += libgtk2 YAD_CONF_OPTS += --with-gtk=gtk2 endif $(eval $(autotools-package)) ================================================ FILE: package/yaffs2utils/yaffs2utils.hash ================================================ # locally computed sha256 9b0912bf683eb839b6e57c9255c83894c3b700d16489a49d319c54c1abf8f6d7 0.2.9.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING ================================================ FILE: package/yaffs2utils/yaffs2utils.mk ================================================ ################################################################################ # # yaffs2utils # ################################################################################ YAFFS2UTILS_VERSION = 0.2.9 YAFFS2UTILS_SOURCE = $(YAFFS2UTILS_VERSION).tar.gz YAFFS2UTILS_SITE = https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/yaffs2utils YAFFS2UTILS_LICENSE = GPL-2.0 YAFFS2UTILS_LICENSE_FILES = COPYING define HOST_YAFFS2UTILS_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_YAFFS2UTILS_INSTALL_CMDS mkdir -p $(HOST_DIR)/bin $(HOST_MAKE_ENV) $(MAKE) -C $(@D) INSTALLDIR=$(HOST_DIR)/bin install endef $(eval $(host-generic-package)) ================================================ FILE: package/yajl/0001-Let-the-shared-and-the-static-library-have-the-same-.patch ================================================ 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 ================================================ FILE: package/yajl/0002-cmake-disable-shared-library-build-when-BUILD_SHARED.patch ================================================ 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 --- src/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 99cf9e9..9e9c77d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -37,6 +37,7 @@ SET(LIBRARY_OUTPUT_PATH ${libDir}) ADD_LIBRARY(yajl_s STATIC ${SRCS} ${HDRS} ${PUB_HDRS}) +IF(BUILD_SHARED_LIBS) ADD_LIBRARY(yajl SHARED ${SRCS} ${HDRS} ${PUB_HDRS}) #### setup shared library version number @@ -51,6 +52,7 @@ IF(APPLE) SET_TARGET_PROPERTIES(yajl PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") ENDIF(APPLE) +ENDIF(BUILD_SHARED_LIBS) #### build up an sdk as a post build step @@ -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.7.0 ================================================ FILE: package/yajl/0003-Link-with-shared-libyajl-in-a-shared-build.patch ================================================ 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 ================================================ FILE: package/yajl/0004-Link-libyajl-_s-with-libm-when-isnan-is-not-brought-.patch ================================================ 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 ================================================ FILE: package/yajl/Config.in ================================================ config BR2_PACKAGE_YAJL bool "yajl" help Yet Another JSON Library. YAJL is a small event-driven (SAX-style) JSON parser written in ANSI C, and a small validating JSON generator. http://lloyd.github.com/yajl/ ================================================ FILE: package/yajl/yajl.hash ================================================ # Locally calculated sha256 3fb73364a5a30efe615046d07e6db9d09fd2b41c763c5f7d3bfb121cd5c5ac5a yajl-2.1.0.tar.gz sha256 054bf2c11686c5442850b1da58ad592e3d1d2a236a362e67279b957f8e662f5a COPYING ================================================ FILE: package/yajl/yajl.mk ================================================ ################################################################################ # # yajl # ################################################################################ YAJL_VERSION = 2.1.0 YAJL_SITE = $(call github,lloyd,yajl,$(YAJL_VERSION)) YAJL_INSTALL_STAGING = YES YAJL_LICENSE = ISC YAJL_LICENSE_FILES = COPYING $(eval $(cmake-package)) ================================================ FILE: package/yaml-cpp/Config.in ================================================ config BR2_PACKAGE_YAML_CPP bool "yaml-cpp" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 help yaml-cpp is a YAML parser and emitter in C++ matching the YAML 1.2 spec. https://github.com/jbeder/yaml-cpp comment "yaml-cpp needs a toolchain w/ C++, gcc >= 4.7" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ================================================ FILE: package/yaml-cpp/yaml-cpp.hash ================================================ # locally computed sha256 77ea1b90b3718aa0c324207cb29418f5bced2354c2e483a9523d98c3460af1ed yaml-cpp-0.6.3.tar.gz sha256 aa6fcc27be034e41e21dd832f9175bfe694a48491d9e14ff0fa278e19ad14f1b LICENSE ================================================ FILE: package/yaml-cpp/yaml-cpp.mk ================================================ ################################################################################ # # yaml-cpp # ################################################################################ YAML_CPP_VERSION = 0.6.3 YAML_CPP_SITE = $(call github,jbeder,yaml-cpp,yaml-cpp-$(YAML_CPP_VERSION)) YAML_CPP_INSTALL_STAGING = YES YAML_CPP_LICENSE = MIT YAML_CPP_LICENSE_FILES = LICENSE YAML_CPP_CPE_ID_VENDOR = yaml-cpp_project # Disable testing and parse tools YAML_CPP_CONF_OPTS += \ -DYAML_CPP_BUILD_TESTS=OFF \ -DYAML_CPP_BUILD_TOOLS=OFF ifeq ($(BR2_STATIC_LIBS),y) YAML_CPP_CONF_OPTS += -DYAML_BUILD_SHARED_LIBS=OFF else YAML_CPP_CONF_OPTS += -DYAML_BUILD_SHARED_LIBS=ON endif $(eval $(cmake-package)) ================================================ FILE: package/yasm/Config.in ================================================ config BR2_PACKAGE_YASM bool "yasm" depends on BR2_i386 || BR2_x86_64 help Yasm is a complete rewrite of the NASM-2.10.01 assembler. It supports the x86 and AMD64 instruction sets, accepts NASM and GAS assembler syntaxes and outputs binary, ELF32 and ELF64 object formats. http://www.tortall.net/projects/yasm/ ================================================ FILE: package/yasm/yasm.hash ================================================ # Locally computed: sha256 3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f yasm-1.3.0.tar.gz sha256 795f8d76eade6130129b680ac72ea81cb3e143467a65ea1f5f64946151d7fa20 COPYING sha256 a84b45f23040624681ca6974ff48d8ef6b477a1cb51e4a1c842e49d00c231e0d BSD.txt sha256 b7fd9b73ea99602016a326e0b62e6646060d18febdd065ceca8bb482208c3d88 Artistic.txt sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 GNU_GPL-2.0 sha256 1faefae1fe8838a2e48864df7d1376e421a50c551c5ae2f60c9f2093206e18a9 GNU_LGPL-2.0 ================================================ FILE: package/yasm/yasm.mk ================================================ ################################################################################ # # yasm # ################################################################################ YASM_VERSION = 1.3.0 YASM_SITE = http://www.tortall.net/projects/yasm/releases YASM_LICENSE = BSD-2-Clause, BSD-3-Clause, Artistic, GPL-2.0, LGPL-2.0 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 $(SED) 's#) ytasm.*#)#' $(@D)/Makefile.in endef YASM_PRE_CONFIGURE_HOOKS += YASM_PRE_CONFIGURE_FIXUP HOST_YASM_PRE_CONFIGURE_HOOKS += YASM_PRE_CONFIGURE_FIXUP $(eval $(autotools-package)) $(eval $(host-autotools-package)) ================================================ FILE: package/yavta/Config.in ================================================ config BR2_PACKAGE_YAVTA bool "yavta" help Yet Another V4L2 Test Application https://git.ideasonboard.org/yavta.git ================================================ FILE: package/yavta/yavta.hash ================================================ # Locally computed sha256 108a0ceec862b56a3fbcb3ad28a8744d9800555ccb3e11bdd94c8cd4614296d5 yavta-583bedefc2a247d2cfd32d1b4a0abbe3e2015c70-br1.tar.gz sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING.GPL ================================================ FILE: package/yavta/yavta.mk ================================================ ################################################################################ # # yavta # ################################################################################ YAVTA_VERSION = 583bedefc2a247d2cfd32d1b4a0abbe3e2015c70 YAVTA_SITE = https://git.ideasonboard.org/git/yavta.git YAVTA_SITE_METHOD = git YAVTA_LICENSE = GPL-2.0+ YAVTA_LICENSE_FILES = COPYING.GPL YAVTA_CONF_OPTS = -Dwerror=false $(eval $(meson-package)) ================================================ FILE: package/ympd/0001-only-c-language.patch ================================================ ympd is implemented only in C By default, CMake assumes that the project is using both C and C++. By explicitly passing 'C' as argument of the project() macro, we tell CMake that only C is used, which prevents CMake from checking if a C++ compiler exists. Signed-off-by: Thomas Petazzoni Index: b/CMakeLists.txt =================================================================== --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 2.6) -project (ympd) +project (ympd C) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/") set(CPACK_PACKAGE_VERSION_MAJOR "1") set(CPACK_PACKAGE_VERSION_MINOR "2") ================================================ FILE: package/ympd/0002-added-forward-declarations.patch ================================================ From 2268e0f0f372a61827b912155a1796490968b3ff Mon Sep 17 00:00:00 2001 From: SuperBFG7 Date: Tue, 2 Jun 2020 12:41:52 +0200 Subject: [PATCH] added forward declarations [Retrieved (and slightly updated to remove update of dirble_api_token) from: https://github.com/notandy/ympd/pull/191/commits/2268e0f0f372a61827b912155a1796490968b3ff] Signed-off-by: Fabrice Fontaine --- src/mpd_client.c | 2 ++ src/mpd_client.h | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mpd_client.c b/src/mpd_client.c index 2911e461..9f003ab0 100644 --- a/src/mpd_client.c +++ b/src/mpd_client.c @@ -30,6 +30,8 @@ /* forward declaration */ static int mpd_notify_callback(struct mg_connection *c, enum mg_event ev); +char dirble_api_token[28]; +struct t_mpd mpd; const char * mpd_cmd_strs[] = { MPD_CMDS(GEN_STR) diff --git a/src/mpd_client.h b/src/mpd_client.h index 447dd563..9342c550 100644 --- a/src/mpd_client.h +++ b/src/mpd_client.h @@ -96,6 +96,8 @@ struct t_mpd { int song_id; unsigned queue_version; -} mpd; +}; + +extern struct t_mpd mpd; struct t_mpd_client_session { int song_id; ================================================ FILE: package/ympd/Config.in ================================================ config BR2_PACKAGE_YMPD bool "ympd" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBMPDCLIENT help ympd, a standalone MPD Web GUI written in C, utilizing Websockets and Bootstrap/JS https://www.ympd.org/ comment "ympd needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/ympd/ympd.hash ================================================ # locally computed sha256 d9f68920cd93d1cfa971e1d7b9162a2b1724909bc9753c1338cecb3688d234d5 ympd-1.3.0.tar.gz sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 LICENSE ================================================ FILE: package/ympd/ympd.mk ================================================ ################################################################################ # # ympd # ################################################################################ YMPD_VERSION = 1.3.0 YMPD_SITE = $(call github,notandy,ympd,v$(YMPD_VERSION)) YMPD_LICENSE = GPL-2.0 YMPD_LICENSE_FILES = LICENSE YMPD_DEPENDENCIES = libmpdclient ifeq ($(BR2_PACKAGE_OPENSSL),y) YMPD_DEPENDENCIES += openssl YMPD_CONF_OPTS += -DWITH_SSL=ON else YMPD_CONF_OPTS += -DWITH_SSL=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/ytree/0001-fix-musl.patch ================================================ Fix musl build Fixes match.c.text+0x9c): undefined reference to `re_comp' match.c.text+0xca): undefined reference to `re_exec' by forcing to use the 'modern' regex methods implementation instead of the obsolete re_comp/re_exec ([1]) one? [1] http://man7.org/linux/man-pages/man3/re_comp.3.html Signed-off-by: Bernd Kuhls diff -uNr ytree-1.99pl2.orig/match.c ytree-1.99pl2/match.c --- ytree-1.99pl2.orig/match.c 2019-09-29 12:37:57.000000000 +0200 +++ ytree-1.99pl2/match.c 2019-10-01 19:46:56.193815327 +0200 @@ -10,7 +10,7 @@ #include "ytree.h" #if defined( sun ) || defined( linux ) || defined( __NeXT__ ) || defined( OSF1 ) || defined( __OpenBSD__ ) || defined(__NetBSD__) || defined( __FreeBSD__ ) || defined( __GNU__ ) -#define HAS_REGEX +#define HAS_REGCOMP #endif #ifdef linux ================================================ FILE: package/ytree/Config.in ================================================ config BR2_PACKAGE_YTREE bool "ytree" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NCURSES help Ytree - a (curses-based) file manager similar to DOS Xtree(tm) https://www.han.de/~werner/ytree.html ================================================ FILE: package/ytree/ytree.hash ================================================ # Locally computed sha256 583aa71552d1347e0eabe39a236fa5a174bf67dde98871853b9fe2a233bcaef1 ytree-2.03.tar.gz sha256 eb6bf7204569b4fe8eaf9d4dffc57e44047c5efb5deba1b2d99069ddbc99d031 COPYING ================================================ FILE: package/ytree/ytree.mk ================================================ ################################################################################ # # ytree # ################################################################################ YTREE_VERSION = 2.03 YTREE_SITE = https://www.han.de/~werner YTREE_LICENSE = GPL-2.0+ YTREE_LICENSE_FILES = COPYING YTREE_DEPENDENCIES = ncurses YTREE_CFLAGS = -DCOLOR_SUPPORT $(TARGET_CFLAGS) YTREE_LDFLAGS = -lncurses $(TARGET_LDFLAGS) ifeq ($(BR2_PACKAGE_READLINE),y) YTREE_DEPENDENCIES += host-pkgconf readline YTREE_CFLAGS += -DREADLINE_SUPPORT YTREE_LDFLAGS += `$(PKG_CONFIG_HOST_BINARY) --libs readline` endif define YTREE_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(YTREE_CFLAGS)" LDFLAGS="$(YTREE_LDFLAGS)" endef define YTREE_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)/usr" install endef $(eval $(generic-package)) ================================================ FILE: package/zbar/Config.in ================================================ config BR2_PACKAGE_ZBAR bool "zbar" depends on BR2_TOOLCHAIN_HAS_THREADS # libv4l depends on BR2_USE_MMU # libv4l depends on BR2_INSTALL_LIBSTDCPP # libv4l depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libv4l select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBV4L help QR and barcode scanner https://git.linuxtv.org/zbar.git/about/ comment "zbar needs a toolchain w/ threads, C++ and headers >= 3.0" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 ================================================ FILE: package/zbar/zbar.hash ================================================ # Locally computed: sha256 9152c8fb302b3891e1cb9cc719883d2f4ccd2483e3430783a2cf2d93bd5901ad zbar-0.23.90.tar.bz2 sha256 44260f9252c7fe38ba8dfb645330504f4a375e3a5e9dd7d5d6b9f04adb4952f1 LICENSE.md ================================================ FILE: package/zbar/zbar.mk ================================================ ################################################################################ # # zbar # ################################################################################ ZBAR_VERSION = 0.23.90 ZBAR_SOURCE = zbar-$(ZBAR_VERSION).tar.bz2 ZBAR_SITE = https://www.linuxtv.org/downloads/zbar ZBAR_LICENSE = LGPL-2.1+ ZBAR_LICENSE_FILES = LICENSE.md ZBAR_INSTALL_STAGING = YES ZBAR_DEPENDENCIES = libv4l jpeg $(TARGET_NLS_DEPENDENCIES) # uses C99 features ZBAR_CONF_ENV = \ CFLAGS="$(TARGET_CFLAGS) -std=gnu99" \ LIBS=$(TARGET_NLS_LIBS) ZBAR_CONF_OPTS = \ --disable-doc \ --without-imagemagick \ --without-qt \ --without-qt5 \ --without-gtk \ --without-x \ --without-java ifeq ($(BR2_PACKAGE_DBUS),y) ZBAR_DEPENDENCIES += dbus ZBAR_CONF_OPTS += --with-dbus else ZBAR_CONF_OPTS += --without-dbus endif ifeq ($(BR2_PACKAGE_PYTHON3),y) ZBAR_DEPENDENCIES += host-python3 python3 ZBAR_CONF_OPTS += --with-python=python3 ZBAR_CONF_ENV += PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python3-config" else ZBAR_CONF_OPTS += --with-python=no endif $(eval $(autotools-package)) ================================================ FILE: package/zd1211-firmware/Config.in ================================================ config BR2_PACKAGE_ZD1211_FIRMWARE bool "zd1211-firmware" help Firmware for the ZyDAS ZD1211 / Atheros AR5007UG wifi devices. https://sourceforge.net/projects/zd1211/ ================================================ FILE: package/zd1211-firmware/zd1211-firmware.hash ================================================ # Locally computed: sha256 f11d3810d7f72833997f634584a586dcced71a353f965abf81062ec431d02b12 zd1211-firmware-1.5.tar.bz2 sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING ================================================ FILE: package/zd1211-firmware/zd1211-firmware.mk ================================================ ################################################################################ # # zd1211-firmware # ################################################################################ ZD1211_FIRMWARE_VERSION = 1.5 ZD1211_FIRMWARE_SITE = http://downloads.sourceforge.net/project/zd1211/zd1211-firmware/$(ZD1211_FIRMWARE_VERSION) ZD1211_FIRMWARE_SOURCE = zd1211-firmware-$(ZD1211_FIRMWARE_VERSION).tar.bz2 ZD1211_FIRMWARE_LICENSE = GPL-2.0 ZD1211_FIRMWARE_LICENSE_FILES = COPYING # Not all of the firmware files are used define ZD1211_FIRMWARE_INSTALL_TARGET_CMDS $(INSTALL) -d -m 0755 $(TARGET_DIR)/lib/firmware/zd1211/ cp -dpf $(@D)/zd1211*{ub,uphr,ur} $(TARGET_DIR)/lib/firmware/zd1211 endef $(eval $(generic-package)) ================================================ FILE: package/zeromq/Config.in ================================================ comment "zeromq needs a toolchain w/ C++, threads" depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS) config BR2_PACKAGE_ZEROMQ bool "zeromq" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help ØMQ (ZeroMQ, 0MQ, zmq) looks like an embeddable networking library but acts like a concurrency framework. It gives you sockets that carry whole messages across various transports like in-process, inter- process, TCP, and multicast. You can connect sockets N-to-N with patterns like fanout, pub-sub, task distribution, and request-reply. It's fast enough to be the fabric for clustered products. Its asynchronous I/O model gives you scalable multicore applications, built as asynchronous message-processing tasks. It has a score of language APIs and runs on most operating systems. ØMQ is from iMatix and is LGPL open source. http://www.zeromq.org/ 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. comment "PGM/EPGM support needs a toolchain w/ wchar" depends on BR2_TOOLCHAIN_HAS_SYNC_2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_USE_WCHAR config BR2_PACKAGE_ZEROMQ_PGM bool "PGM/EPGM support" depends on BR2_TOOLCHAIN_HAS_SYNC_2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_WCHAR # openpgm 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). config BR2_PACKAGE_ZEROMQ_DRAFTS bool "Draft APIs support" help Enable unstable draft ZeroMQ APIs https://pyzmq.readthedocs.io/en/latest/draft.html config BR2_PACKAGE_ZEROMQ_WEBSOCKET bool "WebSocket support" help Enable WebSocket transport endif ================================================ FILE: package/zeromq/zeromq.hash ================================================ # From https://github.com/zeromq/libzmq/releases md5 c897d4005a3f0b8276b00b7921412379 zeromq-4.3.4.tar.gz sha1 47277a64749049123d1401600e8cfbab10a3ae28 zeromq-4.3.4.tar.gz # Locally computed sha256 c593001a89f5a85dd2ddf564805deb860e02471171b3f204944857336295c3e5 zeromq-4.3.4.tar.gz sha256 4fd86507c9b486764343065a9e035222869a27b5789efeb4fd93edc85412d7a3 COPYING sha256 83f32abe61ee58ffb1b007412c08415168c052501dbf56d7a47aaaac52b03ef6 COPYING.LESSER ================================================ FILE: package/zeromq/zeromq.mk ================================================ ################################################################################ # # zeromq # ################################################################################ ZEROMQ_VERSION = 4.3.4 ZEROMQ_SITE = https://github.com/zeromq/libzmq/releases/download/v$(ZEROMQ_VERSION) ZEROMQ_INSTALL_STAGING = YES ZEROMQ_DEPENDENCIES = util-linux ZEROMQ_CONF_OPTS = --disable-Werror --without-documentation ZEROMQ_LICENSE = LGPL-3.0+ with exceptions ZEROMQ_LICENSE_FILES = COPYING COPYING.LESSER ZEROMQ_CPE_ID_VENDOR = zeromq ZEROMQ_CPE_ID_PRODUCT = libzmq # Assume these flags are always available. It is true, at least for # SOCK_CLOEXEC, since linux v2.6.27. # Note: the flag TCP_KEEPALIVE is NOT available so we do not include it. ZEROMQ_CONF_ENV = libzmq_cv_sock_cloexec=yes \ libzmq_cv_so_keepalive=yes \ libzmq_cv_tcp_keepcnt=yes \ libzmq_cv_tcp_keepidle=yes \ libzmq_cv_tcp_keepintvl=yes # Internal error, aborting at dwarf2cfi.c:2752 in connect_traces # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58864 ifeq ($(BR2_m68k_cf),y) ZEROMQ_CONF_OPTS += CXXFLAGS="$(TARGET_CXXFLAGS) -fno-defer-pop" endif # Only tools/curve_keygen.c needs this, but it doesn't hurt to pass it # for the rest of the build as well (which automatically includes stdc++). 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-pgm else ZEROMQ_CONF_OPTS += --without-pgm endif ifeq ($(BR2_PACKAGE_ZEROMQ_DRAFTS),y) ZEROMQ_CONF_OPTS += --enable-drafts else ZEROMQ_CONF_OPTS += --disable-drafts endif ifeq ($(BR2_PACKAGE_ZEROMQ_WEBSOCKET),y) ZEROMQ_CONF_OPTS += --enable-ws else ZEROMQ_CONF_OPTS += --disable-ws endif ifeq ($(BR2_PACKAGE_GNUTLS),y) ZEROMQ_DEPENDENCIES += host-pkgconf gnutls ZEROMQ_CONF_OPTS += --with-tls else ZEROMQ_CONF_OPTS += --without-tls endif ifeq ($(BR2_PACKAGE_LIBBSD),y) ZEROMQ_DEPENDENCIES += host-pkgconf libbsd ZEROMQ_CONF_OPTS += --enable-libbsd else ZEROMQ_CONF_OPTS += --disable-libbsd endif ifeq ($(BR2_PACKAGE_LIBNSS),y) ZEROMQ_DEPENDENCIES += host-pkgconf libnss ZEROMQ_CONF_OPTS += --with-nss else ZEROMQ_CONF_OPTS += --without-nss endif # ZeroMQ uses libsodium if it's available. ifeq ($(BR2_PACKAGE_LIBSODIUM),y) ZEROMQ_DEPENDENCIES += libsodium ZEROMQ_CONF_OPTS += --with-libsodium="$(STAGING_DIR)/usr" else ZEROMQ_CONF_OPTS += --without-libsodium endif ifeq ($(BR2_PACKAGE_LIBUNWIND),y) ZEROMQ_DEPENDENCIES += libunwind ZEROMQ_CONF_OPTS += --enable-libunwind else ZEROMQ_CONF_OPTS += --disable-libunwind endif $(eval $(autotools-package)) ================================================ FILE: package/zfs/Config.in ================================================ comment "zfs needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL comment "zfs needs udev /dev management" depends on BR2_LINUX_KERNEL depends on !BR2_PACKAGE_HAS_UDEV config BR2_PACKAGE_ZFS bool "zfs" depends on BR2_LINUX_KERNEL depends on BR2_PACKAGE_HAS_UDEV depends on BR2_USE_MMU # util-linux (libblkid) depends on BR2_TOOLCHAIN_HAS_THREADS # libtirpc select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_PACKAGE_LIBAIO select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help OpenZFS on Linux and FreeBSD OpenZFS is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community. This repository contains the code for running OpenZFS on Linux and FreeBSD. This package builds the kernel modules and userland utils required to operates with ZFS volumes. http://zfsonlinux.org/ ================================================ FILE: package/zfs/zfs.hash ================================================ # From https://github.com/openzfs/zfs/releases/download/zfs-2.0.5/zfs-2.0.5.sha256.asc sha256 3a17498d704ebf4c5d7231660f6fb44ae07a1545519f567452a4270851a86ec9 zfs-2.0.5.tar.gz # Hash for license files: sha256 1ffb70c33c4f79f04e947facc5c7851f289609256aacb47fc115f700427d9520 LICENSE sha256 f125a37c829705eff3e6f77a9f6c58fd71060f84ab54180b98fafdf94a2021eb COPYRIGHT ================================================ FILE: package/zfs/zfs.mk ================================================ ################################################################################ # # zfs # ################################################################################ ZFS_VERSION = 2.0.5 ZFS_SITE = https://github.com/openzfs/zfs/releases/download/zfs-$(ZFS_VERSION) ZFS_LICENSE = CDDL ZFS_LICENSE_FILES = LICENSE COPYRIGHT ZFS_CPE_ID_VENDOR = openzfs ZFS_CPE_ID_PRODUCT = openzfs ZFS_AUTORECONF = YES ZFS_DEPENDENCIES = libaio openssl udev util-linux zlib # sysvinit installs only a commented-out modules-load.d/ config file ZFS_CONF_OPTS = \ --with-linux=$(LINUX_DIR) \ --with-linux-obj=$(LINUX_DIR) \ --disable-rpath \ --disable-sysvinit ifeq ($(BR2_PACKAGE_LIBTIRPC),y) ZFS_DEPENDENCIES += libtirpc ZFS_CONF_OPTS += --with-tirpc else ZFS_CONF_OPTS += --without-tirpc endif ifeq ($(BR2_INIT_SYSTEMD),y) # Installs the optional systemd generators, units, and presets files. ZFS_CONF_OPTS += --enable-systemd else ZFS_CONF_OPTS += --disable-systemd endif # The optional PyZFS uses different scripts depending on the python # version (ex: arc_summary2 or arc_summary3). ifeq ($(BR2_PACKAGE_PYTHON),y) ZFS_DEPENDENCIES += python python-setuptools host-python-cffi ZFS_CONF_ENV += \ PYTHON=$(HOST_DIR)/usr/bin/python2 \ PYTHON_CPPFLAGS="`$(STAGING_DIR)/usr/bin/python2-config --includes`" \ PYTHON_LIBS="`$(STAGING_DIR)/usr/bin/python2-config --ldflags`" \ PYTHON_SITE_PKG="/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages" ZFS_CONF_OPTS += --enable-pyzfs else ifeq ($(BR2_PACKAGE_PYTHON3),y) ZFS_DEPENDENCIES += python3 python-setuptools host-python-cffi ZFS_CONF_ENV += \ PYTHON=$(HOST_DIR)/usr/bin/python3 \ PYTHON_CPPFLAGS="`$(STAGING_DIR)/usr/bin/python3-config --includes`" \ PYTHON_LIBS="`$(STAGING_DIR)/usr/bin/python3-config --ldflags`" \ PYTHON_EXTRA_LIBS="`$(STAGING_DIR)/usr/bin/python3-config --libs --embed`" \ PYTHON_SITE_PKG="/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages" ZFS_CONF_OPTS += --enable-pyzfs else ZFS_CONF_OPTS += --disable-pyzfs --without-python endif ifeq ($(BR2_PACKAGE_LINUX_PAM),y) ZFS_DEPENDENCIES += linux-pam ZFS_CONF_ENV += --enable-pam=yes else ZFS_CONF_OPTS += --disable-pam endif # ZFS userland tools are unfunctional without the Linux kernel modules. ZFS_MODULE_SUBDIRS = \ module/avl \ module/icp \ module/lua \ module/nvpair \ module/spl \ module/unicode \ module/zcommon \ module/zstd \ module/zfs # These requirements will be validated by zfs/config/kernel-config-defined.m4 define ZFS_LINUX_CONFIG_FIXUPS $(call KCONFIG_DISABLE_OPT,CONFIG_DEBUG_LOCK_ALLOC) $(call KCONFIG_DISABLE_OPT,CONFIG_TRIM_UNUSED_KSYMS) $(call KCONFIG_ENABLE_OPT,CONFIG_CRYPTO_DEFLATE) $(call KCONFIG_ENABLE_OPT,CONFIG_ZLIB_DEFLATE) $(call KCONFIG_ENABLE_OPT,CONFIG_ZLIB_INFLATE) endef $(eval $(kernel-module)) $(eval $(autotools-package)) ================================================ FILE: package/zic/0001-remove-dependency-check-on-version-file.patch ================================================ From 4ad8932f93c490d15586b1def3863e9580e6eceb Mon Sep 17 00:00:00 2001 From: Martin Bark Date: Sat, 3 Dec 2016 13:51:50 +0000 Subject: [PATCH] remove dependency check on version file $(VERSION_DEPS) includes dependencies from tzdata meaning applications such as zic can't build from tzcode on their own. Remove the dependency to $(VERSION_DEPS) since it is not necessary to check for version updates in released code. This solves building zic from tzcode without needing tzdata. Signed-off-by: Martin Bark --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 1b714a8..00d2c09 100644 --- a/Makefile +++ b/Makefile @@ -587,7 +587,7 @@ INSTALL: ALL install date.1 # Otherwise, use $(VERSION) unless it is "unknown" and there is already # a 'version' file, in which case reuse the existing 'version' contents # and append "-dirty" if the contents do not already end in "-dirty". -version: $(VERSION_DEPS) +version: { (type git) >/dev/null 2>&1 && \ V=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \ --abbrev=7 --dirty` || \ -- 2.7.4 ================================================ FILE: package/zic/zic.hash ================================================ # From https://mm.icann.org/pipermail/tz-announce/2020-December/000064.html sha512 5f6bf1b508434842eb9dacacc744b5f3375c35b88e401ef372b5fde80ad2f523484fe52a6e99460e402230406ebf6a9261a97efde45a610f8e8085893d55c4ed tzcode2020f.tar.gz # Locally computed: sha256 0613408568889f5739e5ae252b722a2659c02002839ad970a63dc5e9174b27cf LICENSE ================================================ FILE: package/zic/zic.mk ================================================ ################################################################################ # # zic # ################################################################################ ZIC_VERSION = 2020f ZIC_SOURCE = tzcode$(ZIC_VERSION).tar.gz ZIC_SITE = https://www.iana.org/time-zones/repository/releases ZIC_STRIP_COMPONENTS = 0 ZIC_LICENSE = Public domain ZIC_LICENSE_FILES = LICENSE define HOST_ZIC_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) zic endef define HOST_ZIC_INSTALL_CMDS $(INSTALL) -D -m 755 $(@D)/zic $(HOST_DIR)/sbin/zic $(INSTALL) -D -m 644 $(@D)/tzfile.h $(HOST_DIR)/include/tzfile.h endef $(eval $(host-generic-package)) ZIC = $(HOST_DIR)/sbin/zic ================================================ FILE: package/zip/0001-configure-Remove-Check-C-compiler-type-optimization-.patch ================================================ From 0f5e1658c05746b17f05a1bade263cad19b37e79 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Thu, 22 Jan 2015 15:20:25 +0100 Subject: [PATCH 1/6] configure: Remove "Check C compiler type (optimization options)" This test force optimization to -O3 while it is already set in CFLAGS Signed-off-by: Romain Naour --- unix/configure | 98 ---------------------------------------------------------- 1 file changed, 98 deletions(-) diff --git a/unix/configure b/unix/configure index 73ba803..4185fee 100644 --- a/unix/configure +++ b/unix/configure @@ -22,108 +22,10 @@ LFLAGS1='' LFLAGS2='' LN="ln -s" -CFLAGS_OPT='' - # bzip2 IZ_BZIP2=${3-} CFLAGS_BZ='' - -echo 'Check C compiler type (optimization options)' -# Sun C? -cat > conftest.c << _EOF_ -int main() -{ -#ifndef __SUNPRO_C - bad code -#endif - return 0; -} -_EOF_ -$CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null -if test $? -eq 0; then - CFLAGS_OPT='-xO3' - echo " Sun C ($CFLAGS_OPT)" -else - # Tru64 DEC/Compaq/HP C? - cat > conftest.c << _EOF_ -int main() -{ -#ifndef __DECC - bad code -#endif - return 0; -} -_EOF_ - $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null - if test $? -eq 0; then - CFLAGS_OPT='-O3' - echo " DEC C ($CFLAGS_OPT)" - else - # HP-UX HP C? - cat > conftest.c << _EOF_ -int main() -{ -#ifdef __GNUC__ - bad code -#endif -#ifndef __hpux - bad code -#endif - return 0; -} -_EOF_ - $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null - if test $? -eq 0; then - # HP-UX, not GCC. Lame bundled or real ANSI compiler? - CFLAGS_OPT_TRY="+O3 +Onolimit" - $CC $CFLAGS $CFLAGS_OPT_TRY -c conftest.c 2>&1 | \ - grep '(Bundled)' > /dev/null - if test $? -ne 0; then - CFLAGS_OPT="$CFLAGS_OPT_TRY" - echo " HP-UX ANSI C ($CFLAGS_OPT)" - else - echo ' HP-UX Bundled C (no opt)' - fi - else - # GNU C? - cat > conftest.c << _EOF_ -int main() -{ -#ifndef __GNUC__ - bad code -#endif - return 0; -} -_EOF_ - $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null - if test $? -eq 0; then - CFLAGS_OPT='-O3' - echo " GNU C ($CFLAGS_OPT)" - # Special Mac OS X shared library "ld" option? - if test ` uname -s 2> /dev/null ` = 'Darwin'; then - lf='-Wl,-search_paths_first' - $CC $CFLAGS $lf conftest.c > /dev/null 2>/dev/null - if test $? -eq 0; then - LFLAGS2="${LFLAGS2} ${lf}" - fi - rm -f conftest - fi - else - CFLAGS_OPT='-O' - echo " Other-unknown C ($CFLAGS_OPT)" - fi - fi - fi -fi - -# optimization flags -if test -n "${CFLAGS_OPT}"; then - CFLAGS="${CFLAGS} ${CFLAGS_OPT}" - CFLAGS_BZ="${CFLAGS_BZ} ${CFLAGS_OPT}" -fi - - # bzip2 echo "Check bzip2 support" -- 1.9.3 ================================================ FILE: package/zip/0002-configure-Don-t-use-host-CPP.patch ================================================ From fc5c889131ff6270e1028cc7edd87e7f10a7da6d Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Thu, 22 Jan 2015 15:21:31 +0100 Subject: [PATCH 2/6] configure: Don't use host CPP CPP is redefined if a cpp binary (/lib/cpp) is found on the host. Use the CPP="${CC} -E" allows to pass the following checks: Check if we can use asm code (for -DASMV) Check if compiler generates underlines (for -DASM_CRC) Signed-off-by: Romain Naour --- unix/configure | 7 ------- 1 file changed, 7 deletions(-) diff --git a/unix/configure b/unix/configure index 4185fee..489009f 100644 --- a/unix/configure +++ b/unix/configure @@ -122,13 +122,6 @@ fi echo Check for the C preprocessor # on SVR4, cc -E does not produce correct assembler files. Need /lib/cpp. CPP="${CC} -E" -# solaris as(1) needs -P, maybe others as well ? -[ -f /usr/ccs/lib/cpp ] && CPP="/usr/ccs/lib/cpp -P" -[ -f /usr/lib/cpp ] && CPP=/usr/lib/cpp -[ -f /lib/cpp ] && CPP=/lib/cpp -[ -f /usr/bin/cpp ] && CPP=/usr/bin/cpp -[ -f /xenix ] && CPP="${CC} -E" -[ -f /lynx.os ] && CPP="${CC} -E" echo "#include " > conftest.c $CPP conftest.c >/dev/null 2>/dev/null || CPP="${CC} -E" -- 1.9.3 ================================================ FILE: package/zip/0003-Makefile-Use-CFLAGS-from-command-line.patch ================================================ From 93189390de7322da78bc5b807f4cadaff46393c9 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Thu, 22 Jan 2015 22:45:30 +0100 Subject: [PATCH 3/6] Makefile: Use CFLAGS from command line Replace CFLAGS_NOOPT by CFLAGS when calling unix/configure script to create 'flags' file which contains all variables used to build zip binary. Signed-off-by: Romain Naour --- unix/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unix/Makefile b/unix/Makefile index abd0c44..db62368 100644 --- a/unix/Makefile +++ b/unix/Makefile @@ -177,7 +177,7 @@ uninstall: flags: unix/configure - sh unix/configure "${CC}" "${CFLAGS_NOOPT}" "${IZ_BZIP2}" + sh unix/configure "${CC}" "${CFLAGS}" "${IZ_BZIP2}" # These symbols, when #defined using -D have these effects on compilation: # ZMEM - includes C language versions of memset(), memcpy(), -- 1.9.3 ================================================ FILE: package/zip/0004-configure-use-LDFLAGS-from-command-line.patch ================================================ From 5c58b8737dc9ccf9407f6725f6f07b764d6abb22 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Thu, 22 Jan 2015 23:47:55 +0100 Subject: [PATCH 4/6] configure: use LDFLAGS from command line The bzip2 support may not enabled due to a build error during the checking for bzip2 library. The library path (-L) to bzip2 library is missing. Signed-off-by: Romain Naour --- unix/configure | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unix/configure b/unix/configure index 489009f..de9fd68 100644 --- a/unix/configure +++ b/unix/configure @@ -106,11 +106,11 @@ int main() return 0; } _EOF_ - $CC $CFLAGS -o conftest conftest.c -lbz2 > /dev/null 2>/dev/null + $CC $CFLAGS $LDFLAGS -o conftest conftest.c -lbz2 > /dev/null 2>/dev/null if test $? -eq 0; then echo "-- OS supports bzip2 - linking in bzip2" CFLAGS="${CFLAGS} -DBZIP2_SUPPORT" - LFLAGS2="${LFLAGS2} -lbz2" + LFLAGS2="${LFLAGS2} ${LDFLAGS} -lbz2" else echo "-- Either bzlib.h or libbz2.a not found - no bzip2" fi -- 1.9.3 ================================================ FILE: package/zip/0005-unix-configure-remove-GID-UID-size-check.patch ================================================ From d8da4e5f0ebed000f880e60b6cca7c575f7ed1c7 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Fri, 23 Jan 2015 22:13:14 +0100 Subject: [PATCH 5/6] unix/configure: remove GID/UID size check This check can't work for cross-compilation since it try to run a target's binary on the host system. Reported-by: Richard Genoud Signed-off-by: Romain Naour --- unix/configure | 57 --------------------------------------------------------- 1 file changed, 57 deletions(-) diff --git a/unix/configure b/unix/configure index de9fd68..7bfc9eb 100644 --- a/unix/configure +++ b/unix/configure @@ -237,63 +237,6 @@ _EOF_ $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_OFF_T" - -echo Check size of UIDs and GIDs -echo "(Now zip stores variable size UIDs/GIDs using a new extra field. This" -echo " tests if this OS uses 16-bit UIDs/GIDs and so if the old 16-bit storage" -echo " should also be used for backward compatibility.)" -# Added 2008-04-15 CS -cat > conftest.c << _EOF_ -# define _LARGEFILE_SOURCE /* some OSes need this for fseeko */ -# define _LARGEFILE64_SOURCE -# define _FILE_OFFSET_BITS 64 /* select default interface as 64 bit */ -# define _LARGE_FILES /* some OSes need this for 64-bit off_t */ -#include -#include -#include -#include -int main() -{ - struct stat s; - - printf(" s.st_uid is %u bytes\n", sizeof(s.st_uid)); - printf(" s.st_gid is %u bytes\n", sizeof(s.st_gid)); - - /* see if have 16-bit UID */ - if (sizeof(s.st_uid) != 2) { - return 1; - } - /* see if have 16-bit GID */ - if (sizeof(s.st_gid) != 2) { - return 2; - } - return 3; -} -_EOF_ -# compile it -$CC -o conftest conftest.c >/dev/null 2>/dev/null -if [ $? -ne 0 ]; then - echo -- UID/GID test failed on compile - disabling old 16-bit UID/GID support - CFLAGS="${CFLAGS} -DUIDGID_NOT_16BIT" -else -# run it - ./conftest - r=$? - if [ $r -eq 1 ]; then - echo -- UID not 2 bytes - disabling old 16-bit UID/GID support - CFLAGS="${CFLAGS} -DUIDGID_NOT_16BIT" - elif [ $r -eq 2 ]; then - echo -- GID not 2 bytes - disabling old 16-bit UID/GID support - CFLAGS="${CFLAGS} -DUIDGID_NOT_16BIT" - elif [ $r -eq 3 ]; then - echo -- 16-bit UIDs and GIDs - keeping old 16-bit UID/GID support - else - echo -- test failed - conftest returned $r - disabling old 16-bit UID/GID support - CFLAGS="${CFLAGS} -DUIDGID_NOT_16BIT" - fi -fi - - # Now we set the 64-bit file environment and check the size of off_t # Added 11/4/2003 EG # Revised 8/12/2004 EG -- 1.9.3 ================================================ FILE: package/zip/0006-unix-configure-borrow-the-LFS-test-from-autotools.patch ================================================ From fc392c939b9a18959482f588aff0afc29dd6d30a Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Fri, 23 Jan 2015 22:20:18 +0100 Subject: [PATCH 6/6] unix/configure: borrow the LFS test from autotools. Infozip's LFS check can't work for cross-compilation since it try to run a target's binary on the host system. Instead, use to LFS test used by autotools which is a compilation test. (see autotools/lib/autoconf/specific.m4) Reported-by: Richard Genoud Signed-off-by: Romain Naour --- unix/configure | 51 ++++++++++++++++++--------------------------------- 1 file changed, 18 insertions(+), 33 deletions(-) diff --git a/unix/configure b/unix/configure index 7bfc9eb..588f269 100644 --- a/unix/configure +++ b/unix/configure @@ -237,9 +237,8 @@ _EOF_ $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_OFF_T" -# Now we set the 64-bit file environment and check the size of off_t -# Added 11/4/2003 EG -# Revised 8/12/2004 EG +# LFS check borrowed from autotools sources +# lib/autoconf/specific.m4 echo Check for Large File Support cat > conftest.c << _EOF_ @@ -247,24 +246,22 @@ cat > conftest.c << _EOF_ # define _LARGEFILE64_SOURCE # define _FILE_OFFSET_BITS 64 /* select default interface as 64 bit */ # define _LARGE_FILES /* some OSes need this for 64-bit off_t */ + #include -#include -#include -#include -int main() + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () { - off_t offset; - struct stat s; - /* see if have 64-bit off_t */ - if (sizeof(offset) < 8) - return 1; - printf(" off_t is %d bytes\n", sizeof(off_t)); - /* see if have 64-bit stat */ - if (sizeof(s.st_size) < 8) { - printf(" s.st_size is %d bytes\n", sizeof(s.st_size)); - return 2; - } - return 3; + + ; + return 0; } _EOF_ # compile it @@ -272,22 +269,10 @@ $CC -o conftest conftest.c >/dev/null 2>/dev/null if [ $? -ne 0 ]; then echo -- no Large File Support else -# run it - ./conftest - r=$? - if [ $r -eq 1 ]; then - echo -- no Large File Support - no 64-bit off_t - elif [ $r -eq 2 ]; then - echo -- no Large File Support - no 64-bit stat - elif [ $r -eq 3 ]; then - echo -- yes we have Large File Support! - CFLAGS="${CFLAGS} -DLARGE_FILE_SUPPORT" - else - echo -- no Large File Support - conftest returned $r - fi + echo -- yes we have Large File Support! + CFLAGS="${CFLAGS} -DLARGE_FILE_SUPPORT" fi - # Check for wide char for Unicode support # Added 11/24/2005 EG -- 1.9.3 ================================================ FILE: package/zip/0007-timezone.c-needs-time.h-fixes-musl-compile.patch ================================================ From 68abba9fb2ed114ac35712756b1f7700a865c498 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Tue, 17 Dec 2019 21:25:01 +0100 Subject: [PATCH] timezone.c: needs time.h (fixes musl compile) Fixes: In file included from util.c:28: timezone.c: In function 'mktime': timezone.c:644:18: error: dereferencing pointer to incomplete type 'struct tm' save_isdst = tm->tm_isdst; timezone.c:661:11: warning: implicit declaration of function 'localtime'; did you mean 'dostime'? [-Wimplicit-function-declaration] ltm = localtime(&then); timezone.c:661:9: warning: assignment to 'struct tm *' from 'int' makes pointer from integer without a cast [-Wint-conversion] ltm = localtime(&then); Signed-off-by: Peter Seiderer --- timezone.c | 1 + 1 file changed, 1 insertion(+) diff --git a/timezone.c b/timezone.c index 485ec02..18aecbd 100644 --- a/timezone.c +++ b/timezone.c @@ -41,6 +41,7 @@ #include "timezone.h" #include #include +#include #ifdef IZTZ_DEFINESTDGLOBALS long timezone = 0; -- 2.24.0 ================================================ FILE: package/zip/0008-fix-musl-static-build.patch ================================================ fix musl static build Don't define NO_DIR if no directory library is needed Signed-off-by: Fabrice Fontaine diff -Nura zip30.orig/unix/configure zip30/unix/configure --- zip30.orig/unix/configure 2021-08-31 21:29:55.219967136 +0200 +++ zip30/unix/configure 2021-08-31 21:50:48.239280513 +0200 @@ -569,8 +569,8 @@ done if [ ${OPT} ]; then LFLAGS2="${LFLAGS2} ${OPT}" - else - CFLAGS="${CFLAGS} -DNO_DIR" + #else + # CFLAGS="${CFLAGS} -DNO_DIR" fi fi ================================================ FILE: package/zip/Config.in ================================================ config BR2_PACKAGE_ZIP bool "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 ================================================ FILE: package/zip/Config.in.host ================================================ 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 ================================================ FILE: package/zip/zip.hash ================================================ # Locally calculated from download (no sig, hash) sha256 f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369 zip30.tgz sha256 8ecd6c1bab449127eb665cef1561e73a8bce52e217375f6f466939e137b1e110 LICENSE ================================================ FILE: package/zip/zip.mk ================================================ ################################################################################ # # zip # ################################################################################ ZIP_VERSION = 3.0 # The version is really 3.0, but the tarball is named zip30.tgz ZIP_SOURCE = zip$(subst .,,$(ZIP_VERSION)).tgz ZIP_SITE = ftp://ftp.info-zip.org/pub/infozip/src ZIP_LICENSE = Info-ZIP ZIP_LICENSE_FILES = LICENSE ZIP_CPE_ID_VENDOR = info-zip_project ZIP_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_BZIP2),y) ZIP_DEPENDENCIES += bzip2 endif # Infozip's default CFLAGS. ZIP_CFLAGS = -I. -DUNIX # Disable the support of 16-bit UIDs/GIDs, the test in unix/configure was # removed since it can't work for cross-compilation. ZIP_CFLAGS += -DUIDGID_NOT_16BIT # infozip already defines _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE when # necessary, redefining it on the command line causes some warnings. ZIP_TARGET_CFLAGS = \ $(filter-out -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE,$(TARGET_CFLAGS)) define ZIP_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ CFLAGS="$(ZIP_TARGET_CFLAGS) $(ZIP_CFLAGS)" \ AS="$(TARGET_CC) -c" \ -f unix/Makefile generic endef define ZIP_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) -f unix/Makefile install \ prefix=$(TARGET_DIR)/usr endef define ZIP_INSTALLING_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) -f unix/Makefile install \ prefix=$(STAGING_DIR)/usr endef define HOST_ZIP_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) \ CFLAGS="$(HOST_CFLAGS) $(ZIP_CFLAGS)" \ AS="$(HOSTCC) -c" \ -f unix/Makefile generic endef define HOST_ZIP_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) -f unix/Makefile install \ prefix=$(HOST_DIR) endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/zisofs-tools/zisofs-tools.hash ================================================ # From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/c/cdrkit/cdrkit_1.1.11-3.dsc sha256 d1c030756ecc182defee9fe885638c1785d35a2c2a297b4604c0e0dcc78e47da cdrkit_1.1.11.orig.tar.gz # Locally computed sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 3rd-party/zisofs_tools/COPYING ================================================ FILE: package/zisofs-tools/zisofs-tools.mk ================================================ ################################################################################ # # zisofs-tools # ################################################################################ ZISOFS_TOOLS_VERSION = 1.1.11 ZISOFS_TOOLS_SOURCE = cdrkit_$(ZISOFS_TOOLS_VERSION).orig.tar.gz ZISOFS_TOOLS_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/c/cdrkit ZISOFS_TOOLS_LICENSE = GPL-2.0+ ZISOFS_TOOLS_LICENSE_FILES = 3rd-party/zisofs_tools/COPYING ZISOFS_TOOLS_SUBDIR = 3rd-party/zisofs_tools HOST_ZISOFS_TOOLS_DEPENDENCIES = host-zlib $(eval $(host-autotools-package)) ================================================ FILE: package/zlib/Config.in ================================================ config BR2_PACKAGE_ZLIB_NG_ARCH_SUPPORTS bool default y if BR2_arm default y if BR2_aarch64 default y if BR2_i386 default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le default y if BR2_s390x default y if BR2_x86_64 config BR2_PACKAGE_ZLIB bool "zlib support" help Select the desired Zlib library provider. if BR2_PACKAGE_ZLIB choice prompt "zlib variant" default BR2_PACKAGE_LIBZLIB help Select the desired Zlib library provider. config BR2_PACKAGE_LIBZLIB bool "zlib" select BR2_PACKAGE_HAS_ZLIB help Standard (de)compression library. Used by things like gzip and libpng. http://www.zlib.net config BR2_PACKAGE_ZLIB_NG bool "zlib-ng" depends on BR2_PACKAGE_ZLIB_NG_ARCH_SUPPORTS select BR2_PACKAGE_HAS_ZLIB help Zlib replacement with optimizations for "next generation" systems. https://github.com/zlib-ng/zlib-ng endchoice config BR2_PACKAGE_HAS_ZLIB bool config BR2_PACKAGE_PROVIDES_ZLIB string default "libzlib" if BR2_PACKAGE_LIBZLIB default "zlib-ng" if BR2_PACKAGE_ZLIB_NG endif # ensure libzlib is used for the host variant config BR2_PACKAGE_PROVIDES_HOST_ZLIB string default "host-libzlib" ================================================ FILE: package/zlib/zlib.mk ================================================ ################################################################################ # # zlib # ################################################################################ $(eval $(virtual-package)) $(eval $(host-virtual-package)) ================================================ FILE: package/zlib-ng/zlib-ng.hash ================================================ # Locally calculated sha256 379723c0c954679a50d1d7df43084e2194dc51ecbc9987c889cb129d1f6734bc zlib-ng-1.9.9-b1.tar.gz sha256 d3c80be055d94d798eaa786116e84fa0b010bc11420b5d2060d978ea77845436 LICENSE.md ================================================ FILE: package/zlib-ng/zlib-ng.mk ================================================ ################################################################################ # # zlib-ng # ################################################################################ ZLIB_NG_VERSION = 1.9.9-b1 ZLIB_NG_SITE = $(call github,zlib-ng,zlib-ng,$(ZLIB_NG_VERSION)) ZLIB_NG_LICENSE = Zlib ZLIB_NG_LICENSE_FILES = LICENSE.md ZLIB_NG_INSTALL_STAGING = YES ZLIB_NG_PROVIDES = zlib # Build with zlib compatible API, gzFile support and optimizations on ZLIB_NG_CONF_OPTS += \ -DWITH_GZFILEOP=1 \ -DWITH_OPTIM=1 \ -DZLIB_COMPAT=1 \ -DZLIB_ENABLE_TESTS=OFF # Enable NEON and ACLE on ARM ifeq ($(BR2_arm),y) ZLIB_NG_CONF_OPTS += -DWITH_ACLE=1 -DWITH_NEON=1 endif $(eval $(cmake-package)) ================================================ FILE: package/zlog/Config.in ================================================ config BR2_PACKAGE_ZLOG bool "zlog" depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS help zlog is a reliable, high-performance, thread safe, flexible, clear-model, pure C logging library. https://github.com/HardySimpson/zlog comment "zlog needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS ================================================ FILE: package/zlog/zlog.hash ================================================ # Locally computed sha256 00037ab8d52772a95d645f1dcfd2c292b7cea326b54e63e219a5b7fdcb7e6508 zlog-1.2.15.tar.gz sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING ================================================ FILE: package/zlog/zlog.mk ================================================ ################################################################################ # # zlog # ################################################################################ ZLOG_VERSION = 1.2.15 ZLOG_SITE = $(call github,HardySimpson,zlog,$(ZLOG_VERSION)) ZLOG_LICENSE = LGPL-2.1 ZLOG_LICENSE_FILES = COPYING ZLOG_INSTALL_STAGING = YES define ZLOG_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS)" \ -C $(@D) all endef define ZLOG_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) PREFIX=$(STAGING_DIR)/usr -C $(@D) install endef define ZLOG_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) PREFIX=$(TARGET_DIR)/usr -C $(@D) install endef $(eval $(generic-package)) ================================================ FILE: package/zmqpp/0001-Allow-building-shared-or-static-library-only.patch ================================================ From 93005632eca13d8eda409f6e9496fd5dd69e75b0 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 4 May 2018 18:38:31 +0200 Subject: [PATCH] Allow building shared or static library only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Patchs retrieved from: - https://git.buildroot.net/buildroot/tree/package/zmqpp/0001-Allow-building-shared-or-static-library-only.patch - https://git.buildroot.net/buildroot/tree/package/zmqpp/0002-Install-static-library-for-static-builds.patch Both patches have been merged in a single one and slightly updated to keep default behavior of building and installing static library (BUILD_STATIC is set to yes by default) [Upstream status: merged (https://github.com/zeromq/zmqpp/pull/218)] Signed-off-by: Jörg Krause Signed-off-by: Gustavo Zacarias Signed-off-by: Fabrice Fontaine --- Makefile | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 689acaa..e43054c 100644 --- a/Makefile +++ b/Makefile @@ -81,6 +81,9 @@ ifeq ($(UNAME_S),Darwin) endif +BUILD_SHARED ?= yes +BUILD_STATIC ?= yes + CONFIG_FLAGS = ifeq ($(CONFIG),debug) CONFIG_FLAGS = -g -fno-inline -ftemplate-depth-1000 @@ -95,13 +98,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++11 -pipe -Wall -fPIC \ +COMMON_FLAGS = -MMD -std=c++11 -pipe -Wall \ -DBUILD_ENV=$(CONFIG) \ -DBUILD_DATESTAMP='$(APP_DATESTAMP)' \ -DBUILD_LIBRARY_NAME='"$(LIBRARY_NAME)"' \ -DBUILD_CLIENT_NAME='"$(CLIENT_TARGET)"' \ -I$(SRC_PATH) $(CUSTOM_INCLUDE_PATH) +ifeq ($(BUILD_SHARED),yes) +COMMON_FLAGS += -fPIC +LIBRARY_TARGETS += $(LIBRARY_SHARED) +endif + +ifeq ($(BUILD_STATIC),yes) +LIBRARY_TARGETS += $(LIBRARY_ARCHIVE) +endif + COMMON_LIBS = -lzmq LIBRARY_LIBS = @@ -150,11 +162,15 @@ install: mkdir -p $(LIBDIR) mkdir -p $(PKGCONFIGDIR) install -m 644 $(ALL_LIBRARY_INCLUDES) $(INCLUDEDIR)/$(LIBRARY_DIR) - install -m 755 $(BUILD_PATH)/$(LIBRARY_VERSION_SHARED) $(LIBDIR)/$(LIBRARY_FULL_VERSION_SHARED) - install -m 755 $(BUILD_PATH)/$(LIBRARY_ARCHIVE) $(LIBDIR)/$(LIBRARY_ARCHIVE) install -m 755 $(BUILD_PATH)/$(PKGCONFIG_FILE) $(PKGCONFIGDIR)/$(PKGCONFIG_FILE) +ifeq ($(BUILD_SHARED),yes) + install -m 755 $(BUILD_PATH)/$(LIBRARY_VERSION_SHARED) $(LIBDIR)/$(LIBRARY_FULL_VERSION_SHARED) 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) +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" @@ -176,7 +192,7 @@ clean: client: $(CLIENT_TARGET) -library: $(LIBRARY_SHARED) $(LIBRARY_ARCHIVE) +library: $(LIBRARY_TARGETS) # # BUILD Targets -- 2.14.1 ================================================ FILE: package/zmqpp/Config.in ================================================ config BR2_PACKAGE_ZMQPP bool "zmqpp" # c++1x support depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr select BR2_PACKAGE_ZEROMQ help C++ binding for zeromq (ZeroMQ, 0MQ, zmq). This C++ binding is a 'high-level' library that hides most of the C-style interface core zeromq provides. http://github.com/benjamg/zmqpp comment "zmqpp needs a toolchain w/ C++, threads, gcc >= 4.7" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 comment "zmqpp needs exception_ptr" depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 if BR2_PACKAGE_ZMQPP config BR2_PACKAGE_ZMQPP_CLIENT bool "zmqpp client" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS # boost depends on BR2_USE_WCHAR # boost select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS help Build and install the zmqpp client, a command line tool that can be used to listen or send to zeromq sockets. comment "zmqpp client needs a toolchain w/ dynamic library, threads, wchar" depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_USE_WCHAR endif ================================================ FILE: package/zmqpp/zmqpp.hash ================================================ # Locally calculated sha256 c1d4587df3562f73849d9e5f8c932ca7dcfc7d8bec31f62d7f35073ef81f4d29 zmqpp-4.2.0.tar.gz sha256 fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85 LICENSE ================================================ FILE: package/zmqpp/zmqpp.mk ================================================ ################################################################################ # # zmqpp # ################################################################################ ZMQPP_VERSION = 4.2.0 ZMQPP_SITE = $(call github,zeromq,zmqpp,$(ZMQPP_VERSION)) ZMQPP_INSTALL_STAGING = YES ZMQPP_DEPENDENCIES = zeromq ZMQPP_LICENSE = MPL-2.0 ZMQPP_LICENSE_FILES = LICENSE ZMQPP_MAKE_OPTS = LD="$(TARGET_CXX)" BUILD_PATH=./build PREFIX=/usr ZMQPP_LDFLAGS = $(TARGET_LDFLAGS) -lpthread # gcc bug internal compiler error: in merge_overlapping_regs, at # regrename.c:304. This bug is fixed since gcc 6. # By setting CONFIG to empty, all optimizations such as -funroll-loops # -ffast-math -finline-functions -fomit-frame-pointer are disabled, # so only set CONFIG for the non-affected cases. ifneq ($(BR2_or1k):$(BR2_TOOLCHAIN_GCC_AT_LEAST_6),y:) ZMQPP_CONFIG = $(if $(BR2_ENABLE_RUNTIME_DEBUG),buildroot,release) endif ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) ZMQPP_LDFLAGS += -latomic endif ifeq ($(BR2_PACKAGE_ZMQPP_CLIENT),y) ZMQPP_DEPENDENCIES += boost endif ifeq ($(BR2_STATIC_LIBS),y) ZMQPP_MAKE_OPTS += BUILD_STATIC=yes BUILD_SHARED=no else ifeq ($(BR2_SHARED_STATIC_LIBS),y) ZMQPP_MAKE_OPTS += BUILD_STATIC=yes BUILD_SHARED=yes else ifeq ($(BR2_SHARED_LIBS),y) ZMQPP_MAKE_OPTS += BUILD_STATIC=no BUILD_SHARED=yes endif define ZMQPP_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ CONFIG=$(ZMQPP_CONFIG) LDFLAGS="$(ZMQPP_LDFLAGS)" \ $(ZMQPP_MAKE_OPTS) $(if $(BR2_PACKAGE_ZMQPP_CLIENT),client,library) -C $(@D) endef define ZMQPP_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/include/zmqpp $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ $(ZMQPP_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install -C $(@D) endef define ZMQPP_INSTALL_STAGING_CMDS $(INSTALL) -m 0755 -d $(STAGING_DIR)/usr/include/zmqpp $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ $(ZMQPP_MAKE_OPTS) DESTDIR=$(STAGING_DIR) install -C $(@D) endef $(eval $(generic-package)) ================================================ FILE: package/znc/Config.in ================================================ config BR2_PACKAGE_ZNC bool "znc" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_LIBOPENSSL_ENABLE_BLOWFISH if BR2_PACKAGE_LIBOPENSSL help Advanced IRC bouncer http://www.znc.in comment "znc needs a toolchain w/ C++, dynamic library, gcc >= 4.8, threads" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU ================================================ FILE: package/znc/znc.hash ================================================ # Locally calculated sha256 ff238aae3f2ae0e44e683c4aee17dc8e4fdd261ca9379d83b48a7d422488de0d znc-1.8.2.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE ================================================ FILE: package/znc/znc.mk ================================================ ################################################################################ # # znc # ################################################################################ ZNC_VERSION = 1.8.2 ZNC_SITE = http://znc.in/releases/archive ZNC_LICENSE = Apache-2.0 ZNC_LICENSE_FILES = LICENSE ZNC_CPE_ID_VENDOR = znc ZNC_DEPENDENCIES = host-pkgconf ZNC_CONF_OPTS = -DWANT_CYRUS=OFF -DWANT_I18N=OFF -DWANT_PERL=OFF ifeq ($(BR2_PACKAGE_ICU),y) ZNC_DEPENDENCIES += icu ZNC_CONF_OPTS += -DWANT_ICU=ON else ZNC_CONF_OPTS += -DWANT_ICU=OFF endif ifeq ($(BR2_PACKAGE_OPENSSL),y) ZNC_DEPENDENCIES += openssl ZNC_CONF_OPTS += -DWANT_OPENSSL=ON else ZNC_CONF_OPTS += -DWANT_OPENSSL=OFF endif ifeq ($(BR2_PACKAGE_ZLIB),y) ZNC_DEPENDENCIES += zlib ZNC_CONF_OPTS += -DWANT_ZLIB=ON else ZNC_CONF_OPTS += -DWANT_ZLIB=OFF endif # python support depends on icu ifeq ($(BR2_PACKAGE_ICU)$(BR2_PACKAGE_PYTHON3),yy) ZNC_DEPENDENCIES += python3 host-swig ZNC_CONF_OPTS += \ -DWANT_PYTHON=ON \ -DWANT_PYTHON_VERSION=python3 \ -DWANT_SWIG=ON else ZNC_CONF_OPTS += \ -DWANT_PYTHON=OFF \ -DWANT_SWIG=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/zsh/Config.in ================================================ config BR2_PACKAGE_ZSH bool "zsh" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NCURSES help zsh is a shell designed for interactive use, although it is also a powerful scripting language. Many of the useful features of bash, ksh, and tcsh were incorporated into zsh; many original features were added. http://www.zsh.org/ ================================================ FILE: package/zsh/zsh.hash ================================================ # From http://www.zsh.org/pub/MD5SUM md5 e02a5428620b3dd268800c7843b3dd4d zsh-5.8.tar.xz # Calculated based on the hash above and after checking signature # http://www.zsh.org/pub/zsh-5.8.tar.xz.asc sha256 dcc4b54cc5565670a65581760261c163d720991f0d06486da61f8d839b52de27 zsh-5.8.tar.xz # Locally calculated sha256 d06fdf3ef9b1ec69d6b9e170b0a9516fbad3523261ff1668bde3bfea6e0ef5f5 LICENCE ================================================ FILE: package/zsh/zsh.mk ================================================ ################################################################################ # # zsh # ################################################################################ ZSH_VERSION = 5.8 ZSH_SITE = http://www.zsh.org/pub ZSH_SOURCE = zsh-$(ZSH_VERSION).tar.xz ZSH_DEPENDENCIES = ncurses ZSH_CONF_OPTS = --bindir=/bin ZSH_CONF_ENV = zsh_cv_sys_nis=no zsh_cv_sys_nis_plus=no ZSH_LICENSE = MIT-like ZSH_LICENSE_FILES = LICENCE ZSH_CPE_ID_VENDOR = zsh ifeq ($(BR2_PACKAGE_GDBM),y) ZSH_CONF_OPTS += --enable-gdbm ZSH_DEPENDENCIES += gdbm else ZSH_CONF_OPTS += --disable-gdbm endif ifeq ($(BR2_PACKAGE_LIBCAP),y) ZSH_CONF_OPTS += --enable-cap ZSH_DEPENDENCIES += libcap else ZSH_CONF_OPTS += --disable-cap endif ifeq ($(BR2_PACKAGE_PCRE),y) ZSH_CONF_OPTS += --enable-pcre ZSH_CONF_ENV += ac_cv_prog_PCRECONF=$(STAGING_DIR)/usr/bin/pcre-config ZSH_DEPENDENCIES += pcre else ZSH_CONF_OPTS += --disable-pcre endif # Add /bin/zsh to /etc/shells otherwise some login tools like dropbear # can reject the user connection. See man shells. define ZSH_ADD_ZSH_TO_SHELLS grep -qsE '^/bin/zsh$$' $(TARGET_DIR)/etc/shells \ || echo "/bin/zsh" >> $(TARGET_DIR)/etc/shells endef ZSH_TARGET_FINALIZE_HOOKS += ZSH_ADD_ZSH_TO_SHELLS # Remove versioned zsh-x.y.z binary taking up space define ZSH_TARGET_INSTALL_FIXUPS rm -f $(TARGET_DIR)/bin/zsh-$(ZSH_VERSION) endef ZSH_POST_INSTALL_TARGET_HOOKS += ZSH_TARGET_INSTALL_FIXUPS $(eval $(autotools-package)) ================================================ FILE: package/zstd/Config.in ================================================ config BR2_PACKAGE_ZSTD bool "zstd" help Zstandard, or zstd as short version, is a fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level and better compression ratios The selection of other packages will enable some features: xz, lz4 and/or zlib will enable support for corresponding compression formats https://facebook.github.io/zstd ================================================ FILE: package/zstd/Config.in.host ================================================ config BR2_PACKAGE_HOST_ZSTD bool "host zstd" help Zstandard, or zstd as short version, is a fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level and better compression ratios https://facebook.github.io/zstd ================================================ FILE: package/zstd/zstd.hash ================================================ # From https://github.com/facebook/zstd/releases/download/v1.5.0/zstd-1.5.0.tar.gz.sha256 sha256 5194fbfa781fcf45b98c5e849651aa7b3b0a008c6b72d4a0db760f3002291e94 zstd-1.5.0.tar.gz # License files (locally computed) sha256 2c1a7fa704df8f3a606f6fc010b8b5aaebf403f3aeec339a12048f1ba7331a0b LICENSE sha256 f9c375a1be4a41f7b70301dd83c91cb89e41567478859b77eef375a52d782505 COPYING ================================================ FILE: package/zstd/zstd.mk ================================================ ################################################################################ # # zstd # ################################################################################ ZSTD_VERSION = 1.5.0 ZSTD_SITE = https://github.com/facebook/zstd/releases/download/v$(ZSTD_VERSION) ZSTD_INSTALL_STAGING = YES ZSTD_LICENSE = BSD-3-Clause or GPL-2.0 ZSTD_LICENSE_FILES = LICENSE COPYING ZSTD_CPE_ID_VENDOR = facebook ZSTD_CPE_ID_PRODUCT = zstandard ZSTD_OPTS += PREFIX=/usr ZSTD_OPTS += ZSTD_LEGACY_SUPPORT=0 ifeq ($(BR2_PACKAGE_ZLIB),y) ZSTD_DEPENDENCIES += zlib ZSTD_OPTS += HAVE_ZLIB=1 else ZSTD_OPTS += HAVE_ZLIB=0 endif ifeq ($(BR2_PACKAGE_XZ),y) ZSTD_DEPENDENCIES += xz ZSTD_OPTS += HAVE_LZMA=1 else ZSTD_OPTS += HAVE_LZMA=0 endif ifeq ($(BR2_PACKAGE_LZ4),y) ZSTD_DEPENDENCIES += lz4 ZSTD_OPTS += HAVE_LZ4=1 else ZSTD_OPTS += HAVE_LZ4=0 endif # zstd will append -O3 after $(CFLAGS), use MOREFLAGS to override again ZSTD_OPTS += MOREFLAGS="$(TARGET_OPTIMIZATION)" ifeq ($(BR2_STATIC_LIBS),y) ZSTD_BUILD_LIBS = libzstd.a ZSTD_INSTALL_LIBS = install-static else ifeq ($(BR2_SHARED_LIBS),y) ZSTD_BUILD_LIBS = lib ZSTD_INSTALL_LIBS = install-shared else ZSTD_BUILD_LIBS = lib ZSTD_INSTALL_LIBS = install-static install-shared endif # prefer zstd-dll unless no library is available ifeq ($(BR2_STATIC_LIBS),y) ZSTD_BUILD_PROG_TARGET = zstd-release else ZSTD_BUILD_PROG_TARGET = zstd-dll endif # The HAVE_THREAD flag is read by the 'programs' makefile but not by the 'lib' # one. Building a multi-threaded binary with a static library (which defaults # to single-threaded) gives a runtime error when compressing files. # The 'lib' makefile provides specific '%-mt' and '%-nomt' targets for this # purpose. ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) ZSTD_OPTS += HAVE_THREAD=1 ZSTD_BUILD_LIBS := $(addsuffix -mt,$(ZSTD_BUILD_LIBS)) else ZSTD_OPTS += HAVE_THREAD=0 ZSTD_BUILD_LIBS := $(addsuffix -nomt,$(ZSTD_BUILD_LIBS)) endif # check-package disable OverriddenVariable - override intended ZSTD_BUILD_LIBS := $(addsuffix -release,$(ZSTD_BUILD_LIBS)) define ZSTD_BUILD_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) $(ZSTD_OPTS) \ -C $(@D)/lib $(ZSTD_BUILD_LIBS) libzstd.pc $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) $(ZSTD_OPTS) \ -C $(@D)/programs $(ZSTD_BUILD_PROG_TARGET) endef define ZSTD_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) $(ZSTD_OPTS) \ DESTDIR=$(STAGING_DIR) PREFIX=/usr -C $(@D)/lib \ install-pc install-includes $(ZSTD_INSTALL_LIBS) endef define ZSTD_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) $(ZSTD_OPTS) \ DESTDIR=$(TARGET_DIR) -C $(@D)/programs install $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) $(ZSTD_OPTS) \ DESTDIR=$(TARGET_DIR) -C $(@D)/lib $(ZSTD_INSTALL_LIBS) endef HOST_ZSTD_OPTS += PREFIX=$(HOST_DIR) define HOST_ZSTD_BUILD_CMDS $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) $(HOST_ZSTD_OPTS) \ -C $(@D) zstd-release lib-release endef define HOST_ZSTD_INSTALL_CMDS $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) $(HOST_ZSTD_OPTS) \ -C $(@D) install endef $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: package/zxing-cpp/0001-Link-library-with-OpenCV-make-libs-private-not-exported-to-the-users.patch ================================================ From 9e5dfa57f3b998bc3049bfa893b20e81dea656df Mon Sep 17 00:00:00 2001 From: Yuri Date: Sat, 20 Apr 2019 07:28:26 -0700 Subject: [PATCH] Link library with OpenCV, not only the executable, make libs PRIVATE. Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/glassechidna/zxing-cpp/pull/86] --- CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 738f4e1..efe3aee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,10 +60,12 @@ include_directories(core/src) add_library(libzxing ${LIBZXING_FILES}) set_target_properties(libzxing PROPERTIES PREFIX "") +set(libzxing_LIBS "") + find_package(Iconv) if(ICONV_FOUND) include_directories(${ICONV_INCLUDE_DIR}) - target_link_libraries(libzxing ${ICONV_LIBRARIES}) + set(libzxing_LIBS ${libzxing_LIBS} ${ICONV_LIBRARIES}) else() add_definitions(-DNO_ICONV=1) endif() @@ -75,9 +77,12 @@ if(OpenCV_FOUND) "./opencv-cli/src/*.h" ) add_executable(zxing-cv ${OPENCV_ZXING_FILES}) + set(libzxing_LIBS ${libzxing_LIBS} ${OpenCV_LIBRARIES}) target_link_libraries(zxing-cv libzxing ${OpenCV_LIBRARIES}) endif() +target_link_libraries(libzxing PRIVATE ${libzxing_LIBS}) + # Add cli executable. file(GLOB_RECURSE ZXING_FILES "./cli/src/*.cpp" ================================================ FILE: package/zxing-cpp/0002-CMakeLists-txt-add-BUILD_OPENCV-option.patch ================================================ From fe740316af970f57ec511cdeafb512510e4842a9 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 9 Nov 2019 17:21:13 +0100 Subject: [PATCH] CMakeLists.txt: add BUILD_OPENCV option Add BUILD_OPENCV option to allow the user to disable OpenCV. It is especially useful as opencv library can be built without highgui support Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/glassechidna/zxing-cpp/pull/90] --- CMakeLists.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 738f4e1..12913cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.0) project(zxing) option(BUILD_TESTING "Enable generation of test targets" OFF) +option(BUILD_OPENCV "Enable OpenCV classes and OpenCV cli executable" ON) set(CMAKE_LIBRARY_PATH /opt/local/lib ${CMAKE_LIBRARY_PATH}) @@ -44,8 +45,10 @@ else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") endif() -# OpenCV classes -find_package(OpenCV) +if (BUILD_OPENCV) + # OpenCV classes + find_package(OpenCV) +endif() if(OpenCV_FOUND) list(APPEND LIBZXING_FILES opencv/src/zxing/MatSource.cpp ================================================ FILE: package/zxing-cpp/Config.in ================================================ comment "zxing-cpp needs a toolchain w/ C++, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS config BR2_PACKAGE_ZXING_CPP bool "zxing-cpp" depends on !BR2_STATIC_LIBS depends on BR2_INSTALL_LIBSTDCPP help ZXing-cpp (pronounced "zebra crossing") is an open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. This compiles the C++ port. https://github.com/glassechidna/zxing-cpp ================================================ FILE: package/zxing-cpp/zxing-cpp.hash ================================================ # Locally calculated sha256 4c2b8601d0e3377143c1a0bbab220146af9fa5a5e29e8fbef42862fe3d38f8e6 zxing-cpp-e0e40ddec63f38405aca5c8c1ff60b85ec8b1f10.tar.gz # License files sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 COPYING ================================================ FILE: package/zxing-cpp/zxing-cpp.mk ================================================ ################################################################################ # # zxing-cpp # ################################################################################ ZXING_CPP_VERSION = e0e40ddec63f38405aca5c8c1ff60b85ec8b1f10 ZXING_CPP_SITE = $(call github,glassechidna,zxing-cpp,$(ZXING_CPP_VERSION)) ZXING_CPP_LICENSE = Apache-2.0 ZXING_CPP_LICENSE_FILES = COPYING ZXING_CPP_INSTALL_STAGING = YES ZXING_CPP_SUPPORTS_IN_SOURCE_BUILD = NO ZXING_CPP_CONF_OPTS = -DBUILD_TESTING=OFF ifeq ($(BR2_PACKAGE_LIBICONV),y) ZXING_CPP_DEPENDENCIES += libiconv endif ifeq ($(BR2_PACKAGE_OPENCV3_LIB_HIGHGUI),y) ZXING_CPP_DEPENDENCIES += opencv3 ZXING_CPP_CONF_OPTS += -DBUILD_OPENCV=ON else ZXING_CPP_CONF_OPTS += -DBUILD_OPENCV=OFF endif $(eval $(cmake-package)) ================================================ FILE: package/zynq-boot-bin/zynq-boot-bin.hash ================================================ # From https://raw.githubusercontent.com/Xilinx/u-boot-xlnx sha1 940331ee02b0007099effa61e382fe7ea4174054 zynq-boot-bin.py ================================================ FILE: package/zynq-boot-bin/zynq-boot-bin.mk ================================================ ################################################################################ # # zynq-boot-bin # ################################################################################ ZYNQ_BOOT_BIN_VERSION = 2015.1 ZYNQ_BOOT_BIN_SOURCE = zynq-boot-bin.py ZYNQ_BOOT_BIN_SITE = https://raw.githubusercontent.com/Xilinx/u-boot-xlnx/xilinx-v$(ZYNQ_BOOT_BIN_VERSION)/tools ZYNQ_BOOT_BIN_LICENSE = GPL-3.0+ HOST_ZYNQ_BOOT_BIN_DEPENDENCIES = host-python define HOST_ZYNQ_BOOT_BIN_EXTRACT_CMDS cp $(HOST_ZYNQ_BOOT_BIN_DL_DIR)/$(ZYNQ_BOOT_BIN_SOURCE) $(@D) endef define HOST_ZYNQ_BOOT_BIN_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/$(ZYNQ_BOOT_BIN_SOURCE) $(HOST_DIR)/bin/$(ZYNQ_BOOT_BIN_SOURCE) endef $(eval $(host-generic-package)) ================================================ FILE: package/zyre/Config.in ================================================ config BR2_PACKAGE_ZYRE bool "zyre" depends on BR2_INSTALL_LIBSTDCPP # zeromq depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq depends on BR2_USE_MMU # czmq select BR2_PACKAGE_CZMQ select BR2_PACKAGE_ZEROMQ help An open-source framework for proximity-based peer-to-peer applications. http://zyre.org comment "zyre needs a toolchain w/ C++, threads" depends on BR2_USE_MMU depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS) ================================================ FILE: package/zyre/zyre.hash ================================================ # Locally computed sha256 624d379dc880025144f58d3a7dc35ea1be4a57ba4e2a58c98ec15a60891be12d zyre-2.0.1.tar.gz sha256 1f256ecad192880510e84ad60474eab7589218784b9a50bc7ceee34c2b91f1d5 LICENSE ================================================ FILE: package/zyre/zyre.mk ================================================ ################################################################################ # # zyre # ################################################################################ ZYRE_VERSION = 2.0.1 ZYRE_SITE = $(call github,zeromq,zyre,v$(ZYRE_VERSION)) ZYRE_LICENSE = MPL-2.0 ZYRE_LICENSE_FILES = LICENSE ZYRE_INSTALL_STAGING = YES ZYRE_DEPENDENCIES = czmq zeromq host-pkgconf ZYRE_AUTORECONF = YES ZYRE_CONF_OPTS = --without-docs define ZYRE_CREATE_CONFIG_DIR mkdir -p $(@D)/config endef ZYRE_POST_PATCH_HOOKS += ZYRE_CREATE_CONFIG_DIR $(eval $(autotools-package)) ================================================ FILE: package/zziplib/Config.in ================================================ config BR2_PACKAGE_ZZIPLIB bool "zziplib" select BR2_PACKAGE_ZLIB help The zziplib provides read access to zipped files in a zip-archive, using compression based solely on free algorithms provided by zlib. It also provides a functionality to overlay the archive filesystem with the filesystem of the operating system environment. http://zziplib.sourceforge.net ================================================ FILE: package/zziplib/zziplib.hash ================================================ # sha256 locally computed sha256 93ef44bf1f1ea24fc66080426a469df82fa631d13ca3b2e4abaeab89538518dc zziplib-0.13.72.tar.gz sha256 94b03f1a60a7fd5007149530626a895a6ef5a8b9342abfd56860c5f3956f5d23 docs/COPYING.LIB sha256 c2aa7d58cebd24cb877bbf11d6b13a4bb7cd08b9d7db5d3037ca06c46bf4cfd8 docs/COPYING.MPL sha256 1c6da11efe8c43ee853fe5b21501dd72b81831ae84d58ea376bddc0620a5c361 docs/copying.htm ================================================ FILE: package/zziplib/zziplib.mk ================================================ ################################################################################ # # zziplib # ################################################################################ ZZIPLIB_VERSION = 0.13.72 ZZIPLIB_SITE = $(call github,gdraheim,zziplib,v$(ZZIPLIB_VERSION)) ZZIPLIB_LICENSE = LGPL-2.0+ or MPL-1.1 ZZIPLIB_LICENSE_FILES = docs/COPYING.LIB docs/COPYING.MPL docs/copying.htm ZZIPLIB_CPE_ID_VENDOR = zziplib_project ZZIPLIB_INSTALL_STAGING = YES ZZIPLIB_CONF_OPTS += \ -DZZIPDOCS=OFF \ -DZZIPTEST=OFF ZZIPLIB_DEPENDENCIES = host-pkgconf zlib define ZZIPLIB_POST_EXTRACT_FIXUP rm $(@D)/GNUmakefile endef ZZIPLIB_POST_EXTRACT_HOOKS += ZZIPLIB_POST_EXTRACT_FIXUP ifeq ($(BR2_PACKAGE_SDL2),y) ZZIPLIB_CONF_OPTS += -DZZIPSDL=ON ZZIPLIB_DEPENDENCIES += sdl2 else ZZIPLIB_CONF_OPTS += -DZZIPSDL=OFF endif $(eval $(cmake-package)) ================================================ FILE: support/config-fragments/autobuild/andes-nds32.config ================================================ BR2_nds32=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_ANDES_NDS32=y ================================================ FILE: support/config-fragments/autobuild/arm-aarch64.config ================================================ BR2_aarch64=y BR2_cortex_a72=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64=y ================================================ FILE: support/config-fragments/autobuild/bootlin-aarch64-glibc.config ================================================ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-arcle-hs38-uclibc.config ================================================ BR2_arcle=y BR2_archs38=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-armv5-uclibc.config ================================================ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-armv7-glibc.config ================================================ BR2_arm=y BR2_cortex_a9=y BR2_ARM_ENABLE_VFP=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_GLIBC_BLEEDING_EDGE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-armv7-musl.config ================================================ BR2_arm=y BR2_cortex_a9=y BR2_ARM_ENABLE_VFP=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_MUSL_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-armv7m-uclibc.config ================================================ BR2_arm=y BR2_cortex_m4=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7M_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-m68k-5208-uclibc.config ================================================ BR2_m68k=y BR2_m68k_cf5208=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_COLDFIRE_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-m68k-68040-uclibc.config ================================================ BR2_m68k=y BR2_m68k_68040=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_68XXX_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-microblazeel-uclibc.config ================================================ BR2_microblazeel=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-mipsel-uclibc.config ================================================ BR2_mipsel=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-mipsel32r6-glibc.config ================================================ BR2_mipsel=y BR2_mips_32r6=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_GLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-nios2-glibc.config ================================================ BR2_nios2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_NIOS2_GLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-openrisc-uclibc.config ================================================ BR2_or1k=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-powerpc-e500mc-uclibc.config ================================================ BR2_powerpc=y BR2_powerpc_e500mc=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-powerpc64le-power8-glibc.config ================================================ BR2_powerpc64le=y BR2_powerpc_power8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_GLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-riscv32-glibc.config ================================================ BR2_riscv=y BR2_RISCV_32=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV32_ILP32D_GLIBC_BLEEDING_EDGE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-riscv64-glibc.config ================================================ BR2_riscv=y BR2_RISCV_ABI_LP64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_GLIBC_BLEEDING_EDGE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-riscv64-musl.config ================================================ BR2_riscv=y BR2_RISCV_ABI_LP64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_MUSL_BLEEDING_EDGE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-sh4-uclibc.config ================================================ BR2_sh=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-sparc-uclibc.config ================================================ BR2_sparc=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARCV8_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-sparc64-glibc.config ================================================ BR2_sparc64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARC64_GLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-x86-64-glibc.config ================================================ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_BLEEDING_EDGE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-x86-64-musl.config ================================================ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_MUSL_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-x86-64-uclibc.config ================================================ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/bootlin-xtensa-uclibc.config ================================================ BR2_xtensa=y BR2_XTENSA_CUSTOM=y BR2_XTENSA_LITTLE_ENDIAN=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_XTENSA_LX60_UCLIBC_STABLE=y ================================================ FILE: support/config-fragments/autobuild/br-arc-full-internal.config ================================================ BR2_arcle=y BR2_TOOLCHAIN_BUILDROOT_LOCALE=y BR2_TOOLCHAIN_BUILDROOT_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-arc-internal-glibc.config ================================================ BR2_arcle=y BR2_archs38=y BR2_TOOLCHAIN_BUILDROOT_GLIBC=y BR2_TOOLCHAIN_BUILDROOT_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-arm-basic.config ================================================ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-basic-2020.11.2.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_9=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_9=y # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set ================================================ FILE: support/config-fragments/autobuild/br-arm-full-nothread.config ================================================ BR2_arm=y BR2_arm1176jzf_s=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm11-full-nothread-2020.11.2.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_9=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_9=y BR2_TOOLCHAIN_EXTERNAL_LOCALE=y # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS is not set BR2_TOOLCHAIN_EXTERNAL_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-arm-full-static.config ================================================ BR2_arm=y BR2_STATIC_LIBS=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-static-2020.11.2.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_9=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_4=y BR2_TOOLCHAIN_EXTERNAL_LOCALE=y # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set BR2_TOOLCHAIN_EXTERNAL_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-arm-internal-full.config ================================================ BR2_arm=y BR2_ARM_EABI=y BR2_TOOLCHAIN_BUILDROOT_LOCALE=y BR2_TOOLCHAIN_BUILDROOT_WCHAR=y BR2_TOOLCHAIN_BUILDROOT_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-arm-internal-glibc.config ================================================ BR2_arm=y BR2_cortex_a8=y BR2_TOOLCHAIN_BUILDROOT_GLIBC=y BR2_BINUTILS_VERSION_2_36_X=y BR2_GCC_VERSION_11_X=y BR2_TOOLCHAIN_BUILDROOT_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-arm-internal-musl.config ================================================ BR2_arm=y BR2_cortex_a8=y BR2_TOOLCHAIN_BUILDROOT_MUSL=y BR2_TOOLCHAIN_BUILDROOT_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-i386-pentium-mmx-musl.config ================================================ BR2_x86_pentium_mmx=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.net/toolchains/tarballs/br-i386-pentium-mmx-musl-2020.11.2.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_9=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y # BR2_TOOLCHAIN_EXTERNAL_HAS_SSP is not set BR2_TOOLCHAIN_EXTERNAL_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-i386-pentium4-full.config ================================================ BR2_x86_pentium4=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-i386-pentium4-full-2020.11.2.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_9=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_4=y BR2_TOOLCHAIN_EXTERNAL_LOCALE=y # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set BR2_TOOLCHAIN_EXTERNAL_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-microblazeel-full-internal.config ================================================ BR2_microblazeel=y ================================================ FILE: support/config-fragments/autobuild/br-mips64-n64-full.config ================================================ BR2_mips64el=y BR2_MIPS_NABI64=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-mips64-n64-full-2020.11.2.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_8=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_9=y BR2_TOOLCHAIN_EXTERNAL_LOCALE=y BR2_TOOLCHAIN_EXTERNAL_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-mips64r6-el-hf-glibc.config ================================================ BR2_mips64el=y BR2_mips_64r6=y BR2_MIPS_NABI64=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-mips64r6-n64-el-hf-2020.11.2.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_9=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_9=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y BR2_TOOLCHAIN_EXTERNAL_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-powerpc-603e-basic-cpp.config ================================================ BR2_powerpc=y BR2_powerpc_603e=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-powerpc-603e-basic-cpp-2020.11.2.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_9=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_9=y # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set BR2_TOOLCHAIN_EXTERNAL_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-powerpc-internal-full.config ================================================ BR2_powerpc=y BR2_TOOLCHAIN_BUILDROOT_LOCALE=y BR2_TOOLCHAIN_BUILDROOT_WCHAR=y BR2_TOOLCHAIN_BUILDROOT_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-powerpc64-power7-glibc.config ================================================ BR2_powerpc64=y BR2_powerpc_power7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.net/toolchains/tarballs/br-powerpc64-power7-glibc-2020.11.2.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_9=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_9=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y BR2_TOOLCHAIN_EXTERNAL_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-riscv64-full-internal.config ================================================ BR2_riscv=y BR2_TOOLCHAIN_BUILDROOT_LOCALE=y BR2_TOOLCHAIN_BUILDROOT_WCHAR=y BR2_TOOLCHAIN_BUILDROOT_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-s390x-z13-internal-glibc.config ================================================ BR2_s390x=y BR2_s390x_z13=y BR2_TOOLCHAIN_BUILDROOT_GLIBC=y BR2_TOOLCHAIN_BUILDROOT_CXX=y ================================================ FILE: support/config-fragments/autobuild/br-xtensa-full-internal.config ================================================ BR2_xtensa=y BR2_TOOLCHAIN_BUILDROOT_LOCALE=y BR2_TOOLCHAIN_BUILDROOT_CXX=y ================================================ FILE: support/config-fragments/autobuild/linaro-aarch64-be.config ================================================ BR2_aarch64_be=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE=y ================================================ FILE: support/config-fragments/autobuild/linaro-aarch64.config ================================================ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64=y ================================================ FILE: support/config-fragments/autobuild/linaro-arm.config ================================================ BR2_arm=y BR2_cortex_a8=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM=y ================================================ FILE: support/config-fragments/autobuild/sourcery-arm-armv4t.config ================================================ BR2_arm=y BR2_arm920t=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM=y ================================================ FILE: support/config-fragments/autobuild/sourcery-arm-thumb2.config ================================================ BR2_arm=y BR2_cortex_a8=y BR2_ARM_EABI=y BR2_ARM_INSTRUCTIONS_THUMB2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM=y BR2_TARGET_OPTIMIZATION="" ================================================ FILE: support/config-fragments/autobuild/sourcery-arm.config ================================================ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM=y ================================================ FILE: support/config-fragments/autobuild/sourcery-mips.config ================================================ BR2_mips=y BR2_mips_32r2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS=y ================================================ FILE: support/config-fragments/autobuild/sourcery-mips64.config ================================================ BR2_mips64el=y BR2_mips_64r2=y BR2_MIPS_NABI64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS=y ================================================ FILE: support/config-fragments/autobuild/sourcery-nios2.config ================================================ BR2_nios2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII=y ================================================ FILE: support/config-fragments/autobuild/toolchain-configs.csv ================================================ # This file is sorted by "importance" of toolchains, so that by # default test-pkg tests a useful subset of toolchains # Toolchains used by default by test-pkg: # Test a regular uClibc toolchain support/config-fragments/autobuild/bootlin-armv5-uclibc.config,x86_64 # Test a toolchain with glibc and a very recent gcc version support/config-fragments/autobuild/bootlin-armv7-glibc.config,x86_64 # Test a noMMU toolchain with no dynamic library support support/config-fragments/autobuild/bootlin-armv7m-uclibc.config,x86_64 # Test a musl toolchain support/config-fragments/autobuild/bootlin-x86-64-musl.config,x86_64 # Test a MMU toolchain without dynamic library support support/config-fragments/autobuild/br-arm-full-static.config,x86_64 # Test a toolchain with an old gcc version (gcc 4.8) support/config-fragments/autobuild/sourcery-arm.config,x86 # Toolchains used by test-pkg only when the '-a' option is passed: support/config-fragments/autobuild/andes-nds32.config,x86 support/config-fragments/autobuild/arm-aarch64.config,x86_64 support/config-fragments/autobuild/bootlin-aarch64-glibc.config,x86_64 support/config-fragments/autobuild/bootlin-arcle-hs38-uclibc.config,x86_64 support/config-fragments/autobuild/bootlin-armv7-musl.config,x86_64 support/config-fragments/autobuild/bootlin-m68k-68040-uclibc.config,x86_64 support/config-fragments/autobuild/bootlin-m68k-5208-uclibc.config,x86_64 support/config-fragments/autobuild/bootlin-microblazeel-uclibc.config,x86_64 support/config-fragments/autobuild/bootlin-mipsel-uclibc.config,x86_64 support/config-fragments/autobuild/bootlin-mipsel32r6-glibc.config,x86_64 support/config-fragments/autobuild/bootlin-nios2-glibc.config,x86_64 support/config-fragments/autobuild/bootlin-openrisc-uclibc.config,x86_64 support/config-fragments/autobuild/bootlin-powerpc64le-power8-glibc.config,x86_64 support/config-fragments/autobuild/bootlin-powerpc-e500mc-uclibc.config,x86_64 support/config-fragments/autobuild/bootlin-riscv32-glibc.config,x86_64 support/config-fragments/autobuild/bootlin-riscv64-glibc.config,x86_64 support/config-fragments/autobuild/bootlin-riscv64-musl.config,x86_64 support/config-fragments/autobuild/bootlin-sh4-uclibc.config,x86_64 support/config-fragments/autobuild/bootlin-sparc-uclibc.config,x86_64 support/config-fragments/autobuild/bootlin-sparc64-glibc.config,x86_64 support/config-fragments/autobuild/bootlin-x86-64-glibc.config,x86_64 support/config-fragments/autobuild/bootlin-x86-64-uclibc.config,x86_64 support/config-fragments/autobuild/bootlin-xtensa-uclibc.config,x86_64 support/config-fragments/autobuild/br-arc-full-internal.config,any support/config-fragments/autobuild/br-arc-internal-glibc.config,any support/config-fragments/autobuild/br-arm-basic.config,x86_64 support/config-fragments/autobuild/br-arm-full-nothread.config,x86_64 support/config-fragments/autobuild/br-arm-internal-full.config,any support/config-fragments/autobuild/br-arm-internal-glibc.config,any support/config-fragments/autobuild/br-arm-internal-musl.config,any support/config-fragments/autobuild/br-i386-pentium4-full.config,x86_64 support/config-fragments/autobuild/br-i386-pentium-mmx-musl.config,x86_64 support/config-fragments/autobuild/br-microblazeel-full-internal.config,any support/config-fragments/autobuild/br-mips64-n64-full.config,x86_64 support/config-fragments/autobuild/br-mips64r6-el-hf-glibc.config,x86_64 support/config-fragments/autobuild/br-powerpc-603e-basic-cpp.config,x86_64 support/config-fragments/autobuild/br-powerpc64-power7-glibc.config,x86_64 support/config-fragments/autobuild/br-powerpc-internal-full.config,any support/config-fragments/autobuild/br-riscv64-full-internal.config,any support/config-fragments/autobuild/br-s390x-z13-internal-glibc.config,any support/config-fragments/autobuild/br-xtensa-full-internal.config,any support/config-fragments/autobuild/linaro-aarch64.config,x86 support/config-fragments/autobuild/linaro-aarch64-be.config,x86 support/config-fragments/autobuild/linaro-arm.config,x86 support/config-fragments/autobuild/sourcery-arm-armv4t.config,x86 support/config-fragments/autobuild/sourcery-arm-thumb2.config,x86 support/config-fragments/autobuild/sourcery-mips64.config,x86 support/config-fragments/autobuild/sourcery-mips.config,x86 support/config-fragments/autobuild/sourcery-nios2.config,x86 ================================================ FILE: support/config-fragments/minimal.config ================================================ # This config fragment disables Buildroot options that are turned on by # default, in order to arrive at minimal build time. BR2_INIT_NONE=y BR2_SYSTEM_BIN_SH_NONE=y # BR2_PACKAGE_BUSYBOX is not set # BR2_TARGET_ROOTFS_TAR is not set BR2_COMPILER_PARANOID_UNSAFE_PATH=y BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y ================================================ FILE: support/dependencies/check-host-asciidoc.sh ================================================ #!/bin/sh candidate="$1" #ignored asciidoc=`which asciidoc` if [ ! -x "$asciidoc" ]; then # echo nothing: no suitable asciidoc found exit 1 fi # Output of 'asciidoc --version' examples: # asciidoc 8.6.7 version=`$asciidoc --version | cut -d\ -f2` major=`echo "$version" | cut -d. -f1` minor=`echo "$version" | cut -d. -f2` bugfix=`echo "$version" | cut -d. -f3` # To generate the manual, we need asciidoc >= 8.6.3 major_min=8 minor_min=6 bugfix_min=3 if [ $major -gt $major_min ]; then echo $asciidoc else if [ $major -eq $major_min -a $minor -ge $minor_min ]; then echo $asciidoc else if [ $major -eq $major_min -a $minor -eq $minor_min \ -a $bugfix -ge $bugfix_min ]; then echo $asciidoc else # echo nothing: no suitable asciidoc found exit 1 fi fi fi ================================================ FILE: support/dependencies/check-host-bison-flex.mk ================================================ # If the system lacks bison or flex, add # dependencies to suitable host packages # # BR2_{BISON,FLES}_HOST_DEPENDENCY should only be used to build code # that runs on host, e.g. Kconfig. To build code for target use plain # host-{bison,flex}. ifeq ($(shell which bison 2>/dev/null),) BR2_BISON_HOST_DEPENDENCY = host-bison endif ifeq ($(shell which flex 2>/dev/null),) BR2_FLEX_HOST_DEPENDENCY = host-flex endif ================================================ FILE: support/dependencies/check-host-cmake.mk ================================================ # Set this to either 3.16 or higher, depending on the highest minimum # version required by any of the packages bundled in Buildroot. If a # package is bumped or a new one added, and it requires a higher # version, our cmake infra will catch it and build its own. # BR2_CMAKE_VERSION_MIN = 3.16 BR2_CMAKE_CANDIDATES ?= cmake cmake3 BR2_CMAKE ?= $(call suitable-host-package,cmake,\ $(BR2_CMAKE_VERSION_MIN) $(BR2_CMAKE_CANDIDATES)) ifeq ($(BR2_CMAKE),) BR2_CMAKE = $(HOST_DIR)/bin/cmake BR2_CMAKE_HOST_DEPENDENCY = host-cmake endif ================================================ FILE: support/dependencies/check-host-cmake.sh ================================================ #!/bin/sh # prevent shift error [ $# -lt 2 ] && exit 1 major_min="${1%.*}" minor_min="${1#*.}" shift for candidate; do # Try to locate the candidate. Discard it if not located. cmake=`which "${candidate}" 2>/dev/null` [ -n "${cmake}" ] || continue # Extract version X.Y from versions in the form X.Y or X.Y.Z # with X, Y and Z numbers with one or more digits each, e.g. # 3.2 -> 3.2 # 3.2.3 -> 3.2 # 3.2.42 -> 3.2 # 3.10 -> 3.10 # 3.10.4 -> 3.10 # 3.10.42 -> 3.10 # Discard the candidate if no version can be obtained version="$(${cmake} --version \ |sed -r -e '/.* ([[:digit:]]+\.[[:digit:]]+).*$/!d;' \ -e 's//\1/' )" [ -n "${version}" ] || continue major="${version%.*}" minor="${version#*.}" if [ ${major} -gt ${major_min} ]; then echo "${cmake}" exit elif [ ${major} -eq ${major_min} -a ${minor} -ge ${minor_min} ]; then echo "${cmake}" exit fi done # echo nothing: no suitable cmake found exit 1 ================================================ FILE: support/dependencies/check-host-coreutils.mk ================================================ # Check whether the host's coreutils are up to date enough # to provide 'ln --relative' and 'realpath'. ifeq (,$(call suitable-host-package,coreutils)) BR2_COREUTILS_HOST_DEPENDENCY = host-coreutils endif ================================================ FILE: support/dependencies/check-host-coreutils.sh ================================================ #!/bin/sh # Exit on the first error set -e # Does ln supports the --relative/-r option? ln --relative --help >/dev/null 2>&1 # Does realpath exist? realpath --help >/dev/null 2>&1 echo OK ================================================ FILE: support/dependencies/check-host-gzip.mk ================================================ ifeq (,$(call suitable-host-package,gzip)) BR2_GZIP_HOST_DEPENDENCY = host-gzip endif ================================================ FILE: support/dependencies/check-host-gzip.sh ================================================ #!/bin/sh candidate="$1" # ignored gzip="$(which gzip)" if [ ! -x "${gzip}" ]; then # echo nothing: no suitable gzip found exit 1 fi # gzip displays its version string on stdout # pigz displays its version string on stderr version="$("${gzip}" --version 2>&1)" case "${version}" in (*pigz*) # echo nothing: no suitable gzip found exit 1 ;; esac printf "%s" "${gzip}" ================================================ FILE: support/dependencies/check-host-lzip.mk ================================================ ifeq (,$(call suitable-host-package,lzip,$(LZCAT))) BR2_LZIP_HOST_DEPENDENCY = host-lzip LZCAT = $(HOST_DIR)/bin/lzip -d -c endif ================================================ FILE: support/dependencies/check-host-lzip.sh ================================================ #!/bin/sh candidate="$1" lzip=`which $candidate 2>/dev/null` if [ ! -x "$lzip" ]; then lzip=`which lzip 2>/dev/null` if [ ! -x "$lzip" ]; then # echo nothing: no suitable lzip found exit 1 fi fi echo $lzip ================================================ FILE: support/dependencies/check-host-make.mk ================================================ # Since version 2.28, glibc requires GNU Make >= 4.0 # https://www.sourceware.org/ml/libc-alpha/2018-08/msg00003.html # # Set this to either 4.0 or higher, depending on the highest minimum # version required by any of the packages bundled in Buildroot. If a # package is bumped or a new one added, and it requires a higher # version, our package infra will catch it and whine. # BR2_MAKE_VERSION_MIN = 4.0 BR2_MAKE ?= $(call suitable-host-package,make,\ $(BR2_MAKE_VERSION_MIN) $(MAKE)) ifeq ($(BR2_MAKE),) BR2_MAKE = $(HOST_DIR)/bin/host-make -j$(PARALLEL_JOBS) BR2_MAKE1 = $(HOST_DIR)/bin/host-make -j1 BR2_MAKE_HOST_DEPENDENCY = host-make else BR2_MAKE = $(MAKE) BR2_MAKE1 = $(MAKE1) endif ================================================ FILE: support/dependencies/check-host-make.sh ================================================ #!/bin/sh # prevent shift error [ $# -lt 2 ] && exit 1 major_min="${1%.*}" minor_min="${1#*.}" shift # The host make program is already checked by dependencies.sh but we # want to check the version number even if Buildroot is able to use # GNU make >= 3.81 but some packages may require a more recent version. make="$1" # Output of 'make --version' examples: # GNU Make 4.2.1 # GNU Make 4.0 # GNU Make 3.81 version=`$make --version 2>&1 | sed -e 's/^.* \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'` major=`echo "$version" | cut -d. -f1` minor=`echo "$version" | cut -d. -f2` if [ $major -lt $major_min ]; then # echo nothing: no suitable make found exit 1 fi if [ $major -eq $major_min -a $minor -lt $minor_min ]; then # echo nothing: no suitable make found exit 1 fi # valid echo $make ================================================ FILE: support/dependencies/check-host-python3.mk ================================================ # Since version 2.29, glibc requires python 3.4 or later to build the GNU C Library. # https://www.sourceware.org/ml/libc-alpha/2019-01/msg00723.html BR2_PYTHON3_VERSION_MIN = 3.4 ifeq (,$(call suitable-host-package,python3,$(BR2_PYTHON3_VERSION_MIN) python3 python)) BR2_PYTHON3_HOST_DEPENDENCY = host-python3 endif ================================================ FILE: support/dependencies/check-host-python3.sh ================================================ #!/bin/sh # prevent shift error [ $# -lt 2 ] && exit 1 version_min="$(echo ${1} | awk '{ split($1, v, "."); print v[1] v[2] }')" shift # The host python interpreter is already checked by dependencies.sh but # it only check if the version is at least 2.7. # We want to check the version number of the python3 interpreter even # if Buildroot is able to use any version but some packages may require # a more recent version. for candidate in "${@}" ; do python3=`which $candidate 2>/dev/null` if [ ! -x "$python3" ]; then continue fi version=`$python3 -V 2>&1 | awk '{ split($2, v, "."); print v[1] v[2] }'` if [ $version -lt $version_min ]; then # no suitable python3 found continue fi # suitable python3 found echo $python3 break done ================================================ FILE: support/dependencies/check-host-tar.mk ================================================ TAR ?= tar ifeq (,$(call suitable-host-package,tar,$(TAR))) TAR = $(HOST_DIR)/bin/tar BR2_TAR_HOST_DEPENDENCY = host-tar endif ================================================ FILE: support/dependencies/check-host-tar.sh ================================================ #!/bin/sh candidate="$1" tar=`which $candidate` if [ ! -x "$tar" ]; then tar=`which tar` if [ ! -x "$tar" ]; then # echo nothing: no suitable tar found exit 1 fi fi # Output of 'tar --version' examples: # tar (GNU tar) 1.15.1 # tar (GNU tar) 1.25 # bsdtar 2.8.3 - libarchive 2.8.3 version=`$tar --version | head -n 1 | sed 's/^.*\s\([0-9]\+\.\S\+\).*$/\1/'` major=`echo "$version" | cut -d. -f1` minor=`echo "$version" | cut -d. -f2` bugfix=`echo "$version" | cut -d. -f3` version_bsd=`$tar --version | grep 'bsdtar'` # BSD tar does not have all the command-line options if [ -n "${version_bsd}" ] ; then # echo nothing: no suitable tar found exit 1 fi # Minimal version = 1.27 (previous versions do not correctly unpack archives # containing hard-links if the --strip-components option is used or create # different gnu long link headers for path elements > 100 characters). major_min=1 minor_min=27 if [ $major -lt $major_min ]; then # echo nothing: no suitable tar found exit 1 fi if [ $major -eq $major_min -a $minor -lt $minor_min ]; then # echo nothing: no suitable tar found exit 1 fi # valid echo $tar ================================================ FILE: support/dependencies/check-host-xzcat.mk ================================================ # XZCAT is taken from BR2_XZCAT (defaults to 'xzcat') (see Makefile) # If it is not present, build our own host-xzcat ifeq (,$(call suitable-host-package,xzcat,$(XZCAT))) BR2_XZCAT_HOST_DEPENDENCY = host-xz XZCAT = $(HOST_DIR)/bin/xzcat endif ================================================ FILE: support/dependencies/check-host-xzcat.sh ================================================ #!/bin/sh candidate="$1" xzcat=`which $candidate 2>/dev/null` if [ ! -x "$xzcat" ]; then xzcat=`which xzcat 2>/dev/null` if [ ! -x "$xzcat" ]; then # echo nothing: no suitable xzcat found exit 1 fi fi echo $xzcat ================================================ FILE: support/dependencies/dependencies.mk ================================================ ################################################################################ # # Check buildroot dependencies and bail out if the user's # system is judged to be lacking.... # ################################################################################ ifeq ($(BR2_FORCE_HOST_BUILD),y) # ignore all available host packages define suitable-host-package endef else # suitable-host-pkg: calls check-host-$(1).sh shell script. Parameter (2) # can be the candidate to be checked. If not present, the check-host-$(1).sh # script should use 'which' to find a candidate. The script should return # the path to the suitable host tool, or nothing if no suitable tool was found. define suitable-host-package $(if $(1),$(shell support/dependencies/check-host-$(1).sh $(2))) endef endif # host utilities needs host-tar to extract the source code tarballs, so # ensure check-host-tar.mk is included before the rest include support/dependencies/check-host-tar.mk -include $(sort $(filter-out %-tar.mk,$(wildcard support/dependencies/check-host-*.mk))) dependencies: @MAKE="$(MAKE)" DL_TOOLS="$(sort $(DL_TOOLS_DEPENDENCIES))" \ $(TOPDIR)/support/dependencies/dependencies.sh ################################################################################ # # Toplevel Makefile options # ################################################################################ .PHONY: dependencies ================================================ FILE: support/dependencies/dependencies.sh ================================================ #!/bin/sh # vi: set sw=4 ts=4: export LC_ALL=C TAB="$(printf '\t')" NL=" " # Verify that grep works echo "WORKS" | grep "WORKS" >/dev/null 2>&1 if test $? != 0 ; then echo echo "grep doesn't work" exit 1 fi # Sanity check for CWD in LD_LIBRARY_PATH case ":${LD_LIBRARY_PATH:-unset}:" in (*::*|*:.:*) echo echo "You seem to have the current working directory in your" echo "LD_LIBRARY_PATH environment variable. This doesn't work." exit 1 ;; esac # Sanity check for CWD in PATH. Having the current working directory # in the PATH makes various packages (e.g. toolchain, coreutils...) # build process break. # PATH should not contain a newline, otherwise it fails in spectacular # ways as soon as PATH is referenced in a package rule # An empty PATH is technically possible, but in practice we would not # even arrive here if that was the case. case ":${PATH:-unset}:" in (*::*|*:.:*) echo echo "You seem to have the current working directory in your" echo "PATH environment variable. This doesn't work." exit 1 ;; (*" "*|*"${TAB}"*|*"${NL}"*) printf "\n" printf "Your PATH contains spaces, TABs, and/or newline (\\\n) characters.\n" printf "This doesn't work. Fix you PATH.\n" exit 1 ;; esac if test -n "$PERL_MM_OPT" ; then echo echo "You have PERL_MM_OPT defined because Perl local::lib" echo "is installed on your system. Please unset this variable" echo "before starting Buildroot, otherwise the compilation of" echo "Perl related packages will fail" exit 1 fi check_prog_host() { prog="$1" if ! which $prog > /dev/null ; then echo >&2 echo "You must install '$prog' on your build machine" >&2 exit 1 fi } # Verify that which is installed check_prog_host "which" # Verify that sed is installed check_prog_host "sed" # 'file' must be present and must be exactly /usr/bin/file, # otherwise libtool fails in incomprehensible ways. check_prog_host "/usr/bin/file" # Check make MAKE=$(which make 2> /dev/null) if [ -z "$MAKE" ] ; then echo echo "You must install 'make' on your build machine"; exit 1; fi; MAKE_VERSION=$($MAKE --version 2>&1 | sed -e 's/^.* \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q') if [ -z "$MAKE_VERSION" ] ; then echo echo "You must install 'make' on your build machine"; exit 1; fi; MAKE_MAJOR=$(echo $MAKE_VERSION | sed -e "s/\..*//g") MAKE_MINOR=$(echo $MAKE_VERSION | sed -e "s/^$MAKE_MAJOR\.//g" -e "s/\..*//g" -e "s/[a-zA-Z].*//g") if [ $MAKE_MAJOR -lt 3 ] || [ $MAKE_MAJOR -eq 3 -a $MAKE_MINOR -lt 81 ] ; then echo echo "You have make '$MAKE_VERSION' installed. GNU make >=3.81 is required" exit 1; fi; # Check host gcc COMPILER=$(which $HOSTCC_NOCCACHE 2> /dev/null) if [ -z "$COMPILER" ] ; then COMPILER=$(which cc 2> /dev/null) fi; if [ -z "$COMPILER" ] ; then echo echo "You must install 'gcc' on your build machine"; exit 1; fi; COMPILER_VERSION=$($COMPILER -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q') if [ -z "$COMPILER_VERSION" ] ; then echo echo "You must install 'gcc' on your build machine"; exit 1; fi; COMPILER_MAJOR=$(echo $COMPILER_VERSION | sed -e "s/\..*//g") COMPILER_MINOR=$(echo $COMPILER_VERSION | sed -e "s/^$COMPILER_MAJOR\.//g" -e "s/\..*//g") if [ $COMPILER_MAJOR -lt 4 -o $COMPILER_MAJOR -eq 4 -a $COMPILER_MINOR -lt 8 ] ; then echo echo "You have gcc '$COMPILER_VERSION' installed. gcc >= 4.8 is required" exit 1; fi; # check for host CXX CXXCOMPILER=$(which $HOSTCXX_NOCCACHE 2> /dev/null) if [ -z "$CXXCOMPILER" ] ; then CXXCOMPILER=$(which c++ 2> /dev/null) fi if [ -z "$CXXCOMPILER" ] ; then echo echo "You may have to install 'g++' on your build machine" fi if [ ! -z "$CXXCOMPILER" ] ; then CXXCOMPILER_VERSION=$($CXXCOMPILER -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q') if [ -z "$CXXCOMPILER_VERSION" ] ; then echo echo "You may have to install 'g++' on your build machine" fi fi if [ -n "$CXXCOMPILER_VERSION" ] ; then CXXCOMPILER_MAJOR=$(echo $CXXCOMPILER_VERSION | sed -e "s/\..*//g") CXXCOMPILER_MINOR=$(echo $CXXCOMPILER_VERSION | sed -e "s/^$CXXCOMPILER_MAJOR\.//g" -e "s/\..*//g") if [ $CXXCOMPILER_MAJOR -lt 4 -o $CXXCOMPILER_MAJOR -eq 4 -a $CXXCOMPILER_MINOR -lt 8 ] ; then echo echo "You have g++ '$CXXCOMPILER_VERSION' installed. g++ >= 4.8 is required" exit 1 fi fi # Check bash # We only check bash is available, setting SHELL appropriately is done # in the top-level Makefile, and we mimick the same sequence here if [ -n "${BASH}" ]; then : elif [ -x /bin/bash ]; then : elif [ -z "$( sh -c 'echo $BASH' )" ]; then echo echo "You must install 'bash' on your build machine" exit 1 fi # Check that a few mandatory programs are installed missing_progs="no" for prog in perl tar wget cpio unzip rsync bc ${DL_TOOLS} ; do if ! which $prog > /dev/null ; then echo "You must install '$prog' on your build machine"; missing_progs="yes" if test $prog = "svn" ; then echo " svn is usually part of the subversion package in your distribution" elif test $prog = "hg" ; then echo " hg is usually part of the mercurial package in your distribution" elif test $prog = "zcat" ; then echo " zcat is usually part of the gzip package in your distribution" elif test $prog = "bzcat" ; then echo " bzcat is usually part of the bzip2 package in your distribution" fi fi done if test "${missing_progs}" = "yes" ; then exit 1 fi PATCH_VERSION="$(patch -v 2>/dev/null | sed -n 's/^GNU patch \(.*\)/\1/p')" if [ -z "${PATCH_VERSION}" ] ; then echo echo "You must install GNU patch" exit 1 fi PATCH_MAJOR="$(echo "${PATCH_VERSION}" | cut -d . -f 1)" PATCH_MINOR="$(echo "${PATCH_VERSION}" | cut -d . -f 2)" if [ "${PATCH_MAJOR}" -lt 2 ] || [ "${PATCH_MAJOR}" -eq 2 -a "${PATCH_MINOR}" -lt 7 ] ; then echo echo "You have GNU patch '${PATCH_VERSION}' installed. GNU patch >= 2.7 is required" exit 1; fi if grep ^BR2_NEEDS_HOST_UTF8_LOCALE=y $BR2_CONFIG > /dev/null; then if ! which locale > /dev/null ; then echo echo "You need locale support on your build machine to build a toolchain supporting locales" exit 1 ; fi if ! locale -a | grep -q -i -E 'utf-?8$' ; then echo echo "You need at least one UTF8 locale to build a toolchain supporting locales" exit 1 ; fi fi if grep -q ^BR2_NEEDS_HOST_JAVA=y $BR2_CONFIG ; then check_prog_host "java" JAVA_GCJ=$(java -version 2>&1 | grep gcj) if [ ! -z "$JAVA_GCJ" ] ; then echo echo "$JAVA_GCJ is not sufficient to compile your package selection." echo "Please install an OpenJDK/IcedTea/Oracle Java." exit 1 ; fi fi if grep -q ^BR2_HOSTARCH_NEEDS_IA32_LIBS=y $BR2_CONFIG ; then if test ! -f /lib/ld-linux.so.2 ; then echo echo "Your Buildroot configuration uses pre-built tools for the x86 architecture," echo "but your build machine uses the x86-64 architecture without the 32 bits compatibility" echo "library." echo "If you're running a Debian/Ubuntu distribution, install the libc6-i386," echo "lib32stdc++6, and lib32z1 packages (or alternatively libc6:i386," echo "libstdc++6:i386, and zlib1g:i386)." echo "If you're running a RedHat/Fedora distribution, install the glibc.i686 and" echo "zlib.i686 packages." echo "If you're running an ArchLinux distribution, install lib32-glibc." echo "For other distributions, refer to the documentation on how to install the 32 bits" echo "compatibility libraries." exit 1 fi fi if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then if ! echo "int main(void) {}" | gcc -m32 -x c - -o /dev/null 2>/dev/null; then echo echo "Your Buildroot configuration needs a compiler capable of building 32 bits binaries." echo "If you're running a Debian/Ubuntu distribution, install the gcc-multilib package." echo "For other distributions, refer to their documentation." exit 1 fi if ! echo "int main(void) {}" | g++ -m32 -x c++ - -o /dev/null 2>/dev/null; then echo echo "Your Buildroot configuration needs a compiler capable of building 32 bits binaries." echo "If you're running a Debian/Ubuntu distribution, install the g++-multilib package." echo "For other distributions, refer to their documentation." exit 1 fi fi if grep ^BR2_NEEDS_HOST_GCC_PLUGIN_SUPPORT=y $BR2_CONFIG ; then if ! echo "#include " | $HOSTCXX_NOCCACHE -I$($HOSTCXX_NOCCACHE -print-file-name=plugin)/include -x c++ -c - -o /dev/null ; then echo echo "Your Buildroot configuration needs a host compiler capable of building gcc plugins." echo "If you're running a Debian/Ubuntu distribution, install gcc-X-plugin-dev package." echo "For other distributions, refer to their documentation." exit 1 ; fi fi # Check that the Perl installation is complete enough for Buildroot. required_perl_modules="Data::Dumper" # Needed to build host-autoconf required_perl_modules="$required_perl_modules ExtUtils::MakeMaker" # Used by host-libxml-parser-perl required_perl_modules="$required_perl_modules Thread::Queue" # Used by host-automake if grep -q ^BR2_PACKAGE_MPV=y $BR2_CONFIG ; then required_perl_modules="$required_perl_modules Math::BigInt" required_perl_modules="$required_perl_modules Math::BigRat" fi if grep -q ^BR2_PACKAGE_WHOIS=y $BR2_CONFIG ; then required_perl_modules="$required_perl_modules autodie" fi if grep -q -E '^BR2_PACKAGE_(WEBKITGTK|WPEWEBKIT)=y' $BR2_CONFIG ; then required_perl_modules="${required_perl_modules} JSON::PP" fi # This variable will keep the modules that are missing in your system. missing_perl_modules="" for pm in $required_perl_modules ; do if ! perl -e "require $pm" > /dev/null 2>&1 ; then missing_perl_modules="$missing_perl_modules $pm" fi done if [ -n "$missing_perl_modules" ] ; then echo "Your Perl installation is not complete enough; at least the following" echo "modules are missing:" echo for pm in $missing_perl_modules ; do printf "\t $pm\n" done echo exit 1 fi ================================================ FILE: support/docker/Dockerfile ================================================ # This Dockerfile generates the docker image that gets used by Gitlab CI # To build it (YYYYMMDD.HHMM is the current date and time in UTC): # docker build -t registry.gitlab.com/buildroot.org/buildroot/base:YYYYMMDD.HHMM support/docker # docker push registry.gitlab.com/buildroot.org/buildroot/base:YYYYMMDD.HHMM # We use a specific tag for the base image *and* the corresponding date # for the repository., so do not forget to update the apt-sources.list # file that is shipped next to this Dockerfile. FROM debian:bullseye-20210902 LABEL maintainer="Buildroot mailing list " \ vendor="Buildroot" \ description="Container with everything needed to run Buildroot" # Setup environment ENV DEBIAN_FRONTEND noninteractive # This repository can be a bit slow at times. Don't panic... COPY apt-sources.list /etc/apt/sources.list # The container has no package lists, so need to update first RUN dpkg --add-architecture i386 && \ apt-get update -y RUN apt-get install -y --no-install-recommends \ bc \ build-essential \ bzr \ ca-certificates \ cmake \ cpio \ cvs \ file \ g++-multilib \ git \ libc6:i386 \ libncurses5-dev \ locales \ mercurial \ python3 \ python3-flake8 \ python3-nose2 \ python3-pexpect \ qemu-system-arm \ qemu-system-x86 \ rsync \ subversion \ unzip \ wget \ && \ apt-get -y autoremove && \ apt-get -y clean # To be able to generate a toolchain with locales, enable one UTF-8 locale RUN sed -i 's/# \(en_US.UTF-8\)/\1/' /etc/locale.gen && \ /usr/sbin/locale-gen RUN useradd -ms /bin/bash br-user && \ chown -R br-user:br-user /home/br-user USER br-user WORKDIR /home/br-user ENV HOME /home/br-user ENV LC_ALL en_US.UTF-8 ================================================ FILE: support/docker/apt-sources.list ================================================ # Latest just before 20210817T000000Z: deb [check-valid-until=no] http://snapshot.debian.org/archive/debian/20210902T205533Z/ bullseye main deb [check-valid-until=no] http://snapshot.debian.org/archive/debian-security/20210902T193650Z/ bullseye-security main deb [check-valid-until=no] http://snapshot.debian.org/archive/debian/20210902T205533Z/ bullseye-updates main ================================================ FILE: support/download/bzr ================================================ #!/usr/bin/env bash # We want to catch any unexpected failure, and exit immediately set -e # Download helper for bzr, to be called from the download wrapper script # # Options: # -q Be quiet # -o FILE Generate archive in FILE. # -u URI Clone from repository at URI. # -c CSET Use changeset (or revision) CSET. # -n NAME Use basename NAME. # # Environment: # BZR : the bzr command to call quiet= while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do case "${OPT}" in q) quiet=-q;; o) output="${OPTARG}";; u) uri="${OPTARG}";; c) cset="${OPTARG}";; n) basename="${OPTARG}";; :) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;; \?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;; esac done shift $((OPTIND-1)) # Get rid of our options # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _bzr() { if [ -z "${quiet}" ]; then printf '%s ' ${BZR} "${@}"; printf '\n' fi _plain_bzr "$@" } # Note: please keep command below aligned with what is printed above _plain_bzr() { eval ${BZR} "${@}" } # --per-file-timestamps comes with bzr-2.2 (released August 2010), # so only pass it if bzr is recent enough. We compute versions as: # major*1000 + minor bzr_min_version=2002 bzr_version=$(($(bzr --version | sed -r -n 's/^Bazaar \(bzr\) ([[:digit:]]+)\.([[:digit:]]+)\..*$/\1*1000+\2/p') )) # If the version is recent enough, we can generate reproducible # archives; otherwise, we just hope for the best (as it would # be downloaded from the BR mirror if what we generate here does # not match the hash we have for it). if [ ${bzr_version} -ge ${bzr_min_version} ]; then timestamp_opt="--per-file-timestamps" fi _bzr export ${quiet} --root="'${basename}/'" --format=tgz \ ${timestamp_opt} - "${@}" "'${uri}'" -r "'${cset}'" \ >"${output}" ================================================ FILE: support/download/cargo-post-process ================================================ #!/usr/bin/env bash set -e set -o pipefail . "${0%/*}/helpers" while getopts "n:o:" OPT; do case "${OPT}" in o) output="${OPTARG}";; n) base_name="${OPTARG}";; :) error "option '%s' expects a mandatory argument\n" "${OPTARG}";; \?) error "unknown option '%s'\n" "${OPTARG}";; esac done # Already vendored tarball, nothing to do if tar tf "${output}" | grep -q "^[^/]*/VENDOR" ; then exit 0 fi post_process_unpack "${base_name}" "${output}" # Do the Cargo vendoring pushd "${base_name}" > /dev/null # Create the local .cargo/config with vendor info # # The first line of the output to stdout is empty. # So skip it to have the file start with the vendoring # configuration (`tail --lines=+2`). # # NOTE: # There is a patch for cargo to remove the first empty line: # See: https://github.com/rust-lang/cargo/pull/11273 # # The patch already landed in +nightly and will end up # in +stable soon. # # -> When updating rust/cargo, the call to `tail` must be removed. # mkdir -p .cargo/ cargo vendor \ --manifest-path ${BR_CARGO_MANIFEST_PATH-Cargo.toml} \ --locked VENDOR \ | tail --lines=+2 | tee .cargo/config popd > /dev/null post_process_repack "$(pwd)" "${base_name}" "${output}" ================================================ FILE: support/download/check-hash ================================================ #!/usr/bin/env bash set -e # Helper to check a file matches its known hash # Call it with: # $1: the path of the file containing all the expected hashes # $2: the full path to the temporary file that was downloaded, and # that is to be checked # $3: the final basename of the file, to which it will be ultimately # saved as, to be able to match it to the corresponding hashes # in the .hash file # # Exit codes: # 0: the hash file exists and the file to check matches all its hashes, # or the hash file does not exist # 1: unknown command-line option # 2: the hash file exists and the file to check does not match at least # one of its hashes # 3: the hash file exists and there was no hash to check the file against # 4: the hash file exists and at least one hash type is unknown while getopts :q OPT; do case "${OPT}" in q) exec >/dev/null;; \?) exit 1;; esac done shift $((OPTIND-1)) h_file="${1}" file="${2}" base="${3}" # Bail early if no hash to check if [ -z "${h_file}" ]; then exit 0 fi # Does the hash-file exist? if [ ! -f "${h_file}" ]; then printf "WARNING: no hash file for %s\n" "${base}" >&2 exit 0 fi # Check one hash for a file # $1: algo hash # $2: known hash # $3: file (full path) check_one_hash() { _h="${1}" _known="${2}" _file="${3}" # Note: md5 is supported, but undocumented on purpose. # Note: sha3 is not supported, since there is currently no implementation # (the NIST has yet to publish the parameters). # Note: 'none' means there is explicitly no hash for that file. case "${_h}" in none) return 0 ;; md5|sha1) ;; sha224|sha256|sha384|sha512) ;; *) # Unknown hash, exit with error printf "ERROR: unknown hash '%s' for '%s'\n" \ "${_h}" "${base}" >&2 exit 4 ;; esac # Do the hashes match? _hash=$( ${_h}sum "${_file}" |cut -d ' ' -f 1 ) if [ "${_hash}" = "${_known}" ]; then printf "%s: OK (%s: %s)\n" "${base}" "${_h}" "${_hash}" return 0 fi printf "ERROR: %s has wrong %s hash:\n" "${base}" "${_h}" >&2 printf "ERROR: expected: %s\n" "${_known}" >&2 printf "ERROR: got : %s\n" "${_hash}" >&2 printf "ERROR: Incomplete download, or man-in-the-middle (MITM) attack\n" >&2 exit 2 } # Do we know one or more hashes for that file? nb_checks=0 while read t h f; do case "${t}" in ''|'#'*) # Skip comments and empty lines continue ;; *) if [ "${f}" = "${base}" ]; then check_one_hash "${t}" "${h}" "${file}" : $((nb_checks++)) fi ;; esac done <"${h_file}" if [ ${nb_checks} -eq 0 ]; then case " ${BR_NO_CHECK_HASH_FOR} " in *" ${base} "*) # File explicitly has no hash exit 0 ;; esac printf "ERROR: No hash found for %s\n" "${base}" >&2 exit 3 fi ================================================ FILE: support/download/cvs ================================================ #!/usr/bin/env bash # We want to catch any unexpected failure, and exit immediately set -e # Download helper for cvs, to be called from the download wrapper script # # Options: # -q Be quiet # -o FILE Generate archive in FILE. # -u URI Checkout from repository at URI. # -c REV Use revision REV. # -N RAWNAME Use rawname (aka module name) RAWNAME. # -n NAME Use basename NAME. # # Environment: # CVS : the cvs command to call quiet= while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do case "${OPT}" in q) quiet=-Q;; o) output="${OPTARG}";; u) uri="${OPTARG#*://}";; c) rev="${OPTARG}";; N) rawname="${OPTARG}";; n) basename="${OPTARG}";; :) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;; \?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;; esac done shift $((OPTIND-1)) # Get rid of our options # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them). # If the CVS server is deadlocked, the client will never return (cfr. # http://autobuild.buildroot.net/results/23d/23d1034b33d0354de15de2ec4a8ccd0603e8db78/build-end.log # ). Since nobody sane will put large code bases in CVS, a timeout of # 10 minutes should do the trick. _cvs() { if [ -z "${quiet}" ]; then printf '%s ' timeout 10m ${CVS} "${@}"; printf '\n' fi _plain_cvs "$@" } # Note: please keep command below aligned with what is printed above _plain_cvs() { eval timeout 10m ${CVS} "${@}" } if [[ ${rev} =~ ^[0-9] ]]; then # Date, because a tag or a branch cannot begin with a number select="-D" else # Tag or branch select="-r" fi # The absence of an initial : on ${uri} means access method undefined if [[ ! "${uri}" =~ ^: ]]; then # defaults to anonymous pserver uri=":pserver:anonymous@${uri}" fi export TZ=UTC _cvs ${quiet} -z3 -d"'${uri}'" \ co "${@}" -d "'${basename}'" ${select} "'${rev}'" -P "'${rawname}'" tar czf "${output}" "${basename}" ================================================ FILE: support/download/dl-wrapper ================================================ #!/usr/bin/env bash # This script is a wrapper to the other download backends. # Its role is to ensure atomicity when saving downloaded files # back to BR2_DL_DIR, and not clutter BR2_DL_DIR with partial, # failed downloads. # To avoid cluttering BR2_DL_DIR, we download to a trashable # location, namely in $(BUILD_DIR). # Then, we move the downloaded file to a temporary file in the # same directory as the final output file. # This allows us to finally atomically rename it to its final # name. # If anything goes wrong, we just remove all the temporaries # created so far. # We want to catch any unexpected failure, and exit immediately. set -e export BR_BACKEND_DL_GETOPTS=":hc:d:o:n:N:H:ru:qf:e" main() { local OPT OPTARG local backend output hfile recurse quiet rc local -a uris # Parse our options; anything after '--' is for the backend while getopts ":c:d:D:o:n:N:H:rf:u:q" OPT; do case "${OPT}" in c) cset="${OPTARG}";; d) dl_dir="${OPTARG}";; D) old_dl_dir="${OPTARG}";; o) output="${OPTARG}";; n) raw_base_name="${OPTARG}";; N) base_name="${OPTARG}";; H) hfile="${OPTARG}";; r) recurse="-r";; f) filename="${OPTARG}";; u) uris+=( "${OPTARG}" );; q) quiet="-q";; :) error "option '%s' expects a mandatory argument\n" "${OPTARG}";; \?) error "unknown option '%s'\n" "${OPTARG}";; esac done # Forget our options, and keep only those for the backend shift $((OPTIND-1)) if [ -z "${output}" ]; then error "no output specified, use -o\n" fi # Legacy handling: check if the file already exists in the global # download directory. If it does, hard-link it. If it turns out it # was an incorrect download, we'd still check it below anyway. # If we can neither link nor copy, fallback to doing a download. # NOTE! This is not atomic, is subject to TOCTTOU, but the whole # dl-wrapper runs under an flock, so we're safe. if [ ! -e "${output}" -a -e "${old_dl_dir}/${filename}" ]; then ln "${old_dl_dir}/${filename}" "${output}" || \ cp "${old_dl_dir}/${filename}" "${output}" || \ true fi # If the output file already exists and: # - there's no .hash file: do not download it again and exit promptly # - matches all its hashes: do not download it again and exit promptly # - fails at least one of its hashes: force a re-download # - there's no hash (but a .hash file): consider it a hard error if [ -e "${output}" ]; then if support/download/check-hash ${quiet} "${hfile}" "${output}" "${output##*/}"; then exit 0 elif [ ${?} -ne 2 ]; then # Do not remove the file, otherwise it might get re-downloaded # from a later location (i.e. primary -> upstream -> mirror). # Do not print a message, check-hash already did. exit 1 fi rm -f "${output}" warn "Re-downloading '%s'...\n" "${output##*/}" fi # Look through all the uris that we were given to download the package # source download_and_check=0 rc=1 for uri in "${uris[@]}"; do backend_urlencode="${uri%%+*}" backend="${backend_urlencode%|*}" case "${backend}" in git|svn|cvs|bzr|file|scp|hg) ;; *) backend="wget" ;; esac uri=${uri#*+} urlencode=${backend_urlencode#*|} # urlencode must be "urlencode" [ "${urlencode}" != "urlencode" ] && urlencode="" # tmpd is a temporary directory in which backends may store # intermediate by-products of the download. # tmpf is the file in which the backends should put the downloaded # content. # tmpd is located in $(BUILD_DIR), so as not to clutter the (precious) # $(BR2_DL_DIR) # We let the backends create tmpf, so they are able to set whatever # permission bits they want (although we're only really interested in # the executable bit.) tmpd="$(mktemp -d "${BUILD_DIR}/.${output##*/}.XXXXXX")" tmpf="${tmpd}/output" # Helpers expect to run in a directory that is *really* trashable, so # they are free to create whatever files and/or sub-dirs they might need. # Doing the 'cd' here rather than in all backends is easier. cd "${tmpd}" # If the backend fails, we can just remove the content of the temporary # directory to remove all the cruft it may have left behind, and try # the next URI until it succeeds. Once out of URI to try, we need to # cleanup and exit. if ! "${OLDPWD}/support/download/${backend}" \ $([ -n "${urlencode}" ] && printf %s '-e') \ -c "${cset}" \ -d "${dl_dir}" \ -n "${raw_base_name}" \ -N "${base_name}" \ -f "${filename}" \ -u "${uri}" \ -o "${tmpf}" \ ${quiet} ${recurse} -- "${@}" then # cd back to keep path coherence cd "${OLDPWD}" rm -rf "${tmpd}" continue fi # cd back to free the temp-dir, so we can remove it later cd "${OLDPWD}" # Check if the downloaded file is sane, and matches the stored hashes # for that file if support/download/check-hash ${quiet} "${hfile}" "${tmpf}" "${output##*/}"; then rc=0 else if [ ${?} -ne 3 ]; then rm -rf "${tmpd}" continue fi # the hash file exists and there was no hash to check the file # against rc=1 fi download_and_check=1 break done # We tried every URI possible, none seems to work or to check against the # available hash. *ABORT MISSION* if [ "${download_and_check}" -eq 0 ]; then rm -rf "${tmpd}" exit 1 fi # tmp_output is in the same directory as the final output, so we can # later move it atomically. tmp_output="$(mktemp "${output}.XXXXXX")" # 'mktemp' creates files with 'go=-rwx', so the files are not accessible # to users other than the one doing the download (and root, of course). # This can be problematic when a shared BR2_DL_DIR is used by different # users (e.g. on a build server), where all users may write to the shared # location, since other users would not be allowed to read the files # another user downloaded. # So, we restore the 'go' access rights to a more sensible value, while # still abiding by the current user's umask. We must do that before the # final 'mv', so just do it now. # Some backends (cp and scp) may create executable files, so we need to # carry the executable bit if needed. [ -x "${tmpf}" ] && new_mode=755 || new_mode=644 new_mode=$(printf "%04o" $((0${new_mode} & ~0$(umask)))) chmod ${new_mode} "${tmp_output}" # We must *not* unlink tmp_output, otherwise there is a small window # during which another download process may create the same tmp_output # name (very, very unlikely; but not impossible.) # Using 'cp' is not reliable, since 'cp' may unlink the destination file # if it is unable to open it with O_WRONLY|O_TRUNC; see: # http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cp.html # Since the destination filesystem can be anything, it might not support # O_TRUNC, so 'cp' would unlink it first. # Use 'cat' and append-redirection '>>' to save to the final location, # since that is the only way we can be 100% sure of the behaviour. if ! cat "${tmpf}" >>"${tmp_output}"; then rm -rf "${tmpd}" "${tmp_output}" exit 1 fi rm -rf "${tmpd}" # tmp_output and output are on the same filesystem, so POSIX guarantees # that 'mv' is atomic, because it then uses rename() that POSIX mandates # to be atomic, see: # http://pubs.opengroup.org/onlinepubs/9699919799/functions/rename.html if ! mv -f "${tmp_output}" "${output}"; then rm -f "${tmp_output}" exit 1 fi return ${rc} } trace() { local msg="${1}"; shift; printf "%s: ${msg}" "${my_name}" "${@}"; } warn() { trace "${@}" >&2; } errorN() { local ret="${1}"; shift; warn "${@}"; exit ${ret}; } error() { errorN 1 "${@}"; } my_name="${0##*/}" main "${@}" ================================================ FILE: support/download/file ================================================ #!/usr/bin/env bash # We want to catch any unexpected failure, and exit immediately set -e # Download helper for cp, to be called from the download wrapper script # # Options: # -q Be quiet. # -o FILE Copy to file FILE. # -f FILE Copy from basename file FILE. # -u DIR Copy from FILE in DIR. # # Environment: # LOCALFILES: the cp command to call # 'cp' usually does not print anything on its stdout, whereas the # other download backends, even if not verbose, at least print some # progress information. # Make 'cp' verbose by default, so it behaves a bit like the others. verbose=-v while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do case "${OPT}" in q) verbose=;; o) output="${OPTARG}";; f) file="${OPTARG}";; u) dir="${OPTARG}";; :) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;; \?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;; esac done shift $((OPTIND-1)) # Get rid of our options # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _localfiles() { if [ -n "${verbose}" ]; then printf '%s ' ${LOCALFILES} "${@}"; printf '\n' fi _plain_localfiles "$@" } # Note: please keep command below aligned with what is printed above _plain_localfiles() { eval ${LOCALFILES} "${@}" } _localfiles ${verbose} "'${dir##file://}/${file}'" "'${output}'" ================================================ FILE: support/download/git ================================================ #!/usr/bin/env bash # NOTE: if the output of this backend has to change (e.g. we change what gets # included in the archive (e.g. LFS), or we change the format of the archive # (e.g. tar options, compression ratio or method)), we MUST update the format # version in the variable BR_FMT_VERSION_git, in package/pkg-download.mk. # We want to catch any unexpected failure, and exit immediately set -E # Download helper for git, to be called from the download wrapper script # # Options: # -q Be quiet. # -r Clone and archive sub-modules. # -o FILE Generate archive in FILE. # -u URI Clone from repository at URI. # -c CSET Use changeset CSET. # -n NAME Use basename NAME. # # Environment: # GIT : the git command to call . "${0%/*}/helpers" # Save our path and options in case we need to call ourselves again myname="${0}" declare -a OPTS=("${@}") # This function is called when an error occurs. Its job is to attempt a # clone from scratch (only once!) in case the git tree is borked, or in # case an unexpected and unsupported situation arises with submodules # or uncommitted stuff (e.g. if the user manually mucked around in the # git cache). _on_error() { local ret=${?} printf "Detected a corrupted git cache.\n" >&2 if ${BR_GIT_BACKEND_FIRST_FAULT:-false}; then printf "This is the second time in a row; bailing out\n" >&2 exit ${ret} fi export BR_GIT_BACKEND_FIRST_FAULT=true printf "Removing it and starting afresh.\n" >&2 popd >/dev/null rm -rf "${git_cache}" exec "${myname}" "${OPTS[@]}" || exit ${ret} } quiet= recurse=0 while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do case "${OPT}" in q) quiet=-q; exec >/dev/null;; r) recurse=1;; o) output="${OPTARG}";; u) uri="${OPTARG}";; c) cset="${OPTARG}";; d) dl_dir="${OPTARG}";; n) basename="${OPTARG}";; :) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;; \?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;; esac done shift $((OPTIND-1)) # Get rid of our options # Create and cd into the directory that will contain the local git cache git_cache="${dl_dir}/git" mkdir -p "${git_cache}" pushd "${git_cache}" >/dev/null # Any error now should try to recover trap _on_error ERR # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _git() { if [ -z "${quiet}" ]; then printf '%s ' GIT_DIR="${git_cache}/.git" ${GIT} "${@}"; printf '\n' fi _plain_git "$@" } # Note: please keep command below aligned with what is printed above _plain_git() { eval GIT_DIR="${git_cache}/.git" ${GIT} "${@}" } # Create a warning file, that the user should not use the git cache. # It's ours. Our precious. cat <<-_EOF_ >"${dl_dir}/git.readme" IMPORTANT NOTE! The git tree located in this directory is for the exclusive use by Buildroot, which uses it as a local cache to reduce bandwidth usage. Buildroot *will* trash any changes in that tree whenever it needs to use it. Buildroot may even remove it in case it detects the repository may have been damaged or corrupted. Do *not* work in that directory; your changes will eventually get lost. Do *not* even use it as a remote, or as the source for new worktrees; your commits will eventually get lost. _EOF_ # Initialise a repository in the git cache. If the repository already # existed, this is a noop, unless the repository was broken, in which # case this magically restores it to working conditions. In the latter # case, we might be missing blobs, but that's not a problem: we'll # fetch what we need later anyway. # # We can still go through the wrapper, because 'init' does not use the # path pointed to by GIT_DIR, but really uses the directory passed as # argument. _git init . # Ensure the repo has an origin (in case a previous run was killed). if ! _plain_git remote |grep -q -E '^origin$'; then _git remote add origin "'${uri}'" fi _git remote set-url origin "'${uri}'" printf "Fetching all references\n" _git fetch origin _git fetch origin -t # 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 # Check that the changeset does exist. If it does not, re-cloning from # scratch won't help, so we don't want to trash the repository for a # missing commit. We just exit without going through the ERR trap. if ! _git rev-parse --quiet --verify "'${cset}^{commit}'" >/dev/null 2>&1; then printf "Commit '%s' does not exist in this repository.\n" "${cset}" exit 1 fi # The new cset we want to checkout might have different submodules, or # have sub-dirs converted to/from a submodule. So we would need to # deregister _current_ submodules before we checkout. # # Using "git submodule deinit --all" would remove all the files for # all submodules, including the corresponding .git files or directories. # However, it was only introduced with git-1.8.3, which is too recent # for some enterprise-grade distros. # # So, we fall-back to just removing all submodules directories. We do # not need to be recursive, as removing a submodule will de-facto remove # its own submodules. # # For recent git versions, the repository for submodules is stored # inside the repository of the super repository, so the following will # only remove the working copies of submodules, effectively caching the # submodules. # # For older versions however, the repository is stored in the .git/ of # the submodule directory, so the following will effectively remove the # the working copy as well as the repository, which means submodules # will not be cached for older versions. # cmd='printf "Deregistering submodule \"%s\"\n" "${path}" && cd .. && rm -rf "${path##*/}"' _git submodule --quiet foreach "'${cmd}'" # Checkout the required changeset, so that we can update the required # submodules. _git checkout -f -q "'${cset}'" # Get rid of now-untracked directories (in case a git operation was # interrupted in a previous run, or to get rid of empty directories # that were parents of submodules removed above). _git clean -ffdx # Get date of commit to generate a reproducible archive. # %ci is ISO 8601, so it's fully qualified, with TZ and all. date="$( _plain_git log -1 --pretty=format:%ci )" # There might be submodules, so fetch them. if [ ${recurse} -eq 1 ]; then _git submodule update --init --recursive # Older versions of git will store the absolute path of the git tree # in the .git of submodules, while newer versions just use relative # paths. Detect and fix the older variants to use relative paths, so # that the archives are reproducible across a wider range of git # versions. However, we can't do that if git is too old and uses # full repositories for submodules. cmd='printf "%s\n" "${path}/"' for module_dir in $( _plain_git submodule --quiet foreach "'${cmd}'" ); do [ -f "${module_dir}/.git" ] || continue relative_dir="$( sed -r -e 's,/+,/,g; s,[^/]+/,../,g' <<<"${module_dir}" )" sed -r -i -e "s:^gitdir\: $(pwd)/:gitdir\: "${relative_dir}":" "${module_dir}/.git" done fi popd >/dev/null # Generate the archive. # We do not want the .git dir; we keep other .git files, in case they are the # only files in their directory. # The .git dir would generate non reproducible tarballs as it depends on # the state of the remote server. It also would generate large tarballs # (gigabytes for some linux trees) when a full clone took place. mk_tar_gz "${git_cache}" "${basename}" "${date}" "${output}" ".git/*" ================================================ FILE: support/download/helpers ================================================ # Generate a reproducible archive from the content of a directory # # $1 : input directory # $2 : leading component in archive # $3 : ISO8601 date: YYYY-MM-DDThh:mm:ssZZ # $4 : output file # $5... : globs of filenames to exclude from the archive, suitable for # find's -path option, and relative to the input directory $1 # # Notes : # - the timestamp is internally rounded to the highest entire second # less than or equal to the timestamp (i.e. any sub-second fractional # part is ignored) # - must not be called with CWD as, or below, the input directory # - some temporary files are created in CWD, and removed at the end # # Example: # $ find /path/to/temp/dir # /path/to/temp/dir/ # /path/to/temp/dir/some-file # /path/to/temp/dir/some-dir/ # /path/to/temp/dir/some-dir/some-other-file # # $ mk_tar_gz /path/to/some/dir \ # foo_bar-1.2.3 \ # 1970-01-01T00:00:00Z \ # /path/to/foo.tar.gz \ # '.git/*' '.svn/*' # # $ tar tzf /path/to/foo.tar.gz # foo_bar-1.2.3/some-file # foo_bar-1.2.3/some-dir/some-other-file # mk_tar_gz() { local in_dir="${1}" local base_dir="${2}" local date="${3}" local out="${4}" shift 4 local glob tmp pax_options local -a find_opts for glob; do find_opts+=( -or -path "./${glob#./}" ) done # Drop sub-second precision to play nice with GNU tar's valid_timespec check date="$(date -d "${date}" -u +%Y-%m-%dT%H:%M:%S+00:00)" pax_options="delete=atime,delete=ctime,delete=mtime" pax_options+=",exthdr.name=%d/PaxHeaders/%f,exthdr.mtime={${date}}" tmp="$(mktemp --tmpdir="$(pwd)")" pushd "${in_dir}" >/dev/null # Establish list find . -not -type d -and -not \( -false "${find_opts[@]}" \) >"${tmp}.list" # Sort list for reproducibility LC_ALL=C sort <"${tmp}.list" >"${tmp}.sorted" # Create POSIX tarballs, since that's the format the most reproducible tar cf - --transform="s#^\./#${base_dir}/#S" \ --numeric-owner --owner=0 --group=0 --mtime="${date}" \ --format=posix --pax-option="${pax_options}" \ -T "${tmp}.sorted" >"${tmp}.tar" # Compress the archive gzip -6 -n <"${tmp}.tar" >"${out}" rm -f "${tmp}"{.list,.sorted,.tar} popd >/dev/null } # Keep this line and the following as last lines in this file. # vim: ft=bash ================================================ FILE: support/download/hg ================================================ #!/usr/bin/env bash # We want to catch any unexpected failure, and exit immediately set -e # Download helper for hg, to be called from the download wrapper script # # Options: # -q Be quiet. # -o FILE Generate archive in FILE. # -u URI Clone from repository at URI. # -c CSET Use changeset (or revision) CSET. # -n NAME Use basename NAME. # # Environment: # HG : the hg command to call quiet= while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do case "${OPT}" in q) quiet=-q;; o) output="${OPTARG}";; u) uri="${OPTARG}";; c) cset="${OPTARG}";; n) basename="${OPTARG}";; :) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;; \?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;; esac done shift $((OPTIND-1)) # Get rid of our options # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _hg() { if [ -z "${quiet}" ]; then printf '%s ' ${HG} "${@}"; printf '\n' fi _plain_hg "$@" } # Note: please keep command below aligned with what is printed above _plain_hg() { eval ${HG} "${@}" } _hg clone ${quiet} "${@}" --noupdate "'${uri}'" "'${basename}'" _plain_hg archive ${quiet} --repository "'${basename}'" --type tgz \ --prefix "'${basename}'" --rev "'${cset}'" \ - >"${output}" ================================================ FILE: support/download/scp ================================================ #!/usr/bin/env bash # We want to catch any unexpected failure, and exit immediately set -e # Download helper for scp, to be called from the download wrapper script # # Options: # -q Be quiet. # -o FILE Copy to local file FILE. # -f FILE Copy from remote file FILE. # -u URI Download file at URI. # # Environment: # SCP : the scp command to call quiet= while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do case "${OPT}" in q) quiet=-q;; o) output="${OPTARG}";; f) filename="${OPTARG}";; u) uri="${OPTARG}";; :) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;; \?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;; esac done shift $((OPTIND-1)) # Get rid of our options # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _scp() { if [ -z "${quiet}" ]; then printf '%s ' ${SCP} "${@}"; printf '\n' fi _plain_scp "$@" } # Note: please keep command below aligned with what is printed above _plain_scp() { eval ${SCP} "${@}" } # Remove any scheme prefix uri="${uri##scp://}" _scp ${quiet} "${@}" "'${uri}/${filename}'" "'${output}'" ================================================ FILE: support/download/svn ================================================ #!/usr/bin/env bash # NOTE: if the output of this backend has to change (e.g. we change what gets # included in the archive, or we change the format of the archive (e.g. tar # options, compression ratio or method)), we MUST update the format version # in the variable BR_FTM_VERSION_svn, in package/pkg-download.mk. # We want to catch any unexpected failure, and exit immediately set -e # Download helper for svn, to be called from the download wrapper script # # Options: # -q Be quiet. # -o FILE Generate archive in FILE. # -u URI Checkout from repository at URI. # -c REV Use revision REV. # -n NAME Use basename NAME. # # Environment: # SVN : the svn command to call . "${0%/*}/helpers" quiet= while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do case "${OPT}" in q) quiet=-q;; o) output="${OPTARG}";; u) uri="${OPTARG}";; c) rev="${OPTARG}";; n) basename="${OPTARG}";; :) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;; \?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;; esac done shift $((OPTIND-1)) # Get rid of our options # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _svn() { if [ -z "${quiet}" ]; then printf '%s ' ${SVN} "${@}"; printf '\n' fi _plain_svn "$@" } # Note: please keep command below aligned with what is printed above _plain_svn() { eval ${SVN} "${@}" } _svn export --ignore-keywords ${quiet} "${@}" "'${uri}@${rev}'" "'${basename}'" # Get the date of the revision, to generate reproducible archives. # The output format is YYYY-MM-DDTHH:MM:SS.mmmuuuZ (i.e. always in the # UTC timezone), which we can feed as-is to the --mtime option for tar. # In case there is a redirection (e.g. http -> https), just keep the # last line (svn outputs everything on stdout) date="$( _plain_svn info "'${uri}@${rev}'" \ |sed -r -e '/^Last Changed Date: /!d; s///' )" # Generate the archive. # We did a 'svn export' above, so it's not a working copy (there is no .svn # directory or file to ignore). mk_tar_gz "${basename}" "${basename}" "${date}" "${output}" ================================================ FILE: support/download/wget ================================================ #!/usr/bin/env bash # We want to catch any unexpected failure, and exit immediately set -e # Download helper for wget, to be called from the download wrapper script # # Options: # -q Be quiet. # -o FILE Save into file FILE. # -f FILENAME The filename of the tarball to get at URL # -u URL Download file at URL. # -e ENCODE Tell wget to urlencode the filename passed to it # # Environment: # WGET : the wget command to call quiet= while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do case "${OPT}" in q) quiet=-q;; o) output="${OPTARG}";; f) filename="${OPTARG}";; u) url="${OPTARG}";; e) encode="-e";; :) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;; \?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;; esac done shift $((OPTIND-1)) # Get rid of our options # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _wget() { if [ -z "${quiet}" ]; then printf '%s ' ${WGET} "${@}"; printf '\n' fi _plain_wget "$@" } # Note: please keep command below aligned with what is printed above _plain_wget() { eval ${WGET} "${@}" } # Replace every '?' with '%3F' in the filename; only for the PRIMARY and BACKUP # mirror [ -n "${encode}" ] && filename=${filename//\?/%3F} _wget ${quiet} "${@}" -O "'${output}'" "'${url}/${filename}'" ================================================ FILE: support/gnuconfig/README.buildroot ================================================ --- HOWTO --- If your package uses config.guess and/or config.sub, then it probably relies on the autotools as its build system. In this case, you should use the autotools-package infrastructure, which will take care of updating the config.guess and/or config.sub files appropriately. See the Buildroot documentation for details about the autotools-package infrastructure. If for some reason your package does not use the autotools-package infrastructure, you can request the config.guess and/or config.sub files of your package to be updated by using: _POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK --- UPDATE --- Run the script 'update' in this directory, and commit the result. The current Buildroot version is based on this commit of the config.git repository (leave alone on its own line, the script updates it): d7a4dee7cc25e332b990d0a6d9f0ddd42cb33cf5 ================================================ FILE: support/gnuconfig/config.guess ================================================ #! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2020 Free Software Foundation, Inc. timestamp='2020-09-19' # 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 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 . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2020 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." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. tmp= # shellcheck disable=SC2172 trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 set_cc_for_build() { # prevent multiple calls if $tmp is already set test "$tmp" && return 0 : "${TMPDIR=/tmp}" # shellcheck disable=SC2039 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } dummy=$tmp/dummy case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in ,,) echo "int x;" > "$dummy.c" for driver in cc gcc c89 c99 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD="$driver" break fi done if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac } # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu set_cc_for_build cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else #include #ifdef __DEFINED_va_list LIBC=musl #else LIBC=gnu #endif #endif EOF eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" ;; esac # Note: order is significant - the case branches are not exclusive. case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # 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=`(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) and ABI. case "$UNAME_MACHINE_ARCH" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) 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 # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) 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}${abi-}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) 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 ;; *:MidnightBSD:*:*) echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; *:OS108:*:*) echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:Sortix:*:*) echo "$UNAME_MACHINE"-unknown-sortix exit ;; *:Twizzler:*:*) echo "$UNAME_MACHINE"-unknown-twizzler exit ;; *:Redox:*:*) echo "$UNAME_MACHINE"-unknown-redox exit ;; mips:OSF1:*.*) echo mips-dec-osf1 exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. 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 ;; "EV4.5 (21064)") UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") UNAME_MACHINE=alpha ;; "EV5 (21164)") UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") 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`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) set_cc_for_build 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 test "$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) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos"$UNAME_RELEASE" 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 case "`/bin/arch`" in sun3) echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ test "$TARGET_BINARY_INTERFACE"x = x then echo m88k-dg-dgux"$UNAME_RELEASE" else echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if test -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 echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` case "$UNAME_MACHINE" in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if test -x /usr/bin/getconf; then 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 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 esac ;; esac fi if test "$HP_ARCH" = ""; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if test "$HP_ARCH" = hppa2.0w then set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH=hppa2.0w else HP_ARCH=hppa64 fi fi echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if test -x /usr/sbin/sysversion ; then echo "$UNAME_MACHINE"-unknown-osf1mk else echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) 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_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/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; arm:FreeBSD:*:*) UNAME_PROCESSOR=`uname -p` set_cc_for_build if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi else echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf fi exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case "$UNAME_PROCESSOR" in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) case "$UNAME_MACHINE" in x86) echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; i*:UWIN*:*) echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-pc-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; *:Minix:*:*) echo "$UNAME_MACHINE"-unknown-minix exit ;; aarch64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; 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 ;; hexagon:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; 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 ;; m68*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) set_cc_for_build IS_GLIBC=0 test x"${LIBC}" = xgnu && IS_GLIBC=1 sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef mips #undef mipsel #undef mips64 #undef mips64el #if ${IS_GLIBC} && defined(_ABI64) LIBCABI=gnuabi64 #else #if ${IS_GLIBC} && defined(_ABIN32) LIBCABI=gnuabin32 #else LIBCABI=${LIBC} #endif #endif #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 CPU=mipsisa64r6 #else #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 CPU=mipsisa32r6 #else #if defined(__mips64) CPU=mips64 #else CPU=mips #endif #endif #endif #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) MIPS_ENDIAN= #else MIPS_ENDIAN= #endif #endif EOF eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`" test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-"$LIBC" exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) set_cc_for_build LIBCABI=$LIBC if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_X32 >/dev/null then LIBCABI="$LIBC"x32 fi fi echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" exit ;; xtensa*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; i*86:*:4.*:*) UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # 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 configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if test -d /usr/nec; then echo mips-nec-sysv"$UNAME_RELEASE" else echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux"$UNAME_RELEASE" exit ;; 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 ;; *:Rhapsody:*:*) echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; arm64:Darwin:*:*) echo aarch64-apple-darwin"$UNAME_RELEASE" exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac if command -v xcode-select > /dev/null 2> /dev/null && \ ! xcode-select --print-path > /dev/null 2> /dev/null ; then # Avoid executing cc if there is no toolchain installed as # cc will be a stub that puts up a graphical alert # prompting the user to install developer tools. CC_FOR_BUILD=no_compiler_found else set_cc_for_build fi if test "$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 # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_PPC >/dev/null then UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then # uname -m returns i386 or x86_64 UNAME_PROCESSOR=$UNAME_MACHINE fi echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-*:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk"$UNAME_RELEASE" exit ;; NSR-*:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk"$UNAME_RELEASE" exit ;; NSV-*:NONSTOP_KERNEL:*:*) echo nsv-tandem-nsk"$UNAME_RELEASE" exit ;; NSX-*:NONSTOP_KERNEL:*:*) echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. # shellcheck disable=SC2154 if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" exit ;; i*86:rdos:*:*) echo "$UNAME_MACHINE"-pc-rdos exit ;; i*86:AROS:*:*) echo "$UNAME_MACHINE"-pc-aros exit ;; x86_64:VMkernel:*:*) echo "$UNAME_MACHINE"-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; *:Unleashed:*:*) echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" exit ;; esac # No uname command or uname output not recognized. set_cc_for_build cat > "$dummy.c" < #include #endif #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) #if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) #include #if defined(_SIZE_T_) || defined(SIGLOST) #include #endif #endif #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 (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 #if defined(_SIZE_T_) || defined(SIGLOST) struct utsname un; uname (&un); printf ("vax-dec-ultrix%s\n", un.release); exit (0); #else printf ("vax-dec-ultrix\n"); exit (0); #endif #endif #endif #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) #if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) #if defined(_SIZE_T_) || defined(SIGLOST) struct utsname *un; uname (&un); printf ("mips-dec-ultrix%s\n", un.release); exit (0); #else printf ("mips-dec-ultrix\n"); exit (0); #endif #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; } echo "$0: unable to guess system type" >&2 case "$UNAME_MACHINE:$UNAME_SYSTEM" in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <&2 <&2 </dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = "$UNAME_MACHINE" UNAME_RELEASE = "$UNAME_RELEASE" UNAME_SYSTEM = "$UNAME_SYSTEM" UNAME_VERSION = "$UNAME_VERSION" EOF fi exit 1 # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ================================================ FILE: support/gnuconfig/config.sub ================================================ #! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2020 Free Software Foundation, Inc. timestamp='2020-09-08' # 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 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 . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # https://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 # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2020 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." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. echo "$1" exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Split fields of configuration type # shellcheck disable=SC2162 IFS="-" read field1 field2 field3 field4 <&2 exit 1 ;; *-*-*-*) basic_machine=$field1-$field2 basic_os=$field3-$field4 ;; *-*-*) # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two # parts maybe_os=$field2-$field3 case $maybe_os in nto-qnx* | linux-* | uclinux-uclibc* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ | storm-chaos* | os2-emx* | rtmk-nova*) basic_machine=$field1 basic_os=$maybe_os ;; android-linux) basic_machine=$field1-unknown basic_os=linux-android ;; *) basic_machine=$field1-$field2 basic_os=$field3 ;; esac ;; *-*) # A lone config we happen to match not fitting any pattern case $field1-$field2 in decstation-3100) basic_machine=mips-dec basic_os= ;; *-*) # Second component is usually, but not always the OS case $field2 in # Prevent following clause from handling this valid os sun*os*) basic_machine=$field1 basic_os=$field2 ;; # Manufacturers dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ | unicom* | ibm* | next | hp | isi* | apollo | altos* \ | convergent* | ncr* | news | 32* | 3600* | 3100* \ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ | ultra | tti* | harris | dolphin | highlevel | gould \ | cbm | ns | masscomp | apple | axis | knuth | cray \ | microblaze* | sim | cisco \ | oki | wec | wrs | winbond) basic_machine=$field1-$field2 basic_os= ;; *) basic_machine=$field1 basic_os=$field2 ;; esac ;; esac ;; *) # Convert single-component short-hands not valid as part of # multi-component configurations. case $field1 in 386bsd) basic_machine=i386-pc basic_os=bsd ;; a29khif) basic_machine=a29k-amd basic_os=udi ;; adobe68k) basic_machine=m68010-adobe basic_os=scout ;; alliant) basic_machine=fx80-alliant basic_os= ;; altos | altos3068) basic_machine=m68k-altos basic_os= ;; am29k) basic_machine=a29k-none basic_os=bsd ;; amdahl) basic_machine=580-amdahl basic_os=sysv ;; amiga) basic_machine=m68k-unknown basic_os= ;; amigaos | amigados) basic_machine=m68k-unknown basic_os=amigaos ;; amigaunix | amix) basic_machine=m68k-unknown basic_os=sysv4 ;; apollo68) basic_machine=m68k-apollo basic_os=sysv ;; apollo68bsd) basic_machine=m68k-apollo basic_os=bsd ;; aros) basic_machine=i386-pc basic_os=aros ;; aux) basic_machine=m68k-apple basic_os=aux ;; balance) basic_machine=ns32k-sequent basic_os=dynix ;; blackfin) basic_machine=bfin-unknown basic_os=linux ;; cegcc) basic_machine=arm-unknown basic_os=cegcc ;; convex-c1) basic_machine=c1-convex basic_os=bsd ;; convex-c2) basic_machine=c2-convex basic_os=bsd ;; convex-c32) basic_machine=c32-convex basic_os=bsd ;; convex-c34) basic_machine=c34-convex basic_os=bsd ;; convex-c38) basic_machine=c38-convex basic_os=bsd ;; cray) basic_machine=j90-cray basic_os=unicos ;; crds | unos) basic_machine=m68k-crds basic_os= ;; da30) basic_machine=m68k-da30 basic_os= ;; decstation | pmax | pmin | dec3100 | decstatn) basic_machine=mips-dec basic_os= ;; delta88) basic_machine=m88k-motorola basic_os=sysv3 ;; dicos) basic_machine=i686-pc basic_os=dicos ;; djgpp) basic_machine=i586-pc basic_os=msdosdjgpp ;; ebmon29k) basic_machine=a29k-amd basic_os=ebmon ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson basic_os=ose ;; gmicro) basic_machine=tron-gmicro basic_os=sysv ;; go32) basic_machine=i386-pc basic_os=go32 ;; h8300hms) basic_machine=h8300-hitachi basic_os=hms ;; h8300xray) basic_machine=h8300-hitachi basic_os=xray ;; h8500hms) basic_machine=h8500-hitachi basic_os=hms ;; harris) basic_machine=m88k-harris basic_os=sysv3 ;; hp300 | hp300hpux) basic_machine=m68k-hp basic_os=hpux ;; hp300bsd) basic_machine=m68k-hp basic_os=bsd ;; hppaosf) basic_machine=hppa1.1-hp basic_os=osf ;; hppro) basic_machine=hppa1.1-hp basic_os=proelf ;; i386mach) basic_machine=i386-mach basic_os=mach ;; isi68 | isi) basic_machine=m68k-isi basic_os=sysv ;; m68knommu) basic_machine=m68k-unknown basic_os=linux ;; magnum | m3230) basic_machine=mips-mips basic_os=sysv ;; merlin) basic_machine=ns32k-utek basic_os=sysv ;; mingw64) basic_machine=x86_64-pc basic_os=mingw64 ;; mingw32) basic_machine=i686-pc basic_os=mingw32 ;; mingw32ce) basic_machine=arm-unknown basic_os=mingw32ce ;; monitor) basic_machine=m68k-rom68k basic_os=coff ;; morphos) basic_machine=powerpc-unknown basic_os=morphos ;; moxiebox) basic_machine=moxie-unknown basic_os=moxiebox ;; msdos) basic_machine=i386-pc basic_os=msdos ;; msys) basic_machine=i686-pc basic_os=msys ;; mvs) basic_machine=i370-ibm basic_os=mvs ;; nacl) basic_machine=le32-unknown basic_os=nacl ;; ncr3000) basic_machine=i486-ncr basic_os=sysv4 ;; netbsd386) basic_machine=i386-pc basic_os=netbsd ;; netwinder) basic_machine=armv4l-rebel basic_os=linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony basic_os=newsos ;; news1000) basic_machine=m68030-sony basic_os=newsos ;; necv70) basic_machine=v70-nec basic_os=sysv ;; nh3000) basic_machine=m68k-harris basic_os=cxux ;; nh[45]000) basic_machine=m88k-harris basic_os=cxux ;; nindy960) basic_machine=i960-intel basic_os=nindy ;; mon960) basic_machine=i960-intel basic_os=mon960 ;; nonstopux) basic_machine=mips-compaq basic_os=nonstopux ;; os400) basic_machine=powerpc-ibm basic_os=os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson basic_os=ose ;; os68k) basic_machine=m68k-none basic_os=os68k ;; paragon) basic_machine=i860-intel basic_os=osf ;; parisc) basic_machine=hppa-unknown basic_os=linux ;; psp) basic_machine=mipsallegrexel-sony basic_os=psp ;; pw32) basic_machine=i586-unknown basic_os=pw32 ;; rdos | rdos64) basic_machine=x86_64-pc basic_os=rdos ;; rdos32) basic_machine=i386-pc basic_os=rdos ;; rom68k) basic_machine=m68k-rom68k basic_os=coff ;; sa29200) basic_machine=a29k-amd basic_os=udi ;; sei) basic_machine=mips-sei basic_os=seiux ;; sequent) basic_machine=i386-sequent basic_os= ;; sps7) basic_machine=m68k-bull basic_os=sysv2 ;; st2000) basic_machine=m68k-tandem basic_os= ;; stratus) basic_machine=i860-stratus basic_os=sysv4 ;; sun2) basic_machine=m68000-sun basic_os= ;; sun2os3) basic_machine=m68000-sun basic_os=sunos3 ;; sun2os4) basic_machine=m68000-sun basic_os=sunos4 ;; sun3) basic_machine=m68k-sun basic_os= ;; sun3os3) basic_machine=m68k-sun basic_os=sunos3 ;; sun3os4) basic_machine=m68k-sun basic_os=sunos4 ;; sun4) basic_machine=sparc-sun basic_os= ;; sun4os3) basic_machine=sparc-sun basic_os=sunos3 ;; sun4os4) basic_machine=sparc-sun basic_os=sunos4 ;; sun4sol2) basic_machine=sparc-sun basic_os=solaris2 ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun basic_os= ;; sv1) basic_machine=sv1-cray basic_os=unicos ;; symmetry) basic_machine=i386-sequent basic_os=dynix ;; t3e) basic_machine=alphaev5-cray basic_os=unicos ;; t90) basic_machine=t90-cray basic_os=unicos ;; toad1) basic_machine=pdp10-xkl basic_os=tops20 ;; tpf) basic_machine=s390x-ibm basic_os=tpf ;; udi29k) basic_machine=a29k-amd basic_os=udi ;; ultra3) basic_machine=a29k-nyu basic_os=sym1 ;; v810 | necv810) basic_machine=v810-nec basic_os=none ;; vaxv) basic_machine=vax-dec basic_os=sysv ;; vms) basic_machine=vax-dec basic_os=vms ;; vsta) basic_machine=i386-pc basic_os=vsta ;; vxworks960) basic_machine=i960-wrs basic_os=vxworks ;; vxworks68) basic_machine=m68k-wrs basic_os=vxworks ;; vxworks29k) basic_machine=a29k-wrs basic_os=vxworks ;; xbox) basic_machine=i686-pc basic_os=mingw32 ;; ymp) basic_machine=ymp-cray basic_os=unicos ;; *) basic_machine=$1 basic_os= ;; esac ;; esac # Decode 1-component or ad-hoc basic machines case $basic_machine in # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) cpu=hppa1.1 vendor=winbond ;; op50n) cpu=hppa1.1 vendor=oki ;; op60c) cpu=hppa1.1 vendor=oki ;; ibm*) cpu=i370 vendor=ibm ;; orion105) cpu=clipper vendor=highlevel ;; mac | mpw | mac-mpw) cpu=m68k vendor=apple ;; pmac | pmac-mpw) cpu=powerpc vendor=apple ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) cpu=m68000 vendor=att ;; 3b*) cpu=we32k vendor=att ;; bluegene*) cpu=powerpc vendor=ibm basic_os=cnk ;; decsystem10* | dec10*) cpu=pdp10 vendor=dec basic_os=tops10 ;; decsystem20* | dec20*) cpu=pdp10 vendor=dec basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) cpu=m68k vendor=motorola ;; dpx2*) cpu=m68k vendor=bull basic_os=sysv3 ;; encore | umax | mmax) cpu=ns32k vendor=encore ;; elxsi) cpu=elxsi vendor=elxsi basic_os=${basic_os:-bsd} ;; fx2800) cpu=i860 vendor=alliant ;; genix) cpu=ns32k vendor=ns ;; h3050r* | hiux*) cpu=hppa1.1 vendor=hitachi basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) cpu=m68000 vendor=hp ;; hp9k3[2-9][0-9]) cpu=m68k vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) cpu=hppa1.1 vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp cpu=hppa1.1 vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp cpu=hppa1.1 vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) cpu=hppa1.1 vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; i*86v32) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv32 ;; i*86v4*) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv4 ;; i*86v) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv ;; i*86sol2) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=solaris2 ;; j90 | j90-cray) cpu=j90 vendor=cray basic_os=${basic_os:-unicos} ;; iris | iris4d) cpu=mips vendor=sgi case $basic_os in irix*) ;; *) basic_os=irix4 ;; esac ;; miniframe) cpu=m68000 vendor=convergent ;; *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) cpu=m68k vendor=atari basic_os=mint ;; news-3600 | risc-news) cpu=mips vendor=sony basic_os=newsos ;; next | m*-next) cpu=m68k vendor=next case $basic_os in openstep*) ;; nextstep*) ;; ns2*) basic_os=nextstep2 ;; *) basic_os=nextstep3 ;; esac ;; np1) cpu=np1 vendor=gould ;; op50n-* | op60c-*) cpu=hppa1.1 vendor=oki basic_os=proelf ;; pa-hitachi) cpu=hppa1.1 vendor=hitachi basic_os=hiuxwe2 ;; pbd) cpu=sparc vendor=tti ;; pbb) cpu=m68k vendor=tti ;; pc532) cpu=ns32k vendor=pc532 ;; pn) cpu=pn vendor=gould ;; power) cpu=power vendor=ibm ;; ps2) cpu=i386 vendor=ibm ;; rm[46]00) cpu=mips vendor=siemens ;; rtpc | rtpc-*) cpu=romp vendor=ibm ;; sde) cpu=mipsisa32 vendor=sde basic_os=${basic_os:-elf} ;; simso-wrs) cpu=sparclite vendor=wrs basic_os=vxworks ;; tower | tower-32) cpu=m68k vendor=ncr ;; vpp*|vx|vx-*) cpu=f301 vendor=fujitsu ;; w65) cpu=w65 vendor=wdc ;; w89k-*) cpu=hppa1.1 vendor=winbond basic_os=proelf ;; none) cpu=none vendor=none ;; leon|leon[3-9]) cpu=sparc vendor=$basic_machine ;; leon-*|leon[3-9]-*) cpu=sparc vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; *-*) # shellcheck disable=SC2162 IFS="-" read cpu vendor <&2 exit 1 ;; esac ;; esac # Here we canonicalize certain aliases for manufacturers. case $vendor in digital*) vendor=dec ;; commodore*) vendor=cbm ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if test x$basic_os != x then # First recognize some ad-hoc caes, or perhaps split kernel-os, or else just # set os. case $basic_os in gnu/linux*) kernel=linux os=`echo $basic_os | sed -e 's|gnu/linux|gnu|'` ;; nto-qnx*) kernel=nto os=`echo $basic_os | sed -e 's|nto-qnx|qnx|'` ;; *-*) # shellcheck disable=SC2162 IFS="-" read kernel os <&2 exit 1 ;; esac # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel. case $kernel-$os in linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* ) ;; uclinux-uclibc* ) ;; -dietlibc* | -newlib* | -musl* | -uclibc* ) # These are just libc implementations, not actual OSes, and thus # require a kernel. echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 exit 1 ;; kfreebsd*-gnu* | kopensolaris*-gnu*) ;; nto-qnx*) ;; *-eabi* | *-gnueabi*) ;; -*) # Blank kernel with real OS is always fine. ;; *-*) echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 exit 1 ;; esac # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. case $vendor in unknown) case $cpu-$os in *-riscix*) vendor=acorn ;; *-sunos*) vendor=sun ;; *-cnk* | *-aix*) vendor=ibm ;; *-beos*) vendor=be ;; *-hpux*) vendor=hp ;; *-mpeix*) vendor=hp ;; *-hiux*) vendor=hitachi ;; *-unos*) vendor=crds ;; *-dgux*) vendor=dg ;; *-luna*) vendor=omron ;; *-genix*) vendor=ns ;; *-clix*) vendor=intergraph ;; *-mvs* | *-opened*) vendor=ibm ;; *-os400*) vendor=ibm ;; s390-* | s390x-*) vendor=ibm ;; *-ptx*) vendor=sequent ;; *-tpf*) vendor=ibm ;; *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; *-aux*) vendor=apple ;; *-hms*) vendor=hitachi ;; *-mpw* | *-macos*) vendor=apple ;; *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; *-vos*) vendor=stratus ;; esac ;; esac echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ================================================ FILE: support/gnuconfig/update ================================================ #!/usr/bin/env bash set -e cd "${0%/*}" git clone https://git.savannah.gnu.org/git/config.git sha="$(cd config; git log -1 --pretty=tformat:%H)" sed -r -i -e "\$s/.*/${sha}/" README.buildroot cp config/config.* . for p in $(ls patches/*.patch 2>/dev/null); do patch -p1 < "${p}" done rm -rf config ================================================ FILE: support/kconfig/.gitignore ================================================ # # Quilt is being used to handle the patch series # .pc ================================================ FILE: support/kconfig/Makefile ================================================ # SPDX-License-Identifier: GPL-2.0 # =========================================================================== # Kernel configuration targets # These targets are used from top-level makefile PHONY += xconfig gconfig menuconfig config syncconfig update-po-config \ localmodconfig localyesconfig # Easy method for doing a status message kecho := : quiet_kecho := echo silent_kecho := : kecho := $($(quiet)kecho) ifdef KBUILD_KCONFIG Kconfig := $(KBUILD_KCONFIG) else Kconfig := Kconfig endif ifeq ($(quiet),silent_) silent := -s endif # We need this, in case the user has it in its environment unexport CONFIG_ xconfig: $(obj)/qconf $< $(silent) $(Kconfig) gconfig: $(obj)/gconf $< $(silent) $(Kconfig) menuconfig: $(obj)/mconf $< $(silent) $(Kconfig) config: $(obj)/conf $< $(silent) --oldaskconfig $(Kconfig) nconfig: $(obj)/nconf $< $(silent) $(Kconfig) # This has become an internal implementation detail and is now deprecated # for external use. syncconfig: $(obj)/conf $(Q)mkdir -p include/config include/generated $< $(silent) --$@ $(Kconfig) localyesconfig localmodconfig: $(obj)/conf $(Q)mkdir -p include/config include/generated $(Q)perl $(srctree)/$(src)/streamline_config.pl --$@ $(srctree) $(Kconfig) > .tmp.config $(Q)if [ -f .config ]; then \ cmp -s .tmp.config .config || \ (mv -f .config .config.old.1; \ mv -f .tmp.config .config; \ $< $(silent) --oldconfig $(Kconfig); \ mv -f .config.old.1 .config.old) \ else \ mv -f .tmp.config .config; \ $< $(silent) --oldconfig $(Kconfig); \ fi $(Q)rm -f .tmp.config # Create new linux.pot file # Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h $(Q)$(kecho) " GEN config.pot" $(Q)xgettext --default-domain=linux \ --add-comments --keyword=_ --keyword=N_ \ --from-code=UTF-8 \ --files-from=$(srctree)/scripts/kconfig/POTFILES.in \ --directory=$(srctree) --directory=$(objtree) \ --output $(obj)/config.pot $(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot $(Q)(for i in `ls $(srctree)/arch/*/Kconfig \ $(srctree)/arch/*/um/Kconfig`; \ do \ $(kecho) " GEN $$i"; \ $(obj)/kxgettext $$i \ >> $(obj)/config.pot; \ done ) $(Q)$(kecho) " GEN linux.pot" $(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \ --output $(obj)/linux.pot $(Q)rm -f $(obj)/config.pot # These targets map 1:1 to the commandline options of 'conf' simple-targets := oldconfig allnoconfig allyesconfig allmodconfig \ alldefconfig randconfig listnewconfig olddefconfig PHONY += $(simple-targets) $(simple-targets): $(obj)/conf $< $(silent) --$@ $(Kconfig) PHONY += oldnoconfig silentoldconfig savedefconfig defconfig # oldnoconfig is an alias of olddefconfig, because people already are dependent # on its behavior (sets new symbols to their default value but not 'n') with the # counter-intuitive name. oldnoconfig: olddefconfig @echo " WARNING: \"oldnoconfig\" target will be removed after Linux 4.19" @echo " Please use \"olddefconfig\" instead, which is an alias." # We do not expect manual invokcation of "silentoldcofig" (or "syncconfig"). silentoldconfig: syncconfig @echo " WARNING: \"silentoldconfig\" has been renamed to \"syncconfig\"" @echo " and is now an internal implementation detail." @echo " What you want is probably \"oldconfig\"." @echo " \"silentoldconfig\" will be removed after Linux 4.19" savedefconfig: $(obj)/conf $< $(silent) --$@=defconfig $(Kconfig) defconfig: $(obj)/conf ifeq ($(KBUILD_DEFCONFIG),) $< $(silent) --defconfig $(Kconfig) else ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),) @$(kecho) "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'" $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig) else @$(kecho) "*** Default configuration is based on target '$(KBUILD_DEFCONFIG)'" $(Q)$(MAKE) -f $(srctree)/Makefile $(KBUILD_DEFCONFIG) endif endif %_defconfig: $(obj)/conf $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig) configfiles=$(wildcard $(srctree)/kernel/configs/$@ $(srctree)/arch/$(SRCARCH)/configs/$@) %.config: $(obj)/conf $(if $(call configfiles),, $(error No configuration exists for this target on this architecture)) $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m .config $(configfiles) +$(Q)yes "" | $(MAKE) -f $(srctree)/Makefile oldconfig PHONY += kvmconfig kvmconfig: kvm_guest.config @: PHONY += xenconfig xenconfig: xen.config @: PHONY += tinyconfig tinyconfig: $(Q)$(MAKE) -f $(srctree)/Makefile allnoconfig tiny.config # CHECK: -o cache_dir= working? PHONY += testconfig testconfig: $(obj)/conf $(PYTHON3) -B -m pytest $(srctree)/$(src)/tests \ -o cache_dir=$(abspath $(obj)/tests/.cache) \ $(if $(findstring 1,$(KBUILD_VERBOSE)),--capture=no) clean-dirs += tests/.cache # Help text used by make help help: @echo ' config - Update current config utilising a line-oriented program' @echo ' nconfig - Update current config utilising a ncurses menu based' @echo ' program' @echo ' menuconfig - Update current config utilising a menu based program' @echo ' xconfig - Update current config utilising a Qt based front-end' @echo ' gconfig - Update current config utilising a GTK+ based front-end' @echo ' oldconfig - Update current config utilising a provided .config as base' @echo ' localmodconfig - Update current config disabling modules not loaded' @echo ' localyesconfig - Update current config converting local mods to core' @echo ' defconfig - New config with default from ARCH supplied defconfig' @echo ' savedefconfig - Save current config as ./defconfig (minimal config)' @echo ' allnoconfig - New config where all options are answered with no' @echo ' allyesconfig - New config where all options are accepted with yes' @echo ' allmodconfig - New config selecting modules when possible' @echo ' alldefconfig - New config with all symbols set to default' @echo ' randconfig - New config with random answer to all options' @echo ' listnewconfig - List new options' @echo ' olddefconfig - Same as oldconfig but sets new symbols to their' @echo ' default value without prompting' @echo ' kvmconfig - Enable additional options for kvm guest kernel support' @echo ' xenconfig - Enable additional options for xen dom0 and guest kernel support' @echo ' tinyconfig - Configure the tiniest possible kernel' # lxdialog stuff check-lxdialog := $(srctree)/$(src)/lxdialog/check-lxdialog.sh # Use recursively expanded variables so we do not call gcc unless # we really need to do so. (Do not call gcc as part of make mrproper) HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \ -DLOCALE # =========================================================================== # Shared Makefile for the various kconfig executables: # conf: Used for defconfig, oldconfig and related targets # nconf: Used for the nconfig target. # Utilizes ncurses # mconf: Used for the menuconfig target # Utilizes the lxdialog package # qconf: Used for the xconfig target # Based on Qt which needs to be installed to compile it # gconf: Used for the gconfig target # Based on GTK+ which needs to be installed to compile it # object files used by all kconfig flavours lxdialog := lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o lxdialog += lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o conf-objs := conf.o zconf.tab.o mconf-objs := mconf.o zconf.tab.o $(lxdialog) nconf-objs := nconf.o zconf.tab.o nconf.gui.o kxgettext-objs := kxgettext.o zconf.tab.o qconf-cxxobjs := qconf.o qconf-objs := zconf.tab.o gconf-objs := gconf.o zconf.tab.o hostprogs-y := conf ifeq ($(MAKECMDGOALS),nconf) hostprogs-y += nconf endif ifeq ($(MAKECMDGOALS),mconf) hostprogs-y += mconf endif ifeq ($(MAKECMDGOALS),update-po-config) hostprogs-y += kxgettext endif ifeq ($(MAKECMDGOALS),qconf) qconf-target := 1 endif ifeq ($(MAKECMDGOALS),gconf) gconf-target := 1 endif ifeq ($(qconf-target),1) hostprogs-y += qconf endif ifeq ($(gconf-target),1) hostprogs-y += gconf endif targets += zconf.lex.c clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck clean-files += gconf.glade.h clean-files += config.pot linux.pot # Check that we have the required ncurses stuff installed for lxdialog (menuconfig) PHONY += $(obj)/dochecklxdialog $(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/dochecklxdialog $(obj)/dochecklxdialog: $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTLOADLIBES_mconf) always := dochecklxdialog # Add environment specific flags HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS)) HOST_EXTRACXXFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCXX) $(HOSTCXXFLAGS)) # generated files seem to need this to find local include files HOSTCFLAGS_zconf.lex.o := -I$(src) HOSTCFLAGS_zconf.tab.o := -I$(src) HOSTLOADLIBES_qconf = $(KC_QT_LIBS) HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS) HOSTLOADLIBES_gconf = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0` HOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \ -Wno-missing-prototypes HOSTLOADLIBES_mconf = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC)) HOSTLOADLIBES_nconf = $(shell \ pkg-config --libs menuw panelw ncursesw 2>/dev/null \ || pkg-config --libs menu panel ncurses 2>/dev/null \ || echo "-lmenu -lpanel -lncurses" ) $(obj)/qconf.o: $(obj)/.tmp_qtcheck ifeq ($(MAKECMDGOALS),qconf) $(obj)/.tmp_qtcheck: $(src)/Makefile -include $(obj)/.tmp_qtcheck # Qt needs some extra effort... $(obj)/.tmp_qtcheck: @set -e; $(kecho) " CHECK qt"; \ if pkg-config --exists Qt5Core; then \ cflags="-std=c++11 -fPIC `pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets`"; \ libs=`pkg-config --libs Qt5Core Qt5Gui Qt5Widgets`; \ moc=`pkg-config --variable=host_bins Qt5Core`/moc; \ elif pkg-config --exists QtCore; then \ cflags=`pkg-config --cflags QtCore QtGui`; \ libs=`pkg-config --libs QtCore QtGui`; \ moc=`pkg-config --variable=moc_location QtCore`; \ else \ echo >&2 "*"; \ echo >&2 "* Could not find Qt via pkg-config."; \ echo >&2 "* Please install either Qt 4.8 or 5.x. and make sure it's in PKG_CONFIG_PATH"; \ echo >&2 "*"; \ exit 1; \ fi; \ echo "KC_QT_CFLAGS=$$cflags" > $@; \ echo "KC_QT_LIBS=$$libs" >> $@; \ echo "KC_QT_MOC=$$moc" >> $@ endif ifeq ($(MAKECMDGOALS),gconf) $(obj)/gconf.o: $(obj)/.tmp_gtkcheck -include $(obj)/.tmp_gtkcheck # GTK+ needs some extra effort, too... $(obj)/.tmp_gtkcheck: @if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then \ if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \ touch $@; \ else \ echo >&2 "*"; \ echo >&2 "* GTK+ is present but version >= 2.0.0 is required."; \ echo >&2 "*"; \ false; \ fi \ else \ echo >&2 "*"; \ echo >&2 "* Unable to find the GTK+ installation. Please make sure that"; \ echo >&2 "* the GTK+ 2.0 development package is correctly installed..."; \ echo >&2 "* You need gtk+-2.0, glib-2.0 and libglade-2.0."; \ echo >&2 "*"; \ false; \ fi endif $(obj)/zconf.tab.o: $(obj)/zconf.lex.c $(obj)/qconf.o: $(obj)/qconf.moc $(obj)/%.moc: $(src)/%.h $(obj)/.tmp_qtcheck $(KC_QT_MOC) -i $< -o $@ # Extract gconf menu items for i18n support $(obj)/gconf.glade.h: $(obj)/gconf.glade $(Q)intltool-extract --type=gettext/glade --srcdir=$(srctree) \ $(obj)/gconf.glade ================================================ FILE: support/kconfig/Makefile.br ================================================ src := . top_srcdir=../../ top_builddir=../../ srctree := . obj ?= . include Makefile #HOSTCFLAGS+=-Dinline="" -include foo.h -include $(obj)/.depend $(obj)/.depend: $(wildcard *.h *.c) $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) -MM *.c > $@ 2>/dev/null || : __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m)) host-csingle := $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m))) host-cmulti := $(foreach m,$(__hostprogs),\ $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m)))) host-cxxmulti := $(foreach m,$(__hostprogs),\ $(if $($(m)-cxxobjs),$(m),$(if $($(m)-objs),))) host-cobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(__hostprogs),$($(m)-objs)))) host-cxxobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(__hostprogs),$($(m)-cxxobjs)))) HOST_EXTRACFLAGS += -I$(obj) -DCONFIG_=\"\" $(host-csingle): %: %.c $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $< -o $(obj)/$@ $(host-cmulti): %: $(host-cobjs) $(host-cshlib) $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $(addprefix $(obj)/,$($(@F)-objs)) $(HOSTLOADLIBES_$(@F)) -o $(obj)/$@ $(host-cxxmulti): %: $(host-cxxobjs) $(host-cobjs) $(host-cshlib) $(HOSTCXX) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCXXFLAGS_$@) $(addprefix $(obj)/,$($(@F)-objs) $($(@F)-cxxobjs)) $(HOSTLOADLIBES_$(@F)) -o $(obj)/$@ $(obj)/%.o: %.c $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F)) -c $< -o $@ $(obj)/%.o: $(obj)/%.c $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F)) -c $< -o $@ $(obj)/%.o: %.cc $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCXXFLAGS_$(@F)) -c $< -o $@ $(obj)/%:: $(src)/%_shipped $(Q)cat $< > $@ clean: $(Q)rm -f $(addprefix $(obj)/,$(clean-files)) distclean: clean $(Q)rm -f $(addprefix $(obj)/,$(lxdialog) $(conf-objs) $(mconf-objs) $(kxgettext-objs) \ $(hostprogs-y) $(qconf-cxxobjs) $(qconf-objs) $(gconf-objs) \ mconf .depend) FORCE: .PHONY: FORCE clean distclean ================================================ FILE: support/kconfig/POTFILES.in ================================================ scripts/kconfig/lxdialog/checklist.c scripts/kconfig/lxdialog/inputbox.c scripts/kconfig/lxdialog/menubox.c scripts/kconfig/lxdialog/textbox.c scripts/kconfig/lxdialog/util.c scripts/kconfig/lxdialog/yesno.c scripts/kconfig/mconf.c scripts/kconfig/conf.c scripts/kconfig/confdata.c scripts/kconfig/gconf.c scripts/kconfig/gconf.glade.h scripts/kconfig/qconf.cc ================================================ FILE: support/kconfig/README.buildroot ================================================ This is a copy of the kconfig code in the kernel (currently 4.17-rc2) tweaked to suit Buildroot. To update: cp -r /usr/src/linux/scripts/kconfig support/kconfig.new cd support/kconfig.new # zconf.lex.c and zconf.tab.c needs to be generated by 'make menuconfig' mv zconf.lex.c zconf.lex.c_shipped mv zconf.tab.c zconf.tab.c_shipped rm -rf tests/ cp -a ../kconfig/patches ../kconfig/README.buildroot ../kconfig/.gitignore . quilt push -a # Fix any conflict cd .. rm -rf kconfig mv kconfig.new kconfig Then verify the toplevel targets work: config defconfig menuconfig nconfig xconfig gconfig oldconfig ================================================ FILE: support/kconfig/check.sh ================================================ #!/bin/sh # SPDX-License-Identifier: GPL-2.0 # Needed for systems without gettext $* -x c -o /dev/null - > /dev/null 2>&1 << EOF #include int main() { gettext(""); return 0; } EOF if [ ! "$?" -eq "0" ]; then echo -DKBUILD_NO_NLS; fi ================================================ FILE: support/kconfig/conf.c ================================================ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "lkc.h" static void conf(struct menu *menu); static void check_conf(struct menu *menu); enum input_mode { oldaskconfig, syncconfig, oldconfig, allnoconfig, allyesconfig, allmodconfig, alldefconfig, randconfig, defconfig, savedefconfig, listnewconfig, olddefconfig, }; static enum input_mode input_mode = oldaskconfig; static int indent = 1; static int tty_stdio; static int sync_kconfig; static int conf_cnt; static char line[PATH_MAX]; static struct menu *rootEntry; static void print_help(struct menu *menu) { struct gstr help = str_new(); menu_get_ext_help(menu, &help); printf("\n%s\n", str_get(&help)); str_free(&help); } static void strip(char *str) { char *p = str; int l; while ((isspace(*p))) p++; l = strlen(p); if (p != str) memmove(str, p, l + 1); if (!l) return; p = str + l - 1; while ((isspace(*p))) *p-- = 0; } /* Helper function to facilitate fgets() by Jean Sacren. */ static void xfgets(char *str, int size, FILE *in) { if (!fgets(str, size, in)) fprintf(stderr, "\nError in reading or end of file.\n"); if (!tty_stdio) printf("%s", str); } static int conf_askvalue(struct symbol *sym, const char *def) { enum symbol_type type = sym_get_type(sym); if (!sym_has_value(sym)) printf(_("(NEW) ")); line[0] = '\n'; line[1] = 0; if (!sym_is_changable(sym)) { printf("%s\n", def); line[0] = '\n'; line[1] = 0; return 0; } switch (input_mode) { case oldconfig: case syncconfig: if (sym_has_value(sym)) { printf("%s\n", def); return 0; } /* fall through */ case oldaskconfig: fflush(stdout); xfgets(line, sizeof(line), stdin); return 1; default: break; } switch (type) { case S_INT: case S_HEX: case S_STRING: printf("%s\n", def); return 1; default: ; } printf("%s", line); return 1; } static int conf_string(struct menu *menu) { struct symbol *sym = menu->sym; const char *def; while (1) { printf("%*s%s ", indent - 1, "", _(menu->prompt->text)); printf("(%s) ", sym->name); def = sym_get_string_value(sym); if (sym_get_string_value(sym)) printf("[%s] ", def); if (!conf_askvalue(sym, def)) return 0; switch (line[0]) { case '\n': break; case '?': /* print help */ if (line[1] == '\n') { print_help(menu); def = NULL; break; } /* fall through */ default: line[strlen(line)-1] = 0; def = line; } if (def && sym_set_string_value(sym, def)) return 0; } } static int conf_sym(struct menu *menu) { struct symbol *sym = menu->sym; tristate oldval, newval; while (1) { printf("%*s%s ", indent - 1, "", _(menu->prompt->text)); if (sym->name) printf("(%s) ", sym->name); putchar('['); oldval = sym_get_tristate_value(sym); switch (oldval) { case no: putchar('N'); break; case mod: putchar('M'); break; case yes: putchar('Y'); break; } if (oldval != no && sym_tristate_within_range(sym, no)) printf("/n"); if (oldval != mod && sym_tristate_within_range(sym, mod)) printf("/m"); if (oldval != yes && sym_tristate_within_range(sym, yes)) printf("/y"); printf("/?] "); if (!conf_askvalue(sym, sym_get_string_value(sym))) return 0; strip(line); switch (line[0]) { case 'n': case 'N': newval = no; if (!line[1] || !strcmp(&line[1], "o")) break; continue; case 'm': case 'M': newval = mod; if (!line[1]) break; continue; case 'y': case 'Y': newval = yes; if (!line[1] || !strcmp(&line[1], "es")) break; continue; case 0: newval = oldval; break; case '?': goto help; default: continue; } if (sym_set_tristate_value(sym, newval)) return 0; help: print_help(menu); } } static int conf_choice(struct menu *menu) { struct symbol *sym, *def_sym; struct menu *child; bool is_new; sym = menu->sym; is_new = !sym_has_value(sym); if (sym_is_changable(sym)) { conf_sym(menu); sym_calc_value(sym); switch (sym_get_tristate_value(sym)) { case no: return 1; case mod: return 0; case yes: break; } } else { switch (sym_get_tristate_value(sym)) { case no: return 1; case mod: printf("%*s%s\n", indent - 1, "", _(menu_get_prompt(menu))); return 0; case yes: break; } } while (1) { int cnt, def; printf("%*s%s\n", indent - 1, "", _(menu_get_prompt(menu))); def_sym = sym_get_choice_value(sym); cnt = def = 0; line[0] = 0; for (child = menu->list; child; child = child->next) { if (!menu_is_visible(child)) continue; if (!child->sym) { printf("%*c %s\n", indent, '*', _(menu_get_prompt(child))); continue; } cnt++; if (child->sym == def_sym) { def = cnt; printf("%*c", indent, '>'); } else printf("%*c", indent, ' '); printf(" %d. %s", cnt, _(menu_get_prompt(child))); if (child->sym->name) printf(" (%s)", child->sym->name); if (!sym_has_value(child->sym)) printf(_(" (NEW)")); printf("\n"); } printf(_("%*schoice"), indent - 1, ""); if (cnt == 1) { printf("[1]: 1\n"); goto conf_childs; } printf("[1-%d?]: ", cnt); switch (input_mode) { case oldconfig: case syncconfig: if (!is_new) { cnt = def; printf("%d\n", cnt); break; } /* fall through */ case oldaskconfig: fflush(stdout); xfgets(line, sizeof(line), stdin); strip(line); if (line[0] == '?') { print_help(menu); continue; } if (!line[0]) cnt = def; else if (isdigit(line[0])) cnt = atoi(line); else continue; break; default: break; } conf_childs: for (child = menu->list; child; child = child->next) { if (!child->sym || !menu_is_visible(child)) continue; if (!--cnt) break; } if (!child) continue; if (line[0] && line[strlen(line) - 1] == '?') { print_help(child); continue; } sym_set_choice_value(sym, child->sym); for (child = child->list; child; child = child->next) { indent += 2; conf(child); indent -= 2; } return 1; } } static void conf(struct menu *menu) { struct symbol *sym; struct property *prop; struct menu *child; if (!menu_is_visible(menu)) return; sym = menu->sym; prop = menu->prompt; if (prop) { const char *prompt; switch (prop->type) { case P_MENU: /* * Except in oldaskconfig mode, we show only menus that * contain new symbols. */ if (input_mode != oldaskconfig && rootEntry != menu) { check_conf(menu); return; } /* fall through */ case P_COMMENT: prompt = menu_get_prompt(menu); if (prompt) printf("%*c\n%*c %s\n%*c\n", indent, '*', indent, '*', _(prompt), indent, '*'); default: ; } } if (!sym) goto conf_childs; if (sym_is_choice(sym)) { conf_choice(menu); if (sym->curr.tri != mod) return; goto conf_childs; } switch (sym->type) { case S_INT: case S_HEX: case S_STRING: conf_string(menu); break; default: conf_sym(menu); break; } conf_childs: if (sym) indent += 2; for (child = menu->list; child; child = child->next) conf(child); if (sym) indent -= 2; } static void check_conf(struct menu *menu) { struct symbol *sym; struct menu *child; if (!menu_is_visible(menu)) return; sym = menu->sym; if (sym && !sym_has_value(sym)) { if (sym_is_changable(sym) || (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) { if (input_mode == listnewconfig) { if (sym->name) { const char *str; if (sym->type == S_STRING) { str = sym_get_string_value(sym); str = sym_escape_string_value(str); printf("%s%s=%s\n", CONFIG_, sym->name, str); free((void *)str); } else { str = sym_get_string_value(sym); printf("%s%s=%s\n", CONFIG_, sym->name, str); } } } else { if (!conf_cnt++) printf(_("*\n* Restart config...\n*\n")); rootEntry = menu_get_parent_menu(menu); conf(rootEntry); } } } for (child = menu->list; child; child = child->next) check_conf(child); } static struct option long_opts[] = { {"oldaskconfig", no_argument, NULL, oldaskconfig}, {"oldconfig", no_argument, NULL, oldconfig}, {"syncconfig", no_argument, NULL, syncconfig}, {"defconfig", optional_argument, NULL, defconfig}, {"savedefconfig", required_argument, NULL, savedefconfig}, {"allnoconfig", no_argument, NULL, allnoconfig}, {"allyesconfig", no_argument, NULL, allyesconfig}, {"allmodconfig", no_argument, NULL, allmodconfig}, {"alldefconfig", no_argument, NULL, alldefconfig}, {"randconfig", no_argument, NULL, randconfig}, {"listnewconfig", no_argument, NULL, listnewconfig}, {"olddefconfig", no_argument, NULL, olddefconfig}, /* * oldnoconfig is an alias of olddefconfig, because people already * are dependent on its behavior(sets new symbols to their default * value but not 'n') with the counter-intuitive name. */ {"oldnoconfig", no_argument, NULL, olddefconfig}, {NULL, 0, NULL, 0} }; static void conf_usage(const char *progname) { printf("Usage: %s [-s] [option] \n", progname); printf("[option] is _one_ of the following:\n"); printf(" --listnewconfig List new options\n"); printf(" --oldaskconfig Start a new configuration using a line-oriented program\n"); printf(" --oldconfig Update a configuration using a provided .config as base\n"); printf(" --syncconfig Similar to oldconfig but generates configuration in\n" " include/{generated/,config/}\n"); printf(" --olddefconfig Same as oldconfig but sets new symbols to their default value\n"); printf(" --oldnoconfig An alias of olddefconfig\n"); printf(" --defconfig New config with default defined in \n"); printf(" --savedefconfig Save the minimal current configuration to \n"); printf(" --allnoconfig New config where all options are answered with no\n"); printf(" --allyesconfig New config where all options are answered with yes\n"); printf(" --allmodconfig New config where all options are answered with mod\n"); printf(" --alldefconfig New config with all symbols set to default\n"); printf(" --randconfig New config with random answer to all options\n"); } int main(int ac, char **av) { const char *progname = av[0]; int opt; const char *name, *defconfig_file = NULL /* gcc uninit */; struct stat tmpstat; setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); tty_stdio = isatty(0) && isatty(1); while ((opt = getopt_long(ac, av, "s", long_opts, NULL)) != -1) { if (opt == 's') { conf_set_message_callback(NULL); continue; } input_mode = (enum input_mode)opt; switch (opt) { case syncconfig: sync_kconfig = 1; break; case defconfig: case savedefconfig: defconfig_file = optarg; break; case randconfig: { struct timeval now; unsigned int seed; char *seed_env; /* * Use microseconds derived seed, * compensate for systems where it may be zero */ gettimeofday(&now, NULL); seed = (unsigned int)((now.tv_sec + 1) * (now.tv_usec + 1)); seed_env = getenv("KCONFIG_SEED"); if( seed_env && *seed_env ) { char *endp; int tmp = (int)strtol(seed_env, &endp, 0); if (*endp == '\0') { seed = tmp; } } fprintf( stderr, "KCONFIG_SEED=0x%X\n", seed ); srand(seed); break; } case oldaskconfig: case oldconfig: case allnoconfig: case allyesconfig: case allmodconfig: case alldefconfig: case listnewconfig: case olddefconfig: break; case '?': conf_usage(progname); exit(1); break; } } if (ac == optind) { fprintf(stderr, _("%s: Kconfig file missing\n"), av[0]); conf_usage(progname); exit(1); } name = av[optind]; conf_parse(name); if (sync_kconfig) { name = conf_get_configname(); if (stat(name, &tmpstat)) { fprintf(stderr, _("***\n" "*** Configuration file \"%s\" not found!\n" "***\n" "*** Please run some configurator (e.g. \"make oldconfig\" or\n" "*** \"make menuconfig\" or \"make xconfig\").\n" "***\n"), name); exit(1); } } switch (input_mode) { case defconfig: if (!defconfig_file) defconfig_file = conf_get_default_confname(); if (conf_read(defconfig_file)) { fprintf(stderr, _("***\n" "*** Can't find default configuration \"%s\"!\n" "***\n"), defconfig_file); exit(1); } break; case savedefconfig: case syncconfig: case oldaskconfig: case oldconfig: case listnewconfig: case olddefconfig: conf_read(NULL); break; case allnoconfig: case allyesconfig: case allmodconfig: case alldefconfig: case randconfig: name = getenv("KCONFIG_ALLCONFIG"); if (!name) break; if ((strcmp(name, "") != 0) && (strcmp(name, "1") != 0)) { if (conf_read_simple(name, S_DEF_USER)) { fprintf(stderr, _("*** Can't read seed configuration \"%s\"!\n"), name); exit(1); } break; } switch (input_mode) { case allnoconfig: name = "allno.config"; break; case allyesconfig: name = "allyes.config"; break; case allmodconfig: name = "allmod.config"; break; case alldefconfig: name = "alldef.config"; break; case randconfig: name = "allrandom.config"; break; default: break; } if (conf_read_simple(name, S_DEF_USER) && conf_read_simple("all.config", S_DEF_USER)) { fprintf(stderr, _("*** KCONFIG_ALLCONFIG set, but no \"%s\" or \"all.config\" file found\n"), name); exit(1); } break; default: break; } if (sync_kconfig) { if (conf_get_changed()) { name = getenv("KCONFIG_NOSILENTUPDATE"); if (name && *name) { fprintf(stderr, _("\n*** The configuration requires explicit update.\n\n")); return 1; } } } switch (input_mode) { case allnoconfig: conf_set_all_new_symbols(def_no); break; case allyesconfig: conf_set_all_new_symbols(def_yes); break; case allmodconfig: conf_set_all_new_symbols(def_mod); break; case alldefconfig: conf_set_all_new_symbols(def_default); break; case randconfig: /* Really nothing to do in this loop */ while (conf_set_all_new_symbols(def_random)) ; break; case defconfig: conf_set_all_new_symbols(def_default); break; case savedefconfig: break; case oldaskconfig: rootEntry = &rootmenu; conf(&rootmenu); input_mode = oldconfig; /* fall through */ case oldconfig: case listnewconfig: case syncconfig: /* Update until a loop caused no more changes */ do { conf_cnt = 0; check_conf(&rootmenu); } while (conf_cnt); break; case olddefconfig: default: break; } if (sync_kconfig) { /* syncconfig is used during the build so we shall update autoconf. * All other commands are only used to generate a config. */ if (conf_get_changed() && conf_write(NULL)) { fprintf(stderr, _("\n*** Error during writing of the configuration.\n\n")); exit(1); } if (conf_write_autoconf()) { fprintf(stderr, _("\n*** Error during update of the configuration.\n\n")); return 1; } } else if (input_mode == savedefconfig) { if (conf_write_defconfig(defconfig_file)) { fprintf(stderr, _("n*** Error while saving defconfig to: %s\n\n"), defconfig_file); return 1; } } else if (input_mode != listnewconfig) { if (conf_write(NULL)) { fprintf(stderr, _("\n*** Error during writing of the configuration.\n\n")); exit(1); } } return 0; } ================================================ FILE: support/kconfig/confdata.c ================================================ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ #include #include #include #include #include #include #include #include #include #include #include #include "lkc.h" struct conf_printer { void (*print_symbol)(FILE *, struct symbol *, const char *, void *); void (*print_comment)(FILE *, const char *, void *); }; static void conf_warning(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); static void conf_message(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); static const char *conf_filename; static int conf_lineno, conf_warnings; const char conf_defname[] = ".defconfig"; static void conf_warning(const char *fmt, ...) { va_list ap; va_start(ap, fmt); fprintf(stderr, "%s:%d:warning: ", conf_filename, conf_lineno); vfprintf(stderr, fmt, ap); fprintf(stderr, "\n"); va_end(ap); conf_warnings++; } static void conf_default_message_callback(const char *fmt, va_list ap) { printf("#\n# "); vprintf(fmt, ap); printf("\n#\n"); } static void (*conf_message_callback) (const char *fmt, va_list ap) = conf_default_message_callback; void conf_set_message_callback(void (*fn) (const char *fmt, va_list ap)) { conf_message_callback = fn; } static void conf_message(const char *fmt, ...) { va_list ap; va_start(ap, fmt); if (conf_message_callback) conf_message_callback(fmt, ap); va_end(ap); } const char *conf_get_configname(void) { char *name = getenv("BR2_CONFIG"); return name ? name : ".config"; } const char *conf_get_autoconfig_name(void) { return getenv("KCONFIG_AUTOCONFIG"); } static char *conf_expand_value(const char *in) { struct symbol *sym; const char *src; static char res_value[SYMBOL_MAXLENGTH]; char *dst, name[SYMBOL_MAXLENGTH]; res_value[0] = 0; dst = name; while ((src = strchr(in, '$'))) { strncat(res_value, in, src - in); src++; dst = name; while (isalnum(*src) || *src == '_') *dst++ = *src++; *dst = 0; sym = sym_lookup(name, 0); sym_calc_value(sym); strcat(res_value, sym_get_string_value(sym)); in = src; } strcat(res_value, in); return res_value; } char *conf_get_default_confname(void) { struct stat buf; static char fullname[PATH_MAX+1]; char *env, *name; name = conf_expand_value(conf_defname); env = getenv(SRCTREE); if (env) { sprintf(fullname, "%s/%s", env, name); if (!stat(fullname, &buf)) return fullname; } return name; } static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p) { char *p2; switch (sym->type) { case S_TRISTATE: if (p[0] == 'm') { sym->def[def].tri = mod; sym->flags |= def_flags; break; } /* fall through */ case S_BOOLEAN: if (p[0] == 'y') { sym->def[def].tri = yes; sym->flags |= def_flags; break; } if (p[0] == 'n') { sym->def[def].tri = no; sym->flags |= def_flags; break; } if (def != S_DEF_AUTO) conf_warning("symbol value '%s' invalid for %s", p, sym->name); return 1; case S_OTHER: if (*p != '"') { for (p2 = p; *p2 && !isspace(*p2); p2++) ; sym->type = S_STRING; goto done; } /* fall through */ case S_STRING: if (*p++ != '"') break; for (p2 = p; (p2 = strpbrk(p2, "\"\\")); p2++) { if (*p2 == '"') { *p2 = 0; break; } memmove(p2, p2 + 1, strlen(p2)); } if (!p2) { if (def != S_DEF_AUTO) conf_warning("invalid string found"); return 1; } /* fall through */ case S_INT: case S_HEX: done: if (sym_string_valid(sym, p)) { sym->def[def].val = xstrdup(p); sym->flags |= def_flags; } else { if (def != S_DEF_AUTO) conf_warning("symbol value '%s' invalid for %s", p, sym->name); return 1; } break; default: ; } return 0; } #define LINE_GROWTH 16 static int add_byte(int c, char **lineptr, size_t slen, size_t *n) { char *nline; size_t new_size = slen + 1; if (new_size > *n) { new_size += LINE_GROWTH - 1; new_size *= 2; nline = xrealloc(*lineptr, new_size); if (!nline) return -1; *lineptr = nline; *n = new_size; } (*lineptr)[slen] = c; return 0; } static ssize_t compat_getline(char **lineptr, size_t *n, FILE *stream) { char *line = *lineptr; size_t slen = 0; for (;;) { int c = getc(stream); switch (c) { case '\n': if (add_byte(c, &line, slen, n) < 0) goto e_out; slen++; /* fall through */ case EOF: if (add_byte('\0', &line, slen, n) < 0) goto e_out; *lineptr = line; if (slen == 0) return -1; return slen; default: if (add_byte(c, &line, slen, n) < 0) goto e_out; slen++; } } e_out: line[slen-1] = '\0'; *lineptr = line; return -1; } int conf_read_simple(const char *name, int def) { FILE *in = NULL; char *line = NULL; size_t line_asize = 0; char *p, *p2; struct symbol *sym; int i, def_flags; if (name) { in = zconf_fopen(name); } else { struct property *prop; name = conf_get_configname(); in = zconf_fopen(name); if (in) goto load; sym_add_change_count(1); if (!sym_defconfig_list) return 1; for_all_defaults(sym_defconfig_list, prop) { if (expr_calc_value(prop->visible.expr) == no || prop->expr->type != E_SYMBOL) continue; name = conf_expand_value(prop->expr->left.sym->name); in = zconf_fopen(name); if (in) { conf_message(_("using defaults found in %s"), name); goto load; } } } if (!in) return 1; load: conf_filename = name; conf_lineno = 0; conf_warnings = 0; def_flags = SYMBOL_DEF << def; for_all_symbols(i, sym) { sym->flags |= SYMBOL_CHANGED; sym->flags &= ~(def_flags|SYMBOL_VALID); if (sym_is_choice(sym)) sym->flags |= def_flags; switch (sym->type) { case S_INT: case S_HEX: case S_STRING: if (sym->def[def].val) free(sym->def[def].val); /* fall through */ default: sym->def[def].val = NULL; sym->def[def].tri = no; } } while (compat_getline(&line, &line_asize, in) != -1) { conf_lineno++; sym = NULL; if (line[0] == '#') { if (memcmp(line + 2, CONFIG_, strlen(CONFIG_))) continue; p = strchr(line + 2 + strlen(CONFIG_), ' '); if (!p) continue; *p++ = 0; if (strncmp(p, "is not set", 10)) continue; if (def == S_DEF_USER) { sym = sym_find(line + 2 + strlen(CONFIG_)); if (!sym) { sym_add_change_count(1); goto setsym; } } else { sym = sym_lookup(line + 2 + strlen(CONFIG_), 0); if (sym->type == S_UNKNOWN) sym->type = S_BOOLEAN; } if (sym->flags & def_flags) { conf_warning("override: reassigning to symbol %s", sym->name); } switch (sym->type) { case S_BOOLEAN: case S_TRISTATE: sym->def[def].tri = no; sym->flags |= def_flags; break; default: ; } } else if (memcmp(line, CONFIG_, strlen(CONFIG_)) == 0) { p = strchr(line + strlen(CONFIG_), '='); if (!p) continue; *p++ = 0; p2 = strchr(p, '\n'); if (p2) { *p2-- = 0; if (*p2 == '\r') *p2 = 0; } if (def == S_DEF_USER) { sym = sym_find(line + strlen(CONFIG_)); if (!sym) { sym_add_change_count(1); goto setsym; } } else { sym = sym_lookup(line + strlen(CONFIG_), 0); if (sym->type == S_UNKNOWN) sym->type = S_OTHER; } if (sym->flags & def_flags) { conf_warning("override: reassigning to symbol %s", sym->name); } if (conf_set_sym_val(sym, def, def_flags, p)) continue; } else { if (line[0] != '\r' && line[0] != '\n') conf_warning("unexpected data: %.*s", (int)strcspn(line, "\r\n"), line); continue; } setsym: if (sym && sym_is_choice_value(sym)) { struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym)); switch (sym->def[def].tri) { case no: break; case mod: if (cs->def[def].tri == yes) { conf_warning("%s creates inconsistent choice state", sym->name); cs->flags &= ~def_flags; } break; case yes: if (cs->def[def].tri != no) conf_warning("override: %s changes choice state", sym->name); cs->def[def].val = sym; break; } cs->def[def].tri = EXPR_OR(cs->def[def].tri, sym->def[def].tri); } } free(line); fclose(in); return 0; } int conf_read(const char *name) { struct symbol *sym; int conf_unsaved = 0; int i; sym_set_change_count(0); if (conf_read_simple(name, S_DEF_USER)) { sym_calc_value(modules_sym); return 1; } sym_calc_value(modules_sym); for_all_symbols(i, sym) { sym_calc_value(sym); if (sym_is_choice(sym) || (sym->flags & SYMBOL_AUTO)) continue; if (sym_has_value(sym) && (sym->flags & SYMBOL_WRITE)) { /* check that calculated value agrees with saved value */ switch (sym->type) { case S_BOOLEAN: case S_TRISTATE: if (sym->def[S_DEF_USER].tri != sym_get_tristate_value(sym)) break; if (!sym_is_choice(sym)) continue; /* fall through */ default: if (!strcmp(sym->curr.val, sym->def[S_DEF_USER].val)) continue; break; } } else if (!sym_has_value(sym) && !(sym->flags & SYMBOL_WRITE)) /* no previous value and not saved */ continue; conf_unsaved++; /* maybe print value in verbose mode... */ } for_all_symbols(i, sym) { if (sym_has_value(sym) && !sym_is_choice_value(sym)) { /* Reset values of generates values, so they'll appear * as new, if they should become visible, but that * doesn't quite work if the Kconfig and the saved * configuration disagree. */ if (sym->visible == no && !conf_unsaved) sym->flags &= ~SYMBOL_DEF_USER; switch (sym->type) { case S_STRING: case S_INT: case S_HEX: /* Reset a string value if it's out of range */ if (sym_string_within_range(sym, sym->def[S_DEF_USER].val)) break; sym->flags &= ~(SYMBOL_VALID|SYMBOL_DEF_USER); conf_unsaved++; break; default: break; } } } sym_add_change_count(conf_warnings || conf_unsaved); return 0; } /* * Kconfig configuration printer * * This printer is used when generating the resulting configuration after * kconfig invocation and `defconfig' files. Unset symbol might be omitted by * passing a non-NULL argument to the printer. * */ static void kconfig_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg) { switch (sym->type) { case S_BOOLEAN: case S_TRISTATE: if (*value == 'n') { bool skip_unset = (arg != NULL); if (!skip_unset) fprintf(fp, "# %s%s is not set\n", CONFIG_, sym->name); return; } break; default: break; } fprintf(fp, "%s%s=%s\n", CONFIG_, sym->name, value); } static void kconfig_print_comment(FILE *fp, const char *value, void *arg) { const char *p = value; size_t l; for (;;) { l = strcspn(p, "\n"); fprintf(fp, "#"); if (l) { fprintf(fp, " "); xfwrite(p, l, 1, fp); p += l; } fprintf(fp, "\n"); if (*p++ == '\0') break; } } static struct conf_printer kconfig_printer_cb = { .print_symbol = kconfig_print_symbol, .print_comment = kconfig_print_comment, }; /* * Header printer * * This printer is used when generating the `include/generated/autoconf.h' file. */ static void header_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg) { switch (sym->type) { case S_BOOLEAN: case S_TRISTATE: { const char *suffix = ""; switch (*value) { case 'n': break; case 'm': suffix = "_MODULE"; /* fall through */ default: fprintf(fp, "#define %s%s%s 1\n", CONFIG_, sym->name, suffix); } break; } case S_HEX: { const char *prefix = ""; if (value[0] != '0' || (value[1] != 'x' && value[1] != 'X')) prefix = "0x"; fprintf(fp, "#define %s%s %s%s\n", CONFIG_, sym->name, prefix, value); break; } case S_STRING: case S_INT: fprintf(fp, "#define %s%s %s\n", CONFIG_, sym->name, value); break; default: break; } } static void header_print_comment(FILE *fp, const char *value, void *arg) { const char *p = value; size_t l; fprintf(fp, "/*\n"); for (;;) { l = strcspn(p, "\n"); fprintf(fp, " *"); if (l) { fprintf(fp, " "); xfwrite(p, l, 1, fp); p += l; } fprintf(fp, "\n"); if (*p++ == '\0') break; } fprintf(fp, " */\n"); } static struct conf_printer header_printer_cb = { .print_symbol = header_print_symbol, .print_comment = header_print_comment, }; /* * Tristate printer * * This printer is used when generating the `include/config/tristate.conf' file. */ static void tristate_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg) { if (sym->type == S_TRISTATE && *value != 'n') fprintf(fp, "%s%s=%c\n", CONFIG_, sym->name, (char)toupper(*value)); } static struct conf_printer tristate_printer_cb = { .print_symbol = tristate_print_symbol, .print_comment = kconfig_print_comment, }; static void conf_write_symbol(FILE *fp, struct symbol *sym, struct conf_printer *printer, void *printer_arg) { const char *str; switch (sym->type) { case S_OTHER: case S_UNKNOWN: break; case S_STRING: str = sym_get_string_value(sym); str = sym_escape_string_value(str); printer->print_symbol(fp, sym, str, printer_arg); free((void *)str); break; default: str = sym_get_string_value(sym); printer->print_symbol(fp, sym, str, printer_arg); } } static void conf_write_heading(FILE *fp, struct conf_printer *printer, void *printer_arg) { char buf[256]; snprintf(buf, sizeof(buf), "\n" "Automatically generated file; DO NOT EDIT.\n" "%s\n", rootmenu.prompt->text); printer->print_comment(fp, buf, printer_arg); } /* * Write out a minimal config. * All values that has default values are skipped as this is redundant. */ int conf_write_defconfig(const char *filename) { struct symbol *sym; struct menu *menu; FILE *out; out = fopen(filename, "w"); if (!out) return 1; sym_clear_all_valid(); /* Traverse all menus to find all relevant symbols */ menu = rootmenu.list; while (menu != NULL) { sym = menu->sym; if (sym == NULL) { if (!menu_is_visible(menu)) goto next_menu; } else if (!sym_is_choice(sym)) { sym_calc_value(sym); if (!(sym->flags & SYMBOL_WRITE)) goto next_menu; sym->flags &= ~SYMBOL_WRITE; /* If we cannot change the symbol - skip */ if (!sym_is_changable(sym)) goto next_menu; /* If symbol equals to default value - skip */ if (strcmp(sym_get_string_value(sym), sym_get_string_default(sym)) == 0) goto next_menu; /* * If symbol is a choice value and equals to the * default for a choice - skip. * But only if value is bool and equal to "y" and * choice is not "optional". * (If choice is "optional" then all values can be "n") */ if (sym_is_choice_value(sym)) { struct symbol *cs; struct symbol *ds; cs = prop_get_symbol(sym_get_choice_prop(sym)); ds = sym_choice_default(cs); if (!sym_is_optional(cs) && sym == ds) { if ((sym->type == S_BOOLEAN) && sym_get_tristate_value(sym) == yes) goto next_menu; } } conf_write_symbol(out, sym, &kconfig_printer_cb, NULL); } next_menu: if (menu->list != NULL) { menu = menu->list; } else if (menu->next != NULL) { menu = menu->next; } else { while ((menu = menu->parent)) { if (menu->next != NULL) { menu = menu->next; break; } } } } fclose(out); return 0; } int conf_write(const char *name) { FILE *out; struct symbol *sym; struct menu *menu; const char *basename; const char *str; char dirname[PATH_MAX+1], tmpname[PATH_MAX+20], newname[PATH_MAX+1]; char *env; if (!name) name = conf_get_configname(); dirname[0] = 0; if (name && name[0]) { struct stat st; char *slash; if (!stat(name, &st) && S_ISDIR(st.st_mode)) { strcpy(dirname, name); strcat(dirname, "/"); basename = conf_get_configname(); } else if ((slash = strrchr(name, '/'))) { int size = slash - name + 1; memcpy(dirname, name, size); dirname[size] = 0; if (slash[1]) basename = slash + 1; else basename = conf_get_configname(); } else basename = name; } else basename = conf_get_configname(); sprintf(newname, "%s%s", dirname, basename); env = getenv("KCONFIG_OVERWRITECONFIG"); if (!env || !*env) { sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid()); out = fopen(tmpname, "w"); } else { *tmpname = 0; out = fopen(newname, "w"); } if (!out) return 1; conf_write_heading(out, &kconfig_printer_cb, NULL); if (!conf_get_changed()) sym_clear_all_valid(); menu = rootmenu.list; while (menu) { sym = menu->sym; if (!sym) { if (!menu_is_visible(menu)) goto next; str = menu_get_prompt(menu); fprintf(out, "\n" "#\n" "# %s\n" "#\n", str); } else if (!(sym->flags & SYMBOL_CHOICE)) { sym_calc_value(sym); if (!(sym->flags & SYMBOL_WRITE)) goto next; sym->flags &= ~SYMBOL_WRITE; conf_write_symbol(out, sym, &kconfig_printer_cb, NULL); } next: if (menu->list) { menu = menu->list; continue; } if (menu->next) menu = menu->next; else while ((menu = menu->parent)) { if (menu->next) { menu = menu->next; break; } } } fclose(out); if (*tmpname) { strcat(dirname, basename); strcat(dirname, ".old"); rename(newname, dirname); if (rename(tmpname, newname)) return 1; } conf_message(_("configuration written to %s"), newname); sym_set_change_count(0); return 0; } static int conf_split_config(void) { const char *name; char path[PATH_MAX+1]; char *opwd, *dir, *_name; char *s, *d, c; struct symbol *sym; struct stat sb; int res, i, fd; name = conf_get_autoconfig_name(); conf_read_simple(name, S_DEF_AUTO); sym_calc_value(modules_sym); opwd = malloc(256); _name = strdup(name); if (opwd == NULL || _name == NULL) return 1; opwd = getcwd(opwd, 256); dir = dirname(_name); if (dir == NULL) { res = 1; goto err; } if (chdir(dir)) { res = 1; goto err; } res = 0; for_all_symbols(i, sym) { sym_calc_value(sym); if ((sym->flags & SYMBOL_AUTO) || !sym->name) continue; if (sym->flags & SYMBOL_WRITE) { if (sym->flags & SYMBOL_DEF_AUTO) { /* * symbol has old and new value, * so compare them... */ switch (sym->type) { case S_BOOLEAN: case S_TRISTATE: if (sym_get_tristate_value(sym) == sym->def[S_DEF_AUTO].tri) continue; break; case S_STRING: case S_HEX: case S_INT: if (!strcmp(sym_get_string_value(sym), sym->def[S_DEF_AUTO].val)) continue; break; default: break; } } else { /* * If there is no old value, only 'no' (unset) * is allowed as new value. */ switch (sym->type) { case S_BOOLEAN: case S_TRISTATE: if (sym_get_tristate_value(sym) == no) continue; break; default: break; } } } else if (!(sym->flags & SYMBOL_DEF_AUTO)) /* There is neither an old nor a new value. */ continue; /* else * There is an old value, but no new value ('no' (unset) * isn't saved in auto.conf, so the old value is always * different from 'no'). */ /* Replace all '_' and append ".h" */ s = sym->name; d = path; while ((c = *s++)) { c = tolower(c); *d++ = (c == '_') ? '/' : c; } strcpy(d, ".h"); /* Assume directory path already exists. */ fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0644); if (fd == -1) { if (errno != ENOENT) { res = 1; break; } /* * Create directory components, * unless they exist already. */ d = path; while ((d = strchr(d, '/'))) { *d = 0; if (stat(path, &sb) && mkdir(path, 0755)) { res = 1; goto out; } *d++ = '/'; } /* Try it again. */ fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0644); if (fd == -1) { res = 1; break; } } close(fd); } out: if (chdir(opwd)) res = 1; err: free(opwd); free(_name); return res; } int conf_write_autoconf(void) { struct symbol *sym; const char *name; FILE *out, *tristate, *out_h; int i; char dir[PATH_MAX+1], buf[PATH_MAX+20]; char *s; strcpy(dir, conf_get_configname()); s = strrchr(dir, '/'); if (s) s[1] = 0; else dir[0] = 0; sym_clear_all_valid(); sprintf(buf, "%s.config.cmd", dir); file_write_dep(buf); if (conf_split_config()) return 1; sprintf(buf, "%s.tmpconfig", dir); out = fopen(buf, "w"); if (!out) return 1; sprintf(buf, "%s.tmpconfig_tristate", dir); tristate = fopen(buf, "w"); if (!tristate) { fclose(out); return 1; } sprintf(buf, "%s.tmpconfig.h", dir); out_h = fopen(buf, "w"); if (!out_h) { fclose(out); fclose(tristate); return 1; } conf_write_heading(out, &kconfig_printer_cb, NULL); conf_write_heading(tristate, &tristate_printer_cb, NULL); conf_write_heading(out_h, &header_printer_cb, NULL); for_all_symbols(i, sym) { sym_calc_value(sym); if (!(sym->flags & SYMBOL_WRITE) || !sym->name) continue; /* write symbol to auto.conf, tristate and header files */ conf_write_symbol(out, sym, &kconfig_printer_cb, (void *)1); conf_write_symbol(tristate, sym, &tristate_printer_cb, (void *)1); conf_write_symbol(out_h, sym, &header_printer_cb, NULL); } fclose(out); fclose(tristate); fclose(out_h); name = getenv("KCONFIG_AUTOHEADER"); if (!name) name = "include/generated/autoconf.h"; sprintf(buf, "%s.tmpconfig.h", dir); if (rename(buf, name)) return 1; name = getenv("KCONFIG_TRISTATE"); if (!name) name = "include/config/tristate.conf"; sprintf(buf, "%s.tmpconfig_tristate", dir); if (rename(buf, name)) return 1; name = conf_get_autoconfig_name(); /* * This must be the last step, kbuild has a dependency on auto.conf * and this marks the successful completion of the previous steps. */ sprintf(buf, "%s.tmpconfig", dir); if (rename(buf, name)) return 1; return 0; } static int sym_change_count; static void (*conf_changed_callback)(void); void sym_set_change_count(int count) { int _sym_change_count = sym_change_count; sym_change_count = count; if (conf_changed_callback && (bool)_sym_change_count != (bool)count) conf_changed_callback(); } void sym_add_change_count(int count) { sym_set_change_count(count + sym_change_count); } bool conf_get_changed(void) { return sym_change_count; } void conf_set_changed_callback(void (*fn)(void)) { conf_changed_callback = fn; } static bool randomize_choice_values(struct symbol *csym) { struct property *prop; struct symbol *sym; struct expr *e; int cnt, def; /* * If choice is mod then we may have more items selected * and if no then no-one. * In both cases stop. */ if (csym->curr.tri != yes) return false; prop = sym_get_choice_prop(csym); /* count entries in choice block */ cnt = 0; expr_list_for_each_sym(prop->expr, e, sym) cnt++; /* * find a random value and set it to yes, * set the rest to no so we have only one set */ def = (rand() % cnt); cnt = 0; expr_list_for_each_sym(prop->expr, e, sym) { if (def == cnt++) { sym->def[S_DEF_USER].tri = yes; csym->def[S_DEF_USER].val = sym; } else { sym->def[S_DEF_USER].tri = no; } sym->flags |= SYMBOL_DEF_USER; /* clear VALID to get value calculated */ sym->flags &= ~SYMBOL_VALID; } csym->flags |= SYMBOL_DEF_USER; /* clear VALID to get value calculated */ csym->flags &= ~(SYMBOL_VALID); return true; } void set_all_choice_values(struct symbol *csym) { struct property *prop; struct symbol *sym; struct expr *e; prop = sym_get_choice_prop(csym); /* * Set all non-assinged choice values to no */ expr_list_for_each_sym(prop->expr, e, sym) { if (!sym_has_value(sym)) sym->def[S_DEF_USER].tri = no; } csym->flags |= SYMBOL_DEF_USER; /* clear VALID to get value calculated */ csym->flags &= ~(SYMBOL_VALID | SYMBOL_NEED_SET_CHOICE_VALUES); } bool conf_set_all_new_symbols(enum conf_def_mode mode) { struct symbol *sym, *csym; int i, cnt, pby, pty, ptm; /* pby: probability of bool = y * pty: probability of tristate = y * ptm: probability of tristate = m */ pby = 50; pty = ptm = 33; /* can't go as the default in switch-case * below, otherwise gcc whines about * -Wmaybe-uninitialized */ if (mode == def_random) { int n, p[3]; char *env = getenv("KCONFIG_PROBABILITY"); n = 0; while( env && *env ) { char *endp; int tmp = strtol( env, &endp, 10 ); if( tmp >= 0 && tmp <= 100 ) { p[n++] = tmp; } else { errno = ERANGE; perror( "KCONFIG_PROBABILITY" ); exit( 1 ); } env = (*endp == ':') ? endp+1 : endp; if( n >=3 ) { break; } } switch( n ) { case 1: pby = p[0]; ptm = pby/2; pty = pby-ptm; break; case 2: pty = p[0]; ptm = p[1]; pby = pty + ptm; break; case 3: pby = p[0]; pty = p[1]; ptm = p[2]; break; } if( pty+ptm > 100 ) { errno = ERANGE; perror( "KCONFIG_PROBABILITY" ); exit( 1 ); } } bool has_changed = false; for_all_symbols(i, sym) { if (sym_has_value(sym) || (sym->flags & SYMBOL_VALID)) continue; switch (sym_get_type(sym)) { case S_BOOLEAN: case S_TRISTATE: has_changed = true; switch (mode) { case def_yes: sym->def[S_DEF_USER].tri = yes; break; case def_mod: sym->def[S_DEF_USER].tri = mod; break; case def_no: if (sym->flags & SYMBOL_ALLNOCONFIG_Y) sym->def[S_DEF_USER].tri = yes; else sym->def[S_DEF_USER].tri = no; break; case def_random: sym->def[S_DEF_USER].tri = no; cnt = rand() % 100; if (sym->type == S_TRISTATE) { if (cnt < pty) sym->def[S_DEF_USER].tri = yes; else if (cnt < (pty+ptm)) sym->def[S_DEF_USER].tri = mod; } else if (cnt < pby) sym->def[S_DEF_USER].tri = yes; break; default: continue; } if (!(sym_is_choice(sym) && mode == def_random)) sym->flags |= SYMBOL_DEF_USER; break; default: break; } } sym_clear_all_valid(); /* * We have different type of choice blocks. * If curr.tri equals to mod then we can select several * choice symbols in one block. * In this case we do nothing. * If curr.tri equals yes then only one symbol can be * selected in a choice block and we set it to yes, * and the rest to no. */ if (mode != def_random) { for_all_symbols(i, csym) { if ((sym_is_choice(csym) && !sym_has_value(csym)) || sym_is_choice_value(csym)) csym->flags |= SYMBOL_NEED_SET_CHOICE_VALUES; } } for_all_symbols(i, csym) { if (sym_has_value(csym) || !sym_is_choice(csym)) continue; sym_calc_value(csym); if (mode == def_random) has_changed = randomize_choice_values(csym); else { set_all_choice_values(csym); has_changed = true; } } return has_changed; } ================================================ FILE: support/kconfig/expr.c ================================================ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ #include #include #include #include "lkc.h" #define DEBUG_EXPR 0 static int expr_eq(struct expr *e1, struct expr *e2); static struct expr *expr_eliminate_yn(struct expr *e); struct expr *expr_alloc_symbol(struct symbol *sym) { struct expr *e = xcalloc(1, sizeof(*e)); e->type = E_SYMBOL; e->left.sym = sym; return e; } struct expr *expr_alloc_one(enum expr_type type, struct expr *ce) { struct expr *e = xcalloc(1, sizeof(*e)); e->type = type; e->left.expr = ce; return e; } struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr *e2) { struct expr *e = xcalloc(1, sizeof(*e)); e->type = type; e->left.expr = e1; e->right.expr = e2; return e; } struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1, struct symbol *s2) { struct expr *e = xcalloc(1, sizeof(*e)); e->type = type; e->left.sym = s1; e->right.sym = s2; return e; } struct expr *expr_alloc_and(struct expr *e1, struct expr *e2) { if (!e1) return e2; return e2 ? expr_alloc_two(E_AND, e1, e2) : e1; } struct expr *expr_alloc_or(struct expr *e1, struct expr *e2) { if (!e1) return e2; return e2 ? expr_alloc_two(E_OR, e1, e2) : e1; } struct expr *expr_copy(const struct expr *org) { struct expr *e; if (!org) return NULL; e = xmalloc(sizeof(*org)); memcpy(e, org, sizeof(*org)); switch (org->type) { case E_SYMBOL: e->left = org->left; break; case E_NOT: e->left.expr = expr_copy(org->left.expr); break; case E_EQUAL: case E_GEQ: case E_GTH: case E_LEQ: case E_LTH: case E_UNEQUAL: e->left.sym = org->left.sym; e->right.sym = org->right.sym; break; case E_AND: case E_OR: case E_LIST: e->left.expr = expr_copy(org->left.expr); e->right.expr = expr_copy(org->right.expr); break; default: fprintf(stderr, "can't copy type %d\n", e->type); free(e); e = NULL; break; } return e; } void expr_free(struct expr *e) { if (!e) return; switch (e->type) { case E_SYMBOL: break; case E_NOT: expr_free(e->left.expr); break; case E_EQUAL: case E_GEQ: case E_GTH: case E_LEQ: case E_LTH: case E_UNEQUAL: break; case E_OR: case E_AND: expr_free(e->left.expr); expr_free(e->right.expr); break; default: fprintf(stderr, "how to free type %d?\n", e->type); break; } free(e); } static int trans_count; #define e1 (*ep1) #define e2 (*ep2) /* * expr_eliminate_eq() helper. * * Walks the two expression trees given in 'ep1' and 'ep2'. Any node that does * not have type 'type' (E_OR/E_AND) is considered a leaf, and is compared * against all other leaves. Two equal leaves are both replaced with either 'y' * or 'n' as appropriate for 'type', to be eliminated later. */ static void __expr_eliminate_eq(enum expr_type type, struct expr **ep1, struct expr **ep2) { /* Recurse down to leaves */ if (e1->type == type) { __expr_eliminate_eq(type, &e1->left.expr, &e2); __expr_eliminate_eq(type, &e1->right.expr, &e2); return; } if (e2->type == type) { __expr_eliminate_eq(type, &e1, &e2->left.expr); __expr_eliminate_eq(type, &e1, &e2->right.expr); return; } /* e1 and e2 are leaves. Compare them. */ if (e1->type == E_SYMBOL && e2->type == E_SYMBOL && e1->left.sym == e2->left.sym && (e1->left.sym == &symbol_yes || e1->left.sym == &symbol_no)) return; if (!expr_eq(e1, e2)) return; /* e1 and e2 are equal leaves. Prepare them for elimination. */ trans_count++; expr_free(e1); expr_free(e2); switch (type) { case E_OR: e1 = expr_alloc_symbol(&symbol_no); e2 = expr_alloc_symbol(&symbol_no); break; case E_AND: e1 = expr_alloc_symbol(&symbol_yes); e2 = expr_alloc_symbol(&symbol_yes); break; default: ; } } /* * Rewrites the expressions 'ep1' and 'ep2' to remove operands common to both. * Example reductions: * * ep1: A && B -> ep1: y * ep2: A && B && C -> ep2: C * * ep1: A || B -> ep1: n * ep2: A || B || C -> ep2: C * * ep1: A && (B && FOO) -> ep1: FOO * ep2: (BAR && B) && A -> ep2: BAR * * ep1: A && (B || C) -> ep1: y * ep2: (C || B) && A -> ep2: y * * Comparisons are done between all operands at the same "level" of && or ||. * For example, in the expression 'e1 && (e2 || e3) && (e4 || e5)', the * following operands will be compared: * * - 'e1', 'e2 || e3', and 'e4 || e5', against each other * - e2 against e3 * - e4 against e5 * * Parentheses are irrelevant within a single level. 'e1 && (e2 && e3)' and * '(e1 && e2) && e3' are both a single level. * * See __expr_eliminate_eq() as well. */ void expr_eliminate_eq(struct expr **ep1, struct expr **ep2) { if (!e1 || !e2) return; switch (e1->type) { case E_OR: case E_AND: __expr_eliminate_eq(e1->type, ep1, ep2); default: ; } if (e1->type != e2->type) switch (e2->type) { case E_OR: case E_AND: __expr_eliminate_eq(e2->type, ep1, ep2); default: ; } e1 = expr_eliminate_yn(e1); e2 = expr_eliminate_yn(e2); } #undef e1 #undef e2 /* * Returns true if 'e1' and 'e2' are equal, after minor simplification. Two * &&/|| expressions are considered equal if every operand in one expression * equals some operand in the other (operands do not need to appear in the same * order), recursively. */ static int expr_eq(struct expr *e1, struct expr *e2) { int res, old_count; if (e1->type != e2->type) return 0; switch (e1->type) { case E_EQUAL: case E_GEQ: case E_GTH: case E_LEQ: case E_LTH: case E_UNEQUAL: return e1->left.sym == e2->left.sym && e1->right.sym == e2->right.sym; case E_SYMBOL: return e1->left.sym == e2->left.sym; case E_NOT: return expr_eq(e1->left.expr, e2->left.expr); case E_AND: case E_OR: e1 = expr_copy(e1); e2 = expr_copy(e2); old_count = trans_count; expr_eliminate_eq(&e1, &e2); res = (e1->type == E_SYMBOL && e2->type == E_SYMBOL && e1->left.sym == e2->left.sym); expr_free(e1); expr_free(e2); trans_count = old_count; return res; case E_LIST: case E_RANGE: case E_NONE: /* panic */; } if (DEBUG_EXPR) { expr_fprint(e1, stdout); printf(" = "); expr_fprint(e2, stdout); printf(" ?\n"); } return 0; } /* * Recursively performs the following simplifications in-place (as well as the * corresponding simplifications with swapped operands): * * expr && n -> n * expr && y -> expr * expr || n -> expr * expr || y -> y * * Returns the optimized expression. */ static struct expr *expr_eliminate_yn(struct expr *e) { struct expr *tmp; if (e) switch (e->type) { case E_AND: e->left.expr = expr_eliminate_yn(e->left.expr); e->right.expr = expr_eliminate_yn(e->right.expr); if (e->left.expr->type == E_SYMBOL) { if (e->left.expr->left.sym == &symbol_no) { expr_free(e->left.expr); expr_free(e->right.expr); e->type = E_SYMBOL; e->left.sym = &symbol_no; e->right.expr = NULL; return e; } else if (e->left.expr->left.sym == &symbol_yes) { free(e->left.expr); tmp = e->right.expr; *e = *(e->right.expr); free(tmp); return e; } } if (e->right.expr->type == E_SYMBOL) { if (e->right.expr->left.sym == &symbol_no) { expr_free(e->left.expr); expr_free(e->right.expr); e->type = E_SYMBOL; e->left.sym = &symbol_no; e->right.expr = NULL; return e; } else if (e->right.expr->left.sym == &symbol_yes) { free(e->right.expr); tmp = e->left.expr; *e = *(e->left.expr); free(tmp); return e; } } break; case E_OR: e->left.expr = expr_eliminate_yn(e->left.expr); e->right.expr = expr_eliminate_yn(e->right.expr); if (e->left.expr->type == E_SYMBOL) { if (e->left.expr->left.sym == &symbol_no) { free(e->left.expr); tmp = e->right.expr; *e = *(e->right.expr); free(tmp); return e; } else if (e->left.expr->left.sym == &symbol_yes) { expr_free(e->left.expr); expr_free(e->right.expr); e->type = E_SYMBOL; e->left.sym = &symbol_yes; e->right.expr = NULL; return e; } } if (e->right.expr->type == E_SYMBOL) { if (e->right.expr->left.sym == &symbol_no) { free(e->right.expr); tmp = e->left.expr; *e = *(e->left.expr); free(tmp); return e; } else if (e->right.expr->left.sym == &symbol_yes) { expr_free(e->left.expr); expr_free(e->right.expr); e->type = E_SYMBOL; e->left.sym = &symbol_yes; e->right.expr = NULL; return e; } } break; default: ; } return e; } /* * bool FOO!=n => FOO */ struct expr *expr_trans_bool(struct expr *e) { if (!e) return NULL; switch (e->type) { case E_AND: case E_OR: case E_NOT: e->left.expr = expr_trans_bool(e->left.expr); e->right.expr = expr_trans_bool(e->right.expr); break; case E_UNEQUAL: // FOO!=n -> FOO if (e->left.sym->type == S_TRISTATE) { if (e->right.sym == &symbol_no) { e->type = E_SYMBOL; e->right.sym = NULL; } } break; default: ; } return e; } /* * e1 || e2 -> ? */ static struct expr *expr_join_or(struct expr *e1, struct expr *e2) { struct expr *tmp; struct symbol *sym1, *sym2; if (expr_eq(e1, e2)) return expr_copy(e1); if (e1->type != E_EQUAL && e1->type != E_UNEQUAL && e1->type != E_SYMBOL && e1->type != E_NOT) return NULL; if (e2->type != E_EQUAL && e2->type != E_UNEQUAL && e2->type != E_SYMBOL && e2->type != E_NOT) return NULL; if (e1->type == E_NOT) { tmp = e1->left.expr; if (tmp->type != E_EQUAL && tmp->type != E_UNEQUAL && tmp->type != E_SYMBOL) return NULL; sym1 = tmp->left.sym; } else sym1 = e1->left.sym; if (e2->type == E_NOT) { if (e2->left.expr->type != E_SYMBOL) return NULL; sym2 = e2->left.expr->left.sym; } else sym2 = e2->left.sym; if (sym1 != sym2) return NULL; if (sym1->type != S_BOOLEAN && sym1->type != S_TRISTATE) return NULL; if (sym1->type == S_TRISTATE) { if (e1->type == E_EQUAL && e2->type == E_EQUAL && ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) { // (a='y') || (a='m') -> (a!='n') return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_no); } if (e1->type == E_EQUAL && e2->type == E_EQUAL && ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) { // (a='y') || (a='n') -> (a!='m') return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_mod); } if (e1->type == E_EQUAL && e2->type == E_EQUAL && ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) { // (a='m') || (a='n') -> (a!='y') return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_yes); } } if (sym1->type == S_BOOLEAN && sym1 == sym2) { if ((e1->type == E_NOT && e1->left.expr->type == E_SYMBOL && e2->type == E_SYMBOL) || (e2->type == E_NOT && e2->left.expr->type == E_SYMBOL && e1->type == E_SYMBOL)) return expr_alloc_symbol(&symbol_yes); } if (DEBUG_EXPR) { printf("optimize ("); expr_fprint(e1, stdout); printf(") || ("); expr_fprint(e2, stdout); printf(")?\n"); } return NULL; } static struct expr *expr_join_and(struct expr *e1, struct expr *e2) { struct expr *tmp; struct symbol *sym1, *sym2; if (expr_eq(e1, e2)) return expr_copy(e1); if (e1->type != E_EQUAL && e1->type != E_UNEQUAL && e1->type != E_SYMBOL && e1->type != E_NOT) return NULL; if (e2->type != E_EQUAL && e2->type != E_UNEQUAL && e2->type != E_SYMBOL && e2->type != E_NOT) return NULL; if (e1->type == E_NOT) { tmp = e1->left.expr; if (tmp->type != E_EQUAL && tmp->type != E_UNEQUAL && tmp->type != E_SYMBOL) return NULL; sym1 = tmp->left.sym; } else sym1 = e1->left.sym; if (e2->type == E_NOT) { if (e2->left.expr->type != E_SYMBOL) return NULL; sym2 = e2->left.expr->left.sym; } else sym2 = e2->left.sym; if (sym1 != sym2) return NULL; if (sym1->type != S_BOOLEAN && sym1->type != S_TRISTATE) return NULL; if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) || (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes)) // (a) && (a='y') -> (a='y') return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) || (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no)) // (a) && (a!='n') -> (a) return expr_alloc_symbol(sym1); if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) || (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod)) // (a) && (a!='m') -> (a='y') return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); if (sym1->type == S_TRISTATE) { if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) { // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' sym2 = e1->right.sym; if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) : expr_alloc_symbol(&symbol_no); } if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) { // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' sym2 = e2->right.sym; if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) : expr_alloc_symbol(&symbol_no); } if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) // (a!='y') && (a!='n') -> (a='m') return expr_alloc_comp(E_EQUAL, sym1, &symbol_mod); if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) // (a!='y') && (a!='m') -> (a='n') return expr_alloc_comp(E_EQUAL, sym1, &symbol_no); if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) // (a!='m') && (a!='n') -> (a='m') return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) || (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_mod) || (e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_yes) || (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_yes)) return NULL; } if (DEBUG_EXPR) { printf("optimize ("); expr_fprint(e1, stdout); printf(") && ("); expr_fprint(e2, stdout); printf(")?\n"); } return NULL; } /* * expr_eliminate_dups() helper. * * Walks the two expression trees given in 'ep1' and 'ep2'. Any node that does * not have type 'type' (E_OR/E_AND) is considered a leaf, and is compared * against all other leaves to look for simplifications. */ static void expr_eliminate_dups1(enum expr_type type, struct expr **ep1, struct expr **ep2) { #define e1 (*ep1) #define e2 (*ep2) struct expr *tmp; /* Recurse down to leaves */ if (e1->type == type) { expr_eliminate_dups1(type, &e1->left.expr, &e2); expr_eliminate_dups1(type, &e1->right.expr, &e2); return; } if (e2->type == type) { expr_eliminate_dups1(type, &e1, &e2->left.expr); expr_eliminate_dups1(type, &e1, &e2->right.expr); return; } /* e1 and e2 are leaves. Compare and process them. */ if (e1 == e2) return; switch (e1->type) { case E_OR: case E_AND: expr_eliminate_dups1(e1->type, &e1, &e1); default: ; } switch (type) { case E_OR: tmp = expr_join_or(e1, e2); if (tmp) { expr_free(e1); expr_free(e2); e1 = expr_alloc_symbol(&symbol_no); e2 = tmp; trans_count++; } break; case E_AND: tmp = expr_join_and(e1, e2); if (tmp) { expr_free(e1); expr_free(e2); e1 = expr_alloc_symbol(&symbol_yes); e2 = tmp; trans_count++; } break; default: ; } #undef e1 #undef e2 } /* * Rewrites 'e' in-place to remove ("join") duplicate and other redundant * operands. * * Example simplifications: * * A || B || A -> A || B * A && B && A=y -> A=y && B * * Returns the deduplicated expression. */ struct expr *expr_eliminate_dups(struct expr *e) { int oldcount; if (!e) return e; oldcount = trans_count; while (1) { trans_count = 0; switch (e->type) { case E_OR: case E_AND: expr_eliminate_dups1(e->type, &e, &e); default: ; } if (!trans_count) /* No simplifications done in this pass. We're done */ break; e = expr_eliminate_yn(e); } trans_count = oldcount; return e; } /* * Performs various simplifications involving logical operators and * comparisons. * * Allocates and returns a new expression. */ struct expr *expr_transform(struct expr *e) { struct expr *tmp; if (!e) return NULL; switch (e->type) { case E_EQUAL: case E_GEQ: case E_GTH: case E_LEQ: case E_LTH: case E_UNEQUAL: case E_SYMBOL: case E_LIST: break; default: e->left.expr = expr_transform(e->left.expr); e->right.expr = expr_transform(e->right.expr); } switch (e->type) { case E_EQUAL: if (e->left.sym->type != S_BOOLEAN) break; if (e->right.sym == &symbol_no) { e->type = E_NOT; e->left.expr = expr_alloc_symbol(e->left.sym); e->right.sym = NULL; break; } if (e->right.sym == &symbol_mod) { printf("boolean symbol %s tested for 'm'? test forced to 'n'\n", e->left.sym->name); e->type = E_SYMBOL; e->left.sym = &symbol_no; e->right.sym = NULL; break; } if (e->right.sym == &symbol_yes) { e->type = E_SYMBOL; e->right.sym = NULL; break; } break; case E_UNEQUAL: if (e->left.sym->type != S_BOOLEAN) break; if (e->right.sym == &symbol_no) { e->type = E_SYMBOL; e->right.sym = NULL; break; } if (e->right.sym == &symbol_mod) { printf("boolean symbol %s tested for 'm'? test forced to 'y'\n", e->left.sym->name); e->type = E_SYMBOL; e->left.sym = &symbol_yes; e->right.sym = NULL; break; } if (e->right.sym == &symbol_yes) { e->type = E_NOT; e->left.expr = expr_alloc_symbol(e->left.sym); e->right.sym = NULL; break; } break; case E_NOT: switch (e->left.expr->type) { case E_NOT: // !!a -> a tmp = e->left.expr->left.expr; free(e->left.expr); free(e); e = tmp; e = expr_transform(e); break; case E_EQUAL: case E_UNEQUAL: // !a='x' -> a!='x' tmp = e->left.expr; free(e); e = tmp; e->type = e->type == E_EQUAL ? E_UNEQUAL : E_EQUAL; break; case E_LEQ: case E_GEQ: // !a<='x' -> a>'x' tmp = e->left.expr; free(e); e = tmp; e->type = e->type == E_LEQ ? E_GTH : E_LTH; break; case E_LTH: case E_GTH: // !a<'x' -> a>='x' tmp = e->left.expr; free(e); e = tmp; e->type = e->type == E_LTH ? E_GEQ : E_LEQ; break; case E_OR: // !(a || b) -> !a && !b tmp = e->left.expr; e->type = E_AND; e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr); tmp->type = E_NOT; tmp->right.expr = NULL; e = expr_transform(e); break; case E_AND: // !(a && b) -> !a || !b tmp = e->left.expr; e->type = E_OR; e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr); tmp->type = E_NOT; tmp->right.expr = NULL; e = expr_transform(e); break; case E_SYMBOL: if (e->left.expr->left.sym == &symbol_yes) { // !'y' -> 'n' tmp = e->left.expr; free(e); e = tmp; e->type = E_SYMBOL; e->left.sym = &symbol_no; break; } if (e->left.expr->left.sym == &symbol_mod) { // !'m' -> 'm' tmp = e->left.expr; free(e); e = tmp; e->type = E_SYMBOL; e->left.sym = &symbol_mod; break; } if (e->left.expr->left.sym == &symbol_no) { // !'n' -> 'y' tmp = e->left.expr; free(e); e = tmp; e->type = E_SYMBOL; e->left.sym = &symbol_yes; break; } break; default: ; } break; default: ; } return e; } int expr_contains_symbol(struct expr *dep, struct symbol *sym) { if (!dep) return 0; switch (dep->type) { case E_AND: case E_OR: return expr_contains_symbol(dep->left.expr, sym) || expr_contains_symbol(dep->right.expr, sym); case E_SYMBOL: return dep->left.sym == sym; case E_EQUAL: case E_GEQ: case E_GTH: case E_LEQ: case E_LTH: case E_UNEQUAL: return dep->left.sym == sym || dep->right.sym == sym; case E_NOT: return expr_contains_symbol(dep->left.expr, sym); default: ; } return 0; } bool expr_depends_symbol(struct expr *dep, struct symbol *sym) { if (!dep) return false; switch (dep->type) { case E_AND: return expr_depends_symbol(dep->left.expr, sym) || expr_depends_symbol(dep->right.expr, sym); case E_SYMBOL: return dep->left.sym == sym; case E_EQUAL: if (dep->left.sym == sym) { if (dep->right.sym == &symbol_yes || dep->right.sym == &symbol_mod) return true; } break; case E_UNEQUAL: if (dep->left.sym == sym) { if (dep->right.sym == &symbol_no) return true; } break; default: ; } return false; } /* * Inserts explicit comparisons of type 'type' to symbol 'sym' into the * expression 'e'. * * Examples transformations for type == E_UNEQUAL, sym == &symbol_no: * * A -> A!=n * !A -> A=n * A && B -> !(A=n || B=n) * A || B -> !(A=n && B=n) * A && (B || C) -> !(A=n || (B=n && C=n)) * * Allocates and returns a new expression. */ struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym) { struct expr *e1, *e2; if (!e) { e = expr_alloc_symbol(sym); if (type == E_UNEQUAL) e = expr_alloc_one(E_NOT, e); return e; } switch (e->type) { case E_AND: e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym); e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym); if (sym == &symbol_yes) e = expr_alloc_two(E_AND, e1, e2); if (sym == &symbol_no) e = expr_alloc_two(E_OR, e1, e2); if (type == E_UNEQUAL) e = expr_alloc_one(E_NOT, e); return e; case E_OR: e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym); e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym); if (sym == &symbol_yes) e = expr_alloc_two(E_OR, e1, e2); if (sym == &symbol_no) e = expr_alloc_two(E_AND, e1, e2); if (type == E_UNEQUAL) e = expr_alloc_one(E_NOT, e); return e; case E_NOT: return expr_trans_compare(e->left.expr, type == E_EQUAL ? E_UNEQUAL : E_EQUAL, sym); case E_UNEQUAL: case E_LTH: case E_LEQ: case E_GTH: case E_GEQ: case E_EQUAL: if (type == E_EQUAL) { if (sym == &symbol_yes) return expr_copy(e); if (sym == &symbol_mod) return expr_alloc_symbol(&symbol_no); if (sym == &symbol_no) return expr_alloc_one(E_NOT, expr_copy(e)); } else { if (sym == &symbol_yes) return expr_alloc_one(E_NOT, expr_copy(e)); if (sym == &symbol_mod) return expr_alloc_symbol(&symbol_yes); if (sym == &symbol_no) return expr_copy(e); } break; case E_SYMBOL: return expr_alloc_comp(type, e->left.sym, sym); case E_LIST: case E_RANGE: case E_NONE: /* panic */; } return NULL; } enum string_value_kind { k_string, k_signed, k_unsigned, k_invalid }; union string_value { unsigned long long u; signed long long s; }; static enum string_value_kind expr_parse_string(const char *str, enum symbol_type type, union string_value *val) { char *tail; enum string_value_kind kind; errno = 0; switch (type) { case S_BOOLEAN: case S_TRISTATE: val->s = !strcmp(str, "n") ? 0 : !strcmp(str, "m") ? 1 : !strcmp(str, "y") ? 2 : -1; return k_signed; case S_INT: val->s = strtoll(str, &tail, 10); kind = k_signed; break; case S_HEX: val->u = strtoull(str, &tail, 16); kind = k_unsigned; break; case S_STRING: case S_UNKNOWN: val->s = strtoll(str, &tail, 0); kind = k_signed; break; default: return k_invalid; } return !errno && !*tail && tail > str && isxdigit(tail[-1]) ? kind : k_string; } tristate expr_calc_value(struct expr *e) { tristate val1, val2; const char *str1, *str2; enum string_value_kind k1 = k_string, k2 = k_string; union string_value lval = {}, rval = {}; int res; if (!e) return yes; switch (e->type) { case E_SYMBOL: sym_calc_value(e->left.sym); return e->left.sym->curr.tri; case E_AND: val1 = expr_calc_value(e->left.expr); val2 = expr_calc_value(e->right.expr); return EXPR_AND(val1, val2); case E_OR: val1 = expr_calc_value(e->left.expr); val2 = expr_calc_value(e->right.expr); return EXPR_OR(val1, val2); case E_NOT: val1 = expr_calc_value(e->left.expr); return EXPR_NOT(val1); case E_EQUAL: case E_GEQ: case E_GTH: case E_LEQ: case E_LTH: case E_UNEQUAL: break; default: printf("expr_calc_value: %d?\n", e->type); return no; } sym_calc_value(e->left.sym); sym_calc_value(e->right.sym); str1 = sym_get_string_value(e->left.sym); str2 = sym_get_string_value(e->right.sym); if (e->left.sym->type != S_STRING || e->right.sym->type != S_STRING) { k1 = expr_parse_string(str1, e->left.sym->type, &lval); k2 = expr_parse_string(str2, e->right.sym->type, &rval); } if (k1 == k_string || k2 == k_string) res = strcmp(str1, str2); else if (k1 == k_invalid || k2 == k_invalid) { if (e->type != E_EQUAL && e->type != E_UNEQUAL) { printf("Cannot compare \"%s\" and \"%s\"\n", str1, str2); return no; } res = strcmp(str1, str2); } else if (k1 == k_unsigned || k2 == k_unsigned) res = (lval.u > rval.u) - (lval.u < rval.u); else /* if (k1 == k_signed && k2 == k_signed) */ res = (lval.s > rval.s) - (lval.s < rval.s); switch(e->type) { case E_EQUAL: return res ? no : yes; case E_GEQ: return res >= 0 ? yes : no; case E_GTH: return res > 0 ? yes : no; case E_LEQ: return res <= 0 ? yes : no; case E_LTH: return res < 0 ? yes : no; case E_UNEQUAL: return res ? yes : no; default: printf("expr_calc_value: relation %d?\n", e->type); return no; } } static int expr_compare_type(enum expr_type t1, enum expr_type t2) { if (t1 == t2) return 0; switch (t1) { case E_LEQ: case E_LTH: case E_GEQ: case E_GTH: if (t2 == E_EQUAL || t2 == E_UNEQUAL) return 1; case E_EQUAL: case E_UNEQUAL: if (t2 == E_NOT) return 1; case E_NOT: if (t2 == E_AND) return 1; case E_AND: if (t2 == E_OR) return 1; case E_OR: if (t2 == E_LIST) return 1; case E_LIST: if (t2 == 0) return 1; default: return -1; } printf("[%dgt%d?]", t1, t2); return 0; } void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *), void *data, int prevtoken) { if (!e) { fn(data, NULL, "y"); return; } if (expr_compare_type(prevtoken, e->type) > 0) fn(data, NULL, "("); switch (e->type) { case E_SYMBOL: if (e->left.sym->name) fn(data, e->left.sym, e->left.sym->name); else fn(data, NULL, ""); break; case E_NOT: fn(data, NULL, "!"); expr_print(e->left.expr, fn, data, E_NOT); break; case E_EQUAL: if (e->left.sym->name) fn(data, e->left.sym, e->left.sym->name); else fn(data, NULL, ""); fn(data, NULL, "="); fn(data, e->right.sym, e->right.sym->name); break; case E_LEQ: case E_LTH: if (e->left.sym->name) fn(data, e->left.sym, e->left.sym->name); else fn(data, NULL, ""); fn(data, NULL, e->type == E_LEQ ? "<=" : "<"); fn(data, e->right.sym, e->right.sym->name); break; case E_GEQ: case E_GTH: if (e->left.sym->name) fn(data, e->left.sym, e->left.sym->name); else fn(data, NULL, ""); fn(data, NULL, e->type == E_GEQ ? ">=" : ">"); fn(data, e->right.sym, e->right.sym->name); break; case E_UNEQUAL: if (e->left.sym->name) fn(data, e->left.sym, e->left.sym->name); else fn(data, NULL, ""); fn(data, NULL, "!="); fn(data, e->right.sym, e->right.sym->name); break; case E_OR: expr_print(e->left.expr, fn, data, E_OR); fn(data, NULL, " || "); expr_print(e->right.expr, fn, data, E_OR); break; case E_AND: expr_print(e->left.expr, fn, data, E_AND); fn(data, NULL, " && "); expr_print(e->right.expr, fn, data, E_AND); break; case E_LIST: fn(data, e->right.sym, e->right.sym->name); if (e->left.expr) { fn(data, NULL, " ^ "); expr_print(e->left.expr, fn, data, E_LIST); } break; case E_RANGE: fn(data, NULL, "["); fn(data, e->left.sym, e->left.sym->name); fn(data, NULL, " "); fn(data, e->right.sym, e->right.sym->name); fn(data, NULL, "]"); break; default: { char buf[32]; sprintf(buf, "", e->type); fn(data, NULL, buf); break; } } if (expr_compare_type(prevtoken, e->type) > 0) fn(data, NULL, ")"); } static void expr_print_file_helper(void *data, struct symbol *sym, const char *str) { xfwrite(str, strlen(str), 1, data); } void expr_fprint(struct expr *e, FILE *out) { expr_print(e, expr_print_file_helper, out, E_NONE); } static void expr_print_gstr_helper(void *data, struct symbol *sym, const char *str) { struct gstr *gs = (struct gstr*)data; const char *sym_str = NULL; if (sym) sym_str = sym_get_string_value(sym); if (gs->max_width) { unsigned extra_length = strlen(str); const char *last_cr = strrchr(gs->s, '\n'); unsigned last_line_length; if (sym_str) extra_length += 4 + strlen(sym_str); if (!last_cr) last_cr = gs->s; last_line_length = strlen(gs->s) - (last_cr - gs->s); if ((last_line_length + extra_length) > gs->max_width) str_append(gs, "\\\n"); } str_append(gs, str); if (sym && sym->type != S_UNKNOWN) str_printf(gs, " [=%s]", sym_str); } void expr_gstr_print(struct expr *e, struct gstr *gs) { expr_print(e, expr_print_gstr_helper, gs, E_NONE); } /* * Transform the top level "||" tokens into newlines and prepend each * line with a minus. This makes expressions much easier to read. * Suitable for reverse dependency expressions. */ static void expr_print_revdep(struct expr *e, void (*fn)(void *, struct symbol *, const char *), void *data, tristate pr_type, const char **title) { if (e->type == E_OR) { expr_print_revdep(e->left.expr, fn, data, pr_type, title); expr_print_revdep(e->right.expr, fn, data, pr_type, title); } else if (expr_calc_value(e) == pr_type) { if (*title) { fn(data, NULL, *title); *title = NULL; } fn(data, NULL, " - "); expr_print(e, fn, data, E_NONE); fn(data, NULL, "\n"); } } void expr_gstr_print_revdep(struct expr *e, struct gstr *gs, tristate pr_type, const char *title) { expr_print_revdep(e, expr_print_gstr_helper, gs, pr_type, &title); } ================================================ FILE: support/kconfig/expr.h ================================================ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ #ifndef EXPR_H #define EXPR_H #ifdef __cplusplus extern "C" { #endif #include #include #include "list.h" #ifndef __cplusplus #include #endif struct file { struct file *next; struct file *parent; const char *name; int lineno; }; typedef enum tristate { no, mod, yes } tristate; enum expr_type { E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_LTH, E_LEQ, E_GTH, E_GEQ, E_LIST, E_SYMBOL, E_RANGE }; union expr_data { struct expr *expr; struct symbol *sym; }; struct expr { enum expr_type type; union expr_data left, right; }; #define EXPR_OR(dep1, dep2) (((dep1)>(dep2))?(dep1):(dep2)) #define EXPR_AND(dep1, dep2) (((dep1)<(dep2))?(dep1):(dep2)) #define EXPR_NOT(dep) (2-(dep)) #define expr_list_for_each_sym(l, e, s) \ for (e = (l); e && (s = e->right.sym); e = e->left.expr) struct expr_value { struct expr *expr; tristate tri; }; struct symbol_value { void *val; tristate tri; }; enum symbol_type { S_UNKNOWN, S_BOOLEAN, S_TRISTATE, S_INT, S_HEX, S_STRING, S_OTHER }; /* enum values are used as index to symbol.def[] */ enum { S_DEF_USER, /* main user value */ S_DEF_AUTO, /* values read from auto.conf */ S_DEF_DEF3, /* Reserved for UI usage */ S_DEF_DEF4, /* Reserved for UI usage */ S_DEF_COUNT }; /* * Represents a configuration symbol. * * Choices are represented as a special kind of symbol and have the * SYMBOL_CHOICE bit set in 'flags'. */ struct symbol { /* The next symbol in the same bucket in the symbol hash table */ struct symbol *next; /* The name of the symbol, e.g. "FOO" for 'config FOO' */ char *name; /* S_BOOLEAN, S_TRISTATE, ... */ enum symbol_type type; /* * The calculated value of the symbol. The SYMBOL_VALID bit is set in * 'flags' when this is up to date. Note that this value might differ * from the user value set in e.g. a .config file, due to visibility. */ struct symbol_value curr; /* * Values for the symbol provided from outside. def[S_DEF_USER] holds * the .config value. */ struct symbol_value def[S_DEF_COUNT]; /* * An upper bound on the tristate value the user can set for the symbol * if it is a boolean or tristate. Calculated from prompt dependencies, * which also inherit dependencies from enclosing menus, choices, and * ifs. If 'n', the user value will be ignored. * * Symbols lacking prompts always have visibility 'n'. */ tristate visible; /* SYMBOL_* flags */ int flags; /* List of properties. See prop_type. */ struct property *prop; /* Dependencies from enclosing menus, choices, and ifs */ struct expr_value dir_dep; /* Reverse dependencies through being selected by other symbols */ struct expr_value rev_dep; /* * "Weak" reverse dependencies through being implied by other symbols */ struct expr_value implied; }; #define for_all_symbols(i, sym) for (i = 0; i < SYMBOL_HASHSIZE; i++) for (sym = symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER) #define SYMBOL_CONST 0x0001 /* symbol is const */ #define SYMBOL_CHECK 0x0008 /* used during dependency checking */ #define SYMBOL_CHOICE 0x0010 /* start of a choice block (null name) */ #define SYMBOL_CHOICEVAL 0x0020 /* used as a value in a choice block */ #define SYMBOL_VALID 0x0080 /* set when symbol.curr is calculated */ #define SYMBOL_OPTIONAL 0x0100 /* choice is optional - values can be 'n' */ #define SYMBOL_WRITE 0x0200 /* write symbol to file (KCONFIG_CONFIG) */ #define SYMBOL_CHANGED 0x0400 /* ? */ #define SYMBOL_AUTO 0x1000 /* value from environment variable */ #define SYMBOL_CHECKED 0x2000 /* used during dependency checking */ #define SYMBOL_WARNED 0x8000 /* warning has been issued */ /* Set when symbol.def[] is used */ #define SYMBOL_DEF 0x10000 /* First bit of SYMBOL_DEF */ #define SYMBOL_DEF_USER 0x10000 /* symbol.def[S_DEF_USER] is valid */ #define SYMBOL_DEF_AUTO 0x20000 /* symbol.def[S_DEF_AUTO] is valid */ #define SYMBOL_DEF3 0x40000 /* symbol.def[S_DEF_3] is valid */ #define SYMBOL_DEF4 0x80000 /* symbol.def[S_DEF_4] is valid */ /* choice values need to be set before calculating this symbol value */ #define SYMBOL_NEED_SET_CHOICE_VALUES 0x100000 /* Set symbol to y if allnoconfig; used for symbols that hide others */ #define SYMBOL_ALLNOCONFIG_Y 0x200000 #define SYMBOL_MAXLENGTH 256 #define SYMBOL_HASHSIZE 9973 /* A property represent the config options that can be associated * with a config "symbol". * Sample: * config FOO * default y * prompt "foo prompt" * select BAR * config BAZ * int "BAZ Value" * range 1..255 */ enum prop_type { P_UNKNOWN, P_PROMPT, /* prompt "foo prompt" or "BAZ Value" */ P_COMMENT, /* text associated with a comment */ P_MENU, /* prompt associated with a menu or menuconfig symbol */ P_DEFAULT, /* default y */ P_CHOICE, /* choice value */ P_SELECT, /* select BAR */ P_IMPLY, /* imply BAR */ P_RANGE, /* range 7..100 (for a symbol) */ P_ENV, /* value from environment variable */ P_SYMBOL, /* where a symbol is defined */ }; struct property { struct property *next; /* next property - null if last */ struct symbol *sym; /* the symbol for which the property is associated */ enum prop_type type; /* type of property */ const char *text; /* the prompt value - P_PROMPT, P_MENU, P_COMMENT */ struct expr_value visible; struct expr *expr; /* the optional conditional part of the property */ struct menu *menu; /* the menu the property are associated with * valid for: P_SELECT, P_RANGE, P_CHOICE, * P_PROMPT, P_DEFAULT, P_MENU, P_COMMENT */ struct file *file; /* what file was this property defined */ int lineno; /* what lineno was this property defined */ }; #define for_all_properties(sym, st, tok) \ for (st = sym->prop; st; st = st->next) \ if (st->type == (tok)) #define for_all_defaults(sym, st) for_all_properties(sym, st, P_DEFAULT) #define for_all_choices(sym, st) for_all_properties(sym, st, P_CHOICE) #define for_all_prompts(sym, st) \ for (st = sym->prop; st; st = st->next) \ if (st->text) /* * Represents a node in the menu tree, as seen in e.g. menuconfig (though used * for all front ends). Each symbol, menu, etc. defined in the Kconfig files * gets a node. A symbol defined in multiple locations gets one node at each * location. */ struct menu { /* The next menu node at the same level */ struct menu *next; /* The parent menu node, corresponding to e.g. a menu or choice */ struct menu *parent; /* The first child menu node, for e.g. menus and choices */ struct menu *list; /* * The symbol associated with the menu node. Choices are implemented as * a special kind of symbol. NULL for menus, comments, and ifs. */ struct symbol *sym; /* * The prompt associated with the node. This holds the prompt for a * symbol as well as the text for a menu or comment, along with the * type (P_PROMPT, P_MENU, etc.) */ struct property *prompt; /* * 'visible if' dependencies. If more than one is given, they will be * ANDed together. */ struct expr *visibility; /* * Ordinary dependencies from e.g. 'depends on' and 'if', ANDed * together */ struct expr *dep; /* MENU_* flags */ unsigned int flags; /* Any help text associated with the node */ char *help; /* The location where the menu node appears in the Kconfig files */ struct file *file; int lineno; /* For use by front ends that need to store auxiliary data */ void *data; }; /* * Set on a menu node when the corresponding symbol changes state in some way. * Can be checked by front ends. */ #define MENU_CHANGED 0x0001 #define MENU_ROOT 0x0002 struct jump_key { struct list_head entries; size_t offset; struct menu *target; int index; }; #define JUMP_NB 9 extern struct file *file_list; extern struct file *current_file; struct file *lookup_file(const char *name); extern struct symbol symbol_yes, symbol_no, symbol_mod; extern struct symbol *modules_sym; extern struct symbol *sym_defconfig_list; extern int cdebug; struct expr *expr_alloc_symbol(struct symbol *sym); struct expr *expr_alloc_one(enum expr_type type, struct expr *ce); struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr *e2); struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1, struct symbol *s2); struct expr *expr_alloc_and(struct expr *e1, struct expr *e2); struct expr *expr_alloc_or(struct expr *e1, struct expr *e2); struct expr *expr_copy(const struct expr *org); void expr_free(struct expr *e); void expr_eliminate_eq(struct expr **ep1, struct expr **ep2); tristate expr_calc_value(struct expr *e); struct expr *expr_trans_bool(struct expr *e); struct expr *expr_eliminate_dups(struct expr *e); struct expr *expr_transform(struct expr *e); int expr_contains_symbol(struct expr *dep, struct symbol *sym); bool expr_depends_symbol(struct expr *dep, struct symbol *sym); struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym); void expr_fprint(struct expr *e, FILE *out); struct gstr; /* forward */ void expr_gstr_print(struct expr *e, struct gstr *gs); void expr_gstr_print_revdep(struct expr *e, struct gstr *gs, tristate pr_type, const char *title); static inline int expr_is_yes(struct expr *e) { return !e || (e->type == E_SYMBOL && e->left.sym == &symbol_yes); } static inline int expr_is_no(struct expr *e) { return e && (e->type == E_SYMBOL && e->left.sym == &symbol_no); } #ifdef __cplusplus } #endif #endif /* EXPR_H */ ================================================ FILE: support/kconfig/foo.h ================================================ #ifndef __KCONFIG_FOO_H #define __KCONFIG_FOO_H #ifndef __APPLE__ #include #endif #include #ifndef PATH_MAX #define PATH_MAX 1024 #endif #endif /* __KCONFIG_FOO_H */ ================================================ FILE: support/kconfig/gconf.c ================================================ /* Hey EMACS -*- linux-c -*- */ /* * * Copyright (C) 2002-2003 Romain Lievin * Released under the terms of the GNU GPL v2.0. * */ #ifdef HAVE_CONFIG_H # include #endif #include #include "lkc.h" #include "images.c" #include #include #include #include #include #include #include #include //#define DEBUG enum { SINGLE_VIEW, SPLIT_VIEW, FULL_VIEW }; enum { OPT_NORMAL, OPT_ALL, OPT_PROMPT }; static gint view_mode = FULL_VIEW; static gboolean show_name = TRUE; static gboolean show_range = TRUE; static gboolean show_value = TRUE; static gboolean resizeable = FALSE; static int opt_mode = OPT_NORMAL; GtkWidget *main_wnd = NULL; GtkWidget *tree1_w = NULL; // left frame GtkWidget *tree2_w = NULL; // right frame GtkWidget *text_w = NULL; GtkWidget *hpaned = NULL; GtkWidget *vpaned = NULL; GtkWidget *back_btn = NULL; GtkWidget *save_btn = NULL; GtkWidget *save_menu_item = NULL; GtkTextTag *tag1, *tag2; GdkColor color; GtkTreeStore *tree1, *tree2, *tree; GtkTreeModel *model1, *model2; static GtkTreeIter *parents[256]; static gint indent; static struct menu *current; // current node for SINGLE view static struct menu *browsed; // browsed node for SPLIT view enum { COL_OPTION, COL_NAME, COL_NO, COL_MOD, COL_YES, COL_VALUE, COL_MENU, COL_COLOR, COL_EDIT, COL_PIXBUF, COL_PIXVIS, COL_BTNVIS, COL_BTNACT, COL_BTNINC, COL_BTNRAD, COL_NUMBER }; static void display_list(void); static void display_tree(struct menu *menu); static void display_tree_part(void); static void update_tree(struct menu *src, GtkTreeIter * dst); static void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row); static gchar **fill_row(struct menu *menu); static void conf_changed(void); /* Helping/Debugging Functions */ const char *dbg_sym_flags(int val) { static char buf[256]; bzero(buf, 256); if (val & SYMBOL_CONST) strcat(buf, "const/"); if (val & SYMBOL_CHECK) strcat(buf, "check/"); if (val & SYMBOL_CHOICE) strcat(buf, "choice/"); if (val & SYMBOL_CHOICEVAL) strcat(buf, "choiceval/"); if (val & SYMBOL_VALID) strcat(buf, "valid/"); if (val & SYMBOL_OPTIONAL) strcat(buf, "optional/"); if (val & SYMBOL_WRITE) strcat(buf, "write/"); if (val & SYMBOL_CHANGED) strcat(buf, "changed/"); if (val & SYMBOL_AUTO) strcat(buf, "auto/"); buf[strlen(buf) - 1] = '\0'; return buf; } void replace_button_icon(GladeXML * xml, GdkDrawable * window, GtkStyle * style, gchar * btn_name, gchar ** xpm) { GdkPixmap *pixmap; GdkBitmap *mask; GtkToolButton *button; GtkWidget *image; pixmap = gdk_pixmap_create_from_xpm_d(window, &mask, &style->bg[GTK_STATE_NORMAL], xpm); button = GTK_TOOL_BUTTON(glade_xml_get_widget(xml, btn_name)); image = gtk_image_new_from_pixmap(pixmap, mask); gtk_widget_show(image); gtk_tool_button_set_icon_widget(button, image); } /* Main Window Initialization */ void init_main_window(const gchar * glade_file) { GladeXML *xml; GtkWidget *widget; GtkTextBuffer *txtbuf; GtkStyle *style; xml = glade_xml_new(glade_file, "window1", NULL); if (!xml) g_error(_("GUI loading failed !\n")); glade_xml_signal_autoconnect(xml); main_wnd = glade_xml_get_widget(xml, "window1"); hpaned = glade_xml_get_widget(xml, "hpaned1"); vpaned = glade_xml_get_widget(xml, "vpaned1"); tree1_w = glade_xml_get_widget(xml, "treeview1"); tree2_w = glade_xml_get_widget(xml, "treeview2"); text_w = glade_xml_get_widget(xml, "textview3"); back_btn = glade_xml_get_widget(xml, "button1"); gtk_widget_set_sensitive(back_btn, FALSE); widget = glade_xml_get_widget(xml, "show_name1"); gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, show_name); widget = glade_xml_get_widget(xml, "show_range1"); gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, show_range); widget = glade_xml_get_widget(xml, "show_data1"); gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, show_value); save_btn = glade_xml_get_widget(xml, "button3"); save_menu_item = glade_xml_get_widget(xml, "save1"); conf_set_changed_callback(conf_changed); style = gtk_widget_get_style(main_wnd); widget = glade_xml_get_widget(xml, "toolbar1"); replace_button_icon(xml, main_wnd->window, style, "button4", (gchar **) xpm_single_view); replace_button_icon(xml, main_wnd->window, style, "button5", (gchar **) xpm_split_view); replace_button_icon(xml, main_wnd->window, style, "button6", (gchar **) xpm_tree_view); txtbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w)); tag1 = gtk_text_buffer_create_tag(txtbuf, "mytag1", "foreground", "red", "weight", PANGO_WEIGHT_BOLD, NULL); tag2 = gtk_text_buffer_create_tag(txtbuf, "mytag2", /*"style", PANGO_STYLE_OBLIQUE, */ NULL); gtk_window_set_title(GTK_WINDOW(main_wnd), rootmenu.prompt->text); gtk_widget_show(main_wnd); } void init_tree_model(void) { gint i; tree = tree2 = gtk_tree_store_new(COL_NUMBER, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, GDK_TYPE_COLOR, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); model2 = GTK_TREE_MODEL(tree2); for (parents[0] = NULL, i = 1; i < 256; i++) parents[i] = (GtkTreeIter *) g_malloc(sizeof(GtkTreeIter)); tree1 = gtk_tree_store_new(COL_NUMBER, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, GDK_TYPE_COLOR, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); model1 = GTK_TREE_MODEL(tree1); } void init_left_tree(void) { GtkTreeView *view = GTK_TREE_VIEW(tree1_w); GtkCellRenderer *renderer; GtkTreeSelection *sel; GtkTreeViewColumn *column; gtk_tree_view_set_model(view, model1); gtk_tree_view_set_headers_visible(view, TRUE); gtk_tree_view_set_rules_hint(view, TRUE); column = gtk_tree_view_column_new(); gtk_tree_view_append_column(view, column); gtk_tree_view_column_set_title(column, _("Options")); renderer = gtk_cell_renderer_toggle_new(); gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column), renderer, FALSE); gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column), renderer, "active", COL_BTNACT, "inconsistent", COL_BTNINC, "visible", COL_BTNVIS, "radio", COL_BTNRAD, NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column), renderer, FALSE); gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column), renderer, "text", COL_OPTION, "foreground-gdk", COL_COLOR, NULL); sel = gtk_tree_view_get_selection(view); gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); gtk_widget_realize(tree1_w); } static void renderer_edited(GtkCellRendererText * cell, const gchar * path_string, const gchar * new_text, gpointer user_data); void init_right_tree(void) { GtkTreeView *view = GTK_TREE_VIEW(tree2_w); GtkCellRenderer *renderer; GtkTreeSelection *sel; GtkTreeViewColumn *column; gint i; gtk_tree_view_set_model(view, model2); gtk_tree_view_set_headers_visible(view, TRUE); gtk_tree_view_set_rules_hint(view, TRUE); column = gtk_tree_view_column_new(); gtk_tree_view_append_column(view, column); gtk_tree_view_column_set_title(column, _("Options")); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column), renderer, FALSE); gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column), renderer, "pixbuf", COL_PIXBUF, "visible", COL_PIXVIS, NULL); renderer = gtk_cell_renderer_toggle_new(); gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column), renderer, FALSE); gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column), renderer, "active", COL_BTNACT, "inconsistent", COL_BTNINC, "visible", COL_BTNVIS, "radio", COL_BTNRAD, NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column), renderer, FALSE); gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column), renderer, "text", COL_OPTION, "foreground-gdk", COL_COLOR, NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_insert_column_with_attributes(view, -1, _("Name"), renderer, "text", COL_NAME, "foreground-gdk", COL_COLOR, NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_insert_column_with_attributes(view, -1, "N", renderer, "text", COL_NO, "foreground-gdk", COL_COLOR, NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_insert_column_with_attributes(view, -1, "M", renderer, "text", COL_MOD, "foreground-gdk", COL_COLOR, NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_insert_column_with_attributes(view, -1, "Y", renderer, "text", COL_YES, "foreground-gdk", COL_COLOR, NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_insert_column_with_attributes(view, -1, _("Value"), renderer, "text", COL_VALUE, "editable", COL_EDIT, "foreground-gdk", COL_COLOR, NULL); g_signal_connect(G_OBJECT(renderer), "edited", G_CALLBACK(renderer_edited), NULL); column = gtk_tree_view_get_column(view, COL_NAME); gtk_tree_view_column_set_visible(column, show_name); column = gtk_tree_view_get_column(view, COL_NO); gtk_tree_view_column_set_visible(column, show_range); column = gtk_tree_view_get_column(view, COL_MOD); gtk_tree_view_column_set_visible(column, show_range); column = gtk_tree_view_get_column(view, COL_YES); gtk_tree_view_column_set_visible(column, show_range); column = gtk_tree_view_get_column(view, COL_VALUE); gtk_tree_view_column_set_visible(column, show_value); if (resizeable) { for (i = 0; i < COL_VALUE; i++) { column = gtk_tree_view_get_column(view, i); gtk_tree_view_column_set_resizable(column, TRUE); } } sel = gtk_tree_view_get_selection(view); gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); } /* Utility Functions */ static void text_insert_help(struct menu *menu) { GtkTextBuffer *buffer; GtkTextIter start, end; const char *prompt = _(menu_get_prompt(menu)); struct gstr help = str_new(); menu_get_ext_help(menu, &help); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w)); gtk_text_buffer_get_bounds(buffer, &start, &end); gtk_text_buffer_delete(buffer, &start, &end); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_insert_with_tags(buffer, &end, prompt, -1, tag1, NULL); gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_insert_with_tags(buffer, &end, str_get(&help), -1, tag2, NULL); str_free(&help); } static void text_insert_msg(const char *title, const char *message) { GtkTextBuffer *buffer; GtkTextIter start, end; const char *msg = message; buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w)); gtk_text_buffer_get_bounds(buffer, &start, &end); gtk_text_buffer_delete(buffer, &start, &end); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_insert_with_tags(buffer, &end, title, -1, tag1, NULL); gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_insert_with_tags(buffer, &end, msg, -1, tag2, NULL); } /* Main Windows Callbacks */ void on_save_activate(GtkMenuItem * menuitem, gpointer user_data); gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event, gpointer user_data) { GtkWidget *dialog, *label; gint result; if (!conf_get_changed()) return FALSE; dialog = gtk_dialog_new_with_buttons(_("Warning !"), GTK_WINDOW(main_wnd), (GtkDialogFlags) (GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT), GTK_STOCK_OK, GTK_RESPONSE_YES, GTK_STOCK_NO, GTK_RESPONSE_NO, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_CANCEL); label = gtk_label_new(_("\nSave configuration ?\n")); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label); gtk_widget_show(label); result = gtk_dialog_run(GTK_DIALOG(dialog)); switch (result) { case GTK_RESPONSE_YES: on_save_activate(NULL, NULL); return FALSE; case GTK_RESPONSE_NO: return FALSE; case GTK_RESPONSE_CANCEL: case GTK_RESPONSE_DELETE_EVENT: default: gtk_widget_destroy(dialog); return TRUE; } return FALSE; } void on_window1_destroy(GtkObject * object, gpointer user_data) { gtk_main_quit(); } void on_window1_size_request(GtkWidget * widget, GtkRequisition * requisition, gpointer user_data) { static gint old_h; gint w, h; if (widget->window == NULL) gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, &h); else gdk_window_get_size(widget->window, &w, &h); if (h == old_h) return; old_h = h; gtk_paned_set_position(GTK_PANED(vpaned), 2 * h / 3); } /* Menu & Toolbar Callbacks */ static void load_filename(GtkFileSelection * file_selector, gpointer user_data) { const gchar *fn; fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION (user_data)); if (conf_read(fn)) text_insert_msg(_("Error"), _("Unable to load configuration !")); else display_tree(&rootmenu); } void on_load1_activate(GtkMenuItem * menuitem, gpointer user_data) { GtkWidget *fs; fs = gtk_file_selection_new(_("Load file...")); g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button), "clicked", G_CALLBACK(load_filename), (gpointer) fs); g_signal_connect_swapped(GTK_OBJECT (GTK_FILE_SELECTION(fs)->ok_button), "clicked", G_CALLBACK(gtk_widget_destroy), (gpointer) fs); g_signal_connect_swapped(GTK_OBJECT (GTK_FILE_SELECTION(fs)->cancel_button), "clicked", G_CALLBACK(gtk_widget_destroy), (gpointer) fs); gtk_widget_show(fs); } void on_save_activate(GtkMenuItem * menuitem, gpointer user_data) { if (conf_write(NULL)) text_insert_msg(_("Error"), _("Unable to save configuration !")); } static void store_filename(GtkFileSelection * file_selector, gpointer user_data) { const gchar *fn; fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION (user_data)); if (conf_write(fn)) text_insert_msg(_("Error"), _("Unable to save configuration !")); gtk_widget_destroy(GTK_WIDGET(user_data)); } void on_save_as1_activate(GtkMenuItem * menuitem, gpointer user_data) { GtkWidget *fs; fs = gtk_file_selection_new(_("Save file as...")); g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button), "clicked", G_CALLBACK(store_filename), (gpointer) fs); g_signal_connect_swapped(GTK_OBJECT (GTK_FILE_SELECTION(fs)->ok_button), "clicked", G_CALLBACK(gtk_widget_destroy), (gpointer) fs); g_signal_connect_swapped(GTK_OBJECT (GTK_FILE_SELECTION(fs)->cancel_button), "clicked", G_CALLBACK(gtk_widget_destroy), (gpointer) fs); gtk_widget_show(fs); } void on_quit1_activate(GtkMenuItem * menuitem, gpointer user_data) { if (!on_window1_delete_event(NULL, NULL, NULL)) gtk_widget_destroy(GTK_WIDGET(main_wnd)); } void on_show_name1_activate(GtkMenuItem * menuitem, gpointer user_data) { GtkTreeViewColumn *col; show_name = GTK_CHECK_MENU_ITEM(menuitem)->active; col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_NAME); if (col) gtk_tree_view_column_set_visible(col, show_name); } void on_show_range1_activate(GtkMenuItem * menuitem, gpointer user_data) { GtkTreeViewColumn *col; show_range = GTK_CHECK_MENU_ITEM(menuitem)->active; col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_NO); if (col) gtk_tree_view_column_set_visible(col, show_range); col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_MOD); if (col) gtk_tree_view_column_set_visible(col, show_range); col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_YES); if (col) gtk_tree_view_column_set_visible(col, show_range); } void on_show_data1_activate(GtkMenuItem * menuitem, gpointer user_data) { GtkTreeViewColumn *col; show_value = GTK_CHECK_MENU_ITEM(menuitem)->active; col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_VALUE); if (col) gtk_tree_view_column_set_visible(col, show_value); } void on_set_option_mode1_activate(GtkMenuItem *menuitem, gpointer user_data) { opt_mode = OPT_NORMAL; gtk_tree_store_clear(tree2); display_tree(&rootmenu); /* instead of update_tree to speed-up */ } void on_set_option_mode2_activate(GtkMenuItem *menuitem, gpointer user_data) { opt_mode = OPT_ALL; gtk_tree_store_clear(tree2); display_tree(&rootmenu); /* instead of update_tree to speed-up */ } void on_set_option_mode3_activate(GtkMenuItem *menuitem, gpointer user_data) { opt_mode = OPT_PROMPT; gtk_tree_store_clear(tree2); display_tree(&rootmenu); /* instead of update_tree to speed-up */ } void on_introduction1_activate(GtkMenuItem * menuitem, gpointer user_data) { GtkWidget *dialog; const gchar *intro_text = _( "Welcome to gkc, the GTK+ graphical configuration tool\n" "For each option, a blank box indicates the feature is disabled, a\n" "check indicates it is enabled, and a dot indicates that it is to\n" "be compiled as a module. Clicking on the box will cycle through the three states.\n" "\n" "If you do not see an option (e.g., a device driver) that you\n" "believe should be present, try turning on Show All Options\n" "under the Options menu.\n" "Although there is no cross reference yet to help you figure out\n" "what other options must be enabled to support the option you\n" "are interested in, you can still view the help of a grayed-out\n" "option.\n" "\n" "Toggling Show Debug Info under the Options menu will show \n" "the dependencies, which you can then match by examining other options."); dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "%s", intro_text); g_signal_connect_swapped(GTK_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), GTK_OBJECT(dialog)); gtk_widget_show_all(dialog); } void on_about1_activate(GtkMenuItem * menuitem, gpointer user_data) { GtkWidget *dialog; const gchar *about_text = _("gkc is copyright (c) 2002 Romain Lievin .\n" "Based on the source code from Roman Zippel.\n"); dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "%s", about_text); g_signal_connect_swapped(GTK_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), GTK_OBJECT(dialog)); gtk_widget_show_all(dialog); } void on_license1_activate(GtkMenuItem * menuitem, gpointer user_data) { GtkWidget *dialog; const gchar *license_text = _("gkc is released under the terms of the GNU GPL v2.\n" "For more information, please see the source code or\n" "visit http://www.fsf.org/licenses/licenses.html\n"); dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "%s", license_text); g_signal_connect_swapped(GTK_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), GTK_OBJECT(dialog)); gtk_widget_show_all(dialog); } void on_back_clicked(GtkButton * button, gpointer user_data) { enum prop_type ptype; current = current->parent; ptype = current->prompt ? current->prompt->type : P_UNKNOWN; if (ptype != P_MENU) current = current->parent; display_tree_part(); if (current == &rootmenu) gtk_widget_set_sensitive(back_btn, FALSE); } void on_load_clicked(GtkButton * button, gpointer user_data) { on_load1_activate(NULL, user_data); } void on_single_clicked(GtkButton * button, gpointer user_data) { view_mode = SINGLE_VIEW; gtk_widget_hide(tree1_w); current = &rootmenu; display_tree_part(); } void on_split_clicked(GtkButton * button, gpointer user_data) { gint w, h; view_mode = SPLIT_VIEW; gtk_widget_show(tree1_w); gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, &h); gtk_paned_set_position(GTK_PANED(hpaned), w / 2); if (tree2) gtk_tree_store_clear(tree2); display_list(); /* Disable back btn, like in full mode. */ gtk_widget_set_sensitive(back_btn, FALSE); } void on_full_clicked(GtkButton * button, gpointer user_data) { view_mode = FULL_VIEW; gtk_widget_hide(tree1_w); if (tree2) gtk_tree_store_clear(tree2); display_tree(&rootmenu); gtk_widget_set_sensitive(back_btn, FALSE); } void on_collapse_clicked(GtkButton * button, gpointer user_data) { gtk_tree_view_collapse_all(GTK_TREE_VIEW(tree2_w)); } void on_expand_clicked(GtkButton * button, gpointer user_data) { gtk_tree_view_expand_all(GTK_TREE_VIEW(tree2_w)); } /* CTree Callbacks */ /* Change hex/int/string value in the cell */ static void renderer_edited(GtkCellRendererText * cell, const gchar * path_string, const gchar * new_text, gpointer user_data) { GtkTreePath *path = gtk_tree_path_new_from_string(path_string); GtkTreeIter iter; const char *old_def, *new_def; struct menu *menu; struct symbol *sym; if (!gtk_tree_model_get_iter(model2, &iter, path)) return; gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1); sym = menu->sym; gtk_tree_model_get(model2, &iter, COL_VALUE, &old_def, -1); new_def = new_text; sym_set_string_value(sym, new_def); update_tree(&rootmenu, NULL); gtk_tree_path_free(path); } /* Change the value of a symbol and update the tree */ static void change_sym_value(struct menu *menu, gint col) { struct symbol *sym = menu->sym; tristate newval; if (!sym) return; if (col == COL_NO) newval = no; else if (col == COL_MOD) newval = mod; else if (col == COL_YES) newval = yes; else return; switch (sym_get_type(sym)) { case S_BOOLEAN: case S_TRISTATE: if (!sym_tristate_within_range(sym, newval)) newval = yes; sym_set_tristate_value(sym, newval); if (view_mode == FULL_VIEW) update_tree(&rootmenu, NULL); else if (view_mode == SPLIT_VIEW) { update_tree(browsed, NULL); display_list(); } else if (view_mode == SINGLE_VIEW) display_tree_part(); //fixme: keep exp/coll break; case S_INT: case S_HEX: case S_STRING: default: break; } } static void toggle_sym_value(struct menu *menu) { if (!menu->sym) return; sym_toggle_tristate_value(menu->sym); if (view_mode == FULL_VIEW) update_tree(&rootmenu, NULL); else if (view_mode == SPLIT_VIEW) { update_tree(browsed, NULL); display_list(); } else if (view_mode == SINGLE_VIEW) display_tree_part(); //fixme: keep exp/coll } static gint column2index(GtkTreeViewColumn * column) { gint i; for (i = 0; i < COL_NUMBER; i++) { GtkTreeViewColumn *col; col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), i); if (col == column) return i; } return -1; } /* User click: update choice (full) or goes down (single) */ gboolean on_treeview2_button_press_event(GtkWidget * widget, GdkEventButton * event, gpointer user_data) { GtkTreeView *view = GTK_TREE_VIEW(widget); GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeIter iter; struct menu *menu; gint col; #if GTK_CHECK_VERSION(2,1,4) // bug in ctree with earlier version of GTK gint tx = (gint) event->x; gint ty = (gint) event->y; gint cx, cy; gtk_tree_view_get_path_at_pos(view, tx, ty, &path, &column, &cx, &cy); #else gtk_tree_view_get_cursor(view, &path, &column); #endif if (path == NULL) return FALSE; if (!gtk_tree_model_get_iter(model2, &iter, path)) return FALSE; gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1); col = column2index(column); if (event->type == GDK_2BUTTON_PRESS) { enum prop_type ptype; ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN; if (ptype == P_MENU && view_mode != FULL_VIEW && col == COL_OPTION) { // goes down into menu current = menu; display_tree_part(); gtk_widget_set_sensitive(back_btn, TRUE); } else if (col == COL_OPTION) { toggle_sym_value(menu); gtk_tree_view_expand_row(view, path, TRUE); } } else { if (col == COL_VALUE) { toggle_sym_value(menu); gtk_tree_view_expand_row(view, path, TRUE); } else if (col == COL_NO || col == COL_MOD || col == COL_YES) { change_sym_value(menu, col); gtk_tree_view_expand_row(view, path, TRUE); } } return FALSE; } /* Key pressed: update choice */ gboolean on_treeview2_key_press_event(GtkWidget * widget, GdkEventKey * event, gpointer user_data) { GtkTreeView *view = GTK_TREE_VIEW(widget); GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeIter iter; struct menu *menu; gint col; gtk_tree_view_get_cursor(view, &path, &column); if (path == NULL) return FALSE; if (event->keyval == GDK_space) { if (gtk_tree_view_row_expanded(view, path)) gtk_tree_view_collapse_row(view, path); else gtk_tree_view_expand_row(view, path, FALSE); return TRUE; } if (event->keyval == GDK_KP_Enter) { } if (widget == tree1_w) return FALSE; gtk_tree_model_get_iter(model2, &iter, path); gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1); if (!strcasecmp(event->string, "n")) col = COL_NO; else if (!strcasecmp(event->string, "m")) col = COL_MOD; else if (!strcasecmp(event->string, "y")) col = COL_YES; else col = -1; change_sym_value(menu, col); return FALSE; } /* Row selection changed: update help */ void on_treeview2_cursor_changed(GtkTreeView * treeview, gpointer user_data) { GtkTreeSelection *selection; GtkTreeIter iter; struct menu *menu; selection = gtk_tree_view_get_selection(treeview); if (gtk_tree_selection_get_selected(selection, &model2, &iter)) { gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1); text_insert_help(menu); } } /* User click: display sub-tree in the right frame. */ gboolean on_treeview1_button_press_event(GtkWidget * widget, GdkEventButton * event, gpointer user_data) { GtkTreeView *view = GTK_TREE_VIEW(widget); GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeIter iter; struct menu *menu; gint tx = (gint) event->x; gint ty = (gint) event->y; gint cx, cy; gtk_tree_view_get_path_at_pos(view, tx, ty, &path, &column, &cx, &cy); if (path == NULL) return FALSE; gtk_tree_model_get_iter(model1, &iter, path); gtk_tree_model_get(model1, &iter, COL_MENU, &menu, -1); if (event->type == GDK_2BUTTON_PRESS) { toggle_sym_value(menu); current = menu; display_tree_part(); } else { browsed = menu; display_tree_part(); } gtk_widget_realize(tree2_w); gtk_tree_view_set_cursor(view, path, NULL, FALSE); gtk_widget_grab_focus(tree2_w); return FALSE; } /* Fill a row of strings */ static gchar **fill_row(struct menu *menu) { static gchar *row[COL_NUMBER]; struct symbol *sym = menu->sym; const char *def; int stype; tristate val; enum prop_type ptype; int i; for (i = COL_OPTION; i <= COL_COLOR; i++) g_free(row[i]); bzero(row, sizeof(row)); row[COL_OPTION] = g_strdup_printf("%s %s", _(menu_get_prompt(menu)), sym && !sym_has_value(sym) ? "(NEW)" : ""); if (opt_mode == OPT_ALL && !menu_is_visible(menu)) row[COL_COLOR] = g_strdup("DarkGray"); else if (opt_mode == OPT_PROMPT && menu_has_prompt(menu) && !menu_is_visible(menu)) row[COL_COLOR] = g_strdup("DarkGray"); else row[COL_COLOR] = g_strdup("Black"); ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN; switch (ptype) { case P_MENU: row[COL_PIXBUF] = (gchar *) xpm_menu; if (view_mode == SINGLE_VIEW) row[COL_PIXVIS] = GINT_TO_POINTER(TRUE); row[COL_BTNVIS] = GINT_TO_POINTER(FALSE); break; case P_COMMENT: row[COL_PIXBUF] = (gchar *) xpm_void; row[COL_PIXVIS] = GINT_TO_POINTER(FALSE); row[COL_BTNVIS] = GINT_TO_POINTER(FALSE); break; default: row[COL_PIXBUF] = (gchar *) xpm_void; row[COL_PIXVIS] = GINT_TO_POINTER(FALSE); row[COL_BTNVIS] = GINT_TO_POINTER(TRUE); break; } if (!sym) return row; row[COL_NAME] = g_strdup(sym->name); sym_calc_value(sym); sym->flags &= ~SYMBOL_CHANGED; if (sym_is_choice(sym)) { // parse childs for getting final value struct menu *child; struct symbol *def_sym = sym_get_choice_value(sym); struct menu *def_menu = NULL; row[COL_BTNVIS] = GINT_TO_POINTER(FALSE); for (child = menu->list; child; child = child->next) { if (menu_is_visible(child) && child->sym == def_sym) def_menu = child; } if (def_menu) row[COL_VALUE] = g_strdup(_(menu_get_prompt(def_menu))); } if (sym->flags & SYMBOL_CHOICEVAL) row[COL_BTNRAD] = GINT_TO_POINTER(TRUE); stype = sym_get_type(sym); switch (stype) { case S_BOOLEAN: if (GPOINTER_TO_INT(row[COL_PIXVIS]) == FALSE) row[COL_BTNVIS] = GINT_TO_POINTER(TRUE); if (sym_is_choice(sym)) break; /* fall through */ case S_TRISTATE: val = sym_get_tristate_value(sym); switch (val) { case no: row[COL_NO] = g_strdup("N"); row[COL_VALUE] = g_strdup("N"); row[COL_BTNACT] = GINT_TO_POINTER(FALSE); row[COL_BTNINC] = GINT_TO_POINTER(FALSE); break; case mod: row[COL_MOD] = g_strdup("M"); row[COL_VALUE] = g_strdup("M"); row[COL_BTNINC] = GINT_TO_POINTER(TRUE); break; case yes: row[COL_YES] = g_strdup("Y"); row[COL_VALUE] = g_strdup("Y"); row[COL_BTNACT] = GINT_TO_POINTER(TRUE); row[COL_BTNINC] = GINT_TO_POINTER(FALSE); break; } if (val != no && sym_tristate_within_range(sym, no)) row[COL_NO] = g_strdup("_"); if (val != mod && sym_tristate_within_range(sym, mod)) row[COL_MOD] = g_strdup("_"); if (val != yes && sym_tristate_within_range(sym, yes)) row[COL_YES] = g_strdup("_"); break; case S_INT: case S_HEX: case S_STRING: def = sym_get_string_value(sym); row[COL_VALUE] = g_strdup(def); row[COL_EDIT] = GINT_TO_POINTER(TRUE); row[COL_BTNVIS] = GINT_TO_POINTER(FALSE); break; } return row; } /* Set the node content with a row of strings */ static void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row) { GdkColor color; gboolean success; GdkPixbuf *pix; pix = gdk_pixbuf_new_from_xpm_data((const char **) row[COL_PIXBUF]); gdk_color_parse(row[COL_COLOR], &color); gdk_colormap_alloc_colors(gdk_colormap_get_system(), &color, 1, FALSE, FALSE, &success); gtk_tree_store_set(tree, node, COL_OPTION, row[COL_OPTION], COL_NAME, row[COL_NAME], COL_NO, row[COL_NO], COL_MOD, row[COL_MOD], COL_YES, row[COL_YES], COL_VALUE, row[COL_VALUE], COL_MENU, (gpointer) menu, COL_COLOR, &color, COL_EDIT, GPOINTER_TO_INT(row[COL_EDIT]), COL_PIXBUF, pix, COL_PIXVIS, GPOINTER_TO_INT(row[COL_PIXVIS]), COL_BTNVIS, GPOINTER_TO_INT(row[COL_BTNVIS]), COL_BTNACT, GPOINTER_TO_INT(row[COL_BTNACT]), COL_BTNINC, GPOINTER_TO_INT(row[COL_BTNINC]), COL_BTNRAD, GPOINTER_TO_INT(row[COL_BTNRAD]), -1); g_object_unref(pix); } /* Add a node to the tree */ static void place_node(struct menu *menu, char **row) { GtkTreeIter *parent = parents[indent - 1]; GtkTreeIter *node = parents[indent]; gtk_tree_store_append(tree, node, parent); set_node(node, menu, row); } /* Find a node in the GTK+ tree */ static GtkTreeIter found; /* * Find a menu in the GtkTree starting at parent. */ GtkTreeIter *gtktree_iter_find_node(GtkTreeIter * parent, struct menu *tofind) { GtkTreeIter iter; GtkTreeIter *child = &iter; gboolean valid; GtkTreeIter *ret; valid = gtk_tree_model_iter_children(model2, child, parent); while (valid) { struct menu *menu; gtk_tree_model_get(model2, child, 6, &menu, -1); if (menu == tofind) { memcpy(&found, child, sizeof(GtkTreeIter)); return &found; } ret = gtktree_iter_find_node(child, tofind); if (ret) return ret; valid = gtk_tree_model_iter_next(model2, child); } return NULL; } /* * Update the tree by adding/removing entries * Does not change other nodes */ static void update_tree(struct menu *src, GtkTreeIter * dst) { struct menu *child1; GtkTreeIter iter, tmp; GtkTreeIter *child2 = &iter; gboolean valid; GtkTreeIter *sibling; struct symbol *sym; struct menu *menu1, *menu2; if (src == &rootmenu) indent = 1; valid = gtk_tree_model_iter_children(model2, child2, dst); for (child1 = src->list; child1; child1 = child1->next) { sym = child1->sym; reparse: menu1 = child1; if (valid) gtk_tree_model_get(model2, child2, COL_MENU, &menu2, -1); else menu2 = NULL; // force adding of a first child #ifdef DEBUG printf("%*c%s | %s\n", indent, ' ', menu1 ? menu_get_prompt(menu1) : "nil", menu2 ? menu_get_prompt(menu2) : "nil"); #endif if ((opt_mode == OPT_NORMAL && !menu_is_visible(child1)) || (opt_mode == OPT_PROMPT && !menu_has_prompt(child1)) || (opt_mode == OPT_ALL && !menu_get_prompt(child1))) { /* remove node */ if (gtktree_iter_find_node(dst, menu1) != NULL) { memcpy(&tmp, child2, sizeof(GtkTreeIter)); valid = gtk_tree_model_iter_next(model2, child2); gtk_tree_store_remove(tree2, &tmp); if (!valid) return; /* next parent */ else goto reparse; /* next child */ } else continue; } if (menu1 != menu2) { if (gtktree_iter_find_node(dst, menu1) == NULL) { // add node if (!valid && !menu2) sibling = NULL; else sibling = child2; gtk_tree_store_insert_before(tree2, child2, dst, sibling); set_node(child2, menu1, fill_row(menu1)); if (menu2 == NULL) valid = TRUE; } else { // remove node memcpy(&tmp, child2, sizeof(GtkTreeIter)); valid = gtk_tree_model_iter_next(model2, child2); gtk_tree_store_remove(tree2, &tmp); if (!valid) return; // next parent else goto reparse; // next child } } else if (sym && (sym->flags & SYMBOL_CHANGED)) { set_node(child2, menu1, fill_row(menu1)); } indent++; update_tree(child1, child2); indent--; valid = gtk_tree_model_iter_next(model2, child2); } } /* Display the whole tree (single/split/full view) */ static void display_tree(struct menu *menu) { struct symbol *sym; struct property *prop; struct menu *child; enum prop_type ptype; if (menu == &rootmenu) { indent = 1; current = &rootmenu; } for (child = menu->list; child; child = child->next) { prop = child->prompt; sym = child->sym; ptype = prop ? prop->type : P_UNKNOWN; if (sym) sym->flags &= ~SYMBOL_CHANGED; if ((view_mode == SPLIT_VIEW) && !(child->flags & MENU_ROOT) && (tree == tree1)) continue; if ((view_mode == SPLIT_VIEW) && (child->flags & MENU_ROOT) && (tree == tree2)) continue; if ((opt_mode == OPT_NORMAL && menu_is_visible(child)) || (opt_mode == OPT_PROMPT && menu_has_prompt(child)) || (opt_mode == OPT_ALL && menu_get_prompt(child))) place_node(child, fill_row(child)); #ifdef DEBUG printf("%*c%s: ", indent, ' ', menu_get_prompt(child)); printf("%s", child->flags & MENU_ROOT ? "rootmenu | " : ""); printf("%s", prop_get_type_name(ptype)); printf(" | "); if (sym) { printf("%s", sym_type_name(sym->type)); printf(" | "); printf("%s", dbg_sym_flags(sym->flags)); printf("\n"); } else printf("\n"); #endif if ((view_mode != FULL_VIEW) && (ptype == P_MENU) && (tree == tree2)) continue; /* if (((menu != &rootmenu) && !(menu->flags & MENU_ROOT)) || (view_mode == FULL_VIEW) || (view_mode == SPLIT_VIEW))*/ /* Change paned position if the view is not in 'split mode' */ if (view_mode == SINGLE_VIEW || view_mode == FULL_VIEW) { gtk_paned_set_position(GTK_PANED(hpaned), 0); } if (((view_mode == SINGLE_VIEW) && (menu->flags & MENU_ROOT)) || (view_mode == FULL_VIEW) || (view_mode == SPLIT_VIEW)) { indent++; display_tree(child); indent--; } } } /* Display a part of the tree starting at current node (single/split view) */ static void display_tree_part(void) { if (tree2) gtk_tree_store_clear(tree2); if (view_mode == SINGLE_VIEW) display_tree(current); else if (view_mode == SPLIT_VIEW) display_tree(browsed); gtk_tree_view_expand_all(GTK_TREE_VIEW(tree2_w)); } /* Display the list in the left frame (split view) */ static void display_list(void) { if (tree1) gtk_tree_store_clear(tree1); tree = tree1; display_tree(&rootmenu); gtk_tree_view_expand_all(GTK_TREE_VIEW(tree1_w)); tree = tree2; } void fixup_rootmenu(struct menu *menu) { struct menu *child; static int menu_cnt = 0; menu->flags |= MENU_ROOT; for (child = menu->list; child; child = child->next) { if (child->prompt && child->prompt->type == P_MENU) { menu_cnt++; fixup_rootmenu(child); menu_cnt--; } else if (!menu_cnt) fixup_rootmenu(child); } } /* Main */ int main(int ac, char *av[]) { const char *name; char *env; gchar *glade_file; bindtextdomain(PACKAGE, LOCALEDIR); bind_textdomain_codeset(PACKAGE, "UTF-8"); textdomain(PACKAGE); /* GTK stuffs */ gtk_set_locale(); gtk_init(&ac, &av); glade_init(); //add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps"); //add_pixmap_directory (PACKAGE_SOURCE_DIR "/pixmaps"); /* Determine GUI path */ env = getenv(SRCTREE); if (env) glade_file = g_strconcat(env, "/support/kconfig/gconf.glade", NULL); else if (av[0][0] == '/') glade_file = g_strconcat(av[0], ".glade", NULL); else glade_file = g_strconcat(g_get_current_dir(), "/", av[0], ".glade", NULL); /* Conf stuffs */ if (ac > 1 && av[1][0] == '-') { switch (av[1][1]) { case 'a': //showAll = 1; break; case 's': conf_set_message_callback(NULL); break; case 'h': case '?': printf("%s [-s] \n", av[0]); exit(0); } name = av[2]; } else name = av[1]; conf_parse(name); fixup_rootmenu(&rootmenu); conf_read(NULL); /* Load the interface and connect signals */ init_main_window(glade_file); init_tree_model(); init_left_tree(); init_right_tree(); switch (view_mode) { case SINGLE_VIEW: display_tree_part(); break; case SPLIT_VIEW: display_list(); break; case FULL_VIEW: display_tree(&rootmenu); break; } gtk_main(); return 0; } static void conf_changed(void) { bool changed = conf_get_changed(); gtk_widget_set_sensitive(save_btn, changed); gtk_widget_set_sensitive(save_menu_item, changed); } ================================================ FILE: support/kconfig/gconf.glade ================================================ True Gtk Buildroot Configurator GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE False 640 480 True False True False False GDK_WINDOW_TYPE_HINT_NORMAL GDK_GRAVITY_NORTH_WEST True False 0 True True _File True True Load a config file _Load True True gtk-open 1 0.5 0.5 0 0 True Save the config in .config _Save True True gtk-save 1 0.5 0.5 0 0 True Save the config in a file Save _as True True gtk-save-as 1 0.5 0.5 0 0 True True _Quit True True gtk-quit 1 0.5 0.5 0 0 True _Options True True Show name Show _name True False True Show range (Y/M/N) Show _range True False True Show value of the option Show _data True False True True Show normal options Show normal options True True True Show all options Show all _options True False set_option_mode1 True Show all options with prompts Show all prompt options True False set_option_mode1 True _Help True True _Introduction True True gtk-dialog-question 1 0.5 0.5 0 0 True _About True True gtk-properties 1 0.5 0.5 0 0 True _License True True gtk-justify-fill 1 0.5 0.5 0 0 0 False False True GTK_SHADOW_OUT GTK_POS_LEFT GTK_POS_TOP True GTK_ORIENTATION_HORIZONTAL GTK_TOOLBAR_BOTH True True True Goes up of one level (single view) Back True gtk-undo True True False False True True True True False True False False True Load a config file Load True gtk-open True True False False True True Save a config file Save True gtk-save True True False False True True True True False True False False True Single view Single True gtk-missing-image True True False False True True Split view Split True gtk-missing-image True True False False True True Full view Full True gtk-missing-image True True False False True True True True False True False False True Collapse the whole tree in the right frame Collapse True gtk-remove True True False False True True Expand the whole tree in the right frame Expand True gtk-add True True False False True 0 False False 1 True True 0 True GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC GTK_SHADOW_IN GTK_CORNER_TOP_LEFT True True True False False False True False True True 0 True GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC GTK_SHADOW_IN GTK_CORNER_TOP_LEFT True True True True False False False True False True GTK_POLICY_NEVER GTK_POLICY_AUTOMATIC GTK_SHADOW_IN GTK_CORNER_TOP_LEFT True True False False True GTK_JUSTIFY_LEFT GTK_WRAP_WORD True 0 0 0 0 0 0 Sorry, no help available for this option yet. True True True True 0 True True ================================================ FILE: support/kconfig/images.c ================================================ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ static const char *xpm_load[] = { "22 22 5 1", ". c None", "# c #000000", "c c #838100", "a c #ffff00", "b c #ffffff", "......................", "......................", "......................", "............####....#.", "...........#....##.##.", "..................###.", ".................####.", ".####...........#####.", "#abab##########.......", "#babababababab#.......", "#ababababababa#.......", "#babababababab#.......", "#ababab###############", "#babab##cccccccccccc##", "#abab##cccccccccccc##.", "#bab##cccccccccccc##..", "#ab##cccccccccccc##...", "#b##cccccccccccc##....", "###cccccccccccc##.....", "##cccccccccccc##......", "###############.......", "......................"}; static const char *xpm_save[] = { "22 22 5 1", ". c None", "# c #000000", "a c #838100", "b c #c5c2c5", "c c #cdb6d5", "......................", ".####################.", ".#aa#bbbbbbbbbbbb#bb#.", ".#aa#bbbbbbbbbbbb#bb#.", ".#aa#bbbbbbbbbcbb####.", ".#aa#bbbccbbbbbbb#aa#.", ".#aa#bbbccbbbbbbb#aa#.", ".#aa#bbbbbbbbbbbb#aa#.", ".#aa#bbbbbbbbbbbb#aa#.", ".#aa#bbbbbbbbbbbb#aa#.", ".#aa#bbbbbbbbbbbb#aa#.", ".#aaa############aaa#.", ".#aaaaaaaaaaaaaaaaaa#.", ".#aaaaaaaaaaaaaaaaaa#.", ".#aaa#############aa#.", ".#aaa#########bbb#aa#.", ".#aaa#########bbb#aa#.", ".#aaa#########bbb#aa#.", ".#aaa#########bbb#aa#.", ".#aaa#########bbb#aa#.", "..##################..", "......................"}; static const char *xpm_back[] = { "22 22 3 1", ". c None", "# c #000083", "a c #838183", "......................", "......................", "......................", "......................", "......................", "...........######a....", "..#......##########...", "..##...####......##a..", "..###.###.........##..", "..######..........##..", "..#####...........##..", "..######..........##..", "..#######.........##..", "..########.......##a..", "...............a###...", "...............###....", "......................", "......................", "......................", "......................", "......................", "......................"}; static const char *xpm_tree_view[] = { "22 22 2 1", ". c None", "# c #000000", "......................", "......................", "......#...............", "......#...............", "......#...............", "......#...............", "......#...............", "......########........", "......#...............", "......#...............", "......#...............", "......#...............", "......#...............", "......########........", "......#...............", "......#...............", "......#...............", "......#...............", "......#...............", "......########........", "......................", "......................"}; static const char *xpm_single_view[] = { "22 22 2 1", ". c None", "# c #000000", "......................", "......................", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "..........#...........", "......................", "......................"}; static const char *xpm_split_view[] = { "22 22 2 1", ". c None", "# c #000000", "......................", "......................", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......#......#........", "......................", "......................"}; static const char *xpm_symbol_no[] = { "12 12 2 1", " c white", ". c black", " ", " .......... ", " . . ", " . . ", " . . ", " . . ", " . . ", " . . ", " . . ", " . . ", " .......... ", " "}; static const char *xpm_symbol_mod[] = { "12 12 2 1", " c white", ". c black", " ", " .......... ", " . . ", " . . ", " . .. . ", " . .... . ", " . .... . ", " . .. . ", " . . ", " . . ", " .......... ", " "}; static const char *xpm_symbol_yes[] = { "12 12 2 1", " c white", ". c black", " ", " .......... ", " . . ", " . . ", " . . . ", " . .. . ", " . . .. . ", " . .... . ", " . .. . ", " . . ", " .......... ", " "}; static const char *xpm_choice_no[] = { "12 12 2 1", " c white", ". c black", " ", " .... ", " .. .. ", " . . ", " . . ", " . . ", " . . ", " . . ", " . . ", " .. .. ", " .... ", " "}; static const char *xpm_choice_yes[] = { "12 12 2 1", " c white", ". c black", " ", " .... ", " .. .. ", " . . ", " . .. . ", " . .... . ", " . .... . ", " . .. . ", " . . ", " .. .. ", " .... ", " "}; static const char *xpm_menu[] = { "12 12 2 1", " c white", ". c black", " ", " .......... ", " . . ", " . .. . ", " . .... . ", " . ...... . ", " . ...... . ", " . .... . ", " . .. . ", " . . ", " .......... ", " "}; static const char *xpm_menu_inv[] = { "12 12 2 1", " c white", ". c black", " ", " .......... ", " .......... ", " .. ...... ", " .. .... ", " .. .. ", " .. .. ", " .. .... ", " .. ...... ", " .......... ", " .......... ", " "}; static const char *xpm_menuback[] = { "12 12 2 1", " c white", ". c black", " ", " .......... ", " . . ", " . .. . ", " . .... . ", " . ...... . ", " . ...... . ", " . .... . ", " . .. . ", " . . ", " .......... ", " "}; static const char *xpm_void[] = { "12 12 2 1", " c white", ". c black", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; ================================================ FILE: support/kconfig/kconf_id.c ================================================ static struct kconf_id kconf_id_array[] = { { "mainmenu", T_MAINMENU, TF_COMMAND }, { "menu", T_MENU, TF_COMMAND }, { "endmenu", T_ENDMENU, TF_COMMAND }, { "source", T_SOURCE, TF_COMMAND }, { "choice", T_CHOICE, TF_COMMAND }, { "endchoice", T_ENDCHOICE, TF_COMMAND }, { "comment", T_COMMENT, TF_COMMAND }, { "config", T_CONFIG, TF_COMMAND }, { "menuconfig", T_MENUCONFIG, TF_COMMAND }, { "help", T_HELP, TF_COMMAND }, { "---help---", T_HELP, TF_COMMAND }, { "if", T_IF, TF_COMMAND|TF_PARAM }, { "endif", T_ENDIF, TF_COMMAND }, { "depends", T_DEPENDS, TF_COMMAND }, { "optional", T_OPTIONAL, TF_COMMAND }, { "default", T_DEFAULT, TF_COMMAND, S_UNKNOWN }, { "prompt", T_PROMPT, TF_COMMAND }, { "tristate", T_TYPE, TF_COMMAND, S_TRISTATE }, { "def_tristate", T_DEFAULT, TF_COMMAND, S_TRISTATE }, { "bool", T_TYPE, TF_COMMAND, S_BOOLEAN }, { "def_bool", T_DEFAULT, TF_COMMAND, S_BOOLEAN }, { "int", T_TYPE, TF_COMMAND, S_INT }, { "hex", T_TYPE, TF_COMMAND, S_HEX }, { "string", T_TYPE, TF_COMMAND, S_STRING }, { "select", T_SELECT, TF_COMMAND }, { "imply", T_IMPLY, TF_COMMAND }, { "range", T_RANGE, TF_COMMAND }, { "visible", T_VISIBLE, TF_COMMAND }, { "option", T_OPTION, TF_COMMAND }, { "on", T_ON, TF_PARAM }, { "modules", T_OPT_MODULES, TF_OPTION }, { "defconfig_list", T_OPT_DEFCONFIG_LIST, TF_OPTION }, { "env", T_OPT_ENV, TF_OPTION }, { "allnoconfig_y", T_OPT_ALLNOCONFIG_Y, TF_OPTION }, }; #define KCONF_ID_ARRAY_SIZE (sizeof(kconf_id_array)/sizeof(struct kconf_id)) static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len) { int i; for (i = 0; i < KCONF_ID_ARRAY_SIZE; i++) { struct kconf_id *id = kconf_id_array+i; int l = strlen(id->name); if (len == l && !memcmp(str, id->name, len)) return id; } return NULL; } ================================================ FILE: support/kconfig/kxgettext.c ================================================ /* * Arnaldo Carvalho de Melo , 2005 * * Released under the terms of the GNU GPL v2.0 */ #include #include #include "lkc.h" static char *escape(const char* text, char *bf, int len) { char *bfp = bf; int multiline = strchr(text, '\n') != NULL; int eol = 0; int textlen = strlen(text); if ((textlen > 0) && (text[textlen-1] == '\n')) eol = 1; *bfp++ = '"'; --len; if (multiline) { *bfp++ = '"'; *bfp++ = '\n'; *bfp++ = '"'; len -= 3; } while (*text != '\0' && len > 1) { if (*text == '"') *bfp++ = '\\'; else if (*text == '\n') { *bfp++ = '\\'; *bfp++ = 'n'; *bfp++ = '"'; *bfp++ = '\n'; *bfp++ = '"'; len -= 5; ++text; goto next; } else if (*text == '\\') { *bfp++ = '\\'; len--; } *bfp++ = *text++; next: --len; } if (multiline && eol) bfp -= 3; *bfp++ = '"'; *bfp = '\0'; return bf; } struct file_line { struct file_line *next; const char *file; int lineno; }; static struct file_line *file_line__new(const char *file, int lineno) { struct file_line *self = malloc(sizeof(*self)); if (self == NULL) goto out; self->file = file; self->lineno = lineno; self->next = NULL; out: return self; } struct message { const char *msg; const char *option; struct message *next; struct file_line *files; }; static struct message *message__list; static struct message *message__new(const char *msg, char *option, const char *file, int lineno) { struct message *self = malloc(sizeof(*self)); if (self == NULL) goto out; self->files = file_line__new(file, lineno); if (self->files == NULL) goto out_fail; self->msg = xstrdup(msg); if (self->msg == NULL) goto out_fail_msg; self->option = option; self->next = NULL; out: return self; out_fail_msg: free(self->files); out_fail: free(self); self = NULL; goto out; } static struct message *mesage__find(const char *msg) { struct message *m = message__list; while (m != NULL) { if (strcmp(m->msg, msg) == 0) break; m = m->next; } return m; } static int message__add_file_line(struct message *self, const char *file, int lineno) { int rc = -1; struct file_line *fl = file_line__new(file, lineno); if (fl == NULL) goto out; fl->next = self->files; self->files = fl; rc = 0; out: return rc; } static int message__add(const char *msg, char *option, const char *file, int lineno) { int rc = 0; char bf[16384]; char *escaped = escape(msg, bf, sizeof(bf)); struct message *m = mesage__find(escaped); if (m != NULL) rc = message__add_file_line(m, file, lineno); else { m = message__new(escaped, option, file, lineno); if (m != NULL) { m->next = message__list; message__list = m; } else rc = -1; } return rc; } static void menu_build_message_list(struct menu *menu) { struct menu *child; message__add(menu_get_prompt(menu), NULL, menu->file == NULL ? "Root Menu" : menu->file->name, menu->lineno); if (menu->sym != NULL && menu_has_help(menu)) message__add(menu_get_help(menu), menu->sym->name, menu->file == NULL ? "Root Menu" : menu->file->name, menu->lineno); for (child = menu->list; child != NULL; child = child->next) if (child->prompt != NULL) menu_build_message_list(child); } static void message__print_file_lineno(struct message *self) { struct file_line *fl = self->files; putchar('\n'); if (self->option != NULL) printf("# %s:00000\n", self->option); printf("#: %s:%d", fl->file, fl->lineno); fl = fl->next; while (fl != NULL) { printf(", %s:%d", fl->file, fl->lineno); fl = fl->next; } putchar('\n'); } static void message__print_gettext_msgid_msgstr(struct message *self) { message__print_file_lineno(self); printf("msgid %s\n" "msgstr \"\"\n", self->msg); } static void menu__xgettext(void) { struct message *m = message__list; while (m != NULL) { /* skip empty lines ("") */ if (strlen(m->msg) > sizeof("\"\"")) message__print_gettext_msgid_msgstr(m); m = m->next; } } int main(int ac, char **av) { conf_parse(av[1]); menu_build_message_list(menu_get_root_menu(NULL)); menu__xgettext(); return 0; } ================================================ FILE: support/kconfig/list.h ================================================ /* SPDX-License-Identifier: GPL-2.0 */ #ifndef LIST_H #define LIST_H /* * Copied from include/linux/... */ #undef offsetof #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) /** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the member. * @type: the type of the container struct this is embedded in. * @member: the name of the member within the struct. * */ #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof(type,member) );}) struct list_head { struct list_head *next, *prev; }; #define LIST_HEAD_INIT(name) { &(name), &(name) } #define LIST_HEAD(name) \ struct list_head name = LIST_HEAD_INIT(name) /** * list_entry - get the struct for this entry * @ptr: the &struct list_head pointer. * @type: the type of the struct this is embedded in. * @member: the name of the list_head within the struct. */ #define list_entry(ptr, type, member) \ container_of(ptr, type, member) /** * list_for_each_entry - iterate over list of given type * @pos: the type * to use as a loop cursor. * @head: the head for your list. * @member: the name of the list_head within the struct. */ #define list_for_each_entry(pos, head, member) \ for (pos = list_entry((head)->next, typeof(*pos), member); \ &pos->member != (head); \ pos = list_entry(pos->member.next, typeof(*pos), member)) /** * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry * @pos: the type * to use as a loop cursor. * @n: another type * to use as temporary storage * @head: the head for your list. * @member: the name of the list_head within the struct. */ #define list_for_each_entry_safe(pos, n, head, member) \ for (pos = list_entry((head)->next, typeof(*pos), member), \ n = list_entry(pos->member.next, typeof(*pos), member); \ &pos->member != (head); \ pos = n, n = list_entry(n->member.next, typeof(*n), member)) /** * list_empty - tests whether a list is empty * @head: the list to test. */ static inline int list_empty(const struct list_head *head) { return head->next == head; } /* * Insert a new entry between two known consecutive entries. * * This is only for internal list manipulation where we know * the prev/next entries already! */ static inline void __list_add(struct list_head *_new, struct list_head *prev, struct list_head *next) { next->prev = _new; _new->next = next; _new->prev = prev; prev->next = _new; } /** * list_add_tail - add a new entry * @new: new entry to be added * @head: list head to add it before * * Insert a new entry before the specified head. * This is useful for implementing queues. */ static inline void list_add_tail(struct list_head *_new, struct list_head *head) { __list_add(_new, head->prev, head); } /* * Delete a list entry by making the prev/next entries * point to each other. * * This is only for internal list manipulation where we know * the prev/next entries already! */ static inline void __list_del(struct list_head *prev, struct list_head *next) { next->prev = prev; prev->next = next; } #define LIST_POISON1 ((void *) 0x00100100) #define LIST_POISON2 ((void *) 0x00200200) /** * list_del - deletes entry from list. * @entry: the element to delete from the list. * Note: list_empty() on entry does not return true after this, the entry is * in an undefined state. */ static inline void list_del(struct list_head *entry) { __list_del(entry->prev, entry->next); entry->next = (struct list_head*)LIST_POISON1; entry->prev = (struct list_head*)LIST_POISON2; } #endif ================================================ FILE: support/kconfig/lkc.h ================================================ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ #ifndef LKC_H #define LKC_H #include "expr.h" #ifndef KBUILD_NO_NLS # include #else static inline const char *gettext(const char *txt) { return txt; } static inline void textdomain(const char *domainname) {} static inline void bindtextdomain(const char *name, const char *dir) {} static inline char *bind_textdomain_codeset(const char *dn, char *c) { return c; } #endif #ifdef __cplusplus extern "C" { #endif #include "lkc_proto.h" #define SRCTREE "srctree" #ifndef PACKAGE #define PACKAGE "linux" #endif #define LOCALEDIR "/usr/share/locale" #define _(text) gettext(text) #define N_(text) (text) #ifndef CONFIG_ #define CONFIG_ "CONFIG_" #endif static inline const char *CONFIG_prefix(void) { return getenv( "CONFIG_" ) ?: CONFIG_; } #undef CONFIG_ #define CONFIG_ CONFIG_prefix() #define TF_COMMAND 0x0001 #define TF_PARAM 0x0002 #define TF_OPTION 0x0004 enum conf_def_mode { def_default, def_yes, def_mod, def_no, def_random }; #define T_OPT_MODULES 1 #define T_OPT_DEFCONFIG_LIST 2 #define T_OPT_ENV 3 #define T_OPT_ALLNOCONFIG_Y 4 struct kconf_id { const char *name; int token; unsigned int flags; enum symbol_type stype; }; extern int yylineno; void zconfdump(FILE *out); void zconf_starthelp(void); FILE *zconf_fopen(const char *name); void zconf_initscan(const char *name); void zconf_nextfile(const char *name); int zconf_lineno(void); const char *zconf_curname(void); /* confdata.c */ const char *conf_get_configname(void); const char *conf_get_autoconfig_name(void); char *conf_get_default_confname(void); void sym_set_change_count(int count); void sym_add_change_count(int count); bool conf_set_all_new_symbols(enum conf_def_mode mode); void set_all_choice_values(struct symbol *csym); /* confdata.c and expr.c */ static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out) { assert(len != 0); if (fwrite(str, len, count, out) != count) fprintf(stderr, "Error in writing or end of file.\n"); } /* menu.c */ void _menu_init(void); void menu_warn(struct menu *menu, const char *fmt, ...); struct menu *menu_add_menu(void); void menu_end_menu(void); void menu_add_entry(struct symbol *sym); void menu_add_dep(struct expr *dep); void menu_add_visibility(struct expr *dep); struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep); void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep); void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep); void menu_add_option(int token, char *arg); void menu_finalize(struct menu *parent); void menu_set_type(int type); /* util.c */ struct file *file_lookup(const char *name); int file_write_dep(const char *name); void *xmalloc(size_t size); void *xcalloc(size_t nmemb, size_t size); void *xrealloc(void *p, size_t size); char *xstrdup(const char *s); struct gstr { size_t len; char *s; /* * when max_width is not zero long lines in string s (if any) get * wrapped not to exceed the max_width value */ int max_width; }; struct gstr str_new(void); void str_free(struct gstr *gs); void str_append(struct gstr *gs, const char *s); void str_printf(struct gstr *gs, const char *fmt, ...); const char *str_get(struct gstr *gs); /* symbol.c */ extern struct expr *sym_env_list; void sym_init(void); void sym_clear_all_valid(void); struct symbol *sym_choice_default(struct symbol *sym); const char *sym_get_string_default(struct symbol *sym); struct symbol *sym_check_deps(struct symbol *sym); struct property *prop_alloc(enum prop_type type, struct symbol *sym); struct symbol *prop_get_symbol(struct property *prop); struct property *sym_get_env_prop(struct symbol *sym); static inline tristate sym_get_tristate_value(struct symbol *sym) { return sym->curr.tri; } static inline struct symbol *sym_get_choice_value(struct symbol *sym) { return (struct symbol *)sym->curr.val; } static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval) { return sym_set_tristate_value(chval, yes); } static inline bool sym_is_choice(struct symbol *sym) { return sym->flags & SYMBOL_CHOICE ? true : false; } static inline bool sym_is_choice_value(struct symbol *sym) { return sym->flags & SYMBOL_CHOICEVAL ? true : false; } static inline bool sym_is_optional(struct symbol *sym) { return sym->flags & SYMBOL_OPTIONAL ? true : false; } static inline bool sym_has_value(struct symbol *sym) { return sym->flags & SYMBOL_DEF_USER ? true : false; } #ifdef __cplusplus } #endif #endif /* LKC_H */ ================================================ FILE: support/kconfig/lkc_proto.h ================================================ /* SPDX-License-Identifier: GPL-2.0 */ #include /* confdata.c */ void conf_parse(const char *name); int conf_read(const char *name); int conf_read_simple(const char *name, int); int conf_write_defconfig(const char *name); int conf_write(const char *name); int conf_write_autoconf(void); bool conf_get_changed(void); void conf_set_changed_callback(void (*fn)(void)); void conf_set_message_callback(void (*fn)(const char *fmt, va_list ap)); /* menu.c */ extern struct menu rootmenu; bool menu_is_empty(struct menu *menu); bool menu_is_visible(struct menu *menu); bool menu_has_prompt(struct menu *menu); const char * menu_get_prompt(struct menu *menu); struct menu * menu_get_root_menu(struct menu *menu); struct menu * menu_get_parent_menu(struct menu *menu); bool menu_has_help(struct menu *menu); const char * menu_get_help(struct menu *menu); struct gstr get_relations_str(struct symbol **sym_arr, struct list_head *head); void menu_get_ext_help(struct menu *menu, struct gstr *help); /* symbol.c */ extern struct symbol * symbol_hash[SYMBOL_HASHSIZE]; struct symbol * sym_lookup(const char *name, int flags); struct symbol * sym_find(const char *name); char *sym_expand_string_value(const char *in); const char * sym_escape_string_value(const char *in); struct symbol ** sym_re_search(const char *pattern); const char * sym_type_name(enum symbol_type type); void sym_calc_value(struct symbol *sym); enum symbol_type sym_get_type(struct symbol *sym); bool sym_tristate_within_range(struct symbol *sym,tristate tri); bool sym_set_tristate_value(struct symbol *sym,tristate tri); tristate sym_toggle_tristate_value(struct symbol *sym); bool sym_string_valid(struct symbol *sym, const char *newval); bool sym_string_within_range(struct symbol *sym, const char *str); bool sym_set_string_value(struct symbol *sym, const char *newval); bool sym_is_changable(struct symbol *sym); struct property * sym_get_choice_prop(struct symbol *sym); const char * sym_get_string_value(struct symbol *sym); const char * prop_get_type_name(enum prop_type type); /* expr.c */ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *), void *data, int prevtoken); ================================================ FILE: support/kconfig/mconf.c ================================================ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. * * Introduced single menu mode (show all sub-menus in one large tree). * 2002-11-06 Petr Baudis * * i18n, 2005, Arnaldo Carvalho de Melo */ #include #include #include #include #include #include #include #include #include #include #include "lkc.h" #include "lxdialog/dialog.h" static const char mconf_readme[] = N_( "Overview\n" "--------\n" "This interface lets you select features and parameters for the build.\n" "Features can either be built-in, modularized, or ignored. Parameters\n" "must be entered in as decimal or hexadecimal numbers or text.\n" "\n" "Menu items beginning with following braces represent features that\n" " [ ] can be built in or removed\n" " < > can be built in, modularized or removed\n" " { } can be built in or modularized (selected by other feature)\n" " - - are selected by other feature,\n" "while *, M or whitespace inside braces means to build in, build as\n" "a module or to exclude the feature respectively.\n" "\n" "To change any of these features, highlight it with the cursor\n" "keys and press to build it in, to make it a module or\n" " to remove it. You may also press the to cycle\n" "through the available options (i.e. Y->N->M->Y).\n" "\n" "Some additional keyboard hints:\n" "\n" "Menus\n" "----------\n" "o Use the Up/Down arrow keys (cursor keys) to highlight the item you\n" " wish to change or the submenu you wish to select and press .\n" " Submenus are designated by \"--->\", empty ones by \"----\".\n" "\n" " Shortcut: Press the option's highlighted letter (hotkey).\n" " Pressing a hotkey more than once will sequence\n" " through all visible items which use that hotkey.\n" "\n" " You may also use the and keys to scroll\n" " unseen options into view.\n" "\n" "o To exit a menu use the cursor keys to highlight the button\n" " and press .\n" "\n" " Shortcut: Press or or if there is no hotkey\n" " using those letters. You may press a single , but\n" " there is a delayed response which you may find annoying.\n" "\n" " Also, the and cursor keys will cycle between and\n" " \n" "\n" "\n" "Data Entry\n" "-----------\n" "o Enter the requested information and press \n" " If you are entering hexadecimal values, it is not necessary to\n" " add the '0x' prefix to the entry.\n" "\n" "o For help, use the or cursor keys to highlight the help option\n" " and press . You can try as well.\n" "\n" "\n" "Text Box (Help Window)\n" "--------\n" "o Use the cursor keys to scroll up/down/left/right. The VI editor\n" " keys h,j,k,l function here as do , , and for\n" " those who are familiar with less and lynx.\n" "\n" "o Press , , , or to exit.\n" "\n" "\n" "Alternate Configuration Files\n" "-----------------------------\n" "Menuconfig supports the use of alternate configuration files for\n" "those who, for various reasons, find it necessary to switch\n" "between different configurations.\n" "\n" "The button will let you save the current configuration to\n" "a file of your choosing. Use the button to load a previously\n" "saved alternate configuration.\n" "\n" "Even if you don't use alternate configuration files, but you find\n" "during a Menuconfig session that you have completely messed up your\n" "settings, you may use the button to restore your previously\n" "saved settings from \".config\" without restarting Menuconfig.\n" "\n" "Other information\n" "-----------------\n" "If you use Menuconfig in an XTERM window, make sure you have your\n" "$TERM variable set to point to an xterm definition which supports\n" "color. Otherwise, Menuconfig will look rather bad. Menuconfig will\n" "not display correctly in an RXVT window because rxvt displays only one\n" "intensity of color, bright.\n" "\n" "Menuconfig will display larger menus on screens or xterms which are\n" "set to display more than the standard 25 row by 80 column geometry.\n" "In order for this to work, the \"stty size\" command must be able to\n" "display the screen's current row and column geometry. I STRONGLY\n" "RECOMMEND that you make sure you do NOT have the shell variables\n" "LINES and COLUMNS exported into your environment. Some distributions\n" "export those variables via /etc/profile. Some ncurses programs can\n" "become confused when those variables (LINES & COLUMNS) don't reflect\n" "the true screen size.\n" "\n" "Optional personality available\n" "------------------------------\n" "If you prefer to have all of the options listed in a single menu,\n" "rather than the default multimenu hierarchy, run the menuconfig with\n" "MENUCONFIG_MODE environment variable set to single_menu. Example:\n" "\n" "make MENUCONFIG_MODE=single_menu menuconfig\n" "\n" " will then unroll the appropriate category, or enfold it if it\n" "is already unrolled.\n" "\n" "Note that this mode can eventually be a little more CPU expensive\n" "(especially with a larger number of unrolled categories) than the\n" "default mode.\n" "\n" "Different color themes available\n" "--------------------------------\n" "It is possible to select different color themes using the variable\n" "MENUCONFIG_COLOR. To select a theme use:\n" "\n" "make MENUCONFIG_COLOR= menuconfig\n" "\n" "Available themes are\n" " mono => selects colors suitable for monochrome displays\n" " blackbg => selects a color scheme with black background\n" " classic => theme with blue background. The classic look\n" " bluetitle => an LCD friendly version of classic. (default)\n" "\n"), menu_instructions[] = N_( "Arrow keys navigate the menu. " " selects submenus ---> (or empty submenus ----). " "Highlighted letters are hotkeys. " "Pressing selects a feature, while excludes a feature. " "Press to exit, for Help, for Search. " "Legend: [*] feature is selected [ ] feature is excluded"), radiolist_instructions[] = N_( "Use the arrow keys to navigate this window or " "press the hotkey of the item you wish to select " "followed by the . " "Press for additional information about this option."), inputbox_instructions_int[] = N_( "Please enter a decimal value. " "Fractions will not be accepted. " "Use the key to move from the input field to the buttons below it."), inputbox_instructions_hex[] = N_( "Please enter a hexadecimal value. " "Use the key to move from the input field to the buttons below it."), inputbox_instructions_string[] = N_( "Please enter a string value. " "Use the key to move from the input field to the buttons below it."), setmod_text[] = N_( "This feature depends on another which has been configured as a module.\n" "As a result, this feature will be built as a module."), load_config_text[] = N_( "Enter the name of the configuration file you wish to load. " "Accept the name shown to restore the configuration you " "last retrieved. Leave blank to abort."), load_config_help[] = N_( "\n" "For various reasons, one may wish to keep several different\n" "configurations available on a single machine.\n" "\n" "If you have saved a previous configuration in a file other than the\n" "default one, entering its name here will allow you to modify that\n" "configuration.\n" "\n" "If you are uncertain, then you have probably never used alternate\n" "configuration files. You should therefore leave this blank to abort.\n"), save_config_text[] = N_( "Enter a filename to which this configuration should be saved " "as an alternate. Leave blank to abort."), save_config_help[] = N_( "\n" "For various reasons, one may wish to keep different configurations\n" "available on a single machine.\n" "\n" "Entering a file name here will allow you to later retrieve, modify\n" "and use the current configuration as an alternate to whatever\n" "configuration options you have selected at that time.\n" "\n" "If you are uncertain what all this means then you should probably\n" "leave this blank.\n"), search_help[] = N_( "\n" "Search for symbols and display their relations.\n" "Regular expressions are allowed.\n" "Example: search for \"^FOO\"\n" "Result:\n" "-----------------------------------------------------------------\n" "Symbol: FOO [=m]\n" "Type : tristate\n" "Prompt: Foo bus is used to drive the bar HW\n" " Location:\n" " -> Bus options (PCI, PCMCIA, EISA, ISA)\n" " -> PCI support (PCI [=y])\n" "(1) -> PCI access mode ( [=y])\n" " Defined at drivers/pci/Kconfig:47\n" " Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n" " Selects: LIBCRC32\n" " Selected by: BAR [=n]\n" "-----------------------------------------------------------------\n" "o The line 'Type:' shows the type of the configuration option for\n" " this symbol (bool, tristate, string, ...)\n" "o The line 'Prompt:' shows the text used in the menu structure for\n" " this symbol\n" "o The 'Defined at' line tells at what file / line number the symbol\n" " is defined\n" "o The 'Depends on:' line tells what symbols need to be defined for\n" " this symbol to be visible in the menu (selectable)\n" "o The 'Location:' lines tells where in the menu structure this symbol\n" " is located\n" " A location followed by a [=y] indicates that this is a\n" " selectable menu item - and the current value is displayed inside\n" " brackets.\n" " Press the key in the (#) prefix to jump directly to that\n" " location. You will be returned to the current search results\n" " after exiting this new menu.\n" "o The 'Selects:' line tells what symbols will be automatically\n" " selected if this symbol is selected (y or m)\n" "o The 'Selected by' line tells what symbol has selected this symbol\n" "\n" "Only relevant lines are shown.\n" "\n\n" "Search examples:\n" "Examples: USB => find all symbols containing USB\n" " ^USB => find all symbols starting with USB\n" " USB$ => find all symbols ending with USB\n" "\n"); static int indent; static struct menu *current_menu; static int child_count; static int single_menu_mode; static int show_all_options; static int save_and_exit; static int silent; static void conf(struct menu *menu, struct menu *active_menu); static void conf_choice(struct menu *menu); static void conf_string(struct menu *menu); static void conf_load(void); static void conf_save(void); static int show_textbox_ext(const char *title, char *text, int r, int c, int *keys, int *vscroll, int *hscroll, update_text_fn update_text, void *data); static void show_textbox(const char *title, const char *text, int r, int c); static void show_helptext(const char *title, const char *text); static void show_help(struct menu *menu); static char filename[PATH_MAX+1]; static void set_config_filename(const char *config_filename) { static char menu_backtitle[PATH_MAX+128]; int size; size = snprintf(menu_backtitle, sizeof(menu_backtitle), "%s - %s", config_filename, rootmenu.prompt->text); if (size >= sizeof(menu_backtitle)) menu_backtitle[sizeof(menu_backtitle)-1] = '\0'; set_dialog_backtitle(menu_backtitle); size = snprintf(filename, sizeof(filename), "%s", config_filename); if (size >= sizeof(filename)) filename[sizeof(filename)-1] = '\0'; } struct subtitle_part { struct list_head entries; const char *text; }; static LIST_HEAD(trail); static struct subtitle_list *subtitles; static void set_subtitle(void) { struct subtitle_part *sp; struct subtitle_list *pos, *tmp; for (pos = subtitles; pos != NULL; pos = tmp) { tmp = pos->next; free(pos); } subtitles = NULL; list_for_each_entry(sp, &trail, entries) { if (sp->text) { if (pos) { pos->next = xcalloc(1, sizeof(*pos)); pos = pos->next; } else { subtitles = pos = xcalloc(1, sizeof(*pos)); } pos->text = sp->text; } } set_dialog_subtitles(subtitles); } static void reset_subtitle(void) { struct subtitle_list *pos, *tmp; for (pos = subtitles; pos != NULL; pos = tmp) { tmp = pos->next; free(pos); } subtitles = NULL; set_dialog_subtitles(subtitles); } struct search_data { struct list_head *head; struct menu **targets; int *keys; }; static void update_text(char *buf, size_t start, size_t end, void *_data) { struct search_data *data = _data; struct jump_key *pos; int k = 0; list_for_each_entry(pos, data->head, entries) { if (pos->offset >= start && pos->offset < end) { char header[4]; if (k < JUMP_NB) { int key = '0' + (pos->index % JUMP_NB) + 1; sprintf(header, "(%c)", key); data->keys[k] = key; data->targets[k] = pos->target; k++; } else { sprintf(header, " "); } memcpy(buf + pos->offset, header, sizeof(header) - 1); } } data->keys[k] = 0; } static void search_conf(void) { struct symbol **sym_arr; struct gstr res; struct gstr title; char *dialog_input; int dres, vscroll = 0, hscroll = 0; bool again; struct gstr sttext; struct subtitle_part stpart; title = str_new(); str_printf( &title, _("Enter (sub)string or regexp to search for " "(with or without \"%s\")"), CONFIG_); again: dialog_clear(); dres = dialog_inputbox(_("Search Configuration Parameter"), str_get(&title), 10, 75, ""); switch (dres) { case 0: break; case 1: show_helptext(_("Search Configuration"), search_help); goto again; default: str_free(&title); return; } /* strip the prefix if necessary */ dialog_input = dialog_input_result; if (strncasecmp(dialog_input_result, CONFIG_, strlen(CONFIG_)) == 0) dialog_input += strlen(CONFIG_); sttext = str_new(); str_printf(&sttext, "Search (%s)", dialog_input_result); stpart.text = str_get(&sttext); list_add_tail(&stpart.entries, &trail); sym_arr = sym_re_search(dialog_input); do { LIST_HEAD(head); struct menu *targets[JUMP_NB]; int keys[JUMP_NB + 1], i; struct search_data data = { .head = &head, .targets = targets, .keys = keys, }; struct jump_key *pos, *tmp; res = get_relations_str(sym_arr, &head); set_subtitle(); dres = show_textbox_ext(_("Search Results"), (char *) str_get(&res), 0, 0, keys, &vscroll, &hscroll, &update_text, (void *) &data); again = false; for (i = 0; i < JUMP_NB && keys[i]; i++) if (dres == keys[i]) { conf(targets[i]->parent, targets[i]); again = true; } str_free(&res); list_for_each_entry_safe(pos, tmp, &head, entries) free(pos); } while (again); free(sym_arr); str_free(&title); list_del(trail.prev); str_free(&sttext); } static void build_conf(struct menu *menu) { struct symbol *sym; struct property *prop; struct menu *child; int type, tmp, doint = 2; tristate val; char ch; bool visible; /* * note: menu_is_visible() has side effect that it will * recalc the value of the symbol. */ visible = menu_is_visible(menu); if (show_all_options && !menu_has_prompt(menu)) return; else if (!show_all_options && !visible) return; sym = menu->sym; prop = menu->prompt; if (!sym) { if (prop && menu != current_menu) { const char *prompt = menu_get_prompt(menu); switch (prop->type) { case P_MENU: child_count++; prompt = _(prompt); if (single_menu_mode) { item_make("%s%*c%s", menu->data ? "-->" : "++>", indent + 1, ' ', prompt); } else item_make(" %*c%s %s", indent + 1, ' ', prompt, menu_is_empty(menu) ? "----" : "--->"); item_set_tag('m'); item_set_data(menu); if (single_menu_mode && menu->data) goto conf_childs; return; case P_COMMENT: if (prompt) { child_count++; item_make(" %*c*** %s ***", indent + 1, ' ', _(prompt)); item_set_tag(':'); item_set_data(menu); } break; default: if (prompt) { child_count++; item_make("---%*c%s", indent + 1, ' ', _(prompt)); item_set_tag(':'); item_set_data(menu); } } } else doint = 0; goto conf_childs; } type = sym_get_type(sym); if (sym_is_choice(sym)) { struct symbol *def_sym = sym_get_choice_value(sym); struct menu *def_menu = NULL; child_count++; for (child = menu->list; child; child = child->next) { if (menu_is_visible(child) && child->sym == def_sym) def_menu = child; } val = sym_get_tristate_value(sym); if (sym_is_changable(sym)) { switch (type) { case S_BOOLEAN: item_make("[%c]", val == no ? ' ' : '*'); break; case S_TRISTATE: switch (val) { case yes: ch = '*'; break; case mod: ch = 'M'; break; default: ch = ' '; break; } item_make("<%c>", ch); break; } item_set_tag('t'); item_set_data(menu); } else { item_make(" "); item_set_tag(def_menu ? 't' : ':'); item_set_data(menu); } item_add_str("%*c%s", indent + 1, ' ', _(menu_get_prompt(menu))); if (val == yes) { if (def_menu) { item_add_str(" (%s)", _(menu_get_prompt(def_menu))); item_add_str(" --->"); if (def_menu->list) { indent += 2; build_conf(def_menu); indent -= 2; } } return; } } else { if (menu == current_menu) { item_make("---%*c%s", indent + 1, ' ', _(menu_get_prompt(menu))); item_set_tag(':'); item_set_data(menu); goto conf_childs; } child_count++; val = sym_get_tristate_value(sym); if (sym_is_choice_value(sym) && val == yes) { item_make(" "); item_set_tag(':'); item_set_data(menu); } else { switch (type) { case S_BOOLEAN: if (sym_is_changable(sym)) item_make("[%c]", val == no ? ' ' : '*'); else item_make("-%c-", val == no ? ' ' : '*'); item_set_tag('t'); item_set_data(menu); break; case S_TRISTATE: switch (val) { case yes: ch = '*'; break; case mod: ch = 'M'; break; default: ch = ' '; break; } if (sym_is_changable(sym)) { if (sym->rev_dep.tri == mod) item_make("{%c}", ch); else item_make("<%c>", ch); } else item_make("-%c-", ch); item_set_tag('t'); item_set_data(menu); break; default: tmp = 2 + strlen(sym_get_string_value(sym)); /* () = 2 */ item_make("(%s)", sym_get_string_value(sym)); tmp = indent - tmp + 4; if (tmp < 0) tmp = 0; item_add_str("%*c%s%s", tmp, ' ', _(menu_get_prompt(menu)), (sym_has_value(sym) || !sym_is_changable(sym)) ? "" : _(" (NEW)")); item_set_tag('s'); item_set_data(menu); goto conf_childs; } } item_add_str("%*c%s%s", indent + 1, ' ', _(menu_get_prompt(menu)), (sym_has_value(sym) || !sym_is_changable(sym)) ? "" : _(" (NEW)")); if (menu->prompt->type == P_MENU) { item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->"); return; } } conf_childs: indent += doint; for (child = menu->list; child; child = child->next) build_conf(child); indent -= doint; } static void conf(struct menu *menu, struct menu *active_menu) { struct menu *submenu; const char *prompt = menu_get_prompt(menu); struct subtitle_part stpart; struct symbol *sym; int res; int s_scroll = 0; if (menu != &rootmenu) stpart.text = menu_get_prompt(menu); else stpart.text = NULL; list_add_tail(&stpart.entries, &trail); while (1) { item_reset(); current_menu = menu; build_conf(menu); if (!child_count) break; set_subtitle(); dialog_clear(); res = dialog_menu(prompt ? _(prompt) : _("Main Menu"), _(menu_instructions), active_menu, &s_scroll); if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL) break; if (item_count() != 0) { if (!item_activate_selected()) continue; if (!item_tag()) continue; } submenu = item_data(); active_menu = item_data(); if (submenu) sym = submenu->sym; else sym = NULL; switch (res) { case 0: switch (item_tag()) { case 'm': if (single_menu_mode) submenu->data = (void *) (long) !submenu->data; else conf(submenu, NULL); break; case 't': if (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes) conf_choice(submenu); else if (submenu->prompt->type == P_MENU) conf(submenu, NULL); break; case 's': conf_string(submenu); break; } break; case 2: if (sym) show_help(submenu); else { reset_subtitle(); show_helptext(_("README"), _(mconf_readme)); } break; case 3: reset_subtitle(); conf_save(); break; case 4: reset_subtitle(); conf_load(); break; case 5: if (item_is_tag('t')) { if (sym_set_tristate_value(sym, yes)) break; if (sym_set_tristate_value(sym, mod)) show_textbox(NULL, setmod_text, 6, 74); } break; case 6: if (item_is_tag('t')) sym_set_tristate_value(sym, no); break; case 7: if (item_is_tag('t')) sym_set_tristate_value(sym, mod); break; case 8: if (item_is_tag('t')) sym_toggle_tristate_value(sym); else if (item_is_tag('m')) conf(submenu, NULL); break; case 9: search_conf(); break; case 10: show_all_options = !show_all_options; break; } } list_del(trail.prev); } static int show_textbox_ext(const char *title, char *text, int r, int c, int *keys, int *vscroll, int *hscroll, update_text_fn update_text, void *data) { dialog_clear(); return dialog_textbox(title, text, r, c, keys, vscroll, hscroll, update_text, data); } static void show_textbox(const char *title, const char *text, int r, int c) { show_textbox_ext(title, (char *) text, r, c, (int []) {0}, NULL, NULL, NULL, NULL); } static void show_helptext(const char *title, const char *text) { show_textbox(title, text, 0, 0); } static void conf_message_callback(const char *fmt, va_list ap) { char buf[PATH_MAX+1]; vsnprintf(buf, sizeof(buf), fmt, ap); if (save_and_exit) { if (!silent) printf("%s", buf); } else { show_textbox(NULL, buf, 6, 60); } } static void show_help(struct menu *menu) { struct gstr help = str_new(); help.max_width = getmaxx(stdscr) - 10; menu_get_ext_help(menu, &help); show_helptext(_(menu_get_prompt(menu)), str_get(&help)); str_free(&help); } static void conf_choice(struct menu *menu) { const char *prompt = _(menu_get_prompt(menu)); struct menu *child; struct symbol *active; active = sym_get_choice_value(menu->sym); while (1) { int res; int selected; item_reset(); current_menu = menu; for (child = menu->list; child; child = child->next) { if (!menu_is_visible(child)) continue; if (child->sym) item_make("%s", _(menu_get_prompt(child))); else { item_make("*** %s ***", _(menu_get_prompt(child))); item_set_tag(':'); } item_set_data(child); if (child->sym == active) item_set_selected(1); if (child->sym == sym_get_choice_value(menu->sym)) item_set_tag('X'); } dialog_clear(); res = dialog_checklist(prompt ? _(prompt) : _("Main Menu"), _(radiolist_instructions), MENUBOX_HEIGTH_MIN, MENUBOX_WIDTH_MIN, CHECKLIST_HEIGTH_MIN); selected = item_activate_selected(); switch (res) { case 0: if (selected) { child = item_data(); if (!child->sym) break; sym_set_tristate_value(child->sym, yes); } return; case 1: if (selected) { child = item_data(); show_help(child); active = child->sym; } else show_help(menu); break; case KEY_ESC: return; case -ERRDISPLAYTOOSMALL: return; } } } static void conf_string(struct menu *menu) { const char *prompt = menu_get_prompt(menu); while (1) { int res; const char *heading; switch (sym_get_type(menu->sym)) { case S_INT: heading = _(inputbox_instructions_int); break; case S_HEX: heading = _(inputbox_instructions_hex); break; case S_STRING: heading = _(inputbox_instructions_string); break; default: heading = _("Internal mconf error!"); } dialog_clear(); res = dialog_inputbox(prompt ? _(prompt) : _("Main Menu"), heading, 10, 75, sym_get_string_value(menu->sym)); switch (res) { case 0: if (sym_set_string_value(menu->sym, dialog_input_result)) return; show_textbox(NULL, _("You have made an invalid entry."), 5, 43); break; case 1: show_help(menu); break; case KEY_ESC: return; } } } static void conf_load(void) { while (1) { int res; dialog_clear(); res = dialog_inputbox(NULL, load_config_text, 11, 55, filename); switch(res) { case 0: if (!dialog_input_result[0]) return; if (!conf_read(dialog_input_result)) { set_config_filename(dialog_input_result); sym_set_change_count(1); return; } show_textbox(NULL, _("File does not exist!"), 5, 38); break; case 1: show_helptext(_("Load Alternate Configuration"), load_config_help); break; case KEY_ESC: return; } } } static void conf_save(void) { while (1) { int res; dialog_clear(); res = dialog_inputbox(NULL, save_config_text, 11, 55, filename); switch(res) { case 0: if (!dialog_input_result[0]) return; if (!conf_write(dialog_input_result)) { set_config_filename(dialog_input_result); return; } show_textbox(NULL, _("Can't create file! Probably a nonexistent directory."), 5, 60); break; case 1: show_helptext(_("Save Alternate Configuration"), save_config_help); break; case KEY_ESC: return; } } } static int handle_exit(void) { int res; save_and_exit = 1; reset_subtitle(); dialog_clear(); if (conf_get_changed()) res = dialog_yesno(NULL, _("Do you wish to save your new configuration?\n" "(Press to continue Buildroot configuration.)"), 6, 60); else res = -1; end_dialog(saved_x, saved_y); switch (res) { case 0: if (conf_write(filename)) { fprintf(stderr, _("\n\n" "Error while writing of the configuration.\n" "Your configuration changes were NOT saved." "\n\n")); return 1; } /* fall through */ case -1: if (!silent) printf(_("\n\n" "*** End of the configuration.\n" "*** Execute 'make' to start the build or try 'make help'." "\n\n")); res = 0; break; default: if (!silent) fprintf(stderr, _("\n\n" "Your configuration changes were NOT saved." "\n\n")); if (res != KEY_ESC) res = 0; } return res; } static void sig_handler(int signo) { exit(handle_exit()); } int main(int ac, char **av) { char *mode; int res; setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); signal(SIGINT, sig_handler); if (ac > 1 && strcmp(av[1], "-s") == 0) { silent = 1; /* Silence conf_read() until the real callback is set up */ conf_set_message_callback(NULL); av++; } conf_parse(av[1]); conf_read(NULL); mode = getenv("MENUCONFIG_MODE"); if (mode) { if (!strcasecmp(mode, "single_menu")) single_menu_mode = 1; } if (init_dialog(NULL)) { fprintf(stderr, N_("Your display is too small to run Menuconfig!\n")); fprintf(stderr, N_("It must be at least 19 lines by 80 columns.\n")); return 1; } set_config_filename(conf_get_configname()); conf_set_message_callback(conf_message_callback); do { conf(&rootmenu, NULL); res = handle_exit(); } while (res == KEY_ESC); return res; } ================================================ FILE: support/kconfig/menu.c ================================================ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ #include #include #include #include #include "lkc.h" static const char nohelp_text[] = "There is no help available for this option."; struct menu rootmenu; static struct menu **last_entry_ptr; struct file *file_list; struct file *current_file; void menu_warn(struct menu *menu, const char *fmt, ...) { va_list ap; va_start(ap, fmt); fprintf(stderr, "%s:%d:warning: ", menu->file->name, menu->lineno); vfprintf(stderr, fmt, ap); fprintf(stderr, "\n"); va_end(ap); } static void prop_warn(struct property *prop, const char *fmt, ...) { va_list ap; va_start(ap, fmt); fprintf(stderr, "%s:%d:warning: ", prop->file->name, prop->lineno); vfprintf(stderr, fmt, ap); fprintf(stderr, "\n"); va_end(ap); } void _menu_init(void) { current_entry = current_menu = &rootmenu; last_entry_ptr = &rootmenu.list; } void menu_add_entry(struct symbol *sym) { struct menu *menu; menu = xmalloc(sizeof(*menu)); memset(menu, 0, sizeof(*menu)); menu->sym = sym; menu->parent = current_menu; menu->file = current_file; menu->lineno = zconf_lineno(); *last_entry_ptr = menu; last_entry_ptr = &menu->next; current_entry = menu; if (sym) menu_add_symbol(P_SYMBOL, sym, NULL); } struct menu *menu_add_menu(void) { last_entry_ptr = ¤t_entry->list; return current_menu = current_entry; } void menu_end_menu(void) { last_entry_ptr = ¤t_menu->next; current_menu = current_menu->parent; } /* * Rewrites 'm' to 'm' && MODULES, so that it evaluates to 'n' when running * without modules */ static struct expr *rewrite_m(struct expr *e) { if (!e) return e; switch (e->type) { case E_NOT: e->left.expr = rewrite_m(e->left.expr); break; case E_OR: case E_AND: e->left.expr = rewrite_m(e->left.expr); e->right.expr = rewrite_m(e->right.expr); break; case E_SYMBOL: /* change 'm' into 'm' && MODULES */ if (e->left.sym == &symbol_mod) return expr_alloc_and(e, expr_alloc_symbol(modules_sym)); break; default: break; } return e; } void menu_add_dep(struct expr *dep) { current_entry->dep = expr_alloc_and(current_entry->dep, dep); } void menu_set_type(int type) { struct symbol *sym = current_entry->sym; if (sym->type == type) return; if (sym->type == S_UNKNOWN) { sym->type = type; return; } menu_warn(current_entry, "ignoring type redefinition of '%s' from '%s' to '%s'", sym->name ? sym->name : "", sym_type_name(sym->type), sym_type_name(type)); } static struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep) { struct property *prop = prop_alloc(type, current_entry->sym); prop->menu = current_entry; prop->expr = expr; prop->visible.expr = dep; if (prompt) { if (isspace(*prompt)) { prop_warn(prop, "leading whitespace ignored"); while (isspace(*prompt)) prompt++; } if (current_entry->prompt && current_entry != &rootmenu) prop_warn(prop, "prompt redefined"); /* Apply all upper menus' visibilities to actual prompts. */ if(type == P_PROMPT) { struct menu *menu = current_entry; while ((menu = menu->parent) != NULL) { struct expr *dup_expr; if (!menu->visibility) continue; /* * Do not add a reference to the * menu's visibility expression but * use a copy of it. Otherwise the * expression reduction functions * will modify expressions that have * multiple references which can * cause unwanted side effects. */ dup_expr = expr_copy(menu->visibility); prop->visible.expr = expr_alloc_and(prop->visible.expr, dup_expr); } } current_entry->prompt = prop; } prop->text = prompt; return prop; } struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep) { return menu_add_prop(type, prompt, NULL, dep); } void menu_add_visibility(struct expr *expr) { current_entry->visibility = expr_alloc_and(current_entry->visibility, expr); } void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep) { menu_add_prop(type, NULL, expr, dep); } void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep) { menu_add_prop(type, NULL, expr_alloc_symbol(sym), dep); } void menu_add_option(int token, char *arg) { switch (token) { case T_OPT_MODULES: if (modules_sym) zconf_error("symbol '%s' redefines option 'modules'" " already defined by symbol '%s'", current_entry->sym->name, modules_sym->name ); modules_sym = current_entry->sym; break; case T_OPT_DEFCONFIG_LIST: if (!sym_defconfig_list) sym_defconfig_list = current_entry->sym; else if (sym_defconfig_list != current_entry->sym) zconf_error("trying to redefine defconfig symbol"); sym_defconfig_list->flags |= SYMBOL_AUTO; break; case T_OPT_ENV: prop_add_env(arg); break; case T_OPT_ALLNOCONFIG_Y: current_entry->sym->flags |= SYMBOL_ALLNOCONFIG_Y; break; } } static int menu_validate_number(struct symbol *sym, struct symbol *sym2) { return sym2->type == S_INT || sym2->type == S_HEX || (sym2->type == S_UNKNOWN && sym_string_valid(sym, sym2->name)); } static void sym_check_prop(struct symbol *sym) { struct property *prop; struct symbol *sym2; char *use; for (prop = sym->prop; prop; prop = prop->next) { switch (prop->type) { case P_DEFAULT: if ((sym->type == S_STRING || sym->type == S_INT || sym->type == S_HEX) && prop->expr->type != E_SYMBOL) prop_warn(prop, "default for config symbol '%s'" " must be a single symbol", sym->name); if (prop->expr->type != E_SYMBOL) break; sym2 = prop_get_symbol(prop); if (sym->type == S_HEX || sym->type == S_INT) { if (!menu_validate_number(sym, sym2)) prop_warn(prop, "'%s': number is invalid", sym->name); } if (sym_is_choice(sym)) { struct property *choice_prop = sym_get_choice_prop(sym2); if (!choice_prop || prop_get_symbol(choice_prop) != sym) prop_warn(prop, "choice default symbol '%s' is not contained in the choice", sym2->name); } break; case P_SELECT: case P_IMPLY: use = prop->type == P_SELECT ? "select" : "imply"; sym2 = prop_get_symbol(prop); if (sym->type != S_BOOLEAN && sym->type != S_TRISTATE) prop_warn(prop, "config symbol '%s' uses %s, but is " "not bool or tristate", sym->name, use); else if (sym2->type != S_UNKNOWN && sym2->type != S_BOOLEAN && sym2->type != S_TRISTATE) prop_warn(prop, "'%s' has wrong type. '%s' only " "accept arguments of bool and " "tristate type", sym2->name, use); break; case P_RANGE: if (sym->type != S_INT && sym->type != S_HEX) prop_warn(prop, "range is only allowed " "for int or hex symbols"); if (!menu_validate_number(sym, prop->expr->left.sym) || !menu_validate_number(sym, prop->expr->right.sym)) prop_warn(prop, "range is invalid"); break; default: ; } } } void menu_finalize(struct menu *parent) { struct menu *menu, *last_menu; struct symbol *sym; struct property *prop; struct expr *parentdep, *basedep, *dep, *dep2, **ep; sym = parent->sym; if (parent->list) { /* * This menu node has children. We (recursively) process them * and propagate parent dependencies before moving on. */ if (sym && sym_is_choice(sym)) { if (sym->type == S_UNKNOWN) { /* find the first choice value to find out choice type */ current_entry = parent; for (menu = parent->list; menu; menu = menu->next) { if (menu->sym && menu->sym->type != S_UNKNOWN) { menu_set_type(menu->sym->type); break; } } } /* set the type of the remaining choice values */ for (menu = parent->list; menu; menu = menu->next) { current_entry = menu; if (menu->sym && menu->sym->type == S_UNKNOWN) menu_set_type(sym->type); } /* * Use the choice itself as the parent dependency of * the contained items. This turns the mode of the * choice into an upper bound on the visibility of the * choice value symbols. */ parentdep = expr_alloc_symbol(sym); } else if (parent->prompt) /* Menu node for 'menu' */ parentdep = parent->prompt->visible.expr; else /* Menu node for 'if' */ parentdep = parent->dep; /* For each child menu node... */ for (menu = parent->list; menu; menu = menu->next) { /* * Propagate parent dependencies to the child menu * node, also rewriting and simplifying expressions */ basedep = rewrite_m(menu->dep); basedep = expr_transform(basedep); basedep = expr_alloc_and(expr_copy(parentdep), basedep); basedep = expr_eliminate_dups(basedep); menu->dep = basedep; if (menu->sym) /* * Note: For symbols, all prompts are included * too in the symbol's own property list */ prop = menu->sym->prop; else /* * For non-symbol menu nodes, we just need to * handle the prompt */ prop = menu->prompt; /* For each property... */ for (; prop; prop = prop->next) { if (prop->menu != menu) /* * Two possibilities: * * 1. The property lacks dependencies * and so isn't location-specific, * e.g. an 'option' * * 2. The property belongs to a symbol * defined in multiple locations and * is from some other location. It * will be handled there in that * case. * * Skip the property. */ continue; /* * Propagate parent dependencies to the * property's condition, rewriting and * simplifying expressions at the same time */ dep = rewrite_m(prop->visible.expr); dep = expr_transform(dep); dep = expr_alloc_and(expr_copy(basedep), dep); dep = expr_eliminate_dups(dep); if (menu->sym && menu->sym->type != S_TRISTATE) dep = expr_trans_bool(dep); prop->visible.expr = dep; /* * Handle selects and implies, which modify the * dependencies of the selected/implied symbol */ if (prop->type == P_SELECT) { struct symbol *es = prop_get_symbol(prop); es->rev_dep.expr = expr_alloc_or(es->rev_dep.expr, expr_alloc_and(expr_alloc_symbol(menu->sym), expr_copy(dep))); } else if (prop->type == P_IMPLY) { struct symbol *es = prop_get_symbol(prop); es->implied.expr = expr_alloc_or(es->implied.expr, expr_alloc_and(expr_alloc_symbol(menu->sym), expr_copy(dep))); } } } if (sym && sym_is_choice(sym)) expr_free(parentdep); /* * Recursively process children in the same fashion before * moving on */ for (menu = parent->list; menu; menu = menu->next) menu_finalize(menu); } else if (sym) { /* * Automatic submenu creation. If sym is a symbol and A, B, C, * ... are consecutive items (symbols, menus, ifs, etc.) that * all depend on sym, then the following menu structure is * created: * * sym * +-A * +-B * +-C * ... * * This also works recursively, giving the following structure * if A is a symbol and B depends on A: * * sym * +-A * | +-B * +-C * ... */ basedep = parent->prompt ? parent->prompt->visible.expr : NULL; basedep = expr_trans_compare(basedep, E_UNEQUAL, &symbol_no); basedep = expr_eliminate_dups(expr_transform(basedep)); /* Examine consecutive elements after sym */ last_menu = NULL; for (menu = parent->next; menu; menu = menu->next) { dep = menu->prompt ? menu->prompt->visible.expr : menu->dep; if (!expr_contains_symbol(dep, sym)) /* No dependency, quit */ break; if (expr_depends_symbol(dep, sym)) /* Absolute dependency, put in submenu */ goto next; /* * Also consider it a dependency on sym if our * dependencies contain sym and are a "superset" of * sym's dependencies, e.g. '(sym || Q) && R' when sym * depends on R. * * Note that 'R' might be from an enclosing menu or if, * making this a more common case than it might seem. */ dep = expr_trans_compare(dep, E_UNEQUAL, &symbol_no); dep = expr_eliminate_dups(expr_transform(dep)); dep2 = expr_copy(basedep); expr_eliminate_eq(&dep, &dep2); expr_free(dep); if (!expr_is_yes(dep2)) { /* Not superset, quit */ expr_free(dep2); break; } /* Superset, put in submenu */ expr_free(dep2); next: menu_finalize(menu); menu->parent = parent; last_menu = menu; } expr_free(basedep); if (last_menu) { parent->list = parent->next; parent->next = last_menu->next; last_menu->next = NULL; } sym->dir_dep.expr = expr_alloc_or(sym->dir_dep.expr, parent->dep); } for (menu = parent->list; menu; menu = menu->next) { if (sym && sym_is_choice(sym) && menu->sym && !sym_is_choice_value(menu->sym)) { current_entry = menu; menu->sym->flags |= SYMBOL_CHOICEVAL; if (!menu->prompt) menu_warn(menu, "choice value must have a prompt"); for (prop = menu->sym->prop; prop; prop = prop->next) { if (prop->type == P_DEFAULT) prop_warn(prop, "defaults for choice " "values not supported"); if (prop->menu == menu) continue; if (prop->type == P_PROMPT && prop->menu->parent->sym != sym) prop_warn(prop, "choice value used outside its choice group"); } /* Non-tristate choice values of tristate choices must * depend on the choice being set to Y. The choice * values' dependencies were propagated to their * properties above, so the change here must be re- * propagated. */ if (sym->type == S_TRISTATE && menu->sym->type != S_TRISTATE) { basedep = expr_alloc_comp(E_EQUAL, sym, &symbol_yes); menu->dep = expr_alloc_and(basedep, menu->dep); for (prop = menu->sym->prop; prop; prop = prop->next) { if (prop->menu != menu) continue; prop->visible.expr = expr_alloc_and(expr_copy(basedep), prop->visible.expr); } } menu_add_symbol(P_CHOICE, sym, NULL); prop = sym_get_choice_prop(sym); for (ep = &prop->expr; *ep; ep = &(*ep)->left.expr) ; *ep = expr_alloc_one(E_LIST, NULL); (*ep)->right.sym = menu->sym; } /* * This code serves two purposes: * * (1) Flattening 'if' blocks, which do not specify a submenu * and only add dependencies. * * (Automatic submenu creation might still create a submenu * from an 'if' before this code runs.) * * (2) "Undoing" any automatic submenus created earlier below * promptless symbols. * * Before: * * A * if ... (or promptless symbol) * +-B * +-C * D * * After: * * A * if ... (or promptless symbol) * B * C * D */ if (menu->list && (!menu->prompt || !menu->prompt->text)) { for (last_menu = menu->list; ; last_menu = last_menu->next) { last_menu->parent = parent; if (!last_menu->next) break; } last_menu->next = menu->next; menu->next = menu->list; menu->list = NULL; } } if (sym && !(sym->flags & SYMBOL_WARNED)) { if (sym->type == S_UNKNOWN) menu_warn(parent, "config symbol defined without type"); if (sym_is_choice(sym) && !parent->prompt) menu_warn(parent, "choice must have a prompt"); /* Check properties connected to this symbol */ sym_check_prop(sym); sym->flags |= SYMBOL_WARNED; } /* * For non-optional choices, add a reverse dependency (corresponding to * a select) of ' && m'. This prevents the user from * setting the choice mode to 'n' when the choice is visible. * * This would also work for non-choice symbols, but only non-optional * choices clear SYMBOL_OPTIONAL as of writing. Choices are implemented * as a type of symbol. */ if (sym && !sym_is_optional(sym) && parent->prompt) { sym->rev_dep.expr = expr_alloc_or(sym->rev_dep.expr, expr_alloc_and(parent->prompt->visible.expr, expr_alloc_symbol(&symbol_mod))); } } bool menu_has_prompt(struct menu *menu) { if (!menu->prompt) return false; return true; } /* * Determine if a menu is empty. * A menu is considered empty if it contains no or only * invisible entries. */ bool menu_is_empty(struct menu *menu) { struct menu *child; for (child = menu->list; child; child = child->next) { if (menu_is_visible(child)) return(false); } return(true); } bool menu_is_visible(struct menu *menu) { struct menu *child; struct symbol *sym; tristate visible; if (!menu->prompt) return false; if (menu->visibility) { if (expr_calc_value(menu->visibility) == no) return false; } sym = menu->sym; if (sym) { sym_calc_value(sym); visible = menu->prompt->visible.tri; } else visible = menu->prompt->visible.tri = expr_calc_value(menu->prompt->visible.expr); if (visible != no) return true; if (!sym || sym_get_tristate_value(menu->sym) == no) return false; for (child = menu->list; child; child = child->next) { if (menu_is_visible(child)) { if (sym) sym->flags |= SYMBOL_DEF_USER; return true; } } return false; } const char *menu_get_prompt(struct menu *menu) { if (menu->prompt) return menu->prompt->text; else if (menu->sym) return menu->sym->name; return NULL; } struct menu *menu_get_root_menu(struct menu *menu) { return &rootmenu; } struct menu *menu_get_parent_menu(struct menu *menu) { enum prop_type type; for (; menu != &rootmenu; menu = menu->parent) { type = menu->prompt ? menu->prompt->type : 0; if (type == P_MENU) break; } return menu; } bool menu_has_help(struct menu *menu) { return menu->help != NULL; } const char *menu_get_help(struct menu *menu) { if (menu->help) return menu->help; else return ""; } static void get_prompt_str(struct gstr *r, struct property *prop, struct list_head *head) { int i, j; struct menu *submenu[8], *menu, *location = NULL; struct jump_key *jump = NULL; str_printf(r, _("Prompt: %s\n"), _(prop->text)); menu = prop->menu->parent; for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent) { bool accessible = menu_is_visible(menu); submenu[i++] = menu; if (location == NULL && accessible) location = menu; } if (head && location) { jump = xmalloc(sizeof(struct jump_key)); if (menu_is_visible(prop->menu)) { /* * There is not enough room to put the hint at the * beginning of the "Prompt" line. Put the hint on the * last "Location" line even when it would belong on * the former. */ jump->target = prop->menu; } else jump->target = location; if (list_empty(head)) jump->index = 0; else jump->index = list_entry(head->prev, struct jump_key, entries)->index + 1; list_add_tail(&jump->entries, head); } if (i > 0) { str_printf(r, _(" Location:\n")); for (j = 4; --i >= 0; j += 2) { menu = submenu[i]; if (jump && menu == location) jump->offset = strlen(r->s); str_printf(r, "%*c-> %s", j, ' ', _(menu_get_prompt(menu))); if (menu->sym) { str_printf(r, " (%s [=%s])", menu->sym->name ? menu->sym->name : _(""), sym_get_string_value(menu->sym)); } str_append(r, "\n"); } } } /* * get property of type P_SYMBOL */ static struct property *get_symbol_prop(struct symbol *sym) { struct property *prop = NULL; for_all_properties(sym, prop, P_SYMBOL) break; return prop; } static void get_symbol_props_str(struct gstr *r, struct symbol *sym, enum prop_type tok, const char *prefix) { bool hit = false; struct property *prop; for_all_properties(sym, prop, tok) { if (!hit) { str_append(r, prefix); hit = true; } else str_printf(r, " && "); expr_gstr_print(prop->expr, r); } if (hit) str_append(r, "\n"); } /* * head is optional and may be NULL */ static void get_symbol_str(struct gstr *r, struct symbol *sym, struct list_head *head) { struct property *prop; if (sym && sym->name) { str_printf(r, "Symbol: %s [=%s]\n", sym->name, sym_get_string_value(sym)); str_printf(r, "Type : %s\n", sym_type_name(sym->type)); if (sym->type == S_INT || sym->type == S_HEX) { prop = sym_get_range_prop(sym); if (prop) { str_printf(r, "Range : "); expr_gstr_print(prop->expr, r); str_append(r, "\n"); } } } for_all_prompts(sym, prop) get_prompt_str(r, prop, head); prop = get_symbol_prop(sym); if (prop) { str_printf(r, _(" Defined at %s:%d\n"), prop->menu->file->name, prop->menu->lineno); if (!expr_is_yes(prop->visible.expr)) { str_append(r, _(" Depends on: ")); expr_gstr_print(prop->visible.expr, r); str_append(r, "\n"); } } get_symbol_props_str(r, sym, P_SELECT, _(" Selects: ")); if (sym->rev_dep.expr) { expr_gstr_print_revdep(sym->rev_dep.expr, r, yes, " Selected by [y]:\n"); expr_gstr_print_revdep(sym->rev_dep.expr, r, mod, " Selected by [m]:\n"); expr_gstr_print_revdep(sym->rev_dep.expr, r, no, " Selected by [n]:\n"); } get_symbol_props_str(r, sym, P_IMPLY, _(" Implies: ")); if (sym->implied.expr) { expr_gstr_print_revdep(sym->implied.expr, r, yes, " Implied by [y]:\n"); expr_gstr_print_revdep(sym->implied.expr, r, mod, " Implied by [m]:\n"); expr_gstr_print_revdep(sym->implied.expr, r, no, " Implied by [n]:\n"); } str_append(r, "\n\n"); } struct gstr get_relations_str(struct symbol **sym_arr, struct list_head *head) { struct symbol *sym; struct gstr res = str_new(); int i; for (i = 0; sym_arr && (sym = sym_arr[i]); i++) get_symbol_str(&res, sym, head); if (!i) str_append(&res, _("No matches found.\n")); return res; } void menu_get_ext_help(struct menu *menu, struct gstr *help) { struct symbol *sym = menu->sym; const char *help_text = nohelp_text; if (menu_has_help(menu)) { if (sym->name) str_printf(help, "%s%s:\n\n", CONFIG_, sym->name); help_text = menu_get_help(menu); } str_printf(help, "%s\n", _(help_text)); if (sym) get_symbol_str(help, sym, NULL); } ================================================ FILE: support/kconfig/merge_config.sh ================================================ #!/bin/sh # merge_config.sh - Takes a list of config fragment values, and merges # them one by one. Provides warnings on overridden values, and specified # values that did not make it to the resulting .config file (due to missed # dependencies or config symbol removal). # # Portions reused from kconf_check and generate_cfg: # http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-tools/tree/tools/kconf_check # http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-tools/tree/tools/generate_cfg # # Copyright (c) 2009-2010 Wind River Systems, Inc. # Copyright 2011 Linaro # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the GNU General Public License for more details. clean_up() { rm -f $TMP_FILE exit } trap clean_up HUP INT TERM usage() { echo "Usage: $0 [OPTIONS] [CONFIG [...]]" echo " -h display this help text" echo " -m only merge the fragments, do not execute the make command" echo " -n use allnoconfig instead of alldefconfig" echo " -r list redundant entries when merging fragments" echo " -O dir to put generated output files. Consider setting \$KCONFIG_CONFIG instead." echo " -e colon-separated list of br2-external trees to use (optional)" echo echo "Used prefix: '$CONFIG_PREFIX'. You can redefine it with \$CONFIG_ environment variable." } RUNMAKE=true ALLTARGET=alldefconfig WARNREDUN=false OUTPUT=. CONFIG_PREFIX=${CONFIG_-CONFIG_} while true; do case $1 in "-n") ALLTARGET=allnoconfig shift continue ;; "-m") RUNMAKE=false shift continue ;; "-h") usage exit ;; "-r") WARNREDUN=true shift continue ;; "-O") if [ -d $2 ];then OUTPUT=$(echo $2 | sed 's/\/*$//') else echo "output directory $2 does not exist" 1>&2 exit 1 fi shift 2 continue ;; "-e") EXTERNAL_ARG="BR2_EXTERNAL=$2" shift 2 continue ;; *) break ;; esac done if [ "$#" -lt 1 ] ; then usage exit fi if [ -z "$KCONFIG_CONFIG" ]; then if [ "$OUTPUT" != . ]; then KCONFIG_CONFIG=$(readlink -m -- "$OUTPUT/.config") else KCONFIG_CONFIG=.config fi fi INITFILE=$1 shift; if [ ! -r "$INITFILE" ]; then echo "The base file '$INITFILE' does not exist. Exit." >&2 exit 1 fi MERGE_LIST=$* SED_CONFIG_EXP1="s/^\(${CONFIG_PREFIX}[a-zA-Z0-9_]*\)=.*/\1/p" SED_CONFIG_EXP2="s/^# \(${CONFIG_PREFIX}[a-zA-Z0-9_]*\) is not set$/\1/p" TMP_FILE=$(mktemp -t .tmp.config.XXXXXXXXXX) echo "Using $INITFILE as base" cat $INITFILE > $TMP_FILE # Merge files, printing warnings on overridden values for MERGE_FILE in $MERGE_LIST ; do echo "Merging $MERGE_FILE" if [ ! -r "$MERGE_FILE" ]; then echo "The merge file '$MERGE_FILE' does not exist. Exit." >&2 exit 1 fi CFG_LIST=$(sed -n -e "$SED_CONFIG_EXP1" -e "$SED_CONFIG_EXP2" $MERGE_FILE) for CFG in $CFG_LIST ; do grep -q -w $CFG $TMP_FILE || continue PREV_VAL=$(grep -w $CFG $TMP_FILE) NEW_VAL=$(grep -w $CFG $MERGE_FILE) if [ "x$PREV_VAL" != "x$NEW_VAL" ] ; then echo Value of $CFG is redefined by fragment $MERGE_FILE: echo Previous value: $PREV_VAL echo New value: $NEW_VAL echo elif [ "$WARNREDUN" = "true" ]; then echo Value of $CFG is redundant by fragment $MERGE_FILE: fi sed -i "/$CFG[ =]/d" $TMP_FILE done cat $MERGE_FILE >> $TMP_FILE done if [ "$RUNMAKE" = "false" ]; then cp -T -- "$TMP_FILE" "$KCONFIG_CONFIG" echo "#" echo "# merged configuration written to $KCONFIG_CONFIG (needs make)" echo "#" clean_up exit fi # If we have an output dir, setup the O= argument, otherwise leave # it blank, since O=. will create an unnecessary ./source softlink OUTPUT_ARG="" if [ "$OUTPUT" != "." ] ; then OUTPUT_ARG="O=$OUTPUT" fi # Use the merged file as the starting point for: # alldefconfig: Fills in any missing symbols with Kconfig default # allnoconfig: Fills in any missing symbols with # CONFIG_* is not set make KCONFIG_ALLCONFIG=$TMP_FILE $EXTERNAL_ARG $OUTPUT_ARG $ALLTARGET # Check all specified config values took (might have missed-dependency issues) for CFG in $(sed -n -e "$SED_CONFIG_EXP1" -e "$SED_CONFIG_EXP2" $TMP_FILE); do REQUESTED_VAL=$(grep -w -e "$CFG" $TMP_FILE) ACTUAL_VAL=$(grep -w -e "$CFG" "$KCONFIG_CONFIG") if [ "x$REQUESTED_VAL" != "x$ACTUAL_VAL" ] ; then echo "Value requested for $CFG not in final .config" echo "Requested value: $REQUESTED_VAL" echo "Actual value: $ACTUAL_VAL" echo "" fi done clean_up ================================================ FILE: support/kconfig/nconf.c ================================================ /* * Copyright (C) 2008 Nir Tzachar #include #include "lkc.h" #include "nconf.h" #include static const char nconf_global_help[] = N_( "Help windows\n" "------------\n" "o Global help: Unless in a data entry window, pressing will give \n" " you the global help window, which you are just reading.\n" "\n" "o A short version of the global help is available by pressing .\n" "\n" "o Local help: To get help related to the current menu entry, use any\n" " of , or if in a data entry window then press .\n" "\n" "\n" "Menu entries\n" "------------\n" "This interface lets you select features and parameters for the kernel\n" "build. Kernel features can either be built-in, modularized, or removed.\n" "Parameters must be entered as text or decimal or hexadecimal numbers.\n" "\n" "Menu entries beginning with following braces represent features that\n" " [ ] can be built in or removed\n" " < > can be built in, modularized or removed\n" " { } can be built in or modularized, are selected by another feature\n" " - - are selected by another feature\n" " XXX cannot be selected. Symbol Info tells you why.\n" "*, M or whitespace inside braces means to build in, build as a module\n" "or to exclude the feature respectively.\n" "\n" "To change any of these features, highlight it with the movement keys\n" "listed below and press to build it in, to make it a module or\n" " to remove it. You may press the key to cycle through the\n" "available options.\n" "\n" "A trailing \"--->\" designates a submenu, a trailing \"----\" an\n" "empty submenu.\n" "\n" "Menu navigation keys\n" "----------------------------------------------------------------------\n" "Linewise up \n" "Linewise down \n" "Pagewise up \n" "Pagewise down \n" "First entry \n" "Last entry \n" "Enter a submenu \n" "Go back to parent menu \n" "Close a help window \n" "Close entry window, apply \n" "Close entry window, forget \n" "Start incremental, case-insensitive search for STRING in menu entries,\n" " no regex support, STRING is displayed in upper left corner\n" " STRING\n" " Remove last character \n" " Jump to next hit \n" " Jump to previous hit \n" "Exit menu search mode \n" "Search for configuration variables with or without leading CONFIG_\n" " RegExpr\n" "Verbose search help \n" "----------------------------------------------------------------------\n" "\n" "Unless in a data entry window, key <1> may be used instead of ,\n" "<2> instead of , etc.\n" "\n" "\n" "Radiolist (Choice list)\n" "-----------------------\n" "Use the movement keys listed above to select the option you wish to set\n" "and press .\n" "\n" "\n" "Data entry\n" "----------\n" "Enter the requested information and press . Hexadecimal values\n" "may be entered without the \"0x\" prefix.\n" "\n" "\n" "Text Box (Help Window)\n" "----------------------\n" "Use movement keys as listed in table above.\n" "\n" "Press any of to exit.\n" "\n" "\n" "Alternate configuration files\n" "-----------------------------\n" "nconfig supports switching between different configurations.\n" "Press to save your current configuration. Press and enter\n" "a file name to load a previously saved configuration.\n" "\n" "\n" "Terminal configuration\n" "----------------------\n" "If you use nconfig in a xterm window, make sure your TERM environment\n" "variable specifies a terminal configuration which supports at least\n" "16 colors. Otherwise nconfig will look rather bad.\n" "\n" "If the \"stty size\" command reports the current terminalsize correctly,\n" "nconfig will adapt to sizes larger than the traditional 80x25 \"standard\"\n" "and display longer menus properly.\n" "\n" "\n" "Single menu mode\n" "----------------\n" "If you prefer to have all of the menu entries listed in a single menu,\n" "rather than the default multimenu hierarchy, run nconfig with\n" "NCONFIG_MODE environment variable set to single_menu. Example:\n" "\n" "make NCONFIG_MODE=single_menu nconfig\n" "\n" " will then unfold the appropriate category, or fold it if it\n" "is already unfolded. Folded menu entries will be designated by a\n" "leading \"++>\" and unfolded entries by a leading \"-->\".\n" "\n" "Note that this mode can eventually be a little more CPU expensive than\n" "the default mode, especially with a larger number of unfolded submenus.\n" "\n"), menu_no_f_instructions[] = N_( "Legend: [*] built-in [ ] excluded module < > module capable.\n" "Submenus are designated by a trailing \"--->\", empty ones by \"----\".\n" "\n" "Use the following keys to navigate the menus:\n" "Move up or down with and .\n" "Enter a submenu with or .\n" "Exit a submenu to its parent menu with or .\n" "Pressing includes, excludes, modularizes features.\n" "Pressing cycles through the available options.\n" "To search for menu entries press .\n" " always leaves the current window.\n" "\n" "You do not have function keys support.\n" "Press <1> instead of , <2> instead of , etc.\n" "For verbose global help use key <1>.\n" "For help related to the current menu entry press or .\n"), menu_instructions[] = N_( "Legend: [*] built-in [ ] excluded module < > module capable.\n" "Submenus are designated by a trailing \"--->\", empty ones by \"----\".\n" "\n" "Use the following keys to navigate the menus:\n" "Move up or down with or .\n" "Enter a submenu with or .\n" "Exit a submenu to its parent menu with or .\n" "Pressing includes, excludes, modularizes features.\n" "Pressing cycles through the available options.\n" "To search for menu entries press .\n" " always leaves the current window.\n" "\n" "Pressing <1> may be used instead of , <2> instead of , etc.\n" "For verbose global help press .\n" "For help related to the current menu entry press or .\n"), radiolist_instructions[] = N_( "Press , , or to navigate a radiolist, select\n" "with .\n" "For help related to the current entry press or .\n" "For global help press .\n"), inputbox_instructions_int[] = N_( "Please enter a decimal value.\n" "Fractions will not be accepted.\n" "Press to apply, to cancel."), inputbox_instructions_hex[] = N_( "Please enter a hexadecimal value.\n" "Press to apply, to cancel."), inputbox_instructions_string[] = N_( "Please enter a string value.\n" "Press to apply, to cancel."), setmod_text[] = N_( "This feature depends on another feature which has been configured as a\n" "module. As a result, the current feature will be built as a module too."), load_config_text[] = N_( "Enter the name of the configuration file you wish to load.\n" "Accept the name shown to restore the configuration you last\n" "retrieved. Leave empty to abort."), load_config_help[] = N_( "For various reasons, one may wish to keep several different\n" "configurations available on a single machine.\n" "\n" "If you have saved a previous configuration in a file other than the\n" "default one, entering its name here will allow you to load and modify\n" "that configuration.\n" "\n" "Leave empty to abort.\n"), save_config_text[] = N_( "Enter a filename to which this configuration should be saved\n" "as an alternate. Leave empty to abort."), save_config_help[] = N_( "For various reasons, one may wish to keep several different\n" "configurations available on a single machine.\n" "\n" "Entering a file name here will allow you to later retrieve, modify\n" "and use the current configuration as an alternate to whatever\n" "configuration options you have selected at that time.\n" "\n" "Leave empty to abort.\n"), search_help[] = N_( "Search for symbols (configuration variable names CONFIG_*) and display\n" "their relations. Regular expressions are supported.\n" "Example: Search for \"^FOO\".\n" "Result:\n" "-----------------------------------------------------------------\n" "Symbol: FOO [ = m]\n" "Prompt: Foo bus is used to drive the bar HW\n" "Defined at drivers/pci/Kconfig:47\n" "Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n" "Location:\n" " -> Bus options (PCI, PCMCIA, EISA, ISA)\n" " -> PCI support (PCI [ = y])\n" " -> PCI access mode ( [ = y])\n" "Selects: LIBCRC32\n" "Selected by: BAR\n" "-----------------------------------------------------------------\n" "o The line 'Prompt:' shows the text displayed for this symbol in\n" " the menu hierarchy.\n" "o The 'Defined at' line tells at what file / line number the symbol is\n" " defined.\n" "o The 'Depends on:' line lists symbols that need to be defined for\n" " this symbol to be visible and selectable in the menu.\n" "o The 'Location:' lines tell, where in the menu structure this symbol\n" " is located. A location followed by a [ = y] indicates that this is\n" " a selectable menu item, and the current value is displayed inside\n" " brackets.\n" "o The 'Selects:' line tells, what symbol will be automatically selected\n" " if this symbol is selected (y or m).\n" "o The 'Selected by' line tells what symbol has selected this symbol.\n" "\n" "Only relevant lines are shown.\n" "\n\n" "Search examples:\n" "USB => find all symbols containing USB\n" "^USB => find all symbols starting with USB\n" "USB$ => find all symbols ending with USB\n" "\n"); struct mitem { char str[256]; char tag; void *usrptr; int is_visible; }; #define MAX_MENU_ITEMS 4096 static int show_all_items; static int indent; static struct menu *current_menu; static int child_count; static int single_menu_mode; /* the window in which all information appears */ static WINDOW *main_window; /* the largest size of the menu window */ static int mwin_max_lines; static int mwin_max_cols; /* the window in which we show option buttons */ static MENU *curses_menu; static ITEM *curses_menu_items[MAX_MENU_ITEMS]; static struct mitem k_menu_items[MAX_MENU_ITEMS]; static int items_num; static int global_exit; /* the currently selected button */ static const char *current_instructions = menu_instructions; static char *dialog_input_result; static int dialog_input_result_len; static void conf(struct menu *menu); static void conf_choice(struct menu *menu); static void conf_string(struct menu *menu); static void conf_load(void); static void conf_save(void); static void show_help(struct menu *menu); static int do_exit(void); static void setup_windows(void); static void search_conf(void); typedef void (*function_key_handler_t)(int *key, struct menu *menu); static void handle_f1(int *key, struct menu *current_item); static void handle_f2(int *key, struct menu *current_item); static void handle_f3(int *key, struct menu *current_item); static void handle_f4(int *key, struct menu *current_item); static void handle_f5(int *key, struct menu *current_item); static void handle_f6(int *key, struct menu *current_item); static void handle_f7(int *key, struct menu *current_item); static void handle_f8(int *key, struct menu *current_item); static void handle_f9(int *key, struct menu *current_item); struct function_keys { const char *key_str; const char *func; function_key key; function_key_handler_t handler; }; static const int function_keys_num = 9; static struct function_keys function_keys[] = { { .key_str = "F1", .func = "Help", .key = F_HELP, .handler = handle_f1, }, { .key_str = "F2", .func = "SymInfo", .key = F_SYMBOL, .handler = handle_f2, }, { .key_str = "F3", .func = "Help 2", .key = F_INSTS, .handler = handle_f3, }, { .key_str = "F4", .func = "ShowAll", .key = F_CONF, .handler = handle_f4, }, { .key_str = "F5", .func = "Back", .key = F_BACK, .handler = handle_f5, }, { .key_str = "F6", .func = "Save", .key = F_SAVE, .handler = handle_f6, }, { .key_str = "F7", .func = "Load", .key = F_LOAD, .handler = handle_f7, }, { .key_str = "F8", .func = "SymSearch", .key = F_SEARCH, .handler = handle_f8, }, { .key_str = "F9", .func = "Exit", .key = F_EXIT, .handler = handle_f9, }, }; static void print_function_line(void) { int i; int offset = 1; const int skip = 1; int lines = getmaxy(stdscr); for (i = 0; i < function_keys_num; i++) { (void) wattrset(main_window, attributes[FUNCTION_HIGHLIGHT]); mvwprintw(main_window, lines-3, offset, "%s", function_keys[i].key_str); (void) wattrset(main_window, attributes[FUNCTION_TEXT]); offset += strlen(function_keys[i].key_str); mvwprintw(main_window, lines-3, offset, "%s", function_keys[i].func); offset += strlen(function_keys[i].func) + skip; } (void) wattrset(main_window, attributes[NORMAL]); } /* help */ static void handle_f1(int *key, struct menu *current_item) { show_scroll_win(main_window, _("Global help"), _(nconf_global_help)); return; } /* symbole help */ static void handle_f2(int *key, struct menu *current_item) { show_help(current_item); return; } /* instructions */ static void handle_f3(int *key, struct menu *current_item) { show_scroll_win(main_window, _("Short help"), _(current_instructions)); return; } /* config */ static void handle_f4(int *key, struct menu *current_item) { int res = btn_dialog(main_window, _("Show all symbols?"), 2, " ", ""); if (res == 0) show_all_items = 1; else if (res == 1) show_all_items = 0; return; } /* back */ static void handle_f5(int *key, struct menu *current_item) { *key = KEY_LEFT; return; } /* save */ static void handle_f6(int *key, struct menu *current_item) { conf_save(); return; } /* load */ static void handle_f7(int *key, struct menu *current_item) { conf_load(); return; } /* search */ static void handle_f8(int *key, struct menu *current_item) { search_conf(); return; } /* exit */ static void handle_f9(int *key, struct menu *current_item) { do_exit(); return; } /* return != 0 to indicate the key was handles */ static int process_special_keys(int *key, struct menu *menu) { int i; if (*key == KEY_RESIZE) { setup_windows(); return 1; } for (i = 0; i < function_keys_num; i++) { if (*key == KEY_F(function_keys[i].key) || *key == '0' + function_keys[i].key){ function_keys[i].handler(key, menu); return 1; } } return 0; } static void clean_items(void) { int i; for (i = 0; curses_menu_items[i]; i++) free_item(curses_menu_items[i]); bzero(curses_menu_items, sizeof(curses_menu_items)); bzero(k_menu_items, sizeof(k_menu_items)); items_num = 0; } typedef enum {MATCH_TINKER_PATTERN_UP, MATCH_TINKER_PATTERN_DOWN, FIND_NEXT_MATCH_DOWN, FIND_NEXT_MATCH_UP} match_f; /* return the index of the matched item, or -1 if no such item exists */ static int get_mext_match(const char *match_str, match_f flag) { int match_start = item_index(current_item(curses_menu)); int index; if (flag == FIND_NEXT_MATCH_DOWN) ++match_start; else if (flag == FIND_NEXT_MATCH_UP) --match_start; index = match_start; index = (index + items_num) % items_num; while (true) { char *str = k_menu_items[index].str; if (strcasestr(str, match_str) != NULL) return index; if (flag == FIND_NEXT_MATCH_UP || flag == MATCH_TINKER_PATTERN_UP) --index; else ++index; index = (index + items_num) % items_num; if (index == match_start) return -1; } } /* Make a new item. */ static void item_make(struct menu *menu, char tag, const char *fmt, ...) { va_list ap; if (items_num > MAX_MENU_ITEMS-1) return; bzero(&k_menu_items[items_num], sizeof(k_menu_items[0])); k_menu_items[items_num].tag = tag; k_menu_items[items_num].usrptr = menu; if (menu != NULL) k_menu_items[items_num].is_visible = menu_is_visible(menu); else k_menu_items[items_num].is_visible = 1; va_start(ap, fmt); vsnprintf(k_menu_items[items_num].str, sizeof(k_menu_items[items_num].str), fmt, ap); va_end(ap); if (!k_menu_items[items_num].is_visible) memcpy(k_menu_items[items_num].str, "XXX", 3); curses_menu_items[items_num] = new_item( k_menu_items[items_num].str, k_menu_items[items_num].str); set_item_userptr(curses_menu_items[items_num], &k_menu_items[items_num]); /* if (!k_menu_items[items_num].is_visible) item_opts_off(curses_menu_items[items_num], O_SELECTABLE); */ items_num++; curses_menu_items[items_num] = NULL; } /* very hackish. adds a string to the last item added */ static void item_add_str(const char *fmt, ...) { va_list ap; int index = items_num-1; char new_str[256]; char tmp_str[256]; if (index < 0) return; va_start(ap, fmt); vsnprintf(new_str, sizeof(new_str), fmt, ap); va_end(ap); snprintf(tmp_str, sizeof(tmp_str), "%s%s", k_menu_items[index].str, new_str); strncpy(k_menu_items[index].str, tmp_str, sizeof(k_menu_items[index].str)); free_item(curses_menu_items[index]); curses_menu_items[index] = new_item( k_menu_items[index].str, k_menu_items[index].str); set_item_userptr(curses_menu_items[index], &k_menu_items[index]); } /* get the tag of the currently selected item */ static char item_tag(void) { ITEM *cur; struct mitem *mcur; cur = current_item(curses_menu); if (cur == NULL) return 0; mcur = (struct mitem *) item_userptr(cur); return mcur->tag; } static int curses_item_index(void) { return item_index(current_item(curses_menu)); } static void *item_data(void) { ITEM *cur; struct mitem *mcur; cur = current_item(curses_menu); if (!cur) return NULL; mcur = (struct mitem *) item_userptr(cur); return mcur->usrptr; } static int item_is_tag(char tag) { return item_tag() == tag; } static char filename[PATH_MAX+1]; static char menu_backtitle[PATH_MAX+128]; static const char *set_config_filename(const char *config_filename) { int size; size = snprintf(menu_backtitle, sizeof(menu_backtitle), "%s - %s", config_filename, rootmenu.prompt->text); if (size >= sizeof(menu_backtitle)) menu_backtitle[sizeof(menu_backtitle)-1] = '\0'; size = snprintf(filename, sizeof(filename), "%s", config_filename); if (size >= sizeof(filename)) filename[sizeof(filename)-1] = '\0'; return menu_backtitle; } /* return = 0 means we are successful. * -1 means go on doing what you were doing */ static int do_exit(void) { int res; if (!conf_get_changed()) { global_exit = 1; return 0; } res = btn_dialog(main_window, _("Do you wish to save your new configuration?\n" " to cancel and resume nconfig."), 2, " ", ""); if (res == KEY_EXIT) { global_exit = 0; return -1; } /* if we got here, the user really wants to exit */ switch (res) { case 0: res = conf_write(filename); if (res) btn_dialog( main_window, _("Error during writing of configuration.\n" "Your configuration changes were NOT saved."), 1, ""); break; default: btn_dialog( main_window, _("Your configuration changes were NOT saved."), 1, ""); break; } global_exit = 1; return 0; } static void search_conf(void) { struct symbol **sym_arr; struct gstr res; struct gstr title; char *dialog_input; int dres; title = str_new(); str_printf( &title, _("Enter (sub)string or regexp to search for " "(with or without \"%s\")"), CONFIG_); again: dres = dialog_inputbox(main_window, _("Search Configuration Parameter"), str_get(&title), "", &dialog_input_result, &dialog_input_result_len); switch (dres) { case 0: break; case 1: show_scroll_win(main_window, _("Search Configuration"), search_help); goto again; default: str_free(&title); return; } /* strip the prefix if necessary */ dialog_input = dialog_input_result; if (strncasecmp(dialog_input_result, CONFIG_, strlen(CONFIG_)) == 0) dialog_input += strlen(CONFIG_); sym_arr = sym_re_search(dialog_input); res = get_relations_str(sym_arr, NULL); free(sym_arr); show_scroll_win(main_window, _("Search Results"), str_get(&res)); str_free(&res); str_free(&title); } static void build_conf(struct menu *menu) { struct symbol *sym; struct property *prop; struct menu *child; int type, tmp, doint = 2; tristate val; char ch; if (!menu || (!show_all_items && !menu_is_visible(menu))) return; sym = menu->sym; prop = menu->prompt; if (!sym) { if (prop && menu != current_menu) { const char *prompt = menu_get_prompt(menu); enum prop_type ptype; ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN; switch (ptype) { case P_MENU: child_count++; prompt = _(prompt); if (single_menu_mode) { item_make(menu, 'm', "%s%*c%s", menu->data ? "-->" : "++>", indent + 1, ' ', prompt); } else item_make(menu, 'm', " %*c%s %s", indent + 1, ' ', prompt, menu_is_empty(menu) ? "----" : "--->"); if (single_menu_mode && menu->data) goto conf_childs; return; case P_COMMENT: if (prompt) { child_count++; item_make(menu, ':', " %*c*** %s ***", indent + 1, ' ', _(prompt)); } break; default: if (prompt) { child_count++; item_make(menu, ':', "---%*c%s", indent + 1, ' ', _(prompt)); } } } else doint = 0; goto conf_childs; } type = sym_get_type(sym); if (sym_is_choice(sym)) { struct symbol *def_sym = sym_get_choice_value(sym); struct menu *def_menu = NULL; child_count++; for (child = menu->list; child; child = child->next) { if (menu_is_visible(child) && child->sym == def_sym) def_menu = child; } val = sym_get_tristate_value(sym); if (sym_is_changable(sym)) { switch (type) { case S_BOOLEAN: item_make(menu, 't', "[%c]", val == no ? ' ' : '*'); break; case S_TRISTATE: switch (val) { case yes: ch = '*'; break; case mod: ch = 'M'; break; default: ch = ' '; break; } item_make(menu, 't', "<%c>", ch); break; } } else { item_make(menu, def_menu ? 't' : ':', " "); } item_add_str("%*c%s", indent + 1, ' ', _(menu_get_prompt(menu))); if (val == yes) { if (def_menu) { item_add_str(" (%s)", _(menu_get_prompt(def_menu))); item_add_str(" --->"); if (def_menu->list) { indent += 2; build_conf(def_menu); indent -= 2; } } return; } } else { if (menu == current_menu) { item_make(menu, ':', "---%*c%s", indent + 1, ' ', _(menu_get_prompt(menu))); goto conf_childs; } child_count++; val = sym_get_tristate_value(sym); if (sym_is_choice_value(sym) && val == yes) { item_make(menu, ':', " "); } else { switch (type) { case S_BOOLEAN: if (sym_is_changable(sym)) item_make(menu, 't', "[%c]", val == no ? ' ' : '*'); else item_make(menu, 't', "-%c-", val == no ? ' ' : '*'); break; case S_TRISTATE: switch (val) { case yes: ch = '*'; break; case mod: ch = 'M'; break; default: ch = ' '; break; } if (sym_is_changable(sym)) { if (sym->rev_dep.tri == mod) item_make(menu, 't', "{%c}", ch); else item_make(menu, 't', "<%c>", ch); } else item_make(menu, 't', "-%c-", ch); break; default: tmp = 2 + strlen(sym_get_string_value(sym)); item_make(menu, 's', " (%s)", sym_get_string_value(sym)); tmp = indent - tmp + 4; if (tmp < 0) tmp = 0; item_add_str("%*c%s%s", tmp, ' ', _(menu_get_prompt(menu)), (sym_has_value(sym) || !sym_is_changable(sym)) ? "" : _(" (NEW)")); goto conf_childs; } } item_add_str("%*c%s%s", indent + 1, ' ', _(menu_get_prompt(menu)), (sym_has_value(sym) || !sym_is_changable(sym)) ? "" : _(" (NEW)")); if (menu->prompt && menu->prompt->type == P_MENU) { item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->"); return; } } conf_childs: indent += doint; for (child = menu->list; child; child = child->next) build_conf(child); indent -= doint; } static void reset_menu(void) { unpost_menu(curses_menu); clean_items(); } /* adjust the menu to show this item. * prefer not to scroll the menu if possible*/ static void center_item(int selected_index, int *last_top_row) { int toprow; set_top_row(curses_menu, *last_top_row); toprow = top_row(curses_menu); if (selected_index < toprow || selected_index >= toprow+mwin_max_lines) { toprow = max(selected_index-mwin_max_lines/2, 0); if (toprow >= item_count(curses_menu)-mwin_max_lines) toprow = item_count(curses_menu)-mwin_max_lines; set_top_row(curses_menu, toprow); } set_current_item(curses_menu, curses_menu_items[selected_index]); *last_top_row = toprow; post_menu(curses_menu); refresh_all_windows(main_window); } /* this function assumes reset_menu has been called before */ static void show_menu(const char *prompt, const char *instructions, int selected_index, int *last_top_row) { int maxx, maxy; WINDOW *menu_window; current_instructions = instructions; clear(); (void) wattrset(main_window, attributes[NORMAL]); print_in_middle(stdscr, 1, 0, getmaxx(stdscr), menu_backtitle, attributes[MAIN_HEADING]); (void) wattrset(main_window, attributes[MAIN_MENU_BOX]); box(main_window, 0, 0); (void) wattrset(main_window, attributes[MAIN_MENU_HEADING]); mvwprintw(main_window, 0, 3, " %s ", prompt); (void) wattrset(main_window, attributes[NORMAL]); set_menu_items(curses_menu, curses_menu_items); /* position the menu at the middle of the screen */ scale_menu(curses_menu, &maxy, &maxx); maxx = min(maxx, mwin_max_cols-2); maxy = mwin_max_lines; menu_window = derwin(main_window, maxy, maxx, 2, (mwin_max_cols-maxx)/2); keypad(menu_window, TRUE); set_menu_win(curses_menu, menu_window); set_menu_sub(curses_menu, menu_window); /* must reassert this after changing items, otherwise returns to a * default of 16 */ set_menu_format(curses_menu, maxy, 1); center_item(selected_index, last_top_row); set_menu_format(curses_menu, maxy, 1); print_function_line(); /* Post the menu */ post_menu(curses_menu); refresh_all_windows(main_window); } static void adj_match_dir(match_f *match_direction) { if (*match_direction == FIND_NEXT_MATCH_DOWN) *match_direction = MATCH_TINKER_PATTERN_DOWN; else if (*match_direction == FIND_NEXT_MATCH_UP) *match_direction = MATCH_TINKER_PATTERN_UP; /* else, do no change.. */ } struct match_state { int in_search; match_f match_direction; char pattern[256]; }; /* Return 0 means I have handled the key. In such a case, ans should hold the * item to center, or -1 otherwise. * Else return -1 . */ static int do_match(int key, struct match_state *state, int *ans) { char c = (char) key; int terminate_search = 0; *ans = -1; if (key == '/' || (state->in_search && key == 27)) { move(0, 0); refresh(); clrtoeol(); state->in_search = 1-state->in_search; bzero(state->pattern, sizeof(state->pattern)); state->match_direction = MATCH_TINKER_PATTERN_DOWN; return 0; } else if (!state->in_search) return 1; if (isalnum(c) || isgraph(c) || c == ' ') { state->pattern[strlen(state->pattern)] = c; state->pattern[strlen(state->pattern)] = '\0'; adj_match_dir(&state->match_direction); *ans = get_mext_match(state->pattern, state->match_direction); } else if (key == KEY_DOWN) { state->match_direction = FIND_NEXT_MATCH_DOWN; *ans = get_mext_match(state->pattern, state->match_direction); } else if (key == KEY_UP) { state->match_direction = FIND_NEXT_MATCH_UP; *ans = get_mext_match(state->pattern, state->match_direction); } else if (key == KEY_BACKSPACE || key == 127) { state->pattern[strlen(state->pattern)-1] = '\0'; adj_match_dir(&state->match_direction); } else terminate_search = 1; if (terminate_search) { state->in_search = 0; bzero(state->pattern, sizeof(state->pattern)); move(0, 0); refresh(); clrtoeol(); return -1; } return 0; } static void conf(struct menu *menu) { struct menu *submenu = NULL; const char *prompt = menu_get_prompt(menu); struct symbol *sym; int res; int current_index = 0; int last_top_row = 0; struct match_state match_state = { .in_search = 0, .match_direction = MATCH_TINKER_PATTERN_DOWN, .pattern = "", }; while (!global_exit) { reset_menu(); current_menu = menu; build_conf(menu); if (!child_count) break; show_menu(prompt ? _(prompt) : _("Main Menu"), _(menu_instructions), current_index, &last_top_row); keypad((menu_win(curses_menu)), TRUE); while (!global_exit) { if (match_state.in_search) { mvprintw(0, 0, "searching: %s", match_state.pattern); clrtoeol(); } refresh_all_windows(main_window); res = wgetch(menu_win(curses_menu)); if (!res) break; if (do_match(res, &match_state, ¤t_index) == 0) { if (current_index != -1) center_item(current_index, &last_top_row); continue; } if (process_special_keys(&res, (struct menu *) item_data())) break; switch (res) { case KEY_DOWN: menu_driver(curses_menu, REQ_DOWN_ITEM); break; case KEY_UP: menu_driver(curses_menu, REQ_UP_ITEM); break; case KEY_NPAGE: menu_driver(curses_menu, REQ_SCR_DPAGE); break; case KEY_PPAGE: menu_driver(curses_menu, REQ_SCR_UPAGE); break; case KEY_HOME: menu_driver(curses_menu, REQ_FIRST_ITEM); break; case KEY_END: menu_driver(curses_menu, REQ_LAST_ITEM); break; case 'h': case '?': show_help((struct menu *) item_data()); break; } if (res == 10 || res == 27 || res == 32 || res == 'n' || res == 'y' || res == KEY_LEFT || res == KEY_RIGHT || res == 'm') break; refresh_all_windows(main_window); } refresh_all_windows(main_window); /* if ESC or left*/ if (res == 27 || (menu != &rootmenu && res == KEY_LEFT)) break; /* remember location in the menu */ last_top_row = top_row(curses_menu); current_index = curses_item_index(); if (!item_tag()) continue; submenu = (struct menu *) item_data(); if (!submenu || !menu_is_visible(submenu)) continue; sym = submenu->sym; switch (res) { case ' ': if (item_is_tag('t')) sym_toggle_tristate_value(sym); else if (item_is_tag('m')) conf(submenu); break; case KEY_RIGHT: case 10: /* ENTER WAS PRESSED */ switch (item_tag()) { case 'm': if (single_menu_mode) submenu->data = (void *) (long) !submenu->data; else conf(submenu); break; case 't': if (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes) conf_choice(submenu); else if (submenu->prompt && submenu->prompt->type == P_MENU) conf(submenu); else if (res == 10) sym_toggle_tristate_value(sym); break; case 's': conf_string(submenu); break; } break; case 'y': if (item_is_tag('t')) { if (sym_set_tristate_value(sym, yes)) break; if (sym_set_tristate_value(sym, mod)) btn_dialog(main_window, setmod_text, 0); } break; case 'n': if (item_is_tag('t')) sym_set_tristate_value(sym, no); break; case 'm': if (item_is_tag('t')) sym_set_tristate_value(sym, mod); break; } } } static void conf_message_callback(const char *fmt, va_list ap) { char buf[1024]; vsnprintf(buf, sizeof(buf), fmt, ap); btn_dialog(main_window, buf, 1, ""); } static void show_help(struct menu *menu) { struct gstr help; if (!menu) return; help = str_new(); menu_get_ext_help(menu, &help); show_scroll_win(main_window, _(menu_get_prompt(menu)), str_get(&help)); str_free(&help); } static void conf_choice(struct menu *menu) { const char *prompt = _(menu_get_prompt(menu)); struct menu *child = NULL; struct symbol *active; int selected_index = 0; int last_top_row = 0; int res, i = 0; struct match_state match_state = { .in_search = 0, .match_direction = MATCH_TINKER_PATTERN_DOWN, .pattern = "", }; active = sym_get_choice_value(menu->sym); /* this is mostly duplicated from the conf() function. */ while (!global_exit) { reset_menu(); for (i = 0, child = menu->list; child; child = child->next) { if (!show_all_items && !menu_is_visible(child)) continue; if (child->sym == sym_get_choice_value(menu->sym)) item_make(child, ':', " %s", _(menu_get_prompt(child))); else if (child->sym) item_make(child, ':', " %s", _(menu_get_prompt(child))); else item_make(child, ':', "*** %s ***", _(menu_get_prompt(child))); if (child->sym == active){ last_top_row = top_row(curses_menu); selected_index = i; } i++; } show_menu(prompt ? _(prompt) : _("Choice Menu"), _(radiolist_instructions), selected_index, &last_top_row); while (!global_exit) { if (match_state.in_search) { mvprintw(0, 0, "searching: %s", match_state.pattern); clrtoeol(); } refresh_all_windows(main_window); res = wgetch(menu_win(curses_menu)); if (!res) break; if (do_match(res, &match_state, &selected_index) == 0) { if (selected_index != -1) center_item(selected_index, &last_top_row); continue; } if (process_special_keys( &res, (struct menu *) item_data())) break; switch (res) { case KEY_DOWN: menu_driver(curses_menu, REQ_DOWN_ITEM); break; case KEY_UP: menu_driver(curses_menu, REQ_UP_ITEM); break; case KEY_NPAGE: menu_driver(curses_menu, REQ_SCR_DPAGE); break; case KEY_PPAGE: menu_driver(curses_menu, REQ_SCR_UPAGE); break; case KEY_HOME: menu_driver(curses_menu, REQ_FIRST_ITEM); break; case KEY_END: menu_driver(curses_menu, REQ_LAST_ITEM); break; case 'h': case '?': show_help((struct menu *) item_data()); break; } if (res == 10 || res == 27 || res == ' ' || res == KEY_LEFT){ break; } refresh_all_windows(main_window); } /* if ESC or left */ if (res == 27 || res == KEY_LEFT) break; child = item_data(); if (!child || !menu_is_visible(child) || !child->sym) continue; switch (res) { case ' ': case 10: case KEY_RIGHT: sym_set_tristate_value(child->sym, yes); return; case 'h': case '?': show_help(child); active = child->sym; break; case KEY_EXIT: return; } } } static void conf_string(struct menu *menu) { const char *prompt = menu_get_prompt(menu); while (1) { int res; const char *heading; switch (sym_get_type(menu->sym)) { case S_INT: heading = _(inputbox_instructions_int); break; case S_HEX: heading = _(inputbox_instructions_hex); break; case S_STRING: heading = _(inputbox_instructions_string); break; default: heading = _("Internal nconf error!"); } res = dialog_inputbox(main_window, prompt ? _(prompt) : _("Main Menu"), heading, sym_get_string_value(menu->sym), &dialog_input_result, &dialog_input_result_len); switch (res) { case 0: if (sym_set_string_value(menu->sym, dialog_input_result)) return; btn_dialog(main_window, _("You have made an invalid entry."), 0); break; case 1: show_help(menu); break; case KEY_EXIT: return; } } } static void conf_load(void) { while (1) { int res; res = dialog_inputbox(main_window, NULL, load_config_text, filename, &dialog_input_result, &dialog_input_result_len); switch (res) { case 0: if (!dialog_input_result[0]) return; if (!conf_read(dialog_input_result)) { set_config_filename(dialog_input_result); sym_set_change_count(1); return; } btn_dialog(main_window, _("File does not exist!"), 0); break; case 1: show_scroll_win(main_window, _("Load Alternate Configuration"), load_config_help); break; case KEY_EXIT: return; } } } static void conf_save(void) { while (1) { int res; res = dialog_inputbox(main_window, NULL, save_config_text, filename, &dialog_input_result, &dialog_input_result_len); switch (res) { case 0: if (!dialog_input_result[0]) return; res = conf_write(dialog_input_result); if (!res) { set_config_filename(dialog_input_result); return; } btn_dialog(main_window, _("Can't create file! " "Probably a nonexistent directory."), 1, ""); break; case 1: show_scroll_win(main_window, _("Save Alternate Configuration"), save_config_help); break; case KEY_EXIT: return; } } } static void setup_windows(void) { int lines, columns; getmaxyx(stdscr, lines, columns); if (main_window != NULL) delwin(main_window); /* set up the menu and menu window */ main_window = newwin(lines-2, columns-2, 2, 1); keypad(main_window, TRUE); mwin_max_lines = lines-7; mwin_max_cols = columns-6; /* panels order is from bottom to top */ new_panel(main_window); } int main(int ac, char **av) { int lines, columns; char *mode; setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); if (ac > 1 && strcmp(av[1], "-s") == 0) { /* Silence conf_read() until the real callback is set up */ conf_set_message_callback(NULL); av++; } conf_parse(av[1]); conf_read(NULL); mode = getenv("NCONFIG_MODE"); if (mode) { if (!strcasecmp(mode, "single_menu")) single_menu_mode = 1; } /* Initialize curses */ initscr(); /* set color theme */ set_colors(); cbreak(); noecho(); keypad(stdscr, TRUE); curs_set(0); getmaxyx(stdscr, lines, columns); if (columns < 75 || lines < 20) { endwin(); printf("Your terminal should have at " "least 20 lines and 75 columns\n"); return 1; } notimeout(stdscr, FALSE); #if NCURSES_REENTRANT set_escdelay(1); #else ESCDELAY = 1; #endif /* set btns menu */ curses_menu = new_menu(curses_menu_items); menu_opts_off(curses_menu, O_SHOWDESC); menu_opts_on(curses_menu, O_SHOWMATCH); menu_opts_on(curses_menu, O_ONEVALUE); menu_opts_on(curses_menu, O_NONCYCLIC); menu_opts_on(curses_menu, O_IGNORECASE); set_menu_mark(curses_menu, " "); set_menu_fore(curses_menu, attributes[MAIN_MENU_FORE]); set_menu_back(curses_menu, attributes[MAIN_MENU_BACK]); set_menu_grey(curses_menu, attributes[MAIN_MENU_GREY]); set_config_filename(conf_get_configname()); setup_windows(); /* check for KEY_FUNC(1) */ if (has_key(KEY_F(1)) == FALSE) { show_scroll_win(main_window, _("Instructions"), _(menu_no_f_instructions)); } conf_set_message_callback(conf_message_callback); /* do the work */ while (!global_exit) { conf(&rootmenu); if (!global_exit && do_exit() == 0) break; } /* ok, we are done */ unpost_menu(curses_menu); free_menu(curses_menu); delwin(main_window); clear(); refresh(); endwin(); return 0; } ================================================ FILE: support/kconfig/nconf.gui.c ================================================ /* * Copyright (C) 2008 Nir Tzachar 0) win_rows = msg_lines+4; else win_rows = msg_lines+2; win = newwin(win_rows, total_width+4, y, x); keypad(win, TRUE); menu_win = derwin(win, 1, btns_width, win_rows-2, 1+(total_width+2-btns_width)/2); menu = new_menu(btns); msg_win = derwin(win, win_rows-2, msg_width, 1, 1+(total_width+2-msg_width)/2); set_menu_fore(menu, attributes[DIALOG_MENU_FORE]); set_menu_back(menu, attributes[DIALOG_MENU_BACK]); (void) wattrset(win, attributes[DIALOG_BOX]); box(win, 0, 0); /* print message */ (void) wattrset(msg_win, attributes[DIALOG_TEXT]); fill_window(msg_win, msg); set_menu_win(menu, win); set_menu_sub(menu, menu_win); set_menu_format(menu, 1, btn_num); menu_opts_off(menu, O_SHOWDESC); menu_opts_off(menu, O_SHOWMATCH); menu_opts_on(menu, O_ONEVALUE); menu_opts_on(menu, O_NONCYCLIC); set_menu_mark(menu, ""); post_menu(menu); touchwin(win); refresh_all_windows(main_window); while ((res = wgetch(win))) { switch (res) { case KEY_LEFT: menu_driver(menu, REQ_LEFT_ITEM); break; case KEY_RIGHT: menu_driver(menu, REQ_RIGHT_ITEM); break; case 10: /* ENTER */ case 27: /* ESCAPE */ case ' ': case KEY_F(F_BACK): case KEY_F(F_EXIT): break; } touchwin(win); refresh_all_windows(main_window); if (res == 10 || res == ' ') { res = item_index(current_item(menu)); break; } else if (res == 27 || res == KEY_F(F_BACK) || res == KEY_F(F_EXIT)) { res = KEY_EXIT; break; } } unpost_menu(menu); free_menu(menu); for (i = 0; i < btn_num; i++) free_item(btns[i]); delwin(win); return res; } int dialog_inputbox(WINDOW *main_window, const char *title, const char *prompt, const char *init, char **resultp, int *result_len) { int prompt_lines = 0; int prompt_width = 0; WINDOW *win; WINDOW *prompt_win; WINDOW *form_win; PANEL *panel; int i, x, y, lines, columns, win_lines, win_cols; int res = -1; int cursor_position = strlen(init); int cursor_form_win; char *result = *resultp; getmaxyx(stdscr, lines, columns); if (strlen(init)+1 > *result_len) { *result_len = strlen(init)+1; *resultp = result = xrealloc(result, *result_len); } /* find the widest line of msg: */ prompt_lines = get_line_no(prompt); for (i = 0; i < prompt_lines; i++) { const char *line = get_line(prompt, i); int len = get_line_length(line); prompt_width = max(prompt_width, len); } if (title) prompt_width = max(prompt_width, strlen(title)); win_lines = min(prompt_lines+6, lines-2); win_cols = min(prompt_width+7, columns-2); prompt_lines = max(win_lines-6, 0); prompt_width = max(win_cols-7, 0); /* place dialog in middle of screen */ y = (lines-win_lines)/2; x = (columns-win_cols)/2; strncpy(result, init, *result_len); /* create the windows */ win = newwin(win_lines, win_cols, y, x); prompt_win = derwin(win, prompt_lines+1, prompt_width, 2, 2); form_win = derwin(win, 1, prompt_width, prompt_lines+3, 2); keypad(form_win, TRUE); (void) wattrset(form_win, attributes[INPUT_FIELD]); (void) wattrset(win, attributes[INPUT_BOX]); box(win, 0, 0); (void) wattrset(win, attributes[INPUT_HEADING]); if (title) mvwprintw(win, 0, 3, "%s", title); /* print message */ (void) wattrset(prompt_win, attributes[INPUT_TEXT]); fill_window(prompt_win, prompt); mvwprintw(form_win, 0, 0, "%*s", prompt_width, " "); cursor_form_win = min(cursor_position, prompt_width-1); mvwprintw(form_win, 0, 0, "%s", result + cursor_position-cursor_form_win); /* create panels */ panel = new_panel(win); /* show the cursor */ curs_set(1); touchwin(win); refresh_all_windows(main_window); while ((res = wgetch(form_win))) { int len = strlen(result); switch (res) { case 10: /* ENTER */ case 27: /* ESCAPE */ case KEY_F(F_HELP): case KEY_F(F_EXIT): case KEY_F(F_BACK): break; case 127: case KEY_BACKSPACE: if (cursor_position > 0) { memmove(&result[cursor_position-1], &result[cursor_position], len-cursor_position+1); cursor_position--; cursor_form_win--; len--; } break; case KEY_DC: if (cursor_position >= 0 && cursor_position < len) { memmove(&result[cursor_position], &result[cursor_position+1], len-cursor_position+1); len--; } break; case KEY_UP: case KEY_RIGHT: if (cursor_position < len) { cursor_position++; cursor_form_win++; } break; case KEY_DOWN: case KEY_LEFT: if (cursor_position > 0) { cursor_position--; cursor_form_win--; } break; case KEY_HOME: cursor_position = 0; cursor_form_win = 0; break; case KEY_END: cursor_position = len; cursor_form_win = min(cursor_position, prompt_width-1); break; default: if ((isgraph(res) || isspace(res))) { /* one for new char, one for '\0' */ if (len+2 > *result_len) { *result_len = len+2; *resultp = result = realloc(result, *result_len); } /* insert the char at the proper position */ memmove(&result[cursor_position+1], &result[cursor_position], len-cursor_position+1); result[cursor_position] = res; cursor_position++; cursor_form_win++; len++; } else { mvprintw(0, 0, "unknown key: %d\n", res); } break; } if (cursor_form_win < 0) cursor_form_win = 0; else if (cursor_form_win > prompt_width-1) cursor_form_win = prompt_width-1; wmove(form_win, 0, 0); wclrtoeol(form_win); mvwprintw(form_win, 0, 0, "%*s", prompt_width, " "); mvwprintw(form_win, 0, 0, "%s", result + cursor_position-cursor_form_win); wmove(form_win, 0, cursor_form_win); touchwin(win); refresh_all_windows(main_window); if (res == 10) { res = 0; break; } else if (res == 27 || res == KEY_F(F_BACK) || res == KEY_F(F_EXIT)) { res = KEY_EXIT; break; } else if (res == KEY_F(F_HELP)) { res = 1; break; } } /* hide the cursor */ curs_set(0); del_panel(panel); delwin(prompt_win); delwin(form_win); delwin(win); return res; } /* refresh all windows in the correct order */ void refresh_all_windows(WINDOW *main_window) { update_panels(); touchwin(main_window); refresh(); } /* layman's scrollable window... */ void show_scroll_win(WINDOW *main_window, const char *title, const char *text) { int res; int total_lines = get_line_no(text); int x, y, lines, columns; int start_x = 0, start_y = 0; int text_lines = 0, text_cols = 0; int total_cols = 0; int win_cols = 0; int win_lines = 0; int i = 0; WINDOW *win; WINDOW *pad; PANEL *panel; getmaxyx(stdscr, lines, columns); /* find the widest line of msg: */ total_lines = get_line_no(text); for (i = 0; i < total_lines; i++) { const char *line = get_line(text, i); int len = get_line_length(line); total_cols = max(total_cols, len+2); } /* create the pad */ pad = newpad(total_lines+10, total_cols+10); (void) wattrset(pad, attributes[SCROLLWIN_TEXT]); fill_window(pad, text); win_lines = min(total_lines+4, lines-2); win_cols = min(total_cols+2, columns-2); text_lines = max(win_lines-4, 0); text_cols = max(win_cols-2, 0); /* place window in middle of screen */ y = (lines-win_lines)/2; x = (columns-win_cols)/2; win = newwin(win_lines, win_cols, y, x); keypad(win, TRUE); /* show the help in the help window, and show the help panel */ (void) wattrset(win, attributes[SCROLLWIN_BOX]); box(win, 0, 0); (void) wattrset(win, attributes[SCROLLWIN_HEADING]); mvwprintw(win, 0, 3, " %s ", title); panel = new_panel(win); /* handle scrolling */ do { copywin(pad, win, start_y, start_x, 2, 2, text_lines, text_cols, 0); print_in_middle(win, text_lines+2, 0, text_cols, "", attributes[DIALOG_MENU_FORE]); wrefresh(win); res = wgetch(win); switch (res) { case KEY_NPAGE: case ' ': case 'd': start_y += text_lines-2; break; case KEY_PPAGE: case 'u': start_y -= text_lines+2; break; case KEY_HOME: start_y = 0; break; case KEY_END: start_y = total_lines-text_lines; break; case KEY_DOWN: case 'j': start_y++; break; case KEY_UP: case 'k': start_y--; break; case KEY_LEFT: case 'h': start_x--; break; case KEY_RIGHT: case 'l': start_x++; break; } if (res == 10 || res == 27 || res == 'q' || res == KEY_F(F_HELP) || res == KEY_F(F_BACK) || res == KEY_F(F_EXIT)) break; if (start_y < 0) start_y = 0; if (start_y >= total_lines-text_lines) start_y = total_lines-text_lines; if (start_x < 0) start_x = 0; if (start_x >= total_cols-text_cols) start_x = total_cols-text_cols; } while (res); del_panel(panel); delwin(win); refresh_all_windows(main_window); } ================================================ FILE: support/kconfig/nconf.h ================================================ /* * Copyright (C) 2008 Nir Tzachar #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define max(a, b) ({\ typeof(a) _a = a;\ typeof(b) _b = b;\ _a > _b ? _a : _b; }) #define min(a, b) ({\ typeof(a) _a = a;\ typeof(b) _b = b;\ _a < _b ? _a : _b; }) typedef enum { NORMAL = 1, MAIN_HEADING, MAIN_MENU_BOX, MAIN_MENU_FORE, MAIN_MENU_BACK, MAIN_MENU_GREY, MAIN_MENU_HEADING, SCROLLWIN_TEXT, SCROLLWIN_HEADING, SCROLLWIN_BOX, DIALOG_TEXT, DIALOG_MENU_FORE, DIALOG_MENU_BACK, DIALOG_BOX, INPUT_BOX, INPUT_HEADING, INPUT_TEXT, INPUT_FIELD, FUNCTION_TEXT, FUNCTION_HIGHLIGHT, ATTR_MAX } attributes_t; extern attributes_t attributes[]; typedef enum { F_HELP = 1, F_SYMBOL = 2, F_INSTS = 3, F_CONF = 4, F_BACK = 5, F_SAVE = 6, F_LOAD = 7, F_SEARCH = 8, F_EXIT = 9, } function_key; void set_colors(void); /* this changes the windows attributes !!! */ void print_in_middle(WINDOW *win, int starty, int startx, int width, const char *string, chtype color); int get_line_length(const char *line); int get_line_no(const char *text); const char *get_line(const char *text, int line_no); void fill_window(WINDOW *win, const char *text); int btn_dialog(WINDOW *main_window, const char *msg, int btn_num, ...); int dialog_inputbox(WINDOW *main_window, const char *title, const char *prompt, const char *init, char **resultp, int *result_len); void refresh_all_windows(WINDOW *main_window); void show_scroll_win(WINDOW *main_window, const char *title, const char *text); ================================================ FILE: support/kconfig/patches/01-kconfig-kernel-to-buildroot.patch ================================================ --- confdata.c | 4 ++-- gconf.glade | 2 +- mconf.c | 4 ++-- zconf.tab.c_shipped | 2 +- zconf.y | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) Index: kconfig/gconf.glade =================================================================== --- kconfig.orig/gconf.glade +++ kconfig/gconf.glade @@ -4,7 +4,7 @@ True - Gtk Kernel Configurator + Gtk Buildroot Configurator GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE False Index: kconfig/mconf.c =================================================================== --- kconfig.orig/mconf.c +++ kconfig/mconf.c @@ -176,9 +176,9 @@ menu_instructions[] = N_( "Arrow keys navigate the menu. " " selects submenus ---> (or empty submenus ----). " "Highlighted letters are hotkeys. " - "Pressing includes, excludes, modularizes features. " + "Pressing selects a feature, while excludes a feature. " "Press to exit, for Help, for Search. " - "Legend: [*] built-in [ ] excluded module < > module capable"), + "Legend: [*] feature is selected [ ] feature is excluded"), radiolist_instructions[] = N_( "Use the arrow keys to navigate this window or " "press the hotkey of the item you wish to select " @@ -962,7 +962,7 @@ static int handle_exit(void) if (conf_get_changed()) res = dialog_yesno(NULL, _("Do you wish to save your new configuration?\n" - "(Press to continue kernel configuration.)"), + "(Press to continue Buildroot configuration.)"), 6, 60); else res = -1; Index: kconfig/zconf.tab.c_shipped =================================================================== --- kconfig.orig/zconf.tab.c_shipped +++ kconfig/zconf.tab.c_shipped @@ -1515,7 +1515,7 @@ yyreduce: * later regardless of whether it comes from the 'prompt' in * mainmenu_stmt or here */ - menu_add_prompt(P_MENU, xstrdup("Linux Kernel Configuration"), NULL); + menu_add_prompt(P_MENU, xstrdup("Buildroot Configuration"), NULL); } break; Index: kconfig/zconf.y =================================================================== --- kconfig.orig/zconf.y +++ kconfig/zconf.y @@ -127,7 +127,7 @@ no_mainmenu_stmt: /* empty */ * later regardless of whether it comes from the 'prompt' in * mainmenu_stmt or here */ - menu_add_prompt(P_MENU, xstrdup("Linux Kernel Configuration"), NULL); + menu_add_prompt(P_MENU, xstrdup("Buildroot Configuration"), NULL); }; Index: kconfig/confdata.c =================================================================== --- kconfig.orig/confdata.c +++ kconfig/confdata.c @@ -30,7 +30,7 @@ static void conf_message(const char *fmt static const char *conf_filename; static int conf_lineno, conf_warnings; -const char conf_defname[] = "arch/$ARCH/defconfig"; +const char conf_defname[] = ".defconfig"; static void conf_warning(const char *fmt, ...) { @@ -69,7 +69,7 @@ static void conf_message(const char *fmt const char *conf_get_configname(void) { - char *name = getenv("KCONFIG_CONFIG"); + char *name = getenv("BR2_CONFIG"); return name ? name : ".config"; } Index: kconfig/qconf.cc =================================================================== --- kconfig.orig/qconf.cc +++ kconfig/qconf.cc @@ -55,7 +55,7 @@ static inline QString qgettext(const QSt } ConfigSettings::ConfigSettings() - : QSettings("kernel.org", "qconf") + : QSettings("buildroot.org", "qconf") { } ================================================ FILE: support/kconfig/patches/06-br-build-system-integration.patch ================================================ Index: kconfig/Makefile =================================================================== --- kconfig.orig/Makefile +++ kconfig/Makefile @@ -205,7 +205,35 @@ qconf-cxxobjs := qconf.o qconf-objs := zconf.tab.o gconf-objs := gconf.o zconf.tab.o -hostprogs-y := conf nconf mconf kxgettext qconf gconf +hostprogs-y := conf + +ifeq ($(MAKECMDGOALS),nconf) + hostprogs-y += nconf +endif + +ifeq ($(MAKECMDGOALS),mconf) + hostprogs-y += mconf +endif + +ifeq ($(MAKECMDGOALS),update-po-config) + hostprogs-y += kxgettext +endif + +ifeq ($(MAKECMDGOALS),qconf) + qconf-target := 1 +endif + +ifeq ($(MAKECMDGOALS),gconf) + gconf-target := 1 +endif + +ifeq ($(qconf-target),1) + hostprogs-y += qconf +endif + +ifeq ($(gconf-target),1) + hostprogs-y += gconf +endif targets += zconf.lex.c clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck @@ -243,7 +271,7 @@ HOSTLOADLIBES_nconf = $(shell \ || echo "-lmenu -lpanel -lncurses" ) $(obj)/qconf.o: $(obj)/.tmp_qtcheck -ifeq ($(MAKECMDGOALS),xconfig) +ifeq ($(MAKECMDGOALS),qconf) $(obj)/.tmp_qtcheck: $(src)/Makefile -include $(obj)/.tmp_qtcheck @@ -270,9 +298,8 @@ $(obj)/.tmp_qtcheck: echo "KC_QT_MOC=$$moc" >> $@ endif +ifeq ($(MAKECMDGOALS),gconf) $(obj)/gconf.o: $(obj)/.tmp_gtkcheck - -ifeq ($(MAKECMDGOALS),gconfig) -include $(obj)/.tmp_gtkcheck # GTK+ needs some extra effort, too... @@ -300,11 +327,8 @@ $(obj)/zconf.tab.o: $(obj)/zconf.lex.c $(obj)/qconf.o: $(obj)/qconf.moc -quiet_cmd_moc = MOC $@ - cmd_moc = $(KC_QT_MOC) -i $< -o $@ - $(obj)/%.moc: $(src)/%.h $(obj)/.tmp_qtcheck - $(call cmd,moc) + $(KC_QT_MOC) -i $< -o $@ # Extract gconf menu items for i18n support $(obj)/gconf.glade.h: $(obj)/gconf.glade ================================================ FILE: support/kconfig/patches/10-br-build-system.patch ================================================ --- Makefile.br | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ foo.h | 12 ++++++++++++ 2 files changed, 65 insertions(+) Index: kconfig/Makefile.br =================================================================== --- /dev/null +++ kconfig/Makefile.br @@ -0,0 +1,53 @@ +src := . +top_srcdir=../../ +top_builddir=../../ +srctree := . +obj ?= . + +include Makefile +#HOSTCFLAGS+=-Dinline="" -include foo.h +-include $(obj)/.depend +$(obj)/.depend: $(wildcard *.h *.c) + $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) -MM *.c > $@ 2>/dev/null || : + +__hostprogs := $(sort $(hostprogs-y) $(hostprogs-m)) +host-csingle := $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m))) +host-cmulti := $(foreach m,$(__hostprogs),\ + $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m)))) +host-cxxmulti := $(foreach m,$(__hostprogs),\ + $(if $($(m)-cxxobjs),$(m),$(if $($(m)-objs),))) +host-cobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(__hostprogs),$($(m)-objs)))) +host-cxxobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(__hostprogs),$($(m)-cxxobjs)))) + +HOST_EXTRACFLAGS += -I$(obj) -DCONFIG_=\"\" + +$(host-csingle): %: %.c + $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $< -o $(obj)/$@ + +$(host-cmulti): %: $(host-cobjs) $(host-cshlib) + $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $(addprefix $(obj)/,$($(@F)-objs)) $(HOSTLOADLIBES_$(@F)) -o $(obj)/$@ + +$(host-cxxmulti): %: $(host-cxxobjs) $(host-cobjs) $(host-cshlib) + $(HOSTCXX) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCXXFLAGS_$@) $(addprefix $(obj)/,$($(@F)-objs) $($(@F)-cxxobjs)) $(HOSTLOADLIBES_$(@F)) -o $(obj)/$@ + +$(obj)/%.o: %.c + $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F)) -c $< -o $@ + +$(obj)/%.o: $(obj)/%.c + $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F)) -c $< -o $@ + +$(obj)/%.o: %.cc + $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCXXFLAGS_$(@F)) -c $< -o $@ + +$(obj)/%:: $(src)/%_shipped + $(Q)cat $< > $@ + +clean: + $(Q)rm -f $(addprefix $(obj)/,$(clean-files)) +distclean: clean + $(Q)rm -f $(addprefix $(obj)/,$(lxdialog) $(conf-objs) $(mconf-objs) $(kxgettext-objs) \ + $(hostprogs-y) $(qconf-cxxobjs) $(qconf-objs) $(gconf-objs) \ + mconf .depend) + +FORCE: +.PHONY: FORCE clean distclean Index: kconfig/foo.h =================================================================== --- /dev/null +++ kconfig/foo.h @@ -0,0 +1,12 @@ +#ifndef __KCONFIG_FOO_H +#define __KCONFIG_FOO_H + +#ifndef __APPLE__ +#include +#endif +#include + +#ifndef PATH_MAX +#define PATH_MAX 1024 +#endif +#endif /* __KCONFIG_FOO_H */ ================================================ FILE: support/kconfig/patches/11-use-mktemp-for-lxdialog.patch ================================================ --- lxdialog/check-lxdialog.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: kconfig/lxdialog/check-lxdialog.sh =================================================================== --- kconfig.orig/lxdialog/check-lxdialog.sh +++ kconfig/lxdialog/check-lxdialog.sh @@ -41,7 +41,7 @@ ccflags() } # Temp file, try to clean up after us -tmp=.lxdialog.tmp +tmp=$(mktemp) trap "rm -f $tmp" 0 1 2 3 15 # Check if we can link to ncurses ================================================ FILE: support/kconfig/patches/12-fix-glade-file-path.patch ================================================ --- gconf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: kconfig/gconf.c =================================================================== --- kconfig.orig/gconf.c +++ kconfig/gconf.c @@ -1462,7 +1462,7 @@ int main(int ac, char *av[]) /* Determine GUI path */ env = getenv(SRCTREE); if (env) - glade_file = g_strconcat(env, "/scripts/kconfig/gconf.glade", NULL); + glade_file = g_strconcat(env, "/support/kconfig/gconf.glade", NULL); else if (av[0][0] == '/') glade_file = g_strconcat(av[0], ".glade", NULL); else ================================================ FILE: support/kconfig/patches/14-support-out-of-tree-config.patch ================================================ --- conf.c | 1 confdata.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++--------------- util.c | 16 +++++++++++++-- 3 files changed, 61 insertions(+), 18 deletions(-) Index: kconfig/conf.c =================================================================== --- kconfig.orig/conf.c +++ kconfig/conf.c @@ -565,7 +565,6 @@ int main(int ac, char **av) } name = av[optind]; conf_parse(name); - //zconfdump(stdout); if (sync_kconfig) { name = conf_get_configname(); if (stat(name, &tmpstat)) { Index: kconfig/confdata.c =================================================================== --- kconfig.orig/confdata.c +++ kconfig/confdata.c @@ -13,6 +13,7 @@ #include #include #include +#include #include "lkc.h" @@ -76,9 +77,7 @@ const char *conf_get_configname(void) const char *conf_get_autoconfig_name(void) { - char *name = getenv("KCONFIG_AUTOCONFIG"); - - return name ? name : "include/config/auto.conf"; + return getenv("KCONFIG_AUTOCONFIG"); } static char *conf_expand_value(const char *in) @@ -748,6 +747,9 @@ int conf_write(const char *name) char dirname[PATH_MAX+1], tmpname[PATH_MAX+1], newname[PATH_MAX+1]; char *env; + if (!name) + name = conf_get_configname(); + dirname[0] = 0; if (name && name[0]) { struct stat st; @@ -842,6 +844,7 @@ static int conf_split_config(void) { const char *name; char path[PATH_MAX+1]; + char *opwd, *dir, *_name; char *s, *d, c; struct symbol *sym; struct stat sb; @@ -851,8 +854,20 @@ static int conf_split_config(void) conf_read_simple(name, S_DEF_AUTO); sym_calc_value(modules_sym); - if (chdir("include/config")) - return 1; + opwd = malloc(256); + _name = strdup(name); + if (opwd == NULL || _name == NULL) + return 1; + opwd = getcwd(opwd, 256); + dir = dirname(_name); + if (dir == NULL) { + res = 1; + goto err; + } + if (chdir(dir)) { + res = 1; + goto err; + } res = 0; for_all_symbols(i, sym) { @@ -945,9 +960,11 @@ static int conf_split_config(void) close(fd); } out: - if (chdir("../..")) - return 1; - + if (chdir(opwd)) + res = 1; +err: + free(opwd); + free(_name); return res; } @@ -957,25 +974,38 @@ int conf_write_autoconf(void) const char *name; FILE *out, *tristate, *out_h; int i; + char dir[PATH_MAX+1], buf[PATH_MAX+1]; + char *s; + + strcpy(dir, conf_get_configname()); + s = strrchr(dir, '/'); + if (s) + s[1] = 0; + else + dir[0] = 0; sym_clear_all_valid(); - file_write_dep("include/config/auto.conf.cmd"); + sprintf(buf, "%s.config.cmd", dir); + file_write_dep(buf); if (conf_split_config()) return 1; - out = fopen(".tmpconfig", "w"); + sprintf(buf, "%s.tmpconfig", dir); + out = fopen(buf, "w"); if (!out) return 1; - tristate = fopen(".tmpconfig_tristate", "w"); + sprintf(buf, "%s.tmpconfig_tristate", dir); + tristate = fopen(buf, "w"); if (!tristate) { fclose(out); return 1; } - out_h = fopen(".tmpconfig.h", "w"); + sprintf(buf, "%s.tmpconfig.h", dir); + out_h = fopen(buf, "w"); if (!out_h) { fclose(out); fclose(tristate); @@ -1007,19 +1037,22 @@ int conf_write_autoconf(void) name = getenv("KCONFIG_AUTOHEADER"); if (!name) name = "include/generated/autoconf.h"; - if (rename(".tmpconfig.h", name)) + sprintf(buf, "%s.tmpconfig.h", dir); + if (rename(buf, name)) return 1; name = getenv("KCONFIG_TRISTATE"); if (!name) name = "include/config/tristate.conf"; - if (rename(".tmpconfig_tristate", name)) + sprintf(buf, "%s.tmpconfig_tristate", dir); + if (rename(buf, name)) return 1; name = conf_get_autoconfig_name(); /* * This must be the last step, kbuild has a dependency on auto.conf * and this marks the successful completion of the previous steps. */ - if (rename(".tmpconfig", name)) + sprintf(buf, "%s.tmpconfig", dir); + if (rename(buf, name)) return 1; return 0; Index: kconfig/util.c =================================================================== --- kconfig.orig/util.c +++ kconfig/util.c @@ -34,6 +34,8 @@ struct file *file_lookup(const char *nam /* write a dependency file as used by kbuild to track dependencies */ int file_write_dep(const char *name) { + char *str; + char buf[PATH_MAX+1], buf2[PATH_MAX+1], dir[PATH_MAX+1]; struct symbol *sym, *env_sym; struct expr *e; struct file *file; @@ -41,7 +43,16 @@ int file_write_dep(const char *name) if (!name) name = ".kconfig.d"; - out = fopen("..config.tmp", "w"); + + strcpy(dir, conf_get_configname()); + str = strrchr(dir, '/'); + if (str) + str[1] = 0; + else + dir[0] = 0; + + sprintf(buf, "%s..config.tmp", dir); + out = fopen(buf, "w"); if (!out) return 1; fprintf(out, "deps_config := \\\n"); @@ -72,7 +83,8 @@ int file_write_dep(const char *name) fprintf(out, "\n$(deps_config): ;\n"); fclose(out); - rename("..config.tmp", name); + sprintf(buf2, "%s%s", dir, name); + rename(buf, buf2); return 0; } ================================================ FILE: support/kconfig/patches/16-fix-space-to-de-select-options.patch ================================================ commit 6faa447282fe90d42e0513af46c13f20b4b327d4 Author: Yann E. MORIN Date: Wed Nov 13 22:45:02 2013 +0100 support/kconfig: fix 'space' to (de)select options In case a menu has comment without letters/numbers (eg. characters matching the regexp '^[^[:alpha:][:digit:]]+$', for example - or *), hitting space will cycle through those comments, rather than selecting/deselecting the currently-highlighted option. This is the behaviour of hitting any letter/digit: jump to the next option which prompt starts with that letter. The only letters that do not behave as such are 'y' 'm' and 'n'. Prompts that start with one of those three letters are instead matched on the first letter that is not 'y', 'm' or 'n'. Fix that by treating 'space' as we treat y/m/n, ie. as an action key, not as shortcut to jump to prompt. Signed-off-by: "Yann E. MORIN" Cc: Thomas Petazzoni Cc: Peter Korsgaard Cc: Samuel Martin Cc: Thomas De Schampheleire --- Note: I'll be running this upstream soonish. Index: kconfig/lxdialog/menubox.c =================================================================== --- kconfig.orig/lxdialog/menubox.c +++ kconfig/lxdialog/menubox.c @@ -285,7 +285,7 @@ do_resize: if (key < 256 && isalpha(key)) key = tolower(key); - if (strchr("ynmh", key)) + if (strchr("ynmh ", key)) i = max_choice; else { for (i = choice + 1; i < max_choice; i++) { ================================================ FILE: support/kconfig/patches/17-backport-kecho.patch ================================================ This commit added kecho to scripts/Kbuild.include (and doc). Backported just Kbuild.include part to Makefile commit 5410ecc0def8955ab99810c5626cc7e156991896 Author: Mike Frysinger Date: Thu Nov 6 03:31:34 2008 -0500 kbuild: introduce $(kecho) convenience echo Index: kconfig/Makefile =================================================================== --- kconfig.orig/Makefile +++ kconfig/Makefile @@ -6,6 +6,12 @@ PHONY += xconfig gconfig menuconfig config syncconfig update-po-config \ localmodconfig localyesconfig +# Easy method for doing a status message + kecho := : + quiet_kecho := echo +silent_kecho := : +kecho := $($(quiet)kecho) + ifdef KBUILD_KCONFIG Kconfig := $(KBUILD_KCONFIG) else ================================================ FILE: support/kconfig/patches/18-merge-config.sh-create-temporary-files-in-tmp.patch ================================================ commit 0f56304521db42bd2c05867fd78a247104a4ad95 Author: Henrique Marks Date: Mon, 7 Dec 2015 12:08:45 -0200 merge_config.sh: create temporary files in /tmp Creating temporary files in /tmp (or the path pointed by $TMPDIR) allows the buildroot top directory to be read-only and shareable between multible builds. This follows what other scripts do, e.g. check-kernel-headers.sh. Signed-off-by: Henrique Marks Signed-off-by: Carlos Santos Signed-off-by: Peter Korsgaard Index: kconfig/merge_config.sh =================================================================== --- kconfig.orig/merge_config.sh +++ kconfig/merge_config.sh @@ -100,7 +100,7 @@ fi MERGE_LIST=$* SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(CONFIG_[a-zA-Z0-9_]*\)[= ].*/\2/p" -TMP_FILE=$(mktemp ./.tmp.config.XXXXXXXXXX) +TMP_FILE=$(mktemp -t .tmp.config.XXXXXXXXXX) echo "Using $INITFILE as base" cat $INITFILE > $TMP_FILE ================================================ FILE: support/kconfig/patches/19-merge_config.sh-add-br2-external-support.patch ================================================ commit 28fac3973b3c693c453594b007c08c1e1e5c4af3 Author: Ilya Kuzmich Date: Tue, 9 Jan 2018 14:37:43 +0300 merge_config.sh: add br2-external support Pass BR2_EXTERNAL value via -e option. This will prevent merge_config.sh from silently eating any symbols defined in external trees on a clean buildroot tree invocation. Signed-off-by: Ilya Kuzmich Acked-by: "Yann E. MORIN" Signed-off-by: Peter Korsgaard Index: kconfig/merge_config.sh =================================================================== --- kconfig.orig/merge_config.sh +++ kconfig/merge_config.sh @@ -33,6 +33,7 @@ usage() { echo " -n use allnoconfig instead of alldefconfig" echo " -r list redundant entries when merging fragments" echo " -O dir to put generated output files. Consider setting \$KCONFIG_CONFIG instead." + echo " -e colon-separated list of br2-external trees to use (optional)" } RUNMAKE=true @@ -71,6 +72,11 @@ while true; do shift 2 continue ;; + "-e") + EXTERNAL_ARG="BR2_EXTERNAL=$2" + shift 2 + continue + ;; *) break ;; @@ -151,7 +157,7 @@ fi # Use the merged file as the starting point for: # alldefconfig: Fills in any missing symbols with Kconfig default # allnoconfig: Fills in any missing symbols with # CONFIG_* is not set -make KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET +make KCONFIG_ALLCONFIG=$TMP_FILE $EXTERNAL_ARG $OUTPUT_ARG $ALLTARGET # Check all specified config values took (might have missed-dependency issues) ================================================ FILE: support/kconfig/patches/20-merge_config.sh-Allow-to-define-config-prefix.patch ================================================ Index: kconfig/merge_config.sh =================================================================== --- kconfig.orig/merge_config.sh +++ kconfig/merge_config.sh @@ -34,12 +34,16 @@ usage() { echo " -r list redundant entries when merging fragments" echo " -O dir to put generated output files. Consider setting \$KCONFIG_CONFIG instead." echo " -e colon-separated list of br2-external trees to use (optional)" + echo + echo "Used prefix: '$CONFIG_PREFIX'. You can redefine it with \$CONFIG_ + environment variable." } RUNMAKE=true ALLTARGET=alldefconfig WARNREDUN=false OUTPUT=. +CONFIG_PREFIX=${CONFIG_-CONFIG_} while true; do case $1 in @@ -105,7 +109,8 @@ if [ ! -r "$INITFILE" ]; then fi MERGE_LIST=$* -SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(CONFIG_[a-zA-Z0-9_]*\)[= ].*/\2/p" +SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(${CONFIG_PREFIX}[a-zA-Z0-9_]*\)[= ].*/\2/p" + TMP_FILE=$(mktemp -t .tmp.config.XXXXXXXXXX) echo "Using $INITFILE as base" ================================================ FILE: support/kconfig/patches/21-Avoid-false-positive-matches-from-comment-lines.patch ================================================ Index: kconfig/merge_config.sh =================================================================== --- kconfig.orig/merge_config.sh +++ kconfig/merge_config.sh @@ -109,7 +109,8 @@ if [ ! -r "$INITFILE" ]; then fi MERGE_LIST=$* -SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(${CONFIG_PREFIX}[a-zA-Z0-9_]*\)[= ].*/\2/p" +SED_CONFIG_EXP1="s/^\(${CONFIG_PREFIX}[a-zA-Z0-9_]*\)=.*/\1/p" +SED_CONFIG_EXP2="s/^# \(${CONFIG_PREFIX}[a-zA-Z0-9_]*\) is not set$/\1/p" TMP_FILE=$(mktemp -t .tmp.config.XXXXXXXXXX) @@ -123,7 +124,7 @@ for MERGE_FILE in $MERGE_LIST ; do echo "The merge file '$MERGE_FILE' does not exist. Exit." >&2 exit 1 fi - CFG_LIST=$(sed -n "$SED_CONFIG_EXP" $MERGE_FILE) + CFG_LIST=$(sed -n -e "$SED_CONFIG_EXP1" -e "$SED_CONFIG_EXP2" $MERGE_FILE) for CFG in $CFG_LIST ; do grep -q -w $CFG $TMP_FILE || continue @@ -166,7 +167,7 @@ make KCONFIG_ALLCONFIG=$TMP_FILE $EXTERN # Check all specified config values took (might have missed-dependency issues) -for CFG in $(sed -n "$SED_CONFIG_EXP" $TMP_FILE); do +for CFG in $(sed -n -e "$SED_CONFIG_EXP1" -e "$SED_CONFIG_EXP2" $TMP_FILE); do REQUESTED_VAL=$(grep -w -e "$CFG" $TMP_FILE) ACTUAL_VAL=$(grep -w -e "$CFG" "$KCONFIG_CONFIG") ================================================ FILE: support/kconfig/patches/series ================================================ 01-kconfig-kernel-to-buildroot.patch 06-br-build-system-integration.patch 10-br-build-system.patch 11-use-mktemp-for-lxdialog.patch 12-fix-glade-file-path.patch 14-support-out-of-tree-config.patch 16-fix-space-to-de-select-options.patch 17-backport-kecho.patch 18-merge-config.sh-create-temporary-files-in-tmp.patch 19-merge_config.sh-add-br2-external-support.patch 20-merge_config.sh-Allow-to-define-config-prefix.patch 21-Avoid-false-positive-matches-from-comment-lines.patch ================================================ FILE: support/kconfig/qconf.cc ================================================ /* * Copyright (C) 2002 Roman Zippel * Copyright (C) 2015 Boris Barbulovski * Released under the terms of the GNU GPL v2.0. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "lkc.h" #include "qconf.h" #include "qconf.moc" #include "images.c" #ifdef _ # undef _ # define _ qgettext #endif static QApplication *configApp; static ConfigSettings *configSettings; QAction *ConfigMainWindow::saveAction; static inline QString qgettext(const char* str) { return QString::fromLocal8Bit(gettext(str)); } static inline QString qgettext(const QString& str) { return QString::fromLocal8Bit(gettext(str.toLatin1())); } ConfigSettings::ConfigSettings() : QSettings("buildroot.org", "qconf") { } /** * Reads a list of integer values from the application settings. */ QList ConfigSettings::readSizes(const QString& key, bool *ok) { QList result; if (contains(key)) { QStringList entryList = value(key).toStringList(); QStringList::Iterator it; for (it = entryList.begin(); it != entryList.end(); ++it) result.push_back((*it).toInt()); *ok = true; } else *ok = false; return result; } /** * Writes a list of integer values to the application settings. */ bool ConfigSettings::writeSizes(const QString& key, const QList& value) { QStringList stringList; QList::ConstIterator it; for (it = value.begin(); it != value.end(); ++it) stringList.push_back(QString::number(*it)); setValue(key, stringList); return true; } /* * set the new data * TODO check the value */ void ConfigItem::okRename(int col) { } /* * update the displayed of a menu entry */ void ConfigItem::updateMenu(void) { ConfigList* list; struct symbol* sym; struct property *prop; QString prompt; int type; tristate expr; list = listView(); if (goParent) { setPixmap(promptColIdx, list->menuBackPix); prompt = ".."; goto set_prompt; } sym = menu->sym; prop = menu->prompt; prompt = _(menu_get_prompt(menu)); if (prop) switch (prop->type) { case P_MENU: if (list->mode == singleMode || list->mode == symbolMode) { /* a menuconfig entry is displayed differently * depending whether it's at the view root or a child. */ if (sym && list->rootEntry == menu) break; setPixmap(promptColIdx, list->menuPix); } else { if (sym) break; setPixmap(promptColIdx, QIcon()); } goto set_prompt; case P_COMMENT: setPixmap(promptColIdx, QIcon()); goto set_prompt; default: ; } if (!sym) goto set_prompt; setText(nameColIdx, QString::fromLocal8Bit(sym->name)); type = sym_get_type(sym); switch (type) { case S_BOOLEAN: case S_TRISTATE: char ch; if (!sym_is_changable(sym) && list->optMode == normalOpt) { setPixmap(promptColIdx, QIcon()); setText(noColIdx, QString::null); setText(modColIdx, QString::null); setText(yesColIdx, QString::null); break; } expr = sym_get_tristate_value(sym); switch (expr) { case yes: if (sym_is_choice_value(sym) && type == S_BOOLEAN) setPixmap(promptColIdx, list->choiceYesPix); else setPixmap(promptColIdx, list->symbolYesPix); setText(yesColIdx, "Y"); ch = 'Y'; break; case mod: setPixmap(promptColIdx, list->symbolModPix); setText(modColIdx, "M"); ch = 'M'; break; default: if (sym_is_choice_value(sym) && type == S_BOOLEAN) setPixmap(promptColIdx, list->choiceNoPix); else setPixmap(promptColIdx, list->symbolNoPix); setText(noColIdx, "N"); ch = 'N'; break; } if (expr != no) setText(noColIdx, sym_tristate_within_range(sym, no) ? "_" : 0); if (expr != mod) setText(modColIdx, sym_tristate_within_range(sym, mod) ? "_" : 0); if (expr != yes) setText(yesColIdx, sym_tristate_within_range(sym, yes) ? "_" : 0); setText(dataColIdx, QChar(ch)); break; case S_INT: case S_HEX: case S_STRING: const char* data; data = sym_get_string_value(sym); setText(dataColIdx, data); if (type == S_STRING) prompt = QString("%1: %2").arg(prompt).arg(data); else prompt = QString("(%2) %1").arg(prompt).arg(data); break; } if (!sym_has_value(sym) && visible) prompt += _(" (NEW)"); set_prompt: setText(promptColIdx, prompt); } void ConfigItem::testUpdateMenu(bool v) { ConfigItem* i; visible = v; if (!menu) return; sym_calc_value(menu->sym); if (menu->flags & MENU_CHANGED) { /* the menu entry changed, so update all list items */ menu->flags &= ~MENU_CHANGED; for (i = (ConfigItem*)menu->data; i; i = i->nextItem) i->updateMenu(); } else if (listView()->updateAll) updateMenu(); } /* * construct a menu entry */ void ConfigItem::init(void) { if (menu) { ConfigList* list = listView(); nextItem = (ConfigItem*)menu->data; menu->data = this; if (list->mode != fullMode) setExpanded(true); sym_calc_value(menu->sym); } updateMenu(); } /* * destruct a menu entry */ ConfigItem::~ConfigItem(void) { if (menu) { ConfigItem** ip = (ConfigItem**)&menu->data; for (; *ip; ip = &(*ip)->nextItem) { if (*ip == this) { *ip = nextItem; break; } } } } ConfigLineEdit::ConfigLineEdit(ConfigView* parent) : Parent(parent) { connect(this, SIGNAL(editingFinished()), SLOT(hide())); } void ConfigLineEdit::show(ConfigItem* i) { item = i; if (sym_get_string_value(item->menu->sym)) setText(QString::fromLocal8Bit(sym_get_string_value(item->menu->sym))); else setText(QString::null); Parent::show(); setFocus(); } void ConfigLineEdit::keyPressEvent(QKeyEvent* e) { switch (e->key()) { case Qt::Key_Escape: break; case Qt::Key_Return: case Qt::Key_Enter: sym_set_string_value(item->menu->sym, text().toLatin1()); parent()->updateList(item); break; default: Parent::keyPressEvent(e); return; } e->accept(); parent()->list->setFocus(); hide(); } ConfigList::ConfigList(ConfigView* p, const char *name) : Parent(p), updateAll(false), symbolYesPix(xpm_symbol_yes), symbolModPix(xpm_symbol_mod), symbolNoPix(xpm_symbol_no), choiceYesPix(xpm_choice_yes), choiceNoPix(xpm_choice_no), menuPix(xpm_menu), menuInvPix(xpm_menu_inv), menuBackPix(xpm_menuback), voidPix(xpm_void), showName(false), showRange(false), showData(false), mode(singleMode), optMode(normalOpt), rootEntry(0), headerPopup(0) { int i; setObjectName(name); setSortingEnabled(false); setRootIsDecorated(true); setVerticalScrollMode(ScrollPerPixel); setHorizontalScrollMode(ScrollPerPixel); setHeaderLabels(QStringList() << _("Option") << _("Name") << "N" << "M" << "Y" << _("Value")); connect(this, SIGNAL(itemSelectionChanged(void)), SLOT(updateSelection(void))); if (name) { configSettings->beginGroup(name); showName = configSettings->value("/showName", false).toBool(); showRange = configSettings->value("/showRange", false).toBool(); showData = configSettings->value("/showData", false).toBool(); optMode = (enum optionMode)configSettings->value("/optionMode", 0).toInt(); configSettings->endGroup(); connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings())); } addColumn(promptColIdx); reinit(); } bool ConfigList::menuSkip(struct menu *menu) { if (optMode == normalOpt && menu_is_visible(menu)) return false; if (optMode == promptOpt && menu_has_prompt(menu)) return false; if (optMode == allOpt) return false; return true; } void ConfigList::reinit(void) { removeColumn(dataColIdx); removeColumn(yesColIdx); removeColumn(modColIdx); removeColumn(noColIdx); removeColumn(nameColIdx); if (showName) addColumn(nameColIdx); if (showRange) { addColumn(noColIdx); addColumn(modColIdx); addColumn(yesColIdx); } if (showData) addColumn(dataColIdx); updateListAll(); } void ConfigList::saveSettings(void) { if (!objectName().isEmpty()) { configSettings->beginGroup(objectName()); configSettings->setValue("/showName", showName); configSettings->setValue("/showRange", showRange); configSettings->setValue("/showData", showData); configSettings->setValue("/optionMode", (int)optMode); configSettings->endGroup(); } } ConfigItem* ConfigList::findConfigItem(struct menu *menu) { ConfigItem* item = (ConfigItem*)menu->data; for (; item; item = item->nextItem) { if (this == item->listView()) break; } return item; } void ConfigList::updateSelection(void) { struct menu *menu; enum prop_type type; if (selectedItems().count() == 0) return; ConfigItem* item = (ConfigItem*)selectedItems().first(); if (!item) return; menu = item->menu; emit menuChanged(menu); if (!menu) return; type = menu->prompt ? menu->prompt->type : P_UNKNOWN; if (mode == menuMode && type == P_MENU) emit menuSelected(menu); } void ConfigList::updateList(ConfigItem* item) { ConfigItem* last = 0; if (!rootEntry) { if (mode != listMode) goto update; QTreeWidgetItemIterator it(this); ConfigItem* item; while (*it) { item = (ConfigItem*)(*it); if (!item->menu) continue; item->testUpdateMenu(menu_is_visible(item->menu)); ++it; } return; } if (rootEntry != &rootmenu && (mode == singleMode || (mode == symbolMode && rootEntry->parent != &rootmenu))) { item = (ConfigItem *)topLevelItem(0); if (!item) item = new ConfigItem(this, 0, true); last = item; } if ((mode == singleMode || (mode == symbolMode && !(rootEntry->flags & MENU_ROOT))) && rootEntry->sym && rootEntry->prompt) { item = last ? last->nextSibling() : firstChild(); if (!item) item = new ConfigItem(this, last, rootEntry, true); else item->testUpdateMenu(true); updateMenuList(item, rootEntry); update(); resizeColumnToContents(0); return; } update: updateMenuList(this, rootEntry); update(); resizeColumnToContents(0); } void ConfigList::setValue(ConfigItem* item, tristate val) { struct symbol* sym; int type; tristate oldval; sym = item->menu ? item->menu->sym : 0; if (!sym) return; type = sym_get_type(sym); switch (type) { case S_BOOLEAN: case S_TRISTATE: oldval = sym_get_tristate_value(sym); if (!sym_set_tristate_value(sym, val)) return; if (oldval == no && item->menu->list) item->setExpanded(true); parent()->updateList(item); break; } } void ConfigList::changeValue(ConfigItem* item) { struct symbol* sym; struct menu* menu; int type, oldexpr, newexpr; menu = item->menu; if (!menu) return; sym = menu->sym; if (!sym) { if (item->menu->list) item->setExpanded(!item->isExpanded()); return; } type = sym_get_type(sym); switch (type) { case S_BOOLEAN: case S_TRISTATE: oldexpr = sym_get_tristate_value(sym); newexpr = sym_toggle_tristate_value(sym); if (item->menu->list) { if (oldexpr == newexpr) item->setExpanded(!item->isExpanded()); else if (oldexpr == no) item->setExpanded(true); } if (oldexpr != newexpr) parent()->updateList(item); break; case S_INT: case S_HEX: case S_STRING: parent()->lineEdit->show(item); break; } } void ConfigList::setRootMenu(struct menu *menu) { enum prop_type type; if (rootEntry == menu) return; type = menu && menu->prompt ? menu->prompt->type : P_UNKNOWN; if (type != P_MENU) return; updateMenuList(this, 0); rootEntry = menu; updateListAll(); if (currentItem()) { currentItem()->setSelected(hasFocus()); scrollToItem(currentItem()); } } void ConfigList::setParentMenu(void) { ConfigItem* item; struct menu *oldroot; oldroot = rootEntry; if (rootEntry == &rootmenu) return; setRootMenu(menu_get_parent_menu(rootEntry->parent)); QTreeWidgetItemIterator it(this); while (*it) { item = (ConfigItem *)(*it); if (item->menu == oldroot) { setCurrentItem(item); scrollToItem(item); break; } ++it; } } /* * update all the children of a menu entry * removes/adds the entries from the parent widget as necessary * * parent: either the menu list widget or a menu entry widget * menu: entry to be updated */ void ConfigList::updateMenuList(ConfigItem *parent, struct menu* menu) { struct menu* child; ConfigItem* item; ConfigItem* last; bool visible; enum prop_type type; if (!menu) { while (parent->childCount() > 0) { delete parent->takeChild(0); } return; } last = parent->firstChild(); if (last && !last->goParent) last = 0; for (child = menu->list; child; child = child->next) { item = last ? last->nextSibling() : parent->firstChild(); type = child->prompt ? child->prompt->type : P_UNKNOWN; switch (mode) { case menuMode: if (!(child->flags & MENU_ROOT)) goto hide; break; case symbolMode: if (child->flags & MENU_ROOT) goto hide; break; default: break; } visible = menu_is_visible(child); if (!menuSkip(child)) { if (!child->sym && !child->list && !child->prompt) continue; if (!item || item->menu != child) item = new ConfigItem(parent, last, child, visible); else item->testUpdateMenu(visible); if (mode == fullMode || mode == menuMode || type != P_MENU) updateMenuList(item, child); else updateMenuList(item, 0); last = item; continue; } hide: if (item && item->menu == child) { last = parent->firstChild(); if (last == item) last = 0; else while (last->nextSibling() != item) last = last->nextSibling(); delete item; } } } void ConfigList::updateMenuList(ConfigList *parent, struct menu* menu) { struct menu* child; ConfigItem* item; ConfigItem* last; bool visible; enum prop_type type; if (!menu) { while (parent->topLevelItemCount() > 0) { delete parent->takeTopLevelItem(0); } return; } last = (ConfigItem*)parent->topLevelItem(0); if (last && !last->goParent) last = 0; for (child = menu->list; child; child = child->next) { item = last ? last->nextSibling() : (ConfigItem*)parent->topLevelItem(0); type = child->prompt ? child->prompt->type : P_UNKNOWN; switch (mode) { case menuMode: if (!(child->flags & MENU_ROOT)) goto hide; break; case symbolMode: if (child->flags & MENU_ROOT) goto hide; break; default: break; } visible = menu_is_visible(child); if (!menuSkip(child)) { if (!child->sym && !child->list && !child->prompt) continue; if (!item || item->menu != child) item = new ConfigItem(parent, last, child, visible); else item->testUpdateMenu(visible); if (mode == fullMode || mode == menuMode || type != P_MENU) updateMenuList(item, child); else updateMenuList(item, 0); last = item; continue; } hide: if (item && item->menu == child) { last = (ConfigItem*)parent->topLevelItem(0); if (last == item) last = 0; else while (last->nextSibling() != item) last = last->nextSibling(); delete item; } } } void ConfigList::keyPressEvent(QKeyEvent* ev) { QTreeWidgetItem* i = currentItem(); ConfigItem* item; struct menu *menu; enum prop_type type; if (ev->key() == Qt::Key_Escape && mode != fullMode && mode != listMode) { emit parentSelected(); ev->accept(); return; } if (!i) { Parent::keyPressEvent(ev); return; } item = (ConfigItem*)i; switch (ev->key()) { case Qt::Key_Return: case Qt::Key_Enter: if (item->goParent) { emit parentSelected(); break; } menu = item->menu; if (!menu) break; type = menu->prompt ? menu->prompt->type : P_UNKNOWN; if (type == P_MENU && rootEntry != menu && mode != fullMode && mode != menuMode) { emit menuSelected(menu); break; } case Qt::Key_Space: changeValue(item); break; case Qt::Key_N: setValue(item, no); break; case Qt::Key_M: setValue(item, mod); break; case Qt::Key_Y: setValue(item, yes); break; default: Parent::keyPressEvent(ev); return; } ev->accept(); } void ConfigList::mousePressEvent(QMouseEvent* e) { //QPoint p(contentsToViewport(e->pos())); //printf("contentsMousePressEvent: %d,%d\n", p.x(), p.y()); Parent::mousePressEvent(e); } void ConfigList::mouseReleaseEvent(QMouseEvent* e) { QPoint p = e->pos(); ConfigItem* item = (ConfigItem*)itemAt(p); struct menu *menu; enum prop_type ptype; QIcon icon; int idx, x; if (!item) goto skip; menu = item->menu; x = header()->offset() + p.x(); idx = header()->logicalIndexAt(x); switch (idx) { case promptColIdx: icon = item->pixmap(promptColIdx); if (!icon.isNull()) { int off = header()->sectionPosition(0) + visualRect(indexAt(p)).x() + 4; // 4 is Hardcoded image offset. There might be a way to do it properly. if (x >= off && x < off + icon.availableSizes().first().width()) { if (item->goParent) { emit parentSelected(); break; } else if (!menu) break; ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN; if (ptype == P_MENU && rootEntry != menu && mode != fullMode && mode != menuMode) emit menuSelected(menu); else changeValue(item); } } break; case noColIdx: setValue(item, no); break; case modColIdx: setValue(item, mod); break; case yesColIdx: setValue(item, yes); break; case dataColIdx: changeValue(item); break; } skip: //printf("contentsMouseReleaseEvent: %d,%d\n", p.x(), p.y()); Parent::mouseReleaseEvent(e); } void ConfigList::mouseMoveEvent(QMouseEvent* e) { //QPoint p(contentsToViewport(e->pos())); //printf("contentsMouseMoveEvent: %d,%d\n", p.x(), p.y()); Parent::mouseMoveEvent(e); } void ConfigList::mouseDoubleClickEvent(QMouseEvent* e) { QPoint p = e->pos(); // TODO: Check if this works(was contentsToViewport). ConfigItem* item = (ConfigItem*)itemAt(p); struct menu *menu; enum prop_type ptype; if (!item) goto skip; if (item->goParent) { emit parentSelected(); goto skip; } menu = item->menu; if (!menu) goto skip; ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN; if (ptype == P_MENU && (mode == singleMode || mode == symbolMode)) emit menuSelected(menu); else if (menu->sym) changeValue(item); skip: //printf("contentsMouseDoubleClickEvent: %d,%d\n", p.x(), p.y()); Parent::mouseDoubleClickEvent(e); } void ConfigList::focusInEvent(QFocusEvent *e) { struct menu *menu = NULL; Parent::focusInEvent(e); ConfigItem* item = (ConfigItem *)currentItem(); if (item) { item->setSelected(true); menu = item->menu; } emit gotFocus(menu); } void ConfigList::contextMenuEvent(QContextMenuEvent *e) { if (e->y() <= header()->geometry().bottom()) { if (!headerPopup) { QAction *action; headerPopup = new QMenu(this); action = new QAction(_("Show Name"), this); action->setCheckable(true); connect(action, SIGNAL(toggled(bool)), parent(), SLOT(setShowName(bool))); connect(parent(), SIGNAL(showNameChanged(bool)), action, SLOT(setOn(bool))); action->setChecked(showName); headerPopup->addAction(action); action = new QAction(_("Show Range"), this); action->setCheckable(true); connect(action, SIGNAL(toggled(bool)), parent(), SLOT(setShowRange(bool))); connect(parent(), SIGNAL(showRangeChanged(bool)), action, SLOT(setOn(bool))); action->setChecked(showRange); headerPopup->addAction(action); action = new QAction(_("Show Data"), this); action->setCheckable(true); connect(action, SIGNAL(toggled(bool)), parent(), SLOT(setShowData(bool))); connect(parent(), SIGNAL(showDataChanged(bool)), action, SLOT(setOn(bool))); action->setChecked(showData); headerPopup->addAction(action); } headerPopup->exec(e->globalPos()); e->accept(); } else e->ignore(); } ConfigView*ConfigView::viewList; QAction *ConfigView::showNormalAction; QAction *ConfigView::showAllAction; QAction *ConfigView::showPromptAction; ConfigView::ConfigView(QWidget* parent, const char *name) : Parent(parent) { setObjectName(name); QVBoxLayout *verticalLayout = new QVBoxLayout(this); verticalLayout->setContentsMargins(0, 0, 0, 0); list = new ConfigList(this); verticalLayout->addWidget(list); lineEdit = new ConfigLineEdit(this); lineEdit->hide(); verticalLayout->addWidget(lineEdit); this->nextView = viewList; viewList = this; } ConfigView::~ConfigView(void) { ConfigView** vp; for (vp = &viewList; *vp; vp = &(*vp)->nextView) { if (*vp == this) { *vp = nextView; break; } } } void ConfigView::setOptionMode(QAction *act) { if (act == showNormalAction) list->optMode = normalOpt; else if (act == showAllAction) list->optMode = allOpt; else list->optMode = promptOpt; list->updateListAll(); } void ConfigView::setShowName(bool b) { if (list->showName != b) { list->showName = b; list->reinit(); emit showNameChanged(b); } } void ConfigView::setShowRange(bool b) { if (list->showRange != b) { list->showRange = b; list->reinit(); emit showRangeChanged(b); } } void ConfigView::setShowData(bool b) { if (list->showData != b) { list->showData = b; list->reinit(); emit showDataChanged(b); } } void ConfigList::setAllOpen(bool open) { QTreeWidgetItemIterator it(this); while (*it) { (*it)->setExpanded(open); ++it; } } void ConfigView::updateList(ConfigItem* item) { ConfigView* v; for (v = viewList; v; v = v->nextView) v->list->updateList(item); } void ConfigView::updateListAll(void) { ConfigView* v; for (v = viewList; v; v = v->nextView) v->list->updateListAll(); } ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name) : Parent(parent), sym(0), _menu(0) { setObjectName(name); if (!objectName().isEmpty()) { configSettings->beginGroup(objectName()); setShowDebug(configSettings->value("/showDebug", false).toBool()); configSettings->endGroup(); connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings())); } } void ConfigInfoView::saveSettings(void) { if (!objectName().isEmpty()) { configSettings->beginGroup(objectName()); configSettings->setValue("/showDebug", showDebug()); configSettings->endGroup(); } } void ConfigInfoView::setShowDebug(bool b) { if (_showDebug != b) { _showDebug = b; if (_menu) menuInfo(); else if (sym) symbolInfo(); emit showDebugChanged(b); } } void ConfigInfoView::setInfo(struct menu *m) { if (_menu == m) return; _menu = m; sym = NULL; if (!_menu) clear(); else menuInfo(); } void ConfigInfoView::symbolInfo(void) { QString str; str += "Symbol: "; str += print_filter(sym->name); str += "

    value: "; str += print_filter(sym_get_string_value(sym)); str += "
    visibility: "; str += sym->visible == yes ? "y" : sym->visible == mod ? "m" : "n"; str += "
    "; str += debug_info(sym); setText(str); } void ConfigInfoView::menuInfo(void) { struct symbol* sym; QString head, debug, help; sym = _menu->sym; if (sym) { if (_menu->prompt) { head += ""; head += print_filter(_(_menu->prompt->text)); head += ""; if (sym->name) { head += " ("; if (showDebug()) head += QString().sprintf("", sym); head += print_filter(sym->name); if (showDebug()) head += ""; head += ")"; } } else if (sym->name) { head += ""; if (showDebug()) head += QString().sprintf("", sym); head += print_filter(sym->name); if (showDebug()) head += ""; head += ""; } head += "

    "; if (showDebug()) debug = debug_info(sym); struct gstr help_gstr = str_new(); menu_get_ext_help(_menu, &help_gstr); help = print_filter(str_get(&help_gstr)); str_free(&help_gstr); } else if (_menu->prompt) { head += ""; head += print_filter(_(_menu->prompt->text)); head += "

    "; if (showDebug()) { if (_menu->prompt->visible.expr) { debug += "  dep: "; expr_print(_menu->prompt->visible.expr, expr_print_help, &debug, E_NONE); debug += "

    "; } } } if (showDebug()) debug += QString().sprintf("defined at %s:%d

    ", _menu->file->name, _menu->lineno); setText(head + debug + help); } QString ConfigInfoView::debug_info(struct symbol *sym) { QString debug; debug += "type: "; debug += print_filter(sym_type_name(sym->type)); if (sym_is_choice(sym)) debug += " (choice)"; debug += "
    "; if (sym->rev_dep.expr) { debug += "reverse dep: "; expr_print(sym->rev_dep.expr, expr_print_help, &debug, E_NONE); debug += "
    "; } for (struct property *prop = sym->prop; prop; prop = prop->next) { switch (prop->type) { case P_PROMPT: case P_MENU: debug += QString().sprintf("prompt: ", prop->menu); debug += print_filter(_(prop->text)); debug += "
    "; break; case P_DEFAULT: case P_SELECT: case P_RANGE: case P_ENV: debug += prop_get_type_name(prop->type); debug += ": "; expr_print(prop->expr, expr_print_help, &debug, E_NONE); debug += "
    "; break; case P_CHOICE: if (sym_is_choice(sym)) { debug += "choice: "; expr_print(prop->expr, expr_print_help, &debug, E_NONE); debug += "
    "; } break; default: debug += "unknown property: "; debug += prop_get_type_name(prop->type); debug += "
    "; } if (prop->visible.expr) { debug += "    dep: "; expr_print(prop->visible.expr, expr_print_help, &debug, E_NONE); debug += "
    "; } } debug += "
    "; return debug; } QString ConfigInfoView::print_filter(const QString &str) { QRegExp re("[<>&\"\\n]"); QString res = str; for (int i = 0; (i = res.indexOf(re, i)) >= 0;) { switch (res[i].toLatin1()) { case '<': res.replace(i, 1, "<"); i += 4; break; case '>': res.replace(i, 1, ">"); i += 4; break; case '&': res.replace(i, 1, "&"); i += 5; break; case '"': res.replace(i, 1, """); i += 6; break; case '\n': res.replace(i, 1, "
    "); i += 4; break; } } return res; } void ConfigInfoView::expr_print_help(void *data, struct symbol *sym, const char *str) { QString* text = reinterpret_cast(data); QString str2 = print_filter(str); if (sym && sym->name && !(sym->flags & SYMBOL_CONST)) { *text += QString().sprintf("", sym); *text += str2; *text += ""; } else *text += str2; } QMenu* ConfigInfoView::createStandardContextMenu(const QPoint & pos) { QMenu* popup = Parent::createStandardContextMenu(pos); QAction* action = new QAction(_("Show Debug Info"), popup); action->setCheckable(true); connect(action, SIGNAL(toggled(bool)), SLOT(setShowDebug(bool))); connect(this, SIGNAL(showDebugChanged(bool)), action, SLOT(setOn(bool))); action->setChecked(showDebug()); popup->addSeparator(); popup->addAction(action); return popup; } void ConfigInfoView::contextMenuEvent(QContextMenuEvent *e) { Parent::contextMenuEvent(e); } ConfigSearchWindow::ConfigSearchWindow(ConfigMainWindow* parent, const char *name) : Parent(parent), result(NULL) { setObjectName(name); setWindowTitle("Search Config"); QVBoxLayout* layout1 = new QVBoxLayout(this); layout1->setContentsMargins(11, 11, 11, 11); layout1->setSpacing(6); QHBoxLayout* layout2 = new QHBoxLayout(0); layout2->setContentsMargins(0, 0, 0, 0); layout2->setSpacing(6); layout2->addWidget(new QLabel(_("Find:"), this)); editField = new QLineEdit(this); connect(editField, SIGNAL(returnPressed()), SLOT(search())); layout2->addWidget(editField); searchButton = new QPushButton(_("Search"), this); searchButton->setAutoDefault(false); connect(searchButton, SIGNAL(clicked()), SLOT(search())); layout2->addWidget(searchButton); layout1->addLayout(layout2); split = new QSplitter(this); split->setOrientation(Qt::Vertical); list = new ConfigView(split, name); list->list->mode = listMode; info = new ConfigInfoView(split, name); connect(list->list, SIGNAL(menuChanged(struct menu *)), info, SLOT(setInfo(struct menu *))); connect(list->list, SIGNAL(menuChanged(struct menu *)), parent, SLOT(setMenuLink(struct menu *))); layout1->addWidget(split); if (name) { QVariant x, y; int width, height; bool ok; configSettings->beginGroup(name); width = configSettings->value("/window width", parent->width() / 2).toInt(); height = configSettings->value("/window height", parent->height() / 2).toInt(); resize(width, height); x = configSettings->value("/window x"); y = configSettings->value("/window y"); if ((x.isValid())&&(y.isValid())) move(x.toInt(), y.toInt()); QList sizes = configSettings->readSizes("/split", &ok); if (ok) split->setSizes(sizes); configSettings->endGroup(); connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings())); } } void ConfigSearchWindow::saveSettings(void) { if (!objectName().isEmpty()) { configSettings->beginGroup(objectName()); configSettings->setValue("/window x", pos().x()); configSettings->setValue("/window y", pos().y()); configSettings->setValue("/window width", size().width()); configSettings->setValue("/window height", size().height()); configSettings->writeSizes("/split", split->sizes()); configSettings->endGroup(); } } void ConfigSearchWindow::search(void) { struct symbol **p; struct property *prop; ConfigItem *lastItem = NULL; free(result); list->list->clear(); info->clear(); result = sym_re_search(editField->text().toLatin1()); if (!result) return; for (p = result; *p; p++) { for_all_prompts((*p), prop) lastItem = new ConfigItem(list->list, lastItem, prop->menu, menu_is_visible(prop->menu)); } } /* * Construct the complete config widget */ ConfigMainWindow::ConfigMainWindow(void) : searchWindow(0) { QMenuBar* menu; bool ok = true; QVariant x, y; int width, height; char title[256]; QDesktopWidget *d = configApp->desktop(); snprintf(title, sizeof(title), "%s%s", rootmenu.prompt->text, "" ); setWindowTitle(title); width = configSettings->value("/window width", d->width() - 64).toInt(); height = configSettings->value("/window height", d->height() - 64).toInt(); resize(width, height); x = configSettings->value("/window x"); y = configSettings->value("/window y"); if ((x.isValid())&&(y.isValid())) move(x.toInt(), y.toInt()); split1 = new QSplitter(this); split1->setOrientation(Qt::Horizontal); setCentralWidget(split1); menuView = new ConfigView(split1, "menu"); menuList = menuView->list; split2 = new QSplitter(split1); split2->setOrientation(Qt::Vertical); // create config tree configView = new ConfigView(split2, "config"); configList = configView->list; helpText = new ConfigInfoView(split2, "help"); setTabOrder(configList, helpText); configList->setFocus(); menu = menuBar(); toolBar = new QToolBar("Tools", this); addToolBar(toolBar); backAction = new QAction(QPixmap(xpm_back), _("Back"), this); connect(backAction, SIGNAL(triggered(bool)), SLOT(goBack())); backAction->setEnabled(false); QAction *quitAction = new QAction(_("&Quit"), this); quitAction->setShortcut(Qt::CTRL + Qt::Key_Q); connect(quitAction, SIGNAL(triggered(bool)), SLOT(close())); QAction *loadAction = new QAction(QPixmap(xpm_load), _("&Load"), this); loadAction->setShortcut(Qt::CTRL + Qt::Key_L); connect(loadAction, SIGNAL(triggered(bool)), SLOT(loadConfig())); saveAction = new QAction(QPixmap(xpm_save), _("&Save"), this); saveAction->setShortcut(Qt::CTRL + Qt::Key_S); connect(saveAction, SIGNAL(triggered(bool)), SLOT(saveConfig())); conf_set_changed_callback(conf_changed); // Set saveAction's initial state conf_changed(); QAction *saveAsAction = new QAction(_("Save &As..."), this); connect(saveAsAction, SIGNAL(triggered(bool)), SLOT(saveConfigAs())); QAction *searchAction = new QAction(_("&Find"), this); searchAction->setShortcut(Qt::CTRL + Qt::Key_F); connect(searchAction, SIGNAL(triggered(bool)), SLOT(searchConfig())); singleViewAction = new QAction(QPixmap(xpm_single_view), _("Single View"), this); singleViewAction->setCheckable(true); connect(singleViewAction, SIGNAL(triggered(bool)), SLOT(showSingleView())); splitViewAction = new QAction(QPixmap(xpm_split_view), _("Split View"), this); splitViewAction->setCheckable(true); connect(splitViewAction, SIGNAL(triggered(bool)), SLOT(showSplitView())); fullViewAction = new QAction(QPixmap(xpm_tree_view), _("Full View"), this); fullViewAction->setCheckable(true); connect(fullViewAction, SIGNAL(triggered(bool)), SLOT(showFullView())); QAction *showNameAction = new QAction(_("Show Name"), this); showNameAction->setCheckable(true); connect(showNameAction, SIGNAL(toggled(bool)), configView, SLOT(setShowName(bool))); showNameAction->setChecked(configView->showName()); QAction *showRangeAction = new QAction(_("Show Range"), this); showRangeAction->setCheckable(true); connect(showRangeAction, SIGNAL(toggled(bool)), configView, SLOT(setShowRange(bool))); QAction *showDataAction = new QAction(_("Show Data"), this); showDataAction->setCheckable(true); connect(showDataAction, SIGNAL(toggled(bool)), configView, SLOT(setShowData(bool))); QActionGroup *optGroup = new QActionGroup(this); optGroup->setExclusive(true); connect(optGroup, SIGNAL(triggered(QAction*)), configView, SLOT(setOptionMode(QAction *))); connect(optGroup, SIGNAL(triggered(QAction *)), menuView, SLOT(setOptionMode(QAction *))); configView->showNormalAction = new QAction(_("Show Normal Options"), optGroup); configView->showAllAction = new QAction(_("Show All Options"), optGroup); configView->showPromptAction = new QAction(_("Show Prompt Options"), optGroup); configView->showNormalAction->setCheckable(true); configView->showAllAction->setCheckable(true); configView->showPromptAction->setCheckable(true); QAction *showDebugAction = new QAction( _("Show Debug Info"), this); showDebugAction->setCheckable(true); connect(showDebugAction, SIGNAL(toggled(bool)), helpText, SLOT(setShowDebug(bool))); showDebugAction->setChecked(helpText->showDebug()); QAction *showIntroAction = new QAction( _("Introduction"), this); connect(showIntroAction, SIGNAL(triggered(bool)), SLOT(showIntro())); QAction *showAboutAction = new QAction( _("About"), this); connect(showAboutAction, SIGNAL(triggered(bool)), SLOT(showAbout())); // init tool bar toolBar->addAction(backAction); toolBar->addSeparator(); toolBar->addAction(loadAction); toolBar->addAction(saveAction); toolBar->addSeparator(); toolBar->addAction(singleViewAction); toolBar->addAction(splitViewAction); toolBar->addAction(fullViewAction); // create config menu QMenu* config = menu->addMenu(_("&File")); config->addAction(loadAction); config->addAction(saveAction); config->addAction(saveAsAction); config->addSeparator(); config->addAction(quitAction); // create edit menu QMenu* editMenu = menu->addMenu(_("&Edit")); editMenu->addAction(searchAction); // create options menu QMenu* optionMenu = menu->addMenu(_("&Option")); optionMenu->addAction(showNameAction); optionMenu->addAction(showRangeAction); optionMenu->addAction(showDataAction); optionMenu->addSeparator(); optionMenu->addActions(optGroup->actions()); optionMenu->addSeparator(); optionMenu->addAction(showDebugAction); // create help menu menu->addSeparator(); QMenu* helpMenu = menu->addMenu(_("&Help")); helpMenu->addAction(showIntroAction); helpMenu->addAction(showAboutAction); connect(configList, SIGNAL(menuChanged(struct menu *)), helpText, SLOT(setInfo(struct menu *))); connect(configList, SIGNAL(menuSelected(struct menu *)), SLOT(changeMenu(struct menu *))); connect(configList, SIGNAL(parentSelected()), SLOT(goBack())); connect(menuList, SIGNAL(menuChanged(struct menu *)), helpText, SLOT(setInfo(struct menu *))); connect(menuList, SIGNAL(menuSelected(struct menu *)), SLOT(changeMenu(struct menu *))); connect(configList, SIGNAL(gotFocus(struct menu *)), helpText, SLOT(setInfo(struct menu *))); connect(menuList, SIGNAL(gotFocus(struct menu *)), helpText, SLOT(setInfo(struct menu *))); connect(menuList, SIGNAL(gotFocus(struct menu *)), SLOT(listFocusChanged(void))); connect(helpText, SIGNAL(menuSelected(struct menu *)), SLOT(setMenuLink(struct menu *))); QString listMode = configSettings->value("/listMode", "symbol").toString(); if (listMode == "single") showSingleView(); else if (listMode == "full") showFullView(); else /*if (listMode == "split")*/ showSplitView(); // UI setup done, restore splitter positions QList sizes = configSettings->readSizes("/split1", &ok); if (ok) split1->setSizes(sizes); sizes = configSettings->readSizes("/split2", &ok); if (ok) split2->setSizes(sizes); } void ConfigMainWindow::loadConfig(void) { QString s = QFileDialog::getOpenFileName(this, "", conf_get_configname()); if (s.isNull()) return; if (conf_read(QFile::encodeName(s))) QMessageBox::information(this, "qconf", _("Unable to load configuration!")); ConfigView::updateListAll(); } bool ConfigMainWindow::saveConfig(void) { if (conf_write(NULL)) { QMessageBox::information(this, "qconf", _("Unable to save configuration!")); return false; } return true; } void ConfigMainWindow::saveConfigAs(void) { QString s = QFileDialog::getSaveFileName(this, "", conf_get_configname()); if (s.isNull()) return; saveConfig(); } void ConfigMainWindow::searchConfig(void) { if (!searchWindow) searchWindow = new ConfigSearchWindow(this, "search"); searchWindow->show(); } void ConfigMainWindow::changeMenu(struct menu *menu) { configList->setRootMenu(menu); if (configList->rootEntry->parent == &rootmenu) backAction->setEnabled(false); else backAction->setEnabled(true); } void ConfigMainWindow::setMenuLink(struct menu *menu) { struct menu *parent; ConfigList* list = NULL; ConfigItem* item; if (configList->menuSkip(menu)) return; switch (configList->mode) { case singleMode: list = configList; parent = menu_get_parent_menu(menu); if (!parent) return; list->setRootMenu(parent); break; case symbolMode: if (menu->flags & MENU_ROOT) { configList->setRootMenu(menu); configList->clearSelection(); list = menuList; } else { list = configList; parent = menu_get_parent_menu(menu->parent); if (!parent) return; item = menuList->findConfigItem(parent); if (item) { item->setSelected(true); menuList->scrollToItem(item); } list->setRootMenu(parent); } break; case fullMode: list = configList; break; default: break; } if (list) { item = list->findConfigItem(menu); if (item) { item->setSelected(true); list->scrollToItem(item); list->setFocus(); } } } void ConfigMainWindow::listFocusChanged(void) { if (menuList->mode == menuMode) configList->clearSelection(); } void ConfigMainWindow::goBack(void) { ConfigItem* item, *oldSelection; configList->setParentMenu(); if (configList->rootEntry == &rootmenu) backAction->setEnabled(false); if (menuList->selectedItems().count() == 0) return; item = (ConfigItem*)menuList->selectedItems().first(); oldSelection = item; while (item) { if (item->menu == configList->rootEntry) { oldSelection->setSelected(false); item->setSelected(true); break; } item = (ConfigItem*)item->parent(); } } void ConfigMainWindow::showSingleView(void) { singleViewAction->setEnabled(false); singleViewAction->setChecked(true); splitViewAction->setEnabled(true); splitViewAction->setChecked(false); fullViewAction->setEnabled(true); fullViewAction->setChecked(false); menuView->hide(); menuList->setRootMenu(0); configList->mode = singleMode; if (configList->rootEntry == &rootmenu) configList->updateListAll(); else configList->setRootMenu(&rootmenu); configList->setFocus(); } void ConfigMainWindow::showSplitView(void) { singleViewAction->setEnabled(true); singleViewAction->setChecked(false); splitViewAction->setEnabled(false); splitViewAction->setChecked(true); fullViewAction->setEnabled(true); fullViewAction->setChecked(false); configList->mode = symbolMode; if (configList->rootEntry == &rootmenu) configList->updateListAll(); else configList->setRootMenu(&rootmenu); configList->setAllOpen(true); configApp->processEvents(); menuList->mode = menuMode; menuList->setRootMenu(&rootmenu); menuList->setAllOpen(true); menuView->show(); menuList->setFocus(); } void ConfigMainWindow::showFullView(void) { singleViewAction->setEnabled(true); singleViewAction->setChecked(false); splitViewAction->setEnabled(true); splitViewAction->setChecked(false); fullViewAction->setEnabled(false); fullViewAction->setChecked(true); menuView->hide(); menuList->setRootMenu(0); configList->mode = fullMode; if (configList->rootEntry == &rootmenu) configList->updateListAll(); else configList->setRootMenu(&rootmenu); configList->setFocus(); } /* * ask for saving configuration before quitting * TODO ask only when something changed */ void ConfigMainWindow::closeEvent(QCloseEvent* e) { if (!conf_get_changed()) { e->accept(); return; } QMessageBox mb("qconf", _("Save configuration?"), QMessageBox::Warning, QMessageBox::Yes | QMessageBox::Default, QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape); mb.setButtonText(QMessageBox::Yes, _("&Save Changes")); mb.setButtonText(QMessageBox::No, _("&Discard Changes")); mb.setButtonText(QMessageBox::Cancel, _("Cancel Exit")); switch (mb.exec()) { case QMessageBox::Yes: if (saveConfig()) e->accept(); else e->ignore(); break; case QMessageBox::No: e->accept(); break; case QMessageBox::Cancel: e->ignore(); break; } } void ConfigMainWindow::showIntro(void) { static const QString str = _("Welcome to the qconf graphical configuration tool.\n\n" "For each option, a blank box indicates the feature is disabled, a check\n" "indicates it is enabled, and a dot indicates that it is to be compiled\n" "as a module. Clicking on the box will cycle through the three states.\n\n" "If you do not see an option (e.g., a device driver) that you believe\n" "should be present, try turning on Show All Options under the Options menu.\n" "Although there is no cross reference yet to help you figure out what other\n" "options must be enabled to support the option you are interested in, you can\n" "still view the help of a grayed-out option.\n\n" "Toggling Show Debug Info under the Options menu will show the dependencies,\n" "which you can then match by examining other options.\n\n"); QMessageBox::information(this, "qconf", str); } void ConfigMainWindow::showAbout(void) { static const QString str = _("qconf is Copyright (C) 2002 Roman Zippel .\n" "Copyright (C) 2015 Boris Barbulovski .\n\n" "Bug reports and feature request can also be entered at http://bugzilla.kernel.org/\n"); QMessageBox::information(this, "qconf", str); } void ConfigMainWindow::saveSettings(void) { configSettings->setValue("/window x", pos().x()); configSettings->setValue("/window y", pos().y()); configSettings->setValue("/window width", size().width()); configSettings->setValue("/window height", size().height()); QString entry; switch(configList->mode) { case singleMode : entry = "single"; break; case symbolMode : entry = "split"; break; case fullMode : entry = "full"; break; default: break; } configSettings->setValue("/listMode", entry); configSettings->writeSizes("/split1", split1->sizes()); configSettings->writeSizes("/split2", split2->sizes()); } void ConfigMainWindow::conf_changed(void) { if (saveAction) saveAction->setEnabled(conf_get_changed()); } void fixup_rootmenu(struct menu *menu) { struct menu *child; static int menu_cnt = 0; menu->flags |= MENU_ROOT; for (child = menu->list; child; child = child->next) { if (child->prompt && child->prompt->type == P_MENU) { menu_cnt++; fixup_rootmenu(child); menu_cnt--; } else if (!menu_cnt) fixup_rootmenu(child); } } static const char *progname; static void usage(void) { printf(_("%s [-s] \n").toLatin1().constData(), progname); exit(0); } int main(int ac, char** av) { ConfigMainWindow* v; const char *name; bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); progname = av[0]; configApp = new QApplication(ac, av); if (ac > 1 && av[1][0] == '-') { switch (av[1][1]) { case 's': conf_set_message_callback(NULL); break; case 'h': case '?': usage(); } name = av[2]; } else name = av[1]; if (!name) usage(); conf_parse(name); fixup_rootmenu(&rootmenu); conf_read(NULL); //zconfdump(stdout); configSettings = new ConfigSettings(); configSettings->beginGroup("/kconfig/qconf"); v = new ConfigMainWindow(); //zconfdump(stdout); configApp->connect(configApp, SIGNAL(lastWindowClosed()), SLOT(quit())); configApp->connect(configApp, SIGNAL(aboutToQuit()), v, SLOT(saveSettings())); v->show(); configApp->exec(); configSettings->endGroup(); delete configSettings; delete v; delete configApp; return 0; } ================================================ FILE: support/kconfig/qconf.h ================================================ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ #include #include #include #include #include #include #include #include #include #include #include #include "expr.h" class ConfigView; class ConfigList; class ConfigItem; class ConfigLineEdit; class ConfigMainWindow; class ConfigSettings : public QSettings { public: ConfigSettings(); QList readSizes(const QString& key, bool *ok); bool writeSizes(const QString& key, const QList& value); }; enum colIdx { promptColIdx, nameColIdx, noColIdx, modColIdx, yesColIdx, dataColIdx, colNr }; enum listMode { singleMode, menuMode, symbolMode, fullMode, listMode }; enum optionMode { normalOpt = 0, allOpt, promptOpt }; class ConfigList : public QTreeWidget { Q_OBJECT typedef class QTreeWidget Parent; public: ConfigList(ConfigView* p, const char *name = 0); void reinit(void); ConfigView* parent(void) const { return (ConfigView*)Parent::parent(); } ConfigItem* findConfigItem(struct menu *); protected: void keyPressEvent(QKeyEvent *e); void mousePressEvent(QMouseEvent *e); void mouseReleaseEvent(QMouseEvent *e); void mouseMoveEvent(QMouseEvent *e); void mouseDoubleClickEvent(QMouseEvent *e); void focusInEvent(QFocusEvent *e); void contextMenuEvent(QContextMenuEvent *e); public slots: void setRootMenu(struct menu *menu); void updateList(ConfigItem *item); void setValue(ConfigItem* item, tristate val); void changeValue(ConfigItem* item); void updateSelection(void); void saveSettings(void); signals: void menuChanged(struct menu *menu); void menuSelected(struct menu *menu); void parentSelected(void); void gotFocus(struct menu *); public: void updateListAll(void) { updateAll = true; updateList(NULL); updateAll = false; } ConfigList* listView() { return this; } ConfigItem* firstChild() const { return (ConfigItem *)children().first(); } void addColumn(colIdx idx) { showColumn(idx); } void removeColumn(colIdx idx) { hideColumn(idx); } void setAllOpen(bool open); void setParentMenu(void); bool menuSkip(struct menu *); void updateMenuList(ConfigItem *parent, struct menu*); void updateMenuList(ConfigList *parent, struct menu*); bool updateAll; QPixmap symbolYesPix, symbolModPix, symbolNoPix; QPixmap choiceYesPix, choiceNoPix; QPixmap menuPix, menuInvPix, menuBackPix, voidPix; bool showName, showRange, showData; enum listMode mode; enum optionMode optMode; struct menu *rootEntry; QPalette disabledColorGroup; QPalette inactivedColorGroup; QMenu* headerPopup; }; class ConfigItem : public QTreeWidgetItem { typedef class QTreeWidgetItem Parent; public: ConfigItem(ConfigList *parent, ConfigItem *after, struct menu *m, bool v) : Parent(parent, after), nextItem(0), menu(m), visible(v), goParent(false) { init(); } ConfigItem(ConfigItem *parent, ConfigItem *after, struct menu *m, bool v) : Parent(parent, after), nextItem(0), menu(m), visible(v), goParent(false) { init(); } ConfigItem(ConfigList *parent, ConfigItem *after, bool v) : Parent(parent, after), nextItem(0), menu(0), visible(v), goParent(true) { init(); } ~ConfigItem(void); void init(void); void okRename(int col); void updateMenu(void); void testUpdateMenu(bool v); ConfigList* listView() const { return (ConfigList*)Parent::treeWidget(); } ConfigItem* firstChild() const { return (ConfigItem *)Parent::child(0); } ConfigItem* nextSibling() { ConfigItem *ret = NULL; ConfigItem *_parent = (ConfigItem *)parent(); if(_parent) { ret = (ConfigItem *)_parent->child(_parent->indexOfChild(this)+1); } else { QTreeWidget *_treeWidget = treeWidget(); ret = (ConfigItem *)_treeWidget->topLevelItem(_treeWidget->indexOfTopLevelItem(this)+1); } return ret; } void setText(colIdx idx, const QString& text) { Parent::setText(idx, text); } QString text(colIdx idx) const { return Parent::text(idx); } void setPixmap(colIdx idx, const QIcon &icon) { Parent::setIcon(idx, icon); } const QIcon pixmap(colIdx idx) const { return icon(idx); } // TODO: Implement paintCell ConfigItem* nextItem; struct menu *menu; bool visible; bool goParent; }; class ConfigLineEdit : public QLineEdit { Q_OBJECT typedef class QLineEdit Parent; public: ConfigLineEdit(ConfigView* parent); ConfigView* parent(void) const { return (ConfigView*)Parent::parent(); } void show(ConfigItem *i); void keyPressEvent(QKeyEvent *e); public: ConfigItem *item; }; class ConfigView : public QWidget { Q_OBJECT typedef class QWidget Parent; public: ConfigView(QWidget* parent, const char *name = 0); ~ConfigView(void); static void updateList(ConfigItem* item); static void updateListAll(void); bool showName(void) const { return list->showName; } bool showRange(void) const { return list->showRange; } bool showData(void) const { return list->showData; } public slots: void setShowName(bool); void setShowRange(bool); void setShowData(bool); void setOptionMode(QAction *); signals: void showNameChanged(bool); void showRangeChanged(bool); void showDataChanged(bool); public: ConfigList* list; ConfigLineEdit* lineEdit; static ConfigView* viewList; ConfigView* nextView; static QAction *showNormalAction; static QAction *showAllAction; static QAction *showPromptAction; }; class ConfigInfoView : public QTextBrowser { Q_OBJECT typedef class QTextBrowser Parent; public: ConfigInfoView(QWidget* parent, const char *name = 0); bool showDebug(void) const { return _showDebug; } public slots: void setInfo(struct menu *menu); void saveSettings(void); void setShowDebug(bool); signals: void showDebugChanged(bool); void menuSelected(struct menu *); protected: void symbolInfo(void); void menuInfo(void); QString debug_info(struct symbol *sym); static QString print_filter(const QString &str); static void expr_print_help(void *data, struct symbol *sym, const char *str); QMenu *createStandardContextMenu(const QPoint & pos); void contextMenuEvent(QContextMenuEvent *e); struct symbol *sym; struct menu *_menu; bool _showDebug; }; class ConfigSearchWindow : public QDialog { Q_OBJECT typedef class QDialog Parent; public: ConfigSearchWindow(ConfigMainWindow* parent, const char *name = 0); public slots: void saveSettings(void); void search(void); protected: QLineEdit* editField; QPushButton* searchButton; QSplitter* split; ConfigView* list; ConfigInfoView* info; struct symbol **result; }; class ConfigMainWindow : public QMainWindow { Q_OBJECT static QAction *saveAction; static void conf_changed(void); public: ConfigMainWindow(void); public slots: void changeMenu(struct menu *); void setMenuLink(struct menu *); void listFocusChanged(void); void goBack(void); void loadConfig(void); bool saveConfig(void); void saveConfigAs(void); void searchConfig(void); void showSingleView(void); void showSplitView(void); void showFullView(void); void showIntro(void); void showAbout(void); void saveSettings(void); protected: void closeEvent(QCloseEvent *e); ConfigSearchWindow *searchWindow; ConfigView *menuView; ConfigList *menuList; ConfigView *configView; ConfigList *configList; ConfigInfoView *helpText; QToolBar *toolBar; QAction *backAction; QAction *singleViewAction; QAction *splitViewAction; QAction *fullViewAction; QSplitter *split1; QSplitter *split2; }; ================================================ FILE: support/kconfig/streamline_config.pl ================================================ #!/usr/bin/env perl # # Copyright 2005-2009 - Steven Rostedt # Licensed under the terms of the GNU GPL License version 2 # # It's simple enough to figure out how this works. # If not, then you can ask me at stripconfig@goodmis.org # # What it does? # # If you have installed a Linux kernel from a distribution # that turns on way too many modules than you need, and # you only want the modules you use, then this program # is perfect for you. # # It gives you the ability to turn off all the modules that are # not loaded on your system. # # Howto: # # 1. Boot up the kernel that you want to stream line the config on. # 2. Change directory to the directory holding the source of the # kernel that you just booted. # 3. Copy the configuraton file to this directory as .config # 4. Have all your devices that you need modules for connected and # operational (make sure that their corresponding modules are loaded) # 5. Run this script redirecting the output to some other file # like config_strip. # 6. Back up your old config (if you want too). # 7. copy the config_strip file to .config # 8. Run "make oldconfig" # # Now your kernel is ready to be built with only the modules that # are loaded. # # Here's what I did with my Debian distribution. # # cd /usr/src/linux-2.6.10 # cp /boot/config-2.6.10-1-686-smp .config # ~/bin/streamline_config > config_strip # mv .config config_sav # mv config_strip .config # make oldconfig # use warnings; use strict; use Getopt::Long; # set the environment variable LOCALMODCONFIG_DEBUG to get # debug output. my $debugprint = 0; $debugprint = 1 if (defined($ENV{LOCALMODCONFIG_DEBUG})); sub dprint { return if (!$debugprint); print STDERR @_; } my $config = ".config"; my $uname = `uname -r`; chomp $uname; my @searchconfigs = ( { "file" => ".config", "exec" => "cat", }, { "file" => "/proc/config.gz", "exec" => "zcat", }, { "file" => "/boot/config-$uname", "exec" => "cat", }, { "file" => "/boot/vmlinuz-$uname", "exec" => "scripts/extract-ikconfig", "test" => "scripts/extract-ikconfig", }, { "file" => "vmlinux", "exec" => "scripts/extract-ikconfig", "test" => "scripts/extract-ikconfig", }, { "file" => "/lib/modules/$uname/kernel/kernel/configs.ko", "exec" => "scripts/extract-ikconfig", "test" => "scripts/extract-ikconfig", }, { "file" => "kernel/configs.ko", "exec" => "scripts/extract-ikconfig", "test" => "scripts/extract-ikconfig", }, { "file" => "kernel/configs.o", "exec" => "scripts/extract-ikconfig", "test" => "scripts/extract-ikconfig", }, ); sub read_config { foreach my $conf (@searchconfigs) { my $file = $conf->{"file"}; next if ( ! -f "$file"); if (defined($conf->{"test"})) { `$conf->{"test"} $conf->{"file"} 2>/dev/null`; next if ($?); } my $exec = $conf->{"exec"}; print STDERR "using config: '$file'\n"; open(my $infile, '-|', "$exec $file") || die "Failed to run $exec $file"; my @x = <$infile>; close $infile; return @x; } die "No config file found"; } my @config_file = read_config; # Parse options my $localmodconfig = 0; my $localyesconfig = 0; GetOptions("localmodconfig" => \$localmodconfig, "localyesconfig" => \$localyesconfig); # Get the build source and top level Kconfig file (passed in) my $ksource = ($ARGV[0] ? $ARGV[0] : '.'); my $kconfig = $ARGV[1]; my $lsmod_file = $ENV{'LSMOD'}; my @makefiles = `find $ksource -name Makefile -or -name Kbuild 2>/dev/null`; chomp @makefiles; my %depends; my %selects; my %prompts; my %objects; my $var; my $iflevel = 0; my @ifdeps; # prevent recursion my %read_kconfigs; sub read_kconfig { my ($kconfig) = @_; my $state = "NONE"; my $config; my $cont = 0; my $line; my $source = "$ksource/$kconfig"; my $last_source = ""; # Check for any environment variables used while ($source =~ /\$(\w+)/ && $last_source ne $source) { my $env = $1; $last_source = $source; $source =~ s/\$$env/$ENV{$env}/; } open(my $kinfile, '<', $source) || die "Can't open $kconfig"; while (<$kinfile>) { chomp; # Make sure that lines ending with \ continue if ($cont) { $_ = $line . " " . $_; } if (s/\\$//) { $cont = 1; $line = $_; next; } $cont = 0; # collect any Kconfig sources if (/^source\s+"?([^"]+)/) { my $kconfig = $1; # prevent reading twice. if (!defined($read_kconfigs{$kconfig})) { $read_kconfigs{$kconfig} = 1; read_kconfig($kconfig); } next; } # configs found if (/^\s*(menu)?config\s+(\S+)\s*$/) { $state = "NEW"; $config = $2; # Add depends for 'if' nesting for (my $i = 0; $i < $iflevel; $i++) { if ($i) { $depends{$config} .= " " . $ifdeps[$i]; } else { $depends{$config} = $ifdeps[$i]; } $state = "DEP"; } # collect the depends for the config } elsif ($state eq "NEW" && /^\s*depends\s+on\s+(.*)$/) { $state = "DEP"; $depends{$config} = $1; } elsif ($state eq "DEP" && /^\s*depends\s+on\s+(.*)$/) { $depends{$config} .= " " . $1; } elsif ($state eq "DEP" && /^\s*def(_(bool|tristate)|ault)\s+(\S.*)$/) { my $dep = $3; if ($dep !~ /^\s*(y|m|n)\s*$/) { $dep =~ s/.*\sif\s+//; $depends{$config} .= " " . $dep; dprint "Added default depends $dep to $config\n"; } # Get the configs that select this config } elsif ($state ne "NONE" && /^\s*select\s+(\S+)/) { my $conf = $1; if (defined($selects{$conf})) { $selects{$conf} .= " " . $config; } else { $selects{$conf} = $config; } # configs without prompts must be selected } elsif ($state ne "NONE" && /^\s*(tristate\s+\S|prompt\b)/) { # note if the config has a prompt $prompts{$config} = 1; # Check for if statements } elsif (/^if\s+(.*\S)\s*$/) { my $deps = $1; # remove beginning and ending non text $deps =~ s/^[^a-zA-Z0-9_]*//; $deps =~ s/[^a-zA-Z0-9_]*$//; my @deps = split /[^a-zA-Z0-9_]+/, $deps; $ifdeps[$iflevel++] = join ':', @deps; } elsif (/^endif/) { $iflevel-- if ($iflevel); # stop on "help" and keywords that end a menu entry } elsif (/^\s*(---)?help(---)?\s*$/ || /^(comment|choice|menu)\b/) { $state = "NONE"; } } close($kinfile); } if ($kconfig) { read_kconfig($kconfig); } # Makefiles can use variables to define their dependencies sub convert_vars { my ($line, %vars) = @_; my $process = ""; while ($line =~ s/^(.*?)(\$\((.*?)\))//) { my $start = $1; my $variable = $2; my $var = $3; if (defined($vars{$var})) { $process .= $start . $vars{$var}; } else { $process .= $start . $variable; } } $process .= $line; return $process; } # Read all Makefiles to map the configs to the objects foreach my $makefile (@makefiles) { my $line = ""; my %make_vars; open(my $infile, '<', $makefile) || die "Can't open $makefile"; while (<$infile>) { # if this line ends with a backslash, continue chomp; if (/^(.*)\\$/) { $line .= $1; next; } $line .= $_; $_ = $line; $line = ""; my $objs; # Convert variables in a line (could define configs) $_ = convert_vars($_, %make_vars); # collect objects after obj-$(CONFIG_FOO_BAR) if (/obj-\$\((CONFIG_[^\)]*)\)\s*[+:]?=\s*(.*)/) { $var = $1; $objs = $2; # check if variables are set } elsif (/^\s*(\S+)\s*[:]?=\s*(.*\S)/) { $make_vars{$1} = $2; } if (defined($objs)) { foreach my $obj (split /\s+/,$objs) { $obj =~ s/-/_/g; if ($obj =~ /(.*)\.o$/) { # Objects may be enabled by more than one config. # Store configs in an array. my @arr; if (defined($objects{$1})) { @arr = @{$objects{$1}}; } $arr[$#arr+1] = $var; # The objects have a hash mapping to a reference # of an array of configs. $objects{$1} = \@arr; } } } } close($infile); } my %modules; my $linfile; if (defined($lsmod_file)) { if ( ! -f $lsmod_file) { if ( -f $ENV{'objtree'}."/".$lsmod_file) { $lsmod_file = $ENV{'objtree'}."/".$lsmod_file; } else { die "$lsmod_file not found"; } } my $otype = ( -x $lsmod_file) ? '-|' : '<'; open($linfile, $otype, $lsmod_file); } else { # see what modules are loaded on this system my $lsmod; foreach my $dir ( ("/sbin", "/bin", "/usr/sbin", "/usr/bin") ) { if ( -x "$dir/lsmod" ) { $lsmod = "$dir/lsmod"; last; } } if (!defined($lsmod)) { # try just the path $lsmod = "lsmod"; } open($linfile, '-|', $lsmod) || die "Can not call lsmod with $lsmod"; } while (<$linfile>) { next if (/^Module/); # Skip the first line. if (/^(\S+)/) { $modules{$1} = 1; } } close ($linfile); # add to the configs hash all configs that are needed to enable # a loaded module. This is a direct obj-${CONFIG_FOO} += bar.o # where we know we need bar.o so we add FOO to the list. my %configs; foreach my $module (keys(%modules)) { if (defined($objects{$module})) { my @arr = @{$objects{$module}}; foreach my $conf (@arr) { $configs{$conf} = $module; dprint "$conf added by direct ($module)\n"; if ($debugprint) { my $c=$conf; $c =~ s/^CONFIG_//; if (defined($depends{$c})) { dprint " deps = $depends{$c}\n"; } else { dprint " no deps\n"; } } } } else { # Most likely, someone has a custom (binary?) module loaded. print STDERR "$module config not found!!\n"; } } # Read the current config, and see what is enabled. We want to # ignore configs that we would not enable anyway. my %orig_configs; my $valid = "A-Za-z_0-9"; foreach my $line (@config_file) { $_ = $line; if (/(CONFIG_[$valid]*)=(m|y)/) { $orig_configs{$1} = $2; } } my $repeat = 1; my $depconfig; # # Note, we do not care about operands (like: &&, ||, !) we want to add any # config that is in the depend list of another config. This script does # not enable configs that are not already enabled. If we come across a # config A that depends on !B, we can still add B to the list of depends # to keep on. If A was on in the original config, B would not have been # and B would not be turned on by this script. # sub parse_config_depends { my ($p) = @_; while ($p =~ /[$valid]/) { if ($p =~ /^[^$valid]*([$valid]+)/) { my $conf = "CONFIG_" . $1; $p =~ s/^[^$valid]*[$valid]+//; # We only need to process if the depend config is a module if (!defined($orig_configs{$conf}) || $orig_configs{$conf} eq "y") { next; } if (!defined($configs{$conf})) { # We must make sure that this config has its # dependencies met. $repeat = 1; # do again dprint "$conf selected by depend $depconfig\n"; $configs{$conf} = 1; } } else { die "this should never happen"; } } } # Select is treated a bit differently than depends. We call this # when a config has no prompt and requires another config to be # selected. We use to just select all configs that selected this # config, but found that that can balloon into enabling hundreds # of configs that we do not care about. # # The idea is we look at all the configs that select it. If one # is already in our list of configs to enable, then there's nothing # else to do. If there isn't, we pick the first config that was # enabled in the orignal config and use that. sub parse_config_selects { my ($config, $p) = @_; my $next_config; while ($p =~ /[$valid]/) { if ($p =~ /^[^$valid]*([$valid]+)/) { my $conf = "CONFIG_" . $1; $p =~ s/^[^$valid]*[$valid]+//; # Make sure that this config exists in the current .config file if (!defined($orig_configs{$conf})) { dprint "$conf not set for $config select\n"; next; } # Check if something other than a module selects this config if (defined($orig_configs{$conf}) && $orig_configs{$conf} ne "m") { dprint "$conf (non module) selects config, we are good\n"; # we are good with this return; } if (defined($configs{$conf})) { dprint "$conf selects $config so we are good\n"; # A set config selects this config, we are good return; } # Set this config to be selected if (!defined($next_config)) { $next_config = $conf; } } else { die "this should never happen"; } } # If no possible config selected this, then something happened. if (!defined($next_config)) { print STDERR "WARNING: $config is required, but nothing in the\n"; print STDERR " current config selects it.\n"; return; } # If we are here, then we found no config that is set and # selects this config. Repeat. $repeat = 1; # Make this config need to be selected $configs{$next_config} = 1; dprint "$next_config selected by select $config\n"; } my %process_selects; # loop through all configs, select their dependencies. sub loop_depend { $repeat = 1; while ($repeat) { $repeat = 0; forloop: foreach my $config (keys %configs) { # If this config is not a module, we do not need to process it if (defined($orig_configs{$config}) && $orig_configs{$config} ne "m") { next forloop; } $config =~ s/^CONFIG_//; $depconfig = $config; if (defined($depends{$config})) { # This config has dependencies. Make sure they are also included parse_config_depends $depends{$config}; } # If the config has no prompt, then we need to check if a config # that is enabled selected it. Or if we need to enable one. if (!defined($prompts{$config}) && defined($selects{$config})) { $process_selects{$config} = 1; } } } } sub loop_select { foreach my $config (keys %process_selects) { $config =~ s/^CONFIG_//; dprint "Process select $config\n"; # config has no prompt and must be selected. parse_config_selects $config, $selects{$config}; } } while ($repeat) { # Get the first set of configs and their dependencies. loop_depend; $repeat = 0; # Now we need to see if we have to check selects; loop_select; } my %setconfigs; # Finally, read the .config file and turn off any module enabled that # we could not find a reason to keep enabled. foreach my $line (@config_file) { $_ = $line; if (/CONFIG_IKCONFIG/) { if (/# CONFIG_IKCONFIG is not set/) { # enable IKCONFIG at least as a module print "CONFIG_IKCONFIG=m\n"; # don't ask about PROC print "# CONFIG_IKCONFIG_PROC is not set\n"; } else { print; } next; } if (/CONFIG_MODULE_SIG_KEY="(.+)"/) { my $orig_cert = $1; my $default_cert = "certs/signing_key.pem"; # Check that the logic in this script still matches the one in Kconfig if (!defined($depends{"MODULE_SIG_KEY"}) || $depends{"MODULE_SIG_KEY"} !~ /"\Q$default_cert\E"/) { print STDERR "WARNING: MODULE_SIG_KEY assertion failure, ", "update needed to ", __FILE__, " line ", __LINE__, "\n"; print; } elsif ($orig_cert ne $default_cert && ! -f $orig_cert) { print STDERR "Module signature verification enabled but ", "module signing key \"$orig_cert\" not found. Resetting ", "signing key to default value.\n"; print "CONFIG_MODULE_SIG_KEY=\"$default_cert\"\n"; } else { print; } next; } if (/CONFIG_SYSTEM_TRUSTED_KEYS="(.+)"/) { my $orig_keys = $1; if (! -f $orig_keys) { print STDERR "System keyring enabled but keys \"$orig_keys\" ", "not found. Resetting keys to default value.\n"; print "CONFIG_SYSTEM_TRUSTED_KEYS=\"\"\n"; } else { print; } next; } if (/^(CONFIG.*)=(m|y)/) { if (defined($configs{$1})) { if ($localyesconfig) { $setconfigs{$1} = 'y'; print "$1=y\n"; next; } else { $setconfigs{$1} = $2; } } elsif ($2 eq "m") { print "# $1 is not set\n"; next; } } print; } # Integrity check, make sure all modules that we want enabled do # indeed have their configs set. loop: foreach my $module (keys(%modules)) { if (defined($objects{$module})) { my @arr = @{$objects{$module}}; foreach my $conf (@arr) { if (defined($setconfigs{$conf})) { next loop; } } print STDERR "module $module did not have configs"; foreach my $conf (@arr) { print STDERR " " , $conf; } print STDERR "\n"; } } ================================================ FILE: support/kconfig/symbol.c ================================================ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ #include #include #include #include #include #include "lkc.h" struct symbol symbol_yes = { .name = "y", .curr = { "y", yes }, .flags = SYMBOL_CONST|SYMBOL_VALID, }, symbol_mod = { .name = "m", .curr = { "m", mod }, .flags = SYMBOL_CONST|SYMBOL_VALID, }, symbol_no = { .name = "n", .curr = { "n", no }, .flags = SYMBOL_CONST|SYMBOL_VALID, }, symbol_empty = { .name = "", .curr = { "", no }, .flags = SYMBOL_VALID, }; struct symbol *sym_defconfig_list; struct symbol *modules_sym; tristate modules_val; struct expr *sym_env_list; static void sym_add_default(struct symbol *sym, const char *def) { struct property *prop = prop_alloc(P_DEFAULT, sym); prop->expr = expr_alloc_symbol(sym_lookup(def, SYMBOL_CONST)); } void sym_init(void) { struct symbol *sym; struct utsname uts; static bool inited = false; if (inited) return; inited = true; uname(&uts); sym = sym_lookup("UNAME_RELEASE", 0); sym->type = S_STRING; sym->flags |= SYMBOL_AUTO; sym_add_default(sym, uts.release); } enum symbol_type sym_get_type(struct symbol *sym) { enum symbol_type type = sym->type; if (type == S_TRISTATE) { if (sym_is_choice_value(sym) && sym->visible == yes) type = S_BOOLEAN; else if (modules_val == no) type = S_BOOLEAN; } return type; } const char *sym_type_name(enum symbol_type type) { switch (type) { case S_BOOLEAN: return "bool"; case S_TRISTATE: return "tristate"; case S_INT: return "integer"; case S_HEX: return "hex"; case S_STRING: return "string"; case S_UNKNOWN: return "unknown"; case S_OTHER: break; } return "???"; } struct property *sym_get_choice_prop(struct symbol *sym) { struct property *prop; for_all_choices(sym, prop) return prop; return NULL; } struct property *sym_get_env_prop(struct symbol *sym) { struct property *prop; for_all_properties(sym, prop, P_ENV) return prop; return NULL; } static struct property *sym_get_default_prop(struct symbol *sym) { struct property *prop; for_all_defaults(sym, prop) { prop->visible.tri = expr_calc_value(prop->visible.expr); if (prop->visible.tri != no) return prop; } return NULL; } static struct property *sym_get_range_prop(struct symbol *sym) { struct property *prop; for_all_properties(sym, prop, P_RANGE) { prop->visible.tri = expr_calc_value(prop->visible.expr); if (prop->visible.tri != no) return prop; } return NULL; } static long long sym_get_range_val(struct symbol *sym, int base) { sym_calc_value(sym); switch (sym->type) { case S_INT: base = 10; break; case S_HEX: base = 16; break; default: break; } return strtoll(sym->curr.val, NULL, base); } static void sym_validate_range(struct symbol *sym) { struct property *prop; int base; long long val, val2; char str[64]; switch (sym->type) { case S_INT: base = 10; break; case S_HEX: base = 16; break; default: return; } prop = sym_get_range_prop(sym); if (!prop) return; val = strtoll(sym->curr.val, NULL, base); val2 = sym_get_range_val(prop->expr->left.sym, base); if (val >= val2) { val2 = sym_get_range_val(prop->expr->right.sym, base); if (val <= val2) return; } if (sym->type == S_INT) sprintf(str, "%lld", val2); else sprintf(str, "0x%llx", val2); sym->curr.val = xstrdup(str); } static void sym_set_changed(struct symbol *sym) { struct property *prop; sym->flags |= SYMBOL_CHANGED; for (prop = sym->prop; prop; prop = prop->next) { if (prop->menu) prop->menu->flags |= MENU_CHANGED; } } static void sym_set_all_changed(void) { struct symbol *sym; int i; for_all_symbols(i, sym) sym_set_changed(sym); } static void sym_calc_visibility(struct symbol *sym) { struct property *prop; struct symbol *choice_sym = NULL; tristate tri; /* any prompt visible? */ tri = no; if (sym_is_choice_value(sym)) choice_sym = prop_get_symbol(sym_get_choice_prop(sym)); for_all_prompts(sym, prop) { prop->visible.tri = expr_calc_value(prop->visible.expr); /* * Tristate choice_values with visibility 'mod' are * not visible if the corresponding choice's value is * 'yes'. */ if (choice_sym && sym->type == S_TRISTATE && prop->visible.tri == mod && choice_sym->curr.tri == yes) prop->visible.tri = no; tri = EXPR_OR(tri, prop->visible.tri); } if (tri == mod && (sym->type != S_TRISTATE || modules_val == no)) tri = yes; if (sym->visible != tri) { sym->visible = tri; sym_set_changed(sym); } if (sym_is_choice_value(sym)) return; /* defaulting to "yes" if no explicit "depends on" are given */ tri = yes; if (sym->dir_dep.expr) tri = expr_calc_value(sym->dir_dep.expr); if (tri == mod && sym_get_type(sym) == S_BOOLEAN) tri = yes; if (sym->dir_dep.tri != tri) { sym->dir_dep.tri = tri; sym_set_changed(sym); } tri = no; if (sym->rev_dep.expr) tri = expr_calc_value(sym->rev_dep.expr); if (tri == mod && sym_get_type(sym) == S_BOOLEAN) tri = yes; if (sym->rev_dep.tri != tri) { sym->rev_dep.tri = tri; sym_set_changed(sym); } tri = no; if (sym->implied.expr && sym->dir_dep.tri != no) tri = expr_calc_value(sym->implied.expr); if (tri == mod && sym_get_type(sym) == S_BOOLEAN) tri = yes; if (sym->implied.tri != tri) { sym->implied.tri = tri; sym_set_changed(sym); } } /* * Find the default symbol for a choice. * First try the default values for the choice symbol * Next locate the first visible choice value * Return NULL if none was found */ struct symbol *sym_choice_default(struct symbol *sym) { struct symbol *def_sym; struct property *prop; struct expr *e; /* any of the defaults visible? */ for_all_defaults(sym, prop) { prop->visible.tri = expr_calc_value(prop->visible.expr); if (prop->visible.tri == no) continue; def_sym = prop_get_symbol(prop); if (def_sym->visible != no) return def_sym; } /* just get the first visible value */ prop = sym_get_choice_prop(sym); expr_list_for_each_sym(prop->expr, e, def_sym) if (def_sym->visible != no) return def_sym; /* failed to locate any defaults */ return NULL; } static struct symbol *sym_calc_choice(struct symbol *sym) { struct symbol *def_sym; struct property *prop; struct expr *e; int flags; /* first calculate all choice values' visibilities */ flags = sym->flags; prop = sym_get_choice_prop(sym); expr_list_for_each_sym(prop->expr, e, def_sym) { sym_calc_visibility(def_sym); if (def_sym->visible != no) flags &= def_sym->flags; } sym->flags &= flags | ~SYMBOL_DEF_USER; /* is the user choice visible? */ def_sym = sym->def[S_DEF_USER].val; if (def_sym && def_sym->visible != no) return def_sym; def_sym = sym_choice_default(sym); if (def_sym == NULL) /* no choice? reset tristate value */ sym->curr.tri = no; return def_sym; } static void sym_warn_unmet_dep(struct symbol *sym) { struct gstr gs = str_new(); str_printf(&gs, "\nWARNING: unmet direct dependencies detected for %s\n", sym->name); str_printf(&gs, " Depends on [%c]: ", sym->dir_dep.tri == mod ? 'm' : 'n'); expr_gstr_print(sym->dir_dep.expr, &gs); str_printf(&gs, "\n"); expr_gstr_print_revdep(sym->rev_dep.expr, &gs, yes, " Selected by [y]:\n"); expr_gstr_print_revdep(sym->rev_dep.expr, &gs, mod, " Selected by [m]:\n"); fputs(str_get(&gs), stderr); } void sym_calc_value(struct symbol *sym) { struct symbol_value newval, oldval; struct property *prop; struct expr *e; if (!sym) return; if (sym->flags & SYMBOL_VALID) return; if (sym_is_choice_value(sym) && sym->flags & SYMBOL_NEED_SET_CHOICE_VALUES) { sym->flags &= ~SYMBOL_NEED_SET_CHOICE_VALUES; prop = sym_get_choice_prop(sym); sym_calc_value(prop_get_symbol(prop)); } sym->flags |= SYMBOL_VALID; oldval = sym->curr; switch (sym->type) { case S_INT: case S_HEX: case S_STRING: newval = symbol_empty.curr; break; case S_BOOLEAN: case S_TRISTATE: newval = symbol_no.curr; break; default: sym->curr.val = sym->name; sym->curr.tri = no; return; } sym->flags &= ~SYMBOL_WRITE; sym_calc_visibility(sym); if (sym->visible != no) sym->flags |= SYMBOL_WRITE; /* set default if recursively called */ sym->curr = newval; switch (sym_get_type(sym)) { case S_BOOLEAN: case S_TRISTATE: if (sym_is_choice_value(sym) && sym->visible == yes) { prop = sym_get_choice_prop(sym); newval.tri = (prop_get_symbol(prop)->curr.val == sym) ? yes : no; } else { if (sym->visible != no) { /* if the symbol is visible use the user value * if available, otherwise try the default value */ if (sym_has_value(sym)) { newval.tri = EXPR_AND(sym->def[S_DEF_USER].tri, sym->visible); goto calc_newval; } } if (sym->rev_dep.tri != no) sym->flags |= SYMBOL_WRITE; if (!sym_is_choice(sym)) { prop = sym_get_default_prop(sym); if (prop) { newval.tri = EXPR_AND(expr_calc_value(prop->expr), prop->visible.tri); if (newval.tri != no) sym->flags |= SYMBOL_WRITE; } if (sym->implied.tri != no) { sym->flags |= SYMBOL_WRITE; newval.tri = EXPR_OR(newval.tri, sym->implied.tri); } } calc_newval: if (sym->dir_dep.tri < sym->rev_dep.tri) sym_warn_unmet_dep(sym); newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri); } if (newval.tri == mod && (sym_get_type(sym) == S_BOOLEAN || sym->implied.tri == yes)) newval.tri = yes; break; case S_STRING: case S_HEX: case S_INT: if (sym->visible != no && sym_has_value(sym)) { newval.val = sym->def[S_DEF_USER].val; break; } prop = sym_get_default_prop(sym); if (prop) { struct symbol *ds = prop_get_symbol(prop); if (ds) { sym->flags |= SYMBOL_WRITE; sym_calc_value(ds); newval.val = ds->curr.val; } } break; default: ; } sym->curr = newval; if (sym_is_choice(sym) && newval.tri == yes) sym->curr.val = sym_calc_choice(sym); sym_validate_range(sym); if (memcmp(&oldval, &sym->curr, sizeof(oldval))) { sym_set_changed(sym); if (modules_sym == sym) { sym_set_all_changed(); modules_val = modules_sym->curr.tri; } } if (sym_is_choice(sym)) { struct symbol *choice_sym; prop = sym_get_choice_prop(sym); expr_list_for_each_sym(prop->expr, e, choice_sym) { if ((sym->flags & SYMBOL_WRITE) && choice_sym->visible != no) choice_sym->flags |= SYMBOL_WRITE; if (sym->flags & SYMBOL_CHANGED) sym_set_changed(choice_sym); } } if (sym->flags & SYMBOL_AUTO) sym->flags &= ~SYMBOL_WRITE; if (sym->flags & SYMBOL_NEED_SET_CHOICE_VALUES) set_all_choice_values(sym); } void sym_clear_all_valid(void) { struct symbol *sym; int i; for_all_symbols(i, sym) sym->flags &= ~SYMBOL_VALID; sym_add_change_count(1); sym_calc_value(modules_sym); } bool sym_tristate_within_range(struct symbol *sym, tristate val) { int type = sym_get_type(sym); if (sym->visible == no) return false; if (type != S_BOOLEAN && type != S_TRISTATE) return false; if (type == S_BOOLEAN && val == mod) return false; if (sym->visible <= sym->rev_dep.tri) return false; if (sym->implied.tri == yes && val == mod) return false; if (sym_is_choice_value(sym) && sym->visible == yes) return val == yes; return val >= sym->rev_dep.tri && val <= sym->visible; } bool sym_set_tristate_value(struct symbol *sym, tristate val) { tristate oldval = sym_get_tristate_value(sym); if (oldval != val && !sym_tristate_within_range(sym, val)) return false; if (!(sym->flags & SYMBOL_DEF_USER)) { sym->flags |= SYMBOL_DEF_USER; sym_set_changed(sym); } /* * setting a choice value also resets the new flag of the choice * symbol and all other choice values. */ if (sym_is_choice_value(sym) && val == yes) { struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym)); struct property *prop; struct expr *e; cs->def[S_DEF_USER].val = sym; cs->flags |= SYMBOL_DEF_USER; prop = sym_get_choice_prop(cs); for (e = prop->expr; e; e = e->left.expr) { if (e->right.sym->visible != no) e->right.sym->flags |= SYMBOL_DEF_USER; } } sym->def[S_DEF_USER].tri = val; if (oldval != val) sym_clear_all_valid(); return true; } tristate sym_toggle_tristate_value(struct symbol *sym) { tristate oldval, newval; oldval = newval = sym_get_tristate_value(sym); do { switch (newval) { case no: newval = mod; break; case mod: newval = yes; break; case yes: newval = no; break; } if (sym_set_tristate_value(sym, newval)) break; } while (oldval != newval); return newval; } bool sym_string_valid(struct symbol *sym, const char *str) { signed char ch; switch (sym->type) { case S_STRING: return true; case S_INT: ch = *str++; if (ch == '-') ch = *str++; if (!isdigit(ch)) return false; if (ch == '0' && *str != 0) return false; while ((ch = *str++)) { if (!isdigit(ch)) return false; } return true; case S_HEX: if (str[0] == '0' && (str[1] == 'x' || str[1] == 'X')) str += 2; ch = *str++; do { if (!isxdigit(ch)) return false; } while ((ch = *str++)); return true; case S_BOOLEAN: case S_TRISTATE: switch (str[0]) { case 'y': case 'Y': case 'm': case 'M': case 'n': case 'N': return true; } return false; default: return false; } } bool sym_string_within_range(struct symbol *sym, const char *str) { struct property *prop; long long val; switch (sym->type) { case S_STRING: return sym_string_valid(sym, str); case S_INT: if (!sym_string_valid(sym, str)) return false; prop = sym_get_range_prop(sym); if (!prop) return true; val = strtoll(str, NULL, 10); return val >= sym_get_range_val(prop->expr->left.sym, 10) && val <= sym_get_range_val(prop->expr->right.sym, 10); case S_HEX: if (!sym_string_valid(sym, str)) return false; prop = sym_get_range_prop(sym); if (!prop) return true; val = strtoll(str, NULL, 16); return val >= sym_get_range_val(prop->expr->left.sym, 16) && val <= sym_get_range_val(prop->expr->right.sym, 16); case S_BOOLEAN: case S_TRISTATE: switch (str[0]) { case 'y': case 'Y': return sym_tristate_within_range(sym, yes); case 'm': case 'M': return sym_tristate_within_range(sym, mod); case 'n': case 'N': return sym_tristate_within_range(sym, no); } return false; default: return false; } } bool sym_set_string_value(struct symbol *sym, const char *newval) { const char *oldval; char *val; int size; switch (sym->type) { case S_BOOLEAN: case S_TRISTATE: switch (newval[0]) { case 'y': case 'Y': return sym_set_tristate_value(sym, yes); case 'm': case 'M': return sym_set_tristate_value(sym, mod); case 'n': case 'N': return sym_set_tristate_value(sym, no); } return false; default: ; } if (!sym_string_within_range(sym, newval)) return false; if (!(sym->flags & SYMBOL_DEF_USER)) { sym->flags |= SYMBOL_DEF_USER; sym_set_changed(sym); } oldval = sym->def[S_DEF_USER].val; size = strlen(newval) + 1; if (sym->type == S_HEX && (newval[0] != '0' || (newval[1] != 'x' && newval[1] != 'X'))) { size += 2; sym->def[S_DEF_USER].val = val = xmalloc(size); *val++ = '0'; *val++ = 'x'; } else if (!oldval || strcmp(oldval, newval)) sym->def[S_DEF_USER].val = val = xmalloc(size); else return true; strcpy(val, newval); free((void *)oldval); sym_clear_all_valid(); return true; } /* * Find the default value associated to a symbol. * For tristate symbol handle the modules=n case * in which case "m" becomes "y". * If the symbol does not have any default then fallback * to the fixed default values. */ const char *sym_get_string_default(struct symbol *sym) { struct property *prop; struct symbol *ds; const char *str; tristate val; sym_calc_visibility(sym); sym_calc_value(modules_sym); val = symbol_no.curr.tri; str = symbol_empty.curr.val; /* If symbol has a default value look it up */ prop = sym_get_default_prop(sym); if (prop != NULL) { switch (sym->type) { case S_BOOLEAN: case S_TRISTATE: /* The visibility may limit the value from yes => mod */ val = EXPR_AND(expr_calc_value(prop->expr), prop->visible.tri); break; default: /* * The following fails to handle the situation * where a default value is further limited by * the valid range. */ ds = prop_get_symbol(prop); if (ds != NULL) { sym_calc_value(ds); str = (const char *)ds->curr.val; } } } /* Handle select statements */ val = EXPR_OR(val, sym->rev_dep.tri); /* transpose mod to yes if modules are not enabled */ if (val == mod) if (!sym_is_choice_value(sym) && modules_sym->curr.tri == no) val = yes; /* transpose mod to yes if type is bool */ if (sym->type == S_BOOLEAN && val == mod) val = yes; /* adjust the default value if this symbol is implied by another */ if (val < sym->implied.tri) val = sym->implied.tri; switch (sym->type) { case S_BOOLEAN: case S_TRISTATE: switch (val) { case no: return "n"; case mod: return "m"; case yes: return "y"; } case S_INT: case S_HEX: return str; case S_STRING: return str; case S_OTHER: case S_UNKNOWN: break; } return ""; } const char *sym_get_string_value(struct symbol *sym) { tristate val; switch (sym->type) { case S_BOOLEAN: case S_TRISTATE: val = sym_get_tristate_value(sym); switch (val) { case no: return "n"; case mod: sym_calc_value(modules_sym); return (modules_sym->curr.tri == no) ? "n" : "m"; case yes: return "y"; } break; default: ; } return (const char *)sym->curr.val; } bool sym_is_changable(struct symbol *sym) { return sym->visible > sym->rev_dep.tri; } static unsigned strhash(const char *s) { /* fnv32 hash */ unsigned hash = 2166136261U; for (; *s; s++) hash = (hash ^ *s) * 0x01000193; return hash; } struct symbol *sym_lookup(const char *name, int flags) { struct symbol *symbol; char *new_name; int hash; if (name) { if (name[0] && !name[1]) { switch (name[0]) { case 'y': return &symbol_yes; case 'm': return &symbol_mod; case 'n': return &symbol_no; } } hash = strhash(name) % SYMBOL_HASHSIZE; for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) { if (symbol->name && !strcmp(symbol->name, name) && (flags ? symbol->flags & flags : !(symbol->flags & (SYMBOL_CONST|SYMBOL_CHOICE)))) return symbol; } new_name = xstrdup(name); } else { new_name = NULL; hash = 0; } symbol = xmalloc(sizeof(*symbol)); memset(symbol, 0, sizeof(*symbol)); symbol->name = new_name; symbol->type = S_UNKNOWN; symbol->flags |= flags; symbol->next = symbol_hash[hash]; symbol_hash[hash] = symbol; return symbol; } struct symbol *sym_find(const char *name) { struct symbol *symbol = NULL; int hash = 0; if (!name) return NULL; if (name[0] && !name[1]) { switch (name[0]) { case 'y': return &symbol_yes; case 'm': return &symbol_mod; case 'n': return &symbol_no; } } hash = strhash(name) % SYMBOL_HASHSIZE; for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) { if (symbol->name && !strcmp(symbol->name, name) && !(symbol->flags & SYMBOL_CONST)) break; } return symbol; } /* * Expand symbol's names embedded in the string given in argument. Symbols' * name to be expanded shall be prefixed by a '$'. Unknown symbol expands to * the empty string. */ char *sym_expand_string_value(const char *in) { const char *src; char *res; size_t reslen; /* * Note: 'in' might come from a token that's about to be * freed, so make sure to always allocate a new string */ reslen = strlen(in) + 1; res = xmalloc(reslen); res[0] = '\0'; while ((src = strchr(in, '$'))) { char *p, name[SYMBOL_MAXLENGTH]; const char *symval = ""; struct symbol *sym; size_t newlen; strncat(res, in, src - in); src++; p = name; while (isalnum(*src) || *src == '_') *p++ = *src++; *p = '\0'; sym = sym_find(name); if (sym != NULL) { sym_calc_value(sym); symval = sym_get_string_value(sym); } newlen = strlen(res) + strlen(symval) + strlen(src) + 1; if (newlen > reslen) { reslen = newlen; res = xrealloc(res, reslen); } strcat(res, symval); in = src; } strcat(res, in); return res; } const char *sym_escape_string_value(const char *in) { const char *p; size_t reslen; char *res; size_t l; reslen = strlen(in) + strlen("\"\"") + 1; p = in; for (;;) { l = strcspn(p, "\"\\"); p += l; if (p[0] == '\0') break; reslen++; p++; } res = xmalloc(reslen); res[0] = '\0'; strcat(res, "\""); p = in; for (;;) { l = strcspn(p, "\"\\"); strncat(res, p, l); p += l; if (p[0] == '\0') break; strcat(res, "\\"); strncat(res, p++, 1); } strcat(res, "\""); return res; } struct sym_match { struct symbol *sym; off_t so, eo; }; /* Compare matched symbols as thus: * - first, symbols that match exactly * - then, alphabetical sort */ static int sym_rel_comp(const void *sym1, const void *sym2) { const struct sym_match *s1 = sym1; const struct sym_match *s2 = sym2; int exact1, exact2; /* Exact match: * - if matched length on symbol s1 is the length of that symbol, * then this symbol should come first; * - if matched length on symbol s2 is the length of that symbol, * then this symbol should come first. * Note: since the search can be a regexp, both symbols may match * exactly; if this is the case, we can't decide which comes first, * and we fallback to sorting alphabetically. */ exact1 = (s1->eo - s1->so) == strlen(s1->sym->name); exact2 = (s2->eo - s2->so) == strlen(s2->sym->name); if (exact1 && !exact2) return -1; if (!exact1 && exact2) return 1; /* As a fallback, sort symbols alphabetically */ return strcmp(s1->sym->name, s2->sym->name); } struct symbol **sym_re_search(const char *pattern) { struct symbol *sym, **sym_arr = NULL; struct sym_match *sym_match_arr = NULL; int i, cnt, size; regex_t re; regmatch_t match[1]; cnt = size = 0; /* Skip if empty */ if (strlen(pattern) == 0) return NULL; if (regcomp(&re, pattern, REG_EXTENDED|REG_ICASE)) return NULL; for_all_symbols(i, sym) { if (sym->flags & SYMBOL_CONST || !sym->name) continue; if (regexec(&re, sym->name, 1, match, 0)) continue; if (cnt >= size) { void *tmp; size += 16; tmp = realloc(sym_match_arr, size * sizeof(struct sym_match)); if (!tmp) goto sym_re_search_free; sym_match_arr = tmp; } sym_calc_value(sym); /* As regexec returned 0, we know we have a match, so * we can use match[0].rm_[se]o without further checks */ sym_match_arr[cnt].so = match[0].rm_so; sym_match_arr[cnt].eo = match[0].rm_eo; sym_match_arr[cnt++].sym = sym; } if (sym_match_arr) { qsort(sym_match_arr, cnt, sizeof(struct sym_match), sym_rel_comp); sym_arr = malloc((cnt+1) * sizeof(struct symbol *)); if (!sym_arr) goto sym_re_search_free; for (i = 0; i < cnt; i++) sym_arr[i] = sym_match_arr[i].sym; sym_arr[cnt] = NULL; } sym_re_search_free: /* sym_match_arr can be NULL if no match, but free(NULL) is OK */ free(sym_match_arr); regfree(&re); return sym_arr; } /* * When we check for recursive dependencies we use a stack to save * current state so we can print out relevant info to user. * The entries are located on the call stack so no need to free memory. * Note insert() remove() must always match to properly clear the stack. */ static struct dep_stack { struct dep_stack *prev, *next; struct symbol *sym; struct property *prop; struct expr *expr; } *check_top; static void dep_stack_insert(struct dep_stack *stack, struct symbol *sym) { memset(stack, 0, sizeof(*stack)); if (check_top) check_top->next = stack; stack->prev = check_top; stack->sym = sym; check_top = stack; } static void dep_stack_remove(void) { check_top = check_top->prev; if (check_top) check_top->next = NULL; } /* * Called when we have detected a recursive dependency. * check_top point to the top of the stact so we use * the ->prev pointer to locate the bottom of the stack. */ static void sym_check_print_recursive(struct symbol *last_sym) { struct dep_stack *stack; struct symbol *sym, *next_sym; struct menu *menu = NULL; struct property *prop; struct dep_stack cv_stack; if (sym_is_choice_value(last_sym)) { dep_stack_insert(&cv_stack, last_sym); last_sym = prop_get_symbol(sym_get_choice_prop(last_sym)); } for (stack = check_top; stack != NULL; stack = stack->prev) if (stack->sym == last_sym) break; if (!stack) { fprintf(stderr, "unexpected recursive dependency error\n"); return; } for (; stack; stack = stack->next) { sym = stack->sym; next_sym = stack->next ? stack->next->sym : last_sym; prop = stack->prop; if (prop == NULL) prop = stack->sym->prop; /* for choice values find the menu entry (used below) */ if (sym_is_choice(sym) || sym_is_choice_value(sym)) { for (prop = sym->prop; prop; prop = prop->next) { menu = prop->menu; if (prop->menu) break; } } if (stack->sym == last_sym) fprintf(stderr, "%s:%d:error: recursive dependency detected!\n", prop->file->name, prop->lineno); if (stack->expr) { fprintf(stderr, "%s:%d:\tsymbol %s %s value contains %s\n", prop->file->name, prop->lineno, sym->name ? sym->name : "", prop_get_type_name(prop->type), next_sym->name ? next_sym->name : ""); } else if (stack->prop) { fprintf(stderr, "%s:%d:\tsymbol %s depends on %s\n", prop->file->name, prop->lineno, sym->name ? sym->name : "", next_sym->name ? next_sym->name : ""); } else if (sym_is_choice(sym)) { fprintf(stderr, "%s:%d:\tchoice %s contains symbol %s\n", menu->file->name, menu->lineno, sym->name ? sym->name : "", next_sym->name ? next_sym->name : ""); } else if (sym_is_choice_value(sym)) { fprintf(stderr, "%s:%d:\tsymbol %s is part of choice %s\n", menu->file->name, menu->lineno, sym->name ? sym->name : "", next_sym->name ? next_sym->name : ""); } else { fprintf(stderr, "%s:%d:\tsymbol %s is selected by %s\n", prop->file->name, prop->lineno, sym->name ? sym->name : "", next_sym->name ? next_sym->name : ""); } } fprintf(stderr, "For a resolution refer to Documentation/kbuild/kconfig-language.txt\n" "subsection \"Kconfig recursive dependency limitations\"\n" "\n"); if (check_top == &cv_stack) dep_stack_remove(); } static struct symbol *sym_check_expr_deps(struct expr *e) { struct symbol *sym; if (!e) return NULL; switch (e->type) { case E_OR: case E_AND: sym = sym_check_expr_deps(e->left.expr); if (sym) return sym; return sym_check_expr_deps(e->right.expr); case E_NOT: return sym_check_expr_deps(e->left.expr); case E_EQUAL: case E_GEQ: case E_GTH: case E_LEQ: case E_LTH: case E_UNEQUAL: sym = sym_check_deps(e->left.sym); if (sym) return sym; return sym_check_deps(e->right.sym); case E_SYMBOL: return sym_check_deps(e->left.sym); default: break; } fprintf(stderr, "Oops! How to check %d?\n", e->type); return NULL; } /* return NULL when dependencies are OK */ static struct symbol *sym_check_sym_deps(struct symbol *sym) { struct symbol *sym2; struct property *prop; struct dep_stack stack; dep_stack_insert(&stack, sym); sym2 = sym_check_expr_deps(sym->rev_dep.expr); if (sym2) goto out; for (prop = sym->prop; prop; prop = prop->next) { if (prop->type == P_CHOICE || prop->type == P_SELECT) continue; stack.prop = prop; sym2 = sym_check_expr_deps(prop->visible.expr); if (sym2) break; if (prop->type != P_DEFAULT || sym_is_choice(sym)) continue; stack.expr = prop->expr; sym2 = sym_check_expr_deps(prop->expr); if (sym2) break; stack.expr = NULL; } out: dep_stack_remove(); return sym2; } static struct symbol *sym_check_choice_deps(struct symbol *choice) { struct symbol *sym, *sym2; struct property *prop; struct expr *e; struct dep_stack stack; dep_stack_insert(&stack, choice); prop = sym_get_choice_prop(choice); expr_list_for_each_sym(prop->expr, e, sym) sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED); choice->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED); sym2 = sym_check_sym_deps(choice); choice->flags &= ~SYMBOL_CHECK; if (sym2) goto out; expr_list_for_each_sym(prop->expr, e, sym) { sym2 = sym_check_sym_deps(sym); if (sym2) break; } out: expr_list_for_each_sym(prop->expr, e, sym) sym->flags &= ~SYMBOL_CHECK; if (sym2 && sym_is_choice_value(sym2) && prop_get_symbol(sym_get_choice_prop(sym2)) == choice) sym2 = choice; dep_stack_remove(); return sym2; } struct symbol *sym_check_deps(struct symbol *sym) { struct symbol *sym2; struct property *prop; if (sym->flags & SYMBOL_CHECK) { sym_check_print_recursive(sym); return sym; } if (sym->flags & SYMBOL_CHECKED) return NULL; if (sym_is_choice_value(sym)) { struct dep_stack stack; /* for choice groups start the check with main choice symbol */ dep_stack_insert(&stack, sym); prop = sym_get_choice_prop(sym); sym2 = sym_check_deps(prop_get_symbol(prop)); dep_stack_remove(); } else if (sym_is_choice(sym)) { sym2 = sym_check_choice_deps(sym); } else { sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED); sym2 = sym_check_sym_deps(sym); sym->flags &= ~SYMBOL_CHECK; } if (sym2 && sym2 == sym) sym2 = NULL; return sym2; } struct property *prop_alloc(enum prop_type type, struct symbol *sym) { struct property *prop; struct property **propp; prop = xmalloc(sizeof(*prop)); memset(prop, 0, sizeof(*prop)); prop->type = type; prop->sym = sym; prop->file = current_file; prop->lineno = zconf_lineno(); /* append property to the prop list of symbol */ if (sym) { for (propp = &sym->prop; *propp; propp = &(*propp)->next) ; *propp = prop; } return prop; } struct symbol *prop_get_symbol(struct property *prop) { if (prop->expr && (prop->expr->type == E_SYMBOL || prop->expr->type == E_LIST)) return prop->expr->left.sym; return NULL; } const char *prop_get_type_name(enum prop_type type) { switch (type) { case P_PROMPT: return "prompt"; case P_ENV: return "env"; case P_COMMENT: return "comment"; case P_MENU: return "menu"; case P_DEFAULT: return "default"; case P_CHOICE: return "choice"; case P_SELECT: return "select"; case P_IMPLY: return "imply"; case P_RANGE: return "range"; case P_SYMBOL: return "symbol"; case P_UNKNOWN: break; } return "unknown"; } static void prop_add_env(const char *env) { struct symbol *sym, *sym2; struct property *prop; char *p; sym = current_entry->sym; sym->flags |= SYMBOL_AUTO; for_all_properties(sym, prop, P_ENV) { sym2 = prop_get_symbol(prop); if (strcmp(sym2->name, env)) menu_warn(current_entry, "redefining environment symbol from %s", sym2->name); return; } prop = prop_alloc(P_ENV, sym); prop->expr = expr_alloc_symbol(sym_lookup(env, SYMBOL_CONST)); sym_env_list = expr_alloc_one(E_LIST, sym_env_list); sym_env_list->right.sym = sym; p = getenv(env); if (p) sym_add_default(sym, p); else menu_warn(current_entry, "environment variable %s undefined", env); } ================================================ FILE: support/kconfig/util.c ================================================ /* * Copyright (C) 2002-2005 Roman Zippel * Copyright (C) 2002-2005 Sam Ravnborg * * Released under the terms of the GNU GPL v2.0. */ #include #include #include #include "lkc.h" /* file already present in list? If not add it */ struct file *file_lookup(const char *name) { struct file *file; char *file_name = sym_expand_string_value(name); for (file = file_list; file; file = file->next) { if (!strcmp(name, file->name)) { free(file_name); return file; } } file = xmalloc(sizeof(*file)); memset(file, 0, sizeof(*file)); file->name = file_name; file->next = file_list; file_list = file; return file; } /* write a dependency file as used by kbuild to track dependencies */ int file_write_dep(const char *name) { char *str; char buf[PATH_MAX+20], buf2[PATH_MAX+1], dir[PATH_MAX+1]; struct symbol *sym, *env_sym; struct expr *e; struct file *file; FILE *out; if (!name) name = ".kconfig.d"; strcpy(dir, conf_get_configname()); str = strrchr(dir, '/'); if (str) str[1] = 0; else dir[0] = 0; sprintf(buf, "%s..config.tmp", dir); out = fopen(buf, "w"); if (!out) return 1; fprintf(out, "deps_config := \\\n"); for (file = file_list; file; file = file->next) { if (file->next) fprintf(out, "\t%s \\\n", file->name); else fprintf(out, "\t%s\n", file->name); } fprintf(out, "\n%s: \\\n" "\t$(deps_config)\n\n", conf_get_autoconfig_name()); expr_list_for_each_sym(sym_env_list, e, sym) { struct property *prop; const char *value; prop = sym_get_env_prop(sym); env_sym = prop_get_symbol(prop); if (!env_sym) continue; value = getenv(env_sym->name); if (!value) value = ""; fprintf(out, "ifneq \"$(%s)\" \"%s\"\n", env_sym->name, value); fprintf(out, "%s: FORCE\n", conf_get_autoconfig_name()); fprintf(out, "endif\n"); } fprintf(out, "\n$(deps_config): ;\n"); fclose(out); sprintf(buf2, "%s%s", dir, name); rename(buf, buf2); return 0; } /* Allocate initial growable string */ struct gstr str_new(void) { struct gstr gs; gs.s = xmalloc(sizeof(char) * 64); gs.len = 64; gs.max_width = 0; strcpy(gs.s, "\0"); return gs; } /* Free storage for growable string */ void str_free(struct gstr *gs) { if (gs->s) free(gs->s); gs->s = NULL; gs->len = 0; } /* Append to growable string */ void str_append(struct gstr *gs, const char *s) { size_t l; if (s) { l = strlen(gs->s) + strlen(s) + 1; if (l > gs->len) { gs->s = xrealloc(gs->s, l); gs->len = l; } strcat(gs->s, s); } } /* Append printf formatted string to growable string */ void str_printf(struct gstr *gs, const char *fmt, ...) { va_list ap; char s[10000]; /* big enough... */ va_start(ap, fmt); vsnprintf(s, sizeof(s), fmt, ap); str_append(gs, s); va_end(ap); } /* Retrieve value of growable string */ const char *str_get(struct gstr *gs) { return gs->s; } void *xmalloc(size_t size) { void *p = malloc(size); if (p) return p; fprintf(stderr, "Out of memory.\n"); exit(1); } void *xcalloc(size_t nmemb, size_t size) { void *p = calloc(nmemb, size); if (p) return p; fprintf(stderr, "Out of memory.\n"); exit(1); } void *xrealloc(void *p, size_t size) { p = realloc(p, size); if (p) return p; fprintf(stderr, "Out of memory.\n"); exit(1); } char *xstrdup(const char *s) { char *p; p = strdup(s); if (p) return p; fprintf(stderr, "Out of memory.\n"); exit(1); } ================================================ FILE: support/kconfig/zconf.l ================================================ %option nostdinit noyywrap never-interactive full ecs %option 8bit nodefault yylineno %option noinput %x COMMAND HELP STRING PARAM %{ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ #include #include #include #include #include #include "lkc.h" #define START_STRSIZE 16 static struct { struct file *file; int lineno; } current_pos; static char *text; static int text_size, text_asize; struct buffer { struct buffer *parent; YY_BUFFER_STATE state; }; struct buffer *current_buf; static int last_ts, first_ts; static void zconf_endhelp(void); static void zconf_endfile(void); static void new_string(void) { text = xmalloc(START_STRSIZE); text_asize = START_STRSIZE; text_size = 0; *text = 0; } static void append_string(const char *str, int size) { int new_size = text_size + size + 1; if (new_size > text_asize) { new_size += START_STRSIZE - 1; new_size &= -START_STRSIZE; text = xrealloc(text, new_size); text_asize = new_size; } memcpy(text + text_size, str, size); text_size += size; text[text_size] = 0; } static void alloc_string(const char *str, int size) { text = xmalloc(size + 1); memcpy(text, str, size); text[size] = 0; } static void warn_ignored_character(char chr) { fprintf(stderr, "%s:%d:warning: ignoring unsupported character '%c'\n", zconf_curname(), zconf_lineno(), chr); } %} n [A-Za-z0-9_-] %% int str = 0; int ts, i; [ \t]*#.*\n | [ \t]*\n { return T_EOL; } [ \t]*#.* [ \t]+ { BEGIN(COMMAND); } . { unput(yytext[0]); BEGIN(COMMAND); } { {n}+ { const struct kconf_id *id = kconf_id_lookup(yytext, yyleng); BEGIN(PARAM); current_pos.file = current_file; current_pos.lineno = yylineno; if (id && id->flags & TF_COMMAND) { yylval.id = id; return id->token; } alloc_string(yytext, yyleng); yylval.string = text; return T_WORD; } . warn_ignored_character(*yytext); \n { BEGIN(INITIAL); return T_EOL; } } { "&&" return T_AND; "||" return T_OR; "(" return T_OPEN_PAREN; ")" return T_CLOSE_PAREN; "!" return T_NOT; "=" return T_EQUAL; "!=" return T_UNEQUAL; "<=" return T_LESS_EQUAL; ">=" return T_GREATER_EQUAL; "<" return T_LESS; ">" return T_GREATER; \"|\' { str = yytext[0]; new_string(); BEGIN(STRING); } \n BEGIN(INITIAL); return T_EOL; ({n}|[/.])+ { const struct kconf_id *id = kconf_id_lookup(yytext, yyleng); if (id && id->flags & TF_PARAM) { yylval.id = id; return id->token; } alloc_string(yytext, yyleng); yylval.string = text; return T_WORD; } #.* /* comment */ \\\n ; [[:blank:]]+ . warn_ignored_character(*yytext); <> { BEGIN(INITIAL); } } { [^'"\\\n]+/\n { append_string(yytext, yyleng); yylval.string = text; return T_WORD_QUOTE; } [^'"\\\n]+ { append_string(yytext, yyleng); } \\.?/\n { append_string(yytext + 1, yyleng - 1); yylval.string = text; return T_WORD_QUOTE; } \\.? { append_string(yytext + 1, yyleng - 1); } \'|\" { if (str == yytext[0]) { BEGIN(PARAM); yylval.string = text; return T_WORD_QUOTE; } else append_string(yytext, 1); } \n { fprintf(stderr, "%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno()); BEGIN(INITIAL); return T_EOL; } <> { BEGIN(INITIAL); } } { [ \t]+ { ts = 0; for (i = 0; i < yyleng; i++) { if (yytext[i] == '\t') ts = (ts & ~7) + 8; else ts++; } last_ts = ts; if (first_ts) { if (ts < first_ts) { zconf_endhelp(); return T_HELPTEXT; } ts -= first_ts; while (ts > 8) { append_string(" ", 8); ts -= 8; } append_string(" ", ts); } } [ \t]*\n/[^ \t\n] { zconf_endhelp(); return T_HELPTEXT; } [ \t]*\n { append_string("\n", 1); } [^ \t\n].* { while (yyleng) { if ((yytext[yyleng-1] != ' ') && (yytext[yyleng-1] != '\t')) break; yyleng--; } append_string(yytext, yyleng); if (!first_ts) first_ts = last_ts; } <> { zconf_endhelp(); return T_HELPTEXT; } } <> { if (current_file) { zconf_endfile(); return T_EOL; } fclose(yyin); yyterminate(); } %% void zconf_starthelp(void) { new_string(); last_ts = first_ts = 0; BEGIN(HELP); } static void zconf_endhelp(void) { yylval.string = text; BEGIN(INITIAL); } /* * Try to open specified file with following names: * ./name * $(srctree)/name * The latter is used when srctree is separate from objtree * when compiling the kernel. * Return NULL if file is not found. */ FILE *zconf_fopen(const char *name) { char *env, fullname[PATH_MAX+1]; FILE *f; f = fopen(name, "r"); if (!f && name != NULL && name[0] != '/') { env = getenv(SRCTREE); if (env) { sprintf(fullname, "%s/%s", env, name); f = fopen(fullname, "r"); } } return f; } void zconf_initscan(const char *name) { yyin = zconf_fopen(name); if (!yyin) { fprintf(stderr, "can't find file %s\n", name); exit(1); } current_buf = xmalloc(sizeof(*current_buf)); memset(current_buf, 0, sizeof(*current_buf)); current_file = file_lookup(name); yylineno = 1; } void zconf_nextfile(const char *name) { struct file *iter; struct file *file = file_lookup(name); struct buffer *buf = xmalloc(sizeof(*buf)); memset(buf, 0, sizeof(*buf)); current_buf->state = YY_CURRENT_BUFFER; yyin = zconf_fopen(file->name); if (!yyin) { fprintf(stderr, "%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), file->name); exit(1); } yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE)); buf->parent = current_buf; current_buf = buf; current_file->lineno = yylineno; file->parent = current_file; for (iter = current_file; iter; iter = iter->parent) { if (!strcmp(iter->name, file->name)) { fprintf(stderr, "Recursive inclusion detected.\n" "Inclusion path:\n" " current file : %s\n", file->name); iter = file; do { iter = iter->parent; fprintf(stderr, " included from: %s:%d\n", iter->name, iter->lineno - 1); } while (strcmp(iter->name, file->name)); exit(1); } } yylineno = 1; current_file = file; } static void zconf_endfile(void) { struct buffer *parent; current_file = current_file->parent; if (current_file) yylineno = current_file->lineno; parent = current_buf->parent; if (parent) { fclose(yyin); yy_delete_buffer(YY_CURRENT_BUFFER); yy_switch_to_buffer(parent->state); } free(current_buf); current_buf = parent; } int zconf_lineno(void) { return current_pos.lineno; } const char *zconf_curname(void) { return current_pos.file ? current_pos.file->name : ""; } ================================================ FILE: support/kconfig/zconf.lex.c_shipped ================================================ #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 #define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #ifndef SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ /* TODO: this is always defined, so inline it */ #define yyconst const #if defined(__GNUC__) && __GNUC__ >= 3 #define yynoreturn __attribute__((__noreturn__)) #else #define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an * integer in range [0..255] for use as an array index. */ #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires * access to the local variable yy_act. Since yyless() is a macro, it would break * existing scanners that call yyless() from OUTSIDE yylex. * One obvious solution it to make yy_act a global. I tried that, and saw * a 5% performance hit in a non-yylineno scanner, because yy_act is * normally declared as a register variable-- so it is not worth it. */ #define YY_LESS_LINENO(n) \ do { \ int yyl;\ for ( yyl = n; yyl < yyleng; ++yyl )\ if ( yytext[yyl] == '\n' )\ --yylineno;\ }while(0) #define YY_LINENO_REWIND_TO(dst) \ do {\ const char *p;\ for ( p = yy_cp-1; p >= (dst); --p)\ if ( *p == '\n' )\ --yylineno;\ }while(0) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart ( FILE *input_file ); void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); void yy_delete_buffer ( YY_BUFFER_STATE b ); void yy_flush_buffer ( YY_BUFFER_STATE b ); void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); void yypop_buffer_state ( void ); static void yyensure_buffer_stack ( void ); static void yy_load_buffer_state ( void ); static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); void *yyalloc ( yy_size_t ); void *yyrealloc ( void *, yy_size_t ); void yyfree ( void * ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define yywrap() (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP typedef flex_uint8_t YY_CHAR; FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; int yylineno = 1; extern char *yytext; #ifdef yytext_ptr #undef yytext_ptr #endif #define yytext_ptr yytext static const flex_int16_t yy_nxt[][18] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 11, 12, 13, 14, 12, 12, 15, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 }, { 11, 12, 13, 14, 12, 12, 15, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 }, { 11, 16, 16, 17, 16, 16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 16, 16 }, { 11, 16, 16, 17, 16, 16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 16, 16 }, { 11, 19, 20, 21, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19 }, { 11, 19, 20, 21, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19 }, { 11, 22, 22, 23, 22, 24, 22, 22, 24, 22, 22, 22, 22, 22, 22, 22, 25, 22 }, { 11, 22, 22, 23, 22, 24, 22, 22, 24, 22, 22, 22, 22, 22, 22, 22, 25, 22 }, { 11, 26, 27, 28, 29, 30, 31, 32, 30, 33, 34, 35, 35, 36, 37, 38, 39, 40 }, { 11, 26, 27, 28, 29, 30, 31, 32, 30, 33, 34, 35, 35, 36, 37, 38, 39, 40 }, { -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11 }, { 11, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12 }, { 11, -13, 41, 42, -13, -13, 43, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13 }, { 11, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14 }, { 11, 44, 44, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 }, { 11, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16 }, { 11, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17 }, { 11, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 46, -18, -18, -18, -18, -18, -18 }, { 11, 47, 47, -19, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47 }, { 11, -20, 48, 49, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20 }, { 11, 50, -21, -21, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }, { 11, 51, 51, 52, 51, -22, 51, 51, -22, 51, 51, 51, 51, 51, 51, 51, -22, 51 }, { 11, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23 }, { 11, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24 }, { 11, 53, 53, 54, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53 }, { 11, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26 }, { 11, -27, 55, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27 }, { 11, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28 }, { 11, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, 56, -29, -29, -29 }, { 11, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30 }, { 11, 57, 57, -31, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57 }, { 11, -32, -32, -32, -32, -32, -32, 58, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32 }, { 11, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33 }, { 11, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34 }, { 11, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 59, 59, -35, -35, -35, -35, -35 }, { 11, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 60, -36, -36, -36 }, { 11, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37 }, { 11, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, 61, -38, -38, -38 }, { 11, -39, -39, 62, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39 }, { 11, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, 63 }, { 11, -41, 41, 42, -41, -41, 43, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41 }, { 11, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42 }, { 11, 44, 44, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 }, { 11, 44, 44, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 }, { 11, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45 }, { 11, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, 46, -46, -46, -46, -46, -46, -46 }, { 11, 47, 47, -47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47 }, { 11, -48, 48, 49, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48 }, { 11, 50, -49, -49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }, { 11, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50 }, { 11, 51, 51, 52, 51, -51, 51, 51, -51, 51, 51, 51, 51, 51, 51, 51, -51, 51 }, { 11, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52 }, { 11, -53, -53, 54, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53 }, { 11, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54 }, { 11, -55, 55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55 }, { 11, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56 }, { 11, 57, 57, -57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57 }, { 11, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58 }, { 11, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, 59, 59, -59, -59, -59, -59, -59 }, { 11, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60 }, { 11, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61 }, { 11, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62 }, { 11, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63 }, } ; static yy_state_type yy_get_previous_state ( void ); static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); static int yy_get_next_buffer ( void ); static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 37 #define YY_END_OF_BUFFER 38 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static const flex_int16_t yy_accept[64] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 5, 4, 2, 3, 7, 8, 6, 36, 33, 35, 28, 32, 31, 30, 26, 25, 21, 13, 20, 23, 26, 11, 12, 22, 18, 14, 19, 26, 26, 4, 2, 3, 3, 1, 6, 36, 33, 35, 34, 28, 27, 30, 29, 25, 15, 23, 9, 22, 16, 17, 24, 10 } ; static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 5, 6, 1, 1, 7, 8, 9, 10, 1, 1, 1, 11, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1, 1, 13, 14, 15, 1, 1, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1, 16, 1, 1, 11, 1, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1, 17, 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, 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, 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, 1, 1 } ; /* Table of booleans, true if rule could match eol. */ static const flex_int32_t yy_rule_can_match_eol[38] = { 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, }; extern int yy_flex_debug; int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #define YY_NO_INPUT 1 /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ #include #include #include #include #include #include "lkc.h" #define START_STRSIZE 16 static struct { struct file *file; int lineno; } current_pos; static char *text; static int text_size, text_asize; struct buffer { struct buffer *parent; YY_BUFFER_STATE state; }; struct buffer *current_buf; static int last_ts, first_ts; static void zconf_endhelp(void); static void zconf_endfile(void); static void new_string(void) { text = xmalloc(START_STRSIZE); text_asize = START_STRSIZE; text_size = 0; *text = 0; } static void append_string(const char *str, int size) { int new_size = text_size + size + 1; if (new_size > text_asize) { new_size += START_STRSIZE - 1; new_size &= -START_STRSIZE; text = xrealloc(text, new_size); text_asize = new_size; } memcpy(text + text_size, str, size); text_size += size; text[text_size] = 0; } static void alloc_string(const char *str, int size) { text = xmalloc(size + 1); memcpy(text, str, size); text[size] = 0; } static void warn_ignored_character(char chr) { fprintf(stderr, "%s:%d:warning: ignoring unsupported character '%c'\n", zconf_curname(), zconf_lineno(), chr); } #define INITIAL 0 #define COMMAND 1 #define HELP 2 #define STRING 3 #define PARAM 4 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy ( void ); int yyget_debug ( void ); void yyset_debug ( int debug_flag ); YY_EXTRA_TYPE yyget_extra ( void ); void yyset_extra ( YY_EXTRA_TYPE user_defined ); FILE *yyget_in ( void ); void yyset_in ( FILE * _in_str ); FILE *yyget_out ( void ); void yyset_out ( FILE * _out_str ); int yyget_leng ( void ); char *yyget_text ( void ); int yyget_lineno ( void ); void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap ( void ); #else extern int yywrap ( void ); #endif #endif #ifndef YY_NO_UNPUT static void yyunput ( int c, char *buf_ptr ); #endif #ifndef yytext_ptr static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput ( void ); #else static int input ( void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ errno=0; \ while ( (result = (int) read( fileno(yyin), buf, (yy_size_t) max_size )) < 0 ) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex (void); #define YY_DECL int yylex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { yy_state_type yy_current_state; char *yy_cp, *yy_bp; int yy_act; if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_load_buffer_state( ); } { int str = 0; int ts, i; while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_match: while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)] ]) > 0 ) ++yy_cp; yy_current_state = -yy_current_state; yy_find_action: yy_act = yy_accept[yy_current_state]; YY_DO_BEFORE_ACTION; if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) { int yyl; for ( yyl = 0; yyl < yyleng; ++yyl ) if ( yytext[yyl] == '\n' ) yylineno++; ; } do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 1: /* rule 1 can match eol */ case 2: /* rule 2 can match eol */ YY_RULE_SETUP { return T_EOL; } YY_BREAK case 3: YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP { BEGIN(COMMAND); } YY_BREAK case 5: YY_RULE_SETUP { unput(yytext[0]); BEGIN(COMMAND); } YY_BREAK case 6: YY_RULE_SETUP { const struct kconf_id *id = kconf_id_lookup(yytext, yyleng); BEGIN(PARAM); current_pos.file = current_file; current_pos.lineno = yylineno; if (id && id->flags & TF_COMMAND) { yylval.id = id; return id->token; } alloc_string(yytext, yyleng); yylval.string = text; return T_WORD; } YY_BREAK case 7: YY_RULE_SETUP warn_ignored_character(*yytext); YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP { BEGIN(INITIAL); return T_EOL; } YY_BREAK case 9: YY_RULE_SETUP return T_AND; YY_BREAK case 10: YY_RULE_SETUP return T_OR; YY_BREAK case 11: YY_RULE_SETUP return T_OPEN_PAREN; YY_BREAK case 12: YY_RULE_SETUP return T_CLOSE_PAREN; YY_BREAK case 13: YY_RULE_SETUP return T_NOT; YY_BREAK case 14: YY_RULE_SETUP return T_EQUAL; YY_BREAK case 15: YY_RULE_SETUP return T_UNEQUAL; YY_BREAK case 16: YY_RULE_SETUP return T_LESS_EQUAL; YY_BREAK case 17: YY_RULE_SETUP return T_GREATER_EQUAL; YY_BREAK case 18: YY_RULE_SETUP return T_LESS; YY_BREAK case 19: YY_RULE_SETUP return T_GREATER; YY_BREAK case 20: YY_RULE_SETUP { str = yytext[0]; new_string(); BEGIN(STRING); } YY_BREAK case 21: /* rule 21 can match eol */ YY_RULE_SETUP BEGIN(INITIAL); return T_EOL; YY_BREAK case 22: YY_RULE_SETUP { const struct kconf_id *id = kconf_id_lookup(yytext, yyleng); if (id && id->flags & TF_PARAM) { yylval.id = id; return id->token; } alloc_string(yytext, yyleng); yylval.string = text; return T_WORD; } YY_BREAK case 23: YY_RULE_SETUP /* comment */ YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP ; YY_BREAK case 25: YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP warn_ignored_character(*yytext); YY_BREAK case YY_STATE_EOF(PARAM): { BEGIN(INITIAL); } YY_BREAK case 27: /* rule 27 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP { append_string(yytext, yyleng); yylval.string = text; return T_WORD_QUOTE; } YY_BREAK case 28: YY_RULE_SETUP { append_string(yytext, yyleng); } YY_BREAK case 29: /* rule 29 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP { append_string(yytext + 1, yyleng - 1); yylval.string = text; return T_WORD_QUOTE; } YY_BREAK case 30: YY_RULE_SETUP { append_string(yytext + 1, yyleng - 1); } YY_BREAK case 31: YY_RULE_SETUP { if (str == yytext[0]) { BEGIN(PARAM); yylval.string = text; return T_WORD_QUOTE; } else append_string(yytext, 1); } YY_BREAK case 32: /* rule 32 can match eol */ YY_RULE_SETUP { fprintf(stderr, "%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno()); BEGIN(INITIAL); return T_EOL; } YY_BREAK case YY_STATE_EOF(STRING): { BEGIN(INITIAL); } YY_BREAK case 33: YY_RULE_SETUP { ts = 0; for (i = 0; i < yyleng; i++) { if (yytext[i] == '\t') ts = (ts & ~7) + 8; else ts++; } last_ts = ts; if (first_ts) { if (ts < first_ts) { zconf_endhelp(); return T_HELPTEXT; } ts -= first_ts; while (ts > 8) { append_string(" ", 8); ts -= 8; } append_string(" ", ts); } } YY_BREAK case 34: /* rule 34 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP { zconf_endhelp(); return T_HELPTEXT; } YY_BREAK case 35: /* rule 35 can match eol */ YY_RULE_SETUP { append_string("\n", 1); } YY_BREAK case 36: YY_RULE_SETUP { while (yyleng) { if ((yytext[yyleng-1] != ' ') && (yytext[yyleng-1] != '\t')) break; yyleng--; } append_string(yytext, yyleng); if (!first_ts) first_ts = last_ts; } YY_BREAK case YY_STATE_EOF(HELP): { zconf_endhelp(); return T_HELPTEXT; } YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(COMMAND): { if (current_file) { zconf_endfile(); return T_EOL; } fclose(yyin); yyterminate(); } YY_BREAK case 37: YY_RULE_SETUP YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc( (void *) b->yy_ch_buf, (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); /* "- 2" to take care of EOB's */ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (void) { yy_state_type yy_current_state; char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { int yy_is_jam; yy_current_state = yy_nxt[yy_current_state][1]; yy_is_jam = (yy_current_state <= 0); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT static void yyunput (int c, char * yy_bp ) { char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up yytext */ *yy_cp = (yy_hold_char); if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ int number_to_move = (yy_n_chars) + 2; char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; if ( c == '\n' ){ --yylineno; } (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) #else static int input (void) #endif { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); if ( c == '\n' ) yylineno++; ; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_init_buffer( YY_CURRENT_BUFFER, input_file ); yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * */ void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree( (void *) b->yy_ch_buf ); yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; yyensure_buffer_stack(); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void yyensure_buffer_stack (void) { yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return NULL; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } /** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ YY_BUFFER_STATE yy_scan_string (const char * yystr ) { return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yynoreturn yy_fatal_error (const char* msg ) { fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int yyget_lineno (void) { return yylineno; } /** Get the input stream. * */ FILE *yyget_in (void) { return yyin; } /** Get the output stream. * */ FILE *yyget_out (void) { return yyout; } /** Get the length of the current token. * */ int yyget_leng (void) { return yyleng; } /** Get the current token. * */ char *yyget_text (void) { return yytext; } /** Set the current line number. * @param _line_number line number * */ void yyset_lineno (int _line_number ) { yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * * @see yy_switch_to_buffer */ void yyset_in (FILE * _in_str ) { yyin = _in_str ; } void yyset_out (FILE * _out_str ) { yyout = _out_str ; } int yyget_debug (void) { return yy_flex_debug; } void yyset_debug (int _bdebug ) { yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ /* We do not touch yylineno unless the option is enabled. */ yylineno = 1; (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = NULL; yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by * yylex_init() */ return 0; } /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } /* Destroy the stack itself. */ yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, const char * s2, int n ) { int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size ) { return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return realloc(ptr, size); } void yyfree (void * ptr ) { free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" void zconf_starthelp(void) { new_string(); last_ts = first_ts = 0; BEGIN(HELP); } static void zconf_endhelp(void) { yylval.string = text; BEGIN(INITIAL); } /* * Try to open specified file with following names: * ./name * $(srctree)/name * The latter is used when srctree is separate from objtree * when compiling the kernel. * Return NULL if file is not found. */ FILE *zconf_fopen(const char *name) { char *env, fullname[PATH_MAX+1]; FILE *f; f = fopen(name, "r"); if (!f && name != NULL && name[0] != '/') { env = getenv(SRCTREE); if (env) { sprintf(fullname, "%s/%s", env, name); f = fopen(fullname, "r"); } } return f; } void zconf_initscan(const char *name) { yyin = zconf_fopen(name); if (!yyin) { fprintf(stderr, "can't find file %s\n", name); exit(1); } current_buf = xmalloc(sizeof(*current_buf)); memset(current_buf, 0, sizeof(*current_buf)); current_file = file_lookup(name); yylineno = 1; } void zconf_nextfile(const char *name) { struct file *iter; struct file *file = file_lookup(name); struct buffer *buf = xmalloc(sizeof(*buf)); memset(buf, 0, sizeof(*buf)); current_buf->state = YY_CURRENT_BUFFER; yyin = zconf_fopen(file->name); if (!yyin) { fprintf(stderr, "%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), file->name); exit(1); } yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE)); buf->parent = current_buf; current_buf = buf; current_file->lineno = yylineno; file->parent = current_file; for (iter = current_file; iter; iter = iter->parent) { if (!strcmp(iter->name, file->name)) { fprintf(stderr, "Recursive inclusion detected.\n" "Inclusion path:\n" " current file : %s\n", file->name); iter = file; do { iter = iter->parent; fprintf(stderr, " included from: %s:%d\n", iter->name, iter->lineno - 1); } while (strcmp(iter->name, file->name)); exit(1); } } yylineno = 1; current_file = file; } static void zconf_endfile(void) { struct buffer *parent; current_file = current_file->parent; if (current_file) yylineno = current_file->lineno; parent = current_buf->parent; if (parent) { fclose(yyin); yy_delete_buffer(YY_CURRENT_BUFFER); yy_switch_to_buffer(parent->state); } free(current_buf); current_buf = parent; } int zconf_lineno(void) { return current_pos.lineno; } const char *zconf_curname(void) { return current_pos.file ? current_pos.file->name : ""; } ================================================ FILE: support/kconfig/zconf.tab.c_shipped ================================================ /* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 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 . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "3.0.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 0 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* Copy the first part of user declarations. */ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ #include #include #include #include #include #include #include "lkc.h" #define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt) #define PRINTD 0x0001 #define DEBUG_PARSE 0x0002 int cdebug = PRINTD; int yylex(void); static void yyerror(const char *err); static void zconfprint(const char *err, ...); static void zconf_error(const char *err, ...); static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken); struct symbol *symbol_hash[SYMBOL_HASHSIZE]; static struct menu *current_menu, *current_entry; # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus # define YY_NULLPTR nullptr # else # define YY_NULLPTR 0 # endif # endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif #if YYDEBUG extern int yydebug; #endif /* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { T_MAINMENU = 258, T_MENU = 259, T_ENDMENU = 260, T_SOURCE = 261, T_CHOICE = 262, T_ENDCHOICE = 263, T_COMMENT = 264, T_CONFIG = 265, T_MENUCONFIG = 266, T_HELP = 267, T_HELPTEXT = 268, T_IF = 269, T_ENDIF = 270, T_DEPENDS = 271, T_OPTIONAL = 272, T_PROMPT = 273, T_TYPE = 274, T_DEFAULT = 275, T_SELECT = 276, T_IMPLY = 277, T_RANGE = 278, T_VISIBLE = 279, T_OPTION = 280, T_ON = 281, T_WORD = 282, T_WORD_QUOTE = 283, T_UNEQUAL = 284, T_LESS = 285, T_LESS_EQUAL = 286, T_GREATER = 287, T_GREATER_EQUAL = 288, T_CLOSE_PAREN = 289, T_OPEN_PAREN = 290, T_EOL = 291, T_OR = 292, T_AND = 293, T_EQUAL = 294, T_NOT = 295 }; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { char *string; struct file *file; struct symbol *symbol; struct expr *expr; struct menu *menu; const struct kconf_id *id; }; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif extern YYSTYPE yylval; int yyparse (void); /* Copy the second part of user declarations. */ /* Include kconf_id.c here so it can see the token constants. */ #include "kconf_id.c" #ifdef short # undef short #endif #ifdef YYTYPE_UINT8 typedef YYTYPE_UINT8 yytype_uint8; #else typedef unsigned char yytype_uint8; #endif #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; #else typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else typedef unsigned short int yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else typedef short int yytype_int16; #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif ! defined YYSIZE_T # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned int # endif #endif #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ # define YY_(Msgid) Msgid # endif #endif #ifndef YY_ATTRIBUTE # if (defined __GNUC__ \ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C # define YY_ATTRIBUTE(Spec) __attribute__(Spec) # else # define YY_ATTRIBUTE(Spec) /* empty */ # endif #endif #ifndef YY_ATTRIBUTE_PURE # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) #endif #ifndef YY_ATTRIBUTE_UNUSED # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) #endif #if !defined _Noreturn \ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) # if defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) #else # define YYUSE(E) /* empty */ #endif #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value #endif #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif #ifndef YY_INITIAL_VALUE # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's 'empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yytype_int16 yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 11 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 325 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 41 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 52 /* YYNRULES -- Number of rules. */ #define YYNRULES 126 /* YYNSTATES -- Number of states. */ #define YYNSTATES 206 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 295 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex, without out-of-bounds checking. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 110, 110, 110, 112, 112, 116, 124, 134, 136, 137, 138, 139, 140, 141, 145, 149, 149, 149, 149, 149, 149, 149, 149, 149, 153, 154, 155, 156, 157, 158, 162, 163, 169, 176, 181, 188, 197, 199, 200, 201, 202, 203, 204, 207, 215, 221, 231, 237, 243, 249, 252, 254, 267, 268, 273, 283, 288, 296, 299, 301, 302, 303, 304, 305, 308, 314, 325, 331, 341, 343, 348, 356, 364, 367, 369, 370, 371, 376, 383, 388, 396, 399, 401, 402, 403, 406, 415, 422, 427, 433, 451, 453, 454, 455, 458, 466, 468, 469, 472, 479, 481, 486, 487, 490, 491, 492, 496, 497, 500, 501, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 518, 520, 521, 524, 525 }; #endif #if YYDEBUG || YYERROR_VERBOSE || 0 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU", "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG", "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_IMPLY", "T_RANGE", "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", "T_LESS", "T_LESS_EQUAL", "T_GREATER", "T_GREATER_EQUAL", "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "start", "mainmenu_stmt", "no_mainmenu_stmt", "stmt_list", "option_name", "common_stmt", "option_error", "config_entry_start", "config_stmt", "menuconfig_entry_start", "menuconfig_stmt", "config_option_list", "config_option", "symbol_option", "symbol_option_list", "symbol_option_arg", "choice", "choice_entry", "choice_end", "choice_stmt", "choice_option_list", "choice_option", "choice_block", "if_entry", "if_end", "if_stmt", "if_block", "menu", "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt", "comment", "comment_stmt", "help_start", "help", "depends_list", "depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr", "nonconst_symbol", "symbol", "word_opt", YY_NULLPTR }; #endif # ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295 }; # endif #define YYPACT_NINF -92 #define yypact_value_is_default(Yystate) \ (!!((Yystate) == (-92))) #define YYTABLE_NINF -89 #define yytable_value_is_error(Yytable_value) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { 20, 33, -92, 16, -92, -92, -92, 21, -92, -92, 29, -92, 152, 186, -92, -92, 40, 67, 33, 71, 33, 42, 80, 33, 78, 78, 31, 82, -92, -92, -92, -92, -92, -92, -92, -92, -92, 120, -92, 131, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, 109, -92, 118, -92, 128, -92, 129, -92, 141, 142, -92, 31, 31, 74, -92, 69, -92, 144, 145, 28, 119, 248, 286, 77, 38, 77, 219, -92, -92, -92, -92, -92, -92, -7, -92, 31, 31, 40, 52, 52, 52, 52, 52, 52, -92, -92, 146, 147, 158, 33, 33, 31, 78, 78, 52, -92, 184, -92, -92, -92, -92, 176, -92, -92, 162, 33, 33, 78, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, 197, -92, 272, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, 174, -92, -92, -92, -92, -92, -92, -92, -92, -92, 31, 197, 178, 197, 59, 197, 197, 52, 27, 179, -92, -92, 197, 180, 197, 31, -92, 111, 181, -92, -92, 182, 185, 195, 197, 193, -92, -92, 208, -92, 209, 113, -92, -92, -92, -92, -92, 211, 33, -92, -92, -92, -92, -92 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ static const yytype_uint8 yydefact[] = { 7, 0, 107, 0, 3, 8, 8, 7, 102, 103, 0, 1, 0, 0, 108, 2, 6, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 16, 21, 17, 18, 23, 19, 20, 22, 24, 0, 25, 0, 9, 37, 28, 37, 29, 59, 69, 10, 74, 26, 96, 82, 11, 30, 91, 27, 12, 15, 0, 104, 0, 126, 0, 105, 0, 122, 0, 0, 124, 0, 0, 0, 123, 111, 106, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 78, 86, 55, 87, 33, 35, 0, 119, 0, 0, 71, 0, 0, 0, 0, 0, 0, 13, 14, 0, 0, 0, 0, 100, 0, 0, 0, 0, 51, 0, 43, 42, 38, 39, 0, 41, 40, 0, 0, 100, 0, 63, 64, 60, 62, 61, 70, 58, 57, 75, 77, 73, 76, 72, 109, 98, 0, 97, 83, 85, 81, 84, 80, 93, 94, 92, 118, 120, 121, 117, 112, 113, 114, 115, 116, 32, 89, 0, 109, 0, 109, 109, 109, 109, 0, 0, 0, 90, 67, 109, 0, 109, 0, 99, 0, 0, 44, 101, 0, 0, 0, 109, 53, 50, 31, 0, 66, 0, 110, 95, 45, 46, 47, 48, 0, 0, 52, 65, 68, 49, 54 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -92, -92, 241, -92, -92, 244, -92, -13, -66, -92, -92, -92, -92, 218, -92, -92, -92, -92, -92, -92, -92, -69, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, 12, -92, -92, -92, -92, -92, 172, 170, -64, -92, -92, 148, -1, 34, 1, 139, -68, -21, -91, -92 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 3, 4, 5, 6, 12, 39, 40, 116, 41, 42, 43, 44, 77, 117, 118, 170, 201, 45, 46, 132, 47, 79, 128, 80, 48, 136, 49, 81, 50, 51, 145, 52, 83, 53, 54, 55, 119, 120, 84, 121, 82, 142, 164, 165, 56, 7, 178, 71, 72, 73, 62 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { 10, 91, 92, 66, 67, 154, 155, 156, 157, 158, 159, 16, 135, 127, 144, 130, 11, 58, 149, 60, 150, 169, 64, 1, 1, 152, 153, 151, -34, 104, 93, 94, -34, -34, -34, -34, -34, -34, -34, -34, 105, 166, -34, -34, 106, -34, 107, 108, 109, 110, 111, 112, -34, 113, 187, 114, 2, 14, 65, 68, 8, 9, 139, 188, 115, 2, 69, 131, 134, 61, 143, 70, 95, 177, 140, 149, 14, 150, 186, 65, 68, 18, 19, 20, 21, 22, 23, 24, 25, 167, 168, 26, 27, 137, 179, 146, 93, 94, 96, 97, 98, 99, 100, 57, 176, 65, 163, 59, 101, 193, 2, 93, 94, 38, 133, 138, 63, 147, 74, -36, 104, 75, 174, -36, -36, -36, -36, -36, -36, -36, -36, 105, 76, -36, -36, 106, -36, 107, 108, 109, 110, 111, 112, -36, 113, 85, 114, 194, 93, 94, 93, 94, -4, 17, 86, 115, 18, 19, 20, 21, 22, 23, 24, 25, 87, 88, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 89, 90, 37, 102, 103, 160, 161, 162, 171, -5, 17, 38, 172, 18, 19, 20, 21, 22, 23, 24, 25, 173, 205, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 177, 94, 37, 181, 189, 191, 195, 196, -88, 104, 197, 38, -88, -88, -88, -88, -88, -88, -88, -88, 198, 200, -88, -88, 106, -88, -88, -88, -88, -88, -88, -88, -88, 202, 203, 114, 204, 15, 104, 13, 129, 141, -56, -56, 148, -56, -56, -56, -56, 105, 78, -56, -56, 106, 122, 123, 124, 125, 0, 0, 0, 175, 104, 0, 114, -79, -79, -79, -79, -79, -79, -79, -79, 126, 0, -79, -79, 106, 0, 0, 19, 20, 0, 22, 23, 24, 25, 0, 114, 26, 27, 180, 0, 182, 183, 184, 185, 148, 0, 0, 0, 0, 190, 0, 192, 0, 0, 0, 0, 0, 0, 38, 0, 0, 199 }; static const yytype_int16 yycheck[] = { 1, 69, 70, 24, 25, 96, 97, 98, 99, 100, 101, 10, 81, 79, 83, 79, 0, 18, 84, 20, 84, 112, 23, 3, 3, 93, 94, 34, 0, 1, 37, 38, 4, 5, 6, 7, 8, 9, 10, 11, 12, 109, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 27, 36, 36, 27, 28, 27, 28, 24, 36, 36, 36, 35, 80, 81, 27, 83, 40, 71, 14, 36, 141, 36, 141, 169, 27, 28, 4, 5, 6, 7, 8, 9, 10, 11, 110, 111, 14, 15, 81, 162, 83, 37, 38, 29, 30, 31, 32, 33, 36, 125, 27, 107, 36, 39, 177, 36, 37, 38, 36, 80, 81, 36, 83, 36, 0, 1, 1, 123, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 36, 27, 36, 37, 38, 37, 38, 0, 1, 36, 36, 4, 5, 6, 7, 8, 9, 10, 11, 36, 36, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 36, 36, 27, 36, 36, 36, 36, 26, 1, 0, 1, 36, 13, 4, 5, 6, 7, 8, 9, 10, 11, 36, 200, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 14, 38, 27, 36, 36, 36, 36, 36, 0, 1, 36, 36, 4, 5, 6, 7, 8, 9, 10, 11, 36, 39, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 36, 36, 27, 36, 7, 1, 6, 79, 82, 5, 6, 36, 8, 9, 10, 11, 12, 43, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 124, 1, -1, 27, 4, 5, 6, 7, 8, 9, 10, 11, 36, -1, 14, 15, 16, -1, -1, 5, 6, -1, 8, 9, 10, 11, -1, 27, 14, 15, 163, -1, 165, 166, 167, 168, 36, -1, -1, -1, -1, 174, -1, 176, -1, -1, -1, -1, -1, -1, 36, -1, -1, 186 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { 0, 3, 36, 42, 43, 44, 45, 87, 27, 28, 85, 0, 46, 46, 36, 43, 87, 1, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 36, 47, 48, 50, 51, 52, 53, 59, 60, 62, 66, 68, 70, 71, 73, 75, 76, 77, 86, 36, 85, 36, 85, 27, 92, 36, 85, 27, 90, 90, 28, 35, 40, 89, 90, 91, 36, 1, 1, 54, 54, 63, 65, 69, 82, 74, 80, 36, 36, 36, 36, 36, 36, 89, 89, 37, 38, 87, 29, 30, 31, 32, 33, 39, 36, 36, 1, 12, 16, 18, 19, 20, 21, 22, 23, 25, 27, 36, 49, 55, 56, 78, 79, 81, 17, 18, 19, 20, 36, 49, 64, 79, 81, 48, 61, 86, 48, 62, 67, 73, 86, 24, 36, 80, 83, 48, 62, 72, 73, 86, 36, 49, 81, 34, 89, 89, 91, 91, 91, 91, 91, 91, 36, 36, 26, 85, 84, 85, 89, 90, 90, 91, 57, 1, 13, 36, 85, 84, 90, 14, 88, 89, 88, 36, 88, 88, 88, 88, 91, 27, 36, 36, 88, 36, 88, 89, 36, 36, 36, 36, 36, 88, 39, 58, 36, 36, 36, 85 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { 0, 41, 42, 42, 43, 43, 44, 45, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 49, 49, 50, 51, 52, 53, 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 56, 57, 57, 58, 58, 59, 60, 61, 62, 63, 63, 63, 63, 63, 63, 64, 64, 64, 64, 65, 65, 66, 67, 68, 69, 69, 69, 69, 70, 71, 72, 73, 74, 74, 74, 74, 75, 76, 77, 78, 79, 80, 80, 80, 80, 81, 82, 82, 82, 83, 84, 84, 85, 85, 86, 86, 86, 87, 87, 88, 88, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 2, 1, 2, 2, 3, 0, 0, 2, 2, 2, 2, 4, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 3, 2, 3, 2, 0, 2, 2, 2, 2, 2, 2, 3, 4, 4, 4, 4, 5, 3, 0, 3, 0, 2, 3, 2, 1, 3, 0, 2, 2, 2, 2, 2, 4, 3, 2, 4, 0, 2, 3, 1, 3, 0, 2, 2, 2, 3, 3, 1, 3, 0, 2, 2, 2, 3, 3, 2, 2, 2, 0, 2, 2, 2, 4, 0, 2, 2, 2, 0, 2, 1, 1, 2, 2, 2, 1, 2, 0, 2, 1, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 1, 1, 1, 0, 1 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ YYPOPSTACK (yylen); \ yystate = *yyssp; \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) /* Error token number */ #define YYTERROR 1 #define YYERRCODE 256 /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) /* This macro is provided for backward compatibility. */ #ifndef YY_LOCATION_PRINT # define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*----------------------------------------. | Print this symbol's value on YYOUTPUT. | `----------------------------------------*/ static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) { FILE *yyo = yyoutput; YYUSE (yyo); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # endif YYUSE (yytype); } /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) { YYFPRINTF (yyoutput, "%s %s (", yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep); YYFPRINTF (yyoutput, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ static void yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) { unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yystos[yyssp[yyi + 1 - yynrhs]], &(yyvsp[(yyi + 1) - (yynrhs)]) ); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyssp, yyvsp, Rule); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ static YYSIZE_T yystrlen (const char *yystr) { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } # endif # endif # ifndef yystpcpy # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ static char * yystpcpy (char *yydest, const char *yysrc) { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; /* Fall through. */ default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (! yyres) return yystrlen (yystr); return yystpcpy (yyres, yystr) - yyres; } # endif /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message about the unexpected token YYTOKEN for the state stack whose top is YYSSP. Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is not large enough to hold the message. In that case, also set *YYMSG_ALLOC to the required number of bytes. Return 2 if the required number of bytes is too large to store. */ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ const char *yyformat = YY_NULLPTR; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per "expected"). */ int yycount = 0; /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected tokens because there are none. - The only way there can be no lookahead present (in yychar) is if this state is a consistent state with a default action. Thus, detecting the absence of a lookahead is sufficient to determine that there is no unexpected or expected token to report. In that case, just report a simple "syntax error". - Don't assume there isn't a lookahead just because this state is a consistent state with a default action. There might have been a previous inconsistent state, consistent state with a non-default action, or user semantic action that manipulated yychar. - Of course, the expected token list depends on states to have correct lookahead information, and it depends on the parser not to perform extra reductions after fetching a lookahead from the scanner and before detecting a syntax error. Thus, state merging (from LALR or IELR) and default reductions corrupt the expected token list. However, the list is correct for canonical LR with one exception: it will still contain any token that will not be accepted due to an error action in a later state. */ if (yytoken != YYEMPTY) { int yyn = yypact[*yyssp]; yyarg[yycount++] = yytname[yytoken]; if (!yypact_value_is_default (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. In other words, skip the first -YYN actions for this state because they are default actions. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yyx; for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR && !yytable_value_is_error (yytable[yyx + yyn])) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; break; } yyarg[yycount++] = yytname[yyx]; { YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; yysize = yysize1; } } } } switch (yycount) { # define YYCASE_(N, S) \ case N: \ yyformat = S; \ break YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); # undef YYCASE_ } { YYSIZE_T yysize1 = yysize + yystrlen (yyformat); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; yysize = yysize1; } if (*yymsg_alloc < yysize) { *yymsg_alloc = 2 * yysize; if (! (yysize <= *yymsg_alloc && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; return 1; } /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ { char *yyp = *yymsg; int yyi = 0; while ((*yyp = *yyformat) != '\0') if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyformat += 2; } else { yyp++; yyformat++; } } return 0; } #endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) { YYUSE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN switch (yytype) { case 60: /* choice_entry */ { fprintf(stderr, "%s:%d: missing end statement for this entry\n", ((*yyvaluep).menu)->file->name, ((*yyvaluep).menu)->lineno); if (current_menu == ((*yyvaluep).menu)) menu_end_menu(); } break; case 66: /* if_entry */ { fprintf(stderr, "%s:%d: missing end statement for this entry\n", ((*yyvaluep).menu)->file->name, ((*yyvaluep).menu)->lineno); if (current_menu == ((*yyvaluep).menu)) menu_end_menu(); } break; case 71: /* menu_entry */ { fprintf(stderr, "%s:%d: missing end statement for this entry\n", ((*yyvaluep).menu)->file->name, ((*yyvaluep).menu)->lineno); if (current_menu == ((*yyvaluep).menu)) menu_end_menu(); } break; default: break; } YY_IGNORE_MAYBE_UNINITIALIZED_END } /* The lookahead symbol. */ int yychar; /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /*----------. | yyparse. | `----------*/ int yyparse (void) { int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The stacks and their tools: 'yyss': related to states. 'yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 *yyss; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs; YYSTYPE *yyvsp; YYSIZE_T yystacksize; int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; yyssp = yyss = yyssa; yyvsp = yyvs = yyvsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; /*------------------------------------------------------------. | yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyexhaustedlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = yylex (); } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token. */ yychar = YYEMPTY; yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; YY_REDUCE_PRINT (yyn); switch (yyn) { case 6: { menu_add_prompt(P_MENU, (yyvsp[-1].string), NULL); } break; case 7: { /* * Hack: Keep the main menu title on the heap so we can safely free it * later regardless of whether it comes from the 'prompt' in * mainmenu_stmt or here */ menu_add_prompt(P_MENU, xstrdup("Buildroot Configuration"), NULL); } break; case 12: { zconf_error("unexpected end statement"); } break; case 13: { zconf_error("unknown statement \"%s\"", (yyvsp[-2].string)); } break; case 14: { zconf_error("unexpected option \"%s\"", (yyvsp[-2].id)->name); } break; case 15: { zconf_error("invalid statement"); } break; case 31: { zconf_error("unknown option \"%s\"", (yyvsp[-2].string)); } break; case 32: { zconf_error("invalid option"); } break; case 33: { (yyvsp[-1].symbol)->flags |= SYMBOL_OPTIONAL; menu_add_entry((yyvsp[-1].symbol)); printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].symbol)->name); } break; case 34: { printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno()); } break; case 35: { (yyvsp[-1].symbol)->flags |= SYMBOL_OPTIONAL; menu_add_entry((yyvsp[-1].symbol)); printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].symbol)->name); } break; case 36: { if (current_entry->prompt) current_entry->prompt->type = P_MENU; else zconfprint("warning: menuconfig statement without prompt"); printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno()); } break; case 44: { menu_set_type((yyvsp[-2].id)->stype); printd(DEBUG_PARSE, "%s:%d:type(%u)\n", zconf_curname(), zconf_lineno(), (yyvsp[-2].id)->stype); } break; case 45: { menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr)); printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); } break; case 46: { menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr)); if ((yyvsp[-3].id)->stype != S_UNKNOWN) menu_set_type((yyvsp[-3].id)->stype); printd(DEBUG_PARSE, "%s:%d:default(%u)\n", zconf_curname(), zconf_lineno(), (yyvsp[-3].id)->stype); } break; case 47: { menu_add_symbol(P_SELECT, (yyvsp[-2].symbol), (yyvsp[-1].expr)); printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno()); } break; case 48: { menu_add_symbol(P_IMPLY, (yyvsp[-2].symbol), (yyvsp[-1].expr)); printd(DEBUG_PARSE, "%s:%d:imply\n", zconf_curname(), zconf_lineno()); } break; case 49: { menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[-3].symbol), (yyvsp[-2].symbol)), (yyvsp[-1].expr)); printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno()); } break; case 52: { const struct kconf_id *id = kconf_id_lookup((yyvsp[-1].string), strlen((yyvsp[-1].string))); if (id && id->flags & TF_OPTION) { menu_add_option(id->token, (yyvsp[0].string)); free((yyvsp[0].string)); } else zconfprint("warning: ignoring unknown option %s", (yyvsp[-1].string)); free((yyvsp[-1].string)); } break; case 53: { (yyval.string) = NULL; } break; case 54: { (yyval.string) = (yyvsp[0].string); } break; case 55: { struct symbol *sym = sym_lookup((yyvsp[-1].string), SYMBOL_CHOICE); sym->flags |= SYMBOL_AUTO; menu_add_entry(sym); menu_add_expr(P_CHOICE, NULL, NULL); free((yyvsp[-1].string)); printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno()); } break; case 56: { (yyval.menu) = menu_add_menu(); } break; case 57: { if (zconf_endtoken((yyvsp[0].id), T_CHOICE, T_ENDCHOICE)) { menu_end_menu(); printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno()); } } break; case 65: { menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr)); printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); } break; case 66: { if ((yyvsp[-2].id)->stype == S_BOOLEAN || (yyvsp[-2].id)->stype == S_TRISTATE) { menu_set_type((yyvsp[-2].id)->stype); printd(DEBUG_PARSE, "%s:%d:type(%u)\n", zconf_curname(), zconf_lineno(), (yyvsp[-2].id)->stype); } else YYERROR; } break; case 67: { current_entry->sym->flags |= SYMBOL_OPTIONAL; printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno()); } break; case 68: { if ((yyvsp[-3].id)->stype == S_UNKNOWN) { menu_add_symbol(P_DEFAULT, (yyvsp[-2].symbol), (yyvsp[-1].expr)); printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); } else YYERROR; } break; case 71: { printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno()); menu_add_entry(NULL); menu_add_dep((yyvsp[-1].expr)); (yyval.menu) = menu_add_menu(); } break; case 72: { if (zconf_endtoken((yyvsp[0].id), T_IF, T_ENDIF)) { menu_end_menu(); printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno()); } } break; case 78: { menu_add_entry(NULL); menu_add_prompt(P_MENU, (yyvsp[-1].string), NULL); printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno()); } break; case 79: { (yyval.menu) = menu_add_menu(); } break; case 80: { if (zconf_endtoken((yyvsp[0].id), T_MENU, T_ENDMENU)) { menu_end_menu(); printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno()); } } break; case 86: { printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string)); zconf_nextfile((yyvsp[-1].string)); free((yyvsp[-1].string)); } break; case 87: { menu_add_entry(NULL); menu_add_prompt(P_COMMENT, (yyvsp[-1].string), NULL); printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno()); } break; case 89: { printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno()); zconf_starthelp(); } break; case 90: { if (current_entry->help) { free(current_entry->help); zconfprint("warning: '%s' defined with more than one help text -- only the last one will be used", current_entry->sym->name ?: ""); } /* Is the help text empty or all whitespace? */ if ((yyvsp[0].string)[strspn((yyvsp[0].string), " \f\n\r\t\v")] == '\0') zconfprint("warning: '%s' defined with blank help text", current_entry->sym->name ?: ""); current_entry->help = (yyvsp[0].string); } break; case 95: { menu_add_dep((yyvsp[-1].expr)); printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno()); } break; case 99: { menu_add_visibility((yyvsp[0].expr)); } break; case 101: { menu_add_prompt(P_PROMPT, (yyvsp[-1].string), (yyvsp[0].expr)); } break; case 104: { (yyval.id) = (yyvsp[-1].id); } break; case 105: { (yyval.id) = (yyvsp[-1].id); } break; case 106: { (yyval.id) = (yyvsp[-1].id); } break; case 109: { (yyval.expr) = NULL; } break; case 110: { (yyval.expr) = (yyvsp[0].expr); } break; case 111: { (yyval.expr) = expr_alloc_symbol((yyvsp[0].symbol)); } break; case 112: { (yyval.expr) = expr_alloc_comp(E_LTH, (yyvsp[-2].symbol), (yyvsp[0].symbol)); } break; case 113: { (yyval.expr) = expr_alloc_comp(E_LEQ, (yyvsp[-2].symbol), (yyvsp[0].symbol)); } break; case 114: { (yyval.expr) = expr_alloc_comp(E_GTH, (yyvsp[-2].symbol), (yyvsp[0].symbol)); } break; case 115: { (yyval.expr) = expr_alloc_comp(E_GEQ, (yyvsp[-2].symbol), (yyvsp[0].symbol)); } break; case 116: { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); } break; case 117: { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); } break; case 118: { (yyval.expr) = (yyvsp[-1].expr); } break; case 119: { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[0].expr)); } break; case 120: { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); } break; case 121: { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); } break; case 122: { (yyval.symbol) = sym_lookup((yyvsp[0].string), 0); free((yyvsp[0].string)); } break; case 124: { (yyval.symbol) = sym_lookup((yyvsp[0].string), SYMBOL_CONST); free((yyvsp[0].string)); } break; case 125: { (yyval.string) = NULL; } break; default: break; } /* User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ yyssp, yytoken) { char const *yymsgp = YY_("syntax error"); int yysyntax_error_status; yysyntax_error_status = YYSYNTAX_ERROR; if (yysyntax_error_status == 0) yymsgp = yymsg; else if (yysyntax_error_status == 1) { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); if (!yymsg) { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; yysyntax_error_status = 2; } else { yysyntax_error_status = YYSYNTAX_ERROR; yymsgp = yymsg; } } yyerror (yymsgp); if (yysyntax_error_status == 2) goto yyexhaustedlab; } # undef YYSYNTAX_ERROR #endif } if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers like GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (/*CONSTCOND*/ 0) goto yyerrorlab; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yydestruct ("Error: popping", yystos[yystate], yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); } /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif return yyresult; } void conf_parse(const char *name) { const char *tmp; struct symbol *sym; int i; zconf_initscan(name); sym_init(); _menu_init(); if (getenv("ZCONF_DEBUG")) yydebug = 1; yyparse(); if (yynerrs) exit(1); if (!modules_sym) modules_sym = sym_find( "n" ); tmp = rootmenu.prompt->text; rootmenu.prompt->text = _(rootmenu.prompt->text); rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text); free((char*)tmp); menu_finalize(&rootmenu); for_all_symbols(i, sym) { if (sym_check_deps(sym)) yynerrs++; } if (yynerrs) exit(1); sym_set_change_count(1); } static const char *zconf_tokenname(int token) { switch (token) { case T_MENU: return "menu"; case T_ENDMENU: return "endmenu"; case T_CHOICE: return "choice"; case T_ENDCHOICE: return "endchoice"; case T_IF: return "if"; case T_ENDIF: return "endif"; case T_DEPENDS: return "depends"; case T_VISIBLE: return "visible"; } return ""; } static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken) { if (id->token != endtoken) { zconf_error("unexpected '%s' within %s block", id->name, zconf_tokenname(starttoken)); yynerrs++; return false; } if (current_menu->file != current_file) { zconf_error("'%s' in different file than '%s'", id->name, zconf_tokenname(starttoken)); fprintf(stderr, "%s:%d: location of the '%s'\n", current_menu->file->name, current_menu->lineno, zconf_tokenname(starttoken)); yynerrs++; return false; } return true; } static void zconfprint(const char *err, ...) { va_list ap; fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); va_start(ap, err); vfprintf(stderr, err, ap); va_end(ap); fprintf(stderr, "\n"); } static void zconf_error(const char *err, ...) { va_list ap; yynerrs++; fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); va_start(ap, err); vfprintf(stderr, err, ap); va_end(ap); fprintf(stderr, "\n"); } static void yyerror(const char *err) { fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err); } static void print_quoted_string(FILE *out, const char *str) { const char *p; int len; putc('"', out); while ((p = strchr(str, '"'))) { len = p - str; if (len) fprintf(out, "%.*s", len, str); fputs("\\\"", out); str = p + 1; } fputs(str, out); putc('"', out); } static void print_symbol(FILE *out, struct menu *menu) { struct symbol *sym = menu->sym; struct property *prop; if (sym_is_choice(sym)) fprintf(out, "\nchoice\n"); else fprintf(out, "\nconfig %s\n", sym->name); switch (sym->type) { case S_BOOLEAN: fputs(" bool\n", out); break; case S_TRISTATE: fputs(" tristate\n", out); break; case S_STRING: fputs(" string\n", out); break; case S_INT: fputs(" integer\n", out); break; case S_HEX: fputs(" hex\n", out); break; default: fputs(" ???\n", out); break; } for (prop = sym->prop; prop; prop = prop->next) { if (prop->menu != menu) continue; switch (prop->type) { case P_PROMPT: fputs(" prompt ", out); print_quoted_string(out, prop->text); if (!expr_is_yes(prop->visible.expr)) { fputs(" if ", out); expr_fprint(prop->visible.expr, out); } fputc('\n', out); break; case P_DEFAULT: fputs( " default ", out); expr_fprint(prop->expr, out); if (!expr_is_yes(prop->visible.expr)) { fputs(" if ", out); expr_fprint(prop->visible.expr, out); } fputc('\n', out); break; case P_CHOICE: fputs(" #choice value\n", out); break; case P_SELECT: fputs( " select ", out); expr_fprint(prop->expr, out); fputc('\n', out); break; case P_IMPLY: fputs( " imply ", out); expr_fprint(prop->expr, out); fputc('\n', out); break; case P_RANGE: fputs( " range ", out); expr_fprint(prop->expr, out); fputc('\n', out); break; case P_MENU: fputs( " menu ", out); print_quoted_string(out, prop->text); fputc('\n', out); break; default: fprintf(out, " unknown prop %d!\n", prop->type); break; } } if (menu->help) { int len = strlen(menu->help); while (menu->help[--len] == '\n') menu->help[len] = 0; fprintf(out, " help\n%s\n", menu->help); } } void zconfdump(FILE *out) { struct property *prop; struct symbol *sym; struct menu *menu; menu = rootmenu.list; while (menu) { if ((sym = menu->sym)) print_symbol(out, menu); else if ((prop = menu->prompt)) { switch (prop->type) { case P_COMMENT: fputs("\ncomment ", out); print_quoted_string(out, prop->text); fputs("\n", out); break; case P_MENU: fputs("\nmenu ", out); print_quoted_string(out, prop->text); fputs("\n", out); break; default: ; } if (!expr_is_yes(prop->visible.expr)) { fputs(" depends ", out); expr_fprint(prop->visible.expr, out); fputc('\n', out); } } if (menu->list) menu = menu->list; else if (menu->next) menu = menu->next; else while ((menu = menu->parent)) { if (menu->prompt && menu->prompt->type == P_MENU) fputs("\nendmenu\n", out); if (menu->next) { menu = menu->next; break; } } } } #include "zconf.lex.c" #include "util.c" #include "confdata.c" #include "expr.c" #include "symbol.c" #include "menu.c" ================================================ FILE: support/kconfig/zconf.y ================================================ %{ /* * Copyright (C) 2002 Roman Zippel * Released under the terms of the GNU GPL v2.0. */ #include #include #include #include #include #include #include "lkc.h" #define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt) #define PRINTD 0x0001 #define DEBUG_PARSE 0x0002 int cdebug = PRINTD; int yylex(void); static void yyerror(const char *err); static void zconfprint(const char *err, ...); static void zconf_error(const char *err, ...); static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken); struct symbol *symbol_hash[SYMBOL_HASHSIZE]; static struct menu *current_menu, *current_entry; %} %expect 32 %union { char *string; struct file *file; struct symbol *symbol; struct expr *expr; struct menu *menu; const struct kconf_id *id; } %token T_MAINMENU %token T_MENU %token T_ENDMENU %token T_SOURCE %token T_CHOICE %token T_ENDCHOICE %token T_COMMENT %token T_CONFIG %token T_MENUCONFIG %token T_HELP %token T_HELPTEXT %token T_IF %token T_ENDIF %token T_DEPENDS %token T_OPTIONAL %token T_PROMPT %token T_TYPE %token T_DEFAULT %token T_SELECT %token T_IMPLY %token T_RANGE %token T_VISIBLE %token T_OPTION %token T_ON %token T_WORD %token T_WORD_QUOTE %token T_UNEQUAL %token T_LESS %token T_LESS_EQUAL %token T_GREATER %token T_GREATER_EQUAL %token T_CLOSE_PAREN %token T_OPEN_PAREN %token T_EOL %left T_OR %left T_AND %left T_EQUAL T_UNEQUAL %left T_LESS T_LESS_EQUAL T_GREATER T_GREATER_EQUAL %nonassoc T_NOT %type prompt %type nonconst_symbol %type symbol %type expr %type if_expr %type end %type option_name %type if_entry menu_entry choice_entry %type symbol_option_arg word_opt %destructor { fprintf(stderr, "%s:%d: missing end statement for this entry\n", $$->file->name, $$->lineno); if (current_menu == $$) menu_end_menu(); } if_entry menu_entry choice_entry %{ /* Include kconf_id.c here so it can see the token constants. */ #include "kconf_id.c" %} %% input: nl start | start; start: mainmenu_stmt stmt_list | no_mainmenu_stmt stmt_list; /* mainmenu entry */ mainmenu_stmt: T_MAINMENU prompt nl { menu_add_prompt(P_MENU, $2, NULL); }; /* Default main menu, if there's no mainmenu entry */ no_mainmenu_stmt: /* empty */ { /* * Hack: Keep the main menu title on the heap so we can safely free it * later regardless of whether it comes from the 'prompt' in * mainmenu_stmt or here */ menu_add_prompt(P_MENU, xstrdup("Buildroot Configuration"), NULL); }; stmt_list: /* empty */ | stmt_list common_stmt | stmt_list choice_stmt | stmt_list menu_stmt | stmt_list end { zconf_error("unexpected end statement"); } | stmt_list T_WORD error T_EOL { zconf_error("unknown statement \"%s\"", $2); } | stmt_list option_name error T_EOL { zconf_error("unexpected option \"%s\"", $2->name); } | stmt_list error T_EOL { zconf_error("invalid statement"); } ; option_name: T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_IMPLY | T_OPTIONAL | T_RANGE | T_DEFAULT | T_VISIBLE ; common_stmt: T_EOL | if_stmt | comment_stmt | config_stmt | menuconfig_stmt | source_stmt ; option_error: T_WORD error T_EOL { zconf_error("unknown option \"%s\"", $1); } | error T_EOL { zconf_error("invalid option"); } ; /* config/menuconfig entry */ config_entry_start: T_CONFIG nonconst_symbol T_EOL { $2->flags |= SYMBOL_OPTIONAL; menu_add_entry($2); printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), $2->name); }; config_stmt: config_entry_start config_option_list { printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno()); }; menuconfig_entry_start: T_MENUCONFIG nonconst_symbol T_EOL { $2->flags |= SYMBOL_OPTIONAL; menu_add_entry($2); printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), $2->name); }; menuconfig_stmt: menuconfig_entry_start config_option_list { if (current_entry->prompt) current_entry->prompt->type = P_MENU; else zconfprint("warning: menuconfig statement without prompt"); printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno()); }; config_option_list: /* empty */ | config_option_list config_option | config_option_list symbol_option | config_option_list depends | config_option_list help | config_option_list option_error | config_option_list T_EOL ; config_option: T_TYPE prompt_stmt_opt T_EOL { menu_set_type($1->stype); printd(DEBUG_PARSE, "%s:%d:type(%u)\n", zconf_curname(), zconf_lineno(), $1->stype); }; config_option: T_PROMPT prompt if_expr T_EOL { menu_add_prompt(P_PROMPT, $2, $3); printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); }; config_option: T_DEFAULT expr if_expr T_EOL { menu_add_expr(P_DEFAULT, $2, $3); if ($1->stype != S_UNKNOWN) menu_set_type($1->stype); printd(DEBUG_PARSE, "%s:%d:default(%u)\n", zconf_curname(), zconf_lineno(), $1->stype); }; config_option: T_SELECT nonconst_symbol if_expr T_EOL { menu_add_symbol(P_SELECT, $2, $3); printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno()); }; config_option: T_IMPLY nonconst_symbol if_expr T_EOL { menu_add_symbol(P_IMPLY, $2, $3); printd(DEBUG_PARSE, "%s:%d:imply\n", zconf_curname(), zconf_lineno()); }; config_option: T_RANGE symbol symbol if_expr T_EOL { menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,$2, $3), $4); printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno()); }; symbol_option: T_OPTION symbol_option_list T_EOL ; symbol_option_list: /* empty */ | symbol_option_list T_WORD symbol_option_arg { const struct kconf_id *id = kconf_id_lookup($2, strlen($2)); if (id && id->flags & TF_OPTION) { menu_add_option(id->token, $3); free($3); } else zconfprint("warning: ignoring unknown option %s", $2); free($2); }; symbol_option_arg: /* empty */ { $$ = NULL; } | T_EQUAL prompt { $$ = $2; } ; /* choice entry */ choice: T_CHOICE word_opt T_EOL { struct symbol *sym = sym_lookup($2, SYMBOL_CHOICE); sym->flags |= SYMBOL_AUTO; menu_add_entry(sym); menu_add_expr(P_CHOICE, NULL, NULL); free($2); printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno()); }; choice_entry: choice choice_option_list { $$ = menu_add_menu(); }; choice_end: end { if (zconf_endtoken($1, T_CHOICE, T_ENDCHOICE)) { menu_end_menu(); printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno()); } }; choice_stmt: choice_entry choice_block choice_end ; choice_option_list: /* empty */ | choice_option_list choice_option | choice_option_list depends | choice_option_list help | choice_option_list T_EOL | choice_option_list option_error ; choice_option: T_PROMPT prompt if_expr T_EOL { menu_add_prompt(P_PROMPT, $2, $3); printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); }; choice_option: T_TYPE prompt_stmt_opt T_EOL { if ($1->stype == S_BOOLEAN || $1->stype == S_TRISTATE) { menu_set_type($1->stype); printd(DEBUG_PARSE, "%s:%d:type(%u)\n", zconf_curname(), zconf_lineno(), $1->stype); } else YYERROR; }; choice_option: T_OPTIONAL T_EOL { current_entry->sym->flags |= SYMBOL_OPTIONAL; printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno()); }; choice_option: T_DEFAULT nonconst_symbol if_expr T_EOL { if ($1->stype == S_UNKNOWN) { menu_add_symbol(P_DEFAULT, $2, $3); printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); } else YYERROR; }; choice_block: /* empty */ | choice_block common_stmt ; /* if entry */ if_entry: T_IF expr nl { printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno()); menu_add_entry(NULL); menu_add_dep($2); $$ = menu_add_menu(); }; if_end: end { if (zconf_endtoken($1, T_IF, T_ENDIF)) { menu_end_menu(); printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno()); } }; if_stmt: if_entry if_block if_end ; if_block: /* empty */ | if_block common_stmt | if_block menu_stmt | if_block choice_stmt ; /* menu entry */ menu: T_MENU prompt T_EOL { menu_add_entry(NULL); menu_add_prompt(P_MENU, $2, NULL); printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno()); }; menu_entry: menu visibility_list depends_list { $$ = menu_add_menu(); }; menu_end: end { if (zconf_endtoken($1, T_MENU, T_ENDMENU)) { menu_end_menu(); printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno()); } }; menu_stmt: menu_entry menu_block menu_end ; menu_block: /* empty */ | menu_block common_stmt | menu_block menu_stmt | menu_block choice_stmt ; source_stmt: T_SOURCE prompt T_EOL { printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), $2); zconf_nextfile($2); free($2); }; /* comment entry */ comment: T_COMMENT prompt T_EOL { menu_add_entry(NULL); menu_add_prompt(P_COMMENT, $2, NULL); printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno()); }; comment_stmt: comment depends_list ; /* help option */ help_start: T_HELP T_EOL { printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno()); zconf_starthelp(); }; help: help_start T_HELPTEXT { if (current_entry->help) { free(current_entry->help); zconfprint("warning: '%s' defined with more than one help text -- only the last one will be used", current_entry->sym->name ?: ""); } /* Is the help text empty or all whitespace? */ if ($2[strspn($2, " \f\n\r\t\v")] == '\0') zconfprint("warning: '%s' defined with blank help text", current_entry->sym->name ?: ""); current_entry->help = $2; }; /* depends option */ depends_list: /* empty */ | depends_list depends | depends_list T_EOL | depends_list option_error ; depends: T_DEPENDS T_ON expr T_EOL { menu_add_dep($3); printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno()); }; /* visibility option */ visibility_list: /* empty */ | visibility_list visible | visibility_list T_EOL ; visible: T_VISIBLE if_expr { menu_add_visibility($2); }; /* prompt statement */ prompt_stmt_opt: /* empty */ | prompt if_expr { menu_add_prompt(P_PROMPT, $1, $2); }; prompt: T_WORD | T_WORD_QUOTE ; end: T_ENDMENU T_EOL { $$ = $1; } | T_ENDCHOICE T_EOL { $$ = $1; } | T_ENDIF T_EOL { $$ = $1; } ; nl: T_EOL | nl T_EOL ; if_expr: /* empty */ { $$ = NULL; } | T_IF expr { $$ = $2; } ; expr: symbol { $$ = expr_alloc_symbol($1); } | symbol T_LESS symbol { $$ = expr_alloc_comp(E_LTH, $1, $3); } | symbol T_LESS_EQUAL symbol { $$ = expr_alloc_comp(E_LEQ, $1, $3); } | symbol T_GREATER symbol { $$ = expr_alloc_comp(E_GTH, $1, $3); } | symbol T_GREATER_EQUAL symbol { $$ = expr_alloc_comp(E_GEQ, $1, $3); } | symbol T_EQUAL symbol { $$ = expr_alloc_comp(E_EQUAL, $1, $3); } | symbol T_UNEQUAL symbol { $$ = expr_alloc_comp(E_UNEQUAL, $1, $3); } | T_OPEN_PAREN expr T_CLOSE_PAREN { $$ = $2; } | T_NOT expr { $$ = expr_alloc_one(E_NOT, $2); } | expr T_OR expr { $$ = expr_alloc_two(E_OR, $1, $3); } | expr T_AND expr { $$ = expr_alloc_two(E_AND, $1, $3); } ; /* For symbol definitions, selects, etc., where quotes are not accepted */ nonconst_symbol: T_WORD { $$ = sym_lookup($1, 0); free($1); }; symbol: nonconst_symbol | T_WORD_QUOTE { $$ = sym_lookup($1, SYMBOL_CONST); free($1); } ; word_opt: /* empty */ { $$ = NULL; } | T_WORD %% void conf_parse(const char *name) { const char *tmp; struct symbol *sym; int i; zconf_initscan(name); sym_init(); _menu_init(); if (getenv("ZCONF_DEBUG")) yydebug = 1; yyparse(); if (yynerrs) exit(1); if (!modules_sym) modules_sym = sym_find( "n" ); tmp = rootmenu.prompt->text; rootmenu.prompt->text = _(rootmenu.prompt->text); rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text); free((char*)tmp); menu_finalize(&rootmenu); for_all_symbols(i, sym) { if (sym_check_deps(sym)) yynerrs++; } if (yynerrs) exit(1); sym_set_change_count(1); } static const char *zconf_tokenname(int token) { switch (token) { case T_MENU: return "menu"; case T_ENDMENU: return "endmenu"; case T_CHOICE: return "choice"; case T_ENDCHOICE: return "endchoice"; case T_IF: return "if"; case T_ENDIF: return "endif"; case T_DEPENDS: return "depends"; case T_VISIBLE: return "visible"; } return ""; } static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken) { if (id->token != endtoken) { zconf_error("unexpected '%s' within %s block", id->name, zconf_tokenname(starttoken)); yynerrs++; return false; } if (current_menu->file != current_file) { zconf_error("'%s' in different file than '%s'", id->name, zconf_tokenname(starttoken)); fprintf(stderr, "%s:%d: location of the '%s'\n", current_menu->file->name, current_menu->lineno, zconf_tokenname(starttoken)); yynerrs++; return false; } return true; } static void zconfprint(const char *err, ...) { va_list ap; fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); va_start(ap, err); vfprintf(stderr, err, ap); va_end(ap); fprintf(stderr, "\n"); } static void zconf_error(const char *err, ...) { va_list ap; yynerrs++; fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); va_start(ap, err); vfprintf(stderr, err, ap); va_end(ap); fprintf(stderr, "\n"); } static void yyerror(const char *err) { fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err); } static void print_quoted_string(FILE *out, const char *str) { const char *p; int len; putc('"', out); while ((p = strchr(str, '"'))) { len = p - str; if (len) fprintf(out, "%.*s", len, str); fputs("\\\"", out); str = p + 1; } fputs(str, out); putc('"', out); } static void print_symbol(FILE *out, struct menu *menu) { struct symbol *sym = menu->sym; struct property *prop; if (sym_is_choice(sym)) fprintf(out, "\nchoice\n"); else fprintf(out, "\nconfig %s\n", sym->name); switch (sym->type) { case S_BOOLEAN: fputs(" bool\n", out); break; case S_TRISTATE: fputs(" tristate\n", out); break; case S_STRING: fputs(" string\n", out); break; case S_INT: fputs(" integer\n", out); break; case S_HEX: fputs(" hex\n", out); break; default: fputs(" ???\n", out); break; } for (prop = sym->prop; prop; prop = prop->next) { if (prop->menu != menu) continue; switch (prop->type) { case P_PROMPT: fputs(" prompt ", out); print_quoted_string(out, prop->text); if (!expr_is_yes(prop->visible.expr)) { fputs(" if ", out); expr_fprint(prop->visible.expr, out); } fputc('\n', out); break; case P_DEFAULT: fputs( " default ", out); expr_fprint(prop->expr, out); if (!expr_is_yes(prop->visible.expr)) { fputs(" if ", out); expr_fprint(prop->visible.expr, out); } fputc('\n', out); break; case P_CHOICE: fputs(" #choice value\n", out); break; case P_SELECT: fputs( " select ", out); expr_fprint(prop->expr, out); fputc('\n', out); break; case P_IMPLY: fputs( " imply ", out); expr_fprint(prop->expr, out); fputc('\n', out); break; case P_RANGE: fputs( " range ", out); expr_fprint(prop->expr, out); fputc('\n', out); break; case P_MENU: fputs( " menu ", out); print_quoted_string(out, prop->text); fputc('\n', out); break; default: fprintf(out, " unknown prop %d!\n", prop->type); break; } } if (menu->help) { int len = strlen(menu->help); while (menu->help[--len] == '\n') menu->help[len] = 0; fprintf(out, " help\n%s\n", menu->help); } } void zconfdump(FILE *out) { struct property *prop; struct symbol *sym; struct menu *menu; menu = rootmenu.list; while (menu) { if ((sym = menu->sym)) print_symbol(out, menu); else if ((prop = menu->prompt)) { switch (prop->type) { case P_COMMENT: fputs("\ncomment ", out); print_quoted_string(out, prop->text); fputs("\n", out); break; case P_MENU: fputs("\nmenu ", out); print_quoted_string(out, prop->text); fputs("\n", out); break; default: ; } if (!expr_is_yes(prop->visible.expr)) { fputs(" depends ", out); expr_fprint(prop->visible.expr, out); fputc('\n', out); } } if (menu->list) menu = menu->list; else if (menu->next) menu = menu->next; else while ((menu = menu->parent)) { if (menu->prompt && menu->prompt->type == P_MENU) fputs("\nendmenu\n", out); if (menu->next) { menu = menu->next; break; } } } } #include "zconf.lex.c" #include "util.c" #include "confdata.c" #include "expr.c" #include "symbol.c" #include "menu.c" ================================================ FILE: support/legal-info/README.header ================================================ Most of the packages that were used by Buildroot to produce the image files, including Buildroot itself, have open-source licenses. It is your responsibility to comply to the requirements of these licenses. To make this easier for you, Buildroot collected in this directory some material you may need to get it done. This material is composed of the following items. * The scripts used to control compilation of the packages and the generation of image files, i.e. the Buildroot sources. Note: this has not been saved due to technical limitations, you must collect it manually. * The Buildroot configuration file; this has been saved in buildroot.config. * The toolchain (cross-compiler and related tools) used to generate all the compiled programs. Note: this may have not been saved due to technical limitations, you may need to collect it manually. * The original source code for target packages in the 'sources/' subdirectory and for host packages in the 'host-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. * Two manifest files listing the configured packages and related information: 'manifest.csv' for target packages and 'host-manifest.csv' for host packages. * The license text of the packages, in the 'licenses/' and 'host-licenses/' subdirectories for target and host packages respectively. ================================================ FILE: support/legal-info/README.warnings-header ================================================ Due to technical limitations or lack of license definition in the package makefile, some of the material listed above could not been saved, as the following list details. ================================================ FILE: support/legal-info/buildroot.hash ================================================ # Locally computed sha256 9755181e27175cb3510b4da8629caa406fb355a19aa8e7d55f06bf8ab33323c4 COPYING ================================================ FILE: support/libtool/buildroot-libtool-v1.5.patch ================================================ --- a/ltmain.sh 2014-07-31 10:43:01.634568799 -0300 +++ b/ltmain.sh 2014-07-31 10:44:14.032018999 -0300 @@ -226,8 +226,9 @@ # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" - $echo "$modename: specify a tag with \`--tag'" 1>&2 - exit $EXIT_FAILURE + $echo "$modename: defaulting to \`CC'" + $echo "$modename: if this is not correct, specify a tag with \`--tag'" +# exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi @@ -247,6 +248,11 @@ arg="$1" shift + # Make -static behave as -all-static + case $arg in + -static) arg="-all-static" ;; + esac + case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; @@ -1238,7 +1244,8 @@ prevarg="$arg" case $arg in - -all-static) + # Make -static behave like -all-static + -all-static | -static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" @@ -2146,8 +2153,14 @@ absdir="$abs_ladir" libdir="$abs_ladir" else - dir="$libdir" - absdir="$libdir" + # Adding 'libdir' from the .la file to our library search paths + # breaks crosscompilation horribly. We cheat here and don't add + # it, instead adding the path where we found the .la. -CL + dir="$abs_ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + #dir="$libdir" + #absdir="$libdir" fi else dir="$ladir/$objdir" @@ -2272,7 +2285,7 @@ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" - need_relink=yes + need_relink=no fi # This is a shared library @@ -5169,6 +5182,10 @@ # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do + # Replacing uninstalled with installed can easily break crosscompilation, + # since the installed path is generally the wrong architecture. -CL + newdependency_libs="$newdependency_libs $deplib" + continue case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` @@ -5487,10 +5504,13 @@ # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. - if test "$inst_prefix_dir" = "$destdir"; then - $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 - exit $EXIT_FAILURE - fi + # + # This breaks install into our staging area. -PB + # + # if test "$inst_prefix_dir" = "$destdir"; then + # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 + # exit $EXIT_FAILURE + # fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. ================================================ FILE: support/libtool/buildroot-libtool-v2.2.patch ================================================ --- a/ltmain.sh 2010-06-09 15:08:53.000000000 +0200 +++ b/ltmain.sh 2014-07-30 22:33:41.176710372 +0200 @@ -1214,8 +1214,8 @@ # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with \`--tag'" + func_echo "defaulting to \`CC'" + func_echo "if this is not correct, specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi @@ -2239,8 +2239,11 @@ # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. - test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + # + # This breaks install into our staging area. -PB + # + # test "$inst_prefix_dir" = "$destdir" && \ + # func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. @@ -4429,7 +4432,8 @@ ;; -all-static | -static | -static-libtool-libs) case $arg in - -all-static) + # Make -static behave like -all-static + -all-static | -static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi @@ -4438,12 +4442,6 @@ fi prefer_static_libs=yes ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static @@ -4726,7 +4724,8 @@ prevarg="$arg" case $arg in - -all-static) + # Make -static behave like -all-static + -all-static | -static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" @@ -4995,7 +4994,7 @@ continue ;; - -static | -static-libtool-libs) + -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects @@ -5739,8 +5738,14 @@ absdir="$abs_ladir" libdir="$abs_ladir" else - dir="$libdir" - absdir="$libdir" + # Adding 'libdir' from the .la file to our library search paths + # breaks crosscompilation horribly. We cheat here and don't add + # it, instead adding the path where we found the .la. -CL + dir="$abs_ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + #dir="$libdir" + #absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else @@ -5891,7 +5896,7 @@ *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" - need_relink=yes + need_relink=no fi ;; esac @@ -8373,6 +8378,10 @@ # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do + # Replacing uninstalled with installed can easily break crosscompilation, + # since the installed path is generally the wrong architecture. -CL + newdependency_libs="$newdependency_libs $deplib" + continue case $deplib in *.la) func_basename "$deplib" ================================================ FILE: support/libtool/buildroot-libtool-v2.4.4.patch ================================================ Libtool fixes for cross-compilation, many past contributors/authors. Update based on libtool-2.4.4, useful for 2.4.3 as well but not 2.4.2. Signed-off-by: Gustavo Zacarias --- a/ltmain.sh 2014-12-16 09:51:23.068441045 -0300 +++ b/ltmain.sh 2014-12-16 09:57:10.509430339 -0300 @@ -2687,8 +2687,8 @@ # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with '--tag'" + func_echo "defaulting to \`CC'" + func_echo "if this is not correct, specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi @@ -4277,8 +4277,12 @@ # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. - test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + # + # This breaks install into our staging area. -PB + # + #test "$inst_prefix_dir" = "$destdir" && \ + # func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. @@ -6550,7 +6554,8 @@ ;; -all-static | -static | -static-libtool-libs) case $arg in - -all-static) + # Make -static behave like -all-static -GZ + -all-static | -static) if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi @@ -6559,12 +6564,6 @@ fi prefer_static_libs=yes ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static @@ -6858,7 +6857,8 @@ prevarg=$arg case $arg in - -all-static) + # Make -static behave like -all-static -GZ + -all-static | -static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" @@ -7149,7 +7149,7 @@ continue ;; - -static | -static-libtool-libs) + -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects @@ -8112,7 +8112,7 @@ *) if test no = "$installed"; then func_append notinst_deplibs " $lib" - need_relink=yes + need_relink=no fi ;; esac @@ -10710,6 +10710,10 @@ # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do + # Replacing uninstalled with installed can easily break crosscompilation, + # since the installed path is generally the wrong architecture. -CL + newdependency_libs="$newdependency_libs $deplib" + continue case $deplib in *.la) func_basename "$deplib" ================================================ FILE: support/libtool/buildroot-libtool-v2.4.patch ================================================ --- a/ltmain.sh 2014-07-30 22:21:24.664684143 +0200 +++ b/ltmain.sh 2014-07-30 22:23:02.440687625 +0200 @@ -1417,8 +1417,8 @@ # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with \`--tag'" + func_echo "defaulting to \`CC'" + func_echo "if this is not correct, specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi @@ -2963,8 +2963,11 @@ # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. - test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + # + # This breaks install into our staging area. -PB + # + # test "$inst_prefix_dir" = "$destdir" && \ + # func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. @@ -5176,7 +5179,8 @@ ;; -all-static | -static | -static-libtool-libs) case $arg in - -all-static) + # Make -static behave like -all-static + -all-static | -static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi @@ -5185,12 +5189,6 @@ fi prefer_static_libs=yes ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static @@ -5473,7 +5471,8 @@ prevarg="$arg" case $arg in - -all-static) + # Make -static behave like -all-static + -all-static | -static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" @@ -5754,7 +5753,7 @@ continue ;; - -static | -static-libtool-libs) + -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects @@ -6697,7 +6696,7 @@ *) if test "$installed" = no; then func_append notinst_deplibs " $lib" - need_relink=yes + need_relink=no fi ;; esac @@ -9275,6 +9274,10 @@ # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do + # Replacing uninstalled with installed can easily break crosscompilation, + # since the installed path is generally the wrong architecture. -CL + newdependency_libs="$newdependency_libs $deplib" + continue case $deplib in *.la) func_basename "$deplib" ================================================ FILE: support/misc/Buildroot.cmake ================================================ # Impersonate a Linux system. Afterall, that's what we are... set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM ${CMAKE_SYSTEM_NAME}) include(Platform/Linux) # Override problematic settings, to avoid RPATH against host lib directories. set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS FALSE) set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE) ================================================ FILE: support/misc/Vagrantfile ================================================ ################################################################################ # # Vagrantfile # ################################################################################ # Buildroot version to use RELEASE='2021.11' ### Change here for more memory/cores ### VM_MEMORY=2048 VM_CORES=1 Vagrant.configure('2') do |config| config.vm.box = 'ubuntu/bionic64' config.vm.provider :vmware_fusion do |v, override| v.vmx['memsize'] = VM_MEMORY v.vmx['numvcpus'] = VM_CORES end config.vm.provider :virtualbox do |v, override| v.memory = VM_MEMORY v.cpus = VM_CORES required_plugins = %w( vagrant-vbguest ) required_plugins.each do |plugin| system "vagrant plugin install #{plugin}" unless Vagrant.has_plugin? plugin end end config.vm.provision 'shell' do |s| s.inline = 'echo Setting up machine name' config.vm.provider :vmware_fusion do |v, override| v.vmx['displayname'] = "Buildroot #{RELEASE}" end config.vm.provider :virtualbox do |v, override| v.name = "Buildroot #{RELEASE}" end end config.vm.provision 'shell', privileged: true, inline: "sed -i 's|deb http://us.archive.ubuntu.com/ubuntu/|deb mirror://mirrors.ubuntu.com/mirrors.txt|g' /etc/apt/sources.list dpkg --add-architecture i386 apt-get -q update apt-get purge -q -y snapd lxcfs lxd ubuntu-core-launcher snap-confine apt-get -q -y install build-essential libncurses5-dev \ git bzr cvs mercurial subversion libc6:i386 unzip bc apt-get -q -y autoremove apt-get -q -y clean update-locale LC_ALL=C" config.vm.provision 'shell', privileged: false, inline: "echo 'Downloading and extracting buildroot #{RELEASE}' wget -q -c http://buildroot.org/downloads/buildroot-#{RELEASE}.tar.gz tar axf buildroot-#{RELEASE}.tar.gz" end ================================================ FILE: support/misc/gen-glibc-locales.mk ================================================ # Generates glibc locale data for target. inputfile = $(firstword $(subst ., ,$(1))) charmap = $(or $(word 2,$(subst ., ,$(1))),UTF-8) # Packages all the generated locale data into the final archive. # # We sort the file names to produce consistent output regardless of # the `find` outputs order. $(TARGET_DIR)/usr/lib/locale/locale-archive: $(LOCALES) $(Q)rm -f $(@) $(Q)find $(TARGET_DIR)/usr/lib/locale/ -maxdepth 1 -mindepth 1 -type d -print0 \ | sort -z \ | xargs -0 \ $(HOST_DIR)/bin/localedef \ --prefix=$(TARGET_DIR) \ --$(ENDIAN)-endian \ --add-to-archive # Generates locale data for each locale. # # The input data comes preferably from the toolchain, or if the toolchain # does not have them (Linaro toolchains), we use the ones available on the # host machine. # # Uses `localedef`, which is built by the `host-localedef` package. $(LOCALES): | $(TARGET_DIR)/usr/lib/locale/ $(Q)echo "Generating locale $(@)" $(Q)I18NPATH=$(STAGING_DIR)/usr/share/i18n:/usr/share/i18n \ $(HOST_DIR)/bin/localedef \ --prefix=$(TARGET_DIR) \ --$(ENDIAN)-endian \ --no-archive \ -i $(call inputfile,$(@)) \ -f $(call charmap,$(@)) \ $(@) .PHONY: $(LOCALES) $(TARGET_DIR)/usr/lib/locale/: $(Q)mkdir -p $(TARGET_DIR)/usr/lib/locale/ ================================================ FILE: support/misc/gitlab-ci.yml.in ================================================ .check-DEVELOPERS_base: # get-developers should print just "No action specified"; if it prints # anything else, it's a parse error. # The initial ! is removed by YAML so we need to quote it. script: - "! utils/get-developers | grep -v 'No action specified'" .check-flake8_base: script: - make check-flake8 .check-package_base: script: - make check-package .defconfig_check: before_script: - DEFCONFIG_NAME=$(echo ${CI_JOB_NAME} | sed -e 's,_check$,,g') script: - echo "Configure Buildroot for ${DEFCONFIG_NAME}" - make ${DEFCONFIG_NAME} - support/scripts/check-dotconfig.py .config configs/${DEFCONFIG_NAME} artifacts: when: on_failure expire_in: 2 weeks paths: - .config .run_make: &run_make | make O=${OUTPUT_DIR} > >(tee build.log |grep '>>>') 2>&1 || { echo 'Failed build last output' tail -200 build.log exit 1 } .defconfig_base: before_script: - DEFCONFIG_NAME=${CI_JOB_NAME} - OUTPUT_DIR=output script: - echo "Configure Buildroot for ${DEFCONFIG_NAME}" - make ${DEFCONFIG_NAME} - ./support/scripts/check-dotconfig.py .config ./configs/${DEFCONFIG_NAME} - echo 'Build buildroot' - *run_make - | ./support/scripts/boot-qemu-image.py "${DEFCONFIG_NAME}" > >(tee runtime-test.log) 2>&1 || { echo 'Failed runtime test last output' tail -200 runtime-test.log exit 1 } artifacts: when: always expire_in: 2 weeks paths: - .config - build.log - output/images/ - output/build/build-time.log - output/build/packages-file-list.txt - output/build/*/.config - runtime-test.log .runtime_test_base: before_script: - TEST_CASE_NAME=${CI_JOB_NAME} # Keep build directories so the rootfs can be an artifact of the job. The # runner will clean up those files for us. # Multiply every emulator timeout by 10 to avoid sporadic failures in # elastic runners. script: - echo "Starting runtime test ${TEST_CASE_NAME}" - ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${TEST_CASE_NAME} artifacts: when: always expire_in: 2 weeks paths: - test-output/*.log - test-output/*/.config - test-output/*/images/* .test_pkg: stage: build before_script: - OUTPUT_DIR=${CI_JOB_NAME} script: - echo "Configure Buildroot for ${OUTPUT_DIR}" - make O=${OUTPUT_DIR} syncconfig - make O=${OUTPUT_DIR} savedefconfig - echo 'Build buildroot' - *run_make needs: - pipeline: $PARENT_PIPELINE_ID job: generate-gitlab-ci-yml artifacts: when: always expire_in: 2 weeks paths: - build.log - br-test-pkg/*/.config - br-test-pkg/*/defconfig - br-test-pkg/*/build/build-time.log - br-test-pkg/*/build/packages-file-list*.txt ================================================ FILE: support/misc/relocate-sdk.sh ================================================ #!/bin/sh # if [ "$#" -ne 0 ]; then echo "Run this script to relocate the buildroot SDK at that location" exit 1 fi LOCFILE="share/buildroot/sdk-location" FILEPATH="$(readlink -f "$0")" NEWPATH="$(dirname "${FILEPATH}")" cd "${NEWPATH}" if [ ! -r "${LOCFILE}" ]; then echo "Previous location of the buildroot SDK not found!" exit 1 fi OLDPATH="$(cat "${LOCFILE}")" if [ "${NEWPATH}" = "${OLDPATH}" ]; then echo "This buildroot SDK has already been relocated!" exit 0 fi # Check if the path substitution does work properly, e.g. a tree # "/a/b/c" copied into "/a/b/c/a/b/c/" would not be allowed. newpath="$(sed -e "s|${OLDPATH}|${NEWPATH}|g" "${LOCFILE}")" if [ "${NEWPATH}" != "${newpath}" ]; then echo "Something went wrong with substituting the path!" echo "Please choose another location for your SDK!" exit 1 fi echo "Relocating the buildroot SDK from ${OLDPATH} to ${NEWPATH} ..." # Make sure file uses the right language export LC_ALL=C # Replace the old path with the new one in all text files grep -lr "${OLDPATH}" . | while read -r FILE ; do if file -b --mime-type "${FILE}" | grep -q '^text/' && [ "${FILE}" != "${LOCFILE}" ] then sed -i "s|${OLDPATH}|${NEWPATH}|g" "${FILE}" fi done # At the very end, we update the location file to not break the # SDK if this script gets interruted. sed -i "s|${OLDPATH}|${NEWPATH}|g" ${LOCFILE} ================================================ FILE: support/misc/target-dir-warning.txt ================================================ Warning! ======== This directory does *not* contain the root filesystem that you can use on your embedded system. Since Buildroot does not run as root, it cannot create device files and set the permissions and ownership of files correctly in this directory to make it usable as a root filesystem. For that reason, do *not* use the contents of this directory to mount your root filesystem over NFS or copy the contents of this directory to a SD card or USB key, thinking it will work as the root filesystem for your embedded system. It will simply *not* work. Instead, if you need a usable root filesystem, please select one of the filesystem image formats available in the Buildroot configuration interface (make menuconfig or others) in the "Filesystem images" sub-menu. If you want to get a filesystem image that you can easily extract to your SD card or to some directory exposed through NFS, please use the "tar the root filesystem" option. It will generate a images/rootfs.tar image in your Buildroot output directory, which you can extract as root: sudo tar -C /destination/of/extraction -xf images/rootfs.tar Those image files are created using the contents of the target/ directory, but there is a post-processing step to create device files and set ownership/permissions properly even if Buildroot does not run as root. ================================================ FILE: support/misc/toolchainfile.cmake.in ================================================ # # Automatically generated file; DO NOT EDIT. # CMake toolchain file for Buildroot # # In order to allow the toolchain to be relocated, we calculate the # HOST_DIR based on this file's location: $(HOST_DIR)/share/buildroot # and store it in RELOCATED_HOST_DIR. # All the other variables that need to refer to HOST_DIR will use the # RELOCATED_HOST_DIR variable. string(REPLACE "/share/buildroot" "" RELOCATED_HOST_DIR ${CMAKE_CURRENT_LIST_DIR}) # Point cmake to the location where we have our custom modules, # so that it can find our custom platform description. list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) set(CMAKE_SYSTEM_NAME Buildroot) set(CMAKE_SYSTEM_VERSION 1) set(CMAKE_SYSTEM_PROCESSOR @@CMAKE_SYSTEM_PROCESSOR@@) # Set the {C,CXX}FLAGS appended by CMake depending on the build type # defined by Buildroot. CMake defaults these variables with -g and/or # -O options, and they are appended at the end of the argument list, # so the Buildroot options are overridden. Therefore these variables # have to be cleared, so that the options passed in CMAKE_C_FLAGS do # apply. # # Note: # if the project forces some of these flag variables, Buildroot is # screwed up and there is nothing Buildroot can do about that :( set(CMAKE_C_FLAGS_DEBUG "" CACHE STRING "Debug CFLAGS") set(CMAKE_C_FLAGS_RELEASE " -DNDEBUG" CACHE STRING "Release CFLAGS") # Build type from the Buildroot configuration set(CMAKE_BUILD_TYPE @@CMAKE_BUILD_TYPE@@ CACHE STRING "Buildroot build configuration") # Buildroot defaults flags. # If you are using this toolchainfile.cmake file outside of Buildroot and # want to customize the compiler/linker flags, then: # * set them all on the cmake command line, e.g.: # cmake -DCMAKE_C_FLAGS="@@TARGET_CFLAGS@@ -Dsome_custom_flag" ... # * and make sure the project's CMake code extends them like this if needed: # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Dsome_definitions") set(CMAKE_C_FLAGS "@@TARGET_CFLAGS@@" CACHE STRING "Buildroot CFLAGS") set(CMAKE_EXE_LINKER_FLAGS "@@TARGET_LDFLAGS@@" CACHE STRING "Buildroot LDFLAGS for executables") set(CMAKE_SHARED_LINKER_FLAGS "@@TARGET_LDFLAGS@@" CACHE STRING "Buildroot LDFLAGS for shared libraries") set(CMAKE_MODULE_LINKER_FLAGS "@@TARGET_LDFLAGS@@" CACHE STRING "Buildroot LDFLAGS for module libraries") set(CMAKE_INSTALL_SO_NO_EXE 0) set(CMAKE_PROGRAM_PATH "${RELOCATED_HOST_DIR}/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) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 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@@") if(@@TOOLCHAIN_HAS_CXX@@) set(CMAKE_CXX_FLAGS_DEBUG "" CACHE STRING "Debug CXXFLAGS") set(CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG" CACHE STRING "Release CXXFLAGS") set(CMAKE_CXX_FLAGS "@@TARGET_CXXFLAGS@@" CACHE STRING "Buildroot CXXFLAGS") set(CMAKE_CXX_COMPILER "${RELOCATED_HOST_DIR}/@@TARGET_CXX@@") endif() if(@@TOOLCHAIN_HAS_FORTRAN@@) set(CMAKE_Fortran_FLAGS_DEBUG "" CACHE STRING "Debug Fortran FLAGS") set(CMAKE_Fortran_FLAGS_RELEASE " -DNDEBUG" CACHE STRING "Release Fortran FLAGS") set(CMAKE_Fortran_FLAGS "@@TARGET_FCFLAGS@@" CACHE STRING "Buildroot FCFLAGS") set(CMAKE_Fortran_COMPILER "${RELOCATED_HOST_DIR}/@@TARGET_FC@@") endif() ================================================ FILE: support/misc/utils.mk ================================================ ################################################################################ # # This file contains various utility macros and variables used about # everywhere in make constructs. # ################################################################################ # Strip quotes and then whitespaces qstrip = $(strip $(subst ",,$(1))) #")) # Variables for use in Make constructs comma := , empty := space := $(empty) $(empty) # make 4.3: # https://lwn.net/Articles/810071/ # Number signs (#) appearing inside a macro reference or function invocation # no longer introduce comments and should not be escaped with backslashes: # thus a call such as: # foo := $(shell echo '#') # is legal. Previously the number sign needed to be escaped, for example: # foo := $(shell echo '\#') # Now this latter will resolve to "\#". If you want to write makefiles # portable to both versions, assign the number sign to a variable: # H := \# # foo := $(shell echo '$H') SHARP_SIGN := \# # Case conversion macros. This is inspired by the 'up' macro from gmsl # (http://gmsl.sf.net). It is optimised very heavily because these macros # are used a lot. It is about 5 times faster than forking a shell and tr. # # The caseconvert-helper creates a definition of the case conversion macro. # After expansion by the outer $(eval ), the UPPERCASE macro is defined as: # $(strip $(eval __tmp := $(1)) $(eval __tmp := $(subst a,A,$(__tmp))) ... ) # In other words, every letter is substituted one by one. # # The caseconvert-helper allows us to create this definition out of the # [FROM] and [TO] lists, so we don't need to write down every substition # manually. The uses of $ and $$ quoting are chosen in order to do as # much expansion as possible up-front. # # Note that it would be possible to conceive a slightly more optimal # implementation that avoids the use of __tmp, but that would be even # more unreadable and is not worth the effort. [FROM] := a b c d e f g h i j k l m n o p q r s t u v w x y z - . [TO] := A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ _ define caseconvert-helper $(1) = $$(strip \ $$(eval __tmp := $$(1))\ $(foreach c, $(2),\ $$(eval __tmp := $$(subst $(word 1,$(subst :, ,$c)),$(word 2,$(subst :, ,$c)),$$(__tmp))))\ $$(__tmp)) endef $(eval $(call caseconvert-helper,UPPERCASE,$(join $(addsuffix :,$([FROM])),$([TO])))) $(eval $(call caseconvert-helper,LOWERCASE,$(join $(addsuffix :,$([TO])),$([FROM])))) # Reverse the orders of words in a list. Again, inspired by the gmsl # 'reverse' macro. reverse = $(if $(1),$(call reverse,$(wordlist 2,$(words $(1)),$(1))) $(firstword $(1))) # Sanitize macro cleans up generic strings so it can be used as a filename # and in rules. Particularly useful for VCS version strings, that can contain # slashes, colons (OK in filenames but not in rules), and spaces. sanitize = $(subst $(space),_,$(subst :,_,$(subst /,_,$(strip $(1))))) # MESSAGE Macro -- display a message in bold type MESSAGE = echo "$(TERM_BOLD)>>> $($(PKG)_NAME) $($(PKG)_VERSION) $(call qstrip,$(1))$(TERM_RESET)" TERM_BOLD := $(shell tput smso 2>/dev/null) TERM_RESET := $(shell tput rmso 2>/dev/null) # Utility functions for 'find' # findfileclauses(filelist) => -name 'X' -o -name 'Y' findfileclauses = $(call notfirstword,$(patsubst %,-o -name '%',$(1))) # finddirclauses(base, dirlist) => -path 'base/dirX' -o -path 'base/dirY' finddirclauses = $(call notfirstword,$(patsubst %,-o -path '$(1)/%',$(2))) # Miscellaneous utility functions # notfirstword(wordlist): returns all but the first word in wordlist notfirstword = $(wordlist 2,$(words $(1)),$(1)) # build a comma-separated list of quoted items, from a space-separated # list of unquoted items: a b c d --> "a", "b", "c", "d" make-comma-list = $(subst $(space),$(comma)$(space),$(patsubst %,"%",$(strip $(1)))) # build a comma-separated list of single quoted items, from a space-separated # list of unquoted items: a b c d --> 'a', 'b', 'c', 'd' make-sq-comma-list = $(subst $(space),$(comma)$(space),$(patsubst %,'%',$(strip $(1)))) # Needed for the foreach loops to loop over the list of hooks, so that # each hook call is properly separated by a newline. 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 ================================================ FILE: support/scripts/apply-patches.sh ================================================ #!/usr/bin/env bash # A little script I whipped up to make it easy to # patch source trees and have sane error handling # -Erik # # (c) 2002 Erik Andersen # # Parameters: # - "-s", optional. Silent operation, don't print anything if there # isn't any error. # - the build directory, optional, default value is '.'. The place where are # the package sources. # - the patch directory, optional, default '../kernel-patches'. The place # where are the scripts you want to apply. # - other parameters are the patch name patterns, optional, default value is # '*'. Pattern(s) describing the patch names you want to apply. # # The script will look recursively for patches from the patch directory. If a # file named 'series' exists then the patches mentioned in it will be applied # as plain patches, regardless of their file name. If no 'series' file exists, # the script will look for file names matching pattern(s). If the name # ends with '.tar.*', '.tbz2' or '.tgz', the file is considered as an archive # and will be uncompressed into a directory named # '.patches-name_of_the_archive-unpacked'. It's the turn of this directory to # be scanned with '*' as pattern. Remember that scanning is recursive. Other # files than series file and archives are considered as a patch. # # Once a patch is found, the script will try to apply it. If its name doesn't # end with '.gz', '.bz', '.bz2', '.xz', '.zip', '.Z', '.diff*' or '.patch*', # it will be skipped. If necessary, the patch will be uncompressed before being # 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 silent=-s shift fi # Set directories from arguments, or use defaults. builddir=${1-.} patchdir=${2-../kernel-patches} shift 2 patchpattern=${@-*} # use a well defined sorting order export LC_COLLATE=C if [ ! -d "${builddir}" ] ; then echo "Aborting. '${builddir}' is not a directory." exit 1 fi if [ ! -d "${patchdir}" ] ; then echo "Aborting. '${patchdir}' is not a directory." exit 1 fi # Remove any rejects present BEFORE patching - Because if there are # any, even if patches are well applied, at the end it will complain # about rejects in builddir. find ${builddir}/ '(' -name '*.rej' -o -name '.*.rej' ')' -print0 | \ xargs -0 -r rm -f function apply_patch { path="${1%%/}" patch="${2}" case "${path}" in /*) ;; *) path="$PWD/${path}";; esac if [ "$3" ]; then type="series"; uncomp="cat" else case "$patch" in *.gz) type="gzip"; uncomp="gunzip -dc"; ;; *.bz) type="bzip"; uncomp="bunzip -dc"; ;; *.bz2) type="bzip2"; uncomp="bunzip2 -dc"; ;; *.xz) type="xz"; uncomp="unxz -dc"; ;; *.zip) type="zip"; uncomp="unzip -d"; ;; *.Z) type="compress"; uncomp="uncompress -c"; ;; *.diff*) type="diff"; uncomp="cat"; ;; *.patch*) type="patch"; uncomp="cat"; ;; *) echo "Unsupported file type for ${path}/${patch}, skipping"; return 0 ;; esac fi if [ -z "$silent" ] ; then echo "" echo "Applying $patch using ${type}: " fi if [ ! -e "${path}/$patch" ] ; then echo "Error: missing patch file ${path}/$patch" exit 1 fi 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 --no-backup-if-mismatch -d "${builddir}" -t -N $silent if [ $? != 0 ] ; then echo "Patch failed! Please fix ${patch}!" exit 1 fi } function scan_patchdir { local path=$1 shift 1 patches=${@-*} # If there is a series file, use it instead of using ls sort order # to apply patches. Skip line starting with a dash. if [ -e "${path}/series" ] ; then # The format of a series file accepts a second field that is # used to specify the number of directory components to strip # when applying the patch, in the form -pN (N an integer >= 0) # We assume this field to always be -p1 whether it is present # or missing. series_patches="`grep -Ev "^#" ${path}/series | cut -d ' ' -f1 2> /dev/null`" for i in $series_patches; do apply_patch "$path" "$i" series done else for i in `cd $path; ls -d $patches 2> /dev/null` ; do if [ -d "${path}/$i" ] ; then scan_patchdir "${path}/$i" elif echo "$i" | grep -q -E "\.tar(\..*)?$|\.tbz2?$|\.tgz$" ; then unpackedarchivedir="$builddir/.patches-$(basename $i)-unpacked" rm -rf "$unpackedarchivedir" 2> /dev/null mkdir "$unpackedarchivedir" tar -C "$unpackedarchivedir" -xaf "${path}/$i" scan_patchdir "$unpackedarchivedir" else apply_patch "$path" "$i" fi done fi } touch ${builddir}/.applied_patches_list scan_patchdir "$patchdir" "$patchpattern" # Check for rejects... if [ "`find $builddir/ '(' -name '*.rej' -o -name '.*.rej' ')' -print`" ] ; then echo "Aborting. Reject files found." exit 1 fi ================================================ FILE: support/scripts/boot-qemu-image.py ================================================ #!/usr/bin/env python3 # This script expect to run from the Buildroot top directory. import os import pexpect import sys import time def main(): if not (len(sys.argv) == 2): print("Error: incorrect number of arguments") print("""Usage: boot-qemu-image.py """) sys.exit(1) # Ignore non Qemu defconfig if not sys.argv[1].startswith('qemu_'): sys.exit(0) if not os.path.exists('output/images/start-qemu.sh'): print('qemu-start.sh is missing, cannot test.') sys.exit(0) qemu_start = os.path.join(os.getcwd(), 'output/images/start-qemu.sh') child = pexpect.spawn(qemu_start, ['serial-only'], timeout=5, encoding='utf-8', env={"QEMU_AUDIO_DRV": "none"}) # We want only stdout into the log to avoid double echo child.logfile = sys.stdout # Let the spawn actually try to fork+exec to the wrapper, and then # let the wrapper exec the qemu process. time.sleep(1) try: child.expect(["buildroot login:"], timeout=60) except pexpect.EOF as e: # Some emulations require a fork of qemu-system, which may be # missing on the system, and is not provided by Buildroot. # In this case, spawn above will succeed at starting the wrapper # start-qemu.sh, but that one will fail (exit with 127) in such # a situation. exit = [int(line.split(' ')[1]) for line in e.value.splitlines() if line.startswith('exitstatus: ')] if len(exit) and exit[0] == 127: print('qemu-start.sh could not find the qemu binary') sys.exit(0) print("Connection problem, exiting.") sys.exit(1) except pexpect.TIMEOUT: print("System did not boot in time, exiting.") sys.exit(1) child.sendline("root\r") try: child.expect(["# "], timeout=60) except pexpect.EOF: print("Cannot connect to shell") sys.exit(1) except pexpect.TIMEOUT: print("Timeout while waiting for shell") sys.exit(1) child.sendline("poweroff\r") try: child.expect(["System halted"], timeout=60) child.expect(pexpect.EOF) except pexpect.EOF: pass except pexpect.TIMEOUT: # Qemu may not exit properly after "System halted", ignore. print("Cannot halt machine") sys.exit(0) if __name__ == "__main__": main() ================================================ FILE: support/scripts/br2-external ================================================ #!/usr/bin/env bash set -e # This script must be able to run with bash-3.1, so it can't use # associative arrays. Instead, it emulates them using 'eval'. It # can however use indexed arrays, supported since at least bash-3.0. # The names of the br2-external trees, once validated. declare -a BR2_EXT_NAMES # URL to manual for help in converting old br2-external trees. # Escape '#' so that make does not consider it a comment. MANUAL_URL='https://buildroot.org/manual.html\#br2-external-converting' main() { local OPT OPTARG local br2_ext outputdir while getopts :d: OPT; do case "${OPT}" in d) outputdir="${OPTARG}";; :) error "option '%s' expects a mandatory argument\n" "${OPTARG}";; \?) error "unknown option '%s'\n" "${OPTARG}";; esac done # Forget options; keep only positional args shift $((OPTIND-1)) if [ -z "${outputdir}" ]; then error "no output directory specified (-d)\n" fi # Trap any unexpected error to generate a meaningful error message trap "error 'unexpected error while generating ${ofile}\n'" ERR mkdir -p "${outputdir}" do_validate "${outputdir}" ${@//:/ } do_mk "${outputdir}" do_kconfig "${outputdir}" } # Validates the br2-external trees passed as arguments. Makes each of # them canonical and store them in the global arrays BR2_EXT_NAMES # and BR2_EXT_PATHS. # # Note: since this script is always first called from Makefile context # to generate the Makefile fragment before it is called to generate the # Kconfig snippet, we're sure that any error in do_validate will be # interpreted in Makefile context. Going up to generating the Kconfig # snippet means that there were no error. # do_validate() { local outputdir="${1}" local br2_ext shift if [ ${#} -eq 0 ]; then # No br2-external tree is valid return fi for br2_ext in "${@}"; do do_validate_one "${br2_ext}" done >"${outputdir}/.br2-external.mk" } do_validate_one() { local br2_ext="${1}" local br2_name br2_desc n d if [ ! -d "${br2_ext}" ]; then error "'%s': no such file or directory\n" "${br2_ext}" fi if [ ! -r "${br2_ext}" -o ! -x "${br2_ext}" ]; then error "'%s': permission denied\n" "${br2_ext}" fi if [ ! -f "${br2_ext}/external.desc" ]; then error "'%s': does not have an 'external.desc'. See %s\n" \ "${br2_ext}" "${MANUAL_URL}" fi br2_name="$(sed -r -e '/^name: +(.*)$/!d; s//\1/' "${br2_ext}/external.desc")" if [ -z "${br2_name}" ]; then error "'%s/external.desc': does not define the name\n" "${br2_ext}" fi # Only ASCII chars in [A-Za-z0-9_] are permitted n="$(sed -r -e 's/[A-Za-z0-9_]//g' <<<"${br2_name}" )" if [ -n "${n}" ]; then # Escape '$' so that it gets printed error "'%s': name '%s' contains invalid chars: '%s'\n" \ "${br2_ext}" "${br2_name//\$/\$\$}" "${n//\$/\$\$}" fi eval d="\"\${BR2_EXT_PATHS_${br2_name}}\"" if [ -n "${d}" ]; then error "'%s': name '%s' is already used in '%s'\n" \ "${br2_ext}" "${br2_name}" "${d}" fi br2_desc="$(sed -r -e '/^desc: +(.*)$/!d; s//\1/' "${br2_ext}/external.desc")" if [ ! -f "${br2_ext}/external.mk" ]; then error "'%s/external.mk': no such file or directory\n" "${br2_ext}" fi if [ ! -f "${br2_ext}/Config.in" ]; then error "'%s/Config.in': no such file or directory\n" "${br2_ext}" fi # Register this br2-external tree, use an absolute canonical path br2_ext="$( cd "${br2_ext}"; pwd )" BR2_EXT_NAMES+=( "${br2_name}" ) eval BR2_EXT_PATHS_${br2_name}="\"\${br2_ext}\"" eval BR2_EXT_DESCS_${br2_name}="\"\${br2_desc:-\${br2_name}}\"" } # Generate the .mk snippet that defines makefile variables # for the br2-external tree do_mk() { local outputdir="${1}" local br2_name br2_desc br2_ext { printf '#\n# Automatically generated file; DO NOT EDIT.\n#\n' printf '\n' printf 'BR2_EXTERNAL ?=' for br2_name in "${BR2_EXT_NAMES[@]}"; do eval br2_ext="\"\${BR2_EXT_PATHS_${br2_name}}\"" printf ' %s' "${br2_ext}" done printf '\n' printf 'BR2_EXTERNAL_NAMES = \n' printf 'BR2_EXTERNAL_DIRS = \n' printf 'BR2_EXTERNAL_MKS = \n' if [ ${#BR2_EXT_NAMES[@]} -eq 0 ]; then printf '\n' printf '# No br2-external tree defined.\n' return fi for br2_name in "${BR2_EXT_NAMES[@]}"; do eval br2_desc="\"\${BR2_EXT_DESCS_${br2_name}}\"" eval br2_ext="\"\${BR2_EXT_PATHS_${br2_name}}\"" printf '\n' printf 'BR2_EXTERNAL_NAMES += %s\n' "${br2_name}" printf 'BR2_EXTERNAL_DIRS += %s\n' "${br2_ext}" printf 'BR2_EXTERNAL_MKS += %s/external.mk\n' "${br2_ext}" printf 'export BR2_EXTERNAL_%s_PATH = %s\n' "${br2_name}" "${br2_ext}" printf 'export BR2_EXTERNAL_%s_DESC = %s\n' "${br2_name}" "${br2_desc}" done } >"${outputdir}/.br2-external.mk" } # Generate the kconfig snippets for the br2-external tree. do_kconfig() { local outputdir="${1}" local br2_name br2_desc br2_ext br2 local -a items items=( paths menus toolchains jpeg openssl skeleton init ) for br2 in "${items[@]}"; do { printf '#\n# Automatically generated file; DO NOT EDIT.\n#\n' printf '\n' if [ ${#BR2_EXT_NAMES[@]} -eq 0 ]; then printf '# No br2-external tree defined.\n' fi } >"${outputdir}/.br2-external.in.${br2}" done if [ ${#BR2_EXT_NAMES[@]} -eq 0 ]; then return fi printf 'menu "External options"\n\n' >>"${outputdir}/.br2-external.in.menus" for br2_name in "${BR2_EXT_NAMES[@]}"; do eval br2_desc="\"\${BR2_EXT_DESCS_${br2_name}}\"" eval br2_ext="\"\${BR2_EXT_PATHS_${br2_name}}\"" { printf 'config BR2_EXTERNAL_%s_PATH\n' "${br2_name}" printf '\tstring\n' printf '\tdefault "%s"\n' "${br2_ext}" printf '\n' } >>"${outputdir}/.br2-external.in.paths" { if [ ${#BR2_EXT_NAMES[@]} -gt 1 ]; then printf 'menu "%s"\n' "${br2_desc}" fi printf 'comment "%s (in %s)"\n' "${br2_desc}" "${br2_ext}" printf 'source "%s/Config.in"\n' "${br2_ext}" if [ ${#BR2_EXT_NAMES[@]} -gt 1 ]; then printf 'endmenu # %s\n' "${br2_name}" fi printf '\n' } >>"${outputdir}/.br2-external.in.menus" if [ -f "${br2_ext}/provides/toolchains.in" ]; then printf 'comment "Toolchains from: %s"\n' "${br2_desc}" printf 'source "%s/provides/toolchains.in"\n' "${br2_ext}" printf '\n' else printf '# No toolchain from: %s\n\n' "${br2_desc}" fi >>"${outputdir}/.br2-external.in.toolchains" if [ -f "${br2_ext}/provides/jpeg.in" ]; then printf 'comment "jpeg from: %s"\n' "${br2_desc}" printf 'source "%s/provides/jpeg.in"\n' "${br2_ext}" printf '\n' else printf '# No jpeg from: %s\n\n' "${br2_desc}" fi >>"${outputdir}/.br2-external.in.jpeg" if [ -f "${br2_ext}/provides/openssl.in" ]; then printf 'comment "openssl from: %s"\n' "${br2_desc}" printf 'source "%s/provides/openssl.in"\n' "${br2_ext}" printf '\n' else printf '# No openssl from: %s\n\n' "${br2_desc}" fi >>"${outputdir}/.br2-external.in.openssl" if [ -f "${br2_ext}/provides/skeleton.in" ]; then printf 'comment "skeleton from: %s"\n' "${br2_desc}" printf 'source "%s/provides/skeleton.in"\n' "${br2_ext}" printf '\n' else printf '# No skeleton from: %s\n\n' "${br2_desc}" fi >>"${outputdir}/.br2-external.in.skeleton" if [ -f "${br2_ext}/provides/init.in" ]; then printf 'comment "init from: %s"\n' "${br2_desc}" printf 'source "%s/provides/init.in"\n' "${br2_ext}" printf '\n' else printf '# No init from: %s\n\n' "${br2_desc}" fi >>"${outputdir}/.br2-external.in.init" done printf 'endmenu\n' >>"${outputdir}/.br2-external.in.menus" } error() { local fmt="${1}"; shift; printf "BR2_EXTERNAL_ERROR = ${fmt}" "${@}"; exit 1; } my_name="${0##*/}" main "${@}" ================================================ FILE: support/scripts/brpkgutil.py ================================================ # Copyright (C) 2010-2013 Thomas Petazzoni # Copyright (C) 2019 Yann E. MORIN import json import logging import os import subprocess from collections import defaultdict # This function returns a tuple of four dictionaries, all using package # names as keys: # - a dictionary which values are the lists of packages that are the # dependencies of the package used as key; # - a dictionary which values are the lists of packages that are the # reverse dependencies of the package used as key; # - a dictionary which values are the type of the package used as key; # - a dictionary which values are the version of the package used as key, # 'virtual' for a virtual package, or the empty string for a rootfs. def get_dependency_tree(): logging.info("Getting dependency tree...") deps = {} rdeps = defaultdict(list) types = {} versions = {} # Special case for the 'all' top-level fake package deps['all'] = [] types['all'] = 'target' versions['all'] = '' cmd = ["make", "-s", "--no-print-directory", "show-info"] with open(os.devnull, 'wb') as devnull: p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=devnull, universal_newlines=True) pkg_list = json.loads(p.communicate()[0]) for pkg in pkg_list: deps['all'].append(pkg) types[pkg] = pkg_list[pkg]["type"] deps[pkg] = pkg_list[pkg].get("dependencies", []) for p in deps[pkg]: rdeps[p].append(pkg) versions[pkg] = \ None if pkg_list[pkg]["type"] == "rootfs" \ else "virtual" if pkg_list[pkg]["virtual"] \ else pkg_list[pkg]["version"] return (deps, rdeps, types, versions) ================================================ FILE: support/scripts/check-bin-arch ================================================ #!/usr/bin/env bash # List of hardcoded paths that should be ignored, as they may # contain binaries for an architecture different from the # architecture of the target. declare -a IGNORES=( # Skip firmware files, they could be ELF files for other # architectures "/lib/firmware" "/usr/lib/firmware" # Skip kernel modules # When building a 32-bit userland on 64-bit architectures, the kernel # and its modules may still be 64-bit. To keep the basic # check-bin-arch logic simple, just skip this directory. "/lib/modules" "/usr/lib/modules" # Skip files in /usr/share, several packages (qemu, # pru-software-support) legitimately install ELF binaries that # are not for the target architecture "/usr/share" # Skip files in {/usr,}/lib/grub, since it is possible to have # it for a different architecture (e.g. i386 grub on x86_64). "/lib/grub" "/usr/lib/grub" # Guile modules are ELF files, with a "None" machine "/usr/lib/guile" ) while getopts p:l:r:a:i: OPT ; do case "${OPT}" in p) package="${OPTARG}";; l) pkg_list="${OPTARG}";; r) readelf="${OPTARG}";; a) arch_name="${OPTARG}";; i) # Ensure we do have single '/' as separators, # and that we have a leading and a trailing one. pattern="$(sed -r -e 's:/+:/:g; s:^/*:/:; s:/*$:/:;' <<<"${OPTARG}")" IGNORES+=("${pattern}") ;; :) error "option '%s' expects a mandatory argument\n" "${OPTARG}";; \?) error "unknown option '%s'\n" "${OPTARG}";; esac done if test -z "${package}" -o -z "${pkg_list}" -o -z "${readelf}" -o -z "${arch_name}" ; then echo "Usage: $0 -p -l -r -a [-i PATH ...]" exit 1 fi exitcode=0 # Only split on new lines, for filenames-with-spaces IFS=" " while read f; do for ignore in "${IGNORES[@]}"; do if [[ "${f}" =~ ^"${ignore}" ]]; then continue 2 fi done # Skip symlinks. Some symlinks may have absolute paths as # target, pointing to host binaries while we're building. if [[ -L "${TARGET_DIR}/${f}" ]]; then continue fi # Get architecture using readelf. We pipe through 'head -1' so # that when the file is a static library (.a), we only take # into account the architecture of the first object file. arch=$(LC_ALL=C ${readelf} -h "${TARGET_DIR}/${f}" 2>&1 | \ sed -r -e '/^ Machine: +(.+)/!d; s//\1/;' | head -1) # If no architecture found, assume it was not an ELF file if test "${arch}" = "" ; then continue fi # Architecture is correct if test "${arch}" = "${arch_name}" ; then continue fi printf 'ERROR: architecture for "%s" is "%s", should be "%s"\n' \ "${f}" "${arch}" "${arch_name}" exitcode=1 done < <( sed -r -e "/^${package},\.(.+)$/!d; s//\1/;" ${pkg_list} ) exit ${exitcode} ================================================ FILE: support/scripts/check-dotconfig.py ================================================ #!/usr/bin/env python3 # This scripts check that all lines present in the defconfig are # still present in the .config import sys def main(): if not (len(sys.argv) == 3): print("Error: incorrect number of arguments") print("""Usage: check-dotconfig """) sys.exit(1) configfile = sys.argv[1] defconfig = sys.argv[2] # strip() to get rid of trailing \n with open(configfile) as configf: configlines = [line.strip() for line in configf.readlines()] defconfiglines = [] with open(defconfig) as defconfigf: # strip() to get rid of trailing \n for line in (line.strip() for line in defconfigf.readlines()): if line.startswith("BR2_"): defconfiglines.append(line) elif line.startswith('# BR2_') and line.endswith(' is not set'): defconfiglines.append(line) # Check that all the defconfig lines are still present missing = [line for line in defconfiglines if line not in configlines] if missing: print("WARN: defconfig {} can't be used:".format(defconfig)) for m in missing: print(" Missing: {}".format(m)) sys.exit(1) if __name__ == "__main__": main() ================================================ FILE: support/scripts/check-host-rpath ================================================ #!/usr/bin/env bash # This script scans $(HOST_DIR)/{bin,sbin} for all ELF files, and checks # they have an RPATH to $(HOST_DIR)/lib if they need libraries from # there. # Override the user's locale so we are sure we can parse the output of # readelf(1) and file(1) export LC_ALL=C main() { local pkg="${1}" local hostdir="${2}" local perpackagedir="${3}" local file ret # Remove duplicate and trailing '/' for proper match hostdir="$( sed -r -e 's:/+:/:g; s:/$::;' <<<"${hostdir}" )" ret=0 while read file; do is_elf "${file}" || continue elf_needs_rpath "${file}" "${hostdir}" || continue check_elf_has_rpath "${file}" "${hostdir}" "${perpackagedir}" && continue if [ ${ret} -eq 0 ]; then ret=1 printf "***\n" printf "*** ERROR: package %s installs executables without proper RPATH:\n" "${pkg}" fi printf "*** %s\n" "${file}" done < <( find "${hostdir}"/{bin,sbin} -type f 2>/dev/null ) return ${ret} } is_elf() { local f="${1}" readelf -l "${f}" 2>/dev/null \ |grep -E 'Requesting program interpreter:' >/dev/null 2>&1 } # This function tells whether a given ELF executable (first argument) # needs a RPATH pointing to the host library directory or not. It # needs such an RPATH if at least of the libraries used by the ELF # executable is available in the host library directory. This function # returns 0 when a RPATH is needed, 1 otherwise. # # With per-package directory support, ${hostdir} will point to the # current package per-package host directory, and this is where this # function will check if the libraries needed by the executable are # located (or not). In practice, the ELF executable RPATH may point to # another package per-package host directory, but that is fine because # if such an executable is within the current package per-package host # directory, its libraries will also have been copied into the current # package per-package host directory. elf_needs_rpath() { local file="${1}" local hostdir="${2}" local lib while read lib; do [ -e "${hostdir}/lib/${lib}" ] && return 0 done < <( readelf -d "${file}" \ |sed -r -e '/^.* \(NEEDED\) .*Shared library: \[(.+)\]$/!d;' \ -e 's//\1/;' \ ) return 1 } # This function checks whether at least one of the RPATH of the given # ELF executable (first argument) properly points to the host library # directory (second argument), either through an absolute RPATH or a # relative RPATH. In the context of per-package directory support, # ${hostdir} (second argument) points to the current package host # directory. However, it is perfectly valid for an ELF binary to have # a RPATH pointing to another package per-package host directory, # which is why such RPATH is also accepted (the per-package directory # gets passed as third argument). Having a RPATH pointing to the host # directory will make sure the ELF executable will find at runtime the # shared libraries it depends on. This function returns 0 when a # proper RPATH was found, or 1 otherwise. check_elf_has_rpath() { local file="${1}" local hostdir="${2}" local perpackagedir="${3}" local rpath dir while read rpath; do for dir in ${rpath//:/ }; do # Remove duplicate and trailing '/' for proper match dir="$( sed -r -e 's:/+:/:g; s:/$::;' <<<"${dir}" )" [ "${dir}" = "${hostdir}/lib" ] && return 0 [ "${dir}" = "\$ORIGIN/../lib" ] && return 0 # This check is done even for builds where # BR2_PER_PACKAGE_DIRECTORIES is disabled. In this case, # PER_PACKAGE_DIR and therefore ${perpackagedir} points to # a non-existent directory, and this check will always be # false. [[ ${dir} =~ ${perpackagedir}/[^/]+/host/lib ]] && return 0 done done < <( readelf -d "${file}" \ |sed -r -e '/.* \(R(UN)?PATH\) +Library r(un)?path: \[(.+)\]$/!d' \ -e 's//\3/;' \ ) return 1 } main "${@}" ================================================ FILE: support/scripts/check-kernel-headers.sh ================================================ #!/bin/sh # This script (and the embedded C code) will check that the actual # headers version match the user told us they were: # # - if both versions are the same, all is well. # # - if the actual headers are older than the user told us, this is # an error. # # - if the actual headers are more recent than the user told us, and # we are doing a strict check, then this is an error. # # - if the actual headers are more recent than the user told us, and # we are doing a loose check, then a warning is printed, but this is # not an error. BUILDDIR="${1}" SYSROOT="${2}" # Make sure we have enough version components HDR_VER="${3}.0.0" CHECK="${4}" # 'strict' or 'loose' HDR_M="${HDR_VER%%.*}" HDR_V="${HDR_VER#*.}" HDR_m="${HDR_V%%.*}" # Exit on any error, so we don't try to run an unexisting program if the # compilation fails. set -e # Set the clean-up trap in advance to prevent a race condition in which we # create the file but get a SIGTERM before setting it. Notice that we don't # need to care about EXEC being empty, since 'rm -f ""' does nothing. trap 'rm -f "${EXEC}"' EXIT EXEC="$(mktemp -p "${BUILDDIR}" -t .check-headers.XXXXXX)" # We do not want to account for the patch-level, since headers are # not supposed to change for different patchlevels, so we mask it out. # This only applies to kernels >= 3.0, but those are the only one # we actually care about; we treat all 2.6.x kernels equally. ${HOSTCC} -imacros "${SYSROOT}/usr/include/linux/version.h" \ -x c -o "${EXEC}" - <<_EOF_ #include #include #include int main(int argc __attribute__((unused)), char** argv __attribute__((unused))) { int l = LINUX_VERSION_CODE & ~0xFF; int h = KERNEL_VERSION(${HDR_M},${HDR_m},0); if ((l >= h) && !strcmp("${CHECK}", "loose")) return 0; if (l != h) { printf("Incorrect selection of kernel headers: "); printf("expected %d.%d.x, got %d.%d.x\n", ${HDR_M}, ${HDR_m}, ((LINUX_VERSION_CODE>>16) & 0xFF), ((LINUX_VERSION_CODE>>8) & 0xFF)); return 1; } return 0; } _EOF_ "${EXEC}" ================================================ FILE: support/scripts/check-merged-usr.sh ================================================ #!/bin/sh # # Check if a given custom skeleton or overlay complies to the merged /usr # requirements: # / # /bin -> usr/bin # /lib -> usr/lib # /sbin -> usr/sbin # /usr/bin/ # /usr/lib/ # /usr/sbin/ # # Output: the list of non-compliant paths (empty if compliant). # # Extract the inode numbers for all of those directories. In case any is # a symlink, we want to get the inode of the pointed-to directory, so we # append '/.' to be sure we get the target directory. Since the symlinks # can be anyway (/bin -> /usr/bin or /usr/bin -> /bin), we do that for # all of them. # lib_inode=$(stat -c '%i' "${1}/lib/." 2>/dev/null) bin_inode=$(stat -c '%i' "${1}/bin/." 2>/dev/null) sbin_inode=$(stat -c '%i' "${1}/sbin/." 2>/dev/null) usr_lib_inode=$(stat -c '%i' "${1}/usr/lib/." 2>/dev/null) usr_bin_inode=$(stat -c '%i' "${1}/usr/bin/." 2>/dev/null) usr_sbin_inode=$(stat -c '%i' "${1}/usr/sbin/." 2>/dev/null) not_merged_dirs="" test -z "$lib_inode" || \ test "$lib_inode" = "$usr_lib_inode" || \ not_merged_dirs="/lib" test -z "$bin_inode" || \ test "$bin_inode" = "$usr_bin_inode" || \ not_merged_dirs="$not_merged_dirs /bin" test -z "$sbin_inode" || \ test "$sbin_inode" = "$usr_sbin_inode" || \ not_merged_dirs="$not_merged_dirs /sbin" echo "${not_merged_dirs# }" ================================================ FILE: support/scripts/cpedb.py ================================================ #!/usr/bin/env python3 import xml.etree.ElementTree as ET from xml.etree.ElementTree import Element, SubElement import gzip import os import requests import time from xml.dom import minidom VALID_REFS = ['VENDOR', 'VERSION', 'CHANGE_LOG', 'PRODUCT', 'PROJECT', 'ADVISORY'] CPEDB_URL = "https://static.nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-dictionary_v2.3.xml.gz" ns = { '': 'http://cpe.mitre.org/dictionary/2.0', 'cpe-23': 'http://scap.nist.gov/schema/cpe-extension/2.3', 'xml': 'http://www.w3.org/XML/1998/namespace' } class CPE: def __init__(self, cpe_str, titles, refs): self.cpe_str = cpe_str self.titles = titles self.references = refs self.cpe_cur_ver = "".join(self.cpe_str.split(":")[5:6]) def update_xml_dict(self): ET.register_namespace('', 'http://cpe.mitre.org/dictionary/2.0') cpes = Element('cpe-list') cpes.set('xmlns:cpe-23', "http://scap.nist.gov/schema/cpe-extension/2.3") cpes.set('xmlns:ns6', "http://scap.nist.gov/schema/scap-core/0.1") cpes.set('xmlns:scap-core', "http://scap.nist.gov/schema/scap-core/0.3") cpes.set('xmlns:config', "http://scap.nist.gov/schema/configuration/0.1") cpes.set('xmlns:xsi', "http://www.w3.org/2001/XMLSchema-instance") cpes.set('xmlns:meta', "http://scap.nist.gov/schema/cpe-dictionary-metadata/0.2") cpes.set('xsi:schemaLocation', " ".join(["http://scap.nist.gov/schema/cpe-extension/2.3", "https://scap.nist.gov/schema/cpe/2.3/cpe-dictionary-extension_2.3.xsd", "http://cpe.mitre.org/dictionary/2.0", "https://scap.nist.gov/schema/cpe/2.3/cpe-dictionary_2.3.xsd", "http://scap.nist.gov/schema/cpe-dictionary-metadata/0.2", "https://scap.nist.gov/schema/cpe/2.1/cpe-dictionary-metadata_0.2.xsd", "http://scap.nist.gov/schema/scap-core/0.3", "https://scap.nist.gov/schema/nvd/scap-core_0.3.xsd", "http://scap.nist.gov/schema/configuration/0.1", "https://scap.nist.gov/schema/nvd/configuration_0.1.xsd", "http://scap.nist.gov/schema/scap-core/0.1", "https://scap.nist.gov/schema/nvd/scap-core_0.1.xsd"])) item = SubElement(cpes, 'cpe-item') cpe_short_name = CPE.short_name(self.cpe_str) cpe_new_ver = CPE.version_update(self.cpe_str) item.set('name', 'cpe:/' + cpe_short_name) self.titles[0].text.replace(self.cpe_cur_ver, cpe_new_ver) for title in self.titles: item.append(title) if self.references: item.append(self.references) cpe23item = SubElement(item, 'cpe-23:cpe23-item') cpe23item.set('name', self.cpe_str) # Generate the XML as a string xmlstr = ET.tostring(cpes) # And use minidom to pretty print the XML return minidom.parseString(xmlstr).toprettyxml(encoding="utf-8").decode("utf-8") @staticmethod def version(cpe): return cpe.split(":")[5] @staticmethod def product(cpe): return cpe.split(":")[4] @staticmethod def short_name(cpe): return ":".join(cpe.split(":")[2:6]) @staticmethod def version_update(cpe): return ":".join(cpe.split(":")[5:6]) @staticmethod def no_version(cpe): return ":".join(cpe.split(":")[:5]) class CPEDB: def __init__(self, nvd_path): self.all_cpes = dict() self.all_cpes_no_version = dict() self.nvd_path = nvd_path def get_xml_dict(self): print("CPE: Setting up NIST dictionary") if not os.path.exists(os.path.join(self.nvd_path, "cpe")): os.makedirs(os.path.join(self.nvd_path, "cpe")) cpe_dict_local = os.path.join(self.nvd_path, "cpe", os.path.basename(CPEDB_URL)) if not os.path.exists(cpe_dict_local) or os.stat(cpe_dict_local).st_mtime < time.time() - 86400: print("CPE: Fetching xml manifest from [" + CPEDB_URL + "]") cpe_dict = requests.get(CPEDB_URL) open(cpe_dict_local, "wb").write(cpe_dict.content) print("CPE: Unzipping xml manifest...") nist_cpe_file = gzip.GzipFile(fileobj=open(cpe_dict_local, 'rb')) print("CPE: Converting xml manifest to dict...") tree = ET.parse(nist_cpe_file) all_cpedb = tree.getroot() self.parse_dict(all_cpedb) def parse_dict(self, all_cpedb): # Cycle through the dict and build two dict to be used for custom # lookups of partial and complete CPE objects # The objects are then used to create new proposed XML updates if # if is determined one is required # Out of the different language titles, select English for cpe in all_cpedb.findall(".//{http://cpe.mitre.org/dictionary/2.0}cpe-item"): cpe_titles = [] for title in cpe.findall('.//{http://cpe.mitre.org/dictionary/2.0}title[@xml:lang="en-US"]', ns): title.tail = None cpe_titles.append(title) # Some older CPE don't include references, if they do, make # sure we handle the case of one ref needing to be packed # in a list cpe_ref = cpe.find(".//{http://cpe.mitre.org/dictionary/2.0}references") if cpe_ref: for ref in cpe_ref.findall(".//{http://cpe.mitre.org/dictionary/2.0}reference"): ref.tail = None ref.text = ref.text.upper() if ref.text not in VALID_REFS: ref.text = ref.text + "-- UPDATE this entry, here are some examples and just one word should be used -- " + ' '.join(VALID_REFS) # noqa E501 cpe_ref.tail = None cpe_ref.text = None cpe_str = cpe.find(".//{http://scap.nist.gov/schema/cpe-extension/2.3}cpe23-item").get('name') item = CPE(cpe_str, cpe_titles, cpe_ref) cpe_str_no_version = CPE.no_version(cpe_str) # This dict must have a unique key for every CPE version # which allows matching to the specific obj data of that # NIST dict entry self.all_cpes.update({cpe_str: item}) # This dict has one entry for every CPE (w/o version) to allow # partial match (no valid version) check (the obj is saved and # used as seed for suggested xml updates. By updating the same # non-version'd entry, it assumes the last update here is the # latest version in the NIST dict) self.all_cpes_no_version.update({cpe_str_no_version: item}) def find_partial(self, cpe_str): cpe_str_no_version = CPE.no_version(cpe_str) if cpe_str_no_version in self.all_cpes_no_version: return cpe_str_no_version def find_partial_obj(self, cpe_str): cpe_str_no_version = CPE.no_version(cpe_str) if cpe_str_no_version in self.all_cpes_no_version: return self.all_cpes_no_version[cpe_str_no_version] def find_partial_latest_version(self, cpe_str_partial): cpe_obj = self.find_partial_obj(cpe_str_partial) return cpe_obj.cpe_cur_ver def find(self, cpe_str): if self.find_partial(cpe_str): if cpe_str in self.all_cpes: return cpe_str def gen_update_xml(self, cpe_str): cpe = self.find_partial_obj(cpe_str) return cpe.update_xml_dict() ================================================ FILE: support/scripts/cve.py ================================================ #!/usr/bin/env python3 # Copyright (C) 2009 by Thomas Petazzoni # Copyright (C) 2020 by Gregory CLEMENT # # 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 import datetime import os import requests # URL checking import distutils.version import time import gzip import sys import operator try: import ijson # backend is a module in < 2.5, a string in >= 2.5 if 'python' in getattr(ijson.backend, '__name__', ijson.backend): try: import ijson.backends.yajl2_cffi as ijson except ImportError: sys.stderr.write('Warning: Using slow ijson python backend\n') except ImportError: sys.stderr.write("You need ijson to parse NVD for CVE check\n") exit(1) sys.path.append('utils/') NVD_START_YEAR = 2002 NVD_JSON_VERSION = "1.1" NVD_BASE_URL = "https://nvd.nist.gov/feeds/json/cve/" + NVD_JSON_VERSION ops = { '>=': operator.ge, '>': operator.gt, '<=': operator.le, '<': operator.lt, '=': operator.eq } # Check if two CPE IDs match each other def cpe_matches(cpe1, cpe2): cpe1_elems = cpe1.split(":") cpe2_elems = cpe2.split(":") remains = filter(lambda x: x[0] not in ["*", "-"] and x[1] not in ["*", "-"] and x[0] != x[1], zip(cpe1_elems, cpe2_elems)) return len(list(remains)) == 0 def cpe_product(cpe): return cpe.split(':')[4] def cpe_version(cpe): return cpe.split(':')[5] class CVE: """An accessor class for CVE Items in NVD files""" CVE_AFFECTS = 1 CVE_DOESNT_AFFECT = 2 CVE_UNKNOWN = 3 def __init__(self, nvd_cve): """Initialize a CVE from its NVD JSON representation""" self.nvd_cve = nvd_cve @staticmethod def download_nvd_year(nvd_path, year): metaf = "nvdcve-%s-%s.meta" % (NVD_JSON_VERSION, year) path_metaf = os.path.join(nvd_path, metaf) jsonf_gz = "nvdcve-%s-%s.json.gz" % (NVD_JSON_VERSION, year) path_jsonf_gz = os.path.join(nvd_path, jsonf_gz) # If the database file is less than a day old, we assume the NVD data # locally available is recent enough. if os.path.exists(path_jsonf_gz) and os.stat(path_jsonf_gz).st_mtime >= time.time() - 86400: return path_jsonf_gz # If not, we download the meta file url = "%s/%s" % (NVD_BASE_URL, metaf) print("Getting %s" % url) page_meta = requests.get(url) page_meta.raise_for_status() # If the meta file already existed, we compare the existing # one with the data newly downloaded. If they are different, # we need to re-download the database. # If the database does not exist locally, we need to redownload it in # any case. if os.path.exists(path_metaf) and os.path.exists(path_jsonf_gz): meta_known = open(path_metaf, "r").read() if page_meta.text == meta_known: return path_jsonf_gz # Grab the compressed JSON NVD, and write files to disk url = "%s/%s" % (NVD_BASE_URL, jsonf_gz) print("Getting %s" % url) page_json = requests.get(url) page_json.raise_for_status() open(path_jsonf_gz, "wb").write(page_json.content) open(path_metaf, "w").write(page_meta.text) return path_jsonf_gz @classmethod def read_nvd_dir(cls, nvd_dir): """ Iterate over all the CVEs contained in NIST Vulnerability Database feeds since NVD_START_YEAR. If the files are missing or outdated in nvd_dir, a fresh copy will be downloaded, and kept in .json.gz """ for year in range(NVD_START_YEAR, datetime.datetime.now().year + 1): filename = CVE.download_nvd_year(nvd_dir, year) try: content = ijson.items(gzip.GzipFile(filename), 'CVE_Items.item') except: # noqa: E722 print("ERROR: cannot read %s. Please remove the file then rerun this script" % filename) raise for cve in content: yield cls(cve) def each_product(self): """Iterate over each product section of this cve""" for vendor in self.nvd_cve['cve']['affects']['vendor']['vendor_data']: for product in vendor['product']['product_data']: yield product def parse_node(self, node): """ Parse the node inside the configurations section to extract the cpe information usefull to know if a product is affected by the CVE. Actually only the product name and the version descriptor are needed, but we also provide the vendor name. """ # The node containing the cpe entries matching the CVE can also # contain sub-nodes, so we need to manage it. for child in node.get('children', ()): for parsed_node in self.parse_node(child): yield parsed_node for cpe in node.get('cpe_match', ()): if not cpe['vulnerable']: return product = cpe_product(cpe['cpe23Uri']) version = cpe_version(cpe['cpe23Uri']) # ignore when product is '-', which means N/A if product == '-': return op_start = '' op_end = '' v_start = '' v_end = '' if version != '*' and version != '-': # Version is defined, this is a '=' match op_start = '=' v_start = version else: # Parse start version, end version and operators if 'versionStartIncluding' in cpe: op_start = '>=' v_start = cpe['versionStartIncluding'] if 'versionStartExcluding' in cpe: op_start = '>' v_start = cpe['versionStartExcluding'] if 'versionEndIncluding' in cpe: op_end = '<=' v_end = cpe['versionEndIncluding'] if 'versionEndExcluding' in cpe: op_end = '<' v_end = cpe['versionEndExcluding'] yield { 'id': cpe['cpe23Uri'], 'v_start': v_start, 'op_start': op_start, 'v_end': v_end, 'op_end': op_end } def each_cpe(self): for node in self.nvd_cve['configurations']['nodes']: for cpe in self.parse_node(node): yield cpe @property def identifier(self): """The CVE unique identifier""" return self.nvd_cve['cve']['CVE_data_meta']['ID'] @property def affected_products(self): """The set of CPE products referred by this CVE definition""" return set(cpe_product(p['id']) for p in self.each_cpe()) def affects(self, name, version, cve_ignore_list, cpeid=None): """ True if the Buildroot Package object passed as argument is affected by this CVE. """ if self.identifier in cve_ignore_list: return self.CVE_DOESNT_AFFECT pkg_version = distutils.version.LooseVersion(version) if not hasattr(pkg_version, "version"): print("Cannot parse package '%s' version '%s'" % (name, version)) pkg_version = None # if we don't have a cpeid, build one based on name and version if not cpeid: cpeid = "cpe:2.3:*:*:%s:%s:*:*:*:*:*:*:*" % (name, version) # if we have a cpeid, use its version instead of the package # version, as they might be different due to # _CPE_ID_VERSION else: pkg_version = distutils.version.LooseVersion(cpe_version(cpeid)) for cpe in self.each_cpe(): if not cpe_matches(cpe['id'], cpeid): continue if not cpe['v_start'] and not cpe['v_end']: return self.CVE_AFFECTS if not pkg_version: continue if cpe['v_start']: try: cve_affected_version = distutils.version.LooseVersion(cpe['v_start']) inrange = ops.get(cpe['op_start'])(pkg_version, cve_affected_version) except TypeError: return self.CVE_UNKNOWN # current package version is before v_start, so we're # not affected by the CVE if not inrange: continue if cpe['v_end']: try: cve_affected_version = distutils.version.LooseVersion(cpe['v_end']) inrange = ops.get(cpe['op_end'])(pkg_version, cve_affected_version) except TypeError: return self.CVE_UNKNOWN # current package version is after v_end, so we're # not affected by the CVE if not inrange: continue # We're in the version range affected by this CVE return self.CVE_AFFECTS return self.CVE_DOESNT_AFFECT ================================================ FILE: support/scripts/eclipse-register-toolchain ================================================ #!/bin/sh # This script registers the toolchain of a Buildroot project into the # Eclipse plugin. To do so, it adds a new line for the Buildroot # toolchain into the $HOME/.buildroot-eclipse.toolchains file, which # the Eclipse Buildroot plugin reads to discover automatically the # available Buildroot toolchains on the system. # # This script should typically not be called manually. Instead, one # should enable the BR2_ECLIPSE_REGISTER configuration option, which # will lead Buildroot to automatically call this script with the # appropriate arguments. # # Usage: # eclipse-register-toolchain project-directory toolchain-prefix architecture # # project-directory is the absolute path to the Buildroot project # output directory (which contains the host/, target/, build/, # images/, etc. subdirectories). It should be an absolute and # canonical path. # # toolchain-prefix is the prefix of the cross-compilation tools, i.e # 'arm-linux-' if the cross-compiler executable is 'arm-linux-gcc'. # # architecture is the lower-cased name of the architecture targetted # by the Buildroot project. if test $# -ne 3; then echo "Invalid number of arguments." echo "Usage: $0 project-directory toolchain-prefix architecture" exit 1 fi project_directory=$1 toolchain_prefix=$2 architecture=$3 if test ! -d ${project_directory} ; then echo "Non-existing project directory ${project_directory}" exit 1 fi if test ! -d ${project_directory}/host ; then echo "Your project directory does not look like a Buildroot output" exit 1 fi if test ! -e ${project_directory}/host/bin/${toolchain_prefix}gcc ; then echo "Cannot find the cross-compiler in the project directory" exit 1 fi TOOLCHAIN_ECLIPSE_FILE=${HOME}/.buildroot-eclipse.toolchains # First, we remove all lines from the ${TOOLCHAIN_ECLISPE_FILE} that # correspond to toolchains that no longer exist. if test -f ${TOOLCHAIN_ECLIPSE_FILE} ; then mv ${TOOLCHAIN_ECLIPSE_FILE} ${TOOLCHAIN_ECLIPSE_FILE}.tmp cat ${TOOLCHAIN_ECLIPSE_FILE}.tmp | while read toolchain ; do path=$(echo ${toolchain} | cut -f1 -d ':') # Filter lines corresponding to still existing projects echo "Testing ${path} ..." if ! test -d ${path} ; then continue fi # .. and the current project if test ${path} = ${project_directory} ; then continue fi echo ${toolchain} >> ${TOOLCHAIN_ECLIPSE_FILE} done rm ${TOOLCHAIN_ECLIPSE_FILE}.tmp fi # Add the toolchain echo "${project_directory}:${toolchain_prefix}:${architecture}" >> ${TOOLCHAIN_ECLIPSE_FILE} ================================================ FILE: support/scripts/expunge-gconv-modules ================================================ #!/usr/bin/env bash # This script is used to generate a gconv-modules file that takes into # account only the gconv modules installed by Buildroot. It receives # on its standard input the original complete gconv-modules file from # the toolchain, and as arguments the list of gconv modules that were # actually installed, and writes on its standard output the new # gconv-modules file. # The format of gconv-modules is precisely documented in the # file itself. It consists of two different directives: # module FROMSET TOSET FILENAME COST # alias ALIAS REALNAME # and that's what this script parses and generates. # # There are two kinds of 'module' directives: # - the first defines conversion of a charset to/from INTERNAL representation # - the second defines conversion of a charset to/from another charset # we handle each with slightly different code, since the second never has # associated aliases. gawk -v files="${1}" ' $1 == "alias" { aliases[$3] = aliases[$3] " " $2; } $1 == "module" && $2 != "INTERNAL" && $3 == "INTERNAL" { file2internals[$4] = file2internals[$4] " " $2; mod2cost[$2] = $5; } $1 == "module" && $2 != "INTERNAL" && $3 != "INTERNAL" { file2cset[$4] = file2cset[$4] " " $2 ":" $3; mod2cost[$2] = $5; } END { nb_files = split(files, all_files); for(f = 1; f <= nb_files; f++) { file = all_files[f]; printf("# Modules and aliases for: %s\n", file); nb_mods = split(file2internals[file], mods); for(i = 1; i <= nb_mods; i++) { nb_aliases = split(aliases[mods[i]], mod_aliases); for(j = 1; j <= nb_aliases; j++) { printf("alias\t%s\t%s\n", mod_aliases[j], mods[i]); } printf("module\t%s\t%s\t%s\t%d\n", mods[i], "INTERNAL", file, mod2cost[mods[i]]); printf("module\t%s\t%s\t%s\t%d\n", "INTERNAL", mods[i], file, mod2cost[mods[i]]); printf("\n" ); } printf("%s", nb_mods != 0 ? "\n" : ""); nb_csets = split(file2cset[file], csets); for(i = 1; i <= nb_csets; i++) { split(csets[i], cs, ":"); printf("module\t%s\t%s\t%s\t%d\n", cs[1], cs[2], file, mod2cost[cs[1]]); } printf("%s", nb_csets != 0 ? "\n\n" : ""); } } ' ================================================ FILE: support/scripts/fix-configure-powerpc64.sh ================================================ #!/usr/bin/env bash # This is a script to find, and correct, a problem with old versions of # configure that affect powerpc64 and powerpc64le. # The issue causes configure to incorrectly determine that shared library # support is not present in the linker. This causes the package to build a # static library rather than a dynamic one and although the build will succeed, # it may cause packages that link with the static library it to fail due to # undefined symbols. # This script searches for files named 'configure' that appear to have this # issue (by searching for a known bad pattern) and patching them. set -e if [ $# -ne 1 ]; then echo "Usage: $0 " exit 2 fi srcdir="$1" files=$(cd "$srcdir" && find . -name configure \ -exec grep -qF 'Generated by GNU Autoconf' {} \; \ -exec grep -qF 'ppc*-*linux*|powerpc*-*linux*)' {} \; -print) # --ignore-whitespace is needed because some packages have included # copies of configure scripts where tabs have been replaced with spaces. for c in $files; do patch --ignore-whitespace "$srcdir"/"$c" <<'EOF' --- a/configure 2016-11-16 15:31:46.097447271 +1100 +++ b/configure 2008-07-21 12:17:23.000000000 +1000 @@ -4433,7 +4433,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - ppc*-*linux*|powerpc*-*linux*) + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) EOF done ================================================ FILE: support/scripts/fix-rpath ================================================ #!/usr/bin/env bash # Copyright (C) 2016 Samuel Martin # Copyright (C) 2017 Wolfgang Grandegger # # 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 usage() { cat <&2 Usage: ${0} TREE_KIND Description: This script scans a tree and sanitize ELF files' RPATH found in there. Sanitization behaves the same whatever the kind of the processed tree, but the resulting RPATH differs. The rpath sanitization is done using "patchelf --make-rpath-relative". Arguments: TREE_KIND Kind of tree to be processed. Allowed values: host, target, staging Environment: PATCHELF patchelf program to use (default: HOST_DIR/bin/patchelf) HOST_DIR host directory STAGING_DIR staging directory TARGET_DIR target directory TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR (default HOST_DIR/opt/ext-toolchain) Returns: 0 if success or 1 in case of error EOF } : ${PATCHELF:=${HOST_DIR}/bin/patchelf} # ELF files should not be in these sub-directories HOST_EXCLUDEPATHS="/share/terminfo" STAGING_EXCLUDEPATHS="/usr/include /usr/share/terminfo" TARGET_EXCLUDEPATHS="/lib/firmware" main() { local rootdir local tree="${1}" local find_args=( ) local sanitize_extra_args=( ) if ! "${PATCHELF}" --version > /dev/null 2>&1; then echo "Error: can't execute patchelf utility '${PATCHELF}'" exit 1 fi case "${tree}" in host) rootdir="${HOST_DIR}" # do not process the sysroot (only contains target binaries) find_args+=( "-path" "${STAGING_DIR}" "-prune" "-o" ) # do not process the external toolchain installation directory to # avoid breaking it. test "${TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR}" != "" && \ find_args+=( "-path" "${TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR}" "-prune" "-o" ) for excludepath in ${HOST_EXCLUDEPATHS}; do find_args+=( "-path" "${HOST_DIR}""${excludepath}" "-prune" "-o" ) done # do not process the patchelf binary but a copy to work-around "file in use" find_args+=( "-path" "${PATCHELF}" "-prune" "-o" ) cp "${PATCHELF}" "${PATCHELF}.__to_be_patched" # we always want $ORIGIN-based rpaths to make it relocatable. sanitize_extra_args+=( "--relative-to-file" ) ;; staging) rootdir="${STAGING_DIR}" # ELF files should not be in these sub-directories for excludepath in ${STAGING_EXCLUDEPATHS}; do find_args+=( "-path" "${STAGING_DIR}""${excludepath}" "-prune" "-o" ) done # should be like for the target tree below sanitize_extra_args+=( "--no-standard-lib-dirs" ) ;; target) rootdir="${TARGET_DIR}" for excludepath in ${TARGET_EXCLUDEPATHS}; do find_args+=( "-path" "${TARGET_DIR}""${excludepath}" "-prune" "-o" ) done # we don't want $ORIGIN-based rpaths but absolute paths without rootdir. # we also want to remove rpaths pointing to /lib or /usr/lib. sanitize_extra_args+=( "--no-standard-lib-dirs" ) ;; *) usage exit 1 ;; esac find_args+=( "-type" "f" "-print" ) while read file ; do # check if it's an ELF file rpath=$(${PATCHELF} --print-rpath "${file}" 2>&1) if test $? -ne 0 ; then continue fi # make files writable if necessary changed=$(chmod -c u+w "${file}") # With per-package directory support, most RPATH of host # binaries will point to per-package directories. This won't # work with the --make-rpath-relative ${rootdir} invocation as # the per-package host directory is not within ${rootdir}. So, # we rewrite all RPATHs pointing to per-package directories so # that they point to the global host directry. changed_rpath=$(echo ${rpath} | sed "s@${PER_PACKAGE_DIR}/[^/]\+/host@${HOST_DIR}@") if test "${rpath}" != "${changed_rpath}" ; then ${PATCHELF} --set-rpath ${changed_rpath} "${file}" fi # call patchelf to sanitize the rpath ${PATCHELF} --make-rpath-relative "${rootdir}" ${sanitize_extra_args[@]} "${file}" # restore the original permission test "${changed}" != "" && chmod u-w "${file}" done < <(find "${rootdir}" ${find_args[@]}) # Restore patched patchelf utility test "${tree}" = "host" && mv "${PATCHELF}.__to_be_patched" "${PATCHELF}" # ignore errors return 0 } main ${@} ================================================ FILE: support/scripts/gen-bootlin-toolchains ================================================ #!/usr/bin/env python3 import os.path import re import requests import textwrap BASE_URL = "https://toolchains.bootlin.com/downloads/releases/toolchains" AUTOGENERATED_COMMENT = """# This file was auto-generated by support/scripts/gen-bootlin-toolchains # Do not edit """ # In the below dict: # - 'conditions' indicate the cumulative conditions under which the # toolchain will be made available. In several situations, a given # toolchain is usable on several architectures variants (for # example, an ARMv6 toolchain can be used on ARMv7) # - 'test_options' indicate one specific configuration where the # toolchain can be used. It is used to create the runtime test # cases. If 'test_options' does not exist, the code assumes it can # be made equal to 'conditions' # - 'prefix' is the prefix of the cross-compilation toolchain tools arches = { 'aarch64': { 'conditions': ['BR2_aarch64'], 'prefix': 'aarch64', }, 'aarch64be': { 'conditions': ['BR2_aarch64_be'], 'prefix': 'aarch64_be', }, 'arcle-750d': { 'conditions': ['BR2_arcle', 'BR2_arc750d'], 'prefix': 'arc', }, 'arcle-hs38': { 'conditions': ['BR2_arcle', 'BR2_archs38'], 'prefix': 'arc', }, 'armv5-eabi': { 'conditions': ['BR2_ARM_CPU_ARMV5', 'BR2_ARM_EABI'], 'test_options': ['BR2_arm', 'BR2_arm926t', 'BR2_ARM_EABI'], 'prefix': 'arm', }, 'armv6-eabihf': { 'conditions': ['BR2_ARM_CPU_ARMV6', 'BR2_ARM_EABIHF'], 'test_options': ['BR2_arm', 'BR2_arm1176jzf_s', 'BR2_ARM_EABIHF'], 'prefix': 'arm', }, 'armv7-eabihf': { 'conditions': ['BR2_ARM_CPU_ARMV7A', 'BR2_ARM_EABIHF'], 'test_options': ['BR2_arm', 'BR2_cortex_a8', 'BR2_ARM_EABIHF'], 'prefix': 'arm', }, 'armv7m': { 'conditions': ['BR2_ARM_CPU_ARMV7M'], 'test_options': ['BR2_arm', 'BR2_cortex_m4'], 'prefix': 'arm', }, 'm68k-68xxx': { 'conditions': ['BR2_m68k_m68k'], 'test_options': ['BR2_m68k', 'BR2_m68k_68040'], 'prefix': 'm68k', }, 'm68k-coldfire': { 'conditions': ['BR2_m68k_cf'], 'test_options': ['BR2_m68k', 'BR2_m68k_cf5208'], 'prefix': 'm68k', }, 'microblazebe': { 'conditions': ['BR2_microblazebe'], 'prefix': 'microblaze', }, 'microblazeel': { 'conditions': ['BR2_microblazeel'], 'prefix': 'microblazeel', }, 'mips32': { # Not sure it could be used by other mips32 variants? 'conditions': ['BR2_mips', 'BR2_mips_32', '!BR2_MIPS_SOFT_FLOAT'], 'prefix': 'mips', }, 'mips32el': { # Not sure it could be used by other mips32el variants? 'conditions': ['BR2_mipsel', 'BR2_mips_32', '!BR2_MIPS_SOFT_FLOAT'], 'prefix': 'mipsel', }, 'mips32r5el': { 'conditions': ['BR2_mipsel', 'BR2_mips_32r5', '!BR2_MIPS_SOFT_FLOAT'], 'prefix': 'mipsel', }, 'mips32r6el': { 'conditions': ['BR2_mipsel', 'BR2_mips_32r6', '!BR2_MIPS_SOFT_FLOAT'], 'prefix': 'mipsel', }, 'mips64': { # Not sure it could be used by other mips64 variants? 'conditions': ['BR2_mips64', 'BR2_mips_64', '!BR2_MIPS_SOFT_FLOAT'], 'prefix': 'mips64', }, 'mips64-n32': { # Not sure it could be used by other mips64 variants? 'conditions': ['BR2_mips64', 'BR2_mips_64', 'BR2_MIPS_NABI32', '!BR2_MIPS_SOFT_FLOAT'], 'prefix': 'mips64', }, 'mips64el-n32': { # Not sure it could be used by other mips64el variants? 'conditions': ['BR2_mips64el', 'BR2_mips_64', 'BR2_MIPS_NABI32', '!BR2_MIPS_SOFT_FLOAT'], 'prefix': 'mips64el', }, 'mips64r6el-n32': { 'conditions': ['BR2_mips64el', 'BR2_mips_64r6', 'BR2_MIPS_NABI32', '!BR2_MIPS_SOFT_FLOAT'], 'prefix': 'mips64el', }, 'nios2': { 'conditions': ['BR2_nios2'], 'prefix': 'nios2', }, 'openrisc': { 'conditions': ['BR2_or1k'], 'prefix': 'or1k', }, 'powerpc-440fp': { # Not sure it could be used by other powerpc variants? 'conditions': ['BR2_powerpc', 'BR2_powerpc_440fp'], 'prefix': 'powerpc', }, 'powerpc-e300c3': { # Not sure it could be used by other powerpc variants? 'conditions': ['BR2_powerpc', 'BR2_powerpc_e300c3'], 'prefix': 'powerpc', }, 'powerpc-e500mc': { # Not sure it could be used by other powerpc variants? 'conditions': ['BR2_powerpc', 'BR2_powerpc_e500mc'], 'prefix': 'powerpc', }, 'powerpc64-e5500': { 'conditions': ['BR2_powerpc64', 'BR2_powerpc_e5500'], 'prefix': 'powerpc64', }, 'powerpc64-e6500': { 'conditions': ['BR2_powerpc64', 'BR2_powerpc_e6500'], 'prefix': 'powerpc64', }, 'powerpc64-power8': { 'conditions': ['BR2_powerpc64', 'BR2_powerpc_power8'], 'prefix': 'powerpc64', }, 'powerpc64le-power8': { 'conditions': ['BR2_powerpc64le', 'BR2_powerpc_power8'], 'prefix': 'powerpc64le', }, 'riscv32-ilp32d': { 'conditions': ['BR2_riscv', 'BR2_riscv_g', 'BR2_RISCV_32', 'BR2_RISCV_ABI_ILP32D'], 'prefix': 'riscv32', }, 'riscv64': { 'conditions': ['BR2_riscv', 'BR2_riscv_g', 'BR2_RISCV_64', 'BR2_RISCV_ABI_LP64'], 'prefix': 'riscv64', }, 'sh-sh4': { 'conditions': ['BR2_sh', 'BR2_sh4'], 'prefix': 'sh4', }, 'sh-sh4aeb': { 'conditions': ['BR2_sh', 'BR2_sh4aeb'], 'prefix': 'sh4aeb', }, 'sparc64': { 'conditions': ['BR2_sparc64', 'BR2_sparc_v9'], 'prefix': 'sparc64', }, 'sparcv8': { 'conditions': ['BR2_sparc', 'BR2_sparc_v8'], 'prefix': 'sparc', }, 'x86-64-core-i7': { 'conditions': ['BR2_x86_64', 'BR2_X86_CPU_HAS_MMX', 'BR2_X86_CPU_HAS_SSE', 'BR2_X86_CPU_HAS_SSE2', 'BR2_X86_CPU_HAS_SSE3', 'BR2_X86_CPU_HAS_SSSE3', 'BR2_X86_CPU_HAS_SSE4', 'BR2_X86_CPU_HAS_SSE42'], 'test_options': ['BR2_x86_64', 'BR2_x86_corei7'], 'prefix': 'x86_64', }, 'x86-core2': { 'conditions': ['BR2_i386', 'BR2_X86_CPU_HAS_MMX', 'BR2_X86_CPU_HAS_SSE', 'BR2_X86_CPU_HAS_SSE2', 'BR2_X86_CPU_HAS_SSE3', 'BR2_X86_CPU_HAS_SSSE3'], 'test_options': ['BR2_i386', 'BR2_x86_core2'], 'prefix': 'i686', }, 'x86-i686': { 'conditions': ['BR2_i386', '!BR2_x86_i486', '!BR2_x86_i586', '!BR2_x86_x1000'], 'test_options': ['BR2_i386', 'BR2_x86_i686'], 'prefix': 'i686', }, 'xtensa-lx60': { 'conditions': ['BR2_xtensa', 'BR2_XTENSA_CUSTOM', 'BR2_XTENSA_LITTLE_ENDIAN'], 'prefix': 'xtensa', }, } class Toolchain: def __init__(self, arch, libc, variant, version): self.arch = arch self.libc = libc self.variant = variant self.version = version self.fname_prefix = "%s--%s--%s-%s" % (self.arch, self.libc, self.variant, self.version) self.option_name = "BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_%s_%s_%s" % \ (self.arch.replace("-", "_").upper(), self.libc.upper(), self.variant.replace("-", "_").upper()) self.fragment = requests.get(self.fragment_url).text.split("\n") self.sha256 = requests.get(self.hash_url).text.split(" ")[0] @property def tarball_url(self): return os.path.join(BASE_URL, self.arch, "tarballs", self.fname_prefix + ".tar.bz2") @property def hash_url(self): return os.path.join(BASE_URL, self.arch, "tarballs", self.fname_prefix + ".sha256") @property def fragment_url(self): return os.path.join(BASE_URL, self.arch, "fragments", self.fname_prefix + ".frag") def gen_config_in_options(self, f): f.write("config %s\n" % self.option_name) f.write("\tbool \"%s %s %s %s\"\n" % (self.arch, self.libc, self.variant, self.version)) depends = [] selects = [] for c in arches[self.arch]['conditions']: depends.append(c) for frag in self.fragment: # libc type if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC"): selects.append("BR2_TOOLCHAIN_EXTERNAL_UCLIBC") elif frag.startswith("BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC"): # glibc needs mmu support depends.append("BR2_USE_MMU") # glibc doesn't support static only configuration depends.append("!BR2_STATIC_LIBS") selects.append("BR2_TOOLCHAIN_EXTERNAL_GLIBC") elif frag.startswith("BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL"): # musl needs mmu support depends.append("BR2_USE_MMU") selects.append("BR2_TOOLCHAIN_EXTERNAL_MUSL") # gcc version if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_GCC_"): m = re.match("^BR2_TOOLCHAIN_EXTERNAL_GCC_([0-9_]*)=y$", frag) assert m, "Cannot get gcc version for toolchain %s" % self.fname_prefix selects.append("BR2_TOOLCHAIN_GCC_AT_LEAST_%s" % m[1]) # kernel headers version if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_HEADERS_"): m = re.match("^BR2_TOOLCHAIN_EXTERNAL_HEADERS_([0-9_]*)=y$", frag) assert m, "Cannot get kernel headers version for toolchain %s" % self.fname_prefix selects.append("BR2_TOOLCHAIN_HEADERS_AT_LEAST_%s" % m[1]) # C++ if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_CXX"): selects.append("BR2_INSTALL_LIBSTDCPP") # SSP if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_HAS_SSP"): selects.append("BR2_TOOLCHAIN_HAS_SSP") # wchar if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_WCHAR"): selects.append("BR2_USE_WCHAR") # locale if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_LOCALE"): # locale implies the availability of wchar selects.append("BR2_USE_WCHAR") selects.append("BR2_ENABLE_LOCALE") # thread support if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS"): selects.append("BR2_TOOLCHAIN_HAS_THREADS") if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG"): selects.append("BR2_TOOLCHAIN_HAS_THREADS_DEBUG") if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL"): selects.append("BR2_TOOLCHAIN_HAS_THREADS_NPTL") # RPC if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_INET_RPC"): selects.append("BR2_TOOLCHAIN_HAS_NATIVE_RPC") # D language if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_DLANG"): selects.append("BR2_TOOLCHAIN_HAS_DLANG") # fortran if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_FORTRAN"): selects.append("BR2_TOOLCHAIN_HAS_FORTRAN") # OpenMP if frag.startswith("BR2_TOOLCHAIN_EXTERNAL_OPENMP"): selects.append("BR2_TOOLCHAIN_HAS_OPENMP") for depend in depends: f.write("\tdepends on %s\n" % depend) for select in selects: f.write("\tselect %s\n" % select) f.write("\thelp\n") desc = "Bootlin toolchain for the %s architecture, using the %s C library. " % \ (self.arch, self.libc) if self.variant == "stable": desc += "This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils." else: desc += "This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils." f.write(textwrap.fill(desc, width=62, initial_indent="\t ", subsequent_indent="\t ") + "\n") f.write("\n") f.write("\t https://toolchains.bootlin.com/\n") f.write("\n") def gen_mk(self, f): f.write("ifeq ($(%s),y)\n" % self.option_name) f.write("TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = %s\n" % self.version) f.write("TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = %s--%s--%s-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2\n" % (self.arch, self.libc, self.variant)) f.write("TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = %s\n" % os.path.join(BASE_URL, self.arch, "tarballs")) f.write("endif\n\n") pass def gen_hash(self, f): f.write("# From %s\n" % self.hash_url) f.write("sha256 %s %s\n" % (self.sha256, os.path.basename(self.tarball_url))) def gen_test(self, f): if self.variant == "stable": variant = "Stable" else: variant = "BleedingEdge" testname = "TestExternalToolchainBootlin" + \ self.arch.replace("-", "").capitalize() + \ self.libc.capitalize() + variant f.write("\n\n") f.write("class %s(TestExternalToolchain):\n" % testname) f.write(" config = \"\"\"\n") if 'test_options' in arches[self.arch]: test_options = arches[self.arch]['test_options'] else: test_options = arches[self.arch]['conditions'] for opt in test_options: if opt.startswith("!"): f.write(" # %s is not set\n" % opt[1:]) else: f.write(" %s=y\n" % opt) f.write(" BR2_TOOLCHAIN_EXTERNAL=y\n") f.write(" BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y\n") f.write(" %s=y\n" % self.option_name) f.write(" # BR2_TARGET_ROOTFS_TAR is not set\n") f.write(" \"\"\"\n") f.write(" toolchain_prefix = \"%s-linux\"\n" % arches[self.arch]['prefix']) f.write("\n") f.write(" def test_run(self):\n") f.write(" TestExternalToolchain.common_check(self)\n") def __repr__(self): return "Toolchain(arch=%s libc=%s variant=%s version=%s, option=%s)" % \ (self.arch, self.libc, self.variant, self.version, self.option_name) def get_toolchains(): toolchains = list() for arch, details in arches.items(): print(arch) url = os.path.join(BASE_URL, arch, "available_toolchains") page = requests.get(url).text fnames = sorted(re.findall(r'&1 \ | sed -r -e '/^test_run \((.*)\).*/!d; s//\1/' \ | LC_ALL=C sort) ) if [ -n "${CI_COMMIT_TAG}" ]; then # When a tag is added to the Buildroot git tree, we want # to run the runtime tests and only test Qemu defconfigs. defconfigs=( $(cd configs; LC_ALL=C ls -1 qemu_*_defconfig) ) do_basics=true do_defconfigs=base do_runtime=true elif [ "${CI_PIPELINE_SOURCE}" = "trigger" ]; then case "${BR_SCHEDULE_JOBS}" in (basic) do_basics=true do_defconfigs=check defconfigs_ext=_check ;; (defconfig) do_defconfigs=base ;; (runtime) do_runtime=true ;; esac else case "${CI_COMMIT_REF_NAME}" in (*-basics) do_basics=true do_defconfigs=check defconfigs_ext=_check ;; (*-defconfigs) do_defconfigs=base ;; (*-*_defconfig) defconfigs=( "${CI_COMMIT_REF_NAME##*-}" ) do_defconfigs=base ;; (*-runtime-tests) do_runtime=true ;; (*-tests.*) runtimes=( $(./support/testing/run-tests -l 2>&1 \ | sed -r -e '/^test_run \((.*)\).*/!d; s//\1/' \ | LC_ALL=C sort \ | grep "^${CI_COMMIT_REF_NAME##*-}") ) do_runtime=true ;; esac fi # Retrieve defconfig for test-pkg from the git commit message (if any) if grep -q -E '^test-pkg config:$' <<<"${CI_COMMIT_DESCRIPTION}"; then sed -r -n -e '/^test-pkg config:$/{:a;n;p;ba;}' \ <<<"${CI_COMMIT_DESCRIPTION}" \ >defconfig.frag if [ ! -s defconfig.frag ]; then printf "Empty configuration fragment.\n" >&2; exit 1 fi # Use --all since we expect the user having already pre-tested the # new package with the default subset of toolchains. ./utils/test-pkg \ --all --prepare-only \ --config-snippet defconfig.frag \ --build-dir br-test-pkg >&2 do_testpkg=( $(ls -1 br-test-pkg/*/.config 2>/dev/null |xargs -r dirname ) ) if [ "${#do_testpkg[@]}" -eq 0 ]; then printf "Configuration fragment enables no test.\n" >&2; exit 1 fi fi # If nothing else, at least do the basics to generate a valid pipeline if [ -z "${do_defconfigs}" \ -a -z "${do_runtime}" \ -a -z "${do_testpkg}" \ ] then do_basics=true fi if ${do_basics:-false}; then for tst in "${basics[@]}"; do printf 'check-%s: { extends: .check-%s_base }\n' "${tst}" "${tst}" done fi if [ -n "${do_defconfigs}" ]; then for cfg in "${defconfigs[@]}"; do printf '%s%s: { extends: .defconfig_%s }\n' \ "${cfg}" "${defconfigs_ext}" "${do_defconfigs}" done fi if ${do_runtime:-false}; then printf '%s: { extends: .runtime_test_base }\n' "${runtimes[@]}" fi if [ -n "${do_testpkg}" ]; then printf '%s: { extends: .test_pkg }\n' "${do_testpkg[@]}" fi } main "${@}" ================================================ FILE: support/scripts/genimage.sh ================================================ #!/usr/bin/env bash die() { cat <&2 Error: $@ Usage: ${0} -c GENIMAGE_CONFIG_FILE EOF exit 1 } # Parse arguments and put into argument list of the script opts="$(getopt -n "${0##*/}" -o c: -- "$@")" || exit $? eval set -- "$opts" GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" while true ; do case "$1" in -c) GENIMAGE_CFG="${2}"; shift 2 ;; --) # Discard all non-option parameters shift 1; break ;; *) die "unknown option '${1}'" ;; esac done [ -n "${GENIMAGE_CFG}" ] || die "Missing argument" # Pass an empty rootpath. genimage makes a full copy of the given rootpath to # ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk # space. We don't rely on genimage to build the rootfs image, just to insert a # pre-built one in the disk image. trap 'rm -rf "${ROOTPATH_TMP}"' EXIT ROOTPATH_TMP="$(mktemp -d)" rm -rf "${GENIMAGE_TMP}" genimage \ --rootpath "${ROOTPATH_TMP}" \ --tmppath "${GENIMAGE_TMP}" \ --inputpath "${BINARIES_DIR}" \ --outputpath "${BINARIES_DIR}" \ --config "${GENIMAGE_CFG}" ================================================ FILE: support/scripts/graph-build-time ================================================ #!/usr/bin/env python3 # Copyright (C) 2011 by Thomas Petazzoni # Copyright (C) 2013 by Yann E. MORIN # # 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 # This script generates graphs of packages build time, from the timing # data generated by Buildroot in the $(O)/build-time.log file. # # Example usage: # # cat $(O)/build-time.log | ./support/scripts/graph-build-time --type=histogram --output=foobar.pdf # # Three graph types are available : # # * histogram, which creates an histogram of the build time for each # package, decomposed by each step (extract, patch, configure, # etc.). The order in which the packages are shown is # configurable: by package name, by build order, or by duration # order. See the --order option. # # * pie-packages, which creates a pie chart of the build time of # each package (without decomposition in steps). Packages that # contributed to less than 1% of the overall build time are all # grouped together in an "Other" entry. # # * pie-steps, which creates a pie chart of the time spent globally # on each step (extract, patch, configure, etc...) # # The default is to generate an histogram ordered by package name. # # Requirements: # # * matplotlib (python-matplotlib on Debian/Ubuntu systems) # * numpy (python-numpy on Debian/Ubuntu systems) # * argparse (by default in Python 2.7, requires python-argparse if # Python 2.6 is used) import sys try: import matplotlib as mpl import numpy except ImportError: sys.stderr.write("You need python-matplotlib and python-numpy to generate build graphs\n") exit(1) # Use the Agg backend (which produces a PNG output, see # http://matplotlib.org/faq/usage_faq.html#what-is-a-backend), # otherwise an incorrect backend is used on some host machines). # Note: matplotlib.use() must be called *before* matplotlib.pyplot. mpl.use('Agg') import matplotlib.pyplot as plt # noqa: E402 import matplotlib.font_manager as fm # noqa: E402 import csv # noqa: E402 import argparse # noqa: E402 steps = ['download', 'extract', 'patch', 'configure', 'build', 'install-target', 'install-staging', 'install-images', 'install-host'] default_colors = ['#8d02ff', '#e60004', '#009836', '#2e1d86', '#ffed00', '#0068b5', '#f28e00', '#940084', '#97c000'] alternate_colors = ['#ffbe0a', '#96bdff', '#3f7f7f', '#ff0000', '#00c000', '#0080ff', '#c000ff', '#00eeee', '#e0e000'] class Package: def __init__(self, name): self.name = name self.steps_duration = {} self.steps_start = {} self.steps_end = {} def add_step(self, step, state, time): if state == "start": self.steps_start[step] = time else: self.steps_end[step] = time if step in self.steps_start and step in self.steps_end: self.steps_duration[step] = self.steps_end[step] - self.steps_start[step] def get_duration(self, step=None): if step is None: duration = 0 for step in list(self.steps_duration.keys()): duration += self.steps_duration[step] return duration if step in self.steps_duration: return self.steps_duration[step] return 0 # Generate an histogram of the time spent in each step of each # package. def pkg_histogram(data, output, order="build"): n_pkgs = len(data) ind = numpy.arange(n_pkgs) if order == "duration": data = sorted(data, key=lambda p: p.get_duration(), reverse=True) elif order == "name": data = sorted(data, key=lambda p: p.name, reverse=False) # Prepare the vals array, containing one entry for each step vals = [] for step in steps: val = [] for p in data: val.append(p.get_duration(step)) vals.append(val) bottom = [0] * n_pkgs legenditems = [] plt.figure() # Draw the bars, step by step for i in range(0, len(vals)): b = plt.bar(ind+0.1, vals[i], width=0.8, color=colors[i], bottom=bottom, linewidth=0.25) legenditems.append(b[0]) bottom = [bottom[j] + vals[i][j] for j in range(0, len(vals[i]))] # Draw the package names plt.xticks(ind + .6, [p.name for p in data], rotation=-60, rotation_mode="anchor", fontsize=8, ha='left') # Adjust size of graph depending on the number of packages # Ensure a minimal size twice as the default # Magic Numbers do Magic Layout! ratio = max(((n_pkgs + 10) / 48, 2)) borders = 0.1 / ratio sz = plt.gcf().get_figwidth() plt.gcf().set_figwidth(sz * ratio) # Adjust space at borders, add more space for the # package names at the bottom plt.gcf().subplots_adjust(bottom=0.2, left=borders, right=1-borders) # Remove ticks in the graph for each package axes = plt.gcf().gca() for line in axes.get_xticklines(): line.set_markersize(0) axes.set_ylabel('Time (seconds)') # Reduce size of legend text leg_prop = fm.FontProperties(size=6) # Draw legend plt.legend(legenditems, steps, prop=leg_prop) if order == "name": plt.title('Build time of packages\n') elif order == "build": plt.title('Build time of packages, by build order\n') elif order == "duration": plt.title('Build time of packages, by duration order\n') # Save graph plt.savefig(output) # Generate a pie chart with the time spent building each package. def pkg_pie_time_per_package(data, output): # Compute total build duration total = 0 for p in data: total += p.get_duration() # Build the list of labels and values, and filter the packages # that account for less than 1% of the build time. labels = [] values = [] other_value = 0 for p in sorted(data, key=lambda p: p.get_duration()): if p.get_duration() < (total * 0.01): other_value += p.get_duration() else: labels.append(p.name) values.append(p.get_duration()) labels.append('Other') values.append(other_value) plt.figure() # Draw pie graph patches, texts, autotexts = plt.pie(values, labels=labels, autopct='%1.1f%%', shadow=True, colors=colors) # Reduce text size proptease = fm.FontProperties() proptease.set_size('xx-small') plt.setp(autotexts, fontproperties=proptease) plt.setp(texts, fontproperties=proptease) plt.title('Build time per package') plt.savefig(output) # Generate a pie chart with a portion for the overall time spent in # each step for all packages. def pkg_pie_time_per_step(data, output): steps_values = [] for step in steps: val = 0 for p in data: val += p.get_duration(step) steps_values.append(val) plt.figure() # Draw pie graph patches, texts, autotexts = plt.pie(steps_values, labels=steps, autopct='%1.1f%%', shadow=True, colors=colors) # Reduce text size proptease = fm.FontProperties() proptease.set_size('xx-small') plt.setp(autotexts, fontproperties=proptease) plt.setp(texts, fontproperties=proptease) plt.title('Build time per step') plt.savefig(output) # Parses the csv file passed on standard input and returns a list of # Package objects, filed with the duration of each step and the total # duration of the package. def read_data(input_file): if input_file is None: input_file = sys.stdin else: input_file = open(input_file) reader = csv.reader(input_file, delimiter=':') pkgs = [] # Auxilliary function to find a package by name in the list. def getpkg(name): for p in pkgs: if p.name == name: return p return None for row in reader: time = float(row[0].strip()) state = row[1].strip() step = row[2].strip() pkg = row[3].strip() p = getpkg(pkg) if p is None: p = Package(pkg) pkgs.append(p) p.add_step(step, state, time) return pkgs parser = argparse.ArgumentParser(description='Draw build time graphs') parser.add_argument("--type", '-t', metavar="GRAPH_TYPE", help="Type of graph (histogram, pie-packages, pie-steps)") 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="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)") args = parser.parse_args() d = read_data(args.input) if args.alternate_colors: colors = alternate_colors else: colors = default_colors if args.type == "histogram" or args.type is None: if args.order == "build" or args.order == "duration" or args.order == "name": pkg_histogram(d, args.output, args.order) elif args.order is None: pkg_histogram(d, args.output, "name") else: sys.stderr.write("Unknown ordering: %s\n" % args.order) exit(1) elif args.type == "pie-packages": pkg_pie_time_per_package(d, args.output) elif args.type == "pie-steps": pkg_pie_time_per_step(d, args.output) else: sys.stderr.write("Unknown type: %s\n" % args.type) exit(1) ================================================ FILE: support/scripts/graph-depends ================================================ #!/usr/bin/env python3 # Usage (the graphviz package must be installed in your distribution) # ./support/scripts/graph-depends [-p package-name] > test.dot # dot -Tpdf test.dot -o test.pdf # # With no arguments, graph-depends will draw a complete graph of # dependencies for the current configuration. # If '-p ' is specified, graph-depends will draw a graph # of dependencies for the given package name. # If '-d ' is specified, graph-depends will limit the depth of # the dependency graph to 'depth' levels. # # Limitations # # * Some packages have dependencies that depend on the Buildroot # configuration. For example, many packages have a dependency on # openssl if openssl has been enabled. This tool will graph the # dependencies as they are with the current Buildroot # configuration. # # Copyright (C) 2010-2013 Thomas Petazzoni # Copyright (C) 2019 Yann E. MORIN import logging import sys import argparse from fnmatch import fnmatch import brpkgutil # Modes of operation: MODE_FULL = 1 # draw full dependency graph for all selected packages MODE_PKG = 2 # draw dependency graph for a given package allpkgs = [] # The Graphviz "dot" utility doesn't like dashes in node names. So for # node names, we strip all dashes. Also, nodes can't start with a number, # so we prepend an underscore. def pkg_node_name(pkg): return "_" + pkg.replace("-", "") # Basic cache for the results of the is_dep() function, in order to # optimize the execution time. The cache is a dict of dict of boolean # values. The key to the primary dict is "pkg", and the key of the # sub-dicts is "pkg2". is_dep_cache = {} def is_dep_cache_insert(pkg, pkg2, val): try: is_dep_cache[pkg].update({pkg2: val}) except KeyError: is_dep_cache[pkg] = {pkg2: val} # Retrieves from the cache whether pkg2 is a transitive dependency # of pkg. # Note: raises a KeyError exception if the dependency is not known. def is_dep_cache_lookup(pkg, pkg2): return is_dep_cache[pkg][pkg2] # This function return True if pkg is a dependency (direct or # transitive) of pkg2, dependencies being listed in the deps # dictionary. Returns False otherwise. # This is the un-cached version. def is_dep_uncached(pkg, pkg2, deps): try: for p in deps[pkg2]: if pkg == p: return True if is_dep(pkg, p, deps): return True except KeyError: pass return False # See is_dep_uncached() above; this is the cached version. def is_dep(pkg, pkg2, deps): try: return is_dep_cache_lookup(pkg, pkg2) except KeyError: val = is_dep_uncached(pkg, pkg2, deps) is_dep_cache_insert(pkg, pkg2, val) return val # This function eliminates transitive dependencies; for example, given # these dependency chain: A->{B,C} and B->{C}, the A->{C} dependency is # already covered by B->{C}, so C is a transitive dependency of A, via B. # The functions does: # - for each dependency d[i] of the package pkg # - if d[i] is a dependency of any of the other dependencies d[j] # - do not keep d[i] # - otherwise keep d[i] def remove_transitive_deps(pkg, deps): d = deps[pkg] new_d = [] for i in range(len(d)): keep_me = True for j in range(len(d)): if j == i: continue if is_dep(d[i], d[j], deps): keep_me = False if keep_me: new_d.append(d[i]) return new_d # List of dependencies that all/many packages have, and that we want # to trim when generating the dependency graph. MANDATORY_DEPS = ['toolchain', 'skeleton', 'host-skeleton', 'host-tar', 'host-gzip', 'host-ccache'] # This function removes the dependency on some 'mandatory' package, like the # 'toolchain' package, or the 'skeleton' package def remove_mandatory_deps(pkg, deps): return [p for p in deps[pkg] if p not in MANDATORY_DEPS] # This function returns all dependencies of pkg that are part of the # mandatory dependencies: def get_mandatory_deps(pkg, deps): return [p for p in deps[pkg] if p in MANDATORY_DEPS] # This function will check that there is no loop in the dependency chain # As a side effect, it builds up the dependency cache. def check_circular_deps(deps): def recurse(pkg): if pkg not in list(deps.keys()): return if pkg in not_loop: return not_loop.append(pkg) chain.append(pkg) for p in deps[pkg]: if p in chain: logging.warning("\nRecursion detected for : %s" % (p)) while True: _p = chain.pop() logging.warning("which is a dependency of: %s" % (_p)) if p == _p: sys.exit(1) recurse(p) chain.pop() not_loop = [] chain = [] for pkg in list(deps.keys()): recurse(pkg) # This functions trims down the dependency list of all packages. # It applies in sequence all the dependency-elimination methods. def remove_extra_deps(deps, rootpkg, transitive, arrow_dir): # For the direct dependencies, find and eliminate mandatory # deps, and add them to the root package. Don't do it for a # reverse graph, because mandatory deps are only direct deps. if arrow_dir == "forward": for pkg in list(deps.keys()): if not pkg == rootpkg: for d in get_mandatory_deps(pkg, deps): if d not in deps[rootpkg]: deps[rootpkg].append(d) deps[pkg] = remove_mandatory_deps(pkg, deps) for pkg in list(deps.keys()): if not transitive or pkg == rootpkg: deps[pkg] = remove_transitive_deps(pkg, deps) return deps # Print the attributes of a node: label and fill-color def print_attrs(outfile, pkg, pkg_type, pkg_version, depth, colors): name = pkg_node_name(pkg) if pkg == 'all': label = 'ALL' else: label = pkg if depth == 0: color = colors[0] else: if pkg_type == "host": color = colors[2] else: color = colors[1] if pkg_version == "virtual": outfile.write("%s [label = <%s>]\n" % (name, label)) else: outfile.write("%s [label = \"%s\"]\n" % (name, label)) outfile.write("%s [color=%s,style=filled]\n" % (name, color)) done_deps = [] # Print the dependency graph of a package def print_pkg_deps(outfile, dict_deps, dict_types, dict_versions, stop_list, exclude_list, arrow_dir, draw_graph, depth, max_depth, pkg, colors): if pkg in done_deps: return done_deps.append(pkg) if draw_graph: print_attrs(outfile, pkg, dict_types[pkg], dict_versions[pkg], depth, colors) elif depth != 0: outfile.write("%s " % pkg) if pkg not in dict_deps: return for p in stop_list: if fnmatch(pkg, p): return if dict_versions[pkg] == "virtual" and "virtual" in stop_list: return if dict_types[pkg] == "host" and "host" in stop_list: return if max_depth == 0 or depth < max_depth: for d in dict_deps[pkg]: if dict_versions[d] == "virtual" and "virtual" in exclude_list: continue if dict_types[d] == "host" and "host" in exclude_list: continue add = True for p in exclude_list: if fnmatch(d, p): add = False break if add: if draw_graph: outfile.write("%s -> %s [dir=%s]\n" % (pkg_node_name(pkg), pkg_node_name(d), arrow_dir)) print_pkg_deps(outfile, dict_deps, dict_types, dict_versions, stop_list, exclude_list, arrow_dir, draw_graph, depth + 1, max_depth, d, colors) def parse_args(): parser = argparse.ArgumentParser(description="Graph packages dependencies") parser.add_argument("--check-only", "-C", dest="check_only", action="store_true", default=False, help="Only do the dependency checks (circular deps...)") parser.add_argument("--outfile", "-o", metavar="OUT_FILE", dest="outfile", help="File in which to generate the dot representation") parser.add_argument("--package", '-p', metavar="PACKAGE", help="Graph the dependencies of PACKAGE") parser.add_argument("--depth", '-d', metavar="DEPTH", dest="depth", type=int, default=0, help="Limit the dependency graph to DEPTH levels; 0 means no limit.") parser.add_argument("--stop-on", "-s", metavar="PACKAGE", dest="stop_list", action="append", help="Do not graph past this package (can be given multiple times)." + " Can be a package name or a glob, " + " 'virtual' to stop on virtual packages, or " + "'host' to stop on host packages.") parser.add_argument("--exclude", "-x", metavar="PACKAGE", dest="exclude_list", action="append", help="Like --stop-on, but do not add PACKAGE to the graph.") parser.add_argument("--exclude-mandatory", "-X", action="store_true", help="Like if -x was passed for all mandatory dependencies.") parser.add_argument("--colors", "-c", metavar="COLOR_LIST", dest="colors", default="lightblue,grey,gainsboro", help="Comma-separated list of the three colors to use" + " to draw the top-level package, the target" + " packages, and the host packages, in this order." + " Defaults to: 'lightblue,grey,gainsboro'") parser.add_argument("--transitive", dest="transitive", action='store_true', default=False) parser.add_argument("--no-transitive", dest="transitive", action='store_false', help="Draw (do not draw) transitive dependencies") parser.add_argument("--direct", dest="direct", action='store_true', default=True, help="Draw direct dependencies (the default)") parser.add_argument("--reverse", dest="direct", action='store_false', help="Draw reverse dependencies") parser.add_argument("--quiet", '-q', dest="quiet", action='store_true', help="Quiet") parser.add_argument("--flat-list", '-f', dest="flat_list", action='store_true', default=False, help="Do not draw graph, just print a flat list") return parser.parse_args() def main(): args = parse_args() check_only = args.check_only logging.basicConfig(stream=sys.stderr, format='%(message)s', level=logging.WARNING if args.quiet else logging.INFO) if args.outfile is None: outfile = sys.stdout else: if check_only: logging.error("don't specify outfile and check-only at the same time") sys.exit(1) outfile = open(args.outfile, "w") if args.package is None: mode = MODE_FULL rootpkg = 'all' else: mode = MODE_PKG rootpkg = args.package if args.stop_list is None: stop_list = [] else: stop_list = args.stop_list if args.exclude_list is None: exclude_list = [] else: exclude_list = args.exclude_list if args.exclude_mandatory: exclude_list += MANDATORY_DEPS if args.direct: arrow_dir = "forward" else: if mode == MODE_FULL: logging.error("--reverse needs a package") sys.exit(1) arrow_dir = "back" draw_graph = not args.flat_list # Get the colors: we need exactly three colors, # so no need not split more than 4 # We'll let 'dot' validate the colors... colors = args.colors.split(',', 4) if len(colors) != 3: logging.error("Error: incorrect color list '%s'" % args.colors) sys.exit(1) deps, rdeps, dict_types, dict_versions = brpkgutil.get_dependency_tree() dict_deps = deps if args.direct else rdeps check_circular_deps(dict_deps) if check_only: sys.exit(0) dict_deps = remove_extra_deps(dict_deps, rootpkg, args.transitive, arrow_dir) # Start printing the graph data if draw_graph: outfile.write("digraph G {\n") print_pkg_deps(outfile, dict_deps, dict_types, dict_versions, stop_list, exclude_list, arrow_dir, draw_graph, 0, args.depth, rootpkg, colors) if draw_graph: outfile.write("}\n") else: outfile.write("\n") if __name__ == "__main__": sys.exit(main()) ================================================ FILE: support/scripts/hardlink-or-copy ================================================ #!/usr/bin/env 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 "${@}" ================================================ FILE: support/scripts/mkimage.sh ================================================ #!/bin/bash -e # optional env vars: # THINGOS_LOOP_DEV=/dev/loop0 # THINGOS_NAME=thingOS # THINGOS_SHORT_NAME=thingos # THINGOS_PREFIX=thing # THINGOS_VERSION=3.14.15 test -n "$1" || { echo "Usage: $0 "; exit 1; } test $(id -u) -eq 0 || { echo "This script needs to be run as root."; exit 1; } function msg() { echo " * $1" } set -a BOARD=$1 # Under BR make invocation, ${BINARIES_DIR} would be automatically set to the images dir. # For the scope of this script which is run outside of the BR make environment, we must set it manually. BINARIES_DIR=$(dirname $0)/../../output/${BOARD}/images/ BOARD_DIR=$(dirname $0)/../../board/${BOARD} COMMON_DIR=$(dirname $0)/../../board/common HOST_DIR=$(dirname $0)/../../output/${BOARD}/host/ BOOT_START=${BOOT_START:-1} # MB BOOT_SRC=${BINARIES_DIR}/boot BOOT=${BINARIES_DIR}/.boot BOOT_IMG=${BINARIES_DIR}/boot.img BOOT_SIZE="30" # MB - reserved up to 100 MB ROOT_START="100" # MB ROOT_SRC=${BINARIES_DIR}/rootfs.tar ROOT=${BINARIES_DIR}/.root ROOT_IMG=${BINARIES_DIR}/root.img ROOT_SIZE="200" # MB GUARD_SIZE="10" # MB DISK_SIZE=$((ROOT_START + ROOT_SIZE + GUARD_SIZE)) OS_NAME=$(source ${COMMON_DIR}/overlay/etc/version && echo ${OS_SHORT_NAME}) test -s ${BOARD_DIR}/board.conf && source ${BOARD_DIR}/board.conf # "-f", unless a /dev/loopX is specified LOOP_DEV=${THINGOS_LOOP_DEV:--f} function cleanup_on_exit() { set +e umount ${loop_dev}* 2>/dev/null losetup -d ${loop_dev} 2>/dev/null } # boot filesystem msg "creating boot loop device ${LOOP_DEV}" dd if=/dev/zero of=${BOOT_IMG} bs=1M count=${BOOT_SIZE} loop_dev=$(losetup --show ${LOOP_DEV} ${BOOT_IMG}) trap cleanup_on_exit EXIT msg "creating boot filesystem" mkfs.vfat -F16 ${loop_dev} msg "mounting boot loop device" mkdir -p ${BOOT} mount ${loop_dev} ${BOOT} msg "copying boot filesystem contents" cp -r ${BOOT_SRC}/* ${BOOT} sync if [[ "${USE_SYSLINUX}" == true ]]; then ${HOST_DIR}/sbin/extlinux --install ${BOOT} fi msg "unmounting boot filesystem" umount ${BOOT} msg "destroying boot loop device ${loop_dev}" losetup -d ${loop_dev} sync # root filesystem msg "creating root loop device ${LOOP_DEV}" dd if=/dev/zero of=${ROOT_IMG} bs=1M count=${ROOT_SIZE} loop_dev=$(losetup --show ${LOOP_DEV} ${ROOT_IMG}) msg "creating root filesystem" mkfs.ext4 ${loop_dev} tune2fs -O^has_journal ${loop_dev} msg "mounting root loop device" mkdir -p ${ROOT} mount ${loop_dev} ${ROOT} msg "copying root filesystem contents" tar -xpsf ${ROOT_SRC} -C ${ROOT} # set internal OS name, prefix and version according to env variables if [ -f ${ROOT}/etc/version ]; then if [ -n "${THINGOS_NAME}" ]; then msg "setting OS name to ${THINGOS_NAME}" sed -ri "s/OS_NAME=\".*\"/OS_NAME=\"${THINGOS_NAME}\"/" ${ROOT}/etc/version fi if [ -n "${THINGOS_SHORT_NAME}" ]; then msg "setting OS short name to ${THINGOS_SHORT_NAME}" sed -ri "s/OS_SHORT_NAME=\".*\"/OS_SHORT_NAME=\"${THINGOS_SHORT_NAME}\"/" ${ROOT}/etc/version fi if [ -n "${THINGOS_PREFIX}" ]; then msg "setting OS prefix to ${THINGOS_PREFIX}" sed -ri "s/OS_PREFIX=\".*\"/OS_PREFIX=\"${THINGOS_PREFIX}\"/" ${ROOT}/etc/version fi if [ -n "${THINGOS_VERSION}" ]; then msg "setting OS version to ${THINGOS_VERSION}" sed -ri "s/OS_VERSION=\".*\"/OS_VERSION=\"${THINGOS_VERSION}\"/" ${ROOT}/etc/version fi fi msg "unmounting root filesystem" umount ${ROOT} msg "destroying root loop device ${loop_dev}" losetup -d ${loop_dev} sync DISK_IMG=${BINARIES_DIR}/disk.img BOOT_IMG=${BINARIES_DIR}/boot.img ROOT_IMG=${BINARIES_DIR}/root.img if ! [ -r ${BOOT_IMG} ]; then echo "boot image missing" exit -1 fi if ! [ -r ${ROOT_IMG} ]; then echo "root image missing" exit -1 fi # disk image msg "creating disk loop device ${LOOP_DEV}" dd if=/dev/zero of=${DISK_IMG} bs=1M count=${DISK_SIZE} loop_dev=$(losetup --show ${LOOP_DEV} ${DISK_IMG}) msg "partitioning disk" set +e PART_TABLE_TYPE=${PART_TABLE_TYPE:-mbr} if [[ ${PART_TABLE_TYPE} == mbr ]] || [[ ${PART_TABLE_TYPE} == dos ]]; then fdisk -u=sectors ${loop_dev} < $2/Makefile # Automatically generated by $0: don't edit ifeq ("\$(origin V)", "command line") VERBOSE := \$(V) endif ifneq (\$(VERBOSE),1) Q := @ endif lastword = \$(word \$(words \$(1)),\$(1)) makedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST))) MAKEARGS := -C $1 MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir)) MAKEFLAGS += --no-print-directory .PHONY: _all \$(MAKECMDGOALS) all := \$(filter-out Makefile,\$(MAKECMDGOALS)) _all: \$(Q)umask 0022 && \$(MAKE) \$(MAKEARGS) \$(all) Makefile:; \$(all): _all @: %/: _all @: EOF ================================================ FILE: support/scripts/mkusers ================================================ #!/usr/bin/env bash set -e myname="${0##*/}" #---------------------------------------------------------------------------- # Configurable items MIN_UID=1000 MAX_UID=1999 MIN_GID=1000 MAX_GID=1999 # No more is configurable below this point #---------------------------------------------------------------------------- #---------------------------------------------------------------------------- error() { local fmt="${1}" shift printf "%s: " "${myname}" >&2 printf "${fmt}" "${@}" >&2 } fail() { error "$@" exit 1 } #---------------------------------------------------------------------------- if [ ${#} -ne 2 ]; then fail "usage: %s USERS_TABLE TARGET_DIR\n" fi USERS_TABLE="${1}" TARGET_DIR="${2}" shift 2 PASSWD="${TARGET_DIR}/etc/passwd" SHADOW="${TARGET_DIR}/etc/shadow" GROUP="${TARGET_DIR}/etc/group" # /etc/gshadow is not part of the standard skeleton, so not everybody # will have it, but some may have it, and its content must be in sync # with /etc/group, so any use of gshadow must be conditional. GSHADOW="${TARGET_DIR}/etc/gshadow" # We can't simply source ${BR2_CONFIG} as it may contains constructs # such as: # BR2_DEFCONFIG="$(CONFIG_DIR)/defconfig" # which when sourced from a shell script will eventually try to execute # a command named 'CONFIG_DIR', which is plain wrong for virtually every # systems out there. # So, we have to scan that file instead. Sigh... :-( PASSWD_METHOD="$( sed -r -e '/^BR2_TARGET_GENERIC_PASSWD_METHOD="(.*)"$/!d;' \ -e 's//\1/;' \ "${BR2_CONFIG}" \ )" #---------------------------------------------------------------------------- get_uid() { local username="${1}" awk -F: -v username="${username}" \ '$1 == username { printf( "%d\n", $3 ); }' "${PASSWD}" } #---------------------------------------------------------------------------- get_ugid() { local username="${1}" awk -F: -v username="${username}" \ '$1 == username { printf( "%d\n", $4 ); }' "${PASSWD}" } #---------------------------------------------------------------------------- get_gid() { local group="${1}" awk -F: -v group="${group}" \ '$1 == group { printf( "%d\n", $3 ); }' "${GROUP}" } #---------------------------------------------------------------------------- get_members() { local group="${1}" awk -F: -v group="${group}" \ '$1 == group { printf( "%s\n", $4 ); }' "${GROUP}" } #---------------------------------------------------------------------------- get_username() { local uid="${1}" awk -F: -v uid="${uid}" \ '$3 == uid { printf( "%s\n", $1 ); }' "${PASSWD}" } #---------------------------------------------------------------------------- get_group() { local gid="${1}" awk -F: -v gid="${gid}" \ '$3 == gid { printf( "%s\n", $1 ); }' "${GROUP}" } #---------------------------------------------------------------------------- get_ugroup() { local username="${1}" local ugid ugid="$( get_ugid "${username}" )" if [ -n "${ugid}" ]; then get_group "${ugid}" fi } #---------------------------------------------------------------------------- # Sanity-check the new user/group: # - check the gid is not already used for another group # - check the group does not already exist with another gid # - check the user does not already exist with another gid # - check the uid is not already used for another user # - check the user does not already exist with another uid # - check the user does not already exist in another group check_user_validity() { local username="${1}" local uid="${2}" local group="${3}" local gid="${4}" local _uid _ugid _gid _username _group _ugroup _group="$( get_group "${gid}" )" _gid="$( get_gid "${group}" )" _ugid="$( get_ugid "${username}" )" _username="$( get_username "${uid}" )" _uid="$( get_uid "${username}" )" _ugroup="$( get_ugroup "${username}" )" if [ "${username}" = "root" ]; then fail "invalid username '%s\n'" "${username}" fi if [ ${gid} -lt -1 -o ${gid} -eq 0 ]; then fail "invalid gid '%d' for '%s'\n" ${gid} "${username}" elif [ ${gid} -ne -1 ]; then # check the gid is not already used for another group if [ -n "${_group}" -a "${_group}" != "${group}" ]; then fail "gid '%d' for '%s' is already used by group '%s'\n" \ ${gid} "${username}" "${_group}" fi # check the group does not already exists with another gid # Need to split the check in two, otherwise '[' complains it # is missing arguments when _gid is empty if [ -n "${_gid}" ] && [ ${_gid} -ne ${gid} ]; then fail "group '%s' for '%s' already exists with gid '%d' (wants '%d')\n" \ "${group}" "${username}" ${_gid} ${gid} fi # check the user does not already exists with another gid # Need to split the check in two, otherwise '[' complains it # is missing arguments when _ugid is empty if [ -n "${_ugid}" ] && [ ${_ugid} -ne ${gid} ]; then fail "user '%s' already exists with gid '%d' (wants '%d')\n" \ "${username}" ${_ugid} ${gid} fi fi if [ ${uid} -lt -1 -o ${uid} -eq 0 ]; then fail "invalid uid '%d' for '%s'\n" ${uid} "${username}" elif [ ${uid} -ne -1 ]; then # check the uid is not already used for another user if [ -n "${_username}" -a "${_username}" != "${username}" ]; then fail "uid '%d' for '%s' already used by user '%s'\n" \ ${uid} "${username}" "${_username}" fi # check the user does not already exists with another uid # Need to split the check in two, otherwise '[' complains it # is missing arguments when _uid is empty if [ -n "${_uid}" ] && [ ${_uid} -ne ${uid} ]; then fail "user '%s' already exists with uid '%d' (wants '%d')\n" \ "${username}" ${_uid} ${uid} fi fi # check the user does not already exist in another group if [ -n "${_ugroup}" -a "${_ugroup}" != "${group}" ]; then fail "user '%s' already exists with group '%s' (wants '%s')\n" \ "${username}" "${_ugroup}" "${group}" fi return 0 } #---------------------------------------------------------------------------- # Generate a unique GID for given group. If the group already exists, # then simply report its current GID. Otherwise, generate the lowest GID # that is: # - not 0 # - comprised in [MIN_GID..MAX_GID] # - not already used by a group generate_gid() { local group="${1}" local gid gid="$( get_gid "${group}" )" if [ -z "${gid}" ]; then for(( gid=MIN_GID; gid<=MAX_GID; gid++ )); do if [ -z "$( get_group "${gid}" )" ]; then break fi done if [ ${gid} -gt ${MAX_GID} ]; then fail "can not allocate a GID for group '%s'\n" "${group}" fi fi printf "%d\n" "${gid}" } #---------------------------------------------------------------------------- # Add a group; if it does already exist, remove it first add_one_group() { local group="${1}" local gid="${2}" local members # Generate a new GID if needed if [ ${gid} -eq -1 ]; then gid="$( generate_gid "${group}" )" fi members=$(get_members "$group") # Remove any previous instance of this group, and re-add the new one sed -i --follow-symlinks -e '/^'"${group}"':.*/d;' "${GROUP}" printf "%s:x:%d:%s\n" "${group}" "${gid}" "${members}" >>"${GROUP}" # Ditto for /etc/gshadow if it exists if [ -f "${GSHADOW}" ]; then sed -i --follow-symlinks -e '/^'"${group}"':.*/d;' "${GSHADOW}" printf "%s:*::\n" "${group}" >>"${GSHADOW}" fi } #---------------------------------------------------------------------------- # Generate a unique UID for given username. If the username already exists, # then simply report its current UID. Otherwise, generate the lowest UID # that is: # - not 0 # - comprised in [MIN_UID..MAX_UID] # - not already used by a user generate_uid() { local username="${1}" local uid uid="$( get_uid "${username}" )" if [ -z "${uid}" ]; then for(( uid=MIN_UID; uid<=MAX_UID; uid++ )); do if [ -z "$( get_username "${uid}" )" ]; then break fi done if [ ${uid} -gt ${MAX_UID} ]; then fail "can not allocate a UID for user '%s'\n" "${username}" fi fi printf "%d\n" "${uid}" } #---------------------------------------------------------------------------- # Add given user to given group, if not already the case add_user_to_group() { local username="${1}" local group="${2}" local _f for _f in "${GROUP}" "${GSHADOW}"; do [ -f "${_f}" ] || continue sed -r -i --follow-symlinks \ -e 's/^('"${group}"':.*:)(([^:]+,)?)'"${username}"'(,[^:]+*)?$/\1\2\4/;' \ -e 's/^('"${group}"':.*)$/\1,'"${username}"'/;' \ -e 's/,+/,/' \ -e 's/:,/:/' \ "${_f}" done } #---------------------------------------------------------------------------- # Encode a password encode_password() { local passwd="${1}" mkpasswd -m "${PASSWD_METHOD}" "${passwd}" } #---------------------------------------------------------------------------- # Add a user; if it does already exist, remove it first add_one_user() { local username="${1}" local uid="${2}" local group="${3}" local gid="${4}" local passwd="${5}" local home="${6}" local shell="${7}" local groups="${8}" local comment="${9}" local _f _group _home _shell _gid _passwd # First, sanity-check the user check_user_validity "${username}" "${uid}" "${group}" "${gid}" # Generate a new UID if needed if [ ${uid} -eq -1 ]; then uid="$( generate_uid "${username}" )" fi # Remove any previous instance of this user for _f in "${PASSWD}" "${SHADOW}"; do test -f ${_f} && sed -r -i --follow-symlinks -e '/^'"${username}"':.*/d;' "${_f}" done _gid="$( get_gid "${group}" )" _shell="${shell}" if [ "${shell}" = "-" ]; then _shell="/bin/false" fi case "${home}" in -) _home="/";; /) fail "home can not explicitly be '/'\n";; /*) _home="${home}";; *) fail "home must be an absolute path\n";; esac case "${passwd}" in -) _passwd="" ;; !=*) _passwd='!'"$( encode_password "${passwd#!=}" )" ;; =*) _passwd="$( encode_password "${passwd#=}" )" ;; *) _passwd="${passwd}" ;; esac if [ -f ${PASSWD} ]; then printf "%s:x:%d:%d:%s:%s:%s\n" \ "${username}" "${uid}" "${_gid}" \ "${comment}" "${_home}" "${_shell}" \ >>"${PASSWD}" fi if [ -f ${SHADOW} ]; then printf "%s:%s:::::::\n" \ "${username}" "${_passwd}" \ >>"${SHADOW}" fi # Add the user to its additional groups if [ "${groups}" != "-" ]; then for _group in ${groups//,/ }; do add_user_to_group "${username}" "${_group}" done fi # If the user has a home, chown it # (Note: stdout goes to the fakeroot-script) if [ "${home}" != "-" ]; then if mkdir -p "${TARGET_DIR}/${home}"; then printf "chown -h -R %d:%d '%s'\n" "${uid}" "${_gid}" "${TARGET_DIR}/${home}" fi fi } #---------------------------------------------------------------------------- main() { local username uid group gid passwd home shell groups comment local line local -a ENTRIES # Some sanity checks if [ ${MIN_UID} -le 0 ]; then fail "MIN_UID must be >0 (currently %d)\n" ${MIN_UID} fi if [ ${MIN_GID} -le 0 ]; then fail "MIN_GID must be >0 (currently %d)\n" ${MIN_GID} fi # Read in all the file in memory, exclude empty lines and comments while read line; do ENTRIES+=( "${line}" ) done < <( sed -r -e 's/#.*//; /^[[:space:]]*$/d;' "${USERS_TABLE}" ) # We first create groups whose gid is not -1, and then we create groups # whose gid is -1 (automatic), so that, if a group is defined both with # a specified gid and an automatic gid, we ensure the specified gid is # used, rather than a different automatic gid is computed. # First, create all the main groups which gid is *not* automatic for line in "${ENTRIES[@]}"; do read username uid group gid passwd home shell groups comment <<<"${line}" [ ${gid} -ge 0 ] || continue # Automatic gid add_one_group "${group}" "${gid}" done # Then, create all the main groups which gid *is* automatic for line in "${ENTRIES[@]}"; do read username uid group gid passwd home shell groups comment <<<"${line}" [ ${gid} -eq -1 ] || continue # Non-automatic gid add_one_group "${group}" "${gid}" done # Then, create all the additional groups # If any additional group is already a main group, we should use # the gid of that main group; otherwise, we can use any gid for line in "${ENTRIES[@]}"; do read username uid group gid passwd home shell groups comment <<<"${line}" if [ "${groups}" != "-" ]; then for g in ${groups//,/ }; do add_one_group "${g}" -1 done fi done # When adding users, we do as for groups, in case two packages create # the same user, one with an automatic uid, the other with a specified # uid, to ensure the specified uid is used, rather than an incompatible # uid be generated. # Now, add users whose uid is *not* automatic for line in "${ENTRIES[@]}"; do read username uid group gid passwd home shell groups comment <<<"${line}" [ "${username}" != "-" ] || continue # Magic string to skip user creation [ ${uid} -ge 0 ] || continue # Automatic uid add_one_user "${username}" "${uid}" "${group}" "${gid}" "${passwd}" \ "${home}" "${shell}" "${groups}" "${comment}" done # Finally, add users whose uid *is* automatic for line in "${ENTRIES[@]}"; do read username uid group gid passwd home shell groups comment <<<"${line}" [ "${username}" != "-" ] || continue # Magic string to skip user creation [ ${uid} -eq -1 ] || continue # Non-automatic uid add_one_user "${username}" "${uid}" "${group}" "${gid}" "${passwd}" \ "${home}" "${shell}" "${groups}" "${comment}" done } #---------------------------------------------------------------------------- main "${@}" ================================================ FILE: support/scripts/pkg-stats ================================================ #!/usr/bin/env python3 # Copyright (C) 2009 by Thomas Petazzoni # # 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 import aiohttp import argparse import asyncio import datetime import fnmatch import os from collections import defaultdict import re import subprocess import json import sys brpath = os.path.normpath(os.path.join(os.path.dirname(__file__), "..", "..")) sys.path.append(os.path.join(brpath, "utils")) from getdeveloperlib import parse_developers # noqa: E402 from cpedb import CPEDB # noqa: E402 INFRA_RE = re.compile(r"\$\(eval \$\(([a-z-]*)-package\)\)") URL_RE = re.compile(r"\s*https?://\S*\s*$") RM_API_STATUS_ERROR = 1 RM_API_STATUS_FOUND_BY_DISTRO = 2 RM_API_STATUS_FOUND_BY_PATTERN = 3 RM_API_STATUS_NOT_FOUND = 4 class Defconfig: def __init__(self, name, path): self.name = name self.path = path self.developers = None def set_developers(self, developers): """ Fills in the .developers field """ self.developers = [ developer.name for developer in developers if developer.hasfile(self.path) ] def get_defconfig_list(): """ Builds the list of Buildroot defconfigs, returning a list of Defconfig objects. """ return [ Defconfig(name[:-len('_defconfig')], os.path.join('configs', name)) for name in os.listdir(os.path.join(brpath, 'configs')) if name.endswith('_defconfig') ] class Package: all_licenses = dict() all_license_files = list() all_versions = dict() all_ignored_cves = dict() all_cpeids = dict() # This is the list of all possible checks. Add new checks to this list so # a tool that post-processeds the json output knows the checks before # iterating over the packages. status_checks = ['cve', 'developers', 'hash', 'license', 'license-files', 'patches', 'pkg-check', 'url', 'version'] def __init__(self, name, path): self.name = name self.path = path self.pkg_path = os.path.dirname(path) self.infras = None self.license = None self.has_license = False self.has_license_files = False self.has_hash = False self.patch_files = [] self.warnings = 0 self.current_version = None self.url = None self.url_worker = None self.cpeid = None self.cves = list() self.ignored_cves = list() self.latest_version = {'status': RM_API_STATUS_ERROR, 'version': None, 'id': None} self.status = {} def pkgvar(self): return self.name.upper().replace("-", "_") def set_url(self): """ Fills in the .url field """ self.status['url'] = ("warning", "no Config.in") pkgdir = os.path.dirname(os.path.join(brpath, self.path)) for filename in os.listdir(pkgdir): if fnmatch.fnmatch(filename, 'Config.*'): fp = open(os.path.join(pkgdir, filename), "r") for config_line in fp: if URL_RE.match(config_line): self.url = config_line.strip() self.status['url'] = ("ok", "found") fp.close() return self.status['url'] = ("error", "missing") fp.close() @property def patch_count(self): return len(self.patch_files) @property def has_valid_infra(self): if self.infras is None: return False return len(self.infras) > 0 @property def is_actual_package(self): try: if not self.has_valid_infra: return False if self.infras[0][1] == 'virtual': return False except IndexError: return False return True def set_infra(self): """ Fills in the .infras field """ self.infras = list() with open(os.path.join(brpath, self.path), 'r') as f: lines = f.readlines() for line in lines: match = INFRA_RE.match(line) if not match: continue infra = match.group(1) if infra.startswith("host-"): self.infras.append(("host", infra[5:])) else: self.infras.append(("target", infra)) def set_license(self): """ Fills in the .status['license'] and .status['license-files'] fields """ if not self.is_actual_package: self.status['license'] = ("na", "no valid package infra") self.status['license-files'] = ("na", "no valid package infra") return var = self.pkgvar() self.status['license'] = ("error", "missing") self.status['license-files'] = ("error", "missing") if var in self.all_licenses: self.license = self.all_licenses[var] self.status['license'] = ("ok", "found") if var in self.all_license_files: self.status['license-files'] = ("ok", "found") def set_hash_info(self): """ Fills in the .status['hash'] field """ if not self.is_actual_package: self.status['hash'] = ("na", "no valid package infra") self.status['hash-license'] = ("na", "no valid package infra") return hashpath = self.path.replace(".mk", ".hash") if os.path.exists(os.path.join(brpath, hashpath)): self.status['hash'] = ("ok", "found") else: self.status['hash'] = ("error", "missing") def set_patch_count(self): """ Fills in the .patch_count, .patch_files and .status['patches'] fields """ if not self.is_actual_package: self.status['patches'] = ("na", "no valid package infra") return pkgdir = os.path.dirname(os.path.join(brpath, self.path)) for subdir, _, _ in os.walk(pkgdir): self.patch_files = fnmatch.filter(os.listdir(subdir), '*.patch') if self.patch_count == 0: self.status['patches'] = ("ok", "no patches") elif self.patch_count < 5: self.status['patches'] = ("warning", "some patches") else: self.status['patches'] = ("error", "lots of patches") def set_current_version(self): """ Fills in the .current_version field """ var = self.pkgvar() if var in self.all_versions: self.current_version = self.all_versions[var] def set_cpeid(self): """ Fills in the .cpeid field """ var = self.pkgvar() if not self.is_actual_package: self.status['cpe'] = ("na", "N/A - virtual pkg") return if not self.current_version: self.status['cpe'] = ("na", "no version information available") return if var in self.all_cpeids: self.cpeid = self.all_cpeids[var] # Set a preliminary status, it might be overridden by check_package_cpes() self.status['cpe'] = ("warning", "not checked against CPE dictionnary") else: self.status['cpe'] = ("error", "no verified CPE identifier") def set_check_package_warnings(self): """ Fills in the .warnings and .status['pkg-check'] fields """ cmd = [os.path.join(brpath, "utils/check-package")] pkgdir = os.path.dirname(os.path.join(brpath, self.path)) self.status['pkg-check'] = ("error", "Missing") for root, dirs, files in os.walk(pkgdir): for f in files: if f.endswith(".mk") or f.endswith(".hash") or f == "Config.in" or f == "Config.in.host": cmd.append(os.path.join(root, f)) o = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[1] lines = o.splitlines() for line in lines: m = re.match("^([0-9]*) warnings generated", line.decode()) if m: self.warnings = int(m.group(1)) if self.warnings == 0: self.status['pkg-check'] = ("ok", "no warnings") else: self.status['pkg-check'] = ("error", "{} warnings".format(self.warnings)) return def set_ignored_cves(self): """ Give the list of CVEs ignored by the package """ self.ignored_cves = list(self.all_ignored_cves.get(self.pkgvar(), [])) def set_developers(self, developers): """ Fills in the .developers and .status['developers'] field """ self.developers = [ dev.name for dev in developers if dev.hasfile(self.path) ] if self.developers: self.status['developers'] = ("ok", "{} developers".format(len(self.developers))) else: self.status['developers'] = ("warning", "no developers") def is_status_ok(self, name): return name in self.status and self.status[name][0] == 'ok' def is_status_error(self, name): return name in self.status and self.status[name][0] == 'error' def is_status_na(self, name): return name in self.status and self.status[name][0] == 'na' def __eq__(self, other): return self.path == other.path def __lt__(self, other): return self.path < other.path def __str__(self): return "%s (path='%s', license='%s', license_files='%s', hash='%s', patches=%d)" % \ (self.name, self.path, self.is_status_ok('license'), self.is_status_ok('license-files'), self.status['hash'], self.patch_count) def get_pkglist(npackages, package_list): """ Builds the list of Buildroot packages, returning a list of Package objects. Only the .name and .path fields of the Package object are initialized. npackages: limit to N packages package_list: limit to those packages in this list """ WALK_USEFUL_SUBDIRS = ["boot", "linux", "package", "toolchain"] WALK_EXCLUDES = ["boot/common.mk", "linux/linux-ext-.*.mk", "package/freescale-imx/freescale-imx.mk", "package/gcc/gcc.mk", "package/gstreamer/gstreamer.mk", "package/gstreamer1/gstreamer1.mk", "package/gtk2-themes/gtk2-themes.mk", "package/matchbox/matchbox.mk", "package/opengl/opengl.mk", "package/qt5/qt5.mk", "package/x11r7/x11r7.mk", "package/doc-asciidoc.mk", "package/pkg-.*.mk", "toolchain/toolchain-external/pkg-toolchain-external.mk", "toolchain/toolchain-external/toolchain-external.mk", "toolchain/toolchain.mk", "toolchain/helpers.mk", "toolchain/toolchain-wrapper.mk"] packages = list() count = 0 for root, dirs, files in os.walk(brpath): root = os.path.relpath(root, brpath) rootdir = root.split("/") if len(rootdir) < 1: continue if rootdir[0] not in WALK_USEFUL_SUBDIRS: continue for f in files: if not f.endswith(".mk"): continue # Strip ending ".mk" pkgname = f[:-3] if package_list and pkgname not in package_list: continue pkgpath = os.path.join(root, f) skip = False for exclude in WALK_EXCLUDES: if re.match(exclude, pkgpath): skip = True continue if skip: continue p = Package(pkgname, pkgpath) packages.append(p) count += 1 if npackages and count == npackages: return packages return packages def get_config_packages(): cmd = ["make", "--no-print-directory", "show-info"] js = json.loads(subprocess.check_output(cmd)) return set([v["name"] for v in js.values()]) def package_init_make_info(): # Fetch all variables at once variables = subprocess.check_output(["make", "BR2_HAVE_DOT_CONFIG=y", "-s", "printvars", "VARS=%_LICENSE %_LICENSE_FILES %_VERSION %_IGNORE_CVES %_CPE_ID"]) variable_list = variables.decode().splitlines() # We process first the host package VERSION, and then the target # package VERSION. This means that if a package exists in both # target and host variants, with different values (eg. version # numbers (unlikely)), we'll report the target one. variable_list = [x[5:] for x in variable_list if x.startswith("HOST_")] + \ [x for x in variable_list if not x.startswith("HOST_")] for item in variable_list: # Get variable name and value pkgvar, value = item.split("=", maxsplit=1) # Strip the suffix according to the variable if pkgvar.endswith("_LICENSE"): # If value is "unknown", no license details available if value == "unknown": continue pkgvar = pkgvar[:-8] Package.all_licenses[pkgvar] = value elif pkgvar.endswith("_LICENSE_FILES"): if pkgvar.endswith("_MANIFEST_LICENSE_FILES"): continue pkgvar = pkgvar[:-14] Package.all_license_files.append(pkgvar) elif pkgvar.endswith("_VERSION"): if pkgvar.endswith("_DL_VERSION"): continue pkgvar = pkgvar[:-8] Package.all_versions[pkgvar] = value elif pkgvar.endswith("_IGNORE_CVES"): pkgvar = pkgvar[:-12] Package.all_ignored_cves[pkgvar] = value.split() elif pkgvar.endswith("_CPE_ID"): pkgvar = pkgvar[:-7] Package.all_cpeids[pkgvar] = value check_url_count = 0 async def check_url_status(session, pkg, npkgs, retry=True): global check_url_count try: async with session.get(pkg.url) as resp: if resp.status >= 400: pkg.status['url'] = ("error", "invalid {}".format(resp.status)) check_url_count += 1 print("[%04d/%04d] %s" % (check_url_count, npkgs, pkg.name)) return except (aiohttp.ClientError, asyncio.TimeoutError): if retry: return await check_url_status(session, pkg, npkgs, retry=False) else: pkg.status['url'] = ("error", "invalid (err)") check_url_count += 1 print("[%04d/%04d] %s" % (check_url_count, npkgs, pkg.name)) return pkg.status['url'] = ("ok", "valid") check_url_count += 1 print("[%04d/%04d] %s" % (check_url_count, npkgs, pkg.name)) async def check_package_urls(packages): tasks = [] connector = aiohttp.TCPConnector(limit_per_host=5) async with aiohttp.ClientSession(connector=connector, trust_env=True) as sess: packages = [p for p in packages if p.status['url'][0] == 'ok'] for pkg in packages: tasks.append(asyncio.ensure_future(check_url_status(sess, pkg, len(packages)))) await asyncio.wait(tasks) def check_package_latest_version_set_status(pkg, status, version, identifier): pkg.latest_version = { "status": status, "version": version, "id": identifier, } if pkg.latest_version['status'] == RM_API_STATUS_ERROR: pkg.status['version'] = ('warning', "Release Monitoring API error") elif pkg.latest_version['status'] == RM_API_STATUS_NOT_FOUND: pkg.status['version'] = ('warning', "Package not found on Release Monitoring") if pkg.latest_version['version'] is None: pkg.status['version'] = ('warning', "No upstream version available on Release Monitoring") elif pkg.latest_version['version'] != pkg.current_version: pkg.status['version'] = ('error', "The newer version {} is available upstream".format(pkg.latest_version['version'])) else: pkg.status['version'] = ('ok', 'up-to-date') async def check_package_get_latest_version_by_distro(session, pkg, retry=True): url = "https://release-monitoring.org//api/project/Buildroot/%s" % pkg.name try: async with session.get(url) as resp: if resp.status != 200: return False data = await resp.json() version = data['stable_versions'][0] if 'stable_versions' in data else data['version'] if 'version' in data else None check_package_latest_version_set_status(pkg, RM_API_STATUS_FOUND_BY_DISTRO, version, data['id']) return True except (aiohttp.ClientError, asyncio.TimeoutError): if retry: return await check_package_get_latest_version_by_distro(session, pkg, retry=False) else: return False async def check_package_get_latest_version_by_guess(session, pkg, retry=True): url = "https://release-monitoring.org/api/projects/?pattern=%s" % pkg.name try: async with session.get(url) as resp: if resp.status != 200: return False data = await resp.json() # filter projects that have the right name and a version defined projects = [p for p in data['projects'] if p['name'] == pkg.name and 'stable_versions' in p] projects.sort(key=lambda x: x['id']) if len(projects) > 0: check_package_latest_version_set_status(pkg, RM_API_STATUS_FOUND_BY_PATTERN, projects[0]['stable_versions'][0], projects[0]['id']) return True except (aiohttp.ClientError, asyncio.TimeoutError): if retry: return await check_package_get_latest_version_by_guess(session, pkg, retry=False) else: return False check_latest_count = 0 async def check_package_latest_version_get(session, pkg, npkgs): global check_latest_count if await check_package_get_latest_version_by_distro(session, pkg): check_latest_count += 1 print("[%04d/%04d] %s" % (check_latest_count, npkgs, pkg.name)) return if await check_package_get_latest_version_by_guess(session, pkg): check_latest_count += 1 print("[%04d/%04d] %s" % (check_latest_count, npkgs, pkg.name)) return check_package_latest_version_set_status(pkg, RM_API_STATUS_NOT_FOUND, None, None) check_latest_count += 1 print("[%04d/%04d] %s" % (check_latest_count, npkgs, pkg.name)) async def check_package_latest_version(packages): """ Fills in the .latest_version field of all Package objects This field is a dict and has the following keys: - status: one of RM_API_STATUS_ERROR, RM_API_STATUS_FOUND_BY_DISTRO, RM_API_STATUS_FOUND_BY_PATTERN, RM_API_STATUS_NOT_FOUND - version: string containing the latest version known by release-monitoring.org for this package - id: string containing the id of the project corresponding to this package, as known by release-monitoring.org """ for pkg in [p for p in packages if not p.is_actual_package]: pkg.status['version'] = ("na", "no valid package infra") tasks = [] connector = aiohttp.TCPConnector(limit_per_host=5) async with aiohttp.ClientSession(connector=connector, trust_env=True) as sess: packages = [p for p in packages if p.is_actual_package] for pkg in packages: tasks.append(asyncio.ensure_future(check_package_latest_version_get(sess, pkg, len(packages)))) await asyncio.wait(tasks) def check_package_cve_affects(cve, cpe_product_pkgs): for product in cve.affected_products: if product not in cpe_product_pkgs: continue for pkg in cpe_product_pkgs[product]: if cve.affects(pkg.name, pkg.current_version, pkg.ignored_cves, pkg.cpeid) == cve.CVE_AFFECTS: pkg.cves.append(cve.identifier) def check_package_cves(nvd_path, packages): if not os.path.isdir(nvd_path): os.makedirs(nvd_path) cpe_product_pkgs = defaultdict(list) for pkg in packages: if not pkg.is_actual_package: pkg.status['cve'] = ("na", "N/A") continue if not pkg.current_version: pkg.status['cve'] = ("na", "no version information available") continue if pkg.cpeid: cpe_product = cvecheck.cpe_product(pkg.cpeid) cpe_product_pkgs[cpe_product].append(pkg) else: cpe_product_pkgs[pkg.name].append(pkg) for cve in cvecheck.CVE.read_nvd_dir(nvd_path): check_package_cve_affects(cve, cpe_product_pkgs) for pkg in packages: if 'cve' not in pkg.status: if pkg.cves: pkg.status['cve'] = ("error", "affected by CVEs") else: pkg.status['cve'] = ("ok", "not affected by CVEs") def check_package_cpes(nvd_path, packages): cpedb = CPEDB(nvd_path) cpedb.get_xml_dict() for p in packages: if not p.cpeid: continue if cpedb.find(p.cpeid): p.status['cpe'] = ("ok", "verified CPE identifier") else: p.status['cpe'] = ("error", "CPE version unknown in CPE database") def calculate_stats(packages): stats = defaultdict(int) stats['packages'] = len(packages) for pkg in packages: # If packages have multiple infra, take the first one. For the # vast majority of packages, the target and host infra are the # same. There are very few packages that use a different infra # for the host and target variants. if len(pkg.infras) > 0: infra = pkg.infras[0][1] stats["infra-%s" % infra] += 1 else: stats["infra-unknown"] += 1 if pkg.is_status_ok('license'): stats["license"] += 1 else: stats["no-license"] += 1 if pkg.is_status_ok('license-files'): stats["license-files"] += 1 else: stats["no-license-files"] += 1 if pkg.is_status_ok('hash'): stats["hash"] += 1 else: stats["no-hash"] += 1 if pkg.latest_version['status'] == RM_API_STATUS_FOUND_BY_DISTRO: stats["rmo-mapping"] += 1 else: stats["rmo-no-mapping"] += 1 if not pkg.latest_version['version']: stats["version-unknown"] += 1 elif pkg.latest_version['version'] == pkg.current_version: stats["version-uptodate"] += 1 else: stats["version-not-uptodate"] += 1 stats["patches"] += pkg.patch_count stats["total-cves"] += len(pkg.cves) if len(pkg.cves) != 0: stats["pkg-cves"] += 1 if pkg.cpeid: stats["cpe-id"] += 1 else: stats["no-cpe-id"] += 1 return stats html_header = """ Statistics of Buildroot packages Results

    """ html_footer = """ """ def infra_str(infra_list): if not infra_list: return "Unknown" elif len(infra_list) == 1: return "%s
    %s" % (infra_list[0][1], infra_list[0][0]) elif infra_list[0][1] == infra_list[1][1]: return "%s
    %s + %s" % \ (infra_list[0][1], infra_list[0][0], infra_list[1][0]) else: return "%s (%s)
    %s (%s)" % \ (infra_list[0][1], infra_list[0][0], infra_list[1][1], infra_list[1][0]) def boolean_str(b): if b: return "Yes" else: return "No" def dump_html_pkg(f, pkg): f.write(" \n") f.write(" %s\n" % pkg.path) # Patch count td_class = ["centered"] if pkg.patch_count == 0: td_class.append("nopatches") elif pkg.patch_count < 5: td_class.append("somepatches") else: td_class.append("lotsofpatches") f.write(" %s\n" % (" ".join(td_class), str(pkg.patch_count))) # Infrastructure infra = infra_str(pkg.infras) td_class = ["centered"] if infra == "Unknown": td_class.append("wrong") else: td_class.append("correct") f.write(" %s\n" % (" ".join(td_class), infra_str(pkg.infras))) # License td_class = ["centered"] if pkg.is_status_ok('license'): td_class.append("correct") else: td_class.append("wrong") f.write(" %s\n" % (" ".join(td_class), boolean_str(pkg.is_status_ok('license')))) # License files td_class = ["centered"] if pkg.is_status_ok('license-files'): td_class.append("correct") else: td_class.append("wrong") f.write(" %s\n" % (" ".join(td_class), boolean_str(pkg.is_status_ok('license-files')))) # Hash td_class = ["centered"] if pkg.is_status_ok('hash'): td_class.append("correct") else: td_class.append("wrong") f.write(" %s\n" % (" ".join(td_class), boolean_str(pkg.is_status_ok('hash')))) # Current version if len(pkg.current_version) > 20: current_version = pkg.current_version[:20] + "..." else: current_version = pkg.current_version f.write(" %s\n" % current_version) # Latest version if pkg.latest_version['status'] == RM_API_STATUS_ERROR: td_class.append("version-error") if pkg.latest_version['version'] is None: td_class.append("version-unknown") elif pkg.latest_version['version'] != pkg.current_version: td_class.append("version-needs-update") else: td_class.append("version-good") if pkg.latest_version['status'] == RM_API_STATUS_ERROR: latest_version_text = "Error" elif pkg.latest_version['status'] == RM_API_STATUS_NOT_FOUND: latest_version_text = "Not found" else: if pkg.latest_version['version'] is None: latest_version_text = "Found, but no version" else: latest_version_text = "%s" % \ (pkg.latest_version['id'], str(pkg.latest_version['version'])) latest_version_text += "
    " if pkg.latest_version['status'] == RM_API_STATUS_FOUND_BY_DISTRO: latest_version_text += "found by distro" else: latest_version_text += "found by guess" f.write(" %s\n" % (" ".join(td_class), latest_version_text)) # Warnings td_class = ["centered"] if pkg.warnings == 0: td_class.append("correct") else: td_class.append("wrong") f.write(" %d\n" % (" ".join(td_class), pkg.warnings)) # URL status td_class = ["centered"] url_str = pkg.status['url'][1] if pkg.status['url'][0] in ("error", "warning"): td_class.append("missing_url") if pkg.status['url'][0] == "error": td_class.append("invalid_url") url_str = "%s" % (pkg.url, pkg.status['url'][1]) else: td_class.append("good_url") url_str = "Link" % pkg.url f.write(" %s\n" % (" ".join(td_class), url_str)) # CVEs td_class = ["centered"] if pkg.is_status_ok("cve"): td_class.append("cve-ok") elif pkg.is_status_error("cve"): td_class.append("cve-nok") elif pkg.is_status_na("cve") and not pkg.is_actual_package: td_class.append("cve-ok") else: td_class.append("cve-unknown") f.write(" \n" % " ".join(td_class)) if pkg.is_status_error("cve"): for cve in pkg.cves: f.write(" %s
    \n" % (cve, cve)) elif pkg.is_status_na("cve"): f.write(" %s" % pkg.status['cve'][1]) else: f.write(" N/A\n") f.write(" \n") # CVEs Ignored td_class = ["centered"] if pkg.ignored_cves: td_class.append("cve_ignored") f.write(" \n" % " ".join(td_class)) for ignored_cve in pkg.ignored_cves: f.write("
    %s
    \n" % (ignored_cve, ignored_cve)) f.write(" \n") # CPE ID td_class = ["left"] if pkg.is_status_ok("cpe"): td_class.append("cpe-ok") elif pkg.is_status_error("cpe"): td_class.append("cpe-nok") elif pkg.is_status_na("cpe") and not pkg.is_actual_package: td_class.append("cpe-ok") else: td_class.append("cpe-unknown") f.write(" \n" % " ".join(td_class)) if pkg.cpeid: f.write(" %s\n" % pkg.cpeid) if not pkg.is_status_ok("cpe"): if pkg.is_actual_package and pkg.current_version: if pkg.cpeid: f.write("
    %s
    (Search)\n" % # noqa: E501 (pkg.status['cpe'][1], ":".join(pkg.cpeid.split(":")[0:5]))) else: f.write(" %s (Search)\n" % # noqa: E501 (pkg.status['cpe'][1], pkg.name)) else: f.write(" %s\n" % pkg.status['cpe'][1]) f.write(" \n") f.write(" \n") def dump_html_all_pkgs(f, packages): f.write(""" """) for pkg in sorted(packages): dump_html_pkg(f, pkg) f.write("
    Package Patch count Infrastructure License License files Hash file Current version Latest version Warnings Upstream URL CVEs CVEs Ignored CPE ID
    ") def dump_html_stats(f, stats): f.write("\n") f.write("\n") infras = [infra[6:] for infra in stats.keys() if infra.startswith("infra-")] for infra in infras: f.write(" \n" % (infra, stats["infra-%s" % infra])) f.write(" \n" % stats["license"]) f.write(" \n" % stats["no-license"]) f.write(" \n" % stats["license-files"]) f.write(" \n" % stats["no-license-files"]) f.write(" \n" % stats["hash"]) f.write(" \n" % stats["no-hash"]) f.write(" \n" % stats["patches"]) f.write("\n" % stats["rmo-mapping"]) f.write("\n" % stats["rmo-no-mapping"]) f.write("\n" % stats["version-uptodate"]) f.write("\n" % stats["version-not-uptodate"]) f.write("\n" % stats["version-unknown"]) f.write("\n" % stats["pkg-cves"]) f.write("\n" % stats["total-cves"]) f.write("\n" % stats["cpe-id"]) f.write("\n" % stats["no-cpe-id"]) f.write("
    Packages using the %s infrastructure%s
    Packages having license information%s
    Packages not having license information%s
    Packages having license files information%s
    Packages not having license files information%s
    Packages having a hash file%s
    Packages not having a hash file%s
    Total number of patches%s
    Packages having a mapping on release-monitoring.org%s
    Packages lacking a mapping on release-monitoring.org%s
    Packages that are up-to-date%s
    Packages that are not up-to-date%s
    Packages with no known upstream version%s
    Packages affected by CVEs%s
    Total number of CVEs affecting all packages%s
    Packages with CPE ID%s
    Packages without CPE ID%s
    \n") def dump_html_gen_info(f, date, commit): # Updated on Mon Feb 19 08:12:08 CET 2018, Git commit aa77030b8f5e41f1c53eb1c1ad664b8c814ba032 f.write("

    Updated on %s, git commit %s

    \n" % (str(date), commit)) def dump_html(packages, stats, date, commit, output): with open(output, 'w') as f: f.write(html_header) dump_html_all_pkgs(f, packages) dump_html_stats(f, stats) dump_html_gen_info(f, date, commit) f.write(html_footer) def dump_json(packages, defconfigs, stats, date, commit, output): # Format packages as a dictionnary instead of a list # Exclude local field that does not contains real date excluded_fields = ['url_worker', 'name'] pkgs = { pkg.name: { k: v for k, v in pkg.__dict__.items() if k not in excluded_fields } for pkg in packages } defconfigs = { d.name: { k: v for k, v in d.__dict__.items() } for d in defconfigs } # Aggregate infrastructures into a single dict entry statistics = { k: v for k, v in stats.items() if not k.startswith('infra-') } statistics['infra'] = {k[6:]: v for k, v in stats.items() if k.startswith('infra-')} # The actual structure to dump, add commit and date to it final = {'packages': pkgs, 'stats': statistics, 'defconfigs': defconfigs, 'package_status_checks': Package.status_checks, 'commit': commit, 'date': str(date)} with open(output, 'w') as f: json.dump(final, f, indent=2, separators=(',', ': ')) f.write('\n') def resolvepath(path): return os.path.abspath(os.path.expanduser(path)) def parse_args(): parser = argparse.ArgumentParser() output = parser.add_argument_group('output', 'Output file(s)') output.add_argument('--html', dest='html', type=resolvepath, help='HTML output file') output.add_argument('--json', dest='json', type=resolvepath, help='JSON output file') packages = parser.add_mutually_exclusive_group() packages.add_argument('-c', dest='configpackages', action='store_true', help='Apply to packages enabled in current configuration') packages.add_argument('-n', dest='npackages', type=int, action='store', help='Number of packages') packages.add_argument('-p', dest='packages', action='store', help='List of packages (comma separated)') parser.add_argument('--nvd-path', dest='nvd_path', help='Path to the local NVD database', type=resolvepath) args = parser.parse_args() if not args.html and not args.json: parser.error('at least one of --html or --json (or both) is required') return args def __main__(): global cvecheck args = parse_args() if args.nvd_path: import cve as cvecheck if args.packages: package_list = args.packages.split(",") elif args.configpackages: package_list = get_config_packages() else: package_list = None date = datetime.datetime.utcnow() commit = subprocess.check_output(['git', '-C', brpath, 'rev-parse', 'HEAD']).splitlines()[0].decode() print("Build package list ...") packages = get_pkglist(args.npackages, package_list) print("Getting developers ...") developers = parse_developers() print("Build defconfig list ...") defconfigs = get_defconfig_list() for d in defconfigs: d.set_developers(developers) print("Getting package make info ...") package_init_make_info() print("Getting package details ...") for pkg in packages: pkg.set_infra() pkg.set_license() pkg.set_hash_info() pkg.set_patch_count() pkg.set_check_package_warnings() pkg.set_current_version() pkg.set_cpeid() pkg.set_url() pkg.set_ignored_cves() pkg.set_developers(developers) print("Checking URL status") loop = asyncio.get_event_loop() loop.run_until_complete(check_package_urls(packages)) print("Getting latest versions ...") loop = asyncio.get_event_loop() loop.run_until_complete(check_package_latest_version(packages)) if args.nvd_path: print("Checking packages CVEs") check_package_cves(args.nvd_path, packages) check_package_cpes(args.nvd_path, packages) print("Calculate stats") stats = calculate_stats(packages) if args.html: print("Write HTML") dump_html(packages, stats, date, commit, args.html) if args.json: print("Write JSON") dump_json(packages, defconfigs, stats, date, commit, args.json) __main__() ================================================ FILE: support/scripts/pycompile.py ================================================ #!/usr/bin/env python3 """ Byte compile all .py files from provided directories. This script is an alternative implementation of compileall.compile_dir written with cross-compilation in mind. """ import argparse import os import py_compile import re import sys def compile_one(host_path, strip_root=None, verbose=False): """ Compile a .py file into a .pyc file located next to it. :arg host_path: Absolute path to the file to compile on the host running the build. :arg strip_root: Prefix to remove from the original source paths encoded in compiled files. :arg verbose: Print compiled file paths. """ if os.path.islink(host_path) or not os.path.isfile(host_path): return # only compile real files if not re.match(r"^[_A-Za-z][_A-Za-z0-9]*\.py$", os.path.basename(host_path)): return # only compile "importable" python modules if strip_root is not None: # determine the runtime path of the file (i.e.: relative path to root # dir prepended with "/"). runtime_path = os.path.join("/", os.path.relpath(host_path, strip_root)) else: runtime_path = host_path if verbose: print(" PYC {}".format(runtime_path)) # will raise an error if the file cannot be compiled py_compile.compile(host_path, cfile=host_path + "c", dfile=runtime_path, doraise=True) def existing_dir_abs(arg): """ argparse type callback that checks that argument is a directory and returns its absolute path. """ if not os.path.isdir(arg): raise argparse.ArgumentTypeError('no such directory: {!r}'.format(arg)) return os.path.abspath(arg) def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("dirs", metavar="DIR", nargs="+", type=existing_dir_abs, help="Directory to recursively scan and compile") parser.add_argument("--strip-root", metavar="ROOT", type=existing_dir_abs, help=""" Prefix to remove from the original source paths encoded in compiled files """) parser.add_argument("--verbose", action="store_true", help="Print compiled files") args = parser.parse_args() try: for d in args.dirs: if args.strip_root and ".." in os.path.relpath(d, args.strip_root): parser.error("DIR: not inside ROOT dir: {!r}".format(d)) for parent, _, files in os.walk(d): for f in files: compile_one(os.path.join(parent, f), args.strip_root, args.verbose) except Exception as e: print("error: {}".format(e)) return 1 return 0 if __name__ == "__main__": sys.exit(main()) ================================================ FILE: support/scripts/setlocalversion ================================================ #!/bin/sh # # This scripts adds local version information from the version # control systems git, mercurial (hg) and subversion (svn). # # If something goes wrong, send a mail the kernel build mailinglist # (see MAINTAINERS) and CC Nico Schottelius # . # # usage() { echo "Usage: $0 [srctree]" >&2 exit 1 } cd "${1:-.}" || usage # Check for git and a git repo. if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then atag="`git describe 2>/dev/null`" # Show -g if we have no tag, or just the tag # otherwise. if [ -z "${atag}" ] ; then printf "%s%s" -g ${head} else printf ${atag} fi # Is this git on svn? if git config --get svn-remote.svn.url >/dev/null; then printf -- '-svn%s' "`git svn find-rev $head`" fi # Update index only on r/w media [ -w . ] && git update-index --refresh --unmerged > /dev/null # Check for uncommitted changes if git diff-index --name-only HEAD | grep -v "^scripts/package" \ | read dummy; then printf '%s' -dirty fi # All done with git exit fi # Check for mercurial and a mercurial repo. # In the git case, 'git describe' will show the latest tag, and unless we are # exactly on that tag, the number of commits since then, and last commit id. # Mimic something similar in the Mercurial case. if hgid=`HGRCPATH= hg id --id --tags 2>/dev/null`; then tag=`printf '%s' "$hgid" | cut -d' ' -f2 --only-delimited` # Do we have an untagged version? if [ -z "$tag" -o "$tag" = tip ]; then # current revision is not tagged, determine latest tag latesttag=`HGRCPATH= hg log -r. -T '{latesttag}' 2>/dev/null` # In case there is more than one tag on the latest tagged commit, # 'latesttag' will separate them by colon (:). We'll retain this. # In case there is no tag at all, 'null' will be returned. if [ "$latesttag" = "null" ]; then latesttag='' fi # add the commit id id=`printf '%s' "$hgid" | sed 's/[+ ].*//'` printf '%s%s%s' "${latesttag}" -hg "$id" else # current revision is tagged, just print the tag printf ${tag} fi # Are there uncommitted changes? # These are represented by + after the changeset id. case "$hgid" in *+|*+\ *) printf '%s' -dirty ;; esac # All done with mercurial exit fi # Check for svn and a svn repo. if rev=`LC_ALL=C svn info 2>/dev/null | grep '^Last Changed Rev'`; then rev=`echo $rev | awk '{print $NF}'` printf -- '-svn%s' "$rev" # All done with svn exit fi ================================================ FILE: support/scripts/size-stats ================================================ #!/usr/bin/env python3 # Copyright (C) 2014 by Thomas Petazzoni # 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 import sys import os import os.path import argparse import csv import collections import math try: import matplotlib matplotlib.use('Agg') import matplotlib.font_manager as fm import matplotlib.pyplot as plt except ImportError: sys.stderr.write("You need python-matplotlib to generate the size graph\n") exit(1) class Config: biggest_first = False iec = False size_limit = 0.01 colors = ['#e60004', '#f28e00', '#ffed00', '#940084', '#2e1d86', '#0068b5', '#009836', '#97c000'] # # This function adds a new file to 'filesdict', after checking its # size. The 'filesdict' contain the relative path of the file as the # key, and as the value a tuple containing the name of the package to # which the file belongs and the size of the file. # # filesdict: the dict to which the file is added # relpath: relative path of the file # fullpath: absolute path to the file # pkg: package to which the file belongs # def add_file(filesdict, relpath, abspath, pkg): if not os.path.exists(abspath): return if os.path.islink(abspath): return sz = os.stat(abspath).st_size filesdict[relpath] = (pkg, sz) # # This function returns a dict where each key is the path of a file in # the root filesystem, and the value is a tuple containing two # elements: the name of the package to which this file belongs and the # size of the file. # # builddir: path to the Buildroot output directory # def build_package_dict(builddir): filesdict = {} with open(os.path.join(builddir, "build", "packages-file-list.txt")) as f: for line in f.readlines(): pkg, fpath = line.split(",", 1) # remove the initial './' in each file path fpath = fpath.strip()[2:] fullpath = os.path.join(builddir, "target", fpath) add_file(filesdict, fpath, fullpath, pkg) return filesdict # # This function builds a dictionary that contains the name of a # package as key, and the size of the files installed by this package # as the value. # # filesdict: dictionary with the name of the files as key, and as # value a tuple containing the name of the package to which the files # belongs, and the size of the file. As returned by # build_package_dict. # # builddir: path to the Buildroot output directory # def build_package_size(filesdict, builddir): pkgsize = collections.defaultdict(int) seeninodes = set() for root, _, files in os.walk(os.path.join(builddir, "target")): for f in files: fpath = os.path.join(root, f) if os.path.islink(fpath): continue st = os.stat(fpath) if st.st_ino in seeninodes: # hard link continue else: seeninodes.add(st.st_ino) frelpath = os.path.relpath(fpath, os.path.join(builddir, "target")) if frelpath not in filesdict: print("WARNING: %s is not part of any package" % frelpath) pkg = "unknown" else: pkg = filesdict[frelpath][0] pkgsize[pkg] += st.st_size return pkgsize # # Given a dict returned by build_package_size(), this function # generates a pie chart of the size installed by each package. # # pkgsize: dictionary with the name of the package as a key, and the # size as the value, as returned by build_package_size. # # outputf: output file for the graph # def draw_graph(pkgsize, outputf): def size2string(sz): if Config.iec: divider = 1024.0 prefixes = ['', 'Ki', 'Mi', 'Gi', 'Ti'] else: divider = 1000.0 prefixes = ['', 'k', 'M', 'G', 'T'] while sz > divider and len(prefixes) > 1: prefixes = prefixes[1:] sz = sz/divider # precision is made so that there are always at least three meaningful # digits displayed (e.g. '3.14' and '10.4', not just '3' and '10') precision = int(2-math.floor(math.log10(sz))) if sz < 1000 else 0 return '{:.{prec}f} {}B'.format(sz, prefixes[0], prec=precision) total = sum(pkgsize.values()) labels = [] values = [] other_value = 0 unknown_value = 0 for (p, sz) in sorted(pkgsize.items(), key=lambda x: x[1], reverse=Config.biggest_first): if sz < (total * Config.size_limit): other_value += sz elif p == "unknown": unknown_value = sz else: labels.append("%s (%s)" % (p, size2string(sz))) values.append(sz) if unknown_value != 0: labels.append("Unknown (%s)" % (size2string(unknown_value))) values.append(unknown_value) if other_value != 0: labels.append("Other (%s)" % (size2string(other_value))) values.append(other_value) plt.figure() patches, texts, autotexts = plt.pie(values, labels=labels, autopct='%1.1f%%', shadow=True, colors=Config.colors) # Reduce text size proptease = fm.FontProperties() proptease.set_size('xx-small') plt.setp(autotexts, fontproperties=proptease) plt.setp(texts, fontproperties=proptease) plt.suptitle("Filesystem size per package", fontsize=18, y=.97) plt.title("Total filesystem size: %s" % (size2string(total)), fontsize=10, y=.96) plt.savefig(outputf) # # Generate a CSV file with statistics about the size of each file, its # size contribution to the package and to the overall system. # # filesdict: dictionary with the name of the files as key, and as # value a tuple containing the name of the package to which the files # belongs, and the size of the file. As returned by # build_package_dict. # # pkgsize: dictionary with the name of the package as a key, and the # size as the value, as returned by build_package_size. # # outputf: output CSV file # def gen_files_csv(filesdict, pkgsizes, outputf): total = 0 for (p, sz) in pkgsizes.items(): total += sz with open(outputf, 'w') as csvfile: wr = csv.writer(csvfile, delimiter=',', quoting=csv.QUOTE_MINIMAL) wr.writerow(["File name", "Package name", "File size", "Package size", "File size in package (%)", "File size in system (%)"]) for f, (pkgname, filesize) in filesdict.items(): pkgsize = pkgsizes[pkgname] if pkgsize == 0: percent_pkg = 0 else: percent_pkg = float(filesize) / pkgsize * 100 percent_total = float(filesize) / total * 100 wr.writerow([f, pkgname, filesize, pkgsize, "%.1f" % percent_pkg, "%.1f" % percent_total]) # # Generate a CSV file with statistics about the size of each package, # and their size contribution to the overall system. # # pkgsize: dictionary with the name of the package as a key, and the # size as the value, as returned by build_package_size. # # outputf: output CSV file # def gen_packages_csv(pkgsizes, outputf): total = sum(pkgsizes.values()) with open(outputf, 'w') as csvfile: wr = csv.writer(csvfile, delimiter=',', quoting=csv.QUOTE_MINIMAL) wr.writerow(["Package name", "Package size", "Package size in system (%)"]) for (pkg, size) in pkgsizes.items(): wr.writerow([pkg, size, "%.1f" % (float(size) / total * 100)]) # # Our special action for --iec, --binary, --si, --decimal # class PrefixAction(argparse.Action): def __init__(self, option_strings, dest, **kwargs): for key in ["type", "nargs"]: if key in kwargs: raise ValueError('"{}" not allowed'.format(key)) super(PrefixAction, self).__init__(option_strings, dest, nargs=0, type=bool, **kwargs) def __call__(self, parser, namespace, values, option_string=None): setattr(namespace, self.dest, option_string in ["--iec", "--binary"]) def main(): parser = argparse.ArgumentParser(description='Draw size statistics graphs') parser.add_argument("--builddir", '-i', metavar="BUILDDIR", required=True, help="Buildroot output directory") parser.add_argument("--graph", '-g', metavar="GRAPH", help="Graph output file (.pdf or .png extension)") parser.add_argument("--file-size-csv", '-f', metavar="FILE_SIZE_CSV", help="CSV output file with file size statistics") parser.add_argument("--package-size-csv", '-p', metavar="PKG_SIZE_CSV", help="CSV output file with package size statistics") parser.add_argument("--biggest-first", action='store_true', help="Sort packages in decreasing size order, " + "rather than in increasing size order") parser.add_argument("--iec", "--binary", "--si", "--decimal", action=PrefixAction, help="Use IEC (binary, powers of 1024) or SI (decimal, " "powers of 1000, the default) prefixes") parser.add_argument("--size-limit", "-l", type=float, help='Under this size ratio, files are accounted to ' + 'the generic "Other" package. Default: 0.01 (1%%)') args = parser.parse_args() Config.biggest_first = args.biggest_first Config.iec = args.iec if args.size_limit is not None: if args.size_limit < 0.0 or args.size_limit > 1.0: parser.error("--size-limit must be in [0.0..1.0]") Config.size_limit = args.size_limit # Find out which package installed what files pkgdict = build_package_dict(args.builddir) # Collect the size installed by each package pkgsize = build_package_size(pkgdict, args.builddir) if args.graph: draw_graph(pkgsize, args.graph) if args.file_size_csv: gen_files_csv(pkgdict, pkgsize, args.file_size_csv) if args.package_size_csv: gen_packages_csv(pkgsize, args.package_size_csv) if __name__ == "__main__": main() ================================================ FILE: support/testing/conf/binfmt-misc-kernel-fragment.config ================================================ # Needed for binfmt_misc service: "Arbitrary Executable File Formats File System" CONFIG_BINFMT_MISC=y ================================================ FILE: support/testing/conf/docker-compose-kernel.config ================================================ # CONFIG_SWAP is not set CONFIG_SYSVIPC=y # CONFIG_CROSS_MEMORY_ATTACH is not set CONFIG_HIGH_RES_TIMERS=y # CONFIG_COMPAT_BRK is not set # CONFIG_X86_EXTENDED_PLATFORM is not set CONFIG_IOSF_MBI=y CONFIG_MCORE2=y # CONFIG_X86_MCE is not set # CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set CONFIG_LEGACY_VSYSCALL_NONE=y # CONFIG_SUSPEND is not set # CONFIG_ACPI is not set CONFIG_CPU_IDLE=y CONFIG_PCI_MSI=y # CONFIG_VIRTUALIZATION is not set # CONFIG_IOSCHED_CFQ is not set # CONFIG_MQ_IOSCHED_DEADLINE is not set # CONFIG_MQ_IOSCHED_KYBER is not set # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=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_IPV6 is not set # CONFIG_NF_CONNTRACK_PROCFS is not set # CONFIG_NF_CT_PROTO_DCCP is not set # CONFIG_NF_CT_PROTO_SCTP is not set # CONFIG_NF_CT_PROTO_UDPLITE is not set CONFIG_IP_VS=y CONFIG_IP_VS_RR=y CONFIG_IP_VS_NFCT=y # CONFIG_BRIDGE_IGMP_SNOOPING is not set # CONFIG_WIRELESS is not set CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_VIRTIO_BLK=y CONFIG_NETDEVICES=y CONFIG_VIRTIO_NET=y # CONFIG_ETHERNET is not set # CONFIG_WLAN is not set # CONFIG_INPUT_KEYBOARD is not set # CONFIG_INPUT_MOUSE is not set # CONFIG_SERIO is not set CONFIG_VT_HW_CONSOLE_BINDING=y # CONFIG_DEVMEM is not set CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y # CONFIG_SERIAL_8250_LPSS is not set # CONFIG_SERIAL_8250_MID is not set # CONFIG_HW_RANDOM_INTEL is not set # CONFIG_HW_RANDOM_AMD is not set # CONFIG_HW_RANDOM_VIA is not set CONFIG_HW_RANDOM_VIRTIO=y # CONFIG_DEVPORT is not set # CONFIG_HWMON is not set # CONFIG_USB_SUPPORT is not set CONFIG_RTC_CLASS=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PCI_LEGACY is not set # CONFIG_X86_PLATFORM_DEVICES is not set # CONFIG_IOMMU_SUPPORT is not set CONFIG_EXT4_FS=y CONFIG_TMPFS=y # CONFIG_MISC_FILESYSTEMS is not set # CONFIG_NETWORK_FILESYSTEMS is not set CONFIG_SECURITYFS=y # CONFIG_CRYPTO_ECHAINIV is not set # CONFIG_CRYPTO_HW is not set # CONFIG_UNUSED_SYMBOLS is not set CONFIG_UNWINDER_FRAME_POINTER=y ================================================ FILE: support/testing/conf/docker-compose.yml ================================================ version: '3' services: busybox: image: "busybox:latest" command: httpd -f -h /www/ ports: - "80:80" volumes: - "/bin:/www" ================================================ FILE: support/testing/conf/f2fs-kernel-fragment.config ================================================ CONFIG_F2FS_FS=y CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_FS_XATTR=y CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y ================================================ FILE: support/testing/conf/grub2-efi.cfg ================================================ set root=(cd0) set prefix=/boot/grub ================================================ FILE: support/testing/conf/grub2.cfg ================================================ set default="0" set timeout="1" menuentry "Buildroot" { linux __KERNEL_PATH__ root=/dev/sr0 console=ttyS0,115200 initrd __INITRD_PATH__ } ================================================ FILE: support/testing/conf/isolinux.cfg ================================================ default 1 label 1 kernel __KERNEL_PATH__ initrd __INITRD_PATH__ append root=/dev/sr0 console=ttyS0,115200 ================================================ FILE: support/testing/conf/minimal-x86-qemu-kernel.config ================================================ CONFIG_SYSVIPC=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_SMP=y # CONFIG_RETPOLINE is not set 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_BLK_DEV_SR=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_ISO9660_FS=y CONFIG_ZISOFS=y CONFIG_JOLIET=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y ================================================ FILE: support/testing/conf/unittest.cfg ================================================ [unittest] plugins = nose2.plugins.mp [multiprocess] always-on = True ================================================ FILE: support/testing/infra/__init__.py ================================================ import os import re import sys import tempfile import subprocess from urllib.request import urlopen from urllib.error import HTTPError, URLError ARTIFACTS_URL = "http://autobuild.buildroot.net/artefacts/" BASE_DIR = os.path.realpath(os.path.join(os.path.dirname(__file__), "../../..")) def log_file_path(builddir, stage, logtofile=True): """Return path to log file""" return "{}-{}.log".format(builddir, stage) if logtofile else None def open_log_file(builddir, stage, logtofile=True): """ Open a file for logging and return its handler. If logtofile is True, returns sys.stdout. Otherwise opens a file with a suitable name in the build directory. """ return open(log_file_path(builddir, stage, logtofile), 'a+') if logtofile else sys.stdout def basepath(relpath=""): """Return the absolute path for a file or directory relative to the Buildroot top directory.""" return os.path.join(BASE_DIR, relpath) def filepath(relpath): return os.path.join(BASE_DIR, "support/testing", relpath) def download(dldir, filename): finalpath = os.path.join(dldir, filename) if os.path.exists(finalpath): return finalpath if not os.path.exists(dldir): os.makedirs(dldir) tmpfile = tempfile.mktemp(dir=dldir) print("Downloading to {}".format(tmpfile)) try: url_fh = urlopen(os.path.join(ARTIFACTS_URL, filename)) with open(tmpfile, "w+b") as tmpfile_fh: tmpfile_fh.write(url_fh.read()) except (HTTPError, URLError) as err: os.unlink(tmpfile) raise err print("Renaming from {} to {}".format(tmpfile, finalpath)) os.rename(tmpfile, finalpath) return finalpath def run_cmd_on_host(builddir, cmd): """Call subprocess.check_output and return the text output.""" out = subprocess.check_output(cmd, stderr=open(os.devnull, "w"), cwd=builddir, env={"LANG": "C"}, universal_newlines=True) return out def get_elf_arch_tag(builddir, prefix, fpath, tag): """ Runs the cross readelf on 'fpath', then extracts the value of tag 'tag'. Example: >>> get_elf_arch_tag('output', 'arm-none-linux-gnueabi-', 'bin/busybox', 'Tag_CPU_arch') v5TEJ >>> """ cmd = ["host/bin/{}-readelf".format(prefix), "-A", os.path.join("target", fpath)] out = run_cmd_on_host(builddir, cmd) regexp = re.compile(r"^ {}: (.*)$".format(tag)) for line in out.splitlines(): m = regexp.match(line) if not m: continue return m.group(1) return None def get_file_arch(builddir, prefix, fpath): return get_elf_arch_tag(builddir, prefix, fpath, "Tag_CPU_arch") def get_elf_prog_interpreter(builddir, prefix, fpath): """ Runs the cross readelf on 'fpath' to extract the program interpreter name and returns it. Example: >>> get_elf_prog_interpreter('br-tests/TestExternalToolchainLinaroArm', 'arm-linux-gnueabihf', 'bin/busybox') /lib/ld-linux-armhf.so.3 >>> """ cmd = ["host/bin/{}-readelf".format(prefix), "-l", os.path.join("target", fpath)] out = run_cmd_on_host(builddir, cmd) regexp = re.compile(r"^ *\[Requesting program interpreter: (.*)\]$") for line in out.splitlines(): m = regexp.match(line) if not m: continue return m.group(1) return None def img_round_power2(img): """ Rounds up the size of an image file to the next power of 2 """ sz = os.stat(img).st_size pow2 = 1 while pow2 < sz: pow2 = pow2 << 1 with open(img, 'ab') as f: f.truncate(pow2) ================================================ FILE: support/testing/infra/basetest.py ================================================ import unittest import os import datetime from infra.builder import Builder from infra.emulator import Emulator BASIC_TOOLCHAIN_CONFIG = \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs/armv5-eabi--uclibc--bleeding-edge-2018.11-1.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_8=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_14=y BR2_TOOLCHAIN_EXTERNAL_LOCALE=y BR2_TOOLCHAIN_HAS_THREADS_DEBUG=y BR2_TOOLCHAIN_EXTERNAL_CXX=y """ MINIMAL_CONFIG = \ """ BR2_INIT_NONE=y BR2_SYSTEM_BIN_SH_NONE=y # BR2_PACKAGE_BUSYBOX is not set # BR2_TARGET_ROOTFS_TAR is not set """ class BRConfigTest(unittest.TestCase): config = None br2_external = list() downloaddir = None outputdir = None logtofile = True keepbuilds = False jlevel = 0 timeout_multiplier = 1 def __init__(self, names): super(BRConfigTest, self).__init__(names) self.testname = self.__class__.__name__ self.builddir = self.outputdir and os.path.join(self.outputdir, self.testname) self.config += '\nBR2_DL_DIR="{}"\n'.format(self.downloaddir) self.config += "\nBR2_JLEVEL={}\n".format(self.jlevel) def show_msg(self, msg): print("{} {:40s} {}".format(datetime.datetime.now().strftime("%H:%M:%S"), self.testname, msg)) def setUp(self): self.show_msg("Starting") self.b = Builder(self.config, self.builddir, self.logtofile) if not self.keepbuilds: self.b.delete() if not self.b.is_finished(): self.b.configure(make_extra_opts=["BR2_EXTERNAL={}".format(":".join(self.br2_external))]) def tearDown(self): self.show_msg("Cleaning up") if self.b and not self.keepbuilds: self.b.delete() class BRTest(BRConfigTest): def __init__(self, names): super(BRTest, self).__init__(names) self.emulator = None def setUp(self): super(BRTest, self).setUp() if not self.b.is_finished(): self.show_msg("Building") self.b.build() self.show_msg("Building done") self.emulator = Emulator(self.builddir, self.downloaddir, self.logtofile, self.timeout_multiplier) def tearDown(self): if self.emulator: self.emulator.stop() super(BRTest, self).tearDown() # Run the given 'cmd' with a 'timeout' on the target and # assert that the command succeeded def assertRunOk(self, cmd, timeout=-1): _, exit_code = self.emulator.run(cmd, timeout) self.assertEqual(exit_code, 0) ================================================ FILE: support/testing/infra/builder.py ================================================ import os import shutil import subprocess import infra class Builder(object): def __init__(self, config, builddir, logtofile): self.config = '\n'.join([line.lstrip() for line in config.splitlines()]) + '\n' self.builddir = builddir self.logfile = infra.open_log_file(builddir, "build", logtofile) def is_defconfig_valid(self, configfile, defconfig): """Check if the .config is contains all lines present in the defconfig.""" with open(configfile) as configf: configlines = configf.readlines() defconfiglines = defconfig.split("\n") # Check that all the defconfig lines are still present for defconfigline in defconfiglines: if defconfigline + "\n" not in configlines: self.logfile.write("WARN: defconfig can't be used\n") self.logfile.write(" Missing: %s\n" % defconfigline.strip()) self.logfile.flush() return False return True def configure(self, make_extra_opts=[], make_extra_env={}): """Configure the build. make_extra_opts: a list of arguments to be passed to the make command. e.g. make_extra_opts=["BR2_EXTERNAL=/path"] make_extra_env: a dict of variables to be appended (or replaced) in the environment that calls make. e.g. make_extra_env={"BR2_DL_DIR": "/path"} """ if not os.path.isdir(self.builddir): os.makedirs(self.builddir) config_file = os.path.join(self.builddir, ".config") with open(config_file, "w+") as cf: cf.write(self.config) # dump the defconfig to the logfile for easy debugging self.logfile.write("> start defconfig\n" + self.config + "> end defconfig\n") self.logfile.flush() env = {"PATH": os.environ["PATH"]} env.update(make_extra_env) cmd = ["make", "O={}".format(self.builddir)] cmd += make_extra_opts cmd += ["olddefconfig"] ret = subprocess.call(cmd, stdout=self.logfile, stderr=self.logfile, cwd=infra.basepath(), env=env) if ret != 0: raise SystemError("Cannot olddefconfig") if not self.is_defconfig_valid(config_file, self.config): raise SystemError("The defconfig is not valid") def build(self, make_extra_opts=[], make_extra_env={}): """Perform the build. make_extra_opts: a list of arguments to be passed to the make command. It can include a make target. e.g. make_extra_opts=["foo-source"] make_extra_env: a dict of variables to be appended (or replaced) in the environment that calls make. e.g. make_extra_env={"BR2_DL_DIR": "/path"} """ env = {"PATH": os.environ["PATH"]} if "http_proxy" in os.environ: self.logfile.write("Using system proxy: " + os.environ["http_proxy"] + "\n") env['http_proxy'] = os.environ["http_proxy"] env['https_proxy'] = os.environ["http_proxy"] env.update(make_extra_env) cmd = ["make", "-C", self.builddir] cmd += make_extra_opts ret = subprocess.call(cmd, stdout=self.logfile, stderr=self.logfile, env=env) if ret != 0: raise SystemError("Build failed") open(self.stamp_path(), 'a').close() def stamp_path(self): return os.path.join(self.builddir, "build-done") def is_finished(self): return os.path.exists(self.stamp_path()) def delete(self): if os.path.exists(self.builddir): shutil.rmtree(self.builddir) ================================================ FILE: support/testing/infra/emulator.py ================================================ import pexpect import infra class Emulator(object): def __init__(self, builddir, downloaddir, logtofile, timeout_multiplier): self.qemu = None self.downloaddir = downloaddir self.logfile = infra.open_log_file(builddir, "run", logtofile) # We use elastic runners on the cloud to runs our tests. Those runners # can take a long time to run the emulator. Use a timeout multiplier # when running the tests to avoid sporadic failures. self.timeout_multiplier = timeout_multiplier # Start Qemu to boot the system # # arch: Qemu architecture to use # # kernel: path to the kernel image, or the special string # 'builtin'. 'builtin' means a pre-built kernel image will be # downloaded from ARTEFACTS_URL and suitable options are # automatically passed to qemu and added to the kernel cmdline. So # far only armv5, armv7 and i386 builtin kernels are available. # If None, then no kernel is used, and we assume a bootable device # will be specified. # # kernel_cmdline: array of kernel arguments to pass to Qemu -append option # # options: array of command line options to pass to Qemu # def boot(self, arch, kernel=None, kernel_cmdline=None, options=None): if arch in ["armv7", "armv5"]: qemu_arch = "arm" else: qemu_arch = arch qemu_cmd = ["qemu-system-{}".format(qemu_arch), "-serial", "stdio", "-display", "none", "-m", "256"] if options: qemu_cmd += options if kernel_cmdline is None: kernel_cmdline = [] if kernel: if kernel == "builtin": if arch in ["armv7", "armv5"]: kernel_cmdline.append("console=ttyAMA0") if arch == "armv7": kernel = infra.download(self.downloaddir, "kernel-vexpress-5.10.7") dtb = infra.download(self.downloaddir, "vexpress-v2p-ca9-5.10.7.dtb") qemu_cmd += ["-dtb", dtb] qemu_cmd += ["-M", "vexpress-a9"] elif arch == "armv5": kernel = infra.download(self.downloaddir, "kernel-versatile-5.10.7") dtb = infra.download(self.downloaddir, "versatile-pb-5.10.7.dtb") qemu_cmd += ["-dtb", dtb] qemu_cmd += ["-M", "versatilepb"] qemu_cmd += ["-device", "virtio-rng-pci"] qemu_cmd += ["-kernel", kernel] if kernel_cmdline: qemu_cmd += ["-append", " ".join(kernel_cmdline)] self.logfile.write("> starting qemu with '%s'\n" % " ".join(qemu_cmd)) self.qemu = pexpect.spawn(qemu_cmd[0], qemu_cmd[1:], timeout=5 * self.timeout_multiplier, encoding='utf-8', codec_errors='replace', env={"QEMU_AUDIO_DRV": "none"}) # We want only stdout into the log to avoid double echo self.qemu.logfile_read = self.logfile # Wait for the login prompt to appear, and then login as root with # the provided password, or no password if not specified. def login(self, password=None): # The login prompt can take some time to appear when running multiple # instances in parallel, so set the timeout to a large value index = self.qemu.expect(["buildroot login:", pexpect.TIMEOUT], timeout=60 * self.timeout_multiplier) if index != 0: self.logfile.write("==> System does not boot") raise SystemError("System does not boot") self.qemu.sendline("root") if password: self.qemu.expect("Password:") self.qemu.sendline(password) index = self.qemu.expect(["# ", pexpect.TIMEOUT]) if index != 0: raise SystemError("Cannot login") self.run("dmesg -n 1") # Prevent the shell from wrapping the commands at 80 columns. self.run("stty columns 29999") # Run the given 'cmd' with a 'timeout' on the target # return a tuple (output, exit_code) def run(self, cmd, timeout=-1): self.qemu.sendline(cmd) if timeout != -1: timeout *= self.timeout_multiplier self.qemu.expect("# ", timeout=timeout) # Remove double carriage return from qemu stdout so str.splitlines() # works as expected. output = self.qemu.before.replace("\r\r", "\r").splitlines()[1:] self.qemu.sendline("echo $?") self.qemu.expect("# ") exit_code = self.qemu.before.splitlines()[2] exit_code = int(exit_code) return output, exit_code def stop(self): if self.qemu is None: return self.qemu.terminate(force=True) ================================================ FILE: support/testing/run-tests ================================================ #!/usr/bin/env python3 import argparse import multiprocessing import os import sys import nose2 from infra.basetest import BRConfigTest def main(): parser = argparse.ArgumentParser(description='Run Buildroot tests') parser.add_argument('testname', nargs='*', help='list of test cases to execute') parser.add_argument('-l', '--list', action='store_true', help='list of available test cases') parser.add_argument('-a', '--all', action='store_true', help='execute all test cases') parser.add_argument('-s', '--stdout', action='store_true', help='log everything to stdout') parser.add_argument('-o', '--output', help='output directory') parser.add_argument('-d', '--download', help='download directory') parser.add_argument('-k', '--keep', help='keep build directories', action='store_true') parser.add_argument('-t', '--testcases', type=int, default=1, help='number of testcases to run simultaneously') parser.add_argument('-j', '--jlevel', type=int, help='BR2_JLEVEL to use for each testcase') parser.add_argument('--timeout-multiplier', type=int, default=1, help='increase timeouts (useful for slow machines)') args = parser.parse_args() script_path = os.path.realpath(__file__) test_dir = os.path.dirname(script_path) if args.stdout: BRConfigTest.logtofile = False if args.list: print("List of tests") nose2.discover(argv=[script_path, "-s", test_dir, "-v", "--collect-only"], plugins=["nose2.plugins.collect"]) return 0 if args.download is None: args.download = os.getenv("BR2_DL_DIR") if args.download is None: print("Missing download directory, please use -d/--download") print("") parser.print_help() return 1 BRConfigTest.downloaddir = os.path.abspath(args.download) if args.output is None: print("Missing output directory, please use -o/--output") print("") parser.print_help() return 1 if not os.path.exists(args.output): os.mkdir(args.output) BRConfigTest.outputdir = os.path.abspath(args.output) if args.all is False and not args.testname: print("No test selected") print("") parser.print_help() return 1 BRConfigTest.keepbuilds = args.keep if args.testcases != 1: if args.testcases < 1: print("Invalid number of testcases to run simultaneously") print("") parser.print_help() return 1 # same default BR2_JLEVEL as package/Makefile.in br2_jlevel = 1 + multiprocessing.cpu_count() each_testcase = br2_jlevel / args.testcases if each_testcase < 1: each_testcase = 1 BRConfigTest.jlevel = each_testcase if args.jlevel: if args.jlevel < 0: print("Invalid BR2_JLEVEL to use for each testcase") print("") parser.print_help() return 1 # the user can override the auto calculated value BRConfigTest.jlevel = args.jlevel if args.timeout_multiplier < 1: print("Invalid multiplier for timeout values") print("") parser.print_help() return 1 BRConfigTest.timeout_multiplier = args.timeout_multiplier nose2_args = ["-v", "-N", str(args.testcases), "-s", test_dir, "-c", os.path.join(test_dir, "conf/unittest.cfg")] if args.testname: nose2_args += args.testname nose2.discover(argv=nose2_args) if __name__ == "__main__": sys.exit(main()) ================================================ FILE: support/testing/tests/__init__.py ================================================ ================================================ FILE: support/testing/tests/boot/__init__.py ================================================ ================================================ FILE: support/testing/tests/boot/test_atf.py ================================================ import infra.basetest class TestATFVexpress(infra.basetest.BRTest): config = \ """ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64=y BR2_TARGET_ARM_TRUSTED_FIRMWARE=y BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/ARM-software/arm-trusted-firmware.git" BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v2.5" BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="juno" BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33=y BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="vexpress_aemv8a_juno" BR2_TARGET_UBOOT_CUSTOM_VERSION=y BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07" BR2_TARGET_VEXPRESS_FIRMWARE=y """ def test_run(self): pass class TestATFAllwinner(infra.basetest.BRTest): config = \ """ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64=y BR2_TARGET_ARM_TRUSTED_FIRMWARE=y BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.5" BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50i_a64" # BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP is not set BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.04" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="bananapi_m64" BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_NEEDS_PYTHON3=y BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="SCP=/dev/null" """ def test_run(self): pass ================================================ FILE: support/testing/tests/boot/test_edk2.py ================================================ import os import infra.basetest class TestEdk2(infra.basetest.BRTest): config = \ """ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y # BR2_TARGET_ROOTFS_TAR is not set BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/aarch64-sbsa/assemble-flash-images support/scripts/genimage.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/qemu/aarch64-sbsa/genimage.cfg" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.34" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-sbsa/linux.config" BR2_TARGET_EDK2=y BR2_TARGET_EDK2_PLATFORM_QEMU_SBSA=y BR2_TARGET_GRUB2=y BR2_TARGET_GRUB2_ARM64_EFI=y BR2_TARGET_ARM_TRUSTED_FIRMWARE=y BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="qemu_sbsa" BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_MTOOLS=y """ def test_run(self): hda = os.path.join(self.builddir, "images", "disk.img") flash0 = os.path.join(self.builddir, "images", "SBSA_FLASH0.fd") flash1 = os.path.join(self.builddir, "images", "SBSA_FLASH1.fd") self.emulator.boot(arch="aarch64", options=["-M", "sbsa-ref", "-cpu", "cortex-a57", "-m", "512M", "-pflash", flash0, "-pflash", flash1, "-hda", hda]) self.emulator.login() ================================================ FILE: support/testing/tests/boot/test_syslinux.py ================================================ import infra.basetest class TestSysLinuxBase(infra.basetest.BRTest): x86_toolchain_config = \ """ BR2_x86_i686=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs/x86-i686--glibc--bleeding-edge-2018.11-1.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_8=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_14=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y BR2_TOOLCHAIN_EXTERNAL_CXX=y """ x86_64_toolchain_config = \ """ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs/x86-64-core-i7--glibc--stable-2018.11-1.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_7=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1=y BR2_TOOLCHAIN_EXTERNAL_CXX=y BR2_TOOLCHAIN_EXTERNAL_HAS_SSP=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y """ syslinux_legacy_config = \ """ BR2_TARGET_SYSLINUX=y BR2_TARGET_SYSLINUX_ISOLINUX=y BR2_TARGET_SYSLINUX_PXELINUX=y BR2_TARGET_SYSLINUX_MBR=y """ syslinux_efi_config = \ """ BR2_TARGET_SYSLINUX=y BR2_TARGET_SYSLINUX_EFI=y """ class TestSysLinuxX86LegacyBios(TestSysLinuxBase): config = \ TestSysLinuxBase.x86_toolchain_config + \ infra.basetest.MINIMAL_CONFIG + \ TestSysLinuxBase.syslinux_legacy_config def test_run(self): pass class TestSysLinuxX86EFI(TestSysLinuxBase): config = \ TestSysLinuxBase.x86_toolchain_config + \ infra.basetest.MINIMAL_CONFIG + \ TestSysLinuxBase.syslinux_efi_config def test_run(self): pass class TestSysLinuxX86_64LegacyBios(TestSysLinuxBase): config = \ TestSysLinuxBase.x86_64_toolchain_config + \ infra.basetest.MINIMAL_CONFIG + \ TestSysLinuxBase.syslinux_legacy_config def test_run(self): pass class TestSysLinuxX86_64EFI(TestSysLinuxBase): config = \ TestSysLinuxBase.x86_64_toolchain_config + \ infra.basetest.MINIMAL_CONFIG + \ TestSysLinuxBase.syslinux_efi_config def test_run(self): pass ================================================ FILE: support/testing/tests/core/__init__.py ================================================ ================================================ FILE: support/testing/tests/core/br2-external/detect-bad-arch/Config.in ================================================ source "$BR2_EXTERNAL_DETECT_BAD_ARCH_PATH/package/detect-bad-arch/Config.in" ================================================ FILE: support/testing/tests/core/br2-external/detect-bad-arch/external.desc ================================================ name: DETECT_BAD_ARCH ================================================ FILE: support/testing/tests/core/br2-external/detect-bad-arch/external.mk ================================================ include $(sort $(wildcard $(BR2_EXTERNAL_DETECT_BAD_ARCH_PATH)/package/*/*.mk)) ================================================ FILE: support/testing/tests/core/br2-external/detect-bad-arch/package/detect-bad-arch/Config.in ================================================ config BR2_PACKAGE_DETECT_BAD_ARCH bool default y ================================================ FILE: support/testing/tests/core/br2-external/detect-bad-arch/package/detect-bad-arch/detect-bad-arch.mk ================================================ ################################################################################ # # detect-bad-arch # ################################################################################ define DETECT_BAD_ARCH_BUILD_CMDS echo "int main(void) { return 0; }" | $(HOSTCC) -x c -o $(@D)/foo - endef define DETECT_BAD_ARCH_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/foo $(TARGET_DIR)/usr/bin/foo endef $(eval $(generic-package)) ================================================ FILE: support/testing/tests/core/cpeid-br2-external/Config.in ================================================ ================================================ FILE: support/testing/tests/core/cpeid-br2-external/external.desc ================================================ name: CPE_ID ================================================ FILE: support/testing/tests/core/cpeid-br2-external/external.mk ================================================ include $(sort $(wildcard $(BR2_EXTERNAL_CPE_ID_PATH)/package/*/*.mk)) ================================================ FILE: support/testing/tests/core/cpeid-br2-external/package/cpe-id-pkg1/cpe-id-pkg1.mk ================================================ CPE_ID_PKG1_VERSION = 42 $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: support/testing/tests/core/cpeid-br2-external/package/cpe-id-pkg2/cpe-id-pkg2.mk ================================================ CPE_ID_PKG2_VERSION = 67 $(eval $(host-generic-package)) ================================================ FILE: support/testing/tests/core/cpeid-br2-external/package/cpe-id-pkg3/cpe-id-pkg3.mk ================================================ CPE_ID_PKG3_VERSION = 67 CPE_ID_PKG3_CPE_ID_VENDOR = cpe-id-pkg3_project $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: support/testing/tests/core/cpeid-br2-external/package/cpe-id-pkg4/cpe-id-pkg4.mk ================================================ CPE_ID_PKG4_VERSION = 67 CPE_ID_PKG4_CPE_ID_VENDOR = foo CPE_ID_PKG4_CPE_ID_PRODUCT = bar CPE_ID_PKG4_CPE_ID_VERSION = 42 CPE_ID_PKG4_CPE_ID_UPDATE = b2 CPE_ID_PKG4_CPE_ID_PREFIX = cpe:2.4:a $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: support/testing/tests/core/cpeid-br2-external/package/cpe-id-pkg5/cpe-id-pkg5.mk ================================================ CPE_ID_PKG5_VERSION = 57 CPE_ID_PKG5_CPE_ID_VENDOR = foo CPE_ID_PKG5_CPE_ID_PRODUCT = bar CPE_ID_PKG5_CPE_ID_VERSION = 42 CPE_ID_PKG5_CPE_ID_UPDATE = b2 CPE_ID_PKG5_CPE_ID_PREFIX = cpe:2.4:a HOST_CPE_ID_PKG5_CPE_ID_VENDOR = baz HOST_CPE_ID_PKG5_CPE_ID_PRODUCT = fuz HOST_CPE_ID_PKG5_CPE_ID_VERSION = 43 HOST_CPE_ID_PKG5_CPE_ID_UPDATE = b3 HOST_CPE_ID_PKG5_CPE_ID_PREFIX = cpe:2.5:a $(eval $(generic-package)) $(eval $(host-generic-package)) ================================================ FILE: support/testing/tests/core/device_table2.txt ================================================ # /usr/sbin/getcap f 755 0 0 - - - - - |xattr cap_sys_nice+eip # leading spaces are ignored for xattr |xattr cap_kill+eip # leading tabs are ignored for xattr |xattr cap_sys_time+eip ================================================ FILE: support/testing/tests/core/post-build.sh ================================================ #!/bin/sh ( printf "arg1,%s\n" "${1}" printf "arg2,%s\n" "${2}" printf "arg3,%s\n" "${3}" printf "TARGET_DIR,%s\n" "${TARGET_DIR}" printf "BUILD_DIR,%s\n" "${BUILD_DIR}" printf "HOST_DIR,%s\n" "${HOST_DIR}" printf "STAGING_DIR,%s\n" "${STAGING_DIR}" printf "BINARIES_DIR,%s\n" "${BINARIES_DIR}" printf "BR2_CONFIG,%s\n" "${BR2_CONFIG}" ) > ${BUILD_DIR}/$(basename "${0}" .sh).log ================================================ FILE: support/testing/tests/core/rootfs-overlay1/test-file1 ================================================ foobar ================================================ FILE: support/testing/tests/core/rootfs-overlay2/etc/test-file2 ================================================ barfoo ================================================ FILE: support/testing/tests/core/squashfs-xattr-kernel.config ================================================ CONFIG_SQUASHFS_XATTR=y ================================================ FILE: support/testing/tests/core/test_bad_arch.py ================================================ import infra import infra.basetest class DetectBadArchTest(infra.basetest.BRConfigTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + infra.basetest.MINIMAL_CONFIG br2_external = [infra.filepath("tests/core/br2-external/detect-bad-arch")] def test_run(self): with self.assertRaises(SystemError): self.b.build() logf_path = infra.log_file_path(self.b.builddir, "build", infra.basetest.BRConfigTest.logtofile) if logf_path: s = 'ERROR: architecture for "/usr/bin/foo" is' with open(logf_path, "r") as f: lines = [line for line in f.readlines() if line.startswith(s)] self.assertEqual(len(lines), 1) ================================================ FILE: support/testing/tests/core/test_cpeid.py ================================================ import infra import subprocess import json class CpeIdTest(infra.basetest.BRConfigTest): config = "" br2_external = [infra.filepath("tests/core/cpeid-br2-external")] def get_vars(self, var): cmd = ["make", "--no-print-directory", "-C", self.b.builddir, "VARS=%s%%" % var, "printvars"] lines = subprocess.check_output(cmd).splitlines() return dict([str(x, "utf-8").split("=") for x in lines]) def get_json(self, pkg): cmd = ["make", "--no-print-directory", "-C", self.b.builddir, "%s-show-info" % pkg] return json.loads(subprocess.check_output(cmd)) def test_pkg1(self): # this package has no CPE ID information, it should not have # any CPE_ID variable defined. pkg_vars = self.get_vars("CPE_ID_PKG1_CPE_ID") cpe_vars = ["CPE_ID_VALID", "CPE_ID_PRODUCT", "CPE_ID_VERSION", "CPE_ID_UPDATE", "CPE_ID_PREFIX", "CPE_ID"] for v in cpe_vars: self.assertNotIn("CPE_ID_PKG1_%s" % v, pkg_vars) pkg_json = self.get_json("cpe-id-pkg1") self.assertNotIn("cpe-id", pkg_json['cpe-id-pkg1']) pkg_vars = self.get_vars("HOST_CPE_ID_PKG1_CPE_ID") for v in cpe_vars: self.assertNotIn("HOST_CPE_ID_PKG1_%s" % v, pkg_vars) pkg_json = self.get_json("host-cpe-id-pkg1") self.assertNotIn("cpe-id", pkg_json['host-cpe-id-pkg1']) def test_pkg2(self): # this package has no CPE ID information, it should not have # any CPE_ID variable defined. pkg_vars = self.get_vars("HOST_CPE_ID_PKG2_CPE_ID") cpe_vars = ["CPE_ID_VALID", "CPE_ID_PRODUCT", "CPE_ID_VERSION", "CPE_ID_UPDATE", "CPE_ID_PREFIX", "CPE_ID"] for v in cpe_vars: self.assertNotIn("HOST_CPE_ID_PKG2_%s" % v, pkg_vars) pkg_json = self.get_json("host-cpe-id-pkg2") self.assertNotIn("cpe-id", pkg_json['host-cpe-id-pkg2']) def test_pkg3(self): # this package has just _CPE_ID_VENDOR defined, so verify # it has the default CPE_ID value, and that inheritance of the # values for the host package is working pkg_vars = self.get_vars("CPE_ID_PKG3_CPE_ID") self.assertEqual(pkg_vars["CPE_ID_PKG3_CPE_ID"], "cpe:2.3:a:cpe-id-pkg3_project:cpe-id-pkg3:67:*:*:*:*:*:*:*") self.assertEqual(pkg_vars["CPE_ID_PKG3_CPE_ID_VALID"], "YES") pkg_json = self.get_json("cpe-id-pkg3") self.assertEqual(pkg_json['cpe-id-pkg3']['cpe-id'], "cpe:2.3:a:cpe-id-pkg3_project:cpe-id-pkg3:67:*:*:*:*:*:*:*") pkg_vars = self.get_vars("HOST_CPE_ID_PKG3_CPE_ID") self.assertEqual(pkg_vars["HOST_CPE_ID_PKG3_CPE_ID"], "cpe:2.3:a:cpe-id-pkg3_project:cpe-id-pkg3:67:*:*:*:*:*:*:*") self.assertEqual(pkg_vars["HOST_CPE_ID_PKG3_CPE_ID_VALID"], "YES") pkg_json = self.get_json("host-cpe-id-pkg3") self.assertEqual(pkg_json['host-cpe-id-pkg3']['cpe-id'], "cpe:2.3:a:cpe-id-pkg3_project:cpe-id-pkg3:67:*:*:*:*:*:*:*") def test_pkg4(self): # this package defines # _CPE_ID_{VENDOR,PRODUCT,VERSION,UPDATE,PREFIX}, # make sure we get the computed _CPE_ID, and that it is # inherited by the host variant pkg_vars = self.get_vars("CPE_ID_PKG4_CPE_ID") self.assertEqual(pkg_vars["CPE_ID_PKG4_CPE_ID"], "cpe:2.4:a:foo:bar:42:b2:*:*:*:*:*:*") self.assertEqual(pkg_vars["CPE_ID_PKG4_CPE_ID_VALID"], "YES") pkg_json = self.get_json("cpe-id-pkg4") self.assertEqual(pkg_json['cpe-id-pkg4']['cpe-id'], "cpe:2.4:a:foo:bar:42:b2:*:*:*:*:*:*") pkg_vars = self.get_vars("HOST_CPE_ID_PKG4_CPE_ID") self.assertEqual(pkg_vars["HOST_CPE_ID_PKG4_CPE_ID"], "cpe:2.4:a:foo:bar:42:b2:*:*:*:*:*:*") self.assertEqual(pkg_vars["HOST_CPE_ID_PKG4_CPE_ID_VALID"], "YES") pkg_json = self.get_json("host-cpe-id-pkg4") self.assertEqual(pkg_json['host-cpe-id-pkg4']['cpe-id'], "cpe:2.4:a:foo:bar:42:b2:*:*:*:*:*:*") def test_pkg5(self): # this package defines # _CPE_ID_{VENDOR,PRODUCT,VERSION,UPDATE,PREFIX} and # HOST__CPE_ID_{VENDOR,PRODUCT,VERSION,UPDATE,PREFIX} # separately, with different values. Make sure we get the # right _CPE_ID and HOST__CPE_ID values. pkg_vars = self.get_vars("CPE_ID_PKG5_CPE_ID") self.assertEqual(pkg_vars["CPE_ID_PKG5_CPE_ID"], "cpe:2.4:a:foo:bar:42:b2:*:*:*:*:*:*") self.assertEqual(pkg_vars["CPE_ID_PKG5_CPE_ID_VALID"], "YES") pkg_json = self.get_json("cpe-id-pkg5") self.assertEqual(pkg_json['cpe-id-pkg5']['cpe-id'], "cpe:2.4:a:foo:bar:42:b2:*:*:*:*:*:*") pkg_vars = self.get_vars("HOST_CPE_ID_PKG5_CPE_ID") self.assertEqual(pkg_vars["HOST_CPE_ID_PKG5_CPE_ID"], "cpe:2.5:a:baz:fuz:43:b3:*:*:*:*:*:*") self.assertEqual(pkg_vars["HOST_CPE_ID_PKG5_CPE_ID_VALID"], "YES") pkg_json = self.get_json("host-cpe-id-pkg5") self.assertEqual(pkg_json['host-cpe-id-pkg5']['cpe-id'], "cpe:2.5:a:baz:fuz:43:b3:*:*:*:*:*:*") ================================================ FILE: support/testing/tests/core/test_file_capabilities.py ================================================ import os import infra.basetest class TestFileCapabilities(infra.basetest.BRTest): config = \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt {}" BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES=y BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.204" BR2_LINUX_KERNEL_DEFCONFIG="vexpress" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="{}" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="vexpress-v2p-ca9" BR2_PACKAGE_LIBCAP=y BR2_PACKAGE_LIBCAP_TOOLS=y BR2_TARGET_ROOTFS_SQUASHFS=y # BR2_TARGET_ROOTFS_TAR is not set """.format(infra.filepath("tests/core/device_table2.txt"), infra.filepath("tests/core/squashfs-xattr-kernel.config")) def test_run(self): img = os.path.join(self.builddir, "images", "rootfs.squashfs") infra.img_round_power2(img) self.emulator.boot(arch="armv7", kernel=os.path.join(self.builddir, "images", "zImage"), kernel_cmdline=["root=/dev/mmcblk0", "rootfstype=squashfs"], options=["-drive", "file={},if=sd,format=raw".format(img), "-M", "vexpress-a9", "-dtb", os.path.join(self.builddir, "images", "vexpress-v2p-ca9.dtb")]) self.emulator.login() cmd = "getcap -v /usr/sbin/getcap" output, _ = self.emulator.run(cmd) self.assertIn("cap_kill", output[0]) self.assertIn("cap_sys_nice", output[0]) self.assertIn("cap_sys_time", output[0]) self.assertIn("=eip", output[0]) ================================================ FILE: support/testing/tests/core/test_hardening.py ================================================ import os import json import infra.basetest class TestHardeningBase(infra.basetest.BRTest): config = \ """ BR2_powerpc64=y BR2_powerpc_e5500=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e5500/tarballs/powerpc64-e5500--glibc--stable-2018.02-2.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_6=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y BR2_TOOLCHAIN_EXTERNAL_CXX=y BR2_PACKAGE_LIGHTTPD=y BR2_PACKAGE_HOST_CHECKSEC=y # BR2_TARGET_ROOTFS_TAR is not set """ checksec_files = ["usr/sbin/lighttpd", "bin/busybox"] def checksec_run(self, target_file): filepath = os.path.join(self.builddir, "target", target_file) cmd = ["host/bin/checksec", "--format=json", "--file={}".format(filepath)] # Checksec is being used for elf file analysis only. There are no # assumptions of target/run-time checks as part of this testing. ret = infra.run_cmd_on_host(self.builddir, cmd) return json.loads(ret) class TestRelro(TestHardeningBase): config = TestHardeningBase.config + \ """ BR2_RELRO_FULL=y """ def test_run(self): for f in self.checksec_files: out = self.checksec_run(f) filepath = os.path.join(self.builddir, "target", f) self.assertEqual(out[filepath]["relro"], "full") self.assertEqual(out[filepath]["pie"], "yes") class TestRelroPartial(TestHardeningBase): config = TestHardeningBase.config + \ """ BR2_RELRO_PARTIAL=y # BR2_PIC_PIE is not set """ def test_run(self): for f in self.checksec_files: out = self.checksec_run(f) filepath = os.path.join(self.builddir, "target", f) self.assertEqual(out[filepath]["relro"], "partial") self.assertEqual(out[filepath]["pie"], "no") class TestSspNone(TestHardeningBase): config = TestHardeningBase.config + \ """ BR2_SSP_NONE=y """ def test_run(self): for f in self.checksec_files: out = self.checksec_run(f) filepath = os.path.join(self.builddir, "target", f) self.assertEqual(out[filepath]["canary"], "no") class TestSspStrong(TestHardeningBase): config = TestHardeningBase.config + \ """ BR2_SSP_STRONG=y """ def test_run(self): for f in self.checksec_files: out = self.checksec_run(f) filepath = os.path.join(self.builddir, "target", f) self.assertEqual(out[filepath]["canary"], "yes") class TestFortifyNone(TestHardeningBase): config = TestHardeningBase.config + \ """ BR2_FORTIFY_SOURCE_NONE=y """ def test_run(self): for f in self.checksec_files: out = self.checksec_run(f) filepath = os.path.join(self.builddir, "target", f) self.assertEqual(out[filepath]["fortified"], "0") class TestFortifyConserv(TestHardeningBase): config = TestHardeningBase.config + \ """ BR2_FORTIFY_SOURCE_1=y """ def test_run(self): for f in self.checksec_files: out = self.checksec_run(f) filepath = os.path.join(self.builddir, "target", f) self.assertNotEqual(out[filepath]["fortified"], "0") ================================================ FILE: support/testing/tests/core/test_post_scripts.py ================================================ import os import csv import infra.basetest class TestPostScripts(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_INIT_NONE=y BR2_SYSTEM_BIN_SH_NONE=y # BR2_PACKAGE_BUSYBOX is not set BR2_ROOTFS_POST_BUILD_SCRIPT="{}" BR2_ROOTFS_POST_FAKEROOT_SCRIPT="{}" BR2_ROOTFS_POST_IMAGE_SCRIPT="{}" BR2_ROOTFS_POST_SCRIPT_ARGS="foobar baz" """.format(infra.filepath("tests/core/post-build.sh"), infra.filepath("tests/core/post-fakeroot.sh"), infra.filepath("tests/core/post-image.sh")) def check_post_log_file(self, f, what, target_dir): lines = {} with open(os.path.join(self.builddir, "build", f), newline='') as csvfile: r = csv.reader(csvfile, delimiter=',') for row in r: lines[row[0]] = row[1] self.assertEqual(lines["arg1"], what) self.assertEqual(lines["arg2"], "foobar") self.assertEqual(lines["arg3"], "baz") self.assertEqual(lines["TARGET_DIR"], target_dir) self.assertEqual(lines["BUILD_DIR"], os.path.join(self.builddir, "build")) self.assertEqual(lines["HOST_DIR"], os.path.join(self.builddir, "host")) staging = os.readlink(os.path.join(self.builddir, "staging")) self.assertEqual(lines["STAGING_DIR"], staging) self.assertEqual(lines["BINARIES_DIR"], os.path.join(self.builddir, "images")) self.assertEqual(lines["BR2_CONFIG"], os.path.join(self.builddir, ".config")) def test_run(self): self.check_post_log_file("post-build.log", os.path.join(self.builddir, "target"), os.path.join(self.builddir, "target")) self.check_post_log_file("post-fakeroot.log", os.path.join(self.builddir, "build/buildroot-fs/tar/target"), os.path.join(self.builddir, "build/buildroot-fs/tar/target")) self.check_post_log_file("post-image.log", os.path.join(self.builddir, "images"), os.path.join(self.builddir, "target")) ================================================ FILE: support/testing/tests/core/test_root_password.py ================================================ import os import infra.basetest from crypt import crypt class TestRootPassword(infra.basetest.BRTest): password = "foo" config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ENABLE_ROOT_LOGIN=y BR2_TARGET_GENERIC_ROOT_PASSWD="{}" """.format(password) def test_run(self): # 1. Test by looking hash in the /etc/shadow shadow = os.path.join(self.builddir, "target", "etc", "shadow") with open(shadow, "r") as f: users = f.readlines() for user in users: s = user.split(":") n, h = s[0], s[1] if n == "root": # Fail if the account is disabled or no password is required self.assertTrue(h not in ["", "*"]) # Fail if the hash isn't right self.assertEqual(crypt(self.password, h), h) # 2. Test by attempting to login cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") try: self.emulator.boot(arch="armv7", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login(self.password) except SystemError: self.fail("Unable to login with the password") ================================================ FILE: support/testing/tests/core/test_rootfs_overlay.py ================================================ import os import subprocess import infra.basetest def compare_file(file1, file2): return subprocess.call(["cmp", file1, file2]) class TestRootfsOverlay(infra.basetest.BRTest): rootfs_overlay_path = infra.filepath("tests/core/rootfs-overlay") config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ infra.basetest.MINIMAL_CONFIG + \ """ BR2_ROOTFS_OVERLAY="{0}1 {0}2" """.format(rootfs_overlay_path) def test_run(self): target_file = os.path.join(self.builddir, "target", "test-file1") overlay_file = "{}1/test-file1".format(self.rootfs_overlay_path) ret = compare_file(overlay_file, target_file) self.assertEqual(ret, 0) target_file = os.path.join(self.builddir, "target", "etc", "test-file2") overlay_file = "{}2/etc/test-file2".format(self.rootfs_overlay_path) ret = compare_file(overlay_file, target_file) self.assertEqual(ret, 0) ================================================ FILE: support/testing/tests/core/test_selinux/br2_external/Config.in ================================================ source "$BR2_EXTERNAL_SELINUX_PATH/package/selinux-test/Config.in" ================================================ FILE: support/testing/tests/core/test_selinux/br2_external/external.desc ================================================ name: SELINUX ================================================ FILE: support/testing/tests/core/test_selinux/br2_external/external.mk ================================================ include $(sort $(wildcard $(BR2_EXTERNAL_SELINUX_PATH)/package/*/*.mk)) ================================================ FILE: support/testing/tests/core/test_selinux/br2_external/package/selinux-test/Config.in ================================================ config BR2_PACKAGE_SELINUX_TEST bool "SELinux test package" help Test package for SELinux Buildroot helpers. ================================================ FILE: support/testing/tests/core/test_selinux/br2_external/package/selinux-test/selinux/buildroot.fc ================================================ ================================================ FILE: support/testing/tests/core/test_selinux/br2_external/package/selinux-test/selinux/buildroot.if ================================================ ## Buildroot rules ================================================ FILE: support/testing/tests/core/test_selinux/br2_external/package/selinux-test/selinux/buildroot.te ================================================ policy_module(buildroot, 1.0.0) type buildroot_test_t; ================================================ FILE: support/testing/tests/core/test_selinux/br2_external/package/selinux-test/selinux-test.mk ================================================ ################################################################################ # # SELinux test package # ################################################################################ SELINUX_TEST_SELINUX_MODULES = ntp tor $(eval $(generic-package)) ================================================ FILE: support/testing/tests/core/test_selinux/extra_modules/buildroot.fc ================================================ ================================================ FILE: support/testing/tests/core/test_selinux/extra_modules/buildroot.if ================================================ ## Buildroot rules ================================================ FILE: support/testing/tests/core/test_selinux/extra_modules/buildroot.te ================================================ policy_module(buildroot, 1.0.0) type buildroot_test_t; ================================================ FILE: support/testing/tests/core/test_selinux.py ================================================ import os import infra.basetest class TestSELinuxInfra(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG +\ """ BR2_PACKAGE_REFPOLICY=y BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_SETOOLS=y BR2_TARGET_ROOTFS_CPIO=y """ def base_test_run(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() class TestSELinuxExtraModules(TestSELinuxInfra): config = TestSELinuxInfra.config + \ """ BR2_REFPOLICY_EXTRA_MODULES="ntp tor" """ def test_run(self): TestSELinuxInfra.base_test_run(self) out, ret = self.emulator.run("seinfo -t ntpd_t", 15) self.assertEqual(ret, 0) self.assertEqual(out[2].strip(), "ntpd_t") out, ret = self.emulator.run("seinfo -t tor_t", 15) self.assertEqual(ret, 0) self.assertEqual(out[2].strip(), "tor_t") class TestSELinuxExtraModulesDirs(TestSELinuxInfra): config = TestSELinuxInfra.config + \ """ BR2_REFPOLICY_EXTRA_MODULES_DIRS="{}" """.format(infra.filepath("tests/core/test_selinux/extra_modules")) def test_run(self): TestSELinuxInfra.base_test_run(self) out, ret = self.emulator.run("seinfo -t buildroot_test_t", 15) self.assertEqual(ret, 0) self.assertEqual(out[2].strip(), "buildroot_test_t") class TestSELinuxCustomGit(TestSELinuxInfra): config = TestSELinuxInfra.config + \ """ BR2_PACKAGE_REFPOLICY_CUSTOM_GIT=y BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_URL="https://github.com/SELinuxProject/refpolicy.git" BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_VERSION="RELEASE_2_20200818" """ def test_run(self): pass class TestSELinuxPackage(TestSELinuxInfra): br2_external = [infra.filepath("tests/core/test_selinux/br2_external")] config = TestSELinuxInfra.config + \ """ BR2_PACKAGE_SELINUX_TEST=y """ def test_run(self): TestSELinuxInfra.base_test_run(self) out, ret = self.emulator.run("seinfo -t ntpd_t", 15) self.assertEqual(ret, 0) self.assertEqual(out[2].strip(), "ntpd_t") out, ret = self.emulator.run("seinfo -t tor_t", 15) self.assertEqual(ret, 0) self.assertEqual(out[2].strip(), "tor_t") out, ret = self.emulator.run("seinfo -t buildroot_test_t", 15) self.assertEqual(ret, 0) self.assertEqual(out[2].strip(), "buildroot_test_t") ================================================ FILE: support/testing/tests/core/test_timezone.py ================================================ import os import infra.basetest def boot_armv5_cpio(emulator, builddir): img = os.path.join(builddir, "images", "rootfs.cpio") emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", img]) emulator.login() class TestNoTimezone(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ # BR2_TARGET_TZ_INFO is not set BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): boot_armv5_cpio(self.emulator, self.builddir) tz, _ = self.emulator.run("TZ=UTC date +%Z") self.assertEqual(tz[0].strip(), "UTC") tz, _ = self.emulator.run("TZ=America/Los_Angeles date +%Z") self.assertEqual(tz[0].strip(), "UTC") class TestGlibcAllTimezone(infra.basetest.BRTest): config = \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_TZ_INFO=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): boot_armv5_cpio(self.emulator, self.builddir) tz, _ = self.emulator.run("date +%Z") self.assertEqual(tz[0].strip(), "UTC") tz, _ = self.emulator.run("TZ=UTC date +%Z") self.assertEqual(tz[0].strip(), "UTC") tz, _ = self.emulator.run("TZ=America/Los_Angeles date +%Z") self.assertEqual(tz[0].strip(), "PST") tz, _ = self.emulator.run("TZ=Europe/Paris date +%Z") self.assertEqual(tz[0].strip(), "CET") class TestGlibcNonDefaultLimitedTimezone(infra.basetest.BRTest): config = \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_TZ_INFO=y BR2_TARGET_TZ_ZONELIST="northamerica" BR2_TARGET_LOCALTIME="America/New_York" BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): boot_armv5_cpio(self.emulator, self.builddir) tz, _ = self.emulator.run("date +%Z") self.assertEqual(tz[0].strip(), "EST") tz, _ = self.emulator.run("TZ=UTC date +%Z") self.assertEqual(tz[0].strip(), "UTC") tz, _ = self.emulator.run("TZ=America/Los_Angeles date +%Z") self.assertEqual(tz[0].strip(), "PST") tz, _ = self.emulator.run("TZ=Europe/Paris date +%Z") self.assertEqual(tz[0].strip(), "Europe") ================================================ FILE: support/testing/tests/download/__init__.py ================================================ ================================================ FILE: support/testing/tests/download/br2-external/git-hash/Config.in ================================================ ================================================ FILE: support/testing/tests/download/br2-external/git-hash/external.desc ================================================ name: GIT_HASH ================================================ FILE: support/testing/tests/download/br2-external/git-hash/external.mk ================================================ include $(sort $(wildcard $(BR2_EXTERNAL_GIT_HASH_PATH)/package/*/*.mk)) # Get the git server port number from the test infra GITREMOTE_PORT_NUMBER ?= 9418 ================================================ FILE: support/testing/tests/download/br2-external/git-hash/package/bad/bad.hash ================================================ sha256 0000000000000000000000000000000000000000000000000000000000000000 bad-a238b1dfcd825d47d834af3c5223417c8411d90d-br1.tar.gz ================================================ FILE: support/testing/tests/download/br2-external/git-hash/package/bad/bad.mk ================================================ ################################################################################ # # bad # ################################################################################ BAD_VERSION = a238b1dfcd825d47d834af3c5223417c8411d90d BAD_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-hash/package/good/good.hash ================================================ sha256 682ad1f39f258bfb35e26f213f3798f44bb8105bb55fad47bdc003113765b650 good-a238b1dfcd825d47d834af3c5223417c8411d90d-br1.tar.gz ================================================ FILE: support/testing/tests/download/br2-external/git-hash/package/good/good.mk ================================================ ################################################################################ # # good # ################################################################################ GOOD_VERSION = a238b1dfcd825d47d834af3c5223417c8411d90d GOOD_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-hash/package/nohash/nohash.mk ================================================ ################################################################################ # # nohash # ################################################################################ NOHASH_VERSION = a238b1dfcd825d47d834af3c5223417c8411d90d NOHASH_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/Config.in ================================================ ================================================ FILE: support/testing/tests/download/br2-external/git-refs/external.desc ================================================ name: GIT_REFS ================================================ FILE: support/testing/tests/download/br2-external/git-refs/external.mk ================================================ include $(sort $(wildcard $(BR2_EXTERNAL_GIT_REFS_PATH)/package/*/*.mk)) # Get the git server port number from the test infra GITREMOTE_PORT_NUMBER ?= 9418 ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-branch-head/git-partial-sha1-branch-head.hash ================================================ sha256 c27041b3e874beb0d0218158e7d6507ad1515b684de5eed5fabd0f7205e9718e git-partial-sha1-branch-head-68c197d0879d485f4f6c-br1.tar.gz sha256 2c1126513651b0d346a4e6d1bb75ac1c9999217e18026302d27bea47b06c7fb2 file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-branch-head/git-partial-sha1-branch-head.mk ================================================ ################################################################################ # # git-partial-sha1-branch-head # ################################################################################ GIT_PARTIAL_SHA1_BRANCH_HEAD_VERSION = 68c197d0879d485f4f6c GIT_PARTIAL_SHA1_BRANCH_HEAD_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_PARTIAL_SHA1_BRANCH_HEAD_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-reachable-by-branch/git-partial-sha1-reachable-by-branch.hash ================================================ sha256 1bbba9bf2788bd789ed8da4e47cabbf3467b1f706875b3f6b62df38e08fb9aba git-partial-sha1-reachable-by-branch-317406308d9259e2231b-br1.tar.gz sha256 fabbc65c442bacb5e69b7adfea6d14fbbfc1327134322efd12771dc84387d507 file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-reachable-by-branch/git-partial-sha1-reachable-by-branch.mk ================================================ ################################################################################ # # git-partial-sha1-reachable-by-branch # ################################################################################ GIT_PARTIAL_SHA1_REACHABLE_BY_BRANCH_VERSION = 317406308d9259e2231b GIT_PARTIAL_SHA1_REACHABLE_BY_BRANCH_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_PARTIAL_SHA1_REACHABLE_BY_BRANCH_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-reachable-by-tag/git-partial-sha1-reachable-by-tag.hash ================================================ sha256 52d223f3b2d625216c259e9ff949ca8818452a531ba61557dd91f3889c7919d7 git-partial-sha1-reachable-by-tag-46bae5b639e5a18e2cc4-br1.tar.gz sha256 2de87d77a2f226813f2d9bda906e970e4195605cdba6680443c0c04d89c532b6 file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-reachable-by-tag/git-partial-sha1-reachable-by-tag.mk ================================================ ################################################################################ # # git-partial-sha1-reachable-by-tag # ################################################################################ GIT_PARTIAL_SHA1_REACHABLE_BY_TAG_VERSION = 46bae5b639e5a18e2cc4 GIT_PARTIAL_SHA1_REACHABLE_BY_TAG_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_PARTIAL_SHA1_REACHABLE_BY_TAG_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-tag-itself/git-partial-sha1-tag-itself.hash ================================================ sha256 5cfc004b05f48b3fb419a5db4b7239223d670225fbbb91de2ae151c97910b36c git-partial-sha1-tag-itself-2b0e0d98a49c97da6a61-br1.tar.gz sha256 6de8772a0a58fa62e2b8c58d4dae55c9db7534ad3b3918ecc849a9008d58f081 file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-tag-itself/git-partial-sha1-tag-itself.mk ================================================ ################################################################################ # # git-partial-sha1-tag-itself # ################################################################################ GIT_PARTIAL_SHA1_TAG_ITSELF_VERSION = 2b0e0d98a49c97da6a61 GIT_PARTIAL_SHA1_TAG_ITSELF_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_PARTIAL_SHA1_TAG_ITSELF_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-tag-points-to/git-partial-sha1-tag-points-to.hash ================================================ sha256 0f40d7f39bf2e389cc2ce03c73cc0cc9ded1119378aaa68e2a2ef8597f6fd2f3 git-partial-sha1-tag-points-to-516c9c5f64ec66534d4d-br1.tar.gz sha256 6de8772a0a58fa62e2b8c58d4dae55c9db7534ad3b3918ecc849a9008d58f081 file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-tag-points-to/git-partial-sha1-tag-points-to.mk ================================================ ################################################################################ # # git-partial-sha1-tag-points-to # ################################################################################ GIT_PARTIAL_SHA1_TAG_POINTS_TO_VERSION = 516c9c5f64ec66534d4d GIT_PARTIAL_SHA1_TAG_POINTS_TO_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_PARTIAL_SHA1_TAG_POINTS_TO_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-sha1-branch-head/git-sha1-branch-head.hash ================================================ sha256 3ab67c485ce1825abbbf5db1d90d94dfadc89b30bb740041cfc75fc04021e218 git-sha1-branch-head-68c197d0879d485f4f6cee85544722b79e68e59f-br1.tar.gz sha256 2c1126513651b0d346a4e6d1bb75ac1c9999217e18026302d27bea47b06c7fb2 file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-sha1-branch-head/git-sha1-branch-head.mk ================================================ ################################################################################ # # git-sha1-branch-head # ################################################################################ GIT_SHA1_BRANCH_HEAD_VERSION = 68c197d0879d485f4f6cee85544722b79e68e59f GIT_SHA1_BRANCH_HEAD_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_SHA1_BRANCH_HEAD_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-sha1-reachable-by-branch/git-sha1-reachable-by-branch.hash ================================================ sha256 a5936d6d6022ea101a6076864a2afa918ab2776764012c4be589027001044041 git-sha1-reachable-by-branch-317406308d9259e2231bd0d6ddad3de3832bce08-br1.tar.gz sha256 fabbc65c442bacb5e69b7adfea6d14fbbfc1327134322efd12771dc84387d507 file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-sha1-reachable-by-branch/git-sha1-reachable-by-branch.mk ================================================ ################################################################################ # # git-sha1-reachable-by-branch # ################################################################################ GIT_SHA1_REACHABLE_BY_BRANCH_VERSION = 317406308d9259e2231bd0d6ddad3de3832bce08 GIT_SHA1_REACHABLE_BY_BRANCH_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_SHA1_REACHABLE_BY_BRANCH_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-sha1-reachable-by-tag/git-sha1-reachable-by-tag.hash ================================================ sha256 c203f968e358ca478d4c5344b1e4ae9bf13f9fb1120f2ed96a12154dd64195a6 git-sha1-reachable-by-tag-46bae5b639e5a18e2cc4dc508f080d566baeff59-br1.tar.gz sha256 2de87d77a2f226813f2d9bda906e970e4195605cdba6680443c0c04d89c532b6 file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-sha1-reachable-by-tag/git-sha1-reachable-by-tag.mk ================================================ ################################################################################ # # git-sha1-reachable-by-tag # ################################################################################ GIT_SHA1_REACHABLE_BY_TAG_VERSION = 46bae5b639e5a18e2cc4dc508f080d566baeff59 GIT_SHA1_REACHABLE_BY_TAG_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_SHA1_REACHABLE_BY_TAG_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-sha1-tag-itself/git-sha1-tag-itself.hash ================================================ sha256 57f08e9f3914e79a10e7fb5d346b26fef2773dd22eed0d61fd755e79e62cee93 git-sha1-tag-itself-2b0e0d98a49c97da6a618ab36337e2058eb733a2-br1.tar.gz sha256 6de8772a0a58fa62e2b8c58d4dae55c9db7534ad3b3918ecc849a9008d58f081 file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-sha1-tag-itself/git-sha1-tag-itself.mk ================================================ ################################################################################ # # git-sha1-tag-itself # ################################################################################ GIT_SHA1_TAG_ITSELF_VERSION = 2b0e0d98a49c97da6a618ab36337e2058eb733a2 GIT_SHA1_TAG_ITSELF_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_SHA1_TAG_ITSELF_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-sha1-tag-points-to/git-sha1-tag-points-to.hash ================================================ sha256 1d8b565827137aa21ba37cde382aa291e33a135c697e38dcd31f14e195386327 git-sha1-tag-points-to-516c9c5f64ec66534d4d069c2e408d9ae4dce023-br1.tar.gz sha256 6de8772a0a58fa62e2b8c58d4dae55c9db7534ad3b3918ecc849a9008d58f081 file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-sha1-tag-points-to/git-sha1-tag-points-to.mk ================================================ ################################################################################ # # git-sha1-tag-points-to # ################################################################################ GIT_SHA1_TAG_POINTS_TO_VERSION = 516c9c5f64ec66534d4d069c2e408d9ae4dce023 GIT_SHA1_TAG_POINTS_TO_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_SHA1_TAG_POINTS_TO_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-submodule-disabled/git-submodule-disabled.hash ================================================ sha256 e8e0febc7f1408df22bce2d73d9a30081e03b45e152bc25effd14435ca8b3433 git-submodule-disabled-a9dbc1e23c45e8e1b88c0448763f54d714eb6f8f-br1.tar.gz sha256 ba8b6ddc4726bfb6a05045ebfd8c43263c968ad1bc601bd46a25bc055008eddc file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-submodule-disabled/git-submodule-disabled.mk ================================================ ################################################################################ # # git-submodule-disabled # ################################################################################ GIT_SUBMODULE_DISABLED_VERSION = a9dbc1e23c45e8e1b88c0448763f54d714eb6f8f GIT_SUBMODULE_DISABLED_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_SUBMODULE_DISABLED_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-submodule-enabled/git-submodule-enabled.hash ================================================ sha256 176c32f10ad11f290b6251d701835450292ba281eb59c7fb57b244407a55ceab git-submodule-enabled-a9dbc1e23c45e8e1b88c0448763f54d714eb6f8f-br1.tar.gz ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-submodule-enabled/git-submodule-enabled.mk ================================================ ################################################################################ # # git-submodule-enabled # ################################################################################ GIT_SUBMODULE_ENABLED_VERSION = a9dbc1e23c45e8e1b88c0448763f54d714eb6f8f GIT_SUBMODULE_ENABLED_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_SUBMODULE_ENABLED_GIT_SUBMODULES = YES $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-tag/git-tag.hash ================================================ sha256 c66b2366d8ccb1670951012334fe8d48de3358aef39b3da2912b339448fefcde git-tag-mytag-br1.tar.gz sha256 6de8772a0a58fa62e2b8c58d4dae55c9db7534ad3b3918ecc849a9008d58f081 file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-tag/git-tag.mk ================================================ ################################################################################ # # git-tag # ################################################################################ GIT_TAG_VERSION = mytag GIT_TAG_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_TAG_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-wrong-content/git-wrong-content.hash ================================================ sha256 4a230e667227310289438cd7d899276a0d45ca8778abfd043dfc0a10ed2c9085 git-wrong-content-a238b1dfcd825d47d834af3c5223417c8411d90d-br1.tar.gz sha256 0000000000000000000000000000000000000000000000000000000000000000 file ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-wrong-content/git-wrong-content.mk ================================================ ################################################################################ # # git-wrong-content # ################################################################################ GIT_WRONG_CONTENT_VERSION = a238b1dfcd825d47d834af3c5223417c8411d90d GIT_WRONG_CONTENT_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_WRONG_CONTENT_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/br2-external/git-refs/package/git-wrong-sha1/git-wrong-sha1.mk ================================================ ################################################################################ # # git-wrong-sha1 # ################################################################################ GIT_WRONG_SHA1_VERSION = 0000000000000000000000000000000000000000 GIT_WRONG_SHA1_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git GIT_WRONG_SHA1_LICENSE_FILES = file $(eval $(generic-package)) ================================================ FILE: support/testing/tests/download/git-remote/refs-sub1.git/.gitattributes ================================================ objects/*/* binary ================================================ FILE: support/testing/tests/download/git-remote/refs-sub1.git/HEAD ================================================ cb545facf77bbc5f24f95b6d503c338d10b7b717 ================================================ FILE: support/testing/tests/download/git-remote/refs-sub1.git/config ================================================ [core] repositoryformatversion = 0 filemode = true bare = true ================================================ FILE: support/testing/tests/download/git-remote/refs-sub1.git/objects/cb/545facf77bbc5f24f95b6d503c338d10b7b717 ================================================ xν 0@ajOq $:;#X&8q,S=(W<=_rjv&(:YU"e1a0B##9Av+.쩆gW_wC`x3 5N4*D6rWnLWR^_fW` ================================================ FILE: support/testing/tests/download/git-remote/refs-sub1.git/refs/heads/submodule ================================================ 1df823cb8a6d1866148ae50a8009762a9c4c777f ================================================ FILE: support/testing/tests/download/git-remote/refs-sub2.git/.gitattributes ================================================ objects/*/* binary ================================================ FILE: support/testing/tests/download/git-remote/refs-sub2.git/HEAD ================================================ 32d61bae693af7879da63b89a60d3ae67f851e56 ================================================ FILE: support/testing/tests/download/git-remote/refs-sub2.git/config ================================================ [core] repositoryformatversion = 0 filemode = true bare = true ================================================ FILE: support/testing/tests/download/git-remote/refs-sub2.git/objects/32/d61bae693af7879da63b89a60d3ae67f851e56 ================================================ xν 0@ajOq $:;#X&8q,S=(W<=_rjv&(:YU"e1a0B##9Av+.쩆gW_wC`x3 5N-tŦD ^1-B\y^cJJ{o``+ ================================================ FILE: support/testing/tests/download/git-remote/refs-sub2.git/objects/cd/4d62ff218ab7b4a04f5bfdf800ace087af3ceb ================================================ x=n!aל 5,? ei `#bqg飴}zZԳ=,5hU 1~Qu4)~SyKHt$Ul縵. aOMbe݋<<_\+#zʂLX3uOwb{yRBij9O/ xl) ================================================ FILE: support/testing/tests/download/git-remote/refs-sub2.git/refs/heads/submodule ================================================ e83f6f805bd016b90acafc8702c52d778eb57310 ================================================ FILE: support/testing/tests/download/git-remote/repo.git/.gitattributes ================================================ objects/*/* binary ================================================ FILE: support/testing/tests/download/git-remote/repo.git/HEAD ================================================ ref: refs/heads/master ================================================ FILE: support/testing/tests/download/git-remote/repo.git/config ================================================ [core] repositoryformatversion = 0 filemode = true bare = true ================================================ FILE: support/testing/tests/download/git-remote/repo.git/objects/2b/0e0d98a49c97da6a618ab36337e2058eb733a2 ================================================ xEK!]s~Bbp i *A6s{1pRE`6jWofܭf(uDIF}`Q*7Rr}4:G\3+\Byyf8MN/ϩF4N'[ L3 ================================================ FILE: support/testing/tests/download/git-remote/repo.git/objects/31/7406308d9259e2231bd0d6ddad3de3832bce08 ================================================ x;N1@QjߌP А'SN^Rzޘ.׿̪1nS ================================================ FILE: support/testing/tests/download/git-remote/repo.git/objects/46/bae5b639e5a18e2cc4dc508f080d566baeff59 ================================================ x1n!@Qל 0a('e`·-ZFS1rB )![~烇(1~mh%X/$[( ܺ*4}-wǵrV?4xCpz2h}z:uK2̩Fkb ================================================ FILE: support/testing/tests/download/git-remote/repo.git/objects/51/6c9c5f64ec66534d4d069c2e408d9ae4dce023 ================================================ xKN1EQ^7БBQ6\n6r'yӥZ4dc|ZK p\VuшOO udC2EE?R >[%Wԯ*_/@D\UJ=qy,_J7le ================================================ FILE: support/testing/tests/download/git-remote/repo.git/objects/68/c197d0879d485f4f6cee85544722b79e68e59f ================================================ x=N1aj;!'L+x)=+H>Vk?j3,cp xA&IR`拺np$Xʼn!AQEC?Һ(L]}>ZK\|W;.5G;9tG;;m|c弩Lt#$bl ================================================ FILE: support/testing/tests/download/git-remote/repo.git/objects/a2/38b1dfcd825d47d834af3c5223417c8411d90d ================================================ xM @aלb.bn_@6q޸/ϕӮ(BEc(MG?L{Fh ^*\a.XeW ~O_< i]I'ks6Ÿr25•9Yl`C ================================================ FILE: support/testing/tests/download/git-remote/repo.git/refs/heads/master ================================================ a238b1dfcd825d47d834af3c5223417c8411d90d ================================================ FILE: support/testing/tests/download/git-remote/repo.git/refs/heads/mybranch ================================================ 68c197d0879d485f4f6cee85544722b79e68e59f ================================================ FILE: support/testing/tests/download/git-remote/repo.git/refs/heads/submodule ================================================ 2fa37f6885d7eb746df75eccaddbacf3ac82799d ================================================ FILE: support/testing/tests/download/git-remote/repo.git/refs/tags/mytag ================================================ 2b0e0d98a49c97da6a618ab36337e2058eb733a2 ================================================ FILE: support/testing/tests/download/gitremote.py ================================================ # subprocess does not kill the child daemon when a test case fails by raising # an exception. So use pexpect instead. import infra import pexpect GIT_REMOTE_PORT_INITIAL = 9418 GIT_REMOTE_PORT_LAST = GIT_REMOTE_PORT_INITIAL + 99 class GitRemote(object): def __init__(self, builddir, serveddir, logtofile): """ Start a local git server. In order to support test cases in parallel, select the port the server will listen to in runtime. Since there is no reliable way to allocate the port prior to starting the server (another process in the host machine can use the port between it is selected from a list and it is really allocated to the server) try to start the server in a port and in the case it is already in use, try the next one in the allowed range. """ self.daemon = None self.port = None self.logfile = infra.open_log_file(builddir, "gitremote", logtofile) daemon_cmd = ["git", "daemon", "--reuseaddr", "--verbose", "--listen=localhost", "--export-all", "--base-path={}".format(serveddir)] for port in range(GIT_REMOTE_PORT_INITIAL, GIT_REMOTE_PORT_LAST + 1): cmd = daemon_cmd + ["--port={port}".format(port=port)] self.logfile.write("> starting git remote with '{}'\n".format(" ".join(cmd))) self.daemon = pexpect.spawn(cmd[0], cmd[1:], logfile=self.logfile, encoding='utf-8') ret = self.daemon.expect(["Ready to rumble", "Address already in use"]) if ret == 0: self.port = port return raise SystemError("Could not find a free port to run git remote") def stop(self): if self.daemon is None: return self.daemon.terminate(force=True) ================================================ FILE: support/testing/tests/download/test_git.py ================================================ import os import shutil from tests.download.gitremote import GitRemote import infra class GitTestBase(infra.basetest.BRConfigTest): config = \ """ BR2_BACKUP_SITE="" """ gitremotedir = infra.filepath("tests/download/git-remote") gitremote = None def setUp(self): super(GitTestBase, self).setUp() self.gitremote = GitRemote(self.builddir, self.gitremotedir, self.logtofile) def tearDown(self): self.show_msg("Cleaning up") if self.gitremote: self.gitremote.stop() if self.b and not self.keepbuilds: self.b.delete() def check_hash(self, package): # store downloaded tarball inside the output dir so the test infra # cleans it up at the end env = {"BR2_DL_DIR": os.path.join(self.builddir, "dl"), "GITREMOTE_PORT_NUMBER": str(self.gitremote.port)} self.b.build(["{}-dirclean".format(package), "{}-source".format(package)], env) def check_download(self, package): # store downloaded tarball inside the output dir so the test infra # cleans it up at the end dl_dir = os.path.join(self.builddir, "dl") # enforce we test the download if os.path.exists(dl_dir): shutil.rmtree(dl_dir) env = {"BR2_DL_DIR": dl_dir, "GITREMOTE_PORT_NUMBER": str(self.gitremote.port)} self.b.build(["{}-dirclean".format(package), "{}-legal-info".format(package)], env) class TestGitHash(GitTestBase): br2_external = [infra.filepath("tests/download/br2-external/git-hash")] def test_run(self): with self.assertRaises(SystemError): self.check_hash("bad") self.check_hash("good") self.check_hash("nohash") class TestGitRefs(GitTestBase): br2_external = [infra.filepath("tests/download/br2-external/git-refs")] def test_run(self): with self.assertRaises(SystemError): self.check_download("git-wrong-content") with self.assertRaises(SystemError): self.check_download("git-wrong-sha1") self.check_download("git-partial-sha1-branch-head") self.check_download("git-partial-sha1-reachable-by-branch") self.check_download("git-partial-sha1-reachable-by-tag") self.check_download("git-partial-sha1-tag-itself") self.check_download("git-partial-sha1-tag-points-to") self.check_download("git-sha1-branch-head") self.check_download("git-sha1-reachable-by-branch") self.check_download("git-sha1-reachable-by-tag") self.check_download("git-sha1-tag-itself") self.check_download("git-sha1-tag-points-to") self.check_download("git-submodule-disabled") self.check_download("git-submodule-enabled") self.check_download("git-tag") ================================================ FILE: support/testing/tests/fs/__init__.py ================================================ ================================================ FILE: support/testing/tests/fs/test_ext.py ================================================ import os import infra.basetest VOLNAME_PROP = "Filesystem volume name" REVISION_PROP = "Filesystem revision #" FEATURES_PROP = "Filesystem features" BLOCKCNT_PROP = "Block count" INODECNT_PROP = "Inode count" RESBLKCNT_PROP = "Reserved block count" CHECK_FS_TYPE_CMD = "mount | grep '/dev/root on / type {}'" def dumpe2fs_run(builddir, image): cmd = ["host/sbin/dumpe2fs", os.path.join("images", image)] ret = infra.run_cmd_on_host(builddir, cmd) return ret.strip().splitlines() def dumpe2fs_getprop(out, prop): for line in out: fields = line.split(": ") if fields[0] == prop: return fields[1].strip() def boot_img_and_check_fs_type(emulator, builddir, fs_type): img = os.path.join(builddir, "images", "rootfs.{}".format(fs_type)) emulator.boot(arch="armv7", kernel="builtin", kernel_cmdline=["root=/dev/mmcblk0", "rootfstype={}".format(fs_type)], options=["-drive", "file={},if=sd,format=raw".format(img)]) emulator.login() _, exit_code = emulator.run(CHECK_FS_TYPE_CMD.format(fs_type)) return exit_code class TestExt2(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_2r0=y BR2_TARGET_ROOTFS_EXT2_LABEL="foobaz" BR2_TARGET_ROOTFS_EXT2_SIZE="16384" # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): out = dumpe2fs_run(self.builddir, "rootfs.ext2") self.assertEqual(dumpe2fs_getprop(out, VOLNAME_PROP), "foobaz") self.assertEqual(dumpe2fs_getprop(out, REVISION_PROP), "0 (original)") exit_code = boot_img_and_check_fs_type(self.emulator, self.builddir, "ext2") self.assertEqual(exit_code, 0) class TestExt2r1(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_2r1=y BR2_TARGET_ROOTFS_EXT2_LABEL="foobar" BR2_TARGET_ROOTFS_EXT2_SIZE="16384" # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): out = dumpe2fs_run(self.builddir, "rootfs.ext2") self.assertEqual(dumpe2fs_getprop(out, VOLNAME_PROP), "foobar") self.assertEqual(dumpe2fs_getprop(out, REVISION_PROP), "1 (dynamic)") self.assertNotIn("has_journal", dumpe2fs_getprop(out, FEATURES_PROP)) exit_code = boot_img_and_check_fs_type(self.emulator, self.builddir, "ext2") self.assertEqual(exit_code, 0) class TestExt3(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_3=y BR2_TARGET_ROOTFS_EXT2_SIZE="16384" # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): out = dumpe2fs_run(self.builddir, "rootfs.ext3") self.assertEqual(dumpe2fs_getprop(out, REVISION_PROP), "1 (dynamic)") self.assertIn("has_journal", dumpe2fs_getprop(out, FEATURES_PROP)) self.assertNotIn("extent", dumpe2fs_getprop(out, FEATURES_PROP)) exit_code = boot_img_and_check_fs_type(self.emulator, self.builddir, "ext3") self.assertEqual(exit_code, 0) class TestExt4(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y BR2_TARGET_ROOTFS_EXT2_SIZE="16384" BR2_TARGET_ROOTFS_EXT2_INODES=3000 BR2_TARGET_ROOTFS_EXT2_RESBLKS=10 # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): out = dumpe2fs_run(self.builddir, "rootfs.ext4") self.assertEqual(dumpe2fs_getprop(out, REVISION_PROP), "1 (dynamic)") self.assertEqual(dumpe2fs_getprop(out, BLOCKCNT_PROP), "16384") # Yes there are 8 fewer inodes than requested self.assertEqual(dumpe2fs_getprop(out, INODECNT_PROP), "2992") self.assertEqual(dumpe2fs_getprop(out, RESBLKCNT_PROP), "1638") self.assertIn("has_journal", dumpe2fs_getprop(out, FEATURES_PROP)) self.assertIn("extent", dumpe2fs_getprop(out, FEATURES_PROP)) exit_code = boot_img_and_check_fs_type(self.emulator, self.builddir, "ext4") self.assertEqual(exit_code, 0) ================================================ FILE: support/testing/tests/fs/test_f2fs.py ================================================ import os import infra.basetest def dumpf2fs_getprop(out, prop): for line in out: fields = line.split(" = ") if fields[0] == prop: return fields[1].strip() class TestF2FS(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_F2FS=y BR2_TARGET_ROOTFS_F2FS_SIZE="128M" BR2_TARGET_ROOTFS_F2FS_OVERPROVISION=0 BR2_TARGET_ROOTFS_F2FS_DISCARD=y # BR2_TARGET_ROOTFS_TAR is not set BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.204" BR2_LINUX_KERNEL_USE_DEFCONFIG=y BR2_LINUX_KERNEL_DEFCONFIG="vexpress" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="{}" """.format(infra.filepath("conf/f2fs-kernel-fragment.config")) def test_run(self): img = os.path.join(self.builddir, "images", "rootfs.f2fs") out = infra.run_cmd_on_host(self.builddir, ["host/sbin/dump.f2fs", img]) out = out.splitlines() prop = dumpf2fs_getprop(out, "Info: total sectors") self.assertEqual(prop, "262144 (128 MB)") kernel = os.path.join(self.builddir, "images", "zImage") kernel_cmdline = ["root=/dev/mmcblk0", "rootfstype=f2fs", "console=ttyAMA0"] dtb = infra.download(self.downloaddir, "vexpress-v2p-ca9.dtb") options = ["-M", "vexpress-a9", "-dtb", dtb, "-drive", "file={},if=sd,format=raw".format(img)] self.emulator.boot(arch="armv7", kernel=kernel, kernel_cmdline=kernel_cmdline, options=options) self.emulator.login() cmd = "mount | grep '/dev/root on / type f2fs'" self.assertRunOk(cmd) ================================================ FILE: support/testing/tests/fs/test_iso9660.py ================================================ import os import infra.basetest BASIC_CONFIG = \ """ BR2_x86_pentium4=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-i386-pentium4-full-2017.05-1078-g95b1dae.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_6=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_2=y BR2_TOOLCHAIN_EXTERNAL_LOCALE=y # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set BR2_TOOLCHAIN_EXTERNAL_CXX=y BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.204" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="{}" # BR2_TARGET_ROOTFS_TAR is not set """.format(infra.filepath("conf/minimal-x86-qemu-kernel.config")) def test_mount_internal_external(emulator, builddir, internal=True, efi=False): img = os.path.join(builddir, "images", "rootfs.iso9660") if efi: efi_img = os.path.join(builddir, "images", "OVMF.fd") emulator.boot(arch="i386", options=["-cdrom", img, "-bios", efi_img]) else: emulator.boot(arch="i386", options=["-cdrom", img]) emulator.login() if internal: cmd = "mount | grep 'rootfs on / type rootfs'" else: cmd = "mount | grep '/dev/root on / type iso9660'" _, exit_code = emulator.run(cmd) return exit_code def test_touch_file(emulator): _, exit_code = emulator.run("touch test") return exit_code # # Grub 2 class TestIso9660Grub2External(infra.basetest.BRTest): config = BASIC_CONFIG + \ """ BR2_TARGET_ROOTFS_ISO9660=y # BR2_TARGET_ROOTFS_ISO9660_INITRD is not set BR2_TARGET_GRUB2=y BR2_TARGET_GRUB2_BOOT_PARTITION="cd" BR2_TARGET_GRUB2_BUILTIN_MODULES_PC="boot linux ext2 fat part_msdos part_gpt normal biosdisk iso9660" BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" """.format(infra.filepath("conf/grub2.cfg")) def test_run(self): exit_code = test_mount_internal_external(self.emulator, self.builddir, internal=False) self.assertEqual(exit_code, 0) exit_code = test_touch_file(self.emulator) self.assertEqual(exit_code, 1) class TestIso9660Grub2ExternalCompress(infra.basetest.BRTest): config = BASIC_CONFIG + \ """ BR2_TARGET_ROOTFS_ISO9660=y # BR2_TARGET_ROOTFS_ISO9660_INITRD is not set BR2_TARGET_ROOTFS_ISO9660_TRANSPARENT_COMPRESSION=y BR2_TARGET_GRUB2=y BR2_TARGET_GRUB2_BOOT_PARTITION="cd" BR2_TARGET_GRUB2_BUILTIN_MODULES_PC="boot linux ext2 fat part_msdos part_gpt normal biosdisk iso9660" BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" """.format(infra.filepath("conf/grub2.cfg")) def test_run(self): exit_code = test_mount_internal_external(self.emulator, self.builddir, internal=False) self.assertEqual(exit_code, 0) exit_code = test_touch_file(self.emulator) self.assertEqual(exit_code, 1) class TestIso9660Grub2Internal(infra.basetest.BRTest): config = BASIC_CONFIG + \ """ BR2_TARGET_ROOTFS_ISO9660=y BR2_TARGET_ROOTFS_ISO9660_INITRD=y BR2_TARGET_GRUB2=y BR2_TARGET_GRUB2_BOOT_PARTITION="cd" BR2_TARGET_GRUB2_BUILTIN_MODULES_PC="boot linux ext2 fat part_msdos part_gpt normal biosdisk iso9660" BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" """.format(infra.filepath("conf/grub2.cfg")) def test_run(self): exit_code = test_mount_internal_external(self.emulator, self.builddir, internal=True) self.assertEqual(exit_code, 0) exit_code = test_touch_file(self.emulator) self.assertEqual(exit_code, 0) class TestIso9660Grub2EFI(infra.basetest.BRTest): config = BASIC_CONFIG + \ """ BR2_TARGET_ROOTFS_ISO9660=y BR2_TARGET_ROOTFS_ISO9660_INITRD=y BR2_TARGET_GRUB2=y BR2_TARGET_GRUB2_I386_EFI=y BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat part_msdos part_gpt normal iso9660" BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI="{}" BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" BR2_TARGET_EDK2=y """.format(infra.filepath("conf/grub2-efi.cfg"), infra.filepath("conf/grub2.cfg")) def test_run(self): exit_code = test_mount_internal_external(self.emulator, self.builddir, internal=True, efi=True) self.assertEqual(exit_code, 0) exit_code = test_touch_file(self.emulator) self.assertEqual(exit_code, 0) class TestIso9660Grub2Hybrid(infra.basetest.BRTest): config = BASIC_CONFIG + \ """ BR2_TARGET_ROOTFS_ISO9660=y BR2_TARGET_ROOTFS_ISO9660_INITRD=y BR2_TARGET_GRUB2=y BR2_TARGET_GRUB2_I386_PC=y BR2_TARGET_GRUB2_I386_EFI=y BR2_TARGET_GRUB2_BOOT_PARTITION="cd" BR2_TARGET_GRUB2_BUILTIN_MODULES_PC="boot linux ext2 fat squash4 part_msdos part_gpt normal iso9660 biosdisk" BR2_TARGET_GRUB2_BUILTIN_CONFIG_PC="" BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal iso9660 efi_gop" BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI="{}" BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" BR2_TARGET_EDK2=y """.format(infra.filepath("conf/grub2-efi.cfg"), infra.filepath("conf/grub2.cfg")) def test_run(self): exit_code = test_mount_internal_external(self.emulator, self.builddir, internal=True, efi=False) self.assertEqual(exit_code, 0) exit_code = test_touch_file(self.emulator) self.assertEqual(exit_code, 0) self.emulator.stop() exit_code = test_mount_internal_external(self.emulator, self.builddir, internal=True, efi=True) self.assertEqual(exit_code, 0) exit_code = test_touch_file(self.emulator) self.assertEqual(exit_code, 0) # # Syslinux class TestIso9660SyslinuxExternal(infra.basetest.BRTest): config = BASIC_CONFIG + \ """ BR2_TARGET_ROOTFS_ISO9660=y # BR2_TARGET_ROOTFS_ISO9660_INITRD is not set BR2_TARGET_ROOTFS_ISO9660_HYBRID=y BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" BR2_TARGET_SYSLINUX=y """.format(infra.filepath("conf/isolinux.cfg")) def test_run(self): exit_code = test_mount_internal_external(self.emulator, self.builddir, internal=False) self.assertEqual(exit_code, 0) exit_code = test_touch_file(self.emulator) self.assertEqual(exit_code, 1) class TestIso9660SyslinuxExternalCompress(infra.basetest.BRTest): config = BASIC_CONFIG + \ """ BR2_TARGET_ROOTFS_ISO9660=y # BR2_TARGET_ROOTFS_ISO9660_INITRD is not set BR2_TARGET_ROOTFS_ISO9660_TRANSPARENT_COMPRESSION=y BR2_TARGET_ROOTFS_ISO9660_HYBRID=y BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" BR2_TARGET_SYSLINUX=y """.format(infra.filepath("conf/isolinux.cfg")) def test_run(self): exit_code = test_mount_internal_external(self.emulator, self.builddir, internal=False) self.assertEqual(exit_code, 0) exit_code = test_touch_file(self.emulator) self.assertEqual(exit_code, 1) class TestIso9660SyslinuxInternal(infra.basetest.BRTest): config = BASIC_CONFIG + \ """ BR2_TARGET_ROOTFS_ISO9660=y BR2_TARGET_ROOTFS_ISO9660_INITRD=y BR2_TARGET_ROOTFS_ISO9660_HYBRID=y BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" BR2_TARGET_SYSLINUX=y """.format(infra.filepath("conf/isolinux.cfg")) def test_run(self): exit_code = test_mount_internal_external(self.emulator, self.builddir, internal=True) self.assertEqual(exit_code, 0) exit_code = test_touch_file(self.emulator) self.assertEqual(exit_code, 0) ================================================ FILE: support/testing/tests/fs/test_jffs2.py ================================================ import os import infra.basetest def jffs2dump_find_file(files_list, fname): for file_name in files_list: file_name = file_name.strip() if file_name.startswith("Dirent") and file_name.endswith(fname): return True return False class TestJffs2(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_JFFS2=y BR2_TARGET_ROOTFS_JFFS2_CUSTOM=y BR2_TARGET_ROOTFS_JFFS2_CUSTOM_EBSIZE=0x40000 BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y BR2_TARGET_ROOTFS_JFFS2_PAD=y BR2_TARGET_ROOTFS_JFFS2_PADSIZE=0x4000000 # BR2_TARGET_ROOTFS_TAR is not set """ # TODO: there are some scary JFFS2 messages when one starts to # write files in the rootfs: "jffs2: Newly-erased block contained # word 0x0 at offset 0x046c0000". To be investigated. def test_run(self): img = os.path.join(self.builddir, "images", "rootfs.jffs2") cmd = ["host/sbin/jffs2dump", "-c", img] out = infra.run_cmd_on_host(self.builddir, cmd) out = out.splitlines() self.assertTrue(jffs2dump_find_file(out, "busybox")) self.emulator.boot(arch="armv7", kernel="builtin", kernel_cmdline=["root=/dev/mtdblock0", "rootfstype=jffs2"], options=["-drive", "file={},if=pflash".format(img)]) self.emulator.login() cmd = "mount | grep '/dev/root on / type jffs2'" self.assertRunOk(cmd) ================================================ FILE: support/testing/tests/fs/test_oci.py ================================================ import os import shutil import infra.basetest class TestOci(infra.basetest.BRTest): config = \ """ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.61" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux.config" BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_PACKAGE_CGROUPFS_MOUNT=y BR2_PACKAGE_CONTAINERD=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_SIZE="600M" BR2_TARGET_ROOTFS_OCI=y BR2_TARGET_ROOTFS_OCI_ENTRYPOINT="df" BR2_TARGET_ROOTFS_OCI_ENTRYPOINT_ARGS="-h" BR2_TARGET_ROOTFS_OCI_ARCHIVE=y # BR2_TARGET_ROOTFS_TAR is not set """ def login(self): rootfs = os.path.join(self.builddir, "images", "rootfs.ext2") kern = os.path.join(self.builddir, "images", "Image") self.emulator.boot(arch="aarch64", kernel=kern, kernel_cmdline=["root=/dev/vda", "console=ttyAMA0"], options=["-M", "virt", "-cpu", "cortex-a57", "-m", "512M", "-drive", "file={},format=raw,if=virtio".format(rootfs)]) self.emulator.login() def place_test_oci(self): shutil.copy(os.path.join(self.builddir, 'images', 'rootfs-oci-latest-arm64-linux.oci-image.tar'), os.path.join(self.builddir, 'target', 'oci.tar')) # rebuild to make sure oci.tar ends up in rootfs.ext2 self.b.build() def test_run(self): self.place_test_oci() self.login() cmd = "containerd &" self.assertRunOk(cmd) cmd = "ctr image import --base-name buildroot-test /oci.tar" self.assertRunOk(cmd, timeout=120) cmd = "ctr run --rm --tty buildroot-test:latest v1" self.assertRunOk(cmd, timeout=120) ================================================ FILE: support/testing/tests/fs/test_squashfs.py ================================================ import os import infra.basetest class TestSquashfs(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_SQUASHFS=y BR2_TARGET_ROOTFS_SQUASHFS4_LZO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): unsquashfs_cmd = ["host/bin/unsquashfs", "-s", "images/rootfs.squashfs"] out = infra.run_cmd_on_host(self.builddir, unsquashfs_cmd) out = out.splitlines() self.assertEqual(out[0], "Found a valid SQUASHFS 4:0 superblock on images/rootfs.squashfs.") self.assertEqual(out[3], "Compression lzo") img = os.path.join(self.builddir, "images", "rootfs.squashfs") infra.img_round_power2(img) self.emulator.boot(arch="armv7", kernel="builtin", kernel_cmdline=["root=/dev/mmcblk0", "rootfstype=squashfs"], options=["-drive", "file={},if=sd,format=raw".format(img)]) self.emulator.login() cmd = "mount | grep '/dev/root on / type squashfs'" self.assertRunOk(cmd) ================================================ FILE: support/testing/tests/fs/test_ubi/ubinize_qemu_pflash_cfi01.cfg ================================================ [ubifs] mode=ubi vol_id=0 vol_type=static vol_name=rootfs vol_alignment=1 vol_size=64MiB image=BR2_ROOTFS_UBIFS_PATH ================================================ FILE: support/testing/tests/fs/test_ubi.py ================================================ import subprocess import os import infra.basetest class TestUbi(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_UBIFS=y BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x3ff80 BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE=0x1 BR2_TARGET_ROOTFS_UBI=y BR2_TARGET_ROOTFS_UBI_PEBSIZE=0x40000 BR2_TARGET_ROOTFS_UBI_SUBSIZE=1 BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG=y BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE="{}" """.format( infra.filepath("tests/fs/test_ubi/ubinize_qemu_pflash_cfi01.cfg")) def test_run(self): img = os.path.join(self.builddir, "images", "rootfs.ubi") out = infra.run_cmd_on_host(self.builddir, ["file", img]) out = out.splitlines() self.assertIn("UBI image, version 1", out[0]) subprocess.call(["truncate", "-s 64M", img]) self.emulator.boot(arch="armv7", kernel="builtin", kernel_cmdline=["root=ubi0:rootfs", "ubi.mtd=0", "rootfstype=ubifs"], options=["-drive", "file={},if=pflash,format=raw".format(img)]) self.emulator.login() cmd = "mount | grep 'ubi0:rootfs on / type ubifs'" _, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 0) ================================================ FILE: support/testing/tests/fs/test_yaffs2.py ================================================ import os import infra.basetest class TestYaffs2(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ infra.basetest.MINIMAL_CONFIG + \ """ BR2_TARGET_ROOTFS_YAFFS2=y """ def test_run(self): img = os.path.join(self.builddir, "images", "rootfs.yaffs2") self.assertTrue(os.path.exists(img)) ================================================ FILE: support/testing/tests/init/__init__.py ================================================ ================================================ FILE: support/testing/tests/init/base.py ================================================ import os import infra.basetest class InitSystemBase(infra.basetest.BRTest): def start_emulator(self, fs_type, kernel=None, dtb=None, init=None): img = os.path.join(self.builddir, "images", "rootfs.{}".format(fs_type)) infra.img_round_power2(img) options = ["-drive", "file={},if=sd,format=raw".format(img), "-M", "vexpress-a9"] if kernel is None: kernel = "builtin" else: kernel = os.path.join(self.builddir, "images", kernel) options.extend(["-dtb", os.path.join(self.builddir, "images", "{}.dtb".format(dtb))]) kernel_cmdline = ["root=/dev/mmcblk0", "rootfstype={}".format(fs_type), "rootwait", "ro", "console=ttyAMA0"] if init is not None: kernel_cmdline.extend(["init={}".format(init)]) self.emulator.boot(arch="armv7", kernel=kernel, kernel_cmdline=kernel_cmdline, options=options) if init is None: self.emulator.login() def check_init(self, path): cmd = "cmp /proc/1/exe {}".format(path) self.assertRunOk(cmd) def check_network(self, interface, exitCode=0): cmd = "ip addr show {} |grep inet".format(interface) _, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, exitCode) ================================================ FILE: support/testing/tests/init/systemd-factory/var/foo/bar ================================================ foobar ================================================ FILE: support/testing/tests/init/test_busybox.py ================================================ import infra.basetest from tests.init.base import InitSystemBase as InitSystemBase class InitSystemBusyboxBase(InitSystemBase): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ # BR2_TARGET_ROOTFS_TAR is not set """ def check_init(self): super(InitSystemBusyboxBase, self).check_init("/bin/busybox") class TestInitSystemBusyboxRo(InitSystemBusyboxBase): config = InitSystemBusyboxBase.config + \ """ # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set BR2_TARGET_ROOTFS_SQUASHFS=y """ def test_run(self): self.start_emulator("squashfs") self.check_init() self.check_network("eth0", 1) class TestInitSystemBusyboxRw(InitSystemBusyboxBase): config = InitSystemBusyboxBase.config + \ """ BR2_TARGET_ROOTFS_EXT2=y """ def test_run(self): self.start_emulator("ext2") self.check_init() self.check_network("eth0", 1) class TestInitSystemBusyboxRoNet(InitSystemBusyboxBase): config = InitSystemBusyboxBase.config + \ """ BR2_SYSTEM_DHCP="eth0" # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set BR2_TARGET_ROOTFS_SQUASHFS=y """ def test_run(self): self.start_emulator("squashfs") self.check_init() self.check_network("eth0") class TestInitSystemBusyboxRwNet(InitSystemBusyboxBase): config = InitSystemBusyboxBase.config + \ """ BR2_SYSTEM_DHCP="eth0" BR2_TARGET_ROOTFS_EXT2=y """ def test_run(self): self.start_emulator("ext2") self.check_init() self.check_network("eth0") ================================================ FILE: support/testing/tests/init/test_none.py ================================================ import pexpect import infra.basetest from tests.init.base import InitSystemBase as InitSystemBase class TestInitSystemNone(InitSystemBase): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_INIT_NONE=y # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_SQUASHFS=y """ def test_run(self): self.start_emulator(fs_type="squashfs", init="/bin/sh") index = self.emulator.qemu.expect(["/bin/sh: can't access tty; job control turned off", pexpect.TIMEOUT], timeout=60) if index != 0: self.emulator.logfile.write("==> System does not boot") raise SystemError("System does not boot") index = self.emulator.qemu.expect(["#", pexpect.TIMEOUT], timeout=60) if index != 0: self.emulator.logfile.write("==> System does not boot") raise SystemError("System does not boot") out, exit_code = self.emulator.run("sh -c 'echo $PPID'") self.assertEqual(exit_code, 0) self.assertEqual(out[0], "1") self.assertRunOk("mount -t proc none /proc") self.check_init("/bin/sh") ================================================ FILE: support/testing/tests/init/test_openrc.py ================================================ from tests.init.base import InitSystemBase as InitSystemBase class InitSystemOpenrcBase(InitSystemBase): config = \ """ BR2_arm=y BR2_cortex_a9=y BR2_ARM_ENABLE_VFP=y BR2_TOOLCHAIN_EXTERNAL=y BR2_INIT_OPENRC=y BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" # BR2_TARGET_ROOTFS_TAR is not set """ def check_init(self): super(InitSystemOpenrcBase, self).check_init('/sbin/openrc-init') # Test all services are OK output, _ = self.emulator.run("rc-status -c") self.assertEqual(len(output), 0) class TestInitSystemOpenrcRoFull(InitSystemOpenrcBase): config = InitSystemOpenrcBase.config + \ """ BR2_SYSTEM_DHCP="eth0" # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set BR2_TARGET_ROOTFS_SQUASHFS=y """ def test_run(self): self.start_emulator("squashfs") self.check_init() class TestInitSystemOpenrcRwFull(InitSystemOpenrcBase): config = InitSystemOpenrcBase.config + \ """ BR2_SYSTEM_DHCP="eth0" BR2_TARGET_ROOTFS_EXT2=y """ def test_run(self): self.start_emulator("ext2") self.check_init() ================================================ FILE: support/testing/tests/init/test_systemd.py ================================================ import infra.basetest from tests.init.base import InitSystemBase as InitSystemBase class InitSystemSystemdBase(InitSystemBase): config = \ """ BR2_arm=y BR2_cortex_a9=y BR2_ARM_ENABLE_VFP=y BR2_TOOLCHAIN_EXTERNAL=y BR2_INIT_SYSTEMD=y BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.204" BR2_LINUX_KERNEL_DEFCONFIG="vexpress" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="{}" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="vexpress-v2p-ca9" # BR2_TARGET_ROOTFS_TAR is not set """.format(infra.filepath("conf/binfmt-misc-kernel-fragment.config")) def check_init(self): super(InitSystemSystemdBase, self).check_init("/lib/systemd/systemd") # Test all units are OK output, _ = self.emulator.run("systemctl --no-pager --failed --no-legend") self.assertEqual(len(output), 0) # Test we can reach the DBus daemon self.assertRunOk("busctl --no-pager") # Test we can read at least one line from the journal output, _ = self.emulator.run("journalctl --no-pager --lines 1 --quiet") self.assertEqual(len(output), 1) class TestInitSystemSystemdRoNetworkd(InitSystemSystemdBase): config = InitSystemSystemdBase.config + \ """ BR2_SYSTEM_DHCP="eth0" # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set BR2_ROOTFS_OVERLAY="{}" BR2_TARGET_ROOTFS_SQUASHFS=y """.format(infra.filepath("tests/init/systemd-factory")) def test_run(self): self.start_emulator("squashfs", "zImage", "vexpress-v2p-ca9") self.check_init() self.check_network("eth0") # This one must be executed on the target, to check that # the factory feature works as expected out, exit_code = self.emulator.run("cat /var/foo/bar") self.assertEqual(exit_code, 0) self.assertEqual(out[0], "foobar") class TestInitSystemSystemdRwNetworkd(InitSystemSystemdBase): config = InitSystemSystemdBase.config + \ """ BR2_SYSTEM_DHCP="eth0" BR2_TARGET_ROOTFS_EXT2=y """ def test_run(self): self.start_emulator("ext2", "zImage", "vexpress-v2p-ca9") self.check_init() self.check_network("eth0") class TestInitSystemSystemdRoIfupdown(InitSystemSystemdBase): config = InitSystemSystemdBase.config + \ """ BR2_SYSTEM_DHCP="eth0" # BR2_PACKAGE_SYSTEMD_NETWORKD is not set # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set BR2_TARGET_ROOTFS_SQUASHFS=y """ def test_run(self): self.start_emulator("squashfs", "zImage", "vexpress-v2p-ca9") self.check_init() self.check_network("eth0") class TestInitSystemSystemdRwIfupdown(InitSystemSystemdBase): config = InitSystemSystemdBase.config + \ """ BR2_SYSTEM_DHCP="eth0" # BR2_PACKAGE_SYSTEMD_NETWORKD is not set BR2_TARGET_ROOTFS_EXT2=y """ def test_run(self): self.start_emulator("ext2", "zImage", "vexpress-v2p-ca9") self.check_init() self.check_network("eth0") class TestInitSystemSystemdRoFull(InitSystemSystemdBase): config = InitSystemSystemdBase.config + \ """ BR2_SYSTEM_DHCP="eth0" # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE=y BR2_PACKAGE_SYSTEMD_BACKLIGHT=y BR2_PACKAGE_SYSTEMD_BINFMT=y BR2_PACKAGE_SYSTEMD_COREDUMP=y BR2_PACKAGE_SYSTEMD_FIRSTBOOT=y BR2_PACKAGE_SYSTEMD_HIBERNATE=y BR2_PACKAGE_SYSTEMD_IMPORTD=y BR2_PACKAGE_SYSTEMD_LOCALED=y BR2_PACKAGE_SYSTEMD_LOGIND=y BR2_PACKAGE_SYSTEMD_MACHINED=y BR2_PACKAGE_SYSTEMD_POLKIT=y BR2_PACKAGE_SYSTEMD_QUOTACHECK=y BR2_PACKAGE_SYSTEMD_RANDOMSEED=y BR2_PACKAGE_SYSTEMD_RFKILL=y BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT=y BR2_PACKAGE_SYSTEMD_SYSUSERS=y BR2_PACKAGE_SYSTEMD_VCONSOLE=y BR2_TARGET_ROOTFS_SQUASHFS=y """ def test_run(self): self.start_emulator("squashfs", "zImage", "vexpress-v2p-ca9") self.check_init() self.check_network("eth0") class TestInitSystemSystemdRwFull(InitSystemSystemdBase): config = InitSystemSystemdBase.config + \ """ BR2_SYSTEM_DHCP="eth0" BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE=y BR2_PACKAGE_SYSTEMD_BACKLIGHT=y BR2_PACKAGE_SYSTEMD_BINFMT=y BR2_PACKAGE_SYSTEMD_COREDUMP=y BR2_PACKAGE_SYSTEMD_FIRSTBOOT=y BR2_PACKAGE_SYSTEMD_HIBERNATE=y BR2_PACKAGE_SYSTEMD_IMPORTD=y BR2_PACKAGE_SYSTEMD_LOCALED=y BR2_PACKAGE_SYSTEMD_LOGIND=y BR2_PACKAGE_SYSTEMD_MACHINED=y BR2_PACKAGE_SYSTEMD_POLKIT=y BR2_PACKAGE_SYSTEMD_QUOTACHECK=y BR2_PACKAGE_SYSTEMD_RANDOMSEED=y BR2_PACKAGE_SYSTEMD_RFKILL=y BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT=y BR2_PACKAGE_SYSTEMD_SYSUSERS=y BR2_PACKAGE_SYSTEMD_VCONSOLE=y BR2_TARGET_ROOTFS_EXT2=y """ def test_run(self): self.start_emulator("ext2", "zImage", "vexpress-v2p-ca9") self.check_init() self.check_network("eth0") ================================================ FILE: support/testing/tests/init/test_systemd_selinux/linux-squashfs.fragment ================================================ CONFIG_SQUASHFS=y ================================================ FILE: support/testing/tests/init/test_systemd_selinux.py ================================================ import os import infra.basetest class TestSELinuxSystemd(infra.basetest.BRTest): config = \ """ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_INIT_SYSTEMD=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.12" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux.config" BR2_PACKAGE_LIBSELINUX=y BR2_PACKAGE_REFPOLICY=y """ def wait_boot(self): # The complete boot with systemd takes more time than what the default multipler permits self.emulator.timeout_multiplier *= 10 self.emulator.login() def run_tests(self, fstype): kernel = os.path.join(self.builddir, "images", "bzImage") rootfs = os.path.join(self.builddir, "images", "rootfs.{}".format(fstype)) self.emulator.boot(arch="x86_64", kernel=kernel, kernel_cmdline=["root=/dev/vda", "rootfstype={}".format(fstype), "console=ttyS0", "security=selinux"], options=["-cpu", "Nehalem", "-drive", "file={},if=virtio,format=raw".format(rootfs)]) self.wait_boot() # Test the reported SELinux mode. out, ret = self.emulator.run("getenforce") self.assertEqual(ret, 0) self.assertEqual(out[0], "Permissive") # Check the extended arguments are correctly set. out, ret = self.emulator.run("ls -dZ /") self.assertEqual(ret, 0) self.assertEqual(out[0].split()[0], "system_u:object_r:root_t") # Check init's attributes. out, ret = self.emulator.run("cat /proc/1/attr/current") self.assertEqual(ret, 0) self.assertEqual(out[0], "system_u:system_r:init_t\0") class TestSELinuxSystemdExt4(TestSELinuxSystemd): config = TestSELinuxSystemd.config + \ """ BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y BR2_TARGET_ROOTFS_EXT2_SIZE="100M" """ def test_run(self): self.run_tests("ext4") class TestSELinuxSystemdSquashfs(TestSELinuxSystemd): config = TestSELinuxSystemd.config + \ """ BR2_TARGET_ROOTFS_SQUASHFS=y BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="{}" """.format( infra.filepath("tests/init/test_systemd_selinux/linux-squashfs.fragment"), ) def test_run(self): self.run_tests("squashfs") ================================================ FILE: support/testing/tests/package/__init__.py ================================================ ================================================ FILE: support/testing/tests/package/br2-external/openjdk/Config.in ================================================ source "$BR2_EXTERNAL_OPENJDK_PATH/package/openjdk-hello-world/Config.in" source "$BR2_EXTERNAL_OPENJDK_PATH/package/openjdk-jni-test/Config.in" ================================================ FILE: support/testing/tests/package/br2-external/openjdk/external.desc ================================================ name: OPENJDK ================================================ FILE: support/testing/tests/package/br2-external/openjdk/external.mk ================================================ include $(sort $(wildcard $(BR2_EXTERNAL_OPENJDK_PATH)/package/*/*.mk)) ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-hello-world/Config.in ================================================ config BR2_PACKAGE_OPENJDK_HELLO_WORLD bool "openjdk hello world" depends on BR2_PACKAGE_OPENJDK help Simple class for testing openjdk ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-hello-world/HelloWorld.java ================================================ public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } } ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-hello-world/openjdk-hello-world.mk ================================================ ################################################################################ # # openjdk hello world # ################################################################################ OPENJDK_HELLO_WORLD_DEPENDENCIES = openjdk define OPENJDK_HELLO_WORLD_BUILD_CMDS $(INSTALL) -D $(OPENJDK_HELLO_WORLD_PKGDIR)/HelloWorld.java $(@D)/HelloWorld.java $(JAVAC) $(@D)/HelloWorld.java endef define OPENJDK_HELLO_WORLD_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/HelloWorld.class $(TARGET_DIR)/usr/bin/HelloWorld.class endef $(eval $(generic-package)) ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/Config.in ================================================ config BR2_PACKAGE_OPENJDK_JNI_TEST bool "openjdk JNI test" depends on BR2_PACKAGE_OPENJDK help Tests openjdk JNI support ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/JniHelper.java ================================================ public class JniHelper { public void HelloManagedWorld() { stringMember = "Hello, Managed World"; } public String stringMember = "Set from Java"; } ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/JniTest.java ================================================ public class JniTest { private static void Test( String name, Object actual, Object expected, String actualAsString, String expectedAsString) { if (!actual.equals(expected)) { System.out.println(String.format( "Test: %s failed\nExpected: \"%s\", Actual: \"%s\"", name, expected, actual)); JniTest.exitCode = -1; } else { System.out.println(String.format("Test: %s passed", name)); } } private static void Test( String name, String actual, String expected) { JniTest.Test(name, actual, expected, actual, expected); } public static void main(String[] args) { var actualVersion = JniWrapper.get_jni_version(); var expectedVersion = 0x000A0000; JniTest.Test( "Get JNI Version", actualVersion, expectedVersion, String.format("0x%08X", actualVersion), String.format("0x%08X", expectedVersion)); JniTest.Test( "Read Native String Constant", JniWrapper.read_constant_string(), "Hello from C"); JniTest.Test( "Write Java String to Native Library", JniWrapper.write_string("Hello from Java"), "Hello from Java"); JniTest.Test( "Write Java Char Array to Native Library", JniWrapper.write_char_array("Hello from Java".toCharArray()), "Hello from Java"); var helper = new JniHelper(); JniTest.Test( "Write String Member to Native Library", JniWrapper.write_string_member(helper), "Set from Java"); JniWrapper.set_string_member(helper); JniTest.Test( "Set String Member from Native Library", helper.stringMember, "Set from C"); JniWrapper.execute_java_function(helper); JniTest.Test( "Execeute Java Function from Native Library", helper.stringMember, "Hello, Managed World"); helper = JniWrapper.instantiate_java_class(); JniTest.Test( "Instantiate Java Class", helper.stringMember, "Instantiated from C"); JniTest.Test( "Call Native Library to Set System Time", JniWrapper.set_and_write_time_in_seconds(1000), "1000"); System.exit(exitCode); } public static int exitCode = 0; } ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/JniWrapper.c ================================================ #include "JniWrapper.h" #include "jni_helper.h" // Proxies the generated function calls to the jni_helper JNIEXPORT jint JNICALL Java_JniWrapper_get_1jni_1version (JNIEnv* env, jclass class) { return get_jni_version(env); } JNIEXPORT jstring JNICALL Java_JniWrapper_read_1constant_1string (JNIEnv* env, jclass class) { return read_constant_jstring(env); } JNIEXPORT jstring JNICALL Java_JniWrapper_write_1string (JNIEnv* env, jclass class, jstring string) { return write_jstring(env, string); } JNIEXPORT jstring JNICALL Java_JniWrapper_write_1char_1array (JNIEnv* env, jclass class, jcharArray chars) { return write_jchar_array(env, chars); } JNIEXPORT jstring JNICALL Java_JniWrapper_write_1string_1member (JNIEnv* env, jclass class, jobject helper) { return write_string_member(env, helper); } JNIEXPORT void JNICALL Java_JniWrapper_set_1string_1member (JNIEnv* env, jclass class, jobject helper) { set_string_member(env, helper); } JNIEXPORT void JNICALL Java_JniWrapper_execute_1java_1function (JNIEnv* env, jclass class, jobject helper) { execute_java_function(env, helper); } JNIEXPORT jobject JNICALL Java_JniWrapper_instantiate_1java_1class (JNIEnv* env, jclass class) { return instantiate_java_class(env); } JNIEXPORT jstring JNICALL Java_JniWrapper_set_1and_1write_1time_1in_1seconds (JNIEnv* env, jclass class, jint seconds) { return set_and_write_time_in_seconds(env, seconds); } ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/JniWrapper.java ================================================ public class JniWrapper { static { System.loadLibrary("jni_native"); } public static native int get_jni_version(); public static native String read_constant_string(); public static native String write_string(String string); public static native String write_char_array(char[] string); public static native String write_string_member(JniHelper helper); public static native void set_string_member(JniHelper helper); public static native void execute_java_function(JniHelper helper); public static native JniHelper instantiate_java_class(); public static native String set_and_write_time_in_seconds(int seconds); } ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/jni_helper.c ================================================ #include "jni_helper.h" #include "native.h" // Handles Java/C interop jint get_jni_version(JNIEnv* env) { return (*env)->GetVersion(env); } jstring read_constant_jstring(JNIEnv* env) { return (*env)->NewStringUTF(env, read_constant_string()); } static jstring read_internal_string_as_jstring(JNIEnv* env) { return (*env)->NewStringUTF(env, read_internal_string()); } jstring write_jstring(JNIEnv* env, jstring string) { const char* utf8_string = (*env)->GetStringUTFChars(env, string, NULL); write_internal_string(utf8_string); (*env)->ReleaseStringUTFChars(env, string, utf8_string); return read_internal_string_as_jstring(env); } jstring write_jchar_array(JNIEnv* env, jcharArray chars) { jsize length = (*env)->GetArrayLength(env, chars); jchar* body = (*env)->GetCharArrayElements(env, chars, NULL); jstring input = (*env)->NewString(env, body, length); jstring output = write_jstring(env, input); (*env)->ReleaseCharArrayElements(env, chars, body, JNI_ABORT); return output; } static jfieldID get_string_member_field(JNIEnv* env, jobject helper) { jclass class = (*env)->GetObjectClass(env, helper); return (*env)->GetFieldID(env, class, "stringMember", "Ljava/lang/String;"); } jstring write_string_member(JNIEnv* env, jobject helper) { jfieldID fieldID = get_string_member_field(env, helper); jstring string = (*env)->GetObjectField(env, helper, fieldID); return write_jstring(env, string); } static void set_string_member_helper(JNIEnv* env, jobject helper, const char* utf8_string) { jfieldID fieldID = get_string_member_field(env, helper); jstring string = (*env)->NewStringUTF(env, utf8_string); (*env)->SetObjectField(env, helper, fieldID, string); } void set_string_member(JNIEnv* env, jobject helper) { char stringBuffer[256]; write_external_string(stringBuffer, 256); set_string_member_helper(env, helper, stringBuffer); } typedef struct { JNIEnv* env; jobject object; jmethodID methodID; } method_parameters; static void call_void_java_method(void* context) { method_parameters* parameters = (method_parameters*)context; (*parameters->env)->CallVoidMethod(parameters->env, parameters->object, parameters->methodID); } void execute_java_function(JNIEnv* env, jobject helper) { jclass class = (*env)->GetObjectClass(env, helper); jmethodID methodID = (*env)->GetMethodID(env, class, "HelloManagedWorld", "()V"); method_parameters parameters = {env, helper, methodID}; execute_function(call_void_java_method, (void*)¶meters); } jobject instantiate_java_class(JNIEnv* env) { jclass class = (*env)->FindClass(env, "JniHelper"); jmethodID methodID = (*env)->GetMethodID(env, class, "", "()V"); jobject object =(*env)->NewObject(env, class, methodID); set_string_member_helper(env, object, "Instantiated from C"); return object; } jstring set_and_write_time_in_seconds(JNIEnv* env, jint seconds) { set_time_in_seconds((int)seconds); write_internal_time_in_seconds(); return read_internal_string_as_jstring(env); } ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/jni_helper.h ================================================ #pragma once #include jint get_jni_version(JNIEnv* env); jstring read_constant_jstring(JNIEnv* env); jstring write_jstring(JNIEnv* env, jstring string); jstring write_jchar_array(JNIEnv* env, jcharArray chars); jstring write_string_member(JNIEnv* env, jobject helper); void set_string_member(JNIEnv* env, jobject helper); void execute_java_function(JNIEnv* env, jobject helper); jobject instantiate_java_class(JNIEnv* env); jstring set_and_write_time_in_seconds(JNIEnv* env, jint seconds); ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/native.c ================================================ #include "native.h" #include #include // Pure native functions #define CHAR_BUFFER_SIZE 256 static char buffer[CHAR_BUFFER_SIZE]; const char* read_constant_string() { return "Hello from C"; } const char* read_internal_string() { return buffer; } void write_internal_string(const char* string) { snprintf(buffer, CHAR_BUFFER_SIZE, "%s", string); } void write_external_string(char* string, size_t maxLength) { snprintf(string, maxLength, "Set from C"); } void execute_function(void(*function)(void*), void* context) { function(context); } void set_time_in_seconds(int seconds) { time_t timeToSet = seconds; stime(&timeToSet); } void write_internal_time_in_seconds() { time_t systemTime = time(NULL); snprintf(buffer, CHAR_BUFFER_SIZE, "%u", systemTime); } ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/native.h ================================================ #pragma once #include const char* read_constant_string(); const char* read_internal_string(); void write_internal_string(const char* string); void write_external_string(char* string, size_t maxLength); void execute_function(void(*function)(void*), void* context); void set_time_in_seconds(int seconds); void write_internal_time_in_seconds(); ================================================ FILE: support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/openjdk-jni-test.mk ================================================ ################################################################################ # # openjdk jni test # ################################################################################ OPENJDK_JNI_TEST_DEPENDENCIES = openjdk JNI_INCLUDE_PATH = $(BUILD_DIR)/openjdk-$(OPENJDK_VERSION)/build/linux-aarch64-server-release/jdk/include define OPENJDK_JNI_TEST_BUILD_CMDS # Compile Java classes and generate native headers $(JAVAC) -d $(@D) -h $(@D) \ $(OPENJDK_JNI_TEST_PKGDIR)/JniTest.java \ $(OPENJDK_JNI_TEST_PKGDIR)/JniWrapper.java \ $(OPENJDK_JNI_TEST_PKGDIR)/JniHelper.java # Compile shared library $(TARGET_MAKE_ENV) $(TARGET_CC) -shared -fPIC \ -I$(JNI_INCLUDE_PATH) -I$(JNI_INCLUDE_PATH)/linux -I$(@D) \ -o $(@D)/libjni_native.so \ $(OPENJDK_JNI_TEST_PKGDIR)/JniWrapper.c \ $(OPENJDK_JNI_TEST_PKGDIR)/jni_helper.c \ $(OPENJDK_JNI_TEST_PKGDIR)/native.c endef define OPENJDK_JNI_TEST_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/JniTest.class $(TARGET_DIR)/usr/bin/JniTest.class $(INSTALL) -D -m 755 $(@D)/JniWrapper.class $(TARGET_DIR)/usr/bin/JniWrapper.class $(INSTALL) -D -m 755 $(@D)/JniHelper.class $(TARGET_DIR)/usr/bin/JniHelper.class $(INSTALL) -D -m 755 $(@D)/libjni_native.so $(TARGET_DIR)/usr/lib/libjni_native.so endef $(eval $(generic-package)) ================================================ FILE: support/testing/tests/package/br2-external/polkit/Config.in ================================================ source "$BR2_EXTERNAL_POLKIT_PATH/package/polkit-rules-test/Config.in" ================================================ FILE: support/testing/tests/package/br2-external/polkit/external.desc ================================================ name: POLKIT ================================================ FILE: support/testing/tests/package/br2-external/polkit/external.mk ================================================ include $(sort $(wildcard $(BR2_EXTERNAL_POLKIT_PATH)/package/*/*.mk)) ================================================ FILE: support/testing/tests/package/br2-external/polkit/package/polkit-rules-test/Config.in ================================================ config BR2_PACKAGE_POLKIT_RULES_TEST bool "polkit rules test" depends on BR2_PACKAGE_POLKIT help Simple test to ensure polkit is loading and enforcing rules correctly. ================================================ FILE: support/testing/tests/package/br2-external/polkit/package/polkit-rules-test/initd/hello-polkit.c ================================================ #include int main(void){ printf("Hello polkit!\n"); return 0; } ================================================ FILE: support/testing/tests/package/br2-external/polkit/package/polkit-rules-test/initd/hello-polkit.policy ================================================ Authentication is required to run the hello world test program no no /usr/bin/hello-polkit ================================================ FILE: support/testing/tests/package/br2-external/polkit/package/polkit-rules-test/initd/hello-polkit.rules ================================================ polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.policykit.pkexec.hello-polkit" && subject.user == "brtest") { return polkit.Result.YES; } }); ================================================ FILE: support/testing/tests/package/br2-external/polkit/package/polkit-rules-test/polkit-rules-test.mk ================================================ ################################################################################ # # polkit-rules-test # ################################################################################ POLKIT_RULES_TEST_DEPENDENCIES = polkit define POLKIT_RULES_TEST_USERS brtest -1 brtest -1 =password /home/brtest /bin/sh brtest endef define POLKIT_RULES_TEST_BUILD_CMDS $(INSTALL) -D $(POLKIT_RULES_TEST_PKGDIR)/initd/hello-polkit.c $(@D)/hello-polkit.c $(TARGET_CC) $(@D)/hello-polkit.c -o $(@D)/hello-polkit endef # Install the rules file to /root. Test_polkit.py first tests that restarting # timesyncd as a user fails, then moves the rules file and confirmes restarting # timesyncd as a user succeeds. define POLKIT_RULES_TEST_INSTALL_INIT_SYSTEMD mkdir -p $(TARGET_DIR)/etc/polkit-1/rules.d $(INSTALL) -D $(POLKIT_RULES_TEST_PKGDIR)/systemd/systemd-timesyncd-restart.rules \ $(TARGET_DIR)/root/systemd-timesyncd-restart.rules endef define POLKIT_RULES_TEST_INSTALL_INIT_SYSV mkdir -p $(TARGET_DIR)/usr/share/polkit-1/actions/ $(INSTALL) -D $(@D)/hello-polkit $(TARGET_DIR)/usr/bin/hello-polkit $(INSTALL) -D $(POLKIT_RULES_TEST_PKGDIR)/initd/hello-polkit.policy \ $(TARGET_DIR)/usr/share/polkit-1/actions/hello-polkit.policy $(INSTALL) -D $(POLKIT_RULES_TEST_PKGDIR)/initd/hello-polkit.rules \ $(TARGET_DIR)/root/hello-polkit.rules endef $(eval $(generic-package)) ================================================ FILE: support/testing/tests/package/br2-external/polkit/package/polkit-rules-test/systemd/systemd-timesyncd-restart.rules ================================================ polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.systemd1.manage-units" && action.lookup("unit") == "systemd-timesyncd.service" && subject.user == "brtest") { return polkit.Result.YES; } }); ================================================ FILE: support/testing/tests/package/copy-sample-script-to-target.sh ================================================ #!/bin/sh set -e shift for file in "$@"; do cp -f "${file}" "${TARGET_DIR}/root/" done ================================================ FILE: support/testing/tests/package/sample_bmap_tools.sh ================================================ #!/bin/sh # simple test which creates a dummy file system image, then use bmaptool create # and bmaptool copy to copy it to another file set -xeu # create the necessary test files dd if=/dev/zero of=disk.img bs=2M count=1 mkfs.ext4 disk.img fallocate -d disk.img dd if=/dev/zero of=copy.img bs=2M count=1 # do a test copy of the file system image bmaptool create -o disk.img.bmap disk.img bmaptool copy disk.img copy.img cmp disk.img copy.img ================================================ FILE: support/testing/tests/package/sample_gst1_python.py ================================================ #!/usr/bin/env python3 """A simple test that uses gst1-python to run a fake videotestsrc for 100 frames """ import sys import gi gi.require_version('Gst', '1.0') from gi.repository import Gst, GLib # noqa: E402 def on_message(bus, message, loop): print('Received Gst.Message.type: {}'.format(message.type)) if message.type == Gst.MessageType.EOS: loop.quit() return True def main(): # Initializes Gstreamer Gst.init(sys.argv) pipeline = Gst.parse_launch("videotestsrc num-buffers=100 ! fakevideosink") bus = pipeline.get_bus() bus.add_signal_watch() pipeline.set_state(Gst.State.PLAYING) loop = GLib.MainLoop() bus.connect("message", on_message, loop) loop.run() pipeline.set_state(Gst.State.NULL) if __name__ == '__main__': main() ================================================ FILE: support/testing/tests/package/sample_libftdi1.py ================================================ import ftdi1 # noqa ================================================ FILE: support/testing/tests/package/sample_python_argh.py ================================================ import argh @argh.arg("foo", help="help for foo") @argh.arg("--bar", help="help for bar") def main(foo, bar=False): print("{}, {}".format(foo, bar)) argh.dispatch_command(main) ================================================ FILE: support/testing/tests/package/sample_python_attrs.py ================================================ import attr @attr.s class Obj(object): x = attr.ib() y = attr.ib(default=1) obj1 = Obj(2) assert(obj1.x == 2) assert(obj1.y == 1) obj2 = Obj(3, 4) assert(obj2.x == 3) assert(obj2.y == 4) ================================================ FILE: support/testing/tests/package/sample_python_augeas.py ================================================ import augeas a = augeas.Augeas(root="/") hosts = a.match("/files/etc/hosts/*") assert(hosts is not None) assert(len(hosts) == 2) assert(a.get("/files/etc/hosts/1/ipaddr") == "127.0.0.1") assert(a.get("/files/etc/hosts/1/canonical") == "localhost") ================================================ FILE: support/testing/tests/package/sample_python_autobahn.py ================================================ import autobahn.wamp # noqa ================================================ FILE: support/testing/tests/package/sample_python_automat.py ================================================ from automat import MethodicalMachine class Led(object): _machine = MethodicalMachine() @_machine.state() def led_on(self): "led is on" @_machine.state(initial=True) def led_off(self): "led is off" @_machine.input() def turn_on(self): "turn the led on" @_machine.output() def _light(self): print("light") led_off.upon(turn_on, enter=led_on, outputs=[_light]) led = Led() led.turn_on() ================================================ FILE: support/testing/tests/package/sample_python_avro.py ================================================ from io import BytesIO from avro.schema import Parse from avro.io import DatumReader, BinaryDecoder schema = Parse("""{ "namespace": "org.buildroot.package.python_avro", "type": "record", "name": "Developer", "fields": [ {"name": "email", "type": "string"}, {"name": "maintainer_of", "type": "string"} ] }""") example = b' RESULT.FAIL.value) assert(RESULT.get(-5) == RESULT.FAIL) ================================================ FILE: support/testing/tests/package/sample_python_crossbar.py ================================================ import os import crossbar os.environ["AUTOBAHN_USE_UMSGPACK"] = "1" crossbar.run(["version"]) ================================================ FILE: support/testing/tests/package/sample_python_cryptography.py ================================================ from cryptography.fernet import Fernet key = Fernet.generate_key() f = Fernet(key) ================================================ FILE: support/testing/tests/package/sample_python_dbus_fast.py ================================================ import asyncio from dbus_fast.aio import MessageBus from dbus_fast.service import ServiceInterface, method import dbus_fast.introspection as intr from dbus_fast import BusType class SampleInterface(ServiceInterface): def __init__(self): super().__init__('test.interface') @method() def Ping(self): pass @method() def ConcatStrings(self, what1: 's', what2: 's') -> 's': # noqa: F821 return what1 + what2 async def main(): bus_name = 'dbus.fast.sample' obj_path = '/test/path' bus = await MessageBus(bus_type=BusType.SYSTEM).connect() bus2 = await MessageBus(bus_type=BusType.SYSTEM).connect() await bus.request_name(bus_name) service_interface = SampleInterface() bus.export(obj_path, service_interface) introspection = await bus2.introspect(bus_name, obj_path) assert type(introspection) is intr.Node obj = bus2.get_proxy_object(bus_name, obj_path, introspection) interface = obj.get_interface(service_interface.name) result = await interface.call_ping() assert result is None result = await interface.call_concat_strings('hello ', 'world') assert result == 'hello world' asyncio.run(main()) ================================================ FILE: support/testing/tests/package/sample_python_dbus_next.py ================================================ import asyncio from dbus_next.aio import MessageBus from dbus_next.service import ServiceInterface, method import dbus_next.introspection as intr from dbus_next import BusType class SampleInterface(ServiceInterface): def __init__(self): super().__init__('test.interface') @method() def Ping(self): pass @method() def ConcatStrings(self, what1: 's', what2: 's') -> 's': # noqa: F821 return what1 + what2 async def main(): bus_name = 'dbus.next.sample' bus = await MessageBus(bus_type=BusType.SYSTEM).connect() bus2 = await MessageBus(bus_type=BusType.SYSTEM).connect() await bus.request_name(bus_name) service_interface = SampleInterface() bus.export('/test/path', service_interface) introspection = await bus2.introspect(bus_name, '/test/path') assert type(introspection) is intr.Node obj = bus2.get_proxy_object(bus_name, '/test/path', introspection) interface = obj.get_interface(service_interface.name) result = await interface.call_ping() assert result is None result = await interface.call_concat_strings('hello ', 'world') assert result == 'hello world' asyncio.run(main()) ================================================ FILE: support/testing/tests/package/sample_python_django.py ================================================ import django # noqa: F401 ================================================ FILE: support/testing/tests/package/sample_python_flask.py ================================================ from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' ================================================ FILE: support/testing/tests/package/sample_python_flask_expects_json.py ================================================ from flask import Flask from flask_expects_json import expects_json app = Flask(__name__) schema = { 'type': 'object', 'properties': { 'name': {'type': 'string'}, 'email': {'type': 'string'}, }, 'required': ['name', 'email'] } @app.route('/', methods=['POST']) @expects_json(schema) def hello_world(): return 'Hello, World!' ================================================ FILE: support/testing/tests/package/sample_python_git.py ================================================ from git import * # noqa ================================================ FILE: support/testing/tests/package/sample_python_gitdb2.py ================================================ from gitdb import * # noqa ================================================ FILE: support/testing/tests/package/sample_python_gobject.py ================================================ #!/usr/bin/env python3 """A simple test that uses python-gobject to find the path of sh.""" from gi.repository import GLib def main(): sh_path = GLib.find_program_in_path('sh') if sh_path == "/bin/sh": return True return False if __name__ == '__main__': main() ================================================ FILE: support/testing/tests/package/sample_python_gpiozero.py ================================================ from gpiozero import pi_info piBoardInfo = pi_info('a020d3') # 3B+ assert(piBoardInfo.model == '3B+') ================================================ FILE: support/testing/tests/package/sample_python_incremental.py ================================================ import incremental v = incremental.Version("package", 1, 2, 3, release_candidate=4) assert(str(v) == "[package, version 1.2.3.rc4]") ================================================ FILE: support/testing/tests/package/sample_python_passlib.py ================================================ from passlib.hash import pbkdf2_sha256 hash = pbkdf2_sha256.hash("password") assert(pbkdf2_sha256.verify("passWord", hash) is False) assert(pbkdf2_sha256.verify("password", hash) is True) ================================================ FILE: support/testing/tests/package/sample_python_pexpect.py ================================================ import pexpect p = pexpect.spawn(["login"]) p.expect("login:") p.sendline("wrong") p.expect("Password:") p.sendline("wrong") p.expect("Login incorrect") ================================================ FILE: support/testing/tests/package/sample_python_pynacl.py ================================================ import nacl.utils nonce = nacl.utils.random(16) ================================================ FILE: support/testing/tests/package/sample_python_pytest.py ================================================ import pytest x = 1 @pytest.fixture() def f1(): global x x = 2 yield 15 x = 3 def test_1(): assert x == 1 def test_2(f1): assert x == 2 assert f1 == 15 def test_3(): assert x == 3 ================================================ FILE: support/testing/tests/package/sample_python_pytest_asyncio.py ================================================ import asyncio import pytest x = 1 @pytest.fixture() def f1(): global x x = 2 yield 15 x = 3 @pytest.mark.asyncio async def test_1(): assert x == 1 @pytest.mark.asyncio async def test_2(f1): assert x == 2 assert f1 == 15 @pytest.mark.asyncio async def test_3(): assert x == 3 await asyncio.sleep(0.1) assert x == 3 ================================================ FILE: support/testing/tests/package/sample_python_pyyaml_dec.py ================================================ import yaml with open("/tmp/data.yml", "rb") as f: serialized = f.read() data = yaml.load(serialized) print(data) assert(data["name"] == "python-pyyaml") assert(data["versions"] == ["1", "2"]) assert(data["group"]["is_a_package"] is True) assert(data["group"]["value"] == 42) ================================================ FILE: support/testing/tests/package/sample_python_pyyaml_enc.py ================================================ import yaml data = { "name": "python-pyyaml", "versions": ["1", "2"], "group": { "is_a_package": True, "value": 42 } } serialized = yaml.dump(data, default_flow_style=False) print(serialized) with open("/tmp/data.yml", "w") as f: f.write(serialized) ================================================ FILE: support/testing/tests/package/sample_python_rpi_gpio.py ================================================ try: import RPi.GPIO # noqa except RuntimeError as e: assert(str(e) == 'This module can only be run on a Raspberry Pi!') else: raise RuntimeError('Import succeeded when it should not have!') ================================================ FILE: support/testing/tests/package/sample_python_rsa.py ================================================ import rsa (pubkey, privkey) = rsa.newkeys(512) ================================================ FILE: support/testing/tests/package/sample_python_service_identity.py ================================================ from service_identity import VerificationError # noqa from service_identity.pyopenssl import verify_hostname # noqa ================================================ FILE: support/testing/tests/package/sample_python_smmap2.py ================================================ # Taken from smmap/test/test_tutorial.py import smmap mman = smmap.SlidingWindowMapManager() assert mman.num_file_handles() == 0 assert mman.mapped_memory_size() == 0 ================================================ FILE: support/testing/tests/package/sample_python_subprocess32.py ================================================ import subprocess32 output = subprocess32.check_output(["ls", "-l", "/dev/null"]) print(output) assert("/dev/null" in output) assert("No such" not in output) ================================================ FILE: support/testing/tests/package/sample_python_treq.py ================================================ from twisted.internet import reactor import treq def done(response): print(response.code) reactor.stop() def err(fail): print(fail.value) reactor.stop() treq.get("https://localhost").addCallback(done).addErrback(err) reactor.run() ================================================ FILE: support/testing/tests/package/sample_python_twisted.py ================================================ from twisted.internet import protocol, reactor, endpoints class F(protocol.Factory): pass endpoints.serverFromString(reactor, "tcp:1234").listen(F()) reactor.run() ================================================ FILE: support/testing/tests/package/sample_python_txaio_asyncio.py ================================================ import txaio txaio.use_asyncio() f0 = txaio.create_future() ================================================ FILE: support/testing/tests/package/sample_python_txaio_twisted.py ================================================ import txaio txaio.use_twisted() f0 = txaio.create_future() ================================================ FILE: support/testing/tests/package/sample_python_txtorcon.py ================================================ import txtorcon # noqa ================================================ FILE: support/testing/tests/package/sample_python_ubjson_dec.py ================================================ import ubjson with open("/tmp/data.json", "rb") as f: serialized = f.read() data = ubjson.loadb(serialized) print(data) assert(data["name"] == "python-ubjson") assert(data["versions"] == ["1", "2"]) assert(data["group"]["is_a_package"] is True) assert(data["group"]["value"] == 42) ================================================ FILE: support/testing/tests/package/sample_python_ubjson_enc.py ================================================ import ubjson data = { "name": "python-ubjson", "versions": ["1", "2"], "group": { "is_a_package": True, "value": 42 } } serialized = ubjson.dumpb(data) print(serialized) with open("/tmp/data.json", "wb") as f: f.write(serialized) ================================================ FILE: support/testing/tests/package/sample_python_unittest_xml_reporting.py ================================================ import unittest import xmlrunner class Test1(unittest.TestCase): def test_something(self): self.assertTrue(True) if __name__ == '__main__': unittest.main(testRunner=xmlrunner.XMLTestRunner(output='test-reports')) ================================================ FILE: support/testing/tests/package/test_atop.py ================================================ import os import infra.basetest BASIC_TOOLCHAIN_CONFIG_HEADERS_AT_LEAST_3_14 = \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2019.05.1.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_14=y BR2_TOOLCHAIN_EXTERNAL_LOCALE=y # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set BR2_TOOLCHAIN_EXTERNAL_CXX=y """ class TestAtop(infra.basetest.BRTest): config = BASIC_TOOLCHAIN_CONFIG_HEADERS_AT_LEAST_3_14 + \ """ BR2_PACKAGE_ATOP=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() cmd = "atop -V | grep '^Version'" self.assertRunOk(cmd) cmd = "atop -a 1 2 | grep '% *atop *$'" self.assertRunOk(cmd) ================================================ FILE: support/testing/tests/package/test_bmap_tools.py ================================================ import os import infra import subprocess from infra.basetest import BRTest class TestBmapTools(BRTest): __test__ = False sample_script = "tests/package/sample_bmap_tools.sh" copy_script = 'tests/package/copy-sample-script-to-target.sh' config = \ """ BR2_arm=y BR2_cortex_a8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_BMAP_TOOLS=y BR2_ROOTFS_POST_BUILD_SCRIPT="{}" BR2_ROOTFS_POST_SCRIPT_ARGS="{}" BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y BR2_TARGET_ROOTFS_EXT2_SIZE="65536" # BR2_TARGET_ROOTFS_TAR is not set BR2_PACKAGE_UTIL_LINUX=y BR2_PACKAGE_UTIL_LINUX_FALLOCATE=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_UTIL_LINUX_LIBUUID=y """.format(infra.filepath(copy_script), infra.filepath(sample_script)) timeout = 60 def login(self): img = os.path.join(self.builddir, "images", "rootfs.ext4") self.emulator.boot(arch="armv7", kernel="builtin", kernel_cmdline=["root=/dev/mmcblk0", "rootfstype=ext4"], options=["-drive", "file={},if=sd,format=raw".format(img)]) self.emulator.login() def test_run(self): self.login() cmd = "/root/{}".format(os.path.basename(self.sample_script)) self.assertRunOk(cmd, timeout=20) class TestPy2BmapTools(TestBmapTools): __test__ = True config = TestBmapTools.config + \ """ BR2_PACKAGE_PYTHON=y """ class TestPy3BmapTools(TestBmapTools): __test__ = True config = TestBmapTools.config + \ """ BR2_PACKAGE_PYTHON3=y """ class TestHostBmapTools(BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_PACKAGE_HOST_BMAP_TOOLS=y # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_EXT2=y """ def test_run(self): bmap_x = os.path.join(self.b.builddir, "host", "bin", "bmaptool") src_f = os.path.join(self.b.builddir, "images", "rootfs.ext2") dst_f = os.path.join(self.b.builddir, "images", "rootfs.ext2.copy") map_f = os.path.join(self.b.builddir, "images", "rootfs.ext2.bmap") ret = subprocess.call([bmap_x, "create", "-o", map_f, src_f], stdout=self.b.logfile, stderr=self.b.logfile) self.assertEqual(ret, 0) ret = subprocess.call([bmap_x, "copy", src_f, dst_f], stdout=self.b.logfile, stderr=self.b.logfile) self.assertEqual(ret, 0) with open(src_f, 'rb') as f: src = f.read() with open(dst_f, 'rb') as f: dst = f.read() self.assertEqual(src, dst) ================================================ FILE: support/testing/tests/package/test_crudini.py ================================================ import os from tests.package.test_python import TestPythonPackageBase INI_FILE_CONTENT = """ [section] param = this-is-the-magic-value other = dont care """ class TestCrudiniBase(TestPythonPackageBase): config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_CRUDINI=y """ def test_run(self): img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", img]) self.emulator.login() # 1. Create some sample .ini file cmd = "echo -e '%s' > config.ini" % INI_FILE_CONTENT _, ret = self.emulator.run(cmd) self.assertEqual(ret, 0) # 2. Attempt to get the value out, ret = self.emulator.run("crudini --get config.ini section param") self.assertEqual(ret, 0) self.assertEqual(out, ['this-is-the-magic-value']) class TestCrudiniPy2(TestCrudiniBase): __test__ = True config = TestCrudiniBase.config + \ """ BR2_PACKAGE_PYTHON=y """ class TestCrudiniPy3(TestCrudiniBase): __test__ = True config = TestCrudiniBase.config + \ """ BR2_PACKAGE_PYTHON3=y """ ================================================ FILE: support/testing/tests/package/test_docker_compose.py ================================================ import os import infra.basetest class TestDockerCompose(infra.basetest.BRTest): config = \ """ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_STABLE=y BR2_SYSTEM_DHCP="eth0" BR2_ROOTFS_POST_BUILD_SCRIPT="{}" BR2_ROOTFS_POST_SCRIPT_ARGS="{}" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.204" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="{}" BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_DOCKER_CLI=y BR2_PACKAGE_DOCKER_COMPOSE=y BR2_PACKAGE_DOCKER_ENGINE=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_SIZE="512M" # BR2_TARGET_ROOTFS_TAR is not set """.format( infra.filepath("tests/package/copy-sample-script-to-target.sh"), infra.filepath("conf/docker-compose.yml"), infra.filepath("conf/docker-compose-kernel.config")) def wait_for_dockerd(self): # dockerd takes a while to start up _, _ = self.emulator.run('while [ ! -e /var/run/docker.sock ]; do sleep 1; done', 120) def docker_test(self): # will download container if not available, which may take some time self.assertRunOk('docker run --rm -p 8888:8888 busybox:latest /bin/true', 120) def docker_compose_test(self): # will download container if not available, which may take some time self.assertRunOk('docker-compose up -d', 120) # container may take some time to start self.assertRunOk('while ! docker inspect root_busybox_1 2>&1 >/dev/null; do sleep 1; done', 120) self.assertRunOk('wget -O /tmp/busybox http://127.0.0.1/busybox', 120) self.assertRunOk('cmp /bin/busybox /tmp/busybox', 120) def test_run(self): kernel = os.path.join(self.builddir, "images", "bzImage") rootfs = os.path.join(self.builddir, "images", "rootfs.ext2") self.emulator.boot(arch="x86_64", kernel=kernel, kernel_cmdline=["root=/dev/vda", "console=ttyS0"], options=["-cpu", "Nehalem", "-m", "512M", "-device", "virtio-rng-pci", "-drive", "file={},format=raw,if=virtio".format(rootfs), "-net", "nic,model=virtio", "-net", "user"]) self.emulator.login() self.wait_for_dockerd() self.docker_test() self.docker_compose_test() ================================================ FILE: support/testing/tests/package/test_dropbear.py ================================================ import os import infra.basetest class TestDropbear(infra.basetest.BRTest): passwd = "testpwd" config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_GENERIC_ROOT_PASSWD="{}" BR2_SYSTEM_DHCP="eth0" BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_SSHPASS=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """.format(passwd) def test_run(self): img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", img, "-net", "nic", "-net", "user"]) self.emulator.login(self.passwd) cmd = "netstat -ltn 2>/dev/null | grep 0.0.0.0:22" self.assertRunOk(cmd) cmd = "sshpass -p {} ssh -y localhost /bin/true".format(self.passwd) self.assertRunOk(cmd) ================================================ FILE: support/testing/tests/package/test_dtbocfg.py ================================================ import os import infra.basetest class TestDtbocfg(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.7" BR2_LINUX_KERNEL_USE_DEFCONFIG=y BR2_LINUX_KERNEL_DEFCONFIG="vexpress" BR2_PACKAGE_DTBOCFG=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): img = os.path.join(self.builddir, "images", "rootfs.cpio") kernel = os.path.join(self.builddir, "images", "zImage") kernel_cmdline = ["console=ttyAMA0"] dtb = infra.download(self.downloaddir, "vexpress-v2p-ca9.dtb") options = ["-M", "vexpress-a9", "-dtb", dtb, "-initrd", img] self.emulator.boot(arch="armv7", kernel=kernel, kernel_cmdline=kernel_cmdline, options=options) self.emulator.login() self.assertRunOk("modprobe dtbocfg.ko") self.assertRunOk("mkdir /tmp/config && mount -t configfs none /tmp/config") # Check that overlays directory is present. # From dtbocfg site (https://github.com/ikwzm/dtbocfg): # If /config/device-tree/overlays is created, it is ready to use # dtbocfg self.assertRunOk("ls /tmp/config/device-tree/overlays/") ================================================ FILE: support/testing/tests/package/test_execline.py ================================================ import os import infra.basetest class TestExecline(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_PACKAGE_EXECLINE=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", img]) self.emulator.login() output, exit_code = self.emulator.run("execlineb -c 'echo hello world'") self.assertEqual(exit_code, 0) self.assertEqual(output[0].strip(), "hello world") ================================================ FILE: support/testing/tests/package/test_gdb.py ================================================ import os import infra.basetest class BaseGdb(infra.basetest.BRTest): def verify_host_gdb(self, prefix="arm-linux"): cmd = ["host/bin/%s-gdb" % prefix, "--version"] # We don't check the return value, as it automatically raises # an exception if the command returns with a non-zero value infra.run_cmd_on_host(self.builddir, cmd) def boot(self): img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", img, "-net", "nic", "-net", "user"]) self.emulator.login() def verify_gdbserver(self): cmd = "gdbserver --version" self.assertRunOk(cmd) def verify_gdb(self): cmd = "gdb --version" self.assertRunOk(cmd) class TestGdbHostOnlyDefault(BaseGdb): config = \ infra.basetest.MINIMAL_CONFIG + \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_HOST_GDB=y """ def test_run(self): self.verify_host_gdb() class TestGdbHostOnlyAllFeatures(BaseGdb): config = \ infra.basetest.MINIMAL_CONFIG + \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_HOST_GDB=y BR2_PACKAGE_HOST_GDB_TUI=y BR2_PACKAGE_HOST_GDB_PYTHON3=y BR2_PACKAGE_HOST_GDB_SIM=y """ def test_run(self): self.verify_host_gdb() class TestGdbserverOnly(BaseGdb): config = \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_GDB=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): self.boot() self.verify_gdbserver() class TestGdbFullTarget(BaseGdb): config = \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_GDB=y BR2_PACKAGE_GDB_DEBUGGER=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): self.boot() self.verify_gdb() class TestGdbHostOnly9x(BaseGdb): config = \ infra.basetest.MINIMAL_CONFIG + \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_HOST_GDB=y BR2_GDB_VERSION_9_2=y """ def test_run(self): self.verify_host_gdb() class TestGdbHostGdbserver9x(BaseGdb): config = \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_HOST_GDB=y BR2_GDB_VERSION_9_2=y BR2_PACKAGE_GDB=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): self.verify_host_gdb() self.boot() self.verify_gdbserver() class TestGdbHostGdbTarget9x(BaseGdb): config = \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_HOST_GDB=y BR2_GDB_VERSION_9_2=y BR2_PACKAGE_GDB=y BR2_PACKAGE_GDB_DEBUGGER=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): self.verify_host_gdb() self.boot() self.verify_gdb() class TestGdbHostOnly11x(BaseGdb): config = \ infra.basetest.MINIMAL_CONFIG + \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_HOST_GDB=y BR2_GDB_VERSION_11=y """ def test_run(self): self.verify_host_gdb() class TestGdbHostGdbserver11x(BaseGdb): config = \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_HOST_GDB=y BR2_GDB_VERSION_11=y BR2_PACKAGE_GDB=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): self.verify_host_gdb() self.boot() self.verify_gdbserver() class TestGdbHostGdbTarget11x(BaseGdb): config = \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_HOST_GDB=y BR2_GDB_VERSION_11=y BR2_PACKAGE_GDB=y BR2_PACKAGE_GDB_DEBUGGER=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): self.verify_host_gdb() self.boot() self.verify_gdb() class TestGdbArc(BaseGdb): config = \ """ BR2_arcle=y BR2_archs4x_rel31=y BR2_TOOLCHAIN_EXTERNAL=y BR2_PACKAGE_HOST_GDB=y BR2_PACKAGE_GDB=y BR2_PACKAGE_GDB_SERVER=y BR2_PACKAGE_GDB_DEBUGGER=y """ def test_run(self): self.verify_host_gdb("arc-linux") ================================================ FILE: support/testing/tests/package/test_glxinfo/rootfs-overlay/etc/X11/xorg.conf.d/01-modules.conf ================================================ # Xorg does not implement real dynamic linking and requires that its # modules get loaded in the right order. # https://forums.gentoo.org/viewtopic-p-8245578.html#8245578 Section "Module" Load "vgahw" Load "fb" Load "shadowfb" Load "shadow" Load "glamoregl" EndSection ================================================ FILE: support/testing/tests/package/test_glxinfo.py ================================================ import os import infra.basetest GLXINFO_TIMEOUT = 120 class TestGlxinfo(infra.basetest.BRTest): config = \ """ BR2_x86_core2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs/x86-core2--glibc--bleeding-edge-2018.11-1.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_8=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_14=y BR2_TOOLCHAIN_EXTERNAL_CXX=y BR2_TOOLCHAIN_EXTERNAL_HAS_SSP=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.204" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86/linux.config" BR2_PACKAGE_MESA3D_DEMOS=y BR2_PACKAGE_MESA3D=y BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST=y BR2_PACKAGE_MESA3D_OPENGL_GLX=y BR2_PACKAGE_XORG7=y BR2_PACKAGE_XSERVER_XORG_SERVER=y BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set BR2_ROOTFS_OVERLAY="{}" """.format( infra.filepath("tests/package/test_glxinfo/rootfs-overlay")) def wait_for_xserver(self): # xserver takes some time to start up # The test case fail here if for some reason xserver is not properly installed _, _ = self.emulator.run('while [ ! -e /var/run/xorg.pid ]; do sleep 1; done', 120) def login(self): img = os.path.join(self.builddir, "images", "rootfs.ext2") kern = os.path.join(self.builddir, "images", "bzImage") # glxinfo overallocate memory and the minimum that seemed to work was 512MB self.emulator.boot(arch="i386", kernel=kern, kernel_cmdline=["root=/dev/vda console=ttyS0"], options=["-M", "pc", "-m", "512", "-drive", "file={},if=virtio,format=raw".format(img)]) self.emulator.login() def test_run(self): self.login() self.wait_for_xserver() # The test case verifies that the xserver with GLX is working cmd = "glxinfo -B -display :0" output, exit_code = self.emulator.run(cmd, GLXINFO_TIMEOUT) self.assertEqual(exit_code, 0) for line in output: self.assertNotIn("Error", line) # Error case: "Error: couldn't find RGB GLX visual or fbconfig" ================================================ FILE: support/testing/tests/package/test_gst1_python.py ================================================ import os from tests.package.test_python import TestPythonPackageBase class TestGst1Python(TestPythonPackageBase): __test__ = True config = \ """ BR2_arm=y BR2_cortex_a9=y BR2_ARM_ENABLE_VFP=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM=y BR2_PACKAGE_GSTREAMER1=y BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOTESTSRC=y BR2_PACKAGE_GST1_PLUGINS_BAD=y BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DEBUGUTILS=y BR2_PACKAGE_GST1_PYTHON=y BR2_PACKAGE_PYTHON3=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def login(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv7", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() sample_scripts = ["tests/package/sample_gst1_python.py"] timeout = 200 ================================================ FILE: support/testing/tests/package/test_ipython.py ================================================ from tests.package.test_python import TestPythonBase # # The following pythong tests are not being used here: # # - version_test: IPython does not support --version option # # - zlib_test: IPython does not return a non-zero code the way CPython # does, so this test ends up being a false-negative class TestIPythonPy3(TestPythonBase): config = TestPythonBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_IPYTHON=y """ interpreter = "ipython" def test_run(self): self.login() self.math_floor_test(40) self.libc_time_test(40) ================================================ FILE: support/testing/tests/package/test_libftdi1.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy2Libftdi1(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON=y BR2_PACKAGE_LIBFTDI1=y BR2_PACKAGE_LIBFTDI1_PYTHON_BINDINGS=y """ sample_scripts = ["tests/package/sample_libftdi1.py"] timeout = 40 class TestPythonPy3Libftdi1(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_LIBFTDI1=y BR2_PACKAGE_LIBFTDI1_PYTHON_BINDINGS=y """ sample_scripts = ["tests/package/sample_libftdi1.py"] timeout = 40 ================================================ FILE: support/testing/tests/package/test_lpeg.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLPeg(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LPEG=y """ def test_run(self): self.login() self.module_test("lpeg") self.module_test("re") class TestLuajitLPeg(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LPEG=y """ def test_run(self): self.login() self.module_test("lpeg") self.module_test("re") ================================================ FILE: support/testing/tests/package/test_lsqlite3.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLsqlite3(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LSQLITE3=y """ def test_run(self): self.login() self.module_test("lsqlite3") class TestLuajitLsqlite3(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LSQLITE3=y """ def test_run(self): self.login() self.module_test("lsqlite3") ================================================ FILE: support/testing/tests/package/test_lua.py ================================================ import os import infra.basetest class TestLuaBase(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def login(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() def version_test(self, version): cmd = "lua -v" output, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 0) self.assertIn(version, output[0]) def g_version_test(self, expected): cmd = "lua -e 'print(_G._VERSION)'" output, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 0) self.assertEqual(output[0], expected) def module_test(self, module, script="a=1"): cmd = "lua -l {} -e '{}'".format(module, script) self.assertRunOk(cmd) class TestLua(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y """ def test_run(self): self.login() self.version_test('Lua 5.3') self.g_version_test('Lua 5.3') class TestLuajit(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y """ def test_run(self): self.login() self.version_test('LuaJIT 2') self.g_version_test('Lua 5.1') ================================================ FILE: support/testing/tests/package/test_lua_augeas.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuaAugeas(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_AUGEAS=y BR2_PACKAGE_LUA_AUGEAS=y """ def test_run(self): self.login() self.module_test("augeas") class TestLuajitLuaAugeas(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_AUGEAS=y BR2_PACKAGE_LUA_AUGEAS=y """ def test_run(self): self.login() self.module_test("augeas") ================================================ FILE: support/testing/tests/package/test_lua_cqueues.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuaCqueues(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUA_CQUEUES=y """ def test_run(self): self.login() self.module_test("_cqueues") self.module_test("cqueues") self.module_test("cqueues.auxlib") self.module_test("cqueues.condition") self.module_test("cqueues.dns") self.module_test("cqueues.dns.config") self.module_test("cqueues.dns.hints") self.module_test("cqueues.dns.hosts") self.module_test("cqueues.dns.packet") self.module_test("cqueues.dns.record") self.module_test("cqueues.dns.resolver") self.module_test("cqueues.dns.resolvers") self.module_test("cqueues.errno") self.module_test("cqueues.notify") self.module_test("cqueues.promise") self.module_test("cqueues.signal") self.module_test("cqueues.socket") self.module_test("cqueues.thread") class TestLuajitLuaCqueues(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUA_CQUEUES=y """ def test_run(self): self.login() self.module_test("_cqueues") self.module_test("cqueues") self.module_test("cqueues.auxlib") self.module_test("cqueues.condition") self.module_test("cqueues.dns") self.module_test("cqueues.dns.config") self.module_test("cqueues.dns.hints") self.module_test("cqueues.dns.hosts") self.module_test("cqueues.dns.packet") self.module_test("cqueues.dns.record") self.module_test("cqueues.dns.resolver") self.module_test("cqueues.dns.resolvers") self.module_test("cqueues.errno") self.module_test("cqueues.notify") self.module_test("cqueues.promise") self.module_test("cqueues.signal") self.module_test("cqueues.socket") self.module_test("cqueues.thread") ================================================ FILE: support/testing/tests/package/test_lua_curl.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuacURL(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUA_CURL=y """ def test_run(self): self.login() self.module_test("cURL") self.module_test("lcurl") class TestLuajitLuacURL(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUA_CURL=y """ def test_run(self): self.login() self.module_test("cURL") self.module_test("lcurl") ================================================ FILE: support/testing/tests/package/test_lua_gd.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuaGD(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUA_GD=y BR2_PACKAGE_FONTCONFIG=y BR2_PACKAGE_JPEG=y BR2_PACKAGE_LIBPNG=y """ def test_run(self): self.login() self.module_test("gd") class TestLuajitLuaGD(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUA_GD=y BR2_PACKAGE_FONTCONFIG=y BR2_PACKAGE_JPEG=y BR2_PACKAGE_LIBPNG=y """ def test_run(self): self.login() self.module_test("gd") ================================================ FILE: support/testing/tests/package/test_lua_http.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaHttp(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUA_HTTP=y """ def test_run(self): self.login() self.module_test("http.version", script="local ver=require[[http.version]]; print(ver.name, ver.version)") self.module_test("http.client") self.module_test("http.cookie") self.module_test("http.proxies") self.module_test("http.server") self.module_test("http.socks") self.module_test("http.websocket") class TestLuajitHttp(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUA_HTTP=y """ def test_run(self): self.login() self.module_test("http.version", script="local ver=require[[http.version]]; print(ver.name, ver.version)") self.module_test("http.client") self.module_test("http.cookie") self.module_test("http.proxies") self.module_test("http.server") self.module_test("http.socks") self.module_test("http.websocket") ================================================ FILE: support/testing/tests/package/test_lua_lunix.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLunix(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUA_LUNIX=y """ def test_run(self): self.login() self.module_test("unix") class TestLuajitLunix(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUA_LUNIX=y """ def test_run(self): self.login() self.module_test("unix") ================================================ FILE: support/testing/tests/package/test_lua_lyaml.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuaLyaml(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUA_LYAML=y """ def test_run(self): self.login() self.module_test("yaml") self.module_test("lyaml") class TestLuajitLuaLyaml(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUA_LYAML=y """ def test_run(self): self.login() self.module_test("yaml") self.module_test("lyaml") ================================================ FILE: support/testing/tests/package/test_lua_sdl2.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuaSDL2(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUA_SDL2=y BR2_PACKAGE_SDL2_IMAGE=y BR2_PACKAGE_SDL2_MIXER=y BR2_PACKAGE_SDL2_NET=y BR2_PACKAGE_SDL2_TTF=y """ def test_run(self): self.login() self.module_test("SDL") self.module_test("SDL.image") self.module_test("SDL.mixer") self.module_test("SDL.net") self.module_test("SDL.ttf") class TestLuajitLuaSDL2(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUA_SDL2=y BR2_PACKAGE_SDL2_IMAGE=y BR2_PACKAGE_SDL2_MIXER=y BR2_PACKAGE_SDL2_NET=y BR2_PACKAGE_SDL2_TTF=y """ def test_run(self): self.login() self.module_test("SDL") self.module_test("SDL.image") self.module_test("SDL.mixer") self.module_test("SDL.net") self.module_test("SDL.ttf") ================================================ FILE: support/testing/tests/package/test_lua_utf8.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaUtf8(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUA_UTF8=y """ def test_run(self): self.login() self.module_test("lua-utf8") class TestLuajitUtf8(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUA_UTF8=y """ def test_run(self): self.login() self.module_test("lua-utf8") ================================================ FILE: support/testing/tests/package/test_lua_zlib.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuazlib(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUA_ZLIB=y """ def test_run(self): self.login() self.module_test("zlib") class TestLuajitLuazlib(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUA_ZLIB=y """ def test_run(self): self.login() self.module_test("zlib") ================================================ FILE: support/testing/tests/package/test_luaexpat.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuaExpat(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUAEXPAT=y """ def test_run(self): self.login() self.module_test("lxp") class TestLuajitLuaExpat(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUAEXPAT=y """ def test_run(self): self.login() self.module_test("lxp") ================================================ FILE: support/testing/tests/package/test_luafilesystem.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuaFileSystem(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUAFILESYSTEM=y """ def test_run(self): self.login() self.module_test("lfs") class TestLuajitLuaFileSystem(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUAFILESYSTEM=y """ def test_run(self): self.login() self.module_test("lfs") ================================================ FILE: support/testing/tests/package/test_lualdap.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuaLdap(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUALDAP=y """ def test_run(self): self.login() self.module_test("lualdap") class TestLuajitLuaLdap(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUALDAP=y """ def test_run(self): self.login() self.module_test("lualdap") ================================================ FILE: support/testing/tests/package/test_luaossl.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuaossl(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUAOSSL=y """ def test_run(self): self.login() self.module_test("openssl") self.module_test("_openssl") class TestLuajitLuaossl(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUAOSSL=y """ def test_run(self): self.login() self.module_test("openssl") self.module_test("_openssl") ================================================ FILE: support/testing/tests/package/test_luaposix.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuaPosix(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUAPOSIX=y """ def test_run(self): self.login() self.module_test("posix.version", "print(require[[posix.version]])") self.module_test("posix.ctype") self.module_test("posix.dirent") self.module_test("posix.errno") self.module_test("posix.fcntl") self.module_test("posix.fnmatch") self.module_test("posix.glob") self.module_test("posix.grp") self.module_test("posix.libgen") self.module_test("posix.poll") self.module_test("posix.pwd") self.module_test("posix.sched") self.module_test("posix.signal") self.module_test("posix.stdio") self.module_test("posix.stdlib") self.module_test("posix.sys.msg") self.module_test("posix.sys.resource") self.module_test("posix.sys.socket") self.module_test("posix.sys.stat") self.module_test("posix.sys.statvfs") self.module_test("posix.sys.time") self.module_test("posix.sys.times") self.module_test("posix.sys.utsname") self.module_test("posix.sys.wait") self.module_test("posix.syslog") self.module_test("posix.termio") self.module_test("posix.time") self.module_test("posix.unistd") self.module_test("posix.utime") self.module_test("posix") class TestLuajitLuaPosix(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUAPOSIX=y """ def test_run(self): self.login() self.module_test("posix.version", "print(require[[posix.version]])") self.module_test("posix.ctype") self.module_test("posix.dirent") self.module_test("posix.errno") self.module_test("posix.fcntl") self.module_test("posix.fnmatch") self.module_test("posix.glob") self.module_test("posix.grp") self.module_test("posix.libgen") self.module_test("posix.poll") self.module_test("posix.pwd") self.module_test("posix.sched") self.module_test("posix.signal") self.module_test("posix.stdio") self.module_test("posix.stdlib") self.module_test("posix.sys.msg") self.module_test("posix.sys.resource") self.module_test("posix.sys.socket") self.module_test("posix.sys.stat") self.module_test("posix.sys.statvfs") self.module_test("posix.sys.time") self.module_test("posix.sys.times") self.module_test("posix.sys.utsname") self.module_test("posix.sys.wait") self.module_test("posix.syslog") self.module_test("posix.termio") self.module_test("posix.time") self.module_test("posix.unistd") self.module_test("posix.utime") self.module_test("posix") ================================================ FILE: support/testing/tests/package/test_luasec.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuaSec(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUASEC=y """ def test_run(self): self.login() self.module_test("ssl") class TestLuajitLuaSec(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUASEC=y """ def test_run(self): self.login() self.module_test("ssl") ================================================ FILE: support/testing/tests/package/test_luasocket.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuaSocket(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUASOCKET=y """ def test_run(self): self.login() self.module_test("ltn12") self.module_test("mime") self.module_test("socket") class TestLuajitLuaSocket(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUASOCKET=y """ def test_run(self): self.login() self.module_test("ltn12") self.module_test("mime") self.module_test("socket") ================================================ FILE: support/testing/tests/package/test_luasyslog.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLuasyslog(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUASYSLOG=y """ def test_run(self): self.login() self.module_test("lsyslog") self.module_test("logging.syslog") class TestLuajitLuasyslog(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUASYSLOG=y """ def test_run(self): self.login() self.module_test("lsyslog") self.module_test("logging.syslog") ================================================ FILE: support/testing/tests/package/test_luvi.py ================================================ import os import infra.basetest class TestLuvi(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_LUVI=y BR2_PACKAGE_OPENSSL=y BR2_PACKAGE_PCRE=y BR2_PACKAGE_ZLIB=y """ def login(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() def version_test(self): cmd = "luvi -v" output, exit_code = self.emulator.run(cmd) output = sorted(output) self.assertIn('libuv', output[0]) self.assertIn('luvi', output[1]) self.assertIn('rex', output[2]) self.assertIn('ssl', output[3]) self.assertIn('zlib', output[4]) def test_run(self): self.login() self.version_test() ================================================ FILE: support/testing/tests/package/test_lxc/lxc-kernel.config ================================================ CONFIG_FIX_EARLYCON_MEM=y CONFIG_BLK_CGROUP=y CONFIG_CGROUP_SCHED=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_DEBUG=y CONFIG_NETFILTER_XT_MATCH_CGROUP=y CONFIG_SOCK_CGROUP_DATA=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NAMESPACES=y CONFIG_IPC_NS=y CONFIG_PID_NS=y CONFIG_UTS_NS=y CONFIG_USER_NS=y CONFIG_NET_NS=y CONFIG_BRIDGE=y CONFIG_VETH=y ================================================ FILE: support/testing/tests/package/test_lxc/rootfs-overlay/usr/bin/iperf3.sh ================================================ #!/bin/sh iperf3 -s -1 > /tmp/iperf3.serv.log 2>&1 ================================================ FILE: support/testing/tests/package/test_lxc/rootfs-overlay/usr/share/lxc/config/minimal-iperf3.conf ================================================ lxc.include = /usr/share/lxc/config/minimal.conf lxc.hook.version = 1 lxc.hook.start-host = ip a add 192.168.1.1/24 dev lxc0 lxc.init.cmd = tini -g iperf3.sh ================================================ FILE: support/testing/tests/package/test_lxc/rootfs-overlay/usr/share/lxc/config/minimal.conf ================================================ lxc.autodev = 0 lxc.net.0.type = veth lxc.net.0.veth.pair = lxc0 lxc.net.0.name = eth0 lxc.net.0.flags = up lxc.net.0.ipv4.address = 192.168.1.2/24 ================================================ FILE: support/testing/tests/package/test_lxc.py ================================================ import os import infra.basetest class TestLxc(infra.basetest.BRTest): config = \ """ BR2_arm=y BR2_cortex_a9=y BR2_ARM_ENABLE_VFP=y BR2_TOOLCHAIN_EXTERNAL=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.204" BR2_LINUX_KERNEL_DEFCONFIG="vexpress" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="vexpress-v2p-ca9" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="{}" BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" BR2_INIT_SYSTEMD=y BR2_PACKAGE_LXC=y BR2_PACKAGE_TINI=y BR2_PACKAGE_IPERF3=y BR2_ROOTFS_OVERLAY="{}" BR2_TARGET_ROOTFS_CPIO=y """.format( infra.filepath("tests/package/test_lxc/lxc-kernel.config"), infra.filepath("tests/package/test_lxc/rootfs-overlay")) def run_ok(self, cmd): self.assertRunOk(cmd, 120) def wait_boot(self): # the complete boot with systemd takes more time than what the default multipler permits self.emulator.timeout_multiplier *= 10 self.emulator.login() def setup_run_test_container(self): self.run_ok("lxc-create -n lxc_iperf3 -t none -f /usr/share/lxc/config/minimal-iperf3.conf") self.run_ok("lxc-start -l trace -n lxc_iperf3 -o /tmp/lxc.log -L /tmp/lxc.console.log") # need to wait for the container to be fully started self.run_ok("sleep 2") self.run_ok("iperf3 -c 192.168.1.2 -t 2") # if the test fails, just cat /tmp/*.log def test_run(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") kernel_file = os.path.join(self.builddir, "images", "zImage") dtb_file = os.path.join(self.builddir, "images", "vexpress-v2p-ca9.dtb") self.emulator.boot(arch="armv7", kernel=kernel_file, kernel_cmdline=[ "console=ttyAMA0,115200"], options=["-initrd", cpio_file, "-dtb", dtb_file, "-M", "vexpress-a9"]) self.wait_boot() self.setup_run_test_container() ================================================ FILE: support/testing/tests/package/test_lzlib.py ================================================ from tests.package.test_lua import TestLuaBase class TestLuaLzlib(TestLuaBase): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LZLIB=y """ def test_run(self): self.login() self.module_test("zlib") self.module_test("gzip") ================================================ FILE: support/testing/tests/package/test_netdata.py ================================================ import os import infra.basetest class TestNetdata(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_PACKAGE_NETDATA=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() cmd = "wget localhost:19999 -O - | grep 'netdata dashboard'" self.assertRunOk(cmd) ================================================ FILE: support/testing/tests/package/test_openjdk.py ================================================ import os import infra.basetest class TestOpenJdk(infra.basetest.BRTest): br2_external = [infra.filepath("tests/package/br2-external/openjdk")] config = \ """ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.34" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux.config" BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y BR2_PACKAGE_XORG7=y BR2_PACKAGE_OPENJDK=y BR2_PACKAGE_OPENJDK_HELLO_WORLD=y BR2_PACKAGE_OPENJDK_JNI_TEST=y """ def login(self): img = os.path.join(self.builddir, "images", "rootfs.cpio.gz") kern = os.path.join(self.builddir, "images", "Image") self.emulator.boot(arch="aarch64", kernel=kern, kernel_cmdline=["console=ttyAMA0"], options=["-M", "virt", "-cpu", "cortex-a57", "-m", "512M", "-initrd", img]) self.emulator.login() def test_run(self): self.login() cmd = "java -cp /usr/bin HelloWorld" output, exit_code = self.emulator.run(cmd, 120) print(output) self.assertEqual(exit_code, 0) self.assertEqual(output, ["Hello, World"]) cmd = "java -cp /usr/bin JniTest" output, exit_code = self.emulator.run(cmd, 120) print(output) self.assertEqual(exit_code, 0) ================================================ FILE: support/testing/tests/package/test_openssh/post-build.sh ================================================ #!/usr/bin/env bash cat <<_EOF_ >>"${TARGET_DIR}/etc/ssh/sshd_config" PermitRootLogin yes PasswordAuthentication yes _EOF_ ================================================ FILE: support/testing/tests/package/test_openssh.py ================================================ import os import infra.basetest class TestOpensshBase(infra.basetest.BRTest): passwd = "testpwd" opensshconfig = \ """ BR2_TARGET_GENERIC_ROOT_PASSWD="{}" BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_SSHPASS=y BR2_ROOTFS_POST_BUILD_SCRIPT="{}" # BR2_TARGET_ROOTFS_TAR is not set """.format( passwd, infra.filepath("tests/package/test_openssh/post-build.sh")) def openssh_test(self): img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", img, "-net", "none"]) self.emulator.login(self.passwd) cmd = "netstat -ltn 2>/dev/null | grep 0.0.0.0:22" self.assertRunOk(cmd) cmd = "sshpass -p {} ssh -oStrictHostKeyChecking=no localhost /bin/true".format(self.passwd) self.assertRunOk(cmd) class TestOpenSshuClibc(TestOpensshBase): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ TestOpensshBase.opensshconfig + \ """ BR2_TARGET_ROOTFS_CPIO=y """ def test_run(self): self.openssh_test() class TestOpenSshGlibc(TestOpensshBase): config = \ TestOpensshBase.opensshconfig + \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_RNG_TOOLS=y BR2_TARGET_ROOTFS_CPIO=y """ def test_run(self): self.openssh_test() ================================================ FILE: support/testing/tests/package/test_opkg/post-build.sh ================================================ #!/usr/bin/env bash IPK_BUILD=${BUILD_DIR}/ipk-build # Pull the files for the snmpd service out of the target to create a install archive # and setup a basic configuration so that the startup script works. mkdir -p ${IPK_BUILD}/CONTROL \ ${IPK_BUILD}/etc/init.d/ \ ${IPK_BUILD}/usr/sbin \ ${IPK_BUILD}/etc/snmp \ ${IPK_BUILD}/etc/default mv -f ${TARGET_DIR}/etc/init.d/S59snmpd ${IPK_BUILD}/etc/init.d/ mv -f ${TARGET_DIR}/usr/sbin/snmpd ${IPK_BUILD}/usr/sbin/ echo "agentuser nobody" > ${IPK_BUILD}/etc/snmp/snmpd.conf echo "SNMPDRUN=yes" > ${IPK_BUILD}/etc/default/snmpd # build the control file cat <${IPK_BUILD}/CONTROL/control Package: example-snmpd-package Version: 1.0 Architecture: arm Maintainer: user@domain.tld Section: extras Priority: optional Source: http://example.com Description: This is an example IPK package for installing snmpd EOM # preinst script is not created to run before the install for this test example # postinst script is ran after install completes to start the services cat <${IPK_BUILD}/CONTROL/postinst #!/bin/sh /etc/init.d/S59snmpd start EOM chmod +x ${IPK_BUILD}/CONTROL/postinst # prerm script is ran before removal so that the services isn't in use cat <${IPK_BUILD}/CONTROL/prerm #!/bin/sh /etc/init.d/S59snmpd stop EOM chmod +x ${IPK_BUILD}/CONTROL/prerm # build the archive from template and pkg files ${HOST_DIR}/bin/opkg-build -Z gzip ${IPK_BUILD} ${TARGET_DIR}/root/ rm -fr ${IPK_BUILD} ================================================ FILE: support/testing/tests/package/test_opkg.py ================================================ import os import infra.basetest class TestOpkg(infra.basetest.BRTest): # The snmpd service is used as an example for this test of a set of files # that can be archived up and deployed/removed to test opkg # # The post build script uses an ipk-build template and assembles the test # package. config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_PACKAGE_NETSNMP=y # BR2_PACKAGE_NETSNMP_CLIENTS is not set # BR2_PACKAGE_NETSNMP_ENABLE_MIBS is not set BR2_PACKAGE_OPKG=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set BR2_PACKAGE_HOST_OPKG_UTILS=y BR2_ROOTFS_POST_BUILD_SCRIPT="{}" """.format(infra.filepath("tests/package/test_opkg/post-build.sh")) def test_run(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() # This test sequence tests the install and removal of a running # service and configuration files. It also exercises the postinst # and prerm scripting provided in the package archive. cmd = "opkg install example-snmpd-package_1.0_arm.ipk" self.assertRunOk(cmd) cmd = "opkg list-installed | grep example-snmpd-package" self.assertRunOk(cmd) # Check that postinst script ran to start the services cmd = "ps aux | grep [s]nmpd" self.assertRunOk(cmd) # If successful, the prerm script ran to stop the service prior to # the removal of the service scripting and files cmd = "opkg remove example-snmpd-package" self.assertRunOk(cmd) # Verify after package removal that the services is not # running, but let's give it some time to really stop # (otherwise a [snmpd] process might show up in the ps output) cmd = "sleep 1 && ps aux | grep [s]nmpd" _, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 1) # This folder for configs is provided by the package install and # should no longer be present after package removal cmd = "ls /etc/snmp" _, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 1) ================================================ FILE: support/testing/tests/package/test_perl.py ================================================ import os import infra.basetest class TestPerlBase(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def login(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() def module_test(self, module, script="1"): cmd = "perl -M{} -e '{}'".format(module, script) self.assertRunOk(cmd) class TestPerl(TestPerlBase): config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y """ def version_test(self): cmd = "perl -v" output, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 0) self.assertIn("This is perl 5", output[1]) def core_modules_test(self): self.module_test("Cwd") self.module_test("Data::Dumper") self.module_test("Devel::Peek") self.module_test("Digest::MD5") self.module_test("Digest::SHA") self.module_test("Encode") self.module_test("Fcntl") self.module_test("File::Glob") self.module_test("Hash::Util") self.module_test("I18N::Langinfo") self.module_test("IO::Handle") self.module_test("IPC::SysV") self.module_test("List::Util") self.module_test("MIME::Base64") self.module_test("POSIX") self.module_test("Socket") self.module_test("Storable") self.module_test("Sys::Hostname") self.module_test("Sys::Syslog") self.module_test("Time::HiRes") self.module_test("Time::Piece") self.module_test("Unicode::Collate") self.module_test("Unicode::Normalize") def test_run(self): self.login() self.version_test() self.core_modules_test() ================================================ FILE: support/testing/tests/package/test_perl_class_load.py ================================================ from tests.package.test_perl import TestPerlBase class TestPerlClassLoad(TestPerlBase): """ package: Class-Load direct dependencies: Data-OptList Module-Implementation Module-Runtime Package-Stash Try-Tiny indirect dependencies: Dist-CheckConflicts Params-Util XS Sub-Install """ config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y BR2_PACKAGE_PERL_CLASS_LOAD=y """ def test_run(self): self.login() self.module_test("Params::Util") self.module_test("Class::Load") ================================================ FILE: support/testing/tests/package/test_perl_dbd_mysql.py ================================================ from tests.package.test_perl import TestPerlBase class TestPerlDBDmysql(TestPerlBase): """ package: DBD-mysql XS direct dependencies: DBI XS """ config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y BR2_PACKAGE_PERL_DBD_MYSQL=y """ def test_run(self): self.login() self.module_test("DBI") self.module_test("DBD::mysql") ================================================ FILE: support/testing/tests/package/test_perl_encode_detect.py ================================================ from tests.package.test_perl import TestPerlBase class TestPerlEncodeDetect(TestPerlBase): """ package: Encode-Detect XS direct dependencies: Module-Build """ config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y BR2_PACKAGE_PERL_ENCODE_DETECT=y """ def test_run(self): self.login() self.module_test("Encode::Detect") ================================================ FILE: support/testing/tests/package/test_perl_gdgraph.py ================================================ from tests.package.test_perl import TestPerlBase class TestPerlGDGraph(TestPerlBase): """ package: GDGraph direct dependencies: GD XS GDTextUtil """ config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y BR2_PACKAGE_PERL_GDGRAPH=y """ def test_run(self): self.login() self.module_test("GD") self.module_test("GD::Graph") ================================================ FILE: support/testing/tests/package/test_perl_html_parser.py ================================================ from tests.package.test_perl import TestPerlBase class TestPerlHTMLParser(TestPerlBase): """ package: HTML-Parser XS direct dependencies: HTML-Tagset """ config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y BR2_PACKAGE_PERL_HTML_PARSER=y """ def test_run(self): self.login() self.module_test("HTML::Parser") ================================================ FILE: support/testing/tests/package/test_perl_io_socket_multicast.py ================================================ from tests.package.test_perl import TestPerlBase class TestPerlIOSocketMulticast(TestPerlBase): """ package: IO-Socket-Multicast XS direct dependencies: IO-Interface XS """ config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y BR2_PACKAGE_PERL_IO_SOCKET_MULTICAST=y """ def test_run(self): self.login() self.module_test("IO::Interface") self.module_test("IO::Socket::Multicast") ================================================ FILE: support/testing/tests/package/test_perl_io_socket_ssl.py ================================================ from tests.package.test_perl import TestPerlBase class TestPerlIOSocketSSL(TestPerlBase): """ package: IO-Socket-SSL direct dependencies: Mozilla-CA Net-SSLeay XS """ config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y BR2_PACKAGE_PERL_IO_SOCKET_SSL=y """ def test_run(self): self.login() self.module_test("Net::SSLeay") self.module_test("IO::Socket::SSL") ================================================ FILE: support/testing/tests/package/test_perl_libwww_perl.py ================================================ from tests.package.test_perl import TestPerlBase class TestPerllibwwwperl(TestPerlBase): """ package: libwww-perl direct dependencies: Encode-Locale File-Listing HTML-Parser XS HTTP-Cookies HTTP-Date HTTP-Message HTTP-Negotiate LWP-MediaTypes Net-HTTP Try-Tiny URI WWW-RobotRules indirect dependencies: HTML-Tagset IO-HTML """ config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y BR2_PACKAGE_PERL_LIBWWW_PERL=y """ def test_run(self): self.login() self.module_test("LWP") self.module_test("LWP::UserAgent") self.module_test("LWP::Authen::Basic") self.module_test("LWP::Authen::Digest") self.module_test("HTML::Parser") self.module_test("HTTP::Message") self.module_test("WWW::RobotRules") ================================================ FILE: support/testing/tests/package/test_perl_lwp_protocol_https.py ================================================ from tests.package.test_perl import TestPerlBase class TestPerlLWPProtocolhttps(TestPerlBase): """ package: LWP-Protocol-https direct dependencies: IO-Socket-SSL Mozilla-CA Net-HTTP libwww-perl indirect dependencies: Encode-Locale File-Listing HTML-Parser XS HTML-Tagset HTTP-Cookies HTTP-Daemon HTTP-Date HTTP-Message HTTP-Negotiate IO-HTML LWP-MediaTypes Net-SSLeay XS TimeDate Try-Tiny URI WWW-RobotRules """ config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y BR2_PACKAGE_PERL_LWP_PROTOCOL_HTTPS=y """ def test_run(self): self.login() self.module_test("HTML::Parser") self.module_test("Net::SSLeay") self.module_test("LWP::Protocol::https") ================================================ FILE: support/testing/tests/package/test_perl_mail_dkim.py ================================================ from tests.package.test_perl import TestPerlBase class TestPerlMailDKIM(TestPerlBase): """ package: Mail-DKIM direct dependencies: Crypt-OpenSSL-RSA XS MailTools Net-DNS Net-DNS-Resolver-Mock YAML-LibYAML XS indirect dependencies: Crypt-OpenSSL-Random XS Digest-HMAC TimeDate """ config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y BR2_PACKAGE_PERL_MAIL_DKIM=y """ def test_run(self): self.login() self.module_test("Crypt::OpenSSL::Random") self.module_test("Crypt::OpenSSL::RSA") self.module_test("Mail::DKIM") ================================================ FILE: support/testing/tests/package/test_perl_x10.py ================================================ from tests.package.test_perl import TestPerlBase class TestPerlX10(TestPerlBase): """ package: X10 direct dependencies: Astro-SunTime Device-SerialPort XS Time-ParseDate """ config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y BR2_PACKAGE_PERL_X10=y """ def test_run(self): self.login() self.module_test("Device::SerialPort") self.module_test("X10") ================================================ FILE: support/testing/tests/package/test_perl_xml_libxml.py ================================================ from tests.package.test_perl import TestPerlBase class TestPerlXMLLibXML(TestPerlBase): """ package: XML-LibXML XS direct dependencies: XML-NamespaceSupport XML-SAX XML-SAX-Base """ config = TestPerlBase.config + \ """ BR2_PACKAGE_PERL=y BR2_PACKAGE_PERL_XML_LIBXML=y """ def test_run(self): self.login() self.module_test("XML::LibXML") ================================================ FILE: support/testing/tests/package/test_php_pecl_dbus.py ================================================ import os import infra.basetest class TestPhpPeclDbus(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_PACKAGE_PHP=y BR2_PACKAGE_PHP_SAPI_CLI=y BR2_PACKAGE_PHP_PECL_DBUS=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", img]) self.emulator.login() self.assertRunOk("mkdir /etc/php.d") self.assertRunOk("echo 'extension=dbus.so'> /etc/php.d/dbus.ini") output, exit_code = self.emulator.run("php --ri dbus | sed '/^$/d'") self.assertEqual(exit_code, 0) self.assertEqual(output[0], "dbus") self.assertEqual(output[1], "Dbus support => enabled") # Do not check the version value in order to avoid test failure when # bumping package version self.assertEqual(output[2][0:11], "Version => ") ================================================ FILE: support/testing/tests/package/test_polkit.py ================================================ import os import infra.basetest class TestPolkitInfra(infra.basetest.BRTest): br2_external = [infra.filepath("tests/package/br2-external/polkit")] config = \ """ BR2_arm=y BR2_cortex_a9=y BR2_ARM_ENABLE_VFP=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TARGET_ROOTFS_CPIO=y BR2_PACKAGE_POLKIT=y BR2_PACKAGE_POLKIT_RULES_TEST=y """ def base_test_run(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv7", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() class TestPolkitSystemd(TestPolkitInfra): config = \ """ {} BR2_INIT_SYSTEMD=y BR2_PACKAGE_SYSTEMD_POLKIT=y BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" # BR2_TARGET_ROOTFS_TAR is not set """.format(TestPolkitInfra.config) def test_run(self): TestPolkitInfra.base_test_run(self) cmd = "su brtest -c '/bin/systemctl restart systemd-timesyncd.service'" _, exit_code = self.emulator.run(cmd, 10) self.assertEqual(exit_code, 1) cmd = "mv /root/systemd-timesyncd-restart.rules /etc/polkit-1/rules.d" _, exit_code = self.emulator.run(cmd, 10) self.assertEqual(exit_code, 0) cmd = "su brtest -c '/bin/systemctl restart systemd-timesyncd.service'" _, exit_code = self.emulator.run(cmd, 10) self.assertEqual(exit_code, 0) class TestPolkitInitd(TestPolkitInfra): config = TestPolkitInfra.config def test_run(self): TestPolkitInfra.base_test_run(self) cmd = "su brtest -c 'pkexec hello-polkit'" output, exit_code = self.emulator.run(cmd, 10) self.assertEqual(exit_code, 127) self.assertEqual(output[0], "Error executing command as another user: Not authorized") cmd = "mv /root/hello-polkit.rules /etc/polkit-1/rules.d/hello-polkit.rules" _, exit_code = self.emulator.run(cmd, 10) self.assertEqual(exit_code, 0) cmd = "su brtest -c 'pkexec hello-polkit'" output, exit_code = self.emulator.run(cmd, 10) self.assertEqual(exit_code, 0) self.assertEqual(output[0], "Hello polkit!") ================================================ FILE: support/testing/tests/package/test_prosody.py ================================================ from tests.package.test_lua import TestLuaBase class TestProsody(TestLuaBase): def lua_dependencies_test(self): self.module_test('bit') # luabitop self.module_test('lfs') # luafilesystem self.module_test('lxp') # luaexpat self.module_test('socket') # luasocket self.module_test('ssl') # luasec def prosody_test(self): # prosody was launched as service cmd = "prosodyctl status" output, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 0) self.assertIn("Prosody is running", output[0]) class TestProsodyLua51(TestProsody): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUA=y BR2_PACKAGE_LUA_5_1=y BR2_PACKAGE_PROSODY=y """ def test_run(self): self.login() self.version_test('Lua 5.1') self.g_version_test('Lua 5.1') self.lua_dependencies_test() self.prosody_test() class TestProsodyLuajit(TestProsody): config = TestLuaBase.config + \ """ BR2_PACKAGE_LUAJIT=y BR2_PACKAGE_PROSODY=y """ def test_run(self): self.login() self.version_test('LuaJIT 2') self.g_version_test('Lua 5.1') self.lua_dependencies_test() self.prosody_test() ================================================ FILE: support/testing/tests/package/test_python.py ================================================ import os import infra.basetest class TestPythonBase(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ interpreter = "python" def login(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() def version_test(self, version, timeout=-1): cmd = self.interpreter + " --version 2>&1 | grep '^{}'".format(version) self.assertRunOk(cmd, timeout) def math_floor_test(self, timeout=-1): cmd = self.interpreter + " -c 'import math; math.floor(12.3)'" self.assertRunOk(cmd, timeout) def libc_time_test(self, timeout=-1): cmd = self.interpreter + " -c 'from __future__ import print_function;" cmd += "import ctypes;" cmd += "libc = ctypes.cdll.LoadLibrary(\"libc.so.1\");" cmd += "print(libc.time(None))'" self.assertRunOk(cmd, timeout) def zlib_test(self, timeout=-1): cmd = self.interpreter + " -c 'import zlib'" _, exit_code = self.emulator.run(cmd, timeout) self.assertEqual(exit_code, 1) class TestPython2(TestPythonBase): config = TestPythonBase.config + \ """ BR2_PACKAGE_PYTHON=y """ def test_run(self): self.login() self.version_test("Python 2") self.math_floor_test() self.libc_time_test() self.zlib_test() class TestPython3(TestPythonBase): config = TestPythonBase.config + \ """ BR2_PACKAGE_PYTHON3=y """ def test_run(self): self.login() self.version_test("Python 3") self.math_floor_test() self.libc_time_test() self.zlib_test() class TestPythonPackageBase(TestPythonBase): """Common class to test a python package. Build an image containing the scripts listed in sample_scripts, start the emulator, login to it and for each sample script in the image run the python interpreter passing the name of the script and check the status code is 0. Each test case that inherits from this class must have: __test__ = True - to let nose2 know that it is a test case config - defconfig fragment with the packages to run the test It also can have: sample_scripts - list of scripts to add to the image and run on the target timeout - timeout to the script to run when the default from the test infra is not enough When custom commands need be issued on the target the method run_sample_scripts can be overridden. """ __test__ = False config_sample_scripts = \ """ BR2_ROOTFS_POST_BUILD_SCRIPT="{}" BR2_ROOTFS_POST_SCRIPT_ARGS="{}" """.format(infra.filepath("tests/package/copy-sample-script-to-target.sh"), "{sample_scripts}") sample_scripts = None timeout = -1 def __init__(self, names): """Add the scripts to the target in build time.""" super(TestPythonPackageBase, self).__init__(names) if self.sample_scripts: scripts = [infra.filepath(s) for s in self.sample_scripts] self.config += self.config_sample_scripts.format(sample_scripts=" ".join(scripts)) def check_sample_scripts_exist(self): """Check the scripts were really added to the image.""" scripts = [os.path.basename(s) for s in self.sample_scripts] cmd = "md5sum " + " ".join(scripts) _, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 0) def run_sample_scripts(self): """Run each script previously added to the image.""" for script in self.sample_scripts: cmd = self.interpreter + " " + os.path.basename(script) self.assertRunOk(cmd, timeout=self.timeout) def test_run(self): self.login() self.check_sample_scripts_exist() self.run_sample_scripts() ================================================ FILE: support/testing/tests/package/test_python_argh.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonArgh(TestPythonPackageBase): config = TestPythonPackageBase.config sample_scripts = ["tests/package/sample_python_argh.py"] def run_sample_scripts(self): cmd = self.interpreter + " sample_python_argh.py -h" output, exit_code = self.emulator.run(cmd) self.assertIn("usage:", output[0]) self.assertEqual(exit_code, 0) cmd = self.interpreter + " sample_python_argh.py 123" output, exit_code = self.emulator.run(cmd) self.assertEqual(output[0], "123, False") self.assertEqual(exit_code, 0) cmd = self.interpreter + " sample_python_argh.py --bar 456" output, exit_code = self.emulator.run(cmd) self.assertEqual(output[0], "456, True") self.assertEqual(exit_code, 0) cmd = self.interpreter + " sample_python_argh.py" output, exit_code = self.emulator.run(cmd) self.assertIn("usage:", output[0]) self.assertEqual(exit_code, 2) class TestPythonPy2Argh(TestPythonArgh): __test__ = True config = TestPythonArgh.config + \ """ BR2_PACKAGE_PYTHON=y BR2_PACKAGE_PYTHON_ARGH=y """ class TestPythonPy3Argh(TestPythonArgh): __test__ = True config = TestPythonArgh.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_ARGH=y """ ================================================ FILE: support/testing/tests/package/test_python_attrs.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy3Attrs(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_ATTRS=y """ sample_scripts = ["tests/package/sample_python_attrs.py"] ================================================ FILE: support/testing/tests/package/test_python_augeas.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonAugeas(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_AUGEAS=y BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_AUGEAS=y """ sample_scripts = ["tests/package/sample_python_augeas.py"] timeout = 60 ================================================ FILE: support/testing/tests/package/test_python_autobahn.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy3Autobahn(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_AUTOBAHN=y """ sample_scripts = ["tests/package/sample_python_autobahn.py"] ================================================ FILE: support/testing/tests/package/test_python_automat.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy3Automat(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_AUTOMAT=y """ sample_scripts = ["tests/package/sample_python_automat.py"] timeout = 30 ================================================ FILE: support/testing/tests/package/test_python_avro.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonAvro(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_AVRO=y """ sample_scripts = ["tests/package/sample_python_avro.py"] ================================================ FILE: support/testing/tests/package/test_python_bitstring.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy2Bitstring(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON=y BR2_PACKAGE_PYTHON_BITSTRING=y """ sample_scripts = ["tests/package/sample_python_bitstring.py"] class TestPythonPy3Bitstring(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_BITSTRING=y """ sample_scripts = ["tests/package/sample_python_bitstring.py"] ================================================ FILE: support/testing/tests/package/test_python_boto3.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy3Boto3(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_BOTO3=y """ sample_scripts = ["tests/package/sample_python_boto3.py"] timeout = 10 ================================================ FILE: support/testing/tests/package/test_python_botocore.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy3Botocore(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_BOTOCORE=y """ sample_scripts = ["tests/package/sample_python_botocore.py"] timeout = 10 ================================================ FILE: support/testing/tests/package/test_python_can.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy2Can(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON=y BR2_PACKAGE_PYTHON_CAN=y """ sample_scripts = ["tests/package/sample_python_can.py"] timeout = 40 class TestPythonPy3Can(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_CAN=y """ sample_scripts = ["tests/package/sample_python_can.py"] timeout = 40 ================================================ FILE: support/testing/tests/package/test_python_cbor.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy2Cbor(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON=y BR2_PACKAGE_PYTHON_CBOR=y """ sample_scripts = ["tests/package/sample_python_cbor_enc.py", "tests/package/sample_python_cbor_dec.py"] class TestPythonPy3Cbor(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_CBOR=y """ sample_scripts = ["tests/package/sample_python_cbor_enc.py", "tests/package/sample_python_cbor_dec.py"] ================================================ FILE: support/testing/tests/package/test_python_click.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonClick(TestPythonPackageBase): sample_scripts = ["tests/package/sample_python_click.py"] def run_sample_scripts(self): cmd = self.interpreter + " sample_python_click.py --help" output, exit_code = self.emulator.run(cmd) self.assertIn("Usage:", output[0]) self.assertEqual(exit_code, 0) cmd = self.interpreter + " sample_python_click.py 123" output, exit_code = self.emulator.run(cmd) self.assertEqual(output[0], "123, False") self.assertEqual(exit_code, 0) cmd = self.interpreter + " sample_python_click.py --bar 456" output, exit_code = self.emulator.run(cmd) self.assertEqual(output[0], "456, True") self.assertEqual(exit_code, 0) cmd = self.interpreter + " sample_python_click.py" output, exit_code = self.emulator.run(cmd) self.assertIn("Usage:", output[0]) self.assertEqual(exit_code, 2) class TestPythonPy2Click(TestPythonClick): __test__ = True config = TestPythonClick.config + \ """ BR2_PACKAGE_PYTHON=y BR2_PACKAGE_PYTHON_CLICK=y """ class TestPythonPy3Click(TestPythonClick): __test__ = True config = TestPythonClick.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_CLICK=y """ ================================================ FILE: support/testing/tests/package/test_python_colorzero.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy3Colorzero(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_COLORZERO=y """ sample_scripts = ["tests/package/sample_python_colorzero.py"] timeout = 30 ================================================ FILE: support/testing/tests/package/test_python_constantly.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy2Constantly(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON=y BR2_PACKAGE_PYTHON_CONSTANTLY=y """ sample_scripts = ["tests/package/sample_python_constantly.py"] class TestPythonPy3Constantly(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_CONSTANTLY=y """ sample_scripts = ["tests/package/sample_python_constantly.py"] ================================================ FILE: support/testing/tests/package/test_python_crossbar.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy3Crossbar(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_CROSSBAR=y """ sample_scripts = ["tests/package/sample_python_crossbar.py"] timeout = 60 ================================================ FILE: support/testing/tests/package/test_python_cryptography.py ================================================ from tests.package.test_python import TestPythonPackageBase class TestPythonPy3Cryptography(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_CRYPTOGRAPHY=y """ sample_scripts = ["tests/package/sample_python_cryptography.py"] timeout = 40 ================================================ FILE: support/testing/tests/package/test_python_dbus_fast.py ================================================ import textwrap from tests.package.test_python import TestPythonPackageBase class TestPythonPy3DBusFast(TestPythonPackageBase): __test__ = True config = TestPythonPackageBase.config + \ """ BR2_PACKAGE_DBUS=y BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_DBUS_FAST=y """ sample_scripts = ["tests/package/sample_python_dbus_fast.py"] def run_sample_scripts(self): config = \ """ """ config = textwrap.dedent(config) config_dir = "/etc/dbus-1/system.d" config_fn = "dbus.fast.sample.conf" # Setup and reload D-Bus configuration self.emulator.run("mkdir -p " + config_dir) self.emulator.run("cat > " + config_dir + "/" + config_fn + " < """ config = textwrap.dedent(config) config_dir = "/etc/dbus-1/system.d" config_fn = "dbus.next.sample.conf" # Setup and reload D-Bus configuration self.emulator.run("mkdir -p " + config_dir) self.emulator.run("cat > " + config_dir + "/" + config_fn + " < source/testsv/run < source/testsv1/type") self.assertRunOk("echo oneshot > source/testsv2/type") self.assertRunOk("echo 'echo foo' > source/testsv1/up") self.assertRunOk("echo 'echo bar' > source/testsv2/up") self.assertRunOk("echo testsv1 > source/testsv2/dependencies") self.assertRunOk("chmod +x source/testsv1/up") self.assertRunOk("chmod +x source/testsv2/up") # Compile the service database self.assertRunOk("s6-rc-compile compiled source") # Inspect dependencies cmd = "s6-rc-db -c compiled -d dependencies testsv1" output, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 0) self.assertEqual(output[0], "testsv2") cmd = "s6-rc-db -c compiled dependencies testsv2" output, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 0) self.assertEqual(output[0], "testsv1") ================================================ FILE: support/testing/tests/package/test_sudo.py ================================================ import os import infra.basetest class TestSudo(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_PACKAGE_SUDO=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", img]) self.emulator.login() # -D don't set a password # -h set home directory # -H don't create home directory # -s set shell self.assertRunOk("adduser -D -h /tmp -H -s /bin/sh sudotest") self.assertRunOk("echo 'sudotest ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers") output, exit_code = self.emulator.run("su - sudotest -c 'echo hello world'") self.assertEqual(output, ["hello world"]) output, exit_code = self.emulator.run("su - sudotest -c 'sudo echo hello world'") self.assertEqual(exit_code, 0) self.assertEqual(output, ["hello world"]) ================================================ FILE: support/testing/tests/package/test_syslog_ng.py ================================================ import os import infra.basetest class TestSyslogNg(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_SYSLOG_NG=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() cmd = "grep 'syslog-ng starting' /var/log/messages" self.assertRunOk(cmd) cmd = "logger my-message && " cmd += "sleep 1 && " cmd += "grep my-message /var/log/messages" self.assertRunOk(cmd) cmd = "syslog-ng-ctl reload && " cmd += "sleep 1" self.assertRunOk(cmd) cmd = "grep -i 'syslog-ng.*warning' /var/log/messages" _, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 1) ================================================ FILE: support/testing/tests/package/test_tmux.py ================================================ import os import infra.basetest class TestTmux(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_PACKAGE_TMUX=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() cmd = "tmux -V" self.assertRunOk(cmd) cmd = "tmux -C /tmp/urandom.sha256", # Check ZFS "zpool export pool", "zpool import pool -d /tmp/container1.raw -d /tmp/container2.raw", "dd conv=notrunc bs=1M count=32 seek=16 if=/dev/urandom of=/tmp/container1.raw", "zpool scrub -w pool", "sha256sum -c /tmp/urandom.sha256", "zpool status -v", # Check PyZFS "arc_summary", ] for cmd in cmds: self.assertRunOk(cmd) class TestZfsUclibc(infra.basetest.BRTest): config = \ """ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_UCLIBC_STABLE=y BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.12.13" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux.config" BR2_PACKAGE_ZFS=y BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_CFFI=y BR2_PACKAGE_PYTHON_SETUPTOOLS=y BR2_PACKAGE_ZLIB_NG=y BR2_PACKAGE_LIBRESSL=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def test_run(self): kernel = os.path.join(self.builddir, "images", "bzImage") cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot( arch="x86_64", kernel=kernel, kernel_cmdline=["console=ttyS0"], options=["-cpu", "Nehalem", "-m", "320", "-initrd", cpio_file], ) self.emulator.login() cmds = [ # Init "modprobe zfs", "mount -o remount,size=132M /tmp", "fallocate -l 64M /tmp/container1.raw", "fallocate -l 64M /tmp/container2.raw", "zpool create -m /pool pool raidz /tmp/container1.raw /tmp/container2.raw", "dd if=/dev/urandom bs=1M count=8 of=/pool/urandom", "sha256sum /pool/urandom > /tmp/urandom.sha256", # Check ZFS "zpool export pool", "zpool import pool -d /tmp/container1.raw -d /tmp/container2.raw", "dd conv=notrunc bs=1M count=32 seek=16 if=/dev/urandom of=/tmp/container1.raw", "zpool scrub -w pool", "sha256sum -c /tmp/urandom.sha256", "zpool status -v", # Check PyZFS "arc_summary", ] for cmd in cmds: self.assertRunOk(cmd) ================================================ FILE: support/testing/tests/toolchain/__init__.py ================================================ ================================================ FILE: support/testing/tests/toolchain/test_external.py ================================================ import os import infra BASIC_CONFIG = \ """ BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ def has_broken_links(path): for root, dirs, files in os.walk(path): for f in files: fpath = os.path.join(root, f) if not os.path.exists(fpath): return True return False class TestExternalToolchain(infra.basetest.BRTest): def common_check(self): # Check for broken symlinks for d in ["lib", "usr/lib"]: path = os.path.join(self.builddir, "staging", d) self.assertFalse(has_broken_links(path)) path = os.path.join(self.builddir, "target", d) self.assertFalse(has_broken_links(path)) with open(os.path.join(self.builddir, ".config"), 'r') as configf: configlines = [line.strip() for line in configf.readlines()] if "BR2_BINFMT_ELF=y" in configlines: interp = infra.get_elf_prog_interpreter(self.builddir, self.toolchain_prefix, "bin/busybox") interp_path = os.path.join(self.builddir, "target", interp[1:]) self.assertTrue(os.path.exists(interp_path)) class TestExternalToolchainSourceryArmv4(TestExternalToolchain): config = BASIC_CONFIG + \ """ BR2_arm=y BR2_arm920t=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM=y """ toolchain_prefix = "arm-none-linux-gnueabi" def test_run(self): TestExternalToolchain.common_check(self) # Check the architecture variant arch = infra.get_file_arch(self.builddir, self.toolchain_prefix, "lib/libc.so.6") self.assertEqual(arch, "v4T") # Check the sysroot symlink symlink = os.path.join(self.builddir, "staging", "armv4t") self.assertTrue(os.path.exists(symlink)) self.assertEqual(os.readlink(symlink), "./") # Boot the system img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", img]) self.emulator.login() class TestExternalToolchainSourceryArmv5(TestExternalToolchain): config = BASIC_CONFIG + \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM=y """ toolchain_prefix = "arm-none-linux-gnueabi" def test_run(self): TestExternalToolchain.common_check(self) # Check the architecture variant arch = infra.get_file_arch(self.builddir, self.toolchain_prefix, "lib/libc.so.6") self.assertEqual(arch, "v5TE") # Boot the system img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", img]) self.emulator.login() class TestExternalToolchainSourceryArmv7(TestExternalToolchain): config = BASIC_CONFIG + \ """ BR2_arm=y BR2_cortex_a8=y BR2_ARM_EABI=y BR2_ARM_INSTRUCTIONS_THUMB2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM=y """ toolchain_prefix = "arm-none-linux-gnueabi" def test_run(self): TestExternalToolchain.common_check(self) # Check the architecture variant arch = infra.get_file_arch(self.builddir, self.toolchain_prefix, "lib/libc.so.6") self.assertEqual(arch, "v7") isa = infra.get_elf_arch_tag(self.builddir, self.toolchain_prefix, "lib/libc.so.6", "Tag_THUMB_ISA_use") self.assertEqual(isa, "Thumb-2") # Check we have the sysroot symlink symlink = os.path.join(self.builddir, "staging", "thumb2") self.assertTrue(os.path.exists(symlink)) self.assertEqual(os.readlink(symlink), "./") # Boot the system img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv7", kernel="builtin", options=["-initrd", img]) self.emulator.login() class TestExternalToolchainLinaroArm(TestExternalToolchain): config = BASIC_CONFIG + \ """ BR2_arm=y BR2_cortex_a8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM=y """ toolchain_prefix = "arm-linux-gnueabihf" def test_run(self): TestExternalToolchain.common_check(self) # Check the architecture variant arch = infra.get_file_arch(self.builddir, self.toolchain_prefix, "lib/libc.so.6") self.assertEqual(arch, "v7") isa = infra.get_elf_arch_tag(self.builddir, self.toolchain_prefix, "lib/libc.so.6", "Tag_THUMB_ISA_use") self.assertEqual(isa, "Thumb-2") # Boot the system img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv7", kernel="builtin", options=["-initrd", img]) self.emulator.login() class TestExternalToolchainBuildrootMusl(TestExternalToolchain): config = BASIC_CONFIG + \ """ BR2_arm=y BR2_cortex_a9=y BR2_ARM_ENABLE_VFP=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-cortex-a9-musl-2017.05-1078-g95b1dae.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_6=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_12=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y BR2_TOOLCHAIN_EXTERNAL_CXX=y """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv7", kernel="builtin", options=["-initrd", img]) self.emulator.login() class TestExternalToolchainCtngMusl(TestExternalToolchain): config = BASIC_CONFIG + \ """ BR2_arm=y BR2_cortex_a9=y BR2_ARM_ENABLE_VFP=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.net/toolchains/tarballs/arm-ctng-linux-musleabihf.tar.xz" BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-ctng-linux-musleabihf" BR2_TOOLCHAIN_EXTERNAL_GCC_7=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y BR2_TOOLCHAIN_EXTERNAL_CXX=y """ toolchain_prefix = "arm-ctng-linux-musleabihf" def test_run(self): TestExternalToolchain.common_check(self) img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv7", kernel="builtin", options=["-initrd", img]) self.emulator.login() class TestExternalToolchainBuildrootuClibc(TestExternalToolchain): config = BASIC_CONFIG + \ """ BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2017.05-1078-g95b1dae.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y BR2_TOOLCHAIN_EXTERNAL_LOCALE=y # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set BR2_TOOLCHAIN_EXTERNAL_CXX=y """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) img = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv7", kernel="builtin", options=["-initrd", img]) self.emulator.login() class TestExternalToolchainCCache(TestExternalToolchainBuildrootuClibc): extraconfig = \ """ BR2_CCACHE=y BR2_CCACHE_DIR="{builddir}/ccache-dir" """ def __init__(self, names): super(TestExternalToolchainBuildrootuClibc, self).__init__(names) self.config += self.extraconfig.format(builddir=self.builddir) ================================================ FILE: support/testing/tests/toolchain/test_external_bootlin.py ================================================ # This file was auto-generated by support/scripts/gen-bootlin-toolchains # Do not edit from tests.toolchain.test_external import TestExternalToolchain class TestExternalToolchainBootlinAarch64GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "aarch64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinAarch64GlibcStable(TestExternalToolchain): config = """ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "aarch64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinAarch64MuslBleedingEdge(TestExternalToolchain): config = """ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "aarch64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinAarch64MuslStable(TestExternalToolchain): config = """ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "aarch64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinAarch64UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "aarch64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinAarch64UclibcStable(TestExternalToolchain): config = """ BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "aarch64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinAarch64beGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_aarch64_be=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "aarch64_be-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinAarch64beGlibcStable(TestExternalToolchain): config = """ BR2_aarch64_be=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "aarch64_be-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinAarch64beUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_aarch64_be=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "aarch64_be-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinAarch64beUclibcStable(TestExternalToolchain): config = """ BR2_aarch64_be=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "aarch64_be-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArcle750dUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_arcle=y BR2_arc750d=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_750D_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArcle750dUclibcStable(TestExternalToolchain): config = """ BR2_arcle=y BR2_arc750d=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_750D_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArclehs38GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_arcle=y BR2_archs38=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArclehs38GlibcStable(TestExternalToolchain): config = """ BR2_arcle=y BR2_archs38=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArclehs38UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_arcle=y BR2_archs38=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArclehs38UclibcStable(TestExternalToolchain): config = """ BR2_arcle=y BR2_archs38=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv5eabiGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_arm=y BR2_arm926t=y BR2_ARM_EABI=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv5eabiGlibcStable(TestExternalToolchain): config = """ BR2_arm=y BR2_arm926t=y BR2_ARM_EABI=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv5eabiMuslBleedingEdge(TestExternalToolchain): config = """ BR2_arm=y BR2_arm926t=y BR2_ARM_EABI=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv5eabiMuslStable(TestExternalToolchain): config = """ BR2_arm=y BR2_arm926t=y BR2_ARM_EABI=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv5eabiUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_arm=y BR2_arm926t=y BR2_ARM_EABI=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv5eabiUclibcStable(TestExternalToolchain): config = """ BR2_arm=y BR2_arm926t=y BR2_ARM_EABI=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv6eabihfGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_arm=y BR2_arm1176jzf_s=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv6eabihfGlibcStable(TestExternalToolchain): config = """ BR2_arm=y BR2_arm1176jzf_s=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv6eabihfMuslBleedingEdge(TestExternalToolchain): config = """ BR2_arm=y BR2_arm1176jzf_s=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv6eabihfMuslStable(TestExternalToolchain): config = """ BR2_arm=y BR2_arm1176jzf_s=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv6eabihfUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_arm=y BR2_arm1176jzf_s=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv6eabihfUclibcStable(TestExternalToolchain): config = """ BR2_arm=y BR2_arm1176jzf_s=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv7eabihfGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_arm=y BR2_cortex_a8=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv7eabihfGlibcStable(TestExternalToolchain): config = """ BR2_arm=y BR2_cortex_a8=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv7eabihfMuslBleedingEdge(TestExternalToolchain): config = """ BR2_arm=y BR2_cortex_a8=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv7eabihfMuslStable(TestExternalToolchain): config = """ BR2_arm=y BR2_cortex_a8=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv7eabihfUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_arm=y BR2_cortex_a8=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv7eabihfUclibcStable(TestExternalToolchain): config = """ BR2_arm=y BR2_cortex_a8=y BR2_ARM_EABIHF=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv7mUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_arm=y BR2_cortex_m4=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7M_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinArmv7mUclibcStable(TestExternalToolchain): config = """ BR2_arm=y BR2_cortex_m4=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7M_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "arm-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinM68k68xxxUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_m68k=y BR2_m68k_68040=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_68XXX_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "m68k-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinM68k68xxxUclibcStable(TestExternalToolchain): config = """ BR2_m68k=y BR2_m68k_68040=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_68XXX_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "m68k-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinM68kcoldfireUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_m68k=y BR2_m68k_cf5208=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_COLDFIRE_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "m68k-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinM68kcoldfireUclibcStable(TestExternalToolchain): config = """ BR2_m68k=y BR2_m68k_cf5208=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_COLDFIRE_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "m68k-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMicroblazebeGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_microblazebe=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "microblaze-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMicroblazebeGlibcStable(TestExternalToolchain): config = """ BR2_microblazebe=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "microblaze-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMicroblazebeMuslBleedingEdge(TestExternalToolchain): config = """ BR2_microblazebe=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "microblaze-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMicroblazebeMuslStable(TestExternalToolchain): config = """ BR2_microblazebe=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "microblaze-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMicroblazebeUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_microblazebe=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "microblaze-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMicroblazebeUclibcStable(TestExternalToolchain): config = """ BR2_microblazebe=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "microblaze-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMicroblazeelGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_microblazeel=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "microblazeel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMicroblazeelGlibcStable(TestExternalToolchain): config = """ BR2_microblazeel=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "microblazeel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMicroblazeelMuslBleedingEdge(TestExternalToolchain): config = """ BR2_microblazeel=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "microblazeel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMicroblazeelMuslStable(TestExternalToolchain): config = """ BR2_microblazeel=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "microblazeel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMicroblazeelUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_microblazeel=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "microblazeel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMicroblazeelUclibcStable(TestExternalToolchain): config = """ BR2_microblazeel=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "microblazeel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_mips=y BR2_mips_32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32GlibcStable(TestExternalToolchain): config = """ BR2_mips=y BR2_mips_32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32MuslBleedingEdge(TestExternalToolchain): config = """ BR2_mips=y BR2_mips_32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32MuslStable(TestExternalToolchain): config = """ BR2_mips=y BR2_mips_32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_mips=y BR2_mips_32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32UclibcStable(TestExternalToolchain): config = """ BR2_mips=y BR2_mips_32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32elGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32elGlibcStable(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32elMuslBleedingEdge(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32elMuslStable(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32elUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32elUclibcStable(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32r5elGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32r5=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32r5elGlibcStable(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32r5=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32r5elMuslBleedingEdge(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32r5=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32r5elMuslStable(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32r5=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32r5elUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32r5=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32r5elUclibcStable(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32r5=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32r6elGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32r6=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32r6elGlibcStable(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32r6=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32r6elMuslBleedingEdge(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32r6=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32r6elMuslStable(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32r6=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32r6elUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32r6=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips32r6elUclibcStable(TestExternalToolchain): config = """ BR2_mipsel=y BR2_mips_32r6=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mipsel-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64n32GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_mips64=y BR2_mips_64=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64n32GlibcStable(TestExternalToolchain): config = """ BR2_mips64=y BR2_mips_64=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64n32MuslBleedingEdge(TestExternalToolchain): config = """ BR2_mips64=y BR2_mips_64=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64n32MuslStable(TestExternalToolchain): config = """ BR2_mips64=y BR2_mips_64=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64n32UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_mips64=y BR2_mips_64=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64n32UclibcStable(TestExternalToolchain): config = """ BR2_mips64=y BR2_mips_64=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64eln32GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_mips64el=y BR2_mips_64=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64el-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64eln32GlibcStable(TestExternalToolchain): config = """ BR2_mips64el=y BR2_mips_64=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64el-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64eln32MuslBleedingEdge(TestExternalToolchain): config = """ BR2_mips64el=y BR2_mips_64=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64el-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64eln32MuslStable(TestExternalToolchain): config = """ BR2_mips64el=y BR2_mips_64=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64el-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64eln32UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_mips64el=y BR2_mips_64=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64el-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64eln32UclibcStable(TestExternalToolchain): config = """ BR2_mips64el=y BR2_mips_64=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64el-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64r6eln32GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_mips64el=y BR2_mips_64r6=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64el-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64r6eln32GlibcStable(TestExternalToolchain): config = """ BR2_mips64el=y BR2_mips_64r6=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64el-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64r6eln32MuslBleedingEdge(TestExternalToolchain): config = """ BR2_mips64el=y BR2_mips_64r6=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64el-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64r6eln32MuslStable(TestExternalToolchain): config = """ BR2_mips64el=y BR2_mips_64r6=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64el-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64r6eln32UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_mips64el=y BR2_mips_64r6=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64el-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinMips64r6eln32UclibcStable(TestExternalToolchain): config = """ BR2_mips64el=y BR2_mips_64r6=y BR2_MIPS_NABI32=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "mips64el-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinNios2GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_nios2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_NIOS2_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "nios2-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinNios2GlibcStable(TestExternalToolchain): config = """ BR2_nios2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_NIOS2_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "nios2-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinOpenriscMuslBleedingEdge(TestExternalToolchain): config = """ BR2_or1k=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "or1k-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinOpenriscMuslStable(TestExternalToolchain): config = """ BR2_or1k=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "or1k-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinOpenriscUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_or1k=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "or1k-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinOpenriscUclibcStable(TestExternalToolchain): config = """ BR2_or1k=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "or1k-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc440fpGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_440fp=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc440fpGlibcStable(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_440fp=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc440fpMuslBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_440fp=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc440fpMuslStable(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_440fp=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc440fpUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_440fp=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc440fpUclibcStable(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_440fp=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpce300c3GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_e300c3=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpce300c3GlibcStable(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_e300c3=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpce300c3MuslBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_e300c3=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpce300c3MuslStable(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_e300c3=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpce300c3UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_e300c3=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpce300c3UclibcStable(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_e300c3=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpce500mcGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_e500mc=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpce500mcGlibcStable(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_e500mc=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpce500mcMuslBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_e500mc=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpce500mcMuslStable(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_e500mc=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpce500mcUclibcBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_e500mc=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpce500mcUclibcStable(TestExternalToolchain): config = """ BR2_powerpc=y BR2_powerpc_e500mc=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64e5500GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc64=y BR2_powerpc_e5500=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E5500_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64e5500GlibcStable(TestExternalToolchain): config = """ BR2_powerpc64=y BR2_powerpc_e5500=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E5500_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64e6500GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc64=y BR2_powerpc_e6500=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64e6500GlibcStable(TestExternalToolchain): config = """ BR2_powerpc64=y BR2_powerpc_e6500=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64e6500MuslBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc64=y BR2_powerpc_e6500=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64e6500MuslStable(TestExternalToolchain): config = """ BR2_powerpc64=y BR2_powerpc_e6500=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64power8GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc64=y BR2_powerpc_power8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64power8GlibcStable(TestExternalToolchain): config = """ BR2_powerpc64=y BR2_powerpc_power8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64power8MuslBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc64=y BR2_powerpc_power8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64power8MuslStable(TestExternalToolchain): config = """ BR2_powerpc64=y BR2_powerpc_power8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64lepower8GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc64le=y BR2_powerpc_power8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64le-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64lepower8GlibcStable(TestExternalToolchain): config = """ BR2_powerpc64le=y BR2_powerpc_power8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64le-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64lepower8MuslBleedingEdge(TestExternalToolchain): config = """ BR2_powerpc64le=y BR2_powerpc_power8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64le-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinPowerpc64lepower8MuslStable(TestExternalToolchain): config = """ BR2_powerpc64le=y BR2_powerpc_power8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "powerpc64le-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinRiscv32ilp32dGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_riscv=y BR2_riscv_g=y BR2_RISCV_32=y BR2_RISCV_ABI_ILP32D=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV32_ILP32D_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "riscv32-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinRiscv64GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_riscv=y BR2_riscv_g=y BR2_RISCV_64=y BR2_RISCV_ABI_LP64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "riscv64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinRiscv64MuslBleedingEdge(TestExternalToolchain): config = """ BR2_riscv=y BR2_riscv_g=y BR2_RISCV_64=y BR2_RISCV_ABI_LP64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "riscv64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinShsh4GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_sh=y BR2_sh4=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sh4-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinShsh4GlibcStable(TestExternalToolchain): config = """ BR2_sh=y BR2_sh4=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sh4-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinShsh4MuslBleedingEdge(TestExternalToolchain): config = """ BR2_sh=y BR2_sh4=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sh4-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinShsh4MuslStable(TestExternalToolchain): config = """ BR2_sh=y BR2_sh4=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sh4-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinShsh4UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_sh=y BR2_sh4=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sh4-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinShsh4UclibcStable(TestExternalToolchain): config = """ BR2_sh=y BR2_sh4=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sh4-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinShsh4aebGlibcBleedingEdge(TestExternalToolchain): config = """ BR2_sh=y BR2_sh4aeb=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sh4aeb-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinShsh4aebGlibcStable(TestExternalToolchain): config = """ BR2_sh=y BR2_sh4aeb=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sh4aeb-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinShsh4aebMuslBleedingEdge(TestExternalToolchain): config = """ BR2_sh=y BR2_sh4aeb=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sh4aeb-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinShsh4aebMuslStable(TestExternalToolchain): config = """ BR2_sh=y BR2_sh4aeb=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sh4aeb-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinSparc64GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_sparc64=y BR2_sparc_v9=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARC64_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sparc64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinSparc64GlibcStable(TestExternalToolchain): config = """ BR2_sparc64=y BR2_sparc_v9=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARC64_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sparc64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinSparcv8UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_sparc=y BR2_sparc_v8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARCV8_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sparc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinSparcv8UclibcStable(TestExternalToolchain): config = """ BR2_sparc=y BR2_sparc_v8=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARCV8_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "sparc-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX8664corei7GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "x86_64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX8664corei7GlibcStable(TestExternalToolchain): config = """ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "x86_64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX8664corei7MuslBleedingEdge(TestExternalToolchain): config = """ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "x86_64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX8664corei7MuslStable(TestExternalToolchain): config = """ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "x86_64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX8664corei7UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "x86_64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX8664corei7UclibcStable(TestExternalToolchain): config = """ BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "x86_64-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX86core2GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_i386=y BR2_x86_core2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "i686-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX86core2GlibcStable(TestExternalToolchain): config = """ BR2_i386=y BR2_x86_core2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "i686-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX86core2MuslBleedingEdge(TestExternalToolchain): config = """ BR2_i386=y BR2_x86_core2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "i686-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX86core2MuslStable(TestExternalToolchain): config = """ BR2_i386=y BR2_x86_core2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "i686-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX86core2UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_i386=y BR2_x86_core2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "i686-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX86core2UclibcStable(TestExternalToolchain): config = """ BR2_i386=y BR2_x86_core2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "i686-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX86i686GlibcBleedingEdge(TestExternalToolchain): config = """ BR2_i386=y BR2_x86_i686=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_GLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "i686-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX86i686GlibcStable(TestExternalToolchain): config = """ BR2_i386=y BR2_x86_i686=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_GLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "i686-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX86i686MuslBleedingEdge(TestExternalToolchain): config = """ BR2_i386=y BR2_x86_i686=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_MUSL_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "i686-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX86i686MuslStable(TestExternalToolchain): config = """ BR2_i386=y BR2_x86_i686=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_MUSL_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "i686-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX86i686UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_i386=y BR2_x86_i686=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "i686-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinX86i686UclibcStable(TestExternalToolchain): config = """ BR2_i386=y BR2_x86_i686=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "i686-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinXtensalx60UclibcBleedingEdge(TestExternalToolchain): config = """ BR2_xtensa=y BR2_XTENSA_CUSTOM=y BR2_XTENSA_LITTLE_ENDIAN=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_XTENSA_LX60_UCLIBC_BLEEDING_EDGE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "xtensa-linux" def test_run(self): TestExternalToolchain.common_check(self) class TestExternalToolchainBootlinXtensalx60UclibcStable(TestExternalToolchain): config = """ BR2_xtensa=y BR2_XTENSA_CUSTOM=y BR2_XTENSA_LITTLE_ENDIAN=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_XTENSA_LX60_UCLIBC_STABLE=y # BR2_TARGET_ROOTFS_TAR is not set """ toolchain_prefix = "xtensa-linux" def test_run(self): TestExternalToolchain.common_check(self) ================================================ FILE: support/testing/tests/utils/__init__.py ================================================ ================================================ FILE: support/testing/tests/utils/br2-external/Config.in ================================================ ================================================ FILE: support/testing/tests/utils/br2-external/external.desc ================================================ name: CHECK_PACKAGE ================================================ FILE: support/testing/tests/utils/br2-external/external.mk ================================================ custom-target: @echo "do nothing" ================================================ FILE: support/testing/tests/utils/br2-external/package/external/external.mk ================================================ # wrong ================================================ FILE: support/testing/tests/utils/test_check_package.py ================================================ """Test cases for utils/check-package. It does not inherit from infra.basetest.BRTest and therefore does not generate a logfile. Only when the tests fail there will be output to the console. The make target ('make check-package') is already used by the job 'check-package' and won't be tested here. """ import os import subprocess import unittest import infra def call_script(args, env, cwd): """Call a script and return stdout and stderr as lists.""" out, err = subprocess.Popen(args, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env, universal_newlines=True).communicate() return out.splitlines(), err.splitlines() class TestCheckPackage(unittest.TestCase): """Test the various ways the script can be called. The script can be called either using relative path, absolute path or from PATH. The files to be checked can be passed as arguments using either relative path or absolute path. When in in-tree mode (without -b) some in-tree files and also all out-of-tree files are ignored. When in out-tree mode (with -b) the script does generate warnings for these but ignores external.mk. """ WITH_EMPTY_PATH = {} WITH_UTILS_IN_PATH = {"PATH": infra.basepath("utils") + ":" + os.environ["PATH"]} relative = [ # base_script base_file rel_script rel_file rel_cwd ["utils/check-package", "package/atop/atop.mk", "./utils/check-package", "package/atop/atop.mk", ""], ["utils/check-package", "package/atop/atop.mk", "./utils/check-package", "./package/atop/atop.mk", ""], ["utils/check-package", "package/atop/atop.mk", "../../utils/check-package", "atop.mk", "package/atop"], ["utils/check-package", "package/atop/atop.mk", "../../utils/check-package", "./atop.mk", "package/atop"], ["utils/check-package", "package/atop/atop.mk", "../utils/check-package", "atop/atop.mk", "package"], ["utils/check-package", "package/atop/atop.mk", "../utils/check-package", "./atop/atop.mk", "package"], ["utils/check-package", "package/atop/Config.in", "./utils/check-package", "package/atop/Config.in", ""], ["utils/check-package", "package/atop/Config.in", "./utils/check-package", "./package/atop/Config.in", ""], ["utils/check-package", "package/atop/Config.in", "../../utils/check-package", "Config.in", "package/atop"], ["utils/check-package", "package/atop/Config.in", "../../utils/check-package", "./Config.in", "package/atop"], ["utils/check-package", "package/atop/Config.in", "../utils/check-package", "atop/Config.in", "package"], ["utils/check-package", "package/atop/Config.in", "../utils/check-package", "./atop/Config.in", "package"]] def assert_file_was_processed(self, stderr): """Infer from check-package stderr if at least one file was processed and fail otherwise.""" self.assertIn("lines processed", stderr[0], stderr) processed = int(stderr[0].split()[0]) self.assertGreater(processed, 0) def assert_file_was_ignored(self, stderr): """Infer from check-package stderr if no file was processed and fail otherwise.""" self.assertIn("lines processed", stderr[0], stderr) processed = int(stderr[0].split()[0]) self.assertEqual(processed, 0) def assert_warnings_generated_for_file(self, stderr): """Infer from check-package stderr if at least one warning was generated and fail otherwise.""" self.assertIn("warnings generated", stderr[1], stderr) generated = int(stderr[1].split()[0]) self.assertGreater(generated, 0) def test_run(self): """Test the various ways the script can be called in a simple top to bottom sequence.""" # an intree file can be checked by the script called from relative path, # absolute path and from PATH for base_script, base_file, rel_script, rel_file, rel_cwd in self.relative: abs_script = infra.basepath(base_script) abs_file = infra.basepath(base_file) cwd = infra.basepath(rel_cwd) _, m = call_script([rel_script, rel_file], self.WITH_EMPTY_PATH, cwd) self.assert_file_was_processed(m) _, m = call_script([abs_script, rel_file], self.WITH_EMPTY_PATH, cwd) self.assert_file_was_processed(m) _, m = call_script(["check-package", rel_file], self.WITH_UTILS_IN_PATH, cwd) self.assert_file_was_processed(m) _, m = call_script([rel_script, abs_file], self.WITH_EMPTY_PATH, cwd) self.assert_file_was_processed(m) _, m = call_script([abs_script, abs_file], self.WITH_EMPTY_PATH, cwd) self.assert_file_was_processed(m) _, m = call_script(["check-package", abs_file], self.WITH_UTILS_IN_PATH, cwd) self.assert_file_was_processed(m) # some intree files are ignored _, m = call_script(["./utils/check-package", "package/pkg-generic.mk"], self.WITH_EMPTY_PATH, infra.basepath()) self.assert_file_was_ignored(m) _, m = call_script(["./utils/check-package", "-b", "package/pkg-generic.mk"], self.WITH_EMPTY_PATH, infra.basepath()) self.assert_file_was_processed(m) # an out-of-tree file can be checked by the script called from relative # path, absolute path and from PATH for base_script, base_file, rel_script, rel_file, rel_cwd in self.relative: abs_script = infra.basepath(base_script) abs_file = infra.basepath(base_file) cwd = infra.basepath(rel_cwd) _, m = call_script([rel_script, "-b", rel_file], self.WITH_EMPTY_PATH, cwd) self.assert_file_was_processed(m) _, m = call_script([abs_script, "-b", rel_file], self.WITH_EMPTY_PATH, cwd) self.assert_file_was_processed(m) _, m = call_script(["check-package", "-b", rel_file], self.WITH_UTILS_IN_PATH, cwd) self.assert_file_was_processed(m) _, m = call_script([rel_script, "-b", abs_file], self.WITH_EMPTY_PATH, cwd) self.assert_file_was_processed(m) _, m = call_script([abs_script, "-b", abs_file], self.WITH_EMPTY_PATH, cwd) self.assert_file_was_processed(m) _, m = call_script(["check-package", "-b", abs_file], self.WITH_UTILS_IN_PATH, cwd) self.assert_file_was_processed(m) # out-of-tree files are are ignored without -b but can generate warnings # with -b abs_path = infra.filepath("tests/utils/br2-external") rel_file = "Config.in" abs_file = os.path.join(abs_path, rel_file) _, m = call_script(["check-package", rel_file], self.WITH_UTILS_IN_PATH, abs_path) self.assert_file_was_ignored(m) _, m = call_script(["check-package", abs_file], self.WITH_UTILS_IN_PATH, infra.basepath()) self.assert_file_was_ignored(m) w, m = call_script(["check-package", "-b", rel_file], self.WITH_UTILS_IN_PATH, abs_path) self.assert_file_was_processed(m) self.assert_warnings_generated_for_file(m) self.assertIn("{}:1: empty line at end of file".format(rel_file), w) w, m = call_script(["check-package", "-b", abs_file], self.WITH_UTILS_IN_PATH, infra.basepath()) self.assert_file_was_processed(m) self.assert_warnings_generated_for_file(m) self.assertIn("{}:1: empty line at end of file".format(abs_file), w) # external.mk is ignored only when in the root path of a br2-external rel_file = "external.mk" abs_file = os.path.join(abs_path, rel_file) _, m = call_script(["check-package", "-b", rel_file], self.WITH_UTILS_IN_PATH, abs_path) self.assert_file_was_ignored(m) _, m = call_script(["check-package", "-b", abs_file], self.WITH_UTILS_IN_PATH, infra.basepath()) self.assert_file_was_ignored(m) abs_path = infra.filepath("tests/utils/br2-external/package/external") abs_file = os.path.join(abs_path, rel_file) w, m = call_script(["check-package", "-b", rel_file], self.WITH_UTILS_IN_PATH, abs_path) self.assert_file_was_processed(m) self.assert_warnings_generated_for_file(m) self.assertIn("{}:1: should be 80 hashes (http://nightly.buildroot.org/#writing-rules-mk)".format(rel_file), w) w, m = call_script(["check-package", "-b", abs_file], self.WITH_UTILS_IN_PATH, infra.basepath()) self.assert_file_was_processed(m) self.assert_warnings_generated_for_file(m) self.assertIn("{}:1: should be 80 hashes (http://nightly.buildroot.org/#writing-rules-mk)".format(abs_file), w) ================================================ FILE: system/Config.in ================================================ menu "System configuration" # Note on package/skeleton: usually, it is not safe to 'select' a # provider of a virtual package. But below we have an exception: each # init system may select one of the virtual skeleton-init-* packages. # As only one init system may be enabled, only one skeleton-init-* may # be selected. So this is a safe situation. choice prompt "Root FS skeleton" config BR2_ROOTFS_SKELETON_DEFAULT bool "default target skeleton" help Use default target skeleton for selected init system. config BR2_ROOTFS_SKELETON_CUSTOM bool "custom target skeleton" select BR2_PACKAGE_SKELETON_CUSTOM help Use custom target skeleton. # skeleton from br2-external trees, if any source "$BR2_BASE_DIR/.br2-external.in.skeleton" endchoice if BR2_ROOTFS_SKELETON_CUSTOM config BR2_ROOTFS_SKELETON_CUSTOM_PATH string "custom target skeleton path" help Path to custom target skeleton. endif if BR2_ROOTFS_SKELETON_DEFAULT config BR2_TARGET_GENERIC_HOSTNAME string "System hostname" default "buildroot" help Select system hostname to be stored in /etc/hostname. Leave empty to not create /etc/hostname, or to keep the one from a custom skeleton. config BR2_TARGET_GENERIC_ISSUE string "System banner" default "Welcome to Buildroot" help Select system banner (/etc/issue) to be displayed at login. 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_SHA256 help Choose the password encoding scheme to use when Buildroot needs to encode a password (eg. the root password, below). Note: this is used at build-time, and *not* at runtime. config BR2_TARGET_GENERIC_PASSWD_SHA256 bool "sha-256" help Use SHA256 to encode passwords which is stronger than MD5. config BR2_TARGET_GENERIC_PASSWD_SHA512 bool "sha-512" help Use SHA512 to encode passwords which is stronger than SHA256 endchoice # Passwd encoding config BR2_TARGET_GENERIC_PASSWD_METHOD string default "md5" if BR2_TARGET_GENERIC_PASSWD_MD5 default "sha-256" if BR2_TARGET_GENERIC_PASSWD_SHA256 default "sha-512" if BR2_TARGET_GENERIC_PASSWD_SHA512 # See comment at the top of the file, about selecting individual # skeletons, which are providers of the virtual skeleton package. choice prompt "Init system" default BR2_INIT_BUSYBOX config BR2_INIT_BUSYBOX bool "BusyBox" select BR2_PACKAGE_BUSYBOX select BR2_PACKAGE_INITSCRIPTS select BR2_PACKAGE_SKELETON_INIT_SYSV if BR2_ROOTFS_SKELETON_DEFAULT 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 select BR2_PACKAGE_SKELETON_INIT_SYSV if BR2_ROOTFS_SKELETON_DEFAULT config BR2_INIT_OPENRC bool "OpenRC" depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_PACKAGE_OPENRC select BR2_PACKAGE_SKELETON_INIT_OPENRC if BR2_ROOTFS_SKELETON_DEFAULT comment "openrc needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS # In Buildroot, we decided not to support a split-usr when systemd is # used as an init system. This is a design decision, not a systemd # issue. Thus the select is with BR2_INIT_SYSTEMD (below) rather than # with BR2_PACKAGE_SYSTEMD. config BR2_INIT_SYSTEMD bool "systemd" depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_TOOLCHAIN_HAS_SSP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 depends on BR2_HOST_GCC_AT_LEAST_5 select BR2_ROOTFS_MERGED_USR select BR2_PACKAGE_SYSTEMD select BR2_PACKAGE_SKELETON_INIT_SYSTEMD if BR2_ROOTFS_SKELETON_DEFAULT comment "systemd needs a glibc toolchain w/ SSP, headers >= 3.10, host and target gcc >= 5" depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_TOOLCHAIN_HAS_SSP || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \ !BR2_HOST_GCC_AT_LEAST_5 config BR2_INIT_NONE bool "None" select BR2_PACKAGE_SKELETON_INIT_NONE if BR2_ROOTFS_SKELETON_DEFAULT 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. # Init systems from br2-external trees, if any source "$BR2_BASE_DIR/.br2-external.in.init" endchoice choice prompt "/dev management" if !BR2_INIT_SYSTEMD default BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS config BR2_ROOTFS_DEVICE_CREATION_STATIC bool "Static using device table" config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS bool "Dynamic using devtmpfs only" config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV bool "Dynamic using devtmpfs + mdev" select BR2_PACKAGE_BUSYBOX config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV bool "Dynamic using devtmpfs + eudev" depends on BR2_USE_WCHAR # eudev depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # eudev select BR2_PACKAGE_EUDEV comment "eudev needs a toolchain w/ wchar, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS endchoice comment "/dev management using udev (from systemd)" depends on BR2_INIT_SYSTEMD config BR2_ROOTFS_DEVICE_TABLE string "Path to the permission tables" default "system/device_table.txt" help Specify a space-separated list of permission table locations, that will be passed to the makedevs utility to assign correct owners and permissions on various files in the target filesystem. See package/makedevs/README for details on the usage and syntax of these files. config BR2_ROOTFS_STATIC_DEVICE_TABLE string "Path to the device tables" default "system/device_table_dev.txt" depends on BR2_ROOTFS_DEVICE_CREATION_STATIC help Specify a space-separated list of device table locations, that will be passed to the makedevs utility to create all the special device files under /dev. See package/makedevs/README for details on the usage and syntax of these files. config BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES bool "support extended attributes in device tables" help Support extended attributes handling in device tables config BR2_ROOTFS_MERGED_USR bool "Use symlinks to /usr for /bin, /sbin and /lib" help If you say 'n' here, then /bin, /sbin and /lib and their counterparts in /usr will be separate directories. This is the historical UNIX way. In this case, /usr can be a filesystem on a partition separate from / . If you say 'y' here, then /bin, /sbin and /lib will be symlinks to their counterparts in /usr. In this case, /usr can not be a separate filesystem. if BR2_ROOTFS_SKELETON_DEFAULT config BR2_TARGET_ENABLE_ROOT_LOGIN bool "Enable root login with password" default y select BR2_PACKAGE_HOST_MKPASSWD if BR2_TARGET_GENERIC_ROOT_PASSWD != "" help Allow root to log in with a password. If not enabled, root will not be able to log in with a password. However, if you have an ssh server and you add an ssh key, you can still allow root to log in. Alternatively, you can use sudo to become root. config BR2_TARGET_GENERIC_ROOT_PASSWD string "Root password" default "" depends on BR2_TARGET_ENABLE_ROOT_LOGIN help Set the initial root password. If set to empty (the default), then no root password will be set, and root will need no password to log in. If the password starts with any of $1$, $5$ or $6$, it is considered to be already crypt-encoded with respectively md5, sha256 or sha512. Any other value is taken to be a clear-text value, and is crypt-encoded as per the "Passwords encoding" scheme, above. Note: "$" signs in the hashed password must be doubled. For example, if the hashed password is "$1$longsalt$v35DIIeMo4yUfI23yditq0", then you must enter it as "$$1$$longsalt$$v35DIIeMo4yUfI23yditq0" (this is necessary otherwise make would attempt to interpret the $ as a variable expansion). WARNING! WARNING! The password appears as-is in the .config file, and may appear in the build log! Avoid using a valuable password if either the .config file or the build log may be distributed, or at the very least use a strong cryptographic hash for your password! choice bool "/bin/sh" default BR2_SYSTEM_BIN_SH_DASH if !BR2_PACKAGE_BUSYBOX help Select which shell will provide /bin/sh. # busybox has shells that work on noMMU config BR2_SYSTEM_BIN_SH_BUSYBOX bool "busybox' default shell" depends on BR2_PACKAGE_BUSYBOX config BR2_SYSTEM_BIN_SH_BASH bool "bash" depends on BR2_USE_MMU # bash depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_BASH config BR2_SYSTEM_BIN_SH_DASH bool "dash" depends on BR2_USE_MMU # dash depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_DASH config BR2_SYSTEM_BIN_SH_MKSH bool "mksh" depends on BR2_USE_MMU # mksh depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_MKSH config BR2_SYSTEM_BIN_SH_ZSH bool "zsh" depends on BR2_USE_MMU # zsh depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_ZSH comment "bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS" depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS && BR2_PACKAGE_BUSYBOX config BR2_SYSTEM_BIN_SH_NONE bool "none" endchoice # /bin/sh config BR2_SYSTEM_BIN_SH string default "bash" if BR2_SYSTEM_BIN_SH_BASH default "dash" if BR2_SYSTEM_BIN_SH_DASH default "mksh" if BR2_SYSTEM_BIN_SH_MKSH default "zsh" if BR2_SYSTEM_BIN_SH_ZSH menuconfig BR2_TARGET_GENERIC_GETTY bool "Run a getty (login prompt) after boot" default y if BR2_TARGET_GENERIC_GETTY config BR2_TARGET_GENERIC_GETTY_PORT string "TTY port" default "console" help Specify a port to run a getty on. choice prompt "Baudrate" default BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP help Select a baudrate to use. config BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP bool "keep kernel default" config BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600 bool "9600" config BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200 bool "19200" config BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400 bool "38400" config BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 bool "57600" config BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 bool "115200" endchoice config BR2_TARGET_GENERIC_GETTY_BAUDRATE string default "0" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP default "9600" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600 default "19200" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200 default "38400" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400 default "57600" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 default "115200" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 config BR2_TARGET_GENERIC_GETTY_TERM string "TERM environment variable" default "vt100" # currently observed by all but systemd depends on !BR2_INIT_SYSTEMD help Specify a TERM type. config BR2_TARGET_GENERIC_GETTY_OPTIONS string "other options to pass to getty" default "" # currently observed by all but systemd depends on !BR2_INIT_SYSTEMD help Any other flags you want to pass to getty, Refer to getty --help for details. endif config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW bool "remount root filesystem read-write during boot" default y help The root filesystem is typically mounted read-only at boot. By default, buildroot remounts it in read-write mode early during the boot process. Say no here if you would rather like your root filesystem to remain read-only. If unsure, say Y. config BR2_SYSTEM_DHCP string "Network interface to configure through DHCP" default "" depends on BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || \ BR2_PACKAGE_SYSTEMD_NETWORKD || BR2_PACKAGE_NETIFRC help Enter here the name of the network interface (E.G. eth0) to automatically configure through DHCP at bootup. If left empty, no automatic DHCP requests will take place. For more complicated network setups use an overlay to overwrite /etc/network/interfaces or add a networkd configuration file. comment "automatic network configuration via DHCP needs ifupdown or busybox or networkd or netifrc" depends on !(BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || \ BR2_PACKAGE_SYSTEMD_NETWORKD || BR2_PACKAGE_NETIFRC) endif # BR2_ROOTFS_SKELETON_DEFAULT config BR2_SYSTEM_DEFAULT_PATH string "Set the system's default PATH" default "/usr/bin:/usr/sbin" if BR2_ROOTFS_MERGED_USR default "/bin:/sbin:/usr/bin:/usr/sbin" if !BR2_ROOTFS_MERGED_USR help Sets the system's default PATH. It is being used in /etc/profile in the skeleton-init-common package and by some daemons. The default should work in most cases. 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_SYSTEM_ENABLE_NLS bool "Enable Native Language Support (NLS)" depends on BR2_USE_WCHAR # - glibc has built-in NLS support, but anyway doesn't # support static linking # - musl and uclibc support static linking, but they don't # have built-in NLS support, which is provided by the # libintl library from gettext. The fact that it is a # separate library causes too many problems for static # linking. depends on !BR2_STATIC_LIBS select BR2_PACKAGE_GETTEXT if !BR2_TOOLCHAIN_HAS_FULL_GETTEXT help This option will enable Native Language Support, which will allow software packages to support translations. comment "NLS support needs a toolchain w/ wchar, dynamic library" depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS config BR2_TARGET_TZ_INFO bool "Install timezone info" 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. if BR2_TARGET_TZ_INFO config BR2_TARGET_TZ_ZONELIST string "timezone list" default "default" help 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 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. config BR2_TARGET_LOCALTIME string "default local time" default "Etc/UTC" help The time zone to install as the default local time, expressed as a tzdata location, such as: Etc/UTC (the default) GMT Europe/Paris America/New_York Pacific/Wallis ... Set to empty to not install a default time zone. endif # BR2_TARGET_TZ_INFO config BR2_ROOTFS_USERS_TABLES string "Path to the users tables" help Specify a space-separated list of users table locations, that will be passed to the mkusers utility to create users on the system, with home directory, password, etc. See manual for details on the usage and syntax of these files. config BR2_ROOTFS_OVERLAY string "Root filesystem overlay directories" default "" help Specify a list of directories that are copied over the target root filesystem after the build has finished and before it is packed into the selected filesystem images. They are copied as-is into the rootfs, excluding files ending with ~ and .git, .svn and .hg directories. config BR2_ROOTFS_POST_BUILD_SCRIPT string "Custom scripts to run before creating filesystem images" default "" help Specify a space-separated list of scripts to be run after the build has finished and before Buildroot starts packing the files into selected filesystem images. This gives users the opportunity to do board-specific cleanups, add-ons and the like, so the generated files can be used directly without further processing. These scripts are called with the target directory name as first 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 rights. 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 "" help Specify a space-separated list of scripts to be run after the build has finished and after Buildroot has packed the files into selected filesystem images. This can for example be used to call a tool building a firmware image from different images generated by Buildroot, or automatically extract the tarball root filesystem image into some location exported by NFS, or any other custom action. These scripts are called with the images directory name as first argument. The script is executed from the main Buildroot source directory as the current directory. config BR2_ROOTFS_POST_SCRIPT_ARGS 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. Note that all the post-build and post-image scripts will be passed the same set of arguments, you can not pass different arguments to each script. Note also, as stated in their respective help text, that the first argument to each post-build or post-image script is the target directory / images directory. The arguments in this option will be passed *after* those. endmenu ================================================ FILE: system/device_table.txt ================================================ # See package/makedevs/README for details # # This device table is used to assign proper ownership and permissions # on various files. It doesn't create any device file, as it is used # in both static device configurations (where /dev/ is static) and in # dynamic configurations (where devtmpfs, mdev or udev are used). # # /dev d 755 0 0 - - - - - /tmp d 1777 0 0 - - - - - /etc d 755 0 0 - - - - - /root d 700 0 0 - - - - - /var/www d 755 33 33 - - - - - /etc/passwd f 644 0 0 - - - - - /etc/network/if-up.d d 755 0 0 - - - - - /etc/network/if-pre-up.d d 755 0 0 - - - - - /etc/network/if-down.d d 755 0 0 - - - - - /etc/network/if-post-down.d d 755 0 0 - - - - - # uncomment this to allow starting x as non-root #/usr/X11R6/bin/Xfbdev f 4755 0 0 - - - - - ================================================ FILE: system/device_table_dev.txt ================================================ # See package/makedevs/README for details # # This device table is used only to create device files when a static # device configuration is used (entries in /dev are static). # # # Normal system devices /dev/mem c 640 0 0 1 1 0 0 - /dev/kmem c 640 0 0 1 2 0 0 - /dev/null c 666 0 0 1 3 0 0 - /dev/zero c 666 0 0 1 5 0 0 - /dev/random c 666 0 0 1 8 0 0 - /dev/urandom c 666 0 0 1 9 0 0 - /dev/ram b 640 0 0 1 1 0 0 - /dev/ram b 640 0 0 1 0 0 1 4 /dev/loop b 640 0 0 7 0 0 1 2 /dev/rtc c 640 0 0 10 135 - - - /dev/console c 666 0 0 5 1 - - - /dev/tty c 666 0 0 5 0 - - - /dev/tty c 666 0 0 4 0 0 1 8 /dev/ttyp c 666 0 0 3 0 0 1 10 /dev/ptyp c 666 0 0 2 0 0 1 10 /dev/ptmx c 666 0 0 5 2 - - - /dev/ttyP c 666 0 0 57 0 0 1 4 /dev/ttyS c 666 0 0 4 64 0 1 4 /dev/fb c 640 0 5 29 0 0 1 4 #/dev/ttySA c 666 0 0 204 5 0 1 3 /dev/psaux c 666 0 0 10 1 0 0 - #/dev/ppp c 666 0 0 108 0 - - - /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 /dev/ttyUL c 666 0 0 204 187 0 1 4 /dev/ttymxc c 666 0 0 207 16 0 1 4 /dev/hvc c 640 0 0 229 0 0 1 4 # Input stuff /dev/input d 755 0 0 - - - - - /dev/input/mice c 640 0 0 13 63 0 0 - /dev/input/mouse c 660 0 0 13 32 0 1 4 /dev/input/event c 660 0 0 13 64 0 1 4 #/dev/input/js c 660 0 0 13 0 0 1 4 # MTD stuff /dev/mtd c 640 0 0 90 0 0 2 4 /dev/mtdblock b 640 0 0 31 0 0 1 4 #Tun/tap driver /dev/net d 755 0 0 - - - - - /dev/net/tun c 660 0 0 10 200 - - - # Audio stuff #/dev/audio c 666 0 29 14 4 - - - #/dev/audio1 c 666 0 29 14 20 - - - #/dev/dsp c 666 0 29 14 3 - - - #/dev/dsp1 c 666 0 29 14 19 - - - #/dev/sndstat c 666 0 29 14 6 - - - # User-mode Linux stuff #/dev/ubda b 640 0 0 98 0 0 0 - #/dev/ubda b 640 0 0 98 1 1 1 15 # IDE Devices /dev/hda b 640 0 0 3 0 0 0 - /dev/hda b 640 0 0 3 1 1 1 15 /dev/hdb b 640 0 0 3 64 0 0 - /dev/hdb b 640 0 0 3 65 1 1 15 #/dev/hdc b 640 0 0 22 0 0 0 - #/dev/hdc b 640 0 0 22 1 1 1 15 #/dev/hdd b 640 0 0 22 64 0 0 - #/dev/hdd b 640 0 0 22 65 1 1 15 #/dev/hde b 640 0 0 33 0 0 0 - #/dev/hde b 640 0 0 33 1 1 1 15 #/dev/hdf b 640 0 0 33 64 0 0 - #/dev/hdf b 640 0 0 33 65 1 1 15 #/dev/hdg b 640 0 0 34 0 0 0 - #/dev/hdg b 640 0 0 34 1 1 1 15 #/dev/hdh b 640 0 0 34 64 0 0 - #/dev/hdh b 640 0 0 34 65 1 1 15 # SCSI Devices /dev/sda b 640 0 0 8 0 0 0 - /dev/sda b 640 0 0 8 1 1 1 15 /dev/sdb b 640 0 0 8 16 0 0 - /dev/sdb b 640 0 0 8 17 1 1 15 #/dev/sdc b 640 0 0 8 32 0 0 - #/dev/sdc b 640 0 0 8 33 1 1 15 #/dev/sdd b 640 0 0 8 48 0 0 - #/dev/sdd b 640 0 0 8 49 1 1 15 #/dev/sde b 640 0 0 8 64 0 0 - #/dev/sde b 640 0 0 8 65 1 1 15 #/dev/sdf b 640 0 0 8 80 0 0 - #/dev/sdf b 640 0 0 8 81 1 1 15 #/dev/sdg b 640 0 0 8 96 0 0 - #/dev/sdg b 640 0 0 8 97 1 1 15 #/dev/sdh b 640 0 0 8 112 0 0 - #/dev/sdh b 640 0 0 8 113 1 1 15 #/dev/sg c 640 0 0 21 0 0 1 15 #/dev/scd b 640 0 0 11 0 0 1 15 #/dev/st c 640 0 0 9 0 0 1 8 #/dev/nst c 640 0 0 9 128 0 1 8 #/dev/st c 640 0 0 9 32 1 1 4 #/dev/st c 640 0 0 9 64 1 1 4 #/dev/st c 640 0 0 9 96 1 1 4 # USB block devices (ub driver) /dev/uba b 640 0 0 180 0 0 0 - /dev/uba b 640 0 0 180 1 1 1 6 /dev/ubb b 640 0 0 180 8 0 0 - /dev/ubb b 640 0 0 180 65 1 1 6 # Floppy disk devices #/dev/fd b 640 0 0 2 0 0 1 2 #/dev/fd0d360 b 640 0 0 2 4 0 0 - #/dev/fd1d360 b 640 0 0 2 5 0 0 - #/dev/fd0h1200 b 640 0 0 2 8 0 0 - #/dev/fd1h1200 b 640 0 0 2 9 0 0 - #/dev/fd0u1440 b 640 0 0 2 28 0 0 - #/dev/fd1u1440 b 640 0 0 2 29 0 0 - #/dev/fd0u2880 b 640 0 0 2 32 0 0 - #/dev/fd1u2880 b 640 0 0 2 33 0 0 - # I2C device nodes /dev/i2c- c 666 0 0 89 0 0 1 4 # v4l device nodes /dev/video c 666 0 0 81 0 0 1 4 ================================================ FILE: system/skeleton/dev/.empty ================================================ ================================================ FILE: system/skeleton/etc/group ================================================ root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: mail:x:8: kmem:x:9: wheel:x:10:root cdrom:x:11: dialout:x:18: floppy:x:19: video:x:28: audio:x:29: tape:x:32: www-data:x:33: operator:x:37: utmp:x:43: plugdev:x:46: staff:x:50: lock:x:54: netdev:x:82: users:x:100: nobody:x:65534: ================================================ FILE: system/skeleton/etc/hosts ================================================ 127.0.0.1 localhost ================================================ FILE: system/skeleton/etc/passwd ================================================ root:x:0:0:root:/root:/bin/sh daemon:x:1:1:daemon:/usr/sbin:/bin/false bin:x:2:2:bin:/bin:/bin/false sys:x:3:3:sys:/dev:/bin/false sync:x:4:100:sync:/bin:/bin/sync mail:x:8:8:mail:/var/spool/mail:/bin/false www-data:x:33:33:www-data:/var/www:/bin/false operator:x:37:37:Operator:/var:/bin/false nobody:x:65534:65534:nobody:/home:/bin/false ================================================ FILE: system/skeleton/etc/profile ================================================ export PATH=@PATH@ if [ "$PS1" ]; then if [ "`id -u`" -eq 0 ]; then export PS1='# ' else export PS1='$ ' fi fi export EDITOR='/bin/vi' # Source configuration files from /etc/profile.d for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then . $i fi done unset i ================================================ FILE: system/skeleton/etc/profile.d/umask.sh ================================================ umask 022 ================================================ FILE: system/skeleton/etc/protocols ================================================ # Internet (IP) protocols # # Updated from http://www.iana.org/assignments/protocol-numbers and other # sources. ip 0 IP # internet protocol, pseudo protocol number hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883] icmp 1 ICMP # internet control message protocol igmp 2 IGMP # Internet Group Management ggp 3 GGP # gateway-gateway protocol ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') st 5 ST # ST datagram mode tcp 6 TCP # transmission control protocol egp 8 EGP # exterior gateway protocol igp 9 IGP # any private interior gateway (Cisco) pup 12 PUP # PARC universal packet protocol udp 17 UDP # user datagram protocol hmp 20 HMP # host monitoring protocol xns-idp 22 XNS-IDP # Xerox NS IDP rdp 27 RDP # "reliable datagram" protocol iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 [RFC905] dccp 33 DCCP # Datagram Congestion Control Prot. [RFC4340] xtp 36 XTP # Xpress Transfer Protocol ddp 37 DDP # Datagram Delivery Protocol idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport ipv6 41 IPv6 # Internet Protocol, version 6 ipv6-route 43 IPv6-Route # Routing Header for IPv6 ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6 idrp 45 IDRP # Inter-Domain Routing Protocol rsvp 46 RSVP # Reservation Protocol gre 47 GRE # General Routing Encapsulation esp 50 IPSEC-ESP # Encap Security Payload [RFC2406] ah 51 IPSEC-AH # Authentication Header [RFC2402] skip 57 SKIP # SKIP ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6 ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6 ipv6-opts 60 IPv6-Opts # Destination Options for IPv6 rspf 73 RSPF CPHB # Radio Shortest Path First (officially CPHB) vmtp 81 VMTP # Versatile Message Transport eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco) ospf 89 OSPFIGP # Open Shortest Path First IGP ax.25 93 AX.25 # AX.25 frames ipip 94 IPIP # IP-within-IP Encapsulation Protocol etherip 97 ETHERIP # Ethernet-within-IP Encapsulation [RFC3378] encap 98 ENCAP # Yet Another IP encapsulation [RFC1241] # 99 # any private encryption scheme pim 103 PIM # Protocol Independent Multicast ipcomp 108 IPCOMP # IP Payload Compression Protocol vrrp 112 VRRP # Virtual Router Redundancy Protocol [RFC5798] l2tp 115 L2TP # Layer Two Tunneling Protocol [RFC2661] isis 124 ISIS # IS-IS over IPv4 sctp 132 SCTP # Stream Control Transmission Protocol fc 133 FC # Fibre Channel mobility-header 135 Mobility-Header # Mobility Support for IPv6 [RFC3775] udplite 136 UDPLite # UDP-Lite [RFC3828] mpls-in-ip 137 MPLS-in-IP # MPLS-in-IP [RFC4023] manet 138 # MANET Protocols [RFC5498] hip 139 HIP # Host Identity Protocol shim6 140 Shim6 # Shim6 Protocol [RFC5533] wesp 141 WESP # Wrapped Encapsulating Security Payload rohc 142 ROHC # Robust Header Compression ================================================ FILE: system/skeleton/etc/services ================================================ # /etc/services: # $Id: services,v 1.1 2004/10/09 02:49:18 andersen Exp $ # # Network services, Internet style # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, most entries here have two entries # even if the protocol doesn't support UDP operations. # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports # are included, only the more common ones. tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol msp 18/udp # message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp fsp 21/udp fspd ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp # 24 - private smtp 25/tcp mail # 26 - unassigned time 37/tcp timserver time 37/udp timserver rlp 39/udp resource # resource location nameserver 42/tcp name # IEN 116 whois 43/tcp nicname re-mail-ck 50/tcp # Remote Mail Checking Protocol re-mail-ck 50/udp # Remote Mail Checking Protocol domain 53/tcp nameserver # name-domain server domain 53/udp nameserver mtp 57/tcp # deprecated bootps 67/tcp # BOOTP server bootps 67/udp bootpc 68/tcp # BOOTP client bootpc 68/udp tftp 69/udp gopher 70/tcp # Internet Gopher gopher 70/udp rje 77/tcp netrjs finger 79/tcp www 80/tcp http # WorldWideWeb HTTP www 80/udp # HyperText Transfer Protocol link 87/tcp ttylink kerberos 88/tcp kerberos5 krb5 # Kerberos v5 kerberos 88/udp kerberos5 krb5 # Kerberos v5 supdup 95/tcp # 100 - reserved hostnames 101/tcp hostname # usually from sri-nic iso-tsap 102/tcp tsap # part of ISODE. csnet-ns 105/tcp cso-ns # also used by CSO name server csnet-ns 105/udp cso-ns # unfortunately the poppassd (Eudora) uses a port which has already # been assigned to a different service. We list the poppassd as an # alias here. This should work for programs asking for this service. # (due to a bug in inetd the 3com-tsmux line is disabled) #3com-tsmux 106/tcp poppassd #3com-tsmux 106/udp poppassd rtelnet 107/tcp # Remote Telnet rtelnet 107/udp pop-2 109/tcp postoffice # POP version 2 pop-2 109/udp pop-3 110/tcp # POP version 3 pop-3 110/udp sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP auth 113/tcp authentication tap ident sftp 115/tcp uucp-path 117/tcp nntp 119/tcp readnews untp # USENET News Transfer Protocol ntp 123/tcp ntp 123/udp # Network Time Protocol netbios-ns 137/tcp # NETBIOS Name Service netbios-ns 137/udp netbios-dgm 138/tcp # NETBIOS Datagram Service netbios-dgm 138/udp netbios-ssn 139/tcp # NETBIOS session service netbios-ssn 139/udp imap2 143/tcp # Interim Mail Access Proto v2 imap2 143/udp snmp 161/udp # Simple Net Mgmt Proto snmp-trap 162/udp snmptrap # Traps for SNMP cmip-man 163/tcp # ISO mgmt over IP (CMOT) cmip-man 163/udp cmip-agent 164/tcp cmip-agent 164/udp xdmcp 177/tcp # X Display Mgr. Control Proto xdmcp 177/udp nextstep 178/tcp NeXTStep NextStep # NeXTStep window nextstep 178/udp NeXTStep NextStep # server bgp 179/tcp # Border Gateway Proto. bgp 179/udp prospero 191/tcp # Cliff Neuman's Prospero prospero 191/udp irc 194/tcp # Internet Relay Chat irc 194/udp smux 199/tcp # SNMP Unix Multiplexer smux 199/udp at-rtmp 201/tcp # AppleTalk routing at-rtmp 201/udp at-nbp 202/tcp # AppleTalk name binding at-nbp 202/udp at-echo 204/tcp # AppleTalk echo at-echo 204/udp at-zis 206/tcp # AppleTalk zone information at-zis 206/udp qmtp 209/tcp # The Quick Mail Transfer Protocol qmtp 209/udp # The Quick Mail Transfer Protocol z3950 210/tcp wais # NISO Z39.50 database z3950 210/udp wais ipx 213/tcp # IPX ipx 213/udp imap3 220/tcp # Interactive Mail Access imap3 220/udp # Protocol v3 ulistserv 372/tcp # UNIX Listserv ulistserv 372/udp https 443/tcp # MCom https 443/udp # MCom snpp 444/tcp # Simple Network Paging Protocol snpp 444/udp # Simple Network Paging Protocol saft 487/tcp # Simple Asynchronous File Transfer saft 487/udp # Simple Asynchronous File Transfer npmp-local 610/tcp dqs313_qmaster # npmp-local / DQS npmp-local 610/udp dqs313_qmaster # npmp-local / DQS npmp-gui 611/tcp dqs313_execd # npmp-gui / DQS npmp-gui 611/udp dqs313_execd # npmp-gui / DQS hmmp-ind 612/tcp dqs313_intercell# HMMP Indication / DQS hmmp-ind 612/udp dqs313_intercell# HMMP Indication / DQS # # UNIX specific services # exec 512/tcp biff 512/udp comsat login 513/tcp who 513/udp whod shell 514/tcp cmd # no passwords used syslog 514/udp printer 515/tcp spooler # line printer spooler talk 517/udp ntalk 518/udp route 520/udp router routed # RIP timed 525/udp timeserver tempo 526/tcp newdate courier 530/tcp rpc conference 531/tcp chat netnews 532/tcp readnews netwall 533/udp # -for emergency broadcasts uucp 540/tcp uucpd # uucp daemon afpovertcp 548/tcp # AFP over TCP afpovertcp 548/udp # AFP over TCP remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem klogin 543/tcp # Kerberized `rlogin' (v5) kshell 544/tcp krcmd # Kerberized `rsh' (v5) kerberos-adm 749/tcp # Kerberos `kadmin' (v5) # webster 765/tcp # Network dictionary webster 765/udp # # From ``Assigned Numbers'': # #> The Registered Ports are not controlled by the IANA and on most systems #> can be used by ordinary user processes or programs executed by ordinary #> users. # #> Ports are used in the TCP [45,106] to name the ends of logical #> connections which carry long term conversations. For the purpose of #> providing services to unknown callers, a service contact port is #> defined. This list specifies the port used by the server process as its #> contact port. While the IANA can not control uses of these ports it #> does register or list uses of these ports as a convienence to the #> community. # nfsdstatus 1110/tcp nfsd-keepalive 1110/udp ingreslock 1524/tcp ingreslock 1524/udp prospero-np 1525/tcp # Prospero non-privileged prospero-np 1525/udp datametrics 1645/tcp old-radius # datametrics / old radius entry datametrics 1645/udp old-radius # datametrics / old radius entry sa-msg-port 1646/tcp old-radacct # sa-msg-port / old radacct entry sa-msg-port 1646/udp old-radacct # sa-msg-port / old radacct entry radius 1812/tcp # Radius radius 1812/udp # Radius radacct 1813/tcp # Radius Accounting radacct 1813/udp # Radius Accounting nfsd 2049/tcp nfs nfsd 2049/udp nfs cvspserver 2401/tcp # CVS client/server operations cvspserver 2401/udp # CVS client/server operations mysql 3306/tcp # MySQL mysql 3306/udp # MySQL rfe 5002/tcp # Radio Free Ethernet rfe 5002/udp # Actually uses UDP only cfengine 5308/tcp # CFengine cfengine 5308/udp # CFengine bbs 7000/tcp # BBS service # # # Kerberos (Project Athena/MIT) services # Note that these are for Kerberos v4, and are unofficial. Sites running # v4 should uncomment these and comment out the v5 entries above. # kerberos4 750/udp kerberos-iv kdc # Kerberos (server) udp kerberos4 750/tcp kerberos-iv kdc # Kerberos (server) tcp kerberos_master 751/udp # Kerberos authentication kerberos_master 751/tcp # Kerberos authentication passwd_server 752/udp # Kerberos passwd server krb_prop 754/tcp # Kerberos slave propagation krbupdate 760/tcp kreg # Kerberos registration kpasswd 761/tcp kpwd # Kerberos "passwd" kpop 1109/tcp # Pop with Kerberos knetd 2053/tcp # Kerberos de-multiplexor zephyr-srv 2102/udp # Zephyr server zephyr-clt 2103/udp # Zephyr serv-hm connection zephyr-hm 2104/udp # Zephyr hostmanager eklogin 2105/tcp # Kerberos encrypted rlogin # # Unofficial but necessary (for NetBSD) services # supfilesrv 871/tcp # SUP server supfiledbg 1127/tcp # SUP debugging # # Datagram Delivery Protocol services # rtmp 1/ddp # Routing Table Maintenance Protocol nbp 2/ddp # Name Binding Protocol echo 4/ddp # AppleTalk Echo Protocol zip 6/ddp # Zone Information Protocol # # Services added for the Debian GNU/Linux distribution poppassd 106/tcp # Eudora poppassd 106/udp # Eudora mailq 174/tcp # Mailer transport queue for Zmailer mailq 174/tcp # Mailer transport queue for Zmailer omirr 808/tcp omirrd # online mirror omirr 808/udp omirrd # online mirror rmtcfg 1236/tcp # Gracilis Packeten remote config server xtel 1313/tcp # french minitel coda_opcons 1355/udp # Coda opcons (Coda fs) coda_venus 1363/udp # Coda venus (Coda fs) coda_auth 1357/udp # Coda auth (Coda fs) coda_udpsrv 1359/udp # Coda udpsrv (Coda fs) coda_filesrv 1361/udp # Coda filesrv (Coda fs) codacon 1423/tcp venus.cmu # Coda Console (Coda fs) coda_aux1 1431/tcp # coda auxiliary service (Coda fs) coda_aux1 1431/udp # coda auxiliary service (Coda fs) coda_aux2 1433/tcp # coda auxiliary service (Coda fs) coda_aux2 1433/udp # coda auxiliary service (Coda fs) coda_aux3 1435/tcp # coda auxiliary service (Coda fs) coda_aux3 1435/udp # coda auxiliary service (Coda fs) cfinger 2003/tcp # GNU Finger afbackup 2988/tcp # Afbackup system afbackup 2988/udp # Afbackup system icp 3130/tcp # Internet Cache Protocol (Squid) icp 3130/udp # Internet Cache Protocol (Squid) postgres 5432/tcp # POSTGRES postgres 5432/udp # POSTGRES fax 4557/tcp # FAX transmission service (old) hylafax 4559/tcp # HylaFAX client-server protocol (new) noclog 5354/tcp # noclogd with TCP (nocol) noclog 5354/udp # noclogd with UDP (nocol) hostmon 5355/tcp # hostmon uses TCP (nocol) hostmon 5355/udp # hostmon uses TCP (nocol) ircd 6667/tcp # Internet Relay Chat ircd 6667/udp # Internet Relay Chat webcache 8080/tcp # WWW caching service webcache 8080/udp # WWW caching service tproxy 8081/tcp # Transparent Proxy tproxy 8081/udp # Transparent Proxy mandelspawn 9359/udp mandelbrot # network mandelbrot amanda 10080/udp # amanda backup services amandaidx 10082/tcp # amanda backup services amidxtape 10083/tcp # amanda backup services isdnlog 20011/tcp # isdn logging system isdnlog 20011/udp # isdn logging system vboxd 20012/tcp # voice box system vboxd 20012/udp # voice box system binkp 24554/tcp # Binkley binkp 24554/udp # Binkley asp 27374/tcp # Address Search Protocol asp 27374/udp # Address Search Protocol tfido 60177/tcp # Ifmail tfido 60177/udp # Ifmail fido 60179/tcp # Ifmail fido 60179/udp # Ifmail # Local services ================================================ FILE: system/skeleton/etc/shadow ================================================ root:::::::: daemon:*::::::: bin:*::::::: sys:*::::::: sync:*::::::: mail:*::::::: www-data:*::::::: operator:*::::::: nobody:*::::::: ================================================ FILE: system/skeleton/media/.empty ================================================ ================================================ FILE: system/skeleton/mnt/.empty ================================================ ================================================ FILE: system/skeleton/opt/.empty ================================================ ================================================ FILE: system/skeleton/proc/.empty ================================================ ================================================ FILE: system/skeleton/root/.empty ================================================ ================================================ FILE: system/skeleton/run/.empty ================================================ ================================================ FILE: system/skeleton/sys/.empty ================================================ ================================================ FILE: system/skeleton/tmp/.empty ================================================ ================================================ FILE: system/skeleton/usr/bin/.empty ================================================ ================================================ FILE: system/skeleton/usr/lib/.empty ================================================ ================================================ FILE: system/skeleton/usr/sbin/.empty ================================================ ================================================ FILE: system/system.mk ================================================ ################################################################################ # # system-related variables and macros # ################################################################################ # This file exists to define variables and macros that pertain to the system # settings, like rsyncing a directory for skeletons, or the /lib vs. /usr/lib # symlink handling. # # Some variables may be used as conditions in Makefile code, so they must be # defined properly before they are used; this file is included early, before # any package is. # - SYSTEM_USR_SYMLINKS_OR_DIRS # create /lib, /bin and /sbin, either as directories or as symlinks to # their /usr conterparts # # - SYSTEM_RSYNC # rsync $(1) to $(2), with proper exclusions and rights # # - SYSTEM_LIB_SYMLINK # create the appropriate /lib{32,64} symlinks # # - SYSTEM_GETTY_PORT # - SYSTEM_GETTY_BAUDRATE # - SYSTEM_GETTY_TERM # - SYSTEM_GETTY_OPTIONS # the un-quoted getty setting # # - SYSTEM_REMOUNT_ROOT_INITTAB # set inittab to remount root read-write or read-only # # This function handles the merged or non-merged /usr cases ifeq ($(BR2_ROOTFS_MERGED_USR),y) define SYSTEM_USR_SYMLINKS_OR_DIRS ln -snf usr/bin $(1)/bin ln -snf usr/sbin $(1)/sbin ln -snf usr/lib $(1)/lib endef else define SYSTEM_USR_SYMLINKS_OR_DIRS $(INSTALL) -d -m 0755 $(1)/bin $(INSTALL) -d -m 0755 $(1)/sbin $(INSTALL) -d -m 0755 $(1)/lib endef endif # This function rsyncs the skeleton directory in $(1) to the destination # in $(2), which should be either $(TARTGET_DIR) or $(STAGING_DIR) define SYSTEM_RSYNC rsync -a --ignore-times $(RSYNC_VCS_EXCLUSIONS) \ --chmod=u=rwX,go=rX --exclude .empty --exclude '*~' \ $(1)/ $(2)/ endef # Make a symlink lib32->lib or lib64->lib as appropriate. # MIPS64/n32 requires lib32 even though it's a 64-bit arch. However, since gcc # 5.1.0 internal compiler paths in sysroot are relative to lib64, so we must # create both. # $(1): base dir (either staging or target) ifeq ($(BR2_MIPS_NABI32),y) define SYSTEM_LIB_SYMLINK ln -snf lib $(1)/lib64 ln -snf lib $(1)/usr/lib64 ln -snf lib $(1)/lib32 ln -snf lib $(1)/usr/lib32 endef else ifeq ($(BR2_ARCH_IS_64),y) define SYSTEM_LIB_SYMLINK ln -snf lib $(1)/lib64 ln -snf lib $(1)/usr/lib64 endef else define SYSTEM_LIB_SYMLINK ln -snf lib $(1)/lib32 ln -snf lib $(1)/usr/lib32 endef endif SYSTEM_GETTY_PORT = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) SYSTEM_GETTY_BAUDRATE = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) SYSTEM_GETTY_TERM = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_TERM)) SYSTEM_GETTY_OPTIONS = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_OPTIONS)) ifeq ($(BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW),y) # Find commented line, if any, and remove leading '#'s define SYSTEM_REMOUNT_ROOT_INITTAB $(SED) '/^#.*-o remount,rw \/$$/s~^#\+~~' $(TARGET_DIR)/etc/inittab endef else # Find uncommented line, if any, and add a leading '#' define SYSTEM_REMOUNT_ROOT_INITTAB $(SED) '/^[^#].*-o remount,rw \/$$/s~^~#~' $(TARGET_DIR)/etc/inittab endef endif ifeq ($(BR_BUILDING)$(BR2_SYSTEM_DEFAULT_PATH),y"") $(error BR2_SYSTEM_DEFAULT_PATH can't be empty) endif ================================================ FILE: toolchain/Config.in ================================================ menu "Toolchain" # Invisible option that makes sure the toolchain package always gets # built config BR2_TOOLCHAIN bool default y # Should be selected for glibc or eglibc config BR2_TOOLCHAIN_USES_GLIBC bool select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_TOOLCHAIN_HAS_FULL_GETTEXT select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_HAS_UCONTEXT select BR2_TOOLCHAIN_SUPPORTS_PIE config BR2_TOOLCHAIN_USES_UCLIBC bool # ucontext is only available for a subset of the supported # architectures select BR2_TOOLCHAIN_HAS_UCONTEXT if BR2_ARM_CPU_HAS_ARM || BR2_i386 \ || BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el \ || BR2_sparc || BR2_x86_64 select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_m68k && !BR2_microblaze && !BR2_STATIC_LIBS config BR2_TOOLCHAIN_USES_MUSL bool select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_HAS_UCONTEXT select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_STATIC_LIBS choice prompt "Toolchain type" help Select whether to use the toolchain provided by buildroot or an external toolchain. Some vendors provide toolchains in binary form, some in source form. config BR2_TOOLCHAIN_BUILDROOT bool "Buildroot toolchain" depends on BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT config BR2_TOOLCHAIN_EXTERNAL bool "External toolchain" help Select if you want to use an existing cross-compiling toolchain. Buildroot can either download automatically a toolchain, or use an already installed toolchain. endchoice source "toolchain/toolchain-buildroot/Config.in" source "toolchain/toolchain-external/Config.in" # Generic toolchain options # we want gdb config in the middle of both source and external # toolchains, but mconf won't let us source the same file twice, # so put it here instead source "package/gdb/Config.in.host" comment "Toolchain Generic Options" # https://sourceware.org/bugzilla/show_bug.cgi?id=21464 # Affect toolchains built with binutils 2.31.1, still not fixed. config BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464 bool default y if BR2_or1k # https://sourceware.org/bugzilla/show_bug.cgi?id=27597 # Affect toolchains built with binutils 2.36.1, still not fixed. config BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 bool default y if BR2_nios2 # Atomic types can be: # - never lock-free # - sometimes lock-free # - always lock-free # see https://en.cppreference.com/w/c/atomic/ATOMIC_LOCK_FREE_consts # # On most architectures, gcc provides "always lock-free" atomic types, # but a few architectures are limited to "sometimes lock-free" # types. This hidden option allows to know if the architecture # provides "always lock-free" atomic types. config BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS bool default y depends on !BR2_nios2 depends on !BR2_ARM_CPU_ARMV4 depends on !BR2_ARM_CPU_ARMV5 depends on !BR2_sparc_v8 depends on !BR2_m68k_cf5208 # GCC uses thunk functions to adjust the 'this' pointer when calling # C++ member functions in classes derived with multiple inheritance. # Generation of thunk functions requires support from the compiler # back end. In the absence of that support target-independent code # in the C++ front end is used to generate thunk functions, but it # does not support vararg functions. # or1k will support it in the gcc mainline starting with gcc-9. config BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK bool default y depends on !BR2_or1k depends on !BR2_xtensa # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43744. This bug no # reappeared on gcc 9.x and is still not fixed on gcc 11.x config BR2_TOOLCHAIN_HAS_GCC_BUG_43744 bool default y if BR2_sh4 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8 || \ BR2_TOOLCHAIN_GCC_AT_LEAST_9 || \ BR2_TOOLCHAIN_GCC_AT_LEAST_10 || \ BR2_TOOLCHAIN_GCC_AT_LEAST_11 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261. This bug no # longer exists in gcc 8.x. config BR2_TOOLCHAIN_HAS_GCC_BUG_63261 bool default y if BR2_microblaze depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8 # Prior to gcc 7.x, exception_ptr, nested_exception and future from # libstdc++ would only be provided on architectures that support # always lock-free atomic ints. See # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64735. This issue has # been removed in GCC 7.x, where exception propagation is now # supported without lock-free atomic int. config BR2_TOOLCHAIN_HAS_GCC_BUG_64735 bool default y if !BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS && \ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68485. This bug still # exists in gcc 9.x config BR2_TOOLCHAIN_HAS_GCC_BUG_68485 bool default y if BR2_microblaze # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83143 # Error: invalid operands (*UND* and .text sections) for `-' on sh4. # This bug no longer exists in gcc 10.x but reappeared on gcc 11.x and # it still not been fixed yet. config BR2_TOOLCHAIN_HAS_GCC_BUG_83143 bool default y if BR2_sh depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_10 || BR2_TOOLCHAIN_GCC_AT_LEAST_11 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. This bug no # longer exists in gcc 8.x. config BR2_TOOLCHAIN_HAS_GCC_BUG_85180 bool default y if BR2_microblaze depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85862 # An infinite loop exists in the find_base_term() logic of 6.x # on microblaze. http://autobuild.buildroot.net/results/158e8ebb39713e1b436a5cc1a1916f46c30694df/ config BR2_TOOLCHAIN_HAS_GCC_BUG_85862 bool default y if BR2_microblaze depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_7 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90620 # ICE: in do_output_reload, at reload1.c:7978 on microblaze. # This bug no longer exists in gcc 10.x config BR2_TOOLCHAIN_HAS_GCC_BUG_90620 bool default y if BR2_microblaze depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_10 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93847 # ICE: compiler error: Segmentation fault on Nios II. This bug # no longer exists in gcc 9.x. config BR2_TOOLCHAIN_HAS_GCC_BUG_93847 bool default y if BR2_nios2 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99410 # Error: branch offset out of range on Nios II. This bug # no longer exists in gcc 8.x but reappeared on gcc 9.x and has been # fixed on gcc 10.x. config BR2_TOOLCHAIN_HAS_GCC_BUG_99140 bool default y if !BR2_TOOLCHAIN_GCC_AT_LEAST_8 default y if BR2_TOOLCHAIN_GCC_AT_LEAST_9 && !BR2_TOOLCHAIN_GCC_AT_LEAST_10 depends on BR2_nios2 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101737 # ICE: SH4 -Os causes internal compiler error. This bug # still exists in gcc = 11.1.0 config BR2_TOOLCHAIN_HAS_GCC_BUG_101737 bool default y if BR2_sh4 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101915 # ICE: in extract_insn, at recog.c:2294 on microblaze. # This bug still exists in gcc = 11.1.0 config BR2_TOOLCHAIN_HAS_GCC_BUG_101915 bool default y if BR2_microblaze # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101916 # ICE: on SH4: Segmentation fault signal terminated program cc1. # This bug still exists in gcc = 11.1.0 config BR2_TOOLCHAIN_HAS_GCC_BUG_101916 bool default y if BR2_sh4 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101952 # ICE: on SH4: unaligned opcodes detected in executable segment. # This bug still exists in gcc = 11.1.0 config BR2_TOOLCHAIN_HAS_GCC_BUG_101952 bool default y if BR2_sh4 config BR2_TOOLCHAIN_HAS_NATIVE_RPC bool config BR2_USE_WCHAR bool config BR2_ENABLE_LOCALE bool config BR2_INSTALL_LIBSTDCPP bool config BR2_TOOLCHAIN_HAS_DLANG bool config BR2_TOOLCHAIN_HAS_FORTRAN bool config BR2_TOOLCHAIN_HAS_THREADS bool config BR2_TOOLCHAIN_HAS_THREADS_DEBUG bool config BR2_TOOLCHAIN_HAS_THREADS_NPTL bool config BR2_TOOLCHAIN_HAS_SSP bool config BR2_TOOLCHAIN_HAS_SSP_STRONG bool default y if BR2_TOOLCHAIN_HAS_SSP && BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_TOOLCHAIN_HAS_UCONTEXT bool config BR2_TOOLCHAIN_HAS_OPENMP bool config BR2_TOOLCHAIN_SUPPORTS_PIE bool config BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY bool "Copy gconv libraries" depends on BR2_TOOLCHAIN_USES_GLIBC help The gconv libraries are used to convert between different character sets (charsets). Say 'y' if you need to store and/or display different charsets. config BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_LIST string "Gconv libraries to copy" depends on BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY help Set to the list of gconv libraries to copy. Leave empty to copy all gconv libraries. Specify only the basename of the libraries, leave out the .so extension. Eg.: IBM850 ISO8859-15 UNICODE Note: the full set of gconv libs are ~8MiB (on ARM). config BR2_TOOLCHAIN_EXTRA_LIBS string "Extra toolchain libraries to be copied to target" default BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS if BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS != "" # legacy depends on !BR2_STATIC_LIBS help If your toolchain provides extra libraries that need to be copied to the target filesystem, enter them here, separated by spaces. The library should not include a suffix or any type of pre/post wildcard. Examples where this can be useful is for adding debug libraries to the target like the GCC libsanitizer. e.g. "libasan liblsan libtsan libubsan" # This boolean is true if the toolchain provides a built-in full # featured gettext implementation (glibc), and false if only a stub # gettext implementation is provided (uclibc, musl) config BR2_TOOLCHAIN_HAS_FULL_GETTEXT bool config BR2_USE_MMU bool "Enable MMU support" if BR2_ARCH_HAS_MMU_OPTIONAL default y if BR2_ARCH_HAS_MMU_OPTIONAL || BR2_ARCH_HAS_MMU_MANDATORY help If your target has a MMU, you should say Y here. If you are unsure, just say Y. config BR2_TARGET_OPTIMIZATION string "Target Optimizations" default "" help Optimizations to use when building for the target host. NOTE: gcc optimization level is defined in build options. config BR2_TARGET_LDFLAGS string "Target linker options" help Extra options to pass to the linker when building for the target. Note that options with a '$' sign (eg. -Wl,-rpath='$ORIGIN/../lib') are not supported. config BR2_ECLIPSE_REGISTER bool "Register toolchain within Eclipse Buildroot plug-in" help This options tells Buildroot to generate the necessary configuration files to make your toolchain appear within Eclipse, through the Eclipse Buildroot plugin. # Options for packages to depend on, if they require at least a # specific version of the kernel headers. # Toolchains should choose the adequate option (ie. the highest # version, not all of them). config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 bool config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 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 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_12 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_13 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_12 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_13 config BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14 select BR2_TOOLCHAIN_HEADERS_LATEST # This should be selected by the latest version, above, to indicate that # Buildroot does not know of more recent headers than the ones selected. # This allows using toolchains with headers more recent than Buildroot # knows about, while still enforcing strict check for older headers. config BR2_TOOLCHAIN_HEADERS_LATEST bool # 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 "5.15" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15 default "5.14" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14 default "5.13" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_13 default "5.12" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_12 default "5.11" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11 default "5.10" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 default "5.9" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9 default "5.8" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8 default "5.7" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7 default "5.6" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6 default "5.5" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5 default "5.4" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 default "5.3" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3 default "5.2" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2 default "5.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 default "5.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 default "4.20" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20 default "4.19" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19 default "4.18" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18 default "4.17" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17 default "4.16" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16 default "4.15" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 default "4.14" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 default "4.13" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13 default "4.12" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 default "4.11" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11 default "4.10" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10 default "4.9" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 default "4.8" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8 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 default "4.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1 default "4.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 default "3.19" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19 default "3.18" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 default "3.17" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 default "3.16" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 default "3.15" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 default "3.14" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 default "3.13" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13 default "3.12" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 default "3.11" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11 default "3.10" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 default "3.9" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 default "3.8" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8 default "3.7" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 default "3.6" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 default "3.5" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5 default "3.4" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 default "3.3" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 default "3.2" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 default "3.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 default "3.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 default "2.6" config BR2_TOOLCHAIN_GCC_AT_LEAST_4_3 bool config BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 bool select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3 config BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 bool select BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 config BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 bool select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 config BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 bool select BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 config BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 bool select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 config BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 bool select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 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 config BR2_TOOLCHAIN_GCC_AT_LEAST_7 bool select BR2_TOOLCHAIN_GCC_AT_LEAST_6 config BR2_TOOLCHAIN_GCC_AT_LEAST_8 bool select BR2_TOOLCHAIN_GCC_AT_LEAST_7 config BR2_TOOLCHAIN_GCC_AT_LEAST_9 bool select BR2_TOOLCHAIN_GCC_AT_LEAST_8 config BR2_TOOLCHAIN_GCC_AT_LEAST_10 bool select BR2_TOOLCHAIN_GCC_AT_LEAST_9 config BR2_TOOLCHAIN_GCC_AT_LEAST_11 bool select BR2_TOOLCHAIN_GCC_AT_LEAST_10 # 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 "11" if BR2_TOOLCHAIN_GCC_AT_LEAST_11 default "10" if BR2_TOOLCHAIN_GCC_AT_LEAST_10 default "9" if BR2_TOOLCHAIN_GCC_AT_LEAST_9 default "8" if BR2_TOOLCHAIN_GCC_AT_LEAST_8 default "7" if BR2_TOOLCHAIN_GCC_AT_LEAST_7 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 default "4.7" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 default "4.6" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 default "4.5" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 default "4.4" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 default "4.3" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_3 config BR2_TOOLCHAIN_HAS_MNAN_OPTION bool default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_TOOLCHAIN_HAS_SYNC_1 bool default y depends on !BR2_m68k_cf depends on !BR2_microblaze depends on !BR2_sparc depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT) config BR2_TOOLCHAIN_HAS_SYNC_2 bool default y if BR2_TOOLCHAIN_HAS_SYNC_1 config BR2_TOOLCHAIN_HAS_SYNC_4 bool default y depends on !BR2_m68k_cf depends on !BR2_sparc depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT) # The availability of __sync for 8-byte types on ARM is somewhat # complicated: # # - It appeared in gcc starting with gcc 4.7. # # - On ARMv7, there is no problem, it can be directly implemented in # userspace. # # - On < ARMv7, it requires help from the kernel. Unfortunately, the # libgcc code implementing 8-byte __sync with the help from the # kernel calls __write() when a failure occurs, which is a function # internal to glibc, not available in uClibc and musl. This means # that the 8-byte __sync operations are not available on < ARMv7 # with uClibc and musl. This problem was fixed as part of gcc # PR68059, which was backported to the gcc 5 branch, but isn't yet # part of any gcc 5.x release. # config BR2_TOOLCHAIN_ARM_HAS_SYNC_8 bool default y depends on BR2_arm || BR2_armeb depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_ARM_CPU_ARMV7A # 8-byte intrinsics available on most x86 CPUs, except a few old ones config BR2_TOOLCHAIN_X86_HAS_SYNC_8 bool default y depends on BR2_i386 depends on !BR2_x86_i486 depends on !BR2_x86_c3 depends on !BR2_x86_winchip_c6 depends on !BR2_x86_winchip2 # 8-byte intrinsics available: # - On all 64 bits architecture # - On a certain combinations of ARM platforms # - On certain x86 32 bits CPUs config BR2_TOOLCHAIN_HAS_SYNC_8 bool default y if BR2_ARCH_IS_64 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_EXTERNAL_CODESOURCERY_AARCH64 && \ BR2_TOOLCHAIN_HAS_THREADS && \ !BR2_BINFMT_FLAT # __atomic intrinsics are available: # - with gcc 4.8, either through built-ins or libatomic, on all # 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_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 endmenu ================================================ FILE: toolchain/helpers.mk ================================================ # This Makefile fragment declares toolchain related helper functions. # The copy_toolchain_lib_root function copies a toolchain library and # its symbolic links from the sysroot directory to the target # directory. Note that this function is used both by the external # toolchain logic, and the glibc package, so care must be taken when # changing this function. # # $1: library name pattern (can include glob wildcards) # copy_toolchain_lib_root = \ LIBPATTERN="$(strip $1)"; \ LIBPATHS=`find $(STAGING_DIR)/ -name "$${LIBPATTERN}" 2>/dev/null` ; \ for LIBPATH in $${LIBPATHS} ; do \ while true ; do \ LIBNAME=`basename $${LIBPATH}`; \ DESTDIR=`echo $${LIBPATH} | sed "s,^$(STAGING_DIR)/,," | xargs dirname` ; \ mkdir -p $(TARGET_DIR)/$${DESTDIR}; \ rm -fr $(TARGET_DIR)/$${DESTDIR}/$${LIBNAME}; \ if test -h $${LIBPATH} ; then \ cp -d $${LIBPATH} $(TARGET_DIR)/$${DESTDIR}/$${LIBNAME}; \ LIBPATH="`readlink -f $${LIBPATH}`"; \ elif test -f $${LIBPATH}; then \ $(INSTALL) -D -m0755 $${LIBPATH} $(TARGET_DIR)/$${DESTDIR}/$${LIBNAME}; \ break ; \ else \ exit -1; \ fi; \ done; \ done # # Copy the full external toolchain sysroot directory to the staging # dir. The operation of this function is rendered a little bit # complicated by the support for multilib toolchains. # # We start by copying etc, 'lib', sbin, usr and usr/'lib' from the # sysroot of the selected architecture variant (as pointed to by # ARCH_SYSROOT_DIR). This allows to import into the staging directory # the C library and companion libraries for the correct architecture # variant. 'lib' may not be literally 'lib' but could be something else, # e.g. lib32-fp (as determined by ARCH_LIB_DIR) and we only want to copy # that lib directory and no other. When copying usr, we therefore need # to be extra careful not to include usr/lib* but we _do_ want to # include usr/libexec. # We are selective in the directories we copy since other directories # might exist for other architecture variants (on Codesourcery # toolchain, the sysroot for the default architecture variant contains # the armv4t and thumb2 subdirectories, which are the sysroot for the # corresponding architecture variants), and we don't want to import # them. # # If ARCH_LIB_DIR is not a singular directory component, e.g. # 'lib32/octeon2', then symbolic links in ARCH_LIB_DIR and # usr/ARCH_LIB_DIR may be broken because Buildroot will flatten the # directory structure (e.g. lib32/octeon2/foo is actually stored in # lib/foo). This is only relevant for links that contain one or more ../ # components, as links to the current directory are always fine. # We need to fix the broken links by removing the right amount of ../ # dots from the link destination. # Once the link destination is valid again, it can be simplified to # remove the dependency on intermediate directory symlinks. # # It is possible that ARCH_LIB_DIR does not contain the dynamic loader # (ld*.so or similar) because it (or the main symlink to it) normally # resides in /lib while ARCH_LIB_DIR may be something else (e.g. lib64, # lib/, ...). Therefore, copy the dynamic loader separately. # # Then, if the selected architecture variant is not the default one # (i.e, if SYSROOT_DIR != ARCH_SYSROOT_DIR), then we : # # * 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 # step, so we copy them here from the sysroot of the default # architecture variant. # # * Create a symbolic link that matches the name of the subdirectory # for the architecture variant in the original sysroot. This is # required as the compiler will by default look in # sysroot_dir/arch_variant/ for libraries and headers, when the # non-default architecture variant is used. Without this, the # compiler fails to find libraries and headers. # # 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. # # $1: main sysroot directory of the toolchain # $2: arch specific sysroot directory of the toolchain # $3: arch specific subdirectory in the sysroot # $4: directory of libraries ('lib', 'lib32' or 'lib64') # $5: support lib directories (for toolchains storing libgcc_s, # libstdc++ and other gcc support libraries outside of the # sysroot) copy_toolchain_sysroot = \ SYSROOT_DIR="$(strip $1)"; \ ARCH_SYSROOT_DIR="$(strip $2)"; \ ARCH_SUBDIR="$(strip $3)"; \ ARCH_LIB_DIR="$(strip $4)" ; \ SUPPORT_LIB_DIR="$(strip $5)" ; \ for i in etc $${ARCH_LIB_DIR} sbin usr usr/$${ARCH_LIB_DIR}; do \ if [ ! -d $${ARCH_SYSROOT_DIR}/$$i ] ; then \ continue ; \ fi ; \ if [ "$$i" = "usr" ]; then \ rsync -au --chmod=u=rwX,go=rX --exclude 'locale/' \ --include '/libexec*/' --exclude '/lib*/' \ $${ARCH_SYSROOT_DIR}/$$i/ $(STAGING_DIR)/$$i/ ; \ else \ rsync -au --chmod=u=rwX,go=rX --exclude 'locale/' \ $${ARCH_SYSROOT_DIR}/$$i/ $(STAGING_DIR)/$$i/ ; \ fi ; \ done ; \ for link in $$(find $(STAGING_DIR) -type l); do \ target=$$(readlink $${link}) ; \ if [ "$${target}" == "$${target$(SHARP_SIGN)/}" ] ; then \ continue ; \ fi ; \ relpath="$(call relpath_prefix,$${target$(SHARP_SIGN)/})" ; \ echo "Fixing symlink $${link} from $${target} to $${relpath}$${target$(SHARP_SIGN)/}" ; \ ln -sf $${relpath}$${target$(SHARP_SIGN)/} $${link} ; \ done ; \ relpath="$(call relpath_prefix,$${ARCH_LIB_DIR})" ; \ if [ "$${relpath}" != "" ]; then \ for i in $$(find -H $(STAGING_DIR)/$${ARCH_LIB_DIR} $(STAGING_DIR)/usr/$${ARCH_LIB_DIR} -type l -xtype l); do \ LINKTARGET=`readlink $$i` ; \ NEWLINKTARGET=$${LINKTARGET\#$$relpath} ; \ ln -sf $${NEWLINKTARGET} $$i ; \ $(call simplify_symlink,$$i,$(STAGING_DIR)) ; \ done ; \ fi ; \ if [[ ! $$(find $(STAGING_DIR)/lib -name 'ld*.so.*' -print -quit) ]]; then \ find $${ARCH_SYSROOT_DIR}/lib -name 'ld*.so.*' -print0 | xargs -0 -I % cp % $(STAGING_DIR)/lib/; \ fi ; \ 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="$(call relpath_prefix,$${ARCH_SUBDIR})./" ; \ 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/ ; \ fi ; \ find $(STAGING_DIR) -type d | xargs chmod 755 # # Check the specified kernel headers version actually matches the # version in the toolchain. # # $1: build directory # $2: sysroot directory # $3: kernel version string, in the form: X.Y # $4: test to do for the latest kernel version, 'strict' or 'loose' # always 'strict' if this is not the latest version. # check_kernel_headers_version = \ if ! support/scripts/check-kernel-headers.sh $(1) $(2) $(3) \ $(if $(BR2_TOOLCHAIN_HEADERS_LATEST),$(4),strict); \ then \ exit 1; \ fi # # Check the specific gcc version actually matches the version in the # toolchain # # $1: path to gcc # $2: expected gcc version # check_gcc_version = \ expected_version="$(strip $2)" ; \ if [ -z "$${expected_version}" ]; then \ exit 0 ; \ fi; \ real_version=`$(1) -dumpversion` ; \ if [[ ! "$${real_version}." =~ ^$${expected_version}\. ]] ; then \ printf "Incorrect selection of gcc version: expected %s.x, got %s\n" \ "$${expected_version}" "$${real_version}" ; \ exit 1 ; \ fi # # Check the availability of a particular glibc feature. This function # is used to check toolchain options that are always supported by # glibc, so we simply check that the corresponding option is properly # enabled. # # $1: Buildroot option name # $2: feature description # check_glibc_feature = \ if [ "$($(1))" != "y" ] ; then \ echo "$(2) available in C library, please enable $(1)" ; \ exit 1 ; \ fi # # Check the availability of RPC support in a glibc toolchain # # $1: sysroot directory # check_glibc_rpc_feature = \ IS_IN_LIBC=`test -f $(1)/usr/include/rpc/rpc.h && echo y` ; \ if [ "$(BR2_TOOLCHAIN_HAS_NATIVE_RPC)" != "y" -a "$${IS_IN_LIBC}" = "y" ] ; then \ echo "RPC support available in C library, please enable BR2_TOOLCHAIN_EXTERNAL_INET_RPC" ; \ exit 1 ; \ fi ; \ if [ "$(BR2_TOOLCHAIN_HAS_NATIVE_RPC)" = "y" -a "$${IS_IN_LIBC}" != "y" ] ; then \ echo "RPC support not available in C library, please disable BR2_TOOLCHAIN_EXTERNAL_INET_RPC" ; \ exit 1 ; \ fi # # Check the correctness of a glibc external toolchain configuration. # 1. Check that the C library selected in Buildroot matches the one # of the external toolchain # 2. Check that all the C library-related features are enabled in the # config, since glibc always supports all of them # # $1: sysroot directory # check_glibc = \ SYSROOT_DIR="$(strip $1)"; \ if test `find -L $${SYSROOT_DIR}/ -maxdepth 2 -name 'ld-linux*.so.*' -o -name 'ld.so.*' -o -name 'ld64.so.*' | wc -l` -eq 0 ; then \ echo "Incorrect selection of the C library"; \ exit -1; \ fi; \ $(call check_glibc_feature,BR2_USE_MMU,MMU support) ;\ $(call check_glibc_rpc_feature,$${SYSROOT_DIR}) # # Check that the selected C library really is musl # # $1: cross-gcc path # $2: cross-readelf path check_musl = \ __CROSS_CC=$(strip $1) ; \ libc_a_path=`$${__CROSS_CC} -print-file-name=libc.a` ; \ if ! strings $${libc_a_path} | grep -q MUSL_LOCPATH ; then \ echo "Incorrect selection of the C library" ; \ exit -1; \ fi # # Check the conformity of Buildroot configuration with regard to the # uClibc configuration of the external toolchain, for a particular # feature. # # If 'Buildroot option name' ($2) is empty it means the uClibc option # is mandatory. # # $1: uClibc macro name # $2: Buildroot option name # $3: uClibc config file # $4: feature description # check_uclibc_feature = \ IS_IN_LIBC=`grep -q "\#define $(1) 1" $(3) && echo y` ; \ if [ -z "$(2)" ] ; then \ if [ "$${IS_IN_LIBC}" != "y" ] ; then \ echo "$(4) not available in C library, toolchain unsuitable for Buildroot" ; \ exit 1 ; \ fi ; \ else \ if [ "$($(2))" != "y" -a "$${IS_IN_LIBC}" = "y" ] ; then \ echo "$(4) available in C library, please enable $(2)" ; \ exit 1 ; \ fi ; \ if [ "$($(2))" = "y" -a "$${IS_IN_LIBC}" != "y" ] ; then \ echo "$(4) not available in C library, please disable $(2)" ; \ exit 1 ; \ fi ; \ fi # # Check the correctness of a uclibc external toolchain configuration # 1. Check that the C library selected in Buildroot matches the one # of the external toolchain # 2. Check that the features enabled in the Buildroot configuration # match the features available in the uClibc of the external # toolchain # # $1: sysroot directory # check_uclibc = \ SYSROOT_DIR="$(strip $1)"; \ if ! test -f $${SYSROOT_DIR}/usr/include/bits/uClibc_config.h ; then \ echo "Incorrect selection of the C library"; \ exit -1; \ fi; \ UCLIBC_CONFIG_FILE=$${SYSROOT_DIR}/usr/include/bits/uClibc_config.h ; \ $(call check_uclibc_feature,__ARCH_USE_MMU__,BR2_USE_MMU,$${UCLIBC_CONFIG_FILE},MMU support) ;\ $(call check_uclibc_feature,__UCLIBC_HAS_LFS__,,$${UCLIBC_CONFIG_FILE},Large file support) ;\ $(call check_uclibc_feature,__UCLIBC_HAS_IPV6__,,$${UCLIBC_CONFIG_FILE},IPv6 support) ;\ $(call check_uclibc_feature,__UCLIBC_HAS_RPC__,BR2_TOOLCHAIN_HAS_NATIVE_RPC,$${UCLIBC_CONFIG_FILE},RPC support) ;\ $(call check_uclibc_feature,__UCLIBC_HAS_LOCALE__,BR2_ENABLE_LOCALE,$${UCLIBC_CONFIG_FILE},Locale support) ;\ $(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) # # Check that the Buildroot configuration of the ABI matches the # configuration of the external toolchain. # # $1: cross-gcc path # $2: cross-readelf path # check_arm_abi = \ __CROSS_CC=$(strip $1) ; \ EXT_TOOLCHAIN_TARGET=`LANG=C $${__CROSS_CC} -v 2>&1 | grep ^Target | cut -f2 -d ' '` ; \ if ! echo $${EXT_TOOLCHAIN_TARGET} | grep -qE 'eabi(hf)?$$' ; then \ echo "External toolchain uses the unsuported OABI" ; \ exit 1 ; \ fi ; \ if ! echo 'int main(void) {}' | $${__CROSS_CC} -x c -o $(BUILD_DIR)/.br-toolchain-test.tmp - ; then \ rm -f $(BUILD_DIR)/.br-toolchain-test.tmp*; \ abistr_$(BR2_ARM_EABI)='EABI'; \ abistr_$(BR2_ARM_EABIHF)='EABIhf'; \ echo "Incorrect ABI setting: $${abistr_y} selected, but toolchain is incompatible"; \ exit 1 ; \ fi ; \ rm -f $(BUILD_DIR)/.br-toolchain-test.tmp* # # Check that the external toolchain supports C++ # # $1: cross-g++ path # check_cplusplus = \ __CROSS_CXX=$(strip $1) ; \ $${__CROSS_CXX} -v > /dev/null 2>&1 ; \ if test $$? -ne 0 ; then \ echo "C++ support is selected but is not available in external toolchain" ; \ exit 1 ; \ fi # # # Check that the external toolchain supports D language # # $1: cross-gdc path # check_dlang = \ __CROSS_GDC=$(strip $1) ; \ __o=$(BUILD_DIR)/.br-toolchain-test-dlang.tmp ; \ printf 'import std.stdio;\nvoid main() { writeln("Hello World!"); }\n' | \ $${__CROSS_GDC} -x d -o $${__o} - ; \ if test $$? -ne 0 ; then \ rm -f $${__o}* ; \ echo "D language support is selected but is not available in external toolchain" ; \ exit 1 ; \ fi ; \ rm -f $${__o}* \ # # # 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 external toolchain supports OpenMP # # $1: cross-gcc path # check_openmp = \ __CROSS_CC=$(strip $1) ; \ __o=$(BUILD_DIR)/.br-toolchain-test-openmp.tmp ; \ printf '\#include \nint main(void) { return omp_get_thread_num(); }' | \ $${__CROSS_CC} -fopenmp -x c -o $${__o} - ; \ if test $$? -ne 0 ; then \ rm -f $${__o}* ; \ echo "OpenMP 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 # # $1: cross-gcc path # check_cross_compiler_exists = \ __CROSS_CC=$(strip $1) ; \ $${__CROSS_CC} -v > /dev/null 2>&1 ; \ if test $$? -ne 0 ; then \ echo "Cannot execute cross-compiler '$${__CROSS_CC}'" ; \ exit 1 ; \ fi # # 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 # check_unusable_toolchain = \ __CROSS_CC=$(strip $1) ; \ vendor=`$${__CROSS_CC} -dumpmachine | cut -f2 -d'-'` ; \ if test "$${vendor}" = "angstrom" ; then \ echo "Angstrom toolchains are not pure toolchains: they contain" ; \ echo "many other libraries than just the C library, which makes" ; \ echo "them unsuitable as external toolchains for build systems" ; \ echo "such as Buildroot." ; \ exit 1 ; \ fi; \ with_sysroot=`$${__CROSS_CC} -v 2>&1 |sed -r -e '/.* --with-sysroot=([^[:space:]]+)[[:space:]].*/!d; s//\1/'`; \ if test "$${with_sysroot}" = "/" ; then \ echo "Distribution toolchains are unsuitable for use by Buildroot," ; \ echo "as they were configured in a way that makes them non-relocatable,"; \ 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 # $2: gcc ssp option # check_toolchain_ssp = \ __CROSS_CC=$(strip $1) ; \ __HAS_SSP=`echo 'void main(){}' | $${__CROSS_CC} -Werror -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 ; \ __SSP_OPTION=$(2); \ if [ -n "$${__SSP_OPTION}" ] ; then \ if ! echo 'void main(){}' | $${__CROSS_CC} -Werror $${__SSP_OPTION} -x c - -o $(BUILD_DIR)/.br-toolchain-test.tmp >/dev/null 2>&1 ; then \ echo "SSP option $${__SSP_OPTION} not available in this toolchain, please select another SSP level" ; \ exit 1 ; \ fi; \ fi; \ rm -f $(BUILD_DIR)/.br-toolchain-test.tmp* # # Generate gdbinit file for use with Buildroot # gen_gdbinit_file = \ mkdir -p $(STAGING_DIR)/usr/share/buildroot/ ; \ echo "add-auto-load-safe-path $(STAGING_DIR)" > $(STAGING_DIR)/usr/share/buildroot/gdbinit ; \ echo "set sysroot $(STAGING_DIR)" >> $(STAGING_DIR)/usr/share/buildroot/gdbinit # Given a path, determine the relative prefix (../) needed to return to the # root level. Note that the last component is treated as a file component; use a # trailing slash to force treating it as a directory. Examples: # relpath_prefix(lib32) = "" # relpath_prefix(lib32/octeon2) = "../" # relpath_prefix(lib32/octeon2/) = "../../" # # $1: input path define relpath_prefix $$( \ prefix="" ; \ nbslashs=`printf $1 | sed 's%[^/]%%g' | wc -c` ; \ for slash in `seq 1 $${nbslashs}` ; do \ prefix=$${prefix}"../" ; \ done ; \ printf "$$prefix" ; \ ) endef # Replace the destination of a symbolic link with a simpler version # For example, # usr/lib/libfoo.so -> ../../lib32/libfoo.so.1 # becomes # usr/lib/libfoo.so -> ../../lib/libfoo.so.1 # since 'lib32' is a symlink to 'lib'. # # Likewise, # usr/lib/octeon2/libbar.so -> ../../../lib32/octeon2/libbar.so.1 # becomes # usr/lib/octeon2/libbar.so -> ../../lib/libbar.so.1 # assuming lib32->lib and lib/octeon2->lib. # # $1: symlink # $2: base path define simplify_symlink ( \ FULL_SRC="$$(readlink -f $$(dirname $1))/$$(basename $1)" ; \ FULL_DEST="$$(readlink -f $1)" ; \ FULL_BASE="$$(readlink -f $2)" ; \ REL_SRC="$${FULL_SRC#$${FULL_BASE}/}" ; \ REL_DEST="$${FULL_DEST#$${FULL_BASE}/}" ; \ DOTS="$(call relpath_prefix,$${REL_SRC})" ; \ ln -sf "$${DOTS}$${REL_DEST}" "$${FULL_SRC}" ; \ ) endef ================================================ FILE: toolchain/toolchain/toolchain.mk ================================================ ################################################################################ # # toolchain # ################################################################################ ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y) TOOLCHAIN_DEPENDENCIES += toolchain-buildroot else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y) TOOLCHAIN_DEPENDENCIES += toolchain-external endif TOOLCHAIN_ADD_TOOLCHAIN_DEPENDENCY = NO TOOLCHAIN_INSTALL_STAGING = YES # Apply a hack that Rick Felker suggested[1] to avoid conflicts between libc # headers and kernel headers. This is needed for kernel headers older than # 4.15. Kernel headers 4.15 and newer don't require __GLIBC__ to be defined. # # Augment the original suggestion with __USE_MISC since recent kernels # (older than 4.15) require this glibc internal macro. Also, as musl defines # IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO, add another macro to suppress # them in the kernel header, and avoid macro/enum conflict. # # Kernel version 3.12 introduced the libc-compat.h header. # # [1] http://www.openwall.com/lists/musl/2015/10/08/2 ifeq ($(BR2_TOOLCHAIN_USES_MUSL)$(BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12):$(BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15),yy:) define TOOLCHAIN_MUSL_KERNEL_HEADERS_COMPATIBILITY_HACK $(SED) 's/^#if defined(__GLIBC__)$$/#if 1/' \ $(STAGING_DIR)/usr/include/linux/libc-compat.h $(SED) '1s/^/#define __USE_MISC\n/' \ $(STAGING_DIR)/usr/include/linux/libc-compat.h $(SED) '1s/^/#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0\n/' \ $(STAGING_DIR)/usr/include/linux/libc-compat.h endef TOOLCHAIN_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_MUSL_KERNEL_HEADERS_COMPATIBILITY_HACK endif # Install default nsswitch.conf file if the skeleton doesn't provide it ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y) define TOOLCHAIN_GLIBC_COPY_NSSWITCH_FILE @if [ ! -f "$(TARGET_DIR)/etc/nsswitch.conf" ]; then \ $(INSTALL) -D -m 0644 package/glibc/nsswitch.conf $(TARGET_DIR)/etc/nsswitch.conf ; \ fi endef TOOLCHAIN_POST_INSTALL_TARGET_HOOKS += TOOLCHAIN_GLIBC_COPY_NSSWITCH_FILE endif $(eval $(virtual-package)) ================================================ FILE: toolchain/toolchain-buildroot/Config.in ================================================ # Config entries for internal toolchain backend if BR2_TOOLCHAIN_BUILDROOT comment "Toolchain Buildroot Options" config BR2_TOOLCHAIN_BUILDROOT_VENDOR string "custom toolchain vendor name" default "buildroot" help This option allows to customize the "vendor" part of the toolchain tuple, where the toolchain tuple has the form ---. The default value, "buildroot", is fine for most cases, except in very specific situations where gcc might make different decisions based on the vendor part of the tuple. The value "unknown" is not allowed, as the cross-compiling toolchain might then be confused with the native toolchain when the target and host architecture are identical. The value can not be empty either. If you're not sure, just leave the default "buildroot" value. choice prompt "C library" default BR2_TOOLCHAIN_BUILDROOT_UCLIBC default BR2_TOOLCHAIN_BUILDROOT_GLIBC if BR2_powerpc64 config BR2_TOOLCHAIN_BUILDROOT_UCLIBC bool "uClibc-ng" depends on BR2_aarch64 || BR2_aarch64_be || BR2_arcle || BR2_arceb || \ BR2_arm || BR2_armeb || \ BR2_i386 || BR2_m68k || BR2_microblaze || \ BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \ BR2_or1k || BR2_powerpc || BR2_RISCV_64 || BR2_sh2a || \ BR2_sh4 || BR2_sh4eb || BR2_sparc || BR2_xtensa || \ BR2_x86_64 select BR2_TOOLCHAIN_USES_UCLIBC help This option selects uClibc-ng as the C library for the cross-compilation toolchain. http://uclibc-ng.org config BR2_TOOLCHAIN_BUILDROOT_GLIBC bool "glibc" depends on 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_riscv || BR2_s390x || BR2_sh || \ BR2_sparc64 || BR2_x86_64 || BR2_microblaze || \ BR2_nios2 || (BR2_arc && BR2_ARC_ATOMIC_EXT) || BR2_csky depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 || !BR2_powerpc64le depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 || !BR2_MIPS_NAN_2008 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 || !BR2_RISCV_64 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 || !BR2_arc depends on !BR2_powerpc_SPE depends on BR2_RISCV_ISA_RVA || !BR2_riscv select BR2_TOOLCHAIN_USES_GLIBC help This option selects glibc as the C library for the cross-compilation toolchain. http://www.gnu.org/software/libc/ comment "glibc needs a toolchain w/ dynamic library, kernel headers >= 3.2" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 # glibc >= 2.26 require kernel headers >= 3.10 on powerpc64le. comment "glibc on powerpc64le needs a toolchain w/ headers >= 3.10" depends on BR2_powerpc64le depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 # Support for MIPS NAN2008 needs headers >= 4.5 comment "glibc on MIPS w/ NAN2008 needs a toolchain w/ headers >= 4.5" depends on BR2_MIPS_NAN_2008 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 config BR2_TOOLCHAIN_BUILDROOT_MUSL bool "musl" depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 || \ BR2_microblaze || BR2_mips || BR2_mipsel || BR2_mips64 || \ BR2_mips64el || BR2_or1k || BR2_powerpc || BR2_powerpc64 || \ BR2_powerpc64le || BR2_RISCV_64 || BR2_sh || BR2_x86_64 depends on !BR2_powerpc_SPE # not supported, build breaks depends on !(BR2_powerpc64 || BR2_powerpc64le) || BR2_POWERPC_CPU_HAS_ALTIVEC # 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 cross-compilation toolchain. https://www.musl-libc.org/ endchoice config BR2_TOOLCHAIN_BUILDROOT_LIBC string default "uclibc" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC default "glibc" if BR2_TOOLCHAIN_BUILDROOT_GLIBC default "musl" if BR2_TOOLCHAIN_BUILDROOT_MUSL source "package/linux-headers/Config.in.host" 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" source "package/gcc/Config.in.host" source "package/elf2flt/Config.in.host" endif ================================================ FILE: toolchain/toolchain-buildroot/toolchain-buildroot.mk ================================================ ################################################################################ # # toolchain-buildroot # ################################################################################ BR_LIBC = $(call qstrip,$(BR2_TOOLCHAIN_BUILDROOT_LIBC)) # Triggering the build of the host-gcc-final will automatically do the # build of binutils, uClibc, kernel headers and all the intermediate # gcc steps. TOOLCHAIN_BUILDROOT_DEPENDENCIES = host-gcc-final TOOLCHAIN_BUILDROOT_ADD_TOOLCHAIN_DEPENDENCY = NO $(eval $(virtual-package)) ================================================ FILE: toolchain/toolchain-external/Config.in ================================================ if BR2_TOOLCHAIN_EXTERNAL comment "Toolchain External Options" choice prompt "Toolchain" comment "glibc toolchains only available with shared lib support" depends on BR2_STATIC_LIBS # Kept toolchains sorted by architecture in order to use some toolchain # as default choice # Aarch64 (use ARM toolchain by default) source "toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in" source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in" source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in" # Aarch64 big-endian source "toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in" source "toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in" # ARC source "toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in" # Andes source "toolchain/toolchain-external/toolchain-external-andes-nds32/Config.in" # ARM (use ARM toolchain by default) source "toolchain/toolchain-external/toolchain-external-arm-arm/Config.in" source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in" source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in" # ARM big-endian source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in" # MIPS (use codesourcery toolchain by default) source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in" source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in" source "toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in" # NIOSII source "toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in" # Bootlin toolchains, available for virtually all architectures source "toolchain/toolchain-external/toolchain-external-bootlin/Config.in" # Kept last, so it remains the non-default choice, unless there isn't # any available toolchain profile for the currently selected # architecture, but before toolchains from br2-external trees. source "toolchain/toolchain-external/toolchain-external-custom/Config.in" # Toolchains from br2-external trees, if any source "$BR2_BASE_DIR/.br2-external.in.toolchains" endchoice choice prompt "Toolchain origin" # Keep compatibility with old defconfig files that are using # custom toolchains, and which are therefore assuming that # "preinstalled" in the default choice. default BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED if BR2_TOOLCHAIN_EXTERNAL_CUSTOM config BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD bool "Toolchain to be downloaded and installed" help Select this option if you want Buildroot to download and install the toolchain. If you have selected a custom toolchain, specify the URL in BR2_TOOLCHAIN_EXTERNAL_URL. config BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED bool "Pre-installed toolchain" help Select this option if you want to use a pre-installed toolchain. Specify the path to this toolchain in BR2_TOOLCHAIN_EXTERNAL_PATH. endchoice config BR2_TOOLCHAIN_EXTERNAL_PATH string "Toolchain path" default "" depends on BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED help Path to where the external toolchain is installed. The compiler itself is expected to be in the "bin" subdirectory of this path. If empty, the compiler will be searched in $PATH. config BR2_TOOLCHAIN_EXTERNAL_GLIBC bool select BR2_TOOLCHAIN_USES_GLIBC config BR2_TOOLCHAIN_EXTERNAL_UCLIBC bool select BR2_TOOLCHAIN_USES_UCLIBC config BR2_TOOLCHAIN_EXTERNAL_MUSL bool select BR2_TOOLCHAIN_USES_MUSL # Compatibility headers: cdefs.h, queue.h select BR2_PACKAGE_MUSL_COMPAT_HEADERS # Make sure the virtual-package infra checks the provider config BR2_PACKAGE_HAS_TOOLCHAIN_EXTERNAL bool default y config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL string config BR2_TOOLCHAIN_EXTERNAL_PREFIX string # Kept toolchains sorted as in the choice above # The toolchain Config.in.options must define # BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL and BR2_TOOLCHAIN_EXTERNAL_PREFIX # Aarch64 source "toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in.options" source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options" source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options" # Aarch64 big-endian source "toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in.options" source "toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in.options" # ARC source "toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options" # Andes source "toolchain/toolchain-external/toolchain-external-andes-nds32/Config.in.options" # ARM source "toolchain/toolchain-external/toolchain-external-arm-arm/Config.in.options" source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options" source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options" # ARM big-endian source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options" # MIPS source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options" source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options" source "toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options" # NIOSII source "toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options" # Bootlin toolchains source "toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options" # Custom toolchains source "toolchain/toolchain-external/toolchain-external-custom/Config.in.options" config BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY bool "Copy gdb server to the Target" depends on BR2_TOOLCHAIN_EXTERNAL help Copy the gdbserver provided by the external toolchain to the target. endif # BR2_TOOLCHAIN_EXTERNAL ================================================ FILE: toolchain/toolchain-external/pkg-toolchain-external.mk ================================================ ################################################################################ # External toolchain package infrastructure # # This package infrastructure implements the support for external # toolchains, i.e toolchains that are available pre-built, ready to # use. Such toolchain may either be readily available on the Web # (Linaro, Sourcery CodeBench, from processor vendors) or may be built # with tools like Crosstool-NG or Buildroot itself. So far, we have # tested this with: # # * Toolchains generated by Crosstool-NG # * Toolchains generated by Buildroot # * Toolchains provided by Linaro for the ARM and AArch64 # architectures # * Sourcery CodeBench toolchains (from Mentor Graphics) for the ARM, # MIPS, PowerPC, x86_64 and NIOS 2 architectures. For the MIPS # toolchain, the -muclibc variant isn't supported yet, only the # default glibc-based variant is. # * Synopsys DesignWare toolchains for ARC cores # # The basic principle is the following # # 1. If the toolchain is not pre-installed, download and extract it # in $(TOOLCHAIN_EXTERNAL_INSTALL_DIR). Otherwise, # $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) points to were the toolchain has # already been installed by the user. # # 2. For all external toolchains, perform some checks on the # conformity between the toolchain configuration described in the # Buildroot menuconfig system, and the real configuration of the # external toolchain. This is for example important to make sure that # the Buildroot configuration system knows whether the toolchain # supports RPC, IPv6, locales, large files, etc. Unfortunately, these # things cannot be detected automatically, since the value of these # options (such as BR2_TOOLCHAIN_HAS_NATIVE_RPC) are needed at # configuration time because these options are used as dependencies # for other options. And at configuration time, we are not able to # retrieve the external toolchain configuration. # # 3. Copy the libraries needed at runtime to the target directory, # $(TARGET_DIR). Obviously, things such as the C library, the dynamic # loader and a few other utility libraries are needed if dynamic # applications are to be executed on the target system. # # 4. Copy the libraries and headers to the staging directory. This # will allow all further calls to gcc to be made using --sysroot # $(STAGING_DIR), which greatly simplifies the compilation of the # packages when using external toolchains. So in the end, only the # cross-compiler binaries remains external, all libraries and headers # are imported into the Buildroot tree. # # 5. Build a toolchain wrapper which executes the external toolchain # with a number of arguments (sysroot/march/mtune/..) hardcoded, # so we're sure the correct configuration is always used and the # toolchain behaves similar to an internal toolchain. # This toolchain wrapper and symlinks are installed into # $(HOST_DIR)/bin like for the internal toolchains, and the rest # of Buildroot is handled identical for the 2 toolchain types. ################################################################################ # # Definitions of where the toolchain can be found # 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 = $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR) else TOOLCHAIN_EXTERNAL_INSTALL_DIR = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH)) endif ifeq ($(TOOLCHAIN_EXTERNAL_INSTALL_DIR),) ifneq ($(TOOLCHAIN_EXTERNAL_PREFIX),) # if no path set, figure it out from path TOOLCHAIN_EXTERNAL_BIN := $(dir $(shell which $(TOOLCHAIN_EXTERNAL_PREFIX)-gcc)) endif else TOOLCHAIN_EXTERNAL_REL_BIN_PATH = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_REL_BIN_PATH)) ifeq ($(TOOLCHAIN_EXTERNAL_REL_BIN_PATH),) TOOLCHAIN_EXTERNAL_REL_BIN_PATH = bin endif TOOLCHAIN_EXTERNAL_BIN = $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/$(TOOLCHAIN_EXTERNAL_REL_BIN_PATH) endif # If this is a buildroot toolchain, it already has a wrapper which we want to # bypass. Since this is only evaluated after it has been extracted, we can use # $(wildcard ...) here. TOOLCHAIN_EXTERNAL_SUFFIX = \ $(if $(wildcard $(TOOLCHAIN_EXTERNAL_BIN)/*.br_real),.br_real) 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_GDC = $(TOOLCHAIN_EXTERNAL_CROSS)gdc$(TOOLCHAIN_EXTERNAL_SUFFIX) TOOLCHAIN_EXTERNAL_FC = $(TOOLCHAIN_EXTERNAL_CROSS)gfortran$(TOOLCHAIN_EXTERNAL_SUFFIX) TOOLCHAIN_EXTERNAL_READELF = $(TOOLCHAIN_EXTERNAL_CROSS)readelf # Normal handling of downloaded toolchain tarball extraction. ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y) # 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_DOWNLOAD_INSTALL_DIR. define TOOLCHAIN_EXTERNAL_MOVE rm -rf $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR) mkdir -p $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR) mv $(@D)/* $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)/ endef endif # # Definitions of the list of libraries that should be copied to the target. # TOOLCHAIN_EXTERNAL_LIBS += ld*.so.* libgcc_s.so.* libatomic.so.* ifneq ($(BR2_SSP_NONE),y) TOOLCHAIN_EXTERNAL_LIBS += libssp.so.* endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y) TOOLCHAIN_EXTERNAL_LIBS += libc.so.* libcrypt.so.* libdl.so.* libm.so.* libnsl.so.* libresolv.so.* librt.so.* libutil.so.* ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) TOOLCHAIN_EXTERNAL_LIBS += libpthread.so.* ifneq ($(BR2_PACKAGE_GDB)$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),) TOOLCHAIN_EXTERNAL_LIBS += libthread_db.so.* endif # gdbserver endif # ! no threads endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC),y) TOOLCHAIN_EXTERNAL_LIBS += libnss_files.so.* libnss_dns.so.* libmvec.so.* libanl.so.* endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_MUSL),y) TOOLCHAIN_EXTERNAL_LIBS += libc.so endif ifeq ($(BR2_INSTALL_LIBSTDCPP),y) TOOLCHAIN_EXTERNAL_LIBS += libstdc++.so.* endif 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 ifeq ($(BR2_TOOLCHAIN_HAS_OPENMP),y) TOOLCHAIN_EXTERNAL_LIBS += libgomp.so.* endif ifeq ($(BR2_TOOLCHAIN_HAS_DLANG),y) TOOLCHAIN_EXTERNAL_LIBS += libgdruntime.so* libgphobos.so* endif TOOLCHAIN_EXTERNAL_LIBS += $(addsuffix .so*,$(call qstrip,$(BR2_TOOLCHAIN_EXTRA_LIBS))) # # Definition of the CFLAGS to use with the external toolchain, as well as the # common toolchain wrapper build arguments # # march/mtune/floating point mode needs to be passed to the external toolchain # to select the right multilib variant ifeq ($(BR2_x86_64),y) TOOLCHAIN_EXTERNAL_CFLAGS += -m64 TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_64 endif ifneq ($(GCC_TARGET_ARCH),) TOOLCHAIN_EXTERNAL_CFLAGS += -march=$(GCC_TARGET_ARCH) TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ARCH='"$(GCC_TARGET_ARCH)"' endif ifneq ($(GCC_TARGET_CPU),) TOOLCHAIN_EXTERNAL_CFLAGS += -mcpu=$(GCC_TARGET_CPU) TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_CPU='"$(GCC_TARGET_CPU)"' endif ifneq ($(GCC_TARGET_ABI),) TOOLCHAIN_EXTERNAL_CFLAGS += -mabi=$(GCC_TARGET_ABI) TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ABI='"$(GCC_TARGET_ABI)"' endif ifeq ($(BR2_TOOLCHAIN_HAS_MNAN_OPTION),y) ifneq ($(GCC_TARGET_NAN),) TOOLCHAIN_EXTERNAL_CFLAGS += -mnan=$(GCC_TARGET_NAN) TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_NAN='"$(GCC_TARGET_NAN)"' endif endif ifneq ($(GCC_TARGET_FP32_MODE),) TOOLCHAIN_EXTERNAL_CFLAGS += -mfp$(GCC_TARGET_FP32_MODE) TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FP32_MODE='"$(GCC_TARGET_FP32_MODE)"' endif ifneq ($(GCC_TARGET_FPU),) TOOLCHAIN_EXTERNAL_CFLAGS += -mfpu=$(GCC_TARGET_FPU) TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FPU='"$(GCC_TARGET_FPU)"' endif ifneq ($(GCC_TARGET_FLOAT_ABI),) TOOLCHAIN_EXTERNAL_CFLAGS += -mfloat-abi=$(GCC_TARGET_FLOAT_ABI) TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FLOAT_ABI='"$(GCC_TARGET_FLOAT_ABI)"' endif ifneq ($(GCC_TARGET_MODE),) TOOLCHAIN_EXTERNAL_CFLAGS += -m$(GCC_TARGET_MODE) TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_MODE='"$(GCC_TARGET_MODE)"' endif ifeq ($(BR2_BINFMT_FLAT),y) TOOLCHAIN_EXTERNAL_CFLAGS += -Wl,-elf2flt TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_BINFMT_FLAT endif ifeq ($(BR2_mipsel)$(BR2_mips64el),y) TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_MIPS_TARGET_LITTLE_ENDIAN TOOLCHAIN_EXTERNAL_CFLAGS += -EL endif ifeq ($(BR2_mips)$(BR2_mips64),y) TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_MIPS_TARGET_BIG_ENDIAN TOOLCHAIN_EXTERNAL_CFLAGS += -EB endif ifeq ($(BR2_arceb),y) TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ARC_TARGET_BIG_ENDIAN TOOLCHAIN_EXTERNAL_CFLAGS += -EB endif TOOLCHAIN_EXTERNAL_CFLAGS += $(call qstrip,$(BR2_TARGET_OPTIMIZATION)) ifeq ($(BR2_SOFT_FLOAT),y) TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_SOFTFLOAT=1 endif TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += \ -DBR_CROSS_PATH_SUFFIX='"$(TOOLCHAIN_EXTERNAL_SUFFIX)"' ifeq ($(filter $(HOST_DIR)/%,$(TOOLCHAIN_EXTERNAL_BIN)),) # TOOLCHAIN_EXTERNAL_BIN points outside HOST_DIR => absolute path TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += \ -DBR_CROSS_PATH_ABS='"$(TOOLCHAIN_EXTERNAL_BIN)"' else # TOOLCHAIN_EXTERNAL_BIN points inside HOST_DIR => relative path TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += \ -DBR_CROSS_PATH_REL='"$(TOOLCHAIN_EXTERNAL_BIN:$(HOST_DIR)/%=%)"' endif # # The following functions creates the symbolic links needed to get the # cross-compilation tools visible in $(HOST_DIR)/bin. Some of # links are done directly to the corresponding tool in the external # toolchain installation directory, while some other links are done to # the toolchain wrapper (preprocessor, C, C++ and Fortran compiler) # # We skip gdb symlink when we are building our own gdb to prevent two # gdb's in $(HOST_DIR)/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 # 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. define TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER $(Q)cd $(HOST_DIR)/bin; \ for i in $(TOOLCHAIN_EXTERNAL_CROSS)*; do \ base=$${i##*/}; \ case "$$base" in \ *-ar|*-ranlib|*-nm) \ ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%..%') .; \ ;; \ *cc|*cc-*|*++|*++-*|*cpp|*-gfortran|*-gdc) \ ln -sf toolchain-wrapper $$base; \ ;; \ *gdb|*gdbtui) \ if test "$(BR2_PACKAGE_HOST_GDB)" != "y"; then \ ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%..%') .; \ fi \ ;; \ *) \ ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%..%') .; \ ;; \ esac; \ done endef # Various utility functions used by the external toolchain package # infrastructure. Those functions are mainly responsible for: # # - installation the toolchain libraries to $(TARGET_DIR) # - copying the toolchain sysroot to $(STAGING_DIR) # - installing a gdbinit file # # Details about sysroot directory selection. # # To find the sysroot directory, we use the trick of looking for the # 'libc.a' file with the -print-file-name gcc option, and then # mangling the path to find the base directory of the sysroot. # # Note that we do not use the -print-sysroot option, because it is # only available since gcc 4.4.x, and we only recently dropped support # for 4.2.x and 4.3.x. # # When doing this, we don't pass any option to gcc that could select a # multilib variant (such as -march) as we want the "main" sysroot, # which contains all variants of the C library in the case of multilib # toolchains. We use the TARGET_CC_NO_SYSROOT variable, which is the # path of the cross-compiler, without the --sysroot=$(STAGING_DIR), # since what we want to find is the location of the original toolchain # sysroot. This "main" sysroot directory is stored in SYSROOT_DIR. # # Then, multilib toolchains are a little bit more complicated, since # they in fact have multiple sysroots, one for each variant supported # by the toolchain. So we need to find the particular sysroot we're # interested in. # # To do so, we ask the compiler where its sysroot is by passing all # flags (including -march and al.), except the --sysroot flag since we # want to the compiler to tell us where its original sysroot # is. ARCH_SUBDIR will contain the subdirectory, in the main # SYSROOT_DIR, that corresponds to the selected architecture # variant. ARCH_SYSROOT_DIR will contain the full path to this # location. # # One might wonder why we don't just bother with ARCH_SYSROOT_DIR. The # fact is that in multilib toolchains, the header files are often only # present in the main sysroot, and only the libraries are available in # each variant-specific sysroot directory. # toolchain_find_sysroot returns the sysroot location for the given # compiler + flags. We need to handle cases where libc.a is in: # # - lib/ # - usr/lib/ # - lib32/ # - lib64/ # - lib32-fp/ (Cavium toolchain) # - lib64-fp/ (Cavium toolchain) # - usr/lib// (Linaro toolchain) # # And variations on these. define toolchain_find_sysroot $$(printf $(call toolchain_find_libc_a,$(1)) | sed -r -e 's:/(usr/)?lib(32|64)?([^/]*)?/([^/]*/)?libc\.a:/:') endef # Returns the lib subdirectory for the given compiler + flags (i.e # typically lib32 or lib64 for some toolchains) define toolchain_find_libdir $$(printf $(call toolchain_find_libc_a,$(1)) | sed -r -e 's:.*/(usr/)?(lib(32|64)?([^/]*)?(/[^/]*)?)/libc.a:\2:') endef # Returns the location of the libc.a file for the given compiler + flags define toolchain_find_libc_a $$(readlink -f $$(LANG=C $(1) -print-file-name=libc.a)) endef # Integration of the toolchain into Buildroot: find the main sysroot # and the variant-specific sysroot, then copy the needed libraries to # the $(TARGET_DIR) and copy the whole sysroot (libraries and headers) # to $(STAGING_DIR). # # Variables are defined as follows: # # SYSROOT_DIR: the main sysroot directory, deduced from the location of # the libc.a file in the default multilib variant, by # removing the usr/lib[32|64]/libc.a part of the path. # Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/ # # ARCH_SYSROOT_DIR: the sysroot of the selected multilib variant, # deduced from the location of the libc.a file in the # selected multilib variant (taking into account the # CFLAGS), by removing usr/lib[32|64]/libc.a at the end # of the path. # Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/mips16/soft-float/el/ # # ARCH_LIB_DIR: 'lib', 'lib32' or 'lib64' depending on where libraries # are stored. Deduced from the location of the libc.a file # in the selected multilib variant, by looking at # usr/lib??/libc.a. # Ex: lib # # ARCH_SUBDIR: the relative location of the sysroot of the selected # multilib variant compared to the main sysroot. # Ex: mips16/soft-float/el # # SUPPORT_LIB_DIR: some toolchains, such as recent Linaro toolchains, # store GCC support libraries (libstdc++, # libgcc_s, etc.) outside of the sysroot. In # this case, SUPPORT_LIB_DIR is set to a # non-empty value, and points to the directory # where these support libraries are # available. Those libraries will be copied to # 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)$(call MESSAGE,"Copying external toolchain libraries to target...") $(Q)for libpattern in $(TOOLCHAIN_EXTERNAL_LIBS); do \ $(call copy_toolchain_lib_root,$$libpattern); \ 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))" ; \ 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))" ; \ 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 ; \ if [ "$${SYSROOT_DIR}" == "$${ARCH_SYSROOT_DIR}" ] ; then \ ARCH_SUBDIR="" ; \ elif [ "`dirname $${ARCH_SYSROOT_DIR}`" = "`dirname $${SYSROOT_DIR}`" ] ; then \ SYSROOT_DIR_DIRNAME=`dirname $${SYSROOT_DIR}`/ ; \ ARCH_SUBDIR=`echo $${ARCH_SYSROOT_DIR} | sed -r -e "s:^$${SYSROOT_DIR_DIRNAME}(.*)/$$:\1:"` ; \ else \ ARCH_SUBDIR=`echo $${ARCH_SYSROOT_DIR} | sed -r -e "s:^$${SYSROOT_DIR}(.*)/$$:\1:"` ; \ fi ; \ $(call MESSAGE,"Copying external toolchain sysroot to staging...") ; \ $(call copy_toolchain_sysroot,$${SYSROOT_DIR},$${ARCH_SYSROOT_DIR},$${ARCH_SUBDIR},$${ARCH_LIB_DIR},$${SUPPORT_LIB_DIR}) endef # Create a symlink from (usr/)$(ARCH_LIB_DIR) to lib. # Note: the skeleton package additionally creates lib32->lib or lib64->lib # (as appropriate) # # $1: destination directory (TARGET_DIR / STAGING_DIR) create_lib_symlinks = \ $(Q)DESTDIR="$(strip $1)" ; \ ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ if [ ! -e "$${DESTDIR}/$${ARCH_LIB_DIR}" -a ! -e "$${DESTDIR}/usr/$${ARCH_LIB_DIR}" ]; then \ relpath="$(call relpath_prefix,$${ARCH_LIB_DIR})" ; \ ln -snf $${relpath}lib "$${DESTDIR}/$${ARCH_LIB_DIR}" ; \ ln -snf $${relpath}lib "$${DESTDIR}/usr/$${ARCH_LIB_DIR}" ; \ fi define TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK $(call create_lib_symlinks,$(STAGING_DIR)) endef define TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK $(call create_lib_symlinks,$(TARGET_DIR)) endef # # Generate gdbinit file for use with Buildroot # define TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT $(Q)if test -f $(TARGET_CROSS)gdb ; then \ $(call MESSAGE,"Installing gdbinit"); \ $(gen_gdbinit_file); \ fi endef # GCC installs a libstdcxx-...so-gdb.py file that gdb will load automatically, # but it contains hardcoded paths referring to the location where the (external) # toolchain was built. Fix up these paths so that the pretty printers can be # loaded automatically. # By default, the pretty printers are installed in # $(datadir)/gcc-$(gcc_version)/python but this could have been overwritten with # the gcc configure option: --with-python-dir. We thus have to search the # correct path first. define TOOLCHAIN_EXTERNAL_FIXUP_PRETTY_PRINTER_LOADER $(Q)loadfiles=$$(find $(STAGING_DIR) -name 'libstdc++.so*-gdb.py' 2>/dev/null); \ pythondir=$$(find $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR) -path '*/libstdcxx/__init__.py' 2>/dev/null | sed 's%/libstdcxx/__init__.py%%' | head -n1); \ if [ -n "$$loadfiles" ] && [ -n "$$pythondir" ]; then \ echo "Fixing up hardcoded paths in GDB pretty-printer auto-load file(s) for libstdcxx: $$loadfiles"; \ sed -ri \ -e 's%^libdir\s*=.*%libdir = "$(STAGING_DIR)/lib"%' \ -e "s%^pythondir\s*=.*%pythondir = '$$pythondir'%" \ $$loadfiles; \ fi endef # uClibc-ng dynamic loader is called ld-uClibc.so.1, but gcc is not # patched specifically for uClibc-ng, so it continues to generate # binaries that expect the dynamic loader to be named ld-uClibc.so.0, # like with the original uClibc. Therefore, we create an additional # symbolic link to make uClibc-ng systems work properly. define TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO $(Q)if test -e $(TARGET_DIR)/lib/ld-uClibc.so.1; then \ ln -sf ld-uClibc.so.1 $(TARGET_DIR)/lib/ld-uClibc.so.0 ; \ fi $(Q)if test -e $(TARGET_DIR)/lib/ld64-uClibc.so.1; then \ ln -sf ld64-uClibc.so.1 $(TARGET_DIR)/lib/ld64-uClibc.so.0 ; \ fi endef define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LDD $(Q)if test -f $(STAGING_DIR)/usr/bin/ldd ; then \ $(INSTALL) -D $(STAGING_DIR)/usr/bin/ldd $(TARGET_DIR)/usr/bin/ldd ; \ $(SED) 's:.*/bin/bash:#!/bin/sh:' $(TARGET_DIR)/usr/bin/ldd ; \ fi endef ################################################################################ # inner-toolchain-external-package -- defines the generic installation rules # for external toolchain packages # # argument 1 is the lowercase package name # argument 2 is the uppercase package name, including a HOST_ prefix # for host packages # argument 3 is the uppercase package name, without the HOST_ prefix # for host packages # argument 4 is the type (target or host) ################################################################################ define inner-toolchain-external-package $(2)_INSTALL_STAGING = YES $(2)_ADD_TOOLCHAIN_DEPENDENCY = NO # In fact, we don't need to download the toolchain, since it is already # available on the system, so force the site and source to be empty so # that nothing will be downloaded/extracted. ifeq ($$(BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED),y) $(2)_SITE = $(2)_SOURCE = endif ifeq ($$(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y) $(2)_EXCLUDES = usr/lib/locale/* $(2)_POST_EXTRACT_HOOKS += \ TOOLCHAIN_EXTERNAL_MOVE endif # Checks for an already installed toolchain: check the toolchain # 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 $(2)_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))" ; \ $$(call check_kernel_headers_version,\ $$(BUILD_DIR),\ $$(call toolchain_find_sysroot,$$(TOOLCHAIN_EXTERNAL_CC)),\ $$(call qstrip,$$(BR2_TOOLCHAIN_HEADERS_AT_LEAST)),\ $$(if $$(BR2_TOOLCHAIN_EXTERNAL_CUSTOM),loose,strict)); \ $$(call check_gcc_version,$$(TOOLCHAIN_EXTERNAL_CC),\ $$(call qstrip,$$(BR2_TOOLCHAIN_GCC_AT_LEAST))); \ if test "$$(BR2_arm)" = "y" ; then \ $$(call check_arm_abi,\ "$$(TOOLCHAIN_EXTERNAL_CC) $$(TOOLCHAIN_EXTERNAL_CFLAGS)") ; \ fi ; \ if test "$$(BR2_INSTALL_LIBSTDCPP)" = "y" ; then \ $$(call check_cplusplus,$$(TOOLCHAIN_EXTERNAL_CXX)) ; \ fi ; \ if test "$$(BR2_TOOLCHAIN_HAS_DLANG)" = "y" ; then \ $$(call check_dlang,$$(TOOLCHAIN_EXTERNAL_GDC)) ; \ fi ; \ if test "$$(BR2_TOOLCHAIN_HAS_FORTRAN)" = "y" ; then \ $$(call check_fortran,$$(TOOLCHAIN_EXTERNAL_FC)) ; \ fi ; \ if test "$$(BR2_TOOLCHAIN_HAS_OPENMP)" = "y" ; then \ $$(call check_openmp,$$(TOOLCHAIN_EXTERNAL_CC)) ; \ fi ; \ if test "$$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)" = "y" ; then \ $$(call check_uclibc,$$$${SYSROOT_DIR}) ; \ elif test "$$(BR2_TOOLCHAIN_EXTERNAL_MUSL)" = "y" ; then \ $$(call check_musl,\ "$$(TOOLCHAIN_EXTERNAL_CC) $$(TOOLCHAIN_EXTERNAL_CFLAGS)") ; \ else \ $$(call check_glibc,$$$${SYSROOT_DIR}) ; \ fi $$(Q)$$(call check_toolchain_ssp,$$(TOOLCHAIN_EXTERNAL_CC),$(BR2_SSP_OPTION)) endef $(2)_TOOLCHAIN_WRAPPER_ARGS += $$(TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS) $(2)_BUILD_CMDS = $$(TOOLCHAIN_WRAPPER_BUILD) define $(2)_INSTALL_STAGING_CMDS $$(TOOLCHAIN_WRAPPER_INSTALL) $$(TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK) $$(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS) $$(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER) $$(TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT) $$(TOOLCHAIN_EXTERNAL_FIXUP_PRETTY_PRINTER_LOADER) endef # Even though we're installing things in both the staging, the host # and the target directory, we do everything within the # install-staging step, arbitrarily. define $(2)_INSTALL_TARGET_CMDS $$(TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK) $$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS) $$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER) $$(TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO) $$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LDD) endef # Call the generic package infrastructure to generate the necessary # make targets $(call inner-generic-package,$(1),$(2),$(3),$(4)) endef toolchain-external-package = $(call inner-toolchain-external-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) ================================================ FILE: toolchain/toolchain-external/toolchain-external-andes-nds32/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_ANDES_NDS32 bool "Andes nds32" depends on BR2_nds32 depends on !BR2_STATIC_LIBS depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" select BR2_HOSTARCH_NEEDS_IA32_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_8 select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17 select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_TOOLCHAIN_HAS_SSP help nds32 toolchain for the nds32 architecture. It uses GCC 8.2.1, GDB 8.1.1, glibc 2.28, Binutils 2.30. It generates code that runs on ae3xx platform ================================================ FILE: toolchain/toolchain-external/toolchain-external-andes-nds32/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_ANDES_NDS32 config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "nds32le-linux" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-andes-nds32" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-andes-nds32/toolchain-external-andes-nds32.hash ================================================ # From https://github.com/vincentzwc/prebuilt-nds32-toolchain/releases/download/20180521/nds32le-linux-glibc-v3-upstream.tar.gz sha256 6050601df85ad93a4c211c1d57ed3773edb62aa505f7e07d7d555652e83af2cc nds32le-linux-glibc-v3-upstream.tar.gz ================================================ FILE: toolchain/toolchain-external/toolchain-external-andes-nds32/toolchain-external-andes-nds32.mk ================================================ ################################################################################ # # toolchain-external-andes-nds32 # ################################################################################ TOOLCHAIN_EXTERNAL_ANDES_NDS32_SITE = https://github.com/vincentzwc/prebuilt-nds32-toolchain/releases/download/20180521 TOOLCHAIN_EXTERNAL_ANDES_NDS32_SOURCE = nds32le-linux-glibc-v3-upstream.tar.gz $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64 bool "Arm AArch64 2021.07" 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_HEADERS_AT_LEAST_4_20 select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_OPENMP help Arm toolchain for the AArch64 architecture. This is the same toolchain that was previously distributed by Linaro. https://developer.arm.com/open-source/gnu-toolchain ================================================ FILE: toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64 config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "aarch64-none-linux-gnu" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-arm-aarch64" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.hash ================================================ # From https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz.asc md5 07bbe2b5277b75ba36a924e9136366a4 gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz # locally calculated sha256 1e33d53dea59c8de823bbdfe0798280bdcd138636c7060da9d77a97ded095a84 gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz ================================================ FILE: toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.mk ================================================ ################################################################################ # # toolchain-external-arm-aarch64 # ################################################################################ TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION = 2021.07 TOOLCHAIN_EXTERNAL_ARM_AARCH64_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION)/binrel TOOLCHAIN_EXTERNAL_ARM_AARCH64_SOURCE = gcc-arm-10.3-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION)-x86_64-aarch64-none-linux-gnu.tar.xz $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE bool "Arm AArch64 BE 2021.07" depends on BR2_aarch64_be 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_HEADERS_AT_LEAST_4_20 select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_OPENMP help Arm toolchain for the AArch64 Big Endian architecture. This is the same toolchain that was previously distributed by Linaro. https://developer.arm.com/open-source/gnu-toolchain ================================================ FILE: toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "aarch64_be-none-linux-gnu" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-arm-aarch64-be" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-arm-aarch64-be/toolchain-external-arm-aarch64-be.hash ================================================ # From https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86_64-aarch64_be-none-linux-gnu.tar.xz.asc md5 54cbaef7db7eb3de27732500f9da9c6f gcc-arm-10.3-2021.07-x86_64-aarch64_be-none-linux-gnu.tar.xz # locally calculated sha256 63c34cac07ceadd74620ea87f27af1aa6a6f55c20a5bc116af21a59ddb6b6a6a gcc-arm-10.3-2021.07-x86_64-aarch64_be-none-linux-gnu.tar.xz ================================================ FILE: toolchain/toolchain-external/toolchain-external-arm-aarch64-be/toolchain-external-arm-aarch64-be.mk ================================================ ################################################################################ # # toolchain-external-arm-aarch64-be # ################################################################################ TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE_VERSION = 2021.07 TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE_VERSION)/binrel TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE_SOURCE = gcc-arm-10.3-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE_VERSION)-x86_64-aarch64_be-none-linux-gnu.tar.xz $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-arm-arm/Config.in ================================================ comment "Arm toolchains available for Cortex-A with NEON + EABIhf" depends on BR2_arm depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF || !BR2_ARM_CPU_HAS_NEON depends on !BR2_STATIC_LIBS config BR2_TOOLCHAIN_EXTERNAL_ARM_ARM bool "Arm ARM 2021.07" depends on BR2_arm depends on BR2_ARM_CPU_ARMV7A || BR2_ARM_CPU_ARMV8A depends on BR2_ARM_CPU_HAS_NEON 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_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20 select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_OPENMP help Arm toolchain for the ARM architecture. It uses GCC 10.3, GDB 10.2, glibc 2.33, Binutils 2.36.1. It generates code that runs on all Cortex-A profile devices. The code generated uses the hard floating point calling convention, and uses the NEON FPU instructions. This is the same toolchain that was previously distributed by Linaro. https://developer.arm.com/open-source/gnu-toolchain ================================================ FILE: toolchain/toolchain-external/toolchain-external-arm-arm/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_ARM_ARM config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "arm-none-linux-gnueabihf" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-arm-arm" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-arm-arm/toolchain-external-arm-arm.hash ================================================ # From https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz.asc md5 87ec580b290df2febc7c476f59484635 gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz # locally calculated sha256 aa074fa8371a4f73fecbd16bd62c8b1945f23289e26414794f130d6ccdf8e39c gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz ================================================ FILE: toolchain/toolchain-external/toolchain-external-arm-arm/toolchain-external-arm-arm.mk ================================================ ################################################################################ # # toolchain-external-arm-arm # ################################################################################ TOOLCHAIN_EXTERNAL_ARM_ARM_VERSION = 2021.07 TOOLCHAIN_EXTERNAL_ARM_ARM_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-$(TOOLCHAIN_EXTERNAL_ARM_ARM_VERSION)/binrel TOOLCHAIN_EXTERNAL_ARM_ARM_SOURCE = gcc-arm-10.3-$(TOOLCHAIN_EXTERNAL_ARM_ARM_VERSION)-x86_64-arm-none-linux-gnueabihf.tar.xz $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-bootlin/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN bool "Bootlin toolchains" depends on BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS depends on BR2_HOSTARCH = "x86_64" help Bootlin toolchains are built using Buildroot for a large number of architectures and C libraries configurations. https://toolchains.bootlin.com ================================================ FILE: toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options ================================================ # This file was auto-generated by support/scripts/gen-bootlin-toolchains # Do not edit config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS bool default y if BR2_aarch64 default y if BR2_aarch64_be default y if BR2_arcle && BR2_arc750d default y if BR2_arcle && BR2_archs38 default y if BR2_ARM_CPU_ARMV5 && BR2_ARM_EABI default y if BR2_ARM_CPU_ARMV6 && BR2_ARM_EABIHF default y if BR2_ARM_CPU_ARMV7A && BR2_ARM_EABIHF default y if BR2_ARM_CPU_ARMV7M default y if BR2_m68k_m68k default y if BR2_m68k_cf default y if BR2_microblazebe default y if BR2_microblazeel default y if BR2_mips && BR2_mips_32 && !BR2_MIPS_SOFT_FLOAT default y if BR2_mipsel && BR2_mips_32 && !BR2_MIPS_SOFT_FLOAT default y if BR2_mipsel && BR2_mips_32r5 && !BR2_MIPS_SOFT_FLOAT default y if BR2_mipsel && BR2_mips_32r6 && !BR2_MIPS_SOFT_FLOAT default y if BR2_mips64 && BR2_mips_64 && !BR2_MIPS_SOFT_FLOAT default y if BR2_mips64 && BR2_mips_64 && BR2_MIPS_NABI32 && !BR2_MIPS_SOFT_FLOAT default y if BR2_mips64el && BR2_mips_64 && BR2_MIPS_NABI32 && !BR2_MIPS_SOFT_FLOAT default y if BR2_mips64el && BR2_mips_64r6 && BR2_MIPS_NABI32 && !BR2_MIPS_SOFT_FLOAT default y if BR2_nios2 default y if BR2_or1k default y if BR2_powerpc && BR2_powerpc_440fp default y if BR2_powerpc && BR2_powerpc_e300c3 default y if BR2_powerpc && BR2_powerpc_e500mc default y if BR2_powerpc64 && BR2_powerpc_e5500 default y if BR2_powerpc64 && BR2_powerpc_e6500 default y if BR2_powerpc64 && BR2_powerpc_power8 default y if BR2_powerpc64le && BR2_powerpc_power8 default y if BR2_riscv && BR2_riscv_g && BR2_RISCV_32 && BR2_RISCV_ABI_ILP32D default y if BR2_riscv && BR2_riscv_g && BR2_RISCV_64 && BR2_RISCV_ABI_LP64 default y if BR2_sh && BR2_sh4 default y if BR2_sh && BR2_sh4aeb default y if BR2_sparc64 && BR2_sparc_v9 default y if BR2_sparc && BR2_sparc_v8 default y if BR2_x86_64 && BR2_X86_CPU_HAS_MMX && BR2_X86_CPU_HAS_SSE && BR2_X86_CPU_HAS_SSE2 && BR2_X86_CPU_HAS_SSE3 && BR2_X86_CPU_HAS_SSSE3 && BR2_X86_CPU_HAS_SSE4 && BR2_X86_CPU_HAS_SSE42 default y if BR2_i386 && BR2_X86_CPU_HAS_MMX && BR2_X86_CPU_HAS_SSE && BR2_X86_CPU_HAS_SSE2 && BR2_X86_CPU_HAS_SSE3 && BR2_X86_CPU_HAS_SSSE3 default y if BR2_i386 && !BR2_x86_i486 && !BR2_x86_i586 && !BR2_x86_x1000 default y if BR2_xtensa && BR2_XTENSA_CUSTOM && BR2_XTENSA_LITTLE_ENDIAN if BR2_TOOLCHAIN_EXTERNAL_BOOTLIN config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "$(ARCH)-linux" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-bootlin" choice prompt "Bootlin toolchain variant" config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_BLEEDING_EDGE bool "aarch64 glibc bleeding-edge 2020.08-1" depends on BR2_aarch64 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the aarch64 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE bool "aarch64 glibc stable 2020.08-1" depends on BR2_aarch64 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the aarch64 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_MUSL_BLEEDING_EDGE bool "aarch64 musl bleeding-edge 2020.08-1" depends on BR2_aarch64 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the aarch64 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_MUSL_STABLE bool "aarch64 musl stable 2020.08-1" depends on BR2_aarch64 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the aarch64 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_UCLIBC_BLEEDING_EDGE bool "aarch64 uclibc bleeding-edge 2020.08-1" depends on BR2_aarch64 select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the aarch64 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_UCLIBC_STABLE bool "aarch64 uclibc stable 2020.08-1" depends on BR2_aarch64 select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the aarch64 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_GLIBC_BLEEDING_EDGE bool "aarch64be glibc bleeding-edge 2020.08-1" depends on BR2_aarch64_be depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the aarch64be architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_GLIBC_STABLE bool "aarch64be glibc stable 2020.08-1" depends on BR2_aarch64_be depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the aarch64be architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_UCLIBC_BLEEDING_EDGE bool "aarch64be uclibc bleeding-edge 2020.08-1" depends on BR2_aarch64_be select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the aarch64be architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_UCLIBC_STABLE bool "aarch64be uclibc stable 2020.08-1" depends on BR2_aarch64_be select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the aarch64be architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_750D_UCLIBC_BLEEDING_EDGE bool "arcle-750d uclibc bleeding-edge 2020.08-1" depends on BR2_arcle depends on BR2_arc750d select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the arcle-750d architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_750D_UCLIBC_STABLE bool "arcle-750d uclibc stable 2020.08-1" depends on BR2_arcle depends on BR2_arc750d select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the arcle-750d architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_GLIBC_BLEEDING_EDGE bool "arcle-hs38 glibc bleeding-edge 2020.08-1" depends on BR2_arcle depends on BR2_archs38 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the arcle-hs38 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_GLIBC_STABLE bool "arcle-hs38 glibc stable 2020.08-1" depends on BR2_arcle depends on BR2_archs38 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the arcle-hs38 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_UCLIBC_BLEEDING_EDGE bool "arcle-hs38 uclibc bleeding-edge 2020.08-1" depends on BR2_arcle depends on BR2_archs38 select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the arcle-hs38 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_UCLIBC_STABLE bool "arcle-hs38 uclibc stable 2020.08-1" depends on BR2_arcle depends on BR2_archs38 select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the arcle-hs38 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_GLIBC_BLEEDING_EDGE bool "armv5-eabi glibc bleeding-edge 2020.08-1" depends on BR2_ARM_CPU_ARMV5 depends on BR2_ARM_EABI depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the armv5-eabi architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_GLIBC_STABLE bool "armv5-eabi glibc stable 2020.08-1" depends on BR2_ARM_CPU_ARMV5 depends on BR2_ARM_EABI depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the armv5-eabi architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_MUSL_BLEEDING_EDGE bool "armv5-eabi musl bleeding-edge 2020.08-1" depends on BR2_ARM_CPU_ARMV5 depends on BR2_ARM_EABI depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the armv5-eabi architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_MUSL_STABLE bool "armv5-eabi musl stable 2020.08-1" depends on BR2_ARM_CPU_ARMV5 depends on BR2_ARM_EABI depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the armv5-eabi architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_UCLIBC_BLEEDING_EDGE bool "armv5-eabi uclibc bleeding-edge 2020.08-1" depends on BR2_ARM_CPU_ARMV5 depends on BR2_ARM_EABI select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the armv5-eabi architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_UCLIBC_STABLE bool "armv5-eabi uclibc stable 2020.08-1" depends on BR2_ARM_CPU_ARMV5 depends on BR2_ARM_EABI select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the armv5-eabi architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_GLIBC_BLEEDING_EDGE bool "armv6-eabihf glibc bleeding-edge 2020.08-1" depends on BR2_ARM_CPU_ARMV6 depends on BR2_ARM_EABIHF depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the armv6-eabihf architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_GLIBC_STABLE bool "armv6-eabihf glibc stable 2020.08-1" depends on BR2_ARM_CPU_ARMV6 depends on BR2_ARM_EABIHF depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the armv6-eabihf architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_MUSL_BLEEDING_EDGE bool "armv6-eabihf musl bleeding-edge 2020.08-1" depends on BR2_ARM_CPU_ARMV6 depends on BR2_ARM_EABIHF depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the armv6-eabihf architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_MUSL_STABLE bool "armv6-eabihf musl stable 2020.08-1" depends on BR2_ARM_CPU_ARMV6 depends on BR2_ARM_EABIHF depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the armv6-eabihf architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_UCLIBC_BLEEDING_EDGE bool "armv6-eabihf uclibc bleeding-edge 2020.08-1" depends on BR2_ARM_CPU_ARMV6 depends on BR2_ARM_EABIHF select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the armv6-eabihf architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_UCLIBC_STABLE bool "armv6-eabihf uclibc stable 2020.08-1" depends on BR2_ARM_CPU_ARMV6 depends on BR2_ARM_EABIHF select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the armv6-eabihf architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_GLIBC_BLEEDING_EDGE bool "armv7-eabihf glibc bleeding-edge 2020.08-1" depends on BR2_ARM_CPU_ARMV7A depends on BR2_ARM_EABIHF depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the armv7-eabihf architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_GLIBC_STABLE bool "armv7-eabihf glibc stable 2020.08-1" depends on BR2_ARM_CPU_ARMV7A depends on BR2_ARM_EABIHF depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the armv7-eabihf architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_MUSL_BLEEDING_EDGE bool "armv7-eabihf musl bleeding-edge 2020.08-1" depends on BR2_ARM_CPU_ARMV7A depends on BR2_ARM_EABIHF depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the armv7-eabihf architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_MUSL_STABLE bool "armv7-eabihf musl stable 2020.08-1" depends on BR2_ARM_CPU_ARMV7A depends on BR2_ARM_EABIHF depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the armv7-eabihf architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_UCLIBC_BLEEDING_EDGE bool "armv7-eabihf uclibc bleeding-edge 2020.08-1" depends on BR2_ARM_CPU_ARMV7A depends on BR2_ARM_EABIHF select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the armv7-eabihf architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_UCLIBC_STABLE bool "armv7-eabihf uclibc stable 2020.08-1" depends on BR2_ARM_CPU_ARMV7A depends on BR2_ARM_EABIHF select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the armv7-eabihf architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7M_UCLIBC_BLEEDING_EDGE bool "armv7m uclibc bleeding-edge 2020.08-1" depends on BR2_ARM_CPU_ARMV7M select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the armv7m architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7M_UCLIBC_STABLE bool "armv7m uclibc stable 2020.08-1" depends on BR2_ARM_CPU_ARMV7M select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the armv7m architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_68XXX_UCLIBC_BLEEDING_EDGE bool "m68k-68xxx uclibc bleeding-edge 2020.08-1" depends on BR2_m68k_m68k select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the m68k-68xxx architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_68XXX_UCLIBC_STABLE bool "m68k-68xxx uclibc stable 2020.08-1" depends on BR2_m68k_m68k select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the m68k-68xxx architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_COLDFIRE_UCLIBC_BLEEDING_EDGE bool "m68k-coldfire uclibc bleeding-edge 2020.08-1" depends on BR2_m68k_cf select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the m68k-coldfire architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_COLDFIRE_UCLIBC_STABLE bool "m68k-coldfire uclibc stable 2020.08-1" depends on BR2_m68k_cf select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the m68k-coldfire architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_GLIBC_BLEEDING_EDGE bool "microblazebe glibc bleeding-edge 2020.08-1" depends on BR2_microblazebe depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the microblazebe architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_GLIBC_STABLE bool "microblazebe glibc stable 2020.08-1" depends on BR2_microblazebe depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the microblazebe architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_MUSL_BLEEDING_EDGE bool "microblazebe musl bleeding-edge 2020.08-1" depends on BR2_microblazebe depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the microblazebe architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_MUSL_STABLE bool "microblazebe musl stable 2020.08-1" depends on BR2_microblazebe depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the microblazebe architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_UCLIBC_BLEEDING_EDGE bool "microblazebe uclibc bleeding-edge 2020.08-1" depends on BR2_microblazebe select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the microblazebe architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_UCLIBC_STABLE bool "microblazebe uclibc stable 2020.08-1" depends on BR2_microblazebe select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the microblazebe architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_GLIBC_BLEEDING_EDGE bool "microblazeel glibc bleeding-edge 2020.08-1" depends on BR2_microblazeel depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the microblazeel architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_GLIBC_STABLE bool "microblazeel glibc stable 2020.08-1" depends on BR2_microblazeel depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the microblazeel architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_MUSL_BLEEDING_EDGE bool "microblazeel musl bleeding-edge 2020.08-1" depends on BR2_microblazeel depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the microblazeel architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_MUSL_STABLE bool "microblazeel musl stable 2020.08-1" depends on BR2_microblazeel depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the microblazeel architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_UCLIBC_BLEEDING_EDGE bool "microblazeel uclibc bleeding-edge 2020.08-1" depends on BR2_microblazeel select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the microblazeel architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_UCLIBC_STABLE bool "microblazeel uclibc stable 2020.08-1" depends on BR2_microblazeel select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the microblazeel architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_GLIBC_BLEEDING_EDGE bool "mips32 glibc bleeding-edge 2020.08-1" depends on BR2_mips depends on BR2_mips_32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips32 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_GLIBC_STABLE bool "mips32 glibc stable 2020.08-1" depends on BR2_mips depends on BR2_mips_32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips32 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_MUSL_BLEEDING_EDGE bool "mips32 musl bleeding-edge 2020.08-1" depends on BR2_mips depends on BR2_mips_32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips32 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_MUSL_STABLE bool "mips32 musl stable 2020.08-1" depends on BR2_mips depends on BR2_mips_32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips32 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_UCLIBC_BLEEDING_EDGE bool "mips32 uclibc bleeding-edge 2020.08-1" depends on BR2_mips depends on BR2_mips_32 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips32 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_UCLIBC_STABLE bool "mips32 uclibc stable 2020.08-1" depends on BR2_mips depends on BR2_mips_32 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips32 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_GLIBC_BLEEDING_EDGE bool "mips32el glibc bleeding-edge 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips32el architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_GLIBC_STABLE bool "mips32el glibc stable 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips32el architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_MUSL_BLEEDING_EDGE bool "mips32el musl bleeding-edge 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips32el architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_MUSL_STABLE bool "mips32el musl stable 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips32el architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_UCLIBC_BLEEDING_EDGE bool "mips32el uclibc bleeding-edge 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips32el architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_UCLIBC_STABLE bool "mips32el uclibc stable 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips32el architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_GLIBC_BLEEDING_EDGE bool "mips32r5el glibc bleeding-edge 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32r5 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips32r5el architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_GLIBC_STABLE bool "mips32r5el glibc stable 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32r5 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips32r5el architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_MUSL_BLEEDING_EDGE bool "mips32r5el musl bleeding-edge 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32r5 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips32r5el architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_MUSL_STABLE bool "mips32r5el musl stable 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32r5 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips32r5el architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_UCLIBC_BLEEDING_EDGE bool "mips32r5el uclibc bleeding-edge 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32r5 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips32r5el architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_UCLIBC_STABLE bool "mips32r5el uclibc stable 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32r5 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips32r5el architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_GLIBC_BLEEDING_EDGE bool "mips32r6el glibc bleeding-edge 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32r6 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips32r6el architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_GLIBC_STABLE bool "mips32r6el glibc stable 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32r6 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips32r6el architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_MUSL_BLEEDING_EDGE bool "mips32r6el musl bleeding-edge 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32r6 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips32r6el architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_MUSL_STABLE bool "mips32r6el musl stable 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32r6 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips32r6el architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_UCLIBC_BLEEDING_EDGE bool "mips32r6el uclibc bleeding-edge 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32r6 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips32r6el architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_UCLIBC_STABLE bool "mips32r6el uclibc stable 2020.08-1" depends on BR2_mipsel depends on BR2_mips_32r6 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips32r6el architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_GLIBC_BLEEDING_EDGE bool "mips64-n32 glibc bleeding-edge 2020.08-1" depends on BR2_mips64 depends on BR2_mips_64 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips64-n32 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_GLIBC_STABLE bool "mips64-n32 glibc stable 2020.08-1" depends on BR2_mips64 depends on BR2_mips_64 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips64-n32 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_MUSL_BLEEDING_EDGE bool "mips64-n32 musl bleeding-edge 2020.08-1" depends on BR2_mips64 depends on BR2_mips_64 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips64-n32 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_MUSL_STABLE bool "mips64-n32 musl stable 2020.08-1" depends on BR2_mips64 depends on BR2_mips_64 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips64-n32 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_UCLIBC_BLEEDING_EDGE bool "mips64-n32 uclibc bleeding-edge 2020.08-1" depends on BR2_mips64 depends on BR2_mips_64 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips64-n32 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_UCLIBC_STABLE bool "mips64-n32 uclibc stable 2020.08-1" depends on BR2_mips64 depends on BR2_mips_64 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips64-n32 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_GLIBC_BLEEDING_EDGE bool "mips64el-n32 glibc bleeding-edge 2020.08-1" depends on BR2_mips64el depends on BR2_mips_64 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips64el-n32 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_GLIBC_STABLE bool "mips64el-n32 glibc stable 2020.08-1" depends on BR2_mips64el depends on BR2_mips_64 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips64el-n32 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_MUSL_BLEEDING_EDGE bool "mips64el-n32 musl bleeding-edge 2020.08-1" depends on BR2_mips64el depends on BR2_mips_64 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips64el-n32 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_MUSL_STABLE bool "mips64el-n32 musl stable 2020.08-1" depends on BR2_mips64el depends on BR2_mips_64 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips64el-n32 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_UCLIBC_BLEEDING_EDGE bool "mips64el-n32 uclibc bleeding-edge 2020.08-1" depends on BR2_mips64el depends on BR2_mips_64 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips64el-n32 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_UCLIBC_STABLE bool "mips64el-n32 uclibc stable 2020.08-1" depends on BR2_mips64el depends on BR2_mips_64 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips64el-n32 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_GLIBC_BLEEDING_EDGE bool "mips64r6el-n32 glibc bleeding-edge 2020.08-1" depends on BR2_mips64el depends on BR2_mips_64r6 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips64r6el-n32 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_GLIBC_STABLE bool "mips64r6el-n32 glibc stable 2020.08-1" depends on BR2_mips64el depends on BR2_mips_64r6 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the mips64r6el-n32 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_MUSL_BLEEDING_EDGE bool "mips64r6el-n32 musl bleeding-edge 2020.08-1" depends on BR2_mips64el depends on BR2_mips_64r6 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips64r6el-n32 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_MUSL_STABLE bool "mips64r6el-n32 musl stable 2020.08-1" depends on BR2_mips64el depends on BR2_mips_64r6 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the mips64r6el-n32 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_UCLIBC_BLEEDING_EDGE bool "mips64r6el-n32 uclibc bleeding-edge 2020.08-1" depends on BR2_mips64el depends on BR2_mips_64r6 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips64r6el-n32 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_UCLIBC_STABLE bool "mips64r6el-n32 uclibc stable 2020.08-1" depends on BR2_mips64el depends on BR2_mips_64r6 depends on BR2_MIPS_NABI32 depends on !BR2_MIPS_SOFT_FLOAT select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the mips64r6el-n32 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_NIOS2_GLIBC_BLEEDING_EDGE bool "nios2 glibc bleeding-edge 2020.08-1" depends on BR2_nios2 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the nios2 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_NIOS2_GLIBC_STABLE bool "nios2 glibc stable 2020.08-1" depends on BR2_nios2 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the nios2 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_MUSL_BLEEDING_EDGE bool "openrisc musl bleeding-edge 2020.08-1" depends on BR2_or1k depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the openrisc architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_MUSL_STABLE bool "openrisc musl stable 2020.08-1" depends on BR2_or1k depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the openrisc architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_UCLIBC_BLEEDING_EDGE bool "openrisc uclibc bleeding-edge 2020.08-1" depends on BR2_or1k select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the openrisc architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_UCLIBC_STABLE bool "openrisc uclibc stable 2020.08-1" depends on BR2_or1k select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the openrisc architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_GLIBC_BLEEDING_EDGE bool "powerpc-440fp glibc bleeding-edge 2020.08-2" depends on BR2_powerpc depends on BR2_powerpc_440fp depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_TOOLCHAIN_EXTERNAL_GLIBC help Bootlin toolchain for the powerpc-440fp architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_GLIBC_STABLE bool "powerpc-440fp glibc stable 2020.08-2" depends on BR2_powerpc depends on BR2_powerpc_440fp depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_TOOLCHAIN_EXTERNAL_GLIBC help Bootlin toolchain for the powerpc-440fp architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_MUSL_BLEEDING_EDGE bool "powerpc-440fp musl bleeding-edge 2020.08-2" depends on BR2_powerpc depends on BR2_powerpc_440fp depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the powerpc-440fp architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_MUSL_STABLE bool "powerpc-440fp musl stable 2020.08-2" depends on BR2_powerpc depends on BR2_powerpc_440fp depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the powerpc-440fp architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_UCLIBC_BLEEDING_EDGE bool "powerpc-440fp uclibc bleeding-edge 2020.08-2" depends on BR2_powerpc depends on BR2_powerpc_440fp select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the powerpc-440fp architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_UCLIBC_STABLE bool "powerpc-440fp uclibc stable 2020.08-2" depends on BR2_powerpc depends on BR2_powerpc_440fp select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the powerpc-440fp architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_GLIBC_BLEEDING_EDGE bool "powerpc-e300c3 glibc bleeding-edge 2020.08-1" depends on BR2_powerpc depends on BR2_powerpc_e300c3 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the powerpc-e300c3 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_GLIBC_STABLE bool "powerpc-e300c3 glibc stable 2020.08-1" depends on BR2_powerpc depends on BR2_powerpc_e300c3 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the powerpc-e300c3 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_MUSL_BLEEDING_EDGE bool "powerpc-e300c3 musl bleeding-edge 2020.08-1" depends on BR2_powerpc depends on BR2_powerpc_e300c3 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the powerpc-e300c3 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_MUSL_STABLE bool "powerpc-e300c3 musl stable 2020.08-1" depends on BR2_powerpc depends on BR2_powerpc_e300c3 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the powerpc-e300c3 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_UCLIBC_BLEEDING_EDGE bool "powerpc-e300c3 uclibc bleeding-edge 2020.08-1" depends on BR2_powerpc depends on BR2_powerpc_e300c3 select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the powerpc-e300c3 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_UCLIBC_STABLE bool "powerpc-e300c3 uclibc stable 2020.08-1" depends on BR2_powerpc depends on BR2_powerpc_e300c3 select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the powerpc-e300c3 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_GLIBC_BLEEDING_EDGE bool "powerpc-e500mc glibc bleeding-edge 2020.08-1" depends on BR2_powerpc depends on BR2_powerpc_e500mc depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the powerpc-e500mc architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_GLIBC_STABLE bool "powerpc-e500mc glibc stable 2020.08-1" depends on BR2_powerpc depends on BR2_powerpc_e500mc depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the powerpc-e500mc architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_MUSL_BLEEDING_EDGE bool "powerpc-e500mc musl bleeding-edge 2020.08-1" depends on BR2_powerpc depends on BR2_powerpc_e500mc depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the powerpc-e500mc architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_MUSL_STABLE bool "powerpc-e500mc musl stable 2020.08-1" depends on BR2_powerpc depends on BR2_powerpc_e500mc depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the powerpc-e500mc architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_UCLIBC_BLEEDING_EDGE bool "powerpc-e500mc uclibc bleeding-edge 2020.08-1" depends on BR2_powerpc depends on BR2_powerpc_e500mc select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the powerpc-e500mc architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_UCLIBC_STABLE bool "powerpc-e500mc uclibc stable 2020.08-1" depends on BR2_powerpc depends on BR2_powerpc_e500mc select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the powerpc-e500mc architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E5500_GLIBC_BLEEDING_EDGE bool "powerpc64-e5500 glibc bleeding-edge 2020.08-1" depends on BR2_powerpc64 depends on BR2_powerpc_e5500 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the powerpc64-e5500 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E5500_GLIBC_STABLE bool "powerpc64-e5500 glibc stable 2020.08-1" depends on BR2_powerpc64 depends on BR2_powerpc_e5500 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the powerpc64-e5500 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_GLIBC_BLEEDING_EDGE bool "powerpc64-e6500 glibc bleeding-edge 2020.08-1" depends on BR2_powerpc64 depends on BR2_powerpc_e6500 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the powerpc64-e6500 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_GLIBC_STABLE bool "powerpc64-e6500 glibc stable 2020.08-1" depends on BR2_powerpc64 depends on BR2_powerpc_e6500 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the powerpc64-e6500 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_MUSL_BLEEDING_EDGE bool "powerpc64-e6500 musl bleeding-edge 2020.08-1" depends on BR2_powerpc64 depends on BR2_powerpc_e6500 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the powerpc64-e6500 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_MUSL_STABLE bool "powerpc64-e6500 musl stable 2020.08-1" depends on BR2_powerpc64 depends on BR2_powerpc_e6500 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the powerpc64-e6500 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_GLIBC_BLEEDING_EDGE bool "powerpc64-power8 glibc bleeding-edge 2020.08-1" depends on BR2_powerpc64 depends on BR2_powerpc_power8 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the powerpc64-power8 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_GLIBC_STABLE bool "powerpc64-power8 glibc stable 2020.08-1" depends on BR2_powerpc64 depends on BR2_powerpc_power8 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the powerpc64-power8 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_MUSL_BLEEDING_EDGE bool "powerpc64-power8 musl bleeding-edge 2020.08-1" depends on BR2_powerpc64 depends on BR2_powerpc_power8 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the powerpc64-power8 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_MUSL_STABLE bool "powerpc64-power8 musl stable 2020.08-1" depends on BR2_powerpc64 depends on BR2_powerpc_power8 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the powerpc64-power8 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_GLIBC_BLEEDING_EDGE bool "powerpc64le-power8 glibc bleeding-edge 2020.08-1" depends on BR2_powerpc64le depends on BR2_powerpc_power8 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the powerpc64le-power8 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_GLIBC_STABLE bool "powerpc64le-power8 glibc stable 2020.08-1" depends on BR2_powerpc64le depends on BR2_powerpc_power8 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the powerpc64le-power8 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_MUSL_BLEEDING_EDGE bool "powerpc64le-power8 musl bleeding-edge 2020.08-1" depends on BR2_powerpc64le depends on BR2_powerpc_power8 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the powerpc64le-power8 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_MUSL_STABLE bool "powerpc64le-power8 musl stable 2020.08-1" depends on BR2_powerpc64le depends on BR2_powerpc_power8 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the powerpc64le-power8 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV32_ILP32D_GLIBC_BLEEDING_EDGE bool "riscv32-ilp32d glibc bleeding-edge 2020.08-1" depends on BR2_riscv depends on BR2_riscv_g depends on BR2_RISCV_32 depends on BR2_RISCV_ABI_ILP32D depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC help Bootlin toolchain for the riscv32-ilp32d architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_GLIBC_BLEEDING_EDGE bool "riscv64 glibc bleeding-edge 2020.08-1" depends on BR2_riscv depends on BR2_riscv_g depends on BR2_RISCV_64 depends on BR2_RISCV_ABI_LP64 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the riscv64 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_MUSL_BLEEDING_EDGE bool "riscv64 musl bleeding-edge 2020.08-1" depends on BR2_riscv depends on BR2_riscv_g depends on BR2_RISCV_64 depends on BR2_RISCV_ABI_LP64 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the riscv64 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_GLIBC_BLEEDING_EDGE bool "sh-sh4 glibc bleeding-edge 2020.08-1" depends on BR2_sh depends on BR2_sh4 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the sh-sh4 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_GLIBC_STABLE bool "sh-sh4 glibc stable 2020.08-1" depends on BR2_sh depends on BR2_sh4 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the sh-sh4 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_MUSL_BLEEDING_EDGE bool "sh-sh4 musl bleeding-edge 2020.08-1" depends on BR2_sh depends on BR2_sh4 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the sh-sh4 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_MUSL_STABLE bool "sh-sh4 musl stable 2020.08-1" depends on BR2_sh depends on BR2_sh4 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the sh-sh4 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_UCLIBC_BLEEDING_EDGE bool "sh-sh4 uclibc bleeding-edge 2020.08-1" depends on BR2_sh depends on BR2_sh4 select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the sh-sh4 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_UCLIBC_STABLE bool "sh-sh4 uclibc stable 2020.08-1" depends on BR2_sh depends on BR2_sh4 select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the sh-sh4 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_GLIBC_BLEEDING_EDGE bool "sh-sh4aeb glibc bleeding-edge 2020.08-1" depends on BR2_sh depends on BR2_sh4aeb depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the sh-sh4aeb architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_GLIBC_STABLE bool "sh-sh4aeb glibc stable 2020.08-1" depends on BR2_sh depends on BR2_sh4aeb depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the sh-sh4aeb architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_MUSL_BLEEDING_EDGE bool "sh-sh4aeb musl bleeding-edge 2020.08-1" depends on BR2_sh depends on BR2_sh4aeb depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the sh-sh4aeb architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_MUSL_STABLE bool "sh-sh4aeb musl stable 2020.08-1" depends on BR2_sh depends on BR2_sh4aeb depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the sh-sh4aeb architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARC64_GLIBC_BLEEDING_EDGE bool "sparc64 glibc bleeding-edge 2020.08-1" depends on BR2_sparc64 depends on BR2_sparc_v9 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the sparc64 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARC64_GLIBC_STABLE bool "sparc64 glibc stable 2020.08-1" depends on BR2_sparc64 depends on BR2_sparc_v9 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the sparc64 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARCV8_UCLIBC_BLEEDING_EDGE bool "sparcv8 uclibc bleeding-edge 2020.08-1" depends on BR2_sparc depends on BR2_sparc_v8 select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the sparcv8 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARCV8_UCLIBC_STABLE bool "sparcv8 uclibc stable 2020.08-1" depends on BR2_sparc depends on BR2_sparc_v8 select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the sparcv8 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_BLEEDING_EDGE bool "x86-64-core-i7 glibc bleeding-edge 2020.08-1" depends on BR2_x86_64 depends on BR2_X86_CPU_HAS_MMX depends on BR2_X86_CPU_HAS_SSE depends on BR2_X86_CPU_HAS_SSE2 depends on BR2_X86_CPU_HAS_SSE3 depends on BR2_X86_CPU_HAS_SSSE3 depends on BR2_X86_CPU_HAS_SSE4 depends on BR2_X86_CPU_HAS_SSE42 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the x86-64-core-i7 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_STABLE bool "x86-64-core-i7 glibc stable 2020.08-1" depends on BR2_x86_64 depends on BR2_X86_CPU_HAS_MMX depends on BR2_X86_CPU_HAS_SSE depends on BR2_X86_CPU_HAS_SSE2 depends on BR2_X86_CPU_HAS_SSE3 depends on BR2_X86_CPU_HAS_SSSE3 depends on BR2_X86_CPU_HAS_SSE4 depends on BR2_X86_CPU_HAS_SSE42 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the x86-64-core-i7 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_MUSL_BLEEDING_EDGE bool "x86-64-core-i7 musl bleeding-edge 2020.08-1" depends on BR2_x86_64 depends on BR2_X86_CPU_HAS_MMX depends on BR2_X86_CPU_HAS_SSE depends on BR2_X86_CPU_HAS_SSE2 depends on BR2_X86_CPU_HAS_SSE3 depends on BR2_X86_CPU_HAS_SSSE3 depends on BR2_X86_CPU_HAS_SSE4 depends on BR2_X86_CPU_HAS_SSE42 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the x86-64-core-i7 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_MUSL_STABLE bool "x86-64-core-i7 musl stable 2020.08-1" depends on BR2_x86_64 depends on BR2_X86_CPU_HAS_MMX depends on BR2_X86_CPU_HAS_SSE depends on BR2_X86_CPU_HAS_SSE2 depends on BR2_X86_CPU_HAS_SSE3 depends on BR2_X86_CPU_HAS_SSSE3 depends on BR2_X86_CPU_HAS_SSE4 depends on BR2_X86_CPU_HAS_SSE42 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the x86-64-core-i7 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_UCLIBC_BLEEDING_EDGE bool "x86-64-core-i7 uclibc bleeding-edge 2020.08-1" depends on BR2_x86_64 depends on BR2_X86_CPU_HAS_MMX depends on BR2_X86_CPU_HAS_SSE depends on BR2_X86_CPU_HAS_SSE2 depends on BR2_X86_CPU_HAS_SSE3 depends on BR2_X86_CPU_HAS_SSSE3 depends on BR2_X86_CPU_HAS_SSE4 depends on BR2_X86_CPU_HAS_SSE42 select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the x86-64-core-i7 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_UCLIBC_STABLE bool "x86-64-core-i7 uclibc stable 2020.08-1" depends on BR2_x86_64 depends on BR2_X86_CPU_HAS_MMX depends on BR2_X86_CPU_HAS_SSE depends on BR2_X86_CPU_HAS_SSE2 depends on BR2_X86_CPU_HAS_SSE3 depends on BR2_X86_CPU_HAS_SSSE3 depends on BR2_X86_CPU_HAS_SSE4 depends on BR2_X86_CPU_HAS_SSE42 select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the x86-64-core-i7 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_GLIBC_BLEEDING_EDGE bool "x86-core2 glibc bleeding-edge 2020.08-1" depends on BR2_i386 depends on BR2_X86_CPU_HAS_MMX depends on BR2_X86_CPU_HAS_SSE depends on BR2_X86_CPU_HAS_SSE2 depends on BR2_X86_CPU_HAS_SSE3 depends on BR2_X86_CPU_HAS_SSSE3 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the x86-core2 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_GLIBC_STABLE bool "x86-core2 glibc stable 2020.08-1" depends on BR2_i386 depends on BR2_X86_CPU_HAS_MMX depends on BR2_X86_CPU_HAS_SSE depends on BR2_X86_CPU_HAS_SSE2 depends on BR2_X86_CPU_HAS_SSE3 depends on BR2_X86_CPU_HAS_SSSE3 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the x86-core2 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_MUSL_BLEEDING_EDGE bool "x86-core2 musl bleeding-edge 2020.08-1" depends on BR2_i386 depends on BR2_X86_CPU_HAS_MMX depends on BR2_X86_CPU_HAS_SSE depends on BR2_X86_CPU_HAS_SSE2 depends on BR2_X86_CPU_HAS_SSE3 depends on BR2_X86_CPU_HAS_SSSE3 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the x86-core2 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_MUSL_STABLE bool "x86-core2 musl stable 2020.08-1" depends on BR2_i386 depends on BR2_X86_CPU_HAS_MMX depends on BR2_X86_CPU_HAS_SSE depends on BR2_X86_CPU_HAS_SSE2 depends on BR2_X86_CPU_HAS_SSE3 depends on BR2_X86_CPU_HAS_SSSE3 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the x86-core2 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_UCLIBC_BLEEDING_EDGE bool "x86-core2 uclibc bleeding-edge 2020.08-1" depends on BR2_i386 depends on BR2_X86_CPU_HAS_MMX depends on BR2_X86_CPU_HAS_SSE depends on BR2_X86_CPU_HAS_SSE2 depends on BR2_X86_CPU_HAS_SSE3 depends on BR2_X86_CPU_HAS_SSSE3 select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the x86-core2 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_UCLIBC_STABLE bool "x86-core2 uclibc stable 2020.08-1" depends on BR2_i386 depends on BR2_X86_CPU_HAS_MMX depends on BR2_X86_CPU_HAS_SSE depends on BR2_X86_CPU_HAS_SSE2 depends on BR2_X86_CPU_HAS_SSE3 depends on BR2_X86_CPU_HAS_SSSE3 select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the x86-core2 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_GLIBC_BLEEDING_EDGE bool "x86-i686 glibc bleeding-edge 2020.08-1" depends on BR2_i386 depends on !BR2_x86_i486 depends on !BR2_x86_i586 depends on !BR2_x86_x1000 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the x86-i686 architecture, using the glibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_GLIBC_STABLE bool "x86-i686 glibc stable 2020.08-1" depends on BR2_i386 depends on !BR2_x86_i486 depends on !BR2_x86_i586 depends on !BR2_x86_x1000 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Bootlin toolchain for the x86-i686 architecture, using the glibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_MUSL_BLEEDING_EDGE bool "x86-i686 musl bleeding-edge 2020.08-1" depends on BR2_i386 depends on !BR2_x86_i486 depends on !BR2_x86_i586 depends on !BR2_x86_x1000 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the x86-i686 architecture, using the musl C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_MUSL_STABLE bool "x86-i686 musl stable 2020.08-1" depends on BR2_i386 depends on !BR2_x86_i486 depends on !BR2_x86_i586 depends on !BR2_x86_x1000 depends on BR2_USE_MMU select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_MUSL help Bootlin toolchain for the x86-i686 architecture, using the musl C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_UCLIBC_BLEEDING_EDGE bool "x86-i686 uclibc bleeding-edge 2020.08-1" depends on BR2_i386 depends on !BR2_x86_i486 depends on !BR2_x86_i586 depends on !BR2_x86_x1000 select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the x86-i686 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_UCLIBC_STABLE bool "x86-i686 uclibc stable 2020.08-1" depends on BR2_i386 depends on !BR2_x86_i486 depends on !BR2_x86_i586 depends on !BR2_x86_x1000 select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the x86-i686 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_XTENSA_LX60_UCLIBC_BLEEDING_EDGE bool "xtensa-lx60 uclibc bleeding-edge 2020.08-1" depends on BR2_xtensa depends on BR2_XTENSA_CUSTOM depends on BR2_XTENSA_LITTLE_ENDIAN select BR2_TOOLCHAIN_GCC_AT_LEAST_10 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the xtensa-lx60 architecture, using the uclibc C library. This is a bleeding-edge version, which means it is using the latest versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_XTENSA_LX60_UCLIBC_STABLE bool "xtensa-lx60 uclibc stable 2020.08-1" depends on BR2_xtensa depends on BR2_XTENSA_CUSTOM depends on BR2_XTENSA_LITTLE_ENDIAN select BR2_TOOLCHAIN_GCC_AT_LEAST_9 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Bootlin toolchain for the xtensa-lx60 architecture, using the uclibc C library. This is a stable version, which means it is using stable and proven versions of gcc, gdb and binutils. https://toolchains.bootlin.com/ endchoice endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-bootlin/toolchain-external-bootlin.hash ================================================ # This file was auto-generated by support/scripts/gen-bootlin-toolchains # Do not edit # From https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs/aarch64--glibc--bleeding-edge-2020.08-1.sha256 sha256 212f3c05f3b2263b0e2f902d055aecc2755eba10c0011927788a38faee8fc9aa aarch64--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs/aarch64--glibc--stable-2020.08-1.sha256 sha256 8ab7a2f17cb96621b048ab0a872650dd62faa54cd74c961b9902b8c04bff7dd1 aarch64--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs/aarch64--musl--bleeding-edge-2020.08-1.sha256 sha256 3cf00c1ccaf16d0fbc526529789791de1cf98b918ff812e779f8400d40b6c048 aarch64--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs/aarch64--musl--stable-2020.08-1.sha256 sha256 8319d27e3e637f32ecbdf49ceee2e9b7768b32d3ec7c92c888ff52e6f062bde4 aarch64--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs/aarch64--uclibc--bleeding-edge-2020.08-1.sha256 sha256 57fe5cecf37778b35dd09d9a016a1d6d9d7bb0e96ffcc5565e0aa483a46ea3db aarch64--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs/aarch64--uclibc--stable-2020.08-1.sha256 sha256 04176f56ac977215c5257c307cece2d32e03770b96380e09c50379d4d84a5b39 aarch64--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64be/tarballs/aarch64be--glibc--bleeding-edge-2020.08-1.sha256 sha256 9631a57809d2fc2c7bb82bdd79d7647ccabe193126cc59ff9721a573d8870510 aarch64be--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64be/tarballs/aarch64be--glibc--stable-2020.08-1.sha256 sha256 71e24a2a205726d7d8ec56ead13b7eb427d5aed0e057a94ee06688334a07e6dd aarch64be--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64be/tarballs/aarch64be--uclibc--bleeding-edge-2020.08-1.sha256 sha256 76017614f0e7770499b5d18943398e51ae1c36d075cf8fba90ea050a29cad747 aarch64be--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64be/tarballs/aarch64be--uclibc--stable-2020.08-1.sha256 sha256 a3bff78e98b2e17ab142ec630f9184f0cd4be6f1f313fdc112d89a843d92cedc aarch64be--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/arcle-750d/tarballs/arcle-750d--uclibc--bleeding-edge-2020.08-1.sha256 sha256 e33570bdddc08d01b0da81ef6c3b240c6e0a4948f0100314b0be63c18c5f75db arcle-750d--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/arcle-750d/tarballs/arcle-750d--uclibc--stable-2020.08-1.sha256 sha256 bae0cbcab3b3b0149503aef6003dd816102b261461e37d89d32ffe9eb7f5dab9 arcle-750d--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/arcle-hs38/tarballs/arcle-hs38--glibc--bleeding-edge-2020.08-1.sha256 sha256 219be8c5390da6830e7529cb0a611996a8c9451bfa1560d7bda4ed5b182f7744 arcle-hs38--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/arcle-hs38/tarballs/arcle-hs38--glibc--stable-2020.08-1.sha256 sha256 ca73399803b6bb46cf27aa2bef5f98eae05fb2fa547403777354067117b44f2f arcle-hs38--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/arcle-hs38/tarballs/arcle-hs38--uclibc--bleeding-edge-2020.08-1.sha256 sha256 65e1408112518c1b31350285838f000a78a0dcd78880842933ef80d64d023967 arcle-hs38--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/arcle-hs38/tarballs/arcle-hs38--uclibc--stable-2020.08-1.sha256 sha256 f0839aa541fe3f29660387c731b52e495bf1b285127b9fba91350b5b67f8ff3e arcle-hs38--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs/armv5-eabi--glibc--bleeding-edge-2020.08-1.sha256 sha256 261e73520fb211f63a88ecce0689d3647acf295527bd6bd16e88e1bd65b3c603 armv5-eabi--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs/armv5-eabi--glibc--stable-2020.08-1.sha256 sha256 ed175329057693e496b0d6dbac1ff9db8f8f34737530ab38b5ed677afaefad03 armv5-eabi--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs/armv5-eabi--musl--bleeding-edge-2020.08-1.sha256 sha256 486b2424321b9866c2677e1dccd3a999394a86f890542c0c63edd5f9456bc4f9 armv5-eabi--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs/armv5-eabi--musl--stable-2020.08-1.sha256 sha256 732edab571d017c550d74b8c53dc703fc650de7aab66e68c70a0bc19d66d0a22 armv5-eabi--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs/armv5-eabi--uclibc--bleeding-edge-2020.08-1.sha256 sha256 5e11ec24b910c43f24577b41a38cded192e443c0606be60944fe85b0fbf4b2dd armv5-eabi--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs/armv5-eabi--uclibc--stable-2020.08-1.sha256 sha256 cf6a668d4f30a4a2e76a0e88177e1301342cc011e94ea399353e77ede0efbb22 armv5-eabi--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv6-eabihf/tarballs/armv6-eabihf--glibc--bleeding-edge-2020.08-1.sha256 sha256 0c66147f05b21529311338e246ed285f9f0f4830af0d4db28e401160a81d1b4f armv6-eabihf--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv6-eabihf/tarballs/armv6-eabihf--glibc--stable-2020.08-1.sha256 sha256 539e31b3bdcf76c3d6710951c74fbe682e2de8da4d110b981e9108b656890f4a armv6-eabihf--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv6-eabihf/tarballs/armv6-eabihf--musl--bleeding-edge-2020.08-1.sha256 sha256 e8c05fb7b909dfd5a42f6de78d1b20605c453a9aea219981966d213ee98968e2 armv6-eabihf--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv6-eabihf/tarballs/armv6-eabihf--musl--stable-2020.08-1.sha256 sha256 68e43e3cd0e1fdd5c2b3ab718368f6ee24824725c641e148ef0a0da57f872034 armv6-eabihf--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv6-eabihf/tarballs/armv6-eabihf--uclibc--bleeding-edge-2020.08-1.sha256 sha256 749bb97f7535414c3096564f6e790d1e43ab8c406282480937d8f34478ac7a35 armv6-eabihf--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv6-eabihf/tarballs/armv6-eabihf--uclibc--stable-2020.08-1.sha256 sha256 680a3bf708cb792c74561514dcba882727086c9317397e8a3ebece1b50fbea4e armv6-eabihf--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs/armv7-eabihf--glibc--bleeding-edge-2020.08-1.sha256 sha256 9f5c703cea20834276e1a81e2e54483d0f4fe0e57063ba4d058338ef9c858eb2 armv7-eabihf--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs/armv7-eabihf--glibc--stable-2020.08-1.sha256 sha256 7b6682603af9a9b5c0e46fd57165723483bb68295e827d14d238e63f33a147a8 armv7-eabihf--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs/armv7-eabihf--musl--bleeding-edge-2020.08-1.sha256 sha256 d9e71499cfb1790a31056ca9199981f699c7e4966b5854f7780d97f5a74d601e armv7-eabihf--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs/armv7-eabihf--musl--stable-2020.08-1.sha256 sha256 5c4c9bce5a2a46a9ad46e49e86df708893a8907e702a8ee1b5febd3950e030ed armv7-eabihf--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs/armv7-eabihf--uclibc--bleeding-edge-2020.08-1.sha256 sha256 7c3ee9f3d6bd4eda38ec94a686a9e348b0f800214f1225c68d172e4ac6b81066 armv7-eabihf--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs/armv7-eabihf--uclibc--stable-2020.08-1.sha256 sha256 f61866b0e60da62eff92b197f0e2a72e8d023bf944a25eb97efc9f5d93680ed9 armv7-eabihf--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv7m/tarballs/armv7m--uclibc--bleeding-edge-2020.08-1.sha256 sha256 9ce29bbcbc0a2c4925e814a6332c2c71e9a13476040e1db0a5495c68d1566bee armv7m--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/armv7m/tarballs/armv7m--uclibc--stable-2020.08-1.sha256 sha256 c20df31191b88df09d8ff225ca82e3bb769b2b7ffd3827f6dbf77a6d23230339 armv7m--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/m68k-68xxx/tarballs/m68k-68xxx--uclibc--bleeding-edge-2020.08-1.sha256 sha256 49e26c831694d15bb023a0a36cf9d3967e0ab75c555d8d07bba3317a0a18aa40 m68k-68xxx--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/m68k-68xxx/tarballs/m68k-68xxx--uclibc--stable-2020.08-1.sha256 sha256 b133663f5589c71315224792b7e542cfa578e4c354e4a2ac8afcd5ee77fd6f45 m68k-68xxx--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/m68k-coldfire/tarballs/m68k-coldfire--uclibc--bleeding-edge-2020.08-1.sha256 sha256 3efa687ca5d1c5f1ec53032e05a12467ec148c2328836754841f74be217bb035 m68k-coldfire--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/m68k-coldfire/tarballs/m68k-coldfire--uclibc--stable-2020.08-1.sha256 sha256 f9879a167e2279fe925a3dc963d349d3d84c85866ec91512b5a7ce667318d716 m68k-coldfire--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/microblazebe/tarballs/microblazebe--glibc--bleeding-edge-2020.08-1.sha256 sha256 d9fb4403d14f53d5f4be18f38e9604244042ea33ad980ebf0b0057b70d603d16 microblazebe--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/microblazebe/tarballs/microblazebe--glibc--stable-2020.08-1.sha256 sha256 ea466445240a25ba98cd7b34f748afca151fc2479b187566f2faa98f586bfd93 microblazebe--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/microblazebe/tarballs/microblazebe--musl--bleeding-edge-2020.08-1.sha256 sha256 0157d051ac5e8b46b4eed7333c9323d1c1602ad5e958e2c12fe9b8dc3b6781c7 microblazebe--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/microblazebe/tarballs/microblazebe--musl--stable-2020.08-1.sha256 sha256 ec51b07f63cf6d0af1eaed10641d8690a350d879e4b74addca2b3f7992186ee2 microblazebe--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/microblazebe/tarballs/microblazebe--uclibc--bleeding-edge-2020.08-1.sha256 sha256 3aaaab352ca31b2263e29c363609a363a38931f9733c8ad3a386c5cbb791f8e1 microblazebe--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/microblazebe/tarballs/microblazebe--uclibc--stable-2020.08-1.sha256 sha256 d2b31177c9c009cd70a9ad4af6e903dfdb5254e3f49fe9389e0e11af7a98e6b6 microblazebe--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/microblazeel/tarballs/microblazeel--glibc--bleeding-edge-2020.08-1.sha256 sha256 83a451601b24b6a9c609630119e100ef9f18408bdfe1241cc53a904d540e6936 microblazeel--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/microblazeel/tarballs/microblazeel--glibc--stable-2020.08-1.sha256 sha256 c168737ec92889e632673f826b13cf74cfe4ba3ad06cc9e328ee20268ec439e9 microblazeel--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/microblazeel/tarballs/microblazeel--musl--bleeding-edge-2020.08-1.sha256 sha256 47660f8a4d84c7b8cd7610b8ba9df5bbfba043b35ebc07d96468c950b282f44d microblazeel--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/microblazeel/tarballs/microblazeel--musl--stable-2020.08-1.sha256 sha256 6a51e38fe3f72765ad1172488321b60c59867253edce7b6680500c4193a542f7 microblazeel--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/microblazeel/tarballs/microblazeel--uclibc--bleeding-edge-2020.08-1.sha256 sha256 6005fa2b229be380a2e4b8227daa0b4be4739b7cda628679de6d0e048755c769 microblazeel--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/microblazeel/tarballs/microblazeel--uclibc--stable-2020.08-1.sha256 sha256 845a4795cab5f88d96679945f7147c5dfe0dd19751b88734ef786bfd5ee5db67 microblazeel--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs/mips32--glibc--bleeding-edge-2020.08-1.sha256 sha256 63baffcf0a94d7f1b7421ad61ddb56ce5c05595acd09f482dffe13ddf17efd81 mips32--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs/mips32--glibc--stable-2020.08-1.sha256 sha256 90e300a2d224ea79b69cae68e93b0aab70858381b0d11bac846458c625d72653 mips32--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs/mips32--musl--bleeding-edge-2020.08-1.sha256 sha256 4ebc20461eafca9c9b50e36f81e13095229aac0cd1dd98a985060f2e95665983 mips32--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs/mips32--musl--stable-2020.08-1.sha256 sha256 1a544242e9aaaee75c240439a31d2f4304b97705ed2d9e9e38ca552c5f03dced mips32--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs/mips32--uclibc--bleeding-edge-2020.08-1.sha256 sha256 4e0e1bf24e74746775992efd8b8bafbf5b6dd56bfdd1421b2207e1ea23ba2eb3 mips32--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs/mips32--uclibc--stable-2020.08-1.sha256 sha256 4c1da37d131f4e66b07536707c6d1be3de29719f228346d4c860c4b3cb4fef31 mips32--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32el/tarballs/mips32el--glibc--bleeding-edge-2020.08-1.sha256 sha256 617c845261bb0a00571c68f250c5a369e60a09164dd3316ab8126c327d911c4b mips32el--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32el/tarballs/mips32el--glibc--stable-2020.08-1.sha256 sha256 87875c25075b3850526a54c5e828ce489355d0d50107c262539ee5f577f38d6d mips32el--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32el/tarballs/mips32el--musl--bleeding-edge-2020.08-1.sha256 sha256 4c81898f2e484c1e1e7d7ac1ae80e0aca5619ef01190df37e41ca459a147e682 mips32el--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32el/tarballs/mips32el--musl--stable-2020.08-1.sha256 sha256 02155c88e0bf92f63105803767ce457790bfd920297ef326c9920853b5a3fe20 mips32el--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32el/tarballs/mips32el--uclibc--bleeding-edge-2020.08-1.sha256 sha256 024b0e27fd0c9792bad1944e052768e03173b133079d7c95bf30435d05620152 mips32el--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32el/tarballs/mips32el--uclibc--stable-2020.08-1.sha256 sha256 8398010ea3dbd43ee99b6be0e3340db44b32228bf063a9c13bf43a359e3d1f6e mips32el--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs/mips32r5el--glibc--bleeding-edge-2020.08-1.sha256 sha256 f000e8a78a24671a6f87909156e0c2a7403ab5864001c1388faf60190f8594c8 mips32r5el--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs/mips32r5el--glibc--stable-2020.08-1.sha256 sha256 a52a115b852afce04732aa9460c58f30fbfdb17601f9bf32ea97a77d1a073a53 mips32r5el--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs/mips32r5el--musl--bleeding-edge-2020.08-1.sha256 sha256 2620edf1045c61ddaf12f979a86719fa83b6598eb10f358a379e52462bb734ba mips32r5el--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs/mips32r5el--musl--stable-2020.08-1.sha256 sha256 0e03a5f2a7d8ba739f3ef53538d73c33bfc55f45522d4515688ebcb58005e5a1 mips32r5el--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs/mips32r5el--uclibc--bleeding-edge-2020.08-1.sha256 sha256 585e252971553b52833d3970f709196707d908a84a5e1be8360e3019d6bb0da9 mips32r5el--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs/mips32r5el--uclibc--stable-2020.08-1.sha256 sha256 7ffccb1f86e7b0f1dd0d87f455ff5f2619a58724850b0b9f106b6545d4de8b3f mips32r5el--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r6el/tarballs/mips32r6el--glibc--bleeding-edge-2020.08-1.sha256 sha256 d6376aeb2b243a58a98c415f2ecf131e14ccdce849a76c0f01902ca4b02fc0ba mips32r6el--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r6el/tarballs/mips32r6el--glibc--stable-2020.08-1.sha256 sha256 8640635116e26e51d57b6d5dc1e3213528f742f0cf97cd326af4f5d8e17a63f2 mips32r6el--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r6el/tarballs/mips32r6el--musl--bleeding-edge-2020.08-1.sha256 sha256 2647d34cb990bdab77efbcc6b4e3d5b1fd02c5032837b7a64bc52cef64aba4ec mips32r6el--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r6el/tarballs/mips32r6el--musl--stable-2020.08-1.sha256 sha256 24b1adfa2eb31f49ae5b4fce9ee9fcb30205ca6f29e423f77bd851070baaa255 mips32r6el--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r6el/tarballs/mips32r6el--uclibc--bleeding-edge-2020.08-1.sha256 sha256 18dee7e9de84f6e7d6c9d083decdd465ab08979ebd661d82efbe5dc93f11dcb0 mips32r6el--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r6el/tarballs/mips32r6el--uclibc--stable-2020.08-1.sha256 sha256 28999f7474a84c3ec36b504c47cf671fc6e82d9b38580a0e2ebe495850ada097 mips32r6el--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64-n32/tarballs/mips64-n32--glibc--bleeding-edge-2020.08-1.sha256 sha256 b5d90c06c894d841677da5f81e395113d22a79c53f934e12151128660dd08e76 mips64-n32--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64-n32/tarballs/mips64-n32--glibc--stable-2020.08-1.sha256 sha256 7ed7a81f1a086e47ddb79d0bdc7142a6b7349feea20b05393be133cc4cf1fff5 mips64-n32--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64-n32/tarballs/mips64-n32--musl--bleeding-edge-2020.08-1.sha256 sha256 937ce7ffda61c93489862122fe6dbfd53445afbdbfb615c06805b05497f336fb mips64-n32--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64-n32/tarballs/mips64-n32--musl--stable-2020.08-1.sha256 sha256 2a2acf732498b0acb22f815e1ce7c3ca8124719131febe95c723b1cbab76d947 mips64-n32--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64-n32/tarballs/mips64-n32--uclibc--bleeding-edge-2020.08-1.sha256 sha256 16ac2a957757f56e0414a638bb3bd526b2d1c3055dd7e036dcdec4bf950f0d1b mips64-n32--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64-n32/tarballs/mips64-n32--uclibc--stable-2020.08-1.sha256 sha256 10d9fb894e5e548e47e2930139117de9549ea49b971ca9fad12f56ef6d188b77 mips64-n32--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64el-n32/tarballs/mips64el-n32--glibc--bleeding-edge-2020.08-1.sha256 sha256 7de65f68b14350670adbd0249562d69e75f7fc65b749284303c32f88112cb6b4 mips64el-n32--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64el-n32/tarballs/mips64el-n32--glibc--stable-2020.08-1.sha256 sha256 a6eea19d94a7a953cac84670dcac3adb42dd3eb8950b1f7ca0f1ef37abc7e33f mips64el-n32--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64el-n32/tarballs/mips64el-n32--musl--bleeding-edge-2020.08-1.sha256 sha256 7cff57dd6d0ee7778c5b764a388bf9e997ba2349da5274b8d8598173030618be mips64el-n32--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64el-n32/tarballs/mips64el-n32--musl--stable-2020.08-1.sha256 sha256 3c42d88c84689703d5b1380f4cf5ad20872611d08ce5fac1a4375bfec80a6b27 mips64el-n32--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64el-n32/tarballs/mips64el-n32--uclibc--bleeding-edge-2020.08-1.sha256 sha256 5553a979238f6a25c4e965e18cfbebe36018041ba46968174063328c25e485fc mips64el-n32--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64el-n32/tarballs/mips64el-n32--uclibc--stable-2020.08-1.sha256 sha256 80e8fa6cca6e0267dad5376bca79ce7457b8d345d43a0d409e4820a791965db9 mips64el-n32--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64r6el-n32/tarballs/mips64r6el-n32--glibc--bleeding-edge-2020.08-1.sha256 sha256 0f09da21d6069642064f767a25e64c89caad80660ea184345652301c41a30ac9 mips64r6el-n32--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64r6el-n32/tarballs/mips64r6el-n32--glibc--stable-2020.08-1.sha256 sha256 7100d3862983c5fb8237386ff4148f6e550e6b299c8b7946a349dedef60f75c9 mips64r6el-n32--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64r6el-n32/tarballs/mips64r6el-n32--musl--bleeding-edge-2020.08-1.sha256 sha256 a692687149e59fdb7ad780cfc51e4a7307ed599433280369fe9e43c63453e4ec mips64r6el-n32--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64r6el-n32/tarballs/mips64r6el-n32--musl--stable-2020.08-1.sha256 sha256 e7a35e063fcd748df6f347e5aa97d081f4422480fb02ce6925c4c351c9aca318 mips64r6el-n32--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64r6el-n32/tarballs/mips64r6el-n32--uclibc--bleeding-edge-2020.08-1.sha256 sha256 69d4287cb32413e054684db9545e6898c09cb90c86a0dce8bb9999498eb798ab mips64r6el-n32--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/mips64r6el-n32/tarballs/mips64r6el-n32--uclibc--stable-2020.08-1.sha256 sha256 4d9eb8900b99871e02ae17b823341189dce3aa592ee82864c73ca3164948aaae mips64r6el-n32--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/nios2/tarballs/nios2--glibc--bleeding-edge-2020.08-1.sha256 sha256 b3c7c24e08759af3ea13fc39e8bddb52e4528a05d4aee3c2f75733e067d12edc nios2--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/nios2/tarballs/nios2--glibc--stable-2020.08-1.sha256 sha256 a46d5ff90e3623d159f3b5be53493e13a2e78ebb733a1ccb68e829d6e28aa129 nios2--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/openrisc/tarballs/openrisc--musl--bleeding-edge-2020.08-1.sha256 sha256 382ec04511d51f99028b6c568c909e4e010bcfe1d4a4c1ff6f10c7c07c24b3b2 openrisc--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/openrisc/tarballs/openrisc--musl--stable-2020.08-1.sha256 sha256 697ef122917022f400003931bc6da75fe07bb5234ef8186cbe027e560f04a168 openrisc--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/openrisc/tarballs/openrisc--uclibc--bleeding-edge-2020.08-1.sha256 sha256 e45d02c9272c909db1c92b6403ed1e0813889ef0c22b2f5166d2675f62d3f20f openrisc--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/openrisc/tarballs/openrisc--uclibc--stable-2020.08-1.sha256 sha256 62c60f9f99828a01f3a16060ceba74b8e2603a8ca3585649434a66f721ecdf75 openrisc--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp/tarballs/powerpc-440fp--glibc--bleeding-edge-2020.08-2.sha256 sha256 7b7c2f66ccd3d44cd8a829b5879277be9cfb17f34a26d5055b29a6bab40ff9df powerpc-440fp--glibc--bleeding-edge-2020.08-2.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp/tarballs/powerpc-440fp--glibc--stable-2020.08-2.sha256 sha256 ae7b3d06090dfcf54b1e3b4bd4fda9ae5aaaf34aba9118820e6e9d8f1b70c0c4 powerpc-440fp--glibc--stable-2020.08-2.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp/tarballs/powerpc-440fp--musl--bleeding-edge-2020.08-2.sha256 sha256 a6def102659538e3e5838bf4267cd33486d795db753a7109b5e413499ef5df89 powerpc-440fp--musl--bleeding-edge-2020.08-2.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp/tarballs/powerpc-440fp--musl--stable-2020.08-2.sha256 sha256 76de0310078633ff34654c8c54d7e80a609c58521a7f2a8041ae4a574889d38a powerpc-440fp--musl--stable-2020.08-2.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp/tarballs/powerpc-440fp--uclibc--bleeding-edge-2020.08-2.sha256 sha256 abbe38fc92a71d568c08452f99fe3470e5ded9a666c6829d9104fcf06b984503 powerpc-440fp--uclibc--bleeding-edge-2020.08-2.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp/tarballs/powerpc-440fp--uclibc--stable-2020.08-2.sha256 sha256 d4346ce563ddfbd4946b2dfbc766cafebbf4b09488dc8b398ab8bb242bac9268 powerpc-440fp--uclibc--stable-2020.08-2.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/tarballs/powerpc-e300c3--glibc--bleeding-edge-2020.08-1.sha256 sha256 fe4b9817f060d84118fff5b7d855eacac472975f2adfececb641d2999f94a7ea powerpc-e300c3--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/tarballs/powerpc-e300c3--glibc--stable-2020.08-1.sha256 sha256 77d215d650850af65c3ac1792dcf100322f3dfea78ba174118197ec0c8a49807 powerpc-e300c3--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/tarballs/powerpc-e300c3--musl--bleeding-edge-2020.08-1.sha256 sha256 4aa2b5c3c2c3263edfdf95284f0774aed8a47446b7a362ee44dc24d83db06896 powerpc-e300c3--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/tarballs/powerpc-e300c3--musl--stable-2020.08-1.sha256 sha256 129d9aab59e9edfc68739b612f2ee4abce5679830250fbcd50b89ec3d2c865c5 powerpc-e300c3--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/tarballs/powerpc-e300c3--uclibc--bleeding-edge-2020.08-1.sha256 sha256 54e6960edd6419bb268b651ffedc24af73a72ad9dd145c1849a6e0fb6f997b15 powerpc-e300c3--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/tarballs/powerpc-e300c3--uclibc--stable-2020.08-1.sha256 sha256 1057b488623a80037558a1439555b1a15b25a4d7f42dc49d0169349592ad5b3e powerpc-e300c3--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500mc/tarballs/powerpc-e500mc--glibc--bleeding-edge-2020.08-1.sha256 sha256 8cab4fbb645be782a6eaeb7b6afd75fda4c0dc8ca9a4095b0be9b6eeb29a9759 powerpc-e500mc--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500mc/tarballs/powerpc-e500mc--glibc--stable-2020.08-1.sha256 sha256 5bb9f6b10b9d2d1a90a1a96a477b90eea32a269c1afccd89284a38a63d7f1c82 powerpc-e500mc--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500mc/tarballs/powerpc-e500mc--musl--bleeding-edge-2020.08-1.sha256 sha256 36636df56a04e44ddb5bba2e0a30b1f3986618399381278cdb2be207a25825c0 powerpc-e500mc--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500mc/tarballs/powerpc-e500mc--musl--stable-2020.08-1.sha256 sha256 7f924fc3cc3c9070ea1c9d270fea71715bd52beac14649d8a00416dfde1b897b powerpc-e500mc--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500mc/tarballs/powerpc-e500mc--uclibc--bleeding-edge-2020.08-1.sha256 sha256 262a2bddd29d6c24cbc32a873e78895499732624923195a5e7ffe16b487dc461 powerpc-e500mc--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500mc/tarballs/powerpc-e500mc--uclibc--stable-2020.08-1.sha256 sha256 e817af2d5a0fba654e7766dcad89380e278af9feb35c2d0591a0f8d893defa48 powerpc-e500mc--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e5500/tarballs/powerpc64-e5500--glibc--bleeding-edge-2020.08-1.sha256 sha256 418b79f8313ac4ff29cb6c2d639848eb74a0245666142a307374513cffd472e6 powerpc64-e5500--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e5500/tarballs/powerpc64-e5500--glibc--stable-2020.08-1.sha256 sha256 a51ddba944394de41b2f7c001772bb68074175d65a0976749da5289a5e705f23 powerpc64-e5500--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e6500/tarballs/powerpc64-e6500--glibc--bleeding-edge-2020.08-1.sha256 sha256 c537c2ef618f767762295806658bb0add514453068ea72ce2bd6e6e805e64af5 powerpc64-e6500--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e6500/tarballs/powerpc64-e6500--glibc--stable-2020.08-1.sha256 sha256 1d8aaf1492f69496b01fc930fa928ffd3144d1465c7c954128ed31ce576306b6 powerpc64-e6500--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e6500/tarballs/powerpc64-e6500--musl--bleeding-edge-2020.08-1.sha256 sha256 c46c7595384929211ce2f54655ceb4eb1d32054923892cd5d10913be364fa6f2 powerpc64-e6500--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e6500/tarballs/powerpc64-e6500--musl--stable-2020.08-1.sha256 sha256 a295073db591ed16eec90caf5fdef62ccff5550166d36496ab24aa993bdb2a42 powerpc64-e6500--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-power8/tarballs/powerpc64-power8--glibc--bleeding-edge-2020.08-1.sha256 sha256 cbe65abf36fa807176a01488751a2e45800791534400b803c024e4c29357862c powerpc64-power8--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-power8/tarballs/powerpc64-power8--glibc--stable-2020.08-1.sha256 sha256 a670ec95dbfb53a812e9f21aec2ad880a3349125f19219b9a0d139a7d5b9e83b powerpc64-power8--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-power8/tarballs/powerpc64-power8--musl--bleeding-edge-2020.08-1.sha256 sha256 1f5b3da078534f9e493f29956d3a1f31ad0539d26b8f83e55c271b6671021928 powerpc64-power8--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-power8/tarballs/powerpc64-power8--musl--stable-2020.08-1.sha256 sha256 12043ab87cd4ae0c4339cddcb3eb017eaae406bbb332bf3edebfd7f70ecd0a31 powerpc64-power8--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64le-power8/tarballs/powerpc64le-power8--glibc--bleeding-edge-2020.08-1.sha256 sha256 14e3ff4afbf363decb2c0ddc33b75e41aad9748a65a445cc176215853d0d6185 powerpc64le-power8--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64le-power8/tarballs/powerpc64le-power8--glibc--stable-2020.08-1.sha256 sha256 342442f0773cdf5091443ab06ecf9c3d3c05cf8e2464b82a54707bec90d2a358 powerpc64le-power8--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64le-power8/tarballs/powerpc64le-power8--musl--bleeding-edge-2020.08-1.sha256 sha256 fab5f4bc6d219f53f8b15e0d49aea27cdbac9e08e05946577440329c003fc216 powerpc64le-power8--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64le-power8/tarballs/powerpc64le-power8--musl--stable-2020.08-1.sha256 sha256 47d184beca271c67bdb544fac87cb2126ea2b397d076a79dfaf9667e999fbccd powerpc64le-power8--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/riscv32-ilp32d/tarballs/riscv32-ilp32d--glibc--bleeding-edge-2020.08-1.sha256 sha256 18a47b0c221137f40720df08e9bbdc0bcb6e68cde3a30906681e4dec83eb7547 riscv32-ilp32d--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/riscv64/tarballs/riscv64--glibc--bleeding-edge-2020.08-1.sha256 sha256 09818eccb414359b1df87ec347d94e7bfccc45f8a5eafe8791fddf8110fcc581 riscv64--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/riscv64/tarballs/riscv64--musl--bleeding-edge-2020.08-1.sha256 sha256 2af03e220070eacf6eaf63ccb7442ca5af805caf96ae52fb3eb15370988f12cf riscv64--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4/tarballs/sh-sh4--glibc--bleeding-edge-2020.08-1.sha256 sha256 277e78c999c2cba42b25660bbbe0d105a80277c986e0807cfa16a6595af6ce9e sh-sh4--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4/tarballs/sh-sh4--glibc--stable-2020.08-1.sha256 sha256 256064f35b2759c71ac1bb6c9fe74a7c7c62f070746cfeb35ff0ecb40a91c2b4 sh-sh4--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4/tarballs/sh-sh4--musl--bleeding-edge-2020.08-1.sha256 sha256 34bf211ea0456ef86bbe914e0755f18681531a015e33b8c26b97ca68e29a3ed5 sh-sh4--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4/tarballs/sh-sh4--musl--stable-2020.08-1.sha256 sha256 d335189728a6bebd5d180c58c6dabd049500d57ae60fcc8fc51ba5aafafb21d3 sh-sh4--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4/tarballs/sh-sh4--uclibc--bleeding-edge-2020.08-1.sha256 sha256 89e42b9e7bc3f67660656690899b2fad4015af5c9084dad6624315c39b486d76 sh-sh4--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4/tarballs/sh-sh4--uclibc--stable-2020.08-1.sha256 sha256 13a60cd5653c24491748388284080d5b8da649a63090c0d308c3a3b069b04f21 sh-sh4--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4aeb/tarballs/sh-sh4aeb--glibc--bleeding-edge-2020.08-1.sha256 sha256 fe063dd95c71ab41145412faf5e4c2a1386efdda5d944ecc83121fb9b4e213f2 sh-sh4aeb--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4aeb/tarballs/sh-sh4aeb--glibc--stable-2020.08-1.sha256 sha256 054e669a3165aff35539d3fb7cbde2650c79e5aa88a90a844488ba175a645a07 sh-sh4aeb--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4aeb/tarballs/sh-sh4aeb--musl--bleeding-edge-2020.08-1.sha256 sha256 aa2c560ed4cf4dac8a8803b3fccf846472a226a1a22833c1cbe0d7fd347af3a7 sh-sh4aeb--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4aeb/tarballs/sh-sh4aeb--musl--stable-2020.08-1.sha256 sha256 89e7fa5792ed1c35bd57c65935888beafce9a81f84c7d73508b1582539415a3b sh-sh4aeb--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sparc64/tarballs/sparc64--glibc--bleeding-edge-2020.08-1.sha256 sha256 abba04fcfa11a1eedbf5f5ff38d69d793d394f08998f8374723358b3123cc113 sparc64--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sparc64/tarballs/sparc64--glibc--stable-2020.08-1.sha256 sha256 57184f6edfba03ae9c098ad0bab6635475bb45a874982ad11c0b91bf6043dbc4 sparc64--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sparcv8/tarballs/sparcv8--uclibc--bleeding-edge-2020.08-1.sha256 sha256 210defc0781683a240bac25295ff612d6b6c875c7d938d11512f8ec9472245bc sparcv8--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/sparcv8/tarballs/sparcv8--uclibc--stable-2020.08-1.sha256 sha256 14d508510bf0ed813f6436718486cce7fc6ebfb29b46eea5e52a474b2d5eaa00 sparcv8--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs/x86-64-core-i7--glibc--bleeding-edge-2020.08-1.sha256 sha256 77935109bbd1bdb84813a588b807052823033ed9094131fdd56f558023a3de08 x86-64-core-i7--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs/x86-64-core-i7--glibc--stable-2020.08-1.sha256 sha256 3dd408e857f5c8e579748995477f2783fcf5ad0aac89719ea3c5c75446dfa63c x86-64-core-i7--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs/x86-64-core-i7--musl--bleeding-edge-2020.08-1.sha256 sha256 5d2d13d56a76db30ec28a11a3d6219fe407c3d1b9bbcd4a7255a783da4fcdfcb x86-64-core-i7--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs/x86-64-core-i7--musl--stable-2020.08-1.sha256 sha256 26ea3cc16c294663b64123c15a95d53f00419ef0f6bcdef489865835c6022650 x86-64-core-i7--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs/x86-64-core-i7--uclibc--bleeding-edge-2020.08-1.sha256 sha256 d1ff16cde93c727b4b39844877f93d865d6945185e71dba4b6c07d2d725e2576 x86-64-core-i7--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs/x86-64-core-i7--uclibc--stable-2020.08-1.sha256 sha256 0fdcb93add6ff697b536198da76b4e93bd81efd67793d6640fd6bc1b216abc00 x86-64-core-i7--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs/x86-core2--glibc--bleeding-edge-2020.08-1.sha256 sha256 10e7b362008fc3057e9eb42a3fab5f0dc430e05b285dc4f2ec3367d5f36a3094 x86-core2--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs/x86-core2--glibc--stable-2020.08-1.sha256 sha256 18bbabb672df24bbc2646d94d23c47d16a6c0d8342d910bf441021fad4a82ce3 x86-core2--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs/x86-core2--musl--bleeding-edge-2020.08-1.sha256 sha256 81edcbd69f2fd479d9a25597d0515d42c9c891e1a534d947e87a2e9a3dc67924 x86-core2--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs/x86-core2--musl--stable-2020.08-1.sha256 sha256 9e23de3364e1aaec50945c70089273a025ff44815ce4632324d1950e7ba07e9a x86-core2--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs/x86-core2--uclibc--bleeding-edge-2020.08-1.sha256 sha256 717b6c103e8e50202a45277eef8f9b41b978b17a0110cacddd52a01b7eba3039 x86-core2--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs/x86-core2--uclibc--stable-2020.08-1.sha256 sha256 e23812719fa1027fa0e2a161216cf97ff14bf3bcc19bb400281060a40e762a0d x86-core2--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs/x86-i686--glibc--bleeding-edge-2020.08-1.sha256 sha256 9e8c83479dc91e516ee66fe21ff8693afa380cfdb3192c5c1351430a035ab92a x86-i686--glibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs/x86-i686--glibc--stable-2020.08-1.sha256 sha256 77362d37279636371a42b09bab4f8f1a51a786ed7ec316221786b279389c8008 x86-i686--glibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs/x86-i686--musl--bleeding-edge-2020.08-1.sha256 sha256 ccb6896f02be3444d6cabff0966a0b6f866ebc6d32b483031541626c2fc748fe x86-i686--musl--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs/x86-i686--musl--stable-2020.08-1.sha256 sha256 bbbf8b7946e65f35366cb0371910fe3e95e6399c4e6a9cac8b0a4674bcadc36b x86-i686--musl--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs/x86-i686--uclibc--bleeding-edge-2020.08-1.sha256 sha256 bd57d5cd7958ba7469d74abdf93db1993042f30c774ec3d1fceff57d522a489c x86-i686--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs/x86-i686--uclibc--stable-2020.08-1.sha256 sha256 139c31c25f9834137bbbb4aadc9d78def2819d2c1b9e89dd2300b11fb4879bb4 x86-i686--uclibc--stable-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/xtensa-lx60/tarballs/xtensa-lx60--uclibc--bleeding-edge-2020.08-1.sha256 sha256 46801fc1ae89f380c1b6e1bf8ea723f9d7b1590eea3a2d1218a0307cd4325bc8 xtensa-lx60--uclibc--bleeding-edge-2020.08-1.tar.bz2 # From https://toolchains.bootlin.com/downloads/releases/toolchains/xtensa-lx60/tarballs/xtensa-lx60--uclibc--stable-2020.08-1.sha256 sha256 b4b28d855594290c853292c9cce43bba573d4187ecb47d78f25411a7f4300d49 xtensa-lx60--uclibc--stable-2020.08-1.tar.bz2 ================================================ FILE: toolchain/toolchain-external/toolchain-external-bootlin/toolchain-external-bootlin.mk ================================================ ################################################################################ # # toolchain-external-bootlin # ################################################################################ # This file was auto-generated by support/scripts/gen-bootlin-toolchains # Do not edit ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = aarch64--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = aarch64--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = aarch64--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = aarch64--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = aarch64--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = aarch64--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = aarch64be--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64be/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = aarch64be--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64be/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = aarch64be--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64be/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = aarch64be--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64be/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_750D_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = arcle-750d--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/arcle-750d/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_750D_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = arcle-750d--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/arcle-750d/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = arcle-hs38--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/arcle-hs38/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = arcle-hs38--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/arcle-hs38/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = arcle-hs38--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/arcle-hs38/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = arcle-hs38--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/arcle-hs38/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv5-eabi--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv5-eabi--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv5-eabi--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv5-eabi--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv5-eabi--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv5-eabi--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv6-eabihf--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv6-eabihf/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv6-eabihf--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv6-eabihf/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv6-eabihf--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv6-eabihf/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv6-eabihf--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv6-eabihf/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv6-eabihf--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv6-eabihf/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv6-eabihf--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv6-eabihf/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv7-eabihf--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv7-eabihf--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv7-eabihf--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv7-eabihf--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv7-eabihf--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv7-eabihf--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7M_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv7m--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv7m/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7M_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = armv7m--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/armv7m/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_68XXX_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = m68k-68xxx--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/m68k-68xxx/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_68XXX_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = m68k-68xxx--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/m68k-68xxx/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_COLDFIRE_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = m68k-coldfire--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/m68k-coldfire/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_COLDFIRE_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = m68k-coldfire--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/m68k-coldfire/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = microblazebe--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/microblazebe/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = microblazebe--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/microblazebe/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = microblazebe--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/microblazebe/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = microblazebe--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/microblazebe/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = microblazebe--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/microblazebe/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = microblazebe--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/microblazebe/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = microblazeel--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/microblazeel/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = microblazeel--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/microblazeel/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = microblazeel--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/microblazeel/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = microblazeel--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/microblazeel/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = microblazeel--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/microblazeel/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = microblazeel--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/microblazeel/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32el--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32el--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32el--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32el--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32el--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32el--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32r5el--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32r5el--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32r5el--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32r5el--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32r5el--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32r5el--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32r6el--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r6el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32r6el--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r6el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32r6el--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r6el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32r6el--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r6el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32r6el--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r6el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips32r6el--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r6el/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64-n32--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64-n32--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64-n32--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64-n32--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64-n32--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64-n32--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64el-n32--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64el-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64el-n32--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64el-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64el-n32--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64el-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64el-n32--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64el-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64el-n32--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64el-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64el-n32--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64el-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64r6el-n32--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64r6el-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64r6el-n32--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64r6el-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64r6el-n32--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64r6el-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64r6el-n32--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64r6el-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64r6el-n32--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64r6el-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = mips64r6el-n32--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/mips64r6el-n32/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_NIOS2_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = nios2--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/nios2/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_NIOS2_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = nios2--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/nios2/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = openrisc--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/openrisc/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = openrisc--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/openrisc/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = openrisc--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/openrisc/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = openrisc--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/openrisc/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-2 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-440fp--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-2 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-440fp--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-2 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-440fp--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-2 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-440fp--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-2 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-440fp--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-2 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-440fp--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-e300c3--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-e300c3--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-e300c3--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-e300c3--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-e300c3--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-e300c3--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-e500mc--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500mc/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-e500mc--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500mc/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-e500mc--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500mc/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-e500mc--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500mc/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-e500mc--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500mc/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc-e500mc--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500mc/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E5500_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64-e5500--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e5500/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E5500_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64-e5500--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e5500/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64-e6500--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e6500/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64-e6500--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e6500/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64-e6500--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e6500/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64-e6500--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e6500/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64-power8--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-power8/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64-power8--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-power8/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64-power8--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-power8/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64-power8--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-power8/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64le-power8--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64le-power8/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64le-power8--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64le-power8/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64le-power8--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64le-power8/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = powerpc64le-power8--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64le-power8/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV32_ILP32D_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = riscv32-ilp32d--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/riscv32-ilp32d/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = riscv64--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/riscv64/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = riscv64--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/riscv64/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sh-sh4--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sh-sh4--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sh-sh4--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sh-sh4--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sh-sh4--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sh-sh4--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sh-sh4aeb--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4aeb/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sh-sh4aeb--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4aeb/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sh-sh4aeb--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4aeb/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sh-sh4aeb--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sh-sh4aeb/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARC64_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sparc64--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sparc64/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARC64_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sparc64--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sparc64/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARCV8_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sparcv8--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sparcv8/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARCV8_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = sparcv8--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/sparcv8/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-64-core-i7--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-64-core-i7--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-64-core-i7--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-64-core-i7--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-64-core-i7--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-64-core-i7--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-64-core-i7/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-core2--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-core2--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-core2--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-core2--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-core2--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-core2--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-core2/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_GLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-i686--glibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_GLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-i686--glibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_MUSL_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-i686--musl--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_MUSL_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-i686--musl--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-i686--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = x86-i686--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_XTENSA_LX60_UCLIBC_BLEEDING_EDGE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = xtensa-lx60--uclibc--bleeding-edge-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/xtensa-lx60/tarballs endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_XTENSA_LX60_UCLIBC_STABLE),y) TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION = 2020.08-1 TOOLCHAIN_EXTERNAL_BOOTLIN_SOURCE = xtensa-lx60--uclibc--stable-$(TOOLCHAIN_EXTERNAL_BOOTLIN_VERSION).tar.bz2 TOOLCHAIN_EXTERNAL_BOOTLIN_SITE = https://toolchains.bootlin.com/downloads/releases/toolchains/xtensa-lx60/tarballs endif $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS bool "Codescape IMG GNU Linux Toolchain 2018.09" depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_7 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on BR2_MIPS_CPU_MIPS32R6 || (BR2_MIPS_CPU_MIPS64R6 && !BR2_MIPS_SOFT_FLOAT) select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7 select BR2_TOOLCHAIN_GCC_AT_LEAST_6 select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_OPENMP help Codescape IMG GNU Linux Toolchain 2018.09 for the MIPS architecture, from MIPS Tech LLC. It uses gcc 6.3.0, binutils 2.28.51, glibc 2.20, gdb 7.9.1 and kernel headers 4.7. It has support for the following variants: - MIPS32r6 - Big-Endian, Hard-Float, 2008 NaN, o32 ABI Select 'MIPS (big endian)' Target Architecture Select 'mips 32r6' Target Architecture Variant 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 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' - 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 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 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 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' ================================================ FILE: toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "mips-img-linux-gnu" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-codescape-img-mips" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.hash ================================================ # Codescape toolchains from MIPS Tech LLC # From: https://codescape.mips.com/components/toolchain/nanomips/2018.09-02/downloads.html sha256 ac035f3b6a8767522977963d8e1490520d58bccca7956f4503a1eefff6492b71 Codescape.GNU.Tools.Package.2018.09-02.for.MIPS.IMG.Linux.CentOS-6.x86.tar.gz sha256 09280f4fcbb993607905bf9a43bf5f3db2beed85726f0675b8453e19a9ddc429 Codescape.GNU.Tools.Package.2018.09-02.for.MIPS.IMG.Linux.CentOS-6.x86_64.tar.gz ================================================ FILE: toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.mk ================================================ ################################################################################ # # toolchain-external-codescape-img-mips # ################################################################################ TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION = 2018.09-02 TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SITE = https://codescape.mips.com/components/toolchain/$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION) TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_STRIP_COMPONENTS = 2 ifeq ($(HOSTARCH),x86) TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION).for.MIPS.IMG.Linux.CentOS-6.x86.tar.gz else TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION).for.MIPS.IMG.Linux.CentOS-6.x86_64.tar.gz endif # 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_MIPS_OABI32),y) TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_BIN_DIR_SUFFIX = o32 else ifeq ($(BR2_MIPS_NABI32),y) TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_BIN_DIR_SUFFIX = n32 else ifeq ($(BR2_MIPS_NABI64),y) TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_BIN_DIR_SUFFIX = n64 endif define TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_STAGING_FIXUPS rmdir $(STAGING_DIR)/usr/bin $(STAGING_DIR)/usr/sbin ln -sf bin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/bin ln -sf sbin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/sbin endef # 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_IMG_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 TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_POST_INSTALL_STAGING_HOOKS += \ TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_STAGING_FIXUPS \ TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SYMLINK $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS bool "Codescape MTI GNU Linux Toolchain 2018.09" depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_7 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on BR2_MIPS_CPU_MIPS32R2 || (BR2_MIPS_CPU_MIPS64R2 && !BR2_MIPS_SOFT_FLOAT) || \ BR2_MIPS_CPU_MIPS32R5 || (BR2_MIPS_CPU_MIPS64R5 && !BR2_MIPS_SOFT_FLOAT) select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7 select BR2_TOOLCHAIN_GCC_AT_LEAST_6 select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_OPENMP help Codescape MTI GNU Linux Toolchain 2018.09 for the MIPS architecture, from MIPS Tech LLC. It uses gcc 6.3.0, binutils 2.28.51, glibc 2.20, gdb 7.9.1 and kernel headers 4.7. It has support for the following variants: - MIPS32r2 - Big-Endian, Hard-Float, Legacy NaN, o32 ABI Select 'MIPS (big endian)' Target Architecture Select 'mips 32r2' Target Architecture Variant 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 - 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 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' - 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 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 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 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' ================================================ FILE: toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "mips-mti-linux-gnu" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-codescape-mti-mips" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.hash ================================================ # Codescape toolchains from MIPS Tech LLC # From: https://codescape.mips.com/components/toolchain/nanomips/2018.09-02/downloads.html sha256 c883a404fd7ea5718e2249a530802e223381f2be52265f88e9b1ce7035c232f3 Codescape.GNU.Tools.Package.2018.09-02.for.MIPS.MTI.Linux.CentOS-6.x86.tar.gz sha256 d6310a970b0a8a19ad8e0a2b3ead8c38ee90d0e284a9b2511200ce447f460d2c Codescape.GNU.Tools.Package.2018.09-02.for.MIPS.MTI.Linux.CentOS-6.x86_64.tar.gz ================================================ FILE: toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.mk ================================================ ################################################################################ # # toolchain-external-codescape-mti-mips # ################################################################################ TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION = 2018.09-02 TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SITE = https://codescape.mips.com/components/toolchain/$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION) TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_STRIP_COMPONENTS = 2 ifeq ($(HOSTARCH),x86) TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION).for.MIPS.MTI.Linux.CentOS-6.x86.tar.gz else TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION).for.MIPS.MTI.Linux.CentOS-6.x86_64.tar.gz endif # 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_MIPS_OABI32),y) TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_BIN_DIR_SUFFIX = o32 else ifeq ($(BR2_MIPS_NABI32),y) TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_BIN_DIR_SUFFIX = n32 else ifeq ($(BR2_MIPS_NABI64),y) TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_BIN_DIR_SUFFIX = n64 endif define TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_STAGING_FIXUPS rmdir $(STAGING_DIR)/usr/bin $(STAGING_DIR)/usr/sbin ln -sf bin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/bin ln -sf sbin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/sbin endef # 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_MTI_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 TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_POST_INSTALL_STAGING_HOOKS += \ TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_STAGING_FIXUPS \ TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SYMLINK $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 bool "CodeSourcery AArch64 2014.11" depends on BR2_aarch64 depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_5 # a57/a53 and a72/a53 appeared in gcc-6 or were broken before depends on !BR2_cortex_a57_a53 && !BR2_cortex_a72_a53 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_16 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 help Sourcery CodeBench toolchain for the AArch64 architecture, 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. ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "aarch64-amd-linux-gnu" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-codesourcery-aarch64" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.hash ================================================ # Locally calculated 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 ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.mk ================================================ ################################################################################ # # toolchain-external-codesourcery-aarch64 # ################################################################################ TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_SITE = https://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_PREFIX) TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_VERSION = 2014.11-95 TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_SOURCE = aarch64-amd-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX)-i686-pc-linux-gnu.tar.bz2 TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_ACTUAL_SOURCE_TARBALL = aarch64-amd-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX).src.tar.bz2 $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM bool "Sourcery CodeBench ARM 2014.05" depends on BR2_arm depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on BR2_ARM_EABI # Unsupported ARM cores depends on !BR2_cortex_a12 && !BR2_cortex_a17 && !BR2_ARM_CPU_ARMV8A 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_3_13 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 help Sourcery CodeBench toolchain for the ARM architecture, from Mentor Graphics. It uses gcc 4.8.3, binutils 2.24.51, glibc 2.18 and gdb 7.7.50, kernel headers 3.13. It has support for the following variants: - ARMv5TE, little endian, soft-float, glibc Select ARM926T, ARM10T, XScale or another ARMv5 core Select BR2_SOFT_FLOAT - ARMv4T, little endian, soft-float, glibc Select ARM720T, ARM920T, ARM922T or another ARMv4 core Select BR2_SOFT_FLOAT - ARMv7-A, Thumb 2, little endian, soft-float, glibc Select Cortex-A8, Cortex-A9 or another ARMv7-A core Select BR2_SOFT_FLOAT Set BR2_TARGET_OPTIMIZATION to -mthumb comment "Sourcery CodeBench toolchains available for the EABI ABI" depends on BR2_arm depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 depends on !BR2_ARM_EABI depends on !BR2_STATIC_LIBS ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "arm-none-linux-gnueabi" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-codesourcery-arm" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.hash ================================================ # Locally calculated 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 ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.mk ================================================ ################################################################################ # # toolchain-external-codesourcery-arm # ################################################################################ TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_VERSION = 2014.05-29 TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_SITE = https://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_PREFIX) TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_SOURCE = arm-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX)-i686-pc-linux-gnu.tar.bz2 TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_ACTUAL_SOURCE_TARBALL = arm-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX).src.tar.bz2 $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS bool "Sourcery CodeBench MIPS 2016.05" depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el depends on BR2_MIPS_CPU_MIPS32R2 || BR2_MIPS_CPU_MIPS64R2 depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_6 # Unsupported MIPS cores depends on !BR2_mips_interaptiv 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_TOOLCHAIN_HAS_OPENMP select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS 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.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 Disable BR2_SOFT_FLOAT Set BR2_TARGET_OPTIMIZATION to -mnan=2008 - MIPS32r2 - Big-Endian, O32 Select MIPS (big endian) core Disable BR2_SOFT_FLOAT - MIPS32r2 - Big-Endian, O32, MIPS16 Select MIPS (big endian) core Disable BR2_SOFT_FLOAT Set BR2_TARGET_OPTIMIZATION to -mips16 - MIPS32r2 - Big-Endian, Soft-Float, O32 Select MIPS (big endian) core Select BR2_SOFT_FLOAT - MIPS32r2 - Big-Endian, Soft-Float, O32, MIPS16 Select MIPS (big endian) core Select BR2_SOFT_FLOAT Set BR2_TARGET_OPTIMIZATION to -mips16 - MIPS32r2 - Little-Endian, 2008 NaN, O32 Select MIPS (little endian) core Disable BR2_SOFT_FLOAT Set BR2_TARGET_OPTIMIZATION to -mnan=2008 - MIPS32r2 - Little-Endian, O32 Select MIPS (little endian) core Disable BR2_SOFT_FLOAT - MIPS32r2 - Little-Endian, O32, MIPS16 Select MIPS (little endian) core Disable BR2_SOFT_FLOAT Set BR2_TARGET_OPTIMIZATION to -mips16 - MIPS32r2 - Little-Endian, Soft-Float, O32 Select MIPS (little endian) core Select BR2_SOFT_FLOAT - MIPS32r2 - Little-Endian, Soft-Float, O32, MIPS16 Select MIPS (little endian) core Select BR2_SOFT_FLOAT Set BR2_TARGET_OPTIMIZATION to -mips16 - MIPS32r2 - Little-Endian, Soft-Float, O32, microMIPS Select MIPS (little endian) core Select BR2_SOFT_FLOAT Set BR2_TARGET_OPTIMIZATION to -mmicromips - MIPS32r2 - uClibc, Big-Endian, 2008 NaN, O32 Not usable in Buildroot yet. - MIPS32r2 - uClibc, Big-Endian, O32 Not usable in Buildroot yet. - MIPS32r2 - uClibc, Big-Endian, Soft-Float, O32 Not usable in Buildroot yet. - MIPS32r2 - uClibc, Little-Endian, 2008 NaN, O32 Not usable in Buildroot yet. - MIPS32r2 - uClibc, Little-Endian, O32 Not usable in Buildroot yet. - MIPS32r2 - uClibc, Little-Endian, Soft-Float, O32 Not usable in Buildroot yet. - MIPS64r2 - Big-Endian, N64 Select MIPS64 (big endian) core Select the n64 ABI Disable BR2_SOFT_FLOAT - MIPS64r2 - Big-Endian, Soft-Float, N64 Select MIPS64 (big endian) core Select the n64 ABI Select BR2_SOFT_FLOAT - MIPS64r2 - Little-Endian, N64 Select MIPS64 (little endian) core Select the n64 ABI Disable BR2_SOFT_FLOAT - MIPS64r2 - Little-Endian, Soft-Float, N64 Select MIPS64 (little endian) core Select the n64 ABI Select BR2_SOFT_FLOAT comment "Sourcery CodeBench toolchains are only available for MIPS/MIPS64 o32 and n64" depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_6 depends on BR2_MIPS_NABI32 depends on !BR2_STATIC_LIBS ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "mips-linux-gnu" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-codesourcery-mips" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.hash ================================================ # Locally computed 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 ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.mk ================================================ ################################################################################ # # toolchain-external-codesourcery-mips # ################################################################################ TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_VERSION = 2016.05-8 TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_SITE = https://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_PREFIX) TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_SOURCE = mips-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX)-i686-pc-linux-gnu.tar.bz2 TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_ACTUAL_SOURCE_TARBALL = mips-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX).src.tar.bz2 $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII bool "Sourcery CodeBench Nios-II 2018.05" depends on BR2_nios2 depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_8 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_15 select BR2_TOOLCHAIN_GCC_AT_LEAST_7 help Sourcery CodeBench toolchain for the Nios-II architecture, from Mentor Graphics. It uses gcc 7.3, binutils 2.28, glibc 2.27, gdb 8.0.1 and kernel headers 4.15.5. ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "nios2-linux-gnu" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-codesourcery-niosII" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.hash ================================================ # From https://sourcery.mentor.com/GNUToolchain/release3374 md5 4f536b3b9b4e00f483e82e304c0a27ae sourceryg++-2018.05-5-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 md5 be42ab83da2e8db7b73dc890c2549570 sourceryg++-2018.05-5-nios2-linux-gnu.src.tar.bz2 # Locally calculated sha256 c19afb432b5b23f8d5d639831d3a423a3ea3c9cc62e0015020d20ea2eb36dd1b sourceryg++-2018.05-5-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 sha256 d73a6364106dd62352711f932d3be8e97fdaaa548995678b5d38d9f21e22437a sourceryg++-2018.05-5-nios2-linux-gnu.src.tar.bz2 ================================================ FILE: toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.mk ================================================ ################################################################################ # # toolchain-external-codesourcery-niosII # ################################################################################ TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_VERSION = 2018.05-5 TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_SITE = https://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_PREFIX) TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_SOURCE = sourceryg++-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX)-i686-pc-linux-gnu.tar.bz2 TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_ACTUAL_SOURCE_TARBALL = sourceryg++-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX).src.tar.bz2 $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-custom/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_CUSTOM bool "Custom toolchain" help Use this option to use a custom toolchain pre-installed on your system. ================================================ FILE: toolchain/toolchain-external/toolchain-external-custom/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_CUSTOM config BR2_TOOLCHAIN_EXTERNAL_PREFIX default BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-custom" config BR2_TOOLCHAIN_EXTERNAL_URL string "Toolchain URL" depends on BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD help URL of the custom toolchain tarball to download and install. config BR2_TOOLCHAIN_EXTERNAL_REL_BIN_PATH string "Toolchain relative binary path" default "bin" depends on BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD help Path to where the binaries (e.g. the compiler) can be found, relative to the downloaded toolchain root directory. The default is "bin" and is correct for most toolchains. config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX string "Toolchain prefix" default "$(ARCH)-linux" choice bool "External toolchain gcc version" help Set to the gcc version that is used by your external toolchain. config BR2_TOOLCHAIN_EXTERNAL_GCC_11 bool "11.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_11 config BR2_TOOLCHAIN_EXTERNAL_GCC_10 bool "10.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_10 config BR2_TOOLCHAIN_EXTERNAL_GCC_9 bool "9.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_9 config BR2_TOOLCHAIN_EXTERNAL_GCC_8 bool "8.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_8 config BR2_TOOLCHAIN_EXTERNAL_GCC_7 bool "7.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_7 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 config BR2_TOOLCHAIN_EXTERNAL_GCC_4_9 bool "4.9.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 config BR2_TOOLCHAIN_EXTERNAL_GCC_4_8 bool "4.8.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 config BR2_TOOLCHAIN_EXTERNAL_GCC_4_7 bool "4.7.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 config BR2_TOOLCHAIN_EXTERNAL_GCC_4_6 bool "4.6.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 config BR2_TOOLCHAIN_EXTERNAL_GCC_4_5 bool "4.5.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 config BR2_TOOLCHAIN_EXTERNAL_GCC_4_4 bool "4.4.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 config BR2_TOOLCHAIN_EXTERNAL_GCC_4_3 bool "4.3.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3 config BR2_TOOLCHAIN_EXTERNAL_GCC_OLD bool "older" help Use this option if your GCC version is older than any of the above. Note that the Buildroot community doesn't do any testing with such old toolchains. Some packages may fail to build in surprising ways, or the generated root filesystem may not work at all. Use such old toolchains at your own risk. endchoice comment "GCC older than 4.8 is not tested by Buildroot. Use at your own risk." depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 choice bool "External toolchain kernel headers series" default BR2_TOOLCHAIN_EXTERNAL_HEADERS_REALLY_OLD help Set to the kernel headers version that were used to build this external toolchain. This is used to hide/show some packages that have strict requirements on the version of kernel headers. If unsure what version your toolchain is using, you can look at the value of LINUX_VERSION_CODE in linux/version.h in your toolchain. The Linux version is M.m.p, with: M = ( LINUX_VERSION_CODE >> 16 ) & 0xFF m = ( LINUX_VERSION_CODE >> 8 ) & 0xFF p = ( LINUX_VERSION_CODE >> 0 ) & 0xFF If your toolchain uses headers newer than the latest version in the choice, then select the latest version. config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_15 bool "5.15.x or later" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_14 bool "5.14.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_13 bool "5.13.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_13 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_12 bool "5.12.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_12 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_11 bool "5.11" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_10 bool "5.10.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_9 bool "5.9.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_8 bool "5.8.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_7 bool "5.7.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_6 bool "5.6.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_5 bool "5.5.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_4 bool "5.4.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_3 bool "5.3.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_2 bool "5.2.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_1 bool "5.1.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_0 bool "5.0.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_20 bool "4.20.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_19 bool "4.19.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_18 bool "4.18.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_17 bool "4.17.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_16 bool "4.16.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_15 bool "4.15.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_14 bool "4.14.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_13 bool "4.13.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_12 bool "4.12.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_11 bool "4.11.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10 bool "4.10.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9 bool "4.9.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_8 bool "4.8.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8 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 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_3 bool "4.3.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_2 bool "4.2.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1 bool "4.1.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_0 bool "4.0.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_19 bool "3.19.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_18 bool "3.18.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_17 bool "3.17.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_16 bool "3.16.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_15 bool "3.15.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_14 bool "3.14.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_13 bool "3.13.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_12 bool "3.12.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_11 bool "3.11.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10 bool "3.10.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_9 bool "3.9.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_8 bool "3.8.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_7 bool "3.7.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_6 bool "3.6.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_5 bool "3.5.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_4 bool "3.4.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_3 bool "3.3.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_2 bool "3.2.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_1 bool "3.1.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_0 bool "3.0.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_REALLY_OLD bool "2.6.x" endchoice comment "Kernel headers older than 3.13 is not tested by Buildroot. Use at your own risk." depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13 choice prompt "External toolchain C library" default BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC bool "uClibc/uClibc-ng" select BR2_TOOLCHAIN_EXTERNAL_UCLIBC help Select this option if your external toolchain uses the uClibc (available from http://www.uclibc.org/) or uClibc-ng (available from http://www.uclibc-ng.org) C library. config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC bool "glibc/eglibc" depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC help Select this option if your external toolchain uses the GNU C library (available from https://www.gnu.org/software/libc/) or its variant the eglibc library (http://www.eglibc.org/). Note: eglibc is a variant of glibc that (among other things) can be configured to exclude some of its features. Using a toolchain with eglibc configured to exclude key features may cause build failures to some packages. comment "(e)glibc only available with shared lib support" depends on BR2_STATIC_LIBS config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL bool "musl (experimental)" select BR2_TOOLCHAIN_EXTERNAL_MUSL help Select this option if your external toolchain uses the 'musl' C library, available from http://www.musl-libc.org/. endchoice if BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC config BR2_TOOLCHAIN_EXTERNAL_WCHAR bool "Toolchain has WCHAR support?" select BR2_USE_WCHAR help Select this option if your external toolchain supports WCHAR. If you don't know, leave the default value, Buildroot will tell you if it's correct or not. config BR2_TOOLCHAIN_EXTERNAL_LOCALE bool "Toolchain has locale support?" select BR2_TOOLCHAIN_EXTERNAL_WCHAR select BR2_ENABLE_LOCALE help Select this option if your external toolchain has locale support. If you don't know, leave the default value, Buildroot will tell you if it's correct or not. config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS bool "Toolchain has threads support?" default y select BR2_TOOLCHAIN_HAS_THREADS help Select this option if your external toolchain has thread support. If you don't know, leave the default value, Buildroot will tell you if it's correct or not. if BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG bool "Toolchain has threads debugging support?" default y select BR2_TOOLCHAIN_HAS_THREADS_DEBUG help Select this option if your external toolchain has thread debugging support. If you don't know, leave the default value, Buildroot will tell you if it's correct or not. config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL bool "Toolchain has NPTL threads support?" default y select BR2_TOOLCHAIN_HAS_THREADS_NPTL help Select this option if your external toolchain uses the NPTL (Native Posix Thread Library) implementation of Posix threads. If you don't know, leave the default value, Buildroot will tell you if it's correct or not. endif # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC config BR2_TOOLCHAIN_EXTERNAL_HAS_SSP bool "Toolchain has SSP support?" default y if BR2_TOOLCHAIN_EXTERNAL_GLIBC default y if BR2_TOOLCHAIN_EXTERNAL_MUSL select BR2_TOOLCHAIN_HAS_SSP help Select 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. config BR2_TOOLCHAIN_EXTERNAL_HAS_SSP_STRONG bool "Toolchain has SSP strong support?" default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 && BR2_TOOLCHAIN_EXTERNAL_GLIBC default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 && BR2_TOOLCHAIN_EXTERNAL_MUSL depends on BR2_TOOLCHAIN_EXTERNAL_HAS_SSP select BR2_TOOLCHAIN_HAS_SSP_STRONG help Select this option if your external toolchain has strong Stack Smashing Protection support enabled. If you don't know, leave the default value, Buildroot will tell you if it's correct or not. config BR2_TOOLCHAIN_EXTERNAL_INET_RPC bool "Toolchain has RPC support?" default y if BR2_TOOLCHAIN_EXTERNAL_GLIBC depends on !BR2_TOOLCHAIN_EXTERNAL_MUSL select BR2_TOOLCHAIN_HAS_NATIVE_RPC help Select this option if your external toolchain supports RPC. If you don't know, leave the default value, Buildroot will tell you if it's correct or not. config BR2_TOOLCHAIN_EXTERNAL_CXX bool "Toolchain has C++ support?" select BR2_INSTALL_LIBSTDCPP help Select this option if your external toolchain has C++ support. If you don't know, leave the default value, Buildroot will tell you if it's correct or not. config BR2_TOOLCHAIN_EXTERNAL_DLANG bool "Toolchain has D support?" select BR2_TOOLCHAIN_HAS_DLANG help Select this option if your external toolchain has D support. 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_EXTERNAL_OPENMP bool "Toolchain has OpenMP support?" select BR2_TOOLCHAIN_HAS_OPENMP help Select this option if your external toolchain has OpenMP support. If you don't know, leave the default value, Buildroot will tell you if it's correct or not. endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-custom/toolchain-external-custom.mk ================================================ ################################################################################ # # toolchain-external-custom # ################################################################################ TOOLCHAIN_EXTERNAL_CUSTOM_SITE = $(patsubst %/,%,$(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))) TOOLCHAIN_EXTERNAL_CUSTOM_SOURCE = $(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL))) ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CUSTOM),y) # We can't check hashes for custom downloaded toolchains BR_NO_CHECK_HASH_FOR += $(TOOLCHAIN_EXTERNAL_SOURCE) endif $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64 bool "Linaro AArch64 2018.05" 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_TOOLCHAIN_HAS_NATIVE_RPC select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10 select BR2_TOOLCHAIN_GCC_AT_LEAST_7 select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_OPENMP help Toolchain for the AArch64 architecture, from http://www.linaro.org/engineering/armv8/ ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64 config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "aarch64-linux-gnu" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-linaro-aarch64" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.hash ================================================ # Locally calculated sha256 466b801a60491ae1e2ce9952e0615cf04cf611596c6ffd5bfe8a89ef5be47e03 gcc-linaro-7.3.1-2018.05-i686_aarch64-linux-gnu.tar.xz sha256 73eed74e593e2267504efbcf3678918bb22409ab7afa3dc7c135d2c6790c2345 gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.mk ================================================ ################################################################################ # # toolchain-external-linaro-aarch64 # ################################################################################ TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION = 2018.05 TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SITE = https://releases.linaro.org/components/toolchain/binaries/7.3-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)/aarch64-linux-gnu ifeq ($(HOSTARCH),x86) TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)-i686_aarch64-linux-gnu.tar.xz else TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)-x86_64_aarch64-linux-gnu.tar.xz endif $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE bool "Linaro AArch64 BE 2018.05" depends on BR2_aarch64_be 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_TOOLCHAIN_HAS_NATIVE_RPC select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10 select BR2_TOOLCHAIN_GCC_AT_LEAST_7 select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_OPENMP help Toolchain for the AArch64 Big Endian architecture, from http://www.linaro.org/engineering/armv8/ ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "aarch64_be-linux-gnu" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-linaro-aarch64-be" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/toolchain-external-linaro-aarch64-be.hash ================================================ # Locally calculated sha256 412da19c1d1bff0f3172bc19fd2c024207d8d716dbe7a8dad4bf9e3d6b71d149 gcc-linaro-7.3.1-2018.05-i686_aarch64_be-linux-gnu.tar.xz sha256 277c1483f8dbd6007c945ffeb706fa1ba1da8ec1c397cf5cf1e29c25081426e5 gcc-linaro-7.3.1-2018.05-x86_64_aarch64_be-linux-gnu.tar.xz ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/toolchain-external-linaro-aarch64-be.mk ================================================ ################################################################################ # # toolchain-external-linaro-aarch64-be # ################################################################################ TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_VERSION = 2018.05 TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_SITE = https://releases.linaro.org/components/toolchain/binaries/7.3-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_VERSION)/aarch64_be-linux-gnu ifeq ($(HOSTARCH),x86) TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_VERSION)-i686_aarch64_be-linux-gnu.tar.xz else TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_VERSION)-x86_64_aarch64_be-linux-gnu.tar.xz endif $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in ================================================ comment "Linaro toolchains available for Cortex-A + EABIhf" depends on BR2_arm depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF depends on !BR2_STATIC_LIBS config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM bool "Linaro ARM 2018.05" depends on BR2_arm depends on BR2_ARM_CPU_ARMV7A || BR2_ARM_CPU_ARMV8A depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" 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_10 select BR2_TOOLCHAIN_GCC_AT_LEAST_7 select BR2_TOOLCHAIN_HAS_FORTRAN select BR2_TOOLCHAIN_HAS_OPENMP help Linaro toolchain for the ARM architecture. It uses Linaro GCC 2018.05 (based on gcc 7.3.1), Linaro GDB 2018.05 (based on GDB 8.1), glibc 2.25, Binutils 2018.05 (based on 2.28). 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 convention, and uses the VFPv3-D16 FPU instructions. ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "arm-linux-gnueabihf" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-linaro-arm" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash ================================================ # Locally calculated sha256 0613b5be14eb7d50a772bbd72069c428558e6e53fa5fce7201d75a13a475ffff gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf.tar.xz sha256 7248bf105d0d468887a9b8a7120bb281ac8ad0223d9cb3d00dc7c2d498485d91 gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.mk ================================================ ################################################################################ # # toolchain-external-linaro-arm # ################################################################################ TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION = 2018.05 TOOLCHAIN_EXTERNAL_LINARO_ARM_SITE = https://releases.linaro.org/components/toolchain/binaries/7.3-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)/arm-linux-gnueabihf ifeq ($(HOSTARCH),x86) TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-i686_arm-linux-gnueabihf.tar.xz else TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-x86_64_arm-linux-gnueabihf.tar.xz endif $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in ================================================ comment "Linaro toolchains available for Cortex-A + EABIhf" depends on BR2_armeb depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF depends on !BR2_STATIC_LIBS config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB bool "Linaro armeb 2018.05" depends on BR2_armeb depends on BR2_ARM_CPU_ARMV7A || BR2_ARM_CPU_ARMV8A depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" 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_TOOLCHAIN_HAS_OPENMP select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10 select BR2_TOOLCHAIN_GCC_AT_LEAST_7 help Linaro toolchain for the ARM big endian architecture. It uses Linaro GCC 2018.05 (based on gcc 7.3.1), Linaro GDB 2018.05 (based on GDB 8.1), glibc 2.25, Binutils 2018.05 (based on 2.28). 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 convention, and uses the VFPv3-D16 FPU instructions. ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "armeb-linux-gnueabihf" config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-linaro-armeb" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.hash ================================================ # Locally calculated sha256 60bf9924a0c039c94deb85cb9b129d0f28b28eadbb1fb3f7e2e227679cc43fc9 gcc-linaro-7.3.1-2018.05-i686_armeb-linux-gnueabihf.tar.xz sha256 c1bbd598b78458d6b7ea1c971fddf736c00d57890c7131fdafd4e789289c42f9 gcc-linaro-7.3.1-2018.05-x86_64_armeb-linux-gnueabihf.tar.xz ================================================ FILE: toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.mk ================================================ ################################################################################ # # toolchain-external-linaro-armeb # ################################################################################ TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION = 2018.05 TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SITE = https://releases.linaro.org/components/toolchain/binaries/7.3-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)/armeb-linux-gnueabihf ifeq ($(HOSTARCH),x86) TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)-i686_armeb-linux-gnueabihf.tar.xz else TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)-x86_64_armeb-linux-gnueabihf.tar.xz endif $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in ================================================ config BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC bool "Synopsys ARC 2019.09 toolchain" depends on BR2_arc depends on BR2_HOSTARCH = "x86_64" select BR2_TOOLCHAIN_EXTERNAL_UCLIBC select BR2_INSTALL_LIBSTDCPP select BR2_ENABLE_LOCALE select BR2_USE_WCHAR select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 select BR2_TOOLCHAIN_GCC_AT_LEAST_9 help Toolchain for the ARC cores, from https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases ================================================ FILE: toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options ================================================ if BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "arc-linux" if BR2_arcle default "arceb-linux" if BR2_arceb config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL default "toolchain-external-synopsys-arc" endif ================================================ FILE: toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.hash ================================================ # From https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2019.09-release sha256 f7cbf68ef251943db7baf63535e0ec98dafbdf5d925017b4e1d4fc64d9b38a26 arc_gnu_2019.09_prebuilt_uclibc_le_arc700_linux_install.tar.gz sha256 ac09f0a21f9d50146a5e542f4a6abc93e5a1dcb0a1372cb5c3ba86bbefaaec7d arc_gnu_2019.09_prebuilt_uclibc_be_arc700_linux_install.tar.gz sha256 245ca49fe8ea2456617541b18bb96e52e6c0dc619f00e293fcaad519fc436c35 arc_gnu_2019.09_prebuilt_uclibc_le_archs_linux_install.tar.gz sha256 6f039a0158c03af398ada31fae96009e47f0d7b7f7d52e12eb419492fc3f27e7 arc_gnu_2019.09_prebuilt_uclibc_be_archs_linux_install.tar.gz ================================================ FILE: toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.mk ================================================ ################################################################################ # # toolchain-external-synopsys-arc # ################################################################################ TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_VERSION = 2019.09 TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_SITE = https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/download/arc-$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_VERSION)-release ifeq ($(BR2_arc750d)$(BR2_arc770d),y) TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_CORE = arc700 else TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_CORE = archs endif ifeq ($(BR2_arcle),y) TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_ENDIANESS = le else TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_ENDIANESS = be endif TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_SOURCE = arc_gnu_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_VERSION)_prebuilt_uclibc_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_ENDIANESS)_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_CORE)_linux_install.tar.gz $(eval $(toolchain-external-package)) ================================================ FILE: toolchain/toolchain-external/toolchain-external.mk ================================================ ################################################################################ # # toolchain-external # ################################################################################ TOOLCHAIN_EXTERNAL_ADD_TOOLCHAIN_DEPENDENCY = NO # 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 += musl-compat-headers endif $(eval $(virtual-package)) # Ensure the external-toolchain package has a prefix defined. # This comes after the virtual-package definition, which checks the provider. ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y) ifeq ($(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX)),) $(error No prefix selected for external toolchain package $(BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL). Configuration error) endif endif include $(sort $(wildcard toolchain/toolchain-external/*/*.mk)) ================================================ FILE: toolchain/toolchain-wrapper.c ================================================ /** * Buildroot wrapper for toolchains. This simply executes the real toolchain * with a number of arguments (sysroot/arch/..) hardcoded, to ensure the * toolchain uses the correct configuration. * The hardcoded path arguments are defined relative to the actual location * of the binary. * * (C) 2011 Peter Korsgaard * (C) 2011 Daniel Nyström * (C) 2012 Arnout Vandecappelle (Essensium/Mind) * (C) 2013 Spenser Gilliland * * 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. */ #define _GNU_SOURCE #include #include #include #include #include #include #include #include #ifdef BR_CCACHE static char ccache_path[PATH_MAX]; #endif static char path[PATH_MAX]; static char sysroot[PATH_MAX]; /* As would be defined by gcc: * https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html * sizeof() on string literals includes the terminating \0. */ static char _time_[sizeof("-D__TIME__=\"HH:MM:SS\"")]; static char _date_[sizeof("-D__DATE__=\"MMM DD YYYY\"")]; /** * GCC errors out with certain combinations of arguments (examples are * -mfloat-abi={hard|soft} and -m{little|big}-endian), so we have to ensure * that we only pass the predefined one to the real compiler if the inverse * option isn't in the argument list. * This specifies the worst case number of extra arguments we might pass * Currently, we may have: * -mfloat-abi= * -march= * -mcpu= * -D__TIME__= * -D__DATE__= * -Wno-builtin-macro-redefined * -Wl,-z,now * -Wl,-z,relro * -fPIE * -pie */ #define EXCLUSIVE_ARGS 10 static char *predef_args[] = { #ifdef BR_CCACHE ccache_path, #endif path, "--sysroot", sysroot, #ifdef BR_ABI "-mabi=" BR_ABI, #endif #ifdef BR_NAN "-mnan=" BR_NAN, #endif #ifdef BR_FPU "-mfpu=" BR_FPU, #endif #ifdef BR_SOFTFLOAT "-msoft-float", #endif /* BR_SOFTFLOAT */ #ifdef BR_MODE "-m" BR_MODE, #endif #ifdef BR_64 "-m64", #endif #ifdef BR_OMIT_LOCK_PREFIX "-Wa,-momit-lock-prefix=yes", #endif #ifdef BR_NO_FUSED_MADD "-mno-fused-madd", #endif #ifdef BR_FP_CONTRACT_OFF "-ffp-contract=off", #endif #ifdef BR_BINFMT_FLAT "-Wl,-elf2flt", #endif #ifdef BR_MIPS_TARGET_LITTLE_ENDIAN "-EL", #endif #if defined(BR_MIPS_TARGET_BIG_ENDIAN) || defined(BR_ARC_TARGET_BIG_ENDIAN) "-EB", #endif #ifdef BR_ADDITIONAL_CFLAGS BR_ADDITIONAL_CFLAGS #endif }; /* A {string,length} tuple, to avoid computing strlen() on constants. * - str must be a \0-terminated string * - len does not account for the terminating '\0' */ struct str_len_s { const char *str; size_t len; }; /* Define a {string,length} tuple. Takes an unquoted constant string as * parameter. sizeof() on a string literal includes the terminating \0, * but we don't want to count it. */ #define STR_LEN(s) { #s, sizeof(#s)-1 } /* List of paths considered unsafe for cross-compilation. * * An unsafe path is one that points to a directory with libraries or * headers for the build machine, which are not suitable for the target. */ static const struct str_len_s unsafe_paths[] = { STR_LEN(/lib), STR_LEN(/usr/include), STR_LEN(/usr/lib), STR_LEN(/usr/local/include), STR_LEN(/usr/local/lib), STR_LEN(/usr/X11R6/include), STR_LEN(/usr/X11R6/lib), { NULL, 0 }, }; /* Unsafe options are options that specify a potentialy unsafe path, * that will be checked by check_unsafe_path(), below. */ static const struct str_len_s unsafe_opts[] = { STR_LEN(-I), STR_LEN(-idirafter), STR_LEN(-iquote), STR_LEN(-isystem), STR_LEN(-L), { NULL, 0 }, }; /* Check if path is unsafe for cross-compilation. Unsafe paths are those * pointing to the standard native include or library paths. * * We print the arguments leading to the failure. For some options, gcc * accepts the path to be concatenated to the argument (e.g. -I/foo/bar) * or separated (e.g. -I /foo/bar). In the first case, we need only print * the argument as it already contains the path (arg_has_path), while in * the second case we need to print both (!arg_has_path). * * If paranoid, exit in error instead of just printing a warning. */ static void check_unsafe_path(const char *arg, const char *path, int paranoid, int arg_has_path) { const struct str_len_s *p; for (p=unsafe_paths; p->str; p++) { if (strncmp(path, p->str, p->len)) continue; fprintf(stderr, "%s: %s: unsafe header/library path used in cross-compilation: '%s%s%s'\n", program_invocation_short_name, paranoid ? "ERROR" : "WARNING", arg, arg_has_path ? "" : "' '", /* close single-quote, space, open single-quote */ arg_has_path ? "" : path); /* so that arg and path are properly quoted. */ if (paranoid) exit(1); } } #ifdef BR_NEED_SOURCE_DATE_EPOCH /* Returns false if SOURCE_DATE_EPOCH was not defined in the environment. * * Returns true if SOURCE_DATE_EPOCH is in the environment and represent * a valid timestamp, in which case the timestamp is formatted into the * global variables _date_ and _time_. * * Aborts if SOURCE_DATE_EPOCH was set in the environment but did not * contain a valid timestamp. * * Valid values are defined in the spec: * https://reproducible-builds.org/specs/source-date-epoch/ * but we further restrict them to be positive or null. */ bool parse_source_date_epoch_from_env(void) { char *epoch_env, *endptr; time_t epoch; struct tm epoch_tm; if ((epoch_env = getenv("SOURCE_DATE_EPOCH")) == NULL) return false; errno = 0; epoch = (time_t) strtoll(epoch_env, &endptr, 10); /* We just need to test if it is incorrect, but we do not * care why it is incorrect. */ if ((errno != 0) || !*epoch_env || *endptr || (epoch < 0)) { fprintf(stderr, "%s: invalid SOURCE_DATE_EPOCH='%s'\n", program_invocation_short_name, epoch_env); exit(1); } tzset(); /* For localtime_r(), below. */ if (localtime_r(&epoch, &epoch_tm) == NULL) { fprintf(stderr, "%s: cannot parse SOURCE_DATE_EPOCH=%s\n", program_invocation_short_name, getenv("SOURCE_DATE_EPOCH")); exit(1); } if (!strftime(_time_, sizeof(_time_), "-D__TIME__=\"%T\"", &epoch_tm)) { fprintf(stderr, "%s: cannot set time from SOURCE_DATE_EPOCH=%s\n", program_invocation_short_name, getenv("SOURCE_DATE_EPOCH")); exit(1); } if (!strftime(_date_, sizeof(_date_), "-D__DATE__=\"%b %e %Y\"", &epoch_tm)) { fprintf(stderr, "%s: cannot set date from SOURCE_DATE_EPOCH=%s\n", program_invocation_short_name, getenv("SOURCE_DATE_EPOCH")); exit(1); } return true; } #else bool parse_source_date_epoch_from_env(void) { /* The compiler is recent enough to handle SOURCE_DATE_EPOCH itself * so we do not need to do anything here. */ return false; } #endif int main(int argc, char **argv) { char **args, **cur, **exec_args; char *relbasedir, *absbasedir; char *progpath = argv[0]; char *basename; char *env_debug; char *paranoid_wrapper; int paranoid; int ret, i, count = 0, debug = 0, found_shared = 0; /* Debug the wrapper to see arguments it was called with. * If environment variable BR2_DEBUG_WRAPPER is: * unset, empty, or 0: do not trace * set to 1 : trace all arguments on a single line * set to 2 : trace one argument per line */ if ((env_debug = getenv("BR2_DEBUG_WRAPPER"))) { debug = atoi(env_debug); } if (debug > 0) { fprintf(stderr, "Toolchain wrapper was called with:"); for (i = 0; i < argc; i++) fprintf(stderr, "%s'%s'", (debug == 2) ? "\n " : " ", argv[i]); fprintf(stderr, "\n"); } /* Calculate the relative paths */ basename = strrchr(progpath, '/'); if (basename) { *basename = '\0'; basename++; relbasedir = malloc(strlen(progpath) + 7); if (relbasedir == NULL) { perror(__FILE__ ": malloc"); return 2; } sprintf(relbasedir, "%s/..", argv[0]); absbasedir = realpath(relbasedir, NULL); } else { basename = progpath; absbasedir = malloc(PATH_MAX + 1); ret = readlink("/proc/self/exe", absbasedir, PATH_MAX); if (ret < 0) { perror(__FILE__ ": readlink"); return 2; } absbasedir[ret] = '\0'; for (i = ret; i > 0; i--) { if (absbasedir[i] == '/') { absbasedir[i] = '\0'; if (++count == 2) break; } } } if (absbasedir == NULL) { perror(__FILE__ ": realpath"); return 2; } /* Fill in the relative paths */ #ifdef BR_CROSS_PATH_REL ret = snprintf(path, sizeof(path), "%s/" BR_CROSS_PATH_REL "/%s" BR_CROSS_PATH_SUFFIX, absbasedir, basename); #elif defined(BR_CROSS_PATH_ABS) ret = snprintf(path, sizeof(path), BR_CROSS_PATH_ABS "/%s" BR_CROSS_PATH_SUFFIX, basename); #else ret = snprintf(path, sizeof(path), "%s/bin/%s" BR_CROSS_PATH_SUFFIX, absbasedir, basename); #endif if (ret >= sizeof(path)) { perror(__FILE__ ": overflow"); return 3; } #ifdef BR_CCACHE ret = snprintf(ccache_path, sizeof(ccache_path), "%s/bin/ccache", absbasedir); if (ret >= sizeof(ccache_path)) { perror(__FILE__ ": overflow"); return 3; } #endif ret = snprintf(sysroot, sizeof(sysroot), "%s/" BR_SYSROOT, absbasedir); if (ret >= sizeof(sysroot)) { perror(__FILE__ ": overflow"); return 3; } cur = args = malloc(sizeof(predef_args) + (sizeof(char *) * (argc + EXCLUSIVE_ARGS))); if (args == NULL) { perror(__FILE__ ": malloc"); return 2; } /* start with predefined args */ memcpy(cur, predef_args, sizeof(predef_args)); cur += sizeof(predef_args) / sizeof(predef_args[0]); #ifdef BR_FLOAT_ABI /* add float abi if not overridden in args */ for (i = 1; i < argc; i++) { if (!strncmp(argv[i], "-mfloat-abi=", strlen("-mfloat-abi=")) || !strcmp(argv[i], "-msoft-float") || !strcmp(argv[i], "-mhard-float")) break; } if (i == argc) *cur++ = "-mfloat-abi=" BR_FLOAT_ABI; #endif #ifdef BR_FP32_MODE /* add fp32 mode if soft-float is not args or hard-float overrides soft-float */ int add_fp32_mode = 1; for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-msoft-float")) add_fp32_mode = 0; else if (!strcmp(argv[i], "-mhard-float")) add_fp32_mode = 1; } if (add_fp32_mode == 1) *cur++ = "-mfp" BR_FP32_MODE; #endif #if defined(BR_ARCH) || \ defined(BR_CPU) /* Add our -march/cpu flags, but only if none of * -march/mtune/mcpu are already specified on the commandline */ for (i = 1; i < argc; i++) { if (!strncmp(argv[i], "-march=", strlen("-march=")) || !strncmp(argv[i], "-mtune=", strlen("-mtune=")) || !strncmp(argv[i], "-mcpu=", strlen("-mcpu=" ))) break; } if (i == argc) { #ifdef BR_ARCH *cur++ = "-march=" BR_ARCH; #endif #ifdef BR_CPU *cur++ = "-mcpu=" BR_CPU; #endif } #endif /* ARCH || CPU */ if (parse_source_date_epoch_from_env()) { *cur++ = _time_; *cur++ = _date_; /* This has existed since gcc-4.4.0. */ *cur++ = "-Wno-builtin-macro-redefined"; } #ifdef BR2_PIC_PIE /* Patterned after Fedora/Gentoo hardening approaches. * https://fedoraproject.org/wiki/Changes/Harden_All_Packages * https://wiki.gentoo.org/wiki/Hardened/Toolchain#Position_Independent_Executables_.28PIEs.29 * * A few checks are added to allow disabling of PIE * 1) -fno-pie and -no-pie are used by other distros to disable PIE in * cases where the compiler enables it by default. The logic below * maintains that behavior. * Ref: https://wiki.ubuntu.com/SecurityTeam/PIE * 2) A check for -fno-PIE has been used in older Linux Kernel builds * in a similar way to -fno-pie or -no-pie. * 3) A check is added for Kernel and U-boot defines * (-D__KERNEL__ and -D__UBOOT__). */ for (i = 1; i < argc; i++) { /* Apply all incompatible link flag and disable checks first */ if (!strcmp(argv[i], "-r") || !strcmp(argv[i], "-Wl,-r") || !strcmp(argv[i], "-static") || !strcmp(argv[i], "-D__KERNEL__") || !strcmp(argv[i], "-D__UBOOT__") || !strcmp(argv[i], "-fno-pie") || !strcmp(argv[i], "-fno-PIE") || !strcmp(argv[i], "-no-pie")) break; /* Record that shared was present which disables -pie but don't * break out of loop as a check needs to occur that possibly * still allows -fPIE to be set */ if (!strcmp(argv[i], "-shared")) found_shared = 1; } if (i == argc) { /* Compile and link condition checking have been kept split * between these two loops, as there maybe already are valid * compile flags set for position independence. In that case * the wrapper just adds the -pie for link. */ for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-fpie") || !strcmp(argv[i], "-fPIE") || !strcmp(argv[i], "-fpic") || !strcmp(argv[i], "-fPIC")) break; } /* Both args below can be set at compile/link time * and are ignored correctly when not used */ if (i == argc) *cur++ = "-fPIE"; if (!found_shared) *cur++ = "-pie"; } #endif /* Are we building the Linux Kernel or U-Boot? */ for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-D__KERNEL__") || !strcmp(argv[i], "-D__UBOOT__")) break; } if (i == argc) { /* https://wiki.gentoo.org/wiki/Hardened/Toolchain#Mark_Read-Only_Appropriate_Sections */ #ifdef BR2_RELRO_PARTIAL *cur++ = "-Wl,-z,relro"; #endif #ifdef BR2_RELRO_FULL *cur++ = "-Wl,-z,now"; *cur++ = "-Wl,-z,relro"; #endif } paranoid_wrapper = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH"); if (paranoid_wrapper && strlen(paranoid_wrapper) > 0) paranoid = 1; else paranoid = 0; /* Check for unsafe library and header paths */ for (i = 1; i < argc; i++) { const struct str_len_s *opt; for (opt=unsafe_opts; opt->str; opt++ ) { /* Skip any non-unsafe option. */ if (strncmp(argv[i], opt->str, opt->len)) continue; /* Handle both cases: * - path is a separate argument, * - path is concatenated with option. */ if (argv[i][opt->len] == '\0') { i++; if (i == argc) break; check_unsafe_path(argv[i-1], argv[i], paranoid, 0); } else check_unsafe_path(argv[i], argv[i] + opt->len, paranoid, 1); } } /* append forward args */ memcpy(cur, &argv[1], sizeof(char *) * (argc - 1)); cur += argc - 1; /* finish with NULL termination */ *cur = NULL; exec_args = args; #ifdef BR_CCACHE if (getenv("BR_NO_CCACHE")) /* Skip the ccache call */ exec_args++; #endif /* Debug the wrapper to see final arguments passed to the real compiler. */ if (debug > 0) { fprintf(stderr, "Toolchain wrapper executing:"); #ifdef BR_CCACHE_HASH fprintf(stderr, "%sCCACHE_COMPILERCHECK='string:" BR_CCACHE_HASH "'", (debug == 2) ? "\n " : " "); #endif #ifdef BR_CCACHE_BASEDIR fprintf(stderr, "%sCCACHE_BASEDIR='" BR_CCACHE_BASEDIR "'", (debug == 2) ? "\n " : " "); #endif for (i = 0; exec_args[i]; i++) fprintf(stderr, "%s'%s'", (debug == 2) ? "\n " : " ", exec_args[i]); fprintf(stderr, "\n"); } #ifdef BR_CCACHE_HASH /* Allow compilercheck to be overridden through the environment */ if (setenv("CCACHE_COMPILERCHECK", "string:" BR_CCACHE_HASH, 0)) { perror(__FILE__ ": Failed to set CCACHE_COMPILERCHECK"); return 3; } #endif #ifdef BR_CCACHE_BASEDIR /* Allow compilercheck to be overridden through the environment */ if (setenv("CCACHE_BASEDIR", BR_CCACHE_BASEDIR, 0)) { perror(__FILE__ ": Failed to set CCACHE_BASEDIR"); return 3; } #endif if (execv(exec_args[0], exec_args)) perror(path); free(args); return 2; } ================================================ FILE: toolchain/toolchain-wrapper.mk ================================================ ################################################################################ # # definition of the toolchain wrapper build commands # ################################################################################ # We use --hash-style=both to increase the compatibility of the generated # binary with older platforms, except for MIPS, where the only acceptable # hash style is 'sysv' ifeq ($(findstring mips,$(HOSTARCH)),mips) TOOLCHAIN_WRAPPER_HASH_STYLE = sysv else TOOLCHAIN_WRAPPER_HASH_STYLE = both endif TOOLCHAIN_WRAPPER_ARGS = $($(PKG)_TOOLCHAIN_WRAPPER_ARGS) TOOLCHAIN_WRAPPER_ARGS += -DBR_SYSROOT='"$(STAGING_SUBDIR)"' TOOLCHAIN_WRAPPER_OPTS = \ $(ARCH_TOOLCHAIN_WRAPPER_OPTS) \ $(call qstrip,$(BR2_SSP_OPTION)) \ $(call qstrip,$(BR2_TARGET_OPTIMIZATION)) ifeq ($(BR2_REPRODUCIBLE),y) TOOLCHAIN_WRAPPER_OPTS += -Wl,--build-id=none ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_8),y) TOOLCHAIN_WRAPPER_OPTS += -ffile-prefix-map=$(BASE_DIR)=buildroot else TOOLCHAIN_WRAPPER_OPTS += -D__FILE__=\"\" -D__BASE_FILE__=\"\" -Wno-builtin-macro-redefined endif ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_7),) TOOLCHAIN_WRAPPER_OPTS += -DBR_NEED_SOURCE_DATE_EPOCH endif endif # Disable -ftree-loop-distribute-patterns on microblaze to # workaround a compiler bug with gcc 10 and -O2, -Os or -O3. # https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=5879ab5fafedc8f6f9bfe95a4cf8501b0df90edd # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97208 ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_10)$(BR2_microblaze),yy) TOOLCHAIN_WRAPPER_OPTS += -fno-tree-loop-distribute-patterns endif # We create a list like '"-mfoo", "-mbar", "-mbarfoo"' so that each flag is a # separate argument when used in execv() by the toolchain wrapper. TOOLCHAIN_WRAPPER_ARGS += \ -DBR_ADDITIONAL_CFLAGS='$(foreach f,$(TOOLCHAIN_WRAPPER_OPTS),"$(f)"$(comma))' ifeq ($(BR2_CCACHE),y) TOOLCHAIN_WRAPPER_ARGS += -DBR_CCACHE endif ifeq ($(BR2_x86_x1000),y) TOOLCHAIN_WRAPPER_ARGS += -DBR_OMIT_LOCK_PREFIX endif # Avoid FPU bug on XBurst CPUs ifeq ($(BR2_mips_xburst),y) # Before gcc 4.6, -mno-fused-madd was needed, after -ffp-contract is # needed ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_4_6),y) TOOLCHAIN_WRAPPER_ARGS += -DBR_FP_CONTRACT_OFF else TOOLCHAIN_WRAPPER_ARGS += -DBR_NO_FUSED_MADD endif endif ifeq ($(BR2_CCACHE_USE_BASEDIR),y) TOOLCHAIN_WRAPPER_ARGS += -DBR_CCACHE_BASEDIR='"$(BASE_DIR)"' endif ifeq ($(BR2_PIC_PIE),y) TOOLCHAIN_WRAPPER_ARGS += -DBR2_PIC_PIE endif ifeq ($(BR2_RELRO_PARTIAL),y) TOOLCHAIN_WRAPPER_ARGS += -DBR2_RELRO_PARTIAL else ifeq ($(BR2_RELRO_FULL),y) TOOLCHAIN_WRAPPER_ARGS += -DBR2_RELRO_FULL endif define TOOLCHAIN_WRAPPER_BUILD $(HOSTCC) $(HOST_CFLAGS) $(TOOLCHAIN_WRAPPER_ARGS) \ -s -Wl,--hash-style=$(TOOLCHAIN_WRAPPER_HASH_STYLE) \ toolchain/toolchain-wrapper.c \ -o $(@D)/toolchain-wrapper endef define TOOLCHAIN_WRAPPER_INSTALL $(INSTALL) -D -m 0755 $(@D)/toolchain-wrapper \ $(HOST_DIR)/bin/toolchain-wrapper endef ================================================ FILE: toolchain/toolchain.mk ================================================ ################################################################################ # # toolchain-related customisation of the content of the target/ directory # ################################################################################ # Those customisations are added to the TARGET_FINALIZE_HOOKS, to be applied # just after all packages have been built. # Install the gconv modules ifeq ($(BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY),y) TOOLCHAIN_GLIBC_GCONV_LIBS = $(call qstrip,$(BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_LIST)) define TOOLCHAIN_GLIBC_COPY_GCONV_LIBS $(Q)found_gconv=no; \ for d in $(TOOLCHAIN_EXTERNAL_PREFIX) ''; do \ [ -d "$(STAGING_DIR)/usr/lib/$${d}/gconv" ] || continue; \ found_gconv=yes; \ break; \ done; \ if [ "$${found_gconv}" = "no" ]; then \ printf "Unable to find gconv modules\n" >&2; \ exit 1; \ fi; \ if [ -z "$(TOOLCHAIN_GLIBC_GCONV_LIBS)" ]; then \ $(INSTALL) -m 0644 -D $(STAGING_DIR)/usr/lib/$${d}/gconv/gconv-modules \ $(TARGET_DIR)/usr/lib/gconv/gconv-modules && \ $(INSTALL) -m 0644 $(STAGING_DIR)/usr/lib/$${d}/gconv/*.so \ $(TARGET_DIR)/usr/lib/gconv \ || exit 1; \ else \ for l in $(TOOLCHAIN_GLIBC_GCONV_LIBS); do \ $(INSTALL) -m 0644 -D $(STAGING_DIR)/usr/lib/$${d}/gconv/$${l}.so \ $(TARGET_DIR)/usr/lib/gconv/$${l}.so \ || exit 1; \ $(TARGET_READELF) -d $(STAGING_DIR)/usr/lib/$${d}/gconv/$${l}.so |\ sort -u |\ sed -e '/.*(NEEDED).*\[\(.*\.so\)\]$$/!d; s//\1/;' |\ while read lib; do \ $(INSTALL) -m 0644 -D $(STAGING_DIR)/usr/lib/$${d}/gconv/$${lib} \ $(TARGET_DIR)/usr/lib/gconv/$${lib} \ || exit 1; \ done; \ done; \ ./support/scripts/expunge-gconv-modules "$(TOOLCHAIN_GLIBC_GCONV_LIBS)" \ <$(STAGING_DIR)/usr/lib/$${d}/gconv/gconv-modules \ >$(TARGET_DIR)/usr/lib/gconv/gconv-modules; \ fi endef TOOLCHAIN_TARGET_FINALIZE_HOOKS += TOOLCHAIN_GLIBC_COPY_GCONV_LIBS endif ================================================ FILE: utils/brmake ================================================ #!/bin/bash # (C) 2016, "Yann E. MORIN" # License: WTFPL, https://spdx.org/licenses/WTFPL.html main() { local found ret start d h m mf if ! which unbuffer >/dev/null 2>&1; then printf "you need to install 'unbuffer' (from package expect or expect-dev)\n" >&2 exit 1 fi start=${SECONDS} ( exec 2>&1; unbuffer make "${@}"; ) \ > >( while read line; do printf "%(%Y-%m-%dT%H:%M:%S)T %s\n" -1 "${line}" done \ |tee -a br.log \ |grep --colour=never -E '>>>' ) ret=${?} d=$((SECONDS-start)) printf "Done in " h=$((d/3600)) d=$((d%3600)) [ ${h} -eq 0 ] || { printf "%dh " ${h}; mf="02"; } m=$((d/60)) d=$((d%60)) [ ${m} -eq 0 ] || { printf "%${mf}dmin " ${m}; sf="02"; } printf "%${sf}ds" ${d} if [ ${ret} -ne 0 ]; then printf " (error code: %s)" ${ret} fi printf "\n" return ${ret} } main "${@}" ================================================ FILE: utils/check-package ================================================ #!/usr/bin/env python3 # See utils/checkpackagelib/readme.txt before editing this file. import argparse import inspect import os import re import six import sys import checkpackagelib.lib_config import checkpackagelib.lib_hash import checkpackagelib.lib_mk import checkpackagelib.lib_patch VERBOSE_LEVEL_TO_SHOW_IGNORED_FILES = 3 flags = None # Command line arguments. def parse_args(): parser = argparse.ArgumentParser() # Do not use argparse.FileType("r") here because only files with known # format will be open based on the filename. parser.add_argument("files", metavar="F", type=str, nargs="*", help="list of files") parser.add_argument("--br2-external", "-b", dest='intree_only', action="store_false", help="do not apply the pathname filters used for intree files") parser.add_argument("--manual-url", action="store", default="http://nightly.buildroot.org/", help="default: %(default)s") parser.add_argument("--verbose", "-v", action="count", default=0) parser.add_argument("--quiet", "-q", action="count", default=0) # Now the debug options in the order they are processed. parser.add_argument("--include-only", dest="include_list", action="append", help="run only the specified functions (debug)") parser.add_argument("--exclude", dest="exclude_list", action="append", help="do not run the specified functions (debug)") parser.add_argument("--dry-run", action="store_true", help="print the " "functions that would be called for each file (debug)") return parser.parse_args() CONFIG_IN_FILENAME = re.compile(r"Config\.\S*$") DO_CHECK_INTREE = re.compile(r"|".join([ r"Config.in", r"arch/", r"boot/", r"fs/", r"linux/", r"package/", r"system/", r"toolchain/", ])) DO_NOT_CHECK_INTREE = re.compile(r"|".join([ r"boot/barebox/barebox\.mk$", r"fs/common\.mk$", r"package/doc-asciidoc\.mk$", r"package/pkg-\S*\.mk$", r"toolchain/helpers\.mk$", r"toolchain/toolchain-external/pkg-toolchain-external\.mk$", ])) def get_lib_from_filename(fname): if flags.intree_only: if DO_CHECK_INTREE.match(fname) is None: return None if DO_NOT_CHECK_INTREE.match(fname): return None else: if os.path.basename(fname) == "external.mk" and \ os.path.exists(fname[:-2] + "desc"): return None if CONFIG_IN_FILENAME.search(fname): return checkpackagelib.lib_config if fname.endswith(".hash"): return checkpackagelib.lib_hash if fname.endswith(".mk"): return checkpackagelib.lib_mk if fname.endswith(".patch"): return checkpackagelib.lib_patch return None def is_a_check_function(m): if not inspect.isclass(m): return False # do not call the base class if m.__name__.startswith("_"): return False if flags.include_list and m.__name__ not in flags.include_list: return False if flags.exclude_list and m.__name__ in flags.exclude_list: return False return True def print_warnings(warnings): # Avoid the need to use 'return []' at the end of every check function. if warnings is None: return 0 # No warning generated. for level, message in enumerate(warnings): if flags.verbose >= level: print(message.replace("\t", "< tab >").rstrip()) return 1 # One more warning to count. def check_file_using_lib(fname): # Count number of warnings generated and lines processed. nwarnings = 0 nlines = 0 lib = get_lib_from_filename(fname) if not lib: if flags.verbose >= VERBOSE_LEVEL_TO_SHOW_IGNORED_FILES: print("{}: ignored".format(fname)) return nwarnings, nlines classes = inspect.getmembers(lib, is_a_check_function) if flags.dry_run: functions_to_run = [c[0] for c in classes] print("{}: would run: {}".format(fname, functions_to_run)) return nwarnings, nlines objects = [c[1](fname, flags.manual_url) for c in classes] for cf in objects: nwarnings += print_warnings(cf.before()) if six.PY3: f = open(fname, "r", errors="surrogateescape") else: f = open(fname, "r") lastline = "" for lineno, text in enumerate(f.readlines()): nlines += 1 for cf in objects: if cf.disable.search(lastline): continue nwarnings += print_warnings(cf.check_line(lineno + 1, text)) lastline = text f.close() for cf in objects: nwarnings += print_warnings(cf.after()) return nwarnings, nlines def __main__(): global flags flags = parse_args() if flags.intree_only: # change all paths received to be relative to the base dir base_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) files_to_check = [os.path.relpath(os.path.abspath(f), base_dir) for f in flags.files] # move current dir so the script find the files os.chdir(base_dir) else: files_to_check = flags.files if len(files_to_check) == 0: print("No files to check style") sys.exit(1) # Accumulate number of warnings generated and lines processed. total_warnings = 0 total_lines = 0 for fname in files_to_check: nwarnings, nlines = check_file_using_lib(fname) total_warnings += nwarnings total_lines += nlines # The warning messages are printed to stdout and can be post-processed # (e.g. counted by 'wc'), so for stats use stderr. Wait all warnings are # printed, for the case there are many of them, before printing stats. sys.stdout.flush() if not flags.quiet: print("{} lines processed".format(total_lines), file=sys.stderr) print("{} warnings generated".format(total_warnings), file=sys.stderr) if total_warnings > 0: sys.exit(1) __main__() ================================================ FILE: utils/checkpackagelib/__init__.py ================================================ ================================================ FILE: utils/checkpackagelib/base.py ================================================ # See utils/checkpackagelib/readme.txt before editing this file. import re class _CheckFunction(object): def __init__(self, filename, url_to_manual): self.filename = filename self.url_to_manual = url_to_manual self.disable = re.compile(r"^\s*# check-package .*\b{}\b".format(self.__class__.__name__)) def before(self): pass def check_line(self, lineno, text): pass def after(self): pass ================================================ FILE: utils/checkpackagelib/lib.py ================================================ # See utils/checkpackagelib/readme.txt before editing this file. from checkpackagelib.base import _CheckFunction class ConsecutiveEmptyLines(_CheckFunction): def before(self): self.lastline = "non empty" def check_line(self, lineno, text): if text.strip() == "" == self.lastline.strip(): return ["{}:{}: consecutive empty lines" .format(self.filename, lineno)] self.lastline = text class EmptyLastLine(_CheckFunction): def before(self): self.lastlineno = 0 self.lastline = "non empty" def check_line(self, lineno, text): self.lastlineno = lineno self.lastline = text def after(self): if self.lastline.strip() == "": return ["{}:{}: empty line at end of file" .format(self.filename, self.lastlineno)] class NewlineAtEof(_CheckFunction): def before(self): self.lastlineno = 0 self.lastline = "\n" def check_line(self, lineno, text): self.lastlineno = lineno self.lastline = text def after(self): if self.lastline == self.lastline.rstrip("\r\n"): return ["{}:{}: missing newline at end of file" .format(self.filename, self.lastlineno), self.lastline] class TrailingSpace(_CheckFunction): def check_line(self, lineno, text): line = text.rstrip("\r\n") if line != line.rstrip(): return ["{}:{}: line contains trailing whitespace" .format(self.filename, lineno), text] class Utf8Characters(_CheckFunction): def is_ascii(self, s): try: return all(ord(c) < 128 for c in s) except TypeError: return False def check_line(self, lineno, text): if not self.is_ascii(text): return ["{}:{}: line contains UTF-8 characters" .format(self.filename, lineno), text] ================================================ FILE: utils/checkpackagelib/lib_config.py ================================================ # See utils/checkpackagelib/readme.txt before editing this file. # Kconfig generates errors if someone introduces a typo like "boool" instead of # "bool", so below check functions don't need to check for things already # checked by running "make menuconfig". import re from checkpackagelib.base import _CheckFunction from checkpackagelib.lib import ConsecutiveEmptyLines # noqa: F401 from checkpackagelib.lib import EmptyLastLine # noqa: F401 from checkpackagelib.lib import NewlineAtEof # noqa: F401 from checkpackagelib.lib import TrailingSpace # noqa: F401 def _empty_or_comment(text): line = text.strip() # ignore empty lines and comment lines indented or not return line == "" or line.startswith("#") def _part_of_help_text(text): return text.startswith("\t ") # used in more than one check entries_that_should_not_be_indented = [ "choice", "comment", "config", "endchoice", "endif", "endmenu", "if", "menu", "menuconfig", "source"] class AttributesOrder(_CheckFunction): attributes_order_convention = { "bool": 1, "prompt": 1, "string": 1, "default": 2, "depends": 3, "select": 4, "help": 5} def before(self): self.state = 0 def check_line(self, lineno, text): if _empty_or_comment(text) or _part_of_help_text(text): return attribute = text.split()[0] if attribute in entries_that_should_not_be_indented: self.state = 0 return if attribute not in self.attributes_order_convention.keys(): return new_state = self.attributes_order_convention[attribute] wrong_order = self.state > new_state # save to process next line self.state = new_state if wrong_order: return ["{}:{}: attributes order: type, default, depends on," " select, help ({}#_config_files)" .format(self.filename, lineno, self.url_to_manual), text] class CommentsMenusPackagesOrder(_CheckFunction): def before(self): self.level = 0 self.menu_of_packages = ["The top level menu"] self.new_package = "" self.package = [""] self.print_package_warning = [True] self.state = "" def get_level(self): return len(self.state.split('-')) - 1 def initialize_package_level_elements(self, text): try: self.menu_of_packages[self.level] = text[:-1] self.package[self.level] = "" self.print_package_warning[self.level] = True except IndexError: self.menu_of_packages.append(text[:-1]) self.package.append("") self.print_package_warning.append(True) def initialize_level_elements(self, text): self.level = self.get_level() self.initialize_package_level_elements(text) def check_line(self, lineno, text): # We only want to force sorting for the top-level menus if self.filename not in ["fs/Config.in", "package/Config.in", "package/Config.in.host", "package/kodi/Config.in"]: return source_line = re.match(r'^\s*source ".*/([^/]*)/Config.in(.host)?"', text) if text.startswith("comment "): if not self.state.endswith("-comment"): self.state += "-comment" self.initialize_level_elements(text) elif text.startswith("if "): self.state += "-if" self.initialize_level_elements(text) elif text.startswith("menu "): if self.state.endswith("-comment"): self.state = self.state[:-8] self.state += "-menu" self.initialize_level_elements(text) elif text.startswith("endif") or text.startswith("endmenu"): if self.state.endswith("-comment"): self.state = self.state[:-8] if text.startswith("endif"): self.state = self.state[:-3] elif text.startswith("endmenu"): self.state = self.state[:-5] self.level = self.get_level() elif source_line: self.new_package = source_line.group(1) # We order _ before A, so replace it with . new_package_ord = self.new_package.replace('_', '.') if self.package[self.level] != "" and \ self.print_package_warning[self.level] and \ new_package_ord < self.package[self.level]: self.print_package_warning[self.level] = False prefix = "{}:{}: ".format(self.filename, lineno) spaces = " " * len(prefix) return ["{prefix}Packages in: {menu},\n" "{spaces}are not alphabetically ordered;\n" "{spaces}correct order: '-', '_', digits, capitals, lowercase;\n" "{spaces}first incorrect package: {package}" .format(prefix=prefix, spaces=spaces, menu=self.menu_of_packages[self.level], package=self.new_package), text] self.package[self.level] = new_package_ord class HelpText(_CheckFunction): HELP_TEXT_FORMAT = re.compile(r"^\t .{,62}$") URL_ONLY = re.compile(r"^(http|https|git)://\S*$") def before(self): self.help_text = False def check_line(self, lineno, text): if _empty_or_comment(text): return entry = text.split()[0] if entry in entries_that_should_not_be_indented: self.help_text = False return if text.strip() == "help": self.help_text = True return if not self.help_text: return if self.HELP_TEXT_FORMAT.match(text.rstrip()): return if self.URL_ONLY.match(text.strip()): return return ["{}:{}: help text: <2 spaces><62 chars>" " ({}#writing-rules-config-in)" .format(self.filename, lineno, self.url_to_manual), text, "\t " + "123456789 " * 6 + "12"] class Indent(_CheckFunction): ENDS_WITH_BACKSLASH = re.compile(r"^[^#].*\\$") entries_that_should_be_indented = [ "bool", "default", "depends", "help", "prompt", "select", "string"] def before(self): self.backslash = False def check_line(self, lineno, text): if _empty_or_comment(text) or _part_of_help_text(text): self.backslash = False return entry = text.split()[0] last_line_ends_in_backslash = self.backslash # calculate for next line if self.ENDS_WITH_BACKSLASH.search(text): self.backslash = True else: self.backslash = False if last_line_ends_in_backslash: if text.startswith("\t"): return return ["{}:{}: continuation line should be indented using tabs" .format(self.filename, lineno), text] if entry in self.entries_that_should_be_indented: if not text.startswith("\t{}".format(entry)): return ["{}:{}: should be indented with one tab" " ({}#_config_files)" .format(self.filename, lineno, self.url_to_manual), text] elif entry in entries_that_should_not_be_indented: if not text.startswith(entry): # four Config.in files have a special but legitimate indentation rule if self.filename in ["package/Config.in", "package/Config.in.host", "package/kodi/Config.in", "package/x11r7/Config.in"]: return return ["{}:{}: should not be indented" .format(self.filename, lineno), text] ================================================ FILE: utils/checkpackagelib/lib_hash.py ================================================ # See utils/checkpackagelib/readme.txt before editing this file. # The validity of the hashes itself is checked when building, so below check # functions don't need to check for things already checked by running # "make package-dirclean package-source". import re from checkpackagelib.base import _CheckFunction from checkpackagelib.lib import ConsecutiveEmptyLines # noqa: F401 from checkpackagelib.lib import EmptyLastLine # noqa: F401 from checkpackagelib.lib import NewlineAtEof # noqa: F401 from checkpackagelib.lib import TrailingSpace # noqa: F401 def _empty_line_or_comment(text): return text.strip() == "" or text.startswith("#") class HashNumberOfFields(_CheckFunction): def check_line(self, lineno, text): if _empty_line_or_comment(text): return fields = text.split() if len(fields) != 3: return ["{}:{}: expected three fields ({}#adding-packages-hash)" .format(self.filename, lineno, self.url_to_manual), text] class HashType(_CheckFunction): len_of_hash = {"md5": 32, "sha1": 40, "sha224": 56, "sha256": 64, "sha384": 96, "sha512": 128} def check_line(self, lineno, text): if _empty_line_or_comment(text): return fields = text.split() if len(fields) < 2: return htype, hexa = fields[:2] if htype == "none": return if htype not in self.len_of_hash.keys(): return ["{}:{}: unexpected type of hash ({}#adding-packages-hash)" .format(self.filename, lineno, self.url_to_manual), text] if not re.match("^[0-9A-Fa-f]{%s}$" % self.len_of_hash[htype], hexa): return ["{}:{}: hash size does not match type " "({}#adding-packages-hash)" .format(self.filename, lineno, self.url_to_manual), text, "expected {} hex digits".format(self.len_of_hash[htype])] ================================================ FILE: utils/checkpackagelib/lib_mk.py ================================================ # See utils/checkpackagelib/readme.txt before editing this file. # There are already dependency checks during the build, so below check # functions don't need to check for things already checked by exploring the # menu options using "make menuconfig" and by running "make" with appropriate # packages enabled. import os import re from checkpackagelib.base import _CheckFunction from checkpackagelib.lib import ConsecutiveEmptyLines # noqa: F401 from checkpackagelib.lib import EmptyLastLine # noqa: F401 from checkpackagelib.lib import NewlineAtEof # noqa: F401 from checkpackagelib.lib import TrailingSpace # noqa: F401 from checkpackagelib.lib import Utf8Characters # noqa: F401 # used in more than one check start_conditional = ["ifdef", "ifeq", "ifndef", "ifneq"] continue_conditional = ["elif", "else"] end_conditional = ["endif"] class Indent(_CheckFunction): COMMENT = re.compile(r"^\s*#") CONDITIONAL = re.compile(r"^\s*({})\s".format("|".join(start_conditional + end_conditional + continue_conditional))) ENDS_WITH_BACKSLASH = re.compile(r"^[^#].*\\$") END_DEFINE = re.compile(r"^\s*endef\s") MAKEFILE_TARGET = re.compile(r"^[^# \t]+:\s") START_DEFINE = re.compile(r"^\s*define\s") def before(self): self.define = False self.backslash = False self.makefile_target = False def check_line(self, lineno, text): if self.START_DEFINE.search(text): self.define = True return if self.END_DEFINE.search(text): self.define = False return expect_tabs = False if self.define or self.backslash or self.makefile_target: expect_tabs = True if not self.backslash and self.CONDITIONAL.search(text): expect_tabs = False # calculate for next line if self.ENDS_WITH_BACKSLASH.search(text): self.backslash = True else: self.backslash = False if self.MAKEFILE_TARGET.search(text): self.makefile_target = True return if text.strip() == "": self.makefile_target = False return # comment can be indented or not inside define ... endef, so ignore it if self.define and self.COMMENT.search(text): return if expect_tabs: if not text.startswith("\t"): return ["{}:{}: expected indent with tabs" .format(self.filename, lineno), text] else: if text.startswith("\t"): return ["{}:{}: unexpected indent with tabs" .format(self.filename, lineno), text] class OverriddenVariable(_CheckFunction): CONCATENATING = re.compile(r"^([A-Z0-9_]+)\s*(\+|:|)=\s*\$\(\\1\)") END_CONDITIONAL = re.compile(r"^\s*({})".format("|".join(end_conditional))) OVERRIDING_ASSIGNMENTS = [':=', "="] START_CONDITIONAL = re.compile(r"^\s*({})".format("|".join(start_conditional))) VARIABLE = re.compile(r"^([A-Z0-9_]+)\s*((\+|:|)=)") USUALLY_OVERRIDDEN = re.compile(r"^[A-Z0-9_]+({})".format("|".join([ r"_ARCH\s*=\s*", r"_CPU\s*=\s*", r"_SITE\s*=\s*", r"_SOURCE\s*=\s*", r"_VERSION\s*=\s*"]))) def before(self): self.conditional = 0 self.unconditionally_set = [] self.conditionally_set = [] def check_line(self, lineno, text): if self.START_CONDITIONAL.search(text): self.conditional += 1 return if self.END_CONDITIONAL.search(text): self.conditional -= 1 return m = self.VARIABLE.search(text) if m is None: return variable, assignment = m.group(1, 2) if self.conditional == 0: if variable in self.conditionally_set: self.unconditionally_set.append(variable) if assignment in self.OVERRIDING_ASSIGNMENTS: return ["{}:{}: unconditional override of variable {} previously conditionally set" .format(self.filename, lineno, variable), text] if variable not in self.unconditionally_set: self.unconditionally_set.append(variable) return if assignment in self.OVERRIDING_ASSIGNMENTS: return ["{}:{}: unconditional override of variable {}" .format(self.filename, lineno, variable), text] else: if variable not in self.unconditionally_set: self.conditionally_set.append(variable) return if self.CONCATENATING.search(text): return ["{}:{}: immediate assignment to append to variable {}" .format(self.filename, lineno, variable), text] if self.USUALLY_OVERRIDDEN.search(text): return if assignment in self.OVERRIDING_ASSIGNMENTS: return ["{}:{}: conditional override of variable {}" .format(self.filename, lineno, variable), text] class PackageHeader(_CheckFunction): def before(self): self.skip = False def check_line(self, lineno, text): if self.skip or lineno > 6: return if lineno in [1, 5]: if lineno == 1 and text.startswith("include "): self.skip = True return if text.rstrip() != "#" * 80: return ["{}:{}: should be 80 hashes ({}#writing-rules-mk)" .format(self.filename, lineno, self.url_to_manual), text, "#" * 80] elif lineno in [2, 4]: if text.rstrip() != "#": return ["{}:{}: should be 1 hash ({}#writing-rules-mk)" .format(self.filename, lineno, self.url_to_manual), text] elif lineno == 6: if text.rstrip() != "": return ["{}:{}: should be a blank line ({}#writing-rules-mk)" .format(self.filename, lineno, self.url_to_manual), text] class RemoveDefaultPackageSourceVariable(_CheckFunction): packages_that_may_contain_default_source = ["binutils", "gcc", "gdb"] def before(self): package, _ = os.path.splitext(os.path.basename(self.filename)) package_upper = package.replace("-", "_").upper() self.package = package self.FIND_SOURCE = re.compile( r"^{}_SOURCE\s*=\s*{}-\$\({}_VERSION\)\.tar\.gz" .format(package_upper, package, package_upper)) def check_line(self, lineno, text): if self.FIND_SOURCE.search(text): if self.package in self.packages_that_may_contain_default_source: return return ["{}:{}: remove default value of _SOURCE variable " "({}#generic-package-reference)" .format(self.filename, lineno, self.url_to_manual), text] class SpaceBeforeBackslash(_CheckFunction): TAB_OR_MULTIPLE_SPACES_BEFORE_BACKSLASH = re.compile(r"^.*( |\t ?)\\$") def check_line(self, lineno, text): if self.TAB_OR_MULTIPLE_SPACES_BEFORE_BACKSLASH.match(text.rstrip()): return ["{}:{}: use only one space before backslash" .format(self.filename, lineno), text] class TrailingBackslash(_CheckFunction): ENDS_WITH_BACKSLASH = re.compile(r"^[^#].*\\$") def before(self): self.backslash = False def check_line(self, lineno, text): last_line_ends_in_backslash = self.backslash # calculate for next line if self.ENDS_WITH_BACKSLASH.search(text): self.backslash = True self.lastline = text return self.backslash = False if last_line_ends_in_backslash and text.strip() == "": return ["{}:{}: remove trailing backslash" .format(self.filename, lineno - 1), self.lastline] class TypoInPackageVariable(_CheckFunction): ALLOWED = re.compile(r"|".join([ "ACLOCAL_DIR", "ACLOCAL_HOST_DIR", "ACLOCAL_PATH", "BR_CCACHE_INITIAL_SETUP", "BR_LIBC", "BR_NO_CHECK_HASH_FOR", "LINUX_EXTENSIONS", "LINUX_POST_PATCH_HOOKS", "LINUX_TOOLS", "LUA_RUN", "MKFS_JFFS2", "MKIMAGE_ARCH", "PACKAGES_PERMISSIONS_TABLE", "PKG_CONFIG_HOST_BINARY", "SUMTOOL", "TARGET_FINALIZE_HOOKS", "TARGETS_ROOTFS", "XTENSA_CORE_NAME"])) VARIABLE = re.compile(r"^([A-Z0-9_]+_[A-Z0-9_]+)\s*(\+|)=") def before(self): package, _ = os.path.splitext(os.path.basename(self.filename)) package = package.replace("-", "_").upper() # linux tools do not use LINUX_TOOL_ prefix for variables package = package.replace("LINUX_TOOL_", "") # linux extensions do not use LINUX_EXT_ prefix for variables package = package.replace("LINUX_EXT_", "") self.package = package self.REGEX = re.compile(r"^(HOST_|ROOTFS_)?({}_[A-Z0-9_]+)".format(package)) self.FIND_VIRTUAL = re.compile( r"^{}_PROVIDES\s*(\+|)=\s*(.*)".format(package)) self.virtual = [] def check_line(self, lineno, text): m = self.VARIABLE.search(text) if m is None: return variable = m.group(1) # allow to set variables for virtual package this package provides v = self.FIND_VIRTUAL.search(text) if v: self.virtual += v.group(2).upper().split() return for virtual in self.virtual: if variable.startswith("{}_".format(virtual)): return if self.ALLOWED.match(variable): return if self.REGEX.search(text) is None: return ["{}:{}: possible typo: {} -> *{}*" .format(self.filename, lineno, variable, self.package), text] class UselessFlag(_CheckFunction): DEFAULT_AUTOTOOLS_FLAG = re.compile(r"^.*{}".format("|".join([ r"_AUTORECONF\s*=\s*NO", r"_LIBTOOL_PATCH\s*=\s*YES"]))) DEFAULT_GENERIC_FLAG = re.compile(r"^.*{}".format("|".join([ r"_INSTALL_IMAGES\s*=\s*NO", r"_INSTALL_REDISTRIBUTE\s*=\s*YES", r"_INSTALL_STAGING\s*=\s*NO", r"_INSTALL_TARGET\s*=\s*YES"]))) END_CONDITIONAL = re.compile(r"^\s*({})".format("|".join(end_conditional))) START_CONDITIONAL = re.compile(r"^\s*({})".format("|".join(start_conditional))) def before(self): self.conditional = 0 def check_line(self, lineno, text): if self.START_CONDITIONAL.search(text): self.conditional += 1 return if self.END_CONDITIONAL.search(text): self.conditional -= 1 return # allow non-default conditionally overridden by default if self.conditional > 0: return if self.DEFAULT_GENERIC_FLAG.search(text): return ["{}:{}: useless default value ({}#" "_infrastructure_for_packages_with_specific_build_systems)" .format(self.filename, lineno, self.url_to_manual), text] if self.DEFAULT_AUTOTOOLS_FLAG.search(text) and not text.lstrip().startswith("HOST_"): return ["{}:{}: useless default value " "({}#_infrastructure_for_autotools_based_packages)" .format(self.filename, lineno, self.url_to_manual), text] class VariableWithBraces(_CheckFunction): VARIABLE_WITH_BRACES = re.compile(r"^[^#].*[^$]\${\w+}") def check_line(self, lineno, text): if self.VARIABLE_WITH_BRACES.match(text.rstrip()): return ["{}:{}: use $() to delimit variables, not ${{}}" .format(self.filename, lineno), text] ================================================ FILE: utils/checkpackagelib/lib_patch.py ================================================ # See utils/checkpackagelib/readme.txt before editing this file. # The format of the patch files is tested during the build, so below check # functions don't need to check for things already checked by running # "make package-dirclean package-patch". import os import re from checkpackagelib.base import _CheckFunction from checkpackagelib.lib import NewlineAtEof # noqa: F401 class ApplyOrder(_CheckFunction): APPLY_ORDER = re.compile(r"\d{1,4}-[^/]*$") def before(self): if not self.APPLY_ORDER.match(os.path.basename(self.filename)): return ["{}:0: use name -.patch " "({}#_providing_patches)" .format(self.filename, self.url_to_manual)] class NumberedSubject(_CheckFunction): NUMBERED_PATCH = re.compile(r"Subject:\s*\[PATCH\s*\d+/\d+\]") def before(self): self.git_patch = False self.lineno = 0 self.text = None def check_line(self, lineno, text): if text.startswith("diff --git"): self.git_patch = True return if self.NUMBERED_PATCH.search(text): self.lineno = lineno self.text = text def after(self): if self.git_patch and self.text: return ["{}:{}: generate your patches with 'git format-patch -N'" .format(self.filename, self.lineno), self.text] class Sob(_CheckFunction): SOB_ENTRY = re.compile(r"^Signed-off-by: .*$") def before(self): self.found = False def check_line(self, lineno, text): if self.found: return if self.SOB_ENTRY.search(text): self.found = True def after(self): if not self.found: return ["{}:0: missing Signed-off-by in the header " "({}#_format_and_licensing_of_the_package_patches)" .format(self.filename, self.url_to_manual)] ================================================ FILE: utils/checkpackagelib/readme.txt ================================================ How the scripts are structured: - check-package is the main engine, called by the user. For each input file, this script decides which parser should be used and it collects all classes declared in the library file and instantiates them. The main engine opens the input files and it serves each raw line (including newline!) to the method check_line() of every check object. Two special methods before() and after() are used to call the initialization of variables (for the case it needs to keep data across calls) and the equivalent finalization (e.g. for the case a warning must be issued if some pattern is not in the input file). - base.py contains the base class for all check functions. - lib.py contains the classes for common check functions. Each check function is explicitly included in a given type-parsing library. Do not include every single check function in this file, a class that will only parse hash files should be implemented in the hash-parsing library. When a warning must be issued, the check function returns an array of strings. Each string is a warning message and is displayed if the corresponding verbose level is active. When the script is called without --verbose only the first warning in the returned array is printed; when called with --verbose both first and second warnings are printed; when called with -vv until the third warning is printed; an so on. Helper functions can be defined and will not be called by the main script. - lib_type.py contains check functions specific to files of this type. Some hints when changing this code: - prefer O(n) algorithms, where n is the total number of lines in the files processed. - when there is no other reason for ordering, use alphabetical order (e.g. keep the check functions in alphabetical order, keep the imports in alphabetical order, and so on). - keep in mind that for every class the method before() will be called before any line is served to be checked by the method check_line(). A class that checks the filename should only implement the method before(). A function that needs to keep data across calls (e.g. keep the last line before the one being processed) should initialize all variables using this method. - keep in mind that for every class the method after() will be called after all lines were served to be checked by the method check_line(). A class that checks the absence of a pattern in the file will need to use this method. - try to avoid false warnings. It's better to not issue a warning message to a corner case than have too many false warnings. The second can make users stop using the script. - do not check spacing in the input line in every single function. Trailing whitespace and wrong indentation should be checked by separate functions. - avoid duplicate tests. Try to test only one thing in each function. - in the warning message, include the url to a section from the manual, when applicable. It potentially will make more people know the manual. - use short sentences in the warning messages. A complete explanation can be added to show when --verbose is used. - when testing, verify the error message is displayed when the error pattern is found, but also verify the error message is not displayed for few well-formatted packages... there are many of these, just pick your favorite as golden package that should not trigger any warning message. - check the url displayed by the warning message works. Usage examples: - to get a list of check functions that would be called without actually calling them you can use the --dry-run option: $ utils/check-package --dry-run package/yourfavorite/* - when you just added a new check function, e.g. Something, check how it behaves for all current packages: $ utils/check-package --include-only Something $(find package -type f) - the effective processing time (when the .pyc were already generated and all files to be processed are cached in the RAM) should stay in the order of few seconds: $ utils/check-package $(find package -type f) >/dev/null ; \ time utils/check-package $(find package -type f) >/dev/null - vim users can navigate the warnings (most editors probably have similar function) since warnings are generated in the form 'path/file:line: warning': $ find package/ -name 'Config.*' > filelist && vim -c \ 'set makeprg=utils/check-package\ $(cat\ filelist)' -c make -c copen ================================================ FILE: utils/config ================================================ #!/bin/bash # Manipulate options in a .config file from the command line myname=${0##*/} # If no prefix forced, use the default BR2_ BR2_PREFIX="${BR2_PREFIX-BR2_}" usage() { cat >&2 <>"$FN" fi } undef_var() { local name=$1 txt_delete "^$name=" "$FN" txt_delete "^# $name is not set" "$FN" } if [ "$1" = "--file" ]; then FN="$2" if [ "$FN" = "" ] ; then usage fi shift 2 else FN=.config fi if [ "$1" = "" ] ; then usage fi MUNGE_CASE=yes while [ "$1" != "" ] ; do CMD="$1" shift case "$CMD" in --keep-case|-k) MUNGE_CASE=no continue ;; --package|-p) BR2_PREFIX="BR2_PACKAGE_" continue ;; --*-after|-E|-D|-M) checkarg "$1" A=$ARG checkarg "$2" B=$ARG shift 2 ;; -*) checkarg "$1" shift ;; esac case "$CMD" in --enable|-e) set_var "${BR2_PREFIX}$ARG" "${BR2_PREFIX}$ARG=y" ;; --disable|-d) set_var "${BR2_PREFIX}$ARG" "# ${BR2_PREFIX}$ARG is not set" ;; --set-str) # sed swallows one level of escaping, so we need double-escaping set_var "${BR2_PREFIX}$ARG" "${BR2_PREFIX}$ARG=\"${1//\"/\\\\\"}\"" shift ;; --set-val) set_var "${BR2_PREFIX}$ARG" "${BR2_PREFIX}$ARG=$1" shift ;; --undefine|-u) undef_var "${BR2_PREFIX}$ARG" ;; --state|-s) if grep -q "# ${BR2_PREFIX}$ARG is not set" $FN ; then echo n else V="$(grep "^${BR2_PREFIX}$ARG=" $FN)" if [ $? != 0 ] ; then echo undef else V="${V/#${BR2_PREFIX}$ARG=/}" V="${V/#\"/}" V="${V/%\"/}" V="${V//\\\"/\"}" echo "${V}" fi fi ;; --enable-after|-E) set_var "${BR2_PREFIX}$B" "${BR2_PREFIX}$B=y" "${BR2_PREFIX}$A" ;; --disable-after|-D) set_var "${BR2_PREFIX}$B" "# ${BR2_PREFIX}$B is not set" "${BR2_PREFIX}$A" ;; *) usage ;; esac done ================================================ FILE: utils/diffconfig ================================================ #!/usr/bin/python # # diffconfig - a tool to compare .config files. # # originally written in 2006 by Matt Mackall # (at least, this was in his bloatwatch source code) # last worked on 2008 by Tim Bird for the Linux kernel # Adapted to Buildroot 2017 by Marcus Folkesson # import sys, os def usage(): print("""Usage: diffconfig [-h] [-m] [ ] Diffconfig is a simple utility for comparing two .config files. Using standard diff to compare .config files often includes extraneous and distracting information. This utility produces sorted output with only the changes in configuration values between the two files. Added and removed items are shown with a leading plus or minus, respectively. Changed items show the old and new values on a single line. If -m is specified, then output will be in "merge" style, which has the changed and new values in kernel config option format. If no config files are specified, .config and .config.old are used. Example usage: $ diffconfig .config config-with-some-changes -BR2_LINUX_KERNEL_INTREE_DTS_NAME "vexpress-v2p-ca9" BR2_LINUX_KERNEL_DTS_SUPPORT y -> n BR2_LINUX_KERNEL_USE_INTREE_DTS y -> n BR2_PACKAGE_DFU_UTIL n -> y BR2_PACKAGE_LIBUSB n -> y BR2_TARGET_GENERIC_HOSTNAME "buildroot" -> "Tuxie" BR2_TARGET_GENERIC_ISSUE "Welcome to Buildroot" -> "Welcome to CustomBoard" +BR2_PACKAGE_LIBUSB_COMPAT n """) sys.exit(0) # returns a dictionary of name/value pairs for config items in the file def readconfig(config_file): d = {} for line in config_file: line = line.strip() if len(line) == 0: continue if line[-11:] == " is not set": d[line[2:-11]] = "n" elif line[0] != "#": name, val = line.split("=", 1) d[name] = val return d def print_config(op, config, value, new_value): global merge_style if merge_style: if new_value: if new_value=="n": print("# %s is not set" % config) else: print("%s=%s" % (config, new_value)) else: if op=="-": print("-%s %s" % (config, value)) elif op=="+": print("+%s %s" % (config, new_value)) else: print(" %s %s -> %s" % (config, value, new_value)) def main(): global merge_style # parse command line args if ("-h" in sys.argv or "--help" in sys.argv): usage() merge_style = 0 if "-m" in sys.argv: merge_style = 1 sys.argv.remove("-m") argc = len(sys.argv) if not (argc==1 or argc == 3): print("Error: incorrect number of arguments or unrecognized option") usage() if argc == 1: # if no filenames given, assume .config and .config.old build_dir="" if "KBUILD_OUTPUT" in os.environ: build_dir = os.environ["KBUILD_OUTPUT"]+"/" configa_filename = build_dir + ".config.old" configb_filename = build_dir + ".config" else: configa_filename = sys.argv[1] configb_filename = sys.argv[2] try: a = readconfig(open(configa_filename)) b = readconfig(open(configb_filename)) except (IOError): e = sys.exc_info()[1] print("I/O error[%s]: %s\n" % (e.args[0],e.args[1])) usage() # print items in a but not b (accumulate, sort and print) old = [] for config in a: if config not in b: old.append(config) old.sort() for config in old: print_config("-", config, a[config], None) del a[config] # print items that changed (accumulate, sort, and print) changed = [] for config in a: if a[config] != b[config]: changed.append(config) else: del b[config] changed.sort() for config in changed: print_config("->", config, a[config], b[config]) del b[config] # now print items in b but not in a # (items from b that were in a were removed above) new = sorted(b.keys()) for config in new: print_config("+", config, None, b[config]) main() ================================================ FILE: utils/genrandconfig ================================================ #!/usr/bin/env python3 # Copyright (C) 2014 by Thomas Petazzoni # # 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 # This script generates a random configuration for testing Buildroot. import contextlib import csv import os from random import randint import subprocess import sys from distutils.version import StrictVersion import platform if sys.hexversion >= 0x3000000: import urllib.request as _urllib else: import urllib2 as _urllib def urlopen_closing(uri): return contextlib.closing(_urllib.urlopen(uri)) class SystemInfo: DEFAULT_NEEDED_PROGS = ["make", "git", "gcc", "timeout"] DEFAULT_OPTIONAL_PROGS = ["bzr", "java", "javac", "jar", "diffoscope"] def __init__(self): self.needed_progs = list(self.__class__.DEFAULT_NEEDED_PROGS) self.optional_progs = list(self.__class__.DEFAULT_OPTIONAL_PROGS) self.progs = {} def find_prog(self, name, flags=os.X_OK, env=os.environ): if not name or name[0] == os.sep: raise ValueError(name) prog_path = env.get("PATH", None) # for windows compatibility, we'd need to take PATHEXT into account if prog_path: for prog_dir in filter(None, prog_path.split(os.pathsep)): # os.join() not necessary: non-empty prog_dir # and name[0] != os.sep prog = prog_dir + os.sep + name if os.access(prog, flags): return prog # -- return None def has(self, prog): """Checks whether a program is available. Lazily evaluates missing entries. Returns: None if prog not found, else path to the program [evaluates to True] """ try: return self.progs[prog] except KeyError: pass have_it = self.find_prog(prog) # java[c] needs special care if have_it and prog in ('java', 'javac'): with open(os.devnull, "w") as devnull: if subprocess.call("%s -version | grep gcj" % prog, shell=True, stdout=devnull, stderr=devnull) != 1: have_it = False # -- self.progs[prog] = have_it return have_it def check_requirements(self): """Checks program dependencies. Returns: True if all mandatory programs are present, else False. """ do_check_has_prog = self.has missing_requirements = False for prog in self.needed_progs: if not do_check_has_prog(prog): print("ERROR: your system lacks the '%s' program" % prog) missing_requirements = True # check optional programs here, # else they'd get checked by each worker instance for prog in self.optional_progs: do_check_has_prog(prog) return not missing_requirements def get_toolchain_configs(toolchains_csv, buildrootdir): """Fetch and return the possible toolchain configurations This function returns an array of toolchain configurations. Each toolchain configuration is itself an array of lines of the defconfig. """ with open(toolchains_csv) as r: # filter empty lines and comments lines = [t for t in r.readlines() if len(t.strip()) > 0 and t[0] != '#'] toolchains = lines configs = [] (_, _, _, _, hostarch) = os.uname() # ~2015 distros report x86 when on a 32bit install if hostarch == 'i686' or hostarch == 'i386' or hostarch == 'x86': hostarch = 'x86' for row in csv.reader(toolchains): config = {} configfile = row[0] config_hostarch = row[1] keep = False # Keep all toolchain configs that work regardless of the host # architecture if config_hostarch == "any": keep = True # Keep all toolchain configs that can work on the current host # architecture if hostarch == config_hostarch: keep = True # Assume that x86 32 bits toolchains work on x86_64 build # machines if hostarch == 'x86_64' and config_hostarch == "x86": keep = True if not keep: continue if not os.path.isabs(configfile): configfile = os.path.join(buildrootdir, configfile) with open(configfile) as r: config = r.readlines() configs.append(config) return configs def is_toolchain_usable(configfile, config): """Check if the toolchain is actually usable.""" with open(configfile) as configf: configlines = configf.readlines() # Check that the toolchain configuration is still present for toolchainline in config: if toolchainline not in configlines: print("WARN: toolchain can't be used", file=sys.stderr) print(" Missing: %s" % toolchainline.strip(), file=sys.stderr) return False # The latest Linaro toolchains on x86-64 hosts requires glibc # 2.14+ on the host. if platform.machine() == 'x86_64': if 'BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM=y\n' in configlines or \ 'BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64=y\n' in configlines or \ 'BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE=y\n' in configlines or \ 'BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB=y\n' in configlines: ldd_version_output = subprocess.check_output(['ldd', '--version']) glibc_version = ldd_version_output.splitlines()[0].split()[-1] if StrictVersion('2.14') > StrictVersion(glibc_version): print("WARN: ignoring the Linaro ARM toolchains because too old host glibc", file=sys.stderr) return False return True def fixup_config(sysinfo, configfile): """Finalize the configuration and reject any problematic combinations This function returns 'True' when the configuration has been accepted, and 'False' when the configuration has not been accepted because it is known to fail (in which case another random configuration will be generated). """ with open(configfile) as configf: configlines = configf.readlines() BR2_TOOLCHAIN_EXTERNAL_URL = 'BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/' if "BR2_NEEDS_HOST_JAVA=y\n" in configlines and not sysinfo.has("java"): return False # The ctng toolchain is affected by PR58854 if 'BR2_PACKAGE_LTTNG_TOOLS=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'armv5-ctng-linux-gnueabi.tar.xz"\n' in configlines: return False # The ctng toolchain tigger an assembler error with guile package when compiled with -Os (same issue as for CS ARM 2014.05-29) if 'BR2_PACKAGE_GUILE=y\n' in configlines and \ 'BR2_OPTIMIZE_S=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'armv5-ctng-linux-gnueabi.tar.xz"\n' in configlines: return False # The ctng toolchain is affected by PR58854 if 'BR2_PACKAGE_LTTNG_TOOLS=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'armv6-ctng-linux-uclibcgnueabi.tar.xz"\n' in configlines: return False # The ctng toolchain is affected by PR58854 if 'BR2_PACKAGE_LTTNG_TOOLS=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'armv7-ctng-linux-gnueabihf.tar.xz"\n' in configlines: return False # The ctng toolchain is affected by PR60155 if 'BR2_PACKAGE_SDL=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'powerpc-ctng-linux-uclibc.tar.xz"\n' in configlines: return False # The ctng toolchain is affected by PR60155 if 'BR2_PACKAGE_LIBMPEG2=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'powerpc-ctng-linux-uclibc.tar.xz"\n' in configlines: return False # This MIPS toolchain uses eglibc-2.18 which lacks SYS_getdents64 if 'BR2_PACKAGE_STRONGSWAN=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'mips64el-ctng_n64-linux-gnu.tar.xz"\n' in configlines: return False # This MIPS toolchain uses eglibc-2.18 which lacks SYS_getdents64 if 'BR2_PACKAGE_PYTHON3=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'mips64el-ctng_n64-linux-gnu.tar.xz"\n' in configlines: return False # libffi not available on sh2a and ARMv7-M, but propagating libffi # arch dependencies in Buildroot is really too much work, so we # handle this here. if 'BR2_sh2a=y\n' in configlines and \ 'BR2_PACKAGE_LIBFFI=y\n' in configlines: return False if 'BR2_ARM_CPU_ARMV7M=y\n' in configlines and \ 'BR2_PACKAGE_LIBFFI=y\n' in configlines: return False if 'BR2_nds32=y\n' in configlines and \ 'BR2_PACKAGE_LIBFFI=y\n' in configlines: return False if 'BR2_PACKAGE_SUNXI_BOARDS=y\n' in configlines: configlines.remove('BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE=""\n') configlines.append('BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE="a10/hackberry.fex"\n') # This MIPS uClibc toolchain fails to build the gdb package if 'BR2_PACKAGE_GDB=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'mipsel-ctng-linux-uclibc.tar.xz"\n' in configlines: return False # This MIPS uClibc toolchain fails to build the rt-tests package if 'BR2_PACKAGE_RT_TESTS=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'mipsel-ctng-linux-uclibc.tar.xz"\n' in configlines: return False # This MIPS uClibc toolchain fails to build the civetweb package if 'BR2_PACKAGE_CIVETWEB=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'mipsel-ctng-linux-uclibc.tar.xz"\n' in configlines: return False # This MIPS ctng toolchain fails to build the python3 package if 'BR2_PACKAGE_PYTHON3=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'mips64el-ctng_n64-linux-gnu.tar.xz"\n' in configlines: return False # This MIPS uClibc toolchain fails to build the strace package if 'BR2_PACKAGE_STRACE=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'mipsel-ctng-linux-uclibc.tar.xz"\n' in configlines: return False # This MIPS uClibc toolchain fails to build the cdrkit package if 'BR2_PACKAGE_CDRKIT=y\n' in configlines and \ 'BR2_STATIC_LIBS=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'mipsel-ctng-linux-uclibc.tar.xz"\n' in configlines: return False # uClibc vfork static linking issue if 'BR2_PACKAGE_ALSA_LIB=y\n' in configlines and \ 'BR2_STATIC_LIBS=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'i486-ctng-linux-uclibc.tar.xz"\n' in configlines: return False # This MIPS uClibc toolchain fails to build the weston package if 'BR2_PACKAGE_WESTON=y\n' in configlines and \ BR2_TOOLCHAIN_EXTERNAL_URL + 'mipsel-ctng-linux-uclibc.tar.xz"\n' in configlines: return False # The cs nios2 2017.02 toolchain is affected by binutils PR19405 if 'BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII=y\n' in configlines and \ 'BR2_PACKAGE_BOOST=y\n' in configlines: return False # The cs nios2 2017.02 toolchain is affected by binutils PR19405 if 'BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII=y\n' in configlines and \ 'BR2_PACKAGE_QT5BASE_GUI=y\n' in configlines: return False # The cs nios2 2017.02 toolchain is affected by binutils PR19405 if 'BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII=y\n' in configlines and \ 'BR2_PACKAGE_FLANN=y\n' in configlines: return False if 'BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE=y\n' in configlines: bootenv = os.path.join(args.outputdir, "boot_env.txt") with open(bootenv, "w+") as bootenvf: bootenvf.write("prop=value") configlines.remove('BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE=""\n') configlines.append('BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE="%s"\n' % bootenv) configlines.remove('BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE=""\n') configlines.append('BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE="0x1000"\n') if 'BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y\n' in configlines: bootscr = os.path.join(args.outputdir, "boot_script.txt") with open(bootscr, "w+") as bootscrf: bootscrf.write("prop=value") configlines.remove('BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE=""\n') configlines.append('BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="%s"\n' % bootscr) with open(configfile, "w+") as configf: configf.writelines(configlines) return True def gen_config(args): """Generate a new random configuration This function generates the configuration, by choosing a random toolchain configuration and then generating a random selection of packages. """ sysinfo = SystemInfo() # Select a random toolchain configuration configs = get_toolchain_configs(args.toolchains_csv, args.buildrootdir) i = randint(0, len(configs) - 1) toolchainconfig = configs[i] configlines = list(toolchainconfig) # Combine with the minimal configuration minimalconfigfile = os.path.join(args.buildrootdir, 'support/config-fragments/minimal.config') with open(minimalconfigfile) as minimalf: configlines += minimalf.readlines() # Allow hosts with old certificates to download over https configlines.append("BR2_WGET=\"wget --passive-ftp -nd -t 3 --no-check-certificate\"\n") # Per-package folder if randint(0, 15) == 0: configlines.append("BR2_PER_PACKAGE_DIRECTORIES=y\n") # Amend the configuration with a few things. if randint(0, 20) == 0: configlines.append("BR2_ENABLE_DEBUG=y\n") if randint(0, 20) == 0: configlines.append("BR2_ENABLE_RUNTIME_DEBUG=y\n") if randint(0, 1) == 0: configlines.append("BR2_INIT_BUSYBOX=y\n") elif randint(0, 15) == 0: configlines.append("BR2_INIT_SYSTEMD=y\n") elif randint(0, 10) == 0: configlines.append("BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y\n") if randint(0, 20) == 0: configlines.append("BR2_STATIC_LIBS=y\n") if randint(0, 20) == 0: configlines.append("BR2_PACKAGE_PYTHON_PY_ONLY=y\n") if randint(0, 20) == 0: configlines.append("BR2_PACKAGE_PYTHON3_PY_ONLY=y\n") if randint(0, 5) == 0: configlines.append("BR2_OPTIMIZE_2=y\n") if randint(0, 4) == 0: configlines.append("BR2_SYSTEM_ENABLE_NLS=y\n") if randint(0, 4) == 0: configlines.append("BR2_FORTIFY_SOURCE_2=y\n") # Randomly enable BR2_REPRODUCIBLE 10% of times # also enable tar filesystem images for testing if sysinfo.has("diffoscope") and randint(0, 10) == 0: configlines.append("BR2_REPRODUCIBLE=y\n") configlines.append("BR2_TARGET_ROOTFS_TAR=y\n") # Write out the configuration file if not os.path.exists(args.outputdir): os.makedirs(args.outputdir) if args.outputdir == os.path.abspath(os.path.join(args.buildrootdir, "output")): configfile = os.path.join(args.buildrootdir, ".config") else: configfile = os.path.join(args.outputdir, ".config") with open(configfile, "w+") as configf: configf.writelines(configlines) subprocess.check_call(["make", "O=%s" % args.outputdir, "-C", args.buildrootdir, "olddefconfig"]) if not is_toolchain_usable(configfile, toolchainconfig): return 2 # Now, generate the random selection of packages, and fixup # things if needed. # Safe-guard, in case we can not quickly come to a valid # configuration: allow at most 100 (arbitrary) iterations. bounded_loop = 100 while True: if bounded_loop == 0: print("ERROR: cannot generate random configuration after 100 iterations", file=sys.stderr) return 1 bounded_loop -= 1 subprocess.check_call(["make", "O=%s" % args.outputdir, "-C", args.buildrootdir, "KCONFIG_PROBABILITY=%d" % randint(1, 20), "randpackageconfig"]) if fixup_config(sysinfo, configfile): break subprocess.check_call(["make", "O=%s" % args.outputdir, "-C", args.buildrootdir, "olddefconfig"]) subprocess.check_call(["make", "O=%s" % args.outputdir, "-C", args.buildrootdir, "savedefconfig"]) return subprocess.call(["make", "O=%s" % args.outputdir, "-C", args.buildrootdir, "dependencies"]) if __name__ == '__main__': import argparse parser = argparse.ArgumentParser(description="Generate a random configuration") parser.add_argument("--outputdir", "-o", help="Output directory (relative to current directory)", type=str, default='output') parser.add_argument("--buildrootdir", "-b", help="Buildroot directory (relative to current directory)", type=str, default='.') parser.add_argument("--toolchains-csv", help="Path of the toolchain configuration file", type=str, default="support/config-fragments/autobuild/toolchain-configs.csv") args = parser.parse_args() # We need the absolute path to use with O=, because the relative # path to the output directory here is not relative to the # Buildroot sources, but to the current directory. args.outputdir = os.path.abspath(args.outputdir) try: ret = gen_config(args) except Exception as e: print(str(e), file=sys.stderr) parser.exit(1) parser.exit(ret) ================================================ FILE: utils/get-developers ================================================ #!/usr/bin/env python3 import argparse import getdeveloperlib import sys def parse_args(): parser = argparse.ArgumentParser() parser.add_argument('patches', metavar='P', type=argparse.FileType('r'), nargs='*', help='list of patches (use - to read patches from stdin)') parser.add_argument('-a', dest='architecture', action='store', help='find developers in charge of this architecture') parser.add_argument('-p', dest='package', action='store', help='find developers in charge of this package') parser.add_argument('-f', dest='files', nargs='*', help='find developers in charge of these files') parser.add_argument('-c', dest='check', action='store_const', const=True, help='list files not handled by any developer') parser.add_argument('-e', dest='email', action='store_const', const=True, help='only list affected developer email addresses') return parser.parse_args() def __main__(): args = parse_args() # Check that only one action is given action = 0 if args.architecture is not None: action += 1 if args.package is not None: action += 1 if args.files: action += 1 if args.check: action += 1 if len(args.patches) != 0: action += 1 if action > 1: print("Cannot do more than one action") return if action == 0: print("No action specified") return devs = getdeveloperlib.parse_developers() if devs is None: sys.exit(1) # Handle the check action if args.check: files = getdeveloperlib.check_developers(devs) for f in files: print(f) # Handle the architecture action if args.architecture is not None: for dev in devs: if args.architecture in dev.architectures: print(dev.name) return # Handle the package action if args.package is not None: for dev in devs: if args.package in dev.packages: print(dev.name) return # Handle the files action if args.files is not None: for dev in devs: for f in args.files: if dev.hasfile(f): print(dev.name) break # Handle the patches action if len(args.patches) != 0: (files, infras) = getdeveloperlib.analyze_patches(args.patches) matching_devs = set() for dev in devs: # See if we have developers matching by package name for f in files: if dev.hasfile(f): matching_devs.add(dev.name) # See if we have developers matching by package infra for i in infras: if i in dev.infras: matching_devs.add(dev.name) if args.email: for dev in matching_devs: print(dev) else: result = "--to buildroot@buildroot.org" for dev in matching_devs: result += " --cc \"%s\"" % dev if result != "": print("git send-email %s" % result) __main__() ================================================ FILE: utils/getdeveloperlib.py ================================================ from io import open import os import re import glob import subprocess import sys import unittest brpath = os.path.normpath(os.path.join(os.path.dirname(__file__), "..")) # # Patch parsing functions # FIND_INFRA_IN_PATCH = re.compile(r"^\+\$\(eval \$\((host-)?([^-]*)-package\)\)$") def analyze_patch(patch): """Parse one patch and return the list of files modified, added or removed by the patch.""" files = set() infras = set() for line in patch: # If the patch is adding a package, find which infra it is m = FIND_INFRA_IN_PATCH.match(line) if m: infras.add(m.group(2)) if not line.startswith("+++ "): continue line.strip() fname = line[line.find("/") + 1:].strip() if fname == "dev/null": continue files.add(fname) return (files, infras) FIND_INFRA_IN_MK = re.compile(r"^\$\(eval \$\((host-)?([^-]*)-package\)\)$") def fname_get_package_infra(fname): """Checks whether the file name passed as argument is a Buildroot .mk file describing a package, and find the infrastructure it's using.""" if not fname.endswith(".mk"): return None if not os.path.exists(fname): return None with open(fname, "r") as f: for line in f: line = line.strip() m = FIND_INFRA_IN_MK.match(line) if m: return m.group(2) return None def analyze_patches(patches): """Parse a list of patches and returns the list of files modified, added or removed by the patches, as well as the list of package infrastructures used by those patches (if any)""" allfiles = set() allinfras = set() for patch in patches: (files, infras) = analyze_patch(patch) allfiles = allfiles | files allinfras = allinfras | infras return (allfiles, allinfras) # # Unit-test parsing functions # def get_all_test_cases(suite): """Generate all test-cases from a given test-suite. :return: (test.module, test.name)""" if issubclass(type(suite), unittest.TestSuite): for test in suite: for res in get_all_test_cases(test): yield res else: yield (suite.__module__, suite.__class__.__name__) def list_unittests(): """Use the unittest module to retreive all test cases from a given directory""" loader = unittest.TestLoader() suite = loader.discover(os.path.join(brpath, "support", "testing")) tests = {} for module, test in get_all_test_cases(suite): module_path = os.path.join("support", "testing", *module.split('.')) tests.setdefault(module_path, []).append('%s.%s' % (module, test)) return tests unittests = {} # # DEVELOPERS file parsing functions # class Developer: def __init__(self, name, files): self.name = name self.files = files self.packages = parse_developer_packages(files) self.architectures = parse_developer_architectures(files) self.infras = parse_developer_infras(files) self.runtime_tests = parse_developer_runtime_tests(files) self.defconfigs = parse_developer_defconfigs(files) def hasfile(self, f): for fs in self.files: if f.startswith(fs): return True return False def __repr__(self): name = '\'' + self.name.split(' <')[0][:20] + '\'' things = [] if len(self.files): things.append('{} files'.format(len(self.files))) if len(self.packages): things.append('{} pkgs'.format(len(self.packages))) if len(self.architectures): things.append('{} archs'.format(len(self.architectures))) if len(self.infras): things.append('{} infras'.format(len(self.infras))) if len(self.runtime_tests): things.append('{} tests'.format(len(self.runtime_tests))) if len(self.defconfigs): things.append('{} defconfigs'.format(len(self.defconfigs))) if things: return 'Developer <{} ({})>'.format(name, ', '.join(things)) else: return 'Developer <' + name + '>' def parse_developer_packages(fnames): """Given a list of file patterns, travel through the Buildroot source tree to find which packages are implemented by those file patterns, and return a list of those packages.""" packages = set() for fname in fnames: for root, dirs, files in os.walk(os.path.join(brpath, fname)): for f in files: path = os.path.join(root, f) if fname_get_package_infra(path): pkg = os.path.splitext(f)[0] packages.add(pkg) return packages def parse_arches_from_config_in(fname): """Given a path to an arch/Config.in.* file, parse it to get the list of BR2_ARCH values for this architecture.""" arches = set() with open(fname, "r") as f: parsing_arches = False for line in f: line = line.strip() if line == "config BR2_ARCH": parsing_arches = True continue if parsing_arches: m = re.match(r"^\s*default \"([^\"]*)\".*", line) if m: arches.add(m.group(1)) else: parsing_arches = False return arches def parse_developer_architectures(fnames): """Given a list of file names, find the ones starting by 'arch/Config.in.', and use that to determine the architecture a developer is working on.""" arches = set() for fname in fnames: if not re.match(r"^.*/arch/Config\.in\..*$", fname): continue arches = arches | parse_arches_from_config_in(fname) return arches def parse_developer_infras(fnames): infras = set() for fname in fnames: m = re.match(r"^package/pkg-([^.]*).mk$", fname) if m: infras.add(m.group(1)) return infras def parse_developer_defconfigs(fnames): """Given a list of file names, returns the config names corresponding to defconfigs.""" return {os.path.basename(fname[:-10]) for fname in fnames if fname.endswith('_defconfig')} def parse_developer_runtime_tests(fnames): """Given a list of file names, returns the runtime tests corresponding to the file.""" all_files = [] # List all files recursively for fname in fnames: if os.path.isdir(fname): for root, _dirs, files in os.walk(os.path.join(brpath, fname)): all_files += [os.path.join(root, f) for f in files] else: all_files.append(fname) # Get all runtime tests runtimes = set() for f in all_files: name = os.path.splitext(f)[0] if name in unittests: runtimes |= set(unittests[name]) return runtimes def parse_developers(): """Parse the DEVELOPERS file and return a list of Developer objects.""" developers = [] linen = 0 global unittests unittests = list_unittests() developers_fname = os.path.join(brpath, 'DEVELOPERS') with open(developers_fname, mode='r', encoding='utf_8') as f: files = [] name = None for line in f: line = line.strip() if line.startswith("#"): continue elif line.startswith("N:"): if name is not None or len(files) != 0: print("Syntax error in DEVELOPERS file, line %d" % linen, file=sys.stderr) name = line[2:].strip() elif line.startswith("F:"): fname = line[2:].strip() dev_files = glob.glob(os.path.join(brpath, fname)) if len(dev_files) == 0: print("WARNING: '%s' doesn't match any file" % fname, file=sys.stderr) for f in dev_files: dev_file = os.path.relpath(f, brpath) dev_file = dev_file.replace(os.sep, '/') # force unix sep files.append(dev_file) elif line == "": if not name: continue developers.append(Developer(name, files)) files = [] name = None else: print("Syntax error in DEVELOPERS file, line %d: '%s'" % (linen, line), file=sys.stderr) return None linen += 1 # handle last developer if name is not None: developers.append(Developer(name, files)) return developers def check_developers(developers, basepath=None): """Look at the list of files versioned in Buildroot, and returns the list of files that are not handled by any developer""" if basepath is None: basepath = os.getcwd() cmd = ["git", "--git-dir", os.path.join(basepath, ".git"), "ls-files"] files = subprocess.check_output(cmd).decode(sys.stdout.encoding).strip().split("\n") unhandled_files = [] for f in files: handled = False for d in developers: if d.hasfile(f): handled = True break if not handled: unhandled_files.append(f) return unhandled_files ================================================ FILE: utils/readme.txt ================================================ This directory contains various useful scripts and tools for working with Buildroot. You need not add this directory in your PATH to use any of those tools, but you may do so if you want. brmake a script that can be run instead of make, that prepends the date in front of each line, redirects all of the build output to a file ("'br.log' in the current directory), and just outputs the Buildroot messages (those lines starting with >>>) on stdout. Do not run this script for interactive configuration (e.g. menuconfig) or on an unconfigured directory. The output is redirected so you will see nothing. check-package a script that checks the coding style of a package's Config.in and .mk files, and also tests them for various types of typoes. genrandconfig a script that generates a random configuration, used by the autobuilders (http://autobuild.buildroot.org). It selects a random toolchain from support/config-fragments/autobuild and randomly selects packages to build. get-developpers a script to return the list of people interested in a specific part of Buildroot, so they can be Cc:ed on a mail. Accepts a patch as input, a package name or and architecture name. scancpan a script to create a Buildroot package by scanning a CPAN module description. scanpypi a script to create a Buildroot package by scanning a PyPI package description. size-stats-compare a script to compare the rootfs size between two different Buildroot configurations. This can be used to identify the size impact of a specific option, of a set of specific options, or of an update to a newer Buildroot version... test-pkg a script that tests a specific package against a set of various toolchains, with the goal to detect toolchain-related dependencies (wchar, threads...) ================================================ FILE: utils/scancpan ================================================ #!/usr/bin/env perl # This chunk of stuff was generated by App::FatPacker. To find the original # file's code, look for the end of this BEGIN block or the string 'FATPACK' BEGIN { my %fatpacked; $fatpacked{"MetaCPAN/API/Tiny.pm"} = <<'METACPAN_API_TINY'; package MetaCPAN::API::Tiny; { $MetaCPAN::API::Tiny::VERSION = '1.131730'; } use strict; use warnings; # ABSTRACT: A Tiny API client for MetaCPAN use Carp; use JSON::PP 'encode_json', 'decode_json'; use HTTP::Tiny; sub new { my ($class, @args) = @_; $#_ % 2 == 0 or croak 'Arguments must be provided as name/value pairs'; my %params = @args; die 'ua_args must be an array reference' if $params{ua_args} && ref($params{ua_args}) ne 'ARRAY'; my $self = +{ base_url => $params{base_url} || 'http://api.metacpan.org/v0', ua => $params{ua} || HTTP::Tiny->new( $params{ua_args} ? @{$params{ua_args}} : (agent => 'MetaCPAN::API::Tiny/' . ($MetaCPAN::API::VERSION || 'xx'))), }; return bless($self, $class); } sub _build_extra_params { my $self = shift; @_ % 2 == 0 or croak 'Incorrect number of params, must be key/value'; my %extra = @_; my $ua = $self->{ua}; foreach my $key (keys %extra) { # The implementation in HTTP::Tiny uses + instead of %20, fix that $extra{$key} = $ua->_uri_escape($extra{$key}); $extra{$key} =~ s/\+/%20/g; } my $params = join '&', map { "$_=" . $extra{$_} } sort keys %extra; return $params; } # /source/{author}/{release}/{path} sub source { my $self = shift; my %opts = @_ ? @_ : (); my $url = ''; my $error = "Provide 'author' and 'release' and 'path'"; %opts or croak $error; if ( defined ( my $author = $opts{'author'} ) && defined ( my $release = $opts{'release'} ) && defined ( my $path = $opts{'path'} ) ) { $url = "source/$author/$release/$path"; } else { croak $error; } $url = $self->{base_url} . "/$url"; my $result = $self->{ua}->get($url); $result->{'success'} or croak "Failed to fetch '$url': " . $result->{'reason'}; return $result->{'content'}; } # /release/{distribution} # /release/{author}/{release} sub release { my $self = shift; my %opts = @_ ? @_ : (); my $url = ''; my $error = "Either provide 'distribution', or 'author' and 'release', " . "or 'search'"; %opts or croak $error; my %extra_opts = (); if ( defined ( my $dist = $opts{'distribution'} ) ) { $url = "release/$dist"; } elsif ( defined ( my $author = $opts{'author'} ) && defined ( my $release = $opts{'release'} ) ) { $url = "release/$author/$release"; } elsif ( defined ( my $search_opts = $opts{'search'} ) ) { ref $search_opts && ref $search_opts eq 'HASH' or croak $error; %extra_opts = %{$search_opts}; $url = 'release/_search'; } else { croak $error; } return $self->fetch( $url, %extra_opts ); } # /pod/{module} # /pod/{author}/{release}/{path} sub pod { my $self = shift; my %opts = @_ ? @_ : (); my $url = ''; my $error = "Either provide 'module' or 'author and 'release' and 'path'"; %opts or croak $error; if ( defined ( my $module = $opts{'module'} ) ) { $url = "pod/$module"; } elsif ( defined ( my $author = $opts{'author'} ) && defined ( my $release = $opts{'release'} ) && defined ( my $path = $opts{'path'} ) ) { $url = "pod/$author/$release/$path"; } else { croak $error; } # check content-type my %extra = (); if ( defined ( my $type = $opts{'content-type'} ) ) { $type =~ m{^ text/ (?: html|plain|x-pod|x-markdown ) $}x or croak 'Incorrect content-type provided'; $extra{headers}{'content-type'} = $type; } $url = $self->{base_url}. "/$url"; my $result = $self->{ua}->get( $url, \%extra ); $result->{'success'} or croak "Failed to fetch '$url': " . $result->{'reason'}; return $result->{'content'}; } # /module/{module} sub module { my $self = shift; my $name = shift; $name or croak 'Please provide a module name'; return $self->fetch("module/$name"); } # file() is a synonym of module sub file { goto &module } # /author/{author} sub author { my $self = shift; my ( $pause_id, $url, %extra_opts ); if ( @_ == 1 ) { $url = 'author/' . shift; } elsif ( @_ == 2 ) { my %opts = @_; if ( defined $opts{'pauseid'} ) { $url = "author/" . $opts{'pauseid'}; } elsif ( defined $opts{'search'} ) { my $search_opts = $opts{'search'}; ref $search_opts && ref $search_opts eq 'HASH' or croak "'search' key must be hashref"; %extra_opts = %{$search_opts}; $url = 'author/_search'; } else { croak 'Unknown option given'; } } else { croak 'Please provide an author PAUSEID or a "search"'; } return $self->fetch( $url, %extra_opts ); } sub fetch { my $self = shift; my $url = shift; my $extra = $self->_build_extra_params(@_); my $base = $self->{base_url}; my $req_url = $extra ? "$base/$url?$extra" : "$base/$url"; my $result = $self->{ua}->get($req_url); return $self->_decode_result( $result, $req_url ); } sub post { my $self = shift; my $url = shift; my $query = shift; my $base = $self->{base_url}; defined $url or croak 'First argument of URL must be provided'; ref $query and ref $query eq 'HASH' or croak 'Second argument of query hashref must be provided'; my $query_json = encode_json( $query ); my $result = $self->{ua}->request( 'POST', "$base/$url", { headers => { 'Content-Type' => 'application/json' }, content => $query_json, } ); return $self->_decode_result( $result, $url, $query_json ); } sub _decode_result { my $self = shift; my ( $result, $url, $original ) = @_; my $decoded_result; ref $result and ref $result eq 'HASH' or croak 'First argument must be hashref'; defined $url or croak 'Second argument of a URL must be provided'; if ( defined ( my $success = $result->{'success'} ) ) { my $reason = $result->{'reason'} || ''; $reason .= ( defined $original ? " (request: $original)" : '' ); $success or croak "Failed to fetch '$url': $reason"; } else { croak 'Missing success in return value'; } defined ( my $content = $result->{'content'} ) or croak 'Missing content in return value'; eval { $decoded_result = decode_json $content; 1 } or do { croak "Couldn't decode '$content': $@" }; return $decoded_result; } 1; __END__ =pod =head1 NAME MetaCPAN::API::Tiny - A Tiny API client for MetaCPAN =head1 VERSION version 1.131730 =head1 DESCRIPTION This is the Tiny version of L. It implements a compatible API with a few notable exceptions: =over 4 =item Attributes are direct hash access The attributes defined using Mo(o|u)se are now accessed via the blessed hash directly. There are no accessors defined to access this elements. =item Exception handling Instead of using Try::Tiny, raw evals are used. This could potentially cause issues, so just be aware. =item Testing Test::Fatal was replaced with an eval implementation of exception(). Test::TinyMocker usage is retained, but may be absorbed since it is pure perl =back =head1 CLASS_METHODS =head2 new new is the constructor for MetaCPAN::API::Tiny. In the non-tiny version of this module, this is provided via Any::Moose built from the attributes defined. In the tiny version, we define our own constructor. It takes the same arguments and provides similar checks to MetaCPAN::API with regards to arguments passed. =head1 PUBLIC_METHODS =head2 source my $source = $mcpan->source( author => 'DOY', release => 'Moose-2.0201', path => 'lib/Moose.pm', ); Searches MetaCPAN for a module or a specific release and returns the plain source. =head2 release my $result = $mcpan->release( distribution => 'Moose' ); # or my $result = $mcpan->release( author => 'DOY', release => 'Moose-2.0001' ); Searches MetaCPAN for a dist. You can do complex searches using 'search' parameter: # example lifted from MetaCPAN docs my $result = $mcpan->release( search => { author => "OALDERS AND ", filter => "status:latest", fields => "name", size => 1, }, ); =head2 pod my $result = $mcpan->pod( module => 'Moose' ); # or my $result = $mcpan->pod( author => 'DOY', release => 'Moose-2.0201', path => 'lib/Moose.pm', ); Searches MetaCPAN for a module or a specific release and returns the POD. =head2 module my $result = $mcpan->module('MetaCPAN::API'); Searches MetaCPAN and returns a module's ".pm" file. =head2 file A synonym of L =head2 author my $result1 = $mcpan->author('XSAWYERX'); my $result2 = $mcpan->author( pauseid => 'XSAWYERX' ); Searches MetaCPAN for a specific author. You can do complex searches using 'search' parameter: # example lifted from MetaCPAN docs my $result = $mcpan->author( search => { q => 'profile.name:twitter', size => 1, }, ); =head2 fetch my $result = $mcpan->fetch('/release/distribution/Moose'); # with parameters my $more = $mcpan->fetch( '/release/distribution/Moose', param => 'value', ); This is a helper method for API implementations. It fetches a path from MetaCPAN, decodes the JSON from the content variable and returns it. You don't really need to use it, but you can in case you want to write your own extension implementation to MetaCPAN::API. It accepts an additional hash as "GET" parameters. =head2 post # /release&content={"query":{"match_all":{}},"filter":{"prefix":{"archive":"Cache-Cache-1.06"}}} my $result = $mcpan->post( 'release', { query => { match_all => {} }, filter => { prefix => { archive => 'Cache-Cache-1.06' } }, }, ); The POST equivalent of the "fetch()" method. It gets the path and JSON request. =head1 THANKS Overall the tests and code were ripped directly from MetaCPAN::API and tiny-fied. A big thanks to Sawyer X for writing the original module. =head1 AUTHOR Nicholas R. Perez =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2013 by Nicholas R. Perez . This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut METACPAN_API_TINY s/^ //mg for values %fatpacked; unshift @INC, sub { if (my $fat = $fatpacked{$_[1]}) { if ($] < 5.008) { return sub { return 0 unless length $fat; $fat =~ s/^([^\n]*\n?)//; $_ = $1; return 1; }; } open my $fh, '<', \$fat or die "FatPacker error loading $_[1] (could be a perl installation issue?)"; return $fh; } return }; } # END OF FATPACK CODE use 5.010; use strict; use warnings; use Fatal qw(open close); use Getopt::Long; use Pod::Usage; use File::Basename; use File::Path qw(make_path); use Module::CoreList; use HTTP::Tiny; use Safe; use MetaCPAN::API::Tiny; use Digest::SHA qw(sha256_hex); use Text::Wrap; $Text::Wrap::columns = 62; # Below, 5.032 should be aligned with the version of perl actually # bundled in Buildroot: die <<"MSG" if $] < 5.032; 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.32.0 MSG my ($help, $man, $quiet, $force, $recommend, $test, $host); my $target = 1; GetOptions( 'help|?' => \$help, 'man' => \$man, 'quiet|q' => \$quiet, 'force|f' => \$force, 'host!' => \$host, 'target!' => \$target, 'recommend' => \$recommend, 'test' => \$test ) or pod2usage(-exitval => 1); pod2usage(-exitval => 0) if $help; pod2usage(-exitval => 0, -verbose => 2) if $man; pod2usage(-exitval => 1) if scalar @ARGV == 0; my %dist; # name -> metacpan data my %need_target; # name -> 1 if target package is needed my %need_host; # name -> 1 if host package is needed my %need_dlopen; # name -> 1 if requires dynamic library my %is_xs; # name -> 1 if XS module my %deps_build; # name -> list of host dependencies my %deps_runtime; # name -> list of target dependencies my %license_files; # name -> hash of license files my %checksum; # author -> list of checksum my $mirror = 'http://cpan.metacpan.org'; # a CPAN mirror my $mcpan = MetaCPAN::API::Tiny->new(base_url => 'http://fastapi.metacpan.org/v1'); my $ua = HTTP::Tiny->new(); my $new_pkgs; my %white_list = ( 'ExtUtils-Config' => 1, 'ExtUtils-InstallPaths' => 1, 'ExtUtils-Helpers' => 1, 'File-ShareDir-Install' => 1, 'Module-Build' => 1, 'Module-Build-Tiny' => 1, ); my @info = (); sub get_checksum { my ($url) = @_; my ($path) = $url =~ m|^[^:/?#]+://[^/?#]*([^?#]*)|; my ($basename, $dirname) = fileparse( $path ); unless ($checksum{$dirname}) { my $url = $mirror . $dirname . q{CHECKSUMS}; my $response = $ua->get($url); $checksum{$dirname} = $response->{content}; } my $chksum = Safe->new->reval($checksum{$dirname}); return $chksum->{$basename}, $basename; } sub is_xs { my ($manifest) = @_; # This heuristic determines if a module is a native extension, by searching # some file extension types in the MANIFEST of the distribution. # It was inspired by http://deps.cpantesters.org/static/purity.html return $manifest =~ m/\.(swg|xs|c|h|i)[\n\s]/; } sub find_license_files { my ($manifest) = @_; my @license_files; foreach (split /\n/, $manifest) { next if m|/|; s|\s+.*$||; push @license_files, $_ if m/(ARTISTIC|COPYING|COPYRIGHT|GPL\S*|LICENSE|LICENCE)/i; } if (scalar @license_files == 0 && $manifest =~ m/(README)[\n\s]/i) { @license_files = ($1); } if (scalar @license_files == 0 && $manifest =~ m/(README\.md)[\n\s]/i) { @license_files = ($1); } if (scalar @license_files == 0 && $manifest =~ m/(README\.pod)[\n\s]/i) { @license_files = ($1); } return @license_files; } sub want_test { my ($distname) = @_; return 1 if $need_dlopen{$distname} && scalar @{$deps_runtime{$distname}} > 0; } sub get_dependencies { my ($distname) = @_; my %dep = map { $_ => 1 } @{$deps_runtime{$distname}}; for my $direct (@{$deps_runtime{$distname}}) { for (get_dependencies( $direct )) { $dep{$_} = 1; } } return keys %dep; } sub get_indirect_dependencies { my ($distname) = @_; my %indirect; my %direct = map { $_ => 1 } @{$deps_runtime{$distname}}; for my $dep (get_dependencies( $distname )) { $indirect{$dep} = 1 unless exists $direct{$dep}; } return keys %indirect; } sub fetch { 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} && !$top) { say qq{fetch ${name}} unless $quiet; my $result = $mcpan->release( distribution => $name ); my $main_module = $result->{main_module}; push @info, qq{[$name] $main_module is a core module} if $top && Module::CoreList::is_core( $main_module, undef, $] ); $dist{$name} = $result; $license_files{$name} = {}; eval { my $author = $result->{author}; my $release = $name . q{-} . $result->{version}; my $manifest = $mcpan->source( author => $author, release => $release, path => 'MANIFEST' ); $need_dlopen{$name} = $is_xs{$name} = is_xs( $manifest ); foreach my $fname (find_license_files( $manifest )) { my $license = $mcpan->source( author => $author, release => $release, path => $fname ); $license_files{$name}->{$fname} = sha256_hex( $license ); } }; if ($@) { warn $@; } 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 && $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 ${$dep}{phase} eq q{x_Dist_Zilla}; next if !($test && $top) && ${$dep}{phase} eq q{test}; my $distname = $mcpan->module( $modname )->{distribution}; if (${$dep}{phase} eq q{runtime}) { if (${$dep}{relationship} eq q{requires}) { $runtime{$distname} = 1; } else { $optional{$distname} = 1 if $recommend && $top; } } else { # configure, build $build{$distname} = 1; push @info, qq{[$name] suspicious dependency on $distname} unless exists $white_list{$distname}; } } $deps_build{$name} = [keys %build]; $deps_runtime{$name} = [keys %runtime]; foreach my $distname (@{$deps_build{$name}}) { fetch( $distname, 0, 1 ); } foreach my $distname (@{$deps_runtime{$name}}) { fetch( $distname, $need_target, $need_host ); $need_dlopen{$name} ||= $need_dlopen{$distname}; } foreach my $distname (keys %optional) { fetch( $distname, $need_target, $need_host ); } } return; } foreach my $distname (@ARGV) { # Command-line's distributions fetch( $distname, !!$target, !!$host, 1 ); } say scalar keys %dist, q{ packages fetched.} unless $quiet; # Buildroot package name: lowercase sub fsname { my $name = shift; $name =~ s|_|-|g; return q{perl-} . lc $name; } # Buildroot variable name: uppercase sub brname { my $name = shift; $name =~ s|-|_|g; return uc $name; } # Buildroot requires license name as in http://spdx.org/licenses/ sub brlicense { my $license = shift; $license =~ s|apache_1_1|Apache-1.1|; $license =~ s|apache_2_0|Apache-2.0|; $license =~ s|artistic_2|Artistic-2.0|; $license =~ s|artistic|Artistic-1.0|; $license =~ s|lgpl_2_1|LGPL-2.1|; $license =~ s|lgpl_3_0|LGPL-3.0|; $license =~ s|gpl_2|GPL-2.0|; $license =~ s|gpl_3|GPL-3.0|; $license =~ s|mit|MIT|; $license =~ s|mozilla_1_1|Mozilla-1.1|; $license =~ s|openssl|OpenSSL|; $license =~ s|perl_5|Artistic or GPL-1.0+|; return $license; } while (my ($distname, $dist) = each %dist) { my $fsname = fsname( $distname ); my $dirname = q{package/} . $fsname; my $cfgname = $dirname . q{/Config.in}; my $mkname = $dirname . q{/} . $fsname . q{.mk}; my $hashname = $dirname . q{/} . $fsname . q{.hash}; my $brname = brname( $fsname ); my $testdir = q{support/testing/tests/package}; my $testname = $testdir . q{/test_} . lc $brname . q{.py}; unless (-d $dirname) { make_path $dirname; $new_pkgs = 1; } if ($need_target{$distname} && ($force || !-f $cfgname)) { $dist->{abstract} =~ s|\s+$||; $dist->{abstract} .= q{.} unless $dist->{abstract} =~ m|\.$|; my $abstract = wrap( q{}, qq{\t }, $dist->{abstract} ); my $homepage = $dist->{resources}->{homepage} || qq{https://metacpan.org/release/${distname}}; say qq{write ${cfgname}} unless $quiet; open my $fh, q{>}, $cfgname; say {$fh} qq{config BR2_PACKAGE_${brname}}; say {$fh} qq{\tbool "${fsname}"}; say {$fh} qq{\tdepends on !BR2_STATIC_LIBS} if $need_dlopen{$distname}; foreach my $dep (sort @{$deps_runtime{$distname}}) { my $brdep = brname( fsname( $dep ) ); say {$fh} qq{\tselect BR2_PACKAGE_${brdep} # runtime}; } say {$fh} qq{\thelp}; say {$fh} qq{\t ${abstract}\n} if $abstract; say {$fh} qq{\t ${homepage}}; if ($need_dlopen{$distname}) { say {$fh} qq{\ncomment "${fsname} needs a toolchain w/ dynamic library"}; say {$fh} qq{\tdepends on BR2_STATIC_LIBS}; } close $fh; } if ($force || !-f $mkname) { my $version = $dist->{version}; my ($path) = $dist->{download_url} =~ m|^[^:/?#]+://[^/?#]*([^?#]*)|; # this URL contains only the scheme, auth and path parts (but no query and fragment parts) # the scheme is not used, because the job is done by the BR download infrastructure # the auth part is not used, because we use $(BR2_CPAN_MIRROR) my ($filename, $directories, $suffix) = fileparse( $path, q{tar.gz}, q{tgz} ); $directories =~ s|/$||; my @dependencies = map( { q{host-} . fsname( $_ ); } sort @{$deps_build{$distname}} ); my $dependencies = join qq{ \\\n\t}, @dependencies; $dependencies = qq{\\\n\t} . $dependencies if scalar @dependencies > 1; my @host_dependencies = map { q{host-} . fsname( $_ ); } sort( @{$deps_build{$distname}}, @{$deps_runtime{$distname}} ); my $host_dependencies = join qq{ \\\n\t}, @host_dependencies; $host_dependencies = qq{\\\n\t} . $host_dependencies if scalar @host_dependencies > 1; my $license = brlicense( ref $dist->{license} eq 'ARRAY' ? join q{ or }, @{$dist->{license}} : $dist->{license} ); my $license_files = join q{ }, sort keys %{$license_files{$distname}}; if ($license_files && (!$license || $license eq q{unknown})) { push @info, qq{[$distname] undefined LICENSE, see $license_files}; $license = q{???}; } say qq{write ${mkname}} unless $quiet; open my $fh, q{>}, $mkname; say {$fh} qq{################################################################################}; say {$fh} qq{#}; say {$fh} qq{# ${fsname}}; say {$fh} qq{#}; say {$fh} qq{################################################################################}; say {$fh} qq{}; say {$fh} qq{${brname}_VERSION = ${version}}; say {$fh} qq{${brname}_SOURCE = ${distname}-\$(${brname}_VERSION).${suffix}}; say {$fh} qq{${brname}_SITE = \$(BR2_CPAN_MIRROR)${directories}}; say {$fh} qq{${brname}_DEPENDENCIES = ${dependencies}} if $need_target{$distname} && $dependencies; say {$fh} qq{HOST_${brname}_DEPENDENCIES = ${host_dependencies}} if $need_host{$distname} && $host_dependencies; say {$fh} qq{${brname}_LICENSE = ${license}} if $license; say {$fh} qq{${brname}_LICENSE_FILES = ${license_files}} if $license_files; say {$fh} qq{${brname}_DISTNAME = ${distname}}; 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; } if ($force || !-f $hashname) { my ($checksum, $filename) = get_checksum($dist->{download_url}); my $md5 = $checksum->{md5}; my $sha256 = $checksum->{sha256}; say qq{write ${hashname}} unless $quiet; open my $fh, q{>}, $hashname; say {$fh} qq{# retrieved by scancpan from ${mirror}/}; say {$fh} qq{md5 ${md5} ${filename}}; say {$fh} qq{sha256 ${sha256} ${filename}}; my %license_files = %{$license_files{$distname}}; if (scalar keys %license_files) { say {$fh} q{}; say {$fh} qq{# computed by scancpan}; foreach my $license (sort keys %license_files) { my $digest = $license_files{$license}; say {$fh} qq{sha256 ${digest} ${license}}; } } close $fh; } if (want_test( $distname ) && ($force || !-f $testname)) { my $classname = $distname; $classname =~ s|-||g; my $modname = $distname; $modname =~ s|-|::|g; my $mark = $is_xs{$distname} ? q{ XS} : q{}; my @indirect = (get_indirect_dependencies( $distname )); say qq{write ${testname}} unless $quiet; make_path $testdir unless -d $testdir; open my $fh, q{>}, $testname; say {$fh} qq{from tests.package.test_perl import TestPerlBase}; say {$fh} qq{}; say {$fh} qq{}; say {$fh} qq{class TestPerl${classname}(TestPerlBase):}; say {$fh} qq{ """}; say {$fh} qq{ package:}; say {$fh} qq{ ${distname}${mark}}; say {$fh} qq{ direct dependencies:}; foreach my $dep (sort @{$deps_runtime{$distname}}) { $mark = $is_xs{$dep} ? q{ XS} : q{}; say {$fh} qq{ ${dep}${mark}}; } if (scalar @indirect > 0) { say {$fh} qq{ indirect dependencies:}; foreach my $dep (sort @indirect) { $mark = $is_xs{$dep} ? q{ XS} : q{}; say {$fh} qq{ ${dep}${mark}}; } } say {$fh} qq{ """}; say {$fh} qq{}; say {$fh} qq{ config = TestPerlBase.config + \\}; say {$fh} qq{ """}; say {$fh} qq{ BR2_PACKAGE_PERL=y}; say {$fh} qq{ BR2_PACKAGE_${brname}=y}; say {$fh} qq{ """}; say {$fh} qq{}; say {$fh} qq{ def test_run(self):}; say {$fh} qq{ self.login()}; foreach my $dep (sort grep { $is_xs{$_} } @indirect) { $dep =~ s|-|::|g; say {$fh} qq{ self.module_test("${dep}")}; } foreach my $dep (sort grep { $is_xs{$_} } @{$deps_runtime{$distname}}) { $dep =~ s|-|::|g; say {$fh} qq{ self.module_test("${dep}")}; } say {$fh} qq{ self.module_test("${modname}")}; close $fh; } } if ($new_pkgs) { my %pkg; my $cfgname = q{package/Config.in}; if (-f $cfgname) { open my $fh, q{<}, $cfgname; while (<$fh>) { chomp; $pkg{$_} = 1 if m|package/perl-|; } close $fh; } foreach my $distname (keys %need_target) { my $fsname = fsname( $distname ); $pkg{qq{\tsource "package/${fsname}/Config.in"}} = 1; } say qq{${cfgname} must contain the following lines:}; say join qq{\n}, sort keys %pkg; } say join qq{\n}, @info; __END__ =head1 NAME utils/scancpan Try-Tiny Moo =head1 SYNOPSIS utils/scancpan [options] [distname ...] Options: -help -man -quiet -force -target/-notarget -host/-nohost -recommend -test =head1 OPTIONS =over 8 =item B<-help> Prints a brief help message and exits. =item B<-man> Prints the manual page and exits. =item B<-quiet> Executes without output =item B<-force> Forces the overwriting of existing files. =item B<-target/-notarget> Switches package generation for the target variant (the default is C<-target>). =item B<-host/-nohost> Switches package generation for the host variant (the default is C<-nohost>). =item B<-recommend> Adds I dependencies. =item B<-test> Adds dependencies for test. =back =head1 DESCRIPTION This script creates templates of the Buildroot package files for all the Perl/CPAN distributions required by the specified distnames. The dependencies and metadata are fetched from https://metacpan.org/. After running this script, it is necessary to check the generated files. For distributions that link against a target library, you have to add the buildroot package name for that library to the DEPENDENCIES variable. See the Buildroot documentation for details on the usage of the Perl infrastructure. The major version of the host perl must be aligned on the target one, in order to work with the right CoreList data. =head1 LICENSE Copyright (C) 2013-2020 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 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 This script is a part of Buildroot. This script requires the module C (version 1.131730) which was included at the beginning of this file by the tool C. See L. See L. These both libraries are free software and may be distributed under the same terms as perl itself. And perl may be distributed under the terms of Artistic v1 or GPL v1 license. =cut ================================================ FILE: utils/scanpypi ================================================ #!/usr/bin/env python3 """ Utility for building Buildroot packages for existing PyPI packages Any package built by scanpypi should be manually checked for errors. """ import argparse import json import sys import os import shutil import tarfile import zipfile import errno import hashlib import re import textwrap import tempfile import imp from functools import wraps import six.moves.urllib.request import six.moves.urllib.error import six.moves.urllib.parse from six.moves import map from six.moves import zip from six.moves import input if six.PY2: import StringIO else: import io BUF_SIZE = 65536 try: import spdx_lookup as liclookup except ImportError: # spdx_lookup is not installed print('spdx_lookup module is not installed. This can lead to an ' 'inaccurate licence detection. Please install it via\n' 'pip install spdx_lookup') liclookup = None 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 # noqa E402 setuptools.setup = setup_decorator(setuptools.setup, 'setuptools') import distutils # noqa E402 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(r'[^\w-]', '', pkg_name.lower()) name = name.replace('_', '-') prefix = 'python-' pattern = re.compile(r'^(?!' + 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 self.license_files = [] def fetch_package_info(self): """ Fetch a package's metadata from the python package index """ self.metadata_url = 'https://pypi.org/pypi/{pkg}/json'.format( pkg=self.real_name) try: pkg_json = six.moves.urllib.request.urlopen(self.metadata_url).read().decode() except six.moves.urllib.error.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 six.moves.urllib.error.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 """ download = None 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'], 'digests': 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 = six.moves.urllib.parse.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 = six.moves.urllib.request.urlopen(download_url['url']) except six.moves.urllib.error.HTTPError as http_error: download = http_error else: self.used_url = download_url self.as_string = download.read() if not download_url['digests']['md5']: break self.md5_sum = hashlib.md5(self.as_string).hexdigest() if self.md5_sum == download_url['digests']['md5']: break if download is None: raise DownloadFailed('Failed to download package {pkg}: ' 'No source archive available' .format(pkg=self.real_name)) elif download.__class__ == six.moves.urllib.error.HTTPError: raise download self.filename = self.used_url['filename'] self.url = self.used_url['url'] def check_archive(self, members): """ Check archive content before extracting Keyword arguments: members -- list of archive members """ # Protect against https://github.com/snyk/zip-slip-vulnerability # Older python versions do not validate that the extracted files are # inside the target directory. Detect and error out on evil paths evil = [e for e in members if os.path.relpath(e).startswith(('/', '..'))] if evil: print('ERROR: Refusing to extract {} with suspicious members {}'.format( self.filename, evil)) sys.exit(1) 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 """ if six.PY2: as_file = StringIO.StringIO(self.as_string) else: as_file = io.BytesIO(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.strerror, file=sys.stderr) return print('WARNING:', exception.strerror, file=sys.stderr) print('Removing {pkg}...'.format(pkg=tmp_pkg)) shutil.rmtree(tmp_pkg) os.makedirs(tmp_pkg) self.check_archive(as_zipfile.namelist()) as_zipfile.extractall(tmp_pkg) pkg_filename = self.filename.split(".zip")[0] 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.strerror, file=sys.stderr) return print('WARNING:', exception.strerror, file=sys.stderr) print('Removing {pkg}...'.format(pkg=tmp_pkg)) shutil.rmtree(tmp_pkg) os.makedirs(tmp_pkg) self.check_archive(as_tarfile.getnames()) as_tarfile.extractall(tmp_pkg) pkg_filename = self.filename.split(".tar")[0] tmp_extract = '{folder}/{name}' self.tmp_extract = tmp_extract.format( folder=tmp_pkg, name=pkg_filename) def load_setup(self): """ Loads the corresponding setup and store its metadata """ current_dir = os.getcwd() os.chdir(self.tmp_extract) sys.path.insert(0, self.tmp_extract) s_file, s_path, s_desc = imp.find_module('setup', [self.tmp_extract]) imp.load_module('__main__', s_file, s_path, s_desc) if self.metadata_name in self.setup_args: pass elif self.metadata_name.replace('_', '-') in self.setup_args: self.metadata_name = self.metadata_name.replace('_', '-') elif self.metadata_name.replace('-', '_') in self.setup_args: self.metadata_name = self.metadata_name.replace('-', '_') try: self.setup_metadata = self.setup_args[self.metadata_name] except KeyError: # This means setup was not called print('ERROR: Could not determine package metadata for {pkg}.\n' .format(pkg=self.real_name)) raise 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(r'([-.\w]+).*', r'\1', req) for req in self.pkg_req] # get rid of commented lines and also strip the package strings self.pkg_req = [item.strip() for item in self.pkg_req if len(item) > 0 and item[0] != '#'] req_not_found = self.pkg_req self.pkg_req = list(map(pkg_buildroot_name, self.pkg_req)) pkg_tuples = list(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) if self.buildroot_name != self.real_name: 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 __get_license_names(self, license_files): """ Try to determine the related license name. There are two possibilities. Either the script tries to get license name from package's metadata or, if spdx_lookup package is available, the script compares license files with SPDX database. """ license_line = '' if liclookup is None: license_dict = { 'Apache Software License': 'Apache-2.0', 'BSD License': 'FIXME: please specify the exact BSD version', 'European Union Public Licence 1.0': 'EUPL-1.0', 'European Union Public Licence 1.1': 'EUPL-1.1', "GNU General Public License": "GPL", "GNU General Public License v2": "GPL-2.0", "GNU General Public License v2 or later": "GPL-2.0+", "GNU General Public License v3": "GPL-3.0", "GNU General Public License v3 or later": "GPL-3.0+", "GNU Lesser General Public License v2": "LGPL-2.1", "GNU Lesser General Public License v2 or later": "LGPL-2.1+", "GNU Lesser General Public License v3": "LGPL-3.0", "GNU Lesser General Public License v3 or later": "LGPL-3.0+", "GNU Library or Lesser General Public License": "LGPL-2.0", "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(r'^License :* *.* *:+ (.*)( \(.*\))?$') classifiers_licenses = [regexp.sub(r"\1", lic) for lic in self.metadata['info']['classifiers'] if regexp.match(lic)] licenses = [license_dict[x] if x in license_dict else x for x in classifiers_licenses] 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']] licenses = set(licenses) license_line = '{name}_LICENSE = {license}\n'.format( name=self.mk_name, license=', '.join(licenses)) else: license_names = [] for license_file in license_files: with open(license_file) as lic_file: match = liclookup.match(lic_file.read()) if match is not None and match.confidence >= 90.0: license_names.append(match.license.id) else: license_names.append("FIXME: license id couldn't be detected") license_names = set(license_names) if len(license_names) > 0: license_line = ('{name}_LICENSE =' ' {names}\n'.format( name=self.mk_name, names=', '.join(license_names))) return license_line def __create_mk_license(self): """ Create the lines referring to the package's license informations of the .mk file The license's files are found by searching the package (case insensitive) for files named license, license.txt etc. If more than one license file is found, the user is asked to select which ones he wants to use. """ lines = [] filenames = ['LICENCE', 'LICENSE', 'LICENSE.MD', 'LICENSE.RST', 'LICENSE.TXT', 'COPYING', 'COPYING.TXT'] self.license_files = list(find_file_upper_case(filenames, self.tmp_extract)) lines.append(self.__get_license_names(self.license_files)) license_files = [license.replace(self.tmp_extract, '')[1:] for license in self.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['digests']['md5'] and self.used_url['digests']['sha256']: hash_header = '# md5, sha256 from {url}\n'.format( url=self.metadata_url) lines.append(hash_header) hash_line = '{method} {digest} {filename}\n'.format( method='md5', digest=self.used_url['digests']['md5'], filename=self.filename) lines.append(hash_line) hash_line = '{method} {digest} {filename}\n'.format( method='sha256', digest=self.used_url['digests']['sha256'], filename=self.filename) lines.append(hash_line) if self.license_files: lines.append('# Locally computed sha256 checksums\n') for license_file in self.license_files: sha256 = hashlib.sha256() with open(license_file, 'rb') as lic_f: while True: data = lic_f.read(BUF_SIZE) if not data: break sha256.update(data) hash_line = '{method} {digest} {filename}\n'.format( method='sha256', digest=sha256.hexdigest(), filename=license_file.replace(self.tmp_extract, '')[1:]) 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: self.pkg_req.sort() 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'], 62, 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 = [x + '\n' for x in 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 (six.moves.urllib.error.URLError, six.moves.urllib.error.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 six.moves.urllib.error.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, KeyError) as error: print('Error: Could not install package {pkg}: {error}'.format( pkg=package.real_name, error=error)) 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 = 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("NOTE: Remember to also make an update to the DEVELOPERS file") print(" and include an entry for the pkg in packages/Config.in") print() # printing an empty line for visual confort finally: shutil.rmtree(tmp_path) if __name__ == "__main__": main() ================================================ FILE: utils/size-stats-compare ================================================ #!/usr/bin/env python3 # Copyright (C) 2016 Thomas De Schampheleire # 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 # TODO (improvements) # - support K,M,G size suffixes for threshold # - output CSV file in addition to stdout reporting import csv import argparse import sys def read_file_size_csv(inputf, detail=None): """Extract package or file sizes from CSV file into size dictionary""" sizes = {} reader = csv.reader(inputf) header = next(reader) if header[0] != 'File name' or header[1] != 'Package name' or \ header[2] != 'File size' or header[3] != 'Package size': print(("Input file %s does not contain the expected header. Are you " "sure this file corresponds to the file-size-stats.csv " "file created by 'make graph-size'?") % inputf.name) sys.exit(1) for row in reader: if detail: sizes[row[0]] = int(row[2]) else: sizes[row[1]] = int(row[3]) return sizes def compare_sizes(old, new): """Return delta/added/removed dictionaries based on two input size dictionaries""" delta = {} oldkeys = set(old.keys()) newkeys = set(new.keys()) # packages/files in both for entry in newkeys.intersection(oldkeys): delta[entry] = ('', new[entry] - old[entry]) # packages/files only in new for entry in newkeys.difference(oldkeys): delta[entry] = ('added', new[entry]) # packages/files only in old for entry in oldkeys.difference(newkeys): delta[entry] = ('removed', -old[entry]) return delta def print_results(result, threshold): """Print the given result dictionary sorted by size, ignoring any entries below or equal to threshold""" from six import iteritems list_result = list(iteritems(result)) # result is a dictionary: name -> (flag, size difference) # list_result is a list of tuples: (name, (flag, size difference)) for entry in sorted(list_result, key=lambda entry: entry[1][1]): if threshold is not None and abs(entry[1][1]) <= threshold: continue print('%12s %7s %s' % (entry[1][1], entry[1][0], entry[0])) # main ######################################################################### description = """ Compare rootfs size between Buildroot compilations, for example after changing configuration options or after switching to another Buildroot release. This script compares the file-size-stats.csv file generated by 'make graph-size' with the corresponding file from another Buildroot compilation. The size differences can be reported per package or per file. Size differences smaller or equal than a given threshold can be ignored. """ parser = argparse.ArgumentParser(description=description, formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument('-d', '--detail', action='store_true', help='''report differences for individual files rather than packages''') parser.add_argument('-t', '--threshold', type=int, help='''ignore size differences smaller or equal than this value (bytes)''') parser.add_argument('old_file_size_csv', type=argparse.FileType('r'), metavar='old-file-size-stats.csv', help="""old CSV file with file and package size statistics, generated by 'make graph-size'""") parser.add_argument('new_file_size_csv', type=argparse.FileType('r'), metavar='new-file-size-stats.csv', help='new CSV file with file and package size statistics') args = parser.parse_args() if args.detail: keyword = 'file' else: keyword = 'package' old_sizes = read_file_size_csv(args.old_file_size_csv, args.detail) new_sizes = read_file_size_csv(args.new_file_size_csv, args.detail) delta = compare_sizes(old_sizes, new_sizes) print('Size difference per %s (bytes), threshold = %s' % (keyword, args.threshold)) print(80*'-') print_results(delta, args.threshold) print(80*'-') print_results({'TOTAL': ('', sum(new_sizes.values()) - sum(old_sizes.values()))}, threshold=None) ================================================ FILE: utils/test-pkg ================================================ #!/usr/bin/env bash set -e TOOLCHAINS_CSV='support/config-fragments/autobuild/toolchain-configs.csv' TEMP_CONF="" do_clean() { if [ ! -z "${TEMP_CONF}" ]; then rm -f "${TEMP_CONF}" fi } main() { local o O opts local cfg dir pkg random toolchains_csv toolchain all number mode prepare_only local ret nb nb_skip nb_fail nb_legal nb_tc build_dir keep local -a toolchains local pkg_br_name o='hakc:d:n:p:r:t:' O='help,all,keep,prepare-only,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:' opts="$(getopt -n "${my_name}" -o "${o}" -l "${O}" -- "${@}")" eval set -- "${opts}" random=0 all=0 keep=0 number=0 mode=0 prepare_only=0 toolchains_csv="${TOOLCHAINS_CSV}" while [ ${#} -gt 0 ]; do case "${1}" in (-h|--help) help; exit 0 ;; (-a|--all) all=1; shift 1 ;; (-k|--keep) keep=1; shift 1 ;; (--prepare-only) prepare_only=1; shift 1 ;; (-c|--config-snippet) cfg="${2}"; shift 2 ;; (-d|--build-dir) dir="${2}"; shift 2 ;; (-n|--number) number="${2}"; shift 2 ;; (-p|--package) pkg="${2}"; shift 2 ;; (-r|--random) random="${2}"; shift 2 ;; (-t|--toolchains-csv) toolchains_csv="${2}"; shift 2 ;; (--) shift; break ;; esac done trap do_clean INT TERM HUP EXIT if [ -z "${cfg}" ]; then pkg_br_name="${pkg//-/_}" pkg_br_name="BR2_PACKAGE_${pkg_br_name^^}" TEMP_CONF=$(mktemp /tmp/test-${pkg}-config.XXXXXX) echo "${pkg_br_name}=y" > ${TEMP_CONF} cfg="${TEMP_CONF}" fi if [ ! -e "${cfg}" ]; then printf "error: %s: no such file\n" "${cfg}" >&2; exit 1 fi if [ -z "${dir}" ]; then dir="${HOME}/br-test-pkg" fi if [ ${random} -gt 0 ]; then mode=$((mode+1)) fi if [ ${number} -gt 0 ]; then mode=$((mode+1)) fi if [ ${all} -eq 1 ]; then mode=$((mode+1)) fi # Default mode is to test the N first toolchains, which have been # chosen to be a good selection of toolchains. if [ ${mode} -eq 0 ] ; then number=6 elif [ ${mode} -gt 1 ] ; then printf "error: --all, --number and --random are mutually exclusive\n" >&2; exit 1 fi # Extract the URLs of the toolchains; drop internal toolchains # E.g.: http://server/path/to/name.config,arch,libc # --> http://server/path/to/name.config toolchains=($(sed -r -e 's/,.*//; /internal/d; /^#/d; /^$/d;' "${toolchains_csv}" \ |if [ ${random} -gt 0 ]; then \ sort -R |head -n ${random} elif [ ${number} -gt 0 ]; then \ head -n ${number} else sort fi ) ) nb_tc="${#toolchains[@]}" if [ ${nb_tc} -eq 0 ]; then printf "error: no toolchain found (networking issue?)\n" >&2; exit 1 fi nb=0 nb_skip=0 nb_fail=0 nb_legal=0 for toolchainconfig in "${toolchains[@]}"; do : $((nb++)) toolchain="$(basename "${toolchainconfig}" .config)" build_dir="${dir}/${toolchain}" printf "%40s [%*d/%d]: " "${toolchain}" ${#nb_tc} ${nb} ${nb_tc} build_one "${build_dir}" "${toolchainconfig}" "${cfg}" "${pkg}" "${prepare_only}" && ret=0 || ret=${?} case ${ret} in (0) printf "OK\n";; (1) : $((nb_skip++)); printf "SKIPPED\n";; (2) : $((nb_fail++)); printf "FAILED\n";; (3) : $((nb_legal++)); printf "FAILED\n";; esac done printf "%d builds, %d skipped, %d build failed, %d legal-info failed\n" \ ${nb} ${nb_skip} ${nb_fail} ${nb_legal} return $((nb_fail + nb_legal)) } build_one() { local dir="${1}" local toolchainconfig="${2}" local cfg="${3}" local pkg="${4}" local prepare_only="${5}" mkdir -p "${dir}" CONFIG_= support/kconfig/merge_config.sh -O "${dir}" \ "${toolchainconfig}" "support/config-fragments/minimal.config" "${cfg}" \ >> "${dir}/logfile" 2>&1 # We want all the options from the snippet to be present as-is (set # or not set) in the actual .config; if one of them is not, it means # some dependency from the toolchain or arch is not available, in # which case this config is untestable and we skip it. # We don't care about the locale to sort in, as long as both sort are # done in the same locale. comm -23 <(sort "${cfg}") <(sort "${dir}/.config") >"${dir}/missing.config" if [ -s "${dir}/missing.config" ]; then if [ ${keep} -ne 1 ]; then # Invalid configuration, drop it rm -f "${dir}/.config" fi return 1 fi # Remove file, it's empty anyway. rm -f "${dir}/missing.config" # Defer building the job to the caller (e.g. a gitlab pipeline) if [ ${prepare_only} -eq 1 ]; then return 0 fi if [ -n "${pkg}" ]; then if ! make O="${dir}" "${pkg}-dirclean" >> "${dir}/logfile" 2>&1; then return 2 fi fi # shellcheck disable=SC2086 if ! BR_FORCE_CHECK_DEPENDENCIES=YES make O="${dir}" ${pkg} >> "${dir}/logfile" 2>&1; then return 2 fi # legal-info done systematically, because some packages have different # sources depending on the configuration (e.g. lua-5.2 vs. lua-5.3) if ! make O="${dir}" legal-info >> "${dir}/logfile" 2>&1; then return 3 fi # If we get here, the build was successful. Clean up the build/host # directories to save disk space, unless 'keep' was set. if [ ${keep} -ne 1 ]; then make O="${dir}" clean >> "${dir}/logfile" 2>&1 fi } help() { cat <<_EOF_ test-pkg: test-build a package against various toolchains and architectures The supplied config snippet is appended to each toolchain config, the resulting configuration is checked to ensure it still contains all options specified in the snippet; if any is missing, the build is skipped, on the assumption that the package under test requires a toolchain or architecture feature that is missing. In case failures are noticed, you can fix the package and just re-run the same command again; it will re-run the test where it failed. If you did specify a package (with -p), the package build dir will be removed first. The list of toolchains is retrieved from ${TOOLCHAINS_CSV}. Only the external toolchains are tried, because building a Buildroot toolchain would take too long. An alternative toolchains CSV file can be specified with the -t option. This file should have lines consisting of the path to the toolchain config fragment and the required host architecture, separated by a comma. The config fragments should contain only the toolchain and architecture settings. By default, a useful subset of toolchains is tested. If needed, all toolchains can be tested (-a), an arbitrary number of toolchains (-n in order, -r for random). Options: -h, --help Print this help. -c CFG, --config-snippet CFG Use the CFG file as the source for the config snippet. This file should contain all the config options required to build a package. -d DIR, --build-dir DIR Do the builds in directory DIR, one sub-dir per toolchain. -p PKG, --package PKG Test-build the package PKG, by running 'make PKG'; if not specified, just runs 'make'. -a, --all Test all toolchains, instead of the default subset defined by Buildroot developers. -n N, --number N Test N toolchains, in the order defined in the toolchain CSV file. -r N, --random N Limit the tests to the N randomly selected toolchains. -t CSVFILE, --toolchains-csv CSVFILE CSV file containing the paths to config fragments of toolchains to try. If not specified, the toolchains in ${TOOLCHAINS_CSV} will be used. -k, --keep Keep the build directories even if the build succeeds. Note: the logfile and configuration is always retained, even without this option. --prepare-only Only prepare the .config files, but do not build them. Output the list of build directories to stdout, and the status on stderr. Example: Testing libcec would require a config snippet that contains: BR2_PACKAGE_LIBCEC=y Testing libcurl with openSSL support would require a snippet such as: BR2_PACKAGE_OPENSSL=y BR2_PACKAGE_LIBCURL=y _EOF_ } my_name="${0##*/}" main "${@}" ================================================ FILE: writeimage.sh ================================================ #!/bin/bash -e function usage() { cat < - indicates the path to the image file (e.g. -i /home/user/Download/file.img.xz) <-d sdcard_dev> - indicates the path to the sdcard block device (e.g. -d /dev/mmcblk0) [-f factory_defaults] - injects factory defaults (e.g. -f /home/user/Download/factory-defaults.tar.xz) [-m modem:apn:user:pwd:pin] - configures the mobile network modem (e.g. -m ttyUSB0:internet) [-n ssid:psk] - sets the wireless network name and key (e.g. -n mynet:mykey1234) [-s ip/cidr:gw:dns] - sets a static IP configuration instead of DHCP (e.g. -s 192.168.1.101/24:192.168.1.1:8.8.8.8) END_USAGE exit 1 } if [ -z "$1" ]; then usage 1>&2 fi if [[ $(id -u) -ne 0 ]]; then echo "please run as root"; exit 1; fi function msg() { echo " * $1" } while getopts "a:d:f:h:i:lm:n:o:p:s:w" o; do case "$o" in d) SDCARD_DEV=$OPTARG ;; i) DISK_IMG=$OPTARG ;; f) FACTORY_DEFAULTS=$OPTARG ;; m) IFS=":" SETTINGS=($OPTARG) MODEM=${SETTINGS[0]} APN=${SETTINGS[1]} MUSER=${SETTINGS[2]} MPWD=${SETTINGS[3]} PIN=${SETTINGS[4]} ;; n) IFS=":" NETWORK=($OPTARG) SSID=${NETWORK[0]} PSK=${NETWORK[1]} ;; s) IFS=":" S_IP=($OPTARG) IP=${S_IP[0]} GW=${S_IP[1]} DNS=${S_IP[2]} ;; *) usage 1>&2 ;; esac done if [ -z "$SDCARD_DEV" ] || [ -z "$DISK_IMG" ]; then usage 1>&2 fi function cleanup { set +e # unmount sdcard umount "${SDCARD_DEV}"* >/dev/null 2>&1 } trap cleanup EXIT BOOT=$(dirname "$0")/.boot if ! [ -f "$DISK_IMG" ]; then echo "could not find image file $DISK_IMG" exit 1 fi gunzip=$(which unpigz 2> /dev/null || which gunzip 2> /dev/null || true) unxz=$(which unxz 2> /dev/null || true) if [[ $DISK_IMG == *.gz ]]; then if [ -z "$gunzip" ]; then msg "make sure you have the gzip package installed" exit 1 fi msg "decompressing the .gz compressed image" $gunzip -c "$DISK_IMG" > "${DISK_IMG%???}" DISK_IMG=${DISK_IMG%???} elif [[ $DISK_IMG == *.xz ]]; then if [ -z "$unxz" ]; then msg "make sure you have the xz package installed" exit 1 fi msg "decompressing the .xz compressed image" $unxz -T 0 -c "$DISK_IMG" > "${DISK_IMG%???}" DISK_IMG=${DISK_IMG%???} fi umount "${SDCARD_DEV}"* 2>/dev/null || true msg "writing disk image to sdcard" dd if="$DISK_IMG" of="$SDCARD_DEV" bs=1048576 sync if which partprobe > /dev/null 2>&1; then msg "re-reading sdcard partition table" partprobe "${SDCARD_DEV}" sleep 1 fi msg "mounting sdcard" mkdir -p "$BOOT" if [ "$(uname)" == "Darwin" ]; then BOOT_DEV=${SDCARD_DEV}s1 # e.g. /dev/disk4s1 diskutil unmountDisk "${SDCARD_DEV}" mount -ft msdos "$BOOT_DEV" "$BOOT" else # assuming Linux BOOT_DEV=${SDCARD_DEV}p1 # e.g. /dev/mmcblk0p1 if ! [ -e "${SDCARD_DEV}p1" ]; then BOOT_DEV=${SDCARD_DEV}1 # e.g. /dev/sdc1 fi mount "$BOOT_DEV" "$BOOT" fi # factory defaults if [ -n "$FACTORY_DEFAULTS" ]; then msg "injecting factory defaults" cp $FACTORY_DEFAULTS $BOOT/factory-defaults.tar.xz fi # wifi if [ -n "$SSID" ]; then msg "creating wireless configuration" conf=$BOOT/wpa_supplicant.conf { echo "update_config=1" echo "ctrl_interface=/var/run/wpa_supplicant" echo "network={" echo " scan_ssid=1" echo " ssid=\"$SSID\"" if [ -n "$PSK" ]; then echo " psk=\"$PSK\"" fi echo "}" echo "" } > "$conf" fi # modem if [ -n "$MODEM" ]; then msg "creating mobile network configuration" conf=$BOOT/ppp mkdir -p "$conf" echo "$MODEM" > "$conf/modem" echo "AT+CGDCONT=1,\"IP\",\"$APN\"" > "$conf/apn" echo > "$conf/extra" if [ -n "$MUSER" ]; then echo "user \"$MUSER\"" echo "password \"$MPWD\"" else echo fi > "$conf/auth" if [ -n "$PIN" ]; then echo "AT+CPIN=$PIN" else echo fi > "$conf/pin" fi # static ip if [ -n "$IP" ] && [ -n "$GW" ] && [ -n "$DNS" ]; then msg "setting static IP configuration" conf=$BOOT/static_ip.conf { echo "STATIC_IP=\"$IP\"" echo "STATIC_GW=\"$GW\"" echo "STATIC_DNS=\"$DNS\"" } > "$conf" fi msg "unmounting sdcard" sync sleep 1 umount "$BOOT" rmdir "$BOOT" msg "you can now remove the sdcard"